LKRCharon
dsh-cc-switch
Sync cc-switch provider profiles into DeepSeek Harness (DSH) model routes — CLI, slash command, and agent tool
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 14, 2026
- Updated
- Aug 14, 2026
Introduction
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