SpyBara
Go Premium

permission-modes.md 2026-09-18 23:58 UTC to 2026-09-19 23:57 UTC

This page contains 6 additions and 4 deletions.

2026
Sat 12 03:02 Fri 18 23:58 Sat 19 23:57 Tue 22 23:59 Fri 25 23:58

권한 모드 선택

Claude가 작업하기 전에 묻는지 여부를 제어합니다. CLI에서 Shift+Tab, VS Code의 모드 표시기 또는 Desktop의 모드 선택기로 권한 모드를 전환합니다.

권한 모드는 Claude가 먼저 묻지 않고 세션에서 수행할 수 있는 작업을 설정합니다. Manual 모드에서는 Claude Code가 파일을 편집하거나 셸 명령을 실행하거나 네트워크에 접근하는 대부분의 작업 전에 멈추고 사용자에게 묻습니다. auto 모드에서는 두 번째 모델인 분류기가 사용자 대신 작업을 검토합니다. 분류기가 작업을 평가하는 방식에서는 분류기가 검토하는 작업과 건너뛰는 작업을 나열합니다.

Pro, Max, Team 플랜에서는 기본 제공되는 시작 권한 모드가 auto 모드입니다. 세션이 시작되는 모드에서는 시작 권한 모드를 변경하는 표면과 설정을 다룹니다. 실행 중인 세션의 권한 모드는 언제든지 변경할 수 있습니다.

사용 가능한 모드

각 모드는 편의성과 감시 사이에서 서로 다른 트레이드오프를 만듭니다. 아래 표는 각 모드에서 Claude가 권한 프롬프트 없이 수행할 수 있는 작업을 보여줍니다. 수동 모드는 구성 값인 default 아래에 나타납니다.

모드 요청 없이 실행되는 작업 최적 사용 사례
default 읽기만 모든 작업을 직접 검토, 민감한 작업
acceptEdits 읽기, 파일 편집, 일반적인 파일시스템 명령어 (mkdir, touch, mv, cp 등) 검토 중인 코드 반복 작업
plan 읽기, 그리고 자동 모드를 사용할 수 있을 때 분류기 승인 명령어 변경 전 코드베이스 탐색
auto 백그라운드 안전 검사를 포함한 모든 작업 장시간 작업, 프롬프트 피로 감소
dontAsk 읽기 및 사전 승인된 도구; 프롬프트를 표시할 모든 작업은 거부됨 잠금된 CI 및 스크립트
bypassPermissions 모든 작업 격리된 컨테이너 및 VM만 해당

모든 작업을 검토하는 모드는 CLI에서 Manual이라고 명명되며, claude --help에서, VS Code 및 JetBrains 확장 프로그램에서, 그리고 데스크톱 앱에서도 Manual이라고 명명됩니다. 구성 값은 default이며, 이는 hooks 및 SDK 통합이 사용하는 값입니다. CLI는 값을 입력하는 모든 곳에서 manual을 별칭으로 허용합니다. 예를 들어 claude --permission-mode manual 또는 "defaultMode": "manual"입니다. Manual 레이블과 manual 별칭은 Claude Code v2.1.200 이상이 필요합니다. 데스크톱 앱의 레이블은 CLI 버전에 따라 달라지지 않습니다.

보호된 경로에 대한 쓰기는 bypassPermissions 모드에서와 bypass 권한을 사용할 수 있는 plan-mode 세션에서를 제외하고는 자동 승인되지 않습니다. 이는 모드 사이클에 bypassPermissions를 배치하는 방식으로 시작된 대화형 터미널 세션을 의미합니다.

모드는 기준선을 설정합니다. 특정 도구를 사전 승인하거나 차단하기 위해 권한 규칙을 위에 계층화합니다. 거부 규칙은 bypassPermissions를 포함한 모든 모드에서 차단합니다. 거부 및 요청 규칙은 Claude가 호출할 수 있는 다른 도구가 최소 하나 이상 있는 한 EndConversation에 적용되지 않습니다. 허용 규칙은 bypassPermissions에서 효과가 없습니다.

어떤 모드도 자동 승인하지 않는 작업

Claude Code는 bypassPermissions를 포함한 어떤 모드에서도 다음을 자동 승인하지 않습니다. 각 항목은 각 모드에서 대신 어떤 일이 발생하는지를 설명하는 섹션으로 연결됩니다:

  • 명시적 요청 규칙과 일치하는 도구

  • 조직이 요청으로 설정한 커넥터 도구, 해당 설정이 Claude Code에 도달하는 세션에서

  • 사용자 상호작용이 필요한 도구: 기본 제공 AskUserQuestion 도구 및 requiresUserInteraction으로 표시된 MCP 도구

  • 중요 경로를 대상으로 하는 rm 및 rmdir 제거, 어떤 허용 규칙이나 PreToolUse hook "allow"도 승인하지 않음

  • 세션 간 메시징 보안 조치

  • permissions.blockReadsOutsideWorkingDirectories가 켜져 있는 동안 작업 디렉토리 외부의 읽기: 인식된 파일 읽기 Bash 명령어는 자동 모드 및 bypassPermissions 모드에서도 프롬프트하며, 샌드박스 외부에서 실행하기 위해 승인이 필요한 모든 샌드박스 해제 재시도도 마찬가지입니다. Claude Code v2.1.257 이상이 필요합니다.

    셸 파서가 추적할 수 없는 명령어(예: 두 번 이상 디렉토리를 변경하거나 서브셸을 실행하는 명령어)는 외부 경로를 명명하지 않더라도 동일한 방식으로 프롬프트합니다. 이 프롬프트는 명령어가 샌드박스에서 실행되고 샌드박스가 블록을 적용할 때는 적용되지 않습니다.

일반적인 설정

권한 모드는 Claude가 작업 전에 물어보는지 여부를 결정하고, Bash sandbox 및 외부 isolation boundaries는 작업이 실행되면 도달할 수 있는 것을 결정합니다. 아래의 각 행은 목표를 시작점으로 그곳에 도달하는 플래그 또는 설정 및 필요한 격리와 쌍을 이룹니다. 사용 가능한 모드는 각 모드에서 프롬프트 없이 실행되는 것을 나열합니다.

원하는 것 시작 필요한 격리 참고
모든 작업을 직접 검토 Manual 모드: claude --permission-mode default 없음 민감한 작업, 낯선 코드
분류기 없이 더 적은 프롬프트로 로컬에서 반복 Manual 모드 + auto-allow mode의 Bash sandbox: claude --permission-mode default, 그 다음 /sandbox 실행 및 auto-allow 선택 기본 제공 Bash sandbox, macOS, Linux, WSL2 Deny 규칙은 여전히 적용되고, Bash(git push *)와 같이 명령을 지정하는 ask 규칙은 여전히 프롬프트합니다. 설정 파일에서 대신 sandbox를 켜려면 sandbox.enabled를 true로 설정합니다.
변경 전에 탐색 claude --permission-mode plan 없음 Claude Code는 계획을 승인할 때까지 편집을 차단합니다.
auto mode에서 자동 실행 claude --permission-mode auto, Pro, Max, Team의 기본 제공 시작 권한 모드 없음; sandbox 또는 컨테이너는 심층 방어를 추가합니다. 지원되는 모델이 필요하고, 조직이 auto mode를 끌 수 있습니다.
정확한 allowlist로 CI에서 실행 claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read" CI 러너가 제공하는 것 이상 없음 웹의 Claude Code는 설정 파일의 dontAsk를 무시합니다.
컨테이너 내에서 완전히 자동 실행 claude -p "<prompt>" --dangerously-skip-permissions 필수: 컨테이너, VM, 또는 sandbox runtime; Linux 및 macOS에서 non-root user로 실행 웹의 Claude Code는 설정 파일의 이 모드를 무시합니다. 이 -p 실행에서 여전히 프롬프트할 몇 가지 호출은 대신 거부됩니다.

Bash sandbox와 auto mode는 독립적으로 작동하고 결합합니다. Sandbox modes에 나열된 예외가 있습니다. 전체 상호작용은 How sandboxing relates to permissions and permission modes 및 How isolation relates to permission modes를 참조하세요.

세션이 시작되는 모드

터미널에서 새 세션을 시작할 때 Claude Code는 다음 중 첫 번째로 적용되는 것에서 권한 모드를 가져옵니다:

  1. --permission-mode 플래그 또는 --dangerously-skip-permissions

  2. 설정 파일의 permissions.defaultMode

    .claude/settings.json 또는 .claude/settings.local.json에서 "auto"를 설정하면 값이 적용되지 않고 Claude Code는 ~/.claude/settings.json의 defaultMode 대신 기본 제공 기본값을 사용합니다. 이 두 파일에서 "bypassPermissions"를 설정하면 적용되지 않으며 세션은 Manual 모드에서 시작됩니다. 다른 값은 모든 설정 파일에서 적용됩니다.

  3. 기본 제공 기본값

VS Code 확장이 시작하는 대화는 권한 모드 전환의 확장 자체 목록을 따릅니다. Claude Code가 재개된 세션을 시작하는 권한 모드는 resume 시 권한 모드를 참조하세요.

