❯ Claude 참고자료 하고 싶은 일에서 출발해 쓸 기능을 찾는다

Claude Code CLI

섹션 37 · 항목 223

A3 치트시트 인쇄 core 120개
섹션 37개

시작 · 설치

설치

네이티브 설치가 권장 경로. npm 설치는 새로 깔 때 비권장 레거시. 문제 발생 시 추측 전에 claude doctor 먼저.

# curl -fsSL https://claude.ai/install.sh | bash

예시

설치 경로는 넷이다 — 설치 스크립트(macOS·Linux·WSL), PowerShell 스크립트(Windows), Homebrew cask, WinGet. Windows 는 설치 직후 PATH 가 이미 열려 있던 터미널에 반영되지 않으므로 새 창을 열어야 한다.

npm 설치가 꼬였으면 claude install stable 로 네이티브 바이너리를 다시 깔아 원인을 가른다.

# macOS/Linux/WSL
curl -fsSL https://claude.ai/install.sh | bash
# Windows PowerShell
irm https://claude.ai/install.ps1 | iex
# Homebrew / WinGet
brew install --cask claude-code
winget install Anthropic.ClaudeCode

→ 처음 깔았다, 무엇부터 해야 하나

# claude auth login

로그인

--email 로 주소를 미리 채우고, --sso 로 SSO 를 강제하고, --console 로 구독 대신 Anthropic Console(API 과금)로 붙는다.

claude auth login / logout / status

# claude auth logout

로그아웃

# claude doctor

설정 진단·문제 해결

설치·인증·경로·권한 설정을 한 번에 점검한다. 문제 발생 시 추측 전에 이 명령을 먼저 돌리는 게 시간을 절약한다. 출력을 복사해서 지원 요청에 쓸 수도 있다.

점검 항목: 설치 버전, 인증 상태, PATH 설정, 파일 권한, 프로젝트 구성, 훅/스킬 상태.

공식 문서 ↗ 확인 2026-08-24 (7일 전)

CLI 명령어 전체 참조

터미널에서 치는 진입점. 대부분은 claude 하나로 시작하고, 나머지는 이어가기(-c/-r)와 관리 명령.

# claude

대화형 세션 시작

인터랙티브 셸을 시작한다. 프롬프트를 입력하고 응답을 받으면서 대화를 계속할 수 있다. 세션은 자동으로 저장되고 /resume 로 다시 불러올 수 있다.

# claude "query"

프롬프트와 함께 시작

첫 프롬프트를 한 줄로 입력해서 세션을 시작한다. 대화형 셸에 들어가지 않고 바로 답을 얻고 싶을 때 유용하다.

# claude -p "query"

프린트 모드: 실행 후 종료

한 번만 실행하고 종료한다. 인터랙티브 세션을 남기지 않고 CI/CD 파이프라인이나 스크립트에서 쓰기 좋다.

# claude -c / --continue

최근 대화 이어가기

현재 디렉터리의 가장 최근 대화를 불러온다. 백그라운드 세션·-p·SDK·첫 프롬프트가 /loop 인 세션은 건너뛴다 — 그것들까지 포함하려면 claude -p --continue 다. /add-dir 로 이 디렉터리를 추가했던 세션도 포함된다.

→ 어제 하던 걸 이어서 하고 싶다 · --continue / --resume

# claude -r "<s>" "query"

세션 ID·이름으로 재개

ID 나 이름으로 재개하고, 인자 없이 주면 선택기가 열린다. ID 를 주면 현재 프로젝트와 그 워크트리를 먼저 찾고 없으면 이 기기의 다른 프로젝트까지 찾는다(v2.1.223+).

→ 어제 하던 걸 이어서 하고 싶다

# claude -n <name>

세션 표시 이름 지정

/resume 목록과 터미널 제목에 뜨고, 그 이름으로 재개할 수도 있다(claude --resume <name>). 세션 도중에 바꾸려면 /rename 이다.

--name / --session-id

# claude --from-pr <PR>

PR 연결 세션 재개

PR 번호, GitHub·GitHub Enterprise PR URL, GitLab MR URL, Bitbucket PR URL 을 받는다. Claude 가 PR 을 만들면 연결은 자동으로 걸린다.

# claude update

최신 버전 업데이트

특정 버전이나 채널을 지정하려면 claude install <version|stable|latest> 쪽이다.

# claude install [version]

네이티브 바이너리 설치

2.1.118 같은 버전이나 stable·latest 를 받는다. npm 설치가 꼬였을 때 네이티브로 다시 깔아 원인을 가르는 데도 쓴다.

→ 안 된다, 뭐가 문제인지 모르겠다

# claude mcp

MCP 서버 구성

하위 명령으로 서버를 추가·삭제·조회한다. claude mcp login <name> 은 대화형 /mcp 패널을 열지 않고 OAuth 흐름만 돌리고(SSH 에서는 --no-browser 로 URL 을 출력), claude mcp logout <name> 은 저장된 자격증명을 지운다(v2.1.186+).

→ 외부 서비스나 내 도구를 붙이고 싶다

# claude agents

백그라운드 세션 감시·디스패치 화면

병렬 백그라운드 세션을 보고 새로 띄우는 화면을 연다. --cwd <path> 로 그 디렉터리 아래에서 시작된 것만, --json 으로 스크립트용 JSON 배열(--json --all 은 끝난 것도 포함)을 얻는다. --permission-mode·--model·--effort·--agent 로 디스패치될 세션의 기본값을 정한다.

→ 오래 걸리는 작업을 걸어두고 다른 걸 하고 싶다 · → 작업이 커서 하나의 대화로는 안 될 것 같다 · --bg, --background

# claude attach / logs / stop / rm / respawn <id>

백그라운드 세션 붙기·로그·중단·목록 제거·재시작

attach 는 이 터미널에 붙이고, logs 는 최근 출력을 찍고, stop(=kill) 은 세운다. rm 은 목록에서 빼되 대화 기록은 남으므로 claude --resume 으로 다시 볼 수 있고, respawn 은 대화를 유지한 채 다시 띄운다(--all 로 전부 — 새 바이너리를 물릴 때 쓴다).

# claude auth login / logout / status

로그인·로그아웃·인증 상태

login 은 --email 로 주소를 미리 채우고, --sso 로 SSO 를 강제하고, --console 로 구독 대신 Anthropic Console(API 과금) 로 붙는다.

status 는 JSON 으로 상태를 출력하고 로그인 상태면 0, 아니면 1 로 종료한다 (--text 는 사람이 읽는 형태) — CI 에서 인증 여부를 판정할 때 쓴다.

→ CI나 스크립트에서 사람 없이 돌리고 싶다 · → 안 된다, 뭐가 문제인지 모르겠다

# claude doctor

세션 없이 설치·설정 진단 (읽기 전용)

세션을 시작하지 않고 설치 상태·설정 파일 파싱 오류·원격 제어 가능 여부를 찍는다. 고침까지 해 주는 것은 세션 안의 /doctor 쪽이다 — 이쪽은 읽기 전용이라 스크립트에 넣기 좋다.

→ 안 된다, 뭐가 문제인지 모르겠다 · /insights

# claude project purge [path]

프로젝트의 로컬 상태 전부 삭제

대화 기록·작업 목록·디버그 로그·파일 편집 이력·프롬프트 이력과 ~/.claude.json 의 항목까지 지운다. --dry-run 으로 먼저 보고, -i 로 항목별 확인, --all 로 전 프로젝트.

비가역이다. 경로를 생략하면 목록에서 고르게 되는데, 지우기 전에 --dry-run 으로 무엇이 사라지는지 확인할 것.

공식 문서 ↗ 확인 2026-08-24 (7일 전)

CLI 플래그 전체 참조

세션 시작 시 한 번 정하는 값들. 세션 안에서 바꿀 수 있는 것은 같은 이름의 슬래시 명령으로도 존재(--model ↔ /model). 자주 쓰는 것 위주로 골랐고, 플래그 80여 개의 전체 목록은 공식 cli-reference 에 있다.

# --model

세션 모델 지정

최신 모델 별칭(sonnet·opus·haiku·fable) 또는 전체 모델 이름을 받는다. model 설정과 ANTHROPIC_MODEL 환경변수를 모두 덮어쓴다.

# --effort

추론 강도 설정

low·medium·high·xhigh·max·ultracode 중에서 고른다(모델에 따라 가용 범위가 다르다). ultracode 는 xhigh 로 시작하면서 ultracode 를 켠 상태다. effortLevel 설정을 이 세션에만 덮어쓰고 저장되지 않는다.

# --add-dir

파일 접근용 작업 디렉토리 추가

각 경로가 실제 디렉터리인지 검사한 뒤 읽기·편집 범위에 넣는다. 파일 접근만 늘어난다 — 그 디렉터리의 .claude/ 설정은 대부분 읽지 않는다. 세션마다 다시 주지 않으려면 설정의 permissions.additionalDirectories 에 적는다.

→ 건드리면 안 되는 걸 건드릴까 봐 불안하다

# --disallowedTools

특정 도구 금지

이름만 주면 도구가 컨텍스트에서 사라지고, 범위를 주면 도구는 남고 그 호출만 막는다 — "Edit" 는 Edit 제거, "*" 는 전부 제거, "mcp__*" 는 MCP 도구 전부 제거, Bash(rm *) 는 Bash 는 남기고 rm 만 거부.

→ 승인 창이 너무 자주 떠서 흐름이 끊긴다

# --input-format

입력 형식 지정

프린트 모드 전용. text·stream-json. stream-json 으로 넣으면 작업 중에 보낸 메시지가 큐에 남아 자기 턴으로 실행된다(그 턴은 자기 --max-turns 한도를 따로 갖는다).

# --max-turns

에이전트 턴 수 제한

프린트 모드 전용이고 기본값은 무제한이다. 한도에 닿으면 오류로 종료한다 — 성공으로 끝나지 않으므로 스크립트가 조용히 잘린 결과를 쓰는 일은 없다.

→ CI나 스크립트에서 사람 없이 돌리고 싶다

# --verbose

상세 로그 활성화

턴 단위 출력을 전부 보여주고, 이 세션의 viewMode 설정을 덮어쓴다. stream-json 계열 플래그 몇 개는 이 플래그를 함께 요구한다.

# --continue / --resume

세션 이어가기 / 재개

--continue 는 현재 디렉터리의 가장 최근 대화를 불러오는데, 백그라운드 세션·claude -p· SDK·첫 프롬프트가 /loop 인 세션은 건너뛴다(claude -p --continue 는 그것들도 포함한다).

--resume 은 ID·이름으로 재개하거나 선택기를 연다. ID 를 주면 현재 프로젝트와 그 워크트리를 먼저 찾고, 없으면 이 기기의 다른 프로젝트까지 찾는다(v2.1.223+). 둘 다 /add-dir 로 이 디렉터리를 추가했던 세션까지 포함한다.

→ 어제 하던 걸 이어서 하고 싶다

# --from-pr

PR 연결 세션 재개

특정 PR 에 연결된 세션만 걸러 선택기를 연다. PR 번호, GitHub·GitHub Enterprise PR URL, GitLab MR URL, Bitbucket PR URL 을 받는다. Claude 가 PR 을 만들면 연결은 자동으로 걸린다.

# --fork-session

세션을 복사해 분기 후 재개

