Batonv0.3.9
v0.3.9 · free & open source · macOS, Linux and Windows

One terminal for all
your coding agents.

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 | sh
irm https://k6w.github.io/baton/install.ps1 | iex
Get started How it worksGitHub
baton · my-app
Baton running a lead agent and four workers from different vendors: they split a task, message each other, ask for approval and report back

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.)

How it works

You describe what you want. Your agents do the rest, in the open, with you in charge.

Step 1You ask

Type a task in plain words. Talk to any agent directly with @name.

Step 2The lead plans

An orchestrator agent splits the work and picks the right agents and models for each part.

Step 3Workers build

Each worker edits its own git worktree, a private copy, and they message each other as they go.

Step 4Review, then merge

A different vendor reviews every change. It merges into your project only after your tests pass.

Built for running many agents

Everything you need to trust a team of agents with real work.

One inbox

Approvals, plans, stuck agents, conflicts: everything that needs you is in one place. ctrl+a, then approve with one key.

Safe by default

Private worktrees, cross-vendor reviews, your test gate, undo for every merge, and deny rules that hold even in YOLO mode.

One autonomy dial

shift+tab switches every agent at once between normal, auto, YOLO and ask-first, even mid-run.

Agents that talk

A message bus between agents: they coordinate files, hand off work, and report results back automatically.

From your phone

baton web --lan shows a QR code: follow along, approve and send tasks from your phone. One-tap approvals from notifications.

Learns who's good at what

A track record per agent and task kind in your project. The lead uses it to pick agents, and cheaper ones win close calls.

Every worker gets a real brief

A worker only knows what it's told. Roles, checks, skills and team memory make sure it's told the right things.

Roles

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.

Acceptance checks

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 and team notes

Skills in .baton/skills (or your .claude/skills) for every agent, and facts the team learns go into notes every new worker starts with.

You decide how much freedom they get

One dial for every agent, the lead and the workers. Your own rules always apply.

◆ normalEach agent's defaults: edits are fine, risky commands ask.
↯ autoThey act on their own; destructive commands still ask.
▲ yoloNo prompts, no sandbox. Your deny rules still apply.
◇ askEvery edit and command waits for you.

Works with the agents you already use

Baton runs the official tools with your own logins, through their real interfaces. Bring one agent or ten.

Claude CodeCodexOpenCodeGemini CLICursorGitHub CopilotGooseQwen CodeKiroClineKimiAmpOpenHandsJunieMistral VibeAider & any CLIAny ACP agentA2A agentsBaton's own agent: any model

More than a terminal

Use it from scripts, from other tools, and from GitHub.

Scripts & CI

baton run "update the changelog" --approve all --json runs a whole team headless.

MCP & A2A

baton mcp lets Claude Desktop or Cursor hand tasks to your team. baton a2a serves it to other agents.

GitHub

baton issue 42 starts from an issue, and /pr opens a draft pull request from what merged.

History & replay

Every run is saved: resume it, replay it like a video, or export it as Markdown or HTML.

Make it yours

11 styles, ~50 themes (all WCAG-contrast), 5 layouts, and every key and setting explained in the app.

SDKs

Drive Baton from TypeScript or Python: start runs, stream events, answer approvals.

Try it in a minute, for free

Install, then run baton demo: simulated agents, no tokens, no setup.

curl -fsSL https://k6w.github.io/baton/install.sh | sh
irm https://k6w.github.io/baton/install.ps1 | iex
Read the quickstart Command lineFAQ