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:

FieldValue
Provider IDinoneapi
Display nameInOneAPI
Base URLhttps://api.inoneapi.com/v1
API protocolopenai-completions
API keyInOneAPI project key
ModelYOUR_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_CREDENTIAL or 401: check INONEAPI_API_KEY and where the .env file is located.
  • UNKNOWN_MODEL or 404: 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.

DeepSeek Harness · Documentation · InOneAPI