Skip to main content

Reference

Keyboard Shortcuts

Spruce is fully keyboard-driveable. The tables below are the defaults; every binding is remappable under Settings → Keyboard Shortcuts, and overrides are stored per machine.

Shortcuts use on macOS and Ctrl on Windows / Linux unless otherwise noted. = Shift, = Option / Alt, = Control (macOS only; on Windows / Linux this maps to Alt).

ShortcutAction
⌘KOpen command palette
⌘PSearch project-wide
⌘FFind — toolbar search on lists, in-document on the artifact editor, in-file on the code viewer
⌘⇧[Go back
⌘⇧]Go forward
EscClose artifact viewer
⌘BToggle sidebar (left nav)
⌘⇧2Go to Documentation
⌘⇧3Go to Settings

There's no dedicated "Go to " shortcut; per-view shortcuts are dynamic and unbound by default. Assign them under Settings → Keyboard Shortcuts in the Views category, where every saved view and By type view appears.

Focus bar

ShortcutAction
⌘[Previous focus bar item
⌘]Next focus bar item
⌘1 – ⌘9Jump to focus bar item 1–9

Paired tool shortcuts

Each tool that exists in both surfaces — the tool panel and the global tool pages — gets a pair of shortcuts. The same letter, two modifiers:

  • ⌘⇧<key>: toggle the tool panel tab on the open artifact (no-op outside an artifact).
  • ⌘⌥<key>: navigate to the matching global page.
ToolToggle tabGo to global page
Code⌘⇧E⌘⌥E
Comments⌘⇧M⌘⌥M
Activity⌘⇧A⌘⌥A
Sessions †⌘J⌘⇧J
Git ‡⌘⇧V(no global page)

† Sessions preserves single-modifier ⌘J for the tab, matching VSCode's "Toggle Panel" muscle memory. The global Sessions page lives at ⌘⇧J. ‡ "V" for version control. Git is artifact-scope only; there's no global Git page.

Other tool actions

ShortcutAction
⌘⇧/Toggle resolved comments visibility
⌘⇧DToggle code-changes overlay

Terminals

ShortcutAction
⌘⇧`New terminal session (in current artifact)
⌘`New native terminal (hand off to your OS terminal)

Session tabs (when the terminal pane is focused)

ShortcutAction
⌃⌘[Previous session tab
⌃⌘]Next session tab
⌃⌘1 – ⌃⌘9Jump to session tab 1–9

Git

All Git shortcuts operate on the open artifact and no-op outside an artifact context. Each one corresponds to an entry in the Git tab of the tool panel.

ShortcutAction
⌘⇧WStart working (create branch + worktree)
⌘⇧OCheckout branch
⌘⇧CCommit
⌘⇧PPush
⌘⇧SStash changes
⌘⇧UPop stash
⌘⇧RUpdate from main
⌘⇧LCreate pull request
⌘⇧GMerge to main
⌘⇧⌫Delete branch
⌘⇧IView uncommitted changes
⌘⇧HView branch commits
⌘⇧BView all branch changes

Dynamic shortcuts (unbound by default)

Spruce auto-registers shortcut entries for runtime-discovered things:

  • Creation: one entry per artifact template (Create Feature, Create Task, Create <your custom type>, …).
  • Actions: one entry per project-defined action (Run dev server, Run tests, Launch Claude, …).
  • Views: one entry per saved view (view:<id>).

These ship unbound so they don't collide with the built-in shortcuts when you add a new template or action. Assign keys to the ones you reach for most under Settings → Keyboard Shortcuts; they're grouped under Creation, Actions, and Views in the settings panel.

Dev

ShortcutAction
⌘⇧TToggle feature flags

Rebinding

Every shortcut above is a default, not hard-coded. Open Settings → Keyboard Shortcuts to rebind any action. Overrides are stored in your browser's localStorage per machine. Switching machines (or signing in on a fresh install) gives you the defaults again.