10 月,OpenCode 团队发布 OpenCode 2.0,把这个 GitHub 上已超过 21 万 Star 的开源编程智能体彻底重做了一遍。官方公告的措辞是「一次大改(a major overhaul)」——它没有在 1.x 上继续加功能,而是把服务端、API、插件系统与配置格式全部重新设计。
升级入口已经接好:1.19.0 版本(10 月 11 日发布)的更新说明里写着,运行 opencode upgrade --major 即可升级到 OpenCode 2。开发者摘要站 Developers Digest 在 10 月 11 日的迁移指南里给了一句总结:对默认配置的用户是一次顺滑升级,对重度插件用户是一次重写——插件被官方明确列为「刻意的不兼容」。
三端共用一个后台服务
OpenCode 从第一天起就是客户端/服务端结构,但 1.x 默认没把它用起来,主要是高级用户在用。2.0 的改变是让这个服务自动以单一后台进程常驻:打开终端 TUI、网页端或桌面端,三者连的是同一个中央进程,看到的是同一份会话。

图 1:三端与脚本调用方共用同一个后台服务,会话状态在其中统一管理。
服务持有会话、配置、权限与工具执行。配套的几件事:
- 脚本调用:新的
@opencode/client包会自动发现本地服务并直接工作,官方特别点名它对定时任务有用;命令行侧可以用opencode api调用。 - 配对与远程:
opencode pair会打印出 URL、用户名与密码,可以把服务暴露给其它主机;官方称基于这条链路的原生应用还在做。 - API 重写:官方对旧 API 的评价很直接——「它是坏的」。新 API 从零开始重做,覆盖 142 个操作、285 个 schema,并提供 OpenAPI 3.1.0 描述;OpenCode 自己会用这套 API,比如开新工作时把当前会话移进一个 git worktree。
- SDK:
@opencode/sdk就是驱动 CLI 的那份代码,可以被裁剪后跑在服务器或 Cloudflare Durable Objects 这类环境里,再用标准协议连回任意 OpenCode 客户端;基于 Effect 的可选 API 仍在开发中。
另外,2.0 新增了 warming(会话保温)配置:开启后,一段最近活跃的会话在你停手的 4 分钟后会收到一次保活请求,每 4 分钟一次,直到最后一次非保活请求满 30 分钟为止——目的是把供应商侧的提示词缓存留住。默认关闭,且这些是真实计费的请求。
Code Mode:把工具编译成 JavaScript 函数
2.0 里最受关注的新能力是 Code Mode。它来自 @opencode/codemode 包——一个极简的 JavaScript 解释器,会把 MCP 服务器或 OpenAPI 端点摄取进来,转换成函数,供智能体在脚本里调用。

图 2:脚本一次往返完成「读取一批数据 → 映射 → 再调用另一个工具」。
官方给的例子是「把 GitHub 上的 bug 归档到 Linear」:脚本先调 tools.github.list_issues 取回 open 状态的 issue,再 Promise.all 并发调用 tools.linear.save_issue,最后只把三个新 issue 的编号(["OC-412", "OC-413", "OC-414"])返回给模型。整个「读一批、映射、再调另一个工具」的过程只占一次往返,而不是一次一条地调用工具。
两个设计细节值得留意:
- 解释器原生执行这些脚本,不需要 Node.js 虚拟机,也不用嵌入 QuickJS 这类方案——这是官方强调的与其它实现路线的差别。
- 2.0 里所有 MCP 服务器默认开启 Code Mode。官方称这意味着可以接入上千个 MCP 服务器而只带来极小的上下文膨胀:模型看到的是工具目录,具体调用交给脚本。
需要留意的是,社区已经报告 Code Mode 在调用长时间运行的插件时目前没有超时上限,可能导致会话一直等待、需要手动打断。
后台子智能体与后台 Shell
2.0 补上的另一块能力是「把活儿丢到后台」。官方判断是:最新一批模型在编排上已经相当强,外壳应当让它们把这份能力完整表达出来。

图 3:子智能体与 shell 命令都可以转入后台,完成后通知发起方。
- 后台子智能体:主智能体可以把手上的活派给另一个子智能体后继续干活,也可以手动触发,甚至可以指定另一个模型——官方示例就是「起一个后台的 fable 子智能体来审阅这段代码」,你继续提问。
- 后台 Shell 命令:shell 工具可以异步调用,长时间运行的命令不必阻塞主智能体,完成时会收到通知。
- 一个快捷键:如果前台某个 shell 命令或子智能体比你预期跑得久,按 ctrl+b 就能把它移到后台。
插件:先用自己把插件 API 喂饱
1.0 有插件系统,但官方承认「它没有得到应有的关注」。2.0 的解法有点意思:团队强迫自己把 2.0 的几乎所有功能都实现成内部插件,现在有 80 多个,以此保证 Plugin API 长期被维护。同时 TUI 插件从实验性升为稳定,底层由 OpenTUI 驱动。
配合「2.0 的一切都可以热重载」,官方称 OpenCode 可以在会话中途给自己写一个插件并立刻用上。插件数组来自多个配置文件,按优先级从低到高叠加而非替换;条目按顺序处理,可以用 - 前缀禁用某个插件或用 * 通配。插件也可以直接从 .opencode/plugins/ 目录发现 .ts / .js 文件。CLI 侧提供 opencode plugin add / list / check / update / remove 管理包插件,支持 npm 版本、tag、range 以及 Git 仓库(含私有仓库)。
上手与迁移
安装方式覆盖 curl、Homebrew、npm、bun、pnpm、yarn、Vite+、AUR、mise,以及各平台独立二进制;Windows 的包管理器不受支持,但提供独立二进制。Docker 镜像使用版本 tag,例如 ghcr.io/anomalyco/opencode:2.0.0。

