Command Palette

Search for a command to run...

position in category
#2

Node.js library that exposes a high-level API to control Chrome or Firefox over the Chrome DevTools Protocol and WebDriver BiDi. Runs headless by default for scripts and CI while still supporting full browser display for debugging. Enables automation of navigation, form filling, screenshots, and PDF generation from a single JavaScript or TypeScript codebase.

Maintained by the Chrome team at Google. Puppeteer differentiates with direct access to the DevTools Protocol for low-level control when the high-level API is insufficient, via CDPSession for raw protocol methods and events. From version 23 onward it supports Firefox through WebDriver BiDi alongside Chrome, broadening cross-browser coverage within the same API.

Key capabilities:

  • Headless and headed Chrome and Firefox automation via DevTools Protocol and WebDriver BiDi
  • CDPSession for raw protocol access when high-level APIs fall short
  • Screenshots and PDF generation from pages and specific elements
  • Keyboard, mouse, and form automation with locators including ARIA-based selectors
  • Browser contexts and multiple pages for isolation and parallel execution
  • Puppeteer-core package to reuse an existing Chrome or Chromium installation without bundled browser download

Engineers use Puppeteer for end-to-end testing, web scraping, generating PDFs from HTML, visual regression checks, and automating repetitive browser tasks. Fits into test runners like Jest and Mocha and CI systems via headless execution. The chrome-devtools-mcp server extends Puppeteer for MCP-based browser automation and debugging workflows.

GitHub Repositories
445
-8.8%
Trending down this week
Removed in 43 repos