Plugins
Plugins provide a way to support and extend the behavior of Cypress. Follow these instructions to submit your own plugin.
Check out our Plugins Guide or our API docs for writing a plugin.
Preprocessors
A preprocessor is the plugin responsible for preparing a support file or a test file for the browser. By default, Cypress comes packaged with webpack preprocessor already installed. Read the Preprocessors API docs to learn more.
Webpack
officialWatches and bundles your spec files via webpack.
#webpackWatch
officialWatches your spec files and serves them as-is. Useful as an example reference or if you don't need transpiling/bundling.
#file-watcherCucumber
communityRun cucumber/gherkin-syntaxed specs with cypress.io.
#file-watcher #cucumbercypress-markdown-preprocessor
communityCypress preprocessor for extracting tests from Markdown files.
#markdowncypress-rollup-preprocessor
communityCypress preprocessor for bundling JavaScript via rollup.
#rollupBundle Cypress specs using esbuild.
#esbuildcypress-vite
communityCypress preproccessor for running specs using vite.
#viteCytorus
deprecatedRun cucumber/gherkin-syntaxed specs with cypress.io.
#gherkin #cucumbercypress-app-watcher-preprocessor
deprecatedReruns Cypress tests when the back end server restarts.
#file-watchercypress-eslint-preprocessor
deprecatedRuns linting via ESLint on your spec files as they are loaded and display errors in the console.
#eslintRollup
deprecatedWatches and bundles your spec files via Rollup.
#rollupcypress-esbuild-preprocessor
deprecatedUses evanw/esbuild to bundle your specs.
#esbuild
Development Tools
Docker
officialDocker images providing all the dependencies to run Cypress in CI including browsers.
#docker #continuous-integrationeslint-plugin-cypress
officialESLint plugin that sets globals for writing tests in Cypress.
#eslintCircleCI Cypress Orb
officialCypress Orb for CircleCI configuration to correctly install, cache and run Cypress.io tests in CircleCI with very little effort.
#continuous-integration #circleciCypress Github Actions
officialGitHub Action for running Cypress end-to-end and component tests. Includes npm, pnpm and Yarn installation, custom caching and lots of configuration options.
#continuous-integration #github-actions@cypress/code-coverage
officialPlugin to save code coverage collected during Cypress tests.
#coverageCypress Chrome Recorder
officialTool to export Cypress Tests from Google Chrome DevTools' Recordings programmatically.
#recording #chrome #automation #devtoolsOfficial Cypress extension for Chrome DevTools that allows you to export Cypress tests directly from the Recorder panel.
#recording #chrome #extension #devtools@cypress/grep
officialFilter tests using its title or tags.
#grepTypeScript
officialOfficial TypeScript definitions for the Cypress API.
#typescriptcypress-runner-themes
communityAlternative themes for the Cypress Test Runner.
#theme #dark #light #colorblindcypress-voice-plugin
communityCypress plugin to announce spec result and time in Cypress Test Runner.
#auditory #ui #results #durationcypress-plugin-last-failed
communityA companion Cypress plugin for `cy-grep` that re-runs the last failed test(s).
#grep #ui #failure #resultscly
communityA prototype of generating quicker project scaffolding for Cypress.
#cypress cli #prototype #CLI #scaffoldingcypress-watch-and-reload
communityReloads Cypress when one of the watched files changes.
#file-watchervscode-cy-helper
communityVisual Studio Code extension for cypress and cucumber preprocessor.
#vscode #extension #intellisensecypress-har-generator
communityGenerate HTTP Archive (HAR) while running tests.
#har #http-archive #http #websocket #recording #chromecypress-expect-n-assertions
communityCypress helper that checks number of expected and actual assertions in the test.
#test #assertioncypress-audit
communityRun Lighthouse audit directly in your E2E test suites.
#lighthousecypress-hmr-restarter
communityRestarts tests when receiving webpack-dev-server HMR updates.
#webpack #webpack-dev-server #hmrcypress-browser-permissions
communityControls permissions for desktop notifications, geolocation, and other browser APIs
#permissions #notifications #geolocation #camera #microphonecypress-repeat
communityRun Cypress multiple times in a row, great at finding test flake.
cypress-expect
communityCypress CLI wrapper where you can specify the total number of expected tests.
#clicypress-log-filter
communityEasily filter Cypress command logs based on different log levels
#log #command #filtercy-search
communitySearch Cypress documentation from the terminal.
#clicypress-tags
communityUse custom tags to slice up Cypress test runs.
#test #tag #browserify@swimlane/cy-mockapi
communityEasily mock your REST API in Cypress by putting responses in the fixtures directory tree.
#mock #rest #apicypress-duration-metrics
communityMeasure duration of commands and different stages of cypress lifecycle. Log to terminal.
#duration #timings #commands #performance #measurement #metrics #totalcypress-timings
communityA Cypress plugin for reporting individual command timings.
#commands #performancecypress-fail-fast
communityEnables fail fast in Cypress, skipping the rest of tests on first failure.
#fail-fast #failure #skip #configcypress-fail-on-console-error
communityFail cypress test on console error.
#console #error #failcypress-fail-on-network-error
communityFail cypress test on network error.
#network #error #failcypress-codegen
communityA Cypress plugin which automatically adds and enables IntelliSense for custom commands
#commands #development #codegencypress-backoff
communityA Cypress plugin to apply different timeout strategies to retried tests
#retries #backoffcypress-fixture-faker
communityA Cypress plugin that enables faker functions in json fixture files.
#fixture #fakercypress-solid
communityA Cypress plugin to help you test applications using the Solid Protocol.
#solid #solid-protocol@cypress/instrument-cra
deprecatedNPM module for create-react-app applications to instrument source code without ejecting react-scripts.
#coveragecypress-dark
deprecatedSeveral color themes for Cypress test runner.
#themecypress-protobuf
deprecatedEncode a fixture with Protocol Buffers.
#encoding #protobufKnapsack Pro Cypress
deprecatedDynamic tests split across parallel CI nodes with Knapsack Pro Queue Mode to get faster CI builds. Note - this is 3rd party implementation, different from Cypress Cloud parallelization.
#CI parallelisation #continuous-integrationcypress-autostub
deprecatedAlleviates the need to mantain brittle manual mocks by automating the recording and stubbing of requests.
#mocking #stubbing #recording #fetch #xhrcypress-select-tests
deprecatedUser space solution for grepping Cypress tests to run.
#browserifycypress-autorecord
deprecatedSimplify API mocking by auto-recording/stubbing HTTP interactions and automating the process of updating/deleting mocks.
#mock #recording #http #integration test@cypress/fiddle
deprecatedQuickly generates Cypress E2E tests from HTML and JS code.
#prototype@bahmutov/cypress-extends
deprecatedCypress plugin that adds "extends" support to the configuration file.
#configBrowserify
deprecatedWatches and bundles your spec files via browserify.
#browserify
Custom Commands
Read the Custom Commands and Custom Query documentation to learn more.
Puppeteer
officialUtilize Puppeteer's browser API with one command within Cypress.
#puppeteer #multi-tabcypress-testing-library
verified🐅 Simple and complete custom Cypress commands and utilities that encourage good testing practices.
#testing-library #dom-testing-library #react-testing-librarycypress-wait-until
verifiedAdd the Cypress waiting power to virtually everything 🎉
#commands #wait #wait-until #recursive-promise #check-async-value #check-value #open-source-saturdaycypress-plugin-steps
communityHelper utility for annotating your tests with steps. Adds cy.step() and cy.section() commands
#step #section #readabilitycypress-plugin-xhr-toggle
communityHides and reveals XHR events in Cypress GUI
#utility #UI #api #xhrcypress-plugin-api
communityCypress plugin for effective API testing. Imagine Postman, but in Cypress.
#apicy-view
communityRun tests on multiple URLs at various viewport sizes.
#viewportscypress-axe
communityHelps test your applications for accessibility issues using axe-core.
#accessibility #a11ycypress-drag-drop
communityAdds a cypress child command for drag'n'drop support.
#dragndrop #drag #drop #commandscypress-fill-command
communityA Cypress command for fill inputs.
#commandscypress-firebase
communityCustom commands for Firebase including Authentication and Database communication (both Real Time Database and Firestore).
#firebase #database #commandscypress-graphql
communityCustom commands to stub, spy, or test GraphQL operations.
#graphql #mocking #networking #commandscypress-graphql-mock-network
communityCustom commands to mock your GraphQL API at the network level. Using service-workers for complete isolation of the mock server.
#graphql #mocking #networking #commandscy-mobile-commands
communityMobile testing helper for Cypress.
#mobile #swipe #touch #commandscypress-downloadfile
communityA custom command to download different kinds of files and store them on your local machine
#commands #downloadingcypress-commands
communityA collection of Cypress commands to extend and complement the defaults.
#commandscypress-recurse
communityA way to re-run Cypress commands until a predicate function returns true.
#commands #wait #wait-until #recursive-promise #check-async-value #check-valuecypress-cy-select
communitydata-cy shorthand notation for cypress get and find functions.
#commands #shorthandCypress-SignalR-Mock
communityEasy way to publish messages from and to your SignalR hubs in Cypress E2E tests.
#commands #signalr #mock #websocket@bahmutov/cy-api
communityCypress custom command "cy.api" for HTTP API testing with server logs.
#apicypress-localstorage-commands
communityCustom commands for localStorage. Allows preserving localStorage between tests.
#commands #localstorage #persistence@this-dot/cypress-indexeddb
communityCustom commands for indexedDb. Allows populating, modifying and asserting data stored in indexedDb.
#commands #indexedDbcypress-react-selector
communitycypress custom commands to locate react elements by component, props and state.
#react #commands #locatorcypress-layout-inspector
communityA simple utility to provide layout testing functionality to Cypress via custom assertions.
#testing #ui #dom #assertions@swimlane/cy-dom-diff
communitycy-dom-diff allows matching chunks of DOM against HTML; including dynamic content.
#dom #assertionscypress-real-events
communityFire native system events from Cypress like hover, swipe, etc.
#commandscypress-azure-keyvault
communityCypress custom command to get keys from Azure Key Vaults.
#testing #azure #keyvault #secretcy-verify-downloads
communityCypress custom command to wait and verify that file was downloaded.
#commands #assertions #wait #verify #downloadcypress-if
communityEasy conditional if-else logic for your Cypress tests.
#commandscypress-mongodb
communityPlugin that allows interaction with MongoDB server using Cypress commands.
#testing #commands #mongodb #mongo #database #dbcy-spok
communityAdds assertions from Spok library for easy schema and value validations.
#assertionscypress-plugin-tab
communityA Cypress plugin to add a tab command.
#commandscypress-plugin-multiple-click
communityClick multiple times in Cypress.
#testing #commands #click@datashard/snapshot
communityAdds Snapshot command. Adds value / object / DOM element snapshot testing support to Cypress test runner
#snapshot #comparison #commandscypress-plugin-dotenv
communityLoad .env variables in Cypress.
#testing #commands #.env #environment variablescypress-intercept-formdata
communityWork with Cypress' Intercept multipart/form-data requests
#testing #commands #intercept #form-data #requestcypress-unfetch
deprecatedTrack, test, and block code execution based on network state.
#commands #routing #networkingcypress-redux
deprecatedRun assertions against Redux stores.
#commands #reduxcypress-pipe
deprecatedCreate custom commands using plain-old functions. Similar to `cy.then` but with retriability.
#commandscypress-plugin-stripe-elements
deprecatedSimple commands that make it easy to target and fill in Stripe Elements input fields
#stripe #commands #elements #inputs@cypress/skip-test
deprecatedSimple commands to skip a test based on platform, browser or a url.
#commandscypress-websocket-testing
deprecatedTest WebSocket connections with Cypress
#commands #websocketcypress-iframe
deprecatedCustom commands for interacting with iframes.
#commands #iframecypress-rest-graphql
deprecatedAdd visual output and helper functions for performing REST and graphQL queries.
#api #rest #graphQLcypress-dotenv
deprecatedCypress plugin that enables compatibility with dotenv.
#dotenv #env #environment #env varcypress-xpath
deprecatedAdds XPath command. This repo is also a good example of using custom commands to do retries, provide TypeScript definitions, etc.
#xpath #commands
Extending other testing frameworks
PickleJS
communityAn addition to the Cucumber plugin, featuring a collection of phrases you can use for common actions (ex: "I click on an <Element>", "I should see an <Element>").
#cucumber #collection #actions #commandsPact Cypress Adapter
communitySimple commands to generate Pact contracts from your existing Cypress tests, maintained by the Pactflow team.
#pact #pactflow #contract testing #commandscypress-capybara
deprecatedSeveral Capybara finders re-implemented in Cypress to locate UI elements by their text and labels.
#testing-library #capybaracypress-jest-adapter
deprecatedAdd jest assertion style to Cypress expect command.
#jest
Authentication
Take a look at our auth guides for Amazon Cognito, Amazon Cognito, Auth0, Amazon Cognito, Google, Okta Cognito, and Social Logins. Also checkout our Logging in recipes.
cypress-ntlm-auth
verifiedNTLM authentication support for Cypress.
#authentication #ntlmcypress-social-logins
communityCypress authentication flows using social network providers.
#authentication #login #social profiles #github #googlecypress-keycloak-commands
deprecatedCypress commands for authenticate users with Keycloak Identity Provider.
#authentication #login #keycloak #oauth #openidcypress-otp
deprecatedValid OTP token generation for Cypress.
#authentication #otp #2fa #mfa
Framework tooling
Cypress Schematic
officialAdds Cypress to your Angular project via the Angular CLI. Adopted by Cypress; originally released as @briebug/cypress-schematic.
#angular #clicypress-on-rails
communityRubygem for using cypress.io with Ruby on Rails applications.
#ruby-rack #ruby-on-railsNx
communitySmart, Fast and Extensible Build System.
#angular #react #cli #monorepoAurelia CLI
communityThe Aurelia CLI is the official command line tool for Aurelia.
#aurelia #cliWordPress ReactJS Boilerplate
communityComplete WordPress Plugin Boilerplate including Cypress.io E2E tests.
#wp #wordpressNext Right Now - Next.js Boilerplate
communityNext.js boilerplate with Jest/Cypress and CI/CD pipeline built-in (monorepo, multi-tenants).
#next.js #react #monorepo #multi-tenantscypress-rails
communityRuby gem to run Cypress against Rails apps, replacing Capybara in system tests.
#ruby #railsVue CLI
deprecatedVue CLI allows you to scaffold an application with Cypress E2E fully configured.
#vue.js #vue #cliElm Batteries Included
deprecatedA project template to learn how Elm, Parcel, Cypress and Netlify work together.
#elm #parcel #netlifycypress-laravel
deprecatedAdd commands and hooks to test Laravel applications.
#php #laravelcypress-splitio
deprecatedStores your split.io toggles as environment variables. Helps to decide which e2e tests you need to run.
#split.io #feature flags
Component Testing
Loading and mounting components from various frameworks.
Cypress Angular
officialTest Angular components using Cypress Test Runner. This package is bundled with the cypress package and does not need to be installed separately, unless a specific version is desired. See the Angular Component Testing Docs for mounting Angular components.
#component #angularCypress React
officialTest React components using Cypress Test Runner. This package is bundled with the cypress package and does not need to be installed separately, unless a specific version is desired. See the React Component Testing Docs for mounting React components.
#component #reactCypress Svelte
officialTest Svelte components using Cypress Test Runner. This package is bundled with the cypress package and should not need to be installed separately. See the Svelte Component Testing Docs for mounting Svelte components.
#component #svelteCypress Vue
officialTest Vue 3 components using Cypress Test Runner. This package is bundled with the cypress package and should not need to be installed separately. See the Vue Component Testing Docs for mounting Vue components.
#component #vue #vue.jsCypress Vue2
officialTest Vue 2 components using Cypress Test Runner. This package is bundled with the cypress package and should not need to be installed separately. See the Vue Component Testing Docs for mounting Vue components.
#component #vue #vue.jscypress-angular-unit-test
communityTest Angular component using Cypress Test Runner.
#component #angularcypress-ct-custom-devserver
communitySimplified API for creating custom dev servers for Cypress.
#component #buildtool #devservercypress-devserver-esbuild
communityBuild Cypress Component Tests using esbuild.
#component #esbuild #devservercypress-rspack-dev-server
communityBuild Cypress Component Tests using Rspack.
#component #Rspack #dev-serverCypress Nuxt
deprecatedUtilities for using Cypress with Nuxt.
#vue.js #vue #nuxt #nuxt.jscypress-angularjs-unit-test
deprecatedUnit test Angularjs code using Cypress Test Runner.
#component #angular.jscypress-cycle-unit-test
deprecatedTest Cycle.js components using Cypress Test Runner.
#component #cycle.jscypress-hyperapp-unit-test
deprecatedTest Hyperapp components and applications using Cypress Test Runner.
#component #hyperappcypress-svelte-unit-test
deprecatedTest Svelte components using Cypress Test Runner.
#component #svelte
Visual Testing
Visual testing is a great complement to functional testing.
Wopee.io
communityWopee.io: Easy visual testing with Cypress.
#fullpage #screenshots #visual regression #screenshots comparisonSmartBear VisualTest
verifiedVisual regression testing for Cypress tests with SmartBear VisualTest.
#visual-ai #fullpage #screenshots #visual regression #screenshots comparisonArgos
verifiedAutomate visual testing in your CI.
#devX #screenshotsApplitools
verifiedFast, easy and reliable visual UI testing with Cypress.
Percy
verifiedVisual regression testing for Cypress tests with Percy.
#screenshots #visual regressionPixeleye
communityOpen-source, multi-browser visual review and testing platform.
#open-source #screenshots #visual regression #multi-browserHappo
communityCross-platform, cross-browser screenshot testing for modern user interfaces.
#screenshots #visual regressionCypress Image Snapshot
communityCatch visual regressions and compare image diffs locally and in Cypress Cloud.
#image-diff #snapshotCypress Visual Regression
communityPlugin that adds powerful visual regression testing capabilities to Cypress, that comes with a comparison preview built in the Cypress Test Runner.
#image-diff #snapshot #visual regressionA module for adding visual regression testing to Cypress, based on Cypress Visual Regression plugin and Resemble.JS library. The main difference between 'Cypress Visual Regression' plugin and this one is that the present plugin mitigates the anti-aliasing problem. The problem appears when comparing the base and actual screenshots generated on different environments (e.g. Windows vs Linux).
#image-diff #snapshotVisual Regression Tracker
communityIntegration with open source service for visual testing and managing its results.
#screenshots #image-diff #visual regressionCypress Image Diff
communityVisual regression testing plugin maintained by DIT - UK Gov.
#screenshots #visual regression #image-diffVisual Regression Diff
communityPerform visual regression test with a nice GUI as help. 💅 Supports both E2E and Component Testings
#screenshots #visual regression #visual testing #image-diff #image comparison #image snapshotMicoo
communityCypress plugin for doing visual regression testing with Micoo services
#visual regression testing #visual testing #screenshots comparison #testing servicecypress-plugin-snapshots
deprecatedPlugin for snapshot tests in Cypress. Same API as Jest, but with graphical interface for reviewing and approving changes.
#snapshot
Reporting
cypress-failed-log
communitySaves the Cypress test command log as a JSON file if a test fails.
#reportercypress-terminal-report
communityLogs to terminal and files mimicking cypress UI. Logs all cypress commands, request/response data and browser console logs.
#reporter #logs #terminal #CI #CLITestRail Reporter which auto-set status for specific TestRun for Cypress.
#testrail #reporter #autoset #statuscypress-testrail-reporter
communityCustom reporter for publishing Cypress results to a TestRail test run.
#testrail #reportercypress-teamcity-reporter
communityCustom reporter for Teamcity which makes it possible to display test results in real-time and add them on the Tests tab of the Build Results page.
#teamcity #reportercypress-slack-reporter
communitySlack reporting tool. Uses mochawesome json reports, provides links to VCS Provider (github/bitbucket) and CircleCI logs.
#reporter #mochawesome #slackmochawesome-merge
communityMerges multiple mochawesome JSON reports.
#reporter #mochawesomecypress-mochawesome-reporter
communityZero config Mochawesome reporter for Cypress with screenshots.
#reporter #mochawesome #screenshotallure-cypress
communityAllure reporter for Cypress. Creates rich HTML test reports with screenshots, steps and more.
#reporter #allure #step #screenshotcypress-msteams-reporter
deprecatedA reporting tool which sends a message to Microsoft Teams with information about the latest cypress test execution results.
#reporter #ms-teams #allure-reportcypress-log-to-output
deprecatedPlugin that prints all browser console logs to the terminal while running Cypress tests. Currently, only Chrome is supported.
#logging
cypress-mailosaur
communityTest email and SMS messages using Mailosaur.
#email #sms #commandscypress-maildev
communityA bunch of Cypress commands in order to test your messages (SMS and Emails) by using Maildev REST API.
#email #sms #commandscypress-mailslurp
communityUse test email accounts to send and receive emails in Cypress tests with MailSlurp.
#email #mailslurp #test #commandscypress-mailhog
communityA collection of useful Cypress commands for testing Emails utilizing the MailHog RestAPI. Comes with TypeScript support.
#email #mailhog #test #commandscypress-guerrillamail
communityCreate and use a randomly-generated email address from Guerrilla Mail.
#email #guerrillamail #test #commandscypress-temp-mail
communityLightweight npm library designed to generate temporary email addresses for end-to-end testing with Cypress
#cypress-temp-mail #email #temp-mail #test #commandscymap
communityAccess email from any email server by leveraging IMAP capabilities inside Cypress.
#imap #email #test #commandscypress-mailpit
communityA collection of useful Cypress commands for testing Emails utilizing the Mailpit RestAPI. Comes with TypeScript support
#mailpit #email #test #commands #email
SMS
cypress-temp-sms
communityGenerates temporary mobile numbers that shall be used for SMS verification (OTP,2FA)
#cypress-temp-sms #sms #temp-number #otp #2fa #commands