October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk5 min

How to Use System Chromium with Puppeteer Without Downloading Chrome

Install Chromium separately, prevent Puppeteer’s automatic browser download, and launch with the executable path confirmed on your target system.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To stop Puppeteer from downloading its bundled browser, install Chromium separately and use puppeteer-core, or keep puppeteer and set its browser download to skip. Either way, supply the installed browser’s actual executable path when launching. Skipping the download does not install Chromium, and Puppeteer does not guarantee compatibility with arbitrary system Chromium versions.

Choose how Puppeteer should handle the browser

The default puppeteer package downloads Chrome for Testing during installation. Its installation guide also describes downloading a chrome-headless-shell binary. If you want to manage the browser yourself, there are two routes:

As an Amazon Associate I earn from qualifying purchases.

Choice What it does Use it when
puppeteer-core Does not download Chrome; browser management is left to your project. You want to control browser installation and version explicitly.
puppeteer with downloads skipped Keeps the regular package but prevents its automatic browser download. You want the full package while supplying your own browser executable.

Both options require a browser installed separately and selected at launch. Puppeteer’s installation guide explains the package distinction.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Install Chromium outside Puppeteer

Install Chromium through the operating system’s package manager or include it in your deployment image. The package name and executable path depend on the operating system, distribution, and installation method; do not assume a single path works everywhere. Confirm the executable on the machine or container where Puppeteer will run.

For Linux, the Puppeteer troubleshooting guide uses /usr/bin/chromium-browser as an example of an existing Chromium path, not as a universal default. Linux launches can also fail when shared-library dependencies are missing. The guide cautions that Chrome does not support Alpine out of the box. See Puppeteer troubleshooting for platform-specific dependency guidance.

Option 1: use puppeteer-core

Install the core package rather than the default package:

npm install puppeteer-core

Then provide the real Chromium path. This runnable example expects PUPPETEER_EXECUTABLE_PATH to be set to that path in the runtime environment.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
import puppeteer from 'puppeteer-core';

const executablePath = process.env.PUPPETEER_EXECUTABLE_PATH;
if (!executablePath) {
  throw new Error('Set PUPPETEER_EXECUTABLE_PATH to the installed Chromium executable');
}

const browser = await puppeteer.launch({
  executablePath,
  headless: true,
});

try {
  const page = await browser.newPage();
  await page.goto('https://example.com', { waitUntil: 'domcontentloaded' });
  console.log(await page.title());
} finally {
  await browser.close();
}

Alternatively, the launch API accepts a supported Chrome channel; for a separately installed Chromium binary, an explicit executablePath is usually the clearest choice. puppeteer-core is driven through its programmatic interface: do not rely on the full package’s configuration files or environment defaults to select the browser. See the launch API.

Option 2: keep puppeteer and skip its download

Set an environment variable

Set PUPPETEER_SKIP_DOWNLOAD=true during installation. For example, in a POSIX shell:

PUPPETEER_SKIP_DOWNLOAD=true npm install puppeteer

In CI or a deployment system, configure the same variable in the environment used for the package installation. It prevents the automatic browser download; it does not install Chromium for you.

Set Puppeteer configuration

Alternatively, add a project configuration file such as .puppeteerrc.js:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
export default {
  chrome: { skipDownload: true },
};

Puppeteer’s configuration interface defines skipDownload and notes that environment variables can override configuration. If you change download configuration, run your project’s install workflow so the setting applies. The configuration API also documents browser-specific skip settings and executablePath: configuration interface.

At launch, select the separately installed browser rather than relying on Puppeteer to find it:

import puppeteer from 'puppeteer';

const executablePath = process.env.PUPPETEER_EXECUTABLE_PATH;
if (!executablePath) {
  throw new Error('Set PUPPETEER_EXECUTABLE_PATH to the installed Chromium executable');
}

const browser = await puppeteer.launch({
  executablePath,
  headless: true,
});

try {
  const page = await browser.newPage();
  await page.goto('https://example.com', { waitUntil: 'domcontentloaded' });
  console.log(await page.title());
} finally {
  await browser.close();
}

Check compatibility and platform requirements

Puppeteer says it works best with the Chrome for Testing version it downloads by default and does not guarantee it will work with another browser version. System Chromium can be a valid choice, but test the exact Puppeteer and Chromium versions together, including the page behavior your application depends on. The compatibility warning is in the launch documentation.

Requirements are version-sensitive. Puppeteer’s current system requirements page, which identifies documentation version 25.12.0, lists Node 22.12+ and Chrome for Testing support for Windows x64, macOS x64/arm64, Debian/Ubuntu Linux x64/arm64, and openSUSE/Fedora Linux x64/arm64. These describe the documented Chrome for Testing support matrix, not a promise that every system Chromium build is supported. Check the system requirements for the Puppeteer version you install.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Understand the download and deployment trade-off

Skipping Puppeteer’s browser download avoids that installation-time transfer, but makes browser provisioning your responsibility. You must ensure the executable exists in each runtime environment, its OS dependencies are present, and upgrades remain compatible with your Puppeteer version. Conversely, the bundled Chrome for Testing is the browser version against which Puppeteer’s compatibility guarantee is made.

Puppeteer’s installation guide gives approximate default browser download sizes of about 170 MB for macOS, 282 MB for Linux, and 280 MB for Windows. They are guide estimates, not fixed sizes for every release or network transfer. See the installation guide. If you want to manage browser binaries with Puppeteer’s browser tooling, review its browser management API and provider caveats.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot common failures

  • Puppeteer still downloads a browser: confirm PUPPETEER_SKIP_DOWNLOAD=true is set in the environment during installation, or that the configuration file is in the project and the install workflow was rerun. Check for an environment override.
  • Launch reports a missing executable: verify the path exists in the actual runtime (including inside the container), is executable, and points to the browser binary rather than a directory or unrelated wrapper. Set executablePath to that confirmed path.
  • Chromium exists but will not start on Linux: inspect launch output and install the distribution’s missing shared-library dependencies. The required libraries vary by OS and image; consult the troubleshooting guide. Alpine needs particular care because Chrome is not supported there out of the box.
  • Browser starts but automation behaves incorrectly: check the Chromium and Puppeteer versions together and test the features your app uses. Puppeteer’s compatibility guarantee is for its bundled browser, not arbitrary system Chromium.
  • Configuration appears ignored: verify the package is puppeteer, not puppeteer-core, which does not apply Puppeteer configuration files in the same way. Confirm the configuration is being read during installation and that environment settings are not overriding it.

Or skip the browser setup

If your actual task is to capture a website screenshot or PDF rather than automate a local browser, ScreenshotNeo provides a screenshot API and MCP server. A single GET request can return an image or PDF without installing Chromium in your project. Its options include full-page captures, CSS-selector element capture, device and viewport settings, PDF controls, waits, custom headers and cookies, request blocking, caching, and bulk capture.

Example cURL request (replace the target URL and API key):

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp

See the ScreenshotNeo API documentation for request parameters. Cookie banners, popups, and chat widgets are removed before the shot; bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card, and paid plans start at $5 for 3,000. Sign up for free.

Frequently Asked Questions

Does PUPPETEER_SKIP_DOWNLOAD install Chromium?

No. It only prevents Puppeteer’s automatic browser download; install Chromium separately and point Puppeteer to it.

Can I use Google Chrome instead of Chromium?

Puppeteer’s launch API can select a supported Chrome channel or an executable path. The compatibility guarantee applies to Puppeteer’s bundled browser, so test any independently installed browser version.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.