Passer au contenu principal
D

dsh-connect-workbuddy

dingminhua/dsh-connect-workbuddy

Connecte à DSH des modèles WorkBuddy connectés localement, prend en charge l’activation optionnelle de l’entrée d’image par modèle, le changement de compte et une vue d’ensemble en lecture seule des crédits avec check-in quotidien.

Installer

dsh plugin --profile web add github:dingminhua/dsh-connect-workbuddy

README

dsh-connect-workbuddy settings panel

dsh-connect-workbuddy

把本机登录的 WorkBuddy 模型接入 DeepSeek Harness,并提供只读的积分概览与模型管理。

English · 安装 · 工作原理 · 更新日志 · 问题反馈

npm version npm downloads test status MIT license GitHub stars dshfind plugin

一个独立的 DeepSeek Harness (DSH) bundle 插件。它把本机已登录的 WorkBuddy 账号(国内版与国际版 WorkBuddy AI 均支持)接到 DSH 的模型选择器,同时提供只读的积分概览与可勾选的模型管理界面。国内版与国际版是两个并行的供应商(workbuddy / workbuddy-global),可同时使用;插件设置卡片以 tab 区分两者,方便统一管理。

功能特性

  • 双供应商并行接入(国内版 + 国际版) —— 国内版注册为 workbuddy provider(GLM-5.3DeepSeek-V4-ProKimi-K3MiniMax-M3Hy3 等),国际版注册为 workbuddy-global provider(GPT-5.6Gemini-3.5-FlashGLM-5.3Kimi-K3 等),两边模型同时出现在 DSH 模型选择器里:不同会话可以各选一边,互不干扰。模型名内嵌上游积分倍率(如 GLM-5.3 · x0.79),与 WorkBuddy 自身模型菜单一致。
  • 插件卡片 tab 切换 —— 设置卡片顶部为「国内版 / 国际版」两个 tab,各含独立的账号选择、积分概览与模型管理;每个 tab 的账号、目录、勾选与未保存草稿完全隔离——在一个 tab 里切账号或刷新模型,不会触碰另一边的运行时目录与会话。
  • 模型管理 —— 从上游刷新完整模型目录,逐项勾选启用或禁用;刷新是草稿操作,点保存才生效。上游同时给出积分倍率、上下文/输出上限与推理档位;图片输入按模型手动勾选(默认不勾选)。
  • 本机账号切换 —— 自动发现 WorkBuddy 桌面端留下的多个登录凭据,可按区域切换账号;Token 不写入 DSH 设置。
  • 只读积分概览 —— 按套餐聚合展示剩余积分,并列出每个模型的积分倍率。查询不消耗积分。
  • 凭据路径多候选 —— macOS / Windows / Linux 逐一探测默认位置,也支持环境变量与卡片内直接指定。
  • 安全 loopback shim —— 每区域一个随机端口 + 进程内随机 secret,真实 WorkBuddy token 不交给 pi-ai。
  • 命令行诊断 —— status / doctor / logout,按区域报告登录与积分,无需浏览器即可确认宿主状态。

工作原理

DSH PiAiAdapter(每个 provider 一套)
  -> 安全 loopback shim(每区域一个随机端口 + 进程内随机 secret)
  -> WorkBuddyUpstreamClient
  -> 国内版 https://copilot.tencent.com/v2/chat/completions
  -> 国际版 https://www.workbuddy.ai/v2/chat/completions
  -> WorkBuddy SSE
  -> DSH 本地执行工具并回传结果

国内版与国际版各持一套完整的运行时栈——凭据 store、模型 catalog、回环 shim、adapter——按凭据域名(workbuddy.ai / codebuddy.ai → 国际版,其余 → 国内版)隔离可见账号,所以两个区域的账号可以同时在线、同时被不同会话使用。国际版有两个品牌域名:桌面端登录在 workbuddy.ai,CodeBuddy CLI 登录在 codebuddy.ai,两者都是国际版。

