WorkerDeck

v0.13.0 · MIT · self-hosted

Coding agent sessions you can watch, steer, and embed

A coding agent is a terminal program: it runs where you started it, and it is yours only while that terminal is open. WorkerDeck puts a session server, a typed wire protocol and an approve/deny UI around one — so the same session is reachable from a browser, your phone, your editor, or an app you build yourself.

npx workerdeck

Gateway and dashboard on one port. Nothing to clone.

One server, four ways in

Attach from three of them at once and they stay in step — there is one ordered, seq-numbered event stream, and everything replays from it.

The gateway

npx workerdeck

Owns the sessions, the approvals and the event stream. Runs the engines, enforces the permission mode, keeps the job queue, parks work that outlives a turn, and serves the dashboard from the same port. Everything above is a view onto the sessions it holds — and so is anything you build, at whatever level of control you want.

Close-to-real sessions

A session behaves like the agent’s own CLI launched in that directory: same skills, same project instructions, same MCP config surface, same permission system.

Human-in-the-loop permissions

Tool calls surface as approve/deny cards; the tool blocks until a client decides, with deny-on-timeout. Safe to point at a real checkout.

Typed wire protocol

One ordered stream of seq-numbered events plus a small command set. Versioned from day one — the protocol is the product boundary.

Three engines, one protocol

Claude Code, OpenAI Codex, or any provider the AI SDK supports. Clients render from each engine’s capability record, so an affordance an engine lacks is hidden rather than a control that does nothing.

Embeddable panel components

A styled session panel with streaming transcript, tool-call cards and composer — or go headless with the hook and the reducers.

Attach, replay, resume

Clients reconnect and replay from their last seen event; closed sessions resume from the engine’s on-disk store with full history backfill.

Unattended job queue

Schedule one-shot runs with bounded concurrency, token budgets, retries, a wall-clock watchdog, and ordered webhook delivery.

Work that outlives the turn

A session can park on work nothing here is doing — a batch job, a human approving on Monday — and wake days later, mid-turn, as itself.