baton — open source · MIT license · v1.0.0Now shipping for macOS
Context handoff tool for CLI agents

PASS
context.
MOVE
FORWARD.

Switch between Claude Code, Codex, Gemini CLI, and more — without losing a single thought. Baton writes a structured handoff file so every agent knows exactly where the last one left off.

Claude CodeClaude CodeCodexCodexGemini CLIGemini CLIopencodeOpenCode+ more
Download for MacView source

macOS 13 Ventura or later · Apple Silicon & Intel · Free forever

Baton app screenshot
9+
Agents Supported
1-click
Handoff Injection
0kb
Cloud Dependency
MIT
Open Source License
01 — Features

EVERYTHING
your agents
NEED.

Baton is the connective tissue between your agents — capturing state, tracking changes, and injecting full context with one click.

One-Click Handoffs
Create a structured .baton/latest-handoff.md capturing tasks, decisions, blockers, and next steps. Inject into any agent instantly.
Agent-Agnostic
Works with Claude Code, Codex, Gemini CLI, OpenCode, Kiro, and any CLI-based coding agent. If it runs in a terminal, Baton supports it.
<>
Git-Aware
Automatically tracks changed files, diff stats, branch info, and git status. The next agent always knows what's been touched.
Native Desktop App
Electron + React app with resizable side panels, keyboard shortcuts, per-project session history, and a right panel for tasks and todos.
🔒
Privacy-First
Everything runs locally on your machine. No cloud sync, no telemetry, no accounts. Your code context never leaves your disk.
Open Source
MIT licensed. Fork it, extend it, build on it. Full source on GitHub with issues open and community welcome.
02 — How it works

THREE STEPS.
Zero CONTEXT LOST.

01
Step 01 — Initialize
Add your project
Open Baton, add your local repo. It detects installed agents and initializes the .baton/ directory automatically.
Project detected
claude-code found
kiro found
> .baton/ initialized
02
Step 02 — Build
Work with any agent
Spin up terminal sessions from inside Baton. The right panel tracks tasks, todos, git status, and changed files live as you work.
→ auth.ts modified
→ routes.ts modified
→ db.ts +new
2 todos completed
03
Step 03 — Hand off
Pass the baton
Click "Create Handoff". Baton writes a machine-readable file. Hit "Use Handoff" in the next agent — it knows everything instantly.
latest-handoff.md
tasks · decisions
blockers · next steps
→ ready to inject
03 — The App

SEE IT
in action.

A three-panel layout built for the way developers actually work. Projects on the left, terminal in the center, context panel on the right.

  • Left sidebar: projects + session history per agent
  • Center: full terminal session with any CLI agent
  • Right panel: tasks, todos, changed files, git info
  • Bottom bar: handoff status + Copy / Preview / Use buttons
Baton app screenshot
04 — Compatibility

USE ANY
agent.

Baton is completely agent-agnostic. If it runs in a terminal, Baton can pass context to it.

Claude CodeClaude Code
CodexCodex
Gemini CLIGemini CLI
opencodeOpenCode
Kiro
Aider
Continue
CursorCursor CLI
Any CLI agent →
05 — Roadmap

WHAT'S
coming.

V1 — Now
File-Based Handoffs
Desktop app with agent detection, terminal sessions, structured .baton files, one-click context injection, task tracking, and full git awareness.
Shipping now
V2 — Next
Live Shared Context
Replace file-based handoffs with a real-time shared context layer. Multiple agents read and write context simultaneously — no manual creation needed.
Planned
V3 — Future
Multi-Agent Workforce
Orchestrate Brain, Worker, Designer, and Reviewer agents — all coordinated through Baton's shared context layer. The Avengers, but for code.
Planned
Download

START
passing
THE BATON.

Free, open source, and runs entirely on your machine. Never lose context between agents again.

Download for Mac — FreeView source on GitHub

macOS 13 Ventura+ · Apple Silicon & Intel · v1.0.0 · MIT