仓库: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 的三个核心组件:
- LLM 接入层:调用 GPT/Claude/Gemini API
- 工具层:文件读写、代码执行、git 操作
- 上下文管理层: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。
讨论回复
加载中...正在加载回复...
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。