🐸 青蛙编程网
首页 / AI / opencode / 3. 会话与基本用法

3. 会话与基本用法

这是什么:会话(session) = opencode 的一段连续对话加它改过的文件;TUI = 那个全屏的终端界面,你平时就待在里面。

为什么用:装好只是能说话,真正省时间的是「会提问、会看回滚、会切会话」。不会用的人只会得到一份啰嗦的答案,会用的人能拿到一整个能跑的改动。

如何用:本章从「进项目」讲起,先用三种提问姿势拿到结果,再把 @、! 两个提效符号和撤销机制用起来。

3.1 开工三步

cd /path/to/your/project
opencode

进去以后先敲一条斜杠命令,给项目建一份说明文件:

/init

/init 会扫描你的仓库,生成一个 AGENTS.md——里面记着构建命令、测试命令、目录结构、代码约定。记得把它提交进 Git:以后每次开新会话,opencode 都会先读它,你不用重复交代背景。

3.2 三种提问姿势

姿势 怎么用 典型问题
问代码 直接问 「登录逻辑在哪个文件里?」
先规划 按 Tab 切到 Plan 模式,右下角有指示 「给用户表加软删除字段,先给方案别动代码」
直接动手 再按 Tab 回到 Build 模式 「方案没问题,去改吧」

Plan 模式默认不允许改文件(只允许写进 ~/.opencode/plan/ 目录),正好用来做「先想清楚再动手」。

提问像跟团队里的初级开发者说话:给足上下文、给例子,别指望它猜。

notes 路由里的鉴权是怎么做的?参考 @src/routes/notes.ts,
不要动代码,先讲清楚调用链。

3.3 两个提效符号

  • @:模糊搜索并引用文件,内容会自动塞进对话,不用复制粘贴
  • !:直接跑一条 shell 命令,输出作为工具结果加进对话
@src/routes/settings.ts 里缺少鉴权,照着 @src/routes/notes.ts 补上
!ls -la migrations/

你会看到(示意):

  read    src/routes/settings.ts
  read    src/routes/notes.ts
  shell   ls -la migrations/
  edit    src/routes/settings.ts

拖一张图片进终端,opencode 也能看图——截图里的报错可以直接扔给它。

3.4 后悔了:/undo 和 /redo

改错了不用慌:

/undo

它会撤掉上一条消息、模型的全部回答,以及文件改动;/redo 再把它们恢复回来。可以连按多次,一层层回退。

⚠️ 撤销是用 Git 实现的,所以你的项目得是个 Git 仓库才能用 /undo / /redo。这不是 bug,是设计。

3.5 管理多个会话

opencode -c                          # 继续上一次会话
opencode session list -n 10          # 列出最近 10 个会话
opencode run "解释一下这个项目的鉴权流程"   # 非交互模式,跑完就退出

界面里的对应操作:/sessions(别名 /resume、/continue)列出并切换会话,/new(别名 /clear)开一个全新的。

场景 建议
一个功能改到底 单个会话一路聊下去
同时推进三件事 三个会话各开一个,互不污染上下文
试不同方案 opencode -c --fork 从上次会话分叉出一条新支线

3.6 常用斜杠命令 & 快捷键

命令 作用 快捷键
/init 生成 / 更新 AGENTS.md —
/models 切换模型 Ctrl+X 然后 M
/new 新会话 Ctrl+X 然后 N
/sessions 会话列表 Ctrl+X 然后 L
/undo / /redo 撤销 / 重做 Ctrl+X 然后 U / R
/compact 压缩上下文(/summarize) Ctrl+X 然后 C
/export 导出对话为 Markdown Ctrl+X 然后 X
/editor 用外部编辑器写长提示词 Ctrl+X 然后 E
Tab 切换 Build / Plan Tab
命令面板 搜所有动作 Ctrl+P

Ctrl+X 叫 leader 键(前缀键),按完它等 2 秒(可调)再按第二个键,不会和终端本身的快捷键打架。

动手改

  1. 在你的项目里敲 /init,看完生成的 AGENTS.md,手动补一条它没写到的规矩(比如「数据库迁移必须手写 SQL,不许用 ORM 自动生成」)。
  2. 用 Plan 模式问一个你项目里的真实问题,看它给出的方案;不满意就用 /undo 撤掉,改用 Build 模式让它直接动手。
  3. 故意提一个含糊的问题(「优化一下代码」),对比一下它给出的追问,和你把需求写具体之后的差别。

小结

  • 流程:cd 进项目 → opencode → /init 生成 AGENTS.md → 开工
  • 三种姿势:问代码、Plan 模式(Tab 切换,不许改文件)、Build 模式(动手)
  • 两个符号:@ 引用文件、! 跑命令
  • /undo / /redo 靠 Git 实现,项目必须是 Git 仓库
  • 多任务就多开会话:/new、/sessions、opencode session list

下一章:自定义 agent 与命令 🐸

📥 下载本章代码

ZIP 内含本章全部代码文件与说明,解压即用,与教程内容同步生成。