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:
| Tool | What it is |
|---|---|
| Code | File browser for the linked code repos |
| Activity | Unified feed of commits, pending Spruce changes, and pending code changes |
| Comments | Comment threads on artifacts and code lines |
| Sessions | Built-in terminal sessions |
| Git | Branch + 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.
| Tool | Toggle tab | Go 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.
Related
- The Artifact Editor → The tool tabs — how the artifact-scope tabs work, the panel's persistence, and the embedded-vs-global model.
- The Sidebar — where the global tool pages are reachable from.
- The Focus Bar — what context-switching between artifacts looks like with the tool panel's per-artifact memory.
- Keyboard Shortcuts — the full paired-shortcut table.