Skip to Content
Camoufox CDP Bridge

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 --headless

Use 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 checks

Use 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 fingerprints

Why Not Just Use Chrome?

Camoufox + FoxbridgeChrome
Bot detectionUndetectableTrivially detectable
Per-context fingerprintsUnique UA, WebGL, canvas per contextNo — all tabs identical
Memory per context~10-15MB~50-80MB
Automation markersNone (navigator.webdriver = false at C++ level)$cdc_, HeadlessChrome UA
CDP supportFull 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

Last updated on