dsh-chat-search

DSH PLUGIN记忆与知识

仓库 P-PPJ/dsh-chat-search · npm dsh-chat-search

记忆与知识 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DeepSeek Harness 提供对话内 Ctrl+F 查找的 DSH 插件:正文按字符高亮、上一个/下一个、命中列表与实时计数,且不展开折叠块、不丢失阅读位置。

一句话选型结论

按资料字段整理

dsh-chat-search 是记忆与知识类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类记忆与知识 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 1 复刻 0 · 未关闭 issue 0
最近更新 2026-11-03 创建于 2026-10-28
README 12.8 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:P-PPJ/dsh-chat-search#v1.0.1
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.2-rc.1 等 3 个;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.2-rc.1 等 3 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-chat-search可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-chat-search:为 DeepSeek Harness 补上对话内 Ctrl+F 查找

  • Ctrl+F 唤起对话内查找
  • 正文按字符高亮命中
  • 上一个/下一个自动回绕
  • 命中列表与实时计数
  • 不展开折叠块、不丢位置

适用场景

联网搜索

上游标签

ctrl-fdeepseek-harnessdshdsh-chat-searchdsh-pluginfind-in-conversationharness-bundleharness-pluginsearch

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-11-06): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 结论说明 静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。
  • 风险计数 严重 0 / 高 0

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.2-rc.1 等 3 个),按版本装不容易报错。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在记忆与知识场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-chat-search当前 L5 · 运行验证通过 低风险 1 0.2.2-rc.1 等 3 个 有
ruflo L3 · 安装规范通过 低风险 7.4 万 未标注 无
OpenViking L3 · 安装规范通过 低风险 3.9 万 未标注 无
WeKnora L4 · 沙盒安装通过 低风险 3.3 万 未标注 有
distilly L4 · 沙盒安装通过 低风险 2.5 万 未标注 有
EverOS L4 · 沙盒安装通过 低风险 1.3 万 未标注 有

仓库档案

记忆与知识
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方P-PPJ仓库 dsh-chat-search · 默认分支 main
分类记忆与知识knowledge
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue1 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-28 · 2026-11-03最后推送 2026-11-03
本站收录2026-11-03首次进入本站目录的时间

README 全文

12.8 KB
作者原文,中文版优先;只做安全转义,不改内容

对话内查找 · dsh-chat-search

DeepSeek Harness 的对话内搜索插件。 按 Ctrl+F 就能在当前对话里查找关键词:正文高亮、上一个/下一个、命中位置列表,计数边搜边涨——而且不展开任何折叠块,不改变你正在看的位置。

English | 简体中文

图为插件面板的界面预览(用插件自己的样式表渲染),不含任何真实对话内容。

为什么还要一个

Harness 本身没有对话内查找,Ctrl+F 交给浏览器后什么也不会发生;插件市场里的同类插件装上却用不了,因为它定位聊天内容靠的是 data-chat-anchor-key、data-chat-node-key、data-chat-turn 这类属性——这些属性在 0.2.x 的会话视图里已经不存在了(现在只有 data-conversation-region、data-conversation-scroll、data-conversation-session)。锚点找不到,跳转就永远是空的。

这个插件按现在的 DOM 契约重写,顺手把「搜索时的打扰感」也一起去掉了:

浏览器原生查找 老插件 本插件
只在对话里搜(不含输入框/侧栏) ❌ ✅ ✅
正文高亮 ❌ 只闪整条消息 ✅ 按字符高亮
上一个 / 下一个 ❌ ✅ ✅
不展开折叠块、不移动阅读位置 — ❌ 会展开全部 ✅
计数随扫描实时增长 — ❌ 一次性阻塞 ✅
首个命中就在你附近 — ❌ 从对话最顶上开始 ✅
中文输入法合成时不误搜 — ❌ ✅
点击面板外不关闭 — ❌ 点就关 ✅

