Overview
Camofox Browser is a REST API wrapper around Camoufox, a Firefox-based engine that spoofs browser fingerprints at the C++ level rather than by patching JavaScript. Properties such as `navigator.hardwareConcurrency`, WebGL, AudioContext and screen geometry are altered in the implementation, which is what lets it get through the detection layers that trip up ordinary headless automation.
The API is shaped for LLM agents rather than for test scripts. Instead of returning raw HTML, it returns accessibility snapshots that the project measures at roughly 90% smaller — a direct saving on the context an agent has to read — and it hands back stable element references (`e1`, `e2`, `e3`) so a follow-up click targets the same element even if the page has shifted. Idle memory is around 40 MB, with lazy browser launch and shutdown.
Operationally it covers the things long-running agent sessions need: per-user cookie and storage isolation that survives restarts, residential proxy routing with automatic locale and timezone from GeoIP, Playwright trace capture with screenshots and network logs for debugging, YouTube transcript extraction via yt-dlp, interactive login through noVNC with storage-state export, and search macros such as `@google_search` and `@reddit_subreddit`.
What it does
- C++-level fingerprint spoofing via Camoufox — navigator, WebGL, AudioContext and screen geometry
- Accessibility snapshots roughly 90% smaller than raw HTML, sized for an agent's context window
- Stable element references (e1, e2, e3) so clicks and typing target the right node across turns
- Per-user session isolation for cookies and storage, persisted across restarts
- Residential proxy routing with GeoIP-derived locale and timezone, plus noVNC interactive login
- Playwright trace capture, YouTube transcript extraction, and built-in search macros
Getting started
The server exposes an HTTP API on port 9377. Run it from npm, from source, or with the bundled Docker setup — then drive it with plain HTTP calls from whatever language your agent is in.
Run the server
The quickest path is npx; Docker is available through the Makefile.
npx @askjo/camofox-browserOr build from source
Clone and start it directly; the server comes up on http://localhost:9377.
git clone https://github.com/jo-inc/camofox-browser && cd camofox-browser
npm install && npm startOpen a tab
A tab is scoped to a userId and a sessionKey, which is what keeps cookies and storage isolated between agents.
curl -X POST http://localhost:9377/tabs \
-H 'Content-Type: application/json' \
-d '{"userId": "agent1", "sessionKey": "task1", "url": "https://example.com"}'Read the page as an accessibility snapshot
This is what you feed the model — far smaller than the HTML, and it carries the element refs you act on next.
curl "http://localhost:9377/tabs/TAB_ID/snapshot?userId=agent1"Act on an element by ref
Click and type take the ref from the snapshot. Other endpoints cover /press, /scroll, /navigate, /links, /images, /downloads and /screenshot.
curl -X POST http://localhost:9377/tabs/TAB_ID/click \
-H 'Content-Type: application/json' \
-d '{"userId": "agent1", "ref": "e1"}'
curl -X POST http://localhost:9377/tabs/TAB_ID/type \
-H 'Content-Type: application/json' \
-d '{"userId": "agent1", "ref": "e2", "text": "hello"}'Commands and code are distilled from the project's own documentation — always check the official repo for the latest.
When to use it
- Give a web-browsing agent pages as compact accessibility trees instead of blowing its context on raw HTML
- Keep dozens of agent sessions isolated, each with its own cookies and logged-in state
- Log in once interactively through noVNC, export the storage state, and reuse it for unattended runs
- Debug a failed agent run from a Playwright trace with screenshots, DOM snapshots and network logs
How Camofox Browser compares
Camofox Browser alongside other open-source computer & browser use tools AI/TLDR tracks, ranked by GitHub stars.
| Tool | Stars | What it does |
|---|---|---|
| Browser Use | ★ 115k | A Python library that lets agents control a real browser to read pages and complete tasks online from natural-language instructions. |
| Open Interpreter | ★ 68.4k | A lightweight coding agent that runs code on your own computer to carry out tasks from natural-language requests. |
| Chrome DevTools MCP | ★ 52.2k | The Chrome team's MCP server that lets a coding agent control and inspect a live Chrome browser — performance traces, network requests, console messages and Puppeteer-backed automation. |
| UI-TARS Desktop | ★ 39k | ByteDance's multimodal agent stack and desktop app that controls a computer's graphical interface using vision-language models. |
| AIHawk | ★ 31.6k | Browser agent on a stealth Firefox that takes plain-language tasks and clicks, types and reads real pages - usable as an MCP server from Claude Code, Codex or Gemini CLI, or via its own web UI. |
| CloakBrowser | ★ 31.5k | Stealth Chromium build with source-level fingerprint patches that drops into Playwright or Puppeteer code, so agents and scrapers browse without tripping bot detection. |
| OpenCLI | ★ 29.4k | Turns websites into deterministic CLI commands and lets agents drive your already-logged-in Chrome through a browser bridge extension, with adapters for sites and local binaries. |
| Camofox Browser | ★ 11.1k | REST browser for agents with accessibility snapshots and stable refs |