Snapvisor
Snapvisor is an open-source visual testing platform. Capture screenshots from the test suite you already run, diff them against an approved baseline, and review changes on your pull requests.
Snapvisor is a visual regression testing platform built on a proven open-source visual-diff engine. It captures screenshots from the test suite you already run — Playwright, Cypress, Puppeteer, Storybook, or any tool that writes image files — compares them against an approved baseline, and posts the result as a status check on your pull request.
Why visual testing
Unit tests verify logic, not pixels. Visual regressions slip through green suites all the time:
- Silent layout shifts — a CSS tweak two components away moves your checkout button below the fold.
- Broken typography — a font fails to load and your headline wraps into the navbar.
- Responsive regressions — perfect at 1440px, broken at 375px.
Snapvisor surfaces these as reviewable screenshot diffs instead of letting them ship.
Quickstart
Snapvisor uses the open-source @snapvisor SDKs (drop-in forks of the @argos-ci SDKs) to capture screenshots and upload them for comparison. Get your first build in under an hour.
1. Create a project and grab your token
Sign in to the Snapvisor app, create a project, and copy its ARGOS_TOKEN from the project settings. This token authenticates uploads for that one project.
export ARGOS_TOKEN="<your project token>"Keep the token secret — store it as a CI secret, never commit it. See Access tokens for the difference between project tokens and personal access tokens.
2. Install an SDK
Install the CLI, plus the adapter for your test runner. Snapvisor has official SDKs for Playwright, Cypress, Puppeteer, Storybook, and a framework-agnostic core.
npm install --save-dev @snapvisor/cli
npm install --save-dev @snapvisor/playwright3. Capture and upload in CI
Run your tests so they write screenshots to a folder, then upload that folder. On a pull request, Snapvisor diffs the upload against the branch baseline and posts a status check with a link to review.
# after your tests have written screenshots to ./screenshots
npx @snapvisor/cli upload ./screenshotsThe first build on a branch becomes the baseline. Every later build is compared against the last approved baseline for that branch.
How it works
- Capture — your CI uploads screenshots from the Storybook stories, Playwright, or Cypress specs you already run.
- Diff — each screenshot is compared against your approved baseline with a perceptual engine that ignores anti-aliasing and rendering noise.
- Review — changes land as a status check on your pull request. Approve the intended ones, reject the regressions. Approved diffs become the new baseline for the branch.
Next steps
Getting started
Create a project, install an SDK, and upload your first build.
Baseline builds
How the reference build and base branch are resolved.
Review workflow
Baselines, approvals, monitoring mode, flaky-change handling, and summary checks.
CI integration
GitHub and GitLab status checks, tokenless auth, and parallel testing.
SDKs
Official JavaScript packages and a Python SDK and CLI.
MCP server
Let Claude Code, Cursor, or any MCP client read diffs and approve changes.
Access tokens
Project tokens for CI, personal access tokens for the API and MCP.
API reference
A versioned REST API described by an OpenAPI specification.
Support
Reach the team if you get stuck.
At a glance
- Perceptual pixel diffing that flags real visual changes and ignores rendering noise
- Approve/reject review workflow with per-branch baselines
- GitHub and GitLab pull-request status checks
- Parallel testing: shard large suites across machines and review them as one build
- Slack and email notifications
- A remote MCP server so AI agents can review your UI
- Self-hostable, with an inspectable open-source core