Introduction¶
DeepSeek Harness (DSH) uses a plugin architecture and can expand its features to support different model providers. Manually adding routes and credentials in configuration files is often cumbersome and error-prone. This plugin simplifies the process of adding a provider to “select, paste Key, enable” through UI cards and CLI tools.
Plugin Overview¶
- Name:
dddmuc/dsh-provider-hub - Owner: DDDMUC
- Category: Model Inference
- License: MIT
- Description: DSH plugin: add a provider by pasting an API Key with one click, includes 50+ built-in presets and multi-application compatibility (OpenAI/Anthropic compatible).
Installation¶
Install it through the DSH plugin manager:
dsh plugin --profile web add dsh-provider-hub
After installation, restart dsh web and open Settings → Models. A “Provider Presets” card will appear at the bottom of the page.
Core Features¶
- One-click route and credential writing: The plugin writes the
llm-pi-airoute and credentials through the official service. There is no need to manually editsettings.yamlor restart the service. - 50+ built-in provider presets: Covers international providers such as OpenAI, Anthropic, Google, and DeepSeek, as well as subscription and standard APIs from Chinese channels such as Alibaba Cloud Bailian, Zhipu, and Volcano Ark.
- Custom provider support: Supports connecting to any OpenAI-compatible or Anthropic Messages endpoint.
- Multi-application compatibility:
- WorkBuddy: Writes to
~/.workbuddy/models.json. It writes only the definitions, and the Key is filled in within the application. - OpenCode: Writes the configuration, and the Key is stored in
auth.json. - cc-switch: Writes to
~/.cc-switch/config.json.
- WorkBuddy: Writes to
- Environment variable Key reuse: Supports referencing the Key through environment variables.
- ChatGPT Desktop patch: Adds a “Sign in with a third party” entry to the ChatGPT Desktop login page.
Usage¶
Basic Usage (DSH Web)¶
- In the “Provider Presets” card at the bottom of the settings page, click “Get Key” on the right side of the preset row.
- After obtaining the Key, paste it into the input box and click “Enable”.
- The status badge will display
RunningorWritten. - Models from the new provider will immediately appear in the model selector of the chat input box.
WorkBuddy Compatibility¶
Use the node tools/workbuddy.mjs tool to operate on the local model file ~/.workbuddy/models.json.
node tools/workbuddy.mjs list
node tools/workbuddy.mjs add-all
node tools/workbuddy.mjs add volcengine-agent-plan
node tools/workbuddy.mjs add stepfun-step-plan --key-from-dsh STEPFUN_API_KEY
node tools/workbuddy.mjs unset-key volcengine-agent-plan
Note: You need to restart the WorkBuddy application after writing.
OpenCode Compatibility¶
Use the node tools/opencode.mjs tool to operate on the configuration file.
provider-hub-opencode list
provider-hub-opencode add volcengine-agent-plan
provider-hub-opencode add longcat --key sk-...
provider-hub-opencode add-all
provider-hub-opencode migrate-key
provider-hub-opencode remove volcengine-agent-plan
Note: You need to restart OpenCode after the configuration is written.
cc-switch Compatibility¶
Use the node tools/cc-switch.mjs tool to operate on ~/.cc-switch/config.json.
provider-hub-cc-switch list
provider-hub-cc-switch add volcengine-agent-plan --key-from-dsh ARK_API_KEY
provider-hub-cc-switch add-all
provider-hub-cc-switch unset-key <presetId>
Connection Wizard¶
Automatically detect and write to multiple applications through an interactive command:
provider-hub-connect
Or use pipe input:
echo -e "3\nsk-ant-xxx\ny" | provider-hub-connect
Notes¶
- DeepSeek built-in: DSH includes the official DeepSeek adapter. The presets provided by this plugin are collapsed by default and are not displayed repeatedly.
- ChatGPT Desktop: The patch needs to be reapplied after each ChatGPT application update.
- macOS signing: The ad-hoc signature for the ChatGPT patch will lose notarization, but local execution is unaffected.
- Restart requirement: WorkBuddy and OpenCode require an application restart after configuration writing to take effect.
- No-overwrite logic: Write operations without a Key will not overwrite an existing Key.