Deepseek ArtifactsDeepseek Artifacts
권한 모드 가이드

Claude Code auto 모드: 분류기, 티어, 그리고 모든 스위치

Claude Code의 auto 권한 모드가 판단하는 방식: shift+tab 전환, Sonnet 5 기본의 클라이언트·서버 측 분류기, 2.1.302의 CLAUDE_CODE_AUTO_MODE_MODEL, 티어 순서, permissions 규칙, 관리형 autoMode.environment 목록, 3회·20회 서킷 브레이커 — 공식 워크스루 프레임으로 정리했습니다.

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. 1

    auto 모드가 대체하는 것 보기

    default 모드에서 일상 업무는 프롬프트의 연속입니다: npm run build는 Bash 승인을, 문서 가져오기는 네트워크 승인을 청합니다. auto 모드는 이런 일상 프롬프트를 백그라운드 분류기로 대체합니다 — 셸 명령과 네트워크 요청 같은 액션이 실행되기 전에 두 번째 모델이 요청에 부합하는지 확인합니다. ask 규칙과 deny 규칙은 그대로 유효하고, 사라지는 것은 일상적인 yes/no 트래픽입니다.

    Claude Code permission prompt cards for an npm run build Bash command and a fetch approval asking Do you want to proceed with Yes and No options that auto mode replaces with a classifier check
    auto 모드가 대체하는 프롬프트 카드: Yes/No 답을 기다리는 npm run build의 Bash 승인과 fetch 승인.
  2. 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에서는 절대 효과가 없습니다.

    Claude Code input footer showing plan mode on with the shift+tab to cycle hint that moves between default, acceptEdits, plan and auto permission modes
    활성 모드와 shift+tab 순환 힌트를 표시하는 입력 푸터 — auto는 사이클 끝에 있습니다.
  3. 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 항목이 표시됩니다.

    Claude Code v2.1 session running Tidy up local branches on Fable 5 with high effort under auto mode on shown in the footer with Pollinating spinner status
    auto 모드로 도는 Claude Code v2.1 세션: Fable 5 위의 Tidy up local branches 작업과 auto mode on 푸터.

2단계 — 분류기의 판단 방식

  1. 4

    판단 순서 배우기: 규칙, 티어, 분류기

    모든 액션이 같은 길을 갑니다. 먼저 당신의 규칙이 답합니다: deny는 차단, ask는 프롬프트, allow는 통과. 읽기 전용 액션과 작업 디렉터리 편집은 분류기 없이 자동 승인됩니다. 나머지는 모두 티어 분기로 떨어집니다 — 읽기 전용, 프로젝트 내 쓰기, 그 외 — 일상적인 액션은 분류기를 건너뛰고 나머지는 Approve 또는 Deny로 끝나는 분류기 다이아몬드에 닿습니다.

    Auto mode decision diagram where your deny ask allow rules route Agent actions into Tier 1 read-only, Tier 2 in-project writes and Tier 3 everything else before the Skip Classifier path or the Classifier diamond ending in Approve or Deny
    판단 다이어그램: deny/ask/allow 규칙이 Agent 액션을 Tier 1 읽기 전용, Tier 2 프로젝트 내 쓰기, Tier 3의 Skip Classifier 또는 분류기 다이아몬드로 보냅니다.
  2. 5

    분류기가 실제로 읽는 것 보기

    분류기에게 트랜스크립트는 가지 않습니다. 요청에서 도구 결과는 떼어내므로 악의적인 파일이나 페이지 내용이 분류기를 직접 조작할 수 없습니다 — 도착하는 것은 판단할 액션이 붙은 당신의 요청입니다. 녹화된 예에서는 레이트 리밋 질문이 두 행으로 요약됩니다: WebSearch("acme API rate limits")와 WebFetch(docs.acme.com). 이것이 분류기가 평가하는 전부입니다.

    Auto mode classifier visibility strip showing the full conversation with WebSearch acme API rate limits and WebFetch docs.acme.com tool calls reduced to the two actions the classifier actually evaluates
    분류기 가시 범위 스트립: 전체 대화가 분류기가 평가하는 WebSearch와 WebFetch 호출로 줄어든 모습.
  3. 6

    닮은 명령이 다른 판정을 받는 이유

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

    Auto mode classifier strip comparing a git branch -d old-login cleanup with a git push origin --delete old-login so the remote-deleting twin gets classified while the local delete stays routine
    git 쌍둥이: 로컬 브랜치 삭제는 일상으로 남고 git push origin --delete는 분류기로 올라갑니다.

3단계 — 규칙과 분류기 모델

  1. 7

    서버 측 또는 클라이언트 측 리뷰 고르기

    분류기는 두 곳 중 한 곳에서 돕니다. 서버 측: Claude Code가 세션의 모델 서버에 요청의 일부로 액션 검사를 맡깁니다 — /status에 Auto mode server 항목이 표시됩니다. 클라이언트 측: Claude Code가 자체 분류기 요청을 보냅니다. 서버가 판정을 주지 않거나 프록시가 리뷰 결과를 떨어뜨릴 때 쓰입니다. CLAUDE_CODE_AUTO_MODE_SERVER=1(서버) 또는 =0(항상 클라이언트 측)으로 제어하고, 서버가 판정을 주지 않으면 Claude Code는 무검토 실행 대신 액션을 거부합니다.

  2. 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를 검색합니다.

  3. 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(*)의 변명이 아닙니다.

    Claude Code managed-settings.json permissions block with deny Bash curl and Read .env rules, ask Bash git push rules and an overly broad allow Bash python rule commented for review
    permissions 블록: curl과 .env 읽기는 deny, git push는 ask, python은 allow — 너무 넓은 allow에는 경고 표시.

4단계 — 관리형 설정과 가드레일

  1. 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를 함께 쓰면 항목은 내장 목록을 대체하지 않고 확장합니다. 이것은 자기 인프라에서 분류기 프롬프트가 터지는 문제에 대한 관리자 쪽 답입니다 — 팀이 실제로 쓰는 저장소, 버킷, 서비스를 이름 지으세요.

    Claude Code managed-settings.json autoMode environment block trusting Source control github.com/acme repositories and the s3://acme-builds trusted cloud buckets for the classifier
    autoMode.environment 카드: github.com/acme의 신뢰된 소스 관리, s3://acme-builds 버킷, ci.acme.internal CI 서버.
  2. 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으로 출력됩니다.

    Claude Code managed-settings.json auto mode lists with allow Deploying to staging, soft_deny Running database migrations and hard_deny Never touch production custom defaults
    겹겹이 쌓인 목록: staging 배포는 allow, 데이터베이스 마이그레이션은 soft_deny, 프로덕션 데이터는 hard_deny.
  3. 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" 보고도 여기서 나옵니다: 가용성은 플랜, 조직, 모델, 프로바이더에 따라 달라지고, 프로바이더가 제공하지 않는 고정 분류기 모델은 모든 검사를 거부로 바꿉니다. 변수를 고치거나 제거하세요 — 세션 모델 자체를 바꿀 필요는 없습니다.

auto 모드 FAQ

계속 탐색하기