Approve website changes without reading code.

Your coding agent updated the pricing page and opened a pull request. You own the site — but you're not going to read a diff. Gist captures before-and-after screenshots of every page, and writes a plain-English walkthrough of what actually changed. Know what's going live — in 30 seconds.

$ npm install -g @gist/review View on GitHub

Open source · runs entirely on your machine · no API keys, no hosted service

 gist ui — PR #42 · run 18:30
4 pages changed · 1 needs a look · 0 broken

The pricing page now shows three tiers instead of two — a new "Team" plan was added between Starter and Pro, and the FAQ moved below the table. The homepage and about page only picked up the new footer link. Nothing else on the site changed.

/pricing New "Team" tier added — this is the change you asked for changed as planned
/about Team photo section is now shifted below the fold worth a look
/ Footer gained a "Pricing" link — nothing else moved minor

Three commands. One honest answer.

Gist runs locally against a pull request's preview deploy — or any two URLs you point it at.

01

Capture

gist run --pr 42 screenshots every route on production and on the PR preview, then diffs them pixel-for-pixel. Deterministic — same inputs, same result, every time.

02

Explain

In Claude Code, /gist reads the evidence and diff screenshots and writes the walkthrough — plain English, written for the person who approves, not the person who codes.

03

Review

gist ui opens a local viewer: the summary up top, then before / after / diff for every page that changed. Understand — then approve with confidence.

# one-time setup — installs the browser, scaffolds config, adds .gist/ to .gitignore
$ gist init
 
# capture & diff — finds the PR's preview deploy via gh, or pass --base/--head
$ gist run --pr 42 --affected /pricing
 
# plain-English walkthrough, inside Claude Code
> /gist
 
# review locally
$ gist ui

Deterministic where it counts. AI where it helps.

Three decoupled parts, connected only through a gitignored .gist/ folder on disk. The screenshots and diffs never depend on a model; the words never pretend to be the evidence.

Capture & diff deterministic

gist run uses Playwright to capture every route at every viewport, waits out lazy images and reveal-on-scroll sections, and diffs base vs. head into evidence.json. No LLM anywhere in this path.

Local UI deterministic

gist ui is a tiny zero-dependency viewer over PRs → runs → summary. It only reads .gist/ — it never calls a model and never phones home.

AI walkthrough your agent

The /gist skill runs inside the coding agent you already have. It reads the evidence, looks at the diffs, and writes summary.md. Re-runnable, and it uses your agent's auth — Gist ships zero secrets.

No hosted service

Nothing to sign up for, nothing storing screenshots of your unreleased pages. Everything stays in your repo's .gist/ folder.

No API keys to manage

The only AI step goes through Claude Code, which you've already authenticated. Delete the skill and Gist still works as a deterministic visual-diff tool.

Honest by construction

Pages are ranked by how much they changed and whether the PR was supposed to change them — "changed as planned" reads differently from "unexpected."

Open source

A CLI, a static viewer, and a skill file. Read it in an afternoon; point it at any two URLs.

The agent writes the change. Gist shows you what it actually did.

Coding agents now ship website changes faster than any human can review them. The bottleneck is no longer writing the change, or even correctness — it's understanding. The person who has to approve a change often can't read a diff, and shouldn't have to.

"Understanding is the new bottleneck."

— Geoffrey Litt · on cognitive debt in AI-built software. Gist applies it one layer up: not "help the engineer understand the code," but "help the approver understand the change."

Know what's going live.

$ npm install -g @gist/review Read the guide