OpenCode v1.17 发布 —— Snowflake OAuth、MCP 全面加固、桌面端色彩翻新

Snowflake Cortex Provider + 外部浏览器 OAuth
Snowflake 的 Cortex AI 服务不是那种"装上就能用的"provider——它需要 Snowflake 账号、Warehouse、外部浏览器认证。之前用户要手工处理 token,现在 OpenCode 内置了外部浏览器 OAuth 流程。生成登陆链接、弹出浏览器、回调接收、token 存储,全自动化,第一次看到这个配置链完成闭环的用户应该能感受到——终于不用在终端里粘贴那个 300 字符的 token 了。
这个功能由社区贡献者 @santigc6 实现(有趣的是,社区 PR 直连 Snowflake 认证体系这事,比很多大厂自己的工具链做得还快)。
MCP 全面加固:session、兼容性、结构化输出
v1.17.5 + v1.17.6 改了三层 MCP 问题。
Expired session 自动恢复。 MCP server 断开一段时间后重新连接,之前的连接状态已经过期,但 OpenCode 没用主动重建 session,导致「连上了但拿不到 tool」的半死不活状态。现在 expired session 会被自动恢复,MCP tools 不会因为 session 过期而静默断连。
已关闭 MCP client 的清理。 更隐蔽的问题:MCP server 被用户手动关闭后,client 侧残留的引用未清除,下次工具自动发现时会把已关闭的 server 重新拉出来,造成悬挂引用。现在 closed client 会被正确清理。
结构化 tool 输出可读了。 MCP tool 返回的数据之前是原始 JSON 堆成一坨在终端里。现在把结构化输出格式化了一下,肉眼能看懂结果了。对于调试 MCP server 的人来说,这个比 session 恢复还刚需——否则你连 server 返回了什么错误信息都看不懂。
v1.17.6:声明 client capabilities。 最后一个补丁看似简单——声明 OpenCode 支持哪些 MCP client capabilities。但这一步其实挺关键:之前 MCP server 不知道 OpenCode 能处理什么(sampling?roots?),只能走最小公分母功能。现在 Server 可以按 capabilities 表优化功能展示,意味着未来 samplings、roots 这类高级 MCP 特性可以按 server 能力逐级开放。
一起修的还有: 修复了 TUI 渲染中因 duplicate renderable IDs 导致页面错位的问题;$ARGUMENTS 中文件内容不再被重复注入两次(由 @verdverm 报告——这个 bug 在不同命令里潜伏了很久,因为只在特定参数组合下才触发)。
桌面端:oc-2 色彩、resize 体验、标签栏溢出
v1.17.5 给桌面端带来了三个值得展开的细节。
oc-2 色彩主题翻新(@arvsrn)。 之前 oc-2 主题的配色在长时编辑中容易视觉疲劳——高对比色块面积偏大、终端输出区域的背景色跟代码区拉不开层级。新版本调整了整个 palette 的饱和度和明度差,让不同信息区域的视觉层级更清晰。如果你日常用桌面版超过 2 小时,应该能感觉到不那么刺眼了。
Terminal resize gutter 更容易拖拽了。 桌面端的终端区域分割线之前只有 1px 宽,鼠标命中区域太小,拖拽分屏时要精确对准那一条线。现在 gutter 区域加宽了,不需要「瞄半秒才点中」。一个小细节,但如果你是横向分屏开两个 terminal 的开发者,每调一次分屏比例就知道这个改动的价值。
标题栏标签溢出不截断,改淡出。 打开几十个 tab 的开发者应该遇到过:标签太多的时候,超出标题栏的部分会被直接裁剪——文字从一半断开,没了下文。现在溢出部分改用渐变淡出,看起来是信息完整但被虚化收尾,比一刀切开要自然得多。视觉效果上更接近浏览器标签页的处理方式。
升级
# 已安装用户
opencode update
# 首次安装
npm i -g opencode-ai@latest
brew install anomalyco/tap/opencode
⚠️ npm 包与 GitHub Release 可能有短暂延迟,运行 opencode --version 确认版本号。
完整更新日志:GitHub Release v1.17.5 · v1.17.6
📢 关注我,获取最新开源更新日志和开发者工具动态。
#OpenCode #AI编程 #MCP协议 #开发者工具