Three lines to stealth
Same Playwright/Puppeteer API you already know. Just swap the import.
from cloakbrowser import launch
browser = launch()
page = browser.new_page()
page.goto("https://protected-site.com") # no more blocks
browser.close() import { launch } from 'cloakbrowser';
const browser = await launch();
const page = await browser.newPage();
await page.goto('https://protected-site.com');
await browser.close(); import { launch } from 'cloakbrowser/puppeteer';
const browser = await launch({ headless: true });
const page = await browser.newPage();
await page.goto('https://protected-site.com');
await browser.close(); Migrating? 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 Why CloakBrowser?
Config-level stealth breaks every Chrome update. We patch Chromium itself.
Source-level patches
22 C++ patches compiled into the Chromium binary. Not JavaScript injection, not config flags. Canvas, WebGL, audio, fonts, GPU — all modified before compilation. Detection sites see a real browser because it is a real browser.
Two layers of stealth
C++ patches handle fingerprints (GPU, screen, UA, voices, media devices). The Patchright driver eliminates CDP automation leaks (Runtime.enable, Chrome flags, console detection). Most tools only do one or the other.
Drop-in replacement
Same Playwright API. Same Puppeteer API. No new abstractions, no CAPTCHA-solving services, no new SDK to learn. Change your import, keep your code.
14/14 detection tests passed
All tests verified against live detection services. Last tested: Feb 2026 (Chromium 145).
| Detection Service | Stock Playwright | CloakBrowser | Notes |
|---|---|---|---|
| reCAPTCHA v3 | 0.1 (bot) | 0.9 (human) | Server-side verified |
| Cloudflare Turnstile (non-interactive) | FAIL | PASS | Auto-resolve |
| Cloudflare Turnstile (managed) | FAIL | PASS | Single click |
| ShieldSquare (yad2.co.il) | BLOCKED | PASS | Production site |
| FingerprintJS bot detection | DETECTED | PASS | demo.fingerprint.com |
| BrowserScan bot detection | DETECTED | NORMAL (4/4) | browserscan.net |
| bot.incolumitas.com | 13 fails | 1 fail | WEBDRIVER spec only |
| deviceandbrowserinfo.com | 6 true flags | 0 true flags | isBot: false |
navigator.webdriver | true | false | Source-level patch |
navigator.plugins.length | 0 | 5 | Real plugin list |
window.chrome | undefined | object | Present like real Chrome |
| UA string | HeadlessChrome | Chrome/145.0.0.0 | No headless leak |
| CDP detection | Detected | Not detected | isAutomatedWithCDP: false |
| TLS fingerprint | Mismatch | Identical to Chrome | ja3n/ja4/akamai match |
How it compares
| Feature | Playwright | playwright-stealth | undetected-chromedriver | Camoufox | CloakBrowser |
|---|---|---|---|---|---|
| reCAPTCHA v3 score | 0.1 | 0.3–0.5 | 0.3–0.7 | 0.7–0.9 | 0.9 |
| Cloudflare Turnstile | Fail | Sometimes | Sometimes | Pass | Pass |
| Patch level | None | JS injection | Config patches | C++ (Firefox) | C++ (Chromium) |
| Survives Chrome updates | N/A | Breaks often | Breaks often | Yes | Yes |
| Maintained | Yes | Stale | Stale | Dead (2025) | Active |
| Browser engine | Chromium | Chromium | Chrome | Firefox | Chromium |
| Playwright API | Native | Native | No (Selenium) | No | Native |
How it works
A thin wrapper around a custom-built Chromium binary.
Install
pip install cloakbrowser or npm install cloakbrowser
First launch
Binary auto-downloads for your platform (~200MB, cached locally)
Every launch
Playwright or Puppeteer starts with our binary + stealth args
Write code
Standard Playwright/Puppeteer API — nothing new to learn
22 source-level patches
Compiled into the binary — not injected via JavaScript, not set via flags.
v145 — Next-level stealth
Chromium 145 with significant upgrades across the board.
Be the first to know when v145 drops
Get notified when new builds, platforms, and Pro tier launch. No spam.