Use resolveBuildId(browser, platform, tag) from @puppeteer/browsers to turn a channel or release selector into a concrete browser build ID for a particular platform. Use that same browser, platform, ID, and cache directory to install the browser and compute its executable path. For repeatable automation, save the resolved ID rather than relying on a moving channel such as stable.
Resolve a build ID programmatically
Install @puppeteer/browsers in your project, then resolve the selector for the operating system and architecture where the browser will run. The API returns a Promise<string>; the browser and platform are explicit inputs, so do not assume a build selected for one platform can be used on another.
As an Amazon Associate I earn from qualifying purchases.
import {Browser, BrowserPlatform, resolveBuildId} from '@puppeteer/browsers';
const platform = BrowserPlatform.LINUX; // choose the target OS/architecture
const buildId = await resolveBuildId(Browser.CHROME, platform, 'stable');
console.log(buildId);
Replace BrowserPlatform.LINUX with the target platform constant and Browser.CHROME with the browser you need. The third argument accepts a string or BrowserTag, such as the documented stable selector. See the resolveBuildId API reference for current signatures and supported values.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsInstall the resolved browser and find its executable
The returned ID identifies the specific build to install and cache. Keep the browser, build ID, platform, and cache directory aligned when installing and calculating its executable path.
#1 Best Overall
import {
Browser,
BrowserPlatform,
install,
computeExecutablePath,
} from '@puppeteer/browsers';
const browser = Browser.CHROME;
const platform = BrowserPlatform.LINUX;
const cacheDir = '/path/to/puppeteer-cache';
const buildId = '...'; // result of resolveBuildId
const installed = await install({browser, buildId, platform, cacheDir});
const executablePath = computeExecutablePath({browser, buildId, platform, cacheDir});
console.log(installed.executablePath);
console.log(executablePath);
install() resolves to an InstalledBrowser, which includes the build ID and executable path. You can use the path from that result, or calculate it with computeExecutablePath() when you need to derive the expected location. Consult the InstallOptions reference and computeExecutablePath reference for the documented option fields.
To launch a manually managed binary with Puppeteer, pass the path as executablePath to puppeteer.launch(). Puppeteer cautions that only its bundled browser is guaranteed to work; a custom binary is a compatibility choice you manage.
Rank #2
Choose a channel, a pinned build, or Puppeteer’s managed browser
Resolve a channel for convenience
A selector such as stable is useful when you want the current channel build for a specified platform. Its result can change as the channel advances, so resolving it afresh on each deployment does not by itself make deployments repeatable.
Pin the resolved ID for repeatable automation
For a controlled build, resolve the selector once, record the returned ID together with the platform, and use those values in your build or deployment configuration. This provides a concrete binary target instead of depending on a moving alias. The @puppeteer/browsers CLI is another option for documented selectors and versions; examples include npx @puppeteer/browsers install chrome@stable, an exact Chrome for Testing version, and a milestone selector. See the browser management guide for current CLI usage.
Let Puppeteer manage its default browser
The puppeteer package automatically downloads a recent Chrome for Testing browser during installation. puppeteer-core does not download Chrome; if you use it, or otherwise manage the browser yourself, provide an executablePath or a standard-location channel when launching. Puppeteer’s supported browsers table maps Puppeteer releases to supported browser versions. Check the live table for your installed Puppeteer release; if an exact release is absent, the documentation advises using the browser supported by the immediately prior listed version.
Or skip the browser setup
If the goal is a screenshot rather than controlling a local browser, ScreenshotNeo offers a website screenshot API and MCP server. A single GET request can return a PNG, JPEG, WebP, or PDF; consent banners, newsletter popups, and chat widgets are removed before capture, and bot checks, blank pages, timeouts, failed loads, and cache hits are not billed. AI agents can use its MCP tools for screenshots, page information, and PDFs. Here is the one-call cURL example; see the API documentation for parameters and response details.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Sign up for 1,000 free screenshots a month, with no card required.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Rank #4
Troubleshoot resolution, installation, and launch
- No browser downloaded during package installation: some package managers block install scripts. Run Puppeteer’s browser-install command manually or allow the Puppeteer postinstall script, as described in the installation guide.
- The executable path points to a missing file: check that installation and path computation use the same
cacheDir, browser, build ID, and platform. Puppeteer’scacheDirectoryconfiguration andPUPPETEER_CACHE_DIRenvironment variable can affect where managed browsers are stored; see configuration. - Puppeteer launches another browser or cannot find the intended one: inspect the launch
executablePath,PUPPETEER_EXECUTABLE_PATH, andchannelsettings. A channel points to a regular Chrome installation in a known system location, rather than the specific cached binary selected by your build ID. See the launch options. - A custom browser behaves differently: confirm its platform and version against the supported-browser table for your Puppeteer release. Custom executable paths are supported, but the bundled browser is the one Puppeteer guarantees.
- A mirror or custom provider supplied the browser: Puppeteer does not officially support custom providers. If you choose one, you are responsible for validating compatibility, testing, and maintenance; do not assume it behaves like the default provider.
Keep platform and cache choices explicit
The build ID does not stand alone: it is used with the browser and platform to install and locate the binary in a cache. Resolve for the machine that will run the browser, and make the cache directory consistent across install and launch configuration. A Linux executable path should not be copied into macOS or Windows setup. When debugging, compare the actual installed browser, resolved ID, platform, cache configuration, and launch override rather than changing the ID alone.
Frequently Asked Questions
Does resolveBuildId return a string or an object?
It resolves asynchronously to a string containing the build ID.
Best Value
- Used Book in Good Condition
Does puppeteer-core install Chrome automatically?
No. Unlike the puppeteer package, puppeteer-core leaves browser installation and selection to the caller.
Can I use a custom executablePath with Puppeteer?
Yes, but Puppeteer only guarantees compatibility with its bundled browser. Check the supported-browser table for your Puppeteer release before using a different binary.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteQuick 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.




