前言¶
做知識庫問答或日常用 DSH 處理筆記時,一個常見阻礙是:模型不知道 vault 裏有哪些文件,用戶也記不住完整的 @ 引用路徑。手工在終端跑 find、ls 取目錄結構,再把路徑敲進輸入框,步驟重複且容易出錯。
Obsidian Catalog(dsh-plugin-obsidian-catalog)把這個流程收斂到一個會話視圖裏:宿主側直接讀盤上的 vault 目錄,面板按文件夾分組展示筆記,並帶一鍵複製 @絕對路徑。下面介紹它的定位、能力、安裝方式和使用注意點。
這是什麼¶
Obsidian Catalog 是一個 DeepSeek Harness bundle,由 scy88866-beep 維護,把 Obsidian vault 渲染成一個實時目錄面板,掛在會話視圖(conversation view)上。它解決的問題是兩件事:一是讓模型和用戶都能看到 vault 的內容結構,二是讓引用路徑從「手敲」變成「點一下」。
面板在宿主側直接讀取磁盤上的 vault 目錄,展示筆記標題、字數、相對修改日期、標籤,以及每篇筆記的標題大綱(前三級標題)。每個筆記行和文件夾行都帶一鍵 @絕對路徑 複製按鈕,vault 本身可以在面板內切換,不需要爲第二個 vault 再裝一次插件。
核心功能¶
下面按面板呈現的順序介紹。
- 目錄樹:分組跟隨 vault 的目錄結構,每組顯示筆記數;組和筆記可獨立摺疊,面板頂部兩個按鈕可一次性全部摺疊或展開。
- 搜索:按標題、完整路徑、標籤和標題文本過濾,搜索時自動展開所有命中項。
- 筆記統計:CJK 字符加拉丁文單詞數、相對修改日期、以及從 frontmatter 讀取的標籤。
- 標題大綱:展示每篇筆記的前三級標題,按層級縮進,去掉開頭的
#;與筆記標題完全相同的標題會跳過。 @路徑複製:筆記行上的「複製 @ 路徑」複製@D:\Notes\MyVault\folder\note.md;文件夾行上的「@ 引用文件夾」複製@D:\Notes\MyVault\folder(vault 根目錄複製@D:\Notes\MyVault)。兩處都會在原位閃一下確認。- Vault 切換:「選擇倉庫」打開目錄瀏覽器,可以粘貼路徑後點
Go,用.. 上級逐級返回,或直接選盤符;看起來像 vault 的目錄(含.obsidian文件夾)會被標記,「使用此目錄」切換後會記住選擇。 - 刷新:支持按需重掃,並每 15 秒輪詢一次;未變更的筆記走
mtime + size緩存。
安裝與啓用¶
官方安裝命令如下:
dsh plugin --profile web add dsh-plugin-obsidian-catalog
如果插件沒有出現,重啓 DeepSeek Harness,然後打開一個會話,在會話視圖切換器裏選擇「知識庫目錄 / Obsidian Catalog」。
也可以不走 npm,直接從 checkout 安裝:
plugin_manager { action: "install_bundle", target: "<absolute path to this repository>" }
要求 DeepSeek Harness 0.2.x。
Vault 的選擇順序¶
面板按下面的順序決定讀哪個 vault:
~/.dsh/obsidian-catalog.json,由「使用此目錄」寫入,格式爲{ "vault": "D:\\Notes\\MyVault" }- 環境變量
DSH_OBSIDIAN_VAULT - 兜底目錄
<home>\obsidian
刪除配置文件會回到兜底目錄。
HTTP 路由¶
bundle 在宿主 webServer 服務上註冊了三條路由。除 vault 切換外都只讀,並且都限定在所選 vault 內的 markdown 文件:
| Method and path | Purpose |
|---|---|
GET /api/obsidian-catalog |
Selected vault 的快照:筆記、標籤、標題、字數 |
GET /api/obsidian-catalog/dirs?path= |
目錄瀏覽:path 爲空時列出盤符,否則列出子目錄及各目錄是否爲 vault |
POST /api/obsidian-catalog/vault |
{ "path": "D:\\Notes\\MyVault" } — 校驗目錄、掃描,然後持久化選擇 |
實現結構¶
| File | Purpose |
|---|---|
index.js |
Host side:註冊三條路由、掃描 vault、按 mtime + size 緩存 |
client.js |
Client side:通過 window.__ModuleLoader__.load(...) 在 conversation.view 上註冊 obsidian-catalog 視圖 |
cordis.patch.yml |
- insert: [{ id: obsidian-catalog, name: dsh-plugin-obsidian-catalog }] |
locale/*.json |
中文和英文的標題與描述 |
screenshots.json |
Storefront 截圖,相對本文件 |
面板只使用 --dsw-alias-* 主題令牌,因此會跟隨當前淺色或深色主題。
適用場景與注意¶
適合自己維護 Obsidian vault、並且希望在 DSH 會話裏直接引用筆記的用戶;對需要在多個 vault 之間頻繁切換的場景,面板內的切換機制比重裝或改配置省事。
需要注意幾點。插件以當前 DSH 進程的權限運行,安裝前應檢查源碼與許可證(MIT)。面板對 vault 只讀,只做 stat 和讀取,不寫文件;字數口徑爲 CJK 字符加拉丁文單詞,正則 [A-Za-z][A-Za-z0-9'’\-]*;掃描限制爲每輪最多 12 層目錄、5000 個 markdown 文件。README 中每張截圖都來自一個合成的六篇筆記演示 vault,不含真實筆記、路徑或賬號名。
結尾¶
Obsidian Catalog 的價值在於把「看目錄」和「複製引用」這兩步併到一個會話視圖裏。需要試的可以直接裝,vault 路徑也可以先用環境變量指定。
目錄頁:https://www.skillhub.cn/plugins/scy88866-beep/dsh-plugin-obsidian-catalog
GitHub:https://github.com/scy88866-beep/dsh-plugin-obsidian-catalog