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.

Platforms: Linux x64 v146 · Linux ARM64 v146 · macOS Intel v145 · macOS Apple Silicon v145 · Windows x64 v145
$ 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

Canvas behavior WebGL renderer Audio behavior Font enumeration Hardware concurrency Client rects GPU vendor/renderer Screen properties Automation compatibility Device memory WebGPU adapter Driver input behavior Timezone

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.

Free
$0
forever
  • Chromium v146 binary
  • 58 C++ source patches
  • All 5 platforms
  • Python + JavaScript
  • Playwright + Puppeteer
  • humanize=True
  • Community support
Team
$89/mo
10 active browser sessions
  • Always latest binary
  • Latest Chromium updates and compatibility improvements
  • All 5 platforms
  • Python + JavaScript
  • Playwright + Puppeteer
  • humanize=True
  • Email support
Subscribe
Business
$249/mo
unlimited sessions
  • Always latest binary
  • Latest Chromium updates and compatibility improvements
  • All 5 platforms
  • Python + JavaScript
  • Playwright + Puppeteer
  • humanize=True
  • Priority support
Subscribe

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.