Local-first CLI for reviewing git diffs with humans and AI agents.
Open your changes in a GitHub-like web UI (or an experimental native TUI), leave inline comments, hand them to your coding agent over CLI/MCP, and review implementation plans the same way before any code is written. Everything binds to loopback by default — no account, no cloud.
npm: npmjs.com/package/diffing · Docs: ahmedragab20.github.io/diffing · Agents: llms.txt
Requirements: Node.js 20+, git on your PATH.
npm install -g diffing
# or: pnpm add -g diffing
diffing setup # first-time wizard (skills, MCP, doctor)
cd your-repo
diffing # preferred interactive UI (web by default)Useful variants:
diffing --staged
diffing main..feature
diffing view # read-only native diff browser
diffing --tui # full native review TUI (experimental)
diffing mode tui # make TUI the interactive default
diffing updateTTY opens the interactive UI. Pipe or redirect prints a unified patch like git diff.
| Area | Highlights |
|---|---|
| Review UI | Split/unified diffs, inline comments + severity, suggestions, image diffs, themes (52), search |
| Agents | await-review, reply/resolve, progress, MCP (37 tools), skills via npx skills add ahmedragab20/diffing |
| Plan review | Submit markdown → human verdict → approved / changes-requested / rejected |
| GitHub PR | Local PR sessions (--gh-pr), bounded inspect, optional authorized publish |
| Sessions | Concurrent web/TUI/PR reviews; diffing sessions task manager |
| Local-first | 127.0.0.1, random free port, state under ~/.diffing/ |
TUI is experimental. Web is the supported production path. See docs.
diffing # human reviews in browser
diffing url # share link; async park by default
diffing await-review # only when human is reviewing now
diffing comments --open
diffing reply <id> --body "…" --model "your-model"
diffing resolve <id>
diffing plan submit PLAN.md --model "your-model"
diffing mcpFull agent protocol, exit codes, and MCP catalog: Documentation · in-repo AGENTS.md.
Local site preview (contributors):
pnpm --dir site install --ignore-workspace
pnpm docs:dev