Foreword

When running agents in DeepSeek Harness (DSH), the model provider is often an unavoidable component. Many people already have ChatGPT Plus/Pro, Claude Pro/Max, or X Premium subscriptions, yet still need to separately apply for API keys from each provider, manage billing, handle quota management, and rotate keys—a process that is not straightforward. What’s more cumbersome is that different platforms have varying model naming conventions, billing methods, and calling protocols, making it costly to configure flexible switching within the same Harness session.

The community plugin dsh-plugin-subscriptions (maintainer V1ki) takes a different approach: it integrates existing subscription accounts into DSH via OAuth login. After authorization is completed on the web interface, you can directly select models under the corresponding subscriptions in the model selector without needing to fill in API keys. This plugin is categorized under “Model Inference” in the SkillHub Plugin Repository, has approximately 251 stars on GitHub (data from the directory page, verified on 2026-08-25), and is licensed under MIT.

Please note: Community directories like SkillHub are maintained by enthusiasts and have no official affiliation with DeepSeek / High-Flyer; DSH itself adheres to the “everything is a plugin” philosophy, and such plugins belong to community ecosystem capability extensions.

What This Is

dsh-plugin-subscriptions is an LLM Provider plugin for DSH. It bridges subscriptions for ChatGPT (Codex), Claude, Grok (X Premium), and GitHub Copilot into callable model backends for DSH.

The core idea is straightforward:

  • OAuth Web Login: Codex and Grok connect via the “Settings → Subscriptions” page in the DSH web interface, completing authorization in the browser. Claude can automatically import credentials if a Claude Code session already exists locally (macOS Keychain or ~/.claude/.credentials.json); otherwise, it also uses browser OAuth.
  • Local Token Storage: Credentials are saved in ~/.dsh/plugins/subscriptions/auth.json (with file permissions set to 0600) and automatically refresh upon expiration.
  • Real-time Model Catalog: Logged-in providers appear in the session model selector (/model), with model lists pulled in real-time from each platform’s API (Claude uses a built-in static catalog within the plugin, updated with each version).

In short: if you have a subscription, you can use it. Log in once, and switch between providers in DSH just like selecting a regular model.

Core Features and Highlights

Supported Providers

Route Corresponding Subscription Model Source
codex ChatGPT Plus/Pro chatgpt.com/backend-api/codex/models real-time catalog
claude Claude Pro/Max Opus, Sonnet, Haiku, Fable, etc., within the subscription
grok X Premium (xAI) api.x.ai/v1/models real-time catalog
copilot GitHub Copilot api.githubcopilot.com/models real-time catalog, device code OAuth login

Only logged-in providers appear in the model selector; models supporting vision declare text + image input modalities, with image content automatically converted to each platform’s protocol format.

Interface and Inference Capabilities

  • Subscription Usage Display: Codex, Claude, and Grok cards show the usage proportion, progress bars, and reset times for each quota window (Copilot currently lacks a usage API).
  • Reasoning Effort: For models that declare reasoning levels (e.g., Codex, Grok 4.6/4.5, Copilot reasoning models), you can directly select the reasoning tier in the model menu.
  • Codex Speed Switching: Codex models supporting the fast tier can switch between Standard and Fast next to the input box (service_tier: priority) or use the /fast slash command.
  • HTTP(S) Proxy: Configured in “Settings → Subscriptions → Proxy,” subscription-related requests (including OAuth token exchange, model streaming calls, and tool calls) can go through a proxy; the OAuth authorization page itself still uses the browser’s system proxy.

Bonus Tools (Enabled with Providers)

  • x_search (Grok): Calls xAI-hosted X search, returning answers with citations.
  • image_generate (ChatGPT or Grok): Generates images via the Codex backend or xAI image API, respectively, with results displayed inline in the conversation and files saved in ~/.dsh/plugins/subscriptions/images/.
  • video_generate (Grok): Asynchronously generates short videos for inline playback, saved in ~/.dsh/plugins/subscriptions/videos/.

Installation and Enabling

The dsh CLI must be installed locally. It is recommended to install prebuilt artifacts from npm (no build authorization required):

