Skip to content

Releases: che246/dsh-workbuddy2api-connect

v0.5.1 — 把 WorkBuddy2API 网关的模型目录自动同步进 DeepSeek Harness

Choose a tag to compare

@che246 che246 released this 19 Oct 14:02

v0.5.1

只跟着仓库改名走的一版,功能与 v0.5.0 完全一致。

变更

  • 仓库改名:DeepSeek-Harness-workbuddy2api-panel → dsh-workbuddy2api-connect
    (旧地址 301 到新地址,历史 tag / release / 附件全部保留)
  • package.json 补上 repository / homepage / bugs(之前没有仓库字段),指向新地址
  • README 里的安装示例与版本链接改用新地址,并记一句改名说明

为什么值得单独发一版

附件里的 package.json 与 README.md 是随包分发的:v0.5.0 的包内还写着旧仓库地址。虽然 GitHub
对旧地址做了 301,但把「包里写的就是现在的地址」这件事做对更省心。

功能无变化,不必特意升级;下次装新版时自然会拿到这份元数据。

安装

桌面版

桌面版的 desktop profile 由 App 独占管理(独立 CLI 的 --dump-config 之类会被拒绝),但装包这条路是通的。

建议手工改两处再 install——dsh plugin add 会重写 dsh.profile.bundles,实测会把其它第三方 bundle 从列表里挤掉(本机丢过 dsh-workbuddy-connect 与 @eghrhegpe/dsh-connect-qoder);而 install 只装依赖、不动配置。

# 0) 附件地址:https://github.com/che246/dsh-workbuddy2api-connect/releases/download/v0.5.1/dsh-workbuddy2api-connect-0.5.1.tgz
copy dsh-workbuddy2api-connect-0.5.1.tgz "$env:USERPROFILE\.dsh\local-plugins\"

然后编辑 %USERPROFILE%\.dsh\profiles\desktop\package.json 两处:

  • dependencies 里加 "dsh-workbuddy2api-connect": "file:C:/Users/<你>/.dsh/local-plugins/dsh-workbuddy2api-connect-0.5.1.tgz"
  • dsh.profile.bundles 里追加 "dsh-workbuddy2api-connect"
cd "$env:USERPROFILE\.dsh\profiles\desktop"
$dsh = "D:\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"   # 换成你的安装目录
& $dsh plugin --profile desktop install

也可以用 & $dsh plugin --profile desktop add "<附件路径>"(自动写依赖与 bundles),但装完务必核对 dsh.profile.bundles,少了别的插件就补回去。

Web / TUI

dsh plugin --profile web add https://github.com/che246/dsh-workbuddy2api-connect/releases/download/v0.5.1/dsh-workbuddy2api-connect-0.5.1.tgz

两种方式装完都要重启一次 DSH:provider 路由与浏览器卡片都在 boot 时装配。重启后「插件」页出现本插件的配置卡片,模型选择器出现配置好的分组。

v0.5.0 — 把 WorkBuddy2API 网关的模型目录自动同步进 DeepSeek Harness

Choose a tag to compare

@che246 che246 released this 19 Oct 13:35

v0.5.0

加了路由就能直接拉模型:填好 URL 与 Key,点「拉取模型」就地请求网关;拉不到就把原因写在卡片里。

新增:按当前 URL / Key 现拉清单

  • 新接口 POST /probe:用界面此刻的 baseURL / apiKey 请求 …/models,不落盘、不注册,只看
    一眼能不能拉到
  • 新建路由时卡片里是 「拉取模型(按当前 URL / Key 去网关取)」;拉到后标题变成
    「模型选择(启用 N / 共 M)」并直接列出模型,可以立刻勾选
  • 已保存的路由不必重填 Key:界面只回传 id,宿主自己按凭据名去凭据库 / 环境变量取
  • 另有 重新拉取;现拉成功会标一句「清单来自 …(现拉,尚未保存)」
  • 改了 URL 或 Key,之前现拉的清单自动作废——不让旧清单冒充新地址的结果

错误一律说清楚

以前拉不到只是「空表」,现在是具体原因(probeErrorText):

