The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Use puppeteer-core when you want Puppeteer to control Chrome already installed on your Mac. Set channel: 'chrome' to let Puppeteer look for a regular Chrome installation in a recognized location, or set executablePath to the exact browser executable when you need to choose it explicitly. With puppeteer-core, one of those options is required.
Choose the right Puppeteer package
The package determines whether Puppeteer supplies a browser or expects you to manage one:
| Package | Browser behavior | When to use it |
|---|---|---|
puppeteer |
Normally downloads a recent Chrome for Testing build. | Use it when you want Puppeteer to manage its browser installation. |
puppeteer-core |
Does not download Chrome. | Use it when you already have Chrome installed and want to select or manage the browser yourself. |
If you choose puppeteer-core, give launch() either a channel or an executablePath. Installing puppeteer instead is not the same as pointing Puppeteer at system Chrome: its normal behavior is to download Chrome for Testing.
Install Puppeteer Core
From your Node.js project directory, install the package with your package manager:
#1 Best Overall
- SUPERCHARGED BY M5 — The 14-inch MacBook Pro with M5 brings next-generation speed and powerful on-device AI to personal, professional, and creative tasks. Featuring all-day battery life and a breathtaking Liquid Retina XDR display with up to 1600 nits peak brightness, it’s pro in every way.*
- HAPPILY EVER FASTER — Along with its faster CPU and unified memory, M5 features a more powerful GPU with a Neural Accelerator built into each core, delivering faster AI performance. So you can blaze through demanding workloads at mind-bending speeds.
- BUILT FOR APPLE INTELLIGENCE — Apple Intelligence is the personal intelligence system that helps you write, express yourself, and get things done effortlessly. With groundbreaking privacy protections, it gives you peace of mind that no one else can access your data — not even Apple.*
- ALL-DAY BATTERY LIFE — MacBook Pro delivers the same exceptional performance whether it’s running on battery or plugged in.
- APPS FLY WITH APPLE SILICON — All your favorites, including Microsoft 365 and Adobe Creative Cloud, run lightning fast in macOS.*
npm install puppeteer-core
This installs the control library, not Chrome. Confirm that Chrome is installed on the Mac where the script will run. If the project already uses another package manager, use its equivalent install command and check that installation scripts have not been disabled in a way that affects your chosen setup.
Launch Chrome with a recognized channel
When regular Chrome is installed in a location Puppeteer recognizes, channel: 'chrome' is the simplest option. This ES module example opens a page, prints its title, and closes the browser even if navigation or title retrieval fails:
import puppeteer from 'puppeteer-core';
const browser = await puppeteer.launch({
channel: 'chrome',
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();
}
Save it as, for example, capture.mjs and run node capture.mjs. For a CommonJS project, adapt the import to the module system configured by that project rather than mixing CommonJS and ES module syntax. The headless option makes the browser run without a visible window; remove it or set it to false when you need to observe the browser during debugging.
Rank #2
- FAST RUNS IN THE FAMILY — The 16-inch MacBook Pro with the M5 Pro or M5 Max chip brings next-generation speed and powerful on-device AI to personal, professional, and creative tasks. With all-day battery life, double the starting storage,* and a breathtaking Liquid Retina XDR display, it’s pro in every way.*
- BUCKLE UP — Along with a next-generation CPU, faster unified memory, and up to 2x faster SSD storage,* M5 Pro and M5 Max feature a more powerful GPU with a Neural Accelerator built into each core, delivering faster AI performance and on-device training capabilities. So you can blaze through demanding workloads at mind-bending speeds.
- BUILT FOR AI — Apple silicon, and every major component that powers it, is designed to run demanding on-device AI workloads like LLM inference and training. And Apple Intelligence helps you write, express yourself, and get things done effortlessly with groundbreaking privacy protections at every step.*
- ALL-DAY BATTERY LIFE — MacBook Pro delivers the same exceptional performance whether it’s running on battery or plugged in.*
- MACOS RUNS APPS FAST — All your go-to apps run lightning fast in macOS, including built-in apps like FaceTime and Messages. Plus, built-in virus protection and free software updates help keep your Mac running smoothly and securely.
The channel option asks Puppeteer to locate regular Chrome in a known system location. It does not let you name an arbitrary application directory, and discovery may fail if Chrome is installed somewhere Puppeteer does not recognize.
Launch a specific Chrome executable
Use executablePath when Chrome is in a nonstandard location, discovery fails, or the project must select a particular browser binary. The value must point to the executable inside the app bundle, not merely to the .app directory or to /Applications.
import puppeteer from 'puppeteer-core';
const browser = await puppeteer.launch({
executablePath: '/actual/path/to/Chrome',
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();
}
Replace /actual/path/to/Chrome with the verified executable path on the target Mac. There is no universal path established for every macOS installation, so do not copy a path from another machine without checking that the file exists and is executable there. Avoid setting both channel and executablePath; choose one browser-selection method for a launch.
Rank #3
- FAST RUNS IN THE FAMILY — The 16-inch MacBook Pro with the M5 Pro or M5 Max chip brings next-generation speed and powerful on-device AI to personal, professional, and creative tasks. With all-day battery life, double the starting storage,* and a breathtaking Liquid Retina XDR display, it’s pro in every way.*
- BUCKLE UP — Along with a next-generation CPU, faster unified memory, and up to 2x faster SSD storage,* M5 Pro and M5 Max feature a more powerful GPU with a Neural Accelerator built into each core, delivering faster AI performance and on-device training capabilities. So you can blaze through demanding workloads at mind-bending speeds.
- BUILT FOR AI — Apple silicon, and every major component that powers it, is designed to run demanding on-device AI workloads like LLM inference and training. And Apple Intelligence helps you write, express yourself, and get things done effortlessly with groundbreaking privacy protections at every step.*
- ALL-DAY BATTERY LIFE — MacBook Pro delivers the same exceptional performance whether it’s running on battery or plugged in.*
- MACOS RUNS APPS FAST — All your go-to apps run lightning fast in macOS, including built-in apps like FaceTime and Messages. Plus, built-in virus protection and free software updates help keep your Mac running smoothly and securely.
Decide between channel and executablePath
| Consideration | channel: 'chrome' |
executablePath |
|---|---|---|
| Chrome location | Best when Chrome is in a recognized system location. | Works when you know the exact executable path, including for a nonstandard installation. |
| Browser selection | Convenient discovery; less explicit control over which binary is selected. | Explicitly selects the executable your project names. |
| Portability across Macs | Can avoid hard-coding a machine-specific path, but depends on discovery. | Requires the configured path to be valid on each target Mac. |
| Version compatibility | Not guaranteed for every external Chrome version. | Not guaranteed for every external Chrome version. |
The two options change how Puppeteer finds Chrome, not the compatibility guarantee. Puppeteer says it works best with its corresponding Chrome for Testing browser and does not guarantee that other Chrome versions will work. Its launch options documentation cautions: “Puppeteer is only guaranteed to work with the bundled browser, so use this setting at your own risk.” Check the launch options and compatibility guidance for the Puppeteer version in your project, because the documentation is updated over time. Puppeteer’s launch API suggests Chrome Canary or Dev Channel for users who prefer regular Google Chrome, but this is not a promise of compatibility for every release.
Use the browser installed on the machine that runs the script
Browser selection happens where Node.js executes. If the script runs locally, the selected Chrome must be installed on that Mac. If it runs in a CI job, remote host, container, or another developer’s Mac, your local Chrome installation and path do not carry over automatically. Configure the browser on the execution machine and make sure its chosen channel or executable path is valid in that environment.
Free tools Windows power users keep installed
One-click scans. No signup required.
A hard-coded path can make a controlled deployment more deterministic, but creates a configuration requirement for every machine. Channel discovery avoids storing a path, but depends on Chrome being in a location Puppeteer recognizes. In either case, record the Puppeteer version and browser version used for a project so a failure can be diagnosed without guessing which pairing changed.
Rank #4
- SUPERCHARGED BY M5 — The 14-inch MacBook Pro with M5 brings next-generation speed and powerful on-device AI to personal, professional, and creative tasks. Featuring all-day battery life and a breathtaking Liquid Retina XDR display with up to 1600 nits peak brightness, it’s pro in every way.*
- HAPPILY EVER FASTER — Along with its faster CPU and unified memory, M5 features a more powerful GPU with a Neural Accelerator built into each core, delivering faster AI performance. So you can blaze through demanding workloads at mind-bending speeds.
- BUILT FOR APPLE INTELLIGENCE — Apple Intelligence is the personal intelligence system that helps you write, express yourself, and get things done effortlessly. With groundbreaking privacy protections, it gives you peace of mind that no one else can access your data — not even Apple.*
- ALL-DAY BATTERY LIFE — MacBook Pro delivers the same exceptional performance whether it’s running on battery or plugged in.
- APPS FLY WITH APPLE SILICON — All your favorites, including Microsoft 365 and Adobe Creative Cloud, run lightning fast in macOS.*
Troubleshoot launch and navigation failures
Puppeteer says it cannot find Chrome
- If you installed
puppeteer-core, remember that it does not download Chrome. Install Chrome separately, then configurechannelor its actual executable path. - If you intended to use
channel: 'chrome', check that regular Chrome is in a recognized location. If discovery still fails, find and verify the executable, then switch toexecutablePath. - If you intended to use Puppeteer’s managed browser, check whether installation scripts were blocked. The installation guide provides
npx puppeteer browsers installas a manual way to install the managed browser.
The explicit path does not work
- Check that the path identifies the browser executable inside the Chrome application bundle, rather than the bundle directory or its parent.
- Verify the file exists and can be executed on the Mac running Node.js. A path from another Mac may not match that machine’s installation.
- Use one method at a time: remove
channelwhen selecting withexecutablePath, or remove the explicit path when using channel discovery.
Chrome starts but Puppeteer operations fail
A successful launch does not establish that an external Chrome version is fully compatible with your Puppeteer release. Record the exact error, Chrome version, Puppeteer version, and whether launch used channel or executablePath. Enable Puppeteer’s launch output where useful and reduce the script to a minimal launch-and-close case before investigating page-specific behavior.
Downloaded Chrome for Testing will not launch on macOS
A Chrome for Testing-specific macOS note recommends removing an offending attribute with the following command when a downloaded Chrome for Testing binary cannot launch after being downloaded using a browser:
xattr -cr 'Google Chrome for Testing.app'
This is conditional guidance for that downloaded Chrome for Testing scenario. It is not a general fix for ordinary Chrome installations or every launch error; confirm the binary and situation match before applying it.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Best Value
- SUPERCHARGED BY M5 — The 14-inch MacBook Pro with M5 brings next-generation speed and powerful on-device AI to personal, professional, and creative tasks. Featuring all-day battery life and a breathtaking Liquid Retina XDR display with up to 1600 nits peak brightness, it’s pro in every way.*
- HAPPILY EVER FASTER — Along with its faster CPU and unified memory, M5 features a more powerful GPU with a Neural Accelerator built into each core, delivering faster AI performance. So you can blaze through demanding workloads at mind-bending speeds.
- BUILT FOR APPLE INTELLIGENCE — Apple Intelligence is the personal intelligence system that helps you write, express yourself, and get things done effortlessly. With groundbreaking privacy protections, it gives you peace of mind that no one else can access your data — not even Apple.*
- ALL-DAY BATTERY LIFE — MacBook Pro delivers the same exceptional performance whether it’s running on battery or plugged in.
- APPS FLY WITH APPLE SILICON — All your favorites, including Microsoft 365 and Adobe Creative Cloud, run lightning fast in macOS.*
The browser opens but the page does not reach the expected state
Separate browser startup from page navigation in your logs. The sample waits for domcontentloaded, which means the initial HTML has been parsed; it does not guarantee that every image, client-side request, or late-loading component has finished. Choose a wait condition that matches what your script needs, and inspect the navigation error separately from launch errors.
Consider the maintenance and reliability trade-offs
- External Chrome updates: A regular Chrome installation can update independently of your Node dependencies. A browser update may change behavior even when your Puppeteer package did not change.
- Managed Chrome: The default
puppeteerpackage installs Chrome for Testing, the browser Puppeteer says it works best with. This adds browser installation and storage requirements but keeps the browser choice tied more closely to Puppeteer’s expected pairing. - Machine-specific paths: Explicit paths are clear but can make a script fail on another Mac. Keep a path configurable when machines may differ, and validate it before launch.
- Package-manager scripts: If install scripts are disabled, a managed browser download may not happen. For system Chrome with
puppeteer-core, this is separate from the browser installation itself.
For repeatable automation, choose whether your priority is using the Chrome already maintained on each Mac or using Puppeteer’s managed browser. Do not assume that a successful run on one Chrome/Puppeteer combination guarantees the same result after either component updates.
Or skip the browser setup
If your goal is to get a website screenshot rather than automate a browser, ScreenshotNeo offers a one-request screenshot API and an MCP server for AI agents. Its request accepts a URL and can return an image or PDF; see the API documentation for request parameters and output options.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp
ScreenshotNeo accepts cookie or consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each of those steps can be turned off. Bot checks and CAPTCHAs, 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 take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots. Sign up for ScreenshotNeo’s free plan.
Recommended Free Tools
FAQ
Does Puppeteer support Chrome installed from the Mac App Store?
The sources cited here do not establish a specific compatibility guarantee for a particular Chrome distribution channel. The practical requirement is that the chosen channel finds the installation or that executablePath points to its actual browser executable; Puppeteer does not guarantee every external Chrome version.
Can I use a Chrome profile from my normal browsing session?
The launch guidance covered here establishes browser selection, not profile-sharing behavior. Avoid assuming a profile is safe to reuse in concurrent automation; use Puppeteer’s version-specific launch documentation to configure and manage a profile for your use case.
Does Chrome have to be open before the script runs?
No. Puppeteer’s launch() starts the selected browser process; the configured Chrome installation must be available to the machine running the script.
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.




