explaingit

clark-labs-inc/clark-browser

Analysis updated 2026-06-24

102PythonAudience · developerComplexity · 5/5LicenseSetup · moderate

TLDR

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
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 do people build with it?

USE CASE 1

Run automated QA tests against pages that block Playwright or Selenium

USE CASE 2

Research how browser fingerprinting and bot detection signals interact

USE CASE 3

Drive a deterministic Chromium identity for reproducible scraping tests

USE CASE 4

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

What is it built with?

ChromiumC++PythonPlaywright

How does it compare?

clark-labs-inc/clark-browsernvlabs/cbottlegao-ruilin/autorun
Stars102102101
LanguagePythonPythonPython
Last pushed2026-05-05
MaintenanceMaintained
Setup difficultymoderatehardeasy
Complexity5/54/52/5
Audiencedeveloperresearcherdeveloper

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

How do you get it running?

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.

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.

Copy-paste 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

What 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.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.