情况 卡片上看到的
401/403 HTTP 401 Unauthorized——网关拒绝了这把 Key(不对、过期或没有权限):…
端口没开 端口没有在监听(ECONNREFUSED)——检查地址与端口
域名解析失败 解析不了 … 的主机名(ENOTFOUND)——检查域名或网络
没响应 超时(网关没有响应)
404 这个地址下没有 /models,确认 URL 是否指到网关的 /v1 根
Fetch 规范禁用端口 这个端口被 Fetch 规范列为禁用端口(bad port)——换一个端口
通了但没模型 通了,但没有解析出任何模型(返回里没有 data/models 数组)
URL 本身不合法 请先填 URL… / URL 不合法:… / URL 只支持 http/https,收到 ftp:

Node 的 fetch 在双栈下会抛 AggregateError(v4/v6 各一条),错误码埋在 errors[] 里——这里会把
各层 code 都翻出来,必要时退回底层 message,而不是只留一句 fetch failed。同一套文本也用在后台
刷新上,所以状态行里的错误同样更具体。

验证

node test/verify.mjs → 141/141(新增 19 项):

  • /probe:用 URL+Key 拉到清单、条目与 /status 同形、回报请求地址
  • 错误分支:错 Key(401)、端口没开(ECONNREFUSED)、非 http(s)、没填 URL
  • 已保存路由不带 Key 也能拉(自动用凭据库那把)
  • 界面:新路由显示「拉取模型」、没填 URL 点它显示原因、填 URL 后拉到 2 个模型并列出、标题变成
    「启用 2 / 共 2」、标记「现拉,尚未保存」、401 时把原文显示在卡片里、失败不残留旧清单、换 URL 后回到「拉取模型」

node test/verify.mjs --offline → 28/28。

顺带修的一处测试基础设施

React 桩的 useEffect 之前忽略依赖数组,导致每次渲染都重跑「拉 /status」,异步回来会把用户
刚编辑的草稿覆盖掉(表现为「加了一行又消失」)。现在按 deps 做浅比较,与真实 React 一致——这类
假阴性不会再出现。

安装

桌面版

桌面版的 desktop profile 由 App 独占管理(独立 CLI 的 --dump-config 之类会被拒绝),但装包这条路是通的。

建议手工改两处再 install——dsh plugin add 会重写 dsh.profile.bundles,实测会把其它第三方 bundle 从列表里挤掉(本机丢过 dsh-workbuddy-connect 与 @eghrhegpe/dsh-connect-qoder);而 install 只装依赖、不动配置。

# 0) 附件地址:https://github.com/che246/dsh-workbuddy2api-connect/releases/download/v0.5.0/dsh-workbuddy2api-connect-0.5.0.tgz
copy dsh-workbuddy2api-connect-0.5.0.tgz "$env:USERPROFILE\.dsh\local-plugins\"

然后编辑 %USERPROFILE%\.dsh\profiles\desktop\package.json 两处:

  • dependencies 里加 "dsh-workbuddy2api-connect": "file:C:/Users/<你>/.dsh/local-plugins/dsh-workbuddy2api-connect-0.5.0.tgz"
  • dsh.profile.bundles 里追加 "dsh-workbuddy2api-connect"
cd "$env:USERPROFILE\.dsh\profiles\desktop"
$dsh = "D:\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"   # 换成你的安装目录
& $dsh plugin --profile desktop install

也可以用 & $dsh plugin --profile desktop add "<附件路径>"(自动写依赖与 bundles),但装完务必核对 dsh.profile.bundles,少了别的插件就补回去。

Web / TUI

dsh plugin --profile web add https://github.com/che246/dsh-workbuddy2api-connect/releases/download/v0.5.0/dsh-workbuddy2api-connect-0.5.0.tgz

两种方式装完都要重启一次 DSH:provider 路由与浏览器卡片都在 boot 时装配。重启后「插件」页出现本插件的配置卡片,模型选择器出现配置好的分组。

v0.4.0 — 把 WorkBuddy2API 网关的模型目录自动同步进 DeepSeek Harness

Choose a tag to compare

@che246 che246 released this 19 Oct 13:14

v0.4.0

面板上可以选模型了:每条路由卡里多一个「模型选择」,勾选哪些模型要接进 DSH。

新增:模型选择

  • 每张路由卡里一个可折叠的 「模型选择(启用 N / 共 M)」,展开后逐个列出网关返回的模型
  • 勾选 = 启用;行尾标出要点:上下文 / 思考档 / 可关思考 / 图片 / 倍率
  • 全选 / 全不选,以及关键字过滤(模型多时按 id 或名字搜)
  • 未勾选的模型进宿主的 exclude 列表,不注册进 DSH;一个都没勾会给出「分组会是空的」警告
  • 保存即热重注册,不需要重启

