OpenCode 常用命令
OpenCode 命令体系 纯 markdown 驱动,工作流可沉淀成可复用命令——零代码扩展,迁过来上手成本低。
- 核心命令 4 条:
/init//compact//clear//undo,覆盖会话生命周期。 - 自定义命令:
.opencode/command/*.md放 markdown 即生效,业务团队也能贡献。 - 高频工作流:新项目
/init→ 改AGENTS.md→ 写专属命令;改 Bug 走/undo兜底。 - 更新机制:默认启动自检;手动
opencode upgrade,跨大版本前看 CHANGELOG。 - 选型标准:多 provider 切选 OpenCode,只用 Claude 选 Claude Code。
OpenCode 经常被拿来和 Claude Code 比,两者定位其实不一样。
Claude Code 是 Anthropic 自家产品的命令行前端,而 OpenCode 是真正意义上的开源 AI Agent——模型、provider、UI 都可以换。对经常要在不同模型之间切来切去的人来说,OpenCode 更灵活。
但灵活也意味着学习成本:命令体系、配置文件、扩展方式都和 Claude Code 不一样。这篇整理我用得最多的几条命令,省得每次都去翻文档。
核心命令:让 OpenCode 跑起来
/init 启动项目
新项目接入 OpenCode 的第一步:
/init
它会扫描项目结构,生成 AGENTS.md(也有版本叫 CLAUDE.md),把项目的技术栈、目录结构、约定写进去。下次再让 OpenCode 改代码,它就知道这是 Vue 项目还是 Next.js,不用每次都解释一遍。
最佳实践:生成完 AGENTS.md 后人工检查一遍,把 OpenCode 没识别出来的部分手动补上(部署流程、CI 命令、测试约定),别全信它自己写的。
/compact 压缩上下文
对话变长之后,token 消耗会指数级上升。这时候:
/compact
OpenCode 会调用模型把当前对话历史压缩成一段摘要,塞回上下文,腾出 token 空间。
注意:压缩会丢失细节。如果当前对话里有什么特别重要的中间结论,先复制出来再压缩,否则后面再问起来 OpenCode 可能一脸茫然。
/clear 清空上下文
/clear
直接清空当前会话。和 /compact 不一样——这个不保留任何东西。
我一般两种用法:
- 同一个项目切不同任务时,先
/clear再开新对话,避免上下文污染 /compact之后发现还是太乱,直接/clear推倒重来
/undo 回滚修改
OpenCode 改文件之后反悔了:
/undo
它会回退到上一次的状态。注意这个只回退 OpenCode 自己改的文件,不会回退你手动改的东西。
自定义命令:让 OpenCode 适配你的工作流
OpenCode 支持自定义命令,在项目根目录的 .opencode/command/ 下放 markdown 文件:
<!-- .opencode/command/deploy.md -->
部署当前项目到测试环境。
执行步骤:
1. 运行 `pnpm build`
2. 运行 `pnpm test`
3. 部署到测试服务器
之后在 OpenCode 里输入 /deploy 就会触发。
关键点:自定义命令就是普通的 markdown,不写代码也能扩展。这是 OpenCode 比很多同类 工具更顺手的地方——业务团队也能贡献命令,不用碰 TypeScript。
全局命令可以放在 ~/.config/opencode/command/,对所有项目生效。
文件引用(
@path)和 Shell 调用(!cmd)是两个最高频的快捷语法,详细用法见 OpenCode 文件引用与 Shell 调用。
我的常用组合
- 新项目接入:
/init→ 改AGENTS.md→ 写.opencode/command/下的项目专属命令 - 改 Bug 流程:
!git status看当前改了什么 → 直接描述问题 → 改完用/undo兜底 - 长对话维护:发现 OpenCode 开始"忘事"就
/compact,实在不行/clear重来
怎么选 OpenCode 还是 Claude Code
简单粗暴的判断标准:
- 只用 Anthropic 模型 + 想要最丝滑的体验:选 Claude Code
- 要在多个 provider 之间切换 + 需要自定义扩展:选 OpenCode
- 团队项目 + 需要写业务专属命令:选 OpenCode
- 个人项目 + 不想折腾配置:选 Claude Code
两者命令体系很相似(/init、/compact、/clear 这些都有),但配置文件、扩展方式、provider 切换这些底层逻辑差异很大。混用之前先看一遍 OpenCode 的官方文档,别直接拿 Claude Code 的经验套。
说白了,工具只是手段,真正决定效率的是你能不能把工作流沉淀成可复用的命令。OpenCode 在这点上做得比多数同类工具都开放。
怎么更新 OpenCode
OpenCode 默认启动时自动检查更新。要禁用设 OPENCODE_DISABLE_AUTOUPDATE=true 即可。
手动更新走 OpenCode 自带的 upgrade 命令,记得用 -m 告诉它当初是怎么装的:
opencode upgrade # 升到最新版
opencode upgrade v0.1.48 # 升到指定版本
opencode upgrade -m brew # 指定安装方式:curl / npm / pnpm / bun / brew
如果当初装的时候没走 opencode upgrade(比如直接用包管理器),各家的命令分别是:
brew upgrade anomalyco/tap/opencode # Homebrew
npm i -g opencode-ai@latest # npm
pnpm add -g opencode-ai@latest # pnpm
mise use -g opencode@latest # mise
提醒:跨大版本(比如 0.1.x → 0.2.x)之前看一眼 CHANGELOG,配置结构偶尔会动。升完发现 opencode.json 报 schema 错误别慌,删几个废弃字段就行。
References
- OpenCode 官方文档 —— OpenCode Team
- OpenCode GitHub Repository —— SST
- OpenCode Config Schema —— 主配置 JSON Schema
- OpenCode Keybinds 文档 —— 默认快捷键全表