To list browsers downloaded into Puppeteer’s browser cache, run npx @puppeteer/browsers list. For a script, use getInstalledBrowsers({cacheDir}) from @puppeteer/browsers. Both methods inspect a chosen Puppeteer browser-cache directory—not every browser installed on your computer.
List Puppeteer’s cached browsers from the command line
Run the official browser-management CLI command:
npx @puppeteer/browsers list
The command lists browser installations found in the cache it checks, including metadata such as browser type, build ID, platform, executable path, and installation root. The CLI is the quickest option for a one-time manual check. See the Puppeteer browser-management documentation for the command and its options.
As an Amazon Associate I earn from qualifying purchases.
Check the cache from JavaScript
Use getInstalledBrowsers when another script or diagnostic needs the installed-browser metadata. Pass the root directory of the cache you want to inspect:
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →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);
Install or make the @puppeteer/browsers package available to the project before running this example. The result is an array. Each installed-browser record includes the browser, build ID, platform, executable path, and installation root. The executablePath is the browser executable; path is the installation root. The API reference documents these fields and the getInstalledBrowsers function: Puppeteer browser API.
#1 Best Overall
Make sure you are inspecting the cache Puppeteer actually uses
Puppeteer documents ~/.cache/puppeteer as its default browser cache. The environment variable PUPPETEER_CACHE_DIR can set a different location. If you pass a custom cacheDir to the API—or configured a custom cache for installation—inspect that same directory. Looking in a different cache can return no entries even when a browser was downloaded elsewhere. See Puppeteer configuration.
The listing is limited to the cache directory being inspected. It does not inventory browsers installed elsewhere by an operating-system package manager, a manual download, or another application.
Rank #2
Why the list may be empty
- The project uses
puppeteer-core. This package does not download Chrome. A browser may still be available separately, but it will not appear in a Puppeteer-managed download cache unless installed there. - Install scripts were blocked. Puppeteer normally downloads Chrome for Testing and
chrome-headless-shellduring installation, but package managers can block install scripts, preventing those downloads. - The cache path is different. Check the project’s Puppeteer configuration and
PUPPETEER_CACHE_DIR, then list that directory rather than assuming the default. - The browser was installed outside Puppeteer’s cache. The cache listing does not search the entire system.
These behaviors are described in the Puppeteer installation guide. An empty listing therefore does not prove that the computer has no browser installed.
Free tools Windows power users keep installed
One-click scans. No signup required.
Check for a system Chrome separately
If your question is whether a system Chrome executable is available, rather than what is in Puppeteer’s cache, use the separate computeSystemExecutablePath lookup from @puppeteer/browsers. This is a path lookup, not a system-wide browser enumeration; the documentation says system-browser launching is available only for Chrome/Chromium. Follow the API reference for the required browser, platform, and channel options: Puppeteer browser API.
Confirm that a listed browser matches your Puppeteer version
Finding an executable in the cache does not by itself establish that it is compatible with the Puppeteer release in your project. Puppeteer’s supported-browser guide provides version mappings for supported Chrome and Firefox builds. Check the compatibility table for the installed Puppeteer release before treating a cached browser as the expected launch target: Supported browsers.
Troubleshooting
| Symptom | Likely cause | What to check |
|---|---|---|
| The CLI or API returns no browser entries. | The inspected cache is empty, is not the configured cache, or automatic downloads did not run. | Check PUPPETEER_CACHE_DIR, the configured cache directory, and whether install scripts were allowed. Confirm whether the project uses puppeteer-core. |
| The listing shows a browser, but launch still fails. | The launch configuration may point elsewhere, or the cached browser may not match the Puppeteer version. | Compare the reported executable path with the path your launch code uses, then consult the supported-browser mapping for your Puppeteer release. |
| You need to know whether Chrome is installed outside the cache. | The list command and getInstalledBrowsers only inspect the cache you provide. |
Use the documented system Chrome path lookup, computeSystemExecutablePath; it is not a general inventory of all browsers. |
Or skip the browser setup
If you need a screenshot rather than a local Puppeteer browser inventory, ScreenshotNeo is a website screenshot API and MCP server. One GET request returns an image or PDF, without requiring you to set up a browser for the capture.
Quick Recap
Best Value
Rank #4
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 request options. It accepts cookie and consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each of those steps can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and the response identifies the page verdict and billing status in headers. Its MCP server provides screenshot and PDF tools for AI agents. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000.
Sign up for ScreenshotNeo’s free plan.
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.




