DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

@goodandready/dsh-subscriptions

Subscriptions

通过 OAuth 将 ChatGPT Codex、Claude、Grok、Antigravity、Kimi、GLM、Cursor、Kiro、Copilot、Qwen、ERNIE、Spark、JetBrains、Perplexity、Replit 和 Cody 订阅用作 DeepSeek Harness LLM 提供商。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add @goodandready/dsh-subscriptions@0.7.67
README兼容性版本

兼容性与来源证明

Subscriptions 以 @goodandready/dsh-subscriptions 发布,当前版本为 0.7.67。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/11/4

版本

0.7.67stable
2026/11/2
0.7.66stable
2026/11/2
0.7.65stable
2026/11/2
查看其余 202 个版本收起版本
0.7.64stable
2026/10/31
0.7.63stable
2026/10/30
0.7.62stable
2026/10/30
0.7.61stable
2026/10/30
0.7.60stable
2026/10/30
0.7.59stable
2026/10/30
0.7.58stable
2026/10/30
0.7.57stable
2026/10/30
0.7.56stable
2026/10/30
0.7.55stable
2026/10/29
0.7.54stable
2026/10/29
0.7.53stable
2026/10/29
0.7.52stable
2026/10/29
0.7.51stable
2026/10/29
0.7.50stable
2026/10/29
0.7.49stable
2026/10/29
0.7.48stable
2026/10/29
0.7.47stable
2026/10/29

相关插件

正在加载相关插件…

最新版
0.7.67
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
1.3 MB
文件数
147
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 21
周下载
10,000
安全扫描
✓ v0.7.67 扫描通过
最近提交
2026/11/2
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
0.7.46stable
2026/10/29
0.7.45stable
2026/10/29
0.7.44stable
2026/10/29
0.7.43stable
2026/10/28
0.7.42stable
2026/10/28
0.7.41stable
2026/10/28
0.7.40stable
2026/10/28
0.7.39stable
2026/10/28
0.7.38stable
2026/10/28
0.7.37stable
2026/10/28
0.7.36stable
2026/10/28
0.7.35stable
2026/10/28
0.7.34stable
2026/10/28
0.7.33stable
2026/10/28
0.7.32stable
2026/10/28
0.7.31stable
2026/10/28
0.7.30stable
2026/10/28
0.7.29stable
2026/10/28
0.7.28stable
2026/10/28
0.7.27stable
2026/10/28
0.7.26stable
2026/10/28
0.7.25stable
2026/10/28
0.7.24stable
2026/10/28
0.7.23stable
2026/10/27
0.7.22stable
2026/10/26
0.7.21stable
2026/10/23
0.7.20stable
2026/10/23
0.7.19stable
2026/10/22
0.7.18stable
2026/10/22
0.7.17stable
2026/10/22
0.7.16stable
2026/10/22
0.7.15stable
2026/10/21
0.7.14stable
2026/10/21
0.7.13stable
2026/10/21
0.7.12stable
2026/10/21
0.7.11stable
2026/10/21
0.7.10stable
2026/10/21
0.7.9stable
2026/10/21
0.7.8stable
2026/10/21
0.7.7stable
2026/10/21
0.7.6stable
2026/10/21
0.7.5stable
2026/10/21
0.7.4stable
2026/10/21
0.7.3stable
2026/10/21
0.7.2stable
2026/10/21
0.6.91stable
2026/10/20
0.6.90stable
2026/10/20
0.6.89stable
2026/10/20
0.6.88stable
2026/10/20
0.6.87stable
2026/10/20
0.6.85stable
2026/10/20
0.6.86stable
2026/10/20
0.6.84stable
2026/10/20
0.6.83stable
2026/10/20
0.6.82stable
2026/10/20
0.6.81stable
2026/10/18
0.6.79stable
2026/10/17
0.6.77stable
2026/10/16
0.6.73stable
2026/10/14
0.6.72stable
2026/10/13
0.6.71stable
2026/10/13
0.6.70stable
2026/10/12
0.6.69stable
2026/10/12
0.6.68stable
2026/10/11
0.6.67stable
2026/10/11
0.6.66stable
2026/10/11
0.6.65stable
2026/10/11
0.6.64stable
2026/10/9
0.6.63stable
2026/10/9
0.6.62stable
2026/10/9
0.6.61stable
2026/10/9
0.6.60stable
2026/10/7
0.6.59stable
2026/10/6
0.6.58stable
2026/10/6
0.6.57stable
2026/10/5
0.6.56stable
2026/10/5
0.6.55stable
2026/10/4
0.6.54stable
2026/10/4
0.6.53stable
2026/10/2
0.6.52stable
2026/10/2
0.6.51stable
2026/10/2
0.6.50stable
2026/10/2
0.6.49stable
2026/10/2
0.6.47stable
2026/10/1
0.6.46stable
2026/10/1
0.6.45stable
2026/10/1
0.6.44stable
2026/10/1
0.6.43stable
2026/10/1
0.6.41stable
2026/10/1
0.6.40stable
2026/10/1
0.6.39stable
2026/10/1
0.6.38stable
2026/10/1
0.6.37stable
2026/10/1
0.6.36stable
2026/9/30
0.6.35stable
2026/9/29
0.6.34stable
2026/9/28
0.6.33stable
2026/9/28
0.6.32stable
2026/9/28
0.6.31stable
2026/9/28
0.6.30stable
2026/9/28
0.6.29stable
2026/9/27
0.6.28stable
2026/9/27
0.6.27stable
2026/9/27
0.6.26stable
2026/9/27
0.6.25stable
2026/9/26
0.6.24stable
2026/9/26
0.6.23stable
2026/9/24
0.6.22stable
2026/9/24
0.6.21stable
2026/9/23
0.6.20stable
2026/9/23
0.6.19stable
2026/9/23
0.6.18stable
2026/9/22
0.6.17stable
2026/9/21
0.6.16stable
2026/9/21
0.6.15stable
2026/9/19
0.6.14stable
2026/9/18
0.6.13stable
2026/9/18
0.6.12stable
2026/9/17
0.6.11stable
2026/9/17
0.6.10stable
2026/9/16
0.6.9stable
2026/9/15
0.6.8stable
2026/9/13
0.6.7stable
2026/9/12
0.6.6stable
2026/9/12
0.6.5stable
2026/9/11
0.6.4stable
2026/9/11
0.6.3stable
2026/9/10
0.6.2stable
2026/9/10
0.6.1stable
2026/9/9
0.6.0stable
2026/9/9
0.5.32stable
2026/9/8
0.5.31stable
2026/9/8
0.5.30stable
2026/9/7
0.5.26stable
2026/9/6
0.5.25stable
2026/9/5
0.5.24stable
2026/9/5
0.5.22stable
2026/9/5
0.5.21stable
2026/9/4
0.5.6stable
2026/9/4
0.5.3stable
2026/9/4
0.5.5stable
2026/9/4
0.5.4stable
2026/9/4
0.5.1stable
2026/9/4
0.5.2stable
2026/9/4
0.5.0stable
2026/9/4
0.4.23stable
2026/9/2
0.4.22stable
2026/9/2
0.4.21stable
2026/9/1
0.4.20stable
2026/9/1
0.4.19stable
2026/9/1
0.4.18stable
2026/9/1
0.4.17stable
2026/9/1
0.4.16stable
2026/9/1
0.4.15stable
2026/8/28
0.4.14stable
2026/8/28
0.4.13stable
2026/8/28
0.4.12stable
2026/8/28
0.4.11stable
2026/8/28
0.4.10stable
2026/8/27
0.4.9stable
2026/8/27
0.4.8stable
2026/8/27
0.4.7stable
2026/8/27
0.4.6stable
2026/8/26
0.4.5stable
2026/8/26
0.4.4stable
2026/8/26
0.4.3stable
2026/8/26
0.4.2stable
2026/8/26
0.4.0stable
2026/8/26
0.3.1stable
2026/8/26
0.3.0stable
2026/8/26
0.2.11stable
2026/8/26
0.2.9stable
2026/8/25
0.2.10stable
2026/8/25
0.2.8stable
2026/8/25
0.2.7stable
2026/8/25
0.2.6stable
2026/8/25
0.2.5stable
2026/8/25
0.2.4stable
2026/8/25
0.2.3stable
2026/8/25
0.2.2stable
2026/8/25
0.2.1stable
2026/8/23
0.2.0stable
2026/8/23
0.1.1stable
2026/8/21
0.1.0stable
2026/8/21

