클로드 코드(Claude Code) 모드 변경, 플랜 모드 켜고 끄는 법
클로드 코드 모드 변경 방법과 모드별 차이를 정리했습니다. 2.1.309에서 같은 버그 수정을 계획·수동·편집 자동 승인 모드로 한 번씩 맡겨 보면, 플랜 모드에서는 파일이 그대로 남고 계획만 돌아옵니다.
Finn · · 수정

클로드 코드 모드는 두 가지 방법으로 바꿉니다. 대화 중에는 Shift+Tab을 눌러 모드를 바꾸고, 지금 어떤 모드인지는 상태 표시줄(플랜 모드라면 ⏸ plan mode on)에서 확인합니다. 새 세션을 플랜 모드로 시작하려면 claude --permission-mode plan으로 켭니다. 그렇다면 모드에 따라 결과는 얼마나 달라질까요? 장바구니 버그를 plan 모드로 맡기면 src/cart.js는 하나도 바뀌지 않습니다. 테스트도 1개 통과, 5개 실패인 채로 끝나죠. 같은 일을 acceptEdits 모드로 맡기자 파일이 고쳐졌고 테스트 6개가 모두 통과했습니다. 클로드 코드 2.1.309에서 세 가지 권한 모드로 한 번씩 돌려 보고, Claude Code 플랜 모드가 실제로 무엇을 막는지 기록했습니다.
세 모드에 같은 버그를 맡기면 무엇이 다를까요?
먼저 두 줄로 요약하면 이렇습니다. 대화 중에는 Shift+Tab을 누를 때마다 모드가 바뀌는데, 오토 모드에서 처음 누르면 default(Manual)로 바뀌고 그 뒤로 acceptEdits → plan 순서로 돕니다. 시작할 때는 claude --permission-mode plan처럼 플래그로 정합니다.
과제 폴더 하나를 세 벌로 복사하고, 폴더마다 같은 요청을 보냈습니다. "테스트가 모두 통과하도록 src/cart.js를 고쳐 주세요. 테스트 파일은 고치지 마세요." 실행은 claude -p로 했고 --permission-mode 값만 바꿨습니다.
| 모드 | src/cart.js | 실행 뒤 테스트 | 권한 거부 | 걸린 시간 |
|---|---|---|---|---|
plan | 그대로 | 1개 통과, 5개 실패 | 0번 | 34.6초 |
default | 그대로 | 1개 통과, 5개 실패 | 3번 | 23.0초 |
acceptEdits | 바뀜 | 6개 통과, 0개 실패 | 3번 | 30.1초 |
그럼 세 모드는 각각 무엇을 돌려줬을까요? plan 모드는 지금 계획 모드라 수정 계획만 세웠다고 답했습니다. 정률 쿠폰 할인액에서 원 단위 아래를 버리는 식으로, 고칠 곳을 번호를 매겨 내놓았죠. 권한 거부는 한 번도 없었습니다.
default 모드도 원인을 찾아 설명했지만, 파일 쓰기와 npm test 실행이 승인되지 않아 고치지 못했다고 답했습니다. 권한 거부는 3번이었고요. acceptEdits 모드는 파일을 고쳤지만 npm test에 승인이 필요해 테스트는 돌리지 못했다고 했습니다. 실행이 끝난 뒤 node --test로 직접 돌려 보니 6개가 모두 통과했습니다.

걸린 시간도 모드마다 달랐습니다. 다만 한 번씩만 돌렸기 때문에, 이 측정만으로는 시간 차이의 원인을 가를 수 없습니다. 확인하고 싶다면 같은 명령을 여러 번 돌리고 --output-format json 출력을 모드별로 비교해 보세요.

함께 읽을 글
모드마다 묻지 않고 실행하는 범위
결과가 이렇게 갈린 데는 이유가 있습니다. 권한 모드 문서에 따르면 권한 모드는 Claude가 먼저 묻지 않고 할 수 있는 행동의 범위를 정합니다. 화면에서 Manual로 보이는 모드의 설정값이 default입니다.
| 모드 | 묻지 않고 실행하는 것 | 문서가 꼽는 용도 |
|---|---|---|
default (Manual) | 읽기만 | 모든 행동을 직접 검토, 민감한 작업 |
acceptEdits | 읽기, 파일 편집, mkdir·touch·mv·cp 같은 흔한 파일 명령 | 검토하면서 코드를 고쳐 나갈 때 |
plan | 읽기, 그리고 오토 모드를 쓸 수 있으면 분류 모델이 승인한 명령 | 바꾸기 전에 코드베이스를 살필 때 |
auto | 전부, 백그라운드 안전 검사와 함께 | 긴 작업, 확인 창 피로 줄이기 |
측정 결과도 이 표와 맞습니다. acceptEdits에서 파일 편집은 묻지 않고 통과했지만, npm test 같은 셸 명령은 승인이 필요한 셸 명령이라 claude -p에서는 바로 거부됐죠.
플랜 모드와 오토 모드는 어떻게 다를까요?
플랜 모드는 계획을 승인할 때까지 편집을 막습니다. 오토 모드는 분류 모델(classifier)이라는 두 번째 모델이 사람 대신 행동을 검토해, 거의 모든 일을 묻지 않고 진행합니다.
또 하나 알아 둘 점이 있습니다. v2.1.283 이상에서는 대화형 터미널과 VS Code의 내장 기본값이 오토입니다. 다만 시작 모드 설정과 조직 정책(예: HIPAA 구성이 적용된 조직), 오토 모드 사용 가능 여부에 따라 Manual 등으로 시작할 수 있습니다. 그래서 claude를 켠 뒤에는 상태 표시줄에서 지금 모드부터 확인하는 편이 좋습니다. 혼자 제품을 만들면서 결제나 인증 코드처럼 실수하면 비싼 곳을 건드린다면, 그 세션만큼은 플랜 모드로 시작해 보세요.
플랜 모드 사용법
일반 작업 흐름 문서가 안내하는 순서대로 정리했습니다.
- 세션을 시작할 때부터 계획 모드로 켭니다.bash
claude --permission-mode plan - 이미 대화 중이라면 상태 표시줄에
⏸ plan mode on이 보일 때까지Shift+Tab을 누릅니다. - 고칠 내용을 평소처럼 요청합니다. Claude는 파일을 읽고 계획을 제안하지만, 승인하기 전에는 아무것도 고치지 않습니다.
- 계획을 검토하고 승인합니다. 승인 흐름과 계획을 텍스트 편집기로 고치는 방법은 공식 문서의 Plan mode 절에 있습니다.
- 적용한 뒤에는 테스트를 직접 돌리거나 테스트 명령을 미리 허용해 둡니다.
Shift+Tab을 누르면 모드가 정해진 순서로 돌아갑니다. 오토 모드에서 처음 누르면 default로 바뀌고, 그다음은 default → acceptEdits → plan 순서입니다. 켜 둔 선택 모드는 plan 뒤에 들어가는데, bypassPermissions가 먼저이고 auto가 마지막이죠.

