Identical privacy posture on any OS • Cross-platform & WebView simulation • Fingerprint protection validated across 31+ tracking scenarios
BotBrowser is a privacy-first browser core designed to protect users from browser fingerprinting, a technique recognized as a privacy threat by W3C, major browser vendors, privacy regulators, and academic research (see references). It keeps fingerprint signals uniform across every platform, preventing tracking systems from collecting and correlating data to identify users. Run the same profile on Windows, macOS, or Linux and the fingerprint posture stays identical each time.
All engineering focuses on privacy research, cross-platform tracking-resistance validation, and maintaining protected environments for authorized defensive benchmarking. Review the project Legal Disclaimer and Responsible Use Guidelines before using the software.
What makes BotBrowser different: Cross-platform privacy browser core with unified fingerprint technology that prevents tracking data collection and device linkage.
| High-Fidelity, Always-Current Profiles including Android WebView and WebKit-family profile consistency, built on the latest stable Chromium so fingerprints stay aligned with current browser behavior and reduce stale-engine correlation risk | Network Stack Parity with Full-Proxy QUIC/STUN (UDP over SOCKS5) delivers Chromium-level tunneling so geo metadata does not leak and privacy labs maintain clean transport parity |
| Advanced Programmatic Control offers Playwright/Puppeteer integration with CDP leak blocking so privacy tooling leaves no telemetry residue | Distributed Privacy Consistency lets you verify privacy protection across multiple browser instances simultaneously with Mirror, synchronizing input and validating privacy posture in parallel |
| Per-Context Fingerprint enables independent fingerprint bundles per BrowserContext without spawning new processes, with millisecond-level switching and reduced memory overhead | Zero-Overhead Performance adds no measurable latency: Speedometer 3.0 within <1% of stock Chrome, zero fingerprint API overhead across macOS/Linux/Windows, 29% memory savings at scale with Per-Context Fingerprint, and a Trimmed Build (ENT Tier3) delivering 62% lower wall time and 85% faster per-context spin-up on Linux x64 |
Step 1: Download
- Latest release for your OS
- Demo profile (any .enc file)
Step 2: Launch
- GUI: Use BotBrowserLauncher for one-click profile selection and multi-instance management
- CLI (use absolute paths):
cmd
chrome.exe --bot-profile="C:\absolute\path\to\profile.enc" --user-data-dir="%TEMP%\botprofile_%RANDOM%"
- macOS/Linux commands follow the same pattern; see INSTALLATION.md for full instructions.
Step 3: Verify - Visit CreepJS or your preferred tracking observatory to confirm identical privacy posture. - Timezone/locale/language auto-derive from your proxy/IP; override via CLI only when needed.
const browser = await chromium.launch({
headless: true,
executablePath: BOTBROWSER_EXEC_PATH,
args: [`--bot-profile=${BOT_PROFILE_PATH}`,
'--proxy-server=socks5://usr:pwd@127.0.0.1:8989'] // or: http://usr:pwd@127.0.0.1:8989
});
const page = await browser.newPage();
await page.addInitScript(() => { delete window.__playwright__binding__; delete window.__pwInitScripts; });
await page.goto('https://abrahamjuliot.github.io/creepjs/');
Notes:
- Use --user-data-dir with a unique temporary folder to avoid conflicts with running Chromium instances
- Prefer --proxy-server or per-context proxies (ENT Tier1); auto timezone/locale detection applies in both cases
- Avoid framework-specific proxy/auth options (e.g., page.authenticate()), which disable BotBrowser's geo-detection and may leak location information
Examples: Playwright • Puppeteer
More options:
- Framework-less approach: --bot-script + CDP (privileged context, earlier hook, fewer artifacts)
- Docker: docker/README.md
- Full flags: CLI_FLAGS.md
BotBrowser ships in two builds. Both share the same fingerprint protection model, the same profile format, the same CLI flag surface, and the same CDP commands.
| Standard Build | Trimmed Build (ENT Tier3) | |
|---|---|---|
| Distribution | Public releases | Enterprise channel only |
| Built for | Long-running and interactive sessions | Short-session, high-concurrency automation |
| Browser feature surface | Full | Tuned for short-session workloads |
| Fingerprint protection | Same | Same |
| Per-Context Fingerprint | Same | Same |
| Profile compatibility | Same | Same |
Linux x64 benchmark (400 official samples, 1..20 contexts × 10 repeats × 2 builds): Trimmed Build cuts wall time by 62%, per-context creation by 85%, first navigation by 38%, CPU peak by 68%, PSS peak by 31% versus Standard, with 100% success rate and 0 residual processes for both builds.
Trimmed Build is the right choice when context spin-up dominates total wall time, when CPU peak per context limits density, or when shared memory is the binding constraint. Standard Build remains the right choice for interactive workflows and scenarios that exercise the full browser feature surface.
Product overview, engineering design, FAQ: TRIMMED_BUILD.md. Full performance table: BENCHMARK.md#trimmed-build. Access: Enterprise or Pricing.
Configuration priority: CLI flags (highest) > Profile configs > defaults. Timezone, locale, and language auto-derive from your proxy IP.
| Feature | Reference | Guide |
|---|---|---|
| Proxy with embedded credentials (HTTP/SOCKS5/SOCKS5H) | Proxy Configuration | Guide |
| Regex-based proxy routing rules | --proxy-bypass-rgx | Guide |
| Per-context proxy with auto geo-detection | Per-Context Fingerprint | Guide |
| Dynamic proxy switching at runtime | Dynamic Proxy Switching | Guide |
| UDP over SOCKS5 (QUIC/STUN tunneling) | UDP over SOCKS5 | Guide |
| PAC-like request callback (ENT Tier3) | PAC-Like Request Callback | Guide |
| Local DNS solver | --bot-local-dns | Guide |
| Port protection for local services | --bot-port-protection | Guide |
| WebRTC leak protection (SDP/ICE control) | WebRTC Leak Protection | Guide |
| Feature | Reference | Guide |
|---|---|---|
| Canvas / WebGL / WebGPU deterministic noise | Multi-Layer Noise | Canvas · WebGL |
| AudioContext noise calibration | Multi-Layer Noise | Guide |
| Text metrics & ClientRects noise | Multi-Layer Noise | Guide |
| Deterministic noise seeds (reproducible per-tenant) | --bot-noise-seed | Guide |
| Performance timing protection (27 browser operations) | Performance Timing Protection | Guide |
| Video FPS control for media workloads | --bot-video-fps | Guide |
| Stack depth fingerprint control (main/Worker/WASM) | Stack Depth Control | Guide |
| Network information privacy (rtt/downlink/effectiveType) | Network Info Privacy | Guide |
| CPU core scaling protection | CPU Core Scaling | Guide |
| Cross-platform font engine (Win/Mac/Android) | Font Engine | Guide |
| GPU simulation on headless servers | Headless Compatibility | Guide |
| Feature | Reference | Guide |
|---|---|---|
| Cross-platform profile portability (Win / Mac / Linux) | Advanced Features | Guide |
| Browser brand switching (Chrome/Edge/Brave/Opera) | Profile Overrides | Guide |
| Custom User-Agent with full userAgentData control | Profile Overrides | Guide |
| Client Hints alignment (DPR, device-memory, UA-CH) | Browser & OS | Guide |
| Android WebView emulation | [Profile Overrides](CLI_FLAGS.md#profile-confi |
$ claude mcp add BotBrowser \
-- python -m otcore.mcp_server <graph>