이 페이지의 목차
확인 2026-10-21근거 자료 5건갱신 2026-10-26언급 23곳
이 페이지의 목차
확인 날짜 안내

공식 문서 "All settings" Claude Code 설정 키 전체 레퍼런스(본문 날짜 없음, 서버 Last-Modified 2026-10-20, 수집 2026-10-21) 기준이다. 키 이름·타입·기본값은 원본 표기를 그대로 옮겼다. 키와 버전 조건은 몇 주 단위로 바뀌므로 대외 자료·실제 배포 전에 공식 문서를 다시 확인한다.

Claude Code의 settings.json(Claude Code 설정 파일, 용어 사전) 키 중 에이전트 활용과 관리자 통제에 쓰는 것을 주제별 표로 모은 찾아보기 페이지다. 어느 파일에 둘지와 우선순위는 Claude Code 설정 파일, 조직 배포는 managed settings, 관리자 질문별 근거는 Claude Code 관리자 권한 통제에 있다.

이 페이지에 담은 범위#

원본 색인 표는 키 245개(global config 포함)를 싣는다. 이 페이지는 다음 기준으로 골랐다.

  • 담았다: 권한·자동 모드, 샌드박스의 강제·잠금 키, 훅, 플러그인·스킬·마켓플레이스, MCP, 모델 선택·잠금, 메모리·컨텍스트(CLAUDE.md, 자동 메모리, 컴팩션, env, 스킬 목록 예산), 서브에이전트·세션, 그리고 조직 관리자용(Scope Managed) 키와 감사·데이터 보존에 닿는 키.
  • 뺐다: 터미널 표시·입력 키(theme, tui, spinner 계열, voice, editorMode, timeFormat, statusLine 등), ~/.claude.json에만 두는 global config 키 12개, 데스크톱 앱 전용 키(Browser pane·iOS Simulator·SSH 세션·disableDesktopLocalSessions·worktree.location), 샌드박스 자격 증명 mask 세부 필드와 AWS 재서명·프록시·Unix 소켓 세부, 마켓플레이스 출처 매칭 세부 규칙, 클라우드 제공자 인증 helper(awsAuthRefresh 등)와 게이트웨이 로그인 키, 알림·원격 제어 표시 키, fast mode·advisor·modelPicker·modelOverrides·prompt cache 키. 없어졌거나 대체된 키는 마지막 절에 이름만 적었다.

Scope 읽는 법#

Scope 표기뜻
Any fileuser ~/.claude/settings.json, project .claude/settings.json, local .claude/settings.local.json, managed 넷 다
User or manageduser와 managed. --settings를 읽는지는 키마다 다르다. 저장소 파일 값은 받지 않는 것이 원칙이고 항목별 예외가 있다(예: autoContinueAtUsageLimit은 project·local 값이 기능을 끈다)
User, local, or managed공유 .claude/settings.json 값만 받지 않는다
Managed조직이 배포한 출처에서만. 다른 곳에 두면 무시한다(키에 따라 경고를 낸다)
Global config~/.claude.json에만. settings.json에 두면 무시

Any file 키 중에도 항목의 Scope 줄이 따로 제한을 붙인 것이 많다(예: "a repository can turn the block on for itself but can't lift yours"). 아래 표의 Scope 칸에 그 제한을 함께 적었다. Claude Code 설정 키 전체 레퍼런스

1. 권한·자동 모드#

