Puppeteer’s browser-management code detects the host platform by reading Node.js’s os.platform() and os.arch(), then maps those values to a BrowserPlatform used to select browser downloads. This is not detection of a web page’s user-agent or the browser’s claimed identity. The mapping described here reflects Puppeteer’s source checked on October 3, 2026; it may change in later versions.
What Puppeteer checks
The current @puppeteer/browsers implementation reads three Node.js operating-system values: os.platform(), os.arch(), and, for Windows ARM64, os.release(). It uses them to choose a platform target for browser installation. The source is Puppeteer’s detectPlatform.ts; because that URL tracks the mutable main branch, the mapping can differ from older or future releases.
The detected value concerns the machine or runtime environment executing Node.js. It does not inspect a page’s user-agent string, determine what a website sees, or independently guarantee that a particular executable can run.
How the platform values map
The current mapping in Puppeteer’s source is:
| Node platform | Architecture or condition | BrowserPlatform result |
|---|---|---|
darwin |
arm64 |
MAC_ARM |
darwin |
Any other architecture | MAC |
linux |
arm64 |
LINUX_ARM |
linux |
Any other architecture | LINUX |
win32 |
x64 |
WIN64 |
win32 |
arm64 and Windows release 10.0.22000 or greater |
WIN64 |
win32 |
Other Windows case, including ARM64 below that release threshold | WIN32 |
| Any other platform string | Not handled by the mapping | No value (undefined) |
The source treats Windows release 10.0.22000 or later as Windows 11 for this decision. Its comments explain that Windows 11 on ARM supports x64 emulation. The macOS and Linux “other architecture” branches describe the code’s fallback mapping; they are not a promise that every architecture in those branches is supported by every browser archive.
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 minute#1 Best Overall
How detection affects browser installation
BrowserPlatform represents the OS-and-architecture target used to choose a browser archive. In the Puppeteer browsers API documentation (version 25.12.0), installation options describe platform as the platform the browser should suit and label its default “Auto-detected.” Where the relevant API accepts it, you can set a platform explicitly instead of relying on inference. Confirm that the chosen archive and the machine where it will run are compatible.
Platform detection and executable selection are separate parts of the workflow. The platform value helps select a download target; it does not decide every executable Puppeteer will launch.
Rank #2
- HTML CSS Design and Build Web Sites
- Comes with secure packaging
- It can be a gift option
Standard Puppeteer installation
As described in the installation guide, standard puppeteer installation downloads a compatible Chrome for Testing build and a separate chrome-headless-shell binary. Puppeteer configuration can skip browser downloads or set an executable path; see the configuration interface.
Using a custom browser or puppeteer-core
With puppeteer-core, you manage the browser installation and provide an executable path or a Chrome release channel. Launch options also allow an executable path or a channel found at a standard system location; see the LaunchOptions interface. Changing the executable path does not change what platform detection returned.
Recommended Free Tools
Rank #3
Check a platform mismatch
When an installation or launch fails with a platform mismatch, compare the inputs and overrides rather than assuming Puppeteer detected the browser incorrectly.
- Print the Node runtime values:
node -p "require('node:os').platform() + ' ' + require('node:os').arch() + ' ' + require('node:os').release()". - Compare the platform and architecture with the mapping above. For Windows ARM64, check whether the reported release is at least
10.0.22000. - Check the install options for an explicit
platformthat overrides auto-detection. - Check whether configuration skips downloads or sets an executable path, and whether launch options specify an executable path or channel.
- Verify that the requested browser build and executable suit the runtime environment. An explicit platform can select a different download target, but it cannot make an incompatible binary runnable.
Unsupported platforms and practical limits
If Node reports a platform string not handled by the mapping, detection can return no value. An installation workflow that needs an inferred target may then report that it cannot determine the platform or download a binary for the current platform. Use an explicit platform only if the relevant API supports it and you have verified the archive and runtime compatibility. The official API and implementation document mapping and configuration, not platform market share or a compatibility percentage.
Rank #4
- Brand: Wiley
- Set of 2 Volumes
- A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers
Or skip the browser setup
If your goal is to obtain a website screenshot rather than manage a local Puppeteer browser, ScreenshotNeo offers a screenshot API and MCP server. One GET request can return an image or PDF; the API accepts the URL and an access key:
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 banners, newsletter popups and chat widgets before capture; bot checks, blank pages and failed loads are not billed. Its MCP server lets AI agents take screenshots. 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.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Frequently Asked Questions
Does Puppeteer detect the browser’s user-agent?
No. This platform detection reads Node.js host operating-system values to select a browser download target; it does not inspect a page’s user-agent.
Best Value
Can I override the detected platform?
The browser installation API accepts an explicit platform where its options support one. The selected archive and the runtime still need to be compatible.
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.




