# Claude Code 세션 복구, 재부팅 후 이어서 작업하는 방법

claude --continue 와 --resume 로 대화를 다시 여는 방법, tmux-resurrect 로 tmux 배치를 복원하는 방법, hivemux 가 재부팅 뒤 칸마다 원래 Claude 대화를 다시 여는 방식을 설명합니다.

Source: https://hivemux.dev/ko/guides/resume-claude-code-sessions/

> Claude Code 대화는 로컬에 계속 저장되므로, 재부팅 뒤에도 그 폴더에서 claude --continue 로 가장 최근 대화를, claude --resume 으로 목록에서 고른 대화를 다시 열 수 있습니다. 세션이 여러 개면 tmux-resurrect 로 창 배치를 복원한 뒤 칸마다 직접 재개해야 합니다. hivemux 는 칸과 세션 ID 를 짝지어 저장해 두었다가 복원할 때 칸마다 claude --resume <id> 를 자동으로 입력합니다.

macOS 업데이트나 갑작스러운 재부팅 뒤에 Claude Code 세션 여러 개를 다시 띄우는 일은 생각보다 번거롭습니다. 어떤 폴더에서 어떤 대화를 하고 있었는지 기억해 내야 하기 때문입니다. 이 글은 Claude Code 자체 기능으로 대화를 다시 여는 방법, tmux 배치까지 되살리는 방법, hivemux 가 이 과정을 자동으로 처리하는 방식을 차례로 설명합니다.

## Claude Code 대화 다시 열기

Claude Code 는 작업하는 동안 대화를 로컬 파일에 계속 저장합니다. 공식 문서 기준 기본 위치는 `~/.claude/projects/<project>/<session-id>.jsonl` 입니다. 그래서 프로세스가 끝나도 대화를 다시 열 수 있습니다.

```sh
# 이 폴더의 가장 최근 대화
claude --continue

# 세션 목록에서 골라 열기
claude --resume

# 이름이나 세션 ID 로 바로 열기
claude --resume auth-refactor
```

실행 중인 세션 안에서는 `/resume` 으로 다른 대화로 바꿀 수 있습니다. 목록에서는 `↑` `↓` 로 고르고 `Enter` 로 엽니다. 기본 목록은 지금 폴더의 세션만 보여 주고, `Ctrl+A` 를 누르면 이 Mac 의 모든 프로젝트로 넓어집니다.

세션에 이름을 붙여 두면 다시 찾기가 훨씬 쉽습니다. 시작할 때 `claude -n auth-refactor` 로, 실행 중에는 `/rename` 으로 붙입니다. 이름을 정하지 않으면 Claude Code 가 첫 프롬프트를 요약한 제목을 붙이고, 그 제목으로도 `--resume` 할 수 있습니다.

## tmux-resurrect 로 배치 복원

tmux 안에서 여러 세션을 쓰고 있었다면 대화뿐 아니라 tmux 세션, 창, 분할 배치도 되살려야 합니다. tmux 서버는 재부팅하면 사라지기 때문입니다. 흔히 쓰는 조합은 tmux 플러그인 tmux-resurrect 와 tmux-continuum 입니다. resurrect 는 세션, 창, 분할, 작업 폴더를 저장하고 복원하며, continuum 은 이 저장을 주기적으로 자동 실행합니다.

다만 resurrect 는 칸 안에서 어떤 Claude 대화가 열려 있었는지는 모릅니다. 배치가 돌아와도 각 칸은 빈 셸이고, 칸마다 들어가 `claude --resume` 으로 맞는 대화를 직접 골라야 합니다.

## hivemux 의 세션 복구 방식

hivemux 는 모든 Claude Code 세션을 실행 중·입력 대기·완료 상태로 보여 주고, 나를 기다리는 세션으로 바로 이동하게 해 주는 tmux 사이드바입니다. `hivemux setup` 을 실행하면 tmux-resurrect 와 tmux-continuum 을 받아 오고(이미 `~/.tmux/plugins` 에 있으면 그것을 씀), 칸과 Claude 대화를 잇는 훅을 등록합니다.

