auto 모드 한눈에 보기
- auto 모드는 권한 모드입니다: Claude가 일상적인 프롬프트 없이 움직이고, 셸 명령이나 네트워크 요청 같은 액션이 실행되기 전에 백그라운드 분류기가 요청에 부합하는지 확인합니다.
- shift+tab으로 전환하거나(auto는 default → acceptEdits → plan 사이클의 마지막), claude --permission-mode auto를 실행하거나, Bash 프롬프트에서 "Yes, and switch to auto mode"를 고릅니다(2.1.247 이상). 2.1.283부터 새 인터랙티브 세션은 모든 플랜에서 auto로 시작합니다.
- 판단은 순서대로 돕니다: 먼저 allow/ask/deny 규칙, 다음으로 읽기 전용 액션과 작업 디렉터리 편집은 자동 승인, 나머지는 전부 분류기로 — 두 번째 모델이며 기본은 Claude Sonnet 5입니다.
- 분류기는 CLAUDE_CODE_AUTO_MODE_MODEL(2.1.302 이상)로 고정하고, 서버 측 대 클라이언트 측 리뷰는 CLAUDE_CODE_AUTO_MODE_SERVER로 고릅니다. 분류기 모델을 쓸 수 없으면 검사가 실패하고 액션은 거부됩니다.
- 가드레일: 분류기 차단이 연속 3회 또는 누적 20회면 auto 모드가 멈추고 프롬프트로 돌아오고, deny 규칙은 auto 모드 안에서도 유효하며, permissions.disableAutoMode로 모드 자체를 제거할 수 있습니다.
How auto mode works with Claude Code
채널Claude5:42
Permission modes — Claude Code documentation
문서code.claude.com
프레임은 Anthropic 자체의 auto 모드 워크스루에서 왔습니다 — 풀 스크린 애니메이션 카드뿐이며 얼굴 출연 세그먼트는 모두 건너뛰었습니다. 사실 관계는 공식 permission-modes, permissions, auto-mode-config 문서와 CLAUDE_CODE_AUTO_MODE_MODEL을 도입한 2.1.302 체인지로그 항목으로 대조했습니다.
영상 프레임의 저작권은 원작자에게 있으며, 출처 표기와 딥링크와 함께 단계별 설명 자료로 인용했습니다.
auto 모드 한 단계씩 켜고 설정하기
1단계 — auto 모드 켜기
- 1
auto 모드가 대체하는 것 보기
default 모드에서 일상 업무는 프롬프트의 연속입니다: npm run build는 Bash 승인을, 문서 가져오기는 네트워크 승인을 청합니다. auto 모드는 이런 일상 프롬프트를 백그라운드 분류기로 대체합니다 — 셸 명령과 네트워크 요청 같은 액션이 실행되기 전에 두 번째 모델이 요청에 부합하는지 확인합니다. ask 규칙과 deny 규칙은 그대로 유효하고, 사라지는 것은 일상적인 yes/no 트래픽입니다.

auto 모드가 대체하는 프롬프트 카드: Yes/No 답을 기다리는 npm run build의 Bash 승인과 fetch 승인. - 2
shift+tab으로 모드 전환하기
shift+tab은 세션 중 권한 모드를 순환시킵니다: auto에서 한 번 누르면 default에 착지하고 사이클은 default → acceptEdits → plan으로 흐르며, 선택적 모드는 plan 뒤에 끼어듭니다 — bypassPermissions가 먼저, auto가 마지막. 푸터는 항상 활성 모드를 표시합니다. 경로는 셋 더 있습니다: Bash 프롬프트의 "Yes, and switch to auto mode" 선택지(2.1.247 이상), claude --permission-mode auto 플래그(-p와 함께 동작), 그리고 permissions.defaultMode — "auto"는 사용자 수준 ~/.claude/settings.json, --settings 파일, 관리형 설정에서만 효과가 있고 프로젝트 .claude/settings.json에서는 절대 효과가 없습니다.

활성 모드와 shift+tab 순환 힌트를 표시하는 입력 푸터 — auto는 사이클 끝에 있습니다. - 3
기본값 알기: 세션은 auto로 시작한다
Claude Code v2.1.283부터 새 인터랙티브 세션은 모든 플랜에서 auto 모드로 시작합니다(이전 빌드는 Pro/Max/Team에만 제공, HIPAA 구성은 2.1.285 이상에서 Manual로 폴백). auto 세션은 푸터에 모드를 표시하고, 분류기가 각 액션을 백그라운드에서 리뷰하는 동안 작업을 진행합니다 — 여기서는 Fable 5 위의 "Tidy up local branches" 작업입니다. 서버 측 검사가 활성이면 /status에 Auto mode server 항목이 표시됩니다.

