Stealth Chromium

that passes every bot detection test

CloakBrowser
31,871
GitHub Stars
2,646
Forks
152
Subscribers
Python
Language

Why CloakBrowser?

87 C++ Source Patches

Fingerprints modified at the C++ source level. Antibot systems score it as a normal browser — because it is a normal browser.

Passes Every Detection Test

Cloudflare Turnstile, reCAPTCHA v3, FingerprintJS, BrowserScan — tested against 30+ detection sites.

Drop-in Playwright Replacement

Same API, same code — just swap the import. 3 lines of code, 30 seconds to unblock.

Human Behavior Simulation

Human-like mouse curves, keyboard timing, and scroll patterns. One flag, behavioral detection passes.

Auto-Downloads Binary

Free or Pro based on your license. pip install cloakbrowser or npm install cloakbrowser — zero config.

Pro: 0.9 reCAPTCHA v3 Score

Human-level, server-verified score. Prevent CAPTCHAs from appearing instead of solving them.

Try it now — no install needed:

Docker Quick Test
# Quick test with Docker
docker run --rm cloakhq/cloakbrowser cloaktest
Python Example
from cloakbrowser import launch

browser = launch()
page = browser.new_page()
page.goto("https://example.com")
browser.close()
JavaScript Example
import { launch } from 'cloakbrowser';

const browser = await launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await browser.close();

Comparison with Alternatives

Feature Playwright playwright-stealth undetected-chromedriver CloakBrowser
reCAPTCHA v3 Score 0.1 (bot) 0.3-0.5 0.3-0.7 0.9 (human)
Cloudflare Turnstile ✗ Fail ✗ Sometimes ✗ Sometimes ✓ Pass
Headless Detection ✗ Flagged ✗ Flagged ✗ Flagged ✓ Passes
Patch Level None JS injection Config patches C++ (Chromium)
Survives Chrome Updates N/A ✗ Breaks often ✗ Breaks often ✓ Yes
Maintained Yes ✗ Stale ✗ Stale ✓ Active

What Our Users Say

"CloakBrowser saved our scraping project. We were blocked by every major anti-bot service until we found this. The reCAPTCHA v3 score of 0.9 is incredible!"

JD

John Doe

Data Engineer

"The 3-line replacement from Playwright to CloakBrowser was seamless. Our automation now passes even the most sophisticated detection systems."

SM

Sarah Miller

Automation Lead

"I've tried every stealth browser on the market. CloakBrowser is the only one that actually works consistently. The humanize feature makes it indistinguishable from a real user."

AK

Alex Kim

Web Scraping Specialist

Frequently Asked Questions

Everything you need to know about CloakBrowser

General Questions

What is CloakBrowser? +

CloakBrowser is a stealth Chromium browser that passes every bot detection test. It's a drop-in replacement for Playwright and Puppeteer with source-level fingerprint patches compiled into the Chromium binary. Instead of using JavaScript injections or config tweaks, we modify the C++ source code to create a browser that appears completely human to detection systems.

How does it work? +

CloakBrowser works by patching Chromium's source code at the C++ level. We modify 87 different fingerprinting signals including canvas, WebGL, audio, fonts, GPU properties, WebRTC, network timing, and automation behavior. These patches are compiled directly into the binary, making them undetectable by bot detection systems. When you use CloakBrowser, websites see a real browser because it is a real browser with modified fingerprints.

What makes CloakBrowser different from other stealth browsers? +

Unlike other stealth browsers that use JavaScript injections or config-level patches, CloakBrowser modifies the Chromium source code at the C++ level. This makes our patches undetectable and ensures they survive browser updates. Most alternatives break frequently with each Chrome release, but CloakBrowser's source-level patches are compiled into the binary, making them permanent until the next major Chromium update.

Technical Details

What platforms are supported? +

CloakBrowser supports multiple platforms with both free and Pro versions:

  • Linux x86_64: Free (Chromium 146), Pro (Chromium 152)
  • Linux ARM64: Free (Chromium 146), Pro (Chromium 152)
  • macOS ARM64: Free (Chromium 145), Pro (Chromium 151)
  • macOS x86_64: Free (Chromium 145), Pro (Chromium 151)
  • Windows x86_64: Free (Chromium 146), Pro (Chromium 152)

The wrapper automatically downloads the correct binary for your platform.

What about the humanize feature? +

The humanize feature makes all mouse, keyboard, and scroll interactions behave like a real user. When enabled, it:

  • Uses Bézier curves for mouse movement with realistic acceleration/deceleration
  • Adds per-character typing delays with occasional typos and self-correction
  • Implements natural scroll patterns with micro-steps
  • Includes idle movements between actions

You can customize the behavior with presets like "careful" (slower movements) or fine-tune individual parameters like typing speed and mistype chance.

How do I handle proxies with CloakBrowser? +

CloakBrowser supports both HTTP and SOCKS5 proxies. Here's how to use them:

# Python
browser = launch(proxy="http://user:pass@proxy:8080")
browser = launch(proxy="socks5://user:pass@proxy:1080")

