firstintent/ccteam

ccteam turns the coding agents you already run (Claude Code, Codex, Grok, DeepSeek Harness, Kimi, Pi) into one team — any session can spawn, dispatch, and collect work from any vendor on any machine, while you steer it all from Telegram, Lark, or a browser tab. 把你在用的编程 agent 编成一支团队,跨厂商跨机器派活,Telegram/飞书/网页统一指挥。

ccteam – Orchestrating multiple coding‑agent LLMs

What it is – ccteam is a Rust‑based daemon that lets you run several coding‑assistant models (Claude Code, OpenAI Codex, xAI Grok, Moonshot Kimi, DeepSeek Harness, Pi) together as a single “team”. It provides a thin “connective tissue” that handles:

  • identity and authentication for each vendor CLI,
  • routing of prompts and tool calls between agents,
  • a cost ledger that records usage per model,
  • guarantees that a dispatched job is delivered (at‑least‑once) and can be stopped.

How you use it

  1. Install the vendor CLIs you already have (Claude Code, Codex, etc.) and log in.
  2. Start the ccteam daemon (ccteam start). It runs a web server on :7331 and prints a LAN URL.
  3. Control the team from any device via:
    • a Telegram/Lark/Slack bot (commands start with / or !),
    • a lightweight web console (chat‑style UI), or
    • programmatically through the REST API (/api/v1).
  4. Create sessions – a session is a single LLM instance. You can spawn many, e.g.
    /new codex effort=high   # start a Codex worker
    /new grok                # start a Grok worker
    
  5. Orchestrate either by typing natural language (the LLM will call agent/agent_read under the hood) or by writing a flow – a small JavaScript file that uses agent(), parallel(), pipeline(), etc., to define a deterministic workflow.
  6. Monitor the Team page shows a live graph of parent→child delegations, model usage, and dollar cost. The console also displays per‑session context, turn logs, and a cost‑cap pill.

Key concepts

  • Session – a running LLM instance (e.g., a Claude Code session) that can receive turns and spawn child sessions.
  • Flow – a JS script that programmatically defines a series of agent calls; runs are journaled and can be resumed after a daemon restart.
  • Policy hook – an optional executable (.ccteam/hooks/pre‑agent) that can approve or reject every delegation, useful for quota or security checks.
  • MCP tools – six built‑in remote‑procedure calls (agent, agent_read, agent_stop, status, chat_send_file, plus a discovery alias) that any session or external agent can invoke.
  • Satellite – a secondary machine that registers with the daemon via a join token, allowing you to run heavy‑weight models (e.g., GPU‑enabled Claude) on a different host while still controlling everything from a single console.

Why it matters

  • Leverages strengths of each vendor: Claude for planning, Codex for long‑running code generation, Grok for quick answers, Kimi for cheap bulk work, etc.
  • Cost transparency – every turn is logged with the model name and price, so you can set daily caps and see exactly where money is spent.\n- Unified UI – no need to switch terminals; you can manage dozens of parallel sessions from Telegram, Slack, or a browser.
  • Extensible – you can add your own skills, personas, or custom policy hooks, and you can call ccteam from any other automation via its OpenAPI spec.

Typical workflow example

# In Telegram
/cd my‑project               # select project
/new codex effort=high       # start a Codex worker
/new grok                    # start a Grok worker
@s2 run the test suite       # address the Codex session (s2) directly
/status                      # see which models are running and the cost so far

Or as a flow (branch‑review.flow.js):

const review = agent({vendor:"claude", title:"review", task:"review PR #42"});
const impl   = agent({vendor:"codex",  title:"impl",   task:"implement changes"});
await parallel(review, impl);

Run it with ccteam flow run branch-review.flow.js --budget 5.

Bottom line – ccteam is not a new LLM; it is an orchestration layer that lets developers treat multiple coding‑assistant models as a coordinated team, with a single control surface, cost accounting, and safety hooks.


Fields

  • Repository: https://github.com/firstintent/ccteam
  • License: MIT
  • Primary language: Rust (CLI/daemon) + JavaScript for flows / Node for the DSH plugin.
  • Platform: macOS, Linux, Windows (WSL) — binary distribution, no sudo required.
  • Target audience: developers who already use one or more coding‑assistant CLIs and want to orchestrate them together, or teams that need a shared cost‑aware console.
  • Status: Actively maintained (CI badge, install script, docs).

Related

  • Project
  • Project
  • Project
  • Project
  • Project