Snapvisor
Snapvisor is a visual testing platform built on an open-source engine. Capture screenshots from your existing test suite, compare them with a 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. Follow these steps to create your first build.
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 ./screenshotsSnapvisor selects an eligible baseline using your base branch and Git history. Approved builds can become the reference for later comparisons.
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 an eligible baseline with a perceptual engine that reduces anti-aliasing and rendering noise.
- Review — changes land as a status check on your pull request. Approve the intended ones, reject the regressions. Approved builds become eligible baselines for later comparisons.
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.
Guides
Set up your test runner. Step-by-step pages with the CI step: Playwright, Storybook, Cypress, Puppeteer and GitLab CI. The background reading is how visual regression testing works, including in GitHub pull requests and self-hosted.
Move from another tool. One guide per tool, each saying what carries over and what does not:
- Percy, Chromatic, Applitools and Happo
- Lost Pixel, BackstopJS, Loki and reg-suit
- Playwright snapshots, Cypress snapshots, jest-image-snapshot and Visual Regression Tracker
Wire it into CI. GitHub Actions, previews and deployments, tokenless and OIDC authentication, and troubleshooting when a build compares against the wrong baseline.
Run it for a team. Members and roles, SAML SSO, spend management, pricing, and self-hosting.
Use it from an agent. The MCP server, its overview on snapvisor.io, and the agent setup pages for Claude Code, Codex, Cursor and OpenCode. See also how Snapvisor compares with other tools.
At a glance
- Perceptual pixel diffing with anti-aliasing detection and adjustable thresholds
- 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
- Built on an inspectable open-source core; contact support for self-hosting access