To list browser builds installed in Puppeteer’s managed cache, run npx @puppeteer/browsers list. In Node.js, use getInstalledBrowsers({cacheDir}) from @puppeteer/browsers. Both methods inventory a Puppeteer browser cache—not every browser installed across your computer.
List browsers in Puppeteer’s cache from the command line
Run this from a terminal:
npx @puppeteer/browsers list
The command reports browser builds present in the managed browser cache. If you need a quick check of what Puppeteer’s browser-management tooling has downloaded, this is the simplest method. It does not search the entire operating system for Chrome, Firefox, or other browser installations. See Puppeteer’s @puppeteer/browsers documentation.
As an Amazon Associate I earn from qualifying purchases.
List cached browsers from Node.js
For a script or diagnostic, call getInstalledBrowsers and specify the cache directory you want to inspect:
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →import {getInstalledBrowsers} from '@puppeteer/browsers';
const browsers = await getInstalledBrowsers({
cacheDir: '/path/to/puppeteer-cache',
});
console.log(browsers);
Replace the example path with the cache directory used by your installation. The function returns metadata for browser installations found in that cache. Check the API and types for the version of @puppeteer/browsers in your project if your code depends on specific metadata fields; do not assume a field beyond what that installed version exposes. See getInstalledBrowsers() and its options.
#1 Best Overall
Check which cache Puppeteer is using
If the list is empty or does not include a browser you expect, first check the cache location. Puppeteer’s installation guide documents $HOME/.cache/puppeteer as the default cache from Puppeteer v19.0.0 onward. Configuration can change the directory, including through PUPPETEER_CACHE_DIR; the API also accepts an explicit cacheDir. A browser installed under a different user account or cache path will not appear in the directory you are listing.
- Check the user account running the command or script.
- Check the project’s Puppeteer configuration and the
PUPPETEER_CACHE_DIRenvironment variable. - For the API, pass the actual managed-browser directory as
cacheDir. - Remember that
puppeteer-coredoes not download Chrome. Its browser is managed separately, so an empty Puppeteer cache can be expected.
Puppeteer’s installation and configuration guide explains the download and cache behavior. The standard puppeteer installation workflow downloads Chrome for Testing by default; the older headless mode is distributed separately as chrome-headless-shell beginning with Puppeteer v21.6.0.
Rank #2
- HTML CSS Design and Build Web Sites
- Comes with secure packaging
- It can be a gift option
Understand what “installed” means
The CLI and API answer a specific question: which browser builds are present in the Puppeteer-managed cache being inspected? They are not documented as scanners for operating-system application folders, package-manager databases, directories on PATH, containers, or remote browser services. If you need a complete machine-wide inventory, use an operating-system-specific discovery method in addition to Puppeteer’s cache listing.
Free tools Windows power users keep installed
One-click scans. No signup required.
Select a system Chrome for launch
Finding a system browser to launch is a separate task from listing the cache. Puppeteer’s launch options let you select a regular Chrome installation by release channel, or specify an exact binary with executablePath. For example:
Rank #3
import puppeteer from 'puppeteer-core';
const browser = await puppeteer.launch({
executablePath: '/path/to/chrome',
});
console.log(await browser.version());
await browser.close();
Replace /path/to/chrome with the executable path for your system. Alternatively, use a supported Chrome channel when that is more appropriate. These options tell Puppeteer what to launch; they do not enumerate system installations. Puppeteer documents channel and executablePath in its LaunchOptions API. Its documentation says system-browser launching through @puppeteer/browsers is limited to Chrome/Chromium. Puppeteer’s supported browser types are Chrome and Firefox.
Choose the right approach
| Approach | What it tells you | Scope |
|---|---|---|
npx @puppeteer/browsers list |
Which browser builds are in the managed cache | Quick command-line inventory of that cache |
getInstalledBrowsers({cacheDir}) |
Browser metadata in a chosen cache directory | Programmatic inventory; you select the cache |
channel or executablePath at launch |
Which system Chrome Puppeteer should start | Launch selection, not a general inventory |
For compatibility troubleshooting, check the supported-browser table for the Puppeteer version installed in your project rather than assuming the newest browser listed online is the one your release expects. The Puppeteer supported-browser page shown for v25.12.0 maps that release to Chrome for Testing 154.0.8037.57 and Firefox 156.0.1; those are version-specific mappings, not universal requirements. See Puppeteer’s supported browsers table.
Rank #4
- Brand: Wiley
- Set of 2 Volumes
- A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers
Troubleshoot an empty or unexpected listing
- No browsers listed: Confirm the cache path and account. The installation may have used another cache directory, or the browser may be managed separately.
- Using
puppeteer-core: This package does not download Chrome. Provide a separately managed browser at launch withexecutablePathorchannel; do not expect a downloaded browser in its cache by default. - The script checks the wrong directory: Pass the directory containing the managed installs to
getInstalledBrowsers({cacheDir}). - You need to know which browser will start: A cache inventory does not identify a system executable selected at launch. Inspect your launch configuration and, once launched, query
browser.version(). - A version mapping looks wrong: Compare against the supported-browser table for your exact Puppeteer release. The documented mapping changes with releases.
Or skip the browser setup
If your goal is to capture a webpage rather than inspect or launch a local browser, ScreenshotNeo provides a website screenshot API and MCP server. One GET request returns an image or PDF. For example, with cURL:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for parameters and output options. It accepts cookie banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; bot checks, blank pages, and failed loads are not billed. Its MCP server lets AI agents take screenshots, and the free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Sign up for free.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Frequently Asked Questions
Does the browsers list command show Firefox too?
It lists browser builds in the managed cache; Puppeteer supports Chrome and Firefox. Which builds appear depends on what has been installed in that cache.
Best Value
Can I list all browsers installed on my computer with Puppeteer?
No. Puppeteer’s CLI and cache API cover the specified managed cache, not a complete operating-system inventory.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




