Claude Code 和 Codex API 中转商切换工具 - 在命令行中快速切换不同的 API 中转服务。
- 🚀 支持 Claude Code 和 Codex 两种服务的中转商切换
- 🔧 Claude Code: 自动修改
.zshrc和.bashrc配置文件 - 📝 Codex: 自动修改
.codex/config.toml和.codex/auth.json - 💾 支持多个中转商配置管理
- 🔒 自动备份配置文件
- 📋 内置主流中转商配置
- 🎯 两级命令结构,操作清晰直观
pip install -e ../install.shpython3 claude_switcher/cli.py <command>Vibe Switcher 使用两级命令结构:
vibe-switcher <服务类型> <操作> [参数]
- 服务类型:
claude(Claude Code) 或codex(Codex) - 操作:
list,switch,add,remove/delete,current
在 python CLI 之外,仓库新增了基于 Rust + ratatui 的交互式终端工具,能够同时展示 Claude Code 与 Codex 的全部中转商,并提供键盘导航体验。该工具直接读取 ~/.config/claude-switcher/config.json,因此始终与 vibe-switcher 保持一致。
- 📊 左右分栏实时列出 Claude/Codex 中转商,包含 URL、凭证配置状态及关键元数据
- 🎯 Tab / Shift+Tab / h / l 快速切换服务面板,↑/↓ 选择目标中转商
- 🔁 面板切换时自动聚焦当前激活的中转商,降低误操作风险
- ⚡ Enter 调用
vibe-switcher <service> switch <provider>,成功后自动刷新配置 - 🔄
r可手动重新扫描配置文件,便于多人协作或外部脚本修改 - 🧩 采用模块化状态管理,后续可扩展余额、延迟、健康度等指标展示
cd vibe_switcher_tui
cargo run运行前请确保本机已安装 Rust toolchain,并且已经通过 Python 版本的
vibe-switcher初始化过配置文件。
| 快捷键 | 作用 |
|---|---|
Tab / Shift+Tab / h / l |
在 Claude/Codex 面板之间切换焦点 |
↑ / ↓ / j / k |
在当前面板中移动高亮项(循环模式,支持 Vim 手势) |
Enter |
调用 vibe-switcher 执行切换 |
r |
重新读取配置文件 |
q / Esc |
退出界面 |
src/main.rs: 入口与事件循环,基于crossterm捕获键盘事件AppState: 负责状态管理(列表、选中项、状态栏等)ProviderDisplay: 对config.json内容做展示层映射ratatui渲染:分区布局 +List+Paragraph实现图形化界面
欢迎在此基础上继续扩展,例如:
- 接入中转商余额查询 API,在 detail 区域显示余额、额度或限速等信息
- 通过异步任务周期性刷新健康度/时延指标
- 支持批量切换(一次性同步 Claude 与 Codex)
- 导入更多配置源(如远程 JSON、团队共享库)
vibe-switcher claude list默认提供 4 个中转商,但需要配置各自的 Token:
# 配置 fox 中转商
vibe-switcher claude add fox sk-your-token-here https://code.newcli.com/claude
# 配置 duck 中转商
vibe-switcher claude add duck sk-your-token-here https://jp.instcopilot-api.com
# 配置 88code 中转商
vibe-switcher claude add 88code sk-your-token-here https://www.88code.org/api
# 配置 packy 中转商
vibe-switcher claude add packy sk-your-token-here https://api.packycode.comvibe-switcher claude switch fox切换后会自动修改你的 shell 配置文件(.zshrc 或 .bashrc),并提示你执行 source 命令使配置生效。
vibe-switcher claude currentvibe-switcher codex list# 配置 duck 中转商(带 network access)
vibe-switcher codex add duck sk-your-api-key https://jp.duckcoding.com/v1 --network-access enabled
# 配置 fox 中转商
vibe-switcher codex add fox sk-your-api-key https://code.newcli.com/codex/v1vibe-switcher codex switch duck切换后会自动修改 ~/.codex/config.toml 和 ~/.codex/auth.json 文件。
vibe-switcher codex current列出所有已配置的 Claude Code 中转商,包括 URL 和 Token 信息(已脱敏显示)。
切换到指定的 Claude Code 中转商,自动更新 shell 配置文件中的环境变量:
ANTHROPIC_AUTH_TOKENANTHROPIC_BASE_URL
示例:
vibe-switcher claude switch duck
source ~/.zshrc # 使配置生效添加新的 Claude Code 中转商或更新现有中转商的配置。
示例:
vibe-switcher claude add myapi sk-abc123 https://my-api.com从配置中删除指定的 Claude Code 中转商。
示例:
vibe-switcher claude remove myapi显示当前激活的 Claude Code 中转商信息,以及 shell 配置文件中的实际值。
列出所有已配置的 Codex 中转商,包括 URL、API Key 和 Network Access 信息。
切换到指定的 Codex 中转商,自动更新:
~/.codex/config.toml~/.codex/auth.json
示例:
vibe-switcher codex switch fox添加新的 Codex 中转商或更新现有中转商的配置。
参数:
name: 中转商名称api_key: API Keyurl: API Base URL--network-access: (可选) 网络访问设置,如enabled
示例:
vibe-switcher codex add duck sk-abc123 https://jp.duckcoding.com/v1 --network-access enabled从配置中删除指定的 Codex 中转商。
示例:
vibe-switcher codex remove duck显示当前激活的 Codex 中转商信息,以及 Codex 配置文件中的实际值。
为避免不同中转商的配置差异导致手动修改,这里内置了针对常见服务商的适配逻辑:
- duck: 自动写入
requires_openai_auth = true与disable_response_storage = true,并在auth.json中仅保留OPENAI_API_KEY。 - yescode: 自动补充
env_key = "YESCODE_API_KEY"、为当前命令执行目录添加trust_level = "trusted"的项目配置,同时在auth.json中写入OPENAI_API_KEY与YESCODE_API_KEY两个字段。若需要为多个项目授权,可在~/.config/claude-switcher/config.json的codex_providers.yescode.projects中添加更多路径。
配置文件位置: ~/.config/claude-switcher/config.json
配置文件结构:
{
"providers": {
"fox": {
"token": "sk-xxx",
"base_url": "https://code.newcli.com/claude"
},
"duck": {
"token": "sk-yyy",
"base_url": "https://jp.instcopilot-api.com"
}
},
"current": "duck",
"env_vars": {
"token": "ANTHROPIC_AUTH_TOKEN",
"base_url": "ANTHROPIC_BASE_URL"
}
}配置文件位置: ~/.config/claude-switcher/config.json
Codex 部分结构:
{
"codex_providers": {
"fox": {
"api_key": "sk-xxx",
"base_url": "https://code.newcli.com/codex/v1",
"network_access": ""
},
"duck": {
"api_key": "sk-yyy",
"base_url": "https://jp.duckcoding.com/v1",
"network_access": "enabled"
}
},
"current_codex": "duck"
}Codex 运行时配置:
~/.codex/config.toml- Codex 主配置文件(TOML 格式)~/.codex/auth.json- Codex 认证文件(JSON 格式)
每次修改 shell 配置文件前,工具会自动创建备份:
~/.zshrc.claude_switcher_backup_20241002_153045
每次修改 Codex 配置前,工具会自动创建备份:
~/.codex/config.toml.claude_switcher_backup_20241002_153045
~/.codex/auth.json.claude_switcher_backup_20241002_153045
备份文件名包含时间戳,便于恢复。
| 名称 | URL |
|---|---|
| fox | https://code.newcli.com/claude |
| duck | https://jp.instcopilot-api.com |
| 88code | https://www.88code.org/api |
| packy | https://api.packycode.com |
| 名称 | URL | Network Access |
|---|---|---|
| fox | https://code.newcli.com/codex/v1 | - |
| duck | https://jp.duckcoding.com/v1 | enabled |
# 1. 安装工具
pip install -e .
# 2. 配置你的 Token
vibe-switcher claude add duck sk-your-token-here https://jp.instcopilot-api.com
# 3. 切换到该中转商
vibe-switcher claude switch duck
# 4. 使配置生效
source ~/.zshrc # 或 source ~/.bashrc# 查看可用的中转商
vibe-switcher claude list
# 切换到另一个中转商
vibe-switcher claude switch fox
# 使配置生效
source ~/.zshrc# 配置 Codex 中转商
vibe-switcher codex add duck sk-your-api-key https://jp.duckcoding.com/v1 --network-access enabled
# 切换 Codex 中转商
vibe-switcher codex switch duck
# 查看当前配置
vibe-switcher codex current# 切换 Claude Code 到 fox
vibe-switcher claude switch fox
source ~/.zshrc
# 切换 Codex 到 duck
vibe-switcher codex switch duck
# 查看两者的当前配置
vibe-switcher claude current
vibe-switcher codex current- ✅ Zsh (
.zshrc) - ✅ Bash (
.bashrc)
工具会自动检测你当前使用的 shell 配置文件。
- ✅ 所有 Shell(通过修改
~/.codex/配置文件)
- Token 安全: 配置文件权限自动设置为 600(仅所有者可读写)
- 备份恢复: 如需恢复配置,可从备份文件中复制内容
- 配置生效: 修改后需要执行
source ~/.zshrc或重启终端 - 多终端: 已打开的终端需要重新 source 配置文件
- 配置文件: 自动管理 TOML 和 JSON 格式的配置
- 备份恢复: 两个配置文件都会自动备份
- Network Access: 可选配置,部分中转商需要设置为
enabled
vibe-switcher/
├── claude_switcher/
│ ├── __init__.py # 包初始化
│ ├── cli.py # CLI 入口(两级命令结构)
│ ├── config.py # 配置管理(Claude Code + Codex)
│ ├── shell.py # Shell 配置文件处理(zsh/bash)
│ └── codex.py # Codex 配置文件处理(TOML/JSON)
├── pyproject.toml # 项目配置
├── install.sh # 安装脚本
├── README.md # 说明文档
└── IMPLEMENTATION_PLAN.md # 实现计划
# 以可编辑模式安装
pip install -e .
# 查看帮助
vibe-switcher --help
vibe-switcher claude --help
vibe-switcher codex --help- Python 3.7+
- argparse - 命令行参数解析(两级子命令)
- json - JSON 配置管理
- pathlib - 文件路径操作
- shutil - 文件备份
vibe-switcher claude current # Claude Code
vibe-switcher codex current # CodexClaude Code: 执行 source ~/.zshrc 或 source ~/.bashrc
Codex: 配置立即生效,无需额外操作
查看备份文件(文件名包含时间戳),从备份文件中复制内容恢复。
可以。两种服务的配置是独立的,互不影响。
# Claude Code
vibe-switcher claude add myservice sk-token-123 https://my-api.com
# Codex
vibe-switcher codex add myservice sk-key-456 https://my-codex-api.comMIT
欢迎提交 Issue 和 Pull Request!