CloakBrowser is a free, open source data extraction & web scraping project written in Python and released under MIT. It has 31,528 GitHub stars, 2,612 forks and 224 open issues, and was last pushed 4 days ago. On this registry it ranks #7 of 45 tracked projects in Data Extraction & Web Scraping, with 5 head-to-head comparisons available. It gained 59 stars over the last 3 tracked days.

What is CloakBrowser?

CloakBrowser is a stealth Chromium build for Python and JavaScript teams that need browser automation to survive bot-detection systems, aimed at scraping and AI-agent engineers who want to replace Playwright or Puppeteer without rewriting their code.

What it is

CloakBrowser is a real Chromium binary whose fingerprints are modified at the C++ source level rather than through a patched configuration file or a JavaScript injection. The current release, v0.5.10, carries 87 source-level patches covering canvas, WebGL, audio, fonts, GPU, screen, WebRTC, network timing, automation signals and CDP input behavior, rebased onto Chromium 151 (151.0.7922.108.6 on Linux x64, Linux ARM64 and Windows x64; 151.0.7922.108.3 on macOS). It lives in the Python and JavaScript browser-automation ecosystem and presents itself as a drop-in Playwright and Puppeteer replacement, so existing scripts keep the same API and change only their import.

The concrete problem it solves is detection. Anti-bot systems score patched-config browsers and JS-injected browsers as automated because those approaches leave traces in the runtime; CloakBrowser's claim is that because the fingerprint changes are compiled into the binary, antibot systems score it as a normal browser because it is a normal browser. Alongside the binary patches it ships a humanize=True flag that produces human-like mouse curves, keyboard timing and scroll patterns, and it is tested against Cloudflare Turnstile, FingerprintJS, BrowserScan and more than 30 detection sites.

Key capabilities

  • 87 source-level C++ patches across canvas, WebGL, audio, fonts, GPU, screen, WebRTC, network timing, automation signals and CDP input behavior.
  • humanize=True adds human-like mouse curves, keyboard timing and scroll patterns through a single flag, targeting behavioral detection.
  • Passes Cloudflare Turnstile with three live tests (headed mode, macOS), plus FingerprintJS and BrowserScan, tested against 30+ detection sites.
  • Pro tier reports a 0.9 reCAPTCHA v3 score, described as human-level and server-verified.
  • Drop-in imports for three runtimes: from cloakbrowser import launch in Python, launch from cloakbrowser in JavaScript Playwright, and cloakbrowser/puppeteer for Puppeteer.
  • Auto-downloads the correct binary on first run (roughly 200MB, cached locally), selecting the free or Pro build from your license.
  • Proxy and environmental controls: proxy=, geoip=True to match timezone and locale to the proxy IP, and headless=False for sites that detect headless mode.

Who uses it and how

  • Teams migrating an existing Playwright codebase, where the change is a one-line import swap and the rest of the script runs unchanged.
  • Scrapers working against anti-bot protected targets, adding a residential proxy plus geoip=True, headless=False and humanize=True to reach a passing score.
  • AI-agent and browser-automation projects, reflected in the ai-agents and browser-automation topics, that need unattended sessions to look like ordinary browsers.
  • Operators scaling past a single machine, using the Pro Stable build with a license_key (licenseKey in JS) or the CLOAKBROWSER_LICENSE_KEY environment variable to run thousands of sessions across Linux x64, Linux ARM64, Windows x64 and macOS.
  • .NET shops, through the community-maintained CloakBrowser NuGet package built on Microsoft.Playwright.

Getting started

Install with pip install cloakbrowser or npm install cloakbrowser (add playwright-core or puppeteer-core as appropriate); the stealth binary downloads automatically on first run. To try it without installing anything, run docker run --rm cloakhq/cloakbrowser cloaktest.

How it compares

The facts name no paid products that CloakBrowser replaces, but it positions itself directly against Playwright and Puppeteer, the two libraries it drops into: unlike them, it ships a Chromium binary with compiled-in fingerprint patches and the humanize behavior layer instead of relying on stock browser launches. Puppeteer support is routed through a separate cloakbrowser/puppeteer entry point, and the .NET client is community-maintained rather than first-party. Beyond that pairing, no comparable tool is identified in the material here.

