Agent Desk
A local-first control surface for AI coding CLIs: project conversations, runtime state, queue/stop/restore, and user-confirmed agent handoffs.
Overview
Agent Desk is a technical-preview product I built to make local AI coding CLIs feel like one coherent project workbench. Codex, Claude, and DeepSeek-style tools still run on the user's own Windows workstation. The product layer lives above them: project folders, durable conversations, provider settings, message state, stop controls, and handoffs between agent conversations.
The target user is a vibe coder or non-specialist builder who wants the power of local coding agents without having to understand terminal sessions, process state, stale provider threads, or copy-paste handoffs.
Why this exists
Provider-native coding agents are powerful, but real work quickly becomes a session-management problem. A model is running in one terminal. A phone has a different client. A previous thread is resumable but not clearly alive. Another agent needs context, but the user has to manually summarize and paste it.
Agent Desk treats the CLI as the execution engine and keeps a stable product identity above it. The user sees a project, a conversation, a chosen provider/model setup, and clear states such as queued, running, replied, failed, stopped, or resumable. The product's job is not to replace Codex or Claude. It is to make local multi-agent work understandable and continuous.
System model
Phone / Mac / Windows browser
-> Agent Desk web UI
-> Windows host
-> local Codex / Claude / DeepSeek runtime
The important boundary is that Agent Desk owns the product session layer. Provider-native session ids are adapter handles, not the main user-facing model. This is why a user can reopen the browser, switch devices, or import an existing provider thread without losing the Agent Desk conversation identity.
The collaboration layer is deliberately user-confirmed. One conversation can suggest a handoff to another conversation, but the user previews and confirms it. Recent work also routes inter-role messages to exact work sessions, so a role with multiple conversations does not receive work in the wrong place.
Maturity
I would describe Agent Desk as mature enough for a portfolio demo and technical review, but not as a production remote-access product. The core architecture and phase-1 path are working; the remaining risk is product hardening around real-world provider edge cases and broader external testing.
| Area | Current evidence | Honest claim |
|---|---|---|
| Preview demo | Isolated preview on port 8776 with seeded Demo Workspace and screenshots. | Ready to show without exposing real local data. |
| Provider send | Real Codex send smoke returned a verified reply on the Windows host. | Codex path is demo-ready; other providers need environment-specific checks. |
| Continuity | Smoke coverage for refresh/reopen, restore state, queue cancel, stop, and continue. | The core "continue the same conversation" promise is covered. |
| Mobile control | Desktop and mobile Chrome DevTools smokes check the preview at phone widths. | Good enough for technical preview; real phone UX still deserves hands-on review. |
| Agent collaboration | User-confirmed handoff smoke plus work-session-specific inter-role routing tests. | The collaboration model is real, but should be explained carefully in the UI. |
Positioning: Agent Desk should be presented as a local project-control layer for AI CLIs, not as a hosted service, IDE replacement, or generic mobile chat client.
Reviewer notes
For a reviewer, the interesting engineering choices are the session boundary and the failure model. The system avoids treating a provider thread as the user's product identity. It also tries to make failure visible: expired login, missing CLI, queued message, stopped turn, failed runtime, and resumable conversation are shown as product states instead of disappearing into a terminal.
The next useful external test is simple: give another agent or reviewer the repository, ask them to start the isolated preview, create a conversation, send or diagnose one provider path, cancel a queued message, stop a running turn, refresh the browser, and confirm whether the model of "project -> conversation -> provider settings -> runtime state" is understandable without reading source code.
Source
MIT. Open source. Start the isolated preview locally to reproduce the project / conversation / runtime model end-to-end.
github.com/ttcd77/agent-desk