Desk has direct access to the host filesystem, Moor, Git, and any credentials
available to the user that runs it. Run it as yourself, on a machine you
control, and keep it bound to localhost.
Choose a runtime
- Default Bun mode
- Vite development mode
Install the complete CLI and run its private compiled runtime:This serves the embedded UI and backend without Vite.
127.0.0.1:5173 by default and fail rather than switching modes.
Keep the localhost default.
Working on a remote development box
If your code and agents live on a remote box, you still run Desk as yourself on that box and reach it over an SSH tunnel — Desk stays on localhost at both ends, and nothing is exposed to the network:127.0.0.1) and open
http://127.0.0.1:5173 in your local browser. The tunnel is authenticated by
SSH; Desk itself never listens on a public interface.
Install agent hooks
Managed agents report lifecycle and attention events through Desk-owned hooks:--home when preparing another user’s
home directory:
Verify your setup
The curl and source installation paths provide the same CLI. Check:- the agents sidebar lists expected sessions
- terminal cells connect
- the system segment updates
- channels load
- Git and GitHub panels use the expected repository
- notes and editor roots are the expected local paths
Local safety checklist
- Keep the default
127.0.0.1bind; never use0.0.0.0. - Run Desk as the user that owns the intended repositories and Moor sessions.
- Reach a remote box over SSH forwarding, not by exposing the port.
- Let each agent CLI manage its own credentials. Desk never reads or proxies
them — but a session bound to an agent profile authenticates into
~/.config/desk/profiles/<id>instead of the CLI’s usual home, because Desk setsCLAUDE_CONFIG_DIR/CODEX_HOMEfor that launch. Treat that directory with exactly the sensitivity of~/.claudeor~/.codex: it holds real credential files, Desk creates it0700, and anything that can read it can act as that account. - Use
desk up --dry-runbefore starting a large manifest. - Use the emergency kill switch only when you intend to stop all matching agent processes on the host.
- Back up
~/.config/desk/desk.ymlbefore large manifest edits. - Treat everything under
~/.config/deskas local user data —channels,notes, andprofilesmost of all.
Next steps
- Read Distribution and deployment for artifact and build details.
- Read Operations for runtime monitoring and controls.
- Read Troubleshooting and FAQ for setup symptoms.