dsh-providers
DeepSeek Harness 模型服务商管理插件:支持通过 OAuth 或 API 密钥登录,并保持各服务商的模型目录为最新状态。
AI 分析
核心用途是集中管理 LLM 服务商凭据与模型列表。适合需要便捷切换不同 API 服务商、更新模型目录或通过 OAuth 授权登录的 DSH Web 用户。
安裝
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:tyql688/dsh-providers說明文件
閱讀完整 README ↗Usage
Run dsh web, open Settings → Accounts:

| Action | What it does |
|---|---|
| Sign in | OAuth or API key; also writes the provider's route so models reach the picker right away |
| Replace the API key | Empty field; its eye reveals the stored key. OAuth tokens and environment values never reach the browser |
| Update model catalogs | Fetches pi.dev model lists and rewrites routes (top button: all routed providers, card button: one) |
| Read an endpoint… | Adopts an OpenAI-compatible /v1/models listing as the model list |
| Sign out | Deletes the credential; the route is kept unless you tick the checkbox |
Storage: OAuth tokens in $DSH_HOME/auth.json (0600), API keys in .credentials.yaml (the file dsh's Models page writes), catalog cache in model-catalog.json (safe to delete), routes in llm-pi-ai.providers. of settings.yaml. Keys in the environment stay yours — reported as ambient, never stored.
Row options: authPath, catalogPath, catalogBaseUrl, autoRoute (default true).
Known limits: a multi-protocol provider becomes several routes (xai + xai-responses, same credential). Credentials with a complex auth shape (several request headers, env extras — Cloudflare, for example) cannot be routed: a dsh route carries one credential string. The sign-in itself succeeds and keeps the credential; the error says why.
Verified against @deepseek-ai/dsh@0.1.0-rc.6, @deepseek-ai/cordis@4.0.1, Node 22+.