Visual regression testing that explains itself: every screenshot is
paired with a DOM snapshot and layered analysis, so a diff arrives as
a verdict — "style-only change on button.cta", "likely
render noise" — not a wall of red pixels. MIT-licensed. Runs
entirely on your machine.
toHaveScreenshot()?
Here's the honest comparison →toHaveScreenshot()Playwright's built-in screenshot assertion is good. It retries until the page is stable, disables animations by default, and stores per-browser baselines. If a pixel diff tells you what you need, use it — we'd rather you did than install something you don't need.
Here is where a pixel diff stops being the answer:
--update-snapshots rewrites everything the run touched, including regressions you didn't notice. TestivAI approves from a PR comment, after review, with write access verified — and the change lands in git history.Read the full comparison, including what the built-in does better →
Selenium has no built-in to compare against — here's what TestivAI replaces in a hand-rolled screenshot setup →
The open-source core is the product — and it always will be. Every detection improvement lands in the MIT-licensed core first. Capture, diff, and approve fully local: no account, nothing uploaded, no wall between you and working visual tests.
Using an AI coding agent? The @testivai/mcp server hands it structured verdicts and diff explanations — your model does the reasoning, nothing leaves your machine.
Layered local analysis — pixel, DOM, and element level — filters noise so only genuine regressions make it through.
No new test suite. No new infrastructure. Works on top of what you have.
Native SDKs for popular testing frameworks. More coming soon.
bundle exec rspec stays exactly as it is. Ruby guide →MIT-licensed. Runs fully local. 5 minutes from discovery to first visual diff.