📣 Join us on December 2nd @ 2pm EST/11am PST to learn how Carvana used Cypress Test Analytics to transform their testing strategy

Register

Plugins

Improve this doc

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

Authentication

Also take a look at "Logging in" recipes.

  • Cypress commands for authenticate users with Keycloak Identity Provider

    #authentication #login #keycloak #oauth #openid
  • NTLM authentication support for Cypress

    #authentication #ntlm
  • cypress-otp

    community

    Valid OTP token generation for Cypress

    #authentication #otp #2fa #mfa
  • Cypress authentication flows using social network providers

    #authentication #login #social profiles #github #google

Component Testing

⚠️ Loading and mounting components from various frameworks is highly experimental and might change in the future.

Custom Commands

  • @bahmutov/cy-api

    community

    Cypress custom command "cy.api" for HTTP API testing with server logs

    #api
  • Simple commands to skip a test based on platform, browser or a url

    #commands
  • cy-dom-diff allows matching chunks of DOM against HTML; including dynamic content.

    #dom #assertions
  • cy-mobile-commands

    community

    Mobile testing helper for Cypress

    #mobile #swipe #touch #commands
  • cy-spok

    experimental

    Adds assertions from Spok library for easy schema and value validations

    #assertions
  • cy-view

    community

    Run tests on multiple URLs at various viewport sizes.

    #viewports
  • cypress-axe

    community

    Helps test your applications for accessibility issues using axe-core.

    #accessibility #a11y
  • cypress-commands

    community

    A collection of Cypress commands to extend and complement the defaults

    #commands
  • cypress-cy-select

    community

    data-cy shorthand notation for cypress get and find functions

    #commands #shorthand
  • A custom command to download different kinds of files and store them on your local machine

    #commands #downloading
  • cypress-drag-drop

    community

    Adds a cypress child command for drag'n'drop support.

    #dragndrop #drag #drop #commands
  • Simple custom command to ease file upload testing

    #fileupload #file #upload #commands
  • A Cypress command for fill inputs

    #commands
  • cypress-firebase

    community

    Custom commands for Firebase including Authentication and Database communication (both Real Time Database and Firestore).

    #firebase #database #commands
  • Adds commands for executing a mocked GraphQL server using only the client

    #graphql
  • 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-iframe

    community

    Custom commands for interacting with iframes

    #commands #iframe
  • A simple utility to provide layout testing functionality to Cypress via custom assertions.

    #testing #ui #dom #assertions
  • Custom commands for localStorage. Allows preserving localStorage between tests

    #commands #localstorage #persistence
  • cypress-mailosaur

    community

    Test email and SMS messages using Mailosaur

    #email #sms #commands
  • cypress-pipe

    community

    Create custom commands using plain-old functions. Similar to `cy.then` but with retriability.

    #commands
  • cypress-plugin-tab

    experimental

    A Cypress plugin to add a tab command

    #commands
  • cypress custom commands to locate react elements by component, props and state

    #react #commands #locator
  • cypress-redux

    community

    Run assertions against Redux stores.

    #commands #redux
  • 🐅 Simple and complete custom Cypress commands and utilities that encourage good testing practices.

    #testing-library #dom-testing-library #react-testing-library
  • cypress-unfetch

    verified

    Track, test, and block code execution based on network state.

    #commands #routing #networking
  • Add the Cypress waiting power to virtually everything 🎉

    #commands #wait #wait-until #recursive-promise #check-async-value #check-value #open-source-saturday
  • Test WebSocket connections with Cypress

    #commands #websocket
  • cypress-xpath

    official

    Adds XPath command. This repo is also a good example of using custom commands to do retries, provide TypeScript definitions, etc.

    #xpath #commands
  • cypressautomocker

    community

    Allow recording API results and replaying the APIs as a mock server.

    #routing #mock

