These repositories publish no licence file at all, which means no grant of rights — not a permissive one, not a restrictive one, none. Publicly readable source is not licensed source, and this register treats the empty field as a finding worth its own page rather than as a blank cell to skip past.
GitHub reports no licence for these 12 repositories.
That is not a formality: without a licence file there is no grant of
rights, so vendoring, redistributing or shipping any of this inside a
product rests on no legal footing at all, however permissive the
README sounds.
The register prints the field exactly as the API returns it and
infers nothing from an upstream project's licence.
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.
Why ACTIVE: pushed_at = 2026-07-23 — 22 days, within the 90-day ACTIVE threshold.
Field
Value at this printing
pushed_at
2026-07-23
archived
false
latest_release
—
license.spdx_id
null (none declared)
stargazers_count
2500
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: GET https://api.github.com/repos/mullvad/mullvad-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 SPDX identifier is declared on the repository; the upstream it derives from is MPL. That is inference, not a field, so the licence column stays empty. — ED.
Why NRND: pushed_at = 2025-05-09 — 462 days, inside the 365–1095 day NRND band.
Field
Value at this printing
pushed_at
2025-05-09
archived
false
latest_release
—
license.spdx_id
null (none declared)
stargazers_count
1400
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: GET https://api.github.com/repos/rebrowser/rebrowser-patches
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 ARCHIVED: archived = true, set 2025-09-28. A maintainer's own statement outranks every date rule.
Field
Value at this printing
pushed_at
—
archived
true
archived_at
2025-09-28
latest_release
—
license.spdx_id
null (none declared)
stargazers_count
163
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: GET https://api.github.com/repos/Kaliiiiiiiiii-Vinyzu/CDP-Patches
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
Archived by its own author, which is a maintainer's statement and outranks any inference from a push date. Listed as historical because the technique still explains what the protocol gives away. — ED.
Why DEAD: pushed_at = 2021-08-14 — 1826 days, past the 1095-day outer threshold.
Field
Value at this printing
pushed_at
2021-08-14
archived
false
latest_release
—
license.spdx_id
null (none declared)
stargazers_count
40
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: GET https://api.github.com/repos/Xetera/nginx-http2-fingerprint
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 DEAD: pushed_at = 2019-07-09 — 2593 days, past the 1095-day outer threshold.
Field
Value at this printing
pushed_at
2019-07-09
archived
false
latest_release
—
license.spdx_id
null (none declared)
stargazers_count
521
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: GET https://api.github.com/repos/p0f/p0f
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 heavyweight incumbent: deep prose analysis of bot-protection systems rather than a broad index. No licence file, so the text carries no reuse grant.
Why ACTIVE: pushed_at = 2026-07-27 — 18 days, within the 90-day ACTIVE threshold.
Field
Value at this printing
pushed_at
2026-07-27
archived
false
latest_release
—
license.spdx_id
null (none declared)
stargazers_count
5122
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: GET https://api.github.com/repos/niespodd/browser-fingerprinting
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 best writing in this space, and it publishes no licence, no check date and no per-entry status. Those are the three fields this catalogue exists to add — not a criticism of the prose, which remains better than ours. — ED.
Why ACTIVE: pushed_at = 2026-07-26 — 19 days, within the 90-day ACTIVE threshold.
Field
Value at this printing
pushed_at
2026-07-26
archived
false
latest_release
—
license.spdx_id
null (none declared)
stargazers_count
1884
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: GET https://api.github.com/repos/TheGP/untidetect-tools
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 ACTIVE: pushed_at = 2026-07-24 — 21 days, within the 90-day ACTIVE threshold.
Field
Value at this printing
pushed_at
2026-07-24
archived
false
latest_release
—
license.spdx_id
null (none declared)
stargazers_count
81
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: GET https://api.github.com/repos/embeddinglayer/awesome-fingerprinting
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 ACTIVE: pushed_at = 2026-05-19 — 87 days, within the 90-day ACTIVE threshold.
Field
Value at this printing
pushed_at
2026-05-19
archived
false
latest_release
—
license.spdx_id
null (none declared)
stargazers_count
0
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: GET https://api.github.com/repos/Nika-Proxy/awesome-tls-fingerprinting
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 NRND: pushed_at = 2024-08-25 — 719 days, inside the 365–1095 day NRND band.
Field
Value at this printing
pushed_at
2024-08-25
archived
false
latest_release
—
license.spdx_id
null (none declared)
stargazers_count
53
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: GET https://api.github.com/repos/Zeeshanahmad4/awesome_list_of_anti_detect_browsers_apps
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 NRND: pushed_at = 2024-02-10 — 916 days, inside the 365–1095 day NRND band.
Field
Value at this printing
pushed_at
2024-02-10
archived
false
latest_release
—
license.spdx_id
null (none declared)
stargazers_count
0
http_status
200
fetched_at
2026-08-14T09:12:00Z
rubric_edition
2nd, in force
Endpoint: GET https://api.github.com/repos/antidetect/list
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
What the default actually is when nothing is declared
Copyright attaches automatically to a work on creation. Absent a licence, the default is that nobody but the rights holder may copy, modify or redistribute it. Publishing the source on a public host makes it readable; it grants nothing beyond what the host's own terms of service cover, which is typically viewing and forking within that platform.
So the practical position for anything in this group is: you may read it. Vendoring it, shipping it inside a product, redistributing a modified build, or including it in a package you publish all rest on no stated permission whatever the README implies.
Why this group is surfaced instead of buried
It is the single most consequential field in this catalogue and the one every other list in this category omits. A project can be perfectly maintained, widely recommended and technically excellent and still be legally unusable in the way you intend to use it, and none of the maintenance signals this register prints would tell you so.
Notice also which entries are here. Some are actively developed and popular. Some are competing registries whose text is quoted constantly by people who have no grant to quote it. The absence is usually an oversight rather than a position — which changes nothing about its effect, and can often be fixed by asking.
Questions about the no-licence entries
Licence questions, answered from the field this register reads and from the licence texts themselves. Nothing here is legal advice.
Can I use code that has no licence?
Not beyond reading it, absent permission. Copyright attaches by default and an absent licence file grants nothing; publishing source publicly makes it visible, not usable. This register reports the empty field and does not give legal advice.
Why do so many anti-detect projects declare no licence?
This catalogue records the fact and does not speculate about motive. What it can say is that the omission appears across the whole spread — active projects, abandoned ones, and competing registries alike — which is consistent with oversight rather than with a considered position.
How does this registry know a project has no licence?
The repository host's licence metadata returns null at the field check, and the register prints that exactly as read. It never infers a licence from an upstream project, from a similar repository, or from a badge in the README.
Every row above was chosen by somebody who then had to establish two
separate things — whether the code was alive, and whether it was theirs
to use. Donut Browser answers the second in its own repository: an
open-source anti-detect browser under AGPL-3.0, with the desktop
application and the sync server both in that repository, engine-level
fingerprint spoofing through the Wayfern Chromium fork rather than
injected JavaScript, a local REST API and MCP server on your own
machine, zero telemetry, and a pre-launch gate that refuses to start a
profile when the proxy's exit geography contradicts the profile's
fingerprint. Its own licence row is in
this same catalogue, read at the same
field check as everything else.