目标:掌握 OpenCode 所有内置斜杠命令
命令分类思维导图
命令全景图
命令列表
在输入框中输入 / 即可查看所有命令。以下是完整列表:
项目管理
| 命令 | 说明 | 使用频率 |
|---|---|---|
/init | 初始化项目,创建 AGENTS.md | ⭐ 首次使用 |
/connect | 添加/管理 LLM 提供商 API 密钥 | ⭐ 首次使用 |
/models | 查看和切换可用模型 | ⭐⭐ 常用 |
对话控制
| 命令 | 说明 | 使用频率 |
|---|---|---|
/clear | 清空当前对话历史 | ⭐⭐ 常用 |
/share | 生成当前对话的分享链接 | ⭐⭐ 常用 |
/help | 显示帮助信息 | ⭐ 偶尔 |
/quit | 退出 OpenCode | ⭐ 偶尔 |
修改控制
| 命令 | 说明 | 使用频率 |
|---|---|---|
/undo | 撤销最近一次 AI 修改 | ⭐⭐⭐ 非常常用 |
/redo | 重做被撤销的修改 | ⭐⭐ 常用 |
详解与示例
/init — 项目初始化
/init
分析当前目录项目结构,生成 AGENTS.md 文件。
适用场景:
- 新使用 OpenCode 的项目
- 项目结构发生重大变化后
输出示例:
已分析项目结构:
- 框架: Next.js 14 + React
- 语言: TypeScript
- 样式: Tailwind CSS
- 数据库: Prisma + PostgreSQL
已创建 AGENTS.md
完整使用示例:
# 进入项目目录
cd ~/projects/my-app
# 启动 OpenCode
opencode
# 在 OpenCode 中执行
> /init
# 查看生成的 AGENTS.md
> 请帮我完善 AGENTS.md,补充测试和部署相关的规范/connect — 配置 API 密钥
/connect
交互式添加 LLM 提供商 API 密钥。
流程:
- 选择提供商(opencode / anthropic / openai / ...)
- 浏览器打开认证页面(部分提供商)
- 粘贴 API 密钥
- 保存到
~/.local/share/opencode/auth.json
安全性:
- 密钥文件权限设置为
600(仅用户可读) - 已自动加入
.gitignore
完整使用示例:
# 启动 OpenCode
opencode
# 添加新密钥
> /connect
# 选择 anthropic
# 粘贴 sk-ant-xxxxx
# ✅ 已保存
# 验证连接
> /models
# 确认 anthropic 模型已列出手动配置示例(当 /connect 不可用时):
mkdir -p ~/.local/share/opencode
cat > ~/.local/share/opencode/auth.json << 'EOF'
{
"providers": {
"anthropic": {
"apiKey": "sk-ant-xxxxx"
}
}
}
EOF
chmod 600 ~/.local/share/opencode/auth.json/models — 模型管理
/models
显示当前可用的所有模型列表。
输出示例:
可用模型:
[1] anthropic/claude-sonnet-4-5 ★ 当前
[2] anthropic/claude-opus-4
[3] openai/gpt-4o
[4] google/gemini-2.5-pro
[5] deepseek/deepseek-chat
输入数字切换模型,或输入提供商名称筛选。
完整使用示例:
> /models
可用模型:
[1] anthropic/claude-sonnet-4-5 ★
[2] anthropic/claude-opus-4
[3] openai/gpt-4o
> 2 ← 输入数字切换
✅ 已切换到 anthropic/claude-opus-4
> 请帮我设计数据库 Schema
← 使用新模型继续对话
场景:按任务切换模型
> /models
> 2 ← 切到 Opus 做架构设计
[完成架构设计后]
> /models
> 1 ← 切回 Sonnet 写具体代码
/undo — 撤销修改
/undo
撤销 AI 最近一次的所有文件修改。
特点:
- 可以多次执行,逐层撤销
- 不仅还原文件,还恢复对话状态
- 撤销后可以继续调整提示词重试
使用场景:
- AI 修改不符合预期
- 发现引入了 bug
- 想尝试另一种实现方案
完整使用示例:
> 给 User 模型添加 email 验证
🤖 [AI 修改了 3 个文件]
> 等等,验证逻辑应该用正则而非简单检查
> /undo
🤖 已撤销修改,文件已恢复
> 给 User 模型添加 email 验证,使用 RFC 5322 正则表达式
🤖 [AI 重新修改]
/redo — 重做修改
/redo
恢复被 /undo 撤销的修改。
与 undo 配合使用:
AI 做了修改 → 你发现有问题
/undo ← 撤销
AI 重新修改 → 你发现还是原来好
/redo ← 恢复原来的修改
完整使用示例:
> 重构 auth.ts
🤖 [修改 A]
> /undo
🤖 [恢复原始状态]
> 换一种方式重构 auth.ts
🤖 [修改 B] ← 发现不如修改 A
> /undo
🤖 [恢复原始状态]
> /redo
🤖 [恢复修改 A] ← 直接恢复到修改 A,跳过 B
/share — 分享对话
/share
生成当前对话的公开分享链接。
特点:
- 链接类似
https://opencode.ai/s/xxxxx - 默认不分享,需要手动执行
- 分享的对话不包含敏感信息(API 密钥等)
适用场景:
- 向同事展示 AI 的解决方案
- 在论坛/社区求助时提供上下文
- 记录有趣的 AI 交互
完整使用示例:
> 帮我解决这个 TypeScript 类型错误...
🤖 [经过多轮对话,AI 给出完美解决方案]
> /share
🤖 分享链接已生成: https://opencode.ai/s/a1b2c3d4
# 现在可以把链接发给同事或贴到 issue 中
/clear — 清空对话
/clear
清空当前对话历史,重新开始。
注意:
- 不影响已修改的文件
- 只是清空聊天记录
- 相当于开一个新会话
完整使用示例:
> [聊了 50 轮,上下文太长]
> /clear
🤖 对话已清空
> 现在开始一个新任务:添加订单导出功能
🤖 [干净的上下文,AI 更专注]
命令组合使用场景
场景 1:探索新项目
> /init ← 生成 AGENTS.md
> /models ← 确认模型
> 这个项目用的是什么认证方案?
> @src/lib/auth.ts 这个文件的逻辑有点复杂,请解释
场景 2:多轮迭代开发
[计划模式]
> 设计一个新的通知系统
🤖 [输出计划]
[构建模式]
> 开始实施
🤖 [修改文件]
> 等等,通知应该支持邮件和站内信两种方式
> /undo
🤖 [撤销]
> 重新设计通知系统,支持邮件和站内信...
🤖 [重新修改]
> /share
🤖 [生成链接,发给同事 review]
场景 3:故障排查
> 运行测试看看刚才的修改有没有问题
🤖 [运行 npm test]
🤖 [测试失败,3 个用例未通过]
> /undo
🤖 [撤销修改,回到安全状态]
> 查看测试失败的原因,定位问题
🤖 [分析失败日志,给出原因]
[修复后]
> /clear
> 重新实现刚才的功能,注意边界条件...
快捷使用技巧
命令补全
输入 / 后按 Tab 可以自动补全命令:
> /u<Tab> → 自动补全为 /undo
> /c<Tab> → 自动补全为 /connect(或 /clear)
> /m<Tab> → 自动补全为 /models
> /q<Tab> → 自动补全为 /quit
命令别名
部分命令支持简写(取决于版本):
/q → /quit
/h → /help
快速切换模型脚本
如果你经常切换模型,可以创建一个快捷脚本:
#!/bin/bash
# switch-model.sh - 快速切换 OpenCode 模型
MODEL="$1"
if [ -z "$MODEL" ]; then
echo "Usage: $0 <model-name>"
echo "Examples:"
echo " $0 opus → Claude Opus"
echo " $0 sonnet → Claude Sonnet"
echo " $0 gpt4o → GPT-4o"
exit 1
fi
case "$MODEL" in
opus)
echo "/models" | opencode --stdin
echo "2" | opencode --stdin
;;
sonnet)
echo "/models" | opencode --stdin
echo "1" | opencode --stdin
;;
gpt4o)
echo "/models" | opencode --stdin
echo "3" | opencode --stdin
;;
*)
echo "Unknown model: $MODEL"
exit 1
;;
esac避坑清单
| ⚠️ 坑点 | 说明 | 解决方案 |
|---|---|---|
/clear 误用 | 以为清空对话会撤销修改 | /clear 只清对话,用 /undo 撤销修改 |
忘记 /quit | 直接关终端导致状态未保存 | 养成 /quit 优雅退出习惯 |
/share 泄露敏感信息 | 对话中可能包含内部代码 | 分享前检查对话内容 |
/undo 次数过多 | undo 到最初状态后继续 undo | undo 有边界,注意提示 |
/models 后选错 | 快速按数字选到错误模型 | 确认模型名称后再选择 |
常见问题
Q: 命令前不加 / 可以吗?
A: 不可以,斜杠命令是特殊语法。不加 / 会被当作普通消息发送给 AI。
Q: /undo 能撤销多久之前的修改?
A: 每次 AI 执行修改都会创建一个快照,/undo 逐层回退,通常可以回退到会话开始。
Q: /share 的链接有效期多久?
A: 取决于 OpenCode 官方配置,通常长期有效。敏感对话不建议分享。
Q: 能自定义命令缩写吗? A: 可以通过自定义命令实现(见 07. 个性化设置)。
真实场景案例
案例 1:代码审查会议
场景:团队进行代码审查,需要展示 AI 如何分析某个模块。
> @src/payment/gateway.ts 请分析这个支付网关的实现,
重点关注安全性和错误处理
🤖 [详细分析,指出 3 个潜在问题]
> /share
🤖 https://opencode.ai/s/x1y2z3
# 在会议上展示这个链接,所有人可见完整分析过程
案例 2:模型 A/B 测试
场景:同一个问题,想比较 Claude 和 GPT-4 的回答质量。
> 如何优雅地处理这个并发竞争条件?
🤖 [Claude Sonnet 的回答]
> /models
> 3 ← 切换到 GPT-4o
> 如何优雅地处理这个并发竞争条件?
🤖 [GPT-4o 的回答]
# 对比两个回答,选择更好的方案
案例 3:上下文管理
场景:一个长会话中做了多个不相关的任务,上下文混乱导致 AI 回答质量下降。
# 任务 1:重构 auth 模块(已完成)
# 任务 2:添加支付功能(已完成)
# 现在开始任务 3:优化数据库查询
> /clear
🤖 对话已清空
> 请分析 @src/db/queries.ts 中的 N+1 查询问题
🤖 [干净的上下文,更准确的回答]
练习
- 运行
/models查看你当前可用的模型 - 尝试
/undo和/redo体验撤销重做 - 使用
/share生成一个对话链接(注意检查内容是否适合公开)
下一篇:07. 个性化设置