Keyboard
Press ? anywhere outside a terminal or text field for the same list, generated from the shortcuts that are actually registered. ⌘K opens the command palette, which lists most actions by name.
How keys reach the terminal
Section titled “How keys reach the terminal”An agent pane is a real terminal running a real program, and it wants its keys. So:
- Letter keys never reach into a terminal. While focus is in a terminal or a text field, only the modifier chords marked anywhere below work; everything else goes to the program.
- Off macOS, add Shift inside a terminal. “⌘” is Ctrl on Linux, and terminal programs use Ctrl chords themselves (Ctrl+K kills a line, Ctrl+W a word). Inside a terminal, spwn’s chords need Shift as well: Ctrl+Shift+K opens the palette, while Ctrl+K still reaches the program. Outside a terminal, plain Ctrl+K works.
- Esc goes to the agent. In an agent pane, Esc interrupts the running turn, as it does in Claude Code.
Keys in this page are written for macOS. Elsewhere, read ⌘ as Ctrl and ⌥ as Alt.
| Key | Action | Works |
|---|---|---|
| ⌘K | Command palette | anywhere |
| ⌘0 | Go to the Fleet | anywhere |
| ⌘1 … ⌘9 | Open the Fleet’s session 1–9, in the Fleet’s order | anywhere |
| ⌘B | Toggle the sidebar | anywhere |
| ⌘W | Close the pane (never the Fleet) | anywhere |
| ⇧⌘F | Fork the session on screen | anywhere |
| ? | Keyboard shortcuts | page |
| Esc | Back to the Fleet, from a pane with no Esc of its own | page |
While the Fleet is the visible pane:
| Key | Action |
|---|---|
| j / ↓ | Next session |
| k / ↑ | Previous session |
| g g / Home | First session |
| G / End | Last session |
| Space | Peek |
| r | Reply to the selected session |
| ↵ / → / o | Open session |
| 1 … 9 | Answer the selected prompt with that choice |
| f | Fork the selected session |
| c | Compare the selected session’s forks |
| l | Land the selected session (queue it) |
| d / Delete | Delete the selected session… |
| / | Filter sessions |
| Esc | Close peek, or clear the filter |
g g is a sequence: press g twice within 0.8 seconds.
In the filter box, ↵ or ↓ jumps to the first match and Esc clears it. In peek’s reply box, ⌘↵ sends and Esc closes peek.
Compare
Section titled “Compare”While a Compare pane is visible:
| Key | Action |
|---|---|
| h / ← | Previous lane |
| l / → | Next lane |
| p | Pick the focused attempt |
| v | Check the focused attempt merges and passes |
| d | Diff against the next sibling |
| ↵ / o | Open the focused attempt |
Land order
Section titled “Land order”While a project’s Land order is visible:
| Key | Action |
|---|---|
| j / ↓ | Next entry |
| k / ↑ | Previous entry |
| J | Move it later |
| K | Move it sooner |
| h | Hotfix: land it before everything else (again to undo) |
| p | Pause / resume |
| x / Delete | Take it out of the order |
| ↵ / o | Open the session |
Source control
Section titled “Source control”While a project’s Source Control pane is visible:
| Key | Action |
|---|---|
| r | Refresh pull requests now |
| j / ↓ | Next pull request |
| k / ↑ | Previous pull request |
| ↵ | Open it on GitHub |
Dialogs and panels
Section titled “Dialogs and panels”| Where | Key | Action |
|---|---|---|
| Command palette | ↑ / ↓, ⌃P / ⌃N | Move |
| Command palette | ↵ | Run |
| Command palette | Esc | Close |
| Fork dialog | ⌘↵ | Fork |
| Fork dialog | Esc | Close |
| Confirm dialogs | ↵ | Confirm |
| Confirm dialogs | Esc | Cancel |
| Clone repo | Esc | Cancel |
| Shortcut list | ? / Esc | Close |
| Project ⋯ menu | Esc | Close |
| Transcript tab | ⌘F | Find in the conversation |
| Transcript find | ↵ / ⇧↵ | Next / previous match |
| Transcript find | Esc | Close find |