dsh-link-menu:爲 DeepSeek Harness 對話裏的鏈接補右鍵菜單

前言

在 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"

典型用法

  1. 打開任意帶工作區的對話,在消息中找到助手或用戶引用的文件路徑(渲染爲可點的 mention)。
  2. 在該 mention 上右鍵,選擇「在 Finder 中顯示」或「複製文件路徑 / 複製相對路徑」。
  3. 對消息中的 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
羽毛球分组比赛记分
小程序二维码

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

小夜