AllDSH
EN

Modsearch

liustack · liustack/modsearch

为 DSH 提供免费网页搜索:无需注册、无需密钥,返回带引用的结构化 JSON;装上 Grok 后还能搜索 X。

Modsearch 是 liustack 开发的 DSH 插件,为 DSH 提供免费网页搜索:无需注册、无需密钥,返回带引用的结构化 JSON;装上 Grok 后还能搜索 X。收录于工具与能力,适合网页搜索。验证等级 L2(结构完整),安全扫描尚未完成,尚未声明具体的兼容版本,条目最后核查于 2026-09-18,采用 MIT 许可。安装命令:dsh plugin --profile web add @liustack/modsearch

本条目由 赤榆 核查,数据更新于 · 引用规则

L2active
Modsearch 验证面板:验证等级 L2(共 5 级)——清单文件有效,关键字段齐全。安全扫描:未验证(未运行扫描)。兼容目标:DeepSeek Harness 未声明。许可:MIT。GitHub 星标:501。条目最后核查 2026-09-18。
Modsearch 的验证面板。该条目处于 5 级验证中的 L2 级:清单文件有效,关键字段齐全。安全扫描:未验证(未运行扫描);兼容目标:DeepSeek Harness 未声明;许可:MIT;条目最后核查于 2026-09-18。 验证规则说明

实际使用截图

本站截图:插件跑在一次性 DeepSeek Harness 里、任务跑在自动生成的演示项目上,不是你的机器,也不是作者提供的图。点击任意一张可看大图。

Modsearch — 安装并启用后的样子:「设置 → 插件 → 插件列表」中展开的条目,含完整包名、配置状态与运行状态。
安装并启用后的样子:「设置 → 插件 → 插件列表」中展开的条目,含完整包名、配置状态与运行状态。

由 AllDSH 于 2026-09-19 在 DSH 0.1.5-rc.1 上截取,视口 1920×1080,包版本 @liustack/modsearch@^5.10.3。

安装命令

dsh plugin --profile web add @liustack/modsearch

需要先启动 harness:npx @deepseek-ai/dsh web,然后执行上面的命令。第一次用?先看安装教程。

ModSearch 是什么

包名是 @liustack/modsearch,当前版本 5.10.2,作者 Leon Liu,MIT 许可。仓库把它定位成「DeepSeek Harness(dsh)上最强的免费网页搜索插件」,而它的卖点其实很窄、也很可验证:DeepSeek、GLM 这类模型没有联网能力,或能力很弱,这个插件补上网页搜索、X 搜索与单页抓取三件事。在 dsh 里,它会挂出一张插件配置卡片,位置在「设置 → 插件 → 插件配置」。

需要点明的是它没有声明什么:README 没有给出任何评测或基准,也没有说自己在比较中胜出。所以「最强」应当读作作者定位,而不是已核实的结论。

你装的是什么:读清单,而不是读口号

有两个字段决定了你实际装到的东西,值得逐条说明。

顶层的 dsh 字段声明的是一个 Cordis bundle:bundle.patch 指向 ./cordis.patch.yml,由 harness 在挂载时应用。它还声明了浏览器侧的一半——platform: "web"、client.inject: []、immediately: true,意思是这是一个 web 平台客户端包,立即激活,且不需要注入任何服务。README 证实了它可见的后果之一:dsh 设置页里确实有一张 ModSearch 卡片。但 README 没有说明这个 patch 改写了什么,patch 文件本身也不在本条目的源材料中,因此 patch 究竟动了哪一行,这里不做断言。

files 数组才是这个 tarball 的诚实清单:dist、docs、skills/modsearch/SKILL.md、skills/modsearch/scripts、skills/modsearch/references、CHANGELOG.md、SECURITY.md、dsh、cordis.patch.yml。也就是说,你一次装进来的是三样东西——一个 CLI、一个 agent Skill,以及 dsh bundle。包的运行时依赖只有两个:commander(命令行参数解析)与 undici(HTTP 客户端),没有更重的东西。

