README.md
September 11, 2026 · View on GitHub
English · 中文
dsh-providers
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
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_generateandvideo_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



Memberships and keys
| Product | Sign-in |
|---|---|
| ChatGPT Codex | OAuth (Plus / Pro) |
| Claude | OAuth (Pro / Max) |
| Grok | OAuth (X Premium) |
| Qwen Code | Device code |
| Kimi Code | Device code (official Kimi Code) |
| Zhipu GLM, Doubao, MiniMax, iFlytek Spark, Hunyuan | Listed 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 usesgpt-image-2; Grok usesgrok-imagine-image-2.0. Theproviderargument picks the preferred backend (gptby 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 withgrok-imagine-video-1.5. MP4s are saved under$DSH_HOME/plugins/providers/videos/and play inline. Optionalimage_urlis 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
| Doc | Read it when |
|---|---|
| PRODUCT.md | Product notes |
| Workflow | Create, install, simplify, commit |
| Conventions | Package identity and two homes |
| xiaotaozi-dsh | The rest of the monorepo |