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 格式說明。

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

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

小夜