Browser automation library · Mature

puppeteer/puppeteer

Apache-2.0 TypeScript library and browser-management tooling for automating Chrome and Firefox through the DevTools Protocol or WebDriver BiDi; it is not an evidenced Claude Code extension, but can serve as browser infrastructure beneath the separately hosted Puppeteer-based chrome-devtools-mcp server named by the README.

browser automationweb testingend-to-end testingweb debuggingChromeFirefoxDevTools ProtocolWebDriver BiDiAngular testingbrowser management
Routing score
80.0
Readiness
Production-oriented
License
Apache-2.0
Maintenance
active
Components
12
Revision
0

Selection

Select when

  • You need a JavaScript or TypeScript API for Chrome or Firefox automation.
  • You want headless browser operation by default.
  • You need DevTools Protocol or WebDriver BiDi access.
  • You want the main package to download a compatible Chrome build.
  • You prefer puppeteer-core so browser acquisition remains under your control.
  • You need CSS, ARIA, text, XPath, or piercing selectors.
  • You need programmatic browser or driver installation and launching.
  • You are adding Puppeteer end-to-end tests to an Angular CLI project.
  • You want browser infrastructure for the separately hosted chrome-devtools-mcp server.
  • You need configurable browser mirrors or private download providers.

Boundaries

Avoid when

  • You require a native Claude Code plugin, skill, or hook from this repository.
  • You require an MCP server bundled and implemented in this repository.
  • You need WebKit coverage.
  • You cannot install or provide compatible browser binaries and system dependencies.
  • You require a browser manager that launches arbitrary system Firefox installations.
  • You need visual judgment or human-quality UX assessment rather than browser automation.
  • You cannot accept the security exposure of automating authenticated browser sessions.
  • You need a fully evidenced privacy or agent-threat model from the supplied files.

Strengths

Capabilities

Controls Chrome or Firefox through the DevTools Protocol or WebDriver BiDi.Runs headless by default and supports visible browser sessions in documented tests.Launches browsers, creates pages, navigates URLs, and sets viewport dimensions.Provides locators for ARIA names, text, CSS, XPath, and shadow-DOM piercing.Supports keyboard input, clicks, form filling, element-property access, and page evaluation.Offers the puppeteer package with a compatible Chrome download and puppeteer-core without that download.Provides a browsers CLI and programmatic API for installing, listing, clearing, locating, and launching browsers or drivers.Supports browser downloads through ordered custom providers with a default-provider fallback.Respects HTTP proxy environment variables for browser-management operations when proxy-agent is installed.Provides test infrastructure for Chrome, Firefox, headless, and headful configurations across Linux, macOS, and Windows expectations.Uses isolated test page, context, and browser setup helpers with automatic cleanup in its own test suite.Provides a Mocha-based runner with platform expectations, retries, timeouts, suite selection, coverage controls, and flaky-test debugging.Ships an Angular schematic for Puppeteer end-to-end tests with Jasmine, Jest, Mocha, or Node Test Runner.Provides Docker files intended to supply dependencies needed to run a browser instance.Documents chrome-devtools-mcp as a separately installed Puppeteer-based MCP server for browser automation and debugging.Documents experimental WebMCP support.Supports custom Chromium executables in testing and system Chrome or Chromium launching through the browser manager.Provides official examples and a Docusaurus documentation site.Exposes lower-level puppeteer-core components and a structured WebDriver BiDi layer.Includes an internal HTTP and HTTPS test server package.

Risk profile

Risks and limitations

  • Uncertainty: only selected first-party README files were supplied, so core implementation, package manifests, security policy, CI configuration, WebMCP details, and complete API behavior were not inspected.
  • Uncertainty: repository update and push timestamps extend into 2026 relative to this analysis context, so current release status and recency cannot be independently reconciled.
  • Uncertainty: Claude Code is not named in the supplied Puppeteer files; compatibility is an inference through the separately hosted chrome-devtools-mcp server and generic MCP clients.
  • The chrome-devtools-mcp server is linked as a separate installation, so its implementation, permissions, host compatibility, and security behavior are outside the supplied evidence.
  • The README labels WebMCP support experimental, and the supplied files do not establish Claude Code support for that path.
  • Puppeteer covers Chrome and Firefox but does not document WebKit support.
  • The main package depends on an install script to download Chrome, and package managers may block that script.
  • Browser downloads and launches require compatible Node, archive utilities, binaries, and operating-system dependencies that vary by platform.
  • The browser manager states that launching system browsers is limited to Chrome or Chromium.
  • Docker guidance adds SYS_ADMIN for Chrome sandboxing or mentions disabling the sandbox, each of which requires security review.
  • Automating logged-in pages can expose cookies, page content, and consequential controls to the calling program or agent.
  • Custom browser providers are explicitly unsupported and leave binary compatibility, testing, and maintenance to the user.

