今天例行打开 OpenCode 官网看更新,发现首页跟上周完全不一样了。

顶部挂了一条横幅:New OpenCode v2 is now available
安装命令从 /install变成了 /v2/install
GitHub 链接也统一换到了 v2 分支。

我第一反应:它终于转正了?

7 月那波 beta 动静不小——16 万 star 的仓库彻底重写,Bun 换 Node、桌面端 Tauri 换 Electron、多标签并行会话。但「测试版」帽子戴了快 4 个月,很多人跟我一样,装了也不敢放正经项目里。

现在官网全线切到 v2,该升了吗?升了会不会翻车?我把官方迁移文档从头翻了一遍,这份升级答案给你。

先说结论:转正了,但长得不太像

v2 确实是好东西:多标签并行会话、Electron 桌面端、内存占用降了、服务常驻跨设备能连。但 beta 意味着「随时可能清数据、改配置」,所以多数人选择继续蹲 v1.18.x 等转正。

官网这波切换,就是那个「正式」的信号。但你要注意,它长得不像传统意义的「正式版发布」:

• changelog 页面还是空的,v2 线的更新记录没挂上来
• GitHub releases 主页最新一条还是 v1.18.31(9/14)
• 安装命令换成了新包 @opencode/cli

转正了,但官方没敲锣打鼓。所以很多人反而懵了:现在到底是啥状态?怎么升才不翻车?下面拆开讲。

转正怎么看:官网 3 个信号 + 版本线佐证

判断「转正」别听社区传言,盯官网和 GitHub 就够,三个信号全亮了:

• 首页横幅:New OpenCode v2 is now available →
• 安装入口:全站安装命令换成 curl -fsSL https://opencode.ai/v2/install
• 仓库指向:官网 GitHub 链接全部指向 v2分支,主仓库已 209K star/ 950+ contributors / 1600 万+ 月活开发者

版本线更实锤。GitHub tags 页里,v2.0.x 已经跑出了完整迭代节奏:

• v2.0.2(9/12)→ v2.0.10(9/19),一周 9 个小版本
• 同时 v1.18.31(9/14)还在发——v1 没被抛弃,两条线并行维护

一周 9 个版本,说明 v2 已经进入正式迭代节奏,不是挂 beta 帽子的试验品了。

装 v2:两条路,一个坑

官方给了两条安装路,选顺手的:

# 方式一:官方 curl 安装器(推荐)
curl -fsSL https://opencode.ai/v2/install | bash

# 方式二:npm 装新包
npm install -g @opencode/cli

一个坑先记住:V1 和 V2 现在共用 opencode这一个命令,不再默认并行安装。beta 时期那种「装两个、opencode2 指 v2」的日子结束了。装 v2 前,先卸掉包管理器装的 v1——v2 的 curl 安装器会直接替换掉旧二进制。

升级必知的 3 个 Breaking Changes

官方迁移文档把破坏性改动明明白白列了三处,升级前不知道,装完大概率一脸懵:

• 插件 API 重构:V1 插件在 V2 跑不了,入口、hooks、工具、事件全按新 API 重写
• Server API 重构:V1 服务端 API 的集成要迁到新契约,用官方 @opencode/client
• 终端配置合并:分层 tui.json(c)变成单一全局 ~/.config/opencode/cli.json,首次启动自动迁移

好消息:除了这三块,你现有 .opencode/下的 agents、commands、skills 文件,官方承诺「应该不用改就能用」。真坏了算兼容性 bug,可以提 issue。

配置迁移对照:最容易踩的改名清单

如果你自己手改配置,下面这张对照表系好安全带,最容易踩的就是这些:

• 权限动作改名bashshelltasksubagentwrite/patchedit;结构从「按工具分组」变成单一有序 permissions数组
• 单数变复数agentagentscommandcommandsproviderproviderssnapshotsnapshotsattachmentmedia
• compaction 改名preserve_recent_tokens/reservedkeep.tokens/buffer
• skills 合并paths+urls两个字段合并成一个数组
• MCP 结构:服务器收进 mcp.serversenabled变 disabled(语义反转),timeout 拆成 catalog/execution 两档
• providers 合并azure-cognitive-servicesazuregoogle-vertex-anthropicgoogle-vertexnpmpackage(AI SDK 包加 aisdk:前缀)
• 模型 variant:独立 variant: high字段,合并进模型引用写成 anthropic/claude-sonnet-4-5#high

看到这一长串先别慌——官方说得很明白:V2 直接读 V1 格式的配置,自动归一化,不强制你转。这些改名是给你「想转的时候」用的,不是升级的前置条件。

迁移 5 步:官方推荐,不用重写

官方迁移指南给了套 5 步流程,核心思想就一句话:先跑起来,再慢慢转

① 保留现有配置:V2 从同样位置读 opencode.json和 .opencode/,什么都不用动
② 启动 V2 验证:确认模型、凭证、agents、permissions、MCP 服务器都正常
③ 移植插件:V1 插件不兼容,这一步必做
④ 移植集成:调过 V1 server API 的脚本/工具改到新契约
⑤ 转换配置(可选):想转 V2 原生格式时再转,不转也行

第 5 步有个偷懒妙招——直接让 OpenCode 自己动手,给它这段指令:

Migrate my OpenCode configuration, including file-based
definitions, from the V1 format to the native V2 format.
Preserve its behavior and all unrelated settings.

它能通读整个配置文件,只改该改的,不动的设置不碰。V1/V2 字段在顶层可以共存,转了一半也没关系。

几个我挖出来的细节,别踩

翻迁移文档时挖到几个容易被忽略的点,提前给你打预防针:

• V2 不跑 LSP 了lsp配置会被接受但不再生效,依赖 LSP 诊断的工作流换成项目自带的 lint / typecheck / 编译命令
• 转完别喂回 V1:V1/V2 用同一套配置路径,一旦转成 V2 原生格式,别再拿 V1 去读
• 混写有边界mcp/compaction/experimental里可以混写,但单个 agent/provider/command/model 内部必须保持一种格式
• logLevel被忽略:改用环境变量 OPENCODE_LOG_LEVEL
• autoshare改 share:布尔值变成 "auto"/"disabled"三态
• 命令改名:别再用 subtask,已改名 subagent(旧名字仍接受,但那是兼容遗留)

所以,到底升不升?

我的建议按情况分:

• 主力干活、插件一堆的:先别急着切。v1 线还在维护,v1.18.31 上周刚发。等插件生态迁移完再动
• 普通使用、无插件依赖:可以升了。官方全站切 v2 就是信号,配置还能自动迁移,翻车代价不大
• 想尝鲜的:装 v2 前先备份配置(V1/V2 共用配置路径,回退前记得把原生格式配置改回去)

官网已经替你投好票了——安装入口、文档、GitHub 链接全部切 v2。剩下的只是时间问题。

转正从来不是版本号的事,是你愿不愿意跟着迁移的事。

💬 你升级到 v2 了吗?配置迁移踩到过什么坑?评论区聊聊,我整理进避坑指南。


如果觉得这篇文章有用,欢迎关注「AI 阿砚」,一个科研爱好者的 AI 探索笔记。