dsh-notes:DSH Desktop 随手记与邮箱文件夹同步

前言

在 DSH Desktop 里做智能体开发或日常对话时,往往需要一个不离开侧栏的轻量记录入口:既能快速写下碎片想法,又能在多台机器上读到同一份内容。常见做法是依赖第三方笔记 SaaS 或自建同步服务,多一个账号、多一条数据出境路径。下面介绍社区插件 dsh-notes(维护者 liusaipu,分类「记忆」):在 DSH 左侧栏提供 flomo 风格的随手记,本地先落盘,再通过你自己的邮箱 IMAP 文件夹在多台 DSH Desktop 之间增量同步,不依赖中转服务器,也不要求 DSH 账号提供云存储。

这是什么

dsh-notes 是面向 DSH Desktop Web UI 的第三方插件(MIT 许可证,当前版本 1.1.0,engines.dsh 要求 ≥ 0.2.1-rc.5)。它在侧栏增加「随手记」页面:输入、标签、搜索、Markdown 渲染与图片插入;同步层把每条笔记的每次修订写成一封带自定义 MIME 头的小邮件,追加到邮箱专用文件夹(默认 DSH Notes),另一台电脑用同一邮箱按 UID 增量合并。社区目录页:https://www.skillhub.cn/plugins/liusaipu/dsh-notes;源码与说明:https://github.com/liusaipu/dsh-notes。

同步设计:本地优先、邮箱作修订日志

插件的同步思路可以概括为四步(与 README 一致):

  1. 每台机器先把状态写在本地 $DSH_HOME/storages/flomo/state.json,离线也能记。
  2. 每次修订对应一封邮件,放进 IMAP 文件夹。
  3. 其他设备登录同一邮箱后,按 UID 读取该文件夹,把邮件里的修订合并进本地。
  4. 冲突按 (updatedAt, deviceId) 做 last-write-wins;删除用墓碑标记,两端收敛到同一份记录。

连接邮箱时,插件用 IMAP 登录,在目标文件夹创建或复用 DSH Notes,写入一封带随机校验码的验证邮件并立即读回校验,通过后删除验证邮件并保存账号信息到本地。这一步同时验证账号、文件夹读写权限与网络,无需 SMTP,也不依赖「收一封验证码邮件」的流程。

邮件正文以可读快照形式存储,关键头字段包括 X-DSH-Memo、X-DSH-Kind、X-DSH-Note-Id、X-DSH-Note-Updated、X-DSH-Note-Device、X-DSH-Note-Deleted,内容为 base64 编码的 JSON(id / text / 时间戳 / revBy / deleted 等)。任意一封邮件可独立解读;重装或同步失败后重新扫描文件夹即可恢复。

核心功能

书写与检索

  1. 打开左侧栏「随手记」。
  2. 顶部输入框写内容,用 ⌘/Ctrl + Enter 或点「记下来」保存。
  3. 支持 Markdown 渲染(标题、列表、任务列表、引用、代码块、表格、链接等)以及 #标签 点击筛选。
  4. 支持搜索(README 列为能力之一)。

图片

插入方式:剪贴板粘贴(⌘/Ctrl + V)、工具栏选文件(可多选)、拖拽到输入或编辑框。图片在 Host 侧尽量压缩为 WebP(大图最长边 1600px,目标小于 900KB),存于 $DSH_HOME/storages/flomo/images/,笔记内以 ![图片](dsh-image:<id>) 引用,并随修订写入邮箱邮件。限制:单张解码后最大 1.5MB,单条笔记最多 6 张;不支持 SVG 直接上传。远程 http(s) 图片仅当前设备加载,不会写入邮箱;跨设备需用「插入图片」上传本地文件。

从旧插件导入

首次启动时若存在旧插件 notes-wall 的 storages/notes-wall.json,会导入其中笔记;旧数据文件不会被修改或删除。

安装与启用

安装方式以 README 为准,不要凭插件名臆造 dsh plugin add github:... 一类命令。DSH Desktop 需 ≥ 0.2.1-rc.5。

从 GitHub Release 安装(推荐给其他人)

Release:https://github.com/liusaipu/dsh-notes/releases/tag/v1.1.0

下载 dsh-notes-1.1.0.tgz 后,在 Plugins → Add plugin → Install a third-party plugin 中填写本地 tarball 的绝对路径,或直接粘贴资源 URL:

https://github.com/liusaipu/dsh-notes/releases/download/v1.1.0/dsh-notes-1.1.0.tgz

安装器支持 tarball URL 或本地路径,不需要 npm 或 GitHub 账号。若访问 GitHub 受限,可先下载再拷贝到目标机器。

拷贝 npm pack 产物

在已有源码的机器上打包后复制 tarball:

npm pack
# 得到 dsh-notes-1.1.0.tgz

在目标机器:Plugins → Add plugin → Install a third-party plugin → 填 tarball 绝对路径 → Install。

从 Git 仓库安装

在 Install a third-party plugin 中填写(将 <40 位 commit SHA> 换成固定提交):

git+https://github.com/liusaipu/dsh-notes.git#<40 位 commit SHA>

若插件位于仓库子目录,追加 &path:/flomo-notes。固定 commit 比跟踪 main 更可复现。

通过社区市场索引(可选)

DSH 的「Discover」依赖你自行添加的市场索引 URL,并非 DeepSeek 官方应用商店。较常用的第三方索引之一为 dsh.so:在 Plugins → More → Experimental plugins 打开 Custom plugin markets 后,可在 Index sources 添加 https://cdn.dsh.so/market/index.json 浏览安装;要让本插件进入该索引需按 README 向 dsh.so 提交公开仓库(含 dsh-plugin topic 等流程)。当前通过 Git / dsh.so 安装不需要 npm;npm 上 dsh-notes 名称已被占用,若未来发 npm 需改用自有包名。

典型用法:记一条并打开第二台同步

经过上面的安装步骤,日常使用可按下面顺序操作。

  1. 在 DSH Desktop 打开侧栏「随手记」,输入内容并保存。
  2. 点击标题栏齿轮,填写邮箱并连接:
    - Gmail:开启两步验证并使用「应用专用密码」。
    - iCloud:在 Apple ID 生成 App 专用密码,IMAP 服务器 imap.mail.me.com。
    - QQ / 163 / 126:在邮箱设置开启 IMAP 并使用「授权码」。
    - Outlook / Microsoft 365:README 注明目前微软限制密码方式登录 IMAP,暂不支持。
  3. 高级设置可改 IMAP 服务器、端口与同步文件夹名;服务器留空时按邮箱域名自动识别。
  4. 在第二台 DSH Desktop 用同一邮箱、同一文件夹连接,点「立即同步」或等待自动同步。

存储、安全与运维注意

  • 本地:state.json 权限 0600;图片仅在本机 images/ 目录。
  • IMAP 密码写入 DSH Credential 服务(DSH_FLOMO_IMAP_PASSWORD),不暴露给页面、也不写入笔记文件。
  • 笔记正文与图片会进入你的邮箱;请使用可随时撤销的应用专用密码,不要用邮箱主密码。
  • 每次编辑追加一封邮件;不要手动删除或移动同步文件夹里的邮件。停用同步请用插件「断开连接」,本地笔记保留。
  • 插件在 DSH 进程权限下运行;安装前应自行查看源码与 MIT 许可证,评估是否接受将笔记数据写入个人邮箱。

结尾

dsh-notes 把 flomo 式随手记收进 DSH 侧栏,用邮箱文件夹当跨设备的修订日志,适合已在用 DSH Desktop、又希望用自有邮箱做多机同步的开发者。进一步了解可从社区目录 https://www.skillhub.cn/plugins/liusaipu/dsh-notes 进入,或直接阅读仓库 https://github.com/liusaipu/dsh-notes 中的设计与 MIME 格式说明。

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

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

Xiaoye