Skip to main content

Tools

Tools Overview

A tool in Spruce is a long-running surface for one kind of project state — what code is here?, what's been happening?, what comments are open?, what's running in a terminal?, what's the git state?. Spruce ships five:

ToolWhat it is
CodeFile browser for the linked code repos
ActivityUnified feed of commits, pending Spruce changes, and pending code changes
CommentsComment threads on artifacts and code lines
SessionsBuilt-in terminal sessions
GitBranch + worktree info, smart action, view changes, full git actions, commits, Finish

Two surfaces, one tool

Each tool has up to two surfaces, the same content model with different chrome:

  • Global page: full-screen, project-wide. Reachable from the Tools section of the sidebar. Use when you're surveying the whole project.
  • Artifact-scope tab: embedded in the tool panel on an open artifact. Scoped to that artifact, with the panel's per-artifact memory (which tab, scroll position, the active session, all restored when you click an artifact chip in the focus bar).

Each tool's page below covers both surfaces and any differences. Git is the one exception; it's artifact-scope only and there's no global Git page (see Why no global Git page).

Paired keyboard shortcuts

Each tool has a pair of shortcuts. The same letter, two modifiers:

  • ⌘⇧<key>: toggle the tool panel and switch to the tool's tab on the open artifact (no-op outside an artifact).
  • ⌘⌥<key>: navigate to the global page from anywhere.
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 to match VSCode's "Toggle Panel" muscle memory; the global Sessions page lives at ⌘⇧J. ‡ "V" for version control. Git is artifact-scope only.

The pairing keeps the same letter for both halves of a tool but lets you reach either surface explicitly. See Keyboard Shortcuts for the full table.

Per-tool pages

  • Code — file browser for the linked repos (global) and the artifact's worktree (artifact-scope).
  • Activity — project-wide event feed (global) and per-artifact feed (artifact-scope).
  • Comments — every thread across the project, plus the artifact-scope subset.
  • Sessions — session list + active terminal (global) and a tab strip of per-artifact sessions (artifact-scope).
  • Git — artifact-scope only.