返回首页

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。
  • 限制/破坏性变更: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 均有用户提及。

🔗 原文 · HN 讨论页