相关插件

继续浏览 models-usage 分类下经过校验的插件。

Whale Widgetdsh-whale-widgetDSH Web 界面右下角的 DeepSeek 余额小鲸鱼挂件:余额/今日已用/峰谷定价、自定义泡泡点击序列(文本/余额/今日/峰谷/图片/随机语句与并列加权选择)、逐行样式与字体、悬浮快捷编辑、音效与每轮消耗、自定义角色/动图/音效、吸附与翻转自定义Our Free Model@ebony-vinyl/dsh-our-free-modelOur Free Model — 在 dsh 里装上这个插件即可,无需登录、注册或填 API Key,就能使用包括 DeepSeek V4.1 Flash、Kimi K3 在内的前沿模型,桌面端另有 EAC 协付渠道;2.0 起接入 LobsterAI、Qoder、TRAE、Cline、Loomy、Raccoon、MiniMax、ZCode、Gemini 十个账号渠道(原有匿名免费通道保留)(登录、账号池、积分领取、本地 OpenAI 网关与局域网转发、数据看板与运行日志),六页毛玻璃界面统一呈现。Usage@linxin666/dsh-usage用于 dsh Web GUI 的使用统计插件:检测各提供商的余额和编程套餐配额,并实时记录令牌使用情况;侧边栏 Settings 行上方显示紧凑的价格概览卡片Connect Workbuddydsh-connect-workbuddy把本机登录的 WorkBuddy 模型(国内版与国际版)接入 DeepSeek Harness:每次刷新按上游目录自动读取每个模型的积分倍率,支持逐模型图片输入开关、多账号切换与账号池自动换号,并提供每日签到、卡片与输入框里的胶囊积分读数等只读积分概览。

README

📦 @goodandready/dsh-subscriptions

Personal AI Subscription Bridge, Multi-Account Pool Rotation & Zero-Leak OAuth for DeepSeek Harness

🇬🇧 English • 🇷🇺 Русский • 🇨🇳 中文说明


⚡ Overview

dsh-subscriptions bridges your paid personal AI subscriptions directly into DeepSeek Harness as first-class LLM providers.

Instead of burning expensive pay-as-you-go API credits for everyday agent tasks, dsh-subscriptions allows you to authenticate your existing web subscriptions via standard OAuth PKCE. It features multi-account rotation pools (automatically switching accounts when a rate limit or cooldown is reached), preemptive quota switching, and an in-process Cordis service (ctx.subscriptions) that safely powers sibling plugins like dsh-image-gen and dsh-grok-xsearch with zero token leakage.

