DeepSeek Guide — whale logoDeepSeek GuideFAN SITE
TUTORIAL3 MIN READ

DeepSeek Harness Models: How to Use Any Model (Not Just DeepSeek)

UPDATED: AUG 16, 2026AUTHOR: INDEPENDENT FAN GUIDE
OVERVIEW

DeepSeek Harness is model-agnostic: connect DeepSeek natively, pick an Anthropic/OpenAI provider, or add an OpenAI-compatible endpoint. settings.yaml explained.

01

Models Are Plugins

Unlike vendor-locked agent tools, DeepSeek Harness treats models as swappable plugins. The official page is explicit: plugins provide every agent capability, including models, and developers can select, swap, or extend any capability in configuration without changing the Harness source code[1].

Concretely, that means the same harness can drive DeepSeek V4, Claude, GPT, Gemini, or a company gateway — and the model change takes effect on the next request, no restart required[2].

NOTE

Model freedom is one of the main reasons teams evaluate dsh over Claude Code — see the comparison guide.

02

DeepSeek Native

The zero-config path is DeepSeek's own models: Settings → Models → enter your DeepSeek API key, and the default model set (V4-Pro / V4-Flash) becomes available[2].

  • Default models: DeepSeek V4 Pro and V4 Flash
  • The key is stored redacted — change it through the Models page, not by editing the file[2]
  • No baseURL needed; DeepSeek's endpoint is built into the dsh-llm-deepseek adapter
example_code.py
# in the Web UI
Settings → Models → add DeepSeek API key
# keys are stored in $DSH_HOME/.credentials.yaml (write-only after save)
03

Directory Providers (Anthropic, OpenAI, More)

For non-DeepSeek models, add a directory provider: Add provider → select Anthropic or OpenAI → enter your key. Directory providers ship with the endpoint, protocol, and model list, so there is nothing else to fill in[2].

The exceptions are providers with special auth flows: Bedrock (AWS credentials + region), Vertex (ADC project), Azure (api-version), and Codex (OAuth). For those, just pasting an API key is not enough — configure the full credential context in the provider settings[2].

Sponsored
04

Custom Providers

If your model lives behind a company gateway, a self-hosted endpoint, or any OpenAI-compatible service not in the directory, add a custom provider[2]:

Custom providers are how teams route dsh through LiteLLM-style gateways, keep keys out of config (apiKeyEnv), and test local servers.

  • Provider ID: permanent, lowercase, no spaces
  • baseURL: the OpenAI-compatible base (e.g. https://gateway.example/v1
  • API protocol: openai-completions (or the matching protocol)
  • Credential: API key or an environment variable via apiKeyEnv
  • Models: enter them manually, or use 'Fetch available models' to probe GET /models[2]
05

settings.yaml Deep Dive

Providers are declared in $DSH_HOME/settings.yaml under llm-pi-ai. The official example[2]:

The input field declares modalities: hand-entered models default to text-only, so a vision model needs input: [text, image]. defaultInput acts as a fallback for requests without an explicit modality, and directory providers can be adjusted with modelOverrides. The relevant adapters are dsh-llm-pi-ai (any-model) and dsh-llm-deepseek (DeepSeek-specific)[2].

example_code.py
llm-pi-ai:
  providers:
    my-gateway:
      apiKeyEnv: GATEWAY_API_KEY
      api: openai-completions
      baseURL: https://gateway.example/v1
      models:
        - id: legacy-chat
        - id: vision-preview
          input: [text, image]
Sponsored
06

Troubleshooting Provider Errors

The official troubleshooting table covers the common failures[2]:

ErrorCause / fix
MISSING_CREDENTIALNo key stored for the provider; save it on the Models page or set the apiKeyEnv variable
UNKNOWN_MODELThe selected model is not configured; add it to the provider's models list
Fetch models → 401Wrong key, or the endpoint lacks GET /models — enter models manually
Image rejectedThe model does not declare the image modality; add input: [text, image]
Provider refuses image requestEndpoint does not actually support images — remove the image declaration and start a new session
NOTE

Still stuck? See common dsh errors for the wider troubleshooting guide.

Sponsored
Sponsored