惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园_首页
酷 壳 – CoolShell
酷 壳 – CoolShell
G
Google Developers Blog
Jina AI
Jina AI
C
Check Point Blog
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
Last Week in AI
Last Week in AI
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
阮一峰的网络日志
阮一峰的网络日志
The Cloudflare Blog
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
WordPress大学
WordPress大学
博客园 - 聂微东
月光博客
月光博客
博客园 - 司徒正美
T
The Blog of Author Tim Ferriss
大猫的无限游戏
大猫的无限游戏
Microsoft Security Blog
Microsoft Security Blog

开源软件

分享一个免费汇率 API:已经稳定运行 2 年(每月 500 万次请求) - V2EX [开源分享] 仅需一个脚本就能将目录转 s3 服务, FluxonFS vs Alluxio 5x 吞吐 - V2EX 推荐自用「文字转朗读音频」工具: Edge TTS 语音合成助手(开源 · 免费 · Windows) - V2EX 做一个 iOS 27 风格的 V2EX 客户端 - V2EX macOS 原生终端 Termite 1.18 版本发布-新增工作区灵感来自 ARC 浏览器 - V2EX 今天给 Berth 连发了 v1.3 和 v1.4 两个版本 - V2EX [开源]给分散 Cursor 账号做了个自托管额度与用量看板 - V2EX [开源] Git AI Control: Git AI 的本地隐私与策略控制面板 - V2EX 我做了一个可从手机远程管理 Mac 的开源控制台: Flux Monitor - V2EX 什么都没干 被帖上莫须有的罪名! - V2EX 你们都在用 AI,而我用古法编程做了一个剪映 - V2EX 终于有可以替代剪映的开源视频工具了!数据全本地,还能用 AI 聊天剪视频 - V2EX 开源一款 MAC 原生终端和一款原生 SSH 客户端 PurePic:一个由 AI 全制作的轻量图片查看器 然人赚不到自己认知以外的钱! 写了一个轻量的后台导航页 Admin Dock, Docker 一键部署 终于做出了我理想中的那个优雅的跨平台阅读软件 cursor canvas 技能复刻 一款跨设备的重复文件清理器 Excelize 开源十周年,发布 2.11.0 版本 OmenXHub 更美观 轻量 功能完备的暗/光影精灵控制中心 boss 直聘 ai 招聘助手(hr 用 轻量 macOS 上模拟 iOS 设备定位的工具 [独立开发] 因为嫌 Quicker 限制多且收费,我用业余时间写了款免费开源的 Windows 效率神器 [开源分享] RPG Roleplay Platform:把你收藏的小说变成可交互游戏世界的自托管 LLM 引擎 [开源] 告别“删库跑路”的恐惧:我做了一款跨平台的磁盘清理工具 Skiff [开源] 一个支持自定义管理 github star 页的浏览器插件 [Github 开源] 个人自托管、零运维的 A 股「选股 + 监控 + 回测」智能量化工作台 [开源] 嘴遁 TalkOut: AI 斗嘴游戏 用一张嘴说服一个死活不松口的 AI 开源了一个自托管的 Agent 编排项目,不想再用拖拽画工作流了
开源一个中转站/模型切换小工具(和 CC Switch 共存)
theo · 2026-05-06 · via 开源软件

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 "$@"

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

  • 中转站换 Key 、换 URL 的时候,得把所有项目里的脚本都改一遍
  • 换分组通道(比如从普通组切到高速组)也是同样的批量修改
  • Codex 的脚本还得单独处理 OPENAI_* 变量,模板不一样,更乱

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

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

  • 所有中转站配置集中在一个 YAML 文件里,改一处全局生效
  • 在任意项目目录下,一条命令指定 profile 启动,不同终端窗口可以用不同 profile
  • 命令行上下键翻历史,cl relay-acl relay-b 随手切,不打断心流
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 完全不受影响。

我自己的用法是:

  • CC Switch 专门用来管理 MCP 和 Skills——它能在 Claude Code 和 Codex 之间共享 Skills ,而且可以很可视化地开关,非常方便。
  • 至于里面的 Provider 配置,我无论 Claude Code 还是 Codex 都始终设置成 default ,这样就不会污染配置信息。

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 编写,单二进制,零依赖。欢迎试用/反馈~