设计取舍:用排除(exclude)而不是白名单。网关新增模型时默认可用,不会被一份过期的白名单挡在外面;想全启用就是全部勾上(等价 exclude: [])。

宿主侧

  • GET /status 每条路由新增 catalog(逐条模型的 id / contextWindow / maxTokens / reasoning /
    efforts / off / images / rate)与 exclude / enabled;models 仍是总数,旧界面不受影响
  • exclude 清洗加固:去重、丢弃非字符串 / 空串 / 超过 200 字符 / 含换行的项,上限 2000 条
  • 过滤发生在 piModels() 里,即注册给 pi-ai 的模型表本身就少了那些条目——不是只在界面上隐藏

验证

node test/verify.mjs → 122/122(新增 22 项):

  • status 带完整清单、条目含上下文与思考档、默认 exclude 为空
  • 存 exclude 后 enabled 减少、exclude 已去重并丢掉脏数据
  • 反向验证适配器:adapter.listModels('workbuddy2apicn') 注入 21 个(原本 22 个),被排除的那个确实不在列表里
  • 清空 exclude 后恢复 22 个
  • 界面:标题计数、展开列出全部模型、默认全勾、取消勾选后计数变化、保存体带上 exclude、
    全选 / 全不选、关键字过滤、无清单时的指引文案

node test/verify.mjs --offline → 28/28。

安装

桌面版

桌面版的 desktop profile 由 App 独占管理(独立 CLI 的 --dump-config 之类会被拒绝),但装包这条路是通的。

建议手工改两处再 install——dsh plugin add 会重写 dsh.profile.bundles,实测会把其它第三方 bundle 从列表里挤掉(本机丢过 dsh-workbuddy-connect 与 @eghrhegpe/dsh-connect-qoder);而 install 只装依赖、不动配置。

# 0) 附件地址:https://github.com/che246/dsh-workbuddy2api-connect/releases/download/v0.4.0/dsh-workbuddy2api-connect-0.4.0.tgz
copy dsh-workbuddy2api-connect-0.4.0.tgz "$env:USERPROFILE\.dsh\local-plugins\"

然后编辑 %USERPROFILE%\.dsh\profiles\desktop\package.json 两处:

  • dependencies 里加 "dsh-workbuddy2api-connect": "file:C:/Users/<你>/.dsh/local-plugins/dsh-workbuddy2api-connect-0.4.0.tgz"
  • dsh.profile.bundles 里追加 "dsh-workbuddy2api-connect"
cd "$env:USERPROFILE\.dsh\profiles\desktop"
$dsh = "D:\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"   # 换成你的安装目录
& $dsh plugin --profile desktop install

也可以用 & $dsh plugin --profile desktop add "<附件路径>"(自动写依赖与 bundles),但装完务必核对 dsh.profile.bundles,少了别的插件就补回去。

Web / TUI

dsh plugin --profile web add https://github.com/che246/dsh-workbuddy2api-connect/releases/download/v0.4.0/dsh-workbuddy2api-connect-0.4.0.tgz

两种方式装完都要重启一次 DSH:provider 路由与浏览器卡片都在 boot 时装配。重启后「插件」页出现本插件的配置卡片,模型选择器出现配置好的分组。

v0.3.1 — 把 WorkBuddy2API 网关的模型目录自动同步进 DeepSeek Harness

Choose a tag to compare

@che246 che246 released this 19 Oct 13:00

v0.3.1

修好 DSH 0.2.1-rc.2 上的「不适配」:插件代码没坏,坏在两处元数据。

根因

现象 真因
升级后模型分组整组消失 更新重写了 profile 的 package.json,dsh.profile.bundles 里只剩官方条目,插件的 cordis.patch.yml 不再生效
即便加回 bundle 也不加载 manifest 的 peer 钉着 @deepseek-ai/dsh-llm: 0.2.0-rc.2,运行时是 0.2.1-rc.2,被 evaluatePluginCompatibility 判为不兼容

