跳到主要内容

OpenCode v1.17.10 发布 —— MCP 资源模板,`--mini` 轻量模式,桌面端改进

· 阅读需 2 分钟

OpenCode v1.17.10 封面

MCP 资源模板上线

MCP server 现在可以暴露资源模板(resource templates)了(#32490)。Agent 能列出模板、读取资源,并且当 server 拒绝访问时自动隐藏对应的工具。

之前两个 server 暴露了同名资源键会冲突,现在修好了——不会再互相覆盖。

--mini CLI 模式

新增 --mini CLI 模式,启动一个精简版 CLI,不加载完整的 TUI。适合快速跑一条命令就走、或者集成到其他工具链里当子进程用。

桌面端改进

  • 草稿状态按 tab 独立保存:多 tab 编辑草稿不再互相串(感谢 @arvsrn)
  • 会话进度指示器:新建 session 时有明确的进度反馈
  • 可折叠 Server 区域:MCP server 列表可以折叠,界面更清爽
  • 移动端底部导航:iOS/Android PWA 支持底部导航栏

TUI 改进

  • 可配置快捷键打开 diff 查看器,并且支持对比 main 分支
  • 修复 worker 崩了之后 TUI 进程也跟着挂的问题

其他

  • 内置了 OpenCode 管理的 provider 集成支持
  • 修复 ACP 资源文本在 Windows 上的路径问题
  • 修复 gpt-5.5-pro 在使用 Codex OAuth 时一直显示的问题
  • 6 位社区贡献者的修复(Gemini 媒体支持、collapsible servers、bun 版本检查等)

升级方式:

npm update -g @opencode-ai/opencode

完整更新日志:GitHub Release v1.17.10

📢 关注我,获取最新开源更新日志和开发者工具动态。

#OpenCode #v1.17.10 #MCP #AI编程工具 #LLM更新报告 #AI写代码的小任

Claude Code v2.1.187 发布 —— 沙箱凭据保护,组织模型限制,MCP 超时不挂死

· 阅读需 2 分钟

Claude Code v2.1.187 封面

沙箱凭据保护

新增 sandbox.credentials 设置,可以阻止沙箱内的命令读取凭据文件和敏感环境变量。团队协作场景下,即使 Agent 在沙箱里跑了一些不可控的脚本,API key 和 token 也不会被读走。

组织级模型限制

如果公司 IT 在后台限制了某些模型,现在模型选择器、--model/modelANTHROPIC_MODEL 都会遵守组织设定。选到被限制的模型时会提示「受组织设置限制」,而不是偷偷失败。

远程 MCP 工具不再无限挂死

远程 MCP 工具调用如果没有响应,之前会挂 5 分钟直到开发者手动中断。现在超时后自动报错退出。可以通过 CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT 环境变量自定义超时时间。

其他修复

  • --resume 修复:当原始 -p 运行没有产生 model turn 时,不再报「No conversation found」(#187)
  • 结构化输出修复--json-schema 和 workflow agent({schema}) 不再因为成功调用后还能无限重调 StructuredOutput 而卡住
  • 韩文/中文粘贴不乱码:终端按字节发送粘贴内容时不再变成乱码
  • 背景任务状态修复:Agent 结束回合但没有产生结构化输出时,不再卡在 "working" 状态
  • VSCode 扩展:恢复大会话时不再失去响应

升级方式:

npm update -g @anthropic-ai/claude-code

完整更新日志:GitHub Release v2.1.187

📢 关注我,获取最新开源更新日志和开发者工具动态。

#ClaudeCode #Anthropic #AI编程工具 #MCP #v2.1.187 #LLM更新报告 #AI写代码的小任

Oh My Pi v16.1.17 发布 —— yield 门修复,Anthropic 代理修复,多项底层加固

· 阅读需 2 分钟

Oh My Pi v16.1.17 封面

Yield 门不再被时钟回拨卡死

yieldIfDue() 是 Agent 循环里让出事件循环的核心机制。如果系统时钟发生了向后跳变(NTP 调整或 mock 测试),旧的未来时间戳会让 yield 门永远卡住——Agent 不再让出,整个循环就卡死了。现在遇到向后时钟跳变会当作「已经到期」处理,并重新锚定时间(#3330)。

Anthropic 自定义代理认证修复

如果你用 Anthropic API 走自定义代理(比如自建反向代理),之前 model.headersANTHROPIC_CUSTOM_HEADERS 里设的 Authorization / X-Api-Key 会被静默丢弃,导致代理认证失败。现在非 OAuth 请求会优先使用调用者提供的认证头(#3391)。

OpenRouter 推理签名修复

OpenRouter 上的 Anthropic 模型有两个修复:

  • cache_control 不再被省略,prompt 缓存能正常工作了(#3397)
  • 多轮推理的 follow-up 请求不再因为携带了之前的 thinking 块签名而导致 400 错误——现在 replay 时会自动清理历史推理签名(#3399)

Ollama Cloud 输出 Token 上限修复

Ollama Cloud 的 num_predict 最大是 65536,但旧缓存里如果存了 maxTokens: 1048576,请求就会 400。现在在发送前会自动 clamp 到 65536(#3394)。

其他修复

  • GitHub Copilot 企业端点不再因为报告支持 vision 但实际拒绝图片而 400(#3387)
  • 韩文输入(Hangul Jamo)在 Ghostty 终端下不再渲染异常(#1800)
  • 桌面通知在 tmux 下不再被静默丢弃,改用 DCS 透传 + BEL 回退(#3396)
  • omp usage 不再重复显示 provider 级别的免责声明(#3312)
  • Snapcompact 上下文压缩在子 1M token 模型下不再无限循环警告(#3249)
  • Stats 统计不再因为 fork 会话而重复计数(#3382)
  • omp plugin install 安装的 marketplace 插件不再注册后不生效(#3245)

升级方式:

brew upgrade oh-my-pi
npm update -g oh-my-pi

完整更新日志:GitHub Release v16.1.17

📢 关注我,获取最新开源更新日志和开发者工具动态。

#OhMyPi #v16.1.17 #Anthropic #MCP #LLM更新报告 #AI写代码的小任

Reasonix Desktop v1.11.1 发布 —— 远程 MCP 请求头,全局 .env,Controller 拆分

· 阅读需 2 分钟

Reasonix Desktop v1.11.1 封面

远程 MCP 支持请求头

之前远程 MCP server 的请求头没法自定义。现在桌面端可以配置远程 MCP 的 HTTP 请求头了(#5073)。如果你的 MCP server 有认证或代理需求,不用再去 hack 底层网络层。

全局 .env 管理 Provider 密钥

Provider 的 API key 现在可以用全局 .env 文件来管理(#5110),不用在配置里硬编码。多个 profile 共用同一套密钥的场景会方便很多。

Controller 拆分——内存、检查点、MCP、技能独立

v1.11.0 拆了 SessionAPI,v1.11.1 继续拆 Controller:

  • memoryManager 独立(#5113)
  • checkpointManager 独立(#5116)
  • mcpManager 独立(#5123)
  • skillSet 独立(#5127)

四个模块都从 Controller 里提出来变成独立的管理器,代码结构更清晰。对用户来说短期内没直接变化,但后面的维护和扩展会更快。

桌面端修复

  • 会话切换不再阻塞:之前切 session 会卡住 UI,现在改为非阻塞(#5114)
  • CLI 会话显示在侧栏:CLI 里开始的会话能在桌面侧栏看到了(#4983)
  • 删除对话框性能优化:前端本地移除 + 锁外写磁盘,删除大会话不再卡顿(#4981)
  • 标签页插件上下文持久化:重启后标签页里的插件上下文不丢了(#5141)
  • 断流恢复修复:长任务断流后能自动恢复(#5106)
  • Bot 连接生命周期重构:QQ、微信、飞书都统一到 connloop 原语上(#5136, #5137, #5139)

升级方式:

npm i -g reasonix
brew upgrade esengine/reasonix/reasonix

完整更新日志:GitHub Release desktop-v1.11.1

📢 关注我,获取最新开源更新日志和开发者工具动态。

#Reasonix #DeepSeekReasonix #v1.11.1 #MCP #桌面端 #AI编程工具 #LLM更新报告 #AI写代码的小任

Codex v0.142.0 发布 —— 插件推荐上线,Token 预算管控,定时提醒

· 阅读需 3 分钟

Codex v0.142.0 封面

插件商城终于能用了:精选 + 推荐

之前 /plugins 就是一堆插件的平铺列表,找到想用的全靠缘分。现在分成了 OpenAI 精选、工作区、与我分享三个区段,Codex 还会在合适的时机主动推荐相关插件(#26703, #28399, #28400)。

对于刚接触 Codex 插件的用户,这个改动让"装什么"这件事有了方向感,不用自己去满 GitHub 翻。

Token 预算管控:给 Agent 设个"额度上限"

Codex 现在支持配置 rollout token budget——给 agent 线程设一个 token 消耗上限,超过就自动中止。预算剩余量会在使用过程中提醒,到了阈值直接停。

这个功能对跑大量子 agent 的场景很实用。以前一个 agent 跑飞了只能等它耗完 API 费用,现在可以先设个上限兜底。

多 Agent 委派控制

App-server 客户端现在可以在线程和回合级别控制多 agent 委派模式——禁用、仅显式请求、或主动建议(#28685, #28792, #29324)。

定时提醒 + 当前时间查询

Codex 现在可以接收 UTC 定时提醒,Agent 也能直接查询当前时间了。依赖 Codex 跑定时任务或长时间监控的,这个功能省了自己写 cron 轮询的功夫(#28822, #28824, #28835, #29011)。

索引式 Web 搜索

新增了一种索引式 web 搜索模式——允许实时搜索,但对网页内容的直接访问限制在服务端批准的 URL 范围内。兼顾了 Agent 获取实时信息的需求和安全管控(#28489)。

/usage 可以兑换速率限制重置额度

/usage 现在能查看和使用速率限制重置积分。之前触发了 rate limit 只能干等,现在可以主动兑换重置继续跑。

其他值得提的修复

  • Linux TUI 挂起恢复:Ctrl+Z 挂起后用 fg 恢复,TUI 不再渲染异常(#28342)
  • exec-server 断线重连:子进程和 MCP 会话现在能撑过瞬断(#28512)
  • Goal 线程持久化:goal-first 线程终于能在 thread/list 中正确返回了(#28808)
  • 启动性能优化:延迟 DNS 解析、预加热模型缓存、复用已解析的插件技能——启动和会话恢复都有提速

升级方式:

npm install -g @openai/codex

完整更新日志:GitHub Release rust-v0.142.0

📢 关注我,获取最新开源更新日志和开发者工具动态。

#OpenAI #Codex #v0.142.0 #AI编程工具 #TokenBudget #插件 #LLM更新报告 #AI写代码的小任

Claude Code v2.1.186 发布 —— `!` 命令自动回复,MCP 登录可以走命令行

· 阅读需 2 分钟

Claude Code v2.1.186 封面

MCP 登录可以走命令行了

之前配 MCP 认证必须进交互式 /mcp 菜单。现在 claude mcp login <name>claude mcp logout <name> 可以直接在命令行完成,加上 --no-browser 还能在 SSH 会话里跑。远程服务器上配 MCP 认证不用开交互界面了。

! 命令自动触发 Claude 回复

之前敲 ! bash 命令,Claude 只是把它发到终端,不会主动响应输出。现在 ! 命令执行完后 Claude 会自动看结果并回复——相当于每条 ! shell 命令后面都多了一次 Agent 推理。如果你觉得太吵,可以在 settings.json 里设 "respondToBashCommands": false 关掉。

睡眠唤醒后流式请求不再挂了

这个修了很久了:电脑休眠再唤醒,正在跑的流式请求会报「Content block not found」或 JSON 解析错误。v2.1.186 修了这个问题,合上盖子再打开不用重来。

Workflow 和 Agent 修复

  • /workflows 代理详情视图支持按状态过滤(按 f
  • Agent(type) 的拒绝规则和允许类型限制现在对子 agent 也生效
  • Workflow agent({schema}) 子 agent 不再因为 schema 校验失败就无限循环——5 次后自动终止
  • Esc 和 Ctrl+C 在主轮次结束后如果后台 agent 还在跑时也能响应了
  • 后台会话 recap 不再重复显示

升级方式:

npm update -g @anthropic-ai/claude-code

完整更新日志:GitHub Release v2.1.186

📢 关注我,获取最新开源更新日志和开发者工具动态。

#ClaudeCode #Anthropic #AI编程工具 #MCP #v2.1.186 #开源 #AI写代码的小任 #LLM更新报告

Oh My Pi v16.1.11 发布 —— 20 个修复覆盖七个包,从推理泄露到本地模型计费边界全清了

· 阅读需 4 分钟

Oh My Pi v16.1.11 封面

图片和视觉的三处硬伤

OpenAI Responses API 的历史回放会把图像生成管线的 provider-only 字段带到下一轮请求里。如果中间挂了兼容代理,代理直接不认识多余的字段——报 Unknown parameter: input[1].action。排查到头以为是代理配置问题,结果是 pi 自己回放数据时没做过滤。修复就是把回放时多出来的 provider-only 字段清干净。

另一个视觉相关的:Umans 的 umans-glm-5.1 / umans-glm-5.2models/info 上报了 supports_vision: "via-handoff",意思是视觉走独立 handoff 预处理,不接受原始 image block。但代码 umansSupportsVision 把非空字符串当成原生视觉支持——图片 prompt 直接发给 GLM,返回 400。修复把判断收紧到 supports_vision === true 才算数。

Codex 那边也有个图片问题:图片读取走了 WebP 重编码,下一轮拿到 input_image.image_url 直接报错——Codex 只认 PNG 和 JPEG。现在不碰编码器,保持原生格式。

Gemini 3.5 Flash 的推理 JSON 终于被截住了

gemini-3.5-flash 的流式输出里,模型内部推理 JSON 会泄露到用户可见文本中。修复的实现挺有意思——流解析器用一个花括号平衡计数算法来精准切掉前导的 thought JSON 块,双引号未转义和工具名动态推导都做了兜底,后续文本 delta 不会丢失也不触发空响应重试。不是简单的 strip,是能读懂 JSON 边界的解析。

配置和模式的三个隐蔽问题

本地 tinyModel 不再偷偷走线上计费。 之前 generateSessionTitle 在用户配了本地 providers.tinyModel 时,仍开了一个 10s 超时竞争——本地 worker 返回 null 就立刻发线上请求。OpenRouter 用户会发现被收了一笔标题生成的费用。现在本地失败直接留空标题走 logger.warn,不再秒切线上。

Plan mode 里 write 凭空消失。 进入 plan mode 时 tools.discoveryMode: "all"write 工具过滤掉了,agent 只能用 edit 来凑。修复在 plan mode 入口强制激活了 write

Auto thinking 模式在会话恢复后不会变成死值了。 --continue / --resume 之后之前设的 auto 思维模式冻结在最后一次解析值上。现在 log 会同时记录选择器(auto vs 具体值)和解析后的 effort,恢复后仍然是 auto。

顺手修了的

edit/patch/replace 走 ACP client bridge——Zed 等编辑器写文件后立刻更新 diagnostics,不用等 workspace reload

OpenCode MCP 发现——数组命令规范化为 stdio 可执行文件加参数

Ctrl+Q 提交——Windows Terminal 没有 Ctrl+Enter,hook editor 现在 Ctrl+Q 也认

pi.sendMessage({ display: true }) 不再渲染两次

纯 Jujutsu 工作区保护——只有 .jj/repo/ 没有 .git/ 时抛明确错误

Hindsight 保留过滤标点填充的 assistant turn——纯 . 或空内容的 turn 不再污染 retain bank

/resume 子 session 显示 fork 标签

流式输出滚动缓冲稳定性改进

代码块中的 # 注释 不再被 extractTitle 截胡


Oh My Pi v16.1.12 发布 —— 一个配置的 secrets 让 Codex 图片全挂,现在彻底修了

· 阅读需 3 分钟

Oh My Pi v16.1.12 封面

Secrets obfuscation 不再屠杀图片和签名

改动本身只有几行配置项的变化。之前的 obfuscator 是「拿到出站请求 JSON,深递归遍历所有字符串值,遇到包含配置 secret 子串的就替换为 #HASH#」。听起来挺通用——但图片 base64 里偶然包含配置 secret 的片段怎么办?Opaque provider 回放签名、加密推理字段里匹配了「response」怎么办?

Codex 在 oh-my-pi 上读取图片时,obfuscator 在 image_url 的 base64 里找到了 secret 子串,插入了 #HASH# 占位符,base64 解码失败,下一轮请求收到 Invalid 报错。

修复后的 obfuscation 是 opt-in 且 fully typed 的:

只走 user messages、tool-result messages、@file 提及的 developer messages——系统 prompt 和工具 schema 不碰

图片字节和签名/加密推理字段永不改写——不再误伤 base64 和 provider 专用字段

工具调用参数是唯一走 JSON 遍历的字段——其他字段类型不走 deep walk

纯文本 secret 和不足 8 字符的正则匹配被忽略——防止在「response」「key」等短单词上误触发

算下来「不做什么」比「做什么」多了好几倍规则。obfuscation 失败的损失比漏掩一个 secret 的风险更重。

RPC/ACP 启动不再怼掉显式配置

第二个波及面不小的修复:applyDefaultSettingOverrides 在设置加载完成后,会重新把 schema 默认值作为运行时 override 写回去——导致 embedder、project、--config 覆盖层、全局配置中显式设置的参数全部被清零。

受影响的配置项列表相当大:

task.isolation.{mode,merge,commits}

task.eagertask.batchtask.maxConcurrencytask.maxRecursionDepth

task.disabledAgentstask.agentModelOverrides

memory.backendmemories.enabled

advisor.{enabled,subagents,syncBacklog,immuneTurns}

• RPC-only async.{enabled,maxJobs}bash.autoBackground.{enabled,thresholdMs}

修复就是把 isConfigured() 守卫加回去——host 默认只在配置项未被显式设置时才生效。配过的不碰。

Julia 语法高亮

highlightCodesupportsLanguage 现在支持 jl / julia 别名。syntect 默认不内置 Julia 语法定义——oh-my-pi 自己 vendored 了一份 Julia.sublime-syntax 进去。写 Julia 的 agent 用户不用再看到纯黑白代码了。


Oh My Pi v16.1.13—15 三连发 —— Ruby/Julia 内核、Proxy、Share 服务端

· 阅读需 5 分钟

Oh My Pi v16.1.13-15 封面

Ruby 和 Julia 现在能在 Oh My Pi 里跑代码了

v16.1.14 给 eval 系统加了两个新后端——Ruby(language: "rb")和 Julia(language: "jl")。这俩不是简单的 shell 调用包装,是完整的持久式子进程内核,跟之前 Python eval 走同一套 NDJSON 协议——有独立的帧通道、stdout 通道、SIGINT 取消(不炸内核)、按 owner 清理的进程生命周期。

这意味着 agent 可以在一个 Ruby 或 Julia 会话里保持状态、变量、加载的库,跨多次调用不丢。两个后端默认关闭,通过 eval.rb / eval.jl 配置或 PI_RB / PI_JL 环境变量开启,还可以指定 ruby.interpreter / julia.interpreter 路径。

预置的工具桥接函数跟 Python 侧一样全——displayreadwriteappendtreediffenvoutput,以及 tool.<name> 桥接代理、completionagentparallelpipelinelogphasebudget。Julia 版本还带了结构化 schema 解析和 return_handle DAG 塑形。

你要是用 Oh My Pi 写数据处理脚本,Ruby 或 Julia 做后端比反复调 shell 顺手得多。

代理支持来了

PI_PROXYPI_PROXY_<PROVIDER> 环境变量现在可以给模型 provider 配 HTTP 代理了,还支持 NO_PROXY 跳过内网地址和云厂商 metadata 服务。公司网络得走代理才能连外网的场景终于能用了。

Share 不再走 GitHub Gist,不会被限速了

v16.1.15 改了 /share 的存储后端——默认上传到 Oh My Pi 自己的 share server,不再走 GitHub Gist。

原因是 Gist 的未认证 API 每个 IP 每小时只能请求 60 次。共享 NAT 环境或频繁刷新分享页面的用户会看到 Failed to load session: Gist fetch failed: HTTP 403。现在 viewer 从 share server 读,不走 GitHub API,限速问题不复存在。

如果想切回 Gist 托管,设置 share.store: "gist"

Shell 不再硬性禁止用「替代品」

v16.1.14 对系统 prompt 做了一处有意思的软化。以前 Oh My Pi 的 prompt 里明确禁止 agent 用 shell 做某些事——比如禁止 grep/rg 代替 search、禁止 sed -i 代替 edit、禁止 cat/head/tail 代替 read。出发点是好的(让 agent 用专用工具更可靠),但实际效果是 agent 有时候会绕一大圈去用专用工具,比直接一句 shell 慢得多。

现在那些 FORBIDDEN/NEVER 的措辞改成了"建议优先使用专用工具",不再是绝对禁令。如果你确实想要 agent 完全不碰这些命令,可以开 bashInterceptor(默认关闭)。

后台进程跨 Turn 存活

v16.1.15 修了一个隐蔽的问题:用 nohup& 在 bash turn 里启动的后台进程,在那个 turn 的 shell 被回收时会一起被干掉。现在 shell 会保留到后台进程退出才回收,后台命令可以跨 turn 运行,同时随着主进程一起终止,不会变成孤儿。

新 Provider:Devin 和 Sakana AI

v16.1.13 加了 Devin provider,v16.1.14 加了 Sakana AI(Fugu 模型)。Fugu 有完整的模型发现和 Responses API 元数据支持。

其他值得注意的修复

Fireworks 登录修复——之前 /login fireworks 会去查你的部署列表,没部署的账号直接 500。现在改走控制面版 catalog API,认证不再依赖部署状态

OpenAI Responses 图片回放修复——失败的图片生成请求的 ig_... 临时 ID 不会被留在回放里导致后续 404,现在正确丢弃了

Provider session 跨 /model 切换清理——从 openai-completions 切到别的 provider 时,旧 provider 的缓存状态(strict-tools 禁用作用域、reasoning-effort fallback)会一起清掉,不会残留

Windows MCP stdio 修复——Windows 上 npx / yarn 等 shim 找不到 .cmd/.bat 后缀导致启动即挂的问题,现在通过 cmd.exe /d /s /c 绕道解决了

Perplexity 搜索不抢路由了——只配了 OpenRouter key 的用户不会再被默认路由到 Perplexity 去计费

Bracketed paste 不再误认 .png——粘贴纯文字 .png 文件名不会再被当成图片附件

升级方式:

curl -fsSL https://omp.sh/install | sh
brew install can1357/tap/omp
bun install -g @oh-my-pi/pi-coding-agent

完整更新日志:v16.1.13 Release | v16.1.14 | v16.1.15

📢 关注我,获取最新开源更新日志和开发者工具动态。

#OhMyPi #版本更新 #Ruby #Julia #代理 #Share #AI写代码的小任 #LLM更新报告

Crush v0.79.1 发布 —— Bang Mode 体验全面升级

· 阅读需 1 分钟

Crush v0.79.1 封面

Bang Mode 全面优化

四个改动覆盖了从输入到粘贴到历史记录的全链路:

空格前 ! 也触发:之前 ! 前面有空格时 Bang Mode 不会激活,现在输入 command ! 也能正常进入 Bang Mode 了

粘贴文本也触发:从别处复制一段以 ! 开头的命令粘贴进来,Bang Mode 现在能正确识别

命令记入历史:Bang 模式下执行的命令现在会出现在历史记录中,下次想复用不用重新敲一遍

外部编辑器同步:在外部编辑器里编辑命令行时,Bang Mode 的状态能同步过来,终端内外不会出现不一致

升级方式:

#macOS
brew install charmbracelet/tap/crush

#其他平台
#从 GitHub Release 下载二进制

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#Crush #Charmbracelet #终端工具 #版本更新 #AI写代码的小任 #LLM更新报告