Camoufox CLI
为 AI 智能体提供抗检测浏览器自动化与持久化浏览器身份。
按维度查看评分与理由
证据清楚说明浏览器守护进程、Unix socket、会话、标签页、Cookie 导入导出、持久化身份、代理和本地文件流向,并注明 Camoufox 上游与作者。扣分原因是工具可直接导航、点击、填写、执行任意页面 JavaScript、读写 Cookie、保存截图并通过代理访问网络,却没有操作确认、域名限制或权限分级;代理凭据可明文出现在命令行和配置中,也未说明配置、Cookie、配置文件或 socket 的权限与脱敏措施。依赖仅部分固定版本,Pillow 和开发依赖没有严格锁定,浏览器下载还会退回到抓取发布页面,未见校验和、签名、审计或漏洞处置策略。关闭会话和删除身份目录提供有限恢复路径,但远端网页操作通常不可回滚。未发现恶意软件、凭据窃取、隐蔽外传或其他明确红线。
README、项目元数据和测试对主要命令、配置优先级、会话隔离、标签页状态及错误路径大体一致;并发恢复和最后标签关闭竞态有针对性测试。扣分是静态材料没有展示实现代码、测试运行结果或端到端覆盖,README 命令清单还漏掉测试中的 pdf 命令。安装要求、精确耦合依赖和 GitHub 限流回退已有说明,但浏览器发布资源、系统依赖和双 npm/pip 分发链仍可能失效。缺参、未知动作、未启动浏览器和损坏配置均有明确错误或警告证据,不过并非所有失败分支都验证了具体、可行动的消息。
面向 AI 代理和开发者的使用对象、浏览、抽取、并行标签、多身份及多账号场景描述充分,因此受众与场景获满分。命令、参数、配置覆盖层级、持久与临时状态边界较清晰;但没有站点政策、允许用途、危险动作或反检测使用边界。CLI 触发语法精确且参数验证有测试,但实际 Agent Skill 内容未提供,无法充分评估自然语言触发条件与误触发抑制。npm、pipx、Linux 系统依赖、Node/Python 最低版本和配置路径均有说明,仍缺少 macOS/Windows、容器、权限以及各分发实现一致性的完整适配说明。
README 信息架构清楚,安装、快速开始、命令分类、配置、持久身份和架构说明完整,安装说明因此获满分。命名总体稳定且测试覆盖许多命令,但 README 未记录 pdf,Node 与 Python 分发版本同步机制也未展示。示例丰富,却没有独立 FAQ 或系统化故障排查。已提及 GitHub 限流、共享浏览器排队、标签名不强制唯一和 Alpha 状态,但没有集中列出反检测局限、兼容风险或法律与站点条款注意事项。MIT 许可证在 README、元数据和完整 LICENSE 中一致,获满分。仅见 0.7.3 版本和 Alpha 分类,未见变更日志或升级策略;作者及问题追踪入口可识别,但发布者未经登记验证,且没有维护政策、支持承诺或安全报告渠道,所以维护责任仅部分明确。
无障碍树、稳定引用、JSON 选项、文本、截图、PDF、Cookie 与标签/会话输出面向 shell 和代理消费,静态设计具有很高可用性,故输出可用性获满分。相对普通浏览器 CLI,指纹持久化、Camoufox 集成和并行隔离具有明确增量价值;但核心的“无 Playwright 可检测泄漏”和反检测效果只有陈述,没有静态对照、检测结果或实现证据,故边际价值未满分。安装流程简短、长驻进程和共享浏览器可降低重复成本,但需要下载浏览器、安装系统依赖、管理代理和持久配置,并承担反检测自动化的运营与合规成本,成本收益仅属充分而非全面。
命令行为、默认值、配置优先级、错误处理和并发语义可由 README、元数据及多组测试相互追踪,因而具备较好的静态可验证性。扣分是关键指纹伪装、GeoIP、持久身份实现及“没有可检测的 Playwright 泄漏”等主张缺少对应实现文件、专门测试或外部结果。多个来源对版本、许可证、命令和配置形成部分交叉印证,但材料主要来自同一仓库,且没有测试输出或独立佐证。文档没有明确区分已测试事实、设计意图和营销性效果主张,因此事实与推断分离较弱。
- 代理 URL 可包含用户名和密码;不要把它直接放入可被进程列表、Shell 历史、日志或代理转录捕获的命令行,除非已评估暴露风险。
- Cookie、持久化浏览器目录和截图可能包含登录态、个人数据或机密页面内容;源码材料未说明加密、权限加固、脱敏或安全删除。
- click、fill、press、eval 和 Cookie 导入可产生真实外部影响,工具未展示提交前确认、域名白名单或事务回滚机制。
- “反检测”及“无 Playwright 泄漏”是未被所给实现或测试证明的主张,不应视为规避检测的保证。
- 浏览器下载会依赖 GitHub 发布资源并可能回退到页面抓取;在受控环境中应另行固定制品并验证来源与完整性。
- 多标签共享指纹、Cookie 和登录态;名称唯一性不受强制,代理并发使用时可能造成身份串用或状态干扰。
- 使用指纹伪装、多账号隔离或自动化交互前,应单独核对目标网站条款、授权范围和适用法律。
这个 Agent 能做什么,适合哪些场景?
Camoufox CLI 是一套面向可执行 Shell 命令的 AI 智能体和人工用户的浏览器自动化 CLI 与技能。它通过长期运行的 Python 守护进程控制基于 Firefox 的 Camoufox,并由 Playwright连接浏览器;CLI 与守护进程之间使用 Unix socket 和 JSON 命令通信。工具可导航网页、操作元素、读取文本、执行 JavaScript、导入导出 Cookie,并生成无障碍树快照或截图。Camoufox 在 C++ 层处理 canvas、WebGL、音频、屏幕指标和字体等指纹信息,避免依赖普通 Playwright 注入式伪装。部署边界是用户自己的命令行环境和本地浏览器进程;会话、配置、持久身份、Cookie 与截图可写入本地文件系统。它适合需要抗检测能力和稳定身份的自动化,但仍依赖网络、Camoufox、Playwright 以及本地运行时。
用户或智能体运行 camoufox-cli 命令后,CLI 通过 Unix socket 向 Python daemon 发送 JSON 命令;daemon 自动启动并通过 Playwright 管理 Camoufox 浏览器,同时在命令之间维护元素 ref 注册表。open、back、forward、reload、url 和 title 负责导航与读取页面状态;snapshot 输出带 @ref 的无障碍树,随后可用 click、fill、type、select、check、hover 和 press 操作元素。text、eval 与 screenshot 分别产生页面文本、JavaScript 执行结果和截图;cookies import、cookies export、tabs、switch 与 sessions 管理浏览状态和隔离。命名标签页共享同一浏览器的指纹、Cookie 与登录状态,但保留独立页面、ref 和历史;命名会话则运行独立进程并获得独立随机指纹和 Cookie。启用 --persistent 后,工具会在配置档案旁写入 camoufox-cli.json,保存指纹、操作系统、噪声种子、语言环境以及相关地理信息。
- 使用 Codex 或 Claude Code 的自动化工程师,需要通过 Shell 浏览网站并用稳定的
@ref定位交互元素。 - 执行网页采集的团队,希望使用 Camoufox 的 canvas、WebGL、音频、字体和屏幕指标伪装来降低常规浏览器自动化特征。
- 运营多个网站账号的团队,需要用独立 session、持久身份和每会话代理隔离 Cookie、指纹及浏览器进程。
- 并发执行多个页面任务的智能体,需要在共享登录状态的同一浏览器中使用独立命名 tab。
- 需要在自动化任务之间保留登录状态的用户,可通过持久档案以及 Cookie 导入、导出复用浏览器状态。
- 偏好命令行工作流的测试或运维人员,需要抓取页面文本、执行 JavaScript、等待元素或 URL,并保存页面截图。
这个 Agent 有哪些优点和局限?
- 指纹伪装由 Camoufox 在 C++ 层实现,覆盖 canvas、WebGL、音频、屏幕指标和字体,而不是仅依赖页面级注入。
- 无障碍树快照生成可复用的
@ref,让智能体通过短 Shell 命令完成定位和交互,无需生成浏览器控制代码。 - 同时提供两种并发模型:共享身份与登录状态的命名 tab,以及拥有独立进程、指纹和 Cookie 的命名 session。
--persistent会冻结指纹、操作系统及噪声种子,并保留 Cookie,使同一路径在后续启动时表现为同一设备。- 支持 npm 与 pipx 两条安装路径,并明确支持 Codex、Claude Code、Cursor、OpenClaw 以及其他能运行 Shell 命令的智能体。
- 运行链路依赖 Python daemon、Playwright 和 Camoufox 浏览器;npm 安装还要求 Node.js 20.10+,Linux 可能需要额外系统依赖。
- 浏览器二进制需要从 GitHub Releases 下载;共享服务器或 CI 的匿名 GitHub API 限额可能耗尽,虽有网页抓取回退路径,安装仍依赖 GitHub 可达。
- 同一 session 内的命名 tab 共享一个浏览器进程,慢命令可能让其他 tab 排队;真正的并行隔离需要额外 session 和进程。
- 持久身份并不会保存代理设置,
--proxy和--no-geoip必须按需在每次启动时传入,否则可能不符合预期的网络身份配置。 - 每个智能体必须自行保证 tab 名称唯一,工具不会强制检测或避免命名冲突。
- 修改配置文件不会立即影响已经运行的 session,必须先关闭该 session,让 daemon 在下次启动时重新读取配置。
如何安装或部署这个 Agent?
npm 方式要求 Node.js 20.10+:
npm install -g camoufox-cli
camoufox-cli install也可以使用 Python 的 pipx:
pipx install camoufox-cli
camoufox-cli installLinux 可让安装器同时安装系统依赖:
camoufox-cli install --with-deps如需安装面向 Claude Code、Cursor、Codex 等工具的技能,可运行:
npx skills add Bin-Huang/camoufox-cli浏览器从 GitHub Releases 下载,因此首次安装需要网络访问。基础浏览不要求凭据;访问受保护网站或使用带认证的代理时,需要相应网站登录信息或代理凭据。
如何使用这个 Agent?
首个可运行流程:
camoufox-cli open https://example.com
camoufox-cli snapshot -i
camoufox-cli click @e1
camoufox-cli close其中 snapshot -i 仅输出可交互元素;后续命令使用输出中的实际 ref,例如 @e1。需要持久身份时,可运行:
camoufox-cli --persistent ~/.camoufox-cli/profiles/alice open https://example.com需要隔离身份时,为不同进程使用命名会话;代理必须在每次启动时重新指定:
camoufox-cli --session a --persistent ~/.camoufox-cli/profiles/alice --proxy http://user:pass@host:port open https://example.com可将默认参数写入 ~/.camoufox-cli/config.json,也可用 $CAMOUFOX_CLI_CONFIG 指定其他配置路径。配置在对应 session 的 daemon 首次启动时读取;修改后应先关闭已运行的该 session。
常见问题
使用它需要付费服务或 API 密钥吗?
普通 tab 与 session 有什么区别?
持久身份会保存哪些内容?
--no-geoip 属于每次启动参数,不会被持久保存。配置修改后为什么没有生效?
camoufox-cli --session <name> close,再重新启动。损坏的配置会被忽略,并在标准错误输出警告。