Use cases

What people actually do with baton.

Six patterns, each backed by a shipped mechanism — not a roadmap slide. The command under every card is real. Swipe the deck, or read them all below.

Cost arbitrage

Plan on your expensive model. Build on your free one.

Deterministic routing scores each task by severity and sends it into a tier — heavy, standard, light, or local. No LLM call decides this, so it is instant, free, and it tells you why. The local tier runs on Ollama, which means routine work costs exactly nothing.

baton route "update the readme wording" → aider (ollama/qwen2.5-coder)

All six, in detail.

Cost arbitrage

Plan on your expensive model. Build on your free one.

Deterministic routing scores each task by severity and sends it into a tier — heavy, standard, light, or local. No LLM call decides this, so it is instant, free, and it tells you why. The local tier runs on Ollama, which means routine work costs exactly nothing.

baton route "update the readme wording" → aider (ollama/qwen2.5-coder)
Parallel agents

Run four agents on one repo without a single clobbered file.

Every agent works in its own isolated git worktree, and live edit signals show who is touching what in real time. When two agents drift toward the same file, both get warned before it becomes a merge conflict.

baton new fix-auth --agent cursor → .baton/wt/fix-auth
Session survival

Your agent hit its limit mid-task. The work didn't die.

One markdown file carries the whole session: objective, plan, remaining checklist, cost so far. Any agent — or the same one tomorrow — resumes from it. No proprietary state, no export step, just a file in your repo.

baton pass my-task --to cursor
Honest memory

Project knowledge that refuses to lie to your agents.

Shared facts are pinned to commits and content hashes. When the code a fact depends on changes, the fact is withheld instead of served — an agent can be told nothing, but it cannot be told something stale. That is the difference between memory and hallucination fuel.

fact: "auth uses JWT" ⚓ 4f2c91a — withheld when the anchor moves
Background work

Kick off overnight runs and actually see what happened.

The daemon detaches from your terminal and keeps coordinating. The dashboard streams activity, conflicts, agent terminals, and memory over plain server-sent events — open localhost:7077 with your coffee and read the night shift's log.

node dist/cli.js serve --write → localhost:7077
Disciplined fixes

Bug-fix runs that can't skip the investigation.

Installable skills give each agent the same playbooks, in its own config format. The bug-fix skill won't let an agent touch a line until an independent skeptic corroborates the root cause at 95% confidence — and you approve the plan.

.claude/skills · .cursor/rules — ten playbooks, one source

Sound like your workflow?