Launch multiple enforced Claude Code agent teams in parallel terminal windows, hardware-aware, coordinating via a shared filesystem mailbox.
Project description
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
MIT — see LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cli_fleet-0.3.0.tar.gz.
File metadata
- Download URL: cli_fleet-0.3.0.tar.gz
- Upload date:
- Size: 37.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69849c277b9c493e136210cede95f4014a61bfeb981c93b06a4a3c05ff18a2a3
|
|
| MD5 |
d28c8c1bb24954d5c84b99df6391faa9
|
|
| BLAKE2b-256 |
6260bacdaf43d11a89d6bbd08b50864eb6a82469ef69ae4361e4a08c1cc73921
|
File details
Details for the file cli_fleet-0.3.0-py3-none-any.whl.
File metadata
- Download URL: cli_fleet-0.3.0-py3-none-any.whl
- Upload date:
- Size: 45.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
305942e5a6f96fc8a117e820c5d3fe78551f8d3b8b2b7366a39d9933b8cb42d8
|
|
| MD5 |
58dbe04b419bb76e5acac142fd7b9fa5
|
|
| BLAKE2b-256 |
1e3c91af6079d19207cc2d4020181df8419c7db65329ded87fae8d95544919dc
|