一个 CLI 工具,用于管理多个 Claude / Codex 配置并在它们之间自动切换。全平台支持:Linux、macOS、Windows(x86_64 + ARM64)。
在不同项目或环境中使用 Claude API 或 OpenAI Codex CLI 时,经常需要切换 API 令牌和设置。cc-switch 让这个过程变得轻松:
- 用易记的名称存储多个配置
- 在它们之间即时切换
- 自动启动带有正确环境变量的 Claude / Codex
- 保持 API 密钥的安全和组织
- 从 JSON 文件导入/导出配置
- 完整的交互模式,支持键盘导航
- 全平台支持:Linux、macOS、Windows(x86_64 + ARM64),自动处理 Windows 上 npm 安装的
claude.cmd/codex.cmdshim
# 安装
cargo install cc-switch
# ===== Claude 配置 =====
# 添加你的第一个配置
cc-switch add work sk-ant-work-xxx https://api.anthropic.com
# 切换到工作配置
cc-switch
# 然后从交互菜单中选择 'work'
# ===== Codex 配置 =====
# 从现有 auth.json 导入
cc-switch codex add work --from-file ~/.codex/auth.json
# 切换到工作配置并启动 Codex
cc-switch codex use work
# 进入 Codex 交互模式
cc-switch codex
# 然后从交互菜单中选择 'work'
# 查看所有配置
cc-switch list # Claude 配置
cc-switch codex list # Codex 配置方式 1 — Scoop(推荐,v0.1.18+):
scoop bucket add cc-switch https://github.com/Linuxdazhao/scoop-cc-switch
scoop install cc-switch方式 2 — Cargo:
cargo install cc-switch方式 3 — 预编译二进制: 从 Releases 下载对应架构的 .zip,将 cc-switch.exe 放到 PATH 中。
方式 1 — Homebrew(推荐):
# 简短形式可用,因 tap 仓库名为 `homebrew-cc-switch`
brew install Linuxdazhao/cc-switch/cc-switch
# 或显式:
# brew tap Linuxdazhao/cc-switch && brew install cc-switch方式 2 — Cargo:
cargo install cc-switch方式 3 — 预编译二进制: 从 Releases 下载对应架构的 .tar.gz。
方式 1 — Homebrew(推荐):
brew install Linuxdazhao/cc-switch/cc-switch方式 2 — Cargo:
cargo install cc-switch方式 3 — 预编译二进制: 从 Releases 下载对应架构的 .tar.gz。
| 命令 | 作用 |
|---|---|
cc-switch add <名称> |
添加新配置 |
cc-switch list |
显示所有配置(JSON 或纯文本) |
cc-switch remove <名称...> |
删除一个或多个配置 |
cc-switch use <名称> |
快速切换配置并启动 Claude |
cc-switch |
进入交互模式 |
| 命令 | 作用 |
|---|---|
cc-switch codex add <名称> |
添加新配置 |
cc-switch codex list |
显示所有配置 |
cc-switch codex remove <名称...> |
删除配置 |
cc-switch codex use <名称> |
切换配置并启动 Codex |
cc-switch codex |
进入交互模式 |
详细文档请查看 Codex 配置管理。
| 命令 | 作用 |
|---|---|
cc-switch completion <shell> |
生成 Shell 补全脚本 |
# Claude 交互模式
cc-switch
# Codex 交互模式
cc-switch codex
# 导航操作:
# - ↑↓ 箭头或 1-9 键:选择配置
# - N/P:下一页/上一页(当配置 >9 个时)
# - R:重置为默认 Claude(仅 Claude 模式)
# - E:编辑配置
# - Q:退出# 切换到指定配置并启动 Claude
cc-switch use work
# 切换并发送提示词
cc-switch use work "帮我写一个 Python 脚本"
# 切换并恢复之前的会话
cc-switch use work --resume c8439f36-44a9-4d85-9e88-de35e004fdd4
cc-switch use work -r c8439f36-44a9-4d85-9e88-de35e004fdd4
# 切换并继续最近的会话
cc-switch use work --continue
cc-switch use work -c# 添加包含所有选项的配置
cc-switch add work -t sk-ant-xxx -u https://api.anthropic.com \
-m claude-3-5-sonnet-20241022 \
--small-fast-model claude-3-haiku-20240307 \
--max-thinking-tokens 8192 \
--api-timeout-ms 300000 \
--disable-nonessential-traffic 1 \
--default-sonnet-model claude-3-5-sonnet-20241022 \
--default-opus-model claude-3-opus-20240229 \
--default-haiku-model claude-3-haiku-20240307
# 使用 DeepSeek API
cc-switch add deepseek \
-t $DEEPSEEK_API_KEY \
-u https://api.deepseek.com/anthropic \
-m deepseek-v4-pro[1m] \
--default-opus-model deepseek-v4-pro \
--default-sonnet-model deepseek-v4-pro \
--default-haiku-model deepseek-v4-flash \
--subagent-model deepseek-v4-pro \
--disable-nonessential-traffic 1 \
--disable-nonstreaming-fallback 1 \
--effort-level max
# 强制覆盖添加
cc-switch add work -t sk-ant-xxx -u https://api.anthropic.com -f
# 交互模式添加
cc-switch add work -i
# 从 JSON 文件导入(文件名作为别名)
cc-switch add --from-file config.json# 设置默认存储模式
cc-switch --store env # 写入到 env 字段(默认)
cc-switch --store config # 写入到根级别,使用 camelCase# 以 JSON 格式列出(默认)
cc-switch list
# 以纯文本格式列出
cc-switch list -p# 移除一个配置
cc-switch remove work
# 一次性移除多个配置
cc-switch remove work personal test-config# 从旧路径迁移(~/.cc_auto_switch/)到新路径
cc-switch --migrate# 从 JSON 文件导入配置
# 文件名(不含扩展名)成为别名
cc-switch add --from-file my-work-config.json
# 期望的 JSON 格式:
# {
# "env": {
# "ANTHROPIC_AUTH_TOKEN": "sk-ant-xxx",
# "ANTHROPIC_BASE_URL": "https://api.anthropic.com",
# "ANTHROPIC_MODEL": "claude-3-5-sonnet-20241022"
# }
# }# 从现有 auth.json 导入
cc-switch codex add work --from-file ~/.codex/auth.json详细文档请查看 Codex 配置管理。
升级后请重新生成补全脚本,以获取新子命令(如
codex)的补全支持。
# Fish(推荐,支持动态别名补全)
cc-switch completion fish > ~/.config/fish/completions/cc-switch.fish
# Zsh
cc-switch completion zsh > ~/.zsh/completions/_cc-switch
echo 'fpath=(~/.zsh/completions $fpath)' >> ~/.zshrc
# Bash(含 Windows 上的 Git Bash)
cc-switch completion bash > ~/.bash_completion.d/cc-switch
echo 'source ~/.bash_completion.d/cc-switch' >> ~/.bashrc
# Elvish 也受支持
cc-switch completion elvish不要直接将补全脚本重定向到 $PROFILE——这会覆盖已有的别名、模块或主题配置。请写入独立文件后再从 $PROFILE 中 dot-source:
$completionDir = Split-Path -Parent $PROFILE
if (-not (Test-Path $completionDir)) { New-Item -ItemType Directory -Path $completionDir | Out-Null }
$completionPath = Join-Path $completionDir 'cc-switch.completion.ps1'
cc-switch completion powershell | Out-File -Encoding utf8 $completionPath
$line = ". '$completionPath'"
if (-not ((Test-Path $PROFILE) -and (Select-String -Path $PROFILE -Pattern ([regex]::Escape($line)) -Quiet))) {
Add-Content -Path $PROFILE -Value $line
}该脚本是幂等的,可以反复执行。
CMD 没有补全机制,直接使用命令即可:
cc-switch add my-config -t sk-ant-xxx -u https://api.anthropic.com
cc-switch list# 将别名永久添加到 shell 配置
# Fish
echo "alias cs='cc-switch'" >> ~/.config/fish/config.fish
echo "alias ccd='claude --dangerously-skip-permissions'" >> ~/.config/fish/config.fish
echo "alias cx='cc-switch codex'" >> ~/.config/fish/config.fish
# Zsh
echo "alias cs='cc-switch'" >> ~/.zshrc
echo "alias ccd='claude --dangerously-skip-permissions'" >> ~/.zshrc
echo "alias cx='cc-switch codex'" >> ~/.zshrc
# Bash
echo "alias cs='cc-switch'" >> ~/.bashrc
echo "alias ccd='claude --dangerously-skip-permissions'" >> ~/.bashrc
echo "alias cx='cc-switch codex'" >> ~/.bashrc
# 现在可以使用:
cs # 代替 cc-switch(进入交互模式)
ccd # 快速启动 Claude
cx # 进入 Codex 交互模式cc-switch 将配置存储在 ~/.claude/cc_auto_switch_setting.json 中:
Claude 配置:更新 Claude 的 settings.json 文件,设置适当的环境变量。
Codex 配置:写入 ~/.codex/auth.json 文件,Codex CLI 从该文件读取认证信息。
这意味着:
- ✅ 不修改全局配置
- ✅ 配置之间完全隔离
- ✅ 安全的 API 密钥管理
- ✅ 适用于任何 Claude / Codex 安装
- ✅ 保留其他设置
- ✅ 支持自定义设置目录
工具在切换配置时设置以下环境变量:
ANTHROPIC_AUTH_TOKEN- 你的 API 令牌ANTHROPIC_BASE_URL- API 端点 URLANTHROPIC_MODEL- 自定义模型(可选)ANTHROPIC_SMALL_FAST_MODEL- 后台任务快速模型(可选)ANTHROPIC_MAX_THINKING_TOKENS- 最大思考令牌限制(可选)API_TIMEOUT_MS- API 超时时间(毫秒)(可选)CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC- 禁用非必要流量标志(可选)ANTHROPIC_DEFAULT_SONNET_MODEL- 默认 Sonnet 模型(可选)ANTHROPIC_DEFAULT_OPUS_MODEL- 默认 Opus 模型(可选)ANTHROPIC_DEFAULT_HAIKU_MODEL- 默认 Haiku 模型(可选)CLAUDE_CODE_SUBAGENT_MODEL- 子代理模型(可选)CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK- 禁用非流式回退标志(可选)CLAUDE_CODE_EFFORT_LEVEL- 努力级别(可选,如 'max')
Codex 配置存储在 ~/.codex/auth.json,支持两种认证模式:
chatgpt 模式(OAuth):
id_token- 身份令牌access_token- 访问令牌refresh_token- 刷新令牌account_id- 账户 ID
apikey 模式:
OPENAI_API_KEY- API 密钥
详细文档请查看 Codex 配置管理。
# 克隆
git clone https://github.com/Linuxdazhao/cc_auto_switch.git
cd cc-switch
# 构建
cargo build --release
# 测试
cargo testMIT 许可证 - 详见 LICENSE 文件。
由 Linuxdazhao 用 ❤️ 制作