Context handoff tool for CLI agents

PASS
context.
MOVE
FORWARD.

Switch between Claude Code, Codex, Gemini CLI, and more \u2014 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 CLIopencodeOpenCodeKiroAider+ more
⚠ Under ConstructionWork in progress · Coming soon

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

baton \u2014 ~/project
Baton app screenshot
9+
Agents Supported
1-click
Handoff Injection
0kb
Cloud Dependency
MIT
Open Source License
Features

Everything your agents need.

Baton is the connective tissue between your agents \u2014 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.

How it works

Three steps. Zero context lost.

01

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

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

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

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.

  • 1Left sidebar: projects + session history per agent
  • 2Center: full terminal session with any CLI agent
  • 3Right panel: tasks, todos, changed files, git info
  • 4Bottom bar: handoff status with Copy, Preview, Use buttons
baton \u2014 ~/project
Baton app screenshot

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
Roadmap

What’s coming.

V1Shipping now

File-Based Handoffs

Desktop app with agent detection, terminal sessions, structured .baton files, one-click context injection, task tracking, and full git awareness.

V2

Live Shared Context

Replace file-based handoffs with a real-time shared context layer. Multiple agents read and write context simultaneously.

V3

Multi-Agent Workforce

Orchestrate Brain, Worker, Designer, and Reviewer agents coordinated through Baton’s shared context layer.

Coming Soon

Under Construction.

We’re building something new. Baton isn’t quite ready yet, but it will be soon. Stay tuned.