Staff Review

CLI reference

Every staff subcommand at a glance.

staff [serve] [<slug>] [--port <n>] [--open] [--no-open] [--repo <dir>]
                                       Open the web UI (default). <slug> like main..WT.
staff diff [<slug>] [--base] [--head]  Create/load a diff and make it active.
staff files [--json]                   List the file-level changes for a diff.
staff comment add|edit|delete|list|resolve|unresolve
                                       Post and manage review comments (used by the skills).
staff settings [get <key>]             Read global settings (e.g. loopMaxRounds).
staff settings set openBrowser false   Stop opening the browser automatically.
staff install                          Write the skills + initialize the .staffreview/ store.
staff --help                           Full usage.

Diffs

staff main..WT                         # open the UI on main → working tree
staff main..WT --port 4400             # serve the UI on a specific port
staff main..WT --no-open               # start the server and print the URL only
staff --open                           # override openBrowser=false for one run
staff diff main..WT --json             # create/load the diff, print its JSON
staff diff --base HEAD --head working-tree --json
staff active --json                    # the currently active diff
staff files --json                     # { path, status, oldContent, newContent } per file

A slug is <base>..<head>, where each side is WT (working tree), STAGED, or a git ref (branch, tag, or SHA).

Comments

# Inline (anchored to a file + line); add --end-line for a range
staff comment add --file path/to/file.ts --line 42 --side new \
  --author "Opus 4.8" --priority P1 --body "Off-by-one: misses the last element."

# Top-level (no --file/--line)
staff comment add --author "Opus 4.8" --body "Overall looks good once tests pass."

# Reply, edit, delete
staff comment add --reply-to <id> --author "Opus 4.8" --body "Good catch."
staff comment edit --id <id> --body "Corrected wording."
staff comment delete --id <id>

# List
staff comment list --json
staff comment list --open --json

# Resolve / unresolve a thread
staff comment resolve --thread <id> --author "Opus 4.8" --status fixed   --body "Reordered the loop, added a test."
staff comment resolve --thread <id> --author "Opus 4.8" --status skipped --body "Intentional — see ADR-0007."
staff comment resolve --thread <id> --author "Opus 4.8" --status documented --body "Saved." --documented-as error-handling.md
staff comment unresolve --thread <id>

--priority (P1/P2/P3) is an agent-only severity for triage — P1 is the most urgent. Humans don’t set it; leave it off for purely informational top-level comments.

Settings

staff settings get loopMaxRounds       # /staff-loop round cap (default 5)
staff settings get reviewAgents        # /staff-review agent fan-out (default 2)
staff settings get docsAgents          # /staff-docs scout fan-out (default 5)
staff settings get openBrowser         # browser auto-open preference
staff settings set openBrowser false   # make --no-open the default
staff settings get structuredHighlighting        # intra-line word-diff toggle
staff settings set structuredHighlighting true   # turn it on by default

Settings (theme, split/unified, font size, syntax theme, browser auto-open, intra-line word-diff highlighting, review-loop cap, the review agent count, and the docs scout count) live in the gear menu and persist globally.

On this page