乐于分享
好东西不私藏

Rust 在 AI 工具圈的两次爽文反击:管配置的 cc-switch,自己跑的 goose

Rust 在 AI 工具圈的两次爽文反击:管配置的 cc-switch,自己跑的 goose

戳上方蓝字笃秀一芯关注我

大家好,我是 笃秀一芯

记得以前搞底层的朋友一脸鄙视地跟我说:“做普通开发别用 Rust,写它跟写编译器似的,心智负担太重,不适合人类。”

但最近使用的几款工具,作者居然全是 Rustacean。虽然Go语言已经天下无敌了,但还是有必要分享下这些rust工具给大家。

我上周同时开了 Claude Code 写业务、Goose 修 lint、Gemini CLI 读文档,三个 terminal 窗口摆着,切 provider 的时候手滑把 DeepSeek 的 key 粘到 Claude 的 config 里了——然后花了二十分钟才搞明白为啥 Claude 报 401。

那一刻我就想:有没有个东西能把我这几个 AI 小祖宗的配置统一管了?

还真有。而且俩都是 Rust 写的。这事儿就很 Rust 本色:被现有工具折磨 → 骂骂咧咧 → 自己造一个 → 性能还吊打原版。


🧰 cc-switch —— AI CLI 的"宿管阿姨"

先讲痛点,你肯定中过招

现在 AI coding CLI 的配置有多乱:

  • Claude Code 要改 ~/.claude/settings.json
  • Goose 要改 ~/.config/goose/config.yaml
  • Codex 要 .env
  • Gemini CLI 要 gcloud auth
  • MCP 每个工具还要单独配 stdio/http/sse

换一个模型 ≈ 搬一次家。更要命的是**:Claude Code 改完 config 得重启 terminal 才能生效**,你刚打到一半的 prompt 全没了。

cc-switch 是啥

GitHub 上 farion1231/cc-switch,5 万+ Star,MIT 协议**。定位是"AI CLI 配置统一管理器*"*,专治上面这些破事。

技术栈很 Rust 味:

  • 核心逻辑 纯 Rust(配置解析、provider 管理、MCP 同步、本地代理)
  • 桌面端 Tauri 2 + React/TS,安装包 ≈ 11MB,常驻托盘几乎不占内存
  • CLI 版 cc-switch-cli 纯 Rust 跑,SSH 远程也能用
  • Web 版 Rust 编译 wasm,Headless 服务器友好

三端共享同一套 Rust core lib——provider 解析、MCP 格式转换、API 节点测速逻辑写一次到处跑,这 code reuse 爽感只有 Rustacean 懂。

为啥这活儿适合 Rust 干

划重点 👇

  • 要同时啃 JSON / YAML / TOML / .env 四种配置格式 → Serde 一把梭,零成本抽象
  • 本地代理要做 API 测速 + 故障自动转移 → 碰 socket,tokio + hyper 稳得像老狗
  • 常驻托盘不能有 GC 停顿 → 无 GC 是 Rust 的基本修养
  • 跨平台(Win/Mac/Linux)托盘 + 桌面 UI → Tauri 的 Rust 核心比 Electron 轻 10 倍

几个真香的骚功能

  1. 50+ provider 预设
    :Claude 官方、DeepSeek、智谱、Kimi、通义、Gemini、OpenRouter 乃至"某国内中转站"的 base_url 都给你预填了,填 key 就跑
  2. MCP 一次配,三家同步
    :配一次自动推到 Claude Code / Goose / Codex,不用每个工具跪舔一遍
  3. Claude Code 热切换不重启
    :改 provider 点一下,terminal 里正在跑的会话不断,继续喷 code
  4. API 节点故障转移
    :你挂两个 DeepSeek 中转节点,A 挂了自动切 B,不用半夜爬起来改 config

装法也简单:桌面端 Releases 下对应包,Mac 直接 brew install --cask cc-switch


goose—— 自己会跑的 AI 实习生

cc-switch 是"管 AI 工具的",goose 是 "AI 工具本人"。

先认祖归宗

