Code review that proves every bug it reports.
pr-review reads your pull requests and code with Claude, writes a failing test for each bug it suspects, and runs it in a sandbox. You only see the bugs it proved, each with a fix that already passed your tests.
A bug in canRefund lets every role issue refunds. The agent's test fails on it, and the one-line fix passes the test and the existing suite.
How a finding is made
Suspicions are cheap. pr-review keeps only the ones a test can prove, and drops the rest before you see them.
- Your code: a pull request, a branch, or a whole repository.
- Checks and tests: compiler, linters and your test suite run first.
- Claude investigates: reads the code and its callers, and writes a test for each suspicion.
- Sandbox verifies: every test is re-run offline. Suspicions it can't prove are dropped.
- Proven bugs: each comes with its failing test and a fix that passed your suite.
What counts as proof
Every piece of evidence is checked by pr-review itself after the agent finishes. Nothing is taken on the model's word.
- A failing testThe agent writes a test for the correct behaviour. pr-review re-runs it: it must fail on your code and, for a pull request, pass before the change.
- A broken existing testA test from your own suite passes on the base branch and fails with the change.
- A compiler or linter errorA new tsc, ESLint, ruff or mypy error on a changed line. Reported as possible, not proven.
- Quoted codeThe exact lines that show the bug, confirmed to exist where the agent says. Kept only at high confidence.
Your scans in one place
Run pr-review ui for a local dashboard that works with your repositories.
- Start scans and reviewsPick a folder, a branch or a pull request, set a usage limit, and watch it work.
- Preview the fixSee the whole file as it is and as it would be with the patch applied.
- Apply and triageApply a verified fix to your working copy, undo it, or mark a bug as a false alarm.
Safe to point at your code
- Tests run in a sandbox with no network access and none of your secrets.
- The agent can read code and run tests. It can't write files, run commands, or reach GitHub.
- It works on a fresh copy of the repository, so git-ignored files such as .env are never there.
- A pull request can't change how it's reviewed: settings come from the base branch.
- A fix is written to your repository only when you click Apply, and nothing is committed.
Get started
You need Python 3.12 or newer, uv, and a Claude login or an Anthropic API key. TypeScript projects tested with vitest and Python projects tested with pytest are supported.
uv tool install git+https://github.com/Ibr4hiMM/pr-review-agentpr-review uipr-review scan ~/code/my-appTo review every pull request automatically, run pr-review init in your repository and add an ANTHROPIC_API_KEY secret on GitHub.