Camoufox CDP Bridge
Camoufox is a hardened Firefox fork with per-context fingerprint spoofing — unique user agent, screen resolution, WebGL parameters, canvas/audio seeds, and OS-matched fonts per browser context. But Camoufox speaks Juggler, not CDP. Most automation tools (Puppeteer, OpenClaw, browser-use) only speak CDP.
Foxbridge bridges this gap.
How It Works
Puppeteer / OpenClaw / browser-use
│ CDP (Chrome DevTools Protocol)
▼
foxbridge (translation layer)
│ Juggler (Firefox protocol)
▼
Camoufox (anti-detect Firefox)Foxbridge accepts standard CDP WebSocket connections on port 9222 and translates every command to Camoufox’s Juggler protocol via pipe transport (FD 3/4). The translation is invisible — tools think they’re talking to Chrome.
Quick Setup
# Install foxbridge
go install github.com/VulpineOS/foxbridge/cmd/foxbridge@latest
# Start with Camoufox
foxbridge --binary /path/to/camoufox --port 9222 --headlessUse with Puppeteer
const browser = await puppeteer.connect({
browserWSEndpoint: 'ws://127.0.0.1:9222/devtools/browser/foxbridge',
});
const page = await browser.newPage();
await page.goto('https://bot.sannysoft.com'); // passes all checksUse with OpenClaw
{
"browser": {
"cdpUrl": "ws://127.0.0.1:9222",
"enabled": true,
"headless": true
}
}Per-Context Fingerprints
Each browser context in Camoufox gets a unique fingerprint from the BrowserForge pipeline:
- User agent — OS-matched, real browser version strings
- Screen resolution — realistic dimensions matching the OS
- WebGL — 147 GL parameters from a real GPU database
- Canvas/audio — unique seeds per context
- Fonts — OS-matched font lists
- Navigator properties — platform, hardwareConcurrency, deviceMemory
With foxbridge, you create contexts via standard CDP:
const ctx1 = await browser.createBrowserContext(); // Fingerprint A
const ctx2 = await browser.createBrowserContext(); // Fingerprint B
// Different cookies, storage, and fingerprintsWhy Not Just Use Chrome?
| Camoufox + Foxbridge | Chrome | |
|---|---|---|
| Bot detection | Undetectable | Trivially detectable |
| Per-context fingerprints | Unique UA, WebGL, canvas per context | No — all tabs identical |
| Memory per context | ~10-15MB | ~50-80MB |
| Automation markers | None (navigator.webdriver = false at C++ level) | $cdc_, HeadlessChrome UA |
| CDP support | Full via foxbridge (74/74 tests) | Native |
At Scale with VulpineOS
For running hundreds of agents, VulpineOS embeds foxbridge directly — one Camoufox process, one foxbridge CDP server, hundreds of isolated contexts with unique fingerprints. No separate processes needed.
See also
- Quick Start — Install and connect in 2 minutes
- Foxbridge vs Alternatives — Detailed comparison table
- Context Management — How context isolation works
- VulpineOS Integration — Embedded mode for scale