Skip to content

DiffoThe human way to review agent-written code.

A live review on your machine: the change in layers, in the order it should be read, and the agent on the other end of every comment. For what it just wrote, or for a pull request.

One round trip ​

Diffo doesn't grade your diff or leave generated nitpicks. It isn't an AI reviewer. It's a reading tool for the human, wired to the one process that still holds the full context of the change: the agent that just wrote it.

Start in one command ​

$npx skills add DiffoHQ/diffo --skill diffo

Then, in any agent session, one command:

RunAnd the agent reviews
/diffowhat it just wrote, before anything is committed
/diffo maineverything since you branched off main
/diffo <PR link>a GitHub pull request, checked out in a worktree of its own

The agent opens the review and hands you the URL. Nothing to commit, nothing to push, no CI to wait for. Installed from one agent and want them all? diffo setupregisters every agent on the machine.

The loop ​

  1. 01

    The agent orients you

    On a multi-file or structural change it leaves one guide comment at the top of the review: what the change does, plus a mermaid diagram when the shape is easier to see than to read. Ask, and it posts layers: the change as ordered steps, in the order it should be read, not alphabetically. It orients your reading and stops there, with no verdicts.

  2. 02

    You read

    Syntax-highlighted unified or split diffs, keyboard-first navigation, per-file viewed tracking. The changeset stays live: fresh hunks appear as the agent works, and a hunk you already read says changed since you read it.

  3. 03

    You comment

    On a line, a file, or the whole changeset. Every thread is marked Change (edit the code) or Question (answer it, touch nothing), so a question never turns into an unrequested refactor.

  4. 04

    The agent answers

    Send one thread now, or hand back the whole batch with honest coverage stats. Answers land inline in your threads; fixes land in the diff you're reading, so you're reading the fix itself, not a promise of one.

Read it in layers ​

Layers in Diffo: the header chip suggests layers and the reviewer accepts; the request crosses to the agent, which outlines the 13-file change as four ordered steps and posts them with diffo layers; the layers land in the rail, the first layer's card draws its diagram, its files are read and ticked, and  steps to the second and third layers.Layers in Diffo: the header chip suggests layers and the reviewer accepts; the request crosses to the agent, which outlines the 13-file change as four ordered steps and posts them with diffo layers; the layers land in the rail, the first layer's card draws its diagram, its files are read and ticked, and  steps to the second and third layers.

A diff arrives alphabetically, which is almost never the order to read it in. Ask, and the agent posts layers: the change as ordered steps, each with a title, a summary, and its files. You read one at a time; ] steps to the next, and anything the agent touches after posting gathers in a Since your review layer, so nothing hides outside the plan. Layers has the whole of it.

Pull requests too ​

A pull request in Diffo: you hand the PR link to your agent and it is checked out in a worktree of its own; a Private question on line 13 crosses to your agent, which runs the tests and answers in the thread; a PR comment waits as a draft until Submit review, and then the review crosses to GitHub, while the private thread stays on your machine.A pull request in Diffo: you hand the PR link to your agent and it is checked out in a worktree of its own; a Private question on line 13 crosses to your agent, which runs the tests and answers in the thread; a PR comment waits as a draft until Submit review, and then the review crosses to GitHub, while the private thread stays on your machine.

When a pull request lands on your desk, /diffo <PR link> opens it in a worktree of its own, with its conversation imported and your agent beside you as a copilot for code it did not write. Comments for the author go to GitHub as one review when you finish; questions for your agent never leave your machine. Reviewing a pull request has the loop.

Released under the Apache-2.0 License.