fleet
One brief in.
One pull request out.
A squad of Claude Code agents on your Mac. One of them is the boss.
Apple silicon. Intel Macs are not supported.
A squad running one round
one branch, three agents, reviewed
- agent: railfleet/railrunningmerged
- agent: reviewfleet/reviewrunningrequest_reviewmerged
- agent: storefleet/storerunningmerged
Parallel is the easy half.
Five terminals give you five dirty trees on one branch, and you are the integrator. Fleet gives you one branch and one pull request, because a boss already did the integrating.
The Fleet interface
The orchestrator
A boss that is itself an agent.
Six tools, in order. Every one is real and you can watch it run.
- 01
plan modeNothing runs until you approve the plan
- 02
spawn_agentEach agent gets a brief and a checkout of its own
- 03
request_reviewAn agent commits, hands back, and stops
- 04
review_agentThe orchestrator answers: notes, or approval
- 05
merge_agentWork lands in the orchestrator’s worktree, never on your base branch
- 06
open_pull_requestOne pull request, and the round is sealed
Isolation
Every agent gets its own checkout.
A real git worktree, not a container and not a promise to be careful.
A worktree and a branch each
Ten ports per session
A real terminal, per session
Branched from origin
| branch | worktree | ports |
|---|---|---|
| fleet/rail | acme.fleet/rail | 3140-3149 |
| fleet/review | acme.fleet/review | 3210-3219 |
| fleet/store | acme.fleet/store | 3380-3389 |
blocks are 10 ports wide, inside 3100-3999, and derived from the session id
Review
Nothing merges that you have not read.
The orchestrator reviews its agents. You review the orchestrator.
Notes on lines
Notes that follow the code
Git you can see first
export function mergeAgent(squad: SquadRecord, agent: SessionRecord) {- return git.merge(agent.branch)+ if (squad.sealed) throw new FleetFailure(SEALED)+ return git.merge(agent.branch, { into: squad.branch })}
note on line 3
Refuse before the merge, not after. A sealed round should not touch the branch at all.
- $ git -C acme merge --no-ff fleet/rail
- $ git push --set-upstream origin fleet/rail
- $ gh pr create --base main --head fleet/rail
Every action shows the exact commands before it runs them. Merges run from the main worktree under a per-repo lock, and refuse rather than stashing anything on your behalf.
Everything else
The rest of it, without the adjectives.
Checkpoints
Undo a turn without touching your history
MCP
Servers carry their provenance
New project
30 templates across 9 toolchains
Usage
A ledger per turn, not a running total
Command palette
Every action from the keyboard
Themes
Twelve, from two attributes
Notifications
You find out when an agent needs you
Editors
Open any worktree where you actually work
Trust
The agent has your filesystem. Fleet does not have your code.
Local, and no account
Your Claude, your gh
A display layer that stays one
Commands by id
Fleet is free. It is not open source.
You bring your own Claude Code subscription or API key. The source stays closed.
Apple silicon. Intel Macs are not supported.