Set up your own CCSwitchboard.
CCSwitchboard lets your chat threads dispatch real jobs to machines you own and streams the results back inline. There's one thing to stand up first — your relay — and everything else just joins it.
The whole model in one line
A relay is the hub — it holds the jobs, hands out tokens, and dispatches work. Agents, the browser extension, and anything else are just clients of it. Each client needs exactly two things: your relay's URL and a token.
Your relay is the hub; each client (agent, extension, popup) just needs its URL and a token.
Set up your relay
The relay is a small PHP + SQLite app with no build step and no database server. Pick where it lives — each option lists its own requirements, and you can move it later.
Relay on a VPS
Same bundle as the shared-hosting path, served by your own web server with automatic HTTPS.
Personalize
A subdomain like relay.yourdomain.com is fine — just type it in full. Fills in every command and URL below, including what Copy puts on your clipboard. Stored in this browser only.
Before you start
Caddy is used below because it provisions and renews TLS certificates on its own. nginx + certbot works just as well if that's what you already run.
- Fetch and unpack the relay into your web root:
curl -fsSL https://github.com/DabbleLabs-UK/ccswitchboard/releases/latest/download/ccsw-relay-php.zip -o ccsw.zip \ && sudo unzip -oq ccsw.zip -d /var/www
Gives you
/var/www/ccswitchboard/board/and/var/www/ccswitchboard/data/. - Serve it. A minimal
Caddyfile:yourdomain.com { root * /var/www php_fastcgi unix//run/php/php-fpm.sock file_server # data/ holds the SQLite database and your auth token. The bundle's # .htaccess only applies to Apache/LiteSpeed, so block it here too. @data path /ccswitchboard/data/* respond @data 403 }The board must stay at
/ccswitchboard/board/— the login cookie is scoped to that path. - Open it — that's the whole setup.
https://yourdomain.com/ccswitchboard/board/
First visit creates the database, generates your admin token, claims the relay and signs you in. The token is shown once on screen — save it. Nothing to
grepout of a config file.Do this yourself, promptly. The relay belongs to the first browser that reaches it. If that screen appears unexpectedly, someone beat you to it — wipe it and redeploy.
- Optional, recommended: move the data outside the web root entirely by setting
CCSW_DB_PATH(e.g./home/you/private/ccsw/jobs.sqlite) in your php-fpm pool. The relay creates the file and its directory on first request.
A one-command VPS installer is planned; today it's these three steps.
Relay on this machine
Great for testing — relay, agent, and browser can all live on one box.
Personalize
Only used on the macOS and Linux steps below; the Windows relay picks its own port. Stored in this browser only.
Before you start
The relay ships as a single self-contained .exe with PHP bundled inside. You do not need PHP on the machine.
- Download the relay.
- Run it. It starts in the system tray and picks a free port automatically.
- Open the dashboard from the tray icon — right-click the CCSwitchboard icon and choose Open dashboard. It logs you in automatically, no token to copy.
The same menu has Copy relay token for when you set up the browser extension, and shows your relay URL at the top.
Before you start
macOS no longer ships PHP. If php -v says nothing, install it first:
- Download, unpack and start the relay — one command, run it in an empty folder:
curl -fsSL https://github.com/DabbleLabs-UK/ccswitchboard/releases/latest/download/ccsw-relay-php.zip -o ccsw.zip \ && unzip -oq ccsw.zip \ && php -S localhost:8787
Leave that running — it is the relay.
- Open the dashboard — it signs you in:
http://localhost:8787/ccswitchboard/board/
First visit creates the database, generates your token, claims the relay and logs you in. The token is shown once — save it; you'll want it for the browser extension.
A native macOS build (like the Windows one, no PHP needed) is planned.
Before you start
If php -v says nothing, or the relay complains about SQLite, install both pieces (Debian/Ubuntu):
- Download, unpack and start the relay — one command, run it in an empty folder:
curl -fsSL https://github.com/DabbleLabs-UK/ccswitchboard/releases/latest/download/ccsw-relay-php.zip -o ccsw.zip \ && unzip -oq ccsw.zip \ && php -S localhost:8787
Leave that running — it is the relay.
- Open the dashboard — it signs you in:
http://localhost:8787/ccswitchboard/board/
First visit creates the database, generates your token, claims the relay and logs you in. The token is shown once — save it; you'll want it for the browser extension.
A native Linux build (like the Windows one, no PHP needed) is planned.
Heads up: a localhost relay is only reachable from this machine. To join agents on other machines later, move the relay to a VPS or shared host — it's the same bundle, and you can copy the data/ folder across to keep your history.
Add your machines
A machine is a computer that actually runs the work. Your relay hands them out jobs — you add them from the relay itself, not from here.
One machine, one agent. The agent is a small background program that sits on that computer, asks your relay for work, runs it, and streams the output back. The relay never runs anything itself — it coordinates, the machines do the work.
Which computer should I use?
- Your main PC — simplest. It already has your files and logins. Jobs only run while it's on.
- A VM — isolated and disposable. Nothing a job does can touch your real desktop, and you can reset it to clean in seconds.
- A spare always-on box — most reliable. Jobs you dispatch from your phone at 2am actually run, because nothing is asleep.
You don't have to prepare any of them. The installer sets up the toolchain it needs — .NET, Git, Node, Claude Code — on the machine you run it on.
What adding one looks like
So you recognise it when you get there, the whole flow is five clicks on your own relay:
- Open your Board — the relay you just stood up.
- Go to Machines.
- Click Add a machine and give it a name (
desktop,vm-1— just how you'll recognise it in a job list). - Download that machine's installer, and run it on that machine.
- Watch it come online on the Machines page. That's it — it's in your pool.
Why it isn't on this page: the installer and token are generated by your relay, per machine — each machine gets its own credential so you can revoke one without disturbing the others. There is no generic download here to give you; yours only exists once your relay mints it.
Install the browser extension (optional)
This is what lets a chat thread dispatch jobs to your relay — and get each result typed back into the thread as it completes. It's not necessary if you plan to use the client built into the relay instead of claude.ai
- Download the extension.
- Unzip it into its own empty folder, somewhere permanent. The zip has no wrapper folder inside it, so unzipping it into an existing folder will scatter its files — and your browser loads the extension from that folder every time, so don't leave it in Downloads.
- Load it. In Chrome or Edge, open
chrome://extensions, turn on Developer mode, click Load unpacked, and pick that folder.Manifest V3, so Chrome and Edge both work. Firefox is not supported yet.
- Point it at your relay — open the extension and give it your relay URL and a token. That's the same pair every client needs.