# System map — microsoft/playwright

> Canonical page: https://codevetter.com/unpack/playwright/system-map

# System map — microsoft/playwright

Scanned commit b630e71fcda7885885c459bcbb88e5bfa7c0a1ac (2026-10-01). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

The repository separates browser automation, test orchestration, protocol definitions, and browser-facing interfaces into workspace packages. Local automation still crosses a client/dispatcher boundary before reaching browser implementations. Persistent state consists of browser profiles, browser installation caches, and explicit JSON/artifact files. The inspected deployment surfaces are Node packages, command-line programs, and optional browser-control servers.
- The private playwright-internal workspace is version 1.64.0-next, requires Node.js >=20, and includes packages/* as npm workspaces. — [package.json#L1-12](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/package.json#L1-L12) [package.json#L54-56](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/package.json#L54-L56)
- The playwright package exports CommonJS/ESM library and test entrypoints, installs the playwright executable, and depends on the matching playwright-core version. — [packages/playwright/package.json#L13-48](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright/package.json#L13-L48)
- packages/playwright/cli.js loads the compiled program and parses process.argv; program.ts decorates the shared library CLI before adding test-runner commands. — [packages/playwright/cli.js#L18-19](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright/cli.js#L18-L19) [packages/playwright/src/program.ts#L19-38](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright/src/program.ts#L19-L38) [packages/playwright/src/program.ts#L251-258](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright/src/program.ts#L251-L258)
- createInProcessPlaywright wires Connection to DispatcherConnection, enables raw buffers, creates PlaywrightDispatcher, and switches from synchronous initialization to setImmediate message delivery. — [packages/playwright-core/src/inprocess.ts#L27-50](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/inprocess.ts#L27-L50)
- BrowserType launches native executables and selects WebSocketTransport or PipeTransport according to supportsPipeTransport. — [packages/playwright-core/src/server/browserType.ts#L214-243](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/browserType.ts#L214-L243) [packages/playwright-core/src/server/browserType.ts#L264-280](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/browserType.ts#L264-L280)
- Test phases use Dispatcher to allocate worker slots; WorkerHost identifies the worker process entry and assigns a per-worker artifact directory. — [packages/playwright/src/runner/dispatcher.ts#L220-251](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright/src/runner/dispatcher.ts#L220-L251) [packages/playwright/src/runner/workerHost.ts#L47-75](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright/src/runner/workerHost.ts#L47-L75)
- Browser installation storage honors PLAYWRIGHT_BROWSERS_PATH, including package-local mode '0'; installation locks the registry and records package links before optional cache cleanup. — [packages/playwright-core/src/server/registry/index.ts#L397-417](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/registry/index.ts#L397-L417) [packages/playwright-core/src/server/registry/index.ts#L934-961](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/registry/index.ts#L934-L961)
- Root scripts define build/watch, combined linting, browser-specific tests, stable-runner tests, MCP tests, and platform-specific suites. — [package.json#L18-51](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/package.json#L18-L51)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
