dsh-agent-menu:爲 DeepSeek Harness 精簡右鍵菜單

前言

在 DeepSeek Harness(DSH)裏日常開發時,對話區、側欄和輸入框都會頻繁用到右鍵:複製代碼、打開文件位置、整理工作區與會話。宿主自帶菜單項較多,部分英文標籤也不直觀;社區裏還有一些右鍵插件會疊加 AI 提示或圓盤交互,未必符合「只要複製和系統操作」的預期。

下面介紹維護者 xsllo425 發佈的客戶端插件 dsh-agent-menu(倉庫 xsllo425/dsh-agent-menu,社區目錄 SkillHub 條目)。它的定位是:菜單隻做複製、文件與系統操作,不插入 AI 提示詞、不發送消息。

這是什麼

dsh-agent-menu 是 DeepSeek Harness 的右鍵菜單增強插件,當前 package 版本爲 0.8.3,許可證 MIT,要求宿主 dsh >= 0.2.1-rc.2。

它解決兩類問題:一是在對話區、鏈接、文件路徑、代碼塊、圖片和輸入框上提供剋制的複製與打開操作;二是在側欄工作區行、會話行上保留 DSH 原生能力的同時,補充複製目錄、打開位置、新建會話順序調整、會話刪除,並對部分原生菜單項做中文顯示。

核心功能

對話區與輸入框

右鍵位置 菜單項(摘要)
對話中的選中文字 複製;若點中鏈接或文件,再顯示對應操作
超鏈接 複製鏈接地址 / 複製爲 Markdown 鏈接 / 在瀏覽器中打開
文件路徑 複製路徑 / 打開文件位置 / 用默認應用打開
代碼塊(未選中文字) 複製代碼
對話圖片 複製圖像 / 另存爲…;本地圖片另有打開位置、默認應用打開
輸入框 剪切、複製、粘貼、撤銷、重做、全選(按是否有選區顯示)
輸入框圖片 圖片操作,以及從輸入框移除

相對文件路徑必須能取得當前會話目錄纔會顯示文件操作;圖片的 blob: / data: 地址通過宿主字節路由複製或另存,不僞造本地路徑。其他未覆蓋的位置會放行系統原生菜單。

側欄工作區與會話

  • 工作區行:保留原生重命名、刪除;「新建會話」插在最上;「複製目錄」「打開位置」插在刪除之前(刪除工作區沉底)。
  • 會話行:保留原生置頂、重命名、分叉、歸檔、複製會話 ID(就地漢化);追加複製目錄、打開位置、刪除會話。

路徑來源有明確約定:工作區目錄來自官方 workspaces.list 快照;會話目錄來自對應會話的 cwd,不會猜測路徑。

刪除會話由插件宿主路由 POST /agent-menu/session-delete 實現:刪除 ~/.dsh/sessions 下該會話的日誌目錄並清除歸檔標記。DSH 沒有公開的會話刪除接口,這是插件側的等價做法;正在本應用打開的會話會被拒絕(HTTP 409),需等會話關閉或重啓後再刪。工作區刪除仍使用官方對話框,會話會移到未分組。

工作區「新建會話」調用同一行已有的原生按鈕;會話目錄操作優先註冊到官方 sidebar.workspaces.session.menu.item 插槽。若該插槽在當前環境不渲染插件項,右鍵會話行時會就地 DOM 兜底追加「刪除會話」並漢化複製項(兩條路徑不疊加)。工作區原生菜單目前沒有對應插槽,追加項僅在確認是工作區原生菜單時出現。

界面與共存

菜單使用宿主主題色,卡片圓角 12px、菜單項圓角 6px,無圖標、弱分隔線與輕陰影。工作區和會話的原生菜單保留 DSH 自身樣式。

與其他右鍵相關插件的約定(README 原文):

  • dsh-file-menu:本插件有對應菜單項時接管其已打開的菜單;沒有菜單項時保留對方的菜單。
  • dsh-round-rightclick:圓盤遮罩存在時讓行。
  • dsh-session-deck:側欄右鍵在 window 捕獲階段阻止後續搶佔,再觸發原生按鈕。

在判定菜單項和調用 preventDefault() 時若發生異常,均放行原生菜單,避免出現「右鍵無反應」。

安裝與啓用

先做安裝,再按需重啓 DSH。安裝或宿主代碼更新後需要重啓;不要僅爲刷新客戶端而反覆重啓。請將 --profile desktop 替換爲實際使用的 profile。

dsh plugin --profile desktop add github:xsllo425/dsh-agent-menu

從本地目錄或 tarball 安裝時,將路徑換成實際位置:

dsh plugin --profile desktop add <本目錄或 tarball 路徑>

典型用法

用法即在各支持區域右鍵,按菜單項操作即可,無需額外配置文件。下面是可以直接對照 README 復現的場景。

  1. 複製對話裏的代碼:在代碼塊空白處右鍵,選「複製代碼」。
  2. 處理 Markdown 鏈接:在超鏈接上右鍵,可選複製地址、複製爲 Markdown 鏈接,或在瀏覽器中打開。
  3. 打開磁盤上的文件:在可解析爲路徑的文本上右鍵,使用「打開文件位置」或「用默認應用打開」(需當前會話能解析相對路徑)。
  4. 整理側欄:在工作區行右鍵,使用重排後的「新建會話」「複製目錄」「打開位置」;在會話行右鍵,使用漢化後的原生項,以及「刪除會話」(勿對正在打開的會話刪除,否則會 409)。

適用場景與注意

適合誰:長期在 DSH 桌面 profile 裏寫代碼、管多工作區與會話,希望右鍵菜單精簡、側欄目錄操作可落地、部分菜單中文可讀的用戶。

運行與信任:插件以當前 DSH 進程權限運行;刪除會話會直接操作 ~/.dsh/sessions 下目錄。安裝前建議閱讀 GitHub 倉庫 源碼與 MIT 許可證。

驗證邊界:維護者提供的 node --test tests/*.test.mjs(43 項)與 npm run verify 覆蓋 DOM/服務樁、插槽註冊和宿主路由,不能代替真實 DSH 界面的瀏覽器驗收。

結尾

dsh-agent-menu 把 DSH 右鍵收成「複製 + 文件/系統操作」,並在側欄補上真實的目錄與刪除會話能力,且明確不與 AI 提問混在同一菜單裏。需要安裝或 issue 時,可訪問社區目錄 https://www.skillhub.cn/plugins/xsllo425/dsh-agent-menu 與 GitHub https://github.com/xsllo425/dsh-agent-menu。

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

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

小夜