CLI Fleet
Launch multiple enforced Claude Code agent teams in parallel — each team a
separate claude session in its own window, coordinating via a shared
filesystem mailbox. A thin, hardware-aware wrapper that completes the stack:
cli-wikia → cli-enforcement → cli-fleet
(knowledge) (the brakes) (the power)
cli-fleet bundles fleetcode's proven shell orchestration verbatim and adds:
- Hardware gating — refuses to launch more parallel agents than the box can take.
- Automatic enforcement — deploys the cli-enforcement engine into each team (hooks merged with fleetcode's mailbox hook), so every spawned team is governed.
Install
pip install cli-fleet # pulls in cli-enforcement + cli-wikia
Usage
cli-fleet launch fleet.json # hardware-gated, auto-enforced launch
cli-fleet launch fleet.json --background # use `claude -p` instead of windows
cli-fleet status [meta-team] # fleet status (auto-detects if one fleet)
cli-fleet dashboard [meta-team] # scorecard: teams, mailbox, findings + per-team enforcement points
cli-fleet dashboard --watch 5 # redraw every 5s until Ctrl-C
cli-fleet send team-a team-b "message" --type finding # cross-team mailbox message (--team to pick fleet)
cli-fleet cleanup [meta-team] # tear down (auto-detects if one fleet)
Note: cli-fleet launch requires Linux with a terminal emulator (gnome-terminal/xterm family) unless --background is used.
Multi-CLI fleets (v0.3.0)
Teams are no longer claude-only: each team in the config may set an optional
"model" (default claude). cli-fleet deploys the matching cli-enforcement
engine into that team's workdir, merges a mailbox-check hook into the model's
own hook file (without clobbering the enforcement hooks), and spawns the team
via that CLI's headless command.
{
"meta_team": "mixed-demo",
"project_dir": "/path/to/project",
"teams": [
{ "name": "team-claude", "role": "backend", "teammates": 2,
"task": "Audit the API layer." },
{ "name": "team-gemini", "role": "frontend", "teammates": 2,
"task": "Audit the UI layer.", "model": "gemini" },
{ "name": "team-deepseek", "role": "infra", "teammates": 2,
"task": "Audit the deploy scripts.", "model": "deepseek" }
]
}
| model | binary | headless spawn | mailbox hook event | launch-verified? |
|---|---|---|---|---|
claude |
claude |
claude --dangerously-skip-permissions -p <task> |
UserPromptSubmit |
✅ verified |
gemini |
gemini |
gemini --approval-mode yolo -p <task> |
BeforeAgent |
✅ verified |
deepseek |
deepseek-code |
deepseek-code --dangerously-skip-permissions -p <task> |
UserPromptSubmit |
✅ verified |
copilot |
copilot |
copilot --allow-all-tools --allow-all-paths -p <task> |
UserPromptSubmit |
✅ verified |
chatgpt |
codex |
codex exec --full-auto <task> |
UserPromptSubmit |
⚠ best-effort (from wiki docs; codex not verified locally — launch prints a warning) |
antigravity |
agy |
agy --dangerously-skip-permissions -p <task> |
PreInvocation |
✅ verified |
Shared state now lives at the model-neutral ~/.cli-fleet/meta-teams/
(META_TEAM_DIR env still wins). If a legacy fleetcode ~/.claude/meta-teams
exists, the new root is created as a symlink to it, so old fleets keep working.
The dashboard shows each team's model.
License
PolyForm Noncommercial 1.0.0 — free for noncommercial use. Commercial use requires a paid license: matrixbuilderops@proton.me
Metadata
Release files for cli-fleet 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cli_fleet-0.8.0.tar.gz | 43.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cli_fleet-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 95.9 kB
Release files / cli_fleet-0.8.0.tar.gz
| Download URL | cli_fleet-0.8.0.tar.gz |
|---|---|
| Size | 43.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4a089bfbe3d40b36828bd09c04de20f5f0dfc674f5e0c1c4dc38c081a78a1801
|
|
BLAKE2b-256 checksum How to use checksums |
47ca08dedb4696b257b8bd1ac2f2a01cca1d6124c5a97827b5a23698a9664904
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.3
|
Release files / cli_fleet-0.8.0-py3-none-any.whl
| Download URL | cli_fleet-0.8.0-py3-none-any.whl |
|---|---|
| Size | 52.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
08a187da3ff44ea928e69cf8580c6931abc8ea73f9690f5bec783a53cc1ddd69
|
|
BLAKE2b-256 checksum How to use checksums |
1f4fb17291b7d21b5009106b09323011f615cecd80afe4ddce65c3c64ebc6234
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.3
|