---
id: "UaCKMBfgQw8"
title: "Dax Raad：OpenCode 为什么开源、如何赚钱，以及 AI 编程工具的下一步"
channel: "nunomaduro"
host: ["Nuno Maduro"]
guests: ["Dax Raad"]
date: "2026-01-20"
updated: "2026-07-29"
duration: "35:55"
duration_seconds: 2155
source_type: "youtube"
youtube: "https://www.youtube.com/watch?v=UaCKMBfgQw8"
canonical: "https://pod-exp.pages.dev/UaCKMBfgQw8/"
transcript_jsonl: "https://pod-exp.pages.dev/UaCKMBfgQw8/transcript.jsonl"
language: "zh-CN"
translation: true
translated_from: "en"
timestamp_precision: "block"
topics: ["人工智能","AI 编程","开源软件"]
series: ["OpenCode"]
---

# Dax Raad：OpenCode 为什么开源、如何赚钱，以及 AI 编程工具的下一步

> 中文译文，由英文原音字幕翻译整理，不是官方逐字稿；引用原话请核对英文原视频。说话人标签由整理者依上下文标注，带「未确认 / 未标注 / 不确定」等字样的标签不可靠。时间戳一般为块级（所在时间块的起点），不是逐句时间；正文自带 [hh:mm:ss] 的段落除外。

**内容提要：** OpenCode 是一个开源、模型供应商中立的 AI 编程代理。它借鉴 Claude Code 的终端工作流，却允许开发者接入不同模型 API、GitHub Copilot 或受支持的订阅账户，并把同一个可复用核心嵌入终端、桌面端、编辑器和未来的移动端。 Dax Raad 解释，OpenCode 的体验优势不仅来自模型，也来自团队从底层重做终端 UI 基础设施。OpenTUI 使用 Zig 实现布局、鼠标、合成、透明度与语法高亮，再通过 SolidJS 或 React 绑定构建界面。全屏 TUI 为原生审查页面和多代理编排留下空间，但滚动、选择与复制等原生行为也必须自行实现。 商业模式上，Dax 把开源公司称为需要两次奇迹的生意：先做出覆盖大量开发者的免费产品，再在其上建立企业愿意付费、且不削弱开源核心的独立控制平面。访谈还讨论了 Anthropic 的订阅限制、OpenCode Zen 与 Black、Dax 的模型工作流，以……

## [0:04] OpenCode 是什么，以及终端 UI 的差异

<https://pod-exp.pages.dev/UaCKMBfgQw8/#chapter-01> · YouTube <https://www.youtube.com/watch?v=UaCKMBfgQw8&t=4s>

**Nuno Maduro：** 欢迎回来。今天和我们一起的是 Dax Raad。感谢你来参加直播。

**Dax Raad：** 谢谢，这个开场很隆重。今天应该会很有意思。

**Nuno Maduro：** 对那些没有真正使用过代理编程、或者只远远看过 Claude Code CLI 的开发者，你会怎样解释 OpenCode？他们为什么值得试一试？

**Dax Raad：** OpenCode 是我们用大语言模型做编程实验的地方。这个概念当然不是我们发明的，已经有很多迭代；Claude Code 是目前最大、最流行的实现之一。它把代理放进一个简单的终端应用里：你给出任务，让代理工作，然后审查结果。

**Dax Raad：** 我们最初做的，基本就是 Claude Code 的开源版本。直到今天，我们仍会跟进它的很多功能，但主要区别有三个。

**Dax Raad：** 第一，OpenCode 是开源的。第二，它不锁定某个模型供应商。Claude Code 使用 Anthropic 模型，而 OpenCode 允许你使用任何能够访问的模型：直接购买 API、通过 GitHub Copilot，或者通过受支持的订阅入口。

**Dax Raad：** 第三，我们非常认真地打磨终端界面。终端能做的事情远比多数人想象得多，只是相关技术很冷门。现在的 OpenCode 只是地板，不是天花板，我们还有很多计划。

**Nuno Maduro：** 真正把我吸引到 OpenCode 的就是终端 UI。我本来就喜欢终端，也做过终端工具。使用 OpenCode 一个月后再回到 Claude Code CLI，会感觉像回到了过去。为什么一家资源更大的公司，终端体验反而没有你们好？

