Johell1NS/browser-search
Johell1NS/browser-search has 544 GitHub stars and 42 forks. GitHot measured +1 stars in 24 hours and +5 in 7 days. Last checked 2026-11-09 21:58 UTC. Last push 2026-10-22.
A skill for AI agents: search the web with SearXNG, browse with Camofox, bypass protections with CloakBrowser. Anti-hallucination by design. Self-hosted, free, unlimited.
实测星标增长
- 24小时
- +1
- 7天
- +5
- 15天
- 正在收集历史
- 1个月
- 正在收集历史
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
i18n/README.zh-CN.md
原文browser-search
面向AI代理的技能。 适用于OpenCode、Claude Code、Cursor、OpenClaw等。使用SearXNG搜索网页,使用Camofox浏览网页,使用CloakBrowser绕过防护。抗幻觉设计。 全部自托管、免费、无限制。
为什么存在
如今,一个试图浏览网页的AI代理就像一个戴着面罩的小偷潜入警察学院。网站的防护系统会拦截它、挑战它、拒绝它。
👮 browser-search扭转了局面:你的代理不再是那个小偷,而是变成了警察局长。不再有笨拙的访问尝试。它之所以能走进每一扇门,是因为它拥有正确的工具。SearXNG负责搜索,Camofox负责浏览,当网站强硬对抗时,CloakBrowser出马。
该技能强制使用确定性脚本,彻底消除模型幻觉,即使是最便宜的模型也不例外。三个工具用自然语言描述,但执行是刚性的:模型既不会用错命令,也不会误解输出。结果是每次查询都能保证成功——技能和确定性脚本引导模型搜遍网络,直到找到答案。
- SearXNG — 搜索阶段的元搜索引擎(多源,JSON)
- Camofox — 可通过REST API导航的浏览器,适用于标准网站
- CloakBrowser — 用于受反机器人保护网站的隐形浏览器
典型流程:代理首先使用SearXNG搜索,然后使用Camofox(如果网站受保护则使用CloakBrowser)浏览结果。
优势
100%免费、自托管、无限制。 无需购买API密钥,无需订阅,无速率限制。一切在你的机器上运行,Docker和npm。无限使用,零成本。
轻量级,随处运行。 在树莓派上构建和测试——如果能在那里运行,就能在任何地方运行。资源消耗极低,无需重型基础设施,可在低功耗硬件上全天候运行。
搜索+浏览一体化。 无需手动集成。搜索和浏览是两个不同的阶段,两者都已覆盖。
自动导航升级。 如果Camofox被Cloudflare/Akamai拦截,代理会自动切换到CloakBrowser。
智能性能。 搜索阶段使用SearXNG(毫秒级)。Camofox和CloakBrowser仅用于浏览实际需要它们的网站。
自动代理选择。 AI代理决定使用哪个工具:SearXNG用于初始搜索,Camofox用于浏览,CloakBrowser用于受保护的网站。无需人工干预。
抗幻觉设计。 该技能的深度研究模式强制执行"先搜索,后回答"的工作流程:代理必须根据实时网络来源验证每个事实主张,交叉引用多个来源,绝不猜测。不再有编造的答案。
完全可定制。 SKILL.md是纯文本。你可以编辑核心规则,添加自己的规则,删除不需要的内容。根据你的工作流程、你的团队、你的标准进行调整。
原生隐形。 CloakBrowser自动检测Cloudflare、Akamai、DataDome、Imperva、PerimeterX和DDoS-Guard挑战,并在提取内容前等待它们解决。
适用于任何代理。 SKILL.md是为OpenCode编写的,但其逻辑适用于任何AI代理。相同的README,相同的package.json,一切随处可用。只需询问你的代理如何根据其环境转换该技能。
为什么与众不同
大多数面向 AI 代理的网页工具都在墙前止步:当网站抛出 Cloudflare 或 Akamai 验证挑战时,它们只返回一个错误,代理便放弃了。browser-search 生来就是为了穿过这堵墙。
- 一个技能完成 搜索 → 浏览 → 绕过。 无需手动集成,无需按次计费,无需购买 API 密钥。
- 三级升级机制。 SearXNG 用于毫秒级搜索,Camofox 处理约 90% 的常规网站,CloakBrowser 在网站设下难关时出手 — 全自动,无需人工干预。
- 经过验证的反机器人能力。 CloakBrowser 应用了 58 个 C++ 源码级补丁,reCAPTCHA v3 得分 0.9(人类水平,服务器验证),可突破 Cloudflare、Turnstile、DataDome、Akamai、Imperva、PerimeterX 和 DDoS-Guard — 而其他工具只会返回
blocked_by_challenge。 - 免费、私密、自托管。 SearXNG、Camofox 和 CloakBrowser 都在你的机器上运行。零成本、无限制、不计费。
在别人止步的地方,browser-search 继续前行。
🏆 技术前沿
选择这三个工具是因为它们代表了当前市场的最高水平。这样的技能设计就是为了不断进化:当更好的工具出现时,只需更新 SKILL.md 中的几行代码即可完成替换。🔄
⭐ 给仓库加星并关注,随时了解新工具、流程改进和编排更新的最新动态。🚀
架构
┌─────────────────────────────────────────────────────────┐
│ browser-search │
│ │
│ ┌──────────────┐ │
│ │ 搜索 │ │
│ │ │ │
│ │ SearXNG │ 搜索引擎 → URL │
│ │ (Docker) │ JSON结果, 快速 │
│ │ :8080 │ │
│ └──────────────┘ │
│ │ │
│ │ 结果就绪 → 开始浏览 │
│ ↓ │
│ ┌─────────────────────────────────────┐ │
│ │ 浏览 │ │
│ │ │ │
│ │ ┌──────────────┐ │ │
│ │ │ Camofox │ 浏览器 + REST │ │
│ │ │ (Docker) │ JS, 点击, 评估 │ │
│ │ │ :9377 │ │ │
│ │ └──────┬───────┘ │ │
│ │ │ │ │
│ │ │ 如果被拦截 │ │
│ │ ↓ │ │
│ │ ┌──────────────┐ │ │
│ │ │ CloakBrowser │ 隐形Chromium │ │
│ │ │ (npm) │ 反机器人, 代理 │ │
│ │ └──────────────┘ │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
工作原理
第一阶段 — 使用SearXNG搜索
Docker容器运行在localhost:8080。元搜索引擎,同时查询Google、Wikipedia、Bing、DuckDuckGo等多个引擎。JSON输出包含标题、摘要和URL。
示例:
node scripts/searxng/searxng.mjs search "largest llm benchmark 2026"
代理现在有了要访问的URL列表,并根据网站自主决定使用Camofox还是CloakBrowser进行浏览。
第二阶段 — 使用Camofox浏览
Docker容器运行在localhost:9377。通过REST API暴露完整的Firefox浏览器。代理可以创建标签页、导航、点击、滚动、执行任意JavaScript和结构化数据。
包含: Mozilla的Readability.js,用于提取干净的文章,去除导航栏、侧边栏和广告(节省约70%的token)。
主要命令:
# Single-URL extraction (Readability.js, auto-fallback to snapshot)
node scripts/camofox/camofox.mjs readability "https://example.com"
# JavaScript evaluation
node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title"
# Accessibility snapshot
node scripts/camofox/camofox.mjs snapshot "https://example.com"
第三阶段 — 使用CloakBrowser浏览(当Camofox不够时)
基于Playwright + cloakbrowser的npm包。启动具有高级指纹识别的Chromium浏览器,以绕过Cloudflare、Akamai、DataDome和其他反机器人系统。自动检测挑战并带等待和重试。
可用脚本:
cloak-fetch.mjs— 通用获取,带挑战检测cloak-script.mjs— 自定义Playwright脚本执行
示例:
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com"
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" --proxy socks5://... --geoip
# Markdown output (requires: pip install markitdown)
node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown
版本说明: browser-search 固定使用 CloakBrowser
^0.6.3和 Playwright Core1.64.1。CloakBrowser 0.6 需要 Node.js 20.19+ 或 22.12+。本 skill 使用 CloakBrowser 的免费二进制文件(Chromium 146; macOS 上为 145),无需许可证密钥;封装层的更新(Linux arm64 支持、更安全的二进制下载、每个持久化配置文件的稳定指纹、更可靠的拟人化操作)同样适用。免费密钥(通过cloakbrowser login使用 GitHub 登录)可解锁最新的二进制文件,但仅限一个并发会话;本 skill 既不使用也不要求它。
为什么同时使用Camofox和CloakBrowser?
因为速度和隐身是一种权衡,正确的工具取决于网站。
Camofox — 快速、结构化、持久化。 Camofox将Camoufox(一个C++级别的Firefox分支)封装在一个REST API中,带有始终温热的浏览器。在约1-3秒的冷启动后,每个请求几乎是即时的。其无障碍快照比原始HTML小约90%,具有稳定的元素引用(e1, e2, ...),可实现可靠的交互。它处理约90%不使用高级反机器人保护的网站:文章、文档、搜索引擎、标准网页。
CloakBrowser — 隐身、反机器人、按需使用。 CloakBrowser每次请求启动一个新的Chromium实例(每次启动约1-3秒)。它使用高级指纹识别、代理支持、地理位置和自动挑战检测,以绕过Cloudflare、Akamai、DataDome、Imperva、PerimeterX和DDoS-Guard。它是针对约10%拦截Camofox的网站的最后手段。
实际数据:
| 工具 | Cloudflare标准 | Cloudflare Turnstile | DataDome |
|---|---|---|---|
| Camoufox(Camofox引擎) | 高达 ~92% [¹] | ~65-78% [¹] | 60-75% [¹] |
| Playwright Stealth | ~70-80% [¹] | ~40-55% [¹] | ~30-50% [¹] |
- CloakBrowser 应用了58个C++源码级补丁,得分0.9 reCAPTCHA v3(人类级别,服务器验证),通过了包括Cloudflare Turnstile和FingerprintJS在内的所有主要反机器人测试 [²]
- Camofox 冷启动:约1-3秒(一次性,然后通过温热REST API每次请求约0毫秒)[³]
- Playwright/Chromium 冷启动:约0.5-6秒(每次启动,因环境而异)[⁴]
Camofox处理快速路径。CloakBrowser处理边缘情况。两者结合覆盖整个网络,不留空白。代理决定使用哪个。
来源
¹ "Camoufox Vs Playwright Stealth: Complete Comparison & Alternatives (2026)" — blog.send.win ² CloakBrowser README — github.com/cloakhq/cloakbrowser ³ camoufox-pi README (cold start comparison) — github.com/MonsieurBarti/camoufox-pi ⁴ Playwright issue #4345 (launch time variability) — github.com/microsoft/playwright/issues/4345
安装
步骤 1 — 安装技能
通过一条命令将技能定义安装到你的AI代理中:
npx skills add Johell1NS/browser-search
Required after
npx skills add: CloakBrowser is an npm dependency (cloakbrowser+playwright-core). Theskillsinstaller does not runnpm installautomatically. You must run it manually inside the skill directory:# Find your skill directory (OpenCode example): # ~/.config/opencode/skills/browser-search # or .agents/skills/browser-search (project-local) cd ~/.config/opencode/skills/browser-search npm install node -e "import('cloakbrowser').then(c=>c.ensureBinary())" # Verify: bash scripts/check.shWithout this, SearXNG and Camofox (Docker) work, but
smart-extract-> CloakBrowser (--fallback/full-auto) will fail withERR_MODULE_NOT_FOUND: Cannot find package 'cloakbrowser'.
适用于70多种AI代理,包括OpenCode、Claude Code、Cursor、GitHub Copilot等。
步骤 2 — 设置基础设施
git clone https://github.com/Johell1NS/browser-search
cd browser-search
npm install
node -e "import('cloakbrowser').then(c=>c.ensureBinary())"
CloakBrowser 通过 npm 安装。SearXNG 和 Camofox 需要独立的 Docker 容器 — 在使用技能前请确保它们正在运行。
将此README展示给你的AI代理,它将根据你的环境和平台进行完整安装。
browser-search 不提供特定平台的 docker-compose 文件或安装脚本。你的 AI 代理会读取以下参考信息,并根据你的操作系统、架构和环境自动调整设置。
服务概览:
| 服务 | 方式 | 参考 |
|---|---|---|
| SearXNG | Docker, :8080 |
docs.searxng.org |
| Camofox | Docker, :9377 |
github.com/jo-inc/camofox-browser |
| CloakBrowser | npm (requires npm install in skill dir + ensureBinary) |
scripts/cloak/cloak-fetch.mjs |
SearXNG 配置(必需)
SearXNG 默认安装会关闭 JSON 输出,而该技能需要它:否则脚本会以 HTTP 403 失败。请在 SearXNG 的 settings.yml(官方 Docker 部署中的 core-config 文件夹)中使用:
use_default_settings: true
server:
secret_key: "<random>" # or set SEARXNG_SECRET
limiter: false # local instance: the limiter would block the script's JSON requests
search:
formats: [html, json]
use_default_settings: true会让引擎和默认值在每次更新时与上游保持一致。如需额外启用引擎,请添加类似engines:→- name: bing并设置disabled: false的条目。- 保持仅本地访问:将 SearXNG 绑定到
127.0.0.1(在.env中设置SEARXNG_HOST=127.0.0.1)。 - 该技能不需要 Valkey/Redis(SearXNG 仅将其用于限流器,而限流器保持关闭)。
- 如果 SearXNG 不在
http://127.0.0.1:8080,请设置SEARXNG_URL。
供AI代理参考——阅读以下文件:
| 文件 | 内容 |
|---|---|
SKILL.md |
完整技能:命令、升级、故障排除 |
scripts/cloak/cloak-fetch.mjs |
CloakBrowser CLI用法及所有选项 |
scripts/setup.sh |
系统依赖 |
scripts/check.sh |
安装后验证 |
docker/setup.md |
Docker设置技巧 |
注意: SKILL.md是使用OpenCode语法(exec, node scripts)编写的。如果你的代理使用不同的格式(Claude Code、Cursor等),请阅读它并在使用该技能前将命令转换为你的代理语法。
环境变量
| 变量 | 适用于 | 默认值 |
|---|---|---|
CAMOFOX_API_KEY |
Camofox中的评估、会话、清理 | — |
CAMOFOX_ADMIN_KEY |
Camofox停止端点 | — |
此技能不做什么
- 社交媒体。 Instagram、Facebook、TikTok、LinkedIn和Twitter/X需要登录。
browser-search不会尝试浏览它们。 - 下载文件。 它是只读的(明确的截图除外)。
- 绕过付费墙。 不规避支付或登录系统。
安全
browser-search 包含多层安全加固:
内置保护
- SSRF 防护。 URL 在导航前经过验证 — 内部 IP(
127.x、10.x、192.168.x、169.254.x)、云元数据端点和.internal/.localTLD 均被阻止。DNS 解析也会被检查以防止 DNS 重绑定攻击。 - 脚本沙箱。 自定义脚本(
cloak-script.mjs)在限制 Playwright API 接口的沙箱中运行(仅允许访问page、browser、context上的白名单方法)。注意:Node.js API 仍然可用 — 完全隔离需要vm.Context。使用--unsafe绕过沙箱和 SSRF 保护。 - 路径遍历保护。
--script路径必须在技能目录内。绝对路径和../遍历被阻止。 - 速率限制。 默认每分钟30次请求 — 防止意外 DoS 或触发反机器人机制(使用
--no-rate-limit禁用)。 - 安全的文件名。 截图使用随机 UUID 而不是可预测的时间戳。
- 堆栈跟踪抑制。 错误输出默认省略堆栈跟踪。使用
--verbose进行调试。
最佳实践
- API 密钥。 使用环境变量(
$CAMOFOX_API_KEY)或 Docker 的--env-file。切勿在命令行中粘贴密钥 — 它们会出现在ps aux和 shell 历史记录中。 - Docker 绑定。 端口映射时始终使用
127.0.0.1:前缀(-p 127.0.0.1:9377:9377)。切勿暴露在0.0.0.0。 - URL编码。 确定性脚本在内部处理编码。无需手动转义。
- 版本锁定。 依赖项使用精确版本(无
^范围)和package-lock.json以实现可重现的构建。
审计
运行 bash scripts/audit.sh 验证安装的安全状况。
残余风险
- 提示注入。 AI 代理可能被诱骗执行有害操作。工具可以减轻损害,但无法防止完全被攻陷的代理。
- 供应链。 CloakBrowser 从
cloakbrowser.dev下载 Chromium 二进制文件。该二进制文件经过 SHA-256 验证但为专有软件。 - 浏览器自动化。 任何可以访问浏览器的工具都存在固有风险。尽可能在隔离环境中运行。
参与其中
browser-search是开源且免费的。如果你觉得它有用:
- ⭐ 给仓库加星 — 帮助他人发现它
- 🐛 提交Issue — 报告错误或建议功能
- 🔀 提交PR — 修复、改进、扩展
- 💬 分享它 — 与你的团队,在Reddit、Twitter、Discord上
- 🧠 改编它 — Fork它,调整SKILL.md,让它成为你的
每一份贡献,无论多小,都会让它变得更好。
FAQ
常见问题请参阅 FAQ.md,涵盖安装、架构、设计决策和常见问题。
许可证
MIT
探索相关项目
affaan-m/ECC
智能体执行与控制框架的性能优化系统。面向 Claude Code、Codex、Opencode、Cursor 等,涵盖技能、本能、记忆、安全与研究优先的开发。
300,313 星标NousResearch/hermes-agent
与你一同成长的智能体
262,134 星标multica-ai/andrej-karpathy-skills
一个用于改进 Claude Code 行为的 CLAUDE.md 文件,源自 Andrej Karpathy 对 LLM 编程陷阱的观察。
231,460 星标firecrawl/firecrawl
借助来自网络及其他来源的数据,强化你的 AI 智能体。正在构建面向超级智能的资料库。🔥
200,178 星标