cafleet

agent
Guvenlik Denetimi
Uyari
Health Uyari
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Gecti
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

🛰️ Agent Teams reinvented for collaborative coding supporting Claude Code and Codex, with full code transparency

README.md

CAFleet

A message broker and agent registry for coding agents — a Claude Code plugin plus a local broker CLI.

CAFleet is a local-only tool. It runs on a single developer machine without authentication. Do not expose the broker on a shared network unless you accept that every listener can see and act within every session.

Install

Install the plugin in Claude Code

/plugin marketplace add himkt/cafleet
/plugin install cafleet@himkt-cafleet

This adds 11 plugin-packaged skills under the cafleet namespace: /cafleet:cafleet, /cafleet:agent-team-monitoring, /cafleet:agent-team-supervision, /cafleet:design-doc, /cafleet:design-doc-create, /cafleet:design-doc-execute, /cafleet:design-doc-interview, /cafleet:create-figure, /cafleet:my-slidev, /cafleet:research-presentation, /cafleet:research-report. Run /help in Claude Code to see them.

Install the plugin in Codex

codex plugin marketplace add himkt/cafleet

Then complete the in-UI install when prompted by codex. The same 11 plugin-packaged skills (cafleet, agent-team-monitoring, agent-team-supervision, design-doc, design-doc-create, design-doc-execute, design-doc-interview, create-figure, my-slidev, research-presentation, research-report) land in Codex from the shared skills/ tree.

Install the broker CLI (required for the plugin to function)

uv tool install cafleet     # or: pip install cafleet
cafleet db init             # apply schema migrations (idempotent; rerun after upgrades)

The default database is ~/.local/share/cafleet/registry.db. Override with CAFLEET_DATABASE_URL (use an absolute path — SQLAlchemy does not expand ~ in SQLite URLs).

Try it

In any tmux session, paste this into Claude Code:

/cafleet:design-doc-create I want to create a simple TUI calculator

Codex:

$cafleet:design-doc-create I want to create a simple TUI calculator

Claude (the Director) bootstraps a CAFleet session, spawns a Drafter and a Reviewer in adjacent tmux panes, drives the clarification → draft → review loop through the message broker, and lands a polished design doc at design-docs/my-feature/design-doc.md.

Want more? See skills/cafleet/SKILL.md for the raw broker primitives and skills/design-doc-create/SKILL.md for the orchestration this example uses.

CLI cheatsheet

Command group One-line purpose
cafleet db init Apply schema migrations (idempotent; rerun after upgrades)
cafleet session create [--coding-agent {claude,codex}] Create a session; declare the root Director's coding-agent backend (default claude)
cafleet session * List / show / delete sessions
cafleet agent * Register / deregister / list / show agents
cafleet message * Send / broadcast / poll / ack / cancel / show messages
cafleet member create [--coding-agent {claude,codex}] Spawn a member pane running claude (default) or codex
cafleet member * Delete / list / capture / send-input / exec / ping member panes (Director only)
cafleet server Start the admin WebUI on 127.0.0.1:8000
cafleet doctor Print the calling pane's tmux identifiers

CLI reference (per-command sections for session, member, doctor, server; agent / message / db init covered via the option-source table and cafleet <cmd> --help): docs/spec/cli-options.md. Message envelope shape (compact rendered + --full typed-column): docs/spec/message-envelope.md.

Notable flags

Flag / variable Where One-line purpose
--pretty global, before subcommand Switch JSON output from the compact default to indented (json.dumps(..., indent=2)). Pair with --json.
--quiet message send / message ack / member ping Emit only the new task id (8-char prefix); silence the rest of the echo.
--full message * / agent list / agent show Disable body / envelope / agent-card truncation; emit the full typed-column shape.
--activity member list Add per-member last_sent / last_recv / last_ack / idle columns aggregated from tasks.
--lines / --tail / --ansi / --no-ansi member capture Default --lines 30 (was 80); --tail is an alias for --lines; --no-ansi (default) strips ANSI escapes.
CAFLEET_MAX_TEXT_LEN env var Body-truncation codepoint limit (default 200). See "Message body truncation" below.

Coding agents

cafleet supports two coding-agent binaries for member panes: claude (Claude Code) and codex (OpenAI Codex CLI). Pass --coding-agent {claude,codex} on cafleet session create (operator-declared metadata for the root Director) and cafleet member create (selects the spawn-command builder and records the placement). The default is claude, so existing invocations are unchanged. A single Director may spawn both claude and codex members in the same session. Operational details for codex members — including the codex CLI version pin and verification recipe — live in docs/codex-members.md.

[!IMPORTANT]
Codex members need the cafleet DB directory to be writable from inside the codex sandbox. Add it to sandbox_workspace_write.writable_roots in any config.toml codex reads (e.g. ~/.codex/config.toml):

[sandbox_workspace_write]
writable_roots = ["/home/<you>/.local/share/cafleet"]

Use the absolute path matching CAFLEET_DATABASE_URL or the default XDG location.

Message body truncation

cafleet message {send,poll,ack,cancel,show} truncate the message text body to the first CAFLEET_MAX_TEXT_LEN Unicode codepoints (default 200) plus a single codepoint suffix in both text and --json output by default. This collapses per-poll token cost for inbox-polling agents whose bodies typically run several hundred characters. Pass --full (per-subcommand option, placed after the subcommand name) to restore the un-truncated body and the full typed-column envelope. Empty bodies and bodies whose codepoint length is at most CAFLEET_MAX_TEXT_LEN pass through unchanged with no marker. cafleet message broadcast is different — it returns a broadcast_summary task whose text is a generated summary string (e.g. Broadcast sent to N recipients), not the original body, so its summary always emits in full. The --full flag is preserved on message broadcast for surface consistency but is a no-op. The /ui/api/* WebUI responses are not truncated. See docs/spec/cli-options.md § Message Body Truncation and docs/spec/message-envelope.md for the full rendering rules.

Architecture

CAFleet ships a unified cafleet CLI and an admin WebUI on top of a single-file SQLite database. Sessions partition agents into isolated namespaces; the CLI accesses SQLite directly through a shared broker module, so no HTTP server is required for agent operations. See ARCHITECTURE.md for the full design.

Project structure

Top-level entry Purpose
cafleet/ The cafleet Python package (FastAPI + SQLAlchemy + Alembic + click).
admin/ Admin WebUI SPA (Vite + React + TypeScript + Tailwind CSS).
skills/ Plugin skills shared by the Claude Code and Codex manifests.
package.json + bun.lock (repo root) Bun toolchain manifests for the Slidev + agent-browser tools used in the repo. Driven via mise //:bun-install / mise //:slidev <deck>; node_modules/ is gitignored.
design-docs/ Numbered design documents (NNNNNNN-<slug>/design-doc.md).
docs/ CLI reference, message envelope, and other operator-facing docs.

Development

Clone the repo and use mise for all common tasks:

git clone https://github.com/himkt/cafleet.git
cd cafleet

mise //:uv-sync
mise //cafleet:install    # editable uv tool install of the cafleet CLI
cafleet db init           # apply schema migrations (idempotent; rerun after upgrades)

mise //cafleet:lint       # ruff check + ruff format --check
mise //cafleet:format     # ruff format
mise //cafleet:typecheck  # ty
mise //cafleet:test       # pytest

mise //admin:build        # build the WebUI (required before /ui/ is served)
mise //admin:dev          # WebUI dev server (Vite)

License

MIT

Yorumlar (0)

Sonuc bulunamadi