DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Chat Index — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
C

dsh-chat-index

Chat Index

DeepSeek Harness (DSH) 对话索引插件:聊天界面右侧边缘的点状导航栏——每个点代表一个用户问题;悬停显示缩写,点击即可跳转到相应位置。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:Barry-Liu-001/dsh_chat_index#742e03a2377ef7b6a396f545696166137638b7da
README兼容性版本

兼容性与来源证明

Chat Index 以 dsh-chat-index 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/8/31

版本

0.1.0stable
2026/8/31

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/8/31
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Remote Web Ui@linxin666/dsh-remote-web-ui通过扫码配对访问 dsh Web GUI,共享一个官方界面:设置按钮旁的二维码可将手机和 PC 配对到同一个 Web GUI(手机采用竖屏触控适配层,PC 使用完整桌面界面),通过一次性令牌和 rClient Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。

README

dsh-chat-index

DeepSeek Harness (DSH) 对话索引插件:在 Web UI 对话区右边缘显示一列小圆点,每个点代表一条用户发送的问题。圆点等间距、紧凑、纵向居中排列(问题过多放不下时间距自动压缩以适应高度);当前阅读位置的点高亮为品牌色。

  • 鼠标悬停圆点 → 浮出该问题的缩写提示卡(序号 #n + 前 100 字)
  • 点击圆点 → 平滑滚动到那条消息,并短暂高亮消息气泡
  • 当前视口所在位置的圆点高亮为品牌色
  • 全部问题都可见,且不展开历史:圆点索引来自 Host 端的一个轻量端点(/chat-index.questions),返回该会话所有用户问题的 {seq, time, id, text} 列表(几 KB)。客户端保持 DSH 默认的 50 条消息窗口,不会自动点击「加载更早」把整段历史塞进内存
  • 按需分页:点击某个未加载的旧消息圆点时,才临时分页加载到那条消息(有界、只到点击位置,不是整段历史),然后滚动过去
  • 零构建:Node 端是普通 ESM,浏览器端是手写的 client factory 经典脚本(React 由 DSH shell 注入)
  • 不干预任何折叠/展开状态:工具调用、终端输出、思考过程等折叠内容保持 DSH 原生行为

前置条件

  • DSH 0.1.1-rc.x 或更高(Web profile)
  • Node.js ≥ 18

安装

dsh plugin 会转发给 pnpm 并自动把插件写入 profile 的 bundles 列表,所以 pnpm 支持的来源都可以装。任选一种:

# 方式 A:直接从 GitHub 安装(无需发布,推荐)
dsh plugin --profile web add github:Barry-Liu-001/dsh_chat_index

# 方式 B:从 npm 安装(发布后可用,见下文「发布与分发」)
dsh plugin --profile web add dsh-chat-index

# 方式 C:本地 tgz 安装(离线 / 审计后安装)
dsh plugin --profile web add ./dsh-chat-index-0.1.0.tgz

# 方式 D:本地源码目录(插件开发,workspace link)
dsh plugin --profile web add /path/to/dsh-chat-index

然后重启 DSH Web(dsh web 或重新打开 DeepSeek Harness.app 会话),对话区右侧即出现圆点索引(至少有 2 条用户消息时显示)。

插件通过 cordis.patch.yml 向 Loader 树插入 Node 入口(注册 /chat-index.questions 精确路由),浏览器 bundle 由 package.json 的 dsh.client + exports["./client"] 自动发现并加载。

方式 A/B/C 都会把包解包进 profile 的 node_modules,依赖可正常向上解析,无需任何额外操作;只有方式 D(源码 link)需要按文末「开发说明」补一个 @deepseek-ai 软链。

工作原理

浏览器圆点 rail
   │  fetch('/chat-index.questions?session=<id>')   (同源 GET, 返回 JSON)
   ▼
Node 端 dsh-chat-index/index.js(webServer 精确路由)
   │  缓存有效(<10s)→ 直接返回
   │  缓存过期 → ctx.sessionQuery.readSession(<id>) 读完整日志
   ▼
过滤 source.kind === 'user' 的 user/message 事件
   → 返回 [{ seq, time, id, text }, ...](id 是 messageId,text 是问题正文)
  • 数据来源:ctx.sessionQuery.readSession(DSH 公开服务,即使内容搜索关闭也能用),Host 端每次临时读一次 zstd 日志、过滤、只回传轻量问题列表,按会话 10s TTL 缓存。
  • 客户端映射:圆点与已渲染气泡通过 DOM data-chat-flow-key(=N:input-message + messageId)对应;点击已加载消息直接滚动,未加载消息走按需分页。

开发说明(workspace link 方式)

以本地目录 dsh plugin add /path/to/dsh-chat-index 安装时,pnpm 用软链指向源码目录,Node 从源码目录向上解析不到 DSH 的依赖闭包。本地开发时补一个软链即可:

mkdir -p node_modules
ln -sfn ~/.dsh/profiles/node_modules/@deepseek-ai node_modules/@deepseek-ai

以 tgz 形式安装(dsh plugin add ./dsh-chat-index-0.1.0.tgz,文件会解包到 profile 的 node_modules 里)则无需任何额外操作。

改 client.js 后刷新浏览器即可(bundle 以 no-cache 提供);改 index.js / cordis.patch.yml 后需要重启 dsh web。

卸载

dsh plugin --profile web remove dsh-chat-index

发布与分发(维护者)

插件零构建、零运行时 dependencies(DSH 宿主能力全部走 optional peerDependencies),所以三种分发方式都不需要编译步骤:

# 1) 打 tgz(产物 dsh-chat-index-<version>.tgz,只含 package.json files 白名单里的 5 个文件)
npm pack
#   → 附到 GitHub Release,用户用「方式 C」安装;也可直接发给同事

# 2) 发布到 npm(公共 registry,所有人可装)
npm login --registry https://registry.npmjs.org
npm publish --registry https://registry.npmjs.org
#   → 用户用「方式 B」:dsh plugin --profile web add dsh-chat-index

# 3) 什么都不用发:代码推到 GitHub 后,用户直接用「方式 A」从 git 安装
#   (本插件无 prepare 构建脚本,git 安装不会触发 pnpm 的 allowBuilds 拦截)

发布前检查清单:

  • package.json 的 version 已按 semver bump(npm 不允许覆盖已发布版本)
  • npm pack --dry-run 确认 tarball 内容(应只有 LICENSE / README.md / client.js / cordis.patch.yml / index.js / package.json,不含 node_modules)
  • 改动已合入 main 并推送到 GitHub(方式 A 始终装默认分支最新代码)