Back

OpenCode:终端优先的 AI 编码代理

OpenCode:终端优先的 AI 编码代理

当今大多数 AI 编码工具都是 IDE 扩展或订阅包装产品,将模型成本捆绑到月费中。OpenCode 采用了不同的方法:它是一个开源编码代理,在终端中运行,连接到您已经使用的模型和提供商,并且不会妨碍您的工作。

本文将解释 OpenCode 是什么,它如何融入现代开发工作流程,以及为什么值得将其作为 CLI 编码助手来考虑。

核心要点

  • OpenCode 是一个开源的、终端优先的 AI 编码代理,同时也提供桌面和 IDE 界面。
  • 它支持多个 AI 提供商(Anthropic、OpenAI、Gemini、Bedrock 等),让您只为实际使用付费。
  • 内置工具允许代理读取、写入和编辑文件,运行 shell 命令,以及显示 LSP 诊断信息。
  • Plan 和 Build 模式在代理修改任何文件之前为您提供审查步骤。
  • 通过 LSP、MCP 和自定义命令的可扩展性使其能够适应各种工具链和工作流程。

“终端优先”在实践中的含义

终端优先并不意味着仅限终端。OpenCode 提供基于终端的 TUI(终端用户界面)、桌面应用程序和 IDE 扩展。但终端才是它设计时最适合的环境。

在实践中,终端界面避免了典型的桌面开销,直接在您的 shell 中运行,不需要单独的 GUI 即可开始使用。您打开项目目录,运行 opencode,就进入了一个完整的交互式编码会话。TUI 专为键盘驱动的工作流程而构建——会话、模型切换、文件上下文和命令都可以在不离开键盘的情况下访问。

对于已经习惯在终端工作的开发者来说,这是一个自然的选择。对于那些更喜欢 GUI 的人,桌面和 IDE 选项也随时可用。

OpenCode AI 代理的核心能力

OpenCode 不仅仅是一个聊天界面。AI 代理可以在会话期间访问一组内置工具:

  • 文件操作:直接读取、写入、编辑和修补文件
  • Shell 执行:在您配置的 shell 中运行命令
  • 搜索:grep 文件内容、glob 模式、列出目录
  • 代码智能:通过 LSP 集成导航定义、引用和符号

这意味着您可以要求 OpenCode 添加一个功能,它会读取相关文件,进行更改,并运行构建检查——无需您手动来回复制代码。

Plan 模式 vs. Build 模式

更实用的功能之一是 Plan 和 Build 模式之间的区别。在 Plan 模式下,OpenCode 在触碰任何文件之前起草它打算做什么。您审查计划,提供反馈,然后才切换到 Build 模式执行。这种两步方法减少了不必要的更改,并让您对代理的操作有实质性的控制。

多会话工作流程

OpenCode 在本地持久化会话,因此您可以在对话之间切换并从上次中断的地方继续。您可以在会话之间切换,通过 /share 与团队成员共享会话链接,并从上次中断的地方继续。共享会话是选择性加入的——默认情况下不会共享任何内容。

灵活的模型和提供商支持

OpenCode 连接到广泛的 AI 提供商:Anthropic、OpenAI、Google Gemini、AWS Bedrock、Groq、Azure OpenAI、OpenRouter 等。它还通过本地端点支持自托管模型,如果您已经设置了 GitHub Copilot,也可以使用它。

您可以通过环境变量或本地 .opencode.json 文件配置提供商。API 密钥保存在您的机器上。您用于繁重推理任务的模型可以与用于日常清理的模型不同,并且您可以即时切换模型而无需重启。

这种灵活性是 OpenCode 与基于订阅的 AI 开发工具之间最明显的区别之一:您只为实际使用付费,使用您选择的提供商。

可扩展性:LSP、MCP 和自定义命令

OpenCode 与 Language Server Protocol 集成,使代理能够访问来自您的语言工具链的真实诊断信息。配置 goplstypescript-language-server 或任何兼容 LSP 的服务器,代理就可以检查错误并根据实际编译器输出提供修复建议。

为了实现更广泛的可扩展性,OpenCode 支持 Model Context Protocol (MCP),这是一个用于将 AI 代理连接到外部工具和服务的标准。MCP 服务器可以添加到您的配置中,它们的工具会自动对代理可用。

自定义命令允许您将可重用的提示定义为 Markdown 文件——按用户或按项目存储——带有命名参数占位符。像 project:prime-context 这样的命令可以运行 git ls-files,读取您的 README,并一步设置代理的上下文。

OpenCode 的定位

AI 开发工具的格局大致分为两类:与编辑器并行工作的 IDE 集成助手,以及在代码库上更自主运行的 CLI 代理。OpenCode 坚定地属于第二类,并在需要时增加了 GUI 选项的灵活性。

结论

OpenCode 为订阅锁定的 AI 编码助手提供了一个务实的替代方案。通过在终端中运行,支持自带提供商配置,并通过 LSP、MCP 和自定义命令暴露可扩展性,它让开发者直接控制 AI 如何以及在哪里融入他们的工作流程。如果您跨多个项目工作,更喜欢配置自己的工具链,或者想要一个可以检查和扩展的开源编码代理,OpenCode 值得仔细研究。从 opencode.ai 开始,在您的第一个项目中运行 /init,看看它在编写第一行代码之前如何读取您的代码库。

常见问题

不需要。OpenCode 是开源的,不需要订阅或账户。您使用自己的 API 密钥,来自 Anthropic、OpenAI 或 Google Gemini 等提供商,并根据使用量直接向这些提供商付费。密钥存储在您的本地机器上。

可以。OpenCode 通过本地端点配置支持自托管模型。如果您在自己的基础设施上运行兼容的模型服务器,可以将 OpenCode 指向它,并像使用云提供商一样使用它。

Plan 模式让代理概述它打算进行的更改,而不修改任何文件。您首先审查计划并提供反馈。然后 Build 模式执行已批准的更改。这种两步工作流程为您提供控制权,并降低不必要编辑的风险。

MCP 是一个标准,允许 AI 代理连接到外部工具和数据源。您将 MCP 服务器添加到 OpenCode 配置中,它们的功能会在会话期间自动对代理可用,扩展代理在其内置工具之外的能力。

Understand every bug

Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay