dsh-workbuddy-bridge

dsh-workbuddy-bridge

WorkBuddy desktop models in DeepSeek Harness

把 WorkBuddy 桌面 App 的模型接进 DSH 对话窗口

powered by dsh

CI npm MIT License SLSA Build L2

Per-version changes → Releases (one-to-one with npm versions)

简体中文 · English

--- > [!NOTE] > **Credentials never leave this machine**: sign-in state is read from the WorkBuddy desktop app's own > credential file and kept as one encrypted local copy; the browser half never sees a token, and none ever appears in the UI. The CN **WorkBuddy** and the international **WorkBuddy AI** coexist: install one app and its model group appears; install both and the two groups sit side by side, each with its own account and credit. The models appear directly in the DSH model picker — no separate provider to configure.

WorkBuddy models in the DSH model picker
Chinese UI screenshot: The CN version forms its own group in the model picker, each model carrying its credit rate and promo badge; installing the international version adds a "WorkBuddy AI" group the same way.

## Capabilities - **Zero configuration** — install, enable, and the model group appears by itself. - **Two isolated versions** — "WorkBuddy" (CN) and "WorkBuddy AI" (international) each form their own group; models, accounts and credit never mix, and each follows only its own app's sign-in. - **Reasoning levels** — models that declare levels expose them directly; the rest can be **checked manually** on the plugin page. The bulb means "this model can switch levels"; a declared model shows it too, it just has nothing to detect. A switchable model also carries a **default level** (the upstream's own declaration when it has one, otherwise `high`), so the picker no longer offers "Default". **Off means "send no level parameter"**: neither endpoint accepts that literal, so the plugin never puts it on the wire — whether thinking is then actually disabled is up to the upstream, and the plugin makes no claim. - **Credit in view** — each reply shows what it consumed, and remaining credit sits beside the model picker. Nothing renders when a figure is unavailable. - **Model visibility** — tick which models appear in the picker on the card's "Models" tab, saved per signed-in account. - **Image input** — most models accept pasted or dropped images; text-only models say so explicitly. - **Three surfaces** — Web, Desktop and TUI; only the TUI lacks manual detection.

The composer row: the coin and balance, the reasoning-level bulb and the model name in one line
Chinese UI screenshot: The everyday view in the conversation window: the coin and its balance, the reasoning-level bulb, then the model name — one row, left to right.

Plugin detail page: the configuration form and the two status cards
Chinese UI screenshot: The plugin page: the configuration form on top, two cards below, each following its own app's sign-in.

## Install One prerequisite: the **WorkBuddy desktop app** is installed and signed in (WorkBuddy AI for the international version) — the plugin reuses the app's sign-in state. ```sh dsh plugin --profile web add dsh-workbuddy-bridge dsh web ``` For Desktop and TUI swap `--profile web` for `desktop` / `dsh-tui` (the TUI needs a recent version of the terminal plugin `@deepseek-harness-tui/dsh-tui` — see its docs). Or from source: ```sh git clone https://github.com/dsh-plugin-lab/dsh-workbuddy-bridge.git cd dsh-workbuddy-bridge pnpm install && pnpm build dsh plugin --profile web add "$PWD" ``` ⚠️ The `pnpm install` above is not optional: under a path install the repository has to supply its own dependencies (see [local development setup](docs/PUBLISHING.md)) — skip it and the plugin shows as "not running" (`ERR_MODULE_NOT_FOUND`). ## The plugin page Sidebar **Plugins** → installed → click **DSH WorkBuddy Bridge**. The configuration area sits right under the description and takes effect on save: - **Sign-in file paths** (CN / international) — leave blank to use the app's own location. - **Allow reasoning-level detection** and **use the largest declared context window** — two switches.

Models tab: visibility, windows, rates
Chinese UI screenshot: The Models tab: tick which models appear in the picker, and read each one's window and rate.

Detection tab: one row per reasoning model Credits tab: the total balance and per-package allowances
Chinese UI screenshots: Left, "Detection": one row per reasoning model — press the button to confirm which reasoning levels it accepts. Right, "Credits": the total balance, each package's allowance as a row below.

## Why detection is manual The WorkBuddy API does not guarantee that level information is reliable — some models were observed to **accept** `reasoning_effort` while silently ignoring unknown values. So the plugin does not guess: it confirms one model at a time with a few real requests on demand, and a result only means **the upstream currently accepts that level** — it does not promise any change in behaviour. Models that declare their levels skip this step and use the declared set directly. Mechanism and trade-offs in [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).

The reasoning-level control: levels declared upstream, detect disabled
Chinese UI screenshot: A model with declared levels: the bulb is lit, the levels are directly selectable, and detection is disabled.

## Compatibility and limits A group without credentials does not appear. The host version floor, platform support, where the model catalog comes from and known gaps → [docs/COMPATIBILITY.md](docs/COMPATIBILITY.md). Design notes → [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md); release process → [docs/PUBLISHING.md](docs/PUBLISHING.md); maintainer map → [AGENTS.md](AGENTS.md). ## Disclaimer - This project is **for personal study and research only**; it drives your own WorkBuddy account on your own machine. Do not use it commercially. - You must comply with WorkBuddy's terms of service; any consequences are your own responsibility. - Not affiliated with, nor endorsed by, Tencent, WorkBuddy, or DeepSeek; names appear only to describe compatibility, and trademarks belong to their owners. ## Acknowledgements - [Sliverkiss/workbuddy2api](https://github.com/Sliverkiss/workbuddy2api) (MIT) — reference for the WorkBuddy upstream protocol. - [franksong2702/dsh-codex-connect](https://github.com/franksong2702/dsh-codex-connect) (Apache-2.0) — reference for DSH plugin structure and provider registration. ## License [MIT](LICENSE). ## Contributing Bugs and requests go to the repo Issues.