기본 제공 auto 기본값은 macOS, Linux, WSL에서 Claude Code v2.1.228 이상이 필요하고, 네이티브 Windows에서는 v2.1.233 이상이 필요합니다. 이전 버전에서는 기본 제공 기본값은 Manual입니다.

기본 제공 기본값은 Claude Code를 실행하는 방법, 플랜, Claude Code가 기능 플래그를 가져올 수 있는지 여부에 따라 달라집니다. 세션과 일치하는 첫 번째 행이 적용됩니다. 표는 터미널 또는 VS Code 확장을 통해 시작하는 세션을 다룹니다. 데스크톱 앱 및 claude.ai는 권한 모드 전환의 Desktop 및 Web 탭을 참조하세요.

Claude Code를 실행하는 방법 기본 제공 시작 권한 모드
모든 설정 파일이 disableAutoMode를 "disable"로 설정 default
기능 플래그 가져오기가 꺼짐 default
이 기본값을 추가하는 버전으로 설치 또는 업그레이드 후 첫 번째 세션, 신선한 설치 후 Claude Code가 시간 내에 플래그를 가져오지 않은 경우 제외 default
claude -p 또는 Agent SDK default
Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, Claude Platform on AWS, 또는 로그인한 Claude apps gateway 세션 default
터미널 또는 VS Code 확장의 Pro, Max, Team 플랜 auto
Enterprise 플랜 또는 Claude Console API 키 default

기능 플래그 가져오기가 꺼져 있거나 플래그가 아직 도착하지 않은 설치 또는 업그레이드 후 첫 번째 세션에서 VS Code 확장은 시작 권한 모드를 선택할 때 모든 설정 파일을 무시합니다.

플래그, 설정 파일, 또는 기본 제공 기본값이 auto를 선택하지만 auto mode를 세션에서 사용할 수 없으면 Claude Code는 대신 Manual에서 세션을 시작합니다. Auto mode는 세션이 가용성 요구사항을 충족하지 않을 때 사용할 수 없습니다. 예를 들어 설정 파일이 이를 끄거나 지원하지 않는 모델이거나, Anthropic이 서버 측에서 임시로 이를 끈 경우입니다.

기본 제공 기본값이 처음으로 세션 중 하나를 auto mode에서 시작할 때 Claude Code는 이 페이지로 연결되는 알림을 표시합니다:

  • 터미널에서 세션 상단에 한 번
  • VS Code 확장에서 새 대화 화면의 카드로 해제할 때까지 유지됨

Pro, Max, Team 플랜에서 ~/.claude/settings.json이 auto 이외의 defaultMode를 설정하고 다른 설정 파일이 설정하지 않으면 세션은 해당 모드에서 계속 시작됩니다. Claude Code는 터미널 또는 VS Code 확장에서 한 번 설정을 auto mode로 변경할지 묻습니다. 거부하면 설정은 그대로 유지됩니다.

다른 권한 모드에서 시작

한 세션, 또는 머신, 프로젝트, 또는 조직의 모든 세션에 대한 기본값으로 시작 권한 모드를 설정할 수 있습니다. 둘 이상의 설정 파일이 permissions.defaultMode를 설정하면 설정 우선순위가 결정하므로 프로젝트 또는 관리형 값이 ~/.claude/settings.json을 능가합니다. 이미 실행 중인 세션의 권한 모드를 변경하려면 권한 모드 전환을 참조하세요.

시작 권한 모드를 설정하려면 이렇게 하세요
시작하려는 한 세션 권한 모드를 플래그로 전달합니다. 예: claude --permission-mode default
이 머신에서 시작하는 모든 터미널 세션 ~/.claude/settings.json에서 permissions.defaultMode를 설정합니다. VS Code 확장이 읽는 것은 권한 모드 전환을 참조하세요.
한 프로젝트에서 시작하는 모든 터미널 세션 프로젝트의 .claude/settings.json에서 permissions.defaultMode를 설정합니다. 터미널에서 시작하는 세션은 auto 및 bypassPermissions를 제외한 모든 값을 준수합니다. VS Code 확장이 시작하는 세션은 시작 권한 모드에 대해 프로젝트 설정을 읽지 않습니다.
조직의 모든 터미널 세션 관리형 설정에서 permissions.defaultMode를 설정합니다. 터미널 세션은 해당 모드에서 시작하고 사람들은 여전히 auto mode로 전환할 수 있습니다. VS Code 확장이 읽는 것은 권한 모드 전환을 참조하세요. auto mode를 제거하여 아무도 선택할 수 없도록 하려면 permissions.disableAutoMode를 "disable"로 설정합니다.

이 예제는 머신의 모든 터미널 세션을 Manual 모드(설정 값 default)에서 시작하도록 합니다. ~/.claude/settings.json에 저장합니다:

{
  "permissions": {
    "defaultMode": "default"
  }
}

다음 세션은 상태 표시줄에 ⏸ manual mode on을 표시합니다.

권한 모드 전환

각 인터페이스는 세션 중에 권한 모드를 전환하기 위한 자체 컨트롤과 새 세션이 시작되는 권한 모드를 선택하는 자체 방법을 가집니다. 인터페이스를 선택하여 컨트롤을 확인하세요.

세션 중: Shift+Tab을 눌러 권한 모드를 순환합니다. auto에서 첫 번째 누름은 default로 전환하고 순환은 default → acceptEdits → plan → default로 돌아갑니다. 아래에 설명된 선택적 모드는 plan 후에 슬롯됩니다. 상태 표시줄은 활성 모드를 default의 경우 회색 ⏸ manual mode on으로, 또는 ⏵⏵ accept edits on, ⏸ plan mode on, ⏵⏵ auto mode on, ⏵⏵ don't ask on, 또는 ⏵⏵ bypass permissions on으로 표시합니다.

모든 모드가 기본 순환에 포함되는 것은 아닙니다:

  • auto: auto mode를 사용할 수 있을 때 나타나며, 이로 순환하면 확인 프롬프트 없이 권한 모드가 전환됩니다.
  • bypassPermissions: --permission-mode bypassPermissions, --dangerously-skip-permissions, --allow-dangerously-skip-permissions, 또는 user, --settings, 또는 managed settings의 permissions.defaultMode: "bypassPermissions" 후에 나타납니다. --allow- 변형은 활성화하지 않고 순환에 권한 모드를 추가합니다.
  • dontAsk: 순환에 나타나지 않으며, --permission-mode dontAsk로 설정합니다.

활성화된 선택적 모드는 plan 후에 슬롯되며, bypassPermissions가 먼저이고 auto가 마지막입니다. 둘 다 활성화된 경우 auto로 가는 길에 bypassPermissions를 순환합니다.

Bash 권한 프롬프트에서: Manual 및 acceptEdits 권한 모드에서 auto mode를 사용할 수 있을 때 Claude Code는 Bash 명령의 권한 프롬프트에 Yes, and switch to auto mode를 추가합니다. 이를 선택하여 명령을 승인하고 세션을 auto mode로 전환합니다. PowerShell tool 프롬프트는 옵션을 제공하지 않습니다. Claude Code v2.1.247 이상이 필요합니다.

Claude Code는 ask 규칙 중 하나 또는 hook에 의해 강제된 프롬프트에 옵션을 추가하지 않습니다. auto mode는 여전히 이러한 프롬프트를 표시하므로 전환해도 제거되지 않습니다.

시작 시: 권한 모드를 플래그로 전달합니다.

claude --permission-mode plan

기본값으로: 다른 권한 모드에서 시작에 설명된 대로 원하는 범위에서 permissions.defaultMode를 설정합니다.

동일한 --permission-mode 플래그는 비대화형 실행을 위해 -p와 함께 작동합니다.

acceptEdits 모드로 파일 편집 자동 승인

acceptEdits 모드를 사용하면 Claude가 프롬프트 없이 작업 디렉토리에서 파일을 생성하고 편집할 수 있습니다. 이 모드가 활성화되어 있는 동안 상태 표시줄에 ⏵⏵ accept edits on이 표시됩니다.

파일 편집 외에도 acceptEdits 모드는 일반적인 파일시스템 Bash 명령어를 자동으로 승인합니다: mkdir, touch, rm, rmdir, mv, cp, sed. 이러한 명령어는 LANG=C 또는 NO_COLOR=1과 같은 안전한 환경 변수가 접두사로 붙거나 timeout, nice, nohup과 같은 프로세스 래퍼가 붙을 때도 자동으로 승인됩니다. 파일 편집과 마찬가지로 자동 승인은 작업 디렉토리 또는 additionalDirectories 내의 경로에만 적용됩니다. 해당 범위 외의 경로, 보호된 경로에 대한 쓰기, critical path를 대상으로 하는 rm 및 rmdir 제거, 그리고 읽기 전용 집합을 제외한 다른 모든 Bash 명령어는 여전히 프롬프트를 표시합니다.

