背景:为啥 OpenCode 火了
其实我不是一开始就用 OpenCode 的。如果你深度用过 AI 编程工具,大概率路径类似:
- 一开始用 Copilot
- 后来转向更强的 Claude / chatGPT,对话方式
- 再到 Cursor、Claude Code、Antigravity 这类「Agent 化工具」
而最近促使我开始认真评估 OpenCode 的,一个更现实的情况是:

Claude Code 开始封闭化
Claude Code 刚出来的时候,给我体验非常好:
- 任务完成度极高、上手极快
- 项目把握、需求理解很强
- 编码 Agent 几乎是头一档
但在后续版本演进中,变化开始逐渐显现:
Claude 公司是逐利的,期望把用户圈在自己的生态里。Claude Code 在最新版本里,已经不能方便地通过配置切换模型,逐步限制用户使用其他模型。
对个人开发者来说这不只是“不爽”,对技术人员来说更像一个危险信号:工具一旦锁死模型,就等于锁死了后续工具与工作模式,也会限制 Agent 的创造力与可行性。
开始转向 OpenCode
OpenCode 之前就已经存在。也正是在这个背景下,它快速进入大家视野,很多博主开始推荐。
它解决的不是“比 Claude Code 更好用”这种表层问题,而是更底层的几个关键点:
- 我能不能自由使用我想用的各类模型?
- 这个工具能不能长期可控?
- 它是不是足够好用、足够工程化?
OpenCode 给出的答案很明确:
- 不限制模型(Claude / GPT / Gemini / GLM / Kimi / Minimax)
- 完全开源,核心逻辑可审计
- Agent + 权限 + 工具,天生为工程场景设计
- 支持 Claude Skills,完全兼容 claude.md
所以你会发现,最近真正用 OpenCode 的往往不是新手,而是已经用过一圈 AI 工具(包括 Claude Code)的技术同学。

OpenCode 是什么
先快速统一认知:OpenCode 是一款 开源的终端编程 Agent(AI Coding Agent),核心特点包括:
- 理解整个代码仓库,而不是单文件
- 能读 / 写文件、执行命令、跑测试
- 有 Agent、权限、模式等一整套工程化设计
- 支持 Claude Skill、兼容 Claude.md
- 全面对标 Claude Code,并针对体验不佳处做优化

OpenCode 10 个使用小技巧
下面是我高频使用的一些技巧,目标是让你更快上手,并把终端里的 AI 编程真正用顺手。
技巧一:安装与启动
先安装 OpenCode。
安装
官方推荐方式:
curl -fsSL https://opencode.ai/install | bash
安装完成后确认版本:
opencode --version
启动姿势
不要在一个脏乱无章的目录里启动 OpenCode。更推荐:
cd your-project
opencode

技巧二:/init 项目说明书
进入项目后,不建议直接开始提问。第一步可以先初始化上下文:
/init
/init 会做什么
- 扫描当前项目结构
- 生成
AGENTS.md
- 建立项目级上下文记忆
- 为后续 Agent 行为提供“项目说明书”
我建议把 AGENTS.md 也纳入 Git 管理。它是 OpenCode 理解你项目的核心入口,类似 Claude Code 中的 claude.md 文件。

技巧三:善用 OpenCode TUI 的 Slash 命令提升效率
在 OpenCode 终端界面(TUI) 中,输入 / 加命令名,就能在不离开上下文的情况下快速完成常用操作(也不用为了切换配置而重启界面)。
/connect — 迅速添加你的 API 提供商
如果你觉得 opencode 提供的免费模型有并发限制、速度偏慢,可以在 OpenCode 里配置自己的 API 模型密钥:
/connect
它会弹出提供商列表,让你快速 添加 API Key 并连接服务,一键开始使用对应模型。
适用场景:首次设置 API、或切换 provider。


/models — 查看可用模型清单
/models
该命令会在 TUI 内列出当前已连接 provider 下的所有可用模型,并可快速选择当前会话默认模型。

/new — 快速开始全新会话
/new
如果你想从头开始一个完全干净的对话(清空上下文),这个命令比重启整个 TUI 更快,类似 Claude Code 的 /clear。
/compact — 压缩或总结当前会话
/compact
该命令会 压缩当前对话内容(类似自动总结),让对话更紧凑、更易理解。长对话里想先“把事说清楚再继续干”,它非常好用。
技巧四:进阶 Slash 命令 /undo 与 /redo:撤销与重做
/undo
这是我用得最多的命令之一:/undo 用于撤销对话中的最后一条消息。它会删除用户的最新消息、所有后续回复以及所有文件更改。
应用场景:
- Agent 已经改完了,但方向明显不对
- 或者整体逻辑就是错的
你不需要再发一句“改回来”,直接执行 /undo 更干脆。
这种体验很像 Git revert:本质上它使用 Git 来管理文件更改。

