Sooua
登录
返回文章列表
OpenCode··10 分钟阅读

常用内置命令

mindmap

目标:掌握 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 密钥。

流程

  1. 选择提供商(opencode / anthropic / openai / ...)
  2. 浏览器打开认证页面(部分提供商)
  3. 粘贴 API 密钥
  4. 保存到 ~/.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 到最初状态后继续 undoundo 有边界,注意提示
/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 查询问题
🤖 [干净的上下文,更准确的回答]

练习

  1. 运行 /models 查看你当前可用的模型
  2. 尝试 /undo/redo 体验撤销重做
  3. 使用 /share 生成一个对话链接(注意检查内容是否适合公开)

下一篇:07. 个性化设置

分享

评论

登录 后参与讨论。

加载中…

相关文章