前言¶
在 DeepSeek Harness(DSH)的 dsh web 对话框里,开发者经常会重复输入同一类短语:提示词片段、技术术语、项目约定用语、常见追问或固定模板。已有做法通常是手动复制,或在编辑器外维护一份片段列表。
dsh-wordbox 针对这个场景提供一个 Web 客户端插件:在对话输入框右侧增加「词」按钮,点击后弹出常驻上拉面板,用来管理全局或当前项目的常用词/句,并一键插入到输入框中。
这是什么¶
dsh-wordbox 是 arcmosin 维护的 DSH Web 客户端插件,许可证为 MIT。
它属于标准 DSH bundle 插件,安装和卸载通过 dsh plugin 命令完成,并自动挂载到 web profile。插件界面支持中/英双语,跟随 DSH 界面语言。
核心功能¶
下面列出已提供的主要能力。
- 在对话输入框右侧显示「词」按钮;英文界面显示
W。 - 点击「词」按钮后弹出常驻上拉面板;可通过再点一次、点击外部或按
Esc关闭。 - 词条分为两个桶:
- 全局:所有工作区共享。
- 当前项目:按工作区目录隔离。
- 面板提供全部、全局、当前三档显示范围切换。
- 点击词条后,词条追加进输入框,保留焦点,并保留一个撤销步。
- 点击词条后面板不关闭,可连续点击多条插入。
- 在当前项目模式下,支持将词条一键添加到全局。
- 悬停词条行尾可删除词条。
- 长词悬停时,会慢速流动显示完整内容。
- 词库保存在浏览器
localStorage,按浏览器 profile 隔离。 - 跨工作区、跨标签页通过
storage事件同步。 - bundle 为纯 JS,无构建步骤。
安装与启用¶
前置条件是环境中已有 DeepSeek Harness dsh web,并且 pnpm 在 PATH 上。dsh plugin 命令会转发给 pnpm。
安装命令:
dsh plugin --profile web add dsh-wordbox
执行完成后,重启 dsh web。重启后输入框右侧会出现「词」按钮;英文界面中显示为 W。
典型用法¶
- 点击输入框右侧的「词」按钮,面板上拉并保持打开。
- 在面板底部右侧切换显示范围:全部、全局、当前。
- 点击某个词条,该词条会追加进输入框。
- 如果还需要继续插入,可连续点击多条词条。
- 悬停词条行尾,出现
×删除按钮,点击可删除该词条。 - 在「当前」模式下,悬停词条行尾会出现添加到全局的按钮,用于将当前项目词复制到全局。
- 如果词条过长,悬停时会慢速流动显示完整内容。
数据、卸载与同步¶
词库保存在浏览器 localStorage 中。卸载插件不会删除这些数据。
卸载命令:
dsh plugin --profile web remove dsh-wordbox
执行后重启 dsh web,输入框右侧的「词」按钮会消失。
如果确认要清空本地词库,可删除以下浏览器 localStorage 键:
dsh.common-word-box.words.v1
dsh.common-word-box.words.project.v1
dsh.common-word-box.mode.v1
数据按浏览器 profile 隔离。跨工作区、跨标签页同步通过 storage 事件完成。
开发与更新¶
- 修改
lib/client.js后,宿主client-hmr会轮询 bundle 哈希,变化后自动热重载。 - 首次安装、卸载或修改
cordis.patch.yml后,需要重启dsh web。 - bundle 是纯 JS,没有构建步骤。
- 个别情况下,执行
remove后profiles\web\node_modules\dsh-wordbox可能残留空目录或链接;手动删除即可,不影响功能。
适用场景与注意¶
dsh-wordbox 适合以下情况:
- 在
dsh web对话中频繁插入相同短语、提示词片段或术语。 - 需要区分全局常用词和当前项目常用词。
- 希望词库按浏览器 profile 保存,并在同一浏览器 profile 内跨工作区、跨标签页同步。
- 需要在一个面板里连续插入多条内容,减少复制粘贴。
使用注意:
- 插件会作为 DSH 客户端插件,以当前
dsh进程可用权限参与运行。安装前建议检查源码与 MIT 许可证。 dsh plugin依赖pnpm,需要保证pnpm在 PATH 上。- 卸载不会清空浏览器
localStorage中的词库数据。 - 首次安装、卸载或修改
cordis.patch.yml后需要重启dsh web。 - 修改
lib/client.js后无需重启,由宿主client-hmr自动热重载。
链接¶
GitHub 仓库:https://github.com/arcmosin/dsh-wordbox