About

Agents got good. Coordination didn't.

Baton is a local coordination hub for the era of running several AI coding agents at once — built by someone who got tired of watching them fight.

The problem it grew out of

Run one AI coding agent and life is fine. Run three a heavyweight for design, a fast one for implementation, a local one for chores and you inherit a distributed-systems problem with no system. They edit the same files. They re-discover the same codebase facts, wrongly, from stale context. And when one hits its usage limit mid-task, everything it knew evaporates with the session.

Baton treats a team of agents like a relay team. Each runs in its own isolated git worktree, so parallel work cannot clobber. A shared, evidence-anchored memory gives every agent the same verified facts and withholds a fact the moment the code it describes changes. And when it's time to switch agents, one markdown file passes objective, plan, checklist, and cost to the next runner.

What it is, concretely

A CLI and a small daemon you run inside your repo. The daemon watches worktrees, reconciles edit signals against git truth, serves a realtime dashboard on localhost:7077 over server-sent events, and exposes MCP tools so agents can query the knowledge base directly. Installable skills give Claude Code, Cursor, Codex, and Gemini the same playbooks in their own config formats. It works with the agents you already pay for and the local ones you don't.

Principles

01

Deterministic over magic

Routing decisions are made by scoring, not by asking a model. They are instant, free, reproducible — and every one comes with its reason attached.

02

Evidence over recall

A remembered fact is only served while the code it points at still exists. Facts are anchored to commits and content hashes; stale ones are withheld, not guessed around.

03

Local-first, loopback-only

The daemon binds to your machine and screens both Origin and Host on every request. Your code, your tasks, and your agents' memory never leave localhost.

04

Plain formats

Handoffs are markdown. Coordination state lives in git. Realtime is server-sent events over HTTP. Anything here can be read with cat and versioned with git.

05

Zero dependencies where it counts

The daemon is raw node:http — no framework, no lock-in, nothing to audit but the code itself. Fewer moving parts than the agents it coordinates.

06

Open source, honestly told

AGPL-3.0 licensed. The landing page you're on refuses to show fabricated star counts — the same standard the memory system applies to facts.

Read the code. It's short on purpose.