by ChesterRa
Coordinate your coding agents like a group chat — read receipts, delivery tracking, and remote ops from your phone. One pip install, zero infrastructure. A production‑minded orchestrator for 24/7 workflow
# Add to your Claude Code skills
git clone https://github.com/ChesterRa/ccccA lightweight multi-agent framework with infrastructure-grade reliability.
Chat-native, prompt-driven, and bi-directional by design.
Run multiple coding agents as a durable, coordinated system — not a pile of disconnected terminal sessions.
Three commands to go. Zero infrastructure, production-grade power.
pip install, runtime state in CCCC_HOME, and remote supervision only when you choose to expose it.No comments yet. Be the first to share your thoughts!
Using multiple coding agents today usually means:
These aren't minor inconveniences. They're the reason most multi-agent setups stay fragile demos instead of reliable workflows.
CCCC is a single pip install with zero external dependencies — no database, no message broker, no Docker required. Yet it gives you the pieces fragile multi-agent setups usually lack:
| Capability | How |
|---|---|
| Single source of truth | Append-only ledger (ledger.jsonl) records every message and event — replayable, auditable, never lost |
| Reliable messaging | Read cursors, attention ACK, and reply-required obligations — you know exactly who saw what |
| Unified control plane | Web UI, CLI, MCP tools, and IM bridges all talk to one daemon — no state fragmentation |
| Multi-runtime orchestration | Claude Code, Codex CLI, Gemini CLI, and 5 more first-class runtimes, plus custom for everything else |
| Role-based coordination | Foreman + peer model with permission boundaries and recipient routing (@all, @peers, @foreman) |
| Local-first runtime state | Runtime data stays in CCCC_HOME, not your repo, while Web Access and IM bridges cover remote operations |
# Stable channel (PyPI)
pip install -U cccc-pair
# RC channel (TestPyPI)
pip install -U --pre \
--index-url https://test.pypi.org/simple/ \
--extra-index-url https://pypi.org/simple/ \
cccc-pair
Requirements: Python 3.9+, macOS / Linux / Windows
cccc
Open http://127.0.0.1:8848 — by default, CCCC brings up the daemon and the local Web UI together.
cd /path/to/your/repo
cccc attach . # bind this directory as a scope
cccc setup --runtime claude # configure MCP for your runtime
cccc actor add foreman --runtime claude # first actor becomes foreman
cccc actor add reviewer --runtime codex # add a peer
cccc group start # start all actors
cccc send "Split the task and begin." --to @all
You now have two agents collaborating in a persistent group with full message history, delivery tracking, and a web dashboard. The daemon owns delivery and coordination, and runtime state stays in CCCC_HOME rather than inside your repo.
Use the official SDK when you need to integrate CCCC into external applications or services:
pip install -U cccc-sdk
npm install cccc-sdk
The SDK does not include a daemon. It connects to a running cccc core instance.
graph TB
subgraph Agents["Agent Runtimes"]
direction LR
A1["Claude Code"]
A2["Codex CLI"]
A3["Gemini CLI"]
A4["+ 5 more + custom"]
end
subgraph Daemon["CCCC Daemon · single writer"]
direction LR
Ledger[("Ledger<br/>append-only JSONL")]
ActorMgr["Actor<br/>Manager"]
Auto["Automation<br/>Rules · Nudge · Cron"]
Ledger ~~~ ActorMgr ~~~ Auto
end
subgraph Ports["Control Plane"]
direction LR
Web["Web UI<br/>:8848"]
CLI["CLI"]
MCP["MCP<br/>(stdio)"]
end
subgraph IM["IM Bridges"]
direction LR
TG["Telegram"]
SL["Slack"]
DC["Discord"]
FS["Feishu"]
DT["DingTalk"]
end
Agents <-->|MCP tools| Daemon
Daemon <--> Ports
Web <--> IM
Key design decisions:
CCCC_HOME (default ~/.cccc/) — runtime state stays out of your repoCCCC orchestrates agents across 8 first-class runtimes, with custom available for everything else. Each actor in a group can use a different runtime.
| Runtime | Auto MCP Setup | Command |
|---------|:--------------:|---------|
| Claude Code | ✅ | claude |
| Codex CLI | ✅ | codex |
| Gemini CLI | ✅ | gemini |
| Droid | ✅ | droid |
| Amp | ✅ | amp |
| Auggie | ✅ | auggie |
| Kimi CLI | ✅ | kimi |
| Neovate | ✅ | neovate |
| Custom | — | Any command |
cccc setup --runtime claude # auto-configures MCP for this runtime
cccc runtime list --all # show all available runtimes
cccc doctor # verify environment and runtime availability
CCCC implements IM-grade messaging semantics, not just "paste text into a terminal":
@all, @peers, @foreman, or specific actor IDsreply_to with quoted contextMessages are delivered to actor runtimes through the daemon-managed delivery pipeline, and the daemon tracks delivery state for every message.
A built-in rules engine handles operational concerns so you don't have to babysit:
| Policy | What it does | |--------|-------------| | Nudge | Reminds agents about unread messages after a configurable timeout | | Reply-required follow-up | Escalates when required replies are overdue | | Actor idle detection | Notifies foreman when an agent goes silent | | Keepalive | Periodic check-in reminders for the foreman | | Silence detection | Alerts when an entire group goes quiet |
Beyond built-in policies, you can create custom automation rules:
The built-in Web UI at http://127.0.0.1:8848 provides:
@mention autocomplete and reply threading| Chat | Terminal |
|:----:|:-------:|
|
|
|
For accessing the Web UI from outside localhost:
CCCC_WEB_HOST=0.0.0.0 cccccloudflared tunnel --url http://127.0.0.1:8848CCCC_WEB_HOST=$TAILSCALE_IP cccc127.0.0.1 means local-only, while 0.0.0.0 means localhost plus your LAN IP on a normal local host. If CCCC is running inside WSL2's default NAT networking, 0.0.0.0 only exposes Web inside WSL; for LAN devices, use WSL mirrored networking or a Windows portproxy/firewall rule.Save stores the target binding. If Web was started by cccc or cccc web, use Apply now in **