第二点值得单独记一句:npm semver 对预发布版本有额外规则——只有 range 里出现同一个
X.Y.Z 的预发布比较符,该版本才算满足。所以 0.2.0-rc.2、>=0.2.0-rc.2、
>=0.2.0-0 <0.3.0 这几种写法都判定不了 0.2.1-rc.2(已用运行时自带的 semver 逐个验证)。
结论:不要用 peer 去钉 dsh 版本。

改动

  • 去掉 @deepseek-ai/dsh-llm / @deepseek-ai/dsh-llm-pi-ai 两个 peer(官方自带插件也都不声明),
    不再被 dsh 的版本闸门卡住;@earendil-works/pi-ai 的 peer 放宽为 >=0.87.1 <2.0.0(运行时已升到 1.1.0)
  • 新增 node tools/check-compat.mjs:直接用 DSH 自己的 evaluatePluginCompatibility 判定当前
    运行时,退出码 1 表示不兼容并打印 requirements 细节——以后每次 DSH 升级跑一次即可
  • README 增「兼容性与升级排查」:两种成因、自检命令、以及补丁版部署下 dsh plugin install
    因 app.asar 路径而失败时的兜底装法(解压到 profile 的 node_modules)

验证

  • node tools/check-compat.mjs → 兼容 ✓(同一脚本对旧清单返回不兼容 ✗,反证判定确实生效)
  • node tools/dump-profile.mjs → bundle 层含 dsh-workbuddy2api-connect,合成条目 7 条
  • node test/verify.mjs --offline → 28/28;node test/verify.mjs → 100/100
    (真连两个网关、真发最小对话、界面接口、客户端卡片与展开开关,全部在 0.2.1-rc.2 + pi-ai 1.1.0 上跑通)

顺带

  • profile 里被更新冲掉的 ui-chat.transcriptView 已改回 standard(= 卡片上「命令与思考:
    完全展开」开关的关闭态),并在配置里加了两行注释,免得下次更新又被静默改回 verbose
  • 与本次更新无关但会挡路的:profile 里 dsh-purge(github master tarball)的锁文件哈希已过期,
    pnpm install 会报 ERR_PNPM_TARBALL_INTEGRITY。本次没动它(用解压兜底装法绕开),
    要恢复一条命令装包的话,需在确认上游内容后跑 pnpm install --update-checksums。

安装

桌面版

桌面版的 desktop profile 由 App 独占管理(独立 CLI 的 --dump-config 之类会被拒绝),但装包这条路是通的。

建议手工改两处再 install——dsh plugin add 会重写 dsh.profile.bundles,实测会把其它第三方 bundle 从列表里挤掉(本机丢过 dsh-workbuddy-connect 与 @eghrhegpe/dsh-connect-qoder);而 install 只装依赖、不动配置。

# 0) 附件地址:https://github.com/che246/dsh-workbuddy2api-connect/releases/download/v0.3.1/dsh-workbuddy2api-connect-0.3.1.tgz
copy dsh-workbuddy2api-connect-0.3.1.tgz "$env:USERPROFILE\.dsh\local-plugins\"

然后编辑 %USERPROFILE%\.dsh\profiles\desktop\package.json 两处:

  • dependencies 里加 "dsh-workbuddy2api-connect": "file:C:/Users/<你>/.dsh/local-plugins/dsh-workbuddy2api-connect-0.3.1.tgz"
  • dsh.profile.bundles 里追加 "dsh-workbuddy2api-connect"
cd "$env:USERPROFILE\.dsh\profiles\desktop"
$dsh = "D:\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"   # 换成你的安装目录
& $dsh plugin --profile desktop install

也可以用 & $dsh plugin --profile desktop add "<附件路径>"(自动写依赖与 bundles),但装完务必核对 dsh.profile.bundles,少了别的插件就补回去。

Web / TUI

dsh plugin --profile web add https://github.com/che246/dsh-workbuddy2api-connect/releases/download/v0.3.1/dsh-workbuddy2api-connect-0.3.1.tgz

两种方式装完都要重启一次 DSH:provider 路由与浏览器卡片都在 boot 时装配。重启后「插件」页出现本插件的配置卡片,模型选择器出现配置好的分组。

v0.3.0 — 把 WorkBuddy2API 网关的模型目录自动同步进 DeepSeek Harness

Choose a tag to compare

@che246 che246 released this 15 Oct 12:30

v0.3.0

界面新增一个 「命令与思考:完全展开」开关(默认关闭),并修掉一处旧配置的语义错误。

