CodeVetter
← All unpacks
CodeVetter · Repo Unpack evidence

cypress-io/cypress

Scanned commit 7d987f0474 dated 2026-10-02 — last upstream commit. Generated by codevetter 1.15.0 on 2026-10-02.

github.com/cypress-io/cypress ↗ · 3999 files · 15.6 MB · scan capped

Documentation | Changelog | Roadmap The web has evolved.

Deep analysis by cli:codex via the codex CLI on 2026-10-02 (843s) — every claim below links to its cited source files. Source inspection; upstream code and tests were not executed.

Overview

Cypress is a browser testing platform for developers running end-to-end and component tests locally or in CI. This monorepo combines the installable CLI and Node API, an Electron application, a browser-side command driver, Vue interfaces, and framework/bundler integrations. At commit 7d987f04740f8f5388ac3116e8ef7957373ead14, distinctive implementation details include shared interception logic across HTTP-proxy and Chromium CDP transports, GraphQL application state, and CLI attachment to existing interactive sessions.

System map

The system spans a user-Node CLI, an Electron main process, a configuration/plugin child process, and browser bundles. The application exposes GraphQL and browser communication services while coordinating projects and network interception. Distribution includes an npm module and platform-specific desktop binaries, with separate build and release machinery.

Feature catalog

The inspected user surfaces include terminal execution, the Node API, interactive spec management, component mounting, network interception, and Cypress Cloud integration. The tap command adds discovery and control of an existing open-mode session. This catalogue groups evidenced capabilities; the bounded inspection does not enumerate every cy command, UI component, or published integration.

Data flow

Inputs cross explicit boundaries through CLI argument translation, configuration IPC, GraphQL operations, and network-event frames. State is split between DataContext, browser route/command state, server interception state, and local persistence. Outputs include browser responses, UI subscriptions, JSON run results, process exit codes, and session discovery records.

Behavior traces

Three concrete flows were followed across their relevant files: test-run startup/results, interception registration through response completion, and interactive-session persistence through CLI attachment. The traces below retain important branches such as dev verification bypass, recording delegation, static-response termination, and browser-readiness filtering. A supplementary startup trace explains how the interactive window becomes available.

Testing signals

Tests and CI were inspected, not executed; their existence is not a passing result. The repository combines Vitest, Mocha, Jest, Cypress browser suites, and a system-test harness. Inspected coverage includes option translation, session persistence/probing, subscription behavior, configuration child failures, and browser interception. The inventory and test inspection are bounded, so local TODOs and mocks describe specific limits rather than whole-repository coverage gaps.

Risk map

These are source observations and explicitly marked hypotheses, not confirmed vulnerabilities. Sensitive boundaries include configuration execution, privileged browser-to-server commands, filesystem access, GraphQL listeners, and CDP session control. Transport switching and V8 snapshot composition create substantial coupling. Runtime validation and broader test results remain unknown because this investigation executed no repository code.

Extension points

Public customization is concentrated in Cypress command registration, setupNodeEvents, component adapters, and CLI APIs. Internal extension seams include injected network ports, ordered policies, generated frontend routes, and Nexus schema plugins. New code should enter through the owning seam because transport, generated-artifact, and process boundaries constrain implementation placement.

Contributor handoff

Tests and CI were inspected, not executed, and no repository files were changed. Future implementation work should start from package-local guidance and identify the runtime, generated artifacts, and test runner before editing. The highest-value boundaries to preserve are shared interception state, session identity/persistence, user-Node configuration execution, and public CLI/module compatibility. This is a bounded investigation rather than exhaustive inventory or verification.

Languages

LanguageFilesShare of source
TypeScript286258%
JavaScript164533%
JSON581docs/config
Vue3487%
HTML333docs/config
Markdown302docs/config
CSS62docs/config
Sass351%

Start reading here

Probable source entrypoint: packages/ — inferred from the directory tree and manifest, not the upstream docs.

Source roots

packages/ (1375 files)

Repository structure

Top-level pathFiles
packages/1375
system-tests/1374
npm/673
cli/191
tooling/146
scripts/117
guides/25
.github/20

Docs found: AGENTS.mdCLAUDE.mdCONTRIBUTING.mdREADME.mddocs/ai/README.md

Package

package.json — cypress v0.0.0-development, 80 declared dependencies.

@aws-sdk/client-s3@aws-sdk/credential-providers@babel/eslint-parser@cypress/request@cypress/request-promise@electron/fuses@electron/notarize@graphql-codegen/add@graphql-codegen/cli@graphql-codegen/plugin-helpers@graphql-codegen/typed-document-node@graphql-codegen/typescript

CI & config entrypoints

Structural health signals

Average score 5.9/10 across 96 analyzed source files; 69 hotspots surfaced.

These are deterministic review leads — size, churn, and structural signals — not proof of a bug in this project.

Recent history