When to use it — and when not to

A self-hoster takes on the stealth binary itself: roughly 200MB downloaded and cached locally on first run, a residential proxy if the target is protected, and for the Pro build a license key supplied per call or through the environment. The repository is MIT-licensed and actively pushed, but it carries 224 open issues and a troubleshooting section covering site-specific failures against FingerprintJS, Kasada and reCAPTCHA, so teams expecting a zero-maintenance drop-in should plan for per-target tuning. Anyone whose targets have no bot protection gains little over stock Playwright, and anyone uncomfortable running a prebuilt patched Chromium binary, or depending on a vendor's own test results for the detection claims, should look elsewhere.

project readme (upstream, from github) — read inline

CloakBrowser

PyPI npm License Last Commit
Stars PyPI Downloads npm Downloads Docker Pulls


Stealth Chromium that passes every bot detection test.

Not a patched config. Not a JS injection. A real Chromium binary with fingerprints modified at the C++ source level. Antibot systems score it as a normal browser — because it is a normal browser.

Cloudflare Turnstile — 3 Tests Passing
Cloudflare Turnstile — 3 live tests passing (headed mode, macOS)


Drop-in Playwright/Puppeteer replacement for Python and JavaScript.
Same API, same code — just swap the import. 3 lines of code, 30 seconds to unblock.

  • 87 source-level C++ patches — canvas, WebGL, audio, fonts, GPU, screen, WebRTC, network timing, automation signals, CDP input behavior
  • humanize=True — human-like mouse curves, keyboard timing, and scroll patterns. One flag, behavioral detection passes
  • Pro: 0.9 reCAPTCHA v3 score — human-level, server-verified
  • Passes Cloudflare Turnstile, FingerprintJS, BrowserScan — tested against 30+ detection sites
  • Auto-downloads the right binary — free or Pro based on your license
  • pip install cloakbrowser or npm install cloakbrowser — binary auto-downloads, zero config
  • Latest binary, free to trysign in with GitHub, point the newest build at your hardest target, scale to thousands of sessions on Pro

Try it now — no install needed:

docker run --rm cloakhq/cloakbrowser cloaktest

Python:

from cloakbrowser import launch

browser = launch()
page = browser.new_page()
page.goto("https://example.com")
browser.close()

JavaScript (Playwright):

import { launch } from 'cloakbrowser';

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

Also works with Puppeteer: import { launch } from 'cloakbrowser/puppeteer' (details)

For sites with anti-bot protection, add a residential proxy and these flags:

browser = launch(
    proxy="http://user:pass@residential-proxy:port",  # residential IP, not datacenter
    geoip=True,       # match timezone + locale to proxy IP
    headless=False,    # some sites detect headless even with C++ patches
    humanize=True,     # human-like mouse, keyboard, scroll
)
const browser = await launch({
    proxy: 'http://user:pass@residential-proxy:port',
    geoip: true,
    headless: false,
    humanize: true,
});

See Troubleshooting for site-specific issues (FingerprintJS, Kasada, reCAPTCHA).

Install

Python:

pip install cloakbrowser

JavaScript / Node.js:

# With Playwright
npm install cloakbrowser playwright-core

# With Puppeteer
npm install cloakbrowser puppeteer-core

.NET / C#:

dotnet add package CloakBrowser

Community-maintained .NET client built on Microsoft.Playwright. See dotnet/README.md for the full API.


On first run, the stealth Chromium binary is automatically downloaded (~200MB, cached locally).

Optional: Auto-detect timezone/locale from proxy IP:

pip install 'cloakbrowser[geoip]'

Migrating from Playwright? One-line change:

- from playwright.sync_api import sync_playwright
- pw = sync_playwright().start()
- browser = pw.chromium.launch()
+ from cloakbrowser import launch
+ browser = launch()

page = browser.new_page()
page.goto("https://example.com")
# ... rest of your code works unchanged

Star to show support — Watch releases to get notified when new builds drop.


