Ultrareview
Run a deep, verified, multi-agent code review in a cloud sandbox with /code-review ultra, from your session or from CI.
Ultrareview is the heavy-duty version of /code-review. Instead of reviewing your diff inside your local session, Claude Code ships the change to a cloud sandbox and sets a fleet of reviewer agents on it. Every bug they report has been independently reproduced and checked, so what comes back is a short list of real defects rather than a wall of style notes.
Note: Ultrareview is a research preview. The command is
/code-review ultra; where ultrareview is available,/ultrareviewis an alias. Pricing and availability may change.
I treat it as a pre-merge gate for changes I would be nervous about: a migration, a rewrite of auth, anything touching money.
Why use it over a local review
- Verified findings. Each issue is reproduced before it is reported.
- More coverage. Many agents explore the change in parallel and catch things a single local pass misses.
- Zero local load. It runs entirely in the cloud as a background task, so your session stays usable.
/code-review | /code-review ultra | |
|---|---|---|
| Targets | Working diff, PR, branch or path | Working diff or PR |
| Where it runs | Your session | Cloud sandbox |
| Depth | Scales with the effort level you pass | Multi-agent fleet plus verification |
| Typical time | Seconds to a few minutes | About 5 to 10 minutes |
| Cost | Normal usage | Free runs, then usage credits |
| Use it for | Feedback while iterating | Confidence before merging something substantial |
See code review for the managed GitHub integration and the local command.
Requirements
- A claude.ai login. If you are on an API key only, run
/loginfirst. - Not available with Amazon Bedrock, Google Cloud's Agent Platform or Microsoft Foundry, nor for organisations with Zero Data Retention or the HIPAA configuration.
Where ultrareview is unavailable, /code-review ultra quietly runs a local review instead. It only ever starts when you ask; Claude never launches one on its own initiative.
Reviewing your branch
From any git repository:
/code-review ultra
That reviews your current branch against the default branch, including staged and uncommitted changes. Claude Code bundles the repository and uploads it, following the same rules as uploading a local repo to a cloud session: size limits, supported checkout layouts, and credential-like files such as .env and *.tfvars having their uncommitted changes held back.
Before launch, a dialog shows the scope (files and lines for a branch review), how many free runs you have left and an estimated cost. Confirm, and the review carries on in the background.
A different base
/code-review ultra release/2.4
The base does not need to exist locally; it is fetched from origin. Typos get a "closest branch" suggestion in the error. A commit SHA or tag also works as the base.
Adding a note (v2.1.218+)
You can describe what you care about in plain words:
/code-review ultra focus on the new retry logic in the queue consumer
The scope is still your current branch. The text is shown in the launch dialog and Claude relates the findings to it. A note must be more than one word and must not look like a branch or PR reference; a single word is treated as a branch name. Mixing a PR reference with other words (for example look at PR 88 again) does not launch; Claude asks you to pass either the bare PR number or no reference.
Reviewing a pull request
/code-review ultra 482
Also accepted: #482, PR 482, or a pasted PR URL for the repository you are in. In PR mode nothing is uploaded from your machine; the sandbox clones the PR from the host. That works for github.com and for GitHub Enterprise Server instances an Owner has connected. On github.com, the clone uses the GitHub account linked to your Claude account, so it must be able to read the repo. /web-setup links your gh login if needed.
Tip: If the repository is too big to bundle, Claude Code suggests PR mode. Push the branch, open a draft PR and run
/code-review ultra <number>.
Posting findings to the PR (v2.1.227+)
For github.com PRs you can have the results posted as one plain comment from your GitHub account. It is not a review or approval, and it ends with a "Generated by Claude Code" note. Branch reviews and GHES PRs show findings only in your session.
Posting is opt-in per run, and --no-post is the default:
- Interactive: choose Run and post the findings to the PR as me in the launch dialog. Adding
--post(e.g./code-review ultra 482 --post) preselects it, but you still confirm. - Non-interactive: use
claude ultrareview --post. Running it with the flag is your consent, so it posts without asking.
The post is made by the Anthropic API using your session ID and connected GitHub account, not from your machine. It needs the same claude.ai sign-in, is unavailable on third-party providers, and is disabled by CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC.
In an interactive session, keep the session open until the review finishes: the choice is remembered only in that session, and nothing is posted if it ends first (resuming later does not help). Afterwards Claude reports Posted with a link, Already posted with a link to the PR, or Failed with a reason, leaving the findings in your terminal to post by hand.
Diff limits and edge cases
Ultrareview checks the diff before doing any work.
| Situation | What happens |
|---|---|
| Too large | Branch reviews allow up to 500 changed files and 8,000 changed lines by default (values may change). The refusal states the limits, your diff size and the heaviest files. Over-sized PRs are refused with file and line counts |
| Empty diff | Refused, naming what it compared against and why (for example, you are on the base branch with nothing uncommitted), with a suggested fix |
| First commit (v2.1.277+) | Reviews every file after you confirm in the dialog. Refuses if there are untracked files, asking you to git add what you want reviewed. The subcommand and claude -p refuse and send you to an interactive session |
| No merge base | Reviews every tracked file, needs a full clone, same size limits. Launches only after dialog confirmation or when you run the subcommand yourself; claude -p refuses |
No branches or refs (e.g. detached FETCH_HEAD) | Refused, suggesting you create a branch |
Pricing
Ultrareview bills against usage credits, not your plan's included usage.
| Plan | Free runs | Afterwards |
|---|---|---|
| Pro | 3 | Usage credits |
| Max | 3 | Usage credits |
- The three free runs are a one-off allowance per account and never refresh.
- A paid review typically costs US$5 to US$25 depending on size, in line with the estimate in the launch dialog.
- A run counts once the cloud session starts. Stopped or failed reviews still consume a free run; paid ones bill only for what ran.
- Usage credits must be switched on, or the launch is blocked (with a link to billing if you manage it).
/usage-creditsshows or changes the setting. - You confirm credit billing once per conversation; after
/clearyou are asked again.
See costs for broader spend management.
While it runs
Reviews usually take 5 to 10 minutes. Use /tasks to see running and finished reviews, open details or stop one. Stopping archives the cloud session and returns nothing partial.
Claude will tell you if:
- the cloud session was stopped or archived on claude.ai before finishing (the review was stopped);
- the session was deleted, or you have switched Claude account or organisation since launch (session not found). If you switched accounts and the review is still running, sign back in to the original account and
claude --resumethe conversation to reattach.
When it completes, the verified findings arrive as a notification with file locations and explanations, ready for you to say "fix the second one".
Running it from CI or scripts
claude ultrareview starts the same review without an interactive session, waits for it, and prints findings to stdout (progress goes to stderr).
claude ultrareview # current branch vs default branch
claude ultrareview 482 # a pull request
claude ultrareview origin/release # against another base
| Flag | Effect |
|---|---|
--json | Print the raw bugs.json payload |
--timeout <minutes> | How long to wait; default 45 |
--post | Post findings to a github.com PR as one comment from your account (ignored with a notice on other targets). v2.1.227+ |
--no-post | Do not post (the default; wins if both are given). v2.1.227+ |
Exit codes: 0 review completed (with or without findings), 1 failed to launch, stopped, errored or timed out, 130 interrupted with Ctrl-C.
Running the subcommand yourself counts as consent to the billing prompt and to the whole-repository fallback. When Claude runs it for you through the Bash tool, the whole-repository review is refused.
Do not use claude -p '/code-review ultra' in scripts: it launches the review and exits before findings arrive, and if the run would bill credits it does not launch at all. (Before v2.1.218 it ran a local review.) If the subcommand exits before results arrive, they are lost to your terminal even if the cloud review continues, and rerunning starts a new, billable review.
With --post, the comment link is printed to stderr after the findings. Nothing is posted if the review fails, is stopped or times out; if posting itself fails, the reason goes to stderr and the findings remain on stdout.
Here is a minimal GitHub Actions step I use on release branches:
- name: Ultrareview
run: claude ultrareview "${{ github.event.pull_request.number }}" --json --timeout 30 > ultrareview.json
For reviews on every PR without any CLI step, the managed Code Review integration is usually a better fit.