{
  "doc": {
    "id": "app/get-started/install-cypress",
    "title": "Install using npm, Yarn, pnpm, or Bun",
    "description": "The fastest way to get Cypress running. Check requirements, install it in your project, and start testing today.",
    "section": "app",
    "source_path": "/llm/markdown/app/get-started/install-cypress.md",
    "version": "29f95bf8bb06f320986f3749f5bf09a35a409eab",
    "updated_at": "2026-09-04T10:49:54.630Z",
    "headings": [
      {
        "id": "app/get-started/install-cypress#installation",
        "text": "Installation",
        "level": 1
      },
      {
        "id": "app/get-started/install-cypress#system-requirements",
        "text": "System requirements",
        "level": 2
      },
      {
        "id": "app/get-started/install-cypress#operating-system",
        "text": "Operating System",
        "level": 3
      },
      {
        "id": "app/get-started/install-cypress#node-js",
        "text": "Node.js",
        "level": 3
      },
      {
        "id": "app/get-started/install-cypress#package-manager",
        "text": "Package Manager",
        "level": 3
      },
      {
        "id": "app/get-started/install-cypress#npm-configuration",
        "text": "npm configuration",
        "level": 4
      },
      {
        "id": "app/get-started/install-cypress#yarn-configuration",
        "text": "Yarn configuration",
        "level": 4
      },
      {
        "id": "app/get-started/install-cypress#pnpm-configuration",
        "text": "pnpm configuration",
        "level": 4
      },
      {
        "id": "app/get-started/install-cypress#bun-configuration",
        "text": "Bun configuration",
        "level": 4
      },
      {
        "id": "app/get-started/install-cypress#browsers",
        "text": "Browsers",
        "level": 3
      },
      {
        "id": "app/get-started/install-cypress#hardware",
        "text": "Hardware",
        "level": 3
      },
      {
        "id": "app/get-started/install-cypress#linux-prerequisites",
        "text": "Linux Prerequisites",
        "level": 3
      },
      {
        "id": "app/get-started/install-cypress#ubuntu-debian",
        "text": "Ubuntu/Debian",
        "level": 4
      },
      {
        "id": "app/get-started/install-cypress#arch",
        "text": "Arch",
        "level": 4
      },
      {
        "id": "app/get-started/install-cypress#amazon-linux-2023",
        "text": "Amazon Linux 2023",
        "level": 4
      },
      {
        "id": "app/get-started/install-cypress#docker-prerequisites",
        "text": "Docker Prerequisites",
        "level": 3
      },
      {
        "id": "app/get-started/install-cypress#advanced-installation",
        "text": "Advanced Installation",
        "level": 2
      },
      {
        "id": "app/get-started/install-cypress#continuous-integration",
        "text": "Continuous integration",
        "level": 2
      },
      {
        "id": "app/get-started/install-cypress#next-steps",
        "text": "Next Steps",
        "level": 2
      }
    ]
  },
  "chunks": [
    {
      "id": "app/get-started/install-cypress#system-requirements",
      "doc_id": "app/get-started/install-cypress",
      "heading": "System requirements",
      "heading_level": 2,
      "content_markdown": "## System requirements\n\n### Operating System\n\nCypress supports running under these operating systems:\n\n*   **macOS** >=13.5 _(Intel or Apple Silicon 64-bit (x64 or arm64))_\n*   **Linux** _(x64 or arm64)_ see also [Linux Prerequisites](#Linux-Prerequisites) down below\n    *   Ubuntu >=22.04\n    *   Debian >=11\n    *   Fedora >=43\n*   **Windows** 10 & 11 _(x64)_\n*   **Windows** 11 25H2 _(arm64, runs in [x64 emulation](https://learn.microsoft.com/en-us/windows/arm/apps-on-arm-x86-emulation) mode, minimum Cypress [14.5.0](/llm/markdown/app/references/changelog.md#14-5-0) required)_ - preview status\n*   **Windows Server** 2019, 2022 and 2025 _(x64)_\n\n### Node.js\n\n*   **Node.js** 22.x, 24.x, >=26.x\n\nFollow the instructions on [Download Node.js](https://nodejs.org/en/download/) to download and install [Node.js](https://nodejs.org/).\n\nNote that the [Node.js Snap for Linux](https://github.com/nodejs/snap) version manager is not recommended for use with Cypress. Attempting to use it as a non-root user may result in permissions errors.\n\nIf you're using a [Cypress Docker image](/llm/markdown/app/continuous-integration/overview.md#Cypress-Docker-variants), you'll find a fixed version of Node.js is pre-installed in the image. You select the Node.js version using the Docker image tag.\n\n### Package Manager\n\nCypress is installed using one of the following supported package managers:\n\n| Manager | Version | Docs |\n| --- | --- | --- |\n| [npm](https://docs.npmjs.com/) | \\>=10.1.0 | [Install npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) |\n| [Yarn 1 (Classic)](https://classic.yarnpkg.com/) | \\>=1.22.22 | [Install Yarn Classic](https://classic.yarnpkg.com/en/docs/install) |\n| [Yarn (Modern aka berry)](https://yarnpkg.com/) | \\>=4.x | [Install Yarn Modern](https://yarnpkg.com/getting-started/install) |\n| [pnpm](https://pnpm.io/) | \\>=8.x | [Install pnpm](https://pnpm.io/installation) |\n| [Bun](https://bun.sh/) | \\>=1.2.22 | [Install Bun](https://bun.sh/docs/installation) |\n\nCypress uses a `postinstall` script to download the Cypress binary into the [binary cache](/llm/markdown/app/references/advanced-installation.md#Binary-cache). As a security hardening measure, package managers increasingly block dependency lifecycle scripts such as `postinstall` by default. When the script is blocked, the Cypress binary is not downloaded and Cypress will not run.\n\nThe sections below describe how to allow Cypress to run its `postinstall` script, or how to install the Cypress binary explicitly, for each supported package manager.\n\n#### npm configuration\n\nStarting in npm 11.16.0, a warning is issued, then starting in npm 12.0.0, npm blocks `postinstall` lifecycle scripts by default. To allow Cypress to run its `postinstall` script, use one of the following approaches.\n\nAfter installing Cypress, you can use the `npm install-scripts` CLI command to add `cypress` to the `allowScripts` list so npm runs the `postinstall` script on install. Use the `--no-allow-scripts-pin` option if you want to allow also future versions of Cypress, or omit if not. `npm rebuild` re-runs the installation to install the Cypress binary after its installation has been allowed.\n\n```\nnpm install cypress --save-dev\nnpm install-scripts approve cypress --no-allow-scripts-pin\nnpm rebuild cypress\n```\n\nIn npm v11 >=11.16.0 warnings are issued. Check the warning prompt for the recommended CLI command.\n\nFor all npm versions >=11.16.0 you can add `cypress` to `allowScripts` in `package.json` manually instead of using a CLI command:\n\npackage.json\n\n```\n{\n  \"allowScripts\": {\n    \"cypress\": true\n  }\n}\n```\n\nAlternatively, if you'd rather not modify your `allowScripts` list, install the Cypress binary explicitly after install completes:\n\n```\nnpx cypress install\n```\n\n#### Yarn configuration\n\n[Yarn (Modern)](https://yarnpkg.com/) configuration using [nodeLinker: \"node-modules\"](https://yarnpkg.com/configuration/yarnrc#nodeLinker) is preferred. Cypress [Component Testing](/llm/markdown/app/core-concepts/testing-types.md#What-is-Component-Testing) is not currently compatible with the default setting [nodeLinker: \"pnp\"](https://yarnpkg.com/configuration/yarnrc#nodeLinker) which uses [Yarn Plug'n'Play](https://yarnpkg.com/features/pnp).\n\nStarting in Yarn Modern version 4.14.0, the [enableScripts](https://yarnpkg.com/configuration/yarnrc#enableScripts) configuration option is set to `false` by default, which blocks dependency lifecycle scripts.\n\nTo allow Cypress to run its `postinstall` script, set `enableScripts` to `true` and add `cypress` to the [npmPreapprovedPackages](https://yarnpkg.com/configuration/yarnrc#npmPreapprovedPackages) list (available in Yarn Modern >=4.10.0) in your project's `.yarnrc.yml` file:\n\n.yarnrc.yml\n\n```\nenableScripts: true\n\nnpmPreapprovedPackages:\n  - cypress\n```\n\n`enableScripts` can also be set using the CLI:\n\n```\nyarn config set enableScripts true\n```\n\nSetting the list of `npmPreapprovedPackages` is less convenient via the CLI and is easier done by editing `.yarnrc.yml` directly.\n\n#### pnpm configuration\n\nThe pnpm [side effects cache](https://pnpm.io/settings#sideeffectscache) uses and caches the results of (pre/post)install hooks and is not compatible with Cypress' own caching. Disable the pnpm [side effects cache](https://pnpm.io/settings#sideeffectscache), for example using the following command, executed in the root of your Cypress project:\n\n```\npnpm config set side-effects-cache false --location project\n```\n\n[pnpm@10.0.0](https://github.com/pnpm/pnpm/releases/tag/v10.0.0) and above require allowlisting `cypress`. Refer to the [pnpm settings](https://pnpm.io/settings) documentation for additional information. In [pnpm@10.4.0](https://github.com/pnpm/pnpm/releases/tag/v10.4.0) and above, the CLI `add` option [\\--allow-build](https://pnpm.io/cli/add#--allow-build) can be used, for example:\n\n```\npnpm --allow-build=cypress add --save-dev cypress\n```\n\n#### Bun configuration\n\nCypress is detected automatically from a `bun.lock` (text, Bun >=1.2) or `bun.lockb` (binary) lockfile. When you install Cypress with `bun add`, Bun trusts the package and runs its `postinstall` script.\n\nWhen restoring dependencies from an existing manifest with `bun install` (for example in CI), Bun does not run `postinstall` scripts for packages that aren't in its [trustedDependencies](https://bun.sh/docs/install/lifecycle) allowlist. To install the Cypress binary, use one of the following approaches:\n\n**Recommended:** Skip lifecycle scripts and install the binary explicitly. This avoids running `postinstall` scripts from dependencies and is the more secure approach:\n\n```\nbun install --ignore-scripts\nbunx cypress install\n```\n\nAlternatively, trust Cypress so Bun runs the `postinstall` script on install. You can use the CLI:\n\n```\nbun pm trust cypress\n```\n\nOr add `cypress` to `trustedDependencies` in `package.json` manually:\n\npackage.json\n\n```\n{\n  \"trustedDependencies\": [\"cypress\"]\n}\n```\n\nRefer to [Advanced Installation](/llm/markdown/app/references/advanced-installation.md#Troubleshoot-installation) for additional Bun installation options.\n\n### Browsers\n\nCypress supports the latest 3 major versions of the following:\n\n*   [Google Chrome](/llm/markdown/app/references/launching-browsers.md#Chrome-Browsers)\n*   [Microsoft Edge](/llm/markdown/app/references/launching-browsers.md#Edge-Browsers)\n*   [Mozilla Firefox](/llm/markdown/app/references/launching-browsers.md#Firefox-Browsers) (_Firefox >=[141.0](https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/141) requires Cypress >=[14.1.0](https://docs.cypress.io/app/references/changelog#14-1-0)_)\n*   [WebKit](https://docs.cypress.io/app/references/launching-browsers#WebKit-Experimental) support is experimental\n\nEach Cypress release also includes a bundled, Electron-based Chromium [browser](/llm/markdown/app/references/launching-browsers.md#Electron-Browser).\n\n**Electron is deprecated as a test browser** and will be removed in a future version of Cypress. Switch to Chrome or another installed browser to avoid a breaking change when you upgrade. Set a [`defaultBrowser`](/llm/markdown/app/references/configuration.md#Browser) (for example, `'chrome'`) and/or pass [`--browser`](/llm/markdown/app/references/command-line.md#cypress-run) so your runs don't rely on the bundled Electron default. See [Migrating away from the Electron browser](/llm/markdown/app/references/migration-guide.md#Migrating-away-from-the-Electron-browser).\n\n### Hardware\n\n*   Local: Any modern dev machine works\n*   CI: At least 2 CPUs + 4 GB RAM (8 GB+ recommended for long runs or video recording)\n\nSome issues you might run into in CI that could be a sign of insufficient resources are:\n\n*   Exiting early during `cypress run` or abruptly closing (\"crashing\")\n*   Frozen or missing frames in the video\n*   Increased runtime\n\n### Linux Prerequisites\n\nInstall required dependencies. See below under [Docker Prerequisites](#Docker-Prerequisites) for information on [Cypress Docker images](https://github.com/cypress-io/cypress-docker-images). These already include the necessary dependencies.\n\n#### Ubuntu/Debian\n\nFor Ubuntu 22.04 and Debian:\n\n```\napt-get install libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb\n```\n\nFor Ubuntu >=24.04 and optionally for Debian 13:\n\n```\napt-get install libgtk-3-0t64 libgbm-dev libnotify-dev libnss3 libxss1 libasound2t64 libxtst6 xauth xvfb\n```\n\n#### Arch\n\n```\npacman -S gtk3 alsa-lib xorg-server-xvfb libxss nss libnotify\n```\n\n#### Amazon Linux 2023\n\n```\ndnf install -y xorg-x11-server-Xvfb gtk3-devel nss alsa-lib\n```\n\n### Docker Prerequisites\n\n[Cypress Docker images](/llm/markdown/app/continuous-integration/overview.md#Cypress-Docker-variants) are available from [Docker Hub](https://hub.docker.com/u/cypress) and the [Amazon ECR (Elastic Container Registry) Public Gallery](https://gallery.ecr.aws/cypress-io). These images, which are Linux (Debian) based, include all of the required dependencies pre-installed.\n\nIf you need Node.js, browser or Cypress version combinations which are not covered by the published Cypress Docker images, then the [cypress/factory](https://github.com/cypress-io/cypress-docker-images/tree/master/factory) image allows you to generate your own customized Docker image easily.\n\nIf you are not using a Cypress Docker image, make sure that your base operating system is a Linux system listed in the supported [Operating Systems](#Operating-System) above and that Node.js is installed in the image. It is recommended to have `unzip` installed. This avoids the Cypress binary installation falling back to a slower unzip method using Node.js.\n",
      "section": "app",
      "anchors": [
        "system-requirements"
      ],
      "path": "/llm/json/chunked/app/get-started/install-cypress.json",
      "token_estimate": 1617
    },
    {
      "id": "app/get-started/install-cypress#operating-system",
      "doc_id": "app/get-started/install-cypress",
      "heading": "Operating System",
      "heading_level": 3,
      "content_markdown": "### Operating System\n\nCypress supports running under these operating systems:\n\n*   **macOS** >=13.5 _(Intel or Apple Silicon 64-bit (x64 or arm64))_\n*   **Linux** _(x64 or arm64)_ see also [Linux Prerequisites](#Linux-Prerequisites) down below\n    *   Ubuntu >=22.04\n    *   Debian >=11\n    *   Fedora >=43\n*   **Windows** 10 & 11 _(x64)_\n*   **Windows** 11 25H2 _(arm64, runs in [x64 emulation](https://learn.microsoft.com/en-us/windows/arm/apps-on-arm-x86-emulation) mode, minimum Cypress [14.5.0](/llm/markdown/app/references/changelog.md#14-5-0) required)_ - preview status\n*   **Windows Server** 2019, 2022 and 2025 _(x64)_\n",
      "section": "app",
      "anchors": [
        "operating-system"
      ],
      "path": "/llm/json/chunked/app/get-started/install-cypress.json",
      "token_estimate": 96
    },
    {
      "id": "app/get-started/install-cypress#node-js",
      "doc_id": "app/get-started/install-cypress",
      "heading": "Node.js",
      "heading_level": 3,
      "content_markdown": "### Node.js\n\n*   **Node.js** 22.x, 24.x, >=26.x\n\nFollow the instructions on [Download Node.js](https://nodejs.org/en/download/) to download and install [Node.js](https://nodejs.org/).\n\nNote that the [Node.js Snap for Linux](https://github.com/nodejs/snap) version manager is not recommended for use with Cypress. Attempting to use it as a non-root user may result in permissions errors.\n\nIf you're using a [Cypress Docker image](/llm/markdown/app/continuous-integration/overview.md#Cypress-Docker-variants), you'll find a fixed version of Node.js is pre-installed in the image. You select the Node.js version using the Docker image tag.\n",
      "section": "app",
      "anchors": [
        "node-js"
      ],
      "path": "/llm/json/chunked/app/get-started/install-cypress.json",
      "token_estimate": 101
    },
    {
      "id": "app/get-started/install-cypress#package-manager",
      "doc_id": "app/get-started/install-cypress",
      "heading": "Package Manager",
      "heading_level": 3,
      "content_markdown": "### Package Manager\n\nCypress is installed using one of the following supported package managers:\n\n| Manager | Version | Docs |\n| --- | --- | --- |\n| [npm](https://docs.npmjs.com/) | \\>=10.1.0 | [Install npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) |\n| [Yarn 1 (Classic)](https://classic.yarnpkg.com/) | \\>=1.22.22 | [Install Yarn Classic](https://classic.yarnpkg.com/en/docs/install) |\n| [Yarn (Modern aka berry)](https://yarnpkg.com/) | \\>=4.x | [Install Yarn Modern](https://yarnpkg.com/getting-started/install) |\n| [pnpm](https://pnpm.io/) | \\>=8.x | [Install pnpm](https://pnpm.io/installation) |\n| [Bun](https://bun.sh/) | \\>=1.2.22 | [Install Bun](https://bun.sh/docs/installation) |\n\nCypress uses a `postinstall` script to download the Cypress binary into the [binary cache](/llm/markdown/app/references/advanced-installation.md#Binary-cache). As a security hardening measure, package managers increasingly block dependency lifecycle scripts such as `postinstall` by default. When the script is blocked, the Cypress binary is not downloaded and Cypress will not run.\n\nThe sections below describe how to allow Cypress to run its `postinstall` script, or how to install the Cypress binary explicitly, for each supported package manager.\n\n#### npm configuration\n\nStarting in npm 11.16.0, a warning is issued, then starting in npm 12.0.0, npm blocks `postinstall` lifecycle scripts by default. To allow Cypress to run its `postinstall` script, use one of the following approaches.\n\nAfter installing Cypress, you can use the `npm install-scripts` CLI command to add `cypress` to the `allowScripts` list so npm runs the `postinstall` script on install. Use the `--no-allow-scripts-pin` option if you want to allow also future versions of Cypress, or omit if not. `npm rebuild` re-runs the installation to install the Cypress binary after its installation has been allowed.\n\n```\nnpm install cypress --save-dev\nnpm install-scripts approve cypress --no-allow-scripts-pin\nnpm rebuild cypress\n```\n\nIn npm v11 >=11.16.0 warnings are issued. Check the warning prompt for the recommended CLI command.\n\nFor all npm versions >=11.16.0 you can add `cypress` to `allowScripts` in `package.json` manually instead of using a CLI command:\n\npackage.json\n\n```\n{\n  \"allowScripts\": {\n    \"cypress\": true\n  }\n}\n```\n\nAlternatively, if you'd rather not modify your `allowScripts` list, install the Cypress binary explicitly after install completes:\n\n```\nnpx cypress install\n```\n\n#### Yarn configuration\n\n[Yarn (Modern)](https://yarnpkg.com/) configuration using [nodeLinker: \"node-modules\"](https://yarnpkg.com/configuration/yarnrc#nodeLinker) is preferred. Cypress [Component Testing](/llm/markdown/app/core-concepts/testing-types.md#What-is-Component-Testing) is not currently compatible with the default setting [nodeLinker: \"pnp\"](https://yarnpkg.com/configuration/yarnrc#nodeLinker) which uses [Yarn Plug'n'Play](https://yarnpkg.com/features/pnp).\n\nStarting in Yarn Modern version 4.14.0, the [enableScripts](https://yarnpkg.com/configuration/yarnrc#enableScripts) configuration option is set to `false` by default, which blocks dependency lifecycle scripts.\n\nTo allow Cypress to run its `postinstall` script, set `enableScripts` to `true` and add `cypress` to the [npmPreapprovedPackages](https://yarnpkg.com/configuration/yarnrc#npmPreapprovedPackages) list (available in Yarn Modern >=4.10.0) in your project's `.yarnrc.yml` file:\n\n.yarnrc.yml\n\n```\nenableScripts: true\n\nnpmPreapprovedPackages:\n  - cypress\n```\n\n`enableScripts` can also be set using the CLI:\n\n```\nyarn config set enableScripts true\n```\n\nSetting the list of `npmPreapprovedPackages` is less convenient via the CLI and is easier done by editing `.yarnrc.yml` directly.\n\n#### pnpm configuration\n\nThe pnpm [side effects cache](https://pnpm.io/settings#sideeffectscache) uses and caches the results of (pre/post)install hooks and is not compatible with Cypress' own caching. Disable the pnpm [side effects cache](https://pnpm.io/settings#sideeffectscache), for example using the following command, executed in the root of your Cypress project:\n\n```\npnpm config set side-effects-cache false --location project\n```\n\n[pnpm@10.0.0](https://github.com/pnpm/pnpm/releases/tag/v10.0.0) and above require allowlisting `cypress`. Refer to the [pnpm settings](https://pnpm.io/settings) documentation for additional information. In [pnpm@10.4.0](https://github.com/pnpm/pnpm/releases/tag/v10.4.0) and above, the CLI `add` option [\\--allow-build](https://pnpm.io/cli/add#--allow-build) can be used, for example:\n\n```\npnpm --allow-build=cypress add --save-dev cypress\n```\n\n#### Bun configuration\n\nCypress is detected automatically from a `bun.lock` (text, Bun >=1.2) or `bun.lockb` (binary) lockfile. When you install Cypress with `bun add`, Bun trusts the package and runs its `postinstall` script.\n\nWhen restoring dependencies from an existing manifest with `bun install` (for example in CI), Bun does not run `postinstall` scripts for packages that aren't in its [trustedDependencies](https://bun.sh/docs/install/lifecycle) allowlist. To install the Cypress binary, use one of the following approaches:\n\n**Recommended:** Skip lifecycle scripts and install the binary explicitly. This avoids running `postinstall` scripts from dependencies and is the more secure approach:\n\n```\nbun install --ignore-scripts\nbunx cypress install\n```\n\nAlternatively, trust Cypress so Bun runs the `postinstall` script on install. You can use the CLI:\n\n```\nbun pm trust cypress\n```\n\nOr add `cypress` to `trustedDependencies` in `package.json` manually:\n\npackage.json\n\n```\n{\n  \"trustedDependencies\": [\"cypress\"]\n}\n```\n\nRefer to [Advanced Installation](/llm/markdown/app/references/advanced-installation.md#Troubleshoot-installation) for additional Bun installation options.\n",
      "section": "app",
      "anchors": [
        "package-manager"
      ],
      "path": "/llm/json/chunked/app/get-started/install-cypress.json",
      "token_estimate": 912
    },
    {
      "id": "app/get-started/install-cypress#npm-configuration",
      "doc_id": "app/get-started/install-cypress",
      "heading": "npm configuration",
      "heading_level": 4,
      "content_markdown": "#### npm configuration\n\nStarting in npm 11.16.0, a warning is issued, then starting in npm 12.0.0, npm blocks `postinstall` lifecycle scripts by default. To allow Cypress to run its `postinstall` script, use one of the following approaches.\n\nAfter installing Cypress, you can use the `npm install-scripts` CLI command to add `cypress` to the `allowScripts` list so npm runs the `postinstall` script on install. Use the `--no-allow-scripts-pin` option if you want to allow also future versions of Cypress, or omit if not. `npm rebuild` re-runs the installation to install the Cypress binary after its installation has been allowed.\n\n```\nnpm install cypress --save-dev\nnpm install-scripts approve cypress --no-allow-scripts-pin\nnpm rebuild cypress\n```\n\nIn npm v11 >=11.16.0 warnings are issued. Check the warning prompt for the recommended CLI command.\n\nFor all npm versions >=11.16.0 you can add `cypress` to `allowScripts` in `package.json` manually instead of using a CLI command:\n\npackage.json\n\n```\n{\n  \"allowScripts\": {\n    \"cypress\": true\n  }\n}\n```\n\nAlternatively, if you'd rather not modify your `allowScripts` list, install the Cypress binary explicitly after install completes:\n\n```\nnpx cypress install\n```\n",
      "section": "app",
      "anchors": [
        "npm-configuration"
      ],
      "path": "/llm/json/chunked/app/get-started/install-cypress.json",
      "token_estimate": 239
    },
    {
      "id": "app/get-started/install-cypress#yarn-configuration",
      "doc_id": "app/get-started/install-cypress",
      "heading": "Yarn configuration",
      "heading_level": 4,
      "content_markdown": "#### Yarn configuration\n\n[Yarn (Modern)](https://yarnpkg.com/) configuration using [nodeLinker: \"node-modules\"](https://yarnpkg.com/configuration/yarnrc#nodeLinker) is preferred. Cypress [Component Testing](/llm/markdown/app/core-concepts/testing-types.md#What-is-Component-Testing) is not currently compatible with the default setting [nodeLinker: \"pnp\"](https://yarnpkg.com/configuration/yarnrc#nodeLinker) which uses [Yarn Plug'n'Play](https://yarnpkg.com/features/pnp).\n\nStarting in Yarn Modern version 4.14.0, the [enableScripts](https://yarnpkg.com/configuration/yarnrc#enableScripts) configuration option is set to `false` by default, which blocks dependency lifecycle scripts.\n\nTo allow Cypress to run its `postinstall` script, set `enableScripts` to `true` and add `cypress` to the [npmPreapprovedPackages](https://yarnpkg.com/configuration/yarnrc#npmPreapprovedPackages) list (available in Yarn Modern >=4.10.0) in your project's `.yarnrc.yml` file:\n\n.yarnrc.yml\n\n```\nenableScripts: true\n\nnpmPreapprovedPackages:\n  - cypress\n```\n\n`enableScripts` can also be set using the CLI:\n\n```\nyarn config set enableScripts true\n```\n\nSetting the list of `npmPreapprovedPackages` is less convenient via the CLI and is easier done by editing `.yarnrc.yml` directly.\n",
      "section": "app",
      "anchors": [
        "yarn-configuration"
      ],
      "path": "/llm/json/chunked/app/get-started/install-cypress.json",
      "token_estimate": 160
    },
    {
      "id": "app/get-started/install-cypress#pnpm-configuration",
      "doc_id": "app/get-started/install-cypress",
      "heading": "pnpm configuration",
      "heading_level": 4,
      "content_markdown": "#### pnpm configuration\n\nThe pnpm [side effects cache](https://pnpm.io/settings#sideeffectscache) uses and caches the results of (pre/post)install hooks and is not compatible with Cypress' own caching. Disable the pnpm [side effects cache](https://pnpm.io/settings#sideeffectscache), for example using the following command, executed in the root of your Cypress project:\n\n```\npnpm config set side-effects-cache false --location project\n```\n\n[pnpm@10.0.0](https://github.com/pnpm/pnpm/releases/tag/v10.0.0) and above require allowlisting `cypress`. Refer to the [pnpm settings](https://pnpm.io/settings) documentation for additional information. In [pnpm@10.4.0](https://github.com/pnpm/pnpm/releases/tag/v10.4.0) and above, the CLI `add` option [\\--allow-build](https://pnpm.io/cli/add#--allow-build) can be used, for example:\n\n```\npnpm --allow-build=cypress add --save-dev cypress\n```\n",
      "section": "app",
      "anchors": [
        "pnpm-configuration"
      ],
      "path": "/llm/json/chunked/app/get-started/install-cypress.json",
      "token_estimate": 119
    },
    {
      "id": "app/get-started/install-cypress#bun-configuration",
      "doc_id": "app/get-started/install-cypress",
      "heading": "Bun configuration",
      "heading_level": 4,
      "content_markdown": "#### Bun configuration\n\nCypress is detected automatically from a `bun.lock` (text, Bun >=1.2) or `bun.lockb` (binary) lockfile. When you install Cypress with `bun add`, Bun trusts the package and runs its `postinstall` script.\n\nWhen restoring dependencies from an existing manifest with `bun install` (for example in CI), Bun does not run `postinstall` scripts for packages that aren't in its [trustedDependencies](https://bun.sh/docs/install/lifecycle) allowlist. To install the Cypress binary, use one of the following approaches:\n\n**Recommended:** Skip lifecycle scripts and install the binary explicitly. This avoids running `postinstall` scripts from dependencies and is the more secure approach:\n\n```\nbun install --ignore-scripts\nbunx cypress install\n```\n\nAlternatively, trust Cypress so Bun runs the `postinstall` script on install. You can use the CLI:\n\n```\nbun pm trust cypress\n```\n\nOr add `cypress` to `trustedDependencies` in `package.json` manually:\n\npackage.json\n\n```\n{\n  \"trustedDependencies\": [\"cypress\"]\n}\n```\n\nRefer to [Advanced Installation](/llm/markdown/app/references/advanced-installation.md#Troubleshoot-installation) for additional Bun installation options.\n",
      "section": "app",
      "anchors": [
        "bun-configuration"
      ],
      "path": "/llm/json/chunked/app/get-started/install-cypress.json",
      "token_estimate": 197
    },
    {
      "id": "app/get-started/install-cypress#browsers",
      "doc_id": "app/get-started/install-cypress",
      "heading": "Browsers",
      "heading_level": 3,
      "content_markdown": "### Browsers\n\nCypress supports the latest 3 major versions of the following:\n\n*   [Google Chrome](/llm/markdown/app/references/launching-browsers.md#Chrome-Browsers)\n*   [Microsoft Edge](/llm/markdown/app/references/launching-browsers.md#Edge-Browsers)\n*   [Mozilla Firefox](/llm/markdown/app/references/launching-browsers.md#Firefox-Browsers) (_Firefox >=[141.0](https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/141) requires Cypress >=[14.1.0](https://docs.cypress.io/app/references/changelog#14-1-0)_)\n*   [WebKit](https://docs.cypress.io/app/references/launching-browsers#WebKit-Experimental) support is experimental\n\nEach Cypress release also includes a bundled, Electron-based Chromium [browser](/llm/markdown/app/references/launching-browsers.md#Electron-Browser).\n\n**Electron is deprecated as a test browser** and will be removed in a future version of Cypress. Switch to Chrome or another installed browser to avoid a breaking change when you upgrade. Set a [`defaultBrowser`](/llm/markdown/app/references/configuration.md#Browser) (for example, `'chrome'`) and/or pass [`--browser`](/llm/markdown/app/references/command-line.md#cypress-run) so your runs don't rely on the bundled Electron default. See [Migrating away from the Electron browser](/llm/markdown/app/references/migration-guide.md#Migrating-away-from-the-Electron-browser).\n",
      "section": "app",
      "anchors": [
        "browsers"
      ],
      "path": "/llm/json/chunked/app/get-started/install-cypress.json",
      "token_estimate": 132
    },
    {
      "id": "app/get-started/install-cypress#hardware",
      "doc_id": "app/get-started/install-cypress",
      "heading": "Hardware",
      "heading_level": 3,
      "content_markdown": "### Hardware\n\n*   Local: Any modern dev machine works\n*   CI: At least 2 CPUs + 4 GB RAM (8 GB+ recommended for long runs or video recording)\n\nSome issues you might run into in CI that could be a sign of insufficient resources are:\n\n*   Exiting early during `cypress run` or abruptly closing (\"crashing\")\n*   Frozen or missing frames in the video\n*   Increased runtime\n",
      "section": "app",
      "anchors": [
        "hardware"
      ],
      "path": "/llm/json/chunked/app/get-started/install-cypress.json",
      "token_estimate": 88
    },
    {
      "id": "app/get-started/install-cypress#linux-prerequisites",
      "doc_id": "app/get-started/install-cypress",
      "heading": "Linux Prerequisites",
      "heading_level": 3,
      "content_markdown": "### Linux Prerequisites\n\nInstall required dependencies. See below under [Docker Prerequisites](#Docker-Prerequisites) for information on [Cypress Docker images](https://github.com/cypress-io/cypress-docker-images). These already include the necessary dependencies.\n\n#### Ubuntu/Debian\n\nFor Ubuntu 22.04 and Debian:\n\n```\napt-get install libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb\n```\n\nFor Ubuntu >=24.04 and optionally for Debian 13:\n\n```\napt-get install libgtk-3-0t64 libgbm-dev libnotify-dev libnss3 libxss1 libasound2t64 libxtst6 xauth xvfb\n```\n\n#### Arch\n\n```\npacman -S gtk3 alsa-lib xorg-server-xvfb libxss nss libnotify\n```\n\n#### Amazon Linux 2023\n\n```\ndnf install -y xorg-x11-server-Xvfb gtk3-devel nss alsa-lib\n```\n",
      "section": "app",
      "anchors": [
        "linux-prerequisites"
      ],
      "path": "/llm/json/chunked/app/get-started/install-cypress.json",
      "token_estimate": 119
    },
    {
      "id": "app/get-started/install-cypress#ubuntu-debian",
      "doc_id": "app/get-started/install-cypress",
      "heading": "Ubuntu/Debian",
      "heading_level": 4,
      "content_markdown": "#### Ubuntu/Debian\n\nFor Ubuntu 22.04 and Debian:\n\n```\napt-get install libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb\n```\n\nFor Ubuntu >=24.04 and optionally for Debian 13:\n\n```\napt-get install libgtk-3-0t64 libgbm-dev libnotify-dev libnss3 libxss1 libasound2t64 libxtst6 xauth xvfb\n```\n",
      "section": "app",
      "anchors": [
        "ubuntu-debian"
      ],
      "path": "/llm/json/chunked/app/get-started/install-cypress.json",
      "token_estimate": 55
    },
    {
      "id": "app/get-started/install-cypress#docker-prerequisites",
      "doc_id": "app/get-started/install-cypress",
      "heading": "Docker Prerequisites",
      "heading_level": 3,
      "content_markdown": "### Docker Prerequisites\n\n[Cypress Docker images](/llm/markdown/app/continuous-integration/overview.md#Cypress-Docker-variants) are available from [Docker Hub](https://hub.docker.com/u/cypress) and the [Amazon ECR (Elastic Container Registry) Public Gallery](https://gallery.ecr.aws/cypress-io). These images, which are Linux (Debian) based, include all of the required dependencies pre-installed.\n\nIf you need Node.js, browser or Cypress version combinations which are not covered by the published Cypress Docker images, then the [cypress/factory](https://github.com/cypress-io/cypress-docker-images/tree/master/factory) image allows you to generate your own customized Docker image easily.\n\nIf you are not using a Cypress Docker image, make sure that your base operating system is a Linux system listed in the supported [Operating Systems](#Operating-System) above and that Node.js is installed in the image. It is recommended to have `unzip` installed. This avoids the Cypress binary installation falling back to a slower unzip method using Node.js.\n",
      "section": "app",
      "anchors": [
        "docker-prerequisites"
      ],
      "path": "/llm/json/chunked/app/get-started/install-cypress.json",
      "token_estimate": 165
    },
    {
      "id": "app/get-started/install-cypress#advanced-installation",
      "doc_id": "app/get-started/install-cypress",
      "heading": "Advanced Installation",
      "heading_level": 2,
      "content_markdown": "## Advanced Installation\n\nIf you have more complex requirements, want to level-up your Cypress workflow or just need help with troubleshooting, check out our [Advanced Installation](/llm/markdown/app/references/advanced-installation.md) reference. You can also find instructions to [uninstall Cypress](/llm/markdown/app/references/advanced-installation.md#Uninstall-Cypress) in this reference documentation.\n",
      "section": "app",
      "anchors": [
        "advanced-installation"
      ],
      "path": "/llm/json/chunked/app/get-started/install-cypress.json",
      "token_estimate": 52
    },
    {
      "id": "app/get-started/install-cypress#continuous-integration",
      "doc_id": "app/get-started/install-cypress",
      "heading": "Continuous integration",
      "heading_level": 2,
      "content_markdown": "## Continuous integration\n\nPlease read our [Continuous Integration](/llm/markdown/app/continuous-integration/overview.md) docs for help installing Cypress in CI. When running in Linux you may need to install some [system dependencies](#Linux-Prerequisites) or you can use our [Docker images](#Docker-Prerequisites) which have everything you need prebuilt.\n",
      "section": "app",
      "anchors": [
        "continuous-integration"
      ],
      "path": "/llm/json/chunked/app/get-started/install-cypress.json",
      "token_estimate": 53
    }
  ]
}