前言¶
做 DSH 插件的同学大概都有这个体会:助手跑着跑着,对话记录里的”记一下”越来越多,可这些内容要么被塞进对话上下文,要么被某个带锁定格式的笔记工具接走,回头想用 grep 或者外部编辑器整理,成本不低。
void0042/dsh-record-manager 就是针对这个痛点的插件。它把笔记直接写成磁盘上的 .txt / .md 文件,放在自己指定的目录里,并提供侧边栏面板、独立窗口和 Agent 工具三种入口。下面介绍它。
这是什么¶
一句话定位:DSH 的外置笔记插件,维护者 void0042,分类归在”记忆”。解决的问题是让笔记有真实文件归属,而不是锁在某个私有格式里。
- 笔记是磁盘上真在的
.txt/.md,可以随时用外部编辑器打开。 - 不依赖特定软件的数据格式,目录结构、文件内容都属于用户自己。
- 进程运行时,插件以当前 DSH 进程的权限访问文件系统和网络,装之前应当先检查源码。
核心功能¶
只写 README 中明确列出的能力:
- 侧边栏面板:在 DSH Web 界面里浏览、编辑、搜索笔记。
- 独立窗口(popout):通过
/dsh-record-manager/popout单独打开一个编辑器窗口。 - Agent 工具
record_note:对助手说”记一下:…”即可追加到每日流水。 - 每日流水:追加时自动按
MMDD:分区并自动编号,跨天自动新起分区。 - 全文搜索:支持大小写敏感 / 正则 / 全词匹配。
- 回收站:删除操作等于移入
<root>/.trash,可以恢复。 - 冲突保护:保存时比对 mtime,如果文件在外部被修改,会提示重新加载或覆盖。
- 目录可配置:配置写入
root目录下的.dsh-record-manager.json,界面里可以随时切换。 - 中英双语。
安装与启用¶
README 给出的是本地插件方式,不依赖 npm 发布。
第一步,拉取仓库:
git clone https://github.com/void0042/dsh-record-manager.git
第二步,把整个目录放到 DSH profile 的 node_modules 下,例如:
~/.dsh/profiles/desktop/node_modules/dsh-record-manager
第三步,让 DSH 加载它的挂载声明 cordis.patch.yml。DSH 启动时会合并这个 patch。重启 DSH 后,侧边栏会出现「外置笔记」面板。
默认配置下,挂载声明里不写 root,笔记会存到用户主目录下的 dsh-notes 文件夹。要指定别的目录,可以编辑 cordis.patch.yml 的 config.root,或者在插件「设置」里改,设置会持久化到记录目录下的 .dsh-record-manager.json。
配置项¶
| 配置项 | 位置 | 说明 |
|---|---|---|
root |
cordis.patch.yml 的 config.root / 插件设置页 |
笔记根目录,默认 <用户主目录>/dsh-notes |
dailyFile |
cordis.patch.yml 的 config.dailyFile |
每日流水文件名,默认 日常/记录.txt |
典型用法¶
日常记录可以直接用自然语言驱动 Agent 工具,不需要手动打开面板:
- 对助手说”记一下:…”,
record_note会把内容追加到当日的流水分区。 - 需要写较长的内容时,从侧边栏面板进入编辑器,或者开一个
/dsh-record-manager/popout独立窗口。 - 需要检索历史笔记时,用面板里的全文搜索,支持大小写敏感、正则和全词匹配三种模式。
- 误删的文件进
<root>/.trash,从这里恢复即可。
插件运行时,Host 侧在 index.js 中注册 HTTP 路由 /dsh-record-manager/api/* 和 Agent 工具 record_note。所以面板和独立窗口的增删改查,最终都落到这些接口上,但用户侧不需要直接调接口。
开发与平台¶
源码在 src/:src/client.js 是面板与编辑器的 React 实现,src/popout.js 是独立窗口入口。仓库里已经提供了 esbuild 构建产物 client.js / popout.js,无需构建即可使用。修改 src/ 之后需要重新生成:
npm install
# 重新构建前端产物(client.js / popout.js)
npm run build
# 或分开构建
npm run build:client
npm run build:popout
平台支持方面,README 明确说已在 Windows 上测试。打开文件夹、弹出窗口这类操作按平台分支:Windows 走 rundll32 / explorer.exe,macOS 走 open,Linux 走 xdg-open。其他平台未充分验证。
版本和许可证来自仓库的 package.json:版本 0.1.0,许可证 MIT。星标数按目录页当前显示为 0。
适用场景与注意¶
适合这几类用法:
- 希望笔记长期可被外部工具检索、编辑的用户,尤其是习惯 grep、Vim、VS Code 的人。
- 想让助手用自然语言追加每日记录,但不想让记录只在对话里流转的场景。
- 已有笔记目录结构,希望插件直接接管一段目录的团队。
需要注意的几点:
- 插件以当前 DSH 进程的权限运行,文件读写范围取决于你的进程身份和
root指向,装之前应检查源码与许可证。仓库许可证为 MIT。 - 默认
root是用户主目录下的dsh-notes,不修改配置就会写那里,请确认没有指向生产数据目录。 - 仓库目前在 Windows 上验证过,macOS 和 Linux 的打开文件夹、弹窗口行为有分支代码,但未充分验证,其他平台建议先小范围试用。
- 冲突保护依赖 mtime,同一文件被多个窗口同时编辑过的情况下,保存前注意看提示。
结尾¶
这个插件的价值不在于功能多,而在于把”记忆”落回到文件本身:目录、文件名、内容格式都归用户,插件只是提供编辑、搜索和 Agent 追加的入口。对于想把 DSH 的对话产出沉淀成可维护文本的人,它是够用且轻量的选择。
- SkillHub 目录页:https://www.skillhub.cn/plugins/void0042/dsh-record-manager
- GitHub 仓库:https://github.com/void0042/dsh-record-manager