snowpea desktop — user guide
Agent (agent.snowpea.ai) · Registry (registry.snowpea.ai)
snowpea desktop is a desktop window onto a running snowpea core. The core does all the work: it owns your sessions, your memory, your scheduled jobs and your credentials. The IDE is one of three clients that talk to it, alongside the snowpea terminal UI and the headless CLI.
That matters more than it sounds. Every client that shares a SNOWPEA_HOME shares one daemon, and therefore one set of sessions. A thread you start here is visible in the TUI, and a session you started this morning in a terminal is in the sidebar when you open the app.
The screens
| Screen | Route | What it is for |
|---|---|---|
| Threads | / | Chat with the agent: streaming answers, approvals, slash commands |
| Diff review | /thread/:id/diff | Approve or reject what the agent changed, file by file |
| Agents | /agents | Agent definitions, running subagents, named agents and their channels |
| Worktrees | /worktrees | Parallel team runs: the task board and the worktrees behind it |
| Terminal | /terminal | A real shell per project, inside the app |
| Files | /files | Read-only file tree and viewer for the project |
| Skills | /skills | Search and install skills from the marketplaces |
| Schedule | /schedule | Recurring and one-shot jobs, and their live event feed |
| Gateway | /gateway | Chat-platform bindings and the unattended approval queue |
| Memory | /memory | Write and search the agent's long-term memory |
| Settings | /settings | Providers, project defaults, the shell allowlist, appearance |
| Setup wizard | /setup | First-run configuration; reachable any time from Settings |
A few more pages cover things that are not a screen of their own: Attachments and Voice, which live inside the thread screen; Projects, the sidebar that chooses a thread's working directory; Viewers, the file viewer shared by Files, diff review and chat; Signing in to a provider and Updating, which happen from Settings; Themes for the look of the app; and Packaging for building and shipping it.
The chrome
Three things are always on screen.
- The rail on the left lists the screens above.
Ctrl/⌘ 1…9jump to the nth entry, andCtrl/⌘ Bcollapses the rail to icons. - The status bar at the bottom reports the core:
connected, the protocol version both sides agreed on, the active theme, and the token count across every open thread. Anlsp 2segment appears when language servers are running, and stays on screen in the warning colour when one is broken — Settings → Tools has the detail. When it does not sayconnected, nothing else on this page will work, and the Settings page explains why. - The command palette opens with
Ctrl/⌘ Kanywhere, or by typing/in an empty composer. It runs the core's slash commands, so what it offers depends on which skills are installed.
Keyboard
Press ? for the full list, which is generated from the same table the app uses, so it cannot drift.
| Keys | Action |
|---|---|
Ctrl/⌘ K | Open the command palette |
? | Show the shortcut list |
Esc | Close the overlay or dialog on top |
Ctrl/⌘ B | Collapse or expand the sidebar |
Ctrl/⌘ , | Open Settings |
Ctrl/⌘ 1 … 9 | Jump to the nth screen |
Ctrl/⌘ Enter | Send the prompt |
Ctrl/⌘ V | Paste — attaches a clipboard image, otherwise pastes text |
Ctrl/⌘ . | Interrupt the running turn |
a / r | Approve / reject the focused file in a diff review |
If the app cannot find a core
On a machine with no core installed, the app does not fail with a spawn error: it shows a screen with the install command for your platform, a Retry button and a Choose binary… picker. Install the core, press Retry, and the app continues where it left off. See Packaging for where the core comes from in a packaged build.