Snapvisor Docs

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/playwright

3. 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 ./screenshots

The first build on a branch becomes the baseline. Every later build is compared against the last approved baseline for that branch.

How it works

  1. Capture — your CI uploads screenshots from the Storybook stories, Playwright, or Cypress specs you already run.
  2. Diff — each screenshot is compared against your approved baseline with a perceptual engine that ignores anti-aliasing and rendering noise.
  3. 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

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

On this page