PowerShell tool이 활성화되어 있으면 acceptEdits 모드는 범위 내 경로에서 Set-Content, Add-Content, Clear-Content, Remove-Item과 이들의 일반적인 별칭도 자동으로 승인합니다. 동일한 범위 및 보호된 경로 규칙이 적용되고, Remove-Item은 자체 확인을 받습니다. Set-Content .\notes.txt "It's done"의 아포스트로피와 같이 따옴표 문자를 포함하는 위치 인수는 Claude Code가 따옴표 및 따옴표 없는 읽기가 다른 인수를 정적으로 검증할 수 없기 때문에 범위 내 경로에서도 여전히 프롬프트를 표시합니다. 프롬프트를 피하려면 -Value와 같은 명명된 매개변수를 통해 콘텐츠를 전달합니다.

편집을 인라인으로 승인하는 대신 편집기에서 또는 git diff를 통해 변경 사항을 검토하려는 경우 acceptEdits를 사용하세요.

Manual 모드에서 Shift+Tab을 한 번 누르면 이 모드로 진입하거나 직접 시작할 수 있습니다:

claude --permission-mode acceptEdits

편집하기 전에 계획 모드로 분석

Plan mode는 Claude에게 변경 사항을 연구하고 제안하되 적용하지 않도록 지시합니다. Claude는 파일을 읽고 셸 명령을 실행하여 탐색한 후 계획을 작성하지만 소스를 편집하지 않습니다. bypass permissions를 사용할 수 있는 대화형 터미널 세션을 제외하고 편집은 계획을 승인할 때까지 차단된 상태로 유지됩니다.

auto mode를 사용할 수 있고 useAutoModeDuringPlan 설정이 켜져 있을 때(기본값), 분류기는 계획 중에 셸 명령을 검토합니다. 승인된 명령은 실행되고 거부된 명령은 차단됩니다. 그렇지 않으면 읽기 전용 집합 외의 명령은 프롬프트를 표시합니다. sandbox의 auto-allow mode가 활성화된 경우도 포함합니다. bypass permissions를 사용할 수 있는 대화형 터미널 세션에서는 분류기나 프롬프트도 계획 명령에 적용되지 않습니다. bypassPermissions 모드로 모든 확인 건너뛰기는 여전히 프롬프트할 몇 가지를 다룹니다. v2.1.212부터 v2.1.217에서는 bypass permissions가 없는 세션이 auto mode를 사용할 수 있는지 여부에 관계없이 읽기 전용 집합 외의 모든 명령에 대해 프롬프트를 표시했습니다.

Shift+Tab을 누르거나 단일 프롬프트 앞에 /plan을 붙여서 plan mode에 진입합니다. CLI에서 plan mode로 시작할 수도 있습니다:

claude --permission-mode plan

Shift+Tab을 다시 눌러 계획을 승인하지 않고 plan mode를 종료합니다.

계획 검토 및 승인

계획이 준비되면 Claude가 이를 제시하고 진행 방법을 묻습니다. 해당 프롬프트에서 다음을 선택할 수 있습니다:

  • Yes, and use auto mode: 승인하고 auto mode에서 시작합니다. auto mode를 사용할 수 없으면 이 옵션은 Yes, auto-accept edits로 읽습니다. bypass permissions가 활성화된 상태로 세션을 시작한 경우 옵션은 Yes, and switch to BYPASS PERMISSIONS (no further prompts) for this session으로 읽습니다.
  • Yes, manually approve edits: 승인하고 각 편집을 개별적으로 검토합니다.
  • No, keep planning: plan mode에 머물고 Claude에게 변경할 사항을 알립니다.

계획을 승인하면 plan mode가 종료되고 세션이 각 승인 옵션이 설명하는 권한 모드로 전환되므로 Claude가 편집을 시작합니다. 다시 계획하려면 Shift+Tab으로 plan mode로 돌아가거나 다음 프롬프트 앞에 /plan을 붙입니다.

Ctrl+G를 눌러 제안된 계획을 기본 텍스트 편집기에서 열고 Claude가 진행하기 전에 직접 편집합니다. showClearContextOnPlanAccept가 활성화되면 목록은 계획을 승인하고 계획 컨텍스트를 지우는 첫 번째 옵션을 얻습니다.

계획을 수락하면 계획을 기반으로 세션에 생성된 제목도 제공됩니다. 단, 이미 세션의 이름을 지정한 경우는 제외됩니다.

Plan mode를 기본값으로 설정

프로젝트의 터미널 세션에 대해 plan mode를 기본값으로 설정하려면 .claude/settings.json에서 defaultMode를 plan으로 설정합니다. 다른 권한 모드에서 시작 아래의 예제에서 보여주는 대로 배치합니다. VS Code extension이 시작하는 대화는 시작 권한 모드에 대해 프로젝트 설정을 읽지 않습니다. 대신 VS Code 사용자 설정에서 claudeCode.initialPermissionMode를 plan으로 설정합니다.

자동 모드로 권한 프롬프트 제거

자동 모드를 사용하면 Claude가 일상적인 권한 프롬프트 없이 실행될 수 있습니다. 별도의 분류기 모델이 실행 전에 작업을 검토하여 요청을 초과하는 모든 것, 인식되지 않은 인프라를 대상으로 하는 것, 또는 Claude가 읽은 악의적인 콘텐츠로 인해 발생한 것으로 보이는 것을 차단합니다. 명시적 요청 규칙은 여전히 프롬프트를 강제합니다.

Pro, Max, Team 플랜에서 자동 모드는 기본 제공 시작 권한 모드입니다.

분류기는 또한 Claude가 SendMessage를 사용하여 다른 에이전트에 보내는 각 메시지를 검토합니다. 일반 텍스트이든 구조화된 에이전트 팀 메시지이든, Claude Code가 전달하기 전에 검토합니다. 자동 모드와 분류기가 명령을 검토하는 계획 모드 모두에서 검토합니다. 전송 검토에는 Claude Code v2.1.222 이상이 필요합니다.

분류기는 또한 rm 및 rmdir 제거를 검토하고 승인하거나 차단합니다. 이는 rm -rf / 및 rm -rf ~와 같은 중요 경로를 대상으로 합니다. 제거가 명령 또는 프로세스 치환 내부에 있을 때도 포함됩니다.

자동 모드는 또한 Claude가 명확한 질문을 위해 멈추지 않고 계속 작업하도록 권장합니다. 다만 Claude는 프롬프트나 스킬이 명시적으로 이를 요구할 때는 여전히 질문합니다. 더 강한 자율 동작을 원하면서도 여전히 프롬프트를 받으려면 사전 예방적 출력 스타일을 설정하세요.

자동 모드는 계정이 다음 요구 사항을 모두 충족할 때만 사용 가능합니다:

  • 플랜: 모든 플랜.
  • 조직: Team 및 Enterprise에서 자동 모드는 기본적으로 사용 가능합니다. 관리자는 관리 설정에서 permissions.disableAutoMode를 "disable"로 설정하여 조직에 대해 자동 모드를 끌 수 있습니다.
  • 모델: Anthropic API 및 AWS의 Claude Platform에서 Claude Opus 4.6 이상, Sonnet 4.6 이상, 또는 Fable 모델. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, 그리고 로그인한 Claude 앱 게이트웨이 세션에서는 Claude Sonnet 5, Opus 4.7 이상, 그리고 Fable 모델만 해당합니다. Sonnet 4.5, Opus 4.5, Haiku, claude-3 모델을 포함한 이전 모델은 어떤 제공자에서도 지원되지 않습니다.
  • 제공자: Anthropic API, AWS의 Claude Platform, Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, 그리고 로그인한 Claude 앱 게이트웨이 세션에서 기본적으로 사용 가능합니다.

Claude Code가 자동 모드를 사용할 수 없다고 보고하면 먼저 이러한 요구 사항을 확인하고 설정 파일이 disableAutoMode를 설정하는지 확인하세요. Anthropic이 서버 측에서 자동 모드를 끄거나 서버가 계정에 대해 자동 모드를 거부했을 수 있습니다. 두 답변 중 하나를 받은 세션은 세션이 끝날 때까지 자동 모드를 끈 상태로 유지하므로 나중에 새 세션을 시작하세요.

모델 이름을 지정하고 자동 모드가 작업의 안전성을 "결정할 수 없다"고 말하는 별도의 메시지는 분류기 요청이 실패했음을 의미합니다. 이 실패는 일반적으로 일시적이지만 Amazon Bedrock에서는 계정이 명명된 모델을 호출할 수 있을 때까지 반복될 수 있습니다. 원인 및 해결 방법은 오류 참조를 참조하세요.

설정에서 defaultMode: "auto"를 설정했는데 터미널 세션이 오류 없이 수동 모드로 시작되면 설정이 .claude/settings.json 또는 .claude/settings.local.json에 있을 가능성이 높습니다. auto는 이 파일에서 적용되지 않습니다. ~/.claude/settings.json으로 이동하세요. VS Code 확장이 시작한 대화의 경우 권한 모드 전환 대신 확장의 자체 목록을 확인하세요.

