Claude Code, Codex, OpenCode, Gemini and more, working together as one team on your code. They plan, split the work, review each other, and merge only what passes your tests.
curl -fsSL https://k6w.github.io/baton/install.sh | shirm https://k6w.github.io/baton/install.ps1 | iex
A lead agent splits a task across Claude, Codex, Gemini and OpenCode. You approve one command, zoom into an agent, and turn the autonomy dial. (baton demo: simulated, no tokens.)
You describe what you want. Your agents do the rest, in the open, with you in charge.
Type a task in plain words. Talk to any agent directly with @name.
An orchestrator agent splits the work and picks the right agents and models for each part.
Each worker edits its own git worktree, a private copy, and they message each other as they go.
A different vendor reviews every change. It merges into your project only after your tests pass.
Everything you need to trust a team of agents with real work.
Approvals, plans, stuck agents, conflicts: everything that needs you is in one place. ctrl+a, then approve with one key.
Private worktrees, cross-vendor reviews, your test gate, undo for every merge, and deny rules that hold even in YOLO mode.
shift+tab switches every agent at once between normal, auto, YOLO and ask-first, even mid-run.
A message bus between agents: they coordinate files, hand off work, and report results back automatically.
baton web --lan shows a QR code: follow along, approve and send tasks from your phone. One-tap approvals from notifications.
A track record per agent and task kind in your project. The lead uses it to pick agents, and cheaper ones win close calls.
A worker only knows what it's told. Roles, checks, skills and team memory make sure it's told the right things.
Tester, reviewer, debugger, security, researcher, frontend, or your own. Each brings instructions, a model size and an access level; read-only roles can't edit, even in YOLO.
The lead sets a command like bun test src/auth. Baton runs it when the worker is done: the work counts only when it passes.
Skills in .baton/skills (or your .claude/skills) for every agent, and facts the team learns go into notes every new worker starts with.
One dial for every agent, the lead and the workers. Your own rules always apply.
Baton runs the official tools with your own logins, through their real interfaces. Bring one agent or ten.
Use it from scripts, from other tools, and from GitHub.
baton run "update the changelog" --approve all --json runs a whole team headless.
baton mcp lets Claude Desktop or Cursor hand tasks to your team. baton a2a serves it to other agents.
baton issue 42 starts from an issue, and /pr opens a draft pull request from what merged.
Every run is saved: resume it, replay it like a video, or export it as Markdown or HTML.
11 styles, ~50 themes (all WCAG-contrast), 5 layouts, and every key and setting explained in the app.
Drive Baton from TypeScript or Python: start runs, stream events, answer approvals.
Install, then run baton demo: simulated agents, no tokens, no setup.
curl -fsSL https://k6w.github.io/baton/install.sh | shirm https://k6w.github.io/baton/install.ps1 | iex