# JavaScript
const browser = await launch({
    proxy: 'http://user:pass@proxy:8080'
});
const browser = await launch({
    proxy: 'socks5://user:pass@proxy:1080'
});

For best results with anti-bot sites, combine with geoip=True to automatically match timezone and locale to your proxy's exit IP, and humanize=True for realistic behavior.

Usage & Integration

Is CloakBrowser compatible with Playwright and Puppeteer? +

Yes! CloakBrowser is designed as a drop-in replacement for both Playwright and Puppeteer. The API is identical, so you can switch by just changing the import:

# Playwright
# From:
from playwright.sync_api import sync_playwright
pw = sync_playwright().start()
browser = pw.chromium.launch()

# To:
from cloakbrowser import launch
browser = launch()

All existing Playwright methods like new_page(), goto(), click(), etc. work exactly the same. For Puppeteer, use import { launch } from 'cloakbrowser/puppeteer'.

Can I use CloakBrowser with automation frameworks? +

Absolutely! CloakBrowser works seamlessly with popular automation frameworks:

  • browser-use: AI-powered browser automation
  • Crawl4AI: AI web scraping framework
  • Scrapling: Modern web scraping library
  • LangChain: LLM application framework
  • Selenium: Web automation framework
  • Stagehand: Browser automation toolkit

CloakBrowser can be used either by launching the binary directly or by connecting via Chrome DevTools Protocol (CDP) for existing frameworks.

How do I handle persistent sessions? +

CloakBrowser supports persistent sessions using launch_persistent_context(). This maintains cookies, localStorage, and cache across browser instances:

# Python
from cloakbrowser import launch_persistent_context

# First run creates the profile
ctx = launch_persistent_context("./my-profile")
page = ctx.new_page()
page.goto("https://example.com")
ctx.close()

# Subsequent runs restore the session
ctx = launch_persistent_context("./my-profile")
page = ctx.new_page()
# You're still logged in!

This is perfect for maintaining login states, building browsing history, and avoiding incognito detection.

Troubleshooting

I'm still getting blocked. What should I do? +

If you're still getting blocked on aggressive sites, try these advanced configurations:

# Maximum stealth configuration
browser = launch(
    proxy="http://your-residential-proxy:port",  # Residential IP
    geoip=True,      # Match timezone/locale to proxy
    headless=False,   # Run in headed mode
    humanize=True,    # Human-like behavior
)

Also ensure you're using the latest Pro binary and have installed the required fonts on Linux. For sites like FingerprintJS, you might need additional font metrics patches.

Why am I detected by FingerprintJS? +

FingerprintJS detection typically happens when:

  • Using an outdated binary (update to Pro for latest patches)
  • Missing required fonts on Linux (install Windows fonts)
  • Not using a residential proxy with geoip=True
  • Screen dimensions don't match viewport

For the latest Pro binary, use this configuration:

browser = launch(
    headless=False,
    proxy="http://user:pass@residential-proxy:port",
    geoip=True,
    args=[
        "--fingerprint-noise=false",
        "--fingerprint-windows-font-metrics",
    ],
)
How do I handle Widevine/DRM content? +

CloakBrowser supports Wide DRM for Netflix, Spotify, etc. The Widevine CDM needs to be sideloaded:

  • Fetch it: python3 bin/fetch-widevine.py (Linux only)
  • Or copy from Chrome: cp -r /opt/google/chrome/WidevineCdm ~/.cloakbrowser/

For Docker, add -e CLOAKBROWSER_FETCH_WIDEVINE=1 to auto-fetch the CDM. The CDM must be present for launch_persistent_context() to work with DRM content.

Licensing & Pricing

What's the difference between Free and Pro? +

Free Version:

  • Latest free binary (older version)
  • One concurrent session
  • Requires GitHub sign-in
  • Good for testing and personal use

Pro Version:

  • Latest Pro binary with all patches
  • Multiple concurrent sessions (5 to 2000+)
  • Priority support
  • Always on the newest patches
  • Production-ready for scraping/automation
How do I get a license key? +

Getting a license key is easy:

Once you have a key, use it in your code:

# Python
browser = launch(license_key="cb_xxxxxxxx")

# JavaScript
const browser = await launch({ licenseKey: 'cb_xxxxxxxx' });

# Or set as environment variable
export CLOAKBROWSER_LICENSE_KEY=cb_xxxxxxxx
Can I use CloakBrowser in Docker? +

Yes! CloakBrowser has an official Docker image. Here are the common use cases:

# Quick test
docker run --rm cloakhq/cloakbrowser cloaktest

# Run a script
docker run --rm -v ./my_script.py:/app/my_script.py \
  cloakhq/cloakbrowser python my_script.py

# CDP server mode
docker run -d --name cloak -p 127.0.0.1:9222:9222 \
  cloakhq/cloakbrowser cloakserve

The image includes the free binary. For Pro, set the CLOAKBROWSER_LICENSE_KEY environment variable. Persistent profiles work by mounting a volume.

Ready to bypass bot detection?

Get started with the latest free build or upgrade to Pro for unlimited sessions

↑