新增:命令与思考展开开关

卡片顶部多了一个开关,控制 DSH「工作详情」(思考块 + 工具调用/命令)的展开程度:

开关 写入的值 效果
关(默认) ui-chat.transcriptView = standard 折叠已完成轮次、步骤分组——DSH 桌面版默认
开 ui-chat.transcriptView = verbose 轮次不折叠、步骤不分组,命令与思考全部摊开
  • 改的是 DSH 自己那个值(设置 → 通用 → 工作详情,同一个 ui-chat 设置分节),走 ctx.configForms.get('ui-chat').set(...)
  • 立即生效,不需要重启;宿主设置持久化(settings.yaml)
  • 与 DSH 设置页双向同步:卡片订阅了设置变化,在设置页改了档位,开关跟着变
  • 开关旁标出当前档位(compact 精简 / standard 标准 / detailed 详细 / verbose 完全展开)
  • 宿主没有设置服务(headless)时开关禁用并说明原因,卡片与网关同步都不受影响

如果你之前靠 cordis.patch.yml 里的 ui-chat.transcriptView: verbose 默认全展开,这一版把它
改成了 standard(= 开关关闭),以符合「默认关闭」。想默认全展开:把开关打开,或把配置改回
verbose。注意:在卡片或设置页改过之后,值会落到 settings.yaml 并覆盖 cordis.patch.yml。

其余

  • 安装 / 发布流程与上一版相同(python tools/cut-release.py)
  • 验证台:离线 28 项 + 在线 100 项(新增 12 项开关断言:默认关闭、打开写 verbose、关闭写回
    standard、设置页改动同步到开关、无设置服务时降级不崩)

说明文件里不要自带安装小节标题:cut-release.py 见到它就跳过追加,Release 正文里反而
没有安装步骤。安装章节由工具统一生成(桌面版 / Web / TUI 两条路径)。

安装

桌面版

桌面版的 desktop profile 由 App 独占管理(独立 CLI 的 --dump-config 之类会被拒绝),但装包这条路是通的。

建议手工改两处再 install——dsh plugin add 会重写 dsh.profile.bundles,实测会把其它第三方 bundle 从列表里挤掉(本机丢过 dsh-workbuddy-connect 与 @eghrhegpe/dsh-connect-qoder);而 install 只装依赖、不动配置。

# 0) 附件地址:https://github.com/che246/dsh-workbuddy2api-connect/releases/download/v0.3.0/dsh-workbuddy2api-connect-0.3.0.tgz
copy dsh-workbuddy2api-connect-0.3.0.tgz "$env:USERPROFILE\.dsh\local-plugins\"

然后编辑 %USERPROFILE%\.dsh\profiles\desktop\package.json 两处:

  • dependencies 里加 "dsh-workbuddy2api-connect": "file:C:/Users/<你>/.dsh/local-plugins/dsh-workbuddy2api-connect-0.3.0.tgz"
  • dsh.profile.bundles 里追加 "dsh-workbuddy2api-connect"
cd "$env:USERPROFILE\.dsh\profiles\desktop"
$dsh = "D:\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"   # 换成你的安装目录
& $dsh plugin --profile desktop install

也可以用 & $dsh plugin --profile desktop add "<附件路径>"(自动写依赖与 bundles),但装完务必核对 dsh.profile.bundles,少了别的插件就补回去。

Web / TUI

dsh plugin --profile web add https://github.com/che246/dsh-workbuddy2api-connect/releases/download/v0.3.0/dsh-workbuddy2api-connect-0.3.0.tgz

两种方式装完都要重启一次 DSH:provider 路由与浏览器卡片都在 boot 时装配。重启后「插件」页出现本插件的配置卡片,模型选择器出现配置好的分组。

v0.2.1 — WorkBuddy2API 网关模型目录接入 DSH(含可视界面)

Choose a tag to compare

@che246 che246 released this 14 Oct 19:45

v0.2.1

把 WorkBuddy2API 网关的模型目录自动同步进 DeepSeek Harness,并带一个可视界面来增删网关路由。

