인터랙티브 모드

인터랙티브 모드 (Interactive mode)

Claude Code 세션의 키보드 단축키, 입력 모드, 인터랙티브 기능을 한데 모은 레퍼런스예요. 단축키 표부터 명령 완성, vim 편집 모드, 백그라운드 셸, 메시지 큐잉, /diff·/btw 같은 고급 기능까지 인터랙티브 작업의 전 영역을 다룹니다. 단축키는 플랫폼과 터미널에 따라 달라질 수 있어요.

출처: 공식문서

본문

키보드 단축키

키보드 단축키는 플랫폼과 터미널에 따라 달라질 수 있어요. 전체 화면 렌더링에서는 transcript 뷰어에서 ?를 눌러 그곳의 단축키를 볼 수 있습니다. macOS 사용자: Option/Alt 키 단축키(Alt+B, Alt+F, Alt+D, Alt+Y, Alt+P)는 터미널에서 Option을 Meta로 구성해야 해요. 각 터미널 설정은 Enable Option key shortcuts on macOS을 참고하세요.

일반 컨트롤:

단축키 설명 컨텍스트
Ctrl+C 인터럽트 또는 입력 클리어 실행 중인 작업을 인터럽트. 아무것도 실행 중이 아니면 첫 번째 누름은 프롬프트 입력을 클리어하고 두 번째 누름은 Claude Code를 종료
Ctrl+X Ctrl+K 세션의 실행 중 백그라운드 서브에이전트 전부 정지, 남은 세션 동안 artifact 자동 답변 끔. 3초 안에 두 번 눌러 확인 서브에이전트 컨트롤
Ctrl+D Claude Code 세션 종료 첫 누름은 확인 힌트, 800ms 안에 두 번째 누름이 종료. 프롬프트에 텍스트가 있으면 Ctrl+D는 커서 뒤 문자를 삭제
Ctrl+G 또는 Ctrl+X Ctrl+E 기본 텍스트 에디터에서 열기 기본 텍스트 에디터에서 프롬프트나 커스텀 응답을 편집. Ctrl+X Ctrl+E는 readline 네이티브 바인딩. /config에서 Show last response in external editor를 켜면 Claude의 이전 답변을 #으로 주석 처리된 컨텍스트로 프롬프트 위에 붙임. 저장하면 Claude Code가 주석 블록을 제거
Ctrl+L 화면 다시 그리기 또는 클리어 전체 터미널 다시 그리기를 강제, 입력과 대화 기록 유지. 표시가 깨지거나 부분적으로 비면 복구에 사용. 전체 화면 렌더링에서는 화면도 클리어하고 위로 스크롤해 이전 메시지를 볼 수 있음
Ctrl+O transcript 뷰어 토글 상세 도구 사용·실행을 보여주고 각 어시스턴트 메시지에 타임스탬프와 사용 모델 표시. 기본으로 접히는 줄(예: 한 줄 Called slack 3 times로 보이는 MCP 호출, 다른 세션의 메시지의 한 줄 Message from @<sender> 미리보기)도 펼침
Ctrl+R 명령 기록 역방향 검색 이전 명령을 인터랙티브하게 검색
Ctrl+V 또는 Cmd+V(iTerm2) 또는 Alt+V(Windows·WSL) 클립보드에서 이미지 붙여넣기 커서에 [Image #N] 칩을 삽입해 프롬프트에서 위치로 참조. WSL에서는 Ctrl+VAlt+V 둘 다 바인딩되며, 터미널이 Ctrl+V를 가로채면 Alt+V 사용
Ctrl+B 실행 중인 작업 백그라운드 Bash 명령과 에이전트를 백그라운드로. Tmux 사용자는 두 번 누름
Ctrl+T Claude 태스크 체크리스트 토글 상태 영역에서 Claude의 할 일 체크리스트 표시/숨김. 백그라운드 작업 보기가 아님. 실행 중 셸·서브에이전트는 /tasks 사용
Ctrl+S 프롬프트 스태시 또는 복원 입력에 텍스트가 있으면 스태시하고 프롬프트 클리어. 빈 프롬프트에서 다시 누르면 스태시한 텍스트·커서 위치·붙여넣은 콘텐츠 복원
Ctrl+Z Claude Code 일시중단 Unix만. 프로세스를 셸에 일시중단. fg로 재개
Left/Right arrows 대화상자 탭 순환 권한 대화상자와 메뉴의 탭 사이 이동
Tab 자동완성 제안 수락, 또는 권한 답변에 주석 추가 프롬프트 입력에 자동완성 제안이 보이는 동안 선택된 제안 수락. 대부분의 권한 프롬프트에서 YesNo에 포커스된 채로 해당 옵션의 주석 필드를 열고 다시 누르면 닫음. 권한 프롬프트에 주석 추가 참고
Up/Down arrows 또는 Ctrl+P/Ctrl+N 커서 이동 또는 명령 기록 탐색 입력이 여러 시각적 줄에 걸치면(줄바꿈·멀티라인) 먼저 프롬프트 안에서 커서 이동. 커서가 첫·마지막 시각적 줄에 있으면 다시 눌러 명령 기록 탐색. 메시지가 큐에 있으면 첫 줄에서 Up은 대신 그것들을 되돌림
Esc Claude 인터럽트 또는 대화상자 닫기 턴 중간의 현재 응답·도구 호출을 정지해 방향을 바꾸게 함. Claude는 지금까지 한 작업을 유지. 큐에 넣은 메시지가 있으면 Claude Code가 다음에 보냄. 대화상자가 열려 있으면 Esc가 닫음. 권한 프롬프트에서 Esc는 주석 없는 No와 같은 거절
Esc + Esc 입력 초안 클리어, 또는 되감기 프롬프트 입력에 텍스트가 있으면 이중 Esc가 클리어하고 초안을 기록에 저장해 Up이 회수. 입력이 비어 있으면 이중 Esc되감기 메뉴를 열어 이전 시점의 코드·대화를 복원·요약
Shift+Tab, 또는 Node/Bun 런타임이 VT 입력 모드를 켜지 않을 때 Windows의 Alt+M 권한 모드 순환 default(모드 표시기에서 Manual로 표시), acceptEdits, plan, 가능하면 bypassPermissions, 그다음 auto를 순환. auto에서 첫 누름은 default로 전환. 권한 모드 참고. 파일 권한 프롬프트에서 같은 키는 열린 주석 필드를 닫음. 열린 필드가 없으면 프롬프트가 그 옵션을 제공할 때 남은 세션 동안 동작을 허용하는 옵션을 선택
Option+P(macOS) 또는 Alt+P(Windows/Linux) 모델 전환 프롬프트를 지우지 않고 모델 전환
Option+T(macOS) 또는 Alt+T(Windows/Linux) 확장 추론 토글 확장 추론 모드 활성화/비활성화. 항상 확장 추론을 쓰는 Fable 5.1·Fable 5에는 효과 없음. macOS에서 Option을 Meta로 구성하지 않아도 동작
Option+O(macOS) 또는 Alt+O(Windows/Linux) 패스트 모드 토글 패스트 모드 활성화/비활성화

텍스트 편집:

단축키 설명 컨텍스트
Ctrl+A 현재 줄 시작으로 커서 이동 멀티라인 입력에서 현재 논리 줄의 시작으로
Ctrl+E 현재 줄 끝으로 커서 이동 멀티라인 입력에서 현재 논리 줄의 끝으로
Ctrl+K 줄 끝까지 삭제 삭제한 텍스트를 붙여넣기용으로 저장
Ctrl+U 커서에서 줄 시작까지 삭제 삭제한 텍스트를 붙여넣기용으로 저장. 멀티라인 입력에서 줄을 가로질러 반복해 클리어. macOS에서 iTerm2·Terminal.app을 포함한 터미널 에뮬레이터는 Cmd+Backspace를 이 단축키에 매핑
Ctrl+W 이전 공백까지 삭제 삭제한 텍스트를 붙여넣기용으로 저장. 한 번의 누름이 경로 전체나 --flag=value를 제거. 이전 단어만 지우려면 macOS에서 Option+Delete, Windows에서 Ctrl+Backspace
Ctrl+Y 삭제한 텍스트 붙여넣기 Ctrl+K, Ctrl+U, Ctrl+W 같은 단어·줄 삭제 단축키로 마지막에 삭제한 텍스트를 붙여넣음
Alt+Y(Ctrl+Y 후) 붙여넣기 기록 순환 붙여넣은 뒤 이전에 삭제한 텍스트를 순환. macOS에서 Option as Meta 필요
Alt+B 한 단어 뒤로 커서 이동 단어 탐색. macOS에서 Option as Meta 필요
Alt+F 한 단어 앞으로 커서 이동 현재 단어의 끝, 또는 커서가 단어 사이면 다음 단어의 끝으로. macOS에서 Option as Meta 필요
Alt+D 단어 끝까지 삭제 현재 단어의 끝, 또는 커서가 단어 사이면 다음 단어의 끝까지 삭제. 삭제한 텍스트를 붙여넣기용으로 저장. macOS에서 Option as Meta 필요
Ctrl+_ 또는 Ctrl+Shift+- 마지막 입력 편집 실행 취소 이전 입력 텍스트와 커서 위치 복원

편집 단축키의 단어 경계: 단어 단축키 Alt+B, Alt+F, Alt+D, Option+Delete, Ctrl+Backspace는 단어를 글자와 숫자의 연속으로 취급하므로 _, ., / 같은 구두점이 단어를 나눕니다. 프롬프트에 src/utils/foo.ts가 있으면 Alt+B를 반복해서 누르면 ts, foo, utils, src의 시작에서 멈춥니다. Ctrl+W는 다릅니다. 구두점을 무시하고 이전 공백까지 삭제하므로, 한 번의 누름이 src/utils/foo.ts 전체를 제거합니다. 한자·일본어처럼 공백 없이 쓰는 텍스트에서 단어 단축키는 여전히 한 단어씩 이동·삭제합니다. 이 readline 관례는 Claude Code v2.1.261 이상에서 적용되며, 이전 버전에서 켰던 keybindingFlavor 설정은 deprecated이고 효과가 없습니다. 이 단축키들은 키바인딩 설정 파일에서 재매핑할 수 없습니다(거기에 해당 동작이 없음).

테마와 표시:

단축키 설명 컨텍스트
Ctrl+T 코드 블록 구문 강조 토글 /theme 선택기 메뉴 안에서만 동작. Claude 응답의 코드가 구문 색상을 쓰는지 제어

멀티라인 입력:

방법 단축키 컨텍스트
빠른 이스케이프 \ + Enter 모든 터미널에서 동작
Option 키 Option+Enter macOS에서 Option as Meta 활성화 후
Shift+Enter Shift+Enter iTerm2, WezTerm, Ghostty, Kitty, Warp, Apple Terminal, Windows Terminal에서 네이티브. 다른 터미널은 Enter multiline prompts 참고
컨트롤 시퀀스 Ctrl+J 설정 없이 모든 터미널에서 동작
붙여넣기 모드 직접 붙여넣기 코드 블록, 로그용

빠른 명령:

단축키 설명 참고
시작의 / 명령 또는 스킬 commandsskills 참고
시작의 ! 셸 모드 명령을 직접 실행하고 그 출력을 세션에 추가하며 Claude가 응답
@ 파일 경로 멘션 파일 경로 자동완성 촉발. 크로스 세션 메시징 세션에서 @ 뒤에 글자 한 개 이상을 입력하면 이 머신의 다른 라이브 세션도 제안. Claude Code v2.1.232 이상 필요
: 이모지 숏코드 전체 :name:을 타이핑해 이모지 삽입, 또는 두 글자 이상으로 제안. 이모지 숏코드 참고. Claude Code v2.1.217 이상 필요
빈 입력의 ? 단축키 도움말 패널 토글 입력에 이미 텍스트가 있으면 ?는 문자를 삽입

Transcript 뷰어 (Ctrl+O로 토글, 열려 있을 때): /tui를 인자 없이 실행해 어떤 렌더러가 활성인지 확인하세요. Ctrl+Etranscript:toggleShowAll로 재바인딩할 수 있어요.

단축키 설명
? 키보드 단축키 도움말 패널 토글. 전체 화면 렌더링 필요
{ / } 이전·다음 사용자 프롬프트로 점프, vim 문단 이동처럼. 전체 화면 렌더링 필요
Ctrl+E 모든 콘텐츠 표시 토글. 클래식 렌더러에서만, 전체 화면 렌더링에서는 없음
[ 전체 대화를 터미널 네이티브 스크롤백에 써서 Cmd+F, tmux 복사 모드 등 네이티브 도구가 검색하게 함. 전체 화면 렌더링 필요
v 대화를 임시 파일에 쓰고 $VISUAL 또는 $EDITOR에서 열기. 전체 화면 렌더링 필요
q, Ctrl+C, Esc transcript 뷰 종료. 셋 다 transcript:exit로 재바인딩 가능

음성 입력:

단축키 설명 참고
Space 길게 또는 탭 음성 받아쓰기 음성 받아쓰기 활성화 필요. 길게 눌러 녹음하거나 /voice tap으로 탭 토글. 재바인딩 가능

명령

Claude Code에서 /를 입력해 사용 가능한 명령을 보거나, / 뒤에 아무 글자를 입력해 필터링할 수 있어요. / 메뉴는 내장 명령, 번들·사용자 작성 스킬, 플러그인MCP 서버가 기여한 명령을 나열합니다. 일부 내장 명령은 플랫폼이나 플랜에 따라 모든 사용자에게 보이지 않고, 몇몇 명령은 의도적으로 메뉴에서 숨겨 전체 이름을 입력할 때 실행됩니다.

전체 화면 렌더링에서 / 명령과 @ 파일 제안 목록은 마우스에도 응답합니다. 호버로 줄을 강조하고 클릭으로 수락합니다. Claude Code에 포함된 명령 전체 목록은 commands 레퍼런스를 보세요.

프롬프트 중간에서 명령 완성하기: 명령 완성은 프롬프트 중간에서도 동작합니다. 공백 뒤에 /를 입력하고 이름의 첫 글자를 쓰세요. run the tests, then /com처럼요. 이름이 그 글자로 시작하는 명령만 매칭하므로 /tmp/notes.md 같은 파일 경로는 목록을 열어두지 않습니다. Claude Code는 명령이 메시지를 시작할 때만 스스로 실행합니다.

  • 전체 화면 렌더링: 입력하는 동안 매치가 목록으로 열리고 강조된 줄이 없으므로 Enter는 입력한 프롬프트를 그대로 보냅니다. Tab으로 상위 매치를 삽입하거나 화살표 키와 Enter로 줄 선택.
  • 전체 화면 밖: 상위 매치의 나머지가 커서에 ghost 텍스트로 나타나고, 더 매칭되면 +2 같은 개수가 표시됩니다. Tab으로 유일한 매치 삽입, 또는 여러 개 매칭되면 목록을 열고 화살표 키와 Enter로 줄 선택.

두 렌더러 모두에서 홀로 있는 프롬프트 중간 /Tab을 누르면 모든 명령을 나열합니다. 플러그인 스킬은 이름 자체로도 매칭되므로 /deploymyplugin:deploy-app 스킬을 찾습니다. 매치를 삽입하면 Claude Code가 전체 /myplugin:deploy-app을 씁니다.

Vim 에디터 모드

/config → Editor mode로 vim 스타일 편집을 활성화합니다. Claude Code는 Ctrl+Otranscript 뷰어를 토글하거나 /config 같은 패널을 열고 닫을 때 vim 모드와 커서 위치를 유지해요. NORMAL 모드에서 프롬프트를 떠나면 돌아올 때도 NORMAL 모드이고 커서는 둔 곳에 있습니다.

모드 전환:

명령 동작 출발 모드
Esc 또는 Ctrl+[ NORMAL 모드 진입. Kitty 키보드 프로토콜을 쓰는 터미널에서는 Ctrl+[가 v2.1.242 이상 필요 INSERT, VISUAL
i 커서 앞에 삽입 NORMAL
I 줄 시작에 삽입 NORMAL
a 커서 뒤에 삽입 NORMAL
A 줄 끝에 삽입 NORMAL
o 아래에 줄 열기 NORMAL
O 위에 줄 열기 NORMAL
v 문자 단위 비주얼 선택 시작 NORMAL
V 줄 단위 비주얼 선택 시작 NORMAL

INSERT 모드 키 시퀀스 재매핑: vimInsertModeRemaps 설정은 두 키 INSERT 모드 시퀀스를 Escape에 매핑해, jj 같은 매핑이 NORMAL 모드로 돌려보냅니다. Claude Code v2.1.208 이상 필요. 다음 ~/.claude/settings.json 예는 vim 모드를 켜고 jj를 Escape에 매핑합니다:

{
  "editorMode": "vim",
  "vimInsertModeRemaps": { "jj": "<Esc>" }
}

각 키는 정확히 순서대로 입력하는 두 개의 인쇄 가능한 문자이고, "<Esc>"만 지원 대상입니다. 다른 길이나 대상을 가진 항목은 무시됩니다. 시퀀스의 첫 문자를 입력하면 보통대로 삽입됩니다. 1초 안에 두 번째 문자를 누르면 그 대기 문자를 제거하고 NORMAL 모드로 전환하며, 두 문자 모두 입력에 남기지 않습니다. 1초가 지나거나 다른 키가 오면 두 문자 모두 리터럴 텍스트로 남으므로, 두 키 사이에 멈추면 시퀀스를 포함한 단어를 여전히 타이핑할 수 있습니다. Claude Code는 이 설정을 사용자 설정 파일, --settings 플래그, 관리 설정에서만 읽습니다. 프로젝트의 .claude/settings.json이나 .claude/settings.local.json의 항목은 무시되므로, 체크아웃한 리포가 키 입력을 재매핑할 수 없습니다.

탐색(NORMAL 모드):

명령 동작
h/j/k/l 왼쪽/아래/위/오른쪽 이동
Space 오른쪽 이동
w 다음 단어
e 단어 끝
b 이전 단어
0 줄 시작
$ 줄 끝
^ 첫 비공백 문자
gg 입력 시작
G 입력 끝
f{char} 문자의 다음 발생으로 점프
F{char} 문자의 이전 발생으로 점프
t{char} 문자의 다음 발생 바로 앞으로 점프
T{char} 문자의 이전 발생 바로 뒤로 점프
; 마지막 f/F/t/T 동작 반복
, 마지막 f/F/t/T 동작을 역방향으로 반복
/ Ctrl+R과 같은 역방향 기록 검색 열기. 빈 검색 프롬프트는 힌트를 보여줌: Esci/을 눌러 명령 메뉴를 열기

참고: vim NORMAL 모드에서 커서가 입력의 시작이나 끝에 있어 더 이동할 수 없으면 j/k/가 명령 기록을 탐색합니다. 빈 프롬프트의 는 INSERT뿐 아니라 NORMAL 모드에서도 agent view를 엽니다. v2.1.219 이전에는 빈 프롬프트의 가 NORMAL 모드에서 아무것도 하지 않았습니다.

편집(NORMAL 모드):

명령 동작
x 문자 삭제
dd 줄 삭제
D 줄 끝까지 삭제
dw/de/db 단어/끝/뒤로 삭제
df{char}/dt{char} 문자의 다음 발생까지·포함, 또는 그 직전까지 삭제
cc 줄 변경
C 줄 끝까지 변경
cw/ce/cb 단어/끝/뒤로 변경
s 문자 대치: 커서 아래 문자를 삭제하고 INSERT 모드 진입. Claude Code v2.1.211 이상 필요
S 줄 대치: 줄을 클리어하고 INSERT 모드 진입. Claude Code v2.1.211 이상 필요
yy/Y 줄 yank(복사)
yw/ye/yb 단어/끝/뒤로 yank
p 커서 뒤에 붙여넣기
P 커서 앞에 붙여넣기
>> 줄 들여쓰기
<< 줄 내어쓰기
J 줄 연결
u 실행 취소
. 마지막 변경 반복

텍스트 객체(NORMAL 모드): 텍스트 객체는 d, c, y 같은 연산자와 함께 동작합니다.

명령 동작
iw/aw 내부/주변 단어
iW/aW 내부/주변 WORD(공백 구분)
i"/a" 내부/주변 큰따옴표
i'/a' 내부/주변 작은따옴표
i(/a( 내부/주변 괄호
i[/a[ 내부/주변 대괄호
i{/a{ 내부/주변 중괄호

비주얼 모드: v로 문자 선택, V로 줄 선택을 누르세요. 이동이 선택을 확장하고 연산자가 직접 작동합니다.

명령 동작
d/x 선택 삭제
y 선택 yank
c/s 선택 변경
p 선택을 레지스터 콘텐츠로 대체
r{char} 선택된 모든 문자를 {char}로 대체
~/u/U 선택 대소문자 토글/소문자/대문자
>/< 선택된 줄 들여쓰기/내어쓰기
J 선택된 줄 연결
o 커서와 앵커 교환
iw/aw/i"/… 텍스트 객체 선택
v/V 문자/줄 선택 토글, 또는 종료

Ctrl+V의 블록 단위 비주얼 모드는 지원되지 않습니다.

명령 기록

Claude Code는 타이핑한 프롬프트의 기록을 유지하고, Up-arrow 회수는 같은 프로젝트의 이전 세션 프롬프트에 도달합니다:

  • 입력 기록은 작업 디렉터리별로 저장됩니다
  • /clear를 실행하면 새 세션이 시작됩니다. 회수는 새 세션의 프롬프트를 먼저 나열하고 이후 이전 세션의 프롬프트가 옵니다. 이전 세션의 대화는 보존되며 재개할 수 있습니다
  • 같은 프롬프트를 연속 두 번 제출하면 기록 항목 하나로 기록되므로, Up을 누르면 이전의 구별되는 프롬프트로 갑니다
  • 붙여넣은 텍스트가 있던 프롬프트를 회수하면 재제출 시 전체 붙여넣기 콘텐츠를 다시 보냅니다. 그 콘텐츠가 이후 정리되었다면 Claude Code는 리터럴 [Pasted text #N] 문자열을 보내지 않습니다. 프롬프트에 무슨 일이 일어나는지는 대량 콘텐츠 붙여넣기 참고
  • !를 쓰는 기록 확장은 기본으로 비활성화

Ctrl+R 역방향 검색: Ctrl+R을 눌러 명령 기록을 인터랙티브하게 검색하세요. 전체 화면 렌더링에서는 Ctrl+R이 검색 대화상자를 엽니다. 타이핑해 필터하고, Up·Down으로 매치를 이동하며, Ctrl+S로 범위를 이 세션·이 프로젝트·모든 프로젝트로 순환합니다. EnterTab으로 매치를 프롬프트 입력에 두거나 Esc로 취소합니다. 아래 단계는 클래식 렌더러의 인라인 검색을 설명합니다:

  1. 검색 시작: Ctrl+R로 역방향 기록 검색 활성화
  2. 쿼리 입력: 이전 명령에서 검색할 텍스트 입력. 검색어가 매칭 결과에서 강조
  3. 매치 탐색: Ctrl+R을 다시 눌러 더 오래된 매치로 순환
  4. 검색 범위: 인라인 검색은 항상 모든 프로젝트의 프롬프트를 검색
  5. 매치 수락: Tab이나 Esc로 현재 매치를 수락하고 편집 계속, Enter로 수락하고 즉시 실행
  6. 검색 취소: Ctrl+C로 취소하고 원래 입력 복원, 빈 검색에서 Backspace로 취소

인라인 검색은 전체 프롬프트 기록을 최신순으로 스캔하고 중복은 최신 발생으로 접습니다. 전체 화면 대화상자는 선택한 범위의 전체 프롬프트 기록을 최신순으로 검색하며 중복은 최신 발생으로 접습니다. 가장 최근 프롬프트가 즉시 나타나고 Claude Code가 나머지를 로드하면서 오래된 프롬프트의 매치가 채워집니다. 매칭 프롬프트는 검색어를 강조해 표시됩니다. 매치 수락이나 검색 취소는 Claude Code가 기록을 로드하는 동안에도 즉시 적용됩니다.

백그라운드 Bash 명령

Claude Code는 Bash 명령을 백그라운드에서 실행하는 것을 지원해, 긴 프로세스가 실행되는 동안 계속 작업할 수 있게 합니다.

백그라운드 동작 방식: Claude Code가 명령을 백그라운드로 실행하면 비동기로 실행하고 즉시 백그라운드 태스크 ID를 반환합니다. 명령이 백그라운드에서 계속 실행되는 동안 Claude Code는 새 프롬프트에 응답할 수 있습니다. 백그라운드로 실행하려면: (a) Claude Code에게 백그라운드로 명령을 실행하라고 프롬프트하거나, (b) Ctrl+B를 눌러 일반 Bash 도구 호출을 백그라운드로 옮깁니다. Tmux 사용자는 tmux의 프리픽스 키 때문에 Ctrl+B를 두 번 눌러야 합니다.

주요 기능:

  • 출력은 파일에 쓰여지고 Claude는 Read 도구로 가져올 수 있습니다
  • 백그라운드 태스크는 추적·출력 검색을 위한 고유 ID를 가집니다
  • 백그라운드 태스크는 Claude Code가 종료될 때 자동 정리됩니다. macOS·Linux에서 /tasks로 백그라운드 태스크를 정지하거나 Claude Code가 종료 시 정지하면, setsidtimeout 아래에서 시작된 것처럼 태스크 셸에서 분리된 프로세스도 정지합니다
  • 세션을 종료하는 대신 백그라운드하면 백그라운드 태스크는 백그라운드 세션에서 계속 실행됩니다. 실행 중 세션 백그라운드 참고
  • 출력이 5GB를 넘으면 백그라운드 태스크는 자동 종료되고 stderr에 이유를 설명하는 메모가 남습니다
  • macOS·Linux에서 운영체제가 메모리 압력을 알리면 Claude Code는 세션이 최소 30분 유휴하고 턴·서브에이전트가 실행 중이 아닐 때 실행 중인 백그라운드 태스크를 종료합니다. CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP1로 설정해 끄세요. Claude Code v2.1.193 이상 필요
  • 서브에이전트가 소유한 백그라운드 명령은 시간 제한이 없습니다. 단, 포그라운드로 실행되는 서브에이전트가 소유한 명령은 그 서브에이전트가 최종 응답을 줄 때 끝납니다. 도구 레퍼런스의 Background commands 참고. v2.1.218 이전에는 메모리 압력 수확도 이전의 서브에이전트 명령 60분 제한도 Ctrl+B로 백그라운드된 명령에는 적용되지 않았습니다

모든 백그라운드 태스크 기능을 끄려면 CLAUDE_CODE_DISABLE_BACKGROUND_TASKS 환경변수를 1로 설정하세요. 자세한 내용은 환경변수를 보세요.

흔한 백그라운드 명령: 빌드 도구(webpack, vite, make), 패키지 매니저(npm, yarn, pnpm), 테스트 러너(jest, pytest), 개발 서버, 장기 실행 프로세스(docker, terraform).

! 프리픽스 셸 모드: 입력 앞에 !를 붙여 Claude를 거치지 않고 셸 명령을 직접 실행하세요:

! npm test
! git status
! ls -la

셸 모드는: 명령과 출력을 대화 컨텍스트에 추가하고, 실시간 진행·출력을 보여주며, 장기 실행 명령에 같은 Ctrl+B 백그라운드를 지원하고, Claude가 명령을 해석하거나 승인할 필요가 없으며, 기록 기반 자동완성을 지원하고(부분 명령을 입력하고 Tab을 눌러 현재 프로젝트의 이전 ! 명령에서 완성), v2.1.193부터 모든 플랫폼에서 라이브 파일 경로 자동완성을 지원합니다(./src/~/처럼 슬래시를 포함한 토큰을 입력하면 매칭 파일·디렉터리 드롭다운이 보이고 Tab으로 수락). Windows에서도 슬래시를 사용하세요. 드롭다운은 /로 촉발되고 \가 아닙니다. 빈 프롬프트에서 Escape, Backspace, Ctrl+U로 종료합니다. 빈 프롬프트에 !로 시작하는 텍스트를 붙여넣으면 타이핑한 !처럼 자동으로 셸 모드에 들어갑니다.

엄격 샌드박스 모드 아래 나열된 것 중 하나가 아닌 한, 셸 모드에서 입력하는 명령은 샌드박싱을 켰더라도 샌드박스 밖에서 실행됩니다. 샌드박스는 Claude가 실행하는 명령에 적용되기 때문입니다.

명령 출력이 transcript에 들어오면 Claude가 자동으로 응답하므로, ! npm test를 실행하고 두 번째 프롬프트 없이 실패 설명을 얻을 수 있습니다. 응답 비용은 일반 프롬프트를 보내는 것과 같습니다. 응답 없이 출력만 컨텍스트에 추가하는 이전 동작을 복원하려면 settings.json에서 respondToBashCommandsfalse로 설정하세요. v2.1.186 이전에는 셸 모드가 항상 응답 없이 출력을 컨텍스트에 추가했습니다.

Claude가 작업하는 동안 메시지 큐잉

Claude가 작업하는 동안 메시지를 입력하고 Enter를 누르세요. Claude Code는 턴을 인터럽트하는 대신 메시지를 큐에 넣고, 보낼 때까지 입력 박스 위에 큐 항목을 나열합니다. ! 셸 명령과 대부분의 명령도 같은 방식으로 큐에 넣을 수 있습니다. 단, /status처럼 보내자마자 Claude Code가 실행하는 명령은 예외입니다.

언제 큐에 넣은 것을 보내나: 큐 항목이 Claude에 도달하는 때는 무엇을 큐에 넣었느냐에 달려 있습니다.

  • 메시지: Claude가 도구 호출을 실행하는 동안 메시지를 큐에 넣으면, Claude Code는 그 도구 호출이 끝나자마자 같은 턴 안에서 Claude에게 전달합니다. 턴이 끝날 때 메시지가 여전히 큐에 있으면 Claude Code는 가장 오래된 것 하나만 다음 턴으로 보냅니다. 나머지는 큐에 남아 같은 규칙을 따릅니다. 턴의 도구 호출이 끝나면 Claude Code가 그 턴에 Claude에게 전달하거나, 다음 다음 턴으로 가장 오래된 것을 보냅니다
  • 명령·셸 명령: Claude Code는 턴이 끝날 때까지 보류하다가 하나씩 실행합니다

Esc를 눌러 대신 턴을 인터럽트하세요. Claude Code는 큐에 넣은 것을 유지하고 바로 보냅니다. Claude Code는 큐에 넣지 않고 보내자마자 실행하는 일부 명령이 있는데, 그중 /model, /effort, /fast가 있습니다. 셋 다 모델, effort 수준, 패스트 모드 같은 설정 하나를 바꿉니다. Claude Code가 새 설정을 이미 작업 중인 턴에 적용할지, 다음 턴부터 적용할지는 명령마다 다릅니다:

  • /model: 캐시 경고를 확인하면(보인다면) Claude Code는 그 턴에 다음으로 만드는 요청에 변경을 적용
  • /effort: 캐시 경고를 확인하면(보인다면) Claude Code는 그 턴에 다음으로 만드는 요청에 변경을 적용
  • /fast: Claude Code는 턴이 시작될 때 활성이던 패스트 모드 설정을 유지하므로, 속도 변경은 다음 턴부터 적용됩니다. 현재 모델이 패스트 모드를 지원하지 않으면 켜는 것이 모델도 전환하며, Claude Code는 그 턴의 다음 요청부터 새 모델을 사용

큐에 넣은 것 되돌리기: 입력 박스의 첫 줄에서 Up을 눌러 큐에 넣은 메시지와 명령을 되돌리세요. Claude Code가 큐에서 제거하고 입력 박스에 타이핑한 텍스트 앞에 한 줄씩 넣습니다. 텍스트를 편집하고 Enter를 눌러 하나의 항목으로 다시 큐에 넣거나, 입력 박스를 클리어해 버립니다. Claude Code는 입력 박스가 비어 있고 큐에 아무것도 없을 때만 큐에 넣은 셸 명령을 되돌리며, 그때 입력 박스를 셸 모드로 전환합니다. 그렇지 않으면 큐에 남겨 ! 프리픽스와 함께 나열하고 턴이 끝난 뒤 실행합니다.

프롬프트 제안

세션을 처음 열면 Claude Code가 프롬프트 입력에 회색 처리된 예시 명령을 보여줘 시작을 돕습니다. 프로젝트의 git 기록에서 고르므로, 예시는 최근 작업한 파일을 반영합니다. Claude가 응답한 뒤에는 대화 기록을 바탕으로 다음 프롬프트를 제안할 수 있습니다. 다중 부분 요청의 후속 단계나 워크플로우의 자연스러운 연속 같은 것요.

  • Tab이나 Right arrow로 제안을 프롬프트 입력에 두고 Enter로 제출
  • 타이핑을 시작해 해제

Claude Code는 각 다음-프롬프트 제안을 대화의 프롬프트 캐시를 재사용하는 백그라운드 요청으로 생성하므로 추가 비용이 최소입니다.

제안을 건너뛸 때: 인터랙티브 모드에서 Claude Code는 기능 플래그를 가져오지 않는 세션(타사 프로바이더나 Claude 앱 게이트웨이를 통한 세션 등)과 설치·업그레이드 후 첫 세션에서 플래그가 아직 오지 않았을 때 기본으로 프롬프트 제안을 끄고 /configPrompt suggestions 토글을 숨깁니다. Claude Code는 다음을 포함한 여러 상황에서 개별 제안도 건너뜁니다:

  • 프롬프트 캐시가 차가워 불필요한 비용을 피할 때
  • 일부 세션에서 대화의 첫 턴 뒤
  • 이전 응답이 오류로 끝났을 때
  • 플랜 모드에 있을 때
  • 계정이 사용 한도에 가깝거나 도달했을 때. 한도에 이를 때까지 제안을 유지하려면 CLAUDE_CODE_ENABLE_PROMPT_SUGGESTIONtrue로 설정하세요. v2.1.238 이전에는 변수를 true로 설정해도 한도 근처에서 건너뛰었습니다
  • 에이전트 팀에서 팀원 세션은 기본으로. 리드 세션은 제안을 보여줌

프린트 모드에서는 기본으로 제안을 생성하지 않습니다. -p "<prompt>" --output-format stream-json --verbose와 함께 --prompt-suggestions를 전달하면 생성하는 각 턴 뒤에 prompt_suggestion 메시지를 내보냅니다. 생성기는 여기서도 아주 짧은 대화와 차가운 프롬프트 캐시를 건너뛰므로, 짧은 -p 쿼리 하나는 아무것도 내보내지 않을 수 있습니다.

제안 끄기: 프롬프트 제안을 완전히 끄려면 다음 중 하나를 사용하세요.

조직 전체에서 프롬프트 제안을 끄려면 관리 설정에서 promptSuggestionEnabledfalse로 설정하세요. 또 관리 env 키 아래 CLAUDE_CODE_ENABLE_PROMPT_SUGGESTIONfalse로 설정해 사용자가 자기 환경변수로 다시 켜지 못하게 하세요.

이모지 숏코드

프롬프트 입력에서 : 뒤에 이모지 숏코드를 입력해 이모지를 삽입하세요. Claude Code v2.1.217 이상 필요.

  • :heart: 같은 완전한 숏코드를 입력하면 닫는 :를 타이핑하는 즉시 ❤️로 대체
  • :hea처럼 : 뒤에 이름 두 글자 이상을 입력해 제안 팝업을 열고 Tab이나 Enter로 강조된 이모지 삽입

숏코드는 입력을 시작하거나 공백을 따라야 하므로, 단어나 URL 안의 :는 제안을 열지 않습니다. 끄려면 settings.json에서 emojiCompletionEnabledfalse로 설정하세요. 제안 팝업과 인라인 대체 둘 다 비활성화합니다.

타이핑하면서 철자 검사

Claude Code는 타이핑하는 동안 프롬프트 입력의 잘못된 단어에 밑줄을 그을 수 있어요. 입력 박스의 텍스트만 검사하고, Claude의 답변이나 파일은 절대 검사하지 않습니다. 입력 박스가 셸 모드, Ctrl+R 기록 검색, 음성 받아쓰기에 있을 때는 아무것도 검사하지 않습니다. 철자 검사는 기본으로 꺼져 있으며, 스크린 리더 모드에서는 아무것도 검사하지 않습니다. Claude Code v2.1.235 이상 필요.

전제조건: aspell, hunspell, 또는 ispell을 설치하고 PATH에 있는지 확인하세요. Claude Code는 모든 플랫폼에서 이 순서로 찾은 첫 번째 프로그램을 실행합니다. Windows에서 패키지 매니저가 설치한 .cmd shim을 포함해서요. PATH에 있는지 확인하려면 터미널에서 aspell --version, hunspell --version, ispell -v를 실행하세요. "command not found" 오류는 아직 PATH에 없다는 뜻입니다.

켜고 끄기: Claude Code는 spellcheck 설정을 세 곳에서 읽고, 프로젝트의 .claude/settings.json.claude/settings.local.json에서는 무시합니다. 어느 것을 쓰든 그곳에서 켜세요.

  • 사용자 설정: ~/.claude/settings.jsonspellcheck 추가. 사용자 설정처럼 여는 모든 프로젝트에 적용:
    {
      "spellcheck": { "enabled": true }
    }
    
  • 명령줄: spellcheck.json 같은 JSON 파일에 spellcheck 저장 후 --settings로 전달. 그 세션에만 적용:
    claude --settings spellcheck.json
    
  • 관리 설정: 조직의 관리 설정 소스 중 하나에 spellcheck 추가. 그 설정을 받는 모든 사용자에게 적용되고 끌 수 없음:
    {
      "spellcheck": { "enabled": true }
    }
    

철자 검사가 켜졌는지 확인하려면 잘못된 단어와 공백을 입력하세요. Claude Code가 단어에 밑줄을 긋습니다. 안 그으면 Claude Code가 아무것도 밑줄 긋지 않을 때를 보세요. 끄려면 같은 곳에서 enabledfalse로 설정하거나 spellcheck를 제거하세요.

Claude Code가 실행할 세 프로그램 중 하나, 사용할 사전, 밑줄 색을 고르려면 같은 곳의 enabled 옆에 다음 필드를 추가하세요:

  • checker: aspell, hunspell, ispell. Claude Code는 이름을 댄 검사기에서 폴백하지 않으며, 다른 값은 auto로 취급합니다.
  • language: 검사기 형식의 사전 이름. en_GB처럼. Claude Code는 경로나 공백이 있는 이름 같은 평범한 사전 이름이 아닌 값을 무시하고 검사기는 기본 사전을 씁니다.
  • color: yellow 같은 색 이름, 또는 #rrggbb, #rgb, rgb(r,g,b), ansi256(n), ansi:<name> 값. Claude Code는 기본과 인식하지 못하는 값에 테마의 오류 색을 씁니다.

예를 들어 이 spellcheck 설정은 en_GB 사전으로 hunspell을 실행하고 단어에 노란색 밑줄을 긋습니다. ~/.claude/settings.json, --settings로 전달한 파일, 관리 설정에서 모두 똑같이 동작합니다:

{
  "spellcheck": {
    "enabled": true,
    "checker": "hunspell",
    "language": "en_GB",
    "color": "yellow"
  }
}

세 곳 중 둘 이상에 spellcheck 설정이 있으면 Claude Code는 하나만 사용합니다. 관리 설정이 먼저, 그다음 --settings, 그다음 사용자 설정 순서입니다. 두 곳의 필드는 결합하지 않습니다. 예를 들어 --settingsspellcheck를 설정하면 사용자 설정의 language는 효과가 없습니다.

무엇에 밑줄을 긋나: 타이핑을 멈춘 직후 Claude Code는 사전이 모르는 단어에 밑줄을 긋습니다. 여전히 타이핑 중인 단어는 지나갈 때까지 건드리지 않고, 텍스트를 절대 변경하지 않습니다. 코드처럼 보이는 텍스트도 건너뜁니다:

  • /help 같은 명령, @ 멘션, URL, 파일 경로, --verbose 같은 플래그
  • 숫자·밑줄·첫 글자 뒤 대문자가 있는 단어, 백틱 안의 텍스트

Claude Code는 중국어, 일본어, 한국어, 태국어, 라오어, 크메르어, 미얀마어 텍스트도 건너뜁니다. Claude Code에는 자체 단어 목록이 없습니다. 검사기가 잘못됐다고 할 때만 단어가 잘못된 것입니다. 밑줄을 멈추게 하려면 검사기의 개인 사전에 단어를 추가하세요(검사기 자체 문서 참고). Claude Code를 다시 시작하면 새 단어를 인식합니다.

아무것도 밑줄 긋지 않을 때: Claude Code는 검사기를 계속 실행할 수 없을 때 아무것도 밑줄 긋지 않습니다.

  • 검사기가 설치되지 않았거나 checker에서 이름을 댄 것이 없을 때
  • 검사기가 시작 시나 세션 중 연속 두 번 실패할 때. Claude Code는 첫 실패 후 재시작하고 두 번째 후 Claude Code를 다시 시작할 때까지 검사하지 않습니다
  • 검사기가 답하는 데 15초 넘게 걸린 것이 세 번일 때. 매번 Claude Code는 기다리던 단어를 표시하지 않고 두고, 세 번째 후 Claude Code를 다시 시작할 때까지 검사를 멈춥니다

어느 쪽인지 알려면 철자 검사를 켠 채 claude --debug를 시작하고 단어를 입력하세요. 그다음 ~/.claude/debug/<session-id>.txt의 디버그 로그에서 [spellcheck] 줄을 보세요. 한 줄은 Claude Code가 시작한 프로그램의 이름, 또는 찾았지만 못 찾은 목록을 적습니다. 이후 줄은 왜 멈췄는지 말합니다. 거기서 사전 없음 오류는 검사기가 language 값의 사전이 없거나, language를 설정하지 않았을 때 기본 사전이 없다는 뜻입니다. 사전을 설치하거나 language를 가진 사전으로 설정하세요.

/diff로 변경 검토

/diff를 실행해 Claude Code를 떠나지 않고 작업 트리의 변경을 살펴보세요. Claude가 지금까지 한 편집을 아직 커밋하지 않은 다른 것과 나란히 볼 수 있습니다. /diff가 git에서 읽는 변경에서 서브모듈은 단일 항목으로, 가리키는 커밋이 바뀔 때만 나타납니다. 서브모듈 안 파일의 편집은 거기 나타나지 않습니다.

전체 화면 렌더링에서 /diff는 대화 옆에 diff 패널을 열고, 작업하는 동안 열린 채로 업데이트됩니다. 클래식 렌더러에서 /diff는 프롬프트 자리에 diff 뷰어를 열고, 다 읽으면 닫습니다.

Diff 패널: diff 패널은 변경된 파일을 추가·제거 줄 수와 함께 나열하고, 목록 아래 각 파일의 diff를 보여줍니다. Claude Code는 Claude가 파일을 편집하거나 셸 명령을 실행할 때마다 새로고침합니다. 닫으려면 /diff를 다시 실행하거나 헤더의 를 클릭하세요. 패널을 쓰려면 전체 화면 렌더링, git 리포지토리, 최소 110열 너비의 터미널, Claude Code v2.1.260 이상이 필요합니다. 패널을 열 수 없으면 /diff가 대신 diff 뷰어를 열거나 이유를 알려줍니다. 터미널이 최소 144열이면 Claude가 파일 편집을 시작하는 순간 패널이 스스로 열리기도 합니다. /diff로 직접 연 뒤에는 이후 세션에서도 파일을 편집할 때마다 맞는 너비의 터미널에서 열립니다. 닫으면 이 세션과 이후 세션에서 닫힌 채로 있으며, /diff를 다시 실행해야 다시 열립니다.

패널이 열려 있는 동안:

  • 파일로 점프: 목록의 행을 클릭. 마우스 휠로 패널 스크롤. 파일 목록 자체가 너무 길면 Alt+Up·Alt+Down 또는 Ctrl+Up·Ctrl+Down으로 스크롤
  • 특정 줄에 대해 Claude에게 묻기: 패널에서 마우스로 선택. Claude Code가 선택을 다음 프롬프트에 붙이고 보낼 때까지 입력 옆에 줄 수를 보여줌
  • 패널이 빼놓은 파일 보기: 목록은 테스트 파일과 생성 파일을 건너뛰고, 이 세션 이전의 변경을 아래 한 줄로 접습니다. 개수 줄을 클릭해 펼치기
  • 패널이 비교 대상을 바꾸기: Ctrl+X B로 이 세션의 변경, 커밋 안 된 변경을 한 목록으로, 브랜치가 기본 브랜치에서 갈라진 이후의 모든 것 사이를 순환. Claude Code는 프로젝트별로 선택을 기억

이 동작들에 키를 바인딩하려면 Diff panel actions를 보세요.

Diff 뷰어: diff 뷰어는 닫을 때까지 프롬프트 자리를 차지합니다. Current 뷰는 git의 커밋 안 된 변경을, 없으면 브랜치가 기본 브랜치 위에 추가하는 것을 보여줍니다. 뷰어는 Claude가 파일을 편집한 각 프롬프트에 대한 턴 뷰도 있어 그 편집만 보여줍니다. Claude Code는 턴 뷰를 git가 아닌 Claude의 파일 편집에서 만들므로, 셸 명령으로 한 변경은 Current 아래에서만 보입니다. 뷰어에서 이 키를 쓰세요:

  • Left·Right: Current와 턴 뷰 사이 이동
  • Up·Down: 파일 선택
  • Enter: 선택한 파일의 diff 열기. Up·Down 또는 PageUp·PageDown으로 스크롤
  • Esc: 파일 diff에서 목록으로, 또는 목록에서 뷰어 닫기

이 키를 재바인딩하려면 Diff actions를 보세요.

/btw로 곁가지 질문

/btw를 사용해 대화 기록에 추가하지 않고 현재 작업에 대해 질문하세요.

/btw what was the name of that config file again?

Claude는 이미 대화에 있는 것, 즉 여러분의 메시지, Claude의 답변, 모은 도구 결과로 곁가지 질문에 답합니다. Claude가 이미 읽은 코드, 이전에 내린 결정, 세션의 다른 무엇에 대해서도 물을 수 있어요. 이후의 곁가지 질문은 이전 곁가지 질문도 봅니다. Claude Code는 질문할 때마다 가장 새로운 20개 교환을 재생하며, 클리어할 때까지입니다. 질문과 답은 절대 대화 기록에 들어가지 않습니다. 터미널에서는 닫을 수 있는 오버레이로 나타납니다. 터미널은 스레드를 메모리에 유지합니다. x로 이전 교환을 클리어하고, Claude Code를 종료하면 사라집니다.

VS Code 확장의 채팅 패널에서 /btw는 이 절이 설명하는 오버레이가 아니라 패널을 열고, 패널에서 바로 후속 질문을 합니다. 패널의 스레드는 그 페이지가 설명하는 보존 일정에 따라 창 재로드도 견딥니다. 확장은 v2.1.227 이상이 필요하고, 이전 확장 버전은 /btw를 제공하지 않습니다.

  • Claude가 작업하는 동안에도 가능: Claude가 응답을 처리하는 동안에도 /btw를 실행할 수 있습니다. 곁가지 질문은 독립적으로 실행되고 메인 턴을 인터럽트하지 않습니다. 지금까지의 대화 전부를 보지만, Claude가 여전히 쓰고 있는 답변은 제외합니다.
  • 도구 접근 없음: 곁가지 질문은 이미 컨텍스트에 있는 것만으로 답합니다. 답할 때 Claude는 파일을 읽거나, 명령을 실행하거나, 검색할 수 없습니다.
  • 단일 응답: 오버레이에는 후속 턴이 없습니다. 스레드를 계속하려면 다른 /btw 질문을 하세요. 로컬 세션에서 전체 도구 접근으로 계속하려면 f를 눌러 이 질문·답변을 백그라운드 서브에이전트로 포크하세요.
  • 저비용: 대화의 프롬프트 캐시가 따뜻하면 곁가지 질문은 답 자체 외에 거의 들지 않습니다.

가장 새로운 곁가지 질문 다섯 개가 현재 답 위에 흐리게 나열되고, 더 오래된 개수가 표시됩니다. 대화 기록 밖에 유지됩니다. 해제 후 돌아오려면 질문 없이 /btw를 실행하세요. 오버레이가 가장 최근 교환으로 다시 열립니다. v2.1.212 이전에는 질문 없는 /btw가 사용 메시지를 출력했습니다.

답이 나타나면 오버레이는 이 키를 받습니다.

동작
Space, Enter, Escape 답 해제하고 프롬프트로 복귀
Up / Down 답 스크롤
Shift+Left / Shift+Right 이 답과 이전 /btw 답 사이 이동. Shift+Left는 오래된 답으로, Shift+Right는 현재 쪽으로. [·]는 터미널이 화살표 키로 Shift를 보고하지 않을 때 같은 일을 함. Tab / Shift+Tab은 같은 답들을 순환. Claude Code v2.1.257 이상 필요. v2.1.187~v2.1.256 사이에는 키가 일반 Left / Right였음
c 답을 원시 Markdown으로 클립보드에 복사. 하드 줄바꿈된 터미널 렌더링을 잡는 마우스 선택 대신 이걸 사용
f 부모 대화와 이 질문·답을 물려받는 포크된 서브에이전트 시작해 전체 도구 접근으로 계속. 현재 세션에 남고 프롬프트 아래 패널에서 포크를 찾음. 로컬 세션에서만
x 현재 답 위에 표시된 이전 /btw 교환 목록 클리어

연결된 백그라운드 세션에서 Left는 답이 아직 오는 중에도 분리해 agent 뷰로 돌려보냅니다. 곁가지 질문은 떠나 있는 동안 계속 실행됩니다. 다음에 세션에 연결하면 오버레이가 곁가지 질문이나 그 답과 함께 다시 열립니다. v2.1.257 이전에는 Left가 거기서 분리하지 않았습니다.

/btw는 전체 대화를 보지만 도구는 없습니다. 서브에이전트는 도구가 있고 받는 프롬프트에서, 또는 포크라면 이 대화의 사본에서 시작합니다. /btw로 Claude가 이 세션에서 이미 아는 것을 묻고, 서브에이전트로 새것을 찾아내세요.

태스크 리스트

태스크 리스트는 Claude의 할 일 체크리스트로, Claude가 다단계 작업을 계획하기 위해 만든 항목이며 대기·진행·완료를 보여주는 표시기가 있습니다. 백그라운드 작업 보기와는 분리됩니다. 실행 중 셸·서브에이전트를 보려면 /tasks를 쓰세요.

목록은 Claude Code가 기본으로 제공하는 태스크 추적 도구(Claude 3.x 모델, Opus 44.7, Sonnet 44.6, Haiku 4.5)가 있는 세션에서만 채워집니다. Claude Code가 인식하지 못하는 모델 ID를 포함한 다른 모델에서는 CLAUDE_CODE_ENABLE_TODO_TOOLS=1이나 Task tool availability의 다른 방법으로 옵트인하지 않으면 빈 채입니다. 세션에 도구가 있으면 태스크 리스트는 다음과 같이 동작합니다:

  • Ctrl+T로 태스크 리스트 뷰 토글. 표시는 한 번에 최대 5개 태스크. Claude가 체크리스트 항목을 아직 만들지 않았으면 표시할 것이 없어 토글이 눈에 보이는 효과가 없음
  • 목록을 펼친 채 두면 Claude Code는 여전히 태스크가 있는 세션(예: --resume·--continue)으로 다음 실행 시 펼친 뷰를 복원. 태스크 리스트가 비면 접힌 채 시작
  • 모든 태스크나 클리어는 Claude에게 직접 물어보세요: "show me all tasks" 또는 "clear all tasks"
  • 태스크는 컨텍스트 압축을 넘어 유지되어 큰 프로젝트에서 Claude가 정리를 돕습니다
  • 세션 간 공유하려면 CLAUDE_CODE_TASK_LIST_ID를 설정해 ~/.claude/tasks/의 이름 있는 디렉터리를 쓰세요: CLAUDE_CODE_TASK_LIST_ID=my-project claude

세션 리캡

자리를 비웠다 터미널로 돌아오면 Claude Code가 지금까지 세션에서 무슨 일이 있었는지 한 줄 요약을 보여줘요. 리캡은 마지막 완료 턴 이후 최소 3분이 지나고 터미널이 포커스되지 않으면 백그라운드에서 생성되어, 돌아왔을 때 준비돼 있습니다. 리캡은 세션이 최소 3턴이 된 뒤에만 나타나고, 절대 두 번 연속 나타나지 않습니다.

/recap을 실행해 요청 시 요약을 생성하세요. Claude Code는 자동 리캡과 /recap 출력을 400자로 제한합니다. 자동 리캡을 끄려면 /config를 열고 Session recap을 끄세요. 세션 리캡은 모든 플랜·프로바이더에서 기본으로 켜져 있으며, 비대화형 모드에서는 항상 건너뜁니다.

사용 한도 재설정 대기

claude.ai 사용 한도가 Claude를 작업 중간에 멈추게 하면, Claude Code는 열린 세션에서 기다렸다 한도가 재설정된 뒤 작업을 스스로 계속합니다. 자동 계속은 claude.ai 구독으로 로그인한 인터랙티브 세션에서 기본으로 켜져 있습니다. Claude Code v2.1.234 이상 필요.

기다리는 동안 세션 하단에 언제 계속할지 보여주는 줄이 나타납니다:

Usage limit reached · continuing automatically at 3:45pm · esc to cancel

세션을 열어두세요. 다음에 무슨 일이 일어나느냐는 대기가 어떻게 끝나느냐에 달려 있습니다:

  • 재설정 시: 줄이 continuing shortly, 그다음 Usage limit reset · continuing automatically로 바뀌고 Claude Code가 Claude에게 멈춘 지점에서 작업을 이어받으라는 고정 프롬프트를 보냅니다. 마지막 메시지를 다시 보내지 않습니다.
  • 컴퓨터가 잠든 뒤: 30분 넘게 잤고 잠든 동안 한도가 재설정되면 줄이 Your usage limit has reset · press enter to continue로 바뀝니다. Enter를 눌러 계속하세요. 짧은 잠 후에는 Claude Code가 스스로 계속합니다.
  • 일찍: /usage-credits사용 크레딧을 추가하거나, /upgrade 후 다시 로그인하거나, 대기 중 /model로 모델을 전환했을 때 Claude Code는 사용이 다시 가능한지 확인하고 가능하면 바로 계속합니다. 브라우저에서 직접 한 업그레이드·구매 후에는 확인하지 않습니다. opusplan과 다른 모델에서 플랜 모드를 실행하는 모델 설정에서는 Claude Code가 대신 재설정을 기다립니다.

계속된 작업은 다른 턴처럼 실행됩니다. Claude Code는 평소처럼 권한을 묻으므로, 자리를 비운 동안 프롬프트에서 작업이 멈출 수 있습니다. 다시 한도에 걸리면 Claude Code는 스스로 대기를 최대 두 번 연속 재장전한 뒤 멈추고 Automatic continue stopped after repeated usage-limit hits · /rate-limit-options to try again를 보여줍니다.

대기 취소: 줄이 보이는 동안 빈 프롬프트에서 EscCtrl+C를 누르거나, /rate-limit-options를 실행하고 Don't continue automatically를 고르세요. Claude Code는 Automatic continue cancelled로 시작하는 줄로 확인합니다. 취소 후에는 프롬프트를 보내거나 /rate-limit-options에서 Wait here, then continue automatically로 시작하는 행을 다시 고를 때까지 아무것도 계속되지 않습니다. Claude Code는 그 재설정 창 동안 스스로 대기를 다시 시작하지 않습니다. 다음 재설정 창은 새로 시작합니다.

대기는 다음 경우에도 작업을 계속하지 않고 끝납니다:

  • 프롬프트를 보낼 때: Claude Code가 기다리는 대신 여러분의 프롬프트를 실행.
  • Claude Code를 종료할 때: 세션을 재개해도 대기가 재시작하지 않음.
  • 대화가 주인을 바꿀 때: /login으로 계정 전환, 대화 클리어·되감기, 다른 세션 /resume, /teleport로 가져오기, /tui로 재실행, 세션을 Claude Desktop·백그라운드 세션·클라우드에 넘김.
  • 설정이 꺼지거나 재설정이 24시간을 넘을 때: 이것은 Claude Code가 스스로 시작한 대기만 끝냄. /rate-limit-options에서 고른 대기는 계속 카운트다운.
  • 계속이 차단될 때: 계속 프롬프트를 차단하는 UserPromptSubmit, 또는 모델에 도달하기 전 실패가 대기를 끝냄. Claude Code가 계속이 실행되지 않았다고 알려줌. 계속하려면 프롬프트를 보내세요.

직접 대기 시작하기: Claude Code는 다음 경우 스스로 대기를 시작하지 않습니다.

  • Remote Control과 에이전트 팀 팀원 세션: 그 터미널의 사람이 여전히 시작할 수 있음.
  • 24시간 넘게 남은 재설정: 주간 한도는 며칠 뒤에 재설정될 수 있음.
  • 그 계열 밖 모델을 실행하는 동안 Opus·Sonnet 한도: 다음 턴이 그 한도에 걸리지 않을 수 있음. opusplan과 제한된 계열에서 플랜 모드를 실행하는 다른 모델 설정은 이 예외를 받지 않음.

그 경우와 자동 계속이 꺼져 있을 때마다, Claude Code는 자신의 터미널에서 한도에 걸리면 재설정 창당 한 번 사용-한도 옵션 메뉴를 엽니다. Wait here, then continue automatically로 시작하는 행을 골라 대기를 시작하세요. Remote Control이나 에이전트 팀 팀원 세션에서 /rate-limit-options을 직접 실행해 메뉴를 여세요.

Claude Code는 다음 경우 대기를 아예 제공하지 않습니다:

  • 백그라운드 세션과 -p 실행: 메뉴 행을 쓸 수 없음.
  • API 키, 클라우드 프로바이더, 사용량 기반 요금제: 요청별로 계량되므로 기다릴 재설정이 없음.
  • 저장된 claude.ai 로그인이 없는 LLM 게이트웨이: Claude Code는 저장된 claude.ai 로그인이 활성 자격 증명일 때만 대기를 제공.

자동 계속 끄기: /config에서 Continue automatically at usage limit을 끄거나 사용자 설정에서 autoContinueAtUsageLimitfalse로 설정하세요. /config autoContinueAtUsageLimit=false도 동작하며 -p 포함이지만, key=value 형식은 다시 켤 수 없습니다. 설정이 무인 실행을 허용하기 때문입니다. 이 키에 대해 Claude Code가 읽는 설정 파일은 settings reference에 있습니다.

PR 리뷰 상태

열린 풀 리퀘스트가 있는 브랜치에서 작업하면 Claude Code가 푸터에 클릭 가능한 PR 링크("PR #446"처럼)를 표시합니다. 링크에는 리뷰 상태를 나타내는 색상 밑줄이 있습니다:

  • 초록: 승인됨
  • 노랑: 리뷰 대기
  • 빨강: 변경 요청
  • 회색: 초안

풀 리퀘스트가 머지되거나 닫히면 배지는 사라집니다. Cmd+click(macOS) 또는 Ctrl+click(Windows/Linux)으로 링크를 눌러 브라우저에서 풀 리퀘스트를 여세요. git push, 또는 gh pr create·gh pr merge처럼 풀 리퀘스트를 바꾸는 gh pr 명령이 세션에서 성공하는 즉시 상태가 새로고침됩니다.

Claude Code는 터미널에서 하이퍼링크 지원을 감지하지 못해도 배지를 하이퍼링크로 렌더링합니다. SSH나 tmux에서 흔합니다. FORCE_HYPERLINK=0으로 설정하면 배지를 일반 텍스트로 렌더링합니다. CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC을 설정하면 Claude Code는 풀 리퀘스트·머지 리퀘스트 상태를 확인하지 않습니다.

참고: GitHub 리포지토리의 PR 상태는 GitHub 토큰이 필요합니다. Claude Code는 리모트의 호스트에 따라 찾습니다:

  • github.com: GH_TOKEN 또는 GITHUB_TOKEN, 또는 gh auth login이 저장한 토큰. 없으면 gh CLI가 설치되지 않았을 때 푸터가 install gh for PR status, 설치됐으면 gh auth login for PR status를 표시
  • GH_HOST로 설정된 GitHub Enterprise 호스트: GH_ENTERPRISE_TOKEN 또는 GITHUB_ENTERPRISE_TOKEN, 또는 gh auth login --hostname <host>가 저장한 토큰. 없으면 푸터가 같은 힌트를 표시
  • 그 외 GitHub 호스트: gh auth login --hostname <host>가 저장한 토큰. 없으면 Claude Code가 배지도 힌트도 표시하지 않음

GitLab 머지 리퀘스트: 열린 GitLab 머지 리퀘스트가 있는 브랜치에서 작업하면 Claude Code가 GitHub PR 링크가 들어가는 푸터 자리에 클릭 가능한 MR !N 배지를 표시합니다. !N은 머지 리퀘스트 번호 N에 대한 GitLab 자체의 참조 구문입니다. 색상 밑줄은 머지 리퀘스트의 상태를 보여줍니다:

  • 초록: GitLab이 머지 리퀘스트를 머지 가능으로 보고
  • 노랑: 그 외 열린 상태
  • 회색: 초안

머지 리퀘스트가 머지되거나 닫히면 배지는 사라집니다. git push, 또는 glab mr create·glab mr merge처럼 머지 리퀘스트를 바꾸는 glab mr 명령이 세션에서 성공하는 즉시 새로고침됩니다. 배지를 얻으려면: Claude Code v2.1.234 이상, GitLab 호스트(gitlab.com 또는 자체 관리 인스턴스)를 가리키는 리포지토리 리모트, PATH에 있고 glab auth login으로 인증된 glab CLI가 필요합니다. Claude Code는 상태를 확인할 때 GITLAB_TOKEN 같은 glab의 토큰 환경변수를 무시하므로, 내보낸 토큰만으로는 배지를 얻지 못합니다. Claude Code는 glab과 로그인을 세션당 한 번 찾으므로, glab을 설치하거나 glab auth login을 실행한 뒤 Claude Code를 다시 시작하세요.

이슈 참조 링크

Claude가 이슈를 owner/repo#123으로 언급하면 터미널이 하이퍼링크를 지원하는 한 참조를 클릭해 열 수 있어요. Claude Code가 터미널에서 하이퍼링크 지원을 감지하지 못하면 FORCE_HYPERLINK1로 설정해 링크를 켜거나 0으로 설정해 참조를 일반 텍스트로 유지하세요.

두 부분으로 된 owner/repo#123 형태에만 링크가 생깁니다. 다음은 일반 텍스트로 유지됩니다:

  • 홀로 있는 #123
  • group/subgroup/project#123 같은 중첩 GitLab 경로
  • 코드 스팬이나 코드 블록 안의 모든 참조

Claude Code는 참조가 이름을 대는 리포지토리가 아니라, git 리모트에서 식별한 리포지토리의 호스트로 링크를 만듭니다:

리포지토리의 호스트 owner/repo#123이 연결되는 곳
github.com, GitHub Enterprise 호스트, 또는 아래 나열되지 않은 모든 호스트 https://<host>/owner/repo/issues/123
gitlab.com https://gitlab.com/owner/repo/-/issues/123
bitbucket.org, codeberg.org, gitea.com 링크 없음; 참조는 일반 텍스트 유지

더 알아보기