Skip to content

Command line

The revue command opens checkouts and pull requests in the app, installs Revue’s git hooks, and gives coding agents the comments you send them. Install it from Setup or with Revue › Install Command Line Tool, which writes a small script to /usr/local/bin/revue that starts Revue.

The app answers the commands that open things. Every other command goes to revue-server, a helper inside the app, so revue hooks status and revue-server hooks status are the same command.

Terminal window
revue [PATH]

Opens the current folder, or PATH, in Revue, starting the app if it isn’t running, then returns. A checkout opens on its current branch, with its stack and snapshots. If a tab already shows it, Revue switches to that tab. revue stack does the same as revue.

To compare two revisions of a checkout, name it with --repo and add --compare:

Terminal window
revue --repo PATH --compare FROM TO

revue --version prints the version, and revue --help prints a usage summary.

Add --new-tab to open a new tab even when one already shows the checkout, or --new-window to open a new window.

Terminal window
revue relaunch [same arguments as revue]

Quits the running app so the copy you installed starts again with your windows and tabs, then opens what you named, as revue would. Use it after replacing Revue.app by hand.

Terminal window
revue --pr OWNER/REPO#NUMBER [one target]

Opens a pull request without a checkout. Add at most one target to open it at one thing:

  • --thread ID: a review thread, by its GitHub node ID.
  • --comment ID: a review comment, by its node ID or the number in a #discussion_r link.
  • --review ID: a submitted review, by its node ID or the number in a #pullrequestreview- link.
  • --item ID, with --source NAME: a result from an agent source. Without --source, every source is searched.
  • --path FILE, with --line N, --side LEFT|RIGHT and --head SHA: a file, or a line in it. The side is RIGHT unless you say otherwise, and --head names the commit the line number is for.

--view backport opens the pull request in the backport comparison, and can go with any target.

A Revue link does the same as --pr. Copy one with Edit › Copy Revue Link to Thread, and open it with:

Terminal window
revue 'revue://pr/OWNER/REPO/NUMBER?thread=ID'

--pr and a Revue link open on their own, so they can’t be combined with a checkout path or --repo.

Terminal window
revue auth login

Signs in to GitHub with a code from the terminal and saves the token as token in Revue’s data folder. It needs a config.json in that folder naming a GitHub OAuth app, so it’s for scripted setups. Most people sign in from Setup or Settings › Accounts. See Sign in to GitHub.

Run these inside a checkout. With neither flag, they act on both hooks.

Terminal window
revue hooks install [--rewrite-log] [--change-id]
revue hooks uninstall [--rewrite-log] [--change-id]
revue hooks status [--rewrite-log] [--change-id]
revue hooks print --rewrite-log|--change-id
  • --rewrite-log is git’s post-rewrite hook. It logs each amend and rebase, so a change keeps its snapshots and comments when you rewrite it.
  • --change-id is a commit-msg hook that adds a Gerrit-style Change-Id trailer to each commit. Under jj, installing it is refused, because jj tracks changes itself.
  • status prints installed, absent or foreign for each hook. Foreign means a hook Revue didn’t write is there. Revue never overwrites one, and prints the line to add to your own hook instead.
  • print writes one hook’s script to the terminal, so you can share it.

If core.hooksPath points somewhere else, install says so, because git won’t run the hooks it installed. See Keep track of changes through rebases.

Coding agents run these in a checkout to read the comments you send them. Claude Code’s plugin runs them for you (see Claude Code plugin), and Codex runs them when you ask (see Use Revue with Codex). They work whether or not the app is running.

Terminal window
revue comments [--json] [--since <cursor>] [--all] [--session <id>]

Lists the comment threads sent to this session, with where their lines are now. --json prints them for a program, with a cursor to pass to --since next time. --all lists every local thread in the checkout.

Terminal window
revue reply <id> <<'EOF'
What you changed and where.
EOF

Replies on a thread. Give the text after the ID, or leave it out (or write -) to read it from standard input. A quoted heredoc, as above, stops the shell changing the text. A resolved thread takes no replies until you reopen it in Revue.

Terminal window
revue resolve <id> [--message <text>]

Marks a thread addressed, with an optional last reply. It doesn’t resolve the thread: you check the change and resolve it in Revue.

Terminal window
revue checkpoint [--message <text>] [--quiet] [--leftover]

Records the working copy as a checkpoint, labelled with the message. Checkpoints need a branch, so with a detached HEAD it prints that nothing was recorded. --leftover records only turns that earlier sessions captured but never recorded, and --quiet prints only errors.

Terminal window
revue agent attach [--agent claude-code|codex] [--name <title>]
revue agent await [--timeout <seconds>]
revue agent prompt | stop | tool | detach

What the plugin’s hooks run. Codex runs revue agent attach --agent codex --name Codex at the start of a task, so Revue shows its session. The others follow a Claude Code session’s turns and wake it when comments arrive.

Terminal window
revue agents install [--dry-run] [--yes]
revue agents uninstall [--dry-run] [--yes]
revue agents status

Installs, updates or removes the Claude Code plugin, and prints its state. Install and uninstall show their plan and ask first. --dry-run only prints the plan, and --yes skips the question. See Claude Code plugin.

These serve Revue’s review API and run its AI review outside the app, for scripts and Revue’s own tests. The app never needs them.

Serves every tracked repository on 127.0.0.1:8787 and syncs them from GitHub every minute. It prints REVUE_READY and the address once it’s listening.

Terminal window
revue track <owner/repo>

Copies a GitHub repository into the data folder and adds it to what revue serve syncs.

Terminal window
revue ai-review <owner/repo> <pr> <toSeq> [fromSeq]

Runs an AI review of a tracked pull request’s snapshot toSeq, or of what changed since snapshot fromSeq.

Terminal window
revue ai-review-backport <owner/repo> <backportPr> <sourcePr[,sourcePr...]|auto> [backportSeq]

Reviews a backport against the pull requests it came from. auto finds them.

Prints the review API’s GraphQL schema.

The app also takes flags that only development builds and tests use: --server with --group and --snapshot, --demo, --demo-files, --visual-fixture and --benchmark. See Environment variables for the variables these commands read.

Command 0 1 2
revue, revue --pr, revue relaunch Opened The app couldn’t open it A mistake in the arguments
revue hooks, revue auth and the developer commands Done The command failed A mistake in the arguments
The agent commands Done The command failed, or a mistake in the arguments Only revue agent await: new comments arrived

Run by one of the plugin’s hooks outside a checkout Revue knows, the agent commands exit 0 and do nothing.