DETERMINISTIC
PIXEL DIFF.
AGENT-IN-THE-LOOP
VERDICTS.

RUST AND JS DIFF CORES. SSIM AND GMSD METRICS. JEST, VITEST, AND BUN MATCHERS. AN AGENT THAT HANDS AMBIGUOUS DIFFS TO CLAUDE CODE, CURSOR, OR CODEX. NO SAAS. NO API KEY. MIT.

INSTALL
npm install @blazediff/core
$ npx @blazediff/cli a.png b.png --interpret
BASELINE
baseline
CURRENT
current

WHY BLAZEDIFF

01

DETERMINISTIC

Pure-JS core ~1.5x faster than pixelmatch. Rust binary 3 to 4x faster than odiff, up to 8x on 4K. Reproducible on any machine.

02

LOCAL

No SaaS, no API keys, no per-snapshot pricing. Screenshots never leave your machine. Self-hosted from your CI. MIT licensed.

03

AGENT-READY

When the heuristic can't decide, the agent hands a small region tile to Claude Code, Cursor, or Codex for judgment. Resume from a checkpoint.

BENCHMARKS

REPRODUCIBLE FROM THE REPO. SAME FIXTURES, SAME HARDWARE (M1 MAX), HYPERFINE-MEASURED.

JS CORE VS PIXELMATCH4K · IO EXCLUDED · 50 RUNS
pixelmatch302ms
@blazediff/core212ms
NATIVE BINARY VS ODIFF4K · IO INCLUDED · 25 RUNS
odiff1.19s
@blazediff/core-native294ms

FULL TABLE IN BENCHMARKS.MD AT THE REPO ROOT. EVERY ROW HAS A FIXTURE AND A METHODOLOGY NOTE.

REGION-TILE HANDOFF

OTHER TOOLS HAND A REVIEWER THE FULL PAGE. BLAZEDIFF HANDS YOUR AGENT THE CROP THAT CHANGED. 10X TO 100X FEWER BYTES. 10X TO 100X FEWER TOKENS.

full-page baseline.png
Full-page baseline screenshot with all diff regions overlaid
1328×1228 px10 diff regions~ 2.4 MB · ~ 1.6M pixels
diff/00.png · region tile
Region tile cropped to the changed bounding box
199×89 px1 region~ 18 KB · ~ 17K pixels

THE STACK

ONE MONOREPO. FOUR LAYERS. INSTALL ONE PACKAGE OR THE WHOLE STACK.

USED BY