One control plane for every local Claude Code and Codex agent. Watch sessions stream, approve tool calls, and take over a run from any screen — without babysitting a terminal.
Every machine runs the same self-contained agent. List the remotes in hosts.json; the hub proxies REST and opens a socket to each.
$ termdeck add build-vm ✓ proxied · ws open
Token deltas, the tool ticker, and permission prompts render live — straight from disk, so a turn typed in the terminal shows up the same in the browser.
Allow, deny, or take the wheel from your phone. Close an idle terminal client and drive the session from the web — the lock keeps two writers from forking it.
A front end for the CLIs you already run — not a replacement.
Termdeck is built to be exposed carefully. It binds loopback, refuses to serve a non-loopback interface without a token, and fails closed the moment anything looks like a forwarded request it can’t trust.
/api and WebSocket call behind a tunnel