Scalebrowser

Stealth browsers for automation: 7 free tools compared

nodriver, Patchright, Camoufox, CloakBrowser, playwright-stealth, undetected-chromedriver and the Puppeteer plugin: what each changes and how current it is.

Davide Valli · Founder, Scalebrowser

Published Sep 25, 2026 · 6 min read

Short answer

A stealth browser for automation hides the traces of remote control at one of three depths: a script inside the page, a patched driver, or a patched browser. We read 7 free tools on GitHub and PyPI in September 2026. Two have not shipped a release since 2024 or earlier. In Ian L. Paterson's benchmark over 31 targets, nodriver, which drives Chrome without Playwright, was the only tool with no blocked target, 28 of 31 OK, while the Playwright based tools stayed between 24 and 26.
7, free tools compared, beside a toolbox with a carry handle

Automation that meets a bot defence usually reaches for a free stealth tool next, and seven free ones come up again and again, from a JavaScript plugin to a rebuilt Chromium. They look interchangeable in a README and differ in one decisive point: where in the stack they intervene. We read each tool's repository and package statistics between 22 and 24 September 2026 and put them next to the one public benchmark that ran them on the same targets.

What is a stealth browser?

A stealth browser is a browser setup for automation that tries to remove the traces a website can use to recognise remote control. The seven free tools do that at three depths:

  • A script inside the page. Evasion scripts run before the site's own code and overwrite values such as navigator.webdriver. The Puppeteer stealth plugin and playwright-stealth work this way.
  • A patched driver. The library that talks to the browser changes how it speaks to it, so fewer protocol side effects reach the page. undetected-chromedriver, nodriver and Patchright work this way.
  • A patched browser. The browser binary itself is rebuilt with changes in its source. Camoufox does this for Firefox and CloakBrowser for Chromium.

The depth decides what a tool can reach. A script cannot change the TLS handshake, and a driver cannot change what the graphics card draws.

Which 7 free stealth tools exist, and how do they compare?

Two of the seven have not published a release since 2024 or earlier, and the other five released within the last six months. The table lists what each tool changes and the state of its latest release.

ToolDepth and licenceLatest release
puppeteer-extra-plugin-stealthscript in the page, MIT2.11.2, 1 March 2023
playwright-stealth (Python)script in the page, MIT2.0.3, 4 April 2026
undetected-chromedriverpatched driver for Selenium, GPL-3.03.5.5, 17 February 2024
nodriverpatched driver, CDP only, AGPL-3.00.50.3, 13 May 2026
Patchrightpatched Playwright driver, Apache-2.01.63.0, 8 September 2026
Camoufoxpatched Firefox build, MPL-2.0152.0.4 beta 30, 1 September 2026
CloakBrowserpatched Chromium build, MITChromium 152.0.7977.82.1, 23 September 2026
Source: GitHub API, PyPI and npm registries, read 22 to 24 September 2026

Only one public benchmark has run several of these tools against the same live targets. Ian L. Paterson tested 7 tools against 31 targets in three sweeps from one residential IP address and published the results on 13 May 2026. Two of his seven are not stealth browsers: vanilla Playwright, the untreated baseline, and curl_cffi, an HTTP client.

ToolOK, gated, blocked of 31
nodriver28, 3, 0
CloakBrowser26, 3, 2
curl_cffi, HTTP client26, 3, 2
Patchright25, 3, 3
Camoufox25, 3, 3
rebrowser-playwright24, 2, 5
vanilla Playwright, untreated24, 2, 5
Source: Ian L. Paterson, Anti-Detect Browser Benchmark 2026, 31 targets, 3 sweeps, published 13 May 2026
Of the 7 tools in the benchmark, only nodriver, which drives Chrome without Playwright, had no blocked target; every other tool was blocked on 2 to 5 of 31.

The Puppeteer stealth plugin, playwright-stealth and undetected-chromedriver were not part of that test, so no result stands next to them.

Why does the control plane matter more than the patches?

