dsh-file-mentions:讓 DSH 回覆中的文件路徑可點擊打開

前言

在 DeepSeek Harness(DSH)裏和智能體協作時,回覆裏經常出現文件路徑:相對路徑、絕對路徑,或帶 ~/ 的主目錄寫法。官方渲染器會把 URL 自動變成鏈接,但本地路徑通常只是普通文本,複製後再去文件管理器或終端裏打開,多一步操作。

下面介紹社區插件 dsh-file-mentions(維護者 a903067276-rgb)。它把反引號包裹的路徑變成可點擊的行內鏈接,並在回合末尾彙總「mentioned files」芯片列表,交互方式接近 Codex 風格。插件爲零依賴實現,歸類爲 DSH 客戶端插件,當前 GitHub 星標 11、fork 3,採用 MIT 許可證。

這是什麼

dsh-file-mentions 是一個 DSH web 插件(bundle + client,見倉庫根目錄 package.json)。核心能力有三塊:

  1. 行內路徑點擊:用系統默認應用打開文件,或打開所在目錄。
  2. 路徑旁文件夾按鈕:在文件管理器中定位(reveal)。
  3. 回合末尾「mentioned files」芯片列表:點擊文件名可在 DSH 內預覽內容;列表中的文件夾按鈕同樣可 reveal。

URL 仍由官方渲染器處理,本插件不改動 URL 行爲。項目爲社區成員獨立維護,非 DeepSeek 官方產品。

核心功能

插件把反引號包裹的路徑識別爲可交互對象,支持 ~/ 展開、相對路徑(相對當前會話工作目錄解析),以及 macOS / Linux / Windows 形式的絕對路徑。路徑不存在時靜默忽略,不會報錯打斷閱讀。

交互位置 操作 效果
行內路徑文本 點擊 用默認應用打開文件,或打開目錄
行內路徑後的文件夾圖標 點擊 在文件管理器中 reveal
「mentioned files」芯片 點擊名稱 在 DSH 內預覽文件內容
芯片列表中的文件夾圖標 點擊 在文件管理器中 reveal
行內 URL 點擊 由官方 autolink 在瀏覽器中打開

路徑可見範圍: 用戶主目錄下的本地文件默認可點擊,無需配置。外置盤或網絡卷(例如 macOS 上的 /Volumes/USB)需在外置盤白名單中登記根路徑,一行一個。系統盤保護會自動拒絕包含 /System/etc 或 Windows 下 \Windows 等標記目錄的白名單根路徑。

平臺: macOS 已完整測試(含中文路徑);Linux 與 Windows 尚未在倉庫中完整驗證,但已實現對應命令分支與路徑解析。

與官方能力的關係: 行內點擊依賴智能體用反引號包裹路徑(與 Codex 輸出約定一致),正文裏未加反引號的裸路徑不會變成可點擊。官方的「produced files」列表與本插件可共存:官方有輸出時優先顯示官方列表,否則由本插件展示 mentioned files 列表。

安裝與啓用

插件通過 DSH 官方 profile 管理器安裝,倉庫爲 bundle 插件(dsh.bundle + dsh.client)。安裝前需確保 pnpm 在 PATH 中(dsh plugin 會轉發到 pnpm)。

dsh plugin --profile web add "github:a903067276-rgb/dsh-file-mentions#main"

安裝完成後需要重啓 dsh web。bundle 層在啓動時組裝,熱更新(HMR)不會生效。

版本兼容(README 說明,盡力維護,不保證覆蓋所有 DSH 版本):

  • 要求 DSH web >= 0.1.0-rc.6(例如 npx @deepseek-ai/dsh web)。
  • DSH 0.1.0-rc.6 及更新版本(含 0.1.1-rc.1/rc.2):默認使用 main 分支。
  • 保守回退:DSH 0.1.0-rc.7/rc.8 可安裝 #v1.0.8;DSH 0.1.0-rc.6 可使用凍結標籤 rc6-compat(不再維護)。
dsh plugin add github:a903067276-rgb/dsh-file-mentions#v1.0.8

手動掛載方式見倉庫 docs/install.md。注意:官方 bundle 安裝與手動掛載只能選其一;手動掛載時 ~/.dsh/cordis.patch.yml 只能有一條入口,重複註冊會導致路由衝突。

社區目錄頁:SkillHub — dsh-file-mentions。SkillHub 爲獨立社區站點,與 DeepSeek / 幻方無官方從屬關係。

典型用法

讓智能體在回覆裏用反引號包裹路徑,行內即可點擊,末尾芯片列表會自動出現,無需額外配置。

示例(智能體輸出):

請查看 `~/docs/plan.md` 和 `./src/index.js`。

點擊 `~/docs/plan.md` 會用系統默認應用打開該文件;點擊路徑旁文件夾圖標會在文件管理器中定位。

外置盤路徑: 若路徑位於主目錄之外(例如 /Volumes/USB/project/readme.txt),打開 DSH 設置 → Plugins → file-mentions,在外置盤白名單中添加 /Volumes/USB,保存後立即生效,無需重啓。

適用場景與注意

適合誰: 經常在 DSH web 裏閱讀帶本地路徑的智能體回覆、希望少複製粘貼一步的開發者。macOS 用戶可直接按 README 預期使用;Linux / Windows 用戶可先試用,遇到問題可向倉庫提 issue 或 PR。

運行權限: 打開文件、reveal 目錄等操作通過插件宿主路由(/api/file-mentions/open 等)調用系統命令完成,以當前 dsh 進程的用戶權限執行。安裝前建議閱讀 源碼MIT 許可證,確認行爲符合你的安全預期。路徑探測與白名單校驗在同源守衛下進行,使用 Node 標準庫與 execFile,避免 shell 注入。

實現概要(便於排查問題): 宿主 lib/index.js 提供存在性檢查、打開/reveal、白名單讀寫三條 API;客戶端 lib/client.js 從對話事件中收集路徑、用 document 級點擊委託處理行內點擊,並用 MutationObserver 在 React 重渲染後恢復文件夾按鈕。詳見 docs/architecture.md

結尾

dsh-file-mentions 把 DSH 回覆裏反引號路徑變成可點擊的行內鏈接,並用 mentioned files 芯片列表兜底彙總,適合需要頻繁跳轉本地文件的 DSH web 用戶。當前版本 1.0.11。

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

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

小夜