功能

  • Ctrl+F 随时唤起——包括光标停在输入框里的时候(不再弹浏览器原生查找栏);已经打开时再按一次 = 聚焦并全选。
  • 边搜边涨的计数:扫描分片进行(每帧约 900 个节点 / 8ms),长对话也不会把界面卡住,数字一路往上走。
  • 正文高亮:用 CSS Custom Highlight API 画 Range,不往 React 的 DOM 里插 ``,所以不会触发重排、不会和宿主抢节点。
  • 上一个 / 下一个:Enter / Shift+Enter,到尽头自动回绕。
  • 首个命中 = 离你最近的那处:以当前视口顶部为锚,从近到远找第一个匹配,只有不可见时才滚动,且只滚到"刚好看得见"。
  • 命中位置列表:点击计数展开全部命中(最多 300 条),每条带片段,命中词标蓝,点哪条跳哪条。
  • 回到搜索前的位置:跳走之后点 ⟲,一键回到开始搜索时的阅读位置(锚的是元素而不是滚动像素,所以中途加载历史也不会偏)。
  • 不打扰:不展开折叠块、不改动对话内容;点面板空白处、点聊天区都不会关;Esc 才关,并且把焦点还给打开前的元素。
  • 顺手补历史:开头会按需加载更早的消息(最多 80 页 / 12 秒),加载不完会在面板里说明"只搜索了已加载的部分"。
  • 跟随主题:只用 --dsw-alias-* 主题 token,明暗主题自动适配。

快捷键

按键 作用
Ctrl+F / Cmd+F 打开搜索;已打开则聚焦并全选
Enter / ↓ 按钮 下一个命中
Shift+Enter / ↑ 按钮 上一个命中
Esc 退出搜索,焦点还回原处
点击 3/58 展开 / 收起命中位置列表

安装

> 需要 DeepSeek Harness 桌面版(0.2.x)。装完刷新页面即可生效,不用重启应用。

方式 A:插件安装器(推荐 .tgz 直链或本地文件——不需要 Git)

> 对话框里的「安装源:中国大陆镜像源」只改写 npm 包名的请求。填 GitHub 地址或 .tgz 直链时它不参与,必须本机自己连得上。

不需要 Git 的三种填法,挑一条通得过的即可:

https://github.com/P-PPJ/dsh-chat-search/releases/download/v1.0.1/dsh-chat-search-1.0.1.tgz
https://cdn.jsdelivr.net/gh/P-PPJ/dsh-chat-search@main/dist/dsh-chat-search-1.0.1.tgz
D:\某个目录\dsh-chat-search-1.0.1.tgz        ← 本地文件,连网络都不用

