Desk is a local operator workspace for running many coding agents at once. It keeps each agent alive in a Moor session, renders the fleet in a browser multiplexer, and adds the collaboration and development tools you need around those agents: channels, an IDE, LSP-backed code intelligence, Git, GitHub, project boards, notes, and operational telemetry.
The agent multiplexer: four durable Moor sessions in a 2x2 group

The agent multiplexer: four durable Moor sessions in a 2x2 group

Start in five minutes

Install Desk, start the server, authenticate agent tools, and launch your first durable session.

Understand the model

Learn how Moor, the manifest, the browser, the terminal daemon, and agent hooks fit together.

Create an agent fleet

Configure projects, groups, sessions, layouts, and agent permissions for a multi-agent workspace.

Operate and troubleshoot

Diagnose terminal, channel, GitHub, LSP, permission, and deployment issues.

What Desk is for

Use Desk when you want one local control room for a group of agents working across projects, branches, terminals, files, and team-like conversations. Desk is built for:
  • Agent operators who need to keep Codex, Claude, OpenCode, Qwen, Kimi, Grok, shell, and custom-command sessions alive while switching between groups quickly.
  • Repository maintainers who want terminals, editor tabs, Git operations, GitHub context, project boards, and notes in one browser workspace.
  • Multi-agent workflows where agents need shared channels, mentions, threads, delivery diagnostics, and explicit operator intervention points.
  • Remote development boxes where code, credentials, Moor, Git, agent CLIs, and language servers already live on the host.

How the system is organized

Desk separates process ownership from view ownership:
  • Moor owns process lifetime. Agent sessions keep running when the browser closes, the network drops, or the Desk server restarts.
  • The manifest owns intent. ~/.config/desk/desk.yml defines projects, groups, sessions, layouts, startup commands, permissions, and UI settings.
  • The browser owns the view. The UI subscribes to terminals, channels, files, diffs, project boards, notes, and telemetry without becoming the owner of the agent process.
  • The terminal daemon owns terminal transport. One binary browser WebSocket multiplexes visible surfaces while the supervised daemon manages Moor holders, generation fencing, snapshots, input, and resize.
  • Hooks own agent events. Codex, Claude, OpenCode, Qwen, Kimi, and Grok report lifecycle, attention, prompt, stop, and permission events back to Desk.
Read Architecture and Workspace model before designing a larger fleet.

Documentation map

Start here

Concepts

  • Architecture explains the runtime components.
  • Workspace model explains projects, groups, sessions, layouts, durable session ids, and resume ids.
  • Agents and terminals covers the native chat surface, terminal behavior, attention, rendering, and session controls.
  • Channels protocol documents message storage, delivery, mentions, and diagnostics.

Guides

Operations and reference

First decision

Install the complete CLI, then choose a server mode:
desk serve launches the release-private compiled runtime and embedded UI. Start with Getting started, then read Distribution and deployment and Deploy and secure Desk.
Desk is local-first by default. Keep it bound to 127.0.0.1; if you work on a remote development box, reach it through SSH port forwarding. Read Security and plugin model before adding local runtime extensions.