DeepSeek Harness 的 web GUI 提供了插件扩展能力,但针对特定界面的微调或调试,往往需要编写专门的插件。dsh-snippets 插件解决了管理这些 CSS 和 JavaScript 代码片段的需求,允许在不修改 harness 源码的情况下,对界面进行快速、可复用的调整。
核心功能¶
该插件为 web GUI 提供了一个集中的代码片段管理面板,具备以下能力:
- 片段管理:通过 CSS 和 JS 两个选项卡管理代码,支持搜索(标题或代码)、添加、编辑、复制、删除以及拖拽排序。
- 代码编辑:集成 CodeMirror 6 编辑器,支持行号、语法高亮、括号匹配、代码折叠以及搜索/替换功能。编辑 CSS 时支持实时预览。
- 文件监听:支持监听本地文件夹中的
.css和.js文件,将其自动同步到插件库中。 - 库导入导出:支持将整个片段库导出/导入为 JSON 文件,并在导入前自动创建备份。
- GitHub Gist 同步:支持通过 GitHub Gist API 同步片段,提供合并更新、镜像覆盖或仅添加三种模式。
- 即时应用:界面中提供“重载界面”按钮,用于立即应用 CSS 更改。
安装与启用¶
安装前请确保 DeepSeek Harness 版本为 0.1.7-rc.1 或更高(0.1.7 重写了设置行,旧版本不支持)。
dsh plugin --profile web add github:zhang24xiao/dsh-snippets
安装完成后,重启 web GUI。对于本地开发,也可以使用链接安装:
git clone git@github.com:zhang24xiao/dsh-snippets.git
dsh plugin --profile web add link:$PWD/dsh-snippets
使用方法¶
安装并重启后,侧边栏底部的 </> 图标(位于“设置”行上方)会打开管理面板。在官方的“插件”管理页面中,该插件也会显示一个折叠的设置卡片。
编辑片段后,点击界面上的“重载界面”按钮以应用 CSS 更改。若进行本地开发,可在插件目录下运行:
pnpm install
pnpm run watch
注意事项¶
- JS 运行机制:JS 代码片段在页面加载后执行,不运行在沙箱中,行为与在浏览器控制台粘贴代码一致。这属于“信任即拥有”的机制,请仅启用可信代码。
- 安全限制:插件提供的 API 端点仅接受回环请求(loopback),无法通过网络访问。
- Token 存储:GitHub Gist 的访问令牌存储在本地文件
$DSH_HOME/dsh-snippets/gist-token.json中,权限为 0600,不会暴露给浏览器或发送到设置文档中。 - 卸载行为:卸载插件会移除所有注入的
<style>元素,但已执行的 JS 代码无法被撤销。