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 first
  • round-robin: rotate in order
  • balanced: random, biased toward accounts that have been idle longer
  • sticky: 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 to www.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-flash vs deepseek-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.