OpenCode:当 coding agent 的操作系统被开源

Anthropic 把 Claude Code 闭源,社区用 TypeScript 写了一个 1:1 替代品,还加了桌面 App。

目录
  1. 一句话
  2. 场景开篇
  3. 核心设计:两个 Agent,不是一个
  4. Build Agent(执行者)
  5. Plan Agent(规划者)
  6. 桌面 App:从 CLI 到 GUI
  7. 安装方式的野心
  8. 开源 coding agent 的结构性优势
  9. 多语言支持的隐藏信号
  10. 和 Claude Code 的关系
  11. 一个更大的问题
仓库:anomalyco/opencode
语言:TypeScript
Trending:576 stars/day
协议:MIT

一句话

Anthropic 把 Claude Code 闭源,社区用 TypeScript 写了一个 1:1 替代品,还加了桌面 App。


场景开篇

如果你用过 Claude Code,大概有过这种体验:让 AI 帮你改一个跨文件的 bug,它先读 5 个文件,理解了上下文,然后精准地改了 3 行代码。整个过程 30 秒,你只说了一句话。

然后你看了一眼账单。

Claude Code 按 token 计费,一个复杂任务跑下来,API 成本可能比你的 GitHub Copilot 订阅费还贵。更关键的是——它不开源。你不知道它怎么组装 prompt,怎么管理上下文,怎么做工具选择。你只能信任 Anthropic。

OpenCode 的作者做了一个简单的事:把 Claude Code 的核心架构用 TypeScript 重新实现,开源出来,让你可以接入任何 LLM provider。

核心设计:两个 Agent,不是一个

OpenCode 最有意思的设计不是"开源 Claude Code",而是它把 coding agent 拆成了两个独立角色:

Build Agent(执行者)

负责写代码、改文件、跑命令。这是你日常交互的那个 agent——你说"加个登录页面",它就去改 React 组件、写 CSS、更新路由。

Plan Agent(规划者)

负责理解任务、拆解步骤、制定计划。它不写代码,只输出一个结构化的执行计划。你可以把它想象成"架构师"角色——先想清楚做什么,再让 Build Agent 去做。

这个拆分看起来简单,但它解决了一个 coding agent 的核心问题:执行和规划用不同的上下文窗口。

传统 coding agent 的做法是:一个 agent 同时负责规划和执行。问题是,规划阶段需要看全局(整个 codebase 的结构),执行阶段需要看局部(当前文件的具体内容)。如果用同一个上下文窗口,要么规划时看不够全局,要么执行时上下文太长导致注意力分散。

OpenCode 的解法是让两个 agent 各自有独立的上下文窗口,通过一个共享的任务列表协调。Plan Agent 输出任务列表,Build Agent 逐个执行。这和人类开发团队的工作方式一致——架构师写设计文档,程序员按文档实现。

桌面 App:从 CLI 到 GUI

OpenCode 不只是 CLI,还有一个桌面应用(目前 Beta)。这看起来是个小细节,但它指向一个更大的趋势:coding agent 正在从"终端工具"变成"开发环境"。

想想 IDE 的演化路径:Vim(终端)→ Emacs(终端+GUI)→ VS Code(GUI+扩展生态)→ Cursor(GUI+AI)。每一步都在增加抽象层,让开发者更少地接触底层细节。

OpenCode 的桌面 App 是同一逻辑的延续:把 coding agent 从"终端里的一条命令"变成"一个完整的开发环境"。你不再需要记住 CLI 参数,而是在一个图形界面里管理 agent 会话、查看 diff、审批代码变更。

安装方式的野心

看 OpenCode 的安装文档,你会发现它支持几乎所有包管理器:

  • npm、bun、pnpm、yarn(Node 生态)
  • scoop、choco(Windows)
  • brew(macOS/Linux)
  • pacman(Arch Linux)
  • mise、nix(跨平台版本管理)
这不是一个"随便写写"的开源项目会做的事。这是在刻意降低安装门槛,让任何开发者都能用自己熟悉的工具链装上它。

对比 Claude Code 的安装方式:npm install -g @anthropic-ai/claude-code。只有 npm,绑定 Anthropic 的 API。

OpenCode 的策略很清楚:用安装渠道的广度对冲品牌认知的劣势。你可能没听过 OpenCode,但你的包管理器认识它。

开源 coding agent 的结构性优势

OpenCode 不是第一个开源 coding agent(之前有 Aider、Continue 等),但它代表了一个趋势:开源 coding agent 正在系统性地复制闭源产品的功能矩阵。

闭源 coding agent 的三个核心组件: 1. LLM 接入层:调用 GPT/Claude/Gemini API 2. 工具层:文件读写、代码执行、git 操作 3. 上下文管理层:codebase 索引、会话历史、任务跟踪

OpenCode 把这三层都开源了,这意味着:

  • LLM 接入层:你可以接入任何 provider,不被锁定在 Anthropic
  • 工具层:你可以审计工具调用的逻辑,确保安全
  • 上下文管理层:你可以自定义索引策略,适配你的 codebase
第三点尤其重要。Claude Code 的上下文管理是黑箱——你不知道它怎么选择哪些文件进入上下文。如果它选错了,你只能寄希望于重新提问。OpenCode 让你可以看到甚至修改这个逻辑。

多语言支持的隐藏信号

OpenCode 的 README 支持超过 20 种语言,包括中文、日文、韩文、阿拉伯文、孟加拉文、泰文、土耳其文、乌克兰文、希腊文、越南文。

这不是"国际化做得好"这么简单。这是一个开源项目在说:coding agent 不应该只有英语用户能用。

Claude Code 和 Cursor 都主要面向英语开发者。非英语开发者在用这些工具时,往往需要用英语提问,即使他们的 codebase 里有大量非英语注释和文档。OpenCode 的多语言支持意味着你可以用中文和它交互,它会理解你的 codebase 中的中文注释。

和 Claude Code 的关系

OpenCode 不是 Claude Code 的"盗版"。它更像是 Linux 之于 Unix:同一个设计理念,不同的实现路径,不同的治理模式。

Claude Code 是 Anthropic 的商业产品,它的优势是和 Claude 模型深度优化、有 Anthropic 的工程团队维护、有企业级支持。

OpenCode 的优势是开源、provider 无关、社区驱动。你可以在 OpenCode 里用 Claude,也可以用 GPT,也可以用本地的 Llama。

这两个产品会长期共存。Claude Code 适合不想折腾的企业用户,OpenCode 适合想要控制权的开发者。

一个更大的问题

OpenCode 的存在引出一个更深层的问题:coding agent 的核心价值到底在模型层还是在工程层?

如果 OpenCode 能用同样的 LLM 提供和 Claude Code 类似的体验,那 Claude Code 的溢价来自哪里?来自 Anthropic 的模型优化?来自更好的 prompt engineering?还是来自品牌信任?

这个问题目前没有答案。但 OpenCode 的存在让这个问题变得可验证——你可以用同一个 LLM,分别跑 Claude Code 和 OpenCode,比较输出质量。

这种可验证性本身就是开源最大的价值。


核心洞察:OpenCode 的 Build/Plan 双 agent 设计把执行和规划解耦成两个独立上下文窗口,这和人类开发团队的架构师/程序员分工一致。开源 coding agent 的结构性优势不在于"免费",而在于"可审计"——你能看到上下文管理的逻辑,能修改工具调用的行为,能接入任何 LLM provider。
暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens