Nothing to host
Fully managed. No storage buckets, no diff workers, no 2am pager. Add a token to CI and you're live.
Visual regression testing for teams shipping with AI agents
You review the logic in the diff. Nobody reviews the pixels — until a 4px button shift and a wrong shade of green land in production. pixmoat catches every screenshot, on every viewport, on every PR your agent opens.
Free plan, no card.
Building with a team? Start with Pro€15/seat, 25,000 shots a month.
Read the Playwright setupSee the merge request guideAI agent setupMachine-readable docs
Inspect every change your way — wipe, blink, or highlight the exact pixels that moved. Drag the handle or pick a mode.
No new dashboard to babysit. pixmoat runs inside your existing Playwright suite, uploads on every build, and fails the check with a link straight to the review. Your agent reads the summary; you make the call.
$ npx playwright test
✓ dashboard renders 1.2s
✓ settings page 0.8s
pixmoat › uploading 24 screenshots… done
pixmoat › 23 match baseline · 1 changed
✗ dashboard.png — 412 px moved (2.3%)
“Save” button shifted 4px down
success green #22c55e → #16a34a
review → app.pixmoat.com/review/9f2a
✖ 1 visual change needs a humanEvery shot lands next to its approved baseline. Wipe, blink, or highlight the exact pixels that changed. Approve the intended stuff, reject the regression, and the status flows straight back to the MR.
See a real review →
Compact, structured summaries — not a screenshot dump. Claude Code, Cursor, and the rest get "button moved 4px, color drifted," decide whether it's intentional, and either fix it or ask you. The MCP server wires it up in one command.
pixmoat mcp — 8 tools over stdioRefactored the settings layout. All tests green — merging.
Hold on — settings.png changed 2.3%. Toggle row shifted 6px, contrast on the label dropped below AA. Intentional?
Not intentional. Reverting the padding change and re-running.
Fully managed. No storage buckets, no diff workers, no 2am pager. Add a token to CI and you're live.
Desktop, tablet, mobile in one run.
Tune out the noise, keep the signal.
Automatic quarantine for jittery snapshots, so a rogue cursor blink never blocks a merge again.
Catch new contrast and WCAG violations beside the visual diff.
Track LCP, CLS, INP, and payload size to catch performance regressions before they reach users.
Baseline browser errors, warnings, and failed requests before they reach users.
Required approvals and CODEOWNERS routing put the right human on the right change.
GitLab, GitHub, Bitbucket, or a generic status/comment adapter.
The Playwright client snaps your screens during the suite you already run, and uploads on every CI build.
pixmoat diffs each shot against the approved baseline and flags exactly what moved — down to the pixel.
Approve the intended change or reject the regression. Approved shots quietly become the new baseline.
Pricing
Start free, then give every Pro seat 25,000 screenshots per month for agent-heavy CI.
Everything you need to put visual review into your workflow.
Annual billing: €150/seat/year — 2 months free.
More capacity and retention for teams and coding agents running visual checks continuously.
FAQ
No. pixmoat is fully hosted. You add a project token to your CI and upload screenshots — there are no servers, database, or storage for you to run or maintain.
Every screenshot is compared against the approved baseline for its branch. pixmoat highlights exactly what changed with an adjustable threshold, so anti-aliasing noise does not create false positives. You approve intended changes or reject regressions right in the review UI.
Capture with Playwright today, and upload from any pipeline. GitLab CI/CD and GitHub Actions both post results back as status checks. Cypress and Selenium support are on the way — tell us what you use and we will prioritise it.
Yes. Screenshots are scoped to your project and protected by per-project access tokens. Only members you invite can view or review them.
Yes. pixmoat ships an MCP server and a CLI so agents like Claude Code, Cursor, and Codex can capture, check diffs, and approve or reject changes autonomously — with exit codes that drive the loop.
Start with the free plan with no credit card. Pro is €15 per seat per month and includes 25,000 screenshots per seat per month. Annual billing is available; see the pricing cards above for current limits and retention.
Each PNG can be up to 10 MB, 8,192 pixels wide, 16,384 pixels tall, and 25 million decoded pixels. A multi-capture check supports up to five images. These safeguards are separate from your monthly screenshot allowance.
Connect your first project in the time it takes to grab a coffee — free, or poke around the live demo first.
Or go straight to Pro for your team.