seek://map/dsh-plugin-subscriptions
dsh-plugin-subscriptions
#providers #oauth #subscriptions #media-tools
TL;DR
Connects ChatGPT (Codex), Claude, Grok (X Premium) and GitHub Copilot subscriptions to DSH sessions as model providers over OAuth — no API keys: live model catalogs with reasoning-effort selectors, subscription usage cards, x_search and image/video generation tools, and quota-aware multi-account model pools.
Consumer subscriptions become harness infrastructure here: the plugin registers ChatGPT (Codex), Claude, Grok and GitHub Copilot as LLM adapters driven by OAuth login instead of API keys, then layers real engineering on top — live model catalogs, per-model reasoning-effort defaults, subscription usage cards, an image/video generation tool set, and multi-account pools that fail over on disclosed quota windows. Per its README, tokens rest in a mode-0600 file and refresh automatically; the GitHub-source install route asks for a build-script allowance that the npm route does not need.
Facts
- install
- dsh plugin --profile web add dsh-plugin-subscriptions
- license
- MIT
- note
- git 源码安装需在 profile 的 pnpm-workspace.yaml 放行构建脚本(npm 安装为预构建产物,无需放行);代理设置不支持 SOCKS。
Key points
- Subscription routes for ChatGPT (Codex), Claude, Grok (X Premium) and GitHub Copilot become session model providers via OAuth in the web UI, with no API keys; Copilot logs in through the GitHub device flow
- Claude imports existing Claude Code credentials from the macOS Keychain or ~/.claude/.credentials.json when available, falling back to browser OAuth; tokens live in auth.json under ~/.dsh/plugins/subscriptions/ (mode 0600) and refresh automatically
- Logged-in providers join the session model picker with live catalogs, per-model reasoning-effort selectors and a Codex Standard/Fast service-tier toggle; usage cards show per-window burn with reset times (Copilot exposes no usage endpoint)
- Provider-gated tools ship along: x_search (Grok), image_generate (ChatGPT or Grok, with fallback) and video_generate (Grok, played inline in the conversation)
- Multi-account model pools fail over quota-aware between accounts, and the adapter reads provider-disclosed rate-limit resets to wait out closed windows via @deepseek-ai/dsh-llm-retry
FAQ
Do I still need API keys?
No. Subscriptions connect over OAuth; when a Claude Code login already exists on the machine, Claude imports its credentials directly, and otherwise authorizes in the browser like the others.
What happens with a provider I have not logged in to?
Per the README, logged-out providers stay out of the session model picker, requests fail with MISSING_CREDENTIAL pointing at the Settings page, and nothing else breaks.
What about subscription rate limits?
The adapter reads only rate-limit signals that name the actual window (anthropic-ratelimit-unified-reset, the seconds in Codex's usage_limit_reached, retry-after), turns the disclosed reset into an account cooldown, and with @deepseek-ai/dsh-llm-retry waits out the window instead of failing the turn.
What are multiple accounts for?
With several accounts on the same provider, the model picker shows the union of their catalogs; models listed by multiple accounts fail over between them with sticky, quota-aware selection, and accounts past 95% on any usage window are gated out.
Official references