# Camoufox Python Interface
#### Lightweight wrapper around the Playwright API to help launch Camoufox.
> [!NOTE]
> All the the latest documentation is avaliable [here](https://camoufox.com/python).
---
## What is this?
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 [BrowserForge](https://github.com/daijro/browserforge) 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](https://i.imgur.com/UhSHfaV.png)).
---
## Installation
First, install the `camoufox` package:
```bash
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:
**Windows**
```bash
camoufox fetch
```
**MacOS & Linux**
```bash
python3 -m camoufox fetch
```
To uninstall, run `camoufox remove`.
---
# Installing multiple Camoufox versions & from other repos
## UI Manager
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:
```bash
pip install 'camoufox[gui]'
```
To launch:
```bash
camoufox gui
```
---
## CLI Mananger
#### Demonstration
https://github.com/user-attachments/assets/992b1830-6b21-4024-9165-728854df1473
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 │
╰───────────────────────────────────────────────────────────────────────────────────────╯
```
### `sync`
Pull a list of release assets from GitHub.
```bash
> camoufox sync
Syncing repositories...
Official... 24 versions
CoryKing... 2 versions
Synced 26 versions from 2 repos.
```
### `set`
Choose a version channel or pin a specific version. Can also be called with a specifier to activate directly.
Interactive selector:
```bash
> camoufox set
```
You can also pass a specifier to pin a specific version or choose a channel to follow directly. This will pull the latest stable version from the official repo on `camoufox fetch`.
```bash
> camoufox set official/stable # Default setting
```
Follow latest prerelease version from the official repo, if applicable:
```bash
> camoufox set official/prerelease
```
Pin a specific version:
```bash
> camoufox set official/stable/134.0.2-beta.20
```
### `active`
Prints the current active version string:
```bash
> camoufox active # Default channel is active
official/stable
```
```bash
> 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)
```
### `fetch`
Install the latest version from the active channel. By default, this is official/stable. This will also automatically sync repository assets.
```bash
> camoufox fetch # Install the latest in the channel
```
To download the latest from a different channel, or pin a version:
```bash
> camoufox set coryking/stable
> camoufox fetch # Will download the latest release from CoryKing's repo for now on
```
Or pass in the identifier to download directly without activating it:
```bash
> camoufox fetch official/stable/135.0-beta.25 # Install a specific version
```
### `list`
List installed or all available Camoufox versions as a tree.
```bash
> camoufox list # show installed versions
> camoufox list all # show all available versions from synced repos
> camoufox list --path # show full install paths
```
### `remove`
By default, removes the entire camoufox data directory.
```bash
> camoufox remove
> camoufox remove -y # skip confirmation prompt
```
Remove a specific version:
```bash
> camoufox remove official/stable/134.0.2-beta.20
```
Interactively select a version to remove:
```bash
> camoufox remove --select
```
### `version`
Display the Python package version, active browser version, channel, and update status.
```bash
> camoufox version
Python Packages
Camoufox v0.5.0
Browserforge v1.2.4
Apify Fingerprints v0.10.0
Playwright v1.57.1.dev0+g732639b35.d20251217
Browser
Active official/stable/135.0.1-beta.24
Current browser v135.0.1-beta.24
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.json
```
### `path`
Print the install directory path.
```bash
> camoufox path
/home/name/.cache/camoufox
```
### `test`
Open Camoufox with the Playwright inspector for debugging.
```bash
> camoufox test
> camoufox test https://example.com
```
### `server`
Launch a remote Playwright server.
```bash
> camoufox server
```
---
## Usage
All of the latest stable documentation is avaliable at [camoufox.com/python](https://camoufox.com/python).