模型目录按区域取自各自的正确来源:国内版走 /v2/enterprises/personal/models,国际版走 <国际网关>/v3/config(配置服务按客户端渠道返回不同清单,国际版必须用桌面端 User-Agent 才能取到账号真实的 20 个模型,含免费的 deepseek-v4.1-flash)。积分概览走 https://www.codebuddy.cn/v2/billing/meter/get-user-resource(国际版账号自动路由到其凭据所属的国际网关,workbuddy.aicodebuddy.ai——两个品牌域名的凭据互不通用),均为只读接口。

凭据读取自 WorkBuddy 桌面 App 自身的 auth 文件(只读);刷新得到的 token 按区域存放在 $DSH_HOME/.workbuddy-auth.cn.json$DSH_HOME/.workbuddy-auth.global.json(双账号同时在线互不覆盖;旧的单文件 .workbuddy-auth.json 作为迁移来源保留读取),桌面端文件永不被写入。

安装

前置:已安装并登录 WorkBuddy 桌面 App(插件复用 App 的登录状态)。

推荐使用 DSH 插件命令安装 npm 已发布版本:

dsh plugin --profile desktop add dsh-connect-workbuddy

或直接通过 npm 安装:

npm install dsh-connect-workbuddy

安装、更新或卸载 bundle 后,需要重启对应的 DSH 进程。

插件在 WebDesktopTUI 三种界面下均可运行,按你使用的 profile 选择对应命令:

dsh plugin --profile web add dsh-connect-workbuddy     # Web
dsh plugin --profile dsh-tui add dsh-connect-workbuddy # TUI

命令行

dsh plugin --profile <web|desktop|dsh-tui> exec dsh-connect-workbuddy status   # 登录状态与剩余积分
dsh plugin --profile <web|desktop|dsh-tui> exec dsh-connect-workbuddy doctor   # 凭据路径与宿主诊断
dsh plugin --profile <web|desktop|dsh-tui> exec dsh-connect-workbuddy logout   # 清理插件持有的凭据副本

statusdoctor 支持 --json 输出机器可读格式。

开发

pnpm install
pnpm run check   # typecheck + test + build

本地开发用 link: 安装到 desktop profile(改码后重启 DSH Desktop 生效):

dsh plugin --profile desktop add /Users/dmh2002/DshProject/dsh-connect-workbuddy

市场收录与展示

插件已包含可安装的 dsh.bundle manifest,并发布到 npm。社区市场通常从 Awesome DSH Plugin 注册表同步条目;仓库内的提交草稿位于 awesome-dsh-plugin-submission/dingminhua__dsh-connect-workbuddy.yml,正式提交为 PR #3812data/plugins/dingminhua__dsh-connect-workbuddy.yml,已通过 CI 与 Submission gate,等待维护者合并)。

收录目录规范(依据 contributing.md):

  • 每个插件一个 YAML:data/plugins/<owner>__<repo>.yml,字段为 url(与仓库地址完全一致)、nameowner/repo)、category(有效值之一,本项目为 model)、description.en(必填,以句号结尾)/ description.zh(可选);描述中含 : 必须加引号。
  • 仓库必须声明 dsh.bundle manifest(本项目 dsh.bundle.patch: ./cordis.patch.yml),且被 dsh-plugin topic 标记;提交数 ≥ 10、仓库满 1 天由 CI 自动检查。
  • 两个 README(README.md / README.zh.md)由脚本生成,不得手工编辑;修改 YAML 后执行 node scripts/generate-readme.mjs 重新生成。
  • 一个 PR 最多收录 3 条;只改自己的条目,不动其他插件。

