[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-77387":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":14,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":15,"starSnapshotCount":15,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},77387,"clark-browser","clark-labs-inc\u002Fclark-browser","clark-labs-inc","Fully stealth chromium for AI agents. Powering Clark agent. https:\u002F\u002Fwww.clarkchat.com","https:\u002F\u002Fwww.clarkchat.com",null,"Python",106,22,5,0,51,4.09,"Other",false,"main",true,[23,24,25,26],"agent-browser","chromium","stealth-browser","ungoogled-chromium","2026-06-12 02:03:43","# clark-browser\n\n![clark-browser bot detection check](.\u002Fpromo\u002Fclark-browser-bot-check.gif)\n\n*by [Clark](https:\u002F\u002Fclarkchat.com) — MIT licensed*\n\n**Stealth Chromium for browser automation.** Anti-fingerprinting compiled into\nthe binary at the C++ source level — not a JavaScript injection, not a config\npatch.\n\n## What this is\n\nA fork of [ungoogled-chromium](https:\u002F\u002Fgithub.com\u002Fungoogled-software\u002Fungoogled-chromium)\n148.0.7778.96 with a patch series that makes the binary indistinguishable\nfrom a real Chrome install across the JS-visible fingerprint surface (navigator\nproperties, WebGL GPU strings, screen dimensions, plugins, timezones, etc.).\n\nThe patched binary is MIT-licensed — this is an open-source project, **not** a\ncommercial-licensed stealth browser like CloakBrowser or Multilogin. Build it\nfrom source yourself, or use the prebuilt binaries from\n[GitHub Releases](https:\u002F\u002Fgithub.com\u002Fclark-labs-inc\u002Fclark-browser\u002Freleases).\n\n## Why\n\nStock `chromium --headless` is trivially detectable: `navigator.webdriver\n= true`, empty plugin list, `HeadlessChrome` in the User-Agent, software-renderer\nWebGL strings, and a dozen other signals that detection sites grep for. JS-level\n\"stealth\" shims (puppeteer-extra-plugin-stealth, playwright-stealth, undetected-\nchromedriver) only paper over the surface — sites like FingerprintJS, BrowserScan,\nand Cloudflare Turnstile catch them because the patches themselves are\ndetectable.\n\nclark-browser patches Chromium where the values come from — at the C++ source\nlevel, in blink\u002Fv8\u002Fnet — so detection sites just see \"a normal Chrome install.\"\n\n## Supported platforms\n\n| Platform | Status |\n|---|---|\n| Linux x86_64 | prebuilt binary in [releases](https:\u002F\u002Fgithub.com\u002Fclark-labs-inc\u002Fclark-browser\u002Freleases) |\n| macOS arm64 | prebuilt binary in [releases](https:\u002F\u002Fgithub.com\u002Fclark-labs-inc\u002Fclark-browser\u002Freleases) |\n\nOther targets (macOS x86_64, Windows) need a source build.\n\n## Usage\n\nInstall the Python wrapper from PyPI:\n\n```bash\npip install clark-browser\n```\n\nUse it as a Playwright launcher. The wrapper downloads the matching patched\nChromium build from GitHub Releases on first launch and caches it under\n`~\u002F.clarkbrowser\u002F`.\n\n```python\nfrom clarkbrowser import launch\n\nbrowser = launch()\npage = browser.new_page()\npage.goto(\"https:\u002F\u002Fbot.sannysoft.com\")\nprint(page.title())\nbrowser.close()\n```\n\nYou can also prefetch or inspect the browser binary with the CLI:\n\n```bash\nclark-browser info\nclark-browser fetch\n```\n\nFor Vercel `agent-browser` usage, see\n[`examples\u002Fagent_browser.md`](.\u002Fexamples\u002Fagent_browser.md).\n\nFor direct CDP usage, download the tarball for your platform from the\n[releases page](https:\u002F\u002Fgithub.com\u002Fclark-labs-inc\u002Fclark-browser\u002Freleases),\nextract it, and run the binary directly. Drive it via any Chrome DevTools\nProtocol client (CDP over HTTP\u002FWebSocket).\n\n```bash\n# Linux: extract and launch with CDP on port 9222\ntar -xzf clark-browser-linux-x64.tar.gz\n.\u002Fheadless_shell \\\n  --headless=new \\\n  --remote-debugging-port=9222 \\\n  --remote-allow-origins=* \\\n  --fingerprint=12345 \\\n  --fingerprint-platform=windows \\\n  --fingerprint-locale=en-US \\\n  --accept-lang=en-US,en \\\n  about:blank\n```\n\nThe Linux tarball contains the `headless_shell` binary (~270 MB), a `chrome`\ncompatibility launcher, headless resource packs, and runtime helper libraries.\nThe macOS arm64 build produces a normal `Chromium.app` bundle.\n\n## Stealth surface\n\n`--fingerprint-*` switches drive the patches. All have seed-derived defaults\nwhen omitted — pass `--fingerprint=\u003Cinteger>` for a deterministic identity, or\nlet the binary pick a fresh seed at startup for per-launch variation.\n\n```\n--fingerprint=\u003Cint>              master RNG seed (10000..99999)\n--fingerprint-platform=          windows | macos | linux\n--fingerprint-platform-version=  client hints platform version\n--fingerprint-brand=             Chrome | Edge | Opera | Vivaldi\n--fingerprint-brand-version=\n--fingerprint-gpu-vendor=        WebGL UNMASKED_VENDOR_WEBGL\n--fingerprint-gpu-renderer=      WebGL UNMASKED_RENDERER_WEBGL\n--fingerprint-hardware-concurrency=\n--fingerprint-device-memory=     in GB\n--fingerprint-screen-width=\n--fingerprint-screen-height=\n--fingerprint-taskbar-height=    Win=48, Mac=95, Linux=0\n--fingerprint-storage-quota=     in MB\n--fingerprint-timezone=          IANA tz, e.g. America\u002FNew_York\n--fingerprint-locale=            BCP 47\n--fingerprint-fonts-dir=         path to platform font directory\n--fingerprint-location=          lat,lon for geolocation API\n--fingerprint-webrtc-ip=         literal IPv4 to spoof in ICE candidates\n--fingerprint-noise=             true | false  (canvas\u002Faudio noise on\u002Foff)\n```\n\n## Verified-working patches\n\nConfirmed firing in CDP-driven smoke tests against the built binary\n(`tests\u002Flinux_smoke.py`, `tests\u002Fintegration_smoke.py`):\n\n| Detection vector | Patched | Verification |\n|---|---|---|\n| `navigator.webdriver` | always `false` | `navigator.webdriver === false` |\n| `navigator.plugins` | 5 PDF-viewer entries | `navigator.plugins.length === 5` |\n| `window.chrome` | always an object | `typeof window.chrome === \"object\"` |\n| `navigator.platform` | spoofed from `--fingerprint-platform` | returns `\"Win32\"` under `=windows` |\n| `navigator.userAgentData` | brand\u002Fplatform\u002Fversion coherent with spoofed UA | returns Windows + Google Chrome under `=windows` |\n| `navigator.hardwareConcurrency` | seed-derived from {4, 6, 8, 12, 16} | deterministic per seed |\n| `navigator.maxTouchPoints` | matched to platform | `0` on `=windows` |\n| timezone \u002F locale | from `--fingerprint-timezone` \u002F `--locale` | reaches Blink as set |\n| User-Agent | no `HeadlessChrome` | full Chrome UA under `--user-agent=...` |\n| Audio fingerprint | seed-derived deterministic noise | two distinct seeds yield distinct audio FP |\n\nSee [`PATCHES.md`](.\u002FPATCHES.md) for the full patch catalog and `specs\u002F` for\nper-category implementation notes.\n\n## Live detector results\n\nRelease\n[`chromium-v148.0.7778.96-stealth1`](https:\u002F\u002Fgithub.com\u002Fclark-labs-inc\u002Fclark-browser\u002Freleases\u002Ftag\u002Fchromium-v148.0.7778.96-stealth1)\nwas tested on 2026-05-20 inside an E2B Ubuntu 24.04 sandbox with the real\n`agent-browser 0.27.0` CLI driving the released Linux binary.\n\n| Target | Result | Evidence |\n|---|---:|---|\n| Cloudflare challenge smoke (`nowsecure.nl`) | PASS | Loaded target without visible challenge\u002Fblock text |\n| SannySoft | PASS | WebDriver missing, Chrome present, HEADCHR UA\u002Fpermissions\u002Fplugins\u002Fiframe all `ok` |\n| Antoine Vastel headless test | PASS with `--accept-lang=en-US,en` | The same released binary failed without an HTTP `Accept-Language` header and passed with one |\n| BrowserLeaks Client Hints | PASS | Windows + Google Chrome UA-CH, no `HeadlessChrome` |\n| BrowserLeaks WebGL | PASS | Google\u002FNVIDIA ANGLE, WebGL\u002FWebGL2 enabled, no SwiftShader\u002Fllvmpipe text |\n| Incolumitas, Pixelscan, BotD demo, CreepJS | OBSERVED | Loaded and captured; no stable passive verdict for several pages; CreepJS still shows a Headless panel |\n\nFull table and raw captured output:\n[`docs\u002Fbot-detection-results.md`](.\u002Fdocs\u002Fbot-detection-results.md).\n\n## Methodology\n\nWe build on ungoogled-chromium (BSD-3) and inherit its existing Brave-derived\ncanvas\u002Faudio\u002FclientRects noise infrastructure. Our patches are written from\npublic sources only — W3C specs, Chromium upstream code, MDN bot-detection\nwriteups, and curl-impersonate (MIT). We do not reverse-engineer or copy from\nany proprietary stealth-browser binary. See [`METHODOLOGY.md`](.\u002FMETHODOLOGY.md).\n\n## Building from source\n\n```bash\n# 1. Fetch tooling\ngit clone https:\u002F\u002Fgithub.com\u002Fclark-labs-inc\u002Fclark-browser\ncd clark-browser\n\n# 2. Fetch Chromium 148 source (~17 GB, ~30 min)\n.\u002Fbuild\u002Ffetch-source.sh\n\n# 3. Apply patches (instant)\n.\u002Fbuild\u002Fapply-patches.sh\n\n# 4. Build (4–12 hours, ~80 GB disk, 32+ GB RAM recommended)\n.\u002Fbuild\u002Fbuild.sh\n```\n\nFor a clean Linux x86_64 build that mirrors what ships in our releases, use\n`.\u002Fbuild\u002Fbuild-linux.sh` instead (runs the full clone → patch → ninja pipeline\nin a single script; designed for fresh Ubuntu hosts).\n\nSee [`build\u002FREADME.md`](.\u002Fbuild\u002FREADME.md) for detailed prerequisites.\n\n## License\n\nMIT. ungoogled-chromium and Chromium upstream components retain their\nrespective BSD\u002FMPL\u002Fother licenses; this project does not modify those.\n\n## Status\n\n**Alpha.** Linux x86_64 and macOS arm64 builds are reproducible end-to-end and\nthe patches above are runtime-confirmed against the built binary. The\nremaining patches in the series compile in but need broader detection-site\nbenchmarking. Contributions welcome — see `specs\u002F` for the patch backlog.\n","clark-browser 是一个用于浏览器自动化的隐身 Chromium 浏览器。它通过在 C++ 源代码级别进行反指纹识别编译，使得该浏览器在 JavaScript 可见的指纹表面上与普通 Chrome 安装无异，从而避免了常见的自动化检测手段。项目基于 ungoogled-chromium，并添加了一系列补丁来隐藏自动化特征，如 navigator 属性、WebGL GPU 字符串等。适用于需要绕过网站对自动化浏览行为检测的场景，比如数据抓取或自动化测试。支持 Linux x86_64 和 macOS arm64 平台，可通过 Python 包管理工具 pip 安装使用。",2,"2026-06-11 03:55:23","CREATED_QUERY"]