chaser-oxide
A Rust-based fork of chromiumoxide for hardened, undetectable browser automation.
chaser-oxide modifies the Chrome DevTools Protocol (CDP) client at the transport and protocol layer to reduce the detection footprint of automated browser sessions. The default profile auto-detects your host OS, Chrome version, and RAM — no hardcoded Windows spoofing out of the box.
Features
- Protocol-Level Stealth: Patches CDP at the transport layer, not via JavaScript wrappers
- Native Profile: Auto-detects host OS, real Chrome version, and system RAM by default
- Fingerprint Profiles: Pre-configured Windows, Linux, macOS profiles with consistent hardware fingerprints for explicit OS spoofing
- Client Hints Sync: Full
UserAgentMetadataviaEmulation.setUserAgentOverridesoSec-CH-UA-*headers match the spoofed UA - Human Interaction Engine: Physics-based Bezier mouse movements and realistic typing patterns
- Request Interception: Built-in request modification and blocking
- Low Memory Footprint: ~50–100MB vs ~500MB+ for Node.js alternatives
Installation
Or in Cargo.toml:
[]
= "0.2.3"
= { = "1", = ["full"] }
= "0.3"
= "1.0.102"
= "1.0.149"
Requirements
- Rust 1.85+
- Chrome/Chromium browser installed
- Supported platforms: Windows, macOS, Linux
Quick Start
Native Profile (recommended)
Uses your real OS, real Chrome version, and real RAM. Just strips HeadlessChrome from the UA.
use ;
use StreamExt;
use Value;
async
Explicit OS Spoofing
Opt into a specific profile when you need to appear as a different OS:
use ;
use StreamExt;
async
API Reference
ChaserPage
ChaserProfile Builder
use ;
// Auto-detect from host environment
let native = native.build;
// Explicit OS presets
let windows = windows.build;
let linux = linux.build;
let mac_arm = macos_arm.build;
let mac_intel = macos_intel.build;
// Builder options (chain onto any preset)
let custom = windows
.chrome_version
.gpu
.memory_gb
.cpu_cores
.locale
.timezone
.screen
.build;
Available GPUs
BrowserConfig
let config = builder
.chrome_executable
.new_headless_mode // Headless (Chrome's new headless — less detectable)
.with_head // Headed window
.viewport
.build?;
Stealth Details
What apply_native_profile() does
- Reads the live Chrome version from the browser via
Browser.getVersionCDP - Detects host OS (including arm64 vs x86 on macOS) and system RAM
- Calls
Emulation.setUserAgentOverridewith fullUserAgentMetadata— this controls both theUser-Agentheader and allSec-CH-UA-*client hint headers - Injects bootstrap JS via
Page.createIsolatedWorldbefore first navigation
What enable_stealth_mode() does (Page-level)
Applies basic automation signal removal without any OS or version spoofing:
- Removes CDP automation markers (
cdc_,$cdc_,__webdriver, etc.) - Sets
navigator.webdriver = false - Replaces "HeadlessChrome" with "Chrome" in the UA
JavaScript stealth injected by bootstrap script
| Property | Behavior |
|---|---|
navigator.webdriver |
false (set on prototype, survives getOwnPropertyNames) |
navigator.platform |
Matches profile OS (e.g. "Win32", "MacIntel") |
navigator.hardwareConcurrency |
Profile CPU cores |
navigator.deviceMemory |
Profile RAM (spec-valid discrete value) |
navigator.userAgentData |
Full UA-CH object with brands, getHighEntropyValues() |
navigator.plugins |
5-plugin fake set |
| WebGL vendor/renderer | Profile GPU strings |
window.chrome |
Full runtime object with connect(), sendMessage(), csi(), loadTimes(), app |
| CDP markers | Removed from window |
Tested against: Cloudflare Turnstile, Cloudflare WAF, bot.sannysoft.com, areyouheadless, deviceandbrowserinfo.com, CreepJS
Technical Comparison
| Metric | chaser-oxide | Node.js Alternatives |
|---|---|---|
| Language | Rust | JavaScript |
| Memory Footprint | ~50–100MB | ~500MB+ |
| Transport Patching | Protocol-level (internal fork) | High-level (wrapper/plugin) |
| Default Profile | Native host OS + Chrome version | Usually hardcoded |
Dependencies
- chromiumoxide — Base CDP client (forked)
- tokio — Async runtime
- futures — Async utilities
Acknowledgements
This project is a specialized fork of chromiumoxide. The core CDP client and session management are derived from their excellent work.
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)