Skip to content

The palette

Ctrl+Shift+K (⌘+K on macOS), or Commands at the right of the toolbar, opens the infra workspace’s palette: one search box for its sessions, servers, groups, organizations, runbooks, alerts and actions.

The palette open over web-01’s pane

The palette: “Sessions, hosts, actions…”, scopes All, Sessions, Hosts, Groups, Orgs, Runbooks; Globex › web › web-01 (tab 1), the runbook Rotate the billing logs, Globex (Claude for the org), the two groups and the four hosts; a preview of web-01 on the right

With nothing typed: what you can go to. Actions show once you type.
  • Type to search. It uses the fzf syntax: fuzzy words, 'exact, ^prefix, !not. Matched letters are highlighted, best matches first.
  • ↑ ↓ move, ↵ opens, esc closes.
  • Tab and ⇧Tab switch scope: All, Sessions, Hosts, Groups, Orgs, Runbooks, Alerts, Actions, Themes. Only scopes with something in them show.
  • On a wide window, a preview on the right shows the selected item: a server’s address, group, alert, notes and open tabs; a session’s organization, group, panes and state.

These show with an empty query:

Group An item reads Opening it
Alerts investigate CRITICAL web-02 Makes the alert a card on the board, to look into. See Alerts.
Sessions Globex › web › web-01, Globex › Claude Goes to that tab. “▲ needs approval” marks one waiting on you.
Runbooks Rotate the billing logs Runs it with this tab’s Claude. See Runbooks.
Orgs Globex, “Claude for the org” The organization’s own Claude session.
Groups Globex › web, “group view” The group view.
Hosts Globex › db › db-02, “open ssh tab” Opens a tab on the server, or goes to its session.

A session or tab of another organization takes desk there: the Servers view follows.

Actions show once you type a few letters of them.

The palette with “open”: Open server notes, Open recordings, Open audit log

Typing “open” finds the folders desk keeps for you.
Action What it does
reload config Reads the organizations’ desk.toml files and servers files again.
copy server password Copies the focused server’s password (Ctrl+Shift+P types it into a waiting sudo prompt instead).
copy ssh command The ssh command for the focused server, on desk’s shared connection, for another terminal.
broadcast typing to all panes Turns broadcast on or off for the tab.
New directory split (files) The directory split for the focused server.
forward …, rforward …, socks … Port forwards.
export session report The tab’s session as Markdown. See Reports.
draft a postmortem with Claude Asks the tab’s Claude for a postmortem of the session.
compact Claude’s context, clear Claude’s context Shorten or empty the conversation.
model: opus, sonnet, haiku, default The tab’s Claude model, from the next question.
Open server notes The folder of Claude’s notes on each server.
Open recordings The folder of recordings.
Open audit log The folder of the audit log.
share the terminal as a camera, as a screen Show a pane in a call.
theme: … The workspace’s color theme.

The Open … actions open the folder in your file manager.

The palette with “report”: export session report, “markdown: conversation, commands, approvals”

The session report.

The palette lists the runbooks in <Org>/.desk/infra/runbooks/ of the tab’s organization, with “run with Claude” and the file.

The palette with “rotate”: the runbook Rotate the billing logs, “run with Claude · rotate-billing-logs.md”

A runbook, found by its title.

Pick one and the tab’s Claude follows it step by step (“▶ runbook: …” in the conversation). If Claude is busy, desk says so: start it when Claude is done, or stop it. How to write one: Runbooks.

Type a forward and pick it. It’s added to the focused server’s shared SSH connection, so no new login, and it comes back after a reconnect or a restart.

The palette with “forward 5432”: localhost → localhost via web-01

The palette says what the forward will do before you pick it.
You type What you get
forward 5432 localhost:5432 here reaches port 5432 on the server.
forward 9000:5432 localhost:9000 here reaches port 5432 on the server.
forward 9000:db.internal:5432 localhost:9000 here reaches db.internal:5432, through the server.
rforward 3000 Port 3000 on the server reaches port 3000 on this machine.
socks 1080 A SOCKS proxy on localhost:1080, through the server.

fwd works for forward. Typing just forward, rforward or socks shows these forms as hints. Each active forward is listed as stop forward …, to remove it.

New directory split (files), Ctrl+Shift+F or the toolbar’s folder button opens a two-panel file manager under the panes: the focused pane’s server on the left (in the shell’s current directory), this machine on the right. It works over the server’s shared SSH connection, with sh, ls/find, cat and tar, so the server needs nothing installed. One split per tab.

Key What it does
↑ ↓ PgUp PgDn Home End Move
Tab The other side
Enter or F3 Open a folder, or download a file and open it
Backspace Up a folder
Space, ⇧+arrows, Ctrl+click Mark
A Mark or unmark all
H or . Show dotfiles
R Reload
F4 Edit in your editor: each save is uploaded back, for an hour
F5 / F6 Copy / move to the other side
F2 or ⇧+F6 Rename
F7 New folder
F9 Chmod
F8 or Delete Delete (asks first)
Esc Cancel a copy, or close the split
  • Drag rows to the other side to copy them. Typing a name jumps to it.
  • When a copy meets a file that’s there already: O replaces, S skips, N cancels.
  • With F4, if the server’s copy changed since you opened it, desk asks before uploading.

To show a terminal in a video call without sharing your whole screen:

  • share the terminal as a camera makes a webcam called “desk terminal” that shows the focused pane (1280×720). Pick it as your camera in the call. It uses v4l2loopback when it’s loaded, or else PipeWire. Linux only.
  • share the terminal as a screen opens a window, “desk terminal share”, that shows the focused pane. Share that window from the call. On Hyprland desk also makes a headless monitor, DESK-SHARE, so the call’s screen picker lists it as a screen.

Both are view-only: nobody in the call can type. stop the terminal camera and stop sharing the terminal as a screen end them.

The palette with “share”: share the terminal as a camera, share the terminal as a screen

Two ways to show a pane in a call.