gitwtfhub

wtf is clark-browser?

clark-labs-inc/clark-browser — explained in plain English

Analysis updated 2026-05-18

102PythonAudience · developerComplexity · 5/5LicenseSetup · moderate

TL;DR

Custom Chromium build patched at the C++ level to look like a normal browser to bot detectors, shipped as prebuilt binaries plus a Python Playwright wrapper.

Mindmap

mindmap
  root((clark-browser))
    Inputs
      Fingerprint seed
      Platform flags
      Playwright script
    Outputs
      Patched Chromium binary
      Spoofed fingerprint
      Automation session
    Use Cases
      QA test anti bot pages
      Scrape public data
      Research detection systems
    Tech Stack
      Chromium
      C++
      Python
      Playwright
      ungoogled-chromium

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Run automated QA tests against pages that block Playwright or Selenium

REASON 2

Research how browser fingerprinting and bot detection signals interact

REASON 3

Drive a deterministic Chromium identity for reproducible scraping tests

REASON 4

Compare detection results across FingerprintJS, BrowserScan, and Cloudflare smoke pages

What's in the stack?

ChromiumC++PythonPlaywright

How it stacks up

clark-labs-inc/clark-browsernvlabs/cbottleasz798838958/geniusfkoai
Stars102102103
LanguagePythonPythonPython
Last pushed2026-05-05
MaintenanceMaintained
Setup difficultymoderatehardhard
Complexity5/54/54/5
Audiencedeveloperresearcherdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Prebuilt binaries install in minutes via pip and Releases, but building from source needs 80 GB disk, 32 GB RAM, and a 4 to 12 hour Chromium build.

MIT license, free to use, modify, and redistribute including for commercial work, with attribution.

Wtf does this do

clark-browser is a custom build of Chromium that has been patched to be harder to detect as an automated browser. The author starts from ungoogled-chromium 148.0.7778.96 and applies a series of patches at the C++ source level so that the JavaScript-visible signals a bot detection script looks at, things like navigator.webdriver, the plugin list, the User-Agent string, and WebGL vendor strings, all read the way a normal Chrome install would read them. The argument made in the README is that JavaScript-only stealth shims, like puppeteer-extra-plugin-stealth or undetected-chromedriver, only paper over the surface. Detection sites such as FingerprintJS, BrowserScan, and Cloudflare Turnstile can spot those shims because the patches themselves leave traces. By moving the patches down into blink, v8, and the network stack, clark-browser tries to remove the bot signal at its source. The project ships as prebuilt binaries for Linux x86_64 and macOS arm64 on the GitHub Releases page, plus a Python package on PyPI that wraps Playwright. A small set of command-line flags drives the stealth configuration: --fingerprint takes an integer seed for a deterministic identity, and a family of --fingerprint-platform, --fingerprint-gpu-vendor, --fingerprint-timezone, --fingerprint-locale, and similar switches let the operator pin the spoofed identity to a specific operating system, GPU, timezone, or language. A table lists which specific detection vectors have been verified working in the project's own smoke tests, with examples like navigator.webdriver always returning false, the plugin list always containing five PDF viewer entries, and the audio fingerprint producing different results for different seeds. A second table reports results from publicly available detector pages tested on 2026-05-20 against the released Linux binary: Cloudflare smoke, SannySoft, BrowserLeaks WebGL, and BrowserLeaks Client Hints all marked PASS, while CreepJS still shows a Headless panel. Building from source is documented but heavy: roughly 17 GB of Chromium source to fetch, then a 4 to 12 hour build needing 80 GB of disk and at least 32 GB of RAM. The code is MIT licensed and the patches are written from public sources only.

Yoink these prompts

Prompt 1
Walk me through installing the clark-browser Python package and running a hello world Playwright script with a fixed --fingerprint seed
Prompt 2
Show me how to pin clark-browser to a macOS arm64 identity with US English locale and NVIDIA GPU vendor
Prompt 3
Explain which clark-browser flags change navigator.webdriver, the plugin list, and the WebGL vendor string
Prompt 4
Help me write a smoke test that runs clark-browser against BrowserLeaks and asserts the WebGL panel passes
Prompt 5
Sketch a CI job that builds clark-browser from the ungoogled-chromium 148 source on a 32 GB RAM Linux runner

Frequently asked questions

wtf is clark-browser?

Custom Chromium build patched at the C++ level to look like a normal browser to bot detectors, shipped as prebuilt binaries plus a Python Playwright wrapper.

What language is clark-browser written in?

Mainly Python. The stack also includes Chromium, C++, Python.

What license does clark-browser use?

MIT license, free to use, modify, and redistribute including for commercial work, with attribution.

How hard is clark-browser to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is clark-browser for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.