auto 모드로 도는 Claude Code v2.1 세션: Fable 5 위의 Tidy up local branches 작업과 auto mode on 푸터.
2단계 — 분류기의 판단 방식
- 4
판단 순서 배우기: 규칙, 티어, 분류기
모든 액션이 같은 길을 갑니다. 먼저 당신의 규칙이 답합니다: deny는 차단, ask는 프롬프트, allow는 통과. 읽기 전용 액션과 작업 디렉터리 편집은 분류기 없이 자동 승인됩니다. 나머지는 모두 티어 분기로 떨어집니다 — 읽기 전용, 프로젝트 내 쓰기, 그 외 — 일상적인 액션은 분류기를 건너뛰고 나머지는 Approve 또는 Deny로 끝나는 분류기 다이아몬드에 닿습니다.

판단 다이어그램: deny/ask/allow 규칙이 Agent 액션을 Tier 1 읽기 전용, Tier 2 프로젝트 내 쓰기, Tier 3의 Skip Classifier 또는 분류기 다이아몬드로 보냅니다. - 5
분류기가 실제로 읽는 것 보기
분류기에게 트랜스크립트는 가지 않습니다. 요청에서 도구 결과는 떼어내므로 악의적인 파일이나 페이지 내용이 분류기를 직접 조작할 수 없습니다 — 도착하는 것은 판단할 액션이 붙은 당신의 요청입니다. 녹화된 예에서는 레이트 리밋 질문이 두 행으로 요약됩니다: WebSearch("acme API rate limits")와 WebFetch(docs.acme.com). 이것이 분류기가 평가하는 전부입니다.

분류기 가시 범위 스트립: 전체 대화가 분류기가 평가하는 WebSearch와 WebFetch 호출로 줄어든 모습. - 6
닮은 명령이 다른 판정을 받는 이유
분류기는 분위기가 아니라 액션을 판정합니다. 두 번째 스트립에서 git branch -d old-login은 로컬 브랜치를 삭제 — 일상적입니다. 그 쌍둥이 git push origin --delete old-login은 원격의 브랜치를 삭제 — 티어 분기가 그냥 통과시키지 않고 분류기에 넘기는 바로 그 종류의 액션입니다. 머신 밖으로 나가는 것, 공유 상태를 만지는 것은 같은 정리로 보여도 분류된다고 예상하세요.

git 쌍둥이: 로컬 브랜치 삭제는 일상으로 남고 git push origin --delete는 분류기로 올라갑니다.
3단계 — 규칙과 분류기 모델
- 7
서버 측 또는 클라이언트 측 리뷰 고르기
분류기는 두 곳 중 한 곳에서 돕니다. 서버 측: Claude Code가 세션의 모델 서버에 요청의 일부로 액션 검사를 맡깁니다 — /status에 Auto mode server 항목이 표시됩니다. 클라이언트 측: Claude Code가 자체 분류기 요청을 보냅니다. 서버가 판정을 주지 않거나 프록시가 리뷰 결과를 떨어뜨릴 때 쓰입니다. CLAUDE_CODE_AUTO_MODE_SERVER=1(서버) 또는 =0(항상 클라이언트 측)으로 제어하고, 서버가 판정을 주지 않으면 Claude Code는 무검토 실행 대신 액션을 거부합니다.
- 8
분류기 모델 고정하기(2.1.302 이상)
분류기의 기본은 Claude Sonnet 5입니다. Sonnet 4.6으로 돌고 있는 세션은 4.6을 쓰고, ANTHROPIC_DEFAULT_SONNET_MODEL은 존중됩니다. 2.1.302부터는 CLAUDE_CODE_AUTO_MODE_MODEL로 특정 분류기를 강제할 수 있습니다 — 예를 들어 ~/.claude/settings.json의 "env": undefined. 알아둘 실패 모드는 둘: 쓸 수 없는 모델은 검사를 실패시켜 액션이 거부되고, 제외되거나 미지원 모델(Opus 5, Sonnet 5.5, Opus 5.5)은 조용히 기본값으로 폴백합니다. 디버깅은 claude --permission-mode auto --debug-file classifier-debug.log로, classifier_request_started를 검색합니다.
- 9
분류기가 따르는 규칙 쓰기
규칙은 분류기가 돌기 전에 답하므로 강한 경계는 여기에 둡니다. 녹화된 managed-settings.json이 그 형태를 보여줍니다: deny: ["Bash(curl *)", "Read(./.env")], ask: ["Bash(git push *)"], allow: ["Bash(python:*)"] — 영상에서는 지나치게 넓다고(overly broad) 코멘트가 붙습니다. Bash(git clean *) 같은 ask 규칙은 auto 모드에서도 프롬프트를 내고, 읽기 전용 Bash 명령은 프롬프트 대신 분류기의 리뷰를 기다릴 수 있습니다. allow 규칙을 조이세요. 분류기는 백스톱이지 Bash(*)의 변명이 아닙니다.

