diffreview.dev

Your AI writes the code. DiffReview is where you review it — and send the fixes back.

DiffReview — feature/checkout-flow
checkout.tssrc/lib+9−2 Reviewed
12export async function checkout(cart: Cart) {
12export async function checkout(cart: Cart) {
13 const total = await serverTotal(cart.id);
13 const total = cart.localTotal;
14 const tax = total * 0.13;
15 return submitOrder({ total, tax });
15 return submitOrder({ total, tax });
16}
16}
PaymentForm.tsxsrc/components+34 Reviewed
24async function onSubmit(v: FormValues) {
24async function onSubmit(v: FormValues) {
25 console.log("payment", v);
26 await pay(v);
27}
27}
cart.tssrc/api+12−1 Reviewed
40export function bindQuantityInput(el: Input) {
40export function bindQuantityInput(el: Input) {
41 el.addEventListener("input", syncQuantity);
42 return () => el.removeEventListener("input", syncQuantity);
42 return () => el.removeEventListener("input", syncQuantity);
43}
43}
your coding agent
1Your agent writes the whole feature
Download for macOSSource

After installing, allow the app and link the CLI:

sudo xattr -cr /Applications/DiffReview.appsudo ln -sf /Applications/DiffReview.app/Contents/MacOS/diffreview-cli /usr/local/bin/diffreview
The loop

Close the loop with your coding agent

AI can generate a whole project in one shot — but somebody still has to read it. DiffReview makes the reading round-trip: you review the branch, drop comments across as many files as you like, and export the whole review as one prompt-ready block — file paths, line numbers, and the code in question included.

  1. Let your agent build the branch.
    Claude Code (or any coding agent) writes the feature. You don't review streaming tool calls — you review the diff.
  2. Run diffreview . and review it like a pull request.
    Every change on the branch is one scrolling document. Check files off as Reviewed, jump hunk to hunk, and press ⌘K to comment on exact lines.
  3. Copy the review. Paste it into your agent. Repeat.
    The sidebar collects every comment; one Copy turns them all into a single prompt. Your agent applies the fixes, and the next round of review starts on a fresh diff.
┌────────────┐    writes branch     ┌─────────────────┐
│ your agent │ ───────────────────▶ │   diffreview .     │
│            │                      │ ☑ files reviewed│
│  applies   │ ◀─────────────────── │ ⌘K line comments│
│  the fixes │   one prompt block   └─────────────────┘
└────────────┘