thayronarrais/dsh-bridge-subscriptions ↗★ 0
dsh-bridge-subscriptions
DeepSeek Harness 插件:将您已订阅的 CLI 转换为提供商路由。附带 Claude Code 桥接,每个桥接可独立启用或禁用。
AI 分析
该插件将本地已登录的 Claude Code 等 CLI 订阅桥接为 DSH 的模型路由。适合已订阅相关 CLI 并希望在 DSH 中直接调用其模型能力的用户。
安裝
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.