图 4:V1 → V2 的配置键对照,以及需要提前知道的三个坑。
官方列出的三处刻意不兼容是:
- 插件:1.0 插件在 2.0 里不会运行,需要按专门的插件迁移指南重写——光改文件名或挪位置没用。
- 服务端 API:契约完全变了,调用方要迁到
@opencode/client。 - 终端配置:从分层的
tui.json(c)收拢到全局~/.config/opencode/cli.json,首次启动会自动迁移全局配置,但项目级配置不会迁移。
其余部分官方称向后兼容。V2 读取与 V1 相同的配置路径,并会在内存里规范化旧字段而不改写文件,所以「先不改配置、直接跑一次 V2」是安全的。其余迁移要点:
- 别让 V1 指向已转成 V2 形态的配置;两个版本共用
opencode命令,也不再默认并存,安装 V2 前要先卸载包管理器装的 V1。 - 想省事可以让 OpenCode 自己转换配置:把迁移文档指给它,让它按保留行为的方式改写。
- 最稳妥的顺序是:先备份
~/.config/opencode/与各项目的.opencode/,在废弃项目里验证模型、凭据、agents、权限与 MCP 服务器,再逐个迁移插件。
还有三件容易被忽略的事:
- LSP:V2 接受并保留
lsp配置,但不启动语言服务器、不暴露 LSP 工具、不产生 LSP 诊断——要用 lint、类型检查或编译器命令来替代。 - 指令文件:V2 只发现
AGENTS.md,不再回退读取CLAUDE.md。 - 共享后台服务:默认每个用户账号一个,且它才是真正执行工具的地方。
opencode --standalone可以跑一个私有服务,opencode service set disabled true则把私有服务设为默认——无人值守、CI 或 API 场景要先想清楚用哪种模式。
配置侧还新增了 Policies:与「权限」不同,Policies 是二元的、永不弹窗、只会收紧而不会放宽,用来按语句允许或拒绝某个 provider、硬拒某次权限检查,或封掉某个 MCP 服务器、技能与插件。它也能由已连接的 OpenCode Console 工作区下发,且 opencode.config.policy 与 opencode.provider.opencode 这两个内置插件忽略移除指令,以免仓库自行关掉策略执行。
社区反馈:两类用户,两种体验
Hacker News 上这条公告拿到 748 分、94 条评论。正面的一侧包括:有评论者称 2.0 下较新的模型会自动派生子任务(开箱就能跑出 5 个以上异步子任务),也有人提到常驻服务带来的副作用是应用打开更快。质疑的一侧则集中在:默认常驻一个后台守护进程,有人并不想要;以及「所有工具调用现在都走后台进程」,导致只沙箱化 TUI 已经不够,需要 --standalone 才能把服务一并纳入沙箱。
Reddit 的 r/opencode 侧读数偏负面,有帖子直言 2.0 弄坏了他们的工作流,建议先修好插件和脚本再升;另一篇「和 OpenCode V2 相处一个周末」称大部分自定义内容都失效了、出现了一些 bug,且有些改动没法做成插件。Developers Digest 的迁移指南只读了摘要,给出的公允读法是:插件是官方刻意的不兼容,重度插件用户应当把它当作一次重写来规划。

图 5:OpenCode 终端会话示意——修改 src/cart.ts 后接着跑测试。
核心总结
- 定位:OpenCode 2.0 是对这个 21 万 Star 开源编程智能体的一次彻底重做,1.19.0 起可用
opencode upgrade --major升级 - 架构:终端、桌面、网页与脚本调用方共用同一个后台常驻服务,会话、配置、权限与工具执行都在其中
- Code Mode:把 MCP 服务器与 OpenAPI 端点编译成 JavaScript 函数,脚本原生执行、一次往返完成「读一批 → 映射 → 再调工具」;所有 MCP 默认开启
- 后台任务:后台子智能体(可换模型)与后台 shell 命令,ctrl+b 可把前台任务移入后台
- 插件与 SDK:80+ 内部插件反哺 Plugin API,全链路热重载;
@opencode/sdk可把同一套引擎嵌进服务器或 Durable Objects - 三处不兼容:插件 API、服务端 API、终端配置格式;另有 LSP 不运行、只认
AGENTS.md、默认共享后台服务三个坑
一句话:OpenCode 2 把「一个终端里的编程助手」推进成「一个本地常驻的智能体服务」,代价是插件作者与服务端 API 的调用方要重写一遍。
原文:OpenCode 2.0(Anomaly,2026-10)
参考:
- OpenCode 2:如何从 v1 升级而不弄坏你的配置(Developers Digest,2026-10-11)
- Migrate from V1(OpenCode 官方文档)
- OpenCode 2 文档首页(OpenCode 官方文档)
- OpenCode v1.19.0 发布说明(GitHub)
- OpenCode 2.0 讨论帖(Hacker News)



