Skip to content

Puppeteer

Category: Classic Browser Automation

Puppeteer is a Node.js library maintained by the Chrome DevTools team that provides a high-level API to control Chrome or Firefox over the DevTools Protocol (CDP) or WebDriver BiDi. It runs headless by default, meaning no visible browser UI unless you opt in.

At a Glance

PropertyValue
CategoryClassic
Cloud / LocalLocal (runs in your Node process)
HeadlessYes (default)
HeadfulYes (headless: false)
ProxiesSupply your own
CAPTCHA solvingNo
Stealth / Anti-detectWeak (detectable by default)
CostFree, open source (Apache-2.0)
Current version25.2.1 (June 2026)
Used by576,000+ projects

When to Use Puppeteer

  • Fast local scripting: screenshots, PDFs, form fills, data extraction from JS-rendered pages
  • CI pipeline integration where you control the environment
  • Prototyping automation flows before moving to a cloud browser (Steel, Browserbase, Hyperbrowser)
  • Generating PDFs or screenshots of internal/preview URLs (localhost allowed)

When NOT to Use Puppeteer

  • Scraping against bot-detection: use Browserbase or Hyperbrowser instead
  • Geo-targeted SERP capture: pair with a residential proxy + UULE and route through Steel or Browserbase
  • Unattended always-on workloads on Mike's Windows machine: use a cloud browser backend

Safety and ToS Notes

Puppeteer is a general-purpose browser automation library with no built-in restrictions. Standard responsible-use rules apply:

  • Do not use to bypass paywalls, access controls, or CAPTCHAs on sites that prohibit automated access.
  • Respect each target site's robots.txt and ToS.
  • Never run high-volume scraping or download-heavy tasks from Mike's home IP -- route those through proxies.
  • puppeteer (full package) downloads a pinned Chromium build on install. puppeteer-core does not; you supply the browser path.