liarjs.dev

Anti-detect browser leaderboard

One rule: a browser gets a number here only if somebody opened liarjs.dev in it and kept the screenshot. Tap a row for the score, the shot and the findings behind it. No screenshot, no score - the rest of the board is other people's benchmarks, waiting to be measured. Anti-detect is a moving target, so every measurement carries its date and its exact build.

Measured on liarjs.dev
1
92

Nothing caught. The only line on the board is the unanswered driver challenge, which is the provisional ceiling by design - a coherent environment is not evidence of a person, so 92 is as far as any row here gets without taking it. Engine-level spoofing done in C++ (no JS overrides): deterministic canvas/audio/DOMRect, self-consistent WebGL, a WebGPU adapter identity aligned with WebGL instead of leaking the real GPU, and a claimed version that matches the engine it is actually built on. The residual limitation is the network/TLS layer, which this scan does not probe.

liarjs.dev scoring anti-detect-browser (antibrow.com): 92 out of 100, grade A-
92/100 · grade A- · 2026-08 · provisional, challenge not taken, so it carries -8 and caps at 92antibrow.com desktop app (version not shown in the scan UI) · scanned directly via liarjs.dev in the profile's own window · 2026-08
Driver challenge -8· Not taken yet. Everything else here describes the machine; none of it proves a hand is on the pointer. This is the only line standing between this row and a final, unprovisional score.
Network / TLS layer not spoofed· JA3/JA4 and HTTP/2 fingerprints are still those of the real Chrome build; a detector classifying at the TLS layer sees a stock browser. Out of scope for a JS-layer kernel, and out of scope for this scan too.
Timezone must track the proxy exit· The profile timezone has to follow the proxy exit IP (handled by the launcher via geoip). If a profile's timezone differs from its exit, the cross-layer check flags it like any other browser.
source: Measured on liarjs.dev, 2026-08. Screenshot above.
2
Chromium fork
86

Nothing on the fingerprint layer: just the two deductions every row here carries regardless of the browser under test, which is the provisional ceiling for a profile that was not put through the behavioural challenge. That is a genuine contrast with the community report below, which is about a different check on a different site.

liarjs.dev scoring Dolphin Anty: 86 out of 100, grade B+
86/100 · grade B+ · 2026-08 · provisional, challenge not taken, so it carries -8 and caps at 92Dolphin Anty desktop app (version not shown in the scan UI) · scanned directly via liarjs.dev in the profile's own window · 2026-08
Driver challenge -8· Not taken yet. Passing it returns these 8 points and is the only route to the top tier.
CJK fonts vs locale -6· CJK fonts are installed but the locale is non-CJK, which may reveal the real host OS region.
Iphey Hardware flag (independent)· First-hand community report: this failed the Hardware section on iphey.com on the profile they tested, where GoLogin passed - a different tool, a different day, not reproduced here.
source: Measured on liarjs.dev, 2026-08. Screenshot above. Independent context: BHW first-hand (kunfuLamb); community.
3
Selenium + patched chromedriver, real local Chrome 151
77

One critical finding, and the automation flag itself is not it: navigator.webdriver reads false, because this drives the real installed Chrome rather than a bundled build. What is left is a window sized past its own claimed screen, which is a launcher default rather than anything specific to being automated, plus the unanswered challenge every unverified row here carries.

liarjs.dev scoring undetected-chromedriver: 77 out of 100, grade B-
77/100 · grade B- · 2026-08 · provisional, challenge not taken, so it carries -8 and caps at 92undetected-chromedriver 3.5.5 · selenium 4.47.0 · uc.Chrome(headless=False, version_main=151) with no other options, driving the real Google Chrome 151.0.7922.173 installed on the host · Windows 11 · scanned with ?debugSkipTz, see header comment
Window vs screen bounds -15· The window is 1551×975 on a screen whose available area is 1536×912. A window cannot exceed its display, so the reported screen is smaller than the one this browser is really on.
Driver challenge -8· Not taken yet. Passing it returns these 8 points and is the only route to the top tier - and here that is the whole point rather than a formality, since everything else came up clean on a browser a script was demonstrably driving.
Nothing else on the fingerprint layer· navigator.webdriver=false, no Headless token, window.chrome present, a normal plugin face, real GPU through ANGLE, native functions intact. Driving the real installed Chrome buys all of this for free.
The passive layer is not the whole story· A B- here is not a claim that this stack survives commercial anti-bot. liarjs scores internal coherence; Akamai and Kasada-class walls also weigh TLS/JA4, request cadence and behaviour, and independent engine benchmarks have uc failing against them.
source: Measured on liarjs.dev, 2026-08. Screenshot above. Hard-wall behaviour: independent engine benchmarks (techinz/ianlpaterson), 2026.
4
Mimic (Chromium) / Stealthfox (Firefox)
70