graph LR
    subgraph DSHCore [DeepSeek Harness Session]
        Agent[🤖 DSH Agent Execution] --> Router{Provider Router}
    end

    subgraph SubscriptionsCore [dsh-subscriptions Engine]
        Router --> Pool{Multi-Account Vendor Pool}
        Pool -->|Account #1| Acc1[👤 Primary Account: Active]
        Pool -->|Account #2| Acc2[👤 Secondary Account: Standby]
        Pool -->|Account #3| Acc3[👤 Fallback Account: Cooldown]
        Acc1 -->|HTTP 429 / Quota Limit| Rotate[Smart Quota & Cooldown Rotator]
        Rotate -->|Switches Traffic| Acc2
    end

    subgraph VendorBridges [4 Upstream Vendor Bridges]
        Acc1 --> B1[ChatGPT / Codex Backend]
        Acc1 --> B2[Claude Pro / Max Protocol]
        Acc1 --> B3[xAI / Grok Subscriptions]
        Acc1 --> B4[Google Cloud Code Assist / Antigravity]
    end

    subgraph EcosystemBridge [In-Process Cordis Service: ctx.subscriptions]
        Pool --> ImgGen[dsh-image-gen: Zero-Cost Image Drawing]
        Pool --> XSearch[dsh-grok-xsearch: Live Twitter Search]
    end

    style DSHCore fill:#1e1e2e,stroke:#89b4fa,stroke-width:2px,color:#cdd6f4
    style SubscriptionsCore fill:#181825,stroke:#cba6f7,stroke-width:2px,color:#cdd6f4
    style VendorBridges fill:#11111b,stroke:#a6e3a1,stroke-width:2px,color:#cdd6f4
    style EcosystemBridge fill:#181825,stroke:#f38ba8,stroke-width:2px,color:#cdd6f4

✨ Key Features & Capabilities

1. 🌐 16 Supported Built-in Subscription Vendors

Vendor KeySubscription TierProtocol & Features
codexChatGPT Plus / ProCodex streaming responses, tool calling & image drawing (/backend-api/codex/...)
claudeClaude Pro / MaxNative Claude Messages protocol, usage tracking (/v1/messages, /api/oauth/...)
grokxAI / X PremiumReal-time reasoning responses, billing checks & social search
antigravityGoogle Cloud Code AssistAntigravity engine (/v1/loadCodeAssist, /v1/streamGenerateContent)
kimiMoonshot KimiOAuth Device Flow login (auth.kimi.com), OpenAI-compatible chat
glmZ.ai GLM Coding PlanGLM coding endpoint (api.z.ai), live quota monitor (/api/monitor/usage/quota/limit)
cursorCursorCursor backend (api2.cursor.sh), billing-period usage dashboard parsing
kiroAWS KiroKiro desktop OAuth (app.kiro.dev), streaming code assistance
copilotGitHub CopilotGitHub Device Flow login (github.com/login/device), Copilot chat completions
qwenAlibaba Qwen (DashScope)OpenAI-compatible endpoint (dashscope.aliyuncs.com/compatible-mode/v1), API key auth
ernieBaidu ERNIE (Qianfan)OAuth2 token refresh via API Key + Secret Key, Wenxinworkshop chat
sparkiFlytek SparkOpenAI-compatible Spark HTTP API (spark-api-open.xf-yun.com/v1)
jetbrainsJetBrains AI AssistantJetBrains AI relay (api.jetbrains.ai)
perplexityPerplexity ProSonar model catalog (api.perplexity.ai)

Custom vendors can also be dynamically registered via the createVendorFromProfile factory.


