dsh-prompt-library: Replicating Voyager-style Prompt Library and Session Organization in DSH

前言

在 DeepSeek Harness(DSH)里写长对话、反复改提示词时,常见做法是复制到外部笔记或浏览器扩展里管理。Gemini Voyager 是面向浏览器的扩展,提供浮动提示词面板、公式复制、会话分组等能力,但需要单独窗口或扩展环境。维护者 Kirby-YiBy 的 dsh-prompt-library 用 DSH 原生插件 API 把这些「可携带」的界面搬进 DSH 客户端本身:不装扩展、不另开浏览器页,数据落在本机 ~/.dsh。

下面按定位、功能、安装与用法说明该插件;事实以 GitHub 仓库 README 为准。社区目录页见 skillhub.cn,与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-prompt-library(npm 包名同插件 id)是 DSH 客户端类插件:Voyager 风格的提示词库、一键复制公式 LaTeX、对话引用插入输入框,以及侧边栏会话文件夹。当前 package 版本为 0.17.0,许可证 MIT,仓库 Kirby-YiBy/dsh-prompt-library。

插件分 host 与 browser 两半:lib/index.js 维护 JSON 存储并提供 HTTP API;client/client.js 向 DSH 注册 shell.overlay、conversation.input.dock、sidebar.panellist、main 等槽位。仓库无构建步骤,直接以源码形式打进 profile bundle。

核心功能

提示词库(浮动球)

界面为可拖拽的 46px 浮动球,点击打开约 440px 宽的面板;位置会记住,面板可拖标题栏并支持位置锁定。

  • 搜索:按名称、正文、标签实时过滤。
  • 筛选:全部 / 置顶 / 最近,以及多选标签(AND)。
  • 视图:紧凑(默认)与舒适;置顶项分组并带分隔线,可拖拽或方向键重排。
  • 悬停约 250ms 可预览完整 Markdown;编辑时名称必填且唯一,删除需确认一次。
  • 正文支持 {{name}} 占位符,填表插入;\{{ 可转义。
  • 导入/导出使用 Voyager 格式 gemini-voyager.prompts.v1;界面中英切换;条目可点击插入或点击复制。

引用回复

在对话中选中任意文本会出现小工具栏,点 引用 会把选区以 Markdown 引用块追加到 composer:每行前加 >,前面空一行,通过 DSH 的 shell.draftEditor.appendDraft 写入草稿,不模拟按键,避免误发送。

公式复制

悬停已渲染公式会高亮,点击后将 LaTeX 写入剪贴板。检测顺序为 [data-math] → ms-katex → .katex / .katex-display → .math-inline;源码来自 data-math、data-math-source 或 KaTeX 的 annotation[encoding="application/x-tex"]。页脚可切换输出格式:$…$、裸 LaTeX、Word 用 MathML、Notion 用 $$…$$;行内公式默认 $…$,块级默认 $$…$$。

会话文件夹

侧边栏 rail 上的图标打开文件夹页。会话来自 DSH 目录 ctx.sessions.list,子 agent 会话会被过滤。顶部 chip 为全部 / 未归档 / 各文件夹及数量;拖拽会话到文件夹即可归档,chip 会高亮为投放目标。双击文件夹或点 ✎ 可内联重命名;✕ 删除文件夹前确认一次,删除只解除归档,不会删会话。可按标题搜索,列表显示所属文件夹与是否运行中。

刻意未移植的 Voyager 能力

README 明确未做:Timeline(依赖 transcript 锚点)、导出整段对话(缺 session 消息 API)、星标库 / Google Drive 云同步、以及 DSH 未对第三方开放的 / 补全管道。

安装与启用

环境要求:

  • DeepSeek Harness 0.2.1-rc.5 或更新(Desktop 或 dsh web)。
  • 主机 Node.js 20+。

从 GitHub 安装(README 推荐写法):

dsh plugin --profile desktop add github:Kirby-YiBy/dsh-prompt-library

安装后重载应用窗口。首次安装有时需 完全重启 DSH:客户端 bundle 在启动时组装的,仅刷新页面不一定加载新插件条目。若使用 dsh web,把 --profile desktop 换成 --profile web。

卸载:

dsh plugin --profile desktop remove dsh-prompt-library

卸载插件不会自动删本地数据;要清空库与文件夹需自行删除 ~/.dsh 下对应 JSON(见下一节)。

数据存放位置

文件 内容
~/.dsh/prompt-library.json 提示词库(Voyager PromptItem 结构)
~/.dsh/session-folders.json 文件夹定义与会话 id 到文件夹 id 的映射
~/.dsh/prompt-library-debug.log 诊断日志,可随时删

README 说明:无遥测、无联网、无账号,数据不离开本机。

典型用法

  1. 安装并重启 DSH 后,在界面中找到浮动球,打开面板搜索或筛选提示词,点击插入 composer 或复制正文;含 {{变量}} 的条目会先弹出填写卡片。
  2. 长对话里选中模型回复的一段文字,用工具栏 引用 把内容带进输入框再写追问。
  3. 阅读含 KaTeX 的回复时,点击公式复制 LaTeX,按页脚格式开关选择 $…$ 或 MathML 等再粘贴到 Word / Notion。
  4. 打开侧边栏会话文件夹面板,新建文件夹,把历史会话拖入 chip;用搜索找旧会话标题。

开发调试时,仓库提供无构建的客户端测试:

node test-client.mjs

本地 link 安装(开发用,README 原文):

dsh plugin --profile desktop add link:/absolute/path/to/dsh-prompt-library

link: 目标目录必须一直存在,否则启动加载失败。

适用场景与注意

适合经常在 DSH 里复用提示词模板、需要本地归档多会话、或要从对话里快速摘公式 LaTeX 的开发者。若你依赖 Voyager 的云同步、时间线或整段导出,本插件目前不提供对应能力。

安装前请自行查看 源码与 LICENSE:DSH 插件以当前 dsh 进程权限 在主机上运行,host 侧会读写 ~/.dsh 并在 loopback 暴露 /dsh-prompts/api/*;变更类请求仅接受来自 DSH 界面相关 origin,其他来源返回 403。使用前确认版本与许可证符合你的环境策略。

结尾

dsh-prompt-library 把 Voyager 里与「写提示、整理会话、抄公式」相关的交互收进 DSH 客户端,数据本地 JSON 存储,可与 Voyager 提示词包互导。更多信息与演示视频见仓库 README;安装入口亦可从社区目录 Kirby-YiBy/dsh-prompt-library 跳转到 GitHub。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye