dsh-plugin-subscriptions
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 7 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Use ChatGPT (Codex), Claude, and Grok (X Premium) subscriptions as DeepSeek Harness LLM providers — OAuth login in the web UI, no API keys
dsh-plugin-subscriptions
English | 中文
Use your ChatGPT (Codex), Claude, and Grok (X Premium) subscriptions as LLM providers in DeepSeek Harness — no API keys. Login happens in the dsh web UI (Settings → Subscriptions); tokens live at ~/.dsh/plugins/subscriptions/auth.json (mode 0600) and refresh automatically.
Demo
Settings → Subscriptions: per-provider OAuth login/logout, no API keys (account address masked in the screenshot):

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, and Grok 4.6 / 4.5 (levels and defaults come from each provider's live catalog, not a hardcoded list):

The image_generate tool renders its result inline in the conversation:

Providers
| Route | Subscription | Models |
|---|---|---|
codex |
ChatGPT Plus/Pro | live catalog from chatgpt.com/backend-api/codex/models |
claude |
Claude Pro/Max | claude-opus-4-5, claude-sonnet-4-5, claude-haiku-4-5 |
grok |
X Premium (xAI) | live catalog from api.x.ai/v1/models (chat models only); reasoning efforts from the Grok CLI catalog (cli-chat-proxy.grok.com/v1/models) |
Only logged-in providers appear in the session model picker; the lists above refresh on login/logout. Vision-capable models declare ['text', 'image'] input modalities, and image content is translated to each provider's wire format.
Logged-in cards also show subscription usage — per rate-limit window (5-hour session, weekly, and per-model weekly where the plan has one) with the used percentage, a progress bar, and the reset time, plus a Refresh button. Codex usage comes from chatgpt.com/backend-api/wham/usage (also reports the plan), Claude usage from api.anthropic.com/api/oauth/usage, and Grok usage from the Grok Build CLI proxy's cli-chat-proxy.grok.com/v1/billing (the source of the CLI's /usage panel; reports the shared weekly pool and the subscription tier).
Also included, registered when the matching provider is enabled:
x_searchtool (Grok) — xAI's hosted X search, returning{ answer, citations }.image_generatetool (ChatGPT) —gpt-image-2via the Codex backend; PNGs are saved under~/.dsh/plugins/subscriptions/images/and the paths returned.
Install
With the dsh CLI available, install from npm (prebuilt artifacts, no build permission needed):
dsh plugin --profile web add dsh-plugin-subscriptions
Or install the sources from GitHub:
dsh plugin --profile web add github:V1ki/dsh-plugin-subscriptions
pnpm will ask you to allow this package's build script on first install (git installs fetch sources, not built artifacts); add the printed key to the profile's pnpm-workspace.yaml:
allowBuilds:
dsh-plugin-subscriptions: true
and re-run the add. Only grant this to packages you trust — it runs the package's code at install time.
From a local checkout instead:
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
Headless-only usage without installing into a profile (log in via the web UI first — the token file is shared):
cp overlay.example.yml overlay.yml # then edit the name: to this checkout's absolute lib/index.js path
dsh --profile headless --patch <checkout>/overlay.yml "your task"
Update
Installed from npm:
dsh plugin --profile web update --latest dsh-plugin-subscriptions
Installed from GitHub: re-run the same add github:V1ki/dsh-plugin-subscriptions command — it re-fetches the sources and rebuilds. A linked local checkout just needs git pull && pnpm build in the checkout.
Either way, restart dsh web afterwards so the new version loads.
Use
dsh web, open the printed URL.- Settings → Subscriptions: click Log in on a provider and authorize in the opened tab. If the browser flow can't complete (headless host), expand the manual fallback and paste the callback URL or code.
- In any session, open the model picker (
/model) and choose a model under ChatGPT (Codex) / Claude (Subscription) / Grok (Subscription).
Not logged in? The provider stays out of the picker, and requests fail with MISSING_CREDENTIAL pointing at the Settings page; nothing else breaks.
Config
- id: llm-subscriptions
name: dsh-plugin-subscriptions
config:
providers: [codex, claude] # subset; default all three
streamIdleTimeoutMs: 300000
models: # override the discovered/built-in catalogs
codex:
- { id: gpt-5.6-sol, name: GPT-5.6 Sol, contextWindow: 272000, inputModalities: [text, image] }
Develop
pnpm install # devDependencies link into a local deepseek-harness checkout — edit the paths first
pnpm build # tsc (lib/) + tsdown (lib/client.js browser bundle)
pnpm test # node --test over compiled unit specs
prepare (used by git installs) runs tsdown.prepare.config.ts: a self-contained bundle build of both faces with all @deepseek-ai/* specifiers external — they resolve from the dsh installation at runtime, so this package never carries a second cordis copy.
After pnpm build, restart dsh web to pick up changes.
Layout
src/index.ts— plugin entry: config schema, adapter registration, auth-change re-announce, RPC wiringsrc/auth/— PKCE/JWT helpers, token store, OAuth flow engine (temp loopback callback server),/subscriptions-authRPC channelsrc/providers/— per-provider OAuth constants/exchange/refresh +LlmAdapterssrc/translate/— dshMessage[]⟷ OpenAI Responses / Anthropic Messages wire formats, SSE →StreamChunksrc/tools/—x_searchandimage_generatesrc/client/— the Settings → Subscriptions page (browser half, zh/en, theme-token aware)
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi