v2.1.0 · 2026-10-20 发布

OpenCode 2.1 破坏性更新:公开契约变更

截至 2026-10-20,OpenCode v2.1.0 对公开 SDK、HTTP message/event 与插件契约做了有意变更;写插件、用 SDK、接 HTTP 事件的人要对照新字段修改。官方 changelog 写明已存会话、凭据和旧会话导入仍可读,无需数据库迁移。

更新于 2026-10-20

把这个工具接到 QCode 端点:一把 key 调 Claude、GPT 与国产模型。

#v2.1.0#Breaking changes#SDK / HTTP / 插件#无需数据库迁移

四个改动点(含一项新功能)

native

replay 字段的新名称

官方 changelog 写明:provider replay 数据以前在不同接口上用不同名字,2.1 现在统一读写 native。

session.compacted

已从公开事件中移除

过渡事件 session.compacted 移除;事件订阅和 schema 导入改用 session.compaction.started 与 session.compaction.ended。

Credential.Key.configuration

改为 metadata

公开的凭据写入要把 setup-form 答案放在 metadata 字段;旧的 configuration 只用于存储与导入的兼容。

x64 / ARM64

Windows 持久 PTY

同一版加入 Windows 持久 PTY(x64 与 ARM64);TUI 的 Todo 列表要开 experimental.todo 才出现。

v2.1.0 改了什么

OpenCode v2.1.0 于 2026-10-20 发布。官方 changelog 说,2.1 对公开 SDK、HTTP message/event 与插件契约做了有意变更,目的是让 provider replay 数据与 compaction 在各处使用一致的名称和形状,接入方必须采用新字段。同一段还写明,已存会话、凭据和旧会话导入可通过兼容解码器读取,不需要数据库迁移。

官方 changelog 要点

2.1.0 的破坏性变更集中在公开 SDK、HTTP message/event 与插件契约;官方 changelog 逐组说明:provider replay、凭据设置、summary compaction、provider compaction 与事件。功能侧同版加入 Windows 持久 PTY、TUI Todo 列表,以及超过 Bun 五分钟 fetch 截止时间仍保持连接的长任务。

2.1.0 时间线

2026-10-20

OpenCode v2.1.0 发布,官方 changelog 把 SDK、HTTP message/event 与插件契约的变更列为 Breaking changes。

2026-10-20

同一版本加入 Windows 持久 PTY(x64 / ARM64)与 TUI Todo 列表;Todo 列表需要 experimental.todo 开关。

2026-10-20

QCode 文档的 OpenCode 接入页 2026-10-20 核对,补充了 OpenCode 2 一节。

已确认 vs 没有核实到的

已确认(官方 changelog 可核)

官方 changelog 写明:v2.1.0 发布于 2026-10-20;2.1 对公开 SDK、HTTP message/event 与插件契约做有意变更,接入方必须采用新字段。

未证实与官方未公布

官方 changelog 没有列出 2.1 后续版本的时间表,也没有说明这次契约变更对具体第三方接入端的影响。

2.1.0 和 2.0 怎么比

对 2.0

和 2.0 相比,版本 2.1.0 改动的是公开契约的字段名与事件:replay 数据统一为 native,session.compacted 事件被移除,Credential.Key.configuration 被移除、答案改放 metadata。

对普通 CLI 用法

官方 changelog 的要求是写给接入方的,没有单独说明普通 CLI 用法是否受影响。

要改的四处

① 把 replay 数据的读取与写入从 state / providerState / resultState 改成 native(文本与推理 part、assistant 与 compaction 消息、生命周期事件都按 changelog 的表;工具的执行状态 tool.state 与 UI 元数据不改名);② 事件订阅与 schema 导入去掉 session.compacted,改用 session.compaction.started / session.compaction.ended;③ 公开凭据写入把 setup-form 答案放进 metadata,不再发送 configuration;④ 检查插件与 SDK 里对 providerContext 与 recent 的读取:provider compaction 的替换消息窗口改读 native.messages;summary compaction 不再暴露 recent,新记录用 metadata.keepID 指向第一条原样保留的消息,2.1 之前的旧 compaction 和 V1 导入的保留文本仍在 metadata.recent。

在 QCode 上接 OpenCode

QCode 文档的 OpenCode 接法是:配置文件 ~/.config/opencode/opencode.json,Claude 走 https://api.qcode.cc/claude/v1;GPT 用 openai provider,国产模型用 OpenAI 兼容 provider,baseURL 都是 https://api.qcode.cc/openai/v1;用 opencode auth login 或 /connect 写入 Key;OpenCode 1 的凭据存在 ~/.local/share/opencode/auth.json,OpenCode 2 存在 SQLite,并会导入旧 auth.json。使用前要先开启 API direct access 权限,该权限默认关闭,需联系在线客服或发邮件至 hi@qcode.cc 为已购 Key 开通。该文档页最后核对于 2026-10-20,页上的 V1 格式配置在 OpenCode 2 中仍受支持。按 token 计费,各模型单价见 /models。不想包月?按量包 ¥25 起买一笔额度,7–90 天内用完为止(人民币充值 ¥100 起)。已有个人套餐的用户额度不够时买加油包。

常见问题

谁需要为 2.1 的破坏性变更改代码?

官方 changelog 要求接入方(integrations)采用新字段,并点名公开 SDK、HTTP message/event 与插件契约这三类。写插件、用 SDK、通过 HTTP 接事件的人要对照新字段修改。

replay 数据到底改了什么?

以前不同接口用 state、providerState、resultState 等不同名字;2.1 统一读写 native。工具的执行状态与 UI 元数据不跟着改名。

session.compacted 还能用吗?

不能。官方已把它从公开事件面移除;事件订阅与 schema 导入改用 session.compaction.started 和 session.compaction.ended。

升级 2.1 要迁移数据库吗?

不需要。官方写明已存会话、凭据和旧会话导入可通过兼容解码器读取,不需要数据库迁移。

普通 CLI 用户要不要改?

官方 changelog 的要求是写给接入方的,没有按用户类型逐项说明。升级前按自己的插件、SDK 与事件订阅逐项对照即可。

在 QCode 上接 OpenCode 要改什么?

接法照 QCode 文档:opencode.json 里 Anthropic provider 填 https://api.qcode.cc/claude/v1,OpenAI provider 填 https://api.qcode.cc/openai/v1,Key 用 opencode auth login 或 /connect 写入。QCode 文档的 OpenCode 页 2026-10-20 核对:页上的 V1 格式配置在 OpenCode 2 中仍受支持,文档同时给了 V2 原生写法。按 token 计费,各模型单价见 /models。

信息来源

OpenCode 官方 changelog(2026-10-20 抓取,v2.1.0 条目);OpenCode 官方 CLI 文档(opencode auth login);QCode 文档的 OpenCode 接入页(2026-10-20 抓取,页面最后核对日 2026-10-20);QCode 的按量包页面(2026-10-20 抓取)。

契约变更,按条对照

QCode 的 OpenCode 接入使用 opencode.json + 两个 baseURL;按 token 计费,各模型单价见 /models。

不确定从哪开始?

先试一周

周包 ¥25($30 额度,7 天)

每天都用

体验版 ¥60/月,比月包每 $1 约便宜一半(每天 $5 额度)