🧠 从原理到实战
01 · OpenCode 是什么
理解 OpenCode 的定位:开源、终端优先、多模型可换、配置开放的 AI Coding Agent。
OpenCode 是一个开源 AI Coding Agent。它的核心形态是终端 TUI,同时提供 CLI、IDE 扩展、桌面应用、Web/server、SDK 和 ACP 接入。你可以把它理解为一个“开放配置的本地 coding agent 运行时”,而不是单纯的聊天窗口。
它最值得关注的地方有四个:
- 模型可换:OpenCode 把 provider 和 model 作为一等配置项,你可以接 Anthropic、OpenAI、OpenRouter、OpenCode Zen 或其他兼容供应商。
- 终端优先:TUI 是主入口,文件引用、shell 命令、斜杠命令、会话压缩和工具详情都围绕终端工作流设计。
- 配置开放:
opencode.json、.opencode/、agents、commands、rules、skills、plugins 都能放进项目,让个人习惯变成仓库约定。 - 可嵌入系统:server、web、SDK、GitHub/GitLab 集成和 ACP 让它不只在本机终端里工作,也能被接入 IDE、自动化和团队流程。
它和 Claude Code / Codex 的差异
OpenCode 的优势不是“官方模型最强”,而是开放、可换、可组合。
Claude Code 更像 Anthropic 官方深度打磨的终端 agent,默认体验统一,权限、记忆、subagent、hook、slash command 的边界非常明确。
Codex 更像 OpenAI 生态下的多形态 coding agent,CLI、IDE、ChatGPT、cloud task 和 app 之间有更强产品联动。
OpenCode 则更适合这几种情况:
- 你希望模型供应商可替换,不把工作流绑定在单一厂商上。
- 你希望把 agent、command、rule、skill、plugin 都放进项目,形成可版本化的团队约定。
- 你喜欢终端 TUI,希望保留 shell、文件系统、LSP、formatter、MCP 这些本地开发环境能力。
- 你需要开源实现,方便审计、扩展或接入自己的自动化系统。
不适合什么场景
OpenCode 不应该被理解成“省心的一键替代品”。它的配置面更开放,意味着你要更主动地设计规则、权限和模型策略。
如果你只想要一个默认体验完整、少配置、少折腾的 coding assistant,Claude Code 或 Codex 可能更快。如果你明确需要多模型、开放配置、项目级约定和工具链集成,OpenCode 的空间更大。
最小心智模型
把 OpenCode 拆成 6 层就够了:
入口层 CLI / TUI / IDE / Desktop / Web / ACP
上下文层 @file / AGENTS.md / rules / session / compact
执行层 tools / shell / file edit / LSP / formatter / MCP
角色层 agents / commands / skills
模型层 provider / model / Zen / API key
治理层 permissions / network / share / logs / team config后面的从原理到实战章节会按这 6 层展开。