搜索背后到底是什么

每一次搜索与抓取都由第三方引擎执行。默认是 Firecrawl 的无密钥层(Keyless),装完即用;其他可选引擎为 Antigravity CLI、Tavily、Exa、Grok Build(X/Twitter 搜索)以及 local(只做页面抓取)。配置了多个引擎就构成一条链,失败时自动故障转移。

密钥是可选的,放在 ~/.modsearch/config.json(权限 0600,展示时会遮蔽),或通过 TAVILY_API_KEY、EXA_API_KEY、FIRECRAWL_API_KEY 环境变量提供。同一引擎可以给多个逗号分隔的密钥;遇到认证失败、限流或额度耗尽时,先在同一引擎内轮换密钥,再往下走链条。兼容 Tavily、Exa 或 Firecrawl 协议的自建端点可以用 baseURL 指过去——README 说官方端点始终编在代码里,不会被写成默认配置。

这是本插件的信任核心,请精确理解。 插件自身的代码与依赖(commander、undici)不含任何搜索索引;结果来自 Firecrawl、Tavily、Exa、Antigravity 或 Grok。ModSearch 的角色是驱动这些上游。README 的免责声明只说了这一句:上游引擎「each carry their own terms and quotas, and complying with them is the user’s responsibility」(各有自己的条款与配额,遵守它们是用户的责任)——关于上游关系,源材料就说到这里。

源材料没有说、而读者容易默认的部分:它从未说明请求是否经过任何 liustack 运营的中间服务,还是从你的机器直连引擎端点;从未说明 ModSearch 是否记录查询;没有公布任何留存或遥测政策;也没有说明 Firecrawl 无密钥层背后到底是哪个搜索索引。「没说会记录」不等于「不会记录」。

它具体做什么

  • 网页搜索:走配置好的引擎链,返回模型可直接消费的结构化 JSON,而不是抓取到的页面标记。
  • 页面抓取是独立一步:抓不抓整页、什么时候抓,由模型决定,token 花在哪儿可控。README 点名了一个 read_page 工具,可以连续读多个页面。
  • 带置信度提示:一次演示返回六条带来源的资讯,并附一句「哪些细节来自聚合、值得再看一眼」;README 把这句提示归因于 uncertainty 字段。
  • X(Twitter)搜索,这一条要读仔细:所谓「触及网页索引够不到的语料」,前提是 With Grok Build installed(装上 Grok Build),并且它借助 SuperGrok 或 X Premium 订阅运行。X 搜索没有无密钥路径。
  • 故障转移与单引擎密钥轮换,也可以直接禁用某个引擎。
  • dsh 设置里的配置卡片:选首选引擎、填 API key 或自建端点、勾选哪些引擎参与故障转移。README 里给其他 harness(Claude Code、Codex、Pi、OpenCode)的安装说明走的是 Skill 安装路径,卡片是 dsh 专属的那条路。

运行要求,以及「免费」到底免费在哪

  • Node.js 22.13 或更新——写在 engines 里,这是硬下限而不是建议。
  • 可用的对外网络。这里没有任何东西是离线的,而 local 引擎覆盖的是页面抓取,不是搜索。
  • 默认配置不需要密钥,也不需要账号,这条适用于 Firecrawl Keyless 上的网页搜索与页面抓取。
  • 只有想要更多时才需要账号。 Antigravity CLI 需要一次浏览器登录;Grok Build 需要 SuperGrok 或 X Premium。免费的 Tavily、Exa、Firecrawl 密钥都是可选项。
  • harness 最低版本在 README 里没有说明。 README 与清单都没有声明 harness 版本、peer 范围或 dsh.compatibility 块,因此本条目不记录 dshTarget,验证等级止于 L2。README 同样没有给出支持的操作系统清单。
  • 代理与 VPN 是能活的。 README 说 Clash、Clash Verge Rev、mihomo、Surge 的 fake-IP 模式开箱可用,因为 198.18.0.0/15 内的 DNS 答案被当作 fake-IP 占位符、不需要开关;而 allowPrivateNetwork 关闭时,http://198.18.0.5/ 这类字面地址仍会被拦下。

