GodBrowser is a patched Chromium 147 anti-fingerprint browser. It ships per-profile, deterministic, internally-coherent device fingerprints across 5 OSes (Windows / macOS / Linux / iOS / Android) and 5 browser engines (Chrome / Safari / Firefox / Samsung Internet / Edge), and silently passes the major protection stacks (PerimeterX, DataDome, Cloudflare, Akamai, and more). It also auto-solves captchas in-browser. You integrate with it exactly like Chrome — launch it with flags, or drive it over the standard Chrome DevTools Protocol (CDP).
Chromium 1475 OS × 5 browsers 121/139 params verified 13/16 captcha widget types proven on real sites.
# GodBrowser binaries are access-gated; request access for the install one-liner + signed builds../tools/run_godbrowser.sh --bot-os=macos --bot-browser=chrome https://example.com/Applications/GodBrowser.app/Contents/MacOS/GodBrowser --bot-os=windows --bot-browser=firefox https://example.comGodBrowser --bot-profile=<seed-string> https://example.comGodBrowser --remote-debugging-port=9222 --remote-allow-origins=* --bot-profile=s7 https://example.com--bot-os= windows | macos | linux | ios | android--bot-browser= chrome | safari | firefox | samsung | edge (valid OS×browser subset only; e.g. Safari=Apple, Samsung=Android)--bot-profile=<seed> — a deterministic seed; the same seed always yields the same coherent device. Omit --bot-os/--bot-browser to let the seed pick a coherent persona.--bot-config-locale=, --bot-egress-countries= — locale / egress provisioning.Captcha auto-solve is built in. Provide a solving-service key via an env var (or --bot-captcha-key-file=<path>) and it auto-solves reCAPTCHA-v2 + auto-clicks Cloudflare-managed Turnstile checkboxes with no host sidecar. The wrapper turns it on automatically when a key is present (read from .env). Opt out with GB_CAPTCHA_OFF=1 or --bot-captcha-auto=off. The key is read browser-process-only and never reaches the renderer, page, command line, or logs.
For geo-coherent egress, set GODBROWSER_PROXY_SEED=<proxy-template-url> in the environment and pick a country with --bot-proxy-seed-country=<ISO2> (the wrapper alias is --proxy-country=XX). The persona locale + timezone + Accept-Language are made coherent with the chosen exit country automatically. A static upstream proxy is --bot-proxy=<url> (no seed→locale resolution).
Every --bot-* / --bm-* switch and the key environment variables. Grouped by family.
| --bot-captcha-key-file | Solving-service key for in-browser auto-solve (browser-process-only; or supply via .env). |
| GB_CAPTCHA_OFF=1 | Disable captcha auto-solve. |
| GODBROWSER_PROXY_SEED | Proxy-pool / template URL that drives seed→locale→egress resolution. |
| GB_BIN | (wrapper) path to a specific GodBrowser binary. |
| switch | what it does |
|---|---|
| --bot-always-active | Force document.hidden=false / visibilityState=visible / userActivation. launch-clean + wired |
| --bot-audio-noise-seed | Override the audio noise seed. launch-clean + wired |
| --bot-auto-print-seed | applied browser |
| --bot-block-resources | Fine-grained resource block list (images, media, fonts, ...). applied browser-side via fingerprint_profile/launch (renderer-forward not required) |
| --bot-bookmarks | Pre-seed the BookmarkModel at startup. applied browser-side via fingerprint_profile/launch (renderer-forward not required) |
| --bot-browser | Browser-kind override — drives UA-CH brands, EME stub, vendor strings. launch-clean + wired; tier-2 PASS: bot-browser=safari->navigator~"Safari":Y |
| --bot-browser-version | launch |
| --bot-cookies | Pre-seed the CookieManager at startup. applied browser-side via fingerprint_profile/launch (renderer-forward not required) |
| --bot-custom-headers | Inject custom HTTP request headers on navigation + subresources. launch-clean + wired |
| --bot-direct-resources | applied browser |
| --bot-enable-webrtc | launch |
| --bot-fp-telemetry | launch |
| --bot-fps | rAF cadence control (n / profile / real). launch-clean + wired |
| --bot-humanize | launch |
| --bot-inject-random-history | Pre-populate HistoryService + spoof history.length. launch-clean + wired |
| --bot-internal-auto-default | launch |
| --bot-mobile-force-touch | launch |
| --bot-network-info-override | launch |
| --bot-noise-seed | Override the canvas noise seed. launch-clean + wired |
| --bot-noise-seed-mode | Per-eTLD+1 noise seed mixing (profile / per-etld). launch-clean + wired |
| --bot-noop-prelude | launch |
| --bot-os | Pick the OS family the profile spoofs (windows / macos / linux / android / ios). launch-clean + wired; tier-2 PASS: bot-os=windows->navigator~"Windows":Y; bot-os=ios->navigator~"iPhone|iPad":Y |
| --bot-pageload-jitter | Synthetic NavigationTiming jitter. launch-clean + wired |
| --bot-port-protection | launch |
| --bot-prelude-upto | launch |
| --bot-profile | Deterministic per-seed fingerprint. Same seed = same identity, anywhere. launch-clean + wired; tier-2 PASS: deterministic: same-seed UA == |
| --bot-profile-dir | Random-pick mode: rotate through a directory of profile seeds. applied browser-side via fingerprint_profile/launch (renderer-forward not required) |
| --bot-proxy-bypass-rgx | launch |
| --bot-redis-key-prefix | applied browser |
| --bot-redis-uri | Cross-machine session sync — restore cookies + storage per seed. applied browser-side via fingerprint_profile/launch (renderer-forward not required) |
| --bot-resource-mode | lite/full resource blocker — drop non-essential requests pre-network. applied browser-side via fingerprint_profile/launch (renderer-forward not required) |
| --bot-script | launch |
| --bot-self-test | applied browser |
| --bot-session-visibility-cadence | launch |
| --bot-stack-seed | launch |
| --bot-time-scale | Fractional time scaler for timing surfaces. launch-clean + wired |
| --bot-time-seed | launch |
| --bot-title | launch |
| --bot-tls-mimic | launch |
| --bot-utls | applied browser |
| --bot-webrtc-ice | launch |
| --bot-webrtc-noise-seed | Override the WebRTC noise seed. launch-clean + wired |
| switch | what it does |
|---|---|
| --bot-config-architecture | launch |
| --bot-config-bitness | launch |
| --bot-config-browser-brand | launch |
| --bot-config-color-scheme | launch |
| --bot-config-disable-device-scale-factor | launch |
| --bot-config-fonts | launch |
| --bot-config-keyboard | launch |
| --bot-config-languages | navigator.languages AND the Accept-Language header. launch-clean + wired; tier-2 PASS: bot-config-languages=fr-FR,fr->navigator~"fr":Y |
| --bot-config-locale | navigator.language, Intl.locale, ICU default. launch-clean + wired; tier-2 PASS: bot-config-locale=de-DE->navigator~"de":Y |
| --bot-config-location | launch |
| --bot-config-media-devices | launch |
| --bot-config-media-types | launch |
| --bot-config-mobile | launch |
| --bot-config-model | launch |
| --bot-config-no-tz-warning | applied browser |
| --bot-config-orientation | launch |
| --bot-config-platform | launch |
| --bot-config-platform-version | launch |
| --bot-config-speech-voices | launch |
| --bot-config-stack-size | launch |
| --bot-config-timezone | ICU + V8 isolate timezone. launch-clean + wired; tier-2 PASS: bot-config-timezone=Asia/Tokyo->Intl~"Tokyo":Y |
| --bot-config-ua-full-version | launch |
| --bot-config-webgl | Short-circuit WebGL context creation when set to disabled. launch-clean + wired |
| --bot-config-webgpu | Short-circuit WebGPU when set to disabled. launch-clean + wired |
| switch | what it does |
|---|---|
| --bot-config-noise-audio-context | launch |
| --bot-config-noise-canvas | launch |
| --bot-config-noise-client-rects | launch |
| --bot-config-noise-scale-audio-context | launch |
| --bot-config-noise-scale-canvas | launch |
| --bot-config-noise-scale-client-rects | launch |
| --bot-config-noise-scale-text-rects | launch |
| --bot-config-noise-scale-webgl-image | launch |
| --bot-config-noise-text-rects | launch |
| --bot-config-noise-webgl-image | launch |
| switch | what it does |
|---|---|
| --bot-disable-audio-spoof | launch |
| --bot-disable-battery-spoof | launch |
| --bot-disable-behavioral-jitter | launch |
| --bot-disable-click-gaussian | launch |
| --bot-disable-codec-spoof | launch |
| --bot-disable-console-message | launch |
| --bot-disable-debugger | Strip the DevTools-attach signal. launch-clean + wired |
| --bot-disable-devmem-spoof | launch |
| --bot-disable-document-hidden-spoof | launch |
| --bot-disable-etld-noise | applied browser |
| --bot-disable-fonts-spoof | launch |
| --bot-disable-host-gpu-match | launch |
| --bot-disable-hwconcur-spoof | launch |
| --bot-disable-iife-prelude | launch |
| --bot-disable-ime-composition | launch |
| --bot-disable-languages-spoof | launch |
| --bot-disable-matchmedia-spoof | applied browser |
| --bot-disable-media-devices-spoof | launch |
| --bot-disable-mouse-curvature | launch |
| --bot-disable-native-cloak | launch |
| --bot-disable-netinfo-spoof | launch |
| --bot-disable-permissions-spoof | launch |
| --bot-disable-plugins-spoof | launch |
| --bot-disable-pointer-jitter | applied browser |
| --bot-disable-screen-spoof | launch |
| --bot-disable-screenxy-farble | launch |
| --bot-disable-stack-spoof | launch |
| --bot-disable-storage-spoof | launch |
| --bot-disable-symbol-marker | launch |
| --bot-disable-timezone-spoof | launch |
| --bot-disable-ua-spoof | launch |
| --bot-disable-uach-http-spoof | launch |
| --bot-disable-uach-spoof | launch |
| --bot-disable-voice-canonical | launch |
| --bot-disable-webauthn-spoof | launch |
| --bot-disable-webgl-vendor-spoof | launch |
| --bot-disable-webgpu-quantize | launch |
| --bot-disable-webrtc | Remove RTCPeerConnection + getUserMedia entirely. launch-clean + wired |
| --bot-disable-webrtc-ice-spoof | launch |
| --bot-disable-webrtc-sdp-spoof | launch |
| --bot-disable-wheel-inertia | launch |
| --bot-disable-widevine-stub | launch |
| --bot-disable-window-chrome-spoof | launch |
| switch | what it does |
|---|---|
| --no-bot-auto | applied browser |
| --title-id-prefix | applied browser |
These work once the noted dependency is configured (captcha service key, proxy pool, or BusyMate). The "what it does" note states the dep.
| switch | what it does |
|---|---|
| --bm-auth-file | applied browser |
| --bm-capture-all | Capture every request/response pair, not just decrypted app traffic. applied browser-side via fingerprint_profile/launch (renderer-forward not required); external-infra (Busymate / solver) — dormant unless configured; Tier-2 needs the external dep |
| --bm-client | applied browser |
| --bm-device-name | BusyMate capture on-switch + dormancy gate. No flag = stock behavior. applied browser-side via fingerprint_profile/launch (renderer-forward not required); external-infra (Busymate / solver) — dormant unless configured; Tier-2 needs the external dep |
| --bm-disable | applied browser |
| --bm-ingest-url | applied browser |
| --bm-self-test | applied browser |
| --bot-captcha-auto | applied browser |
| --bot-captcha-key-file | applied browser |
| --bot-captcha-provider | applied browser |
| --bot-captcha-proxy | applied browser |
| --bot-captcha-timeout | applied browser |
| --bot-captcha-types | applied browser |
| --bot-egress-countries | needs live egress to fully verify (Tier |
| --bot-proxy-seed | Deterministic per-profile proxy from an MPP / solver pool URL. applied browser-side via fingerprint_profile/launch (renderer-forward not required); needs live egress to fully verify (Tier-2) |
| --bot-proxy-seed-country | ISO-2 country filter for proxy-seed selection. applied browser-side via fingerprint_profile/launch (renderer-forward not required); needs live egress to fully verify (Tier-2) |
| --bot-proxy-seed-refresh | applied browser |
--bot-disable-audio-sample-rate-spoof.