Skip to main content
세션은 프로젝트 디렉토리에 연결된 저장된 대화입니다. Claude Code는 작업할 때 로컬에 저장하므로 중단한 지점부터 재개하거나, 다른 접근 방식을 시도하기 위해 분기하거나, 작업 간에 전환할 수 있습니다. 데스크톱 앱, 웹의 Claude Code, VS Code 확장은 각각 자신의 세션 기록을 유지합니다. 이 페이지는 CLI를 다룹니다.

세션 재개

세션은 작업할 때 로컬 대화 기록 파일에 지속적으로 저장되므로 종료하거나 /clear를 실행한 후에 세션으로 돌아갈 수 있습니다. 다음 진입점을 사용합니다: claude -p 또는 Agent SDK로 생성된 세션은 세션 선택기에 나타나지 않지만, 세션 ID를 claude --resume <session-id>에 전달하여 여전히 재개할 수 있습니다. 세션이 시작된 디렉토리에서 이를 실행합니다. 세션 ID 조회는 현재 프로젝트 디렉토리 및 해당 git worktree로 범위가 지정되므로, 다른 곳에서 생성된 세션은 No conversation found with session ID: <session-id>를 보고합니다.

세션 선택기가 찾는 위치

세션은 프로젝트 디렉토리별로 저장됩니다. 기본적으로 세션 선택기는 현재 worktree의 대화형 세션과 /add-dir로 현재 디렉토리를 추가한 다른 곳에서 시작된 세션을 표시합니다. Ctrl+W를 사용하여 저장소의 모든 worktree로 확장하거나 Ctrl+A를 사용하여 이 머신의 모든 프로젝트로 확장합니다. v2.1.169부터 /cd로 세션을 이동하면 새 디렉토리의 프로젝트 저장소로 재배치되므로 이후 해당 디렉토리의 선택기에 나타납니다. v2.1.196부터 이동된 세션은 충돌이나 강제 종료 후에도 이전 디렉토리의 선택기에서 제외된 상태로 유지됩니다. 이전 버전에서는 언더스코어와 같은 특수 문자가 포함된 이전 경로가 있을 때 깔끔하지 않은 종료 후 이전 디렉토리의 목록에 다시 나타날 수 있습니다. 같은 저장소의 다른 worktree에서 세션을 선택하면 그 위치에서 재개됩니다. 관련 없는 프로젝트에서 세션을 선택하면 cd 및 재개 명령을 클립보드에 복사합니다. 이름으로 재개하면 현재 저장소 및 해당 worktree 전체에서 확인됩니다. 두 형식 모두 정확한 일치를 찾고 다른 worktree에 있더라도 직접 재개합니다:

세션 이름 지정

세션에 설명적인 이름을 지정하여 세션 선택기에서 찾을 수 있고 이름으로 재개할 수 있도록 합니다. 이는 여러 작업을 병렬로 진행할 때 가장 중요합니다. 세션의 이름이 지정되면 claude --resume <name> 또는 /resume <name>으로 돌아갑니다. worktree 전체에서 이름 확인이 어떻게 작동하는지는 세션 재개를 참조합니다. 이름을 지정하지 않은 대화형 세션도 시작할 때 기본 표시 이름을 받습니다. Claude Code v2.1.196 이상이 필요합니다. 기본값은 작업 디렉토리의 이름과 두 문자 접미사를 결합합니다(예: my-app-3f). 이는 에이전트 보기claude agents --json 출력과 같은 실행 중인 세션의 목록에서 세션을 식별합니다. 기본값은 재개 핸들이 아닙니다: claude --resume <name>, /resume <name> 및 세션 선택기는 설정한 이름만 일치합니다. 세션의 이름을 지정하면 기본값이 바뀝니다.

세션 선택기 사용

세션 내에서 /resume을 실행하거나 인수 없이 claude --resume을 실행하여 대화형 세션 선택기를 엽니다. 다음 키보드 단축키를 사용하여 탐색, 검색 및 목록 확장: 각 행은 설정된 경우 세션 이름을 표시하고, 그렇지 않으면 대화 요약 또는 첫 번째 프롬프트와 마지막 활동 이후 경과 시간, 메시지 수 및 git 분기를 표시합니다. Ctrl+A로 모든 프로젝트로 확장한 후 프로젝트 경로가 나타납니다. /branch, /rewind 또는 --fork-session으로 생성된 분기된 세션은 루트 세션 아래에 그룹화됩니다. 를 눌러 그룹을 확장합니다.

세션 분기