규칙 문자열 자체의 문법(Tool(specifier), Bash 와일드카드, 경로 패턴 //·~/·/·./, 도구별 규칙)은 공식 권한 문서(2026-10-21) 기준으로 Claude Code 권한 규칙 문법에, 공유 파일의 allow·additionalDirectories가 신뢰 뒤 적용되는 규칙은 작업 공간 신뢰에 있다.

키타입기본값Scope하는 일·조건
permissionsobject(allow, ask, deny, additionalDirectories, blockReadsOutsideWorkingDirectories, defaultMode, disableBypassPermissionsMode, disableAutoMode)unsetAny file규칙 평가는 deny → ask → allow, 구체성과 상관없이 처음 맞는 규칙이 정한다
permissions.allow규칙 문자열 배열unsetAny file. 공유 .claude/settings.json의 규칙은 그 폴더의 작업 공간 신뢰를 수락한 뒤 적용묻지 않고 승인. --allowedTools가 한 세션 더하지만 어느 파일의 deny든 여전히 막는다. MCP 규칙의 *는 mcp__<server>__ 뒤 도구 이름에만
permissions.ask규칙 문자열 배열unsetAny fileacceptEdits·bypassPermissions처럼 승인하던 모드에서도 묻는다. dontAsk에서는 묻지 않고 거부
permissions.deny규칙 문자열 배열unsetAny file맞는 파일을 탐색·검색 결과에서 빼고 읽기·Edit·Write를 막는다. 한계: Read·Edit deny는 내장 파일 도구, Claude Code가 알아보는 Bash 파일 명령(cat·head·tail·sed·tee), 리디렉션 대상에만 적용되고 grep -r pattern .이나 임의 하위 프로세스에는 적용되지 않는다(OS 수준 강제는 샌드박스). Bash(curl *)는 /usr/bin/curl·sh -c 'curl …'을 막지 않는다. "*"는 모든 도구, "mcp__*"는 모든 MCP 도구. --disallowedTools가 한 세션 더한다
permissions.additionalDirectories경로 배열unsetAny file. 공유 파일 항목은 폴더 신뢰 뒤시작 디렉터리 밖에 파일 접근을 준다. 그 디렉터리의 .claude/ 구성은 대부분 찾지 않는다. --add-dir·/add-dir가 한 세션 더한다
permissions.blockReadsOutsideWorkingDirectoriesBooleanunsetAny file. 어느 파일의 true든 적용(저장소는 켤 수만 있고 내 true를 못 푼다)bypassPermissions 포함 모든 모드에서 Read·Grep·Glob·LSP가 작업 디렉터리 밖 읽기를 거부한다. 셸 명령은 같은 방식으로 거부하지 않는다(확인 창·샌드박스가 따로 다룸). 풀려면 모든 파일에서 지우고 새 세션. v2.1.257 이상
permissions.defaultMode"default", "acceptEdits", "plan", "auto", "dontAsk", "bypassPermissions", "manual"(default의 별칭)unset(인터페이스별 내장 기본)Any file. 단 auto·bypassPermissions는 project·local에서 효과 없음(v2.1.257 전에는 bypassPermissions가 어느 파일에서든 효과). VS Code 확장이 시작한 대화는 user·managed·--settings 값만 읽음새 세션의 시작 모드. --permission-mode·--dangerously-skip-permissions가 한 세션 우선한다. 클라우드 세션은 acceptEdits·plan·default·auto만 따른다
disableAutoMode문자열 "disable"unsetAny file. managed에 두면 사용자가 덮어쓰지 못한다. permissions.disableAutoMode로도 받는다Shift+Tab 순환에서 자동 모드를 뺀다. --permission-mode auto, 설정 파일, 내장 기본값 어느 쪽으로든 자동 모드로 시작하려던 세션이 default로 시작한다
permissions.disableBypassPermissionsMode문자열 "disable"unsetAny file(보통 managed)bypassPermissions 진입을 막는다. --dangerously-skip-permissions를 거부하고, 에이전트 정의의 permissionMode: bypassPermissions를 무시해 부모 세션 모드로 돌린다(v2.1.223 전에는 frontmatter 모드가 적용됐다)
allowManagedPermissionRulesOnlyBooleanunsetManagedtrue면 user·project·local·--settings의 allow·ask·deny와 --allowedTools를 무시하고, 상시 허용 선택지를 숨기고 새 규칙을 저장하지 않는다. --disallowedTools와 그 세션의 deny·ask는 계속 적용(v2.1.257 전에는 첫 설정 재로드에서 버려짐). v2.1.282 이상은 저장소 .claude/, ~/.claude/skills/·commands/(claude.ai 동기화 스킬 포함), --add-dir의 스킬 allowed-tools도 무시. MCP 허용 목록은 잠그지 않는다
autoModeobject(environment, allow, soft_deny, hard_deny 문장 배열, classifyAllShell)unset(분류기 내장 규칙만)User or managed자동 모드 분류기에 규칙을 더한다. 배열에 "$defaults"를 넣으면 그 자리에 내장 규칙을 두고, 빼면 내장 규칙을 대체한다. 여러 파일이 같은 배열을 두면 이어 붙인다
autoMode.classifyAllShellBooleanfalseUser or managedtrue면 자동 모드 동안 모든 Bash·PowerShell 명령을 분류기로 보내고 셸 허용 규칙을 정지한다. 기본(false)은 Bash(*)·Bash(python *) 같은 임의 코드 실행 규칙만 정지해, Bash(npm test) 같은 좁은 허용 규칙에 맞는 명령은 분류기를 건너뛴다. v2.1.193 이상
useAutoModeDuringPlanBooleantrueUser, local, or managed(저장소가 끄지 못함)plan 모드에서 자동 모드를 쓸 수 있으면 분류기가 셸 명령을 검토해 묻지 않는다(치명 경로 삭제 제외). false면 읽기 전용 집합 밖 명령마다 묻는다. 허용된 파일 어디든 false면 꺼진다
skipAutoPermissionPromptBooleanunsetUser or managed자동 모드에 직접 들어갈 때 한 번 보이는 안내를 건너뛴다
skipDangerousModePermissionPromptBooleanunsetUser, local, or managed(신뢰하지 않은 저장소가 건너뛰게 할 수 없음)bypassPermissions 진입 전 확인 대화상자를 건너뛴다. 대화상자를 한 번 수락하면 user 설정에 true가 저장된다

autoMode 두 줄 보충(공식 자동 모드 설정 문서, 2026-10-21 기준): 분류기는 autoMode를 ~/.claude/settings.json, managed settings, --settings 플래그·Agent SDK의 인라인 JSON에서 읽고, 프로젝트 .claude/settings.json·.claude/settings.local.json에서는 읽지 않는다(저장소가 allow 규칙을 주입하지 못하게). 범위별 항목은 합쳐지고 개발자는 managed 항목을 지우지 못하지만, 개발자의 allow가 조직의 soft_deny를 넘을 수 있어 "not a hard policy boundary"다. classifyAllShell의 기본(false)에서도 Monitor를 이름으로 대는 규칙은 정지되고, true여도 치명 경로 삭제는 예외다. 배열 항목은 자연어 문장이고, "$defaults"를 빼면 그 섹션의 내장 목록 전체가 사라진다. 형식·원본 예시·우선순위는 Claude Code 자동 모드 설정하기. Claude Code 자동 모드 설정

원본 예:

json
{
  "permissions": {
    "allow": ["Bash(npm run *)"],
    "ask": ["Bash(git push *)"],
    "deny": ["Read(./.env)"],
    "defaultMode": "acceptEdits"
  }
}

2. 샌드박스 (강제·잠금 키)#

키타입기본값Scope하는 일·조건
sandbox.enabledBooleanfalseAny file(project·local에 제한)Bash 명령을 파일 시스템·네트워크에서 격리(macOS·Linux·WSL2). /sandbox에서 모드를 고르면 local 파일에 쓴다. 샌드박스가 못 뜨면 failIfUnavailable이 없는 한 샌드박스 없이 돌린다. Linux·WSL2는 bubblewrap·socat 필요
sandbox.failIfUnavailableBooleanfalseAny file(project·local에 제한)enabled인데 샌드박스가 못 뜨면 시작 때 오류로 종료
sandbox.autoAllowBashIfSandboxedBooleantrueAny file샌드박스 안 명령은 묻지 않는다. deny와 내용을 지정한 ask(Bash(git push *))는 여전히 적용, 맨 Bash ask 규칙은 샌드박스 명령에 건너뛴다
sandbox.excludedCommands명령 패턴 배열unsetAny file(project·local에 제한)샌드박스 밖에서 돌릴 명령. 원본: "Exclusion is a convenience, not a security boundary". 관리자 필수 샌드박스에서는 저장소 파일(.claude/settings.json·.claude/settings.local.json) 항목을 무시한다(샌드박스 문서 기준 v2.1.282 이상, Claude Code 샌드박스). 단 managed·--settings·user 파일 항목은 계속 적용되고, 이 목록을 managed로만 잠그는 키는 없다
sandbox.allowUnsandboxedCommandsBooleantrueAny file(project·local에 제한)false면 막힌 명령을 dangerouslyDisableSandbox로 다시 돌리는 길을 닫는다(strict sandbox mode). managed·--settings의 false는 샌드박스를 관리자 필수로 만든다. user false가 project true를 이기는 것은 v2.1.285 이상
sandbox.filesystem.denyRead경로 배열unset(자격 증명 파일 포함 나머지 읽기 허용)Any file샌드박스 명령의 읽기를 막는다. 모든 범위에서 합치고 Read(...) deny 규칙도 더한다. filesystem.disabled: true면 강제하지 않는다
sandbox.filesystem.allowManagedReadPathsOnlyBooleanfalseManagedmanaged의 allowRead만 인정해 개발자가 막힌 읽기 경로를 다시 열지 못하게 한다
sandbox.filesystem.disabledBooleanfalseUser or managed(managed가 sandbox.filesystem을 두거나 credentials.files deny가 있으면 managed만)파일 격리를 끄고 네트워크 격리만 남긴다. v2.1.216 이상
sandbox.credentialsobject(files, envVars, …)unset(보호 없음, 내장 차단 목록도 없음)Any file. mask·allowPlaintextInject·awsPairs·sigv4는 user·managed·--settings만자격 증명 파일·환경 변수를 샌드박스 명령에서 숨기거나(deny) 가린다(mask)
sandbox.network.allowedDomains도메인 배열unset(권한 모드가 새 호스트를 정함)Any file(project·local에 제한). allowManagedDomainsOnly면 managed만샌드박스 명령의 외부 접속을 미리 허용
sandbox.network.allowManagedDomainsOnlyBooleanfalseManagedmanaged allowedDomains·WebFetch(domain:...) 허용 규칙만 인정하고 그 밖 도메인은 묻지 않고 막는다. deniedDomains는 모든 출처에서 합친다. 켜지면 샌드박스가 관리자 필수가 된다
sandbox.network.strictAllowlistBooleanfalseUser or managed(저장소가 켜고 끄지 못함)허용 목록 밖 호스트를 묻지 않고 거부. 샌드박스 명령에만 적용되고 WebFetch는 권한 규칙을 따른다. v2.1.219 이상

managed가 enabled·failIfUnavailable 같은 Boolean을 두면 개발자 값을 덮고, 배열 키는 범위끼리 합쳐 개발자가 항목을 더할 수 있다. 원본 예: managed에 "sandbox": {"enabled": true, "failIfUnavailable": true}를 두면 모든 관리 기기가 샌드박스로 명령을 돌리거나 시작을 거부한다.

공식 Sandboxing 문서로 확인·보강 (2026-10-21 기준). 위 표의 키를 샌드박스 전용 문서가 같은 내용으로 확인하고, 다음을 더한다. 개념과 한계는 샌드박스, 설정 절차와 원문 예시는 Claude Code 샌드박스 설정하기. Claude Code 샌드박스

  • 적용 대상: sandbox.enabled가 감싸는 것은 Bash만이 아니라 Bash·PowerShell·Monitor 명령과 그 하위 프로세스다. Read·Edit·WebFetch 같은 내장 도구, 훅, 로컬 MCP 서버, ! 셸 모드에 직접 친 명령(대부분의 세션)은 샌드박스 밖에서 돈다.
  • sandbox.failIfUnavailable: 샌드박스 문서도 기본이 fail open(샌드박스 없이 실행)이라고 확인한다. Windows 네이티브에서는 샌드박스가 돌지 않으므로 이 키가 켜져 있으면 시작 때 종료한다.
  • sandbox.autoAllowBashIfSandboxed: deny 규칙과 내용 지정 ask 규칙 외에도, 치명 경로를 겨냥한 rm·rmdir, Monitor 명령, 실행 프로그램이 바뀔 수 있는 명령(FOO=bar npm test, make CC=clang, eval "ls")은 자동 승인되지 않는다. 맨 Bash ask 규칙은 plan 모드에서는 건너뛰지 않는다. 명령에 맞는 allow 규칙은 그 명령의 샌드박스 밖 재시도도 승인한다.
  • sandbox.excludedCommands: 패턴은 Bash(...) 규칙 문법이라 *로 끝내야 인자 있는 호출에 맞고, 호출 안의 모든 명령이 맞아야 하며, 명령 줄 텍스트만 맞춘다(스크립트 안의 호출, /usr/local/bin/docker는 안 맞음). 리디렉션·cd·$(...)가 있으면 호출 전체가 샌드박스에 남는다. 제외된 명령은 파일 제한도 네트워크 프록시도 없이 전체 권한으로 돌고 일반 권한 흐름을 탄다. 이 문서도 관리자 필수 샌드박스에서는 저장소 파일 항목만 무시한다고 확인한다(v2.1.285 이상, v2.1.282~v2.1.284는 같은 설정이 저장소 excludedCommands만 무시).
  • sandbox.allowUnsandboxedCommands: false면 dangerouslyDisableSandbox 파라미터를 무시한다. user false는 관리자 필수를 만들지 않으므로 저장소의 다른 샌드박스 설정은 계속 적용된다. 재시도 승인 주체는 권한 모드가 정한다(bypassPermissions 묻지 않음, Manual·acceptEdits 확인 창, 자동 모드 분류기, dontAsk 거부).
  • 관리자 필수 샌드박스에서 저장소 파일이 무시되는 설정(v2.1.285 이상. v2.1.282~v2.1.284는 excludedCommands만, Claude Code 샌드박스): excludedCommands, ignoreViolations, network.allowedDomains·allowUnixSockets·allowMachLookup·httpProxyPort·socksProxyPort의 모든 항목, filesystem.allowWrite·Edit(...) allow·additionalDirectories가 샌드박스 명령에 주는 쓰기, WebFetch(domain:...) allow가 더하는 호스트, 약화 키 4개의 true, 개발자가 true로 둔 enabled·failIfUnavailable의 false, managed·--settings·user가 읽기를 막은 경로나 그 아래를 가리키는(또는 그런 경로에 맞을 수 있는 glob) filesystem.allowRead 항목. 저장소의 deny 항목과 autoAllowBashIfSandboxed 값은 계속 적용된다.
  • 문서가 더 다루는 키(표에 없는 것): filesystem.allowWrite·denyWrite·allowRead, network.deniedDomains, network.tlsTerminate(실험), network.httpProxyPort·socksProxyPort, network.allowLocalBinding, network.allowAllUnixSockets, enableWeakerNestedSandbox, enableWeakerNetworkIsolation, allowAppleEvents(프로젝트 설정에서 켤 수 없음). 각 키의 조건은 Claude Code 샌드박스 설정하기.

3. 훅·자동화#

키타입기본값Scope하는 일·조건
hooks이벤트별 객체({matcher, hooks} 그룹 배열, 핸들러 type은 command·prompt·agent·http·mcp_tool)unsetAny file. 파일끼리 합쳐지고, managed 훅은 다른 파일이 지우지 못한다생명주기 지점에서 명령 등을 실행 → 훅
allowManagedHooksOnlyBooleanunsetManagedtrue면 managed 훅, Agent SDK 훅, managed enabledPlugins로 강제 활성화한 플러그인의 훅(plugin@marketplace 전체 ID 일치)만 돈다. user·project·local 훅, 다른 플러그인의 훅·mod, 에이전트 frontmatter 훅은 막힌다. 내장 mod는 계속 돈다. disableCommandPluginSources를 false로 두지 않으면 command 출처 플러그인과 마켓플레이스 headersHelper도 막힌다. 상태줄·파일 제안은 managed 값만. /goal은 돌지 않는다
disableAllHooksBooleanunsetAny file. managed 훅은 managed만 끈다훅, 커스텀 상태줄, 커스텀 @ 파일 제안을 한꺼번에 끈다. managed에 두면 managed 훅까지 끄고 Agent SDK 훅만 남긴다(v2.1.242 이상). 다른 파일에 두면 user·project·local·플러그인 훅을 끄고 managed·SDK·강제 활성화 플러그인 훅은 남는다. mod도 멈춘다: managed에 두면 조직 mod까지 모든 설치 mod가, 다른 파일에 두면 내가 설치한 mod만 멈추고 조직 mod는 계속 돈다. 내장 mod는 어느 경우에도 계속 돈다. /goal은 돌지 않는다
allowedHttpHookUrlsURL 패턴 배열unset(모든 URL)Any file, 배열 합침HTTP 훅이 보낼 수 있는 URL. 빈 배열은 모든 HTTP 훅을 막는다. managed 포함 모든 출처 훅에 적용
httpHookAllowedEnvVars변수 이름 배열unset(각 훅의 allowedEnvVars)Any file, 배열 합침HTTP 훅 헤더에 넣을 수 있는 환경 변수의 바깥 한도. 훅 자신의 목록과 이 키 둘 다에 있어야 쓴다
disableWorkflowsBooleanfalseAny file동적 워크플로와 번들 워크플로 명령을 끈다. CLAUDE_CODE_DISABLE_WORKFLOWS와 어느 쪽이 끄든 다른 쪽이 다시 켜지 못한다

4. 플러그인·스킬·마켓플레이스#

키타입기본값Scope하는 일·조건
enabledPluginsplugin@marketplace → Booleanunset(플러그인의 defaultEnabled)Any filemanaged false는 모든 범위에서 설치를 막고 마켓플레이스에서 숨긴다. project가 user보다 우선하므로 프로젝트가 켠 플러그인을 내 기기에서만 끄려면 local에 false. 외부 출처 플러그인은 project에서 켜도 각자 설치해야 한다
extraKnownMarketplaces이름 → {source, autoUpdate}unsetAny file. 저장소 파일 항목은 폴더 신뢰 뒤(신뢰 전·그 폴더의 -p 실행에서는 메시지 없이 무시)마켓플레이스를 이름으로 등록. 같은 이름이 여러 파일에 있으면 가장 높은 파일의 항목을 통째로 쓴다(v2.1.228 이상). 별칭 additionalMarketplaces(v2.1.232 이상)
strictKnownMarketplaces출처 객체 배열unset(어떤 마켓플레이스든 추가 가능)Managed추가·설치·업데이트·새로고침·자동 업데이트 때 네트워크·파일 작업 전에 검사. 빈 배열은 공식 Anthropic 마켓플레이스까지 막는 완전 잠금. 정책 게이트일 뿐 등록은 하지 않는다. 어떤 허용 목록이든 ~/.claude/skills/의 @skills-dir 플러그인 로드를 멈춘다({"source": "skills-dir"} 항목으로 유지). 별칭 allowedMarketplaces
blockedMarketplaces출처 객체 배열unsetManaged마켓플레이스 출처 차단. 정책 전에 추가된 마켓플레이스로도 플러그인을 받지 못한다. 다운로드 전에 검사한다. owner 와일드카드("owner/*")는 v2.1.223 이상
strictPluginOnlyCustomizationtrue 또는 "skills"·"agents"·"hooks"·"mcp" 배열unsetManageduser·project 출처의 해당 커스터마이징을 막고 플러그인·managed 출처만 남긴다. 모르는 이름은 무시
disableCommandPluginSourcesBooleanunset(allowManagedHooksOnly를 따름)Managed마켓플레이스가 선언한 명령을 실행해 설치하는 command 출처 플러그인을 막는다. v2.1.229 이상, headersHelper 차단은 v2.1.238 이상
disableSkillShellExecutionBooleanunsetAny file. managed true는 다른 곳의 false로 덮지 못함user·project·플러그인·추가 디렉터리 스킬과 커스텀 명령의 인라인 셸(!`...`)을 [shell command execution disabled by policy]로 바꾼다. 번들 스킬과 managed 배포 스킬은 영향 없음
disableBundledSkillsBooleanunsetAny file번들 스킬·워크플로를 없애고 /init 같은 내장 명령은 입력은 되지만 모델에 숨긴다
skillOverrides스킬 이름 → "on"·"name-only"·"user-invocable-only"·"off"unset(모두 "on")Any file. /skills 메뉴는 local 파일에 쓴다SKILL.md를 고치지 않고 스킬을 숨기거나 이름만 보이게. 플러그인 스킬에는 적용되지 않는다
syncClaudeAiSkills, syncClaudeAiPluginsBoolean(false만 의미)unset(동기화)User, local, or managed와 --settings(저장소가 끄지 못함)claude.ai 계정의 스킬·플러그인 다운로드와 로드를 멈춘다. user·managed에 두면 이미 받은 것을 .trash/로 옮긴다. 플러그인 쪽은 v2.1.273 이상

5. MCP#

키타입기본값Scope하는 일·조건
allowedMcpServersserverName·serverCommand·serverUrl 중 하나를 가진 객체 배열unset(모두 허용). 빈 배열은 사용자가 추가하는 모든 서버를 막음Any file. allowManagedMcpServersOnly가 없으면 모든 파일 합침(강제는 managed)플러그인·--mcp-config·claude.ai 서버까지 목록 밖이면 막는다. 허용 목록 예외: 내장 서버(Claude in Chrome, IDE의 ide), Claude Tag 세션의 Slack 도구(v2.1.268 이상), 조직이 준 서버(managedMcpServers 전부, ${VAR}를 쓰지 않는 managed-mcp.json 항목). 이 예외들에도 차단 목록은 적용된다. type: "sdk" 서버는 두 목록 모두 예외
deniedMcpServers같은 형식unsetAny file. 모든 파일 합침허용 목록보다 우선. managed-mcp.json·managedMcpServers·claude.ai 커넥터도 막는다. sdk 서버는 예외
allowManagedMcpServersOnlyBooleanfalseManagedmanaged allowedMcpServers만 읽는다. 사용자는 서버를 추가할 수 있지만 managed 허용 목록에 맞는 것만 로드된다
disableClaudeAiConnectorsBooleanfalseAny file. 어느 파일의 true든 적용Claude Code가 스스로 가져오는 claude.ai 커넥터를 가져오지도 연결하지도 않는다. --mcp-config로 준 서버는 영향 없음
enableAllProjectMcpServersBooleanunset(서버마다 승인 요청)Any file. 신뢰하지 않은 폴더에서는 공유 project 파일 값을 무시프로젝트 .mcp.json의 서버를 모두 묻지 않고 승인. disabledMcpjsonServers가 우선
managedMcpServers서버 이름 → http·sse 항목(https:// url 필수)unsetManaged모든 사용자에게 원격 MCP 서버를 준다. 사용자가 편집·제거할 수 없다. 서드파티 배포의 Claude Desktop Code 탭과 Cowork 세션은 이 키를 읽지 않는다. v2.1.259 이상
allowAllClaudeAiMcpsBooleanfalseManaged배포한 managed-mcp.json이 claude.ai 커넥터를 억제하지 않고 함께 로드하게 한다

6. 모델 선택과 잠금#

키타입기본값Scope하는 일·조건
model별칭 또는 전체 모델 IDunset(계정 기본 모델)Any file새 세션의 시작 모델. 세션 중 전환을 막지 않는다. --model > ANTHROPIC_MODEL > 이 키(managed model 포함). availableModels는 여전히 적용
availableModels별칭·ID 배열unset(모든 모델)Any file(조직 강제는 managed)메인 세션·서브에이전트·스킬·advisor의 모델 선택을 제한. 기본 prefix 매칭에서는 Default 선택을 건드리지 않는다(enforceAvailableModels와 함께). "claude-opus-5"는 이후 버전(Opus 5.5)도 허용
availableModelsMatch"prefix"·"exact""prefix"Managed(다른 곳은 경고와 함께 무시)"exact"면 ID 항목이 적힌 버전만 허용. v2.1.283 이상
deniedModels별칭·ID 배열unsetManaged(다른 곳은 경고와 함께 무시)허용 목록이 허용해도 막고 /model에서 숨긴다. Default 선택 세션도 막힌 모델로 돌지 않는다. v2.1.283 이상
enforceAvailableModelsBooleanfalseAny file. managed가 하나라도 배포되면 managed에서만 읽음Default가 허용 목록 밖으로 풀리면 목록의 첫 모델로. v2.1.175 이상
effortLevel"low"·"medium"·"high"·"xhigh"unsetAny file저장한 수준이 없는 모델의 기본 effort. --effort가 이 키보다, CLAUDE_CODE_EFFORT_LEVEL이 둘 다보다 우선. v2.1.251부터 /effort는 modelSettings에 저장. user 파일의 이 키는 Opus 5.5 이후 모델에 무시된다
maxEffortLevel"low"~"max"("max"는 상한 없음)unsetAny file. 여러 범위가 두면 가장 낮은 상한플래그·변수·frontmatter·모델 기본값보다 높은 effort를 상한으로 내린다. 요청 전에 Claude Code가 적용해 모든 제공자에서 유지. v2.1.267 이상
outputStyle내장·커스텀 스타일 이름unset(기본 스타일)Any file세션 중 바꾸면 다음 메시지부터 새 스타일(v2.1.251 전에는 /clear나 새 세션 뒤) → 출력 스타일
language언어 이름 문자열unsetAny file응답 언어 지시로 그대로 전달. 값을 검증하지 않는다

7. 메모리·컨텍스트#

키타입기본값Scope하는 일·조건
claudeMd문자열(CLAUDE.md 본문, 줄바꿈은 \n)unsetManaged파일 없이 조직 메모리를 넣는다. user·project CLAUDE.md보다 앞에 managed 메모리로 로드 → 메모리(CLAUDE.md)
claudeMdExcludesglob·절대 경로 배열unset(찾은 CLAUDE.md 모두 로드)Any file특정 CLAUDE.md를 건너뛴다(절대 경로에 맞춤). managed 정책 CLAUDE.md는 뺄 수 없다
autoMemoryEnabledBooleantrueAny filefalse면 자동 메모리 디렉터리를 읽지도 쓰지도 않는다. CLAUDE_CODE_DISABLE_AUTO_MEMORY가 양방향으로 우선하고, --bare·safe mode도 끈다 → 자동 메모리(Auto memory)
autoMemoryDirectory절대 경로나 ~/ 경로unset(~/.claude/projects/<project>/memory/)Any file. project·local 값은 훅과 같은 작업 공간 신뢰 규칙을 따름자동 메모리 저장 위치
autoCompactEnabledBooleantrueAny file자동 컴팩션. DISABLE_AUTO_COMPACT와 어느 쪽이 끄든 다른 쪽이 켜지 못한다. 꺼도 /compact는 된다. 끄면 idle compaction도 꺼진다
autoCompactWindow토큰 수 100000~1000000unset(모델별 조정값)Any file컴팩션 시점. --autocompact가 이 키보다, CLAUDE_CODE_AUTO_COMPACT_WINDOW가 둘 다보다 우선(변수 값이 무시되는 경우 제외). /autocompact는 modelSettings에 저장
idleCompactionBooleantrueAny file자리를 비운 긴 대화를 프롬프트 캐시 만료 직전에 컴팩션. 조건: 대화형 터미널, 1시간 캐시, 기능 플래그 조회 가능, 기본 200,000토큰 이상, 약 54분 유휴. v2.1.290 이상
env변수 → 문자열unsetAny file. project·local은 일부 변수(설정·임시 디렉터리, 세션 내용 내보내기, 텔레메트리 내보내기, 시작·동기화 방식 등)를 둘 수 없다모든 세션과 하위 프로세스에 변수를 준다. 값은 설정 파일에 평문이다. project·local 값은 작업 공간 신뢰 뒤(-p는 시작 때) 적용
fileCheckpointingEnabledBooleantrueAny file편집 전 스냅숏(/rewind). -p·Agent SDK에서는 무시
skillListingBudgetFraction0 초과 1 이하0.01(컨텍스트 창 1%)Any file스킬 목록 예산. 넘치면 덜 쓰는 스킬의 설명부터 뺀다(이름은 남음) → 스킬
skillListingMaxDescChars양의 정수1536Any file스킬당 description+when_to_use 표시 상한
bashOutputMaxChars양의 정수(4000~128000으로 고정)unset(30,000자)Any file성공한 셸 명령 출력 중 인라인으로 받는 양. 넘으면 파일로 저장하고 미리보기만. v2.1.261 이상
plansDirectory프로젝트 루트 기준 경로unset(~/.claude/plans)Any fileplan 모드 계획 파일 위치. 루트 밖이면 기본 위치로

8. 서브에이전트·세션#

키타입기본값Scope하는 일·조건
agent내장·커스텀 에이전트 이름unsetAny file. 플러그인의 settings.json도 줄 수 있음메인 스레드를 그 서브에이전트(프롬프트·도구 제한·모델)로 돌린다. --agent가 한 세션 우선 → 서브에이전트
subagentPromptCacheTtl"5m"·"1h"unsetAny file서브에이전트·워크플로·컴팩션 같은 메인 대화 밖 요청의 캐시 수명. v2.1.242 이상
disableAgentViewBooleanunsetAny file(조직 강제는 managed)백그라운드 에이전트와 agent view(claude agents, --bg, /background)를 끈다
worktree.bgIsolation"worktree"·"none""worktree"Any file백그라운드 세션이 EnterWorktree 전까지 메인 체크아웃에서 Edit·Write를 못 하게 한다. /background로 옮긴 세션은 이 키와 상관없이 제자리에서 편집

9. 조직 관리·감사·데이터#

키타입기본값Scope하는 일·조건
allowedProviders"anthropic", "bedrock", "vertex", "foundry", "anthropicAws", "mantle", "customEndpoint", "gateway" 배열unset(모든 제공자)Managed목록 밖 제공자는 시작·로그인·다음 API 호출 때 거부. 빈 목록이나 전부 인식 못 하는 목록이면 그 기기에서 시작하지 않는다. v2.1.285 이상
forceLoginMethod"claudeai"·"console"·"gateway"unsetAny file("gateway"는 일부 출처만)로그인 계정 종류 제한. 터미널 대화형 로그인 화면은 미리 선택만 하고 강제하지 않는다
forceLoginOrgUUIDUUID 또는 배열unsetAny file. 강제는 managed 출처만claude.ai 로그인을 조직으로 제한. 다른 파일의 단일 UUID는 미리 선택만
requiredMinimumVersion, requiredMaximumVersion버전 문자열unsetManaged(다른 곳은 경고 없이 무시)범위 밖 버전은 시작 때 종료. 검사는 시작 때만. claude update·install·doctor는 계속 된다. v2.1.163 이상
minimumVersion, autoUpdatesChannel버전 문자열, "latest"·"stable"unset(latest)Any file자동 업데이트가 설치할 하한과 채널. 시작을 막지는 않는다
modelPricingmultiplier, overridesunset(정가)Managed비용 표시를 계약 단가로. 단가는 직접 넣는다. v2.1.242 이상, 1 초과(할증)는 v2.1.271 이상
disableSideloadFlagsBooleanfalseManaged--plugin-dir·--plugin-url·--agents·--mcp-config를 시작 때 거부. claude mcp add나 .mcp.json은 막지 않으므로 allowedMcpServers를 함께 둔다. 클라우드 세션은 거부 대신 서버가 넘긴 --mcp-config 항목을 버린다. v2.1.193 이상
forceRemoteSettingsRefreshBooleanfalseManaged(어느 관리자 출처의 true든)서버 관리 설정을 새로 받을 때까지 시작을 막고 실패하면 종료(fail closed). 서버 관리 설정을 받지 않는 세션에는 적용되지 않는다
managedSourcesBehavior"first-wins"·"merge""first-wins"Managed(가장 높은 출처에서만 읽음)관리 출처를 합칠지. merge 표는 managed settings. v2.1.242 이상
parentSettingsBehavior"first-wins"·"merge""first-wins"Managed임베딩 호스트가 넘긴 설정을 제한 값만 걸러 적용할지
policyHelper{path, timeoutMs, refreshIntervalMs}unsetManaged(plist·HKLM·관리 파일만)시작 때 실행 파일로 정책 계산. 실패하면 시작 거부. timeoutMs 기본 10000·최소 1000, refreshIntervalMs는 0 또는 60000 이상
cleanupPeriodDays정수, 최소 130Any file세션 기록을 며칠 뒤 지울지. 메시지 없이 지우므로 기간이 지난 세션은 /resume에 없다. 0은 검증 실패
companyAnnouncements문자열 배열unsetAny file시작 때 조직 공지 표시
disableRemoteControlBooleanfalseAny file(기기별 강제는 managed)Remote Control 시작을 모두 거부
enableArtifactBoolean(false만 의미)unsetAny file. 어느 파일도 다시 켜지 못함Artifact 도구를 끈다
attributionobject(commit, pr, sessionUrl) 또는 falseunset(기본 표기)Any file커밋·PR 표기. managed에 둔 줄이 아니면 사용자의 CLAUDE.md·메모리 지시가 이 줄보다 우선한다고 Claude에게 알린다. false는 v2.1.281 이상
includeGitInstructionsBooleantrueAny file내장 커밋·PR 지시와 git 상태 스냅숏을 컨텍스트에 넣을지
apiKeyHelper셸 명령unsetAny file. project·local의 명령은 대화형 세션에서 작업 공간 신뢰 뒤 실행모델 요청에 보낼 자격 증명을 명령으로 만든다(기본 5분 캐시)

없어졌거나 대체된 키 (2026-10-21 기준)#

taskOutputMaxChars(v2.1.277에서 제거), teammateDefaultModel(v2.1.234 제거), permissionExplainerEnabled(v2.1.257 제거), keybindingFlavor(v2.1.261부터 효과 없음), includeCoAuthoredBy(→ attribution), voiceEnabled(→ voice), disableArtifact(→ enableArtifact). Claude Code 설정 키 전체 레퍼런스

관련#