**Dax Raad：** 在 JavaScript 生态里，以前构建复杂终端应用最常见的选择是 Ink。它让开发者用 React 写组件，只是把渲染目标从网页换成终端。

**Dax Raad：** Ink 很有创造性，但我认为它最初更像概念验证。因为真正理解终端 UI 的人太少，它后来被很多产品采用，远远超出最初设计边界。随着用户、操作系统、终端类型和功能数量增加，性能与能力限制都会暴露出来。

**Dax Raad：** Claude Code 团队早期可能只是在快速验证想法，并不是有意选择一个长期基础。当产品突然增长到数百万用户，原本简单的框架就开始承受大型产品的重量。

## [5:00] OpenTUI 与开源商业模式

<https://pod-exp.pages.dev/UaCKMBfgQw8/#chapter-02> · YouTube <https://www.youtube.com/watch?v=UaCKMBfgQw8&t=300s>

**Dax Raad：** 我们选择了相反路线：一开始就投资构建尽可能强的终端框架，而不是先在受限框架上不断堆功能。

**Dax Raad：** 我们开发了 OpenTUI。它是一个 Zig 库，负责底层终端 UI 概念，包括布局引擎、鼠标点击、元素相交、合成、透明度和颜色混合。

**Dax Raad：** 浏览器里，人们已经习惯创建区块、安排布局、叠加对话框、做背景变暗和语法高亮。OpenTUI 把这些能力带到终端，再通过 React 或 SolidJS 绑定暴露给上层；OpenCode 自己使用 SolidJS 绑定。

**Dax Raad：** OpenTUI 主要由团队成员 Sebastian 维护。他在认识我们之前就开始做相关项目，后来我们相遇，决定完整资助这项工作。他非常出色。

**Nuno Maduro：** Claude Code 不是全屏 TUI。那种方式有没有自己的优势？

**Dax Raad：** 有。OpenCode 会接管整个屏幕，相当于绕过终端很多原生行为，所以滚动、文本选择、复制粘贴等功能都要自己重新实现，目前并非每一项都完美。

**Dax Raad：** Claude Code 主要把文本写进终端的 scrollback，原生滚动和复制更自然。代价是它很难做复杂屏幕、审查页面和高级交互。两种方案是不同权衡；我们的目标是逐渐接近原生体验，同时保留扩展空间。

**Nuno Maduro：** 很多人看见用户可以自己接 API，又知道 OpenCode 是开源的，就会问：你们怎样支付这些开发成本？谁在付账单？

**Dax Raad：** 开源商业模式经常被误解。很多人试着围绕开源成立公司，大多数会失败。有人把它叫作需要两次奇迹的生意。

**Dax Raad：** 第一次奇迹，是做出真正优秀、被大量人使用的开源产品。不能只有少量用户。既然选择开源，目标就应该覆盖整个市场。世界上有三千万到五千万开发者，没有理由阻止他们中的任何人至少尝试 OpenCode。

**Dax Raad：** 第二次奇迹，是在开源产品之上建立一个完全独立、有人愿意付费的产品。最危险的做法，是把开源核心中已有的功能移走、改成付费，或者故意削弱免费版本。那会逐渐杀死整个项目。

## [9:01] 企业控制平面、Anomaly 与 Zen

<https://pod-exp.pages.dev/UaCKMBfgQw8/#chapter-03> · YouTube <https://www.youtube.com/watch?v=UaCKMBfgQw8&t=541s>

**Dax Raad：** 对 OpenCode 来说，付费层很清楚。大型公司把 OpenCode 部署给一千名开发者以后，会遇到一组物流和治理问题。

**Dax Raad：** 企业不想给每位员工手工分发 Anthropic API Key，也不想在员工离职时逐一禁用，更不希望密钥泄露。他们需要一个控制平面：统一配置供应商凭据，接入内部 OAuth，并向终端用户发放临时凭据。

