Use NeverMetered with DeepSeek Harness

DeepSeek's open-source, plugin-based coding agent (the `dsh` command), pointed at a custom endpoint.

OpenAI Chat
Model
qwen3.8-27b
128K context on the free plan65,536 max output tokens on the free planReplace YOUR_API_KEY with your key.
  1. 1

    Create an API key

    Create a key in API keys and name it after the tool, for example “DeepSeek Harness”. A dedicated key per tool lets you see its usage separately and give it its own parallel-stream cap. The key is shown once; the snippets below use YOUR_API_KEY where it goes.

  2. 2

    Install DeepSeek Harness

    Already have DeepSeek Harness? Skip this step. Open a terminal first: on macOS press ⌘ Space, type Terminal and press Return; on Windows open the Start menu, type PowerShell and press Enter. Needs a recent Node.js. It's a developer preview, so this pins the last version we verified installs cleanly — see the troubleshooting below if a newer one works and you want it instead.

    npm install -g @deepseek-ai/dsh@0.1.6-alpha.2
  3. 3

    Point DeepSeek Harness at the gateway

    Writes settings.yaml under $DSH_HOME (or ~/.dsh if you haven't set one), which every DeepSeek Harness profile reads (not only the one below), and sets your key for this terminal. This replaces the whole file: if you've already customized it, add these two sections to yours instead of pasting over it.

    dsh_home="${DSH_HOME:-$HOME/.dsh}"
    mkdir -p "$dsh_home"
    cat > "$dsh_home/settings.yaml" <<'EOF'
    llm-deepseek:
      protocol: chat-completions
      baseURL: https://api.nevermetered.com/v1
      apiKeyEnv: NEVERMETERED_API_KEY
    agent-default-model:
      provider: deepseek-official
      model: qwen3.8-27b
    EOF
    export NEVERMETERED_API_KEY="YOUR_API_KEY"
  4. 4

    Verify it works

    Run a single task and exit — the documented one-shot command, no other setup needed. The request shows up in Requests within a few seconds, with its input, cached and output tokens.

    dsh --profile headless "Reply with the word ready"
Tips
  • Each new session also makes one small background request to title it, so on the free plan starting a session uses two of your daily requests.
  • DeepSeek Harness sends a reasoning level with every request (high by default). Add reasoningEffort: off | low | high | max under llm-deepseek: in settings.yaml to change it.
  • Without a models: entry, DeepSeek Harness assumes a much larger context window than your plan's 128K and compacts later than it should. Add models: [{ id: "qwen3.8-27b", name: "qwen3.8-27b", contextWindow: 131072 }] under llm-deepseek: if you want it to compact in time.

Troubleshooting

npm error notarget or ETARGET installing @deepseek-ai/dsh
This usually means you tried npm install -g @deepseek-ai/dsh@latest instead of the pinned command above — DeepSeek Harness is a developer preview and its latest npm tag has shipped with a broken dependency before. Reinstall with npm install -g @deepseek-ai/dsh@0.1.6-alpha.2, or try @latest again in a few days if you want a newer build.
MISSING_CREDENTIAL or 401
Export NEVERMETERED_API_KEY in the terminal you run dsh from — the launch environment always wins over settings.yaml. A key saved through DeepSeek Harness's own credential store also works, but an exported variable overrides it.
It still answers with deepseek-flash
Check agent-default-model: in settings.yaml has model: qwen3.8-27b and provider: deepseek-official, and that you're running a profile that reads the harness home's settings.yaml (the shipped profiles, including headless, do).
404 model_not_found
Use a model id exactly as GET /v1/models lists it, for example qwen3.8-27b. Plans can restrict which models a key may call.
400 context_length_exceeded
The conversation outgrew the 128K context window (input + output). Let the tool compact or start a fresh session, or get a larger window on your plan.
429 concurrency_limit_exceeded
All your parallel streams are busy and your queue allowance is full. Lower the tool's parallelism (subagents, batch size), or get more streams on your plan.
Answers stop mid-sentence
The response hit your plan's output cap of 65,536 tokens (finish reason length or max_tokens). Ask for shorter steps, or upgrade for a higher cap.
403 email_verification_required
Free requests need a verified email. Click the link in your verification email (you can resend it from the dashboard), or upgrade.
429 daily_quota_exceeded
You've used today's free requests; agents send one request per step, so they go quickly. The allowance resets at 00:00 UTC, and paid plans have no daily limit.
503 / 504 request_queue_timeout
The service stayed busy longer than the queue timeout and nothing was generated. Retry with backoff, and give the tool a generous request timeout.
503 service_unavailable
No GPU capacity is online at the moment. It's temporary and your setup is fine: retry in a little while, and check the status page.