DSH WorkBuddy Connect
corrinehu/dsh-workbuddy-connect将 WorkBuddy 桌面 App 包含的模型自动接入 DeepSeek Harness,在 DSH 对话窗口里零配置使用。
Bring WorkBuddy's free and paid models (domestic and international) into DeepSeek Harness — no WorkBuddy desktop app required.
English · 中文
Compatibility fork of
Faide-cyber/dsh-workbuddy, maintained by @bushizhanghan. Published as@bushizhanghan/dsh-workmate. Two code changes only: the host version range is widened to0.2.0-rc.2 ~ 0.2.1, and the client name is rewritten in outgoing request bodies. Code and license follow upstream (MIT, © Faide-cyber). Switch back to the official package once upstream ships the fix.
Two changes relative to upstream 1.0.12 (commit 9951d25); see patches/ for the full diffs:
| # | Change | Why |
|---|---|---|
| 1 | The seven @deepseek-ai/dsh-* peers go from the exact pin 0.2.0-rc.2 to >=0.2.0-rc.2 <0.2.1 || >=0.2.1-0 <0.3.0-0 | dsh compares every @deepseek-ai/dsh* peer against the running runtime before loading a plugin. An exact pin fails wholesale on 0.2.1-rc.2, so the plugin is rejected with "requires host 0.2.0-rc.2, currently running 0.2.1-rc.2". A single >=0.2.0-rc.2 <0.3.0-0 segment is not enough either: under plain semver it excludes prereleases like 0.2.1-rc.2, which surfaces as ERESOLVE at install time |
| 2 | DeepSeek Harness is rewritten to DeepSeek-Harness in the chat request body | the upstream service validates the client name, and the host's default name (with a space) is treated as an unknown client |
No host downgrade and no compatibility.json exemption needed — the range covers 0.2.1 by itself. The <0.3.0-0 upper bound is deliberate: 0.3 may change the plugin API, and this package will not pretend otherwise.
dsh plugin --profile web add @bushizhanghan/dsh-workmate
dsh web
x0.00 right now.You can also sign in from a terminal:
dsh plugin --profile web exec dsh-workmate login
Restart dsh web after installing, updating, or signing in. Refreshing the browser is not enough — Node modules stay in memory.
The default model can be set in ~/.dsh/settings.yaml:
agent-default-model:
provider: workbuddy-ai
model: hy3
reasoningEffort: high
Use an id the region actually lists: the model list is whatever that region's live catalog returns, so a pinned default can become stale. hy3 is free in both regions at the time of writing.
Each region uses the official CLI auth endpoints independently:
POST /v2/plugin/auth/state?platform=CLI&nonce= (international www.workbuddy.ai, domestic copilot.tencent.com)authUrlGET /v2/plugin/auth/token?state= (upstream returns 11217 while still pending)$DSH_HOME/.workbuddy-ai-auth.json, domestic $DSH_HOME/.workbuddy-cn-auth.jsonThe desktop app's workbuddy-desktop-ai.info (international) and workbuddy-desktop.info (domestic) are read-only — the plugin never writes them. It only stores its own per-region credential copies obtained through OAuth.
The settings card lists every imported account. Switching only affects subsequent requests; in-flight requests keep using the original account, and bulk credit/check-in operations do not change the current selection.
Disconnect / logout only deletes that region's own plugin credentials; the desktop app is untouched.
Settings → Plugins → DSH WorkBuddy:
Or configure it in the profile's cordis.patch.yml:
- id: llm-workbuddy
config:
modelScope: free # international: or all
cnModelScope: free # domestic: or all
probeConsent: false # real model probing off by default
autoCheckin: false # domestic auto check-in off by default
refreshActiveMinutes: 15
refreshInactiveMinutes: 60
# Hosts used to reach DSH Web over the LAN (do not add these to LOOPBACK)
# allowedHosts: ["192.168.1.10"]
# authFile / cnAuthFile: rarely needed; only for a non-default desktop credential path
Environment variables:
| Variable | Effect |
|---|---|
DSH_WORKBUDDY_AUTH_FILE | Override the international desktop credential path (OAuth credentials still go to the plugin's own file) |
DSH_WORKBUDDY_CN_AUTH_FILE | Override the domestic desktop credential path |
dsh plugin --profile web exec dsh-workmate login
dsh plugin --profile web exec dsh-workmate status
dsh plugin --profile web exec dsh-workmate doctor
dsh plugin --profile web exec dsh-workmate logout
status / doctor accept --json. logout only deletes $DSH_HOME/.workbuddy-ai-auth.json.
| Symptom | Fix |
|---|---|
| No card in settings / no WorkBuddy in the model list | Restart dsh web; refreshing the browser is not enough |
dsh web exits after clicking Connect | On headless Linux without xdg-open, update to a build with spawn error handling; use the sign-in link on the card |
403 request-not-trusted when opening the card over a LAN IP | Add that IP/hostname to allowedHosts; do not put it in the loopback list |
| Signed in but no models | The region's catalog request failed or returned nothing — check connectivity and whether the token is still valid; the list stays empty rather than borrowing the other region's models |
doctor says signed-out | Run login first, or confirm the international desktop app is signed in |
| Want paid models | Switch the scope to "All models" on the settings card — credits will be burned |
dsh plugin --profile web exec dsh-workmate doctor
For personal learning and research only, driving your own WorkBuddy account on your own machine. Follow the WorkBuddy terms of service. This project is not affiliated with Tencent, WorkBuddy, or DeepSeek.