Manage and launch browsers/drivers from a CLI or programmatically.
engines
in package.json
).xz
and bzip2
utilities are required to unpack .tar.gz
and .tar.bz2
archives.hdiutil
is required to unpack .dmg
archives.Use npx
to run the CLI:
# This will install and run the @puppeteer/browsers package.
# If it is already installed in the current directory, the installed
# version will be used.
npx @puppeteer/browsers --help
Built-in per-command help
will provide all documentation you need to use the CLI.
npx @puppeteer/browsers --help # help for all commands
npx @puppeteer/browsers install --help # help for the install command
npx @puppeteer/browsers launch --help # help for the launch command
npx @puppeteer/browsers clear --help # help for the clear command
npx @puppeteer/browsers list --help # help for the list command
You can specify the version of the @puppeteer/browsers
when using
npx
:
# Always install and use the latest version from the registry.
npx @puppeteer/browsers@latest --help
# Always use a specifc version.
npx @puppeteer/browsers@2.4.1 --help
# Always install the latest version and automatically confirm the installation.
npx --yes @puppeteer/browsers@latest --help
To clear all installed browsers, use the clear
command:
npx @puppeteer/browsers clear
To list all installed browsers, use the list
command:
npx @puppeteer/browsers list
Some example to give an idea of what the CLI looks like (use the --help
command for more examples):
# Download the latest available Chrome for Testing binary corresponding to the Stable channel.
npx @puppeteer/browsers install chrome@stable
# Download a specific Chrome for Testing version.
npx @puppeteer/browsers install chrome@116.0.5793.0
# Download the latest Chrome for Testing version for the given milestone.
npx @puppeteer/browsers install chrome@117
# Download the latest available ChromeDriver version corresponding to the Canary channel.
npx @puppeteer/browsers install chromedriver@canary
# Download a specific ChromeDriver version.
npx @puppeteer/browsers install chromedriver@116.0.5793.0
# On Ubuntu/Debian and only for Chrome, install the browser and required system dependencies.
# If the browser version has already been installed, the command
# will still attempt to install system dependencies.
# Requires root privileges.
npx puppeteer browsers install chrome --install-deps
The programmatic API allows installing and launching browsers from your code. See the test
folder for examples on how to use the install
, canInstall
, launch
, computeExecutablePath
, computeSystemExecutablePath
and other methods.
Class | Description |
---|---|
[CLI](./browsers.cli.md) | |
[InstalledBrowser](./browsers.installedbrowser.md) | **Remarks:** The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the `InstalledBrowser` class. |
[Process](./browsers.process.md) | |
[TimeoutError](./browsers.timeouterror.md) | **Remarks:** The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the `TimeoutError` class. |
Enumeration | Description |
---|---|
[Browser](./browsers.browser.md) | Supported browsers. |
[BrowserPlatform](./browsers.browserplatform.md) | Platform names used to identify a OS platform x architecture combination in the way that is relevant for the browser download. |
[BrowserTag](./browsers.browsertag.md) | Enum describing a release channel for a browser. You can use this in combination with [resolveBuildId()](./browsers.resolvebuildid.md) to resolve a build ID based on a release channel. |
[ChromeReleaseChannel](./browsers.chromereleasechannel.md) |
Function | Description |
---|---|
[canDownload(options)](./browsers.candownload.md) | |
[computeExecutablePath(options)](./browsers.computeexecutablepath.md) | |
[computeSystemExecutablePath(options)](./browsers.computesystemexecutablepath.md) | Returns a path to a system-wide Chrome installation given a release channel name by checking known installation locations (using https://pptr.dev/browsers-api/browsers.computesystemexecutablepath/). If Chrome instance is not found at the expected path, an error is thrown. |
[createProfile(browser, opts)](./browsers.createprofile.md) | |
[detectBrowserPlatform()](./browsers.detectbrowserplatform.md) | |
[getDownloadUrl(browser, platform, buildId, baseUrl)](./browsers.getdownloadurl.md) | Retrieves a URL for downloading the binary archive of a given browser. The archive is bound to the specific platform and build ID specified. |
[getInstalledBrowsers(options)](./browsers.getinstalledbrowsers.md) | Returns metadata about browsers installed in the cache directory. |
[getVersionComparator(browser)](./browsers.getversioncomparator.md) | Returns a version comparator for the given browser that can be used to sort browser versions. |
[install(options)](./browsers.install.md) | Downloads and unpacks the browser archive according to the [InstallOptions](./browsers.installoptions.md). |
[install(options)](./browsers.install.md) | Downloads the browser archive according to the [InstallOptions](./browsers.installoptions.md) without unpacking. |
[launch(opts)](./browsers.launch.md) | Launches a browser process according to [LaunchOptions](./browsers.launchoptions.md). |
[makeProgressCallback(browser, buildId)](./browsers.makeprogresscallback.md) | |
[resolveBuildId(browser, platform, tag)](./browsers.resolvebuildid.md) | |
[uninstall(options)](./browsers.uninstall.md) |
Interface | Description |
---|---|
[GetInstalledBrowsersOptions](./browsers.getinstalledbrowsersoptions.md) | |
[InstallOptions](./browsers.installoptions.md) | |
[LaunchOptions](./browsers.launchoptions.md) | |
[Options](./browsers.options.md) | |
[ProfileOptions](./browsers.profileoptions.md) | |
[SystemOptions](./browsers.systemoptions.md) | |
[UninstallOptions](./browsers.uninstalloptions.md) |
Variable | Description |
---|---|
[CDP_WEBSOCKET_ENDPOINT_REGEX](./browsers.cdp_websocket_endpoint_regex.md) | |
[WEBDRIVER_BIDI_WEBSOCKET_ENDPOINT_REGEX](./browsers.webdriver_bidi_websocket_endpoint_regex.md) |