dsh-plugin-everything
Windows 全盘文件搜索:按文件名、路径、扩展名、大小或修改时间检索,毫秒级从本机 voidtools Everything 索引返回匹配的文件与文件夹(完整路径、大小、修改时间);另一张卡片显示 Everything 是否可达与索引条目数。内置官方 Everything SDK,不需要 es.exe 或 HTTP 服务;需安装并运行 Everything 1.4 以上(插件可自动拉起)。
安装
dsh plugin --profile web add dsh-plugin-everything
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✓ |
| 2 列装 | ✓ |
| 3 挂载 | ✓ |
| 4 启动 | — |
四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
README
<p align="center">
<img src="icon.svg" width="96" height="96" alt="dsh-plugin-everything icon" />
</p>
<h1 align="center">dsh-plugin-everything</h1>
<p align="center">
<a href="https://github.com/topics/dsh-plugin"><img alt="DSH Plugin" src="https://img.shields.io/badge/DSH%20Plugin-dsh--plugin-4D6BFE?style=flat-square"></a>
<a href="https://github.com/deepseek-ai/deepseek-harness"><img alt="DeepSeek Harness" src="https://img.shields.io/badge/DeepSeek%20Harness-compatible-4D6BFE?style=flat-square"></a>
<img alt="Platform" src="https://img.shields.io/badge/platform-Windows%20x64-0078D4?style=flat-square">
<a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-green?style=flat-square"></a>
<a href="https://github.com/keyblues/dsh-plugin-everything/releases"><img alt="Release" src="https://img.shields.io/github/v/release/keyblues/dsh-plugin-everything?style=flat-square"></a>
<a href="https://www.npmjs.com/package/dsh-plugin-everything"><img alt="npm" src="https://img.shields.io/npm/v/dsh-plugin-everything?style=flat-square"></a>
</p>
<p align="center">
给 <a href="https://github.com/deepseek-ai/deepseek-harness">DeepSeek Harness</a> 智能体加上「全盘秒级找文件」的能力:直接查询本机
<a href="https://www.voidtools.com/">voidtools Everything</a> 的 NTFS 索引。
<br />
English: <a href="README.en.md">README.en.md</a>
</p>
DSH 插件标识:本仓库是一个 DeepSeek Harness 插件(bundle),仓库 topic 为
dsh-plugin,package.json中声明了
dsh.bundle.patch与dsh-plugin关键词,并通过engines.dsh显式声明支持的
DSH 版本范围,可被 DSH 社区插件目录按 topic 检索收录。
它解决什么问题
Harness 里的 Agent 默认只能在工作区里逐个目录找文件,跨盘、找某个安装目录、找历史
下载时很慢。本插件把 Everything 的索引能力暴露成模型工具:一次查询就能拿到全盘
匹配的完整路径、大小和修改时间,查询耗时通常只有几毫秒。
前置条件
- Windows x64 上运行 DeepSeek Harness。
- 本机已安装 voidtools Everything 并保持运行(1.4 或更新;
实测 1.4.1.1032)。索引保存在 Everything 进程内,插件通过 Everything SDK 的 IPC
读取结果,因此没有安装或没有运行 Everything 时无法工作。
- 不需要安装 Everything Service,也不需要开启 HTTP/ETP 服务器。
- Everything 未运行时,工具会返回明确提示;可在配置里打开
autoStart让插件自动拉起它。
安装
最简:DSH 桌面端 → 插件 → 查看安装任务,在输入框里填 dsh-plugin-everything 即可。
安装器会从 npm registry 拉取最新版(当前 1.1.0),装完 everything_search /
everything_status 立即出现,无需重启 Harness。
方式一:npm 包(推荐)
DSH 桌面端:插件 → 查看安装任务 → 输入 dsh-plugin-everything
(指定版本写 dsh-plugin-everything@1.1.0)。
DSH CLI(需先初始化 desktop profile,并在 Desktop 完全退出后执行):
dsh plugin --profile desktop add dsh-plugin-everything
更新到最新版:重复执行一次上述 add。固定版本用 dsh-plugin-everything@<version>。
- npm 包页:<https://www.npmjs.com/package/dsh-plugin-everything>
- 查看最新版本:npm view dsh-plugin-everything version
方式二:GitHub Release / 本地 .tgz(离线、固定版本)
1. 从 Releases 下载
dsh-plugin-everything-1.1.0.tgz;
2. 在桌面端安装框直接填该文件的绝对路径
(如 C:\Downloads\dsh-plugin-everything-1.1.0.tgz),或让 Agent 执行
plugin_manager install_bundle target=<tgz 路径>。
适合 npm 不可用、需要固定版本或离线安装的场景。
方式三:本地源码目录(开发 / 调试)
git clone https://github.com/keyblues/dsh-plugin-everything.git
在桌面端安装框填目录绝对路径,或让 Agent 执行
plugin_manager install_bundle target=<目录路径>。
修改代码后重新安装一次即可生效。
桌面端安装器支持的输入
输入 · 说明
dsh-plugin-everything · npm 包名(推荐):从 npm registry 安装最新版
dsh-plugin-everything@1.1.0 · npm 包名 + 指定版本
C:\Downloads\dsh-plugin-everything-1.1.0.tgz · 本地 Release 包 / .tgz 路径
C:\path\to\everything-plugin · 本地目录(clone 的源码目录)
https://github.com/keyblues/dsh-plugin-everything · GitHub 仓库地址;安装时 pnpm 仍需直连 github.com,网络受限时会 ECONNRESET,可点界面上的「改用国内镜像」,或改用包名 / 本地路径
安装位置为 ~/.dsh/profiles/desktop,装完立即生效(工具直接出现,无需重启)。
卸载
让 Agent 执行 plugin_manager remove_bundle target=dsh-plugin-everything,
或在 Settings → Plugins 中停用/移除。
提供的工具
工具 · 作用
everything_search · 用 Everything 语法搜索全盘文件/文件夹,返回路径、大小、修改时间、命中总数
everything_status · 检查 Everything 是否可达、客户端版本、索引条目数、SDK DLL 路径
everything_search 参数:
参数 · 类型 · 说明
query · string(必填) · Everything 搜索表达式
max · integer · 返回条数 1–500,默认取插件配置 maxResults(50)
sort · enum · name(默认)/ path / size / date-created / date-modified / recent
descending · boolean · 是否倒序,默认 false
Everything 语法示例:
notepad.exe # 文件名包含 notepad.exe report 2024 ext:pdf # 2024 + PDF file:*.md path:"C:\work" # 指定目录下的 markdown folder:node_modules # 文件夹名 C:\Windows\ notepad # 以反斜杠结尾 = 限定在此目录内 size:>10mb dm:today # 大于 10MB 且今天修改 中文文件 # 中文/Unicode 文件名
完整语法见 Everything 搜索语法。
工具卡片(Web 界面)
插件带一个 Client 半 client.js,向 Web 界面的 tool.call.toolview 槽位注册了两张卡片,
所以 everything_search / everything_status 在对话里不再是通用工具行,而是有专门的卡片样式:
卡片 · 收起状态(一行) · 展开状态
Everything 搜索 · 搜索图标 + 标题 + 搜索词 + 返回/命中 计数 · 统计行(命中总数 / 显示条数 / 排序 / 截断)与最多 8 行命中(文件/文件夹图标、文件名、所在目录、大小与修改时间,点击文件名在侧边栏打开);超出 8 行用一行说明折起,完整结果仍在模型侧结果文本里
Everything 状态 · 状态词 + 索引条目数 · 左对齐的 状态/版本/索引条目/索引状态/平台/SDK DLL 行;不可用时附错误原文与 autoStart 提示
- 数据来源:Host 侧
output.presentationMeta投影(随结果持久化的结构化元数据),
卡片不解析模型可见的结果文本,因此含 (、, 的路径不会被误读。投影最多携带 100 行
结果以避免会话日志膨胀;模型看到的完整结果文本不变。
- 主题:只用 DSH 的
--dsw-alias-*主题 token,浅色/深色自动适配;行高、字号跟随
界面的正文字号设置。
- 文案:中英双语,随界面语言切换(Client locale 字典)。
- 兜底:卡片组件包在崩溃边界里,渲染出错时退化成一行纯文本,不会留下空白行。
- 生效方式:Host 工具改动刷新后即生效;新增/更新 Client 半后需要重启一次 Harness
(或刷新 Web 界面)让浏览器加载新的客户端 bundle。
配置
安装后可在 profile 的 cordis.patch.yml(用户 patch 层)覆盖本插件行:
- id: everything
config:
maxResults: 50 # 默认返回条数(1-500)
queryTimeoutMs: 10000 # 单次查询超时;超时会终止 SDK worker,下次查询自动重建
autoStart: false # Everything 未运行时是否自动启动
everythingPath: 'C:\Program Files\Everything\Everything.exe'
sdkPath: '' # 留空使用插件自带的 native/Everything64
…(truncated)以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:5,最后更新 2026-11-02