市场卡片中的截图与 GitHub README 徽章是两套机制:

  • GitHub 徽章由本 README 顶部的 Shields/dshfind 图片链接生成。
  • 市场截图按当前约定由插件自己仓库根目录的 screenshots.json 声明(本项目声明了 screenshots.json,含使用界面截图),注册表 data/screenshots.json 是旧约定下的回退,不再添加新键(本项目已在提交前撤销该文件的改动)。
  • 市场图标/占位图由具体市场的展示规则决定,并不是 npm package.json 的通用字段,也不是 README 徽章。

已知限制

  • 依赖 WorkBuddy 客户端接口(非官方开放 API),WorkBuddy 更新后插件可能需要随之调整。
  • 账号切换基于 WorkBuddy 桌面端留下的历史 auth 文件(App 自身的备份产物),并非官方多账号 API。默认行为仍是跟随 App 当前登录;切换账号是显式选项,且历史凭据可能因 App 清理或退出登录而失效。
  • Windows / Linux 的凭据默认路径为按平台约定推导,未经真机验证;必要时可通过环境变量 WORKBUDDY_AUTH_FILE 指定实际位置。

免责声明

  • 本项目仅供个人学习和研究使用,仅驱动使用者自己的 WorkBuddy 账号在本机调用,请勿用于商业用途或超出个人合理使用的场景。
  • 使用者需遵守 WorkBuddy 的服务条款;因使用本项目产生的任何后果(包括但不限于账号被限制、额度被清空、服务中断),由使用者自行承担。
  • 本项目作者不对任何因使用或滥用本项目产生的直接或间接损失负责。
  • 本项目与腾讯、WorkBuddy、DeepSeek 均无关联,未获其授权或认可;文中出现的名称仅用于描述兼容关系,其商标权利归各自所有。

致谢

本项目的实现建立在他人已公开的工作之上。以下内容如实标注来源与许可证,我们对此保持充分尊重:

连接内核的参照

  • corrinehu/dsh-workbuddy-connect(MIT,Copyright (c) 2026 Corrine Hu)— 本项目的主要参照。WorkBuddy 接入 DeepSeek Harness 的完整可行方案由该项目首先验证:桌面端凭据的发现与刷新机制、上游协议与请求头约定、loopback shim 的入站加固、pi-ai provider 的装配方式、以及状态诊断 CLI,均以其为参照。本项目在保留这些已验证能力的基础上重写,着重改善使用体验。
  • Sliverkiss/workbuddy2api(MIT)— WorkBuddy 上游协议(copilot.tencent.com 的 wire behavior)的参照实现,经 dsh-workbuddy-connect 转引。

插件呈现与结构的基线

  • dingminhua/dsh-connect-trae(MIT,Copyright (c) 2026 LaoDing)— 插件的呈现方式与其保持一致:设置卡片的结构与交互、模型管理(刷新 → 勾选 → 保存)与账号选择模型、只读的 host↔client 路由形态,以及 npm 发布工程。
  • dingminhua/dsh-subagent-default-model(MIT,Copyright (c) 2026 LaoDing)— dsm-* 卡片风格体系、row.* 双语文案键约定与品牌图标的来源,经 dsh-connect-trae 转引。
  • franksong2702/dsh-codex-connect(Apache-2.0)— DSH 插件结构与 provider 注册的参照,经 dsh-workbuddy-connect 转引;其 Apache-2.0 义务在 THIRD_PARTY_NOTICES.md 中单独履行。

说明

以上项目的版权归各自作者所有。本项目采用借鉴设计思路 + 独立实现的方式,未整体复制任何参考项目的源码;关键模块均为独立编写,并在源文件头部注释中标注了所参考的具体项目与模式。若你发现本项目的标注有遗漏或不当之处,请提交 issue,我们会立即更正。

第三方开源依赖

本项目参考的开源项目、其许可证与合规说明,完整记录见 THIRD_PARTY_NOTICES.md。引入新的与 WorkBuddy 接入相关的外部依赖或复用其他项目代码时,请同步更新该文件并遵守对应许可证要求。

许可证

本项目采用 MIT 许可证,版权归属:Copyright (c) 2026 LaoDing

Plugins associés