subfleet
A fleet of subs: run agentic AI work across every Claude Code and Codex subscription you own, without rotating logins. Each subscription is a lane; each job takes whichever lane is moving.
What it does
One front door
subfleet run classifies the task, picks a provider and lane from live capacity, and can explain every routing decision with --why
Lanes, not logins
Each Codex home and each enrolled Claude setup token is a dispatch lane; the app login you sit in never rotates
Hardened runners
Retries on transient failures, re-picks the lane after a mid-run usage limit, and snapshots dirty git state to salvage refs on any exit
Quota watchdog
Five-hour and weekly windows per account, auth health, app-shadow detection, and alerts that fire on transitions rather than every pass
Durable run ledger
Every dispatch keeps its exact prompt, output, errors, and metadata; subfleet runs lists them, runs show replays one
Session mirror
Claude desktop sessions from every account share one combined sidebar, so switching accounts hides nothing
Dispatch
The router accepts prompt text or a prompt file, chooses a model family by transparent pattern rules, consults the shared capacity view, and records the decision. Explicit pins stay pins; everything else is machinery.
subfleet run --why -C /path/to/project -o result.md "Fix the failing retry test"
subfleet codex -m MODEL_NAME -C "$PWD" -p task.md -o result.md
subfleet claude -A -m MODEL_NAME -C "$PWD" -p task.md -o result.md
An unpinned run auto-picks a lane and re-picks if that lane hits a usage limit
mid-run. A bin/codex shim extends the same lane selection to bare
codex exec calls from other tools.
Quick start
Monitoring only? pip install subfleet ships the status,
capacity, and ledger commands (v0.0.1 on PyPI).
The dispatch runners come with the repository checkout:
Clone and sync
git clone https://github.com/MaxGhenis/subfleet && cd subfleet && uv sync
Configure accounts
Copy accounts.example.json to ~/.config/subfleet/accounts.json and list your Claude addresses and Codex homes
Enroll lanes
claude setup-token | subfleet enroll you@example.com per Claude account, subfleet login codex 1 per Codex home, then subfleet status
Requirements
- Python 3.12 or later; the package itself has no dependencies outside the standard library
- The Claude Code and Codex CLIs for the subscriptions you enroll
jqanduuidgenfor the Claude runner- A secret store: macOS keychain by default, or any configured secret-store command