无尘阁日记

无尘阁日记

每个 AI 工具各配一套 Key,换模型要改五个文件?这个菜单栏工具统一了(3.4 万星)
silcano

github监控器 · 2026-11-10 · 约 3293 字 · yetone/magpie

 

你有四个 AI 工具,每个都有自己的配置文件和 Key。想换个模型,得改四个地方。

magpie 的做法很干脆:在本机起一个网关,所有工具都连它,模型从这里统一分配。菜单栏点一下就能换——Claude Code 跑 Kimi、Codex 跑 DeepSeek、Gemini CLI 跑 GLM。

3.4 万星,每天涨 696 星,Go 写的,MIT。下面讲它怎么接管、命令怎么用、以及一个很多人忽略的点:你的订阅额度也能被它统一调度。

一、先说结论:它接管的是「base URL」,不是「工具」

这一点想明白,后面全通。

所有主流 AI 工具都支持自定义 base URL 和 API Key——这是为了兼容不同供应商。magpie 就住在这个位置上:它伪装成一个供应商,工具以为在连官方,其实在连它。

所以它不需要改工具源码,也不需要插件。改的只是环境变量或配置文件里那一行地址。

magpie 数据卡

二、装:一条脚本 + 菜单栏

macOS 上:

curl -fsSL https://usemagpie.ai/install.sh | sh

装完会在菜单栏出现图标。它的主要交互在菜单栏,不是 Web 界面——这是它和"网关类工具"最大的形态差别。

为什么菜单栏重要?因为换模型这个动作是高频的:写代码用一个、写文案用一个、跑长任务用一个。每次都开网页太慢。

三、命令速查:四条就够日常

加一个供应商(预设的话只要 Key):

magpie provider add deepseek sk-…

给某个工具指定模型:

magpie claude deepseek/deepseek-v4-pro # Claude Code 用 DeepSeek
magpie codex moonshot/kimi-k2.5 # Codex 用 Kimi

格式是 工具 供应商/模型。这个语法很直白,claude 是工具名,后面是 provider/model。

看用量和花费: 菜单栏里有,README 也有 Usage and cost 一节。这条很重要——多供应商混用,不记账你永远不知道钱花在哪。

四、它支持哪些工具

README 列的支持列表(Supported agents):


工具
典型用法
Claude Code
magpie claude <provider>/<model>
Codex
magpie codex <provider>/<model>
Gemini CLI
通过 GOOGLE_GEMINI_BASE_URL 接管
OpenCode
插件方式接入
其它兼容 OpenAI/Anthropic 接口的
手写环境变量即可

最后一行的意思:只要你的工具支持自定义 base URL,它就能管。这是通用性最强的一档。

五、本地网关:端口和三个环境变量

它在本机起一个 HTTP 服务,默认端口 3425。三套环境变量对应三种接口风格:

export OPENAI_BASE_URL=http://127.0.0.1:3425/v1
export OPENAI_API_KEY=magpie

export ANTHROPIC_BASE_URL=http://127.0.0.1:3425
export ANTHROPIC_API_KEY=magpie

export GOOGLE_GEMINI_BASE_URL=http://127.0.0.1:3425
export GEMINI_API_KEY=magpie

注意三件事:

  • OpenAI 风格带 /v1,Anthropic 风格不带。 这是两个协议的历史差异,写错就 404;
  • API Key 随便填。 它不校验(真凭据在 magic 自己的配置里),但字段不能空;
  • 端口可能变。 冲突时它会换,以它实际打印的为准。

这两个 base URL 的差异是最高频的踩坑点。记法:Anthropic 的接口本身不带版本前缀,OpenAI 的带。

README 里的界面图

六、进阶:路由组和额度耗尽自动切换

这是它最有价值的功能,也是最容易被忽略的。

README 提到 Routing groups。意思是你把多个账号/多个供应商编成一组,一个额度用完,自动切下一个。

这解决了多订阅用户的真实痛点:你有两个 Claude 账号、一个 Kimi 订阅、一个 DeepSeek 余额,以前要在四个地方手动切。

