Models · Independent guide

DeepSeek Harness OpenAI-Compatible Endpoint Setup

Use Custom model API for an OpenAI-compatible gateway, choose its documented protocol and URL, add an exact served model ID, and save before testing a new session. The dsh-v0.2.1-alpha.1 documentation reviewed on 2026-10-04 distinguishes discovery from inference and the native DeepSeek adapter from custom pi-ai routes.

Reviewed Oct 4, 2026Developer previewIndependent guide
Evidence status: Official documentation reviewed at dsh-v0.2.1-alpha.1 (5badb15). npm and PyPI release identities are separate; no newer local runtime result is claimed. Re-check the linked first-party source after a new release candidate.
Track setup progress →

Sharing includes the public link only, without local progress or private configuration.

Prepare the custom API connection

Record the gateway’s documented API root, protocol and one model ID. In Settings → Models → Custom model API, choose OpenAI Chat Completions, OpenAI Responses or Anthropic Messages explicitly. The provider ID is permanent; a gateway offering two protocols needs two provider configurations.

  1. Use the protocol the gateway actually exposes.
  2. Enter the key only in your local DSH provider settings.
  3. The built-in DeepSeek adapter is Messages-only in the reviewed GitHub version; do not add a protocol field to llm-deepseek.

Fetch models and save the provider

For custom Chat Completions and Responses routes, discovery uses GET {baseURL}/models with bearer authentication. Anthropic Messages discovery uses /v1/models?limit=1000 and its native authentication headers. The form can read a data array or enriched models object. Select entries and save: discovery alone does not persist the provider.

  1. For an endpoint without model listing, enter the documented model ID manually.
  2. A built-in provider shows its installed catalog, even with a custom base URL.
  3. A 401 listing result calls for a credential check; it is distinct from a later inference result.

Check the first model request

Choose the saved provider and model in a new session and send a small inspectable question. Existing sessions can retain an earlier model. Check missing credentials, unknown model IDs and request-shape rejection as separate failures. Declare image input only for models whose endpoint actually accepts it.

Repair gateway request compatibility

Some gateways reject the developer role or max_completion_tokens even though their endpoint and key are valid. The official guide shows compat.supportsDeveloperRole: false and compat.maxTokensField: max_tokens for that specific mismatch. Apply only fields accepted by the selected protocol; a switch without a value is rejected. These settings live in the profile patch, not the basic form.

Edit the active configuration layer

The standard dsh web profile writes $DSH_HOME/profiles/web/cordis.patch.yml. A custom launch uses its selected profile. A later home or command-line patch can override the whole config row, so preserve all provider entries and inspect dsh --profile web --dump-config before changing it. Ordinary valid edits reload through HMR when enabled; otherwise restart. The rc.7 config builder remains a labeled historical tool.

First-party sources

Open the pinned or retrieved source before acting on a changed release candidate.

Continue by layer