Back to all posts

Stealth tools · Sep 25, 2026 · 5 min read

CloakBrowser review: 87 patches and noise switched on

CloakBrowser reviewed for AI agents: what its 87 Chromium patches cover, why noise and a new seed per launch are on by default, and where Playwright remains.

DG
Pixel art of a mountain peak cloaked in a thick layer of cloud at blue hour, only its tip visible above it

In short

CloakBrowser is a Chromium build with 87 source-level C++ patches that replaces Playwright or Puppeteer in one line, and in Ian L. Paterson's May 2026 benchmark it reached 26 of 31 targets, second only to nodriver. Two of its defaults work against an agent that keeps accounts: every launch draws a fresh random fingerprint seed, and canvas, WebGL and audio noise stays on until you pass --fingerprint-noise=false, the fix its own troubleshooting table gives for noise injection detected by ML.

CloakBrowser went from a repository created in February 2026 to 31,674 GitHub stars by September, and it did so with a promise developers want to hear: keep your Playwright code, swap the browser, and the detection goes away. We read its README, its defaults and its own test table on 24 September 2026, and set them next to what we measured on the same axes.

What is CloakBrowser?

CloakBrowser is a patched Chromium build with Python and JavaScript wrappers that its README calls a "Drop-in Playwright/Puppeteer replacement for Python and JavaScript". The wrapper launches the patched binary with its own arguments and returns an ordinary Playwright Browser object, so existing code keeps its API. The repository is MIT licensed and belongs to an organisation account. The newest build is free with a GitHub sign-in for one concurrent session, larger concurrency is a paid Pro plan, and an older Chromium 146 build stays free on the releases page.

What do its 87 patches cover?

The 87 patches cover most of the surfaces a page reads through JavaScript, plus some below it. The README lists "canvas, WebGL, audio, fonts, GPU, screen, WebRTC, network timing, automation signals, CDP input behavior", and its test table claims a TLS fingerprint "Identical to Chrome". Two things about that table deserve credit: it runs every check against stock Playwright as a control, and it names the detection service and the build for each row.

One row needs context. The table reports a reCAPTCHA v3 score of 0.9 against 0.1 for stock Playwright. On a fresh site key with no visitor history, reCAPTCHA v3 returned a constant 0.9 to every browser we tried, including an untouched Chrome, so that row says little unless the key has a history.

Why is noise on by default a problem?

Noise on by default is a problem because an added offset produces values no real device draws, and a checker can see that. CloakBrowser's own troubleshooting table lists "Noise injection detected by ML" as a known cause of being flagged, with --fingerprint-noise=false as the remedy, so the switch sits in the table of problems rather than in the defaults. We measured the same thing on our own engine before we removed our noise.

CloakBrowser defaultWhat we measured on that axisResult
Canvas, WebGL and audio noise oncanvas readback with a seeded offset, 5 profiles on one machine5 of 5 distinct hashes, flagged as manipulated
A fresh random seed at every launcha returning profile with a new device each timenot measured; the README itself warns about it
On Linux, the wrapper presents Windowsour own Windows persona over a Linux engineremoved on 11 September 2026 as a contradiction
Source: CloakBrowser README read 24 September 2026; Scalebrowser engine measurements, July and September 2026

The second row is CloakBrowser's own warning: its README advises a fixed seed when revisiting a site, because "a random seed makes every session look like a different device". The seed exists as --fingerprint=seed; the default is the random one.

What does the Linux wrapper do?

On Linux the wrapper passes --fingerprint-platform=windows, so a browser running on Linux reports itself as a Windows desktop. The README is candid about the cost: a Windows browser without Windows fonts "is itself a bot tell", and the warning about missing fonts can be silenced "if you accept the tradeoff". We ran the same idea ourselves and removed it: a Windows persona over our Linux engine showed a Direct3D renderer string over OpenGL or Vulkan pixels, Linux text rasterisation and Linux emoji under a Windows user agent. Since then a profile only starts on the operating system its persona names.

Why patch Chromium but keep Playwright?

CloakBrowser patches Chromium thoroughly and keeps Playwright as the way to drive it, and Ian L. Paterson's benchmark of 7 tools against 31 targets names that control plane as the limit: "Playwright forks fail regardless of patch quality, and defeating that layer takes a control plane that is not Playwright." CloakBrowser reached 26 of 31 targets there, 3 gated and 2 blocked, and only nodriver, which drives Chrome over CDP without Playwright, had no block at all. The README makes a related point about the other wrapper: it recommends Playwright over Puppeteer for reCAPTCHA Enterprise, because "Puppeteer's CDP protocol leaks automation signals". Our comparison of seven stealth tools for automation puts the control plane first for the same reason.

So which should you pick?

SituationPickWhy
Existing Playwright code, one-off runsCloakBrowserone-line swap, broad source-level patches
The same accounts every dayCloakBrowser with a fixed seed and noise offthe defaults give a new, noisy device per launch
Linux servers presenting Windowsa machine that runs the OS it claimsfonts, text and GPU output reveal the real one
Targets that fingerprint the automation protocola driver that is not Playwrightthe benchmark's cliff sits in the control plane

Our verdict: CloakBrowser is a thoroughly patched Chromium build that publishes its test table with a control column, and for a one-off job it is a one-line improvement over stock Playwright. For an agent that keeps accounts, change two defaults on day one, pass a fixed seed and turn noise off, and run it on the operating system it claims. The migration guide for Playwright and Puppeteer shows how the same code attaches to a profile over CDP instead.

Scalebrowser gives each agent its own isolated browser with a persistent identity, on your own machine, so a run stays signed in, handles the captcha and finishes without anyone watching it.

Start the 7-day trial

Run it on your own machine

Seven days to try it with your own agents on your own sites. Starting the trial needs a card.

Start the 7-day trial
DG

Davide Grasböck

Founder, Scalebrowser

Builds Scalebrowser, the browser layer for AI agents that runs on your own machine. Measures every change a web page could observe against a real browser before it ships, and writes up the ones that turned out wrong.