CloakBrowser is a modified Chromium binary that addresses the Chromium fingerprinting bypass problem at the source level — not through JavaScript injection or browser flags. Version 0.3.26, released 28 April 2026, applies 49 C++ patches on Linux x86_64 and Windows, and 57 on Linux ARM64. macOS gets 26 patches. The project hit GitHub Trending on 14 May with roughly 9,700 stars.

The distinction from tools like puppeteer-extra-plugin-stealth is the layer where patching happens. JS-layer stealth injects overrides at runtime. A bot detector that runs before or around your JavaScript can observe the real values before the override takes effect, or detect the override itself as a signal. CloakBrowser modifies the values in the compiled Chromium binary so there is nothing to override at runtime.

What gets patched

The patches cover these categories:

Canvas fingerprinting. CloakBrowser injects deterministic noise into canvas rendering at the C++ level and spoofs the resulting hash. Each seed produces a unique, consistent canvas fingerprint — consistent across reloads for the same session, distinct from other sessions.

WebGL. The binary overrides UNMASKED_VENDOR_WEBGL and UNMASKED_RENDERER_WEBGL with realistic GPU profiles. The GPU model is generated from the fingerprint seed rather than read from the actual hardware.

AudioContext. The AAC audio encoder and AudioContext API are patched to normalize oscillator output differences. The approach produces consistent audio fingerprints without the slight variations that real hardware introduces and that bot detectors use as a signal.

Font enumeration. Font lists are normalized so the enumerated set matches a plausible real-user profile rather than whatever fonts happen to be installed in the automation environment.

Screen and window properties. Screen dimensions, device pixel ratio, and window geometry are spoofed to match realistic desktop values.

WebRTC. IP leak behavior is patched so WebRTC does not expose the actual machine IP through local candidate enumeration.

Automation signals. navigator.webdriver, Chrome DevTools Protocol input behavior, and other automation-specific API responses are patched to match values from a browser run by a human.

Network timing. Timing values that differ between headless and headed Chrome are normalized.

Platform patch counts differ: Linux x86_64 and Windows get 58 patches each; macOS gets 26. The macOS count is lower because several aggressive patches create inconsistencies that bot detection catches on Apple platforms. For sites with aggressive detection, the CloakBrowser docs recommend running Windows fingerprints.

The project ships as a drop-in replacement for Playwright and Puppeteer. Installation is through pip or npm:

pip install cloakbrowser
npm install cloakbrowser

A Docker image is also available. The wrapper downloads the platform-appropriate Chromium binary automatically.

How this compares to JS-layer stealth

puppeteer-extra-plugin-stealth and similar tools patch browser APIs by injecting JavaScript at page load. The problem is timing: a bot detector that runs before your JS, or that observes the patching act itself, can read the real values. CloakBrowser removes this timing window by compiling the patches into the binary. There are no runtime values to intercept because the values are never set to anything else.

Brave Browser takes a different approach. Its fingerprinting protections are built into the browser for privacy purposes, but Brave is not designed for automation and does not patch the automation-specific signals (webdriver flag, CDP behavior) that headless detection targets. Tor Browser routes traffic through the Tor network and normalizes a large set of browser properties to a shared fingerprint, but it trades away per-session fingerprint uniqueness, which creates its own detection signal in some contexts. CloakBrowser is specifically designed for automation workloads and does not touch network routing.

What it does not solve

CloakBrowser does not close the behavioral layer of detection. Mouse movement patterns, scroll velocity, form interaction timing, and click trajectory analysis are not addressed. For Cloudflare Turnstile and reCAPTCHA Enterprise, behavioral scoring is the mechanism that matters most. Passing browser fingerprint checks does not automatically pass behavioral challenges.

Network-level signals are also out of scope: ASN reputation, datacenter IP ranges, and TLS fingerprinting are not touched. CloakBrowser ships no network rotation and no third-party CAPTCHA solving.

One documented tradeoff: storage quota normalization passes FingerprintJS but can flag incognito mode to other detection services. There is no way to resolve this without making a choice about which detection surface to expose.

Bot detection is an arms race. Detection services can adapt to any published patch set once they know what to look for.

Who this is for

The primary audience is developers building scrapers or test automation against sites with aggressive bot detection. Security researchers testing bot-detection implementations are the secondary group — if you want to know what Cloudflare Turnstile actually catches versus what it misses, running a patched Chromium binary is a reasonable starting point.

Using automation tools against sites that prohibit it in their terms of service is a separate question that each operator has to answer for themselves.

The source is at github.com/CloakHQ/CloakBrowser. The README documents the patch count per platform and includes a comparison against JS-layer stealth approaches.