mrkeyoor.com_
Tue 01 Sept 17:44 UTC
Automationevaluationupdated 26 Aug 2026

camofox-browser review

Camofox Browser wraps the Firefox-based Camoufox anti-detection engine in a REST API and MCP server for AI agents. It returns compact accessibility snapshots with stable element references, manages isolated browser sessions, and supports clicks, typing, screenshots, downloads, cookies, proxies, and structured extraction without asking an agent to parse a full page.

+139stars / 7d
Verdict

Our Camofox Browser build passed in 7 seconds with 0 known npm vulnerabilities, but Jest stopped before executing tests because jest-junit was missing. Use it when an authorized agent needs compact browser controls and ordinary automation fingerprints are the blocker. Bind it to loopback for local use, require an access key for every remote route, and disable or self-host telemetry before browsing sensitive internal systems.

We ran it

Lab card: what happened when we ran camofox-browserScreenshot of camofox-browser (github.com/jo-inc/camofox-browser#readme)
Install✓ · 57s438 packages · 180 MB
Build✓ · 7s
Tests✗ · 7sran, no count parsed
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo201 files~29,838 lines of source · 3.1 MB · 7 CI workflows · Dockerfile · tests dir

Answers from our run

Does camofox-browser build from source?

Dependencies installed in 57 seconds (438 packages), and the build succeeded in 7 seconds. We cloned commit e5a36f5 into a clean Debian container with 3 CPUs and no project-specific setup.

Do camofox-browser's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Does camofox-browser have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use camofox-browser?

Teams that only need ordinary browser testing: Playwright is simpler and covers Chromium, Firefox, and WebKit.

What are the alternatives to camofox-browser?

Playwright, Browser Use, Crawlee. Our Camofox Browser build passed in 7 seconds with 0 known npm vulnerabilities, but Jest stopped before executing tests because jest-junit was missing.

Setup3/5Fast build, but a browser bundle and secure server config are required
Docs5/5REST, MCP, Docker, auth, telemetry, and persistence are detailed
Community4/58,894 stars with active August 2026 maintenance
Maturity3/5Wide API and CI, but the pinned Jest configuration did not run

Discussed on

  1. hnCamofox-browser: Anti-detection browser for AI agents, powered by Camoufox3 points

Who it’s for

Agent developers who need browser actions exposed through REST, MCP, or an OpenClaw plugin.
Teams whose permitted automation is blocked by ordinary headless-browser fingerprints.
Operators who need separate cookies and storage for several agent sessions.
Developers prepared to secure an HTTP browser-control service and monitor its memory over long runs.

Who it’s NOT for

Teams that only need ordinary browser testing: Playwright is simpler and covers Chromium, Firefox, and WebKit.
Remote deployments without authentication: the server uses all-interface binding when no host is set, while global access control is optional.
Privacy policies that prohibit default outbound diagnostics: anonymized crash and hang telemetry is enabled unless disabled or redirected.
Air-gapped installs without a managed Camoufox bundle: normal setup downloads an approximately 300 MB browser binary.
Workloads that cannot tolerate a broken source test command: our pinned checkout could not load the configured jest-junit reporter.
Automation that violates a site's terms or access controls: anti-detection changes fingerprinting, not the operator's authorization.

Setup reality

Our sandbox installed 438 npm packages in 57 seconds and used 180 MB on disk. The build succeeded in 7 seconds. Tests exited 1 after 7 seconds because Jest could not resolve the configured jest-junit module; the supplied log had no executed-test summary. Npm audit reported 0 known vulnerabilities.

A usable server still needs the Camoufox browser bundle, which the normal setup downloads on first use at about 300 MB. The REST API defaults to port 9377 and all-interface binding unless CAMOFOX_BIND_HOST is set. Remote use needs CAMOFOX_ACCESS_KEY; cookie import has a separate CAMOFOX_API_KEY.

The 201-file checkout included 7 CI workflows, a Dockerfile, and a tests directory. Docker builds should use the supplied Makefile or PowerShell wrapper because the standard Dockerfile expects pre-fetched binaries. The MCP adapter can be installed alone when the REST server runs elsewhere.

Camofox gives agents references instead of raw page markup

A Camofox session opens a Camoufox browser context and exposes each tab through HTTP. The snapshot endpoint returns the accessibility tree with stable references such as e1 and e2. An agent reads that smaller representation, clicks or types against a reference, then takes another snapshot. This is easier to constrain than asking a model to select from a large HTML document on every step.

The server also handles screenshots, files, download capture, page evaluation, link and image extraction, proxy settings, and persisted browser storage. Separate user IDs receive isolated contexts. The default limits allow up to 50 sessions and 10 tabs per session, with idle cleanup settings for tabs and the browser. Those defaults are starting points; a shared service needs resource measurements under its own sites and concurrency.

Anti-detection is an engine feature, not a permission slip

The underlying Camoufox fork changes browser fingerprint surfaces inside Firefox rather than injecting JavaScript shims. Camofox Browser packages that engine for agents and advertises better results against bot detection. We did not measure bypass rates or compare target websites, so this review cannot confirm any universal access claim. Sites change detection rules, and a route that works today can fail tomorrow.

Use it only where the operator is allowed to automate. Authentication cookies, proxy geolocation, and a less obvious fingerprint can increase the impact of a mistake. Build per-site rate limits, stop conditions, and audit logs outside the model prompt. For public data collection at scale, Crawlee may offer the queue controls a REST tab server does not. For browser tests, Playwright is the clearer default.

What happened when we ran it

Our sandbox installed 438 npm packages in 57 seconds and occupied 180 MB. The build completed successfully in 7 seconds. The test command failed after another 7 seconds with exit code 1. We tested commit e5a36f5 in an unprivileged container with 3 CPUs, 8 GB of RAM, no secrets, and Node 22.

Jest failed while normalizing its reporter configuration because it could not resolve the module jest-junit. The supplied log ends in Jest's configuration stack and contains no test count, so there is no basis to say whether any product assertion passed or failed. The result is a repository setup defect in our environment: installation and build worked, while the advertised test command did not reach a reportable suite.

Npm audit found 0 known vulnerabilities across the installed dependency tree. The checkout contained 201 files, about 29,838 source lines, 7 CI workflow files, a Dockerfile, and a tests directory. A normal runtime also needs the Camoufox browser bundle. The README says the standard path downloads about 300 MB, while an external bundle can be selected through CAMOUFOX_EXECUTABLE. Our lab did not launch or benchmark that engine.

Remote access needs a global bearer key

Port 9377 is the default, and Node uses all-interface binding when CAMOFOX_BIND_HOST is unset. CAMOFOX_ACCESS_KEY adds bearer authentication to browser routes, while CAMOFOX_API_KEY separately enables cookie import. A remote deployment should set both as needed, put TLS and network policy in front of the service, and keep /health exposure minimal. Browser control can read pages, use stored sessions, download files, and execute page JavaScript.

Persistence saves cookies and localStorage beneath hashed user directories. IndexedDB capture is optional and can make state larger. Session traces may contain screenshots, DOM snapshots, console output, and network requests; defaults cap each trace at 50 MB and remove files older than 24 hours on startup. Treat profiles and trace zips as credentials and user data, with encrypted storage and short retention.

MCP is a thin adapter over the same REST server

The standalone MCP package exposes 11 tools and translates their calls to the REST API. Claude Code, Codex, Cursor, opencode, and other MCP hosts can spawn one stdio adapter per session while a single Camofox REST server stays running. The adapter can be installed without the browser dependencies when it points at a server on another machine.

That split is sensible, but it does not secure the network hop automatically. A remote CAMOFOX_BASE_URL should use an authenticated, encrypted route, and the adapter needs the same access key as the REST server. Cookie import adds its second key. The MCP README recommends snapshotting before each action, using element references rather than broad CSS selectors, and closing tabs when finished. Those habits reduce ambiguous clicks and leaked sessions.

Crash telemetry is on until an operator changes it

The server sends anonymized crash and hang reports to a Cloudflare Worker by default. Its documentation says private domains are HMAC-hashed, paths and query values are removed, and tokens, IP addresses, emails, and file paths are redacted. The worker may create GitHub issues, which explains the stream of automated memory and event-loop reports in the repository.

Set CAMOFOX_CRASH_REPORT_ENABLED=false when outbound diagnostics are not acceptable, or point the reporter to a self-hosted endpoint. GitHub showed 8,894 stars, 70 combined issues and pull requests, and a last push on August 25, 2026. The latest release is labeled as a Camoufox availability backup rather than a Camofox Browser software release, so current source activity and issue handling are better health signals than that tag.

Alternatives

ProjectWhat it isPick it when
Playwright gh↗A mainstream browser automation framework spanning Chromium, Firefox, and WebKit.pick this instead when testing and reliable automation matter more than anti-detection fingerprints or an agent-ready REST layer.
Browser Use gh↗A framework that connects AI agents to browser workflows.pick this instead when you want a higher-level agent loop rather than operating a browser-control server yourself.
Crawlee gh↗A Node.js crawling and automation library with queues, proxy rotation, and several browser backends.pick this instead when large crawl orchestration and extraction matter more than per-agent interactive sessions.
CamoufoxThe anti-detection Firefox fork that supplies Camofox Browser's underlying engine.pick this instead when you want direct browser control and will build the REST or agent integration yourself.

What people are saying

  1. [github-trending] jo-inc/camofox-browser

Sources

  1. Camofox Browser README
  2. Camofox Browser MCP guide
  3. Open event-loop stall report
  4. Camoufox availability backup release

More automation reviews

rclone · lego · OpenCLI · web-access · Karabiner-Elements · WiiUDownloader · the whole board →