git404hub

clark-labs-inc/clark-browser

104PythonAudience · developerComplexity · 5/5ActiveLicenseSetup · 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.

vibe map

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
Click or tap to explore — scroll the page freely

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

what people make with this

VIBE 1

Run automated QA tests against pages that block Playwright or Selenium

VIBE 2

Research how browser fingerprinting and bot detection signals interact

VIBE 3

Drive a deterministic Chromium identity for reproducible scraping tests

VIBE 4

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

stack

ChromiumC++PythonPlaywright

setup vibes

Difficulty · moderate time til it works · 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.

in plain english

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.

prompts (copy fr)

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
peek the repo → explain another one

← clark-labs-inc on gitmyhub — every repo by this author, as a profile.

double-check against the repo, no cap.