前言¶
DeepSeek Harness(DSH)通過插件體系支持自定義模型提供方。CC Switch 是一個用於管理 Claude Code / Codex API 配置的工具。dsh-ccswitch-sync 插件用於讀取 CC Switch 的本地數據庫配置,將其轉換爲 DSH 的自定義提供方,並處理 API 密鑰的寫入,實現配置遷移與統一管理。
核心功能¶
- 配置同步:讀取 CC Switch 的 SQLite 數據庫(
~/.cc-switch/cc-switch.db),將其中的服務商和模型同步到 DSH 的llm-pi-ai路由。 - 自動映射:默認使用
cc-前綴命名路由(如cc-sub2api)。 - 協議適配:根據服務商類型自動選擇協議(Codex 類型映射爲
openai-responses或openai-completions,Claude 類型映射爲anthropic-messages)。 - 模型發現:支持通過網關的
/models接口拉取模型列表,或讀取本地模型目錄(~/.codex/cc-switch-model-catalog.json)。 - 憑據管理:將 API 密鑰寫入 DSH 的憑據庫(
~/.dsh/.credentials.yaml),不污染主配置文件。 - 工具支持:提供聊天指令和獨立的 CLI 工具。
安裝與啓用¶
插件通過文件方式安裝到 DSH Desktop 的對應 profile:
- 修改
~/.dsh/profiles/<profile>/package.json,添加依賴:
// ~/.dsh/profiles/<profile>/package.json
"dependencies": { "dsh-ccswitch-sync": "file:../../plugins/dsh-ccswitch-sync" }
- 在
dsh.profile.bundles中加入"dsh-ccswitch-sync"。 - 重啓 DSH Desktop。
使用方法¶
插件安裝後提供兩種觸發方式:
聊天命令¶
| 命令 | 說明 |
|---|---|
/ccswitch-sync |
手動執行一次同步 |
/ccswitch-status |
查看當前映射計劃(路由、協議、模型) |
獨立 CLI¶
# 預覽映射計劃(默認)
node cli.mjs --dry-run
# 實際寫入配置(自動備份原文件)
node cli.mjs --apply
# 實際寫入並刪除來源已不存在的路由
node cli.mjs --apply --remove-stale
# 自定義路由前綴
node cli.mjs --apply --prefix mycc
# 排除特定路由
node cli.mjs --apply --exclude cc-deepseek,cc-deepseek-codex
配置項¶
通過 ~/.dsh/profiles/<profile>/cordis.patch.yml 進行配置:
| 字段 | 默認值 | 說明 |
|---|---|---|
ccswitchDbPath |
~/.cc-switch/cc-switch.db |
CC Switch 數據庫路徑 |
routePrefix |
cc |
導入路由的前綴 |
syncOnStart |
false |
啓動時是否自動同步(默認關閉) |
watchDb |
false |
是否監聽數據庫變化自動重同步 |
removeStale |
false |
刪除來源已消失的 cc-* 路由 |
excludeRoutes |
[] |
永不導入的路由列表 |
discoverModels |
true |
是否通過 /models 接口發現模型 |
maxDiscoveredModels |
50 |
每個提供方最多導入的模型數 |
discoverModelsTimeoutMs |
6000 |
模型發現單次請求超時時間(毫秒) |
注意事項¶
- 手動觸發:默認不自動拉取,避免重啓或配置變化時意外覆蓋手動修改的內容。
- 覆蓋風險:同步會覆蓋
cc-*前綴下已有的提供方和模型。如需保護手動調整的內容,可使用excludeRoutes配置。 - 密鑰存儲:API 密鑰以環境變量引用形式寫入
~/.dsh/.credentials.yaml,文件權限爲 600。 - 卸載:需從
package.json移除依賴與 bundle 條目,執行安裝命令並重啓 DSH。
結語¶
該插件適用於需要將 CC Switch 的多服務商配置遷移到 DSH 管理場景。通過 CLI 工具,可以方便地進行預覽、調整和批量更新。