dsh plugin --profile web add dsh-plugin-subscriptions

Alternatively, you can install from the GitHub source:

dsh plugin --profile web add github:V1ki/dsh-plugin-subscriptions

When installing via Git for the first time, pnpm may require allowing build scripts. Follow the prompts to add the following to the profile’s pnpm-workspace.yaml:

allowBuilds:
  dsh-plugin-subscriptions: true

Then re-execute add. Grant this permission only to trusted packages—code from the package is executed during the installation phase.

For local development installation:

git clone https://github.com/V1ki/dsh-plugin-subscriptions.git
cd dsh-plugin-subscriptions && pnpm install && pnpm build
dsh plugin --profile web add ./dsh-plugin-subscriptions

After installation, restart dsh web to load the plugin.

To update the npm version:

dsh plugin --profile web update --latest dsh-plugin-subscriptions

For the GitHub version, simply re-execute add github:V1ki/dsh-plugin-subscriptions.

Typical Usage

1. Login to Subscription Accounts

dsh web

Open the printed address in a browser, go to Settings → Subscriptions, click “Connect” for the target provider, and complete OAuth. For headless environments without a GUI, you can expand the manual fallback to paste the callback URL or authorization code.

2. Switch Models in a Session

Enter /model in any session, and select a model under ChatGPT (Codex), Claude (Subscription), Grok (Subscription), or the Copilot group to start a conversation.

If not logged in, the provider will not appear in the selector; if a request is forced, it will return MISSING_CREDENTIAL and prompt to go to the settings page, without affecting other functions.

3. Trim Providers as Needed (Optional)

You can specify a subset of enabled providers in the plugin configuration, for example, enabling only Codex and Claude:

- id: llm-subscriptions
  name: dsh-plugin-subscriptions
  config:
    providers: [codex, claude]
    streamIdleTimeoutMs: 300000

You can also override or supplement the model catalog via the models field (see the repository README for details).

4. Headless Scenarios (Advanced)

If the plugin is not installed in the profile, you can first log in via the web interface (token files are shared) and then use the overlay method to mount locally built artifacts for running headless tasks—see the repository’s overlay.example.yml for specifics.

Applicable Scenarios and Notes

Who This Is For:

  • Those who already have ChatGPT / Claude / Grok / Copilot subscriptions and want to reuse them directly in DSH agent workflows without maintaining multiple API keys.
  • Those who need to switch between different vendor models in the same Harness session based on tasks (e.g., Codex for coding, Claude for long-context reasoning, Grok for searching X).
  • Those who want to leverage the plugin’s bonus tools for image generation, video generation, X search, and more.

Please Note Before Use:

  1. Terms of Service and Compliance: The plugin uses OAuth to access platform interfaces with subscription accounts. Please comply with the terms of service of ChatGPT, Anthropic, xAI, GitHub, and other platforms; do not use it for scenarios that violate subscription agreements.
  2. Plugin Permissions: DSH plugins run with the current dsh process permissions and can read/write local files and initiate network requests. It is recommended to read the GitHub source code and MIT license before installation to confirm the source is trustworthy.
  3. Credential Security: Tokens are stored in ~/.dsh/plugins/subscriptions/, and proxy passwords are stored in proxy.json in the same directory. Pay attention to local account and file permission security.
  4. Platform Differences: Model lists, quotas, and reasoning tiers for each provider may change based on subscription plans and upstream APIs; Copilot login uses a device code flow, slightly different from browser OAuth.
  5. Community Directories Are Not Official Stores: Plugin information is based on the SkillHub directory page and GitHub repository; versions and stars are updated in sync with the community.

Summary

dsh-plugin-subscriptions bridges the gap between “existing subscriptions” and “DSH agents”: OAuth login, no API keys needed, unified access to multiple providers, plus bonus search and image/video generation tools. If you are browsing SkillHub or GitHub for model inference plugins, it’s worth a try.

  • Directory Page: https://www.skillhub.cn/plugins/V1ki/dsh-plugin-subscriptions
  • GitHub: https://github.com/V1ki/dsh-plugin-subscriptions