# googlechrome/puppeteer

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/googlechrome-puppeteer).**

94,974 stars · 9,453 forks · TypeScript · Apache-2.0

## Links

- GitHub: https://github.com/GoogleChrome/puppeteer
- Homepage: https://pptr.dev
- awesome-repositories: https://awesome-repositories.com/repository/googlechrome-puppeteer.md

## Description

Puppeteer is a JavaScript library for programmatically controlling Chrome and Firefox through the Chrome DevTools Protocol or the WebDriver BiDi protocol. It launches and manages browser instances—typically without a visible user interface—to automate interactions with web pages, enabling navigation, clicking, typing, and data extraction entirely through code.

The library distinguishes itself through deep integration with the Chromium embedding layer, allowing fine-grained process configuration with custom flags, permissions, and sandbox policies. It maintains multiple concurrent command streams to different browser targets over a shared connection, and can inject and execute JavaScript inside isolated page contexts to query DOM state or trigger synthetic events. It also supports modern bidirectional WebDriver BiDi alongside the classic DevTools wire protocol, providing cross-browser automation with event-driven primitives.

Beyond core automation, Puppeteer covers screenshot and PDF generation with precise viewport and styling control, automated testing of site behavior and appearance in real browsers, and streaming capture of compositor frames into portable image or document formats.

The project is maintained by the Google Chrome team and is distributed as an installable TypeScript package.

## Tags

### Development Tools & Productivity

- [Headless Browser Automation](https://awesome-repositories.com/f/development-tools-productivity/headless-browser-automation.md) — Runs Chrome or Firefox without a visible UI to programmatically navigate, interact with, and extract data from web pages.

### Graphics & Multimedia

- [Web Page Screenshot and PDF Tools](https://awesome-repositories.com/f/graphics-multimedia/web-page-media-generation/web-page-screenshot-and-pdf-tools.md) — Captures visual renderings of web pages and exports them as images or PDF documents for testing and reporting. ([source](https://github.com/googlechrome/puppeteer#readme))
- [Viewport-Controlled Visual Exporters](https://awesome-repositories.com/f/graphics-multimedia/web-page-media-generation/viewport-controlled-visual-exporters.md) — Renders web pages to screenshots or PDF documents with precise viewport and styling control for reporting and testing. ([source](https://github.com/googlechrome/puppeteer#readme))

### Testing & Quality Assurance

- [Web Testing Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/browser-and-ui-testing/browser-automation-frameworks/web-testing-frameworks.md) — Validates site behavior, appearance, and performance in real browsers through automated scripts.
- [On-Demand Web Page Screenshot Automations](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/on-demand-web-page-screenshot-automations.md) — Renders web pages as images on demand to check visual appearance, create reports, or document site state.
- [Compositor Frame Capture Tools](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/screenshot-capture/compositor-frame-capture-tools.md) — Captures rendered output by requesting compositor frames from the browser and encoding them into portable image or document formats.

### Web Development

- [Cross-Protocol Browser Automation](https://awesome-repositories.com/f/web-development/cross-protocol-browser-automation.md) — Controls Chrome or Firefox over DevTools Protocol or WebDriver BiDi to simulate user actions without a visible UI. ([source](https://github.com/googlechrome/puppeteer#readme))
- [Headless Browser Controllers](https://awesome-repositories.com/f/web-development/headless-browser-controllers.md) — Launches and manages Chrome and Firefox instances without a visible UI for automated testing and data extraction.
- [Headless Browsers](https://awesome-repositories.com/f/web-development/headless-browsers.md) — Launches browser instances without a visible user interface to reduce resource overhead during automated operations. ([source](https://github.com/googlechrome/puppeteer#readme))
- [Chrome DevTools Protocols](https://awesome-repositories.com/f/web-development/web-automation-scraping/browser-control-protocols/chrome-devtools-protocols.md) — Communicates with browsers by sending JSON commands over WebSocket to inspect and manipulate pages, network, and runtime.
- [Cross-Browser DevTools Automations](https://awesome-repositories.com/f/web-development/web-automation-scraping/browser-control-protocols/cross-browser-devtools-automations.md) — Controls Chrome and Firefox programmatically through DevTools Protocol or WebDriver BiDi for testing and integration workflows.
- [WebDriver BiDi Implementations](https://awesome-repositories.com/f/web-development/web-automation-scraping/browser-control-protocols/webdriver-bidi-implementations.md) — Drives browser automation through a bidirectional WebSocket protocol enabling cross-browser scripting with modern event-driven primitives.
- [Cross-Protocol](https://awesome-repositories.com/f/web-development/web-automation-scraping/browser-interaction-primitives/cross-protocol.md) — Controls Chrome and Firefox programmatically to click, type, navigate, and extract data from web pages without manual interaction. ([source](https://github.com/googlechrome/puppeteer#readme))
- [Headless Browser Orchestrators](https://awesome-repositories.com/f/web-development/web-automation-scraping/browser-orchestration-systems/headless-browser-orchestrators.md) — Manages browser lifecycle by launching detached OS processes and controlling rendering pipelines without attaching to a display server.
- [Browser Execution Isolations](https://awesome-repositories.com/f/web-development/browser-execution-isolations.md) — Injects and executes JavaScript inside isolated browser page contexts to query DOM state and trigger synthetic user events.
- [Web Scraping Engines](https://awesome-repositories.com/f/web-development/web-scraping-engines.md) — Extracts data from web pages by programmatically navigating, clicking, and reading content from Chrome and Firefox.

### Content Management & Publishing

- [Web-to-PDF Converters](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/document-processing-tools/format-conversion-toolkits/pdf-format-converters/web-to-pdf-converters.md) — Renders web pages and HTML content into static PDF documents or image snapshots with precise viewport control.

### Networking & Communication

- [Browser Session Multiplexers](https://awesome-repositories.com/f/networking-communication/connection-multiplexing/browser-session-multiplexers.md) — Multiplexes multiple browser-target command streams over a single shared CDP/WebBiDi connection for parallel control.

### Operating Systems & Systems Programming

- [Chromium Process Spawners](https://awesome-repositories.com/f/operating-systems-systems-programming/desktop-environment-frameworks/desktop-environment-components/desktop-application-frameworks/chromium-based-desktop-shells/chromium-process-spawners.md) — Links against Chromium embedder APIs to spawn and configure browser processes with custom flags, permissions, and sandbox policies.

### Part of an Awesome List

- [Automation Libraries](https://awesome-repositories.com/f/awesome-lists/devtools/automation-libraries.md) — Node.js library for controlling headless browsers.
- [Browser Automation](https://awesome-repositories.com/f/awesome-lists/devtools/browser-automation.md) — Headless Google Chrome Node API.
- [Browser Testing Tools](https://awesome-repositories.com/f/awesome-lists/devtools/browser-testing-tools.md) — Headless browser automation for testing and documentation generation.
- [Core Framework](https://awesome-repositories.com/f/awesome-lists/devtools/core-framework.md) — Official library for browser automation and control.
- [Testing Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/testing-frameworks.md) — Headless Chrome browser automation for testing and scraping.
