dsh-sticky-notes: A Sticky Note Plugin with Markdown Rendering for DSH

前言

用 DSH 跑智能体流程时,常需要在对话旁边随手记东西:待办、字段样例、一段要反复贴进去的 prompt。系统里没有对应的工具,多数做法是另开一个窗口或切到别的笔记软件,记完再粘回来。dsh-sticky-notes 走的是另一种路子——在 Web UI 里加一块旁挂的浮动便签窗,不离开对话界面就能记和查。下面介绍这个插件。

这是什么

dsh-sticky-notes 是 DeepSeek Harness(DSH)的便签插件,由 stallenlu 维护,分类为客户端(client-side)。它提供一个可拖动的浮动便签面板、一个侧边栏完整页面,支持 Markdown 预览、粘贴图片和设置项。插件版本 1.0.7,要求 DSH >= 0.2.0-rc.1(在 0.2.1-rc.5 桌面版开发与实测),许可证 MIT,GitHub 星标 0 星,创建于 2026-11-04。

数据全部存在浏览器 localStorage,没有 Host 侧逻辑。

核心功能

  1. 浮动便签窗:屏幕右侧中部悬浮标签,带便签计数徽章;点击展开面板,标题栏可拖动,位置持久化,换分辨率后自动收回视口内。
  2. 完整页面:左侧边栏点便签图标进入完整页面,与浮窗共享同一份数据,改一处另一处即时同步。
  3. Markdown 预览:用宿主的 MarkdownText 渲染便签;点击预览区切回纯文本编辑,失焦后回到预览。
  4. 粘贴图片:在便签文本框里 Ctrl+V 粘贴图片即附加,缩略图右上角 × 单独移除。
  5. 设置项:浮窗 ⚙ 和完整页面都有设置区,共 7 项(见下节)。
  6. 跨窗口同步:便签与设置都监听 storage 事件,多窗口各视图保持一致。
  7. 数据健壮性:存储损坏时不覆盖原数据,只给出警示,用户真实编辑后才授权写回;写入失败提示「仅保留到关闭页面」。
  8. 双语:跟随宿主语言服务,宿主未提供时回退浏览器语言,中文环境显示中文。

设置项

设置走设置区,不需要改配置文件。

设置 类型 默认 说明
浮动面板 开关 开 是否显示屏幕右侧的浮动标签
侧边栏入口 开关 开 是否在左侧边栏显示便签图标(设置页始终可达)
Markdown 预览 开关 开 关闭后所有便签退回纯文本编辑框
计数徽章 开关 开 浮动标签上的便签数量
面板宽度 数字 320 240–560 像素,越界自动收拢
便签排序 下拉 最新的在前 最新的在前 / 最旧的在前,浮窗与页面共享
删除全部便签 按钮 — 需二次确认

存储与限制

插件不建自己的存储方案,直接写 localStorage 的三个键:

dsh-sticky-notes:v1      便签列表([{id, text, images, updatedAt}])
dsh-sticky-notes:settings  设置项
dsh-sticky-notes:pos     浮窗位置

图片限制:每条便签最多 8 张,单张 ≤700KB(以 data URL 存储,单条最坏约 5.6MB);读取时会清洗非 data:image/ 的值并截断到 8 张。数据只在本地浏览器,不跨设备同步。

安装与启用

按 README 的做法,把包放到任意位置,然后在 $DSH_PROFILE_DIR/package.json 里加依赖和 bundle:

{
  "dependencies": {
    "dsh-sticky-note-panel": "link:C:/path/to/dsh-sticky-note-panel"
  },
  "dsh": {
    "profile": {
      "bundles": ["dsh-sticky-note-panel"]
    }
  }
}

bundle 自带的 cordis.patch.yml 会插入插件行 ui-sticky-notes,不需要再改 profile 的 patch 文件。所以这里的步骤是:先放好包,再改 profile 的 package.json,然后重启 DSH。

生效规则不一样,别混在一起:

  1. link: 依赖是符号链接,改 client.js 这类代码后刷新页面即生效。
  2. 改 manifest(package.json / cordis.patch.yml)后必须重启 DSH。

典型用法

装好之后不需要额外指令,插件自己注册三个界面位置。实际用法就三步:

  1. 对话时屏幕右侧的浮动标签上有便签数量,点开是便签面板;标题栏按住即可拖动,拖到的位置会记住。
  2. 想记长内容时点左侧边栏的便签图标进完整页面,清里写 Markdown,失焦后自动渲染预览;点击渲染结果又切回可编辑的纯文本。
  3. 需要截图做素材时直接在文本框 Ctrl+V,图片存成缩略图,右边 × 可单独删,不想要的图不必整条便签删掉。

多开窗口时,任意一个窗口的增删改和设置改动,都会同步到其他窗口。

适用场景与注意

适合在 DSH 对话旁做轻量记录的人:临时待办、待确认的请求参数、想在对话里反复引用的片段。它不是知识库,不做跨设备同步,也不做全文检索,需要长期归档的内容还是该用别的工具。

几句提醒:

  1. 这个插件在浏览器里运行,用的是当前 DSH 进程和页面上下文,行为以插件源码为准,装前应看一眼源码和 MIT 许可证。
  2. 数据只存在当前浏览器,清浏览器数据等于清空便签;图片按 data URL 存,规格不小,别当成附件库用。
  3. 它是社区目录里收录的客户端插件,属于第三方项目,与 DeepSeek / 幻方没有官方从属关系,升级 DSH 大版本前建议先核对兼容性(README 标注的实测版本是 0.2.1-rc.5)。

结尾

dsh-sticky-notes 的定位很清楚:给 DSH Web UI 补一小块对话旁的记事区,浮动窗和完整页面共用一份数据,Markdown 渲染和图片粘贴都配齐,实现上不碰 Host、不建后端,全靠 localStorage 和宿主的运行时能力。功能不复杂,胜在装完即用、卸载干净。

插件目录页:https://www.skillhub.cn/plugins/stallenlu/dsh-sticky-notes
GitHub:https://github.com/stallenlu/dsh-sticky-notes

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

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

Xiaoye