DeepSeek Harness (dsh) Setup Guide
DeepSeek Harness is DeepSeek's open-source agent runtime framework (command dsh), built around the core idea of "everything is a plugin": models, tools, sessions, and other capabilities are all provided by plugins. It supports connecting to any gateway through a "custom model API" — NextHub's GPT-Azure group documentation already lists DSH as a compatible third-party tool.
Connection Steps
1. Install and Launch
You need Node.js installed (the current official LTS release is recommended). Start the Web UI directly with npx, or install it globally first and then start it:
npx @deepseek-ai/dsh webnpm install -g @deepseek-ai/dsh
dsh webOnce launched, your browser automatically opens the local management interface.
2. Add a Custom Provider (Claude Channel)
Go to Settings → Models, click Add Provider, switch the card to Custom model API, and fill it in according to the table below:
| Field | Value | Notes |
|---|---|---|
| Provider ID | nexthub | Lowercase; cannot be renamed after creation |
| Base URL | https://api.nexthub.cc | Bare domain for the Anthropic protocol, without /v1 |
| API protocol | Anthropic Messages | Corresponds to the Anthropic Messages protocol endpoint |
| Credentials (API Key) | your NextHub ApiKey | A Claude group |
| Models | claude-opus-5-5, etc. | At least one; click "Fetch available models" to pull them automatically |
After saving, select the model you just added in the conversation's model list to use it.
3. Connect the GPT Channel (Optional)
A provider speaks only one protocol, so if you need GPT, create another one: set the Provider ID to nexthub-gpt, choose OpenAI Chat Completions (or OpenAI Responses) for the API protocol, fill in https://api.nexthub.cc/v1 (with /v1) for the Base URL, use a GPT-Azure / GPT-Pro group key as the API Key, and set the model to gpt-5.6, gpt-6-astra, and so on.
4. Verify
Select a NextHub model in the conversation and send a message. If you get a normal reply, you are connected.
Configuring via File (Optional)
The configuration above is ultimately written to $DSH_HOME/profiles/web/cordis.patch.yml (DSH_HOME defaults to ~/.dsh); you can also edit this file directly:
- id: llm-pi-ai
config:
providers:
nexthub:
apiKeyEnv: NEXTHUB_API_KEY
api: anthropic-messages
baseURL: https://api.nexthub.cc
models:
- id: claude-opus-5-5
- id: claude-fable-5apiKeyEnv takes the name of an environment variable (the key itself is read from that environment variable); keys saved through the UI are instead stored in $DSH_HOME/.credentials.yaml. Changes take effect on the next request without a restart.
Vision models must declare input types
Manually entered models are treated as text-only by default. To send images to a model, check Image under Input types in the model's Model options (corresponding to the config input: [text, image]); otherwise the image is rejected before it is sent.