Run automated QA tests against pages that block Playwright or Selenium
Research how browser fingerprinting and bot detection signals interact
Drive a deterministic Chromium identity for reproducible scraping tests
Compare detection results across FingerprintJS, BrowserScan, and Cloudflare smoke pages
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.
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.
Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.