핵심 요약
- claude --continue(축약형 claude -c)는 현재 폴더의 가장 최근 대화를 아무것도 묻지 않고 다시 엽니다. claude --resume(축약형 claude -r)은 과거 세션 피커를 열거나, 세션 ID 또는 이름을 넘기면 그 세션으로 바로 들어갑니다.
- 모든 세션은 ~/.claude/projects/<프로젝트 폴더>/<세션ID>.jsonl 경로의 평문 .jsonl 파일로 저장되며, 기본 30일간 유지됩니다(cleanupPeriodDays 설정).
- 세션이 열려 있을 때 /rename(또는 실행 시 --name)으로 알아보기 쉬운 이름을 붙여 두면 claude --resume <이름>으로 재개할 수 있습니다 — 이름은 한 글자까지 정확히 일치해야 합니다.
- "No sessions match"는 거의 항상 폴더가 틀렸거나 이름을 잘못 입력했다는 뜻입니다. 세션은 시작된 디렉터리에 묶입니다. Claude Code도 업데이트하세요 — v2.1.288 하나만 해도 resume 관련 버그 네 개를 고쳤습니다.
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
이 페이지의 모든 플래그, 경로, 피커 상태는 공식 CLI 레퍼런스 및 data-usage 문서와 대조해 검증했습니다. 위의 터미널 녹화가 시각 자료이자 — 세션 이름을 잊은 뒤의 전체 복구 흐름도 그렇습니다 — 얼굴이 나오는 두 영상은 사실 자료로만 씁니다. resume 흐름 개요와, 머신 사이에서 세션을 옮기는 markdown 핸드오프 방식입니다.
스크린샷의 저작권은 각 제작자에게 있으며 해당 타임스탬프로 딥링크됩니다. 얼굴이 나오는 프레임은 사용하지 않았습니다.
Claude Code 세션 재개, 단계별로
파트 1 — claude --resume으로 재개하기
- 1
세션을 닫기 전에 이름 붙이기
세션은 식별하기 쉬울수록 재개하기 쉽습니다. 녹화에서는 진행자가 Claude Code에게 열려 있는 대화의 이름을 지어 달라고 해서 /rename [open session 1]을 실행하고 "Session renamed to: [open session 1]" 확인을 받습니다 — 이름 배지가 입력 상자 옆에 표시됩니다. 그다음 /exit으로 세션을 닫습니다. 아무것도 지워지지 않습니다. 트랜스크립트는 디스크에 남습니다.

/rename [open session 1]에 대한 확인 "Session renamed to: [open session 1]", 이어서 /exit — 트랜스크립트는 닫은 뒤에도 살아 있습니다.0:27부터 보기 - 2
프로젝트 폴더에서 claude --resume 실행하기
새 터미널에서 claude --resume(축약형 claude -r)을 입력합니다. 인자 없이는 과거 세션 피커가 열리고, 인자를 넘기면 ID나 이름이 일치하는 세션으로 곧장 갑니다 — 여기서는 claude --resume [session 1]. 녹화가 보여주려는 함정: 원래 세션을 시작한 폴더에서 실행해야 합니다. 이번 실행은 홈 디렉터리 C:\Users\Z에서 이루어졌습니다.

PowerShell에 입력된 claude --resume [session 1] — 홈 디렉터리에서의 실행이 곧 문제가 됩니다.1:04부터 보기 - 3
폴더 신뢰 프롬프트 통과하기
Claude Code가 폴더를 처음 열 때는 짧은 안전 확인이 먼저 옵니다: "Is this a project you created or one you trust?" — "1. Yes, I trust this folder"를 고르고 Enter. 이 프롬프트는 세션이 아니라 파일 접근에 관한 것으로, 폴더를 아직 신뢰하지 않았을 때 나타나며 resume 흐름 앞에 매번 선행합니다.

"Quick safety check" — 1. Yes, I trust this folder / 2. No, exit — Claude Code가 폴더를 열기 전의 한 문제.1:12부터 보기 - 4
Resume session 피커에서 검색하기
정확한 일치가 없으면 claude --resume은 "Resume session" 제목의 대화형 피커를 엽니다. 현재 프로젝트의 세션 목록을 걸러 주는 검색 상자입니다. 입력하면 필터링되고, Enter로 선택, Esc로 지우거나 취소합니다. 이름을 넘기면 검색창에 미리 채워집니다 — 여기서는 [session — 목록은 입력에 따라 실시간으로 갱신됩니다.

"Resume session" 피커는 입력하는 대로 걸러 줍니다 — Enter 선택, Esc 검색 지우기.1:16부터 보기
파트 2 — 피커가 아무것도 못 찾을 때
- 5
"No sessions match" — 디렉터리가 틀렸다
녹화의 핵심 교훈: 세션이 존재하는데도 피커는 "No sessions match "[session 1]"."라고 답합니다. 세션은 시작된 폴더에 속하고, 피커는 우선 현재 프로젝트만 보기 때문입니다. 힌트 줄에 탈출구가 있습니다 — "Ctrl+A to show all projects" — v2.1.223부터는 다른 프로젝트도 자동으로 검색합니다. 영상의 v2.1.220 빌드는 그 이전입니다.

"No sessions match "[session 1]"." — 세션은 있는데 피커는 홈 디렉터리만 봅니다.1:22부터 보기 - 6
조사를 위해 평범한 claude 세션 시작하기
이름을 맞히는 대신 내용으로 대화를 되찾으려면 평범한 claude 세션을 시작합니다. 녹화의 환영 배너는 아까의 실수까지 짚어 줍니다 — "Note: You have launched claude in your home directory" — 피커가 비었던 건 디렉터리 문제였지 세션이 사라진 게 아니라는 확인입니다.

C:\Users\Z의 Claude Code v2.1.220 환영 배너 — home directory 경고가 피커가 비었던 이유를 설명합니다.1:33부터 보기 - 7
Claude에게 지난 세션을 찾아 달라고 하기
새 세션 안에서 원하는 것을 평문으로 말합니다: "I forgot the name of my last session. Name it so I can resume it." Claude Code는 디스크의 자기 기록을 읽을 수 있으므로, 피커가 도와주지 못한 상황에서도 이 요청은 통합니다.

"i forgot the name of my last session name it so i can resume it" 전송 — Claude가 기록을 뒤지기 시작합니다.1:50부터 보기 - 8
Claude가 ~/.claude/projects를 최신 순으로 나열
Claude의 답은 자기 저장소에 셸 명령을 돌리는 것입니다: Get-ChildItem "C:\Users\Z\.claude\projects" -Recurse -Filter *.jsonl | Sort-Object LastWriteTime -Descending. 문서에 나온 그 레이아웃 그대로 — 모든 대화는 ~/.claude/projects 아래의 .jsonl 하나이며, 프로젝트별 하위 폴더로 묶이고 기본 30일 유지됩니다.

C:\Users\Z\.claude\projects에 Get-ChildItem, *.jsonl만, 최신 순 — 세션이 실제로 사는 곳.1:54부터 보기
파트 3 — 세션 ID로 되찾기
- 9
Claude가 첫 메시지로 각 기록을 식별
가장 최근 기록은 현재 세션 자신이므로, Claude는 최근 기록들에서 첫 사용자 메시지를 각각 꺼냅니다 — C:\Users\Z\.claude\projects\C--Users-Z\<세션ID>.jsonl 같은 파일 — 이름을 붙이면: WiFi 신호 리서치 프로젝트, "lets go to phase 2" 실행, WhatsApp 프로젝트 셋업. 첫 메시지는 같은 프로젝트의 세션들을 가르는 믿을 만한 단서입니다.

projects\C--Users-Z 아래 각 .jsonl에서 첫 사용자 메시지를 뽑아 세션을 구분합니다.2:07부터 보기 - 10
Claude의 답: claude --resume <id>
답은 정답을 이름으로 지목하고 정확한 명령을 출력합니다 — "Resume it with: claude --resume 7d824e2f-2592-4625-b863-43d5f24670ab" — 이어서 나머지 최근 세션들을 Session ID, Last active, Opened with 열로 정리한 표, 그리고 하나의 ID는 빈 채로 끝난 시작이라 재개할 가치가 없다는 주석까지.

"Resume it with: claude --resume 7d824e2f-…"와 Session ID, Last active, Opened with 표.2:18부터 보기 - 11
세션 ID로 세션 재개하기
세션 ID가 손잡이입니다. 조사용 세션을 닫고, 프로젝트 폴더로 cd한 뒤 claude --resume <세션ID>를 실행하세요 — 아니면 .jsonl 트랜스크립트의 절대 경로를 넘겨도 됩니다. --fork-session을 붙이면 원본을 이어가는 대신 새 세션 ID를 발급합니다. 대화는 전체 맥락과 함께 다시 열립니다.

프롬프트에 입력된 세션 ID — claude --resume <id>가 그 대화를 그대로 다시 엽니다.2:32부터 보기
--resume vs --continue vs 세션 피커
Claude Code에는 과거 대화로 돌아가는 길이 여러 개고, 차이는 당신이 결정할 것의 양입니다:
- 1claude --continue(축약형 claude -c) — 결정 제로. 현재 디렉터리의 가장 최근 대화를 다시 엽니다. v2.1.257부터는 끝난 백그라운드 세션도 포함. "방금 잘못 닫았을 때"에 씁니다.
- 2claude --resume(축약형 claude -r) 인자 없이 — 대화형 피커. 이 프로젝트의 세션을 나열하고(실행 중인 백그라운드는 bg 표시), Ctrl+A로 전체 프로젝트로 넓히고, Esc로 취소. 한 폴더에 세션이 여러 개일 때 최선.
- 3claude --resume <id | 이름 | 경로> — 직행. 세션 ID, /rename이나 --name으로 지은 정확한 이름, .jsonl 트랜스크립트의 절대 경로를 받습니다. v2.1.223부터는 ID가 이 프로젝트에 없으면 다른 프로젝트도 검색합니다.
- 4세션 안의 /resume와 /rename — REPL을 나가지 않고 대화를 갈아타고, 현재 세션에 이름을 붙여 내일의 claude --resume <이름>이 한 번에 맞게 합니다. 이름은 유일하며, 충돌하면 변형 접미사가 붙습니다.
- 5claude --resume <id> --fork-session — 이어가기 대신 분기. 트랜스크립트는 재활용하되 새 세션 ID를 발급해, 원본 세션 이력은 체크포인트로 얼려 둡니다.
- 6claude attach <id> — 아직 백그라운드에서 도는 세션에 접속. 피커는 실행 중인 것에 bg를 붙입니다. attach하면 다음 프롬프트가 그 세션의 다음 턴이 됩니다.
녹화는 --resume만 다루고, --continue는 한 프레임도 나오지 않습니다 — 이건 영상의 범위지 기능의 한계가 아닙니다. 공식 CLI 레퍼런스는 두 플래그를 나란히 문서화합니다. 영상이 침묵하는 부분에서 위 비교는 문서를 따릅니다.
Claude Code 세션 재개가 안 될 때 — 통하는 해결법
"resume이 아무것도 안 한다"의 대부분은 아래 중 하나로 귀결됩니다. 순서대로 확인하세요:
- 1디렉터리가 틀렸다. 피커는 현재 프로젝트의 세션만 봅니다 — 녹화는 정확히 C:\Users\Z에서 이렇게 실패합니다. 세션을 시작한 폴더로 cd하세요. v2.1.223부터 --resume은 다른 프로젝트도 검색하지만, 올바른 폴더가 여전히 가장 빠릅니다.
- 2버전이 낡았다. v2.1.288 하나가 네 가지를 고쳤습니다: compaction이 막 복원한 파일을 --resume이 누락하는 문제, 재개된 세션이 턴의 마지막 응답을 저장하지 않는 문제(다음 resume에서 미답변처럼 보임), 로딩 중 트랜스크립트가 잘리는 문제, 2.1.286 이전 세션 재개 시 사고 과정이 사라지는 문제. v2.1.290은 --resume <세션ID>를, v2.1.292는 피커의 plan 모드를 고쳤습니다.
- 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/projects를 열어 .jsonl 파일의 타임스탬프를 확인하세요. 파일이 있으면 claude --resume에 절대 경로를 넘기는 것이 가장 확실한 돌파구고, 없다면 그 대화는 처음부터 디스크에 기록되지 않은 것입니다.