No critical findings, but two independent tells at the same weight: the generic font families collapse the way a spoofed font list does, and the default speech-synthesis voice is zh-CN while the profile locale claims en-US - two different subsystems leaking the same fact about the machine underneath from two different angles.

liarjs.dev scoring Multilogin: 70 out of 100, grade C+
70/100 · grade C+ · 2026-08 · provisional, challenge not taken, so it carries -8 and caps at 92Multilogin desktop app, Mimic engine (version not shown in the scan UI) · scanned directly via liarjs.dev in the profile's own window · 2026-08
Generic font families -8· Two of sans-serif / serif / monospace measure identically (sans-serif=1756.13 serif=1756.13 monospace=1368); on a normally provisioned machine the three differ.
Speech voice vs locale -8· Default speech voice language "zh-CN" doesn't match locale "en-US", which may reveal the real host OS language.
Driver challenge -8· Not taken yet. Passing it returns these 8 points and is the only route to the top tier.
CJK fonts vs locale -6· CJK fonts are installed but the locale is non-CJK, which may reveal the real host OS region.
No neutral head-to-head (independent)· Every "Multilogin beats X" table is first-party; no independent controlled test has included it, so vendor pass-rate claims remain unverified against this scan.
source: Measured on liarjs.dev, 2026-08. Screenshot above. Independent context: vendor benchmarks (self-reported) + Vastel/niespodd notes.
5
Chromium fork
66

No critical findings, and the UA-vs-host mismatches that sank GoLogin do not show up here. What is left is a real but second-order fingerprint tell - two of the three generic font families measuring identically, which a normally provisioned machine does not do - plus the same baseline penalties every unscanned-for-a-hand browser on this board carries.

liarjs.dev scoring NSTBrowser: 66 out of 100, grade C
66/100 · grade C · 2026-08 · provisional, challenge not taken, so it carries -8 and caps at 92NSTBrowser desktop app (version not shown in the scan UI) · scanned directly via liarjs.dev in the profile's own window · 2026-08
Generic font families -8· Two of sans-serif / serif / monospace measure identically (sans-serif=1790.07 serif=1790.07 monospace=1407.19); on a normally provisioned machine the three differ.
Driver challenge -8· Not taken yet. Passing it returns these 8 points and is the only route to the top tier.
CJK fonts vs locale -6· CJK fonts are installed but the locale is non-CJK, which may reveal the real host OS region.
Screen color depth -6· colorDepth=32; Chromium reports 24 on an 8-bit-per-channel display and 30 on a 10-bit one, never 32.
Browser version age -6· Chrome 149 is about 3 majors behind the current stable (≈152).
CreepJS trust ~63.5% (independent)· The Web Scraping Club's independent run put this second of seven anti-detect browsers on CreepJS trust - broadly consistent with the clean scan here.
source: Measured on liarjs.dev, 2026-08. Screenshot above. Independent context: The Web Scraping Club Royal Rumble, 2026.
6
Chromium fork
64

WebRTC came back with zero ICE candidates, the same cut-off-rather-than-private state GoLogin showed. On top of that the GPU is a real but ancient AMD Radeon HD 7900 reporting a texture size ceiling no current Chrome ships with - internally consistent, but a rare enough pairing to be its own signal.

