Configure DeepSeek Harness
DeepSeek Harness (dsh) supports a custom OpenAI-compatible provider and can call InOneAPI through the Chat Completions protocol. DeepSeek Harness is currently in developer preview, and upstream may ship breaking changes; re-check your configuration after an upgrade.
Install and start
Install Node.js and run:
npx @deepseek-ai/dsh web
The default Web UI address is http://127.0.0.1:3080. On a remote host, use --no-open and reach the interface through a secure SSH port forward; do not expose the management port directly.
Add a provider in the interface
Open Settings → Models → Add a custom provider and enter:
| Field | Value |
|---|---|
| Provider ID | inoneapi |
| Display name | InOneAPI |
| Base URL | https://api.inoneapi.com/v1 |
| API protocol | openai-completions |
| API key | InOneAPI project key |
| Model | YOUR_MODEL_ID from the model detail page |
The model detail page offers this interface wizard first, so you do not have to write a credentials file by hand. The wizard stores the credential in $DSH_HOME/.credentials.yaml, and the configuration only references it. After you save, select a model under inoneapi in the model picker and start a new session; sessions that have already sent a request may keep the previous model. A failed model probe does not necessarily mean requests fail, and you can add the model ID manually.
Optional: use a configuration file
You can also edit $DSH_HOME/settings.yaml; the default DSH_HOME is ~/.dsh:
llm-pi-ai:
providers:
inoneapi:
displayName: InOneAPI
apiKeyEnv: INONEAPI_API_KEY
api: openai-completions
baseURL: https://api.inoneapi.com/v1
models:
- id: "YOUR_MODEL_ID"
name: "YOUR_MODEL_ID"
Put the credential in ~/.dsh/.env instead of settings.yaml:
INONEAPI_API_KEY=ioa_sk_...
chmod 600 ~/.dsh/.env
The configuration is re-read on the next request, so a restart is usually not required.
Model capability declarations
Manually added models are treated as text-only by default. When a model really accepts image input, declare it explicitly:
llm-pi-ai:
providers:
inoneapi:
apiKeyEnv: INONEAPI_API_KEY
api: openai-completions
baseURL: https://api.inoneapi.com/v1
models:
- id: "YOUR_MODEL_ID"
input: [text, image]
Add a declaration only when the model detail page confirms that capability. The configuration does not verify whether the upstream accepts images.
Verify and troubleshoot
Start a new session, run a short task, and check InOneAPI Trace. Common issues:
MISSING_CREDENTIALor401: checkINONEAPI_API_KEYand where the.envfile is located.UNKNOWN_MODELor404: add the exact model ID manually and check the project's model restrictions.- Empty model list: enter the model ID directly; model discovery is only a convenience feature.
- Reasoning-model parameters rejected: remove the custom reasoning declaration first, keep the endpoint's default behavior, then adjust one Harness-compatible field at a time per the official documentation.
DeepSeek Harness plugins and its shell can perform actions on your machine. Give it a dedicated key, a limited budget and the smallest usable model scope, and keep its own sandbox and approval settings.
CC Switch's current provider import protocol does not list DeepSeek Harness, so no import button is offered.
Official reference: DeepSeek Harness model configuration.