--resume·--continue 와 함께 쓴다. 원래 세션 ID 를 재사용하지 않고 새 ID 를 만든다 — 원본을 남긴 채 다른 방향을 시험할 때 쓴다.

# --dangerously-skip-permissions

모든 권한 확인 생략

--permission-mode bypassPermissions 와 같다. 모든 것을 생략하는 것은 아니다 — 어떤 모드도 자동 승인하지 않는 행위는 그대로 남는다. --bg 로 띄운 세션에서는 감독 프로세스가 재시작해도 이 모드가 유지된다.

컨테이너·VM 처럼 격리된 곳에서만 쓸 것. 권한 확인이 잦은 것이 문제라면 --allowedTools 나 /fewer-permission-prompts 가 답이다.

--allow-dangerously-skip-permissions

# --tools

쓸 수 있는 내장 도구 자체를 제한

--allowedTools 와 축이 다르다 — 이쪽은 도구의 존재 여부를 정한다. "" 는 전부 끄기, "default" 는 전부, "Bash,Edit,Read" 처럼 이름 나열도 된다.

MCP 도구에는 영향이 없다 — 그쪽까지 막으려면 --disallowedTools "mcp__*" 를 같이 쓴다.

--allowedTools

# --worktree, -w

격리된 git 워크트리에서 시작

<repo>/.claude/worktrees/<name> 에 워크트리를 만들어 그 안에서 시작한다. 이름을 주지 않으면 자동 생성한다. #123 이나 PR·MR URL 을 주면 그 PR 을 origin 에서 가져와 거기서 분기한다.

--tmux 를 같이 주면 그 워크트리용 tmux 세션까지 만든다(iTerm2 가 있으면 네이티브 패널).

→ 작업이 커서 하나의 대화로는 안 될 것 같다

# --bg, --background

백그라운드 에이전트로 시작하고 바로 반환

세션 ID 와 관리 명령을 출력하고 즉시 돌아온다. --agent 와 함께 특정 서브에이전트로 띄우거나, --exec 와 함께 Claude 세션이 아니라 셸 명령을 백그라운드 잡으로 돌릴 수 있다 (claude --bg --exec 'pytest -x').

-p/--print 와 함께 쓸 수 없다.

→ 오래 걸리는 작업을 걸어두고 다른 걸 하고 싶다

# --name / --session-id

세션 표시 이름 / 세션 ID 지정

--name(-n) 은 /resume 목록과 터미널 제목에 뜨는 이름이고, 그 이름으로 재개할 수도 있다 (claude --resume <name>). 같은 기기의 다른 세션이 쓰는 이름이면 변형된 이름이 붙는다.

--session-id 는 대화에 쓸 ID 를 직접 정한다(유효한 UUID 여야 한다) — 스크립트가 나중에 그 세션을 다시 찾아야 할 때 쓴다.

→ 어제 하던 걸 이어서 하고 싶다

# --debug / --debug-file

디버그 모드 / 로그 파일 경로

범주를 걸러 볼 수 있다 — --debug='mcp,startup', --debug='!1p'. 필터는 = 형태에서만 붙는다(공백으로 주면 필터 없이 디버그만 켜진다). --debug-file <path> 는 파일로 쓰면서 디버그를 자동으로 켜고 CLAUDE_CODE_DEBUG_LOGS_DIR 보다 우선한다.

→ 안 된다, 뭐가 문제인지 모르겠다

# --allow-dangerously-skip-permissions

bypass 를 Shift+Tab 순환에만 추가 (시작은 다른 모드)

바로 들어가지 않고 갈 수 있게만 열어 둔다. --permission-mode plan 으로 시작해 계획을 받은 뒤 필요할 때 Shift+Tab 으로 bypass 까지 돌릴 수 있다 — 처음부터 우회 상태로 시작하는 --dangerously-skip-permissions 와 다르다.

--dangerously-skip-permissions

공식 문서 ↗ 확인 2026-08-24 (7일 전)

슬래시 명령어 전체 참조

세션 안에서 치는 명령. 대화 흐름을 끊지 않고 상태를 바꾸거나 확인할 때 사용.

# /help

도움말 표시

사용 가능한 슬래시 명령어 전체 목록과 간단한 설명을 보여준다. 명령어 이름을 까먹었을 때 빠르게 찾을 수 있다.

# /exit

CLI 종료(별칭 /quit · 백그라운드는 분리)

백그라운드 세션에 붙어 있을 때는 세우지 않고 빠져나온다 — 세우려면 /stop 이다.

# /compact [지시]

대화 요약, 컨텍스트 확보

지금까지의 대화를 요약해서 컨텍스트를 줄인다. 선택적으로 계속할 지시를 입력하면 요약된 상태에서 이어서 작업한다. 긴 대화가 느려졌을 때 유용하다.

# /context [all]

컨텍스트 사용량 표시

비용이 아니라 컨텍스트 분포를 색 격자로 보여준다(비용은 /usage·/cost 쪽이다). 컨텍스트를 많이 쓰는 도구, 비대해진 메모리 파일, 한계 임박 경고가 함께 뜬다.

전체화면 모드에서는 격자를 살리려고 항목별 내역을 접는데, all 을 주면 펼친다.

→ 토큰이 빨리 닳고 대화가 무거워진다 · /usage, /cost

# /config

설정 패널 열기

key=value 를 넘기면 화면을 열지 않고 값만 바꾼다(/config thinking=false, /config theme=dark). /config --help 로 설정 가능한 키 전체를 볼 수 있다.

/config [key=value]

# /status

세션 상태·진행 작업 표시

버전·모델·계정·연결 상태를 보여주고 응답 중에도 즉시 실행된다.

# /usage, /cost

토큰 사용량·비용 표시

유료 플랜에서는 스킬·서브에이전트·플러그인·MCP 서버별 내역까지 쪼개 준다. /stats 도 같은 것이다. 플랜 사용량은 터미널·데스크톱·웹이 공유한다.

→ 토큰이 빨리 닳고 대화가 무거워진다

# /model [model]

세션 내 모델 변경

새 세션의 기본값으로도 저장된다 — 이번 세션만 바꾸려면 선택기에서 그 줄에 s 를 누른다. 좌우 화살표로 추론 강도까지 같이 조정한다.

/model [model]

# /effort [level|auto]

추론 강도 조정

low~xhigh·max·ultracode·auto. status 는 현재 값을 찍는다. max 와 ultracode 는 세션 한정이다.

/effort [level|auto]

# /resume

다른 대화로 돌아가기

백그라운드 세션은 bg 로 표시되고 아직 돌고 있는 것은 여기서 재개할 수 없다 — claude agents 에서 붙거나 거기서 먼저 세운다.

→ 어제 하던 걸 이어서 하고 싶다

# /rename [name]

현재 세션 이름 변경

이름을 생략하면 대화 이력에서 자동 생성한다. 제어문자는 공백으로 치환되고 200자에서 잘린다.

# /branch [name]

현재 지점에서 대화 분기

분기 쪽으로 들어간다. 원본은 남고 /resume 으로 돌아온다. 복사본을 백그라운드로 띄우고 나는 남으려면 /fork, 곁가지를 맡기려면 /subtask.

/branch [name]

# /export [filename]

대화를 텍스트로 내보내기

파일명을 주면 바로 쓰고, 없으면 클립보드 복사·파일 저장을 고르는 대화상자가 열린다.

# /ide

IDE 연동 관리·상태 표시

시작할 때 자동으로 붙이려면 claude --ide 인데, 유효한 IDE 가 정확히 하나일 때만 붙는다.

/ide # IDE 연동 상태 표시/관리

공식 문서 ↗ 확인 2026-08-24 (7일 전)

키보드 단축키

손이 기억하면 가장 빨라지는 것들. Shift+Tab(권한 모드)과 Esc(중단) 둘만 익혀도 체감 큼.

# Ctrl+C

중단 (2회=종료)

돌고 있는 것이 있으면 중단, 없으면 입력 비우기다. 아무것도 안 돌고 있을 때 한 번 누르면 프롬프트가 비고, 한 번 더 누르면 Claude Code 가 종료된다.

# Ctrl+D

Claude Code 종료

첫 누름에 확인 안내가 뜨고 800ms 안에 다시 눌러야 종료된다. 입력창에 글자가 있으면 종료가 아니라 커서 뒤 한 글자를 지운다.

# Ctrl+O

트랜스크립트 뷰어 토글

도구 사용과 실행을 자세히 보여주고, 어시스턴트 메시지마다 타임스탬프와 쓰인 모델이 붙는다. 기본적으로 "Called slack 3 times" 처럼 한 줄로 접히는 MCP 호출도 여기서 펼쳐진다.

