Ship product changes with confidence

Move the product forward without breaking what users already rely on.

Commit Lens surfaces unexpected changes in what users see before they quietly become accepted behavior—so QA reviews exceptions, not every image.

Visual regression testing for generated images
Keep your renderer and workflow The backend cannot access your repository Review only the changes that matter
When no change is expected

If no visual change is expected, zero differences means the work is done.

A refactor, framework upgrade, data-layer change, or CSS cleanup should leave the product looking the same. Commit Lens checks that promise automatically, so unchanged images need no manual review.

0

Zero differences means done. No images to inspect and no review to assign.

1

Any difference needs attention. Because no change was expected, it cannot be accepted automatically.

Every submitted image is checked. Even ones your tests do not cover.

UI framework upgradeno visual change expected
commitlens draft ./screens
compared with baseline 7c41e8
No differences42 images match the baseline · no review required
Automation clears routine checks. People make the calls.

Spend review time on the changes that matter.

Commit Lens clears unchanged output automatically and holds changed output for a human decision. Your team gets a visual history it can trust—without turning every release into a manual image review.

01

Send the evidence

The CLI sends revision details, image hashes, and only image data the service does not already have.

02

See only what changed

The backend compares the snapshot with the branch baseline and records the differences. No review decision has been made yet.

03

Keep judgment where it counts

When differences exist, a person marks each one as an expected change, render noise, or a defect.

04

Move forward with confidence

A reviewed snapshot can become the next baseline only after all differences are resolved and no defects remain.

Zero differencesThe baseline advances automatically because there is nothing to review.
!
Differences foundThe baseline stays unchanged until someone resolves the differences and promotes the result.
One safety net. Two moments to use it.

Catch regressions while changes are cheap. Keep a visual decision record once they are shared.

Run a private draft to remove unexpected changes before commit. Attach output to a commit when your team needs a lasting record of what changed and how it was resolved.

DRAFT · WORKING TREE

Fix visual regressions before they create rework.

Attached toWorking tree
RecordPrivate, replaceable
Best forEarly fixes

Check current output against the baseline as you work, then rerun after each render. The draft stays private and replaceable.

  • Fix visual regressions before committing.
  • Replace the draft after each render.
  • Reuse draft decisions when matching images are submitted for a commit.
Limit: A draft does not create a shared review record or update the baseline.commitlens draft ./screens
SNAPSHOT · COMMIT

Keep shared decisions tied to the code.

Attached toCommit
RecordShared, persistent
Best forShared review

Attach results to a commit so developers, QA, and release owners share one record of how the product changed and how it was resolved.

  • Tie rendered images to a specific revision.
  • Keep the snapshot and review decisions as a shared record.
  • Promote an approved snapshot to the branch baseline.
Submission: Use the CLI, CI, cron, or any other tool.commitlens submit ./screens --commit $SHA
Draft check
Commit snapshot
Record
Private, replaceable
Shared, persistent
Baseline
Cannot update it
Can become the baseline
Attached to
Working tree
Commit
See the review work shrink

See a faster path from product change to confident release.

Follow one realistic change from an early check to a shared review. Unchanged output clears automatically; unexpected differences get the attention they need.

https://commitlens.app/acme-storefront baseline: —
bash~/acme-storefront⠿⠿
GUIDE

Beyond browser screenshots

Protect everything users see in the product.

Catch unexpected changes in what users see before they become QA rework or accepted behavior. Commit Lens gives screenshots, charts, PDFs, maps, and other generated results a reviewable history—without replacing your renderer.

Keep the tools you trust

Commit Lens does not launch browsers or require a specific capture tool. Give each image a stable key so it can compare the same image across revisions.

PlaywrightChartsPDF pagesMapsDesktop UIReports

Turn changes into decisions your team can trust

The measurement shows what changed. The review records whether it was an expected change, render noise, or a defect. The baseline records the images your team accepted.

Keep coding agents inside the same safety net

Coding agents can run the same check as they work, so visual regressions surface before commit. A person still decides whether a difference is expected, render noise, or a defect.

Your repository stays private

Review the product without handing over your repository.

Commit Lens checks what users see while Git and filesystem access stay in the local CLI. The backend receives only revision metadata, image hashes, and image data it does not already have.

The CLI reads Git locally. Your repository is never sent to the backend.

Hashes are sent first. Image data is uploaded only when the backend does not already have it.

Your tools stay where they are. Your tests, renderer, environment, and CI continue to run in your infrastructure.

local CLIGit · filesystem · image hashes
backendhistory · measurements · reviews · baseline
your rendererscreenshots · charts · PDF · maps
shared blobsonly missing image data
backend ─╳─ repository · no access by design
Ship what is next · keep what already works

Move faster without losing confidence in what users see.

Keep unexpected changes in what users see visible and out of the accepted baseline until a person makes the call.

Tell us what you render and we’ll show you how Commit Lens fits.