Whole Antidetect Catalog Donut Browser

Catalogue · State

Anti-detect tools that have gone quiet

SEMI · 6

Between three months and a year since the last push. Nothing here is broken; all of it is drifting away from whatever the detection side shipped last quarter.


The rule that sets it, second edition: pushed 90–365 days before the field check.

The old ACTIVE bucket, split. A quarter of silence in this field is a fact worth printing. All thresholds and the endpoints they read

Across sections: 02 4 · 06 1 · 07 1

LicenceAGPL-3.0
Pushed2026-05-13
Releasenone
Stars4.7k
StateSEMI
Silent93 d

nodriver

SEMI

The same author's successor to undetected-chromedriver: no webdriver at all, direct CDP control.

Source

Evidence

Why SEMI: pushed_at = 2026-05-13 — 93 days, inside the 90–365 day SEMI band.

FieldValue at this printing
pushed_at2026-05-13
archivedfalse
latest_releasenone published
license.spdx_idAGPL-3.0
stargazers_count4700
http_status200
fetched_at2026-08-14T09:12:00Z
rubric_edition2nd, in force

Endpoint: GET https://api.github.com/repos/ultrafunkamsterdam/nodriver

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

See also · superseded by · alternatives

LicenceMIT
Pushed2026-04-04
Release—
Stars263
StateSEMI
Silent132 d

playwright_stealth (maintained fork)

SEMI

The actively-updated 2.x Python playwright-stealth. The one pip installs is often not this one.

Source

Evidence

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

FieldValue at this printing
pushed_at2026-04-04
archivedfalse
latest_release—
license.spdx_idMIT
stargazers_count263
http_status200
fetched_at2026-08-14T09:12:00Z
rubric_edition2nd, in force

Endpoint: GET https://api.github.com/repos/Mattwmaster58/playwright_stealth

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

See also · superseded by · alternatives

LicenceApache-2.0
Pushed2026-02-26
Release—
Stars1.2k
StateSEMI
Silent169 d

BrowserForge

SEMI

Header and fingerprint generator that produces internally consistent combinations rather than random ones.

Source

Evidence

Why SEMI: pushed_at = 2026-02-26 — 169 days, inside the 90–365 day SEMI band.

FieldValue at this printing
pushed_at2026-02-26
archivedfalse
latest_release—
license.spdx_idApache-2.0
stargazers_count1200
http_status200
fetched_at2026-08-14T09:12:00Z
rubric_edition2nd, in force

Endpoint: GET https://api.github.com/repos/daijro/browserforge

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

See also · superseded by · alternatives

LicenceGPL-3.0
Pushed2026-01-28
Release—
Stars2.5k
StateSEMI
Silent198 d

hcaptcha-challenger

SEMI

Multimodal-LLM hCaptcha solver; the clearest public example of the model-based turn in captcha solving.

Source

Evidence

Why SEMI: pushed_at = 2026-01-28 — 198 days, inside the 90–365 day SEMI band.

FieldValue at this printing
pushed_at2026-01-28
archivedfalse
latest_release—
license.spdx_idGPL-3.0
stargazers_count2500
http_status200
fetched_at2026-08-14T09:12:00Z
rubric_edition2nd, in force

Endpoint: GET https://api.github.com/repos/QIN2DIM/hcaptcha-challenger

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

LicenceMIT
Pushed2026-04-25
Release—
Stars602
StateSEMI
Silent111 d

Broprint.js

SEMI

Small canvas- and audio-based visitor identifier.

Source

Evidence

Why SEMI: pushed_at = 2026-04-25 — 111 days, inside the 90–365 day SEMI band.

FieldValue at this printing
pushed_at2026-04-25
archivedfalse
latest_release—
license.spdx_idMIT
stargazers_count602
http_status200
fetched_at2026-08-14T09:12:00Z
rubric_edition2nd, in force

Endpoint: GET https://api.github.com/repos/Rajesh-Royal/Broprint.js

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

LicenceMIT
Pushed2026-04-17
Release—
Stars469
StateSEMI
Silent119 d

azuretls-client

SEMI

Go HTTP client with fine-grained control over the handshake and HTTP/2 settings frame.

Source

Evidence

Why SEMI: pushed_at = 2026-04-17 — 119 days, inside the 90–365 day SEMI band.

FieldValue at this printing
pushed_at2026-04-17
archivedfalse
latest_release—
license.spdx_idMIT
stargazers_count469
http_status200
fetched_at2026-08-14T09:12:00Z
rubric_edition2nd, in force

Endpoint: GET https://api.github.com/repos/Noooste/azuretls-client

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

See also · superseded by · alternatives


What a quarter of silence actually tells you

SEMI is the first edition's ACTIVE bucket after it was split in two, and the split exists because a single band covering everything from a slow quarter to a year of silence was hiding the most decision-relevant interval in the whole catalogue. An entry here has not stopped. It has paused, and the register's position is that a pause is a fact worth printing rather than absorbing into a green tick.

Three different situations produce this identical field value: a maintainer between jobs, a project that has reached a stable shape and genuinely needs no changes, and an abandonment that has not yet crossed a threshold. This register cannot tell them apart, and it does not pretend to. What it can do is make sure you know the gap is there before you build on it.

What to do with an entry in this state

Open the commit history rather than the star count. Look at whether the last several commits were substantive or housekeeping, whether open issues are being answered, and whether the project has a declared successor recorded here. A quiet project with an active successor is marked NRND by the rubric rather than left in this band, so anything still sitting in SEMI has no successor anybody has declared.

Then look at what the project is for. A cursor-movement library going quiet for four months matters less than a Chromium fork doing the same, because one tracks human behaviour and the other tracks a browser that ships every four weeks.


Questions about the SEMI mark

Answered from the rule printed above, and from the fields it reads.

What is the difference between SEMI and NRND here?

Time, and one other clause. SEMI is 90 to 365 days since the liveness field; NRND is 365 to 1095 days, or 180-plus days when another entry in this register declares the project superseded and that successor itself reads ACTIVE. The second clause is why a quiet project with a named replacement does not sit in this band.

Should I avoid tools marked SEMI?

This register does not tell you what to avoid. It tells you that a gap exists and how long it is, and it prints the fields the gap was measured from so you can decide against your own risk. Many entries in this band are perfectly usable and some are simply finished.

Can an entry move from SEMI back to ACTIVE?

Yes, on the next sweep, automatically, the moment its liveness field falls back inside 90 days. Nothing here is set by hand and nothing is sticky: the state is recomputed from the measured columns every printing, which is what makes the whole register re-checkable rather than merely re-published.


Every row on this page is a project someone once chose, and the state beside it is the part that was invisible at the moment of choosing. Donut Browser is filed in section 01 under the same rule, with the same fields printed against it and no exemption of any kind: an open-source anti-detect browser under AGPL-3.0, with engine-level fingerprint spoofing through the Wayfern Chromium fork rather than injected JavaScript, a local REST API and MCP server on your own machine, self-hostable sync, and a pre-launch gate that refuses to start a profile when the proxy's exit geography contradicts the profile's fingerprint. If it stops shipping, this rubric marks it without anyone's permission.

Download Donut Browser

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

macOS · Windows · Linux · Nix. Desktop only. Source, AGPL-3.0 · Its entry · The rubric · The keepers' disclosure

Other states: ACTIVE · NRND · WITHDRAWN · ARCHIVED · DEAD