
If you've ever run Codex and Claude on the same repo, you've probably hit this: both agents diagnose the same bug, both edit the same file, you end up with two PRs for one fix. Or one agent runs out of quota and the next one has to re-read everything to figure out where to pick up.
The expensive part of multi-agent work isn't the agents — it's the coordination. Every handoff replays the world.
I built Colony to fix that. It's a local-first coordination substrate that sits between your runtimes (Claude Code, Codex, Cursor, Gemini CLI, OpenCode) and a local SQLite store. It does four things:
- Claims before edits. An agent claims
runtime-manifest.tsbefore touching it. The other agent sees the live claim and stands down, instead of racing a second PR. - Compact handoffs. When a session ends, it writes a structured receipt: PR link, merge SHA, changed files, verification results, cleanup status. The next agent reads ~400 tokens instead of replaying ~30,000.
- Health diagnostics.
colony healthtells you when agents are silently not coordinating — stale claims, lifecycle bridge mismatches, plan-claim adoption gaps. - Persistent memory. Compressed at rest (~70% prose compression, byte-perfect for paths/code/commands). Searchable later via FTS5.
What it deliberately is not:
- Not a hosted control plane. Local-first by default. Your data never leaves your disk.
- Not an agent runner. Codex / Claude / Cursor still execute work. Colony just makes them coordinate.
- Not orchestration. Stigmergic — agents leave traces, useful traces get reinforced, stale ones evaporate.
Stack: Node 20+, MIT licensed, stdio-based MCP server. Stores everything in ~/.colony/data.db.
npm install -g u/imdeadpool/colony-cli
colony install --ide codex
colony health
Repo: github.com/recodeee/colony
Happy to answer questions or take roadmap suggestions in comments. The current pain points I'm working on next are auto-resolving same-file claim conflicts and a colony heal --apply that runs the fix-plan instead of just printing it.