liarjs.dev scoring MoreLogin: 64 out of 100, grade C-
64/100 · grade C- · 2026-08 · provisional, challenge not taken, so it carries -8 and caps at 92MoreLogin desktop app (version not shown in the scan UI) · scanned directly via liarjs.dev in the profile's own window · 2026-08
ICE candidate gathering -12· The peer connection finished gathering with zero ICE candidates. Chrome always produces at least one host candidate, an mDNS .local name, even with no network path out.
GPU realism -10· GPU is obsolete for a modern browser: renderer "ANGLE (AMD, AMD Radeon HD 7900 Series (0x0000679A) Direct3D11 vs_5_0 ps_5_0, D3D11)", MAX_TEXTURE_SIZE 16384. Modern GPUs report ≥16384; an ancient GPU on a current Chrome is self-consistent but a rare, high-signal combination.
Driver challenge -8· Not taken yet. Passing it returns these 8 points and is the only route to the top tier.
CJK fonts vs locale -6· CJK fonts are installed but the locale is non-CJK, which may reveal the real host OS region.
Astroturfing reports (independent)· Community reports of paid forum promotion around this product; weigh third-party reviews of it accordingly.
source: Measured on liarjs.dev, 2026-08. Screenshot above. Independent context: The Web Scraping Club Royal Rumble, 2026; BHW community.
7
Chromium / Firefox forks
63

Marketed as premium, and the two findings here are both the kind that come from emulating a device rather than being one: a window too large for its claimed screen, and a touch point count with none of the pointer-media signals a real touchscreen carries alongside it.

liarjs.dev scoring Kameleo: 63 out of 100, grade C-
63/100 · grade C- · 2026-08 · provisional, challenge not taken, so it carries -8 and caps at 92Kameleo desktop app, Chromium profile (version not shown in the scan UI) · scanned directly via liarjs.dev in the profile's own window · 2026-08
Window vs screen bounds -15· The window is 1050×892 on a screen whose available area is 1280×680. A window cannot exceed its display, so the reported screen is smaller than the one this browser is really on.
Touch points vs pointer media -8· navigator.maxTouchPoints=10 but (any-pointer: coarse) is false; a real touch device matches both.
Driver challenge -8· Not taken yet. Passing it returns these 8 points and is the only route to the top tier.
CJK fonts vs locale -6· CJK fonts are installed but the locale is non-CJK, which may reveal the real host OS region.
CreepJS trust ~45% (independent)· Well below baseline in the independent 260-pt comparison despite premium positioning; override artefacts on AudioContext/WebGL were reported as detectable by custom JS.
source: Measured on liarjs.dev, 2026-08. Screenshot above. Independent context: The Web Scraping Club Royal Rumble; Vastel.
8
Chromium fork
58

One critical finding, and it is the interesting kind: a cross-interface identity mismatch rather than a stale value. WebGL and WebGPU are two different ways of asking the same GPU who it is, and here they give two different answers - the profile spoofed one without touching the other.

liarjs.dev scoring Undetectable.io: 58 out of 100, grade D
58/100 · grade D · 2026-08 · provisional, challenge not taken, so it carries -8 and caps at 92Undetectable.io desktop app (version not shown in the scan UI) · scanned directly via liarjs.dev in the profile's own window · 2026-08
WebGL ↔ WebGPU GPU identity -22· WebGL reports a intel GPU but navigator.gpu adapter.info.vendor="nvidia" (pascal). Cross-interface GPU mismatch.
Driver challenge -8· Not taken yet. Passing it returns these 8 points and is the only route to the top tier.
CJK fonts vs locale -6· CJK fonts are installed but the locale is non-CJK, which may reveal the real host OS region.
Screen color depth -6· colorDepth=32; Chromium reports 24 on an 8-bit-per-channel display and 30 on a 10-bit one, never 32.
BrowserScan 100% (independent)· Full authenticity on BrowserScan in the independent Web Scraping Club run - a test that does not look at the WebGL/WebGPU cross-check above.
source: Measured on liarjs.dev, 2026-08. Screenshot above. Independent context: The Web Scraping Club Royal Rumble, 2026.
9
SunBrowser (Chromium fork)
38

A cross-OS persona that the machine underneath contradicts three separate ways. The profile claims macOS, but the font set is Windows, the GPU story disagrees with itself between WebGL and WebGPU, and WebRTC is switched off hard enough to be its own signal. Each of the three is a different subsystem failing to follow the same lie, which is exactly the shape a persona is supposed to prevent.

