前言¶
在 DeepSeek Harness(DSH)裏跑智能體會話時,工作目錄往往就是當前 Session 的 workspace。若你同時在用 CodeBuddy CN 做 IDE 側開發,常見做法是手動切到本機目錄、再在 CodeBuddy 裏打開同一文件夾——路徑要對齊,步驟也重複。
社區插件 dsh-open-in-codebuddy(維護者 lovezi0,GitHub:lovezi0/dsh-open-in-codebuddy)把這一步接到會話頭部原生的 「Open In…」 按鈕組:選中 CodeBuddy CN 後,用本機 CLI 入口打開當前會話目錄。按鈕與菜單不由本插件自繪,而是由底座 dsh-open-in-app-base 統一渲染;本插件只負責註冊目標、探測是否可用、以及「怎麼打開」。下面介紹定位、安裝與使用時需要知道的限制。
這是什麼¶
dsh-open-in-codebuddy 是 DSH 第三方插件,分類爲工作流。它向 Session 頭部工具欄的 「Open In…」 註冊一條 CodeBuddy CN 目標,一鍵用本機 CodeBuddy CN 打開當前會話的 workspace 目錄。
與 fork 或修改 DSH 宿主、或依賴原生 open-in-app 應用目錄的做法不同:本插件自帶本機路由,直接向 CodeBuddy CN 的 CLI 入口傳遞目錄參數;不 fork、不修改宿主。
當前 npm 包版本爲 0.1.4(MIT 許可證)。engines.dsh 要求 >=0.2.1-alpha.1;README 徽章標註與 DeepSeek Harness 0.2.1-rc.2 的適配關係。插件目錄頁:skillhub.cn/plugins/lovezi0/dsh-open-in-codebuddy(社區獨立站點,與 DeepSeek / 幻方無官方從屬關係)。
核心功能¶
以下能力均來自倉庫 README 與 package.json 說明。
雙端一致:web profile 與 Desktop(Electron)profile 走同一條通道、同一份代碼。
接入原生位置:目標併入會話頭部的「Open In…」按鈕組;按鈕尺寸、圖標規格與菜單由底座 dsh-open-in-app-base 渲染,本插件不自繪控件。
自動探測安裝位置:順序爲「顯式配置 → 註冊表 App Paths → 各盤符常規安裝佈局」。探測不到時該目標不會出現在菜單裏(遠程 / SSH 場景下相當於不可用)。
安全圍欄:路由僅接受迴環 / 可信 Host 的同源請求,拒絕跨站;目標目錄必須是本機絕對路徑且真實存在。
平臺限制:僅 Windows 生效;非 Windows 平臺該目標恆不可用。
安裝與啓用¶
本插件依賴底座 dsh-open-in-app-base(會話頭部的「Open In…」按鈕組)。需先安裝底座,再安裝本插件。缺少底座時本插件不會報錯,但沒有按鈕組可掛載目標。
兩個包均發佈在 npm,按包名安裝(默認可裝最新版;需要時可使用 包名@版本 釘住精確版本)。
# web profile 安裝(先底座,後本插件)
dsh plugin --profile web add dsh-open-in-app-base
dsh plugin --profile web add dsh-open-in-codebuddy
# desktop profile 安裝(先底座,後本插件)
dsh plugin --profile desktop add dsh-open-in-app-base
dsh plugin --profile desktop add dsh-open-in-codebuddy
備選:從遠程倉庫 tag 直接安裝(tag 源碼自帶構建產物 lib/,安裝側零構建),寫法爲 'github:lovezi0/dsh-open-in-codebuddy#vX.Y.Z'(將 vX.Y.Z 換爲實際 tag,且需與 package.json 的 version 一致)。
安裝前建議自行查看源碼與 MIT 許可證;插件以當前 dsh 進程權限 在本機執行打開邏輯,權限與路徑校驗策略以倉庫說明爲準。
配置¶
在 profile 的 cordis.patch.yml 中按插件 id 覆蓋即可,無需改插件代碼:
- id: open-in-codebuddy
config:
codebuddyHome: "" # CodeBuddy CN 安裝根目錄;留空 = 自動探測
典型用法¶
- 按上一節在 web 或 desktop profile 裝好底座與本插件。
- 在 DSH 中打開一個會話,確認 workspace 目錄爲本機絕對路徑(遠程 / 無本機 CodeBuddy 時,菜單裏通常不會出現該目標)。
- 在會話頭部找到 「Open In…」 按鈕組,選擇 CodeBuddy CN。
- 底座會向本插件宿主路由探測可用性(
GET open-in-codebuddy/available),點擊後 POST 當前會話目錄(POST open-in-codebuddy/open);校驗通過後以等效於 CodeBuddy CN 官方命令行 shim 的方式拉起本機實例(實例已存在時會新開窗口)。
工作原理(簡述)¶
插件在會話頭部註冊 CodeBuddy CN 目標,由底座渲染爲按鈕組菜單項。宿主側校驗請求來源與路徑後拉起 CodeBuddy CN;實現細節見倉庫源碼註釋。
適用場景與注意¶
適合誰:在 Windows 上使用 DSH(web 或 Desktop profile),且本機已安裝 CodeBuddy CN,希望在會話裏一鍵打開同一 workspace 的開發者。
需要注意:
- 非 Windows 平臺請勿指望該入口可用。
- 未探測到 CodeBuddy 安裝路徑、或目錄校驗失敗時,目標不會出現在菜單或無法打開。
- 0.1.3 起已移除「默認攜帶底座」的做法:底座須單獨安裝,否則只有掛載點、沒有按鈕組。
- Node 運行時要求 >=20(見
package.json的engines.node)。
結尾¶
dsh-open-in-codebuddy 把「在 CodeBuddy CN 裏打開當前 DSH workspace」收成會話頭部 「Open In…」 裏的一條目標,並與 dsh-open-in-app-base 分工:底座負責 UI,本插件負責 CodeBuddy CN 的可用性與打開方式。