前言¶
在 DeepSeek Harness(DSH)裏開發時,左側文件樹和聊天裏的文件鏈接是高頻入口:多數時候你只想在側邊欄裏快速預覽,但有時需要用系統默認編輯器打開、複製絕對路徑,或在資源管理器裏定位文件。宿主默認的左鍵預覽往往夠用,卻缺少「Ctrl+左鍵直開本地應用」和統一的右鍵菜單。社區維護者 Analoty 的 dsh-auto-click 是一類 客戶端 插件,專門在 DSH Web GUI 上爲這些場景補手勢和菜單,而不改寫左鍵預覽本身。
下面介紹它的定位、能力與安裝方式;事實以 GitHub 倉庫 README 爲準。
這是什麼¶
dsh-auto-click 是 DSH 的客戶端插件:在 Web GUI 側邊欄(以及聊天中的文件鏈接)上監聽鼠標操作,需要打開本地文件或複製路徑時,經 Host 半調用系統 API,並走 DSH 自身的請求信任柵欄與會話工作區路徑校驗。
- 維護者:Analoty
- 分類:客戶端(
dsh.client.platform: web,立即注入 UI 相關 slot) - 環境要求:DSH
>= 0.2.0-rc.1(見package.json的engines.dsh) - 當前 npm 版本(資料中明確):
0.1.3 - 許可:MIT
核心功能¶
鼠標手勢¶
| 操作 | 結果 |
|---|---|
| 左鍵單擊 | 在側邊欄打開文件預覽(宿主原有行爲,插件不干預) |
Ctrl + 左鍵單擊 |
用系統默認應用打開;沒有默認應用時彈出「打開方式」 |
| 右鍵單擊文件 | 彈出文件菜單 |
| 右鍵單擊普通鏈接 | 彈出「複製鏈接」菜單 |
文件右鍵菜單項¶
- 打開文件 — 系統默認應用打開
- 打開方式 — 調用操作系統自帶的「打開方式」選擇框(插件不維護自己的應用列表)
- 另存爲… — 通過瀏覽器下載保存副本
- 複製路徑 — 複製絕對路徑
- 複製文件內容 — 複製文件文本內容
- 在資源管理器中打開 — 在文件管理器中定位該文件
普通鏈接右鍵菜單¶
- 複製鏈接 — 複製
href原文(相對路徑也照原樣複製,不補站點前綴)
成功操作不彈提示(例如複製路徑時剪貼板即反饋);只有失敗或被拒絕時才提示。
平臺支持¶
- Windows:完整支持;「打開方式」通過 Shell COM(
Shell.Application→Item.InvokeVerb('openas'))實現。 - macOS:「打開方式」走
open -a。 - 其他平臺:可用,但「打開方式」會明確報告不支持。
在沒有交互式桌面的會話(部分遠程或服務模式)中,「打開方式」仍可能無法彈出對話框。
路徑與安全¶
文件可能來自左側文件樹、DSH 文件面板或聊天中的文件鏈接。聊天鏈接與樹節點攜帶的是工作區相對路徑,瀏覽器半會把當前會話 id 一併發送,由 Host 在該會話的工作區內解析。
沒有已知工作區時,相對路徑會被拒絕,而不是用進程目錄猜測——避免誤打開或複製同名但用戶未指向的文件。聊天 mention 形如 @"帶 空格 的 名字.md" 時,解析前會剝離 @ 與引號(提及語法標點,非文件名一部分)。
打開文件走 DSH 的 sessionController.openWorkspacePath,繼承宿主路徑校驗;Host 路由(如 /auto-click/open 等)經 connection.requestRejection,未認證或跨源請求在業務邏輯前被拒絕。
限制(README 明確)¶
- 「複製文件內容」和「另存爲」拒絕大於 8 MiB 的文件,不截斷。
安裝與啓用¶
從 npm 安裝。桌面版和 dsh web 是兩個獨立的 profile,裝在一個裏不會出現在另一個裏,按使用方式選命令。裝完後重啓對應進程(桌面版重啓應用,dsh web 重啓該命令)。
桌面版(DSH Desktop)¶
dsh plugin --profile desktop add dsh-auto-click
終端 dsh web¶
dsh plugin --profile web add dsh-auto-click
README 說明:dsh plugin 的參數會原樣透傳給 pnpm,<spec> 可以是包名、包名@版本 或 git 地址;命令動詞用 add。
從 GitHub 安裝(不經過 npm)¶
dsh plugin --profile desktop add github:Analoty/dsh-auto-click
本包爲純 JavaScript,無 prepare 構建步驟,從 git 直裝不會被 pnpm 的 allowBuilds 策略攔下。若使用 Web 終端,將 --profile desktop 改爲 --profile web 即可。
卸載¶
dsh plugin --profile desktop remove dsh-auto-click
dsh plugin --profile web remove dsh-auto-click
典型用法¶
- 在側邊欄文件樹上 左鍵 某文件:行爲與未裝插件時相同,仍在側邊欄預覽。
- 需要直接用 VS Code、PDF 閱讀器等打開時,對該節點 按住 Ctrl 再左鍵(macOS 上爲對應修飾鍵組合,以實現爲準)。
- 在聊天裏出現的文件鏈接上 右鍵,從菜單選擇「複製路徑」「複製文件內容」或「在資源管理器中打開」等。
- 對普通超鏈接右鍵,使用「複製鏈接」獲取原始
href。
倉庫 README 在 docs/screenshots/file-menu.png 提供了聊天文件鏈接右鍵菜單的截圖示例。
適用場景與注意¶
適合誰:日常在 DSH Desktop 或 dsh web 中頻繁從側邊欄和聊天跳轉本地文件、需要系統級「打開 / 打開方式 / reveal」的開發者。
安裝前建議:插件以當前 DSH 進程的權限運行,會通過 Host 調用系統 shell 與文件 API。安裝前應閱讀 源碼 與 MIT 許可證,確認符合你的安全策略。DSH 社區插件目錄(如 SkillHub 條目)是獨立站點,與 DeepSeek / 幻方無官方從屬關係,並非官方應用商店。
設計取捨:插件刻意不枚舉「能打開 .md 的應用列表」,而把「打開方式」交給 Windows / macOS,以避免錯誤列表或空列表;README 中記錄了 Windows 上 OpenAs_RunDLL 與 detach 子進程等已踩坑,供維護者參考。
結尾¶
dsh-auto-click 用最小的客戶端補丁,把 DSH Web GUI 側邊欄和聊天文件鏈接上的 預覽、Ctrl+直開、右鍵菜單 串成一套一致的手勢;路徑解析與會話工作區綁定,打開文件仍走宿主校驗。