Summary
It would be great to have an optional web server mode that serves the Switchboard UI as a web application, accessible from any browser on the network — similar to how tools like Portainer, Grafana, or code-server work.
Use case
Many developers run Claude Code on a headless server, a home lab machine, or a remote workstation. Currently, Switchboard requires a desktop environment (Electron) to use. A web UI mode would allow:
- Remote monitoring from a laptop, phone, or tablet
- Headless server setups where no desktop environment is available
- Multi-device access to the same Switchboard instance (e.g. check session status from your phone while AFK)
- SSH-only machines where X11 forwarding is impractical
Why it's feasible
After looking at the codebase, the architecture is already well-suited for this:
- Clean IPC boundary: The ~40
ipcMain.handle() calls in main.js map directly to HTTP/REST endpoints
- Vanilla JS frontend:
app.js has no Electron-specific rendering — replacing window.api.* calls with fetch() / WebSocket would be straightforward
- Terminal streaming: xterm.js already supports WebSocket backends, so the PTY bridge could use WS instead of IPC
- SQLite DB: Already portable, no changes needed
Proposed approach
- Add an optional
--serve or --web flag that starts an Express/Fastify server instead of the Electron window
- Serve the existing frontend static files
- Expose IPC handlers as REST endpoints + WebSocket for terminal/live updates
- Add basic auth (token or password) since it would be network-exposed
- Keep the Electron app as the default — web mode is opt-in
Example
# Start Switchboard as a web server on port 3000
switchboard --web --port 3000
# Then access from any browser
# http://192.168.0.4:3000
This would make Switchboard a complete remote session management dashboard, which fits perfectly with its "command center" positioning.
Thanks for the great tool! 🎯
Summary
It would be great to have an optional web server mode that serves the Switchboard UI as a web application, accessible from any browser on the network — similar to how tools like Portainer, Grafana, or code-server work.
Use case
Many developers run Claude Code on a headless server, a home lab machine, or a remote workstation. Currently, Switchboard requires a desktop environment (Electron) to use. A web UI mode would allow:
Why it's feasible
After looking at the codebase, the architecture is already well-suited for this:
ipcMain.handle()calls inmain.jsmap directly to HTTP/REST endpointsapp.jshas no Electron-specific rendering — replacingwindow.api.*calls withfetch()/ WebSocket would be straightforwardProposed approach
--serveor--webflag that starts an Express/Fastify server instead of the Electron windowExample
This would make Switchboard a complete remote session management dashboard, which fits perfectly with its "command center" positioning.
Thanks for the great tool! 🎯