UI Verify

Collaborative review

Review UI changes as a team

Every reviewer in one place, human or agent. See exactly what a pull request changed, comment on the exact pixel, accept or deny, and the verdict lands on the PR as a check. So the change gets a real look before it merges, not after it ships.

pages/Product
Ignore Accept change
Baseline
Sunrise Mug 4.9

Stoneware · 12oz

$24

Add to cart
Current
Sunrise Mug 4.9

Stoneware · 12oz

$24

Add to cart
MC
MC
Mia Chen2h
Show on image Resolve
The old fill was intentional. As an outline the Add to cart button fails our contrast check, can we keep the solid style?
DR
Dan Roberts1h
Good catch, that was not intended. Restoring the fill and re-running the check now.

Agents ship UI faster than anyone can review it

Review is the bottleneck now, and its visual part falls through the cracks: code review reads the diff, not the pixels.

No way to know what else broke

One shared component ripples into pages nobody opened in the PR. Today you find them by hand, if you find them.

Was this change on purpose?

A reviewer cannot tell an intended restyle from a regression, so the real break blends in with the ones you meant.

Caught in production, not in review

Code review reads the diff, not the pixels. The button that went missing gets reported by a customer.

Everything in one place

The change, the conversation, and the decision on one screen, pinned to the pixels that moved. No Slack thread, no separate preview, no lost context.

01

See exactly what moved

Flip between side by side, a tinted diff, a spotlight on the change, or a draggable overlay. Whatever the change is, it is impossible to miss.

Side by sideDiffSpotlightSlider
Sunrise Mug 4.9

Stoneware · 12oz

$24

Add to cart
02

Point at the exact pixel

Click or drag a box right on the screenshot to pin a comment where it changed, on the baseline or the new version. No more describing where you mean.

Sunrise Mug 4.9

Stoneware · 12oz

$24

Add to cart
Add a commentPost
03

Discuss in a thread

Reply, resolve a thread once it is handled, and write in Markdown with the usual keyboard shortcuts.

MC
Mia Chen2h
Resolved
Can we keep the solid fill? The outline fails our contrast check.
DR
Dan Roberts1h
Good catch, restoring it now.
04

Decide in one click

Accept, deny, or ignore. One call settles the story across every browser and viewport at once.

Accept changeSets the new baseline
DenyBlocks the merge
IgnoreMutes an intended diff

The decision lands on the pull request

Every review updates one sticky comment and the commit status on the PR, so the whole team sees where a change stands without opening the dashboard. A denied change keeps the check red and blocks the merge until it is fixed or accepted.

  • A single comment, edited in place, with the before and after inline
  • The AI judge's intended-versus-regression call folded onto the summary
  • Open review threads mirrored onto the PR so nothing gets lost
  • The status flips live the moment a reviewer accepts or denies

Emphasize the Add to cart button #1

Openagent wants to merge into main from emphasize-add-to-cart
ui-verifybot commented now

Visual changes · 2 to review · 1 open discussion

1 intended change, 1 likely regression across 6 snapshots.

components/Button Intended
pages/Product Likely regression

Mia Chen on pages/Product: The old fill was intentional, the outline fails our contrast check. Can we keep the solid style?

↳ 1 reply

Review in the dashboard →

Some checks were not successful
ui-verify / visual1 regression blocks the mergeDetails

Your agents review, over MCP

Connect the UI Verify MCP and your coding agent joins the same review. It pulls the changed diffs, reads the notes a designer or QA left, and accepts the intended changes or denies a regression, all attributed to its own key so you can see who decided what.

The judge still makes the deterministic call and your team still owns the merge. The agent handles the grunt work of triage so people review only the decisions that need a human.

See how agents work with UI Verify
dev@shoppy - claude - 92×34
> review the visual changes on this PR
uiverify - get_diff (MCP)(build: "#1")
  ⎿  2 changed: components/Button, pages/Product · 1 comment
uiverify - list_comments (MCP)
  ⎿  Mia Chen on pages/Product: "keep the solid fill, the outline
     fails our contrast check"
The Button restyle is intended. On pages/Product the button lost its fill,
  which matches Mia’s note. Denying that one.
uiverify - review_diff (MCP)(pages/Product: deny)
uiverify - review_diff (MCP)(components/Button: accept)
reviewed as claude · 1 accepted, 1 denied · check updated on the PR

Get your team reviewing UI together

Start free in minutes, no credit card. Or book a demo and we’ll get you live in your CI.