> ## Documentation Index
> Fetch the complete documentation index at: https://docs.linkmodel.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# DeepSeek Harness

> Configure DeepSeek Harness to use LinkModel chat models through a custom OpenAI-compatible provider.

DeepSeek Harness (`dsh`) can connect to LinkModel through its custom provider flow. Use the OpenAI-compatible Chat Completions protocol and add the LinkModel model IDs you want to expose in the model picker.

<Warning>
  DeepSeek Harness is currently a developer preview. Its configuration and UI may change between releases.
</Warning>

## Start DeepSeek Harness

Install Node.js, then launch the Web UI:

```bash theme={null}
npx @deepseek-ai/dsh web
```

The Web UI is served at `http://127.0.0.1:3080` by default.

## Configure in the Web UI

Open **Settings → Models**, choose **Add a custom provider**, and enter:

| Field        | Value                         |
| ------------ | ----------------------------- |
| Provider ID  | `linkmodel`                   |
| Display name | `LinkModel`                   |
| Base URL     | `https://api.linkmodel.ai/v1` |
| API protocol | `openai-completions`          |
| Credential   | Your LinkModel API key        |
| Model        | `deepseek-v4-pro`             |

Add other model IDs from the [Models](/models) page as needed, then save the provider. Select `linkmodel/deepseek-v4-pro` from the model picker before starting a new session.

<Note>
  DeepSeek Harness can query an OpenAI-compatible `GET /models` endpoint through **Fetch available models**. If discovery is unavailable, enter the model IDs manually.
</Note>

## Configure with settings.yaml

For an environment-variable-based setup, export your LinkModel API key:

```bash theme={null}
export LINKMODEL_API_KEY="<YOUR_API_KEY>"
```

Add the provider to `$DSH_HOME/settings.yaml`:

```yaml theme={null}
llm-pi-ai:
  providers:
    linkmodel:
      apiKeyEnv: LINKMODEL_API_KEY
      api: openai-completions
      baseURL: https://api.linkmodel.ai/v1
      models:
        - id: deepseek-v4-pro
        - id: claude-opus-4-8
        - id: gpt-5.6-sol
        - id: gemini-3.5-flash
        - id: glm-5.1
        - id: kimi-k3
        - id: minimax-m2.7
```

The example keeps one current model from each supported chat provider family. Restart DeepSeek Harness after editing the file, then select a `linkmodel/*` model in the model picker. See [Models](/models) for additional variants.

## Notes

* Keep API keys in the Harness credential store or environment variables. Do not commit them to a repository.
* Custom models are treated as text-only unless their input modalities are explicitly configured.
* Use `POST /chat/completions` models. Responses-only provider configurations are not used by this integration.
* Start a new session after changing the selected provider or model because existing sessions retain their recorded model.

## Official references

* [DeepSeek Harness repository](https://github.com/deepseek-ai/deepseek-harness/tree/master)
* [DeepSeek Harness Web UI guide](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/user/guide/index.md)
* [DeepSeek Harness model configuration](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/user/guide/providers.md)
