PeiQinyi/dsh-diary:DeepSeek Harness 侧栏里的一本本地 Markdown 日记

前言

在 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 列了五项能力:

  1. 写:整页书写,停手 0.7 秒自动保存,回车就是普通换行(不是提交)。
  2. 翻:月历导航,有记录的日子打点,「今天」一键回今日。
  3. 找:Ctrl+K 全文搜索。
  4. 看:连续记录天数、本月与累计篇数、总字数。
  5. 拿得走:数据默认在 ~/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 的行为符合预期。

典型用法

打开日记页的流程:

  1. 点侧栏的笔记本图标打开日记页。
  2. 光标直接落在正文里,写字即可;停手 0.7 秒自动保存。
  3. 左侧月历点日期切换,‹ › 翻月,「今天」回到今日。
  4. 需要查旧内容时按 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
羽毛球分组比赛记分
小程序二维码

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

小夜