Free tools Windows power users keep installed
One-click scans. No signup required.
There is no universal Cypress command for updating every kind of snapshot. First identify which tool created the snapshot. If your project uses @simonsmith/cypress-image-snapshot, run npx cypress run --expose updateSnapshots=true with Cypress 15.10 or newer; older Cypress versions use npx cypress run --env updateSnapshots=true. Review the resulting image changes before accepting them. Cypress’s built-in cy.screenshot() captures an image, but does not compare it with a visual baseline.
First identify what “snapshot” means in your project
In Cypress, “snapshot” can refer to different things: an image captured during a test, an image baseline used by a visual-regression plugin, a DOM snapshot associated with Cypress features, or an assertion snapshot provided by another library or custom command. Those systems do not share one update command.
Cypress’s FAQ says there is no built-in general-purpose snapshot command. Its cy.screenshot() command saves an image; visual comparison and baseline updating are supplied by a plugin or service. Before changing files, look at the project’s dependencies, Cypress configuration, imports, and custom commands to find which system owns the snapshots.
- Search the package dependencies for visual-testing or snapshot packages.
- Inspect tests for snapshot assertions or plugin commands, rather than assuming every call to
cy.screenshot()creates a comparison baseline. - Check the setup file and Cypress configuration for plugin registration and options.
- Confirm the installed Cypress and plugin versions. A command documented for one plugin or version may not apply to another.
The update instructions below are specifically for @simonsmith/cypress-image-snapshot. If a different package or hosted service created the baseline, use that tool’s own documented update or approval workflow.
Update baselines with @simonsmith/cypress-image-snapshot
The plugin maintainer documents an update flag that tells the plugin to replace its base images with the images produced by the test run. The Cypress flag syntax depends on the Cypress version:
| Cypress version | Command | What it does |
|---|---|---|
| 15.10 or newer | npx cypress run --expose updateSnapshots=true |
Exposes updateSnapshots to the plugin so it can update base images for all tests in the run. |
| Older than 15.10 | npx cypress run --env updateSnapshots=true |
Uses the older environment-variable flag syntax for the same plugin update purpose. |
Use the command from the project root, where its local Cypress installation and configuration are available. The current plugin directory entry researched for this article lists version 11.0.0 and Cypress 15.10.0 or newer as its compatibility requirement; package versions and compatibility can change, so check the version actually installed in your project and its maintainer instructions.
These commands run Cypress in test mode and update base images for all tests in the run, not just a single test you happen to be viewing. If a broad run would replace baselines you have not reviewed, narrow the run using the project’s established Cypress test-selection process, or work in a branch where you can inspect and revert changes. Do not treat the update flag as a way to make an unexplained visual failure disappear.
Do not confuse baseline updates with failure settings
A snapshot mismatch normally fails the test. The plugin also documents a separate failOnSnapshotDiff setting that changes failure behavior. That setting is not the baseline update mechanism: changing whether a diff fails does not itself establish a new expected image.
Review a diff before accepting the new baseline
A baseline is the test’s definition of the expected appearance. Once replaced, the new image becomes the reference for later comparisons. An update can be correct after an intentional design change, but it can also conceal a rendering bug, missing content, or a test that captured the page too early. Review each changed image alongside its diff and the intended UI change before committing it.
- Confirm the expected page state. Wait for an assertion that verifies the relevant content has rendered before taking the snapshot. A fixed delay alone may still capture an intermediate state when rendering or network timing varies.
- Make test data repeatable. Use fixtures and network stubs to control responses. Control displayed dates and timers when those values affect the image.
- Keep capture settings consistent. Use the same viewport and rendering environment for baseline creation and comparison. Operating systems, browser versions, display scaling, and installed fonts can all change pixels.
- Limit unrelated visual changes. Prefer comparing a meaningful element when the tool supports element-level snapshots. Mask a region only if it is genuinely dynamic; masking too much can hide regressions.
- Inspect the actual change. Check that expected text, layout, controls, and images remain present. A new baseline should reflect an intentional result, not merely the output produced by a failing test.
- Commit reviewed baselines with the related change. Keeping the updated images with the code change makes the expected UI change reviewable and lets the team reproduce it.
Reduce false differences before regenerating snapshots
Wait for a stable state
Visual tests are sensitive to timing. Assert that the page has reached the state you intend to test before capturing it. If content depends on a request, wait for the relevant request or for a visible result instead of assuming that a page-load event means the interface is finished.
Control changing data and time
Use stable fixtures or stubbed network responses so the same test does not receive different names, counts, or content on different runs. If the interface displays a date, countdown, or time-sensitive message, use controlled dates or timers where the test setup allows it.
Match the rendering environment
Run baseline updates and ordinary comparisons with consistent browser and viewport settings. Differences in fonts, operating-system text rendering, browser releases, and display scaling can create pixel changes even when application code is unchanged. If developers and CI use different environments, prefer a consistent CI environment for both baseline generation and comparison rather than approving local-only noise.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsUse Cypress screenshot options for the right problem
Cypress screenshot options include disableTimersAndAnimations, enabled by default for cy.screenshot(). This can help make that screenshot capture less sensitive to animation and timers. It does not freeze every animation on the page: the visual-testing guide cautions that action settings such as waitForAnimations do not prevent unrelated page animations from appearing mid-capture. Stabilize the state under test as well as choosing capture options.
Rank #4
How to choose a visual-testing workflow
Open-source plugins commonly keep baselines with project code and leave image updates and diff review to the team. Hosted visual-testing services may manage capture, storage, comparison, rendering, and review; some offer cross-browser rendering or pull-request workflows. Cypress lists tools including Percy, Sauce Labs Visual, SmartBear VisualTest, Happo, and LambdaTest SmartUI as integrations or services. That list is an overview of options, not an endorsement of a particular vendor.
| Decision | Questions to ask |
|---|---|
| Baseline ownership | Are expected images stored in your repository and updated by your team, or managed by a service? |
| Review workflow | Can reviewers inspect a useful diff and approve the intended change without bypassing the comparison? |
| Rendering coverage | Do you need one consistent browser and viewport, or broader browser and viewport coverage? |
| Operating effort | Can the team keep local and CI rendering environments consistent, or would a managed workflow reduce that burden? |
Choose based on how your team wants to store, compare, and approve images. Regardless of tool, a passing test is meaningful only when the expected state and the comparison are trustworthy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Or skip the browser setup
If you need a clean website capture rather than a Cypress visual-regression baseline, ScreenshotNeo is a screenshot API and MCP server. It does not update Cypress plugin baselines or replace visual-diff review. One GET request can return an image or PDF; for example, this cURL request saves a WebP capture:
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteBest Value
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo documentation for request options and response details. Cookie and consent banners are accepted like a visitor and more than 60 known consent platforms, newsletter popups, and chat widgets are removed before capture; each step can be turned off. Bot checks, blank pages, and failed loads are not billed, and response headers identify the page verdict and billing status. Its MCP server provides screenshot tools for AI agents. The Free plan includes 1,000 shots per month without a card; paid plans start at $5 for 3,000 shots.
Sign up for ScreenshotNeo’s free plan to try 1,000 screenshots a month with no card.
Troubleshooting snapshot updates
| Symptom | Likely cause | What to do |
|---|---|---|
| The update command does not change the expected images. | The project may not use @simonsmith/cypress-image-snapshot, the flag syntax may not match the installed Cypress version, or the plugin may not be configured in that test run. |
Check the dependency, plugin registration, configuration, and installed versions. Use --expose updateSnapshots=true on Cypress 15.10 or newer, or --env updateSnapshots=true on an older version. |
| Many images changed unexpectedly. | The run may have captured a different state, data set, viewport, or rendering environment. | Do not accept the entire batch automatically. Inspect diffs, stabilize test data and timing, and compare using consistent viewport and rendering settings. |
| A test still fails after a baseline update. | The failure may be unrelated to the image diff, or the test may still be capturing an unstable or incorrect state. | Read the failure output and verify the page state and assertions. Updating an image does not fix application errors or other failed assertions. |
| CI reports diffs that do not appear locally. | Local and CI rendering conditions may differ, including browser, operating system, fonts, viewport, or display scaling. | Align the comparison environment and settings. If CI is the canonical environment, create and review baselines there. |
Changing failOnSnapshotDiff does not refresh images. |
It controls whether a difference fails the test, not whether the baseline is replaced. | Use the plugin’s documented update flag for the installed version, then review the resulting files. |
Frequently Asked Questions
Should a baseline update happen automatically on every CI run?
Treat updates as reviewed code changes rather than routine CI cleanup. An automatic replacement can turn an unintended rendering regression into the new expected result without anyone examining the diff.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.

