An open-source command center for coding agents, terminals, files, and git worktrees.
welcome.mp4
Switchboard keeps coding agents, real terminals, files, git worktrees, and remote machines in one desktop workspace. Send terminal output, file ranges, and chat messages to an agent without leaving the project.
Today, Switchboard supports Claude Code, Codex, and OpenCode. Cursor and additional providers are planned. The provider layer is designed to grow, and contributions are welcome.
Status: pre-1.0. macOS Apple Silicon and Windows x64 builds are published through GitHub Releases with auto-update. Builds are unsigned. On macOS, Gatekeeper blocks the first launch - run
xattr -d com.apple.quarantine /Applications/Switchboard.appafter install, or right-click the app and choose Open. See Install.
In a typical project, agent context is fragmented across a chat window, terminal tabs, logs, and an editor. The agent does not automatically see the error from the running service or the branch you are testing.
Switchboard connects those surfaces. Select terminal output, a file range, or a
chat message and send it to the active agent with Cmd+L. Run parallel work in
isolated git worktrees. Review the diff an agent actually produced. Keep
conversations, terminals, files, and machines attached to the project rather
than scattered across applications.
- Run Claude Code, Codex, or OpenCode in dedicated chat panes.
- Start two agent chats side by side to compare approaches or delegate parallel
work. Use Open beside in a chat header or session menu (
Cmd+Shift+\\), then Copy prompt → other to give both agents independently editable drafts. - Choose permission modes per chat: plan, sandbox, accept edits, or full access. Plan mode is enforced by Switchboard, not just requested from the provider.
- Resume Claude Code sessions, and search Claude Code and Codex history from the project sidebar.
- Use skills and slash commands exposed by the active provider.
- Send selected terminal output, file ranges, or prior chat messages into a
chat with
Cmd+L. - Paste or drop screenshots directly into a supported agent chat.
- Use
Cmd+Kfor a focused prompt without leaving the current workspace. - Open files referenced in a chat directly in the embedded VS Code workbench.
- Run real shells in a tmux-style tree of resizable terminal panes.
- Create a kanban card that launches an agent in its own git worktree.
- Fork a conversation from any message, optionally into an isolated worktree.
- Review per-file and per-hunk diffs from a git checkpoint after each agent turn.
- Save named terminal templates in
.switchboard/workspace.yamland apply them to new chats.
- Connect to a Linux machine through your existing SSH configuration.
- Run Claude Code, terminals, git, and file access on that machine while keeping the Switchboard interface on your laptop. Remote Codex and OpenCode support is not available yet.
- Reconnect to remote chats and browse recent remote projects while offline.
| Provider | Status | Notes |
|---|---|---|
| Claude Code | Supported | Agent SDK integration, sessions, permissions, skills, images, and remote machines |
| Codex | Supported | codex app-server integration, sessions, permissions, skills, and images |
| OpenCode | Supported | Agent Client Protocol integration, dynamic models, skills, and images |
| Cursor | Planned | Not implemented yet. No delivery date. |
| Other agents | Planned | New adapters are welcome through the provider interface. |
Switchboard is not trying to replace the agents themselves. It is the place to run, compare, and supervise them alongside the terminals and project state they need. If there is an agent or workflow you want supported, please open an issue or contribute an adapter.
Keep the frontend, backend, logs, and database tunnel in terminal panes. When
an error appears, select the relevant output and press Cmd+L. The agent gets
the error in context without a copy-paste detour or a screenshot of a terminal.
Create kanban cards for the work you want to explore. Each card can start an agent in an isolated git worktree, so two agents can change the same repository without sharing a working tree. Review the resulting diffs in chat and keep the approach you want.
Connect to a Linux host over SSH and start a project there. Switchboard provisions its helper, tunnels the connection, and keeps the familiar Claude Code chat, terminal, file, and git surface on your laptop.
Open a conversation, choose Open beside, and select a second loaded chat.
The highlighted chat owns the IDE, terminal strip, status bar, Cmd+K, and
session-scoped commands; click anywhere in the other chat to switch that
binding. Copy prompt → other clones the current draft, pills, and image
attachments without linking the two composers. Each side is sent separately,
so a provider failure never clears the other draft. Message file links, forks,
and Send to other panel always use the message's own conversation.
Switchboard overlaps with several excellent tools. The difference is the combination of provider-neutral agent chats, live terminal context, git-aware review, and a project workspace that can run locally or over SSH.
| If you need | Consider | Use Switchboard when |
|---|---|---|
| A Codex-only multi-agent application | Codex app | You want to work with Claude Code, Codex, and OpenCode in the same workspace, with real terminal processes and remote machines. |
| An AI-native terminal or saved terminal layouts | Warp | You want rendered provider chats, terminal-to-agent context, git worktree cards, and provider-independent history. |
| A fast, native terminal for managing CLI agents | cmux | You want the agent conversation, diffs, files, terminals, and project history in one application. |
| An IDE with built-in agent features | Cursor | You want a workspace centered on agents and live processes. Cursor support is planned, but not available yet. |
Open any file from the chat in a real VS Code workbench
ide.mp4
Review every edit the agent makes, hunk by hunk
diff-review.mp4
Flip between chats and a worktree-backed board (experimental)
chats-and-board.mp4
Hand the same conversation to a different agent
switch-agent.mp4
Download the latest build from the Releases page.
Download Switchboard-X.Y.Z-arm64-mac.zip. The app is unsigned, so Gatekeeper
will refuse the first launch.
# Unzip, drag Switchboard.app to /Applications, then:
xattr -d com.apple.quarantine /Applications/Switchboard.appYou can also right-click the app, choose Open, then choose Open again. macOS may quarantine a replacement after an auto-update, so repeat the command or the right-click flow after an update if needed.
Intel Macs are not currently built. Open an issue if you need x64 support.
Download Switchboard Setup X.Y.Z.exe. SmartScreen may show "Windows protected
your PC" on first launch. Choose More info, then Run anyway. A portable
.zip build is also available.
Your chats, code and terminal output stay on your machines. The desktop app sends five anonymous counts (launch, session started, tour completed or skipped, crash) with the app version, OS, chip and a random install id, and nothing else. Turn them off in Settings > General > Privacy; development builds never send. Full text at tn07.dev/privacy.
git clone https://github.com/tejasnafde/switchboard.git
cd switchboard
npm install
npm run devUseful commands:
npm test # vitest
npm run typecheck # TypeScript checks across main, preload, renderer, and shared
npm run build # typecheck, tests, bundle, and smoke test
npm run dist:mac # local Apple Silicon build
npm run dist:win # local Windows x64 buildnpm run dist:* builds for the host platform. Cross-platform release builds
run in the GitHub Actions matrix because the Claude Code SDK includes native
platform binaries. See docs/releasing.md for the release
process.
- One provider interface, three protocols. Claude Code uses the Agent SDK,
Codex uses JSON-RPC through
codex app-server, and OpenCode uses the Agent Client Protocol. They normalize into one event stream, so the renderer stays provider-agnostic. - Permissions enforced by the app. Plan mode uses a tested policy that denies non-read-only tools across providers.
- Git is the source of truth for edits. Switchboard takes a checkpoint at the start of a turn and derives review cards from the resulting diff.
- Project context is local and durable. Real PTYs, an embedded VS Code
workbench, SQLite with FTS5, encrypted provider credentials, project-scoped
history, and
.switchboard/workspace.yamlterminal templates are all part of the application. - Built and tested. The build is gated by typechecking and a suite of more than 1,900 tests.
For the technical details:
docs/concept.mdexplains the original product thesis.docs/plan.mdrecords the current implementation status.docs/architecture/contains provider and UI details.docs/keybindings.mdlists shortcuts.docs/releasing.mddocuments releases.
MIT © Tejas Nafde