这里的免费是别人家的免费额度,不是一项无限服务。Firecrawl Keyless 每月给 1,000 credits,不要账号、不要 API key、不要信用卡;再配一个免费 Firecrawl 密钥,可以在无密钥额度之上再加个人的 1,000/月。Antigravity CLI 免费,代价是一次浏览器登录。Tavily 每月 1,000 credits,不需要卡;Exa 是每月重复发放的 $10 额度,README 形容为大约 1,400 次搜索。Grok Build 不免费,它借助付费的 SuperGrok 或 X Premium。

所以:「无需注册」和「无需 API 密钥」对默认的网页搜索与抓取路径是真的,对 X 搜索是假的。 X 搜索需要 Grok Build,而 Grok Build 需要付费账户。

而且这个安排不是保证的。上面每一个额度都是上游厂商公布的政策,README 自己就把无密钥层描述成一次发布安排。如果 Firecrawl 调整、限流或下线无密钥层,默认引擎就失去额度,链条会退到你还配置过的其他引擎——而全新安装时,那个「其他」是空的。额度耗尽也未必报错:故障转移本就是设计好的反应,所以可能发生静默切换到另一个引擎。源材料没有给出任何可用性承诺,也没有说明单次搜索或单次抓取消耗多少 credits。

隐私:你的查询去了哪里

查询会离开本机。默认安装下,你搜索的文字被送往 Firecrawl 的无密钥服务;你抓取的页面 URL 被送往实际执行抓取的引擎。一旦你加上 Tavily、Exa、Antigravity 或 Grok Build,这些服务就会看到查询。它们如何处理这些数据遵循各自的条款——README 在免责声明里正是把这份责任交给了用户。

有两点是站在插件这边的:密钥保存在 ~/.modsearch/config.json,权限 0600,展示时遮蔽;包内附带 SECURITY.md,安全文档提到了 SSRF 防护、DNS 重绑定防护与不可信输入处理。

没有说、也不该被推断的部分:README 从未声称这个插件是私密的,没有说明是否存在 liustack 运营的中间层看到你的流量,没有说明查询或结果是否被记录到任何地方,也没有说明这些 SSRF 与防重绑定防护具体覆盖什么、作用在哪一层。包内不存在 permissions 字段,本站把这条目录记为 security: unverified。如果你要搜索的内容不适合粘给一个第三方网络服务,就不要指望这个插件会降低这种暴露。

已知限制,以及什么时候用它、什么时候不要用

README 相当愿意直说失败模式,这里直接引用而不是改写:

  • 「When a channel fails or exhausts its quota, the next one takes over.」(通道失败或额度耗尽时,下一个接管。)所以覆盖能力取决于你配置了哪些引擎、以及它们还剩多少额度。
  • 单引擎密钥轮换只在「authentication, rate-limit, and quota failures」(认证失败、触发限流、额度耗尽)时触发,其他情况不会。
  • 上游免责声明:引擎「each carry their own terms and quotas, and complying with them is the user’s responsibility」;作者不提供任何明示或默示担保,「商业或其他用途」皆然。
  • 覆盖缺口:只搜索开放网页与 X,而 X 还需要 Grok Build。没有说明其他封闭平台有对应引擎,也没有说明任何引擎的索引深度、时效性与语言覆盖。
  • 产品缺口:没有 OpenSearch 兼容引擎,也没有浏览器或搜索栏集成;local 是页面抓取引擎而不是索引,没有网络引擎就无法搜索任何东西。
  • 命名缺口:README 点了 read_page 这一个工具,但从未列出 dsh bundle 实际注册的工具集,所以模型会调用哪些工具名,源材料没有说明;files 里列的 SKILL.md 也没有包含在本条目的源材料中。
  • 独立性:源材料没有公布任何第三方安全复核或恶意软件扫描;仓库明确「does not accept pull requests」,只由作者一人维护。单维护者是可持续性信号,不是缺陷,但应纳入考虑。
  • 源材料没有给出星数、用户数或安装量。本条目里的 stars: 471 来自本站元数据,不是包本身的声明。