전체화면 렌더링에서는 뷰어 안에서 {·}(이전·다음 사용자 프롬프트), [(대화를 터미널 스크롤백에 기록), v(임시 파일로 열기), q·Esc(나가기)가 동작한다.

# Ctrl+R

명령어 히스토리 역검색

# Ctrl+T

작업(task) 목록 토글

Claude 의 할 일 체크리스트를 상태 영역에 보이거나 감추는 것이다 — 백그라운드 작업 보기가 아니다. 돌고 있는 셸·서브에이전트는 /tasks 쪽이다.

/tasks

# Ctrl+B

실행 중 작업을 백그라운드로 (tmux는 2회)

Bash 명령과 에이전트를 백그라운드로 보낸다. 세션 자체를 떼어내는 것은 /background 다.

/background, /bg

# Ctrl+X Ctrl+K

백그라운드 서브에이전트 전부 중단 (3초 내 2회)

이 세션의 백그라운드 서브에이전트를 모두 세우고, 남은 세션 동안 아티팩트 자동 답글도 끈다. 확인을 위해 3초 안에 두 번 눌러야 한다.

# Ctrl+S

프롬프트 보관 · 빈 입력에서 다시 누르면 복원

복원할 때 커서 위치와 붙여넣은 내용까지 같이 돌아온다. 쓰던 프롬프트를 버리지 않고 급한 질문을 먼저 보낼 때 쓴다.

# Ctrl+V / Alt+V

클립보드 이미지 붙여넣기

커서 위치에 [Image #N] 칩이 들어가므로 프롬프트 안에서 위치로 참조할 수 있다 ("두 번째 이미지의 오류" 처럼). iTerm2 는 Cmd+V, Windows·WSL 은 Alt+V 이고, WSL 은 둘 다 걸려 있다(터미널이 Ctrl+V 를 가로채면 Alt+V).

# Ctrl+L

화면 다시 그리기 (입력·대화 유지)

화면이 깨지거나 일부가 비어 보일 때 강제로 다시 그린다. 입력과 대화는 그대로 남는다.

v2.1.238 부터는 두 번 눌러도 대화가 지워지지 않는다 — 그 전에는 2초 안에 Ctrl+L 이나 Cmd+K 를 두 번 누르면 /clear 가 돌았다. 지금 대화를 비우려면 /clear 를 직접 쓴다.

# Ctrl+Z

프로세스 일시 중지 (Unix, fg 로 복귀)

# Ctrl+G

프롬프트/응답을 기본 편집기로 열기

readline 식 Ctrl+X Ctrl+E 도 같은 동작이다. /config 에서 Show last response in external editor 를 켜면 직전 응답이 # 주석으로 함께 열린다.

# Esc

응답·도구 호출 중단, 대화상자 닫기

턴 중간에 세워도 거기까지 한 일은 남는다. 큐에 넣어 둔 메시지가 있으면 그것을 다음으로 보낸다. 대화상자가 열려 있으면 닫고, 권한 프롬프트에서는 거부로 처리한다.

# Esc Esc

초안 삭제, 비어있으면 되돌리기

글자가 있으면 지우면서 초안을 히스토리에 저장하므로 Up 으로 되살릴 수 있다. 입력이 비어 있으면 되돌리기 메뉴가 열린다(코드·대화를 이전 지점으로).

/rewind [turn#]

# Shift+Tab

권한 모드 순환 전환

Windows 에서 런타임이 VT 입력 모드를 못 켜면 Alt+M 이 같은 역할을 한다. 순환 순서는 Manual(default) → acceptEdits → plan → (가능하면) bypassPermissions → auto.

# Alt+P / Option+P

모델 전환

쓰던 프롬프트를 비우지 않고 바꾼다.

# Alt+T / Option+T

확장 사고 토글

Fable 5 에는 효과가 없다(항상 확장 사고를 쓴다). macOS 에서는 Option 을 Meta 로 설정하지 않아도 동작하는 몇 안 되는 Alt 계열 키다.

# @

파일 경로 언급 자동완성

교차 세션 메시징이 켜진 세션에서는 @ 뒤에 한 글자 이상 치면 이 기기의 다른 라이브 세션도 후보로 뜬다 — 골라서 그 세션에 메시지를 보내게 할 수 있다.

/list-agents

# !

셸 모드 진입

명령을 직접 돌리고 그 출력이 세션에 들어가며 Claude 가 그것에 대해 응답한다 — 결과를 복사해 붙여 넣는 왕복이 없어진다.

# Ctrl+K / Ctrl+U / Ctrl+W / Ctrl+Y

줄 끝까지·줄 시작까지·앞 단어 삭제 / 삭제한 것 붙여넣기

지운 것은 보관되므로 Ctrl+Y 로 붙여넣을 수 있고, 붙여넣은 뒤 Alt+Y 로 이전에 지운 것들을 순환한다. macOS 에서는 Cmd+Backspace 가 Ctrl+U, Option+Delete 가 Ctrl+W 에 매핑되고 Windows 는 Ctrl+Backspace 가 Ctrl+W 다.

Ctrl+W 가 공백 단위로 지우게 하려면 설정의 keybindingFlavor 를 "readline" 로 둔다. 되돌리기는 Ctrl+_(또는 Ctrl+Shift+-)다.

# Alt+B / Alt+F / Alt+D

단어 단위 이동·삭제

macOS 에서는 Option 을 Meta 로 설정해야 동작한다(터미널 설정). keybindingFlavor: "readline" 이면 Alt+F·Alt+D 의 경계 판정이 단어 끝 기준으로 바뀐다.

# 여러 줄 입력

역슬래시+Enter · Option+Enter · Shift+Enter · Ctrl+J

\ 뒤에 Enter 는 모든 터미널에서 되고, Ctrl+J 도 설정 없이 된다. Shift+Enter 는 iTerm2·WezTerm·Ghostty·Kitty·Warp·Apple Terminal·Windows Terminal 에서 기본 동작하고, 그 외 터미널은 /terminal-setup 으로 잡는다. Option+Enter 는 macOS 에서 Option 을 Meta 로 설정한 뒤.

/terminal-setup

# ?

단축키 도움 패널 토글 (빈 입력에서)

입력이 비어 있을 때만 패널이 열린다 — 글자가 있으면 그냥 ? 가 입력된다. 전체화면 렌더링이 필요하다.

# : 이모지 · Space 음성

:name: 로 이모지 삽입 / 스페이스로 음성 입력

:name: 을 전부 치면 이모지가 들어가고, 두 글자 이상이면 후보가 뜬다(v2.1.217+). 스페이스를 누르고 있으면 음성 입력이 된다 — /voice 로 켜 두어야 하고 /voice tap 으로 눌러서 시작·정지 방식으로 바꿀 수 있다.

/voice [hold|tap|off]

공식 문서 ↗ 확인 2026-08-24 (7일 전)

신규 플래그 확장판

비교적 최근에 붙은 플래그들. 문제 발생 시 원인을 좁히는 --safe-mode·--bare 가 특히 실전에서 유용.

# --permission-mode <mode>

시작 권한 모드 지정

default·acceptEdits·plan·auto·dontAsk·bypassPermissions 를 받고, manual 은 default 의 별칭이다(UI 가 Manual 로 표기하는 그 모드, v2.1.200+). 설정 파일의 defaultMode 를 덮어쓴다.

default (Manual)

# --agent / --agents

세션 에이전트 지정/JSON 정의

--agent 는 이 세션이 쓸 에이전트를 정하고 agent 설정을 덮어쓴다. --agents 는 파일을 만들지 않고 JSON 으로 서브에이전트를 정의한다 — --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'.

설명

# --safe-mode

커스터마이제이션 전체 비활성화

설정이 깨졌을 때 원인을 가르는 도구다. CLAUDE.md·스킬·플러그인·훅·MCP 서버·커스텀 명령·에이전트·출력 스타일·워크플로·커스텀 테마·키바인딩·상태줄·LSP·자동 메모리가 전부 안 뜬다.

인증·모델 선택·내장 도구·권한은 정상 동작한다 — 이 점이 --bare 와 다르다.

→ 안 된다, 뭐가 문제인지 모르겠다 · --bare

# --bare

훅·스킬·플러그인·MCP 생략

목적이 진단이 아니라 속도다. 훅·스킬·커스텀 명령·서브에이전트·플러그인·MCP 서버· 자동 메모리·CLAUDE.md 의 자동 탐색을 건너뛰어 스크립트 호출이 빨리 시작된다. Bash·파일 읽기·파일 편집 도구는 남고, --add-dir 로 넘긴 디렉터리의 스킬은 여전히 로드된다. CLAUDE_CODE_SIMPLE 을 세운다.

→ CI나 스크립트에서 사람 없이 돌리고 싶다

# --settings <path|json>

설정 파일/인라인 JSON 지정

여기서 준 키만 settings.json 의 같은 키를 이 세션에 대해 덮어쓴다 — 적지 않은 키는 파일 값을 그대로 쓴다. 파일이면 일반 파일이어야 하고 2 MiB 를 넘을 수 없다.

# --fallback-model <목록>

과부하 시 폴백 모델

주 모델이 과부하이거나 없을 때(예: 은퇴한 모델) 넘어갈 모델을 쉼표로 나열한 순서대로 시도한다. fallbackModel 설정을 덮어쓰고, 세션을 넘겨 유지하려면 그 설정에 적는다.

# --system-prompt[-file]

시스템 프롬프트 교체/추가

네 개가 짝을 이룬다 — --system-prompt(전체 교체) · --system-prompt-file(파일로 교체) · --append-system-prompt(뒤에 덧붙임) · --append-system-prompt-file(파일 내용을 덧붙임).

교체는 기본 프롬프트를 통째로 버린다 — 도구 사용 규칙까지 사라지므로, 지침을 더하고 싶은 것이라면 append 쪽이다.

# --mcp-config / --plugin-dir

MCP·플러그인 로컬 로드

--mcp-config 는 JSON 파일·문자열에서 MCP 서버를 읽는다. -p 와 함께 쓰면 첫 턴 전에 아직 연결되지 않은 서버를 기다린다(MCP_TIMEOUT, 기본 30초. 도구 목록이 캐시된 서버는 기다리지 않는다).

--plugin-dir 는 디렉터리나 .zip 에서 이 세션만 쓸 플러그인을 읽는다 — 플래그 하나에 경로 하나이므로 여러 개면 반복해서 준다.

→ 외부 서비스나 내 도구를 붙이고 싶다

# --strict-mcp-config

--mcp-config 의 서버만 사용

다른 MCP 설정 전부를 무시한다. 재현 가능한 스크립트 실행에서 내 개인 MCP 설정이 섞여 들어오는 것을 막는 용도다.

# --setting-sources

불러올 설정 출처 지정 (user·project·local)

쉼표로 나열한다(--setting-sources user,project). CI 에서 개발자 로컬 설정을 빼고 돌리고 싶을 때처럼, 어느 층까지 읽을지를 명시할 수 있다.

# --json-schema

스키마에 맞는 검증된 JSON 출력 (프린트 모드)

작업이 끝난 뒤 JSON Schema 에 맞는 출력을 받는다. 스키마가 잘못되면 오류로 종료하므로 파이프 뒤쪽이 깨진 JSON 을 받는 일이 없다. format 키워드는 주석으로만 받고 검증하지 않는다.

→ CI나 스크립트에서 사람 없이 돌리고 싶다

# --cloud / --teleport

웹 세션 생성·지목 / 웹 세션을 터미널로

--cloud 에 작업 설명을 주면 claude.ai 에 새 웹 세션을 만들고, 세션 ID(session_...· cse_...)나 claude.ai/code URL 을 주면 그 세션을 지목한다 — -p 면 메시지를 큐에 넣고, -p 가 없으면 내 터미널을 붙인다. --remote 는 이것의 옛 별칭이다.

--teleport 는 반대 방향으로, 웹 세션을 로컬 터미널에서 이어받는다.

/teleport

# --remote-control, --rc

원격 제어를 켠 대화형 세션

claude.ai 나 Claude 앱에서도 조작할 수 있는 상태로 시작한다. 이름을 붙일 수도 있다. 자동 생성 이름의 접두어는 기본이 호스트명이라 myhost-graceful-unicorn 같은 이름이 된다.

/remote-control

# --advisor <model>

어드바이저 도구를 이 세션에서 켜기

fable·opus·sonnet 또는 전체 모델 ID 를 받고, 이 세션에 대해 advisorModel 설정보다 우선한다. fable 은 Fable 5 접근 권한이 필요하다.

/advisor [model|off]

# --exclude-dynamic-system-prompt-sections

기기별 섹션을 첫 사용자 메시지로 옮겨 캐시 재사용률 높이기

작업 디렉터리·환경 정보·메모리 경로·git 저장소 여부 같은 기기마다 다른 조각을 시스템 프롬프트에서 빼 첫 사용자 메시지로 옮긴다. 같은 작업을 여러 사람·여러 기기가 돌릴 때 프롬프트 캐시가 재사용된다.

기본 시스템 프롬프트에만 적용되고 --system-prompt[-file] 을 주면 무시된다.

→ 토큰이 빨리 닳고 대화가 무거워진다 · → CI나 스크립트에서 사람 없이 돌리고 싶다

# --no-session-persistence

세션을 디스크에 남기지 않음 (프린트 모드)

저장하지 않으므로 재개도 불가능하다. 어떤 모드에서든 같은 효과를 내는 환경변수는 CLAUDE_CODE_SKIP_PROMPT_HISTORY 다.

공식 문서 ↗ 확인 2026-08-24 (7일 전)

신규/고급 슬래시 명령어

되돌리기·검토·백그라운드처럼 상태를 크게 바꾸는 명령들. /rewind 는 커밋하지 않은 변경도 되돌림.

# /agents

서브에이전트 관리

v2.1.198 부터는 관리 화면이 아니라 안내만 출력한다 — .claude/agents/ 를 직접 편집하거나 Claude 에게 만들라고 한다. 세션 단위로만 필요하면 --agents 로 JSON 을 넘길 수도 있다.

/agents · --agent / --agents

# /sandbox

격리 환경에서 실행

지원 플랫폼에서만 보인다. 권한 확인이 잦다고 우회로 가는 대신 격리로 위험을 낮추는 쪽이다.

/sandbox [action] · /sandbox

# /plan

계획 모드 진입

Shift+Tab 순환으로도 들어간다. 설명을 붙이면 그 작업으로 계획을 시작한다.

/plan [description] · plan

# /tasks

백그라운드 작업 목록

끝난 서브에이전트도 포함되므로 결과를 놓쳤을 때 여기서 찾는다. 응답 중에도 즉시 실행된다.

/tasks

# /goal

완료 조건 설정 후 자동 진행

조건이 충족될 때까지 턴을 넘어 계속 간다. clear·stop·off·reset·none·cancel 중 무엇으로든 해제한다.

/goal [condition|clear]

# /recap

세션 한 줄 요약

자리를 비웠다 돌아오면 자동으로 뜨는 그 요약을 필요할 때 직접 부르는 것이다. /compact 와 달리 대화를 건드리지 않는다.

/recap

# /insights

세션 사용 패턴 분석

이 기기의 최근 세션을 분석한 HTML 보고서를 만든다 — 클라우드 세션에서는 쓸 수 없다.

/insights

공식 문서 ↗ 확인 2026-08-24 (7일 전)

확장

서브에이전트 한눈에 보기

컨텍스트를 따로 쓰는 별도 에이전트. 실질 이점은 전문성이 아니라 격리 — 넓게 훑어야 하는데 결론만 필요할 때 본 대화가 무거워지지 않음.

# 설명

Task 도구로 호출: subagent_type=이름 · .claude/agents/*.md frontmatter(name/description/tools/model)로 정의 · --agent/--agents 플래그로도 지정 가능

실질 이점은 전문성이 아니라 컨텍스트 격리다. 탐색으로 파일 50개를 훑어야 하는데 그 내용이 본 대화에 다 쌓이면 이후 작업이 계속 무거워진다. 서브에이전트에 맡기면 결론만 돌아온다.

쓸 자리는 셋이다 — 넓게 훑고 결론만 필요할 때, 같은 일을 여러 관점으로 각각 돌릴 때, 실패해도 본 대화가 안 다쳐야 할 때. 반대로 맥락이 계속 이어져야 하는 작업은 쪼개면 오히려 나빠진다.

결과는 요약이라 근거가 잘려 있다. 중요한 판정은 파일 경로와 재현 명령을 같이 요구하고, 받은 뒤 직접 확인할 것.

→ 작업이 커서 하나의 대화로는 안 될 것 같다 · /agents · --agent / --agents

# frontend-developer

UI/컴포넌트/스타일링

# backend-developer

서버, API, 아키텍처

# api-developer

API 설계·문서화·통합

# mobile-developer

iOS/Android 앱

# python-developer

javascript-developer · typescript-developer

# php-developer

wordpress-developer · ios-developer

# database-designer

설계·최적화·모델링

# code-reviewer

code-debugger · code-documenter

# code-refactor

code-security-auditor

# code-standards-enforcer

스타일/일관성

# DB & 품질

위 17종은 원본 프로젝트에서 온 개발직군 롤 템플릿이다 (legacy/subagents/)

이 목록은 이 리포가 갈라져 나온 원본(Njengah/claude-code-cheat-sheet)의 템플릿이고, wordpress-developer·php-developer 처럼 특정 직군에 묶인 것이 많다. 내 작업과 맞는지 확인된 바 없으므로 그대로 쓰기보다 필요한 것만 골라 다시 쓰는 편이 낫다.

원문은 legacy/subagents/*.md 에 그대로 남겨뒀다(MIT, 본문은 한국어). 쓸 만한 게 있으면 거기서 가져와 .claude/agents/ 에 두면 된다.

→ 작업이 커서 하나의 대화로는 안 될 것 같다

공식 문서 ↗ 확인 2026-08-13 (18일 전)

Hooks & 플러그인

Hooks 는 Claude가 도구를 쓰는 시점에 개입, 플러그인은 명령·스킬·훅·MCP를 한 묶음으로 배포. 둘 다 "내 워크플로를 Claude 쪽에 심는" 장치.

# Hooks

settings.json의 hooks.<Event>[] (PreToolUse/PostToolUse/SessionStart/Stop 등), /hooks로 확인

settings.json 의 hooks.<Event>[] 에 matcher 와 실행할 명령을 적는다. 주요 이벤트: PreToolUse(도구 호출 직전) · PostToolUse(성공 직후) · SessionStart · Stop(응답 종료).

차단은 PreToolUse 에서 exit code 2 로만 된다. stdout 이 Claude 에게 사유로 전달되므로 "왜 막혔는지"를 사람이 아니라 Claude 가 읽고 스스로 고친다. PostToolUse 는 이미 실행된 뒤라 차단이 아니라 뒷정리(포매터 등)용이다.

중요한 경계 하나 — 훅은 Claude 의 도구 호출에만 걸린다. 내가 터미널에서 직접 치는 git commit 은 막지 못한다. 그건 husky·lefthook 같은 git 훅의 몫이고, 둘은 층이 다르다.

// .claude/settings.json
{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash(git commit:*)",
      "hooks": [{ "type": "command", "command": "npm test --silent" }]
    }]
  }
}

훅은 매 도구 호출마다 돈다. 전체 테스트를 PreToolUse 에 걸면 파일 하나 고칠 때마다 몇 분씩 멈춘다. matcher 를 좁히거나 빠른 검사만 걸 것. 설정에 썼는데 /hooks 목록에 안 보이면 JSON 문법 오류이거나 파일 위치가 틀린 것이다.

→ 커밋 전에 자동으로 뭔가 돌리고 싶다 · → 건드리면 안 되는 걸 건드릴까 봐 불안하다 · .claude/commands/*.md · 설명

# 플러그인

.claude-plugin/plugin.json 매니페스트, claude plugin install <name>@<marketplace>, /plugin

플러그인은 슬래시 명령·스킬·훅·MCP 서버·에이전트를 한 묶음으로 배포하는 단위다. .claude-plugin/plugin.json 이 매니페스트이고, 마켓플레이스에서 설치하거나 로컬 디렉터리를 --plugin-dir 로 바로 물릴 수 있다.

직접 만들기 전에 순서를 지키면 헛수고를 줄인다 — 이미 있는 커넥터 → 마켓플레이스 플러그인 → 그래도 없으면 직접. /plugin 으로 마켓플레이스를 연다.

→ 같은 지시를 매번 치기 싫다 · → 외부 서비스나 내 도구를 붙이고 싶다 · Project · --mcp-config / --plugin-dir

공식 문서 ↗ 확인 2026-08-13 (18일 전)

MCP & 고급 파이프라인

외부 서비스와 내 도구를 붙이는 표준 통로. 직접 만들기 전에 커넥터·플러그인부터 찾는 편이 빠름.

# claude mcp

MCP 서버 설정

MCP 서버를 등록·확인·제거한다. --mcp-config 로 설정 파일이나 인라인 JSON 을 넘기면 프로젝트마다 다른 서버 구성을 쓸 수 있다.

직접 만들기 전에 순서를 지키면 헛수고를 줄인다 — 이미 있는 커넥터 → 마켓플레이스 플러그인 → 그래도 없으면 직접 MCP 서버.

MCP 서버가 돌려주는 내용은 데이터지 지시가 아니다. 외부 도구가 반환한 텍스트에 "이렇게 해라"가 섞여 있어도 그건 실행 근거가 아니다. 쓰기 권한이 있는 커넥터를 붙일 때는 샌드박스의 network.allowedDomains 로 나가는 곳을 제한하는 편이 안전하다.

→ 외부 서비스나 내 도구를 붙이고 싶다 · /sandbox · --mcp-config / --plugin-dir

# claude mcp login/logout <s>

MCP OAuth 로그인/해제

대화형 /mcp 패널을 열지 않고 OAuth 흐름만 돌린다(v2.1.186+). HTTP·SSE·claude.ai 커넥터 서버에서 되고, SSH 로 붙어 있으면 --no-browser 로 인증 URL 을 출력받아 리다이렉트 URL 을 되붙인다.

→ 외부 서비스나 내 도구를 붙이고 싶다

# git log --oneline | claude -p "요약해줘"

예시

MCP 서버를 붙이기 전에 확인할 것 — 파이프만으로 되는 일이면 서버가 필요 없다. git·docker·DB 출력은 표준입력으로 그대로 넘어간다.

git log --oneline | claude -p "요약해줘"
cat error.log | claude -p "원인 찾아줘"

git log --oneline -10 | claude -p "체인지로그 작성"

공식 문서 ↗ 확인 2026-08-24 (7일 전)

커스텀 슬래시 명령어

반복하는 지시를 파일 한 장으로 고정. 커스텀 명령은 스킬로 통합, 문법 동일.

# .claude/commands/*.md

.claude/commands/*.md에 정의, frontmatter(name/description/aliases), 본문에 $ARGUMENTS 사용

파일 한 장이면 /명령 하나가 생긴다. 프로젝트 전용이면 .claude/commands/, 어디서나 쓰려면 ~/.claude/commands/.

커스텀 명령은 스킬로 통합됐다. .claude/commands/deploy.md 와 .claude/skills/deploy/SKILL.md 는 둘 다 /deploy 를 만들고 동작이 같다. 전자는 파일명이, 후자는 디렉터리명이 호출 이름이 된다. frontmatter 의 name 이 호출 이름이 되는 건 플러그인 스킬뿐이다.

인자 치환은 $ARGUMENTS(전체), $1·$2(위치 인자), 그리고 frontmatter 에 arguments: [issue, branch] 를 선언하면 $issue·$branch 로 이름을 붙여 쓴다. 리터럴 달러 기호는 백슬래시로 이스케이프한다.

Claude Code 는 frontmatter 키 20개를 받지만 claude.ai 업로드·Skills API 경로는 name, description, license, compatibility, metadata, allowed-tools 6개만 받고 그 외 키가 있으면 무시가 아니라 실패한다. 밖으로 내보낼 파일이면 6개로 제한할 것.

→ 같은 지시를 매번 치기 싫다 · 예: .claude/commands/deploy.md → /deploy 로 호출

# /debug # .claude/commands/debug.md

파일명이 그대로 명령 이름이 된다

스킬로 만들 때는 디렉터리명이 호출 이름이 된다(.claude/skills/deploy/SKILL.md → /deploy). 한 메시지 앞머리에 여러 개를 쌓을 수도 있다 — /write-tests /fix-issue 123 은 둘을 불러오고 뒤에 남은 123 을 각자의 $ARGUMENTS 로 넘긴다(첫 스킬 + 최대 5개).

/debug     # .claude/commands/debug.md
/test      # .claude/commands/test.md
/deploy    # .claude/commands/deploy.md

→ 같은 지시를 매번 치기 싫다 · 예: .claude/commands/deploy.md → /deploy 로 호출

공식 문서 ↗ 확인 2026-08-13 (18일 전)

제어 · 설정

권한 모드 (Shift+Tab)

세션 도중 Shift+Tab 으로 순환 전환. 시작할 때 고정하려면 --permission-mode. 모드는 "무엇을 물어보는가"만 결정, "무엇을 할 수 있는가"는 allow/deny 규칙과 샌드박스가 별도 결정.

# default (Manual)

읽기만 자동 승인. 쓰기·실행은 매번 물어본다.

가장 보수적인 값이다. Read/Glob/Grep 계열은 확인 없이 돌고 Edit/Write/Bash 는 호출마다 승인 카드가 뜬다.

카드에서 "이 명령은 다시 묻지 않기"를 고르면 그 패턴이 .claude/settings.local.json 의 permissions.allow 에 누적된다. 즉 default 로 며칠 쓰면 내 작업 패턴에 맞는 allow 목록이 저절로 만들어지고, 그 목록을 그대로 들고 상위 모드로 옮길 수 있다. 처음엔 default 로 며칠 → 쌓인 allow 확인 → 모드 상향이 실무 순서다.

claude --permission-mode default

누적된 allow 규칙은 .claude/settings.local.json 에 남고 여기엔 내 로컬 경로가 섞인다. 리포를 공개할 거면 이 파일이 .gitignore 에 있는지 먼저 볼 것.

→ 처음 깔았다, 무엇부터 해야 하나 · → 승인 창이 너무 자주 떠서 흐름이 끊긴다 · dontAsk · /permissions

# acceptEdits

파일 편집·기본 파일시스템 명령을 자동 승인한다.

Edit/Write 와 mkdir·mv 같은 기본 파일시스템 명령이 확인 없이 돈다. 네트워크 호출이나 패키지 설치처럼 바깥에 영향을 주는 동작은 여전히 물어본다.

"코드를 계속 고치는 중이라 편집 승인만 귀찮다"는 상황에 정확히 맞는 값이다. auto 로 한 번에 올리는 것보다 여기서 멈추는 편이 통제 범위를 이해하기 쉽다.

→ 승인 창이 너무 자주 떠서 흐름이 끊긴다 · auto

# plan

읽기 전용 탐색만 하고, 편집 전에 계획을 먼저 내놓는다.

탐색 단계에서 파일이 고쳐지는 사고를 구조적으로 막는다. 낯선 코드베이스를 파악할 때, 또는 "일단 어떻게 할 건지 보고 결정하겠다"일 때 쓴다.

Ctrl+G 로 계획 결과를 편집기에서 열 수 있다. 계획에 동의하면 모드를 내려서 실행한다.

→ 처음 보는 코드베이스를 파악해야 한다 · /plan · Ctrl+G

# auto

분류기가 위험도를 판정해 대부분의 도구 호출을 자동 승인한다.

분류기의 기준은 되돌릴 수 있는가다. rm -rf, force push, 프로덕션 배포, 시크릿이 나갈 수 있는 동작은 auto 에서도 카드가 뜬다.

2026-08-14 부터 Pro/Max/Team 의 신규 세션 기본값이 이 모드로 바뀐다. 기존 세션은 재개해도 이전 모드를 유지하므로, 어느 날 갑자기 승인 카드가 덜 뜨기 시작하면 이 전환을 먼저 의심할 것.

"대부분 자동 승인"이지 "전부"가 아니다. CI 처럼 사람이 없는 환경에서 쓰면 카드가 뜨는 순간 그 자리에서 사람을 기다리며 멈춘다. 무인 실행은 dontAsk 다.

→ 승인 창이 너무 자주 떠서 흐름이 끊긴다 · → CI나 스크립트에서 사람 없이 돌리고 싶다 · dontAsk · /sandbox

# dontAsk

사전 승인된 도구만 실행하고 나머지는 그냥 실패시킨다. CI용.

auto 와의 차이가 핵심이다 — auto 는 판단이 안 서면 묻고 멈추지만, dontAsk 는 묻지 않고 실패한다. 무인 실행에서는 멈춤보다 실패가 낫다. 로그에 남고, 재시도할지 사람이 정할 수 있기 때문이다.

default 로 며칠 쓰며 쌓아둔 permissions.allow 목록이 여기서 그대로 재사용된다.

claude -p "커버리지 분석" --permission-mode dontAsk --max-turns 3

→ CI나 스크립트에서 사람 없이 돌리고 싶다 · auto · --permission-mode <mode>

# bypassPermissions

모든 검사를 생략한다. 격리 환경 전용.

--dangerously-skip-permissions 와 같은 자리다. 이름에 dangerously 가 들어간 이유가 있다 — 되돌릴 수 없는 동작이 확인 없이 지나간다.

쓸 만한 자리는 하나뿐이다: 버려도 되는 컨테이너 안. 로컬 작업 디렉터리에서 "귀찮아서" 켜는 용도가 아니다. 승인 창이 잦은 게 문제라면 allow 규칙을 쌓거나 샌드박스를 켜는 쪽이 맞다.

이 모드를 쓰기 전에 되돌릴 수 있는 상태인지 먼저 볼 것 — 커밋했는지, 브랜치를 팠는지. /rewind 는 Claude 가 추적하는 변경만 되돌린다.

→ 건드리면 안 되는 걸 건드릴까 봐 불안하다 · --allowedTools "Bash(git log:*)" \ · /sandbox

# 주의

2026-08-14부터 Pro/Max/Team 신규 세션 기본값이 auto 모드로 전환

공식 문서 ↗ 확인 2026-08-13 (18일 전)

메모리 & CLAUDE.md

프로젝트 규칙·빌드 명령·하지 말 것을 적어두는 자리. 이게 없으면 매 세션 같은 설명 반복.

# 설명

로드 순서: managed policy → ~/.claude/CLAUDE.md → ./CLAUDE.md → CLAUDE.local.md

뒤에 오는 것이 앞을 덮는 게 아니라 전부 함께 로드된다. 그래서 층을 나눠 쓴다 — 전역(~/.claude/CLAUDE.md)에는 어느 프로젝트에서나 통하는 내 작업 방식, 프로젝트(./CLAUDE.md)에는 이 리포의 규칙, CLAUDE.local.md 에는 커밋하지 않을 개인 메모.

managed policy 는 조직이 배포하는 것이라 개인 설정으로 뒤집을 수 없다.

상위 디렉터리의 CLAUDE.md 는 시작 시 전부 로드되지만, 하위 디렉터리의 것은 그 디렉터리 파일을 읽을 때 비로소 로드된다.

CLAUDE.local.md 는 .gitignore 에 넣을 것. 로컬 경로나 개인 메모가 그대로 커밋된다.

→ 처음 깔았다, 무엇부터 해야 하나 · → 처음 보는 코드베이스를 파악해야 한다 · 설명

# @path/to/file

@path/to/file 로 다른 문서 import(최대 4단계)

CLAUDE.md 가 길어지면 @docs/architecture.md 처럼 쪼개 넣는다. 최대 4단계까지 중첩 import 된다.

쪼개는 기준은 "매 세션 필요한가"다. 항상 필요한 것만 CLAUDE.md 본문에 두고, 가끔 필요한 것은 별도 파일로 두었다가 그때만 @ 로 붙이는 편이 컨텍스트를 아낀다.

→ 토큰이 빨리 닳고 대화가 무거워진다

# /memory

/memory 로 편집 · Auto Memory: 학습 내용을 스스로 기록

/memory 는 어느 CLAUDE.md 를 고칠지 고르는 편집기를 연다. Auto Memory 는 작업 중 알게 된 것을 Claude 가 스스로 기록하는 기능이다.

자동 메모리는 기본 켜짐 — /memory 안의 토글이나 autoMemoryEnabled 설정으로 끈다. 저장 위치는 ~/.claude/projects/<프로젝트>/memory/ 이고 git 저장소 단위라 같은 리포의 worktree 들이 하나를 공유한다(머신 로컬, 클라우드 미공유). 인덱스 MEMORY.md 는 매 세션 처음 200줄/25KB만 로드되므로 짧게 유지해야 한다.

실무 팁 — 탐색을 마친 직후가 가장 좋은 기록 시점이다. 그때 적어두지 않으면 다음 세션에서 같은 탐색을 처음부터 반복하게 된다.

→ 처음 보는 코드베이스를 파악해야 한다 · /clear [name]

공식 문서 ↗ 확인 2026-08-20 (11일 전)

샌드박싱

권한을 넓히는 대신 피해 범위를 좁히는 층. 파일시스템과 나가는 네트워크를 제한. 네이티브 Windows 는 미지원.

# /sandbox

/sandbox, settings.json의 sandbox.enabled / filesystem.* / network.allowedDomains

권한 모드가 "무엇을 물어보는가"를 정한다면, 샌드박스는 "물어보지 않고 실행돼도 어디까지 망가질 수 있는가" 를 정한다. 두 축이 독립이라 같이 쓸 때 의미가 있다 — allow 규칙을 넓히더라도 샌드박스가 반경을 잡아준다.

network.allowedDomains 가 특히 값을 한다. MCP 커넥터나 스크립트가 예상 밖의 곳으로 데이터를 보내는 경로를 도메인 화이트리스트로 막는다.

// .claude/settings.json
{
  "sandbox": {
    "enabled": true,
    "network": { "allowedDomains": ["registry.npmjs.org", "github.com"] }
  }
}

→ 건드리면 안 되는 걸 건드릴까 봐 불안하다 · bypassPermissions · sandbox.network.allowedDomains

# 설명

macOS=Seatbelt, Linux/WSL2=bubblewrap

OS 기본 격리 기술을 그대로 쓴다 — macOS 는 Seatbelt, Linux/WSL2 는 bubblewrap. 별도 컨테이너 런타임을 깔지 않아도 되는 대신, 그 기술이 없는 플랫폼에서는 동작하지 않는다. Windows 에 구현이 없는 이유가 이것이다.

→ Windows에서 쓰는데 문서대로 안 된다

# 주의

네이티브 Windows 미지원 — WSL2 필요

공식 문서 ↗ 확인 2026-08-13 (18일 전)

모델 & 추론 설정

작업 난이도에 맞춰 비용을 조절하는 축. 단순 반복에 최고 강도 불필요.

# --model sonnet/opus/haiku/fable

별칭 전체: default, best, fable, sonnet, opus, haiku, sonnet[1m], opus[1m], opusplan

default 는 오버라이드 해제(계정 기본으로 복귀), best 는 조직에 Fable 5 가 있으면 Fable, 없으면 최신 Opus. [1m] 접미사는 100만 토큰 컨텍스트 창, opusplan 은 plan 모드에서 opus·실행에서 sonnet 을 쓰는 혼합 모드다.

# --model claude-sonnet-5

특정 모델 버전 지정

별칭 대신 전체 이름을 박으면 모델이 갱신돼도 그 버전에 고정된다 — 재현이 중요한 스크립트·평가에서 쓴다. 대신 은퇴하면 실패하므로 --fallback-model 을 같이 걸어 둔다.

--fallback-model <목록>

# --effort <level>

low, medium, high, xhigh, max — 기본 high, max 는 세션 한정

모델이 지원 안 하는 레벨을 주면 그 아래 최고 지원 레벨로 폴백한다. low~xhigh 는 대화형 세션에서 설정하면 세션 간 유지되고, max 는 CLAUDE_CODE_EFFORT_LEVEL 환경변수로 주지 않는 한 현재 세션에만 적용된다. (ultracode 는 effort 레벨이 아니라 워크플로 오케스트레이션 키워드다 — 2026-08-20 정정)

# --advisor opus

어드바이저 모델 활성화

중요한 지점에서 두 번째 모델에게 조언을 구하는 도구를 이 세션에서 켠다. advisorModel 설정보다 우선한다. 별도 모델 호출이라 그만큼 비용이 늘어난다.

--advisor <model>

# /model, /effort

세션 내 변경

/model 은 새 세션의 기본값으로도 저장된다 — 이번 세션만 바꾸려면 선택기에서 그 줄에 s 를 누른다. Alt+P(모델)로 프롬프트를 비우지 않고 바꿀 수도 있다.

Alt+P / Option+P

공식 문서 ↗ 확인 2026-08-24 (7일 전)

디렉토리 관리

실행한 디렉터리가 기본 작업 범위. 코드가 여러 곳에 흩어져 있으면 탐색 시작 전에 추가 필요.

# --add-dir ../apps ../lib

추가 작업 디렉토리 등록

공백으로 여러 경로를 한 번에 준다. 파일 접근만 늘어난다 — 그 디렉터리의 .claude/ 설정 (스킬·훅·권한 규칙)은 대부분 읽지 않으므로, 설정까지 필요하면 그 폴더에서 세션을 시작해야 한다.

# --add-dir /path/to/project

디렉토리 경로 유효성 확인

각 경로가 실제로 존재하는 디렉터리인지 검사한다 — 오타는 시작 시점에 걸러진다. 세션 중간에 추가하려면 /add-dir 이고, 성공하면 DirectoryAdded 훅이 돈다.

# --add-dir ../fe ../be ../shared

여러 디렉토리 동시 접근

세션마다 다시 적지 않으려면 설정의 permissions.additionalDirectories 에 올린다. /add-dir 로 이 디렉터리를 추가했던 세션은 나중에 --resume·--continue 목록에도 잡힌다.

--add-dir

공식 문서 ↗ 확인 2026-08-24 (7일 전)

설정 키 (settings.json)

자주 만지는 키만 추렸다. 키보다 먼저 알아야 할 것은 파일 4층 구조와 우선순위다.

# 설명

우선순위: managed → CLI 인자 → .claude/settings.local.json → .claude/settings.json → ~/.claude/settings.json

local 은 개인용(.gitignore 대상), project 는 팀 공유(커밋), user 는 내 전역. 같은 키가 겹치면 위 순서에서 앞선 층이 이긴다.

파일 첫 줄에 "$schema": "https://json.schemastore.org/claude-code-settings.json" 을 넣으면 에디터가 키 이름을 자동완성·검증해준다.

수명주기 훅도 이 파일의 hooks 키에 정의한다 — 상세는 「Hooks & 플러그인」 섹션.

→ 처음 깔았다, 무엇부터 해야 하나

# permissions.defaultMode

세션 시작 권한 모드 (default/acceptEdits/plan/auto/dontAsk)

--permission-mode 플래그가 이 값을 세션 단위로 덮어쓴다. bypassPermissions 는 여기 적어도 조직 정책(permissions.disableBypassPermissionsMode)이 막으면 뜨지 않는다. 데스크톱 앱은 선택기에서 고른 모드를 폴더별로 기억하고 그 폴더에서는 이 값보다 우선한다.

"auto" 값은 프로젝트·local 설정 파일에서는 무시된다 — auto 시작은 내장 기본값이나 user 설정으로만. 우선 규칙은 --permission-mode 플래그가 항상 이긴다.

auto · --permission-mode <mode> · Permission mode

# permissions.allow / deny / ask

도구별 사전 승인·차단·확인 규칙

deny 는 모든 모드에서 막힌다 — bypassPermissions 에서도. allow 는 bypass 에선 무의미. 승인 창이 잦으면 /fewer-permission-prompts 가 이 규칙을 대신 만들어준다.

{ "permissions": { "allow": ["Bash(npm run lint)"], "deny": ["Read(./.env)"] } }

→ 승인 창이 너무 자주 떠서 흐름이 끊긴다

# env

세션에 주입할 환경변수 묶음

자주 쓰는 값 — ANTHROPIC_DEFAULT_OPUS_MODEL/ANTHROPIC_DEFAULT_SONNET_MODEL (모델 별칭이 가리킬 버전 고정), CLAUDE_CODE_EFFORT_LEVEL(max 를 세션 넘어 유지), MAX_THINKING_TOKENS, CLAUDE_CODE_DISABLE_AUTO_MEMORY=1.

# model / availableModels

기본 모델 지정 · 선택 가능한 모델 제한

model 은 시작 모델, availableModels 는 고를 수 있는 목록 자체를 제한한다(조직용). --model 플래그와 /model 이 그 위에서 세션 값을 정하고, 허용 목록에서 빠진 값은 무시되어 현재 모델이 유지된다.

--model sonnet/opus/haiku/fable

# sandbox.enabled

Bash 샌드박스를 설정으로 상시 켜기

/sandbox 로 세션마다 켜는 대신 파일에 고정한다. 나가는 네트워크는 sandbox.network.allowedDomains 로 좁힌다.

/sandbox

# autoCompactEnabled / autoCompactWindow

자동 컴팩트 토글 · 발동 기준 컨텍스트 크기(100k~1M)

설정을 건드리지 않고 이번 세션만 바꾸려면 /autocompact 나 --autocompact 다. 자동 요약이 정보를 잃는 것이 문제라면 창을 넓히기보다 중요한 수치를 파일로 남기는 편이 낫다.

→ 토큰이 빨리 닳고 대화가 무거워진다 · --autocompact <auto|tokens>

# outputStyle

응답 스타일 지정 (/clear 후에도 유지)

Claude 의 역할·어조·출력 형식을 바꾼다. 공식 마켓의 explanatory-output-style· learning-output-style 이 플러그인으로 배포되는 예다.

explanatory-output-style

# autoMemoryEnabled / autoMemoryDirectory

자동 메모리 토글 · 저장 위치 변경

세션 안에서는 /memory 로 켜고 끄고 적립된 항목을 본다. 코드베이스에서 알 수 있는 사실이 쌓이면 매 세션 컨텍스트 비용만 늘고 낡는다 — 비자명한 결정과 제약만 남기는 편이 낫다.

/memory · /memory

# claudeMdExcludes

모노리포에서 남의 CLAUDE.md 를 글롭으로 제외

메모리를 읽을 때 특정 CLAUDE.md 를 건너뛴다. 패키지가 많은 저장소에서 관계없는 지침이 전부 딸려 오는 것을 막는 용도다 — 반대로 그 패키지에서 일할 때만 붙게 하려면 중첩 .claude/skills/ 나 스킬의 paths 를 쓴다.

→ 건드리면 안 되는 걸 건드릴까 봐 불안하다

# cleanupPeriodDays

대화 기록 보존 기간 (기본 30일)

자동 메모리 디렉터리는 이 청소에서 제외된다 — 기록은 사라져도 메모리는 남는다.

# enabledPlugins / extraKnownMarketplaces

프로젝트에 플러그인·마켓플레이스를 고정해 팀과 공유

스코프별로 개별 플러그인을 켜고 끈다. 클라우드 세션에서 플러그인을 쓰는 경로가 이것이다 — 저장소의 .claude/settings.json 에 적어 두면 세션 시작 때 설치된다 (데스크톱에서 설치한 플러그인은 클라우드 세션에 따라가지 않는다).

플러그인은 클라우드·WSL 세션에서는 사용 불가 · Project

# statusLine

터미널 하단 상태줄을 명령 출력으로 커스텀

내 명령의 출력을 프롬프트 아래에 렌더한다. 직접 JSON 을 쓰는 대신 /statusline 에게 원하는 것을 말하거나, 인자 없이 실행해 현재 셸 프롬프트에서 자동 구성하게 할 수 있다.

/statusline

# attribution

커밋·PR 에 붙는 서명 문구 변경

attribution.commit·attribution.pr·attribution.sessionUrl 로 나눠 끄거나 바꿀 수 있다 — 커밋 트레일러는 남기고 PR 본문의 문구만 없애는 식의 조정이 가능하다.

→ 머지 전에 변경사항을 검토받고 싶다

# defaultShell

! 셸 모드의 셸 선택 (bash / powershell)

! 로 직접 돌리는 명령의 셸을 정한다. 스킬 단위로 바꾸려면 스킬 프런트매터의 shell: powershell 이 있다 — Windows 에서 두 셸이 섞여 스크립트가 깨지는 일을 줄인다.

→ Windows에서 쓰는데 문서대로 안 된다 · !

공식 문서 ↗ 확인 2026-08-24 (7일 전)

세션 제어 & 비용

무한 반복으로 새어나가는 비용을 구조적으로 막는 장치들. 일회성 작업에는 상한 설정이 안전.

# -p --max-turns 3

프린트 모드 턴 수 제한

한도에 닿으면 오류로 종료한다 — 잘린 결과가 성공처럼 다음 단계로 흐르지 않는다. 기본값은 무제한이므로 일회성 실행에는 걸어 두는 편이 안전하다.

# --max-budget-usd 5.00

지출 상한 설정

프린트 모드 전용. 서브에이전트의 지출도 합산된다 — 상한에 닿으면 새 서브에이전트 생성이 Budget limit reached 로 실패하고 돌던 백그라운드 서브에이전트도 중단된다(v2.1.217+).

--max-budget-usd <금액>

# --verbose

상세 로그 출력

비용이 어디서 나가는지 볼 때 쓴다. 턴 단위 출력을 전부 보여주고 viewMode 설정을 덮어쓴다.

# /usage, /cost

토큰 사용량·비용 표시

유료 플랜에서는 스킬·서브에이전트·플러그인·MCP 서버별 내역까지 쪼개 준다. 플랜 사용량은 터미널·데스크톱·웹이 공유하는 값이다. /stats 도 같은 것을 연다.

/usage, /cost

공식 문서 ↗ 확인 2026-08-24 (7일 전)

도구 & 권한 실전 예시

모드보다 강한 층. --disallowedTools 는 우회되지 않으므로 위험한 명령은 여기서 상시 차단.

# --allowedTools "Bash(git log:*)" \

도구 허용·금지 규칙을 명령줄에서 지정한다

권한 모드보다 강한 층이다. 모드는 "무엇을 물어보는가"를 정하지만 이 규칙은 무엇이 아예 불가능한가를 정한다.

--disallowedTools 가 특히 값을 한다. allow 목록은 승인 카드를 누르다 보면 실수로 넓어질 수 있지만 disallow 는 우회되지 않으므로, 되돌릴 수 없는 명령은 여기서 상시 차단한다.

--allowedTools "Bash(git log:*)" \
  "Bash(git diff:*)" "Write"

--disallowedTools "Bash(rm:*)" "Bash(sudo:*)"

--permission-prompt-tool mcp_auth_tool

--dangerously-skip-permissions   # 위험, 지양

--dangerously-skip-permissions 는 마지막 수단이다. 승인 창이 잦은 게 문제라면 allow 규칙을 쌓거나 샌드박스를 켜는 쪽이 맞다. 쓰기 전에 되돌릴 수 있는 상태인지 — 커밋했는지, 브랜치를 팠는지 — 먼저 볼 것.

→ 승인 창이 너무 자주 떠서 흐름이 끊긴다 · → 건드리면 안 되는 걸 건드릴까 봐 불안하다 · bypassPermissions · /sandbox

공식 문서 ↗ 확인 2026-08-13 (18일 전)

성능 & 리소스 관리

속도 저하의 원인은 대개 컨텍스트 과다, 또는 작업 전환 후 이전 대화 잔존.

# claude -p --max-turns 1 "빠른 분석" # 단일 턴

예시

순서가 있다 — /context 로 무엇이 먹고 있는지 먼저 보고, 작업이 바뀐 것이면 /clear, 이어가야 하면 /compact, 그 다음 /effort·/model 로 강도를 내린다. 감으로 자르면 남겨야 할 것을 자른다.

--autocompact auto 는 모델에 맞춰진 기본 창으로 되돌리는 값이다. /doctor 는 쓰지 않는 스킬·MCP 서버·플러그인을 그 컨텍스트 비용과 함께 지목해 준다.

claude -p --max-turns 1 "빠른 분석"     # 단일 턴
claude --autocompact auto                # 자동 컨텍스트 압축
/usage                # 세션 비용·한도 확인
/doctor                # 설정 진단

공식 문서 ↗ 확인 2026-08-24 (7일 전)

캐싱 & 폴백

이어가기로 컨텍스트 재사용, 과부하 시 폴백 모델로 전환.

# claude -c -p "이전 분석 이어가기" # 컨텍스트 재사용

예시

-c -p 는 직전 대화를 이어받아 컨텍스트를 재사용한다. & 로 병렬 실행하면 각각이 독립 세션이라 컨텍스트를 공유하지 않는다 — 서로의 결과가 필요하면 파이프나 세션 이어가기로 묶어야 한다.

--fallback-model 은 쉼표로 나열한 순서대로 시도한다. 참고로 모델을 오가며 바꾸면 프롬프트 캐시가 새로 쌓이므로, 긴 대화 중간의 잦은 전환은 캐시 이득을 버린다.

claude -c -p "이전 분석 이어가기"   # 컨텍스트 재사용
claude -p "task1" & claude -p "task2" & wait  # 병렬
claude --fallback-model sonnet,haiku "질의"

공식 문서 ↗ 확인 2026-08-24 (7일 전)

실행 · 화면

백그라운드 에이전트 & 클라우드

세션을 붙잡고 기다릴 필요가 없는 작업을 떼어내는 층. 떼어내는 방식은 셋, "지금 대화를 분리할 것인가 / 새로 띄울 것인가 / 기기를 옮길 것인가"로 구분.

# claude --bg "작업 지시" # 백그라운드 실행

백그라운드·클라우드 세션 명령 모음

--bg 는 처음부터 세션에 묶이지 않게 띄운다. claude agents 로 목록을 보고 attach 로 붙었다가 떼어낼 수 있다. 진행만 보려면 logs.

--cloud 는 실행 자체를 웹으로 올린다. 노트북을 닫아도 계속 돌고, 나중에 --teleport 로 로컬로 가져온다. 오래 걸리는 작업을 퇴근길에 걸어둘 때 쓰는 경로다.

claude --bg "작업 지시"        # 백그라운드 실행
claude agents                  # 목록/대시보드
claude attach|logs|stop <id>   # 연결/로그/중지
claude respawn <id>            # 재시작
claude --cloud "작업"          # 웹 세션 생성
claude --teleport              # 웹 세션→로컬 이동

백그라운드 작업도 토큰을 쓴다. 여러 개를 걸어두면 사용량이 눈에 안 보이는 채로 늘어난다. 일회성 작업에는 --max-turns 를 걸고 /usage 로 주기적으로 확인할 것.

→ 오래 걸리는 작업을 걸어두고 다른 걸 하고 싶다 · /tasks · -p --max-turns 3

# /background

/background(/bg), /tasks 로 세션 내 관리

이미 진행 중인 대화를 떼어낼 때 쓴다. --bg 가 "처음부터 백그라운드"라면 /background 는 "하던 걸 백그라운드로". /tasks 로 목록을, Ctrl+T 로 토글한다.

비슷해 보이지만 다른 것 — /fork 는 대화를 복사해 새 백그라운드 세션을 만든다. 원본을 남겨두고 다른 접근을 병렬로 시험할 때 이쪽이다.

→ 오래 걸리는 작업을 걸어두고 다른 걸 하고 싶다 · → 작업이 커서 하나의 대화로는 안 될 것 같다 · /fork · Ctrl+T

공식 문서 ↗ 확인 2026-08-13 (18일 전)

IDE 연동

편집기와 붙이면 열려 있는 파일·선택 영역이 맥락으로 전달.

# /ide # IDE 연동 상태 표시/관리

예시

--ide 는 유효한 IDE 가 정확히 하나일 때만 자동 연결한다 — 여러 개가 떠 있으면 붙지 않으니 /ide 로 상태를 보고 고른다. 붙으면 열려 있는 파일과 선택 영역이 맥락으로 넘어간다.

Chrome 연동은 내 로그인 세션을 그대로 쓰는 경로다 — 로그인이 필요한 화면을 다뤄야 할 때만 켠다.

/ide                # IDE 연동 상태 표시/관리
claude --ide          # 사용 가능한 IDE 자동 연결
claude --chrome        # Chrome 브라우저 연동 켜기
claude --no-chrome     # 이 세션만 Chrome 연동 끄기

공식 문서 ↗ 확인 2026-08-24 (7일 전)

Git & 서드파티 연동

표준 입력으로 무엇이든 전달 가능. git·docker·DB 출력이 그대로 입력.

# git log --oneline -10 | claude -p "체인지로그 작성"

예시

표준입력이 만능 어댑터다. 다만 넣은 만큼 컨텍스트를 먹는다 — git diff --name-only, git log -10 처럼 먼저 걸러서 넘기는 편이 낫다.

로그·DB 출력에는 자격증명이나 개인정보가 섞여 있을 수 있다. 파이프로 넘기면 그대로 모델에 전달되므로, 무엇을 넘기는지 한 번 보고 넘긴다.

git log --oneline -10 | claude -p "체인지로그 작성"
git diff --name-only | claude -p "변경사항 설명"
mysql -e "SHOW TABLES" | claude -p "DB 구조 분석"
docker logs c | claude -p "로그에서 에러 찾기"

공식 문서 ↗ 확인 2026-08-24 (7일 전)

자동화

출력/입력 형식

사람이 읽는 출력 대신 기계가 파싱할 출력을 받는 축. 자동화의 출발점.

# --output-format stream-json

실시간 처리용 스트림

한 번에 다 받지 않고 오는 대로 처리한다. 오래 걸리는 작업의 진행을 보여줘야 하거나, 출력이 커서 메모리에 다 올리기 곤란할 때 쓴다.

→ CI나 스크립트에서 사람 없이 돌리고 싶다

# --input-format stream-json

프린트 모드 입력 형식

표준입력으로 메시지를 흘려 넣는다. 작업 중에 보낸 메시지는 큐에 남아 자기 턴으로 실행되고, 그 턴은 자기 --max-turns 한도를 따로 갖는다. 보낸 것을 확인받으려면 --replay-user-messages 로 되돌려 받는다.

→ CI나 스크립트에서 사람 없이 돌리고 싶다

# --json-schema '<schema>'

스키마 검증된 JSON 출력

스키마를 주면 모델이 그 형태를 지키도록 강제되고, 어긋나면 재시도한다. --output-format json 만으로는 필드 이름이 흔들릴 수 있어서 파싱 코드가 깨진다. 결과를 프로그램이 소비할 거면 이쪽이 맞다.

→ CI나 스크립트에서 사람 없이 돌리고 싶다

# -p --max-turns 1 "질의"

배치/1회성 처리

한도에 닿으면 오류로 종료하므로 잘린 결과가 성공처럼 흐르지 않는다. 돈으로도 막으려면 --max-budget-usd 를 같이 건다(서브에이전트 지출까지 합산된다).

--max-budget-usd <금액>

공식 문서 ↗ 확인 2026-08-24 (7일 전)

자동화 스크립팅

대화형이 아니라 한 번 돌고 끝나는 실행. 권한 모드·출력 형식·상한 셋을 반드시 함께 설정.

# claude -p "analyze codebase" \

예시

프린트 모드는 한 번 돌고 끝난다. 셋을 같이 걸어야 안전하다 — 권한 모드(--permission-mode), 출력 형식(--output-format), 상한(--max-turns· --max-budget-usd). 상한에 닿으면 오류로 종료하므로 잘린 결과가 조용히 다음 단계로 흐르지 않는다.

시작을 빠르게 하려면 --bare 로 훅·스킬·MCP 자동 탐색을 건너뛴다. 이렇게 만든 -p 세션은 나중에 --continue 로 잡히지 않는다(claude -p --continue 는 포함한다).

#!/bin/bash
claude -p "analyze codebase" \
  --output-format json > analysis.json
claude -p "generate tests" --max-turns 3 \
  --output-format text > tests.txt

공식 문서 ↗ 확인 2026-08-24 (7일 전)

고급 세션 관리 & 워크플로우

세션 ID 를 잡아 여러 단계를 이어 붙이거나, 파이프로 단계를 연결하는 패턴.

# SID=$(claude -p "start" --output-format json \

예시

--output-format json 의 session_id 를 잡아 두면 claude -r "$SID" 로 같은 대화를 이어 여러 단계를 붙일 수 있다. ID 를 내가 정하려면 --session-id <UUID> 를 쓴다.

파이프로 잇는 것과 세션을 잇는 것은 다르다 — 파이프의 각 단계는 앞 단계의 출력만 받는 새 대화다. 앞의 탐색 결과나 파일 내용을 알고 있어야 하는 작업이면 세션을 이어야 한다.

SID=$(claude -p "start" --output-format json \
  | jq -r '.session_id')
claude -r "$SID" "continue analysis"

claude -p "구조 분석" | claude -p "개선안 제안" \
  | claude -p "구현 계획 작성"

공식 문서 ↗ 확인 2026-08-24 (7일 전)

자동화된 코드 리뷰

관점을 하나로 고정해 따로 돌리는 편이 한 번에 다 시키는 것보다 깊이 들어감.

# git diff HEAD~1 | claude -p "보안 이슈 리뷰" > security.md

예시

관점을 하나로 고정해 따로 돌리는 이유는, 한 번에 다 시키면 관점이 섞여 얕아지기 때문이다. 대신 같은 diff 를 여러 번 읽는 비용이 든다.

내장 명령으로도 같은 일을 한다 — /code-review 는 강도(low~max)와 대상(PR·브랜치·경로)을 받고 --fix 로 적용까지 하며, /security-review 는 브랜치와 origin 기본 브랜치의 차이를 본다(origin 이 없으면 실패한다).

git diff HEAD~1 | claude -p "보안 이슈 리뷰" > security.md
git diff HEAD~1 | claude -p "성능 이슈 확인" > perf.md
git diff HEAD~1 | claude -p "개선안 제안" > improve.md

공식 문서 ↗ 확인 2026-08-24 (7일 전)

CI 연동 & 배치 처리

CI 에서 돌릴 때는 결과를 파싱 가능한 형식으로, 실패는 조용히 지나가지 않게.

# claude -p "커버리지 분석" --output-format json \

예시

CI 에서는 실패가 조용히 지나가지 않는 것이 핵심이다 — --max-turns 는 한도에 닿으면 오류로 종료하므로 잡을 수 있다. 결과 파싱은 --output-format json, 형식을 스키마로 고정하려면 --json-schema.

find ... -exec claude -p 는 파일 하나에 세션 하나다. 파일이 많으면 비용이 급히 늘어나므로 --max-budget-usd 를 같이 걸고, 시작 시간을 줄이려면 --bare 를 붙인다.

claude -p "커버리지 분석" --output-format json \
  | jq '.coverage_percentage'
claude -p "커밋 기반 릴리스 노트 생성" \
  --max-turns 2 > RELEASE_NOTES.md
find . -name "*.js" -exec claude -p "버그 분석: {}" \; \
  > bug_report.txt

공식 문서 ↗ 확인 2026-08-24 (7일 전)

조직 · 엔터프라이즈

팀 협업 & 프로덕션

설정 파일 공유로 같은 기준 적용. CI·락다운 환경은 dontAsk 가 기본.

# claude --settings team-config.json "표준 분석"

예시

--settings 는 준 키만 덮어쓴다 — 적지 않은 키는 각자의 파일 값을 그대로 쓰므로, 팀 공통 설정을 강제하려면 그 키를 전부 적어야 한다. 어느 층까지 읽을지는 --setting-sources user,project,local 로 정한다.

dontAsk(미리 승인한 도구만 허용)는 CLI 전용 모드다 — 데스크톱 앱에는 없다.

claude --settings team-config.json "표준 분석"
claude -r "team-session-id" "팀 논의 이어가기"

claude --permission-mode dontAsk   # CI·락다운 환경

공식 문서 ↗ 확인 2026-08-24 (7일 전)

엔터프라이즈 관리

조직이 배포하는 managed-settings.json 이 최상단, 개인 설정으로 뒤집기 불가.

# 설명

설정 우선순위: managed-settings.json > CLI 인자 > .claude/settings.local.json > .claude/settings.json > ~/.claude/settings.json

managed-settings.json 이 최상단이라 개인 설정으로 뒤집을 수 없다. 조직이 배포하는 정책이고, 그 아래로 CLI 인자 → 프로젝트 local → 프로젝트 → 사용자 순이다.

개인 프로젝트에서 이 순서가 중요한 이유는 따로 있다 — .claude/settings.local.json 이 .claude/settings.json 을 덮으므로, 팀과 공유할 규칙은 local 이 아닌 쪽에 둬야 한다.

설명

# 설명

auto 모드는 프로덕션 배포·강제 푸시·시크릿 유출 등을 기본 차단

기본 규칙은 claude auto-mode defaults 로 JSON 으로 볼 수 있고(--label 'Git Destructive' 처럼 접두어로 걸러서), 내 설정이 적용된 실효 구성은 claude auto-mode config 다. 조직은 관리 설정의 autoMode 로 무엇을 신뢰·차단할지 조정하고 disableAutoMode 로 끈다.

되돌리려면 claude auto-mode reset(사용자 설정의 autoMode 섹션 제거, 확인 후 실행).

auto

# sandbox.network.allowedDomains

sandbox.network.allowedDomains 로 아웃바운드 도메인 제한

나가는 트래픽을 도메인 화이트리스트로 막는다. MCP 커넥터나 스크립트가 예상 밖의 곳으로 데이터를 보내는 경로를 차단하는 가장 직접적인 수단이다.

→ 건드리면 안 되는 걸 건드릴까 봐 불안하다 · /sandbox

공식 문서 ↗ 확인 2026-08-24 (7일 전)

실전

실무 모범 사례 — 성능·보안

권한 확대 전에 피해 범위 축소를 먼저 검토.

# 장기 대화는 /compact로 압축

압축은 정보를 잃는다. 방금 확인한 실측 수치나 파일 내용이 요약에 날아가면 그 다음 판단이 근거 없이 이뤄진다 — 중요한 숫자는 압축 전에 파일로 남긴다. 자동 압축 기준은 /autocompact 나 --autocompact 로 정한다.

→ 토큰이 빨리 닳고 대화가 무거워진다

# --dangerously-skip-permissions 사용 지양

확인이 잦은 것이 문제라면 순서가 있다 — ① /fewer-permission-prompts 로 실제로 쓴 읽기 전용 호출만 허용 목록에 올리고 ② 필요한 것만 --allowedTools 로 열고 ③ 격리가 필요하면 /sandbox 나 컨테이너를 쓴다.

그래도 우회가 필요하면 --allow-dangerously-skip-permissions 로 순환에만 넣어 두고 다른 모드로 시작하는 방법이 있다.

→ 승인 창이 너무 자주 떠서 흐름이 끊긴다 · --allow-dangerously-skip-permissions

# 위험 명령은 --disallowedTools로 상시 차단

범위를 준 규칙이 낫다 — Bash(rm *) 처럼 쓰면 Bash 는 남고 그 호출만 막힌다. 이름만 주면 도구가 컨텍스트에서 통째로 사라진다. 세션마다 다시 주지 않으려면 설정 파일의 deny 규칙으로 올린다.

--disallowedTools

# 도구 권한 주기적 점검, 항상 최신 버전 유지

/permissions 로 스코프별 규칙을 보고, 쓰지 않는 스킬·MCP 서버·플러그인은 /doctor 가 그 컨텍스트 비용과 함께 지목해 준다. 버전은 /doctor 가 릴리스 채널을 보고 알려준다.

→ 승인 창이 너무 자주 떠서 흐름이 끊긴다 · /doctor

# 설정이 깨졌으면 --safe-mode 로 먼저 가른다

내 커스터마이제이션(CLAUDE.md·스킬·플러그인·훅·MCP)이 원인인지 아닌지를 한 번의 실행으로 가른다. --safe-mode 로 되면 원인은 내 설정 쪽이고, 그래도 안 되면 설치·인증·네트워크 쪽이다. 속도를 위해 최소로 띄우는 --bare 와 목적이 다르다.

→ 안 된다, 뭐가 문제인지 모르겠다 · --safe-mode

공식 문서 ↗ 확인 2026-08-24 (7일 전)

실무 모범 사례 — 워크플로우

반복이 보이면 명령어로 고정, 자동화할 거면 출력 형식부터 결정.

# 반복 작업 → .claude/commands/ 커스텀 명령어화

지금은 스킬이 정본이다 — .claude/skills/<name>/SKILL.md. .claude/commands/*.md 도 계속 동작하지만 이름이 겹치면 스킬이 이긴다. 스킬은 디렉터리라 보조 파일을 담고 프런트매터로 도구·모델·강도까지 정할 수 있다.

→ 같은 지시를 매번 치기 싫다 · .claude/commands/*.md

# 복합 작업 → 파이프로 단계별 연결

cat file | claude -p "..." 처럼 표준입력을 넘긴다. 여러 사람·여러 기기가 같은 작업을 돌린다면 --exclude-dynamic-system-prompt-sections 로 프롬프트 캐시 재사용률을 올릴 수 있다.

--exclude-dynamic-system-prompt-sections

# 병렬 작업 → --worktree 로 격리

같은 저장소에서 세션 여러 개를 돌리면 서로의 편집이 섞인다. -w 는 <repo>/.claude/worktrees/<name> 에 격리된 워크트리를 만들고, #123 이나 PR URL 을 주면 그 PR 에서 분기한다. 커밋할 때는 git commit -- <경로> 로 지금 의도한 파일만 넣는다.

→ 작업이 커서 하나의 대화로는 안 될 것 같다 · --worktree, -w

공식 문서 ↗ 확인 2026-08-24 (7일 전)

레벨별 학습 가이드

무엇부터 익힐지 순서. 권한 모드와 컨텍스트 관리가 초반 체감 가장 큼.

# 초급

기본 명령어부터 → /help 자주 활용 → 간단한 질의로 연습 → 작업 간 /clear

처음 붙는 사람에게 가장 빠른 것은 /powerup 이다 — 애니메이션 데모가 붙은 짧은 레슨으로 기능을 하나씩 눌러 본다. 그 다음은 /init 으로 CLAUDE.md 를 만들고 /clear 습관을 붙이는 것.

# 중급

권한 모드·도구 권한 마스터 → JSON 출력 자동화 → MCP 연동 → 커스텀 명령어화

권한은 우회(--dangerously-skip-permissions)가 아니라 좁혀서 여는 것부터 익히는 게 맞다 — /fewer-permission-prompts 로 실제로 쓴 호출만 허용 목록에 올리는 흐름. 커스텀 명령은 이제 스킬이 정본(.claude/skills/<name>/SKILL.md)이다.

# 고급

Hooks·플러그인·샌드박싱 활용 → 백그라운드/클라우드 세션 → 팀 협업·엔터프라이즈 정책 준수

"매번 X 하게" 같은 자동 동작은 지침이 아니라 훅이 담당한다(하네스가 실행한다). 병렬 작업은 --worktree 로 격리하고, 오래 걸리는 것은 --bg 로 떼어낸다. 팀에 배포할 것은 스킬 → 플러그인 순으로 올린다.

공식 문서 ↗ 확인 2026-08-24 (7일 전)

문제 해결

트러블슈팅 — 설치

설치·인증 문제는 doctor 로 상태를 먼저 읽고, 그래도 안 되면 네이티브 재설치.

# claude --version && claude auth status && claude doctor

예시

claude doctor 가 설치 버전·인증 상태·PATH·파일 권한·프로젝트 구성·훅/스킬 상태를 한 번에 점검한다. 추측 전에 이것부터 돌리는 편이 빠르고, 출력을 그대로 지원 요청에 붙일 수 있다.

설정이 원인인지 가르려면 --safe-mode 로 한 번 띄워 본다 — 그것으로 되면 내 커스터마이제이션 쪽이고, 그래도 안 되면 설치·인증·네트워크 쪽이다.

claude --version && claude auth status && claude doctor
claude install stable         # 네이티브 재설치
npm uninstall -g @anthropic-ai/claude-code
npm install -g @anthropic-ai/claude-code   # npm 재설치

공식 문서 ↗ 확인 2026-08-24 (7일 전)

트러블슈팅 — 성능·권한

동작 이상 시 커스터마이제이션 배제로 범위를 반씩 줄이는 게 가장 빠름.

# /clear # 컨텍스트 비우기

예시

"느려졌다"의 원인은 대개 컨텍스트가 찼거나, 작업이 바뀌었는데 이전 대화가 남아 있는 것이다 — /context 로 확인한 뒤 자른다.

MCP·시작 단계가 의심되면 --debug='mcp,startup' 으로 범주를 좁혀 본다(필터는 = 형태에서만 붙는다). 권한 때문에 막힌 것처럼 보이면 /permissions 로 실제 규칙을 확인한다.

/clear                          # 컨텍스트 비우기
claude -p --max-turns 3 "포커스 질의"
/compact "핵심만 유지"

/permissions                    # 권한 규칙 확인·관리

공식 문서 ↗ 확인 2026-08-24 (7일 전)

A3 치트시트 · Claude Code CLI

core 120개 · A3 가로 한 장

새 탭에서 열기

인쇄 대화상자에서 용지 A3 · 가로 · 배경 그래픽 켜기. 대상에서 PDF로 저장을 고르면 파일로 받습니다.

키보드 단축키

/ 또는 Ctrl+K
검색 팔레트를 연다.
↑ ↓
검색 결과 이동
Enter
선택한 결과 열기
Esc
팔레트·검색어 지우기
123456
영역 이동 (1 Claude Desktop · 2 Claude Science · 3 Claude Code CLI · 4 슬래시 · 플러그인 · 5 내 규칙 · 대화법 · 6 출처·라이선스)
?
이 도움말

Esc 로 닫습니다.