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
- Cucumbercommunity- Run cucumber/gherkin-syntaxed specs with cypress.io #file-watcher#cucumber
- Cytoruscommunity- Run cucumber/gherkin-syntaxed specs with cypress.io #gherkin#cucumber
- cypress-app-watcher-preprocessorcommunity- Reruns Cypress tests when the back end server restarts #file-watcher
- cypress-eslint-preprocessorcommunity- Runs linting via ESLint on your spec files as they are loaded and display errors in the console #eslint
- Watchofficial- Watches your spec files and serves them as-is. Useful as an example reference or if you don't need transpiling/bundling. #file-watcher
- Webpackofficial- Watches and bundles your spec files via webpack. #webpack
- Rollupcommunity- Watches and bundles your spec files via Rollup #rollup
- cypress-markdown-preprocessorcommunity- Cypress preprocessor for extracting tests from Markdown files #markdown
- cypress-rollup-preprocessorcommunity- Cypress preprocessor for bundling JavaScript via rollup #rollup
- @bahmutov/cypress-esbuild-preprocessorcommunity- Bundle Cypress specs using esbuild #esbuild
- cypress-esbuild-preprocessorcommunity- Uses evanw/esbuild to bundle your specs. #esbuild
- cypress-vitecommunity- Cypress preproccessor for running specs using vite #vite
Development Tools
- CircleCI Cypress Orbofficial- Official Cypress Orb for CircleCI configuration. #continuous-integration
- cypress-darkverified- Several color themes for Cypress test runner #theme
- cypress-protobufcommunity- Encode a fixture with Protocol Buffers. #encoding#protobuf
- Dockerofficial- Docker images providing all the dependencies to run Cypress in CI including browsers. #docker#continuous-integration
- eslint-plugin-cypressofficial- ESLint plugin that sets globals for writing tests in Cypress. #eslint
- Knapsack Pro Cypresscommunity- Dynamic 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-integration
- TypeScriptofficial- Official TypeScript definitions for the Cypress API. #typescript
- clycommunity- A prototype of generating quicker project scaffolding for Cypress. #cypress cli#prototype#CLI#scaffolding
- cypress-watch-and-reloadcommunity- Reloads Cypress when one of the watched files changes #file-watcher
- cypress-autostubcommunity- Alleviates the need to mantain brittle manual mocks by automating the recording and stubbing of requests. #mocking#stubbing#recording#fetch#xhr
- cypress-plugin-livereloadcommunity- Reloads Cypress using livereload #livereload
- cypress-select-testscommunity- User space solution for grepping Cypress tests to run #browserify
- cypress-grepcommunity- Filter tests using its title or tags #grep
- cypress-autorecordcommunity- Simplify API mocking by auto-recording/stubbing HTTP interactions and automating the process of updating/deleting mocks. #mock#recording#http#integration test
- @cypress/code-coverageofficial- Plugin to save code coverage collected during Cypress tests #coverage
- @cypress/instrument-craofficial- NPM module for create-react-app applications to instrument source code without ejecting react-scripts #coverage
- @cypress/fiddlecommunity- Quickly generates Cypress E2E tests from HTML and JS code #prototype
- npm-cycommunity- This 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#npm
- vscode-cy-helpercommunity- Visual Studio Code extension for cypress and cucumber preprocessor #vscode#extension#intellisense
- cypress-dotenvcommunity- Cypress plugin that enables compatability with dotenv. #dotenv#env#environment#env var
- cypress-har-generatorcommunity- Generate HTTP Archive (HAR) while running tests. #har#http-archive#http#websocket#recording#chrome
- cypress-expect-n-assertionscommunity- Cypress helper that checks number of expected and actual assertions in the test #test#assertion
- cypress-auditcommunity- Run Lighthouse audit directly in your E2E test suites #lighthouse
- cypress-hmr-restartercommunity- Restarts tests when receiving webpack-dev-server HMR updates #webpack#webpack-dev-server#hmr
- @bahmutov/cypress-extendscommunity- Cypress plugin that adds "extends" support to the configuration file #config
- cypress-browser-permissionscommunity- Controls permissions for desktop notifications, geolocation, and other browser APIs #permissions#notifications#geolocation#camera#microphone
- cypress-repeatcommunity- Run Cypress multiple times in a row, great at finding test flake 
- cypress-expectcommunity- Cypress CLI wrapper where you can specify the total number of expected tests #cli
- cy-searchcommunity- Search Cypress documentation from the terminal #cli
- cypress-tagscommunity- Use custom tags to slice up Cypress test runs #test#tag#browserify
- @swimlane/cy-mockapicommunity- Easily mock your REST API in Cypress by putting responses in the fixtures directory tree. #mock#rest#api
- cypress-timingscommunity- A Cypress plugin for reporting individual command timings. #commands#performance
- cypress-fail-fastcommunity- Enables fail fast in Cypress, skipping the rest of tests on first failure. #fail-fast#failure#skip#config
- cypress-fail-on-console-errorcommunity- Fail cypress test on console error. #console#error#fail
Custom Commands
- cy-viewcommunity- Run tests on multiple URLs at various viewport sizes. #viewports
- cypress-unfetchverified- Track, test, and block code execution based on network state. #commands#routing#networking
- cypress-reduxcommunity- Run assertions against Redux stores. #commands#redux
- cypress-axecommunity- Helps test your applications for accessibility issues using axe-core. #accessibility#a11y
- cypress-drag-dropcommunity- Adds a cypress child command for drag'n'drop support. #dragndrop#drag#drop#commands
- cypress-fill-commandcommunity- A Cypress command for fill inputs #commands
- cypress-firebasecommunity- Custom commands for Firebase including Authentication and Database communication (both Real Time Database and Firestore). #firebase#database#commands
- cypress-graphql-mock-networkcommunity- Custom commands to mock your GraphQL API at the network level. Using service-workers for complete isolation of the mock server. #graphql#mocking#networking#commands
- cypress-graphql-mockcommunity- Adds commands for executing a mocked GraphQL server using only the client #graphql
- cy-mobile-commandscommunity- Mobile testing helper for Cypress #mobile#swipe#touch#commands
- cypress-pipecommunity- Create custom commands using plain-old functions. Similar to `cy.then` but with retriability. #commands
- cypress-downloadfilecommunity- A custom command to download different kinds of files and store them on your local machine #commands#downloading
- cypress-testing-libraryverified- 🐅 Simple and complete custom Cypress commands and utilities that encourage good testing practices. #testing-library#dom-testing-library#react-testing-library
- cypress-plugin-stripe-elementscommunity- Simple commands that make it easy to target and fill in Stripe Elements input fields #stripe#commands#elements#inputs
- cypress-xpathofficial- Adds XPath command. This repo is also a good example of using custom commands to do retries, provide TypeScript definitions, etc. #xpath#commands
- cypressautomockercommunity- Allow recording API results and replaying the APIs as a mock server. #routing#mock
- cypress-plugin-tabexperimental- A Cypress plugin to add a tab command #commands
- cypress-commandscommunity- A collection of Cypress commands to extend and complement the defaults #commands
- cypress-wait-untilverified- Add the Cypress waiting power to virtually everything 🎉 #commands#wait#wait-until#recursive-promise#check-async-value#check-value#open-source-saturday
- cypress-recursecommunity- A way to re-run Cypress commands until a predicate function returns true #commands#wait#wait-until#recursive-promise#check-async-value#check-value
- cypress-cy-selectcommunity- data-cy shorthand notation for cypress get and find functions #commands#shorthand
- @cypress/skip-testcommunity- Simple commands to skip a test based on platform, browser or a url #commands
- cypress-websocket-testingcommunity- Test WebSocket connections with Cypress #commands#websocket
- @bahmutov/cy-apicommunity- Cypress custom command "cy.api" for HTTP API testing with server logs #api
- cy-spokexperimental- Adds assertions from Spok library for easy schema and value validations #assertions
- cypress-localstorage-commandscommunity- Custom commands for localStorage. Allows preserving localStorage between tests #commands#localstorage#persistence
- @this-dot/cypress-indexeddbcommunity- Custom commands for indexedDb. Allows populating, modifying and asserting data stored in indexedDb. #commands#indexedDb
- cypress-iframecommunity- Custom commands for interacting with iframes #commands#iframe
-  cypress custom commands to locate react elements by component, props and state #react#commands#locator
- cypress-layout-inspectorcommunity- A simple utility to provide layout testing functionality to Cypress via custom assertions. #testing#ui#dom#assertions
- @swimlane/cy-dom-diffcommunity- cy-dom-diff allows matching chunks of DOM against HTML; including dynamic content. #dom#assertions
- cypress-real-eventscommunity- Fire native system events from Cypress like hover, swipe, etc #commands
- cypress-azure-keyvaultcommunity- Cypress custom command to get keys from Azure Key Vaults. #testing#azure#keyvault#secret
- cypress-rest-graphqlcommunity- Add visual output and helper functions for performing REST and graphQL queries #api#rest#graphQL
- cypress-forced-colorscommunity- Cypress commands to enable and disable browser forced colors mode #forced colors#high contrast#high contrast mode#contrast#testing
- cy-verify-downloadscommunity- Cypress custom command to wait and verify that file was downloaded #commands#assertions#wait#verify#download
Extending other testing frameworks
- cyphellcommunity- Converts WDIO automation tests to Cypress. #wdio
- cypress-capybaracommunity- Several Capybara finders re-implemented in Cypress to locate UI elements by their text and labels. #testing-library#capybara
- cypress-jest-adaptercommunity- Add jest assertion style to Cypress expect command #jest
- PickleJScommunity- An 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#commands
- Pact Cypress Adaptercommunity- Simple 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-commandsverified- Cypress commands for authenticate users with Keycloak Identity Provider #authentication#login#keycloak#oauth#openid
- cypress-ntlm-authverified- NTLM authentication support for Cypress #authentication#ntlm
- cypress-otpcommunity- Valid OTP token generation for Cypress #authentication#otp#2fa#mfa
- cypress-social-loginscommunity- Cypress authentication flows using social network providers #authentication#login#social profiles#github#google
Framework tooling
- Cypress Angular Schematiccommunity- Angular CLI addition that allows you to install Cypress E2E to an Angular CLI project #angular#cli
- cypress-on-railscommunity- Rubygem for using cypress.io with Ruby on Rails applications #ruby-rack#ruby-on-rails
- Nxcommunity- Smart, Fast and Extensible Build System #angular#react#cli#monorepo
- Vue CLIverified- Vue CLI allows you to scaffold an application with Cypress E2E fully configured #vue.js#vue#cli
- Cypress Nuxtcommunity- Utilities for using Cypress with Nuxt. #vue.js#vue#nuxt#nuxt.js
- Aurelia CLIcommunity- The Aurelia CLI is the official command line tool for Aurelia. #aurelia#cli
- WordPress ReactJS Boilerplatecommunity- Complete WordPress Plugin Boilerplate including Cypress.io E2E tests. #wp#wordpress
- Next Right Now - Next.js Boilerplatecommunity- Next.js boilerplate with Jest/Cypress and CI/CD pipeline built-in (monorepo, multi-tenants) #next.js#react#monorepo#multi-tenants
- Elm Batteries Includedcommunity- A project template to learn how Elm, Parcel, Cypress and Netlify work together. #elm#parcel#netlify
- cypress-railscommunity- Ruby gem to run Cypress against Rails apps, replacing Capybara in system tests #ruby#rails
- cypress-laravelcommunity- Add commands and hooks to test Laravel applications #php#laravel
- cypress-splitiocommunity- Stores your split.io toggles as environment variables. Helps to decide which e2e tests you need to run. #split.io#feature flags
- Bisoncommunity- A Full Stack Jamstack Template that uses Cypress and GitHub Actions for E2E testing. #next.js#react#graphql#prisma#vercel
- @cypress/schematicofficial- Adds 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-testexperimental- Test Angular component using Cypress Test Runner #component#angular
- cypress-angularjs-unit-testexperimental- Unit test Angularjs code using Cypress Test Runner #component#angular.js
- cypress-cycle-unit-testexperimental- Test Cycle.js components using Cypress Test Runner #component#cycle.js
- cypress-hyperapp-unit-testexperimental- Test Hyperapp components and applications using Cypress Test Runner #component#hyperapp
- @cypress/reactexperimental- Test React components using Cypress Test Runner #component#react
- cypress-svelte-unit-testexperimental- Test Svelte components using Cypress Test Runner #component#svelte
- @cypress/vueexperimental- Test Vue.js components using Cypress Test Runner #component#vue#vue.js
Visual Testing
Visual testing is a great complement to functional testing
- Applitoolsverified- Fast, easy and reliable visual UI testing with Cypress 
- Percyverified- Visual regression testing for Cypress tests with Percy. #screenshots#visual regression
- Happocommunity- Cross-platform, cross-browser screenshot testing for modern user interfaces. #screenshots#visual regression
- cypress-plugin-snapshotscommunity- Plugin for snapshot tests in Cypress. Same API as Jest, but with graphical interface for reviewing and approving changes. #snapshot
- Cypress Image Snapshotcommunity- Catch visual regressions and compare image diffs locally and in Cypress Dashboard. #image-diff#snapshot
- Cypress Visual Regressioncommunity- Adds visual regression testing to Cypress #image-diff#snapshot
- cypress-blink-testcommunity- Module for adding visual regression testing to Cypress. #image-diff#snapshot
- Visual Regression Trackercommunity- Integration with open source service for visual testing and managing its results. #screenshots#image-diff#visual regression
- Cypress Image Diffcommunity- Visual regression testing plugin maintained by DIT - UK Gov. #screenshots#visual regression#image-diff
- Micoocommunity- Cypress plugin for doing visual regression testing with Micoo service #visual regression testing#visual testing#screenshots comparison#testing service
- Cypress Chrome Recorderexperimental- Tool for exporting Cypress Tests from Google Chrome DevTools' Recordings #visual testing#recorder
Reporting
- cypress-failed-logcommunity- Saves the Cypress test command log as a JSON file if a test fails. #reporter
- cypress-log-to-outputcommunity- Plugin that prints all browser console logs to the terminal while running Cypress tests. Currently, only Chrome is supported. #logging
- autoset-status-cypress-testrail-reportercommunity- TestRail Reporter which auto-set status for specific TestRun for Cypress. #testrail#reporter#autoset#status
- cypress-testrail-reportercommunity- Custom reporter for publishing Cypress results to a TestRail test run. #testrail#reporter
- cypress-teamcity-reportercommunity- Custom 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#reporter
- mochawesome-mergecommunity- Merges multiple mochawesome JSON reports #reporter#mochawesome
- cypress-slack-healthcheckcommunity- A simple tool which integrates Cypress with Slack to report failing tests. #reporter#slack#healthcheck
- cypress-slack-reportercommunity- Slack reporting tool. Uses mochawesome json reports, provides links to VCS Provider (github/bitbucket) and CircleCI logs #reporter#mochawesome#slack
- cypress-terminal-reportcommunity- Logs cypress commands, route request data and browser console errors and warnings to terminal when tests fail on CI. #reporter#logs#terminal#CI#CLI
- cypress-allure-plugincommunity- Integrates Allure reporter with Cypress. Command logging and screenshot attachment out of the box. #reporter#allure
- cypress-mochawesome-reportercommunity- Zero config Mochawesome reporter for Cypress with screenshots. #reporter#mochawesome#screenshot
- cypress-msteams-reportercommunity- A reporting tool which sends a message to Microsoft Teams with information about the latest cypress test execution results. #reporter#ms-teams#allure-report
- cypress-mailosaurcommunity- Test email and SMS messages using Mailosaur #email#sms#commands
- cypress-maildevcommunity- A bunch of Cypress commands in order to test your messages (SMS and Emails) by using Maildev REST API. #email#sms#commands
- cypress-mailslurpcommunity- Use test email accounts to send and receive emails in Cypress tests with MailSlurp. #email#mailslurp#test#commands
Legacy
- Browserifyofficial- Watches and bundles your spec files via browserify. #browserify