讲一下yetone/magpie

回复 joye: magpie 是 yetone(就是写 avante.nvim 那位)这两天刚放出来的一个「本机模型中枢」,官网 usemagpie.ai,仓库 github.com/yetone/magpie,MIT 开源,当前 3.9k star 左右,版本已经刷到 v0.1.4xx。 它想解决的是一个很具体的痛点:你机器上现在躺着七八个 coding agent(Claude Code、Codex、Gemini CLI、OpenCode、Goose、Pi、Cursor CLI、Copilot CLI、Crush、Devin、Kimi Code……),每个都有自己的配置文件和自己的供应商绑定。你想让 Codex 跑 DeepSeek、Claude Code 跑 Kimi、Gemini CLI 跑 GLM,就得挨个去改 toml/json,还得处理各家 API 协议不一样的问题。magpie 把这件事收成一个地方。 它的能力大致三层。 一层是那张面板:列出本机每个 agent 当前设成什么模型,点一下就换。改配置是「手术式」的——只动你换的那个 key,settings.json / config.toml / config.yaml 里的注释、顺序、缩进都原样保留,写入原子。还能把整套设置存成 profile,比如 Budget、Focus,一键把所有 agent 切回去。 二层是本地网关,跑在 127.0.0.1:3425,同时会讲 OpenAI Chat Completions、OpenAI Responses、Anthropic Messages 和 Gemini 这几套 API,中间做双向翻译,流式和 tool calls 都过。于是所有 agent 都指向 localhost 这一个端点,从同一个模型目录里挑模型,agent 自己不再存任何供应商 key 和 URL。 三层是订阅复用:你登录过的 Claude Code、Codex(ChatGPT)、Copilot、Devin、Qoder 会被直接当成一个 provider,别的 agent 通过网关就能用它的模型,不用复制 token 也不用粘 key。这一层就是「Claude Pro 给你的 OpenCode 用、ChatGPT 订阅给 Claude Code 用」那种玩法。 再往上有几个我觉得更实用的东西:账号池加智能路由——多个 Claude / ChatGPT / Copilot 账号和同厂商多把 key 一起挂上,默认策略是「快重置的先用」,额度用完、被限流、报错都会自动跳到下一个,agent 那边看不到错误;provider 预设二十来家,涵盖 DeepSeek、Kimi、GLM、Qwen、MiniMax、火山、硅基流动这些国内的和本地 Ollama / LM Studio;模型列表是运行时向厂商拉的,不是编译进二进制的,所以当天早上发的模型下一次刷新就能在 picker 里选;还能给单个 agent 裁剪它自己能看到的模型清单;自带用量账本,按 agent 和模型统计 token、cache 和成本,而且能自己给某个 provider 标实际价格(转售打折或乘数的情况),不然它默认按厂商 list price 算就是错的。另外它可以把一台机器设成共享 magpie,同一局域网里别的电脑当 Remote magpie 接上去,provider 和用量是共享那台的。它甚至能跑 OpenCode 的 provider 插件,用来登录那些它自己没做 OAuth 的订阅。 形态上是 Rust-free 的单二进制,桌面版靠系统 webview(Wails),不带 Electron,桌面版 15 MB 以内,纯终端版 7 MB,macOS / Linux / Windows 都有,另外有 TUI 和完整的 CLI,装法是 curl 一行脚本。它不做模型能力、不做编排,就是「谁在哪用哪个模型」这一个界面。 跟你的语境对一下:你说它是「本地大模型网关」,准确。它和你之前提的中转站(cpa 那类)位置有点像,但方向相反——中转站是把 API 出口做出来给别人或外部客户端用,magpie 是给自己机器上一堆 agent 做统一入口加配置管理,key 不出本机,还额外带 GUI 和配置文件改写这层。所以它走的是「本地网关 + agent 指向 localhost」这条路,不涉及对外暴露,跟你自己反代出去开发没事、套在 jojo 上出问题那个场景不是一回事。 有一点得自己评估:把官方订阅的登录拿出来给其他 agent 当 provider 用,在供应商 ToS 上是灰色地带,风险自担。