분기는 지금까지의 대화 복사본을 만들고 이를 전환하여 원본은 그대로 유지합니다. 진행 중인 경로를 잃지 않고 다른 접근 방식을 시도하는 데 사용합니다. 세션 내에서 선택적 이름과 함께 /branch를 실행합니다:
이름을 생략하면 Claude Code는 대화의 첫 번째 프롬프트 이후로 새 분기의 이름을 지정합니다. v2.1.198부터 이는 압축 이후에도 적용됩니다. 이전 버전은 압축 요약을 지나 원본 첫 번째 프롬프트를 찾는 대신 리터럴 이름 Branched conversation으로 폴백했습니다. 명령줄에서 --continue 또는 --resume--fork-session과 결합합니다:
원본 세션은 변경되지 않으며 세션 선택기에서 사용 가능하게 유지됩니다. /branch 확인은 두 개의 세션 ID를 인쇄합니다: 현재 있는 새 분기와 원본입니다. 원본으로 돌아가려면 해당 ID를 /resume에 전달하거나, 세션 선택기를 사용하거나, /resume <original-name>을 실행합니다. “이 세션에 대해 허용”으로 승인한 권한은 새 분기로 이월되지 않습니다. 분기 없이 두 터미널에서 같은 세션을 재개하면 두 터미널의 메시지가 하나의 대화 기록으로 인터리브됩니다. 단일 세션 내에서 체크포인트 기반 되감기는 체크포인팅을 참조합니다.

세션 내 컨텍스트 관리

이 명령은 세션을 떠나지 않고 컨텍스트 윈도우에 있는 내용을 제어합니다:
  • /clear: 빈 컨텍스트로 새로 시작합니다. 이전 대화는 저장되고 /resume으로 재개 가능하거나, 동일한 Claude Code 프로세스에서 되감기 메뉴의 이전 세션 항목에서 재개할 수 있습니다
  • /compact [instructions]: 기록을 요약으로 바꾸고, 선택적으로 지정한 내용에 초점을 맞춥니다
  • /context: 현재 컨텍스트를 소비하는 것을 표시합니다
압축이 CLAUDE.md, 기술, 규칙과 상호 작용하는 방식은 컨텍스트 윈도우 가이드를 참조합니다. 언제 지우기 대 압축을 사용할지에 대한 전략은 모범 사례를 참조합니다.

세션 데이터 내보내기 및 찾기

/export를 실행하여 현재 대화를 클립보드에 복사하거나 일반 텍스트 파일로 저장합니다. 메시지와 도구 출력은 읽을 수 있는 텍스트로 렌더링됩니다. 파일 이름을 전달하여 해당 파일에 직접 작성합니다.

스크립트에서 대화 기록 접근

/export는 사람이 읽을 수 있도록 렌더링된 기록을 생성합니다. 아래 인터페이스는 스크립트가 파싱할 수 있는 구조화된 데이터를 생성합니다. 실행 결과의 JSON, 세션의 기록 파일 경로, 또는 이벤트의 라이브 스트림입니다. 스크립트를 트리거하는 것에 따라 선택합니다:
  • Claude를 한 번 실행하고 결과 캡처: --output-format json 또는 stream-json과 함께 claude -p를 호출하여 비대화형 실행의 결과, 세션 ID, 사용량 및 비용을 구조화된 JSON으로 캡처합니다.
  • 기존 세션에 질문하기: 세션 ID를 claude -p --resume에 전달하여 요약 요청과 같은 후속 프롬프트를 보내고 구조화된 응답을 캡처합니다.
  • 세션 이벤트에 반응: hooks상태 줄 명령이 입력으로 받는 transcript_path 필드를 읽습니다. SessionEnd hook은 세션이 끝날 때 기록을 보관할 수 있습니다.
  • TypeScript 또는 Python 앱에 Claude 포함: Agent SDK를 사용하여 각 메시지를 프로그래밍 방식으로 수신합니다.
아래 예제는 두 번째 인터페이스를 사용합니다. 기존 세션에 후속 프롬프트를 보내고 jq로 답변을 읽습니다:

기록이 저장되는 위치

기본적으로 기록은 ~/.claude/projects/<project>/<session-id>.jsonl에 JSONL로 저장되며, 여기서 <project>는 작업 디렉토리 경로에서 파생되고 영숫자가 아닌 문자는 -로 대체됩니다. 각 줄은 메시지, 도구 사용 또는 메타데이터 항목에 대한 JSON 객체입니다. 항목 형식은 Claude Code 내부 형식이며 버전 간에 변경되므로 이러한 파일을 직접 파싱하는 스크립트는 모든 릴리스에서 손상될 수 있습니다. 세션 데이터를 기반으로 구축하려면 /export 또는 스크립트 인터페이스 대신 사용합니다. 위치, 보존 및 쓰기 동작은 구성 가능합니다:

참고 항목

이 페이지들은 관련 세션 및 병렬 처리 메커니즘을 다룹니다: