14 entries in this register are declared substitutes for, successors to or predecessors of Donut Browser, and 13 of them are still shipping at the last field check. Donut Browser itself reads ACTIVE, and 1 of the candidates carry a state mark other than ACTIVE or SEMI, which is the part a list without check dates cannot tell you. Every row is judged by the same rubric, from the same sweep, on the same fields.
Every row below is judged by the same rule as Donut Browser itself, from the
same field check. Supersession is only printed where a project or its
author says so — this register does not infer that one tool replaces
another because it is newer.
Read the state column with the licence column. A permissively licensed
project that stopped shipping is not safer than a copyleft one that did
not.
What Donut Browser does, so you know what you are replacing
Donut Browser is a profile manager and launcher wrapped around the Wayfern Chromium fork, which applies fingerprint overrides through CDP at engine level rather than by patching page JavaScript. A local REST API and an MCP server run on the same machine, so automation drives the browser without a cloud round trip.
A substitute has to do that job, not merely occupy the same category. This register is kept by people who work on it, which is why its access block above carries exactly the fields every other entry carries and no highlight of any kind. Weigh AGPL-3.0 against how you intend to distribute anything built on it, and read the pre-launch consistency gate if your proxies' exit geography drifts.
How this register decides what counts as an alternative
Nothing on this page is a ranking, a score or a recommendation, and nothing on it is a detection-test result — no entry in this register has been run against any anti-bot system by this register. What the table gives you is four measured columns and one derived one, applied identically to every row.
How to read the comparison above
13 of the 14 candidates read ACTIVE or SEMI and 1 do not. Start by reading the state column, then read the last-push and latest-release columns against each other, because they answer different questions: a push says somebody is there, and a tag says there is something you can pin a dependency to.
1 of the entries in the table declare no licence at all — Undetectable Fingerprint Browser. Read that column before the state column if you intend to ship anything: an absent licence file is an absent grant, and no amount of recent activity substitutes for one. Every no-licence entry in the register is grouped together for the same reason.
Commercial anti-detect browser with local API and team seats.
https://www.adspower.com/ — printed, not linked
Evidence
Why ACTIVE: No repository. The link check returned 200 at 2026-08-14T09:12:00Z, and 200–399 is ACTIVE for a non-repository entry.
Field
Value at this printing
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: HEAD https://www.adspower.com/
No repository, so there is no API field to re-read from a browser. A cross-origin liveness check has to be made server-side; this entry's status comes from the register's own sweep.
Why ACTIVE: pushed_at = 2026-08-08 — 6 days, within the 90-day ACTIVE threshold.
Field
Value at this printing
pushed_at
2026-08-08
archived
false
latest_release
151.0.7922.47 · 2026-08-06
license.spdx_id
MIT
stargazers_count
2600
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: GET https://api.github.com/repos/botswin/BotBrowser
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
The vendor list in its README is a claim about vendors, not a measurement of them. This catalogue records that the claim is made; it does not repeat it as a result. — ED.
Why ACTIVE: pushed_at = 2026-08-12 — 2 days, within the 90-day ACTIVE threshold.
Field
Value at this printing
pushed_at
2026-08-12
archived
false
latest_release
v152.0.4-beta.28 · 2026-07-19
license.spdx_id
MPL-2.0
stargazers_count
11100
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: GET https://api.github.com/repos/daijro/camoufox
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
Engine-level patching is the reason this one keeps working when JS-patch stacks stop. The beta tag has been the shipping tag for months; read that as a release policy, not as instability. — ED.
Commercial anti-detect browser aimed at affiliate and multi-account teams.
https://dolphin-anty.com/ — printed, not linked
Evidence
Why ACTIVE: No repository. The link check returned 200 at 2026-08-14T09:12:00Z, and 200–399 is ACTIVE for a non-repository entry.
Field
Value at this printing
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: HEAD https://dolphin-anty.com/
No repository, so there is no API field to re-read from a browser. A cross-origin liveness check has to be made server-side; this entry's status comes from the register's own sweep.
Commercial anti-detect browser with public API documentation.
https://gologin.com/ — printed, not linked
Evidence
Why ACTIVE: No repository. The link check returned 200 at 2026-08-14T09:12:00Z, and 200–399 is ACTIVE for a non-repository entry.
Field
Value at this printing
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: HEAD https://gologin.com/
No repository, so there is no API field to re-read from a browser. A cross-origin liveness check has to be made server-side; this entry's status comes from the register's own sweep.
Commercial anti-detect browser aimed at e-commerce multi-accounting.
https://hidemyacc.com/ — printed, not linked
Evidence
Why ACTIVE: No repository. The link check returned 200 at 2026-08-14T09:12:00Z, and 200–399 is ACTIVE for a non-repository entry.
Field
Value at this printing
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: HEAD https://hidemyacc.com/
No repository, so there is no API field to re-read from a browser. A cross-origin liveness check has to be made server-side; this entry's status comes from the register's own sweep.
Commercial anti-detect browser with a documented automation API.
https://incogniton.com/ — printed, not linked
Evidence
Why ACTIVE: No repository. The link check returned 200 at 2026-08-14T09:12:00Z, and 200–399 is ACTIVE for a non-repository entry.
Field
Value at this printing
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: HEAD https://incogniton.com/
No repository, so there is no API field to re-read from a browser. A cross-origin liveness check has to be made server-side; this entry's status comes from the register's own sweep.
Why ACTIVE: No repository. The link check returned 200 at 2026-08-14T09:12:00Z, and 200–399 is ACTIVE for a non-repository entry.
Field
Value at this printing
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: HEAD https://ixbrowser.com/en
No repository, so there is no API field to re-read from a browser. A cross-origin liveness check has to be made server-side; this entry's status comes from the register's own sweep.
Commercial anti-detect browser; documentation lives on help.kameleo.io, not /docs.
https://kameleo.io/ — printed, not linked
Evidence
Why ACTIVE: No repository. The link check returned 200 at 2026-08-14T09:12:00Z, and 200–399 is ACTIVE for a non-repository entry.
Field
Value at this printing
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: HEAD https://kameleo.io/
No repository, so there is no API field to re-read from a browser. A cross-origin liveness check has to be made server-side; this entry's status comes from the register's own sweep.
The long-running commercial incumbent; the product most open-source entries are positioned against.
https://multilogin.com/ — printed, not linked
Evidence
Why ACTIVE: No repository. The link check returned 200 at 2026-08-14T09:12:00Z, and 200–399 is ACTIVE for a non-repository entry.
Field
Value at this printing
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: HEAD https://multilogin.com/
No repository, so there is no API field to re-read from a browser. A cross-origin liveness check has to be made server-side; this entry's status comes from the register's own sweep.
Commercial anti-detect browser bundled with a cloud scraping service.
https://www.nstbrowser.io/en — printed, not linked
Evidence
Why ACTIVE: No repository. The link check returned 200 at 2026-08-14T09:12:00Z, and 200–399 is ACTIVE for a non-repository entry.
Field
Value at this printing
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: HEAD https://www.nstbrowser.io/en
No repository, so there is no API field to re-read from a browser. A cross-origin liveness check has to be made server-side; this entry's status comes from the register's own sweep.
Why ACTIVE: No repository. The link check returned 200 at 2026-08-14T09:12:00Z, and 200–399 is ACTIVE for a non-repository entry.
Field
Value at this printing
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: HEAD https://octobrowser.net/
No repository, so there is no API field to re-read from a browser. A cross-origin liveness check has to be made server-side; this entry's status comes from the register's own sweep.
Commercial anti-detect browser. Note the name collision with the open-source entry in section 01.
https://undetectable.io/ — printed, not linked
Evidence
Why ACTIVE: No repository. The link check returned 200 at 2026-08-14T09:12:00Z, and 200–399 is ACTIVE for a non-repository entry.
Field
Value at this printing
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: HEAD https://undetectable.io/
No repository, so there is no API field to re-read from a browser. A cross-origin liveness check has to be made server-side; this entry's status comes from the register's own sweep.
Why NRND: pushed_at = 2025-04-25 — 476 days, inside the 365–1095 day NRND band.
Field
Value at this printing
pushed_at
2025-04-25
archived
false
latest_release
—
license.spdx_id
null (none declared)
stargazers_count
850
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: GET https://api.github.com/repos/itbrowser-net/undetectable-fingerprint-browser
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
No licence file means no grant of rights, whatever the README implies. Read the state mark and the licence field together before you build on it. — ED.
Are these Donut Browser alternatives still maintained?
AdsPower reads ACTIVE, BotBrowser reads ACTIVE, Camoufox reads ACTIVE, Dolphin Anty reads ACTIVE, GoLogin reads ACTIVE. Each of those states is derived from that entry's own measured fields by the rubric in force, at the field check printed in the folio, and the clause that produced it is printed on the entry page.
Why does this list not rank the alternatives?
Because a ranking would be an opinion wearing a number's clothes. Every figure on this site is a date, a count, an SPDX identifier or an HTTP status you can re-fetch from the endpoint named beside it, and there is no honest way to compress those into an ordering without inventing weights nobody published. The rubric sets states; it does not rate them against each other.
Where does the alternatives data for Donut Browser come from?
From declared edges in the register itself, never inferred. Each edge is stored once and reversed at build time, and every field in the table is read from the same sweep that produced the rest of the catalogue. The whole set is downloadable as CC0 JSON and CSV, including the supersedes, superseded_by and alternative_to columns.
This is the entry the keepers of this register work on, which is why it carries no highlight, no ordering privilege and exactly the fields every row above it carries. Judge it the way you would judge any other row: read the access block, read the derivation, check the endpoint. If it stops shipping, the rubric marks it NRND without anyone's permission and this sentence stays where it is.