dsh-cpa-switch
Verifieddsh-cpa-switch · v0.5.1 · MIT · Web UI
DeepSeek Harness 插件:在 DSH 里管理 CLIProxyAPI 的账号 —— 余额、签到、任务、切换账号,并让 CPA 随 DSH 启停。
Install
dsh plugin add dsh-cpa-switch Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Creators
Readme
dsh-cpa-switch
看余额、签到、跑任务、切账号 —— 在 DSH 里管理 CLIProxyAPI(CPA)的账号, 不用再开它的网页控制台。
装完插件即可用:CPA 本体、渠道插件、配置与密钥都由插件自动备好。
[!NOTE] 密钥不出宿主:面板里的所有操作都由插件代劳,管理密钥只保存在宿主侧,网页拿不到。
它做什么
打开 DSH 的 插件 → CPA 切换器,四个渠道各一个标签:
- 看账号余额:可用 / 已用 / 额度池 / 套餐包数;token 与积分分开显示,不混加
- 一键签到 / 一键任务:整个渠道一次点完;每个账号也可以单独操作
- 启用 / 禁用账号:每个账号一个开关;「只用这一个」一步把同渠道其余账号全部禁用
- 添加账号:每个渠道列表末尾的「+ 添加账号」,在浏览器里完成 OAuth 登录即可
- 记住你的选择:重启 DSH 后,在用的仍是你上次选的号
- 自动签到:按渠道开关;DSH 没开而漏掉的签到,插件启动时补一次
- 进程托管:DSH 开则 CPA 起(已在跑就复用),DSH 关则一并停止
- 起不来时说清为什么:端口被别的 CPA 占用、配置代际不符、配置加载失败各自点明; 端口被外部实例占着时不再假装「运行中」
- 对话模型自动注册:装完插件、加完账号,四个渠道的模型自动出现在 DSH 的模型选择器里
支持四个渠道
| 渠道 | 账号数 | 余额单位 | 签到 | 任务 |
|---|---|---|---|---|
| WorkBuddy | 多号 | 积分 | ✅ | ✅ |
| Trae | 多号 | 积分 | ✅ | — |
| Qoder | 单号 | 积分 | ✅ | — |
| ZCode | 单号 | token | — | — |
四个渠道上报的余额字段不是一套:Trae 只有一个余额池,上游不给总额与已用,
所以它那格显示 —、也不画进度条 —— 那是「上游没说」,不是「用了 0」。
按能力降级:渠道不支持的功能不显示,不给"点了没反应"的按钮。
安全
管理密钥只保存在宿主侧,永不下发浏览器 —— 细节见 架构说明。
前置条件
只需要 DSH(DeepSeek Harness)。CPA 本体、渠道插件、管理密钥都不用你准备 —— 插件首次启动时自动下载并配好;机器上已有 CPA 时直接复用,不会覆盖。
下载需要能访问 GitHub Release,直连不通时配好代理即可。
安装
从 npm 安装:
dsh plugin --profile <profile> add dsh-cpa-switch
GUI 的插件管理器里填包名 dsh-cpa-switch 等价。
从本地目录安装(开发用):
plugin_manager action: install_bundle
target: <本目录绝对路径>
从本仓库源码安装:
cd <本仓库目录>
pnpm install
pnpm build
dsh plugin --profile web add .
插件必须装进所选 profile 的 node_modules/ 下。装完不显示、或显示「未运行」,
见 AGENTS.md 的活跃坑。
配置
| 字段 | 默认 | 说明 |
|---|---|---|
adminKey |
空 | CPA 管理密钥;留空则用凭据库里的引用 |
adminKeyRef |
CPA_ADMIN_KEY |
凭据库里的引用名 |
port |
8317 |
CPA 监听端口 |
exePath |
空 | CPA 可执行文件路径;留空自动探测 |
manageLifecycle |
true |
是否由插件负责 CPA 的启动和停止 |
autoCheckinOnStart |
true |
启动时补一次漏掉的签到 |
openControlPanel |
false |
CPA 启动时是否同时打开它自带的网页控制台 |
reasoningEfforts |
true |
是否让模型可切思考档位(关 / 开两档) |
startTimeoutSeconds |
30 |
等待 CPA 就绪的最长秒数 |
对话模型
装完插件、加完账号,四个渠道的模型会自动出现在 DSH 的模型选择器里:
- 模型按「渠道 · 模型名」显示(如
WorkBuddy · deepseek-v4.1-flash),一眼看出请求会走谁 - 这个 provider 在 DSH 里显示为 CPA Switch —— 你在模型选择器里看到的就是它
- 同一个模型被多个渠道供给时,每个渠道各出一条 —— 选了哪个渠道,就只用那个渠道的号, 不会跨渠道轮询消耗你的其它号
加了新账号、删了账号,模型清单自动跟着变。机制与设计见 架构说明。
思考档位
模型选择器里每个模型可以切思考档位 —— 两个选项:
- 关:不让模型输出思考过程,直接给答案
- 开(默认):模型先想再答,思考过程在对话里看得见
默认打开(reasoningEfforts: true)。想整体关掉就去插件设置里关这个开关 ——
关掉后 Effort 那一行会消失,回到不带档位的老行为。
⚠️ 只给两档是有意的,不是没做完。 实测上游对「低/中/高/最大」这类中间刻度 不按刻度办事(同一档位内的波动比档位之间的差还大),给了就是在制造错误预期。 所以只暴露两个语义确定的值:关与开。理由与实测数据见 决策记录。
⚠️ 如果上游某个时刻拒绝档位值(整轮对话报错),把上面那个开关关掉即可恢复。
菜单里为什么没有
Default那一行:DSH 只在「路由没声明默认档位」时才补它, 而它与「关」一样不发档位、名字却像是个值。插件已声明默认档位(=开), 所以菜单就是干净的关 / 开两项。原理与取舍见 决策记录。
已知限制
- 仅 Windows:CPA 目前以 Windows 可执行文件 + DLL 插件形式提供。
- 下载要能访问 GitHub Release:直连不通时需要代理。
- 被限流的号界面看不出:面板显示"启用"不代表"现在能用",只有实际对话报错才发现 —— 详见 架构说明 的防错清单。
文档
维护者文档地图见 AGENTS.md。常用入口:
| 想看什么 | 去哪 |
|---|---|
| 为什么这样设计(不变决策、契约边界、防错清单) | docs/ARCHITECTURE.md |
| 宿主半边各模块、内部 HTTP 路由表 | src/README.md |
| 浏览器半边 | src/client/README.md |
| 环境准备 | src/setup/README.md |
| 测试覆盖与运行 | tests/README.md |
| 下一步做什么、当前卡在哪 | docs/PLAN.md |
开发
pnpm install
pnpm build # tsdown 双目标构建 → lib/
pnpm check # typecheck + lint + format + build + verify:artifacts + test
改了源码要重新构建:宿主加载的是构建产物,pnpm build 之后宿主侧重启 DSH、
浏览器侧刷新页面。
致谢
本项目站在以下开源项目之上,特此致谢:
| 部分 | 参考来源 |
|---|---|
| 工程骨架与插件机制:tsdown 双目标构建、双 tsconfig、vitest / eslint / prettier、Cordis 集成、配置 schema、React 面板 UI、生命周期写法 | dsh-workbuddy-bridge |
| 被管理宿主:多渠道中转 ProxyAPI,以及账号文件、路由策略等管理 API(上游代码) | CLIProxyAPI |
| 渠道协议与多渠道路由能力:WorkBuddy / Trae / Qoder / ZCode 渠道插件,以及账号聚合、签到、任务、余额协议 —— 面板的渠道能力面由它定义 | cpa-multi-plugins · workbuddy-bridge-0.1.2-source(WorkBuddy 渠道协议参考) |
| 宿主平台 | DeepSeek Harness |
CLIProxyAPI 运行时产物发布自 cslkkl/CLIProxyAPI(
release-windows工作流);开发与调研另参考 zlZayn/CLIProxyAPI(local-autobrowser分支)。二者与上游 router-for-me/CLIProxyAPI 本质同源,仅存放位置与分支不同。
免责声明
本项目仅供个人学习与研究使用,与 WorkBuddy / Trae / Qoder / ZCode 等各平台官方无关,非官方产品。
- 使用本项目产生的账号风险、额度变动及其它后果,均由使用者自行承担
- 请勿用于商业用途
- 各渠道平台有权随时调整其服务策略,本项目不保证任何功能的持续可用
- 因使用本项目造成的任何损失,作者不承担任何责任
贡献
欢迎提 Issue 与 PR。提交前请确保 pnpm check 全绿。
本仓的约定写在 AGENTS.md:改动要同步文档网络, 文档改动后跑一次链接校验(命令见该文件)。
许可
MIT