Whole Antidetect Catalog Donut Browser

Catalogue · Section 02 · Entry

playwright_stealth (maintained fork)

SEMI

playwright_stealth (maintained fork) is a Python project catalogued in section 02 of this register. The actively-updated 2.x Python playwright-stealth. The one pip installs is often not this one. It reads SEMI: alive but slowing. The liveness field this register read is about 4 months old, which is past ACTIVE and well short of the band where the rubric stops recommending it.

https://github.com/Mattwmaster58/playwright_stealth


The fields this state was derived from

FieldValue at this printing
pushed_at 2026-04-04
archived false
latest_release —
license.spdx_id MIT
stargazers_count 263
http_status 200
fetched_at 2026-08-14T09:12:00Z
endpoint GET https://api.github.com/repos/Mattwmaster58/playwright_stealth
rubric_edition 2nd, in force since 2026-08-14
unauthenticated · 60 req/hr

A live read does not change what is printed above it. The site records that you ran it; what GitHub returned is not kept. The printed state moves only when the register is swept and a new printing is issued. raw JSON

Why it reads SEMI

pushed_at = 2026-04-04 — 132 days, inside the 90–365 day SEMI band.

Alive but slowing. Watch it.

Under the superseded first edition

ACTIVE SEMI
pushed_at = 2026-04-04 — 132 days, within the 180-day ACTIVE threshold.

The rubric in force · The superseded first edition · Errata leaf


What playwright_stealth (maintained fork) actually does

The maintained 2.x Python port of the stealth evasion set, restructured away from the original's single monolithic script into individually selectable evasions.

What playwright_stealth (maintained fork)'s maintenance signals mean

pushed_at reads 2026-04-04, which is 132 days before the field check and therefore inside the 90-to-365-day band this rubric calls SEMI. SEMI is the first edition's ACTIVE bucket after it was split in two, and the split exists because a quarter of silence in this field is a fact worth printing rather than absorbing.

A SEMI entry is not a warning and not a recommendation. It is a request to look: open the commit history and see whether the gap is a maintainer between jobs, a project that has reached a stable shape and stopped needing changes, or an abandonment that has not yet crossed a threshold. All three produce the same field value, and this register cannot tell them apart — it can only make sure you know the gap is there.

No release was captured for this entry, which this register records as unknown rather than as none. The distinction matters more than it looks: a project with no tags and a project whose tags the sweep failed to read produce the same blank cell, and printing them as the same fact would be the register asserting something it has not measured.

Where playwright_stealth (maintained fork) sits in this catalogue

playwright_stealth (maintained fork) is filed in section 02, automation stealth plugins, patches & cdp-leak fixes, whose scope is this: Patches and plugins for Puppeteer, Playwright and Selenium, plus the proxies and cursor libraries that sit beside them. An entry sits in exactly one section here. Where a project could defensibly go in two, it is placed where a reader would look for it first rather than where it fits most tidily, and that is an editorial decision rather than a measured one.

Filed beside it in the same section: nodriver (SEMI), SeleniumBase (UC Mode) (ACTIVE), playwright_stealth (original) (NRND). Comparing an entry against its own section-mates is more informative than comparing it against the catalogue as a whole, because everything in a section is answering roughly the same question and the differences left over are the ones that matter.

It is published under MIT, alongside the rest of the MIT entries in this register, and it sits with everything else currently marked SEMI. Read those two facets together: a permissively licensed project that stopped shipping is not a safer dependency than a copyleft one that did not, and a filter on one axis alone will tell you the wrong thing.

playwright_stealth (maintained fork) is recorded as superseding playwright_stealth (original). Both directions of that edge are stored once and reversed at build time, so the graph cannot contradict itself — an entry cannot supersede something that does not record being superseded by it.

Substitutes for the same job, with no claim that either is better: Patchright (Python). The alternative relation is symmetric and carries no ranking, because this register publishes no ranking of any kind. The full playwright_stealth (maintained fork) comparison table sets all of them side by side on licence, push date, release cadence and state.

What to settle before you adopt playwright_stealth (maintained fork)

The package name is close enough to the original's that installing the wrong one is the default failure here. Verify the repository path you are actually depending on, not just the import name.


See also

Relation Entry State Last push
supersedes playwright_stealth (original) NRND 2024-07-29
alternative to Patchright (Python) ACTIVE 2026-08-09

Full comparison of playwright_stealth (maintained fork) and its alternatives


Questions readers ask about playwright_stealth (maintained fork)

Answered from this entry's own fields, at the field check printed above and at no other instant.

Is playwright_stealth (fork) still maintained?

At the 2026-08-14 field check this register read pushed_at as 2026-04-04 and the archive flag as false, and the rubric in force turned those into SEMI. Alive but slowing. Watch it. The clause that fired is printed on this page, so you can check the arithmetic rather than take the word.

What are the alternatives to playwright_stealth (fork)?

Patchright (Python) are recorded as substitutes for the same job. The relation carries no ranking — this register publishes none — so read them side by side on the comparison table, which prints licence, last push, release cadence and state for each.

What licence is playwright_stealth (fork) under?

MIT, read from the repository's own licence metadata at the field check rather than from a README badge. Other MIT entries are grouped together, and the no-licence-declared group is worth a look before you assume any project here carries a grant.

Why did the state recorded for playwright_stealth (fork) change?

Because the rules changed, not because the world did. The same field data reads ACTIVE under the superseded first edition and SEMI under the edition in force. Both derivations are printed on this page, and the entry appears on this printing's errata leaf with the superseded value struck rather than deleted.


Everything in section 02 is a patch applied to somebody else's automation stack, which means every one of them inherits that stack's release cadence and breaks on its own schedule. Donut Browser starts from the other end: the fingerprint handling is in the browser it ships rather than in a layer bolted onto a driver, and the local REST API and MCP server mean automation talks to it directly instead of through a patched client library.

Download Donut Browser

curl -fsSL https://donutbrowser.com/install.sh | sh

macOS (DMG, Homebrew cask donut), Windows (installer and portable), Linux (deb, rpm, AppImage, with APT and RPM repositories at repo.donutbrowser.com), and a Nix flake. Desktop only — there is no mobile build target. Ten shipped languages. Source, AGPL-3.0 · its own entry, judged by the same rubric · the keepers' disclosure.