dsh-record-manager:把 DSH 的筆記落到磁盤上的 .txt/.md

前言

做 DSH 插件的同學大概都有這個體會:助手跑着跑着,對話記錄裏的”記一下”越來越多,可這些內容要麼被塞進對話上下文,要麼被某個帶鎖定格式的筆記工具接走,回頭想用 grep 或者外部編輯器整理,成本不低。

void0042/dsh-record-manager 就是針對這個痛點的插件。它把筆記直接寫成磁盤上的 .txt / .md 文件,放在自己指定的目錄裏,並提供側邊欄面板、獨立窗口和 Agent 工具三種入口。下面介紹它。

這是什麼

一句話定位:DSH 的外置筆記插件,維護者 void0042,分類歸在”記憶”。解決的問題是讓筆記有真實文件歸屬,而不是鎖在某個私有格式裏。

  • 筆記是磁盤上真在的 .txt / .md,可以隨時用外部編輯器打開。
  • 不依賴特定軟件的數據格式,目錄結構、文件內容都屬於用戶自己。
  • 進程運行時,插件以當前 DSH 進程的權限訪問文件系統和網絡,裝之前應當先檢查源碼。

核心功能

只寫 README 中明確列出的能力:

  1. 側邊欄面板:在 DSH Web 界面裏瀏覽、編輯、搜索筆記。
  2. 獨立窗口(popout):通過 /dsh-record-manager/popout 單獨打開一個編輯器窗口。
  3. Agent 工具 record_note:對助手說”記一下:…”即可追加到每日流水。
  4. 每日流水:追加時自動按 MMDD: 分區並自動編號,跨天自動新起分區。
  5. 全文搜索:支持大小寫敏感 / 正則 / 全詞匹配。
  6. 回收站:刪除操作等於移入 <root>/.trash,可以恢復。
  7. 衝突保護:保存時比對 mtime,如果文件在外部被修改,會提示重新加載或覆蓋。
  8. 目錄可配置:配置寫入 root 目錄下的 .dsh-record-manager.json,界面裏可以隨時切換。
  9. 中英雙語。

安裝與啓用

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
羽毛球分组比赛记分
小程序二维码

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

小夜