browserget
Standalone CLI to install browsers and drivers without any framework.
Chrome for Testing, Firefox, Edge, ChromeDriver, GeckoDriver, EdgeDriver — all from a single tool. Python 3.11+, zero heavy dependencies.
Why?
playwright install ties you to Playwright. puppeteer install ties you to
Puppeteer. browserget installs browsers for any use — automation,
scraping, testing, CDP, BiDi, whatever.
Features
- 6 targets — Chrome, Firefox, Edge + ChromeDriver, GeckoDriver, EdgeDriver
- Concurrent installs — multiple targets install in parallel
- Driver matching —
--for chromeauto-matches ChromeDriver to your Chrome - Checksum verification — SHA-256/SHA-512 when upstream provides checksums
- Registry tracking — JSON registry tracks every installed artifact
- JSON output — every command supports
--jsonfor CI/CD integration - Retry with backoff — HTTP client retries failed requests automatically
- Disk space checks — verifies sufficient space before downloading
- Platform detection — auto-detects OS and architecture
Installation
pip install browserget
Quick start
# Install latest stable Chrome
browserget install chrome
# Install matching ChromeDriver
browserget install chromedriver --for chrome
# Ensure browsers are installed (idempotent — skips if present)
browserget ensure chrome chromedriver
# Verify system health
browserget doctor
Usage
# Install specific version
browserget install chrome --version 131.0.6778.87
# Install by milestone (latest patch in 131)
browserget install chrome --version 131
# Install Firefox and Edge
browserget install firefox edge
# Install EdgeDriver
browserget install edgedriver --for edge
# List installed browsers
browserget list
# Get path to installed browser
browserget path chrome
# Remove a browser
browserget remove chrome
# Remove all versions of a target
browserget remove chrome --all
# List available versions for a target
browserget versions chrome
# Check system health
browserget doctor
# JSON output for CI/CD
browserget install chrome --json
Examples
CI pipeline (idempotent)
pip install browserget
browserget ensure chrome chromedriver
CHROME_PATH=$(browserget path chrome)
Install a browser and its matching driver
browserget install chrome
browserget install chromedriver --for chrome
Pin a specific version
browserget install firefox --version 131.0
browserget install geckodriver --for firefox
List and clean up
browserget list
browserget remove chrome --version 130.0.6723.69
browserget doctor
JSON output
browserget list --json
Output:
[
{"name": "chrome", "version": "131.0.6778.87", "path": "/home/user/.browserget/chrome/131.0.6778.87/chrome"},
{"name": "chromedriver", "version": "131.0.6778.87", "path": "/home/user/.browserget/chromedriver/131.0.6778.87/chromedriver"}
]
Supported targets
| Target | Type | Upstream source |
|---|---|---|
chrome |
Browser | Chrome for Testing API |
firefox |
Browser | Mozilla FTP |
edge |
Browser | Edge Updates API |
chromedriver |
Driver | Chrome for Testing API |
geckodriver |
Driver | GitHub Releases (mozilla/geckodriver) |
edgedriver |
Driver | EdgeDriver CDN |
Requirements
- Python 3.11, 3.12, or 3.13
typer(installed automatically)- Internet access to download browser binaries
Documentation
Full documentation is available at https://mathiaspaulenko.github.io/browserget/.
- Install command — detailed usage and examples
- Ensure command — idempotent installs for CI pipelines
- Cache management — cache location, cleanup, and configuration
- CLI reference — complete command and flag documentation
- Architecture — module diagram and design decisions
Contributing
Contributions are welcome! See CONTRIBUTING.md for development setup, testing, and pull request guidelines.
License
MIT — see LICENSE.
Metadata
Release files for browserget 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| browserget-1.1.0.tar.gz | 89.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| browserget-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 140.8 kB
Release files / browserget-1.1.0.tar.gz
| Download URL | browserget-1.1.0.tar.gz |
|---|---|
| Size | 89.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c7d9d05d58e98a53ebacb5f8e307aaa14c55ac4bfb53bceb0eb57806f907f5f1
|
|
BLAKE2b-256 checksum How to use checksums |
7492afb5e7630b4346e7efa8c55e25eee271753ea2c8f0af7f7ccf740dd77ff3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency logRelease files / browserget-1.1.0-py3-none-any.whl
| Download URL | browserget-1.1.0-py3-none-any.whl |
|---|---|
| Size | 51.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0b1bf256983e6f0711136aa1116cb0bdd4178828c8c5d48a295a1ef8179415fb
|
|
BLAKE2b-256 checksum How to use checksums |
4fc258cda58fbd172a11df51c26652b5aba6a8518fecbff122fb0e4c7d10ea97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.
Transparency log