现在变成一个组:谁还有额度就用谁。

同类工具里这叫"降级链"。区别在于 magpie 是在账号层面降级,不只是模型层面——这更贴近真实使用。

七、插件:改请求中间件

它支持插件,能装中间件改请求体。README 给了一个例子:

// alias.middleware.js —— 用 magpie plugin add ./alias.middleware.js 装上
export function onRequest(body, ctx) {
if (body.model === "fast") return { ...body, model: "deepseek/deepseek-chat" };
}

这段代码的意思是:当你请求 fast 这个别名时,实际走 deepseek/deepseek-chat。

有什么用?你的客户端里可以写死 fast / smart 这种语义化名字,以后换底层模型只改这一处。

社区已经有现成的:

magpie plugin add @magpie-community/middleware-model-map
magpie plugin options model-map '{"mapping": {"fast": "deepseek/deepseek-chat"}}'

还有登录类的插件:

magpie plugin add opencode-gemini-auth # npm 上的 OpenCode 插件
magpie plugin login google-plugin # 它自己的登录流程

插件机制的存在说明它的定位不只是"转发"——它想做的是这一层的操作系统。

八、隐私:它有打码功能

README 里"Privacy masking"是一个独立小节。

逻辑很直接:请求发出去之前,把敏感串(邮箱、手机号、Key、内网地址)替换成占位符;响应回来再换回去。

为什么网关适合做这件事?因为它是唯一能同时看到"请求"和"响应"的位置。在客户端做要改每个工具,在供应商做根本做不到。

注意:这是"减少泄露面",不是"安全边界"。真要处理敏感数据,还是别发出去。

菜单栏界面

九、七个坑

  • base URL 写错版本前缀。 OpenAI 带 /v1,Anthropic 不带;
  • 以为装完就自动接管。 你得对每个工具执行一次 magpie <tool> <model>,或者手动设环境变量;
  • 端口写死 3425。 冲突时它会换端口,以实际打印为准;
  • API Key 留空。 虽然不校验,但字段为空有些客户端会直接报错;
  • 只配一个供应商。 那就退化成"手动切",路由组的价值没了;
  • 不记用量。 多供应商混用,不看花费等于蒙眼开车;
  • 拿它处理敏感数据。 打码是减少泄露面,不是保护。

十、和"自己写个转发脚本"的区别

技术上,一个 30 行的 Node 脚本也能做转发。区别在:


自己写
magpie
多协议兼容
要分别实现 OpenAI / Anthropic / Gemini 格式
内置
额度调度
要自己写状态机
内置路由组
用量统计
要自己记
内置
隐私打码
要自己写正则
内置
菜单栏切换
没有
有

转发是最简单的部分,"协议差异 + 状态管理"才是工作量的 90%。

十一、谁该用


你是谁
建议
同时用 3 个以上 AI 工具
强烈建议,这就是为这个场景做的
有多个订阅/多个账号
建议,路由组能省很多手动切换
只用一家、一个工具
没必要,多一层反而慢
Windows / Linux 用户
看 README 的平台支持,主力是 macOS
要团队共享网关
可以,但要自己加鉴权和限流

十二、版本与地址


用途
地址
仓库
github.com/yetone/magpie
官网
usemagpie.ai
安装
curl -fsSL https://usemagpie.ai/install.sh \| sh
本地网关
http://127.0.0.1:3425
许可
MIT
形态: macOS 菜单栏应用 + 本地网关
语言: Go 许可: MIT
端口: 3425(可能变动)
协议: OpenAI / Anthropic / Gemini
特色: 路由组(额度耗尽自动切)、隐私打码、插件中间件

最后一句:这类工具的价值不在"省事",在于它把"模型"从工具里解耦出来了。一旦解耦,你就能按任务选模型,而不是按工具选模型。

 

关于作者 · 江天(楠哥)
AI 实战导师 / 企业 AI 落地顾问 / 智能体工程师,17 年跨界、15,000+ 小时 AI 实操、20+ 套已交付工作流。 看完整履历海报 → skills 实验室 →