Deepseek ArtifactsDeepseek Artifacts
Claude Code 会话

Claude Code 恢复会话:--resume、--continue 与修复方法

用 claude --continue、claude --resume 选择器或 session ID 重新打开上一次的 Claude Code 对话——顺带讲清会话存在哪里、命名怎么用,以及 resume 找不到会话时怎么修。

太长不看版

  • claude --continue(短写 claude -c)直接重新打开当前目录里最近一次对话,什么都不用选。claude --resume(短写 claude -r)会打开历史会话选择器,也可以带 session ID 或名字直接跳进去。
  • 每个会话都以明文 .jsonl 记录存在 ~/.claude/projects/<项目目录>/<session-id>.jsonl,默认保留 30 天(cleanupPeriodDays 设置可改)。
  • 会话还开着的时候用 /rename(或启动时 --name)起个好认的名字,之后 claude --resume <名字> 就能恢复——名字必须一字不差。
  • "No sessions match" 几乎总是目录不对或名字打错了:会话只属于启动它的那个目录。另外记得升级 Claude Code——仅 v2.1.288 一个版本就修了四个 resume 相关 bug。

How to Resume an Old Session in Claude Code

频道:Prompt & Flow2:37

看视频

Resume Claude Code Conversations FAST with One Simple Command

频道:Vinod Sharma1:33

看视频

Save and Resume Any Claude Code Session | Next Session Prompt Skill

频道:Kyle Chalmers | Data + AI4:27

看视频

CLI reference — official documentation

官方文档:code.claude.com/docs

看视频

本页的每一个 flag、路径和选择器状态,都对照官方 CLI reference 和 data-usage 文档核实过。上面的终端录屏是画面来源——包括忘记会话名之后的完整找回流程;两个人脸出镜的视频只作事实来源:resume 流程速览和跨机器搬会话的 markdown 交接工作流。

截图版权归各自创作者所有,并深链到对应时间点;未使用任何人脸镜头。

Claude Code 恢复会话分步走查