그런데 claude -p처럼 대화 없이 돌리면 어떻게 될까요? 이번 측정에서 plan 모드는 계획만 돌려주고 그대로 끝났습니다. 스크립트에서는 계획을 받아 읽어 본 뒤, 다른 모드로 다시 실행하는 식으로 나눠 쓰면 됩니다.
플랜 모드 끄기와 기본 모드 바꾸기
플랜 모드를 끄는 가장 빠른 방법은 대화 중에 Shift+Tab을 눌러 다른 모드로 넘기는 것입니다. 상태 표시줄 글자가 ⏸ plan mode on에서 다른 표시로 바뀌면 됩니다. 다음 세션부터 아예 다른 모드로 시작하려면 시작 모드 규칙을 알아 두세요.
새 터미널 세션은 아래 가운데 먼저 해당하는 것을 따릅니다.
--permission-mode플래그나--dangerously-skip-permissions- 설정 파일의
permissions.defaultMode - 내장 기본값
예를 들어 이 컴퓨터의 모든 터미널 세션을 Manual 모드로 시작하려면 ~/.claude/settings.json에 아래처럼 저장합니다. 값을 plan으로 바꾸면 계획 모드로 시작하게 할 수 있습니다.
{
"permissions": {
"defaultMode": "default"
}
}프로젝트의 .claude/settings.json에 넣으면 그 프로젝트에서 시작하는 터미널 세션에만 적용됩니다. 단, 이 파일에서는 auto와 bypassPermissions가 적용되지 않습니다. VS Code 확장이 시작하는 대화는 시작 모드를 정할 때 프로젝트 설정을 읽지 않습니다.
자주 하는 실수
claude -p가 오토 모드일 거라 생각하는 경우: v2.1.302 이상에서 모드를 지정하지 않은claude -p는 Manual 모드로 시작합니다. 승인이 필요한 호출은 허용 규칙 같은 장치가 없으면 거부되죠. 이번 측정은default를 명시했지만, 승인 수단이 없어 파일 쓰기와 테스트 실행이 거부되는 결과를 보여 줍니다.acceptEdits면 테스트도 돌 거라 기대하는 경우: 파일은 고쳐졌지만npm test는 승인을 받지 못했습니다.claude -p라면--allowedTools "Bash(npm test)"로 그 명령만 허용할 수 있습니다.- 프로젝트 설정에
auto를 넣는 경우:.claude/settings.json이나.claude/settings.local.json에 넣은"auto"는 적용되지 않습니다. - 모드가 모든 걸 막아 줄 거라 믿는 경우: 모드는 출발점일 뿐입니다. 특정 도구를 막으려면 그 위에 권한 규칙을 얹어야 하고, 거부(deny) 규칙은 모든 모드에서 막습니다.
시작 전 점검 목록
claude -p로 계획을 받았다면 같은 폴더에서--permission-mode acceptEdits --allowedTools "Bash(npm test)"로 다시 실행했나요?상태 표시줄에 지금 모드가 무엇으로 보이나요?
위험한 변경이라면
⏸ plan mode on인 상태에서 계획부터 받았나요?계획을 승인하기 전에 고칠 파일과 고치지 말아야 할 파일을 확인했나요?
스크립트 실행이라면
--permission-mode를 직접 적었나요?테스트 명령이 승인 대기로 막히지 않도록 허용해 두었나요?
측정 조건과 한계
측정은 맥 한 대(darwin arm64, Node.js v22.23.1)에서 Claude Code 2.1.309로 했고, 모델은 claude-opus-5-5였습니다. 사용자 설정과 MCP 서버는 불러오지 않았습니다(--setting-sources project, --strict-mcp-config). 모드마다 원본 과제 폴더를 새로 복사해 썼습니다.
모드마다 한 번씩만 돌렸기 때문에 걸린 시간과 답의 내용은 실행할 때마다 달라질 수 있습니다. 대화형 세션의 계획 승인 흐름과 auto 모드는 이번 측정에 들어가지 않았습니다. 내 저장소에서 확인하려면 폴더를 복사해 두고 같은 명령을 모드만 바꿔 돌려 보세요.
참고 자료
- Choose a permission mode code.claude.com
- Common workflows code.claude.com