前言¶
在 DeepSeek Harness(DSH)裏和智能體對話時,消息裏經常出現兩類可點內容:工作區內的文件引用,以及 http(s) 外鏈。默認情況下,Chromium 原生右鍵菜單對這類元素幫助有限——DSH 把文件 mention 渲染成帶 title 的 <button>,而不是帶 href 的 <a>,因此 Host 側往往拿不到可用的 linkURL。要在 Finder 裏定位文件、複製絕對或相對路徑,或在系統瀏覽器裏打開鏈接,通常得自己翻路徑或複製粘貼。
下面介紹社區客戶端插件 dsh-link-menu(維護者 xiaoliuzhuan666)。它只在聊天區域的鏈接與文件引用上掛自定義右鍵菜單,並通過會話工作區根目錄把相對路徑解析成 Host 可接受的絕對路徑,不修改應用本體、不跑 setup 腳本。
這是什麼¶
dsh-link-menu 是 DSH 的純客戶端插件:在對話消息裏對文件引用和 HTTP(S) 鏈接提供右鍵菜單,並完成與工作區一致的路徑解析。分類屬於「客戶端」;源碼與說明見 GitHub 倉庫,社區目錄頁爲 SkillHub 條目。許可證 MIT,當前 package 版本 1.0.0。
插件刻意收窄範圍:只處理聊天裏的鏈接,不做側邊欄或其它 UI 補丁;README 中列出的相鄰插件(如 dsh-filemenu、dsh-link-context-menu 等)覆蓋其它場景,可按需對比選用。
核心功能¶
文件引用(右鍵消息裏的文件 mention)¶
| 菜單項 | 作用 |
|---|---|
| Reveal in Finder / 在 Finder 中顯示 | 在 Finder 中選中該文件(Windows 上對應 explorer /select) |
| Copy File Path / 複製文件路徑 | 複製絕對路徑 |
| Copy Relative Path / 複製相對路徑 | 複製與聊天中展示一致的相對路徑 |
HTTP(S) 鏈接¶
| 菜單項 | 作用 |
|---|---|
| Open in Browser / 在瀏覽器中打開 | 將 URL 交給系統默認瀏覽器 |
| Copy Link Address / 複製鏈接地址 | 複製 URL |
實現要點(與原生菜單的關係)¶
插件不依賴對 DSH 打補丁。README 說明,所需信息在標準安裝裏已存在:文件路徑來自 markdown 渲染器生成的 <button> 的 title;工作區根來自 ctx.sessions.list.getSnapshot().byId[id].cwd;會話 id 來自對話根節點的 data-conversation-session;在 Finder 中顯示則調用 remote.session.openWorkspacePath({ action: "reveal" })。
因原生 Electron 上下文菜單無法從 <button> 得到鏈接目標,插件在 contextmenu 時自繪彈出層並對原生菜單 preventDefault(),這是客戶端插件的常見做法。
絕對路徑解析¶
remote.session.openWorkspacePath 需要絕對路徑;Host 通過 fs.processPathFromHostPath 映射,相對路徑會得到 undefined 並報錯 "Path has no verified Host path"。mention 的 title 常爲工作區相對路徑,插件會先與會話 cwd 拼接,並保持當前 OS 的路徑分隔符(POSIX /,Windows \)。
若 DOM 中找不到會話、或 store 裏沒有 cwd,插件不展示會靜默失敗的操作,而是保留原生菜單並給出簡短 toast。
安裝與啓用¶
DeepSeek Harness 要求 >= 0.2.1-rc.1(README 在 0.2.1-rc.5、macOS arm64 上驗證);Node >= 20。
在桌面 profile 下執行官方安裝命令:
dsh plugin --profile desktop add github:xiaoliuzhuan666/dsh-link-menu
安裝後完全退出並重新打開 DeepSeek Harness。無需 setup.sh、無需改應用文件、無需重籤 app bundle。
在 DevTools 控制台可確認插件已加載:
document.documentElement.getAttribute('data-dsh-link-menu') // 期望爲 "active"
典型用法¶
- 打開任意帶工作區的對話,在消息中找到助手或用戶引用的文件路徑(渲染爲可點的 mention)。
- 在該 mention 上右鍵,選擇「在 Finder 中顯示」或「複製文件路徑 / 複製相對路徑」。
- 對消息中的
https://或http://鏈接右鍵,選擇「在瀏覽器中打開」或「複製鏈接地址」。
路徑相關菜單僅在能解析到會話與工作區根時生效;否則見上文 toast 行爲。
適用場景與注意¶
適合誰: 經常在 DSH 聊天裏點開文件引用、需要在資源管理器中定位或複製路徑,以及希望外鏈一鍵進系統瀏覽器的桌面用戶。
權限與安全: 插件隨當前 DSH 進程運行,安裝前建議閱讀 倉庫源碼 與 MIT 許可證,確認行爲符合你的環境策略。社區插件目錄 SkillHub 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,安裝來源以你執行的 dsh plugin 命令與 GitHub 發佈爲準。
環境: 面向 dsh.client.platform: web 的客戶端注入;Host 側 lib/index.js intentionally 爲空,屬於僅客戶端邏輯的包結構。
結尾¶
dsh-link-menu 用標準插件方式補上聊天內文件與外鏈的右鍵能力,並把相對 mention 解析成 Host 可用的絕對路徑,避免爲菜單去改 DSH 本體。若你只需要對話裏的鏈接菜單,可以按 README 命令安裝並在控制台覈對 data-dsh-link-menu。
- 目錄頁:https://www.skillhub.cn/plugins/xiaoliuzhuan666/dsh-link-menu
- GitHub:https://github.com/xiaoliuzhuan666/dsh-link-menu