Development Tools

  • Cypress plugin that adds "extends" support to the configuration file

    #config
  • Plugin to save code coverage collected during Cypress tests

    #coverage
  • @cypress/fiddle

    official

    Quickly generates Cypress tests from HTML and JS code

    #prototype
  • NPM module for create-react-app applications to instrument source code without ejecting react-scripts

    #coverage
  • Easily mock your REST API in Cypress by putting responses in the fixtures directory tree.

    #mock #rest #api
  • Official Cypress Orb for CircleCI configuration.

    #continuous-integration
  • cly

    community

    A prototype of generating quicker project scaffolding for Cypress.

    #cypress cli #prototype #CLI #scaffolding
  • cy-search

    community

    Search Cypress documentation from the terminal

    #cli
  • cypress-audit

    community

    Run Lighthouse audit directly in your E2E test suites

    #lighthouse
  • cypress-autorecord

    community

    Simplify API mocking by auto-recording/stubbing HTTP interactions and automating the process of updating/deleting mocks.

    #mock #recording #http #integration test
  • cypress-autostub

    community

    Alleviates the need to mantain brittle manual mocks by automating the recording and stubbing of requests.

    #mocking #stubbing #recording #fetch #xhr
  • Controls permissions for desktop notifications, geolocation, and other browser APIs

    #permissions #notifications #geolocation #camera #microphone
  • cypress-dark

    verified

    Several color themes for Cypress test runner

    #theme
  • cypress-dotenv

    community

    Cypress plugin that enables compatability with dotenv.

    #dotenv #env #environment #env var
  • cypress-expect

    community

    Cypress CLI wrapper where you can specify the total number of expected tests

    #cli
  • Cypress helper that checks number of expected and actual assertions in the test

    #test #assertion
  • Generate HTTP Archive (HAR) while running tests.

    #har #http-archive #http #websocket #recording #chrome
  • Restarts tests when receiving webpack-dev-server HMR updates

    #webpack #webpack-dev-server #hmr
  • Reloads Cypress using livereload

    #livereload
  • A Cypress plugin to retry failed tests.

    #cypress-plugin-retries
  • cypress-protobuf

    community

    Encode a fixture with Protocol Buffers.

    #encoding #protobuf
  • cypress-repeat

    community

    Run Cypress multiple times in a row, great at finding test flake

  • User space solution for grepping Cypress tests to run

    #browserify
  • Use custom tags to slice up Cypress test runs

    #test #tag #browserify
  • Reloads Cypress when one of the watched files changes

    #file-watcher
  • Docker

    official

    Docker images providing all the dependencies to run Cypress in CI including browsers.

    #docker #continuous-integration
  • ESLint

    official

    ESLint plugin that sets globals for writing tests in Cypress.

    #eslint
  • 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
  • npm-cy

    community

    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
  • TypeScript

    official

    Official TypeScript definitions for the Cypress API.

    #typescript
  • vscode-cy-helper

    community

    Visual Studio Code extension for cypress and cucumber preprocessor

    #vscode #extension #intellisense

Extending other testing frameworks

  • cyphell

    community

    Converts WDIO automation tests to Cypress.

    #wdio
  • cypress-capybara

    community

    Several Capybara finders re-implemented in Cypress to locate UI elements by their text and labels.

    #testing-library #capybara
  • Add jest assertion style to Cypress expect command

    #jest
  • PickleJS

    community

    An addition to the Cucumber plugin, featuring a collection of phrases you can use for common actions (ex: "I click on an ", "I should see an ")

    #cucumber #collection #actions #commands

