DeepSeek Harness
llm-pi-ai row of each profile's cordis.patch.yml, and MCP goes into the home-level cordis.patch.yml. One setup therefore covers every profile at once.Last updated Reviewed against Prism v0.3.26
Where the files live
| File | Path | Holds |
|---|---|---|
| Home patch | $DSH_HOME/cordis.patch.yml (default ~/.dsh) | The MCP gateway row, applying to every profile. |
| Profile patches | $DSH_HOME/profiles/<profile>/cordis.patch.yml | The Prism provider routes, one file per profile. |
| Legacy settings | $DSH_HOME/settings.yaml | Read only, to strip Prism's old region from it. |
DSH's own settings service migrates provider configuration out of settings.yaml on startup, which is exactly why Prism writes where DSH keeps providers rather than where it used to.
One-click setup
Open the Agents tab
Agents, then DeepSeek Harness.Run DSH once first
Click Setup
What Prism writes
# In each profile's cordis.patch.yml, inside the llm-pi-ai row:
# >>> prism providers managed >>>
prism:
displayName: Prism
api: openai-completions
baseURL: http://127.0.0.1:11434/v1
headers:
Authorization: Bearer prism
compat:
supportsDeveloperRole: false
maxTokensField: max_tokens
models:
- id: "glm-5.1:cloud"
contextWindow: 128000
maxTokens: 16384
# <<< prism providers managed <<<Two routes, one protocol each
| Route id | api value | Holds |
|---|---|---|
| prism | openai-completions | Every chat_completions model. |
| prism-responses | openai-responses | Models marked api: responses, and Codex OAuth models. |
Prism expresses itself as routes inside the existing llm-pi-ai row rather than mounting a second plugin instance, because that plugin declares the entire provider catalog into a shared service when it mounts. A second instance fails the whole plugin tree and DSH refuses to start.
Why the compat block exists
| Key | Reason |
|---|---|
| supportsDeveloperRole: false | Written for both protocols. Prism rewrites system prompts itself, and the upstream plugin only sends the developer role to reasoning models. |
| maxTokensField: max_tokens | Written for the Chat Completions route only. A route-level compat switch its protocol cannot take makes DSH skip every model on that route. |
Migrating from settings.yaml
The first version of this integration wrote to $DSH_HOME/settings.yaml. Current Prism versions strip that old region and write to the profile patches instead. DSH also renames the file to settings.yaml.imported once it migrates, so nothing is lost.
prism: keys where the later one silently wins.Add MCP servers
The home-level cordis.patch.ymlcarries one MCP insert row, so a single write gives every profile access to Prism's gateway. DSH's Web UI never rewrites that file. See MCP Gateway.