Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsSet video: true in your Cypress configuration and run npx cypress run. Cypress creates one video per spec file in cypress/videos by default. It does not record videos from cypress open. Local recording is independent of Cypress Cloud; adding --record is a separate opt-in that uploads run data and artifacts.
What manual Cypress video recording does
Cypress video capture is a project setting, not a separate recorder that you start from the browser UI. When enabled, Cypress records the browser activity for each spec executed by cypress run and writes the resulting file to disk. The documented default is video: false, so an existing project will not produce videos until you change it.
Cypress’s documentation states: “Videos are not recorded during cypress open.” Use the interactive runner for authoring and debugging live; use cypress run when you need a saved artifact.
Official references: Cypress screenshots and videos guide, configuration reference, and the CLI reference.
Recommended Free Tools
#1 Best Overall
Enable video capture in the project configuration
CommonJS configuration
In a CommonJS project, edit cypress.config.js:
const { defineConfig } = require('cypress')
module.exports = defineConfig({
video: true,
})
TypeScript or ESM configuration
For cypress.config.ts or an ESM configuration file, use:
import { defineConfig } from 'cypress'
export default defineConfig({
video: true,
})
Keep the setting at the top level of defineConfig. If you use separate configuration blocks for browser projects, place it where the configuration for the run is applied. Cypress reads the project configuration before the run starts, so changing a test file alone does not enable recording.
Run the tests and locate the files
Record the configured suite
- Save the configuration file with
video: true. - From the project directory, run
npx cypress run. - Wait for the command to finish. Cypress writes one video for each spec it executes.
- Open the
cypress/videosdirectory and play the generated files with a compatible media player.
npx cypress run
cypress run is headless by default. You can add --headed when seeing the browser is useful, but recording is still a cypress run workflow:
npx cypress run --headed
Record one spec
To create a focused artifact instead of running the whole suite, pass a spec path:
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →npx cypress run --spec "cypress/e2e/my-spec.cy.js"
The --spec value can match one file or a pattern accepted by Cypress. Quoting the path avoids shell expansion problems, especially when the path contains brackets or spaces.
Choose another output directory
Set videosFolder when your CI pipeline or repository layout requires a different destination:
Rank #2
const { defineConfig } = require('cypress')
module.exports = defineConfig({
video: true,
videosFolder: 'artifacts/cypress-videos',
})
Make the directory an explicit CI artifact path if you need to download videos after a job. Cypress creates files for the specs run; it does not turn a single complete suite into one combined movie.
Prevent accidental deletion of earlier videos
Before a run, Cypress’s trashAssetsBeforeRuns setting defaults to true. It clears the contents of the downloads, screenshots, and videos folders, including nested folders and unrelated files placed there. A second run can therefore remove the first run’s videos before you inspect them.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
For a local investigation, copy the files elsewhere before rerunning. If retaining the folder contents is intentional, configure:
const { defineConfig } = require('cypress')
module.exports = defineConfig({
video: true,
trashAssetsBeforeRuns: false,
})
Disabling cleanup means old artifacts can accumulate and may confuse CI uploads. A safer pipeline pattern is to use a unique artifact directory per job or archive the current videos before starting another run.
Compression, quality, and chapter navigation
Understand the current default
The current configuration reference sets videoCompression to false. With compression off, Cypress avoids the extra encoding pass, which generally favors faster completion and the original captured quality at the cost of larger files.
Set a compression level
Cypress accepts false, 0, or a CRF value from 1 through 51. Lower CRF values preserve more quality and produce larger files. Setting true selects CRF 32. For example:
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchRank #3
const { defineConfig } = require('cypress')
module.exports = defineConfig({
video: true,
videoCompression: 32,
})
Compression increases processing time. Choose it when storage or artifact transfer is the bottleneck; leave it disabled when rapid local diagnosis and maximum visual quality matter more. Check the resulting file size and readability on your own CI browsers rather than assuming one CRF suits every suite.
Use chapters to jump between attempts
When a video is compressed, Cypress can embed chapter markers for test attempts. VLC, QuickTime, and IINA support these markers. Enable both options:
const { defineConfig } = require('cypress')
module.exports = defineConfig({
video: true,
videoCompression: 32,
})
If videoCompression is false or 0, Cypress skips encoding and does not create chapters. Chapters are useful when a long spec contains many tests: the player can jump to an attempt instead of requiring you to scrub through the entire recording.
Local files versus Cypress Cloud
These are separate workflows with different destinations and data implications.
| Workflow | Setup | Evidence location | Best for |
|---|---|---|---|
| Local video file | video: true; run cypress run |
Your configured videosFolder (default cypress/videos) |
Inspecting or retaining a file on a workstation or CI artifact store |
| Cypress Cloud recorded run | Set up the project, then run with --record and a record key |
Cypress Cloud receives run data and artifacts | Hosted run history and Cloud debugging features |
Keep recording local
A plain cypress run without --record does not communicate with Cypress’s external servers or record results in Cloud. You can still upload the local video to your own CI artifact storage under your organization’s controls.
Opt into Cloud deliberately
Cloud recording requires project setup and a record key. Supply the key directly or through CYPRESS_RECORD_KEY:
Rank #4
CYPRESS_RECORD_KEY=your-key npx cypress run --record
According to Cypress’s Cloud FAQ, a Cloud-recorded run can include test results, test definitions, configuration excluding Cypress environment variables, screenshots, videos, standard output, and CI or Git-related environment data. Review your organization’s requirements and the Cloud data storage and controls before enabling uploads.
Cypress documents controls with different scopes: deleting videos before upload, --no-runner-ui to hide Runner UI content, and suppressing selected command-log entries. None is a blanket guarantee that every sensitive value is excluded. When Test Replay is enabled, the Runner UI is hidden by default in the recording; pass --runner-ui if you need that interface visible.
The migration guide notes that videoUploadOnPasses was removed. If successful-spec videos should not remain in Cloud, the current guidance is to delete those videos after the run rather than relying on that removed option. Check the Cypress migration guide when upgrading.
A reliable manual workflow
- Decide the destination. Use local files unless your team specifically needs Cloud history and has approved the data flow.
- Enable capture. Set
video: trueand, if needed,videosFolderandvideoCompression. - Protect prior artifacts. Copy old videos or set
trashAssetsBeforeRuns: falsebefore rerunning. - Narrow the reproduction. Use
--specto record the failing spec first. - Run headlessly or headed. Start with
npx cypress run; add--headedonly when visual observation helps. - Archive intentionally. Upload the configured video directory as a CI artifact, and apply your retention policy.
Troubleshooting missing or unusable videos
No video appears
- Confirm the active configuration contains
video: true, not only a different config file. - Confirm you used
cypress run;cypress opendoes not record videos. - Check the configured
videosFolder, which may not be the default. - Wait for the run to finish before checking; encoding can occur at the end when compression is enabled.
The previous video disappeared
trashAssetsBeforeRuns: true clears the videos directory before each run. Copy the artifact first or disable cleanup deliberately.
Files are too large
Enable videoCompression with a CRF appropriate to your storage budget. Higher CRF values generally trade quality for smaller files; verify text and failure details remain readable.
The run takes too long
Compression adds processing time. Try false or 0 while diagnosing, narrow the run with --spec, and compress during artifact processing if your CI system supports that workflow.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Chapters are missing
Chapters require compression. A setting of false or 0 intentionally produces no chapter markers. Use a supported player such as VLC, QuickTime, or IINA to view them.
Cloud contains data you did not expect
Remove --record for a local-only run, or review Cloud’s documented controls before the next upload. Use --no-runner-ui, suppress selected command logs, or delete videos before upload where those controls match your requirement; evaluate each captured data type separately.
Or skip the browser setup
If what you need is a repeatable visual snapshot of a page involved in a test—not a time-based Cypress video—ScreenshotNeo can return an image or PDF through one request. It accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; bot checks, blank pages, failed loads, timeouts, and cache hits are not billed, and response headers identify the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients.
See the ScreenshotNeo API documentation for all options. A minimal call is:
Free tools Windows power users keep installed
One-click scans. No signup required.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp
Python:
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://example.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://example.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots, and every feature is available on every plan. Create a free ScreenshotNeo account to try it.
FAQ
Frequently Asked Questions
Does Cypress create one video for every test?
No. Cypress documents one video per spec file during a cypress run; a spec containing several tests is represented in that spec’s video.
Can I record only a headed browser session?
You may add --headed to cypress run to show the browser, but video capture is still controlled by video: true and the run command.
Is a Cypress Cloud account required for local videos?
No. Local output works without --record or Cloud setup.
The Bottom Line
For a local Cypress video, enable video: true, run npx cypress run, and collect files from cypress/videos (or your configured folder). Treat compression, cleanup, and Cloud upload as separate decisions.
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.

