camoufox-stealthC++ level anti-bot browser automation using Camoufox (patched Firefox) in isolated containers. Bypasses Cloudflare Turnstile, Datadome, Airbnb, Yelp. Superior to Chrome-based solutions (undetected-chromedriver, puppeteer-stealth) which only patch at JS level. Use when standard Playwright/Selenium gets blocked.
Install via ClawdBot CLI:
clawdbot install kesslerio/camoufox-stealthC++ level anti-bot evasion using Camoufox ā a custom Firefox fork with stealth patches compiled into the browser itself, not bolted on via JavaScript.
| Approach | Detection Level | Tools |
|----------|-----------------|-------|
| Camoufox (this skill) | C++ compiled patches | Undetectable fingerprints baked into browser |
| undetected-chromedriver | JS runtime patches | Can be detected by timing analysis |
| puppeteer-stealth | JS injection | Patches applied after page load = detectable |
| playwright-stealth | JS injection | Same limitations |
Camoufox patches Firefox at the source code level ā WebGL, Canvas, AudioContext fingerprints are genuinely spoofed, not masked by JavaScript overrides that anti-bot systems can detect.
puppeteer-stealth or undetected-chromedriver stopped working| Tool | Level | Best For |
|------|-------|----------|
| Camoufox | C++ patches | All protected sites - Cloudflare, Datadome, Yelp, Airbnb |
| curl_cffi | TLS spoofing | API endpoints only - no JS needed, very fast |
All scripts run in pybox distrobox for isolation.
ā ļø Use python3.14 explicitly - pybox may have multiple Python versions with different packages installed.
# Install tools in pybox (use python3.14)
distrobox-enter pybox -- python3.14 -m pip install camoufox curl_cffi
# Camoufox browser downloads automatically on first run (~700MB Firefox fork)
Browser (Camoufox):
distrobox-enter pybox -- python3.14 scripts/camoufox-fetch.py "https://example.com" --headless
API only (curl_cffi):
distrobox-enter pybox -- python3.14 scripts/curl-api.py "https://api.example.com/endpoint"
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā OpenClaw Agent ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¤
ā distrobox-enter pybox -- python3.14 scripts/xxx.py ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¤
ā pybox Container ā
ā āāāāāāāāāāāāāāā āāāāāāāāāāāāāāā ā
ā ā Camoufox ā ā curl_cffi ā ā
ā ā (Firefox) ā ā (TLS spoof)ā ā
ā āāāāāāāāāāāāāāā āāāāāāāāāāāāāāā ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Datacenter IPs (AWS, DigitalOcean) = INSTANT BLOCK on Airbnb/Yelp
You MUST use residential or mobile proxies:
# Example proxy config
proxy = "http://user:pass@residential-proxy.example.com:8080"
See references/proxy-setup.md for proxy configuration.
Sites like Airbnb/Yelp use behavioral analysis. To avoid detection:
ā ļø Old --headless flag is DETECTED. Options:
headless="new" (Chrome 109+)# Xvfb approach (Linux)
Xvfb :99 -screen 0 1920x1080x24 &
export DISPLAY=:99
python scripts/camoufox-fetch.py "https://example.com"
| Problem | Solution |
|---------|----------|
| "Access Denied" immediately | Use residential proxy |
| Cloudflare challenge loops | Try Camoufox instead of Nodriver |
| Browser crashes in pybox | Install missing deps: sudo dnf install gtk3 libXt |
| TLS fingerprint blocked | Use curl_cffi with impersonate="chrome120" |
| Turnstile checkbox appears | Add mouse movement, increase wait time |
| ModuleNotFoundError: camoufox | Use python3.14 not python or python3 |
| greenlet segfault (exit 139) | Python version mismatch - use python3.14 explicitly |
| libstdc++.so.6 errors | NixOS lib path issue - use python3.14 in pybox |
The pybox container may have multiple Python versions with separate site-packages:
# Check which Python has camoufox
distrobox-enter pybox -- python3.14 -c "import camoufox; print('OK')"
# Wrong (may use different Python)
distrobox-enter pybox -- python3.14 scripts/camoufox-session.py ...
# Correct (explicit version)
distrobox-enter pybox -- python3.14 scripts/camoufox-session.py ...
If you get segfaults or import errors, always use python3.14 explicitly.
distrobox-enter pybox -- python3.14 scripts/camoufox-fetch.py \
"https://www.airbnb.com/rooms/12345" \
--headless --wait 10 \
--screenshot airbnb.png
distrobox-enter pybox -- python3.14 scripts/camoufox-fetch.py \
"https://www.yelp.com/biz/some-restaurant" \
--headless --wait 8 \
--output yelp.html
distrobox-enter pybox -- python3.14 scripts/curl-api.py \
"https://api.yelp.com/v3/businesses/search?term=coffee&location=SF" \
--headers '{"Authorization": "Bearer xxx"}'
Persistent sessions allow reusing authenticated state across runs without re-logging in.
# 1. Login interactively (headed browser opens)
distrobox-enter pybox -- python3.14 scripts/camoufox-session.py \
--profile airbnb --login "https://www.airbnb.com/account-settings"
# Complete login in browser, then press Enter to save session
# 2. Reuse session in headless mode
distrobox-enter pybox -- python3.14 scripts/camoufox-session.py \
--profile airbnb --headless "https://www.airbnb.com/trips"
# 3. Check session status
distrobox-enter pybox -- python3.14 scripts/camoufox-session.py \
--profile airbnb --status "https://www.airbnb.com"
| Flag | Description |
|------|-------------|
| --profile NAME | Named profile for session storage (required) |
| --login | Interactive login mode - opens headed browser |
| --headless | Use saved session in headless mode |
| --status | Check if session appears valid |
| --export-cookies FILE | Export cookies to JSON for backup |
| --import-cookies FILE | Import cookies from JSON file |
~/.stealth-browser/profiles// 700, files 600_, - only (1-63 chars)The script detects session expiry using multiple signals:
/login, /signin, /authIf detected during --headless mode, you'll see:
š Login wall signals: url-path, password-form
Re-run with --login to refresh the session.
Since --login requires a visible browser, you need display forwarding:
X11 Forwarding (Preferred):
# Connect with X11 forwarding
ssh -X user@server
# Run login (opens browser on your local machine)
distrobox-enter pybox -- python3.14 scripts/camoufox-session.py \
--profile mysite --login "https://example.com"
VNC Alternative:
# On server: start VNC session
vncserver :1
# On client: connect to VNC
vncviewer server:1
# In VNC session: run login
distrobox-enter pybox -- python3.14 scripts/camoufox-session.py \
--profile mysite --login "https://example.com"
ā ļø Cookies are credentials. Treat profile directories like passwords:
chmod 700 (owner only)chmod 600| Limitation | Reason |
|------------|--------|
| localStorage/sessionStorage not exported | Use browser profile instead (handles automatically) |
| IndexedDB not portable | Stored in browser profile, not cookie export |
| No parallel profile access | No file locking in v1; use one process per profile |
Generated Mar 1, 2026
Scraping rental listings from Airbnb and similar platforms to analyze market trends, occupancy rates, and pricing strategies. Camoufox bypasses anti-bot protections like Cloudflare to access detailed property data without detection.
Tracking competitor prices on Yelp and other review-protected sites to adjust pricing strategies dynamically. The C++ level stealth ensures continuous data collection without triggering blocks from Datadome or other anti-scraping systems.
Gathering hotel and flight availability data from travel sites that use Turnstile challenges. Camoufox's fingerprint spoofing allows for reliable scraping to inform pricing and availability analyses for travel agencies.
Extracting product reviews and ratings from protected retail platforms to assess brand sentiment and competitor performance. The container isolation keeps the host system clean while evading behavioral detection.
Accessing protected financial news or API endpoints that employ TLS fingerprinting. Using curl_cffi for fast API scraping without browser overhead, ideal for real-time data feeds in fintech applications.
Selling aggregated datasets from protected sites like Airbnb and Yelp to real estate firms or market researchers. Revenue is generated through subscription plans based on data volume and frequency of updates.
Offering tailored web scraping services for businesses needing data from anti-bot protected platforms. Clients pay for development, maintenance, and data delivery, often on a project or retainer basis.
Bundling residential proxies with Camoufox automation tools as a managed service. Revenue comes from selling proxy access and tool licenses, targeting users who require high stealth for compliance-sensitive scraping.
š¬ Integration Tip
Ensure proper proxy configuration with residential IPs to avoid instant blocks, and use python3.14 explicitly in pybox to prevent version conflicts.
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with w...
Playwright-based web scraping OpenClaw Skill with anti-bot protection. Successfully tested on complex sites like Discuss.com.hk.
Browser automation and web scraping with Playwright. Forms, screenshots, data extraction. Works standalone or via MCP. Testing included.
Performs deep scraping of complex sites like YouTube using containerized Crawlee, extracting validated, ad-free transcripts and content as JSON output.
Automate web tasks like form filling, data scraping, testing, monitoring, and scheduled jobs with multi-browser support and retry mechanisms.
Web scraping and content comprehension agent ā multi-strategy extraction with cascade fallback, news detection, boilerplate removal, structured metadata, and...