dsh-plugin-workbuddy-lite
Verifieddsh-plugin-workbuddy-lite · v0.1.14 · MIT · Web UI
WorkBuddy Lite —— WorkBuddy 浏览器登录 + CodeBuddy CLI API Key 双认证的 DeepSeek Harness 模型接入插件
Install
dsh plugin add dsh-plugin-workbuddy-lite Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Creators
Readme
dsh-plugin-workbuddy-lite
WorkBuddy 浏览器登录 + CodeBuddy CLI API Key 双认证的 DeepSeek Harness provider。

把 WorkBuddy / CodeBuddy 的模型接进 DSH:打开输入框下方、与上下文进度条同一行的 CodeBuddy 入口(或 设置 → CodeBuddy),选一种认证方式——用浏览器登录 WorkBuddy,或粘贴 CodeBuddy CLI 平台签发的 API Key。插件会在 ctx.llm 上注册 codebuddy provider,模型目录、聊天流、工具调用、推理档位与图片输入都走 CodeBuddy 官方协议。
本项目是一个第三方适配器,不属于 WorkBuddy、CodeBuddy 或 DeepSeek Harness 官方项目。
GitHub:https://github.com/zhouxf08/dsh-plugin-workbuddy-lite
功能
- 输入框下方入口:在输入框下方的统计/上下文进度条同一行常驻 CodeBuddy 按钮,点开就是配置弹层
- 两种认证方式,随时切换
- WorkBuddy 浏览器:点击登录 → 打开 WorkBuddy 授权页 → 授权完成后自动落库账号与模型目录;
- CodeBuddy CLI API Key:粘贴平台 API Key,支持中国版 / 海外版 / iOA / 自定义服务地址。
- 多账号:WorkBuddy 账号与 API Key 都可以保存多个并切换。
- 实时代理模型目录:以 WorkBuddy App 通道身份读取
/v3/config,拿到完整目录(47 个对话模型),保留上下文窗口、输出上限、图片能力与思考档位。 - 模型管理:逐项勾选启用/禁用,偏好持久化,上游新增模型默认启用。
- 积分余额:只读读取当前账号余额与积分包数量,可手动刷新。
- 诊断连接:一键输出凭据、目录地址、模型数、积分与会话有效期,便于定位上游问题。
- 上游错误分类:排队、渠道校验、模型繁忙、积分耗尽、会话失效分别给出可执行提示。
- OpenAI 兼容流式聊天:SSE 解析、工具调用增量、推理内容、usage 统计。
- 图片输入:通过 DSH 的 attachment seam 读取并按官方压缩档发送。
- 无需重启:登录、切换账号、保存 API Key 后通过
llm/adapters-updated即时刷新模型选择器(Web 端)。 - 凭据安全:Key / token 只写入
ctx.credentials;设置页只显示掩码,HTTP 路由只接受本机同源 POST。
环境要求
- DSH
0.2.1-rc.2(web/desktopprofile,带浏览器载体) - Node.js
>= 22.19.0
安装
先把插件打成 tarball,再把 tarball 装进 profile:
cd dsh-plugin-workbuddy-lite
npm pack
./install.sh
install.sh 会优先用 PATH 里的 dsh;没有时自动改用 DeepSeek Harness.app
自带的 Electron 以 Node 模式执行同一个 CLI。也可以手动执行:
dsh plugin --profile web add ./dsh-plugin-workbuddy-lite-0.1.14.tgz
不要直接
dsh plugin add本目录:本地目录会以 pnpmlink:方式安装,插件运行时 解析不到 DSH 宿主提供的@deepseek-ai/*peer 依赖,Loader 会报failed to import。tarball 安装会把包内容复制进 profile,宿主依赖按正常方式解析。
装完完全退出 DSH 再打开(macOS 用 ⌘Q,不是关窗口)。侧边栏 设置 → CodeBuddy
出现认证页即安装成功。
桌面端(DSH.app)
桌面 profile 由 DSH.app 独占管理,不能直接用 dsh plugin --profile desktop 修改。
请在应用里操作:
- 先在 插件 页卸载或禁用旧包
dsh-plugin-workbuddy-codebuddy; - 点 添加插件,在「包名或地址」里填 tarball 的绝对路径,例如:
/Users/you/dsh-plugin-workbuddy-lite/dsh-plugin-workbuddy-lite-0.1.14.tgz - 安装完成后如果出现「立即启用」,点一次;没有的话重启 DSH.app;
- 打开 账号菜单 → 设置 → CodeBuddy 测试。
旧包和新包都注册
codebuddyprovider 路由,不能同时启用。新包沿用CODEBUDDY_WORKBUDDY_SESSIONS/CODEBUDDY_API_KEYS两个凭据引用,所以已保存的 账号和 API Key 通常可以直接沿用。
如果已经装了别的 CodeBuddy provider 插件(例如 @tnnevol/dsh-codebuddy、
@mybna134/dsh-llm-codebuddy,或更名前的 dsh-plugin-workbuddy-codebuddy),
请先移除或禁用,否则两个插件会争用同一个 codebuddy provider 路由。
本插件是
dsh-plugin-workbuddy-codebuddy的更名版本(新包名dsh-plugin-workbuddy-lite)。从旧包升级时,请先卸载旧包,再安装本包。
使用
打开配置
输入框下方、与上下文进度条同一行的 CodeBuddy 按钮,或 账号菜单 → 设置 → CodeBuddy,二选一。
方式一:WorkBuddy 浏览器登录
- 打开 CodeBuddy 配置弹层;
- 选择 WorkBuddy 浏览器;
- 点 登录 WorkBuddy,浏览器会打开 WorkBuddy 授权页;
- 完成授权后回到 DSH,页面会自动显示账号与模型数量。
登录 URL 也会以链接形式显示在按钮旁边,弹窗被浏览器拦截时可以手动点击。
方式二:CodeBuddy CLI API Key
- 打开 CodeBuddy 配置弹层;
- 选择 CodeBuddy CLI API Key;
- 选择服务环境:
- 中国版:https://copilot.tencent.com/profile/
- 海外版:https://www.codebuddy.ai/profile/keys
- iOA 企业版:在 iOA 平台获取 Key
- 自定义:填写企业自建服务地址
- 粘贴 Key,可填备注名,点 保存并使用。
- 保存前会先测试模型目录;失败时错误信息会带上实际请求地址,点 测试连接 可随时复测。
自定义服务地址只填服务根,例如
https://copilot.tencent.com。插件会自动去掉误填的/profile/keys、/v2/chat/completions等后缀;OpenAI 兼容的/v1地址会被拒绝。
保存时插件会先用该 Key 拉一次模型目录;拉不到模型会拒绝保存并给出错误,不会把无效 Key 落库。
也可以不保存、直接用环境变量:
export CODEBUDDY_API_KEY="your-api-key"
export CODEBUDDY_INTERNET_ENVIRONMENT=internal # 中国版;海外版不设置
环境变量 Key 会出现在设置页的 API Key 列表里(标记为环境变量,只显示掩码)。
模型选择
认证成功后,模型出现在 DSH 的模型选择器里,provider 名为 CodeBuddy。选择器和设置页里的模型名带官方倍率后缀(例如 GLM-5.3 · x0.79),请求实际使用的仍是模型 id。
数据与安全
| 数据 | 位置 |
|---|---|
| WorkBuddy access/refresh token | DSH 凭据服务(CODEBUDDY_WORKBUDDY_SESSIONS) |
| CodeBuddy API Key | DSH 凭据服务(每个 Key 一个 CODEBUDDY_API_KEY_* 引用) |
| Key 元数据(备注、环境、账号快照) | DSH 凭据服务(CODEBUDDY_API_KEYS) |
| 当前认证模式 | profile 的设置节 workbuddy-lite |
| 模型目录 | 仅进程内缓存,不落盘 |
- 设置页
/status只返回掩码与账号元数据; - 所有写操作只接受
127.0.0.1/::1回环地址与同源 POST; - 不会把 token / Key 写进
cordis.patch.yml或日志。
开发
npm install # 安装测试所需的 DSH 运行时包
npm test # 纯函数 + 本地 mock SSE 测试,不需要浏览器
# 语法检查
for f in index.js lib/*.js; do node --check "$f"; done
目录:
index.js provider 注册、凭据解析、模型缓存、设置页 runtime
lib/constants.js 协议常量与凭据引用名
lib/clients.js 两类客户端的身份头与环境解析
lib/workbuddy-auth.js WorkBuddy OAuth 握手/轮询/刷新/会话集合
lib/api-keys.js API Key 集合与凭据服务读写
lib/catalog.js /v3/config 模型目录、/v2/accounts 账号
lib/credits.js /v2/billing/meter/get-user-resource 只读积分
lib/model-prefs.js 模型启用/禁用偏好
lib/errors.js 上游业务码分类与渠道指纹自愈
lib/adapter.js Chat Completions 序列化 + SSE → DSH chunk
lib/web.js 设置页 HTTP 路由(仅回环同源)
lib/client.js 设置页 React 组件(settings.section + 输入框入口)
test/ 纯函数测试
更新记录
0.1.14
- 新增诊断连接:一次性输出当前凭据、目录地址、聊天地址、模型数、积分、会话有效期,便于把上游问题整段贴出来。
0.1.13
- 新增上游错误分类:排队(6020/6021/6022)、渠道校验(11128)、模型繁忙(14003)、积分耗尽(14018)、会话失效、内容策略分别给出可执行提示,不再统一显示 HTTP 400。
- 渠道指纹自愈重试:收到
11128 / unapproved channel时,把每条 system 消息强制加上中性开头后重试一次,覆盖上游新增的未知指纹。
0.1.12
- 修复 WorkBuddy
11128 / Illegal API invocation from an unapproved channel:DSH 默认 system prompt 开头会被渠道指纹命中,现在自动加中性开头;缺少 system 消息时补一个最小占位。
0.1.11
- 修复 WorkBuddy
11128 / conversation id missing:聊天请求补上官方客户端的会话身份三连(X-Conversation-ID/-Request-ID/-Message-ID)。
0.1.10
/v3/config改用 WorkBuddy App 通道 UA(WorkBuddy/5.8.3 WorkBuddy/5.8.3 CLI/2.161.0)。上游按 UA 通道下发不同目录,CLI 通道只有 37 个模型,App 通道有 62 个;对话模型从 26 个增加到 47 个,包含DeepSeek-V4.1-Flash、GLM-5.3、Kimi-K3、MiniMax-M3、Hy4 preview等。- 聊天通道继续使用 CLI 身份(
CLI/2.63.2)。
0.1.9
- 新增积分余额:只读读取
POST /v2/billing/meter/get-user-resource,优先使用*Precise字段,显示总额与积分包数量,可手动刷新。
0.1.8
- 新增模型管理:逐项勾选启用/禁用,支持全选/全不选,偏好持久化;未勾选的模型不会出现在 DSH 模型选择器里,上游新增模型默认启用。
0.1.7
- WorkBuddy 模型列表改为读取
/v3/config的完整models目录,过滤出所有支持工具调用的对话模型,不再只显示craft的 10 个推荐模型。
0.1.6
- WorkBuddy 的
/v3/config没有cliagent,模型目录改按craftagent 解析,修复 WorkBuddy 登录后「没有返回该凭据可用的模型」。
0.1.5
- 修复 DSH 0.2.1 的
role: "tool"消息序列化。Tool 结果现在紧跟在对应 assistanttool_calls后发出,tool call id 超过 64 字符时使用稳定短别名,纯工具调用回合的 assistantcontent使用空字符串。解决 CodeBuddycode 11148 / tool calls and tool results do not match。
0.1.4
- 配置入口移到输入框下方、与上下文进度条同一行。
0.1.3
- 端到端适配 DSH 0.2.1,补齐
compatibility.json,地址自动规范化。
已知限制
- 依赖 CodeBuddy 的内部聊天端点;官方没有公开稳定性承诺,服务端协议变化可能需要跟进。
- 只支持流式聊天;非流式请求未实现(DSH agent 本身使用流式)。
- API Key 保存时会拉取模型目录,因此需要能访问对应环境的网络。
- 模型目录为空时 provider 不会出现在模型选择器里;检查 Key 权限或网络后点「刷新模型目录」。
- iOA 环境使用默认 SSO 域;特殊企业域需要选「自定义服务地址」。
License
致谢
协议细节参考了社区项目:
FNOSP/fnos-dsh的 CodeBuddy provider 与 WorkBuddy OAuth 实现;@dsh-sparrow/dsh-codebuddy-credits的 API Key //v3/config适配经验;@mybna134/dsh-llm-codebuddy的双认证结构;dingminhua/dsh-connect-workbuddy的上游错误分类、渠道指纹自愈、App 通道目录 UA 与只读积分实现。