Set up Vizzly CLI for visual regression testing in JS projects like Next.js and Astro, analyze failures by viewing baseline/current screenshots and pixel diffs with cause suggestions like layout shifts, check test status from report-data.json with pass/fail counts and TDD links, suggest screenshot opportunities in Playwright/Cypress/Jest tests with line numbers and names.
npx claudepluginhub vizzly-testing/cli --plugin vizzlyCheck the status of Vizzly visual regression tests. Use when the user asks about test status, test results, what's failing, how tests are doing, or wants a summary of visual tests.
Analyze visual regression test failures in Vizzly. Use when the user mentions failing visual tests, screenshot differences, visual bugs, diffs, or asks to debug/investigate/analyze visual changes.
Visual testing best practices and philosophy. Use when the user is adding visual tests, writing test code, deciding where to add screenshots, or asking about screenshot best practices.
Core knowledge about Vizzly visual testing - file structure, CLI commands, and how it works. Use when working with Vizzly, running visual tests, or helping with screenshot-related tasks.
Share bugs, ideas, or general feedback.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimVisual regression testing with screenshot comparison
Visual diff testing with Percy, Chromatic, BackstopJS - catch unintended UI changes
Visual regression testing — compare Figma designs against live web pages with pixel-level diff and AI vision.
Run E2E browser tests using natural language test definitions powered by Claude Code SDK and agent-browser with video recording
Playwright E2E test debugging and interactive browser exploration. Runs tests with action capture (DOM snapshots, network, console, screenshots), diagnoses failures, and provides browser tools for navigating, clicking, and inspecting pages through ARIA snapshots.
Battle-tested Claude Code plugin for engineering teams — 50 agents, 188 skills, 68 legacy command shims, production-ready hooks, and selective install workflows evolved through continuous real-world use
Visual proof that your UI works
Visual bugs slip through code review. They hide in pixel-perfect mockups, sneak past unit tests, and show up right when you're about to ship. Vizzly catches them first.
Unlike tools that re-render components in isolation, Vizzly captures screenshots directly from your functional tests—the real thing. Whether you're validating AI-generated code or testing manual changes, you get visual proof before anything hits production.
Local TDD workflow. See changes as you type, not after CI. The vizzly tdd command runs a local dashboard that compares screenshots instantly—no cloud roundtrip, no waiting.
Smart diffing with Honeydiff. Our Rust-based comparison engine is 12x faster than alternatives and ignores the noise: timestamps, ads, font rendering differences. It finds real changes.
Any screenshot source. Playwright, Cypress, Puppeteer, Selenium, native mobile apps, or even design mockups. If you can capture it, Vizzly can compare it.
Team-based pricing. Pay for your team, not your screenshots. Test everything without budget anxiety.
Requires Node.js 22+.
npm install -g @vizzly-testing/cli
vizzly init
Start the TDD server, run your tests in watch mode, and see visual diffs instantly at http://localhost:47392.
vizzly tdd start
npm test -- --watch
The dashboard shows diffs in real-time. Accept or reject changes right from the UI.
For team collaboration and CI pipelines:
vizzly login
vizzly run "npm test" --wait
The --wait flag polls for results and exits with code 1 if visual differences are detected.
For CI environments, set your project token:
export VIZZLY_TOKEN=your-project-token
vizzly run "npm test" --wait
Add screenshots to your existing tests:
import { vizzlyScreenshot } from '@vizzly-testing/cli/client';
test('homepage looks correct', async ({ page }) => {
await page.goto('/');
let screenshot = await page.screenshot();
await vizzlyScreenshot('homepage', screenshot, {
browser: 'chrome',
viewport: '1920x1080'
});
});
The client SDK is lightweight—it just POSTs to the local server. Works with any test runner. SDKs available for JavaScript, Ruby, Swift, and more.
Already saving screenshots to disk? Pass the file path instead:
await page.screenshot({ path: './screenshots/homepage.png' });
await vizzlyScreenshot('homepage', './screenshots/homepage.png');
Or upload an existing folder of screenshots:
vizzly upload ./screenshots
Generate a config file:
vizzly init
Or create vizzly.config.js manually:
export default {
comparison: {
threshold: 2.0 // CIEDE2000 Delta E (0=exact, 2=recommended)
}
};
| Command | Description |
|---|---|
vizzly tdd start | Start local TDD server with dashboard |
vizzly tdd run "cmd" | Run tests once, generate static report |
vizzly run "cmd" | Run tests with cloud integration |
vizzly upload <dir> | Upload existing screenshots |
vizzly login | Authenticate via browser |
vizzly doctor | Validate local setup |
Full documentation at docs.vizzly.dev—including framework guides, CI/CD setup, configuration reference, and more.
Found a bug? Have an idea? Open an issue or submit a PR.
MIT