Switchboard is a desktop control room for AI‑assisted development. It keeps project context in one all-in-one workspace so app preview, thread history/composer, web tabs, and terminal are visible and connected.
- Manages multiple projects and threads.
- Streams OpenCode SDK messages with tool, reasoning, and text parts in correct order.
- Keeps project app views isolated from each other.
- Persists per‑thread state like scroll position and model selection.
Each project uses a single workspace layout:
- App/Web pane for the running app and ad-hoc web tabs.
- Thread pane for chat, tool output, and reasoning.
- Terminal dock for project commands.
- Git pane toggle in the right column.
This keeps context in one place while preserving fast switching between app and conversation.
- Install dependencies:
npm install- Start the app:
npm startIn dev mode:
npm run devTag pushes matching SemVer (for example 0.0.2 or 0.0.2-beta.1) trigger .github/workflows/release.yml, which builds macOS + Windows artifacts and publishes them to GitHub Releases.
Optional repository secrets for macOS signed/notarized releases:
APPLE_CERTIFICATE_P12_BASE64(base64-encoded Developer ID Application certificate.p12)APPLE_CERTIFICATE_P12_PASSWORDAPPLE_IDAPPLE_APP_SPECIFIC_PASSWORDAPPLE_TEAM_ID
If those secrets are not configured, CI still publishes macOS builds, but they are unsigned and will show Gatekeeper warnings on install/open.
Release flow:
# 1) update package.json version to 0.0.2 and commit
git tag 0.0.2
git push origin 0.0.2Projects and threads are stored in /Users/tyler/Documents/Experiments/local-broker/src/data/projects.json.
OpenCode providers are configured from the SDK on launch.
assets/is pulled during CI and ignored in git..env.exampledocuments the minimal environment needed for auth handoff.