填仓库地址(https://github.com/owner/repo)则需要本机装过 Git。 安装器会把这种地址当 git 依赖,用 git ls-remote 去解析;Windows 不自带 Git,没装就必然报这一条:

[ERR_PNPM_GIT_RESOLVE_FAILED] Failed to resolve git dependency "https://github.com/...":
git ls-remote failed: 'git' 不是内部或外部命令,也不是可运行的程序或批处理文件。

看到这句,要么把地址换成上面的 .tgz,要么先装 Git for Windows(winget install Git.Git)再重试。这条报错和网络无关,和仓库里放了什么也无关。

安装报错对照

报错 真正原因 怎么办
'git' 不是内部或外部命令 / ERR_PNPM_GIT_RESOLVE_FAILED 填了仓库地址,但本机没有 Git 改用 .tgz 直链或本地文件;或装 Git
无法连接 github.com / ETIMEDOUT / ECONNRESET 本机到 GitHub 的线路不通或不稳 见下方「中国大陆网络下载不动 .tgz」:套加速前缀,或交给本地文件
卡在 allowBuilds 提示 某个依赖带安装脚本,被 pnpm 拦下 本插件零依赖、零安装脚本,不会出现

> ⚠️ 中国大陆无代理实测:GitHub Release 直链 20 秒后连接被重置(会重定向到 objects.githubusercontent.com);cdn.jsdelivr.net 时通时断——同一条链接有时 1 秒下载完,也可能 25 秒超时。安装器对 GitHub 地址和 .tgz 直链不走任何镜像源,所以这两条在国内并不算稳,报错文案是「无法连接 github.com……需要本机能直接访问它或配置代理」。
>
> 四种装法(Release tarball、git+ 地址、github: 简写、CDN tarball)都用 Harness 自带的 pnpm 11 实测过:能连上时 exit=0、装出来版本 1.0.1 —— 包本身没有问题:失败要么是本机没有 Git,要么是线路不通,两者都在本机一侧。

中国大陆网络下载不动 .tgz 怎么办

Release 直链会 302 到 objects.githubusercontent.com,国内常见 ECONNRESET。可以给地址套一个加速前缀——规则就是「镜像前缀 + 完整 GitHub 地址」,装的是同一份字节(sha256 51af9c1c…):

https://ghfast.top/https://github.com/P-PPJ/dsh-chat-search/releases/download/v1.0.1/dsh-chat-search-1.0.1.tgz
https://gh-proxy.com/https://github.com/P-PPJ/dsh-chat-search/releases/download/v1.0.1/dsh-chat-search-1.0.1.tgz
https://ghproxy.net/https://github.com/P-PPJ/dsh-chat-search/releases/download/v1.0.1/dsh-chat-search-1.0.1.tgz

实测(无代理):ghfast.top 4.0 秒、gh-proxy.com 4.2 秒、ghproxy.net 9.6 秒;用第一条地址跑 pnpm add 4.6 秒装出 1.0.1,文件校验和与官方一致。

> 这些是第三方公共镜像,可用性不由本项目保证;嫌麻烦就把 .tgz 下载下来,改用本地路径装(完全不联网)。

方式 B:放进 profile(本地开发也走这条)

git clone https://github.com/P-PPJ/dsh-chat-search.git

然后在 profile 的 package.json(%USERPROFILE%\.dsh\profiles\\package.json)里加一条依赖和一条 bundle:

{
"dependencies": {
"dsh-chat-search": "file:D:/path/to/dsh-chat-search"
},
"dsh": {
"profile": {
"bundles": ["...", "dsh-chat-search"]
}
}
}

再让 Harness 装一次依赖(下次启动会自动装;也可以在该目录执行 pnpm install),刷新页面。

方式 C:Release 预构建包(插件市场装的就是这个)

https://github.com/P-PPJ/dsh-chat-search/releases/download/v1.0.1/dsh-chat-search-1.0.1.tgz

把它交给插件安装器即可,不经过源码构建、不需要 allowBuilds 授权。

> 已收录进社区目录:插件 → 市场 里搜 dsh-chat-search 就能找到(条目是 awesome-dsh-plugin 的 PR #10155,账号改名为 P-PPJ 后由 PR #11623 更新地址)。目录只收精选条目,所以本仓库按它的要求整理过:package.json 里有 dsh.bundle、根目录有 screenshots.json、assets/ 下是位图图标、Release 上有预构建 tarball。

> ⚠️ 与同名旧插件冲突:社区里另一个也叫 dsh-chat-search 的包(helo060228/dsh-chat-search)用的是同一个包名。装本插件前请先把旧的那条依赖和 bundle 删掉,否则 npm 会直接覆盖,且两个 bundle 会在同一个 overlay 槽里抢 Ctrl+F。

它怎么工作

  1. 找到对话:[data-conversation-region="chat"] 就是聊天区,滚动容器是 [data-conversation-scroll];[data-conversation-region="composer"](输入框那一块在 chat region 里面)整个剪掉,所以搜不到自己正在写的字。
  2. 把文本拼成块:手写一个走树的 walker,把文本节点按"最近的非行内祖先"分组拼成字符串——所以短语即使跨了 、、加粗,也能整句命中;script/style/svg/hidden 一律跳过。
  3. 分片扫描:walker 每帧只走约 900 个节点或 8ms,匹配结果攒够一批再交给界面,计数因此是"涨"出来的而不是等出来的。
  4. 高亮:每个命中造一个 Range,丢进 CSS.highlights(全部命中一个集合、当前命中另一个集合,优先级更高),配色写在组件内的 `` 里。
  5. 定位:用 elementFromPoint 取视口顶部那块节点当锚,compareDocumentPosition 找到第一个"在锚之后"的命中;滚动时由外到内逐个滚动容器校正,只做最小位移。
  6. 输入法:compositionstart/end + isComposing + keyCode 229 三重判断,合成期间不搜索、不响应 Enter/Esc,落字之后才搜一次。

限制(都是有意为之)

  • 折叠块里的文字搜不到:Tool 调用、思考过程、被折叠的长输出都是条件渲染,内容根本不在 DOM 里。想要搜到它们只能先点开——而这正好会改变你的阅读位置,与"无痕"冲突,所以不做。需要的话可以后续加一个默认关闭的「包含折叠内容」开关。
  • 命中上限 3000、染色上限 1200、位置列表 300 条(再多也没有意义,读不过来)。
  • 更早的历史最多补 80 页 / 12 秒,超出会显示"只搜索了已加载的部分"。
  • 需要 CSS Custom Highlight API(Chromium 105+,Harness 桌面版满足);不支持时仍能定位跳转,只是不染色。
  • 绑定宿主 DOM 契约:依赖 data-conversation-* 这几个属性。Harness 大版本改了结构就需要更新插件(这也是老插件坏掉的原因)。

想发布自己的 DSH 插件?

仓库根目录还有一份技能 publishing-dsh-plugin/——把这个插件从「本地能跑」推到「别人贴个地址就能装」的完整过程:打包、推 GitHub、写 README、进社区目录,以及对方装不上时怎么一条条查下去。

放进 ~/.dsh/skills/(Windows 是 C:\Users\<你>\.dsh\skills\),新开一个会话就能用:

git clone https://github.com/P-PPJ/dsh-chat-search.git
Copy-Item .\dsh-chat-search\publishing-dsh-plugin "$env:USERPROFILE\.dsh\skills\" -Recurse
文件 内容
SKILL.md 六道关卡:注册 → 打包 → GitHub → README → 目录 → 安装链路,附交付前检查清单
references/readme-template.md 可直接套用的 README 骨架
references/registry-entry.md 目录条目字段、分类枚举、纯 API 提 PR、改名后的迁移
references/install-troubleshooting.md 报错原文 → 真因 → 解法(含实测数字)

文件结构

client.js         # 全部功能:扫描、高亮、面板(React 组件 + CSS)
index.js          # Host 半,空实现(本插件纯前端)
cordis.patch.yml  # 把 bundle 插进 profile
locale/zh.json    # 插件信息(名称/简介)
locale/en.json
icon.svg
screenshots/      # README 里的界面预览
publishing-dsh-plugin/  # 发布技能(不属于插件本体,不会打进 npm 包)

没有构建步骤、没有第三方依赖:client.js 是一个 window.__ModuleLoader__.load({...}) 的工厂函数,React 从宿主模块表里 require('react') 拿。

开发

  • 改 client.js 后刷新页面就生效(插件以 file: 链接进 profile 时不需要重装)。
  • node --check client.js 做语法检查。
  • 插件通过 ctx.slots.register({ name: 'shell.overlay', id: 'dsh-chat-search', order: 60 }, FindOverlay) 挂到全屏浮层槽位,浮层本身 click-through,只有面板自己接收鼠标事件。

许可证

MIT © P-PPJ

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-chat-search 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:P-PPJ/dsh-chat-search#v1.0.1` 即可。对应的 npm 包名是 `dsh-chat-search`。

dsh-chat-search 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-chat-search 安全吗?

低风险。静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。

dsh-chat-search 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-chat-search 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.2-rc.1、0.2.1-rc.5、0.2.1-rc.3。

dsh-chat-search 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-chat-search 有哪些功能?

Ctrl+F 唤起对话内查找、正文按字符高亮命中、上一个/下一个自动回绕、命中列表与实时计数、不展开折叠块、不丢位置。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

6 条
不同作者的仓库分开列,请确认你要装的是哪一个
记忆与知识
按星标排序,可作替代方案

ruflo

ruflo

L3 · 安装规范通过 7.4 万 星

OpenViking

OpenViking

面向 DeepSeek Harness 的 OpenViking 记忆与上下文插件:pre-step 自动召回与画像注入、会话捕获、`vik

L3 · 安装规范通过 3.9 万 星

WeKnora

WeKnora

把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己

L4 · 沙盒安装通过 3.3 万 星

distilly

distilly

Distilly — Distill how they think into reusable Skills for any Agent o

L4 · 沙盒安装通过 2.5 万 星

EverOS

EverOS

L4 · 沙盒安装通过 1.3 万 星

MemOS

MemOS

L4 · 沙盒安装通过 1.2 万 星

P-PPJ 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-11-06。