当你用的 dsh 模型上不了网、又想一步把搜索跑起来且不愿注册任何东西时,用它。Firecrawl 无密钥默认就是这条目录存在的理由:搜索与页面获取立刻可用,uncertainty 字段与逐条引用让结果可核查,而不是一段黑箱摘要。如果你已经在为 Grok 付费,补上 X 覆盖是这里唯一网页索引复制不了的能力。

当负载很大、或必须可预测时,不要把它当作付费搜索 API 的替代品:默认引擎是共享的免费层,故障转移会被设计成静默进行,源码没有承诺任何吞吐量。也不要以为它是私密的——查询按构造就会发给第三方,而没有任何日志或留存声明可以否认这一点。更不要以为装上就有 X 搜索:没有 Grok Build 与付费订阅,这个能力根本不存在。

FAQ

X(Twitter)搜索真的不需要凭据就能用吗?

不能。README 把 X 搜索明确绑定到 Grok Build:「With Grok Build installed, ModSearch queries the corpus that web indexes cannot reach」,引擎表又写明 Grok Build 是借助「SuperGrok or X Premium」运行的,两者都要付费。无需密钥就能用的是网页搜索与单页抓取,X 不在其中。

「无需 API key」这条成立吗?

对默认路径成立,也仅限于此。搜索与页面获取走 Firecrawl 的无密钥层,不需要账号、API key 或信用卡。但每多加一个引擎、每为更高额度配一把密钥,都会把密钥重新引入——它们存在 ~/.modsearch/config.json 或环境变量里。

免费额度是保证的吗?

不是,源材料也没有这样暗示。1,000 credits/月在 README 里指向的是 Firecrawl 无密钥层的发布安排,而它自己的免责声明就写明各上游引擎 «各有自己的条款与配额»。包里没有任何东西能让作者承诺别家的额度会一直存在。

我的搜索词会留在本机吗?

不会。查询会发给执行它的引擎,默认安装下就是 Firecrawl 的无密钥服务;页面 URL 则发给执行抓取的引擎。README 没有说明是否存在中间层、是否记录日志、留存多久。可以确定的是密钥以 0600 保存并在输出中遮蔽。

实际装进来的到底是哪些东西?

npm 包 @liustack/modsearch@5.10.2:一个名为 modsearch 的 CLI、skills/modsearch 下的 agent Skill,以及由顶层 dsh 字段声明的 dsh bundle(bundle.patch: ./cordis.patch.yml,外加一个 web 客户端半边)。运行时依赖只有 commander 与 undici。Cordis patch 文件本身不在本条目可用的源材料里,因此它改写了什么,这里不做断言。

来源与参考

本页的技术判断建立在以下第一手资料之上,链接可直接追溯核对。

  1. [1]liustack/modsearch — GitHub插件自身的仓库与 README——本条目的每一项论断都以这份第一手文档逐条核对。
  2. [2]@liustack/modsearch on npm — npm本页安装命令实际解析到的已发布包。
  3. [3]deepseek-ai/deepseek-harness — GitHubDeepSeek Harness、Cordis 运行时与插件加载模型的上游仓库。
  4. [4]@deepseek-ai/dsh on npm — npm已发布的 harness 包,也是本站 dshTarget 字段跟踪的版本来源。
  5. [5]dsh-plugin GitHub topic — GitHub本站用于发现收录插件的检索入口。

全部链接最后核验于 2026-09-11

关于本条目的问题

