Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk4 min

How the Puppeteer BrowserLauncher Works

Puppeteer’s BrowserLauncher is the abstraction behind browser launch: learn what launch() returns, how options select the binary and headless mode, and what compatibility caveats matter.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

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

Puppeteer’s BrowserLauncher.launch(options) starts a browser and resolves to a Browser instance. Its public role is to provide a configurable launch interface—not a supported class for third-party code to instantiate or extend. The choices that matter most are which browser binary Puppeteer starts, which headless mode it uses, and how the process is configured.

What BrowserLauncher does

Puppeteer documents BrowserLauncher as an abstract launcher. Calling launch() returns a Promise<Browser>: once launch succeeds, the promise resolves to a Puppeteer Browser object that the application can use to control the browser.

As an Amazon Associate I earn from qualifying purchases.

The class constructor is internal. Treat the launcher as Puppeteer’s abstraction behind its launch API, not as a public extension point. For ordinary application code, use the documented launch API rather than constructing or subclassing BrowserLauncher. See the BrowserLauncher API reference and launch method reference.

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

How launch options shape the browser process

launch() accepts LaunchOptions, which extend connection options. They let the caller select a browser and binary, set launch arguments, choose headless behavior, configure the process environment and output, select a user-data directory, control signal handling and startup timeout, and choose pipe transport for Chrome. The exact option set and caveats depend on the installed Puppeteer version; check that version’s API reference before relying on a setting.

Decision What it controls Documented behavior or caution
Browser and binary Which browser family and executable Puppeteer launches. Defaults to Chrome. A channel locates a regular Chrome installation; executablePath specifies an executable directly. Compatibility with arbitrary installations is not guaranteed.
Headless mode Whether Chrome runs headless, in the separate shell mode, or visibly. true selects current Chrome headless; 'shell' selects chrome-headless-shell; false launches headful Chrome.
Arguments Additional browser command-line arguments and, when deliberately configured, changes to Puppeteer’s defaults. ignoreDefaultArgs can disable or filter default arguments. Puppeteer cautions that it should be used carefully.
Process behavior Environment, output streams, user-data directory, signal handling, timeout, and transport. Documented defaults include a 30-second startup timeout and enabled handling for SIGHUP, SIGINT, and SIGTERM. dumpio: true pipes browser stdout and stderr to Node.js streams.

The options reference documents devtools: true as forcing headful mode. These settings are launch-time controls; do not assume a configuration option changes installation-time browser downloads or vice versa. See LaunchOptions.

Choosing the browser binary

There are three common ways to determine which executable is used:

  • Use Puppeteer’s bundled browser. This is the default path and the compatibility choice Puppeteer tests against.
  • Use a Chrome channel. Set channel to ask Puppeteer to locate a regular Chrome installation at a known system path.
  • Use an explicit executable. Set executablePath to point at a particular browser binary.

The distinction matters particularly with puppeteer-core: its launch API requires either executablePath or channel. The configuration guide also describes installation-time configuration, including choosing an executable path or default browser and skipping browser downloads; documented environment variables can override configuration settings. Browser installation and the choice made in an individual launch() call are related, but they are not the same setting. See the installation guide and browser management documentation for installation and executable-path management.

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

Puppeteer’s InstallOptions documentation states: “Puppeteer only tests and guarantees compatibility with default binaries.” If you supply a custom executable, record its version and platform and test the browser behavior your project depends on. The browser-installation documentation says custom providers are not officially supported, leaving compatibility testing and maintenance to the user; do not assume a browser that launches is necessarily compatible with every Puppeteer feature. See InstallOptions.

Understanding Puppeteer’s headless modes

  • headless: true: launches Chrome’s current headless mode.
  • headless: 'shell': selects the separate chrome-headless-shell binary, an older headless implementation. It does not fully match regular Chrome, but the documentation notes it may be more performant for automation that does not need the complete Chrome feature set.
  • headless: false: launches headful Chrome.

For current behavior, do not carry forward the historical default: before Puppeteer v22, old headless was the default. The current headless guide distinguishes the modes above. Select shell only when its behavioral differences suit the automation, and validate the pages and browser features the task requires. See headless modes.

A practical way to choose launch settings

  1. Start with the binary. Prefer Puppeteer’s bundled browser when you want the compatibility path. Use channel or executablePath when you specifically need a system or custom browser, and test that combination.
  2. Choose the rendering mode. Use headless: true for current headless Chrome, headless: 'shell' only if its narrower compatibility is acceptable, or headless: false when the browser must be visible.
  3. Add only necessary process controls. Configure arguments, environment, timeout, output, user-data directory, signal handling, or pipe transport to meet a concrete requirement. Avoid changing default arguments without understanding what they do.
  4. Check the installed version’s reference. BrowserLauncher’s class reference is on Puppeteer’s next documentation branch, and the option details are version-sensitive. Confirm behavior against the stable documentation for the Puppeteer version in your project.

What the public documentation does—and does not—establish

The docs describe the launch contract, available configuration axes, and headless choices. They do not establish a universal internal sequence of private method calls for every release. The BrowserLauncher API reference is on the next branch, so its precise class-level description should be read as documentation for the forthcoming/current-next version rather than applied uncritically to every stable release. For a line-by-line implementation account, inspect the source and tests for the exact Puppeteer release you use.

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

Or skip the browser setup

If your goal is a website screenshot rather than controlling a browser process, ScreenshotNeo offers a screenshot API and MCP server. One GET request can return an image or PDF without you installing and launching Puppeteer:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
The SQL Programming Language: .
  • Used Book in Good Condition
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 removes cookie/consent banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots, and the free plan includes 1,000 screenshots a 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.

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
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

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.