Claude Code 세션이 30일 뒤 삭제되는 설정

오래된 Claude Code 세션이 /resume에 보이지 않는 데에는 두 가지 가능한 이유가 있습니다. 삭제되었거나, 아직 남아 있지만 선택기가 찾지 못하는 경우입니다.
1. Claude Code는 30일이 지나면 오래된 세션을 삭제합니다
Claude Code는 각 세션을 프로젝트별로 하나씩, ~/.claude/projects/ 아래에 .jsonl 파일로 저장합니다.
cleanupPeriodDays라는 설정이 있습니다. 기본값은 30입니다. Claude Code는 이 일수 동안 수정되지 않은 세션 파일을 정기적으로 아무 메시지 없이 삭제합니다. 경고도 없고, 휴지통도 없습니다. (Claude Desktop 앱에서 시작한 세션은 v2.1.248부터 예외이며, CLI 세션은 예외가 아닙니다)
이건 claude.ai 채팅이 아니라, 여러분의 기계에 있는 파일에 대한 이야기입니다
제 머신도 확인해 봤습니다. 제 프롬프트 기록은 3월까지 거슬러 올라가지만, 30일이 넘은 세션은 전부 사라져 있었습니다. 86개나요
이걸 막으려면 ~/.claude/settings.json을 열고 큰 숫자로 설정하세요:
{
"cleanupPeriodDays": 3650
}이건 약 10년입니다. 0은 "영구 보관"을 뜻하지 않고, 유효성 검사에 실패합니다(예전 버전에서는 0이면 세션 저장 자체를 멈추곤 했습니다). 그러니 그냥 큰 숫자를 쓰세요
이미 삭제된 세션은 복구되지 않습니다. 이제 여러분의 기기 어디에도 없습니다
2. 아직 남아 있지만, 선택기가 표시하지 못하는 경우입니다
세션이 30일 이내이거나 이미 설정 값을 올려 두었다면, 아마 아직 디스크에 남아 있을 겁니다. /resume이 놓치는 이유는 두 가지입니다:
- 현재 있는 프로젝트의 세션만 보여줍니다. 선택기에서
ctrl+a를 누르면 모든 프로젝트를 볼 수 있습니다
- 선택기에서 입력하는 검색어는 실제로 했던 말이 아니라 세션 제목에만 일치합니다. 제목은 보통 첫 메시지입니다. 예를 들면 "이거 고쳐줘"나 "오류를 봐줘" 같은 식입니다
따라서 주제는 기억나지만 폴더나 첫 메시지를 기억하지 못한다면, 선택기가 큰 도움이 되지 않을 수 있습니다
3. 세션 내부에서 검색하기
수동 방법. 파일들을 grep 하세요:
grep -ril "payload size" ~/.claude/projects/이 방법도 되지만, 원시 JSON이 나오고 어느 세션 파일인지 직접 알아내야 합니다. 그런 다음 올바른 폴더로 cd한 뒤 직접 claude --resume를 실행해야 합니다
제가 쓰는 방법. 그렇게 하는 게 지겨워서, 무료 오픈소스 CLI인 ccback 을 만들었습니다:
npm install -g ccback
ccback payload size이 도구는 모든 프로젝트의 모든 세션에서 여러분과 Claude가 쓴 모든 내용을(단어 기준과 의미 기준으로) 검색하고, 일치하는 메시지를 보여준 뒤, Enter를 누르면 원래 폴더에서 해당 세션을 다시 엽니다

솔직히 한 가지 말씀드리면: ccback는 같은 파일들을 읽기 때문에, Claude Code가 이미 삭제한 세션을 되살릴 수는 없습니다. 먼저 cleanupPeriodDays를 올리세요
한 줄 요약
- 30일이 지난 세션은 시작 시 삭제됩니다.
~/.claude/settings.json에"cleanupPeriodDays": 3650을 설정하세요
/resume은 하나의 프로젝트만 보여 주고 제목만 일치시킵니다.ctrl+a를 누르면 모든 프로젝트가 표시됩니다
- 실제로 했던 말을 검색하려면:
~/.claude/projects/에서grep -r를 쓰거나,ccback을 사용하세요
출처
- 원문: https://dev.to/adityashipshq/claude-code-sessions-disappeared-it-deletes-them-after-30-days-2887 (2026-10-11 · Aditya Ghadge)