README.md

September 11, 2026 · View on GitHub

English · 中文

dsh-providers

dsh-providers icon

Plugin Center → Installed → Models: official memberships and API keys on one page.

Codex · Claude · Grok · Qwen · Kimi · custom OpenAI-compatible endpoints

English · 中文 · xiaotaozi-dsh · PRODUCT.md

MIT dsh-plugin DeepSeek Harness 0.1.2-rc.1

A DeepSeek Harness plugin. The sidebar lists connected vendors; the right pane signs in or stores a key, then you check which models appear in the conversation picker. Unconnected vendors live behind Add provider. The host Models page is unused on purpose. User-facing copy in the Web UI is Chinese.

What it unlocks

  • Membership and keys on one page. OAuth / device code for official products; API keys for the rest; custom OpenAI-compatible endpoints.
  • Chat only lists what you checked. Selection applies immediately.
  • Optional smart routing. Plugin Center → Installed → Models has a Smart routing switch (off by default). When on, the conversation model picker is hidden and each new question is chosen from the checked, authorized pool. An empty pool blocks send and points back to Plugin Center → Installed → Models. Tool follow-ups stay on that model. A quota/auth hard failure excludes that vendor and retries once on another checked vendor; sibling models on the same account are not a fallback. There is no classifier, no online learning, no reasoning-effort routing, no durable router audit, and no per-session mode.
  • Authorization can finish on another device. The page shows this computer, the link, and the device code.
  • Generated media in chat. Signed-in ChatGPT or Grok memberships unlock image_generate and video_generate (details below).

Quick start

dsh plugin --profile web add github:kedoupi/xiaotaozi-dsh#path:plugins/providers
dsh web

Then open Plugin Center → Installed → Models. After source changes: rebuild this package and restart dsh.

See it

Models in Plugin Center: vendors, smart routing, and model selection

Add provider catalog

Custom provider setup form

Memberships and keys

ProductSign-in
ChatGPT CodexOAuth (Plus / Pro)
ClaudeOAuth (Pro / Max)
GrokOAuth (X Premium)
Qwen CodeDevice code
Kimi CodeDevice code (official Kimi Code)
Zhipu GLM, Doubao, MiniMax, iFlytek Spark, HunyuanListed under Add provider; official membership login is not wired yet

Built-in API vendors use the host credential store. Saved keys are shown as a mask, never as plaintext.

A key that arrives from the launch environment is read-only here. The page explains that; it will not replace or unset it. Change it where you start dsh.

Custom vendors are OpenAI-compatible endpoints (name, base URL, key). Models are loaded from the endpoint, not typed in by hand.

Generated media

  • image_generate. After ChatGPT or Grok is signed in, the model can generate pictures. ChatGPT uses gpt-image-2; Grok uses grok-imagine-image-2.0. The provider argument picks the preferred backend (gpt by default); the other is used when that one is signed out. Images are saved under $DSH_HOME/plugins/providers/images/ and shown inline. Claude, Qwen Code, and Kimi Code subscriptions have no image-generation API, so they are not wired.
  • video_generate. After Grok is signed in, the model can generate a 1–15s clip with grok-imagine-video-1.5. MP4s are saved under $DSH_HOME/plugins/providers/videos/ and play inline. Optional image_url is image-to-video. ChatGPT, Claude, Qwen Code, and Kimi Code have no video-generation API on these logins.

Data and privacy

Membership tokens: $DSH_HOME/plugins/providers/auth.json (mode 0600). Smart-routing mode: $DSH_HOME/plugins/providers/routing.json (mode 0600, only { "mode": "manual" } or { "mode": "smart" }, no prompts). Files left under plugins/passport/ from the old package name are copied on first load. Generated images: $DSH_HOME/plugins/providers/images/. Generated videos: $DSH_HOME/plugins/providers/videos/.

API keys go through the host credentials seam ($DSH_HOME/.credentials.yaml), unless the process environment already supplies that reference.

Develop

From the monorepo root:

pnpm --filter dsh-providers test
pnpm --filter dsh-providers build
node scripts/link-plugin.mjs --profile web providers
pnpm dev

That links into the repo .dsh-home (port 3081), not the daily ~/.dsh.

Documentation

DocRead it when
PRODUCT.mdProduct notes
WorkflowCreate, install, simplify, commit
ConventionsPackage identity and two homes
xiaotaozi-dshThe rest of the monorepo

License

MIT