Launch in seconds

Describe what you want built, and Baton creates an isolated workspace with its own branch. The agent starts working immediately. Do it again for the next task. No switching, no conflicts.

See everything at once

Notification badges tell you when agents finish, error out, or need input. Git stats show what changed. The dashboard groups workspaces by what needs attention — so you always know where to look next.

Built around the terminal

AI coding agents are CLI-native — so Baton is too. Run any agent in real terminal sessions with full feature support, not a watered-down wrapper.

Any CLI agent

Smart notifications

Labeled status badges, dock alerts, and auto-sorting. One-click setup for starred agents.

Built-in MCP server

Agents can launch new Baton workspaces, run tasks in parallel, and update workspace titles and descriptions — directly from your conversation. One-click setup for starred agents.

Custom Agent Presets

Define multiple agent CLI presets with varying launch modes, completely customized flags, and entirely custom startup scripts.

Features

Worktree isolation

Every workspace is a separate branch

Each workspace is backed by a real git worktree — a separate working directory with its own branch. Agents never interfere with each other. No stashing, no switching, no conflicts.

  • Git changes and ahead/behind counts at a glance
  • Launch an agent in a new workspace in seconds
  • Push branches and open Pull Requests directly from the app
  • Archive or delete when you're done
Baton workspace overview with project sidebar and workspace cards
Agent monitoring

Know when every agent needs you

Labeled status badges appear on workspace cards the moment an agent finishes, hits an error, or needs your input. Each badge tells you exactly what happened at a glance. No polling, no tab-switching — just glance at the sidebar. Support varies by agent — best supported by Claude Code.

  • "Input" badge (blue) when an agent is waiting for input
  • "Done" badge (green) when a turn completes successfully
  • "Error" badge (red) when an agent reports an error
  • One-click notification setup for supported agents
Baton notification badges on workspace cards showing agent status
Quick create

From idea to isolated workspace in seconds

Describe what you want to build and Baton generates a branch name, workspace title, and description automatically using AI. Toggle "Accept Edits" to let the agent start working immediately without waiting for permission prompts. Open the dialog from anywhere with a keyboard shortcut.

  • Supports auto-generation of workspace titles, descriptions, and branch names
  • Launch in any mode — Accept Edits, Plan, Dangerously, and more
  • Global keyboard shortcut to open from anywhere
Baton new workspace dialog with task description, auto-generated branch name, and accept edits toggle
Diff viewer

Review every change before opening a PR

See exactly what each AI agent changed with a Monaco-powered diff viewer. Roll back individual files you don't want — keep the rest.

  • Split & unified diff modes
  • Roll back individual files
  • Live follow mode — watch agent changes as they happen
  • Compare against any branch, not just main
Baton diff viewer showing side-by-side code changes
Baton dashboard overview

Dashboard Overview

Active, stashed, and archived sections keep workspaces organized. Search across names, descriptions, and branch names to find anything instantly.

Baton actions dropdown

Actions

Save shell commands and agent prompts as reusable templates. Run them in any workspace from the toolbar.

Baton content and file search

Content & File Search

Fuzzy file search and full-text content search powered by fzf and ripgrep, with instant highlighted matches.

Baton commit history

Commit History

Browse commit history for any workspace. Per-commit diffs with file-level change stats in the built-in diff viewer.

Baton file viewer

File Viewer

Full file tree with a built-in Monaco code viewer. Browse and review files without leaving Baton.

Baton workspace setup

Workspace Setup

Define per-project setup steps — copy files, install dependencies, run commands. New workspaces start ready to go.

Git Blame

Toggle line-by-line blame annotations in the editor gutter. See who changed each line, when, and why. Click any entry to jump to that commit in the history view.

File History

Right-click any file to browse every commit that changed it. Per-commit diffs with line stats — renames tracked automatically via git log --follow.

Terminal Tabs & Splits

Multiple terminals per workspace, organized as tabs. Split any tab into panes, search output with highlighting, and use Shift+Enter for multi-line input. Drag-and-drop tab reordering.

Workspace Archiving

Archive finished workspaces to declutter the sidebar. Batch stop, archive, or delete multiple at once. Drag-and-drop reordering across projects.

Custom Agent Commands

Configure your own agent commands and startup scripts. Use any tool that runs in a terminal.

Built-in Git GUI

Fetch, pull, rebase, and push branches directly from the toolbar. Once your agent is done, open a Pull Request to GitHub or GitLab with a single click.

Themes & Customization

Dark mode with 11 accent colors or a custom hex. Customize terminal ANSI colors and fonts. Changes apply instantly.

Keyboard Shortcuts

Fully customizable shortcuts for workspace navigation, terminal tabs, pane splits, and file operations. Reset to defaults any time.

Multi-Window

Open multiple windows and move workspaces between them. Spread work across monitors or keep different projects in separate windows.

Common questions

Your code never leaves your computer. Baton runs locally with no accounts required. The one optional cloud feature is AI-generated workspace titles and branch names — when enabled, your first prompt (not code) is sent to a reputable paid AI provider that does not train on your data. Baton never stores your prompts. You can also bring your own API key or disable this entirely in settings. The AI agents you run (Claude Code, Codex, etc.) connect to their own APIs directly, same as if you ran them in any other terminal.

Any agent that runs in a terminal. Claude Code, Codex CLI, OpenCode, and Gemini CLI have first-class support with features like smart notifications and one-click MCP setup. You can also configure any custom command — if it runs in a shell, it works in Baton.

Yes. Every workspace is backed by a real directory on disk with a built-in shortcut to open it directly in VS Code, Cursor, Windsurf, or Xcode. You can also point any other editor at the worktree path. Baton manages the git branches and agent orchestration; your IDE handles editing.

You're in full control. Archive a workspace to hide it from the sidebar, or delete it to remove the worktree and branch from disk. You can also push the branch and open a PR before cleaning up. Worktrees are standard git worktrees — nothing proprietary.

Everything. All features, all tools, all agents, all customization — no restrictions. The free version is limited to 4 concurrently running workspaces. A one-time $49 license removes that limit and gives you unlimited workspaces, with a 14-day money-back guarantee.

Baton gives every agent its own git worktree — a separate working directory with its own branch — so agents can't step on each other's work. On top of that, you get a clean GUI to organize everything: live status indicators, a built-in diff viewer, file viewer, content search, commit history, seamless PR creation, and keyboard shortcuts that make common operations fast and effortless.

Yes, Git must be installed on your system. Baton uses your local Git installation to create and manage worktrees.

Ready to ship faster?

Free to use. One-time purchase to unlock the full version.

Windows Beta
Linux Beta
Setup & verification

Linux Setup

Install FUSE to run AppImages:

sudo apt install fuse libfuse2   # Debian/Ubuntu
sudo dnf install fuse fuse-libs   # Fedora

Then make it executable:

chmod +x baton-*.AppImage
./baton-*.AppImage

Verify Integrity

Compare your download's hash with the published checksums:

View SHA256 checksums →

macOS: shasum -a 256 [file]
Linux: sha256sum [file]
Windows: Get-FileHash [file] -Algorithm SHA256