botcheckme

A browser that reads as an ordinary person

Some of the rows on your reading have no checkbox behind them. A VPN you need for work, an address your provider shares with a thousand other subscribers, a laptop with no graphics chip. What is left is to present a reading that is consistent and ordinary on purpose, instead of one that is accidentally strange.

Donut Browser

Free, AGPL-3.0, no telemetry of any kind, desktop only. It is the thing this site is paid by, and it is the only thing on any page here that is being recommended to you.

Why a different browser is the answer to some rows and not to others

Most of what this site finds you can fix yourself in a minute, and the reading tells you which. Turn acceleration back on. Allow-list one site in your blocker. Move the VPN to a server in your own country. For those rows, changing browsers would be an absurd amount of effort for a checkbox.

The rows that do not work like that share one shape: something outside your settings is producing a reading that contradicts itself or that belongs to somebody else. Your traffic leaves in Frankfurt while your clock says Chicago. Your address is published as a data centre. Your privacy tooling reports a machine nobody has. No setting resolves a contradiction — it can only move it somewhere else.

What resolves it is deciding, deliberately, what the reading is going to say, and then making every part of it agree.

It refuses to launch a contradiction

Before a profile starts, it compares the proxy's exit country, time zone and language against the profile's own settings, and stops if they disagree. That check is the top row of most readings on this site, turned into something the browser will not let you ship by accident.

It changes the reading at the engine, not in the page

Its Wayfern fork of Chromium applies the fingerprint through the browser's own debugging protocol rather than by patching JavaScript inside the page. The difference matters here for one specific reason: a patched function is itself a signal — it is the “signals that disagree” row on your own reading — and a value applied below the page cannot be caught that way.

It keeps separate things separate

Profiles, groups, tags, per-profile proxies and extension groups exist so that the work you keep apart stays apart, rather than arriving at every site as one accumulated identity.

It does not watch you

No analytics library of any kind is present in the source — not in the desktop app, not in the sync server. Sync, if you use it, goes to any S3-compatible storage you choose, with optional end-to-end encryption the server cannot read. You can host all of it yourself.

macOS
A signed and notarized disk image, or the Homebrew cask donut.
Windows
An installer, or a portable build that does not write to the machine it runs on.
Linux
deb, rpm and AppImage, plus APT and RPM repositories at repo.donutbrowser.com and a Nix flake.
Any of the three, from a terminal
curl -fsSL https://donutbrowser.com/install.sh | sh

Desktop only — there is no mobile build. Ten languages ship with it. macOS builds are Apple-signed and notarized, and self-updates are verified by SHA-256 before they are applied.

This site's whole argument is that a page should show its evidence, so the same standard applies to the thing it recommends.

Checkable

  • The licence is AGPL-3.0, and the desktop application and the sync server are both in the repository.
  • Eleven named contributors, open issues and discussions, and a public release history.
  • Twelve releases between March and August 2026, plus a nightly channel — a cadence you can read off the releases page yourself.
  • Over 330 Rust unit tests, and continuous integration running CodeQL, the OSV vulnerability scanner, Biome, clippy, rustfmt and a spell checker.
  • A local REST API with an OpenAPI specification, and a local MCP server — on your machine, not a cloud service.

Not checkable, and therefore not claimed here

  • No detection-test results exist. The project's own README states that its spoofing is not detected by certain anti-bot services. There is no evidence for that in the repository — no published run against any detector — so it is an assertion, and this site does not repeat it as a finding.
  • No download count, install count, user count or star count is recorded anywhere, so none appears here.
  • No testimonials, case studies, press mentions or customer logos exist. There is no social proof to show you.

If those claims matter to you, the honest position is that they are unproven rather than proven, and that the source is public so you can form your own view. That is a weaker sentence than the category usually writes, and it is the true one.

It changes your half of the reading, and only your half

Every reading on this site has two halves. The network half — the address your traffic leaves from, the country it belongs to, whether its operator is a household provider or a place where servers live — is decided before your browser has said a word, and installing anything changes none of it. If your top row is a shared exit address, this page is not your answer and the reading will say so on the row.

The browser half is the part that can be decided rather than inherited: the clock, the languages, the window, the renderer, and above all whether those agree with each other. That is where a browser built for the job earns its place, and it is the only place it does.

Why consistency beats hiding

The instinct when a site keeps refusing you is to hide — a switcher that rewrites the user agent, an extension that randomises the canvas, a mode that reports a machine nobody has. Every one of those adds a way for your browser to give two answers that cannot both describe the same device, and a contradiction is acted on harder than an oddity, because a contradiction implies something is rewriting answers.

Applying the values below the page rather than inside it is the difference that matters here. A patched function is visible to anything that inspects it; a value the browser was started with is simply what the browser reports. That is a mechanism, not a benchmark, and it is the strongest thing this page will claim.

What it will not do

It will not make you invisible, it will not get you past a site that has decided against your address, and it will not be a substitute for the four or five dull settings changes that clear most readings here. If you have not run the reading yet, do that first — this page is deliberately at the end of the sequence and not at the front of it.

What people ask before they install anything

Will changing my browser stop the captchas?
It changes the half of the reading that comes from your browser, and nothing else. If your top rows are a shared exit address or a corporate tunnel, a different browser does not touch them and no honest page should suggest otherwise. What a browser can do is stop your side of the request contradicting itself, which is the part that gets acted on hardest — and it is the part that no settings screen resolves.
Is Donut Browser free, and what is the catch?
It is free and the source is public under AGPL-3.0, including the sync server. The commercial side is a set of paid plan tiers whose identifiers exist in the code; this site has no pricing to quote and will not invent any. The honest framing is that linking to it is what pays for this site being free, having no advertising and asking you for nothing — which is stated in the footer of every page rather than hidden.
Is this the same thing as a VPN?
No, and the two solve opposite halves of the problem. A VPN changes where your traffic comes out and nothing about what your browser says. This changes what your browser says and nothing about where your traffic comes out. That is exactly why running a VPN alone so often makes things worse: it moves one half and leaves the other half describing a different country.
Does it hide me from websites?
It is not a cloak and this page will not sell it as one. What it does is decide, deliberately, what your browser reports and then make every part of that report agree — including refusing to start a profile when the proxy's country, time zone and language contradict it. Consistency is the claim. Invisibility is not, and there is no published test result in the project's repository that would support a stronger one.
Can I check whether it worked?
Read your browser here again from inside it and compare the two readings row by row — the site keeps up to two in your browser and gives you a lever to flip between them. That tells you what changed in what a page can read about you. It does not tell you what any particular anti-bot vendor would do with it, because nobody outside those vendors can honestly tell you that.

Read your browser first

If you have not run the reading yet, do that before you install anything. Most people find their top row is something they can change in under a minute, and this page is only the answer to the rows that are left.

Read my browser Download Donut Browser

READ AT PRIOR TABLE ED. 1.0.0 · 2026-10-13 · ASSUMED, NOT MEASURED

The rank is taken against 15 written assumptions about how common each value is and 16 written weights about how much each one matters. 9 of them we think are probably wrong. Real counts from the browsers these sites have read appear beside a row, never inside its rank. Read the assumptions →