Bedrock, Agent Platform 또는 Foundry의 자동 모드

Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, 그리고 로그인한 Claude 앱 게이트웨이 세션에서 자동 모드는 기본적으로 Shift+Tab 사이클에 나타납니다. 사이클에 나타나는 것이 세션이 시작되는 권한 모드를 변경하지는 않습니다. 이 제공자들에서 터미널 세션은 defaultMode에서 시작합니다. 이는 변경하지 않으면 수동이고, VS Code 확장의 대화는 claudeCode.initialPermissionMode 또는 확장에서 선택한 모드가 설정하지 않으면 수동으로 시작합니다. 이 제공자들에서는 Claude Sonnet 5, Opus 4.7 이상, 그리고 Fable 모델만 지원됩니다.

자동 모드를 기본 시작 권한 모드로 만들려면 사용자 또는 관리 설정에서 "permissions": {"defaultMode": "auto"}를 설정하세요. VS Code 확장이 시작한 세션에서는 모드 표시기에서 자동을 선택하세요. 권한 모드 전환은 해당 선택을 무엇이 능가하는지 다룹니다.

/doctor 점검은 Anthropic API에서와 동일한 방식으로 이 제공자들에서 사용자 설정 기본값을 제안합니다.

개발자가 자동 모드를 사용하지 못하도록 하려면 관리 설정에서 disableAutoMode를 "disable"로 설정하세요. 이는 Shift+Tab 사이클에서 auto를 제거하고, --permission-mode auto로 시작한 세션은 수동으로 시작합니다. 이미 자동 모드로 실행 중인 세션은 설정이 관리자 배포 소스에서 해당 세션에 도달할 때 자동 모드를 떠나고 auto mode disabled by settings를 표시합니다. v2.1.251 이전에는 실행 중인 세션이 끝날 때까지 자동 모드를 유지했습니다.

v2.1.158부터 v2.1.206까지 자동 모드는 CLAUDE_CODE_ENABLE_AUTO_MODE=1을 설정할 때까지 이 제공자들에서 꺼져 있었고, Claude Code는 변수도 설정되지 않으면 이 제공자들에서 defaultMode: "auto"를 무시했습니다. 변수는 호환성을 위해 여전히 허용되며 v2.1.207 이후로는 효과가 없습니다.

서버 측 분류기 검토

Enterprise 플랜 및 Claude API를 사용하는 계정, AWS의 Claude Platform, Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry에서, 그리고 ANTHROPIC_BASE_URL을 LLM 게이트웨이 또는 프록시로 지정할 때마다 자동 모드의 Claude Code는 서버에 분류기로 이동하는 작업을 세션의 모델 요청의 일부로 검토하도록 요청합니다. 서버가 이를 검토하는 경우 해당 판정이 이러한 작업을 결정합니다. 서버가 검토하지 않는 경우 (일반적으로 LLM 게이트웨이 또는 프록시가 트래픽을 방해하기 때문이거나 플랫폼, 지역 또는 자격 증명이 아직 서버 측 검사를 갖지 않았기 때문) Claude Code는 자체 분류기 요청으로 폴백하고, 해당 폴백이 세션의 나머지 동안 유지되면 이를 요청이 청구되는 계정에서 분류기 요청 요금에 대한 공지를 표시합니다. 서버에 요청하는 것을 건너뛰고 항상 Claude Code의 자체 분류기 요청을 사용하려면 CLAUDE_CODE_AUTO_MODE_SERVER=0을 설정하세요. 변수는 Anthropic API에 대한 직접 연결에서 읽혀지지 않습니다. CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1을 설정하고 CLAUDE_CODE_AUTO_MODE_SERVER를 설정하지 않으면 Claude Code도 서버에 요청하는 것을 중지합니다.

기본적으로 서버에 요청하려면 Claude Code v2.1.278 이상이 필요합니다.

분류기가 기본적으로 차단하는 것

분류기는 작업 디렉토리와 세션이 시작될 때 구성된 원격을 신뢰합니다. 세션 중에 git remote add 또는 git remote set-url로 추가되거나 재지정된 원격은 신뢰되지 않으며, 신뢰할 수 있는 인프라를 구성할 때까지 다른 모든 것은 외부로 취급됩니다. v2.1.200 이전에는 세션 중에 추가된 원격도 신뢰되었습니다.

기본적으로 차단됨:

  • curl | bash와 같은 코드 다운로드 및 실행
  • 외부 엔드포인트로 민감한 데이터 전송
  • 프로덕션 배포 및 마이그레이션
  • 클라우드 스토리지의 대량 삭제
  • IAM 또는 리포지토리 권한 부여
  • 공유 인프라 수정
  • 세션 전에 존재했던 파일을 돌이킬 수 없게 파괴
  • 강제 푸시
  • 실행될 때 리포지토리 외부로 비밀 또는 민감한 데이터를 보내거나 배포가 노출하는 것을 확대할 변경 사항을 커밋하거나 푸시합니다. 이는 비밀을 아직 받지 않는 대상에 전달하는 CI 워크플로우 또는 배포 구성, 비밀 저장소를 읽고 데이터를 보내는 스크립트 또는 설정 단계, 그리고 배포가 게시하는 것을 확대하는 구성 변경(예: 레지스트리, 가시성, 아티팩트 또는 소스맵 설정)을 포함합니다. 검사는 모든 분기에 적용되고, 리포지토리가 공개인 경우에도 적용되며, 변경이 착지할 때 발생합니다. 파이프라인을 트리거하는지 여부와 관계없이 실행 효과를 명명하면 지워집니다. 커밋 또는 푸시만 명명하는 것이 아닙니다. v2.1.211 이전에는 이 검사가 기본 분기로 범위가 지정되었습니다. 거기로의 푸시는 민감한 콘텐츠, 요청한 것과 비교하여 숨겨지거나 잘못 설명된 변경 사항, 리포지토리 외부에서 이식된 콘텐츠, 또는 요청한 검토를 우회하는 콘텐츠를 전달할 때 차단되었습니다.
  • git reset --hard, git checkout -- ., git restore ., git clean -fd, git stash drop, 또는 git stash clear. 분류기는 이것이 커밋되지 않은 변경 사항을 버릴 것으로 가정합니다.
  • git commit --amend (HEAD의 커밋이 이 세션에서 생성되지 않은 경우)
  • v2.1.198부터 git commit --amend (HEAD의 커밋이 이미 푸시된 경우). 메시지 전용 리워드는 차단되지 않습니다. --amend -m (새로 스테이징된 것이 없음), Claude가 이 세션 중에 생성한 커밋에서
  • terraform destroy, pulumi destroy, cdk destroy, 또는 terragrunt destroy, 그리고 리소스를 파괴하는 계획 적용

Claude Code v2.1.195 이상은 기본적으로 더 많은 범주를 차단합니다. 여러 개는 환경 항목에 따라 다릅니다. 예를 들어 민감한 원격 대상 및 보호된 IaC 범위. 이를 구체적인 이름으로 좁힐 수 있습니다.

  • 비밀 관리자에 쓰기, 또는 DNS 레코드 또는 TLS 인증서 변경
  • 인간이 승인하지 않은 풀 요청 병합, Claude의 자체 풀 요청 승인, 또는 CI 검사 비활성화
  • atlantis apply 또는 봇의 /deploy 또는 /merge와 같은 자동화에 대한 명령 자체인 댓글 게시
  • 프로덕션 기능 플래그 토글, 램핑 또는 삭제
  • 보호된 IaC 범위에 인프라 변경 사항 적용, 또는 클러스터 노드 드레이닝 및 제거
  • 레이블 선택기 또는 --all과 같이 다른 사용자의 작업을 포착하는 공유 컴퓨팅 클러스터에 대한 쓰기
  • 모든 노드에서 실행되거나 클러스터 트래픽을 가로채는 Kubernetes 리소스 생성 (예: DaemonSets 및 admission webhooks)
  • 민감한 원격 대상으로의 대화형 셸 또는 포트 포워드
  • 로컬 서비스를 공개 인터넷에서 도달 가능하게 하는 터널 또는 역셸 열기
  • 라이브 자격 증명 또는 토큰을 트랜스크립트 또는 파일에 인쇄
  • 환경에서 민감한 데이터 위치로 나열된 위치에 액세스하거나 그곳에서 데이터 복사. v2.1.198부터 이는 또한 한 위치에서 항목이 제외하는 대상으로 데이터를 보내는 것을 차단합니다.
  • 내부 패키지 레지스트리를 공개 레지스트리로 우회하는 패키지 설치 라우팅. v2.1.198부터 이는 또한 대화에서 Claude에게 내부 레지스트리 또는 미러가 존재한다고 말했을 때 적용됩니다. 환경에만 나열된 경우가 아닙니다.
  • --insecure와 같은 안전 가드를 해제하는 플래그로 명령 실행
  • --dangerously-skip-permissions 또는 --no-sandbox로 시작된 것과 같이 인간 승인 또는 샌드박스 없이 실행되는 자율 에이전트 루프 시작. v2.1.198부터 이는 또한 --yes-always로 시작된 러너와 같이 격리 및 작업별 승인이 비활성화된 상태로 제3자 에이전트 또는 평가 하네스를 실행하는 것을 포함합니다.
  • Chrome의 Claude 브라우저 작업 (페이지 콘텐츠, 쿠키 또는 자격 증명을 출처 외부로 보낼 수 있음)

