前言¶
在 DeepSeek Harness (DSH) 的开发或使用过程中,经常需要在对话中标记关键信息或保存思考过程。手动复制粘贴不仅繁琐,还容易丢失上下文关联。下面介绍 dsh-session-notes,它通过在对话中高亮文本并附加便签,将信息持久化并聚合展示,解决了这一痛点。
插件概览¶
dsh-session-notes 是一个非官方项目,由社区成员 iptton-ai 独立开发与维护,采用 MIT 许可证。它利用 CSS Custom Highlight API 实现零 DOM 修改的高亮,支持三种作用域(会话、工作区、全局)的便签管理。
核心功能¶
插件提供了以下核心能力:
- 高亮与注释:支持跨加粗、行内代码及段落边界的选区。点击浮动按钮即可添加便签,选中文本获得持久高亮。
- 三种作用域:便签可归属于“本会话”、“当前目录”或“全局”。在面板中新建、编辑或删除,作用域内的便签在对应会话中可见。
- 面板过滤:右侧面板支持按“全部”、“当前目录”、“本会话”过滤,并显示实时计数。
- 发送到编辑器:将便签内容与引用原文追加到当前输入框,方便继续追问。
- 自愈高亮:通过 MutationObserver 监听 DOM 变化,每 5 秒进行一次 reconciliation,确保高亮在重渲染或分页后依然存在。
- 任务笔记与定时触发:支持创建带有
next(下一步动作)、doneWhen(完成条件)的任务便签,或设置dueAt(截止时间)的定时触发。前者可生成新会话,后者可自动触发。 - 起源丢失防御:插件会每 3 分钟轮询
session/list。当任务所属会话被删除时,自动降级为通知模式,并在面板中提供决策卡片,避免静默失败。
安装与启用¶
支持常驻模式和动态模式两种安装方式。
常驻模式(推荐)¶
这是推荐的方式,插件在 dsh web 进程重启后依然存在。
dsh plugin --profile web add github:iptton-ai/dsh-plugin-session-notes
或者使用本地路径:
git clone https://github.com/iptton-ai/dsh-plugin-session-notes
dsh plugin --profile web add /abs/path/to/dsh-plugin-session-notes
动态模式¶
无需构建步骤,插件仅在当前 dsh web 进程生命周期内有效。
- 打开 DSH,使用“创造模式”或带有
cordis_define/cordis_run工具的预设。 -
询问 Agent 安装:
帮我安装这个插件:仓库 https://github.com/iptton-ai/dsh-plugin-session-notes。用 cordis_define 定义(读取 src/host.js 作为 code.host、src/client.js 作为 code.client,plugin id 前缀 snote),然后 cordis_run 激活并批准。
-
刷新页面后即可使用。
配置注意事项¶
- 不要手动将
session-notes行插入到dsh.profile.bundles的cordis.patch.yml中,这会导致重复注册。 - 插件存储文件位于
~/.dsh/storages/session-notes/notes.json。
使用方法¶
- 在 DSH 会话的消息中选中任意句子。
- 点击浮动出现的 📝 记便签 按钮。
- 在弹出的输入框中写下笔记。
- 在右侧面板中,可以切换过滤视图(全部/当前目录/本会话)查看所有便签。
- 点击便签可查看详情,点击编辑可修改。
- 选中已高亮的文本,点击发送到对话框,即可将笔记内容追加到当前输入框。
注意事项¶
- 非官方项目:此插件由社区成员独立维护,不隶属于 DeepSeek 官方。
- 权限范围:插件在宿主端仅对自身的存储文件
~/.dsh/storages/session-notes/notes.json拥有danger-full-access权限,不会触碰其他路径。 - 数据持久化:常驻模式下数据持久化存储;动态模式下,若
dsh web进程重启,需重新运行安装命令,但磁盘上的笔记数据通常会被保留。