Plugins
Plugins provide a way to support and extend the behavior of Cypress. Follow these instructions to submit your own plugin.
Looking for the API docs?
Check out our Plugins Guide or our API docs for writing a plugin.
Plugin Types
Preprocessors
Cucumber
communityRun cucumber/gherkin-syntaxed specs with cypress.io
#file-watcher#cucumberCytorus
communityRun cucumber/gherkin-syntaxed specs with cypress.io
#gherkin#cucumbercypress-app-watcher-preprocessor
communityReruns Cypress tests when the back end server restarts
#file-watchercypress-eslint-preprocessor
communityRuns linting via ESLint on your spec files as they are loaded and display errors in the console
#eslintWatch
officialWatches your spec files and serves them as-is. Useful as an example reference or if you don't need transpiling/bundling.
#file-watcherWebpack
officialWatches and bundles your spec files via webpack.
#webpackRollup
communityWatches and bundles your spec files via Rollup
#rollupcypress-markdown-preprocessor
communityCypress preprocessor for extracting tests from Markdown files
#markdowncypress-rollup-preprocessor
communityCypress preprocessor for bundling JavaScript via rollup
#rollup@bahmutov/cypress-esbuild-preprocessor
communityBundle Cypress specs using esbuild
#esbuildcypress-esbuild-preprocessor
communityUses evanw/esbuild to bundle your specs.
#esbuildcypress-vite
communityCypress preproccessor for running specs using vite
#vite
Development Tools
CircleCI Cypress Orb
officialOfficial Cypress Orb for CircleCI configuration.
#continuous-integrationcypress-dark
verifiedSeveral color themes for Cypress test runner
#themecypress-protobuf
communityEncode a fixture with Protocol Buffers.
#encoding#protobufDocker
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.
#eslintKnapsack Pro Cypress
communityDynamic tests split across parallel CI nodes with Knapsack Pro Queue Mode to get faster CI builds. Note - this is 3rd party implementation, different from the Cypress Dashboard parallelization.
#CI parallelisation#continuous-integrationTypeScript
officialOfficial TypeScript definitions for the Cypress API.
#typescriptcly
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-watchercypress-autostub
communityAlleviates the need to mantain brittle manual mocks by automating the recording and stubbing of requests.
#mocking#stubbing#recording#fetch#xhrcypress-plugin-livereload
communityReloads Cypress using livereload
#livereloadcypress-select-tests
communityUser space solution for grepping Cypress tests to run
#browserifycypress-grep
communityFilter tests using its title or tags
#grepcypress-autorecord
communitySimplify API mocking by auto-recording/stubbing HTTP interactions and automating the process of updating/deleting mocks.
#mock#recording#http#integration test@cypress/code-coverage
officialPlugin to save code coverage collected during Cypress tests
#coverage@cypress/instrument-cra
officialNPM module for create-react-app applications to instrument source code without ejecting react-scripts
#coverage@cypress/fiddle
communityQuickly generates Cypress E2E tests from HTML and JS code
#prototypenpm-cy
communityThis GitHub Action for npm enables arbitrary actions with the npm command-line client, including testing with cypress.io and publishing to a registry.
#github#actions#npmvscode-cy-helper
communityVisual Studio Code extension for cypress and cucumber preprocessor
#vscode#extension#intellisensecypress-dotenv
communityCypress plugin that enables compatability with dotenv.
#dotenv#env#environment#env varcypress-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#hmr@bahmutov/cypress-extends
communityCypress plugin that adds "extends" support to the configuration file
#configcypress-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
#clicy-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-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 Chrome Recorder Extension
officialOfficial Cypress extension for Chrome DevTools that allows you to export Cypress tests directly from the Recorder panel.
#recording#chrome#extension#devtoolscypress-codegen
communityA Cypress plugin which automatically adds and enables IntelliSense for custom commands
#commands#development#codegen
Custom Commands
cypress-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-unfetch
verifiedTrack, test, and block code execution based on network state.
#commands#routing#networkingcypress-redux
communityRun assertions against Redux stores.
#commands#reduxcypress-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-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#commandscypress-graphql-mock
communityAdds commands for executing a mocked GraphQL server using only the client
#graphqlcy-mobile-commands
communityMobile testing helper for Cypress
#mobile#swipe#touch#commandscypress-pipe
communityCreate custom commands using plain-old functions. Similar to `cy.then` but with retriability.
#commandscypress-downloadfile
communityA custom command to download different kinds of files and store them on your local machine
#commands#downloadingcypress-testing-library
verified🐅 Simple and complete custom Cypress commands and utilities that encourage good testing practices.
#testing-library#dom-testing-library#react-testing-librarycypress-plugin-stripe-elements
communitySimple commands that make it easy to target and fill in Stripe Elements input fields
#stripe#commands#elements#inputscypress-xpath
officialAdds XPath command. This repo is also a good example of using custom commands to do retries, provide TypeScript definitions, etc.
#xpath#commandscypressautomocker
communityAllow recording API results and replaying the APIs as a mock server.
#routing#mockcypress-plugin-tab
experimentalA Cypress plugin to add a tab command
#commandscypress-commands
communityA collection of Cypress commands to extend and complement the defaults
#commandscypress-wait-until
verifiedAdd the Cypress waiting power to virtually everything 🎉
#commands#wait#wait-until#recursive-promise#check-async-value#check-value#open-source-saturdaycypress-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#shorthand@cypress/skip-test
communitySimple commands to skip a test based on platform, browser or a url
#commandscypress-websocket-testing
communityTest WebSocket connections with Cypress
#commands#websocket@bahmutov/cy-api
communityCypress custom command "cy.api" for HTTP API testing with server logs
#apicy-spok
experimentalAdds assertions from Spok library for easy schema and value validations
#assertionscypress-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-iframe
communityCustom commands for interacting with iframes
#commands#iframe-
cypress custom commands to locate react elements by component, props and state
#react#commands#locator cypress-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#secretcypress-rest-graphql
communityAdd visual output and helper functions for performing REST and graphQL queries
#api#rest#graphQLcypress-forced-colors
communityCypress commands to enable and disable browser forced colors mode
#forced colors#high contrast#high contrast mode#contrast#testingcy-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
#commands
Extending other testing frameworks
cyphell
communityConverts WDIO automation tests to Cypress.
#wdiocypress-capybara
communitySeveral Capybara finders re-implemented in Cypress to locate UI elements by their text and labels.
#testing-library#capybaracypress-jest-adapter
communityAdd jest assertion style to Cypress expect command
#jestPickleJS
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#commands
Authentication
Also take a look at Logging in recipes.
cypress-keycloak-commands
verifiedCypress commands for authenticate users with Keycloak Identity Provider
#authentication#login#keycloak#oauth#openidcypress-ntlm-auth
verifiedNTLM authentication support for Cypress
#authentication#ntlmcypress-otp
communityValid OTP token generation for Cypress
#authentication#otp#2fa#mfacypress-social-logins
communityCypress authentication flows using social network providers
#authentication#login#social profiles#github#google
Framework tooling
Cypress Angular Schematic
communityAngular CLI addition that allows you to install Cypress E2E to an Angular CLI project
#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#monorepoVue CLI
verifiedVue CLI allows you to scaffold an application with Cypress E2E fully configured
#vue.js#vue#cliCypress Nuxt
communityUtilities for using Cypress with Nuxt.
#vue.js#vue#nuxt#nuxt.jsAurelia 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-tenantsElm Batteries Included
communityA project template to learn how Elm, Parcel, Cypress and Netlify work together.
#elm#parcel#netlifycypress-rails
communityRuby gem to run Cypress against Rails apps, replacing Capybara in system tests
#ruby#railscypress-laravel
communityAdd commands and hooks to test Laravel applications
#php#laravelcypress-splitio
communityStores your split.io toggles as environment variables. Helps to decide which e2e tests you need to run.
#split.io#feature flagsBison
communityA Full Stack Jamstack Template that uses Cypress and GitHub Actions for E2E testing.
#next.js#react#graphql#prisma#vercel@cypress/schematic
officialAdds Cypress to your Angular project via the Angular CLI
#angular#cli
Component Testing
⚠️ Loading and mounting components from various frameworks is highly experimental and might change in the future.
cypress-angular-unit-test
experimentalTest Angular component using Cypress Test Runner
#component#angularcypress-angularjs-unit-test
experimentalUnit test Angularjs code using Cypress Test Runner
#component#angular.jscypress-cycle-unit-test
experimentalTest Cycle.js components using Cypress Test Runner
#component#cycle.jscypress-hyperapp-unit-test
experimentalTest Hyperapp components and applications using Cypress Test Runner
#component#hyperapp@cypress/react
experimentalTest React components using Cypress Test Runner
#component#reactcypress-svelte-unit-test
experimentalTest Svelte components using Cypress Test Runner
#component#svelte@cypress/vue
experimentalTest Vue.js components using Cypress Test Runner
#component#vue#vue.js
Visual Testing
Visual testing is a great complement to functional testing
Argos
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 regressionHappo
communityCross-platform, cross-browser screenshot testing for modern user interfaces.
#screenshots#visual regressioncypress-plugin-snapshots
communityPlugin for snapshot tests in Cypress. Same API as Jest, but with graphical interface for reviewing and approving changes.
#snapshotCypress Image Snapshot
communityCatch visual regressions and compare image diffs locally and in Cypress Dashboard.
#image-diff#snapshotCypress Visual Regression
communityAdds visual regression testing to Cypress
#image-diff#snapshotcypress-blink-test
communityModule for adding visual regression testing to Cypress.
#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-diffMicoo
communityCypress plugin for doing visual regression testing with Micoo service
#visual regression testing#visual testing#screenshots comparison#testing serviceVisual Regression Diff
communityPerform visual regression test with a nice GUI as help. 💅 Supports both E2E and Component Testing
#screenshots#visual regression#visual testing#image-diff#image comparison#image snapshotCypress Chrome Recorder
experimentalTool for exporting Cypress Tests from Google Chrome DevTools' Recordings
#visual testing#recorder
Reporting
cypress-failed-log
communitySaves the Cypress test command log as a JSON file if a test fails.
#reportercypress-log-to-output
communityPlugin that prints all browser console logs to the terminal while running Cypress tests. Currently, only Chrome is supported.
#loggingautoset-status-cypress-testrail-reporter
communityTestRail 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#reportermochawesome-merge
communityMerges multiple mochawesome JSON reports
#reporter#mochawesomecypress-slack-healthcheck
communityA simple tool which integrates Cypress with Slack to report failing tests.
#reporter#slack#healthcheckcypress-slack-reporter
communitySlack reporting tool. Uses mochawesome json reports, provides links to VCS Provider (github/bitbucket) and CircleCI logs
#reporter#mochawesome#slackcypress-terminal-report
communityLogs cypress commands, route request data and browser console errors and warnings to terminal when tests fail on CI.
#reporter#logs#terminal#CI#CLIcypress-allure-plugin
communityIntegrates Allure reporter with Cypress. Command logging and screenshot attachment out of the box.
#reporter#allurecypress-mochawesome-reporter
communityZero config Mochawesome reporter for Cypress with screenshots.
#reporter#mochawesome#screenshotcypress-msteams-reporter
communityA reporting tool which sends a message to Microsoft Teams with information about the latest cypress test execution results.
#reporter#ms-teams#allure-report
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#commands
Legacy
Browserify
officialWatches and bundles your spec files via browserify.
#browserify