Skip to main content
DeepSeek Harness is a plugin based coding agent from DeepSeek. It runs in your terminal as dsh and in a local web UI. Using the Requesty integration, you can:
  • Access 300+ models from DeepSeek, OpenAI, Anthropic, Google, Mistral and many other providers through one API key.
  • Keep every request, its cost and its latency in one dashboard.
  • Apply fallback policies, load balancing and latency routing to your agent runs.
  • Switch models without reinstalling or reconfiguring the harness.
The Requesty CLI writes this configuration for you: run requesty, select DeepSeek Harness, pick a model, and it backs up your existing files before writing.

Prerequisites

  • DeepSeek Harness installed on your machine. npx @deepseek-ai/dsh web runs it without a global install, and Node 22.19 or later is required.
  • A Requesty API key from the API Keys page.

How the configuration works

DeepSeek Harness keeps user configuration in its harness home, which is ~/.dsh unless you set DSH_HOME: Requesty is an OpenAI compatible endpoint, so it plugs into the harness as a custom provider on the llm-pi-ai plugin. No plugin needs to be installed for this.

Configuration

1

Install DeepSeek Harness

Run the web UI once to create the harness home:
You can also install from source. See the DeepSeek Harness README for that path.
2

Store your Requesty API key

Add your key to ~/.dsh/.credentials.yaml:
Replace rqsty-sk-.... with your key from the API Keys page.The harness requires this file to be readable by you only. Set the permissions after creating it:
Exporting REQUESTY_API_KEY in your shell works as well, and a value from the environment wins over the stored one. Use the file when you want the key to survive across terminals.
3

Add Requesty as a provider

Create or edit ~/.dsh/settings.yaml:
What each field does:
Model ids must carry the Requesty provider prefix, for example deepseek/deepseek-v4-pro-0813 rather than deepseek-v4-pro-0813. Ids without a prefix are rejected by the router.
A model that accepts images needs input: [text, image] on its entry. Text only is the default.
4

Start the harness

Run a task in your terminal:
Or open the web UI:
From source, prefix the commands with pnpm, for example pnpm dsh web.

Configuring from the web UI

The web UI writes the same files, so you can skip the YAML:
  1. Run dsh web and open the printed URL.
  2. Go to Settings, then Models.
  3. Choose Add a custom provider and fill in the form:
    • Provider id: requesty
    • Base URL: https://router.requesty.ai/v1
    • Protocol: OpenAI Chat Completions
    • API key: your Requesty key
  4. Select Fetch available models to load the Requesty catalog, then pick the models you want.
  5. Select a Requesty model as the default model for new sessions.

Selecting a model

The model picker lists every model on the requesty provider. Add or remove entries under models in settings.yaml to change that list, and set agent-default-model to the model new sessions should start with. Browse ids in the Requesty model library. Policies work here too: use the policy id as the model id, for example policy/coding-fallback.

Verifying the integration

Run one task, then open the Requesty analytics dashboard. The request appears within seconds with its model, token counts and cost. Requests configured with the headers above are tagged DeepSeek Harness, so you can filter your dashboard by this integration. You can also confirm that the harness reaches the router at all:
This is the same endpoint the Fetch available models button calls.

Troubleshooting

The harness found the provider but no key. Check that the name in apiKeyEnv matches a key in ~/.dsh/.credentials.yaml exactly, or export that variable in the shell you start dsh from. The harness reads the environment at launch, so exporting a key after startup has no effect.
The harness refuses to read ~/.dsh/.credentials.yaml if the file is readable by other users. Run chmod 600 ~/.dsh/.credentials.yaml. The file must be a plain mapping of credential name to key, with no wrapper level and no empty values.
The base URL does not match the protocol. Use https://router.requesty.ai/v1 with api: openai-completions. For api: anthropic-messages, use https://router.requesty.ai without the /v1 suffix, because the harness appends /v1/messages itself.
Add the provider prefix to the id, for example openai/gpt-5.4. Confirm the id in the model library, and check approved models if your organization restricts which models a key may use.
The harness watches its settings file, so most edits take effect immediately. If a run still uses the old provider, stop the process and start it again. Confirm you edited the file under the harness home in use, which is $DSH_HOME when that variable is set.

References

Last modified on August 15, 2026