宿主侧

  • 启动时与之后按周期拉每条路由的 /v1/models,把 name / reasoning_supported_efforts / context_length / max_output_tokens / supports_images / credits 映射成 pi-ai model descriptor,注册成 DSH 的 provider 路由
  • 模型表变化下一个刷新周期自动跟上;拉取失败保留上一份模型表并按 10s→20s→… 退避重试;另有磁盘缓存,首启网关不可达也不会出现空分组
  • 路由配置存 $DSH_HOME/.workbuddy2api-connect.json;密钥只进 DSH 凭据库(ctx.credentials),配置文件里只有凭据名

界面

「插件」页 → 本插件配置区,每张卡只填三样:

字段 说明
分组名称 模型选择器里显示的分组名
URL 网关的 OpenAI 兼容基地址
Key 只写不回显;已保存时留空不改,可勾选清除
  • 路由 id(provider 名)与凭据名由分组名称自动派生,新建时确定、之后改名不变(避免既有会话与 agent-default-model 指空)
  • 保存即热重注册并重拉模型表,不需要重启
  • 状态行显示 N 个模型 · 上下文 192K–1000K · 思考档 low/high/max · 可关思考 3 个 · 上次刷新;失败时原样显示网关错误(如 HTTP 401 invalid_api_key)

思考档位

  • 按网关声明逐档映射,未声明的档位显式写 null——pi-ai 对缺键的默认不对称,只写声明的档才不会让用户看到假档位
  • 「关闭思考」只给 deepseek 系:下发 thinking: {type: 'disabled'}(实测真能关)。非 deepseek 系链路上没有关闭手段(reasoning_effort: off 会被网关降级回最低档,thinking 字段被上游忽略),所以不提供
  • 守住一条不变式:只有该模型的默认档能明确下发时才提供 off,避免用户没选档位却被静默关掉思考

验证

node test/verify.mjs --offline   # 28 项:映射与派生规则
node test/verify.mjs             # 88 项:真连网关 + 真发最小对话 + 界面接口 + 客户端卡片

在线部分用一个假 Cordis 上下文把插件真跑起来(真 apply、真 PiAiAdapter、真 pi-ai、真网关、真 HTTP 处理函数),核对逐条上下文一致、思考开关的实际行为、界面接口的环回门禁与校验、热重注册、密钥写入与不回显、客户端卡片的字段与请求体。

已知边界

  • 首次装/升级需要重启一次(provider 路由与客户端 bundle 都在 boot 时装配)
  • 同一个 provider 路由不能被两个适配器拥有:本插件接管后请把 @deepseek-ai/dsh-llm-pi-ai 里同名的 providers 条目清空
  • max_output_tokens 是上游声称值(网关侧实测普遍虚高),插件如实透传,可用 maxTokensCap 钳制

安装

桌面版

桌面版的 desktop profile 由 App 独占管理(独立 CLI 的 --dump-config 之类会被拒绝),但装包这条路是通的。

建议手工改两处再 install——dsh plugin add 会重写 dsh.profile.bundles,实测会把其它第三方 bundle 从列表里挤掉(本机丢过 dsh-workbuddy-connect 与 @eghrhegpe/dsh-connect-qoder);而 install 只装依赖、不动配置。

# 0) 附件地址:https://github.com/che246/dsh-workbuddy2api-connect/releases/download/v0.2.1/dsh-workbuddy2api-connect-0.2.1.tgz
copy dsh-workbuddy2api-connect-0.2.1.tgz "$env:USERPROFILE\.dsh\local-plugins\"

然后编辑 %USERPROFILE%\.dsh\profiles\desktop\package.json 两处:

  • dependencies 里加 "dsh-workbuddy2api-connect": "file:C:/Users/<你>/.dsh/local-plugins/dsh-workbuddy2api-connect-0.2.1.tgz"
  • dsh.profile.bundles 里追加 "dsh-workbuddy2api-connect"
cd "$env:USERPROFILE\.dsh\profiles\desktop"
$dsh = "D:\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"   # 换成你的安装目录
& $dsh plugin --profile desktop install

也可以用 & $dsh plugin --profile desktop add "<附件路径>"(自动写依赖与 bundles),但装完务必核对 dsh.profile.bundles,少了别的插件就补回去。

Web / TUI

dsh plugin --profile web add https://github.com/che246/dsh-workbuddy2api-connect/releases/download/v0.2.1/dsh-workbuddy2api-connect-0.2.1.tgz

两种方式装完都要重启一次 DSH:provider 路由与浏览器卡片都在 boot 时装配。重启后「插件」页出现本插件的配置卡片,模型选择器出现配置好的分组。