第 1 部分 — 用 claude --resume 恢复

  1. 1

    关闭会话之前先给它起个名

    会话好认才好恢复。录屏里,创作者让 Claude Code 给当前对话起名,执行 /rename [open session 1] 后得到确认 "Session renamed to: [open session 1]"——名字徽章就显示在输入框旁边。然后 /exit 关闭会话。什么都不会丢:记录仍然留在磁盘上。

    Claude Code session ending with the /rename open session 1 command confirmed by Session renamed to output and /exit typed at the prompt
    /rename [open session 1] 得到 "Session renamed to: [open session 1]" 确认,再 /exit——记录在关闭后依然保留。跳到 0:27 观看
  2. 2

    在项目目录里运行 claude --resume

    开个新终端,输入 claude --resume(短写 claude -r)。不带参数会打开历史会话选择器;带参数就直接进入 ID 或名字匹配的会话——这里输入的是 claude --resume [session 1]。录屏马上要演示的坑:必须在原会话启动的那个目录里运行。这次就是在 C:\Users\Z 主目录里启动的。

    Windows PowerShell prompt running claude --resume session 1 to reopen a previous Claude Code conversation by name
    在 PowerShell 里输入 claude --resume [session 1]——在主目录里运行,接下来就要出事了。跳到 1:04 观看
  3. 3

    通过文件夹信任提示

    Claude Code 第一次打开某个文件夹时会先做安全确认:"Is this a project you created or one you trust?" 选 "1. Yes, I trust this folder" 再回车。这个提示只管文件访问权限,跟会话无关——只是这个文件夹之前没被信任过,恢复流程之前都要先过这一关。

    Claude Code folder trust prompt for the C drive user folder with 1. Yes I trust this folder and 2. No exit choices before a resume attempt
    "Quick safety check"——1. Yes, I trust this folder / 2. No, exit——Claude Code 打开文件夹前先问一句。跳到 1:12 观看
  4. 4

    在 Resume session 选择器里搜索

    没有精确匹配时,claude --resume 会打开标题为 "Resume session" 的交互选择器:一个搜索框加当前项目的会话列表。输入即筛选,回车进入,Esc 清空或取消。带名字启动时搜索框会预填——这里是 [session——列表随输入实时更新。

    Claude Code Resume session picker searching for the name session and returning No sessions match with type to search hints
    "Resume session" 选择器边打字边筛选——回车选择,Esc 清空搜索。跳到 1:16 观看

第 2 部分 — 选择器里找不到时

  1. 5

    "No sessions match"——目录不对

    整段录屏的核心一课:明明会话存在,选择器却回答 "No sessions match "[session 1]"."——因为会话属于启动它的文件夹,而选择器默认只看当前项目。提示行给出了出路:"Ctrl+A to show all projects";v2.1.223 起还会自动搜索其他项目,视频里那台 v2.1.220 还没有这个能力。

    Claude Code resume picker showing No sessions match session 1 with the Ctrl+A show all projects hint after searching in the wrong directory
    "No sessions match "[session 1]"."——会话就在磁盘上,但选择器只看主目录。跳到 1:22 观看
  2. 6

    开一个普通 claude 会话来排查

    想按内容而不是靠猜名字找回对话,就先开一个正常的 claude 会话。录屏里的欢迎横幅还顺手点名了刚才的错误——"Note: You have launched claude in your home directory"——确认选择器空空如也的原因是目录,而不是会话丢了。

    Claude Code v2.1.220 welcome banner in the home directory where a fresh session is started to recover a lost conversation
    C:\Users\Z 里的 Claude Code v2.1.220 欢迎横幅——home directory 提示解释了选择器为什么是空的。跳到 1:33 观看
  3. 7

    让 Claude 帮你找上一个会话

    在新会话里用大白话描述需求:"I forgot the name of my last session. Name it so I can resume it." Claude Code 能直接读磁盘上自己的历史记录,所以选择器帮不上忙的地方它照样能查。

    Claude Code prompt asking I forgot the name of my last session, name it so I can resume it with the Gallivanting thinking indicator
    提交 "i forgot the name of my last session name it so i can resume it"——Claude 开始翻记录。跳到 1:50 观看
  4. 8

    Claude 按时间列出 ~/.claude/projects

    Claude 的办法是对自己的存储跑一条 shell 命令:Get-ChildItem "C:\Users\Z\.claude\projects" -Recurse -Filter *.jsonl | Sort-Object LastWriteTime -Descending。这正是文档里的布局——每段对话都是 ~/.claude/projects 下的一个 .jsonl 记录,按项目分子文件夹,默认保留 30 天。

    Claude Code running Get-ChildItem on the .claude projects folder sorted by LastWriteTime to list recent session transcripts
    对 C:\Users\Z\.claude\projects 跑 Get-ChildItem,只看 *.jsonl,按新旧排序——会话真正的存放处。跳到 1:54 观看

第 3 部分 — 用 session ID 找回

  1. 9

    Claude 用第一条消息认出每个记录

    最新的那个记录是当前会话,于是 Claude 把最近几条记录的第一条用户消息各拉出来——文件形如 C:\Users\Z\.claude\projects\C--Users-Z\<session-id>.jsonl——用来给它们起名:一个 WiFi 信号调研项目、一次 "lets go to phase 2"、一个 WhatsApp 项目搭建。看第一条消息是区分同项目会话的可靠办法。

    Claude Code pulling the first user message from each session jsonl transcript under the .claude projects folder to identify past sessions
    从 projects\C--Users-Z 下每个 .jsonl 里抽第一条用户消息,会话之间就能对上号。跳到 2:07 观看
  2. 10

    Claude 给出答案:claude --resume <id>

    回复直接点名目标并打印确切命令——"Resume it with: claude --resume 7d824e2f-2592-4625-b863-43d5f24670ab"——随后附上其余近期会话的表格,列出 Session ID、Last active、Opened with 三列,并注明其中一个 ID 是空的半途而废的开头,不值得恢复。

    Claude Code answer listing past sessions in a Session ID, Last active and Opened with table with a claude --resume command to reopen one
    "Resume it with: claude --resume 7d824e2f-…",附 Session ID、Last active、Opened with 表格。跳到 2:18 观看
  3. 11

    用 session ID 恢复会话

    session ID 就是钥匙。关掉这个帮忙排查的会话,cd 进项目目录,运行 claude --resume <session-id>——或者直接传 .jsonl 记录的绝对路径。想另起炉灶就加 --fork-session,复用记录但生成新的 session ID。对话会带着完整上下文重新打开。

    Claude Code prompt with resume 7d824e2f-2592-4625-b863-43d5f24670ab typed to reopen that exact past session by its session ID
    提示符里输入的 session ID——claude --resume <id> 重新打开那段确切的对话。跳到 2:32 观看

--resume、--continue 与会话选择器对比

Claude Code 提供了好几条回到旧对话的路,区别在于你要做多少决定:

  • 1claude --continue(短写 claude -c)——零决定。直接重开当前目录最近一次对话,v2.1.257 起也包括已结束的后台会话。适合"我刚把它关了"。
  • 2claude --resume(短写 claude -r)不带参数——交互选择器。列出当前项目的会话(仍在后台跑的会标 bg);Ctrl+A 扩大到所有项目,Esc 取消。适合一个目录里有多个会话时。
  • 3claude --resume <id | 名字 | 路径>——直达。接受 session ID、用 /rename 或 --name 起的准确名字、或 .jsonl 记录的绝对路径。v2.1.223 起,ID 不在当前项目时还会自动搜其他项目。
  • 4会话内的 /resume 和 /rename——不退出 REPL 就能切换对话,并给当前会话贴上名字,明天的 claude --resume <名字> 一击即中。名字全局唯一,撞了会自动加后缀。
  • 5claude --resume <id> --fork-session——分叉而不是续写。复用记录但生成新的 session ID,原会话历史原样冻结,相当于一个存档点。
  • 6claude attach <id>——接手仍在后台跑的会话。选择器会给活跃会话标 bg;attach 之后你的下一条提示就是那个会话的下一轮。

录屏只演示了 --resume,--continue 一帧都没出现——这是视频的取材范围,不是功能边界。官方 CLI reference 把两个 flag 并列写清;视频没讲到的部分,上面对比以文档为准。

Claude Code 恢复会话不生效——真正管用的修法

大多数"resume 没反应"都能归到下面其中一条,按顺序排查:

  • 1目录不对。选择器只看当前项目的会话——录屏就是在 C:\Users\Z 里这样翻车的。cd 回会话启动的那个文件夹;v2.1.223 起 --resume 也会搜其他项目,但站对目录仍然是最快的路。
  • 2版本太旧。仅 v2.1.288 就修了四件事:--resume 丢掉刚被 compaction 恢复的文件、恢复后的会话没保存上一轮回复(下次 resume 看起来提示没人答过)、记录加载被截断、以及恢复 2.1.286 及更早会话时丢失思考过程。v2.1.290 修了 --resume <session-id>;v2.1.292 修好了选择器里的计划模式状态。
  • 3会话过期了。记录默认保留 30 天——cleanupPeriodDays 设置可以改窗口——而无头的 -p 运行根本不落盘。claude rm 只是把会话从列表里拿掉,但被清理掉的记录谁也救不回来。
  • 4名字对不上。--resume 的名字匹配是精确匹配。录屏里的 claude --resume [session 1] 连错两次:真名字是 "open session 1",而且方括号本身也被当成了搜索词。去掉括号,带空格的名字加引号。
  • 5--continue 抓错了对象。它会跳过 print 模式(-p)/SDK 和 /loop 会话,而且只看当前目录——如果这期间有别的会话碰过这个文件夹,放弃它,改用 ID 恢复。
  • 6换了台电脑。~/.claude/projects 是本机的,笔记本上创建的会话在台式机上并不存在。要么按相同目录结构把项目文件夹拷过去,要么学 markdown 交接:让 Claude 把会话状态、决定和下一步写进一个文件,同步过去,在另一台机器上接着聊。

以上都不管用?直接打开 ~/.claude/projects 看 .jsonl 文件的时间戳。文件还在,claude --resume 加绝对路径就是最硬核的进法;文件不在,说明这段对话从没写进过磁盘。

Claude Code 恢复会话常见问题

相关 Claude Code 攻略