Claude Code v2.1.198 이상은 또한 기본적으로 다음을 차단합니다:

  • 특정 명명된 경로가 아닌 와일드카드, glob 또는 나이 필터로 /tmp, $TMPDIR 또는 다른 공유 스크래치 또는 캐시 디렉토리의 파일 삭제
  • 자신의 메시지가 해당 수신자에게 이러한 세부 정보를 승인하지 않았을 때 다른 사람 또는 공유 시스템으로 전송, 업로드, 게시 또는 작성된 콘텐츠에 민감한 세부 정보 포함. PR 및 이슈 본문, 커밋 메시지, 그리고 댓글은 리포지토리가 신뢰 경계 외부이거나 공개일 때 이러한 종류의 아웃바운드 콘텐츠로 계산됩니다. 조직의 자체 공개 리포지토리 포함. 내부 파일 경로, 코드명, API 응답 데이터 (예: 이메일 또는 계정 식별자), 그리고 인프라 식별자는 민감한 세부 정보로 계산됩니다. PR, 이슈, 그리고 커밋 메시지 범위 지정은 Claude Code v2.1.200 이상이 필요합니다. PR 또는 이슈 본문의 API 응답의 라이브 개인 데이터 (예: 이메일 주소, 계정 또는 조직 식별자, 또는 사용 메트릭)는 리포지토리의 가시성 또는 신뢰 경계와 관계없이 해당 세부 정보와 수신자를 명명해야 합니다. 이 검사는 Claude Code v2.1.203 이상이 필요합니다.
  • Claude Code의 자체 tmux 창으로 키스트로크를 보내 자체 인터페이스를 구동합니다. 분류기는 이를 Claude가 자체 권한 또는 감시를 변경하는 것으로 취급합니다.

Claude Code v2.1.200 이상은 또한 기본적으로 다음을 차단합니다:

  • 인증, 액세스 제어, 입력 검증 또는 샌드박싱과 같은 보안 동작을 보호하는 테스트 또는 어설션 주석 처리, 삭제 또는 강제 통과
  • Claude가 세션에서 생성하지 않은 상태 저장 리소스 삭제 또는 해체 (더 구체적인 삭제 규칙이 적용되지 않고 해당 리소스를 명명하지 않은 경우)
  • API 기본 URL, 프록시 엔드포인트, 웹훅 수신자 또는 레지스트리 미러를 작업에 맞지 않는 제3자 호스트로 재지정 (.env.example과 같은 예제 파일 포함)
  • git remote set-url 또는 git remote add로 푸시가 가는 위치 변경 (새 원격을 명명하지 않은 경우)
  • 공개로 알려진 리포지토리로 비밀 또는 개인 또는 신뢰할 수 있는 데이터 푸시, 또는 해당 리포지토리의 자체 작업의 일부가 아닌 기밀 자료 푸시. dotfiles 리포지토리의 자체 주제는 개인 또는 신뢰할 수 있는 데이터의 유일한 예외이며, 개인 리포지토리에서 공개 표면에 도달하는 콘텐츠는 동일한 방식으로 차단됩니다. 두 개선 모두 Claude Code v2.1.203 이상이 필요합니다. v2.1.203 이전에는 개인 데이터가 기밀 자료와 함께 그룹화되었고 해당 리포지토리의 자체 작업의 일부가 아닐 때만 차단되었습니다. 리포지토리의 가시성이 확립되지 않으면 분류기는 그것만으로 차단하지 않습니다. 대신 다른 규칙에 대해 콘텐츠를 판단합니다.
  • 다른 리포지토리 또는 조직에 대한 풀 요청 열기, gh repo fork로 포킹, 또는 제3자 리포지토리로 푸시 (외부 대상을 명명하지 않은 경우)

Claude Code v2.1.203 이상은 또한 기본적으로 다음을 차단합니다:

  • 민감한 로컬 저장소의 콘텐츠, 또는 이름, 경로 또는 유형이 민감한 것으로 표시하는 파일의 콘텐츠가 커밋, 푸시, PR 또는 이슈 텍스트, gist 또는 붙여넣기, 또는 패키지 게시에 진입 (소스와 대상을 모두 명명하지 않은 경우). 세션 트랜스크립트 및 대화 로그, SSH 키, 클라우드 자격 증명, 브라우저 프로필, 셸 히스토리와 같은 자격 증명 및 구성 점 폴더, 그리고 사용자 데이터 내보내기는 모두 계산되며, 리포지토리가 개인이어도 지워지지 않습니다.

