# What is Puppeteer? Puppeteer is a Node.js library which provides a high-level API to control Chrome/Chromium over the [DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/). Puppeteer runs in [headless](https://developer.chrome.com/docs/chromium/new-headless/) mode by default, but can be configured to run in full ("headful") Chrome/Chromium. # Features Most things that you can do manually in the browser can be done using Puppeteer! Here are a few examples to get you started: - Automate form submission, UI testing, keyboard input, etc. - Create an automated testing environment using the latest JavaScript and browser features. - Capture a [timeline trace](https://developer.chrome.com/docs/devtools/performance/reference) of your site to help diagnose performance issues. - [Test Chrome Extensions](https://pptr.dev/guides/chrome-extensions). - Generate screenshots and PDFs of pages. - Crawl a SPA (Single-Page Application) and generate pre-rendered content (i.e. "SSR" (Server-Side Rendering)).