A real AI agent reviews your pull requests.
PR Radar lives in your menu bar, shows only the reviews a person actually asked of you, then reads the code and reviews it for you - across your whole organisation, against the ticket the change was supposed to implement.
The reviewer
It investigates before it judges
Turn it on and every PR gets a Review button. It is a real agent, not a one-shot diff summary: it reads the change, opens the surrounding files, searches every other repository in your organisation for whoever calls the thing that changed, and follows the work into your ticket, its epic, docs, metrics, flags and infrastructure before it forms an opinion.
- It checks the blast radius. A change is only safe if its callers survive it, and they usually live in another repository. PR Radar mirrors your organisation locally so the agent can go and look.
- It knows what was asked. It finds the ticket the branch implements and the epic behind it, so it can catch the change that is clean, tested, and not what anyone wanted.
- Read-only by construction. No write, edit or general file-read tool in a review. Those eleven are its entire reach, and read-only is enforced by the tools rather than requested in the prompt.
- Claude or local. Run it through Claude Code, or a local model with Ollama that sends nothing to a provider.
- Never approves for you. Posting is a step you confirm, and it never files an approval in your name.
- Bounded. A per-review cost ceiling you set on the hosted engine; a turn cap on the local one.
The retry guard keys on the request id, but the id is regenerated inside the retry loop, so a retried charge takes a fresh id and passes the guard.
requestId is regenerated inside the loop, so the idempotency guard on line 94 never matches a retry and the charge is submitted twice.
A 5xx from the payment provider is swallowed and treated as success.
The queue
Only the reviews that are really yours
GitHub's "review requested" inbox counts two things as one number: what a person assigned to you by name, and what merely landed on a team you belong to. PR Radar defaults to the first.
- Asked-me-directly by default. The team firehose stays one right-click away, as a quiet second line.
- Oldest request first, not recently-updated, because that is the one someone is stuck on.
- Bots filtered without a list. On one busy account that cut the team queue from 535 to 146, with nothing hardcoded.
While you were doing something else
The review is already done when you look
Switch it on and PR Radar reviews a pull request the moment somebody asks you by name, and tells you when it has finished. The queue you open is a queue of answers, not a queue of work.
- Only when a person asks you. Automatic review never fires on the team firehose - on one real account that is the difference between 3 reviews and 92.
- You are told, once. A standard macOS notification when a review is requested, and when one finishes, with its verdict. A burst of twelve is one notification, never twelve.
- It stops spending. A ceiling per period that actually halts, because this is a paid agent running with nobody watching.
- From your phone, optionally. A Telegram bot can take a PR link and hand back the review. It only ever answers accounts you list by numeric id, and with no list it refuses to start rather than answering everyone.
- It still never posts. Automatic reviewing, yes. Automatic posting, never - that stays a button you press.
Your token
The widget holds no token and cannot reach the network
A macOS widget runs in its own sandboxed process. PR Radar's ships with no network access at all and is never handed a token; it only draws a snapshot the app already fetched. Even the Review button reviews nothing when clicked, it asks the app to.
Mirroring an organisation means PR Radar clones and
fetches, so it is worth saying exactly who writes where. The agent never writes anything,
anywhere - every tool a review is given is read-only, enforced by the tools rather than
asked for in the prompt. The app writes only inside the mirror directory it created for
itself, under Application Support, one per account. That directory is checked before any
git command runs, and it may not overlap a folder you pointed it at to read. There is no
git pull, no reset --hard and no clean anywhere in the app,
and a clone carrying work that exists nowhere else is reported and left alone rather than synced
over. PR Radar cannot corrupt a repository you work in, because the only directory it writes to is
one it made.
On the desktop
Legible even when macOS greys it out
macOS desaturates desktop widgets whenever the desktop is not the frontmost window, which, with an editor open, is almost always. So no meaning lives in colour: every status, verdict and stale-request marker is a distinct shape first.
Get PR Radar
Put it on your desktop
Enter your email and we will send the download link. Unzip, drag to Applications, paste a GitHub token, and drop a widget on the desktop.
1.3.1-5acc3a7b