liarjs.dev scoring AdsPower: 38 out of 100, grade F
38/100 · grade F · 2026-08 · provisional, challenge not taken, so it carries -8 and caps at 92AdsPower desktop app, SunBrowser engine (version not shown in the scan UI) · profile personating macOS: UA Chrome 153 on Mac OS X, Sec-CH-UA-Platform "macOS", America/Chicago, en-US · scanned directly via liarjs.dev in the profile's own window · 2026-08
WebGL ↔ WebGPU GPU identity -22· WebGL reports an Intel GPU but navigator.gpu adapter.info.vendor is "amd" (rdna-3). Two interfaces onto the same card, two different cards.
Installed fonts vs claimed OS -14· The User-Agent claims macOS but the installed font set matches Windows (win 0.953, mac 0.951, linux 0). Fonts are rasterised by the real host OS, so no API lie reaches them.
ICE candidate gathering -12· Gathering finished with zero ICE candidates. Chrome always produces at least one host candidate, an mDNS .local name, even with no network path out. An empty list means WebRTC was cut off rather than made private, which is itself a rare, high-signal state.
Driver challenge -8· Not taken yet. Passing it returns these 8 points and is the only route to the top tier.
CJK fonts vs locale -6· CJK fonts are installed but the locale is non-CJK, which may reveal the real host OS region.
Fingerprint lag and security reports (independent)· Reported to trail official Chromium fingerprints by 2-3 weeks after each Chrome release, and there are first-hand reports of account/fund loss attributed to weak protection - neither of which this scan can see.
source: Measured on liarjs.dev, 2026-08. Screenshot above. Independent context: BHW/Reddit first-hand reports; DataDome JA4 timing (2026).
10
CDP automation, bundled Chromium 151
37

Dropping headless removes most of what sinks the headless run below, but the automation flag itself is not one of them: Playwright launches with navigator.webdriver=true and does not clear it, headed or not. On top of that its screen emulation pushes the window past the display it claims to sit on - a Playwright default, not a host artefact.

liarjs.dev scoring Playwright (vanilla, headed): 37 out of 100, grade F
37/100 · grade F · 2026-08 · provisional, challenge not taken, so it carries -8 and caps at 92playwright 1.62.1 · bundled Chromium 151.0.7922.34 · chromium.launch({ headless: false }) and browser.newPage(), nothing else · no stealth plugin · Windows 11 · scanned with ?debugSkipTz, see header comment
navigator.webdriver -40· webdriver=true. Headed or not, Playwright launches with the automation switch and does not clear the flag. On its own it is 40 of the 63 points lost here.
Window vs screen bounds -15· The window is 1296×808 on a screen whose available area is 1280×720. A window cannot exceed its display, so the reported screen is smaller than the one this browser is really on. This is Playwright emulating screen dimensions to match the viewport, not a host artefact.
Driver challenge -8· Not taken yet. A driven browser could of course try the behavioural challenge - that is the interesting experiment, and it is not this measurement.
What it got right· No Headless token, window.chrome present, a normal plugin face, real GPU through ANGLE, canvas and native functions intact - the entire list that a bundled headless build fails below.
source: Measured on liarjs.dev, 2026-08. Screenshot above.
11
Orbita (Chromium fork)
13

The independent CreepJS comparison rated this the strongest of seven anti-detect browsers. Scanned directly, it is the worst score on this board: four critical findings that all point the same direction. The UA claims macOS while the font metrics, the installed font set and the fallback width all say Windows; the reported screen is smaller than the window it supposedly contains; and WebRTC produced zero ICE candidates instead of the mDNS host candidate Chrome always emits. None of these are subtle - they are the kind of cross-check a single spoofed UA string cannot survive.

