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 | ~173k | TypeScript | 终端 TUI + 服务端,与模型解耦 |
| cline/cline | ~63k | TypeScript | 自治 agent,IDE 插件优先 |
| Aider(Aider-AI/aider) | ~46k | Python | 终端 + git 自动提交、repo map |
| continuedev/continue | ~34k | Python/TS | IDE 内助手框架 |
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 之上的技能化方法论。