Puppeteer is a JavaScript library that provides a high-level API for controlling Chrome or Firefox over the DevTools Protocol or WebDriver BiDi. It runs the browser headless by default and is used for scraping, testing, screenshots, and other programmatic browser control from Node.js.
Two packages are published: puppeteer downloads a compatible Chrome during installation, and puppeteer-core is the library alone for use with an existing browser. Because modern package managers block install scripts by default, browsers can also be fetched afterwards with npx puppeteer browsers install. For agent use, chrome-devtools-mcp is a Puppeteer-based MCP server for browser automation and debugging, and Puppeteer supports the experimental WebMCP API.
Features
- Browser control: launch a browser, open pages, navigate, set viewports, and drive keyboard input
- Locators: select elements by CSS, by ARIA name (::-p-aria), or by text (::-p-text), with waiting built in
- Page evaluation: run JavaScript in the page context and read back results
- Two protocols: Chrome DevTools Protocol and WebDriver BiDi, covering Chrome and Firefox
- Browser management: the @puppeteer/browsers package installs and manages browser binaries
- MCP integration: chrome-devtools-mcp exposes browser automation and debugging to agents
Built with this
Integrates with
Integrated by
Agent-browser
Native Rust browser-automation CLI that drives Chrome from accessibility-tree snapshots for AI agents
Lightpanda Browser
The headless browser built from scratch for AI agents and automation. Not a Chromium fork. Not a WebKit patch. A new browser, written in Zig.
Midscene
Vision-driven UI automation that acts from screenshots and natural-language steps across web, mobile, and desktop
Moli
Best browser for AI agents, built in Rust.