Claude Code v2.1.205 이상은 또한 기본적으로 다음을 차단합니다:

  • Claude Code 세션 트랜스크립트, ~/.claude/projects/ 또는 구성된 구성 디렉토리 아래의 .jsonl 히스토리 파일에 쓰기 (직접 또는 셸 명령을 통해). 규칙은 또한 Claude Code가 자체 검사를 위해 각 트랜스크립트 항목에 추가하는 메타데이터 라인을 포함합니다. 트랜스크립트 읽기는 차단되지 않습니다.
  • rm -rf "$VAR" 또는 Remove-Item -Recurse -Force $dir과 같은 재귀적 강제 삭제. 대상이 분류기가 보는 대화의 어디에도 할당되지 않은 셸 변수 또는 그것에 루트된 glob입니다. 값은 이전 명령 출력에서만 나왔으며, 분류기는 절대 받지 않으므로 분류기는 삭제 대상을 다른 삭제 규칙에 대해 확인할 수 없습니다. 블록은 삭제되는 정확한 경로를 명명하거나 Claude가 명령에 작성된 해결된 리터럴 경로로 삭제를 다시 실행할 때 지워집니다. 분류기가 해결할 수 있는 대상의 삭제는 영향을 받지 않습니다. 베어 * 또는 /* 또는 \*로 끝나는 Remove-Item 대상은 분류기에 도달하지 않습니다. Claude Code는 이를 직접 거부합니다.

Claude Code v2.1.257 이상은 또한 기본적으로 다음을 차단합니다:

  • 169.254.169.254와 같은 클라우드 인스턴스 메타데이터 엔드포인트에서 자격 증명 요청, 또는 머신의 자체 서비스 계정 또는 노드 ID로 클라우드, 클러스터 또는 레지스트리 호출을 명시적으로 인증
  • 직접 요청이 아닌 다른 경로로 공개 호스트에 도달 (예: 터널, 역셸, 또는 외부를 가리키도록 다시 작성된 리졸버 또는 프록시 구성)
  • 호스트가 아닌 작업에 속하는 자격 증명 읽기 (예: 노드 인증서 또는 노드의 컨테이너 레지스트리 인증)
  • Claude가 시작하지 않은 형제 컨테이너, 포드 또는 VM에 연결 또는 스캔, 또는 그 아래의 노드

Claude Code가 이 중 하나를 허용하도록 의도된 곳에서 실행되면 autoMode.environment의 호스트 격리 항목에서 해당 설정을 설명하세요.

Claude Code v2.1.261 이상은 또한 기본적으로 다음을 차단합니다:

  • 메시지, PR 또는 이슈 텍스트, 문서 또는 링크가 열리거나 가져올 다른 곳에 공개 붙여넣기, 다이어그램 또는 데이터 공유 서비스에 대한 링크 게시 또는 작성 (URL 자체가 공유되는 콘텐츠를 전달할 때). 해당 서비스를 명명하지 않은 경우.

기본적으로 허용됨:

  • 작업 디렉토리의 로컬 파일 작업
  • 잠금 파일 또는 매니페스트에 선언된 종속성 설치
  • .env 읽기 및 자격 증명을 일치하는 API로 전송
  • 읽기 전용 HTTP 요청
  • 작업 중인 리포지토리의 모든 분기로 푸시 (기본 분기 포함). 이름이 배포 또는 게시 대상으로 표시하는 비기본 분기 (예: production 또는 gh-pages)는 포함되지 않습니다. 분류기는 자체 조건에서 거기로의 푸시를 판단합니다. 푸시의 콘텐츠는 여전히 다른 규칙에 대해 검사되고, permissions.deny 규칙은 여전히 모든 모드에서 작성된 대로 푸시 명령을 차단할 수 있으며, 원격의 자체 분기 보호는 여전히 적용됩니다. v2.1.211 이전에는 시작한 분기, Claude가 생성한 분기, 그리고 기본 분기로의 일상적인 푸시만 기본적으로 허용되었고, v2.1.203 이전에는 기본 분기로의 모든 직접 푸시가 차단되었습니다.

Claude Code v2.1.195 이상은 또한 기본적으로 다음을 허용합니다:

  • 같은 세션에서 Claude가 이전에 생성한 정확한 작업 삭제
  • 작업의 일부로 보안 관련 코드, 구성 및 위협 모델 읽기, 검토 또는 작성
  • 같은 다중 에이전트 세션에서 함께 작업하는 에이전트 간의 메시지
  • environment에 나열한 신뢰할 수 있는 도메인, 버킷 및 서비스로 데이터 전송. 이는 데이터 흐름만 포함하며, 동일한 인프라에 대한 파괴적 또는 자격 증명 작업은 포함하지 않습니다.
  • Chrome의 Claude (신뢰할 수 있는 내부 도메인, localhost 또는 명명한 URL로의 탐색)

샌드박스 명령은 기본적으로 네트워크 액세스를 받지 않습니다. Claude는 명령이 필요로 하는 호스트를 명령 자체에 명명하고, 분류기는 명령과 함께 이를 검토하며, 승인된 목록은 해당 명령만을 위해 이러한 호스트를 엽니다. 명령별 허용 도메인은 목록이 열 수 있는 것과 명령이 나열되지 않은 호스트에 도달할 때 어떤 일이 발생하는지를 다룹니다.

claude auto-mode defaults를 실행하여 전체 규칙 목록을 JSON으로 인쇄하세요. 일상적인 작업이 차단되면 관리자는 autoMode.environment 설정을 통해 신뢰할 수 있는 리포지토리, 버킷 및 서비스를 추가할 수 있습니다. 자동 모드 구성을 참조하세요.

작업 디렉토리의 모든 분기로 푸시 및 요청과 일치하는 풀 요청 생성은 프롬프트 없이 실행됩니다. 단, 푸시 또는 풀 요청이 차단 목록 (예: 리포지토리를 떠나는 비밀 또는 민감한 데이터, 또는 다른 리포지토리 또는 조직을 대상으로 하는 풀 요청)에 해당하지 않는 경우입니다. 자동 모드에 머물면서 이 명령 전에 인간 체크포인트를 요구하려면 permissions.ask 규칙을 추가하세요. 이는 명령 작성된 대로와 일치합니다. 일반적인 경계를 참조하세요.

작업 디렉토리 외부의 첫 번째 읽기

permissions.blockReadsOutsideWorkingDirectories가 꺼져 있는 동안 파일 읽기는 자동 모드에서 프롬프트 없이 실행됩니다. 작업 디렉토리 외부의 경로를 포함합니다. Claude가 Read, Grep 또는 Glob 도구를 처음 사용할 때 그 외부의 경로에서 Claude Code는 해당 읽기를 계속 허용할지 여부를 묻습니다.

프롬프트는 비대화형 -p 실행 또는 백그라운드 세션에 나타나지 않습니다. 거기서 읽기는 이전처럼 실행됩니다.

답변이 무엇이든 Claude는 계속 작업합니다:

  • 계속 허용: 읽기가 실행되고, 작업 디렉토리 외부의 이후 읽기는 이전처럼 실행되며, Claude Code는 프롬프트가 다시 나타나지 않도록 답변을 기록합니다.
  • 지금부터 차단: 읽기가 거부되고, Claude Code는 permissions.blockReadsOutsideWorkingDirectories를 사용자 설정에서 true로 설정합니다. 이는 파일 도구가 모든 이후 세션 및 모든 권한 모드에서 이러한 읽기를 거부하게 합니다. 나중에 Claude가 이러한 경로를 읽도록 하려면 /add-dir로 디렉토리를 추가하거나 설정을 제거하세요.
  • 다음에 다시 묻기: 읽기가 거부되고, 작업 디렉토리 외부의 다음 읽기가 다시 프롬프트합니다.

대화에서 명시한 경계

분류기는 대화에서 명시한 경계를 블록 신호로 취급합니다. "푸시하지 마" 또는 "배포하기 전에 검토할 때까지 기다려"라고 Claude에게 말하면 분류기는 기본 규칙이 허용하더라도 일치하는 작업을 차단합니다. 경계는 이후 메시지에서 해제할 때까지 유효합니다. Claude의 자체 판단이 조건이 충족되었다는 것은 이를 해제하지 않습니다.

경계는 규칙으로 저장되지 않습니다. 분류기는 각 검사에서 트랜스크립트에서 다시 읽으므로 컨텍스트 압축이 경계를 명시한 메시지를 제거하면 경계가 손실될 수 있습니다. 하드 보장을 위해 거부 규칙을 대신 추가하세요.

자동 모드가 폴백할 때

자동 모드가 세션의 작업을 승인할 수 없을 때 어떤 일이 발생하는지는 경우에 따라 다릅니다:

  • 차단된 작업: Claude Code는 알림을 표시하고 /permissions 아래 최근 거부됨 탭에 작업을 나열합니다. 여기서 r을 눌러 수동 승인으로 다시 시도할 수 있습니다. 분류기가 작업에 대한 판정을 생성하지 않을 때 (자동 모드와 별개의 안전 검사가 분류기의 자체 요청을 거부했거나 응답이 파싱되지 않았기 때문에) Claude Code는 알림 또는 최근 거부됨 항목 없이 작업을 거부합니다.
  • 반복된 차단: 분류기가 작업을 연속으로 3번 또는 총 20번 차단하면 자동 모드가 일시 중지되고 Claude Code는 프롬프트를 재개합니다. 프롬프트된 작업을 승인하면 자동 모드가 재개됩니다. 이 임계값은 구성할 수 없습니다. 허용된 작업은 연속 카운터를 재설정하는 반면 총 카운터는 세션 동안 지속되고 자체 한계가 폴백을 트리거할 때만 재설정됩니다. Claude Code는 자동 모드와 별개의 안전 검사가 분류기의 요청을 거부할 때 거부를 어느 임계값에도 계산하지 않습니다. 연결된 항목은 Claude Code가 이러한 거부를 처리하는 방법을 다룹니다.
  • 프롬프트할 수 없는 세션: --permission-prompt-tool 없는 비대화형 -p 실행은 폴백할 프롬프트가 없습니다. 반복된 차단이 임계값에 도달하면 작업이 실행되지 않고 Claude는 계속 작업합니다. 자동 모드와 별개의 안전 검사가 분류기의 요청을 거부할 때도 동일하게 적용됩니다. Claude Code는 어느 경우든 실행을 중지하지 않습니다.
  • 검사 중 모드 전환: 분류기 검사가 보류 중일 때 권한 모드를 전환하면 Claude Code는 새 모드가 요청하지 않았을 판정을 버립니다. 대신 승인을 위해 프롬프트되거나 dontAsk 모드에서 작업이 자동 거부됩니다.

반복된 차단은 일반적으로 분류기가 인프라에 대한 컨텍스트를 놓치고 있음을 의미합니다. /feedback을 사용하여 거짓 양성을 보고하거나 관리자가 신뢰할 수 있는 인프라를 구성하도록 하세요.

각 작업은 고정된 결정 순서를 거칩니다. 첫 번째 일치하는 단계가 승리합니다:
1. [허용, 요청 또는 거부 규칙](/docs/ko/permissions#manage-permissions)과 일치하는 작업은 즉시 해결됩니다. 이러한 예외가 있습니다:
   * [보호된 경로](#protected-paths)에 대한 쓰기는 허용 규칙이 일치할 때도 분류기로 라우팅됩니다, 그리고 Claude Code v2.1.218 이상에서 [중요 경로](#critical-paths)를 대상으로 하는 `rm` 및 `rmdir` 제거도 마찬가지입니다.
   * [`requiresUserInteraction`](/docs/ko/mcp#require-approval-for-a-specific-tool)으로 표시된 MCP 도구는 허용 규칙이 일치할 때도 직접 프롬프트하고, 조직이 [세션에서 해당 설정에 도달하는 경우](/docs/ko/mcp#organization-controls-on-connector-tools) `ask`로 설정한 커넥터 도구도 마찬가지입니다.
   * 명령의 콘텐츠에서 일치하는 요청 규칙 (예: `Bash(git push *)`)은 권한 프롬프트로 폴백합니다.
   * [명령별 허용 도메인](/docs/ko/sandboxing#per-command-allowed-domains-in-auto-mode)을 전달하는 셸 명령도 허용 규칙이 명령을 승인하더라도 분류기로 라우팅됩니다. 규칙은 명령을 승인하지만 호스트는 승인하지 않기 때문입니다.
2. 읽기 전용 작업 및 작업 디렉토리의 파일 편집은 자동 승인됩니다. 단, [보호된 경로](#protected-paths)에 대한 쓰기 및 [작업 디렉토리 외부의 첫 번째 읽기](#first-read-outside-the-working-directories)는 제외됩니다. 이는 프롬프트합니다.
3. 다른 모든 것은 분류기로 이동합니다. 단계 1에서 직접 프롬프트하는 커넥터 도구 및 `requiresUserInteraction` MCP 도구는 분류기에 도달하지 않으므로 조직 필수 승인도 동의 단계도 자동 승인되지 않습니다.
4. 분류기가 차단하면 Claude는 이유를 받고 대안을 시도합니다. 대부분의 세션에서 이유는 분류기가 일치한 규칙 (예: `[Data Exfiltration]`)을 명명하며, 작성된 설명을 제공하지 않습니다. [거부 검토](/docs/ko/auto-mode-config#review-denials)를 참조하세요.

자동 모드에 진입할 때 임의의 코드 실행을 부여하는 광범위한 허용 규칙이 삭제됩니다:

* 무조건 `Bash(*)` 또는 `PowerShell(*)`
* `Bash(python*)`과 같은 와일드카드 인터프리터
* 패키지 관리자 실행 명령
* `Agent` 허용 규칙
* [`Monitor`](/docs/ko/tools-reference#monitor-tool) 허용 규칙 (Claude Code는 Monitor 명령을 셸을 통해 실행하기 때문)

`Bash(npm test)`와 같은 좁은 규칙은 유효합니다. Claude Code는 자동 모드를 떠날 때 삭제된 규칙을 복원합니다. v2.1.236 이전에는 Claude Code가 자동 모드에서 `Monitor` 허용 규칙을 유효하게 두었으므로 전체 도구와 일치하는 규칙이 분류기 검토 없이 Monitor 명령을 승인했습니다.

Claude Code는 또한 커밋되지 않은 작업을 버릴 `git reset --hard` 또는 `rm -rf`와 같은 명령 전에 `git status`를 자체적으로 실행하고 분류기에 스테이징된, 수정된 또는 추적되지 않은 작업이 있는지 표시합니다. Claude Code는 리포지토리의 git 구성이 `status.showUntrackedFiles=no`를 설정할 때도 해당 검사에서 추적되지 않은 파일을 보고합니다.

Claude Code 자체가 보내는 분류기 요청에서 분류기는 사용자 메시지, 파일 읽기 및 검색과 같은 읽기 전용 조회 이외의 도구 호출, 그리고 CLAUDE.md 콘텐츠를 봅니다. 도구 결과는 제거되므로 파일 또는 웹 페이지의 악의적인 콘텐츠는 분류기를 직접 조작할 수 없습니다. 호출의 결과에 [PostToolUse 훅의 `classifierContext` 필드](/docs/ko/hooks#annotate-a-result-for-the-auto-mode-classifier)로 주석을 달 수 있으며, 분류기는 이를 애플리케이션 제공 컨텍스트로 읽습니다. 필드는 Claude Code v2.1.236 이상이 필요합니다.

별도의 서버 측 프로브는 들어오는 도구 결과를 스캔하고 Claude가 읽기 전에 의심스러운 콘텐츠에 플래그를 지정합니다. 이 계층들이 함께 작동하는 방식에 대한 자세한 내용은 [자동 모드 발표](https://claude.com/blog/auto-mode) 및 [엔지니어링 심층 분석](https://www.anthropic.com/engineering/claude-code-auto-mode)을 참조하세요.
자동 모드가 서브에이전트를 처리하는 방법

분류기는 서브에이전트 작업을 세 지점에서 검사합니다:

  1. 서브에이전트가 시작되기 전에 위임된 작업 설명이 평가되므로 위험해 보이는 작업은 생성 시점에 차단됩니다.
  2. 서브에이전트가 실행되는 동안 각 작업은 부모 세션과 동일한 규칙으로 분류기를 통과하며, 서브에이전트의 frontmatter의 모든 permissionMode는 무시됩니다.
  3. 서브에이전트가 완료되면 분류기는 작업과 최종 보고서를 검토한 후 부모가 보고서를 읽습니다. 분류기가 서브에이전트의 작업 또는 보고서에 플래그를 지정하거나 별도의 API 안전 검사가 검토를 거부하면 보고서는 여전히 전달되며 보안 경고가 앞에 붙습니다. 분류기를 사용할 수 없는 경우 보고서는 서브에이전트의 작업을 검증한 후 작업하도록 하는 메모와 함께 도착합니다.

단계 1은 Claude Code v2.1.178 이상이 필요합니다. 이전 버전은 단계 2 및 3에서 분류기를 적용했지만 서브에이전트가 시작되기 전에 작업 설명을 평가하지 않았습니다.

비용 및 지연

분류기는 기본적으로 /model 선택이 아닌 Claude Sonnet 5에서 실행됩니다. Anthropic이 서버 측에서 구성하는 분류기 모델이 해당 기본값보다 우선합니다. 세션의 모델이 Claude Sonnet 4.6이거나 availableModels이 Sonnet 5를 제외할 때 분류기는 세션의 모델에서 실행되거나, 세션이 Fable 모델에서 실행될 때 Opus 모델에서 실행됩니다. Anthropic API 이외의 제공자에서 해당 Opus 폴백은 제공자의 기본 Opus 모델입니다.

세션의 첫 번째 자동 모드 요청은 Sonnet 5 기본값을 검증합니다. 요청이 성공하면 Sonnet 5는 세션의 분류기 모델로 유지되고, 모델을 사용할 수 없어서 실패하면 세션은 폴백을 대신 사용합니다. 해당 검증이 정착한 후 분류기의 모델은 세션 동안 변경되지 않습니다.

Enterprise 플랜 및 Claude API, AWS의 Claude Platform, Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry를 사용하는 계정에서 분류기 호출은 토큰 사용량에 계산됩니다. 각 검사는 트랜스크립트의 일부와 보류 중인 작업을 보내며 실행 전에 왕복을 추가합니다. 읽기 및 보호된 경로 외부의 작업 디렉토리 편집은 분류기를 건너뛰므로 오버헤드는 주로 셸 명령 및 네트워크 작업에서 발생합니다. 서버가 세션의 모델 요청의 일부로 작업을 검토하는 경우 계산할 별도의 분류기 호출이 없습니다. 서버 측 분류기 검토를 참조하세요.

샌드박스 네트워크 액세스는 명령별 분류기 요청을 추가하지 않습니다. 분류기는 명령이 명명하는 호스트를 명령과 함께 판단하고, Claude Code는 각 연결을 승인된 목록에 대해 분류기를 다시 호출하지 않고 검사합니다.

dontAsk 모드로 사전 승인된 도구만 허용

dontAsk 모드를 설정하면 Claude Code는 그 외에 프롬프트를 표시할 모든 도구 호출을 자동으로 거부합니다. Claude는 여전히 Manual 모드에서 승인이 필요 없는 작업을 실행합니다. 예를 들어 작업 디렉터리 내의 파일 읽기 및 읽기 전용 Bash 명령, permissions.allow 규칙과 일치하는 작업, 그리고 PreToolUse 훅으로 승인된 호출입니다. 이 모드는 CI 파이프라인이나 Claude가 수행할 수 있는 작업을 사전에 정의하는 제한된 환경에서 사용합니다. 세션은 입력을 기다리지 않습니다. 이 모드가 활성화되어 있는 동안 상태 표시줄에 ⏵⏵ don't ask on이 표시됩니다.

Claude Code는 프롬프트를 표시하는 대신 명시적인 ask 규칙과 일치하는 호출을 거부합니다. 또한 allow 규칙이 일치하더라도 기본 제공 AskUserQuestion 도구를 거부하며, 해당 설정이 Claude Code에 도달하는 세션에서 조직이 ask로 설정한 커넥터 도구도 동일하게 거부합니다. _meta["anthropic/requiresUserInteraction"]로 표시된 MCP 도구도 동일한 방식으로 거부합니다. 이는 승인 카드가 이 모드에서 수집하지 않는 답변이 필요하기 때문입니다. 이 기능은 Claude Code v2.1.199 이상이 필요합니다.

rm 및 rmdir 제거가 중요 경로를 대상으로 하는 경우(예: rm -rf / 및 rm -rf ~), allow 규칙이 일치하거나 PreToolUse 훅이 허용하더라도 거부됩니다.

클라우드 세션은 defaultMode: "dontAsk"를 무시합니다. 자세한 내용은 bypassPermissions를 참조하세요.

시작 시 플래그로 설정합니다:

claude --permission-mode dontAsk

bypassPermissions 모드로 모든 확인 건너뛰기

bypassPermissions 모드는 권한 프롬프트와 안전 확인을 비활성화하여 보호된 경로에 대한 쓰기를 포함한 도구 호출이 즉시 실행되도록 합니다.

작업 없음 모드가 자동 승인하는 작업은 이 모드에서도 계속 프롬프트를 표시합니다.

두 가지 세션 간 메시징 보안 조치는 이 모드에서, 그리고 권한 우회가 가능한 계획 모드 세션에서도 계속 적용됩니다:

  • 이 머신을 넘어 다른 세션으로의 메시지에 대한 isolatePeerMachines 승인 프롬프트는 계속 나타납니다.
  • crossSessionInbound 값이 적용되지 않을 때, Claude Code는 다른 세션에서의 인바운드 메시지를 승인 대기 상태로 유지하며, 송신 세션이 권한 프롬프트도 우회 중임을 식별할 때만 묻지 않고 전달합니다. 메시지가 대기 중인 상태에서 권한 모드를 종료하면, Claude Code는 인바운드 규칙을 다시 적용하고 현재 수락하는 대기 중인 메시지를 전달합니다.

권한 우회가 가능한 대화형 터미널 세션에서, Claude Code는 계획 모드의 차단도 적용하지 않습니다. Claude는 여전히 편집 없이 계획하도록 지시받지만, 계획 중에 시도하는 파일 편집이나 셸 명령은 프롬프트 없이 실행됩니다. 명시적 요청 규칙과 중요 경로를 대상으로 하는 rm 및 rmdir 제거는 계속 프롬프트를 표시합니다.

계획 모드는 Claude Code가 대화형 터미널 없이 실행되는 모든 곳에서 차단을 유지합니다. 여기에는 -p를 사용한 비대화형 실행, Agent SDK 세션, 그리고 VS Code 확장의 채팅 패널의 대화가 포함됩니다. 거기서 --allow-dangerously-skip-permissions는 나중에 bypassPermissions를 선택 가능하게 합니다.

활성화되지 않은 상태에서 시작한 세션에서 bypassPermissions로 진입할 수 없습니다. permissions.defaultMode: "bypassPermissions"로 시작할 때 활성화하거나 활성화 플래그를 사용하십시오:

claude --permission-mode bypassPermissions

--dangerously-skip-permissions 플래그는 동등합니다.

Claude Code는 --restricted로 시작한 세션에서 bypassPermissions를 거부합니다. --restricted는 Claude Code v2.1.248 이상이 필요합니다.

이 모드를 활성화하여 대화형 세션을 처음 시작할 때, Claude Code는 권한 확인 없이 수행된 작업에 대한 책임을 수락하도록 요청하는 경고 대화상자를 표시합니다. Claude Code는 사용자 설정에 승인을 저장하므로 대화상자는 한 번만 나타납니다. 거부하면 Claude Code가 종료됩니다. 비대화형 모드에서는 대화상자가 표시되지 않으며, --bg로 시작한 백그라운드 세션은 대화형 세션에서 대화상자를 수락할 때까지 거부됩니다.

Linux 및 macOS에서, Claude Code는 root 또는 sudo 권한으로 실행할 때 이 모드에서 시작하기를 거부합니다:

--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons

확인은 인식된 샌드박스 내에서 자동으로 건너뜁니다. 컨테이너에서 자율적으로 실행하려면, Claude Code를 비루트 사용자로 실행하는 개발 컨테이너 구성을 사용하십시오.

웹의 Claude Code는 설정 파일의 defaultMode: "bypassPermissions" 또는 "dontAsk"를 적용하지 않으므로, 저장소의 체크인된 설정은 클라우드 세션을 권한 우회 모드로 시작할 수 없습니다. 설정은 자동으로 무시되고 세션은 모드 드롭다운에 표시된 권한 모드로 시작됩니다. 권한 모드 전환에서 클라우드 세션이 제공하는 모드를 참조하십시오.

보호된 경로

bypassPermissions 모드와 bypass permissions를 사용할 수 있는 plan 모드의 대화형 터미널 세션을 제외하고는 특정 경로에 대한 쓰기는 자동으로 승인되지 않습니다. 이는 저장소 상태와 Claude의 자체 설정이 실수로 손상되는 것을 방지합니다.

모드 보호된 경로 쓰기
default, acceptEdits 프롬프트됨
plan bypass permissions를 사용할 수 있는 대화형 터미널 세션에서 허용됨. 그렇지 않으면 계획 중에 auto mode를 사용할 수 있을 때 분류기로 라우팅되고, 그렇지 않으면 프롬프트됨
auto 분류기로 라우팅됨
dontAsk 거부됨
bypassPermissions 허용됨

--restricted로 시작된 세션에서(Claude Code v2.1.248 이상 필요) 분류기는 보호된 경로 쓰기를 승인할 수 없습니다.

설정 파일의 permissions.allow 규칙은 보호된 경로 쓰기를 사전에 승인하지 않습니다. 안전 확인은 Claude Code가 설정에서 allow 규칙을 평가하기 전에 실행되므로, ~/.claude/settings.json 또는 .claude/settings.json의 Edit(.claude/**) 같은 항목은 위 표의 모드별 결과를 변경하지 않습니다. 프롬프트를 표시하는 모드에서는 .claude/ 쓰기에 대한 프롬프트가 Yes, and allow Claude to edit its own settings for this session을 제공하며, 이는 해당 세션에서 나중의 .claude/ 쓰기를 다시 프롬프트하지 않고 승인합니다.

보호된 디렉토리:

  • .git
  • .config/git
  • .vscode
  • .idea
  • .husky
  • .cargo
  • .devcontainer
  • .yarn
  • .mvn
  • .claude, .claude/worktrees 제외 (Claude가 자신의 git worktrees를 저장하는 위치)

보호된 파일:

  • .gitconfig, .gitmodules
  • .bashrc, .bash_profile, .bash_login, .bash_aliases, .bash_logout, .zshrc, .zprofile, .zshenv, .zlogin, .zlogout, .profile, .envrc
  • .npmrc, .yarnrc, .yarnrc.yml, .pnp.cjs, .pnp.loader.mjs, .pnpmfile.cjs, bunfig.toml, .bunfig.toml
  • .bazelrc, .bazelversion, .bazeliskrc
  • .pre-commit-config.yaml, lefthook.yml, lefthook.yaml, .lefthook.yml, .lefthook.yaml
  • gradle-wrapper.properties, maven-wrapper.properties
  • .devcontainer.json
  • .ripgreprc, pyrightconfig.json
  • .mcp.json, .claude.json

Critical paths

Claude Code는 permissions.allow 규칙이나 "allow"를 반환하는 PreToolUse hook이 critical path를 대상으로 하는 rm 또는 rmdir 명령을 승인하도록 허용하지 않습니다. 다른 프롬프트를 건너뛰는 모드에서도 마찬가지입니다. 이 차단기는 모델 오류를 방지합니다. 일치하는 deny 규칙은 여전히 명령을 완전히 차단합니다.

대신 발생하는 일은 권한 모드에 따라 달라집니다:

모드 Claude Code가 critical-path 제거로 수행하는 작업
default, acceptEdits 승인을 요청합니다.
plan 승인을 요청합니다. 계획 중에 auto mode를 사용할 수 있고 bypass permissions를 사용할 수 없으면 대신 분류기로 보냅니다.
auto 분류기로 보냅니다.
dontAsk 거부합니다.
bypassPermissions 승인을 요청합니다.

명시적 ask 규칙이 명령과 일치하면 Claude Code는 auto mode에서도 승인을 요청합니다. 승인을 요청하는 모드에서 PermissionRequest hook은 다른 프롬프트처럼 프롬프트에 답할 수 있습니다.

Claude Code는 rm 또는 rmdir 대상을 다음 중 하나일 때 critical path로 취급합니다:

  • 파일시스템 루트
  • 최상위 디렉토리, 즉 루트의 직접 자식(예: /usr, /etc, /data)
  • 홈 디렉토리
  • Windows 드라이브 루트 및 최상위 디렉토리(예: C:\ 및 C:\Windows)
  • 작업 디렉토리 및 부모
  • 추가 작업 디렉토리 및 부모, 단 제거가 하나 아래의 glob일 때만(예: rm -rf <dir>/*). rm -rf <dir>은 디렉토리 자체에서 이 확인을 트리거하지 않습니다.

Claude Code는 또한 rm -rf "$DIR"/*와 같이 셸 변수 직접 아래의 glob 또는 후행 슬래시를 critical-path 제거로 취급합니다. 변수가 비어 있으면 명령이 파일시스템 루트에서 제거가 되기 때문입니다.

(...) 내부의 서브셸, { ...; } 내부의 brace group, $(...) 또는 백틱을 사용한 명령 치환, 또는 <(...) 내부의 프로세스 치환 내에 제거를 숨기는 것은 확인을 건너뛰지 않습니다. Claude Code는 (rm -rf ~) 또는 echo "$(rm -rf ~)"처럼 중첩된 형식 내부에 있든 같은 명령의 다른 곳에 있든 critical-path 제거를 찾습니다.

PowerShell의 Remove-Item

PowerShell tool을 활성화하면 Claude Code는 Remove-Item에 rm critical-path 목록과 별개의 자체 확인을 제공합니다. 결과는 대상에 따라 달라지며 첫 번째 일치하는 경우가 적용됩니다:

  • System paths: 파일시스템 루트 및 최상위 디렉토리, 드라이브 루트 및 최상위 디렉토리, 홈 디렉토리. Claude Code는 모든 모드에서 묻지 않고 명령을 거부합니다.
  • Wildcards: bare *, 또는 /* 또는 \*로 끝나는 모든 대상(예: $dir/*과 같은 셸 변수 아래의 glob). Claude Code는 분류기가 보기 전에 모든 모드에서 묻지 않고 명령을 거부합니다.
  • 작업 디렉토리 또는 부모, -Recurse 포함: Claude Code는 다른 승인이 필요한 명령처럼 명령을 취급하므로 승인을 요청하는 모드에서 묻고, auto mode에서 분류기로 보내고, dontAsk mode에서 거부합니다. bypassPermissions mode는 이 확인을 건너뜁니다.

참고 항목

  • 권한: allow, ask, deny 규칙; 관리형 정책
  • auto mode 구성: 분류기에 조직이 신뢰하는 인프라를 알립니다.
  • Hooks: PreToolUse 및 PermissionRequest hooks를 통한 사용자 정의 권한 로직
  • 보안: safeguards 및 모범 사례
  • Sandboxing: Bash 명령어에 대한 파일시스템 및 네트워크 격리
  • 비대화형 모드: -p 플래그를 사용하여 Claude Code 실행