liarjs.dev scoring GoLogin: 13 out of 100, grade F
13/100 · grade F · 2026-08 · provisional, challenge not taken, so it carries -8 and caps at 92GoLogin desktop app (version not shown in the scan UI) · scanned directly via liarjs.dev in the profile's own window · 2026-08
Font metrics vs font names -20· The UA claims macos, but 0% of macos's signature families have real metrics (Helvetica Neue, Menlo, Geneva, Lucida Grande return the 1689.93px fallback width), while windows's families do resolve. Font files come from the host OS; only the names can be swapped.
Window vs screen bounds -15· The window is 1536×912 on a screen whose available area is 1440×900. A window cannot exceed its display, so the reported screen is smaller than the one this browser is really on.
Installed fonts vs claimed OS -14· The User-Agent claims macos but the installed font set matches windows (scores: win 0.953, mac 0.049, linux 0). Fonts come from the real host OS.
ICE candidate gathering -12· The peer connection finished gathering with zero ICE candidates. Chrome always produces at least one host candidate, an mDNS .local name, even with no network path out. An empty list means WebRTC was cut off rather than made private, which is itself a rare, high-signal state.
Driver challenge -8· Not taken yet. Everything else here describes the machine; none of it proves a hand is on the pointer. Passing it returns these 8 points and is the only route to the top tier.
CJK fonts vs locale -6· CJK fonts are installed but the locale is non-CJK, which may reveal the real host OS region.
Screen color depth -6· colorDepth=32; Chromium reports 24 on an 8-bit-per-channel display and 30 on a 10-bit one, never 32. 32 is what pre-Chromium browsers and spoofing profiles report.
Browser version age -6· Chrome 149 is about 3 majors behind the current stable (≈152). Chrome auto-updates every few weeks, so a browser this far back is either unattended or pinned to a fixed build.
CreepJS trust near baseline (independent)· The Web Scraping Club's independent CreepJS run rated this the closest of seven anti-detect browsers to a genuine baseline (~66% trust) - a reminder that a synthetic benchmark and a direct liarjs.dev scan can disagree sharply.
source: Measured on liarjs.dev, 2026-08. Screenshot above. Independent context: The Web Scraping Club Royal Rumble, 2026.
12
CDP automation, bundled Chromium 151
0

The floor of the board, and the reason the board has a floor. Eleven flags, four critical, on a stack that was not trying to hide: the automation flag is set, the User-Agent still says HeadlessChrome, WebGL runs on a software rasteriser and the window reports no browser UI at all. Zero is not clamping for its own sake - the deductions add up past 160.

liarjs.dev scoring Playwright (vanilla, headless): 0 out of 100, grade F
0/100 · grade F · 2026-08 · provisional, challenge not taken, so it carries -8 and caps at 92playwright 1.62.1 · bundled Chromium 151.0.7922.34 · chromium.launch() and browser.newPage(), nothing else · headless, the library default · no stealth plugin · Windows 11 · scanned with ?debugSkipTz, see header comment
navigator.webdriver -40· webdriver=true, the automation flag is set. The single largest deduction in the ruleset.
Headless token in UA -30· User-Agent contains "HeadlessChrome".
Notification permission consistency -15· Notification.permission="denied" but permissions.query(notifications).state="prompt", inconsistent (spoof/headless).
window.chrome object -12· The User-Agent claims Chrome but window.chrome does not exist; genuine Chrome always defines it.
Browser UI height -15· window.outerHeight equals window.innerHeight, so the window reports no browser UI at all - fullscreen, kiosk mode and embedded frames all produce this too, which is why it is a warning rather than critical.
Software renderer -15· The User-Agent claims Chrome 151 on a desktop, but WebGL renders through a software rasteriser (ANGLE Vulkan / SwiftShader). That is what headless and GPU-less containers report; a real desktop has a real GPU.
Plugins vs Chrome version -10· Chrome 151 but navigator.plugins is empty (headless/stripped).
Generic font families -8· Two of sans-serif / serif / monospace measure identically (sans-serif=1887.15 serif=1368 monospace=1368); on a normally provisioned machine the three differ.
Driver challenge -8· Not taken yet. It changes nothing here - the score is already at the floor.
navigator.languages base tag -6· languages=[zh-CN] carries zh-CN without the bare primary subtag ("zh"); Chromium normally lists both. A host-locale artefact, not specific to Playwright.
Network Information rtt -3· navigator.connection.rtt=0, unrealistic for a real network path.
source: Measured on liarjs.dev, 2026-08. Screenshot above.

Every measurement here ran from one host behind one proxy, which has a visible consequence: a stack whose timezone does not follow its exit IP loses 12 points to the cross-layer check. That is not noise - following the exit is the job. Where a finding came from the test machine rather than the browser under test, the row says so. And passing a test site is not the same as not getting banned: proxy quality, account age and behaviour dominate real outcomes.