```sh
curl -fsSL https://hivemux.dev/install.sh | bash
```

구성 요소의 역할은 다음과 같습니다.

- **Claude Code 훅:** 세션이 시작될 때마다 세션 ID 와 폴더를 해당 tmux 칸에 기록합니다.
- **resurrect + continuum:** 5분마다 세션, 창, 분할 배치, 작업 폴더를 저장합니다. 저장할 때 hivemux 가 칸과 세션 ID 목록도 함께 남깁니다.
- **hivemux-panes:** 복원할 때 저장된 칸과 세션 ID 를 짝지어 칸마다 `claude --resume <id>` 를 입력합니다.

## 재부팅 후 복원 순서

Ghostty 를 열면 다음 순서로 진행됩니다.

1. `hivemux-attach` 가 tmux 서버가 없으면 임시 세션 하나로 서버를 띄웁니다.
2. tmux-resurrect 가 마지막 저장본으로 세션, 창, 분할, 폴더를 다시 만듭니다.
3. `hivemux-panes restore` 가 셸 프롬프트 상태인 칸에만 원래 폴더로 이동해 `claude --resume <id>` 를 입력합니다.
4. 복원 전에 마지막으로 보던 세션에 붙습니다.

`/exit` 로 직접 끝낸 세션은 재개하지 않습니다. 자동 저장은 5분마다라서, 방금 만든 창이 복원 목록에 없을 수 있습니다. 중요한 작업을 시작했다면 `prefix` 다음 `Ctrl+S` 로 바로 저장하세요.

[Image: 재부팅 뒤 같은 배치로 돌아온 hivemux 사이드바와 Claude Code 세션 카드]

## 복원 확인과 제어

```sh
hivemux-panes list                           # 재부팅 후 재개할 칸 목록
cat ~/.local/share/hivemux/panes.log         # 재개 기록
touch ~/tmux_no_auto_restore                 # 다음 시작 때 복원 건너뛰기
tmux set-environment -g HIVEMUX_NO_RESUME 1  # 배치만 복원하고 Claude 는 재개하지 않기
```

재개 기록에 `busy` 가 있으면 그 칸이 셸 프롬프트가 아니어서 건너뛴 것이고, `pane missing` 이면 배치가 바뀌어 칸이 없어진 것입니다. 이럴 때는 그 폴더에서 `claude -c` 로 이어가면 됩니다. 더 많은 증상은 [문제 해결 문서](/ko/docs/troubleshooting/)를 참고하세요.

## FAQ

### claude --continue 와 claude --resume 의 차이는 무엇인가요?

claude --continue(-c) 는 지금 폴더의 가장 최근 대화를 바로 엽니다. claude --resume(-r) 은 세션 ID 나 이름을 주면 그 대화를 열고, 아무것도 주지 않으면 고를 수 있는 세션 목록을 띄웁니다.

### Claude Code 대화 기록은 어디에 저장되나요?

기본적으로 ~/.claude/projects/<project>/<session-id>.jsonl 에 저장됩니다. 공식 문서 기준 보관 기간은 30일이고 cleanupPeriodDays 설정으로 바꿀 수 있습니다.

### 재부팅 후 hivemux 가 어떤 칸의 Claude 를 다시 열지 않았습니다.

hivemux-panes list 로 재개할 칸 목록을, ~/.local/share/hivemux/panes.log 로 재개 기록을 확인하세요. 마지막 저장 전에 시작했거나 /exit 로 끝낸 세션은 재개하지 않으며, 이때는 그 폴더에서 claude -c 로 이어가면 됩니다.

### 한 번만 복원 없이 깨끗하게 시작할 수 있나요?

touch ~/tmux_no_auto_restore 를 실행하면 다음 시작 때 복원을 건너뜁니다. 파일을 지우면 다시 복원합니다.