**Dax Raad：** 这个控制平面还可以设置预算，例如每人每月最多花五百美元；也可以查看使用分析、管理团队策略。我们会对这一层收费。产品已有一些早期客户，但还没有完全做完。

**Dax Raad：** 开源业务总会形成一座金字塔，不过是好的金字塔，不是骗局。底部是日常开发者，他们可能永远不向你付钱；顶部是企业，收入主要来自那里。

**Dax Raad：** 顶部能有多大，取决于底部有多大。一百万用户和三千万用户，会产生完全不同的企业机会。所以我们首先专注于把免费工具做得足够好、让尽可能多人采用。

**Dax Raad：** 这只是目前的主要模式。我们的推理服务收入也在增长，原本没打算靠它赚很多钱，但它开始产生利润，所以长期结构仍可能变化。

**Nuno Maduro：** 官网写着 Zen，GitHub 组织又叫 Anomaly。它们分别是什么？

**Dax Raad：** Anomaly 是公司的名字，不是刚成立的新团队。我们已经存在很久，也长期从事开源工作。OpenCode 是其中一个产品，因为增长很快，已经成为主要焦点。团队目前大约十个人。

**Dax Raad：** OpenCode 本体坚持自带供应商：你可以接入任何模型，自己配置，我们不要求用户使用特定服务。

**Dax Raad：** OpenCode Zen 是可选的开箱即用服务。对于不想分别注册 Anthropic、OpenAI、配置多组 Key 的用户，Zen 提供一个账户，接入多种主流编程模型，并尽量保持有竞争力的价格。

**Dax Raad：** 所以关系很简单：Anomaly 是团队，OpenCode 是开源产品，Zen 是可选的统一模型服务。

## [13:10] Anthropic 订阅限制与开放模型入口

<https://pod-exp.pages.dev/UaCKMBfgQw8/#chapter-04> · YouTube <https://www.youtube.com/watch?v=UaCKMBfgQw8&t=790s>

**Nuno Maduro：** Anthropic 最近增加了一些限制，影响 OpenCode 用户通过订阅使用 Claude。你认为这是直接针对 OpenCode，还是 OpenCode 只是副作用？

**Dax Raad：** Anthropic 推出过每月两百美元的 Max 订阅，额度非常慷慨，从纯推理成本看甚至有些不经济。OpenCode 很早就支持 OAuth 插件，因此有一个流行插件让用户用 Claude Max 订阅登录。

**Dax Raad：** 这一直不符合 Anthropic 的服务条款，并不是他们正式支持的方式。使用者也不是 OpenCode 用户的大多数，但当我们有约一百万活跃用户时，即使百分之十也是十万人。

**Dax Raad：** Anthropic 的商业漏斗是先用 Max 订阅推动 Claude Code，再让团队采用，最终卖企业合同。企业合同不只是订阅，还会包含席位和按量 token 计费。因此，如果用户拿 Max 去使用别的工具，就不符合他们原本的产品策略。

**Dax Raad：** 后来他们尝试阻止第三方客户端，最初看起来像通用限制，之后逐渐表现为针对 OpenCode 的识别。这里需要说清楚：这是他们的公司，他们可以执行自己的条款；从公司的角度，这并不邪恶。

**Dax Raad：** 同时，Dax 表示，按照他的理解，付费终端用户也可以选择如何访问服务并尝试绕过限制；公司则可以继续阻断。社区每次遇到阻断，很快就会找到绕过方式。因为 Anthropic 不能采用会让旧版 Claude Code 客户端全部失效的办法，所以这变成了猫鼠游戏。

**Dax Raad：** 我们早就预期会发生这种事，因为双方战略相反。Anthropic 更倾向于把模型和最终工具垂直整合；我们的理念是，用户不应该为了一个模型就把全部工作流绑定到某个工具上。

**Dax Raad：** 如果明天 OpenAI 或其他供应商给出更好的模型，用户应当能够切换，而不必重建整套工作流。模型会不断变化，因此 OpenCode 希望终端工具保持开放。

**Nuno Maduro：** 限制以后，我改成直接使用 API，两周大约花了五百美元。这个数字让我重新感受到订阅补贴与真实 API 成本之间的差异。

