CloakBrowser: Anti-Detect Chromium for Undetectable Browsing
CloakBrowser patches Chromium at the C++ source level with 73 fingerprint modifications compiled into the binary, passing Cloudflare Turnstile, FingerprintJS, and BrowserScan, and scoring 0.9 on reCAPTCHA v3. It is worth trying free for scraping or automating against anti-bot systems. The binary is proprietary.
What is CloakBrowser?
CloakBrowser is a custom Chromium binary with 73 fingerprint patches applied at the C++ source level, distributed as a drop-in Playwright/Puppeteer replacement for Python and JavaScript. The README says it auto-downloads the right binary on first launch, and you can swap existing Playwright code with a 3-line import change. A `humanize=True` flag adds behavioral realism to mouse, keyboard, and scroll interactions. MIT license on the wrapper; binary is proprietary.
Key Features for Undetectable Browsing
- ✓73 C++ source-level patches covering canvas, WebGL, audio, fonts, GPU, screen, WebRTC, network timing, and CDP input behavior
- ✓Drop-in Playwright/Puppeteer replacement — swap the import, keep the rest of your code
- ✓humanize=True flag for Bézier mouse curves, per-character typing, and realistic scroll patterns
- ✓geoip=True auto-detects timezone and locale from proxy exit IP, including WebRTC IP spoofing
- ✓reCAPTCHA v3 score of 0.9 (Pro/current build) versus 0.1 with stock Playwright — server-verified in the README's test table
- ✓Auto-downloads the correct Chromium binary for your platform on first launch (~200MB, cached locally)
- ✓Native SOCKS5 proxy support with UDP ASSOCIATE for QUIC/HTTP3 tunnels
- ✓Widevine DRM support on Linux via sideloaded CDM, auto-enabled on first launch with launch_persistent_context()
Getting Started with CloakBrowser
Python: `pip install cloakbrowser`; Python with geoip: `pip install 'cloakbrowser[geoip]'`. JavaScript: `npm install cloakbrowser playwright-core` for Playwright integration, or `npm install cloakbrowser puppeteer-core` for Puppeteer. .NET: `dotnet add package CloakBrowser`. On first run the binary auto-downloads (~200MB) for your platform and is cached locally. A free key is available via `cloakbrowser login` or at cloakbrowser.dev/free with GitHub sign-in.
Automating with CloakBrowser: Python and JavaScript
Python — basic headless launch: python from cloakbrowser import launch browser = launch() page = browser.new_page() page.goto("https://example.com") browser.close() Python — with residential proxy and behavioral realism: python browser = launch( proxy="http://user:pass@residential-proxy:port", geoip=True, humanize=True, headless=False, ) JavaScript — same pattern: javascript import { launch } from 'cloakbrowser'; const browser = await launch({ proxy: 'http://user:pass@proxy:port', geoip: true, humanize: true, });
Strengths
- ✓Source-level patches survive Chrome updates — the README says patches are rebased onto new Chromium versions rather than being rewrittten from scratch
- ✓Proven against 30+ live detection services including Cloudflare Turnstile and FingerprintJS per the README's test table
- ✓Zero learning curve for Playwright users — same API, same methods, just a different binary underneath
- ✓humanize flag handles behavioral detection without custom scripting
- ✓geoip auto-matches timezone, locale, and WebRTC IP to your proxy exit location
- ✓Free tier gives access to the latest build — not stuck on the v146 binary from GitHub Releases
Important Considerations and Limitations
- △The stealth Chromium binary itself is proprietary — only the Python/JS wrapper is MIT licensed. You are running closed-source software in your automation pipeline
- △Anti-bot systems evolve weekly — the README explicitly states an older binary quietly degrades. Staying current requires a paid Pro plan for production use, or manual re-testing on free
- △No CAPTCHA solving built in — it prevents CAPTCHAs from appearing by passing as human, but sites can still present them and CloakBrowser won't resolve them
- △Binary auto-download is a supply chain step — CloakBrowser verifies downloads with an Ed25519 signature against pinned checksums, but the trust model depends on their infrastructure
- △Docker image requires an environment variable flag for Widevine CDM fetching — not a one-liner out of the box for DRM video use cases
- △Windows native GPU passthrough means GPU-specific fingerprint variations may differ from Linux, potentially affecting detection consistency across platforms
CloakBrowser vs. Other Stealth Solutions
Frequently Asked Questions
CloakBrowser modifies Chromium's C++ source code directly — 73 patches covering fingerprints for canvas, WebGL, audio, fonts, GPU, screen, WebRTC, and network timing. These are compiled into the binary, so detection sites see a normal browser rather than a patched one. The README says this approach survives Chrome updates better than JavaScript injection tools that break often.
Yes. CloakBrowser wraps Playwright and Puppeteer APIs — you replace three lines of import and keep the rest of your code unchanged. The README shows a diff where `from playwright.sync_api import sync_playwright` becomes `from cloakbrowser import launch`, and all `page.` and `browser.` calls work identically.
Free gives one concurrent session on the latest build via GitHub sign-in at cloakbrowser.dev/free. Pro scales to 5, 20, 200, 2,000 concurrent sessions, or higher amounts, always on the newest patches first, with support. The README says the older v146 binary stays free on GitHub Releases but ages as detection evolves.
No — the README is explicit that CloakBrowser does not solve CAPTCHAs. It prevents them from appearing in the first place by making antibot systems score the browser as human. If a site still presents a CAPTCHA, CloakBrowser will not resolve it; bring your own solving service if needed.
Yes. The README provides a Docker command: `docker run --rm cloakhq/cloakbrowser cloaktest`. For Widevine DRM inside Docker, pass `-e CLOAKBROWSER_FETCH_WIDEVINE=1` and the entrypoint pulls the CDM from Google's component server automatically.
The Python/JS wrapper is MIT licensed. The stealth Chromium binary itself is proprietary — CloakBrowser Pro uses a license key, and the README notes that free builds also require a key obtained via GitHub sign-in.
The problem it solves
JavaScript-injection stealth tools (playwright-stealth, undetected-chromedriver) patch at the surface level — they set flags or inject scripts that antibot systems detect directly. Every Chrome update breaks them. The underlying issue is that config-level patches are themselves detectable signals: antibot systems look for the absence of artifacts a normal browser produces, and patched configs tend to produce a different kind of wrong signal rather than a clean one.
Best use cases
- •Scraping price data or content from sites protected by Cloudflare, or Kasada
- •Running AI agents that browse the web (browser-use, Crawl4AI, Stagehand, LangChain)
- •QA automation against sites that block headless Chrome detection
- •Scaling browser-based workflows to hundreds of concurrent sessions on Pro
- •Maintaining logged-in sessions across runs with persistent profiles
- •Automating ad verification, brand monitoring, or competitive intelligence behind anti-bot systems
Who should try it — and who should skip
Reach for CloakBrowser if you're scraping or automating against sites using Cloudflare, or FingerprintJS — especially if your current Playwright setup gets blocked or scores 0.1 on reCAPTCHA v3. It's also worth it for AI agent pipelines (browser-use, Crawl4AI, Stagehand) that need a real browser behind the scenes. Skip it if you just need basic headless browsing — stock Playwright is simpler and has no binary supply chain. Also skip if your org policy prohibits running proprietary binaries; the MIT license only covers the wrapper, not the stealth Chromium itself.
Related repositories
Curious whether CloakBrowser is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about CloakBrowser.
