Visual testing for agents and reviewers.

Check your UI while you work, review changes with your team, and let your agent read the same baselines and comments.

Screenshots, diffs, and review history in one place.

Run checks locally, review changes with your team, and let your agent see what changed.

  • While you build

    Catch changes locally

    Run your screenshot tests once, compare against approved baselines, and open the saved report. No account needed for local testing.

  • In your pull request

    Review the screens that changed

    Approve, reject, or comment on new and changed screens. PR checks show the result in GitHub, and preview hosting lets reviewers click through your build.

  • For your coding agent

    Give your agent the same evidence

    Use the API schema to find requests for builds, screenshots, diffs, and review details. Your agent can inspect what changed before it edits.

    See how agents inspect results

Local visual checks while you work.

Run your screenshot tests once with vizzly tdd run, or keep the dashboard open with vizzly tdd start --open. Local testing works without an account.

Use local baselines, or select a cloud build with --baseline-build <id>.

Open the saved HTML report after your tests finish.

Use --json to give scripts and agents the results and a command to inspect them.

$ vizzly tdd run "npm test" --no-open

๐Ÿป 1 screenshot compared

  โ— 1 visual change detected
    โœ— checkout-empty-state โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 1.0%

  โ†’ Review changes: vizzly tdd start --open

Review only what changed.

Focus your review on changed and new screenshots. You can approve an intentional change or reject a regression; identical screenshots need no action.

Filter the build table to the screenshots you need.

Keep those filters when you open full-screen review.

The build is approved when every changed or new comparison is approved.

# Inspect a cloud build
vizzly api schema --json
vizzly api schema sdk.listBuilds --json
vizzly api /api/sdk/builds \
  -H 'Vizzly-API-Version: 2026-09-12' --json

# After reviewing a comparison
vizzly approve <comparison-id> \
  -m "Matches the design"
vizzly reject <comparison-id> \
  --reason "Unexpected layout shift"

Know which screen changed.

See which route, browser, branch, and commit a screenshot belongs to. Vizzly reads the image dimensions for you; add your own labels through properties, separate from capture and comparison options.

Connect your existing tests.

Use Node.js 22 or newer to install the CLI and initialize your project. Add screenshot capture to your tests with a Vizzly integration or vizzlyScreenshot(), then run them with the commands below.

$ npm install --save-dev @vizzly-testing/cli
$ npx vizzly init
$ npx vizzly tdd run "npm test" --no-open

# Link a cloud project when you are ready
$ npx vizzly login
$ npx vizzly project link your-org/your-project
$ npx vizzly run "npm test" --wait