Review the diff.
Redline it.
Hand it back to your agent.

diffle turns a local git diff into a close, exact read, the way a printer proofs a page. Comment on the precise code, then return structured feedback your coding agent can act on. No forge, no account, no hosted AI.

curl -fsSL https://diffle.dev/install | sh

Windows:irm https://diffle.dev/install.ps1 | iex

  • local-first
  • durable review records
  • MCP handoff
  • macOS · Linux · Windows
src/utils/git.ts+18 −4
40 export function resolveRef(ref: string) {
41 const base = ref || "HEAD";
42− return runGit(["rev-parse", base]);
42+ const sha = runGit(["rev-parse", "--verify", base]);
43+ if (!sha) throw new NoSuchRef(base);
youunresolved

resolveRef still throws on a fresh repo where HEAD has no commits — guard the empty case before rev-parse.

replyresolve
44+ return sha.trim();
45 }
the loop

One ritual, start to finish.

  1. inspectRender a live git comparison in the browser.
  2. commentAnchor notes to a line, a range, or a file.
  3. returnCompile the redline into agent-ready feedback.
  4. refreshRe-run the diff after the agent edits.
  5. resolveReply, reopen, and clear threads.
  6. approveSign off on a durable Review Record.
why review

Read the code. Still.

Agents write faster than ever. That's exactly why someone has to read it.

  1. Your name is on the commit.

    An agent can't be accountable. When it breaks, it's on you, so read what ships under your name.

  2. Unread code is unknown code.

    Every diff you skip erodes your model of the system, and with it your ability to make the critical calls: architecture, tradeoffs, what to rip out. Agent or not.

  3. Only you know what it's for.

    Agents optimize for passing. Intent, naming, boundaries, and what shouldn't exist at all still come from you.

  4. Judgment is the job now.

    Generating code got cheap. Deciding what's right didn't. Review isn't the chore to automate away; it's where the engineering happens.

see it in action

Watch a review happen.

Open a diff, redline the exact code, and export a feedback bundle you can hand straight to an agent.

Review any comparison

Working tree, staged changes, a branch, a commit range, or the whole codebase, rendered in your browser with a file tree and syntax highlighting, not scrolled past in the terminal. Unified or side-by-side, your choice.

Every command and flag
terminal
$ diffle# working tree vs HEAD
$ diffle staged# staged changes only
$ diffle main# this branch vs main
$ diffle v1.0..v1.1# a commit range
$ diffle browse src/# the whole subtree

Comment on the exact code

Click a line, or drag across line numbers for a range. Leave threaded replies, resolve and reopen, and mark files viewed as you go. Every note is saved to a durable Review Record that survives restarts and re-runs.

Ranges, threads, and orphans
client/src/lib/api.tsline 88
88− const res = await fetch(url);
you

No timeout here — an agent hangs forever on a dead dev server.

agentresolved

Added an AbortController with a 10s timeout. Pushed to the branch.

Close the loop with your agent

Return the whole redline as structured feedback over a local MCP server; each comment carries its code context. Claude Code, Codex, or any MCP client fixes the code, replies inline, and requests a re-review. You refresh and sign off.

Wire up the MCP handoff
feedback.md2 unresolved
## Review feedback (2 comments)

src/utils/git.ts:42 unresolved
> resolveRef throws on a fresh repo where HEAD has
> no commits — guard before rev-parse.

client/src/lib/api.ts:88 unresolved
> fetch has no timeout; agents hang on a dead server.

Install diffle

One self-contained binary. It embeds its own web client and needs no checkout, no Node, and no sidecar files. git on your PATH is the only prerequisite.

macOS · Linux
curl -fsSL https://diffle.dev/install | sh
Windows
irm https://diffle.dev/install.ps1 | iex
  • Stays local. No forge, no database, no hosted AI service.
  • Always current. diffle update verifies and swaps in place.
  • Yours to keep. Review Records live under your data directory.
Run your first review