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

MIT — see LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cli_fleet-0.7.0.tar.gz (39.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cli_fleet-0.7.0-py3-none-any.whl (47.9 kB view details)

Uploaded Python 3

File details

Details for the file cli_fleet-0.7.0.tar.gz.

File metadata

  • Download URL: cli_fleet-0.7.0.tar.gz
  • Upload date:
  • Size: 39.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for cli_fleet-0.7.0.tar.gz
Algorithm Hash digest
SHA256 02475e648de2e9dfd46f8c9c2732f7a1e01ec91f9c02f1f7d67690c2e310365d
MD5 6ac900d6e047868a28e4bf175bf8ed0f
BLAKE2b-256 4e041a149252ba6e8c4afb054f9a7c26f617ce468d184e8f5e7ca08b3b011a80

See more details on using hashes here.

File details

Details for the file cli_fleet-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: cli_fleet-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 47.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for cli_fleet-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1a5a07fdabf7be76c23e6180d8e81efac2d0572318c0dab0d346dd5fea761aa7
MD5 5e0222f09a5c60f26fde1ad15880119f
BLAKE2b-256 be597b0fc98a2a6760541b6ce095b9c9a179c58729ffc7bdd3a6f9fe237635fe

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 files

0.6.0

1 file

0.5.0

2 files

0.4.0

2 files

0.3.2

2 files

0.3.1

1 file

0.3.0

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page