Framework tooling

  • Aurelia CLI

    community

    The Aurelia CLI is the official command line tool for Aurelia.

    #aurelia #cli
  • Bison

    community

    A Full Stack Jamstack Template that uses Cypress and GitHub Actions for E2E testing.

    #next.js #react #graphql #prisma #vercel
  • Angular CLI addition that allows you to install Cypress E2E to an Angular CLI project

    #angular #cli
  • Cypress Nuxt

    community

    Utilities for using Cypress with Nuxt.

    #vue.js #vue #nuxt #nuxt.js
  • cypress-laravel

    community

    Add commands and hooks to test Laravel applications

    #php #laravel
  • cypress-on-rails

    community

    Rubygem for using cypress.io with Ruby on Rails applications

    #ruby-rack #ruby-on-rails
  • cypress-rails

    community

    Ruby gem to run Cypress against Rails apps, replacing Capybara in system tests

    #ruby #rails
  • A project template to learn how Elm, Parcel, Cypress and Netlify work together.

    #elm #parcel #netlify
  • Next.js boilerplate with Jest/Cypress and CI/CD pipeline built-in (monorepo, multi-tenants)

    #next.js #react #monorepo #multi-tenants
  • Nx

    community

    Nrwl Extensions for Angular

    #angular #cli
  • Vue CLI

    verified

    Vue CLI allows you to scaffold an application with Cypress E2E fully configured

    #vue.js #vue #cli
  • Complete WordPress Plugin Boilerplate including Cypress.io E2E tests.

    #wp #wordpress

Preprocessors

  • Browserify

    official

    Watches and bundles your spec files via browserify. This is the default preprocessor that's built into Cypress.

    #browserify
  • Cucumber

    community

    Run cucumber/gherkin-syntaxed specs with cypress.io

    #file-watcher #cucumber
  • Reruns Cypress tests when the back end server restarts

    #file-watcher
  • Cypress preprocessor for bundling JavaScript via rollup

    #rollup
  • ESLint

    community

    Runs linting via ESLint on your spec files as they are loaded and display errors in the console

    #eslint
  • Rollup

    community

    Watches and bundles your spec files via Rollup

    #rollup
  • Watch

    official

    Watches your spec files and serves them as-is. Useful as an example reference or if you don't need transpiling/bundling.

    #file-watcher
  • Webpack

    official

    Watches and bundles your spec files via webpack.

    #webpack

Reporting

  • Integrates Allure reporter with Cypress. Command logging and screenshot attachment out of the box.

    #reporter #allure
  • cypress-failed-log

    community

    Saves the Cypress test command log as a JSON file if a test fails.

    #reporter
  • Plugin that prints all browser console logs to the terminal while running Cypress tests. Currently, only Chrome is supported.

    #logging
  • Zero config Mochawesome reporter for Cypress with screenshots.

    #reporter #mochawesome #screenshot
  • A simple tool which integrates Cypress with Slack to report failing tests.

    #reporter #slack #healthcheck
  • Slack reporting tool. Uses mochawesome json reports, provides links to VCS Provider (github/bitbucket) and CircleCI logs

    #reporter #mochawesome #slack
  • 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
  • Logs cypress commands, route request data and browser console errors and warnings to terminal when tests fail on CI.

    #reporter #logs #terminal #CI #CLI
  • Custom reporter for publishing Cypress results to a TestRail test run.

    #testrail #reporter
  • mochawesome-merge

    community

    Merges multiple mochawesome JSON reports

    #reporter #mochawesome

Visual Testing

Visual testing is a great complement to functional testing

  • Applitools

    verified

    Fast, easy and reliable visual UI testing with Cypress

  • Cypress Image Diff

    community

    Visual regression testing plugin maintained by DIT - UK Gov.

    #screenshots #visual regression #image-diff
  • Catch visual regressions and compare image diffs locally and in Cypress Dashboard.

    #image-diff #snapshot
  • Adds visual regression testing to Cypress

    #image-diff #snapshot
  • cypress-blink-test

    community

    Module for adding visual regression testing to Cypress.

    #image-diff #snapshot
  • Plugin for snapshot tests in Cypress. Same API as Jest, but with graphical interface for reviewing and approving changes.

    #snapshot
  • Happo

    community

    Cross-platform, cross-browser screenshot testing for modern user interfaces.

    #screenshots #visual regression
  • Percy

    verified

    Visual regression testing for Cypress tests with Percy.

    #screenshots #visual regression
  • Integration with open source service for visual testing and managing its results.

    #screenshots #image-diff #visual regression