**Dax Raad：** 对，这正是问题的经济基础。用户会失望，但供应商也会重新评估这种补贴是否可持续。

## [17:43] 供应商支持、Black 与个人模型工作流

<https://pod-exp.pages.dev/UaCKMBfgQw8/#chapter-05> · YouTube <https://www.youtube.com/watch?v=UaCKMBfgQw8&t=1063s>

**Dax Raad：** 我们不是在限制发生后才临时行动。此前几个月，我们一直与其他模型供应商沟通，希望它们正式支持 OpenCode。GitHub 现在已经正式支持 OpenCode。

**Dax Raad：** Anthropic 在周四晚上采取限制后，我马上联系 OpenAI，告诉他们这是一个反向定位的机会：很多人会对 Anthropic 不满，如果 OpenAI 允许用户自由选择终端工具，会获得很大善意。

**Dax Raad：** OpenAI 行动很快，所以 ChatGPT Pro 订阅现在可以用于 OpenCode。我们也宣布了 GitLab 支持，还有几家大公司会在接下来几周正式支持。

**Dax Raad：** 市场定位因此很清楚：Anthropic 更像是在做全栈垂直整合，而其他供应商更愿意只提供模型，让用户选择最终工具。

**Nuno Maduro：** 换一个话题。最近你们推出了 OpenCode Black。它是什么，下一批账户什么时候开放？

**Dax Raad：** 我们看到 Anthropic 有二十、一百、两百美元的订阅档位，很想理解这些档位背后的真实用量：平均二十美元用户用多少推理？一百和两百美元用户又用多少？我们想知道能否提供相似方案。

**Dax Raad：** 我们无法匹配 Anthropic 对自家模型的成本优势，也没有它们的资本规模。但我们能提供不同价值：一个订阅同时使用 Claude、GPT 等多个模型。不同模型各有优势，我自己每天也会混合使用。

**Dax Raad：** Black 目前逐批开放，一方面受容量限制，另一方面需要收集真实使用分布，才能设置合理额度。节目当天会再开放一批，但这更像实验，不保证一定成为长期产品。

**Dax Raad：** 随着规模增加，我们可能拿到普通用户拿不到的批发折扣，这会改善经济性。但最终它仍是一个很基础的成本数学问题，也可能不可持续。

**Nuno Maduro：** 你开发 OpenCode，是否有复杂的规划模型、执行模型和多层子代理系统？你最常用什么模型？

**Dax Raad：** 没有。我常说自己发明了一块滑板，使用水平只是普通，其他人却拿它做出我都没想过的动作。虽然我开发 OpenCode，但我不是最疯狂的用户。

**Dax Raad：** 我的用法很原生、很简单。Opus 4.5 发布后，我大量使用它。它未必比上一代聪明很多，但更精致：更常做对的事情，不容易失控，错误率更低。

**Dax Raad：** 最近我在学习更好地使用 GPT-5.2 Codex。OpenAI 正式支持 OpenCode，也承诺提高速度；Codex 对我最大的缺点就是慢。等待时间较长，会鼓励用户同时开启更多任务。

## [22:16] 原生代码审查与多代理编排

<https://pod-exp.pages.dev/UaCKMBfgQw8/#chapter-06> · YouTube <https://www.youtube.com/watch?v=UaCKMBfgQw8&t=1336s>

**Dax Raad：** 我通常在 Opus 与 Codex 之间切换，偶尔并行，但大多数时候一次只运行一个代理。随着工具改进，我交给代理的任务规模在逐渐变大。

**Dax Raad：** 我也预计 2026 年会出现非常强的开源模型，届时工作流可能再次改变。这个市场竞争激烈，任何固定答案都不会维持太久。

**Nuno Maduro：** 还有什么尚未发布、可能很难实现，但你最想加入 OpenCode 的能力？

**Dax Raad：** 下一个主要功能是 Review 页面。现在常见流程是：给代理任务，让它运行，然后切到编辑器或 `git diff` 里检查变化。

**Dax Raad：** 我们希望在应用内部提供一个原生审查屏幕，集中展示本次会话修改了哪些文件、每个差异是什么。用户可以选择某段代码，直接把反馈送回模型，再提示它修改。

