Camofox Browser
面向智能体的反检测浏览器 REST 服务,提供可引用的页面操作与会话隔离。
- Star 数
- ★ 12k
- 最近更新
- 4 天前
- License
- MIT
- 主语言
- JavaScript
- FA 评分
- 52/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台
- 费用
- 免费,无需付费服务
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 正在构建网页研究助手的开发者,需要让后端服务创建标签页、读取无障碍快照,并按 e1 这类引用完成点击和输入。
- 不适合
- 需要完全离线或气隙环境的团队,首次安装需下载约300MB的Camoufox二进制
- 不愿向第三方端点发送匿名崩溃与挂起遥测的团队
- 希望开箱即用、无需自行部署服务器与配置密钥的用户
这个 Agent 能做什么,适合哪些场景?
Camofox Browser 是一个运行在 Node.js 上的自托管浏览器服务器,以 Camoufox 的 Firefox 引擎为基础,并通过 REST API 供自动化客户端调用。它把页面转为带 e1、e2 等稳定元素引用的无障碍快照,而非直接返回大量 HTML,并提供点击、输入、导航、滚动、截图与下载读取等接口。每位用户使用独立 BrowserContext,项目可持久化 cookies 和 localStorage,并可按 sessionKey 组织标签页。服务按需启动浏览器、在空闲时关闭,支持 Docker、Railway 和 Fly.io 等部署路径。它还包含代理与 GeoIP 配置、Netscape 格式 Cookie 导入、可选 VNC 登录、会话 Trace、YouTube 字幕提取及匿名化故障遥测。
客户端通过 POST /tabs 创建带 userId、sessionKey 和 URL 的标签页;服务启动 Camoufox,并在该用户的 BrowserContext 中打开页面。随后可调用 GET /tabs/:id/snapshot 获取带元素 ref 的无障碍快照,可选 includeScreenshot=true 返回 base64 PNG;POST /tabs/:id/click、/type、/press、/scroll、/navigate 分别执行交互,navigate 可使用 @google_search、@reddit_search 等宏。GET /tabs/:id/links、/images、/downloads 和 /screenshot 分别提取链接、img 信息、已捕获下载和截图;POST /tabs/:tabId/extract 支持以 JSON Schema 和 x-ref 做结构化提取。它可通过 POST /sessions/:userId/cookies 注入 Playwright cookie 对象,使用 GET /sessions/:userId/storage_state 导出存储状态,并在首个标签创建时传入 trace:true 来生成 Playwright trace zip。POST /youtube/transcript 优先调用 yt-dlp 提取字幕,缺少 yt-dlp 时回退到浏览器拦截方式。
- 正在构建网页研究助手的开发者,需要让后端服务创建标签页、读取无障碍快照,并按 e1 这类引用完成点击和输入。
- 运行多用户自动化任务的团队,需要让不同 userId 的 cookies、localStorage 和标签页互相隔离,并在重启后恢复会话。
- 需要通过住宅代理访问地区相关网页的采集系统,可配置 PROXY_HOST 或 backconnect 代理,并让 Camoufox 根据出口 IP 设置语言、时区和地理位置。
- 需要复用人工登录状态的运营人员,可先通过 VNC 完成站点登录,或导入 Netscape 格式 cookie 文件供后续会话使用。
- 需要排查浏览器任务失败的工程团队,可对指定会话开启 Playwright trace,并通过 trace zip 查看截图、DOM 快照、网络请求和控制台输出。
- 需要获得 YouTube 视频字幕的自动化流程,可向 /youtube/transcript 提交视频 URL,并在本机安装 yt-dlp 以走更快的提取路径。
如何安装或部署这个 Agent?
独立运行:
git clone https://github.com/jo-inc/camofox-browser && cd camofox-browser
npm install
npm start服务默认监听 http://localhost:9377;首次运行会下载约 300MB 的 Camoufox。也可直接运行:
npx @askjo/camofox-browserDocker 部署请使用项目提供的流程:
make up如需导入 Cookie,先生成并设置密钥:
export CAMOFOX_API_KEY="your-generated-key"
npm start如需更快的 YouTube 字幕提取,在本地额外安装:
pip install yt-dlp如何使用这个 Agent?
创建第一个标签页:
curl -X POST http://localhost:9377/tabs \
-H 'Content-Type: application/json' \
-d '{"userId":"agent1","sessionKey":"task1","url":"https://example.com"}'使用响应中的 TAB_ID 获取快照:
curl "http://localhost:9377/tabs/TAB_ID/snapshot?userId=agent1"按快照中的元素引用点击:
curl -X POST http://localhost:9377/tabs/TAB_ID/click \
-H 'Content-Type: application/json' \
-d '{"userId":"agent1","ref":"e1"}'若将服务暴露到非本地网络,可设置 CAMOFOX_ACCESS_KEY,并在请求中发送 Authorization: Bearer <key>。
这个 Agent 有哪些优点和局限?
- 以 Camoufox 为底层引擎;项目说明其指纹修改发生在 Firefox 的 C++ 实现层,而不是依赖 JavaScript shim 或 stealth wrapper。
- 无障碍快照配合稳定元素 ref,适合以 API 驱动的浏览器循环;快照还支持分页和可选截图。
- 会话以 BrowserContext 隔离,支持 Cookie 导入、持久化存储状态、每会话 Trace,以及按 sessionKey 分组标签页。
- 部署选择较完整:可从 npm 或源码启动,也提供 Docker、Railway、Fly.io 与 Windows PowerShell 流程。
- 代理配置可配合 Camoufox GeoIP,使 locale、timezone 和 geolocation 与代理出口匹配。
- 首次安装需要下载约 300MB 的 Camoufox;使用外部二进制时必须提供包含 properties.json、version.json 与 fontconfig 的 Camoufox bundle。
- Cookie 导入默认关闭,必须设置 CAMOFOX_API_KEY;若服务对外暴露,项目建议额外配置 CAMOFOX_ACCESS_KEY。
- YouTube 字幕的快速路径依赖额外安装 yt-dlp;未安装时会使用较慢且较不可靠的浏览器回退方案。
- 会话和标签页存在默认上限与超时,例如 MAX_SESSIONS 默认为 50、MAX_TABS_PER_SESSION 默认为 10、会话空闲 30 分钟后过期。
- 默认开启匿名化崩溃与卡顿遥测;不需要时必须显式设置 CAMOFOX_CRASH_REPORT_ENABLED=false。
这个 Agent 与同类方案有什么区别?
项目将自身定位为 Playwright/Puppeteer 的替代式浏览器服务:Playwright 或 headless Chrome 的常规使用可能被指纹识别,而该服务改用 Camoufox 的 Firefox 引擎,并通过 REST API、无障碍快照和元素 ref 暴露自动化能力。它不是 Playwright 的普通库内替换,而是需要调用其 HTTP 接口的独立服务器。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Camofox Browser 当前 | 52 · 缺口较多 | 自托管服务免费 | ★ 12k | 4 天前 | JavaScript | — |
| CamoFox Browser Server | 72 · 存在缺口 | 自托管服务免费 | ★ 436 | 12 天前 | JavaScript | Claude Code |
| Steel Browser | 29 · 缺口较多 | 自托管服务免费版 + 付费版 | ★ 7.9k | 2 天前 | TypeScript | — |
| Stagehand:AI 浏览器自动化框架 | 47 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 26k | 1 天前 | TypeScript | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:API密钥用于cookie导入,但其他端点未强制认证;cookie导入默认禁用,需显式设置密钥;数据流透明性较好,有日志和遥测说明;敏感数据处理有匿名化措施;依赖有安全审计(CI中npm audit);外部影响包括自动创建GitHub Issue,但可禁用;无回滚机制;来源归属有作者和仓库信息。扣分:权限最小化不足(API密钥仅保护部分端点),用户确认缺失(自动遥测默认开启),回滚缺失,来源归属仅基于自述。
证据显示:自述与package.json一致,功能描述与代码结构相符;依赖版本固定(camoufox-js 0.11.5),但未提供依赖可用性保证;失败消息有结构化错误码(如navigation_race)。扣分:依赖可用性未验证,失败消息覆盖不全。
证据显示:明确面向AI代理,提供多种部署方式(Docker、Fly.io、Railway);能力边界清晰(列出功能列表);触发精度高(API端点明确);环境适配好(支持多种平台)。扣分:无重大缺陷,但未提供详细场景示例。
证据显示:信息架构清晰(README有目录);安装说明详细(npm、Docker、源码);命名稳定(版本号明确);有示例和FAQ(README中有使用示例);已知限制提及较少;MIT许可证明确;版本号存在但无changelog;维护责任有作者信息但未明确。扣分:已知限制不足,无changelog,维护责任不明确。
证据显示:输出可用性高(提供API和插件);边际价值高(解决反检测需求);成本效益合理(轻量级)。扣分:无重大缺陷,但未提供性能基准。
证据显示:部分声明可追溯(如遥测端点可验证);跨来源佐证有限(仅自述);事实与推断分离不明确。扣分:缺乏独立验证,声明多为自述。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- API密钥仅保护cookie导入端点,其他端点可能未认证,存在未授权访问风险。
- 遥测默认开启,自动创建GitHub Issue,可能泄露匿名化后的站点信息,需确认隐私政策。
- 依赖camoufox-js和playwright-core,需关注其安全更新。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
camoufox-backup-428447379 Camoufox backup v158.0.1-beta.41
发布说明摘录
Backup of [v158.0.1-beta.41](https://github.com/daijro/camoufox/releases/tag/v158.0.1-beta.41) from daijro/camoufox. This is an availability backup. Verify the archive against SHA256SUMS before use. - Mirrored archives: 6 - Total source size: 7829454300 bytes在 GitHub 查看 ↗ -
camoufox-backup-404310733 Camoufox backup v156.0.1-beta.36
发布说明摘录
Backup of [v156.0.1-beta.36](https://github.com/daijro/camoufox/releases/tag/v156.0.1-beta.36) from daijro/camoufox. This is an availability backup. Verify the archive against SHA256SUMS before use. - Mirrored archives: 6 - Total source size: 7775522223 bytes在 GitHub 查看 ↗ -
v1.18.1 v1.18.1 — VNC compatibility and MCP startup fix
发布说明摘录
v1.18.1 A small patch for two broken paths: - Bundled MCP server starts again. The root npm package now includes the mcp/package.json that its camofox-browser-mcp command reads at startup. Fixes [#12323](https://github.com/jo-inc/camofox-browser/issues/12323). The standalone MCP package is also published at 1.18.1. …在 GitHub 查看 ↗