thayronarrais/dsh-bridge-subscriptions ↗★ 0
dsh-bridge-subscriptions
DeepSeek Harness plugin that turns the CLIs you already subscribe to into provider routes. Ships the Claude Code bridge; each bridge can be enabled or disabled on its own.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:thayronarrais/dsh-bridge-subscriptions说明文档
阅读完整 README ↗Configuration
Everything lives under a per-bridge section. Every field is optional, and the bundle patch deliberately sets none of them: a patch replaces a row's whole config rather than merging into it, so inlining defaults would shadow the bridge-subscriptions: section of $DSH_HOME/settings.yaml that the Models page writes.
claude
| Field | Default | Meaning |
|---|---|---|
enabled | true | Whether this bridge serves requests. |
transport | sdk | sdk (Agent SDK) or spawn (claude -p). Only sdk supports tools. |
binaryPath | resolved on PATH | Override for the claude executable. |
cwd | harness process cwd | Working directory for the provider process. |
discoverModels | true | Ask the CLI which models it can reach. |
models | (empty) | Pinned catalog. Non-empty overrides discovery entirely. |
modelCacheTtlMs | 600000 | How long a discovered catalog stays fresh. |
defaultContextWindow | 200000 | Used when the selected model has no exact value. |
defaultEffort | (unset) | Reasoning effort when the caller picks none. |
maxTurns | 2 | Ceiling on Claude Code's own turns. |
streamIdleTimeoutMs | 300000 | Maximum provider silence during one read. |
maxPromptBytes | 2000000 | Conversation budget; oldest turns drop first. |
retryPolicy | harness default | Provider-owned policy consumed by llm-retry. |
Settings changes take effect on the next request without restarting the server. Changing binaryPath, cwd, models, or discoverModels also drops the cached catalog, so the picker cannot keep showing models read from a previous CLI.
Models and reasoning effort
The catalog is discovered from the CLI, not hardcoded. Asking is free: discovery is a control request over a query that never sends a prompt, so it consumes no subscription quota.
That matters for two things a static list gets wrong:
- Versions. The harness picker shows the model name and little else, so the resolved wire id rides along in it —
Opus (1M context) · claude-opus-5[1m]instead of a bareopus. A[1m]suffix also sets the context window to 1M rather than the 200k default. - Effort. Effort support is per model, and the CLI is the only authority on it. On the current CLI every model accepts all five levels except Haiku, which accepts none — so Haiku correctly gets no effort picker at all, rather than one whose settings are ignored.
A defaultEffort the selected model does not offer is dropped instead of sent. If discovery fails — CLI missing, signed out, offline — the route stays usable on a small alias-only fallback catalog, and the next query retries.