OpenCode
支持终端、桌面和 IDE 的开源 AI 编码代理。
项目概述
OpenCode 提供交互式终端界面、桌面应用、IDE 集成和可编程服务,可连接多家模型提供商,并通过 Agent、权限、MCP、LSP 和插件适配不同开发流程。
OpenCode 是采用 MIT 许可证的开源 AI 编码代理,可在终端、桌面应用或 IDE 中使用。它以客户端—服务端架构组织会话、文件、工具和模型调用:直接运行 opencode 会启动 TUI 与本地服务,也可以使用 run 命令完成非交互任务,或通过独立 HTTP Server 和 SDK 接入自有应用。OpenCode 使用 AI SDK 与 Models.dev 支持 75+ 模型提供商及本地模型,并提供 Build、Plan、Subagent、权限规则、MCP、LSP、Formatter、自定义命令和插件等能力。
主要特点
OpenCode 将编码 Agent、模型选择、权限控制和开发工具集成集中到一个可扩展的本地工作环境中。
多界面编码 Agent
同一套能力可通过交互式 TUI、桌面应用、IDE 扩展和 Web 界面使用,适配终端优先与图形界面工作流。
75+ 模型提供商
借助 AI SDK 与 Models.dev 连接主流云模型、OpenAI 兼容服务和本地模型,可配置 Base URL、模型白名单与黑名单。
Build、Plan 与 Subagent
内置可编辑项目的 Build Agent、默认只读的 Plan Agent,以及用于搜索和多步骤任务的 Subagent;也能创建自定义 Agent。
细粒度权限规则
可针对读取、编辑、Shell、外部目录、网络和 Subagent 等动作设置 allow、ask 或 deny,并用模式规则限制具体命令与路径。
开发工具上下文
集成 LSP、Formatter、文件搜索、Git 状态和项目规则,让 Agent 获取符号、诊断、格式化结果与仓库上下文。
MCP、插件与自定义工具
支持本地和远程 MCP Server,也可通过插件与 TypeScript 自定义工具扩展数据源、业务 API 和工作流能力。
可复用 Agent 与命令
可在全局或项目目录中用 Markdown 或 JSON 定义 Agent、Slash Command、Prompt、模型和权限,并随仓库共享配置。
Server、OpenAPI 与 SDK
无头服务提供 OpenAPI 3.1、会话、消息、文件、工具和事件接口,便于构建自有客户端、自动化与平台集成。
适用场景
适合希望直接使用成熟编码代理,同时又需要多模型选择、团队级配置或程序化集成的开发者。
交互式开发与重构
让 Agent 阅读代码、编辑文件、运行测试并根据结果迭代,适合功能开发、修复问题和跨文件重构。
安全的代码探索
使用 Plan Agent 或只读权限理解陌生仓库、追踪调用关系并形成实施计划,而不直接修改项目。
自动化代码任务
通过 opencode run 在脚本或 CI 中执行解释、检查和生成任务,并用模型、Agent 与输出选项控制运行方式。
团队开发规范
把 AGENTS.md、项目 Agent、命令和权限规则提交到仓库,为团队统一检查步骤、编码约定和安全限制。
内部工具与数据接入
通过 MCP、插件或自定义工具连接工单、文档、数据库和内部 API,让编码 Agent 使用受控的业务上下文。
构建自有 Agent 客户端
使用 Server、OpenAPI 和 SDK 创建专用 Web 界面、桌面工作台、IDE 工作流或集中式开发服务。
优点与注意事项
技术选型不仅要看能力,也要理解它带来的团队成本。
主要优点
OpenCode 擅长的地方
- 终端、桌面、IDE、Web 与程序化接口覆盖多种使用习惯
- 模型提供商覆盖广,可使用云模型、兼容 API 或本地模型
- 内置 Build、Plan 和 Subagent,开箱即可在行动与分析间切换
- 权限可按工具、命令和路径细分,适合逐步建立团队规则
- MCP、LSP、Formatter、插件和自定义命令形成完整扩展面
- 客户端—服务端架构和 OpenAPI 便于复用核心能力
需要注意
采用前应考虑的问题
官方文档说明多数权限默认是 allow;不要把出现确认框视为默认安全保证,重要项目应主动配置全局 ask 和明确 deny 规则。
规则用于控制 OpenCode 是否发起工具动作,但不能替代操作系统、容器或虚拟机隔离;处理不可信代码时仍需限制文件、凭据和网络。
仓库文件、网页和 MCP 返回内容都可能包含恶意指令。写入、执行、外部访问与发布操作应保持最小权限并由人工复核。
MCP Server、插件、自定义工具和安装脚本都可能执行本地代码或访问数据,启用前应核对来源、依赖、权限与维护记录。
使用 /share 后,拥有链接的人可访问完整会话历史和元数据;敏感仓库应审查内容、及时 /unshare,或直接把 share 设置为 disabled。
不同模型在工具调用、上下文、速度和代码质量上差异明显,更换 Provider 后需要用真实任务重新验证效果与成本。
opencode serve 默认仅监听本机;如改为外部地址,应配置服务器密码、限制 CORS,并通过可信网络或反向代理保护访问。
CLI、桌面端和配置能力更新频繁。团队环境应锁定版本、保存已验证配置,并在升级前检查发布说明和关键工作流。
快速开始
安装 OpenCode,连接模型提供商,在项目目录初始化上下文,并为文件编辑和终端命令设置明确权限。
bashnpm install -g opencode-ai@latest
opencode --versionbashcd your-project
opencode
# 在 TUI 中依次执行
/connect
/models
/initbashopencode run "概括项目结构并指出测试入口"
# 继续最近一次会话
opencode --continuejson{
"$schema": "https://opencode.ai/config.json",
"share": "disabled",
"permission": {
"*": "ask",
"read": "allow",
"edit": "ask",
"bash": {
"*": "ask",
"git status *": "allow",
"git diff *": "allow",
"git push *": "deny",
"rm *": "deny"
}
}
}markdown---
description: 审查当前改动,不直接修改文件
agent: plan
---
审查当前工作区的改动,重点检查:
- 潜在缺陷和边界条件
- 安全与隐私风险
- 缺失的自动化测试
按严重程度给出结论。bash# 默认监听 127.0.0.1:4096
OPENCODE_SERVER_PASSWORD="<strong-password>" opencode serve --port 4096
# OpenAPI 文档
open http://127.0.0.1:4096/doc下一步:OpenCode 的大多数权限默认是 allow。首次用于重要仓库前,建议在 opencode.json 中把全局操作设为 ask,再逐项允许只读命令;敏感项目还应禁用会话分享并使用隔离环境。
类似项目
这些工具同样提供面向代码仓库的 AI Agent,但在默认体验、扩展模型和安全边界上各有侧重。
OpenCode vs Pi
OpenCode 和 Pi 都是 TypeScript 编写的开源编码 Agent,并支持多模型和程序化集成。OpenCode 提供更完整的内置 Agent、权限与开发工具生态;Pi 则强调极简核心和由扩展塑造工作流。
| 比较维度 | OpenCode | Pi |
|---|---|---|
| 设计取向 | 功能完整、跨客户端的编码 Agent | 极简、可自扩展的 Agent Harness |
| 使用界面 | TUI、Desktop、IDE、Web、Server / SDK | TUI、Print / JSON、RPC、SDK |
| 内置 Agent | Build、Plan 与通用 Subagent | 保持单一核心,Subagent 可由扩展添加 |
| 权限控制 | 内置 allow、ask、deny 与细粒度规则 | 没有内置权限系统,依赖启动环境和外部隔离 |
| 开发工具 | 内置 LSP、Formatter、MCP 与项目工具 | 默认 read、write、edit、bash,其他能力按需扩展 |
| 定制方式 | Agents、Commands、MCP、Plugins、Custom Tools | Extensions、Skills、Templates、Themes、Pi Packages |
| 会话与服务 | 本地会话 + HTTP Server、OpenAPI 和事件流 | 树状 JSONL 会话 + RPC 与可嵌入 SDK |
| 更适合 | 希望开箱获得完整能力和多种客户端的团队 | 希望理解并深度改造 Agent 核心行为的开发者 |
如果你需要开箱即用的 Plan、Subagent、权限、MCP、LSP、桌面和 IDE 体验,OpenCode 的集成度更高;如果你偏好更小的核心,希望用 TypeScript 扩展精确决定 Agent 的每一层行为,Pi 更符合这一思路。无论选择哪一个,处理不可信仓库或生产凭据时都应使用外部隔离并保留人工复核。
资料核验
版本、维护信息与本页采用的官方资料来源。
本页依据 OpenCode 官方文档、CLI、权限、Provider、Agent、Server 与官方源码仓库整理。版本、主要语言、许可证和维护状态通过 GitHub 官方 API 与 npm Registry 核验。
官方仓库未归档,核验时最近可见的代码活动日期为 2026 年 7 月 28 日。该状态表示项目近期仍有公开维护活动,不代表固定发布频率或长期支持承诺。