2. 🔄 Multi-Account Rotation & Rate-Limit Mitigation (rotate.js, ratelimit.js)

  • Multi-Account Pooling: Attach multiple accounts per vendor (e.g. CODEX_OAUTH_1, CODEX_OAUTH_2, CODEX_OAUTH_3).
  • Automatic 429 Failover: When an account encounters a rate limit (HTTP 429, RATE_LIMIT, QUOTA_EXCEEDED), traffic instantly fails over to the next healthy account in the pool.
  • Preemptive Quota Switching (switchAtRemaining): Automatically rotates to the next account before hitting zero if the rate-limit window reset is imminent.
  • Dynamic Cooldown Calculation: Parses upstream headers (Retry-After, x-ratelimit-reset, ISO dates, epoch timestamps) and auto-restores cooled-down accounts when their window resets.
  • Synchronous Decision Tracing & Routing Explanation (#517): Real-time decision traces capture every account selection, rotation step, failure reason, and cascade fallback without post-hoc reconstruction, exposed in WebUI telemetry and diagnostics.
  • Dynamic Model Catalog & Live Quota Visualizer (#507): Dynamic model catalog with pool-level health calculation (individual quarantine degrades rather than disables the pool), context window badges, capability tags (vision, tools, reasoning, coding, fast), and live reset countdowns.
  • Cache-Aware Session Pinning (#520): Retains session affinity for prompt-caching providers (Claude, Codex, Antigravity, Grok) to maximize token cache reuse while strictly releasing pins when an account enters cooldown, quarantine, or quota exhaustion.
  • Guided Diagnostic Wizard (#519): Interactive step-by-step checklist verifying credentials, network/proxy connectivity, token freshness, and model catalog reachability without paid inference and with full secret redaction.
  • Desktop Electron Compatibility (#524): Non-HTTP app schemes (dsh-app://) bypass web-only host equality checks while strictly preserving loopback socket verification and fail-closed cross-site protection.

3. 🔒 Zero-Leak Credential Security & Headless OAuth

  • Zero Token Leakage: 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.
  • Secure Host Storage: Tokens reside in encrypted $DSH_HOME/.credentials.yaml managed by the host credentials service.
  • Headless / Remote Login Fallback: If running DSH on a headless server over SSH where browser popups cannot redirect to localhost, simply paste the redirected callback URL or authorization code directly into the account card.
  • Proactive Background Token Refresh: Access tokens are refreshed automatically before expiration.

4. 🧩 In-Process Cordis Service (ctx.subscriptions)

Sibling plugins can tap into subscription capabilities directly in memory via Cordis:

// Example in dsh-image-gen or custom plugins:
const res = await ctx.subscriptions.request('codex', '/backend-api/codex/images/generations', {
  method: 'POST',
  body: JSON.stringify({ prompt: 'Cyberpunk landscape', size: '1024x1024' }),
})
  • Zero Overhead: Eliminates intermediate HTTP loops and keeps auth tokens strictly in-memory.
  • Strict Path Allowlist (ALLOWLIST): Restricts calls to verified vendor endpoints, preventing SSRF vulnerabilities.

5. 🔐 Login Without a Browser: Loopback & Device Code (v0.4.9)

  • Automatic Loopback Callback (autoLoopback, on by default): For vendors whose OAuth redirect URI is a loopback address (Codex :1455, Grok :56121), the plugin spins up a temporary local HTTP server and catches the callback by itself — no URL pasting needed. The paste fallback always stays available.
  • Device Code Login (Codex): On fully headless machines (no browser on any reachable host), use the Device login button in the Codex account card. The plugin requests a short user code from auth.openai.com, you open https://auth.openai.com/codex/device on any device, enter the code, and the plugin completes the standard PKCE exchange automatically.
  • Classic Fallbacks Intact: Web-origin redirect (useWebCallback) and manual paste of the redirected URL / authorization code remain available for custom OAuth clients.

6. 🌍 Per-Account HTTP/SOCKS Proxy (v0.4.9)

  • Individual Proxy per Account (proxyUrl): Every account slot accepts its own proxy URL (http://, https://, socks5://[user:pass@]host:port). All requests for that account — OAuth token refresh, vendor checks, model requests — are routed through it. Empty = direct connection.
  • One-Click Proxy Check: The account card has a Check proxy button: it performs a real request to the vendor base URL through the configured proxy and shows the round-trip latency or the failure reason.
  • Request History Timings: Every recorded request now carries its duration (ms) in the history store, so you can compare direct vs proxied latency over time.

7. 🕶️ Privacy Masking & Diagnostics Report (v0.4.9)

  • Privacy Masking (privacyMask): One toggle in the settings card masks personal data across the whole UI: emails render as j***n@example.com everywhere (account lists, status labels, check results). Designed for screen sharing and streaming. Server-side masking means labels never leak through API responses either; the underlying account data is never overwritten.
  • Anonymized Diagnostics Report: The settings card has a Generate diagnostics report block: one click fetches an anonymized report (plugin/runtime versions, OS, per-vendor health counters, aggregate HTTP status counts, last ≥400 errors with timings, non-secret settings) and copies it to the clipboard. Tokens, emails, credential refs and proxy URLs are strictly excluded (verified by tests).
  • Issue-Ready: The same block links to the project issue tracker, so a bug report is: generate → paste → submit.

8. 🔌 HTTP API (added in v0.4.9)

RouteMethodPurpose
/dsh-subscriptions/diagnosticsGETAnonymized diagnostics report (no secrets, no tokens, no proxy URLs)
/dsh-subscriptions/proxy-checkPOSTLatency check of a slot's proxy against its vendor base URL
/dsh-subscriptions/oauth/device/startPOSTBegin Codex device-code login (returns user code + verification URL)
/dsh-subscriptions/oauth/device/pollPOSTPoll device-code authorization status
/dsh-subscriptions/quarantine/parkPOSTPark an account into quarantine for custom duration (durationMs, reason)
/dsh-subscriptions/quarantine/probePOSTRun immediate live warmup health probe or force-release account
/dsh-subscriptions/alertsGETList recent in-app alerts and notifications

9. 🦛 Local Ollama Gateway & Seamless Fallback (v0.4.17)

  • Native Provider (ollama): When a local Ollama is reachable at ollamaBaseUrl (default http://127.0.0.1:11434), it appears in the native DSH model picker with the models discovered from /api/tags. No API key needed.
  • Seamless Quota Fallback (ollamaFallback, on by default): When every account of a provider is exhausted (or unreachable) and nothing has been streamed yet, the chat continues on a local model (ollamaFallbackModel, or the first model from /api/tags). The fallback is logged and recorded in request history as kind: fallback.
  • Free ($0) Emergency Path: Works with no internet and no quota — ideal for offline demos.

10. ⚡ Reasoning Effort, Verbosity & Fast Mode (v0.4.17)

  • Reasoning Effort: Codex models advertise their supported effort levels from the live catalog; the native picker validates and the chosen effort is transmitted as reasoning.effort in the Codex /responses protocol. Grok forwards effort with its own catalog-aware filtering.
  • Verbosity (codexVerbosity): low / medium / high is sent as text.verbosity for Codex reasoning models. Empty = protocol default.
  • Fast Mode (codexFastMode): Sends service_tier: priority (1.5x speed billing tier) with every Codex request. The active-subscription chip shows a ⚡ prefix while enabled.

11. 🚦 Family-Scoped Cooldowns & Model Filtering (v0.4.17)

  • Reasoning vs Standard: A 429 on a reasoning model (claude *thinking*, grok *reasoning*, all codex models) cools down only the reasoning family of that account — standard models on the same account keep working immediately. Legacy cooldowns (from older versions) still block the whole account until expiry.
  • Hide Deprecated Models (hideDeprecatedModels): Filters test/preview/dev/alpha/beta/legacy model ids out of the native picker (applies to live catalogs and the static fallback).

12. 🧯 Safe Reset Credits (v0.4.18)

  • Reset Card Visibility: The Codex account card shows how many ChatGPT quota reset cards are available and when the earliest one expires.
  • Deliberate Confirmation Flow: Consuming a card requires an explicit checkbox ("I understand one attempt will be consumed") plus a mandatory 5-second cooldown before the Reset button activates.
  • Double-Click Proof: A host-side single-flight gate (synchronous pending lock before the first network await) makes it impossible for a double click or a concurrent call to consume two cards. Uncertain network results return the challenge to "prepared" for a safe retry of the same request.
  • Honest Results: Server verdicts are shown verbatim: reset / nothing to reset (nothing consumed) / no usable credit / already redeemed.

13. 📊 Composer Quota Indicator & Runway Forecast (v0.4.18)

  • Placement: Renders in the input area next to the model switcher (conversation.input.right slot).
  • Four display modes (composerQuota setting): off / percent (85%) / bar (40px mini bar, green>30 / amber 10-30 / red <10) / forecast.
  • Runway Forecast: A sliding 24h window of remaining-percent samples (up to 192 points) feeds a recency-weighted least-squares burn rate; below 30 min of observation or <1% consumed it stays calibrating…, with no consumption it says no usage. Ready state shows ~4.5h / ~12m.
  • Auto-Hide: No indicator for local Ollama or when nothing is active.

14. 🧑‍💻 SUBS Pill & Session Console (v0.4.18)

  • Pill in the Session Header: SUBS (N) in the session header actions area with a pool-health LED: green <50% max usage, amber 50-90%, red ≥90%, gray when nothing is connected.
  • Modal Console: Clicking the pill opens an in-session modal listing every account (provider #index, connected/not, cooldown, quota %) and a shortcut to the settings card. Closes on outside click, ✕ or Escape.

15. 🫧 Draggable HUD Widget (v0.4.18)

  • Floating Bubble on shell.overlay: a 64px circle with an SVG ring gauge of the active subscription balance, mounted via createPortal.
  • Drag & Dock: Drag anywhere; it snaps to any screen edge within 24px (peek-style half-hidden until hovered) and remembers its position in localStorage.
  • Frosted Panel: Hovering reveals a backdrop-filter: blur(28px) panel listing every account with usage bars. Clicking the bubble refreshes quota data; data also refreshes every 60 s.
  • Settings Card Polish (v0.4.18): Chevron switched to the core IconChevronDownOutline14 primitive; explicit settings snapshot states (loading / unavailable + Retry) guard against phantom input.

16. ⚡ ClineBot-Inspired UI & Hardened Telemetry (v0.6.6)

  • Live Status Badge Bar: Instant latency check to the host (Host online (XX ms)), real-time connected account indicators, and pool size at a glance.
  • One-Click Smoke Test (Ping): Test live connectivity to the active upstream subscription provider and measure real round-trip latency.
  • Session Telemetry Dashboard: Visual stat cards displaying successful/total requests, average latency, session success rate, and last request activity.
  • Curated Models Catalog: Quick preview of supported model families with context windows and capability tags (Vision, Reasoning, Hybrid).
  • Non-Blocking Storage: HistoryStore debounces disk persistence asynchronously to prevent blocking the Node.js event loop during high-throughput streaming.

17. 🛡️ Quarantine Management, Live Quota Countdown & In-App Toast Alerts (v0.6.59)

  • Manual Quarantine Control (Park & Probe): Directly park active accounts in quarantine (POST /dsh-subscriptions/quarantine/park) for maintenance or pause, or trigger an immediate live warmup probe and instant release (POST /dsh-subscriptions/quarantine/probe) right from the account slot card.
  • Dynamic Quota Window Countdown: Live second-by-second countdown timer displayed in the SubsPill session widget and account settings cards, showing exact time remaining until rolling rate-limit windows (five_hour, seven_day, primary_window) reset.
  • In-App Toast Alerts (enableToasts): Lightweight floating toast alerts in the DSH chat interface notifying you when accounts enter quarantine, recover from cooldowns, or exceed quota safety thresholds.
  • Automated Webhook Integration: Instant event notifications dispatched via notifyQuarantineEntered and notifyQuarantineReleased.

25. 🩺 Vendor Auth Doctor, Latency RTT Indicator, Dynamic Model Sync & Client Bundle Relief (v0.6.72)

  • Vendor Auth Doctor (#543): Intelligent classification and explanation of provider authentication and connection errors (Cloudflare 403 / Geoblock, expired tokens, revoked sessions, missing model scopes, exhausted quotas). Displays diagnostic verdict with actionable recommendations in the account card.
  • Latency RTT Indicator & Fast Ping Probe (#542): Live round-trip time measurement to vendor APIs with color-coded badges (🟢 <250ms, 🟡 <750ms, 🔴 >750ms). Dedicated ping endpoint (POST /dsh-subscriptions/ping) and latency metrics in connection tests.
  • Dynamic Model Catalog Discovery & Sync (#541): One-click "Sync Models" button on account cards querying live vendor /v1/models endpoints to discover newly released and subscription-specific models dynamically without waiting for plugin updates.
  • Client Bundle Modularization & Store Limit Relief (#540): Reduced lib/client.js bundle size from 217.3 KiB to < 199 KiB (>57 KiB buffer below the 256 KiB DSH Store ceiling) via createElement aliasing, CSS minification, and dynamic instruction loading.

24. 🛡️ Resilience, Diagnostics & Fallback Enhancements (v0.6.71)

  • Cross-Vendor Cascading Fallback & Provider Priority Ordering (#536): Configure fallback ordering across subscription providers with interactive reordering in WebUI.
  • 1-Click Connection Smoke Test & Latency Ping (#536): Test individual account connections on the spot with real-time latency badges.
  • Live Cooldown Countdown & Availability Toasts (#536): Exact countdown timer for cooled-down accounts and automated toast alerts upon recovery.
  • Proactive OAuth Token Heartbeat (#536): Pre-emptive background token refresh before expiry to prevent first-query latency spikes.
  • Recent Errors Ring Buffer Inspector (#536): In-memory sanitized log of the last 20 runtime failures in WebUI Diagnostics.

23. 🧠 Antigravity Tiered Models, Tool Sentinel & Stream Resilience (v0.6.69)

  • Gemini 3 Tool Replay Sentinel (#534): Injects thoughtSignature: 'skip_thought_signature_validator' on reconstructed tool calls, enabling reliable multi-turn tool calling without Gemini 3 validation failures.
  • Tiered Flash Models & Thinking Levels (#534): Exposes Gemini 3.8 and 3.7 Flash High, Medium, and Low thinking levels with upstream *-flash-tiered mapping.
  • Stream Resilience & Empty Stream Retry (#534): Idle SSE timeout (30s), empty response detection, and transient stream retry with automatic account rotation.

22. ⚡ xAI Grok RFC 8628 Device Authorization Flow (v0.6.68)

  • RFC 8628 Device Code Authorization (GH #17, #532): Native device authorization grant support for xAI Grok. Solves the issue where xAI presents a Grok Build user-code verification page for CLI client IDs without redirecting back to loopback callbacks. Provides direct user code display and automatic token polling.

21. 🛡️ Per-Account Claude Billing Attribution Isolation (v0.6.67)

  • Per-Account cc_turn_index & cch Isolation (#530): Isolates Claude Code billing attribution state (cch session hash and cc_turn_index counter) per subscription account (accountId) in a bounded module Map instead of globalThis, preventing cross-account telemetry mixing in multi-account pools.
  • Dynamic cc_prompt_index & Kill-Switch: Automatically derives 0-based cc_prompt_index from multi-turn messages history and supports suppression via CLAUDE_CODE_ATTRIBUTION_HEADER=0 or disableBillingHeader: true.

20. 🤖 Native Copilot CLI SDK Mode & Local Tool Calling (v0.6.66)

  • Direct Copilot CLI Integration (#508): Native driver copilot-cli.js supporting execution via local copilot / github-copilot-cli binaries with zero network token emulation risk.
  • Smart Mode Switching (copilotMode): Choose between auto (prefers local CLI with graceful web API fallback), cli (strict CLI SDK execution), and web (direct OAuth/API).
  • Multi-Source Credential Detection: Automatically discovers tokens from GitHub CLI (gh hosts.yml), Copilot config files (hosts.json, apps.json), and environment variables (GITHUB_COPILOT_TOKEN, GH_TOKEN).
  • Full Tool-Calling & Streaming: Seamless translation of CLI process output into real-time streaming chunks and multi-turn tool-call deltas.

19. 🧠 Session Reasoning Effort Management & Contract Matrix (v0.6.65)

  • Session-Scoped Reasoning Effort Control (#505): Dynamically adjust reasoning effort (low, medium, high, max) or disable reasoning (off) per conversation session via REST endpoints (GET, POST, DELETE /dsh-subscriptions/session-reasoning).
  • Model-Switch Invariant & Safety Guard: Automatic suppression of reasoning parameters when switching from a reasoning model (e.g. o1) to a standard model (e.g. gpt-4o), avoiding upstream HTTP 400 parameter errors.
  • Extended Multi-Vendor Capability: Native reasoning support across Codex (o1, o3), Claude (claude-3-7-sonnet*, claude-4.6+ thinking tokens & budgets), Antigravity/Gemini (thinkingConfig), Grok (grok-3-mini), and Kimi (k1.5).
  • Comprehensive Adapter Contract Matrix (#521): Automated offline wire contract verification (test/contract-matrix.test.mjs) testing 8 providers across 7 wire protocol capabilities (stream, tools, reasoning, usage, caching, auth_errors, rate_limit).

18. 🔑 Antigravity Client Secret & Resilient CLI Refresh (v0.6.60)

  • Client Secret in Schema (antigravityClientSecret): Configure custom Google Cloud OAuth client secrets with automatic mask redaction (••••••), resolving token refresh rejections for confidential OAuth clients.
  • Zero-Config CLI Token Refresh: Bundled public application credentials for the standard Gemini / Antigravity CLI client (Google Gemini CLI Client ID / Google Gemini CLI Client Secret), ensuring imported CLI sessions keep refreshing indefinitely without dying after 1 hour.
  • Windows Credential Manager CLI Discovery: Native win32 discovery for Windows Credential Manager generic target gemini:antigravity, enabling seamless 📥 From CLI import on Windows.
  • Descriptive Refresh Diagnostics: Actionable error reporting identifying missing or invalid client credentials instead of generic upstream HTTP 400 errors.

📦 Quick Installation

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

[!IMPORTANT] Restart DSH Web UI after installation (systemctl --user restart dsh-web) and navigate to Settings → Plugins → Plugin Settings → Subscriptions to link your accounts.


[!TIP] UI Settings Card vs YAML Overrides: All common options (account slots, autoLoopback, privacyMask, composerQuota, expiryNotifyDays, codexFastMode, codexVerbosity, ollamaFallback/baseUrl/model, and cooldown/probe intervals) can be managed directly in the Web UI card (Settings → Plugins → Plugin Settings → Subscriptions). Low-level parameters such as OAuth client IDs/redirect URIs, API base URL overrides, and custom vendors are configured in settings.yaml.

⚙️ Configuration Reference (settings.yaml)

dsh-subscriptions:
  switchAtRemaining: 1
  cooldownMs: 60000
  autoLoopback: true        # v0.4.9: catch loopback OAuth callbacks automatically
  privacyMask: false        # v0.4.9: mask emails and account identifiers in the UI
  ollamaBaseUrl: http://127.0.0.1:11434  # v0.4.17: local Ollama gateway
  ollamaFallback: true      # v0.4.17: seamless fallback when all accounts are exhausted
  ollamaFallbackModel: ''   # v0.4.17: e.g. qwen2.5-coder; empty = first model from /api/tags
  hideDeprecatedModels: false # v0.4.17: filter test/preview/beta/legacy model ids
  codexVerbosity: ''        # v0.4.17: low | medium | high (text.verbosity)
  codexFastMode: false      # v0.4.17: service_tier priority (1.5x speed tier)
  composerQuota: 'off'      # v0.4.18: composer indicator: off | percent | bar | forecast
  enableToasts: true        # v0.6.59: real-time in-app toast alerts on quarantine and quota events
  enableQueue: true         # v0.6.62: bounded concurrency queue to prevent bursts of 429 errors
  accountMaxConcurrency: 2  # v0.6.62: max concurrent active streams per account
  maxQueueSize: 20          # v0.6.62: max queue depth before load shedding / reject
  queueTimeoutMs: 30000     # v0.6.62: max queue wait duration in ms before timeout
  # Per-slot fields (v0.4.9): expiresAt (ms epoch), proxyUrl (http/https/socks5://)
  accounts:
    codex:
      - ref: CODEX_OAUTH_1
        label: "Work Pro Account"
      - ref: CODEX_OAUTH_2
        label: "Personal Plus Account"
    claude:
      - ref: CLAUDE_OAUTH_1
        label: "Claude Max"
    grok:
      - ref: GROK_OAUTH_1
        label: "X Premium"

Custom Providers and Host Trust

  • customVendors.authUrl, tokenUrl and baseUrl must use https://. Plain http:// is accepted only for loopback hosts (localhost, 127.0.0.1, ::1).
  • Grok baseUrl overrides must point to api.x.ai, grok.com / *.grok.com, or a loopback host; other hosts are rejected with GROK_UNTRUSTED_HOST so bearer tokens never leave trusted xAI infrastructure.
  • Antigravity CLI imports must configure antigravityClientSecret; the embedded default was removed.
  • copilotCliPath must point to a copilot, github-copilot-cli or copilot-cli binary; rename custom wrappers.
  • Credential backup uses /dsh-subscriptions/vault/export and /vault/import; the legacy /export, /import, /export-backup and /import-backup routes were removed.
  • The error buffer and diagnostics reports redact bearer tokens, API keys, JWTs and key=value credentials before storing or returning them.

🧠 Claude Adaptive Thinking & Effort (Added in v0.6.7)

Supports Anthropic's adaptive thinking (thinking: { type: "adaptive" }) and reasoning effort steering (output_config: { effort }):

  • Model Support: Automatically gates effort levels for Opus 4.6+, Opus 4.7+, Opus 5 (low, medium, high, xhigh, max) and Sonnet 4.6+, Sonnet 5 (low, medium, high).
  • Safe Fallback: Models that do not support adaptive thinking (Haiku, Fable, 4.5 and earlier) reject the parameter cleanly and leave requests unaugmented to prevent 400 Bad Request API errors.
  • Dynamic Catalog: The provider model catalog exports matching reasoning.efforts options to the DeepSeek Harness interface.

🌐 Full Bilingual Localization (EN / ZH) & Account Health (Added in v0.6.8)

  • Strict Localization Standards: Built-in UI dictionary is now 100% bilingual with complete English (en) and Simplified Chinese (zh) translation dictionaries and instruction guides.
  • Decoupled Translations: Russian and other localized translations are provided at runtime via standalone dictionary packages (such as dsh-russian-lang), leaving the core plugin codebase lean and zero-hardcoded.
  • Per-Account Health & Latency Probe: The slot check button now records live upstream round-trip latency (latencyMs) for each individual subscription account slot.

🚀 One-Click Plugin Updater & Stability Hardening (Added in v0.6.9)

  • Host One-Click Updater: Automatic in-place updater mounted at /dsh-subscriptions/update, checking the npm registry for newer releases and executing single-flight installation via the host DSH CLI (dsh plugin add).
  • Security & Origin Protection: Updater endpoints enforce strict loopback address checks (supporting IPv4 127.0.0.1, IPv6 ::1, localhost), x-dsh-plugin-update header verification, and same-origin validation to prevent unauthorized updates.
  • Header Badge & UI Action: The settings header bar displays current plugin version, an update warning badge when a new release is detected, and an instant "Update" button with live restart countdown.
  • Network Timeout Hardening: Quota balance and smoke test probes now enforce guaranteed 15-second abort timeouts (AbortSignal.timeout(15_000)), preventing hanging sockets during vendor outages.
  • Parameter Normalization & Deduplication: Unified support for provider || vendor and index || accountIndex aliases in check endpoints, and deduplicated threshold notification loops.


🛡️ Token Usage Normalization & Session Projection Fix (Added in v0.6.12)

  • Session Projection Fix (GitHub #4): Fixed an issue where ChatGPT Codex and other streaming provider responses caused DSH session recovery to fail on page reload with received NaN, expected number on uncachedInputTokens and outputTokens.
  • Canonical TokenUsage Normalization: Introduced toTokenUsage() across all streaming pipelines (codexResponsesStream, openaiChatStream, anthropicStream, and googleStream) to map raw vendor usage payloads into canonical DSH TokenUsage (inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens, reasoningTokens, totalTokens).
  • Strict Integer Guard: All token counts are strictly guarded to non-negative finite integers (guaranteeing 0 fallback, never NaN or undefined). Disjoint uncached token calculation is performed when cached tokens are folded into prompt totals.
  • Defense in Depth: Added adapter-level stream validation in SubscriptionAdapter to prevent malformed or invalid token usage chunks from ever reaching DSH session persistence.

🔒 OAuth Client Validation & Route Updates (Added in v0.6.11)

  • OAuth Client ID Guard (GitHub #2): uildAuthorizeUrl and ntigravity.authorizeUrl now strictly require a non-empty clientId. If unconfigured, the endpoint returns an explicit HTTP 400 (missing_client_id) and the UI prompts the user to configure ntigravityClientId in plugin settings or use "From CLI" instead of directing the browser to a failing Google OAuth page.
  • Config Schema Secret Key: Added ntigravityClientSecret to the plugin configuration schema, allowing convenient entry of private client secrets alongside ntigravityClientId with automatic masking in public endpoints.
  • Zhipu GLM Console Route Migration (GitHub #3): Updated the Zhipu GLM authorization and API key center link to the active console route (https://bigmodel.cn/usercenter/proj-mgmt/apikeys), eliminating 404 navigation errors caused by vendor console restructuring.

🛡️ Reliability & Quality Hardening (Added in v0.6.10)

  • Structured Error Handling: Eliminated all empty catch blocks across the plugin runtime via safe bestEffort helper logging debug diagnostics.
  • Native Context Logger: Migrated all plugin logging to the canonical Cordis ctx.logger('subscriptions') subsystem.
  • Network Timeout Protection: Hardened external vendor API calls (listModels, fetchFor, quotaFetch, jsonTokenRequest) with explicit fetchWithTimeout and AbortSignal.timeout safeguards.
  • Design System Theming: Replaced hardcoded styling values with native DeepSeek Harness CSS theme tokens (--dsw-alias-*, color-mix), achieving 100% theme token coverage and zero standalone rgba values.
  • Client Dependency Injections: Explicitly declared required client platform dependencies (@deepseek-ai/dsh-client-locale, @deepseek-ai/dsh-client-ui-slots) in package manifest.
  • Strict Repository Hygiene: Removed internal development instructions and planning artifacts from git tracking, enforcing clean public releases.

🔌 HTTP API

The plugin registers these exact routes on the DSH web server. Unless noted, they accept same-origin or loopback requests; mutating requests must carry Origin or Referer matching the host (#782). Responses are JSON unless noted.

MethodPathPurpose
GET/dsh-subscriptions/usage?type=accounts|calls&format=json|csvQuota snapshot and per-call ledger for external quota plugins (#687).
GET/dsh-subscriptions/instructionsDynamic vendor connection instructions (#540).
GET/dsh-subscriptions/metricsPrometheus text exposition (#744); loopback or same-origin only.
GET/dsh-subscriptions/healthDeep health report used by monitoring (#745); public GET.
GET/dsh-subscriptions/modelsEnriched model catalog for active subscriptions.
POST/dsh-subscriptions/heartbeat/runTrigger one quota/health refresh; returns {ok, refreshed}.
GET/dsh-subscriptions/discover-localDetect locally installed CLI sessions available for import.
GET/dsh-subscriptions/subscriptionsLocalhost-only HTML overview of subscriptions.
GET/dsh-subscriptions/session-reasoning?sessionId=…&provider=…&model=…Read reasoning effort/capabilities for a session.
POST/dsh-subscriptions/session-reasoningSet {sessionId, provider, model, effort, budgetTokens}.
DELETE/dsh-subscriptions/session-reasoning?sessionId=…Clear session reasoning override.

/discover-local and /subscriptions are retained as supported API/UI surfaces (decision recorded in docs/design/DESIGN.md).

🌐 Localization

The plugin source language is English only. Russian and other translations are provided at runtime by separate language plugins (for example the russification plugin), which translate the registered locale keys - the package itself ships no bundled translations (Changed in 0.6.1).


📄 License

MIT © GooDAnDReaDY

replit
Replit Core
Replit AI API (replit.com/api/v1/ai), connect-token auth
codySourcegraph Cody ProSourcegraph API (sourcegraph.com/.api), access-token auth