DeepSeek Harness Third-Party Key Setup — APIMaster.ai Custom Provider
How to add an APIMaster.ai OpenAI-compatible API key in DeepSeek Harness (dsh). Open Settings → Models → Add a custom provider, set Base URL, API key, and model IDs, then pick the model in chat.
DeepSeek Harness (dsh) is DeepSeek's open-source local agent framework. The Web UI defaults to http://127.0.0.1:3080. The built-in DeepSeek card only accepts an official DeepSeek key. To use GPT / Claude / DeepSeek and other marketplace models via APIMaster, add a custom provider.
Get an API Key first. Keys stay on this machine in
$DSH_HOME/.credentials.yaml(default~/.dsh/). Do not share them in chat or screenshots.
Prerequisites
- Node.js
22.19+or24+. - DeepSeek Harness Web UI running. Fastest start:
npx @deepseek-ai/dsh web
Open the URL printed in the terminal (usually http://127.0.0.1:3080).
3. API Key copied from the APIMaster console.
4. Target model id from the marketplace (e.g. gpt-5.6-sol, claude-sonnet-4-6, deepseek-v4-pro).
Step 1 — Open Models settings
- Open Settings in the Web UI.
- Select Models in the sidebar.
- You will see the built-in DeepSeek card (green dot = official route configured). Do not click Edit on that card — it is the official DeepSeek key, not APIMaster.

Two buttons at the bottom:
| Button | Use |
|---|---|
| + Add provider | Catalog providers (Anthropic, OpenAI, …) |
| + Add a custom provider | APIMaster (use this) |
Step 2 — Fill in the custom provider
Click + Add a custom provider and set:
| Field | Value |
|---|---|
| Provider ID | apimaster (lowercase, starts with a letter; cannot be renamed after save) |
| Display name | apimaster or APIMaster.ai (group name in the model picker) |
| Base URL | https://apimaster.ai/v1 (include /v1) |
| API protocol | openai-completions |
| API key | Your APIMaster key (write-only; UI shows a mask afterward) |
Add at least one model. Left box = request model id, right box = display name. Use the same marketplace id on both, e.g. gpt-5.6-sol / gpt-5.6-sol. Or click Fetch available models (GET /v1/models) and pick from the list.
Use Add model for more ids (claude-sonnet-4-6, deepseek-v4-pro, …). Click Create provider.

Notes:
- Omitting
/v1breaks Fetch available models and chat. - The Models list is a whitelist for that route. An id not listed fails locally with
UNKNOWN_MODELand never leaves the machine.
Step 3 — Confirm the provider is saved
Back on Models you should see:
- DeepSeek (official; keep it if you want — it does not conflict)
- apimaster with a grey Custom badge and a green dot

To change the key or models later, click Edit. Do not create a second custom provider with the same ID.
Step 4 — Select the model in chat
- Return to the home / session composer.
- Click the model name on the right of the input bar.
- Under the apimaster group, select the model (e.g.
gpt-5.6-sol).- The picker may also list a DeepSeek group. Choose the row under apimaster so traffic uses your third-party key.

Step 5 — Send a test message
- Send a short message such as
hi. - A normal reply plus footer metrics (LLM / TTFT / tok) means the key and Base URL work.
Context injection · @deepseek-ai/dsh-system-promptis Harness's own system prompt, unrelated to APIMaster.

Troubleshooting
| Issue | Fix |
|---|---|
| Cannot find the custom form | Settings → Models → + Add a custom provider (not + Add provider, not DeepSeek Edit) |
401 / MISSING_CREDENTIAL |
Edit and paste the full key; stored in ~/.dsh/.credentials.yaml |
| 404 / connection error | Base URL must be https://apimaster.ai/v1 |
UNKNOWN_MODEL |
Add that model id under the custom provider's Models list |
| Fetch available models fails | Check the key and /v1; otherwise type ids by hand |
| Chat still uses official DeepSeek | Pick the model under the apimaster group |
| Images refused | Hand-entered models default to text-only; add input: [text, image] in ~/.dsh/settings.yaml |
| Wrong Provider ID | IDs cannot be renamed; create a new provider and Delete the old one |
Checklist
-
npx @deepseek-ai/dsh webis running - Used + Add a custom provider, not official DeepSeek Edit
- API protocol =
openai-completions - Base URL =
https://apimaster.ai/v1 - Model id from the marketplace appears under the apimaster group
-
higets a reply