The control plane is the protocol and library that drive the browser, and it leaves traces no patch to fingerprint values can remove. Paterson's reading of his own results: "Automation-protocol-fingerprinting targets are the cliff: Playwright forks fail regardless of patch quality, and defeating that layer takes a control plane that is not Playwright." CloakBrowser, a Chromium rebuilt with source-level patches, still landed two targets behind nodriver, which leaves Chrome's fingerprint values as they are and talks to it without Playwright.

The input is a second trace that the benchmark did not score. On our own signature bench on 24 August 2026, two runs per tool against Chrome 141, nodriver 0.50.3 produced clicks with isTrusted: false at coordinate 0,0 and not a single pointer event. The tool that the benchmark ranked first was the most conspicuous one at the input layer.

Is the Puppeteer stealth plugin still maintained?

No. The last commit to the Puppeteer stealth plugin is from 1 March 2023, and its repository carries 238 open issues, 41 of which match "detected".

What does playwright-stealth change?

playwright-stealth applies 18 evasion scripts to a Playwright context, most of them overwriting navigator values and the chrome object. The project's README calls playwright-stealth "a proof-of-concept starting point".

How does nodriver differ from undetected-chromedriver?

nodriver drops Selenium and chromedriver and speaks the Chrome DevTools Protocol directly; undetected-chromedriver patches chromedriver and keeps Selenium. The same author calls nodriver "the official successor" of the older package.

What does Patchright patch?

Patchright patches Playwright's protocol leaks, among them Runtime.enable and Console.enable, and keeps Playwright's interface. Its list of patches names no fingerprint surface; the Patchright review sets its 25 of 31 targets against Playwright's 24.

How does Camoufox work?

Camoufox is a Firefox build with changes in its C++ source, and it "works with your existing Playwright code out of the box". It therefore presents a Firefox identity rather than a Chrome one. How many of its downloads run an old version is in our report on Camoufox in production.

What does CloakBrowser add?

CloakBrowser rebuilds Chromium with 87 source-level patches across canvas, WebGL, audio, fonts, GPU, screen and WebRTC, and it describes itself as a "Drop-in Playwright/Puppeteer replacement". That keeps a Playwright or Puppeteer control plane on top of the patched browser. The CloakBrowser review looks at the noise it switches on by default.

Why patch Chromium itself?

Patching the browser reaches the values a script cannot, from rendering to network behaviour. It does not remove the traces of the driver on top, which is why the depth of the patches and the choice of control plane are two separate decisions. How Chrome for Testing differs from branded Chrome is covered in Chrome for Testing vs branded Chrome.

Scalebrowser

Scalebrowser runs real browser profiles on your own PC: your AI agent drives them over MCP and signs in without ever seeing a password.

Download free

So which should you pick?

SituationPickWhy
A quick script against sites without a commercial bot defenceno stealth toolnothing on those sites checks for one
Python, one identity per run, AGPL acceptablenodriverno blocked target in the benchmark; input traces remain
Existing Playwright code, protocol leaks are the problemPatchrightsame interface, protocol leaks patched
Chrome fingerprint values must change, Playwright code staysCloakBrowserpatched Chromium, 26 of 31 in the benchmark
A Firefox identity is acceptableCamoufoxfingerprint changes in the browser itself
Agents that keep many identities signed in across runsa browser built around persistent profilesthe seven leave profiles and identities to your own code or a separate manager

Our verdict: choose by control plane first and by patch count second. The measured difference between a patched Chromium and an unpatched one was smaller than the difference between Playwright and a direct CDP connection, and none of the seven addresses how the input looks. Input is one of the four layers that decide how sites detect bots. If your code runs on Playwright or Puppeteer today, the migration guide shows how to attach it to a profile over CDP.

Real browser profiles for your AI agent, on your PC.

Each profile keeps its own identity, logins and proxy. Your agent drives it over MCP and signs in without seeing a password.

Download free for Windows

Free plan with 3 profiles · No credit card · Runs on your PC

Written by

Davide Valli

Founder, Scalebrowser

Builds Scalebrowser, browser automation for the agentic era 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.

All articles by Davide Valli

More in Stealth tools

All 11 articles in Stealth tools