Quickstart: run the DeepSeek Harness on it
The harness talks to any OpenAI-compatible endpoint, so this is a provider entry rather than an integration.
The form
In the harness, open the provider settings and choose Custom provider. Five fields matter and the rest can stay as they are.
| Field | What to put in it |
|---|---|
| Provider ID | magmarouter. Lowercase, and it is the credential name too, so keep it short. |
| Display name | MagmaRouter |
| Base URL | https://api.magmarouter.com/v1 |
| API protocol | openai-completions |
| API key | your key, rl-... |
The Models list only decides what appears in the picker. An id you leave out can still be sent directly, so there is no need to paste the whole catalogue in; add the two or three you actually use and fetch the rest later.
openai-completions client appends only /chat/completions. Dropping the /v1 gives a 404 that reads like an auth failure.The file, if you would rather not click
The same thing lives in ~/.dsh/settings.yaml. The harness ships one provider, deepseek-official, and this repoints it rather than adding a second:
llm-deepseek:
baseURL: https://api.magmarouter.com/v1
apiKeyEnv: DEEPSEEK_API_KEY
models:
- id: deepseek/deepseek-chat-v3.1
name: DeepSeek V3.1
contextWindow: 131072
agent-default-model:
provider: deepseek-official
model: deepseek/deepseek-chat-v3.1
The key is read from the environment rather than the file, so it has to be set where the harness will see it:
export DEEPSEEK_API_KEY=rl-...
On Windows that means the user environment, not just the shell you are standing in. Set it and open a new terminal, or the harness starts before the variable exists and fails with an invalid key.
The installer does both
https://magmarouter.com/install.sh writes the file entry, sets the variable for your user account and backs the settings file up first, leaving every other setting in it alone. It is the same result as the form, and the page it prints lists exactly what it wrote.
If it will not start
A harness that resumes its last session can fail before it reaches the gateway at all, with an error naming an agent preset that is not in the list. That is a saved session pointing at a preset that no longer exists on the account, and no provider setting will fix it. Start a new session instead of resuming.
An invalid-key error immediately after setting the variable is almost always the terminal, not the key: the old shell still carries the old environment. A key that has genuinely stopped working says so at the dashboard.