Changes
- gateway, usage, plugins: OTel export is the first plugin on the gateway's observer point (P3)
- gui: a Linux bar's tray icon is the bird's silhouette, not the app's tile, and the tooltip says today's total (ylorn on Discord)
- gateway, provider, gui: a provider set to compact natively is asked Codex's compaction_trigger as sent and its sealed compaction goes back unchanged; a checkpoint stays with its writer (#1099)
- plugin: a community plugin npm doesn't have installs from the plugins repo's dist branch, so a reviewed plugin no longer waits unmerged for an owner's npm 2FA (magpie-community/plugins#84)
- gateway: a group in the group sinks its own rate-limited keys by its own Sink, not only the group the agent named (#2255, ggbdpq)
- gateway: a page at a localhost subdomain spends a subscription only with a gateway key, as Origin null does (#2256, ggbdpq)
- release: a release whose notes went out without Chinese is said on one open issue, not only in magpie-releases' log (#2122, KaiZe on Discord)
- gui tests: the Codex subagent details test writes its rollouts now, not on 2026-10-15, so main is green in UTC (#1591)
- gateway: a Codex subagent sealed to ChatGPT's backend says to turn on Settings › Codex subagents on any model, or to start a new thread when it is on (#2245, qikairo7)
- gateway: a nested group's own firstToken times its seats, not the outer group's (#2246, Gaudi-XIX)
- gateway: an effort=auto group leaves a turn the agent sent with reasoning none alone and asks no classifier, so its pick and what went out agree (#2247, sryimnoob123)
- gateway tests: the queued-stream tests order the gateway's writes and the vendor's arrivals by a sequence, not a clock that ticks every ~0.5ms on Windows (#2249)
- gateway tests: TestTranslatedSilenceStillTimesOut times the client's idle wait over the body only, not over getting the headers (#2248)
- provider: moved Cursor users get plugin 0.2.13, where a Run cancelled while it opens is closed upstream and dashboard usage is collected per account (plugins #130, #131)
- usage: a Codex call with no response_id leaves
compactionout of Usage requests instead of saying false (#1591) - sessions: a Codex subagent in a legacy-history rollout gets its spawn task_name too, and a forked child's copy of its parent's spawns no longer erases its siblings' titles (#1591)
- sessions, usage: a Codex subagent with no title takes its parent's spawn_agent task_name, its nickname shows apart, and Usage requests say which calls were compactions (#1591, Hogeexxl)
- gui: a routing group's editor keeps its member rows and pattern row inside it, a long model's name ellipsized, not the chips cut off (碳碳双键 on Discord)
- gui: the subagent effort note's words live with the Routing page, which is a plugin now (#2232)
- gateway, gui: the Routing page tags a Claude Code subagent's turn as it does Codex's
- gui tests: desktop-subagent-model reads each write once its answer is back
- agent, gateway, gui: Claude Desktop's subagents can have a reasoning effort of their own
- gateway tests: a silently kept cache stays in Gemini's shape, across a restart, and a prompt too small still moves (#2230)
- gateway: auto affinity keeps a conversation where a vendor's cache is kept without saying so (#2230, JasonBuildAI)
- sessions: a Codex Desktop fork's replayed parent checkpoints book no usage, so a thread_spawn session isn't counted ~1000x (#2234, zlxdengtianhei)
- gui tests: the take-over test copies its fake magpie on Windows, so the temp folder can be deleted
- proc: on Windows a port nobody listens on reads as no listener, not "exit status 1", so the take-over doesn't say "stuck" (#2231, JasonBuildAI)
- sessions: WorkBuddy's and MiniMax's session folders behind a link are read too, each session named under the agent's folder (#2233)
- sessions, usage: a Codex folder whose sessions folder is a junction lists its sessions and calls again (#2233, JasonBuildAI)
- plugin: a folder plugin's path written on macOS or Linux is a path on Windows too, so a backup or a sync leaves it out (#2229, JasonBuildAI)
- gateway: a model failing between its siblings' answers climbs its own rest ladder, not a minute forever (#2241, weizsw)
- gateway: a sandboxed frame's Origin: null spends a subscription only with a gateway key (#2242, JasonBuildAI)
- provider: a Codex token refresh replaces ~/.codex/auth.json through a flushed temp file, so a crash or a file held on Windows leaves Codex signed in, not an empty auth.json or a spent refresh token (#2239, JasonBuildAI)
- testenv: a stand-in codex is found before the installed one on Windows, so the gateway's tests don't read the user's Codex version (#1827, EdwinDigital)
- git: every text file checks out with LF, so a Windows checkout with autocrlf on doesn't turn four guard tests red (#1827, EdwinDigital)
- gateway: WorkBuddy's own X-Conversation-ID names its session, so Routing groups its requests by conversation, not under No session ID (#2236, EdwinDigital)
- gui: the Requests tab's Agent name sits on the row's middle line, level with the time and model, not ~2px above them (#2237, duanckham)
- gateway: a held key its owner lets see quotas is told those of the providers and accounts it may use, not none (#2216, Kenoia)
- provider: Zen's free models answer again: asked at opencode.ai/inference/v1, with stand-in tools that take a parameter, and without x-session-affinity (c9cu on Discord)
Install
Download from usemagpie.ai, or curl -fsSL https://usemagpie.ai/install.sh | sh. An installed magpie updates itself.
- macOS (Apple Silicon):
magpie-darwin-arm64.dmg - macOS (Intel):
magpie-darwin-amd64.dmg - Windows:
magpie-windows-amd64.exe(ARM:magpie-windows-arm64.exe) - Linux:
magpie-linux-amd64/magpie-linux-arm64(needs GTK 3 and WebKitGTK 4.1) - Terminal only:
magpie-cli-<os>-<arch>
The same release, and the feed magpie updates from: https://github.com/yetone/magpie-releases/releases/tag/v0.1.1243
更新
- 网关、用量、插件:OTel 导出成为网关观察点上的第一个插件(P3)
- 界面:Linux 状态栏的托盘图标改为鸟的单色剪影,不再是 App 图标,tooltip 显示今日用量(Discord 上的 ylorn)
- 网关、提供商、界面:设为原生压缩的提供商会按原样收到 Codex 的 compaction_trigger,封装的压缩结果原样返回;检查点留在写入它的提供商(#1099)
- 插件:npm 上没有的社区插件改从插件仓库的 dist 分支安装,审核过的插件不必再等 npm 2FA 才能用(magpie-community/plugins#84)
- 网关:嵌套在组里的组按自己的 Sink 规则下沉被限流的密钥,不只是智能体指定的那个组(#2255,ggbdpq)
- 网关:来自 localhost 子域名的页面必须带网关密钥才能使用订阅,和 Origin 为 null 时一样(#2256,ggbdpq)
- 发版:更新说明缺少中文的版本会在一个公开 issue 上提醒,不再只记在 magpie-releases 的日志里(#2122,Discord 上的 KaiZe)
- 界面测试:Codex 子智能体详情测试现在才写入 rollout,不再写死 2026-10-15,main 在 UTC 下保持全绿(#1591)
- 网关:绑定 ChatGPT 后端的 Codex 子智能体会提示在任意模型上打开「设置 › Codex 子智能体」,已打开时提示新开一个对话(#2245,qikairo7)
- 网关:嵌套组用自己的 firstToken 给成员计时,不再用外层组的(#2246,Gaudi-XIX)
- 网关:effort=auto 的组遇到智能体以 reasoning none 发出的轮次时保持原样,不再询问分类器,所选与实际发出的一致(#2247,sryimnoob123)
- 网关测试:排队流测试按序号判断网关写入和上游到达的先后,不再依赖 Windows 上约 0.5ms 一跳的时钟(#2249)
- 网关测试:TestTranslatedSilenceStillTimesOut 只对响应体计算客户端空闲等待,不包括获取响应头的时间(#2248)
- 提供商:已迁移到插件的 Cursor 用户升级到插件 0.2.13:打开中被取消的 Run 会在上游关闭,面板用量按账号统计(plugins #130、#131)
- 用量:没有 response_id 的 Codex 调用,在用量请求里不再标记 compaction 为 false,而是不写(#1591)
- 会话:旧版历史 rollout 中的 Codex 子智能体也能拿到 spawn 的 task_name,fork 出的子会话不再清掉兄弟会话的标题(#1591)
- 会话、用量:没有标题的 Codex 子智能体使用父会话 spawn_agent 的 task_name,昵称单独显示,用量请求标出哪些调用是压缩(#1591,Hogeexxl)
- 界面:路由组编辑器里的成员行和模式行不再溢出,过长的模型名用省略号,不会截掉标签(Discord 上的 碳碳双键)
- 界面:子智能体推理强度说明的文案随路由页面(现在是插件)一起提供(#2232)
- 网关、界面:路由页面像标记 Codex 一样标记 Claude Code 子智能体的轮次
- 界面测试:desktop-subagent-model 在每次写入得到响应后再读取
- 智能体、网关、界面:Claude Desktop 的子智能体可以单独设置推理强度
- 网关测试:静默保留的缓存在重启后仍保持 Gemini 的格式,过小的 prompt 仍会切换(#2230)
- 网关:自动亲和让对话留在厂商默默保留了缓存的地方(#2230,JasonBuildAI)
- 会话:Codex Desktop fork 重放的父会话检查点不再计入用量,thread_spawn 会话不会被多算约 1000 倍(#2234,zlxdengtianhei)
- 界面测试:接管测试在 Windows 上复制假的 magpie,临时文件夹可以删除
- proc:Windows 上没有进程监听的端口视为无监听者,而不是「exit status 1」,接管时不会提示「卡住」(#2231,JasonBuildAI)
- 会话:位于链接后的 WorkBuddy 和 MiniMax 会话文件夹也会被读取,会话归在对应智能体的文件夹下(#2233)
- 会话、用量:sessions 文件夹是 junction 的 Codex 目录,会话和调用重新列出(#2233,JasonBuildAI)
- 插件:在 macOS 或 Linux 上写入的文件夹插件路径在 Windows 上也是合法路径,备份或同步时不会漏掉(#2229,JasonBuildAI)
- 网关:在兄弟模型回复之间失败的模型按自己的休息阶梯递增,而不是永远一分钟(#2241,weizsw)
- 网关:沙箱 iframe 的 Origin: null 必须带网关密钥才能使用订阅(#2242,JasonBuildAI)
- 提供商:Codex 刷新 token 时通过落盘的临时文件替换 ~/.codex/auth.json,崩溃或 Windows 上文件被占用时 Codex 仍保持登录,不会留下空的 auth.json 或用掉的 refresh token(#2239,JasonBuildAI)
- testenv:Windows 上优先找到测试用的 codex 替身,网关测试不会读取用户安装的 Codex 版本(#1827,EdwinDigital)
- git:所有文本文件以 LF 检出,Windows 上开启 autocrlf 不会让四个守护测试变红(#1827,EdwinDigital)
- 网关:WorkBuddy 自带的 X-Conversation-ID 用作会话名,路由页面按对话分组,不再归入「无会话 ID」(#2236,EdwinDigital)
- 界面:请求页的智能体名称与时间、模型对齐在行的中线,不再高出约 2px(#2237,duanckham)
- 网关:允许查看额度的受限密钥会看到它可用的提供商和账号的额度,而不是什么都没有(#2216,Kenoia)
- 提供商:Zen 的免费模型恢复可用:改用 opencode.ai/inference/v1,替身工具带参数,并且不发送 x-session-affinity(Discord 上的 c9cu)
安装
从 usemagpie.ai 下载,或运行 curl -fsSL https://usemagpie.ai/install.sh | sh。已安装的 magpie 会自动更新。