Use Claude in DeepSeek Harness with a custom model API
Add AI in IDE to DeepSeek Harness (dsh) as a custom model API and run Claude Opus 5.5, Sonnet 5.5, or Haiku 4.5 in the Web UI or headless mode.
Tested on 2026-11-06 with @deepseek-ai/dsh 0.2.2-rc.1: dsh --profile headless returned a reply from claude-sonnet-5-5 and claude-haiku-4-5-20251001 through both configurations below.
Setup at a glance
- Create the API key. Open API Keys, create a key, and choose the AWSQ or CCMAX channel.
- Open the provider form. Start the Web UI with
npx @deepseek-ai/dsh web, then go to Settings → Models → Add model provider and switch the card to Custom model API. - Fill in the fields.
- Provider ID:
aiinide(lowercase; it cannot be renamed later) - API protocol: Anthropic Messages
- Base URL:
https://api.aiinide.com - API key: your dashboard key
- Models:
claude-sonnet-5-5,claude-opus-5-5,claude-haiku-4-5-20251001, or click Fetch available models
- Provider ID:
- Verify. Pick
claude-sonnet-5-5under theaiinideprovider in the model picker and send a short prompt. The request appears in Usage.
Configure it in cordis.patch.yml
The form writes $DSH_HOME/profiles/<profile>/cordis.patch.yml; the profile is web for dsh web. To set it up by hand, or for headless runs, add this to the profile's patch file and export AIINIDE_API_KEY:
1 - id: llm-pi-ai2 config:3 providers:4 aiinide:5 apiKeyEnv: AIINIDE_API_KEY6 api: anthropic-messages7 baseURL: https://api.aiinide.com8 models:9 - id: claude-sonnet-5-510 - id: claude-opus-5-511 - id: claude-haiku-4-5-2025100112 - id: agent-default-model13 config:14 provider: aiinide15 model: claude-sonnet-5-5
Then dsh --profile headless "Reply with exactly: OK" prints OK. Settings are re-read on the next request; no restart is needed.
Which base URL goes with which protocol
| API protocol | Base URL | Wrong value gives |
|---|---|---|
Anthropic Messages (anthropic-messages) | https://api.aiinide.com | /v1 → PI_AI_ERROR: 404 |
OpenAI Chat Completions (openai-completions) | https://api.aiinide.com/v1 | bare host → 400 This endpoint requires a CODEX API key |
Both work with AWSQ and CCMAX keys. Prefer Anthropic Messages: it keeps Claude extensions such as Fast mode and hosted tools, which the OpenAI-compatible endpoint does not support. A provider speaks one protocol, so add a second provider if you want both.
FAQ
Which base URL does DeepSeek Harness need for AI in IDE?
https://api.aiinide.com with the Anthropic Messages protocol, or https://api.aiinide.com/v1 with OpenAI Chat Completions.
Why does a new session still use deepseek-flash?
The default model is deepseek-official / deepseek-flash. Select the AI in IDE model in the picker, which also makes it the default for new sessions, or set agent-default-model in cordis.patch.yml as shown above.
Where is the key stored?
A key typed into the form goes to $DSH_HOME/.credentials.yaml, and the settings keep only a reference. With apiKeyEnv, the key stays in your environment and never enters a file.
Which Node.js version does dsh need?
The @deepseek-ai/dsh package declares Node.js 24.9.0 or later.