A visual regression testing tool organized as a monorepo. ViSnap captures and compares screenshots of UI components to help catch unwanted visual changes before they reach users.
This monorepo contains several packages that work together to provide visual regression testing:
@visnap/protocol- Shared types and interfaces used across all packages@visnap/core- Main orchestration engine that manages test execution and coordinates between adapters@visnap/cli- Command-line interface for end users@visnap/reporter- Generates HTML and JSON reports from test results
@visnap/storybook-adapter- Tests individual Storybook components and stories@visnap/url-adapter- Tests any web page or application by URL@visnap/playwright-adapter- Browser automation layer using Playwright@visnap/fs-adapter- Filesystem storage for screenshots and test data
apps/docs- Documentation site at visnap.devexamples/*- Example projects showing ViSnap integration
packages/eslint-config- Shared ESLint configuration for all packages
# Install ViSnap CLI
npm install -D @visnap/cli
# Start with init - it sets up everything you need
npx visnap init
# Take baseline screenshots
npx visnap update
# Test for visual changes
npx visnap testThe init command installs @visnap/cli and required adapters locally in your project.
To contribute to this project, see CONTRIBUTING.md for development setup and guidelines.
📚 Full Documentation - Complete guides, API reference, and examples