explaingit

daijro/camoufox

8,285C++Audience · developerComplexity · 3/5Setup · moderate

TLDR

A modified Firefox browser for automated web scraping and AI agents that disguises bot traffic as a real human session by spoofing dozens of browser fingerprint signals at the engine level, paired with Playwright for scripting.

Mindmap

mindmap
  root((camoufox))
    What it does
      Anti-detect browser
      Fingerprint spoofing
      Firefox based
    Tech Stack
      C++
      Firefox
      Playwright
      Python
    Features
      Screen and font spoofing
      Proxy integration
      Playwright compatible
    Audience
      Web scrapers
      AI agent builders
      Data collectors
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Scrape websites that actively block headless browsers by having Camoufox appear as a genuine Firefox user session.

USE CASE 2

Build an AI web agent with Playwright that can browse and interact with sites without triggering bot-detection systems.

USE CASE 3

Combine Camoufox with rotating proxies to collect data from sites with aggressive anti-scraping measures.

USE CASE 4

Automate form submissions or logins on sites that fingerprint the browser to identify automation tools.

Tech stack

C++FirefoxPlaywrightPython

Getting it running

Difficulty · moderate Time to first run · 30min

Install via pip install cloverlabs-camoufox, requires Playwright already installed in the Python environment.

In plain English

Camoufox is a modified version of the Firefox browser designed for automated browsing tasks, particularly for AI agents and web scraping programs. When software tries to automate a browser to collect data or perform actions on websites, many sites detect and block it because automated browsers behave differently from a real person using a real browser. Camoufox's job is to make automated browsing look indistinguishable from a real human session. It does this by carefully adjusting what the browser reveals about itself: things like the screen resolution, installed fonts, graphics card details, and dozens of other technical signals that websites use to tell robots from people. This category of tool is sometimes called an anti-detect browser. Camoufox is built on top of Firefox's actual source code rather than faking these details at a software layer above the browser, which makes its disguise more complete. The project works with Playwright, a popular library that lets developers write code to control a browser automatically. By pairing Camoufox with Playwright, a developer can write a script that opens pages, fills in forms, clicks buttons, or reads content while the browser presents itself as a normal Firefox installation. It is intended to be used alongside rotating proxy services, which change the network address the requests come from, to further avoid detection. Active development has moved to a separate repository at CloverLabsAI, and the main repository here is used for publishing checkpoint releases. A Python package for the latest alpha builds is available as cloverlabs-camoufox on PyPI. Full documentation is at camoufox.com. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
Show me how to launch Camoufox with Playwright in Python, open a page, and extract its main text content without triggering bot detection.
Prompt 2
What browser fingerprint signals does Camoufox spoof, and which matter most for bypassing Cloudflare bot protection?
Prompt 3
Write a Playwright plus Camoufox script that scrolls a page slowly, waits for lazy-loaded content to appear, and saves the full HTML.
Prompt 4
How do I configure Camoufox to use a specific screen resolution, timezone, and locale to match a target geographic profile?
Prompt 5
Install cloverlabs-camoufox from PyPI and give me the minimal Python code to launch a stealth Firefox session and navigate to a URL.
Open on GitHub → Explain another repo

← daijro on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.