DSH Hub
dsh-plugin-subscriptions cover

V1ki/dsh-plugin-subscriptions

dsh-plugin-subscriptions

UIWeb UI517 GitHub stars· updated 2026-10-26

Use ChatGPT (Codex), Claude, and Grok (X Premium) subscriptions as DeepSeek Harness LLM providers — OAuth login in the web UI, no API keys

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-plugin-subscriptions

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-plugin-subscriptions DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-plugin-subscriptions.svg)](https://dshhub.dev/plugins/dsh-plugin-subscriptions)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from V1ki/dsh-plugin-subscriptions, cleaned of badges and images.

English | 中文

Use your ChatGPT (Codex), Claude, Grok (X Premium), GitHub Copilot, and Google Antigravity subscriptions as LLM providers in DeepSeek Harness — no API keys. Codex, Grok, and Antigravity log in via OAuth in the dsh web UI (Settings → Subscriptions), while Copilot uses the GitHub OAuth device flow; Claude imports credentials from an existing Claude Code session when there is one (macOS Keychain or ~/.claude/.credentials.json) and otherwise falls back to the same browser OAuth flow, so the Claude Code CLI is not required. Tokens live at ~/.dsh/plugins/subscriptions/auth.json (mode 0600) and refresh automatically.

Subscription and model display names

Open Settings → Subscriptions → Manage to set a subscription display name, or edit a model's display name under Edit model list. Both share the existing Save/Cancel actions; clearing a name or choosing Reset to default and saving restores the original name. Names are single-line text of up to 80 characters, stored per provider and model ID in provider-settings.json, and survive restarts and catalog refreshes. They only change presentation: provider IDs, model IDs, reasoning settings, and account routing remain unchanged. Existing account aliases continue to work independently.

Subscription display names also label provider groups in the native model picker. Saving a cleared name restores the provider's default group title.

Demo

Settings → Subscriptions: per-provider login/logout, no API keys. Claude imports credentials from Claude Code when available and otherwise uses OAuth, as Codex and Grok always do (settings screenshots use demo accounts and catalog data):

Configure visibility, default reasoning effort, and context together in Edit model list, with shared Save and Cancel actions:

Configure image generation, video generation, and X search per provider. Tool switches apply only to sessions created after saving:

Logged-in providers join the session model picker with their live model catalogs:

Models that advertise reasoning levels get an Effort selector in the same menu — Codex models, Grok 4.6 / 4.5, and Copilot's reasoning models (levels and defaults come from each provider's live catalog, not a hardcoded list; Copilot's capabilities.supports.reasoning_effort array is sent as reasoning_effort on chat completions and reasoning.effort on the Responses wire). Models listing both Copilot endpoints (gpt-5.4, gpt-5-mini) normally speak chat completions but reroute to /responses when a request combines function tools with an effort — Copilot rejects that combination on the chat wire:

Codex models whose catalog advertises the fast tier (the codex CLI's fast mode) get a Speed toggle in the composer's tool row, next to the model selector — Standard or Fast (service_tier: priority), per session. The /fast slash command offers the same choice as a popup; it errors with an explanation when the current model has no fast tier.

…

Related plugins