0.1.0-beta.1
The first Coxswain release, cut on 2026-09-05 — the day the platform took its name. Every component
is tagged v0.1.0-beta.1 in lockstep; the manifest table on the Releases page pins them.
coxswain and coxswain-tools are published to PyPI from those tags by trusted publishing, so
uv tool install coxswain-tools gets you the cox command without a token anywhere.
Status: beta. The loop works and runs itself daily, but the interfaces are still moving. Two
things are deliberately deprecated for exactly one release: agent-tools as an alias for cox, and
cast as an alias for the cartridge's crew key.
What you can do with it
Install the platform from one manifest, point it at a repository, and describe a change. Coxswain
files it as a work item, plans it, builds it in a worktree under a budget, has two independent
reviewers argue about it, arbitrates them, runs the project's own tests as evidence, and hands you a
pull request. You merge. cox setup doctor tells you whether a machine can do that; cox runs top
shows you the runs that are doing it now.
coxswain
manifest.tomlas the single source of truth for what a release installs, with lockstep pins and tests on its shape.- The docs site: MkDocs Material,
mikeversions on GitHub Pages, dark by default with a light toggle and the project's own palette, prev/next navigation above and below every page, a CLI reference generated at build time fromcox --help, and terminal screenshots captured with Rich. - A top-down pixel-art racing eight in the header, animated across six frames and still under
prefers-reduced-motion. - Every graph's diagram, pulled from the graphs repository at build time rather than drawn by hand.
publish.yml: PyPI trusted publishing onv*tags, environmentpypi, no token stored anywhere.
cartridges (coxswain-cartridges)
- The
coxswainClaude Code plugin: a session-start hook that prints the docket, a statusline showing runs in flight and free slots, and the/launch,/land,/runs,/intakeand/regattacommands. cartridge init <team>writes a minimal team cartridge that inherits its bindings fromextends, besidebaseandlocal, and prints the profile lines to add.cartridge.d/*.yamlfragments fold over each layer in sorted order, tighten-only per fragment, with refusals naming the fragment file.layers()exposes the resolved cartridge after each one.crewreplacescastas the seats key, withcastaccepted for one release and recorded indeprecations. Seat-bound plugin skills are no longer validated against the harness skill index.policy.dispatch.max_in_flightbounds concurrent runs;policy.plan_tierderives a task's tier from its surfaces; a work item may carrybudget_usd, capped by the base cartridge.
graphs (coxswain-graphs)
- The coxswain graph's docket reports runs in flight and free slots, and the driver invokes only that
many, deferring the rest with a reason. The chief-of-staff graph, its docs and its prose took the
brand name; the registry key stays
cos. validate_chunkcan ask for evidence: a typedneeds_evidencelist of paths the harness reads once and attaches before asking again, which ends the blind "need to verify" quarantines.- Budgets are recoverable. A build that hits its ceiling raises
BudgetStopwith the session and the spend, keeps the partial diff, and the lifecycle makes a deterministic go/no-go with remedies before continuing in the same session. - The plan competition and the plan attack are gated on a task's pre-build tier against
plan_competition.min_tier, so three deep-tier calls are spent only where the surface is dangerous. - Every graph's page and mermaid diagram are generated from the graph's own docstring, with a freshness test that fails CI when a graph changes without a regeneration.
apply_patchstrips a builder's trailing markup and refuses markup mid-patch by name.
tools (coxswain-tools)
coxis the operator command, and barecoxopens a Coxswain session: Claude Code with the plugin loaded and the workspace as its working directory.agent-toolsstays as an alias for one release.cox installplans from the manifest and executes it;cox upgraderefuses dirty checkouts;cox versionsreports each component against its pin.cox setup doctorverifies a machine read-only and exits non-zero when it cannot run an epic;cox setupis a curses screen over doctor, install and the cartridge editor.cox runs events [--follow] [--json]is a typed event stream folded from run records;cox runs topis a live table of runs in flight, with--oncefor scripts;cox runs landplans and executes the landing of an approved run.cox routefiles work, launches the harness detached, and reports status.- Maintainer commands live under
cox dev, which refuses to run outside a maintainer's checkout, so the operator surface stays small. - Every subcommand carries help text, every group a description and worked examples, and a bare group prints its own help instead of a traceback.
crew (coxswain-crew)
- Renamed from
agent-cast. No behaviour changes; the cartridge vocabulary it names moved fromcasttocrew.
hud (coxswain-hud)
- Renamed from
agent-voice-hud. No feature work this release. The regatta — a live view of runs as a rowing race, with the reticle kept as an alternate flavor — is decomposed and planned.
desktop
- Planned: the Waybar module, the notifier service and the floating
runs topwindow, onceruns notifyandruns barexist in tools.
Across every repository
Ruff runs in CI on all six components with one shared rule set, mirrored locally by pre-commit.