# Puppeteer (slim) > Puppeteer is Google's open-source Node.js library for controlling Chrome and Firefox over the DevTools Protocol and WebDriver BiDi. An agent writes and runs scripts that navigate, click, type, read pages and take screenshots. - Full: https://www.anchorterminal.com/tools/puppeteer.md (~5,150 tokens) · this version ~1,230 tokens · JSON https://www.anchorterminal.com/tools/puppeteer.json · canonical https://www.anchorterminal.com/tools/puppeteer - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-14 **BB · 70.6/100 · rank #154 of 1076 · #5 in Browser automation · agent-ready · confidence medium** Assessment: Puppeteer is a stable, Apache-2.0 library on 25.13.0, with ten releases since 27 July 2026, typed APIs, locators that wait and retry, and accessibility snapshots an agent can read. It has no MCP server or llms.txt of its own, and 10 of the 20 most recent CI runs on main failed between 7 and 13 October 2026. ## Facts - Kind: SDK + MCP · vendor: Google · category: Browser automation · legal entity: Google LLC · provenance 68/100 - Packages: npm `puppeteer`, npm `puppeteer-core` - Auth: None · pricing: Free · x402: no · licence: Apache-2.0 - Probe metrics: not measured yet (probes haven't run) - Interfaces: Node.js library (`puppeteer` with a bundled browser, `puppeteer-core` without). No CLI or MCP server. `@puppeteer/browsers` is a separate CLI and library for installing browsers - Protocols: Chrome DevTools Protocol for Chrome, WebDriver BiDi for Firefox and optionally Chrome (https://pptr.dev/webdriver-bidi) - Runtimes: Node.js 22.12 or later, ESM only since 25.0.0. Chrome for Testing, chrome-headless-shell and stable Firefox - Agent-relevant APIs: `page.locator()` with automatic waits, `page.accessibility.snapshot()`, request interception, screenshots and PDF, and the experimental `page.webmcp` - Errors: `PuppeteerError` with subclasses `TimeoutError`, `ProtocolError`, `TargetCloseError`, `ConnectionClosedError` and `TouchError` - Telemetry: None found in a search of the library source on 14 October 2026. The docs site pptr.dev loads Google Analytics - Scores: Reliability 80, Performance pending, Schema & documentation 81, Agent ergonomics 67, Security & auth 52, Payments & pricing 60, Task success pending, Maintenance & community 89, Transparency & trust 70 · total over the 7 assessed categories - Why: Reliability, Scored as local software. · Schema & documentation, Graded as a library. · Agent ergonomics, A library adds no tool definitions to context. · Security & auth, No credential to leak and nothing to scope, so the middle band (20 of 30). · Payments & pricing, Free, self-hosted, nothing to buy, so 20 + 20 + 20 under the self-hosted rule. · Maintenance & community, 25.13.0 on 8 October 2026 (30). · Transparency & trust, Apache-2.0, published by Google (30). - Sources: 12, open questions: 2, both in the full twin - Capabilities: browser.control, browser.debug - JSON: https://www.anchorterminal.com/api/v1/tools/puppeteer.json - Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/puppeteer.svg` or a link to https://www.anchorterminal.com/tools/puppeteer from a page on pptr.dev or one of its subdomains, or the README of github.com/puppeteer/puppeteer, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin. ## Before you call it 1. Install with `npm i puppeteer`, which downloads a matching Chrome for Testing. Use `puppeteer-core` to bring your own browser 2. Prefer `page.locator()` over `page.$()`. Locators wait for the element to be visible and stable before acting 3. Read pages with `page.accessibility.snapshot({interestingOnly: true})` rather than full HTML to keep output short 4. Catch `TimeoutError` separately from `TargetCloseError`. The first can be retried, the second needs a new page or browser 5. Packages are ESM only since 25.0.0. Use `import puppeteer from 'puppeteer'` rather than `require` ## Connect ```bash npm i puppeteer ``` Full config and headless snippets are in the full page. Through letme (picks today, calling later): https://letme.dev/puppeteer ## Similar tools | Tool | Grade | Score | Shared capabilities | Slim | | --- | --- | --- | --- | --- | | Chrome DevTools MCP | BB | 77 | browser.control, browser.debug | https://www.anchorterminal.com/tools/chrome-devtools-mcp.min.md | | Selenium | BB | 73.6 | browser.control, browser.debug | https://www.anchorterminal.com/tools/selenium.min.md | | Browserless | BB | 70.4 | browser.control, browser.debug | https://www.anchorterminal.com/tools/browserless.min.md | | Steel | BB | 70.4 | browser.control, browser.debug | https://www.anchorterminal.com/tools/steel.min.md | | REA | B | 69.7 | browser.debug, browser.control | https://www.anchorterminal.com/tools/rea.min.md | ## Panel reviews (0, desk reviews from public material, no calls made)