OpenCode 2.0
538 pts · 211 comments · anoma.ly
📌 内容总结
- 背景/意图:OpenCode 2.0 是一次 major overhaul,基于百万级日常用户经验,把原本仅 power user 使用的 client/server 模型默认化,并重写 API、插件、SDK、后台任务等 agent harness 基础能力。
- 关键要点:
- 本地常驻 server:TUI、Web、桌面 app 共享同一后台进程;
@opencode/client可自动发现本地服务,也可通过opencode api调用。 - API 重写:作者称旧 API 因早期探索而“bad”;新 API 覆盖复杂用例,OpenCode 可用自身 API 执行 worktree 创建、session 重命名/移动/中断、关闭 tab 等操作。
- Code Mode:
@opencode/codemode内嵌最小 JavaScript 解释器,把 MCP server 或 OpenAPI endpoint 转成可调用函数;2.0 中 MCP 默认进入 code mode,以减少 context bloat,并支持一次脚本调用组合多个工具。 - 后台任务:子 agent 与 shell 命令可异步运行,可指定不同模型;
ctrl+b可把前台任务移到后台。 - 插件/SDK:80+ 内部插件支撑 Plugin API;TUI 插件进入 stable,支持热重载,agent 可在会话中写插件并立即使用;
@opencode/sdk与 CLI 同源,含开发中的 Effect API。
- 本地常驻 server:TUI、Web、桌面 app 共享同一后台进程;
- 限制/破坏性变更:1.0 插件不兼容;Server API 完全不同;
tui.json配置迁到json;官方建议先升级到最新 1.x,再运行opencode upgrade --major。 - HN 关注点:
- 功能认可集中在 client/server、后台 subagent、插件热重载、持久 server 加快启动。
- 大量评论先讨论官网 WebGL 卡顿、滚动困难、移动端体验差。
- 安全与资源占用争议突出:常驻 server 可能绕过 TUI sandbox;需要
--standalone才沙箱化 server;插件热重载被指为安全错配。
💬 讨论总结
- 支持面:V2 日常使用总体更顺,后台任务和 subagent 是实际体验提升;持久 server 让启动更快;Web/桌面 UI 是 OpenCode 区别于多数 TUI harness 的卖点。
- 工程经验:只把 TUI 进程包进 sandbox 不再足够,工具调用走后台 server 后 sandbox 会静默失效;有用户两天后才发现本应被拦截的 web fetch 已成功。至少三项安全回归被提及:配置加载、插件热重载、后台 server 沙箱。
- 项目历史:OpenCode 与 Crush/Charm 的历史被反复澄清;OpenCode 由 anomalyco/SST 团队维护,早期 Go、现为 TypeScript;一位开发者离开去 Crush,但项目继续。部分老用户已厌倦这类旧账。
- 资源/稳定性:有用户称内存占用不低于甚至高于 1.0;文件 watch 在大型目录树中可产生海量 watch;也有人称当前版本已改善。
- 维护与商业现实:
curl | sh安装器因进度条渲染而极慢;OpenCode Go 订阅有人投诉计费与文档价格不符、Discord 支持后续无响应;也有人认可 $10 订阅换 DeepSeek 额度的性价比。3.2k open issues 与 triage/CI 被批评,但有贡献者称 PR 仍可合并。 - 替代与反对:部分用户转向 Pi、OpenChamber、Paseo;有人不满 V2 UX,认为 hot reload 对 agent 权限是安全错配;也有人认为官方沟通和 bug 处理不足。
- 具体扩展点:本地 Ollama/llama.cpp、Azure
az login、Vim 插件、自定义 dotfiles、OpenChamber GUI 均有用户提及。