Developer Tools

Puppeteer

4.38

is a Node.js library by Google's Chrome team that provides a high-level API to control Chrome and Firefox programmatically.

Visit Website

Puppeteer was released by Google’s Chrome DevTools team in 2017. It’s developed at Google’s offices in Mountain View, California and maintained as an open-source project on GitHub.

The library provides a high-level API over the Chrome DevTools Protocol. It can do everything you’d do manually in a browser — navigate pages, fill forms, click buttons, take screenshots, generate PDFs, and crawl single-page applications. It downloads a compatible version of Chrome automatically, so setup takes just one npm install.

Puppeteer is particularly strong for tasks beyond testing. Web scraping, PDF generation, performance monitoring, and automated screenshots are common use cases. Many teams use it to generate social media preview images (OG images) at build time. It’s also the engine behind tools like Lighthouse CI for automated performance auditing.

The API is promise-based and straightforward. Page.goto() navigates to a URL, page.click() clicks an element, page.type() enters text. The page.evaluate() method lets you run arbitrary JavaScript in the browser context, giving you full access to the DOM and browser APIs.

Starting with version 23, Puppeteer added Firefox support through the WebDriver BiDi protocol. The library has over 88,000 GitHub stars, making it one of the most starred Node.js projects. While many teams now use Playwright for E2E testing (which was built by the same engineers), Puppeteer remains the go-to tool for browser automation tasks that don’t fit the testing framework model.