OPEN SOURCE · MIT

The core is
the product.

Everything you need for visual regression testing — stabilized captures, pixel + DOM diffing, HTML reports, PR approvals — MIT-licensed and running entirely on your machine. No account. Nothing uploaded. Free forever.

Get Started on GitHub Read the OSS Docs
MIT
License — no strings, no tiers
100%
Runs on your machine & CI
0
Accounts, API keys, or uploads required
The Packages

Small tools.
One workflow.

Every package is in one repo, released to npm with provenance, and versioned independently.

@testivai/witness
Core SDK
The CLI, diff engine, baseline store, and self-contained HTML report. Pixel comparison with tunable tolerances, plus a DOM diff that tells you when a pixel change is likely just render noise.
@testivai/witness-playwright
Playwright adapter
One call — testivai.witness(page, testInfo, 'name') — in any Playwright test. Stabilizes the page, captures screenshot + DOM, and reports through the standard reporter API.
@testivai/witness-webdriverio
WebdriverIO service
Same baselines, same report, same approval workflow — as a WDIO service for teams already invested in WebdriverIO.
@testivai/mcp
MCP server for AI agents
Connects any MCP client — Claude Code, Cursor, Copilot — to your visual results: structured verdicts, diff images, and explain_snapshot, which attributes every diff to selectors and explains why it happened. Your model does the reasoning; approvals apply only what a human confirmed.
mcbuddy/testivai-oss@v1
GitHub Action — PR reporter
Posts the visual report to your pull request as a comment + commit status, uploads the report artifact, and supports multiple visual lanes per repo via status-context.
mcbuddy/testivai-oss/approve@v1
GitHub Action — approvals
Comment /testivai approve on the PR and updated baselines are committed back to the branch. Write-access verified; no local checkout needed.
Quickstart

First visual diff
in five minutes.

No new test suite, no new infrastructure — it rides along with the tests you already have.

First run creates baselines. Screenshots and DOM snapshots land in .testivai/baselines/, committed to git like any other fixture.

Later runs diff against them. Pixel changes are measured against your tolerances; the DOM diff flags pure render noise so it doesn't cry wolf.

Approve what's intentional. Locally with npx testivai approve, or straight from the PR with a /testivai approve comment.

terminal
# Install the Playwright adapter
npm install @testivai/witness-playwright
 
# Add one line to any test
await testivai.witness(page, testInfo, 'checkout');
 
# Run tests, open the report
npx playwright test
open visual-report/index.html
 
# Approve an intentional change
npx testivai approve "checkout"
Built in the Open

Read it. Fork it.
Ship with it.

One repo holds the SDKs, the GitHub Actions, working examples per framework, and the E2E suite that gates every release. Issues and PRs welcome — releases go to npm with provenance.