SDK Overview
Vizzly keeps the capture side intentionally small.
Most integrations boil down to one idea: your tests send screenshots through a Vizzly client, and the CLI handles the rest.
If you are setting up Vizzly for the first time, start with Quick Start. It walks through the whole path: create a project, create a token, capture one screenshot, and review the first baseline.
The main paths
JavaScript client
For most JavaScript and Node test runners, use the built-in client from @vizzly-testing/cli.
npm install -D @vizzly-testing/cliimport { vizzlyScreenshot } from '@vizzly-testing/cli/client';Framework-specific packages
Vizzly also has integrations for workflows like:
- Storybook
- static sites
- Vitest
- Ember
- Ruby
- Swift
Each one is documented in this SDK section.
Local mode vs cloud mode
Local development
vizzly tdd startYour tests post screenshots to the local server. Comparisons stay local in .vizzly/.
CI and team review
vizzly run "npm test" --waitThe same client-side capture flow works. vizzly run wraps the test command, starts the capture
server, and uploads the resulting build for shared review.
When a capture is uploaded
In cloud mode, the local server queues screenshots for upload. A successful capture response means the local server accepted it; the cloud upload can still fail afterward. Check the CLI’s final summary for uploaded, reused, and failed screenshots.
vizzly run reports upload failures without failing passing tests. See upload failures for the build status and exit-code behavior. All cloud captures follow the same image and name requirements.
What to use by default
If you are in JavaScript, start with @vizzly-testing/cli/client.
If you need a custom integration in another language, use Build Your Own Vizzly SDK and mirror the local HTTP contract.