如何用 OpenClaude 的 --resume 与 --continue 恢复对话并分叉出新会话?

发布时间:2026/9/12 15:38:47
如何用 OpenClaude 的 --resume 与 --continue 恢复对话并分叉出新会话?
如何用 OpenClaude 的 --resume 与 --continue 恢复对话并分叉出新会话【免费下载链接】openclauderuns anywhere. uses anything项目地址: https://gitcode.com/GitHub_Trending/op/openclaude在 OpenClaude 里跑过一段会话之后常见的需求有两种一是中断后回到原来的对话继续二是把已有的对话历史复制出一份新分支从分叉点开始另一条线。OpenClaude 用两个启动参数完成这件事--resume按会话 ID 恢复指定会话--continue继续当前目录最近的一次会话再加--fork-session可以把对话历史分叉到一个新的 session ID而不是继续写原来的会话记录。本文按“恢复 → 分叉 → 验证”的顺序给出操作路径。前提条件已通过 npm 安装 OpenClaude运行环境需要 Node.js22.0.0。前置条件安装并确认 OpenClaude 可用npm install -g gitlawb/openclaudelatest openclaude --versionopenclaude --version用来确认安装成功并查看版本。如果安装后启动时报ripgrep not found先系统级安装 ripgrep并在同一个终端里确认rg --version可用再启动 OpenClaude。启动openclaude后如果还没有配置模型提供方在交互界面里运行/provider完成引导式配置provider 配置会保存到.openclaude-profile.json。完成这一步后正常发出的对话就会形成可恢复的会话记录下面的--resume/--continue才有对象。用 --resume 与 --continue 恢复对话恢复已有会话有两条路径按 README 中的定义# 按会话 ID 恢复指定会话短形式为 -r openclaude --resume session-id # 继续当前目录最近的一次会话短形式为 -c openclaude --continuesession-id是占位符替换为你要恢复的那个会话的实际 session ID。--resume不带 ID 时不会报错退出而是打开交互式选择器并支持带搜索词筛选适合记不清具体 ID 的情况。--continue的范围是“当前目录”它取的是当前目录下最近的一次会话所以要在对应项目的目录里执行否则恢复的可能不是你预期的会话。两个可选参数可以配合使用定义见 CLI flags 列表# 给会话起显示名会出现在 /resume 选择器和终端标题中 openclaude --resume session-id --name auth-refactor # 按 PR 恢复用 PR 编号或 URL 恢复与该 PR 关联的会话或打开选择器 openclaude --from-pr 123--name对后面识别分叉出的新会话很有用因为多个会话并存时显示名比 ID 更容易对上。用 --fork-session 分叉出新会话想保留原会话不动、另开一条分支时在恢复命令上加--fork-sessionopenclaude --resume session-id --fork-session openclaude --continue --fork-session按 README 的说明--fork-session的作用是把对话历史分叉到一个新的 session ID而不是复用原来的 transcript。需要明确它的边界分叉只是会话层面的分支。文档明确指出它不会创建文件系统隔离、不会复制你的工作区、也不会创建 git worktree 分支。如果你需要文件层面的隔离那是另一个参数--worktree在隔离的 git worktree 中运行会话的职责和--fork-session不是同一件事不能互相替代。分叉完成后的判断依据分叉出的会话运行在新的 session ID 下原会话的 transcript 保持原样。之后你可以分别用两个 session ID 验证两条记录见下一节。验证会话记录与内容OpenClaude 的会话 transcript 存放在~/.openclaude/projects/-path-to-project/session-id.jsonl这一位置路径模式来自 docs/advanced-setup.md其中-path-to-project段对应项目路径session-id段对应具体会话 ID。要核对某个已保存会话的内容用openclaude report命令# 打印当前项目最近一次会话的人类可读任务报告 openclaude report --markdown # 从指定会话 transcript 生成确定性任务报告JSON openclaude report --json --transcript ~/.openclaude/projects/-path-to-project/session-id.jsonl --out task-report.json--transcript file指向一个明确的 transcript 文件--session id指向一个已保存的会话两者都省略时报告当前项目最近的一次会话。报告汇总的是该会话中观察到的事实工具调用、Bash 命令、验证命令、变更文件、分支元数据、警告和关联的 issue/PR 等。验证分叉是否成功就分别对原会话和分叉后的新会话 ID 各跑一次 report两个 session ID 各自有对应的记录说明历史确实写入了新的 session ID 而非原 transcript。已知限制持久化被关闭的会话无法恢复。--no-session-persistence会禁用会话持久化——会话不落盘也就不能恢复且该参数只适用于--print模式。用这种方式启动的会话不存在可--resume的对象。长会话恢复时的压缩。默认情况下 OpenClaude 按 token 用量压缩对话并附带 1000 条活跃消息的安全硬上限。文档提到如果你经常恢复积累了大量小型工具结果消息的长会话可以在应用内用/config命令调整 message-count 压缩行为详见 docs/advanced-setup.md 的 “Message-Count Compaction Threshold” 一节。分叉不产生任何文件系统变化。再次强调这一边界--fork-session只影响会话记录不会动你的工作区也不涉及 git worktree。完成以上步骤后openclaude --resume session-id或其短形式-r和openclaude --continue短形式-c应能重新进入目标会话加--fork-session时新会话以独立 session ID 存在原 transcript 不变。如果report输出里看不到预期会话先确认执行目录、session ID以及该会话启动时是否使用了--no-session-persistence。【免费下载链接】openclauderuns anywhere. uses anything项目地址: https://gitcode.com/GitHub_Trending/op/openclaude创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考