# camofox-browser

> Anti-detection browser server for AI agents — REST API wrapping Camoufox engine with OpenClaw plugin support

- **URL**: https://www.freshcrate.ai/projects/camofox-browser
- **Author**: redf0x1
- **Category**: MCP Servers
- **Latest version**: `v2.4.5` (2026-05-25)
- **License**: MIT
- **Source**: https://github.com/redf0x1/camofox-browser
- **Language**: TypeScript
- **GitHub**: 80 stars, 6 forks
- **Registry**: github
- **Tags**: `ai-agent`, `anti-detection`, `automation`, `bot-detection`, `browser-automation`, `browser-server`, `camofox`, `camoufox`, `typescript`

## Description

Anti-detection browser server for AI agents — REST API wrapping Camoufox engine with OpenClaw plugin support

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `v2.4.5` | 2026-05-25 | High | ## What changed  - Added CAMOFOX_AUTH_MODE=auto\|required\|disabled. - auto preserves the existing secure default: loopback can run without an API key, while non-loopback binds require CAMOFOX_API_KEY. - required forces CAMOFOX_API_KEY for every bind, including loopback. - disabled explicitly disables API-key auth for trusted private agent networks whose clients cannot send bearer tokens, including Hermes/OpenClaw/GoClaw-style deployments.  ## Guardrails  - CAMOFOX_AUTH_MODE=disabled must run with |
| `v2.4.4` | 2026-05-23 | High | Patch release for Issue #19.  Fixed: - First tab creation now reuses the browser engine's initial untracked about:blank page when safe, so headed and virtual-display sessions no longer open an extra empty window next to the requested page. - Refreshed Express/body-parser/qs and CI reporter dependency locks so npm audit --audit-level=moderate reports zero vulnerabilities.  Verification: - npm run lint - npm test: 63 passed, 2 skipped suites; 482 passed, 18 skipped tests - npm run test:e2 |
| `v2.4.3` | 2026-05-14 | High | Patch release for Wave 2 runtime hardening.  Highlights: - Applies session-level proxyProfile/raw proxy egress to browser context launch. - Isolates sibling session/profile state with delimiter-safe encoded keys and profile-keyed persistent directories. - Hardens trace artifact owner tokens and rejects colliding legacy trace tokens. - Fixes default/profile session lifecycle cleanup, rollback races, max-tabs default-claim cleanup, display-toggle restart preservation, and ambiguous cookie import h |
| `v2.4.1` | 2026-05-05 | High | ## Highlights - Fix Docker/GHCR release builds so transient `camoufox-js fetch` / GeoLite download failures no longer fail the image build - Keep the full Wave 2 surface from `v2.4.0` intact - Preserve package/plugin parity at `2.4.1`  ## Notes - This is a focused patch release to repair the release lane after `v2.4.0` - Local verification, package contract checks, and a regression test for the Dockerfile contract all passed before tagging |
| `v2.3.0` | 2026-05-03 | High | ## Highlights - Trace artifact management endpoints for listing, downloading, and deleting managed Playwright trace ZIPs per user session - Image-only extraction route with selector, extension, lazy-load, and blob-resolution controls - Additional hardening for trace ownership, path validation, timeout cleanup, and chunk-stop coordination  ## Verification - `npm test` - `npm run verify:package`  ## Publishing Notes - GitHub release and tag are published in this step - npm package publish is inten |
| `v2.1.1` | 2026-03-08 | Low | Fix: Unknown ref error now returns HTTP 400 (was 500) with guidance to call snapshot first. |
| `v2.1.0` | 2026-03-08 | Low | Major ref/snapshot system improvements: - FIX: CSS selector routing — only /^e\d+$/ is a ref, everything else is CSS selector - FIX: Single ariaSnapshot call eliminates ref/snapshot race condition - FIX: Unified snapshot routes (core + OpenClaw use same service) - NEW: Expanded ARIA roles for refs (combobox, listbox, option, dialog, etc.) - NEW: Configurable MAX_SNAPSHOT_NODES (env CAMOFOX_MAX_SNAPSHOT_NODES, default 2000) - NEW: Stale-ref detection with clear HTTP 400 error - FIX: OpenClaw /act |
| `v2.0.5` | 2026-03-08 | Low | ## Fixed - Resolved text input truncation at ~500 characters caused by humanize typing delay + 30s handler timeout - `smartFill()` now uses bulk DOM insertion via `page.evaluate()` for text >= 400 characters - Dynamic typing timeout replaces fixed 30s limit: 10,000ms base + 80ms per character (max 120,000ms)  ## Changed - Short text (<400 chars) continues to use humanized per-character typing for anti-detection - ContentEditable elements use `document.execCommand('insertText')` for rich text com |
| `v1.9.0` | 2026-03-01 | Low | ## What's New  ### Added - `POST /tabs/:tabId/evaluate-extended` — Execute JavaScript with extended timeout up to **300 seconds**   - Configurable timeout (100ms to 300s, default 30s)   - Conditional API key authentication (when `CAMOFOX_API_KEY` is set)   - Per-user fixed-window rate limiting (default: 20 req/minute)   - New env vars: `CAMOFOX_EVAL_EXTENDED_RATE_LIMIT_MAX`, `CAMOFOX_EVAL_EXTENDED_RATE_LIMIT_WINDOW_MS` - In-memory rate limiter middleware - Unit + E2E tests for evaluate-extended |
| `v1.8.1` | 2026-02-28 | Low | ### Fixed - noVNC display scaling — Removed x11vnc -ncache flag that caused 10x framebuffer height - Custom Xvfb resolution — Replaced camoufox VirtualDisplay (1x1px) with proper 1920x1080 Xvfb - CAMOFOX_VNC_RESOLUTION env var for custom resolution |

## Dependency audit

- **Score**: 100/100
- **Total deps**: 15
- **Resolved**: 15
- **Unresolved**: 0
- **License conflicts**: 0
- **Warnings**: 0
- **Scanned**: 2026-06-01

## Citation

- HTML: https://www.freshcrate.ai/projects/camofox-browser
- Markdown: https://www.freshcrate.ai/projects/camofox-browser.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/camofox-browser/deps

_Generated by freshcrate.ai. Indexes github releases for AI-agent ecosystem packages._
