cc-env 是一个独立 CLI,用来管理 Claude Code 的第三方 API profile,并通过启动 claude 子进程时注入环境变量来切换模式。
它不再写入 ~/.claude/settings.json,因此不会污染官方 Claude 登录态。官方登录态通过内置的 official 模式表示:启动前清理所有受管理的第三方路由变量,然后直接运行 claude。
- 用
~/.claude/cc-env/profiles.json保存多个第三方 API profile - 用
cc-env <profile|official>保存当前模式并启动claude - 通过
cc-env进入交互界面完成新增/编辑/删除/重命名/切换 - 支持把 profile 名后的参数原样传给
claude,也兼容用--显式分隔 official和current是保留名,不能作为普通 profile 使用
- profiles 仓库:
~/.claude/cc-env/profiles.json
也可以通过环境变量覆盖默认路径:
CC_ENV_PROFILES_PATH
兼容旧变量 CC_SWITCH_PROFILES_PATH,但新配置优先使用 CC_ENV_PROFILES_PATH。
go build -o cc-env .构建完成后会得到当前目录下的 cc-env 可执行文件。
~/.claude/cc-env/profiles.json 的结构如下:
{
"version": 1,
"current": "deepseek",
"profiles": {
"deepseek": {
"description": "DeepSeek",
"env": {
"ANTHROPIC_AUTH_TOKEN": "token-demo",
"ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
"ANTHROPIC_MODEL": "deepseek-v4-pro",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash",
"CLAUDE_CODE_SUBAGENT_MODEL": "deepseek-v4-flash",
"CLAUDE_CODE_EFFORT_LEVEL": "max",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
"CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK": "1"
}
}
}
}必填:
ANTHROPIC_AUTH_TOKENANTHROPIC_BASE_URL
可选:
ANTHROPIC_MODELANTHROPIC_DEFAULT_OPUS_MODELANTHROPIC_DEFAULT_SONNET_MODELANTHROPIC_DEFAULT_HAIKU_MODELCLAUDE_CODE_SUBAGENT_MODELCLAUDE_CODE_EFFORT_LEVELCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICCLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK
不在白名单中的字段不会被接受到 profile 中。
cc-env无参数时进入 Bubble Tea 交互界面,可在此完成 profile 的选择、新增、编辑、删除等操作。
键位:
| 按键 | 功能 |
|---|---|
↑ / ↓ · j / k |
上下选择 |
Enter |
切换到选中 profile 并启动 claude |
a |
新建 profile |
e |
编辑当前选中的 profile |
d |
删除当前选中的 profile |
/ |
过滤(输入关键字,Enter 应用,Esc 取消) |
q / Ctrl+C |
退出(不切换) |
界面说明:
- 左侧为配置列表,右侧卡片实时预览选中 profile 的字段,
ANTHROPIC_AUTH_TOKEN会自动遮罩。 - 列表顺序:
official置顶,其次为当前配置,其余按名称排序。 - 重命名:在
e编辑表单里修改「名称」字段即可,保存时自动迁移(无单独的重命名命令)。
非交互终端(管道/重定向)下,
cc-env打印当前配置状态后直接退出,不启动 claude。
cc-env current示例输出:
deepseek
cc-env deepseek传参给 Claude:
cc-env deepseek --print "hello"也可以显式使用 -- 分隔:
cc-env deepseek -- --print "hello"执行顺序:
- 读取
profiles.json - 找到目标 profile
- 更新
profiles.json中的current - 从当前进程环境中移除所有受管理变量
- 写入目标 profile 的 env
- 启动
claude
cc-env officialofficial 模式会清理第三方路由变量后启动 claude,不会写入 token、base URL 或 model。
official是内置模式,不能新增、编辑、删除current是保留名,不能作为普通 profile 名称- 不能删除当前正在使用的普通 profile
- 第三方 profile 必须包含 token 和 base URL
运行测试:
go test ./... -count=1构建:
go build ./...- main.go:CLI 入口
- internal/cli/app.go:命令分发与直达启动
- internal/tui/:Bubble Tea 交互界面
- internal/profile/store.go:
profiles.json读写 - internal/profile/validate.go:profile 校验规则