Latest: v0.5.10 — 87 source-level stealth patches (Chromium 151.0.7922.108.6)

  • CloakBrowser Pro Stable — Chromium 151.0.7922.108.6 on Linux x64, Linux ARM64, and Windows x64; macOS on 151.0.7922.108.3. Set a license_key (licenseKey in JS) or the CLOAKBROWSER_LICENSE_KEY env var and the wrapper fetches the latest Stable build for your platform automatically. See CloakBrowser Pro
  • .NET 8 / C# client — CloakBrowser now ships as a NuGet package (CloakBrowser), mirroring the Python and JS wrappers.
  • Chromium 151 upgrade — rebased the full patch set onto Chromium 151 (Linux, Windows, and macOS), re-validated against reference data
  • 87 fingerprint patches — rendering consistency improvements across Linux and Windows, corrected GPU/display/graphics parameters to match stock Chrome profiles
  • Windows native GPU passthrough — real hardware values pass through directly instead of being spoofed, matching real browser behavior
  • HTTP proxy inline credentials — new network-layer support for proxies with inline authentication
  • extension_paths — load Chrome extensions in all launch functions
  • Humanize actionability — auto-wait for visible, enabled, stable elements before humanized actions
  • Per-call human_config — override humanize settings on individual method calls
  • Composable JS helpersbuildLaunchOptions() and humanizeBrowser() for custom Playwright integrations
  • Native SOCKS5 proxyproxy="socks5://user:pass@host:port" works directly in all launch functions, Python + JS. QUIC/HTTP3 tunnels through SOCKS5 via UDP ASSOCIATE
  • Proxy signal removal — DNS/connect/SSL timing zeroed, proxy cache headers stripped, Proxy-Connection header leak removed
  • Chromium 146 upgrade — rebased all patches from 145.0.7632.x to 146.0.7680.177
  • WebRTC IP spoofing--fingerprint-webrtc-ip=auto resolves your proxy's exit IP and spoofs WebRTC ICE candidates. Auto-injected when using geoip=True (no extra network call)
  • humanize=True — one flag makes all mouse, keyboard, and scroll interactions behave like a real user. Bézier curves, per-character typing, realistic scroll patterns
  • Stealthy with zero flags — binary auto-generates a random fingerprint seed at startup. No configuration required
  • Timezone & locale from proxy IPlaunch(proxy="...", geoip=True) auto-detects timezone and locale
  • Persistent profileslaunch_persistent_context() keeps cookies and localStorage across sessions, bypasses incognito detection

See the full CHANGELOG.md for details.

Why CloakBrowser?

  • Config-level patches breakplaywright-stealth, undetected-chromedriver, and puppeteer-extra inject JavaScript or tweak flags. Every Chrome update breaks them. Antibot systems detect the patches themselves.
  • CloakBrowser patches Chromium source code — fingerprints are modified at the C++ level, compiled into the binary. Detection sites see a real browser because it is a real browser.
  • Source-level stealth — C++ patches handle fingerprints (GPU, screen, UA, hardware reporting) at the binary level. No JavaScript injection, no config-level hacks. Most stealth tools only patch at the surface.
  • Same behavior everywhere — works identically local, in Docker, and on VPS. No environment-specific patches or config needed.
  • Works with AI agents and automation frameworks — drop-in stealth for browser-use, Crawl4AI, Scrapling, Stagehand, LangChain, Selenium, and more. See integrations.

CloakBrowser doesn't solve CAPTCHAs — it prevents them from appearing. No CAPTCHA-solving services, no proxy rotation built in — bring your own proxies, use the Playwright API you already know.

CloakBrowser Pro

Anti-bot systems change every week an

readme truncated — read the full docs on github

Frequently asked questions

Is CloakBrowser free to use?

CloakBrowser is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does CloakBrowser do?

Stealth Chromium that passes every bot detection test. Drop-in Playwright replacement with source-level fingerprint patches. 30/30 tests passed.

What is CloakBrowser written in?

CloakBrowser is primarily written in Python. Its source is publicly available at https://github.com/CloakHQ/CloakBrowser, and it has 31,528 GitHub stars.