Your command center for Claude Code sessions.
Switchboard is a desktop app that gives you a unified view of all your Claude Code sessions across every project. Launch, resume, fork, and monitor sessions from a single window — no more juggling terminal tabs or digging through ~/.claude/projects to find that one conversation from last week.
- Session Browser — All your Claude Code sessions, organized by project, searchable by content
- Built-in Terminal — Connect to running sessions or launch new ones without leaving the app
- Status Notifications — In-app alerts when a session is waiting for permission approval or user input
- Fork & Resume — Branch off from any point in a session's history
- Full-Text Search — Find any session by what was discussed, not just when it happened
- Plans & Memory — Browse and edit your plan files and CLAUDE.md memory in one place
- Activity Stats — Heatmap of your coding activity across all projects
- Session Names — Picks up session names from Claude Code's
/renamecommand automatically
Grab the latest release for your platform:
- macOS:
.dmg(Apple Silicon & Intel) - Windows:
.exeinstaller - Linux:
.AppImageor.deb
- Node.js 20+
- npm 10+
- Platform build tools for native modules:
- macOS: Xcode Command Line Tools (
xcode-select --install) - Linux:
build-essential,python3(sudo apt install build-essential python3) - Windows: Visual Studio Build Tools or
npm install -g windows-build-tools
- macOS: Xcode Command Line Tools (
# Install dependencies (runs postinstall automatically)
npm install
# Start the app
npm startnpm start bundles CodeMirror and launches Electron. For faster iteration after the first run:
npm run electronAll build commands bundle CodeMirror first, then invoke electron-builder.
# Current platform
npm run build
# Platform-specific
npm run build:mac # DMG + zip (arm64 + x64)
npm run build:win # NSIS installer (x64 + arm64)
npm run build:linux # AppImage + deb (x64 + arm64)Output goes to dist/.
Releases are driven by git tags:
git tag v0.1.0
git push origin v0.1.0The GitHub Actions workflow builds for all platforms and publishes to GitHub Releases. You can also release locally:
npm run release # builds + publishes to GitHub ReleasesSet GH_TOKEN in your environment (a GitHub personal access token with repo scope).
The app uses electron-updater to check for updates from GitHub Releases on launch and every 4 hours. Updates are only checked in packaged builds (not during development). The flow:
- App auto-downloads updates in the background
- A toast notification appears when the update is ready
- User can restart immediately or dismiss (installs on next quit)
For distribution, set these environment variables:
- macOS:
CSC_LINK(p12 certificate) andCSC_KEY_PASSWORD, or sign via Keychain - Windows:
CSC_LINKandCSC_KEY_PASSWORDfor EV/OV code signing - Set
CSC_IDENTITY_AUTO_DISCOVERY=falseto skip signing (CI artifact builds)
The macOS build uses custom entitlements (build/entitlements.mac.plist) to allow JIT and unsigned memory execution, required by native modules (node-pty, better-sqlite3).
main.js Electron main process
preload.js Context bridge (IPC bindings)
db.js SQLite session cache & metadata
public/ Renderer (HTML/CSS/JS)
scripts/ Build & postinstall scripts
build/ Icons, entitlements, builder resources
.github/workflows/ CI/CD