Goose 本体是 Block(原 Square)开源的本地 AI coding agent,MIT 协议,纯 Rust 写的。aaif-goose 一般是高校/研究机构(AAIF 大概是某个 AI 论坛或实验室的 fork)做的定制版,核心和 Block/main 一致,可能多了些内部 MCP 预设或私有模型适配,普通用户直接用 Block 主线就行,折腾党可以逛 aaif 的 fork 捡 patch。

它和 Claude Code / Codex 有啥不一样

维度
Claude Code
Goose
厂商绑定
Anthropic 优先
不绑,Claude/DeepSeek/Gemini/Ollama 随便接
运行位置
本地+云端混合
纯本地 agent loop
,模型可以接远端
扩展方式
MCP 手动配
自带 MCP 市场**,agent 自己装扩展**
骚功能
强在写代码
有 "recipe" 概念:prompt+工具集打包

最关键的一点**:Goose 是单二进制分发**。Mac 上下载完拖进 Applications 就能跑,不用装 node、不用装 python,不会像某些工具偷偷把你 src/ 传上去(虽然 Claude Code 也本地跑,但 Goose 的 agent loop 是 Rust 写的,沙箱更硬)。

为啥 agent 用 Rust 写这么爽

划重点 👇

  • Agent Loop + 工具调用沙箱
    :Rust 所有权保证它不会偷偷 rm -rf 你的根目录,shell/file/network 调用都在权限模块里裹着
  • Provider 抽象成 trait
    :换模型只要 impl ParseResponse,Claude 的流式、DeepSeek 的返回格式、Ollama 的本地推理,统一成一套 LLM 交互层
  • Extension 是独立 subprocess + stdin/stdout JSON-RPC
    :扩展可以用任何语言写,但核心 loop 是 Rust 保稳,跑几百轮 tool call 内存也不会飘
  • Recipe 机制
    :相当于把"修 lint → 改代码 → 跑测试"这种固定 workflow 打包成一个 yaml,点一下 goose 自己循环到你满意

举个 recipe 的小例子(真的就这么简单):

name: fix-clippy
description: 自动修 cargo clippy 报错
prompt: 运行 cargo clippy,把所有报错逐个修掉,修完再跑一次确认 0 warning
tools: [shell, file]

你提交个 MR 带 clippy 报错,Goose headless 模式在 CI 里跑一个这个 recipe,改完自动 push —— 老板问你就说"招了个 Rust 实习生,不交社保"。


🤝 这俩凑一起才是完全体

cc-switch 里可以直接配 Goose 的 provider + MCP,点一下启动,连 ~/.config/goose/config.yaml 都不用手写。

形象点说:

  • cc-switch = 宿管阿姨
    :管你有多少个 AI 工人、每个工人的工牌(API key)/ 工位(MCP)/ 排班(provider)怎么排
  • goose = 最能打的实习生
    :自己会领活、自己会装工具、干不完还会自己喊(调 MCP)

以前你伺候三个 AI CLI 像伺候三个性格不合的祖宗,现在阿姨管后勤,实习生干活,你只管摸鱼等 PR。


🔚 为啥最近 AI 工具圈 Rust 出镜率这么高

你盘点下:

  • 桌面壳**:Tauri**(Rust)
  • 搜索**:ripgrep**(Rust)
  • 打包**:turbo**(Rust)
  • AI 工具链**:cc-switch**(Rust**)、goose**(Rust**)、qdrant/vector**(Rust 向量库)

原因其实很朴素:

AI 工具要"本地跑不卡 + 不偷用户数据 + 跨平台 + 能和 node/python 生态互操作",Rust 刚好全踩中。写配置管理器要碰文件系统/Serde,写 agent 要沙箱/async/跨平台分发,这都是 Rust 的舒适区。

以后写 AI toolchain 的,不会 Rust 可能真的要落后半拍 —— 至少不会被配置折磨得自己造轮子(笑)。


你最近在用哪个 AI coding 工具?配置折腾过最久的一次是啥?评论区唠唠

    阅读推荐
    这个Go语言神器让你躺着写代码!
    Go社区开发“神器”工具介绍
    Go后端研发团队的管理