@@ -144,7 +144,7 @@ docker stop fit-dev-feat-xxx
144144
145145## 命令行模式(非交互式)
146146
147- 除了打开 TUI 界面,每个 AI 工具都支持直接在命令行传入 prompt 并获取输出,适合脚本自动化、快速提问和管道组合。
147+ 除了打开 TUI 界面,每个 AI 工具都支持直接在命令行传入 prompt 并获取输出,适合脚本自动化、快速提问和管道组合。每个工具还支持会话管理,可以在命令行实现多轮对话。
148148
149149### Claude Code
150150
@@ -164,11 +164,28 @@ claude -p --model opus "设计一个缓存方案"
164164# 限制轮次和预算
165165claude -p --max-turns 3 --max-budget-usd 1.00 " 重构数据库模块"
166166
167- # 继续上一次对话
168- claude -c -p " 为刚才的修改补充单元测试"
169-
170167# 跳过所有权限确认(CI/脚本场景)
171168claude -p --dangerously-skip-permissions " 运行所有测试并汇报结果"
169+
170+ # ── 多轮对话(会话管理)──
171+
172+ # 预先生成 session ID,从第 1 轮起就使用(推荐)
173+ SID=$( uuidgen)
174+
175+ # 第 1 轮:指定 session ID 开启对话
176+ claude -p --session-id " $SID " " 分析认证模块的架构"
177+
178+ # 第 2 轮:恢复同一个会话继续对话
179+ claude -p --resume " $SID " " 重构登录函数"
180+
181+ # 第 3 轮:继续同一个会话
182+ claude -p --resume " $SID " " 为重构后的代码补充单元测试"
183+
184+ # 快捷方式:继续当前目录下最近一次对话(无需 session ID)
185+ claude -p -c " 为刚才的修改补充单元测试"
186+
187+ # 从已有会话分叉出新会话(不影响原会话)
188+ claude -p --resume " $SID " --fork-session " 尝试另一种实现方案"
172189```
173190
174191### Codex
@@ -191,6 +208,22 @@ codex exec --full-auto "给所有 API 路由添加错误处理"
191208
192209# 将最终结果写入文件
193210codex exec -o result.txt " 分析项目依赖关系"
211+
212+ # ── 多轮对话(会话管理)──
213+ # Codex 不支持预指定 thread ID,需从首轮 JSON 输出获取
214+
215+ # 第 1 轮:启动会话,通过 JSON 事件流获取 thread_id
216+ TID=$( codex exec --json " 分析数据库模块" 2> /dev/null \
217+ | jq -r ' select(.type=="thread.started") | .thread_id' )
218+
219+ # 第 2 轮:通过 thread_id 恢复会话(注意 resume 是 exec 的子命令)
220+ codex exec resume " $TID " " 添加连接池"
221+
222+ # 第 3 轮:继续同一个会话
223+ codex exec resume " $TID " " 补充单元测试"
224+
225+ # 快捷方式:恢复最近一次会话
226+ codex exec resume --last " 继续上次的任务"
194227```
195228
196229### OpenCode
@@ -211,8 +244,27 @@ opencode run --format json "列出所有 API 端点"
211244# 附加文件到 prompt
212245opencode run --file src/auth.ts " 审查这个文件的安全性"
213246
214- # 继续上一次对话
215- opencode run --continue " 为刚才的修改补充单元测试"
247+ # ── 多轮对话(会话管理)──
248+ # OpenCode 不支持预指定 session ID,需从首轮 JSON 输出获取
249+
250+ # 第 1 轮:启动会话,通过 JSON 输出获取 sessionID
251+ SID=$( opencode run --format json " 设计认证模块" | jq -r ' .sessionID' )
252+
253+ # 第 2 轮:通过 session ID 恢复会话
254+ opencode run -s " $SID " " 添加 JWT 校验"
255+
256+ # 第 3 轮:继续同一个会话
257+ opencode run -s " $SID " " 补充单元测试"
258+
259+ # 快捷方式:继续最近一次对话(无需 session ID)
260+ opencode run -c " 为刚才的修改补充单元测试"
261+
262+ # 查看历史会话列表
263+ opencode session list
264+ opencode session list -n 10 # 只显示最近 10 个
265+
266+ # 从已有会话分叉
267+ opencode run -s " $SID " --fork " 尝试另一种实现方案"
216268```
217269
218270### Gemini CLI
@@ -235,8 +287,28 @@ gemini -p --yolo "运行测试并汇报结果"
235287
236288# 将项目所有文件纳入上下文
237289gemini -p --all-files " 分析这个项目的架构"
290+
291+ # ── 多轮对话(会话管理)──
292+ # Gemini CLI 不支持预指定 session ID,需从首轮 JSON 输出中提取。
293+
294+ # 第 1 轮:启动会话,通过 JSON 输出获取 session_id
295+ SID=$( gemini --output-format json -p " 分析项目的整体架构" | jq -r ' .session_id' )
296+
297+ # 第 2 轮:通过 session_id 恢复会话
298+ gemini --resume " $SID " " 针对刚才的分析,重构认证模块"
299+
300+ # 第 3 轮:继续同一个会话
301+ gemini --resume " $SID " " 补充单元测试"
302+
303+ # 快捷方式:恢复最近一次会话(--resume 不带参数,仅适合非并发场景)
304+ gemini --resume " 继续上次的对话"
305+
306+ # 查看当前项目所有会话
307+ gemini --list-sessions
238308```
239309
310+ > ** 注意** :Gemini CLI 的会话按项目(工作目录)隔离,切换目录后 ` --list-sessions ` 显示的是不同项目的会话。` -s ` 是 ` --sandbox ` 的缩写(安全沙箱),不是会话管理,会话管理使用 ` -r ` / ` --resume ` 。
311+
240312### 快速对比
241313
242314| 功能 | Claude Code | Codex | OpenCode | Gemini CLI |
@@ -246,6 +318,11 @@ gemini -p --all-files "分析这个项目的架构"
246318| JSON 输出 | ` --output-format json ` | ` --json ` | ` --format json ` | ` --output-format json ` |
247319| 指定模型 | ` --model opus ` | ` -m o4-mini ` | ` -m provider/model ` | ` -m gemini-2.5-flash ` |
248320| 跳过确认 | ` --dangerously-skip-permissions ` | ` --full-auto ` | — | ` --yolo ` |
321+ | 预指定会话 ID | ` --session-id <UUID> ` | — | — | — |
322+ | 恢复指定会话 | ` --resume <ID> ` | ` exec resume <ID> ` | ` -s <ID> ` | ` --resume <ID> ` |
323+ | 继续最近会话 | ` -c ` | ` exec resume --last ` | ` -c ` | ` --resume ` (无参数) |
324+ | 查看会话列表 | — | — | ` session list ` | ` --list-sessions ` |
325+ | 分叉会话 | ` --fork-session ` | — | ` --fork ` | — |
249326
250327## 沙箱管理
251328
0 commit comments