GooDAnDReaDY/dsh-subscriptions

Bridges paid personal AI subscriptions into DeepSeek Harness as first-class LLM providers, with multi-account rotation pools and OAuth PKCE.

dsh-subscriptions bridges your paid personal AI subscriptions into DeepSeek Harness as first-class LLM providers, authenticating existing web subscriptions via standard OAuth PKCE instead of burning pay-as-you-go API credits. It lists 16 built-in vendors — codex, claude, grok, antigravity, kimi, glm, cursor, kiro, copilot, qwen, ernie, spark, jetbrains, perplexity, replit and cody — plus custom vendors via a createVendorFromProfile factory. Multi-account rotation pools automatically fail over on HTTP 429 / rate-limit / quota errors, preemptively switch accounts before a window hits zero, and auto-restore cooled-down accounts from upstream headers. OAuth tokens are never returned over HTTP or rendered in the UI (the UI gets masked labels, health and quota bars), tokens live in the host credentials service, and headless installs can paste a callback URL or use Codex device-code login. A local Ollama gateway adds a provider plus a seamless $0 fallback when every account is exhausted, and extras include reasoning effort/verbosity/fast-mode controls, a composer quota indicator with runway forecast, a draggable HUD widget and a one-click updater.

Models & Providers ★ 9
View on GitHub ↗

Install

dsh plugin --profile web add @goodandready/dsh-subscriptions

Copied verbatim from the README's '📦 Quick Installation' section. An IMPORTANT callout says to restart the DSH Web UI after installation (systemctl --user restart dsh-web) and then go to Settings → Plugins → Plugin Settings → Subscriptions to link accounts. Common options are managed in that Web UI card, while low-level parameters (OAuth client IDs/redirect URIs, API base URL overrides, custom vendors) are set in settings.yaml.

Compatibility

Node 20+ (README badge); DeepSeek Harness Web. Registers as a DSH plugin via dsh plugin --profile web add; it exposes a settings card, HTTP API routes (/dsh-subscriptions/...) and an in-process Cordis service (ctx.subscriptions) that sibling plugins can call. No DSH version range is stated.

Details

FAQ

How does multi-account rotation behave when an account is rate-limited?
Attach several accounts per vendor (e.g. CODEX_OAUTH_1, CODEX_OAUTH_2). On HTTP 429 / RATE_LIMIT / QUOTA_EXCEEDED, traffic fails over to the next healthy account; preemptive quota switching rotates before hitting zero when a reset is imminent, and cooled-down accounts auto-restore when their window resets. Family-scoped cooldowns can cool only the reasoning family of an account while standard models keep working.
Are my subscription tokens exposed through the plugin's API?
No. The README states OAuth tokens are never returned over HTTP API endpoints or rendered in the Web UI; the UI only receives masked account labels, connection health and quota bars. Tokens reside in encrypted $DSH_HOME/.credentials.yaml managed by the host credentials service, and sibling plugins reach vendors in-memory via ctx.subscriptions behind a strict path allowlist.
What happens if every account runs out of quota?
When all accounts of a provider are exhausted or unreachable and nothing has been streamed yet, the seamless fallback (ollamaFallback, on by default) continues the chat on a local Ollama model (ollamaFallbackModel, or the first model from /api/tags), logging it in request history as kind: fallback. A local Ollama reachable at ollamaBaseUrl also appears as a native provider needing no API key.

Alternatives

kinoward/dsh-plugin-subhub · songoao25/dsh-chatgpt-subscription · GodD6366/dsh-sub2api

More plugins in Models & Providers

Browse more in Models & Providers

Guides for Models & Providers plugins