Back to all posts

Stealth tools · Sep 25, 2026 · 6 min read

Stealth browser options for automation: 7 free tools compared

7 free stealth tools for browser automation, read on GitHub and PyPI in September 2026: what each one changes, how current it is, and what a benchmark measured.

DG
Pixel art of a small rowing boat hidden among tall reeds at the misty edge of a still mountain lake at blue hour

In short

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.

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

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.

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.

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.