上周四晚上十一点多,我在跑一个重构任务,Claude Code 干到一半,中转站开始 429。换一家吧——打开~/.claude/settings.json,把ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN换掉,保存,杀掉会话重开。这套动作去年我做了不下几十次,熟练得有点心酸。
真正让我下决心改的是三次翻车:
第一次是 JSON 里多了个尾逗号,CLI 启动直接报解析错误,而旧配置已经被我覆盖了,只能凭记忆把 token 一个个拼回去;第二次是环境变量 key 打错了大小写,CLI 没报错,只是默默走了官方地址,第二天看账单才发现不对;第三次最冤——给 Codex 换供应商,才发现它用的是config.toml,跟 Claude Code 那套完全不通用,同一个“换中转站”的动作得学两遍。
后来 Gemini CLI、OpenCode 也陆续加入技术栈,我桌面上那份“配置切换备忘.txt”越写越长。这事的本质是:每个 CLI 一套配置格式、一个文件位置、一种 env 约定,而供应商这头的变量(谁家便宜、谁家今天稳定)天天在变。
我想要的其实就三件事
- 切供应商不碰文件,最好托盘里点一下;
- 一家中转挂了自动切下一家,别让我半夜手动重试;
- 能看到每家花了多少钱,别月底才被账单吓一跳。
中间试过几个方案:写过 shell 脚本用环境变量切,能用,但 Codex 和 Gemini CLI 的配置文件它管不到;也用过一段时间 cc-switch,切换本身做得很顺手。后来换成 Olenro,一是上面三件事它都收进来了,二是开源(MIT),配置的读写逻辑自己能翻源码确认——管理 token 的工具,这点我比较在意。
现在的方案:把“供应商层”从 CLI 里剥出来
Olenro 是个桌面应用,Tauri 2 写的,Windows / macOS / Linux 都有安装包,管的是 Claude Code、Codex、Gemini CLI、OpenCode、OpenClaw 这一批 CLI 的供应商配置。主界面就是供应商列表:
想用哪家点一下,托盘菜单里也能直接切。对我最实用的一条是 Claude Code 支持热切换——不用重启会话,跑一半的任务不会丢上下文。
配置这块不再手搓 JSON / TOML。它内置了五十多个供应商预设,选一家填个 key 就行;要自定义模型走表单编辑:
写回文件是原子写入加自动备份,我前两次那种“覆盖之后才发现写错”的翻车,在这里被结构性堵住了——就算真出问题也能从备份回滚。
中转站挂了怎么办
第二件事交给它内置的本地代理。请求先走本地网关,后面挂多个供应商,带健康检查和熔断:一家连续超时,自动切到下一家,对 CLI 来说入口地址是固定的,无感。
用过 nginx 做这件事的读者应该不陌生,区别是不用自己维护 upstream 和切换脚本了。
花了多少,心里有数
第三件事是用量统计。按供应商、按模型、按天看 token 消耗和估算花费,单价可以自己填:
我现在每个月底扫一眼哪家中转站性价比掉下去了,就把流量往别家挪一挪。数据都在本地 SQLite 里,云同步是可选项(Dropbox / OneDrive / iCloud / WebDAV),我的云同步是关着的。
说点实话
不是所有人都需要这东西。如果你只用官方 API 一家、没有多供应商切换的需求,命令行加默认配置就挺好,多装一个 GUI 反而是负担。
另外它是本地优先的设计,卸载不会动你 CLI 里已有的配置,想尝鲜的可以先装来试试,不合适删掉就走,官方 macOS 版有签名和公证。官网是 olenro.com,GitHub 上能下到各平台的包。
工具解决不了中转站本身的稳定性,但至少能让“换一家”这个动作从三分钟降到三秒,半夜遇到 429 也不用从被窝里爬出来改 JSON 了。有类似多供应商管理需求的可以试试,也欢迎评论区聊聊你们现在的方案。