dsh-cc-switch
cc-switch providers inside DeepSeek Harness.
把 cc-switch 里管理的 Claude Code / Codex 中转商配置一键同步成 DSH 模型路由。不需要任何已配置的模型——这正是它存在的理由:给一个还没有模型的 DSH 实例导入你已有的全部供应商。
Sync your cc-switch provider profiles into DSH model routes. Works with zero models configured — that is the whole point: bootstrap a fresh DSH install from providers you already manage.
Install
dsh plugin --profile web add dsh-cc-switch
Restart DSH. By default the plugin syncs on start (syncOnStart: true), so your cc-switch providers appear in the model picker immediately.
Never booted DSH before? Bootstrap from the terminal without installing anything:
npx dsh-cc-switch # sync now
npx dsh-cc-switch --dry-run # preview only
Usage
Three planes, pick any:
| plane | how | needs a working model? | needs DSH running? |
|---|---|---|---|
| Terminal CLI | npx dsh-cc-switch (--dry-run to preview) |
no | no — works before first boot |
| Startup | automatic (syncOnStart, default on) |
no | — |
| Human command | type /ccswitch in the composer (/ccswitch dry to preview) |
no | yes |
| Agent tool | ask the agent to run ccswitch_sync |
yes | yes |
How it works
- Opens the local cc-switch SQLite database read-only; cc-switch is never modified.
- Maps providers onto
llm-pi-airoutes through the DSH settings seam — changes take effect on the next request, no restart. - API keys are stored through the DSH credential seam as references (
CCS_*_KEY); key values never appear in settings, tool output, or model context.
| cc-switch | DSH route |
|---|---|
codex provider (API-key relays) |
openai-responses / openai-completions route, model from config TOML |
claude provider (ANTHROPIC_BASE_URL relays) |
anthropic-messages route, models from ANTHROPIC_DEFAULT_*_MODEL_NAME |
| Official OAuth providers | skipped (pi-ai cannot OAuth) |
gemini / claude-desktop |
skipped (roadmap) |
Config
Override per row in your profile cordis.patch.yml:
- id: cc-switch
config:
syncOnStart: false
| key | default | |
|---|---|---|
dbPath |
~/.cc-switch/cc-switch.db |
cc-switch database location |
prefix |
ccs- |
route id prefix |
apps |
['codex', 'claude'] |
app_types to sync |
syncOnStart |
true |
run a sync when the plugin loads |
Limitations / roadmap
- Removed cc-switch providers are not auto-removed from DSH settings yet; delete stale
ccs-*routes in Settings → Models. - A "import from cc-switch" button on the Models settings page (Web UI plugin tree), gemini mapping, DB change watching: planned.
Compatibility
Tested against cc-switch DB schema as of 2026-08 and DSH v0.1 developer preview. Both sides move fast; pin versions.
Unofficial community plugin — not affiliated with cc-switch or DeepSeek.
MIT
No comments yet. Be the first to write one.