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

  1. Create the API key. Open API Keys, create a key, and choose the AWSQ or CCMAX channel.
  2. 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.
  3. 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
  4. Verify. Pick claude-sonnet-5-5 under the aiinide provider 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-ai
2
  config:
3
    providers:
4
      aiinide:
5
        apiKeyEnv: AIINIDE_API_KEY
6
        api: anthropic-messages
7
        baseURL: https://api.aiinide.com
8
        models:
9
          - id: claude-sonnet-5-5
10
          - id: claude-opus-5-5
11
          - id: claude-haiku-4-5-20251001
12
- id: agent-default-model
13
  config:
14
    provider: aiinide
15
    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 protocolBase URLWrong value gives
Anthropic Messages (anthropic-messages)https://api.aiinide.com/v1 → PI_AI_ERROR: 404
OpenAI Chat Completions (openai-completions)https://api.aiinide.com/v1bare 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.

Related

Use Claude in DeepSeek Harness with a custom model API | AI in IDE