permissions 블록: curl과 .env 읽기는 deny, git push는 ask, python은 allow — 너무 넓은 allow에는 경고 표시.
4단계 — 관리형 설정과 가드레일
- 10
팀을 위한 autoMode.environment 설정
관리형 설정의 autoMode.environment는 무엇이 신뢰된 컨텍스트인지 분류기에게 알려줍니다: 녹화된 카드에는 "Source control: github.com/acme and all repos under it", "Trusted cloud buckets: s3://acme-builds", "CI server: ci.acme.internal"이 나열됩니다. $defaults를 함께 쓰면 항목은 내장 목록을 대체하지 않고 확장합니다. 이것은 자기 인프라에서 분류기 프롬프트가 터지는 문제에 대한 관리자 쪽 답입니다 — 팀이 실제로 쓰는 저장소, 버킷, 서비스를 이름 지으세요.

autoMode.environment 카드: github.com/acme의 신뢰된 소스 관리, s3://acme-builds 버킷, ci.acme.internal CI 서버. - 11
allow, soft_deny, hard_deny 겹치기
environment 외에 관리형 설정은 세 개의 규칙 목록을 갖습니다: "allow"([$defaults, "Deploying to staging is allowed"]), "soft_deny"([$defaults, "Running database migrations"]), "hard_deny"([$defaults, "Never touch production custo..."]). allow 패턴은 한 번에 한 액션씩 묻는 승인을 멈추고, soft deny는 반대 성향의 바이어스를 달고 분류기로 보내며, hard deny는 질문을 끝냅니다. 내장 목록 전체는 claude auto-mode defaults로 언제든 확인할 수 있고 JSON으로 출력됩니다.

겹겹이 쌓인 목록: staging 배포는 allow, 데이터베이스 마이그레이션은 soft_deny, 프로덕션 데이터는 hard_deny. - 12
서킷 브레이커 알기
auto 모드는 스스로 멈춥니다: 분류기 차단이 연속 3회 또는 누적 20회면 일반 프롬프트로 돌아오고, 어느 숫자도 설정할 수 없습니다. 말도 신호가 됩니다 — "don't push"류의 발언은 차단 신호가 되고, 액션과 그 세부를 이름 지은 승인 선언은 차단을 풀 수 있습니다. 모드 자체를 제거하려면 관리형 설정에서 permissions.disableAutoMode를 "disable"로. 실행 중인 세션은 auto 모드를 벗어나며 그렇게 알립니다. 그리고 기억하세요: deny 규칙은 auto 모드 안에서도 이깁니다.
분류기 모델, 상세
분류기는 거부가 일어나기 전까지 기본값이 보이지 않아 가장 잘못 설정되는 부분입니다. 아래 동작은 permission-modes와 auto-mode-config 페이지 및 2.1.302 체인지로그에 문서화돼 있습니다:
- 1기본 모델: Claude Sonnet 5. Sonnet 4.6으로 돌고 있는 세션은 대신 Sonnet 4.6을 쓰고, ANTHROPIC_DEFAULT_SONNET_MODEL은 존중됩니다.
- 2고정 오버라이드: CLAUDE_CODE_AUTO_MODE_MODEL(2.1.302 이상)은 완전한 모델 ID로 분류기를 돌립니다 — 쓸 수 없는 모델은 검사를 실패시켜 액션이 거부되므로, 플랜이 실제로 제공하는 모델을 설정하세요.
- 3조용한 폴백: 제외되거나 미지원인 분류기 모델(Opus 5, Sonnet 5.5, Opus 5.5)은 오류를 내지 않습니다 — 대신 기본 분류기 모델이 쓰입니다.
- 4두 실행 형태: 서버 측 리뷰는 세션의 모델 요청을 타고 갑니다(CLAUDE_CODE_AUTO_MODE_SERVER=1). 클라이언트 측 요청은 폴백(=0)으로, 서버가 판정을 주지 않거나 프록시가 리뷰 결과를 떨어뜨릴 때 쓰입니다.
- 5무검토 실행 없음: 어느 경로도 판정을 주지 않으면 Claude Code는 액션을 거부합니다 — auto 모드는 리뷰가 필요한 액션을 검토 없이 실행하지 않습니다.
- 6검증: claude --permission-mode auto --debug-file classifier-debug.log가 classifier_request_started 항목을 기록하고, /status는 Auto mode server가 활성인지 보여줍니다.
"auto mode not available for this model" 보고도 여기서 나옵니다: 가용성은 플랜, 조직, 모델, 프로바이더에 따라 달라지고, 프로바이더가 제공하지 않는 고정 분류기 모델은 모든 검사를 거부로 바꿉니다. 변수를 고치거나 제거하세요 — 세션 모델 자체를 바꿀 필요는 없습니다.
