Note
All the latest documentation is available here.
This Python library wraps around Playwright's API to help automatically generate & inject unique device characteristics (OS, CPU info, navigator, fonts, headers, screen dimensions, viewport size, WebGL, addons, etc.) into Camoufox.
It uses fpgen under the hood to generate fingerprints that mimic the statistical distribution of device characteristics in real-world traffic.
In addition, it will also calculate your target geolocation, timezone, and locale to avoid proxy protection (see demo).
First, install the camoufox package:
pip install -U camoufox[geoip]The geoip parameter is optional, but heavily recommended if you are using proxies. It will download an extra dataset to determine the user's longitude, latitude, timezone, country, & locale.
Next, download the Camoufox browser:
camoufox fetchfetch also installs fpgen's model, pinned by sha256, into fpgen's package directory. Otherwise the first generated fingerprint installs it. Run fetch as that directory's owner if the browser will run as another user, e.g. while building a Docker image.
To uninstall, run camoufox remove.
Manage installed browsers, active version, IP geolocation databases, and package info. Basically a Qt front end for the Python CLI tool.
More updates on it will be coming soon.
To use the gui, install Camoufox with the [gui] extra:
pip install 'camoufox[gui]'To launch:
camoufox guicli-demo.mp4
See help message
$ python -m camoufox --help
Usage: python -m camoufox [OPTIONS] COMMAND [ARGS]...
โญโ Options โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ --help Show this message and exit. โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โญโ Commands โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ active Print the current active version โ
โ fetch Install the active version, or a specific version โ
โ gui Launch the Camoufox Manager GUI (requires PySide6) โ
โ list List Camoufox versions โ
โ path Print the install directory path โ
โ remove Remove downloaded data. By default, this removes everything. โ
โ Pass --select to pick a browser version to remove. โ
โ server Launch a Playwright server โ
โ set Set the active Camoufox version to use & fetch. โ
โ By default, this opens an interactive selector for versions and settings. โ
โ You can also pass a specifier to activate directly: โ
โ Pin version: โ
โ camoufox set official/stable/134.0.2-beta.20 โ
โ Automatically find latest in a channel source: โ
โ camoufox set official/stable โ
โ sync Sync available versions from remote repositories โ
โ test Open the Playwright inspector โ
โ version Display version, package, browser, and storage info โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Pull a list of release assets from GitHub.
> camoufox sync
Syncing repositories...
Official... 24 versions
CoryKing... 2 versions
Synced 26 versions from 2 repos.Each camoufox release is paired with the one browser build it was built and tested with. By default, camoufox fetch installs exactly that build and every launch uses it. That holds even when other builds are installed, and even when the paired build is a prerelease (a prerelease of this package pairs with a prerelease browser). Upgrading the package therefore never runs a browser it was not tested with. Run camoufox fetch after upgrading to install the new pairing.
Choosing a channel or a build with camoufox set overrides the pairing. The choice is kept, and a launch warns that the build differs from the paired one. camoufox set --release goes back to the paired build.
A development checkout (installed from the repository, not from PyPI) is paired with nothing and follows its channel, official/stable by default.
Choose a version channel or pin a specific version, overriding the paired build. Can also be called with a specifier to activate directly.
Interactive selector:
> camoufox setYou can also pass a specifier to pin a specific version or choose a channel to follow directly. Following official/stable pulls the latest stable version from the official repo on camoufox fetch:
> camoufox set official/stableFollow latest prerelease version from the official repo, if applicable:
> camoufox set official/prereleasePin a specific version:
> camoufox set official/stable/134.0.2-beta.20Go back to the build this release is paired with:
> camoufox set --releasePrints the current active version string:
> camoufox active # A released package uses its paired build by default
official/prerelease/156.0.1-beta.33 (1a2b3c4d) (paired with this release)> camoufox set coryking/stable/142.0.1-fork.26
Pinned: coryking/stable/142.0.1-fork.26
Run 'camoufox fetch' to install.
> camoufox active # A specific version is pinned
coryking/stable/142.0.1-fork.26 (not installed)Install the browser build this release is paired with, or, after camoufox set, the latest version from the chosen channel. This will also automatically sync repository assets.
> camoufox fetch # Install the paired build (or the latest in the chosen channel)To download the latest from a different channel, or pin a version:
> camoufox set coryking/stable
> camoufox fetch # Will download the latest release from CoryKing's repo for now onOr pass in the identifier to download directly without activating it:
> camoufox fetch official/stable/135.0-beta.25 # Install a specific versionList installed or all available Camoufox versions as a tree.
> camoufox list # show installed versions
> camoufox list all # show all available versions from synced repos
> camoufox list --path # show full install pathsBy default, removes the entire camoufox data directory.
> camoufox remove
> camoufox remove -y # skip confirmation promptRemove a specific version:
> camoufox remove official/stable/134.0.2-beta.20Interactively select a version to remove:
> camoufox remove --selectDisplay the Python package version, active browser version, channel, and update status.
> camoufox version
Python Packages
Camoufox v0.5.7
fpgen v1.3.0
Playwright v1.62.0
Browser
Active official/stable/152.0.4-beta.31
Current browser v152.0.4-beta.31
Installed Yes
Latest in official/stable? Yes
Last Sync 2026-03-07 00:23
GeoIP
Database MaxMind GeoLite2
Updated 2026-03-07 00:24
Storage
Install path /home/name/.cache/camoufox
Browser(s) directory size 1.2 GB
GeoIP database size 40.7 MB
Config file /home/name/.cache/camoufox/config.json
Repo cache /home/name/.cache/camoufox/repo_cache.jsonPrint the install directory path.
> camoufox path
/home/name/.cache/camoufoxOpen Camoufox with the Playwright inspector for debugging.
> camoufox test
> camoufox test https://example.comLaunch a remote Playwright server.
> camoufox serverAll of the latest stable documentation is available at camoufox.com/python.