Skip to main content

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)

Source distribution for cli-fleet 0.8.0
File Size Uploaded
cli_fleet-0.8.0.tar.gz 43.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cli-fleet 0.8.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

0.9.0

2 release files

This release

0.8.0 This release

2 release files

0.7.0

2 release files

0.6.0

1 release file

0.5.0

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

1 release file

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page