**Dax Raad：** 这个类别里的所有工具最终都需要类似能力，Cursor 已经有一些实现。OpenCode 会把它带进终端，而复杂全屏界面正是我们底层架构可以发挥的地方。

**Nuno Maduro：** 我当前就是左边放 OpenCode，右边放 GitHub 差异界面。我认为提示与审查会成为代理编程的默认 IDE：AI 生成代码，但人仍需要同时审查。

**Dax Raad：** 对。生成代码本身不是完整工作流，提示、执行、审查、反馈才是完整闭环。

**Dax Raad：** 我们也在开发 OpenCode Desktop，探索专门桌面应用应该是什么样。它不是编辑器，不允许你直接编辑文件，也不打算替代现有 IDE；它专注于把提示与审查循环做好。

**Dax Raad：** 下一代 OpenCode 核心还会编排不同环境中的代理。一个代理可以在 Git worktree 工作，另一个在远程沙箱，用户同时启动许多任务，再统一查看状态和审查结果。

**Dax Raad：** 桌面端可能出现一个协调屏幕：先规划工作，把任务分发给十个代理，观察它们运行，再逐一验证输出。这与 Cursor、传统编辑器或单纯的 GitHub 差异界面都不同。

**Dax Raad：** 并不是每个人都需要十个并行代理，但当亲手编辑文件不再是部分用户的首要动作时，新的图形界面会出现。

## [26:19] 产品扩展、未来判断与 AI 焦虑

<https://pod-exp.pages.dev/UaCKMBfgQw8/#chapter-07> · YouTube <https://www.youtube.com/watch?v=UaCKMBfgQw8&t=1579s>

**Nuno Maduro：** 如果终端里能有完整的审查体验，对我来说就已经接近生产力顶峰了。我们已经聊了二十六分钟，再问几个收尾问题：两年后，你希望 OpenCode 变成什么？

**Dax Raad：** 我希望它存在于所有合理形态：终端 TUI、桌面应用、移动端，以及更好的编辑器集成。现在的编辑器集成还不够好。

**Dax Raad：** OpenCode 本来就被设计成可嵌入组件。它有一个可复用核心，应当进入尽可能多的环境，而不是只存在于一个客户端里。

**Dax Raad：** 团队协作目前做得很少，未来要让多人、组织和共享策略的体验更完整。

**Dax Raad：** 另一个意外是 OpenCode SDK 已经有大量使用，而我们几乎没有投入。有人用它在 CI 里以编程方式调用 OpenCode、编排自动化流程。我们需要把 SDK 打磨成正式能力。

**Dax Raad：** 我们的范围很广，希望最终能覆盖这些使用方式。但我不知道两年后的编程究竟长什么样，也不想沉迷于预测所有工程师会发生什么。

**Dax Raad：** 我已经厌倦那类宏大讨论，只想一天一天做产品。至少 AI 让编程对我越来越有趣，这一点我很满意。

**Nuno Maduro：** 你提到移动端，让我想到一种画面：人在海滩遮阳伞下喝饮料，用手机给代理分配任务。听起来既酷又有点荒诞。

**Nuno Maduro：** 但我的时间线每天都被 AI 消息轰炸：OpenCode 又做了什么、ChatGPT 又做了什么、Claude Code 又增加了能力、新模型又更强，然后大家又说开发者完了。即使有稳定工作的人都会害怕，更不用说刚进入行业的初级开发者。

**Nuno Maduro：** 你会给他们什么建议？他们应该怎样适应，是否需要以不同方式学习？

**Dax Raad：** 我很难给确定建议，因为我会从自己的使用方式出发，而今天的初级开发者面对的是一个与我当年不同的世界。

**Dax Raad：** 不过，从我的工作看，有一整类事情没有变化。模型确实比几年前好得多，但我仍然要投入大量脑力判断：我们应该做什么，系统应该怎样构建。

**Dax Raad：** 有人说代码已经只是编译产物，AI 生成、AI 迭代，人只负责指挥功能，根本不必再看代码。我完全没有看到这种现实。

