How AI Agents Avoid Bot Detection with Camoufox

Zen van Riel · Intermediate ·🤖 AI Agents & Automation ·2w ago
⚡ Become a high-earning AI engineer: https://aiengineer.community/join Point a normal automation browser at a modern website and it gets flagged as a bot in milliseconds. Point a stealth browser like Camoufox at the same page and it reads as a regular human visitor. I built a small bot-detection page, plus a board that maps all 8 checks, then drove the page with vanilla Playwright (caught) and Camoufox (passes) so you can see exactly what gives an AI agent away, and how it hides. What You'll Learn - The 2 layers every site uses to spot bots: HTTP header checks on the server and JavaScript fingerprinting in the browser - Why bot detection is about consistency: any single signal that contradicts the others flags the whole visit (worst-of) - Why header checks only catch crude clients like curl and python-requests, and what they miss - The navigator.webdriver flag and automation globals (cdc_, __playwright) that expose a driven browser - How WebGL renderer, canvas, and audio fingerprints reveal a headless or software-rendered machine - The font and screen-geometry tells that flag a spoofed user agent running on a headless server - Why vanilla Playwright Firefox passes every header check but still gets caught client-side - Why a real stealth browser has to patch the engine in C++ instead of injecting JavaScript - Why most bot detection happens in silence, with no CAPTCHA in sight - The layers Cloudflare and Akamai add beyond this demo: TLS handshake and HTTP/2 fingerprinting Camoufox, the stealth browser from the demo: https://camoufox.com/ Timestamps 0:00 Two visitors, two verdicts 0:34 Bot detection theory: a stack of signals 1:54 The 8 checks split into 2 layers 2:45 Server layer: user agent and header checks 4:06 Client layer: navigator.webdriver and leaked globals 5:11 WebGL, font, geometry, and canvas fingerprints 7:52 Why a stealth browser patches the engine 8:18 Camoufox: Firefox patched in C++ 8:39 Live demo: my normal browser passes 8:53 Vanilla Playwright
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Related AI Lessons

Session-Level Spending Limits Are Not Governance. Your Agent Needs Autonomy Tiers.
Learn why session-level spending limits are insufficient for governance and how autonomy tiers can enhance agent decision-making
Dev.to · Kavin Kim
Access Is Not Agency
Learn to distinguish between access and agency in AI systems to avoid security risks
Dev.to · Harry Floyd
Why My Polymarket Bot Watches Chainlink, Not Binance - The Oracle Gap That Changes Every Close Trade
Learn why a trader's Polymarket bot uses Chainlink oracles instead of Binance spot prices for more accurate trade closes
Dev.to · Trader Developer
Supercharging AI with Real Estate Open Data: Building a Smarter MCP Server
Learn how to build a smarter MCP server by leveraging real estate open data and AI to improve decision-making and automation
Medium · AI

Chapters (10)

Two visitors, two verdicts
0:34 Bot detection theory: a stack of signals
1:54 The 8 checks split into 2 layers
2:45 Server layer: user agent and header checks
4:06 Client layer: navigator.webdriver and leaked globals
5:11 WebGL, font, geometry, and canvas fingerprints
7:52 Why a stealth browser patches the engine
8:18 Camoufox: Firefox patched in C++
8:39 Live demo: my normal browser passes
8:53 Vanilla Playwright
Up next
CLI vs MCP: Which Should You Use for Building AI Agents? #LearnOnShorts
LangChain
Watch →