dsh-open-in-codebuddy:在 DSH 会话里一键用 CodeBuddy CN 打开 workspace

前言

在 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 安装根目录;留空 = 自动探测

典型用法

  1. 按上一节在 web 或 desktop profile 装好底座与本插件。
  2. 在 DSH 中打开一个会话,确认 workspace 目录为本机绝对路径(远程 / 无本机 CodeBuddy 时,菜单里通常不会出现该目标)。
  3. 在会话头部找到 「Open In…」 按钮组,选择 CodeBuddy CN。
  4. 底座会向本插件宿主路由探测可用性(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 的可用性与打开方式。

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

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

Xiaoye