Browser automation inherits the authority of the launched profile, pages, credentials, downloads, and network environment. The supplied Docker guidance says SYS_ADMIN enables Chrome sandboxing and alternatively mentions --no-sandbox, which weakens isolation and should not be treated as equivalent. Separately installed MCP tooling adds another trust boundary not assessed by these files.

Component inventory

12 documented components

JavaScript library

Puppeteer

High-level API for automating Chrome or Firefox over DevTools Protocol or WebDriver BiDi; headless by default.

README.md
JavaScript library

puppeteer-core

Browser-automation package variant that does not download Chrome during installation.

README.md
CLI command

Puppeteer browser installer

Manually downloads required browser binaries when package-manager install scripts are blocked.

README.md
CLI and library

@puppeteer/browsers

Installs, lists, clears, locates, and launches browsers or drivers; also supports custom download providers.

packages/browsers/README.md
external MCP service reference

chrome-devtools-mcp integration

Documented Puppeteer-based MCP server for browser automation and debugging; its implementation is in another repository.

README.md
experimental API

WebMCP support

Experimental WebMCP API supported by Puppeteer.

README.md
Angular schematic

Puppeteer Angular Schematic

Adds Puppeteer-based end-to-end tests to Angular CLI projects with Jasmine, Jest, Mocha, or Node Test Runner.

packages/ng-schematics/README.md
test workflow

Puppeteer test runner

Runs repository tests across applicable browser and platform configurations with documented filtering and reporting options.

test/README.md
test-runner module

Mocha Runner

Repository test runner layered on Mocha that applies TestSuites and TestExpectations configurations.

tools/mocha-runner/README.md
documentation workflow

Puppeteer documentation website

Docusaurus site for local documentation development, static builds, and GitHub Pages deployment.

website/README.md
example workflow

Official examples

Runnable official Puppeteer examples built against the repository checkout.

examples/README.md

Technical profile

Requirements and configuration

Language
TypeScript is the repository's primary language, with JavaScript and Node-oriented package usage shown.
License
Apache-2.0 according to GitHub metadata.
Protocols
Chrome DevTools Protocol and WebDriver BiDi.
Browsers
Chrome and Firefox are documented; system-browser launching through the browser manager is limited to Chrome or Chromium.
Packages
The supplied files identify puppeteer, puppeteer-core, @puppeteer/browsers, @puppeteer/ng-schematics, and internal testing packages.
Runtime
A compatible Node version is required, but the exact version is not supplied in the reviewed files.
Installation
The puppeteer package downloads compatible Chrome during installation, while puppeteer-core omits that download.
Browser Management
The @puppeteer/browsers CLI and API install, list, clear, locate, and launch browsers or drivers.
Testing
The repository documents Mocha, Expect, platform-aware suites, expectations, retries, parallelism controls, and browser test helpers.
Selectors
Documented selectors include CSS, ARIA, text, XPath, and shadow-DOM piercing forms.
Mcp
The README points to the separately hosted Puppeteer-based chrome-devtools-mcp server; it is not evidenced as bundled here.
Webmcp
The README states experimental WebMCP support without supplying implementation details.
Containers
The Docker example uses SYS_ADMIN to enable the Chrome sandbox and mentions --no-sandbox as an alternative.
Proxies
Browser-management operations can respect HTTP_PROXY, HTTPS_PROXY, and NO_PROXY when proxy-agent is installed.
Repository Status
Public, unarchived repository with CI badge, active issue tracking, and substantial stars and forks in supplied metadata.

Classification

How it enters the stack

External Cli LibraryInfrastructure

Evidence: Puppeteer is a Node library plus browser-management CLI and infrastructure, while the README points to a separately installed Puppeteer-based MCP server. Inference: it runs alongside Claude Code rather than extending it natively; setup typically includes packages, browser binaries, and platform dependencies.

Runs Alongside · medium setup effort · high confidence · automated

Evidence and risk

Primary sources

first_party_fileREADME.mdhttps://github.com/puppeteer/puppeteer/blob/main/README.md
first_party_filetest/README.mdhttps://github.com/puppeteer/puppeteer/blob/main/test/README.md
first_party_filedocker/README.mdhttps://github.com/puppeteer/puppeteer/blob/main/docker/README.md
first_party_filewebsite/README.mdhttps://github.com/puppeteer/puppeteer/blob/main/website/README.md
first_party_fileexamples/README.mdhttps://github.com/puppeteer/puppeteer/blob/main/examples/README.md

Routing context

Conflicts, complements, and synergies

alternative_to

gh_microsoft_playwright

Both provide Apache-2.0 browser automation and testing infrastructure with agent access through separately documented MCP paths; Puppeteer focuses on Chrome and Firefox, while the cataloged Playwright record also covers WebKit.

high confidence