开源一个中转站/模型切换小工具(和 CC Switch 共存)

5 月 6 日
 theo

CC Switch 的问题

用 Claude Code / Codex 的人大多知道 CC Switch ,它能管理 Skills 和 MCP 配置,但 Provider 切换这块有几个痛点:

  1. 全局控制:CC Switch 的 Provider 是全局生效的,切了就是切了,所有项目一起变。但实际场景是——项目 A 在用某个中转站跑长任务,项目 B 想临时换个便宜的通道试试,两边需求不一样。
  2. GUI 切换打断心流:每次切换要打开界面、点选、确认,对于一天要在多个项目间来回跳的人来说,这个操作频率太高了,每次都打断终端里的工作节奏。
  3. 不同项目不同阶段用不同通道:写代码用快的,review 用便宜的,跑大任务用稳定的——这种按场景灵活切换的需求,全局 GUI 切换根本应付不来。

我之前的解法:一堆 shell 脚本

最早的办法是在项目目录下放启动脚本,每个中转站一个:

unset ANTHROPIC_AUTH_TOKEN
unset ANTHROPIC_API_KEY
unset ANTHROPIC_BASE_URL
export ANTHROPIC_BASE_URL=https://relay.example.com
export ANTHROPIC_API_KEY=sk-xxx
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
claude "$@"

十来个脚本散落各处。能用,但问题也很明显:

cl:集中配置 + 命令行灵活切换

所以写了 cl 这个工具。核心思路很简单:

cl              # 用默认 profile 启动
cl relay-a      # 指定 profile
cl relay-a -r   # 透传参数给 claude
cl codex-relay  # 启动 Codex

配置文件

~/.cl/profiles.yaml,一个文件管所有:

default: relay-a

defaults:
  env:
    CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "1"

profiles:
  relay-a:
    name: Relay A
    base_url: https://relay-a.example.com
    api_key: sk-xxx
    model: claude-opus-4-6
    env: {}

  relay-b:
    name: Relay B (Auth Token)
    base_url: https://relay-b.example.com
    auth_token: sk-xxx
    env:
      API_TIMEOUT_MS: "600000"

  relay-c:
    name: Relay C
    base_url: https://relay-c.example.com
    api_key: sk-xxx
    model: custom-model-name
    small_fast_model: custom-fast-model
    env: {}

  codex-relay:
    name: Codex via Relay
    cli: codex
    base_url: https://codex-relay.example.com
    api_key: sk-xxx
    model: gpt-5.5
    env:
      CODEX_CONFIG_DIR: ~/.codex-envs/relay

中转站换 Key ?改这一个文件,所有项目立刻生效。换分组通道?改 base_url 一行,完事。

和 CC Switch 的关系

两者完全独立,各管各的:

CC Switch cl
Skills 管理
MCP 服务器配置
Provider 认证
启动 CLI

cl 只通过环境变量注入认证,不动 ~/.claude/settings.json。CC Switch 配置的 MCP 和 Skills 完全不受影响。

我自己的用法是:

Provider 的事全交给 cl 在命令行解决。每次需要管理 Skills 和 MCP 了,才打开 CC Switch 配一下,配完退出,不需要常驻占据系统托盘。

安装

brew install unliu/tap/cl

或者用 Go:

go install github.com/unliu/cl-launcher@latest

仓库

github.com/unliu/cl-launcher

Golang 编写,单二进制,零依赖。欢迎试用/反馈~

1073 次点击
所在节点    开源软件
1 条回复
theo
5 月 7 日
P.S. 我的习惯是把模型、余额/充值链接也写到 profile 名称里,这样随时 `cl list` 就可以随时调取。

![image-20260506235846093]( https://img.evf.cc/ipic/2026-05-06-155846.png)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/1210691

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX