
GitHub 于 11 月 6 日 23:37 推送了 OpenCode 的 v2.2.6 版本。该版本标记为不可变 release,仅限标题与说明可修改。本次更新涵盖 8 个提交至 dev 分支,主要聚焦于资源池化、界面主题扩展、移动端交互优化和 git worktree 会话支持。
核心功能升级
此次更新最显著的变化在于 MCP 连接共享机制。用户现在可以启用 pool: true 选项,让多个配置相同的项目共享同一个 MCP 服务器连接。这一改动减少了后台进程数量,显著缩短了启动时间。
- GUI 插件增强支持添加颜色主题、在代码块中渲染或添加操作,并引入原生设置与菜单组件。
- 移动端 Composer Dock在手机和平板设备上,Composer 操作按钮移至键盘上方的触控 dock 中,按钮尺寸更大,便于触控操作。
- Worktree 脚本化运行通过 opencode run -w 命令,用户可以在新的 git worktree 中启动会话,或使用 –worktree=<name> 指定名称。
- 自动归档会话添加 –archived 参数,使脚本化或 CI 运行创建的会话自动归档,避免占用收件箱和会话列表空间。
底层架构与改进
在核心层,开发团队引入了多项优化。新增了基于缓存 TTL 的提供商和模型特定会话预热设置,支持 interval: “auto” 模式。另外,增加了 websearch.use 策略动作,并允许通过 OPENCODE_FLAGS=all 一键启用所有功能标志。
针对 Code Mode,引入了实验性的字节码虚拟机。该功能默认关闭,可通过配置 experimental.codemode_vm: true 或设置环境变量 OPENCODE_FLAGS=codemode_vm 开启。Windows 平台新增了对 PowerShell 7 从 Microsoft Store 安装的支持,同时 Azure Messages 现支持 Foundry Claude 模型。
关键修复项
修复主要集中在 opencode run 的非交互式执行逻辑上。现在该命令会等待后台 shell 命令、子代理和图像作业完成,并让模型处理结果后再退出。若后台任务(如开发服务器)永不结束,需手动通过 Ctrl+C 或 SIGTERM 终止。SIGTERM 信号现在会取消会话及其后台作业,并返回退出码 143。
安全方面,服务器 API 的文件读取和媒体服务改为沙箱化下载,拒绝跨站点浏览器导航及来自未授权源的请求。Webfetch 和 Code Mode 的 fetch 功能现在拒绝包含凭据的 URL,并在匹配权限规则时忽略 #fragment。MCP 服务器在模型调用前允许 2 秒连接等待,确保快速连接的服务器工具能进入首次提示词。
TUI 交互优化
在终端界面(TUI)方面,设置中新增了“发送时滚动”选项。用户可选择 session.submit_scroll: “keep”,在提交提示词后保留当前的阅读位置。
修复了多个交互 bug:允许在表单或对话框打开时通过 Ctrl+Z 挂起 OpenCode;修复了 Ctrl+V 无法读取剪贴板时的错误提示;解决了会话标题包含换行符导致崩溃的问题。另外,Home、End 和 Ctrl+G 现在可以在子代理会话中跳转首尾消息,小键盘方向键在支持 kitty 键盘协议的终端中也能正常导航转录记录。
桌面端体验
桌面版针对移动端触控设备引入了 Composer dock,提供 44px 的操作目标和多行输入预测。标签页菜单增加了“关闭其他标签”和“关闭后续标签”选项。收件箱现在会对未读会话做分组,并在标签页上显示运行失败指示器。
其他改进包括:MCP 登录接受粘贴的重定向 URL;Markdown 文件预览将 frontmatter 显示为属性列表;命令中针对 7 天以上的会话显示具体日期而非“Xd ago”。提示词历史最多保留 200 条,其中最新 100 条之后仅保留无附件的提示词。
桌面端还修复了提示词提交、时间线行为、离线状态显示和插件加载失败后的恢复机制。草稿、焦点、光标位置和排队中的提示词在过渡失败时得以保留。V2 文件标签和提及语法错误也已更正。











