
tmux 안에서 Claude Code 두 개를 띄워 놓고 쓰다가 노트북을 재시작했더니 세션이 통째로 사라졌습니다. 그제야 tmux가 Wave나 Orca 같은 터미널 앱이 아니라 터미널 안에서 실행하는 명령어이고, 세션 저장도 기본 기능이 아니라 플러그인으로 붙이는 것이라는 걸 알았습니다. 같은 지점에서 헷갈리실 분들을 위해 정리합니다.
tmux는 무엇인가
tmux(terminal multiplexer)는 터미널 하나를 여러 칸으로 나누고, 그 안의 작업을 터미널 앱과 떼어 놓는 프로그램입니다. 터미널 앱은 화면을 보여 주는 창일 뿐이고, 실제 작업은 뒤에서 도는 tmux 서버가 붙들고 있습니다.
| 층 | 하는 일 |
|---|---|
| 터미널 앱 | iTerm, Wave, Orca, macOS 터미널. 화면만 보여 줍니다. |
| tmux 서버 | 앱을 닫아도 살아 있는 뒷단 프로세스입니다. |
| 세션 | 작업 묶음 하나. 이름으로 다시 붙습니다. |
| 창 | 탭에 해당합니다. 상태 줄에 [0], [1] 번호로 보입니다. |
| 패널 | 창을 나눈 칸. 칸마다 claude 같은 프로그램을 따로 띄웁니다. |
- 앱을 닫아도 살아 있습니다. 터미널 창을 닫거나 Ctrl+b 다음 d로 떨어져도 claude는 계속 돕니다.
- 재부팅하면 없어집니다. tmux 서버도 메모리 위의 프로세스라서 컴퓨터를 끄면 세션이 지워집니다.
- 저장은 플러그인으로 합니다. tmux-resurrect와 tmux-continuum을 깔면 배치를 저장하고 복원합니다.
cmux와는 어떻게 다른가
cmux는 Ghostty 엔진으로 만든 macOS용 터미널 앱입니다. Claude Code 같은 AI 에이전트를 여러 개 띄워 두는 사람을 위해 세로 탭, 에이전트가 입력을 기다릴 때 켜지는 알림, 내장 브라우저를 넣었습니다. iTerm이나 Wave와 같은 자리에 있는 앱이고, 그 안에서 tmux를 실행할 수도 있습니다.
| 항목 | 일반 터미널 앱 | tmux | cmux |
|---|---|---|---|
| 정체 | macOS 앱 | 터미널 안에서 실행하는 명령어 | macOS 앱(Ghostty 기반) |
| 창을 닫으면 | 작업도 종료 | 작업은 계속 돌고 나중에 다시 붙음 | 작업은 끝남. 다시 켜면 배치를 되살리고 에이전트 대화를 이어 감 |
| 재부팅 후 | 남지 않음 | 플러그인으로 배치·폴더 복원 | 기본으로 배치·폴더·출력 복원, 에이전트 대화 재개 |
| SSH가 끊기면 | 작업도 끊김 | 서버에서 계속 돌아서 안전 | 원격 tmux에 붙는 기능(cmux ssh-tmux)으로 안전하게 |
| AI 에이전트 편의 | 없음 | 없음(화면 나누기만) | 에이전트별 알림, 세로 탭에 git 브랜치·포트 |
보기 좋고 알림이 필요하면 cmux 같은 앱을 고르고, 창을 닫거나 SSH가 끊겨도 작업이 살아 있어야 하면 그 앱 안에서 tmux를 쓰면 됩니다. 둘은 겹쳐 쓰는 관계입니다. cmux는 2편: cmux는 tmux와 무엇이 다른가에서 자세히 다룹니다.
처음 쓰는 순서
세션을 만들고, 떨어졌다가, 다시 붙는 흐름만 익히면 됩니다.
# 1. 이름 붙인 세션 만들기 $ tmux new -s work # 2. Ctrl+b % 로 좌우 분할 후, 칸마다 실행 (이미 tmux 안이라 tmux를 또 치지 않습니다) $ claude # 3. Ctrl+b 다음 d 로 떨어지기 - claude는 뒤에서 계속 돕니다 # 4. 다시 붙기 $ tmux ls work: 1 windows (created Fri Oct 2 22:31:16 2026) $ tmux a -t work
자주 쓰는 단축키
모든 단축키는 Ctrl+b를 눌렀다 뗀 다음 키를 누릅니다. macOS의 Cmd가 아니라 Ctrl입니다.
| 키 | 하는 일 |
|---|---|
| % / " | 좌우로 나누기 / 위아래로 나누기 |
| 방향키 | 그 방향 패널로 바로 이동 |
| q 다음 숫자 | 번호가 뜬 사이에 숫자를 눌러 그 패널로 이동 |
| ; | 직전 패널로 돌아가기 |
| z | 지금 패널만 전체 화면으로, 다시 누르면 원래대로 |
| x | 지금 패널 닫기(안에서 돌던 claude도 같이 꺼집니다) |
| c / 0~9 | 새 창 만들기 / 그 번호 창으로 이동 |
| d | 떨어지기(detach) |
| [ | 스크롤 모드(나올 때는 q) |
재부팅해도 살리는 설정
tmux-resurrect는 세션·창·패널 배치와 각 패널의 작업 폴더를 파일로 저장하고, tmux-continuum은 그 저장을 15분마다 자동으로 하고 tmux를 켤 때 자동으로 복원합니다. 플러그인 관리자 TPM을 먼저 받고 설정 파일을 만듭니다.
$ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm # ~/.tmux.conf set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-resurrect' set -g @plugin 'tmux-plugins/tmux-continuum' # 패널에 보이던 화면 내용도 저장 set -g @resurrect-capture-pane-contents 'on' # 15분마다 자동 저장, tmux 시작 시 자동 복원 set -g @continuum-save-interval '15' set -g @continuum-restore 'on' run '~/.tmux/plugins/tpm/tpm'
설정을 저장한 뒤 tmux 안에서 Ctrl+b 다음 대문자 I를 누르면 플러그인이 설치됩니다. 이후 Ctrl+b 다음 Ctrl+s는 지금 바로 저장, Ctrl+b 다음 Ctrl+r은 수동 복원입니다. 재시작 직전에 Ctrl+s를 한 번 눌러 두면 마지막 15분도 놓치지 않습니다.
복원되는 것은 세션 이름, 창 번호, 패널 나눈 모양, 각 패널의 작업 폴더와 보이던 화면 내용입니다. 안에서 돌던 프로그램은 다시 켜지지 않습니다(vim, less 같은 일부만 예외). Claude Code는 대화가 디스크에 따로 저장되므로 복원된 패널에서 claude --continue로 마지막 대화를, claude --resume으로 예전 대화 목록을 엽니다.
처음 쓸 때 헷갈리는 것
- 지금 tmux 안인지 모르겠을 때:
echo $TMUX를 칩니다. 경로가 나오면 안, 아무것도 안 나오면 밖입니다. - 떨어진 뒤 다시 tmux를 쳐야 하는지: 아까 세션으로 돌아가려면
tmux a입니다. 그냥tmux를 치면 빈 새 세션이 하나 더 생깁니다. - 패널 두 개의 claude를 합치고 싶을 때: 대화끼리 합치는 기능은 없습니다. 한쪽에 지금까지 한 일을 파일로 정리하게 하고, 다른 쪽에서 그 파일을 읽게 하면 맥락을 넘길 수 있습니다.
- 마우스로 패널을 옮기고 싶을 때:
~/.tmux.conf에set -g mouse on을 넣으면 클릭 이동, 휠 스크롤, 경계 끌어서 크기 조절이 됩니다.
tmux 3.7 기준입니다. cmux 설명은 manaflow-ai/cmux 저장소를 참고했습니다. 플러그인: tmux-resurrect, tmux-continuum, tpm