Clients/DeepSeek Harness

Use the Wokey API with DeepSeek Harness

Get a Wokey API key, point DeepSeek Harness at the Wokey base URL, then confirm the connection with one curl request.

On this pageexpand_more

Get an API key and the base URLlink

Every client uses the same Wokey API key and the same base URL.

Create an API key

Sign in and create a platform key on the API page. Keys in one account share its balance.

Create an API keykey

Use the Wokey base URL

Set the client base URL to the gateway domain; the configuration below shows whether to append /v1.

Configure the clientlink

DeepSeek Harness (dsh) accepts custom gateways, so one Wokey key covers DeepSeek, GPT, GLM and Claude models. Tested on 2026-10-18 with dsh 0.2.1-rc.2: deepseek-flash over Chat Completions and claude-haiku-5-5 over Messages each finished a multi-turn tool-calling task (run the tests, find the bug, fix it, rerun) in about 24 s and 16 s, with about 99% of input served from cache on repeat runs.

  1. 1

    Install the 0.2.1 pre-release

    npm’s latest tag is still 0.2.0; DeepSeek recommends v0.2.1-rc.1 or later for V4.1-Flash-1017, so install @next.

  2. 2

    Set the API key variable

    The config only names apiKeyEnv, so the key never lands in the file. You can also save the key under Settings → Models in the web UI.

  3. 3

    Add the providers

    Edit ~/.dsh/profiles/web/cordis.patch.yml (profiles/headless for dsh headless). Each provider speaks one protocol: DeepSeek, GPT, GLM and similar models use OpenAI Chat Completions with /v1 in the base URL; Claude uses Anthropic Messages without /v1. The same values work in Settings → Models → Add model provider → Custom model API, where Fetch available models reads Wokey’s /v1/models.

  4. 4

    Keep existing providers

    This override replaces the whole llm-pi-ai entry config, so if you already added providers in the UI, list them under providers too. Changes apply on the next request without a restart.

DeepSeek Harness
# 1. Install or update to 0.2.1
npm install -g @deepseek-ai/dsh@next
export WOKEY_API_KEY="YOUR_API_KEY"

# 2. ~/.dsh/profiles/web/cordis.patch.yml
- id: llm-pi-ai
  config:
    providers:
      wokey:
        displayName: Wokey
        apiKeyEnv: WOKEY_API_KEY
        api: openai-completions
        baseURL: https://api.wokey.ai/v1
        compat:
          thinkingFormat: deepseek
        models:
          - id: deepseek-flash
            name: DeepSeek-V4.1-Flash
            contextWindow: 1000000
            maxTokens: 393216
            input: [text, image]
      wokey-claude:
        displayName: Wokey (Claude)
        apiKeyEnv: WOKEY_API_KEY
        api: anthropic-messages
        baseURL: https://api.wokey.ai
        models:
          - id: claude-haiku-5-5
            name: Claude Haiku 5.5
            contextWindow: 1000000
            maxTokens: 128000
            input: [text, image]
- id: agent-default-model
  config:
    provider: wokey
    model: deepseek-flash

# 3. Start
dsh web

Verify with curllink

If the client reports an error, rule out the key and base URL with curl first.

DeepSeek Harness uses the OpenAI Chat Completions format by default. A 200 from this request means the key and base URL are right. Replace YOUR_API_KEY with your key before sending it.

cURL
curl https://api.wokey.ai/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6-sol",
    "messages": [
      { "role": "user", "content": "Hello" }
    ]
  }'

Errors & Troubleshootinglink

Separate auth, balance, rate limit, model availability, and upstream timeout cases first.

401

invalid api key

The key is missing, mistyped, deleted, or Authorization / x-api-key headers conflict.

402

insufficient balance

The account balance is too low. Top up before sending more requests.

429

rate limited

Traffic is too frequent. Retry later or reduce concurrency.

502

upstream unavailable

The upstream model service is temporarily unavailable. Switch models or retry later.

504

upstream timeout

The upstream response timed out. Shorten context, reduce max_tokens, or retry.

529

upstream overloaded

The upstream model is temporarily overloaded and Wokey already retried on other routes (code upstream_unavailable). It is unrelated to your balance. Retry shortly or switch models.