CloakBrowser Review 2026: The Open-Source Stealth Browser That Passes Every Bot Detection Test — A Playwright Replacement in 3 Lines
CloakBrowser is the fastest-growing GitHub repo of May 2026: 49 C++ source-level patches, reCAPTCHA v3 score 0.9, passes 30+ detection services. Free, open-source replacement for $299/month anti-detect browsers.
- MIT
- Updated 2026-05-14
{</* resource-info */>}
TL;DR: In May 2026, a new open-source project hit GitHub Trending #2 with 1,300+ stars in 24 hours. It applies 49 C++ source-level patches to Chromium, scores 0.9 on reCAPTCHA v3 (vs. 0.1 for stock Playwright), passes 30+ bot detection suites, and costs absolutely nothing. Here’s the complete technical breakdown.

The Problem Every Automation Engineer Faces #
If you’ve built web scrapers, browser automations, or AI agents that interact with websites, you know the drill:
- You write clean Playwright code. It works locally. You deploy it — Cloudflare Turnstile blocks it.
- reCAPTCHA v3 gives your script a 0.1 score. The site silently rejects every request.
- You add
playwright-stealth. It helps for a week. Chrome updates. It breaks again. - You try
undetected-chromedriver. Cloudflare has literally studied its source code and built countermeasures against every patch it applies. - You look at commercial anti-detect browsers like Multilogin or AdsPower. They cost $49–$299 per month. For a side project? No thanks.
On May 8, 2026, CloakBrowser (CloakHQ/CloakBrowser) appeared on GitHub Trending. Within 78 days, it accumulated 5,700+ stars. The community’s response was immediate and intense because it solves this problem with an approach nobody had taken at scale before: modifying Chromium’s C++ source code, compiling a real browser binary, and distributing it as a drop-in Playwright replacement.
How CloakBrowser Works: Source-Level vs. Runtime Patching #
Why JavaScript Injection Is Fundamentally Broken #
Modern bot detection doesn’t just check your User-Agent string. It analyzes dozens of subtle signals across the browser fingerprint surface:
| Detection Vector | What It Checks | How Old Tools “Fix” It | Why That Fails |
|---|---|---|---|
| Canvas fingerprinting | Subtle rendering differences in toDataURL | JS override of canvas methods | The override itself is detectable via timing and prototype analysis |
| WebGL vendor/renderer | GPU info exposed via WebGL context | JS string replacement | WebGL contexts are sealed; replacement leaves traces |
| AudioContext | Audio signal processing artifacts | JS AudioContext wrapper | The wrapper’s constructor signature differs from native |
| Font enumeration | List of installed system fonts | JS fonts.check() override | Inconsistent with the actual font rasterization on the system |
| Screen properties | colorDepth, pixelRatio, availHeight | JS window.screen patch | Real Chrome has specific values per platform; arbitrary patches mismatch |
| navigator.webdriver | Automation flag | JS property override | Object.getOwnPropertyDescriptor reveals the override |
| CDP artifacts | Chrome DevTools Protocol markers | Launch flags | New Chrome versions add new CDP detection surfaces |
| Network timing | DNS resolution and TCP connect times | Proxy routing | Doesn’t mask the timing signature of headless operation |
Tools like playwright-stealth and undetected-chromedriver operate at the JavaScript runtime layer or the configuration flag layer. Anti-bot vendors know this. They fingerprint the patches themselves. When Chrome updates and changes internal structures, every JS patch breaks because it was written for the old internals.
CloakBrowser’s C++ Source-Level Approach #
CloakBrowser takes a radically different path. It maintains a fork of Chromium with 49 C++ patches applied directly to the engine source code. These patches are compiled into the browser binary. When a detection system queries navigator.webdriver, the engine’s native implementation returns false — not because a JS script overrode it, but because the C++ code that implements navigator.webdriver was modified at compile time.
The 49 patches cover:
- Canvas 2D & WebGL rendering pipelines — pixel-perfect output matching real Chrome
- AudioContext DSP — signal processing chain modified to match real hardware
- Font subsystem — enumeration returns realistic system font lists per platform
- GPU reporting — WebGL vendor/renderer strings match real NVIDIA/Intel/AMD hardware
- Screen metrics —
colorDepth,availWidth,pixelRatiomatch the spoofed platform profile - WebRTC ICE — IP isolation and proxy egress IP spoofing prevent real IP leakage
- Network stack — DNS and TCP timing normalised to match residential connection patterns
- Automation signal removal — CDP input behavior mimics real user mouse/keyboard events
- Humanize behavior engine — optional Bézier curve mouse trajectories, natural typing with think-pauses, realistic scroll physics
The critical insight: detection systems see a real browser because, at the binary level, it is a real browser. There is no patching layer to detect.
Benchmark Results: 30/30 Detection Services Passed #
Independent testing in April 2026 produced the following results:
| Detection Service | Stock Playwright | playwright-stealth | undetected-chromedriver | CloakBrowser |
|---|---|---|---|---|
| reCAPTCHA v3 (server-verified) | 0.1 (bot) | 0.3–0.5 | 0.3–0.7 | 0.9 (human) |
| Cloudflare Turnstile (non-interactive) | Fail | Sometimes | Sometimes | Pass |
| Cloudflare Turnstile (managed) | Fail | Fail | Intermittent | Single-click pass |
| FingerprintJS | Bot detected | Bot detected | Intermittent | Pass |
| BrowserScan (4/4 scores) | Bot flagged | Mixed | Mixed | All normal |
| bot.incolumitas.com | 13 failures | 8 failures | 5 failures | 1 failure |
| deviceandbrowserinfo.com isBot | true | true | Intermittent | false |
| ShieldSquare | Blocked | Blocked | Intermittent | Passed |
The reCAPTCHA v3 score of 0.9 is particularly significant because it is server-side verified. Google’s backend analyzes the full behavioral chain — not just the client-side score. A 0.9 means the server, after processing all telemetry, classifies this browser as a genuine human user.
Installation & Quick Start: 30 Seconds to Stealth #
Python #
pip install cloakbrowser
from cloakbrowser import launch
browser = launch(
proxy="http://user:pass@proxy:8080",
humanize=True, # Human-like mouse, keyboard, scroll
geoip=True # Auto timezone/locale from proxy IP
)
page = browser.new_page()
page.goto("https://protected-site.com") # No blocks
browser.close()
JavaScript / TypeScript (Playwright API) #
npm install cloakbrowser
import { launch } from 'cloakbrowser';
const browser = await launch({ humanize: true });
const page = await browser.newPage();
await page.goto('https://protected-site.com');
await browser.close();
Docker (No Install Required) #
Test stealth capabilities instantly:
docker run --rm cloakhq/cloakbrowser cloaktest
Migrating from Playwright #
One-line change:
# Before
from playwright.sync_api import sync_playwright
pw = sync_playwright().start()
browser = pw.chromium.launch()
# After
from cloakbrowser import launch
browser = launch()
# Everything else stays identical
page = browser.new_page()
page.goto("https://example.com")
Framework Integrations #
CloakBrowser works with any automation framework that uses Playwright or Chromium:
| Framework | Language | Stars | Integration Method |
|---|---|---|---|
| browser-use | Python | 70K | Direct binary launch |
| Crawl4AI | Python | 58K | CDP connection |
| Scrapling | Python | 21K | CDP connection |
| Stagehand | TypeScript | 21K | Direct launch |
| LangChain | Python | 100K+ | Custom loader |
| Selenium | Python | — | Stealth args export |
Example with Crawl4AI via CDP:
from cloakbrowser import launch_async
browser = await launch_async(args=["--remote-debugging-port=9242"])
# Connect Crawl4AI to http://127.0.0.1:9242
# All stealth flags are already set on the binary
Cost Comparison: Free vs. Commercial #
| Tool | Monthly Cost | Open Source | Chromium Native | Source-Level Patches |
|---|---|---|---|---|
| Multilogin | €99–€399 | ❌ | ✅ | ❌ |
| AdsPower | $9–$50 | ❌ | ✅ | ❌ |
| GoLogin | $49–$149 | ❌ | ✅ | ❌ |
| Camoufox | Free | ✅ | ❌ (Firefox) | ✅ |
| CloakBrowser | Free | ✅ | ✅ | ✅ |
CloakBrowser is the only solution that combines zero cost, open-source transparency, native Chromium/Playwright compatibility, and C++ source-level fingerprint patching. For indie developers, data teams, and research projects, this eliminates a $600–$3,600/year line item.
Best Use Cases #
- E-commerce price monitoring — Track Amazon, Walmart, Target without blocks
- SEO rank tracking — Get unpersonalised SERP results by mimicking real user sessions
- Ad verification — Check ad placements across geographies with residential proxy + stealth
- AI agent browser automation — Power browser-use, Stagehand, and agent frameworks with invisible browsing
- Academic & public data collection — Scrape open datasets, government filings, patent databases
- Security testing — Test registration flows and login systems against production anti-bot stacks
Best Practices #
- Always use proxies: CloakBrowser solves the browser fingerprint problem. IP reputation is a separate layer. Use residential or ISP proxies for protected targets.
- Enable
humanize=True: This adds behavioral stealth (mouse curves, typing patterns, scroll physics) that many detection systems use alongside fingerprint analysis. - Match timezone and locale: Use
geoip=Trueto auto-detect from your proxy, or set manually. A New York IP with a Tokyo timezone triggers flags. - Rate-limit your requests: Even perfect fingerprints won’t save you from hitting 50 pages in 10 seconds. Mimic human browsing cadence (3–7 seconds per page).
- Keep the binary updated: CloakBrowser includes an auto-updater. Each wrapper version pins a specific binary version, ensuring compatibility.
Limitations & Caveats #
- Does not solve CAPTCHAs: The goal is prevention, not solving. If a site shows a CAPTCHA, you’ll need a solving service (CapSolver, 2Captcha) as fallback.
- No built-in proxy rotation: Bring your own proxy pool. CloakBrowser makes each proxy’s traffic look legitimate.
- Binary trust: The ~200MB custom Chromium requires trusting CloakHQ’s build pipeline. SHA-256 checksums are provided for verification.
- macOS inconsistencies: Some aggressive detection systems catch macOS fingerprint profiles. Switch to Windows spoofing via
--fingerprint-platform=windowsif needed. - Legal boundaries: MIT-licensed, but prohibited uses include unauthorized automation, credential stuffing, and bulk account creation abuse.
Conclusion: A Paradigm Shift in Browser Automation #
CloakBrowser represents a fundamental shift from runtime masking to source-level reconstruction. The difference is not incremental — it’s categorical. JavaScript injection tools will always be in an arms race they can’t win because the patching layer itself becomes a detection signal. Source-level patches, compiled into the browser binary, are indistinguishable from normal browser behavior because they are normal browser behavior.
For developers building scrapers, AI agents, and automation pipelines in 2026, CloakBrowser is now the default choice for any project that needs to interact with protected websites. The combination of zero cost, native Playwright compatibility, and genuinely undetectable operation makes commercial anti-detect browsers hard to justify.
If you’re still fighting with playwright-stealth or paying monthly subscriptions for browser profiles, try CloakBrowser. Three lines of code. Thirty seconds. Problem solved.
Resources #
- GitHub: https://github.com/CloakHQ/CloakBrowser
- Documentation: https://cloakbrowser.dev
- PyPI: https://pypi.org/project/cloakbrowser
- npm: https://npmjs.com/package/cloakbrowser
- Docker:
docker run --rm cloakhq/cloakbrowser cloaktest
Recommended Tools #
For developers building or deploying open-source AI tools, we recommend:
- DigitalOcean — $200 free credit for new users, 14+ global regions, one-click GPU/CPU droplets ideal for AI workloads.
Affiliate link — supports dibi8.com at no cost to you.
Published May 14, 2026. Benchmarks based on CloakBrowser v0.3.26 (Chromium 146) and independent third-party testing data.
💬 Discussion