**Dax Raad：** AI 会制造巨大混乱，很少第一次就写出我完全想要的代码。如果每天继续往上堆，代码库会越来越差，而代理同样无法良好处理坏代码库。

## [30:23] 代码质量、代理偏好与初级开发者

<https://pod-exp.pages.dev/UaCKMBfgQw8/#chapter-08> · YouTube <https://www.youtube.com/watch?v=UaCKMBfgQw8&t=1823s>

**Dax Raad：** 让 AI 去修坏代码库，确实比自己钻进去修轻松一些；但更好的选择仍然是一开始就不要让代码库变坏。

**Dax Raad：** 历史上让代码可维护、可读、组织良好的原则并没有失效。人们经常把代理说成没有偏好，其实它显然有偏好。

**Dax Raad：** 对人类友好的项目结构，也对代理友好。你打开一个新项目，清楚的文件夹、可预测的命名和高层概念，会让你大致知道功能放在哪里。

**Dax Raad：** 代理的工作方式也类似：它会扫描文件系统、查看目录。文件组织越清楚，它越容易找到正确位置；增加新功能时，也越容易判断应该放在哪里。

**Dax Raad：** 因此，代码库质量不是已经不重要。我开始使用编程代理以后，反而更积极清理代码库。

**Dax Raad：** 过去，人类能够理解某段是历史实现，知道现在不再按旧方式写；旧代码没有彻底清理也勉强可以。但代理看见旧模式，会认为那就是范例，然后继续复制。

**Dax Raad：** 代码库越干净，代理表现越好，我也越能获得它的完整价值。

**Dax Raad：** 至于初级工程师，我不愿给太多确定建议，因为我当初有效的路径未必适合今天。但我个人仍认为，成为优秀程序员极其有价值。

**Dax Raad：** 我们团队能从 AI 获得很多收益，与大家本来就有不错的编程能力有关。能力越强，通常越能定义任务、检查结果并修复问题。

**Dax Raad：** 而且现在学习编程比过去容易。每个人都有一个随时可用的优秀导师，这是十年前没有的机会。所以 AI 不只是增加竞争，也降低了学习门槛。

**Nuno Maduro：** 我同意。现在代码质量甚至比以前更重要。如果项目有好的 starter kit 和清晰约定，AI 就会跟随；如果你先用正确方式写好一个功能，代理更可能用同样方式实现下一个。

**Nuno Maduro：** 类型覆盖、测试覆盖、严格类型等约束也会指导 AI 产出。这个结论对 PHP、JavaScript、TypeScript 或其他语言都成立。

**Dax Raad：** 对。代码质量不是过时概念，而是让代理稳定工作的基础设施。

**Nuno Maduro：** 最后做一个快问快答。必须立即选择，不能回答看情况或不知道。JavaScript 还是 TypeScript？

**Dax Raad：** TypeScript。

**Nuno Maduro：** Laravel 还是 Rails？

**Dax Raad：** Laravel。

**Nuno Maduro：** 从一到十，和 David Heinemeier Hansson 共事有多糟？十最糟，一最好。

**Dax Raad：** 七。

**Nuno Maduro：** Vercel 是否试图招募过你？

**Dax Raad：** 是。

**Nuno Maduro：** 最后一个问题。我刚给 OpenCode 提了一个 PR，加入 Laravel Pint 作为 PHP 格式化器。我发链接以后，你会直接合并吗？

## [34:37] 快问快答与收尾

<https://pod-exp.pages.dev/UaCKMBfgQw8/#chapter-09> · YouTube <https://www.youtube.com/watch?v=UaCKMBfgQw8&t=2077s>

**Dax Raad：** 会，我们会合并。

**Nuno Maduro：** 太好了。感谢所有观看直播的人。如果你喜欢这段对话，请点赞、订阅，也欢迎在评论里告诉我们你怎么看 OpenCode 和团队正在做的工作。

**Nuno Maduro：** Dax，今天聊得非常精彩，非常感谢。

**Dax Raad：** 好，我们结束了。

**Nuno Maduro：** 我先暂停一下，马上回来。这次访谈真的很好。Dax 太厉害了。
