CLI reference
The installer puts a cross-review command in ~/.local/bin (not on Windows). It runs the installed runner, ~/.claude/skills/cross-review/scripts/review-runner.js; without the command, run node on that file with the same arguments. Run cross-review with no command to print the usage of the low-level commands.
cross-review versioncross-review dashboard [--root DIR] [--port N] [--no-open] [--idle-exit SECONDS]cross-review plans --working-dir DIR [--finished FILE]
# Used by the skills (CLI fallback when the MCP server is not available)cross-review begin --skill SKILL [--mode MODE] --input FILE|- [--working-dir DIR] [--model NAME] [--effort LEVEL] [--timeout SECONDS] [--reviewer NAME] [--skills-dir DIR]cross-review wait SESSION_DIR [--max-wait SECONDS]cross-review reply SESSION_DIR --input FILE|- [--model NAME] [--effort LEVEL]cross-review end SESSION_DIR [--outcome consensus|stalemate]Everyday commands
Section titled “Everyday commands”| Command | What it does |
|---|---|
cross-review version |
Prints the runner version as plain text (15). |
cross-review dashboard |
Serves the dashboard on 127.0.0.1 and prints its link. See the dashboard guide. |
cross-review plans --working-dir DIR |
Creates .cross-review/plans/ in DIR, keeps its .gitignore in step with the settings, and prints the plans as JSON. |
dashboard options
Section titled “dashboard options”| Option | Default | Description |
|---|---|---|
--root DIR |
The current directory | Folder to scan. The scan goes three levels down. It must exist. |
--port N |
A random port from 20000 to 30000 | Port to listen on. Must be a port number. |
--no-open |
Off | Prints the link and does not open the browser. |
--idle-exit SECONDS |
Off | Stops the dashboard after this many seconds with no open browser page. Must be a number above zero. |
Errors go to stderr, and the command exits with 1.
plans options
Section titled “plans options”| Option | Description |
|---|---|
--working-dir DIR |
Required. The workspace whose plans are listed. |
--finished FILE |
A plan file that just finished. With open_plans on, the command opens its Plan tab in the dashboard. |
The output is one JSON object with dir, track_plans, gitignore, git, plans, and, when there is something to report, warning, dashboard_url or dashboard_error.
Verbs the skills use
Section titled “Verbs the skills use”These four verbs wrap a review round. The skills call the MCP tools when they are available and fall back to these commands otherwise. See MCP tools for the same operations as tools.
| Command | Input | Output |
|---|---|---|
begin |
--skill, --input (required), plus the optional flags below |
JSON with session_dir, round, status, and analysis_prompt for peer skills. |
wait SESSION_DIR |
--max-wait (seconds, default 110) |
JSON poll result with next and next_reason. |
reply SESSION_DIR |
--input (required) |
JSON with status, session_dir, round, thread_id. |
end SESSION_DIR |
--outcome (optional) |
JSON with status, session_dir, finalized, and verdict or error when present. |
begin options
Section titled “begin options”| Option | Description |
|---|---|
--skill |
One of review-plan, review-impl, review-think, review-pr. |
--mode |
Required by review-impl: working-tree or branch. Not needed by the other skills. |
--input |
A file with the placeholder values in markdown, or - for stdin. |
--working-dir |
The repository under review. Defaults to the current directory. |
--model, --effort |
Reviewer model and reasoning effort. When omitted, the settings decide. |
--timeout |
Deadline for the reviewer in seconds. Default 18000 (5 hours). |
--reviewer |
Reviewer CLI. Only codex today. |
--skills-dir |
Folder with the skill’s references/ templates. Defaults to the installed skills. |
wait, reply and end options
Section titled “wait, reply and end options”wait --max-waitsets how long one call waits for the reviewer. The call returns earlier when the round ends.reply --inputtakes the next round’s placeholder values.--modeland--effortchange the stored settings for later rounds.end --outcometakesconsensusorstalemate. Peer skills (review-think,review-pr) need it when their exit rule is met. Plan and implementation reviews take their verdict from the last round and do not need it.
Low-level runner commands
Section titled “Low-level runner commands”Use these only when you debug a session by hand. They change session state without the checks the verbs make.
| Command | Purpose |
|---|---|
init --skill-name NAME --working-dir DIR [--reviewer NAME] |
Creates a session directory and prints SESSION: followed by its path. |
start SESSION_DIR |
Starts round 1 from a prompt on stdin. Flags: --model, --effort, --timeout, --sandbox, --stall-threshold. |
resume SESSION_DIR |
Starts the next round on the same reviewer thread from a prompt on stdin. Flags: --model, --effort, --timeout, --stall-threshold, --recovery. |
poll SESSION_DIR |
Prints the round status. Flag: --min-interval (seconds, default 120). |
stop SESSION_DIR |
Stops the reviewer. |
finalize SESSION_DIR |
Writes meta.json. Reads an override JSON on stdin, for example {"verdict":"APPROVE"}. |
status SESSION_DIR |
Prints the session state. |
render --skill NAME --template NAME --skills-dir DIR |
Prints a rendered prompt. The placeholder values come as JSON on stdin. |
start uses the reviewer’s read-only sandbox unless --sandbox names another one. begin starts the reviewer with the full-access sandbox, and reply resumes it with the sandbox stored in the session. See session files for what each command writes.
Exit codes
Section titled “Exit codes”The process exit code is 0 for success and 1 for an error. The verbs also exit with 5 when the reviewer CLI is missing.
| Code | Meaning | Where it appears |
|---|---|---|
0 |
Success. | Any command. |
1 |
Any other error. | Any command. |
5 |
The reviewer CLI was not found in PATH (REVIEWER_NOT_FOUND). |
begin, start, resume, reply. |
Commands that print JSON report an error as JSON on stdout, with status set to error, a code and a message. dashboard prints its errors as text on stderr.
Round results
Section titled “Round results”These are not process exit codes. The poll result of a round carries an exit_code field: 2 for a runner deadline timeout, 3 for a failed turn, and 4 for a stalled reviewer (12 checks in a row with no new output; at the skills’ two-minute interval, about 24 minutes). poll exits with 0 whatever the result. wait exits with 1 when the round result has an error (a failed, stalled or timed-out round), and its output still carries status, next and next_reason.
