seendiff

A local, point-in-time diff tool for large diffs.

View large diffs, while keeping track of what is seen and reviewed.

Optimized for AI coding agents.

Built on: Python · HTML · CSS

acme-dot-bot/seendiff
seendiff: the sidebar reports 16 of 52 blocks reviewed across 7 files, each file carrying its own progress bar, and the main pane shows a syntax-highlighted unified diff of git.py with old and new line numbers side by side and the minimap at the far right

Get started

One command, then run seendiff inside any git repo. It picks a free port, starts a localhost server and opens your browser. CtrlC to stop.

Needs Python ≥ 3.10 and git.

Run it

From inside any git repo:

$ seendiff # HEAD vs origin/master, with fallbacks $ seendiff main # ...or any branch, tag or SHA as the base $ seendiff HEAD~3 # just the last three commits $ seendiff --port 8700 # a fixed port instead of a free one

Fast

Designed with scale in mind, for large changes. Thanks to virtualization, a 40,000-line file scrolls smoothly.

Secure

Nothing leaves your machine. No accounts, no telemetry, no network calls outside of localhost.

Easy

Minimal dependencies (four!). Installs in seconds. Nothing to build. No config file.

Your review progress survives a rebase, an amend, and closing the window. Come back tomorrow and pick up where you stopped.

Beautiful

Six themes, each with a matching syntax palette, so colours change with the chrome instead of staying bolted to one scheme.

seendiff sidebar, solarized dark theme
solarized-dark
seendiff sidebar, hailmary theme
hailmary
seendiff sidebar, light theme
light
seendiff sidebar, dark theme
dark
seendiff sidebar, solarized light theme
solarized-light
seendiff sidebar, space theme
space

Details that matter for a reviewer

A minimap runs down the side of the file: one glance tells you what you have seen, what you haven't, and what is still unreviewed.

Search covers the file you are in and every other changed file at once.

seendiff with search open: the bar reports 31 matches in 6 files, a results panel on the right groups hits by file, and the minimap strip beside the code marks seen and unreviewed regions

Fully keyboard driven

prev / next change block in this file
prev / next file
Rmark block reviewed, advance (toggles off if reviewed)
n Nnext / prev unreviewed block, crosses files
j kscroll lines
d uscroll half page
Vmark all seen-but-unreviewed blocks in file reviewed
fmark whole file reviewed, next file
ycopy ref + content (selection or focused block)
Ycopy refs for all unreviewed blocks in file
stoggle side-by-side / unified
CtrlFsearch all changed files — / ⇧⏎ next / prev · Esc closes
gfocus file filter
hhide fully-reviewed files
tcycle theme
Xreset all seen / reviewed state (asks first)
?help  ·  Esc closes

Code walkthrough skill

AI + Human > AI or Human.

AI is a super-coder, but lacks the awareness and context to make the tradeoffs that drive your design decisions.

Any sane codebase wants a pair of trained human eyes on it.

This project was born out of that need.

To that end, seendiff ships with a walkthrough mode — where a coding agent explains itself, step by step, on the diff.

Makes it easier to use the coding agent to understand the code it has written.

Ask your coding agent to install the skill, once:

Install the seendiff skill for me, from https://github.com/acme-dot-bot/seendiff — so you can open diffs and write walkthroughs for me in any repo.

Then, in any repo, ask for the walkthrough you want:

Explain this PR using a code walkthrough.
seendiff playing a walkthrough: the sidebar lists acts and their steps with the current one highlighted, the code pane shows the lines that step is about, and a bar under the code holds the step's prose with a line reference and a pointer to a later step