opencode 是一个住在终端里的编码 agent。你把它指向一个项目,跟它对话,它就读代码、改文件、跑命令,过程中按权限征求你同意。它的定位刻意收窄:不是 IDE 插件,不是往里粘代码的网页应用,而是一个把 shell 当主场的 TUI。这个选择本身就是它值得一看的全部理由,所以本文重点谈这个取舍买到了什么、又付出了什么。

为什么它受关注

有两点把 opencode 和一堆”编辑器里塞 AI”的工具区分开。第一,它是真正与模型解耦的。模型通过一个共享目录(models.dev)接入,意味着加一个新 provider 更接近改配置而非改代码。截至 2026-06,它覆盖 Claude、OpenAI、DeepSeek、OpenRouter、Bedrock、vLLM 以及本地模型,而且 changelog 显示新推理模型常在发布后几天内就被接上。如果你对厂商锁定过敏,这点比任何单一功能都重要。

第二,它在 TUI 客户端和服务端核心之间做了真正的拆分。终端 UI 基于 SolidJS 和一个终端渲染器,业务逻辑放在单独的包里,另有一个插件 SDK,以及一个能在 Windows 上驱动 WSL 后端的桌面端(Electron)外壳。实际好处是:无论你在 SSH 上的 tmux 里还是在桌面窗口里,跑的都是同一套引擎;第三方也能基于服务端构建,而不必 fork UI。

核心能力

  • Tab 切换的两个内置 agent:build(完全访问,默认)和 plan(只读,拒绝编辑、跑 bash 前先问)。另有一个 general 子 agent 处理多步搜索,用 @general 调用。
  • 通过 models.dev 与模型解耦,含本地与自托管端点。
  • 支持 MCP server,外部工具和数据源通过 Model Context Protocol 接入。
  • LSP 集成、格式化工具,以及面向大仓的快速文件搜索路径。
  • 分级权限提示,在应用编辑前展示真实 diff,并支持会话级工具规则。

安装

opencode 的安装方式按官方 docs 来,而不是按你的语言生态猜,所以用真实命令:

# 安装脚本
curl -fsSL https://opencode.ai/install | bash

# 包管理器
npm i -g opencode-ai@latest          # 或 bun / pnpm / yarn
brew install anomalyco/tap/opencode  # macOS 和 Linux,跟最新版
scoop install opencode               # Windows
sudo pacman -S opencode              # Arch(stable)
nix run nixpkgs#opencode             # Nix

桌面版可从 releases 页下载,macOS 上也可 brew install --cask opencode-desktop。维护者提到一个升级坑值得注意:装新版前先卸掉 0.1.x 以前的旧版本。

怎么用

心智模型是”带护栏的对话”。先用 plan 模式在陌生代码库里探查而不冒编辑风险,准备好让它动手时再 Tab 切到 build。权限提示会展示真实 diff,所以你是在审批改动而非盲信。长任务里,@general 子 agent 一边铺开搜索,主会话一边保持专注。

适合与不适合

适合:你的工作本就在终端里、你想自由切换模型、或你需要一个能在远程机器上通过 SSH 运行的 agent。不太适合:你想要 GUI IDE 里的深度内联编辑,或你偏好那种在后台自动 commit、替你管 git 历史的 agent。opencode 对”留在 shell 里”很有主见,而这个主见就是它的产品。

横向对比

诚实的同类是其它编码 agent,而非编辑器。star 数截至 2026-06:

项目Stars语言形态
anomalyco/opencode~173kTypeScript终端 TUI + 服务端,与模型解耦
cline/cline~63kTypeScript自治 agent,IDE 插件优先
Aider(Aider-AI/aider)~46kPython终端 + git 自动提交、repo map
continuedev/continue~34kPython/TSIDE 内助手框架

Aider 是最接近的终端同类,但它依赖 git 自动提交和 repo map;opencode 依赖的是它的 agent/权限模型和 provider 目录。Cline 和 Continue 都假设有编辑器。差异点不在”模型更聪明”,而在”agent 住在哪里、你被锁定得有多深”。

issue 里的粗糙边角

发版节奏很猛(单是 2026-06-10 就连发数个小版本,约 v1.17.x),开放 issue 反映的是一个高速移动的靶子而非陈旧项目。依赖它前值得知道:

  • 编辑工具曾在 Unicode 规范化(NFC vs NFD)上栽过跟头,导致 macOS 文件名上的编辑失败。
  • 有报告称已完成的后台子 agent 任务触发了重复派发循环。
  • 围绕 MCP server 环境变量和编辑路径校验的安全类报告,若你把 opencode 接入敏感工具链,这类事要盯着。

这些都不是致命伤,但它们就是一个每天发版的工具的质地。需要稳定就锁版本。

关于贡献

它的贡献政策比多数项目更严:bug 修复、LSP/格式化改进、provider 支持、性能优化都欢迎,但未经邀约的 UI 或产品功能 PR 会被关掉、待设计评审。如果你打算基于 opencode 构建,请走插件 SDK 和服务端,而不是去打 TUI 的补丁。

相关阅读

如果你在比较 agent 工具,可看 farion1231/cc-switch 管理多个编码 agent,github/spec-kit 一套把 opencode 列为目标 agent 之一的规格驱动工作流,以及 obra/superpowers 叠加在 agent 之上的技能化方法论。