A Chromium-based browser
for developers and automation.
A real Chromium binary with source-level Chromium modifications for consistent, reproducible behavior across supported platforms. Not a config tweak, not a JavaScript layer — it is a real browser.
Drop-in Playwright/Puppeteer replacement for Python and JavaScript. Same API, same code. 3 lines of code to get started.
pip install cloakbrowser npm install cloakbrowser docker run --rm cloakhq/cloakbrowser cloaktest Start in three lines
Same Playwright/Puppeteer API you already know. Just swap the import.
from cloakbrowser import launch
browser = launch()
page = browser.new_page()
page.goto("https://example.com")
browser.close() import { launch } from 'cloakbrowser';
const browser = await launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await browser.close(); import { launch } from 'cloakbrowser/puppeteer';
const browser = await launch({ headless: true });
const page = await browser.newPage();
await page.goto('https://example.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?
Built from Chromium with source-level modifications for consistent behavior and automation compatibility.
Source-level patches
58 C++ patches compiled into the Chromium binary. Not JavaScript injection, not config flags. Canvas, WebGL, audio, fonts, and GPU behavior are handled at the browser source level for consistency and reproducibility — because it is a real browser.
Browser and driver consistency
C++ source modifications keep browser characteristics (GPU, screen, UA, hardware reporting) consistent. The driver layer is designed to keep automation behavior consistent with regular browser sessions. Most tools only do one or the other.
Drop-in replacement
Same Playwright API. Same Puppeteer API. No new abstractions, no extra services, no new SDK to learn. Change your import, keep your code.
Interaction timing controls
humanize=True adds optional interaction timing controls for testing realistic user flows. One flag, no extra code.
Works with any automation framework
Works with Playwright, Puppeteer, Selenium, and AI browser-agent workflows.
Production-ready
Docker image, timezone configuration, persistent browser profiles, Chrome extension loading, and a binary management CLI. Everything you need to deploy at scale.
CloakBrowser is a browser environment, not an automation service. It bundles no third-party solving services and no network rotation — use it within your own environment, with the Playwright API you already know.
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 + launch args
Write code
Standard Playwright/Puppeteer API — nothing new to learn
58 source-level patches
Compiled into the binary — not injected via JavaScript, not set via flags.
Pricing
Browser environments evolve quickly. Free v146 works today. Pro keeps you on the latest build.
- Chromium v146 binary
- 58 C++ source patches
- All 5 platforms
- Python + JavaScript
- Playwright + Puppeteer
- humanize=True
- Community support
- Always latest binary
- Latest Chromium updates and compatibility improvements
- All 5 platforms
- Python + JavaScript
- Playwright + Puppeteer
- humanize=True
- Email support
- Always latest binary
- Latest Chromium updates and compatibility improvements
- All 5 platforms
- Python + JavaScript
- Playwright + Puppeteer
- humanize=True
- Email support
- Always latest binary
- Latest Chromium updates and compatibility improvements
- All 5 platforms
- Python + JavaScript
- Playwright + Puppeteer
- humanize=True
- Priority support
FAQ
What's the difference between Free and Pro?
Free gets Chromium v146 with 58 C++ source patches, all 5 platforms, full wrapper features. Pro gets the latest version with new patches and Chromium updates as browser environments evolve. When the next version ships, the current Pro version becomes free.
Does the wrapper stay free?
Yes. The Python and JavaScript wrapper is MIT open source, forever. Pro is only about the compiled Chromium binary.
Can I use the free version commercially?
Yes. v146 and earlier are free for personal and commercial use. No restrictions on how many sessions, no license key needed.
What happens when I cancel?
Your subscription stays active until the end of the billing period. The binary you already downloaded keeps working. There is no DRM or phone-home. You just stop getting new versions.
How does the version lifecycle work?
v147 is Pro-only today. When v148 ships, v147 becomes available as the free public release. Always one version behind for free users. Browser environments and the web evolve constantly, so older versions naturally fall behind over 1-2 months.
Do I need a license key in my code?
Set CLOAKBROWSER_LICENSE_KEY as an environment variable. The wrapper downloads the latest Pro binary automatically. No code changes needed.
What payment methods do you accept?
Payment methods will be shown at checkout. 14-day money-back guarantee.
Stay in the loop
Get notified when new builds and platforms launch. No spam.