Know when every agent needs you
Status badges on every workspace card — done, waiting for input, or errored. Glance at the sidebar instead of cycling through terminals. One-click notification setup for supported agents.
Spawn a new isolated agent whenever an idea hits.
See what every agent is doing at a glance.
Get notified when one needs input.
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
Compare your download's hash with the published checksums:
macOS: shasum -a 256 [file]
Linux:
sha256sum [file]
Windows:
Get-FileHash [file] -Algorithm SHA256
Status badges on every workspace card — done, waiting for input, or errored. Glance at the sidebar instead of cycling through terminals. One-click notification setup for supported agents.
Real terminal sessions with full feature support, not a watered-down wrapper. Notifications when agents finish, an MCP server so agents can spawn workspaces, and presets to customize how and which agent launches.
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.
Define multiple agent CLI presets with varying launch modes, completely customized flags, and entirely custom startup scripts.
Status badges on every workspace card — know at a glance when an agent finishes, needs input, or hits an error. One-click setup for supported agents.
Works with any agent that runs in a terminal
Each workspace is a real git worktree with its own branch. Agents never interfere with each other — no stashing, no switching, no conflicts. See git changes at a glance, push branches, and open PRs directly from the app.
Describe what you want to build — Baton generates the branch name, title, and description. Toggle "Accept Edits" to let the agent start immediately. Open the dialog from anywhere with a global keyboard shortcut.
Monaco-powered diff viewer with split and unified modes. Roll back individual files, follow changes live as the agent works, or compare against any branch.
Active, stashed, and archived sections keep workspaces organized. Search across names, descriptions, and branch names to find anything instantly.
Save shell commands and agent prompts as reusable templates. Run them in any workspace from the toolbar.
Fuzzy file search and full-text content search powered by fzf and ripgrep, with instant highlighted matches.
Browse commit history for any workspace. Per-commit diffs with file-level change stats in the built-in diff viewer.
Full file tree with a built-in Monaco code viewer. Browse and review files without leaving Baton.
Define per-project setup steps — copy files, install dependencies, run commands. New workspaces start ready to go.
Line-by-line blame annotations in the editor gutter. Click any entry to jump to that commit in the history view.
Right-click any file to browse every commit that changed it. Per-commit diffs with
line stats — renames tracked automatically via git log --follow.
Multiple terminals per workspace with tabs and split panes. Search output, multi-line input, drag-and-drop reordering.
Archive or delete finished workspaces. Batch operations and drag-and-drop reordering across projects.
Configure your own agent commands and startup scripts. Use any tool that runs in a terminal.
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.
Dark mode with 11 accent colors or a custom hex. Customize terminal ANSI colors and fonts. Changes apply instantly.
Fully customizable shortcuts for workspace navigation, terminal tabs, pane splits, and file operations. Reset to defaults any time.
Open multiple windows and move workspaces between them. Spread work across monitors or keep different projects in separate windows.
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.
Download for free. All features included — upgrade when you need more workspaces.
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
Compare your download's hash with the published checksums:
macOS: shasum -a 256 [file]
Linux:
sha256sum [file]
Windows:
Get-FileHash [file] -Algorithm SHA256