/redo
/redo 通常和 /undo 搭配使用:重做之前撤销的消息,仅在使用 /undo 后可用。
内部原理同样是使用 Git 来管理文件更改,所以项目需要创建 .git。

技巧五:@文件 或 @目录:告诉 Agent 你要它“只看哪儿”
终端 Agent 最大的问题之一是:它可能会看得太多,也更容易“脑补”,然后跑偏。
这时候,@文件 就是你控制上下文范围的主要手段:把任务边界说清楚。
例如:
@src/service/order_service.go,帮我分析这里的并发问题
它能很好地明确上下文边界,也能显著提升回答和修改的精度。
我个人在这些场景几乎都会用 @文件:
如果你经常在 Go 并发、锁、竞态这些问题上来回折腾,也可以把相关讨论放到 Go 版块里对照排查思路。

技巧六:Plan / Build 模式,是我最想强调的一个点

OpenCode 有一个很容易被忽略、但非常关键的技巧:Plan / Build 模式切换。
两种核心模式
- Plan Mode:只规划、不执行
- Build Mode:直接改代码、执行命令、运行脚本
你可以通过 Tab 键 在模式之间快速切换。相比 Claude Code 需要两次 Tab,这里体验更顺一些。
│ Build Mode ▼ │ ← 默认模式
│ Plan Mode │ ← 规划优先
我个人推荐的工作流
- 先切到 Plan Mode
- 描述你的目标(功能 / 重构 / 排错)
- 让 AI 输出:
- 确认无误后,再 Tab 切回 Build Mode 执行
这一步能显著降低“AI 直接上手改错”的概率,减少返工。你真的愿意让它一上来就改核心模块吗?先让它规划一次,往往更省时间。
技巧七:巧妙用 Agents,不仅仅把 OpenCode 当成一个 Chat
在 OpenCode 中,Agent 是一等公民。
其中有两个主要 Agent:Plan 和 Build;还有两个子 Agent:General 和 Explore。

创建自己的 Agent
opencode agent create
你可以为不同任务创建不同 Agent,例如:
api-doc-agent:API 文档自动编写上传
review-agent:只做代码审查
test-agent:生成 / 修复测试
security-agent:关注安全问题
技巧八:Agent 的权限控制
权限控制可以让你精细化管理 Agent 能做什么、不能做什么。随着你从“试用、验证”逐步到“信任、放权”,效率会明显提升。
示例配置:
{
"$schema": "https://opencode.ai/config.json",
"agent": {
"build": {
"permission": {
"bash": {
"git push": "ask",
"grep *": "allow"
}
}
}
}
}
opencode.json 配置文件位置:
cat ~/.config/opencode/opencode.json
常见使用场景
- 核心分支:禁止自动写代码
- 生产环境脚本:所有 bash 操作必须确认
- 安全扫描 Agent:只允许读文件
如果你想把这套权限策略进一步落到流水线与发布流程里,建议结合 运维/DevOps/SRE 的实践一起做约束。
技巧九:非交互模式
OpenCode 不只能够对话运行,它还可以被 脚本化调用:
opencode -p "Review this diff and summarize risks"
适合的应用场景
- Git hooks(自动生成 commit message)
- PR 自动代码审查
- CI 阶段生成改进建议
- 自动化文档 / 注释生成

技巧十:在 IDE 中集成 OpenCode
当你已经在 IDE(例如 VS Code / Cursor)中安装并配置好 OpenCode 后,可以用以下 快捷键快速打开 OpenCode 会话,无需切换到终端手动输入命令。
快速打开 OpenCode
这会在 IDE 的分屏终端中启动或聚焦现有的 OpenCode 会话,工作流会顺很多:
- macOS:
Cmd + Esc
- Windows / Linux:
Ctrl + Esc
插件市场直接搜索:opencode 进行安装。

安装好插件后即可在 IDE 中运行:

结语:会开始尝试用 OpenCode
说句实话:OpenCode 并不适合所有场景。
我个人的判断标准是:
- 需求偏流程、偏工程、偏系统性 → 非常适合
- 需要人为修改代码、用“眼睛”盯细节读代码 → 不太合适
我更倾向于把它通过插件集成到传统 IDE 里,用在这些任务上:
- 重构、理解分析项目
- 异常代码排查与问题分析
- 自动化工程流程
在我看来,OpenCode 和其他 AI IDE 并不是互相替代关系:
- Cursor、Antigravity:AI IDE 内体验流畅,很适合写代码
- OpenCode:跨平台、跨 IDE,更开放,更自由,可以自由搭建自己的 Agents,并支持多模型
如果你也在折腾终端里的 AI Coding Agent、权限策略、非交互脚本化这套工程实践,欢迎到 云栈社区 继续交流。