卡穆福克斯浏览器
一个为AI代理设计的无头浏览器自动化服务器. 电源 卡穆福克斯语Name - 一个基于Firefox的浏览器,有C++反检测,绕过包括Google Captcha在内的bot检测.
这是同样的浏览器引擎,可以驱动 问乔依网络刮取能力.
完美为: 打开ClawClaude Code,LangChain代理,AutoGPT,以及任何需要浏览网络的AI系统.
动机
AI代理需要浏览网络
- Playwright/ Puppeteer + 隐形插件 被Google,Cloudflare,以及大多数反机器人系统检测并封锁. JavaScript级别逃逸还不够.
- 无头色相 是小的指纹。 站点检查显示自动化的上百个浏览器特性.
- 基于API的刮纸机 (无眉目,斯克瑞平比)工作,但每个请求都要花钱并增加耐久.
- 原始 HTTP 请求 无法处理 JavaScript 递归的内容或复杂的相互作用.
Camoufox 解决了这个问题 C++ 级反检测 被烤入"Firefox"源代码本身——不是一个可以被检测到的插件,而是对浏览器如何报告其指纹进行根本性的修改. 这是商业反检测浏览器采用的相同方法.
这个项目将 Camoufox 包裹在一个简单的 REST API 中,优化为 AI 代理: 访问快照而不是被膨胀的 HTML , 稳定的元素 refs 用于可靠点击, 以及搜索普通站点的宏.
特征
- 反检测 - Camoufox 引擎(基于Firefox),带有 C++ 指纹吸附,绕过 Google captcha
- 元素参考文件 - 稳定
e1, (中文(简体) ),e2, (中文(简体) ),e3点击/打字参考文献 - 会话隔离 - 每个用户分开饼干/储存,按对话分组标签
- 搜索宏 - 13个内置URL宏(
@google_search, (中文(简体) ),@youtube_search页:1 - 脚本功能 - 无障碍快照而不是完整的HTML(小于90%)
- Docker 准备 - 生产多克文件,并预装了 Camoufox 二进制
快速启动
OpenClaw 插件
作为代理工具访问的 OpenClaw 插件安装 :
openclaw plugins install @askjo/camoufox-browser
然后启动服务器并配置:
# ~/.openclaw/openclaw.json
plugins:
entries:
camoufox-browser:
enabled: true
config:
url: "http://localhost:9377"
插件提供了这些代理工具 :
camoufox_create_tab- 创建浏览器标签camoufox_snapshot- 用元素校正获取页面快照camoufox_click- 通过参考点击元素camoufox_type- 分为要素camoufox_navigate- 导航到 URL 或使用搜索宏camoufox_scroll- 滚动页面camoufox_screenshot- 拍截图camoufox_close_tab- 关闭标签camoufox_list_tabs- 列出打开的标签
独立服务器
# Clone and install
git clone https://github.com/jo-inc/camoufox-browser
cd camoufox-browser
npm install
# Start server (downloads Camoufox browser on first run)
npm start # Default port 3000
./run-camoufox.sh -p 3001 # Custom port
# Server runs on http://localhost:3000
API 概览
创建标签
curl -X POST http://localhost:3000/tabs \
-H "Content-Type: application/json" \
-d '{"userId": "user1", "sessionKey": "conv1", "url": "https://example.com"}'
获取页面快照( 有元素参考)
curl "http://localhost:3000/tabs/TAB_ID/snapshot?userId=user1"
反应包括互动参考:
{
"snapshot": "[button e1] Submit [link e2] Learn more",
"refs": {
"e1": { "role": "button", "name": "Submit" },
"e2": { "role": "link", "name": "Learn more" }
},
"url": "https://example.com"
}
单击元素
curl -X POST http://localhost:3000/tabs/TAB_ID/click \
-H "Content-Type: application/json" \
-d '{"userId": "user1", "ref": "e1"}'
用 Macros 搜索
curl -X POST http://localhost:3000/tabs/TAB_ID/navigate \
-H "Content-Type: application/json" \
-d '{"userId": "user1", "macro": "@google_search", "query": "best coffee beans"}'
全部终点
| 方法 | 路径 | 说明 |
|---|---|---|
| 获取 | /health | 健康检查 |
| 获取 | /tabs?userId=X | 列出用户的所有标签组 |
| 邮政 | /tabs | 创建新标签 |
| 迪莱特 | /tabs/:tabId | 关闭标签 |
| 邮政 | /tabs/:tabId/navigate | 导航到 URL 或宏 |
| 获取 | /tabs/:tabId/snapshot | 获取可访问性快照与 refs |
| 邮政 | /tabs/:tabId/click | 通过校正或选择器单击元素 |
| 邮政 | /tabs/:tabId/type | 类型为元素 |
| 邮政 | /tabs/:tabId/scroll | 滚动页面 |
| 邮政 | /tabs/:tabId/back | 回来 |
| 邮政 | /tabs/:tabId/forward | 前进 |
| 邮政 | /tabs/:tabId/refresh | 刷新页面 |
| 获取 | /tabs/:tabId/links | 获取所有链接 |
| 获取 | /tabs/:tabId/screenshot | 获取截图 |
| 迪莱特 | /sessions/:userId | 关闭用户的全部标签 |
搜索宏
导航为共同网站支持这些宏:
@google_search- 谷歌(英语)@youtube_search- YouTube (英语)@amazon_search-亚马逊@reddit_search- 红色@wikipedia_search- 维基百科@twitter_search- 推特/网络 页:1@yelp_search- 耶尔普@spotify_search- 注意点@netflix_search- 网络信息@linkedin_search- 链接@instagram_search- Instagram (英语)@tiktok_search- 铁托克@twitch_search- 抖动
建筑
Browser Instance
└── User Session (BrowserContext) - isolated cookies/storage
├── Tab Group (sessionKey: "conv1") - conversation A
│ ├── Tab (google.com)
│ └── Tab (github.com)
└── Tab Group (sessionKey: "conv2") - conversation B
└── Tab (amazon.com)
- 用户共享一个浏览器实例
- 每个用户分别浏览器Context(同位素饼干/存储)
- 标签组
sessionKey(谈判/任务) - 自动清理30分钟的课间休息
本地运行
# Start with default port (3000)
./run-camoufox.sh
# Or: npm start
# Start with custom port
./run-camoufox.sh -p 3001
第一跑下载 Camoufox 浏览器(~300MB).
实验
见 experimental/ 用于替代浏览器引擎.
Docker 部署
# Build with Camoufox (recommended)
docker build -f Dockerfile.camoufox -t camoufox-browser .
# Run
docker run -p 3000:3000 camoufox-browser
Fly.io 部署
fly launch --no-deploy
fly deploy
测试
npm test # Run all e2e tests
npm run test:live # Run live Google tests (may hit captcha)
npm run test:debug # Show server output for debugging
环境变量
| 变量 | 说明 | 默认 |
|---|---|---|
PORT | 服务器端口 | 3000个 |
NODE_ENV | 环境 | 发展 |
捐款
欢迎捐款! 请打开一个问题或提交公关.
贷项
- 卡穆福克斯语Name - 基于Firefox的有 C++ 反检测的浏览器
- 倾角 - AI编码代理
许可证
麻省理工学院