跳转到内容

迁移到 1.0

OpenCode 1.0 中有哪些变化。

OpenCode 1.0 是一次对 TUI 的“完全重写”。

我们从原来的 Go + bubbletea TUI 迁移到自研的 OpenTUI 框架(使用 Zig + SolidJS),以解决性能和能力上的限制。

新的 TUI 与旧版使用同一个 OpenCode Server,因此整体使用方式与 0.x 保持一致,只是交互体验有明显提升。


升级与回滚

当前从 0.x 不会被强制自动升级到 1.0(但某些非常旧的版本可能会总是拉取最新版本)。

手动升级到 1.0:

Terminal window
opencode upgrade 1.0.0

如果需要回退到 0.x,比如:

Terminal window
opencode upgrade 0.15.31

体验(UX)变化

  • 会话历史展示更加紧凑:默认只对 edit / bash 等关键工具展示完整细节;
  • 新增“命令栏(Command Bar)”:
    • 通过 Ctrl+P(或自定义快捷键)随时打开;
    • 几乎所有操作都可以通过命令栏触发;
  • 新增“会话侧边栏”:
    • 展示当前会话的元信息、上下文等;
    • 可以在设置中开关。

我们同时移除了一些使用较少的功能,如果你发现重要功能缺失,欢迎提 Issue,我们会优先考虑恢复。


不兼容变更

快捷键重命名

以下 keybind 名称发生了变化:

  • messages_revertmessages_undo
  • switch_agentagent_cycle
  • switch_agent_reverseagent_cycle_reverse
  • switch_modeagent_cycle
  • switch_mode_reverseagent_cycle_reverse

如你在 opencode.jsonkeybinds 中使用了旧名字,需要同步更新。

移除的快捷键

以下 keybind 已被移除(对应功能要么合并到了新的交互中,要么暂时下线):

  • messages_layout_toggle
  • messages_next
  • messages_previous
  • file_diff_toggle
  • file_search
  • file_close
  • file_list
  • app_help
  • project_init
  • tool_details
  • thinking_blocks

如果你的工作流依赖其中某项功能,可以在仓库中提 Issue 说明场景,我们会评估是否以新的方式支持。