Permission Modes 6종
정의
Permission Modes는 Claude가 파일 수정·셸 실행·네트워크 요청 시 사용자에게 prompt를 얼마나 자주 띄울지 결정하는 6단계 자율성 다이얼이다. default·acceptEdits·plan·auto·dontAsk·bypassPermissions 중 하나로 시작하거나 세션 중 사이클로 전환한다.
핵심 동작
default— 읽기만 자동 승인. 첫 진입에 적합acceptEdits— 읽기 + 파일 수정 + 일반 fs 명령(mkdir·mv·cp등 안전 명령) 자동 승인plan— 읽기만, 절대 수정 없음auto— 분류기 모델이 위험 평가 후 자동 승인.curl|bash·force push·외부 인프라 변경 등은 차단dontAsk—permissions.allow에 없으면 모두 거부. CI 락다운용bypassPermissions— 모든 prompt 스킵(보호 경로 제외). 격리 컨테이너·VM 전용- 보호 경로(
.git·.vscode·.claude·.bashrc등)는 어떤 모드에서도 자동 승인되지 않는다
사용법
# 모드별 시작
claude --permission-mode plan
claude --permission-mode acceptEdits
claude --permission-mode auto
claude --permission-mode dontAsk -p "lint and report issues only"
# 세션 안에서 사이클
# Shift+Tab → default → acceptEdits → plan 순환
settings.json으로 영구 설정.
{
"permissions": {
"defaultMode": "acceptEdits",
"deny": ["Bash(Remove-Item *)", "Read(~/.ssh/**)"],
"ask": ["Bash(git push *)"],
"allow": ["Bash(git status)", "Bash(Rscript *)", "Read(./data/**)"]
}
}
강사 멘트
6단계라고 적었지만 일상은 두 개다. plan은 앞에서 봤고, default는 매번 묻기, acceptEdits는 편집은 자동으로 가고 터미널 명령은 묻기. auto·dontAsk·bypass는 야간 헤드리스 잡 같은 자동화에서만 의미가 있다. 본인 노트북에는 settings.json 한 개를 두고 매일 acceptEdits로 시작하는 것이 무난하다. 모범 프롬프트의 핵심은 본인이 매일 쓰는 명령을 가지고 AI에게 설정 파일을 직접 짜게 시키는 것이다. 일일이 외울 필요 없다. bypass는 강한 어조로 한 번 더 — 격리 환경(컨테이너·VM·일회용 폴더) 외에는 절대 금지. 기관 정책 위반이 될 수 있으니 주의한다.
실습
자기 폴더에 .claude/settings.json을 만들어 deny 한 줄을 넣는다. JSON은 PowerShell here-string의 single-quote 형식(@'...'@)으로 작성해 변수 확장과 충돌을 피한다.
PS C:\work\edu-lab\demo01> New-Item -ItemType Directory -Path .claude -Force
PS C:\work\edu-lab\demo01> @'
{
"permissions": {
"deny": ["Bash(Remove-Item *)"],
"ask": ["Bash(git push *)"]
}
}
'@ | Out-File -Encoding UTF8 .claude\settings.json
세션 안에서 “이 폴더의 .md 파일을 모두 지워줘”라고 요청해 차단 메시지가 뜨면 성공이다.
활용 시사점
교육 현장에서 Permission Modes는 다음 세 가지로 활용된다.
- 자리별 진입점 분리. Claude Code를 처음 쓰는 동료 교사는
plan, 익숙한 교사는acceptEdits, 야간 자동 보고서 생성 잡은dontAsk로 시작한다. 같은 도구가 사람·상황별로 다른 자율성을 가진다 - 위험 명령 영구 deny. 학생 데이터 폴더에서
Remove-Item·Read(~/.ssh/**)같은 위험 명령을 deny 룰로 박아 두면, 학생이 실수로 실행해도 차단된다. settings.json 한 줄이 사고 예방의 핵심 - AI에게 settings.json 작성 시키기. 본인이 매일 쓰는 명령을 나열한 뒤 “이걸 기반으로 settings.json deny·ask·allow 룰을 짜 줘”라고 요청한다. 일일이 외울 필요 없는 메타 패턴이다
| ← 이전 기능 | 허브로 돌아가기 | 다음 기능 → |