Modsearch 安全吗?可以安装吗?
Modsearch 当前的验证等级是 5 级中的 L2 级(清单文件有效,关键字段齐全),安全状态为「未验证(未运行扫描)」。验证等级记录的是安装路径被核查到什么程度,它本身不是安全保证:是否安全取决于插件实际能碰到什么。安装前请阅读源码与安装脚本,确认它对文件、shell、网络和凭证的访问范围。
Modsearch 兼容哪个 DeepSeek Harness 版本?
Modsearch 没有声明 dshTarget,因此作者没有承诺任何具体的 DeepSeek Harness 版本。这个字段是可选的,缺失意味着本条目不保证在特定版本上可用;安装前请先在隔离的 profile 中试装。
Modsearch 怎么安装?
先用 npx @deepseek-ai/dsh web 启动 harness,然后复制页面顶部的安装命令。该命令由仓库发布的包名(或条目声明的安装 spec)生成,因此不会与仓库实际发布的内容脱节。本条目最后核查于 2026-09-18。
X(Twitter)搜索真的不需要凭据就能用吗?
不能。README 把 X 搜索明确绑定到 Grok Build:「With Grok Build installed, ModSearch queries the corpus that web indexes cannot reach」,引擎表又写明 Grok Build 是借助「SuperGrok or X Premium」运行的,两者都要付费。无需密钥就能用的是网页搜索与单页抓取,X 不在其中。
「无需 API key」这条成立吗?
对默认路径成立,也仅限于此。搜索与页面获取走 Firecrawl 的无密钥层,不需要账号、API key 或信用卡。但每多加一个引擎、每为更高额度配一把密钥,都会把密钥重新引入——它们存在 ~/.modsearch/config.json 或环境变量里。
免费额度是保证的吗?
不是,源材料也没有这样暗示。1,000 credits/月在 README 里指向的是 Firecrawl 无密钥层的发布安排,而它自己的免责声明就写明各上游引擎 «各有自己的条款与配额»。包里没有任何东西能让作者承诺别家的额度会一直存在。
我的搜索词会留在本机吗?
不会。查询会发给执行它的引擎,默认安装下就是 Firecrawl 的无密钥服务;页面 URL 则发给执行抓取的引擎。README 没有说明是否存在中间层、是否记录日志、留存多久。可以确定的是密钥以 0600 保存并在输出中遮蔽。
实际装进来的到底是哪些东西?
npm 包 @liustack/modsearch@5.10.2:一个名为 modsearch 的 CLI、skills/modsearch 下的 agent Skill,以及由顶层 dsh 字段声明的 dsh bundle(bundle.patch: ./cordis.patch.yml,外加一个 web 客户端半边)。运行时依赖只有 commander 与 undici。Cordis patch 文件本身不在本条目可用的源材料里,因此它改写了什么,这里不做断言。

相似的 DSH 插件

查看全部

MisakaNet

Ikalus1988

一个基于 git 的失败复盘经验库:agent 在重复调试已知错误之前,先检索带证据等级的故障解法。

L2
493 Python

EasyEDA Agent

zhoushoujianwork

给 AI harness 装上嘉立创EDA专业版的「手」—— typed 原理图/PCB 动作,CLI / Agent Skill / stdio MCP 三形态,附电路模块库。

L2
465 Go

为 DeepSeek Harness 提供多引擎网页搜索:内置免费引擎、默认 Bing,安装即用无需 API key。

L3
201 TypeScript

AnySearch for DSH

anysearch-team

把 DSH 内置的 web_search 与 web_fetch 接到 AnySearch 商业 API,并另加垂直搜索、批量搜索与能力发现三个工具。

L2
419 TypeScript

一个 Chrome/Firefox 侧边栏扩展,为 DSH 打通通往你自己浏览器标签页的纯文本通道——不需要视觉模型。

L3
684 TypeScript

Modlens

liustack

编辑推荐

为纯文本 Harness 提供的视觉桥接:图片发往你自行配置的视觉引擎,返回结构化证据。

L2
4k TypeScript
ESC

输入关键词搜索索引,索引由 Pagefind 在部署时生成。