Preface¶
A common way to connect models in DeepSeek Harness (DSH) is to install a “single-account connection” plugin that binds to one upstream account at a time. When using the WorkBuddy desktop app day-to-day, people often switch between multiple accounts and run into rate limits or run out of credits. If each account requires a separate provider, you have to manually choose an account and also handle switching after a 429.
DSH XD Pool (dsh-xdpool, maintained by XDTrees) changes the approach to a “pool”: it automatically discovers and persists the WorkBuddy accounts logged in on the local machine, and requests fail over to another account inside the pool. On top of that, it adds QR-code login, aggregation of free quotas from multiple vendors, a usage dashboard, model routing, a local OpenAI-compatible gateway, and credit automation. The plugin is categorized as model inference in the DSH community directory; the repo XDTrees/dsh-xdpool is MIT licensed (about 222 GitHub stars as of the time this information was retrieved).
Below is a description organized by positioning, capabilities, installation, and usage. All facts come from the plugin README and package.json (current package version 2.4.2).
What is it¶
In one sentence: unify the free or locally logged-in model quotas you have into a single xdpool provider group in DSH.
Unlike dsh-workbuddy-connect compared in the README, which is “one account at a time,” XD Pool works with multiple accounts by default—no manual account picking, no manually imported account list in the plugin. Accounts logged in via the desktop app are discovered and saved across restarts, exposed through a unified group, and automatically fail over within the pool.
The settings UI is in the DSH settings panel (the gear icon in the bottom-left of the sidebar, or Ctrl+Alt+,). On host 0.2.0, XD Pool is at the same level as “General settings / Models / Built-in plugins / Agent presets.” In the 0.1.x era the path was “Settings → Plugins → DSH WorkBuddy XD Pool”; after upgrading the host, look under the new entry.
The card has seven pages with the following responsibilities (excerpted from the README table):
| Page | Purpose |
|---|---|
| Account pool | Local WorkBuddy accounts, pool health, real-time usage, credit automation |
| QR-code login | Thirteen vendors supporting web/QR login; log in once to enter the model selector |
| Aggregated channels | Free quotas from 76 vendors into the same pool (disabled by default; enabled after you enter a key) |
| Data dashboard | Today’s turns, calls, failures, failover recoveries, tokens, cache hits, speed, etc. |
| billion-context | Read-only observation of the local billion-context compressor status |
| Routing | Chain multiple models into a sequence used in order or round-robin |
| Gateway | Expose the pool as a local OpenAI-compatible endpoint for other devices on the LAN |
After installation, the model selector will show groups such as XD Pool (China edition) and XD Pool (international edition); “Aggregated channels” and XD Pool · Free Models appear as needed.
Core features¶
Multi-account pool and allocation strategies¶
Prerequisite: install the WorkBuddy desktop app and log in. For multiple accounts, switch logins inside the app; each login is automatically added to the pool.
- Zero-config discovery: after installing and opening the plugin, accounts are discovered automatically and persisted; they survive restarts.
- Automatic failover: an account that hits 429 enters cooldown, and subsequent requests go to healthy accounts; requests are queued only when all accounts are cooling down.
- Four allocation strategies (switchable in the card; default
priority): priority: drain the current account firstround-robin: rotate in orderbalanced: random, biased toward accounts that have been idle longersticky: keep the same account for a single conversation (to avoid losing upstream per-account isolated caches when switching mid-conversation)- China / international editions: automatically select the upstream based on the credential login domain (China defaults to
copilot.tencent.com, international towww.workbuddy.ai); both can coexist in the same pool. - Rate-limit guidance: when a free tier is in cooldown, the card and error messages point to the same-name paid row as an alternative (the README gives an example for the international edition:
deepseek-v4.1-flashvsdeepseek-v4.1-flash-sg).
Both the card and the CLI provide actions such as “Re-detect accounts,” “Clear all cooldowns,” and “Daily check-in.”
Credit automation¶
Everyday tasks related to the China edition’s Growth Center can be executed in the background; the international edition does not show this panel (the upstream has no credit system). It is fully automatic by default, and you can also click “Run now.”
| Task | Default time | Description |
|---|---|---|
| Daily check-in | 09:00 | Claim the day’s check-in reward |
| Activity reporting | 10:00 | Report activity to the Growth Center |
| Task rewards | 11:00 | Sign up and claim rewards in the Task Center (README says it covers 13 task types) |
| Consecutive-login rewards | 12:00 | Redeem consecutive-login tiers and draw lucky draws |
| Cat travel | 09:00, 21:00 | Dispatch and collect rewards |
You can set a reserved credit floor for each account; accounts below that balance will no longer be assigned work. The README reports that in the developer’s own test, four accounts collected a total of 3300 credits and 135 energy in one round. This is only a self-report from the repository and does not constitute a general performance promise.
QR-code login and aggregated channels¶
- QR-code login: thirteen vendors; after logging in via web or QR, free models appear in the selector.
- Aggregated channels: 76 vendors with category filters (the README screenshot indicates filters such as API Key, Free, Local, etc.). By default, none are enabled; they become active after you enter the corresponding key.
Routing, gateway, and observability¶
- Routing: chain multiple models into a sequence and call them in order or round-robin.
- Gateway: a local OpenAI-compatible endpoint, so other clients or LAN devices can reuse the same pool.
- Data dashboard and billion-context pages focus on call statistics and read-only status of the local compressor, respectively.
The model catalog displays labels such as credit multipliers, free/time-limited-free/night discounts, whether it accepts images, context window, and more; it refreshes with the upstream.
Installation and enabling¶
Environment: package.json requires Node ^22.19.0 || >=24.0.0 and DSH >=0.1.5-rc.1 <0.3.0. The README states compatibility with 0.1.x starting from host 0.1.1-rc.2, and with 0.2.0-rc.2.
Method 1: npm (recommended)
# If dsh is not on PATH, use node ~/.dsh/profiles/node_modules/@deepseek-ai/dsh/lib/bin.js instead of dsh
dsh plugin --profile desktop add dsh-xdpool
The README explains that the npm method pulls only the plugin itself, so it is faster; installing from GitHub source brings in dev dependencies and takes more time and space.
Method 2: GitHub
dsh plugin --profile desktop add github:XDTrees/dsh-xdpool
Method 3: manually register a bundle (first install the package via npm or GitHub, then add "dsh-xdpool" at the end of dsh.profile.bundles in ~/.dsh/profiles/desktop/package.json, and restart DSH Desktop).
For Web/TUI, use --profile web or --profile dsh-tui.
Upgrading from the old dsh-workbuddy-xdpool¶
Starting from 2.1.0, the package name changed to dsh-xdpool. The data directory moved from ~/.dsh/.workbuddy-xdpool to ~/.dsh/.xdpool (copied on startup; the old directory is retained). If the host “default model” still uses the old provider id, manually change it to the new id, for example:
| Old id | New id |
|---|---|
workbuddy-xdpool |
xdpool |
workbuddy-xdpool-global |
xdpool-global |
workbuddy-xdpool-aggregate |
xdpool-aggregate |
workbuddy-xdpool-free |
xdpool-free |
Example (~/.dsh/profiles/desktop/home/settings.yaml):
agent-default-model:
provider: xdpool # was workbuddy-xdpool
model: hy3
If you miss this change, check ~/.dsh/.xdpool/startup.log for hints.
Typical usage¶
Command line¶
Unified prefix:
dsh plugin --profile desktop exec dsh-xdpool <subcommand>
Common subcommands (excerpted from the README):
dsh plugin --profile desktop exec dsh-xdpool status # number of accounts in the pool / number cooling down; can add --credits, --json, --rates
dsh plugin --profile desktop exec dsh-xdpool accounts # discovered accounts (--json)
dsh plugin --profile desktop exec dsh-xdpool doctor # diagnostics for discovery, cooldowns, upstream connectivity
dsh plugin --profile desktop exec dsh-xdpool reset # clear all 429 cooldowns
dsh plugin --profile desktop exec dsh-xdpool checkin # view check-in; `checkin all` claims today’s check-in for all accounts
dsh plugin --profile desktop exec dsh-xdpool login # guidance to add more accounts into the pool in the desktop app
Selecting models inside DSH¶
After installation, choose models under XD Pool (China edition) or XD Pool (international edition) in a conversation or agent configuration. If you need third-party free channels, configure aggregated-channel API keys in the XD Pool settings page and use the corresponding group in the selector.
If you want other local tools to go through the same pool, enable the OpenAI-compatible endpoint in the plugin’s Gateway page per the README instructions (the exact port and path are based on the post-install UI and documentation).
Use cases and cautions¶
Who it is for
- You already use one or more accounts in the WorkBuddy desktop app and want a unified exit in DSH with automatic account switching.
- You want to consolidate multiple QR-login or key-driven free quotas into one channel, with usage visibility and simple routing.
- You use the China edition and are willing to let the plugin automate repetitive Growth Center actions like check-ins and tasks (and understand the automation behavior and account rules).
Must be aware
- DSH plugins run with the permissions of the current DSH process and will read local WorkBuddy login state and plugin-managed directories (such as
~/.dsh/.xdpool). Before installing, read the source code and the MIT license and evaluate the trust boundary yourself. - Aggregated channels involve multiple third-party services; responsibility for keys and compliant usage lies with the user. Aggregation items are disabled by default and require you to actively fill them in and enable them.
- The community plugin directory page XD Pool on SkillHub is an independent ecosystem site and is not officially affiliated with DeepSeek/幻方; versions and star counts should be taken from GitHub and npm.
Closing¶
DSH’s philosophy is “everything is a plugin.” XD Pool targets a specific pain point—“multiple accounts plus scattered free quotas”—by bringing discovery, failover, aggregation, observability, and a local gateway into a single set of xdpool groups. If you already use WorkBuddy desktop, you can install it with one npm command, confirm pool health in the settings panel’s XD Pool page, then select models or enable the gateway.
- Community directory: https://www.skillhub.cn/plugins/XDTrees/dsh-xdpool
- Source code and documentation: https://github.com/XDTrees/dsh-xdpool