OpenCode 深度解析:160K Stars 的开源 AI 编程 Agent 如何用 LSP 感知 + 多会话并行 + 75+ 模型支持重新定义终端编程体验——从架构设计到生产级工作流的完整实战指南
引言:终端编程的第二春
2026年,AI 编程工具的战场已经从「谁的代码补全更快」演进到「谁能真正理解整个代码库」。在这个赛道上,Claude Code 凭借 Anthropic 的模型优势占据高端市场,Gemini CLI 以 Google 的百万上下文窗口吸引眼球,而 OpenCode 则走出了一条完全不同的路——开源、免费、模型无关、终端优先。
截至2026年7月,OpenCode 在 GitHub 上已经积累了超过 160,000 Stars,拥有 900+ 贡献者 和 13,000+ 提交,每月被超过 750万开发者 使用。这些数字背后,是一个真正由社区驱动的开源奇迹。
但数字只是表面。OpenCode 真正让人兴奋的,是它在技术架构上做出的一系列大胆选择:用 LSP(Language Server Protocol)给 AI 装上「代码智能感知」,用多会话并行让多个 Agent 同时工作,用 Zen 网关解决模型选择焦虑,以及用 Plan/Build 双模式工作流把「想清楚」和「写代码」彻底分离。
本文将从架构设计、核心功能、工具系统、模型生态、实战工作流五个维度,深度解析 OpenCode 的技术实现,并附带完整的代码示例和性能优化建议。
一、项目背景与定位
1.1 从 SST 到 Anomaly:一个开源项目的进化
OpenCode 最初由 SST(Serverless Stack)团队创建,后由 Anomaly 公司接手维护。SST 团队在构建无服务器框架的过程中,深刻体会到开发者在终端中编写和调试代码的痛点——频繁切换窗口、上下文丢失、AI 工具与终端割裂。
OpenCode 的核心理念可以用一句话概括:让 AI 编程助手住在终端里,而不是住在浏览器里。
与 Claude Code(闭源、绑定 Anthropic 模型)、Gemini CLI(绑定 Google 模型)不同,OpenCode 从第一天起就是模型无关的。它支持 75+ 个 LLM 提供商,包括 OpenAI、Anthropic、Google、DeepSeek、Qwen、GLM 等几乎所有主流模型,甚至支持本地运行的 Ollama 模型。
1.2 为什么选择终端?
终端是开发者最熟悉的工作环境。一个优秀的终端 AI 编程助手应该:
- 零上下文切换:不需要离开终端去浏览器或 IDE
- 脚本化能力:可以被 shell 脚本调用,集成到 CI/CD 流水线
- 远程友好:在 SSH 会话中无缝工作
- 资源轻量:不需要启动一个 Electron 应用
OpenCode 正是围绕这些原则设计的。它的 TUI(终端用户界面)基于 Go 语言的 Bubble Tea 框架构建,提供了丰富的交互体验,同时保持了终端工具的轻量级特性。
二、架构设计深度剖析
2.1 整体架构
OpenCode 的架构可以分为四层:
┌─────────────────────────────────────────────┐
│ 接入层 (Access Layer) │
│ TUI │ Desktop App │ IDE Extension │ CLI │
├─────────────────────────────────────────────┤
│ 编排层 (Orchestration Layer) │
│ Agent Manager │ Session Router │ Context │
├─────────────────────────────────────────────┤
│ 工具层 (Tools Layer) │
│ bash │ edit │ read │ grep │ glob │ LSP │
│ apply_patch │ skill │ webfetch │ MCP │
├─────────────────────────────────────────────┤
│ 模型层 (Provider Layer) │
│ Zen Gateway │ 75+ Providers │ Local Models │
└─────────────────────────────────────────────┘
2.2 TUI 层:Bubble Tea 的精妙运用
OpenCode 的终端界面基于 Go 语言的 Bubble Tea 框架构建。Bubble Tea 采用 Elm 架构(Model-Update-View),是一种函数式的 TUI 框架。
选择 Bubble Tea 而不是更常见的 ncurses 或 tcell,有几个关键考量:
- 声明式 UI:Bubble Tea 的 Model-Update-View 模式让 UI 状态管理变得清晰
- 高性能渲染:基于 termenv 的高效终端渲染,支持真彩色和 Unicode
- 跨平台一致性:在 macOS、Linux、Windows(WSL)上提供一致的体验
TUI 层的核心职责包括:
- 消息展示:以 Markdown 格式渲染 AI 的回复,支持代码高亮
- 文件拖拽:支持将图片拖入终端作为上下文
- 多面板布局:会话列表、主对话区、文件预览区的灵活切换
- 快捷键系统:可自定义的键盘快捷键
2.3 Agent 编排层:Plan 与 Build 的双模式设计
这是 OpenCode 最有特色的设计之一。与大多数 AI 编程工具只有一个「全能 Agent」不同,OpenCode 内置了两种主 Agent 和三种子 Agent:
主 Agent(Primary Agents):
| Agent | 模式 | 权限 | 用途 |
|---|---|---|---|
| Build | 主 Agent | 全部工具可用 | 日常开发,修改代码 |
| Plan | 主 Agent | 文件编辑和 bash 需要审批 | 分析代码,制定方案 |
子 Agent(Subagents):
| Agent | 模式 | 权限 | 用途 |
|---|---|---|---|
| General | 子 Agent | 全部工具(除 todo) | 复杂问题研究,多步骤任务 |
| Explore | 子 Agent | 只读 | 快速搜索代码库 |
| Scout | 子 Agent | 只读 | 外部文档和依赖研究 |
这种设计的核心思想是关注点分离:
用户需求
│
├─ "我想了解这段代码" → Plan Agent (只读分析)
│
├─ "帮我实现这个功能" → Build Agent (修改代码)
│
├─ "搜索一下项目中的错误处理" → @explore 子Agent
│
└─ "查一下这个库的最新文档" → @scout 子Agent
Plan Agent 的设计理念尤其值得注意。当你切换到 Plan 模式时,Agent 的所有文件编辑和 bash 命令都需要用户审批。这意味着你可以放心地让 AI 分析你的代码库、提出重构建议,而不用担心它会意外修改文件。
2.4 工具系统:内置 14 种核心工具
OpenCode 的工具系统是其核心能力的体现。内置了 14 种工具,覆盖了编程工作流的方方面面:
文件操作工具:
// read - 读取文件内容,支持行范围
// 用法:读取 src/index.ts 的第 10-50 行
read({ path: "src/index.ts", offset: 10, limit: 40 })
// write - 创建新文件或覆盖已有文件
write({ path: "src/utils.ts", content: "export function ..." })
// edit - 精确文本替换(最常用的修改方式)
edit({
path: "src/index.ts",
oldText: "const old = 'value'",
newText: "const new = 'value'"
})
// apply_patch - 应用补丁文件
apply_patch({
patchText: "*** Update File: src/index.ts\n--- a/src/index.ts\n+++ b/src/index.ts\n@@ -1,3 +1,3 @@\n- old line\n+ new line"
})
搜索工具:
// grep - 正则表达式搜索文件内容
grep({ pattern: "function\\s+handleError", include: "*.ts" })
// glob - 按模式查找文件
glob({ pattern: "src/**/*.test.ts" })
系统工具:
// bash - 执行 shell 命令
bash({ command: "npm test" })
// webfetch - 获取网页内容
webfetch({ url: "https://docs.example.com/api" })
// websearch - 搜索互联网(需要 OpenCode 或 Exa AI)
websearch({ query: "TypeScript 6.0 new features" })
智能工具:
// lsp - 实验性 LSP 集成(代码智能感知)
lsp({
method: "goToDefinition",
params: { textDocument: { uri: "..." }, position: { line: 42, character: 10 } }
})
// skill - 加载技能文件
skill({ name: "testing" })
// todowrite - 管理任务列表
todowrite({ todos: [
{ content: "实现用户认证", status: "in_progress", priority: "high" },
{ content: "添加单元测试", status: "pending", priority: "medium" }
]})
// question - 向用户提问
question({
question: "你想使用哪种数据库?",
header: "数据库选择",
options: ["PostgreSQL", "MySQL", "SQLite"]
})
2.5 LSP 集成:给 AI 装上「代码智能」
这是 OpenCode 最具技术深度的特性之一。传统的 AI 编程工具通过读取文件内容来理解代码,但这种方式缺少类型信息、引用关系、定义跳转等「代码智能」。
OpenCode 通过集成 LSP(Language Server Protocol),让 AI 能够像 IDE 一样理解代码:
// AI 可以通过 LSP 工具执行以下操作:
// 1. 跳转到定义
lsp({ method: "goToDefinition", params: { ... } })
// 2. 查找所有引用
lsp({ method: "findReferences", params: { ... } })
// 3. 悬停查看类型信息
lsp({ method: "hover", params: { ... } })
// 4. 文档符号
lsp({ method: "documentSymbol", params: { ... } })
// 5. 工作区符号搜索
lsp({ method: "workspaceSymbol", params: { ... } })
// 6. 跳转到实现
lsp({ method: "goToImplementation", params: { ... } })
// 7. 调用层次分析
lsp({ method: "prepareCallHierarchy", params: { ... } })
lsp({ method: "incomingCalls", params: { ... } })
lsp({ method: "outgoingCalls", params: { ... } })
LSP 工具目前标记为实验性,需要通过环境变量启用:
OPENCODE_EXPERIMENTAL_LSP_TOOL=true opencode
配置 LSP 服务器也很简单。以 TypeScript 项目为例:
{
"lsp": {
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"],
"filetypes": [".ts", ".tsx", ".js", ".jsx"]
}
}
}
当 AI 分析代码时,它会自动调用 LSP 来获取:
- 精确的类型定义(而不是靠猜)
- 完整的引用链(知道谁在用这个函数)
- 调用层次(知道这个函数调用了什么,又被谁调用)
这让 AI 的代码理解能力从「文本匹配」提升到了「语义理解」的层次。
三、模型生态与 Zen 网关
3.1 75+ 模型提供商支持
OpenCode 通过 Models.dev 协议支持 75+ 个 LLM 提供商。这意味着你几乎可以使用任何主流的 AI 模型:
{
"provider": {
"openai": {
"apiKey": "{env:OPENAI_API_KEY}"
},
"anthropic": {
"apiKey": "{env:ANTHROPIC_API_KEY}"
},
"google": {
"apiKey": "{env:GOOGLE_API_KEY}"
},
"deepseek": {
"apiKey": "{env:DEEPSEEK_API_KEY}"
}
}
}
更强大的是,你可以同时配置多个提供商,然后在会话中随时切换模型:
# 在 TUI 中切换模型
/models
# 或者使用快捷键
Ctrl+M
3.2 Zen 网关:模型选择焦虑的解药
面对 75+ 个提供商和数百个模型,开发者最大的痛点不是「能不能用」,而是「该用哪个」。OpenCode Zen 就是为了解决这个问题而生的。
Zen 是 OpenCode 团队提供的一个 AI 网关,它做了三件事:
- 测试筛选:团队测试了大量模型,筛选出在编程 Agent 场景下表现最好的
- 性能调优:与模型提供商合作,确保模型以最佳配置运行
- 统一定价:通过 Zen 网关统一计费,不需要分别管理多个 API Key
Zen 支持的模型包括:
| 类别 | 模型 | 特点 |
|---|---|---|
| OpenAI | GPT-5.5, GPT-5.5 Pro, GPT-5.4, GPT-5.3 Codex | 编程能力最强 |
| Anthropic | Claude Fable 5, Claude Opus 4.8, Claude Sonnet 5 | 长上下文推理 |
| Gemini 3.5 Flash, Gemini 3.1 Pro | 多模态支持 | |
| DeepSeek | DeepSeek V4 Pro, DeepSeek V4 Flash | 高性价比 |
| Qwen | Qwen3.7 Max, Qwen3.6 Plus | 中文优化 |
| GLM | GLM 5.2, GLM 5.1 | 国产替代 |
| MiniMax | MiniMax M3, M2.7, M2.5 | 新兴力量 |
使用 Zen 非常简单:
# 1. 在 TUI 中连接 Zen
/connect
# 选择 opencode,然后去 opencode.ai/auth 获取 API Key
# 2. 查看推荐模型
/models
# 3. 选择模型开始使用
3.3 GitHub Copilot 和 ChatGPT Plus 集成
一个特别贴心的功能是,OpenCode 支持直接使用你已有的 GitHub Copilot 或 ChatGPT Plus/Pro 订阅:
# 使用 GitHub Copilot 账号登录
/connect
# 选择 github
# 使用 ChatGPT Plus/Pro 账号登录
/connect
# 选择 openai
这意味着如果你已经在为 GitHub Copilot 付费,不需要额外购买 API Key 就能使用 OpenCode。
四、MCP 协议与工具扩展
4.1 MCP 简介
MCP(Model Context Protocol)是一个开放协议,允许 AI 应用与外部工具和数据源进行标准化通信。OpenCode 完整支持 MCP 协议,这意味着你可以接入数百个现成的 MCP 服务器来扩展 AI 的能力。
4.2 本地 MCP 服务器
在 opencode.json 中配置本地 MCP 服务器:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"github": {
"type": "local",
"command": ["npx", "-y", "@modelcontextprotocol/server-github"],
"environment": {
"GITHUB_TOKEN": "{env:GITHUB_TOKEN}"
},
"enabled": true
},
"filesystem": {
"type": "local",
"command": ["npx", "-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"],
"enabled": true
}
}
}
4.3 远程 MCP 服务器
远程 MCP 服务器通过 HTTP 连接,支持 OAuth 认证:
{
"mcp": {
"sentry": {
"type": "remote",
"url": "https://mcp.sentry.dev/sse",
"enabled": true
},
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp",
"enabled": true
}
}
}
4.4 OAuth 自动认证
OpenCode 支持 MCP 服务器的 OAuth 自动认证流程:
- 当检测到 401 响应时,自动发起 OAuth 流程
- 支持 Dynamic Client Registration(RFC 7591)
- Token 安全存储在
~/.local/share/opencode/mcp-auth.json
# 手动触发认证
opencode mcp auth my-oauth-server
# 查看所有 MCP 服务器的认证状态
opencode mcp list
# 删除存储的凭证
opencode mcp logout my-oauth-server
4.5 MCP 使用注意事项
MCP 工具会增加上下文的 token 消耗。某些 MCP 服务器(如 GitHub MCP)会添加大量 token,容易超出上下文限制。建议:
- 只启用你真正需要的 MCP 服务器
- 对于 token 消耗大的服务器,使用
enabled: false默认禁用,需要时再启用 - 定期检查上下文使用情况
五、Agent 技能系统
5.1 技能文件(SKILL.md)
OpenCode 支持通过 SKILL.md 文件定义可复用的技能。技能是一种模块化的能力扩展机制,类似于给 AI 安装「插件」。
一个典型的 SKILL.md 文件结构:
# 测试技能
## 概述
为项目生成完整的单元测试。
## 使用方法
1. 分析目标函数的输入输出
2. 生成边界条件测试用例
3. 生成错误处理测试用例
4. 使用项目的测试框架编写测试
## 规则
- 测试文件命名为 *.test.ts
- 每个测试用例只测试一个行为
- 使用 describe/it 组织测试结构
5.2 自定义工具
除了内置工具和 MCP 工具,OpenCode 还支持在配置文件中定义自定义工具:
{
"customTools": {
"deploy": {
"description": "部署项目到生产环境",
"parameters": {
"type": "object",
"properties": {
"environment": {
"type": "string",
"enum": ["staging", "production"]
}
},
"required": ["environment"]
},
"handler": "scripts/deploy.sh"
}
}
}
六、多会话与协作
6.1 多会话并行
OpenCode 支持在同一个项目中启动多个并行会话。每个会话有独立的上下文和历史记录,可以同时处理不同的任务:
# 终端1:实现新功能
opencode
> 帮我实现用户认证模块
# 终端2:修复 bug
opencode
> 修复登录页面的样式问题
# 终端3:写文档
opencode
> 为 API 接口生成文档
6.2 会话分享
OpenCode 的一个独特功能是会话分享。你可以生成一个链接,让团队成员查看你的对话历史:
# 在 TUI 中分享当前会话
/share
# 会生成类似 https://opencode.ai/s/4XP1fce5 的链接
这在以下场景特别有用:
- 代码评审:分享你与 AI 的对话,让 reviewer 了解你的思路
- 知识传递:新成员可以通过查看历史对话学习项目
- 调试协作:分享调试过程,让同事帮你分析
6.3 GitHub 和 GitLab 集成
OpenCode 深度集成了 GitHub 和 GitLab:
- 自动 PR 评审:分析 Pull Request 的变更
- Issue 理解:读取 Issue 描述并理解需求
- CI/CD 集成:在 CI 流水线中作为自动化 Agent 运行
七、权限与安全
7.1 权限系统
OpenCode 提供了细粒度的权限控制:
{
"permission": {
"edit": "allow", // 允许文件编辑
"bash": "ask", // bash 命令需要审批
"webfetch": "allow", // 允许网页获取
"websearch": "deny", // 禁止网络搜索
"mymcp_*": "ask" // MCP 工具需要审批
}
}
权限值说明:
allow:允许执行,无需确认ask:每次执行前需要用户确认deny:禁止执行
7.2 策略系统
对于企业用户,OpenCode 支持策略(Policies)系统,可以强制执行组织级别的安全规则:
- 禁止访问特定目录
- 限制可执行的命令
- 强制代码审查流程
7.3 隐私优先
OpenCode 的一个核心设计原则是隐私优先:
- 不存储任何代码或上下文数据
- 所有处理在本地完成
- 支持在隐私敏感环境中使用
- 企业版支持私有化部署
八、实战工作流
8.1 工作流一:新功能开发(Plan + Build)
这是 OpenCode 最推荐的工作流:
# 第一步:切换到 Plan 模式
# 按 Tab 键切换到 Plan Agent
# 第二步:描述需求
> 我想给应用添加一个通知系统。要求:
> 1. 支持邮件和站内通知
> 2. 用户可以配置通知偏好
> 3. 通知内容支持模板
# AI 会分析代码库并给出实现方案,但不会修改任何文件
# 第三步:Review 方案,提供反馈
> 方案不错,但我希望用 WebSocket 实现实时通知,而不是轮询
# 第四步:切换到 Build 模式
# 按 Tab 键切换到 Build Agent
# 第五步:开始实现
> 按照上面的方案开始实现
8.2 工作流二:代码重构
# 使用 @ 引用特定文件
> 帮我重构 @packages/functions/src/api/index.ts
>
> 当前问题:
> 1. 函数太长,超过 200 行
> 2. 错误处理不统一
> 3. 缺少类型定义
>
> 重构要求:
> 1. 拆分为多个小函数
> 2. 统一使用 AppError 类
> 3. 添加完整的 TypeScript 类型
# 如果结果不满意,使用 /undo 回退
/undo
# 调整需求后重新尝试
> 拆分时请保持原有的 API 接口不变,只重构内部实现
8.3 工作流三:Bug 调试
# 先用 Explore 子Agent 搜索相关代码
@explore 搜索所有与用户认证相关的代码
# 然后用 Plan 模式分析问题
> 用户报告登录后会话偶尔会丢失,帮我分析可能的原因
# 切换到 Build 模式修复
> 根据分析结果,修复会话丢失的问题
8.4 工作流四:文档生成
# 使用 Scout 子Agent 研究文档标准
@scout 查一下 JSDoc 的最佳实践
# 然后生成文档
> 为 @src/utils/ 目录下的所有工具函数生成 JSDoc 文档
> 要求:
> 1. 包含参数说明和返回值说明
> 2. 包含使用示例
> 3. 标注可能抛出的异常
九、性能优化与最佳实践
9.1 上下文管理
上下文窗口是 AI 编程工具最宝贵的资源。OpenCode 提供了多种机制来优化上下文使用:
- 按需加载:使用
@引用特定文件,而不是让 AI 自己搜索 - 子 Agent 委托:将搜索和研究任务委托给 Explore/Scout 子Agent
- 上下文压缩:当上下文过长时,OpenCode 会自动压缩历史对话
# 好的做法:精确引用
> 修改 @src/api/users.ts 中的 getUser 函数
# 不好的做法:模糊描述
> 修改获取用户的那个函数
9.2 模型选择策略
根据任务类型选择合适的模型:
| 任务类型 | 推荐模型 | 原因 |
|---|---|---|
| 复杂重构 | Claude Fable 5 | 长上下文推理能力强 |
| 快速补全 | GPT-5.4 Mini | 响应速度快 |
| 代码审查 | Claude Opus 4.8 | 细节分析准确 |
| 文档生成 | GPT-5.3 Codex | 代码理解能力强 |
| 日常开发 | DeepSeek V4 Flash | 性价比高 |
9.3 快捷键提升效率
掌握常用快捷键可以大幅提升效率:
| 快捷键 | 功能 |
|---|---|
Tab | 切换主 Agent(Build/Plan) |
@ | 模糊搜索并引用文件 |
/ | 打开命令面板 |
Ctrl+C | 取消当前操作 |
Ctrl+L | 清屏 |
Ctrl+M | 切换模型 |
9.4 配置文件最佳实践
推荐的项目级 opencode.json 配置:
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "allow",
"bash": "ask",
"webfetch": "allow"
},
"lsp": {
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"],
"filetypes": [".ts", ".tsx"]
}
},
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp",
"enabled": true
}
}
}
十、与竞品对比
10.1 OpenCode vs Claude Code
| 维度 | OpenCode | Claude Code |
|---|---|---|
| 开源 | MIT 开源 | 闭源 |
| 模型支持 | 75+ 提供商 | 仅 Anthropic |
| 价格 | 免费(自带 API Key) | 订阅制 |
| LSP 集成 | 支持 | 不支持 |
| 多会话 | 支持 | 有限支持 |
| 会话分享 | 支持 | 不支持 |
| TUI 体验 | Bubble Tea,丰富 | 较简单 |
10.2 OpenCode vs Gemini CLI
| 维度 | OpenCode | Gemini CLI |
|---|---|---|
| 开源 | MIT 开源 | Apache 2.0 |
| 模型支持 | 75+ 提供商 | 仅 Google |
| 上下文窗口 | 取决于模型 | 100万 token |
| Agent 系统 | 5种内置 Agent | 基础 Agent |
| 工具系统 | 14种内置 + MCP | MCP 支持 |
| 联网搜索 | Exa AI | Google Search |
10.3 OpenCode vs Codex CLI
| 维度 | OpenCode | Codex CLI |
|---|---|---|
| 开源 | MIT 开源 | Apache 2.0 |
| 模型支持 | 75+ 提供商 | 仅 OpenAI |
| TUI 体验 | 丰富 | 简洁 |
| Agent 系统 | Plan/Build 双模式 | 单一模式 |
| 企业功能 | 策略、权限 | 有限 |
十一、未来展望
11.1 Desktop App 和 IDE 扩展
OpenCode 正在从纯终端工具向全平台发展:
- Desktop App:macOS、Windows、Linux 的原生桌面应用(Beta 阶段)
- IDE 扩展:VS Code 等 IDE 的插件版本
- Web 版本:浏览器中运行的版本
11.2 SDK 和插件生态
OpenCode 提供了 SDK,允许开发者:
- 构建自定义工具
- 开发插件扩展
- 集成到自己的产品中
11.3 企业版功能
对于企业用户,OpenCode 提供了:
- 私有化部署
- 团队管理和权限控制
- 审计日志
- 合规性支持
总结
OpenCode 不是又一个 AI 编程助手。它是一个重新思考「AI 应该如何融入开发者工作流」的开源项目。
它的核心创新在于:
- 模型无关:不绑定任何特定的 AI 提供商,让开发者自由选择
- LSP 感知:通过 Language Server Protocol 给 AI 装上「代码智能」
- Plan/Build 双模式:把「想清楚」和「写代码」分离,减少错误
- 多会话并行:让多个 Agent 同时处理不同任务
- 隐私优先:不存储任何代码数据,适合企业环境
在 AI 编程工具百花齐放的2026年,OpenCode 用160K Stars 证明了一件事:开源、开放、模型无关的 AI 编程工具有巨大的市场需求。 开发者不想被锁定在某个特定的 AI 提供商生态中,他们想要的是一个能够适应自己工作流的工具,而不是一个要求自己改变工作流的工具。
如果你还没有尝试过 OpenCode,现在就是最好的时机。一行命令即可安装:
curl -fsSL https://opencode.ai/install | bash
终端里的 AI 编程革命,已经开始了。
本文基于 OpenCode v1.17.13 版本撰写,功能可能随版本更新而变化。完整文档请访问 opencode.ai/docs。