DeepSeek Harness
Connect DeepSeek Harness through a Custom model API
DeepSeek Harness (dsh) supports custom gateways,
not only DeepSeek models. It is a developer preview; menus may change between versions.
1. Start the Web UI
Install Node.js as required by the project, then run:
npx @deepseek-ai/dsh webOpen http://127.0.0.1:3080 if it does not launch automatically. Keep the terminal running.
2. Add a Custom model API
Open Settings → Models → Add model provider and switch to Custom model API.
| Field | Chat Completions value |
|---|---|
| Provider ID | vnaipro-chat |
| Display name | VNAI Pro |
| Base URL | https://api.vnaipro.app/v1 |
| API protocol | OpenAI Chat Completions (openai-completions) |
| API key / Credential | A key created on your gateway website |
Use a lowercase provider ID; it cannot be renamed after creation. Do not choose the built-in DeepSeek provider for a custom gateway; the preset uses the vendor's endpoint/catalog.
3. Add models
Under Model catalog, choose Fetch available models, select models available to your key, then Add selected. If discovery fails, enter IDs manually from Check models. Save/create the provider to persist the configuration.
Set context/output limits and input types to the model's actual capabilities when needed. Enable Image only for a model that accepts images.
4. Choose another protocol when needed
| Model/channel | Suggested provider ID | API protocol | Base URL |
|---|---|---|---|
| Responses | vnaipro-responses | OpenAI Responses (openai-responses) | https://api.vnaipro.app/v1 |
| Native Claude | vnaipro-claude | Anthropic Messages (anthropic-messages) | https://api.vnaipro.app |
Each provider uses one protocol. Create separate providers for a gateway offering multiple protocols. If Anthropic discovery fails at the root URL, add model IDs manually; do not change the inference URL just to fetch a catalog.
5. Test a new session
Select the model in the picker, create a new session, send a short prompt, and test a file read. A session that has already sent a request may retain its logged model; changing the default does not update all old sessions. Check gateway usage history.
MISSING_CREDENTIAL: save the correct provider's key.UNKNOWN_MODEL: add/select the exact model ID.- Rejected
developerormax_completion_tokens: compare the error with Request compatibility in the official guide; change only fields required by your channel. - Model changes apply to the next request and normally need no server restart.
Sources: README and launch instructions, Configure models.