Camoufox

Camoufox

Firefox with anti-bot signals rewritten in its C++ code

Camoufox is a modified Firefox built for web scraping and AI agents. The values anti-bot scripts read (navigator properties, screen, WebGL, WebRTC, timezone, fonts) are rewritten in the browser's C++ code rather than papered over by JavaScript injected into the page. You drive it with Playwright from Python or JavaScript/TypeScript, and an existing script only needs a different browser launch. The camoufox packages on PyPI and npm download the matching browser build and draw a fresh identity on every launch. The anti-blocking guide of Crawlee suggests Camoufox for pages where Crawlee's own fingerprints are not enough, such as the Cloudflare challenge.

The open source web scraping tools comparison sets Camoufox alongside crawl frameworks and proxy rotation.

Identities drawn from observed traffic, mouse paths from humans

  • Fingerprint changed inside the engine: calls are intercepted in C++, so spoofed objects and properties look native. A check waiting for a toString() that no longer returns [native code] has nothing to catch.
  • Playwright hidden from the page: Playwright drives Firefox through the Juggler protocol, not CDP. Camoufox patches Juggler so it works on its own isolated copy of the page. It also fixes navigator.webdriver and makes headless mode look like a normal window.
  • Identities drawn from observed traffic: anything you leave unset comes from fpgen, a Bayesian network trained on live traffic. A coherence check then rejects impossible machines before launch, such as a Windows user agent paired with an Apple M1 GPU.
  • Fonts that match the claimed OS: the browser ships Windows, macOS and Linux fonts and loads the set that fits the user agent.
  • Recorded mouse paths: with humanize=True, Camoufox replays one of 2,356 human movements from the Cursory library, fitted to the requested path and played back at its original speed.
  • Identity aligned with the proxy: with the geoip extra, the launcher derives geolocation, timezone, locale and language from the proxy's exit region.

Never out of beta, and still catchable by anti-bot vendors

The identity is always a Firefox one. Camoufox does not fully support Chromium fingerprints. Some WAFs test how SpiderMonkey, Firefox's JavaScript engine, behaves, and the README calls that behavior impossible to spoof.

The README admits Camoufox can still be caught. Thousands of data points have to agree with each other, and Camoufox does not always get every one right. Anti-bot vendors test it over and over for a single inconsistency, then update their scripts as soon as they find one. Sophisticated enough analysis may still spot the humanized cursor.

Camoufox does not deal with IP addresses. The browser is meant to run behind rotating proxies, preferably residential ones, and ships none. Rota rotates a pool of proxies you supply.

Still in beta, after a release gap of almost ten months. No release has left beta, and the README warns that the project may not suit stable production use. Nothing shipped between v135.0.1-beta.24 on March 15, 2025 and a macOS preview in January 2026, and until late August 2026 the README placed active development on a Clover Labs fork. The main repository now cuts a prerelease for every tested merge: five Firefox 156.0.1 builds between September 28 and October 6, 2026, up to v156.0.1-beta.36. The Python and npm packages moved to 0.5.8 that same day.

All source public since January 2026. According to the docs, releases up to v135.0.1-beta.24 included a closed-source Canvas patch. The browser is under MPL-2.0, Firefox's own license, the mouse trajectories under LGPL-3.0-or-later, and the Python and TypeScript launchers under MIT.

A heavy download. Each v156.0.1-beta.36 archive weighs about 1.3 GB. The Python launcher needs Python 3.10 or later, the npm one Node.js 22.15 or later.