insane-search 是什么?

insane-search 是给 Claude Code 使用的公开网页读取插件。它按公开 API、Feed、轻量请求、TLS 客户端和浏览器的顺序尝试取回正文,并把结果交给代理处理;它会在登录墙或付费墙前停止,不是通用搜索引擎,也不是绕过访问控制的工具。

⭐ 1,808 Stars 🍴 233 Forks Python MIT 作者: fivetaku
来源:github.com/fivetaku/insane-search 查看 GitHub 仓库 → 📘 使用教程 →

为什么值得关注

从平台公开端点、Feed 和 URL 变体开始,失败后才升级到 TLS 客户端或本机浏览器,并在 trace 中保留尝试路径。v0.16.3 的 --json-content 会在一次抓取中返回元数据、trace 和带不可信边界的正文,旧 --json 继续不带正文。

来源:github.com/fivetaku/insane-search

核心功能

分阶段读取公开内容

从平台公开端点、Feed 和 URL 变体开始,失败后才升级到 TLS 客户端或本机浏览器,并在 trace 中保留尝试路径。

来源:github.com/fivetaku/insane-search
正文与诊断一次返回

v0.16.3 的 --json-content 会在一次抓取中返回元数据、trace 和带不可信边界的正文,旧 --json 继续不带正文。

来源:github.com/fivetaku/insane-search/blob/main/CHANGELOG.md
提示注入边界

CLI 用 untrusted_public_web 边界包装网页内容;Python 调用面向代理时应使用 to_untrusted_text(),不能把 raw content 当作指令。

来源:github.com/fivetaku/insane-search/blob/main/skills/insane-search/SKIL…
媒体与结构化内容读取

对部分平台调用公开端点或 yt-dlp,同时从 OGP、JSON-LD、PDF 或浏览器渲染结果中提取可用文本。

来源:github.com/fivetaku/insane-search/blob/main/PLATFORMS.md

技术架构

Phase 0 处理已知平台的公开端点和媒体路径;后续由 WAF detector 与 profile 选择普通请求、URL 变体、curl_cffi TLS 指纹和本机 Chrome。validator 判断响应是否为正文、挑战页、认证墙或错误页,extraction 层再做 Markdown、主内容、PDF 或结构化数据处理,结果通过安全边界返回。

来源:github.com/fivetaku/insane-search/blob/main/skills/insane-search/engi…

项目知识图谱

知识图谱:项目核心节点(中心)+ 核心功能(内环六边形)+ 关键技术依赖(外环 chip) 分阶段读取公开内容 正文与诊断一次返回 提示注入边界 媒体与结构化内容读取 insane-search 项目本体 核心功能 关键依赖

技术栈

信息不足,待补充 来源:github.com/fivetaku/insane-search/blob/main/.claude-plugin/plugin.json

快速上手

在 Claude Code 中添加官方 marketplace 仓库,安装 insane-search@gptaku-plugins 并重载插件。首次只测试自己控制的静态公开页,要求返回 source_url、trace 和 untrusted_text;不要先拿登录站点、个人账号页面或高频批量任务试。若触发浏览器回退,先审查 ~/.insane-search/node 的依赖安装和系统 Chrome 启动,再决定是否允许继续。
来源:github.com/fivetaku/insane-search

使用场景

适合代理读取普通请求拿不到的公开文章、公开 Feed、平台公开端点、视频字幕和 PDF,并保留失败路线用于诊断。它不适合登录后内容、付费内容、违反 robots.txt 或站点条款的批量采集,也不应被用来执行网页中出现的命令。

来源:github.com/fivetaku/insane-search

优势与局限

优势

  • 优先使用轻量公开路线,只有失败时才升级浏览器
  • v0.16.3 可在一次调用中同时返回正文和诊断 trace
  • 明确识别登录墙与付费墙并终止
  • 为代理输入提供 untrusted_public_web 包装和 URL 凭据遮蔽

局限

  • 首次运行可能自动安装 Python 与 Node 依赖,并启动本机系统 Chrome
  • 公开可访问不等于允许自动采集,仍受条款、robots.txt、限速和法律约束
  • TLS 模拟与浏览器行为可能触发站点防护,成功率会随站点变化
  • Python API 的 raw result.content 没有自动边界,调用方必须使用 to_untrusted_text()
  • 可选 xAI 搜索需要现有凭据;没有凭据时应保持 free-only 路线
来源:github.com/fivetaku/insane-search

最新版本

v0.16.3 于 2026-09-08 发布。它新增 --json-content 单次返回正文与 trace,继续让 --json 不含正文;PDF 解析器改为需要时才加载,并补了 URL 凭据遮蔽、单次抓取和 PDF 回退测试。

来源:github.com/fivetaku/insane-search/releases/tag/v0.16.3

实测与证据

status: official_source_not_installed  |  checked_at: 2026-09-23  |  environment: 未在 Claude Code 安装插件,未访问第三方站点  |  limitations: 未验证任一站点的实时成功率、CAPTCHA 表现、浏览器指纹、依赖安装、资源占用、隐私影响或不同地区的法律与站点政策  |  observed_output: v0.16.3 标签与 manifest 一致;源码文档确认登录与付费墙终止、浏览器依赖装入用户目录、代理输入需不可信内容边界

来源:github.com/fivetaku/insane-search/releases/tag/v0.16.3

同类项目对比

相比 Playwright,insane-search 先尝试公开 API、Feed 和轻量请求,再把浏览器当后备,并为代理输出增加 trace 与不可信内容边界;Playwright 是跨 Chromium、Firefox、WebKit 的浏览器自动化和测试框架,页面控制与断言能力更完整。目标是读取公开正文时可评估 insane-search,需要稳定的交互测试、定位器和多浏览器覆盖时应选 Playwright。

来源:github.com/fivetaku/insane-search (1) · github.com/microsoft/playwright (2)

总结评价

使用前要接受三个条件:只处理获准的公开内容、审查自动安装与浏览器权限、始终把网页正文当作不可信输入。

来源:github.com/fivetaku/insane-search

常见问题

insane-search 能读取登录后页面或付费文章吗?

不能。官方边界明确要求在登录墙和付费墙前停止,并返回 authentication required。公开页面读取也要遵守站点条款、robots.txt、限速和适用法律。

安装插件后为什么用户目录里又出现 Node 依赖?

v0.16.0 起,第一次进入浏览器回退时会把依赖安装到 ~/.insane-search/node,并使用系统 Chrome。安装会改动用户目录并执行第三方包,应先审查 package.json 和锁定版本。

网页正文可以直接交给代理执行吗?

不可以。网页是外部不可信数据,可能包含提示注入。CLI 应使用带边界的 untrusted_text;Python API 面向代理时应调用 to_untrusted_text(),不要直接转发 raw result.content。

v0.16.3 的 --json 和 --json-content 有什么区别?

--json 保持原有契约,只返回诊断而不带正文;--json-content 在同一次抓取中同时给出元数据、trace 和带边界的正文,避免为了正文再次请求同一 URL。

insane-search 和 Playwright 应该选哪个?

只想为代理读取公开正文并希望自动尝试轻量路线时,可评估 insane-search。需要表单、点击、断言、隔离上下文和多浏览器测试时,Playwright 的职责更清楚。

资料与核验范围
本文依据项目公开资料整理。版本、安装命令和功能边界可能随上游更新,请以所列来源和项目当前版本为准。 资料核对时间: 2026-09-23 13:55.

参考材料:README、GitHub API、依赖文件