Inspiration

Coding agents are powerful alone but chaotic in groups. We wanted several of them — Claude, Codex, Copilot — to work as a real team: a leader that dispatches, specialists that locate and implement, and independent reviewers that gate every change. The guiding principle: the framework should do only infrastructure and standard protocol; capabilities emerge from orchestration written on top of it, not baked in.

What it does

team-agent runs each agent as a tmux pane and gives them a shared protocol for addressing, messaging, task dispatch, structured result reporting, and crash recovery. A leader authors orchestration scripts that drive staged handoffs (locate → implement), auto-reject deliverables that don't meet structural gates, and route only the messages that matter back to the human. Everything runs on plain tmux — no cloud runtime — so a team survives host reboots, provider crashes, and restarts.

How we built it

The core is a Rust CLI plus a coordinator daemon over a SQLite state store, wrapping tmux for pane lifecycle. We drove development by the framework itself: a team of agents maintaining team-agent, shipping 50+ releases. Every fix pairs a product change with a regression contract; releases pass a three-gate flow (independent green-review, a constitution check, and an architecture review) before publishing to npm.

Challenges we faced

The hardest bugs were all one family: split sources of truth — worker existence spread across role file, spec, runtime state, health, and live tmux, so a dead pane could read as "running" while lifecycle commands reported "unknown." We learned that reported success ≠ verified state: every claim of a commit, a delivery, or a passing test must be checked objectively (git, npm, real-machine runs), never trusted from a self-report. That discipline — and using architecture-smell scans to find root-cause clusters instead of patching symptoms — is what moved the project from a patch treadmill toward structural health.

What we learned

Reliability in multi-agent systems comes from single sources of truth and objective verification, not from more automation. The thinnest protocol that lets capabilities emerge outside the framework beats a feature-rich core.

Built With

Share this project:

Updates