Command palette

One keystroke to find any command in the app.

How to open

⌘K (macOS) or Ctrl+K (Linux/Windows). A floating overlay with a single search field.

Don't confuse ⌘K (palette) with ⌘K inside the editor (which triggers Inline diff). Same keystroke, different surface — the editor has higher precedence when focused.

What's in it

Every command in the app:

  • Navigation actions (Open Settings, Open Terminal, Toggle Console).
  • Editor actions (New File, Save All, Format Document).
  • Agent actions (New Run, Cancel Run, Open History).
  • View toggles (Toggle Sidebar, Toggle Right Panel).
  • Theme switches.

Plus recent actions (★) pinned to the top.

Filter syntax

Plain substring works for most cases. Type terminal and you'll see "Open Terminal", "Toggle Terminal", "New Terminal Tab". The matcher is fuzzy — typos are forgiven within reason.

Each result shows:

  • Command label.
  • Category badge (Editor / Project / Run / Agent / Help).
  • Keyboard shortcut chip if one is bound.

Categories

Commands are grouped by section. The full set is in static/js/palette-commands.json. Categories:

  • Editor — file operations, cursor commands, formatting.
  • Project — load, scan, switch workspace.
  • Run — agent runs, cancellations, history.
  • Agent — autonomy, model overrides, run controls.
  • Help — open docs, cheat sheet, about.

Esc to close

Esc closes the palette without executing anything. Same with clicking outside.

Customizing

The palette is read from a built-in JSON registry. To add custom commands, drop a palette.json in your workspace root with the same shape — it merges into the registry on next workspace load.