前言¶
在 DSH 里做侧栏工具时,常见做法是把数据塞进某个后端、再走接口读写。这类方案写起来省事,换来的是额外的服务、账号和同步逻辑。如果你要的东西只是「把今天写的东西落到本地文件」——比如日记——那整套就偏重了。
peiqinyi/dsh-diary 走的是另一条路线:给 Harness 侧栏加一本日记,一天一篇,按月历翻,写完自动存成纯文本 Markdown 文件。插件自己不做账号、不做云同步,也不做 AI 代写,数据落在 ~/Documents/日记/,离开插件照样能读。下面介绍它的安装、用法和数据格式。
这是什么¶
一个 DeepSeek Harness 插件,由 PeiQinyi 维护,仓库地址 https://github.com/PeiQinyi/dsh-diary ,目录页在 https://www.skillhub.cn/plugins/PeiQinyi/dsh-diary 。分类是「记忆」。解决的问题很窄:在 Harness 界面里有一个顺手的日记入口,落盘格式统一,文件归用户自己所有。
package.json 里版本是 0.1.0,private: true,License 是 MIT(© 2026 Pei Qinyi)。
核心功能¶
README 列了五项能力:
- 写:整页书写,停手 0.7 秒自动保存,回车就是普通换行(不是提交)。
- 翻:月历导航,有记录的日子打点,「今天」一键回今日。
- 找:
Ctrl+K全文搜索。 - 看:连续记录天数、本月与累计篇数、总字数。
- 拿得走:数据默认在
~/Documents/日记/2026.md,一年一个 Markdown 文件。
配套的键位:Ctrl+K(macOS ⌘K)全文搜索,Ctrl+S 立即保存,Esc 关闭搜索。右上角还有「导出」,把所有日记合成一个 Markdown 文件下载。
侧栏图标在「插件」「日程」下面,装好即出现。
安装与启用¶
仓库根目录就是插件包本身,不需要构建。README 给了三种装法,都用 plugin_manager 的 install_bundle,target 填对应的值。
第一种,从 GitHub 装(建议锁 commit,避免上游改动悄悄改变行为):
git+https://github.com/PeiQinyi/dsh-diary.git#<commit>
第二种,本地目录:先 git clone,再让 install_bundle 的 target 指向该目录的绝对路径。
第三种,直接拷贝:把整个目录放到任意位置,同样用绝对路径安装。
配置数据目录有两种方式:设环境变量 DSH_DIARY_DIR,或改插件内 cordis.patch.yml 的 config.directory。数据目录与插件代码完全分开,卸载或升级插件都不会动日记。
注意,这个插件以当前 DSH 进程权限运行,会读写你指定的本地目录。安装前建议先过一遍源码,确认 index.js、lib/route.js、cordis.patch.yml 的行为符合预期。
典型用法¶
打开日记页的流程:
- 点侧栏的笔记本图标打开日记页。
- 光标直接落在正文里,写字即可;停手 0.7 秒自动保存。
- 左侧月历点日期切换,
‹ ›翻月,「今天」回到今日。 - 需要查旧内容时按
Ctrl+K全文搜索,改完按Ctrl+S立即保存。
数据格式是固定的,一年一个文件:
# 2026
## 2026-11-03
> ⛅ 多云 · 🥱 疲惫
今天……
几点要留意:
## YYYY-MM-DD是唯一的结构锚点,其余内容按原样保存。- 心情/天气是紧跟标题的引用行,数据由 emoji 承载,后面跟的中文只是装饰,改成
rain · exhausted也能读回。 - 旧格式
<!-- {"mood":...} -->仍能读,下次保存时自动改写为引用行。 - 行首空白在保存时去掉,正文一律顶格;空行两侧和纯空白行会被规整。
- 第一个日期标题之前的内容算「序言」,写入时原样保留。
- 每次写入前,上一版留在
<年>.md.bak;正文写空且没选心情/天气时,该日条目整条删掉。 - 写入是原子的:临时文件加 rename,避免半截文件。
代码结构与开发¶
插件分 Host 半和浏览器半:
| 文件 | 作用 |
|---|---|
index.js |
Host 入口:解析目录、注册路由 |
lib/store.js |
年文件读写、解析、搜索、统计、导出(纯 Node,可独立测试) |
lib/route.js |
POST /dsh-diary/api,按 action 分发,走宿主鉴权 |
client.js |
浏览器半:侧栏图标 + 整页界面 |
test/store.test.mjs |
存储层测试 |
PLAN.md |
产品与格式的决策记录 |
改完代码后的验证与重装:
# 语法检查 + 存储层测试(30 项)
node --check index.js
node --check client.js
node --check lib/store.js
node test/store.test.mjs
# 改完重新安装(profile 内生效)
# plugin_manager install_bundle,target = 本目录
改 index.js(Host 半)需要重启 Harness 才会重新加载;改 client.js 后一般刷新页面即可,没生效再重启。
适用场景与注意¶
适合想在 Harness 里顺手记点东西、又不接受把日记交给云端或 AI 代写的人。它只做纯文本,不碰富文本、图片、标签、多日记本。想同步的话自己把目录放进 OneDrive / iCloud。单个年文件在极端量级(一年几十万字)会变慢,届时需要拆分——README 把这一条列在已知边界里。
README 记了几个明确的设计取舍,正好解释它为什么简单:一年一个文件而不是一天一个(几百个小文件不好翻、不好备份);纯文本优先,正文就是 Markdown 原文,不做富文本也不做预览层,离开插件能读;不碰内容生成,只负责记录与回收,不代写、不润色、不摘要;写入原子化,旧版本留 .bak。
如果你需要的是带标签体系、富文本或云同步的日记工具,这款不合适;如果只是需要一个留在本地、格式稳定的落盘点,它是够用的那个。
来源与链接¶
- 目录页:https://www.skillhub.cn/plugins/PeiQinyi/dsh-diary
- GitHub:https://github.com/PeiQinyi/dsh-diary