beads vs foremerge
Distributed graph issue tracker for coding agents on Dolt: dependency-aware beads replace markdown plans — bd ready/claim/close, cell-level merge, push/pull across machines and agents. CLI + MCP. — versus — Coordination protocol for parallel coding agents above Git: agents declare intent in a shared SQLite store, and a deterministic detector flags plan collisions before code is written.
Both coordinate parallel agents through a shared local store of claims; beads tracks dependency-aware tasks agents claim and close, Foremerge tracks intended changes to code symbols and flags semantic conflicts.
| beads | foremerge | |
|---|---|---|
| Stars | 27k | 518 |
| Forks | 1.9k | 21 |
| Language | Go | Rust |
| License | MIT | Apache-2.0 |
| Last activity | today | 3 days ago |
| Topics | coding, memory | coding, orchestration |
| Curated connections | 3 | 3 |
beads — the curator's take
Steve Yegge's answer to agents drowning in markdown TODOs: task state as a versioned database with real merge semantics, so parallel agents claim and release work without trampling each other — the dependency graph decides what's 'ready'. When NOT: solo short-horizon sessions — bd init plus a Dolt store is infrastructure, and if tasks finish in one sitting a todo list wins. Note it remembers WORK, not knowledge — recall memory is a different shelf.
foremerge — the curator's take
Worktrees stopped agents clobbering files, not undoing each other: one agent replaces PaymentService while another extends it, Git merges both cleanly, and the feature is stranded. Foremerge has agents declare what they are about to change (symbols and operations) before editing, and a deterministic detector, no LLM judge, raises advisories when plans collide. It never locks, so a crashed agent cannot stall the fleet, and it works through CLI, JSON API, MCP and an installed skill. Honest status: a 0.5 pre-1.0 MVP, one maintainer, one machine only, no published benchmarks yet, and it only works if every agent actually declares intent. Worth trying once you routinely run several agents on one repo.