SpyBara
Go Premium

Documentation 2026-10-07 23:59 UTC to 2026-10-08 21:58 UTC

70 files changed +2,281 −1,615. View all changes and history on the product overview
2026
Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

126 126 

127출력 스타일은 [frontmatter](/docs/ko/output-styles#frontmatter)에 메타데이터가 있는 마크다운 파일이며, 그 뒤에 프롬프트 내용이 있습니다. 모든 프로젝트에서 사용 가능한 사용자 수준 스타일의 경우 `~/.claude/output-styles/`에 저장하거나, 팀과 커밋하고 공유할 수 있는 프로젝트 수준 스타일의 경우 저장소의 `.claude/output-styles/`에 저장하십시오.127출력 스타일은 [frontmatter](/docs/ko/output-styles#frontmatter)에 메타데이터가 있는 마크다운 파일이며, 그 뒤에 프롬프트 내용이 있습니다. 모든 프로젝트에서 사용 가능한 사용자 수준 스타일의 경우 `~/.claude/output-styles/`에 저장하거나, 팀과 커밋하고 공유할 수 있는 프로젝트 수준 스타일의 경우 저장소의 `.claude/output-styles/`에 저장하십시오.

128 128 

129사용자 정의 출력 스타일은 `claude_code` 프리셋의 소프트웨어 엔지니어링 명령을 자신의 명령으로 바꿉니다. 이를 유지하고 명령을 그 위에 계층화하려면, frontmatter에서 `keep-coding-instructions: true`를 설정하십시오. 이러한 명령은 Claude Code의 전체 시스템 프롬프트에만 있으므로, 이 설정은 [`CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT`](/docs/ko/env-vars#variables)로 켜거나 끌 수 있는 더 짧은 시스템 프롬프트의 세션에는 영향을 주지 않습니다. 에이전트가 여전히 소프트웨어 엔지니어링 작업을 수행할 때 이를 유지하십시오. 역할을 완전히 바꿀 때는 이를 제외하십시오.129사용자 정의 출력 스타일은 `claude_code` 프리셋의 소프트웨어 엔지니어링 명령을 자신의 명령으로 바꿉니다. 이를 유지하고 명령을 그 위에 계층화하려면, frontmatter에서 `keep-coding-instructions: true`를 설정하십시오. 이러한 명령은 Claude Code의 전체 시스템 프롬프트에만 있으므로, 더 짧은 시스템 프롬프트를 사용하는 세션에서는 이 설정이 효과가 없습니다. 모든 모델에서 전체 프롬프트를 선택하려면 [`CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT`](/docs/ko/env-vars#variables)를 `0`으로 설정하십시오. 에이전트가 여전히 소프트웨어 엔지니어링 작업을 수행할 때 이를 유지하십시오. 역할을 완전히 바꿀 때는 이를 제외하십시오.

130 130 

131아래 예제는 코딩 명령을 유지하는 코드 리뷰 담당자 페르소나를 정의합니다. 코드 리뷰는 Claude Code의 보안 및 코드 품질 지침의 이점을 여전히 얻기 때문입니다. 프로젝트 전체에서 사용 가능하도록 `~/.claude/output-styles/code-reviewer.md`로 저장하십시오:131아래 예제는 코딩 명령을 유지하는 코드 리뷰 담당자 페르소나를 정의합니다. 코드 리뷰는 Claude Code의 보안 및 코드 품질 지침의 이점을 여전히 얻기 때문입니다. 프로젝트 전체에서 사용 가능하도록 `~/.claude/output-styles/code-reviewer.md`로 저장하십시오:

132 132 


547| **관리** | 파일 시스템 | CLI + 파일 | 코드에서 | 코드에서 |547| **관리** | 파일 시스템 | CLI + 파일 | 코드에서 | 코드에서 |

548| **기본 도구** | 유지됨 | 유지됨 | 유지됨 | 손실됨(포함되지 않은 경우) |548| **기본 도구** | 유지됨 | 유지됨 | 유지됨 | 손실됨(포함되지 않은 경우) |

549| **기본 제공 안전** | 유지됨 | 유지됨 | 유지됨 | 추가해야 함 |549| **기본 제공 안전** | 유지됨 | 유지됨 | 유지됨 | 추가해야 함 |

550| **사용자 정의 수준** | 추가만 | 기본값 바꾸기 또는 확장 | 추가만 | 완전 제어 |550| **사용자 정의 수준** | 추가만 | 추가, 코딩 지침 생략 가능 | 추가만 | 완전 제어 |

551| **버전 제어** | 프로젝트와 함께 | 예 | 코드와 함께 | 코드와 함께 |551| **버전 제어** | 프로젝트와 함께 | 예 | 코드와 함께 | 코드와 함께 |

552| **범위** | 프로젝트별 | 사용자 또는 프로젝트 | 코드 세션 | 코드 세션 |552| **범위** | 프로젝트별 | 사용자 또는 프로젝트 | 코드 세션 | 코드 세션 |

553 553 

Details

2785 "description": str, # 작업의 짧은 설명 (3-5단어)2785 "description": str, # 작업의 짧은 설명 (3-5단어)

2786 "prompt": str, # 에이전트가 수행할 작업2786 "prompt": str, # 에이전트가 수행할 작업

2787 "subagent_type": str | None, # 사용할 특화된 에이전트의 유형2787 "subagent_type": str | None, # 사용할 특화된 에이전트의 유형

2788 "model": "sonnet" | "opus" | "haiku" | "fable" | None, # 이 에이전트의 모델 오버라이드2788 "model": "sonnet" | "opus" | "haiku" | "fable" | None, # 이 에이전트의 모델 재정의

2789 "effort": "low" | "medium" | "high" | "xhigh" | "max" | None, # 이 에이전트의 추론 노력 수준

2789 "run_in_background": bool | None, # 에이전트는 기본적으로 백그라운드에서 실행됩니다. 동기적으로 실행하려면 False로 설정하십시오2790 "run_in_background": bool | None, # 에이전트는 기본적으로 백그라운드에서 실행됩니다. 동기적으로 실행하려면 False로 설정하십시오

2790 "name": str | None, # 생성된 에이전트의 이름2791 "name": str | None, # 생성된 에이전트의 이름

2791 "team_name": str | None, # 더 이상 사용되지 않음; 무시됨2792 "team_name": str | None, # 더 이상 사용되지 않음; 무시됨

Details

101 `startup()`101 `startup()`

102</h3>102</h3>

103 103 

104프롬프트를 사용할 수 있기 전에 CLI 부프로세스를 생성하고 초기화 핸드셰이크를 완료하여 미리 준비합니다. 반환된 [`WarmQuery`](#warmquery) 핸들은 나중에 프롬프트를 수락하고 이미 준비된 프로세스에 작성하므로 첫 번째 `query()` 호출이 부프로세스 생성 및 초기화 비용을 인라인으로 지불하지 않고 해결됩니다. 세션의 작업 디렉토리를 아직 모르는 경우 대신 [`prewarm()`](#prewarm)을 사용합니다.104프롬프트를 사용할 수 있기 전에 CLI 부프로세스를 생성하고 초기화 핸드셰이크를 완료하여 미리 준비합니다. 반환된 [`WarmQuery`](#warmquery) 핸들은 나중에 프롬프트를 수락하고 이미 준비된 프로세스에 작성하므로 첫 번째 `query()` 호출이 부프로세스 생성 및 초기화 비용을 인라인으로 지불하지 않고 해결됩니다. 세션의 작업 디렉터리를 아직 모르는 경우 대신 [`prewarm()`](#prewarm)을 사용합니다.

105 105 

106```typescript theme={null}106```typescript theme={null}

107function startup(params?: {107function startup(params?: {


147 `prewarm()`147 `prewarm()`

148</h3>148</h3>

149 149 

150*알파.* Claude Code 프로세스를 미리 시작하여 어느 세션을 제공할지 알기 전에 [`claim()`](#spareprocess)으로 나중에 세션에 바인딩할 수 있습니다. 사용자가 폴더를 선택하기 전에 부팅되는 애플리케이션에서 사용합니다. TypeScript Agent SDK v0.3.282 이상이 필요합니다.150*알파.* 어느 세션을 제공할지 알기 전에 Claude Code 프로세스를 스페어로 미리 시작하여 나중에 [`claim()`](#spareprocess)으로 세션에 바인딩할 수 있습니다. 사용자가 폴더를 선택하기 전에 부팅되는 애플리케이션에서 사용합니다. TypeScript Agent SDK v0.3.282 이상이 필요합니다.

151 151 

152`prewarm()`은 [`startup()`](#startup)과 동일한 초기화 핸드셰이크를 완료하며, `options.cwd`를 설정할 때 해당 디렉토리에서 프로세스가 대기하고, 그렇지 않으면 Claude Code 구성 디렉토리 아래의 개인 임시 디렉토리에서 대기합니다. 세션의 작업 디렉토리, 해당 `SessionStart` 훅, 해당 stdio MCP 서버, 해당 CLAUDE.md 및 git 컨텍스트는 클레임을 기다립니다. 스페어는 대기하는 동안 대략 230\~260 MB의 메모리를 보유합니다. [`spawnClaudeCodeProcess`](#options)가 다른 머신이나 컨테이너에서 Claude Code를 실행하는 경우 `options.cwd`를 스페어가 대기할 디렉토리로 설정합니다.152`prewarm()`은 [`startup()`](#startup)과 동일한 초기화 핸드셰이크를 완료하며, `options.cwd`를 설정할 때 해당 디렉터리에서 프로세스가 대기하고, 그렇지 않으면 Claude Code 구성 디렉터리 아래의 개인 임시 디렉터리에서 대기합니다. 세션의 작업 디렉터리, 해당 `SessionStart` 훅, 해당 stdio MCP 서버, 해당 CLAUDE.md 및 git 컨텍스트는 클레임을 기다립니다. 스페어는 대기하는 동안 대략 230\~260 MB의 메모리를 보유합니다. [`spawnClaudeCodeProcess`](#options)가 다른 머신이나 컨테이너에서 Claude Code를 실행하는 경우 `options.cwd`를 해당 환경에 존재하는 디렉터리로 설정하여 스페어가 그곳에서 대기하도록 합니다.

153 153 

154```typescript theme={null}154```typescript theme={null}

155function prewarm(params?: {155function prewarm(params?: {


158}): Promise<SpareProcess>;158}): Promise<SpareProcess>;

159```159```

160 160 

161`options` 및 `initializeTimeoutMs`는 `startup()`과 동일한 의미를 가지며, `options.cwd`는 스페어가 대기하는 디렉토리만 설정합니다. 프로미스는 프로세스가 초기화 핸드셰이크를 완료한 후 [`SpareProcess`](#spareprocess)로 해결됩니다. `prewarm()`은 `options`가 `resume`, `continue` 또는 `forkSession`을 설정하면 throw합니다. 스페어는 아직 세션이 없기 때문입니다. 클레임이 설정할 수 없는 모든 것(예: `mcpServers`, `hooks`, `canUseTool`, `settingSources`, `systemPrompt` 및 `plugins`)은 스페어의 수명 동안 고정되므로 해당 옵션의 고유한 집합마다 하나의 스페어를 유지하고 변경될 때 다시 미리 준비합니다.161`options` 및 `initializeTimeoutMs`는 `startup()`과 동일한 의미를 가지며, `options.cwd`는 스페어가 대기하는 디렉터리만 설정합니다. 프로미스는 프로세스가 초기화 핸드셰이크를 완료한 후 [`SpareProcess`](#spareprocess)로 해결됩니다. `prewarm()`은 `options`가 `resume`, `continue` 또는 `forkSession`을 설정하면 throw합니다. 스페어는 아직 세션이 없기 때문입니다. 클레임이 설정할 수 없는 모든 것(예: `mcpServers`, `hooks`, `canUseTool`, `settingSources`, `systemPrompt` 및 `plugins`)은 스페어의 수명 동안 고정되므로 해당 옵션의 고유한 집합마다 하나의 스페어를 유지하고 변경될 때 다시 미리 준비합니다.

162 162 

163<h4 id="example-2">163<h4 id="example-2">

164 예제164 예제


226 `ToolAnnotations`226 `ToolAnnotations`

227</h4>227</h4>

228 228 

229`@modelcontextprotocol/sdk/types.js`에서 다시 내보냅니다. 모든 필드는 선택적 힌트이며 클라이언트는 보안 결정을 위해 이를 신뢰해서는 안 됩니다.229`@modelcontextprotocol/sdk/types.js`에 정의되어 있습니다. 모든 필드는 선택적 힌트이며 클라이언트는 보안 결정을 위해 이를 신뢰해서는 안 됩니다.

230 230 

231| 필드 | 유형 | 기본값 | 설명 |231| 필드 | 유형 | 기본값 | 설명 |

232| :- | :- | :- | :- |232| :- | :- | :- | :- |


278| `options.version` | `string` | 선택적 버전 문자열 |278| `options.version` | `string` | 선택적 버전 문자열 |

279| `options.instructions` | `string` | 선택적 서버 지침이며, `initialize`에서 반환되고 MCP 지침 블록으로 모델에 표시됩니다 |279| `options.instructions` | `string` | 선택적 서버 지침이며, `initialize`에서 반환되고 MCP 지침 블록으로 모델에 표시됩니다 |

280| `options.tools` | `Array<SdkMcpToolDefinition>` | [`tool()`](#tool)로 생성된 도구 정의 배열 |280| `options.tools` | `Array<SdkMcpToolDefinition>` | [`tool()`](#tool)로 생성된 도구 정의 배열 |

281| `options.alwaysLoad` | `boolean` | `true`인 경우 이 서버의 모든 도구는 초기 프롬프트에 유지되며 [도구 검색](/docs/ko/agent-sdk/tool-search) 뒤에서 지연되지 않습니다. [`tool()`](#tool)의 도구별 `alwaysLoad`와 결합됩니다 |281| `options.alwaysLoad` | `boolean` | `true`인 경우 이 서버의 도구는 초기 프롬프트에 유지되며 [도구 검색](/docs/ko/agent-sdk/tool-search) 뒤에서 지연되지 않습니다. [`tool()`](#tool)의 도구별 `alwaysLoad`와 결합됩니다 |

282| `options.timeout` | `number` | 이 서버의 도구 호출에 대한 타임아웃(밀리초)입니다. Claude Code는 [`MCP_TOOL_TIMEOUT`](/docs/ko/env-vars)을 대신하여 이 서버에 적용합니다. 최소 1000의 정수를 전달합니다. Claude Code는 다른 값을 무시합니다. TypeScript Agent SDK v0.3.248 이상이 필요합니다 |282| `options.timeout` | `number` | 이 서버의 도구 호출에 대한 타임아웃(밀리초)입니다. Claude Code는 [`MCP_TOOL_TIMEOUT`](/docs/ko/env-vars)을 대신하여 이 서버에 적용합니다. 최소 1000의 정수를 전달합니다. Claude Code는 다른 값을 무시합니다. TypeScript Agent SDK v0.3.248 이상이 필요합니다 |

283 283 

284<h3 id="listsessions">284<h3 id="listsessions">

285 `listSessions()`285 `listSessions()`

286</h3>286</h3>

287 287 

288가벼운 메타데이터를 포함한 과거 세션을 발견하고 나열합니다. 프로젝트 디렉토리별로 필터링하거나 모든 프로젝트에서 세션을 나열합니다.288가벼운 메타데이터를 포함한 과거 세션을 발견하고 나열합니다. 프로젝트 디렉터리별로 필터링하거나 모든 프로젝트에서 세션을 나열합니다.

289 289 

290```typescript theme={null}290```typescript theme={null}

291function listSessions(options?: ListSessionsOptions): Promise<SDKSessionInfo[]>;291function listSessions(options?: ListSessionsOptions): Promise<SDKSessionInfo[]>;


297 297 

298| 매개변수 | 유형 | 기본값 | 설명 |298| 매개변수 | 유형 | 기본값 | 설명 |

299| :- | :- | :- | :- |299| :- | :- | :- | :- |

300| `options.dir` | `string` | `undefined` | 세션을 나열할 디렉토리입니다. 생략하면 모든 프로젝트에서 세션을 반환합니다 |300| `options.dir` | `string` | `undefined` | 세션을 나열할 디렉터리입니다. 생략하면 모든 프로젝트에서 세션을 반환합니다 |

301| `options.limit` | `number` | `undefined` | 반환할 최대 세션 수 |301| `options.limit` | `number` | `undefined` | 반환할 최대 세션 수 |

302| `options.includeWorktrees` | `boolean` | `true` | `dir`이 git 저장소 내에 있을 때 모든 worktree 경로에서 세션을 포함합니다 |302| `options.includeWorktrees` | `boolean` | `true` | `dir`이 git 저장소 내에 있을 때 모든 worktree 경로에서 세션을 포함합니다 |

303 303 


310| `sessionId` | `string` | 고유 세션 식별자 (UUID) |310| `sessionId` | `string` | 고유 세션 식별자 (UUID) |

311| `summary` | `string` | 표시 제목: 사용자 정의 제목, 가장 최근 프롬프트, 자동 생성된 요약 또는 첫 번째 프롬프트 |311| `summary` | `string` | 표시 제목: 사용자 정의 제목, 가장 최근 프롬프트, 자동 생성된 요약 또는 첫 번째 프롬프트 |

312| `lastModified` | `number` | 마지막 수정 시간(에포크 이후 밀리초) |312| `lastModified` | `number` | 마지막 수정 시간(에포크 이후 밀리초) |

313| `fileSize` | `number \| undefined` | 세션 파일 크기(바이트)입니다. 로컬 JSONL 저장소에만 채워집니다 |313| `fileSize` | `number \| undefined` | 세션 파일 크기(바이트)입니다. 로컬 JSONL 스토리지에만 채워집니다 |

314| `customTitle` | `string \| undefined` | 사용자 설정 세션 제목 (`--name`, `/rename`, 훅의 `sessionTitle` 출력 또는 [`renameSession()`](#renamesession)으로 설정된 경우). 그렇지 않으면 세션이 있는 경우 AI 생성 세션 제목 |314| `customTitle` | `string \| undefined` | 사용자 정의 제목이 설정된 경우 세션의 사용자 정의 제목입니다(예: `--name`, `/rename`, 훅의 `sessionTitle` 출력 또는 [`renameSession()`](#renamesession)으로 설정). 그렇지 않으면 세션에 AI 생성 세션 제목이 있는 경우 해당 제목 |

315| `firstPrompt` | `string \| undefined` | 세션의 첫 번째 의미 있는 사용자 프롬프트 |315| `firstPrompt` | `string \| undefined` | 세션의 첫 번째 의미 있는 사용자 프롬프트 |

316| `gitBranch` | `string \| undefined` | 세션 끝의 Git 분기 |316| `gitBranch` | `string \| undefined` | 세션 끝의 Git 브랜치 |

317| `cwd` | `string \| undefined` | 세션의 작업 디렉토리 |317| `cwd` | `string \| undefined` | 세션의 작업 디렉터리 |

318| `tag` | `string \| undefined` | 사용자 설정 세션 태그 ([`tagSession()`](#tagsession) 참조) |318| `tag` | `string \| undefined` | 사용자 설정 세션 태그 ([`tagSession()`](#tagsession) 참조) |

319| `createdAt` | `number \| undefined` | 생성 시간(에포크 이후 밀리초)이며, 첫 번째 항목의 타임스탬프에서 가져옵니다 |319| `createdAt` | `number \| undefined` | 생성 시간(에포크 이후 밀리초)이며, 첫 번째 항목의 타임스탬프에서 가져옵니다 |

320 320 


338 `getSessionMessages()`338 `getSessionMessages()`

339</h3>339</h3>

340 340 

341과거 세션 기록에서 사용자 및 어시스턴트 메시지를 읽습니다.341과거 세션 트랜스크립트에서 사용자 및 어시스턴트 메시지를 읽습니다.

342 342 

343```typescript theme={null}343```typescript theme={null}

344function getSessionMessages(344function getSessionMessages(


354| 매개변수 | 유형 | 기본값 | 설명 |354| 매개변수 | 유형 | 기본값 | 설명 |

355| :- | :- | :- | :- |355| :- | :- | :- | :- |

356| `sessionId` | `string` | 필수 | 읽을 세션 UUID (`listSessions()` 참조) |356| `sessionId` | `string` | 필수 | 읽을 세션 UUID (`listSessions()` 참조) |

357| `options.dir` | `string` | `undefined` | 세션을 찾을 프로젝트 디렉토리입니다. 생략하면 모든 프로젝트를 검색합니다 |357| `options.dir` | `string` | `undefined` | 세션을 찾을 프로젝트 디렉터리입니다. 생략하면 모든 프로젝트를 검색합니다 |

358| `options.limit` | `number` | `undefined` | 반환할 최대 메시지 수 |358| `options.limit` | `number` | `undefined` | 반환할 최대 메시지 수 |

359| `options.offset` | `number` | `undefined` | 시작 부분에서 건너뛸 메시지 수 |359| `options.offset` | `number` | `undefined` | 시작 부분에서 건너뛸 메시지 수 |

360 360 


367| `type` | `"user" \| "assistant"` | 메시지 역할 |367| `type` | `"user" \| "assistant"` | 메시지 역할 |

368| `uuid` | `string` | 고유 메시지 식별자 |368| `uuid` | `string` | 고유 메시지 식별자 |

369| `session_id` | `string` | 이 메시지가 속한 세션 |369| `session_id` | `string` | 이 메시지가 속한 세션 |

370| `message` | `unknown` | 기록에서 원본 메시지 페이로드 |370| `message` | `unknown` | 트랜스크립트의 원본 메시지 페이로드 |

371| `parent_tool_use_id` | `string \| null` | 부에이전트 메시지의 경우 부에이전트를 시작한 `Agent` 또는 `Skill` 도구 호출의 `tool_use_id`입니다. 주 세션 메시지 및 이전 세션의 경우 `null` |371| `parent_tool_use_id` | `string \| null` | 서브에이전트 메시지의 경우 서브에이전트를 시작한 `Agent` 또는 `Skill` 도구 호출의 `tool_use_id`입니다. 주 세션 메시지 및 이전 세션의 경우 `null` |

372| `parent_agent_id` | `string \| null` | [중첩된 부에이전트](/docs/ko/sub-agents#let-subagents-spawn-their-own-subagents)의 메시지의 경우 이를 생성한 부에이전트의 `agentId`입니다. 주 세션 메시지, 최상위 부에이전트의 메시지 및 이전 세션의 경우 `null`입니다. Claude Code v2.1.202 이상이 필요합니다 |372| `parent_agent_id` | `string \| null` | [중첩된 서브에이전트](/docs/ko/sub-agents#let-subagents-spawn-their-own-subagents)의 메시지의 경우 이를 생성한 서브에이전트의 `agentId`입니다. 주 세션 메시지, 최상위 서브에이전트의 메시지 및 이전 세션의 경우 `null`입니다. Claude Code v2.1.202 이상이 필요합니다 |

373 373 

374<h4 id="example-4">374<h4 id="example-4">

375 예제375 예제


396 `getSessionInfo()`396 `getSessionInfo()`

397</h3>397</h3>

398 398 

399전체 프로젝트 디렉토리를 스캔하지 않고 ID별로 단일 세션의 메타데이터를 읽습니다.399전체 프로젝트 디렉터리를 스캔하지 않고 ID별로 단일 세션의 메타데이터를 읽습니다.

400 400 

401```typescript theme={null}401```typescript theme={null}

402function getSessionInfo(402function getSessionInfo(


412| 매개변수 | 유형 | 기본값 | 설명 |412| 매개변수 | 유형 | 기본값 | 설명 |

413| :- | :- | :- | :- |413| :- | :- | :- | :- |

414| `sessionId` | `string` | 필수 | 조회할 세션의 UUID |414| `sessionId` | `string` | 필수 | 조회할 세션의 UUID |

415| `options.dir` | `string` | `undefined` | 프로젝트 디렉토리 경로입니다. 생략하면 모든 프로젝트 디렉토리를 검색합니다 |415| `options.dir` | `string` | `undefined` | 프로젝트 디렉터리 경로입니다. 생략하면 모든 프로젝트 디렉터리를 검색합니다 |

416 416 

417[`SDKSessionInfo`](#return-type-sdksessioninfo)를 반환하거나, 세션을 찾을 수 없으면 `undefined`를 반환합니다.417[`SDKSessionInfo`](#return-type-sdksessioninfo)를 반환하거나, 세션을 찾을 수 없으면 `undefined`를 반환합니다.

418 418 


438| :- | :- | :- | :- |438| :- | :- | :- | :- |

439| `sessionId` | `string` | 필수 | 이름을 바꿀 세션의 UUID |439| `sessionId` | `string` | 필수 | 이름을 바꿀 세션의 UUID |

440| `title` | `string` | 필수 | 새 제목입니다. 공백을 제거한 후 비어 있지 않아야 합니다 |440| `title` | `string` | 필수 | 새 제목입니다. 공백을 제거한 후 비어 있지 않아야 합니다 |

441| `options.dir` | `string` | `undefined` | 프로젝트 디렉토리 경로입니다. 생략하면 모든 프로젝트 디렉토리를 검색합니다 |441| `options.dir` | `string` | `undefined` | 프로젝트 디렉터리 경로입니다. 생략하면 모든 프로젝트 디렉터리를 검색합니다 |

442 442 

443<h3 id="tagsession">443<h3 id="tagsession">

444 `tagSession()`444 `tagSession()`


462| :- | :- | :- | :- |462| :- | :- | :- | :- |

463| `sessionId` | `string` | 필수 | 태그를 지정할 세션의 UUID |463| `sessionId` | `string` | 필수 | 태그를 지정할 세션의 UUID |

464| `tag` | `string \| null` | 필수 | 태그 문자열 또는 지우려면 `null` |464| `tag` | `string \| null` | 필수 | 태그 문자열 또는 지우려면 `null` |

465| `options.dir` | `string` | `undefined` | 프로젝트 디렉토리 경로입니다. 생략하면 모든 프로젝트 디렉토리를 검색합니다 |465| `options.dir` | `string` | `undefined` | 프로젝트 디렉터리 경로입니다. 생략하면 모든 프로젝트 디렉터리를 검색합니다 |

466 466 

467<h3 id="resolvesettings">467<h3 id="resolvesettings">

468 `resolveSettings()`468 `resolveSettings()`

469</h3>469</h3>

470 470 

471CLI를 생성하지 않고 CLI와 동일한 병합 엔진을 사용하여 주어진 디렉토리에 대한 효과적인 Claude Code 설정을 해결합니다. `query()` 호출을 호출하기 전에 `query()` 호출이 볼 구성을 검사하는 데 사용합니다.471Claude CLI를 생성하지 않고 CLI와 동일한 병합 엔진을 사용하여 주어진 디렉터리에 대한 유효한 Claude Code 설정을 해결합니다. `query()` 호출을 실행하기 전에 해당 호출이 보게 될 구성을 검사하는 데 사용합니다.

472 472 

473<Note>473<Note>

474 이 함수는 알파 버전이며 안정화 전에 API가 변경될 수 있습니다.474 이 함수는 알파 버전이며 안정화 전에 API가 변경될 수 있습니다.


477스냅샷은 라이브 `query()` 세션이 적용하는 것과 다릅니다:477스냅샷은 라이브 `query()` 세션이 적용하는 것과 다릅니다:

478 478 

479* **`policyHelper`**: `resolveSettings()`는 macOS plist 및 Windows HKLM/HKCU를 포함한 MDM 소스를 읽지만 관리자 구성 `policyHelper` 부프로세스를 실행하지 않습니다.479* **`policyHelper`**: `resolveSettings()`는 macOS plist 및 Windows HKLM/HKCU를 포함한 MDM 소스를 읽지만 관리자 구성 `policyHelper` 부프로세스를 실행하지 않습니다.

480* **서버 관리 설정**: `resolveSettings()`는 [서버 관리 설정](/docs/ko/server-managed-settings#fetch-and-caching-behavior)을 가져오지 않습니다. 포함하려면 `options.serverManagedSettings`으로 전달합니다.480* **서버 관리형 설정**: `resolveSettings()`는 [서버 관리형 설정](/docs/ko/server-managed-settings#fetch-and-caching-behavior)을 가져오지 않습니다. 포함하려면 `options.serverManagedSettings`으로 전달합니다.

481* **`defaultMode`**: 스냅샷은 모든 계층에서 `permissions.defaultMode`를 그대로 반환하므로 프로젝트 및 로컬 설정의 `'auto'` 및 `'bypassPermissions'` 값을 포함할 수 있으며, [라이브 세션은 무시합니다](/docs/ko/permission-modes#which-mode-a-session-starts-in).481* **`defaultMode`**: 스냅샷은 모든 계층에서 `permissions.defaultMode`를 그대로 반환하므로 프로젝트 및 로컬 설정의 `'auto'` 및 `'bypassPermissions'` 값을 포함할 수 있으며, [라이브 세션은 이를 무시합니다](/docs/ko/permission-modes#which-mode-a-session-starts-in).

482 482 

483```typescript theme={null}483```typescript theme={null}

484function resolveSettings(484function resolveSettings(


494 494 

495| 매개변수 | 유형 | 기본값 | 설명 |495| 매개변수 | 유형 | 기본값 | 설명 |

496| :- | :- | :- | :- |496| :- | :- | :- | :- |

497| `options.cwd` | `string` | `process.cwd()` | 프로젝트 및 로컬 설정을 상대적으로 해결할 디렉토리 |497| `options.cwd` | `string` | `process.cwd()` | 프로젝트 및 로컬 설정을 상대적으로 해결할 디렉터리 |

498| `options.settingSources` | [`SettingSource`](#settingsource)`[]` | 모든 소스 | 로드할 파일 시스템 소스입니다. 사용자, 프로젝트 및 로컬 설정을 건너뛰려면 `[]`을 전달합니다. [엔드포인트 관리 정책](/docs/ko/managed-settings#delivery-mechanisms)은 모든 경우에 로드됩니다. `resolveSettings()`는 `options.serverManagedSettings`을 전달할 때만 서버 관리 설정을 포함합니다 |498| `options.settingSources` | [`SettingSource`](#settingsource)`[]` | 모든 소스 | 로드할 파일 시스템 소스입니다. 사용자, 프로젝트 및 로컬 설정을 건너뛰려면 `[]`을 전달합니다. [엔드포인트 관리형 정책](/docs/ko/managed-settings#delivery-mechanisms)은 모든 경우에 로드됩니다. `resolveSettings()`는 `options.serverManagedSettings`을 전달할 때만 서버 관리형 설정을 포함합니다 |

499| `options.managedSettings` | `Settings` | `undefined` | 임베딩 호스트에서 제공하는 정책 계층 설정입니다. [`managedSettings` in `Options`](#options)와 동일한 규칙을 따릅니다. 단, `resolveSettings()`는 구성된 [`policyHelper`](/docs/ko/settings-reference#policyhelper)를 실행하지 않으므로 스냅샷은 라이브 세션이 삭제하는 설정을 포함할 수 있습니다 |499| `options.managedSettings` | `Settings` | `undefined` | 임베딩 호스트에서 제공하는 정책 계층 설정입니다. [`Options`의 `managedSettings`](#options)와 동일한 규칙을 따릅니다. 단, `resolveSettings()`는 구성된 [`policyHelper`](/docs/ko/settings-reference#policyhelper)를 실행하지 않으므로 스냅샷은 라이브 세션이 삭제하는 설정을 포함할 수 있습니다 |

500| `options.serverManagedSettings` | `Settings` | `undefined` | `/api/claude_code/settings`의 서버 관리 설정 페이로드입니다. 제한이 없는 키는 필터링되지 않고 통과합니다 |500| `options.serverManagedSettings` | `Settings` | `undefined` | `/api/claude_code/settings`의 서버 관리형 설정 페이로드입니다. 제한이 없는 키는 필터링되지 않고 통과합니다 |

501 501 

502<h4 id="return-type-resolvedsettings">502<h4 id="return-type-resolvedsettings">

503 반환 유형: `ResolvedSettings`503 반환 유형: `ResolvedSettings`


515 예제515 예제

516</h4>516</h4>

517 517 

518아래 예제는 프로젝트 디렉토리에 대한 설정을 해결하고 정리 기간을 제어하는 소스를 인쇄합니다. 설정 파일이 `cleanupPeriodDays`를 설정하지 않는 머신에서는 두 인쇄된 줄 모두 값에 대해 `undefined`를 표시하며, 이는 오류가 아닌 예상된 출력입니다.518아래 예제는 프로젝트 디렉터리에 대한 설정을 해결하고 정리 기간을 제어하는 소스를 인쇄합니다. 설정 파일이 `cleanupPeriodDays`를 설정하지 않는 머신에서는 두 인쇄된 줄 모두 값에 대해 `undefined`를 표시하며, 이는 오류가 아닌 예상된 출력입니다.

519 519 

520```typescript theme={null}520```typescript theme={null}

521import { resolveSettings } from "@anthropic-ai/claude-agent-sdk";521import { resolveSettings } from "@anthropic-ai/claude-agent-sdk";


1756* `ttft_stream_ms`: 응답 스트림이 열리는 첫 번째 `message_start` 스트림 이벤트까지의 시간(밀리초)입니다. `ttft_ms`보다 작으며, 둘 사이의 차이는 첫 번째 메시지를 스트리밍하는 데 걸린 시간입니다. success 분기에만 있습니다.1756* `ttft_stream_ms`: 응답 스트림이 열리는 첫 번째 `message_start` 스트림 이벤트까지의 시간(밀리초)입니다. `ttft_ms`보다 작으며, 둘 사이의 차이는 첫 번째 메시지를 스트리밍하는 데 걸린 시간입니다. success 분기에만 있습니다.

1757* `user_message_uuid`: 이 턴이 응답한, 사용자가 보낸 메시지의 `uuid`입니다. 어떤 결과에 포함되는지는 [`user_message_uuid`](#user_message_uuid)를 참조하세요.1757* `user_message_uuid`: 이 턴이 응답한, 사용자가 보낸 메시지의 `uuid`입니다. 어떤 결과에 포함되는지는 [`user_message_uuid`](#user_message_uuid)를 참조하세요.

1758* `user_message_uuids`: 이 턴에서 Claude Code가 응답한, 사용자가 보낸 모든 메시지의 `uuid`입니다. [`user_message_uuids`](#user_message_uuids)를 참조하세요.1758* `user_message_uuids`: 이 턴에서 Claude Code가 응답한, 사용자가 보낸 모든 메시지의 `uuid`입니다. [`user_message_uuids`](#user_message_uuids)를 참조하세요.

1759* `resume_reason`: 재시작으로 중단된 이 턴을 Claude Code가 다시 실행한 이유입니다. 두 분기 모두에 있으며, 그러한 재실행에만 있습니다. [`resume_reason`](#resume_reason)을 참조하세요.1759* `resume_reason`: 재시작으로 중단된 이 턴을 Claude Code가 다시 실행한 이유입니다. 두 분기 모두에 있습니다. [`resume_reason`](#resume_reason)을 참조하십시오.

1760* `local_command`: 턴이 디스패치한 명령의 이름으로, `/compact`처럼 에이전트 루프에 진입하지 않고 명령이 완료한 턴의 success 결과에 있습니다. 이름은 소문자와 밑줄로 변환되므로 `/reload-plugins`는 `reload_plugins`로 보고됩니다. MCP 서버가 제공하는 명령과 기본 제공 `/mcp`는 `mcp`로 보고됩니다. 사용자가 직접 정의한 명령은 `custom`으로 보고됩니다. 인수는 절대 포함되지 않습니다. 에이전트 루프에 진입한 모든 턴과 명령을 실행하지 않은 전송에는 없습니다. Agent SDK v0.3.268 이상이 필요합니다.1760* `local_command`: 턴이 디스패치한 명령의 이름으로, `/compact`처럼 에이전트 루프에 진입하지 않고 명령이 완료한 턴의 success 결과에 있습니다. 이름은 소문자와 밑줄로 변환되므로 `/reload-plugins`는 `reload_plugins`로 보고됩니다. MCP 서버가 제공하는 명령과 기본 제공 `/mcp`는 `mcp`로 보고됩니다. 사용자가 직접 정의한 명령은 `custom`으로 보고됩니다. 인수는 절대 포함되지 않습니다. 에이전트 루프에 진입한 모든 턴과 명령을 실행하지 않은 전송에는 없습니다. Agent SDK v0.3.268 이상이 필요합니다.

1761* `request_sent_wall_ms`: 서버 측 타임스탬프와 조인하기 위한, Claude Code가 API 요청을 디스패치한 시점의 epoch 밀리초입니다. API 요청을 보낸 턴의 `is_error`가 false인 success 결과에서 [`user_message_uuid`](#user_message_uuid)와 함께일 때만 있습니다.1761* `request_sent_wall_ms`: 서버 측 타임스탬프와 조인하기 위한, Claude Code가 API 요청을 디스패치한 시점의 epoch 밀리초입니다. API 요청을 보낸 턴의 `is_error`가 false인 success 결과에서 [`user_message_uuid`](#user_message_uuid)와 함께일 때만 있습니다.

1762* `first_content_frame_ms`: 첫 번째 `content_block_start` 또는 `content_block_delta` 스트림 이벤트까지의 시간(밀리초)이며, thinking 블록도 콘텐츠로 계산합니다. success 분기에서 `is_error`가 false일 때만 있습니다. Agent SDK v0.3.260 이상이 필요합니다.1762* `first_content_frame_ms`: 첫 번째 `content_block_start` 또는 `content_block_delta` 스트림 이벤트까지의 시간(밀리초)이며, thinking 블록도 콘텐츠로 계산합니다. success 분기에서 `is_error`가 false일 때만 있습니다. Agent SDK v0.3.260 이상이 필요합니다.


1845* **재실행의 결과**: 결과에 `user_message_uuid`가 있든 없든 success와 error 분기 모두에 설정합니다.1845* **재실행의 결과**: 결과에 `user_message_uuid`가 있든 없든 success와 error 분기 모두에 설정합니다.

1846* **재실행의 응답 프레임**: [`user_message_uuid`](#user_message_uuid)를 가진 프레임입니다.1846* **재실행의 응답 프레임**: [`user_message_uuid`](#user_message_uuid)를 가진 프레임입니다.

1847 1847 

1848값은 턴이 다시 실행된 이유를 나타내는 짧은 소문자 토큰이며, `interrupted_turn` 등이 있습니다. 다른 모든 턴에는 이 필드가 없습니다.1848값은 `interrupted_turn`처럼 턴이 다시 실행된 이유를 나타내는 짧은 소문자 토큰입니다.

1849 1849 

1850<h4 id="queued_turn_count">1850<h4 id="queued_turn_count">

1851 `queued_turn_count`1851 `queued_turn_count`


1887 | "worktree_resume_refused"1887 | "worktree_resume_refused"

1888 | "worktree_unverified"1888 | "worktree_unverified"

1889 | "cli_version_too_old"1889 | "cli_version_too_old"

1890 | "bypass_root";1890 | "bypass_root"

1891 | "org_config_required_unavailable"

1892 | "org_config_refused";

1891```1893```

1892 1894 

1893각 값은 하나의 거부 사유를 나타냅니다.1895각 값은 하나의 거부 사유를 나타냅니다.


1911| `worktree_unverified` | 현재 세션의 worktree를 확인할 수 없었으며, 재시도하면 성공할 수 있습니다 |1913| `worktree_unverified` | 현재 세션의 worktree를 확인할 수 없었으며, 재시도하면 성공할 수 있습니다 |

1912| `cli_version_too_old` | 이 Claude Code 버전이 Anthropic이 요구하는 최소 버전보다 낮습니다 |1914| `cli_version_too_old` | 이 Claude Code 버전이 Anthropic이 요구하는 최소 버전보다 낮습니다 |

1913| `bypass_root` | root로 실행 중인 상태에서 bypass permissions 모드가 요청되었습니다 |1915| `bypass_root` | root로 실행 중인 상태에서 bypass permissions 모드가 요청되었습니다 |

1916| `org_config_required_unavailable` | 세션을 시작하려면 조직의 정책과 관리형 설정이 필요한데, 네트워크 장애나 Anthropic 서버 오류 등으로 인해 로드할 수 없습니다. Agent SDK v0.3.293 이상이 필요합니다 |

1917| `org_config_refused` | 로그인이 만료되었거나 취소되었거나, 조직이 이 계정에 Claude Code를 허용하지 않는 등의 이유로 Anthropic이 이 로그인에 대해 조직의 정책과 관리형 설정 제공을 거부했습니다. Agent SDK v0.3.293 이상이 필요합니다 |

1914 1918 

1915<h3 id="sdksystemmessage">1919<h3 id="sdksystemmessage">

1916 `SDKSystemMessage`1920 `SDKSystemMessage`


3179**도구 이름:** `Agent`. 이전 이름인 `Task`는 여전히 별칭으로 수락되며, [`SDKSystemMessage`](#sdksystemmessage) 초기화 메시지의 `tools` 배열은 현재 이 도구를 하위 호환성을 위해 `Task`로 나열합니다.3183**도구 이름:** `Agent`. 이전 이름인 `Task`는 여전히 별칭으로 수락되며, [`SDKSystemMessage`](#sdksystemmessage) 초기화 메시지의 `tools` 배열은 현재 이 도구를 하위 호환성을 위해 `Task`로 나열합니다.

3180 3184 

3181<Note>3185<Note>

3182 `mode` 필드는 Claude Code v2.1.212 이상에서 더 이상 사용되지 않으며 무시됩니다. 서브에이전트는 부모 세션의 권한 모드 또는 해당 정의의 [`permissionMode`](#agentdefinition)에서 실행되며, [서브에이전트 상속 규칙](/docs/ko/agent-sdk/permissions#available-modes)이 어느 것인지 결정합니다.3186 `mode` 필드는 Claude Code v2.1.212 이상에서 deprecated되었으며 무시됩니다. 서브에이전트는 부모 세션의 권한 모드 또는 해당 정의의 [`permissionMode`](#agentdefinition)에서 실행되며, [서브에이전트 상속 규칙](/docs/ko/agent-sdk/permissions#available-modes)이 어느 것인지 결정합니다.

3183</Note>3187</Note>

3184 3188 

3185```typescript theme={null}3189```typescript theme={null}


3190 model?: "sonnet" | "opus" | "haiku" | "fable";3194 model?: "sonnet" | "opus" | "haiku" | "fable";

3191 run_in_background?: boolean;3195 run_in_background?: boolean;

3192 name?: string;3196 name?: string;

3193 team_name?: string; // 더 이상 사용되지 않음; 무시됨3197 team_name?: string; // Deprecated; ignored

3194 mode?: "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan"; // 더 이상 사용되지 않음; 무시됨. 서브에이전트 상속 규칙이 서브에이전트의 권한 모드를 결정합니다3198 mode?: "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan"; // Deprecated; ignored. The subagent inheritance rules decide a subagent's permission mode

3195 isolation?: "worktree" | "remote";3199 isolation?: "worktree" | "remote";

3196};3200};

3197```3201```


3260 3264 

3261`timeout_ms`는 감시의 마감 시간(밀리초)입니다. 기본값은 300000이며 최대 3600000까지의 값을 허용합니다. 유효한 마감 시간은 최대 1800000(30분)이므로, 더 큰 허용 값은 그 값으로 단축됩니다. 마감 시간에 감시가 종료되고 Claude는 필요한 경우 새 감시를 시작할 수 있도록 하나의 알림을 받습니다.3265`timeout_ms`는 감시의 마감 시간(밀리초)입니다. 기본값은 300000이며 최대 3600000까지의 값을 허용합니다. 유효한 마감 시간은 최대 1800000(30분)이므로, 더 큰 허용 값은 그 값으로 단축됩니다. 마감 시간에 감시가 종료되고 Claude는 필요한 경우 새 감시를 시작할 수 있도록 하나의 알림을 받습니다.

3262 3266 

3263내보낸 타입은 스키마가 기본값을 채우기 때문에 `timeout_ms`를 필수로 표시합니다. 이를 생략하는 호출은 유효성을 검사합니다.3267내보낸 타입은 스키마가 기본값을 채우기 때문에 `timeout_ms`를 필수로 표시합니다. 이를 생략한 호출도 유효성 검사를 통과합니다.

3264 3268 

3265Monitor가 명령을 실행할 때, Bash와 동일한 권한 규칙을 따릅니다. WebSocket 감시는 별도로 승인을 요청합니다. 동작 및 공급자 가용성은 [Monitor 도구 참조](/docs/ko/tools-reference#monitor-tool)를 참조하세요.3269Monitor가 명령을 실행할 때, Bash와 동일한 권한 규칙을 따릅니다. WebSocket 감시는 별도로 승인을 요청합니다. 동작 및 공급자 가용성은 [Monitor 도구 참조](/docs/ko/tools-reference#monitor-tool)를 참조하세요.

3266 3270 


3364};3368};

3365```3369```

3366 3370 

3367정규식 지원을 포함한 ripgrep 기반의 강력한 검색 도구입니다.3371정규식을 지원하는 ripgrep 기반 검색 도구입니다.

3368 3372 

3369<h3 id="taskstop">3373<h3 id="taskstop">

3370 TaskStop3374 TaskStop


3375```typescript theme={null}3379```typescript theme={null}

3376type TaskStopInput = {3380type TaskStopInput = {

3377 task_id?: string;3381 task_id?: string;

3378 shell_id?: string; // 더 이상 사용되지 않음: task_id 사용3382 shell_id?: string; // Deprecated: use task_id

3379};3383};

3380```3384```

3381 3385 


3448};3452};

3449```3453```

3450 3454 

3451[동적 워크플로우](/docs/ko/workflows)를 실행합니다: 백그라운드에서 많은 서브에이전트를 조율하고 하나의 통합된 결과를 반환하는 스크립트입니다. `Workflow` 도구는 Agent SDK v0.3.149 이상에서 사용 가능합니다. `script`, `name` 또는 `scriptPath` 중 최소 하나가 필요합니다.3455[동적 워크플로](/docs/ko/workflows)를 실행합니다: 백그라운드에서 많은 서브에이전트를 조율하고 하나의 통합된 결과를 반환하는 스크립트입니다. `Workflow` 도구는 Agent SDK v0.3.149 이상에서 사용 가능합니다. `script`, `name` 또는 `scriptPath` 중 최소 하나가 필요합니다.

3452 3456 

3453| 필드 | 타입 | 설명 |3457| 필드 | 타입 | 설명 |

3454| - | - | - |3458| - | - | - |

3455| `script` | `string` | 인라인 워크플로우 스크립트입니다. `export const meta = { name, description }`을 리터럴로 시작해야 하며, 그 뒤에 `agent()`, `parallel()`, `pipeline()` 및 `phase()`를 사용하는 스크립트 본문이 따릅니다. `meta`의 선택적 `phases` 배열은 진행 상황 보기에서 에이전트를 명명된 단계 아래에 그룹화합니다 |3459| `script` | `string` | 인라인 워크플로 스크립트입니다. `export const meta = { name, description }`을 리터럴로 시작해야 하며, 그 뒤에 `agent()`, `parallel()`, `pipeline()` 및 `phase()`를 사용하는 스크립트 본문이 따릅니다. `meta`의 선택적 `phases` 배열은 진행 상황 보기에서 에이전트를 명명된 단계 아래에 그룹화합니다 |

3456| `name` | `string` | 기본 제공 워크플로우의 이름 또는 `.claude/workflows/`에 저장된 워크플로우입니다. 스크립트로 확인됩니다 |3460| `name` | `string` | 기본 제공 워크플로의 이름 또는 `.claude/workflows/`에 저장된 워크플로입니다. 스크립트로 확인됩니다 |

3457| `scriptPath` | `string` | 디스크의 워크플로우 스크립트 파일 경로입니다. `script` 및 `name`보다 우선합니다. Claude Code는 모든 호출의 스크립트를 유지하고 결과에서 경로를 반환하므로, 해당 파일을 편집하고 동일한 `scriptPath`로 다시 호출하여 반복할 수 있습니다 |3461| `scriptPath` | `string` | 디스크의 워크플로 스크립트 파일 경로입니다. `script` 및 `name`보다 우선합니다. Claude Code는 모든 호출의 스크립트를 유지하고 결과에서 경로를 반환하므로, 해당 파일을 편집하고 동일한 `scriptPath`로 다시 호출하여 반복할 수 있습니다 |

3458| `args` | `unknown` | 스크립트에 전역 `args`로 노출되는 입력 값으로, 연구 질문이나 파일 경로 목록과 같은 매개변수화된 명명된 워크플로우용입니다. 배열과 객체를 JSON 인코딩된 문자열이 아닌 실제 JSON 값으로 전달합니다 |3462| `args` | `unknown` | 스크립트에 전역 `args`로 노출되는 입력 값으로, 연구 질문이나 파일 경로 목록과 같은 매개변수화된 명명된 워크플로용입니다. 배열과 객체를 JSON 인코딩된 문자열이 아닌 실제 JSON 값으로 전달합니다 |

3459| `resumeFromRunId` | `string` | 재개할 이전 `Workflow` 호출의 실행 ID입니다. 입력이 변경되지 않은 완료된 `agent()` 호출은 일반적으로 캐시된 결과를 반환합니다. 나머지는 실시간으로 실행됩니다. [일시 중지 후 재개](/docs/ko/workflows#resume-after-a-pause)는 어느 완료된 호출이 다시 실행되는지 다룹니다. 동일한 세션만 해당됩니다 |3463| `resumeFromRunId` | `string` | 재개할 이전 `Workflow` 호출의 실행 ID입니다. 입력이 변경되지 않은 완료된 `agent()` 호출은 일반적으로 캐시된 결과를 반환합니다. 나머지는 실시간으로 실행됩니다. [일시 중지 후 재개](/docs/ko/workflows#resume-after-a-pause)는 어느 완료된 호출이 다시 실행되는지 다룹니다. 동일한 세션만 해당됩니다 |

3460| `title` | `string` | 무시됨; 스크립트의 `meta` 블록이 제목을 설정합니다 |3464| `title` | `string` | 무시됨; 스크립트의 `meta` 블록이 제목을 설정합니다 |

3461| `description` | `string` | 무시됨; 스크립트의 `meta` 블록이 설명을 설정합니다 |3465| `description` | `string` | 무시됨; 스크립트의 `meta` 블록이 설명을 설정합니다 |


3567 3571 

3568```typescript theme={null}3572```typescript theme={null}

3569type ExitPlanModeInput = {3573type ExitPlanModeInput = {

3570 /** 더 이상 사용되지 않음: 더 이상 사용되지 않습니다. */3574 /** Deprecated: no longer used. */

3571 allowedPrompts?: Array<{3575 allowedPrompts?: Array<{

3572 tool: "Bash";3576 tool: "Bash";

3573 prompt: string;3577 prompt: string;


3576};3580};

3577```3581```

3578 3582 

3579계획 모드를 종료합니다. `allowedPrompts` 필드는 더 이상 사용되지 않으며 무시됩니다. Claude Code는 기존 호출자 및 트랜스크립트가 유효성을 검사하도록 여전히 수락합니다. v2.1.205 이전에는 계획을 구현하기 위한 프롬프트 기반 Bash 권한을 요청했습니다.3583플랜 모드를 종료합니다. `allowedPrompts` 필드는 deprecated되었으며 무시됩니다. Claude Code는 기존 호출자 및 트랜스크립트가 유효성을 검사하도록 여전히 수락합니다. v2.1.205 이전에는 계획을 구현하기 위한 프롬프트 기반 Bash 권한을 요청했습니다.

3580 3584 

3581<h3 id="listmcpresources">3585<h3 id="listmcpresources">

3582 ListMcpResources3586 ListMcpResources


3620};3624};

3621```3625```

3622 3626 

3623격리된 작업을 위한 임시 git worktree를 만들고 입력합니다. 새 worktree를 만드는 대신 기존 worktree로 전환하려면 `path`를 전달합니다. 첫 번째 입력 시 대상은 현재 저장소의 등록된 worktree이거나, 다중 저장소 작업 공간에서 그 안에 중첩된 저장소여야 합니다. worktree 세션 내에서는 세션의 저장소의 `.claude/worktrees/` 아래에 있어야 합니다. `name` 및 `path`는 상호 배타적입니다.3627격리된 작업을 위한 임시 git worktree를 만들고 진입합니다. 새 worktree를 만드는 대신 기존 worktree로 전환하려면 `path`를 전달합니다. 처음 진입할 때 대상은 현재 저장소의 등록된 worktree이거나, 다중 저장소 워크스페이스에서는 그 안에 중첩된 저장소의 등록된 worktree여야 합니다. worktree 세션 내에서는 세션의 저장소의 `.claude/worktrees/` 아래에 있어야 합니다. `name` 및 `path`는 상호 배타적입니다.

3624 3628 

3625<h3 id="exitworktree">3629<h3 id="exitworktree">

3626 ExitWorktree3630 ExitWorktree


3635};3639};

3636```3640```

3637 3641 

3638현재 git worktree를 종료하고 원래 작업 디렉터리로 돌아갑니다. `keep` 작업은 worktree와 분기를 디스크에 남기고, `remove`는 둘 다 삭제합니다. `discard_changes`는 커밋되지 않은 파일이나 병합되지 않은 커밋이 있는 worktree를 제거할 때 `true`여야 합니다.3642현재 git worktree를 종료하고 원래 작업 디렉터리로 돌아갑니다. `keep` 작업은 worktree와 브랜치를 디스크에 남기고, `remove`는 둘 다 삭제합니다. `discard_changes`는 커밋되지 않은 파일이나 병합되지 않은 커밋이 있는 worktree를 제거할 때 `true`여야 합니다.

3639 3643 

3640<h3 id="enterplanmode">3644<h3 id="enterplanmode">

3641 EnterPlanMode3645 EnterPlanMode


3647type EnterPlanModeInput = {};3651type EnterPlanModeInput = {};

3648```3652```

3649 3653 

3650계획 모드에 입력합니다. 여기서 Claude는 변경을 수행하기 전에 계획을 연구하고 제시합니다.3654플랜 모드에 진입합니다. 여기서 Claude는 변경을 수행하기 전에 계획을 연구하고 제시합니다.

3651 3655 

3652<h3 id="croncreate">3656<h3 id="croncreate">

3653 CronCreate3657 CronCreate


3664};3668};

3665```3669```

3666 3670 

3667로컬 시간의 5필드 cron 일정에서 실행할 프롬프트를 예약합니다. `recurring`을 `false`로 설정하여 다음 일치 시 한 번 실행합니다. 작업은 기본적으로 세션 범위입니다: `--resume` 또는 `--continue`로 재개하면 만료되지 않은 작업이 복원됩니다. [예약된 작업](/docs/ko/scheduled-tasks)을 참조하세요.3671로컬 시간의 5필드 cron 일정에서 실행할 프롬프트를 예약합니다. `recurring`을 `false`로 설정하여 다음 일치 시 한 번 실행합니다. 작업은 기본적으로 세션 범위이며, `--resume` 또는 `--continue`로 재개하면 만료되지 않은 작업이 복원됩니다. [예약 작업](/docs/ko/scheduled-tasks)을 참조하세요.

3668 3672 

3669`durable`을 `true`로 설정하면 `.claude/scheduled_tasks.json`에 지속성을 요청하여 작업이 재시작을 견딜 수 있습니다. 지속적인 예약은 모든 세션에서 사용 가능하지 않습니다: 사용 불가능할 때 Claude Code는 `durable: true`를 수락하지만 작업을 세션 전용으로 만듭니다. 출력의 `durable` 필드를 읽어 작업이 지속되었는지 확인하세요.3673`durable`을 `true`로 설정하면 `.claude/scheduled_tasks.json`에 지속성을 요청하여 작업이 재시작을 견딜 수 있습니다. 지속적인 예약은 모든 세션에서 사용 가능하지 않습니다: 사용 불가능할 때 Claude Code는 `durable: true`를 수락하지만 작업을 세션 전용으로 만듭니다. 출력의 `durable` 필드를 읽어 작업이 지속되었는지 확인하세요.

3670 3674 


3740 3744 

3741클라우드에서 호스팅되는 예약된 및 트리거된 Claude Code 실행인 [루틴](/docs/ko/routines)을 관리합니다. 이 도구는 `/schedule` 명령을 지원합니다. `trigger_id`는 `get`, `update`, `run` 및 `list_runs` 작업에 필요합니다. `body`는 `create`, `update` 및 `create_webhook_trigger`에 필요하며 `run`에는 선택 사항입니다.3745클라우드에서 호스팅되는 예약된 및 트리거된 Claude Code 실행인 [루틴](/docs/ko/routines)을 관리합니다. 이 도구는 `/schedule` 명령을 지원합니다. `trigger_id`는 `get`, `update`, `run` 및 `list_runs` 작업에 필요합니다. `body`는 `create`, `update` 및 `create_webhook_trigger`에 필요하며 `run`에는 선택 사항입니다.

3742 3746 

3743`create_webhook_trigger`는 [GitHub 이벤트](/docs/ko/routines#add-a-github-trigger)와 같은 기존 루틴에 이벤트 소스를 연결하여 이를 실행합니다. `body`는 소스, 이벤트 및 실행할 루틴의 이름을 지정합니다. Claude Code v2.1.225 이상이 필요합니다.3747`create_webhook_trigger`는 루틴을 실행하는 [GitHub 이벤트](/docs/ko/routines#add-a-github-trigger)와 같은 이벤트 소스를 기존 루틴에 연결합니다. `body`는 소스, 이벤트 및 실행할 루틴의 이름을 지정합니다. Claude Code v2.1.225 이상이 필요합니다.

3744 3748 

3745`list_runs`는 루틴의 최근 실행을 나열하고, `get_run_log`는 하나의 실행 로그를 읽습니다. `session_id`는 `list_runs` 결과에서 읽을 실행의 이름을 지정하고, `cursor`는 두 작업의 결과를 페이징합니다. 두 작업 모두 Claude Code v2.1.227 이상이 필요합니다.3749`list_runs`는 루틴의 최근 실행을 나열하고, `get_run_log`는 하나의 실행 로그를 읽습니다. `session_id`는 `list_runs` 결과에서 읽을 실행의 이름을 지정하고, `cursor`는 두 작업의 결과를 페이징합니다. 두 작업 모두 Claude Code v2.1.227 이상이 필요합니다.

3746 3750 

3747이 도구는 세션이 루틴이 활성화된 계획으로 claude.ai 계정으로 인증되었을 때만 사용 가능하며, 조직의 정책이 [클라우드 세션](/docs/ko/claude-code-on-the-web)을 비활성화할 때는 없습니다. Claude Code v2.1.227 이상에서 도구는 소유자가 [조직의 루틴을 비활성화](/docs/ko/routines#routines-are-disabled-by-your-organizations-policy)했을 때도 없습니다. v2.1.227 이전에는 루틴 토글만 비활성화된 세션이 여전히 도구를 표시했고 서버가 호출을 거부했습니다.3751이 도구는 세션이 루틴이 활성화된 플랜의 claude.ai 계정으로 인증되었을 때만 사용 가능하며, 조직의 정책이 [클라우드 세션](/docs/ko/claude-code-on-the-web)을 비활성화할 때는 없습니다. Claude Code v2.1.227 이상에서 도구는 소유자가 [조직의 루틴을 비활성화](/docs/ko/routines#routines-are-disabled-by-your-organizations-policy)했을 때도 없습니다. v2.1.227 이전에는 루틴 토글만 비활성화된 세션이 여전히 도구를 표시했고 서버가 호출을 거부했습니다.

3748 3752 

3749<h3 id="pushnotification">3753<h3 id="pushnotification">

3750 PushNotification3754 PushNotification


3829로컬 `.html` 또는 `.md` 파일을 호스팅된 아티팩트 페이지로 게시하거나 사용자의 게시된 아티팩트를 나열합니다. `action`을 생략하거나 `"publish"`를 전달하여 `file_path`를 게시합니다. 이는 게시 작업에 필요합니다. 아래의 각 필드는 게시에 적용됩니다:3833로컬 `.html` 또는 `.md` 파일을 호스팅된 아티팩트 페이지로 게시하거나 사용자의 게시된 아티팩트를 나열합니다. `action`을 생략하거나 `"publish"`를 전달하여 `file_path`를 게시합니다. 이는 게시 작업에 필요합니다. 아래의 각 필드는 게시에 적용됩니다:

3830 3834 

3831* `icon`: 아티팩트의 브라우저 탭 아이콘에 대한 하나의 짧은 일반 단어(예: `chart` 또는 `map`). Claude는 첫 게시에 포함하고 업데이트에서 생략하여 아티팩트의 저장된 아이콘을 유지합니다.3835* `icon`: 아티팩트의 브라우저 탭 아이콘에 대한 하나의 짧은 일반 단어(예: `chart` 또는 `map`). Claude는 첫 게시에 포함하고 업데이트에서 생략하여 아티팩트의 저장된 아이콘을 유지합니다.

3832* `favicon`: 더 이상 사용되지 않으며 Claude는 생략합니다.3836* `favicon`: deprecated되었으며 Claude는 생략합니다.

3833* `title`: HTML 파일에 `<title>` 태그가 없을 때 브라우저 탭 및 갤러리에서 게시된 페이지의 이름을 지정합니다.3837* `title`: HTML 파일에 `<title>` 태그가 없을 때 브라우저 탭 및 갤러리에서 게시된 페이지의 이름을 지정합니다.

3834* `url`: 새 페이지를 만드는 대신 기존 아티팩트를 제자리에서 업데이트하도록 대상을 지정합니다.3838* `url`: 새 페이지를 만드는 대신 기존 아티팩트를 제자리에서 업데이트하도록 대상을 지정합니다.

3835 3839 


3837 3841 

3838`"list"`를 전달하여 사용자의 게시된 아티팩트를 열거합니다. `limit` 및 `scope`만 이를 동반할 수 있습니다. `scope`는 기본값이 `"mine"`이며, 사용자가 소유한 아티팩트를 나열합니다. `"shared"`는 다른 사람이 사용자와 공유한 아티팩트를 나열하고, `"all"`은 둘 다 나열합니다.3842`"list"`를 전달하여 사용자의 게시된 아티팩트를 열거합니다. `limit` 및 `scope`만 이를 동반할 수 있습니다. `scope`는 기본값이 `"mine"`이며, 사용자가 소유한 아티팩트를 나열합니다. `"shared"`는 다른 사람이 사용자와 공유한 아티팩트를 나열하고, `"all"`은 둘 다 나열합니다.

3839 3843 

3844`limit`은 목록이 반환하는 최대 아티팩트 수를 1부터 200 사이로 설정합니다. 50을 초과하는 `limit`은 Agent SDK v0.3.292 이상이 필요합니다. `limit`이 없으면 목록은 최대 25개를 반환합니다.

3845 

3840* `capabilities`: 게시된 페이지가 사용하는 런타임 기능으로, 기능 이름으로 키 지정됩니다(예: [페이지가 호출할 수 있는 커넥터](/docs/ko/artifacts#pull-live-data-with-mcp-connectors)). 아티팩트 서비스는 선언을 검증하고 계정이 사용할 수 없거나 잘못된 구성을 제공하는 기능의 이름을 지정하는 게시를 거부합니다. `{}`를 전달하여 저장된 선언을 지우고, 재배포 시 필드를 생략하여 유지하세요. Agent SDK v0.3.235 이상이 필요합니다.3846* `capabilities`: 게시된 페이지가 사용하는 런타임 기능으로, 기능 이름으로 키 지정됩니다(예: [페이지가 호출할 수 있는 커넥터](/docs/ko/artifacts#pull-live-data-with-mcp-connectors)). 아티팩트 서비스는 선언을 검증하고 계정이 사용할 수 없거나 잘못된 구성을 제공하는 기능의 이름을 지정하는 게시를 거부합니다. `{}`를 전달하여 저장된 선언을 지우고, 재배포 시 필드를 생략하여 유지하세요. Agent SDK v0.3.235 이상이 필요합니다.

3841* `contract`: 게시된 페이지가 실행되는 런타임 버전입니다. 생략하여 아티팩트의 현재 버전을 유지하고, `"latest"`를 전달하여 업그레이드하거나, 특정 버전을 전달하여 고정하거나 롤백하세요. Agent SDK v0.3.235 이상이 필요합니다.3847* `contract`: 게시된 페이지가 실행되는 런타임 버전입니다. 생략하여 아티팩트의 현재 버전을 유지하고, `"latest"`를 전달하여 업그레이드하거나, 특정 버전을 전달하여 고정하거나 롤백하세요. Agent SDK v0.3.235 이상이 필요합니다.

3842 3848 


4059 4065 

4060서브에이전트의 결과를 반환합니다. `status` 필드에서 구분됩니다: 완료된 작업의 경우 `"completed"`, 백그라운드 작업의 경우 `"async_launched"`, Claude Code가 클라우드 세션으로 전달한 작업의 경우 `"remote_launched"`이며, 여기서 `sessionUrl`은 해당 세션으로 연결되고 `taskId`는 이를 식별합니다.4066서브에이전트의 결과를 반환합니다. `status` 필드에서 구분됩니다: 완료된 작업의 경우 `"completed"`, 백그라운드 작업의 경우 `"async_launched"`, Claude Code가 클라우드 세션으로 전달한 작업의 경우 `"remote_launched"`이며, 여기서 `sessionUrl`은 해당 세션으로 연결되고 `taskId`는 이를 식별합니다.

4061 4067 

4062`completed` 변형에서 `resolvedModel`은 서브에이전트가 시작한 모델의 이름을 지정하며, 이는 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 또는 다른 재정의가 적용될 때 요청된 `model` 입력과 다를 수 있습니다. 이 필드는 Claude Code v2.1.174 이상이 필요합니다. `async_launched`에서 작업이 백그라운드로 이동했을 때 사용 중인 모델의 이름을 지정합니다.4068`completed` 변형에서 `resolvedModel`은 서브에이전트가 시작한 모델의 이름을 지정하며, 이는 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 또는 다른 재정의가 적용될 때 요청된 `model` 입력과 다를 수 있습니다. 이 필드는 Claude Code v2.1.174 이상이 필요합니다. `async_launched`에서는 작업이 백그라운드로 이동했을 때 사용 중이던 모델의 이름을 지정합니다.

4063 4069 

4064`modelsUsed`는 서브에이전트가 사용한 모델을 순서대로 나열합니다. 이 필드는 중간 실행 스왑이 발생했을 때만 존재하며, 실행이 다시 스왑되면 모델이 다시 나타납니다. `async_launched`에서 목록은 백그라운드 처리 전에 사용된 모델을 포함합니다. `modelsUsed`와 `resolvedModel`의 백그라운드 처리 동작 모두 Claude Code v2.1.212 이상이 필요합니다.4070`modelsUsed`는 서브에이전트가 사용한 모델을 순서대로 나열합니다. 이 필드는 실행 중간에 모델 전환이 발생했을 때만 존재하며, 실행이 이전 모델로 다시 전환되면 해당 모델이 다시 나타납니다. `async_launched`에서 목록은 백그라운드로 이동하기 전에 사용된 모델을 포함합니다. `modelsUsed`와 `resolvedModel`의 백그라운드 처리 동작 모두 Claude Code v2.1.212 이상이 필요합니다.

4065 4071 

4066Claude Code가 [서브에이전트의 격리된 worktree를 유지](/docs/ko/worktrees#isolate-subagents-with-worktrees)한 경우, `completed` 결과의 `worktreePath`는 이를 찾을 수 있는 위치입니다. `worktreeBranch`는 해당 분기이며, Claude Code가 git으로 worktree를 생성했을 때 존재합니다.4072Claude Code가 [서브에이전트의 격리된 worktree를 유지](/docs/ko/worktrees#isolate-subagents-with-worktrees)한 경우, `completed` 결과의 `worktreePath`는 이를 찾을 수 있는 위치입니다. `worktreeBranch`는 해당 브랜치이며, Claude Code가 git으로 worktree를 생성했을 때 존재합니다.

4067 4073 

4068Claude Code는 전체 실행이 아닌 서브에이전트의 최종 API 요청에서 `usage`와 `totalTokens`를 채우므로, `usage.service_tier`는 해당 요청에 대해 API가 보고한 서비스 계층 문자열입니다. 존재할 때, `usage.output_tokens_details.thinking_tokens`는 해당 요청의 출력 토큰 중 사고 토큰인 토큰의 수입니다. `output_tokens_details` 필드는 TypeScript SDK v0.3.228 이상이 필요하며, 이는 Claude Code v2.1.228을 번들로 제공합니다. `fallback_credit` 필드는 TypeScript SDK v0.3.285 이상이 필요하며, 이는 Claude Code v2.1.285를 번들로 제공합니다.4074Claude Code는 전체 실행이 아닌 서브에이전트의 최종 API 요청에서 `usage`와 `totalTokens`를 채우므로, `usage.service_tier`는 해당 요청에 대해 API가 보고한 서비스 계층 문자열입니다. 존재할 때, `usage.output_tokens_details.thinking_tokens`는 해당 요청의 출력 토큰 중 사고 토큰인 토큰의 수입니다. `output_tokens_details` 필드는 TypeScript SDK v0.3.228 이상이 필요하며, 이는 Claude Code v2.1.228을 번들로 제공합니다. `fallback_credit` 필드는 TypeScript SDK v0.3.285 이상이 필요하며, 이는 Claude Code v2.1.285를 번들로 제공합니다.

4069 4075 

4070`usage.output_tokens_details`는 의미에서 [`Usage.output_tokens_details`](#usage)와 일치하며, 해당 최종 요청으로 범위가 지정되지만, 이 모든 수준이 선택 사항입니다. 예를 들어 `usage.output_tokens_details?.thinking_tokens ?? 0`처럼 객체와 필드 모두를 보호하고, 직접 읽지 마십시오.4076`usage.output_tokens_details`는 의미에서 [`Usage.output_tokens_details`](#usage)와 일치하며, 해당 최종 요청으로 범위가 지정되지만, 이 모든 수준이 선택 사항입니다. 예를 들어 `usage.output_tokens_details?.thinking_tokens ?? 0`처럼 객체와 필드 모두를 보호하고, 직접 읽지 마십시오.

4071 4077 

4072v2.1.207 이전에는 게시된 타입이 더 좁았습니다. `worktreePath`, `worktreeBranch`, `citations`, `toolStats.frameCount`, 그리고 `inference_geo`, `speed`, `iterations` 사용 필드를 생략했으며, `service_tier`를 `"standard" | "priority" | "batch"`로 입력했습니다. 타입이 선택 사항으로 표시하는 필드는 이전 버전에서 기록된 결과에 없을 수 있습니다.4078v2.1.207 이전에는 게시된 타입이 더 좁았습니다. `worktreePath`, `worktreeBranch`, `citations`, `toolStats.frameCount`, 그리고 `inference_geo`, `speed`, `iterations` 사용 필드를 생략했으며, `service_tier`의 타입을 `"standard" | "priority" | "batch"`로 지정했습니다. 타입이 선택 사항으로 표시하는 필드는 이전 버전에서 기록된 결과에 없을 수 있습니다.

4073 4079 

4074<h3 id="askuserquestion-2">4080<h3 id="askuserquestion-2">

4075 AskUserQuestion4081 AskUserQuestion


4092};4098};

4093```4099```

4094 4100 

4095질문과 사용자의 답변을 반환합니다. `response`는 사용자가 구조화된 질문에 답하는 대신 자유 형식 답변을 입력했을 때 설정됩니다. 존재할 때, Claude는 질문별 답변 목록 대신 "사용자가 응답했습니다: …"를 받습니다.4101질문과 사용자의 답변을 반환합니다. `response`는 사용자가 구조화된 질문에 답하는 대신 자유 형식 답변을 입력했을 때 설정됩니다. 존재할 때, Claude는 질문별 답변 목록 대신 "The user responded: …"를 받습니다.

4096 4102 

4097<h3 id="bash-2">4103<h3 id="bash-2">

4098 Bash4104 Bash


4138| 필드 | 전달 내용 |4144| 필드 | 전달 내용 |

4139| - | - |4145| - | - |

4140| `stdout` | 명령의 stdout과 stderr, 하나의 인터리브된 스트림으로 병합됨 |4146| `stdout` | 명령의 stdout과 stderr, 하나의 인터리브된 스트림으로 병합됨 |

4141| `stderr` | 셸 작업 디렉토리 재설정과 같이 도구 자체가 추가하는 알림, 명령의 stderr가 아님 |4147| `stderr` | 셸 작업 디렉터리 재설정과 같이 도구 자체가 추가하는 알림, 명령의 stderr가 아님 |

4142| `backgroundTaskId` | 백그라운드 명령에 대해 존재함 |4148| `backgroundTaskId` | 백그라운드 명령에 대해 존재함 |

4143 4149 

4144`timedOutAfterMs`는 밀리초 단위의 타임아웃이며, 명령이 타임아웃에 도달하고 명시적으로 시작하지 않고 백그라운드로 이동했을 때 설정됩니다. `backgroundCwdHint`는 백그라운드 명령에 `cd`, `pushd`, `popd` 또는 `chdir`과 같은 디렉토리 변경 내장이 포함되어 있을 때 설정되며, 세션 작업 디렉토리가 변경되지 않았음을 나타냅니다. 두 필드 모두 Claude Code v2.1.210 이상이 필요합니다.4150`timedOutAfterMs`는 밀리초 단위의 타임아웃이며, 명령이 명시적으로 백그라운드에서 시작된 것이 아니라 타임아웃에 도달하여 백그라운드로 이동했을 때 설정됩니다. `backgroundCwdHint`는 백그라운드 명령에 `cd`, `pushd`, `popd` 또는 `chdir`과 같은 디렉터리 변경 내장 명령이 포함되어 있을 때 설정되며, 세션 작업 디렉터리가 변경되지 않았음을 알립니다. 두 필드 모두 Claude Code v2.1.210 이상이 필요합니다.

4145 4151 

4146포그라운드에서 실행 중인 서브에이전트가 백그라운드 명령을 소유할 때, 명령은 [해당 서브에이전트의 실행이 끝날 때 종료됩니다](/docs/ko/tools-reference#when-a-background-command-stops). Claude Code는 이러한 명령에 `backgroundEndsWithFinalResponse`를 `true`로 설정하고, 명령이 턴을 유지할 때 필드를 생략합니다. 주 대화 또는 백그라운드 서브에이전트에서 시작한 명령처럼 필드는 Claude Code v2.1.227 이상이 필요합니다.4152포그라운드에서 실행 중인 서브에이전트가 백그라운드 명령을 소유할 때, 명령은 [해당 서브에이전트의 실행이 끝날 때 종료됩니다](/docs/ko/tools-reference#when-a-background-command-stops). Claude Code는 이러한 명령에 `backgroundEndsWithFinalResponse`를 `true`로 설정하며, 주 대화나 백그라운드 서브에이전트가 시작한 명령처럼 명령이 턴이 끝난 후에도 유지되는 경우에는 이 필드를 생략합니다. 이 필드는 Claude Code v2.1.227 이상이 필요합니다.

4147 4153 

4148Claude Code는 `gitOperation.commit.branch`를 git의 커밋 요약 줄에 명명된 분기로 설정하고, 분리된 HEAD에서 만든 커밋의 경우 생략합니다. 이 필드는 Agent SDK v0.3.227 이상이 필요합니다. Claude Code는 `gh pr reopen` 명령을 `reopened` PR 작업으로 보고하며, 이는 Agent SDK v0.3.234 이상이 필요합니다.4154Claude Code는 `gitOperation.commit.branch`를 git의 커밋 요약 줄에 명시된 브랜치로 설정하고, 분리된 HEAD에서 만든 커밋의 경우 생략합니다. 이 필드는 Agent SDK v0.3.227 이상이 필요합니다. Claude Code는 `gh pr reopen` 명령을 `reopened` PR 작업으로 보고하며, 이는 Agent SDK v0.3.234 이상이 필요합니다.

4149 4155 

4150<h3 id="monitor-2">4156<h3 id="monitor-2">

4151 Monitor4157 Monitor


4312 4318 

4313* 새로 생성된 파일의 경우, `originalFile`은 null이고 `structuredPatch`는 비어 있습니다4319* 새로 생성된 파일의 경우, `originalFile`은 null이고 `structuredPatch`는 비어 있습니다

4314* 덮어쓰기에서 `originalFile`은 이전 콘텐츠를 전달하지만, 해당 콘텐츠가 약 10MB보다 클 때는 예외입니다: Claude Code는 diff를 건너뛰고 `originalFile` null과 `structuredPatch` 빈 상태를 반환합니다4320* 덮어쓰기에서 `originalFile`은 이전 콘텐츠를 전달하지만, 해당 콘텐츠가 약 10MB보다 클 때는 예외입니다: Claude Code는 diff를 건너뛰고 `originalFile` null과 `structuredPatch` 빈 상태를 반환합니다

4315* 쓰기가 아무것도 변경하지 않거나 diff가 타임아웃되면 `structuredPatch`도 비어 있습니다4321* 쓰기가 아무것도 변경하지 않거나 diff가 시간 초과되면 `structuredPatch`도 비어 있습니다

4316 4322 

4317<h3 id="glob-2">4323<h3 id="glob-2">

4318 Glob4324 Glob


4356};4362};

4357```4363```

4358 4364 

4359검색 결과를 반환합니다. 형태는 `mode`에 따라 다릅니다: 파일 목록, 일치 항목이 있는 콘텐츠 또는 일치 항목 수. `count` 모드에서 `numFiles`와 `numMatches`는 페이지 매김된 슬라이스가 아닌 전체 결과 집합에 대한 합계입니다. v2.1.208 이전에는 나열된 항목을 잘린 `head_limit` 또는 `offset`도 해당 합계를 잘랐습니다.4365검색 결과를 반환합니다. 형태는 `mode`에 따라 다릅니다: 파일 목록, 일치 항목이 있는 콘텐츠 또는 일치 항목 수. `count` 모드에서 `numFiles`와 `numMatches`는 페이지 매김된 슬라이스가 아닌 전체 결과 집합에 대한 합계입니다. v2.1.208 이전에는 나열된 항목을 자른 `head_limit` 또는 `offset`이 해당 합계도 잘랐습니다.

4360 4366 

4361`totalFiles`는 Claude Code v2.1.208 이상이 필요하며 `files_with_matches` 모드에서 `head_limit` 및 `offset` 페이지 매김 전 결과의 총 수를 보고합니다. `totalLines`는 Claude Code v2.1.210 이상이 필요하며 `content` 모드에서 페이지 매김 전 줄의 총 수를 보고합니다.4367`totalFiles`는 Claude Code v2.1.208 이상이 필요하며 `files_with_matches` 모드에서 `head_limit` 및 `offset` 페이지 매김 전 결과의 총 수를 보고합니다. `totalLines`는 Claude Code v2.1.210 이상이 필요하며 `content` 모드에서 페이지 매김 전 줄의 총 수를 보고합니다.

4362 4368 


4424 4430 

4425HTTP 상태 및 메타데이터를 포함한 가져온 콘텐츠를 반환합니다.4431HTTP 상태 및 메타데이터를 포함한 가져온 콘텐츠를 반환합니다.

4426 4432 

4427`artifactRead`는 Claude Code가 아티팩트 읽기의 자체 기록이며, Claude가 세션이 게시할 수 있는 아티팩트를 가져왔을 때만 존재합니다. Claude Code는 세션이 재개될 때 이를 다시 읽어서 나중의 게시가 올바른 버전을 기반으로 하도록 합니다. 코드는 이에 대해 조치할 필요가 없습니다. `slug`는 아티팩트의 이름을 지정하고, `ver`는 읽기가 기록한 버전이며 기록하지 않았을 때 없으며, `seeded: false`는 전체 소스가 Claude에 도달하지 않은 읽기를 표시합니다. `seeded` 필드는 Agent SDK v0.3.239 이상이 필요합니다.4433`artifactRead`는 Claude Code 자체의 아티팩트 읽기 기록이며, Claude가 세션이 게시할 수 있는 아티팩트를 가져왔을 때만 존재합니다. Claude Code는 세션이 재개될 때 이를 다시 읽어서 나중의 게시가 올바른 버전을 기반으로 하도록 합니다. 코드는 이에 대해 조치할 필요가 없습니다. `slug`는 아티팩트의 이름을 지정하고, `ver`는 읽기가 기록한 버전이며 기록된 버전이 없으면 존재하지 않고, `seeded: false`는 전체 소스가 Claude에 도달하지 않은 읽기를 표시합니다. `seeded` 필드는 Agent SDK v0.3.239 이상이 필요합니다.

4428 4434 

4429<h3 id="websearch-2">4435<h3 id="websearch-2">

4430 WebSearch4436 WebSearch


4475 4481 

4476| 필드 | 타입 | 설명 |4482| 필드 | 타입 | 설명 |

4477| - | - | - |4483| - | - | - |

4478| `status` | `"async_launched" \| "remote_launched"` | 도구가 호출을 수락했습니다. 인프로세스 실행의 경우 `"async_launched"`, 클라우드 세션으로 전달된 실행의 경우 `"remote_launched"` |4484| `status` | `"async_launched" \| "remote_launched"` | 도구가 호출을 수락했습니다. 인프로세스 실행의 경우 `"async_launched"`, 인프로세스로 실행하는 대신 클라우드 세션으로 전달된 실행의 경우 `"remote_launched"` |

4479| `taskId` | `string` | 실행을 위한 백그라운드 작업 식별자 |4485| `taskId` | `string` | 실행을 위한 백그라운드 작업 식별자 |

4480| `taskType` | `"local_workflow" \| "remote_agent"` | 등록된 백그라운드 작업의 작업 타입, `status` 팔과 일치함 |4486| `taskType` | `"local_workflow" \| "remote_agent"` | 등록된 백그라운드 작업의 작업 타입, `status` 분기 항목과 일치함 |

4481| `workflowName` | `string` | 워크플로우 스크립트의 `meta.name` |4487| `workflowName` | `string` | 워크플로 스크립트의 `meta.name` |

4482| `runId` | `string` | 나중의 호출에서 `resumeFromRunId`로 전달할 워크플로우 실행 식별자. `remote_launched` 실행의 경우 없으며, 클라우드 세션 URL이 재개 핸들입니다 |4488| `runId` | `string` | 나중의 호출에서 `resumeFromRunId`로 전달할 워크플로 실행 식별자. `remote_launched` 실행의 경우 없으며, 클라우드 세션 URL이 재개 핸들입니다 |

4483| `summary` | `string` | 워크플로우가 수행하는 작업에 대한 한 줄 설명 |4489| `summary` | `string` | 워크플로가 수행하는 작업에 대한 한 줄 설명 |

4484| `transcriptDir` | `string` | 실행 중에 서브에이전트 트랜스크립트가 작성되는 디렉토리 |4490| `transcriptDir` | `string` | 실행 중에 서브에이전트 트랜스크립트가 작성되는 디렉터리 |

4485| `scriptPath` | `string` | 이 실행을 위해 유지된 워크플로우 스크립트의 경로입니다. 스크립트를 다시 보내지 않고 다시 실행하려면 편집하고 `scriptPath`로 다시 전달하십시오 |4491| `scriptPath` | `string` | 이 실행을 위해 유지된 워크플로 스크립트의 경로입니다. 스크립트를 다시 보내지 않고 다시 실행하려면 편집하고 `scriptPath`로 다시 전달하십시오 |

4486| `sessionUrl` | `string` | 클라우드 세션 URL, `status`가 `"remote_launched"`일 때 설정됨 |4492| `sessionUrl` | `string` | 클라우드 세션 URL, `status`가 `"remote_launched"`일 때 설정됨 |

4487| `warning` | `string` | 로컬 git 상태가 클라우드 세션이 복제할 푸시된 분기와 다르게 발산하는 것과 같은 차단하지 않는 알림 |4493| `warning` | `string` | 로컬 git 상태가 클라우드 세션이 복제할 푸시된 브랜치와 달라진 경우와 같은 차단하지 않는 알림 |

4488| `error` | `string` | 스크립트가 구문 검사에 실패할 때 설정됩니다. 존재할 때, 실행은 시작된 상태에도 불구하고 시작되지 않았습니다 |4494| `error` | `string` | 스크립트가 구문 검사에 실패할 때 설정됩니다. 존재할 때, 실행은 시작된 상태에도 불구하고 시작되지 않았습니다 |

4489 4495 

4490<h3 id="todowrite-2">4496<h3 id="todowrite-2">


4623};4629};

4624```4630```

4625 4631 

4626계획 모드 종료 후 계획 상태를 반환합니다.4632플랜 모드 종료 후 계획 상태를 반환합니다.

4627 4633 

4628<h3 id="listmcpresources-2">4634<h3 id="listmcpresources-2">

4629 ListMcpResources4635 ListMcpResources


4712};4718};

4713```4719```

4714 4720 

4715계획 모드가 입력되었음을 확인하는 메시지를 반환합니다.4721플랜 모드에 진입했음을 확인하는 메시지를 반환합니다.

4716 4722 

4717<h3 id="croncreate-2">4723<h3 id="croncreate-2">

4718 CronCreate4724 CronCreate


4816};4822};

4817```4823```

4818 4824 

4819푸시 또는 로컬 알림이 전송되었는지 여부와 배달이 건너뛴 이유를 포함한 배달 세부 정보를 반환합니다.4825푸시 또는 로컬 알림이 전송되었는지 여부와 전송이 건너뛰어진 이유를 포함한 전송 세부 정보를 반환합니다.

4820 4826 

4821<h3 id="reportfindings-2">4827<h3 id="reportfindings-2">

4822 ReportFindings4828 ReportFindings


4874 rel?: "mine" | "shared";4880 rel?: "mine" | "shared";

4875 }>;4881 }>;

4876 truncated?: boolean;4882 truncated?: boolean;

4883 total?: number;

4884 total_at_least?: true;

4877 scope?: "shared" | "all";4885 scope?: "shared" | "all";

4878 };4886 };

4879```4887```

4880 4888 

4881게시된 페이지의 `url`과 게시 작업을 위해 게시된 로컬 `path`를 반환하며, 게시가 기존 아티팩트를 재배포했을 때 `updated`가 true로 설정되고, `warnings`는 게시 시간 권고사항을 전달합니다. 목록 작업은 대신 `artifacts` 행을 반환하며, 더 많은 아티팩트가 요청된 제한보다 존재할 때 `truncated`가 설정됩니다. 범위가 `"mine"`이 아닌 목록에서 각 행은 사용자가 아티팩트를 소유하는지 또는 공유되었는지를 표시하는 `rel`을 전달하고, 출력의 `scope`는 어떤 비기본 범위가 목록을 생성했는지 기록합니다. 둘 다 기본 목록에서 없습니다.4889게시 작업의 경우 게시된 페이지의 `url`과 게시된 로컬 `path`를 반환하며, 게시가 기존 아티팩트를 재배포했을 때 `updated`가 true로 설정되고, `warnings`는 게시 시점의 권고 사항을 전달합니다. 목록 작업은 대신 `artifacts` 행을 반환하며, 요청된 제한보다 더 많은 아티팩트가 존재할 때 `truncated`가 설정됩니다. 범위가 `"mine"`이 아닌 목록에서 각 행은 사용자가 아티팩트를 소유하는지 또는 공유받았는지를 표시하는 `rel`을 전달하고, 출력의 `scope`는 어떤 비기본 범위가 목록을 생성했는지 기록합니다. 둘 다 기본 목록에서는 존재하지 않습니다.

4890 

4891목록 결과는 또한 `total`을 보고합니다. 이는 나열된 범위와 일치하는 아티팩트의 수로, `limit`을 초과하는 아티팩트도 포함합니다. `total_at_least`가 설정되면 이 숫자는 하한이며 더 많은 아티팩트가 존재할 수 있습니다. 두 필드 모두 Agent SDK v0.3.292 이상이 필요합니다.

4882 4892 

4883<h3 id="projects-2">4893<h3 id="projects-2">

4884 Projects4894 Projects


4961};4971};

4962```4972```

4963 4973 

4964디렉토리 리소스의 직접 자식을 반환합니다. 하위 디렉토리는 mimeType `"inode/directory"`로 나타나며, `error`는 서버가 디렉토리를 나열할 수 없을 때 사람이 읽을 수 있는 메시지를 전달합니다.4974디렉터리 리소스의 직접 자식을 반환합니다. 하위 디렉터리는 mimeType `"inode/directory"`로 나타나며, `error`는 서버가 디렉터리를 나열할 수 없을 때 사람이 읽을 수 있는 메시지를 전달합니다.

4965 4975 

4966<h3 id="refreshmcptools-2">4976<h3 id="refreshmcptools-2">

4967 RefreshMcpTools4977 RefreshMcpTools

agent-teams.md +2 −0

Details

1593. [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/ko/model-config#environment-variables)이 `inherit` 이외의 값으로 설정된 경우입니다.1593. [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/ko/model-config#environment-variables)이 `inherit` 이외의 값으로 설정된 경우입니다.

1604. 리더의 현재 모델입니다.1604. 리더의 현재 모델입니다.

161 161 

162설치된 [mod](/docs/ko/plugins/mods/overview)가 [`agent.spawn`](/docs/ko/plugins/mods/reference#subagents) 훅에서 모델을 설정하면, Claude Code는 첫 번째 소스 대신 해당 모델을 사용합니다.

163 

162[`CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1`](/docs/ko/sub-agents#run-every-subagent-on-one-model)을 설정하면, 처음 두 소스는 적용되지 않습니다. Claude Code는 `CLAUDE_CODE_SUBAGENT_MODEL`이 `inherit` 이외의 값으로 설정된 경우 모든 팀원의 모델을 선택하고, 그렇지 않으면 리더의 현재 모델에서 선택합니다. Claude Code v2.1.257 이상이 필요합니다.164[`CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1`](/docs/ko/sub-agents#run-every-subagent-on-one-model)을 설정하면, 처음 두 소스는 적용되지 않습니다. Claude Code는 `CLAUDE_CODE_SUBAGENT_MODEL`이 `inherit` 이외의 값으로 설정된 경우 모든 팀원의 모델을 선택하고, 그렇지 않으면 리더의 현재 모델에서 선택합니다. Claude Code v2.1.257 이상이 필요합니다.

163 165 

164v2.1.251 이전에는 `CLAUDE_CODE_SUBAGENT_MODEL`이 이 순서에서 첫 번째였습니다.166v2.1.251 이전에는 `CLAUDE_CODE_SUBAGENT_MODEL`이 이 순서에서 첫 번째였습니다.

agent-view.md +12 −7

Details

226 226 

227엿보기 패널에 답변을 입력하고 `Enter`를 눌러 해당 세션으로 전송합니다. 답변 앞에 `!`를 붙여 Bash 명령을 대신 전송합니다. 답변이 어떻게 처리되는지는 세션과 전송하는 내용에 따라 다릅니다:227엿보기 패널에 답변을 입력하고 `Enter`를 눌러 해당 세션으로 전송합니다. 답변 앞에 `!`를 붙여 Bash 명령을 대신 전송합니다. 답변이 어떻게 처리되는지는 세션과 전송하는 내용에 따라 다릅니다:

228 228 

229* 작업 중인 세션: 답변은 응답을 중단하는 대신 세션의 [메시지 대기열](/docs/ko/interactive-mode#queue-messages-while-claude-works)에 추가되며, [대기열의 입력이 적용될 때](/docs/ko/interactive-mode#when-claude-code-sends-what-you-queued) 적용됩니다. [명령](/docs/ko/commands)은 세션 자체의 프롬프트에서 입력하자마자 실행되는 명령이라도 턴이 끝날 때까지 기다립니다229* 작업 중인 세션: `/model`, `/effort`, `/rename`, `/usage`는 즉시 실행됩니다. 그 외의 답변은 응답을 중단하는 대신 세션의 [메시지 대기열](/docs/ko/interactive-mode#queue-messages-while-claude-works)에 추가되며, [대기열의 입력이 적용될 때](/docs/ko/interactive-mode#when-claude-code-sends-what-you-queued) 적용됩니다. 그 밖의 [명령](/docs/ko/commands)은 세션 자체의 프롬프트에서 입력하자마자 실행되는 명령이라도 턴이 끝날 때까지 기다립니다

230* 정확히 `/stop`인 답변: 세션에 전달되는 대신 세션이 작업 중이든 입력을 기다리든 즉시 세션을 중지합니다230* 정확히 `/stop`인 답변: 세션에 전달되는 대신 세션이 작업 중이든 입력을 기다리든 즉시 세션을 중지합니다

231* [셸 작업](#run-a-shell-command): `/stop`을 포함한 답변이 입력된 텍스트로 명령의 터미널에 전달됩니다231* [셸 작업](#run-a-shell-command): `/stop`을 포함한 답변이 입력된 텍스트로 명령의 터미널에 전달됩니다

232 232 


238 238 

239[`PermissionRequest`](/docs/ko/hooks#permissionrequest) 또는 [`PreToolUse`](/docs/ko/hooks#pretooluse) 훅이 Claude Code가 세션이 요청하는 호출에 대해 검증할 수 없는 출력을 반환하면 행은 훅 이벤트와 `hook output invalid:`를 보류 중인 요청의 텍스트 앞에 검증 오류와 함께 표시합니다. 다른 방식으로 실패하는 훅의 경우 행은 훅이 실패했다고 표시합니다. 세션은 여전히 동일한 요청을 기다립니다.239[`PermissionRequest`](/docs/ko/hooks#permissionrequest) 또는 [`PreToolUse`](/docs/ko/hooks#pretooluse) 훅이 Claude Code가 세션이 요청하는 호출에 대해 검증할 수 없는 출력을 반환하면 행은 훅 이벤트와 `hook output invalid:`를 보류 중인 요청의 텍스트 앞에 검증 오류와 함께 표시합니다. 다른 방식으로 실패하는 훅의 경우 행은 훅이 실패했다고 표시합니다. 세션은 여전히 동일한 요청을 기다립니다.

240 240 

241전달할 수 없는 답변(백그라운드 서비스에 연결할 수 없거나 전송이 실패하는 경우)은 저장되고 프로세스가 다시 시작될 때 다음 프롬프트로 세션에 전송되며, 오류 메시지는 답변이 저장되었음을 나타냅니다. `!`로 접두사가 붙은 답변은 저장되지 않습니다. 저장된 텍스트가 Bash 명령으로 실행되지 않고 일반 프롬프트로 세션에 도달하기 때문입니다.241답변을 전달할 수 없으면 오류 메시지에 답변이 저장되었는지 여부가 표시됩니다. `!` 또는 `/`로 시작하는 답변은 저장되지 않습니다. Claude Code는 다음에 세션을 다시 시작할 때 저장된 답변을 세션의 다음 프롬프트로 전송합니다. 그 외의 답변은 다시 전송하세요.

242 242 

243[음성 받아쓰기](/docs/ko/voice-dictation)가 [누르고 있기 모드](/docs/ko/voice-dictation#hold-to-record)로 활성화된 경우, 답변 입력에 포커스가 있는 동안 푸시-투-톡 키를 누르고 있으면 입력하는 대신 답변을 받아쓸 수 있습니다. 에이전트 뷰 하단의 디스패치 입력에서도 동일하게 작동합니다.243[음성 받아쓰기](/docs/ko/voice-dictation)가 [누르고 있기 모드](/docs/ko/voice-dictation#hold-to-record)로 활성화된 경우, 답변 입력에 포커스가 있는 동안 푸시-투-톡 키를 누르고 있으면 입력하는 대신 답변을 받아쓸 수 있습니다. 에이전트 뷰 하단의 디스패치 입력에서도 동일하게 작동합니다.

244 244 


288 288 

289`←`를 누른 행은 화살표 키 또는 마우스로 선택을 이동한 후에도 굵고 흐릿하지 않은 이름을 유지하므로 어느 세션에서 왔는지 알 수 있습니다.289`←`를 누른 행은 화살표 키 또는 마우스로 선택을 이동한 후에도 굵고 흐릿하지 않은 이름을 유지하므로 어느 세션에서 왔는지 알 수 있습니다.

290 290 

291도구가 실행 중일 때 `←`를 누르면 Claude Code는 완료될 때까지 최대 약 10초를 기다린 후 백그라운드로 보내며, Claude는 백그라운드 세션에서 응답을 계속합니다. 대신 기다리지 않고 즉시 백그라운드로 보내려면 `←`를 다시 누릅니다. 진행 중인 작업을 백그라운드 세션으로 이월할 수 없으면 Claude Code는 [`/background`](#from-inside-a-session)와 마찬가지로 `Background this session?` 대화 상자를 먼저 표시합니다.291도구가 실행 중일 때 `←`를 누르면 Claude Code는 도구가 완료될 때까지 기다린 후 백그라운드로 보내며, Claude는 백그라운드 세션에서 응답을 계속합니다. 대신 기다리지 않고 즉시 백그라운드로 보내려면 `←`를 다시 누릅니다. 진행 중인 작업을 백그라운드 세션으로 이월할 수 없으면 Claude Code는 [`/background`](#from-inside-a-session)와 마찬가지로 `Background this session?` 대화 상자를 먼저 표시합니다.

292 292 

293Claude가 대화에서 시작한 [포그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)가 여전히 실행 중인 동안에는 10초 제한이 적용되지 않습니다. Claude Code는 작업이 이월되도록 계속 기다리며, 기다리는 동안 `Still backgrounding after the current tool` 알림을 표시합니다. `←`를 다시 눌러 대기 없이 백그라운드로 보내면 해당 서브에이전트가 처음부터 다시 시작됩니다. Claude Code는 [동적 워크플로](/docs/ko/workflows)가 실행 중인 서브에이전트를 기다리지 않습니다. 워크플로에 서브에이전트가 실행 중이면 Claude Code는 대신 `Background this session?` 대화 상자를 표시합니다.293약 10초가 지나면 Claude Code는 더 이상 기다리지 않고 세션을 백그라운드로 보냅니다. 단, 다음과 같은 경우는 예외입니다:

294 294 

295Claude Code는 프롬프트 입력에 미전송 텍스트가 있는 동안 세션을 백그라운드로 보내지 않습니다. 텍스트가 터미널의 입력 상자에 남아 있고 백그라운드 세션으로 이동하지 않기 때문입니다. Claude Code가 세션을 백그라운드로 보내기를 기다리는 동안 입력에 텍스트를 입력하면 `Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again.`으로 전환을 취소합니다.295* **포그라운드 서브에이전트가 여전히 실행 중인 경우**: Claude Code는 Claude가 시작한 [포그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)의 작업이 이월되도록 계속 기다리며, `Still backgrounding after the current tool`을 표시합니다. 기다리지 않고 백그라운드로 보내려면 `←`를 다시 누릅니다. 이 경우 해당 서브에이전트가 처음부터 다시 시작됩니다.

296* **권한 프롬프트 또는 질문이 답변을 기다리는 경우**: 권한 프롬프트나 Claude가 한 질문이 대기하는 동안 Claude Code는 계속 기다리며 `Still backgrounding after the current tool — a question is waiting for your answer.`를 표시합니다.

297* **프롬프트 입력에 텍스트를 입력하는 경우**: 미전송 텍스트는 터미널의 입력 상자에 남아 있고 백그라운드 세션으로 이동하지 않으므로 Claude Code는 전환을 취소합니다. 이때 `Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again.`를 표시합니다.

298* **대기열의 메시지를 이동할 수 없는 경우**: [Claude가 작업하는 동안 대기열에 추가한](/docs/ko/interactive-mode#queue-messages-while-claude-works) 메시지는 대화와 함께 백그라운드 세션으로 이동합니다. 그중 하나라도 이동할 수 없으면 세션은 포그라운드에 남고 Claude Code는 `Cannot open agents — 1 queued message can't move to the background. Press ← again once Claude has read it.`와 같은 알림을 표시합니다.

296 299 

297`←`를 누르면 대화에 메시지가 아직 없을 때도 세션의 행이 생성되므로 `→`로 여전히 해당 세션으로 돌아갈 수 있습니다.300`←`를 누르면 대화에 메시지가 아직 없을 때도 세션의 행이 생성되므로 `→`로 여전히 해당 세션으로 돌아갈 수 있습니다.

298 301 


876 879 

877각 세션은 감독자 아래의 자체 Claude Code 프로세스이며, 해당 프로세스에 일어나는 일은 세션의 상태에 따라 달라집니다:880각 세션은 감독자 아래의 자체 Claude Code 프로세스이며, 해당 프로세스에 일어나는 일은 세션의 상태에 따라 달라집니다:

878 881 

879* **작업 중, 권한 프롬프트 또는 다른 대화 상자에서 일시 중지됨, 또는 연결됨**: 프로세스가 계속 실행됩니다. 실행 중인 서브에이전트, 워크플로 또는 모니터는 작업 중으로 간주됩니다.882* **작업 중, 권한 프롬프트 또는 다른 대화 상자에서 일시 중지됨, 또는 연결됨**: 프로세스가 계속 실행됩니다. 실행 중인 서브에이전트, 워크플로 또는 모니터는 작업 중으로 간주되며, `/loop` 깨우기와 같은 대기 중인 [세션 범위 예약 작업](/docs/ko/scheduled-tasks)도 마찬가지입니다.

880* **완료되었거나 다음 메시지를 기다리는 중이며, 약 1시간 동안 연결되지 않음**: 감독자가 리소스를 확보하기 위해 프로세스를 중지합니다. 질문을 하여 턴을 끝낸 세션은 다음 메시지를 기다리는 중으로 간주됩니다. 대화는 디스크에 저장되며, 다음에 연결하거나 답변할 때 세션은 중단된 위치에서 재개됩니다. `Ctrl+T`로 세션을 고정하여 프로세스를 계속 실행 상태로 유지합니다.883* **완료되었거나 다음 메시지를 기다리는 중이며, 약 1시간 동안 연결되지 않음**: 감독자가 리소스를 확보하기 위해 프로세스를 중지합니다. 질문을 하여 턴을 끝낸 세션은 다음 메시지를 기다리는 중으로 간주됩니다. 대화는 디스크에 저장되며, 다음에 연결하거나 답변할 때 세션은 중단된 위치에서 재개됩니다. `Ctrl+T`로 세션을 고정하여 프로세스를 계속 실행 상태로 유지합니다.

881* **감독자가 실행 중인 동안 예기치 않게 종료됨**: 감독자가 프로세스를 다시 시작합니다. `←` 또는 `/background`로 직접 백그라운드로 보낸 세션을 종료하면(예: `kill` 사용) 다시 시작하는 대신 중지된 것으로 표시됩니다. 종료로 인해 끝난 세션의 경우 [세션이 종료 후 실패 또는 중지로 표시됨](#sessions-show-as-failed-after-shutdown)을 참조하세요.884* **감독자가 실행 중인 동안 예기치 않게 종료됨**: 감독자가 프로세스를 다시 시작합니다. `←` 또는 `/background`로 직접 백그라운드로 보낸 세션을 종료하면(예: `kill` 사용) 다시 시작하는 대신 중지된 것으로 표시됩니다. 종료로 인해 끝난 세션의 경우 [세션이 종료 후 실패 또는 중지로 표시됨](#sessions-show-as-failed-after-shutdown)을 참조하세요.

882* **자동 업데이트 후**: 감독자가 자신을 새 버전으로 다시 시작하고 유휴 세션을 백그라운드에서 이동합니다. 작업 중이거나, 입력을 기다리거나, 연결된 세션은 중단되지 않습니다.885* **자동 업데이트 후**: 감독자가 자신을 새 버전으로 다시 시작하고 유휴 세션을 백그라운드에서 이동합니다. 작업 중이거나, 입력을 기다리거나, 연결된 세션은 중단되지 않습니다.


970* 예를 들어 `claude --resume` 또는 `/resume`으로 대화를 다시 시작한 터미널: 행은 `Open in a terminal`을 표시하고 거기서 계속하라는 힌트를 표시하며, 행을 열면 `Can't open — this session is running in another terminal`을 표시합니다. 해당 터미널에서 계속하거나 종료한 후 행을 다시 엽니다.973* 예를 들어 `claude --resume` 또는 `/resume`으로 대화를 다시 시작한 터미널: 행은 `Open in a terminal`을 표시하고 거기서 계속하라는 힌트를 표시하며, 행을 열면 `Can't open — this session is running in another terminal`을 표시합니다. 해당 터미널에서 계속하거나 종료한 후 행을 다시 엽니다.

971* 다른 비대화형 Claude Code 프로세스, 예를 들어 같은 대화를 위한 백그라운드 세션 프로세스가 아직 종료되지 않은 경우: 행을 열면 `This conversation is already open in another running Claude session`을 표시합니다. 해당 프로세스를 사용하거나 종료될 때까지 기다린 후 행을 다시 엽니다.974* 다른 비대화형 Claude Code 프로세스, 예를 들어 같은 대화를 위한 백그라운드 세션 프로세스가 아직 종료되지 않은 경우: 행을 열면 `This conversation is already open in another running Claude session`을 표시합니다. 해당 프로세스를 사용하거나 종료될 때까지 기다린 후 행을 다시 엽니다.

972 975 

973Claude Code는 거부된 시도로 입력한 답변을 저장하고 세션이 다음에 시작될 때 전송합니다.976Claude Code는 거부된 시도로 입력한 답변을 저장하고 세션이 다음에 시작될 때 전송합니다. 단, `!` 또는 `/`로 시작하는 답변은 제외됩니다.

974 977 

975<h3 id="opening-a-session-says-it-has-no-saved-transcript">978<h3 id="opening-a-session-says-it-has-no-saved-transcript">

976 세션을 열면 저장된 트랜스크립트가 없다고 표시됨979 세션을 열면 저장된 트랜스크립트가 없다고 표시됨


1093| 버전 | 변경 사항 |1096| 버전 | 변경 사항 |

1094| - | - |1097| - | - |

1095| v2.1.290 | [`claude attach` 및 `claude logs`](#manage-sessions-from-the-shell)는 ID 대신 실행 중인 세션 이름의 일부를 받을 수 있습니다. |1098| v2.1.290 | [`claude attach` 및 `claude logs`](#manage-sessions-from-the-shell)는 ID 대신 실행 중인 세션 이름의 일부를 받을 수 있습니다. |

1099| v2.1.290 | 작업 중인 세션에 [엿보기 회신](#peek-and-reply)으로 보낸 `/model`, `/effort`, `/rename`, `/usage`는 즉시 실행됩니다. |

1100| v2.1.290 | 전달할 수 없는 [엿보기 회신](#peek-and-reply)은 `/`로 시작하거나, 세션의 프로세스가 실행 중인 동안 미리 정의된 선택지가 있는 질문에 답하는 경우 더 이상 다음 재시작을 위해 저장되지 않습니다. |

1096| v2.1.288 | `Ctrl+F`는 이름으로 세션을 찾고, `Alt+↑` / `Alt+↓`는 그룹 헤더 사이를 이동합니다. 이 두 가지와 `Ctrl+R`은 [다시 바인딩](/docs/ko/keybindings#agents-actions)할 수 있습니다. |1101| v2.1.288 | `Ctrl+F`는 이름으로 세션을 찾고, `Alt+↑` / `Alt+↓`는 그룹 헤더 사이를 이동합니다. 이 두 가지와 `Ctrl+R`은 [다시 바인딩](/docs/ko/keybindings#agents-actions)할 수 있습니다. |

1097| v2.1.287 | [`n:<text>` 필터](#filter-sessions)는 이름이나 첫 프롬프트로 세션을 찾습니다. 필터가 활성화되어 있는 동안에는 접어 둔 그룹이 펼쳐져 일치 항목을 표시하고 첫 번째 일치 항목이 선택되므로 `Enter`로 바로 열 수 있습니다. |1102| v2.1.287 | [`n:<text>` 필터](#filter-sessions)는 이름이나 첫 프롬프트로 세션을 찾습니다. 필터가 활성화되어 있는 동안에는 접어 둔 그룹이 펼쳐져 일치 항목을 표시하고 첫 번째 일치 항목이 선택되므로 `Enter`로 바로 열 수 있습니다. |

1098| v2.1.287 | [엿보기 회신](#peek-and-reply)으로 보낸 명령은 세션의 현재 턴이 끝날 때 실행되며, 세션 자체 프롬프트에서 입력하는 즉시 실행되는 명령도 마찬가지입니다. 정확히 `/stop`인 회신은 세션을 즉시 중지합니다. |1103| v2.1.287 | [엿보기 회신](#peek-and-reply)으로 보낸 명령은 세션의 현재 턴이 끝날 때 실행되며, 세션 자체 프롬프트에서 입력하는 즉시 실행되는 명령도 마찬가지입니다. 정확히 `/stop`인 회신은 세션을 즉시 중지합니다. |

amazon-bedrock.md +49 −12

Details

136 2. AWS 자격 증명 구성136 2. AWS 자격 증명 구성

137</h3>137</h3>

138 138 

139Claude Code는 기본 AWS SDK 자격 증명 체인을 사용합니다. 다음 방법 중 하나를 사용하여 자격 증명을 설정합니다.139Claude Code는 기본 AWS SDK 자격 증명 체인을 사용합니다. Amazon EC2 인스턴스 프로필이나 Amazon ECS 작업 자격 증명처럼 머신이 이미 해당 체인에 자격 증명을 제공하는 경우 [3단계](#3-configure-claude-code)로 건너뜁니다.

140 140 

141**옵션 A: AWS CLI 구성**141AWS는 특정 목적으로 구축된 소프트웨어를 개발하거나 실제 데이터를 다룰 때 [IAM 사용자의 액세스 키를 사용하지 않도록 경고](https://docs.aws.amazon.com/cli/latest/userguide/cli-authentication-user.html)합니다. 다음 방법 중 하나를 사용하여 자격 증명을 설정합니다.

142 

143* [`aws configure`](#use-aws-configure): IAM 사용자의 액세스 키를 `~/.aws` 디렉터리의 프로필에 저장합니다

144* [액세스 키 환경 변수](#export-an-access-key): 액세스 키 또는 세션 토큰이 포함된 임시 자격 증명을 현재 셸에서만 설정합니다

145* [SSO 프로필](#use-an-sso-profile): 브라우저에서 IAM Identity Center를 통해 로그인하고 임시 자격 증명을 받습니다. IAM Identity Center를 통해 AWS 계정에 액세스하는 경우 이 방법을 사용합니다.

146* [AWS Management Console 자격 증명](#use-aws-management-console-credentials): AWS Management Console 자격 증명으로 브라우저를 통해 로그인하고 임시 자격 증명을 받습니다. 루트 사용자, IAM 사용자 또는 IAM 페더레이션을 통해 AWS 계정에 액세스하는 경우 AWS는 [이 방법을 권장](https://docs.aws.amazon.com/signin/latest/userguide/command-line-sign-in.html)합니다.

147* [Amazon Bedrock API 키](#use-an-amazon-bedrock-api-key): AWS 자격 증명 대신 Amazon Bedrock에서만 작동하는 bearer 토큰으로 인증합니다

148 

149<h4 id="use-aws-configure">

150 `aws configure` 사용

151</h4>

152 

153`aws configure`를 실행하고 메시지가 표시되면 액세스 키 ID, 보안 액세스 키, 기본 영역을 입력합니다.

142 154 

143```bash theme={null}155```bash theme={null}

144aws configure156aws configure

145```157```

146 158 

147**옵션 B: 환경 변수(액세스 키)**159AWS CLI는 키를 `~/.aws/credentials`의 `default` 프로필에 저장하며, 자격 증명 체인은 이 위치에서 키를 읽습니다.

160 

161<h4 id="export-an-access-key">

162 액세스 키 내보내기

163</h4>

164 

165액세스 키를 환경 변수로 내보냅니다. `AWS_SESSION_TOKEN`은 임시 자격 증명을 사용할 때만 필요하므로 액세스 키가 IAM 사용자의 것이라면 해당 줄을 생략합니다.

148 166 

149```bash theme={null}167```bash theme={null}

150export AWS_ACCESS_KEY_ID=your-access-key-id168export AWS_ACCESS_KEY_ID=your-access-key-id


152export AWS_SESSION_TOKEN=your-session-token170export AWS_SESSION_TOKEN=your-session-token

153```171```

154 172 

155**옵션 C: 환경 변수(SSO 프로필)**173<h4 id="use-an-sso-profile">

174 SSO 프로필 사용

175</h4>

156 176 

157이 명령을 실행하기 전에 `your-profile-name`을 AWS 프로필의 이름으로 바꿉니다.177프로필이 없다면 `aws configure sso`로 프로필을 생성합니다. 그런 다음 IAM Identity Center에 로그인하고 자격 증명 체인이 해당 프로필을 사용하도록 `AWS_PROFILE`을 설정합니다. 이 명령을 실행하기 전에 `your-profile-name`을 AWS 프로필의 이름으로 바꿉니다.

158 178 

159```bash theme={null}179```bash theme={null}

160aws sso login --profile=your-profile-name180aws sso login --profile=your-profile-name


164 184 

165Claude Code는 프로필의 `sso_region`으로 명명된 IAM Identity Center 영역에서 역할 자격 증명을 요청합니다. 이는 Amazon Bedrock을 실행하는 영역과 일치할 필요가 없습니다. v2.1.207에서는 Amazon Bedrock 영역이 `sso_region`을 재정의했으므로 IAM Identity Center 인스턴스가 다른 영역에 있는 프로필은 `Session token not found or invalid` 오류로 인증에 실패했습니다.185Claude Code는 프로필의 `sso_region`으로 명명된 IAM Identity Center 영역에서 역할 자격 증명을 요청합니다. 이는 Amazon Bedrock을 실행하는 영역과 일치할 필요가 없습니다. v2.1.207에서는 Amazon Bedrock 영역이 `sso_region`을 재정의했으므로 IAM Identity Center 인스턴스가 다른 영역에 있는 프로필은 `Session token not found or invalid` 오류로 인증에 실패했습니다.

166 186 

167**옵션 D: AWS Management Console 자격 증명**187<h4 id="use-aws-management-console-credentials">

188 AWS Management Console 자격 증명 사용

189</h4>

190 

191`aws login` 명령에는 AWS CLI 2.32.0 이상이 필요합니다. ID에 필요한 IAM 정책은 [`aws login`에 대한 AWS 안내](https://docs.aws.amazon.com/signin/latest/userguide/command-line-sign-in.html)를 참조하십시오.

192 

193다음 명령을 실행하여 AWS Management Console 자격 증명으로 브라우저를 통해 로그인합니다.

168 194 

169```bash theme={null}195```bash theme={null}

170aws login196aws login

171```197```

172 198 

173`aws login`에 대해 [자세히 알아보기](https://docs.aws.amazon.com/signin/latest/userguide/command-line-sign-in.html).199세션은 최대 12시간 동안 유효하며, 이후에는 `aws login`을 다시 실행합니다.

200 

201<h4 id="use-an-amazon-bedrock-api-key">

202 Amazon Bedrock API 키 사용

203</h4>

204 

205Amazon Bedrock API 키는 AWS 자격 증명 대신 요청을 인증하는 bearer 토큰입니다. AWS는 [두 가지 유형의 키](https://docs.aws.amazon.com/bedrock/latest/userguide/api-keys.html)를 발급합니다.

174 206 

175**옵션 E: Amazon Bedrock API 키**207* **단기 키**: 최대 12시간 동안 유지됩니다. AWS는 프로덕션 환경에서 장기 키보다 단기 키를 선호합니다.

208* **장기 키**: 설정한 만료일까지 유지됩니다. AWS는 탐색 용도로만 장기 키를 권장합니다.

209 

210키를 `AWS_BEARER_TOKEN_BEDROCK`으로 내보냅니다.

176 211 

177```bash theme={null}212```bash theme={null}

178export AWS_BEARER_TOKEN_BEDROCK=your-bedrock-api-key213export AWS_BEARER_TOKEN_BEDROCK=your-bedrock-api-key

179```214```

180 215 

181Amazon Bedrock API 키는 전체 AWS 자격 증명이 필요 없는 더 간단한 인증 방법을 제공합니다. [Amazon Bedrock API 키에 대해 자세히 알아보기](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/).216`AWS_BEARER_TOKEN_BEDROCK`이 설정되면 Claude Code는 다른 AWS 자격 증명이 있더라도 해당 키로 인증하며 자격 증명 체인을 해결하지 않습니다. [Amazon Bedrock API 키에 대해 자세히 알아보기](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/).

182 217 

183<h4 id="credential-caching-and-resolution-timeout">218<h4 id="credential-caching-and-resolution-timeout">

184 자격 증명 캐싱 및 해결 시간 초과219 자격 증명 캐싱 및 해결 시간 초과


186 221 

187Claude Code는 AWS 기본 자격 증명 공급자 체인을 한 번 해결하고 해결된 자격 증명을 메모리에 유지합니다. 만료되기 5분 전까지 또는 만료 기한이 없을 때 1시간 동안 재사용하므로 SSO 기반 프로필은 자격 증명 수명당 약 한 번 IAM Identity Center에서 자격 증명을 요청합니다. API의 자격 증명 오류는 캐시를 지우고 재시도는 새로운 자격 증명을 해결합니다. Claude Code v2.1.207 이상이 필요합니다.222Claude Code는 AWS 기본 자격 증명 공급자 체인을 한 번 해결하고 해결된 자격 증명을 메모리에 유지합니다. 만료되기 5분 전까지 또는 만료 기한이 없을 때 1시간 동안 재사용하므로 SSO 기반 프로필은 자격 증명 수명당 약 한 번 IAM Identity Center에서 자격 증명을 요청합니다. API의 자격 증명 오류는 캐시를 지우고 재시도는 새로운 자격 증명을 해결합니다. Claude Code v2.1.207 이상이 필요합니다.

188 223 

189캐시는 공급자 체인을 사용하지 않는 Amazon Bedrock API 키를 제외한 위의 모든 자격 증명 옵션을 포함합니다. 대신 모든 요청에서 체인을 해결하려면 [`CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1`](/docs/ko/env-vars)을 설정합니다.224캐시는 공급자 체인을 사용하지 않는 Amazon Bedrock API 키를 제외하고 이 단계의 시작 부분에 나열된 모든 자격 증명 방법을 포함합니다. 대신 모든 요청에서 체인을 해결하려면 [`CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1`](/docs/ko/env-vars)을 설정합니다.

190 225 

191캐시를 채우는 해결은 60초 후 시간 초과됩니다. 체인의 단계가 정지되면(예: 받을 수 없는 입력을 기다리는 `credential_process` 도우미), 요청은 [`AWS default-chain credential resolve timed out`](/docs/ko/errors#aws-default-chain-credential-resolve-timed-out)으로 실패합니다. 체인이 `aws-vault`와 같은 래퍼를 통한 MFA가 있는 브라우저 기반 SSO와 같이 합법적으로 더 오래 필요한 대화형 로그인을 실행하는 경우 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ko/env-vars)를 사용하여 밀리초 단위로 제한을 높입니다. `CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1`이 설정된 경우 각 API 요청은 이 제한 없이 체인을 해결합니다.226캐시를 채우는 해결은 60초 후 시간 초과됩니다. 체인의 단계가 정지되면(예: 받을 수 없는 입력을 기다리는 `credential_process` 도우미), 요청은 [`AWS default-chain credential resolve timed out`](/docs/ko/errors#aws-default-chain-credential-resolve-timed-out)으로 실패합니다. 체인이 `aws-vault`와 같은 래퍼를 통한 MFA가 있는 브라우저 기반 SSO와 같이 합법적으로 더 오래 필요한 대화형 로그인을 실행하는 경우 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ko/env-vars)를 사용하여 밀리초 단위로 제한을 높입니다. `CLAUDE_CODE_SKIP_AWS_CRED_CACHE=1`이 설정된 경우 각 API 요청은 이 제한 없이 체인을 해결합니다.

192 227 


510 1M 토큰 컨텍스트 윈도우545 1M 토큰 컨텍스트 윈도우

511</h2>546</h2>

512 547 

513Claude Sonnet 5, Opus 4.6 이상 및 Sonnet 4.6은 Amazon Bedrock에서 [1M 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/ko/build-with-claude/context-windows#context-window-sizes-by-model)를 지원합니다. Sonnet 5는 Invoke API와 [Mantle 엔드포인트](#use-the-mantle-endpoint) 모두에서 항상 1M 윈도우로 실행되며, 선택할 `[1m]` 변형이 없습니다. Invoke API의 다른 모델의 경우, Claude Code는 1M 모델 변형을 선택할 때 확장된 컨텍스트 윈도우를 자동으로 활성화합니다.548Fable 모델, Sonnet 5 이상, Opus 4.7 이상은 Amazon Bedrock의 Invoke API와 [Mantle 엔드포인트](#use-the-mantle-endpoint) 모두에서 기본적으로 [1M 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/ko/build-with-claude/context-windows#context-window-sizes-by-model)로 실행되며, `[1m]` 접미사가 필요하지 않습니다. 애플리케이션 추론 프로필 ARN은 [`modelOverrides`](#map-each-model-version-to-an-inference-profile) 항목이 해당 모델을 그 ARN에 매핑할 때 1M 윈도우를 사용합니다. 대신 200K 윈도우를 유지하려면 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/ko/model-config#turn-off-1m-context)을 설정하십시오.

549 

550Invoke API의 Opus 4.6과 Sonnet 4.6은 해당 `[1m]` 변형을 선택하면 1M 윈도우를 사용할 수 있습니다. [설정 마법사](#sign-in-with-bedrock)는 모델을 고정할 때 1M 컨텍스트 옵션을 제공합니다. 수동으로 고정된 모델에 대해 대신 활성화하려면 모델 ID에 `[1m]`을 추가하십시오. 고정을 변경하지 않고 1M 윈도우를 사용하는 방법을 포함한 자세한 내용은 [타사 배포를 위한 모델 고정](/docs/ko/model-config#pin-models-for-third-party-deployments)을 참조하십시오.

514 551 

515[설정 마법사](#sign-in-with-bedrock)는 모델을 고정할 때 1M 컨텍스트 옵션을 제공합니다. 수동으로 고정된 모델에 대해 대신 활성화하려면 모델 ID에 `[1m]`을 추가하십시오. 자세한 내용은 [타사 배포를 위한 모델 고정](/docs/ko/model-config#pin-models-for-third-party-deployments)을 참조하십시오. 1M 윈도우를 사용하면서 핀을 변경하지 않는 방법을 포함한 자세한 내용을 확인하십시오.552v2.1.287 이전에는 Fable 모델과 Opus 4.7 이상이 Invoke API에서 기본적으로 200K 윈도우로 실행되었으며, 해당 API에서는 `[1m]` 접미사를 통해 1M 윈도우를 사용할 수 있었습니다.

516 553 

517<h2 id="service-tiers">554<h2 id="service-tiers">

518 서비스 계층555 서비스 계층

artifacts.md +1 −1

Details

391| 인증 | 세션이 claude.ai 계정으로 지원됩니다: CLI 또는 데스크톱 앱에서 `/login`으로 로그인합니다. Claude Tag 세션은 에이전트의 ID를 통해 로그인되므로 추가 단계가 필요하지 않습니다. API 키, [gateway token](/docs/ko/llm-gateway) 또는 클라우드 제공자 자격증명을 사용하는 세션은 게시할 수 없습니다. |391| 인증 | 세션이 claude.ai 계정으로 지원됩니다: CLI 또는 데스크톱 앱에서 `/login`으로 로그인합니다. Claude Tag 세션은 에이전트의 ID를 통해 로그인되므로 추가 단계가 필요하지 않습니다. API 키, [gateway token](/docs/ko/llm-gateway) 또는 클라우드 제공자 자격증명을 사용하는 세션은 게시할 수 없습니다. |

392| 모델 제공자 | Anthropic API. [Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai) 또는 [Microsoft Foundry](/docs/ko/microsoft-foundry)에서는 사용할 수 없습니다. |392| 모델 제공자 | Anthropic API. [Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai) 또는 [Microsoft Foundry](/docs/ko/microsoft-foundry)에서는 사용할 수 없습니다. |

393| 조직 정책 | 고객 관리 암호화 키(CMEK), HIPAA 및 [Zero Data Retention](/docs/ko/zero-data-retention)이 조직에 대해 활성화되지 않았습니다. |393| 조직 정책 | 고객 관리 암호화 키(CMEK), HIPAA 및 [Zero Data Retention](/docs/ko/zero-data-retention)이 조직에 대해 활성화되지 않았습니다. |

394| 표면 | Claude Code CLI 또는 Claude 데스크톱 앱 버전 1.13576.0 이상. [Claude Tag](https://claude.com/docs/claude-tag/overview) 세션도 Claude Tag와 artifacts가 조직에 대해 활성화된 경우 artifacts를 게시할 수 있습니다. [Agent SDK](/docs/ko/agent-sdk/overview), GitHub Action 및 MCP-server 컨텍스트에서는 기본적으로 비활성화되며, [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ko/env-vars)이 설정된 경우에도 비활성화됩니다. |394| 사용 환경 | Claude Code CLI 또는 Claude 데스크톱 앱 버전 1.13576.0 이상. [Claude Tag](https://claude.com/docs/claude-tag/overview) 세션도 Claude Tag와 아티팩트가 조직에 대해 활성화된 경우 아티팩트를 게시할 수 있습니다. [Agent SDK](/docs/ko/agent-sdk/overview), GitHub Action 및 MCP 서버 컨텍스트에서는 기본적으로 비활성화되며, 직접 사용하는 터미널이나 스크립트에서 [`-p`](/docs/ko/headless)로 Claude Code를 실행하는 경우와 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ko/env-vars)이 설정된 경우에도 비활성화됩니다. |

395 395 

396조직에서 artifacts가 허용되는지 여부는 Claude Code가 `api.anthropic.com`에서 로드하는 조직의 정책에서 나옵니다. Claude Code가 정책을 로드할 수 없으면 artifacts를 사용할 수 없습니다. 사용자가 요청하면 Claude가 그 이유를 설명합니다.396조직에서 artifacts가 허용되는지 여부는 Claude Code가 `api.anthropic.com`에서 로드하는 조직의 정책에서 나옵니다. Claude Code가 정책을 로드할 수 없으면 artifacts를 사용할 수 없습니다. 사용자가 요청하면 Claude가 그 이유를 설명합니다.

397 397 

Details

142* **로그아웃되는 대상**: Claude Code는 머신에 저장된 모든 claude.ai 로그인에서 로그아웃합니다.142* **로그아웃되는 대상**: Claude Code는 머신에 저장된 모든 claude.ai 로그인에서 로그아웃합니다.

143* **실행 취소 방법**: `/logout`을 실행하면 이 로그인이 작성한 자격 증명이 제거되고 취소됩니다.143* **실행 취소 방법**: `/logout`을 실행하면 이 로그인이 작성한 자격 증명이 제거되고 취소됩니다.

144 144 

145조직에서 [서버 관리 설정](/docs/ko/server-managed-settings)을 사용하는 경우 Claude Code v2.1.257 이상에서 이 로그인에 적용됩니다.

146 

147프로필에 대한 다른 모든 것이 이 로그인에 적용되며, 여기에는 다른 자격 증명에 대한 순위, `/status`에서 얻는 `Profile` 행 및 claude.ai 로그인이 필요한 기능이 포함됩니다. [Anthropic 프로필 및 페더레이션 자격 증명](#anthropic-profiles-and-federation-credentials)을 참조하세요.145프로필에 대한 다른 모든 것이 이 로그인에 적용되며, 여기에는 다른 자격 증명에 대한 순위, `/status`에서 얻는 `Profile` 행 및 claude.ai 로그인이 필요한 기능이 포함됩니다. [Anthropic 프로필 및 페더레이션 자격 증명](#anthropic-profiles-and-federation-credentials)을 참조하세요.

148 146 

149<h3 id="cloud-provider-authentication">147<h3 id="cloud-provider-authentication">


170 조직에 대한 로그인 제한168 조직에 대한 로그인 제한

171</h3>169</h3>

172 170 

173개발자의 claude.ai 로그인이 특정 Anthropic 조직에 속하도록 요구하려면 [관리형 설정](/docs/ko/managed-settings)에서 [`forceLoginMethod`](/docs/ko/settings-reference#forceloginmethod) 및 [`forceLoginOrgUUID`](/docs/ko/settings-reference#forceloginorguuid)를 설정하세요. `forceLoginOrgUUID`를 조직 ID로 설정하세요. 조직 ID는 Claude for Teams 또는 Enterprise 조직의 [claude.ai 관리 설정](https://claude.ai/admin-settings/organization)에 표시됩니다. Claude Code는 다른 조직에 대한 claude.ai 로그인에 대해 오류를 보고하고 사용 중인 claude.ai 자격 증명이 나열되지 않은 조직에 속하는 경우 시작 시 종료됩니다.171개발자의 claude.ai 로그인이 특정 Anthropic 조직에 속하도록 요구하려면 [관리형 설정](/docs/ko/managed-settings)에서 [`forceLoginMethod`](/docs/ko/settings-reference#forceloginmethod) 및 [`forceLoginOrgUUID`](/docs/ko/settings-reference#forceloginorguuid)를 설정하세요. `forceLoginOrgUUID`를 조직 ID로 설정하세요. 조직 ID는 Claude for Teams 또는 Enterprise 조직의 [claude.ai 관리자 설정](https://claude.ai/admin-settings/organization)에 표시됩니다. Claude Code는 다른 조직에 대한 claude.ai 로그인에 대해 오류를 보고하고 사용 중인 claude.ai 자격 증명이 나열되지 않은 조직에 속하는 경우 시작 시 종료됩니다.

174 172 

175Claude Console 로그인의 경우 Claude Code는 `forceLoginOrgUUID`를 사용하여 단일 Console 조직 ID로 설정할 때 Console 로그인 페이지에서 조직을 미리 선택합니다. 조직 ID는 [platform.claude.com/settings/organization](https://platform.claude.com/settings/organization)에 표시됩니다. 로그인 시 또는 시작 시 결과 Console 자격 증명이 속한 조직을 확인하지 않으며, 키를 배포하기 전에 Console 계정으로 로그인한 개발자는 로그인 상태를 유지합니다. 해당 저장된 키는 [게이트웨이](/docs/ko/claude-apps-gateway) 로그인도 요구하는 머신에서 또는 클라우드 공급자를 선택하는 세션에서 차단됩니다.173Claude Console 로그인의 경우 Claude Code는 `forceLoginOrgUUID`를 사용하여 단일 Console 조직 ID로 설정할 때 Console 로그인 페이지에서 조직을 미리 선택합니다. 조직 ID는 [platform.claude.com/settings/organization](https://platform.claude.com/settings/organization)에 표시됩니다. 로그인 시 또는 시작 시 결과 Console 자격 증명이 속한 조직을 확인하지 않습니다. 키를 배포하기 전에 Console 계정으로 로그인한 개발자는 로그인 상태를 유지하며, 해당 저장된 키는 [게이트웨이](/docs/ko/claude-apps-gateway) 로그인도 요구하는 머신에서 또는 클라우드 공급자를 선택하는 세션에서 차단됩니다.

176 174 

177모든 설정 파일에서 `forceLoginOrgUUID`를 설정하면 Claude Code는 해당 파일이 적용되는 세션에서 [키 없는 Console 로그인](#sign-in-without-an-api-key)을 제공하지 않고 대신 API 키를 생성합니다. 개발자를 claude.ai 로그인으로 유도하려면 `forceLoginMethod`를 `"claudeai"`로 설정하세요.175모든 설정 파일에서 `forceLoginOrgUUID`를 설정하면 Claude Code는 해당 파일이 적용되는 세션에서 [키 없는 Console 로그인](#sign-in-without-an-api-key)을 제공하지 않고 대신 API 키를 생성합니다. 개발자를 claude.ai 로그인으로 유도하려면 `forceLoginMethod`를 `"claudeai"`로 설정하세요.

178 176 

179Claude Code v2.1.212 이상에서는 여기에 나열된 모든 로그인 경로가 `forceLoginMethod`를 적용합니다. 터미널의 대화형 로그인 화면에서 `/login` 또는 처음 실행 온보딩으로 도달하면 Claude Code는 `claudeai` 또는 `console` 방법을 미리 선택하지만 강제하지 않으므로 `forceLoginMethod`가 `"claudeai"`로 설정되어 있어도 개발자는 여전히 Console 로그인을 완료할 수 있습니다. 경로는 `forceLoginOrgUUID`에서 다릅니다.177Claude Code v2.1.212 이상에서는 여기에 나열된 모든 로그인 경로가 `forceLoginMethod`를 적용합니다. 터미널의 대화형 로그인 화면에서 `/login` 또는 처음 실행 온보딩으로 도달하면 Claude Code는 `claudeai` 또는 `console` 방법을 미리 선택하지만 강제하지 않으므로 `forceLoginMethod`가 `"claudeai"`로 설정되어 있어도 개발자는 여전히 Console 로그인을 완료할 수 있습니다.

178 

179경로는 `forceLoginOrgUUID`에서 다릅니다.

180 180 

181* **터미널, [VS Code 확장](/docs/ko/vs-code) 및 Agent SDK 로그인**: claude.ai 계정 로그인에 대해 `forceLoginOrgUUID` 확인181* **터미널, [VS Code 확장](/docs/ko/vs-code) 및 Agent SDK 로그인**: claude.ai 계정 로그인에 대해 `forceLoginOrgUUID` 확인

182* **`claude setup-token` 및 `/install-github-app`**: `forceLoginMethod`만 강제하므로 다른 조직에서 토큰을 발급할 수 있습니다.182* **`claude setup-token` 및 `/install-github-app`**: `forceLoginMethod`만 강제하므로 다른 조직에서 토큰을 발급할 수 있습니다.


189키는 또한 로그인 자격 증명을 사용하지 않는 세션이 시작될 수 있는지 여부를 결정합니다. 설정 참조에서 [`forceLoginOrgUUID`](/docs/ko/settings-reference#forceloginorguuid)를 참조하여 전체 동작을 확인하세요.189키는 또한 로그인 자격 증명을 사용하지 않는 세션이 시작될 수 있는지 여부를 결정합니다. 설정 참조에서 [`forceLoginOrgUUID`](/docs/ko/settings-reference#forceloginorguuid)를 참조하여 전체 동작을 확인하세요.

190 190 

191* **`ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper`**: 시작 시 차단됩니다. `forceLoginOrgUUID` 아래에서 환경 자격 증명에 대해 조직 멤버십을 확인할 수 없으며 `forceLoginMethod` 아래에서 자격 증명이 필요한 로그인을 대신할 것입니다. 관리형 설정이 [게이트웨이](/docs/ko/claude-apps-gateway) 로그인도 요구하는 경우 Claude Code는 이전 Claude Console 로그인으로 저장된 API 키를 동일한 방식으로 차단합니다. [관리자 정책에 클라우드 게이트웨이 로그인 필요](/docs/ko/errors#administrator-policy-requires-a-cloud-gateway-sign-in)를 참조하세요.191* **`ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper`**: 시작 시 차단됩니다. `forceLoginOrgUUID` 아래에서 환경 자격 증명에 대해 조직 멤버십을 확인할 수 없으며 `forceLoginMethod` 아래에서 자격 증명이 필요한 로그인을 대신할 것입니다. 관리형 설정이 [게이트웨이](/docs/ko/claude-apps-gateway) 로그인도 요구하는 경우 Claude Code는 이전 Claude Console 로그인으로 저장된 API 키를 동일한 방식으로 차단합니다. [관리자 정책에 클라우드 게이트웨이 로그인 필요](/docs/ko/errors#administrator-policy-requires-a-cloud-gateway-sign-in)를 참조하세요.

192* **Amazon Bedrock, Google Cloud's Agent Platform 또는 Microsoft Foundry와 같은 클라우드 공급자 세션**: `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper` 자격 증명, 또는 이전 Claude Console 로그인으로 저장된 API 키가 여전히 머신에 있는 동안에만 차단됩니다. 제거하면 세션이 시작됩니다. 이러한 세션은 클라우드 공급자에 대해 인증하며, 클라우드 공급자의 액세스 정책이 이를 제어합니다.192* **Amazon Bedrock과 같은 클라우드 공급자 세션**: `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper` 자격 증명, 또는 이전 Claude Console 로그인으로 저장된 API 키가 여전히 머신에 있는 동안에만 차단됩니다. 제거하면 세션이 시작됩니다. 이러한 세션은 클라우드 공급자에 대해 인증하며, 클라우드 공급자의 액세스 정책이 이를 제어합니다.

193* **[Anthropic 프로필 또는 페더레이션 자격 증명](#anthropic-profiles-and-federation-credentials)**: `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper` 자격 증명, 또는 이전 Claude Console 로그인으로 저장된 API 키가 머신에도 있지 않는 한 차단되지 않습니다. 키는 프로필이 속한 조직을 확인하지 않습니다.193* **[Anthropic 프로필 또는 페더레이션 자격 증명](#anthropic-profiles-and-federation-credentials)**: `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper` 자격 증명, 또는 이전 Claude Console 로그인으로 저장된 API 키가 머신에도 있지 않는 한 차단되지 않습니다. 키는 프로필이 속한 조직을 확인하지 않습니다.

194 194 

195<h3 id="restrict-which-api-providers-a-machine-may-use">195<h3 id="restrict-which-api-providers-a-machine-may-use">

Details

523| 기능 | 상태 | 참고 |523| 기능 | 상태 | 참고 |

524| - | - | - |524| - | - | - |

525| 추론 전달 (Amazon Bedrock, Claude Platform on AWS, Google Cloud의 Agent Platform, Microsoft Foundry, Anthropic) | 사용 가능 | 업스트림별 모델 변환 및 장애 조치 포함. Amazon Bedrock 업스트림은 `bedrock-runtime` 엔드포인트 및 AWS 기본 자격 증명 체인을 사용합니다. [Amazon Bedrock Mantle 업스트림](/docs/ko/claude-apps-gateway-config#amazon-bedrock-mantle-endpoint)은 게이트웨이 서버에서 Claude Code v2.1.283 이상이 필요하며, [Claude Platform on AWS 업스트림](/docs/ko/claude-apps-gateway-config#claude-platform-on-aws)은 v2.1.198 이상이 필요합니다. |525| 추론 전달 (Amazon Bedrock, Claude Platform on AWS, Google Cloud의 Agent Platform, Microsoft Foundry, Anthropic) | 사용 가능 | 업스트림별 모델 변환 및 장애 조치 포함. Amazon Bedrock 업스트림은 `bedrock-runtime` 엔드포인트 및 AWS 기본 자격 증명 체인을 사용합니다. [Amazon Bedrock Mantle 업스트림](/docs/ko/claude-apps-gateway-config#amazon-bedrock-mantle-endpoint)은 게이트웨이 서버에서 Claude Code v2.1.283 이상이 필요하며, [Claude Platform on AWS 업스트림](/docs/ko/claude-apps-gateway-config#claude-platform-on-aws)은 v2.1.198 이상이 필요합니다. |

526| 1M 토큰 컨텍스트 윈도우 | 사용 가능 | Fable 모델, Sonnet 5 이상, Opus 4.7 이상은 기본적으로 1M 윈도우로 실행됩니다. [확장 컨텍스트](/docs/ko/model-config#extended-context)를 참조하세요. Fable 및 Opus 모델의 1M 기본값을 사용하려면 개발자 머신에 Claude Code v2.1.287 이상이 필요합니다 |

526| IdP 그룹별 모델 액세스 및 관리형 설정 | 사용 가능 | 모델 액세스는 서버 측에서 적용됩니다; 관리형 설정은 IdP 그룹별로 전달되고 CLI에서 [관리형 설정 계층](/docs/ko/settings#settings-precedence)에서 적용됩니다. |527| IdP 그룹별 모델 액세스 및 관리형 설정 | 사용 가능 | 모델 액세스는 서버 측에서 적용됩니다; 관리형 설정은 IdP 그룹별로 전달되고 CLI에서 [관리형 설정 계층](/docs/ko/settings#settings-precedence)에서 적용됩니다. |

527| Claude Desktop | 옵트인 가능 | 게이트웨이는 정책이 [`desktop` 키로 옵트인](/docs/ko/claude-apps-gateway-config#claude-desktop-overlay)하면 `/user/bootstrap`에서 Claude Desktop의 구성을 제공하며, Claude Desktop은 Cowork 및 Code 탭에서, 그리고 Chat 탭에서 활성화할 때 게이트웨이를 통해 모델 요청을 보냅니다. Chat 탭을 켜려면 [Claude Desktop 연결](#connect-claude-desktop)을 참조하세요. 게이트웨이 서버에서 Claude Code v2.1.203 이상이 필요합니다. |528| Claude Desktop | 옵트인 가능 | 게이트웨이는 정책이 [`desktop` 키로 옵트인](/docs/ko/claude-apps-gateway-config#claude-desktop-overlay)하면 `/user/bootstrap`에서 Claude Desktop의 구성을 제공하며, Claude Desktop은 Cowork 및 Code 탭에서, 그리고 Chat 탭에서 활성화할 때 게이트웨이를 통해 모델 요청을 보냅니다. Chat 탭을 켜려면 [Claude Desktop 연결](#connect-claude-desktop)을 참조하세요. 게이트웨이 서버에서 Claude Code v2.1.203 이상이 필요합니다. |

528| 텔레메트리 팬아웃 (OTLP/HTTP) | 사용 가능 | 내보내기별 ID 스탬프; protobuf 및 JSON 인코딩 모두 |529| 텔레메트리 팬아웃 (OTLP/HTTP) | 사용 가능 | 내보내기별 ID 스탬프; protobuf 및 JSON 인코딩 모두 |

Details

6 6 

7> IdP에 게이트웨이를 등록하고, 컨테이너를 빌드하며, Kubernetes 또는 Cloud Run에 배포하고 운영합니다: 상태 확인, 시크릿 로테이션, 업그레이드 및 보안.7> IdP에 게이트웨이를 등록하고, 컨테이너를 빌드하며, Kubernetes 또는 Cloud Run에 배포하고 운영합니다: 상태 확인, 시크릿 로테이션, 업그레이드 및 보안.

8 8 

9<Info>

10 **먼저 게이트웨이의 네트워크를 계획하세요.** 로그인 시 Claude Code는 호스트명이 공개 IP 주소로 확인되는 Claude 앱 게이트웨이를 거부합니다. 인터넷에서 접근할 수 없는 주소라도 마찬가지입니다.

11 

12 Claude 앱 게이트웨이는 셸 명령을 실행하는 훅을 포함하여 사용자 머신에 설정을 푸시할 수 있습니다. 이 검사는 사용자가 공개 인터넷상의 악의적인 게이트웨이에 실수로 로그인하는 것을 방지하는 데 도움이 됩니다. 자체 게이트웨이도 인터넷에 노출하지 마세요.

13 

14 게이트웨이를 실행할 위치를 선택하기 전에 게이트웨이의 주소를 먼저 선택하세요. 일반적으로 사용자가 내부 네트워크나 VPN을 통해 접근하는 사설 주소를 사용합니다. 내부 네트워크가 공개 IPv4 범위를 사용하는 경우 게이트웨이와 사용자 머신을 모두 포함하는 범위 하나를 지정할 수 있습니다. Claude Code는 이 일치를 게이트웨이가 내부 네트워크에 있다는 신호로 간주합니다. [게이트웨이 주소 선택](#choose-an-address-for-the-gateway)을 참조하세요. 두 방법 모두 네트워크에 맞지 않으면 Anthropic 계정 팀에 문의하세요.

15</Info>

16 

9이 페이지는 [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway) 실행의 운영 측면을 다룹니다: 게이트웨이를 ID 공급자(IdP)에 등록하고, 게이트웨이를 컨테이너로 배포하며, 일상적으로 운영합니다. 게이트웨이가 부팅 시 읽는 `gateway.yaml` 파일의 모든 옵션에 대해서는 [구성 참조](/docs/ko/claude-apps-gateway-config)를 참조하세요.17이 페이지는 [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway) 실행의 운영 측면을 다룹니다: 게이트웨이를 ID 공급자(IdP)에 등록하고, 게이트웨이를 컨테이너로 배포하며, 일상적으로 운영합니다. 게이트웨이가 부팅 시 읽는 `gateway.yaml` 파일의 모든 옵션에 대해서는 [구성 참조](/docs/ko/claude-apps-gateway-config)를 참조하세요.

10 18 

11프로덕션 배포는 순서대로 4단계를 따르며, 아래 섹션이 이를 일치시킵니다. 처음 두 단계는 선택을 하는 곳이고, 나머지 두 단계는 실행 중일 때 참조할 참고 자료입니다.19프로덕션 배포는 순서대로 4단계를 따르며, 아래 섹션이 이를 일치시킵니다. 처음 두 단계는 선택을 하는 곳이고, 나머지 두 단계는 실행 중일 때 참조할 참고 자료입니다.


17 25 

18로그인 또는 부팅이 실패하면 [문제 해결](#troubleshooting)로 바로 이동하세요. 이는 표시되는 오류를 기준으로 구성되어 있습니다.26로그인 또는 부팅이 실패하면 [문제 해결](#troubleshooting)로 바로 이동하세요. 이는 표시되는 오류를 기준으로 구성되어 있습니다.

19 27 

20<Note>

21 **프라이빗 네트워크에 배포하세요.** Claude Code는 주소가 프라이빗인 게이트웨이에만 연결합니다. 이는 보안 가드입니다. 신뢰할 수 있는 게이트웨이는 개발자 머신에서 명령을 실행하는 설정을 푸시할 수 있기 때문입니다. 게이트웨이를 내부 로드 밸런서 또는 VPN 뒤에 배치하고 프라이빗 IP로만 확인되는 호스트명을 지정하세요. 내부 네트워크가 조직이 소유한 공개 IPv4 공간에서 번호가 지정된 경우 [소유한 공개 주소 공간에서 게이트웨이 허용](/docs/ko/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)을 참조하세요.

22</Note>

23 

24<h2 id="identity-provider-setup">28<h2 id="identity-provider-setup">

25 ID 공급자 설정29 ID 공급자 설정

26</h2>30</h2>


51 배포55 배포

52</h2>56</h2>

53 57 

54게이트웨이는 단일 상태 비저장 Linux 바이너리이며 Postgres를 통해 조정되므로 환경에서 다른 상태 비저장 서비스를 배포하는 방식대로 배포하세요. 네트워크 내부에 유지하여 개발자와 IdP가 HTTPS를 통해 도달할 수 있도록 하고, 프로덕션 자격 증명을 보유하는 다른 서비스처럼 취급하세요.58게이트웨이는 단일 상태 비저장 Linux 바이너리이며 Postgres를 통해 조정되므로 환경에서 다른 상태 비저장 서비스를 배포하는 방식대로 배포하세요. 개발자가 HTTPS를 통해 도달할 수 있고 게이트웨이가 IdP에 도달할 수 있는 네트워크 내부에 유지하고, 프로덕션 자격 증명을 보유하는 다른 서비스처럼 취급하세요.

55 59 

56배포를 실행 위치 이상으로 형성하는 몇 가지 결정이 있습니다:60배포를 실행 위치 이상으로 형성하는 몇 가지 결정이 있습니다:

57 61 


71 75 

72ALB의 60초와 같은 기본값은 조용한 스트림을 열린 상태로 유지하기에 충분합니다. [AWS 작동 예제](/docs/ko/claude-apps-gateway-on-aws#troubleshooting)는 어쨌든 이를 1시간으로 올리며, 해당 문제 해결 행은 이제 ping을 받는 업스트림에서 조용한 기간 동안 아무것도 보내지 않은 v2.1.229보다 오래된 게이트웨이를 다룹니다.76ALB의 60초와 같은 기본값은 조용한 스트림을 열린 상태로 유지하기에 충분합니다. [AWS 작동 예제](/docs/ko/claude-apps-gateway-on-aws#troubleshooting)는 어쨌든 이를 1시간으로 올리며, 해당 문제 해결 행은 이제 ping을 받는 업스트림에서 조용한 기간 동안 아무것도 보내지 않은 v2.1.229보다 오래된 게이트웨이를 다룹니다.

73 77 

78<h3 id="choose-an-address-for-the-gateway">

79 게이트웨이 주소 선택

80</h3>

81 

82Claude Code는 다음 두 가지 방식 중 하나로 게이트웨이 주소를 허용합니다:

83 

84* **프라이빗 주소**: 게이트웨이를 내부 로드 밸런서 또는 VPN 뒤에 배치하고, RFC 1918 또는 CGNAT `100.64.0.0/10`과 같은 프라이빗 주소로만 확인되는 호스트명을 사용하세요. 사용자의 머신은 어떤 주소에 있어도 됩니다. [프라이빗 네트워크 사전 요구 사항](/docs/ko/claude-apps-gateway#prerequisites)에 허용되는 범위가 나열되어 있습니다.

85* **선언된 블록**: 내부 네트워크가 조직이 소유한 공개 IPv4 공간을 사용하는 경우, `gatewayInternalNetworks` 관리형 설정에 해당 블록을 나열하세요. 게이트웨이와 사용자의 머신이 모두 해당 블록 안에 있어야 합니다. [소유한 공개 주소 공간에서 게이트웨이 허용](/docs/ko/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)을 참조하세요.

86 

87둘 다 포함하는 단일 블록이 없으면 대신 게이트웨이에 프라이빗 주소를 지정하세요.

88 

74<h3 id="container-image">89<h3 id="container-image">

75 컨테이너 이미지90 컨테이너 이미지

76</h3>91</h3>


375 문제 해결390 문제 해결

376</h2>391</h2>

377 392 

378질문 및 피드백은 [Claude Code 지원](https://support.claude.com/en/collections/14445694-claude-code)을 사용하거나 [Claude Code GitHub 저장소](https://github.com/anthropics/claude-code/issues)에서 이슈를 열어주세요. 문제를 보고할 때 다음을 포함하세요:393질문 및 피드백은 [Claude Code 지원](https://support.claude.com/en/collections/14445694-claude-code)을 사용하거나 [Claude Code GitHub 저장소](https://github.com/anthropics/claude-code/issues)에서 이슈를 열어주세요. Anthropic 계정 팀에 문의할 수도 있습니다. 문제를 보고할 때 다음을 포함하세요:

379 394 

380* **Gateway 문제**: 해당 창의 gateway stderr, 비밀번호가 제거된 `gateway.yaml`, `/`의 랜딩 페이지에 표시된 gateway 버전, `/managed/settings`의 `x-cc-gateway-version` 응답 헤더, 최근에 변경된 사항395* **Gateway 문제**: 해당 창의 gateway stderr, 비밀번호가 제거된 `gateway.yaml`, `/`의 랜딩 페이지에 표시된 gateway 버전, `/managed/settings`의 `x-cc-gateway-version` 응답 헤더, 최근에 변경된 사항

381* **로그인 문제**: 개발자가 `claude --debug-file ./claude-debug.txt`를 실행하고 재현한 후 해당 파일과 동일한 창의 gateway 감사 로그를 전송396* **로그인 문제**: 개발자가 `claude --debug-file ./claude-debug.txt`를 실행하고 재현한 후 해당 파일과 동일한 창의 gateway 감사 로그를 전송


394| CLI `/login`: `The gateway is limiting sign-in attempts right now`, 또는 이전 버전에서 `Request failed with status code 429`. `/device` 페이지는 이전에 시도하지 않은 개발자에게 `Too many attempts`를 표시할 수 있음 | IP당 로그인 속도 제한에 도달함. `listen.trusted_proxies`가 로드 밸런서를 포함하지 않아 모든 개발자가 해당 주소를 공유하거나, 많은 개발자가 NAT 또는 VPN 송신 주소를 공유함. `result: rate_limited`가 있는 감사 이벤트는 동일한 하나 또는 몇 개의 `client_ip` 값을 표시함. | 먼저 `listen.trusted_proxies`를 로드 밸런서의 소스 범위로 설정한 후, 개발자가 여전히 주소를 공유하는 경우 `rate_limits`를 높이세요. [대규모 롤아웃](#large-rollouts)을 참조하세요. |409| CLI `/login`: `The gateway is limiting sign-in attempts right now`, 또는 이전 버전에서 `Request failed with status code 429`. `/device` 페이지는 이전에 시도하지 않은 개발자에게 `Too many attempts`를 표시할 수 있음 | IP당 로그인 속도 제한에 도달함. `listen.trusted_proxies`가 로드 밸런서를 포함하지 않아 모든 개발자가 해당 주소를 공유하거나, 많은 개발자가 NAT 또는 VPN 송신 주소를 공유함. `result: rate_limited`가 있는 감사 이벤트는 동일한 하나 또는 몇 개의 `client_ip` 값을 표시함. | 먼저 `listen.trusted_proxies`를 로드 밸런서의 소스 범위로 설정한 후, 개발자가 여전히 주소를 공유하는 경우 `rate_limits`를 높이세요. [대규모 롤아웃](#large-rollouts)을 참조하세요. |

395| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | gateway 호스트명이 최소 하나의 공개 IP 주소로 확인됨. Claude Code는 각 확인된 주소를 확인하고 모든 주소가 비공개여야 함. 일반적인 원인은 한 패밀리가 공개 주소로 확인되는 이중 스택 이름이며, AWS 내부 이중 스택 로드 밸런서를 포함하여 공개 범위 AAAA 주소를 반환함 | gateway 이름이 개발자 머신에서 비공개 주소로만 확인되도록 하세요. 이중 스택 이름의 경우 공개 범위 레코드를 삭제하거나 별도의 내부 전용 DNS 이름을 제공하세요. [비공개 네트워크 전제 조건](/docs/ko/claude-apps-gateway#prerequisites)을 참조하세요. 주소가 조직이 소유하고 내부적으로 사용하는 공개 공간인 경우 [해당 블록을 선언](/docs/ko/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)하세요. |410| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | gateway 호스트명이 최소 하나의 공개 IP 주소로 확인됨. Claude Code는 각 확인된 주소를 확인하고 모든 주소가 비공개여야 함. 일반적인 원인은 한 패밀리가 공개 주소로 확인되는 이중 스택 이름이며, AWS 내부 이중 스택 로드 밸런서를 포함하여 공개 범위 AAAA 주소를 반환함 | gateway 이름이 개발자 머신에서 비공개 주소로만 확인되도록 하세요. 이중 스택 이름의 경우 공개 범위 레코드를 삭제하거나 별도의 내부 전용 DNS 이름을 제공하세요. [비공개 네트워크 전제 조건](/docs/ko/claude-apps-gateway#prerequisites)을 참조하세요. 주소가 조직이 소유하고 내부적으로 사용하는 공개 공간인 경우 [해당 블록을 선언](/docs/ko/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)하세요. |

396| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | `HTTPS_PROXY` 또는 `HTTP_PROXY`가 gateway 호스트에 적용되고 프록시의 호스트명이 공개 주소로 확인됨. 호스트가 비공개 주소로만 확인되는 프록시는 허용되며 이 오류를 트리거하지 않음 | 개발자 머신의 `NO_PROXY`에 gateway 호스트를 추가하여 연결이 직접 이루어지도록 하거나, 호스트명이 비공개 주소로 확인되는 프록시를 사용하세요. 메시지는 추가할 정확한 `NO_PROXY` 항목을 이름으로 지정합니다 |411| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | `HTTPS_PROXY` 또는 `HTTP_PROXY`가 gateway 호스트에 적용되고 프록시의 호스트명이 공개 주소로 확인됨. 호스트가 비공개 주소로만 확인되는 프록시는 허용되며 이 오류를 트리거하지 않음 | 개발자 머신의 `NO_PROXY`에 gateway 호스트를 추가하여 연결이 직접 이루어지도록 하거나, 호스트명이 비공개 주소로 확인되는 프록시를 사용하세요. 메시지는 추가할 정확한 `NO_PROXY` 항목을 이름으로 지정합니다 |

397| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | gateway가 [`gatewayInternalNetworks`](/docs/ko/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)에 선언된 블록에 있고, 개발자 머신이 해당 블록 외부의 주소에서 도달함: VPN 주소 풀, 컨테이너 또는 WSL2 NAT 세그먼트, 또는 조직의 네트워크가 아님 | 개발자가 네트워크의 호스트 OS에서 `/login`을 실행하도록 하세요. 표시된 주소도 조직의 공개 공간인 경우 gateway 항목을 두 주소를 모두 포함하는 블록으로 바꾸세요(`/8`까지). 두 번째 겹치는 항목은 거부됩니다 |412| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | gateway가 [`gatewayInternalNetworks`](/docs/ko/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)에 선언된 블록에 있고, 개발자 머신이 해당 블록 외부의 주소에서 도달함: VPN 주소 풀, 컨테이너 또는 WSL2 NAT 세그먼트, 또는 조직의 네트워크가 아님 | 개발자가 네트워크의 호스트 OS에서 `/login`을 실행하도록 하세요. 표시된 주소도 조직의 공개 공간인 경우 gateway 항목을 두 주소를 모두 포함하는 블록으로 바꾸세요(`/8`까지). 두 번째 겹치는 항목은 거부됩니다. 두 주소를 모두 포함하는 블록이 없으면 [게이트웨이 주소 선택](#choose-an-address-for-the-gateway)을 참조하세요 |

398| CLI `/login`: `Every address for gateway host <host> must be inside its declared network <block>, and it also resolves to <ip>` | gateway 이름이 [`gatewayInternalNetworks`](/docs/ko/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)에 선언된 블록 외부의 주소로 확인됨: 두 번째 사이트 또는 이중 스택 이름의 IPv6 레코드. 선언된 블록 아래에서 모든 레코드는 해당 IPv4 블록 내부에 있어야 하며, 비공개 및 IPv6 주소 포함 | 개발자 머신의 gateway 이름에 대해 블록 내부의 레코드만 게시하거나 별도의 내부 전용 이름을 제공하세요 |413| CLI `/login`: `Every address for gateway host <host> must be inside its declared network <block>, and it also resolves to <ip>` | gateway 이름이 [`gatewayInternalNetworks`](/docs/ko/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)에 선언된 블록 외부의 주소로 확인됨: 두 번째 사이트 또는 이중 스택 이름의 IPv6 레코드. 선언된 블록 아래에서 모든 레코드는 해당 IPv4 블록 내부에 있어야 하며, 비공개 및 IPv6 주소 포함 | 개발자 머신의 gateway 이름에 대해 블록 내부의 레코드만 게시하거나 별도의 내부 전용 이름을 제공하세요 |

399| CLI `/login`: `<host> is on the declared network <block>, which Claude Code checks over a direct connection, not through an HTTP proxy` | `HTTPS_PROXY` 또는 `HTTP_PROXY`가 선언된 블록의 gateway에 적용됨 | 개발자 머신에서 메시지가 이름으로 지정하는 `NO_PROXY` 항목을 추가하세요 |414| CLI `/login`: `<host> is on the declared network <block>, which Claude Code checks over a direct connection, not through an HTTP proxy` | `HTTPS_PROXY` 또는 `HTTP_PROXY`가 선언된 블록의 gateway에 적용됨 | 개발자 머신에서 메시지가 이름으로 지정하는 `NO_PROXY` 항목을 추가하세요 |

400| CLI `/login`: `gatewayInternalNetworks in managed settings`로 시작하는 메시지 | 값이 [검증 규칙](/docs/ko/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) 중 하나를 위반하고 메시지가 어느 것인지 이름으로 지정함. 수정할 때까지 Claude Code는 비공개 주소의 gateway를 포함하여 머신의 모든 새로운 gateway `/login`을 거부함. 기존 로그인은 계속 작동함 | 배포하는 관리형 설정 소스에서 메시지가 이름으로 지정하는 항목을 수정한 후 `/login`을 다시 실행하세요 |415| CLI `/login`: `gatewayInternalNetworks in managed settings`로 시작하는 메시지 | 값이 [검증 규칙](/docs/ko/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) 중 하나를 위반하고 메시지가 어느 것인지 이름으로 지정함. 수정할 때까지 Claude Code는 비공개 주소의 gateway를 포함하여 머신의 모든 새로운 gateway `/login`을 거부함. 기존 로그인은 계속 작동함 | 배포하는 관리형 설정 소스에서 메시지가 이름으로 지정하는 항목을 수정한 후 `/login`을 다시 실행하세요 |

Details

4 4 

5# 클라우드에서 Claude Code 사용하기5# 클라우드에서 Claude Code 사용하기

6 6 

7> 브라우저, 휴대폰, 데스크톱 앱 또는 터미널에서 클라우드의 Claude Code 세션을 실행하고, --cloud 및 --teleport로 이동하며, pull request를 자동 수정합니다.7> 브라우저, 휴대폰, 데스크톱 앱 또는 터미널에서 클라우드의 Claude Code 세션을 실행하고, `--cloud` 및 `--teleport`로 이동하며, 풀 리퀘스트를 자동 수정합니다.

8 8 

9<Note>9<Note>

10 클라우드 세션은 Pro, Max 및 Team 사용자, 그리고 프리미엄 시트 또는 Chat + Claude Code 시트가 있는 Enterprise 사용자를 위해 제공됩니다.10 클라우드 세션은 Pro, Max 및 Team 사용자, 그리고 프리미엄 시트 또는 Chat + Claude Code 시트가 있는 Enterprise 사용자를 위해 제공됩니다.

11</Note>11</Note>

12 12 

13클라우드 세션은 사용자의 머신 대신 클라우드 인프라에서 실행되는 Claude Code 세션입니다. 기본적으로 Anthropic이 관리하는 인프라에서 실행되거나, 라우팅될 때 조직의 [자체 호스팅 환경](/docs/ko/self-hosted-environments)에서 실행됩니다. 세션은 노트북을 닫은 후에도 계속 실행되며, 모든 기기에서 확인하거나 조종할 수 있습니다.13클라우드 세션은 사용자의 머신 대신 클라우드 인프라에서 실행되는 Claude Code 세션입니다. 기본적으로 Anthropic이 관리하는 인프라에서 실행되거나, 라우팅될 때 조직의 [자체 호스팅 환경](/docs/ko/self-hosted-environments)에서 실행됩니다. 세션은 노트북을 닫은 후에도 계속 실행되며, 모든 기기에서 확인하거나 조종할 수 있습니다. 클라우드 세션은 나머지 Claude 및 Claude Code 사용량과 함께 요금제의 사용 한도에 포함되며, 클라우드 VM에 대한 별도 요금은 없습니다.

14 14 

15클라우드 세션이 GitHub에서 코드를 클론하고 브랜치를 푸시할 수 있도록 하려면 [GitHub 연결 방법](#github-authentication-options) 중 하나로 GitHub를 연결하십시오. 저장소가 GitLab, Bitbucket 또는 기타 호스트에 있는 경우 [플랫폼 제한](#limitations)에서 지원되는 기능을 확인하십시오.15클라우드 세션이 GitHub에서 코드를 클론하고 브랜치를 푸시할 수 있도록 하려면 [GitHub 연결 방법](#github-authentication-options) 중 하나로 GitHub를 연결하십시오. 저장소가 GitLab, Bitbucket 또는 기타 호스트에 있는 경우 [플랫폼 제한](#limitations)에서 지원되는 기능을 확인하십시오.

16 16 


416* **격리된 가상 머신**: 각 세션은 격리된 Anthropic 관리 VM에서 실행됩니다. 조직이 [자체 호스팅 환경](/docs/ko/self-hosted-environments)으로 라우팅하는 세션은 자신의 인프라에서 실행되며, 격리는 배포의 책임입니다416* **격리된 가상 머신**: 각 세션은 격리된 Anthropic 관리 VM에서 실행됩니다. 조직이 [자체 호스팅 환경](/docs/ko/self-hosted-environments)으로 라우팅하는 세션은 자신의 인프라에서 실행되며, 격리는 배포의 책임입니다

417* <span id="default-allowed-domains" />**네트워크 액세스 제어**: Anthropic 호스팅 환경에서 네트워크 액세스는 기본적으로 제한되며 비활성화할 수 있습니다. 액세스 수준, [기본 허용 도메인](/docs/ko/cloud-environments#default-allowed-domains), 그리고 허용 목록을 통과하지 않는 트래픽에 대해서는 [네트워크 액세스](/docs/ko/cloud-environments#network-access)를 참조하세요. 자체 호스팅 환경에서는 자신의 네트워크 경계에서 세션 송신을 제한합니다. 네트워크 액세스가 비활성화된 상태에서 실행할 때 Claude Code는 여전히 Anthropic API와 통신할 수 있으며, 이는 VM에서 데이터가 나갈 수 있습니다.417* <span id="default-allowed-domains" />**네트워크 액세스 제어**: Anthropic 호스팅 환경에서 네트워크 액세스는 기본적으로 제한되며 비활성화할 수 있습니다. 액세스 수준, [기본 허용 도메인](/docs/ko/cloud-environments#default-allowed-domains), 그리고 허용 목록을 통과하지 않는 트래픽에 대해서는 [네트워크 액세스](/docs/ko/cloud-environments#network-access)를 참조하세요. 자체 호스팅 환경에서는 자신의 네트워크 경계에서 세션 송신을 제한합니다. 네트워크 액세스가 비활성화된 상태에서 실행할 때 Claude Code는 여전히 Anthropic API와 통신할 수 있으며, 이는 VM에서 데이터가 나갈 수 있습니다.

418* **자격 증명 보호**: Anthropic 호스팅 환경에서 git 자격 증명 및 서명 키는 샌드박스 외부에 유지되며, 프록시는 범위 자격 증명으로 세션을 대신하여 인증합니다. 자체 호스팅 환경에서 배포는 git 자격 증명을 제공합니다. [git 구성](/docs/ko/self-hosted-environments-deploy#configure-git)을 참조하세요418* **자격 증명 보호**: Anthropic 호스팅 환경에서 git 자격 증명 및 서명 키는 샌드박스 외부에 유지되며, 프록시는 범위 자격 증명으로 세션을 대신하여 인증합니다. 자체 호스팅 환경에서 배포는 git 자격 증명을 제공합니다. [git 구성](/docs/ko/self-hosted-environments-deploy#configure-git)을 참조하세요

419* **네트워크 시크릿**: Anthropic 호스팅 환경의 Pro 및 Max 플랜에서 [클라우드 환경에 추가한](/docs/ko/cloud-environments#add-api-credentials) 키는 샌드박스 외부에 동일한 방식으로 유지되며, 세션을 떠난 후 일치하는 요청에 첨부됩니다. 자체 호스팅 환경에는 네트워크 시크릿이 없으며 Team 및 Enterprise 플랜에는 아직 없습니다419* **네트워크 시크릿**: Anthropic 호스팅 환경의 Pro 및 Max 플랜에서 [클라우드 환경에 추가한](/docs/ko/cloud-environments#add-network-secrets) 키는 샌드박스 외부에 동일한 방식으로 유지되며, 세션을 떠난 후 일치하는 요청에 첨부됩니다. 자체 호스팅 환경에는 네트워크 시크릿이 없으며 Team 및 Enterprise 플랜에는 아직 없습니다

420* **안전한 분석**: 코드는 PR을 생성하기 전에 세션의 격리된 환경 내에서 분석 및 수정됩니다420* **안전한 분석**: 코드는 PR을 생성하기 전에 세션의 격리된 환경 내에서 분석 및 수정됩니다

421 421 

422<h2 id="troubleshooting">422<h2 id="troubleshooting">


491 491 

492클라우드 세션을 워크플로우에 사용하기 전에 다음 제약 사항을 고려하십시오:492클라우드 세션을 워크플로우에 사용하기 전에 다음 제약 사항을 고려하십시오:

493 493 

494* **속도 제한**: 클라우드 세션은 계정 내의 다른 모든 Claude 및 Claude Code 사용과 속도 제한을 공유합니다. 여러 작업을 병렬로 실행하면 비례적으로 더 많은 속도 제한을 소비합니다. 클라우드 VM에 대한 별도의 컴퓨팅 요금은 없습니다.494* **속도 제한**: 클라우드 세션은 계정 내의 다른 모든 Claude 및 Claude Code 사용과 속도 제한을 공유합니다. 여러 작업을 병렬로 실행하면 비례적으로 더 많은 속도 제한을 소비합니다.

495* **시간 제한**: Claude가 실행하는 명령 및 SessionStart 훅에는 변경할 수 있는 기본 시간 초과가 있으며, 설정 스크립트는 대략 5분 내에 완료될 때만 캐시됩니다. [시간 제한](/docs/ko/cloud-environments#time-limits)을 참조하십시오.495* **시간 제한**: Claude가 실행하는 명령 및 SessionStart 훅에는 변경할 수 있는 기본 시간 초과가 있으며, 설정 스크립트는 대략 5분 내에 완료될 때만 캐시됩니다. [시간 제한](/docs/ko/cloud-environments#time-limits)을 참조하십시오.

496* **저장소 인증**: 동일한 계정으로 인증된 경우에만 클라우드 세션을 터미널로 가져올 수 있습니다.496* **저장소 인증**: 동일한 계정으로 인증된 경우에만 클라우드 세션을 터미널로 가져올 수 있습니다.

497* **플랫폼 제한**: 저장소 복제 및 풀 요청 생성에는 GitHub이 필요합니다. 자체 호스팅 [GitHub Enterprise Server](/docs/ko/github-enterprise-server) 인스턴스는 Team 및 Enterprise 플랜에서 지원됩니다. `CCR_FORCE_BUNDLE=1`을 설정하여 GitLab, Bitbucket 또는 기타 비-GitHub 저장소를 [로컬 번들](#send-local-repositories-without-github)로 클라우드 세션에 전송할 수 있지만, 세션은 결과를 원격으로 다시 푸시할 수 없습니다.497* **플랫폼 제한**: 저장소 복제 및 풀 요청 생성에는 GitHub이 필요합니다. 자체 호스팅 [GitHub Enterprise Server](/docs/ko/github-enterprise-server) 인스턴스는 Team 및 Enterprise 플랜에서 지원됩니다. `CCR_FORCE_BUNDLE=1`을 설정하여 GitLab, Bitbucket 또는 기타 비-GitHub 저장소를 [로컬 번들](#send-local-repositories-without-github)로 클라우드 세션에 전송할 수 있지만, 세션은 결과를 원격으로 다시 푸시할 수 없습니다.

Details

219 219 

220Claude Code는 Claude Platform on AWS에 대해 두 가지 인증 방법을 지원합니다. 팀이 액세스를 관리하는 방식에 맞는 방법을 선택하십시오.220Claude Code는 Claude Platform on AWS에 대해 두 가지 인증 방법을 지원합니다. 팀이 액세스를 관리하는 방식에 맞는 방법을 선택하십시오.

221 221 

222**옵션 A: SigV4를 사용한 AWS 자격 증명**222* [SigV4를 사용한 AWS 자격 증명](#use-aws-credentials-with-sigv4): 표준 AWS 자격 증명 체인의 자격 증명을 사용하여 IAM 주체로 인증합니다

223* [워크스페이스 API 키](#use-a-workspace-api-key): AWS Console에서 생성한 장기 키로 인증합니다

224 

225<h4 id="use-aws-credentials-with-sigv4">

226 SigV4를 사용한 AWS 자격 증명 사용

227</h4>

223 228 

224Claude Code는 표준 AWS 자격 증명 체인을 사용하여 SigV4로 요청에 서명합니다. 환경 변수, `~/.aws/credentials`의 공유 자격 증명, IAM 역할, AWS SSO 세션 및 AWS SDK가 지원하는 기타 소스입니다.229Claude Code는 표준 AWS 자격 증명 체인을 사용하여 SigV4로 요청에 서명합니다. 환경 변수, `~/.aws/credentials`의 공유 자격 증명, IAM 역할, AWS SSO 세션 및 AWS SDK가 지원하는 기타 소스입니다.

225 230 


244 249 

245`awsAuthRefresh`가 구성되면 `/login`을 실행하고 **3rd-party platform**을 선택한 다음 **Using 3rd-party platforms** 아래에서 **Claude Platform on AWS · refresh credentials**를 선택하십시오. Claude Code는 구성된 명령을 실행하고 재시작 없이 AWS 자격 증명을 다시 읽습니다.250`awsAuthRefresh`가 구성되면 `/login`을 실행하고 **3rd-party platform**을 선택한 다음 **Using 3rd-party platforms** 아래에서 **Claude Platform on AWS · refresh credentials**를 선택하십시오. Claude Code는 구성된 명령을 실행하고 재시작 없이 AWS 자격 증명을 다시 읽습니다.

246 251 

247**옵션 B: 워크스페이스 API 키**252<h4 id="use-a-workspace-api-key">

253 워크스페이스 API 키 사용

254</h4>

248 255 

249워크스페이스 API 키는 장기 보안 비밀이며, 페더레이션된 AWS 자격 증명을 관리하지 않으려는 경우에 유용합니다. AWS Console의 **Claude Platform on AWS → API keys** 아래에서 생성하고 `ANTHROPIC_AWS_API_KEY`로 설정하십시오.256워크스페이스 API 키는 장기 보안 비밀이며, 페더레이션된 AWS 자격 증명을 관리하지 않으려는 경우에 유용합니다. AWS Console의 **Claude Platform on AWS → API keys** 아래에서 생성하고 `ANTHROPIC_AWS_API_KEY`로 설정하십시오.

250 257 

claude-projects.md +13 −13

Details

321| 맥락 | 포함되는 내용 | 설정 방법 |321| 맥락 | 포함되는 내용 | 설정 방법 |

322| :- | :- | :- |322| :- | :- | :- |

323| 프로젝트 메모리 | Claude가 프로젝트에 대해 유지하는 메모(요구사항, 결정사항, 주의사항 등)로, 파일로 저장됩니다. 모든 클라우드 스레드는 시작할 때 인덱스 파일 `MEMORY.md`를 읽고, 필요할 때 다른 파일을 엽니다 | 프로젝트 대화 또는 모든 클라우드 스레드에서 Claude에게 요구사항, 결정사항, 주의사항을 기억하거나 잊도록 요청합니다. **프로젝트 설정 > 메모리**에서 파일을 읽고, 편집하고, 삭제합니다 |323| 프로젝트 메모리 | Claude가 프로젝트에 대해 유지하는 메모(요구사항, 결정사항, 주의사항 등)로, 파일로 저장됩니다. 모든 클라우드 스레드는 시작할 때 인덱스 파일 `MEMORY.md`를 읽고, 필요할 때 다른 파일을 엽니다 | 프로젝트 대화 또는 모든 클라우드 스레드에서 Claude에게 요구사항, 결정사항, 주의사항을 기억하거나 잊도록 요청합니다. **프로젝트 설정 > 메모리**에서 파일을 읽고, 편집하고, 삭제합니다 |

324| 프로젝트 지침 | 모든 새로운 스레드와 프로젝트 대화의 Claude에게 전송되는 텍스트로, 최대 16,000자입니다. [프로젝트 지침 작성하기](#write-project-instructions)에서 포함할 내용을 다룹니다 | **프로젝트 설정 > 메모리 > 프로젝트 지침**, 또는 Claude에게 대화에서 지침을 변경하도록 요청합니다 |324| 프로젝트 지침 | 모든 새로운 스레드와 프로젝트 대화의 Claude에게 전송되는 텍스트로, 최대 16,000자입니다. [프로젝트 지침 작성하기](#write-project-instructions)에서 포함할 내용을 다룹니다 | **프로젝트 설정 > 메모리 > 프로젝트 지침**, 또는 Claude에게 지침을 변경하도록 요청합니다 |

325| 저장소, 파일, 환경 | 모든 클라우드 스레드가 복제하는 저장소, 모든 스레드가 `/mnt/project-files` 아래에서 읽을 수 있는 폴더와 파일, 그리고 클라우드 환경이 실행되는 곳 | **프로젝트 설정 > 환경**의 저장소와 환경, 또는 대화에서 Claude에게 저장소를 프로젝트에 추가하도록 요청합니다. **개요**의 **라이브러리** 탭에서 **추가**를 통해 [파일과 폴더](#add-files-and-folders)를 추가합니다 |325| 저장소, 파일, 환경 | 모든 클라우드 스레드가 복제하는 저장소, 스레드가 `/mnt/project-files` 아래에서 읽을 수 있는 폴더와 파일, 그리고 스레드가 실행되는 클라우드 환경 | **프로젝트 설정 > 환경**의 저장소와 환경, 또는 대화에서 Claude에게 저장소를 프로젝트에 추가하도록 요청합니다. **개요**의 **라이브러리** 탭에서 **추가**를 통해 [파일과 폴더](#add-files-and-folders)를 추가합니다 |

326 326 

327**프로젝트 설정 > 메모리**는 이러한 파일을 **자동 메모리** 아래에 나열합니다. Claude가 프로젝트에서 작업할 때 자동으로 작성하기 때문입니다. 이는 Claude Code가 머신에서 유지하는 [자동 메모리](/docs/ko/memory)와는 별개이며, 둘 다 `MEMORY.md` 인덱스를 사용하지만 다릅니다. 프로젝트 메모리는 또한 프로젝트의 저장소에 있는 `CLAUDE.md` 파일과도 별개입니다. 각 클라우드 스레드는 시작할 때 복제본에서 이러한 `CLAUDE.md` 파일을 읽으므로, 저장소에 대한 지침은 해당 `CLAUDE.md`에 넣고 프로젝트에 대한 메모는 프로젝트 메모리에 넣습니다.327**프로젝트 설정 > 메모리**는 이러한 파일을 **자동 메모리** 아래에 나열합니다. Claude가 프로젝트에서 작업할 때 자동으로 작성하기 때문입니다. 이는 Claude Code가 머신에서 유지하는 [자동 메모리](/docs/ko/memory)와는 별개이며, 둘 다 `MEMORY.md` 인덱스를 사용하지만 다릅니다. 프로젝트 메모리는 또한 프로젝트의 저장소에 있는 `CLAUDE.md` 파일과도 별개입니다. 각 클라우드 스레드는 시작할 때 복제본에서 이러한 `CLAUDE.md` 파일을 읽으므로, 저장소에 대한 지침은 해당 `CLAUDE.md`에 넣고 프로젝트에 대한 메모는 프로젝트 메모리에 넣습니다.

328 328 


333프로젝트 지침은 모든 새로운 스레드가 시작하는 기본 지침입니다. 프로젝트 헤더의 톱니바퀴 아이콘을 클릭하여 **프로젝트 설정**을 열고, **메모리 > 프로젝트 지침**으로 이동합니다. 유용한 지침은 다음을 포함합니다:333프로젝트 지침은 모든 새로운 스레드가 시작하는 기본 지침입니다. 프로젝트 헤더의 톱니바퀴 아이콘을 클릭하여 **프로젝트 설정**을 열고, **메모리 > 프로젝트 지침**으로 이동합니다. 유용한 지침은 다음을 포함합니다:

334 334 

335* 프로젝트의 목적335* 프로젝트의 목적

336* 작업이 진행되는 위치: 어느 저장소, 어느 브랜치에서 시작할지, 풀 요청의 이름을 어떻게 지을지336* 작업이 진행되는 위치: 어느 저장소, 어느 브랜치에서 시작할지, 풀 리퀘스트의 이름을 어떻게 지을지

337* 스레드가 작업을 완료하기 전에 자신의 작업을 확인하는 방법337* 스레드가 작업을 완료하기 전에 자신의 작업을 확인하는 방법

338* 필요한 것이 누락되었을 때 할 일338* 필요한 것이 누락되었을 때 할 일

339* 먼저 승인이 필요한 것339* 먼저 승인이 필요한 것


343```text theme={null}343```text theme={null}

344이 프로젝트는 payments API의 p95 지연 시간을 200ms 이하로 유지합니다: 프로파일링, 쿼리 및 캐싱 수정, 그리고 이에 따른 의존성 업그레이드를 payments-api 저장소에서 수행합니다.344이 프로젝트는 payments API의 p95 지연 시간을 200ms 이하로 유지합니다: 프로파일링, 쿼리 및 캐싱 수정, 그리고 이에 따른 의존성 업그레이드를 payments-api 저장소에서 수행합니다.

345 345 

346- main에서 브랜치를 만들고 스레드당 하나의 드래프트 풀 요청을 엽니다.346- main에서 브랜치를 만들고 스레드당 하나의 드래프트 풀 리퀘스트를 엽니다.

347- 작업을 완료하기 전에 `make test`와 `make lint`를 실행하고 최종 메시지에 요약 줄을 붙여넣습니다.347- 작업을 완료하기 전에 `make test`와 `make lint`를 실행하고 최종 메시지에 요약 줄을 붙여넣습니다.

348- 저장소, 시크릿, API, 또는 커넥터와 같이 필요한 것에 도달할 수 없으면, 첫 번째 메시지에서 정확히 무엇이 누락되었는지 말하고 멈춥니다. 대체하거나, 모의하거나, 추측하지 마세요.348- 저장소, 시크릿, API, 또는 커넥터와 같이 필요한 것에 도달할 수 없으면, 첫 번째 메시지에서 정확히 무엇이 누락되었는지 말하고 멈춥니다. 대체하거나, 모의하거나, 추측하지 마세요.

349- 내 승인 없이 병합하거나, 강제 푸시하거나, CI 구성을 변경하지 마세요.349- 스레드에서 나에게 묻지 않고 병합하거나, 강제 푸시하거나, CI 구성을 변경하지 마세요.

350```350```

351 351 

352한 저장소에 대한 규칙(예: 빌드 명령)은 해당 저장소의 `CLAUDE.md`에 속하며, 저장소가 프로젝트의 일부일 때 모든 클라우드 스레드가 시작할 때 읽습니다. 작업이 진행 중일 때 스레드를 수정하면, Claude에게 수정 사항을 기억하도록 말하세요: 이는 [프로젝트 메모리](#give-a-project-standing-context)로 이동하고 이후 클라우드 스레드는 이를 가지고 시작합니다.352한 저장소에 대한 규칙(예: 빌드 명령)은 해당 저장소의 `CLAUDE.md`에 속하며, 저장소가 프로젝트의 일부일 때 모든 클라우드 스레드가 이를 읽습니다. 작업이 진행 중일 때 스레드를 수정하면, Claude에게 수정 사항을 기억하도록 말하세요: 이는 [프로젝트 메모리](#give-a-project-standing-context)로 이동하고 이후 클라우드 스레드는 이를 가지고 시작합니다.

353 353 

354<h3 id="decide-which-repositories-to-add">354<h3 id="decide-which-repositories-to-add">

355 추가할 저장소 결정하기355 추가할 저장소 결정하기


358프로젝트에 추가하는 저장소는 코드, `CLAUDE.md`, 스킬을 포함한 모든 것이 모든 클라우드 스레드에 포함됩니다. 추가하지 않은 저장소도 여전히 접근 가능합니다: 클라우드 스레드는 작업에 필요할 때 자신에게 저장소를 추가할 수 있습니다. 대부분의 프로젝트는 둘 다 사용합니다:358프로젝트에 추가하는 저장소는 코드, `CLAUDE.md`, 스킬을 포함한 모든 것이 모든 클라우드 스레드에 포함됩니다. 추가하지 않은 저장소도 여전히 접근 가능합니다: 클라우드 스레드는 작업에 필요할 때 자신에게 저장소를 추가할 수 있습니다. 대부분의 프로젝트는 둘 다 사용합니다:

359 359 

360* **프로젝트에 추가합니다**, **새 프로젝트** 대화에서, **프로젝트 설정 > 환경**에서, 또는 대화에서 Claude에게 프로젝트에 추가하도록 요청합니다. 그 이후 모든 클라우드 스레드는 작업이 이를 건드리든 아니든 이를 복제하고 `CLAUDE.md`와 스킬을 로드하여 시작합니다. 한 저장소에서 여러 저장소로 이동하면 각 저장소의 `.claude/settings.json`에서 스레드가 가져오는 것도 변경됩니다; [저장소에서 스레드가 가져오는 것](#what-threads-pick-up-from-your-repositories)을 참조하세요.360* **프로젝트에 추가합니다**, **새 프로젝트** 대화에서, **프로젝트 설정 > 환경**에서, 또는 대화에서 Claude에게 프로젝트에 추가하도록 요청합니다. 그 이후 모든 클라우드 스레드는 작업이 이를 건드리든 아니든 이를 복제하고 `CLAUDE.md`와 스킬을 로드하여 시작합니다. 한 저장소에서 여러 저장소로 이동하면 각 저장소의 `.claude/settings.json`에서 스레드가 가져오는 것도 변경됩니다; [저장소에서 스레드가 가져오는 것](#what-threads-pick-up-from-your-repositories)을 참조하세요.

361* **이를 제외하고 스레드가 필요할 때 추가하도록 합니다.** 프로젝트가 없는 저장소가 필요한 작업을 가진 클라우드 스레드는 자신에게 저장소를 추가할 수 있으며, 스레드의 메모는 이 스레드에만 추가되었음을 나타냅니다. 복제는 작업 중간에 발생하므로 해당 저장소의 `CLAUDE.md`와 스킬은 스레드가 시작할 때 없었습니다. 다음 스레드는 다시 이를 없이 시작합니다. 스레드가 추가하는 저장소는 프로젝트 저장소와 동일한 [전제조건](#check-the-prerequisites)이 필요합니다: 설치된 Claude GitHub App과 GitHub 계정의 푸시 액세스.361* **이를 제외하고 스레드가 필요할 때 추가하도록 합니다.** 프로젝트에 없는 저장소가 필요한 작업을 가진 클라우드 스레드는 자신에게 저장소를 추가할 수 있으며, 스레드의 메모는 이 스레드에만 추가되었음을 나타냅니다. 복제는 작업 중간에 발생하므로 해당 저장소의 `CLAUDE.md`와 스킬은 스레드가 시작할 때 없었습니다. 다음 스레드는 해당 저장소 없이 시작합니다. 이런 방식으로 추가된 저장소는 프로젝트 저장소와 동일한 [사전 요구 사항](#check-the-prerequisites)이 필요합니다: 해당 저장소에 설치된 Claude GitHub App과 GitHub 계정의 푸시 액세스.

362 362 

363프로젝트는 저장소가 전혀 필요하지 않을 수 있습니다. 클라우드 스레드는 여전히 조사하고, 문서를 작성하고, 자신의 샌드박스에서 코드를 작성하고 실행할 수 있으며, **라이브러리** 탭에 파일을 전달합니다. 거기의 모든 클라우드 스레드는 작업이 필요할 때 자신에게 저장소를 추가할 수도 있습니다.363프로젝트에 저장소가 전혀 필요하지 않습니다. 클라우드 스레드는 여전히 조사하고, 문서를 작성하고, 자신의 샌드박스에서 코드를 작성하고 실행할 수 있으며, **라이브러리** 탭에 파일을 전달합니다. 프로젝트의 모든 클라우드 스레드는 작업에 필요할 때 여전히 자신에게 저장소를 추가할 수 있습니다.

364 364 

365프로젝트에 저장소가 있으면, Claude는 프로젝트가 이미 사용하는 GitHub 소유자의 저장소만 추가할 수 있습니다. 프로젝트에 추가하든 스레드가 자신에게 추가하든 상관없습니다. 다른 소유자의 저장소를 가져오려면 **프로젝트 설정 > 환경**에서 직접 프로젝트에 추가하세요.365프로젝트에 저장소가 있으면, Claude는 프로젝트가 이미 사용하는 GitHub 소유자의 저장소만 추가할 수 있습니다. 프로젝트에 추가하든 스레드가 자신에게 추가하든 상관없습니다. 다른 소유자의 저장소를 가져오려면 **프로젝트 설정 > 환경**에서 직접 프로젝트에 추가하세요.

366 366 

367서버, 웹, 모바일, 데스크톱 코드가 있는 기능과 같이 많은 저장소에 걸친 프로젝트의 경우, 거의 모든 작업이 건드리는 저장소 1\~2개를 추가하고 [프로젝트 지침](#write-project-instructions)에서 나머지 코드가 어디에 있는지 이름을 지으세요. 그러면 클라우드 스레드는 작게 시작하고 필요한 작업에만 다른 저장소를 가져옵니다.367서버, 웹, 모바일, 데스크톱 코드가 있는 기능과 같이 많은 저장소에 걸친 프로젝트의 경우, 거의 모든 작업이 건드리는 저장소 1\~2개를 추가하고 나머지 저장소는 [프로젝트 지침](#write-project-instructions)에 이름을 적어 Claude가 나머지 코드가 어디에 있는지 알 수 있게 하세요. 그러면 클라우드 스레드는 작게 시작하고 필요한 작업에만 다른 저장소를 가져옵니다.

368 368 

369<h3 id="add-files-and-folders">369<h3 id="add-files-and-folders">

370 파일과 폴더 추가하기370 파일과 폴더 추가하기


381 저장소에서 스레드가 가져오는 것381 저장소에서 스레드가 가져오는 것

382</h3>382</h3>

383 383 

384각 클라우드 스레드는 프로젝트의 모든 저장소를 복제하고 모든 저장소에서 `CLAUDE.md`와 스킬을 로드합니다. 권한 규칙, 훅, `env`는 스레드가 시작하는 디렉토리의 `.claude/settings.json`에서만 옵니다: 프로젝트가 하나일 때는 저장소 내부, 여러 개일 때는 복제본 위에서, 저장소의 파일이 읽히지 않는 곳입니다.384각 클라우드 스레드는 프로젝트의 모든 저장소를 복제하고 모든 저장소에서 `CLAUDE.md`와 스킬을 로드합니다. 권한 규칙, 훅, `env`는 스레드가 시작하는 디렉토리의 `.claude/settings.json`에서만 옵니다: 프로젝트에 저장소가 하나일 때는 저장소 내부이고, 여러 개일 때는 복제본 위이며, 이 경우 이들 항목을 위해 어떤 저장소의 파일도 읽히지 않습니다.

385 385 

386| 각 저장소에서 | 한 저장소 | 여러 저장소 |386| 각 저장소에서 | 한 저장소 | 여러 저장소 |

387| :- | :- | :- |387| :- | :- | :- |


398 398 

399모든 새로운 클라우드 스레드는 프로젝트의 [클라우드 환경](/docs/ko/cloud-environments)에서 시작합니다. 환경은 스레드가 도달할 수 있는 도메인, 스레드가 가진 환경 변수, 요청에 추가되는 네트워크 시크릿, 그리고 Claude가 시작하기 전에 설정 스크립트가 설치하는 것을 설정합니다. 클라우드 스레드는 **프로젝트 설정 > 환경**에서 선택할 때까지 기본 Anthropic 호스팅 환경을 사용합니다.399모든 새로운 클라우드 스레드는 프로젝트의 [클라우드 환경](/docs/ko/cloud-environments)에서 시작합니다. 환경은 스레드가 도달할 수 있는 도메인, 스레드가 가진 환경 변수, 요청에 추가되는 네트워크 시크릿, 그리고 Claude가 시작하기 전에 설정 스크립트가 설치하는 것을 설정합니다. 클라우드 스레드는 **프로젝트 설정 > 환경**에서 선택할 때까지 기본 Anthropic 호스팅 환경을 사용합니다.

400 400 

401클라우드 스레드가 내부 API 또는 프라이빗 패키지 레지스트리에 도달해야 하거나 머신이 일반적으로 보유한 토큰이 필요하면, 프로젝트가 아닌 환경을 변경하세요: [네트워크 액세스](/docs/ko/cloud-environments#network-access), [네트워크 시크릿 추가](/docs/ko/cloud-environments#add-api-credentials), [설정 스크립트](/docs/ko/cloud-environments#setup-scripts)를 참조하세요.401클라우드 스레드가 내부 API 또는 프라이빗 패키지 레지스트리에 도달해야 하거나 머신이 일반적으로 보유한 토큰이 필요하면, 프로젝트가 아닌 환경을 변경하세요: [네트워크 액세스](/docs/ko/cloud-environments#network-access), [네트워크 시크릿 추가](/docs/ko/cloud-environments#add-network-secrets), [설정 스크립트](/docs/ko/cloud-environments#setup-scripts)를 참조하세요.

402 402 

403<h3 id="get-skills-plugins-connectors-and-tools-into-threads">403<h3 id="get-skills-plugins-connectors-and-tools-into-threads">

404 스킬, 플러그인, 커넥터, 도구를 스레드에 가져오기404 스킬, 플러그인, 커넥터, 도구를 스레드에 가져오기


407클라우드 스레드는 머신에만 설치된 스킬, MCP 서버, 플러그인, 도구가 없습니다. [Remote Control](/docs/ko/remote-control)을 통해 Claude가 머신에서 실행하는 스레드는 거기에 설치된 것을 사용합니다. 이들 각각을 클라우드 스레드에서 사용 가능하게 하려면:407클라우드 스레드는 머신에만 설치된 스킬, MCP 서버, 플러그인, 도구가 없습니다. [Remote Control](/docs/ko/remote-control)을 통해 Claude가 머신에서 실행하는 스레드는 거기에 설치된 것을 사용합니다. 이들 각각을 클라우드 스레드에서 사용 가능하게 하려면:

408 408 

409* 스킬, 서브에이전트, 명령: 프로젝트에 추가한 저장소에 커밋합니다. 예를 들어 `.claude/skills/<skill-name>/SKILL.md`의 스킬입니다. 각 클라우드 스레드는 프로젝트의 모든 저장소를 복제하고 각 저장소에서 `.claude/skills/`, `.claude/agents/`, `.claude/commands/`를 로드하므로, 한 저장소에 커밋된 스킬은 모든 클라우드 스레드에서 사용 가능합니다. 클라우드 스레드는 또한 claude.ai 계정에 대해 활성화한 스킬을 로드합니다.409* 스킬, 서브에이전트, 명령: 프로젝트에 추가한 저장소에 커밋합니다. 예를 들어 `.claude/skills/<skill-name>/SKILL.md`의 스킬입니다. 각 클라우드 스레드는 프로젝트의 모든 저장소를 복제하고 각 저장소에서 `.claude/skills/`, `.claude/agents/`, `.claude/commands/`를 로드하므로, 한 저장소에 커밋된 스킬은 모든 클라우드 스레드에서 사용 가능합니다. 클라우드 스레드는 또한 claude.ai 계정에 대해 활성화한 스킬을 로드합니다.

410* 플러그인: **프로젝트 설정 > 플러그인**에서 추가합니다; 각 새로운 클라우드 스레드에 로드됩니다. 저장소가 `.claude/settings.json`에서 선언하는 플러그인은 클라우드 스레드이기 때문에 [클라우드 스레드에 로드되지 않습니다](/docs/ko/cloud-environments#what-carries-over-from-your-setup).410* 플러그인: **프로젝트 설정 > 플러그인**에서 추가합니다; 각 새로운 클라우드 스레드에 로드됩니다. 저장소가 `.claude/settings.json`에서 선언하는 플러그인은 [클라우드 스레드에 로드되지 않습니다](/docs/ko/cloud-environments#what-carries-over-from-your-setup).

411* MCP 서버: 클라우드 스레드는 claude.ai 계정의 커넥터에서 MCP 도구를 가져옵니다. 커넥터는 [claude.ai/customize/connectors](https://claude.ai/customize/connectors)에서 한 번 연결하거나 **프로젝트 설정 > 환경**의 **커넥터 관리** 링크를 통해 연결하는 MCP 서버입니다. 모든 클라우드 스레드는 프로젝트별 설정 없이 모두 사용할 수 있습니다. 프로젝트 대화 자체는 커넥터가 없으므로 커넥터가 필요한 작업을 클라우드 스레드의 작업으로 보냅니다. 한 저장소가 있는 프로젝트에서, 클라우드 스레드는 또한 해당 저장소의 [`.mcp.json`](/docs/ko/cloud-environments#what-carries-over-from-your-setup)에서 MCP 서버를 로드합니다. [커넥터가 Claude Code에 도달하는 방법](/docs/ko/mcp#how-connectors-reach-claude-code)은 클라우드 세션의 규칙과 커넥터를 끄는 설정을 나열합니다.411* MCP 서버: 클라우드 스레드는 claude.ai 계정의 커넥터에서 MCP 도구를 가져옵니다. 커넥터는 [claude.ai/customize/connectors](https://claude.ai/customize/connectors)에서 한 번 연결하거나 **프로젝트 설정 > 환경**의 **커넥터 관리** 링크를 통해 연결하는 MCP 서버입니다. 모든 클라우드 스레드는 프로젝트별 설정 없이 모두 사용할 수 있습니다. 프로젝트 대화 자체는 커넥터가 없으므로 커넥터가 필요한 작업을 클라우드 스레드의 작업으로 보냅니다. 한 저장소가 있는 프로젝트에서, 클라우드 스레드는 또한 해당 저장소의 [`.mcp.json`](/docs/ko/cloud-environments#what-carries-over-from-your-setup)에서 MCP 서버를 로드합니다. [커넥터가 Claude Code에 도달하는 방법](/docs/ko/mcp#how-connectors-reach-claude-code)은 클라우드 세션의 규칙과 커넥터를 끄는 설정을 나열합니다.

412* 명령줄 도구 및 패키지: 환경의 [설정 스크립트](/docs/ko/cloud-environments#setup-scripts)에 설치합니다.412* 명령줄 도구 및 패키지: 환경의 [설정 스크립트](/docs/ko/cloud-environments#setup-scripts)에 설치합니다.

413 413 

414실행 중인 클라우드 스레드가 claude.ai/code에서 가진 커넥터를 보려면, 스레드를 열고 메시지 상자 옆의 **+** 메뉴에서 **커넥터**를 선택합니다. 거기서 커넥터를 끄면 해당 스레드에서 제거되고 계정 기본값으로 저장되므로, 다시 켤 때까지 새로운 클라우드 스레드와 claude.ai 채팅이 이를 없이 시작합니다. 클라우드 스레드는 다음 메시지를 보낸 후 추가하거나 다시 연결한 커넥터를 가져옵니다.414실행 중인 클라우드 스레드가 claude.ai/code에서 가진 커넥터를 보려면, 스레드를 열고 메시지 상자 옆의 **+** 메뉴에서 **커넥터**를 선택합니다. 거기서 커넥터를 끄면 해당 스레드에서 제거되고 계정 기본값으로 저장되므로, 다시 켤 때까지 새로운 스레드와 claude.ai 채팅이 해당 커넥터 없이 시작합니다. 클라우드 스레드는 다음 메시지를 보낸 후 추가하거나 다시 연결한 커넥터를 가져옵니다.

415 415 

416<h2 id="project-settings-reference">416<h2 id="project-settings-reference">

417 프로젝트 설정 참조417 프로젝트 설정 참조

Details

10 클라우드 환경은 [클라우드 세션](/docs/ko/claude-code-on-the-web)에 적용되며, 이는 Pro, Max, Team 플랜에서 사용 가능하고, [프리미엄 시트 또는 Chat + Claude Code 시트](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan)가 있는 Enterprise 사용자를 위한 것입니다.10 클라우드 환경은 [클라우드 세션](/docs/ko/claude-code-on-the-web)에 적용되며, 이는 Pro, Max, Team 플랜에서 사용 가능하고, [프리미엄 시트 또는 Chat + Claude Code 시트](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan)가 있는 Enterprise 사용자를 위한 것입니다.

11</Note>11</Note>

12 12 

13각 [클라우드 세션](/docs/ko/claude-code-on-the-web)은 클라우드 환경에서 실행됩니다. 환경을 구성하여 [네트워크 액세스](#access-levels)를 허용하거나 거부하고, 세션에 대한 [환경 변수](#set-environment-variables)를 설정하며, Pro 및 Max 플랜에서 세션이 값을 직접 보지 않고도 사용할 수 있는 [네트워크 시크릿](#add-api-credentials)을 저장하고, Claude가 작업을 시작하기 전에 [설정 스크립트](#setup-scripts)를 실행할 수 있습니다.13각 [클라우드 세션](/docs/ko/claude-code-on-the-web)은 클라우드 환경에서 실행됩니다. 환경을 구성하여 [네트워크 액세스](#access-levels)를 허용하거나 거부하고, 세션에 대한 [환경 변수](#set-environment-variables)를 설정하며, Pro 및 Max 플랜에서 세션이 값을 직접 보지 않고도 사용할 수 있는 [네트워크 시크릿](#add-network-secrets)을 저장하고, Claude가 작업을 시작하기 전에 [설정 스크립트](#setup-scripts)를 실행할 수 있습니다.

14 14 

15동일한 환경이 클라우드 세션을 시작하는 모든 곳에 적용됩니다: [Desktop 앱](/docs/ko/desktop), [Claude 모바일 앱](/docs/ko/mobile), [claude.ai/code](https://claude.ai/code)의 브라우저, [`claude --cloud`](/docs/ko/claude-code-on-the-web#from-terminal-to-cloud)를 사용한 터미널, [루틴](/docs/ko/routines), 그리고 [Claude Tag](https://claude.com/docs/claude-tag/overview). 이러한 각 표면은 [자체 호스팅 환경](/docs/ko/self-hosted-environments)으로도 라우팅할 수 있습니다. [가용성 및 제한 사항](/docs/ko/self-hosted-environments#availability-and-limitations)은 Claude Tag 세션이 하나에서 실행될 때 Claude가 아직 사용할 수 없는 항목을 다룹니다.15동일한 환경이 클라우드 세션을 시작하는 모든 곳에 적용됩니다: [Desktop 앱](/docs/ko/desktop), [Claude 모바일 앱](/docs/ko/mobile), [claude.ai/code](https://claude.ai/code)의 브라우저, [`claude --cloud`](/docs/ko/claude-code-on-the-web#from-terminal-to-cloud)를 사용한 터미널, [루틴](/docs/ko/routines), 그리고 [Claude Tag](https://claude.com/docs/claude-tag/overview). 이러한 각 표면은 [자체 호스팅 환경](/docs/ko/self-hosted-environments)으로도 라우팅할 수 있습니다. [가용성 및 제한 사항](/docs/ko/self-hosted-environments#availability-and-limitations)은 Claude Tag 세션이 하나에서 실행될 때 Claude가 아직 사용할 수 없는 항목을 다룹니다.

16 16 


58 <Step title="환경 추가 또는 편집">58 <Step title="환경 추가 또는 편집">

59 **Cloud**를 선택하여 환경을 나열합니다. 그런 다음 **Add cloud environment**를 선택하거나, 기존 환경 위에 마우스를 올리고 오른쪽에 나타나는 설정 아이콘을 선택합니다.59 **Cloud**를 선택하여 환경을 나열합니다. 그런 다음 **Add cloud environment**를 선택하거나, 기존 환경 위에 마우스를 올리고 오른쪽에 나타나는 설정 아이콘을 선택합니다.

60 60 

61 대화 상자에는 이름, 네트워크 액세스 수준, 환경 변수 및 설정 스크립트가 포함됩니다. Pro 또는 Max 플랜에서 기존 클라우드 환경을 편집할 때 대화 상자에는 [네트워크 시크릿](#add-api-credentials)도 포함됩니다.61 대화 상자에는 이름, 네트워크 액세스 수준, 환경 변수 및 설정 스크립트가 포함됩니다. Pro 또는 Max 플랜에서 기존 클라우드 환경을 편집할 때 대화 상자에는 [네트워크 시크릿](#add-network-secrets)도 포함됩니다.

62 62 

63 <Frame>63 <Frame>

64 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-dialog.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=30d4478b31d1f879f7ee287ddab32505" alt="New cloud environment 대화 상자입니다. 기본값 자리 표시자가 있는 Name 필드, Trusted로 설정된 Network access 선택기(네트워크 정책 및 액세스 수준에 대한 링크 포함), .env 형식 자리 표시자 텍스트가 있는 Environment variables 상자(환경을 사용하는 모든 사람이 값을 볼 수 있다는 참고 사항 포함), Claude Code가 시작되기 전에 새 세션이 시작될 때 실행되는 Bash 스크립트로 설명된 Setup script 상자, 그리고 Cancel 및 Create environment 버튼이 있습니다." width="874" height="1372" data-path="images/cloud-environment-dialog.png" />64 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-dialog.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=30d4478b31d1f879f7ee287ddab32505" alt="New cloud environment 대화 상자입니다. 기본값 자리 표시자가 있는 Name 필드, Trusted로 설정된 Network access 선택기(네트워크 정책 및 액세스 수준에 대한 링크 포함), .env 형식 자리 표시자 텍스트가 있는 Environment variables 상자(환경을 사용하는 모든 사람이 값을 볼 수 있다는 참고 사항 포함), Claude Code가 시작되기 전에 새 세션이 시작될 때 실행되는 Bash 스크립트로 설명된 Setup script 상자, 그리고 Cancel 및 Create environment 버튼이 있습니다." width="874" height="1372" data-path="images/cloud-environment-dialog.png" />


91 91 

92클라우드 세션은 시작할 때 자체적으로 일부 변수도 설정합니다. [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/ko/claude-code-on-the-web#manage-context)의 경우, 세션이 설정하는 값이 여기에 추가한 값을 재정의하므로 여기에 해당 키를 추가해도 효과가 없습니다.92클라우드 세션은 시작할 때 자체적으로 일부 변수도 설정합니다. [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/ko/claude-code-on-the-web#manage-context)의 경우, 세션이 설정하는 값이 여기에 추가한 값을 재정의하므로 여기에 해당 키를 추가해도 효과가 없습니다.

93 93 

94환경을 사용하는 모든 사람이 값을 읽을 수 있습니다. Pro 및 Max 플랜에서는 에이전트 프록시가 요청에 첨부할 수 있는 키에 대해 [네트워크 시크릿](#add-api-credentials)을 대신 사용하십시오. [시크릿을 받지 않는 요청](#requests-that-never-get-the-credential)은 해당 섹션에 나열되어 있습니다.94환경을 사용하는 모든 사람이 값을 읽을 수 있습니다. Pro 및 Max 플랜에서는 에이전트 프록시가 요청에 첨부할 수 있는 키에 대해 [네트워크 시크릿](#add-network-secrets)을 대신 사용하십시오. [시크릿을 받지 않는 요청](#requests-that-never-get-the-credential)은 해당 섹션에 나열되어 있습니다.

95 95 

96<h3 id="add-api-credentials">96<span id="add-api-credentials" />

97 

98<h3 id="add-network-secrets">

97 네트워크 시크릿 추가99 네트워크 시크릿 추가

98</h3>100</h3>

99 101 


197 199 

198Owner는 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)에서 조직의 [기본 환경](#the-default-environment)을 별도로 선택합니다.200Owner는 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)에서 조직의 [기본 환경](#the-default-environment)을 별도로 선택합니다.

199 201 

200모든 구성원의 공유 환경 세션은 해당 변수를 읽으므로 비밀 정보를 포함하지 마십시오. 세션에 읽을 수 없는 키를 제공하는 [네트워크 시크릿](#add-api-credentials)은 Team 또는 Enterprise 플랜에서 아직 사용할 수 없습니다.202모든 구성원의 공유 환경 세션은 해당 변수를 읽으므로 비밀 정보를 포함하지 마십시오. 세션에 읽을 수 없는 키를 제공하는 [네트워크 시크릿](#add-network-secrets)은 Team 또는 Enterprise 플랜에서 아직 사용할 수 없습니다.

201 203 

202<h3 id="set-the-environment-a-claude-tag-channel-uses">204<h3 id="set-the-environment-a-claude-tag-channel-uses">

203 Claude Tag 채널이 사용하는 환경 설정205 Claude Tag 채널이 사용하는 환경 설정


239 241 

240* GitHub([별도의 프록시](#github-proxy)를 통해)242* GitHub([별도의 프록시](#github-proxy)를 통해)

241* 활성화한 [MCP 커넥터](#network-access)(트래픽이 Anthropic의 서버를 통해 이동)243* 활성화한 [MCP 커넥터](#network-access)(트래픽이 Anthropic의 서버를 통해 이동)

242* 환경의 [네트워크 시크릿](#add-api-credentials)에 나열한 호스트([시크릿을 받지 않는 호스트](#requests-that-never-get-the-credential) 제외)244* 환경의 [네트워크 시크릿](#add-network-secrets)에 나열한 호스트([시크릿을 받지 않는 호스트](#requests-that-never-get-the-credential) 제외)

243* Anthropic API(Claude Code의 자체 요청의 경우, [보안 및 격리](/docs/ko/claude-code-on-the-web#security-and-isolation) 아래에 언급된 대로 **None**에서도)245* Anthropic API(Claude Code의 자체 요청의 경우, [보안 및 격리](/docs/ko/claude-code-on-the-web#security-and-isolation) 아래에 언급된 대로 **None**에서도)

244 246 

245<h3 id="allow-specific-domains">247<h3 id="allow-specific-domains">


254registry.example.com256registry.example.com

255```257```

256 258 

257이 환경의 세션은 이제 `api.example.com`, `internal.example.com`의 모든 하위 도메인 및 `registry.example.com`에 도달할 수 있으며 세션의 네트워크를 통해 다른 도메인에는 도달할 수 없습니다. [GitHub 트래픽](#github-proxy), [MCP 커넥터 트래픽](#network-access) 및 환경의 [네트워크 시크릿](#add-api-credentials)의 호스트에 대한 요청([시크릿을 받지 않는 호스트](#requests-that-never-get-the-credential) 제외)은 이 허용 목록을 통과하지 않습니다. 선행 `*.`은 모든 하위 도메인과 일치합니다. [Trusted 도메인](#default-allowed-domains)도 유지하려면 **Also include default list of common package managers**를 확인합니다. 나열한 것만 허용하려면 선택 해제합니다.259이 환경의 세션은 이제 `api.example.com`, `internal.example.com`의 모든 하위 도메인 및 `registry.example.com`에 도달할 수 있으며 세션의 네트워크를 통해 다른 도메인에는 도달할 수 없습니다. [GitHub 트래픽](#github-proxy), [MCP 커넥터 트래픽](#network-access) 및 환경의 [네트워크 시크릿](#add-network-secrets)의 호스트에 대한 요청([시크릿을 받지 않는 호스트](#requests-that-never-get-the-credential) 제외)은 이 허용 목록을 통과하지 않습니다. 선행 `*.`은 모든 하위 도메인과 일치합니다. [Trusted 도메인](#default-allowed-domains)도 유지하려면 **Also include default list of common package managers**를 확인합니다. 나열한 것만 허용하려면 선택 해제합니다.

258 260 

259조직이 [아티팩트](/docs/ko/artifacts#availability)를 사용하는 경우 세션이 이를 읽기 위해 목록에 `*.frame.claudeusercontent.com`이 필요하지 않습니다. 목록이 해당 호스트를 생략하면 Claude Code는 세션의 Anthropic 연결을 통해 아티팩트 콘텐츠를 읽습니다. 두 가지 상황에서 호스트를 허용 목록에 유지합니다:261조직이 [아티팩트](/docs/ko/artifacts#availability)를 사용하는 경우 세션이 이를 읽기 위해 목록에 `*.frame.claudeusercontent.com`이 필요하지 않습니다. 목록이 해당 호스트를 생략하면 Claude Code는 세션의 Anthropic 연결을 통해 아티팩트 콘텐츠를 읽습니다. 두 가지 상황에서 호스트를 허용 목록에 유지합니다:

260 262 


316| 사용자 설정에서만 활성화된 플러그인 | 아니오 | 사용자 범위 `enabledPlugins`은 머신의 `~/.claude/settings.json`에 있습니다 |318| 사용자 설정에서만 활성화된 플러그인 | 아니오 | 사용자 범위 `enabledPlugins`은 머신의 `~/.claude/settings.json`에 있습니다 |

317| `claude mcp add`로 기본 로컬 범위 또는 사용자 범위에서 추가한 MCP 서버 | 아니오 | 이는 저장소가 아닌 머신의 `~/.claude.json`에 씁니다. 저장소의 [`.mcp.json`](/docs/ko/mcp#project-scope)에 쓰는 `claude mcp add --scope project`로 서버를 추가하고 해당 파일을 커밋합니다. 하나의 저장소가 있는 세션이 이를 로드합니다 |319| `claude mcp add`로 기본 로컬 범위 또는 사용자 범위에서 추가한 MCP 서버 | 아니오 | 이는 저장소가 아닌 머신의 `~/.claude.json`에 씁니다. 저장소의 [`.mcp.json`](/docs/ko/mcp#project-scope)에 쓰는 `claude mcp add --scope project`로 서버를 추가하고 해당 파일을 커밋합니다. 하나의 저장소가 있는 세션이 이를 로드합니다 |

318| 저장소의 `.claude/settings.json` `env` 블록의 전송 변수(예: `NODE_EXTRA_CA_CERTS` 및 [mTLS 클라이언트 인증서 변수](/docs/ko/network-config#mtls-authentication)) | 아니오 | 호스팅 환경이 세션의 API 연결을 관리하므로 Claude Code는 이러한 키를 무시하고 각 무시된 키를 세션의 디버그 로그에 기록합니다 |320| 저장소의 `.claude/settings.json` `env` 블록의 전송 변수(예: `NODE_EXTRA_CA_CERTS` 및 [mTLS 클라이언트 인증서 변수](/docs/ko/network-config#mtls-authentication)) | 아니오 | 호스팅 환경이 세션의 API 연결을 관리하므로 Claude Code는 이러한 키를 무시하고 각 무시된 키를 세션의 디버그 로그에 기록합니다 |

319| Claude가 호출하는 서비스의 API 키 및 토큰 | Pro 및 Max 플랜에서 [네트워크 시크릿](#add-api-credentials)으로 | 환경에 키를 한 번 추가하면 에이전트 프록시가 나열한 호스트에 대한 요청에 이를 첨부합니다. 에이전트 프록시가 [첨부할 수 없는](#requests-that-never-get-the-credential) 키 또는 Team 또는 Enterprise 플랜의 모든 키는 환경 변수에 남아 있습니다 |321| Claude가 호출하는 서비스의 API 키 및 토큰 | Pro 및 Max 플랜에서 [네트워크 시크릿](#add-network-secrets)으로 | 환경에 키를 한 번 추가하면 에이전트 프록시가 나열한 호스트에 대한 요청에 이를 첨부합니다. 에이전트 프록시가 [첨부할 수 없는](#requests-that-never-get-the-credential) 키 또는 Team 또는 Enterprise 플랜의 모든 키는 환경 변수에 남아 있습니다 |

320| AWS SSO와 같은 대화형 인증 | 아니오 | 지원되지 않습니다. SSO는 클라우드 세션에서 실행할 수 없는 브라우저 기반 로그인이 필요합니다 |322| AWS SSO와 같은 대화형 인증 | 아니오 | 지원되지 않습니다. SSO는 클라우드 세션에서 실행할 수 없는 브라우저 기반 로그인이 필요합니다 |

321 323 

322자신의 구성을 클라우드 세션에서 사용 가능하게 하려면 저장소에 커밋합니다.324자신의 구성을 클라우드 세션에서 사용 가능하게 하려면 저장소에 커밋합니다.

323 325 

324환경을 사용하는 모든 사람이 환경 변수 및 설정 스크립트를 읽을 수 있습니다. 대화 상자의 **Environment variables** 아래의 참고 사항이 이를 안내하고 비밀을 추가하지 않도록 경고합니다. Pro 및 Max 플랜에서는 에이전트 프록시가 첨부할 수 있는 키를 대신 [네트워크 시크릿](#add-api-credentials)으로 저장합니다.326환경을 사용하는 모든 사람이 환경 변수 및 설정 스크립트를 읽을 수 있습니다. 대화 상자의 **Environment variables** 아래의 참고 사항이 이를 안내하고 비밀을 추가하지 않도록 경고합니다. Pro 및 Max 플랜에서는 에이전트 프록시가 첨부할 수 있는 키를 대신 [네트워크 시크릿](#add-network-secrets)으로 저장합니다.

325 327 

326<h4 id="add-personal-preferences-without-committing-to-the-repo">328<h4 id="add-personal-preferences-without-committing-to-the-repo">

327 저장소에 커밋하지 않고 개인 기본 설정 추가329 저장소에 커밋하지 않고 개인 기본 설정 추가

commands.md +1 −1

Details

87| `/design-sync [hint]` | **[스킬](/docs/ko/skills#bundled-skills).** 저장소의 React 디자인 시스템을 변환하여 [Claude Design](https://claude.ai/design)에 업로드하므로, Claude Design이 생성하는 디자인에 실제 컴포넌트가 사용됩니다. 선택적으로 디자인 시스템의 이름을 지정할 수 있습니다(예: `/design-sync Acme DS`). 첫 동기화는 모든 컴포넌트를 검증하므로 대규모 저장소에서는 몇 시간이 걸릴 수 있습니다. Anthropic API에서 사용할 수 있습니다. claude.ai가 필요한데, Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, Claude Platform on AWS에서나 [Claude apps 게이트웨이](/docs/ko/claude-apps-gateway#availability-and-limitations)를 통해서는 CLI가 claude.ai에 연결하지 않으므로 해당 환경에서는 이 명령을 사용할 수 없습니다 |87| `/design-sync [hint]` | **[스킬](/docs/ko/skills#bundled-skills).** 저장소의 React 디자인 시스템을 변환하여 [Claude Design](https://claude.ai/design)에 업로드하므로, Claude Design이 생성하는 디자인에 실제 컴포넌트가 사용됩니다. 선택적으로 디자인 시스템의 이름을 지정할 수 있습니다(예: `/design-sync Acme DS`). 첫 동기화는 모든 컴포넌트를 검증하므로 대규모 저장소에서는 몇 시간이 걸릴 수 있습니다. Anthropic API에서 사용할 수 있습니다. claude.ai가 필요한데, Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, Claude Platform on AWS에서나 [Claude apps 게이트웨이](/docs/ko/claude-apps-gateway#availability-and-limitations)를 통해서는 CLI가 claude.ai에 연결하지 않으므로 해당 환경에서는 이 명령을 사용할 수 없습니다 |

88| `/desktop` | 현재 세션을 Claude Code Desktop 앱에서 계속합니다. macOS 또는 x64 Windows와 Claude 구독이 필요합니다. 별칭: `/app` |88| `/desktop` | 현재 세션을 Claude Code Desktop 앱에서 계속합니다. macOS 또는 x64 Windows와 Claude 구독이 필요합니다. 별칭: `/app` |

89| `/diff` | 지금까지 Claude가 수행한 편집을 포함하여 작업 트리의 변경 사항을 리뷰합니다. [/diff로 변경 사항 리뷰하기](/docs/ko/interactive-mode#review-changes-with-%2Fdiff)를 참조하세요 |89| `/diff` | 지금까지 Claude가 수행한 편집을 포함하여 작업 트리의 변경 사항을 리뷰합니다. [/diff로 변경 사항 리뷰하기](/docs/ko/interactive-mode#review-changes-with-%2Fdiff)를 참조하세요 |

90| `/doctor [prompt-audit [path]]` | **[스킬](/docs/ko/skills#bundled-skills).** 문제를 진단하고 수정할 수 있는 설정 점검을 실행합니다. 중복되거나 남아 있는 설치, `PATH` 문제, 구문 분석할 수 없는 설정 파일 등 설치 상태를 확인합니다. 사용하지 않는 스킬, MCP 서버, 플러그인을 컨텍스트 비용과 비교하여 찾아내고, 느린 [훅](/docs/ko/hooks)을 표시하며, [릴리스 채널](/docs/ko/setup#configure-release-channel)에 새 버전이 있는지 확인합니다. 로컬 `CLAUDE.md` 파일에서 체크인된 파일과 중복되는 내용을 제거하고, 코드베이스에서 Claude가 도출할 수 있는 내용을 잘라내어 체크인된 [`CLAUDE.md`](/docs/ko/memory#my-claude-md-is-too-large) 파일을 줄이며, 항상 로드되는 나머지 지침을 필요할 때 로드되는 [스킬](/docs/ko/skills)과 중첩된 `CLAUDE.md` 파일로 옮깁니다. 또한 [자동 모드](/docs/ko/permissions#permission-modes)를 기본값으로 설정하고 자주 거부되는 읽기 전용 명령을 [사전 승인](/docs/ko/permissions)하도록 제안합니다. 발견 사항을 먼저 보고하고 변경하기 전에 확인을 요청합니다. 터미널에서 `claude doctor`를 실행하면 세션을 시작하지 않고 읽기 전용 설치 진단 결과를 출력합니다. 별칭: `/checkup`. 점검을 실행하는 대신 Claude가 [`CLAUDE.md` 파일, 스킬, 기타 구성](/docs/ko/memory#audit-your-instruction-files)에서 오래되었거나 충돌하는 지침을 감사하도록 하려면 `/doctor prompt-audit`를 실행합니다. `prompt-audit` 하위 명령은 Claude Code v2.1.283 이상이 필요합니다. `CLAUDE.md` 축소 점검은 Claude Code v2.1.206 이상이 필요합니다. v2.1.205 이전에는 `/doctor`가 읽기 전용 진단 화면을 열었고, `f`를 누르면 보고서가 Claude에게 전송되었습니다 |90| `/doctor [prompt-audit [path]]` | **[스킬](/docs/ko/skills#bundled-skills).** 설치, 설정, 확장 기능, `CLAUDE.md` 문제를 진단하는 설정 점검을 실행하고, 사용자가 확인하면 Claude가 적용할 수정 사항을 제안합니다. 점검 범위를 확인하거나 대신 `prompt-audit`로 지침을 감사하려면 [`/doctor`로 설정 점검하기](/docs/ko/skills#check-your-setup-with-/doctor)를 참조하세요. `prompt-audit` 하위 명령은 Claude Code v2.1.283 이상이 필요합니다. 별칭: `/checkup` |

91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | [effort 수준](/docs/ko/model-config#adjust-effort-level)을 `low`부터 `xhigh`, `max` 또는 `auto`로 설정합니다. `status`는 현재 수준을 출력합니다. `ultracode` 또는 `ultracode on`은 현재 수준에서 세션의 [ultracode](/docs/ko/workflows#let-claude-decide-with-ultracode)를 켜고, `ultracode off`는 끕니다. [`ultracode`](/docs/ko/settings-reference#ultracode) 키는 유지됩니다. `max`는 세션에만 적용됩니다. `on` 및 `off` 인수와 현재 수준 유지 기능은 Claude Code v2.1.284 이상이 필요합니다. v2.1.284 이전에는 `/effort ultracode`가 세션을 `xhigh`로 설정했고, `/effort ultracode off`는 `Invalid argument`로 실패했습니다. Claude가 응답하는 중에 실행하면, Claude Code가 [캐시 경고](/docs/ko/prompt-caching#changing-effort-level)를 표시하는 경우 이를 확인한 후 해당 턴의 다음 요청에 새 수준을 적용합니다. v2.1.242 이전에는 Claude Code가 Anthropic에서 가져온 기능 플래그에 따라 명령을 턴 도중에 실행할지 턴이 끝날 때까지 대기열에 둘지 결정했으며, [서드 파티 제공업체](/docs/ko/third-party-integrations) 사용 시처럼 [기능 플래그를 가져오지](/docs/ko/env-vars#features-that-need-feature-flag-fetching) 않는 세션에서는 항상 대기열에 두었습니다. `-p`에서 작동합니다 |91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | [effort 수준](/docs/ko/model-config#adjust-effort-level)을 `low`부터 `xhigh`, `max` 또는 `auto`로 설정합니다. `status`는 현재 수준을 출력합니다. `ultracode` 또는 `ultracode on`은 현재 수준에서 세션의 [ultracode](/docs/ko/workflows#let-claude-decide-with-ultracode)를 켜고, `ultracode off`는 끕니다. [`ultracode`](/docs/ko/settings-reference#ultracode) 키는 유지됩니다. `max`는 세션에만 적용됩니다. `on` 및 `off` 인수와 현재 수준 유지 기능은 Claude Code v2.1.284 이상이 필요합니다. v2.1.284 이전에는 `/effort ultracode`가 세션을 `xhigh`로 설정했고, `/effort ultracode off`는 `Invalid argument`로 실패했습니다. Claude가 응답하는 중에 실행하면, Claude Code가 [캐시 경고](/docs/ko/prompt-caching#changing-effort-level)를 표시하는 경우 이를 확인한 후 해당 턴의 다음 요청에 새 수준을 적용합니다. v2.1.242 이전에는 Claude Code가 Anthropic에서 가져온 기능 플래그에 따라 명령을 턴 도중에 실행할지 턴이 끝날 때까지 대기열에 둘지 결정했으며, [서드 파티 제공업체](/docs/ko/third-party-integrations) 사용 시처럼 [기능 플래그를 가져오지](/docs/ko/env-vars#features-that-need-feature-flag-fetching) 않는 세션에서는 항상 대기열에 두었습니다. `-p`에서 작동합니다 |

92| `/exit` | CLI를 종료합니다. 연결된 [백그라운드 세션](/docs/ko/agent-view#attach-to-a-session)에서는 분리되며 세션은 계속 실행됩니다. 별칭: `/quit` |92| `/exit` | CLI를 종료합니다. 연결된 [백그라운드 세션](/docs/ko/agent-view#attach-to-a-session)에서는 분리되며 세션은 계속 실행됩니다. 별칭: `/quit` |

93| `/export [filename]` | 현재 대화를 일반 텍스트로 내보냅니다. 파일 이름을 지정하면 해당 파일에 직접 기록합니다. 지정하지 않으면 클립보드에 복사하거나 파일로 저장하는 대화 상자가 열립니다 |93| `/export [filename]` | 현재 대화를 일반 텍스트로 내보냅니다. 파일 이름을 지정하면 해당 파일에 직접 기록합니다. 지정하지 않으면 클립보드에 복사하거나 파일로 저장하는 대화 상자가 열립니다 |

Details

391 Explain the logic in @src/utils/auth.js391 Explain the logic in @src/utils/auth.js

392 ```392 ```

393 393 

394 이것은 대화에 파일의 전체 내용을 포함합니다.394 파일이 [Read 도구](/docs/ko/tools-reference#read-tool-behavior)의 토큰 한도(기본값 25,000 토큰) 내에 들어가는 경우 파일의 내용이 대화에 포함됩니다. 256KB보다 큰 텍스트 파일은 포함되지 않습니다.

395 </Step>395 </Step>

396 396 

397 <Step title="디렉토리 참조하기">397 <Step title="디렉토리 참조하기">


446 Claude의 기능에 대해 Claude에게 물어보기446 Claude의 기능에 대해 Claude에게 물어보기

447</h3>447</h3>

448 448 

449Claude는 자신의 문서에 대한 기본 제공 액세스 권한을 가지고 있으며 자신의 기능과 제한사항에 대한 질문에 답할 수 있습니다.449Claude는 자신의 기능과 제한사항에 대한 질문에 답할 수 있습니다. 최신 Claude Code 문서에서 답변을 찾으므로, 답변이 사용 중인 버전에 국한되지 않습니다.

450 450 

451<h4 id="example-questions">451<h4 id="example-questions">

452 예제 질문452 예제 질문


483<Tip>483<Tip>

484 팁:484 팁:

485 485 

486 * Claude는 사용 중인 버전에 관계없이 항상 최신 Claude Code 문서에 액세스할 수 있습니다

487 * 자세한 답변을 얻으려면 구체적인 질문을 하십시오486 * 자세한 답변을 얻으려면 구체적인 질문을 하십시오

488 * Claude는 MCP 통합, 엔터프라이즈 구성 및 고급 워크플로우와 같은 복잡한 기능을 설명할 수 있습니다487 * Claude는 MCP 통합, 엔터프라이즈 구성 및 고급 워크플로우와 같은 복잡한 기능을 설명할 수 있습니다

489</Tip>488</Tip>

Details

1634 1634 

1635더 작은 대화보다 더 큰 윈도우가 필요한 경우 Fable 모델, Sonnet 5 이상, Haiku 5.5, Opus 4.6 이상, Sonnet 4.6은 100만 토큰 컨텍스트 윈도우를 지원합니다. 플랜별 가용성 및 `[1m]` 모델 변형을 선택하는 방법은 [확장 컨텍스트](/docs/ko/model-config#extended-context)를 참조하세요. 압축은 더 큰 제한에서도 동일한 방식으로 작동합니다.1635더 작은 대화보다 더 큰 윈도우가 필요한 경우 Fable 모델, Sonnet 5 이상, Haiku 5.5, Opus 4.6 이상, Sonnet 4.6은 100만 토큰 컨텍스트 윈도우를 지원합니다. 플랜별 가용성 및 `[1m]` 모델 변형을 선택하는 방법은 [확장 컨텍스트](/docs/ko/model-config#extended-context)를 참조하세요. 압축은 더 큰 제한에서도 동일한 방식으로 작동합니다.

1636 1636 

1637Sonnet 5.5 및 Sonnet 5는 1M 컨텍스트 윈도우로 실행되며 선택할 `[1m]` 변형이 없습니다. [Sonnet 5.5 및 Sonnet 5 컨텍스트 윈도우](/docs/ko/model-config#sonnet-5-5-and-sonnet-5-context-window)에서 자동 압축 임계값을 참조하고, [게이트웨이 뒤의 컨텍스트 윈도우](/docs/ko/model-config#context-window-behind-a-gateway)에서 `ANTHROPIC_BASE_URL`을 [LLM 게이트웨이](/docs/ko/llm-gateway)로 설정할 때 Claude Code가 윈도우 크기를 조정하는 방법을 참조하세요.

1638 

1639자동 압축이 실행되는 지점은 모델과 구성에 따라 다릅니다. [기본 자동 압축 임계값](/docs/ko/model-config#default-auto-compact-thresholds)에서 모델별 경계를 참조하고, Claude Code가 모델 ID(예: [LLM 게이트웨이](/docs/ko/llm-gateway) 별칭)에 대해 잘못된 윈도우를 가정하는 경우 [게이트웨이 또는 사용자 정의 모델 ID에 대한 윈도우 수정](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id)을 참조하세요.1637자동 압축이 실행되는 지점은 모델과 구성에 따라 다릅니다. [기본 자동 압축 임계값](/docs/ko/model-config#default-auto-compact-thresholds)에서 모델별 경계를 참조하고, Claude Code가 모델 ID(예: [LLM 게이트웨이](/docs/ko/llm-gateway) 별칭)에 대해 잘못된 윈도우를 가정하는 경우 [게이트웨이 또는 사용자 정의 모델 ID에 대한 윈도우 수정](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id)을 참조하세요.

1640 1638 

1641<h2 id="check-your-own-session">1639<h2 id="check-your-own-session">

Details

128* **런처가 실행될 때마다 약 3초 이내에 `exec`에 도달합니다.** 콜드 백그라운드 디스패치는 첫 번째 출력 바이트 전에 런처를 두 번 연속으로 실행하므로 단일 사인온 교환과 같은 느린 작업을 게으르게 또는 캐시에서 수행합니다.128* **런처가 실행될 때마다 약 3초 이내에 `exec`에 도달합니다.** 콜드 백그라운드 디스패치는 첫 번째 출력 바이트 전에 런처를 두 번 연속으로 실행하므로 단일 사인온 교환과 같은 느린 작업을 게으르게 또는 캐시에서 수행합니다.

129* **자신 내부에서 호출되는 것을 허용합니다.** Claude Code는 모든 중첩된 자체 생성에 런처를 적용하므로 배타적 리소스를 획득하는 런처는 이미 보유하고 있음을 감지해야 합니다.129* **자신 내부에서 호출되는 것을 허용합니다.** Claude Code는 모든 중첩된 자체 생성에 런처를 적용하므로 배타적 리소스를 획득하는 런처는 이미 보유하고 있음을 감지해야 합니다.

130* **Claude Code가 시작되기 전에 터미널에 쓰지 마십시오.** `exec` 전에 인쇄된 모든 것은 세션이 초기화 전에 종료되면 충돌 원인으로 보고됩니다.130* **Claude Code가 시작되기 전에 터미널에 쓰지 마십시오.** `exec` 전에 인쇄된 모든 것은 세션이 초기화 전에 종료되면 충돌 원인으로 보고됩니다.

131* **인수의 표기 방식에 의존하지 마십시오.** 플래그의 값은 `--flag value`처럼 별도의 인수로 전달되거나, `--flag=value`처럼 플래그에 결합되어 전달될 수 있습니다. 플래그가 어떤 형식을 사용하는지는 버전에 따라 달라질 수 있습니다.

131 132 

132<h3 id="format-of-the-launcher-value">133<h3 id="format-of-the-launcher-value">

133 런처 값의 형식134 런처 값의 형식

Details

85 깨끗한 구성에 대해 테스트85 깨끗한 구성에 대해 테스트

86</h2>86</h2>

87 87 

88[`claude --safe-mode`](/docs/ko/cli-reference#cli-flags)로 시작합니다. 이는 `CLAUDE.md`, 스킬, 플러그인, 훅, MCP 서버, 사용자 정의 명령 및 에이전트를 포함한 모든 사용자 정의가 비활성화된 세션을 시작합니다. 인증, 모델 선택, 기본 제공 도구 및 권한은 정상적으로 작동합니다. 안전 모드에서 문제가 사라지면, 이러한 표면 중 하나가 원인입니다. 위의 대상 확인을 사용하여 어느 것인지 찾습니다. 안전 모드는 여전히 조직에서 배포한 관리 훅 및 설정 정책을 적용합니다. 관리 플러그인, 스킬, `CLAUDE.md` 및 MCP 서버는 꺼집니다.88[`claude --safe-mode`](/docs/ko/cli-reference#cli-flags)로 시작합니다. 이는 다음을 포함한 사용자 정의가 비활성화된 세션을 시작합니다.

89 

90* `CLAUDE.md`

91* 스킬, 플러그인 및 훅

92* MCP 서버

93* 사용자 정의 명령 및 에이전트

94* 사용자 정의 출력 스타일

95* 사용자 정의 키보드 단축키

96 

97인증, 모델 선택, 기본 제공 도구 및 권한은 정상적으로 작동합니다. 안전 모드에서 문제가 사라지면, 비활성화한 항목 중 하나로 원인이 좁혀진 것입니다. 어느 것인지 찾으려면 [컨텍스트에 로드된 항목 확인](#see-what-loaded-into-context), [MCP 서버 확인](#check-mcp-servers) 또는 [훅 확인](#check-hooks)과 같이 해당 항목에 대한 확인 방법을 사용합니다.

98 

99안전 모드는 여전히 조직의 관리형 훅 및 설정 정책을 적용합니다. 관리형 플러그인, 스킬, `CLAUDE.md` 및 MCP 서버는 꺼집니다.

89 100 

90안전 모드에서 문제가 지속되거나 설정 자체가 의심스러우면, 일반적인 설정에서 아무것도 로드하지 않는 세션과 비교합니다. [`CLAUDE_CONFIG_DIR`](/docs/ko/env-vars)을 빈 디렉토리로 지정하여 `~/.claude` 아래의 모든 항목을 우회하고, 프로젝트 구성도 건너뛰도록 `.claude` 폴더, `.mcp.json` 또는 `CLAUDE.md`가 없는 디렉토리에서 시작합니다.101안전 모드에서 문제가 지속되거나 설정 자체가 의심스러우면, 일반적인 설정에서 아무것도 로드하지 않는 세션과 비교합니다. [`CLAUDE_CONFIG_DIR`](/docs/ko/env-vars)을 빈 디렉토리로 지정하여 `~/.claude` 아래의 모든 항목을 우회하고, 프로젝트 구성도 건너뛰도록 `.claude` 폴더, `.mcp.json` 또는 `CLAUDE.md`가 없는 디렉토리에서 시작합니다.

91 102 

desktop.md +74 −26

Details

67 67 

68프롬프트 상자 옆의 **+** 버튼을 클릭하면 파일 첨부, [skills](#use-skills), [connectors](#connect-external-tools), [plugins](#install-plugins)에 액세스할 수 있습니다.68프롬프트 상자 옆의 **+** 버튼을 클릭하면 파일 첨부, [skills](#use-skills), [connectors](#connect-external-tools), [plugins](#install-plugins)에 액세스할 수 있습니다.

69 69 

70<h3 id="accept-a-suggested-prompt">

71 제안된 프롬프트 수락하기

72</h3>

73 

74Claude가 응답한 후 Code 탭은 빈 프롬프트 상자에 다음 프롬프트 제안을 회색 텍스트로 표시할 수 있습니다. Claude Code는 대화를 바탕으로 짧은 백그라운드 요청을 통해 [각 제안을 생성](/docs/ko/interactive-mode#prompt-suggestions)하며, 이 요청은 플랜의 사용 한도 또는 API 비용에 포함됩니다.

75 

76* **제안 사용하기**: **Tab** 또는 **Right arrow**를 눌러 제안을 프롬프트 상자에 넣고, 필요하면 편집한 다음 **Enter**를 눌러 보냅니다. 제안을 수락하기 전에 **Enter**를 누르면 제안이 전송되지 않습니다.

77* **직접 프롬프트 작성하기**: 입력을 시작합니다. 제안은 프롬프트 상자가 비어 있고 첨부된 파일이 없을 때만 표시됩니다.

78 

79**Settings > Claude Code**로 이동하여 **Sessions** 아래의 **Prompt suggestions**를 끄면, 각 세션이 다음에 시작되거나 재개될 때부터 제안이 표시되지 않습니다.

80 

70<h3 id="add-files-and-context-to-prompts">81<h3 id="add-files-and-context-to-prompts">

71 프롬프트에 파일 및 컨텍스트 추가하기82 프롬프트에 파일 및 컨텍스트 추가하기

72</h3>83</h3>


89| **Manual** | `default` | Claude는 파일을 편집하거나 명령을 실행하기 전에 요청합니다. diff를 보고 각 변경 사항을 수락하거나 거부할 수 있습니다. |100| **Manual** | `default` | Claude는 파일을 편집하거나 명령을 실행하기 전에 요청합니다. diff를 보고 각 변경 사항을 수락하거나 거부할 수 있습니다. |

90| **Accept edits** | `acceptEdits` | Claude는 파일 편집을 자동으로 수락하고 `mkdir`, `touch`, `mv`와 같은 일반적인 파일시스템 명령을 자동으로 수락하지만 다른 터미널 명령 실행 전에는 여전히 요청합니다. 파일 변경을 신뢰하고 더 빠른 반복을 원할 때 사용합니다. |101| **Accept edits** | `acceptEdits` | Claude는 파일 편집을 자동으로 수락하고 `mkdir`, `touch`, `mv`와 같은 일반적인 파일시스템 명령을 자동으로 수락하지만 다른 터미널 명령 실행 전에는 여전히 요청합니다. 파일 변경을 신뢰하고 더 빠른 반복을 원할 때 사용합니다. |

91| **Plan** | `plan` | Claude는 파일을 읽고 명령을 실행하여 탐색한 다음 소스 코드를 편집하지 않고 계획을 제안합니다. 먼저 접근 방식을 검토하려는 복잡한 작업에 좋습니다. |102| **Plan** | `plan` | Claude는 파일을 읽고 명령을 실행하여 탐색한 다음 소스 코드를 편집하지 않고 계획을 제안합니다. 먼저 접근 방식을 검토하려는 복잡한 작업에 좋습니다. |

92| **Auto** | `auto` | Claude는 요청과의 정렬을 확인하는 백그라운드 분류기를 통해 일상적인 프롬프트 없이 실행됩니다. 셸 명령 및 네트워크 요청과 같은 작업이 실행되기 전에 백그라운드 분류기가 요청과의 정렬을 확인합니다. [auto mode가 사용 가능](#auto-mode-availability)할 때 나타나며, 별도의 Settings 토글이 없습니다. |103| **Auto** | `auto` | Claude는 일상적인 프롬프트 없이 실행됩니다. 셸 명령 및 네트워크 요청과 같은 작업이 실행되기 전에 백그라운드 분류기가 요청과의 정렬을 확인합니다. [자동 모드가 사용 가능](#auto-mode-availability)할 때 나타나며, 별도의 Settings 토글이 없습니다. |

93| **Bypass permissions** | `bypassPermissions` | Claude는 [이 모드가 자동으로 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves), Claude가 [외부 사이트에서 작동](#browse-external-sites)할 때 안전 분류기, 또는 [세션 아카이빙](#work-across-sessions)과 같이 Claude가 항상 먼저 묻는 데스크톱 작업을 제외하고 권한 프롬프트 없이 실행됩니다. CLI의 `--dangerously-skip-permissions`와 동일합니다. Pro 및 Max 플랜에서는 Settings → Claude Code의 "Allow bypass permissions mode"에서 활성화합니다. Team 및 Enterprise 플랜에서는 Settings 토글이 없으며 조직 정책이 대신 제어합니다. 샌드박스 컨테이너 또는 VM에서만 사용합니다. |104| **Bypass permissions** | `bypassPermissions` | Claude는 [이 모드가 자동으로 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves), Claude가 [외부 사이트에서 작동](#browse-external-sites)할 때 안전 분류기, 또는 [세션 아카이빙](#work-across-sessions)과 같이 Claude가 항상 먼저 묻는 데스크톱 작업을 제외하고 권한 프롬프트 없이 실행됩니다. CLI의 `--dangerously-skip-permissions`와 동일합니다. Pro 및 Max 플랜에서는 Settings → Claude Code의 "Allow bypass permissions mode"에서 활성화합니다. Team 및 Enterprise 플랜에서는 Settings 토글이 없으며 조직 정책이 대신 제어합니다. 샌드박스 컨테이너 또는 VM에서만 사용합니다. |

94 105 

95이전 버전의 Code 탭은 이러한 모드를 Ask permissions, Auto accept edits, Plan mode로 표시했습니다.106이전 버전의 Code 탭은 이러한 모드를 Ask permissions, Auto accept edits, Plan mode로 표시했습니다.


97`dontAsk` 권한 모드는 [CLI](/docs/ko/permission-modes#allow-only-pre-approved-tools-with-dontask-mode)에서만 사용 가능합니다.108`dontAsk` 권한 모드는 [CLI](/docs/ko/permission-modes#allow-only-pre-approved-tools-with-dontask-mode)에서만 사용 가능합니다.

98 109 

99<Tip title="모범 사례">110<Tip title="모범 사례">

100 복잡한 작업을 Plan에서 시작하여 Claude가 변경하기 전에 접근 방식을 매핑하도록 합니다. 계획을 승인한 후 Accept edits 또는 Manual로 전환하여 실행합니다. 이 워크플로우에 대한 자세한 내용은 [먼저 탐색, 그 다음 계획, 그 다음 코드](/docs/ko/best-practices#explore-first-then-plan-then-code)를 참조하세요.111 복잡한 작업을 Plan에서 시작하여 Claude가 변경하기 전에 접근 방식을 매핑하도록 합니다. 계획을 승인한 후 Accept edits 또는 Manual로 전환하여 실행합니다. 이 워크플로에 대한 자세한 내용은 [먼저 탐색, 그 다음 계획, 그 다음 코드](/docs/ko/best-practices#explore-first-then-plan-then-code)를 참조하세요.

101</Tip>112</Tip>

102 113 

103클라우드 세션은 Accept edits, Plan, Auto를 지원합니다. Accept edits는 `default` 모드에 해당합니다: 클라우드 세션은 파일 편집을 미리 승인하므로 선택기는 Manual 대신 Accept edits를 표시합니다. Bypass permissions는 클라우드 세션에서 사용할 수 없으며, [자체 호스팅 환경](/docs/ko/self-hosted-environments)의 세션을 포함합니다.114클라우드 세션은 Accept edits, Plan, Auto를 지원합니다. Accept edits는 `default` 모드에 해당합니다: 클라우드 세션은 파일 편집을 미리 승인하므로 선택기는 Manual 대신 Accept edits를 표시합니다. Bypass permissions는 클라우드 세션에서 사용할 수 없으며, [자체 호스팅 환경](/docs/ko/self-hosted-environments)의 세션을 포함합니다.


141 152 

142Claude는 [앱을 확인](#preview-your-app)하는 데 사용하는 동일한 도구를 사용하여 외부 페이지를 읽고 상호작용할 수 있으며, 두 가지 추가 안전 검사가 있습니다:153Claude는 [앱을 확인](#preview-your-app)하는 데 사용하는 동일한 도구를 사용하여 외부 페이지를 읽고 상호작용할 수 있으며, 두 가지 추가 안전 검사가 있습니다:

143 154 

144* 안전 분류기는 모든 권한 모드에서 클릭 및 입력과 같은 외부 페이지에 대한 Claude의 쓰기 작업을 검토합니다. 이는 [auto mode](#choose-a-permission-mode)가 사용하는 동일한 분류기이며, 작업에 플래그를 지정하면 모드에 관계없이 권한 프롬프트를 받습니다.155* 안전 분류기는 모든 권한 모드에서 클릭 및 입력과 같은 외부 페이지에 대한 Claude의 쓰기 작업을 검토합니다. 이는 [자동 모드](#choose-a-permission-mode)가 사용하는 동일한 분류기이며, 작업에 플래그를 지정하면 모드에 관계없이 권한 프롬프트를 받습니다.

145* Auto 및 Bypass permissions 이외의 권한 모드에서는 Claude가 새 사이트로 이동하기 전에 도메인 허용 목록 확인도 적용됩니다.156* Auto 및 Bypass permissions 이외의 권한 모드에서는 Claude가 새 사이트로 이동하기 전에 도메인 허용 목록 확인도 적용됩니다.

146 157 

147<h4 id="approve-claude’s-actions-on-a-site">158<h4 id="approve-claude’s-actions-on-a-site">


162 조직의 외부 탐색 제한하기173 조직의 외부 탐색 제한하기

163</h4>174</h4>

164 175 

165Browser는 Claude in Chrome 확장 프로그램과 동일한 [site allowlist and blocklist controls](https://support.claude.com/en/articles/13065128-claude-in-chrome-admin-controls)를 따릅니다. 조직이 이미 확장 프로그램에 대해 해당 목록을 구성한 경우 Browser는 자동으로 이를 준수합니다. 관리자는 [`browserExternalPageTools` managed setting](#managed-settings)으로 외부 페이지에서 Claude의 도구를 끌 수도 있습니다. 도구가 비활성화되면 사용자는 여전히 외부 사이트로 이동할 수 있습니다; Claude의 도구는 이를 읽거나 작동할 수 없습니다.176Browser는 Claude in Chrome 확장 프로그램과 동일한 [site allowlist and blocklist controls](https://support.claude.com/en/articles/13065128-claude-in-chrome-admin-controls)를 따릅니다. 조직이 이미 확장 프로그램에 대해 해당 목록을 구성한 경우 Browser는 자동으로 이를 준수합니다. 관리자는 [`browserExternalPageTools` 관리형 설정](#managed-settings)으로 외부 페이지에서 Claude의 도구를 끌 수도 있습니다. 도구가 비활성화되면 사용자는 여전히 외부 사이트로 이동할 수 있습니다; Claude의 도구는 이를 읽거나 작동할 수 없습니다.

166 177 

167외부 탐색을 완전히 끄려면 [`disableBrowserExternalNavigation` managed setting](#managed-settings)을 `true`로 설정합니다. 이는 조직의 허용 목록에 있는 사이트를 포함하여 Browser의 모든 외부 탐색을 차단합니다; localhost 개발 서버 및 파일 미리보기는 계속 작동합니다. `browserExternalPageTools`를 사용하여 사용자가 Claude의 도구 없이 외부 사이트를 계속 탐색하도록 하고, `disableBrowserExternalNavigation`을 사용하여 사용자와 Claude 모두에 대해 외부 사이트를 차단합니다.178외부 탐색을 완전히 끄려면 [`disableBrowserExternalNavigation` 관리형 설정](#managed-settings)을 `true`로 설정합니다. 이는 조직의 허용 목록에 있는 사이트를 포함하여 Browser의 모든 외부 탐색을 차단합니다; localhost 개발 서버 및 파일 미리보기는 계속 작동합니다. `browserExternalPageTools`를 사용하여 사용자가 Claude의 도구 없이 외부 사이트를 계속 탐색하도록 하고, `disableBrowserExternalNavigation`을 사용하여 사용자와 Claude 모두에 대해 외부 사이트를 차단합니다.

168 179 

169<h3 id="review-changes-with-diff-view">180<h3 id="review-changes-with-diff-view">

170 diff 보기로 변경 사항 검토하기181 diff 보기로 변경 사항 검토하기

171</h3>182</h3>

172 183 

173Claude가 코드를 변경한 후 diff 보기를 사용하면 pull request를 만들기 전에 파일별로 수정 사항을 검토할 수 있습니다.184Claude가 코드를 변경한 후 diff 보기를 사용하면 풀 리퀘스트를 만들기 전에 파일별로 수정 사항을 검토할 수 있습니다.

174 185 

175Claude가 파일을 변경하면 `+12 -1`과 같이 추가 및 제거된 줄 수를 표시하는 diff 통계 표시기가 나타납니다. 이 표시기를 클릭하여 diff 뷰어를 열면 왼쪽에 파일 목록이 표시되고 오른쪽에 각 파일의 변경 사항이 표시됩니다.186Claude가 파일을 변경하면 `+12 -1`과 같이 추가 및 제거된 줄 수를 표시하는 diff 통계 표시기가 나타납니다. 이 표시기를 클릭하여 diff 뷰어를 열면 왼쪽에 파일 목록이 표시되고 오른쪽에 각 파일의 변경 사항이 표시됩니다.

176 187 


182Claude는 댓글을 읽고 요청된 변경 사항을 만들며, 이는 검토할 수 있는 새로운 diff로 나타납니다.193Claude는 댓글을 읽고 요청된 변경 사항을 만들며, 이는 검토할 수 있는 새로운 diff로 나타납니다.

183 194 

184<h3 id="review-your-code">195<h3 id="review-your-code">

185 코드 검토하기196 코드 리뷰하기

186</h3>197</h3>

187 198 

188커밋하기 전에 Claude가 변경 사항을 리뷰하도록 하려면 [프롬프트 상자](#use-the-prompt-box)에 `/code-review`를 입력합니다. 리뷰가 완료되면 결과가 대화에 표시됩니다.199커밋하기 전에 Claude가 변경 사항을 리뷰하도록 하려면 [프롬프트 상자](#use-the-prompt-box)에 `/code-review`를 입력합니다. 리뷰가 완료되면 결과가 대화에 표시됩니다.


195어떤 세션에서든 프롬프트 상자에서 리뷰 결과를 수정하도록 Claude에게 요청할 수도 있습니다. `/code-review`가 확인하는 항목과 사용하는 인수는 [로컬에서 diff 리뷰하기](/docs/ko/code-review#review-a-diff-locally)를 참조하세요.206어떤 세션에서든 프롬프트 상자에서 리뷰 결과를 수정하도록 Claude에게 요청할 수도 있습니다. `/code-review`가 확인하는 항목과 사용하는 인수는 [로컬에서 diff 리뷰하기](/docs/ko/code-review#review-a-diff-locally)를 참조하세요.

196 207 

197<h3 id="monitor-pull-request-status">208<h3 id="monitor-pull-request-status">

198 pull request 상태 모니터링하기209 풀 리퀘스트 상태 모니터링하기

199</h3>210</h3>

200 211 

201pull request를 연 후 CI 상태 표시줄이 세션에 나타납니다. Claude Code는 GitHub CLI를 사용하여 확인 결과를 폴링하고 실패를 표시합니다.212풀 리퀘스트를 연 후 CI 상태 표시줄이 세션에 나타납니다. Claude Code는 GitHub CLI를 사용하여 확인 결과를 폴링하고 실패를 표시합니다.

202 213 

203* **Auto-fix CI & address comments**: 활성화되면 Claude는 실패 출력을 읽고 반복하여 실패한 CI 확인을 자동으로 수정하려고 시도합니다. 로컬 세션에서는 작성자가 저장소 소유자, 조직 구성원, 협업자 또는 GitHub App인 경우 사용자 이외의 사람이 남긴 새 리뷰 댓글에도 Claude가 대응합니다.214* **Auto-fix CI & address comments**: 활성화되면 Claude는 실패 출력을 읽고 반복하여 실패한 CI 확인을 자동으로 수정하려고 시도합니다. 로컬 세션에서는 작성자가 저장소 소유자, 조직 구성원, 협업자 또는 GitHub App인 경우 사용자 이외의 사람이 남긴 새 리뷰 댓글에도 Claude가 대응합니다.

204* **Auto-merge when ready**: 활성화되면 모든 확인이 통과하면 Claude가 PR을 병합합니다. 병합 방법은 squash입니다. 먼저 [GitHub 저장소 설정](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository)에서 auto-merge를 활성화해야 합니다. 이를 활성화하지 않으면 Claude가 PR을 병합할 수 없습니다.215* **Auto-merge when ready**: 활성화되면 모든 확인이 통과하면 Claude가 PR을 병합합니다. 병합 방법은 squash입니다. 먼저 [GitHub 저장소 설정](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository)에서 auto-merge를 활성화해야 합니다. 이를 활성화하지 않으면 Claude가 PR을 병합할 수 없습니다.


274| `Ctrl` `Tab` / `Ctrl` `Shift` `Tab` | 다음 또는 이전 세션 |285| `Ctrl` `Tab` / `Ctrl` `Shift` `Tab` | 다음 또는 이전 세션 |

275| `Cmd` `Shift` `]` / `Cmd` `Shift` `[` | 다음 또는 이전 세션 |286| `Cmd` `Shift` `]` / `Cmd` `Shift` `[` | 다음 또는 이전 세션 |

276| `Esc` | Claude의 응답 중지 |287| `Esc` | Claude의 응답 중지 |

288| `Tab` / `Right arrow` | 빈 프롬프트 상자에서 [제안된 프롬프트 수락](#accept-a-suggested-prompt) |

277| `Cmd` `Shift` `D` | diff 패널 토글 |289| `Cmd` `Shift` `D` | diff 패널 토글 |

278| `Cmd` `Shift` `B` | 브라우저 패널 토글 |290| `Cmd` `Shift` `B` | 브라우저 패널 토글 |

279| `Cmd` `Shift` `S` | 브라우저에서 요소 선택 |291| `Cmd` `Shift` `S` | 브라우저에서 요소 선택 |


286| `Cmd` `Shift` `E` | 노력 메뉴 열기 |298| `Cmd` `Shift` `E` | 노력 메뉴 열기 |

287| `1`–`9` | 열린 메뉴에서 항목 선택 |299| `1`–`9` | 열린 메뉴에서 항목 선택 |

288 300 

289이러한 단축키는 Code 탭에만 적용됩니다. 터미널 기반 [대화형 모드 단축키](/docs/ko/interactive-mode#keyboard-shortcuts) (예: 모드를 순환하는 Shift+Tab)는 Desktop에 적용되지 않습니다.301이러한 단축키는 Code 탭에 적용됩니다. Desktop에서는 터미널의 [대화형 모드](/docs/ko/interactive-mode#keyboard-shortcuts)와 달리 `Shift+Tab`으로 권한 모드를 순환하지 않습니다.

290 302 

291<h3 id="check-usage">303<h3 id="check-usage">

292 사용량 확인하기304 사용량 확인하기

293</h3>305</h3>

294 306 

295모델 선택기 옆의 사용량 링을 클릭하여 현재 컨텍스트 윈도우 사용량과 기간에 대한 계획 사용량을 봅니다. 컨텍스트 사용량은 세션별입니다. 계획 사용량은 모든 Claude Code 표면에서 공유됩니다.307모델 선택기 옆의 사용량 링을 클릭하여 현재 컨텍스트 윈도우 사용량과 기간에 대한 계획 사용량을 봅니다. 컨텍스트 사용량은 세션별입니다. 계획 사용량은 모든 Claude Code 사용 환경에서 공유됩니다.

296 308 

297<h2 id="let-claude-use-your-computer">309<h2 id="let-claude-use-your-computer">

298 Claude가 컴퓨터를 사용하도록 하기310 Claude가 컴퓨터를 사용하도록 하기


458* **Cloud**를 선택하면 대화가 요약으로 이어진 상태로 세션을 [클라우드 세션](/docs/ko/claude-code-on-the-web)으로 계속합니다. 확인하기 전에 대화 상자에 파일도 함께 이동하는지, 그리고 클라우드 세션이 준비되면 이 세션이 아카이브되는지가 표시됩니다. [SSH](#ssh-sessions)를 통해 실행되거나 [WSL](/docs/ko/desktop-wsl)에서 실행되는 세션은 이 방식으로 이동할 수 없습니다.470* **Cloud**를 선택하면 대화가 요약으로 이어진 상태로 세션을 [클라우드 세션](/docs/ko/claude-code-on-the-web)으로 계속합니다. 확인하기 전에 대화 상자에 파일도 함께 이동하는지, 그리고 클라우드 세션이 준비되면 이 세션이 아카이브되는지가 표시됩니다. [SSH](#ssh-sessions)를 통해 실행되거나 [WSL](/docs/ko/desktop-wsl)에서 실행되는 세션은 이 방식으로 이동할 수 없습니다.

459* 설치된 편집기나 파일 관리자를 선택하면 디스크에 있는 세션의 폴더를 해당 앱에서 엽니다.471* 설치된 편집기나 파일 관리자를 선택하면 디스크에 있는 세션의 폴더를 해당 앱에서 엽니다.

460 472 

473<h3 id="control-which-sessions-appear-on-your-other-devices">

474 다른 기기에 표시되는 세션 제어하기

475</h3>

476 

477로컬 세션은 [Remote Control](/docs/ko/remote-control)이 해당 세션을 연결하면 다른 기기에 표시됩니다. 연결된 세션은 [claude.ai/code](https://claude.ai/code)의 세션 목록과 claude.ai 계정으로 로그인한 기기의 Claude 앱에 나타납니다.

478 

479로컬 세션은 해당 세션에 대해 Remote Control을 켜거나, 세션이 시작될 때 자동으로 연결되면 연결됩니다:

480 

481* **해당 세션에 대해 켜는 경우**: 세션의 **Remote Control** 스위치를 사용하거나 해당 세션의 프롬프트 상자에 `/remote-control`을 입력합니다.

482* **시작할 때 연결되는 경우**: **Settings > Claude Code**에서 **Connect new sessions to Remote Control**이 켜져 있는 동안 새 세션이 자동으로 연결됩니다. 이 설정을 한 번도 변경하지 않았다면 Desktop은 사용자 설정 또는 관리형 설정의 [`remoteControlAtStartup`](/docs/ko/settings-reference#remotecontrolatstartup)을 따르고, 그다음 조직의 기본값을 따릅니다.

483 

484세션이 연결되어 있는지 확인하려면 도구 모음에서 세션 제목 앞의 노트북 아이콘을 확인합니다. 세션이 연결되어 있거나 연결 중인 동안 아이콘이 강조 표시됩니다. 아이콘을 클릭하면 세션의 **Remote Control** 스위치가 열립니다.

485 

486세션이 다른 기기에 표시되지 않도록 하려면 필요한 수준에서 Remote Control을 끕니다:

487 

488* **단일 세션**: 해당 세션의 **Remote Control** 스위치를 끕니다. 시작할 때 연결된 세션에서 `/remote-control`을 입력하면 Remote Control이 켜진 상태로 유지되고 `Remote Control is already on. This session connected automatically when it started.`가 표시됩니다. 해당 줄에서 **Turn off**를 클릭하여 연결을 해제합니다.

489* **이 컴퓨터의 새 Desktop 세션**: **Settings > Claude Code**에서 **Connect new sessions to Remote Control**을 끕니다. 이미 꺼져 있는 것으로 표시되면 켰다가 다시 꺼서 Desktop이 선택을 저장하도록 합니다. 저장되면 이 설정이 `remoteControlAtStartup` 및 기본값보다 우선합니다.

490* **CLI를 포함한 이 컴퓨터의 모든 세션**: `~/.claude/settings.json`에서 [`disableRemoteControl`](/docs/ko/settings-reference#disableremotecontrol)을 `true`로 설정하여 세션이 연결되지 않도록 합니다. 파일을 저장할 때 이미 연결되어 있던 세션은 해당 세션의 Remote Control을 끌 때까지 연결된 상태로 유지됩니다.

491 

492이미 다른 기기에 표시되는 세션을 숨기려면 Desktop에서 해당 세션을 아카이브합니다. Desktop은 세션의 Remote Control 사본도 함께 아카이브하므로 해당 기기의 기본 세션 목록에서 사라집니다. 해당 기기에서 세션을 보거나 삭제하려면 [세션 아카이브하기](/docs/ko/claude-code-on-the-web#archive-sessions)를 참조하세요.

493 

461<h3 id="sessions-from-dispatch">494<h3 id="sessions-from-dispatch">

462 Dispatch에서 시작한 세션495 Dispatch에서 시작한 세션

463</h3>496</h3>


836 팀을 위해 SSH 연결을 미리 구성합니다869 팀을 위해 SSH 연결을 미리 구성합니다

837</h4>870</h4>

838 871 

839관리자는 [관리 설정](/docs/ko/managed-settings) 파일에 `sshConfigs`를 추가하여 팀 멤버에게 SSH 연결을 배포할 수 있습니다. 이러한 방식으로 정의된 연결은 각 사용자의 환경 드롭다운에 자동으로 나타나며 관리되는 것으로 표시되므로 사용자는 이를 선택할 수 있지만 앱에서 편집하거나 삭제할 수 없습니다.872관리자는 [관리형 설정](/docs/ko/managed-settings)에서 `sshConfigs`를 설정하여 팀 멤버에게 SSH 연결을 배포할 수 있습니다. 이러한 방식으로 정의된 연결은 각 사용자의 환경 드롭다운에 자동으로 나타나며 관리되는 것으로 표시되므로 사용자는 이를 선택할 수 있지만 앱에서 편집하거나 삭제할 수 없습니다.

840 873 

841다음 예제는 단일 연결을 미리 구성합니다:874다음 예제는 단일 연결을 미리 구성합니다:

842 875 


860 SSH 호스트 연결을 제한하여 사용자가 연결할 수 있는 호스트를 제한합니다893 SSH 호스트 연결을 제한하여 사용자가 연결할 수 있는 호스트를 제한합니다

861</h4>894</h4>

862 895 

863관리자는 [관리 설정](/docs/ko/managed-settings) 파일에 `sshHostAllowlist`를 추가하여 Desktop의 SSH 세션을 승인된 호스트 집합으로 제한할 수 있습니다. 설정되면 사용자는 확인된 호스트명이 패턴 중 하나와 일치하는 호스트에만 연결할 수 있습니다. SSH 세션을 완전히 비활성화하려면 빈 배열로 설정합니다.896관리자는 [관리형 설정](/docs/ko/managed-settings)에서 `sshHostAllowlist`를 설정하여 Desktop의 SSH 세션을 승인된 호스트 집합으로 제한할 수 있습니다. 설정되면 사용자는 확인된 호스트명이 패턴 중 하나와 일치하는 호스트에만 연결할 수 있습니다. SSH 세션을 비활성화하려면 빈 배열로 설정합니다. 빈 배열이 다른 관리형 소스의 목록과 어떻게 결합되는지는 [`sshHostAllowlist` 참조 항목](/docs/ko/settings-reference#sshhostallowlist)에서 설명합니다.

864 897 

865다음 예제는 `devboxes.example.com` 아래의 모든 호스트 및 단일 명명된 bastion 호스트에 대한 연결을 허용합니다:898다음 예제는 `devboxes.example.com` 아래의 모든 호스트 및 단일 명명된 bastion 호스트에 대한 연결을 허용합니다:

866 899 


870}903}

871```904```

872 905 

906<Warning>

907 조직에서 [서버 관리형 설정](/docs/ko/server-managed-settings)을 제공하는 경우 `sshHostAllowlist`를 그곳에서 설정하세요. 기본적으로 Desktop은 [정책 키를 제공하는 가장 높은 순위의 관리형 소스](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)에서만 키를 읽습니다. 해당 소스가 키를 설정하지 않으면 Desktop은 더 낮은 순위의 MDM 정책 또는 관리형 설정 파일에 있는 목록을 무시하고 키를 [설정되지 않은 것](/docs/ko/settings-reference#sshhostallowlist)으로 처리합니다. Desktop은 경고를 표시하지 않습니다.

908 

909 또한 각 사용자의 머신에서 가장 높은 순위의 MDM 정책 또는 관리형 설정 파일에 동일한 목록을 유지하세요. Desktop은 실행 시 서버 관리형 설정을 가져오며 캐시된 사본을 보관하지 않으므로, 가져오기가 성공할 때까지는 머신의 목록이 적용됩니다.

910</Warning>

911 

873패턴은 대소문자를 구분하지 않습니다. `*`는 모든 호스트와 일치하고, `*.example.com`은 `example.com` 및 모든 하위 도메인과 일치합니다. 다른 모든 것은 정확한 일치입니다. 검사는 `ssh -G`를 통한 `~/.ssh/config` 확인 후 호스트명에 대해 실행되므로 `Host` 별칭 및 `ProxyCommand`/`ProxyJump` 항목은 확인된 `HostName`이 일치하는 한 허용됩니다.912패턴은 대소문자를 구분하지 않습니다. `*`는 모든 호스트와 일치하고, `*.example.com`은 `example.com` 및 모든 하위 도메인과 일치합니다. 다른 모든 것은 정확한 일치입니다. 검사는 `ssh -G`를 통한 `~/.ssh/config` 확인 후 호스트명에 대해 실행되므로 `Host` 별칭 및 `ProxyCommand`/`ProxyJump` 항목은 확인된 `HostName`이 일치하는 한 허용됩니다.

874 913 

875`sshHostAllowlist`는 관리 설정에서만 읽혀집니다. 사용자 또는 프로젝트 설정의 값은 무시됩니다. Claude Desktop 앱만 이 설정을 인식합니다. Claude Code CLI 및 IDE 확장은 이를 읽지 않으며, Bash 도구를 통해 실행되는 `ssh` 명령을 제한하지 않습니다. 이는 Desktop 앱이 연결하는 호스트를 제어하며, 네트워크 송신을 제어하지 않으므로 하드 경계가 필요한 경우 조직의 네트워크 또는 제로 트러스트 제어와 함께 사용합니다.914`sshHostAllowlist`는 관리 설정에서만 읽혀집니다. 사용자 또는 프로젝트 설정의 값은 무시됩니다. Claude Desktop 앱만 이 설정을 인식합니다. Claude Code CLI 및 IDE 확장은 이를 읽지 않으며, Bash 도구를 통해 실행되는 `ssh` 명령을 제한하지 않습니다. 이는 Desktop 앱이 연결하는 호스트를 제어하며, 네트워크 송신을 제어하지 않으므로 하드 경계가 필요한 경우 조직의 네트워크 또는 제로 트러스트 제어와 함께 사용합니다.


913| `disableMobileSimulatorTools` | Claude의 [iOS Simulator 창](/docs/ko/desktop-ios-simulator#turn-off-simulator-access)에서 장치를 제어하고 캡처하는 도구를 차단하려면 `true`로 설정합니다. 창은 사용자의 자신의 탭에 대해 사용 가능하게 유지됩니다. Claude의 액세스만 제거됩니다. 값은 JSON 부울 `true`여야 합니다. 문자열 `"true"`는 무시됩니다. |952| `disableMobileSimulatorTools` | Claude의 [iOS Simulator 창](/docs/ko/desktop-ios-simulator#turn-off-simulator-access)에서 장치를 제어하고 캡처하는 도구를 차단하려면 `true`로 설정합니다. 창은 사용자의 자신의 탭에 대해 사용 가능하게 유지됩니다. Claude의 액세스만 제거됩니다. 값은 JSON 부울 `true`여야 합니다. 문자열 `"true"`는 무시됩니다. |

914| `disableBrowserExternalNavigation` | [Browser 창](#browse-external-sites)에서 외부 브라우징을 완전히 끄려면 `true`로 설정합니다. 사용자와 Claude 모두 외부 사이트로 이동할 수 없으며, localhost 개발 서버 미리보기는 영향을 받지 않습니다. 값은 JSON 부울 `true`여야 합니다. 문자열 `"true"`는 무시됩니다. |953| `disableBrowserExternalNavigation` | [Browser 창](#browse-external-sites)에서 외부 브라우징을 완전히 끄려면 `true`로 설정합니다. 사용자와 Claude 모두 외부 사이트로 이동할 수 없으며, localhost 개발 서버 미리보기는 영향을 받지 않습니다. 값은 JSON 부울 `true`여야 합니다. 문자열 `"true"`는 무시됩니다. |

915| `sshConfigs` | 환경 드롭다운에 나타나는 [SSH 연결](#pre-configure-ssh-connections-for-your-team)을 사전 구성합니다. 사용자는 관리형 연결을 편집하거나 삭제할 수 없습니다. |954| `sshConfigs` | 환경 드롭다운에 나타나는 [SSH 연결](#pre-configure-ssh-connections-for-your-team)을 사전 구성합니다. 사용자는 관리형 연결을 편집하거나 삭제할 수 없습니다. |

916| `sshHostAllowlist` | [SSH 세션](#restrict-which-ssh-hosts-users-can-connect-to)을 확인된 호스트명이 이러한 패턴 중 하나와 일치하는 호스트로 제한합니다. 빈 배열은 SSH 세션을 비활성화합니다. 관리형 설정에서만 읽습니다. |955| `sshHostAllowlist` | [SSH 세션](#restrict-which-ssh-hosts-users-can-connect-to)을 확인된 호스트명이 이러한 패턴 중 하나와 일치하는 호스트로 제한합니다. 관리형 설정에서만 읽습니다. |

917| `disableDesktopLocalSessions` | [장치에서 실행되는 Code 세션](#local-sessions-on-managed-devices)을 끄려면 `true`로 설정하여 다른 호스트로의 SSH 세션과 클라우드 세션을 사용 가능하게 유지합니다. 값은 JSON 부울 `true`여야 합니다. 관리형 설정에서만 읽습니다. Claude Desktop v1.37937.0 이상이 필요합니다. |956| `disableDesktopLocalSessions` | [장치에서 실행되는 Code 세션](#local-sessions-on-managed-devices)을 끄려면 `true`로 설정하여 다른 호스트로의 SSH 세션과 클라우드 세션을 사용 가능하게 유지합니다. 값은 JSON 부울 `true`여야 합니다. 관리형 설정에서만 읽습니다. Claude Desktop v1.37937.0 이상이 필요합니다. |

918| `disableSshSavedPasswords` | Desktop이 SSH 비밀번호 저장을 제안하지 않고 이전에 저장한 비밀번호를 사용하거나 표시하지 않도록 하려면 `true`로 설정합니다. 이 설정을 켜도 저장된 비밀번호는 삭제되지 않습니다. 관리형 설정에서만 읽습니다. Claude Desktop v1.49585.0 이상이 필요합니다. |957| `disableSshSavedPasswords` | Desktop이 SSH 비밀번호 저장을 제안하지 않고 이전에 저장한 비밀번호를 사용하거나 표시하지 않도록 하려면 `true`로 설정합니다. 이 설정을 켜도 저장된 비밀번호는 삭제되지 않습니다. 관리형 설정에서만 읽습니다. Claude Desktop v1.49585.0 이상이 필요합니다. |

919| `managedMcpServers` | 모든 사용자에게 MCP 서버 구성을 푸시합니다. 타사(3P) Desktop 배포에서만 사용 가능합니다. 각 항목에서 `"http"`, `"sse"`, 또는 `"stdio"`의 전송, 연결 세부 정보, 그리고 선택적으로 해당 서버의 어떤 도구를 사용자가 호출할 수 있는지 제한하는 `toolPolicy` 맵을 설정합니다. 타사 배포는 관리자 콘솔 설정을 받지 않으므로 관리형 설정 파일, MDM, 또는 Claude apps gateway 정책의 [`desktop` 블록](/docs/ko/claude-apps-gateway-config#claude-desktop-overlay)을 통해 전달합니다. 게이트웨이를 통해 전달하려면 게이트웨이 서버에 Claude Code v2.1.232 이상이 필요합니다. 이것은 데스크톱 앱 자체의 키입니다. Claude Code는 다른 항목 형태를 가진 [같은 이름의 관리형 설정](/docs/ko/managed-mcp#provide-servers-through-managed-settings)을 읽습니다. |958| `managedMcpServers` | 모든 사용자에게 MCP 서버 구성을 푸시합니다. 타사(3P) Desktop 배포에서만 사용 가능합니다. 각 항목에서 `"http"`, `"sse"`, 또는 `"stdio"`의 전송, 연결 세부 정보, 그리고 선택적으로 해당 서버의 어떤 도구를 사용자가 호출할 수 있는지 제한하는 `toolPolicy` 맵을 설정합니다. 타사 배포는 관리자 콘솔 설정을 받지 않으므로 관리형 설정 파일, MDM, 또는 Claude apps gateway 정책의 [`desktop` 블록](/docs/ko/claude-apps-gateway-config#claude-desktop-overlay)을 통해 전달합니다. 게이트웨이를 통해 전달하려면 게이트웨이 서버에 Claude Code v2.1.232 이상이 필요합니다. 이것은 데스크톱 앱 자체의 키입니다. Claude Code는 다른 항목 형태를 가진 [같은 이름의 관리형 설정](/docs/ko/managed-mcp#provide-servers-through-managed-settings)을 읽습니다. |

920 959 

921Desktop 세션이 어느 위치에서 실행되는지에 따라 어떤 관리형 설정이 Desktop 세션에 도달하는지가 결정됩니다. [`availableModels`](/docs/ko/model-config#restrict-model-selection)과 같은 모델 제한은 터미널 CLI와 동일한 방식으로 Desktop의 Claude Code 세션에서 적용됩니다. [사용 환경 범위](/docs/ko/model-config#surface-coverage)를 참조하세요.960Desktop 세션이 어느 위치에서 실행되는지에 따라 어떤 관리형 설정이 Desktop 세션에 도달하는지가 결정됩니다. [`availableModels`](/docs/ko/model-config#restrict-model-selection)과 같은 모델 제한은 터미널 CLI와 동일한 방식으로 Desktop의 Claude Code 세션에서 적용됩니다. [사용 환경 범위](/docs/ko/model-config#surface-coverage)를 참조하세요.

922 961 

923* **이 머신의 로컬 세션**: 디스크에 배포된 관리형 설정 파일이 적용됩니다. 관리자 콘솔을 통해 원격으로 푸시된 관리형 설정도 세션이 [적격 로그인 또는 키](/docs/ko/server-managed-settings#platform-availability)로 인증할 때 Anthropic의 API에서 이러한 세션에 도달하며, 터미널 CLI와 동일한 [설정 우선순위](/docs/ko/settings#settings-precedence)를 따릅니다.962* **이 머신의 로컬 세션**: 디스크에 배포된 관리형 설정 파일이 적용됩니다. 관리자 콘솔을 통해 원격으로 푸시된 관리형 설정도 세션이 [적격 로그인](/docs/ko/server-managed-settings#platform-availability)으로 인증할 때 Anthropic의 API에서 이러한 세션에 도달하며, 터미널 CLI와 동일한 [설정 우선순위](/docs/ko/settings#settings-precedence)를 따릅니다.

924* **[클라우드 세션](#cloud-sessions)**: [서버 관리형 설정](/docs/ko/server-managed-settings)을 수신합니다. 장치 배포 파일은 Anthropic이 관리하는 VM에서 실행되므로 이들에게 도달하지 않습니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments)으로 라우팅된 세션도 러너 이미지의 관리형 설정 파일을 읽습니다. [Claude Code가 관리형 소스를 결합하는 방법](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)은 해당 파일이 적용되는 시기를 설명합니다.963* **[클라우드 세션](#cloud-sessions)**: [서버 관리형 설정](/docs/ko/server-managed-settings)을 수신합니다. 장치 배포 파일은 Anthropic이 관리하는 VM에서 실행되므로 이들에게 도달하지 않습니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments)으로 라우팅된 세션도 러너 이미지의 관리형 설정 파일을 읽습니다. [Claude Code가 관리형 소스를 결합하는 방법](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)은 해당 파일이 적용되는 시기를 설명합니다.

925* **[SSH 세션](#ssh-sessions)**: 세션은 원격 호스트에서 관리형 설정 파일을 읽습니다. Desktop 자체는 로컬 머신의 관리형 설정에서 `sshConfigs`, `sshHostAllowlist`, `disableSshSavedPasswords`, 및 `disableDesktopLocalSessions`을 읽습니다.964* **[SSH 세션](#ssh-sessions)**: 세션은 원격 호스트에서 관리형 설정 파일을 읽습니다. Desktop 자체는 로컬 머신에서 `sshConfigs`, `sshHostAllowlist`, `disableSshSavedPasswords`, 및 `disableDesktopLocalSessions`을 읽습니다. 둘 이상의 관리형 소스를 전달하는 경우 [기본적으로 그중 하나](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)에서 읽습니다.

926* **[Cowork](https://claude.com/docs/cowork/overview) 세션**: 이 머신의 Cowork 세션에서 Claude Code는 사용자가 Team 또는 Enterprise 계정으로 로그인할 때에도 관리자 콘솔 설정을 가져오지 않으며, Claude Desktop 구성이 `requireCoworkFullVmSandbox`를 설정하지 않는 한 머신에 배포된 정책을 읽습니다. 원격 Cowork 세션은 둘 다 수신하지 않습니다. 어떤 장치 파일이 Cowork에 도달하는지는 [정책이 적용되는 위치와 시기](/docs/ko/managed-settings#where-and-when-a-policy-applies)를 참조하고, `Bash` 및 `WebFetch` 규칙이 Cowork의 도구에 어떻게 적용되는지는 [MCP 권한 규칙](/docs/ko/permissions#mcp)을 참조하세요.965* **[Cowork](https://claude.com/docs/cowork/overview) 세션**: 이 머신의 Cowork 세션에서 Claude Code는 사용자가 Team 또는 Enterprise 계정으로 로그인할 때에도 관리자 콘솔 설정을 가져오지 않으며, Claude Desktop 구성이 `requireCoworkFullVmSandbox`를 설정하지 않는 한 머신에 배포된 정책을 읽습니다. 원격 Cowork 세션은 둘 다 수신하지 않습니다. 어떤 장치 파일이 Cowork에 도달하는지는 [정책이 적용되는 위치와 시기](/docs/ko/managed-settings#where-and-when-a-policy-applies)를 참조하고, `Bash` 및 `WebFetch` 규칙이 Cowork의 도구에 어떻게 적용되는지는 [MCP 권한 규칙](/docs/ko/permissions#mcp)을 참조하세요.

927 966 

928로컬 및 SSH 세션에서 데스크톱 앱은 각 사용자의 연결된 claude.ai 커넥터를 Claude Code에 직접 전달합니다. 어떤 설정 소스 또는 파일 위치를 사용하든 MCP 설정 또는 `managed-mcp.json`은 이러한 커넥터에 도달하지 않습니다. 이러한 세션에서 커넥터의 도구를 차단하려면 조직의 [커넥터 도구 컨트롤](/docs/ko/mcp#organization-controls-on-connector-tools)을 사용하세요. [커넥터가 Claude Code에 도달하는 방법](/docs/ko/mcp#how-connectors-reach-claude-code)은 각 종류의 세션에서 어떤 설정이 커넥터를 관리하는지 보여줍니다.967로컬 및 SSH 세션에서 데스크톱 앱은 각 사용자의 연결된 claude.ai 커넥터를 Claude Code에 직접 전달합니다. 어떤 설정 소스 또는 파일 위치를 사용하든 MCP 설정 또는 `managed-mcp.json`은 이러한 커넥터에 도달하지 않습니다. 이러한 세션에서 커넥터의 도구를 차단하려면 조직의 [커넥터 도구 컨트롤](/docs/ko/mcp#organization-controls-on-connector-tools)을 사용하세요. [커넥터가 Claude Code에 도달하는 방법](/docs/ko/mcp#how-connectors-reach-claude-code)은 각 종류의 세션에서 어떤 설정이 커넥터를 관리하는지 보여줍니다.


975assets-proxy.anthropic.com1014assets-proxy.anthropic.com

976claude.ai1015claude.ai

977a.claude.ai1016a.claude.ai

978a-cdn.claude.ai

979assets.claude.ai1017assets.claude.ai

980downloads.claude.ai1018downloads.claude.ai

981*.livepreview.claude.ai1019*.livepreview.claude.ai


1025 1063 

1026Claude Code CLI를 이미 사용 중이라면, Desktop은 동일한 기본 엔진을 그래픽 인터페이스로 실행합니다. 동일한 머신에서, 심지어 동일한 프로젝트에서도 두 가지를 동시에 실행할 수 있습니다. 각각은 자체 세션 목록을 유지하며, CLI 세션을 Desktop으로 가져올 수 있습니다. CLAUDE.md 파일을 통해 구성 및 프로젝트 메모리를 공유합니다.1064Claude Code CLI를 이미 사용 중이라면, Desktop은 동일한 기본 엔진을 그래픽 인터페이스로 실행합니다. 동일한 머신에서, 심지어 동일한 프로젝트에서도 두 가지를 동시에 실행할 수 있습니다. 각각은 자체 세션 목록을 유지하며, CLI 세션을 Desktop으로 가져올 수 있습니다. CLAUDE.md 파일을 통해 구성 및 프로젝트 메모리를 공유합니다.

1027 1065 

1028CLI 세션을 Desktop으로 이동하려면 터미널에서 `/desktop`을 실행하세요. Claude가 세션을 저장하고 데스크톱 앱에서 열은 후 CLI를 종료합니다. 이 명령은 Claude 구독으로 로그인했을 때 macOS 및 x64 Windows에서 사용 가능합니다. API 키 인증이나 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry에서는 사용할 수 없습니다.1066CLI 세션을 Desktop으로 이동하려면 터미널에서 `/desktop`을 실행하세요. Claude가 세션을 저장하고 데스크톱 앱에서 연 후 CLI를 종료합니다. 이 명령은 Claude 구독으로 로그인했을 때 macOS 및 x64 Windows에서 사용 가능합니다. API 키 인증이나 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry에서는 사용할 수 없습니다.

1029 1067 

1030셸에서 [`claude --desktop`](/docs/ko/cli-reference#cli-flags)은 터미널 세션을 시작하지 않고 Desktop을 직접 엽니다. Claude Code v2.1.285 이상이 필요하며 `/desktop`과 동일한 플랫폼 및 로그인 요구 사항이 있습니다. 다른 인수가 없으면 현재 디렉토리에서 Desktop을 엽니다. Desktop에서 기존 CLI 세션을 열려면 이 디렉토리의 가장 최근 대화를 위해 `--continue`를 추가하거나, `/status`가 표시하는 세션 ID로 `--resume`을 추가합니다:1068셸에서 [`claude --desktop`](/docs/ko/cli-reference#cli-flags)은 터미널 세션을 시작하지 않고 Desktop을 직접 엽니다. Claude Code v2.1.285 이상이 필요하며 `/desktop`과 동일한 플랫폼 및 로그인 요구 사항이 있습니다. 다른 인수가 없으면 현재 디렉토리에서 Desktop을 엽니다. Desktop에서 기존 CLI 세션을 열려면 이 디렉토리의 가장 최근 대화를 위해 `--continue`를 추가하거나, `/status`가 표시하는 세션 ID로 `--resume`을 추가합니다:

1031 1069 


1040Desktop에서 터미널 세션을 계속하려면:1078Desktop에서 터미널 세션을 계속하려면:

1041 1079 

10421. 터미널에서 세션을 닫습니다.10801. 터미널에서 세션을 닫습니다.

10432. Desktop 프롬프트 상자에서 `/resume`을 입력합니다. Desktop은 이 컴퓨터의 CLI에서 시작한 세션을 나열합니다. 제목, 폴더 또는 분기로 검색하고 각 세션이 어디서 중단되었는지 미리 봅니다.10812. Desktop 프롬프트 상자에서 `/resume`을 입력합니다. Desktop은 이 컴퓨터의 CLI에서 시작한 세션을 나열합니다. 제목, 폴더 또는 브랜치로 검색하고 각 세션이 어디서 중단되었는지 미리 봅니다.

10443. 세션을 선택합니다. 전체 대화 및 컨텍스트와 함께 앱에서 계속됩니다.10823. 세션을 선택합니다. 전체 대화 및 컨텍스트와 함께 앱에서 계속됩니다.

1045 1083 

1046Desktop은 복사본이 아닌 동일한 세션을 계속하므로, 터미널에서 `claude --resume`을 실행하면 이후에도 여전히 찾을 수 있습니다.1084Desktop은 복사본이 아닌 동일한 세션을 계속하므로, 터미널에서 `claude --resume`을 실행하면 이후에도 여전히 찾을 수 있습니다.

1047 1085 

1048<Tip>1086<Tip>

1049 Desktop과 CLI를 언제 사용할지: 한 창에서 병렬 세션을 관리하거나, 창을 나란히 배열하거나, 변경 사항을 시각적으로 검토하려면 Desktop을 사용하세요. 스크립팅, 자동화가 필요하거나 터미널 워크플로우를 선호하면 CLI를 사용하세요.1087 Desktop과 CLI를 언제 사용할지: 한 창에서 병렬 세션을 관리하거나, 창을 나란히 배열하거나, 변경 사항을 시각적으로 검토하려면 Desktop을 사용하세요. 스크립팅, 자동화가 필요하거나 터미널 워크플로를 선호하면 CLI를 사용하세요.

1050</Tip>1088</Tip>

1051 1089 

1052<h3 id="cli-flag-equivalents">1090<h3 id="cli-flag-equivalents">


1075Desktop과 CLI는 동일한 구성 파일을 읽으므로 설정이 그대로 유지됩니다:1113Desktop과 CLI는 동일한 구성 파일을 읽으므로 설정이 그대로 유지됩니다:

1076 1114 

1077* 프로젝트의 **[CLAUDE.md](/docs/ko/memory)** 및 `CLAUDE.local.md` 파일은 둘 다에서 사용됩니다1115* 프로젝트의 **[CLAUDE.md](/docs/ko/memory)** 및 `CLAUDE.local.md` 파일은 둘 다에서 사용됩니다

1078* `~/.claude.json` 또는 `.mcp.json`에 구성된 \*\*[MCP servers](/docs/ko/mcp)\*\*는 둘 다에서 작동합니다1116* `~/.claude.json` 또는 `.mcp.json`에 구성된 \*\*[MCP 서버](/docs/ko/mcp)\*\*는 둘 다에서 작동합니다

1079* 설정에 정의된 **[Hooks](/docs/ko/hooks)** 및 \*\*[skills](/docs/ko/skills)\*\*는 둘 다에 적용됩니다1117* 설정에 정의된 **[훅](/docs/ko/hooks)** 및 \*\*[스킬](/docs/ko/skills)\*\*은 둘 다에 적용됩니다

1080* `~/.claude.json` 및 `~/.claude/settings.json`의 \*\*[설정](/docs/ko/settings)\*\*은 공유됩니다. `settings.json`의 권한 규칙, 허용된 도구 및 기타 설정은 Desktop 세션에 적용됩니다.1118* `~/.claude.json` 및 `~/.claude/settings.json`의 \*\*[설정](/docs/ko/settings)\*\*은 공유됩니다. `settings.json`의 권한 규칙, 허용된 도구 및 기타 설정은 Desktop 세션에 적용됩니다.

1081* **모델**: 동일한 [모델](/docs/ko/model-config#available-models)을 둘 다에서 사용할 수 있습니다. Desktop에서는 전송 버튼 옆의 드롭다운에서 모델을 선택합니다. 동일한 드롭다운에서 세션 중간에 모델을 변경할 수 있습니다.1119* **모델**: 동일한 [모델](/docs/ko/model-config#available-models)을 둘 다에서 사용할 수 있습니다. Desktop에서는 전송 버튼 옆의 드롭다운에서 모델을 선택합니다. 동일한 드롭다운에서 세션 중간에 모델을 변경할 수 있습니다.

1082 1120 


1084 Claude Desktop 채팅 앱의 MCP 서버1122 Claude Desktop 채팅 앱의 MCP 서버

1085</h4>1123</h4>

1086 1124 

1087Desktop 앱은 `claude_desktop_config.json`에서 MCP 서버를 로컬 Code 탭 세션으로 로드하며, `~/.claude.json` 및 `.mcp.json`의 서버와 함께 로드됩니다. `claude_desktop_config.json`에서 정의한 서버는 Desktop 채팅 표면과 로컬 Code 탭 세션 모두에서 사용 가능합니다.1125Desktop 앱은 `claude_desktop_config.json`에서 MCP 서버를 로컬 Code 탭 세션으로 로드하며, `~/.claude.json` 및 `.mcp.json`의 서버와 함께 로드됩니다. `claude_desktop_config.json`에서 정의한 서버는 Desktop 채팅 사용 환경과 로컬 Code 탭 세션 모두에서 사용 가능합니다.

1088 1126 

1089`claude_desktop_config.json`과 `~/.claude.json` 또는 `.mcp.json`에서 동일한 서버 이름을 정의하면, 로컬 세션의 Code 탭은 한 번 연결되고 `claude_desktop_config.json` 정의를 사용합니다.1127`claude_desktop_config.json`과 `~/.claude.json` 또는 `.mcp.json`에서 동일한 서버 이름을 정의하면, 로컬 세션의 Code 탭은 한 번 연결되고 `claude_desktop_config.json` 정의를 사용합니다.

1090 1128 


1110| 파일 첨부 | 사용할 수 없음 | 이미지, PDF |1148| 파일 첨부 | 사용할 수 없음 | 이미지, PDF |

1111| 세션 격리 | [`--worktree`](/docs/ko/cli-reference) 플래그 | 세션 시작 시 **worktree** 옵션 |1149| 세션 격리 | [`--worktree`](/docs/ko/cli-reference) 플래그 | 세션 시작 시 **worktree** 옵션 |

1112| 여러 세션 | 별도 터미널 | 사이드바 탭 |1150| 여러 세션 | 별도 터미널 | 사이드바 탭 |

1113| 반복 작업 | Cron 작업, CI 파이프라인 | [예약된 작업](/docs/ko/desktop-scheduled-tasks) |1151| 반복 작업 | Cron 작업, CI 파이프라인 | [예약 작업](/docs/ko/desktop-scheduled-tasks) |

1114| 컴퓨터 사용 | macOS에서 [`/mcp`](/docs/ko/computer-use)를 통해 활성화 | macOS 및 Windows에서 [앱 및 화면 제어](#let-claude-use-your-computer) |1152| 컴퓨터 사용 | macOS에서 [`/mcp`](/docs/ko/computer-use)를 통해 활성화 | macOS 및 Windows에서 [앱 및 화면 제어](#let-claude-use-your-computer) |

1115| iOS 시뮬레이터 | [컴퓨터 사용](/docs/ko/computer-use#test-a-simulator-flow)을 통해 시뮬레이터 구동 | [iOS 시뮬레이터 창](/docs/ko/desktop-ios-simulator)이 자동으로 열립니다 |1153| iOS 시뮬레이터 | [컴퓨터 사용](/docs/ko/computer-use#test-a-simulator-flow)을 통해 시뮬레이터 구동 | [iOS 시뮬레이터 창](/docs/ko/desktop-ios-simulator)이 자동으로 열립니다 |

1116| Dispatch 통합 | 사용할 수 없음 | 사이드바의 [Dispatch 세션](#sessions-from-dispatch) |1154| Dispatch 통합 | 사용할 수 없음 | 사이드바의 [Dispatch 세션](#sessions-from-dispatch) |


1124 1162 

1125* **타사 제공자**: Desktop은 기본적으로 Anthropic의 API에 연결됩니다. Desktop을 게이트웨이를 통해 라우팅하거나 Code 탭을 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 또는 자체 호스팅 LLM 게이트웨이에서 실행하려면 [타사 제공자 행](#feature-comparison)의 링크를 따르세요.1163* **타사 제공자**: Desktop은 기본적으로 Anthropic의 API에 연결됩니다. Desktop을 게이트웨이를 통해 라우팅하거나 Code 탭을 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 또는 자체 호스팅 LLM 게이트웨이에서 실행하려면 [타사 제공자 행](#feature-comparison)의 링크를 따르세요.

1126* **Linux (베타)**: 컴퓨터 사용은 아직 Linux 데스크톱 앱에서 사용할 수 없습니다. [Claude Desktop on Linux](/docs/ko/desktop-linux)를 참조하세요.1164* **Linux (베타)**: 컴퓨터 사용은 아직 Linux 데스크톱 앱에서 사용할 수 없습니다. [Claude Desktop on Linux](/docs/ko/desktop-linux)를 참조하세요.

1127* **인라인 코드 제안**: Desktop은 자동 완성 스타일 제안을 제공하지 않습니다. 대화형 프롬프트 및 명시적 코드 변경을 통해 작동합니다.1165* **인라인 코드 제안**: Desktop은 자동 완성 스타일의 코드 완성을 제공하지 않습니다. 대화형 프롬프트 및 명시적 코드 변경을 통해 작동하며, Claude가 응답한 후 [다음 프롬프트를 제안](#accept-a-suggested-prompt)할 수 있습니다.

1128* **에이전트 팀**: 공유 작업 목록에서 팀 리더로서의 Claude가 팀원에게 작업을 할당하는 조정된 팀은 [CLI](/docs/ko/agent-teams)에서 사용 가능하며, Desktop에서는 사용할 수 없습니다. 한 세션 내에서 다중 에이전트 작업의 경우 Desktop에서 실행되는 [동적 워크플로우](/docs/ko/workflows)를 사용하세요. Claude는 또한 [다른 세션에 메시지를 보내고 관리](#work-across-sessions)할 수 있습니다.1166* **에이전트 팀**: 공유 작업 목록에서 팀 리더로서의 Claude가 팀원에게 작업을 할당하는 조정된 팀은 [CLI](/docs/ko/agent-teams)에서 사용 가능하며, Desktop에서는 사용할 수 없습니다. 한 세션 내에서 다중 에이전트 작업의 경우 Desktop에서 실행되는 [동적 워크플로](/docs/ko/workflows)를 사용하세요. Claude는 또한 [다른 세션에 직접 메시지를 보내고 관리](#work-across-sessions)할 수 있습니다.

1129* **터미널 대화 명령**: 터미널에서 대화형 패널을 여는 기본 제공 명령은 Code 탭에서 다르게 작동합니다. [설정 파일](/docs/ko/settings)을 직접 편집하여 권한 규칙 및 구성을 관리하거나, 독립 실행형 CLI에서 명령을 실행합니다.1167* **터미널 대화 명령**: 터미널에서 대화형 패널을 여는 기본 제공 명령은 Code 탭에서 다르게 작동합니다. [설정 파일](/docs/ko/settings)을 직접 편집하여 권한 규칙 및 구성을 관리하거나, 독립 실행형 CLI에서 명령을 실행합니다.

1130 * 인수 형식이 없는 명령(예: `/permissions`)은 `isn't available in this environment`로 응답합니다.1168 * 인수 형식이 없는 명령(예: `/permissions`)은 `isn't available in this environment`로 응답합니다.

1131 * `/config`는 설정 → Claude Code를 엽니다. 명령 뒤의 텍스트는 무시되므로 `/config theme=dark`는 테마를 설정하지 않습니다.1169 * `/config`는 설정 → Claude Code를 엽니다. 명령 뒤의 텍스트는 무시되므로 `/config theme=dark`는 테마를 설정하지 않습니다.


1147 1185 

1148버전 번호를 클릭하여 클립보드에 복사합니다.1186버전 번호를 클릭하여 클립보드에 복사합니다.

1149 1187 

1188<h4 id="claude-code-version-in-the-code-tab">

1189 Code 탭의 Claude Code 버전

1190</h4>

1191 

1192세션에서 실행되는 Claude Code 버전을 확인하려면 **Code** 탭의 로컬 세션에서 `/status`를 입력하고 **Claude Code** 행을 확인합니다. 이 행에는 `2.1.286`과 같은 버전이 표시됩니다.

1193 

1194로컬 세션용 최신 버전을 받으려면 macOS에서는 **Claude → Check for Updates**를, Windows에서는 **Help → Check for Updates**를 연 다음 새 세션을 시작합니다.

1195 

1196로컬 세션에서 **Code** 탭은 자체 버전 번호를 가진 별도의 Claude Code 사본을 실행합니다. 데스크톱 앱이 해당 사본을 다운로드하고 업데이트하므로 터미널의 `claude` 명령과 버전이 다를 수 있으며, 한쪽을 업데이트해도 다른 쪽은 업데이트되지 않습니다.

1197 

1150<h3 id="403-or-authentication-errors-in-the-code-tab">1198<h3 id="403-or-authentication-errors-in-the-code-tab">

1151 Code 탭의 403 또는 인증 오류1199 Code 탭의 403 또는 인증 오류

1152</h3>1200</h3>

env-vars.md +298 −295

Details

126 변수126 변수

127</h2>127</h2>

128 128 

129타임아웃, 토큰 예산, 재시도 횟수와 같은 숫자 변수는 일반 숫자 외에도 과학적 표기법과 자릿수 구분자 표기를 허용합니다. 단, 변수의 행에 일반 숫자만 받는다고 명시된 경우는 예외입니다. 예를 들어 Claude Code는 `2e3`을 2000으로, `64_000`을 64000으로 읽습니다. v2.1.211 이전에는 이러한 표기가 `1e6`이 타임아웃을 1로 설정하는 것처럼 훨씬 작은 값을 조용히 설정할 수 있었습니다.129타임아웃, 토큰 예산, 재시도 횟수 같은 숫자 변수는 일반 숫자 외에도 과학적 표기법과 자릿수 구분자 표기를 허용합니다. 단, 변수 행에 일반 숫자만 받는다고 명시된 경우는 예외입니다. 예를 들어 Claude Code는 `2e3`을 2000으로, `64_000`을 64000으로 읽습니다. v2.1.211 이전에는 이러한 표기가 훨씬 작은 값을 조용히 설정할 수 있었습니다. 예를 들어 `1e6`은 타임아웃을 1로 설정했습니다.

130 130 

131<Note>131<Note>

132 동작을 켜거나 끄는 변수의 경우, 대소문자에 관계없이 `1`, `true`, `yes`, `on`으로 설정하면 켜지고 `0`, `false`, `no`, `off`로 설정하면 꺼집니다.132 동작을 켜거나 끄는 변수의 경우, 대소문자와 관계없이 `1`, `true`, `yes` 또는 `on`으로 설정하면 켜지고 `0`, `false`, `no` 또는 `off`로 설정하면 꺼집니다.

133 133 

134 일부 변수는 설정 여부만 읽으므로 `0`을 포함한 비어 있지 않은 모든 값이 동작을 켜며, 동작을 끄려면 변수를 설정 해제하거나 빈 값으로 설정해야 합니다. 다음 변수가 이렇게 작동합니다.134 일부 변수는 설정 여부만 확인하므로 `0`을 포함해 비어 있지 않은 모든 값이 동작을 켜며, 동작을 끄려면 변수를 설정 해제하거나 빈 값으로 설정해야 합니다. 다음 변수가 이 방식으로 동작합니다.

135 135 

136 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`136 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

137 * `DISABLE_TELEMETRY`137 * `DISABLE_TELEMETRY`


140 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`140 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`

141 * `IS_DEMO`141 * `IS_DEMO`

142 142 

143 다른 변수 하나는 고유한 규칙을 따릅니다. `FORCE_HYPERLINK`는 숫자를 읽으므로 `0`만 이를 끕니다. 각 변수의 행에도 해당 변수의 규칙이 명시되어 있습니다.143 다른 한 변수에는 고유한 규칙이 있습니다. `FORCE_HYPERLINK`는 숫자를 읽으므로 `0`만 이를 끕니다. 각 변수의 행에도 해당 변수의 규칙이 명시되어 있습니다.

144</Note>144</Note>

145 145 

146| 변수 | 용도 |146| 변수 | 용도 |

147| :- | :- |147| :- | :- |

148| `ANTHROPIC_API_KEY` | `X-Api-Key` 헤더로 전송되는 API 키입니다. 설정하면 로그인한 상태에서도 Claude Pro, Max, Team 또는 Enterprise 구독 대신 이 키가 사용됩니다. 비대화형 모드(`-p`)에서는 키가 있으면 항상 사용됩니다. 대화형 모드에서는 키가 구독을 재정의하기 전에 한 번 승인하라는 요청이 표시됩니다. 대신 구독을 사용하려면 `unset ANTHROPIC_API_KEY`를 실행하세요 |148| `ANTHROPIC_API_KEY` | `X-Api-Key` 헤더로 전송되는 API 키입니다. 설정하면 로그인한 상태여도 Claude Pro, Max, Team 또는 Enterprise 구독 대신 이 키가 사용됩니다. 비대화형 모드(`-p`)에서는 키가 있으면 항상 사용됩니다. 대화형 모드에서는 키가 구독을 재정의하기 전에 키 승인을 한 번 요청받습니다. 대신 구독을 사용하려면 `unset ANTHROPIC_API_KEY`를 실행하세요 |

149| `ANTHROPIC_AUTH_TOKEN` | `Authorization` 헤더의 사용자 지정 값입니다(여기에 설정한 값 앞에 `Bearer `가 붙습니다) |149| `ANTHROPIC_AUTH_TOKEN` | `Authorization` 헤더의 사용자 지정 값입니다(여기에 설정한 값 앞에 `Bearer `가 붙습니다) |

150| `ANTHROPIC_AWS_API_KEY` | AWS Console에서 생성한 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)용 워크스페이스 API 키입니다. `x-api-key`로 전송되며 AWS SigV4보다 우선합니다 |150| `ANTHROPIC_AWS_API_KEY` | AWS Console에서 생성한 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)용 워크스페이스 API 키입니다. `x-api-key`로 전송되며 AWS SigV4보다 우선합니다 |

151| `ANTHROPIC_AWS_BASE_URL` | [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 엔드포인트 URL을 재정의합니다. 사용자 지정 리전에 사용하거나 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 라우팅할 때 사용합니다. 기본값은 `https://aws-external-anthropic.{region}.api.aws`입니다. Claude Code는 [Amazon Bedrock과 동일한 우선순위](/docs/ko/amazon-bedrock#3-configure-claude-code)로 리전을 결정합니다 |151| `ANTHROPIC_AWS_BASE_URL` | [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 엔드포인트 URL을 재정의합니다. 사용자 지정 리전에 사용하거나 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 라우팅할 때 사용합니다. 기본값은 `https://aws-external-anthropic.{region}.api.aws`입니다. Claude Code는 [Amazon Bedrock과 동일한 우선순위](/docs/ko/amazon-bedrock#3-configure-claude-code)로 리전을 결정합니다 |

152| `ANTHROPIC_AWS_WORKSPACE_ID` | [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)에 필수입니다. 모든 요청에 `anthropic-workspace-id` 헤더로 전송됩니다 |152| `ANTHROPIC_AWS_WORKSPACE_ID` | [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)에 필수입니다. 모든 요청에 `anthropic-workspace-id` 헤더로 전송됩니다 |

153| `ANTHROPIC_BASE_URL` | 프록시나 게이트웨이를 통해 요청을 라우팅하도록 API 엔드포인트를 재정의합니다. 퍼스트 파티가 아닌 호스트로 설정하면 [MCP 도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)이 기본적으로 비활성화됩니다. 프록시가 `tool_reference` 블록을 전달한다면 `ENABLE_TOOL_SEARCH=true`를 설정하세요. v2.1.196부터는 이 값이 `api.anthropic.com` 이외의 호스트를 가리키면 [Remote Control](/docs/ko/remote-control#requirements)이 비활성화되며, 이는 Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry에서의 동작과 동일합니다 |153| `ANTHROPIC_BASE_URL` | 프록시 또는 게이트웨이를 통해 요청을 라우팅하도록 API 엔드포인트를 재정의합니다. 퍼스트 파티가 아닌 호스트로 설정하면 [MCP 도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)이 기본적으로 비활성화됩니다. 프록시가 `tool_reference` 블록을 전달한다면 `ENABLE_TOOL_SEARCH=true`를 설정하세요. v2.1.196부터는 이 값이 `api.anthropic.com` 이외의 호스트를 가리키면 [Remote Control](/docs/ko/remote-control#requirements)이 비활성화되며, 이는 Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry에서의 동작과 동일합니다 |

154| `ANTHROPIC_BEDROCK_BASE_URL` | Amazon Bedrock 엔드포인트 URL을 재정의합니다. 사용자 지정 Amazon Bedrock 엔드포인트에 사용하거나 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 라우팅할 때 사용합니다. [Amazon Bedrock](/docs/ko/amazon-bedrock)을 참조하세요 |154| `ANTHROPIC_BEDROCK_BASE_URL` | Amazon Bedrock 엔드포인트 URL을 재정의합니다. 사용자 지정 Amazon Bedrock 엔드포인트에 사용하거나 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 라우팅할 때 사용합니다. [Amazon Bedrock](/docs/ko/amazon-bedrock)을 참조하세요 |

155| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Amazon Bedrock Mantle 엔드포인트 URL을 재정의합니다. [Mantle 엔드포인트](/docs/ko/amazon-bedrock#use-the-mantle-endpoint)를 참조하세요 |155| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Amazon Bedrock Mantle 엔드포인트 URL을 재정의합니다. [Mantle 엔드포인트](/docs/ko/amazon-bedrock#use-the-mantle-endpoint)를 참조하세요 |

156| `ANTHROPIC_BEDROCK_REGION_PREFIX` | AWS 리전에서 도출된 접두사 대신 Claude Code가 먼저 시도하는 교차 리전 추론 프로필 접두사(`us`, `eu`, `apac`, `jp`, `au` 또는 `global`)입니다. AWS GovCloud 리전에서는 무시됩니다. Claude Code v2.1.224 이상이 필요합니다. [Amazon Bedrock](/docs/ko/amazon-bedrock#cross-region-inference-profile-prefixes)을 참조하세요 |156| `ANTHROPIC_BEDROCK_REGION_PREFIX` | AWS 리전에서 도출된 접두사 대신 Claude Code가 먼저 시도하는 교차 리전 추론 프로필 접두사(`us`, `eu`, `apac`, `jp`, `au` 또는 `global`)입니다. AWS GovCloud 리전에서는 무시됩니다. Claude Code v2.1.224 이상이 필요합니다. [Amazon Bedrock](/docs/ko/amazon-bedrock#cross-region-inference-profile-prefixes)을 참조하세요 |

157| `ANTHROPIC_BEDROCK_SERVICE_TIER` | Amazon Bedrock [서비스 티어](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html)(`default`, `flex` 또는 `priority`)입니다. `X-Amzn-Bedrock-Service-Tier` 헤더로 전송됩니다. [Amazon Bedrock](/docs/ko/amazon-bedrock#service-tiers)을 참조하세요 |157| `ANTHROPIC_BEDROCK_SERVICE_TIER` | Amazon Bedrock [서비스 티어](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html)(`default`, `flex` 또는 `priority`)입니다. `X-Amzn-Bedrock-Service-Tier` 헤더로 전송됩니다. [Amazon Bedrock](/docs/ko/amazon-bedrock#service-tiers)을 참조하세요 |

158| `ANTHROPIC_BETAS` | API 요청에 포함할 추가 `anthropic-beta` 헤더 값의 쉼표로 구분된 목록입니다. Claude Code는 필요한 베타 헤더를 이미 전송합니다. Claude Code가 기본 지원을 추가하기 전에 [Anthropic API 베타](https://platform.claude.com/docs/en/api/beta-headers)를 사용하려면 이 변수를 사용하세요. API 키 인증이 필요한 [`--betas` 플래그](/docs/ko/cli-reference#cli-flags)와 달리, 이 변수는 Claude.ai 구독을 포함한 모든 인증 방법에서 작동합니다 |158| `ANTHROPIC_BETAS` | API 요청에 포함할 추가 `anthropic-beta` 헤더 값의 쉼표로 구분된 목록입니다. Claude Code는 필요한 베타 헤더를 이미 전송합니다. Claude Code가 네이티브 지원을 추가하기 전에 [Anthropic API 베타](https://platform.claude.com/docs/en/api/beta-headers)를 사용하려면 이 변수를 사용하세요. API 키 인증이 필요한 [`--betas` 플래그](/docs/ko/cli-reference#cli-flags)와 달리, 이 변수는 Claude.ai 구독을 포함한 모든 인증 방식에서 작동합니다 |

159| `ANTHROPIC_CUSTOM_HEADERS` | 요청에 추가할 사용자 지정 헤더입니다(`Name: Value` 형식, 여러 헤더는 줄바꿈으로 구분). 이름이나 값에 둥근 따옴표나 폭 없는 공백처럼 HTTP 헤더가 담을 수 없는 문자가 포함되어 있으면, 요청은 해당 쌍을 위치로 식별하는 오류와 함께 실패합니다. Claude Code v2.1.227 이상이 필요합니다. [Invalid request header value](/docs/ko/errors#invalid-request-header-value)에서 정확한 문자 집합과 검사가 실행되는 위치를 확인할 수 있습니다. `Authorization`이나 `Host`처럼 자격 증명, 조직 또는 테넌트, 라우팅, API 동작 헤더를 설정하는 값은 서버 관리 설정이 전달할 때 [승인이 필요한 설정](/docs/ko/server-managed-settings#environment-variables-and-the-approval-dialog)으로 간주됩니다. 프로젝트 또는 로컬 설정에서 전달되는 이러한 값은 [`env` 값이 적용되는 시점에 대한 규칙](/docs/ko/settings-reference#when-claude-code-applies-env-values)을 따릅니다 |159| `ANTHROPIC_CUSTOM_HEADERS` | 요청에 추가할 사용자 지정 헤더입니다(`Name: Value` 형식, 여러 헤더는 줄바꿈으로 구분). 이름이나 값에 둥근 따옴표나 폭 없는 공백처럼 HTTP 헤더가 담을 수 없는 문자가 포함되어 있으면, 요청은 해당 쌍의 위치를 알려 주는 오류와 함께 실패합니다. Claude Code v2.1.227 이상이 필요합니다. [Invalid request header value](/docs/ko/errors#invalid-request-header-value)에서 정확한 문자 집합과 검사가 실행되는 위치를 확인할 수 있습니다. `Authorization`이나 `Host`처럼 자격 증명, 조직 또는 테넌트, 라우팅, API 동작 헤더를 설정하는 값은 서버 관리형 설정이 전달하는 경우 [승인이 필요한 설정](/docs/ko/server-managed-settings#environment-variables-and-the-approval-dialog)으로 간주됩니다. 프로젝트 또는 로컬 설정에서 오는 이러한 값은 [`env` 값이 적용되는 시점에 대한 규칙](/docs/ko/settings-reference#when-claude-code-applies-env-values)을 따릅니다 |

160| `ANTHROPIC_CUSTOM_MODEL_OPTION` | `/model` 선택기에 사용자 지정 항목으로 추가할 모델 ID입니다. 기본 제공 별칭을 대체하지 않고 비표준 모델이나 게이트웨이 전용 모델을 선택할 수 있게 하려면 이 변수를 사용하세요. [모델 구성](/docs/ko/model-config#add-a-custom-model-option)을 참조하세요 |160| `ANTHROPIC_CUSTOM_MODEL_OPTION` | `/model` 선택기에 사용자 지정 항목으로 추가할 모델 ID입니다. 기본 제공 별칭을 대체하지 않고 비표준 또는 게이트웨이 전용 모델을 선택할 수 있게 하려면 이 변수를 사용하세요. [모델 구성](/docs/ko/model-config#add-a-custom-model-option)을 참조하세요 |

161| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | `/model` 선택기의 사용자 지정 모델 항목에 표시되는 설명입니다. 설정하지 않으면 기본값은 `Custom model (<model-id>)`입니다 |161| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | `/model` 선택기에서 사용자 지정 모델 항목에 표시할 설명입니다. 설정하지 않으면 기본값은 `Custom model (<model-id>)`입니다 |

162| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | `/model` 선택기의 사용자 지정 모델 항목에 표시되는 이름입니다. 설정하지 않으면 Claude Code가 [ID를 인식하는](/docs/ko/model-config#customize-pinned-model-display-and-capabilities) 경우 모델 이름이 표시되고, 그렇지 않으면 모델 ID가 표시됩니다 |162| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | `/model` 선택기에서 사용자 지정 모델 항목에 표시할 이름입니다. 설정하지 않으면 Claude Code가 [ID를 인식하는](/docs/ko/model-config#customize-pinned-model-display-and-capabilities) 경우 모델 이름을, 그렇지 않으면 모델 ID를 표시합니다 |

163| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | 사용자 지정 모델이 지원하는 [기능](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)의 쉼표로 구분된 목록입니다(예: `effort,thinking`). [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |163| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | 사용자 지정 모델이 지원하는 [기능](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)의 쉼표로 구분된 목록입니다(예: `effort,thinking`). [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |

164| `ANTHROPIC_DEFAULT_FABLE_MODEL` | `fable` 별칭이 가리키는 모델 ID이자, 서드파티 제공업체에서 [자동 모델 폴백](/docs/ko/model-config#automatic-model-fallback)을 위해 Claude Code가 Fable 모델로 인식하는 ID입니다. [모델 구성](/docs/ko/model-config#environment-variables)을 참조하세요 |164| `ANTHROPIC_DEFAULT_FABLE_MODEL` | `fable` 별칭이 가리키는 모델 ID이자, 서드파티 제공업체에서 [자동 모델 폴백](/docs/ko/model-config#automatic-model-fallback)을 위해 Claude Code가 Fable 모델로 인식하는 ID입니다. [모델 구성](/docs/ko/model-config#environment-variables)을 참조하세요 |

165| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | `/model` 선택기에서 고정된 Fable 모델에 표시되는 설명입니다. 설정하지 않으면 해당 행에 `Custom Fable model`로 시작하는 기본 설명이 표시됩니다. [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |165| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | `/model` 선택기에서 고정된 Fable 모델에 표시할 설명입니다. 설정하지 않으면 해당 행에 `Custom Fable model`로 시작하는 기본 설명이 표시됩니다. [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |

166| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | `/model` 선택기에서 고정된 Fable 모델에 표시되는 이름입니다. 설정하지 않으면 Claude Code가 고정된 ID를 인식하는 경우 모델 이름이 표시되고, 그렇지 않으면 고정된 ID가 표시됩니다. [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |166| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | `/model` 선택기에서 고정된 Fable 모델에 표시할 이름입니다. 설정하지 않으면 Claude Code가 고정된 ID를 인식하는 경우 해당 행에 모델 이름이, 그렇지 않으면 고정된 ID가 표시됩니다. [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |

167| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | 고정된 Fable 모델이 지원하는 [기능](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)의 쉼표로 구분된 목록입니다(예: `effort,thinking`). [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |167| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | 고정된 Fable 모델이 지원하는 [기능](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)의 쉼표로 구분된 목록입니다(예: `effort,thinking`). [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |

168| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | `haiku` 별칭이 가리키는 모델 ID이며, [백그라운드 기능](/docs/ko/costs#background-token-usage)에도 사용됩니다. [모델 구성](/docs/ko/model-config#environment-variables)을 참조하세요 |168| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | `haiku` 별칭이 가리키는 모델 ID로, [백그라운드 기능](/docs/ko/costs#background-token-usage)에도 사용됩니다. [모델 구성](/docs/ko/model-config#environment-variables)을 참조하세요 |

169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | `/model` 선택기에서 고정된 Haiku 모델에 표시되는 설명입니다. 설정하지 않으면 해당 행에 `Custom Haiku model`로 시작하는 기본 설명이 표시됩니다. [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | `/model` 선택기에서 고정된 Haiku 모델에 표시할 설명입니다. 설정하지 않으면 해당 행에 `Custom Haiku model`로 시작하는 기본 설명이 표시됩니다. [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |

170| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | `/model` 선택기에서 고정된 Haiku 모델에 표시되는 이름입니다. 설정하지 않으면 Claude Code가 고정된 ID를 인식하는 경우 모델 이름이 표시되고, 그렇지 않으면 고정된 ID가 표시됩니다. [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |170| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | `/model` 선택기에서 고정된 Haiku 모델에 표시할 이름입니다. 설정하지 않으면 Claude Code가 고정된 ID를 인식하는 경우 해당 행에 모델 이름이, 그렇지 않으면 고정된 ID가 표시됩니다. [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |

171| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | 고정된 Haiku 모델이 지원하는 [기능](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)의 쉼표로 구분된 목록입니다(예: `effort,thinking`). [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |171| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | 고정된 Haiku 모델이 지원하는 [기능](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)의 쉼표로 구분된 목록입니다(예: `effort,thinking`). [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |

172| `ANTHROPIC_DEFAULT_MODEL` | 새 세션이 기본적으로 시작되는 모델입니다. Claude Code v2.1.236 이상이 필요합니다. [새 세션의 기본 모델 설정](/docs/ko/model-config#set-a-default-model-for-new-sessions)을 참조하세요 |172| `ANTHROPIC_DEFAULT_MODEL` | 새 세션이 기본적으로 시작되는 모델입니다. Claude Code v2.1.236 이상이 필요합니다. [새 세션의 기본 모델 설정](/docs/ko/model-config#set-a-default-model-for-new-sessions)을 참조하세요 |

173| `ANTHROPIC_DEFAULT_OPUS_MODEL` | `opus` 별칭이 가리키는 모델 ID이자, 플랜 모드가 활성화된 동안 `opusplan`이 사용하는 모델 ID입니다. [모델 구성](/docs/ko/model-config#environment-variables)을 참조하세요 |173| `ANTHROPIC_DEFAULT_OPUS_MODEL` | `opus` 별칭이 가리키는 모델 ID이자, 플랜 모드가 활성화된 동안 `opusplan`이 사용하는 모델 ID입니다. [모델 구성](/docs/ko/model-config#environment-variables)을 참조하세요 |

174| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | `/model` 선택기에서 고정된 Opus 모델에 표시되는 설명입니다. 설정하지 않으면 해당 행에 `Custom Opus model`로 시작하는 기본 설명이 표시됩니다. [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |174| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | `/model` 선택기에서 고정된 Opus 모델에 표시할 설명입니다. 설정하지 않으면 해당 행에 `Custom Opus model`로 시작하는 기본 설명이 표시됩니다. [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |

175| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | `/model` 선택기에서 고정된 Opus 모델에 표시되는 이름입니다. 설정하지 않으면 Claude Code가 고정된 ID를 인식하는 경우 모델 이름이 표시되고, 그렇지 않으면 고정된 ID가 표시됩니다. [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |175| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | `/model` 선택기에서 고정된 Opus 모델에 표시할 이름입니다. 설정하지 않으면 Claude Code가 고정된 ID를 인식하는 경우 해당 행에 모델 이름이, 그렇지 않으면 고정된 ID가 표시됩니다. [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |

176| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | 고정된 Opus 모델이 지원하는 [기능](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)의 쉼표로 구분된 목록입니다(예: `effort,thinking`). [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |176| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | 고정된 Opus 모델이 지원하는 [기능](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)의 쉼표로 구분된 목록입니다(예: `effort,thinking`). [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |

177| `ANTHROPIC_DEFAULT_SONNET_MODEL` | `sonnet` 별칭이 가리키는 모델 ID이자, 플랜 모드가 활성화되지 않았을 때 `opusplan`이 사용하는 모델 ID입니다. [모델 구성](/docs/ko/model-config#environment-variables)을 참조하세요 |177| `ANTHROPIC_DEFAULT_SONNET_MODEL` | `sonnet` 별칭이 가리키는 모델 ID이자, 플랜 모드가 활성화되지 않았을 때 `opusplan`이 사용하는 모델 ID입니다. [모델 구성](/docs/ko/model-config#environment-variables)을 참조하세요 |

178| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | `/model` 선택기에서 고정된 Sonnet 모델에 표시되는 설명입니다. 설정하지 않으면 해당 행에 `Custom Sonnet model`로 시작하는 기본 설명이 표시됩니다. [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |178| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | `/model` 선택기에서 고정된 Sonnet 모델에 표시할 설명입니다. 설정하지 않으면 해당 행에 `Custom Sonnet model`로 시작하는 기본 설명이 표시됩니다. [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |

179| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | `/model` 선택기에서 고정된 Sonnet 모델에 표시되는 이름입니다. 설정하지 않으면 Claude Code가 고정된 ID를 인식하는 경우 모델 이름이 표시되고, 그렇지 않으면 고정된 ID가 표시됩니다. [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |179| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | `/model` 선택기에서 고정된 Sonnet 모델에 표시할 이름입니다. 설정하지 않으면 Claude Code가 고정된 ID를 인식하는 경우 해당 행에 모델 이름이, 그렇지 않으면 고정된 ID가 표시됩니다. [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |

180| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | 고정된 Sonnet 모델이 지원하는 [기능](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)의 쉼표로 구분된 목록입니다(예: `effort,thinking`). [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |180| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | 고정된 Sonnet 모델이 지원하는 [기능](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)의 쉼표로 구분된 목록입니다(예: `effort,thinking`). [모델 구성](/docs/ko/model-config#customize-pinned-model-display-and-capabilities)을 참조하세요 |

181| `ANTHROPIC_FEDERATION_RULE_ID` | [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)의 페더레이션 규칙 ID입니다. `ANTHROPIC_ORGANIZATION_ID`와 함께 설정하면 Claude Code는 페더레이션 자격 증명을 선택하며, 이는 `/login` 자격 증명보다 우선순위가 높습니다. [인증 우선순위](/docs/ko/authentication#authentication-precedence)를 참조하세요 |181| `ANTHROPIC_FEDERATION_RULE_ID` | [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)용 페더레이션 규칙 ID입니다. `ANTHROPIC_ORGANIZATION_ID`와 함께 설정하면 Claude Code는 `/login` 자격 증명보다 우선순위가 높은 페더레이션 자격 증명을 선택합니다. [인증 우선순위](/docs/ko/authentication#authentication-precedence)를 참조하세요 |

182| `ANTHROPIC_FOUNDRY_API_KEY` | Microsoft Foundry 인증용 API 키입니다([Microsoft Foundry](/docs/ko/microsoft-foundry) 참조) |182| `ANTHROPIC_FOUNDRY_API_KEY` | Microsoft Foundry 인증용 API 키입니다([Microsoft Foundry](/docs/ko/microsoft-foundry) 참조) |

183| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Microsoft Entra 액세스 토큰과 같은 Microsoft Foundry 인증용 Bearer 토큰입니다. Claude Code는 이를 `Authorization: Bearer` 헤더로 전송합니다. `ANTHROPIC_FOUNDRY_API_KEY` 및 Azure 기본 자격 증명 체인보다 우선합니다. [Microsoft Foundry](/docs/ko/microsoft-foundry)를 참조하세요. Claude Code v2.1.203 이상이 필요합니다 |183| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Microsoft Entra 액세스 토큰 같은 Microsoft Foundry 인증용 Bearer 토큰입니다. Claude Code는 이를 `Authorization: Bearer` 헤더로 전송합니다. `ANTHROPIC_FOUNDRY_API_KEY` 및 Azure 기본 자격 증명 체인보다 우선합니다. [Microsoft Foundry](/docs/ko/microsoft-foundry)를 참조하세요. Claude Code v2.1.203 이상이 필요합니다 |

184| `ANTHROPIC_FOUNDRY_BASE_URL` | Microsoft Foundry 리소스의 전체 기본 URL입니다(예: `https://my-resource.services.ai.azure.com/anthropic`). `ANTHROPIC_FOUNDRY_RESOURCE`의 대안입니다([Microsoft Foundry](/docs/ko/microsoft-foundry) 참조) |184| `ANTHROPIC_FOUNDRY_BASE_URL` | Microsoft Foundry 리소스의 전체 기본 URL입니다(예: `https://my-resource.services.ai.azure.com/anthropic`). `ANTHROPIC_FOUNDRY_RESOURCE`의 대안입니다([Microsoft Foundry](/docs/ko/microsoft-foundry) 참조) |

185| `ANTHROPIC_FOUNDRY_RESOURCE` | Microsoft Foundry 리소스 이름입니다(예: `my-resource`). Claude Code는 [URL이나 호스트 이름을 거부합니다](/docs/ko/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name). `ANTHROPIC_FOUNDRY_BASE_URL`이 설정되지 않은 경우 필수입니다([Microsoft Foundry](/docs/ko/microsoft-foundry) 참조) |185| `ANTHROPIC_FOUNDRY_RESOURCE` | Microsoft Foundry 리소스 이름입니다(예: `my-resource`). Claude Code는 [URL이나 호스트 이름을 거부합니다](/docs/ko/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name). `ANTHROPIC_FOUNDRY_BASE_URL`이 설정되지 않은 경우 필수입니다([Microsoft Foundry](/docs/ko/microsoft-foundry) 참조) |

186| `ANTHROPIC_MODEL` | 사용할 모델 설정의 이름입니다([모델 구성](/docs/ko/model-config#environment-variables) 참조) |186| `ANTHROPIC_MODEL` | 사용할 모델 설정의 이름입니다([모델 구성](/docs/ko/model-config#environment-variables) 참조) |

187| `ANTHROPIC_ORGANIZATION_ID` | [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)의 조직 ID입니다. `ANTHROPIC_FEDERATION_RULE_ID`와 함께 설정하세요. [인증 우선순위](/docs/ko/authentication#authentication-precedence)를 참조하세요 |187| `ANTHROPIC_ORGANIZATION_ID` | [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)용 조직 ID입니다. `ANTHROPIC_FEDERATION_RULE_ID`와 함께 설정하세요. [인증 우선순위](/docs/ko/authentication#authentication-precedence)를 참조하세요 |

188| `ANTHROPIC_PROFILE` | 인증에 사용할 Anthropic 프로필의 이름입니다. [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication)으로 만들었거나 [API 키 없이 Console 계정에 로그인](/docs/ko/authentication#sign-in-without-an-api-key)하여 만든 프로필 등이 있습니다. [인증 우선순위](/docs/ko/authentication#authentication-precedence)를 참조하세요 |188| `ANTHROPIC_PROFILE` | 인증에 사용할 Anthropic 프로필의 이름입니다. 예를 들어 [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication)으로 생성했거나 [API 키 없이 Console 계정에 로그인](/docs/ko/authentication#sign-in-without-an-api-key)하여 생성한 프로필입니다. [인증 우선순위](/docs/ko/authentication#authentication-precedence)를 참조하세요 |

189| `ANTHROPIC_SMALL_FAST_MODEL` | \[DEPRECATED] [백그라운드 작업용 Haiku급 모델](/docs/ko/costs)의 이름입니다 |189| `ANTHROPIC_SMALL_FAST_MODEL` | \[DEPRECATED] [백그라운드 작업용 Haiku 급 모델](/docs/ko/costs)의 이름입니다 |

190| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Amazon Bedrock 또는 Amazon Bedrock Mantle을 사용할 때 Haiku급 모델의 AWS 리전을 재정의합니다. Amazon Bedrock에서는 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 또는 deprecated된 `ANTHROPIC_SMALL_FAST_MODEL`도 설정된 경우에만 적용됩니다. 그렇지 않으면 Amazon Bedrock은 세션 리전에서 [기본 Sonnet 모델 또는 주 모델](/docs/ko/amazon-bedrock#4-pin-model-versions)로 백그라운드 작업을 실행하기 때문입니다 |190| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Amazon Bedrock 또는 Amazon Bedrock Mantle을 사용할 때 Haiku 급 모델의 AWS 리전을 재정의합니다. Amazon Bedrock에서는 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 또는 deprecated된 `ANTHROPIC_SMALL_FAST_MODEL`도 함께 설정된 경우에만 적용됩니다. 그렇지 않으면 Amazon Bedrock은 세션 리전에서 [기본 Sonnet 모델 또는 주 모델](/docs/ko/amazon-bedrock#4-pin-model-versions)로 백그라운드 작업을 실행하기 때문입니다 |

191| `ANTHROPIC_VERTEX_BASE_URL` | Google Cloud's Agent Platform 엔드포인트 URL을 재정의합니다. 사용자 지정 Google Cloud's Agent Platform 엔드포인트에 사용하거나 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 라우팅할 때 사용합니다. [Google Cloud's Agent Platform](/docs/ko/google-vertex-ai)을 참조하세요 |191| `ANTHROPIC_VERTEX_BASE_URL` | Google Cloud's Agent Platform 엔드포인트 URL을 재정의합니다. 사용자 지정 Google Cloud's Agent Platform 엔드포인트에 사용하거나 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 라우팅할 때 사용합니다. [Google Cloud's Agent Platform](/docs/ko/google-vertex-ai)을 참조하세요 |

192| `ANTHROPIC_VERTEX_PROJECT_ID` | Google Cloud's Agent Platform 요청이 전달되는 GCP 프로젝트 ID입니다. [GCP 자격 증명 구성](/docs/ko/google-vertex-ai#3-configure-gcp-credentials)을 참조하세요 |192| `ANTHROPIC_VERTEX_PROJECT_ID` | Google Cloud's Agent Platform 요청이 전송되는 GCP 프로젝트 ID입니다. [GCP 자격 증명 구성](/docs/ko/google-vertex-ai#3-configure-gcp-credentials)을 참조하세요 |

193| `ANTHROPIC_WORKSPACE_ID` | [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)의 워크스페이스 ID입니다. 페더레이션 규칙의 범위가 둘 이상의 워크스페이스로 지정된 경우, 토큰 교환이 어떤 워크스페이스를 대상으로 할지 알 수 있도록 이 값을 설정하세요 |193| `ANTHROPIC_WORKSPACE_ID` | [워크로드 아이덴티티 페더레이션](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)용 워크스페이스 ID입니다. 페더레이션 규칙의 범위가 둘 이상의 워크스페이스로 지정된 경우, 토큰 교환에서 대상 워크스페이스를 알 수 있도록 이 값을 설정하세요 |

194| `API_FORCE_IDLE_TIMEOUT` | 바이트가 도착하지 않을 때 스트리밍 모델 응답을 중단하는 5분 본문 유휴 타임아웃을 재정의합니다. 느린 [게이트웨이](/docs/ko/llm-gateway)나 로컬 모델이 청크 사이에서 5분 넘게 멈추는 경우처럼 타임아웃을 끄려면 `0`으로 설정하고, 모든 제공업체에서 켜 두려면 `1`로 설정하세요. 설정하지 않으면 직접 연결된 Anthropic API, [Claude Platform on AWS](/docs/ko/claude-platform-on-aws), 그리고 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`이 설정된 Amazon Bedrock을 제외한 제공업체에서 타임아웃이 활성화됩니다. [스트림 워치독](/docs/ko/network-config#streaming-idle-watchdogs)은 이와 독립적으로 실행되며, 여기에 `0`을 설정해도 오랜 무응답 일시 정지를 중단합니다 |194| `API_FORCE_IDLE_TIMEOUT` | 바이트가 도착하지 않을 때 스트리밍 모델 응답을 중단하는 5분 본문 유휴 타임아웃을 재정의합니다. 예를 들어 느린 [게이트웨이](/docs/ko/llm-gateway)나 로컬 모델이 청크 사이에 5분 넘게 멈추는 경우 `0`으로 설정하면 타임아웃이 꺼지고, `1`로 설정하면 모든 제공업체에서 타임아웃이 켜진 상태로 유지됩니다. 설정하지 않으면 직접 연결한 Anthropic API, [Claude Platform on AWS](/docs/ko/claude-platform-on-aws), 그리고 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`이 설정된 Amazon Bedrock을 제외한 제공업체에서 타임아웃이 활성화됩니다. [스트림 워치독](/docs/ko/network-config#streaming-idle-watchdogs)은 이와 독립적으로 실행되며, 여기에 `0`을 설정해도 긴 무응답 일시 중지를 중단합니다 |

195| `API_TIMEOUT_MS` | API 요청의 타임아웃(밀리초)입니다(기본값: 600000, 즉 10분; 최댓값: 2147483647). 느린 네트워크에서 요청이 시간 초과되거나 프록시를 통해 라우팅할 때 이 값을 늘리세요. 최댓값을 초과하는 값은 내부 타이머를 오버플로시켜 요청이 즉시 실패하게 됩니다 |195| `API_TIMEOUT_MS` | API 요청의 타임아웃(밀리초)입니다(기본값: 600000, 즉 10분; 최댓값: 2147483647). 느린 네트워크에서 요청이 시간 초과되거나 프록시를 통해 라우팅할 때 이 값을 늘리세요. 최댓값을 초과하는 값은 기본 타이머를 오버플로시켜 요청이 즉시 실패하게 됩니다 |

196| `AWS_BEARER_TOKEN_BEDROCK` | 인증용 Amazon Bedrock API 키입니다([Amazon Bedrock API 키](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/) 참조) |196| `AWS_BEARER_TOKEN_BEDROCK` | 인증용 Amazon Bedrock API 키입니다([Amazon Bedrock API 키](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/) 참조) |

197| `BASH_DEFAULT_TIMEOUT_MS` | 포그라운드 Bash 또는 PowerShell 도구 명령의 기본 타임아웃(밀리초)입니다(기본값: 120000, 즉 2분). 30분보다 긴 기본값은 무인 세션에서 [백그라운드 명령의 시간 제한](/docs/ko/tools-reference#time-limit-for-background-commands) 기본값도 됩니다. 백그라운드 시간 제한에는 Claude Code v2.1.285 이상이 필요합니다 |197| `BASH_DEFAULT_TIMEOUT_MS` | 포그라운드 Bash 또는 PowerShell 도구 명령의 기본 타임아웃(밀리초)입니다(기본값: 120000, 즉 2분). [백그라운드 명령의 기본 시간 제한](/docs/ko/tools-reference#time-limit-for-background-commands)보다 큰 값은 무인 세션에서 해당 기본값을 대체합니다. 백그라운드 시간 제한에는 Claude Code v2.1.285 이상이 필요합니다 |

198| `BASH_MAX_OUTPUT_LENGTH` | Claude Code가 명령 결과로 다시 읽어들이는 bash 출력의 최대 문자 수입니다(기본값: 30000; 최댓값: 150000). [`bashOutputMaxChars`](/docs/ko/settings-reference#bashoutputmaxchars) 설정을 지정하면 Claude Code는 이 변수를 무시합니다. [출력 제한](/docs/ko/tools-reference#output-limits)을 참조하세요 |198| `BASH_MAX_OUTPUT_LENGTH` | Claude Code가 명령 결과로 다시 읽어 들이는 bash 출력의 최대 문자 수입니다(기본값: 30000; 최댓값: 150000). [`bashOutputMaxChars`](/docs/ko/settings-reference#bashoutputmaxchars) 설정을 지정하면 Claude Code는 이 변수를 무시합니다. [출력 제한](/docs/ko/tools-reference#output-limits)을 참조하세요 |

199| `BASH_MAX_TIMEOUT_MS` | 모델이 포그라운드 Bash 또는 PowerShell 도구 명령에 설정할 수 있는 최대 타임아웃(밀리초)입니다(기본값: 600000, 즉 10분). 실효 상한은 이 값과 `BASH_DEFAULT_TIMEOUT_MS` 중 큰 값입니다. 2시간보다 긴 실효 상한은 무인 세션에서 [백그라운드 명령의 시간 제한](/docs/ko/tools-reference#time-limit-for-background-commands) 최댓값도 됩니다. 백그라운드 시간 제한에는 Claude Code v2.1.285 이상이 필요합니다 |199| `BASH_MAX_TIMEOUT_MS` | 모델이 포그라운드 Bash 또는 PowerShell 도구 명령에 설정할 수 있는 최대 타임아웃(밀리초)입니다(기본값: 600000, 즉 10분). 실질적인 상한은 이 값과 `BASH_DEFAULT_TIMEOUT_MS` 중 더 큰 값입니다. 실질적인 상한이 2시간보다 길면 무인 세션에서 [백그라운드 명령의 시간 제한](/docs/ko/tools-reference#time-limit-for-background-commands)의 최댓값도 됩니다. 백그라운드 시간 제한에는 Claude Code v2.1.285 이상이 필요합니다 |

200| `BETA_TRACING_ENDPOINT` | [상세 베타 트레이싱](/docs/ko/monitoring-usage#traces-beta)을 위한 OTLP/HTTP 엔드포인트입니다. `ENABLE_BETA_TRACING_DETAILED=1`과 함께 사용하면 로그와 트레이스가 구성된 익스포터 대신 이곳으로 전송됩니다. 셸, 사용자 설정 또는 관리형 설정에서 설정하세요. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |200| `BETA_TRACING_ENDPOINT` | [상세 베타 트레이싱](/docs/ko/monitoring-usage#traces-beta)용 OTLP/HTTP 엔드포인트입니다. `ENABLE_BETA_TRACING_DETAILED=1`과 함께 사용하면 로그와 트레이스가 구성된 익스포터 대신 이곳으로 전송됩니다. 셸, 사용자 설정 또는 관리형 설정에서 설정하세요. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |

201| `CCR_FORCE_BUNDLE` | `1`로 설정하면 [`claude --cloud`](/docs/ko/claude-code-on-the-web#send-local-repositories-without-github)가 원격에서 클론하는 대신 로컬 저장소를 번들로 묶어 업로드하도록 강제합니다 |201| `CCR_FORCE_BUNDLE` | `1`로 설정하면 [`claude --cloud`](/docs/ko/claude-code-on-the-web#send-local-repositories-without-github)가 원격에서 클론하는 대신 로컬 저장소를 번들로 묶어 업로드하도록 강제합니다 |

202| `CLAUDECODE` | Claude Code가 생성하는 하위 프로세스(Bash 및 PowerShell 도구, tmux 세션, [훅](/docs/ko/hooks) 명령, [상태줄](/docs/ko/statusline) 명령, stdio [MCP 서버](/docs/ko/mcp) 하위 프로세스)에서 `1`로 설정됩니다. IDE 확장 프로그램도 통합 터미널에서 이 변수를 설정합니다. 스크립트가 Claude Code에서 생성된 하위 프로세스 내부에서 실행 중인지 감지하는 데 사용합니다. 현재 프로세스가 Claude Code가 시작한 stdio MCP 서버 내부가 아니라 도구 호출이나 훅에 의해 직접 생성되었는지 확인하려면 대신 `CLAUDE_CODE_CHILD_SESSION`을 사용하세요 |202| `CLAUDECODE` | Claude Code가 생성하는 하위 프로세스(Bash 및 PowerShell 도구, tmux 세션, [훅](/docs/ko/hooks) 명령, [상태줄](/docs/ko/statusline) 명령, stdio [MCP 서버](/docs/ko/mcp) 하위 프로세스)에서 `1`로 설정됩니다. IDE 확장도 통합 터미널에서 이 변수를 설정합니다. 스크립트가 Claude Code가 생성한 하위 프로세스 안에서 실행 중인지 감지하는 데 사용하세요. 현재 프로세스가 Claude Code가 시작한 stdio MCP 서버 내부가 아니라 도구 호출이나 훅에 의해 직접 생성되었는지 확인하려면 대신 `CLAUDE_CODE_CHILD_SESSION`을 사용하세요 |

203| `CLAUDE_AFK_COUNTDOWN_MS` | 응답하지 않은 [`AskUserQuestion`](/docs/ko/tools-reference) 대화상자에서 자동 계속 몇 밀리초 전에 화면 카운트다운이 나타나는지 지정합니다. 기본값은 `20000`(20초)이며, 자동 계속 타임아웃을 상한으로 합니다. 자동 계속이 켜져 있지 않으면 효과가 없습니다. [`askUserQuestionTimeout`](/docs/ko/settings-reference#askuserquestiontimeout) 설정과 `CLAUDE_AFK_TIMEOUT_MS`를 참조하세요. Claude Code v2.1.198 이상이 필요합니다 |203| `CLAUDE_AFK_COUNTDOWN_MS` | 응답하지 않은 [`AskUserQuestion`](/docs/ko/tools-reference) 대화상자에서 자동 계속 몇 밀리초 전부터 화면 카운트다운이 표시되는지 지정합니다. 기본값은 `20000`(20초)이며 자동 계속 타임아웃을 넘지 않습니다. 자동 계속이 켜져 있지 않으면 효과가 없습니다. [`askUserQuestionTimeout`](/docs/ko/settings-reference#askuserquestiontimeout) 설정과 `CLAUDE_AFK_TIMEOUT_MS`를 참조하세요. Claude Code v2.1.198 이상이 필요합니다 |

204| `CLAUDE_AFK_TIMEOUT_MS` | 응답하지 않은 [`AskUserQuestion`](/docs/ko/tools-reference) 대화상자가 사용자 응답 없이 자동으로 계속되기까지의 유휴 시간(밀리초)입니다. 자동 계속은 기본적으로 꺼져 있으며, [`askUserQuestionTimeout`](/docs/ko/settings-reference#askuserquestiontimeout) 설정으로 사용하도록 선택할 수 있습니다. 이 변수는 데모와 자동화된 테스트를 위한 재정의입니다. 설정하면 해당 설정보다 우선하며, 설정이 지정되지 않았거나 `never`인 경우에도 자동 계속을 켭니다. `0`으로 설정해도 타임아웃이 꺼지지 않고 대화상자가 즉시 닫힙니다. v2.1.198과 v2.1.199에서는 자동 계속이 `60000`(60초) 타임아웃으로 기본적으로 켜져 있었습니다. Claude Code v2.1.198 이상이 필요합니다 |204| `CLAUDE_AFK_TIMEOUT_MS` | 응답하지 않은 [`AskUserQuestion`](/docs/ko/tools-reference) 대화상자가 사용자 응답 없이 자동으로 계속되기까지의 유휴 시간(밀리초)입니다. 자동 계속은 기본적으로 꺼져 있으며, [`askUserQuestionTimeout`](/docs/ko/settings-reference#askuserquestiontimeout) 설정으로 사용하도록 선택할 수 있습니다. 이 변수는 데모와 자동화 테스트용 재정의입니다. 설정하면 해당 설정보다 우선하며, 설정이 지정되지 않았거나 `never`인 경우에도 자동 계속을 켭니다. `0`으로 설정해도 타임아웃이 꺼지지 않으며, 대화상자가 즉시 닫힙니다. v2.1.198 및 v2.1.199에서는 자동 계속이 `60000`(60초) 타임아웃으로 기본적으로 켜져 있었습니다. Claude Code v2.1.198 이상이 필요합니다 |

205| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | `1`로 설정하면 Explore, Plan 등 모든 기본 제공 [서브에이전트](/docs/ko/sub-agents) 유형이 비활성화됩니다. 비대화형 모드(`-p` 플래그)에서만 적용됩니다. 빈 상태에서 시작하려는 SDK 사용자에게 유용합니다. 이 설정은 Agent 도구 호출에서 `subagent_type`이 생략되었을 때 Claude Code가 실행하는 서브에이전트인 `general-purpose`도 제거합니다. 그러면 이러한 호출은 [`subagent_type is required`](/docs/ko/errors#subagent-type-is-required) 오류와 함께 실패합니다 |205| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | `1`로 설정하면 Explore 및 Plan 같은 모든 기본 제공 [서브에이전트](/docs/ko/sub-agents) 유형을 비활성화합니다. 비대화형 모드(`-p` 플래그)에서만 적용됩니다. 빈 상태에서 시작하려는 SDK 사용자에게 유용합니다. 이 설정은 Agent 도구 호출에서 `subagent_type`이 생략되었을 때 Claude Code가 실행하는 서브에이전트인 `general-purpose`도 제거합니다. 그러면 그러한 호출은 [`subagent_type is required`](/docs/ko/errors#subagent-type-is-required)와 함께 실패합니다 |

206| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | `1`로 설정하면 SDK로 생성한 MCP 서버의 도구 이름에서 `mcp__<server>__` 접두사를 생략합니다. 도구는 원래 이름을 사용합니다. SDK 사용 시에만 해당됩니다 |206| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | `1`로 설정하면 SDK로 생성한 MCP 서버의 도구 이름에서 `mcp__<server>__` 접두사를 생략합니다. 도구는 원래 이름을 사용합니다. SDK 사용 시에만 해당됩니다 |

207| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | 서브에이전트의 정체 타임아웃(밀리초)입니다. 기본값은 `600000`(10분)이며, 스트림 워치독이 켜진 상태에서 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`를 늘리면 [느리거나 정체된 API 응답 처리](/docs/ko/agent-sdk/typescript#handle-slow-or-stalled-api-responses)에 설명된 대로 기본값도 함께 늘어납니다. 타이머는 각 스트리밍 진행 이벤트마다 재설정되며, 기간 내에 진행이 없으면 Claude Code는 서브에이전트를 중단하고 정체 사실을 상위 에이전트에 보고합니다 |207| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | 서브에이전트의 정체 타임아웃(밀리초)입니다. 기본값은 `600000`(10분)이며, 스트림 워치독이 켜진 상태에서 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`를 높이면 [느리거나 정체된 API 응답 처리](/docs/ko/agent-sdk/typescript#handle-slow-or-stalled-api-responses)에 설명된 대로 기본값도 함께 올라갑니다. 타이머는 각 스트리밍 진행 이벤트마다 재설정되며, 해당 시간 내에 진행이 없으면 Claude Code는 서브에이전트를 중단하고 상위 에이전트에 정체를 보고합니다 |

208| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | 자동 압축이 트리거되는 자동 압축 윈도우의 비율(1-100)을 설정합니다. 더 일찍 압축하려면 `50`과 같은 낮은 값을 사용하세요. 이 변수는 임계값을 높일 수 없으므로 기본 비율보다 높은 값은 무시됩니다. [모델의 컨텍스트 한도 전에 압축하는](/docs/ko/model-config#context-window-and-auto-compaction) 세션에서만 적용됩니다. 메인 대화와 서브에이전트 모두에 적용됩니다 |208| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | 자동 압축이 트리거되는 자동 압축 윈도우의 비율(1-100)을 설정합니다. 더 일찍 압축하려면 `50` 같은 낮은 값을 사용하세요. 이 변수는 임계값을 높일 수 없으므로 기본 비율보다 높은 값은 무시됩니다. [모델의 컨텍스트 한도 전에 압축하는](/docs/ko/model-config#context-window-and-auto-compaction) 세션에서만 적용됩니다. 메인 대화와 서브에이전트 모두에 적용됩니다 |

209| `CLAUDE_AUTO_BACKGROUND_TASKS` | `1`로 설정하면 장시간 실행되는 에이전트 작업의 자동 백그라운드 전환을 강제로 활성화합니다. 활성화하면 서브에이전트가 약 2분 동안 실행된 후 백그라운드로 이동합니다. Claude Code v2.1.212 이상에서는 비대화형 모드에서 [긴 MCP 도구 호출의 자동 백그라운드 전환](/docs/ko/mcp#automatic-backgrounding-of-long-tool-calls)도 활성화합니다 |209| `CLAUDE_AUTO_BACKGROUND_TASKS` | `1`로 설정하면 장시간 실행되는 에이전트 작업의 자동 백그라운드 전환을 강제로 활성화합니다. 활성화하면 서브에이전트가 약 2분간 실행된 후 백그라운드로 이동합니다. Claude Code v2.1.212 이상에서는 비대화형 모드에서 [긴 MCP 도구 호출의 자동 백그라운드 전환](/docs/ko/mcp#automatic-backgrounding-of-long-tool-calls)도 활성화합니다 |

210| `CLAUDE_AX_PREPARK_MS` | [스크린 리더 모드](/docs/ko/accessibility)에서 Claude Code가 새 줄이나 변경된 줄을 쓰기 전에 대기하는 시간(밀리초)입니다. 기본값은 `0`이므로 Claude Code는 대기하지 않습니다. v2.1.287 이전에는 기본값이 `50`이었습니다. Claude Code는 대기 시간을 최대 `5000`으로 제한합니다. Claude Code v2.1.233 이상이 필요합니다 |210| `CLAUDE_AX_PREPARK_MS` | [화면 읽기 프로그램 모드](/docs/ko/accessibility)에서 Claude Code가 새 줄이나 변경된 줄을 쓰기 전에 대기하는 시간(밀리초)입니다. 기본값은 `0`이므로 Claude Code는 대기하지 않습니다. v2.1.287 이전에는 기본값이 `50`이었습니다. Claude Code는 대기 시간을 최대 `5000`으로 제한합니다. Claude Code v2.1.233 이상이 필요합니다 |

211| `CLAUDE_AX_SCREEN_READER` | `1`로 설정하면 장식용 테두리나 애니메이션이 없는 평면 텍스트 형태의 스크린 리더 친화적 출력을 렌더링합니다. [`axScreenReader`](/docs/ko/settings-reference#axscreenreader)가 `true`인 경우에도 스크린 리더 모드를 강제로 끄려면 `0`으로 설정하세요. [`--ax-screen-reader`](/docs/ko/cli-reference#cli-flags) 플래그가 우선합니다. Claude Code v2.1.181 이상이 필요합니다 |211| `CLAUDE_AX_SCREEN_READER` | `1`로 설정하면 장식용 테두리나 애니메이션 없는 평문 텍스트로, 화면 읽기 프로그램에 적합한 출력을 렌더링합니다. [`axScreenReader`](/docs/ko/settings-reference#axscreenreader)가 `true`인 경우에도 화면 읽기 프로그램 모드를 강제로 끄려면 `0`으로 설정하세요. [`--ax-screen-reader`](/docs/ko/cli-reference#cli-flags) 플래그가 우선합니다. Claude Code v2.1.181 이상이 필요합니다 |

212| `CLAUDE_AX_STARTUP_QUIET_MS` | [스크린 리더 모드](/docs/ko/accessibility)에서 시작 확인 줄 이후 Claude Code가 첫 인터페이스 렌더링을 보류하는 시간(밀리초)으로, 새 출력이 끼어들기 전에 스크린 리더가 해당 줄을 끝까지 읽을 수 있도록 합니다. 기본값은 `3000`입니다. 즉시 렌더링하려면 `0`으로 설정하세요. Claude Code는 보류 시간을 최대 `600000`(10분)으로 제한합니다. 첫 키 입력 시 보류가 일찍 종료됩니다. Claude Code v2.1.217 이상이 필요합니다 |212| `CLAUDE_AX_STARTUP_QUIET_MS` | [화면 읽기 프로그램 모드](/docs/ko/accessibility)에서 시작 확인 줄 이후 첫 인터페이스 렌더링을 Claude Code가 보류하는 시간(밀리초)으로, 새 출력이 끼어들기 전에 화면 읽기 프로그램이 해당 줄을 끝까지 읽을 수 있게 합니다. 기본값은 `3000`입니다. 즉시 렌더링하려면 `0`으로 설정하세요. Claude Code는 보류 시간을 최대 `600000`(10분)으로 제한합니다. 첫 키 입력 시 보류가 일찍 종료됩니다. Claude Code v2.1.217 이상이 필요합니다 |

213| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | 메인 세션에서 각 Bash 또는 PowerShell 명령 후 원래 작업 디렉터리로 돌아갑니다 |213| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | 메인 세션에서 각 Bash 또는 PowerShell 명령 후 원래 작업 디렉터리로 돌아갑니다 |

214| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | 바이트 수준 스트리밍 유휴 워치독의 타임아웃(밀리초)입니다. 설정하면 해당 워치독에 대해 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`보다 우선하며, 이벤트 수준 워치독은 변경하지 않습니다. Claude Code는 이 변수를 10초에서 30분 사이로 제한합니다. Claude Code v2.1.210 이상이 필요합니다 |214| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | 바이트 수준 스트리밍 유휴 워치독의 타임아웃(밀리초)입니다. 설정하면 해당 워치독에 대해 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`보다 우선하며, 이벤트 수준 워치독은 변경되지 않습니다. Claude Code는 이 변수를 10초에서 30분 사이로 제한합니다. Claude Code v2.1.210 이상이 필요합니다 |

215| `CLAUDE_CLIENT_PRESENCE_FILE` | 화면 잠금 리스너와 같은 외부 도구가 화면 잠금을 해제할 때 생성하고 잠글 때 삭제하는 파일의 경로입니다. 파일이 존재하는 동안 Claude Code는 [Remote Control 모바일 푸시 알림](/docs/ko/remote-control#mobile-push-notifications)을 건너뛰므로, 컴퓨터를 실제로 사용하는 동안에는 푸시를 받지 않습니다. 파일이 없거나 읽을 수 없으면 알림이 평소대로 전송됩니다. Claude Code는 파일을 폴링하지 않고 푸시를 트리거하는 이벤트마다 한 번씩 확인합니다. Claude Code v2.1.181 이상이 필요합니다 |215| `CLAUDE_CLIENT_PRESENCE_FILE` | 화면 잠금 리스너 같은 외부 도구가 화면 잠금을 해제할 때 생성하고 화면을 잠글 때 삭제하는 파일의 경로입니다. 파일이 존재하는 동안 Claude Code는 [Remote Control 모바일 푸시 알림](/docs/ko/remote-control#mobile-push-notifications)을 건너뛰므로, 컴퓨터를 활발히 사용하는 동안에는 푸시를 받지 않습니다. 파일이 없거나 읽을 수 없으면 알림이 평소대로 전송됩니다. Claude Code는 파일을 폴링하지 않고 푸시를 유발하는 이벤트마다 한 번씩 확인합니다. Claude Code v2.1.181 이상이 필요합니다 |

216| `CLAUDE_CODE_ACCESSIBILITY` | `1`로 설정하면 네이티브 터미널 커서를 계속 표시하고 반전 텍스트 커서 표시기를 비활성화합니다. macOS 확대/축소(Zoom) 같은 화면 돋보기가 커서 위치를 추적할 수 있게 합니다 |216| `CLAUDE_CODE_ACCESSIBILITY` | `1`로 설정하면 네이티브 터미널 커서를 계속 표시하고 반전 텍스트 커서 표시기를 비활성화합니다. macOS 확대/축소 같은 화면 돋보기가 커서 위치를 추적할 수 있게 합니다 |

217| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | `1`로 설정하면 `--add-dir`로 지정한 디렉터리에서 메모리 파일을 로드합니다. `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md`, `CLAUDE.local.md`를 로드합니다. 기본적으로 추가 디렉터리에서는 메모리 파일을 로드하지 않습니다 |217| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | `1`로 설정하면 `--add-dir`로 지정한 디렉터리에서 메모리 파일을 로드합니다. `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md`, `CLAUDE.local.md`를 로드합니다. 기본적으로 추가 디렉터리는 메모리 파일을 로드하지 않습니다 |

218| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | `1`로 설정하면 [전체 화면 렌더링](/docs/ko/fullscreen)에서 증분 업데이트를 보내는 대신 매 프레임마다 전체 화면을 다시 그립니다. 전체 화면 모드에서 오래되었거나 잘못 배치된 텍스트 조각이 보이면 이 변수를 사용하세요. Claude Code는 Windows의 백그라운드 세션과 [에이전트 뷰](/docs/ko/agent-view)에서 이 기능을 자동으로 활성화합니다 |218| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | `1`로 설정하면 [전체 화면 렌더링](/docs/ko/fullscreen)에서 증분 업데이트를 보내는 대신 매 프레임마다 전체 화면을 다시 그립니다. 전체 화면 모드에서 오래되었거나 잘못 배치된 텍스트 조각이 표시되면 이 변수를 사용하세요. Windows의 백그라운드 세션과 [에이전트 뷰](/docs/ko/agent-view)에서는 Claude Code가 이를 자동으로 활성화합니다 |

219| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | `1`로 설정하면 Claude Code가 모델 ID를 effort 지원 모델로 인식하지 못하는 경우에도 모든 요청에 [effort](/docs/ko/model-config#adjust-effort-level) 매개변수를 전송합니다. 사용자 지정 식별자로 모델을 제공하는 [LLM 게이트웨이](/docs/ko/llm-gateway)나 서드파티 제공업체를 통해 라우팅할 때 사용하세요. Claude 3 모델, Sonnet 4.0 및 4.5, Opus 4.0 및 4.1, Haiku 4.5를 포함하여 API에서 effort 매개변수를 거부하는 모델은 요청이 실패하지 않도록 여전히 제외됩니다 |219| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | `1`로 설정하면 Claude Code가 모델 ID를 effort 지원 모델로 인식하지 못하는 경우에도 모든 요청에 [effort](/docs/ko/model-config#adjust-effort-level) 매개변수를 전송합니다. 사용자 지정 식별자로 모델을 제공하는 [LLM 게이트웨이](/docs/ko/llm-gateway)나 서드파티 제공업체를 통해 라우팅할 때 사용하세요. Claude 3 모델, Sonnet 4.0 및 4.5, Opus 4.0 및 4.1, Haiku 4.5를 포함해 API에서 effort 매개변수를 거부하는 모델은 요청이 실패하지 않도록 계속 제외됩니다 |

220| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | 자격 증명을 새로 고치는 간격(밀리초)입니다([`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 사용 시) |220| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | 자격 증명을 새로 고쳐야 하는 간격(밀리초)입니다([`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 사용 시) |

221| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | `0`으로 설정하면 새 [아티팩트](/docs/ko/artifacts#create-an-artifact)가 게시될 때 Claude Code가 브라우저를 자동으로 열지 않습니다 |221| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | `0`으로 설정하면 새 [아티팩트](/docs/ko/artifacts#create-an-artifact)가 게시될 때 Claude Code가 브라우저를 자동으로 열지 않습니다 |

222| `CLAUDE_CODE_ARTIFACT_COMMENTS` | `0`으로 설정하면 Claude가 [아티팩트의 댓글](/docs/ko/artifacts#collect-comments-on-an-artifact)을 읽고 답글을 다는 동작을 중지합니다. `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 [아티팩트를 끈](/docs/ko/artifacts#availability) 경우에는 효과가 없습니다. Claude Code v2.1.221 이상이 필요합니다 |222| `CLAUDE_CODE_ARTIFACT_COMMENTS` | `0`으로 설정하면 Claude가 [아티팩트의 댓글](/docs/ko/artifacts#collect-comments-on-an-artifact)을 읽고 답하지 않습니다. `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 [아티팩트를 끈](/docs/ko/artifacts#availability) 경우에는 효과가 없습니다. Claude Code v2.1.221 이상이 필요합니다 |

223| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | `0`으로 설정하면 Claude가 [자신에게 전송된 댓글에 스스로 답글을 다는](/docs/ko/artifacts#let-claude-reply-to-comments-on-its-own) 동작을 중지합니다. Claude Code v2.1.228 이상이 필요합니다 |223| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | `0`으로 설정하면 Claude가 [자신에게 전송된 댓글에 스스로 답하지](/docs/ko/artifacts#let-claude-reply-to-comments-on-its-own) 않습니다. Claude Code v2.1.228 이상이 필요합니다 |

224| `CLAUDE_CODE_ATTRIBUTION_HEADER` | `0`으로 설정하면 클라이언트 버전과 프롬프트 지문을 담은 [어트리뷰션 블록](/docs/ko/llm-gateway-protocol#system-prompt-attribution-block)을 시스템 프롬프트 시작 부분에서 생략합니다. Anthropic API에 직접 연결할 때의 캐싱은 어느 쪽이든 영향을 받지 않습니다. 일부 직접 연결 설정에서는 `0`으로 설정해도 Claude Code가 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode) 분류기 요청에 블록을 유지합니다. 이것이 적용되는 연결과 자격 증명은 [시스템 프롬프트 어트리뷰션 블록](/docs/ko/llm-gateway-protocol#system-prompt-attribution-block)에서 확인하세요. v2.1.181 이전에는 사용자 지정 기본 URL과 Microsoft Foundry 연결에서 블록에 요청별 토큰이 포함되었으므로, 해당 버전에서는 LLM 게이트웨이가 요청 본문을 기준으로 캐싱하거나 요청을 서드파티 제공업체로 전달하는 경우, 또는 Microsoft Foundry에 직접 연결하는 경우 `0`으로 설정하세요 |224| `CLAUDE_CODE_ATTRIBUTION_HEADER` | `0`으로 설정하면 클라이언트 버전과 프롬프트 지문을 담은 [귀속 블록](/docs/ko/llm-gateway-protocol#system-prompt-attribution-block)을 시스템 프롬프트 시작 부분에서 생략합니다. Anthropic API에 직접 연결한 경우의 캐싱은 어느 쪽이든 영향을 받지 않습니다. 일부 직접 연결 구성에서는 `0`으로 설정해도 Claude Code가 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode) 분류기 요청에 블록을 유지합니다. 이것이 적용되는 연결과 자격 증명은 [시스템 프롬프트 귀속 블록](/docs/ko/llm-gateway-protocol#system-prompt-attribution-block)에서 확인하세요. v2.1.181 이전에는 사용자 지정 기본 URL과 Microsoft Foundry 연결에서 블록에 요청별 토큰이 포함되었으므로, 해당 버전에서는 LLM 게이트웨이가 요청 본문 기반으로 캐싱하거나 서드파티 제공업체로 요청을 전달하는 경우, 또는 Microsoft Foundry에 직접 연결하는 경우 `0`으로 설정하세요 |

225| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | v2.1.283에서 제거되었습니다. 대신 `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE`을 사용하세요 |225| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | v2.1.283에서 제거되었습니다. 대신 `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE`을 사용하세요 |

226| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | [자동 압축 윈도우](/docs/ko/model-config#set-the-auto-compact-window)를 토큰 단위로 `100000`에서 `1000000` 사이로 설정합니다. `500000`과 같은 일반 정수만 허용됩니다. `500k` 같은 값은 `500`으로 읽혀 최솟값인 100K로 고정됩니다. 실효 윈도우는 모델의 컨텍스트 윈도우를 상한으로 합니다. `/autocompact` 명령, `--autocompact` 플래그, `autoCompactWindow` 설정보다 우선합니다. 상태줄의 `used_percentage`는 항상 모델의 전체 컨텍스트 윈도우를 기준으로 측정하므로, 이 변수를 설정하면 해당 비율은 더 이상 압축이 실행될 시점을 나타내지 않습니다 |226| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | [자동 압축 윈도우](/docs/ko/model-config#set-the-auto-compact-window)를 토큰 단위로 `100000`에서 `1000000` 사이로 설정합니다. `500000` 같은 일반 정수만 허용됩니다. `500k` 같은 값은 `500`으로 읽혀 최솟값인 100K로 고정됩니다. 실제 윈도우는 모델의 컨텍스트 윈도우로도 상한이 정해집니다. `/autocompact` 명령, `--autocompact` 플래그, `autoCompactWindow` 설정보다 우선합니다. 상태줄의 `used_percentage`는 항상 모델의 전체 컨텍스트 윈도우를 기준으로 측정하므로, 이 변수를 설정하면 해당 비율은 더 이상 압축이 실행될 시점을 나타내지 않습니다 |

227| `CLAUDE_CODE_AUTO_CONNECT_IDE` | 자동 [IDE 연결](/docs/ko/vs-code)을 재정의합니다. 기본적으로 Claude Code는 지원되는 IDE의 통합 터미널 내에서 실행될 때 자동으로 연결됩니다. 이를 막으려면 `false`로 설정하세요. tmux가 상위 터미널을 가리는 경우처럼 자동 감지가 실패할 때 연결 시도를 강제하려면 `true`로 설정하세요. [`autoConnectIde`](/docs/ko/settings-reference#autoconnectide) 전역 구성 설정보다 우선합니다 |227| `CLAUDE_CODE_AUTO_CONNECT_IDE` | 자동 [IDE 연결](/docs/ko/vs-code)을 재정의합니다. 기본적으로 Claude Code는 지원되는 IDE의 통합 터미널에서 실행될 때 자동으로 연결됩니다. 이를 막으려면 `false`로 설정하세요. tmux가 상위 터미널을 가리는 경우처럼 자동 감지가 실패할 때 연결을 강제로 시도하려면 `true`로 설정하세요. [`autoConnectIde`](/docs/ko/settings-reference#autoconnectide) 전역 구성 설정보다 우선합니다 |

228| `CLAUDE_CODE_AUTO_MODE_SERVER` | Claude Code가 서버에 [자동 모드 작업 검토](/docs/ko/permission-modes#server-side-classifier-review)를 요청할지 제어합니다. 대신 Claude Code 자체 분류기 요청을 사용하려면 `0`으로 설정하세요. Anthropic API에 직접 연결하는 경우 v2.1.281 이상이 필요합니다. 링크된 섹션에는 변수가 설정되지 않았을 때 어떤 세션이 서버에 요청하는지, 그리고 어느 버전부터인지가 나와 있습니다. Claude Code v2.1.271 이상이 필요합니다 |228| `CLAUDE_CODE_AUTO_MODE_SERVER` | Claude Code가 서버에 [자동 모드 작업 검토](/docs/ko/permission-modes#server-side-classifier-review)를 요청할지 제어합니다. 대신 Claude Code 자체 분류기 요청을 사용하려면 `0`으로 설정하세요. Anthropic API에 직접 연결한 경우 v2.1.281 이상이 필요합니다. 링크된 섹션에 변수가 설정되지 않았을 때 어떤 세션이 어느 버전부터 서버에 요청하는지 나와 있습니다. Claude Code v2.1.271 이상이 필요합니다 |

229| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | 요청이 [`AWS default-chain credential resolve timed out`](/docs/ko/errors#aws-default-chain-credential-resolve-timed-out) 오류로 실패하기 전에 Claude Code가 AWS 기본 자격 증명 공급자 체인이 자격 증명을 생성하기를 기다리는 시간(밀리초)입니다(기본값: `60000`). `aws-vault` 같은 래퍼를 통한 MFA 포함 브라우저 기반 SSO 로그인처럼 체인의 단계가 정당하게 더 오래 걸리는 경우 이 값을 늘리세요. Amazon Bedrock, [Claude Platform on AWS](/docs/ko/claude-platform-on-aws), [Mantle 엔드포인트](/docs/ko/amazon-bedrock#use-the-mantle-endpoint)에 적용됩니다. [자격 증명 캐싱 및 확인 타임아웃](/docs/ko/amazon-bedrock#credential-caching-and-resolution-timeout)을 참조하세요. Claude Code v2.1.207 이상이 필요합니다 |229| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | 요청이 [`AWS default-chain credential resolve timed out`](/docs/ko/errors#aws-default-chain-credential-resolve-timed-out)으로 실패하기 전에 Claude Code가 AWS 기본 자격 증명 공급자 체인이 자격 증명을 생성하기를 기다리는 시간(밀리초)입니다(기본값: `60000`). `aws-vault` 같은 래퍼를 통한 MFA 포함 브라우저 기반 SSO 로그인처럼 체인의 단계가 실제로 더 오래 걸리는 경우 값을 늘리세요. Amazon Bedrock, [Claude Platform on AWS](/docs/ko/claude-platform-on-aws), [Mantle 엔드포인트](/docs/ko/amazon-bedrock#use-the-mantle-endpoint)에 적용됩니다. [자격 증명 캐싱 및 확인 타임아웃](/docs/ko/amazon-bedrock#credential-caching-and-resolution-timeout)을 참조하세요. Claude Code v2.1.207 이상이 필요합니다 |

230| `CLAUDE_CODE_BASH_EDIT_DIFF` | [Bash 명령이 실행되는 동안 변경된 파일의 diff](/docs/ko/hooks#bash)를 끄려면 `0`으로, 모든 권한 모드에서 기록하려면 `1`로 설정하세요. [`bashEditDiffEnabled`](/docs/ko/settings-reference#basheditdiffenabled) 설정보다 우선합니다. Claude Code v2.1.269 이상이 필요합니다 |230| `CLAUDE_CODE_BASH_EDIT_DIFF` | `0`으로 설정하면 [Bash 명령 실행 중 변경된 파일의 diff](/docs/ko/hooks#bash)를 끄고, `1`로 설정하면 모든 권한 모드에서 이를 기록합니다. [`bashEditDiffEnabled`](/docs/ko/settings-reference#basheditdiffenabled) 설정보다 우선합니다. Claude Code v2.1.269 이상이 필요합니다 |

231| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | `0`으로 설정하면 비대화형 세션이 백그라운드 작업이 아직 실행 중이더라도 매 턴이 끝날 때마다 호스트에 유휴 상태를 보고합니다. 기본적으로 세션은 백그라운드 에이전트나 [워크플로](/docs/ko/workflows) 실행 같은 백그라운드 작업이 아직 살아 있는 동안 턴이 끝난 후에도 실행 중 상태를 계속 보고합니다. 이렇게 하면 원격 세션 목록처럼 상태를 감시하는 호스트가 작업 도중에 Claude가 사용자 입력을 기다리고 있다고 알리는 것을 방지합니다. 개발 서버 같은 백그라운드 셸 명령은 실행 중 상태를 유지하지 않습니다. 실행 중 상태 기본값과 `0` 옵트아웃에는 Claude Code v2.1.269 이상이 필요합니다. 이전 버전에서는 실행 중 상태를 유지하려면 `1`로 설정하세요 |231| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | `0`으로 설정하면 백그라운드 작업이 아직 실행 중이어도 비대화형 세션이 매 턴 종료 시 호스트에 유휴 상태를 보고합니다. 기본적으로 세션은 백그라운드 에이전트나 [워크플로](/docs/ko/workflows) 실행 같은 백그라운드 작업이 아직 활성 상태인 동안 턴 종료 후에도 실행 중 상태를 계속 보고합니다. 이렇게 하면 원격 세션 목록처럼 상태를 감시하는 호스트가 작업 도중에 Claude가 입력을 기다린다고 알리는 것을 방지합니다. 개발 서버 같은 백그라운드 셸 명령은 실행 중 상태를 유지하지 않습니다. 실행 중 상태 기본값과 `0` 옵트아웃에는 Claude Code v2.1.269 이상이 필요합니다. 이전 버전에서는 실행 중 상태를 유지하려면 `1`로 설정하세요 |

232| `CLAUDE_CODE_BRIDGE_SESSION_ID` | 세션에 활성 [Remote Control](/docs/ko/remote-control) 연결이 있는 동안 Bash 도구 및 [훅 명령](/docs/ko/hooks) 하위 프로세스에서 자동으로 설정되며, 연결이 끝나면 제거됩니다. 값은 `session_` 형식의 세션 ID로, 세션의 `claude.ai/code` URL에 나타나는 것과 같은 식별자이므로 스크립트가 자신을 실행한 세션으로 다시 연결할 수 있습니다. Claude Code v2.1.199 이상이 필요합니다. [클라우드 세션](/docs/ko/claude-code-on-the-web)에서는 대신 `CLAUDE_CODE_REMOTE_SESSION_ID`를 읽으세요 |232| `CLAUDE_CODE_BRIDGE_SESSION_ID` | 세션에 활성 [Remote Control](/docs/ko/remote-control) 연결이 있는 동안 Bash 도구 및 [훅 명령](/docs/ko/hooks) 하위 프로세스에 자동으로 설정되며, 연결이 종료되면 제거됩니다. 값은 `session_` 형식의 세션 ID로, 세션의 `claude.ai/code` URL에 나타나는 것과 같은 식별자이므로 스크립트가 자신을 실행한 세션으로 다시 연결할 수 있습니다. Claude Code v2.1.199 이상이 필요합니다. [클라우드 세션](/docs/ko/claude-code-on-the-web)에서는 대신 `CLAUDE_CODE_REMOTE_SESSION_ID`를 읽으세요 |

233| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | `0`으로 설정하면 Claude Code가 `^H`로도 표기되는 `0x08` 바이트를 일반 Backspace로 읽고, `1`로 설정하면 Ctrl+Backspace로 읽습니다. 어느 값이든 플랫폼 기본값을 대체합니다. 기본적으로 Claude Code는 Windows에서는 Ctrl+Backspace로 읽되 `TERM_PROGRAM`이 `mintty`이거나 `TERM`이 `cygwin`인 경우는 예외이며, macOS와 Linux에서는 일반 Backspace로 읽습니다. [Backspace가 단어 전체를 삭제하는](/docs/ko/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) Windows 터미널에서는 `0`으로 설정하세요 |233| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | `0`으로 설정하면 Claude Code가 `^H`로도 표기되는 `0x08` 바이트를 일반 Backspace로 읽고, `1`로 설정하면 Ctrl+Backspace로 읽습니다. 어느 값이든 플랫폼 기본값을 대체합니다. 기본적으로 Claude Code는 Windows에서는 이를 Ctrl+Backspace로 읽지만 `TERM_PROGRAM`이 `mintty`이거나 `TERM`이 `cygwin`인 경우는 예외이며, macOS와 Linux에서는 일반 Backspace로 읽습니다. [Backspace가 단어 전체를 삭제하는](/docs/ko/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) Windows 터미널에서는 `0`으로 설정하세요 |

234| `CLAUDE_CODE_CERT_STORE` | TLS 연결을 위한 CA 인증서 소스의 쉼표로 구분된 목록입니다. `bundled`는 Claude Code와 함께 제공되는 Mozilla CA 세트입니다. `system`은 운영 체제 신뢰 스토어로, `tls.getCACertificates`가 있는 런타임, 즉 네이티브 바이너리 또는 npm 설치의 경우 Node 22.15 이상에서만 읽습니다. [CA 인증서 스토어](/docs/ko/network-config#ca-certificate-store)를 참조하세요. 기본값은 `bundled,system`입니다 |234| `CLAUDE_CODE_CERT_STORE` | TLS 연결용 CA 인증서 소스의 쉼표로 구분된 목록입니다. `bundled`는 Claude Code와 함께 제공되는 Mozilla CA 세트입니다. `system`은 운영 체제 신뢰 스토어로, `tls.getCACertificates`가 있는 런타임, 즉 네이티브 바이너리 또는 npm 설치의 경우 Node 22.15 이상에서만 읽습니다. [CA 인증서 스토어](/docs/ko/network-config#ca-certificate-store)를 참조하세요. 기본값은 `bundled,system`입니다 |

235| `CLAUDE_CODE_CHILD_SESSION` | Claude Code가 Bash, PowerShell, Monitor 도구, [훅](/docs/ko/hooks) 명령, [상태줄](/docs/ko/statusline) 명령을 통해 생성하는 하위 프로세스에서 `1`로 설정됩니다. stdio [MCP 서버](/docs/ko/mcp) 하위 프로세스에는 설정되지 않는데, 이들은 수명이 길어 자신을 생성한 세션보다 오래 유지되기 때문입니다. `CLAUDECODE`와 달리 이 변수는 Claude Code 자체가 하위 프로세스를 시작할 때만 설정되고 IDE 확장 프로그램은 설정하지 않으므로, 중첩된 세션과 IDE 통합 터미널에서 실행한 최상위 `claude`를 확실하게 구분합니다. 이렇게 시작된 중첩 대화형 `claude` TUI는 `--resume`, `--continue`, 위쪽 화살표 기록, `claude agents` 목록에서 자동으로 제외됩니다. 비대화형 `claude -p` 세션은 계속 저장됩니다. 이 제외를 재정의하려면 `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1`로 설정하세요. Claude Code v2.1.172 이상이 필요합니다 |235| `CLAUDE_CODE_CHILD_SESSION` | Claude Code가 Bash, PowerShell, Monitor 도구, [훅](/docs/ko/hooks) 명령, [상태줄](/docs/ko/statusline) 명령을 통해 생성하는 하위 프로세스에서 `1`로 설정됩니다. stdio [MCP 서버](/docs/ko/mcp) 하위 프로세스에는 설정되지 않는데, 이들은 수명이 길어 자신을 생성한 세션보다 오래 유지되기 때문입니다. `CLAUDECODE`와 달리 이 변수는 IDE 확장이 아닌 Claude Code 자체가 하위 프로세스를 시작할 때만 설정되므로, 중첩된 세션과 IDE 통합 터미널에서 실행한 최상위 `claude`를 확실하게 구별합니다. 이렇게 시작된 중첩 대화형 `claude` TUI는 `--resume`, `--continue`, 위쪽 화살표 기록, `claude agents` 목록에서 자동으로 제외됩니다. 비대화형 `claude -p` 세션은 계속 유지됩니다. 이 제외를 재정의하려면 `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1`을 설정하세요. Claude Code v2.1.172 이상이 필요합니다 |

236| `CLAUDE_CODE_CLIENT_CERT` | mTLS 인증용 클라이언트 인증서 파일의 경로입니다 |236| `CLAUDE_CODE_CLIENT_CERT` | mTLS 인증용 클라이언트 인증서 파일 경로입니다 |

237| `CLAUDE_CODE_CLIENT_KEY` | mTLS 인증용 클라이언트 개인 키 파일의 경로입니다 |237| `CLAUDE_CODE_CLIENT_KEY` | mTLS 인증용 클라이언트 개인 키 파일 경로입니다 |

238| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | 암호화된 CLAUDE\_CODE\_CLIENT\_KEY의 암호문입니다(선택 사항) |238| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | 암호화된 CLAUDE\_CODE\_CLIENT\_KEY의 암호문입니다(선택 사항) |

239| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | v2.1.186에서 제거되어 이제 아무 효과가 없습니다. 이전에는 스트리밍 API 요청의 연결, TLS, 응답 헤더 단계에 대한 별도 타임아웃을 설정했습니다. 요청별 타임아웃에는 `API_TIMEOUT_MS`를 사용하세요. 스트리밍 요청의 응답 헤더 단계에 대해서는 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`를 참조하세요 |239| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | v2.1.186에서 제거되어 이제 아무 효과가 없습니다. 이전에는 스트리밍 API 요청의 연결, TLS, 응답 헤더 단계에 별도의 타임아웃을 설정했습니다. 요청별 타임아웃에는 `API_TIMEOUT_MS`를 사용하세요. 스트리밍 요청의 응답 헤더 단계에 대해서는 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`를 참조하세요 |

240| `CLAUDE_CODE_DEBUG_LOGS_DIR` | 디버그 로그 파일 경로를 재정의합니다. 이름과 달리 디렉터리가 아닌 파일 경로입니다. `--debug`, `/debug` 또는 `DEBUG` 환경 변수를 통해 디버그 모드를 별도로 활성화해야 하며, 이 변수만 설정해서는 로깅이 활성화되지 않습니다. [`--debug-file`](/docs/ko/cli-reference#cli-flags) 플래그는 두 가지를 한 번에 수행합니다. 기본값은 `~/.claude/debug/<session-id>.txt`입니다 |240| `CLAUDE_CODE_DEBUG_LOGS_DIR` | 디버그 로그 파일 경로를 재정의합니다. 이름과 달리 이 값은 디렉터리가 아닌 파일 경로입니다. `--debug`, `/debug` 또는 `DEBUG` 환경 변수를 통해 디버그 모드를 별도로 활성화해야 하며, 이 변수만 설정해서는 로깅이 활성화되지 않습니다. [`--debug-file`](/docs/ko/cli-reference#cli-flags) 플래그는 두 가지를 한 번에 수행합니다. 기본값은 `~/.claude/debug/<session-id>.txt`입니다 |

241| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | 디버그 로그 파일에 기록되는 최소 로그 수준입니다. 값: `verbose`, `debug`(기본값), `info`, `warn`, `error`. 전체 상태줄 명령 출력과 같은 대용량 진단 정보를 포함하려면 `verbose`로 설정하고, 노이즈를 줄이려면 `error`로 올리세요 |241| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | 디버그 로그 파일에 기록되는 최소 로그 수준입니다. 값: `verbose`, `debug`(기본값), `info`, `warn`, `error`. 전체 상태줄 명령 출력 같은 대용량 진단 정보를 포함하려면 `verbose`로 설정하고, 노이즈를 줄이려면 `error`로 높이세요 |

242| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | `1`로 설정하면 [1M 컨텍스트 윈도우](/docs/ko/model-config#extended-context) 지원을 비활성화합니다. 설정하면 모델 선택기에서 1M 모델 변형을 사용할 수 없으며, Claude Code는 [Sonnet 5.5](/docs/ko/model-config#sonnet-5-5-and-sonnet-5-context-window) 및 Fable 모델처럼 기본 1M 윈도우를 가진 모델의 세션을 200K 윈도우로 제한합니다. 이 제한이 적용되는 방식은 [확장 컨텍스트](/docs/ko/model-config#extended-context)를 참조하세요. 규정 준수 요구 사항이 있는 엔터프라이즈 환경에 유용합니다. 인식되지 않는 `[1m]` 모델 ID의 윈도우를 보정하는 역할은 [게이트웨이 또는 사용자 지정 모델 ID의 윈도우 보정](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id)을 참조하세요 |242| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | `1`로 설정하면 [1M 컨텍스트 윈도우](/docs/ko/model-config#extended-context) 지원을 끕니다. Claude Code는 모델 선택기에서 `[1m]` 모델 변형을 제거하고, 기본적으로 1M 윈도우로 실행되는 모델을 200K 윈도우로 제한합니다. [1M 컨텍스트 끄기](/docs/ko/model-config#turn-off-1m-context)를 참조하세요. 규정 준수 요구 사항이 있는 엔터프라이즈 환경에 유용합니다. 인식되지 않는 `[1m]` 모델 ID의 윈도우를 보정하는 역할에 대해서는 [게이트웨이 또는 사용자 지정 모델 ID의 윈도우 보정](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id)을 참조하세요 |

243| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | `1`로 설정하면 Opus 4.6 및 Sonnet 4.6에서 [적응형 추론](/docs/ko/model-config#adjust-effort-level)을 비활성화하고 `MAX_THINKING_TOKENS`로 제어되는 고정 사고 예산으로 폴백합니다. 항상 적응형 추론을 사용하는 [Fable 모델](/docs/ko/model-config#extended-thinking), Sonnet 5 이상, Haiku 5.5, Opus 4.7 이상에는 효과가 없습니다 |243| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | `1`로 설정하면 Opus 4.6 및 Sonnet 4.6에서 [적응형 추론](/docs/ko/model-config#adjust-effort-level)을 비활성화하고 `MAX_THINKING_TOKENS`로 제어되는 고정 사고 예산으로 폴백합니다. 항상 적응형 추론을 사용하는 [Fable 모델](/docs/ko/model-config#extended-thinking), Sonnet 5 이상, Haiku 5.5, Opus 4.7 이상에는 효과가 없습니다 |

244| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | `1`로 설정하면 Claude Code가 관리자 소스 전반에 걸쳐 [관리형 설정](/docs/ko/managed-settings#precedence-within-the-managed-tier) `env` 블록을 키별로 병합하지 않으므로, v2.1.223 이전처럼 우선순위가 가장 높은 소스의 `env` 블록 전체만 적용됩니다. Claude Code는 설정 `env` 블록을 통해 전달된 값을 무시하므로, Claude Code를 실행하는 환경에서 설정하세요. Claude Code v2.1.223 이상이 필요합니다 |244| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | `1`로 설정하면 Claude Code가 관리자 소스 간에 [관리형 설정](/docs/ko/managed-settings#precedence-within-the-managed-tier) `env` 블록을 키별로 병합하지 않으므로, v2.1.223 이전처럼 우선순위가 가장 높은 소스의 `env` 블록 전체만 적용됩니다. Claude Code는 설정 `env` 블록을 통해 전달된 사본을 무시하므로 Claude Code를 실행하는 환경에서 설정하세요. Claude Code v2.1.223 이상이 필요합니다 |

245| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | `1`로 설정하면 [advisor 도구](/docs/ko/advisor)를 비활성화합니다. `/advisor` 명령을 사용할 수 없게 되고, 구성된 `advisorModel`은 무시되며, `--advisor` 플래그는 허용되지만 효과가 없으므로 이 플래그를 전달하는 기존 스크립트는 오류 없이 계속 작동합니다 |245| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | `1`로 설정하면 [advisor 도구](/docs/ko/advisor)를 비활성화합니다. `/advisor` 명령을 사용할 수 없게 되고, 구성된 `advisorModel`은 무시되며, `--advisor` 플래그는 허용되지만 효과가 없으므로 이를 전달하는 기존 스크립트는 오류 없이 계속 작동합니다 |

246| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | `1`로 설정하면 [백그라운드 에이전트와 에이전트 뷰](/docs/ko/agent-view)(`claude agents`, `--bg`, `/background`, 온디맨드 수퍼바이저)를 끕니다. [`disableAgentView`](/docs/ko/settings-reference#disableagentview) 설정과 동일합니다 |246| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | `1`로 설정하면 [백그라운드 에이전트와 에이전트 뷰](/docs/ko/agent-view)를 끕니다. 여기에는 `claude agents`, `--bg`, `/background`, 온디맨드 수퍼바이저가 포함됩니다. [`disableAgentView`](/docs/ko/settings-reference#disableagentview) 설정과 동일합니다 |

247| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | `1`로 설정하면 [전체 화면 렌더링](/docs/ko/fullscreen)을 비활성화하고 기존 메인 화면 렌더러를 사용합니다. 대화가 터미널의 기본 스크롤백에 남으므로 `Cmd+f`와 tmux 복사 모드가 평소처럼 작동합니다. `CLAUDE_CODE_NO_FLICKER`와 [`tui`](/docs/ko/settings-reference#tui) 설정보다 우선합니다. `/tui default`로 전환할 수도 있습니다. 항상 전체 화면 렌더링을 사용하는 [에이전트 뷰](/docs/ko/agent-view)에서 연 백그라운드 세션에는 적용되지 않습니다 |247| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | `1`로 설정하면 [전체 화면 렌더링](/docs/ko/fullscreen)을 비활성화하고 기존 메인 화면 렌더러를 사용합니다. 대화가 터미널의 기본 스크롤백에 남으므로 `Cmd+f`와 tmux 복사 모드가 평소대로 작동합니다. `CLAUDE_CODE_NO_FLICKER` 및 [`tui`](/docs/ko/settings-reference#tui) 설정보다 우선합니다. `/tui default`로 전환할 수도 있습니다. 항상 전체 화면 렌더링을 사용하는 [에이전트 뷰](/docs/ko/agent-view)에서 연 백그라운드 세션에는 적용되지 않습니다 |

248| `CLAUDE_CODE_DISABLE_ARTIFACT` | `1`로 설정하면 세션 출력을 claude.ai의 비공개 웹 페이지로 게시하는 [Artifact](/docs/ko/artifacts) 도구를 끕니다. 이 변수를 설정하면 어떤 설정 파일로도 도구를 다시 켤 수 없습니다. 대신 설정 파일에서 도구를 끄려면 [`enableArtifact`](/docs/ko/settings-reference#enableartifact)를 `false`로 설정하세요. deprecated된 [`disableArtifact`](/docs/ko/settings-reference#disableartifact) 키로도 끌 수 있습니다 |248| `CLAUDE_CODE_DISABLE_ARTIFACT` | `1`로 설정하면 세션 출력을 claude.ai의 비공개 웹 페이지로 게시하는 [Artifact](/docs/ko/artifacts) 도구를 끕니다. 이 변수를 설정하면 어떤 설정 파일로도 도구를 다시 켤 수 없습니다. 대신 설정 파일에서 도구를 끄려면 [`enableArtifact`](/docs/ko/settings-reference#enableartifact)를 `false`로 설정하세요. deprecated된 [`disableArtifact`](/docs/ko/settings-reference#disableartifact) 키도 도구를 끕니다 |

249| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | `1`로 설정하면 첨부 파일 처리를 비활성화합니다. `@` 구문을 사용한 파일 멘션이 파일 내용으로 확장되지 않고 일반 텍스트로 전송됩니다 |249| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | `1`로 설정하면 첨부 파일 처리를 비활성화합니다. `@` 구문을 사용한 파일 멘션이 파일 내용으로 확장되지 않고 일반 텍스트로 전송됩니다 |

250| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | `1`로 설정하면 Claude Code 프로세스가 다른 프로세스가 [`gcpAuthRefresh`](/docs/ko/settings-reference#gcpauthrefresh) 또는 [`awsAuthRefresh`](/docs/ko/settings-reference#awsauthrefresh) 명령을 실행하는 동안 기다리는 대신 직접 실행합니다. Claude Code v2.1.286 이상이 필요합니다 |250| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | `1`로 설정하면 Claude Code 프로세스가 다른 프로세스의 실행을 기다리는 대신 [`gcpAuthRefresh`](/docs/ko/settings-reference#gcpauthrefresh) 또는 [`awsAuthRefresh`](/docs/ko/settings-reference#awsauthrefresh) 명령을 직접 실행합니다. Claude Code v2.1.286 이상이 필요합니다 |

251| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | `1`로 설정하면 [자동 메모리](/docs/ko/memory#auto-memory)를 비활성화합니다. `--bare` 모드나 [`autoMemoryEnabled: false`](/docs/ko/settings-reference#automemoryenabled)로 인해 비활성화되는 경우에도 자동 메모리를 강제로 켜려면 `0`으로 설정하세요. 비활성화하면 Claude는 자동 메모리 파일을 생성하거나 로드하지 않습니다 |251| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | `1`로 설정하면 [자동 메모리](/docs/ko/memory#auto-memory)를 비활성화합니다. `--bare` 모드나 [`autoMemoryEnabled: false`](/docs/ko/settings-reference#automemoryenabled)로 인해 비활성화되는 경우에도 자동 메모리를 강제로 켜려면 `0`으로 설정하세요. 비활성화되면 Claude는 자동 메모리 파일을 생성하거나 로드하지 않습니다 |

252| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | `1`로 설정하면 Bash 및 서브에이전트 도구의 `run_in_background` 매개변수, 자동 백그라운드 전환, Ctrl+B 단축키를 포함한 모든 백그라운드 작업 기능을 비활성화합니다 |252| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | `1`로 설정하면 Bash 및 서브에이전트 도구의 `run_in_background` 매개변수, 자동 백그라운드 전환, Ctrl+B 단축키를 포함한 모든 백그라운드 작업 기능을 비활성화합니다 |

253| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | `1`로 설정하면 Claude Code가 `Content-Type` 헤더가 없거나 비어 있는 [Amazon Bedrock](/docs/ko/amazon-bedrock) 스트리밍 응답을 Amazon Bedrock의 바이너리 이벤트 스트림으로 취급하지 않습니다. 기본적으로 Claude Code는 게이트웨이가 다른 부분은 수정되지 않은 응답에서 헤더만 삭제했다고 가정하므로, 본문을 디코딩하여 스트리밍이 계속 작동합니다. 스트림을 서버 전송 이벤트로 다시 내보내기도 하는 게이트웨이에서만 이 변수를 설정하세요. 그러면 Claude Code는 헤더가 없는 본문을 서버 전송 이벤트로 읽습니다. Claude Code v2.1.239 이상이 필요합니다 |253| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | `1`로 설정하면 Claude Code가 `Content-Type` 헤더가 없거나 비어 있는 [Amazon Bedrock](/docs/ko/amazon-bedrock) 스트리밍 응답을 Amazon Bedrock의 바이너리 이벤트 스트림으로 취급하지 않습니다. 기본적으로 Claude Code는 게이트웨이가 다른 부분은 수정하지 않은 응답에서 헤더만 제거했다고 가정하므로, 본문을 디코딩하여 스트리밍이 계속 작동합니다. 스트림을 서버 전송 이벤트로 다시 내보내기도 하는 게이트웨이에 대해서만 이 값을 설정하세요. 그러면 Claude Code는 헤더가 없는 본문을 대신 서버 전송 이벤트로 읽습니다. Claude Code v2.1.239 이상이 필요합니다 |

254| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | `1`로 설정하면 [Amazon Bedrock](/docs/ko/amazon-bedrock) 스트리밍 응답이 `application/vnd.amazon.eventstream` content-type을 가지는지 확인하는 검사를 건너뜁니다. 이 변수가 없으면 응답이 다른 content-type을 가질 때 Claude Code는 해당 타입을 명시하는 오류와 함께 요청을 실패 처리하며, 이는 [게이트웨이나 프록시가 응답을 변환하고 있음](/docs/ko/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)을 의미합니다. 이 변수를 설정하기보다는 게이트웨이가 `Content-Type` 헤더와 본문을 수정 없이 전달하도록 구성하세요. Claude Code v2.1.208 이상이 필요합니다 |254| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | `1`로 설정하면 [Amazon Bedrock](/docs/ko/amazon-bedrock) 스트리밍 응답이 `application/vnd.amazon.eventstream` content-type을 포함하는지 확인하는 검사를 건너뜁니다. 이 변수가 없으면 응답에 다른 content-type이 포함된 경우 Claude Code는 해당 유형을 명시한 오류와 함께 요청을 실패시키며, 이는 [게이트웨이나 프록시가 응답을 변환하고 있음](/docs/ko/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)을 의미합니다. 이 변수를 설정하는 대신 `Content-Type` 헤더와 본문을 수정하지 않고 전달하도록 게이트웨이를 구성하세요. Claude Code v2.1.208 이상이 필요합니다 |

255| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | `1`로 설정하면 [수퍼바이저](/docs/ko/agent-view#the-supervisor-process)가 [백그라운드 세션](/docs/ko/agent-view)의 프로세스를 중지, 재시작 또는 업데이트할 때 해당 세션에서 실행 중인 백그라운드 셸 명령, 동적 워크플로, 그리고 v2.1.198부터는 백그라운드 서브에이전트를 세션의 다음 프로세스로 넘기지 않고 중지합니다. 이 인계에만 영향을 줍니다. `←` 또는 [`/background`](/docs/ko/agent-view#from-inside-a-session)로 세션을 백그라운드로 전환하면 진행 중인 작업이 여전히 이어지며, `CLAUDE_DISABLE_ADOPT`는 둘 다 끕니다. Claude Code v2.1.196 이상이 필요합니다 |255| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | `1`로 설정하면 [수퍼바이저](/docs/ko/agent-view#the-supervisor-process)가 [백그라운드 세션](/docs/ko/agent-view)의 프로세스를 중지, 재시작 또는 업데이트할 때, 해당 세션에서 실행 중인 백그라운드 셸 명령, 동적 워크플로, 그리고 v2.1.198부터는 백그라운드 서브에이전트를 세션의 다음 프로세스로 넘기는 대신 중지합니다. 이는 해당 인계에만 영향을 줍니다. `←` 또는 [`/background`](/docs/ko/agent-view#from-inside-a-session)로 세션을 백그라운드로 보내면 진행 중인 작업이 여전히 이어지며, `CLAUDE_DISABLE_ADOPT`는 두 가지 모두를 끕니다. Claude Code v2.1.196 이상이 필요합니다 |

256| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | `1`로 설정하면 Claude Code가 시스템 메모리 부족 상황에서 [백그라운드 셸 명령](/docs/ko/interactive-mode#background-bash-commands)을 종료하지 않습니다. 기본적으로 macOS와 Linux에서 Claude Code는 운영 체제가 심각한 시스템 메모리 부족을 보고하고 세션이 턴이나 서브에이전트 실행 없이 30분 동안 유휴 상태였을 때 백그라운드 셸을 종료합니다. Windows에는 시스템 메모리 부족 신호가 없으므로 이 변수는 효과가 없습니다. Claude Code v2.1.193 이상이 필요합니다 |256| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | `1`로 설정하면 Claude Code가 메모리 압박 상황에서 [백그라운드 셸 명령](/docs/ko/interactive-mode#background-bash-commands)을 종료하지 않습니다. 기본적으로 macOS와 Linux에서 Claude Code는 운영 체제가 심각한 메모리 압박을 보고하고 세션이 턴이나 서브에이전트 실행 없이 30분 동안 유휴 상태였을 때 백그라운드 셸을 종료합니다. Windows에는 메모리 압박 신호가 없으므로 이 변수는 효과가 없습니다. Claude Code v2.1.193 이상이 필요합니다 |

257| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | `1`로 설정하면 Claude Code에 포함된 [스킬](/docs/ko/skills)과 워크플로를 비활성화합니다. 번들 스킬과 워크플로는 완전히 제거되며, `/init` 같은 기본 제공 명령은 계속 입력할 수 있지만 모델에게는 숨겨집니다. `/doctor`는 기본 제공 명령처럼 계속 입력할 수 있으며, 숨기려면 대신 `DISABLE_DOCTOR_COMMAND`를 사용하세요. 플러그인, `.claude/skills/`, `.claude/commands/`의 스킬은 영향을 받지 않습니다. [`disableBundledSkills`](/docs/ko/settings-reference#disablebundledskills) 설정과 동일합니다 |257| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | `1`로 설정하면 Claude Code에 포함된 [스킬](/docs/ko/skills)과 워크플로를 비활성화합니다. 번들 스킬과 워크플로는 완전히 제거되며, `/init` 같은 기본 제공 명령은 계속 입력할 수 있지만 모델에는 숨겨집니다. `/doctor`는 기본 제공 명령처럼 계속 입력할 수 있으며, 숨기려면 대신 `DISABLE_DOCTOR_COMMAND`를 사용하세요. 플러그인, `.claude/skills/`, `.claude/commands/`의 스킬은 영향을 받지 않습니다. [`disableBundledSkills`](/docs/ko/settings-reference#disablebundledskills) 설정과 동일합니다 |

258| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | `1`로 설정하면 [Claude in Chrome](/docs/ko/chrome) 브라우저 도구는 계속 사용할 수 있게 두면서 시스템 프롬프트의 Chrome 섹션과 `/claude-in-chrome` [번들 스킬](/docs/ko/skills#bundled-skills)을 생략합니다. Claude Code를 임베드하고 자체 브라우저 지침을 제공하는 호스트를 위한 것입니다. Claude Code v2.1.257 이상이 필요합니다 |258| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | `1`로 설정하면 [Claude in Chrome](/docs/ko/chrome) 브라우저 도구는 사용할 수 있게 유지하면서 시스템 프롬프트의 Chrome 섹션과 `/claude-in-chrome` [번들 스킬](/docs/ko/skills#bundled-skills)을 생략합니다. Claude Code를 임베드하고 자체 브라우저 지침을 제공하는 호스트를 위한 것입니다. Claude Code v2.1.257 이상이 필요합니다 |

259| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | `1`로 설정하면 사용자, 프로젝트, 자동 메모리 파일을 포함한 모든 CLAUDE.md 메모리 파일이 컨텍스트에 로드되지 않습니다 |259| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | `1`로 설정하면 사용자, 프로젝트, 자동 메모리 파일을 포함한 모든 CLAUDE.md 메모리 파일을 컨텍스트에 로드하지 않습니다 |

260| `CLAUDE_CODE_DISABLE_CRON` | `1`로 설정하면 [예약 작업](/docs/ko/scheduled-tasks)을 비활성화합니다. `/loop` 스킬과 cron 도구를 사용할 수 없게 되며, 세션 도중 이미 실행 중인 작업을 포함하여 이미 예약된 모든 작업이 더 이상 실행되지 않습니다 |260| `CLAUDE_CODE_DISABLE_CRON` | `1`로 설정하면 [예약 작업](/docs/ko/scheduled-tasks)을 비활성화합니다. `/loop` 스킬과 cron 도구를 사용할 수 없게 되며, 세션 도중 이미 실행 중인 작업을 포함해 이미 예약된 모든 작업이 더 이상 실행되지 않습니다 |

261| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | `1`로 설정하면 [중요 경로 삭제](/docs/ko/permission-modes#critical-paths) 프롬프트의 시간 제한을 끕니다. 그러면 `auto` 모드에서는 Claude Code가 이러한 삭제를 분류기로 보내고, `bypassPermissions` 모드에서는 프롬프트가 사용자의 응답을 기다립니다. Claude Code는 설정 `env` 블록을 통해 전달된 값을 무시하므로, Claude Code를 실행하는 환경에서 설정하세요. Claude Code v2.1.281 이상이 필요합니다 |261| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | `1`로 설정하면 [중요 경로 제거](/docs/ko/permission-modes#critical-paths) 프롬프트의 시간 제한을 끕니다. 그러면 `auto` 모드에서는 Claude Code가 이러한 제거를 대신 분류기로 보내고, `bypassPermissions` 모드에서는 프롬프트가 응답을 기다립니다. Claude Code는 설정 `env` 블록을 통해 전달된 사본을 무시하므로 Claude Code를 실행하는 환경에서 설정하세요. Claude Code v2.1.281 이상이 필요합니다 |

262| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | `1`로 설정하면 API 요청에서 사전 출시 `anthropic-beta` 요청 헤더, 이와 짝을 이루는 본문 필드, `defer_loading` 및 `eager_input_streaming` 같은 베타 도구 스키마 필드를 제거합니다. 프록시 게이트웨이가 `anthropic-beta` 헤더에 대해 `Unexpected value(s)` 오류나 `Extra inputs are not permitted` 오류로 요청을 거부할 때 사용하세요. [사전 출시 기능 비활성화](/docs/ko/llm-gateway-protocol#disable-pre-release-capabilities)에는 [MCP 도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)을 포함하여 이 변수가 제거하는 항목과 Claude Code가 계속 전송하는 항목이 나열되어 있습니다 |262| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | `1`로 설정하면 API 요청에서 출시 전 `anthropic-beta` 요청 헤더, 이와 짝을 이루는 본문 필드, `defer_loading` 및 `eager_input_streaming` 같은 베타 도구 스키마 필드를 제거합니다. 프록시 게이트웨이가 `anthropic-beta` 헤더에 대해 `Unexpected value(s)` 오류나 `Extra inputs are not permitted` 오류로 요청을 거부할 때 사용하세요. [출시 전 기능 비활성화](/docs/ko/llm-gateway-protocol#disable-pre-release-capabilities)에 이 변수가 제거하는 항목([MCP 도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search) 포함)과 Claude Code가 계속 전송하는 항목이 나와 있습니다 |

263| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | `1`로 설정하면 기본 제공 [Explore 및 Plan 서브에이전트](/docs/ko/sub-agents#built-in-subagents)를 비활성화합니다. Claude는 대신 검색 도구나 general-purpose 서브에이전트로 탐색하며, [플랜 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)는 Explore 및 Plan 에이전트를 실행하는 대신 파일을 직접 읽습니다. 이름이 `Explore` 또는 `Plan`인 사용자 지정 서브에이전트는 영향을 받지 않습니다. Agent SDK 또는 비대화형 모드에서 모든 기본 제공 서브에이전트 유형을 제거하려면 대신 `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`를 사용하세요. Claude Code v2.1.198 이상이 필요합니다 |263| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | `1`로 설정하면 기본 제공 [Explore 및 Plan 서브에이전트](/docs/ko/sub-agents#built-in-subagents)를 비활성화합니다. Claude는 대신 검색 도구나 general-purpose 서브에이전트로 탐색하며, [플랜 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)는 Explore 및 Plan 에이전트를 실행하는 대신 파일을 직접 읽습니다. `Explore` 또는 `Plan`이라는 이름의 사용자 지정 서브에이전트는 영향을 받지 않습니다. Agent SDK 또는 비대화형 모드에서 모든 기본 제공 서브에이전트 유형을 제거하려면 대신 `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`를 사용하세요. Claude Code v2.1.198 이상이 필요합니다 |

264| `CLAUDE_CODE_DISABLE_FAST_MODE` | `1`로 설정하면 [빠른 모드](/docs/ko/fast-mode)를 비활성화합니다 |264| `CLAUDE_CODE_DISABLE_FAST_MODE` | `1`로 설정하면 [빠른 모드](/docs/ko/fast-mode)를 비활성화합니다 |

265| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | `1`로 설정하면 "How is Claude doing?" 세션 품질 설문조사를 비활성화합니다. `DISABLE_TELEMETRY`, `DO_NOT_TRACK` 또는 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정된 경우에도 설문조사가 비활성화되지만, `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`로 다시 사용하도록 선택한 경우는 예외입니다. 완전히 비활성화하는 대신 샘플링 비율을 설정하려면 [`feedbackSurveyRate`](/docs/ko/settings-reference#feedbacksurveyrate) 설정을 사용하세요. [세션 품질 설문조사](/docs/ko/data-usage#session-quality-surveys)를 참조하세요 |265| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | `1`로 설정하면 "How is Claude doing?" 세션 품질 설문을 비활성화합니다. `DISABLE_TELEMETRY`, `DO_NOT_TRACK` 또는 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정된 경우에도 설문이 비활성화되며, 단 `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`로 다시 사용하도록 선택한 경우는 예외입니다. 완전히 비활성화하는 대신 샘플링 비율을 설정하려면 [`feedbackSurveyRate`](/docs/ko/settings-reference#feedbacksurveyrate) 설정을 사용하세요. [세션 품질 설문](/docs/ko/data-usage#session-quality-surveys)을 참조하세요 |

266| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | `1`로 설정하면 파일 [체크포인트](/docs/ko/checkpointing)를 비활성화합니다. `/rewind` 명령으로 코드 변경 사항을 복원할 수 없게 됩니다. [`fileCheckpointingEnabled`](/docs/ko/settings-reference#filecheckpointingenabled) 설정을 재정의합니다 |266| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | `1`로 설정하면 파일 [체크포인트](/docs/ko/checkpointing)를 비활성화합니다. `/rewind` 명령으로 코드 변경 사항을 복원할 수 없게 됩니다. [`fileCheckpointingEnabled`](/docs/ko/settings-reference#filecheckpointingenabled) 설정을 재정의합니다 |

267| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | `1`로 설정하면 Claude의 컨텍스트에서 기본 제공 커밋 및 PR 워크플로 지침과 git 상태 스냅샷을 제거합니다. 자체 git 워크플로 스킬을 사용할 때 유용합니다. 설정하면 [`includeGitInstructions`](/docs/ko/settings-reference#includegitinstructions) 설정보다 우선합니다 |267| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | `1`로 설정하면 Claude의 컨텍스트에서 기본 제공 커밋 및 PR 워크플로 지침과 git 상태 스냅샷을 제거합니다. 자체 git 워크플로 스킬을 사용할 때 유용합니다. 설정된 경우 [`includeGitInstructions`](/docs/ko/settings-reference#includegitinstructions) 설정보다 우선합니다 |

268| `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` | `1`로 설정하면 Claude Code가 `bash -c 'rm -rf ~'`처럼 `-c`로 셸에 전달된 스크립트에서 [중요 경로](/docs/ko/permission-modes#removals-inside-nested-commands-and-inline-scripts) 삭제를 읽지 않습니다. Claude Code는 해당 스크립트의 셸 변수 및 위치 매개변수 대상은 계속 확인하며, 다른 중요 경로 검사도 계속 실행됩니다. Claude Code는 설정 `env` 블록을 통해 전달된 값을 무시하므로, Claude Code를 실행하는 환경에서 설정하세요. Claude Code v2.1.288 이상이 필요합니다 |268| `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` | `1`로 설정하면 Claude Code가 [중요 경로](/docs/ko/permission-modes#removals-inside-nested-commands-and-inline-scripts) 제거를 확인하기 위해 `bash -c 'rm -rf ~'`처럼 `-c`로 셸에 전달된 스크립트를 읽지 않습니다. Claude Code는 해당 스크립트의 셸 변수 및 위치 매개변수 대상은 여전히 검사하며, 다른 중요 경로 검사도 계속 실행됩니다. Claude Code는 설정 `env` 블록을 통해 전달된 사본을 무시하므로 Claude Code를 실행하는 환경에서 설정하세요. Claude Code v2.1.288 이상이 필요합니다 |

269| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | `1`로 설정하면 Anthropic API에서 Opus 4.0 및 4.1이 현재 Opus 버전으로 자동 재매핑되는 것을 방지합니다. 의도적으로 이전 모델을 고정하려는 경우 사용하세요. 재매핑은 Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry에서는 실행되지 않습니다 |269| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | `1`로 설정하면 Anthropic API에서 Opus 4.0 및 4.1이 현재 Opus 버전으로 자동 재매핑되지 않도록 합니다. 의도적으로 이전 모델을 고정하려는 경우 사용하세요. 재매핑은 Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry에서는 실행되지 않습니다 |

270| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | `1`로 설정하면 세션 도중 계정이 세션 모델에 대한 액세스 권한을 잃었을 때 [Amazon Bedrock](/docs/ko/amazon-bedrock#when-a-model-is-disabled-mid-session) 및 [Google Cloud's Agent Platform](/docs/ko/google-vertex-ai#when-a-model-is-disabled-mid-session)의 Claude Code가 이전 모델로 전환하지 않으며, 대신 거부된 요청이 즉시 실패합니다. 구성한 [폴백 모델 체인](/docs/ko/model-config#fallback-model-chains)은 해당 거부 시 여전히 전환되며, [시작 시 모델 검사](/docs/ko/amazon-bedrock#startup-model-checks)도 실행 시점에 여전히 폴백합니다. Claude Code v2.1.285 이상이 필요합니다 |270| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | `1`로 설정하면 [Amazon Bedrock](/docs/ko/amazon-bedrock#when-a-model-is-disabled-mid-session) 및 [Google Cloud's Agent Platform](/docs/ko/google-vertex-ai#when-a-model-is-disabled-mid-session)에서 세션 도중 계정이 세션 모델에 대한 액세스 권한을 잃었을 때 Claude Code가 이전 모델로 전환하지 않으며, 거부된 요청은 즉시 실패합니다. 구성한 [폴백 모델 체인](/docs/ko/model-config#fallback-model-chains)은 해당 거부 시 여전히 전환되며, [시작 시 모델 검사](/docs/ko/amazon-bedrock#startup-model-checks)도 실행 시점에 여전히 폴백합니다. Claude Code v2.1.285 이상이 필요합니다 |

271| `CLAUDE_CODE_DISABLE_MOUSE` | `1`로 설정하면 [전체 화면 렌더링](/docs/ko/fullscreen)에서 마우스 추적을 비활성화합니다. `PgUp`과 `PgDn`을 사용한 키보드 스크롤은 계속 작동합니다. 터미널의 기본 선택 시 복사 동작을 유지하려면 이 변수를 사용하세요 |271| `CLAUDE_CODE_DISABLE_MOUSE` | `1`로 설정하면 [전체 화면 렌더링](/docs/ko/fullscreen)에서 마우스 추적을 비활성화합니다. `PgUp`과 `PgDn`을 사용한 키보드 스크롤은 계속 작동합니다. 터미널의 기본 선택 시 복사 동작을 유지하려면 이 변수를 사용하세요 |

272| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | `1`로 설정하면 [전체 화면 렌더링](/docs/ko/fullscreen)에서 마우스 휠 스크롤은 유지하면서 클릭, 드래그, 호버 처리를 비활성화합니다. Claude Code 내부에서 휠 스크롤은 작동하되 클릭으로 커서를 배치하거나, 도구 출력을 펼치거나, 링크를 여는 것은 원하지 않을 때 사용하세요. 둘 다 설정된 경우 `CLAUDE_CODE_DISABLE_MOUSE`가 우선합니다. Claude Code v2.1.195 이상이 필요합니다 |272| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | `1`로 설정하면 [전체 화면 렌더링](/docs/ko/fullscreen)에서 마우스 휠 스크롤은 유지하면서 클릭, 드래그, 호버 처리를 비활성화합니다. Claude Code 안에서 휠 스크롤은 작동하게 하되 클릭으로 커서를 배치하거나 도구 출력을 펼치거나 링크를 열지 않게 하려면 이 변수를 사용하세요. 둘 다 설정된 경우 `CLAUDE_CODE_DISABLE_MOUSE`가 우선합니다. Claude Code v2.1.195 이상이 필요합니다 |

273| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | `1`로 설정하면 연결 재설정이나 TLS 핸드셰이크 오류 같은 연결 수준 오류로 API 요청이 실패할 때 Claude Code가 [mTLS 클라이언트 인증서와 키](/docs/ko/network-config#mtls-authentication)를 다시 읽지 않습니다. 다시 로드가 비활성화되면 Claude Code는 다음에 설정을 적용하거나 다음에 시작할 때만 교체된 파일을 로드합니다. Claude Code v2.1.232 이상이 필요합니다 |273| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | `1`로 설정하면 API 요청이 연결 재설정이나 TLS 핸드셰이크 오류 같은 연결 수준 오류로 실패할 때 Claude Code가 [mTLS 클라이언트 인증서와 키](/docs/ko/network-config#mtls-authentication)를 다시 읽지 않습니다. 다시 읽기가 비활성화되면 Claude Code는 다음에 설정을 적용하거나 다음에 시작할 때만 교체된 파일을 로드합니다. Claude Code v2.1.232 이상이 필요합니다 |

274| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | `1`과 같이 비어 있지 않은 값으로 설정하면 필수적이지 않은 네트워크 트래픽을 비활성화합니다. 대상은 자동 업데이트, 텔레메트리, 오류 보고, `/feedback` 명령, [Claude가 작성한 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior), 릴리스 노트, [PR 및 MR 상태 배지](/docs/ko/interactive-mode#pr-review-status) 확인, 그리고 [빠른 모드](/docs/ko/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 확인과 같은 가용성 확인입니다. 또한 [플러그인 `command` 소스의 백그라운드 실행](/docs/ko/plugins/loading#when-a-command-source-re-runs)도 중지하는데, 이는 네트워크 트래픽이 아닌 로컬 명령이지만 의존성 설치를 트리거할 수 있기 때문입니다. **대부분의 켜기/끄기 변수와 달리 `0`이나 `false`로 설정해도 이 트래픽은 비활성화됩니다**. 다시 허용하려면 변수를 설정 해제하세요. 기능 플래그 가져오기도 비활성화하므로 [Remote Control](/docs/ko/remote-control#requirements) 및 기타 [기능 플래그 가져오기가 필요한 기능](#features-that-need-feature-flag-fetching)을 사용할 수 없게 됩니다. 공식 플러그인 마켓플레이스 자동 설치는 포함되지 않으므로 `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`로 비활성화하세요. 자체 옵트인이 있는 [게이트웨이 모델 검색](/docs/ko/llm-gateway-connect#add-gateway-models-to-the-model-picker)에는 영향을 주지 않습니다 |274| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | `1` 같은 비어 있지 않은 값으로 설정하면 불필요한 네트워크 트래픽을 비활성화합니다. 여기에는 자동 업데이트, 텔레메트리, 오류 보고, `/feedback` 명령, [Claude가 작성한 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior), 릴리스 노트, [PR 및 MR 상태 배지](/docs/ko/interactive-mode#pr-review-status) 확인, [빠른 모드](/docs/ko/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 확인 같은 가용성 확인이 포함됩니다. 또한 [플러그인 `command` 소스의 백그라운드 실행](/docs/ko/plugins/loading#when-a-command-source-re-runs)도 중지하는데, 이는 네트워크 트래픽이 아닌 로컬 명령이지만 의존성 설치를 트리거할 수 있기 때문입니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 이 트래픽은 비활성화되므로**, 다시 허용하려면 변수를 설정 해제하세요. 기능 플래그 가져오기도 비활성화하므로 [Remote Control](/docs/ko/remote-control#requirements) 및 기타 [기능 플래그 가져오기가 필요한 기능](#features-that-need-feature-flag-fetching)을 사용할 수 없게 됩니다. 공식 플러그인 마켓플레이스 자동 설치는 포함되지 않으며, 이는 `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`로 비활성화하세요. 자체 옵트인이 있는 [게이트웨이 모델 검색](/docs/ko/llm-gateway-connect#add-gateway-models-to-the-model-picker)에는 영향을 주지 않습니다 |

275| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | `1`로 설정하면 스트리밍 요청이 스트림 도중 실패할 때 비스트리밍 폴백을 비활성화합니다. 대신 스트리밍 오류가 재시도 계층으로 전파됩니다. 프록시나 게이트웨이로 인해 폴백이 도구를 중복 실행하는 경우에 유용합니다 |275| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | `1`로 설정하면 스트리밍 요청이 스트림 도중 실패할 때의 비스트리밍 폴백을 비활성화합니다. 대신 스트리밍 오류가 재시도 계층으로 전파됩니다. 프록시나 게이트웨이로 인해 폴백이 도구 실행을 중복시키는 경우 유용합니다 |

276| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | `1`로 설정하면 사용자가 터미널에서 입력 중이거나 터미널에 포커스가 있는 동안에도 `PushNotification` 도구의 데스크톱 알림을 전송합니다. 기본적으로 이 도구는 최근 키보드 활동이나 터미널 포커스를 감지하면 데스크톱 알림과 [모바일 푸시](/docs/ko/remote-control#mobile-push-notifications)를 모두 건너뜁니다. 이 변수는 해당 로컬 검사만 비활성화하므로, 서버가 사용자가 활동 중임을 감지하면 여전히 모바일 푸시를 억제할 수 있습니다. Claude Code v2.1.193 이상이 필요합니다 |276| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | `1`로 설정하면 터미널에서 입력 중이거나 터미널에 포커스가 있는 동안에도 `PushNotification` 도구의 데스크톱 알림을 전송합니다. 기본적으로 이 도구는 최근 키보드 활동이나 터미널 포커스를 감지하면 데스크톱 알림과 [모바일 푸시](/docs/ko/remote-control#mobile-push-notifications)를 모두 건너뜁니다. 이 변수는 해당 로컬 검사만 비활성화하므로, 서버가 사용자가 활동 중임을 감지하면 여전히 모바일 푸시를 억제할 수 있습니다. Claude Code v2.1.193 이상이 필요합니다 |

277| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | `1`로 설정하면 공식 플러그인 마켓플레이스의 자동 등록을 비활성화합니다. Claude Code는 마켓플레이스를 등록하려는 시점, 일반적으로 해당 컴퓨터에서 처음 대화형으로 실행할 때 이 변수를 읽습니다. 그 시점에 변수가 설정되어 있으면 Claude Code는 등록을 영구적으로 건너뜁니다. 나중에 변수를 설정 해제해도 건너뛴 것이 취소되지 않습니다. 언제든지 `claude plugin marketplace add anthropics/claude-plugins-official`을 실행하여 마켓플레이스를 등록할 수 있습니다 |277| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | `1`로 설정하면 공식 플러그인 마켓플레이스의 자동 등록을 비활성화합니다. Claude Code는 마켓플레이스를 등록하려 할 때, 보통 머신에서 처음 대화형으로 실행할 때 이 변수를 읽습니다. 그 시점에 변수가 설정되어 있으면 Claude Code는 등록을 영구적으로 건너뜁니다. 나중에 변수를 설정 해제해도 건너뛴 등록이 되돌려지지 않습니다. 언제든지 마켓플레이스를 등록하려면 `claude plugin marketplace add anthropics/claude-plugins-official`을 실행하세요 |

278| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | `1`로 설정하면 Claude Code가 권한 요청을 Agent SDK의 `canUseTool` 콜백으로 보내는 세션에서 [응답하지 않은 권한 요청에 대한 `Notification` 훅](/docs/ko/hooks#notification)을 실행하지 않습니다. Claude Desktop과 VS Code 확장 프로그램이 이 방식으로 Claude Code를 호스팅합니다. 터미널 세션에서는 효과가 없습니다. Claude Code v2.1.233 이상이 필요합니다 |278| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | `1`로 설정하면 Claude Code가 권한 요청을 Agent SDK의 `canUseTool` 콜백으로 보내는 세션에서 [응답하지 않은 권한 요청에 대한 `Notification` 훅](/docs/ko/hooks#notification)을 실행하지 않습니다. Claude Desktop과 VS Code 확장이 이 방식으로 Claude Code를 호스팅합니다. 터미널 세션에서는 효과가 없습니다. Claude Code v2.1.233 이상이 필요합니다 |

279| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | `1`로 설정하면 시스템 전체 관리형 스킬 디렉터리에서 스킬 로드를 건너뜁니다. 운영자가 프로비저닝한 스킬을 로드하지 않아야 하는 컨테이너 또는 CI 세션에 유용합니다 |279| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | `1`로 설정하면 시스템 전체 관리형 스킬 디렉터리에서 스킬을 로드하지 않습니다. 운영자가 프로비저닝한 스킬을 로드하지 않아야 하는 컨테이너 또는 CI 세션에 유용합니다 |

280| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | `1`로 설정하면 드라이브 루트나 홈 디렉터리 같은 [시스템 경로](/docs/ko/permission-modes#remove-item-in-powershell)에서 `cmd` 기본 제공 명령 `rd`, `rmdir`, `del`, `erase`를 거부하는 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool) 검사를 끕니다. Claude Code는 설정 파일의 `env` 블록에 있는 이 변수를 무시합니다. Claude Code v2.1.283 이상이 필요합니다 |280| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | `1`로 설정하면 드라이브 루트나 홈 디렉터리 같은 [시스템 경로](/docs/ko/permission-modes#remove-item-in-powershell)에서 `cmd` 기본 제공 명령인 `rd`, `rmdir`, `del`, `erase`를 거부하는 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool) 검사를 끕니다. Claude Code는 설정 파일의 `env` 블록에 있는 이 변수를 무시합니다. Claude Code v2.1.283 이상이 필요합니다 |

281| `CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK` | `1`로 설정하면 [안전 분류기가 요청에 플래그를 지정할 때의 자동 모델 전환](/docs/ko/model-config#automatic-model-fallback)을 끕니다. 이는 [`switchModelsOnFlag`](/docs/ko/settings-reference#switchmodelsonflag) 설정이 제어하는 동작입니다 |281| `CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK` | `1`로 설정하면 [안전 분류기가 요청을 플래그할 때의 자동 모델 전환](/docs/ko/model-config#automatic-model-fallback)을 끕니다. 이는 [`switchModelsOnFlag`](/docs/ko/settings-reference#switchmodelsonflag) 설정이 제어하는 동작입니다 |

282| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | `1`로 설정하면 업스트림이 구조화된 출력 `output_config.format` 필드와 이와 짝을 이루는 `anthropic-beta` 값을 거부하는 [LLM 게이트웨이](/docs/ko/llm-gateway-protocol#feature-pass-through)를 위해 Claude Code가 이들을 전송하지 않습니다. [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/ko/llm-gateway-protocol#disable-pre-release-capabilities)가 끄는 다른 사전 출시 기능은 켜진 상태로 유지됩니다. Claude Code v2.1.288 이상이 필요합니다 |282| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | `1`로 설정하면 업스트림이 구조화된 출력 `output_config.format` 필드와 이와 짝을 이루는 `anthropic-beta` 값을 거부하는 [LLM 게이트웨이](/docs/ko/llm-gateway-protocol#feature-pass-through)를 위해 Claude Code가 이를 전송하지 않습니다. [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/ko/llm-gateway-protocol#disable-pre-release-capabilities)가 끄는 다른 출시 전 기능은 켜진 상태로 유지됩니다. Claude Code v2.1.288 이상이 필요합니다 |

283| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | `1`로 설정하면 `rm -rf "$(pwd)"`처럼 대상이 전적으로 명령 치환의 출력인 재귀 `rm`에 대한 [중요 경로](/docs/ko/permission-modes#critical-paths) 검사를 끕니다. 다른 중요 경로 검사는 계속 실행됩니다. Claude Code는 설정 `env` 블록을 통해 전달된 값을 무시하므로, Claude Code를 실행하는 환경에서 설정하세요. Claude Code v2.1.281 이상이 필요합니다 |283| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | `1`로 설정하면 `rm -rf "$(pwd)"`처럼 대상 전체가 명령 치환의 출력인 재귀 `rm`에 대한 [중요 경로](/docs/ko/permission-modes#critical-paths) 검사를 끕니다. 다른 중요 경로 검사는 계속 실행됩니다. Claude Code는 설정 `env` 블록을 통해 전달된 사본을 무시하므로 Claude Code를 실행하는 환경에서 설정하세요. Claude Code v2.1.281 이상이 필요합니다 |

284| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | `1`로 설정하면 대화 컨텍스트에 기반한 자동 터미널 제목 업데이트를 비활성화합니다. 또한 [세션 제목을 생성하는](/docs/ko/sessions#name-your-sessions) 백그라운드 small/fast 모델 요청도 건너뜁니다 |284| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | `1`로 설정하면 대화 컨텍스트에 기반한 자동 터미널 제목 업데이트를 비활성화합니다. 또한 [세션 제목을 생성하는](/docs/ko/sessions#name-your-sessions) 백그라운드 small/fast 모델 요청도 건너뜁니다 |

285| `CLAUDE_CODE_DISABLE_THINKING` | `1`로 설정하면 API 요청에서 `thinking` 매개변수를 완전히 생략합니다. 이 매개변수를 거부하는 프록시와 게이트웨이를 위한 호환성 옵션입니다. 기본적으로 사고하는 모델에서는 매개변수를 생략해도 모델이 여전히 사고할 수 있습니다. Anthropic API에서 [확장 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)를 명시적으로 비활성화하려면 대신 `MAX_THINKING_TOKENS=0`을 사용하세요. 사고를 끌 수 없는 Opus 5.5, Sonnet 5.5, Haiku 5.5, Fable 모델에서는 두 변수 모두 사고를 끄지 않습니다. [서드파티 제공업체](/docs/ko/third-party-integrations)에서는 `MAX_THINKING_TOKENS=0`도 마찬가지로 매개변수를 생략하므로 두 변수가 동일하게 동작합니다 |285| `CLAUDE_CODE_DISABLE_THINKING` | `1`로 설정하면 API 요청에서 `thinking` 매개변수를 완전히 생략합니다. 이 매개변수를 거부하는 프록시와 게이트웨이를 위한 호환성 옵션입니다. 기본적으로 사고하는 모델에서는 매개변수를 생략해도 모델이 여전히 사고할 수 있습니다. Anthropic API에서 [확장 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)를 명시적으로 비활성화하려면 대신 `MAX_THINKING_TOKENS=0`을 사용하세요. 두 변수 모두 사고를 끌 수 없는 Opus 5.5, Sonnet 5.5, Haiku 5.5 또는 Fable 모델에서는 사고를 끄지 못합니다. [서드파티 제공업체](/docs/ko/third-party-integrations)에서는 `MAX_THINKING_TOKENS=0`도 마찬가지로 매개변수를 생략하므로, 두 변수가 동일하게 동작합니다 |

286| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | `1`로 설정하면 [LLM 게이트웨이](/docs/ko/llm-gateway) 별칭처럼 Claude Code가 모델 ID를 인식하지 못할 때 사전 [자동 압축](/docs/ko/costs#reduce-token-usage)을 건너뜁니다. 이 변수가 없으면 Claude Code는 해당 ID에 대해 가정한 컨텍스트 윈도우에서 압축합니다. 대신 `CLAUDE_CODE_MAX_CONTEXT_TOKENS`로 가정된 윈도우를 보정할 수 있습니다. 각 변수가 적용되는 경우는 [게이트웨이 또는 사용자 지정 모델 ID의 윈도우 보정](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id)을 참조하세요. Claude Code v2.1.223 이상이 필요합니다 |286| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | `1`로 설정하면 Claude Code가 [LLM 게이트웨이](/docs/ko/llm-gateway) 별칭 같은 모델 ID를 인식하지 못할 때 사전 [자동 압축](/docs/ko/costs#reduce-token-usage)을 건너뜁니다. 이 변수가 없으면 Claude Code는 해당 ID에 대해 가정한 컨텍스트 윈도우에서 압축합니다. 대신 `CLAUDE_CODE_MAX_CONTEXT_TOKENS`로 가정된 윈도우를 보정할 수 있으며, 각 변수가 적용되는 경우는 [게이트웨이 또는 사용자 지정 모델 ID의 윈도우 보정](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id)을 참조하세요. Claude Code v2.1.223 이상이 필요합니다 |

287| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | `1`로 설정하면 [전체 화면 렌더링](/docs/ko/fullscreen)에서 가상 스크롤을 비활성화하고 트랜스크립트의 모든 메시지를 렌더링합니다. 전체 화면 모드에서 스크롤할 때 메시지가 나타나야 할 곳에 빈 영역이 보이면 이 변수를 사용하세요 |287| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | `1`로 설정하면 [전체 화면 렌더링](/docs/ko/fullscreen)에서 가상 스크롤을 비활성화하고 트랜스크립트의 모든 메시지를 렌더링합니다. 전체 화면 모드에서 스크롤할 때 메시지가 표시되어야 할 곳에 빈 영역이 보이면 이 변수를 사용하세요 |

288| `CLAUDE_CODE_DISABLE_WEB_FETCH` | `1`로 설정하면 [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior) 도구를 끕니다. [WebSearch](/docs/ko/tools-reference#websearch-tool-behavior) 도구는 계속 사용할 수 있습니다. Claude Code v2.1.285 이상이 필요합니다 |288| `CLAUDE_CODE_DISABLE_WEB_FETCH` | `1`로 설정하면 [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior) 도구를 끕니다. [WebSearch](/docs/ko/tools-reference#websearch-tool-behavior) 도구는 계속 사용할 수 있습니다. Claude Code v2.1.285 이상이 필요합니다 |

289| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | `1`로 설정하면 Windows에서 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool) 명령을 `cmd.exe` 런처를 거치지 않고 직접 시작합니다. 기본적으로 런처는 [세션을 백그라운드로 전환](/docs/ko/agent-view#from-inside-a-session)할 때처럼 [백그라운드에서 실행 중인](/docs/ko/tools-reference#background-commands) PowerShell 명령이 [세션의 다음 프로세스로 이어지도록](/docs/ko/agent-view#the-supervisor-process) 합니다. 변수를 설정하면 백그라운드로 전환된 PowerShell 명령은 세션의 프로세스가 종료될 때 중지됩니다. Bash 명령은 영향을 받지 않습니다. Claude Code v2.1.269 이상이 필요합니다 |289| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | `1`로 설정하면 Windows에서 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool) 명령을 `cmd.exe` 런처를 거치지 않고 직접 시작합니다. 기본적으로 런처는 [백그라운드에서 실행 중인](/docs/ko/tools-reference#background-commands) PowerShell 명령이 [세션의 다음 프로세스로 이어지도록](/docs/ko/agent-view#the-supervisor-process) 합니다. 예를 들어 [세션을 백그라운드로 보낼](/docs/ko/agent-view#from-inside-a-session) 때가 그렇습니다. 변수를 설정하면 백그라운드로 보낸 PowerShell 명령은 세션의 프로세스가 종료될 때 중지됩니다. Bash 명령은 영향을 받지 않습니다. Claude Code v2.1.269 이상이 필요합니다 |

290| `CLAUDE_CODE_DISABLE_WORKFLOWS` | `1`로 설정하면 [워크플로](/docs/ko/workflows#turn-workflows-off)를 비활성화합니다. [`disableWorkflows`](/docs/ko/settings-reference#disableworkflows) 설정과 동일합니다 |290| `CLAUDE_CODE_DISABLE_WORKFLOWS` | `1`로 설정하면 [워크플로](/docs/ko/workflows#turn-workflows-off)를 비활성화합니다. [`disableWorkflows`](/docs/ko/settings-reference#disableworkflows) 설정과 동일합니다 |

291| `CLAUDE_CODE_EFFORT_LEVEL` | 지원되는 모델의 effort 수준을 설정합니다. 값: `low`, `medium`, `high`, `xhigh`, `max`, 또는 모델 기본값을 사용하려면 `auto`. 사용 가능한 수준은 모델에 따라 다릅니다. `--effort`, `/effort`, `modelSettings` 및 `effortLevel` 설정보다 우선합니다. [`maxEffortLevel`](/docs/ko/settings-reference#maxeffortlevel) 상한은 여전히 적용됩니다. [effort 수준 조정](/docs/ko/model-config#adjust-effort-level)을 참조하세요 |291| `CLAUDE_CODE_EFFORT_LEVEL` | 지원되는 모델의 effort 수준을 설정합니다. 값: `low`, `medium`, `high`, `xhigh`, `max` 또는 모델 기본값을 사용하려면 `auto`. 사용 가능한 수준은 모델에 따라 다릅니다. `--effort`, `/effort`, `modelSettings` 및 `effortLevel` 설정보다 우선합니다. [`maxEffortLevel`](/docs/ko/settings-reference#maxeffortlevel) 상한은 여전히 적용됩니다. [effort 수준 조정](/docs/ko/model-config#adjust-effort-level)을 참조하세요 |

292| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | `1`로 설정하면 세션의 상태를 담은 [`session_state_changed`](/docs/ko/agent-sdk/typescript#sdksessionstatechangedmessage) 메시지를 메시지 스트림에 추가합니다. [Agent SDK](/docs/ko/agent-sdk/overview)가 필요하거나, `--print`, `--output-format stream-json`, `--verbose`가 모두 필요합니다 |292| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | `1`로 설정하면 세션 상태를 담은 [`session_state_changed`](/docs/ko/agent-sdk/typescript#sdksessionstatechangedmessage) 메시지를 메시지 스트림에 추가합니다. [Agent SDK](/docs/ko/agent-sdk/overview) 또는 `--print`, `--output-format stream-json`, `--verbose`가 필요합니다 |

293| `CLAUDE_CODE_ENABLE_AUTO_MODE` | 이전 릴리스와의 호환성을 위해 허용되며 아무런 효과가 없습니다. 자동 모드는 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, 로그인된 [Claude apps gateway](/docs/ko/claude-apps-gateway) 세션을 포함한 모든 공급자에서 기본적으로 사용할 수 있습니다. v2.1.158부터 v2.1.206까지는 해당 공급자에서 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)를 사용하려면 이 값을 `1`로 설정해야 했습니다 |293| `CLAUDE_CODE_ENABLE_AUTO_MODE` | 이전 릴리스와의 호환성을 위해 허용되며 아무 효과가 없습니다. 자동 모드는 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, 로그인된 [Claude apps gateway](/docs/ko/claude-apps-gateway) 세션을 포함한 모든 제공자에서 기본적으로 사용할 수 있습니다. v2.1.158부터 v2.1.206까지는 해당 제공자에서 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)를 사용하려면 이 값을 `1`로 설정해야 했습니다 |

294| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | [세션 요약](/docs/ko/interactive-mode#session-recap) 사용 가능 여부를 재정의합니다. `0`으로 설정하면 `/config` 토글과 관계없이 요약을 강제로 끕니다. `1`로 설정하면 [`awaySummaryEnabled`](/docs/ko/settings-reference#awaysummaryenabled)가 `false`일 때 요약을 강제로 켭니다. 설정 및 `/config` 토글보다 우선합니다 |294| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | [세션 요약](/docs/ko/interactive-mode#session-recap) 사용 여부를 재정의합니다. `0`으로 설정하면 `/config` 토글과 관계없이 요약을 강제로 끕니다. `1`로 설정하면 [`awaySummaryEnabled`](/docs/ko/settings-reference#awaysummaryenabled)가 `false`일 때 요약을 강제로 켭니다. 설정과 `/config` 토글보다 우선합니다 |

295| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | `1`로 설정하면 백그라운드 설치가 완료된 후 [비대화형 모드](/docs/ko/headless)에서 턴 경계마다 플러그인 상태를 새로 고칩니다. 새로 고침은 세션 도중 시스템 프롬프트를 변경하여 해당 턴의 [프롬프트 캐싱](/docs/ko/prompt-caching)을 무효화하므로 기본적으로 꺼져 있습니다 |295| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | `1`로 설정하면 백그라운드 설치가 완료된 후 [비대화형 모드](/docs/ko/headless)에서 턴 경계마다 플러그인 상태를 새로 고칩니다. 새로 고침은 세션 도중 시스템 프롬프트를 변경하여 해당 턴의 [프롬프트 캐싱](/docs/ko/prompt-caching)을 무효화하므로 기본적으로 꺼져 있습니다 |

296| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | `1`로 설정하면 Anthropic으로 향하는 비필수 트래픽이 차단된 경우 "How is Claude doing?" 세션 품질 설문을 자체 [OpenTelemetry 수집기](/docs/ko/monitoring-usage)로 라우팅합니다. 설문 평가는 구성된 수집기에 OTEL 이벤트로만 전송됩니다. 이 모드에서는 설문 데이터가 Anthropic으로 전송되지 않습니다. `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` 또는 `DO_NOT_TRACK`이 설정된 경우에 적용되며, 그렇지 않으면 효과가 없습니다. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`와 조직의 제품 피드백 정책이 우선합니다 |296| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | `1`로 설정하면 Anthropic으로 향하는 비필수 트래픽이 차단된 경우 "How is Claude doing?" 세션 품질 설문을 자체 [OpenTelemetry 수집기](/docs/ko/monitoring-usage)로 전달합니다. 설문 평가는 구성된 수집기에 OTEL 이벤트로만 전송됩니다. 이 모드에서는 어떤 설문 데이터도 Anthropic으로 전송되지 않습니다. `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` 또는 `DO_NOT_TRACK`이 설정된 경우에 적용되며, 그렇지 않으면 아무 효과가 없습니다. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`와 조직의 제품 피드백 정책이 우선합니다 |

297| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Claude가 도구 호출 입력을 생성하는 동안 API에서 스트리밍할지 여부를 제어합니다. 이 기능이 꺼져 있으면 긴 파일 쓰기와 같은 큰 도구 입력은 Claude가 생성을 마친 후에야 도착하므로 멈춘 것처럼 보일 수 있습니다. Anthropic API에서는 기본적으로 활성화되어 있습니다. Amazon Bedrock 및 Google Cloud의 Agent Platform에서는 배포된 컨테이너가 지원하는 경우 모델별로 활성화됩니다. 옵트아웃하려면 `0`으로 설정합니다. `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` 또는 `ANTHROPIC_BEDROCK_BASE_URL`을 통해 프록시로 라우팅할 때 강제로 켜려면 `1`로 설정합니다. Microsoft Foundry 및 [게이트웨이](/docs/ko/llm-gateway) 연결에서는 기본적으로 꺼져 있습니다 |297| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Claude가 도구 호출 입력을 생성하는 동안 API에서 해당 입력을 스트리밍할지 여부를 제어합니다. 이 기능이 꺼져 있으면 긴 파일 쓰기와 같은 큰 도구 입력은 Claude가 생성을 마친 후에야 도착하므로 멈춘 것처럼 보일 수 있습니다. Anthropic API에서는 기본적으로 활성화되어 있습니다. Amazon Bedrock과 Google Cloud의 Agent Platform에서는 배포된 컨테이너가 지원하는 모델별로 활성화됩니다. 사용하지 않으려면 `0`으로 설정합니다. `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` 또는 `ANTHROPIC_BEDROCK_BASE_URL`을 통해 프록시로 라우팅할 때 강제로 켜려면 `1`로 설정합니다. Microsoft Foundry와 [게이트웨이](/docs/ko/llm-gateway) 연결에서는 기본적으로 꺼져 있습니다 |

298| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | `ANTHROPIC_BASE_URL`이 LiteLLM, Kong 또는 내부 프록시와 같은 Anthropic 호환 게이트웨이를 가리킬 때 게이트웨이의 `/v1/models` 엔드포인트에서 `/model` 선택기를 채우려면 `1`로 설정합니다. 그렇지 않으면 공유 API 키를 사용하는 게이트웨이가 모든 사용자에게 해당 키로 액세스할 수 있는 모든 모델을 표시하게 되므로 기본적으로 꺼져 있습니다. 검색된 모델은 여전히 세션이 받는 [`availableModels`](/docs/ko/settings-reference#availablemodels) 허용 목록으로 필터링됩니다. [게이트웨이 구성에서는 서버 관리형 전달을 사용할 수 없으므로](/docs/ko/server-managed-settings#platform-availability) 목록은 [MDM 또는 관리형 설정 파일](/docs/ko/managed-settings#delivery-mechanisms)을 통해 전달합니다 |298| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | `ANTHROPIC_BASE_URL`이 LiteLLM, Kong 또는 내부 프록시와 같은 Anthropic 호환 게이트웨이를 가리킬 때 `1`로 설정하면 게이트웨이의 `/v1/models` 엔드포인트에서 `/model` 선택기를 채웁니다. 공유 API 키를 사용하는 게이트웨이에서는 키가 접근할 수 있는 모든 모델이 모든 사용자에게 표시되므로 기본적으로 꺼져 있습니다. 검색된 모델은 세션이 받는 [`availableModels`](/docs/ko/settings-reference#availablemodels) 허용 목록으로 여전히 필터링됩니다. [게이트웨이 구성에서는 서버 관리형 전달을 사용할 수 없으므로](/docs/ko/server-managed-settings#platform-availability) 목록은 [MDM 또는 관리형 설정 파일](/docs/ko/managed-settings#delivery-mechanisms)을 통해 전달해야 합니다 |

299| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | [빠른 모드](/docs/ko/fast-mode) 기본값이 Opus 4.6에서 Opus 4.7로 변경된 v2.1.142에서 제거되었습니다 |299| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | [빠른 모드](/docs/ko/fast-mode) 기본값이 Opus 4.6에서 Opus 4.7로 변경되면서 v2.1.142에서 제거되었습니다 |

300| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | `false`로 설정하면 프롬프트 입력에 회색으로 표시되는 예측인 프롬프트 제안을 끕니다. `/config`의 **Prompt suggestions** 토글이 기록하는 [`promptSuggestionEnabled`](/docs/ko/settings-reference#promptsuggestionenabled) 설정보다 우선합니다. 또한 Claude Code는 [계정이 사용 한도에 가까워지거나 도달하면 제안을 일시 중지합니다](/docs/ko/interactive-mode#when-claude-code-skips-suggestions). 한도에 도달할 때까지 제안을 계속 켜 두려면 `true`로 설정합니다. Claude Code v2.1.238 이상이 필요합니다. [프롬프트 제안](/docs/ko/interactive-mode#prompt-suggestions)을 참조하세요 |300| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | `false`로 설정하면 프롬프트 입력란에 회색으로 표시되는 예측인 프롬프트 제안을 끕니다. `/config`의 **Prompt suggestions** 토글이 기록하는 [`promptSuggestionEnabled`](/docs/ko/settings-reference#promptsuggestionenabled) 설정보다 우선합니다. Claude Code는 또한 [계정이 사용 한도에 가까워지거나 도달하면 제안을 일시 중지](/docs/ko/interactive-mode#when-claude-code-skips-suggestions)합니다. 한도에 도달할 때까지 제안을 계속 켜 두려면 `true`로 설정합니다. Claude Code v2.1.238 이상이 필요합니다. [프롬프트 제안](/docs/ko/interactive-mode#prompt-suggestions)을 참조하세요 |

301| `CLAUDE_CODE_ENABLE_TASKS` | [해당 도구가 있는 세션](/docs/ko/tools-reference#task-tool-availability)에서 Claude Code가 제공하는 작업 추적 도구를 선택합니다. 기본적으로 Claude Code는 Task 도구인 `TaskCreate`, `TaskUpdate`, `TaskGet`, `TaskList`를 제공합니다. 대신 레거시 `TodoWrite` 도구를 사용하려면 `0`으로 설정합니다. [작업 목록](/docs/ko/interactive-mode#task-list)을 참조하세요 |301| `CLAUDE_CODE_ENABLE_TASKS` | [작업 추적 도구가 있는 세션](/docs/ko/tools-reference#task-tool-availability)에서 Claude Code가 제공할 작업 추적 도구를 선택합니다. 기본적으로 Claude Code는 Task 도구인 `TaskCreate`, `TaskUpdate`, `TaskGet`, `TaskList`를 제공합니다. 대신 레거시 `TodoWrite` 도구를 사용하려면 `0`으로 설정합니다. [작업 목록](/docs/ko/interactive-mode#task-list)을 참조하세요 |

302| `CLAUDE_CODE_ENABLE_TELEMETRY` | `1`로 설정하면 메트릭 및 로깅을 위한 OpenTelemetry 데이터 수집을 활성화합니다. OTel 익스포터를 구성하기 전에 필요합니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |302| `CLAUDE_CODE_ENABLE_TELEMETRY` | `1`로 설정하면 메트릭과 로깅을 위한 OpenTelemetry 데이터 수집을 활성화합니다. OTel 익스포터를 구성하기 전에 필요합니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

303| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | `1`로 설정하면 모든 모델에서 작업 추적 도구를 사용할 수 있습니다. 이 변수가 없으면 Claude Code는 [Task 도구 가용성](/docs/ko/tools-reference#task-tool-availability)에 나열된 모델에서만 기본적으로 이 도구를 제공합니다. `CLAUDE_CODE_ENABLE_TASKS`는 여전히 Task 도구 또는 `TodoWrite`를 선택합니다. Claude Code v2.1.233 이상이 필요합니다 |303| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | `1`로 설정하면 모든 모델에서 작업 추적 도구를 사용할 수 있습니다. 이 변수가 없으면 Claude Code는 [Task 도구 사용 가능 여부](/docs/ko/tools-reference#task-tool-availability)에 나열된 모델에서만 기본적으로 이 도구를 제공합니다. Task 도구와 `TodoWrite` 중 어느 것을 사용할지는 여전히 `CLAUDE_CODE_ENABLE_TASKS`가 선택합니다. Claude Code v2.1.233 이상이 필요합니다 |

304| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | 쿼리 루프가 유휴 상태가 된 후 자동으로 종료하기 전까지 대기할 시간(밀리초)입니다. SDK 모드를 사용하는 자동화된 워크플로 및 스크립트에 유용합니다 |304| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | 쿼리 루프가 유휴 상태가 된 후 자동으로 종료하기 전까지 기다리는 시간(밀리초)입니다. SDK 모드를 사용하는 자동화된 워크플로와 스크립트에 유용합니다 |

305| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | `1`로 설정하면 [에이전트 팀](/docs/ko/agent-teams)을 활성화합니다. 에이전트 팀은 실험적 기능이며 기본적으로 비활성화되어 있습니다 |305| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | `1`로 설정하면 [에이전트 팀](/docs/ko/agent-teams)을 활성화합니다. 에이전트 팀은 실험적 기능이며 기본적으로 비활성화되어 있습니다 |

306| `CLAUDE_CODE_EXTRA_BODY` | 모든 API 요청 본문의 최상위 수준에 병합할 JSON 객체입니다. Claude Code가 직접 노출하지 않는 공급자별 매개변수를 전달하는 데 유용합니다. 셸에서 export한 값은 `claude agents` 또는 `--bg`로 디스패치하는 [백그라운드 세션](/docs/ko/agent-view)에도 적용됩니다. v2.1.206 이전에는 백그라운드 세션이 셸에서 export한 값을 무시하고 백그라운드 수퍼바이저 프로세스가 상속한 값을 사용했습니다 |306| `CLAUDE_CODE_EXTRA_BODY` | 모든 API 요청 본문의 최상위 수준에 병합할 JSON 객체입니다. Claude Code가 직접 노출하지 않는 제공자별 매개변수를 전달할 때 유용합니다. 셸에서 export한 값은 `claude agents` 또는 `--bg`로 실행하는 [백그라운드 세션](/docs/ko/agent-view)에도 적용됩니다. v2.1.206 이전에는 백그라운드 세션이 셸에서 export한 값을 무시하고 백그라운드 감독 프로세스가 상속한 값을 사용했습니다 |

307| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | 파일 읽기의 기본 토큰 제한을 재정의합니다. 더 큰 파일을 전체적으로 읽어야 할 때 유용합니다 |307| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | 파일 읽기의 기본 토큰 제한을 재정의합니다. 더 큰 파일을 전체로 읽어야 할 때 유용합니다 |

308| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | `1`로 설정하면 이 `claude`가 다른 Claude Code 세션 내부에서 실행된 경우에도 트랜스크립트 저장, 프롬프트 기록, `claude agents` 등록을 강제합니다. 예를 들어 `screen` 세션이나 Claude Code의 Bash 도구가 처음 시작한 백그라운드 런처에서 상속된 `CLAUDE_CODE_CHILD_SESSION` 값으로 인해 실제 최상위 세션이 중첩 세션으로 잘못 분류될 때 사용합니다. v2.1.178부터 Claude Code는 tmux의 경우를 자동으로 감지하고 상속된 마커를 무시하므로 tmux에서는 더 이상 이 변수가 필요하지 않습니다. v2.1.169 이하에서도 적용되며, 이 변수가 재정의하는 중첩 세션 감지가 제거된 v2.1.170 및 v2.1.171에서는 효과가 없습니다 |308| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | `1`로 설정하면 이 `claude`가 다른 Claude Code 세션 내부에서 실행된 경우에도 트랜스크립트 저장, 프롬프트 기록, `claude agents` 등록을 강제합니다. 예를 들어 `screen` 세션이나 Claude Code의 Bash 도구가 처음 시작한 백그라운드 런처에서 상속된 `CLAUDE_CODE_CHILD_SESSION` 값 때문에 실제 최상위 세션이 중첩 세션으로 잘못 분류되는 경우에 사용합니다. v2.1.178부터 Claude Code는 tmux의 경우를 자동으로 감지하고 상속된 표시를 무시하므로 tmux에서는 더 이상 이 변수가 필요하지 않습니다. v2.1.169 이하에서도 적용되며, 이 변수가 재정의하는 중첩 세션 감지가 제거되었던 v2.1.170과 v2.1.171에서는 아무 효과가 없습니다 |

309| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 터미널이 취소선을 지원하지만 자동 감지되지 않는 경우(예: `TERM_PROGRAM`이 전달되지 않은 SSH 환경) Claude의 응답에서 `~~text~~`의 취소선 렌더링을 강제하려면 `1`로 설정합니다. 이 설정이 없으면 감지되지 않은 터미널에서는 텍스트가 취소선으로 렌더링되지 않고 `~~` 마커가 그대로 표시됩니다. Claude Code v2.1.186 이상이 필요합니다 |309| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | `1`로 설정하면 터미널이 취소선을 지원하지만 자동으로 감지되지 않는 경우(예: `TERM_PROGRAM`이 전달되지 않은 SSH 환경) Claude의 응답에서 `~~text~~`를 취소선으로 강제 렌더링합니다. 이 설정이 없으면 감지되지 않은 터미널에서는 텍스트를 취소선으로 렌더링하는 대신 `~~` 표시가 그대로 표시됩니다. Claude Code v2.1.186 이상이 필요합니다 |

310| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | 터미널이 DEC private mode 2026 [동기화된 출력](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036)을 지원하지만 자동 감지되지 않는 경우 이를 강제로 활성화하려면 `1`로 설정합니다. BSU/ESU를 구현하지만 기능 프로브에 응답하지 않는 Emacs `eat` 같은 에뮬레이터에 유용합니다. tmux에서는 효과가 없습니다. [전체 화면 렌더링](/docs/ko/fullscreen)으로 전환하는 `CLAUDE_CODE_NO_FLICKER`와 달리 이 변수는 렌더러를 변경하지 않습니다 |310| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | `1`로 설정하면 터미널이 DEC private mode 2026 [동기화 출력](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036)을 지원하지만 자동으로 감지되지 않는 경우 이를 강제로 활성화합니다. BSU/ESU를 구현하지만 기능 탐지에 응답하지 않는 Emacs `eat`와 같은 에뮬레이터에 유용합니다. tmux에서는 아무 효과가 없습니다. [전체 화면 렌더링](/docs/ko/fullscreen)으로 전환하는 `CLAUDE_CODE_NO_FLICKER`와 달리 렌더러를 변경하지 않습니다 |

311| `CLAUDE_CODE_FORK_SUBAGENT` | Claude가 직접 [포크된 서브에이전트](/docs/ko/sub-agents#fork-the-current-conversation)를 생성할 수 있게 하는 [포크 모드](/docs/ko/sub-agents#turn-fork-mode-on-or-off)를 제어하며, 포크 모드는 대화형 세션에서만 기본적으로 켜져 있습니다. `claude -p`와 Agent SDK에서도 켜려면 `1`로, 모든 종류의 세션에서 끄려면 `0`으로 설정합니다. `/subtask`는 포크 모드 여부와 관계없이 실행할 수 있습니다. 대화형 기본값에는 Claude Code v2.1.232 이상이 필요하며, 이전 버전에서는 변수를 `1`로 설정해야 포크 모드가 켜집니다 |311| `CLAUDE_CODE_FORCE_TERMINAL_IMAGES` | `1`로 설정하면 터미널이 유니코드 플레이스홀더를 사용하는 kitty 그래픽 프로토콜 이미지를 그리지만 자동으로 감지되지 않는 경우 [mod `Image` 요소](/docs/ko/plugins/mods/reference#elements)를 그림으로 그립니다. [Claude Code가 감지하는 터미널](/docs/ko/plugins/mods/gallery#image-and-client)과 tmux 또는 screen 내부에서는 도움이 되지 않는 이유를 참조하세요 |

312| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | `1`로 설정하면 `claude -p --output-format stream-json` 출력에 [서브에이전트](/docs/ko/sub-agents) 텍스트 및 thinking 블록을 내보냅니다. [`--forward-subagent-text`](/docs/ko/cli-reference#cli-flags) 플래그와 동일한 동작입니다. 하네스가 `claude`를 호출하면서 플래그를 직접 전달할 수 없을 때 이 변수를 사용합니다. stream-json 출력을 사용하는 비대화형 모드 외부에서는 오류와 함께 종료되는 플래그와 달리, 이 변수는 해당 환경에서 무시되므로 프로세스 전체에 설정되어 있어도 중첩 호출이 계속 작동합니다. Claude Code v2.1.211 이상이 필요합니다 |312| `CLAUDE_CODE_FORK_SUBAGENT` | Claude가 직접 [포크된 서브에이전트](/docs/ko/sub-agents#fork-the-current-conversation)를 생성할 수 있게 하는 [포크 모드](/docs/ko/sub-agents#turn-fork-mode-on-or-off)를 제어합니다. 포크 모드는 대화형 세션에서만 기본적으로 켜져 있습니다. `1`로 설정하면 `claude -p`와 Agent SDK에서도 켜지고, `0`으로 설정하면 모든 종류의 세션에서 꺼집니다. `/subtask`는 포크 모드가 켜져 있는지와 관계없이 실행할 수 있습니다. 대화형 기본값에는 Claude Code v2.1.232 이상이 필요하며, 이전 버전에서는 포크 모드를 켜려면 변수를 `1`로 설정합니다 |

313| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | `1`로 설정하면 사용자 지정 프록시 또는 Amazon Bedrock이나 Claude Platform on AWS 같은 서드파티 공급자에서 `x-claude-code-request-class` 및 `x-claude-code-compaction` 같은 [게이트웨이 힌트 헤더](/docs/ko/llm-gateway-protocol#gateway-hint-headers)를 전송합니다. `0`으로 설정하면 Claude Code가 기본적으로 헤더를 전송하는 Anthropic API 직접 연결을 포함한 모든 연결에서 전송을 중지합니다. Claude Code v2.1.273 이상이 필요합니다 |313| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | `1`로 설정하면 `claude -p --output-format stream-json` 출력에 [서브에이전트](/docs/ko/sub-agents) 텍스트와 thinking 블록을 내보냅니다. [`--forward-subagent-text`](/docs/ko/cli-reference#cli-flags) 플래그와 동일한 동작입니다. 하네스가 `claude`를 호출하면서 플래그를 직접 전달할 수 없을 때 이 변수를 사용합니다. stream-json 출력을 사용하는 비대화형 모드 외에서 오류와 함께 종료되는 플래그와 달리, 변수는 그러한 경우 무시되므로 프로세스 전체에 설정해도 중첩 호출이 계속 동작합니다. Claude Code v2.1.211 이상이 필요합니다 |

314| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY`가 켜는 [게이트웨이 모델 검색](/docs/ko/llm-gateway-protocol#model-discovery) 요청의 타임아웃(밀리초)입니다(기본값: `3000`). 게이트웨이가 시작 시 `/v1/models`에 응답하는 데 3초보다 오래 걸리는 경우 값을 늘립니다. 숫자만 허용되며, `0`, 음수 값 및 기타 표기는 기본값을 유지합니다. Claude Code v2.1.269 이상이 필요합니다 |314| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | `1`로 설정하면 사용자 지정 프록시나 Amazon Bedrock, Claude Platform on AWS와 같은 서드파티 제공자에서 `x-claude-code-request-class`, `x-claude-code-compaction`과 같은 [게이트웨이 힌트 헤더](/docs/ko/llm-gateway-protocol#gateway-hint-headers)를 전송합니다. `0`으로 설정하면 Claude Code가 기본적으로 이 헤더를 전송하는 Anthropic API 직접 연결을 포함한 모든 연결에서 전송을 중지합니다. Claude Code v2.1.273 이상이 필요합니다 |

315| `CLAUDE_CODE_GIT_BASH_PATH` | Windows 전용: Git Bash 실행 파일(`bash.exe`)의 경로입니다. Git Bash가 설치되어 있지만 PATH에 없는 경우 사용합니다. 경로가 존재하지 않거나 파일 이름이 `bash.exe`, `sh.exe`, `bash`, `sh`가 아닌 경우 Claude Code는 이 변수를 무시하고 설정되지 않은 것처럼 Git Bash를 자동 감지하며, `--debug`로 확인할 수 있는 경고를 로그에 기록합니다. v2.1.219 이전에는 경로가 존재하지 않으면 Claude Code가 시작 시 종료되었고, bash 또는 sh인지 확인하지 않고 존재하는 모든 파일을 셸로 사용했습니다. [Windows 설정](/docs/ko/setup#set-up-on-windows)을 참조하세요 |315| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY`가 켜는 [게이트웨이 모델 검색](/docs/ko/llm-gateway-protocol#model-discovery) 요청의 타임아웃(밀리초)입니다(기본값: `3000`). 게이트웨이가 시작 시 `/v1/models`에 응답하는 데 3초보다 오래 걸리면 이 값을 높입니다. 숫자만 허용되며, `0`, 음수 값 및 기타 표기는 기본값을 유지합니다. Claude Code v2.1.269 이상이 필요합니다 |

316| `CLAUDE_CODE_GIT_BASH_PATH` | Windows 전용: Git Bash 실행 파일(`bash.exe`)의 경로입니다. Git Bash가 설치되어 있지만 PATH에 없을 때 사용합니다. 경로가 존재하지 않거나 파일 이름이 `bash.exe`, `sh.exe`, `bash`, `sh`가 아니면 Claude Code는 변수를 무시하고 설정되지 않은 것처럼 Git Bash를 자동 감지하며, `--debug`로 확인할 수 있는 경고를 로그에 기록합니다. v2.1.219 이전에는 경로가 존재하지 않으면 Claude Code가 시작 시 종료되었고, 기존 파일이면 bash나 sh인지 확인하지 않고 셸로 사용했습니다. [Windows 설정](/docs/ko/setup#set-up-on-windows)을 참조하세요 |

316| `CLAUDE_CODE_GLOB_HIDDEN` | `false`로 설정하면 Claude가 [Glob 도구](/docs/ko/tools-reference#glob-tool-behavior)를 호출할 때 결과에서 dotfile을 제외합니다. 기본적으로 포함됩니다. `@` 파일 자동 완성, `ls`, Grep, Read에는 영향을 주지 않습니다 |317| `CLAUDE_CODE_GLOB_HIDDEN` | `false`로 설정하면 Claude가 [Glob 도구](/docs/ko/tools-reference#glob-tool-behavior)를 호출할 때 결과에서 dotfile을 제외합니다. 기본적으로 포함됩니다. `@` 파일 자동 완성, `ls`, Grep, Read에는 영향을 주지 않습니다 |

317| `CLAUDE_CODE_GLOB_NO_IGNORE` | `false`로 설정하면 [Glob 도구](/docs/ko/tools-reference#glob-tool-behavior)가 `.gitignore` 패턴을 따르도록 합니다. 기본적으로 Glob은 gitignore된 파일을 포함하여 일치하는 모든 파일을 반환합니다. 자체 [`respectGitignore` 설정](/docs/ko/settings-reference#respectgitignore)이 있는 `@` 파일 자동 완성에는 영향을 주지 않습니다 |318| `CLAUDE_CODE_GLOB_NO_IGNORE` | `false`로 설정하면 [Glob 도구](/docs/ko/tools-reference#glob-tool-behavior)가 `.gitignore` 패턴을 따르도록 합니다. 기본적으로 Glob은 gitignore된 파일을 포함하여 일치하는 모든 파일을 반환합니다. 자체 [`respectGitignore` 설정](/docs/ko/settings-reference#respectgitignore)이 있는 `@` 파일 자동 완성에는 영향을 주지 않습니다 |

318| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Glob 도구 파일 검색의 타임아웃(초)입니다. 대부분의 플랫폼에서 기본값은 20초이며 WSL에서는 60초입니다 |319| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Glob 도구 파일 검색의 타임아웃(초)입니다. 대부분의 플랫폼에서 기본값은 20초이고 WSL에서는 60초입니다 |

319| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Claude Code가 [Claude에게 확인을 요청](/docs/ko/goal#background-work-defers-evaluation)하기 전까지 백그라운드 작업이 활성 목표를 대기 상태로 유지할 수 있는 시간(분)입니다. 기본값은 `30`입니다. 확인을 끄려면 `0`으로 설정합니다. 최대 `10080`(1주일)까지의 정수 분을 숫자로만 지정합니다. Claude Code는 다른 값을 설정되지 않은 것으로 간주하고 기본값을 사용합니다. Claude Code v2.1.234 이상이 필요합니다 |320| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | 백그라운드 작업이 활성 목표를 대기 상태로 둘 수 있는 시간(분)으로, 이 시간이 지나면 Claude Code가 [Claude에게 목표를 확인하도록 요청](/docs/ko/goal#background-work-defers-evaluation)합니다. 기본값은 `30`입니다. 확인을 끄려면 `0`으로 설정합니다. 정수 분을 숫자로만 입력하며, 최대값은 1주일인 `10080`입니다. Claude Code는 그 외의 값을 설정되지 않은 것으로 처리하고 기본값을 사용합니다. Claude Code v2.1.234 이상이 필요합니다 |

320| `CLAUDE_CODE_GZIP_REQUEST_BODIES` | `0`으로 설정하면 `api.anthropic.com`으로 전송되는 Claude API, 텔레메트리, [아티팩트](/docs/ko/artifacts) 게시 요청 본문의 gzip 압축을 끕니다. 기본적으로 Claude Code는 직접 연결에서 큰 요청 본문을 압축하며, 프록시를 통해 요청을 보내거나 클라이언트 인증서를 구성하거나 `NODE_EXTRA_CA_CERTS`를 설정한 경우에는 압축을 건너뜁니다. Claude Code가 감지할 수 없는 [TLS 검사 프록시](/docs/ko/network-config#ca-certificate-store)가 압축된 요청을 잘못 처리하는 경우 `0`을 사용합니다 |321| `CLAUDE_CODE_GZIP_REQUEST_BODIES` | `0`으로 설정하면 `api.anthropic.com`으로 전송되는 Claude API, 텔레메트리, [아티팩트](/docs/ko/artifacts) 게시 요청 본문의 gzip 압축을 끕니다. 기본적으로 Claude Code는 직접 연결에서 큰 요청 본문을 압축하며, 프록시를 통해 요청을 보내거나 클라이언트 인증서를 구성하거나 `NODE_EXTRA_CA_CERTS`를 설정한 경우에는 압축을 건너뜁니다. Claude Code가 감지할 수 없는 [TLS 검사 프록시](/docs/ko/network-config#ca-certificate-store)가 압축된 요청을 잘못 처리하는 경우 `0`을 사용합니다 |

321| `CLAUDE_CODE_HIDE_CWD` | `1`로 설정하면 시작 로고에서 작업 디렉터리를 숨깁니다. 경로에 OS 사용자 이름이 노출되는 화면 공유나 녹화에 유용합니다 |322| `CLAUDE_CODE_HIDE_CWD` | `1`로 설정하면 시작 로고에서 작업 디렉터리를 숨깁니다. 경로에 OS 사용자 이름이 노출되는 화면 공유나 녹화에 유용합니다 |

322| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | IDE 확장에 연결하는 데 사용되는 호스트 주소를 재정의합니다. 기본적으로 Claude Code는 WSL에서 Windows로의 라우팅을 포함하여 올바른 주소를 자동 감지합니다 |323| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | IDE 확장에 연결할 때 사용하는 호스트 주소를 재정의합니다. 기본적으로 Claude Code는 WSL에서 Windows로의 라우팅을 포함하여 올바른 주소를 자동으로 감지합니다 |

323| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | `1`로 설정하면 IDE 확장의 자동 설치를 건너뜁니다. [`autoInstallIdeExtension`](/docs/ko/settings-reference#autoinstallideextension)을 `false`로 설정하는 것과 동일합니다 |324| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | `1`로 설정하면 IDE 확장의 자동 설치를 건너뜁니다. [`autoInstallIdeExtension`](/docs/ko/settings-reference#autoinstallideextension)을 `false`로 설정하는 것과 같습니다 |

324| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | `1`로 설정하면 연결 중 IDE 잠금 파일 항목의 유효성 검사를 건너뜁니다. IDE가 실행 중인데도 자동 연결이 IDE를 찾지 못하는 경우 사용합니다 |325| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | `1`로 설정하면 연결 중 IDE 잠금 파일 항목의 유효성 검사를 건너뜁니다. IDE가 실행 중인데도 자동 연결이 IDE를 찾지 못할 때 사용합니다 |

325| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Agent 도구가 추가 생성을 거부하기 전까지 한 세션에서 동시에 실행될 수 있는 [서브에이전트](/docs/ko/sub-agents#concurrent-subagent-limit) 수입니다(기본값: 20). 숫자로만 된 양의 정수를 허용하며, 그 외 값은 무시되므로 이 변수로 상한을 조정할 수는 있지만 비활성화할 수는 없습니다. Claude Code v2.1.217 이상이 필요합니다 |326| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Agent 도구가 추가 생성을 거부하기 전까지 한 세션에서 동시에 실행될 수 있는 [서브에이전트](/docs/ko/sub-agents#concurrent-subagent-limit) 수입니다(기본값: 20). 양의 정수를 숫자로만 허용하며, 그 외의 값은 무시되므로 이 변수로 상한을 조정할 수는 있지만 비활성화할 수는 없습니다. Claude Code v2.1.217 이상이 필요합니다 |

326| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Claude Code가 활성 모델에 대해 가정하는 컨텍스트 윈도우 크기를 재정의합니다. v2.1.193부터는 Claude Code가 모델 ID를 확인하는 방식에 따라 적용 방식이 달라집니다. [게이트웨이 또는 사용자 지정 모델 ID의 윈도우 수정](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id)을 참조하세요. 이름에 해당하는 기본 제공 크기와 컨텍스트 윈도우가 일치하지 않는 모델로 `ANTHROPIC_BASE_URL`을 통해 라우팅할 때 사용합니다 |327| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Claude Code가 활성 모델에 대해 가정하는 컨텍스트 윈도우 크기를 재정의합니다. v2.1.193부터는 Claude Code가 모델 ID를 확인하는 방식에 따라 적용 방식이 달라집니다. [게이트웨이 또는 사용자 지정 모델 ID의 윈도우 수정](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id)을 참조하세요. 컨텍스트 윈도우가 이름에 해당하는 기본 크기와 일치하지 않는 모델로 `ANTHROPIC_BASE_URL`을 통해 라우팅할 때 사용합니다 |

327| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Claude Code가 모델에 전송하는 각 MCP 도구 설명 및 각 MCP 서버 지침의 최대 길이(문자 수)입니다(기본값: 2048). Claude Code는 [더 긴 텍스트를 잘라냅니다](/docs/ko/mcp#for-mcp-server-authors). 숫자로만 된 양의 정수를 허용합니다. 그 외 값은 무시되고 기본값이 적용됩니다. Claude Code v2.1.280 이상이 필요합니다 |328| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Claude Code가 모델에 전송하는 각 MCP 도구 설명과 각 MCP 서버 지침의 최대 길이(문자 수)입니다(기본값: 2048). Claude Code는 [더 긴 텍스트를 잘라냅니다](/docs/ko/mcp#for-mcp-server-authors). 양의 정수를 숫자로만 허용합니다. 그 외의 값은 무시되고 기본값이 적용됩니다. Claude Code v2.1.280 이상이 필요합니다 |

328| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 대부분의 요청에 대한 최대 출력 토큰 수를 설정합니다. 기본값과 상한은 모델마다 다릅니다. [최대 출력 토큰](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison)을 참조하세요. Claude Code는 모델의 상한을 초과하는 값을 상한으로 낮춥니다. Claude Code가 알려진 모델로 확인할 수 없는 모델 ID의 경우 기본값은 32000이고 상한은 128000입니다. 이 값을 늘리면 [자동 압축](/docs/ko/costs#reduce-token-usage)이 트리거되기 전에 사용할 수 있는 유효 컨텍스트 윈도우가 줄어듭니다 |329| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 대부분의 요청에 대한 최대 출력 토큰 수를 설정합니다. 기본값과 상한은 모델마다 다릅니다. [최대 출력 토큰](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison)을 참조하세요. Claude Code는 모델의 상한을 초과하는 값을 상한으로 낮춥니다. Claude Code가 알려진 모델로 확인할 수 없는 모델 ID의 경우 기본값은 32000이고 상한은 128000입니다. 이 값을 늘리면 [자동 압축](/docs/ko/costs#reduce-token-usage)이 실행되기 전에 사용할 수 있는 유효 컨텍스트 윈도우가 줄어듭니다 |

329| `CLAUDE_CODE_MAX_RETRIES` | 실패한 API 요청을 재시도하는 횟수를 재정의합니다(기본값: 10). v2.1.186부터 최대 15로 제한되며, v2.1.199부터는 `CLAUDE_CODE_RETRY_WATCHDOG`가 기본값을 높이고 상한을 제거합니다. 더 긴 장애 동안 대기해야 하는 무인 세션에는 대신 `CLAUDE_CODE_RETRY_WATCHDOG`를 설정합니다 |330| `CLAUDE_CODE_MAX_RETRIES` | 실패한 API 요청의 재시도 횟수를 재정의합니다(기본값: 10). v2.1.186부터 상한은 15입니다. v2.1.199부터는 `CLAUDE_CODE_RETRY_WATCHDOG`가 기본값을 높이고 상한을 제거합니다. 더 긴 장애 동안 기다려야 하는 무인 세션에서는 대신 `CLAUDE_CODE_RETRY_WATCHDOG`를 설정합니다 |

330| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | v2.1.224에서 제거되었으며 이제 아무 동작도 하지 않습니다. 이전에는 Claude가 한 세션에서 Agent 도구로 생성할 수 있는 [서브에이전트](/docs/ko/sub-agents)의 총 수를 제한했습니다(기본값: 200). 상한을 넘어 생성하면 `Subagent spawn limit reached`와 함께 실패했습니다. [동시 서브에이전트 제한](/docs/ko/sub-agents#concurrent-subagent-limit)과 [깊이 제한](/docs/ko/sub-agents#let-subagents-spawn-their-own-subagents)은 여전히 적용됩니다 |331| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | v2.1.224에서 제거되었으며 이제 아무 동작도 하지 않습니다. 이전에는 한 세션에서 Claude가 Agent 도구로 생성할 수 있는 [서브에이전트](/docs/ko/sub-agents)의 총 개수를 제한했으며(기본값: 200), 상한을 넘어 생성하면 `Subagent spawn limit reached`와 함께 실패했습니다. [동시 서브에이전트 제한](/docs/ko/sub-agents#concurrent-subagent-limit)과 [깊이 제한](/docs/ko/sub-agents#let-subagents-spawn-their-own-subagents)은 여전히 적용됩니다 |

331| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | 메인 대화 아래에 허용되는 [서브에이전트 계층](/docs/ko/sub-agents#let-subagents-spawn-their-own-subagents) 수입니다 (기본값: 3). 기본값에서는 서브에이전트가 자체 서브에이전트를 생성할 수 있으며, 세 번째 계층의 서브에이전트는 더 이상 생성할 수 없습니다. 중첩을 끄려면 `1`로 설정합니다. v2.1.217부터 v2.1.218까지는 기본값이 1이었으므로 제한을 높이지 않으면 서브에이전트가 자체 서브에이전트를 생성할 수 없었으며, v2.1.219에서 기본값이 3으로 높아졌습니다. 숫자로만 된 양의 정수를 허용하며, 그 외 값은 무시되므로 제한을 조정할 수는 있지만 제거할 수는 없습니다. Claude Code v2.1.217 이상이 필요합니다 |332| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | 메인 대화 아래에 허용되는 [서브에이전트 계층](/docs/ko/sub-agents#let-subagents-spawn-their-own-subagents) 수입니다 (기본값: 3). 기본값에서는 서브에이전트가 자체 서브에이전트를 생성할 수 있으며, 세 번째 계층의 서브에이전트는 더 이상 생성할 수 없습니다. 중첩을 끄려면 `1`로 설정합니다. v2.1.217부터 v2.1.218까지는 기본값이 1이어서 제한을 높이지 않으면 서브에이전트가 자체 서브에이전트를 생성할 수 없었으며, v2.1.219에서 기본값이 3으로 높아졌습니다. 양의 정수를 숫자로만 허용하며, 그 외의 값은 무시되므로 제한을 조정할 수는 있지만 제거할 수는 없습니다. Claude Code v2.1.217 이상이 필요합니다 |

332| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 병렬로 실행할 수 있는 읽기 전용 도구 및 서브에이전트의 최대 수입니다(기본값: 10). 값이 클수록 병렬 처리가 늘어나지만 더 많은 리소스를 사용합니다 |333| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 병렬로 실행할 수 있는 읽기 전용 도구와 서브에이전트의 최대 개수입니다(기본값: 10). 값이 높을수록 병렬성이 높아지지만 더 많은 리소스를 소비합니다 |

333| `CLAUDE_CODE_MAX_TURNS` | 명시적인 제한이 전달되지 않은 경우 에이전트 턴 수를 제한합니다. [`--max-turns`](/docs/ko/cli-reference#cli-flags)를 전달하는 것과 동일하며, 둘 다 설정된 경우 플래그가 우선합니다. 양의 정수가 아닌 값은 제한 없음으로 처리되지 않고 시작 시 오류와 함께 거부됩니다 |334| `CLAUDE_CODE_MAX_TURNS` | 명시적인 제한이 전달되지 않은 경우 에이전트 턴 수를 제한합니다. [`--max-turns`](/docs/ko/cli-reference#cli-flags)를 전달하는 것과 같으며, 둘 다 설정된 경우 플래그가 우선합니다. 양의 정수가 아닌 값은 상한 없음으로 처리되지 않고 시작 시 오류와 함께 거부됩니다 |

334| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | 한 세션에서 수행할 수 있는 [WebSearch](/docs/ko/tools-reference#websearch-tool-behavior) 호출의 총 수 상한입니다(기본값: 200). Claude가 상한에 도달하면 이후 WebSearch 호출은 이미 수집한 정보로 계속 진행하라는 알림을 반환합니다. 상한이 없는 양의 정수를 허용합니다. 그 외 값은 무시되고 기본값이 적용되므로 상한을 높일 수는 있지만 끌 수는 없습니다. Claude Code v2.1.212 이상이 필요합니다 |335| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | [WebSearch](/docs/ko/tools-reference#session-search-limit) 호출 상한입니다(기본값: 200). Claude가 상한에 도달하면 이후 WebSearch 호출은 이미 수집한 정보로 계속 진행하라는 알림을 반환합니다. 상한 없이 양의 정수를 허용합니다. 그 외의 값은 무시되고 기본값이 적용되므로 상한을 높일 수는 있지만 끌 수는 없습니다. Claude Code v2.1.212 이상이 필요합니다 |

335| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | `1`로 설정하면 셸 환경을 상속하는 대신 안전한 기본 환경과 서버에 구성된 `env`만으로 stdio MCP 서버를 생성합니다 |336| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | `1`로 설정하면 셸 환경을 상속하는 대신 안전한 기본 환경과 서버에 구성된 `env`만으로 stdio MCP 서버를 생성합니다 |

336| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | 실행 중인 MCP 도구 호출이 [백그라운드 작업으로 이동](/docs/ko/mcp#automatic-backgrounding-of-long-tool-calls)하기까지의 경과 시간(밀리초)입니다(기본값: 120000, 즉 2분). 자동 백그라운드 전환을 끄려면 `0`으로 설정합니다. Claude Code v2.1.212 이상이 필요합니다 |337| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | 아직 실행 중인 MCP 도구 호출이 [백그라운드 작업으로 이동](/docs/ko/mcp#automatic-backgrounding-of-long-tool-calls)하기 전까지의 경과 시간(밀리초)입니다(기본값: 120000, 즉 2분). 자동 백그라운드 전환을 끄려면 `0`으로 설정합니다. Claude Code v2.1.212 이상이 필요합니다 |

337| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | [비대화형](/docs/ko/headless) 세션의 첫 턴이 아직 연결 중인 MCP 서버를 기다리는 시간(밀리초)으로, 기본 [첫 턴 대기](/docs/ko/agent-sdk/mcp#connection-timing)를 대체합니다. 설정하면 대기는 보류 중인 모든 서버에 적용됩니다. 대기를 건너뛰려면 `0`으로 설정합니다. [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags) 서버는 값과 관계없이 자체 `MCP_TIMEOUT` 대기를 유지합니다. Claude Code v2.1.274 이상이 필요합니다 |338| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | [비대화형](/docs/ko/headless) 세션의 첫 번째 턴이 아직 연결 중인 MCP 서버를 기다리는 시간(밀리초)으로, 기본 [첫 번째 턴 대기](/docs/ko/agent-sdk/mcp#connection-timing)를 대신합니다. 설정하면 대기가 보류 중인 모든 서버에 적용됩니다. 대기를 건너뛰려면 `0`으로 설정합니다. [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags) 서버는 값과 관계없이 자체 `MCP_TIMEOUT` 대기를 유지합니다. Claude Code v2.1.274 이상이 필요합니다 |

338| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | MCP 도구 호출의 유휴 타임아웃(밀리초)입니다. stdio, HTTP, SSE, WebSocket 또는 [claude.ai 커넥터](/docs/ko/mcp#use-mcp-servers-from-claude-ai) MCP 서버가 이 시간 동안 응답이나 진행 알림을 보내지 않으면 전체 `MCP_TOOL_TIMEOUT`을 기다리지 않고 도구 호출이 오류와 함께 중단됩니다. 네트워크 서버의 경우 300000(5분), stdio 서버의 경우 1800000(30분)인 전송별 기본값을 재정의합니다. 유휴 검사를 비활성화하려면 `0`으로 설정합니다. 1000 미만의 값은 1초로 올려지며, 값은 유효 `MCP_TOOL_TIMEOUT`으로 제한됩니다. `.mcp.json`의 서버별 `timeout`이 1000 이상이면 해당 서버의 유휴 시간 창이 최소한 `timeout` 값으로 늘어납니다. IDE 서버나 SDK 프로세스 내 서버에는 적용되지 않습니다. Claude Code v2.1.187 이상이 필요합니다. v2.1.203 이전에는 stdio 서버가 유휴 타임아웃에서 제외되었습니다 |339| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | MCP 도구 호출의 유휴 타임아웃(밀리초)입니다. stdio, HTTP, SSE, WebSocket 또는 [claude.ai 커넥터](/docs/ko/mcp#use-mcp-servers-from-claude-ai) MCP 서버가 이 시간 동안 응답이나 진행 알림을 보내지 않으면, 전체 `MCP_TOOL_TIMEOUT`을 기다리는 대신 도구 호출이 오류와 함께 중단됩니다. 네트워크 서버의 300000(5분), stdio 서버의 1800000(30분)인 전송 방식별 기본값을 재정의합니다. 유휴 검사를 비활성화하려면 `0`으로 설정합니다. 1000 미만의 값은 1초로 올라가며, 값은 유효 `MCP_TOOL_TIMEOUT`으로 제한됩니다. `.mcp.json`에서 서버별 `timeout`이 1000 이상이면 해당 서버의 유휴 기간이 최소 `timeout` 값으로 올라갑니다. IDE 서버나 SDK 인프로세스 서버에는 적용되지 않습니다. Claude Code v2.1.187 이상이 필요합니다. v2.1.203 이전에는 stdio 서버가 유휴 타임아웃에서 제외되었습니다 |

339| `CLAUDE_CODE_MESSAGING_SOCKET` | 사용자가 아닌 Claude Code가 설정합니다. [수신함 소켓](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)을 바인딩하는 세션에서 Claude Code는 소켓을 바인딩할 때 해당 소켓의 경로를 훅과 Bash 명령에 export합니다. 메시징이 켜진 상태로 시작하는 세션에서는 Claude Code가 훅이 실행되기 전에 소켓을 바인딩합니다. 머신의 다른 세션은 이 경로로 메시지를 전달합니다. 각 세션은 부모로부터 상속된 소켓이 아닌 자체 소켓을 export하며, 이 소켓에 도착하는 메시지는 세션의 [수신 제어](/docs/ko/cross-session-messaging#control-inbound-messages)를 거칩니다. 설정의 `env` 블록으로는 설정할 수 없습니다. Claude Code v2.1.224 이상이 필요합니다 |340| `CLAUDE_CODE_MESSAGING_SOCKET` | 사용자가 아닌 Claude Code가 설정합니다. [수신함 소켓](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)을 바인딩하는 세션에서 Claude Code는 소켓을 바인딩할 때 해당 소켓의 경로를 훅과 Bash 명령에 export합니다. 메시징이 켜진 상태로 시작하는 세션에서는 훅이 실행되기 전에 Claude Code가 소켓을 바인딩합니다. 머신의 다른 세션은 이 경로로 메시지를 전달합니다. 각 세션은 부모에서 상속된 소켓이 아닌 자체 소켓을 export하며, 이 소켓으로 도착하는 메시지는 세션의 [수신 제어](/docs/ko/cross-session-messaging#control-inbound-messages)를 거칩니다. 설정의 `env` 블록에서는 설정할 수 없습니다. Claude Code v2.1.224 이상이 필요합니다 |

340| `CLAUDE_CODE_MESSAGING_TOKEN` | 사용자가 아닌 Claude Code가 설정합니다. [수신함 소켓](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)을 바인딩하는 세션에서 Claude Code는 `CLAUDE_CODE_MESSAGING_SOCKET`과 함께 이 세션별 토큰을 훅과 Bash 명령에 export합니다. 소켓에 게시하는 스크립트는 첫 줄로 `{"type":"auth","token":"<token>"}`을 보내 자신이 해당 세션에 속함을 증명할 수 있습니다. 네이티브 Windows에서는 Claude Code가 이 줄을 요구하며, 유효한 줄로 시작하지 않는 연결은 닫습니다. Claude Code가 토큰을 참조하는 시점은 [자체 자식 규칙](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)에 설명되어 있습니다. 각 세션은 부모 세션에서 상속된 토큰이 아닌 자체 토큰을 export합니다. 설정의 `env` 블록으로는 설정할 수 없습니다. Claude Code v2.1.228 이상이 필요합니다 |341| `CLAUDE_CODE_MESSAGING_TOKEN` | 사용자가 아닌 Claude Code가 설정합니다. [수신함 소켓](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)을 바인딩하는 세션에서 Claude Code는 이 세션별 토큰을 `CLAUDE_CODE_MESSAGING_SOCKET`과 함께 훅과 Bash 명령에 export합니다. 소켓에 메시지를 게시하는 스크립트는 첫 줄로 `{"type":"auth","token":"<token>"}`을 보내 해당 세션에 속함을 증명할 수 있습니다. 네이티브 Windows에서는 Claude Code가 이 줄을 필수로 요구하며, 유효한 줄로 시작하지 않는 연결은 닫습니다. Claude Code가 토큰을 참조하는 시점은 [자체 자식 규칙](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)에 설명되어 있습니다. 각 세션은 자체 토큰을 export하며, 부모 세션에서 상속된 토큰은 절대 사용하지 않습니다. 설정의 `env` 블록에서는 설정할 수 없습니다. Claude Code v2.1.228 이상이 필요합니다 |

341| `CLAUDE_CODE_NATIVE_CURSOR` | `1`로 설정하면 그려진 블록 대신 입력 캐럿 위치에 터미널 자체 커서를 표시합니다. 커서는 터미널의 깜박임, 모양, 포커스 설정을 따릅니다. `0`으로 설정하는 것은 변수를 설정하지 않은 것과 동일하게 처리되므로, 터미널 자체 커서가 이미 켜진 세션에서 그려진 블록을 다시 표시하지 않습니다 |342| `CLAUDE_CODE_NATIVE_CURSOR` | `1`로 설정하면 그려진 블록 대신 입력 캐럿 위치에 터미널 자체 커서를 표시합니다. 커서는 터미널의 깜박임, 모양, 포커스 설정을 따릅니다. `0`으로 설정하는 것은 변수를 설정하지 않은 것과 동일하게 처리되므로, 터미널 자체 커서가 이미 켜진 세션에서 그려진 블록을 되돌리지는 않습니다 |

342| `CLAUDE_CODE_NEW_INIT` | `1`로 설정하면 `/init`이 대화형 설정 흐름을 실행합니다. 이 흐름은 코드베이스를 탐색하고 파일을 작성하기 전에 CLAUDE.md, 스킬, 훅을 포함하여 생성할 파일을 묻습니다. 이 변수가 없으면 `/init`은 확인 없이 CLAUDE.md를 자동으로 생성합니다 |343| `CLAUDE_CODE_NEW_INIT` | `1`로 설정하면 `/init`이 대화형 설정 흐름을 실행합니다. 이 흐름은 코드베이스를 탐색하고 파일을 작성하기 전에 CLAUDE.md, 스킬, 훅을 포함하여 어떤 파일을 생성할지 묻습니다. 이 변수가 없으면 `/init`은 묻지 않고 CLAUDE.md를 자동으로 생성합니다 |

343| `CLAUDE_CODE_NONBLOCKING_STDOUT` | `1`로 설정하면 두 번째 논블로킹 파일 디스크립터를 통해 터미널 출력을 기록하여, 일시 중지된 tmux 컨트롤 모드 창이나 멈춘 SSH 연결처럼 읽기를 멈춘 터미널이 세션 도중 Claude Code를 멈추게 하지 않도록 합니다. stdout이 터미널인 경우 macOS, Linux, WSL에 적용됩니다. Claude Code v2.1.261 이상이 필요합니다 |344| `CLAUDE_CODE_NONBLOCKING_STDOUT` | `1`로 설정하면 두 번째 논블로킹 파일 디스크립터를 통해 터미널 출력을 기록하므로, 일시 중지된 tmux 제어 모드 창이나 멈춘 SSH 연결처럼 읽기를 멈춘 터미널이 세션 도중 Claude Code를 멈추게 할 수 없습니다. stdout이 터미널인 경우 macOS, Linux, WSL에서 적용됩니다. Claude Code v2.1.261 이상이 필요합니다 |

344| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | 시간 초과된 [비스트리밍 요청](/docs/ko/errors#streaming-response-ended-before-any-complete-data-was-received)을 Claude Code가 다시 보내는 횟수를 제한합니다. `0`이면 첫 번째 시간 초과에서 요청이 실패합니다. 기본적으로 설정되어 있지 않으므로 `CLAUDE_CODE_MAX_RETRIES`가 재전송 횟수를 제한합니다. 타임아웃에 대해서는 [재시도 동작 조정](/docs/ko/errors#tune-retry-behavior)을 참조하세요. Claude Code v2.1.285 이상이 필요합니다 |345| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | 시간 초과된 [비스트리밍 요청](/docs/ko/errors#streaming-response-ended-before-any-complete-data-was-received)을 Claude Code가 다시 보내는 횟수를 제한합니다. `0`이면 첫 번째 시간 초과에서 요청이 실패합니다. 타임아웃에 대해서는 [재시도 동작 조정](/docs/ko/errors#tune-retry-behavior)을 참조하세요. Claude Code v2.1.285 이상이 필요합니다 |

345| `CLAUDE_CODE_NO_FLICKER` | `1`로 설정하면 깜박임을 줄이고 긴 대화에서 메모리 사용량을 일정하게 유지하는 리서치 프리뷰인 [전체 화면 렌더링](/docs/ko/fullscreen)을 활성화합니다. [`tui`](/docs/ko/settings-reference#tui) 설정을 재정의합니다. `/tui fullscreen`으로 전환할 수도 있습니다 |346| `CLAUDE_CODE_NO_FLICKER` | `1`로 설정하면 깜박임을 줄이고 긴 대화에서 메모리 사용량을 일정하게 유지하는 리서치 프리뷰인 [전체 화면 렌더링](/docs/ko/fullscreen)을 활성화합니다. [`tui`](/docs/ko/settings-reference#tui) 설정을 재정의하며, `/tui fullscreen`으로 전환할 수도 있습니다 |

346| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Claude.ai 인증용 OAuth 새로 고침 토큰입니다. 설정하면 `claude auth login`이 브라우저를 여는 대신 이 토큰을 직접 교환합니다. `CLAUDE_CODE_OAUTH_SCOPES`가 필요합니다. 자동화된 환경에서 인증을 프로비저닝하는 데 유용합니다 |347| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Claude.ai 인증을 위한 OAuth 갱신 토큰입니다. 설정하면 `claude auth login`이 브라우저를 여는 대신 이 토큰을 직접 교환합니다. `CLAUDE_CODE_OAUTH_SCOPES`가 필요합니다. 자동화된 환경에서 인증을 프로비저닝할 때 유용합니다 |

347| `CLAUDE_CODE_OAUTH_SCOPES` | 새로 고침 토큰 발급 시 사용된 공백으로 구분된 OAuth 범위입니다(예: `"user:profile user:inference user:sessions:claude_code"`). `CLAUDE_CODE_OAUTH_REFRESH_TOKEN`이 설정된 경우 필요합니다 |348| `CLAUDE_CODE_OAUTH_SCOPES` | 갱신 토큰이 발급된 공백으로 구분된 OAuth 범위입니다(예: `"user:profile user:inference user:sessions:claude_code"`). `CLAUDE_CODE_OAUTH_REFRESH_TOKEN`이 설정된 경우 필요합니다 |

348| `CLAUDE_CODE_OAUTH_TOKEN` | claude.ai 인증용 OAuth 액세스 토큰입니다. SDK 및 자동화된 환경에서 `/login`의 대안입니다. 키체인에 저장된 자격 증명보다 우선합니다. [`claude setup-token`](/docs/ko/authentication#generate-a-long-lived-token)으로 생성합니다. [`/login`](/docs/ko/authentication#authentication-precedence)을 실행하지 않는 한 Claude Code는 세션 전체에서 설정된 토큰을 사용합니다. 만료된 토큰을 교체하려면 새 토큰을 생성하고 다시 시작합니다 |349| `CLAUDE_CODE_OAUTH_TOKEN` | claude.ai 인증을 위한 OAuth 액세스 토큰입니다. SDK 및 자동화된 환경에서 `/login`의 대안입니다. 키체인에 저장된 자격 증명보다 우선합니다. [`claude setup-token`](/docs/ko/authentication#generate-a-long-lived-token)으로 생성합니다. [`/login`](/docs/ko/authentication#authentication-precedence)을 실행하지 않는 한 Claude Code는 세션 전체에서 설정한 토큰을 사용합니다. 만료된 토큰을 교체하려면 새 토큰을 생성하고 다시 시작합니다 |

349| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | v2.1.160에서 제거되었으며 이제 아무 동작도 하지 않습니다. 이전에는 [빠른 모드](/docs/ko/fast-mode)를 현재 기본값 대신 Claude Opus 4.6으로 고정했습니다. Opus 4.6은 더 이상 빠른 모드를 지원하지 않습니다 |350| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | v2.1.160에서 제거되었으며 이제 아무 동작도 하지 않습니다. 이전에는 [빠른 모드](/docs/ko/fast-mode)를 현재 기본값 대신 Claude Opus 4.6으로 고정했습니다. Opus 4.6은 더 이상 빠른 모드를 지원하지 않습니다 |

350| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | 콘텐츠를 포함하는 OpenTelemetry 속성(모델 응답, 도구 콘텐츠, 시스템 프롬프트, 원시 API 본문)의 최대 길이로, 잘림 표시를 포함하며 UTF-16 코드 단위로 측정합니다(기본값: 61440, 즉 60 KB). 텔레메트리 백엔드가 64 KB보다 큰 속성 값을 허용하는 경우에만 늘리고, 텔레메트리 양을 줄이려면 낮춥니다. Claude Code v2.1.214 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |351| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | 콘텐츠를 담는 OpenTelemetry 속성(모델 응답, 도구 콘텐츠, 시스템 프롬프트, 원시 API 본문)의 최대 길이로, 잘림 표시를 포함하며 UTF-16 코드 단위로 측정합니다(기본값: 61440, 즉 60 KB). 텔레메트리 백엔드가 64 KB보다 큰 속성 값을 허용하는 경우에만 높이고, 텔레메트리 양을 줄이려면 낮춥니다. Claude Code v2.1.214 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

351| `CLAUDE_CODE_OTEL_DIAG_STDERR` | `1`로 설정하면 OpenTelemetry 익스포터 진단 오류를 stderr에 기록합니다. 기본적으로 이러한 오류는 `--debug`에서만 표시되므로, 그렇지 않으면 Prometheus 포트 충돌 같은 잘못 구성된 익스포터가 아무 표시 없이 실패합니다. Claude Code v2.1.179 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |352| `CLAUDE_CODE_OTEL_DIAG_STDERR` | `1`로 설정하면 OpenTelemetry 익스포터 진단 오류를 stderr에 기록합니다. 기본적으로 이러한 오류는 `--debug`에서만 표시되므로, Prometheus 포트 충돌과 같이 잘못 구성된 익스포터는 그렇지 않으면 아무 표시 없이 실패합니다. Claude Code v2.1.179 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

352| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | 보류 중인 OpenTelemetry 스팬을 플러시하는 타임아웃(밀리초)입니다(기본값: 5000). [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |353| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | 보류 중인 OpenTelemetry 스팬을 플러시하는 타임아웃(밀리초)입니다(기본값: 5000). [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

353| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 동적 OpenTelemetry 헤더를 새로 고치는 간격(밀리초)입니다(기본값: 1740000 / 29분). [동적 헤더](/docs/ko/monitoring-usage#dynamic-headers)를 참조하세요 |354| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 동적 OpenTelemetry 헤더를 새로 고치는 간격(밀리초)입니다(기본값: 1740000 / 29분). [동적 헤더](/docs/ko/monitoring-usage#dynamic-headers)를 참조하세요 |

354| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | 종료 시 OpenTelemetry 익스포터가 완료되기까지의 타임아웃(밀리초)입니다(기본값: 2000). 종료 시 메트릭이 누락되면 값을 늘립니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |355| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | 종료 시 OpenTelemetry 익스포터가 완료되기까지의 타임아웃(밀리초)입니다(기본값: 2000). 종료 시 메트릭이 누락되면 늘립니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

356| `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS` | API가 `529` 과부하 오류로 거부한 요청의 [자동 재시도](/docs/ko/errors#tune-retry-behavior) 사이 지수 백오프의 시작 지연 시간(밀리초)으로, 기본값 500 대신 사용됩니다. API가 용량 한계에 도달했을 때 재시도를 더 긴 기간에 분산하려면 값을 높입니다. 500에서 32000까지의 정수 밀리초를 숫자로만 지정하며, Claude Code는 그 외의 값은 설정되지 않은 것으로 간주합니다. `CLAUDE_CODE_RETRY_WATCHDOG`가 `1`로 설정되었거나 거부된 요청이 [빠른 모드](/docs/ko/fast-mode#handle-rate-limits)에서 전송된 경우에는 효과가 없습니다. Claude Code v2.1.292 이상이 필요합니다 |

355| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | `1`로 설정하면 새 버전을 사용할 수 있을 때 Claude Code가 백그라운드에서 패키지 관리자의 업그레이드 명령을 실행하도록 합니다. Homebrew 및 WinGet 설치에 적용됩니다. 다른 패키지 관리자는 계속해서 업그레이드 명령을 실행하지 않고 표시만 합니다. [자동 업데이트](/docs/ko/setup#auto-updates)를 참조하세요 |357| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | `1`로 설정하면 새 버전을 사용할 수 있을 때 Claude Code가 백그라운드에서 패키지 관리자의 업그레이드 명령을 실행하도록 합니다. Homebrew 및 WinGet 설치에 적용됩니다. 다른 패키지 관리자는 계속해서 업그레이드 명령을 실행하지 않고 표시만 합니다. [자동 업데이트](/docs/ko/setup#auto-updates)를 참조하세요 |

356| `CLAUDE_CODE_PERFORCE_MODE` | `1`로 설정하면 Perforce 인식 쓰기 보호를 활성화합니다. 설정하면 대상 파일에 소유자 쓰기 비트가 없는 경우 Edit, Write, NotebookEdit가 `p4 edit <file>` 힌트와 함께 실패합니다. Perforce는 `p4 edit`으로 파일을 열 때까지 동기화된 파일에서 이 비트를 해제합니다. 이를 통해 Claude Code가 Perforce 변경 추적을 우회하는 것을 방지합니다 |358| `CLAUDE_CODE_PERFORCE_MODE` | `1`로 설정하면 Perforce를 인식하는 쓰기 보호를 활성화합니다. 설정하면 대상 파일에 소유자 쓰기 비트가 없을 때 Edit, Write, NotebookEdit가 `p4 edit <file>` 힌트와 함께 실패합니다. Perforce는 동기화된 파일에서 `p4 edit`로 열기 전까지 이 비트를 해제합니다. 이를 통해 Claude Code가 Perforce 변경 추적을 우회하는 것을 방지합니다 |

357| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 플러그인 루트 디렉터리를 재정의합니다. 이름과 달리 캐시 자체가 아닌 상위 디렉터리를 설정합니다. 마켓플레이스와 플러그인 캐시는 이 경로 아래의 하위 디렉터리에 있습니다. 기본값은 `~/.claude/plugins`입니다 |359| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 플러그인 루트 디렉터리를 재정의합니다. 이름과 달리 캐시 자체가 아니라 상위 디렉터리를 설정합니다. 마켓플레이스와 플러그인 캐시는 이 경로 아래의 하위 디렉터리에 있습니다. 기본값은 `~/.claude/plugins`입니다 |

358| `CLAUDE_CODE_PLUGIN_DIRS` | 세션에 로드할 플러그인 디렉터리이며, 각 디렉터리는 [`--plugin-dir`](/docs/ko/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) 플래그가 로드하는 방식과 동일하게 로드됩니다. 여러 경로는 Unix에서는 `:`, Windows에서는 `;`로 구분합니다. Claude Code는 상대 경로를 건너뛰므로 각 경로는 절대 경로로 지정하거나 `~`로 시작해야 합니다. Claude Code v2.1.280 이상이 필요합니다. [한 세션에 플러그인 로드](/docs/ko/plugins/create#load-a-directory-or-archive-for-one-session)를 참조하세요 |360| `CLAUDE_CODE_PLUGIN_DIRS` | 세션에 로드할 플러그인 디렉터리로, 각각 [`--plugin-dir`](/docs/ko/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) 플래그가 로드하는 방식으로 로드됩니다. 여러 경로는 Unix에서는 `:`, Windows에서는 `;`로 구분합니다. Claude Code는 상대 경로를 건너뛰므로 각 경로는 절대 경로로 지정하거나 `~`로 시작해야 합니다. Claude Code v2.1.280 이상이 필요합니다. [한 세션에 플러그인 로드](/docs/ko/plugins/create#load-a-directory-or-archive-for-one-session)를 참조하세요 |

359| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | mod의 파일이 변경될 때 Claude Code가 [mod](/docs/ko/plugins/mods/overview)를 다시 로드할지 여부를 제어합니다. 다시 로드는 `--plugin-dir`로 디렉터리에서 로드하는 mod에 적용되며, 대화형 세션에서는 기본적으로 켜져 있습니다. 비대화형 세션에서도 켜려면 `1`로, 모든 세션에서 끄려면 `0`으로 설정합니다. Claude Code v2.1.287 이상이 필요합니다. [mod 설정 및 환경 변수](/docs/ko/plugins/mods/reference#settings-and-environment-variables)를 참조하세요 |361| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | [mod](/docs/ko/plugins/mods/overview)의 파일이 변경될 때 Claude Code가 mod를 다시 로드할지 여부를 제어합니다. 다시 로드는 `--plugin-dir`로 디렉터리에서 로드한 mod에 적용되며, 대화형 세션에서는 기본적으로 켜져 있습니다. `1`로 설정하면 비대화형 세션에서도 켜지고, `0`으로 설정하면 모든 세션에서 꺼집니다. Claude Code v2.1.287 이상이 필요합니다. [mod 설정 및 환경 변수](/docs/ko/plugins/mods/reference#settings-and-environment-variables)를 참조하세요 |

360| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | 플러그인 마켓플레이스를 복제하거나 새로 고칠 때의 타임아웃(밀리초)입니다(기본값: 120000). 큰 저장소나 느린 네트워크 연결에서는 이 값을 늘립니다. [Git clone timed out](/docs/ko/plugins/troubleshooting#git-clone-timed-out-after-120s)을 참조하세요 |362| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | 플러그인 마켓플레이스를 클론하거나 새로 고치는 타임아웃(밀리초)입니다(기본값: 120000). 큰 저장소나 느린 네트워크 연결에서는 이 값을 늘립니다. [Git clone timed out](/docs/ko/plugins/troubleshooting#git-clone-timed-out-after-120s)을 참조하세요 |

361| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | `1`로 설정하면 마켓플레이스 새로 고침이 원격에 연결하거나 인증할 수 없을 때 재복제 시도를 건너뛰고 기존 마켓플레이스 체크아웃을 계속 사용합니다. 재복제가 같은 방식으로 실패하는 오프라인 또는 에어갭 환경에서 유용합니다. [오프라인 환경에서 마켓플레이스 업데이트 실패](/docs/ko/plugins/troubleshooting#marketplace-updates-keep-failing-offline)를 참조하세요 |363| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | `1`로 설정하면 마켓플레이스 새로 고침이 원격에 연결하거나 인증할 수 없을 때 다시 클론하려는 시도를 건너뛰고 기존 마켓플레이스 체크아웃을 계속 사용합니다. 다시 클론해도 같은 방식으로 실패할 오프라인 또는 에어갭 환경에서 유용합니다. [오프라인 환경에서 마켓플레이스 업데이트 실패](/docs/ko/plugins/troubleshooting#marketplace-updates-keep-failing-offline)를 참조하세요 |

362| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | `1`로 설정하면 GitHub `owner/repo` 축약형 소스를 SSH 대신 HTTPS로 복제합니다. 플러그인 설치 및 업데이트, `/plugin marketplace add` 및 `update`에 적용됩니다. CI 러너, 컨테이너 또는 `github.com`용 SSH 키가 구성되지 않은 모든 환경에서 유용합니다 |364| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | `1`로 설정하면 GitHub `owner/repo` 약식 소스를 SSH 대신 HTTPS로 클론합니다. 플러그인 설치 및 업데이트, 그리고 `/plugin marketplace add` 및 `update`에 적용됩니다. CI 러너, 컨테이너 또는 `github.com`용 SSH 키가 구성되지 않은 모든 환경에서 유용합니다 |

363| `CLAUDE_CODE_PLUGIN_SEED_DIR` | 하나 이상의 읽기 전용 플러그인 시드 디렉터리 경로로, Unix에서는 `:`, Windows에서는 `;`로 구분합니다. 미리 채워진 플러그인 디렉터리를 컨테이너 이미지에 번들로 포함할 때 사용합니다. Claude Code는 시작 시 이 디렉터리에서 마켓플레이스를 등록하고 재복제 없이 미리 캐시된 플러그인을 사용합니다. [컨테이너용 플러그인 미리 채우기](/docs/ko/plugins/org#seed-containers-and-ci)를 참조하세요 |365| `CLAUDE_CODE_PLUGIN_SEED_DIR` | 하나 이상의 읽기 전용 플러그인 시드 디렉터리 경로로, Unix에서는 `:`, Windows에서는 `;`로 구분합니다. 미리 채워진 플러그인 디렉터리를 컨테이너 이미지에 번들로 포함할 때 사용합니다. Claude Code는 시작 시 이 디렉터리에서 마켓플레이스를 등록하고, 다시 클론하지 않고 미리 캐시된 플러그인을 사용합니다. [컨테이너용 플러그인 미리 채우기](/docs/ko/plugins/org#seed-containers-and-ci)를 참조하세요 |

364| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | `1`로 설정하면 Claude Code가 도구 호출, 훅, 상태줄 명령을 위해 PowerShell을 생성할 때 `-ExecutionPolicy Bypass`를 전달하지 않고 대신 머신의 유효 실행 정책을 따릅니다. 기본적으로 Claude Code는 기본값이 Restricted인 Windows 설치에서 `.ps1` 스크립트와 모듈 가져오기가 작동하도록 프로세스 범위에서 실행 정책을 우회합니다. 프로세스 범위 우회는 이 설정과 관계없이 그룹 정책 `MachinePolicy` 또는 `UserPolicy`를 재정의하지 않습니다 |366| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | `1`로 설정하면 도구 호출, 훅, 상태줄 명령을 위해 PowerShell을 생성할 때 Claude Code가 `-ExecutionPolicy Bypass`를 전달하지 않고, 대신 머신의 유효 실행 정책을 따릅니다. 기본적으로 Claude Code는 프로세스 범위에서 실행 정책을 우회하므로 기본값이 Restricted인 Windows 설치에서도 `.ps1` 스크립트와 모듈 가져오기가 동작합니다. 프로세스 범위 우회는 이 설정과 관계없이 그룹 정책 `MachinePolicy` 또는 `UserPolicy`를 재정의하지 않습니다 |

365| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | `-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless#background-tasks-at-exit)에서 마지막 턴 이후 서브에이전트 및 워크플로 같은 백그라운드 작업을 유휴 대기하는 시간의 상한(밀리초)입니다. 유휴 대기는 Claude가 백그라운드 결과를 처리하기 위해 턴을 진행할 때마다 다시 시작됩니다. 기본값: `600000`, 즉 10분. 유휴 대기가 상한에 도달하면 Claude Code는 남은 백그라운드 작업을 기다리지 않고 종료합니다. 무기한 대기하려면 `0`으로 설정합니다. 이 상한은 일반 백그라운드 셸에 적용되는 5초 유예 기간과는 별개입니다. Claude Code v2.1.182 이상이 필요합니다 |367| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | `-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless#background-tasks-at-exit)에서 마지막 턴 이후 서브에이전트 및 워크플로와 같은 백그라운드 작업을 유휴 상태로 기다리는 시간의 상한(밀리초)입니다. 유휴 대기는 Claude가 백그라운드 결과를 처리하기 위해 턴을 진행할 때마다 다시 시작됩니다. 기본값: `600000`, 즉 10분. 유휴 대기가 상한에 도달하면 Claude Code는 남은 백그라운드 작업을 더 이상 기다리지 않습니다. 메인 대화가 시작한 백그라운드 명령이 실행 중이면 상한이 지나도 실행이 계속 유지됩니다. 무기한 기다리려면 `0`으로 설정합니다. Claude Code v2.1.182 이상이 필요합니다 |

366| `CLAUDE_CODE_PROCESS_WRAPPER` | [에이전트 뷰](/docs/ko/agent-view) 세션을 호스팅하는 백그라운드 서비스처럼 Claude Code가 자체 바이너리에서 시작하는 프로세스를 `/opt/corp/launcher` 같은 argv 접두사로 지정한 기업 런처를 통해 실행합니다. 분리된 백그라운드 서비스가 상속하도록 셸 export가 아닌 사용자 설정 또는 [관리형 설정](/docs/ko/managed-settings)의 `env` 블록에서 설정합니다. 프로젝트 및 로컬 설정에서는 설정할 수 없습니다. Claude Code v2.1.210 이상이 필요한 [`processWrapper` 설정](/docs/ko/settings-reference#processwrapper)과 동일하며, 둘 다 설정된 경우 이 변수가 우선합니다. VS Code 확장은 `claudeProcessWrapper` 설정을 통해 자체 런처를 별도로 구성합니다. Windows에서는 무시됩니다. 값 형식, 런처가 다루는 범위, 런처가 충족해야 하는 계약은 [기업 런처 뒤에서 Claude Code 실행](/docs/ko/corporate-launcher)을 참조하세요. Claude Code v2.1.208 이상이 필요합니다 |368| `CLAUDE_CODE_PROCESS_WRAPPER` | [에이전트 뷰](/docs/ko/agent-view) 세션을 호스팅하는 백그라운드 서비스와 같이 Claude Code가 자체 바이너리에서 시작하는 프로세스를 `/opt/corp/launcher`와 같은 argv 접두사로 지정된 회사 런처를 통해 실행합니다. 분리된 백그라운드 서비스가 상속하도록 셸 export가 아니라 사용자 설정 또는 [관리형 설정](/docs/ko/managed-settings)의 `env` 블록에 설정하며, 프로젝트 및 로컬 설정에서는 설정할 수 없습니다. Claude Code v2.1.210 이상이 필요한 [`processWrapper` 설정](/docs/ko/settings-reference#processwrapper)과 같으며, 둘 다 설정된 경우 이 변수가 우선합니다. VS Code 확장은 자체 `claudeProcessWrapper` 설정을 통해 런처를 별도로 구성합니다. Windows에서는 무시됩니다. 값 형식, 런처가 적용되는 범위, 런처가 충족해야 하는 계약은 [회사 런처 뒤에서 Claude Code 실행](/docs/ko/corporate-launcher)을 참조하세요. Claude Code v2.1.208 이상이 필요합니다 |

367| `CLAUDE_CODE_PROJECT_DIR_NAME` | `CLAUDE_CONFIG_DIR`과 함께 설정하면 작업 디렉터리 경로에서 파생된 이름 대신, Claude Code가 해당 세션의 트랜스크립트와 자동 메모리를 저장하는 `projects/` 디렉터리 이름을 선택할 수 있습니다. 예를 들어 `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude`로 Claude Code를 시작하면 `/srv/tenant-a/projects/work/` 아래에 저장됩니다. Claude Code는 `CLAUDE_CONFIG_DIR`이 설정되지 않은 경우 이 변수를 무시하며, [설정 파일 `env` 블록](#in-settings-files)이 아닌 `claude`를 시작하는 환경에서만 읽습니다. [프로젝트 디렉터리 이름 직접 지정](/docs/ko/sessions#name-the-project-directory-yourself)을 참조하세요. Claude Code v2.1.234 이상이 필요합니다 |369| `CLAUDE_CODE_PROJECT_DIR_NAME` | `CLAUDE_CONFIG_DIR`와 함께 설정하여, 작업 디렉터리 경로에서 파생된 이름 대신 Claude Code가 해당 세션의 트랜스크립트와 자동 메모리를 저장할 `projects/` 디렉터리 이름을 선택합니다. 예를 들어 `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude`로 Claude Code를 시작하면 `/srv/tenant-a/projects/work/` 아래에 저장됩니다. `CLAUDE_CONFIG_DIR`가 설정되지 않은 경우 Claude Code는 이 변수를 무시하며, `claude`를 시작하는 환경에서만 읽고 [설정 파일 `env` 블록](#in-settings-files)에서는 절대 읽지 않습니다. [프로젝트 디렉터리 이름 직접 지정](/docs/ko/sessions#name-the-project-directory-yourself)을 참조하세요. Claude Code v2.1.234 이상이 필요합니다 |

368| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Claude Code가 허용하는 유일한 값인 `5m` 또는 `1h`로 설정하여 메인 대화의 [프롬프트 캐시 TTL](/docs/ko/prompt-caching#cache-lifetime)을 선택합니다. 메인 대화에는 대화형, `-p`, SDK 턴과 이들과 함께 인라인으로 실행되는 헬퍼가 포함됩니다. `promptCacheTtl` 설정과 `ENABLE_PROMPT_CACHING_1H`보다 우선하며, `FORCE_PROMPT_CACHING_5M`이 이를 재정의합니다. API는 1시간 캐시 쓰기에 더 높은 요금을 청구합니다. Claude Code v2.1.242 이상이 필요합니다 |370| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Claude Code가 허용하는 유일한 값인 `5m` 또는 `1h`로 설정하여 메인 대화의 [프롬프트 캐시 TTL](/docs/ko/prompt-caching#cache-lifetime)을 선택합니다. 메인 대화에는 대화형, `-p`, SDK 턴과 이와 함께 인라인으로 실행되는 헬퍼가 포함됩니다. `promptCacheTtl` 설정과 `ENABLE_PROMPT_CACHING_1H`보다 우선하며, `FORCE_PROMPT_CACHING_5M`이 이 변수를 재정의합니다. API는 1시간 캐시 쓰기에 더 높은 요율을 청구합니다. Claude Code v2.1.242 이상이 필요합니다 |

369| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | `ANTHROPIC_BASE_URL`이 사용자 지정 프록시를 가리킬 때 W3C 트레이스 컨텍스트를 전파하려면 `1`로 설정합니다. 전파 대상에는 모델 및 HTTP MCP 요청의 `traceparent` 헤더와 Bash, PowerShell, 훅 하위 프로세스의 `TRACEPARENT` 환경 변수가 포함됩니다. 기본적으로 전파는 Anthropic API에 직접 연결된 경우에만 활성화됩니다. v2.1.152에서 추가되었습니다. [트레이스(베타)](/docs/ko/monitoring-usage#traces-beta)를 참조하세요 |371| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | `1`로 설정하면 `ANTHROPIC_BASE_URL`이 사용자 지정 프록시를 가리킬 때 W3C 추적 컨텍스트를 전파합니다. 전파에는 모델 및 HTTP MCP 요청의 `traceparent` 헤더와 Bash, PowerShell, 훅 서브프로세스의 `TRACEPARENT` 환경 변수가 포함됩니다. 기본적으로 전파는 Anthropic API에 직접 연결된 경우에만 활성화됩니다. v2.1.152에서 추가되었습니다. [트레이스(베타)](/docs/ko/monitoring-usage#traces-beta)를 참조하세요 |

370| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Claude Code를 내장하고 Claude Code를 대신하여 모델 공급자 라우팅을 관리하는 호스트 플랫폼이 설정합니다. 설정되면 Claude Code는 설정 파일에 있는 `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL`, `ANTHROPIC_API_KEY` 같은 공급자 선택, 엔드포인트, 인증 변수를 무시하므로 사용자 설정이 호스트의 라우팅을 재정의할 수 없습니다. 또한 Claude Code는 어떤 관리형 소스가 전달하든 [관리형 설정](/docs/ko/managed-settings)의 `model`, `fallbackModel`, `modelOverrides` 같은 모델 선택 키를 무시하므로, 호스트의 모델 구성이 오래된 관리형 모델 고정보다 우선합니다. 또한 Claude Code는 관리형 `env` 블록의 `ANTHROPIC_MODEL` 및 `ANTHROPIC_DEFAULT_*_MODEL` 계열 같은 모델 선택 변수도 무시합니다. 관리형 설정의 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 허용 목록은 호스트가 자체 목록을 제공하지 않는 한 계속 적용됩니다. 또한 Claude Code는 Amazon Bedrock, Claude Platform on AWS, Google Cloud의 Agent Platform, Microsoft Foundry 같은 서드파티 공급자에서 적용하던 자동 텔레메트리 옵트아웃을 건너뛰므로, 텔레메트리는 표준 `DISABLE_TELEMETRY` 옵트아웃을 따릅니다. [API 공급자별 기본 동작](/docs/ko/data-usage#default-behaviors-by-api-provider)을 참조하세요 |372| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Claude Code를 내장하고 대신 모델 제공자 라우팅을 관리하는 호스트 플랫폼이 설정합니다. 설정하면 Claude Code는 설정 파일에 있는 `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL`, `ANTHROPIC_API_KEY`와 같은 제공자 선택, 엔드포인트, 인증 변수를 무시하므로 사용자 설정이 호스트의 라우팅을 재정의할 수 없습니다. Claude Code는 또한 어떤 관리형 소스에서 전달되든 [관리형 설정](/docs/ko/managed-settings)의 `model`, `fallbackModel`, `modelOverrides`와 같은 모델 선택 키를 무시하므로, 호스트의 모델 구성이 오래된 관리형 모델 고정보다 우선합니다. Claude Code는 또한 관리형 `env` 블록의 `ANTHROPIC_MODEL` 및 `ANTHROPIC_DEFAULT_*_MODEL` 계열과 같은 모델 선택 변수를 무시합니다. 관리형 설정의 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 허용 목록은 호스트가 자체 허용 목록을 제공하지 않는 한 계속 적용됩니다. Claude Code는 또한 Amazon Bedrock, Claude Platform on AWS, Google Cloud의 Agent Platform, Microsoft Foundry와 같은 서드파티 제공자에서 적용하는 자동 텔레메트리 옵트아웃을 건너뛰므로, 텔레메트리는 표준 `DISABLE_TELEMETRY` 옵트아웃을 따릅니다. [API 제공자별 기본 동작](/docs/ko/data-usage#default-behaviors-by-api-provider)을 참조하세요 |

371| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | `1`로 설정하면 호출자 대신 프록시가 DNS 확인을 수행하도록 허용합니다. 프록시가 호스트 이름 확인을 처리해야 하는 환경을 위한 옵트인입니다 |373| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | `1`로 설정하면 호출자 대신 프록시가 DNS 확인을 수행하도록 허용합니다. 프록시가 호스트 이름 확인을 처리해야 하는 환경을 위한 옵트인 설정입니다 |

372| `CLAUDE_CODE_REMOTE` | Claude Code가 [클라우드 세션](/docs/ko/claude-code-on-the-web)으로 실행될 때 자동으로 `true`로 설정됩니다. 훅이나 설정 스크립트에서 이 값을 읽어 클라우드 세션에서 실행 중인지 감지합니다 |374| `CLAUDE_CODE_REMOTE` | Claude Code가 [클라우드 세션](/docs/ko/claude-code-on-the-web)으로 실행 중일 때 자동으로 `true`로 설정됩니다. 훅이나 설정 스크립트에서 이 값을 읽어 클라우드 세션인지 감지합니다 |

373| `CLAUDE_CODE_REMOTE_SESSION_ID` | [클라우드 세션](/docs/ko/claude-code-on-the-web)에서 현재 세션의 ID로 자동 설정됩니다. 이 값을 읽어 세션 트랜스크립트로 돌아가는 링크를 만듭니다. [출력을 세션에 다시 연결](/docs/ko/cloud-environments#link-output-back-to-the-session)을 참조하세요 |375| `CLAUDE_CODE_REMOTE_SESSION_ID` | [클라우드 세션](/docs/ko/claude-code-on-the-web)에서 현재 세션의 ID로 자동 설정됩니다. 이 값을 읽어 세션 트랜스크립트로 돌아가는 링크를 구성합니다. [출력을 세션에 다시 연결](/docs/ko/cloud-environments#link-output-back-to-the-session)을 참조하세요 |

374| `CLAUDE_CODE_RESTRICTED` | `1`로 설정하면 [`--restricted`](/docs/ko/cli-reference#cli-flags)를 전달하는 것과 마찬가지로 제한 모드에서 세션을 시작합니다. Claude Code는 설정 파일의 `env` 블록에 있는 이 변수를 무시합니다. Claude Code v2.1.248 이상이 필요합니다 |376| `CLAUDE_CODE_RESTRICTED` | `1`로 설정하면 [`--restricted`](/docs/ko/cli-reference#cli-flags)를 전달하는 것과 마찬가지로 제한 모드에서 세션을 시작합니다. Claude Code는 설정 파일의 `env` 블록에 있는 이 변수를 무시합니다. Claude Code v2.1.248 이상이 필요합니다 |

375| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | `1`로 설정하면 이전 세션이 턴 도중 종료된 경우 자동으로 재개합니다. SDK 모드에서 SDK가 프롬프트를 다시 보내지 않아도 모델이 계속 진행하도록 하는 데 사용됩니다. 끄려면 변수를 해제하거나 `0`으로 설정합니다. VS Code 채팅 패널의 경우 [다시 로드 후 대화 계속하기](/docs/ko/vs-code#continue-conversations-after-a-reload)를 참조하세요 |377| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | `1`로 설정하면 이전 세션이 턴 도중에 종료된 경우 자동으로 재개합니다. SDK 모드에서 SDK가 프롬프트를 다시 보내지 않아도 모델이 계속 진행하도록 사용됩니다. 끄려면 변수를 해제하거나 `0`으로 설정합니다. VS Code 채팅 패널의 경우 [다시 로드 후 대화 계속하기](/docs/ko/vs-code#continue-conversations-after-a-reload)를 참조하세요 |

376| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | 턴 도중 종료된 세션이 재개 시 자동으로 계속되기 위한 마지막 트랜스크립트 메시지의 최대 경과 시간(밀리초)입니다. 마지막 메시지가 이 기준보다 오래되면 Claude Code는 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 자동 재개와 해당 `CLAUDE_CODE_RESUME_PROMPT` 계속 메시지를 건너뛰고, 세션이 유휴 상태로 시작되므로 명시적으로 계속해야 합니다. 설정하지 않거나 `0`이면 제한이 없습니다. 단, 마지막 요청이 API 오류로 실패한 턴은 해당 오류가 발생한 지 6시간 미만인 경우에만 재개됩니다. 양수 값은 이러한 턴을 포함한 모든 턴을 제한하며, 음수 또는 숫자가 아닌 값은 1시간 제한을 적용합니다. 장기 실행 에이전트의 생성 스크립트는 이 값을 설정하여 오래된 트랜스크립트로 재시작할 때 오래된 프롬프트가 다시 실행되지 않도록 할 수 있습니다. Claude Code는 대화형 세션에서 대화를 상속한 충돌된 [에이전트 뷰](/docs/ko/agent-view) 세션을 재시작할 때 자체적으로 1시간 제한을 설정합니다. Claude Code v2.1.211 이상이 필요합니다 |378| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | 턴 도중에 종료된 세션이 재개 시 자동으로 계속되기 위한 마지막 트랜스크립트 메시지의 최대 경과 시간(밀리초)입니다. 마지막 메시지가 이 기준보다 오래되면 Claude Code는 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 자동 재개와 `CLAUDE_CODE_RESUME_PROMPT` 계속 메시지를 건너뛰고, 세션이 유휴 상태로 시작되어 사용자가 명시적으로 계속하게 됩니다. 설정하지 않거나 `0`이면 기준이 없습니다. 단, 마지막 요청이 API 오류로 실패한 턴은 해당 오류가 발생한 지 6시간 미만인 경우에만 재개됩니다. 양수 값은 이러한 턴을 포함한 모든 턴에 기준을 적용하며, 음수 또는 숫자가 아닌 값은 1시간 기준을 적용합니다. 장기 실행 에이전트의 생성 스크립트는 이 값을 설정하여 오래된 트랜스크립트로 다시 시작할 때 오래된 프롬프트가 다시 실행되지 않도록 할 수 있습니다. Claude Code는 대화형 세션에서 대화를 상속한 [에이전트 뷰](/docs/ko/agent-view) 세션이 충돌하여 다시 시작할 때 자체적으로 1시간 기준을 설정합니다. Claude Code v2.1.211 이상이 필요합니다 |

377| `CLAUDE_CODE_RESUME_PROMPT` | `CLAUDE_CODE_RESUME_INTERRUPTED_TURN`이 프롬프트를 다시 보내는 대신 중단된 턴을 계속할 때, 또는 `-p`로 [지연된 도구 호출](/docs/ko/hooks#defer-a-tool-call-for-later)을 재개할 때 Claude Code가 Claude에게 보내는 계속 메시지를 재정의합니다. 기본값은 `Continue from where you left off.`입니다. 빈 문자열은 기본값을 사용합니다 |379| `CLAUDE_CODE_RESUME_PROMPT` | `CLAUDE_CODE_RESUME_INTERRUPTED_TURN`이 프롬프트를 다시 보내는 대신 중단된 턴을 계속할 때, 또는 `-p`로 [지연된 도구 호출](/docs/ko/hooks#defer-a-tool-call-for-later)을 재개할 때 Claude Code가 Claude에게 보내는 계속 메시지를 재정의합니다. 기본값은 `Continue from where you left off.`입니다. 빈 문자열이면 기본값을 사용합니다 |

378| `CLAUDE_CODE_RETRY_WATCHDOG` | eval 하네스, CI 작업, 원격 워커 같은 무인 세션에서 `1`로 설정합니다. `429` 및 `529` 용량 오류를 `CLAUDE_CODE_MAX_RETRIES`회 시도 후 실패하는 대신 무기한 재시도합니다. 표준 속도 요청이 지출 한도나 소진된 사용량 크레딧을 보고하는 `429`를 받으면, 일정에 따라 재설정되는 [게이트웨이 지출 한도](/docs/ko/errors#spend-limit-reached)에서 온 것이라도 Claude Code는 즉시 실패합니다. v2.1.239 이전에는 워치독이 이러한 오류를 무기한 재시도했습니다. 빠른 모드 요청의 경우 [속도 제한 처리](/docs/ko/fast-mode#handle-rate-limits)를 참조하세요. 워치독은 시도 사이에 최대 5분까지 백오프하거나, 응답에 속도 제한 재설정 시간이 포함된 경우 제한이 재설정될 때까지 대기하므로, 사용 한도에 도달한 세션은 남은 기간 동안 대기합니다. v2.1.199 이상에서는 서버 오류, 타임아웃, 끊긴 연결 같은 기타 일시적 오류의 기본 재시도 횟수도 약 3시간의 백오프에 해당하는 300으로 늘리며, `CLAUDE_CODE_MAX_RETRIES`를 명시적으로 설정한 경우 15회 상한을 제거합니다. Claude Code v2.1.186 이상이 필요합니다 |380| `CLAUDE_CODE_RETRY_WATCHDOG` | eval 하네스, CI 작업 또는 원격 워커와 같은 무인 세션에서 `1`로 설정합니다. `CLAUDE_CODE_MAX_RETRIES`회 시도 후 실패하는 대신 `429` 및 `529` 용량 오류를 무기한 재시도합니다. 표준 속도 요청이 지출 한도 또는 소진된 사용량 크레딧을 보고하는 `429`를 받으면, 일정에 따라 재설정되는 [게이트웨이 지출 상한](/docs/ko/errors#spend-limit-reached)에서 온 것이라도 Claude Code는 즉시 실패합니다. v2.1.239 이전에는 워치독이 이를 무기한 재시도했습니다. 빠른 모드 요청의 경우 [속도 제한 처리](/docs/ko/fast-mode#handle-rate-limits)를 참조하세요. 워치독은 시도 사이에 최대 5분까지 백오프하거나, 응답에 속도 제한 재설정 시간이 포함된 경우 제한이 재설정될 때까지 기다리므로, 사용 한도에 도달한 세션은 남은 기간이 지날 때까지 기다립니다. v2.1.199 이상에서는 서버 오류, 타임아웃, 끊어진 연결과 같은 다른 일시적 오류에 대한 기본 재시도 횟수도 약 3시간의 백오프에 해당하는 300으로 높이고, `CLAUDE_CODE_MAX_RETRIES`를 명시적으로 설정한 경우 15라는 상한을 제거합니다. Claude Code v2.1.186 이상이 필요합니다 |

379| `CLAUDE_CODE_SAFE_MODE` | `1`로 설정하면 안전 모드로 시작합니다. 안전 모드에서는 손상된 구성의 문제 해결을 위해 CLAUDE.md, 스킬, 플러그인, 훅, MCP 서버, 사용자 지정 명령 및 에이전트, 출력 스타일, 워크플로, 사용자 지정 테마, 사용자 지정 키보드 단축키, 상태줄 및 파일 제안 명령, LSP 서버, 자동 메모리가 로드되지 않습니다. 정책으로 구성된 훅, 상태줄, 파일 제안 명령을 포함하여 관리형 설정 정책은 계속 적용되지만, 관리형 플러그인, 관리형 스킬, 관리형 CLAUDE.md, 정책으로 구성된 MCP 서버는 로드되지 않습니다. [`--safe-mode`](/docs/ko/cli-reference#cli-flags)를 전달하는 것과 동일합니다. 직접 생성된 자식 프로세스는 이 변수를 상속합니다 |381| `CLAUDE_CODE_SAFE_MODE` | `1`로 설정하면 안전 모드로 시작합니다. 손상된 구성의 문제 해결을 위해 CLAUDE.md, 스킬, 플러그인, 훅, MCP 서버, 사용자 지정 명령 및 에이전트, 출력 스타일, 워크플로, 사용자 지정 테마, 사용자 지정 키보드 단축키, 상태줄 및 파일 제안 명령, LSP 서버, 자동 메모리를 로드하지 않습니다. 정책으로 구성된 훅, 상태줄, 파일 제안 명령을 포함한 관리형 설정 정책은 계속 적용되지만, 관리형 플러그인, 관리형 스킬, 관리형 CLAUDE.md, 정책으로 구성된 MCP 서버는 적용되지 않습니다. [`--safe-mode`](/docs/ko/cli-reference#cli-flags)를 전달하는 것과 같습니다. 직접 생성된 자식 프로세스는 이 변수를 상속합니다 |

380| `CLAUDE_CODE_SCRIPT_CAPS` | `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`이 설정된 경우 특정 스크립트를 세션당 호출할 수 있는 횟수를 제한하는 JSON 객체입니다. 키는 명령 텍스트와 대조되는 부분 문자열이고, 값은 정수 호출 제한입니다. 예를 들어 `{"deploy.sh": 2}`는 `deploy.sh`를 최대 두 번까지 호출할 수 있도록 허용합니다. 부분 문자열 기반으로 일치시키므로 `./scripts/deploy.sh $(evil)` 같은 셸 확장 기법도 상한에 포함됩니다. `xargs` 또는 `find -exec`를 통한 런타임 팬아웃은 감지되지 않으며, 이는 심층 방어 제어입니다 |382| `CLAUDE_CODE_SCRIPT_CAPS` | `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`이 설정된 경우 세션당 특정 스크립트를 호출할 수 있는 횟수를 제한하는 JSON 객체입니다. 키는 명령 텍스트와 대조되는 부분 문자열이고, 값은 정수 호출 한도입니다. 예를 들어 `{"deploy.sh": 2}`는 `deploy.sh`를 최대 두 번까지 호출할 수 있게 합니다. 일치는 부분 문자열 기반이므로 `./scripts/deploy.sh $(evil)`과 같은 셸 확장 기법도 상한에 포함됩니다. `xargs` 또는 `find -exec`를 통한 런타임 분기는 감지되지 않으므로, 이는 심층 방어용 제어 수단입니다 |

381| `CLAUDE_CODE_SCROLL_SPEED` | [전체 화면 렌더링](/docs/ko/fullscreen#mouse-wheel-scrolling)에서 마우스 휠 스크롤 배율을 설정합니다. 최대 20까지의 양수 값을 허용하며, 이미 휠 이벤트를 증폭하는 터미널에서 가속된 트랙패드 및 휠 스크롤을 느리게 하기 위한 `0.5` 같은 1 미만의 소수 값도 허용합니다. 터미널이 증폭 없이 노치당 하나의 휠 이벤트를 보내는 경우 `vim`과 맞추려면 `3`으로 설정합니다. Claude Code가 자체 스크롤 처리를 사용하는 JetBrains IDE 터미널에서는 무시됩니다 |383| `CLAUDE_CODE_SCROLL_SPEED` | [전체 화면 렌더링](/docs/ko/fullscreen#mouse-wheel-scrolling)에서 마우스 휠 스크롤 배율을 설정합니다. 20까지의 모든 양수 값을 허용하며, 이미 휠 이벤트를 증폭하는 터미널에서 가속된 트랙패드 및 휠 스크롤을 느리게 하기 위한 `0.5`와 같은 1 미만의 소수 값도 허용합니다. 터미널이 증폭 없이 한 칸당 하나의 휠 이벤트를 보내는 경우 `vim`과 맞추려면 `3`으로 설정합니다. Claude Code가 자체 스크롤 처리를 사용하는 JetBrains IDE 터미널에서는 무시됩니다 |

382| `CLAUDE_CODE_SEND_FEEDBACK` | `0`으로 설정하면 세션에서 [Claude가 작성하는 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior)을 끕니다. 계정에 이미 액세스 권한이 있는 경우 `1`로 설정하여 켭니다. 이 변수 자체로는 액세스 권한을 부여할 수 없으며, `DISABLE_FEEDBACK_COMMAND` 및 [`feedbackDrafts`](/docs/ko/settings-reference#feedbackdrafts) 설정의 `off` 값처럼 피드백을 끄는 다른 스위치는 계속 적용됩니다 |384| `CLAUDE_CODE_SEND_FEEDBACK` | `0`으로 설정하면 세션에서 [Claude가 작성하는 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior)을 끕니다. 계정에 이미 액세스 권한이 있는 경우 `1`로 설정하면 켜집니다. 이 변수 자체로는 액세스 권한을 부여할 수 없으며, `DISABLE_FEEDBACK_COMMAND`와 [`feedbackDrafts`](/docs/ko/settings-reference#feedbackdrafts) 설정의 `off` 값처럼 피드백을 끄는 다른 스위치는 계속 적용됩니다 |

383| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | [SessionEnd](/docs/ko/hooks#sessionend) 훅의 시간 예산(밀리초)을 재정의합니다. 이 값은 자체 `timeout`을 설정하지 않은 각 훅의 타임아웃이기도 합니다. 세션 종료, `/clear`, 대화형 `/resume`을 통한 세션 전환에 적용됩니다. 기본 예산은 1.5초이며, 설정 파일에 구성된 가장 높은 훅별 `timeout`까지 최대 60초로 자동 증가합니다. 플러그인이 제공하는 훅의 타임아웃은 예산을 늘리지 않습니다 |385| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | [SessionEnd](/docs/ko/hooks#sessionend) 훅의 시간 예산(밀리초)을 재정의합니다. 이 값은 자체 `timeout`을 설정하지 않은 각 훅의 타임아웃이기도 합니다. 세션 종료, `/clear`, 대화형 `/resume`을 통한 세션 전환에 적용됩니다. 기본 예산은 1.5초이며, 설정 파일에 구성된 훅별 `timeout` 중 가장 높은 값으로 최대 60초까지 자동으로 늘어납니다. 플러그인이 제공하는 훅의 타임아웃은 예산을 늘리지 않습니다 |

384| `CLAUDE_CODE_SESSION_ID` | Bash 및 PowerShell 도구 하위 프로세스, [훅 명령](/docs/ko/hooks) 하위 프로세스, stdio [MCP 서버](/docs/ko/mcp) 하위 프로세스에서 현재 세션 ID로 자동 설정됩니다. Bash, PowerShell, 훅의 경우 이 값은 훅 JSON 입력의 `session_id` 필드와 일치하며 `/clear` 시 업데이트됩니다. MCP 서버 하위 프로세스는 생성될 때의 ID를 유지합니다. `--resume <session-id>`에서는 재개된 ID를 받아 훅 및 Bash와 일치합니다. 명시적 ID 없이 `--continue` 또는 `--resume`을 사용하면 대신 초기 시작 ID를 받을 수 있습니다. 스크립트 및 외부 도구를 이를 실행한 Claude Code 세션과 연관시키는 데 사용합니다 |386| `CLAUDE_CODE_SESSION_ID` | Bash 및 PowerShell 도구 서브프로세스, [훅 명령](/docs/ko/hooks) 서브프로세스, stdio [MCP 서버](/docs/ko/mcp) 서브프로세스에서 현재 세션 ID로 자동 설정됩니다. Bash, PowerShell, 훅의 경우 이 값은 훅 JSON 입력의 `session_id` 필드와 일치하며 `/clear` 시 업데이트됩니다. MCP 서버 서브프로세스는 생성될 때의 ID를 유지합니다. `--resume <session-id>`에서는 재개된 ID를 받아 훅 및 Bash와 일치합니다. 명시적 ID 없이 `--continue` 또는 `--resume`을 사용하면 대신 초기 시작 ID를 받을 수 있습니다. 스크립트와 외부 도구를 이를 실행한 Claude Code 세션과 연관시킬 때 사용합니다 |

385| `CLAUDE_CODE_SHELL` | Claude Code가 Bash 도구 명령을 실행하는 데 사용하는 셸을 설정합니다. `bash` 또는 `zsh` 바이너리 경로를 허용합니다(예: `/opt/homebrew/bin/bash`). `fish` 같은 다른 셸은 지원되지 않습니다. 값이 작동하는 `bash` 또는 `zsh` 경로가 아니면 Claude Code는 이를 무시하고 자동 감지로 폴백합니다. 자동 감지는 `$SHELL`이 `bash` 또는 `zsh`를 가리키면 이를 사용하고, 그렇지 않으면 `PATH`와 표준 설치 위치에서 처음 발견되는 작동하는 `zsh`, 그다음 `bash`를 선택합니다 |387| `CLAUDE_CODE_SHELL` | Claude Code가 Bash 도구 명령을 실행하는 데 사용하는 셸을 설정합니다. `/opt/homebrew/bin/bash`와 같은 `bash` 또는 `zsh` 바이너리 경로를 허용합니다. `fish`와 같은 다른 셸은 지원되지 않습니다. 값이 동작하는 `bash` 또는 `zsh` 경로가 아니면 Claude Code는 이를 무시하고 자동 감지로 폴백합니다. 자동 감지는 `$SHELL`이 `bash` 또는 `zsh`를 가리키면 이를 사용하고, 그렇지 않으면 `PATH`와 표준 설치 위치에서 처음 발견되는 동작하는 `zsh`, 그다음 `bash`를 선택합니다 |

386| `CLAUDE_CODE_SHELL_PREFIX` | Claude Code가 생성하는 셸 명령을 래핑하는 명령 접두사입니다. 대상에는 Bash 도구 호출, [훅](/docs/ko/hooks) 명령, [상태줄](/docs/ko/statusline) 명령, stdio [MCP 서버](/docs/ko/mcp) 시작 명령이 포함됩니다. PowerShell 훅과 exec 형식 훅은 접두사 없이 실행됩니다. 로깅 또는 감사에 유용합니다. `/path/to/logger.sh` 같은 단순 실행 파일 경로를 설정하면 각 명령이 `/path/to/logger.sh '<command>'`로 실행됩니다. 래퍼는 명령줄을 `$1`에 셸 인용된 단일 인수로 받으므로, 래퍼는 `exec bash -c "$1"`처럼 셸로 `$1`을 다시 평가해야 합니다. `$1`을 단순 실행 파일 경로로 취급하면 `npx -y <package>` 같은 인수를 전달하는 stdio MCP 서버가 작동하지 않습니다. Bash 도구 호출의 경우 `$1`에는 Claude가 실행한 명령뿐만 아니라 환경 설정을 포함하여 Claude Code가 조립한 전체 셸 호출이 들어 있습니다 |388| `CLAUDE_CODE_SHELL_PREFIX` | Claude Code가 생성하는 셸 명령을 감싸는 명령 접두사로, Bash 도구 호출, [훅](/docs/ko/hooks) 명령, [상태줄](/docs/ko/statusline) 명령, stdio [MCP 서버](/docs/ko/mcp) 시작 명령에 적용됩니다. PowerShell 훅과 exec 형식 훅은 접두사 없이 실행됩니다. 로깅이나 감사에 유용합니다. `/path/to/logger.sh`와 같은 단순 실행 파일 경로를 설정하면 각 명령이 `/path/to/logger.sh '<command>'`로 실행됩니다. 래퍼는 명령줄을 `$1`에 셸 인용된 단일 인수로 받으므로, 래퍼는 `exec bash -c "$1"`과 같이 셸로 `$1`을 다시 평가해야 합니다. `$1`을 단순 실행 파일 경로로 취급하면 `npx -y <package>`와 같은 인수를 전달하는 stdio MCP 서버가 동작하지 않습니다. Bash 도구 호출의 경우 `$1`에는 Claude가 실행한 명령뿐 아니라 환경 설정을 포함하여 Claude Code가 조립한 전체 셸 호출이 들어 있습니다 |

387| `CLAUDE_CODE_SIMPLE` | `1`로 설정하면 최소한의 시스템 프롬프트와 Bash, 파일 읽기, 파일 편집 도구만으로 실행합니다. `--mcp-config`의 MCP 도구는 계속 사용할 수 있습니다. 훅, 스킬, 사용자 지정 명령, 서브에이전트, 설치된 플러그인, MCP 서버, 자동 메모리, CLAUDE.md의 자동 검색을 비활성화합니다. `--add-dir`로 전달한 디렉터리의 스킬은 계속 로드됩니다. OAuth 토큰과 키체인 자격 증명을 읽지 않으므로 Anthropic 인증은 `ANTHROPIC_API_KEY` 또는 `--settings`의 `apiKeyHelper`에서 제공되어야 합니다. [`--bare`](/docs/ko/headless#start-faster-with-bare-mode)를 전달하는 것과 동일합니다 |389| `CLAUDE_CODE_SIMPLE` | `1`로 설정하면 최소한의 시스템 프롬프트와 Bash, 파일 읽기, 파일 편집 도구만으로 실행합니다. `--mcp-config`의 MCP 도구는 계속 사용할 수 있습니다. 훅, 스킬, 사용자 지정 명령, 서브에이전트, 설치된 플러그인, MCP 서버, 자동 메모리, CLAUDE.md의 자동 검색을 비활성화합니다. `--add-dir`로 전달한 디렉터리의 스킬은 계속 로드됩니다. OAuth 토큰과 키체인 자격 증명을 읽지 않으므로 Anthropic 인증은 `ANTHROPIC_API_KEY` 또는 `--settings`의 `apiKeyHelper`에서 제공되어야 합니다. [`--bare`](/docs/ko/headless#start-faster-with-bare-mode)를 전달하는 것과 같습니다 |

388| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | `1`로 설정하면 모든 모델에서 더 짧은 시스템 프롬프트와 축약된 도구 설명을 사용합니다. `0`, `false`, `no` 또는 `off`로 설정하면 실험이나 서버 구성에 의해 활성화되는 모델에서도 옵트아웃합니다. 전체 도구 세트, 훅, MCP 서버, CLAUDE.md 검색은 계속 활성화됩니다 |390| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Claude Code의 전체 시스템 프롬프트와 축약된 도구 설명이 포함된 더 짧은 시스템 프롬프트 중에서 선택합니다. 설정하지 않으면 Haiku 4.5, Sonnet 5, Opus 4.7 및 해당 계열의 이전 모델은 기본적으로 전체 프롬프트를 사용하고, 최신 모델은 더 짧은 프롬프트를 사용합니다. 모든 모델에서 더 짧은 프롬프트를 사용하려면 `1`로 설정합니다. 실험이나 서버 구성이 더 짧은 프롬프트를 선택하는 경우에도 모든 모델에서 전체 프롬프트를 사용하려면 `0`, `false`, `no` 또는 `off`로 설정합니다. 어느 프롬프트든 전체 도구 세트, 훅, MCP 서버, CLAUDE.md 검색을 유지합니다 |

389| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | 요청에 직접 서명하는 게이트웨이를 위해 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)의 클라이언트 측 인증을 건너뜁니다 |391| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | 요청에 직접 서명하는 게이트웨이를 위해 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)의 클라이언트 측 인증을 건너뜁니다 |

390| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | `1`로 설정하면 AWS 기본 자격 증명 공급자 체인에서 확인된 자격 증명의 프로세스 내 캐시를 꺼서 Claude Code가 모든 API 요청마다 체인을 확인하도록 합니다. 캐시가 꺼져 있으면 SSO 기반 프로필은 모든 요청마다 IAM Identity Center에 자격 증명을 요청합니다. [자격 증명 캐싱 및 확인 타임아웃](/docs/ko/amazon-bedrock#credential-caching-and-resolution-timeout)을 참조하세요. Claude Code v2.1.207 이상이 필요합니다 |392| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | `1`로 설정하면 AWS 기본 자격 증명 공급자 체인에서 확인된 자격 증명의 인프로세스 캐시를 끄므로, Claude Code가 모든 API 요청마다 체인을 확인합니다. 캐시가 꺼지면 SSO 기반 프로필은 모든 요청마다 IAM Identity Center에 자격 증명을 요청합니다. [자격 증명 캐싱 및 확인 타임아웃](/docs/ko/amazon-bedrock#credential-caching-and-resolution-timeout)을 참조하세요. Claude Code v2.1.207 이상이 필요합니다 |

391| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Amazon Bedrock의 AWS 인증을 건너뜁니다(예: LLM 게이트웨이를 사용하는 경우) |393| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Amazon Bedrock의 AWS 인증을 건너뜁니다(예: LLM 게이트웨이를 사용하는 경우) |

392| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | `1`로 설정하면 확인 과정의 `api.anthropic.com` 직접 요청을 차단하는 네트워크에서 실패한 [빠른 모드](/docs/ko/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 가용성 확인을 사용 가능으로 처리합니다. Claude Code는 "disabled by your organization" 응답은 계속 따릅니다 |394| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | `1`로 설정하면 실패한 [빠른 모드](/docs/ko/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 사용 가능 여부 확인을 사용 가능으로 처리합니다. 이 확인이 `api.anthropic.com`으로 보내는 직접 요청을 차단하는 네트워크를 위한 설정입니다. Claude Code는 "disabled by your organization" 응답은 계속 따릅니다 |

393| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | `1`로 설정하면 확인 요청을 거부하지 않고 가로채는 프록시를 위해 클라이언트 측 [빠른 모드](/docs/ko/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 가용성 확인을 건너뜁니다. 조직에서 빠른 모드를 비활성화한 경우 API는 여전히 빠른 모드 요청을 거부합니다 |395| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | `1`로 설정하면 클라이언트 측 [빠른 모드](/docs/ko/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 사용 가능 여부 확인을 건너뜁니다. 확인 요청을 거부하는 대신 가로채는 프록시를 위한 설정입니다. 조직에서 빠른 모드를 비활성화한 경우 API는 여전히 빠른 모드 요청을 거부합니다 |

394| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | 자체 `Authorization` 헤더를 주입하는 프록시 또는 게이트웨이를 위해 Microsoft Foundry의 Azure 인증을 건너뜁니다. Claude Code는 Azure 자격 증명 없이 요청을 보내며, 예를 들어 `ANTHROPIC_CUSTOM_HEADERS`를 통해 제공한 `Authorization` 헤더를 유지합니다. `ANTHROPIC_FOUNDRY_API_KEY` 또는 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`이 설정된 경우 무시됩니다. v2.1.203 이전에는 API 키도 함께 설정하지 않으면 이 변수로 인해 Microsoft Foundry 클라이언트가 요청을 보낼 수 없었습니다 |396| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | 자체 `Authorization` 헤더를 주입하는 프록시나 게이트웨이를 위해 Microsoft Foundry의 Azure 인증을 건너뜁니다. Claude Code는 Azure 자격 증명 없이 요청을 보내며, `ANTHROPIC_CUSTOM_HEADERS` 등을 통해 제공한 `Authorization` 헤더를 유지합니다. `ANTHROPIC_FOUNDRY_API_KEY` 또는 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`이 설정된 경우 무시됩니다. v2.1.203 이전에는 API 키도 함께 설정하지 않으면 이 변수로 인해 Microsoft Foundry 클라이언트가 요청을 보낼 수 없었습니다 |

395| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Amazon Bedrock Mantle의 AWS 인증을 건너뜁니다(예: LLM 게이트웨이를 사용하는 경우) |397| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Amazon Bedrock Mantle의 AWS 인증을 건너뜁니다(예: LLM 게이트웨이를 사용하는 경우) |

396| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | [Amazon Bedrock](/docs/ko/amazon-bedrock) 및 [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai)의 [시작 모델 확인](/docs/ko/amazon-bedrock#startup-model-checks)은 계정이 호출할 수 없는 것으로 확인된 모델을 이 머신에 최대 하루 동안 기억합니다. 이 기억 기능을 끄려면 `1`로 설정합니다. Claude Code v2.1.285 이상이 필요합니다 |398| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | [Amazon Bedrock](/docs/ko/amazon-bedrock)과 [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai)의 [시작 시 모델 확인](/docs/ko/amazon-bedrock#startup-model-checks)은 계정이 호출할 수 없는 것으로 확인된 모델을 이 머신에 최대 하루 동안 기억합니다. 이 기억 기능을 끄려면 `1`로 설정합니다. Claude Code v2.1.285 이상이 필요합니다 |

397| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | `1`로 설정하면 프롬프트 기록과 세션 트랜스크립트를 디스크에 쓰지 않습니다. 이 변수를 설정한 상태로 시작한 세션은 `--resume`, `--continue` 또는 위쪽 화살표 기록에 나타나지 않습니다. 일회성 스크립트 세션에 유용합니다 |399| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | `1`로 설정하면 프롬프트 기록과 세션 트랜스크립트를 디스크에 기록하지 않습니다. 이 변수를 설정하여 시작한 세션은 `--resume`, `--continue` 또는 위쪽 화살표 기록에 나타나지 않습니다. 일회성 스크립트 세션에 유용합니다 |

398| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Google Cloud의 Agent Platform에 대한 Google 인증을 건너뜁니다(예: LLM 게이트웨이를 사용하는 경우) |400| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Google Cloud의 Agent Platform에 대한 Google 인증을 건너뜁니다(예: LLM 게이트웨이를 사용하는 경우) |

399| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | `1`로 설정하면 `--output-format stream-json`으로 시작한 세션이 stderr 출력만으로 끝나는 시작 실패에 대해 [Claude Code가 시작을 거부한 이유를 명시하는 result 메시지](/docs/ko/agent-sdk/typescript#startup_failure_reason)를 기록합니다. Claude Code v2.1.274 이상이 필요합니다 |401| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | `1`로 설정하면 `--output-format stream-json`으로 시작한 세션이, 그렇지 않으면 stderr 출력만으로 끝나는 시작 실패에 대해 [Claude Code가 시작을 거부한 이유를 명시하는 결과 메시지](/docs/ko/agent-sdk/typescript#startup_failure_reason)를 기록합니다. Claude Code v2.1.274 이상이 필요합니다 |

400| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Claude Code가 재정의하고 턴을 강제로 종료하기 전까지 [Stop](/docs/ko/hooks#stop) 또는 [SubagentStop](/docs/ko/hooks#subagentstop) 훅이 턴 종료를 연속으로 차단할 수 있는 최대 횟수입니다(기본값: 8). 상한을 비활성화하려면 `0`으로 설정합니다. 훅이 해결을 위해 실제로 더 많은 반복이 필요한 경우 값을 늘립니다 |402| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Claude Code가 이를 재정의하고 턴을 종료하기 전까지 [Stop](/docs/ko/hooks#stop) 또는 [SubagentStop](/docs/ko/hooks#subagentstop) 훅이 턴 종료를 연속으로 차단할 수 있는 최대 횟수입니다(기본값: 8). 상한을 비활성화하려면 `0`으로 설정합니다. 훅이 해결하는 데 실제로 더 많은 반복이 필요한 경우 이 값을 높입니다 |

401| `CLAUDE_CODE_SUBAGENT_MODEL` | 다른 방식으로 모델이 할당되지 않은 [서브에이전트](/docs/ko/sub-agents#choose-a-model), [에이전트 팀](/docs/ko/agent-teams#specify-teammates-and-models) 팀원, [워크플로](/docs/ko/workflows) 에이전트의 기본 모델입니다. `haiku` 같은 별칭이나 전체 모델 이름을 허용합니다. 두 가지 소스가 이보다 우선합니다. Claude가 에이전트를 생성할 때 전달하는 모델, 그리고 `inherit`을 포함한 에이전트 정의의 `model` 필드입니다. 이를 변경하려면 [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/ko/sub-agents#run-every-subagent-on-one-model)를 설정합니다. 전체 순서는 [모델 선택](/docs/ko/sub-agents#choose-a-model)을 참조하세요. `inherit`으로 설정하는 것은 설정하지 않는 것과 같습니다. v2.1.251 이전에는 이 변수가 호출별 모델과 정의의 `model` 필드를 모두 재정의했습니다 |403| `CLAUDE_CODE_SUBAGENT_MODEL` | 다른 방식으로 모델이 지정되지 않은 [서브에이전트](/docs/ko/sub-agents#choose-a-model), [에이전트 팀](/docs/ko/agent-teams#specify-teammates-and-models) 팀원, [워크플로](/docs/ko/workflows) 에이전트의 기본 모델입니다. `haiku`와 같은 별칭이나 전체 모델 이름을 허용합니다. 두 가지 소스가 이 값보다 우선합니다. Claude가 에이전트를 생성할 때 전달하는 모델과, `inherit`을 포함한 에이전트 정의의 `model` 필드입니다. 이를 변경하려면 [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/ko/sub-agents#run-every-subagent-on-one-model)를 설정합니다. 전체 순서는 [모델 선택](/docs/ko/sub-agents#choose-a-model)을 참조하세요. `inherit`으로 설정하는 것은 설정하지 않은 것과 같습니다. v2.1.251 이전에는 이 변수가 호출별 모델과 정의의 `model` 필드를 모두 재정의했습니다 |

402| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | `1`로 설정하면 서브에이전트, 팀원, 워크플로 에이전트에 하나의 모델을 강제로 적용합니다. 해당 모델이 무엇인지는 [모든 서브에이전트를 하나의 모델로 실행](/docs/ko/sub-agents#run-every-subagent-on-one-model)에 설명되어 있습니다. Claude Code v2.1.257 이상이 필요합니다 |404| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | `1`로 설정하면 서브에이전트, 팀원, 워크플로 에이전트에 하나의 모델을 강제로 적용합니다. 어떤 모델이 적용되는지는 [모든 서브에이전트를 하나의 모델로 실행](/docs/ko/sub-agents#run-every-subagent-on-one-model)에 설명되어 있습니다. Claude Code v2.1.257 이상이 필요합니다 |

403| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Claude Code가 허용하는 유일한 값인 `5m` 또는 `1h`로 설정하여 [서브에이전트](/docs/ko/sub-agents), 워크플로, 백그라운드 작업 같은 메인 대화 외부 요청의 [프롬프트 캐시 TTL](/docs/ko/prompt-caching#cache-lifetime)을 선택합니다. `subagentPromptCacheTtl` 설정과 `ENABLE_PROMPT_CACHING_1H`보다 우선하며, `FORCE_PROMPT_CACHING_5M`이 이를 재정의합니다. API는 1시간 캐시 쓰기에 더 높은 요금을 청구합니다. Claude Code v2.1.242 이상이 필요합니다 |405| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Claude Code가 허용하는 유일한 값인 `5m` 또는 `1h`로 설정하여 [서브에이전트](/docs/ko/sub-agents), 워크플로, 백그라운드 작업과 같이 메인 대화 외부의 요청에 대한 [프롬프트 캐시 TTL](/docs/ko/prompt-caching#cache-lifetime)을 선택합니다. `subagentPromptCacheTtl` 설정과 `ENABLE_PROMPT_CACHING_1H`보다 우선하며, `FORCE_PROMPT_CACHING_5M`이 이 변수를 재정의합니다. API는 1시간 캐시 쓰기에 더 높은 요율을 청구합니다. Claude Code v2.1.242 이상이 필요합니다 |

404| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | `1`로 설정하면 Bash 명령, 훅, stdio MCP 서버처럼 Claude Code가 시작하는 하위 프로세스의 환경에서 자격 증명을 제거합니다. 스크럽은 변수 이름이나 값으로 자격 증명을 인식하며, GitHub 토큰과 프록시 설정은 그대로 둡니다. [하위 프로세스 환경 스크럽이 제거하는 항목](#what-the-subprocess-environment-scrub-removes)을 참조하세요. `allowed_non_write_users`가 구성된 경우 `claude-code-action`이 이 값을 자동으로 설정합니다 |406| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | `1`로 설정하면 Bash 명령, 훅, stdio MCP 서버와 같이 Claude Code가 시작하는 서브프로세스의 환경에서 자격 증명을 제거합니다. 제거 기능은 변수 이름이나 값으로 자격 증명을 인식하며, GitHub 토큰과 프록시 설정은 그대로 둡니다. [서브프로세스 환경 제거 기능이 제거하는 항목](#what-the-subprocess-environment-scrub-removes)을 참조하세요. `claude-code-action`은 `allowed_non_write_users`가 구성된 경우 이 값을 자동으로 설정합니다 |

405| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 비대화형 모드(`-p` 플래그)에서 `1`로 설정하면 첫 번째 쿼리 전에 플러그인 설치가 완료될 때까지 기다립니다. 이 설정이 없으면 플러그인은 백그라운드에서 설치되며 첫 번째 턴에서 사용할 수 없을 수 있습니다. 대기 시간을 제한하려면 `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS`와 함께 사용합니다 |407| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 비대화형 모드(`-p` 플래그)에서 `1`로 설정하면 첫 번째 쿼리 전에 플러그인 설치가 완료될 때까지 기다립니다. 이 설정이 없으면 플러그인은 백그라운드에서 설치되며 첫 번째 턴에서 사용하지 못할 수 있습니다. 대기 시간을 제한하려면 `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS`와 함께 사용합니다 |

406| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | 동기식 플러그인 설치의 타임아웃(밀리초)입니다. 초과하면 Claude Code는 플러그인 없이 진행하고 오류를 로그에 기록합니다. 기본값은 없습니다. 이 변수가 없으면 동기식 설치는 완료될 때까지 기다립니다 |408| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | 동기식 플러그인 설치의 타임아웃(밀리초)입니다. 초과하면 Claude Code는 플러그인 없이 진행하고 오류를 로그에 기록합니다. 기본값은 없습니다. 이 변수가 없으면 동기식 설치는 완료될 때까지 기다립니다 |

407| `CLAUDE_CODE_SYNC_SKILLS` | `-p` 플래그를 사용하는 비대화형 모드에서, Claude Code가 해당 실행에서 claude.ai 계정에 활성화된 스킬을 다운로드하고 첫 번째 쿼리를 실행하기 전에 `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`까지 스킬 목록을 기다리도록 하려면 `1`로 설정합니다. claude.ai 인증이 필요합니다. claude.ai 계정으로 로그인한 터미널 세션은 이 변수 없이도 [이러한 스킬을 동기화](/docs/ko/skills#where-synced-skills-load)하므로, `-p` 실행의 첫 번째 쿼리에 현재 스킬이 필요한 경우에만 설정합니다 |409| `CLAUDE_CODE_SYNC_SKILLS` | `-p` 플래그를 사용하는 비대화형 모드에서 `1`로 설정하면 Claude Code가 해당 실행에서 claude.ai 계정에 활성화된 스킬을 다운로드하고, 첫 번째 쿼리를 실행하기 전에 최대 `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`까지 스킬 목록을 기다립니다. claude.ai 인증이 필요합니다. claude.ai 계정으로 로그인한 터미널 세션은 이 변수 없이도 [이러한 스킬을 동기화](/docs/ko/skills#where-synced-skills-load)하므로, `-p` 실행의 첫 번째 쿼리에 현재 스킬이 필요한 경우에만 설정합니다 |

408| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | [Agent SDK](/docs/ko/agent-sdk/typescript#query-object)로 빌드된 앱이 스킬을 다시 로드할 때 세션 도중 실행되는 스킬 재동기화의 타임아웃(밀리초)입니다(기본값: 30000). 초과하면 이미 도착한 스킬로 다시 로드가 계속되며, 남은 다운로드는 백그라운드에서 완료됩니다 |410| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | [Agent SDK](/docs/ko/agent-sdk/typescript#query-object)로 빌드된 앱이 스킬을 다시 로드할 때 세션 도중 실행되는 스킬 재동기화의 타임아웃(밀리초)입니다(기본값: 30000). 초과하면 다시 로드는 도착한 스킬로 계속 진행되며, 나머지 다운로드는 백그라운드에서 완료됩니다 |

409| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | `CLAUDE_CODE_SYNC_SKILLS`가 설정된 경우 첫 번째 쿼리가 초기 스킬 목록을 기다리는 타임아웃(밀리초)입니다(기본값: 5000). 초과하면 첫 번째 쿼리는 이미 도착한 스킬로 실행됩니다. 어느 경우든 다운로드는 백그라운드에서 완료되며, Claude는 스킬을 호출할 때 해당 스킬의 다운로드를 기다립니다 |411| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | `CLAUDE_CODE_SYNC_SKILLS`가 설정된 경우 첫 번째 쿼리가 초기 스킬 목록을 기다리는 타임아웃(밀리초)입니다(기본값: 5000). 초과하면 첫 번째 쿼리는 도착한 스킬로 실행됩니다. 어느 경우든 다운로드는 백그라운드에서 완료되며, Claude는 스킬을 호출할 때 해당 스킬의 다운로드를 기다립니다 |

410| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | `false`로 설정하면 diff 출력에서 구문 강조를 비활성화합니다. 색상이 터미널 설정을 방해할 때 유용합니다. 코드 블록과 파일 미리보기에서도 강조를 비활성화하려면 [`syntaxHighlightingDisabled`](/docs/ko/settings-reference#syntaxhighlightingdisabled) 설정을 사용합니다 |412| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | `false`로 설정하면 diff 출력에서 구문 강조를 비활성화합니다. 색상이 터미널 설정과 충돌할 때 유용합니다. 코드 블록과 파일 미리보기에서도 강조를 비활성화하려면 [`syntaxHighlightingDisabled`](/docs/ko/settings-reference#syntaxhighlightingdisabled) 설정을 사용합니다 |

411| `CLAUDE_CODE_TASK_LIST_ID` | 세션 간에 작업 목록을 공유합니다. [Task 도구가 있는 세션](/docs/ko/tools-reference#task-tool-availability)에서 여러 Claude Code 인스턴스에 동일한 ID를 설정하여 공유 작업 목록으로 협업합니다. [작업 목록](/docs/ko/interactive-mode#task-list)을 참조하세요 |413| `CLAUDE_CODE_TASK_LIST_ID` | 세션 간에 작업 목록을 공유합니다. [Task 도구가 있는 세션](/docs/ko/tools-reference#task-tool-availability)에서 여러 Claude Code 인스턴스에 같은 ID를 설정하여 공유 작업 목록으로 협업합니다. [작업 목록](/docs/ko/interactive-mode#task-list)을 참조하세요 |

412| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | 비대화형 세션이 종료 시 [에이전트 팀](/docs/ko/agent-teams)의 해체가 완료될 때까지 기다리는 시간을 밀리초 단위로 재정의합니다. 1000에서 60000까지 허용하며, 범위를 벗어난 값은 무시되고 기본값 10000이 적용됩니다. Claude Code v2.1.206 이상이 필요합니다 |414| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | 비대화형 세션이 종료 시 [에이전트 팀](/docs/ko/agent-teams)의 해체가 완료될 때까지 기다리는 시간을 밀리초 단위로 재정의합니다. 1000에서 60000까지 허용하며, 범위를 벗어난 값은 무시되고 기본값인 10000이 적용됩니다. Claude Code v2.1.206 이상이 필요합니다 |

413| `CLAUDE_CODE_TMPDIR` | 내부 임시 파일에 사용되는 임시 디렉터리를 재정의합니다. Claude Code는 Unix에서는 이 경로에 `/claude-{uid}/`를, Windows에서는 `/claude/`를 추가합니다. 기본값: macOS에서는 `/tmp`, Linux 및 Windows에서는 `os.tmpdir()`. 일부 도구는 임시 경로가 너무 길면 실패하므로, macOS 및 Linux에서 재정의 값이 긴 경로인 경우 [샌드박스](/docs/ko/sandboxing)된 Bash 하위 프로세스는 시스템 기본값 아래의 짧은 대체 `$TMPDIR`을 받습니다. 샌드박스되지 않은 Bash 명령은 셸의 `$TMPDIR`이 설정된 경우 이를 상속합니다. 네이티브 Windows에서 셸이 `$TMPDIR`을 설정하지 않은 경우, `$TMPDIR`을 참조하는 Bash 명령은 재정의 값을 받거나, 재정의 값을 설정하지 않은 경우 `%TEMP%`를 받습니다. Claude Code 자체의 임시 파일은 항상 재정의 값을 사용합니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |415| `CLAUDE_CODE_TMPDIR` | 내부 임시 파일에 사용하는 임시 디렉터리를 재정의합니다. Claude Code는 Unix에서는 이 경로에 `/claude-{uid}/`를, Windows에서는 `/claude/`를 덧붙입니다. 기본값: macOS에서는 `/tmp`, Linux와 Windows에서는 `os.tmpdir()`. macOS와 Linux에서 재정의 경로가 긴 경우, 일부 도구는 임시 경로가 너무 길면 실패하므로 [샌드박스](/docs/ko/sandboxing)된 Bash 서브프로세스는 시스템 기본값 아래의 짧은 대체 `$TMPDIR`을 받습니다. 샌드박스되지 않은 Bash 명령은 셸의 `$TMPDIR`이 설정되어 있으면 이를 상속합니다. 네이티브 Windows에서 셸이 `$TMPDIR`을 설정하지 않은 경우, `$TMPDIR`을 참조하는 Bash 명령은 재정의 값을 받거나, 재정의 값을 설정하지 않았다면 `%TEMP%`를 받습니다. Claude Code 자체의 임시 파일은 항상 재정의 값을 사용합니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |

414| `CLAUDE_CODE_TMUX_TRUECOLOR` | `1` 같은 비어 있지 않은 값으로 설정하면 tmux 내에서 24비트 트루컬러 출력을 허용합니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 트루컬러가 허용됩니다**. 256색 제한을 복원하려면 변수를 해제합니다. tmux는 별도로 구성하지 않으면 트루컬러 이스케이프 시퀀스를 전달하지 않으므로, 기본적으로 Claude Code는 `$TMUX`가 설정된 경우 256색으로 제한합니다. `~/.tmux.conf`에 `set -ga terminal-overrides ',*:Tc'`를 추가한 후 이 값을 설정합니다. 다른 tmux 설정은 [터미널 구성](/docs/ko/terminal-config)을 참조하세요 |416| `CLAUDE_CODE_TMUX_TRUECOLOR` | `1`과 같이 비어 있지 않은 값으로 설정하면 tmux 내부에서 24비트 트루컬러 출력을 허용합니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 트루컬러가 허용됩니다**. 256색 제한을 복원하려면 변수를 해제합니다. 기본적으로 Claude Code는 `$TMUX`가 설정되어 있으면 256색으로 제한합니다. tmux는 구성하지 않는 한 트루컬러 이스케이프 시퀀스를 통과시키지 않기 때문입니다. `~/.tmux.conf`에 `set -ga terminal-overrides ',*:Tc'`를 추가한 후 이 값을 설정합니다. 다른 tmux 설정은 [터미널 구성](/docs/ko/terminal-config)을 참조하세요 |

415| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | Linux 및 WSL에서 Claude Code가 [도구 메모리 상한에서 제외하는](/docs/ko/tools-reference#memory-limit-on-linux-and-wsl) 프로세스 종류를 `mcp` 또는 `lsp` 같은 쉼표로 구분된 목록으로 설정합니다. 모든 종류에 상한을 적용하려면 `none`을, Bash, PowerShell, Monitor 도구 명령에만 상한을 적용하려면 `all-new`를 설정합니다. Claude Code는 나열한 내용과 관계없이 Bash, PowerShell, Monitor 도구 명령에 상한을 적용합니다. Claude Code v2.1.246 이상이 필요합니다 |417| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | Linux와 WSL에서 Claude Code가 [도구 메모리 상한에서 제외](/docs/ko/tools-reference#memory-limit-on-linux-and-wsl)하는 프로세스 종류를 `mcp` 또는 `lsp`와 같이 쉼표로 구분된 목록으로 설정합니다. 모든 종류에 상한을 적용하려면 `none`으로, Bash, PowerShell, Monitor 도구 명령에만 상한을 적용하려면 `all-new`로 설정합니다. 목록과 관계없이 Claude Code는 Bash, PowerShell, Monitor 도구 명령을 상한 아래에 유지합니다. Claude Code v2.1.246 이상이 필요합니다 |

416| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | Linux 및 WSL에서 `4G` 같은 크기로 설정하면 [Bash 및 PowerShell 도구 명령이 사용할 수 있는 메모리를 제한하며](/docs/ko/tools-reference#memory-limit-on-linux-and-wsl), v2.1.246 이상에서는 Monitor 도구 명령도 제한합니다. 크기는 숫자로만 작성하며, 바이트 수는 숫자만으로, 또는 `K`, `M`, `G`, `T` 접미사와 함께 씁니다. 상한을 끄려면 `0` 또는 `off`로 설정합니다. Claude Code가 시작한 첫 번째 프로세스가 상한을 켜거나 끈 후에는, 변경된 값이 다음에 `claude`를 실행할 때 적용됩니다. Claude Code v2.1.233 이상이 필요합니다 |418| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | Linux와 WSL에서 `4G`와 같은 크기로 설정하여 [Bash 및 PowerShell 도구 명령이 사용할 수 있는 메모리를 제한](/docs/ko/tools-reference#memory-limit-on-linux-and-wsl)하며, v2.1.246 이상에서는 Monitor 도구 명령도 제한합니다. 크기는 숫자로만 입력하며, 바이트 수는 숫자만, 그 외에는 `K`, `M`, `G`, `T` 접미사를 붙입니다. 상한을 끄려면 `0` 또는 `off`로 설정합니다. Claude Code가 시작하는 첫 번째 프로세스가 상한을 켜거나 끈 후에는, 변경된 값이 다음에 `claude`를 실행할 때 적용됩니다. Claude Code v2.1.233 이상이 필요합니다 |

417| `CLAUDE_CODE_TRANSCRIPT_LOCAL_GC` | `1`로 설정하면 긴 `-p` 또는 Agent SDK 세션의 [트랜스크립트 파일](/docs/ko/sessions#where-transcripts-are-stored)이 커지는 크기를 제한합니다. 각 압축 후 파일이 5 MB보다 크면 Claude Code는 해당 압축 이전의 기록을 제거합니다. 세션을 재개하면 파일이 잘렸는지 여부와 관계없이 동일한 대화가 복원됩니다. 설정의 `env` 블록으로는 켤 수 없으므로 Claude Code를 시작하는 환경에서 설정합니다. Claude Code v2.1.287 이상이 필요합니다 |419| `CLAUDE_CODE_TRANSCRIPT_LOCAL_GC` | `1`로 설정하면 긴 `-p` 또는 Agent SDK 세션의 [트랜스크립트 파일](/docs/ko/sessions#where-transcripts-are-stored)이 커지는 크기를 제한합니다. 각 압축 후 파일이 5 MB보다 크면 Claude Code는 해당 압축 이전의 기록을 제거합니다. 세션을 재개하면 파일이 잘렸는지와 관계없이 동일한 대화가 복원됩니다. 설정의 `env` 블록으로는 켤 수 없으므로 Claude Code를 시작하는 환경에서 설정합니다. Claude Code v2.1.287 이상이 필요합니다 |

418| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Claude Code가 [Remote Control](/docs/ko/remote-control) 또는 SDK 호스트 같은 원격 클라이언트에 전달하는 대화 상자, 또는 [보류된 세션 간 메시지](/docs/ko/cross-session-messaging#control-inbound-messages)의 승인 대화 상자를 취소하기까지의 기한(밀리초)입니다. 권한 프롬프트와 `AskUserQuestion` 질문은 자체 흐름을 사용하며 이 값의 적용을 받지 않습니다. Claude Code v2.1.236 이상에서는 무인으로 실행될 수 있는 세션에서 세션 도중 표시되는 [Fable 사용량 크레딧 동의 프롬프트](/docs/ko/model-config#fable-and-usage-credits)에도 기한을 적용합니다. 기한이 적용되지 않는 경우를 포함한 전체 보류 메시지 만료 규칙은 [수신 메시지 제어](/docs/ko/cross-session-messaging#control-inbound-messages) 및 [비대화형 세션](/docs/ko/cross-session-messaging#non-interactive-sessions)에 설명되어 있습니다. [`dialogExpiry`](/docs/ko/settings-reference#dialogexpiry) 설정을 재정의합니다. `0` 또는 음수 값은 기한을 비활성화합니다 |420| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Claude Code가 [Remote Control](/docs/ko/remote-control)이나 SDK 호스트와 같은 원격 클라이언트로 전달하는 대화 상자, 또는 [보류된 세션 간 메시지](/docs/ko/cross-session-messaging#control-inbound-messages)의 승인 대화 상자를 취소하기 전까지의 기한(밀리초)입니다. 권한 프롬프트와 `AskUserQuestion` 질문은 자체 흐름을 사용하므로 이 값의 영향을 받지 않습니다. Claude Code v2.1.236 이상에서는 무인으로 실행 중일 수 있는 세션에서 세션 도중 표시되는 [Fable 사용량 크레딧 동의 프롬프트](/docs/ko/model-config#fable-and-usage-credits)에도 기한을 적용합니다. 기한이 적용되지 않는 경우를 포함한 보류 메시지 만료 규칙 전체는 [수신 메시지 제어](/docs/ko/cross-session-messaging#control-inbound-messages)와 [비대화형 세션](/docs/ko/cross-session-messaging#non-interactive-sessions)에서 다룹니다. [`dialogExpiry`](/docs/ko/settings-reference#dialogexpiry) 설정을 재정의합니다. `0` 또는 음수 값은 기한을 비활성화합니다 |

419| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)를 사용합니다 |421| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)를 사용합니다 |

420| `CLAUDE_CODE_USE_BEDROCK` | [Amazon Bedrock](/docs/ko/amazon-bedrock)을 사용합니다 |422| `CLAUDE_CODE_USE_BEDROCK` | [Amazon Bedrock](/docs/ko/amazon-bedrock)을 사용합니다 |

421| `CLAUDE_CODE_USE_FOUNDRY` | [Microsoft Foundry](/docs/ko/microsoft-foundry)를 사용합니다 |423| `CLAUDE_CODE_USE_FOUNDRY` | [Microsoft Foundry](/docs/ko/microsoft-foundry)를 사용합니다 |

422| `CLAUDE_CODE_USE_MANTLE` | Amazon Bedrock [Mantle 엔드포인트](/docs/ko/amazon-bedrock#use-the-mantle-endpoint)를 사용합니다 |424| `CLAUDE_CODE_USE_MANTLE` | Amazon Bedrock [Mantle 엔드포인트](/docs/ko/amazon-bedrock#use-the-mantle-endpoint)를 사용합니다 |

423| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | `1`로 설정하면 ripgrep 대신 Node.js 파일 API를 사용하여 사용자 지정 명령, 서브에이전트, 출력 스타일을 검색합니다. 번들된 ripgrep 바이너리를 사용할 수 없거나 환경에서 차단된 경우 설정합니다. Grep 또는 파일 검색 도구에는 영향을 주지 않습니다 |425| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | `1`로 설정하면 ripgrep 대신 Node.js 파일 API를 사용하여 사용자 지정 명령, 서브에이전트, 출력 스타일을 검색합니다. 번들된 ripgrep 바이너리를 사용할 수 없거나 환경에서 차단된 경우 설정합니다. Grep 또는 파일 검색 도구에는 영향을 주지 않습니다 |

424| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | PowerShell 도구를 제어합니다. Git Bash가 없는 Windows에서는 도구가 자동으로 활성화되며, 비활성화하려면 `0`으로 설정합니다. Git Bash가 설치된 Windows에서는 claude.ai 및 Console 계정의 경우 도구가 기본적으로 켜져 있습니다. Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry 세션에서 활성화하려면 `1`로, 끄려면 `0`으로 설정합니다. Linux, macOS, WSL에서는 `1`로 설정하여 활성화하며, 이 경우 `PATH`에 `pwsh`가 있어야 합니다. Windows에서 활성화하면 Claude는 Git Bash를 거치지 않고 PowerShell 명령을 네이티브로 실행할 수 있습니다. [PowerShell 도구](/docs/ko/tools-reference#powershell-tool)를 참조하세요 |426| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | PowerShell 도구를 제어합니다. Git Bash가 없는 Windows에서는 도구가 자동으로 활성화되며, `0`으로 설정하면 비활성화됩니다. Git Bash가 설치된 Windows에서는 claude.ai 및 Console 계정에 대해 기본적으로 켜져 있습니다. Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry 세션에서 활성화하려면 `1`로, 끄려면 `0`으로 설정합니다. Linux, macOS, WSL에서는 `1`로 설정하면 활성화되며, 이 경우 `PATH`에 `pwsh`가 있어야 합니다. Windows에서 활성화하면 Claude가 Git Bash를 거치지 않고 PowerShell 명령을 네이티브로 실행할 수 있습니다. [PowerShell 도구](/docs/ko/tools-reference#powershell-tool)를 참조하십시오 |

425| `CLAUDE_CODE_USE_VERTEX` | [Google Cloud's Agent Platform](/docs/ko/google-vertex-ai)을 사용합니다 |427| `CLAUDE_CODE_USE_VERTEX` | [Google Cloud's Agent Platform](/docs/ko/google-vertex-ai)을 사용합니다 |

426| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior)가 가져온 각 URL의 응답을 캐시에 보관하는 시간을 밀리초 단위로 설정합니다. 기본값은 `900000`으로, 15분입니다. 숫자만 사용할 수 있으며, `0`, 소수 또는 다른 표기는 기본값을 유지합니다. Claude Code는 실행할 때마다 값을 한 번 읽으므로, 설정 `env` 블록의 변경 사항은 다음에 `claude`를 실행할 때 적용됩니다. Claude Code v2.1.233 이상이 필요합니다 |428| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior)가 가져온 각 URL의 응답을 캐시에 유지하는 시간(밀리초)으로 설정합니다. 기본값은 `900000`(15분)입니다. 숫자만 허용되며, `0`, 소수 또는 다른 표기는 기본값을 유지합니다. Claude Code는 실행할 때마다 값을 한 번 읽으므로, 설정의 `env` 블록에서 변경한 내용은 다음에 `claude`를 실행할 때 적용됩니다. Claude Code v2.1.233 이상이 필요합니다 |

427| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior)가 따라가는 리디렉션을 포함하여 페이지 다운로드를 기다리는 시간의 상한(밀리초)입니다. 그때까지 완료되지 않은 다운로드는 기한 오류로 실패합니다. 기본값은 `300000`으로, 5분입니다. 제한을 없애려면 `0`으로 설정합니다. 숫자만 사용할 수 있으며, 소수나 다른 표기는 기본값을 유지합니다. Claude Code v2.1.268 이상이 필요합니다 |429| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior)가 따라가는 리디렉션을 포함하여 페이지 다운로드를 기다리는 시간의 상한(밀리초)입니다. 그때까지 완료되지 않은 다운로드는 기한 오류로 실패합니다. 기본값은 `300000`(5분)입니다. 제한을 없애려면 `0`으로 설정합니다. 숫자만 허용되며, 소수 또는 다른 표기는 기본값을 유지합니다. Claude Code v2.1.268 이상이 필요합니다 |

428| `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` | `CLAUDE_AUTO_BACKGROUND_TASKS`가 `1`로 설정된 경우, 아직 실행 중인 [백그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)를 확인하도록 Claude에게 알리는 각 리마인더 전에 Claude Code가 기다리는 시간입니다. `600` 또는 `600,1800,3600`처럼 `1`부터 `86400`까지의 정수 초 단위 대기 시간을 하나 이상 쉼표로 구분하여 지정합니다. 각 값은 다음 리마인더 전의 대기 시간이며, 마지막 값이 반복됩니다. 숫자만 사용할 수 있으며, 다른 값이나 표기는 설정되지 않은 것으로 간주됩니다. 설정되지 않으면 리마인더가 없습니다. Claude Code v2.1.283 이상이 필요합니다 |430| `CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR` | 세션의 [WebSearch 한도](/docs/ko/tools-reference#session-search-limit)가 다시 채워지는 속도로, 시간당 호출 수 단위입니다. 대화형 터미널 세션에서 기본값은 `100`입니다. [비대화형](/docs/ko/headless) 세션에서 기본값은 `0`이며, 이는 다시 채우기를 끕니다. 숫자만 허용되며, 다른 표기는 설정되지 않은 것으로 읽힙니다. Claude Code v2.1.290 이상이 필요합니다 |

429| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | 단일 [워크플로](/docs/ko/workflows) 실행이 동시에 실행하는 에이전트 수로, `1`부터 `256`까지 지정할 수 있습니다. 기본적으로 실행당 최대 16개의 에이전트를 동시에 실행하며, Claude Code가 사용할 수 있는 CPU가 적으면 더 적게 실행합니다. 대기열에 있는 `agent()` 호출은 빈 슬롯을 기다립니다. 실행 중인 각 에이전트의 트랜스크립트는 Claude Code의 메모리에 유지되므로 값이 높을수록 메모리 사용량이 증가합니다. 숫자만 사용할 수 있으며, 범위를 벗어난 값과 다른 표기는 기본값을 유지합니다. Claude Code v2.1.269 이상이 필요합니다 |431| `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` | `CLAUDE_AUTO_BACKGROUND_TASKS`가 `1`로 설정된 경우, 아직 실행 중인 [백그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)를 확인하도록 Claude에게 알림을 보내기 전에 Claude Code가 대기하는 시간입니다. `1`부터 `86400`까지의 정수 초 단위 대기 시간을 쉼표로 구분하여 하나 이상 지정합니다(예: `600` 또는 `600,1800,3600`). 각 값은 다음 알림 전의 대기 시간이며, 마지막 값이 반복됩니다. 숫자만 허용되며, 다른 값이나 표기는 설정되지 않은 것으로 읽힙니다. 설정되지 않으면 알림이 없습니다. Claude Code v2.1.283 이상이 필요합니다 |

430| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | [워크플로](/docs/ko/workflows) 에이전트가 자체 첫 요청을 보내기 전에 동일한 접두사를 가진 형제 에이전트의 첫 응답이 시작되기를 기다리는 시간의 상한(밀리초)입니다. 팬아웃이 [프롬프트 캐시 접두사](/docs/ko/workflows#prompt-caching-in-a-fan-out)를 공유하는 여러 에이전트를 시작하면, Claude Code는 첫 번째 에이전트를 제외한 모든 에이전트를 최대 이 시간만큼 대기시켜, 나머지 에이전트가 각각 캐시되지 않은 상태로 접두사를 처리하는 대신 캐시된 접두사를 읽도록 합니다. 기본값은 `5000`입니다. 대기를 비활성화하려면 `0`으로 설정합니다. `DISABLE_PROMPT_CACHING`이 설정되면 에이전트는 대기하지 않습니다. Claude Code v2.1.229 이상이 필요합니다 |432| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | 단일 [워크플로](/docs/ko/workflows) 실행이 동시에 실행하는 에이전트 수로, `1`부터 `256`까지입니다. 기본적으로 실행은 최대 16개의 에이전트를 동시에 실행하며, Claude Code가 사용할 수 있는 CPU가 적으면 더 적게 실행합니다. 대기 중인 `agent()` 호출은 빈 슬롯을 기다립니다. 실행 중인 각 에이전트의 트랜스크립트는 Claude Code의 메모리에 유지되므로, 값이 높을수록 메모리 사용량이 증가합니다. 숫자만 허용되며, 범위를 벗어난 값과 다른 표기는 기본값을 유지합니다. Claude Code v2.1.269 이상이 필요합니다 |

431| `CLAUDE_CONFIG_DIR` | 구성 디렉터리를 재정의합니다(기본값: `~/.claude`). 모든 설정, 세션 기록, 플러그인이 이 경로 아래에 저장됩니다. 자격 증명에 대해서는 [Claude Code가 자격 증명을 저장하는 위치](/docs/ko/authentication#credential-management)를 참조하세요. 여러 계정을 나란히 실행할 때 유용합니다. 예: `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. 설정 파일에서는 [절대 경로](#in-settings-files)를 작성합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |433| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | [워크플로](/docs/ko/workflows) 에이전트가 자신의 첫 요청을 보내기 전에 동일한 접두사를 가진 형제 에이전트의 첫 응답이 시작되기를 기다리는 시간의 상한(밀리초)입니다. 팬아웃이 [프롬프트 캐시 접두사](/docs/ko/workflows#prompt-caching-in-a-fan-out)를 공유하는 여러 에이전트를 시작하면, Claude Code는 첫 번째 에이전트를 제외한 모든 에이전트를 최대 이 시간만큼 보류하여 나머지가 각각 캐시되지 않은 접두사를 처리하는 대신 캐시된 접두사를 읽도록 합니다. 기본값은 `5000`입니다. 대기를 비활성화하려면 `0`으로 설정합니다. `DISABLE_PROMPT_CACHING`이 설정되면 에이전트는 대기하지 않습니다. Claude Code v2.1.229 이상이 필요합니다 |

434| `CLAUDE_CONFIG_DIR` | 구성 디렉터리를 재정의합니다(기본값: `~/.claude`). 모든 설정, 세션 기록, 플러그인이 이 경로 아래에 저장됩니다. 자격 증명에 대해서는 [Claude Code가 자격 증명을 저장하는 위치](/docs/ko/authentication#credential-management)를 참조하십시오. 여러 계정을 나란히 실행할 때 유용합니다. 예: `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. 설정 파일에서는 [절대 경로](#in-settings-files)를 작성합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |

432| `CLAUDE_DISABLE_ADOPT` | `←`를 누르거나 [`/background`](/docs/ko/agent-view#from-inside-a-session)로 세션을 백그라운드로 보낼 때 진행 중인 백그라운드 작업을 이어가는 대신 중지하려면 `1`로 설정합니다. Claude Code는 백그라운드로 보내기 전에 확인을 요청한 다음, 원래라면 이어졌을 작업을 중지합니다. Claude Code v2.1.195 이상이 필요합니다 |435| `CLAUDE_DISABLE_ADOPT` | `←`를 누르거나 [`/background`](/docs/ko/agent-view#from-inside-a-session)로 세션을 백그라운드로 보낼 때 진행 중인 백그라운드 작업을 이어가는 대신 중지하려면 `1`로 설정합니다. Claude Code는 백그라운드로 보내기 전에 확인을 요청한 다음, 원래라면 이어졌을 작업을 중지합니다. Claude Code v2.1.195 이상이 필요합니다 |

433| `CLAUDE_EFFORT` | Bash 도구 하위 프로세스와 훅 명령에서, 하위 프로세스가 시작될 때 적용 중인 [effort 수준](/docs/ko/model-config#adjust-effort-level)으로 자동 설정됩니다: `low`, `medium`, `high`, `xhigh` 또는 `max`. [훅](/docs/ko/hooks)에 전달되는 `effort.level` 필드와 일치합니다. 현재 모델이 effort 매개변수를 지원하는 경우에만 설정됩니다 |436| `CLAUDE_EFFORT` | Bash 도구 하위 프로세스와 훅 명령에서 하위 프로세스가 시작될 때 적용 중인 [effort 수준](/docs/ko/model-config#adjust-effort-level)으로 자동 설정됩니다: `low`, `medium`, `high`, `xhigh` 또는 `max`. [훅](/docs/ko/hooks)에 전달되는 `effort.level` 필드와 일치합니다. 현재 모델이 effort 매개변수를 지원하는 경우에만 설정됩니다 |

434| `CLAUDE_ENABLE_BYTE_WATCHDOG` | 바이트 수준 스트리밍 유휴 워치독을 강제로 활성화하려면 `1`로, 강제로 비활성화하려면 `0`으로 설정합니다. `0`은 해당 기한이 실행되는 연결에서 [첫 바이트 기한](/docs/ko/network-config#streaming-idle-watchdogs)도 끕니다. 설정되지 않으면 워치독은 직접 Anthropic API 및 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 연결과, `ANTHROPIC_BASE_URL` 또는 `ANTHROPIC_AWS_BASE_URL`을 통해 연결되는 [게이트웨이](/docs/ko/gateways) 연결의 스트리밍 응답에 대해 기본적으로 활성화됩니다. v2.1.222 이전에는 이러한 게이트웨이 연결에서 실행되지 않았기 때문에, keep-alive ping이 도착하는 동안에도 이벤트 수준 워치독이 해당 연결에서 정체를 보고할 수 있었습니다. 타임아웃과 타이머 간의 상호작용에 대해서는 [스트리밍 유휴 워치독](/docs/ko/network-config#streaming-idle-watchdogs)을 참조하세요 |437| `CLAUDE_ENABLE_BYTE_WATCHDOG` | 바이트 수준 스트리밍 유휴 워치독을 강제로 활성화하려면 `1`로, 강제로 비활성화하려면 `0`으로 설정합니다. `0`은 해당 기한이 실행되는 연결에서 [첫 바이트 기한](/docs/ko/network-config#streaming-idle-watchdogs)도 끕니다. 설정되지 않은 경우, 워치독은 직접 Anthropic API 및 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 연결과 `ANTHROPIC_BASE_URL` 또는 `ANTHROPIC_AWS_BASE_URL`을 통해 도달하는 [게이트웨이](/docs/ko/gateways) 연결의 스트리밍 응답에 대해 기본적으로 활성화됩니다. v2.1.222 이전에는 이러한 게이트웨이 연결에서 실행되지 않았으므로, keep-alive 핑이 도착하는 동안에도 이벤트 수준 워치독이 그곳에서 정체를 보고할 수 있었습니다. 타임아웃과 타이머 간의 상호 작용에 대해서는 [스트리밍 유휴 워치독](/docs/ko/network-config#streaming-idle-watchdogs)을 참조하십시오 |

435| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Amazon Bedrock `vnd.amazon.eventstream` 응답에서 바이트 수준 스트리밍 유휴 워치독을 활성화하려면 `1`로 설정합니다. 이렇게 하면 Bedrock 스트리밍 요청에서 [첫 바이트 기한](/docs/ko/network-config#streaming-idle-watchdogs)도 활성화됩니다. 기본적으로 꺼져 있습니다. 타임아웃은 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 구성합니다 |438| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Amazon Bedrock `vnd.amazon.eventstream` 응답에서 바이트 수준 스트리밍 유휴 워치독을 활성화하려면 `1`로 설정합니다. 이 설정은 Bedrock 스트리밍 요청에서 [첫 바이트 기한](/docs/ko/network-config#streaming-idle-watchdogs)도 활성화합니다. 기본적으로 꺼져 있습니다. 타임아웃은 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 구성합니다 |

436| `CLAUDE_ENABLE_STREAM_WATCHDOG` | 이벤트 수준 스트리밍 유휴 워치독을 강제로 비활성화하려면 `0`으로, 강제로 활성화하려면 `1`로 설정합니다. 설정되지 않으면 워치독은 모든 공급자에서 기본적으로 켜져 있습니다. v2.1.196 이전에는 설정되지 않은 경우의 기본값이 직접 Anthropic API에서는 서버에서 제어되었고 다른 공급자에서는 꺼져 있었습니다. 타임아웃은 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 구성하며, 이 워치독과 함께 실행되는 다른 정체 타이머에 대해서는 [스트리밍 유휴 워치독](/docs/ko/network-config#streaming-idle-watchdogs)을 참조하세요 |439| `CLAUDE_ENABLE_STREAM_WATCHDOG` | 이벤트 수준 스트리밍 유휴 워치독을 강제로 비활성화하려면 `0`으로, 강제로 활성화하려면 `1`로 설정합니다. 설정되지 않은 경우, 워치독은 모든 제공업체에서 기본적으로 켜져 있습니다. v2.1.196 이전에는 설정되지 않은 경우의 기본값이 직접 Anthropic API에서는 서버에서 제어되었고 다른 제공업체에서는 꺼져 있었습니다. 타임아웃은 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 구성합니다. 이 워치독과 함께 실행되는 다른 정체 타이머에 대해서는 [스트리밍 유휴 워치독](/docs/ko/network-config#streaming-idle-watchdogs)을 참조하십시오 |

437| `CLAUDE_ENV_FILE` | Claude Code가 각 Bash 명령 전에 같은 셸 프로세스에서 내용을 실행하는 셸 스크립트의 경로로, 파일의 export가 명령에 표시됩니다. 명령 간에 virtualenv 또는 conda 활성화를 유지하는 데 사용합니다. [SessionStart](/docs/ko/hooks#persist-environment-variables), [Setup](/docs/ko/hooks#setup), [CwdChanged](/docs/ko/hooks#cwdchanged), [FileChanged](/docs/ko/hooks#filechanged) 훅에 의해 동적으로 채워지기도 합니다 |440| `CLAUDE_ENV_FILE` | Claude Code가 각 Bash 명령 전에 동일한 셸 프로세스에서 내용을 실행하는 셸 스크립트의 경로로, 파일의 export가 명령에 표시됩니다. 명령 간에 virtualenv 또는 conda 활성화를 유지하는 데 사용합니다. [SessionStart](/docs/ko/hooks#persist-environment-variables), [Setup](/docs/ko/hooks#setup), [CwdChanged](/docs/ko/hooks#cwdchanged), [FileChanged](/docs/ko/hooks#filechanged) 훅에 의해 동적으로 채워지기도 합니다 |

438| `CLAUDE_JOB_DIR` | Claude Code가 각 [백그라운드 세션](/docs/ko/agent-view)에서 해당 세션의 `~/.claude/jobs/<id>` 디렉터리로 설정합니다. 세션이 실행하는 셸 명령이 이를 상속합니다. 임시 파일은 [`$CLAUDE_JOB_DIR/tmp`](/docs/ko/agent-view#where-state-is-stored)에 작성합니다. 그 위치에 대한 Claude의 `Write` 및 `Edit` 호출은 권한 확인을 요청하지 않으며, 세션이 삭제되면 디렉터리도 제거됩니다 |441| `CLAUDE_JOB_DIR` | Claude Code가 각 [백그라운드 세션](/docs/ko/agent-view)에서 해당 세션의 `~/.claude/jobs/<id>` 디렉터리로 설정합니다. 세션이 실행하는 셸 명령이 이를 상속합니다. 임시 파일은 [`$CLAUDE_JOB_DIR/tmp`](/docs/ko/agent-view#where-state-is-stored)에 작성합니다. 그곳에 대한 Claude의 `Write` 및 `Edit` 호출은 권한을 묻지 않으며, 세션이 삭제되면 디렉터리도 제거됩니다 |

439| `CLAUDE_PID` | Claude Code가 생성하는 하위 프로세스(Bash 및 PowerShell 도구 명령과 훅 명령)에서 자체 프로세스 ID로 설정합니다. Linux에서 Bash 도구의 셸 통합은 이를 사용하여 Claude Code 프로세스 자체와 일치하는 `pkill` 패턴을 거부합니다. [오류 참조](/docs/ko/errors#pkill-pattern-matches-the-claude-code-process)를 참조하세요. 자체 스크립트에서 이 값을 읽어 상위 Claude Code 프로세스를 의도적으로 식별하거나 신호를 보낼 수 있습니다. Claude Code v2.1.214 이상이 필요합니다 |442| `CLAUDE_PID` | Claude Code가 생성하는 하위 프로세스(Bash 및 PowerShell 도구 명령과 훅 명령)에서 자신의 프로세스 ID로 설정합니다. Linux에서는 Bash 도구의 셸 통합이 이를 사용하여 Claude Code 프로세스 자체와 일치하는 `pkill` 패턴을 거부합니다. [오류 참조](/docs/ko/errors#pkill-pattern-matches-the-claude-code-process)를 참조하십시오. 직접 작성한 스크립트에서 이를 읽어 상위 Claude Code 프로세스를 의도적으로 식별하거나 신호를 보낼 수 있습니다. Claude Code v2.1.214 이상이 필요합니다 |

440| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | 명시적인 이름이 제공되지 않을 때 자동 생성되는 [Remote Control](/docs/ko/remote-control) 세션 이름의 접두사입니다. 기본값은 머신의 호스트 이름이며, `myhost-graceful-unicorn`과 같은 이름을 생성합니다. `--remote-control-session-name-prefix` CLI 플래그는 단일 호출에 대해 같은 값을 설정합니다 |443| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | 명시적인 이름이 제공되지 않을 때 자동 생성되는 [Remote Control](/docs/ko/remote-control) 세션 이름의 접두사입니다. 기본값은 머신의 호스트 이름이며, `myhost-graceful-unicorn`과 같은 이름을 생성합니다. `--remote-control-session-name-prefix` CLI 플래그는 단일 호출에 대해 동일한 값을 설정합니다 |

441| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | [첫 바이트 기한](/docs/ko/network-config#streaming-idle-watchdogs)이 실행되는 연결에서 스트리밍 요청의 첫 응답 바이트에 대한 기한(밀리초)입니다. Claude Code가 이 값을 제한하는 방식, 큰 요청 본문에 대해 추가하는 시간, 이 값을 설정하지 않았을 때 기한을 선택하는 방식은 [API로부터 응답 없음](/docs/ko/errors#no-response-from-api)을 참조하세요. Claude Code v2.1.242 이상이 필요합니다 |444| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | [첫 바이트 기한](/docs/ko/network-config#streaming-idle-watchdogs)이 실행되는 연결에서 스트리밍 요청의 첫 응답 바이트에 대한 기한(밀리초)입니다. Claude Code가 이 값을 제한하는 방식, 큰 요청 본문에 추가하는 시간, 이 값을 설정하지 않았을 때 기한을 선택하는 방식에 대해서는 [No response from API](/docs/ko/errors#no-response-from-api)를 참조하십시오. Claude Code v2.1.242 이상이 필요합니다 |

442| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | 이벤트 수준 및 바이트 수준 스트리밍 유휴 워치독이 정체된 연결을 닫기 전까지의 타임아웃(밀리초)입니다. 이 변수를 명시적으로 설정하면 최솟값은 `300000`(5분)입니다. 더 낮은 값은 확장 사고 일시 중지와 프록시 버퍼링을 흡수하기 위해 별도 알림 없이 조정되며, 바이트 수준 워치독은 값을 최대 30분으로 제한합니다. 바이트 수준 워치독에 대해서는 `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS`가 이 변수보다 우선합니다. 워치독별로 설정되지 않은 경우의 기본값은 [스트리밍 유휴 워치독](/docs/ko/network-config#streaming-idle-watchdogs)을 참조하세요 |445| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | 이벤트 수준 및 바이트 수준 스트리밍 유휴 워치독이 정체된 연결을 닫기 전의 타임아웃(밀리초)입니다. 이 변수를 명시적으로 설정하면 최솟값은 `300000`(5분)입니다. 확장 사고로 인한 일시 정지와 프록시 버퍼링을 흡수하기 위해 더 낮은 값은 자동으로 조정되며, 바이트 수준 워치독은 값을 30분으로 제한합니다. 바이트 수준 워치독에 대해서는 `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS`가 이 변수보다 우선합니다. 워치독별로 설정되지 않은 경우의 기본값은 [스트리밍 유휴 워치독](/docs/ko/network-config#streaming-idle-watchdogs)을 참조하십시오 |

443| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | v2.1.260에서 제거되었으며 현재는 아무 효과가 없습니다. 이전에는 [서브에이전트](/docs/ko/sub-agents)가 시작한 [백그라운드 셸 명령](/docs/ko/interactive-mode#background-bash-commands)이 실행될 수 있는 시간을 밀리초 단위로 제한했으며, 기본값은 60분이었습니다. [백그라운드 명령 수명 규칙](/docs/ko/tools-reference#background-commands)을 참조하세요 |446| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | v2.1.260에서 제거되었으며 이제 아무 효과가 없습니다. 이전에는 [서브에이전트](/docs/ko/sub-agents)가 시작한 [백그라운드 셸 명령](/docs/ko/interactive-mode#background-bash-commands)이 실행될 수 있는 시간을 밀리초 단위로 제한했으며, 기본값은 60분이었습니다. [백그라운드 명령 수명 규칙](/docs/ko/tools-reference#background-commands)을 참조하십시오 |

444| `DEBUG` | 디버그 모드를 활성화하려면 `1`로 설정합니다. [`--debug`](/docs/ko/cli-reference#cli-flags)로 실행하는 것과 같습니다. 디버그 로그는 `~/.claude/debug/<session-id>.txt` 또는 `CLAUDE_CODE_DEBUG_LOGS_DIR`로 설정한 경로에 기록됩니다. 참 값인 `1`, `true`, `yes`, `on`만 디버그 모드를 활성화하므로, 다른 도구용으로 설정된 `DEBUG=express:*`와 같은 네임스페이스 패턴은 디버그 모드를 트리거하지 않습니다 |447| `DEBUG` | 디버그 모드를 활성화하려면 `1`로 설정합니다. [`--debug`](/docs/ko/cli-reference#cli-flags)로 실행하는 것과 동일합니다. 디버그 로그는 `~/.claude/debug/<session-id>.txt` 또는 `CLAUDE_CODE_DEBUG_LOGS_DIR`로 설정된 경로에 기록됩니다. 참 값인 `1`, `true`, `yes`, `on`만 디버그 모드를 활성화하므로, 다른 도구를 위해 설정된 `DEBUG=express:*`와 같은 네임스페이스 패턴은 이를 트리거하지 않습니다 |

445| `DISABLE_AUTOUPDATER` | 자동 백그라운드 업데이트를 비활성화하려면 `1`로 설정합니다. 수동 `claude update`는 계속 작동합니다. 둘 다 차단하려면 `DISABLE_UPDATES`를 사용하세요 |448| `DISABLE_AUTOUPDATER` | 자동 백그라운드 업데이트를 비활성화하려면 `1`로 설정합니다. 수동 `claude update`는 계속 작동합니다. 둘 다 차단하려면 `DISABLE_UPDATES`를 사용합니다 |

446| `DISABLE_AUTO_COMPACT` | 컨텍스트 한도에 가까워질 때 자동 압축을 비활성화하려면 `1`로 설정합니다. 수동 `/compact` 명령은 계속 사용할 수 있습니다. 압축이 발생하는 시점을 명시적으로 제어하려는 경우에 사용합니다. [`autoCompactEnabled`](/docs/ko/settings-reference#autocompactenabled) 설정을 재정의합니다 |449| `DISABLE_AUTO_COMPACT` | 컨텍스트 한도에 가까워질 때 자동 압축을 비활성화하려면 `1`로 설정합니다. 수동 `/compact` 명령은 계속 사용할 수 있습니다. 압축이 발생하는 시점을 명시적으로 제어하려는 경우에 사용합니다. [`autoCompactEnabled`](/docs/ko/settings-reference#autocompactenabled) 설정을 재정의합니다 |

447| `DISABLE_COMPACT` | 자동 압축과 수동 `/compact` 명령을 모두 포함한 모든 압축을 비활성화하려면 `1`로 설정합니다 |450| `DISABLE_COMPACT` | 자동 압축과 수동 `/compact` 명령을 모두 포함하여 모든 압축을 비활성화하려면 `1`로 설정합니다 |

448| `DISABLE_COST_WARNINGS` | 비용 경고 메시지를 비활성화하려면 `1`로 설정합니다 |451| `DISABLE_COST_WARNINGS` | 비용 경고 메시지를 비활성화하려면 `1`로 설정합니다 |

449| `DISABLE_DOCTOR_COMMAND` | [`/doctor`](/docs/ko/commands#all-commands) 설정 점검 스킬과 그 별칭인 `/checkup`을 숨기려면 `1`로 설정합니다. 사용자가 세션에서 설정 진단을 실행하지 않아야 하는 관리형 배포에 유용합니다. `claude doctor` 터미널 명령에는 영향을 주지 않습니다. v2.1.205 이전에는 이 변수가 `/doctor` 진단 화면 명령을 숨겼습니다 |452| `DISABLE_DOCTOR_COMMAND` | [`/doctor`](/docs/ko/commands#all-commands) 설정 점검 스킬과 해당 `/checkup` 별칭을 숨기려면 `1`로 설정합니다. 사용자가 세션에서 설정 진단을 실행해서는 안 되는 관리형 배포에 유용합니다. `claude doctor` 터미널 명령에는 영향을 주지 않습니다. v2.1.205 이전에는 이 변수가 `/doctor` 진단 화면 명령을 숨겼습니다 |

450| `DISABLE_ERROR_REPORTING` | 오류 보고를 옵트아웃하려면 `1`과 같은 비어 있지 않은 값으로 설정합니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 여전히 옵트아웃됩니다**. 오류 보고를 다시 켜려면 변수를 설정 해제하세요 |453| `DISABLE_ERROR_REPORTING` | 오류 보고를 옵트아웃하려면 `1`과 같이 비어 있지 않은 임의의 값으로 설정합니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 여전히 옵트아웃됩니다**. 오류 보고를 다시 켜려면 변수 설정을 해제합니다 |

451| `DISABLE_EXTRA_USAGE_COMMAND` | 사용자가 속도 제한을 넘어 추가 사용량을 구매할 수 있는 `/usage-credits` 명령을 숨기려면 `1`로 설정합니다 |454| `DISABLE_EXTRA_USAGE_COMMAND` | 사용자가 속도 제한을 넘어 추가 사용량을 구매할 수 있는 `/usage-credits` 명령을 숨기려면 `1`로 설정합니다 |

452| `DISABLE_FEEDBACK_COMMAND` | `/feedback` 명령과 [Claude가 작성하는 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior)을 비활성화하려면 `1`로 설정합니다. 같은 경로를 통해 보고하는 `/bug`와 `/share`도 비활성화합니다. v2.1.212 이전에는 이들이 `/feedback`의 별칭이었으므로 모든 이름의 명령이 비활성화되었습니다. 이전 이름인 `DISABLE_BUG_COMMAND`도 허용됩니다 |455| `DISABLE_FEEDBACK_COMMAND` | `/feedback` 명령과 [Claude가 작성하는 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior)을 비활성화하려면 `1`로 설정합니다. 동일한 경로를 통해 보고하는 `/bug` 및 `/share`도 비활성화합니다. v2.1.212 이전에는 이들이 `/feedback`의 별칭이었으므로 모든 이름에서 명령이 비활성화되었습니다. 이전 이름인 `DISABLE_BUG_COMMAND`도 허용됩니다 |

453| `DISABLE_GROWTHBOOK` | GrowthBook 기능 플래그 가져오기를 비활성화하고 모든 플래그에 코드 기본값을 사용하려면 `1` 또는 `true`로 설정합니다. 이렇게 하면 [Remote Control](/docs/ko/remote-control#requirements)과 기타 [기능 플래그 가져오기가 필요한 기능](#features-that-need-feature-flag-fetching)을 사용할 수 없게 됩니다. `0` 또는 `false`로 설정하면 가져오기가 켜진 상태로 유지됩니다. `DISABLE_TELEMETRY`도 설정하지 않는 한 텔레메트리 이벤트 로깅은 켜진 상태로 유지됩니다 |456| `DISABLE_GROWTHBOOK` | GrowthBook 기능 플래그 가져오기를 비활성화하고 모든 플래그에 코드 기본값을 사용하려면 `1` 또는 `true`로 설정합니다. 이로 인해 [Remote Control](/docs/ko/remote-control#requirements) 및 기타 [기능 플래그 가져오기가 필요한 기능](#features-that-need-feature-flag-fetching)을 사용할 수 없게 됩니다. `0` 또는 `false`로 설정하면 가져오기가 켜진 상태로 유지됩니다. `DISABLE_TELEMETRY`도 설정하지 않는 한 텔레메트리 이벤트 로깅은 켜진 상태로 유지됩니다 |

454| `DISABLE_INSTALLATION_CHECKS` | 설치 경고를 비활성화하려면 `1`로 설정합니다. 표준 설치의 문제를 가릴 수 있으므로 설치 위치를 수동으로 관리하는 경우에만 사용하세요 |457| `DISABLE_INSTALLATION_CHECKS` | 설치 경고를 비활성화하려면 `1`로 설정합니다. 표준 설치의 문제를 가릴 수 있으므로 설치 위치를 수동으로 관리하는 경우에만 사용합니다 |

455| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | `/install-github-app` 명령을 숨기려면 `1`로 설정합니다. 서드파티 공급자(Amazon Bedrock, Google Cloud's Agent Platform 또는 Microsoft Foundry)를 사용할 때는 이미 숨겨져 있습니다 |458| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | `/install-github-app` 명령을 숨기려면 `1`로 설정합니다. 서드파티 제공업체(Amazon Bedrock, Google Cloud's Agent Platform 또는 Microsoft Foundry)를 사용하는 경우에는 이미 숨겨져 있습니다 |

456| `DISABLE_INTERLEAVED_THINKING` | interleaved-thinking 베타 헤더를 보내지 않으려면 `1`로 설정합니다. LLM 게이트웨이 또는 공급자가 [인터리브 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking)를 지원하지 않을 때 유용합니다 |459| `DISABLE_INTERLEAVED_THINKING` | interleaved-thinking 베타 헤더를 보내지 않으려면 `1`로 설정합니다. LLM 게이트웨이 또는 제공업체가 [인터리브 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking)를 지원하지 않을 때 유용합니다 |

457| `DISABLE_LOGIN_COMMAND` | `/login` 명령을 숨기려면 `1`로 설정합니다. API 키 또는 `apiKeyHelper`를 통해 인증이 외부에서 처리될 때 유용합니다 |460| `DISABLE_LOGIN_COMMAND` | `/login` 명령을 숨기려면 `1`로 설정합니다. API 키 또는 `apiKeyHelper`를 통해 인증이 외부에서 처리되는 경우에 유용합니다 |

458| `DISABLE_LOGOUT_COMMAND` | `/logout` 명령을 숨기려면 `1`로 설정합니다 |461| `DISABLE_LOGOUT_COMMAND` | `/logout` 명령을 숨기려면 `1`로 설정합니다 |

459| `DISABLE_PROMPT_CACHING` | 모든 모델에 대해 [프롬프트 캐싱](/docs/ko/prompt-caching#disable-prompt-caching)을 비활성화하려면 `1`로 설정합니다(모델별 설정보다 우선합니다) |462| `DISABLE_PROMPT_CACHING` | 모든 모델에 대해 [프롬프트 캐싱](/docs/ko/prompt-caching#disable-prompt-caching)을 비활성화하려면 `1`로 설정합니다(모델별 설정보다 우선합니다) |

460| `DISABLE_PROMPT_CACHING_FABLE` | Fable 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |463| `DISABLE_PROMPT_CACHING_FABLE` | Fable 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |

461| `DISABLE_PROMPT_CACHING_HAIKU` | 실행 위치에 관계없이 [기본 Haiku 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |464| `DISABLE_PROMPT_CACHING_HAIKU` | 실행 위치에 관계없이 [기본 Haiku 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |

462| `DISABLE_PROMPT_CACHING_OPUS` | [기본 Opus 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |465| `DISABLE_PROMPT_CACHING_OPUS` | [기본 Opus 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |

463| `DISABLE_PROMPT_CACHING_SONNET` | [기본 Sonnet 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |466| `DISABLE_PROMPT_CACHING_SONNET` | [기본 Sonnet 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |

464| `DISABLE_TELEMETRY` | 텔레메트리를 옵트아웃하려면 `1`과 같은 비어 있지 않은 값으로 설정합니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 여전히 옵트아웃됩니다**. 텔레메트리를 다시 켜려면 변수를 설정 해제하세요. 텔레메트리 이벤트에는 코드, 파일 경로, Bash 명령과 같은 사용자 데이터가 포함되지 않습니다. [기능 플래그 가져오기](#features-that-need-feature-flag-fetching)도 비활성화합니다. [조직의 텔레메트리 끄기](/docs/ko/managed-settings#turn-telemetry-off-for-your-organization)를 참조하세요 |467| `DISABLE_TELEMETRY` | 텔레메트리를 옵트아웃하려면 `1`과 같이 비어 있지 않은 임의의 값으로 설정합니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 여전히 옵트아웃됩니다**. 텔레메트리를 다시 켜려면 변수 설정을 해제합니다. 텔레메트리 이벤트에는 코드, 파일 경로, Bash 명령과 같은 사용자 데이터가 포함되지 않습니다. [기능 플래그 가져오기](#features-that-need-feature-flag-fetching)도 비활성화합니다. [조직의 텔레메트리 끄기](/docs/ko/managed-settings#turn-telemetry-off-for-your-organization)를 참조하십시오 |

465| `DISABLE_UPDATES` | 수동 `claude update` 및 `claude install`을 포함한 모든 업데이트를 차단하려면 `1`로 설정합니다. `DISABLE_AUTOUPDATER`보다 엄격합니다. 자체 채널을 통해 Claude Code를 배포하며 사용자가 직접 업데이트하지 않아야 할 때 사용합니다 |468| `DISABLE_UPDATES` | 수동 `claude update` 및 `claude install`을 포함한 모든 업데이트를 차단하려면 `1`로 설정합니다. `DISABLE_AUTOUPDATER`보다 엄격합니다. 자체 채널을 통해 Claude Code를 배포하고 사용자가 직접 업데이트해서는 안 되는 경우에 사용합니다 |

466| `DISABLE_UPGRADE_COMMAND` | `/upgrade` 명령을 숨기려면 `1`로 설정합니다 |469| `DISABLE_UPGRADE_COMMAND` | `/upgrade` 명령을 숨기려면 `1`로 설정합니다 |

467| `DO_NOT_TRACK` | 텔레메트리를 옵트아웃하려면 `1`로 설정합니다. [기능 플래그 가져오기](#features-that-need-feature-flag-fetching)에 대한 효과를 포함하여 `DISABLE_TELEMETRY`와 같은 효과가 있습니다. Claude Code는 이 변수를 표준 불리언으로 읽으므로 `0`은 텔레메트리를 켜진 상태로 유지하며, 많은 개발자 CLI에서 인식하는 도구 간 공통 규칙으로서 이 변수를 준수합니다 |470| `DO_NOT_TRACK` | 텔레메트리를 옵트아웃하려면 `1`로 설정합니다. [기능 플래그 가져오기](#features-that-need-feature-flag-fetching)에 대한 영향을 포함하여 `DISABLE_TELEMETRY`와 동일한 효과가 있습니다. Claude Code는 이 변수를 표준 불리언으로 읽으므로 `0`은 텔레메트리를 켜진 상태로 두며, 많은 개발자 CLI가 인식하는 도구 간 규칙으로 이를 존중합니다 |

468| `ENABLE_BETA_TRACING_DETAILED` | `1`로 설정하고 `BETA_TRACING_ENDPOINT`를 OTLP/HTTP 수집기 엔드포인트로 설정하면 [상세 베타 트레이싱](/docs/ko/monitoring-usage#traces-beta)이 켜지며, 콘텐츠를 포함하는 span 속성과 `claude_code.hook` span이 추가됩니다. 대화형 CLI 세션에서는 조직이 베타 허용 목록에 포함되어 있어야 합니다. 두 변수 모두 [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |471| `ENABLE_BETA_TRACING_DETAILED` | [상세 베타 트레이싱](/docs/ko/monitoring-usage#traces-beta)을 켜려면 `1`로 설정하고 `BETA_TRACING_ENDPOINT`를 OTLP/HTTP 수집기 엔드포인트로 설정합니다. 이 기능은 콘텐츠를 담은 span 속성과 `claude_code.hook` span을 추가합니다. 대화형 CLI 세션은 조직이 베타 허용 목록에 포함되어 있어야 합니다. 두 변수 모두 [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |

469| `ENABLE_CLAUDEAI_MCP_SERVERS` | Claude Code가 [claude.ai MCP 서버](/docs/ko/mcp#use-mcp-servers-from-claude-ai)를 가져오지 않도록 하려면 `false`로 설정합니다. 로그인한 사용자에게는 기본적으로 활성화되어 있습니다. 프로젝트별 또는 조직별로 비활성화하려면 대신 설정에서 [`disableClaudeAiConnectors`](/docs/ko/settings-reference#disableclaudeaiconnectors)를 설정하세요 |472| `ENABLE_CLAUDEAI_MCP_SERVERS` | Claude Code가 [claude.ai MCP 서버](/docs/ko/mcp#use-mcp-servers-from-claude-ai)를 가져오지 않도록 하려면 `false`로 설정합니다. 로그인한 사용자에게는 기본적으로 활성화되어 있습니다. 프로젝트별 또는 조직별로 비활성화하려면 대신 설정에서 [`disableClaudeAiConnectors`](/docs/ko/settings-reference#disableclaudeaiconnectors)를 설정합니다 |

470| `ENABLE_PROMPT_CACHING_1H` | 기본값인 5분 대신 1시간 [프롬프트 캐시 TTL](/docs/ko/prompt-caching#cache-lifetime)을 요청하려면 `1`로 설정합니다. API 키, [Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud's Agent Platform](/docs/ko/google-vertex-ai), [Microsoft Foundry](/docs/ko/microsoft-foundry), [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 사용자를 위한 것입니다. 포함된 사용량 범위 내의 구독 사용자는 [메인 대화](/docs/ko/prompt-caching#which-ttl-each-request-gets)에서 1시간 TTL을 자동으로 받습니다. [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)을 사용하는 구독 사용자는 1시간 TTL을 유지하기 위해 이 변수를 설정할 수 있습니다. 1시간 캐시 쓰기에는 더 높은 요금이 청구됩니다. 대신 요청 버킷별로 TTL을 선택하려면 이 변수보다 우선하는 `CLAUDE_CODE_PROMPT_CACHE_TTL` 및 `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`을 사용하세요 |473| `ENABLE_PROMPT_CACHING_1H` | 기본 5분 대신 1시간 [프롬프트 캐시 TTL](/docs/ko/prompt-caching#cache-lifetime)을 요청하려면 `1`로 설정합니다. API 키, [Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud's Agent Platform](/docs/ko/google-vertex-ai), [Microsoft Foundry](/docs/ko/microsoft-foundry), [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 사용자를 위한 것입니다. 포함된 사용량 범위 내의 구독 사용자는 [메인 대화](/docs/ko/prompt-caching#which-ttl-each-request-gets)에서 자동으로 1시간 TTL을 받습니다. [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)을 사용하는 구독 사용자는 1시간 TTL을 유지하기 위해 이를 설정할 수 있습니다. 1시간 캐시 쓰기는 더 높은 요율로 청구됩니다. 대신 요청 버킷별로 TTL을 선택하려면 이 변수보다 우선하는 `CLAUDE_CODE_PROMPT_CACHE_TTL` 및 `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`을 사용합니다 |

471| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | deprecated되었습니다. 대신 `ENABLE_PROMPT_CACHING_1H`를 사용하세요 |474| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecated. 대신 `ENABLE_PROMPT_CACHING_1H`를 사용합니다 |

472| `ENABLE_TOOL_SEARCH` | [MCP 도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)을 제어합니다. 설정되지 않으면 Claude Code는 기본적으로 모든 MCP 도구를 지연 로드합니다. 단, Claude 4.5 세대 이전의 Google Cloud's Agent Platform 모델, Azure에서 호스팅되는 Microsoft Foundry 배포, 그리고 `ANTHROPIC_BASE_URL`이 퍼스트 파티가 아닌 호스트를 가리키는 경우에는 여전히 도구를 미리 로드합니다. `true`는 앞서 언급한 Agent Platform 모델과 Microsoft Foundry 배포를 제외하고 항상 지연 로드하며 베타 헤더를 보냅니다. `tool_reference`를 지원하지 않는 프록시에서는 요청이 실패합니다. `auto`는 도구 정의가 컨텍스트의 10% 이내에 들어갈 때 미리 로드합니다. `auto:N`은 사용자 지정 임계값을 설정합니다(예: 5%의 경우 `auto:5`). `false`는 모든 도구를 미리 로드합니다. `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`가 설정되면 직접 설정한 값은 무시됩니다. v2.1.221 이전에는 이 변수를 `true`로 설정하지 않는 한 Claude Code가 Google Cloud's Agent Platform의 모든 모델에서 도구 검색을 비활성화했습니다 |475| `ENABLE_TOOL_SEARCH` | [MCP 도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)을 제어합니다. 설정되지 않은 경우 Claude Code는 기본적으로 모든 MCP 도구를 지연 로드합니다. 단, Claude 4.5 세대 이전의 Google Cloud's Agent Platform 모델, Azure에서 호스팅되는 Microsoft Foundry 배포, 그리고 `ANTHROPIC_BASE_URL`이 퍼스트 파티가 아닌 호스트를 가리키는 경우에는 여전히 미리 로드합니다. `true`는 동일한 Agent Platform 모델과 Microsoft Foundry 배포를 제외하고 항상 지연 로드하며 베타 헤더를 보냅니다. `tool_reference`를 지원하지 않는 프록시에서는 요청이 실패합니다. `auto`는 도구 정의가 컨텍스트의 10% 이내에 들어가면 미리 로드합니다. `auto:N`은 사용자 지정 임계값을 설정합니다(예: 5%의 경우 `auto:5`). `false`는 모든 도구를 미리 로드합니다. `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`가 설정되면 직접 설정한 값은 무시됩니다. v2.1.221 이전에는 이 변수를 `true`로 설정하지 않는 한 Claude Code가 Google Cloud's Agent Platform의 모든 모델에서 도구 검색을 비활성화했습니다 |

473| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | 폴백 모델이 구성되지 않은 경우 모든 모델에서 과부하 오류가 반복될 때 Claude Code가 재시도를 중단하도록 하려면 `1`과 같은 비어 있지 않은 값으로 설정합니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 여전히 활성화됩니다**. 기본 재시도 동작을 복원하려면 변수를 설정 해제하세요. 이 변수가 없으면, Claude 구독이 아닌 API 키 또는 [서드파티 공급자](/docs/ko/third-party-integrations)로 인증할 때 Claude Code는 Opus, Fable 또는 Mythos 모델로 인식하는 모델에서만 이런 방식으로 재시도를 중단합니다. Claude Code v2.1.160 이상에서는 모든 기본 모델에서 과부하 오류가 반복되면 Claude Code가 구성된 [폴백 모델 체인](/docs/ko/model-config#fallback-model-chains)으로 전환하므로, 이 변수는 폴백 모델로의 전환에 영향을 주지 않습니다 |476| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | 폴백 모델이 구성되지 않은 경우 모든 모델에서 반복되는 과부하 오류에 대해 Claude Code가 재시도를 중단하도록 하려면 `1`과 같이 비어 있지 않은 임의의 값으로 설정합니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 여전히 활성화됩니다**. 기본 재시도 동작을 복원하려면 변수 설정을 해제합니다. 이 변수가 없으면, Claude 구독이 아닌 API 키 또는 [서드파티 제공업체](/docs/ko/third-party-integrations)로 인증하는 경우 Claude Code는 Opus, Fable 또는 Mythos 모델로 인식하는 모델에서 이러한 방식으로 재시도를 중단합니다. Claude Code v2.1.160 이상에서는 모든 기본 모델에서 반복되는 과부하 오류가 발생하면 Claude Code가 구성된 [폴백 모델 체인](/docs/ko/model-config#fallback-model-chains)으로 전환하므로, 이 변수는 폴백 모델로의 전환에 영향을 주지 않습니다 |

474| `FORCE_AUTOUPDATE_PLUGINS` | `DISABLE_AUTOUPDATER`를 통해 기본 자동 업데이터가 비활성화된 경우에도 플러그인 자동 업데이트를 강제하려면 `1`로 설정합니다 |477| `FORCE_AUTOUPDATE_PLUGINS` | `DISABLE_AUTOUPDATER`를 통해 메인 자동 업데이터가 비활성화된 경우에도 플러그인 자동 업데이트를 강제하려면 `1`로 설정합니다 |

475| `FORCE_HYPERLINK` | 터미널이 클릭 가능한 OSC 8 하이퍼링크를 지원하지만 자동으로 감지되지 않을 때 이를 활성화하려면 `1`로, 비활성화하려면 `0`으로 설정합니다. 설정되지 않으면 Claude Code는 터미널 지원을 감지한 경우에만 하이퍼링크를 활성화합니다. Claude Code는 이 값을 불리언이 아닌 숫자로 파싱하므로 `false`, `no`, `off`와 같은 값은 하이퍼링크를 비활성화하는 대신 활성화합니다. 하단의 [PR 또는 병합 요청 배지](/docs/ko/interactive-mode#pr-review-status)는 SSH를 통한 연결처럼 Claude Code가 터미널 지원을 감지할 수 없을 때에도 하이퍼링크로 렌더링됩니다. 배지를 일반 텍스트로 렌더링하려면 `0`으로 설정합니다 |478| `FORCE_HYPERLINK` | 터미널이 클릭 가능한 OSC 8 하이퍼링크를 지원하지만 자동으로 감지되지 않을 때 이를 활성화하려면 `1`로, 비활성화하려면 `0`으로 설정합니다. 설정되지 않은 경우 Claude Code는 터미널 지원을 감지할 때만 하이퍼링크를 활성화합니다. Claude Code는 이 값을 불리언이 아닌 숫자로 파싱하므로 `false`, `no`, `off`와 같은 값은 하이퍼링크를 비활성화하는 대신 활성화합니다. 하단의 [PR 또는 병합 요청 배지](/docs/ko/interactive-mode#pr-review-status)는 SSH를 통한 경우처럼 Claude Code가 터미널 지원을 감지할 수 없을 때에도 하이퍼링크로 렌더링됩니다. 배지를 일반 텍스트로 렌더링하려면 `0`으로 설정합니다 |

476| `FORCE_PROMPT_CACHING_5M` | 1시간 TTL이 적용되는 경우에도 5분 프롬프트 캐시 TTL을 강제하려면 `1`로 설정합니다. `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H`, 그리고 `promptCacheTtl` 및 `subagentPromptCacheTtl` 설정을 재정의합니다 |479| `FORCE_PROMPT_CACHING_5M` | 1시간 TTL이 적용될 상황에서도 5분 프롬프트 캐시 TTL을 강제하려면 `1`로 설정합니다. `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H`와 `promptCacheTtl` 및 `subagentPromptCacheTtl` 설정을 재정의합니다 |

477| `HTTP_PROXY` | 네트워크 연결을 위한 HTTP 프록시 서버를 지정합니다 |480| `HTTP_PROXY` | 네트워크 연결을 위한 HTTP 프록시 서버를 지정합니다 |

478| `HTTPS_PROXY` | 네트워크 연결을 위한 HTTPS 프록시 서버를 지정합니다 |481| `HTTPS_PROXY` | 네트워크 연결을 위한 HTTPS 프록시 서버를 지정합니다 |

479| `IS_DEMO` | 데모 모드를 활성화하려면 `1`과 같은 비어 있지 않은 값으로 설정합니다. 데모 모드는 헤더와 `/status` 출력에서 이메일과 조직 이름을 숨기고 온보딩을 건너뜁니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 여전히 데모 모드가 활성화됩니다**. 끄려면 변수를 설정 해제하세요. 세션을 스트리밍하거나 녹화할 때 유용합니다 |482| `IS_DEMO` | 데모 모드를 활성화하려면 `1`과 같이 비어 있지 않은 임의의 값으로 설정합니다. 데모 모드는 헤더와 `/status` 출력에서 이메일과 조직 이름을 숨기고 온보딩을 건너뜁니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 여전히 데모 모드가 활성화됩니다**. 끄려면 변수 설정을 해제합니다. 세션을 스트리밍하거나 녹화할 때 유용합니다 |

480| `MAX_MCP_OUTPUT_TOKENS` | MCP 도구 응답에 허용되는 최대 토큰 수입니다(기본값: 25000). 출력이 10,000 토큰을 초과하면 Claude Code가 경고를 표시합니다. [`anthropic/maxResultSizeChars`](/docs/ko/mcp#raise-the-limit-for-a-specific-tool)를 선언하는 도구는 텍스트 콘텐츠에 대해 대신 해당 문자 수 제한을 사용하지만, 해당 도구의 이미지 콘텐츠에는 여전히 이 변수가 적용됩니다. 이 어노테이션이 없는 도구에서 나온 50,000자보다 긴 성공한 텍스트 결과는 이 변수와 관계없이 [파일에 저장](/docs/ko/mcp#mcp-output-limits-and-warnings)됩니다 |483| `MAX_MCP_OUTPUT_TOKENS` | MCP 도구 응답에 허용되는 최대 토큰 수입니다(기본값: 25000). 출력이 10,000 토큰을 초과하면 Claude Code가 경고를 표시합니다. [`anthropic/maxResultSizeChars`](/docs/ko/mcp#raise-the-limit-for-a-specific-tool)를 선언하는 도구는 텍스트 콘텐츠에 대해 대신 해당 문자 한도를 사용하지만, 해당 도구의 이미지 콘텐츠는 여전히 이 변수의 적용을 받습니다. 해당 어노테이션이 없는 도구에서 50,000자보다 긴 성공한 텍스트 결과는 이 변수와 관계없이 [파일에 저장](/docs/ko/mcp#mcp-output-limits-and-warnings)됩니다 |

481| `MAX_STRUCTURED_OUTPUT_RETRIES` | `-p` 플래그를 사용하는 비대화형 모드에서 모델의 응답이 [`--json-schema`](/docs/ko/cli-reference#cli-flags)에 대한 검증에 실패할 때 Claude Code가 허용하는 시도 횟수입니다. 유효한 출력 없이 그 횟수만큼 시도가 실패하면 실행이 실패합니다. [워크플로](/docs/ko/workflows) 서브에이전트의 구조화된 출력이 검증에 실패할 때도 같은 상한이 적용됩니다. 기본값은 5로, 첫 시도와 네 번의 재시도입니다 |484| `MAX_STRUCTURED_OUTPUT_RETRIES` | `-p` 플래그를 사용하는 비대화형 모드에서 모델의 응답이 [`--json-schema`](/docs/ko/cli-reference#cli-flags)에 대한 검증에 실패할 때 Claude Code가 허용하는 시도 횟수입니다. 유효한 출력 없이 그만큼 시도에 실패하면 실행이 실패합니다. [워크플로](/docs/ko/workflows) 서브에이전트의 구조화된 출력이 검증에 실패할 때도 동일한 한도가 적용됩니다. 기본값은 5이며, 첫 시도와 네 번의 재시도입니다 |

482| `MAX_THINKING_TOKENS` | [확장 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)를 위한 고정 토큰 예산입니다. Claude Code는 이 값을 요청의 최대 출력 토큰보다 1 토큰 작은 값으로 제한하며, 1,024 미만으로는 설정하지 않습니다. 해당 한도가 설정되는 방식은 `CLAUDE_CODE_MAX_OUTPUT_TOKENS`를 참조하세요. 설정되지 않은 상태에서 사고가 활성화되면, [적응형 추론](/docs/ko/model-config#adjust-effort-level)을 지원하는 모델은 자체적으로 사고 깊이를 선택하고, 다른 모델은 상한을 사용합니다. Anthropic API에서 사고를 비활성화하려면 `0`으로 설정합니다. 단, 사고를 끌 수 없는 Opus 5.5, Sonnet 5.5, Haiku 5.5 및 Fable 모델은 예외입니다. [서드파티 공급자](/docs/ko/third-party-integrations)에서는 `0`이 대신 `thinking` 매개변수를 생략합니다. Anthropic API에서 사고가 꺼진 경우, Claude Code는 Opus 5처럼 [해당 조합을 허용하지 않는](/docs/ko/errors#effort-isnt-available-with-thinking-turned-off) 것으로 알려진 모델에 더 높은 수준 대신 effort `high`를 보냅니다. 양수 값의 경우, `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING`이 적응형 추론을 끄는 경우를 제외하고 Claude Code는 적응형 추론 모델에서 숫자 자체를 무시합니다 |485| `MAX_THINKING_TOKENS` | [확장 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)를 위한 고정 토큰 예산입니다. Claude Code는 이를 요청의 최대 출력 토큰보다 한 토큰 적은 값으로 제한하며, 1,024 미만으로는 내려가지 않습니다. 해당 한도가 설정되는 방식은 `CLAUDE_CODE_MAX_OUTPUT_TOKENS`를 참조하십시오. 설정되지 않고 사고가 활성화된 경우, [적응형 추론](/docs/ko/model-config#adjust-effort-level)을 지원하는 모델은 자체적으로 사고 깊이를 선택하고, 다른 모델은 상한을 사용합니다. Anthropic API에서 사고를 비활성화하려면 `0`으로 설정합니다. 단, 사고를 끌 수 없는 Opus 5.5, Sonnet 5.5, Haiku 5.5 및 Fable 모델은 예외입니다. [서드파티 제공업체](/docs/ko/third-party-integrations)에서는 `0`이 대신 `thinking` 매개변수를 생략합니다. Anthropic API에서 사고가 꺼진 경우, Claude Code는 Opus 5처럼 [해당 조합을 허용하지 않는](/docs/ko/errors#effort-isnt-available-with-thinking-turned-off) 것으로 알려진 모델에 더 높은 수준 대신 effort `high`를 보냅니다. 양수 값의 경우, `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING`이 적응형 추론을 끄는 경우를 제외하고 Claude Code는 적응형 추론 모델에서 숫자 자체를 무시합니다 |

483| `MCP_CLIENT_SECRET` | [사전 구성된 자격 증명](/docs/ko/mcp#use-pre-configured-oauth-credentials)이 필요한 MCP 서버용 OAuth 클라이언트 시크릿입니다. `--client-secret`으로 서버를 추가할 때 대화형 프롬프트를 피할 수 있습니다 |486| `MCP_CLIENT_SECRET` | [사전 구성된 자격 증명](/docs/ko/mcp#use-pre-configured-oauth-credentials)이 필요한 MCP 서버를 위한 OAuth 클라이언트 시크릿입니다. `--client-secret`으로 서버를 추가할 때 대화형 프롬프트를 피할 수 있습니다 |

484| `MCP_CONNECTION_NONBLOCKING` | 시작 시 첫 쿼리 전에 MCP 서버 연결을 기다릴지 여부를 제어합니다. MCP 시작은 기본적으로 비차단 방식입니다. 서버는 백그라운드에서 연결되며, 연결이 완료되는 대로 해당 도구를 사용할 수 있게 됩니다. Claude Code가 첫 쿼리 전에 서버 연결을 기다리도록 하려면 `0`으로 설정합니다. [`alwaysLoad: true`](/docs/ko/mcp#exempt-a-server-from-deferral)로 구성된 서버는 첫 프롬프트가 구성될 때 해당 도구가 있어야 하므로, [디스커버리 캐시](/docs/ko/mcp#server-status-detail)에서 제공되는 경우를 제외하고 여전히 시작을 대기시킵니다. `--input-format stream-json` 없이 비대화형 모드(`-p`)로 실행하면 이 변수와 관계없이 Claude Code가 첫 턴 전에 아직 대기 중인 서버를 기다립니다. [`--mcp-config`](/docs/ko/cli-reference#cli-flags)를 명시적으로 전달하면 대기 기한이 더 길어집니다. 캐시된 서버 예외에 대해서는 해당 플래그 항목을 참조하세요 |487| `MCP_CONNECTION_NONBLOCKING` | 시작 시 첫 쿼리 전에 MCP 서버 연결을 기다릴지 여부를 제어합니다. MCP 시작은 기본적으로 비차단 방식입니다. 서버는 백그라운드에서 연결되며, 연결이 완료되는 대로 해당 도구를 사용할 수 있게 됩니다. Claude Code가 첫 쿼리 전에 서버 연결을 기다리도록 하려면 `0`으로 설정합니다. [`alwaysLoad: true`](/docs/ko/mcp#exempt-a-server-from-deferral)로 구성된 서버는 첫 프롬프트가 구성될 때 해당 도구가 있어야 하므로, [검색 캐시](/docs/ko/mcp#server-status-detail)에서 제공되는 경우를 제외하고 여전히 시작을 대기하게 합니다. `--input-format stream-json` 없이 비대화형 모드(`-p`)에서는 이 변수와 관계없이 Claude Code가 첫 턴 전에 아직 대기 중인 서버도 기다립니다. [`--mcp-config`](/docs/ko/cli-reference#cli-flags)를 명시적으로 전달하면 대기 기한이 더 길어집니다. 캐시된 서버의 예외에 대해서는 해당 플래그 항목을 참조하십시오 |

485| `MCP_CONNECT_TIMEOUT_MS` | 차단 방식의 MCP 시작이 도구 목록의 스냅샷을 만들기 전에 연결 배치를 기다리는 시간(밀리초)입니다(기본값: 5000). `MCP_CONNECTION_NONBLOCKING=0`인 경우 또는 [`alwaysLoad: true`](/docs/ko/mcp#exempt-a-server-from-deferral)로 표시된 서버에 적용됩니다. 기한이 지나도 대기 중인 서버는 백그라운드에서 계속 연결됩니다. 개별 서버의 연결 시도를 제한하는 `MCP_TIMEOUT`과는 다릅니다 |488| `MCP_CONNECT_TIMEOUT_MS` | 차단 방식 MCP 시작이 도구 목록의 스냅샷을 만들기 전에 연결 배치를 기다리는 시간(밀리초)입니다(기본값: 5000). `MCP_CONNECTION_NONBLOCKING=0`인 경우 또는 [`alwaysLoad: true`](/docs/ko/mcp#exempt-a-server-from-deferral)로 표시된 서버에 적용됩니다. 기한에 여전히 대기 중인 서버는 백그라운드에서 계속 연결됩니다. 개별 서버의 연결 시도를 제한하는 `MCP_TIMEOUT`과는 다릅니다 |

486| `MCP_DISCOVERY_CACHE` | [MCP 디스커버리 캐시](/docs/ko/mcp#server-status-detail)를 켜거나 끕니다. 캐시가 켜져 있으면 이전에 사용한 원격 HTTP 또는 SSE 서버가 [`cached` 상태](/docs/ko/mcp#server-status-detail)를 표시할 수 있으며, Claude Code는 시작 시가 아닌 첫 도구 호출 시 해당 서버를 연결합니다. 점진적 롤아웃으로 계정에 활성화되지 않은 한 캐시는 기본적으로 꺼져 있습니다. 켜려면 `1`로, 롤아웃으로 활성화된 경우에도 끈 상태로 유지하려면 `0`으로 설정합니다. v2.1.238 이전에는 캐시가 기본적으로 켜져 있었습니다. `cached` 상태에는 Claude Code v2.1.221 이상이 필요합니다 |489| `MCP_DISCOVERY_CACHE` | [MCP 검색 캐시](/docs/ko/mcp#server-status-detail)를 켜거나 끕니다. 캐시가 켜져 있으면 이전에 사용한 원격 HTTP 또는 SSE 서버가 [`cached` 상태](/docs/ko/mcp#server-status-detail)를 표시할 수 있으며, Claude Code는 시작 시가 아닌 첫 도구 호출 시 해당 서버를 연결합니다. 점진적 출시로 계정에 활성화되지 않는 한 캐시는 기본적으로 꺼져 있습니다. 켜려면 `1`로, 출시로 활성화된 경우에도 끈 상태로 유지하려면 `0`으로 설정합니다. v2.1.238 이전에는 캐시가 기본적으로 켜져 있었습니다. `cached` 상태는 Claude Code v2.1.221 이상이 필요합니다 |

487| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | [디스커버리 캐시](/docs/ko/mcp#server-status-detail) 항목의 최대 수명(초) (기본값: 14400, 즉 4시간)입니다. 시작 시 항목이 그보다 오래되었으면 Claude Code는 해당 항목을 버리고, 캐시가 꺼진 경우와 마찬가지로 시작 시 서버를 연결합니다. Claude Code는 값을 최대 7일로 제한합니다. v2.1.238 이전에는 기본값이 86400, 즉 24시간이었으며 Claude Code가 값을 제한하지 않았습니다 |490| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | [검색 캐시](/docs/ko/mcp#server-status-detail) 항목의 최대 수명(초)입니다 (기본값: 14400, 즉 4시간). 항목이 그보다 오래된 시작 시점에는 Claude Code가 캐시가 꺼져 있을 때처럼 해당 항목을 폐기하고 시작 시 서버를 연결합니다. Claude Code는 이 값을 7일로 제한합니다. v2.1.238 이전에는 기본값이 86400(24시간)이었으며, Claude Code가 값을 제한하지 않았습니다 |

488| `MCP_DISCOVERY_CACHE_STRIKES` | 시작 시 [디스커버리 캐시](/docs/ko/mcp#server-status-detail) 항목이 `MCP_DISCOVERY_CACHE_TTL_S`보다 오래되었으면 Claude Code는 백그라운드에서 항목을 갱신합니다. 이 변수는 Claude Code가 항목을 버리고 다음 시작 시 서버를 연결하기 전까지 연속으로 실패할 수 있는 갱신 횟수를 설정합니다(기본값: 1). 네트워크 연결이 가끔 끊기는 경우, 한 번의 갱신 실패로 항목이 버려지지 않도록 값을 높이세요. Claude Code v2.1.238 이상이 필요합니다 |491| `MCP_DISCOVERY_CACHE_STRIKES` | [검색 캐시](/docs/ko/mcp#server-status-detail) 항목이 `MCP_DISCOVERY_CACHE_TTL_S`보다 오래된 시작 시점에는 Claude Code가 백그라운드에서 항목을 새로 고칩니다. 이 변수는 Claude Code가 항목을 폐기하고 다음 시작 시 서버를 연결하기 전까지 연속으로 실패할 수 있는 새로 고침 횟수를 설정합니다(기본값: 1). 네트워크 연결이 가끔 끊기는 경우, 한 번의 새로 고침 실패로 항목이 폐기되지 않도록 값을 높입니다. Claude Code v2.1.238 이상이 필요합니다 |

489| `MCP_DISCOVERY_CACHE_TTL_S` | Claude Code가 [디스커버리 캐시](/docs/ko/mcp#server-status-detail) 항목을 갱신하지 않고 사용하는 시간(초)입니다(기본값: 900). 시작 시 항목이 그보다 오래되었으면 Claude Code는 여전히 항목을 사용하지만 백그라운드에서 갱신합니다. 항목이 `MCP_DISCOVERY_CACHE_MAX_STALE_S`보다 오래되면 Claude Code는 대신 항목을 버립니다. Claude Code는 값을 기본적으로 4시간인 `MCP_DISCOVERY_CACHE_MAX_STALE_S`로 제한합니다. v2.1.238 이전에는 Claude Code가 값을 제한하지 않았습니다 |492| `MCP_DISCOVERY_CACHE_TTL_S` | Claude Code가 [검색 캐시](/docs/ko/mcp#server-status-detail) 항목을 새로 고치지 않고 사용하는 시간(초)입니다(기본값: 900). 항목이 그보다 오래된 시작 시점에는 Claude Code가 여전히 항목을 사용하지만 백그라운드에서 새로 고칩니다. 항목이 `MCP_DISCOVERY_CACHE_MAX_STALE_S`보다 오래되면 Claude Code는 대신 해당 항목을 폐기합니다. Claude Code는 이 값을 기본적으로 4시간인 `MCP_DISCOVERY_CACHE_MAX_STALE_S`로 제한합니다. v2.1.238 이전에는 Claude Code가 값을 제한하지 않았습니다 |

490| `MCP_OAUTH_CALLBACK_PORT` | [사전 구성된 자격 증명](/docs/ko/mcp#use-pre-configured-oauth-credentials)으로 MCP 서버를 추가할 때 `--callback-port`의 대안으로 사용하는 OAuth 리디렉션 콜백용 고정 포트입니다 |493| `MCP_OAUTH_CALLBACK_PORT` | [사전 구성된 자격 증명](/docs/ko/mcp#use-pre-configured-oauth-credentials)으로 MCP 서버를 추가할 때 `--callback-port`의 대안으로 사용하는 OAuth 리디렉션 콜백용 고정 포트입니다 |

491| `MCP_PROTOCOL_NEGOTIATION` | [v2 MCP 클라이언트 런타임](/docs/ko/mcp#mcp-client-runtimes)에서만 적용되며, Claude Code가 서버에 대해 MCP 프로토콜 개정 2026-07-28을 프로브할지 여부를 지정합니다. HTTP, claude.ai 커넥터, stdio 서버를 프로브하려면 `auto`로, 어떤 서버도 프로브하지 않으려면 `legacy`로 설정합니다. 변수가 설정되지 않으면 Claude Code는 [MCP 클라이언트 런타임](/docs/ko/mcp#mcp-client-runtimes)에 설명된 서버를 프로브합니다. 다른 값은 디버그 로그에 경고를 남기고 무시됩니다. Claude Code v2.1.221 이상이 필요합니다 |494| `MCP_PROTOCOL_NEGOTIATION` | [v2 MCP 클라이언트 런타임](/docs/ko/mcp#mcp-client-runtimes)에서만, Claude Code가 MCP 프로토콜 개정판 2026-07-28에 대해 서버를 탐색할지 여부입니다. HTTP, claude.ai 커넥터, stdio 서버를 탐색하려면 `auto`로, 아무것도 탐색하지 않으려면 `legacy`로 설정합니다. 변수가 설정되지 않은 경우, Claude Code는 [MCP 클라이언트 런타임](/docs/ko/mcp#mcp-client-runtimes)에 설명된 서버를 탐색합니다. 다른 값은 디버그 로그에 경고와 함께 무시됩니다. Claude Code v2.1.221 이상이 필요합니다 |

492| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | 시작 중에 병렬로 연결할 원격 MCP 서버(HTTP/SSE)의 최대 수입니다(기본값: 20) |495| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | 시작 중에 병렬로 연결할 원격 MCP 서버(HTTP/SSE)의 최대 수입니다(기본값: 20) |

493| `MCP_SDK_GENERATION` | 이 프로세스가 MCP 서버에 연결할 때 사용하는 [MCP 클라이언트 런타임](/docs/ko/mcp#mcp-client-runtimes)을 고정합니다: MCP TypeScript SDK 1.x 기반의 `v1` 또는 [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/) 기반의 `v2`. 변수가 없으면 Claude Code는 해당 섹션에 나열된 버전부터 v2를 사용합니다. Claude Code v2.1.221 이상에서 v2 런타임은 MCP OAuth 서버가 인가 응답에서 반환하는 발급자를 확인하고, 일치하지 않으면 `Issuer mismatch in authorization response`로 시작하는 오류와 함께 로그인을 실패 처리합니다. v1 런타임은 이 확인을 수행하지 않습니다. 인식되지 않는 값을 설정하면 Claude Code는 이를 무시하고 디버그 로그에 경고를 기록합니다. Claude Code는 프로세스당 한 번 값을 읽습니다. Claude Code v2.1.218 이상이 필요합니다 |496| `MCP_SDK_GENERATION` | 이 프로세스가 MCP 서버에 연결할 때 사용하는 [MCP 클라이언트 런타임](/docs/ko/mcp#mcp-client-runtimes)을 고정합니다: MCP TypeScript SDK 1.x 기반의 `v1` 또는 [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/) 기반의 `v2`. 변수가 없으면 Claude Code는 해당 섹션에 나열된 버전부터 v2를 사용합니다. Claude Code v2.1.221 이상에서 v2 런타임은 MCP OAuth 서버가 인가 응답에서 반환하는 발급자를 확인하고, 일치하지 않으면 `Issuer mismatch in authorization response`로 시작하는 오류와 함께 로그인을 실패시킵니다. v1 런타임은 이 확인을 실행하지 않습니다. 인식되지 않는 값을 설정하면 Claude Code는 이를 무시하고 디버그 로그에 경고를 기록합니다. Claude Code는 프로세스당 한 번 값을 읽습니다. Claude Code v2.1.218 이상이 필요합니다 |

494| `MCP_SERVER_CONNECTION_BATCH_SIZE` | 시작 중에 병렬로 연결할 로컬 MCP 서버(stdio)의 최대 수입니다(기본값: 3) |497| `MCP_SERVER_CONNECTION_BATCH_SIZE` | 시작 중에 병렬로 연결할 로컬 MCP 서버(stdio)의 최대 수입니다(기본값: 3) |

495| `MCP_TIMEOUT` | MCP 서버 시작 타임아웃(밀리초)입니다(기본값: 30000, 즉 30초) |498| `MCP_TIMEOUT` | MCP 서버 시작의 타임아웃(밀리초)입니다(기본값: 30000, 즉 30초) |

496| `MCP_TOOL_TIMEOUT` | MCP 도구 실행 타임아웃(밀리초)입니다(기본값: 100000000, 약 28시간). HTTP, SSE 또는 claude.ai 커넥터 서버의 경우 각 요청도 기본적으로 60초 후에 시간 초과됩니다. 이 요청별 한도를 높이려면 이 변수 또는 서버별 `timeout`을 60000보다 크게 설정합니다. 더 낮은 값은 여전히 전체 도구 실행 타임아웃을 단축하지만 요청별 한도는 60초로 유지됩니다. Stdio 및 WebSocket 서버에는 요청별 타이머가 없습니다. `.mcp.json`의 서버별 `timeout` 필드는 해당 서버에 대해 이 값을 재정의합니다. 1000 이상의 서버별 `timeout`은 해당 서버의 도구 호출에 대한 최소 유휴 시간도 설정하므로, `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`이 그보다 먼저 도구 호출을 중단하지 않습니다. 이 하한에는 Claude Code v2.1.203 이상이 필요합니다. 환경 변수의 경우 1000 미만의 값은 1초로 올려 적용되며, 서버별 필드의 경우 1000 미만의 값은 무시됩니다 |499| `MCP_TOOL_TIMEOUT` | MCP 도구 실행의 타임아웃(밀리초)입니다(기본값: 100000000, 약 28시간). HTTP, SSE 또는 claude.ai 커넥터 서버의 경우 각 요청도 기본적으로 60초 후에 시간 초과됩니다. 해당 요청별 한도를 높이려면 이 변수 또는 서버별 `timeout`을 60000보다 크게 설정합니다. 더 낮은 값은 전체 도구 실행 타임아웃을 단축하지만 요청별 한도는 60초로 유지됩니다. Stdio 및 WebSocket 서버에는 요청별 타이머가 없습니다. `.mcp.json`의 서버별 `timeout` 필드는 해당 서버에 대해 이 값을 재정의합니다. 1000 이상의 서버별 `timeout`은 해당 서버 도구 호출의 최소 유휴 기간도 설정하므로, `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`이 그보다 빨리 중단하지 않습니다. 이 하한은 Claude Code v2.1.203 이상이 필요합니다. 환경 변수의 경우 1000 미만의 값은 1초로 올림 처리되며, 서버별 필드의 경우 1000 미만의 값은 무시됩니다 |

497| `NO_PROXY` | 프록시를 우회하여 요청을 직접 보낼 도메인 및 IP 목록입니다 |500| `NO_PROXY` | 프록시를 우회하여 요청이 직접 전송될 도메인 및 IP 목록입니다 |

498| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | 속성 값 길이에 대한 표준 OpenTelemetry SDK 제한입니다. Claude Code는 콘텐츠를 포함하는 텔레메트리 속성을 이 값과 `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 중 더 작은 값으로 제한하여, 잘림 표시가 SDK 제한 내에 유지되도록 합니다. Claude Code는 `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` 및 `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` 변형도 같은 방식으로 읽으며, 설정된 값 중 가장 작은 값이 모든 신호에 적용됩니다. Claude Code v2.1.214 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage#common-configuration-variables)을 참조하세요 |501| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | 속성 값 길이에 대한 표준 OpenTelemetry SDK 한도입니다. Claude Code는 잘림 표시가 SDK 한도 내에 유지되도록 콘텐츠를 담은 텔레메트리 속성을 이 값과 `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 중 작은 값으로 제한합니다. Claude Code는 `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` 및 `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` 변형도 같은 방식으로 읽으며, 설정된 가장 작은 값이 모든 신호에 적용됩니다. Claude Code v2.1.214 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage#common-configuration-variables)을 참조하십시오 |

499| `OTEL_LOG_ASSISTANT_RESPONSES` | `assistant_response` OpenTelemetry 로그 이벤트에 모델의 응답 텍스트를 포함하려면 `1`로 설정합니다. 설정되지 않으면 Claude Code는 대신 `OTEL_LOG_USER_PROMPTS`의 값을 사용합니다. `OTEL_LOG_USER_PROMPTS`가 설정된 경우에도 응답을 가린 상태로 유지하려면 `0`으로 설정합니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. Claude Code v2.1.193 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage#assistant-response-event)을 참조하세요 |502| `OTEL_LOG_ASSISTANT_RESPONSES` | `assistant_response` OpenTelemetry 로그 이벤트에 모델의 응답 텍스트를 포함하려면 `1`로 설정합니다. 설정되지 않은 경우 Claude Code는 대신 `OTEL_LOG_USER_PROMPTS`의 값을 사용합니다. `OTEL_LOG_USER_PROMPTS`가 설정된 경우에도 응답을 비공개 처리된 상태로 유지하려면 `0`으로 설정합니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. Claude Code v2.1.193 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage#assistant-response-event)을 참조하십시오 |

500| `OTEL_LOG_MANAGED_SETTINGS` | `managed_settings_resolved` OpenTelemetry 로그 이벤트에 민감 정보를 가린 관리형 설정과, 가리기 전 설정의 SHA-256 다이제스트를 추가하려면 `1`로 설정합니다. 기본적으로 비활성화되어 있습니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. 프로젝트 또는 로컬 설정의 값으로는 켜지지 않습니다. Claude Code v2.1.274 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage#managed-settings-resolved-event)을 참조하세요 |503| `OTEL_LOG_MANAGED_SETTINGS` | `managed_settings_resolved` OpenTelemetry 로그 이벤트에 비공개 처리된 관리형 설정과 비공개 처리 전 설정의 SHA-256 다이제스트를 추가하려면 `1`로 설정합니다. 기본적으로 비활성화되어 있습니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. 프로젝트 또는 로컬 설정의 값은 이를 켜지 않습니다. Claude Code v2.1.274 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage#managed-settings-resolved-event)을 참조하십시오 |

501| `OTEL_LOG_RAW_API_BODIES` | Anthropic Messages API 요청 및 응답 JSON을 `api_request_body` / `api_response_body` 로그 이벤트로 내보냅니다. 콘텐츠 한도에서 잘린 인라인 본문을 내보내려면 `1`로, 잘리지 않은 본문을 디스크에 쓰고 대신 `body_ref` 경로를 내보내려면 `file:<dir>`로 설정합니다. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`로 콘텐츠 한도를 구성하며, 기본값은 60 KB입니다. 기본적으로 비활성화되어 있으며, 본문에는 전체 대화 기록이 포함됩니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. [모니터링](/docs/ko/monitoring-usage#api-request-body-event)을 참조하세요 |504| `OTEL_LOG_RAW_API_BODIES` | Anthropic Messages API 요청 및 응답 JSON을 `api_request_body` / `api_response_body` 로그 이벤트로 내보냅니다. 콘텐츠 한도에서 잘린 인라인 본문을 원하면 `1`로, 잘리지 않은 본문을 디스크에 쓰고 대신 `body_ref` 경로를 내보내려면 `file:<dir>`로 설정합니다. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`가 콘텐츠 한도를 구성하며, 기본값은 60 KB입니다. 기본적으로 비활성화되어 있습니다. 본문에는 전체 대화 기록이 포함됩니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. [모니터링](/docs/ko/monitoring-usage#api-request-body-event)을 참조하십시오 |

502| `OTEL_LOG_TOOL_CONTENT` | `tool.output` OpenTelemetry span 이벤트에 도구 콘텐츠를 포함하려면 `1`로 설정합니다. span 속성은 [자체 게이트](/docs/ko/monitoring-usage#new-context-gates)에 따라 도구 콘텐츠를 포함합니다. [트레이싱](/docs/ko/monitoring-usage#traces-beta)이 필요합니다. 민감한 데이터를 보호하기 위해 기본적으로 비활성화되어 있습니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 해당 섹션에서 설명하는 끄기 값을 제외하고 무시됩니다. [모니터링](/docs/ko/monitoring-usage#tool-output-span-event)을 참조하세요 |505| `OTEL_LOG_TOOL_CONTENT` | `tool.output` OpenTelemetry span 이벤트에 도구 콘텐츠를 포함하려면 `1`로 설정합니다. span 속성은 [자체 게이트](/docs/ko/monitoring-usage#new-context-gates)에 따라 도구 콘텐츠를 전달합니다. [트레이싱](/docs/ko/monitoring-usage#traces-beta)이 필요합니다. 민감한 데이터를 보호하기 위해 기본적으로 비활성화되어 있습니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. 해당 섹션에서 설명하는 끄기 값을 제외하고 [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. [모니터링](/docs/ko/monitoring-usage#tool-output-span-event)을 참조하십시오 |

503| `OTEL_LOG_TOOL_DETAILS` | OpenTelemetry 메트릭, 트레이스, 로그에 도구 입력 인수, MCP 서버 이름, 사용자가 작성한 워크플로 이름, 도구 실패 시의 원시 오류 문자열, `api_refusal` 이벤트의 거부 `category`, [비용 및 토큰 메트릭](/docs/ko/monitoring-usage#cost-counter)의 실제 에이전트, 스킬, 플러그인, MCP 서버 이름, 기타 도구 세부 정보를 포함하려면 `1`로 설정합니다. PII를 보호하기 위해 기본적으로 비활성화되어 있습니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 해당 섹션에서 설명하는 끄기 값을 제외하고 무시됩니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |506| `OTEL_LOG_TOOL_DETAILS` | OpenTelemetry 메트릭, 트레이스, 로그에 도구 입력 인수, MCP 서버 이름, 사용자가 작성한 워크플로 이름, 도구 실패 시의 원시 오류 문자열, `api_refusal` 이벤트의 거부 `category`, [비용 및 토큰 메트릭](/docs/ko/monitoring-usage#cost-counter)의 실제 에이전트, 스킬, 플러그인, MCP 서버 이름 및 기타 도구 세부 정보를 포함하려면 `1`로 설정합니다. PII를 보호하기 위해 기본적으로 비활성화되어 있습니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. 해당 섹션에서 설명하는 끄기 값을 제외하고 [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. [모니터링](/docs/ko/monitoring-usage)을 참조하십시오 |

504| `OTEL_LOG_USER_PROMPTS` | OpenTelemetry 트레이스와 로그에 사용자 프롬프트 텍스트를 포함하려면 `1`로 설정합니다. 기본적으로 비활성화되어 있습니다(프롬프트가 가려짐). 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 해당 섹션에서 설명하는 끄기 값을 제외하고 무시됩니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |507| `OTEL_LOG_USER_PROMPTS` | OpenTelemetry 트레이스 및 로그에 사용자 프롬프트 텍스트를 포함하려면 `1`로 설정합니다. 기본적으로 비활성화되어 있습니다(프롬프트가 비공개 처리됨). 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. 해당 섹션에서 설명하는 끄기 값을 제외하고 [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. [모니터링](/docs/ko/monitoring-usage)을 참조하십시오 |

505| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 메트릭 속성에서 계정 UUID를 제외하려면 `false`로 설정합니다(기본값: 포함). [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |508| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 메트릭 속성에서 계정 UUID를 제외하려면 `false`로 설정합니다(기본값: 포함). [모니터링](/docs/ko/monitoring-usage)을 참조하십시오 |

506| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | 메트릭 속성에 세션 진입점을 포함하려면 `true`로 설정합니다(기본값: 제외). v2.1.152에서 추가되었습니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |509| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | 메트릭 속성에 세션 진입점을 포함하려면 `true`로 설정합니다(기본값: 제외). v2.1.152에서 추가되었습니다. [모니터링](/docs/ko/monitoring-usage)을 참조하십시오 |

507| `OTEL_METRICS_INCLUDE_REPOSITORY` | 세션의 저장소를 식별하는 `vcs.*` 속성으로 OpenTelemetry 메트릭과 이벤트에 태그를 지정하려면 `true`로 설정합니다(기본값: 제외). Claude Code v2.1.269 이상이 필요합니다. [저장소 속성](/docs/ko/monitoring-usage#repository-attributes)을 참조하세요 |510| `OTEL_METRICS_INCLUDE_REPOSITORY` | 세션의 저장소를 식별하는 `vcs.*` 속성으로 OpenTelemetry 메트릭과 이벤트에 태그를 지정하려면 `true`로 설정합니다(기본값: 제외). Claude Code v2.1.269 이상이 필요합니다. [저장소 속성](/docs/ko/monitoring-usage#repository-attributes)을 참조하십시오 |

508| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | v2.1.161부터 Claude Code는 `OTEL_RESOURCE_ATTRIBUTES` 키를 메트릭 데이터 포인트 레이블에 첨부합니다. 이를 제외하려면 `false`로 설정합니다(기본값: 포함). [모니터링](/docs/ko/monitoring-usage#multi-team-organization-support)을 참조하세요 |511| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | v2.1.161부터 Claude Code는 `OTEL_RESOURCE_ATTRIBUTES` 키를 메트릭 데이터 포인트 레이블에 첨부합니다. 이를 제외하려면 `false`로 설정합니다(기본값: 포함). [모니터링](/docs/ko/monitoring-usage#multi-team-organization-support)을 참조하십시오 |

509| `OTEL_METRICS_INCLUDE_SESSION_ID` | 메트릭 속성에서 세션 ID를 제외하려면 `false`로 설정합니다(기본값: 포함). [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |512| `OTEL_METRICS_INCLUDE_SESSION_ID` | 메트릭 속성에서 세션 ID를 제외하려면 `false`로 설정합니다(기본값: 포함). [모니터링](/docs/ko/monitoring-usage)을 참조하십시오 |

510| `OTEL_METRICS_INCLUDE_VERSION` | 메트릭 속성에 Claude Code 버전을 포함하려면 `true`로 설정합니다(기본값: 제외). [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |513| `OTEL_METRICS_INCLUDE_VERSION` | 메트릭 속성에 Claude Code 버전을 포함하려면 `true`로 설정합니다(기본값: 제외). [모니터링](/docs/ko/monitoring-usage)을 참조하십시오 |

511| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | [Skill 도구](/docs/ko/skills#control-who-invokes-a-skill)에 표시되는 스킬 메타데이터의 문자 예산을 재정의합니다. 예산은 컨텍스트 윈도우의 1%로 동적으로 조정되며, 폴백 값은 8,000자입니다. 이전 버전과의 호환성을 위해 레거시 이름을 유지합니다 |514| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | [Skill 도구](/docs/ko/skills#control-who-invokes-a-skill)에 표시되는 스킬 메타데이터의 문자 예산을 재정의합니다. 예산은 컨텍스트 윈도우의 1%로 동적으로 조정되며, 폴백 값은 8,000자입니다. 이전 버전과의 호환성을 위해 레거시 이름이 유지됩니다 |

512| `TASK_MAX_OUTPUT_LENGTH` | v2.1.277에서 이 변수가 크기를 지정하던 `TaskOutput` 도구와 함께 제거되었으며 현재는 아무 효과가 없습니다. 이전에는 `TaskOutput` 도구가 보관하는 [백그라운드 작업](/docs/ko/tools-reference#background-commands) 출력의 최대 문자 수를 설정했습니다. 이제 Claude는 대신 `Read`로 백그라운드 작업의 출력 파일을 읽습니다 |515| `TASK_MAX_OUTPUT_LENGTH` | v2.1.277에서 크기를 지정하던 `TaskOutput` 도구와 함께 제거되었으며 이제 아무 효과가 없습니다. 이전에는 `TaskOutput` 도구가 유지하는 [백그라운드 작업](/docs/ko/tools-reference#background-commands) 출력의 최대 문자 수를 설정했습니다. 이제 Claude는 대신 `Read`로 백그라운드 작업의 출력 파일을 읽습니다 |

513| `USE_BUILTIN_RIPGREP` | Claude Code에 포함된 `rg` 대신 시스템에 설치된 `rg`를 사용하려면 `0`으로 설정합니다 |516| `USE_BUILTIN_RIPGREP` | Claude Code에 포함된 `rg` 대신 시스템에 설치된 `rg`를 사용하려면 `0`으로 설정합니다 |

514| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Google Cloud's Agent Platform 사용 시 Claude 3.5 Haiku의 리전을 재정의합니다 |517| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Google Cloud's Agent Platform 사용 시 Claude 3.5 Haiku의 리전을 재정의합니다 |

515| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Google Cloud's Agent Platform 사용 시 Claude 3.5 Sonnet의 리전을 재정의합니다 |518| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Google Cloud's Agent Platform 사용 시 Claude 3.5 Sonnet의 리전을 재정의합니다 |


532| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Google Cloud's Agent Platform 사용 시 Claude Haiku 4.5의 리전을 재정의합니다 |535| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Google Cloud's Agent Platform 사용 시 Claude Haiku 4.5의 리전을 재정의합니다 |

533| `VERTEX_REGION_CLAUDE_HAIKU_5_5` | Google Cloud's Agent Platform 사용 시 Claude Haiku 5.5의 리전을 재정의합니다. v2.1.293에서 추가되었습니다 |536| `VERTEX_REGION_CLAUDE_HAIKU_5_5` | Google Cloud's Agent Platform 사용 시 Claude Haiku 5.5의 리전을 재정의합니다. v2.1.293에서 추가되었습니다 |

534 537 

535표준 OpenTelemetry 내보내기 변수(`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` 및 신호별 변형)도 지원됩니다. 구성 세부 정보는 [모니터링](/docs/ko/monitoring-usage)을 참조하세요.538표준 OpenTelemetry 익스포터 변수(`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` 및 신호별 변형)도 지원됩니다. 구성 세부 정보는 [모니터링](/docs/ko/monitoring-usage)을 참조하십시오.

536 539 

537`CLAUDE_CODE_ENABLE_TELEMETRY`와, 내보내기를 켜거나 내보내기 대상을 선택하거나 콘텐츠를 캡처하는 OpenTelemetry 변수는 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. Claude Code는 해당 섹션에서 설명하는 끄기 값을 제외하고 [프로젝트 및 로컬 설정에서 이러한 변수를 무시합니다](/docs/ko/settings-reference#variables-claude-code-ignores-in-env). `OTEL_RESOURCE_ATTRIBUTES`와, `OTEL_METRIC_EXPORT_INTERVAL` 같은 내보내기 간격, 타임아웃, 압축 변수는 프로젝트 및 로컬 설정에서도 계속 적용됩니다.540`CLAUDE_CODE_ENABLE_TELEMETRY`와 내보내기를 켜거나, 대상을 선택하거나, 콘텐츠를 캡처하는 OpenTelemetry 변수는 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. Claude Code는 해당 섹션에서 설명하는 끄기 값을 제외하고 [프로젝트 및 로컬 설정에서 이를 무시합니다](/docs/ko/settings-reference#variables-claude-code-ignores-in-env). `OTEL_RESOURCE_ATTRIBUTES`와 `OTEL_METRIC_EXPORT_INTERVAL`과 같은 내보내기 간격, 타임아웃, 압축 변수는 프로젝트 및 로컬 설정에서도 계속 적용됩니다.

538 541 

539<h2 id="what-the-subprocess-environment-scrub-removes">542<h2 id="what-the-subprocess-environment-scrub-removes">

540 하위 프로세스 환경 정리가 제거하는 항목543 하위 프로세스 환경 정리가 제거하는 항목


587* [advisor 도구](/docs/ko/advisor#requirements) 사용590* [advisor 도구](/docs/ko/advisor#requirements) 사용

588* [아티팩트의 댓글](/docs/ko/artifacts#collect-comments-on-an-artifact) 읽기 또는 답글 달기591* [아티팩트의 댓글](/docs/ko/artifacts#collect-comments-on-an-artifact) 읽기 또는 답글 달기

589* Claude가 [다른 조직의 공개 아티팩트](/docs/ko/artifacts#read-an-artifact-shared-with-you)를 읽도록 하기592* Claude가 [다른 조직의 공개 아티팩트](/docs/ko/artifacts#read-an-artifact-shared-with-you)를 읽도록 하기

590* `MCP_PROTOCOL_NEGOTIATION=auto`를 설정하지 않은 경우, Claude Code가 claude.ai 커넥터 서버 또는 stdio 서버에 대해 [MCP 프로토콜 개정판 2026-07-28](/docs/ko/mcp#mcp-client-runtimes) 지원 여부를 확인하도록 하기593* `MCP_PROTOCOL_NEGOTIATION=auto`를 설정하지 않은 경우, Claude Code가 claude.ai 커넥터 서버에 대해 [MCP 프로토콜 개정판 2026-07-28](/docs/ko/mcp#mcp-client-runtimes) 지원 여부를 확인하도록 하기

591* Git Bash가 설치된 Windows에서 claude.ai 및 Console 계정에 기본적으로 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool) 제공받기. `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`을 설정하지 않으면 Claude Code는 셸 명령을 Git Bash를 통해 실행합니다. Git Bash가 없는 Windows에서는 이 도구가 계속 켜져 있습니다594* Git Bash가 설치된 Windows에서 claude.ai 및 Console 계정에 기본적으로 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool) 제공받기. `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`을 설정하지 않으면 Claude Code는 셸 명령을 Git Bash를 통해 실행합니다. Git Bash가 없는 Windows에서는 이 도구가 계속 켜져 있습니다

592* [Claude가 초안을 작성한 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior) 받기. 이 기능은 Claude Code가 가져온 플래그를 통해 켭니다595* [Claude가 초안을 작성한 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior) 받기. 이 기능은 Claude Code가 가져온 플래그를 통해 켭니다

593* Claude가 [큰 붙여넣기를 입력한 텍스트가 아닌 붙여넣은 텍스트로 취급](/docs/ko/terminal-config#how-claude-treats-pasted-text)하도록 하기. `[Pasted text #N]` 플레이스홀더 뒤의 내용은 표시 없이 Claude에 전달됩니다596* Claude가 [큰 붙여넣기를 입력한 텍스트가 아닌 붙여넣은 텍스트로 취급](/docs/ko/terminal-config#how-claude-treats-pasted-text)하도록 하기. `[Pasted text #N]` 플레이스홀더 뒤의 내용은 표시 없이 Claude에 전달됩니다

errors.md +50 −53

Details

378 자동 재시도378 자동 재시도

379</h2>379</h2>

380 380 

381Claude Code는 오류를 표시하기 전에 지수 백오프를 사용하여 일시적 오류를 최대 10회까지 재시도합니다. Claude의 응답 중간에 도착한 오류는 항상 재시도하지 않습니다. 이 페이지의 오류 중 하나를 보면 Claude Code는 이미 해당 오류에 적용되는 모든 재시도를 수행했습니다.381Claude Code는 일시적인 실패가 발생하면 오류를 표시하기 전에 지수 백오프를 적용하여 최대 10회까지 재시도합니다. 다만 Claude의 응답 도중에 발생한 실패를 항상 재시도하는 것은 아닙니다. 이 페이지의 오류 중 하나가 표시되었다면, Claude Code는 해당 실패에 적용되는 재시도를 이미 모두 수행한 것입니다.

382 382 

383Claude Code는 다음 오류를 재시도합니다:383Claude Code는 다음 실패를 재시도합니다.

384 384 

385* Claude의 응답이 스트리밍되기 전에 도착하는 서버 오류, 과부하 응답 및 요청 시간 초과.385* Claude의 응답이 스트리밍되기 전에 발생한 서버 오류, 과부하 응답, 요청 시간 초과.

386* Claude가 사고를 마친 후 텍스트나 도구 호출을 시작하기 전에 도착하는 서버 오류 또는 과부하 응답. Claude Code는 해당 시점의 서버 오류를 최대 2회까지 재시도합니다. v2.1.284 이전에는 Claude Code가 해당 시점에서 오류와 함께 턴을 종료했습니다.386* Claude가 사고를 마친 후 텍스트나 도구 호출을 시작하기 전에 발생한 서버 오류 또는 과부하 응답. 이 시점의 서버 오류는 최대 2회까지 재시도합니다. v2.1.284 이전에는 이 시점에서 Claude Code가 오류와 함께 턴을 종료했습니다.

387* 끊어진 연결. Claude가 사고를 포함하여 응답의 어떤 부분도 완료하기 전에 요청 중간에 연결이 끊어지면, Claude Code는 동일한 백오프로 요청을 다시 발행하고 일부 텍스트가 이미 스트리밍되기 시작했더라도 턴이 계속됩니다. Claude가 사고를 마친 후 텍스트나 도구 호출을 시작하기 전에 끊어지면 Claude Code는 대신 요청을 빠르게 연속으로 최대 2회까지 다시 발행하고, 해당 시점에서 연결이 계속 끊어지면 `Connection lost before a response was produced`로 턴을 종료합니다.387* 끊어진 연결. Claude가 사고를 포함하여 응답의 어떤 부분도 완료하기 전에 요청 도중 연결이 끊어지면, 일부 텍스트가 이미 스트리밍되기 시작했더라도 Claude Code는 동일한 백오프로 요청을 다시 보내고 턴이 계속됩니다. Claude가 사고를 마친 후 텍스트나 도구 호출을 시작하기 전에 연결이 끊어지면, Claude Code는 대신 요청을 빠르게 연달아 최대 2회 다시 보내며, 이 시점에서 연결이 계속 끊어지면 `Connection lost before a response was produced`와 함께 턴을 종료합니다.

388* 요청 중간에 컴퓨터가 절전 모드로 전환되어 끊어졌다고 Claude Code가 감지한 연결. Claude Code는 이를 위의 규칙에 따른 끊어진 연결로 계산합니다. 재시도 레이블이 특정 이유를 명시하면 `Connection lost while your computer was asleep`로 표시되며, Claude가 사고를 마친 후 텍스트나 도구 호출을 시작하기 전에 턴이 종료되면 메시지는 `Your computer went to sleep before a response was produced`로 표시됩니다.388* 요청 도중 컴퓨터가 절전 모드로 전환되어 연결이 끊어졌다고 Claude Code가 감지한 경우. Claude Code는 이를 위 규칙에 따른 끊어진 연결로 간주합니다. 재시도 레이블에 구체적인 이유가 표시되면 `Connection lost while your computer was asleep`로 표시되며, Claude가 사고를 마친 후 텍스트나 도구 호출 전에 턴이 종료되면 메시지는 `Your computer went to sleep before a response was produced`로 표시됩니다.

389* 응답 헤더는 도착했지만 Claude의 응답이 도착하지 않았거나, Claude가 사고를 마쳤지만 텍스트나 도구 호출을 시작하지 않은 경우의 정체된 응답 스트림: Claude Code는 정체된 연결을 중단하고 위의 10회 시도 예산 외에 최대 1회까지 요청을 다시 발행합니다. Claude가 사고를 마친 후 텍스트나 도구 호출을 시작하기 전에 응답이 두 번째로 정체되면 Claude Code는 `The response stalled before a response was produced`로 턴을 종료합니다.389* 응답 헤더는 도착했지만 Claude의 응답이 전혀 도착하지 않았거나, Claude가 사고를 마쳤지만 텍스트나 도구 호출을 시작하지 않은 상태에서 멈춘 응답 스트림: Claude Code는 멈춘 연결을 중단하고 위의 10회 재시도 예산과 별도로 요청을 최대 1회 다시 보냅니다. Claude가 사고를 마친 후 텍스트나 도구 호출 전에 응답이 두 번째로 멈추면, Claude Code는 `The response stalled before a response was produced`와 함께 턴을 종료합니다.

390* API가 [첫 바이트 기한이 실행되는](/docs/ko/network-config#streaming-idle-watchdogs) 연결에서 응답 헤더로 응답하지 않는 스트리밍 요청: Claude Code는 기한에서 중단하고 재시도 예산 내에서 모델 요청당 최대 1회까지 다시 보낸 후, 해당 시도도 응답이 없으면 [No response from API](#no-response-from-api)로 턴을 종료합니다. 다른 연결에서는 요청이 `API_TIMEOUT_MS`를 기다립니다. `CLAUDE_CODE_RETRY_WATCHDOG`를 설정하면 1회 재시도 제한이 적용되지 않습니다.390* [첫 바이트 기한이 적용되는](/docs/ko/network-config#streaming-idle-watchdogs) 연결에서 API가 응답 헤더로 전혀 응답하지 않는 스트리밍 요청: Claude Code는 기한에 도달하면 요청을 중단하고 재시도 예산 내에서 모델 요청당 최대 1회 다시 보내며, 그 시도에도 응답이 없으면 [No response from API](#no-response-from-api)와 함께 턴을 종료합니다. 다른 연결에서는 요청이 `API_TIMEOUT_MS`만큼 기다립니다. `CLAUDE_CODE_RETRY_WATCHDOG`을 설정하면 1회 재시도 상한이 적용되지 않습니다.

391* Claude가 사고를 마치거나 텍스트 또는 도구 호출을 시작하기 전에 API의 출력 콘텐츠 필터가 중단한 스트리밍 응답. Claude Code는 재시도 예산 내에서 요청을 한 번 다시 보내고, 필터가 두 번째 응답도 중단하면 [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy)를 표시합니다.391* Claude가 사고를 마치거나 텍스트 또는 도구 호출을 시작하기 전에 API의 출력 콘텐츠 필터가 중단시킨 스트리밍 응답. Claude Code는 재시도 예산 내에서 요청을 1회 다시 보내며, 필터가 두 번째 응답도 중단시키면 [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy)를 표시합니다.

392* 임시 429 스로틀, 하지만 게이트웨이의 지출 한도 `429`는 아닙니다. 이는 스로틀이 아닙니다. [Spend limit reached](#spend-limit-reached)를 참조하세요.392* 일시적인 429 스로틀. 단, 게이트웨이의 지출 한도 `429`는 스로틀이 아니므로 제외됩니다. [Spend limit reached](#spend-limit-reached)를 참조하세요.

393 * claude.ai 구독으로 로그인한 경우, 여기에는 플랜의 할당량 헤더를 전달하지 않는 429 스로틀이 포함됩니다. v2.1.199 이전에는 Claude Code가 API 키 및 Enterprise 로그인에 대해서만 해당 스로틀을 재시도했습니다.393 * claude.ai 구독으로 로그인한 경우, 플랜의 할당량 헤더가 포함되지 않은 429 스로틀도 여기에 포함됩니다. v2.1.199 이전에는 Claude Code가 API 키 및 Enterprise 로그인에 대해서만 이러한 스로틀을 재시도했습니다.

394* 입력 더하기 `max_tokens`이 컨텍스트 한도를 초과하기 때문에 거부된 요청. 변경하지 않고 다시 보내면 같은 방식으로 실패하므로 Claude Code는 감소된 `max_tokens`으로 재시도하고, 두 가지 경우에 재시도를 중지하고 대신 압축합니다:394* 입력과 `max_tokens`의 합이 컨텍스트 한도를 초과하여 거부된 요청. 변경 없이 다시 보내면 같은 방식으로 실패하므로, Claude Code는 `max_tokens`를 줄여서 재시도하며, 다음 두 경우에는 재시도를 중단하고 대신 압축을 수행합니다.

395 * 감소가 맞지 않을 때, 예를 들어 대화 자체가 컨텍스트 윈도우를 거의 채울 때.395 * 어떤 감소로도 맞출 수 없는 경우. 예를 들어 대화 자체가 컨텍스트 윈도우를 거의 채운 경우입니다.

396 * 재시도가 `max_tokens`을 더 이상 줄일 수 없을 때. v2.1.218 이전에는 Claude Code가 여전히 맞지 않는 감소된 요청을 재시도 예산이 소진될 때까지 다시 보낼 수 있었습니다. 예를 들어 확장 사고 예산이 남은 컨텍스트를 초과했을 때입니다.396 * 재시도에서 `max_tokens`를 더 이상 줄일 수 없는 경우. v2.1.218 이전에는 확장 사고 예산이 남은 컨텍스트를 초과하는 경우처럼, 여전히 맞지 않는 축소된 요청을 재시도 예산이 소진될 때까지 다시 보낼 수 있었습니다.

397* [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai)에서 만료되었거나 누락된 Google Cloud 자격 증명, 또는 컴퓨터에서 로드하지 못한 AWS 자격 증명. Claude Code는 캐시된 자격 증명을 버리고 최대 2회까지 재시도한 후 [Could not load AWS or Google Cloud credentials](#could-not-load-aws-or-google-cloud-credentials)에 설명된 대로 오류를 보고하여 즉시 다시 인증할 수 있습니다. v2.1.228 이전에는 Claude Code가 실패한 Google Cloud 자격 증명을 전체 재시도 예산을 통해 재시도한 후 오류를 표시했습니다.397* [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai)에서 만료되었거나 누락된 Google Cloud 자격 증명, 또는 사용자의 컴퓨터에서 로드에 실패한 AWS 자격 증명. Claude Code는 캐시된 자격 증명을 폐기하고 최대 2회 재시도한 다음, [Could not load AWS or Google Cloud credentials](#could-not-load-aws-or-google-cloud-credentials)에 설명된 대로 즉시 다시 인증할 수 있도록 오류를 보고합니다. v2.1.228 이전에는 실패한 Google Cloud 자격 증명을 전체 재시도 예산만큼 재시도한 후에 오류를 표시했습니다.

398* [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 스크립트가 자격 증명을 제공하는 동안 Anthropic API에서 직접 또는 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 받은 `401` 또는 `403`. Claude Code는 스크립트를 다시 실행하고 전체 재시도 예산 내에서 새로운 출력으로 재시도합니다. 스크립트 자체가 재실행 시 실패하면 Claude Code는 대신 [Your apiKeyHelper script is failing](#your-apikeyhelper-script-is-failing)을 표시합니다.398* [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 스크립트가 자격 증명을 제공하는 동안 Anthropic API에서 직접 또는 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 받은 `401` 또는 `403`. Claude Code는 스크립트를 다시 실행하고 새 출력으로 전체 재시도 예산 내에서 재시도합니다. 다시 실행할 때 스크립트 자체가 실패하면, Claude Code는 대신 [Your apiKeyHelper script is failing](#your-apikeyhelper-script-is-failing)을 표시합니다.

399 399 

400v2.1.227 이전에는 `Connection lost before a response was produced`가 `Connection closed while thinking, before producing a response`로 표시되었고 `The response stalled before a response was produced`가 `Response stalled while thinking, before producing a response`로 표시되었습니다.400v2.1.227 이전에는 `Connection lost before a response was produced`가 `Connection closed while thinking, before producing a response`로, `The response stalled before a response was produced`가 `Response stalled while thinking, before producing a response`로 표시되었습니다.

401 401 

402Claude Code는 다음 오류를 재시도하지 않습니다:402Claude Code는 다음 실패를 재시도하지 않습니다.

403 403 

404* TLS 인증서 검증 실패, 예를 들어 TLS 검사 프록시, 누락된 `NODE_EXTRA_CA_CERTS` 번들 또는 만료된 인증서. Claude Code는 첫 번째 시도에서 오류를 보고하므로 인증서 설정을 즉시 수정할 수 있습니다. [SSL certificate errors](#ssl-certificate-errors)를 참조하세요. Claude Code는 여전히 핸드셰이크 시간 초과와 같은 일시적 TLS 조건을 재시도합니다. v2.1.199 이전에는 Claude Code가 인증서 실패를 전체 재시도 예산을 통해 재시도한 후 오류를 표시했습니다.404* TLS 검사 프록시, 누락된 `NODE_EXTRA_CA_CERTS` 번들, 만료된 인증서 등으로 인한 TLS 인증서 검증 실패. Claude Code는 첫 번째 시도에서 오류를 보고하므로 인증서 설정을 즉시 수정할 수 있습니다. [SSL 인증서 오류](#ssl-certificate-errors)를 참조하세요. 핸드셰이크 시간 초과와 같은 일시적인 TLS 상황은 여전히 재시도합니다. v2.1.199 이전에는 인증서 실패를 전체 재시도 예산만큼 재시도한 후에 오류를 표시했습니다.

405* Claude가 텍스트 블록이나 도구 호출을 완료했거나, 사고를 마친 후 시작했지만 응답을 마치기 전에 도착한 서버 오류, 끊어진 연결 또는 정체된 스트림. Claude Code는 요청을 다시 실행하지 않습니다. 같은 도구 호출을 두 번 실행할 수 있기 때문입니다. Claude가 완료한 것을 유지하고, Claude가 완료한 도구 호출을 실행하고, 그 결과에서 턴을 계속합니다. 대화형 세션과 비대화형 세션에서 보는 것에 대해서는 [The response above may be incomplete](#the-response-above-may-be-incomplete)를 읽으세요. v2.1.199 이전에는 Claude Code가 부분 출력을 버리고 서버 오류가 스트림 중간에 도착했을 때 전체 턴을 오류로 보고했습니다.405* Claude가 텍스트 블록이나 도구 호출을 완료한 후, 또는 사고를 마친 후 이를 시작한 후, 응답을 마치기 전에 발생한 서버 오류, 끊어진 연결 또는 멈춘 스트림. 같은 도구 호출이 두 번 실행될 수 있으므로 Claude Code는 요청을 다시 실행하지 않습니다. 대신 Claude가 완료한 내용을 유지하고, Claude가 완료한 도구 호출을 실행한 다음, 그 결과에서 턴을 계속합니다. 대화형 세션과 비대화형 세션에서 표시되는 내용은 [The response above may be incomplete](#the-response-above-may-be-incomplete)를 참조하세요. v2.1.199 이전에는 스트림 도중 서버 오류가 발생하면 부분 출력을 폐기하고 전체 턴을 오류로 보고했습니다.

406* Claude가 응답을 마친 후 도착한 오류: 재시도할 것이 없으므로 Claude Code는 완전한 응답을 유지하고 턴을 정상적으로 종료합니다.406* Claude가 응답을 마친 후 발생한 실패: 재시도할 것이 없으므로 Claude Code는 완성된 응답을 유지하고 턴을 정상적으로 종료합니다.

407* [Amazon Bedrock streaming response with an unexpected content-type](#bedrock-streaming-response-has-an-unexpected-content-type), 게이트웨이 또는 프록시가 응답을 다시 쓰면 재시도도 같은 방식으로 다시 쓸 것이기 때문입니다. Claude Code v2.1.208 이상이 필요합니다.407* [예상치 못한 content-type을 가진 Amazon Bedrock 스트리밍 응답](#bedrock-streaming-response-has-an-unexpected-content-type). 응답을 재작성하는 게이트웨이나 프록시가 재시도도 같은 방식으로 재작성하기 때문입니다. Claude Code v2.1.208 이상이 필요합니다.

408* 실패한 스트리밍 요청의 비스트리밍 재시도가 성공 상태를 받지만 [no Claude API message in the body](#api-returned-an-empty-or-malformed-response). Claude Code는 해당 오류로 턴을 종료합니다.408* 실패한 스트리밍 요청의 비스트리밍 재시도가 성공 상태를 받았지만 [본문에 Claude API 메시지가 없는](#api-returned-an-empty-or-malformed-response) 경우. Claude Code는 해당 오류와 함께 턴을 종료합니다.

409* 조직의 정책 검사가 거부한 요청, 이는 거부 메시지를 전달하는 `API Error:` 줄로 표시됩니다. 조직의 관리자는 Claude Enterprise 기능인 [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks)로 검사를 설정하고, 메시지는 구성한 지침으로 끝나거나 기본적으로 관리자에게 연락하도록 안내합니다. Claude Code는 거부가 모델이 아닌 요청의 내용에 관한 것이므로 거부된 요청을 동일한 모델이나 [폴백 모델](/docs/ko/model-config#fallback-model-chains)로 다시 보내지 않습니다. v2.1.239 이전에는 Claude Code가 거부를 표시하기 전에 거부된 요청을 스트리밍 없이 또는 구성된 폴백 모델에서 다시 보낼 수 있었습니다.409* 조직의 정책 검사에서 거부된 요청. 이는 거부 메시지가 포함된 `API Error:` 줄로 표시됩니다. 조직의 관리자는 Claude Enterprise 기능인 [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks)로 검사를 설정하며, 메시지는 관리자가 구성한 안내로 끝나거나 기본적으로 관리자에게 문의하라고 안내합니다. 거부는 모델이 아니라 요청의 내용에 관한 것이므로, Claude Code는 거부된 요청을 같은 모델이나 [대체 모델](/docs/ko/model-config#fallback-model-chains)로 다시 보내지 않습니다. v2.1.239 이전에는 거부 내용을 표시하기 전에 거부된 요청을 스트리밍 없이 또는 구성된 대체 모델로 다시 보낼 수 있었습니다.

410 410 

411<h3 id="what-you-see-while-claude-code-retries-or-waits">411<h3 id="what-you-see-while-claude-code-retries-or-waits">

412 Claude Code가 재시도하거나 대기하는 동안 보는 것412 Claude Code가 재시도하거나 대기하는 동안 표시되는 내용

413</h3>413</h3>

414 414 

415재시도하는 동안 스피너는 오류 레이블 후에 `Retrying in Ns · attempt x/y` 카운트다운을 표시합니다. 레이블은 즉시 조치할 수 있는 오류의 첫 번째 시도에서 특정 이유를 명시합니다: 네트워크가 다운되었거나, TLS 핸드셰이크가 실패했거나, 속도 제한에 도달했습니다. 다른 오류의 경우 처음에는 `API error`로 표시됩니다. v2.1.198부터는 세 번째 시도에서 특정 이유로 전환되거나, `CLAUDE_CODE_MAX_RETRIES`가 3회 미만을 허용할 때 최종 시도에서 전환됩니다. 이전 버전은 최종 시도에서만 전환됩니다.415재시도하는 동안 스피너는 오류 레이블 뒤에 `Retrying in Ns · attempt x/y` 카운트다운을 표시합니다. 네트워크 중단, TLS 핸드셰이크 실패, 속도 제한 도달처럼 즉시 조치할 수 있는 실패의 경우 레이블은 첫 번째 시도부터 구체적인 이유를 표시합니다. 그 밖의 오류는 처음에 `API error`로 표시됩니다. v2.1.198부터는 세 번째 시도부터, 또는 `CLAUDE_CODE_MAX_RETRIES`가 3회 미만을 허용하는 경우 마지막 시도에서 구체적인 이유로 전환됩니다. 이전 버전에서는 마지막 시도에서만 전환됩니다.

416 416 

417v2.1.198부터 일반적인 스피너 팁은 재시도 중에 억제됩니다. 오류 이유가 드러나면, 실패가 529 과부하인 경우 카운트다운 아래의 줄도 서비스 상태를 확인할 위치를 명시합니다: Anthropic API의 `status.claude.com` 또는 다른 구성의 메시지에 명시된 제공자 또는 게이트웨이 호스트.417v2.1.198부터는 재시도 중에 일반적인 스피너 팁이 표시되지 않습니다. 오류 이유가 표시된 후 실패가 529 과부하인 경우, 카운트다운 아래 줄에 서비스 상태를 확인할 위치도 표시됩니다. Anthropic API에서는 `status.claude.com`, 다른 구성에서는 메시지에 명시된 공급자 또는 게이트웨이 호스트입니다.

418 418 

419요청이 여전히 보류 중인 동안 응답 스트림에 20초 동안 데이터가 도착하지 않으면 스피너는 재시도가 시작되기 전에 `Waiting for API response · will retry in … · check your network`를 표시합니다. 요청은 아직 실패하지 않았습니다: 카운트다운은 Claude Code가 정체된 연결을 중단하는 지점까지 실행됩니다. 중단 후 보는 것은 응답이 얼마나 진행되었는지에 따라 달라집니다:419요청이 아직 대기 중인 상태에서 응답 스트림에 20초 동안 데이터가 도착하지 않으면, 재시도가 시작되기 전에 스피너가 `Waiting for API response · will retry in … · check your network`를 표시합니다. 요청이 아직 실패한 것은 아닙니다. 카운트다운은 Claude Code가 멈춘 연결을 중단하는 시점까지 진행됩니다. 중단 후 표시되는 내용은 응답이 어디까지 진행되었는지에 따라 다릅니다.

420 420 

421* Claude가 텍스트 블록이나 도구 호출을 완료하기 전에, 또는 사고를 마친 후 시작하기 전에 Claude Code는 요청을 재시도하거나 오류로 턴을 종료합니다. [Automatic retries](#automatic-retries)는 어떤 정체를 재시도하고 몇 번 재시도하는지 설명합니다.421* Claude가 텍스트 블록이나 도구 호출을 완료하기 전, 또는 사고를 마친 후 이를 시작하기 전이라면, Claude Code는 요청을 재시도하거나 오류와 함께 턴을 종료합니다. 어떤 멈춤을 몇 번 재시도하는지는 [자동 재시도](#automatic-retries)에 설명되어 있습니다.

422* Claude가 텍스트 블록이나 도구 호출을 완료한 후, 또는 사고를 마친 후 시작했지만 Claude가 응답을 마치기 전에 Claude Code는 Claude가 완료한 것을 유지하고, Claude가 완료한 도구 호출에서 턴을 계속하고, [The response above may be incomplete](#the-response-above-may-be-incomplete)를 표시합니다. 비대화형 세션에서, 그리고 모든 세션에서 서브에이전트의 응답에 대해 Claude Code는 먼저 Claude에게 응답을 계속하도록 요청할 수 있습니다. 해당 항목은 언제 그렇게 하는지, 그리고 언제 여전히 알림이 표시되는지를 설명합니다.422* Claude가 텍스트 블록이나 도구 호출을 완료한 후, 또는 사고를 마친 후 이를 시작한 후, Claude가 응답을 마치기 전이라면, Claude Code는 Claude가 완료한 내용을 유지하고 Claude가 완료한 도구 호출에서 턴을 계속하며 [The response above may be incomplete](#the-response-above-may-be-incomplete)를 표시합니다. 비대화형 세션에서, 그리고 모든 세션의 서브에이전트 응답에 대해서는 Claude Code가 먼저 Claude에게 응답을 계속하도록 요청할 수 있습니다. 언제 그렇게 하는지와 언제 여전히 해당 알림이 표시되는지는 해당 항목에 설명되어 있습니다.

423* Claude가 응답을 마친 후 Claude Code는 턴을 정상적으로 종료합니다.423* Claude가 응답을 마친 후라면, Claude Code는 턴을 정상적으로 종료합니다.

424 424 

425배너는 데이터가 재개되거나 재시도가 성공하면 자동으로 지워집니다. 모든 시도에서 다시 나타나면 [network issue](#unable-to-connect-to-api)로 취급하세요. v2.1.185 이전에는 배너가 10초 후에 다른 표현으로 나타났습니다.425데이터가 다시 수신되거나 재시도가 성공하면 배너는 자동으로 사라집니다. 모든 시도에서 배너가 다시 나타나면 [네트워크 문제](#unable-to-connect-to-api)로 간주하세요. v2.1.185 이전에는 배너가 10초 후에 다른 문구로 표시되었습니다.

426 426 

427Claude가 [advisor](/docs/ko/advisor)를 참조하는 동안 배너는 20초 대신 90초 동안 데이터가 없을 때 나타납니다. 긴 advisor 검토가 20초를 훨씬 넘게 아무것도 보내지 않을 수 있기 때문입니다. v2.1.214 이전에는 20초 임계값이 advisor 호출 중에도 적용되었으므로 아무 문제가 없을 때도 advisor 검토 중에 배너가 나타났습니다.427Claude가 [advisor](/docs/ko/advisor)를 참조하는 동안에는 데이터 없이 20초가 아닌 90초가 지나야 배너가 표시됩니다. 긴 advisor 검토는 20초를 훨씬 넘는 시간 동안 아무것도 보내지 않을 수 있기 때문입니다. v2.1.214 이전에는 advisor 호출 중에도 20초 임계값이 적용되어, 아무 문제가 없는데도 advisor 검토 중에 배너가 표시되었습니다.

428 428 

429<h3 id="tune-retry-behavior">429<h3 id="tune-retry-behavior">

430 재시도 동작 조정430 재시도 동작 조정

431</h3>431</h3>

432 432 

433다음 환경 변수로 재시도 동작을 조정할 수 있습니다:433다음 환경 변수로 재시도 동작을 조정할 수 있습니다.

434 434 

435| 변수 | 기본값 | 효과 |435| 변수 | 기본값 | 효과 |

436| :- | :- | :- |436| :- | :- | :- |

437| [`CLAUDE_CODE_MAX_RETRIES`](/docs/ko/env-vars) | 10 | 재시도 시도 횟수. v2.1.186부터 15로 제한됩니다. v2.1.199부터 `CLAUDE_CODE_RETRY_WATCHDOG`는 기본값을 높이고 제한을 제거합니다. 스크립트에서 오류를 더 빨리 표시하려면 낮추세요. |437| [`CLAUDE_CODE_MAX_RETRIES`](/docs/ko/env-vars) | 10 | 재시도 횟수입니다. v2.1.186부터 최대 15로 제한됩니다. v2.1.199부터는 `CLAUDE_CODE_RETRY_WATCHDOG`이 기본값을 높이고 상한을 제거합니다. 스크립트에서 실패를 더 빨리 확인하려면 값을 낮추세요. |

438| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/ko/env-vars) | 설정 안 됨 | CI 작업과 같은 무인 세션에서 `1`로 설정하여 `CLAUDE_CODE_MAX_RETRIES` 시도 후 실패하는 대신 `429` 및 `529` 용량 오류를 무한정 재시도합니다. Claude Code는 표준 속도 요청이 지출 한도 또는 소진된 사용량 크레딧을 보고하는 `429`를 받으면 즉시 실패합니다. 일정에 따라 재설정되는 [gateway spend cap](#spend-limit-reached)의 경우도 마찬가지입니다. v2.1.239 이전에는 watchdog이 이를 무한정 재시도했습니다. 빠른 모드 요청의 경우 [Handle rate limits](/docs/ko/fast-mode#handle-rate-limits)를 참조하세요. v2.1.199 이상에서는 서버 오류, 시간 초과 및 끊어진 연결과 같은 다른 일시적 오류에 대한 기본 재시도 횟수를 300으로 높입니다. 대략 3시간의 백오프이며, 변수를 명시적으로 설정하면 `CLAUDE_CODE_MAX_RETRIES`의 15 제한을 제거합니다. |438| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/ko/env-vars) | 설정 안 됨 | CI 작업과 같은 무인 세션에서 `1`로 설정하면 `CLAUDE_CODE_MAX_RETRIES`회 시도 후 실패하는 대신 `429` 및 `529` 용량 오류를 무기한 재시도합니다. 표준 속도 요청이 지출 한도나 소진된 사용량 크레딧을 보고하는 `429`를 받으면, 일정에 따라 재설정되는 [게이트웨이 지출 한도](#spend-limit-reached)에서 온 것이라도 Claude Code는 즉시 실패합니다. v2.1.239 이전에는 워치독이 이를 무기한 재시도했습니다. 빠른 모드 요청에 대해서는 [속도 제한 처리](/docs/ko/fast-mode#handle-rate-limits)를 참조하세요. v2.1.199 이상에서는 서버 오류, 시간 초과, 끊어진 연결 등 다른 일시적인 오류의 기본 재시도 횟수도 약 3시간의 백오프에 해당하는 300으로 높이고, `CLAUDE_CODE_MAX_RETRIES`를 명시적으로 설정한 경우 15의 상한을 제거합니다. |

439| [`API_TIMEOUT_MS`](/docs/ko/env-vars) | 600000 | 요청당 타임아웃(밀리초). 느린 네트워크 또는 프록시의 경우 높이세요. 또한 Claude Code가 응답 헤더를 기다리는 시간을 제한합니다. [No response from API](#no-response-from-api)에 설명되어 있습니다. |439| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/ko/env-vars) | 500 | API가 `529` 과부하 오류로 거부한 요청의 재시도 간 백오프 시작 지연 시간(밀리초)입니다. API가 용량 한계에 도달했을 때 재시도를 더 긴 기간에 걸쳐 분산하려면 최대 32000까지 값을 높이세요. `CLAUDE_CODE_RETRY_WATCHDOG`이 `1`로 설정되어 있거나 거부된 요청이 [빠른 모드](/docs/ko/fast-mode#handle-rate-limits)로 전송된 경우에는 효과가 없습니다. Claude Code v2.1.292 이상이 필요합니다. |

440| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/ko/env-vars) | 설정 안 됨 | 시간 초과된 [비스트리밍 요청](#streaming-response-ended-before-any-complete-data-was-received)의 재전송 횟수 제한. 제한에 도달하면 요청이 실패합니다. 생성하는 데 타임아웃보다 오래 걸리는 Claude의 응답은 재전송할 때마다 다시 시간 초과되므로, 더 빨리 실패하려면 `0`과 같은 낮은 숫자로 설정하세요. 각 비스트리밍 시도는 로컬 세션에서 300초 후에 시간 초과되며, `API_TIMEOUT_MS`를 양수 값으로 설정한 경우 해당 시간 후에 시간 초과됩니다. Claude Code v2.1.285 이상이 필요합니다. |440| [`API_TIMEOUT_MS`](/docs/ko/env-vars) | 600000 | 요청당 타임아웃(밀리초)입니다. 느린 네트워크나 프록시의 경우 값을 높이세요. [No response from API](#no-response-from-api)에 설명된 대로, Claude Code가 응답 헤더를 기다리는 시간의 상한으로도 사용됩니다. |

441| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/ko/env-vars) | 설정 안 됨 | 스트리밍 요청의 첫 응답 바이트에 대한 기한(밀리초). Claude Code v2.1.242 이상이 필요합니다. 이것이 설정되지 않았을 때 Claude Code가 기한을 선택하는 방법에 대해서는 [No response from API](#no-response-from-api)를 참조하세요. |441| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/ko/env-vars) | 설정 안 됨 | 시간 초과된 [비스트리밍 요청](#streaming-response-ended-before-any-complete-data-was-received)을 다시 보내는 횟수의 한도입니다. 한도에 도달하면 요청이 실패합니다. 생성하는 데 타임아웃보다 오래 걸리는 Claude의 응답은 다시 보낼 때마다 다시 시간 초과되므로, 더 빨리 실패하려면 `0`과 같은 낮은 값으로 설정하세요. 각 비스트리밍 시도는 로컬 세션에서 300초 후, 또는 `API_TIMEOUT_MS`를 양수 값으로 설정한 경우 해당 시간 후에 시간 초과됩니다. Claude Code v2.1.285 이상이 필요합니다. |

442| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/ko/env-vars) | 설정 안 됨 | 스트리밍 요청의 첫 번째 응답 바이트에 대한 기한(밀리초)입니다. Claude Code v2.1.242 이상이 필요합니다. 이 값이 설정되지 않았을 때 Claude Code가 기한을 정하는 방법은 [No response from API](#no-response-from-api)를 참조하세요. |

442 443 

443<h2 id="server-errors">444<h2 id="server-errors">

444 서버 오류445 서버 오류


831플랜에 포함된 사용량으로는 이 요청을 처리할 수 없으며, 그 대신 비용을 지불할 [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)도 지출 한도에 도달했습니다. 이는 플랜의 사용량 윈도우 중 하나가 소진되었거나, [사용량 크레딧으로 청구되는](/docs/ko/model-config#fable-and-usage-credits) 모델에 대한 요청처럼 사용량 크레딧으로만 지불되는 요청인 경우에 발생합니다. 메시지에는 누구의 한도로 인해 차단되었는지가 표시됩니다. `·` 뒤의 텍스트는 해당 한도를 늘리는 방법을 안내하며, 플랜과 청구 관리 여부에 따라 다릅니다.832플랜에 포함된 사용량으로는 이 요청을 처리할 수 없으며, 그 대신 비용을 지불할 [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)도 지출 한도에 도달했습니다. 이는 플랜의 사용량 윈도우 중 하나가 소진되었거나, [사용량 크레딧으로 청구되는](/docs/ko/model-config#fable-and-usage-credits) 모델에 대한 요청처럼 사용량 크레딧으로만 지불되는 요청인 경우에 발생합니다. 메시지에는 누구의 한도로 인해 차단되었는지가 표시됩니다. `·` 뒤의 텍스트는 해당 한도를 늘리는 방법을 안내하며, 플랜과 청구 관리 여부에 따라 다릅니다.

832 833 

833```text theme={null}834```text theme={null}

834You've hit your monthly spend limit · raise it at claude.ai/settings/usage835You've hit your monthly spend limit · raise it at https://claude.ai/settings/usage?from=cc_cli_limit_message

835You've hit your individual spend limit · ask your admin for a higher limit836You've hit your individual spend limit · ask your admin for a higher limit

836You've hit your org's monthly spend limit · visit claude.ai/admin-settings/usage to raise it837You've hit your org's monthly spend limit · visit https://claude.ai/admin-settings/usage to raise it

837You've hit your team's shared budget · ask your admin to raise it at claude.ai/admin-settings/usage838You've hit your team's shared budget · ask your admin to raise it at https://claude.ai/admin-settings/usage

838You've hit your channel's monthly spend limit · an org owner or channel manager can raise it in the channel's Claude settings839You've hit your channel's monthly spend limit · an org owner or channel manager can raise it in the channel's Claude settings

839```840```

840 841 


842 843 

843플랜의 윈도우 중 하나가 소진된 경우, 메시지에는 `· your session limit resets 3:45pm`과 같이 해당 윈도우의 재설정 시간도 표시되며, 누군가 한도를 늘리지 않아도 그때 접근이 복원됩니다. 사용량 기반 청구를 사용하는 조직에서는 메시지에 `spend limit` 대신 `usage limit`가 표시되며, `You've hit your individual usage limit`와 같이 나타납니다.844플랜의 윈도우 중 하나가 소진된 경우, 메시지에는 `· your session limit resets 3:45pm`과 같이 해당 윈도우의 재설정 시간도 표시되며, 누군가 한도를 늘리지 않아도 그때 접근이 복원됩니다. 사용량 기반 청구를 사용하는 조직에서는 메시지에 `spend limit` 대신 `usage limit`가 표시되며, `You've hit your individual usage limit`와 같이 나타납니다.

844 845 

845v2.1.239 이전에는 메시지에 플랜 윈도우의 재설정 시간이 표시되지 않았습니다. v2.1.268 이전에는 그룹의 공유 예산에 도달했을 때 `team's shared budget` 대신 `individual spend limit` 메시지가 표시되었습니다.

846 

847Claude 앱 게이트웨이를 통해 연결하고 있으며 소문자 `spend limit reached`가 표시된다면, 이는 게이트웨이 운영자가 설정한 상한입니다. [Spend limit reached](#spend-limit-reached)를 참조하세요.846Claude 앱 게이트웨이를 통해 연결하고 있으며 소문자 `spend limit reached`가 표시된다면, 이는 게이트웨이 운영자가 설정한 상한입니다. [Spend limit reached](#spend-limit-reached)를 참조하세요.

848 847 

849**해결 방법:**848**해결 방법:**


2861 2860 

2862메시지에 `` Details: `[reasoning_extraction]` `` 줄이 포함되어 있으면 [안전 조치가 Claude의 추론에 대한 요청을 플래그했습니다](#safeguards-flagged-a-request-for-claudes-reasoning)를 참조하십시오.2861메시지에 `` Details: `[reasoning_extraction]` `` 줄이 포함되어 있으면 [안전 조치가 Claude의 추론에 대한 요청을 플래그했습니다](#safeguards-flagged-a-request-for-claudes-reasoning)를 참조하십시오.

2863 2862 

2864메시지는 정당한 사이버 보안 작업에 대한 액세스를 부여하는 [사이버 검증 프로그램](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)으로 연결됩니다. Opus 5.5 및 Sonnet 5.5에서는 메시지가 대신 `<model>'s safeguards flagged this session`으로 시작합니다. 플래그된 범주에 사용 가능한 대체 모델이 있으면 Claude Code는 이 오류를 표시하는 대신 [모델을 전환합니다](/docs/ko/model-config#automatic-model-fallback).2863이 메시지는 정당한 사이버 보안 작업에 대한 액세스를 부여하는 [사이버 검증 프로그램](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)으로 연결됩니다. [자동 모델 폴백](/docs/ko/model-config#automatic-model-fallback)이 적용되는 모델은 이 링크 없이 다른 메시지를 출력하며, Opus 5.5 및 Sonnet 5.5에서는 해당 메시지가 `<model>'s safeguards flagged this session`으로 시작합니다. 해당 섹션에서는 Claude Code가 대신 모델을 전환하는 경우도 다룹니다.

2865 2864 

2866[Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai) 및 [Microsoft Foundry](/docs/ko/microsoft-foundry)에서는 사이버 보안 플래그가 대신 [사용 정책 거부](#usage-policy-refusal) 메시지를 생성합니다.2865[Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai) 및 [Microsoft Foundry](/docs/ko/microsoft-foundry)에서는 사이버 보안 플래그가 대신 [사용 정책 거부](#usage-policy-refusal) 메시지를 생성합니다.

2867 2866 


4824This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.4823This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.

4825```4824```

4826 4825 

4827[에이전트 뷰](/docs/ko/agent-view)에서 같은 세션의 행을 열면 목록 아래에 `Press enter again to restart this session fresh`가 표시되며, 행에서 두 번째 `Enter`는 빈 대화로 세션을 다시 시작합니다. v2.1.212 이전에는 행을 열면 재시작할 방법이 없는 거부 메시지가 표시되었습니다. v2.1.211 이전에는 중지된 세션을 열면 자동으로 빈 대화를 시작했으며 세션의 원래 프롬프트를 다시 실행할 수 있었습니다.4826[에이전트 뷰](/docs/ko/agent-view)에서 같은 세션의 행을 열면 대신 목록 아래에 `Press enter again to restart this session fresh`가 표시되며, 행에서 두 번째 `Enter`를 누르면 빈 대화로 세션을 다시 시작합니다.

4828 4827 

4829**할 일:**4828**할 일:**

4830 4829 


4846* **`running in another terminal`**: 터미널이 대화를 보유합니다. 예를 들어 `claude --resume` 또는 `/resume`으로 재개한 터미널입니다. 행에는 `Open in a terminal`도 표시됩니다.4845* **`running in another terminal`**: 터미널이 대화를 보유합니다. 예를 들어 `claude --resume` 또는 `/resume`으로 재개한 터미널입니다. 행에는 `Open in a terminal`도 표시됩니다.

4847* **`already open in another running Claude session`**: 다른 비대화형 Claude Code 프로세스가 이를 보유합니다. 예를 들어 같은 대화에 대한 [백그라운드 세션](/docs/ko/agent-view#the-supervisor-process) 프로세스가 아직 종료되지 않았습니다.4846* **`already open in another running Claude session`**: 다른 비대화형 Claude Code 프로세스가 이를 보유합니다. 예를 들어 같은 대화에 대한 [백그라운드 세션](/docs/ko/agent-view#the-supervisor-process) 프로세스가 아직 종료되지 않았습니다.

4848 4847 

4849Claude Code는 행을 열 때 입력한 응답을 저장하고 세션이 다음에 시작할 때 세션의 다음 프롬프트로 전송합니다.

4850 

4851**할 일:**4848**할 일:**

4852 4849 

4853* 열려 있는 프로세스에서 대화를 계속하거나 해당 프로세스를 종료하고 행을 다시 엽니다.4850* 열려 있는 프로세스에서 대화를 계속하거나 해당 프로세스를 종료하고 행을 다시 엽니다.

Details

92 <td>✗</td>92 <td>✗</td>

93 <td>✓</td>93 <td>✓</td>

94 <td>참고 사항 <sup><a href="#fn1">1</a></sup></td>94 <td>참고 사항 <sup><a href="#fn1">1</a></sup></td>

95 <td>✓ ([Anthropic에서 호스팅되는 배포](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options))</td>95 <td>✓</td>

96 </tr>96 </tr>

97 97 

98 <tr>98 <tr>

99 <td>[빠른 모드](/docs/ko/fast-mode)</td>99 <td>[빠른 모드](/docs/ko/fast-mode)</td>

100 <td>✓ ([조직에 대해 소유자가 활성화](/docs/ko/fast-mode#enable-fast-mode-for-your-organization) Team 및 Enterprise)</td>100 <td>✓ (Team 및 Enterprise에서는 [Owner가 활성화](/docs/ko/fast-mode#enable-fast-mode-for-your-organization))</td>

101 <td>✓ (프로비저닝된 조직)</td>101 <td>✓ (프로비저닝된 조직)</td>

102 <td>✗</td>102 <td>✗</td>

103 <td>✗</td>103 <td>✗</td>


136 </tr>136 </tr>

137 137 

138 <tr>138 <tr>

139 <td>[Channels](/docs/ko/channels)</td>139 <td>[채널](/docs/ko/channels)</td>

140 <td>✓</td>140 <td>✓</td>

141 <td>✓</td>141 <td>✓</td>

142 <td>✗</td>142 <td>✗</td>


200 <tr>200 <tr>

201 <td>[서버 관리 설정](/docs/ko/server-managed-settings)</td>201 <td>[서버 관리 설정](/docs/ko/server-managed-settings)</td>

202 <td>✓ (Team 및 Enterprise)</td>202 <td>✓ (Team 및 Enterprise)</td>

203 <td>✓ (Team 및 Enterprise)</td>203 <td>[플랫폼 가용성](/docs/ko/server-managed-settings#platform-availability) 참조</td>

204 <td>✗</td>204 <td>✗</td>

205 <td>✗</td>205 <td>✗</td>

206 <td>✗</td>206 <td>✗</td>


283 **부분 지원:**283 **부분 지원:**

284 284 

285 * [Desktop](/docs/ko/desktop): [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)를 통해서만285 * [Desktop](/docs/ko/desktop): [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)를 통해서만

286 * [웹 검색](/docs/ko/tools-reference#websearch-tool-behavior): [Anthropic에서 호스팅되는 배포](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)만

287 * [자동 모드](/docs/ko/auto-mode-config): Sonnet 5 이상, Opus 4.7 이상, Haiku 5.5, Fable 모델만286 * [자동 모드](/docs/ko/auto-mode-config): Sonnet 5 이상, Opus 4.7 이상, Haiku 5.5, Fable 모델만

288 * [교차 세션 메시징](/docs/ko/cross-session-messaging): 이 머신의 세션 간만 <sup><a href="#fn5">5</a></sup>287 * [교차 세션 메시징](/docs/ko/cross-session-messaging): 이 머신의 세션 간만 <sup><a href="#fn5">5</a></sup>

289 * [Zero Data Retention](/docs/ko/zero-data-retention): Azure 계약에 따름288 * [Zero Data Retention](/docs/ko/zero-data-retention): Azure 계약에 따름


294 <Tab title="Anthropic Console">293 <Tab title="Anthropic Console">

295 **사용 불가능:** 모든 [Claude 구독이 필요한 기능](#features-that-require-a-claude-subscription).294 **사용 불가능:** 모든 [Claude 구독이 필요한 기능](#features-that-require-a-claude-subscription).

296 295 

297 [제공자별로 다양한 CLI 기능](#cli-capabilities-that-vary-by-provider)의 모든 기능을 사용할 수 있습니다. 단, [빠른 모드](/docs/ko/fast-mode)는 [프로비저닝된 액세스](/docs/ko/fast-mode#enable-fast-mode-for-your-organization)가 필요합니다. API 키가 Team 또는 Enterprise 조직에 속하는 경우 [서버 관리 설정](/docs/ko/server-managed-settings)도 사용할 수 있습니다.296 [제공자별로 다양한 CLI 기능](#cli-capabilities-that-vary-by-provider)의 모든 기능을 사용할 수 있습니다. 단, [빠른 모드](/docs/ko/fast-mode)는 [프로비저닝된 액세스](/docs/ko/fast-mode#enable-fast-mode-for-your-organization)가 필요합니다. claude.ai Team 또는 Enterprise 조직에서 구성한 [서버 관리 설정](/docs/ko/server-managed-settings)은 Console API 키로 인증하는 세션에는 적용되지 않습니다. 이러한 세션에도 적용하는 방법은 [플랫폼 가용성](/docs/ko/server-managed-settings#platform-availability)을 참조하십시오.

298 </Tab>297 </Tab>

299</Tabs>298</Tabs>

300 299 

Details

140| 권한 | 액세스 |140| 권한 | 액세스 |

141| - | - |141| - | - |

142| Actions | 읽기 및 쓰기 |142| Actions | 읽기 및 쓰기 |

143| Administration | 읽기 |

143| Checks | 읽기 및 쓰기 |144| Checks | 읽기 및 쓰기 |

144| Contents | 읽기 및 쓰기 |145| Contents | 읽기 및 쓰기 |

145| Discussions | 읽기 및 쓰기 |146| Discussions | 읽기 및 쓰기 |

146| Issues | 읽기 및 쓰기 |147| Issues | 읽기 및 쓰기 |

147| Members | 읽기 |148| Members | 읽기 |

149| Merge queues | 읽기 |

148| Metadata | 읽기 |150| Metadata | 읽기 |

149| Pull requests | 읽기 및 쓰기 |151| Pull requests | 읽기 및 쓰기 |

150| Repository hooks | 읽기 및 쓰기 |152| Repository hooks | 읽기 및 쓰기 |

glossary.md +1 −1

Details

294 Output style294 Output style

295</h3>295</h3>

296 296 

297Claude Code가 Claude에 제공하는 지시사항을 변경하여 응답 동작, 톤 또는 형식을 설정하는 구성입니다. 프로젝트 컨텍스트를 Claude Code의 기본 지시사항과 함께 추가하는 [CLAUDE.md](#claude-md)와 달리, 사용자 정의 출력 스타일은 기본 소프트웨어 엔지니어링 지시사항을 대체할 수 있습니다.297Claude Code가 Claude에 제공하는 지시사항을 변경하여 응답 동작, 톤 또는 형식을 설정하는 구성입니다. 프로젝트 컨텍스트를 Claude Code의 기본 지시사항과 함께 추가하는 [CLAUDE.md](#claude-md)와 달리, 사용자 정의 출력 스타일은 자체 지시사항을 추가하며 기본 소프트웨어 엔지니어링 지시사항을 제외할 수 있습니다.

298 298 

299자세히 알아보기: [출력 스타일](/docs/ko/output-styles)299자세히 알아보기: [출력 스타일](/docs/ko/output-styles)

300 300 

Details

342 1M 토큰 context window342 1M 토큰 context window

343</h2>343</h2>

344 344 

345Claude Sonnet 5, Opus 4.6 이상 및 Sonnet 4.6은 Google Cloud의 Agent Platform에서 [1M 토큰 context window](https://platform.claude.com/docs/ko/build-with-claude/context-windows#context-window-sizes-by-model)를 지원합니다. Sonnet 5는 항상 1M 윈도우로 실행되며, 선택할 `[1m]` 변형이 없습니다. 다른 모델의 경우, Claude Code는 1M 모델 변형을 선택할 때 확장된 context window를 자동으로 활성화합니다.345Fable 모델, Sonnet 5 이상, Opus 4.7 이상은 Google Cloud의 Agent Platform에서 기본적으로 [1M 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)로 실행되며, `[1m]` 접미사가 필요하지 않습니다. 대신 200K 윈도우를 유지하려면 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/ko/model-config#turn-off-1m-context)을 설정합니다.

346 346 

347[설정 마법사](#sign-in-with-agent-platform)는 모델을 고정할 때 1M context 옵션을 제공합니다. 수동으로 고정된 모델에 대해 대신 활성화하려면 모델 ID에 `[1m]`을 추가합니다. 자세한 내용은 [타사 배포를 위한 모델 고정](/docs/ko/model-config#pin-models-for-third-party-deployments)을 참조하십시오. 1M 윈도우를 고정을 변경하지 않고 사용하는 방법을 포함한 자세한 내용을 참조하십시오.347Opus 4.6 및 Sonnet 4.6은 `[1m]` 변형을 선택하면 1M 윈도우를 사용할 수 있습니다. [설정 마법사](#sign-in-with-agent-platform)는 모델을 고정할 때 1M 컨텍스트 옵션을 제공합니다. 수동으로 고정된 모델에 대해 대신 활성화하려면 모델 ID에 `[1m]`을 추가합니다. 고정을 변경하지 않고 1M 윈도우를 사용하는 방법을 포함한 자세한 내용은 [타사 배포를 위한 모델 고정](/docs/ko/model-config#pin-models-for-third-party-deployments)을 참조하십시오.

348 

349v2.1.287 이전에는 Fable 모델과 Opus 4.7 이상이 Google Cloud의 Agent Platform에서 기본적으로 200K 윈도우로 실행되었으며, `[1m]` 접미사를 통해 1M 윈도우를 사용할 수 있었습니다.

348 350 

349<h2 id="troubleshooting">351<h2 id="troubleshooting">

350 문제 해결352 문제 해결

headless.md +9 −4

Details

78 종료 시 백그라운드 작업78 종료 시 백그라운드 작업

79</h3>79</h3>

80 80 

81Claude가 `claude -p` 실행 중에 [백그라운드 Bash 작업](/docs/ko/tools-reference#bash-tool-behavior)을 시작하는 경우(예: 개발 서버 또는 감시 빌드), 해당 셸은 Claude가 최종 결과를 반환하고 stdin이 닫힌 후 약 5초 후에 종료됩니다. 유예 기간을 통해 결과 직후에 완료되는 작업이 여전히 출력을 전달할 수 있습니다.81Claude가 턴을 마치고 stdin이 닫힌 후에도 `claude -p` 실행은 Claude가 시작한 백그라운드 작업을 기다리기 위해 열린 상태로 유지될 수 있습니다.

82 82 

83Claude가 `claude -p` 실행 중에 백그라운드 [서브에이전트](/docs/ko/sub-agents) 또는 워크플로우를 시작하면 `claude -p`는 해당 작업이 완료될 때까지 열려 있습니다. 왜냐하면 해당 결과가 최종 출력의 일부이기 때문입니다.83메인 대화가 시작한 백그라운드 명령이 아직 실행 중인 경우가 아니라면, Claude Code는 기본적으로 연속 유휴 대기 10분 후에 여전히 실행 중인 모든 항목을 중지하고 해당 부분 결과를 삭제합니다. 10분 상한을 변경하려면 [`CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS`](/docs/ko/env-vars)를 설정하거나, 상한 없이 대기하도록 `0`으로 설정합니다.

84 84 

85기본적으로 대기는 연속 유휴 대기 10분 후에 종료되므로 중단된 서브에이전트 또는 워크플로우가 프로세스를 무한정 열어 두지 않습니다. 이 시점에서 Claude Code는 여전히 실행 중인 모든 항목을 중지하고 해당 부분 결과를 삭제합니다. 제한을 변경하려면 [`CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS`](/docs/ko/env-vars)를 설정하거나 제한 없이 대기하도록 `0`으로 설정합니다.85실행은 백그라운드 명령, 서브에이전트 및 워크플로, Monitor 감시, 대기 중인 `/loop` 웨이크업과 같은 백그라운드 작업을 기다립니다:

86 86 

87Claude가 `claude -p` 실행 중에 [Monitor](/docs/ko/tools-reference#monitor-tool) 감시를 시작하면 Claude Code는 감시가 시간 초과되거나 10분 상한이 대기를 종료할 때까지 감시를 기다립니다. 대기하는 동안 Claude는 감시가 보고하는 항목에 계속 응답합니다. 기본적으로 감시는 Claude가 시작한 후 5분 후에 시간 초과됩니다.87* **[백그라운드 명령](/docs/ko/tools-reference#background-commands)**: 메인 대화가 시작한 명령(예: 개발 서버 또는 감시 빌드)의 경우, 실행은 명령이 종료되거나 [시간 제한](/docs/ko/tools-reference#time-limit-for-background-commands)에 도달할 때까지 기다립니다. 그런 다음 Claude는 그 결과를 가지고 턴을 한 번 더 수행하며, 해당 턴의 결과가 실행의 마지막 결과가 되고 `text` 및 `json` 출력은 이 결과를 출력합니다. 명령이 실행되는 동안에는 10분 상한이 대기를 종료하지 않습니다.

88* **백그라운드 [서브에이전트](/docs/ko/sub-agents) 및 워크플로**: 해당 작업의 결과가 최종 출력의 일부이므로 작업이 완료될 때까지 실행이 열린 상태로 유지됩니다.

89* **[Monitor](/docs/ko/tools-reference#monitor-tool) 감시**: 실행은 감시가 시간 초과되거나 10분 상한이 대기를 종료할 때까지, 둘 중 먼저 발생하는 시점까지 기다립니다. 대기하는 동안 Claude는 감시가 보고하는 항목에 계속 응답합니다. 기본적으로 감시는 Claude가 시작한 후 5분 후에 시간 초과됩니다.

90* **대기 중인 웨이크업**: 프롬프트를 `--input-format stream-json`이 아닌 텍스트로 전달한 실행에서 Claude가 [자체 속도 조절 `/loop` 웨이크업](/docs/ko/scheduled-tasks#let-claude-choose-the-interval)을 예약한 경우, 실행은 10분 상한을 넘더라도 각 웨이크업이 실행되기를 기다리고 [루프가 끝날](/docs/ko/scheduled-tasks#stop-a-loop) 때까지 해당 반복을 실행합니다.

91 

92실행이 [`--max-budget-usd`](/docs/ko/cli-reference#cli-flags) 상한에 도달하면 Claude Code는 기다리는 대신 남은 백그라운드 작업을 중지합니다.

88 93 

89<h3 id="stop-a-run-with-sigterm">94<h3 id="stop-a-run-with-sigterm">

90 SIGTERM으로 실행 중지95 SIGTERM으로 실행 중지

hooks.md +729 −560

Details

938| `PostCompact` | 아니오 | 사용자에게만 stderr을 표시합니다 |938| `PostCompact` | 아니오 | 사용자에게만 stderr을 표시합니다 |

939| `PreModelSwitch` | 예 | 모델 전환을 차단하고 사용자에게 stderr을 표시합니다 |939| `PreModelSwitch` | 예 | 모델 전환을 차단하고 사용자에게 stderr을 표시합니다 |

940| `PostModelSwitch` | 아니오 | 사용자에게만 stderr을 표시합니다. 모델은 이미 전환되었습니다 |940| `PostModelSwitch` | 아니오 | 사용자에게만 stderr을 표시합니다. 모델은 이미 전환되었습니다 |

941| `Elicitation` | 예 | elicitation을 거부합니다 |941| `Elicitation` | 예 | 요청을 거부하며 대화 상자가 나타나지 않습니다 |

942| `ElicitationResult` | 예 | 응답을 차단합니다 (action이 decline이 됨) |942| `ElicitationResult` | 예 | 응답을 차단합니다 (action이 decline이 됨) |

943| `WorktreeCreate` | 예 | 0이 아닌 종료 코드는 worktree 생성을 실패하게 합니다 |943| `WorktreeCreate` | 예 | 0이 아닌 종료 코드는 worktree 생성을 실패하게 합니다 |

944| `WorktreeRemove` | 예 | 0이 아닌 종료 코드는 이후에도 디렉터리가 여전히 존재하면 worktree 제거를 실패하게 합니다. 디렉터리에 발생하는 일은 [WorktreeRemove](#worktreeremove)를 참조하세요 |944| `WorktreeRemove` | 예 | 0이 아닌 종료 코드는 이후에도 디렉터리가 여전히 존재하면 worktree 제거를 실패하게 합니다. 디렉터리에 발생하는 일은 [WorktreeRemove](#worktreeremove)를 참조하세요 |


1095| PermissionDenied | `hookSpecificOutput` | `retry: true`는 모델에 거부된 도구 호출을 재시도할 수 있음을 알립니다. Claude Code는 [no-verdict 거부](#permissiondenied-decision-control)에 대해 이를 무시합니다 |1095| PermissionDenied | `hookSpecificOutput` | `retry: true`는 모델에 거부된 도구 호출을 재시도할 수 있음을 알립니다. Claude Code는 [no-verdict 거부](#permissiondenied-decision-control)에 대해 이를 무시합니다 |

1096| WorktreeCreate | 경로 반환 | 명령 hook은 stdout에 경로를 출력합니다. HTTP hook은 `hookSpecificOutput.worktreePath`를 반환합니다. hook 실패 또는 경로 누락 시 생성이 실패합니다 |1096| WorktreeCreate | 경로 반환 | 명령 hook은 stdout에 경로를 출력합니다. HTTP hook은 `hookSpecificOutput.worktreePath`를 반환합니다. hook 실패 또는 경로 누락 시 생성이 실패합니다 |

1097| WorktreeRemove | 종료 코드 | 0이 아닌 종료 코드는 이후에도 디렉터리가 여전히 존재하면 제거를 실패하게 합니다. JSON 출력은 버려집니다 |1097| WorktreeRemove | 종료 코드 | 0이 아닌 종료 코드는 이후에도 디렉터리가 여전히 존재하면 제거를 실패하게 합니다. JSON 출력은 버려집니다 |

1098| Elicitation | `hookSpecificOutput` | `action` (accept/decline/cancel), `content` (accept 시 폼 필드 값) |1098| Elicitation, ElicitationResult | `hookSpecificOutput` 또는 최상위 `decision` | `action` (accept/decline/cancel), `content` (폼 필드 값). `decision: "block"`도 [거부](#other-ways-to-decline-an-elicitation)합니다 |

1099| ElicitationResult | `hookSpecificOutput` | `action` (accept/decline/cancel), `content` (폼 필드 값 재정의) |

1100| MessageDisplay | `hookSpecificOutput` | `displayContent`는 화면에 표시되는 텍스트를 대체합니다. 표시 전용: 트랜스크립트와 Claude가 보는 내용은 원본을 유지합니다 |1099| MessageDisplay | `hookSpecificOutput` | `displayContent`는 화면에 표시되는 텍스트를 대체합니다. 표시 전용: 트랜스크립트와 Claude가 보는 내용은 원본을 유지합니다 |

1101| SessionStart, SubagentStart, PostModelSwitch | 컨텍스트만 | `hookSpecificOutput.additionalContext`는 Claude를 위한 컨텍스트를 추가합니다. SessionStart는 [`initialUserMessage`, `watchPaths`, `sessionTitle`, `reloadSkills`](#sessionstart-decision-control)도 허용합니다. 차단 또는 결정 제어 없음 |1100| SessionStart, SubagentStart, PostModelSwitch | 컨텍스트만 | `hookSpecificOutput.additionalContext`는 Claude를 위한 컨텍스트를 추가합니다. SessionStart는 [`initialUserMessage`, `watchPaths`, `sessionTitle`, `reloadSkills`](#sessionstart-decision-control)도 허용합니다. 차단 또는 결정 제어 없음 |

1102| Setup, Notification, SessionEnd, PostCompact, InstructionsLoaded, StopFailure, CwdChanged, DirectoryAdded, FileChanged | 없음 | 결정 제어 없음. 로깅이나 정리와 같은 부수 효과에 사용됩니다 |1101| Setup, Notification, SessionEnd, PostCompact, InstructionsLoaded, StopFailure, CwdChanged, DirectoryAdded, FileChanged | 없음 | 결정 제어 없음. 로깅이나 정리와 같은 부수 효과에 사용됩니다 |


1163 훅 이벤트1162 훅 이벤트

1164</h2>1163</h2>

1165 1164 

1166각 이벤트는 Claude Code 수명 주기에서 훅이 실행될 수 있는 지점에 해당합니다. 아래 섹션은 세션 설정부터 에이전틱 루프를 거쳐 세션 종료까지 수명 주기 순서에 맞춰 정렬되어 있습니다. 각 섹션에서는 이벤트가 발생하는 시점, 지원하는 matcher, 수신하는 JSON 입력, 출력을 통해 동작을 제어하는 방법을 설명합니다.1165각 이벤트는 Claude Code의 수명 주기에서 훅이 실행될 수 있는 지점에 해당합니다. 아래 섹션은 세션 설정부터 에이전틱 루프를 거쳐 세션 종료까지, 수명 주기 순서대로 정렬되어 있습니다. 각 섹션에서는 이벤트가 발생하는 시점, 지원하는 matcher, 받는 JSON 입력, 출력을 통해 동작을 제어하는 방법을 설명합니다.

1167 1166 

1168<h3 id="sessionstart">1167<h3 id="sessionstart">

1169 SessionStart1168 SessionStart

1170</h3>1169</h3>

1171 1170 

1172Claude Code가 새 세션을 시작하거나 기존 세션을 재개할 때 실행됩니다. 기존 이슈나 코드베이스의 최근 변경 사항 같은 개발 컨텍스트를 불러오거나 환경 변수를 설정하는 데 유용합니다. 스크립트가 필요 없는 정적 컨텍스트에는 대신 [CLAUDE.md](/docs/ko/memory)를 사용합니다.1171Claude Code가 새 세션을 시작하거나 기존 세션을 재개할 때 실행됩니다. 기존 이슈나 코드베이스의 최근 변경 사항 같은 개발 컨텍스트를 로드하거나 환경 변수를 설정하는 데 유용합니다. 스크립트가 필요 없는 정적 컨텍스트에는 대신 [CLAUDE.md](/docs/ko/memory)를 사용하세요.

1173 1172 

1174SessionStart는 모든 세션에서 실행되므로 이 훅은 빠르게 유지해야 합니다. `type: "command"` 및 `type: "mcp_tool"` 훅만 지원됩니다. `mcp_tool` 훅이 실행되는 시점은 [MCP 도구 훅 필드](#mcp-tool-hook-fields)를 참조하세요.1173SessionStart는 모든 세션에서 실행되므로 이 훅은 빠르게 유지하세요. `type: "command"` 및 `type: "mcp_tool"` 훅만 지원됩니다. `mcp_tool` 훅이 실행되는 시점은 [MCP 도구 훅 필드](#mcp-tool-hook-fields)를 참조하세요.

1175 1174 

1176matcher 값은 세션이 시작된 방식에 해당합니다.1175matcher 값은 세션이 시작된 방식에 해당합니다:

1177 1176 

1178| Matcher | 발생 시점 |1177| Matcher | 발생 시점 |

1179| :- | :- |1178| :- | :- |


1181| `resume` | `--resume`, `--continue` 또는 `/resume` |1180| `resume` | `--resume`, `--continue` 또는 `/resume` |

1182| `clear` | `/clear` |1181| `clear` | `/clear` |

1183| `compact` | 자동 또는 수동 압축 |1182| `compact` | 자동 또는 수동 압축 |

1184| `fork` | 기존 세션에서 분기된 새 세션: `--resume` 또는 `--continue`와 함께 사용한 `--fork-session`, `/fork` 백그라운드 복사본, `/branch`, 또는 [백그라운드로 이동](/docs/ko/agent-view#from-inside-a-session)한 대화 |1183| `fork` | 기존 세션에서 분기된 새 세션: `--resume` 또는 `--continue`와 함께 사용한 `--fork-session`, `/fork` 백그라운드 복사본, `/branch`, 또는 [백그라운드로 옮긴](/docs/ko/agent-view#from-inside-a-session) 대화 |

1185 1184 

1186v2.1.214 이전에는 분기된 세션이 source를 `"resume"`으로 보고했습니다.1185v2.1.214 이전에는 분기된 세션이 source를 `"resume"`으로 보고했습니다.

1187 1186 

1188대화형 세션을 시작하거나, 실행 시 `--continue` 또는 `--resume`으로 대화를 재개하거나, `/clear`를 실행하면 SessionStart 훅이 백그라운드에서 실행됩니다. 바로 입력을 시작할 수 있으며, 재개한 대화는 훅을 기다리지 않고 표시됩니다. Claude의 첫 응답은 여전히 훅이 끝날 때까지 기다리므로 훅의 컨텍스트가 Claude에 전달됩니다.1187대화형 세션을 시작하거나, 실행 시 `--continue` 또는 `--resume`으로 대화를 재개하거나, `/clear`를 실행하면 SessionStart 훅이 백그라운드에서 실행됩니다. 바로 입력을 시작할 수 있으며, 재개한 대화는 훅을 기다리지 않고 표시됩니다. 다만 Claude의 첫 응답은 여전히 훅이 완료될 때까지 기다리므로 훅의 컨텍스트가 Claude에 전달됩니다.

1189 1188 

1190세션 안에서 `/resume`으로 대화를 전환하면 전환이 대신 훅이 끝날 때까지 기다립니다. 백그라운드 훅이 아직 실행 중일 때 `/clear`를 실행하거나 다른 대화로 전환하면 훅이 반환하는 내용은 세션에 적용되지 않습니다.1189세션 내에서 `/resume`으로 대화를 전환하면 전환은 대신 훅이 완료될 때까지 기다립니다. 백그라운드 훅이 아직 실행 중일 때 `/clear`를 실행하거나 다른 대화로 전환하면 훅이 반환하는 내용은 세션에 적용되지 않습니다.

1191 1190 

1192재개한 세션을 포함하여 실행 시에도 동일한 대기가 적용됩니다. SessionStart 훅이 아직 실행 중일 때 보낸 프롬프트는 훅이 끝날 때까지 Claude에 전달되지 않습니다.1191실행 시에도 재개된 세션을 포함해 동일한 대기가 적용됩니다. SessionStart 훅이 아직 실행 중일 때 보낸 프롬프트는 훅이 완료될 때까지 Claude에 전달되지 않습니다.

1193 1192 

1194어느 대기 중이든 `Esc`를 누르면 프롬프트를 보내지 않고 입력란으로 되돌릴 수 있습니다. 훅은 계속 실행됩니다.1193어느 쪽 대기 중이든 `Esc`를 누르면 프롬프트를 보내지 않고 입력란으로 되돌릴 수 있습니다. 훅은 계속 실행됩니다.

1195 1194 

1196<h4 id="sessionstart-input">1195<h4 id="sessionstart-input">

1197 SessionStart 입력1196 SessionStart 입력

1198</h4>1197</h4>

1199 1198 

1200[공통 입력 필드](#common-input-fields) 외에도 SessionStart 훅은 `source`와 선택적으로 `model`, `agent_type`, `session_title`을 수신합니다.1199[공통 입력 필드](#common-input-fields) 외에도 SessionStart 훅은 `source`와, 선택적으로 `model`, `agent_type`, `session_title`을 받습니다:

1201 1200 

1202| 필드 | 설명 |1201| 필드 | 설명 |

1203| :- | :- |1202| :- | :- |

1204| `source` | 세션이 시작된 방식: 새 세션은 `"startup"`, 재개된 세션은 `"resume"`, `/clear` 이후는 `"clear"`, 압축 이후는 `"compact"`, 기존 세션에서 분기된 새 세션은 `"fork"` |1203| `source` | 세션이 시작된 방식: 새 세션은 `"startup"`, 재개된 세션은 `"resume"`, `/clear` 후에는 `"clear"`, 압축 후에는 `"compact"`, 기존 세션에서 분기된 새 세션은 `"fork"` |

1205| `model` | 활성 모델 식별자. 예를 들어 `/clear` 이후나 대화 복구를 통해 세션이 복원된 경우 생략될 수 있으므로, 읽기 전에 필드가 있는지 확인해야 합니다 |1204| `model` | 활성 모델 식별자. 예를 들어 `/clear` 후나 대화 복구를 통해 세션이 복원될 때는 생략될 수 있으므로 읽기 전에 필드가 있는지 확인하세요 |

1206| `agent_type` | 에이전트 이름. `claude --agent <name>`으로 Claude Code를 시작할 때 포함됩니다 |1205| `agent_type` | 에이전트 이름. `claude --agent <name>`으로 Claude Code를 시작할 때 존재합니다 |

1207| `session_title` | 세션의 사용자 지정 제목. 예를 들어 `--name`, `/rename`, 훅의 `sessionTitle` 출력 또는 Agent SDK의 `renameSession()`으로 제목이 설정된 경우 포함됩니다. `sessionTitle`을 내보내는 훅은 기존 사용자 지정 제목을 덮어쓰지 않도록 이 필드를 먼저 확인할 수 있습니다 |1206| `session_title` | 세션의 사용자 지정 제목. 제목이 설정된 경우 존재하며, 예를 들어 `--name`, `/rename`, 훅의 `sessionTitle` 출력 또는 Agent SDK의 `renameSession()`으로 설정됩니다. `sessionTitle`을 내보내는 훅은 먼저 이 필드를 확인하여 기존 사용자 지정 제목을 덮어쓰지 않도록 할 수 있습니다 |

1208 1207 

1209이름을 지정하지 않은 세션에도 [생성된 제목](/docs/ko/sessions#name-your-sessions)이 있을 수 있습니다. 이 제목은 사용자 지정 제목이 아니며 `session_title`에 나타나지 않습니다.1208이름을 지정하지 않은 세션에도 [생성된 제목](/docs/ko/sessions#name-your-sessions)이 있을 수 있습니다. 이 제목은 사용자 지정 제목이 아니며 `session_title`에 나타나지 않습니다.

1210 1209 

1211`source`가 `"resume"` 또는 `"fork"`이고 트랜스크립트에 Claude의 응답이 하나 이상 포함되어 있으면 SessionStart 훅은 아래 네 가지 필드도 수신합니다. 훅은 이 필드를 사용하여 오래된 대화를 재개하는 데 드는 비용을 첫 요청 전에 보고할 수 있습니다. 예를 들어 [`systemMessage`](#json-output)에 보고할 수 있습니다. 이 필드에는 Claude Code v2.1.251 이상이 필요합니다.1210`source`가 `"resume"` 또는 `"fork"`이고 트랜스크립트에 Claude의 응답이 하나 이상 포함된 경우 SessionStart 훅은 아래 네 가지 필드도 받습니다. 훅은 이 필드를 사용하여 오래된 대화를 재개하는 데 드는 비용을 첫 요청 전에 보고할 수 있습니다(예: [`systemMessage`](#json-output)). 이 필드에는 Claude Code v2.1.251 이상이 필요합니다.

1212 1211 

1213| 필드 | 설명 |1212| 필드 | 설명 |

1214| :- | :- |1213| :- | :- |

1215| `seconds_since_last_response` | 재개된 트랜스크립트의 마지막 응답 이후 경과한 실제 시간(초) |1214| `seconds_since_last_response` | 재개된 트랜스크립트의 마지막 응답 이후 경과한 실제 시간(초) |

1216| `context_tokens` | 재개된 세션의 첫 요청이 프롬프트로 다시 보내는 토큰 수 |1215| `context_tokens` | 재개된 세션의 첫 요청이 프롬프트로 다시 보내는 토큰 |

1217| `prompt_cache_likely_expired` | 마지막 응답이 세션의 [프롬프트 캐시 수명](/docs/ko/prompt-caching#cache-lifetime)보다 오래되었거나 이후의 압축이 캐시된 대화를 대체한 경우 `true` |1216| `prompt_cache_likely_expired` | 마지막 응답이 세션의 [프롬프트 캐시 수명](/docs/ko/prompt-caching#cache-lifetime)보다 오래되었거나 이후 압축이 캐시된 대화를 대체한 경우 `true` |

1218| `estimated_cache_write_usd` | 세션의 모델에서 `context_tokens`를 프롬프트 캐시에 쓰는 예상 비용(미국 달러). 응답은 제외됩니다 |1217| `estimated_cache_write_usd` | 세션의 모델에서 `context_tokens`를 프롬프트 캐시에 쓰는 데 드는 예상 비용(미국 달러). 응답은 제외됩니다 |

1219 1218 

1220다음 예시는 마지막 응답 후 90분 뒤에 재개된 세션의 입력을 보여 줍니다.1219이 예시는 마지막 응답 후 90분 뒤에 재개된 세션의 입력을 보여 줍니다:

1221 1220 

1222```json theme={null}1221```json theme={null}

1223{1222{


1238 SessionStart 결정 제어1237 SessionStart 결정 제어

1239</h4>1238</h4>

1240 1239 

1241Claude Code는 [일반 텍스트로 처리하는](#exit-code-0) stdout을 Claude의 컨텍스트에 추가합니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 다음과 같은 이벤트별 필드를 반환할 수 있습니다.1240Claude Code는 [일반 텍스트로 처리하는](#exit-code-0) stdout을 Claude의 컨텍스트에 추가합니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 다음 이벤트별 필드를 반환할 수 있습니다:

1242 1241 

1243| 필드 | 설명 |1242| 필드 | 설명 |

1244| :- | :- |1243| :- | :- |

1245| `additionalContext` | 첫 프롬프트 전, 대화 시작 시점에 Claude의 컨텍스트에 추가되는 문자열. 텍스트가 전달되는 방식과 포함할 내용은 [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |1244| `additionalContext` | 대화 시작 시 첫 프롬프트 전에 Claude의 컨텍스트에 추가되는 문자열. 텍스트가 전달되는 방식과 넣을 내용은 [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |

1246| `initialUserMessage` | 세션의 첫 사용자 메시지로 사용되는 문자열. `-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless)에 적용되며, 프롬프트가 제공되지 않아도 첫 턴이 됩니다. 프롬프트가 제공되면 그 프롬프트가 다음 턴으로 이어집니다. 기존 턴에 첨부되는 `additionalContext`와 달리 이 필드는 턴을 생성합니다 |1245| `initialUserMessage` | 세션의 첫 사용자 메시지로 사용되는 문자열. `-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless)에 적용되며, 프롬프트가 제공되지 않아도 첫 턴이 됩니다. 프롬프트가 제공되면 그다음 턴으로 이어집니다. 기존 턴에 첨부되는 `additionalContext`와 달리 이 필드는 턴을 생성합니다 |

1247| `sessionTitle` | 세션 제목을 설정하며, `/rename`과 효과가 같습니다. 실행 폴더, git 브랜치 또는 worktree 이름으로 세션 이름을 자동으로 지정하는 데 사용합니다. `source`가 `"startup"`, `"resume"` 또는 `"fork"`일 때 적용되며, `"clear"`와 `"compact"`에서는 무시됩니다 |1246| `sessionTitle` | 세션 제목을 설정하며 `/rename`과 동일한 효과가 있습니다. 실행 폴더, git 브랜치 또는 worktree 이름으로 세션 이름을 자동 지정하는 데 사용합니다. `source`가 `"startup"`, `"resume"` 또는 `"fork"`일 때 적용되며, `"clear"`와 `"compact"`에서는 무시됩니다 |

1248| `watchPaths` | 이 세션 동안 [FileChanged](#filechanged) 이벤트를 감시할 절대 경로 배열 |1247| `watchPaths` | 이 세션 동안 [FileChanged](#filechanged) 이벤트를 감시할 절대 경로 배열 |

1249| `reloadSkills` | 불리언. `true`이면 SessionStart 훅이 완료된 후 Claude Code가 [스킬](/docs/ko/skills) 및 명령 디렉터리를 다시 스캔하므로, 훅이 설치한 스킬을 첫 프롬프트부터 같은 세션에서 사용할 수 있습니다 |1248| `reloadSkills` | 불리언. `true`이면 Claude Code는 SessionStart 훅이 완료된 후 [스킬](/docs/ko/skills) 및 명령 디렉터리를 다시 스캔하므로, 훅이 설치한 스킬을 첫 프롬프트부터 같은 세션에서 사용할 수 있습니다 |

1250 1249 

1251```json theme={null}1250```json theme={null}

1252{1251{


1258}1257}

1259```1258```

1260 1259 

1261이 이벤트에서는 일반 stdout이 이미 Claude에 전달되므로, 컨텍스트만 불러오는 훅은 JSON을 구성하지 않고 stdout에 직접 출력할 수 있습니다. 컨텍스트를 `sessionTitle` 같은 다른 필드와 함께 사용해야 할 때 JSON 형식을 사용합니다.1260이 이벤트에서는 일반 stdout이 이미 Claude에 전달되므로, 컨텍스트만 로드하는 훅은 JSON을 만들지 않고 stdout에 바로 출력할 수 있습니다. 컨텍스트를 `sessionTitle` 같은 다른 필드와 결합해야 할 때 JSON 형식을 사용하세요.

1262 1261 

1263SessionStart 훅이 스킬을 설치하거나 업데이트할 때는 `reloadSkills`를 사용합니다. 스킬 검색은 일반적으로 SessionStart 훅이 끝나기 전에 실행되므로, 그렇지 않으면 훅이 `~/.claude/skills/` 또는 `.claude/skills/`에 작성한 파일은 다음 세션에서만 나타납니다. 다음 예시는 공유 스킬 저장소를 동기화하고 다시 스캔을 요청합니다.1262SessionStart 훅이 스킬을 설치하거나 업데이트할 때는 `reloadSkills`를 사용하세요. 스킬 검색은 일반적으로 SessionStart 훅이 완료되기 전에 실행되므로, 이 필드가 없으면 훅이 `~/.claude/skills/` 또는 `.claude/skills/`에 쓴 파일은 다음 세션에서만 나타납니다. 이 예시는 공유 스킬 저장소를 동기화하고 다시 스캔을 요청합니다:

1264 1263 

1265```bash theme={null}1264```bash theme={null}

1266#!/bin/bash1265#!/bin/bash


1271echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1270echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1272```1271```

1273 1272 

1274저장소 URL은 자리 표시자이므로 자체 스킬 저장소로 바꿔야 합니다. 자리 표시자를 그대로 두면 clone이 실패하고 stderr에 `fatal:` 메시지가 출력됩니다. 0으로 종료하는 SessionStart 훅의 stderr는 정보 제공용일 뿐이므로 `reloadSkills` 요청은 여전히 적용됩니다.1273저장소 URL은 자리 표시자이므로 자체 스킬 저장소로 바꾸세요. 자리 표시자를 그대로 두면 clone이 실패하고 stderr에 `fatal:` 메시지가 출력됩니다. 0으로 종료되는 SessionStart 훅의 stderr는 정보 제공용일 뿐이므로 `reloadSkills` 요청은 여전히 적용됩니다.

1275 1274 

1276<h4 id="persist-environment-variables">1275<h4 id="persist-environment-variables">

1277 환경 변수 유지1276 환경 변수 유지

1278</h4>1277</h4>

1279 1278 

1280SessionStart 훅은 `CLAUDE_ENV_FILE` 환경 변수에 액세스할 수 있습니다. 이 변수는 이후 Bash 명령에 사용할 환경 변수를 유지할 수 있는 파일 경로를 제공합니다.1279SessionStart 훅은 `CLAUDE_ENV_FILE` 환경 변수에 액세스할 수 있으며, 이 변수는 이후 Bash 명령을 위해 환경 변수를 유지할 수 있는 파일 경로를 제공합니다.

1281 1280 

1282개별 환경 변수를 설정하려면 `export` 문을 `CLAUDE_ENV_FILE`에 작성합니다. 다른 훅이 설정한 변수를 보존하려면 추가(`>>`)를 사용합니다.1281개별 환경 변수를 설정하려면 `CLAUDE_ENV_FILE`에 `export` 문을 작성하세요. 다른 훅이 설정한 변수를 보존하려면 추가(`>>`)를 사용하세요:

1283 1282 

1284```bash theme={null}1283```bash theme={null}

1285#!/bin/bash1284#!/bin/bash


1293exit 01292exit 0

1294```1293```

1295 1294 

1296설정 명령으로 인한 모든 환경 변경 사항을 캡처하려면 전후의 내보낸 변수를 비교합니다.1295설정 명령에서 발생한 모든 환경 변경 사항을 캡처하려면 전후의 내보낸 변수를 비교하세요:

1297 1296 

1298```bash theme={null}1297```bash theme={null}

1299#!/bin/bash1298#!/bin/bash


1320 Setup1319 Setup

1321</h3>1320</h3>

1322 1321 

1323`--init-only`로 Claude Code를 실행하거나, `-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless)에서 `--init` 또는 `--maintenance`로 실행할 때만 발생합니다. 일반 시작 시에는 발생하지 않습니다. 일반 세션 시작과 별도로 CI나 스크립트에서 명시적으로 트리거하는 일회성 의존성 설치나 예약된 정리 작업에 사용합니다. 세션별 초기화에는 대신 [SessionStart](#sessionstart)를 사용합니다.1322`--init-only`로 Claude Code를 실행하거나, `-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless)에서 `--init` 또는 `--maintenance`로 실행할 때만 발생합니다. 일반 시작 시에는 발생하지 않습니다. 일반 세션 시작과 별도로 CI나 스크립트에서 명시적으로 트리거하는 일회성 의존성 설치나 예약된 정리에 사용하세요. 세션별 초기화에는 대신 [SessionStart](#sessionstart)를 사용하세요.

1324 1323 

1325matcher 값은 훅을 트리거한 CLI 플래그에 해당합니다.1324matcher 값은 훅을 트리거한 CLI 플래그에 해당합니다:

1326 1325 

1327| Matcher | 발생 시점 |1326| Matcher | 발생 시점 |

1328| :- | :- |1327| :- | :- |

1329| `init` | `claude --init-only` 또는 `claude -p --init` |1328| `init` | `claude --init-only` 또는 `claude -p --init` |

1330| `maintenance` | `claude -p --maintenance` |1329| `maintenance` | `claude -p --maintenance` |

1331 1330 

1332`claude --init-only`를 실행하면 Claude Code는 Setup 훅과 `startup` matcher를 사용하는 `SessionStart` 훅을 실행한 다음 대화를 시작하지 않고 종료합니다.1331`claude --init-only`를 실행하면 Claude Code는 Setup 훅과 `startup` matcher를 사용하는 `SessionStart` 훅을 실행한 다음, 대화를 시작하지 않고 종료합니다.

1333 1332 

1334`-p`로 대화를 시작하거나 계속하는 경우 프롬프트도 인수로 제공하거나 stdin으로 파이프해야 합니다. `SessionStart` 훅이 [`initialUserMessage`](#sessionstart-decision-control)를 제공하거나 [지연된 도구 호출](#defer-a-tool-call-for-later)이 있는 세션을 재개하는 경우에는 프롬프트를 생략할 수 있습니다.1333`-p`로 대화를 시작하거나 계속할 때는 인수로 또는 stdin 파이프를 통해 프롬프트도 제공해야 합니다. `SessionStart` 훅이 [`initialUserMessage`](#sessionstart-decision-control)를 제공하거나 [지연된 도구 호출](#defer-a-tool-call-for-later)이 있는 세션을 재개할 때는 프롬프트를 생략할 수 있습니다.

1335 1334 

1336성공하면 `--init-only`는 터미널에 아무것도 출력하지 않습니다. 훅이 실행되었는지 확인하려면 `<path>`를 로그 파일 위치로 바꿔 `claude --debug-file <path> --init-only`로 시작한 다음, 로그에서 Setup 및 SessionStart 훅 항목을 확인합니다.1335성공하면 `--init-only`는 터미널에 아무것도 출력하지 않습니다. 훅이 실행되었는지 확인하려면 `<path>`를 로그 파일 위치로 바꿔 `claude --debug-file <path> --init-only`로 시작한 다음, 로그에서 Setup 및 SessionStart 훅 항목을 확인하세요.

1337 1336 

1338Setup은 매번 실행 시 발생하지 않으므로, 의존성 설치가 필요한 플러그인은 Setup에만 의존할 수 없습니다. 실용적인 패턴은 처음 사용할 때 의존성을 확인하고 없으면 설치하는 것입니다. 예를 들어 훅이나 스킬이 `${CLAUDE_PLUGIN_DATA}/node_modules`가 있는지 확인하고 없으면 `npm install`을 실행할 수 있습니다. 설치된 의존성을 저장할 위치는 [영구 데이터 디렉터리](/docs/ko/plugins/components#path-variables-and-persistent-data)를 참조하세요. 마켓플레이스를 통해 플러그인을 배포하는 경우에는 이 패턴이 필요하지 않을 수 있습니다. Claude Code는 플러그인을 캐시할 때 [적격한 Node.js 패키지 의존성을 자동으로 설치](/docs/ko/plugins/loading#node-js-package-dependencies)합니다.1337Setup은 모든 실행에서 발생하는 것이 아니므로, 의존성 설치가 필요한 플러그인은 Setup에만 의존할 수 없습니다. 실용적인 패턴은 처음 사용할 때 의존성을 확인하고 없으면 설치하는 것입니다. 예를 들어 `${CLAUDE_PLUGIN_DATA}/node_modules`가 있는지 테스트하고 없으면 `npm install`을 실행하는 훅이나 스킬을 사용할 수 있습니다. 설치된 의존성을 저장할 위치는 [영구 데이터 디렉터리](/docs/ko/plugins/components#path-variables-and-persistent-data)를 참조하세요. 마켓플레이스를 통해 플러그인을 배포한다면 이 패턴이 필요하지 않을 수 있습니다. Claude Code는 플러그인을 캐시할 때 [적격한 Node.js 패키지 의존성을 자동으로 설치](/docs/ko/plugins/loading#node-js-package-dependencies)합니다.

1339 1338 

1340<h4 id="setup-input">1339<h4 id="setup-input">

1341 Setup 입력1340 Setup 입력

1342</h4>1341</h4>

1343 1342 

1344[공통 입력 필드](#common-input-fields) 외에도 Setup 훅은 `"init"` 또는 `"maintenance"`로 설정된 `trigger` 필드를 수신합니다.1343[공통 입력 필드](#common-input-fields) 외에도 Setup 훅은 `"init"` 또는 `"maintenance"`로 설정된 `trigger` 필드를 받습니다:

1345 1344 

1346```json theme={null}1345```json theme={null}

1347{1346{


1357 Setup 결정 제어1356 Setup 결정 제어

1358</h4>1357</h4>

1359 1358 

1360Setup 훅은 차단할 수 없으며, 종료 코드와 관계없이 실행이 계속됩니다. 모든 종료 코드에서 Claude Code는 `systemMessage`, `continue`, `hookSpecificOutput.additionalContext` 같은 Setup 훅의 [JSON 출력 필드](#json-output)를 버립니다. `-p`를 사용하는 경우 Setup 훅의 stdout, stderr, 종료 코드는 `--output-format stream-json --verbose`로 실행할 때만 실행 출력에 [`hook_response` 이벤트](/docs/ko/headless#read-session-metadata)로 나타납니다.1359Setup 훅은 차단할 수 없으며, 어떤 종료 코드에서도 실행이 계속됩니다. 모든 종료 코드에서 Claude Code는 `systemMessage`, `continue`, `hookSpecificOutput.additionalContext` 같은 Setup 훅의 [JSON 출력 필드](#json-output)를 버립니다. `-p` 사용 시 Setup 훅의 stdout, stderr, 종료 코드는 `--output-format stream-json --verbose`로 실행할 때만 [`hook_response` 이벤트](/docs/ko/headless#read-session-metadata)로 실행 출력에 나타납니다.

1361 1360 

1362Setup 훅은 `CLAUDE_ENV_FILE`에 액세스할 수 있습니다. [SessionStart 훅](#persist-environment-variables)과 마찬가지로 해당 파일에 쓴 변수는 세션의 후속 Bash 명령에 유지됩니다. `Setup`에서는 `type: "command"` 훅만 실행됩니다. [MCP 도구 훅 필드](#mcp-tool-hook-fields)에 설명된 대로 `Setup`의 `type: "mcp_tool"` 훅은 항상 건너뜁니다.1361Setup 훅은 `CLAUDE_ENV_FILE`에 액세스할 수 있습니다. 이 파일에 쓴 변수는 [SessionStart 훅](#persist-environment-variables)과 마찬가지로 세션의 이후 Bash 명령에 유지됩니다. `Setup`에서는 `type: "command"` 훅만 실행됩니다. `Setup`의 `type: "mcp_tool"` 훅은 [MCP 도구 훅 필드](#mcp-tool-hook-fields)에서 설명한 대로 항상 건너뜁니다.

1363 1362 

1364<h3 id="instructionsloaded">1363<h3 id="instructionsloaded">

1365 InstructionsLoaded1364 InstructionsLoaded

1366</h3>1365</h3>

1367 1366 

1368`CLAUDE.md` 또는 `.claude/rules/*.md` 파일이 컨텍스트에 로드될 때 발생합니다. 이 이벤트는 즉시 로드되는 파일에 대해 세션 시작 시 발생하고, 나중에 파일이 지연 로드될 때 다시 발생합니다. 예를 들어 Claude가 중첩된 `CLAUDE.md`가 포함된 하위 디렉터리에 액세스하거나 `paths:` frontmatter가 있는 조건부 규칙이 일치할 때입니다. 이 훅은 차단이나 결정 제어를 지원하지 않습니다. 관찰 가능성을 위해 비동기적으로 실행됩니다.1367`CLAUDE.md` 또는 `.claude/rules/*.md` 파일이 컨텍스트에 로드될 때 발생합니다. 이 이벤트는 즉시 로드되는 파일에 대해 세션 시작 시 발생하고, 파일이 지연 로드될 때 나중에 다시 발생합니다. 예를 들어 Claude가 중첩된 `CLAUDE.md`가 있는 하위 디렉터리에 액세스하거나 `paths:` frontmatter가 있는 조건부 규칙이 일치할 때입니다. 이 훅은 차단이나 결정 제어를 지원하지 않으며, 관찰 가능성을 위해 비동기적으로 실행됩니다.

1369 1368 

1370이 이벤트는 Claude가 **Project instructions** 설정을 통해 [`AGENTS.md`를 직접 읽을](/docs/ko/memory#agents-md) 때는 발생하지 않습니다. `CLAUDE.md`가 `AGENTS.md`를 가져오는 경우에는 다른 가져온 파일과 마찬가지로 `load_reason`이 `include`로 설정되어 발생하며, `CLAUDE.md`가 해당 파일에 대한 심볼릭 링크인 경우에는 일반적인 `CLAUDE.md` 로드로 발생합니다.1369이 이벤트는 Claude가 **Project instructions** 설정을 통해 [`AGENTS.md`를 직접 읽을](/docs/ko/memory#agents-md) 때는 발생하지 않습니다. `CLAUDE.md`가 `AGENTS.md`를 가져올 때는 다른 가져온 파일과 마찬가지로 `load_reason`이 `include`로 설정된 상태로 발생하며, `CLAUDE.md`가 해당 파일에 대한 심볼릭 링크일 때는 일반 `CLAUDE.md` 로드로 발생합니다.

1371 1370 

1372matcher는 `load_reason`에 대해 실행됩니다. 예를 들어 세션 시작 시 로드된 파일에 대해서만 발생시키려면 `"matcher": "session_start"`를, 지연 로드에 대해서만 발생시키려면 `"matcher": "path_glob_match|nested_traversal"`을 사용합니다.1371matcher는 `load_reason`에 대해 실행됩니다. 예를 들어 세션 시작 시 로드된 파일에만 발생시키려면 `"matcher": "session_start"`를, 지연 로드에만 발생시키려면 `"matcher": "path_glob_match|nested_traversal"`을 사용하세요.

1373 1372 

1374<h4 id="instructionsloaded-input">1373<h4 id="instructionsloaded-input">

1375 InstructionsLoaded 입력1374 InstructionsLoaded 입력

1376</h4>1375</h4>

1377 1376 

1378[공통 입력 필드](#common-input-fields) 외에도 InstructionsLoaded 훅은 다음 필드를 수신합니다.1377[공통 입력 필드](#common-input-fields) 외에도 InstructionsLoaded 훅은 다음 필드를 받습니다:

1379 1378 

1380| 필드 | 설명 |1379| 필드 | 설명 |

1381| :- | :- |1380| :- | :- |

1382| `file_path` | 로드된 지침 파일의 절대 경로 |1381| `file_path` | 로드된 지침 파일의 절대 경로 |

1383| `memory_type` | 파일의 범위: `"User"`, `"Project"`, `"Local"` 또는 `"Managed"` |1382| `memory_type` | 파일의 범위: `"User"`, `"Project"`, `"Local"` 또는 `"Managed"` |

1384| `load_reason` | 파일이 로드된 이유: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` 또는 `"compact"`. `"compact"` 값은 압축 이벤트 후 지침 파일이 다시 로드될 때 발생합니다 |1383| `load_reason` | 파일이 로드된 이유: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` 또는 `"compact"`. `"compact"` 값은 압축 이벤트 후 지침 파일이 다시 로드될 때 발생합니다 |

1385| `globs` | 파일의 `paths:` frontmatter에 있는 경로 glob 패턴(있는 경우). `path_glob_match` 로드에만 포함됩니다 |1384| `globs` | 파일의 `paths:` frontmatter에 있는 경로 glob 패턴(있는 경우). `path_glob_match` 로드에만 존재합니다 |

1386| `trigger_file_path` | 지연 로드의 경우, 액세스하여 이 로드를 트리거한 파일의 경로 |1385| `trigger_file_path` | 지연 로드의 경우, 액세스하여 이 로드를 트리거한 파일의 경로 |

1387| `parent_file_path` | `include` 로드의 경우, 이 파일을 포함한 상위 지침 파일의 경로 |1386| `parent_file_path` | `include` 로드의 경우, 이 파일을 포함한 상위 지침 파일의 경로 |

1388 1387 


1402 InstructionsLoaded 결정 제어1401 InstructionsLoaded 결정 제어

1403</h4>1402</h4>

1404 1403 

1405InstructionsLoaded 훅에는 결정 제어가 없습니다. 지침 로드를 차단하거나 수정할 수 없습니다. Claude Code는 `systemMessage`, `continue` 같은 [JSON 출력 필드](#json-output)를 버립니다. 이 이벤트는 감사 로깅, 규정 준수 추적 또는 관측 가능성에 사용합니다.1404InstructionsLoaded 훅에는 결정 제어가 없습니다. 지침 로드를 차단하거나 수정할 수 없습니다. Claude Code는 `systemMessage`, `continue` 같은 [JSON 출력 필드](#json-output)를 버립니다. 이 이벤트는 감사 로깅, 규정 준수 추적 또는 관찰 가능성에 사용하세요.

1406 1405 

1407<h3 id="userpromptsubmit">1406<h3 id="userpromptsubmit">

1408 UserPromptSubmit1407 UserPromptSubmit

1409</h3>1408</h3>

1410 1409 

1411프롬프트가 제출된 후 Claude가 처리하기 전에 실행됩니다. 이를 통해1410프롬프트가 제출될 때, Claude가 처리하기 전에 실행됩니다. 이를 통해

1412프롬프트/대화를 기반으로 추가 컨텍스트를 추가하거나, 프롬프트를 검증하거나,1411프롬프트/대화를 기반으로 추가 컨텍스트를 추가하거나, 프롬프트를 검증하거나,

1413특정 유형의 프롬프트를 차단할 수 있습니다.1412특정 유형의 프롬프트를 차단할 수 있습니다.

1414 1413 

1415`UserPromptSubmit` 훅은 사용자가 입력한 프롬프트에서만 발생하는 것이 아닙니다. Claude Code는 다음 경우에도 이 훅을 실행합니다.1414`UserPromptSubmit` 훅은 직접 입력한 프롬프트에서만 발생하는 것이 아닙니다. Claude Code는 다음 경우에도 이 훅을 실행합니다:

1416 1415 

1417* `/loop` 반복을 포함해 [예약 작업](/docs/ko/scheduled-tasks)이 실행될 때1416* [예약 작업](/docs/ko/scheduled-tasks)이 실행될 때(`/loop` 반복 포함)

1418* [백그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)가 자신을 시작한 세션에 결과를 보고할 때1417* [백그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)가 자신을 시작한 세션에 결과를 보고할 때

1419* [다른 세션이 보낸 메시지](/docs/ko/cross-session-messaging)가 메인 대화에 도착할 때1418* [다른 세션이 기본 대화로 메시지를 보낼](/docs/ko/cross-session-messaging) 때

1420 1419 

1421`UserPromptSubmit` 훅의 기본 타임아웃은 `command`, `http`, `mcp_tool` 유형에 대해 30초로, 대부분의 다른 이벤트에서 이 유형들의 기본값인 600초보다 짧습니다. 이 훅은 모든 프롬프트 전에 실행되고 완료될 때까지 모델 처리를 차단하므로, 멈춘 훅은 세션을 지연시킵니다. 훅에 더 많은 시간이 필요하면 훅 항목에서 `timeout` 필드를 설정합니다.1420`UserPromptSubmit` 훅은 `command`, `http`, `mcp_tool` 유형의 기본 타임아웃이 30초로, 대부분의 다른 이벤트에서 이러한 유형의 기본값인 600초보다 짧습니다. 이 훅은 모든 프롬프트 전에 실행되고 완료될 때까지 모델 처리를 차단하므로, 멈춘 훅은 세션을 정지시킵니다. 훅에 더 많은 시간이 필요하면 훅 항목에서 `timeout` 필드를 설정하세요.

1422 1421 

1423[`async: true`](#run-hooks-in-the-background)로 실행하는 command 훅을 제외하면, 타임아웃에 도달한 `UserPromptSubmit` command, HTTP 또는 MCP 도구 훅은 취소되며 `additionalContext`를 포함한 출력이 버려집니다. 프롬프트는 해당 컨텍스트 없이 Claude에 전달됩니다. 트랜스크립트에는 훅 이름, 발생한 타임아웃, 출력이 버려졌다는 사실을 알리는 알림이 표시됩니다.1422[`async: true`](#run-hooks-in-the-background)로 실행하는 command 훅을 제외하고, 타임아웃에 도달한 `UserPromptSubmit` command, HTTP 또는 MCP 도구 훅은 취소되며 `additionalContext`를 포함한 출력은 버려집니다. 프롬프트는 해당 컨텍스트 없이 여전히 Claude에 전달됩니다. 트랜스크립트에는 훅 이름, 발생한 타임아웃, 출력이 버려졌다는 사실을 알리는 알림이 표시됩니다.

1424 1423 

1425타임아웃에 도달한 `UserPromptSubmit`의 [Agent SDK 콜백 훅](/docs/ko/agent-sdk/hooks)은 훅 이름과 타임아웃을 명시한 메시지와 함께 프롬프트를 차단합니다. 해당 위치의 콜백은 실패 시 열림(fail open) 상태가 되어서는 안 되는 정책 게이트 역할을 할 수 있기 때문입니다. 세션은 계속됩니다. v2.1.208 이전에는 해당 이벤트에서 콜백 타임아웃이 발생하면 실행 오류와 함께 턴이 종료되었습니다.1424`UserPromptSubmit`의 [Agent SDK 콜백 훅](/docs/ko/agent-sdk/hooks)이 타임아웃에 도달하면 훅과 타임아웃을 명시하는 메시지와 함께 프롬프트가 차단됩니다. 이 위치의 콜백은 실패 시 열려서는 안 되는(fail open) 정책 게이트 역할을 할 수 있기 때문입니다. 세션은 계속됩니다. v2.1.208 이전에는 이 이벤트에서 콜백 타임아웃이 발생하면 실행 오류와 함께 턴이 종료되었습니다.

1426 1425 

1427<h4 id="userpromptsubmit-input">1426<h4 id="userpromptsubmit-input">

1428 UserPromptSubmit 입력1427 UserPromptSubmit 입력

1429</h4>1428</h4>

1430 1429 

1431[공통 입력 필드](#common-input-fields) 외에도 UserPromptSubmit 훅은 제출된 텍스트가 담긴 `prompt` 필드를 받습니다. `[Pasted text #N]` 자리 표시자로 축소된 붙여 넣은 콘텐츠는 제자리에 펼쳐진 상태로 전달됩니다. Claude Code가 [붙여 넣은 텍스트를 Claude용으로 표시하는](/docs/ko/terminal-config#how-claude-treats-pasted-text) 세션에서는 펼쳐진 콘텐츠가 `<pasted_content id="…">` 줄과 `</pasted_content id="…">` 줄 사이에 위치하므로, 훅이 프롬프트를 파싱한다면 해당 줄을 고려하세요.1430[공통 입력 필드](#common-input-fields) 외에도 UserPromptSubmit 훅은 제출된 텍스트가 담긴 `prompt` 필드를 받습니다. `[Pasted text #N]` 자리 표시자로 축소된 붙여넣은 콘텐츠는 제자리에 펼쳐진 상태로 전달됩니다. Claude Code가 [Claude를 위해 붙여넣은 텍스트를 표시하는](/docs/ko/terminal-config#how-claude-treats-pasted-text) 세션에서는 펼쳐진 콘텐츠가 `<pasted_content id="…">` 줄과 `</pasted_content id="…">` 줄 사이에 위치하므로, 훅이 프롬프트를 파싱한다면 이 줄을 고려하세요.

1432 1431 

1433UserPromptSubmit 훅은 세션에 사용자 지정 제목이 있을 때 `session_title`도 수신하며, 의미는 [SessionStart의 `session_title` 필드](#sessionstart-input)와 같습니다.1432UserPromptSubmit 훅은 세션에 사용자 지정 제목이 있을 때 `session_title`도 받으며, 의미는 [SessionStart `session_title` 필드](#sessionstart-input)와 같습니다.

1434 1433 

1435```json theme={null}1434```json theme={null}

1436{1435{


1449 1448 

1450`UserPromptSubmit` 훅은 제출된 프롬프트의 처리 여부를 제어하고 컨텍스트를 추가할 수 있습니다. 모든 [JSON 출력 필드](#json-output)를 사용할 수 있습니다.1449`UserPromptSubmit` 훅은 제출된 프롬프트의 처리 여부를 제어하고 컨텍스트를 추가할 수 있습니다. 모든 [JSON 출력 필드](#json-output)를 사용할 수 있습니다.

1451 1450 

1452종료 코드 0에서 대화에 컨텍스트를 추가하는 방법은 두 가지입니다.1451종료 코드 0에서 대화에 컨텍스트를 추가하는 방법은 두 가지입니다:

1453 1452 

1454* **일반 텍스트 stdout**: Claude Code는 [일반 텍스트로 처리하는](#exit-code-0) stdout을 Claude의 컨텍스트에 추가합니다1453* **일반 텍스트 stdout**: Claude Code는 [일반 텍스트로 처리하는](#exit-code-0) stdout을 Claude의 컨텍스트에 추가합니다

1455* **`additionalContext`가 포함된 JSON**: 더 세밀하게 제어하려면 아래 JSON 형식을 사용합니다. `additionalContext` 필드가 컨텍스트로 추가됩니다1454* **`additionalContext`가 포함된 JSON**: 더 세밀하게 제어하려면 아래 JSON 형식을 사용하세요. `additionalContext` 필드가 컨텍스트로 추가됩니다

1456 1455 

1457어느 채널도 트랜스크립트에 보이는 항목을 생성하지 않습니다. 일반 stdout과 `additionalContext` 값은 각각 훅 이름으로 시작하는 시스템 리마인더로 주입되며, Claude는 둘 다 읽습니다. 전달 여부를 확인하려면 [디버그 로그](#debug-hooks)를 확인합니다.1456두 채널 모두 트랜스크립트에 표시되는 항목을 만들지 않습니다. 일반 stdout과 `additionalContext` 값은 각각 훅 이름으로 시작하는 시스템 리마인더로 주입되며, Claude는 둘 다 읽습니다. 전달 여부를 확인하려면 [디버그 로그](#debug-hooks)를 확인하세요.

1458 1457 

1459프롬프트를 차단하려면 `decision`이 `"block"`으로 설정된 JSON 객체를 반환합니다.1458프롬프트를 차단하려면 `decision`을 `"block"`으로 설정한 JSON 객체를 반환하세요:

1460 1459 

1461| 필드 | 설명 |1460| 필드 | 설명 |

1462| :- | :- |1461| :- | :- |

1463| `decision` | `"block"`은 프롬프트가 Claude에 도달하기 전에 중지합니다. 프롬프트 진행을 허용하려면 생략합니다 |1462| `decision` | `"block"`은 프롬프트가 Claude에 도달하기 전에 중지합니다. 프롬프트 진행을 허용하려면 생략하세요 |

1464| `reason` | `decision`이 `"block"`일 때 사용자에게 표시됩니다. 컨텍스트에는 추가되지 않습니다 |1463| `reason` | `decision`이 `"block"`일 때 사용자에게 표시됩니다. 컨텍스트에는 추가되지 않습니다 |

1465| `additionalContext` | 제출된 프롬프트와 함께 Claude의 컨텍스트에 추가되는 문자열. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |1464| `additionalContext` | 제출된 프롬프트와 함께 Claude의 컨텍스트에 추가되는 문자열. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |

1466| `sessionTitle` | 세션 제목을 설정합니다. 프롬프트 내용을 기반으로 세션 이름을 자동으로 지정하는 데 사용합니다 |1465| `sessionTitle` | 세션 제목을 설정합니다. 프롬프트 내용을 기반으로 세션 이름을 자동 지정하는 데 사용합니다 |

1467| `suppressOriginalPrompt` | 훅이 프롬프트를 차단할 때 `true`이면 차단 메시지에서 프롬프트 텍스트를 제외합니다. [차단된 프롬프트가 남기는 것](#what-a-blocked-prompt-leaves-behind)을 참조하세요 |1466| `suppressOriginalPrompt` | 훅이 프롬프트를 차단할 때 `true`이면 차단 메시지에서 프롬프트 텍스트를 제외합니다. [차단된 프롬프트가 남기는 것](#what-a-blocked-prompt-leaves-behind)을 참조하세요 |

1468 1467 

1469종료 코드 2로 차단하는 훅은 `reason`과 같은 방식으로 전달됩니다. 차단 메시지에 stderr 텍스트가 사용자에게 표시되며, 컨텍스트에는 추가되지 않습니다.1468종료 코드 2로 차단하는 훅은 `reason`과 같은 방식으로 처리됩니다. 차단 메시지는 stderr 텍스트를 사용자에게 표시하며, 이 텍스트는 컨텍스트에 추가되지 않습니다.

1470 1469 

1471```json theme={null}1470```json theme={null}

1472{1471{


1485 차단된 프롬프트가 남기는 것1484 차단된 프롬프트가 남기는 것

1486</h4>1485</h4>

1487 1486 

1488차단된 프롬프트는 Claude에 도달하지 않지만, 그 텍스트가 모든 곳에서 제거되는 것은 아닙니다. 기본적으로 사용자에게 표시되는 차단 메시지는 `Original prompt:` 뒤에 제출된 텍스트가 이어지는 형태로 끝나며, Claude Code는 이 메시지를 디스크의 세션 트랜스크립트 파일에 씁니다. 메시지에서 텍스트를 제외하려면 `hookSpecificOutput` 안에 `"suppressOriginalPrompt": true`가 포함된 JSON을 출력하십시오. 이는 훅이 `decision: "block"`으로 차단하든 종료 코드 2로 차단하든 작동합니다.1487차단된 프롬프트는 Claude에 도달하지 않지만, 그 텍스트가 모든 곳에서 제거되는 것은 아닙니다. 기본적으로 사용자에게 표시되는 차단 메시지는 `Original prompt:` 뒤에 제출된 텍스트가 오는 형태로 끝나며, Claude Code는 이 메시지를 디스크의 세션 트랜스크립트 파일에 씁니다. 메시지에서 텍스트를 제외하려면 `hookSpecificOutput` 안에 `"suppressOriginalPrompt": true`가 포함된 JSON을 출력하세요. 이는 훅이 `decision: "block"`으로 차단하든 종료 코드 2로 차단하든 작동합니다.

1489 1488 

1490`suppressOriginalPrompt`는 차단 메시지만 변경합니다. 제출된 텍스트는 세션 트랜스크립트나 프롬프트 기록 같은 로컬 파일에 여전히 나타날 수 있으므로, 차단 훅은 비밀 정보를 디스크에 남기지 않는 방법이 아닙니다. 이러한 파일을 제한하거나 제거하려면 [일반 텍스트 스토리지](/docs/ko/claude-directory#plaintext-storage) 및 [로컬 데이터 지우기](/docs/ko/claude-directory#clear-local-data)를 참조하세요.1489`suppressOriginalPrompt`는 차단 메시지만 변경합니다. 제출된 텍스트는 세션 트랜스크립트나 프롬프트 기록 같은 로컬 파일에 여전히 나타날 수 있으므로, 차단 훅은 비밀 정보를 디스크에 남기지 않는 방법이 아닙니다. 이러한 파일을 제한하거나 제거하려면 [일반 텍스트 저장](/docs/ko/claude-directory#plaintext-storage) 및 [로컬 데이터 지우기](/docs/ko/claude-directory#clear-local-data)를 참조하세요.

1491 1490 

1492<h3 id="userpromptexpansion">1491<h3 id="userpromptexpansion">

1493 UserPromptExpansion1492 UserPromptExpansion

1494</h3>1493</h3>

1495 1494 

1496사용자가 입력한 명령이 Claude에 도달하기 전에 프롬프트로 확장될 때 실행됩니다. 특정 명령의 직접 호출을 차단하거나, 특정 스킬에 컨텍스트를 주입하거나, 사용자가 호출하는 명령을 로그에 기록하는 데 사용합니다. 예를 들어 `deploy`와 일치하는 훅은 승인 파일이 없으면 `/deploy`를 차단할 수 있고, 리뷰 스킬과 일치하는 훅은 팀의 리뷰 체크리스트를 `additionalContext`로 추가할 수 있습니다.1495사용자가 입력한 명령이 Claude에 도달하기 전에 프롬프트로 확장될 때 실행됩니다. 특정 명령의 직접 호출을 차단하거나, 특정 스킬에 컨텍스트를 주입하거나, 사용자가 호출하는 명령을 로그에 기록하는 데 사용하세요. 예를 들어 `deploy`와 일치하는 훅은 승인 파일이 없으면 `/deploy`를 차단할 수 있고, 리뷰 스킬과 일치하는 훅은 팀의 리뷰 체크리스트를 `additionalContext`로 추가할 수 있습니다.

1497 1496 

1498이 이벤트는 `PreToolUse`가 다루지 않는 경로를 다룹니다. `Skill` 도구와 일치하는 `PreToolUse` 훅은 Claude가 도구를 호출할 때만 발생하지만, `/skillname`을 직접 입력하면 `PreToolUse`를 거치지 않습니다. `UserPromptExpansion`은 이 직접 경로에서 발생합니다.1497이 이벤트는 `PreToolUse`가 다루지 않는 경로를 다룹니다. `Skill` 도구와 일치하는 `PreToolUse` 훅은 Claude가 도구를 호출할 때만 발생하지만, `/skillname`을 직접 입력하면 `PreToolUse`를 우회합니다. `UserPromptExpansion`은 이 직접 경로에서 발생합니다.

1499 1498 

1500`command_name`에 대해 일치시킵니다. 모든 프롬프트 유형 명령에서 발생시키려면 matcher를 비워 둡니다.1499`command_name`에 대해 매칭합니다. 모든 프롬프트 유형 명령에서 발생시키려면 matcher를 비워 두세요.

1501 1500 

1502<h4 id="userpromptexpansion-input">1501<h4 id="userpromptexpansion-input">

1503 UserPromptExpansion 입력1502 UserPromptExpansion 입력

1504</h4>1503</h4>

1505 1504 

1506[공통 입력 필드](#common-input-fields) 외에도 UserPromptExpansion 훅은 `expansion_type`, `command_name`, `command_args`, `command_source`, 그리고 원래의 `prompt` 문자열을 수신합니다. `expansion_type` 필드는 스킬 및 사용자 지정 명령의 경우 `slash_command`, MCP 서버 프롬프트의 경우 `mcp_prompt`입니다.1505[공통 입력 필드](#common-input-fields) 외에도 UserPromptExpansion 훅은 `expansion_type`, `command_name`, `command_args`, `command_source`, 원래 `prompt` 문자열을 받습니다. `expansion_type` 필드는 스킬 및 사용자 지정 명령의 경우 `slash_command`, MCP 서버 프롬프트의 경우 `mcp_prompt`입니다.

1507 1506 

1508```json theme={null}1507```json theme={null}

1509{1508{


1528 1527 

1529| 필드 | 설명 |1528| 필드 | 설명 |

1530| :- | :- |1529| :- | :- |

1531| `decision` | `"block"`은 명령이 확장되지 않도록 합니다. 진행을 허용하려면 생략합니다 |1530| `decision` | `"block"`은 명령이 확장되지 않도록 합니다. 진행을 허용하려면 생략하세요 |

1532| `reason` | `decision`이 `"block"`일 때 사용자에게 표시됩니다 |1531| `reason` | `decision`이 `"block"`일 때 사용자에게 표시됩니다 |

1533| `additionalContext` | 확장된 프롬프트와 함께 Claude의 컨텍스트에 추가되는 문자열. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |1532| `additionalContext` | 확장된 프롬프트와 함께 Claude의 컨텍스트에 추가되는 문자열. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |

1534 1533 

1535종료 코드 2로 차단하는 훅은 `reason`과 같은 방식으로 전달됩니다. 차단 메시지에 stderr 텍스트가 사용자에게 표시됩니다.1534종료 코드 2로 차단하는 훅은 `reason`과 같은 방식으로 처리됩니다. 차단 메시지는 stderr 텍스트를 사용자에게 표시합니다.

1536 1535 

1537```json theme={null}1536```json theme={null}

1538{1537{


1549 MessageDisplay1548 MessageDisplay

1550</h3>1549</h3>

1551 1550 

1552어시스턴트 메시지가 화면에 스트리밍되는 동안 실행됩니다. Claude Code는 메시지를 단계적으로 표시합니다. 새로 완성된 줄의 묶음이 렌더링될 준비가 될 때마다 훅이 해당 줄로 한 번 실행되고, Claude Code는 그 자리에 훅의 대체 텍스트를 렌더링합니다. 긴 메시지는 여러 번의 호출을 생성하며, 짧은 메시지는 한 번만 생성할 수도 있습니다.1551어시스턴트 메시지가 화면으로 스트리밍되는 동안 실행됩니다. Claude Code는 메시지를 단계적으로 표시합니다. 새로 완성된 줄의 배치가 렌더링될 준비가 될 때마다 훅이 해당 줄로 한 번 실행되고, Claude Code는 그 자리에 훅의 대체 텍스트를 렌더링합니다. 긴 메시지는 여러 번 호출되며, 짧은 메시지는 한 번만 호출될 수 있습니다.

1553 1552 

1554MessageDisplay는 다음 용도로 사용합니다.1553MessageDisplay는 다음 용도로 사용합니다:

1555 1554 

1556* 최소한의 표시를 위해 markdown 제거1555* 최소한의 표시를 위해 markdown 제거

1557* Agent SDK 애플리케이션이 사용자에게 보여 주는 텍스트 변환1556* Agent SDK 애플리케이션이 사용자에게 보여 주는 텍스트 변환

1558* Claude의 응답에서 API 키나 내부 호스트 이름 가리기1557* Claude의 응답에서 API 키나 내부 호스트 이름 삭제

1559 1558 

1560Claude Code는 훅이 반환될 때까지 각 묶음을 보류하므로 훅을 빠르게 유지해야 합니다. 훅이 실패하거나 시간 초과되면 Claude Code는 원래 텍스트를 표시합니다. 이 이벤트의 기본 타임아웃은 10초이며, 훅에 더 많은 시간이 필요하면 훅 항목에서 `timeout` 필드를 설정합니다.1559Claude Code는 훅이 반환할 때까지 각 배치를 보류하므로 훅을 빠르게 유지하세요. 훅이 실패하거나 시간 초과되면 Claude Code는 원래 텍스트를 표시합니다. 이 이벤트의 기본 타임아웃은 10초이며, 훅에 더 많은 시간이 필요하면 훅 항목에서 `timeout` 필드를 설정하세요.

1561 1560 

1562MessageDisplay는 표시 전용입니다. 대체 텍스트는 화면에 렌더링되는 내용만 변경합니다. 트랜스크립트와 Claude가 보는 내용은 원래 텍스트를 유지하므로 Claude는 대체 텍스트를 보지 않으며, verbose 모드에서는 원래 텍스트가 표시됩니다. 훅은 어시스턴트 메시지 텍스트만 수신하므로 도구 결과와 사용자가 입력하는 텍스트는 변경 없이 렌더링됩니다.1561MessageDisplay는 표시 전용입니다. 대체 텍스트는 화면에 렌더링되는 내용만 변경합니다. 트랜스크립트와 Claude가 보는 내용은 원래 텍스트를 유지하므로 Claude는 대체 텍스트를 보지 않으며, verbose 모드에서는 원래 텍스트가 표시됩니다. 훅은 어시스턴트 메시지 텍스트만 받으므로 도구 결과와 사용자가 입력한 텍스트는 변경 없이 렌더링됩니다.

1563 1562 

1564MessageDisplay는 matcher를 지원하지 않으며 텍스트를 스트리밍하는 모든 어시스턴트 메시지에서 발생합니다. 도구 호출만 있는 응답처럼 텍스트가 없는 메시지는 이 이벤트를 트리거하지 않습니다.1563MessageDisplay는 matcher를 지원하지 않으며 텍스트를 스트리밍하는 모든 어시스턴트 메시지에 대해 발생합니다. 도구 호출만 있는 응답처럼 텍스트가 없는 메시지는 이 훅을 트리거하지 않습니다.

1565 1564 

1566Agent SDK 쿼리와 `claude -p`를 포함한 비대화형 실행에서는 MessageDisplay가 줄 묶음마다가 아니라 어시스턴트 메시지마다 한 번 실행됩니다. 단일 호출은 메시지가 완료된 후 도착하며 전체 메시지 텍스트를 담습니다. `index`는 `0`, `final`은 `true`이고, `delta`에는 전체 메시지가 들어 있습니다. 각 메시지의 `delta` 텍스트를 수집하는 훅은 두 모드에서 동일한 전체 텍스트를 수신합니다.1565Agent SDK 쿼리와 `claude -p`를 포함한 비대화형 실행에서 MessageDisplay는 줄 배치마다가 아니라 어시스턴트 메시지마다 한 번 실행됩니다. 이 단일 호출은 메시지가 완료된 후 도착하며 전체 메시지 텍스트를 담습니다. `index`는 `0`, `final`은 `true`이고 `delta`에는 전체 메시지가 들어 있습니다. 각 메시지의 `delta` 텍스트를 수집하는 훅은 두 모드에서 동일한 전체 텍스트를 받습니다.

1567 1566 

1568<h4 id="messagedisplay-input">1567<h4 id="messagedisplay-input">

1569 MessageDisplay 입력1568 MessageDisplay 입력

1570</h4>1569</h4>

1571 1570 

1572[공통 입력 필드](#common-input-fields) 외에도 MessageDisplay 훅은 턴과 메시지의 식별자, 메시지 내에서 이 호출의 위치, 그리고 `delta`의 새 텍스트를 수신합니다. 묶음 경계는 텍스트가 스트리밍되는 방식에 따라 달라지므로, 줄이 특정 방식으로 묶일 것이라고 기대하기보다 `index`와 `final`을 사용하여 메시지의 진행 상황을 추적합니다.1571[공통 입력 필드](#common-input-fields) 외에도 MessageDisplay 훅은 턴과 메시지의 식별자, 메시지 내 이 호출의 위치, `delta`에 담긴 새 텍스트를 받습니다. 배치 경계는 텍스트가 스트리밍되는 방식에 따라 달라지므로, 줄이 특정 방식으로 그룹화될 것으로 기대하지 말고 `index`와 `final`을 사용해 메시지 진행 상황을 추적하세요.

1573 1572 

1574| 필드 | 설명 |1573| 필드 | 설명 |

1575| :- | :- |1574| :- | :- |

1576| `turn_id` | 현재 턴의 UUID |1575| `turn_id` | 현재 턴의 UUID |

1577| `message_id` | 표시 중인 어시스턴트 메시지의 UUID. 같은 메시지의 모든 묶음에서 동일하게 유지됩니다. API의 `msg_…` id가 아니므로 트랜스크립트 메시지 id와 연관시킬 수 없습니다 |1576| `message_id` | 표시 중인 어시스턴트 메시지의 UUID. 같은 메시지의 모든 배치에서 동일합니다. API `msg_…` id가 아니므로 트랜스크립트 메시지 id와 연관시킬 수 없습니다 |

1578| `index` | 메시지 내에서 이 묶음의 0부터 시작하는 인덱스 |1577| `index` | 메시지 내 이 배치의 0부터 시작하는 인덱스 |

1579| `final` | 메시지의 마지막 묶음에서 `true`. 각 메시지에는 정확히 하나의 마지막 묶음이 있습니다 |1578| `final` | 메시지의 마지막 배치에서 `true`. 각 메시지에는 정확히 하나의 마지막 배치가 있습니다 |

1580| `delta` | 이전 묶음 이후 새로 완성된 줄(끝의 줄바꿈 포함). 줄 중간에서 끝날 수 있는 마지막 묶음을 제외하면 항상 완전한 줄입니다. 대화형 실행에서는 메시지가 줄바꿈으로 끝나면 마지막 묶음의 delta가 비어 있으므로, 비어 있지 않은 delta가 아니라 `final`을 메시지 끝 신호로 취급해야 합니다. Agent SDK 및 `claude -p` 실행에서는 단일 호출이 전체 메시지를 담습니다 |1579| `delta` | 이전 배치 이후 새로 완성된 줄(끝의 줄바꿈 포함). 줄 중간에서 끝날 수 있는 마지막 배치를 제외하고 항상 완전한 줄입니다. 대화형 실행에서 메시지가 줄바꿈으로 끝나면 마지막 배치의 delta는 비어 있으므로, 비어 있지 않은 delta가 아니라 `final`을 메시지 종료 신호로 취급하세요. Agent SDK 및 `claude -p` 실행에서는 단일 호출에 전체 메시지가 담깁니다 |

1581 1580 

1582```json theme={null}1581```json theme={null}

1583{1582{


1597 MessageDisplay 출력1596 MessageDisplay 출력

1598</h4>1597</h4>

1599 1598 

1600모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 MessageDisplay 훅은 화면에서 delta를 대체하는 `displayContent`를 반환할 수 있습니다.1599모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 MessageDisplay 훅은 화면의 delta를 대체하는 `displayContent`를 반환할 수 있습니다:

1601 1600 

1602| 필드 | 설명 |1601| 필드 | 설명 |

1603| :- | :- |1602| :- | :- |

1604| `displayContent` | delta 대신 표시되는 텍스트. 원래 텍스트를 표시하려면 생략합니다 |1603| `displayContent` | delta 대신 표시되는 텍스트. 원래 텍스트를 표시하려면 생략하세요 |

1605 1604 

1606MessageDisplay 훅에는 결정 제어가 없습니다. 메시지를 차단하거나 트랜스크립트에 저장되는 내용 또는 Claude에 전송되는 내용을 변경할 수 없습니다. Claude Code는 JSON 출력의 `displayContent`에 따라 동작하며 `systemMessage`와 `continue`는 버립니다.1605MessageDisplay 훅에는 결정 제어가 없습니다. 메시지를 차단하거나, 트랜스크립트에 저장되거나 Claude에 전송되는 내용을 변경할 수 없습니다. Claude Code는 JSON 출력의 `displayContent`에 따라 동작하고 `systemMessage`와 `continue`는 버립니다.

1607 1606 

1608다음 예시는 일반 텍스트 표시를 위해 Claude의 응답에서 markdown 서식을 제거합니다. 스크립트는 stdin에서 각 묶음을 읽고, `delta`에서 굵게 표시 기호와 인라인 코드 백틱을 제거한 다음, 결과를 `displayContent`로 반환합니다.1607이 예시는 일반 텍스트 표시를 위해 Claude의 응답에서 markdown 서식을 제거합니다. 스크립트는 stdin에서 각 배치를 읽고, `delta`에서 굵게 표시 기호와 인라인 코드 백틱을 제거한 다음, 결과를 `displayContent`로 반환합니다.

1609 1608 

1610<Tabs>1609<Tabs>

1611 <Tab title="macOS/Linux">1610 <Tab title="macOS/Linux">

1612 설정 파일에서 이벤트에 대한 command 훅을 등록합니다.1611 설정 파일에 이 이벤트에 대한 command 훅을 등록하세요:

1613 1612 

1614 ```json theme={null}1613 ```json theme={null}

1615 {1614 {


1629 }1628 }

1630 ```1629 ```

1631 1630 

1632 이 스크립트를 프로젝트의 `.claude/hooks/plain-display.sh`에 저장하고 `chmod +x`로 실행 가능하게 만듭니다.1631 이 스크립트를 프로젝트의 `.claude/hooks/plain-display.sh`에 저장하고 `chmod +x`로 실행 가능하게 만드세요:

1633 1632 

1634 ```bash theme={null}1633 ```bash theme={null}

1635 #!/bin/bash1634 #!/bin/bash


1638 </Tab>1637 </Tab>

1639 1638 

1640 <Tab title="Windows (PowerShell)">1639 <Tab title="Windows (PowerShell)">

1641 PowerShell을 통해 스크립트를 실행하는 command 훅을 등록합니다.1640 PowerShell을 통해 스크립트를 실행하는 command 훅을 등록하세요:

1642 1641 

1643 ```json theme={null}1642 ```json theme={null}

1644 {1643 {


1664 }1663 }

1665 ```1664 ```

1666 1665 

1667 `-NoProfile` 플래그는 PowerShell 프로필 로드를 건너뛰어 훅이 빠르게 시작되도록 하며, `-ExecutionPolicy Bypass`는 PowerShell이 로컬 스크립트 파일을 실행할 수 있도록 합니다.1666 `-NoProfile` 플래그는 PowerShell 프로필 로드를 건너뛰어 훅이 빠르게 시작되도록 하고, `-ExecutionPolicy Bypass`는 PowerShell이 로컬 스크립트 파일을 실행할 수 있게 합니다.

1668 1667 

1669 이 스크립트를 프로젝트의 `.claude/hooks/plain-display.ps1`에 저장합니다.1668 이 스크립트를 프로젝트의 `.claude/hooks/plain-display.ps1`에 저장하세요:

1670 1669 

1671 ```powershell theme={null}1670 ```powershell theme={null}

1672 $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json1671 $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json


1681 </Tab>1680 </Tab>

1682</Tabs>1681</Tabs>

1683 1682 

1684markdown이 없는 묶음은 변경 없이 통과합니다. 예를 들어 `jq`가 없어서 스크립트가 실패하면 Claude Code는 원래 텍스트를 표시하며, 실패는 세션이 아닌 [디버그 출력](#debug-hooks)에만 기록됩니다.1683markdown이 없는 배치는 변경 없이 통과합니다. 예를 들어 `jq`가 없어 스크립트가 실패하면 Claude Code는 원래 텍스트를 표시하고, 실패는 세션이 아닌 [디버그 출력](#debug-hooks)에만 기록합니다.

1685 1684 

1686<h3 id="pretooluse">1685<h3 id="pretooluse">

1687 PreToolUse1686 PreToolUse

1688</h3>1687</h3>

1689 1688 

1690Claude가 도구 매개변수를 생성한 후, 도구 호출을 처리하기 전에 실행됩니다. `EndConversation`을 제외한 모든 도구 이름에 대해 일치시킵니다. 여기에는 `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion`, `ExitPlanMode` 같은 기본 제공 도구와 모든 [MCP 도구 이름](#match-mcp-tools)이 포함됩니다.1689Claude가 도구 매개변수를 생성한 후, 도구 호출을 처리하기 전에 실행됩니다. `EndConversation`을 제외한 모든 도구 이름에 대해 매칭합니다. 여기에는 `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion`, `ExitPlanMode` 같은 기본 제공 도구와 모든 [MCP 도구 이름](#match-mcp-tools)이 포함됩니다.

1691 1690 

1692무엇이 작성했든 특정 파일이 디스크에서 변경될 때 훅을 실행하려면, 파일 편집 도구를 이름으로 일치시키는 대신 [FileChanged](#filechanged)를 사용합니다. PreToolUse와 달리 Claude Code는 변경 후에 FileChanged 훅을 실행하며, 이 훅에는 결정 제어가 없으므로 쓰기를 차단할 수 없습니다.1691무엇이 파일을 썼는지와 관계없이 특정 파일이 디스크에서 변경될 때 훅을 실행하려면, 파일 편집 도구를 이름으로 매칭하는 대신 [FileChanged](#filechanged)를 사용하세요. PreToolUse와 달리 Claude Code는 변경 후에 FileChanged 훅을 실행하며, 이 훅에는 결정 제어가 없으므로 쓰기를 차단할 수 없습니다.

1693 1692 

1694<Warning>1693<Warning>

1695 PreToolUse는 Claude가 도구를 호출할 때만 실행됩니다. [프롬프트에서 `@`로 참조하는](/docs/ko/common-workflows#reference-files-and-directories) 파일은 도구 호출 없이 추가됩니다. Claude Code는 프롬프트를 구성하면서 파일 내용을 삽입하므로, `Read`와 일치하는 훅을 포함하여 어떤 PreToolUse 훅도 이 파일에 대해 발생하지 않습니다. `@` 참조에서 특정 경로를 차단하려면 대신 [`Read` 거부 규칙](/docs/ko/permissions#read-and-edit)을 사용합니다.1694 PreToolUse는 Claude가 도구를 호출할 때만 실행됩니다. [프롬프트에서 `@`로 참조하는](/docs/ko/common-workflows#reference-files-and-directories) 파일은 도구 호출 없이 추가됩니다. Claude Code는 프롬프트를 구성하는 동안 해당 파일의 내용을 삽입하므로, `Read`와 일치하는 훅을 포함해 어떤 PreToolUse 훅도 이 파일에 대해 발생하지 않습니다. `@` 참조에서 특정 경로를 차단하려면 대신 [`Read` 거부 규칙](/docs/ko/permissions#read-and-edit)을 사용하세요.

1696 1695 

1697 PreToolUse는 [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)에서도 발생하지 않습니다.1696 PreToolUse는 [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)에 대해서도 발생하지 않습니다.

1698</Warning>1697</Warning>

1699 1698 

1700도구 호출을 허용, 거부, 확인 요청 또는 지연하려면 [PreToolUse 결정 제어](#pretooluse-decision-control)를 사용합니다.1699[PreToolUse 결정 제어](#pretooluse-decision-control)를 사용해 도구 호출을 허용, 거부, 확인 요청 또는 지연하세요.

1701 1700 

1702타임아웃을 초과한 `PreToolUse`의 [Agent SDK 콜백 훅](/docs/ko/agent-sdk/hooks)은 도구 호출을 차단하며, Claude는 타임아웃을 명시한 오류 결과를 수신합니다. 다른 훅이 반환한 명시적 거부는 여전히 우선합니다.1701`PreToolUse`의 [Agent SDK 콜백 훅](/docs/ko/agent-sdk/hooks)이 타임아웃을 초과하면 도구 호출이 차단되고, Claude는 타임아웃을 명시하는 오류 결과를 받습니다. 다른 훅이 반환한 명시적 거부는 여전히 우선합니다.

1703 1702 

1704<h4 id="pretooluse-input">1703<h4 id="pretooluse-input">

1705 PreToolUse 입력1704 PreToolUse 입력

1706</h4>1705</h4>

1707 1706 

1708[공통 입력 필드](#common-input-fields) 외에도 PreToolUse 훅은 `tool_name`, `tool_input`, `tool_use_id`를 수신합니다.1707[공통 입력 필드](#common-input-fields) 외에도 PreToolUse 훅은 `tool_name`, `tool_input`, `tool_use_id`를 받습니다.

1709 1708 

1710[MCP 도구](#match-mcp-tools)의 경우 입력에는 `mcp_server`도 포함됩니다. 이는 서버의 `name`과 서버 정의의 출처를 나타내는 `source`가 담긴 객체입니다. `source` 값에는 `plugin`, `sdk`, 그리고 `user`, `project` 같은 구성 범위가 포함됩니다. Agent SDK 레퍼런스의 [`McpServerProvenance`](/docs/ko/agent-sdk/typescript#mcpserverprovenance)에서 전체 값 목록과 인식하지 못하는 값을 처리하는 방법을 확인할 수 있습니다. 신뢰 결정은 `name`이나 `mcp__<server>__` 도구 이름 접두사가 아닌 `source`를 기준으로 내려야 합니다. `mcp_server` 필드에는 Claude Code v2.1.274 이상이 필요합니다.1709[MCP 도구](#match-mcp-tools)의 경우 입력에 `mcp_server`도 포함됩니다. 이는 서버의 `name`과 서버 정의의 출처를 나타내는 `source`가 있는 객체입니다. `source` 값에는 `plugin`, `sdk`, 그리고 `user`, `project` 같은 구성 범위가 포함됩니다. Agent SDK 참조의 [`McpServerProvenance`](/docs/ko/agent-sdk/typescript#mcpserverprovenance)에 전체 목록과 인식할 수 없는 값을 처리하는 방법이 나와 있습니다. 신뢰 결정은 `name`이나 `mcp__<server>__` 도구 이름 접두사가 아니라 `source`를 기준으로 하세요. `mcp_server` 필드에는 Claude Code v2.1.274 이상이 필요합니다.

1711 1710 

1712파일 도구 `Write`, `Edit`, `Read`의 경우 `tool_input.file_path`는 항상 절대 경로입니다.1711파일 도구 `Write`, `Edit`, `Read`의 경우 `tool_input.file_path`는 항상 절대 경로입니다:

1713 1712 

1714* Claude Code는 훅이 실행되기 전에 `~`와 상대 경로를 확장하므로, 경로를 일치시키는 훅은 `~`나 같은 경로의 상대 표기를 통해 우회될 수 없습니다1713* Claude Code는 훅이 실행되기 전에 `~`와 상대 경로를 확장하므로, 경로를 매칭하는 훅을 `~`나 같은 경로의 상대 표기로 우회할 수 없습니다

1715* Windows에서는 훅이 `$PWD`가 `/c/project`처럼 보이는 Git Bash에서 실행되더라도 경로가 백슬래시 구분 기호와 함께 전달됩니다1714* Windows에서는 `$PWD`가 `/c/project`처럼 보이는 Git Bash에서 훅이 실행되더라도 경로가 백슬래시 구분자로 전달됩니다

1716* `/src/` 검사처럼 슬래시로 작성된 비교는 백슬래시 경로와 절대 일치하지 않으며, 도구 호출은 훅이 차단할 것이 없는 것처럼 진행됩니다1715* `/src/` 검사처럼 슬래시로 작성된 비교는 백슬래시 경로와 절대 일치하지 않으며, 도구 호출은 훅이 차단할 것이 없었던 것처럼 진행됩니다

1717* 비교하기 전에 구분 기호를 정규화합니다. Bash에서는 `FILE_PATH="${FILE_PATH//\\//}"`, Python에서는 `file_path.replace("\\", "/")`를 사용한 다음, 경로가 절대 경로이므로 `^`로 고정하지 말고 `/src/` 같은 경로 세그먼트를 일치시킵니다1716* 비교하기 전에 구분자를 정규화하세요. Bash에서는 `FILE_PATH="${FILE_PATH//\\//}"`, Python에서는 `file_path.replace("\\", "/")`를 사용한 다음, 경로가 절대 경로이므로 `^`로 고정하지 말고 `/src/` 같은 경로 세그먼트를 매칭하세요

1718 1717 

1719Windows에서 `Write` 호출은 다음을 전달합니다.1718Windows에서 `Write` 호출은 다음을 전달합니다:

1720 1719 

1721```json theme={null}1720```json theme={null}

1722{1721{


1730}1729}

1731```1730```

1732 1731 

1733`tool_input` 필드는 도구에 따라 다릅니다.1732`tool_input` 필드는 도구에 따라 다릅니다:

1734 1733 

1735<a id="bash" />1734<a id="bash" />

1736 1735 


1740 1739 

1741셸 명령을 실행합니다.1740셸 명령을 실행합니다.

1742 1741 

1743| 필드 | 타입 | 예시 | 설명 |1742| 필드 | 유형 | 예시 | 설명 |

1744| :- | :- | :- | :- |1743| :- | :- | :- | :- |

1745| `command` | string | `"npm test"` | 실행할 셸 명령 |1744| `command` | string | `"npm test"` | 실행할 셸 명령 |

1746| `description` | string | `"Run test suite"` | 명령이 수행하는 작업에 대한 선택적 설명 |1745| `description` | string | `"Run test suite"` | 명령이 수행하는 작업에 대한 선택적 설명 |

1747| `timeout` | number | `120000` | 선택적 타임아웃(밀리초). [최대값](/docs/ko/tools-reference#bash-tool-behavior)을 초과하는 값은 거부되지 않고 최대값으로 줄어듭니다 |1746| `timeout` | number | `120000` | 밀리초 단위의 선택적 타임아웃. [최대값](/docs/ko/tools-reference#bash-tool-behavior)을 초과하는 값은 거부되지 않고 최대값으로 줄어듭니다 |

1748| `run_in_background` | boolean | `false` | 명령을 백그라운드에서 실행할지 여부 |1747| `run_in_background` | boolean | `false` | 명령을 백그라운드에서 실행할지 여부 |

1749 1748 

1750Bash 명령이 Git 저장소의 파일을 변경하면 Claude Code는 변경된 내용을 기록할 수 있습니다. [`bashEditDiffEnabled`](/docs/ko/settings-reference#basheditdiffenabled) 설정이 기록을 켜면 모든 권한 모드에서 변경 사항을 기록하며, 어떤 파일에서 이 설정을 지정할 수 있는지는 해당 설정 항목에 나와 있습니다. 그렇지 않으면 자동 모드와 `bypassPermissions` 모드에서만, 그리고 Claude Code가 Claude에게 Bash를 통해 파일을 편집하도록 지시한 경우에만 기록합니다. 기록을 끄려면 `bashEditDiffEnabled`를 `false`로 설정합니다. 백그라운드 명령과 읽기 전용 명령에는 diff가 포함되지 않습니다.1749Bash 명령이 Git 저장소의 파일을 변경하면 Claude Code는 변경 내용을 기록할 수 있습니다. [`bashEditDiffEnabled`](/docs/ko/settings-reference#basheditdiffenabled) 설정이 기록을 켜면 모든 권한 모드에서 변경 내용을 기록하며, 어떤 파일에서 이 설정을 지정할 수 있는지는 해당 설정 항목에 나와 있습니다. 그렇지 않으면 자동 모드와 `bypassPermissions` 모드에서만, 그리고 Claude Code가 Claude에게 Bash를 통해 파일을 편집하도록 지시할 때만 기록합니다. 기록을 끄려면 `bashEditDiffEnabled`를 `false`로 설정하세요. 백그라운드 명령과 읽기 전용 명령에는 diff가 포함되지 않습니다.

1751 1750 

1752그러면 [PostToolUse 훅](#posttooluse)이 `tool_response.bashEditDiff`에서 변경된 파일을 수신합니다. 이 목록은 명령이 실행되는 동안 저장소 아래에서 변경된 내용을 다룹니다. Git이 무시하는 파일과 서브모듈의 파일은 목록에 포함되지 않습니다. Claude Code v2.1.269 이상이 필요합니다.1751그러면 [PostToolUse 훅](#posttooluse)이 `tool_response.bashEditDiff`에서 변경된 파일을 받습니다. 이 목록은 명령이 실행되는 동안 저장소에서 변경된 내용을 다룹니다. Git이 무시하는 파일과 서브모듈의 파일은 나열되지 않습니다. Claude Code v2.1.269 이상이 필요합니다.

1753 1752 

1754<Note>1753<Note>

1755 이 목록은 최선의 노력(best effort)으로 제공되며 공개 베타 상태입니다. Claude Code는 변경 사항을 놓치거나, 동시에 다른 프로세스가 변경한 파일을 포함하거나, 크기 제한에서 중단될 수 있습니다. 필드 형태는 변경될 수 있습니다. 이 목록은 정책을 강제하는 용도가 아니라 검토할 대상을 찾는 용도로 사용합니다.1754 이 목록은 최선의 노력(best effort) 방식으로 제공되며 공개 베타 상태입니다. Claude Code가 변경 사항을 놓치거나, 다른 프로세스가 동시에 변경한 파일을 포함하거나, 크기 제한에서 중단될 수 있습니다. 필드 형식은 변경될 수 있습니다. 이 목록은 정책을 강제하는 용도가 아니라 검토할 항목을 찾는 용도로 사용하세요.

1756</Note>1755</Note>

1757 1756 

1758`changedFiles`와 `files`는 명령이 변경한 내용을 나열하며, 나머지 필드는 해당 목록이 얼마나 완전하고 신뢰할 수 있는지를 나타냅니다.1757`changedFiles`와 `files`는 명령이 변경한 내용을 나열하고, 나머지 필드는 그 목록이 얼마나 완전하고 신뢰할 수 있는지 알려 줍니다.

1759 1758 

1760| 필드 | 타입 | 예시 | 설명 |1759| 필드 | 유형 | 예시 | 설명 |

1761| :- | :- | :- | :- |1760| :- | :- | :- | :- |

1762| `changedFiles` | array | `["/path/to/src/app.ts"]` | 명령이 변경한 파일의 절대 경로(최대 200개). `files`에 diff가 있거나 `moreFiles`가 0보다 클 때마다 포함됩니다 |1761| `changedFiles` | array | `["/path/to/src/app.ts"]` | 명령이 변경한 파일의 절대 경로(최대 200개). `files`에 diff가 있거나 `moreFiles`가 0보다 클 때 항상 존재합니다 |

1763| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | 표시용으로 최대 5개의 변경된 파일에 대한 diff. 명령이 추가하거나 제거한 파일의 경우 `created` 또는 `deleted`가 `true`입니다 |1762| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | 표시용으로 제공되는 최대 5개 변경 파일의 diff. 명령이 추가하거나 제거한 파일은 `created` 또는 `deleted`가 `true`입니다 |

1764| `moreFiles` | number | `2` | `files`에 diff가 없는 변경된 파일 수 |1763| `moreFiles` | number | `2` | `files`에 diff가 없는 변경된 파일 수 |

1765| `unavailable` | boolean | `true` | diff가 불완전하거나 가져올 수 없을 때 설정됩니다 |1764| `unavailable` | boolean | `true` | diff가 불완전하거나 가져올 수 없을 때 설정됩니다 |

1766| `skipped` | boolean | `true` | `git checkout`이나 `git stash`처럼 작업 트리를 이동하는 Git 명령에 대해 설정되며, 이 경우 Claude Code는 diff를 가져오지 않습니다 |1765| `skipped` | boolean | `true` | `git checkout`이나 `git stash`처럼 워킹 트리를 이동하는 Git 명령에 설정되며, 이 경우 Claude Code는 diff를 가져오지 않습니다 |

1767| `shared` | boolean | `true` | 서브에이전트의 호출 같은 다른 Bash 도구 호출이 같은 시간에 같은 저장소에서 실행되어, 나열된 일부 변경 사항이 해당 명령의 것일 수 있을 때 설정됩니다 |1766| `shared` | boolean | `true` | 서브에이전트의 호출 같은 다른 Bash 도구 호출이 같은 저장소에서 동시에 실행되었을 때 설정되며, 이 경우 나열된 일부 변경 사항은 해당 명령에 의한 것일 수 있습니다 |

1768 1767 

1769<a id="powershell" />1768<a id="powershell" />

1770 1769 


1774 1773 

1775PowerShell 명령을 실행합니다. 플랫폼별 사용 가능 여부는 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool)를 참조하세요.1774PowerShell 명령을 실행합니다. 플랫폼별 사용 가능 여부는 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool)를 참조하세요.

1776 1775 

1777필드는 Bash 도구와 같으며, 명령 문자열은 `command`에 들어갑니다.1776필드는 Bash 도구와 같으며, 명령 문자열은 `command`에 있습니다:

1778 1777 

1779| 필드 | 타입 | 예시 | 설명 |1778| 필드 | 유형 | 예시 | 설명 |

1780| :- | :- | :- | :- |1779| :- | :- | :- | :- |

1781| `command` | string | `"Get-ChildItem -Recurse"` | 실행할 PowerShell 명령 |1780| `command` | string | `"Get-ChildItem -Recurse"` | 실행할 PowerShell 명령 |

1782| `description` | string | `"List files recursively"` | 명령이 수행하는 작업에 대한 선택적 설명 |1781| `description` | string | `"List files recursively"` | 명령이 수행하는 작업에 대한 선택적 설명 |

1783| `timeout` | number | `120000` | 선택적 타임아웃(밀리초) |1782| `timeout` | number | `120000` | 밀리초 단위의 선택적 타임아웃 |

1784| `run_in_background` | boolean | `false` | 명령을 백그라운드에서 실행할지 여부 |1783| `run_in_background` | boolean | `false` | 명령을 백그라운드에서 실행할지 여부 |

1785 1784 

1786셸 명령을 검사하는 훅에서는 두 도구를 모두 다루도록 `Bash|PowerShell`을 일치시킵니다.1785셸 명령을 검사하는 훅에서는 두 도구를 모두 다루도록 `Bash|PowerShell`을 매칭하세요:

1787 1786 

1788* Windows에서 PowerShell 도구가 활성화된 곳이라면 어디서든 Claude는 PowerShell을 기본 셸로 취급하고 셸 명령을 PowerShell을 통해 라우팅합니다.1787* Windows에서 PowerShell 도구가 활성화된 경우 Claude는 PowerShell을 기본 셸로 취급하고 셸 명령을 PowerShell로 라우팅합니다.

1789* Git Bash가 없는 Windows에서는 이 도구가 자동으로 활성화되며 Claude Code는 Bash 도구를 전혀 등록하지 않습니다.1788* Git Bash가 없는 Windows에서는 이 도구가 자동으로 활성화되며 Claude Code는 Bash 도구를 전혀 등록하지 않습니다.

1790* `Bash`만 일치시키는 훅은 그곳에서 절대 발생하지 않습니다.1789* `Bash`만 매칭하는 훅은 그러한 환경에서 절대 발생하지 않습니다.

1791 1790 

1792<h5 id="write">1791<h5 id="write">

1793 Write1792 Write


1795 1794 

1796파일을 생성하거나 덮어씁니다.1795파일을 생성하거나 덮어씁니다.

1797 1796 

1798| 필드 | 타입 | 예시 | 설명 |1797| 필드 | 유형 | 예시 | 설명 |

1799| :- | :- | :- | :- |1798| :- | :- | :- | :- |

1800| `file_path` | string | `"/path/to/file.txt"` | 쓸 파일의 절대 경로 |1799| `file_path` | string | `"/path/to/file.txt"` | 쓸 파일의 절대 경로 |

1801| `content` | string | `"file content"` | 파일에 쓸 내용 |1800| `content` | string | `"file content"` | 파일에 쓸 내용 |


1804 Edit1803 Edit

1805</h5>1804</h5>

1806 1805 

1807기존 파일의 문자열을 대체합니다.1806기존 파일의 문자열을 바꿉니다.

1808 1807 

1809| 필드 | 타입 | 예시 | 설명 |1808| 필드 | 유형 | 예시 | 설명 |

1810| :- | :- | :- | :- |1809| :- | :- | :- | :- |

1811| `file_path` | string | `"/path/to/file.txt"` | 편집할 파일의 절대 경로 |1810| `file_path` | string | `"/path/to/file.txt"` | 편집할 파일의 절대 경로 |

1812| `old_string` | string | `"original text"` | 찾아서 대체할 텍스트 |1811| `old_string` | string | `"original text"` | 찾아서 바꿀 텍스트 |

1813| `new_string` | string | `"replacement text"` | 대체 텍스트 |1812| `new_string` | string | `"replacement text"` | 대체 텍스트 |

1814| `replace_all` | boolean | `false` | 모든 항목을 대체할지 여부 |1813| `replace_all` | boolean | `false` | 모든 항목을 바꿀지 여부 |

1815 1814 

1816<h5 id="read">1815<h5 id="read">

1817 Read1816 Read


1819 1818 

1820파일 내용을 읽습니다.1819파일 내용을 읽습니다.

1821 1820 

1822| 필드 | 타입 | 예시 | 설명 |1821| 필드 | 유형 | 예시 | 설명 |

1823| :- | :- | :- | :- |1822| :- | :- | :- | :- |

1824| `file_path` | string | `"/path/to/file.txt"` | 읽을 파일의 절대 경로 |1823| `file_path` | string | `"/path/to/file.txt"` | 읽을 파일의 절대 경로 |

1825| `offset` | number | `10` | 읽기를 시작할 선택적 줄 번호 |1824| `offset` | number | `10` | 읽기를 시작할 선택적 줄 번호 |

1826| `limit` | number | `50` | 읽을 선택적 줄 수 |1825| `limit` | number | `50` | 읽을 줄 수(선택 사항) |

1827 1826 

1828<h5 id="glob">1827<h5 id="glob">

1829 Glob1828 Glob


1831 1830 

1832glob 패턴과 일치하는 파일을 찾습니다.1831glob 패턴과 일치하는 파일을 찾습니다.

1833 1832 

1834| 필드 | 타입 | 예시 | 설명 |1833| 필드 | 유형 | 예시 | 설명 |

1835| :- | :- | :- | :- |1834| :- | :- | :- | :- |

1836| `pattern` | string | `"**/*.ts"` | 파일을 일치시킬 glob 패턴 |1835| `pattern` | string | `"**/*.ts"` | 파일과 매칭할 glob 패턴 |

1837| `path` | string | `"/path/to/dir"` | 검색할 선택적 디렉터리. 기본값은 현재 작업 디렉터리입니다 |1836| `path` | string | `"/path/to/dir"` | 검색할 선택적 디렉터리. 기본값은 현재 작업 디렉터리입니다 |

1838 1837 

1839<h5 id="grep">1838<h5 id="grep">


1842 1841 

1843정규식으로 파일 내용을 검색합니다.1842정규식으로 파일 내용을 검색합니다.

1844 1843 

1845| 필드 | 타입 | 예시 | 설명 |1844| 필드 | 유형 | 예시 | 설명 |

1846| :- | :- | :- | :- |1845| :- | :- | :- | :- |

1847| `pattern` | string | `"TODO.*fix"` | 검색할 정규식 패턴 |1846| `pattern` | string | `"TODO.*fix"` | 검색할 정규식 패턴 |

1848| `path` | string | `"/path/to/dir"` | 검색할 선택적 파일 또는 디렉터리 |1847| `path` | string | `"/path/to/dir"` | 검색할 선택적 파일 또는 디렉터리 |

1849| `glob` | string | `"*.ts"` | 파일을 필터링할 선택적 glob 패턴 |1848| `glob` | string | `"*.ts"` | 파일을 필터링할 선택적 glob 패턴 |

1850| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` 또는 `"count"`. 기본값은 `"files_with_matches"`입니다 |1849| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` 또는 `"count"`. 기본값은 `"files_with_matches"`입니다 |

1851| `-i` | boolean | `true` | 대소문자 구분 없는 검색 |1850| `-i` | boolean | `true` | 대소문자를 구분하지 않는 검색 |

1852| `multiline` | boolean | `false` | 여러 줄 일치 활성화 |1851| `multiline` | boolean | `false` | 여러 줄 매칭 활성화 |

1853 1852 

1854<h5 id="webfetch">1853<h5 id="webfetch">

1855 WebFetch1854 WebFetch


1857 1856 

1858웹 콘텐츠를 가져와 처리합니다.1857웹 콘텐츠를 가져와 처리합니다.

1859 1858 

1860| 필드 | 타입 | 예시 | 설명 |1859| 필드 | 유형 | 예시 | 설명 |

1861| :- | :- | :- | :- |1860| :- | :- | :- | :- |

1862| `url` | string | `"https://example.com/api"` | 콘텐츠를 가져올 URL |1861| `url` | string | `"https://example.com/api"` | 콘텐츠를 가져올 URL |

1863| `prompt` | string | `"Extract the API endpoints"` | 가져온 콘텐츠에 대해 실행할 프롬프트 |1862| `prompt` | string | `"Extract the API endpoints"` | 가져온 콘텐츠에 대해 실행할 프롬프트 |


1868 1867 

1869웹을 검색합니다.1868웹을 검색합니다.

1870 1869 

1871| 필드 | 타입 | 예시 | 설명 |1870| 필드 | 유형 | 예시 | 설명 |

1872| :- | :- | :- | :- |1871| :- | :- | :- | :- |

1873| `query` | string | `"react hooks best practices"` | 검색 쿼리 |1872| `query` | string | `"react hooks best practices"` | 검색 쿼리 |

1874| `allowed_domains` | array | `["docs.example.com"]` | 선택 사항: 이 도메인의 결과만 포함 |1873| `allowed_domains` | array | `["docs.example.com"]` | 선택 사항: 이 도메인의 결과만 포함 |


1880 1879 

1881[서브에이전트](/docs/ko/sub-agents)를 생성합니다.1880[서브에이전트](/docs/ko/sub-agents)를 생성합니다.

1882 1881 

1883| 필드 | 타입 | 예시 | 설명 |1882| 필드 | 유형 | 예시 | 설명 |

1884| :- | :- | :- | :- |1883| :- | :- | :- | :- |

1885| `prompt` | string | `"Find all API endpoints"` | 에이전트가 수행할 작업 |1884| `prompt` | string | `"Find all API endpoints"` | 에이전트가 수행할 작업 |

1886| `description` | string | `"Find API endpoints"` | 작업에 대한 짧은 설명 |1885| `description` | string | `"Find API endpoints"` | 작업에 대한 짧은 설명 |

1887| `subagent_type` | string | `"Explore"` | 사용할 특화 에이전트 유형 |1886| `subagent_type` | string | `"Explore"` | 사용할 전문 에이전트 유형 |

1888| `model` | string | `"sonnet"` | 기본값을 재정의할 선택적 모델 별칭 |1887| `model` | string | `"sonnet"` | 기본값을 재정의할 선택적 모델 별칭 |

1889 1888 

1890포그라운드 Agent 호출이 완료되면 [PostToolUse 훅](#posttooluse)은 `tool_response`에서 서브에이전트의 결과와 실행 텔레메트리를 수신합니다. 실행을 검사하려면 이 필드를 읽습니다. 서브에이전트 전체의 토큰 및 비용 집계에는 `query_source` `"subagent"`로 필터링한 [토큰 및 비용 카운터](/docs/ko/monitoring-usage#token-counter)를 사용합니다. `totalTokens`와 `usage`는 마지막 요청만 다루기 때문입니다.1889포그라운드 Agent 호출이 완료되면 [PostToolUse 훅](#posttooluse)은 `tool_response`에서 서브에이전트의 결과와 실행 텔레메트리를 받습니다. 실행을 검사하려면 이 필드를 읽으세요. `totalTokens`와 `usage`는 최종 요청만 다루므로, 서브에이전트 전체의 토큰 및 비용 집계에는 `query_source` `"subagent"`로 필터링한 [토큰 및 비용 카운터](/docs/ko/monitoring-usage#token-counter)를 사용하세요:

1891 1890 

1892| 필드 | 타입 | 예시 | 설명 |1891| 필드 | 유형 | 예시 | 설명 |

1893| :- | :- | :- | :- |1892| :- | :- | :- | :- |

1894| `status` | string | `"completed"` | 포그라운드 서브에이전트는 `"completed"`, 백그라운드 서브에이전트는 `"async_launched"`. 서브에이전트는 기본적으로 백그라운드에서 실행되므로 `run_in_background`를 생략한 Agent 호출도 `"async_launched"`를 생성합니다 |1893| `status` | string | `"completed"` | 포그라운드 서브에이전트는 `"completed"`, 백그라운드 서브에이전트는 `"async_launched"`. 서브에이전트는 기본적으로 백그라운드에서 실행되므로 `run_in_background`를 생략한 Agent 호출도 `"async_launched"`를 생성합니다 |

1895| `agentId` | string | `"a4d2c8f1e0b3a297"` | 서브에이전트 실행의 식별자 |1894| `agentId` | string | `"a4d2c8f1e0b3a297"` | 서브에이전트 실행의 식별자 |

1896| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | 서브에이전트의 최종 텍스트 블록. 보고서가 `SubagentHandback`을 통해 전달되는 서브에이전트의 경우 그 대신 해당 인계에 대한 짧은 메모 |1895| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | 서브에이전트의 최종 텍스트 블록. 보고서가 `SubagentHandback`을 거치는 서브에이전트의 경우 그 대신 해당 핸드백에 대한 짧은 메모 |

1897| `resolvedModel` | string | `"claude-sonnet-4-5"` | 서브에이전트가 시작한 모델. 요청된 모델과 다를 수 있습니다 |1896| `resolvedModel` | string | `"claude-sonnet-4-5"` | 서브에이전트가 시작된 모델로, 요청된 모델과 다를 수 있습니다 |

1898| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | 사용된 모델을 순서대로 나열하며 연속된 반복은 하나로 합칩니다. 실행 중에 모델이 교체된 경우에만 설정됩니다. Claude Code v2.1.212 이상이 필요합니다 |1897| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | 사용된 모델을 순서대로 나열한 목록(연속 반복은 하나로 합쳐짐). 실행 중에 모델이 교체된 경우에만 설정됩니다. Claude Code v2.1.212 이상이 필요합니다 |

1899| `totalTokens` | number | `12450` | 서브에이전트의 마지막 API 요청의 토큰 수: 입력, 출력, 캐시 토큰의 합계. 전체 실행에 대한 합계가 아닙니다 |1898| `totalTokens` | number | `12450` | 서브에이전트의 최종 API 요청에서의 토큰 수로, 입력, 출력, 캐시 토큰을 합한 값입니다. 전체 실행에 대한 합계가 아닙니다 |

1900| `totalDurationMs` | number | `48211` | 서브에이전트 실행의 실제 소요 시간 |1899| `totalDurationMs` | number | `48211` | 서브에이전트 실행의 실제 소요 시간 |

1901| `totalToolUseCount` | number | `7` | 서브에이전트가 수행한 도구 호출 수 |1900| `totalToolUseCount` | number | `7` | 서브에이전트가 수행한 도구 호출 수 |

1902| `usage` | object | `{"input_tokens": 8320, ...}` | 마지막 API 요청의 유형별 토큰 내역: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1901| `usage` | object | `{"input_tokens": 8320, ...}` | 최종 API 요청의 유형별 토큰 내역: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1903 1902 

1904Claude Code v2.1.271 이상에서는 Claude Code가 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서 제공하는 [`SubagentHandback`](/docs/ko/tools-reference) 도구로 실행되는 서브에이전트가 보고서를 텍스트로 반환하지 않고 해당 도구를 통해 전달합니다. 이 경우 `completed` 결과의 `content` 필드에는 보고서 자체가 아니라 해당 인계에 대한 짧은 메모가 담깁니다. 보고서를 읽으려면 `SubagentHandback`에 `PreToolUse` 또는 `PostToolUse` 훅을 일치시키고 `tool_input.message`를 읽습니다.1903Claude Code v2.1.271 이상에서는 Claude Code가 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서 제공하는 [`SubagentHandback`](/docs/ko/tools-reference) 도구와 함께 실행되는 서브에이전트가 보고서를 텍스트로 반환하지 않고 이 도구를 통해 전달합니다. 그러면 `completed` 결과의 `content` 필드에는 보고서 자체가 아니라 해당 핸드백에 대한 짧은 메모가 담깁니다. 보고서를 읽으려면 `SubagentHandback`에 `PreToolUse` 또는 `PostToolUse` 훅을 매칭하고 `tool_input.message`를 읽으세요.

1905 1904 

1906백그라운드 서브에이전트의 경우 작업이 백그라운드로 이동할 때 도구가 반환되므로 `tool_response`에는 사용량 필드가 없습니다. 백그라운드 실행은 즉시 반환되고, Claude Code가 실행 도중 백그라운드로 전환한 포그라운드 작업은 그 전환 시점에 반환됩니다. 이 응답에는 `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile`, `resolvedModel`이 포함됩니다.1905백그라운드 서브에이전트의 경우 작업이 백그라운드로 이동할 때 도구가 반환되므로 `tool_response`에는 사용량 필드가 없습니다. 백그라운드 실행은 즉시 반환되며, Claude Code가 실행 중에 백그라운드로 보낸 포그라운드 작업은 그 전환 시점에 반환됩니다. 응답에는 `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile`, `resolvedModel`이 있습니다.

1907 1906 

1908`completed` 응답에서 `resolvedModel`은 서브에이전트가 시작한 모델을 나타내며, `availableModels`나 다른 재정의가 적용되는 경우처럼 `tool_input`의 `model` 값과 다를 수 있습니다. `async_launched` 응답에서 `resolvedModel`은 에이전트가 백그라운드로 이동할 때 사용 중이던 모델을 나타내므로, 백그라운드 전환 전에 발생한 교체가 반영됩니다. `modelsUsed`와 백그라운드 전환 시점의 `resolvedModel` 동작에는 Claude Code v2.1.212 이상이 필요합니다.1907`completed` 응답에서 `resolvedModel`은 서브에이전트가 시작된 모델을 나타내며, `availableModels`나 다른 재정의가 적용되는 경우처럼 `tool_input`의 `model` 값과 다를 수 있습니다. `async_launched` 응답에서 `resolvedModel`은 에이전트가 백그라운드로 이동할 때 사용 중이던 모델을 나타내므로, 백그라운드 전환 전에 발생한 교체가 반영됩니다. `modelsUsed`와 백그라운드 전환 시점의 `resolvedModel` 동작에는 Claude Code v2.1.212 이상이 필요합니다.

1909 1908 

1910<a id="askuserquestion" />1909<a id="askuserquestion" />

1911 1910 


1915 1914 

1916사용자에게 1\~4개의 객관식 질문을 합니다.1915사용자에게 1\~4개의 객관식 질문을 합니다.

1917 1916 

1918| 필드 | 타입 | 예시 | 설명 |1917| 필드 | 유형 | 예시 | 설명 |

1919| :- | :- | :- | :- |1918| :- | :- | :- | :- |

1920| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React", "description": "Component library"}, {"label": "Vue", "description": "Progressive framework"}], "multiSelect": false}]` | 제시할 질문으로, 각각 `question` 문자열, 짧은 `header`, `options` 배열, 선택적 `multiSelect` 플래그를 가집니다 |1919| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React", "description": "Component library"}, {"label": "Vue", "description": "Progressive framework"}], "multiSelect": false}]` | 표시할 질문. 각 질문에는 `question` 문자열, 짧은 `header`, `options` 배열, 선택적 `multiSelect` 플래그가 있습니다 |

1921| `answers` | object | `{"Which framework?": "React"}` | 선택 사항. 질문 텍스트를 선택된 옵션 레이블에 매핑합니다. 다중 선택 답변은 레이블을 쉼표로 연결합니다. Claude는 이 필드를 설정하지 않으며, 프로그래밍 방식으로 답하려면 `updatedInput`을 통해 제공합니다 |1920| `answers` | object | `{"Which framework?": "React"}` | 선택 사항. 질문 텍스트를 선택된 옵션 레이블에 매핑합니다. 다중 선택 답변은 레이블을 쉼표로 연결합니다. Claude는 이 필드를 설정하지 않으므로, 프로그래밍 방식으로 답변하려면 `updatedInput`을 통해 제공하세요 |

1922 1921 

1923<h5 id="exitplanmode">1922<h5 id="exitplanmode">

1924 ExitPlanMode1923 ExitPlanMode

1925</h5>1924</h5>

1926 1925 

1927Claude가 [플랜 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)를 벗어나기 전에 계획을 제시하고 사용자에게 승인을 요청합니다. Claude는 도구를 호출하기 전에 계획을 디스크의 파일에 작성하므로, 모델이 보낸 실제 `tool_input`은 일반적으로 비어 있습니다. Claude Code는 입력을 훅에 전달하기 전에 계획 내용과 파일 경로를 주입합니다.1926Claude가 [플랜 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)를 종료하기 전에 플랜을 제시하고 사용자에게 승인을 요청합니다. Claude는 도구를 호출하기 전에 플랜을 디스크의 파일에 쓰므로, 모델이 보내는 실제 `tool_input`은 일반적으로 비어 있습니다. Claude Code는 입력을 훅에 전달하기 전에 플랜 내용과 파일 경로를 주입합니다.

1928 1927 

1929| 필드 | 타입 | 예시 | 설명 |1928| 필드 | 유형 | 예시 | 설명 |

1930| :- | :- | :- | :- |1929| :- | :- | :- | :- |

1931| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown 형식의 계획 내용. 디스크의 계획 파일에서 주입됩니다 |1930| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown 형식의 플랜 내용. 디스크의 플랜 파일에서 주입됩니다 |

1932| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 계획 파일 경로. 주입됩니다 |1931| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 플랜 파일 경로. 주입됩니다 |

1933| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | deprecated. Claude Code는 이 필드를 받아들이지만 무시합니다. v2.1.205 이전에는 Claude가 계획을 구현하기 위해 요청한 프롬프트 기반 권한을 담았습니다 |1932| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | deprecated. Claude Code는 이 필드를 허용하지만 무시합니다. v2.1.205 이전에는 Claude가 플랜을 구현하기 위해 요청한 프롬프트 기반 권한을 담았습니다 |

1934 1933 

1935`PostToolUse`에서 `tool_response`는 승인된 계획을 담은 `plan` 및 `filePath` 필드와 내부 상태 플래그가 포함된 객체입니다. 계획 내용은 디스크에서 파일을 다시 읽지 말고 `tool_response.plan`에서 읽습니다.1934`PostToolUse`에서 `tool_response`는 승인된 플랜을 담은 `plan` 및 `filePath` 필드와 내부 상태 플래그가 있는 객체입니다. 디스크에서 파일을 다시 읽지 말고 플랜 내용은 `tool_response.plan`에서 읽으세요.

1936 1935 

1937<h4 id="pretooluse-decision-control">1936<h4 id="pretooluse-decision-control">

1938 PreToolUse 결정 제어1937 PreToolUse 결정 제어

1939</h4>1938</h4>

1940 1939 

1941`PreToolUse` 훅은 도구 호출의 진행 여부를 제어할 수 있습니다. 최상위 `decision` 필드를 사용하는 다른 훅과 달리 PreToolUse는 `hookSpecificOutput` 객체 안에서 결정을 반환합니다. 이를 통해 더 풍부한 제어가 가능합니다. 네 가지 결과(허용, 거부, 확인 요청, 지연)와 함께 실행 전에 도구 입력을 수정하는 기능을 제공합니다.1940`PreToolUse` 훅은 도구 호출의 진행 여부를 제어할 수 있습니다. 최상위 `decision` 필드를 사용하는 다른 훅과 달리 PreToolUse는 `hookSpecificOutput` 객체 안에 결정을 반환합니다. 이를 통해 네 가지 결과(allow, deny, ask, defer)와 실행 전 도구 입력을 수정하는 기능이라는 더 풍부한 제어가 가능합니다.

1942 1941 

1943| 필드 | 설명 |1942| 필드 | 설명 |

1944| :- | :- |1943| :- | :- |

1945| `permissionDecision` | `"allow"`는 권한 프롬프트를 건너뜁니다. 단, [어떤 모드도 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves)과, [`updatedInput`과 함께 사용](#allow-with-updatedinput)해야 하는 `AskUserQuestion` 및 `ExitPlanMode`는 예외입니다. `"deny"`는 도구 호출을 막습니다. `"ask"`는 사용자에게 확인을 요청합니다. `"defer"`는 나중에 도구를 재개할 수 있도록 정상적으로 종료합니다. 훅이 무엇을 반환하든 [거부 및 확인 규칙](/docs/ko/permissions#manage-permissions)은 여전히 평가됩니다 |1944| `permissionDecision` | `"allow"`는 권한 프롬프트를 건너뜁니다. 단, [어떤 모드도 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves)과, [`updatedInput`을 함께 사용해야 하는](#allow-with-updatedinput) `AskUserQuestion` 및 `ExitPlanMode`는 예외입니다. `"deny"`는 도구 호출을 막습니다. `"ask"`는 사용자에게 확인을 요청합니다. `"defer"`는 나중에 도구를 재개할 수 있도록 정상적으로 종료합니다. 훅이 무엇을 반환하든 [거부 및 확인 규칙](/docs/ko/permissions#manage-permissions)은 여전히 평가됩니다 |

1946| `permissionDecisionReason` | `"ask"`의 경우 권한 프롬프트에서 사용자에게 표시됩니다. 아무도 해당 프롬프트에 응답할 수 없는 `-p` 실행에서 Claude Code가 [호출을 거부](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)하면 Claude는 대신 도구 결과에서 이유를 읽습니다. `"deny"`의 경우 Claude에게 표시됩니다. `"allow"`와 `"defer"`의 경우 [디버그 로그](#debug-hooks)에만 기록됩니다 |1945| `permissionDecisionReason` | `"ask"`의 경우 권한 프롬프트에서 사용자에게 표시됩니다. 아무도 그 프롬프트에 응답할 수 없는 `-p` 실행에서 Claude Code가 [호출을 거부](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)하면, Claude는 대신 도구 결과에서 이유를 읽습니다. `"deny"`의 경우 Claude에게 표시됩니다. `"allow"` 및 `"defer"`의 경우 [디버그 로그](#debug-hooks)에만 기록됩니다 |

1947| `updatedInput` | 실행 전에 도구의 입력 매개변수를 수정합니다. 전체 입력 객체를 대체하므로 수정한 필드와 함께 변경하지 않은 필드도 포함해야 합니다. Claude Code는 Claude가 보낸 입력이 아니라 훅이 반환한 입력을 기준으로 권한 규칙과 Bash 명령의 [자동 백그라운드 전환 적격성](/docs/ko/tools-reference#foreground-commands-that-move-to-the-background)을 평가합니다. 자동 승인하려면 `"allow"`와, 수정된 입력을 사용자에게 보여 주려면 `"ask"`와 함께 사용합니다. `"defer"`의 경우 무시됩니다 |1946| `updatedInput` | 실행 전에 도구의 입력 매개변수를 수정합니다. 전체 입력 객체를 대체하므로 수정된 필드와 함께 변경되지 않은 필드도 포함하세요. Claude Code는 권한 규칙과 Bash 명령의 [자동 백그라운드 적격성](/docs/ko/tools-reference#foreground-commands-that-move-to-the-background)을 Claude가 보낸 입력이 아니라 훅이 반환한 입력을 기준으로 평가합니다. 자동 승인하려면 `"allow"`와, 수정된 입력을 사용자에게 보여 주려면 `"ask"`와 함께 사용하세요. `"defer"`의 경우 무시됩니다 |

1948| `additionalContext` | 도구 결과와 함께 Claude의 컨텍스트에 추가되는 문자열. `permissionDecision`이 `"defer"`이면 무시됩니다. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |1947| `additionalContext` | 도구 결과와 함께 Claude의 컨텍스트에 추가되는 문자열. `permissionDecision`이 `"defer"`이면 무시됩니다. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |

1949 1948 

1950여러 PreToolUse 훅이 서로 다른 결정을 반환하는 경우 우선순위는 `deny` > `defer` > `ask` > `allow`입니다.1949여러 PreToolUse 훅이 서로 다른 결정을 반환하면 우선순위는 `deny` > `defer` > `ask` > `allow`입니다.

1951 1950 

1952종료 코드 2로 차단하는 훅은 `"deny"`와 같은 방식으로 전달됩니다. Claude는 stderr 메시지를 거부 이유로 봅니다.1951종료 코드 2로 차단하는 훅은 `"deny"`와 같은 방식으로 처리됩니다. Claude는 stderr 메시지를 거부 이유로 봅니다.

1953 1952 

1954훅이 `"ask"`를 반환하면 사용자에게 표시되는 권한 프롬프트에 훅의 출처를 식별하는 레이블이 포함됩니다. 설정 파일이나 에이전트 frontmatter의 훅은 `[settings]`, 플러그인의 훅은 `[plugin:<name>]`, 스킬 frontmatter의 훅은 `[skill]`입니다. 이를 통해 사용자는 어떤 구성 출처가 확인을 요청하는지 이해할 수 있습니다.1953훅이 `"ask"`를 반환하면 사용자에게 표시되는 권한 프롬프트에 훅의 출처를 식별하는 레이블이 포함됩니다. 설정 파일이나 에이전트 frontmatter의 훅은 `[settings]`, 플러그인의 훅은 `[plugin:<name>]`, 스킬 frontmatter의 훅은 `[skill]`로 표시됩니다. 이를 통해 사용자는 어떤 구성 소스가 확인을 요청하는지 이해할 수 있습니다.

1955 1954 

1956훅의 `"ask"`는 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서도 권한 프롬프트를 강제합니다. 분류기는 여전히 도구 호출을 거부할 수 있지만, 호출을 조용히 승인할 수는 없습니다. v2.1.211 이전에는 분류기가 [샌드박스](/docs/ko/sandboxing) 외부에서 실행되는 Bash 명령을 훅이 요청한 프롬프트를 표시하지 않고 승인할 수 있었습니다. 이 경우에도 분류기는 해당 명령에 자체 안전 규칙을 적용했으며, 훅의 `"deny"`는 항상 적용되었습니다.1955훅의 `"ask"`는 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서도 권한 프롬프트를 강제합니다. 분류기는 여전히 도구 호출을 거부할 수 있지만 호출을 조용히 승인할 수는 없습니다. v2.1.211 이전에는 분류기가 [샌드박스](/docs/ko/sandboxing) 외부에서 실행되는 Bash 명령을 훅이 요청한 프롬프트를 표시하지 않고 승인할 수 있었습니다. 이 경우에도 분류기는 해당 명령에 자체 안전 규칙을 적용했으며, 훅의 `"deny"`는 항상 존중되었습니다.

1957 1956 

1958```json theme={null}1957```json theme={null}

1959{1958{


1970```1969```

1971 1970 

1972<Note>1971<Note>

1973 PreToolUse는 이전에 최상위 `decision` 및 `reason` 필드를 사용했지만, 이 이벤트에서는 deprecated되었습니다. 대신 `hookSpecificOutput.permissionDecision` 및 `hookSpecificOutput.permissionDecisionReason`을 사용하십시오. deprecated 값 `"approve"`와 `"block"`은 각각 `"allow"`와 `"deny"`에 매핑됩니다. PostToolUse 및 Stop 같은 다른 이벤트는 현재 형식으로 최상위 `decision`과 `reason`을 계속 사용합니다.1972 PreToolUse는 이전에 최상위 `decision` 및 `reason` 필드를 사용했지만, 이 이벤트에서는 deprecated되었습니다. 대신 `hookSpecificOutput.permissionDecision` 및 `hookSpecificOutput.permissionDecisionReason`을 사용하세요. deprecated 값인 `"approve"`와 `"block"`은 각각 `"allow"`와 `"deny"`에 매핑됩니다. PostToolUse와 Stop 같은 다른 이벤트는 현재 형식으로 최상위 `decision`과 `reason`을 계속 사용합니다.

1974</Note>1973</Note>

1975 1974 

1976<h4 id="allow-with-updatedinput">1975<h4 id="allow-with-updatedinput">

1977 사용자 상호작용이 필요한 도구1976 사용자 상호 작용이 필요한 도구

1978</h4>1977</h4>

1979 1978 

1980`AskUserQuestion`과 `ExitPlanMode`는 사용자 상호작용이 필요합니다. `-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless)에서 Claude Code는 Agent SDK `canUseTool` 콜백처럼 프롬프트를 받을 [권한 호스트](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)가 실행에 있는 경우에만 이 도구를 제공합니다.1979`AskUserQuestion`과 `ExitPlanMode`는 사용자 상호 작용이 필요합니다. `-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless)에서 Claude Code는 Agent SDK `canUseTool` 콜백처럼 프롬프트를 받을 [권한 호스트](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)가 실행에 있을 때만 이 도구를 제공합니다.

1981 1980 

1982`PreToolUse` 훅은 다음을 수행할 때 이 요구 사항을 충족합니다.1981`PreToolUse` 훅은 다음을 수행할 때 이 요구 사항을 충족합니다:

1983 1982 

19841. stdin에서 도구의 입력을 읽습니다19831. stdin에서 도구의 입력을 읽습니다

19852. 자체 UI를 통해 답변을 수집합니다19842. 자체 UI를 통해 답변을 수집합니다

19863. 답변을 담은 `updatedInput`과 함께 `permissionDecision: "allow"`를 반환하여 도구가 확인 요청 없이 실행되게 합니다19853. 답변을 담은 `updatedInput`과 함께 `permissionDecision: "allow"`를 반환하여 프롬프트 없이 도구가 실행되도록 합니다

1987 1986 

1988이 도구에는 `"allow"`만 반환하는 것으로는 충분하지 않습니다.1987이러한 도구에는 `"allow"`만 반환하는 것으로는 충분하지 않습니다.

1989 1988 

1990`AskUserQuestion`의 경우 원래 `questions` 배열을 그대로 돌려보내고, 각 질문 텍스트를 선택된 답변에 매핑하는 [`answers`](#askuserquestion) 객체를 추가하십시오. 다음 출력은 한 질문에 `React`로 답합니다.1989`AskUserQuestion`의 경우 원래 `questions` 배열을 그대로 반환하고, 각 질문의 텍스트를 선택된 답변에 매핑하는 [`answers`](#askuserquestion) 객체를 추가하세요. 이 출력은 한 질문에 `React`로 답합니다:

1991 1990 

1992```json theme={null}1991```json theme={null}

1993{1992{


2009}2008}

2010```2009```

2011 2010 

2012서버가 [`_meta["anthropic/requiresUserInteraction"]`](/docs/ko/mcp#require-approval-for-a-specific-tool)로 표시한 MCP 도구는 더 엄격합니다. 훅은 `updatedInput` 유무와 관계없이 `"allow"`로 승인 프롬프트를 건너뛸 수 없습니다. Claude Code가 훅이 해당 도구에 필요한 상호 작용을 수집했는지 확인할 수 없기 때문입니다.2011서버가 [`_meta["anthropic/requiresUserInteraction"]`](/docs/ko/mcp#require-approval-for-a-specific-tool)으로 표시한 MCP 도구는 더 엄격합니다. 훅은 `updatedInput` 유무와 관계없이 `"allow"`로 승인 프롬프트를 건너뛸 수 없습니다. Claude Code는 훅이 도구에 필요한 상호 작용을 수집했는지 확인할 수 없기 때문입니다.

2013 2012 

2014<h4 id="defer-a-tool-call-for-later">2013<h4 id="defer-a-tool-call-for-later">

2015 도구 호출을 나중으로 지연2014 나중을 위해 도구 호출 지연

2016</h4>2015</h4>

2017 2016 

2018`"defer"`는 Agent SDK 앱이나 Claude Code 위에 구축된 사용자 지정 UI처럼 `claude -p`를 하위 프로세스로 실행하고 JSON 출력을 읽는 통합을 위한 것입니다. 이를 통해 호출하는 프로세스가 도구 호출 시점에 Claude를 일시 중지하고, 자체 인터페이스를 통해 입력을 수집한 다음, 중단한 지점에서 재개할 수 있습니다. Claude Code는 `-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless)에서만 이 값을 적용합니다. 대화형 세션에서는 경고를 로그에 기록하고 훅 결과를 무시합니다.2017`"defer"`는 Agent SDK 앱이나 Claude Code 위에 구축된 사용자 지정 UI처럼 `claude -p`를 하위 프로세스로 실행하고 JSON 출력을 읽는 통합을 위한 것입니다. 이를 통해 호출 프로세스는 도구 호출 시점에서 Claude를 일시 중지하고, 자체 인터페이스를 통해 입력을 수집한 다음, 중단한 지점에서 재개할 수 있습니다. Claude Code는 `-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless)에서만 이 값을 따릅니다. 대화형 세션에서는 경고를 로그에 기록하고 훅 결과를 무시합니다.

2019 2018 

2020`AskUserQuestion` 도구가 대표적인 경우입니다. Claude가 사용자에게 무언가를 묻고 싶지만 답변할 터미널이 없습니다. `-p` 실행은 `--permission-prompt-tool`로 전달하는 MCP 도구 같은 [권한 호스트](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)가 있을 때만 `AskUserQuestion`을 제공하므로, 권한 호스트와 함께 실행을 시작합니다. 왕복 과정은 다음과 같습니다.2019`AskUserQuestion` 도구가 대표적인 경우입니다. Claude가 사용자에게 무언가를 묻고 싶지만 응답할 터미널이 없는 상황입니다. `-p` 실행은 `--permission-prompt-tool`로 전달하는 MCP 도구 같은 [권한 호스트](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)가 있을 때만 `AskUserQuestion`을 제공하므로, 권한 호스트와 함께 실행을 시작하세요. 왕복 과정은 다음과 같습니다:

2021 2020 

20221. Claude가 `AskUserQuestion`을 호출합니다. `PreToolUse` 훅이 발생합니다.20211. Claude가 `AskUserQuestion`을 호출합니다. `PreToolUse` 훅이 발생합니다.

20232. 훅이 `permissionDecision: "defer"`를 반환합니다. 도구는 실행되지 않습니다. 프로세스는 `stop_reason: "tool_deferred"`와 함께 종료되며, 보류 중인 도구 호출은 트랜스크립트에 보존됩니다.20222. 훅이 `permissionDecision: "defer"`를 반환합니다. 도구는 실행되지 않습니다. 프로세스는 `stop_reason: "tool_deferred"`와 함께 종료되며, 보류 중인 도구 호출은 트랜스크립트에 보존됩니다.

20243. 호출하는 프로세스가 SDK 결과에서 `deferred_tool_use`를 읽고, 자체 UI에 질문을 표시한 다음 답변을 기다립니다.20233. 호출 프로세스가 SDK 결과에서 `deferred_tool_use`를 읽고, 자체 UI에 질문을 표시한 다음, 답변을 기다립니다.

20254. 호출하는 프로세스가 같은 권한 호스트로 `claude -p --resume <session-id>`를 실행합니다. 같은 도구 호출이 `PreToolUse`를 다시 발생시킵니다.20244. 호출 프로세스가 같은 권한 호스트로 `claude -p --resume <session-id>`를 실행합니다. 같은 도구 호출이 `PreToolUse`를 다시 발생시킵니다.

20265. 훅이 `updatedInput`에 답변을 담아 `permissionDecision: "allow"`를 반환합니다. 도구가 실행되고 Claude가 계속 진행합니다.20255. 훅이 `updatedInput`에 답변을 담아 `permissionDecision: "allow"`를 반환합니다. 도구가 실행되고 Claude가 계속 진행합니다.

2027 2026 

2028`deferred_tool_use` 필드에는 도구의 `id`, `name`, `input`이 담깁니다. `input`은 Claude가 도구 호출을 위해 생성한 매개변수로, 실행 전에 캡처됩니다.2027`deferred_tool_use` 필드에는 도구의 `id`, `name`, `input`이 담깁니다. `input`은 Claude가 도구 호출을 위해 생성한 매개변수로, 실행 전에 캡처됩니다:

2029 2028 

2030```json theme={null}2029```json theme={null}

2031{2030{


2041}2040}

2042```2041```

2043 2042 

2044타임아웃이나 재시도 제한은 없습니다. 세션은 재개할 때까지 디스크에 남아 있으며, [보존 정리 규칙](/docs/ko/claude-directory#cleaned-up-automatically)에 따라 기본적으로 30일 후 세션 파일을 삭제하는 [`cleanupPeriodDays`](/docs/ko/settings-reference#cleanupperioddays) 보존 정리의 적용을 받습니다. 재개할 때 답변이 준비되지 않았다면 훅이 다시 `"defer"`를 반환할 수 있으며, 프로세스는 같은 방식으로 종료됩니다. 호출하는 프로세스는 최종적으로 훅에서 `"allow"` 또는 `"deny"`를 반환하여 루프를 끝낼 시점을 제어합니다.2043타임아웃이나 재시도 제한은 없습니다. 세션은 재개할 때까지 디스크에 남아 있으며, [`cleanupPeriodDays`](/docs/ko/settings-reference#cleanupperioddays) 보존 정리의 적용을 받습니다. 이 정리는 [보존 정리 규칙](/docs/ko/claude-directory#cleaned-up-automatically)에 따라 기본적으로 30일 후 세션 파일을 삭제합니다. 재개할 때 답변이 준비되지 않았다면 훅은 다시 `"defer"`를 반환할 수 있으며, 프로세스는 같은 방식으로 종료됩니다. 호출 프로세스는 결국 훅에서 `"allow"` 또는 `"deny"`를 반환하여 루프를 끝낼 시점을 제어합니다.

2045 2044 

2046`"defer"`는 Claude가 해당 턴에서 단일 도구 호출을 할 때만 작동합니다. Claude가 여러 도구 호출을 한 번에 하면 `"defer"`는 경고와 함께 무시되고 도구는 일반 권한 흐름을 거쳐 진행됩니다. 이 제약은 재개 시 하나의 도구만 다시 실행할 수 있기 때문에 존재합니다. 묶음에서 하나의 호출만 지연하면 나머지 호출이 해결되지 않은 상태로 남게 됩니다.2045`"defer"`는 Claude가 턴에서 단일 도구 호출을 할 때만 작동합니다. Claude가 여러 도구 호출을 한 번에 하면 `"defer"`는 경고와 함께 무시되고, 도구는 일반 권한 흐름을 통해 진행됩니다. 이 제약은 재개 시 하나의 도구만 다시 실행할 수 있기 때문에 존재합니다. 다른 호출을 해결되지 않은 상태로 남기지 않고 배치에서 하나의 호출만 지연할 방법은 없습니다.

2047 2046 

2048재개할 때 지연된 도구를 더 이상 사용할 수 없으면, 프로세스는 훅이 발생하기 전에 `stop_reason: "tool_deferred_unavailable"` 및 `is_error: true`와 함께 종료됩니다. 이는 도구를 제공한 MCP 서버가 재개된 세션에 연결되지 않은 경우에 발생합니다. 어떤 도구가 사라졌는지 식별할 수 있도록 `deferred_tool_use` 페이로드는 여전히 포함됩니다.2047재개할 때 지연된 도구를 더 이상 사용할 수 없으면, 프로세스는 훅이 발생하기 전에 `stop_reason: "tool_deferred_unavailable"` 및 `is_error: true`와 함께 종료됩니다. 이는 도구를 제공한 MCP 서버가 재개된 세션에 연결되어 있지 않을 때 발생합니다. 어떤 도구가 누락되었는지 식별할 수 있도록 `deferred_tool_use` 페이로드는 여전히 포함됩니다.

2049 2048 

2050<Note>2049<Note>

2051 지연된 세션을 플랜 모드로 재개하려면 Claude Code가 승인을 위해 계획을 제시할 수 있도록 `--resume`과 함께 [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags)을 전달합니다. 특정 다른 실행 플래그를 전달하면 재개된 실행이 플랜 모드로 돌아가지 않습니다. [`-p`로 플랜 모드에서 재개](/docs/ko/sessions#resume-in-plan-mode-with-p)를 참조하세요. Claude Code v2.1.246 이상이 필요합니다.2050 플랜 모드에서 지연된 세션을 재개하려면 Claude Code가 승인을 위해 플랜을 제시할 수 있도록 `--resume`과 함께 [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags)을 전달하세요. 특정 다른 실행 플래그를 전달하면 재개된 실행이 플랜 모드로 돌아가지 않습니다. [`-p`로 플랜 모드에서 재개](/docs/ko/sessions#resume-in-plan-mode-with-p)를 참조하세요. Claude Code v2.1.246 이상이 필요합니다.

2052 2051 

2053 `-p`로 재개하면 Claude Code는 저장된 다른 권한 모드를 복원하지 않습니다. 새로운 `claude -p` 실행이 시작하는 권한 모드로 실행을 시작하므로, 지연된 세션이 `--permission-mode` 또는 `--dangerously-skip-permissions`를 사용했다면 다시 전달해야 합니다. `-p` 없이 `claude --resume <session-id>`로 재개하면 Claude Code는 [재개 시 권한 모드](/docs/ko/sessions#permission-mode-on-resume)에 나열된 예외를 제외하고 저장된 권한 모드를 복원합니다.2052 `-p`로 재개하면 Claude Code는 저장된 다른 권한 모드를 복원하지 않습니다. 새 `claude -p` 실행이 시작되는 권한 모드로 실행을 시작하므로, 지연된 세션에서 `--permission-mode` 또는 `--dangerously-skip-permissions`를 사용했다면 다시 전달하세요. `-p` 없이 `claude --resume <session-id>`로 재개하면 Claude Code는 [재개 시 권한 모드](/docs/ko/sessions#permission-mode-on-resume)에 나열된 예외를 제외하고 저장된 권한 모드를 복원합니다.

2054</Note>2053</Note>

2055 2054 

2056<h3 id="permissionrequest">2055<h3 id="permissionrequest">

2057 PermissionRequest2056 PermissionRequest

2058</h3>2057</h3>

2059 2058 

2060Claude Code가 도구 사용 권한을 요청하려고 할 때 실행됩니다. [비대화형 모드](/docs/ko/headless)의 백그라운드 서브에이전트처럼 프롬프트를 표시할 수 없는 세션에서도 Claude Code는 이 훅을 실행하며, 결정을 반환하는 훅이 없으면 도구 호출을 거부합니다. `--permission-prompt-tool`이나 Agent SDK의 [`canUseTool` 콜백](/docs/ko/agent-sdk/permissions)에 도달하는 호출의 경우 훅은 호스트와 함께 실행되며, 먼저 결정하는 쪽이 적용됩니다.2059Claude Code가 도구 사용 권한을 요청하려 할 때 실행됩니다. [비대화형 모드](/docs/ko/headless)의 백그라운드 서브에이전트처럼 프롬프트를 표시할 수 없는 세션에서도 Claude Code는 이 훅을 실행하며, 결정을 반환하는 훅이 없으면 도구 호출을 거부합니다. `--permission-prompt-tool` 또는 Agent SDK의 [`canUseTool` 콜백](/docs/ko/agent-sdk/permissions)에 도달하는 호출의 경우 훅이 호스트와 함께 실행되며, 먼저 결정하는 쪽이 적용됩니다.

2061사용자를 대신하여 허용하거나 거부하려면 [PermissionRequest 결정 제어](#permissionrequest-decision-control)를 사용합니다.2060[PermissionRequest 결정 제어](#permissionrequest-decision-control)를 사용해 사용자를 대신하여 허용하거나 거부하세요.

2062 2061 

2063Claude가 도구 사용 권한을 요청하는 순간 신호가 필요할 때 이 이벤트를 사용합니다. Claude Code는 프롬프트가 약 6초 동안 대기한 후에만 `permission_prompt` 유형의 [Notification](#notification) 훅을 실행합니다.2062Claude가 도구 사용 권한을 요청하는 즉시 신호가 필요할 때 이 이벤트를 사용하세요. Claude Code는 프롬프트가 약 6초 동안 대기한 후에야 `permission_prompt` 유형의 [Notification](#notification) 훅을 실행합니다.

2064 2063 

2065Claude Code는 샌드박스 처리된 명령의 [네트워크 요청](/docs/ko/sandboxing#network-isolation)에 대해서는 PermissionRequest 훅을 실행하지 않습니다. 해당 프롬프트에 대한 신호를 받으려면 `permission_prompt` 알림 유형을 사용합니다.2064Claude Code는 샌드박스된 명령의 [네트워크 요청](/docs/ko/sandboxing#network-isolation)에 대해서는 PermissionRequest 훅을 실행하지 않습니다. 해당 프롬프트에 대한 신호를 받으려면 `permission_prompt` 알림 유형을 사용하세요.

2066 2065 

2067도구 이름에 대해 일치시키며, 값은 PreToolUse와 같습니다.2066PreToolUse와 같은 값으로 도구 이름에 대해 매칭합니다.

2068 2067 

2069<h4 id="permissionrequest-input">2068<h4 id="permissionrequest-input">

2070 PermissionRequest 입력2069 PermissionRequest 입력

2071</h4>2070</h4>

2072 2071 

2073PermissionRequest 훅은 PreToolUse 훅처럼 `tool_name` 및 `tool_input` 필드를 수신하지만 `tool_use_id`는 없습니다. MCP 도구의 경우 [`mcp_server`](#pretooluse-input) 객체도 수신합니다. 선택적 `permission_suggestions` 배열에는 허용 규칙 추가나 권한 모드 변경처럼 Claude Code가 이 요청에 대해 제안하는 [권한 업데이트](#permission-update-entries)가 담깁니다.2072PermissionRequest 훅은 PreToolUse 훅처럼 `tool_name` 및 `tool_input` 필드를 받지만 `tool_use_id`는 받지 않습니다. MCP 도구의 경우 [`mcp_server`](#pretooluse-input) 객체도 받습니다. 선택적 `permission_suggestions` 배열에는 허용 규칙 추가나 권한 모드 변경처럼 Claude Code가 이 요청에 대해 제안하는 [권한 업데이트](#permission-update-entries)가 들어 있습니다.

2074 2073 

2075각 권한 대화 상자는 자체 옵션을 구성하므로 `permission_suggestions` 배열은 사용자에게 보이는 옵션의 정확한 목록이 아닙니다. 파일 편집 대화 상자처럼 일부 대화 상자는 배열을 전혀 읽지 않고 요청 자체에서 옵션을 도출합니다. 배열을 읽는 대화 상자도 제안이 배열에 남아 있는 옵션을 표시하지 않을 수 있습니다. 예를 들어 [`allowManagedPermissionRulesOnly`](/docs/ko/settings-reference#allowmanagedpermissionrulesonly)가 규칙 저장 옵션을 숨기는 경우입니다. 또한 [**Yes, and switch to auto mode**](/docs/ko/permission-modes#switch-permission-modes)처럼 제안 항목이 없는 옵션을 제공할 수도 있으며, 이 옵션은 권한 업데이트를 거치지 않고 권한 모드를 직접 변경합니다.2074각 권한 대화 상자는 자체 옵션을 구성하므로 `permission_suggestions` 배열은 화면에 표시되는 옵션의 정확한 목록이 아닙니다. 파일 편집용 대화 상자처럼 일부 대화 상자는 배열을 전혀 읽지 않고 요청 자체에서 옵션을 도출합니다. 배열을 읽는 대화 상자도 제안이 배열에 남아 있는 옵션을 숨길 수 있습니다. 예를 들어 [`allowManagedPermissionRulesOnly`](/docs/ko/settings-reference#allowmanagedpermissionrulesonly)가 규칙 저장 옵션을 숨기는 경우입니다. 또한 권한 업데이트를 통하지 않고 권한 모드를 직접 변경하는 [**Yes, and switch to auto mode**](/docs/ko/permission-modes#switch-permission-modes)처럼 제안 항목이 없는 옵션을 제공할 수도 있습니다.

2076 2075 

2077PreToolUse 훅은 권한이 필요한지 여부와 관계없이 모든 도구 호출 전에 실행됩니다. PermissionRequest 훅은 Claude Code가 권한을 요청하려고 할 때, 또는 프롬프트를 표시할 수 없는 호출을 자동으로 거부하려고 할 때만 실행됩니다. 두 이벤트 모두 [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)에서는 발생하지 않습니다.2076PreToolUse 훅은 권한이 필요한지 여부와 관계없이 모든 도구 호출 전에 실행됩니다. PermissionRequest 훅은 Claude Code가 권한을 요청하려 할 때, 또는 프롬프트를 표시할 수 없는 호출을 자동 거부하려 할 때만 실행됩니다. 두 이벤트 모두 [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)에 대해서는 발생하지 않습니다.

2078 2077 

2079```json theme={null}2078```json theme={null}

2080{2079{


2103 PermissionRequest 결정 제어2102 PermissionRequest 결정 제어

2104</h4>2103</h4>

2105 2104 

2106`PermissionRequest` 훅은 권한 요청을 허용하거나 거부할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 훅 스크립트는 다음 이벤트별 필드가 포함된 `decision` 객체를 반환할 수 있습니다.2105`PermissionRequest` 훅은 권한 요청을 허용하거나 거부할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 훅 스크립트는 다음 이벤트별 필드가 있는 `decision` 객체를 반환할 수 있습니다:

2107 2106 

2108| 필드 | 설명 |2107| 필드 | 설명 |

2109| :- | :- |2108| :- | :- |

2110| `behavior` | `"allow"`는 권한을 부여하고, `"deny"`는 거부합니다. [거부 및 확인 규칙](/docs/ko/permissions#manage-permissions)은 여전히 평가되므로, `"allow"`를 반환하는 훅이 일치하는 거부 규칙을 재정의하지는 않습니다 |2109| `behavior` | `"allow"`는 권한을 부여하고 `"deny"`는 거부합니다. [거부 및 확인 규칙](/docs/ko/permissions#manage-permissions)은 여전히 평가되므로 `"allow"`를 반환하는 훅이 일치하는 거부 규칙을 재정의하지 않습니다 |

2111| `updatedInput` | `"allow"` 전용: 실행 전에 도구의 입력 매개변수를 수정합니다. 전체 입력 객체를 대체하므로 수정한 필드와 함께 변경하지 않은 필드도 포함해야 합니다. 수정된 입력은 거부 및 확인 규칙에 대해 다시 평가됩니다 |2110| `updatedInput` | `"allow"` 전용: 실행 전에 도구의 입력 매개변수를 수정합니다. 전체 입력 객체를 대체하므로 수정된 필드와 함께 변경되지 않은 필드도 포함하세요. 수정된 입력은 거부 및 확인 규칙에 대해 다시 평가됩니다 |

2112| `updatedPermissions` | `"allow"` 전용: 허용 규칙 추가나 세션 권한 모드 변경처럼 적용할 [권한 업데이트 항목](#permission-update-entries)의 배열 |2111| `updatedPermissions` | `"allow"` 전용: 허용 규칙 추가나 세션 권한 모드 변경처럼 적용할 [권한 업데이트 항목](#permission-update-entries) 배열 |

2113| `message` | `"deny"` 전용: 권한이 거부된 이유를 Claude에게 알립니다 |2112| `message` | `"deny"` 전용: 권한이 거부된 이유를 Claude에게 알립니다 |

2114| `interrupt` | `"deny"` 전용: `true`이면 Claude를 중지합니다 |2113| `interrupt` | `"deny"` 전용: `true`이면 Claude를 중지합니다 |

2115 2114 


2133 권한 업데이트 항목2132 권한 업데이트 항목

2134</h4>2133</h4>

2135 2134 

2136`updatedPermissions` 출력 필드와 [`permission_suggestions` 입력 필드](#permissionrequest-input)는 모두 같은 항목 객체 배열을 사용합니다. 각 항목에는 다른 필드를 결정하는 `type`과 변경 사항이 기록되는 위치를 제어하는 `destination`이 있습니다.2135`updatedPermissions` 출력 필드와 [`permission_suggestions` 입력 필드](#permissionrequest-input)는 모두 동일한 항목 객체 배열을 사용합니다. 각 항목에는 나머지 필드를 결정하는 `type`과 변경 사항이 기록되는 위치를 제어하는 `destination`이 있습니다.

2137 2136 

2138| `type` | 필드 | 효과 |2137| `type` | 필드 | 효과 |

2139| :- | :- | :- |2138| :- | :- | :- |

2140| `addRules` | `rules`, `behavior`, `destination` | 권한 규칙을 추가합니다. `rules`는 `{toolName, ruleContent?}` 객체의 배열입니다. 도구 전체를 일치시키려면 `ruleContent`를 생략합니다. `behavior`는 `"allow"`, `"deny"` 또는 `"ask"`입니다 |2139| `addRules` | `rules`, `behavior`, `destination` | 권한 규칙을 추가합니다. `rules`는 `{toolName, ruleContent?}` 객체의 배열입니다. 도구 전체와 일치시키려면 `ruleContent`를 생략합니다. `behavior`는 `"allow"`, `"deny"` 또는 `"ask"`입니다 |

2141| `replaceRules` | `rules`, `behavior`, `destination` | `destination`에서 지정된 `behavior`의 모든 규칙을 제공된 `rules`로 대체합니다 |2140| `replaceRules` | `rules`, `behavior`, `destination` | `destination`에 있는 지정된 `behavior`의 모든 규칙을 제공된 `rules`로 대체합니다 |

2142| `removeRules` | `rules`, `behavior`, `destination` | 지정된 `behavior`의 일치하는 규칙을 제거합니다 |2141| `removeRules` | `rules`, `behavior`, `destination` | 지정된 `behavior`의 일치하는 규칙을 제거합니다 |

2143| `setMode` | `mode`, `destination` | 권한 모드를 변경합니다. 유효한 모드는 `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan`, 그리고 `default`의 별칭인 `manual`입니다 |2142| `setMode` | `mode`, `destination` | 권한 모드를 변경합니다. 유효한 모드는 `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan`, 그리고 `default`의 별칭인 `manual`입니다 |

2144| `addDirectories` | `directories`, `destination` | 작업 디렉터리를 추가합니다. `directories`는 경로 문자열의 배열입니다 |2143| `addDirectories` | `directories`, `destination` | 작업 디렉터리를 추가합니다. `directories`는 경로 문자열의 배열입니다 |

2145| `removeDirectories` | `directories`, `destination` | 작업 디렉터리를 제거합니다 |2144| `removeDirectories` | `directories`, `destination` | 작업 디렉터리를 제거합니다 |

2146 2145 

2147<Note>2146<Note>

2148 `bypassPermissions`를 사용하는 `setMode`는 우회 모드를 이미 사용할 수 있는 상태로 세션을 시작한 경우에만 적용됩니다. 즉, `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions`를 사용했거나 [사용자 설정, `--settings` 또는 관리형 설정](/docs/ko/settings-reference#permissions-defaultmode)에 `permissions.defaultMode: "bypassPermissions"`가 있어야 합니다. 그렇지 않으면 업데이트는 아무 효과가 없습니다. [`permissions.disableBypassPermissionsMode`](/docs/ko/permissions#managed-settings)가 이 모드를 비활성화한 경우나 세션이 [제한 모드](/docs/ko/cli-reference#cli-flags)로 시작된 경우에도 업데이트는 아무 효과가 없습니다.2147 `bypassPermissions`를 사용하는 `setMode`는 우회 모드를 이미 사용할 수 있는 상태로 세션을 시작한 경우에만 적용됩니다. 즉, `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions`, 또는 [사용자 설정, `--settings` 또는 관리형 설정](/docs/ko/settings-reference#permissions-defaultmode)의 `permissions.defaultMode: "bypassPermissions"`가 필요합니다. 그렇지 않으면 업데이트는 아무 효과가 없습니다. [`permissions.disableBypassPermissionsMode`](/docs/ko/permissions#managed-settings)가 해당 모드를 비활성화한 경우나 세션이 [제한 모드](/docs/ko/cli-reference#cli-flags)로 시작된 경우에도 업데이트는 아무 효과가 없습니다.

2149 2148 

2150 `bypassPermissions`는 `destination`과 관계없이 `defaultMode`로 저장되지 않습니다.2149 `bypassPermissions`는 `destination`과 관계없이 `defaultMode`로 저장되지 않습니다.

2151</Note>2150</Note>

2152 2151 

2153모든 항목의 `destination` 필드는 변경 사항을 메모리에만 유지할지 설정 파일에 저장할지를 결정합니다.2152모든 항목의 `destination` 필드는 변경 사항이 메모리에만 유지될지 설정 파일에 저장될지를 결정합니다.

2154 2153 

2155| `destination` | 기록 위치 |2154| `destination` | 기록 위치 |

2156| :- | :- |2155| :- | :- |

2157| `session` | 메모리에만 유지되며 세션이 끝나면 삭제됩니다 |2156| `session` | 메모리에만 유지되며 세션이 끝나면 폐기됨 |

2158| `localSettings` | `.claude/settings.local.json` |2157| `localSettings` | `.claude/settings.local.json` |

2159| `projectSettings` | `.claude/settings.json` |2158| `projectSettings` | `.claude/settings.json` |

2160| `userSettings` | `~/.claude/settings.json` |2159| `userSettings` | `~/.claude/settings.json` |


2167 2166 

2168도구가 성공적으로 완료된 직후에 실행됩니다.2167도구가 성공적으로 완료된 직후에 실행됩니다.

2169 2168 

2170도구 이름으로 매칭하며, PreToolUse와 같은 값을 사용합니다.2169도구 이름과 일치하며, 값은 PreToolUse와 동일합니다.

2171 2170 

2172도구 이름이 적절한 필터가 아닐 때는 더 넓게 매칭합니다.2171도구 이름이 적절한 필터가 아닐 때는 더 넓게 일치시킬 수 있습니다.

2173 2172 

2174* 어떤 도구든 성공적으로 완료된 후에 훅을 실행하려면 `matcher`를 생략하거나 `"*"`로 설정합니다. 그러면 훅이 직접 변경 내용을 파악할 수 있습니다. 예를 들어 `git status --porcelain`을 실행하면 `git diff`가 놓치는 추적되지 않는 파일도 나열됩니다. 실패한 도구 호출에 대해서는 같은 훅을 [PostToolUseFailure](#posttoolusefailure)에 추가합니다.2173* 어떤 도구든 성공적으로 완료된 후 훅을 실행하려면 `matcher`를 생략하거나 `"*"`로 설정합니다. 그러면 훅이 직접 무엇이 변경되었는지 파악할 수 있습니다. 예를 들어 `git status --porcelain`을 실행하면 `git diff`가 놓치는 추적되지 않은 파일도 나열됩니다. 실패한 도구 호출의 경우 동일한 훅을 [PostToolUseFailure](#posttoolusefailure)에 추가합니다.

2175* 무엇이 파일을 기록했든 특정 파일이 디스크에서 변경될 때 훅을 실행하려면 [FileChanged](#filechanged)를 사용합니다. `Bash` 명령이나 Claude Code 외부의 프로세스가 같은 파일을 다시 쓰는 경우, Claude Code는 `Edit|Write`에 매칭되는 `PostToolUse` 훅을 실행하지 않습니다.2174* 무엇이 파일을 기록했든 관계없이 특정 파일이 디스크에서 변경될 때 훅을 실행하려면 [FileChanged](#filechanged)를 사용합니다. `Bash` 명령이나 Claude Code 외부의 프로세스가 같은 파일을 다시 기록하는 경우, Claude Code는 `Edit|Write`와 일치하는 `PostToolUse` 훅을 실행하지 않습니다.

2176 2175 

2177<h4 id="posttooluse-input">2176<h4 id="posttooluse-input">

2178 PostToolUse input2177 PostToolUse 입력

2179</h4>2178</h4>

2180 2179 

2181`PostToolUse` 훅은 도구가 이미 성공적으로 실행된 후에 발생합니다. 입력에는 도구에 전송된 인수인 `tool_input`과 도구가 반환한 결과인 `tool_response`가 모두 포함됩니다. 두 필드의 정확한 스키마는 도구에 따라 다릅니다. 파일 도구의 `tool_input` 경로는 [PreToolUse](#pretooluse-input)와 같은 형식으로 전달됩니다. 즉, 항상 절대 경로이며 플랫폼 고유의 구분자를 사용하므로 Windows에서는 백슬래시가 사용됩니다. MCP 도구의 경우 입력에 [`mcp_server`](#pretooluse-input) 객체도 포함됩니다.2180`PostToolUse` 훅은 도구가 이미 성공적으로 실행된 후에 발생합니다. 입력에는 도구에 전송된 인수인 `tool_input`과 도구가 반환한 결과인 `tool_response`가 모두 포함됩니다. 두 필드의 정확한 스키마는 도구에 따라 다릅니다. 파일 도구의 `tool_input` 경로는 [PreToolUse](#pretooluse-input)와 동일한 형식으로 전달됩니다. 즉, 항상 절대 경로이며 플랫폼의 기본 구분자를 사용하므로 Windows에서는 백슬래시입니다. MCP 도구의 경우 입력에 [`mcp_server`](#pretooluse-input) 객체도 포함됩니다.

2182 2181 

2183```json theme={null}2182```json theme={null}

2184{2183{


2203 2202 

2204| 필드 | 설명 |2203| 필드 | 설명 |

2205| :- | :- |2204| :- | :- |

2206| `duration_ms` | 선택 사항입니다. 밀리초 단위의 도구 실행 시간입니다. 권한 프롬프트와 PreToolUse 훅에 소요된 시간은 제외됩니다 |2205| `duration_ms` | 선택 사항. 도구 실행 시간(밀리초)입니다. 권한 프롬프트와 PreToolUse 훅에서 소요된 시간은 제외됩니다 |

2207 2206 

2208<h4 id="posttooluse-decision-control">2207<h4 id="posttooluse-decision-control">

2209 PostToolUse decision control2208 PostToolUse 결정 제어

2210</h4>2209</h4>

2211 2210 

2212`PostToolUse` 훅은 도구 실행 후 Claude에 피드백을 제공할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도, 훅 스크립트는 다음과 같은 이벤트별 필드를 반환할 수 있습니다.2211`PostToolUse` 훅은 도구 실행 후 Claude에게 피드백을 제공할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 훅 스크립트는 다음 이벤트별 필드를 반환할 수 있습니다.

2213 2212 

2214| 필드 | 설명 |2213| 필드 | 설명 |

2215| :- | :- |2214| :- | :- |

2216| `decision` | `"block"`은 도구 결과 옆에 `reason`을 추가합니다. Claude는 여전히 원래 출력을 봅니다. 출력을 대체하려면 `updatedToolOutput`을 사용합니다 |2215| `decision` | `"block"`은 도구 결과 옆에 `reason`을 추가합니다. Claude는 여전히 원래 출력을 봅니다. 출력을 대체하려면 `updatedToolOutput`을 사용합니다 |

2217| `reason` | `decision`이 `"block"`일 때 Claude에 표시되는 설명입니다 |2216| `reason` | `decision`이 `"block"`일 때 Claude에게 표시되는 설명 |

2218| `additionalContext` | 도구 결과와 함께 Claude의 컨텍스트에 추가되는 문자열입니다. [Claude에 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |2217| `additionalContext` | 도구 결과와 함께 Claude의 컨텍스트에 추가되는 문자열. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |

2219| `classifierContext` | Claude가 아닌 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode) 분류기를 위한, 이 호출의 결과에 대한 짧은 메모입니다. [자동 모드 분류기를 위해 결과에 주석 달기](#annotate-a-result-for-the-auto-mode-classifier)를 참조하세요. Claude Code v2.1.236 이상이 필요합니다 |2218| `classifierContext` | Claude가 아닌 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode) 분류기를 위한, 이 호출의 결과에 관한 짧은 메모. [자동 모드 분류기를 위한 결과 주석 달기](#annotate-a-result-for-the-auto-mode-classifier)를 참조하세요. Claude Code v2.1.236 이상이 필요합니다 |

2220| `updatedToolOutput` | 도구의 출력이 Claude에 전송되기 전에 제공된 값으로 대체합니다. 값은 도구의 출력 형태와 일치해야 합니다 |2219| `updatedToolOutput` | Claude에게 전송되기 전에 도구의 출력을 제공된 값으로 대체합니다. 값은 도구의 출력 형태와 일치해야 합니다 |

2221| `updatedMCPToolOutput` | [MCP 도구](#match-mcp-tools)의 출력만 대체합니다. 모든 도구에서 작동하는 `updatedToolOutput`을 사용하는 것이 좋습니다 |2220| `updatedMCPToolOutput` | [MCP 도구](#match-mcp-tools)에 대해서만 출력을 대체합니다. 모든 도구에서 작동하는 `updatedToolOutput`을 사용하는 것이 좋습니다 |

2222 2221 

2223아래 예시는 `Bash` 호출의 출력을 대체합니다. 대체 값은 `Bash` 도구의 출력 형태와 일치합니다.2222아래 예시는 `Bash` 호출의 출력을 대체합니다. 대체 값은 `Bash` 도구의 출력 형태와 일치합니다.

2224 2223 


2238```2237```

2239 2238 

2240<Warning>2239<Warning>

2241 `updatedToolOutput`은 Claude가 보는 내용만 변경합니다. 훅이 발생할 때는 도구가 이미 실행된 상태이므로, 기록된 파일, 실행된 명령, 전송된 네트워크 요청은 이미 적용되었습니다. OpenTelemetry 도구 스팬이나 분석 이벤트와 같은 텔레메트리도 훅이 실행되기 전에 원래 출력을 수집합니다. 도구 호출이 실행되기 전에 이를 차단하거나 수정하려면 대신 [PreToolUse](#pretooluse) 훅을 사용합니다.2240 `updatedToolOutput`은 Claude가 보는 내용만 변경합니다. 훅이 발생할 때는 도구가 이미 실행된 상태이므로, 기록된 파일, 실행된 명령, 전송된 네트워크 요청은 이미 적용되었습니다. OpenTelemetry 도구 스팬 및 분석 이벤트와 같은 텔레메트리도 훅이 실행되기 전에 원래 출력을 캡처합니다. 도구 호출이 실행되기 전에 이를 방지하거나 수정하려면 대신 [PreToolUse](#pretooluse) 훅을 사용하세요.

2242 2241 

2243 대체 값은 도구의 출력 형태와 일치해야 합니다. 기본 제공 도구는 일반 문자열이 아닌 구조화된 객체를 반환합니다. 예를 들어 `Bash`는 `stdout`, `stderr`, `interrupted`, `isImage` 필드가 있는 객체를 반환합니다. 기본 제공 도구의 경우 도구의 출력 스키마와 일치하지 않는 값은 무시되고 원래 출력이 사용됩니다. MCP 도구 출력은 스키마 검증 없이 그대로 전달됩니다. Claude에 필요한 오류 세부 정보를 제거하면 Claude가 잘못된 가정에 따라 작업을 진행할 수 있습니다.2242 대체 값은 도구의 출력 형태와 일치해야 합니다. 기본 제공 도구는 일반 문자열이 아닌 구조화된 객체를 반환합니다. 예를 들어 `Bash`는 `stdout`, `stderr`, `interrupted`, `isImage` 필드가 있는 객체를 반환합니다. 기본 제공 도구의 경우 도구의 출력 스키마와 일치하지 않는 값은 무시되고 원래 출력이 사용됩니다. MCP 도구 출력은 스키마 검증 없이 그대로 전달됩니다. Claude에게 필요한 오류 세부 정보를 제거하면 Claude가 잘못된 가정에 따라 작업을 진행할 수 있습니다.

2244</Warning>2243</Warning>

2245 2244 

2246<h4 id="annotate-a-result-for-the-auto-mode-classifier">2245<h4 id="annotate-a-result-for-the-auto-mode-classifier">

2247 Annotate a result for the auto mode classifier2246 자동 모드 분류기를 위한 결과 주석 달기

2248</h4>2247</h4>

2249 2248 

2250`classifierContext`를 반환하면 도구 호출 결과에 대한 짧은 메모를 Claude가 아닌 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode) 분류기에 보낼 수 있습니다. 분류기는 [도구 결과 자체를 전달받지 않으므로](/docs/ko/permission-modes#how-the-classifier-evaluates-actions), 이 필드는 분류기가 이후 작업을 검토하기 전에 호출이 반환한 내용에 대해 알려 주는 공식적인 방법입니다. 이 필드에는 Claude Code v2.1.236 이상이 필요합니다.2249`classifierContext`를 반환하면 도구 호출 결과에 관한 짧은 메모를 Claude가 아닌 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode) 분류기에 보낼 수 있습니다. 분류기는 [도구 결과 자체를 받지 않으므로](/docs/ko/permission-modes#how-the-classifier-evaluates-actions), 이 필드는 분류기가 이후 작업을 검토하기 전에 호출이 반환한 내용에 관해 알려 줄 수 있는 공식적인 방법입니다. 이 필드는 Claude Code v2.1.236 이상이 필요합니다.

2251 2250 

2252아래 예시는 쿼리 출력의 출처를 분류기에 알려 줍니다.2251아래 예시는 쿼리 출력의 출처를 분류기에 알려 줍니다.

2253 2252 


2260}2259}

2261```2260```

2262 2261 

2263분류기가 메모에 부여하는 비중은 훅을 구성한 위치에 따라 달라집니다.2262분류기가 메모에 부여하는 가중치는 훅을 구성한 위치에 따라 달라집니다.

2264 2263 

2265* **Claude Code에서 구성된 훅**: 설정 파일, 플러그인, 스킬, 에이전트 frontmatter의 훅에 대해 분류기는 메모를 검증되지 않은, 애플리케이션이 제공한 컨텍스트로 취급합니다. 메모는 사용자 의도를 확립하지 않으며, 메모가 사용자가 무언가를 승인했거나 요청했다고 주장하면 분류기는 그 주장을 대화 속 사용자의 실제 메시지와 대조합니다2264* **Claude Code에서 구성한 훅**: 설정 파일, 플러그인, 스킬, 에이전트 frontmatter의 훅의 경우 분류기는 메모를 검증되지 않은, 애플리케이션이 제공한 컨텍스트로 취급합니다. 메모는 사용자 의도를 확립하지 않으며, 사용자가 무언가를 승인하거나 요청했다고 주장하는 경우 분류기는 그 주장을 대화 내 사용자 본인의 메시지와 대조하여 확인합니다

2266* **프로세스 내 Agent SDK 콜백**: Claude Code를 내장한 애플리케이션이 훅을 [TypeScript SDK 콜백](/docs/ko/agent-sdk/hooks)으로 등록하고 라이브 세션 중에 메모를 반환하면, 분류기는 메모에 전달된 사용자 진술을 사용자 의도로 고려할 수 있습니다. 이러한 진술은 분류기가 사용자가 보낸 메시지로부터 받아들일 동의 요건을 충족할 수 있지만, 사용자 자신의 메시지로도 해제할 수 없는 차단을 해제하지는 못합니다. 세션이 재개된 후에는 Claude Code가 복원된 메모를 검증되지 않은 컨텍스트로 취급합니다. 두 그룹의 훅이 같은 호출에 주석을 달면 분류기는 결합된 메모를 검증되지 않은 것으로 취급합니다2265* **인프로세스 Agent SDK 콜백**: Claude Code를 내장한 애플리케이션이 훅을 [TypeScript SDK 콜백](/docs/ko/agent-sdk/hooks)으로 등록하고 라이브 세션 중에 메모를 반환하는 경우, 분류기는 메모에 전달된 사용자 진술을 사용자 의도로 간주할 수 있습니다. 이러한 진술은 사용자가 보낸 메시지로 분류기가 인정하는 동의 요건을 충족할 수 있지만, 사용자 본인의 메시지로도 해제할 수 없는 차단은 해제하지 못합니다. 세션이 재개된 후에는 Claude Code가 복원된 메모를 검증되지 않은 컨텍스트로 취급합니다. 두 그룹의 훅이 모두 같은 호출에 주석을 다는 경우 분류기는 결합된 메모를 검증되지 않은 것으로 취급합니다

2267 2266 

2268Claude Code는 메모를 전달할 때 다음 제한을 적용합니다.2267Claude Code는 메모를 전달할 때 다음 제한을 적용합니다.

2269 2268 

2270* **길이**: Claude Code는 하나의 도구 호출에 대한 메모를 2,000자로 제한하고 나머지는 잘라 냅니다. 이 한도는 해당 호출에 응답하는 모든 훅이 공유합니다2269* **길이**: Claude Code는 하나의 도구 호출에 대한 메모를 2,000자로 제한하고 나머지는 잘라냅니다. 이 제한은 해당 호출에 응답하는 모든 훅이 공유합니다

2271* **동기 응답만 해당**: [백그라운드에서 실행되는](#run-hooks-in-the-background) 훅의 응답에 있는 이 필드는 무시됩니다. 해당 응답은 Claude Code가 도구 결과를 기록한 후에 도착하기 때문입니다2270* **동기 응답만 해당**: [백그라운드에서 실행되는](#run-hooks-in-the-background) 훅의 응답은 Claude Code가 도구 결과를 기록한 후에 도착하므로, Claude Code는 해당 응답의 이 필드를 무시합니다

2272* **분류기가 기록하지 않는 호출**: 분류기의 트랜스크립트에는 파일 읽기나 검색 같은 읽기 전용 조회가 포함되지 않습니다. Claude Code는 이러한 호출에 첨부된 메모를 삭제합니다2271* **분류기가 기록하지 않는 호출**: 분류기의 트랜스크립트는 파일 읽기 및 검색과 같은 읽기 전용 조회를 생략합니다. Claude Code는 이러한 호출에 첨부된 메모를 폐기합니다

2273* **재작성과의 상호작용**: 메모가 `updatedToolOutput`으로 대체하는 출력을 설명하는 경우, 같은 훅 응답에서 두 필드를 모두 반환합니다. 해당 재작성이 거부되거나 다른 훅의 재작성이 이를 대체하면 Claude Code는 메모를 삭제합니다. 재작성 없이 반환한 메모는 다른 훅이 출력을 재작성하더라도 Claude Code가 전달합니다2272* **재작성과의 상호 작용**: 메모가 `updatedToolOutput`으로 대체하는 출력을 설명하는 경우, 같은 훅 응답에서 두 필드를 모두 반환합니다. 해당 재작성이 거부되거나 다른 훅의 재작성이 이를 대체하면 Claude Code는 메모를 삭제합니다. 재작성 없이 반환한 메모는 다른 훅이 출력을 재작성하더라도 Claude Code가 전달합니다

2274 2273 

2275<Warning>2274<Warning>

2276 분류기는 `classifierContext`에 넣은 내용을 세션을 호스팅하는 애플리케이션의 정보로 읽으므로, 신뢰할 수 없는 도구 출력이나 서드파티 텍스트를 여기에 복사하지 마세요. 메모는 출처에 관한 사실이나 이에 대한 사용자 진술처럼 해당 호출 하나에 대한 짧은 주장으로 유지하고, 관련 없는 메시지나 일련의 이벤트를 전달하는 데 이 필드를 사용하지 마세요.2275 분류기는 `classifierContext`에 넣은 내용을 세션을 호스팅하는 애플리케이션의 정보로 읽으므로, 신뢰할 수 없는 도구 출력이나 제3자 텍스트를 복사해 넣지 마세요. 메모는 출처에 관한 사실이나 해당 호출에 관한 사용자 진술처럼 이 호출 하나에 대한 짧은 주장으로 유지하세요. 이 필드를 관련 없는 메시지나 이벤트 스트림을 전달하는 데 사용하지 마세요.

2277</Warning>2276</Warning>

2278 2277 

2279<h3 id="posttoolusefailure">2278<h3 id="posttoolusefailure">

2280 PostToolUseFailure2279 PostToolUseFailure

2281</h3>2280</h3>

2282 2281 

2283실행을 시작한 도구가 실패할 때 실행됩니다. 즉, 도구가 오류를 발생시켰거나 MCP 도구가 오류 결과를 반환한 경우입니다. 실패를 로그에 기록하거나, 알림을 보내거나, Claude에 수정 피드백을 제공하는 데 사용합니다.2282실행을 시작한 도구가 실패할 때 실행됩니다. 즉, 도구가 오류를 발생시켰거나 MCP 도구가 오류 결과를 반환한 경우입니다. 실패를 로그에 기록하거나, 알림을 보내거나, Claude에게 수정 피드백을 제공하는 데 사용합니다.

2284 2283 

2285도구 이름으로 매칭하며, PreToolUse와 같은 값을 사용합니다.2284도구 이름과 일치하며, 값은 PreToolUse와 동일합니다.

2286 2285 

2287<Note>2286<Note>

2288 이 이벤트는 실행 전에 거부된 도구 호출에 대해서는 발생하지 않습니다. 알 수 없는 도구 이름, 스키마 또는 도구별 검증에 실패한 입력, 권한 거부가 여기에 해당합니다. 검증 거부는 `tool_use_error` 결과로 반환되며 훅이 실행되기 전에 발생하므로, `PreToolUse`와 `PostToolUseFailure` 모두 발생하지 않습니다. 권한 거부는 `PreToolUse`를 발생시키지만 이 이벤트는 발생시키지 않습니다. [PermissionDenied](#permissiondenied)를 참조하세요.2287 이 이벤트는 실행 전에 거부된 도구 호출에는 발생하지 않습니다. 예를 들어 알 수 없는 도구 이름, 스키마 또는 도구별 검증에 실패한 입력, 권한 거부가 해당합니다. 검증 거부는 `tool_use_error` 결과로 반환되며 훅이 실행되기 전에 발생하므로 `PreToolUse`와 `PostToolUseFailure` 모두 발생하지 않습니다. 권한 거부는 `PreToolUse`는 발생시키지만 이 이벤트는 발생시키지 않습니다. [PermissionDenied](#permissiondenied)를 참조하세요.

2289</Note>2288</Note>

2290 2289 

2291<h4 id="posttoolusefailure-input">2290<h4 id="posttoolusefailure-input">

2292 PostToolUseFailure input2291 PostToolUseFailure 입력

2293</h4>2292</h4>

2294 2293 

2295PostToolUseFailure 훅은 PostToolUse와 같은 `tool_name` 및 `tool_input` 필드를 전달받으며, 오류 정보는 최상위 필드로 함께 전달받습니다. MCP 도구의 경우 [`mcp_server`](#pretooluse-input) 객체도 전달받습니다. 예를 들어 실패한 `npm test` 명령은 다음을 전달할 수 있습니다.2294PostToolUseFailure 훅은 PostToolUse와 동일한 `tool_name` 및 `tool_input` 필드와 함께 최상위 필드로 오류 정보를 받습니다. MCP 도구의 경우 [`mcp_server`](#pretooluse-input) 객체도 받습니다. 예를 들어 실패한 `npm test` 명령은 다음을 전달할 수 있습니다.

2296 2295 

2297```json theme={null}2296```json theme={null}

2298{2297{


2315 2314 

2316| 필드 | 설명 |2315| 필드 | 설명 |

2317| :- | :- |2316| :- | :- |

2318| `error` | 무엇이 잘못되었는지 설명하는 문자열입니다. 형식은 실패한 도구에 따라 다릅니다 |2317| `error` | 무엇이 잘못되었는지 설명하는 문자열. 형식은 실패한 도구에 따라 다릅니다 |

2319| `is_interrupt` | 선택적 불리언입니다. 실패가 도구가 보고한 오류가 아닌 중단(abort)으로 Claude Code에 도달한 경우 true입니다. 실행 중인 도구를 취소해도 이 훅은 발생하지 않으며, 대신 도구 결과에 중단 메시지가 포함됩니다 |2318| `is_interrupt` | 선택적 boolean. 실패가 도구가 보고한 오류가 아니라 중단(abort)으로 Claude Code에 도달한 경우 true입니다. 실행 중인 도구를 취소하면 이 훅이 발생하지 않으며, 대신 도구 결과에 중단 메시지가 포함됩니다 |

2320| `duration_ms` | 선택 사항입니다. 밀리초 단위의 도구 실행 시간입니다. 권한 프롬프트와 PreToolUse 훅에 소요된 시간은 제외됩니다 |2319| `duration_ms` | 선택 사항. 도구 실행 시간(밀리초)입니다. 권한 프롬프트와 PreToolUse 훅에서 소요된 시간은 제외됩니다 |

2321 2320 

2322`error` 문자열은 일반적으로 Claude가 실패한 도구의 결과로 받는 텍스트와 같습니다. 형식은 도구와 실패 유형에 따라 다릅니다. 훅은 `tool_name`, `is_interrupt`, 그리고 첫 줄의 `Exit code N`을 기준으로 판단하고, 문자열의 나머지 부분은 안정적인 형식이 아닌 표시용 텍스트로 취급합니다.2321`error` 문자열은 일반적으로 Claude가 실패한 도구의 결과로 받는 텍스트와 동일합니다. 형식은 도구와 실패 유형에 따라 다릅니다. 훅의 판단 기준은 `tool_name`, `is_interrupt`, 그리고 첫 줄의 `Exit code N`으로 삼고, 문자열의 나머지 부분은 안정적인 형식이 아닌 표시용 텍스트로 취급하세요.

2323 2322 

2324* Bash와 PowerShell의 경우, 실행 후 종료된 명령은 첫 줄에 `Exit code N`을 생성하고, 이어서 명령이 생성한 출력을 stdout과 stderr가 섞인 하나의 블록으로 생성합니다2323* Bash와 PowerShell의 경우, 실행되어 종료된 명령은 첫 줄에 `Exit code N`을 생성하고, 그다음에 명령이 생성한 출력이 stdout과 stderr가 섞인 하나의 블록으로 이어집니다

2325* Claude Code가 셸 프로세스 자체를 시작할 수 없었던 경우, 페이로드에 종료 코드 줄 없이 실패 메시지만 포함될 수도 있습니다2324* Claude Code가 셸 프로세스 자체를 시작할 수 없었던 경우, 페이로드에 종료 코드 줄 없이 실패 메시지만 포함될 수도 있습니다

2326* Claude Code는 긴 문자열의 가운데를 `... [N characters truncated] ...` 마커를 기준으로 잘라 내며, `Command timed out after 2m 0s`와 같은 자체 줄을 삽입할 수 있습니다2325* Claude Code는 긴 문자열의 중간을 `... [N characters truncated] ...` 마커를 중심으로 잘라내며, `Command timed out after 2m 0s`와 같은 자체 줄을 삽입할 수 있습니다

2327 2326 

2328<h4 id="posttoolusefailure-decision-control">2327<h4 id="posttoolusefailure-decision-control">

2329 PostToolUseFailure decision control2328 PostToolUseFailure 결정 제어

2330</h4>2329</h4>

2331 2330 

2332`PostToolUseFailure` 훅은 도구 실패 후 Claude에 컨텍스트를 제공할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도, 훅 스크립트는 다음과 같은 이벤트별 필드를 반환할 수 있습니다.2331`PostToolUseFailure` 훅은 도구 실패 후 Claude에게 컨텍스트를 제공할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 훅 스크립트는 다음 이벤트별 필드를 반환할 수 있습니다.

2333 2332 

2334| 필드 | 설명 |2333| 필드 | 설명 |

2335| :- | :- |2334| :- | :- |

2336| `additionalContext` | 오류와 함께 Claude의 컨텍스트에 추가되는 문자열입니다. [Claude에 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |2335| `additionalContext` | 오류와 함께 Claude의 컨텍스트에 추가되는 문자열. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |

2337 2336 

2338```json theme={null}2337```json theme={null}

2339{2338{


2348 PostToolBatch2347 PostToolBatch

2349</h3>2348</h3>

2350 2349 

2351배치의 모든 도구 호출이 처리된 후, Claude Code가 모델에 다음 요청을 보내기 전에 한 번 실행됩니다. `PostToolUse`는 도구마다 한 번씩 발생하므로, Claude가 병렬 도구 호출을 하면 동시에 발생합니다. `PostToolBatch`는 전체 배치에 대해 정확히 한 번 발생하므로, 단일 도구가 아닌 실행된 도구 집합에 따라 달라지는 컨텍스트를 주입하기에 적합합니다. 이 이벤트에는 matcher가 없습니다.2350배치의 모든 도구 호출이 처리된 후, Claude Code가 모델에 다음 요청을 보내기 전에 한 번 실행됩니다. `PostToolUse`는 도구마다 한 번씩 발생하므로, Claude가 병렬 도구 호출을 하면 동시에 발생합니다. `PostToolBatch`는 전체 배치에 대해 정확히 한 번 발생하므로, 단일 도구가 아닌 실행된 도구 집합에 따라 달라지는 컨텍스트를 주입하기에 적합한 위치입니다. 이 이벤트에는 matcher가 없습니다.

2352 2351 

2353<h4 id="posttoolbatch-input">2352<h4 id="posttoolbatch-input">

2354 PostToolBatch input2353 PostToolBatch 입력

2355</h4>2354</h4>

2356 2355 

2357[공통 입력 필드](#common-input-fields) 외에도, PostToolBatch 훅은 배치의 모든 도구 호출을 설명하는 배열인 `tool_calls`를 전달받습니다.2356[공통 입력 필드](#common-input-fields) 외에도 PostToolBatch 훅은 배치의 모든 도구 호출을 설명하는 배열인 `tool_calls`를 받습니다.

2358 2357 

2359```json theme={null}2358```json theme={null}

2360{2359{


2380}2379}

2381```2380```

2382 2381 

2383`tool_response`에는 모델이 해당 `tool_result` 블록에서 받는 것과 같은 내용이 포함됩니다. 값은 도구가 내보낸 그대로의 직렬화된 문자열 또는 콘텐츠 블록 배열입니다. `Read`의 경우 원시 파일 내용이 아니라 줄 번호가 앞에 붙은 텍스트를 의미합니다. 응답이 클 수 있으므로 필요한 필드만 파싱합니다.2382`tool_response`에는 모델이 해당 `tool_result` 블록에서 받는 것과 동일한 내용이 포함됩니다. 값은 도구가 내보낸 그대로의 직렬화된 문자열 또는 콘텐츠 블록 배열입니다. `Read`의 경우 원시 파일 내용이 아니라 줄 번호가 앞에 붙은 텍스트를 의미합니다. 응답이 클 수 있으므로 필요한 필드만 파싱하세요.

2384 2383 

2385<Note>2384<Note>

2386 `tool_response`의 형태는 `PostToolUse`의 것과 다릅니다. `PostToolUse`는 `Write`의 `{filePath: "...", type: "create"}`와 같은 도구의 구조화된 `Output` 객체를 전달하고, `PostToolBatch`는 모델이 보는 직렬화된 `tool_result` 내용을 전달합니다.2385 `tool_response`의 형태는 `PostToolUse`의 것과 다릅니다. `PostToolUse`는 `Write`의 경우 `{filePath: "...", type: "create"}`와 같은 도구의 구조화된 `Output` 객체를 전달하고, `PostToolBatch`는 모델이 보는 직렬화된 `tool_result` 콘텐츠를 전달합니다.

2387</Note>2386</Note>

2388 2387 

2389<h4 id="posttoolbatch-decision-control">2388<h4 id="posttoolbatch-decision-control">

2390 PostToolBatch decision control2389 PostToolBatch 결정 제어

2391</h4>2390</h4>

2392 2391 

2393`PostToolBatch` 훅은 Claude를 위한 컨텍스트를 주입할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도, 훅 스크립트는 다음과 같은 이벤트별 필드를 반환할 수 있습니다.2392`PostToolBatch` 훅은 Claude를 위한 컨텍스트를 주입할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 훅 스크립트는 다음 이벤트별 필드를 반환할 수 있습니다.

2394 2393 

2395| 필드 | 설명 |2394| 필드 | 설명 |

2396| :- | :- |2395| :- | :- |

2397| `additionalContext` | 다음 모델 호출 전에 한 번 주입되는 컨텍스트 문자열입니다. 전달 세부 사항, 포함할 내용, 재개된 세션이 이전 값을 처리하는 방식은 [Claude에 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |2396| `additionalContext` | 다음 모델 호출 전에 한 번 주입되는 컨텍스트 문자열. 전달 방식, 넣을 내용, 재개된 세션이 이전 값을 처리하는 방식은 [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |

2398 2397 

2399```json theme={null}2398```json theme={null}

2400{2399{


2405}2404}

2406```2405```

2407 2406 

2408`decision: "block"` 또는 `continue: false`를 반환하면 다음 모델 호출 전에 에이전틱 루프가 중지됩니다. 차단 메시지는 JSON의 `reason` 또는 `stopReason`에서, 또는 종료 코드 2의 경우 stderr에서 가져옵니다. 이 메시지는 트랜스크립트에 경고로 표시되며 대화에 남아 있으므로, 대화가 계속되면 Claude가 이를 보게 됩니다.2407`decision: "block"` 또는 `continue: false`를 반환하면 다음 모델 호출 전에 에이전틱 루프가 중지됩니다. 차단 메시지는 JSON의 `reason` 또는 `stopReason`, 또는 종료 코드 2일 때의 stderr에서 가져옵니다. 이 메시지는 트랜스크립트에 경고로 표시되며 대화에 남으므로, 대화가 계속될 때 Claude가 이를 보게 됩니다.

2409 2408 

2410<h3 id="permissiondenied">2409<h3 id="permissiondenied">

2411 PermissionDenied2410 PermissionDenied

2412</h3>2411</h3>

2413 2412 

2414[자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)가 도구 호출을 거부할 때 실행됩니다. [자동 모드와 별개인 안전 검사가 분류기 자체의 요청을 거부](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action)했거나 분류기의 응답을 파싱할 수 없어서 분류기 판정 없이 거부하는 경우도 포함됩니다. 이 훅은 자동 모드에서만 발생합니다. 사용자가 권한 대화 상자를 수동으로 거부하거나, `PreToolUse` 훅이 호출을 차단하거나, `deny` 규칙이 매칭되는 경우에는 실행되지 않습니다. 거부를 로그에 기록하거나, 구성을 조정하거나, 모델에 도구 호출을 재시도해도 된다고 알리는 데 사용합니다.2413[자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)가 도구 호출을 거부할 때 실행됩니다. 여기에는 [자동 모드와 별개인 안전 검사가 분류기 자체의 요청을 거부](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action)했거나 분류기 응답을 파싱할 수 없어서 분류기 판정 없이 거부하는 경우도 포함됩니다. 이 훅은 자동 모드에서만 발생합니다. 사용자가 권한 대화 상자에서 직접 거부하거나, `PreToolUse` 훅이 호출을 차단하거나, `deny` 규칙이 일치하는 경우에는 실행되지 않습니다. 거부를 로그에 기록하거나, 구성을 조정하거나, 모델에게 도구 호출을 재시도해도 된다고 알리는 데 사용합니다.

2415 2414 

2416도구 이름으로 매칭하며, PreToolUse와 같은 값을 사용합니다.2415도구 이름과 일치하며, 값은 PreToolUse와 동일합니다.

2417 2416 

2418<h4 id="permissiondenied-input">2417<h4 id="permissiondenied-input">

2419 PermissionDenied input2418 PermissionDenied 입력

2420</h4>2419</h4>

2421 2420 

2422[공통 입력 필드](#common-input-fields) 외에도, PermissionDenied 훅은 `tool_name`, `tool_input`, `tool_use_id`, `reason`을 전달받습니다. MCP 도구의 경우 [`mcp_server`](#pretooluse-input) 객체도 전달받습니다.2421[공통 입력 필드](#common-input-fields) 외에도 PermissionDenied 훅은 `tool_name`, `tool_input`, `tool_use_id`, `reason`을 받습니다. MCP 도구의 경우 [`mcp_server`](#pretooluse-input) 객체도 받습니다.

2423 2422 

2424```json theme={null}2423```json theme={null}

2425{2424{


2440 2439 

2441| 필드 | 설명 |2440| 필드 | 설명 |

2442| :- | :- |2441| :- | :- |

2443| `reason` | 거부 사유입니다. 분류기 판정의 경우 대부분의 세션에서 `[Data Exfiltration]`처럼 매칭된 규칙을 대괄호 안에 표시합니다. 다른 형식은 [거부 검토](/docs/ko/auto-mode-config#review-denials)를 참조하세요. [판정 없는 거부](#permissiondenied-decision-control)의 경우 `Auto mode could not evaluate this action and is blocking it for safety`로 시작합니다. 분류기 모델을 사용할 수 없어서 거부된 경우 고정 텍스트 `Classifier unavailable`입니다 |2442| `reason` | 거부 사유. 분류기 판정의 경우 대부분의 세션에서 `[Data Exfiltration]`과 같이 일치한 규칙 이름을 대괄호로 표시합니다. 다른 형식은 [거부 검토](/docs/ko/auto-mode-config#review-denials)를 참조하세요. [판정 없는 거부](#permissiondenied-decision-control)의 경우 `Auto mode could not evaluate this action and is blocking it for safety`로 시작합니다. 분류기 모델을 사용할 수 없어서 거부된 경우 고정 텍스트 `Classifier unavailable`입니다 |

2444 2443 

2445<h4 id="permissiondenied-decision-control">2444<h4 id="permissiondenied-decision-control">

2446 PermissionDenied decision control2445 PermissionDenied 결정 제어

2447</h4>2446</h4>

2448 2447 

2449PermissionDenied 훅은 거부된 도구 호출을 모델이 재시도해도 된다고 알릴 수 있습니다. `hookSpecificOutput.retry`를 `true`로 설정한 JSON 객체를 반환합니다.2448PermissionDenied 훅은 모델에게 거부된 도구 호출을 재시도해도 된다고 알릴 수 있습니다. `hookSpecificOutput.retry`를 `true`로 설정한 JSON 객체를 반환합니다.

2450 2449 

2451```json theme={null}2450```json theme={null}

2452{2451{


2457}2456}

2458```2457```

2459 2458 

2460`retry`가 `true`이면 Claude Code는 모델에 도구 호출을 재시도해도 된다고 알리는 메시지를 대화에 추가합니다. Claude Code가 거부 자체를 취소하지는 않습니다. 훅이 JSON을 반환하지 않거나 `retry: false`를 반환하면 거부가 유지되고 모델은 원래의 거부 메시지를 받습니다.2459`retry`가 `true`이면 Claude Code는 모델에게 도구 호출을 재시도해도 된다고 알리는 메시지를 대화에 추가합니다. Claude Code가 거부 자체를 번복하지는 않습니다. 훅이 JSON을 반환하지 않거나 `retry: false`를 반환하면 거부가 유지되고 모델은 원래 거부 메시지를 받습니다.

2461 2460 

2462분류기가 [해당 작업에 대해 판정을 내리지 못한](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action) 경우, 즉 응답을 파싱할 수 없었거나 자동 모드와 별개인 안전 검사가 분류기 자체의 요청을 거부한 경우에는 Claude Code가 `retry: true`를 무시합니다. 이러한 거부에 대해서는 Claude Code가 이미 거부 메시지에서 나중에 재시도할지 아니면 다른 작업으로 넘어갈지를 모델에 알려 줍니다.2461분류기가 [작업에 대한 판정을 내리지 못한](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action) 경우, 즉 분류기 응답을 파싱할 수 없거나 자동 모드와 별개인 안전 검사가 분류기 자체의 요청을 거부한 경우, Claude Code는 `retry: true`를 무시합니다. 이러한 거부의 경우 Claude Code가 이미 거부 메시지에서 나중에 재시도할지 다음으로 넘어갈지를 모델에게 알려 줍니다.

2463 2462 

2464<h3 id="notification">2463<h3 id="notification">

2465 Notification2464 Notification

2466</h3>2465</h3>

2467 2466 

2468Claude Code가 알림을 보낼 때 실행됩니다. 알림 유형으로 매칭합니다. 모든 알림 유형에 대해 훅을 실행하려면 matcher를 생략합니다.2467Claude Code가 알림을 보낼 때 실행됩니다. 알림 유형과 일치합니다. 모든 알림 유형에 대해 훅을 실행하려면 matcher를 생략합니다.

2469 2468 

2470데스크톱 알림을 꺼 두어도 이러한 훅 이벤트는 전달됩니다. `notifications_disabled`를 포함한 `preferredNotifChannel` 설정은 사용자에게 알리는 방식만 바꿀 뿐, 훅 실행 여부에는 영향을 주지 않습니다.2469데스크톱 알림을 꺼 두어도 이 훅 이벤트는 수신됩니다. `notifications_disabled`를 포함한 `preferredNotifChannel` 설정은 알림을 받는 방식만 변경할 뿐, 훅의 실행 여부에는 영향을 주지 않습니다.

2471 2470 

2472| Matcher | 발생 시점 |2471| Matcher | 발생 시점 |

2473| :- | :- |2472| :- | :- |

2474| `permission_prompt` | Claude가 도구 사용 또는 샌드박스 처리된 명령의 [네트워크 요청](/docs/ko/sandboxing#network-isolation)에 대한 사용자 승인을 필요로 하며, 프롬프트가 약 6초 동안 대기한 경우 |2473| `permission_prompt` | Claude가 도구 사용 또는 샌드박스 처리된 명령의 [네트워크 요청](/docs/ko/sandboxing#network-isolation)에 대한 승인을 필요로 하고, 프롬프트가 약 6초 동안 대기한 경우 |

2475| `idle_prompt` | Claude가 약 60초 전에 응답을 마쳤고 그 이후 사용자가 입력하지 않은 경우 |2474| `idle_prompt` | Claude가 약 60초 전에 응답을 마쳤고 그 이후로 입력하지 않은 경우 |

2476| `auth_success` | 인증이 완료된 경우 |2475| `auth_success` | 인증이 완료된 경우 |

2477| `elicitation_dialog` | MCP 서버가 elicitation 양식을 열었고 사용자가 약 6초 동안 입력하지 않은 경우 |2476| `elicitation_dialog` | MCP 서버가 elicitation 양식을 열었고 약 6초 동안 입력하지 않은 경우 |

2478| `elicitation_url_dialog` | MCP 서버가 브라우저 URL을 열도록 요청했고 사용자가 약 6초 동안 입력하지 않은 경우 |2477| `elicitation_url_dialog` | MCP 서버가 브라우저 URL을 열도록 요청했고 약 6초 동안 입력하지 않은 경우 |

2479| `elicitation_complete` | MCP 서버가 [URL 모드 elicitation](#elicitation-input)이 완료되었다고 보고한 경우 |2478| `elicitation_complete` | MCP 서버가 [URL 모드 elicitation](#elicitation-input)이 완료되었다고 보고한 경우 |

2480| `elicitation_response` | MCP elicitation 응답이 서버로 다시 전송된 경우 |2479| `elicitation_response` | MCP elicitation 응답이 서버로 다시 전송된 경우 |

2481| `agent_needs_input` | 터미널에서 [에이전트 뷰](/docs/ko/agent-view)가 열려 있는 동안 백그라운드 세션이 사용자 입력을 기다리기 시작한 경우. 터미널 세션이 [에이전트 팀 팀원의 터미널 설정 질문](/docs/ko/agent-teams#choose-a-display-mode)이나 [분류기 요청 요금](/docs/ko/auto-mode-classifier-billing)에 대한 자동 모드 안내를 표시했고 사용자가 약 6초 동안 입력하지 않은 경우에도 발생합니다 |2480| `agent_needs_input` | 터미널에서 [에이전트 뷰](/docs/ko/agent-view)가 열려 있는 동안 백그라운드 세션이 사용자 입력을 기다리기 시작한 경우. 터미널 세션에서 [에이전트 팀 팀원의 터미널 설정 질문](/docs/ko/agent-teams#choose-a-display-mode)이나 [분류기 요청 요금](/docs/ko/auto-mode-classifier-billing)에 관한 자동 모드 안내가 표시되고 약 6초 동안 입력하지 않은 경우에도 발생합니다 |

2482| `agent_completed` | 백그라운드 세션이 완료되거나 실패한 경우. 터미널에서 [에이전트 뷰](/docs/ko/agent-view)가 열려 있을 때만 발생합니다 |2481| `agent_completed` | 백그라운드 세션이 완료되거나 실패한 경우. 터미널에서 [에이전트 뷰](/docs/ko/agent-view)가 열려 있는 동안에만 발생합니다 |

2483| `quota_auto_resume_fired` | claude.ai 사용 한도로 일시 중지된 작업을 Claude Code가 계속하는 경우. 한도가 재설정될 때, 또는 대기 중에 사용량 크레딧 추가, 플랜 업그레이드, 모델 전환처럼 Claude Code에서 수행한 작업으로 사용량을 다시 사용할 수 있게 되면 더 일찍 계속하며, [모델 설정 예외](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset)가 적용됩니다 |2482| `quota_auto_resume_fired` | claude.ai 사용 한도로 일시 중지되었던 작업을 Claude Code가 계속하는 경우: 한도가 재설정될 때, 또는 대기 중에 Claude Code에서 사용량 크레딧 추가, 플랜 업그레이드, 모델 전환 등 사용량을 다시 사용할 수 있게 만드는 작업을 한 경우 더 일찍 계속되며, [모델 설정 예외](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset)가 적용됩니다 |

2484| `quota_auto_resume_stale` | 컴퓨터가 약 30분 이상 절전 상태인 동안 claude.ai 사용 한도가 재설정된 경우. Claude Code는 계속하지 않고 사용자가 `Enter`를 누를 때까지 기다립니다. 더 짧게 절전한 후에는 계속 진행하며 대신 `quota_auto_resume_fired`를 발생시킵니다 |2483| `quota_auto_resume_stale` | 컴퓨터가 약 30분 이상 절전 상태인 동안 claude.ai 사용 한도가 재설정된 경우. Claude Code는 계속하는 대신 `Enter`를 누를 때까지 기다립니다. 더 짧은 절전 후에는 계속 진행하며 대신 `quota_auto_resume_fired`를 발생시킵니다 |

2485| `quota_auto_resume_disabled` | Claude Code가 작업을 계속하지 않고 claude.ai 사용 한도 대기를 종료한 경우. [`autoContinueAtUsageLimit`](/docs/ko/settings-reference#autocontinueatusagelimit)이 꺼졌거나, Claude Code가 스스로 시작한 대기 중에 재설정 시각이 24시간 이상 뒤로 밀렸거나, 계속된 작업이 반복해서 한도에 도달했거나, 계속 진행이 모델에 도달하기 전에 차단된 경우입니다. 사용자가 `Esc` 또는 `Ctrl+C`를 누르거나 **Don't continue automatically**를 선택한 경우에는 발생하지 않습니다 |2484| `quota_auto_resume_disabled` | Claude Code가 작업을 계속하지 않고 claude.ai 사용 한도 대기를 종료하는 경우: [`autoContinueAtUsageLimit`](/docs/ko/settings-reference#autocontinueatusagelimit)이 꺼졌거나 Claude Code가 스스로 시작한 대기 중에 재설정 시점이 24시간 이상 뒤로 밀린 경우, 계속된 작업이 계속 한도에 도달한 경우, 또는 계속 진행이 모델에 도달하기 전에 차단된 경우입니다. `Esc` 또는 `Ctrl+C`를 누르거나 **Don't continue automatically**를 선택한 경우에는 발생하지 않습니다 |

2486 2485 

2487`quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled` 유형에는 Claude Code v2.1.234 이상이 필요합니다.2486`quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled` 유형은 Claude Code v2.1.234 이상이 필요합니다.

2488 2487 

2489터미널 세션에서 샌드박스 처리된 명령의 네트워크 요청에 대한 `permission_prompt`에는 Claude Code v2.1.246 이상이 필요합니다.2488터미널 세션에서 샌드박스 처리된 명령의 네트워크 요청에 대한 `permission_prompt`는 Claude Code v2.1.246 이상이 필요합니다.

2490 2489 

2491팀원의 터미널 설정 질문에 대한 `agent_needs_input`에는 Claude Code v2.1.248 이상이 필요합니다.2490팀원의 터미널 설정 질문에 대한 `agent_needs_input`은 Claude Code v2.1.248 이상이 필요합니다.

2492 2491 

2493<Note>2492<Note>

2494 `permission_prompt`, `idle_prompt`, `elicitation_dialog`, `elicitation_url_dialog` 유형은 데스크톱 알림과 타이밍을 공유하므로, 터미널 세션에서는 사용자가 터미널을 떠나 있는 것으로 보일 때만 표시됩니다.2493 `permission_prompt`, `idle_prompt`, `elicitation_dialog`, `elicitation_url_dialog` 유형은 데스크톱 알림과 타이밍을 공유하므로, 터미널 세션에서는 사용자가 터미널을 떠나 있는 것으로 보일 때만 표시됩니다.

2495 2494 

2496 * `permission_prompt`는 사용자가 약 6초 동안 입력하지 않으면 발생합니다. 타이머는 권한 프롬프트가 나타날 때 시작되며, 키를 누를 때마다 지연됩니다. Claude가 도구 사용 권한을 요청할 때 즉시 훅을 실행하려면 대신 [PermissionRequest](#permissionrequest)를 사용합니다.2495 * `permission_prompt`는 약 6초 동안 입력하지 않으면 발생합니다. 타이머는 권한 프롬프트가 나타날 때 시작되며, 키를 누를 때마다 연기됩니다. Claude가 도구 사용 권한을 요청할 때 즉시 훅을 실행하려면 대신 [PermissionRequest](#permissionrequest)를 사용하세요.

2497 * `idle_prompt`는 Claude가 응답을 마친 후 약 60초 뒤에 발생하며, 그 이후 사용자가 입력하지 않았고 백그라운드 [서브에이전트](/docs/ko/sub-agents) 같은 백그라운드 에이전트가 실행 중이지 않은 경우에만 발생합니다. Claude Code는 claude.ai 사용 한도가 재설정되기를 기다리는 동안에는 `idle_prompt`를 보내지 않습니다. 대기가 자체적으로 끝나면 대신 `quota_auto_resume_*` 유형 중 하나가 발생합니다.2496 * `idle_prompt`는 Claude가 응답을 마친 후 약 60초 뒤에 발생하며, 그 이후로 입력하지 않았고 백그라운드 [서브에이전트](/docs/ko/sub-agents) 같은 백그라운드 에이전트가 실행 중이지 않은 경우에만 발생합니다. Claude Code는 claude.ai 사용 한도가 재설정되기를 기다리는 동안에는 `idle_prompt`를 보내지 않습니다. 대기가 스스로 종료되면 대신 `quota_auto_resume_*` 유형 중 하나가 발생합니다.

2498 * elicitation 양식에 대한 `elicitation_dialog` 또는 브라우저 URL 요청에 대한 `elicitation_url_dialog`는 사용자가 약 6초 동안 입력하지 않으면 발생합니다. 둘 다 `permission_prompt`와 같은 6초 조건을 공유합니다. 타이머는 대화 상자가 나타날 때 시작되며, 키를 누를 때마다 지연됩니다.2497 * elicitation 양식의 경우 `elicitation_dialog`, 브라우저 URL 요청의 경우 `elicitation_url_dialog`는 약 6초 동안 입력하지 않으면 발생합니다. 두 유형 모두 `permission_prompt`와 동일한 6초 기준을 공유합니다. 타이머는 대화 상자가 나타날 때 시작되며, 키를 누를 때마다 연기됩니다.

2499 2498 

2500 다른 대화 상자가 화면에 있는 동안 도착한 권한 요청이나 elicitation도 요청이 도착한 시점부터 계산되는 같은 6초 조건을 유지합니다. 요청이 아직 열린 대화 상자 뒤에서 대기하는 동안에도 알림이 사용자에게 전달될 수 있습니다.2499 다른 대화 상자가 화면에 있는 동안 도착한 권한 요청이나 elicitation도 요청이 도착한 시점부터 계산되는 동일한 6초 기준이 적용됩니다. 따라서 요청이 열린 대화 상자 뒤에서 여전히 대기 중인 동안에도 해당 알림이 도착할 수 있습니다.

2501</Note>2500</Note>

2502 2501 

2503Claude Code가 권한 요청을 Agent SDK의 [`canUseTool` 콜백](/docs/ko/agent-sdk/user-input)으로 보내는 세션에서는 `permission_prompt`의 타이밍이 다릅니다. Claude Desktop과 VS Code 확장 프로그램이 이 방식으로 Claude Code를 호스팅합니다.2502Claude Code가 권한 요청을 Agent SDK의 [`canUseTool` 콜백](/docs/ko/agent-sdk/user-input)으로 보내는 세션에서는 `permission_prompt`의 타이밍이 다릅니다. Claude Desktop과 VS Code 확장 프로그램이 이 방식으로 Claude Code를 호스팅합니다.

2504 2503 

2505* `permission_prompt`는 Claude가 권한을 요청한 후 약 6초 뒤에 발생합니다. 사용자가 입력하는 동안에도 Claude Code는 이를 지연하지 않습니다.2504* `permission_prompt`는 Claude가 권한을 요청한 후 약 6초 뒤에 발생합니다. 입력 중이어도 Claude Code는 이를 연기하지 않습니다.

2506* 사용자 또는 [PermissionRequest](#permissionrequest) 훅이 그보다 먼저 응답하면 Claude Code는 `permission_prompt`를 실행하지 않습니다.2505* 사용자나 [PermissionRequest](#permissionrequest) 훅이 그보다 먼저 응답하면 Claude Code는 `permission_prompt`를 실행하지 않습니다.

2507* 이러한 세션에서 `permission_prompt`를 끄려면 [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/ko/env-vars)를 `1`로 설정합니다.2506* 이러한 세션에서 `permission_prompt`를 끄려면 [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/ko/env-vars)를 `1`로 설정합니다.

2508 2507 

2509v2.1.233 이전에는 이러한 세션에서 `permission_prompt`가 발생하지 않았습니다.2508v2.1.233 이전에는 이러한 세션에서 `permission_prompt`가 발생하지 않았습니다.

2510 2509 

2511알림 유형에 따라 다른 핸들러를 실행하려면 별도의 matcher를 사용합니다. 이 구성은 Claude에 권한 승인이 필요할 때 권한 전용 알림 스크립트를 실행하고, Claude가 유휴 상태일 때 다른 알림을 실행합니다.2510알림 유형에 따라 다른 핸들러를 실행하려면 별도의 matcher를 사용합니다. 이 구성은 Claude가 권한 승인을 필요로 할 때 권한 전용 알림 스크립트를 실행하고, Claude가 유휴 상태일 때 다른 알림을 실행합니다.

2512 2511 

2513```json theme={null}2512```json theme={null}

2514{2513{


2538```2537```

2539 2538 

2540<h4 id="notification-input">2539<h4 id="notification-input">

2541 Notification input2540 Notification 입력

2542</h4>2541</h4>

2543 2542 

2544[공통 입력 필드](#common-input-fields) 외에도, Notification 훅은 알림 텍스트가 담긴 `message`, 선택적 `title`, 발생한 유형을 나타내는 `notification_type`을 전달받습니다.2543[공통 입력 필드](#common-input-fields) 외에도 Notification 훅은 알림 텍스트가 담긴 `message`, 선택적 `title`, 그리고 어떤 유형이 발생했는지 나타내는 `notification_type`을 받습니다.

2545 2544 

2546```json theme={null}2545```json theme={null}

2547{2546{


2555}2554}

2556```2555```

2557 2556 

2558Notification 훅은 알림을 차단하거나 수정할 수 없습니다. Claude Code는 이 훅의 `systemMessage` 및 `continue` 필드를 삭제하지만, 데스크톱 알림 예시가 사용하는 [`terminalSequence`](#emit-terminal-notifications)는 여전히 내보냅니다. Notification 훅은 알림을 외부 서비스로 전달하는 것과 같은 부수 효과를 위한 것입니다.2557Notification 훅은 알림을 차단하거나 수정할 수 없습니다. Claude Code는 `systemMessage` 및 `continue` 필드를 폐기하지만 [`terminalSequence`](#emit-terminal-notifications)는 여전히 내보내며, 데스크톱 알림 예시가 바로 이를 활용합니다. Notification 훅은 외부 서비스로 알림을 전달하는 것과 같은 부수 효과를 위한 것입니다.

2559 2558 

2560<h3 id="subagentstart">2559<h3 id="subagentstart">

2561 SubagentStart2560 SubagentStart

2562</h3>2561</h3>

2563 2562 

2564Claude가 Agent 도구로 서브에이전트를 생성할 때, Claude가 [서브에이전트를 재개](/docs/ko/sub-agents#resume-subagents)할 때, 그리고 프로세스 내 [에이전트 팀](/docs/ko/agent-teams) 팀원이 새 메시지를 처리할 때마다 실행됩니다. 에이전트 유형 이름으로 필터링하는 matcher를 지원합니다. 기본 제공 에이전트의 경우 `general-purpose`, `Explore`, `Plan` 같은 에이전트 이름입니다. [사용자 정의 서브에이전트](/docs/ko/sub-agents)의 경우 파일 이름이 아니라 에이전트 frontmatter의 `name` 필드입니다.2563Claude가 Agent 도구로 서브에이전트를 생성할 때, Claude가 [서브에이전트를 재개할 때](/docs/ko/sub-agents#resume-subagents), 그리고 인프로세스 [에이전트 팀](/docs/ko/agent-teams) 팀원이 새 메시지를 처리할 때마다 실행됩니다. 에이전트 유형 이름으로 필터링하는 matcher를 지원합니다. 기본 제공 에이전트의 경우 `general-purpose`, `Explore`, `Plan`과 같은 에이전트 이름입니다. [사용자 지정 서브에이전트](/docs/ko/sub-agents)의 경우 파일 이름이 아닌 에이전트 frontmatter의 `name` 필드입니다.

2565 2564 

2566[플러그인](/docs/ko/plugins/overview)이 제공하는 서브에이전트의 경우, 에이전트 유형은 frontmatter의 이름만이 아니라 `my-plugin:reviewer`와 같은 플러그인 범위 식별자입니다. 콜론 때문에 플러그인 범위 이름은 정규식 경로로 처리되므로, 정확히 매칭하려면 matcher를 `^`와 `$`로 고정합니다. 예: `^my-plugin:reviewer$`.2565[플러그인](/docs/ko/plugins/overview)이 제공하는 서브에이전트의 경우, 에이전트 유형은 frontmatter의 이름만이 아니라 `my-plugin:reviewer`와 같은 플러그인 범위 식별자입니다. 콜론으로 인해 플러그인 범위 이름은 정규 표현식 경로로 처리되므로, 정확히 일치시키려면 matcher를 `^`와 `$`로 고정합니다: `^my-plugin:reviewer$`.

2567 2566 

2568<h4 id="subagentstart-input">2567<h4 id="subagentstart-input">

2569 SubagentStart input2568 SubagentStart 입력

2570</h4>2569</h4>

2571 2570 

2572[공통 입력 필드](#common-input-fields) 외에도, SubagentStart 훅은 서브에이전트의 고유 식별자가 담긴 `agent_id`와 matcher가 필터링하는 에이전트 이름이 담긴 `agent_type`을 전달받습니다.2571[공통 입력 필드](#common-input-fields) 외에도 SubagentStart 훅은 서브에이전트의 고유 식별자가 담긴 `agent_id`와 matcher가 필터링하는 에이전트 이름이 담긴 `agent_type`을 받습니다.

2573 2572 

2574```json theme={null}2573```json theme={null}

2575{2574{


2582}2581}

2583```2582```

2584 2583 

2585SubagentStart 훅은 서브에이전트 생성을 차단할 수 없지만, 서브에이전트에 컨텍스트를 주입할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 다음을 반환할 수 있습니다.2584SubagentStart 훅은 서브에이전트 생성을 차단할 수 없지만 서브에이전트에 컨텍스트를 주입할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 다음을 반환할 수 있습니다.

2586 2585 

2587| 필드 | 설명 |2586| 필드 | 설명 |

2588| :- | :- |2587| :- | :- |

2589| `additionalContext` | 서브에이전트의 대화 시작 시, 첫 프롬프트 전에 서브에이전트의 컨텍스트에 추가되는 문자열입니다. [Claude에 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |2588| `additionalContext` | 서브에이전트의 대화 시작 시점, 첫 프롬프트 전에 서브에이전트의 컨텍스트에 추가되는 문자열. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |

2590 2589 

2591```json theme={null}2590```json theme={null}

2592{2591{


2597}2596}

2598```2597```

2599 2598 

2600같은 서브에이전트에 대해 훅이 다시 실행되면, Claude Code는 서브에이전트의 컨텍스트에 이전 실행의 사본이 아직 없는 경우에만 반환된 컨텍스트를 주입합니다. 시작 시 주입된 사본은 그대로 유지되므로 서브에이전트의 [프롬프트 캐시](/docs/ko/prompt-caching#subagents-and-the-cache)가 손상되지 않습니다. [자동 압축](/docs/ko/sub-agents#auto-compaction)이 해당 사본을 삭제한 후에는 Claude Code가 다음 실행의 컨텍스트를 다시 주입합니다.2599같은 서브에이전트에 대해 훅이 다시 실행되면, Claude Code는 서브에이전트의 컨텍스트에 이전 실행의 사본이 아직 없는 경우에만 반환된 컨텍스트를 주입합니다. 시작 시 주입된 사본은 그대로 유지되므로 서브에이전트의 [프롬프트 캐시](/docs/ko/prompt-caching#subagents-and-the-cache)가 손상되지 않습니다. [자동 압축](/docs/ko/sub-agents#auto-compaction)이 해당 사본을 폐기한 후에는 Claude Code가 다음 실행의 컨텍스트를 다시 주입합니다.

2601 2600 

2602<h3 id="subagentstop">2601<h3 id="subagentstop">

2603 SubagentStop2602 SubagentStop

2604</h3>2603</h3>

2605 2604 

2606Claude Code 서브에이전트가 응답을 마쳤을 때 실행됩니다. 에이전트 유형으로 매칭하며, SubagentStart와 같은 값을 사용합니다.2605Claude Code 서브에이전트가 응답을 마쳤을 때 실행됩니다. 에이전트 유형과 일치하며, 값은 SubagentStart와 동일합니다.

2607 2606 

2608<h4 id="subagentstop-input">2607<h4 id="subagentstop-input">

2609 SubagentStop input2608 SubagentStop 입력

2610</h4>2609</h4>

2611 2610 

2612[공통 입력 필드](#common-input-fields) 외에도, SubagentStop 훅은 `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path`, `last_assistant_message`를 전달받습니다. `agent_type` 필드는 matcher 필터링에 사용되는 값입니다. `transcript_path`는 메인 세션의 트랜스크립트이고, `agent_transcript_path`는 중첩된 `subagents/` 폴더에 저장된 서브에이전트 자체의 트랜스크립트입니다. `last_assistant_message` 필드에는 서브에이전트의 최종 응답 텍스트 내용이 포함되므로, 훅은 트랜스크립트 파일을 파싱하지 않고도 이에 접근할 수 있습니다.2611[공통 입력 필드](#common-input-fields) 외에도 SubagentStop 훅은 `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path`, `last_assistant_message`를 받습니다. `agent_type` 필드는 matcher 필터링에 사용되는 값입니다. `transcript_path`는 메인 세션의 트랜스크립트이고, `agent_transcript_path`는 중첩된 `subagents/` 폴더에 저장된 서브에이전트 자체의 트랜스크립트입니다. `last_assistant_message` 필드에는 서브에이전트 최종 응답의 텍스트 내용이 포함되므로, 훅은 트랜스크립트 파일을 파싱하지 않고도 이에 접근할 수 있습니다.

2613 2612 

2614모든 SubagentStop 이벤트가 Claude가 생성한 서브에이전트에서 오는 것은 아닙니다. Claude Code는 [프롬프트 제안](/docs/ko/interactive-mode#prompt-suggestions)이나 [`/btw` 부가 질문](/docs/ko/interactive-mode#side-questions-with-%2Fbtw) 같은 일부 자체 기능을 위해 내부 에이전트도 실행하며, 이들 중 하나가 완료될 때도 SubagentStop이 발생합니다. 이러한 이벤트의 경우 `agent_type`은 [`--agent`](/docs/ko/cli-reference#cli-flags) 또는 [`agent` 설정](/docs/ko/settings-reference#agent)으로 지정된 것처럼 세션 자체가 실행되는 에이전트 이름이며, 세션이 에이전트 없이 실행되면 빈 문자열입니다.2613모든 SubagentStop 이벤트가 Claude가 생성한 서브에이전트에서 오는 것은 아닙니다. Claude Code는 [프롬프트 제안](/docs/ko/interactive-mode#prompt-suggestions)과 [`/btw` 곁가지 질문](/docs/ko/interactive-mode#side-questions-with-%2Fbtw) 같은 일부 자체 기능을 위해 내부 에이전트도 실행하며, 이러한 에이전트가 완료될 때도 SubagentStop이 발생합니다. 이러한 이벤트의 경우 `agent_type`은 [`--agent`](/docs/ko/cli-reference#cli-flags) 또는 [`agent` 설정](/docs/ko/settings-reference#agent)으로 지정된 것과 같이 세션 자체가 실행되는 에이전트 이름이며, 세션이 에이전트 없이 실행되는 경우 빈 문자열입니다.

2615 2614 

2616에이전트 유형을 지정한 `matcher`는 빈 `agent_type`과 매칭되지 않습니다. matcher가 생략되었거나, `""` 또는 `"*"`이거나, 빈 문자열과 매칭되는 정규식인 훅은 빈 `agent_type`을 가진 이벤트에도 실행됩니다.2615에이전트 유형을 지정하는 `matcher`는 빈 `agent_type`과 일치하지 않습니다. matcher가 생략되었거나, `""` 또는 `"*"`이거나, 빈 문자열과 일치하는 정규 표현식인 훅은 빈 `agent_type`을 가진 이벤트에도 실행됩니다.

2617 2616 

2618Claude Code v2.1.271 이상에서는 [`SubagentHandback`](/docs/ko/tools-reference) 도구와 함께 실행되는 서브에이전트가 중지되기 전에 해당 도구를 통해 보고서를 전달합니다. 이때 `last_assistant_message` 필드에는 서브에이전트의 마무리 텍스트가 있으면 그것이 담기며, 이는 전달된 보고서가 아닙니다. 보고서는 해당 호출의 `message` 입력이며, `SubagentHandback`에 매칭되는 `PreToolUse` 또는 `PostToolUse` 훅은 이를 `tool_input.message`로 전달받습니다.2617Claude Code v2.1.271 이상에서는 [`SubagentHandback`](/docs/ko/tools-reference) 도구와 함께 실행되는 서브에이전트가 중지하기 전에 해당 도구를 통해 보고서를 전달합니다. 이때 `last_assistant_message` 필드에는 서브에이전트의 마무리 텍스트(있는 경우)가 담기며, 이는 전달된 보고서가 아닙니다. 보고서는 해당 호출의 `message` 입력이며, `SubagentHandback`과 일치하는 `PreToolUse` 또는 `PostToolUse` 훅이 이를 `tool_input.message`로 받습니다.

2619 2618 

2620SubagentStop 훅은 [Stop 입력](#stop-input)에서 설명하는 `background_tasks` 및 `session_crons` 배열도 전달받습니다. 두 배열 모두 서브에이전트가 아닌 상위 세션 범위입니다.2619SubagentStop 훅은 [Stop 입력](#stop-input)에서 설명하는 `background_tasks` 및 `session_crons` 배열도 받습니다. 두 배열 모두 서브에이전트가 아닌 상위 세션 범위입니다.

2621 2620 

2622```json theme={null}2621```json theme={null}

2623{2622{


2636}2635}

2637```2636```

2638 2637 

2639SubagentStop 훅은 [Stop 훅](#stop-decision-control)과 같은 결정 제어 형식을 사용하며, 서브에이전트를 계속 실행시키는 오류가 아닌 피드백을 위해 `hookEventName`을 `"SubagentStop"`으로 설정한 `hookSpecificOutput.additionalContext`도 포함됩니다. `reason`과 함께 `decision: "block"`을 반환하면 서브에이전트가 계속 실행되며 `reason`이 서브에이전트의 다음 지시로 전달됩니다. 종료 코드 2로 차단하는 훅은 stderr 메시지를 같은 방식으로 전달합니다. 서브에이전트가 반환된 후 상위 세션에 컨텍스트를 주입하려면 대신 `Agent` 도구에 대한 [`PostToolUse`](#posttooluse) 훅을 사용합니다.2638SubagentStop 훅은 서브에이전트를 계속 실행시키는 오류가 아닌 피드백을 위해 `hookEventName`이 `"SubagentStop"`으로 설정된 `hookSpecificOutput.additionalContext`를 포함하여 [Stop 훅](#stop-decision-control)과 동일한 결정 제어 형식을 사용합니다. `reason`과 함께 `decision: "block"`을 반환하면 서브에이전트가 계속 실행되며 `reason`이 서브에이전트의 다음 지시로 전달됩니다. 종료 코드 2로 차단하는 훅은 stderr 메시지를 같은 방식으로 전달합니다. 서브에이전트가 반환된 후 상위 세션에 컨텍스트를 주입하려면 대신 `Agent` 도구에 대한 [`PostToolUse`](#posttooluse) 훅을 사용하세요.

2640 2639 

2641<h3 id="taskcreated">2640<h3 id="taskcreated">

2642 TaskCreated2641 TaskCreated

2643</h3>2642</h3>

2644 2643 

2645`TaskCreate` 도구를 통해 작업이 생성될 때 실행됩니다. 명명 규칙을 적용하거나, 작업 설명을 필수로 요구하거나, 특정 작업의 생성을 방지하는 데 사용합니다. [Task 도구가 없는 세션](/docs/ko/tools-reference#task-tool-availability)에서는 이 이벤트가 발생하지 않습니다.2644`TaskCreate` 도구를 통해 작업이 생성될 때 실행됩니다. 명명 규칙을 강제하거나, 작업 설명을 필수로 하거나, 특정 작업의 생성을 방지하는 데 사용합니다. [Task 도구가 없는 세션](/docs/ko/tools-reference#task-tool-availability)에서는 이 이벤트가 발생하지 않습니다.

2646 2645 

2647TaskCreated 훅은 matcher를 지원하지 않으며 매번 발생합니다.2646TaskCreated 훅은 matcher를 지원하지 않으며 모든 경우에 발생합니다.

2648 2647 

2649<h4 id="taskcreated-input">2648<h4 id="taskcreated-input">

2650 TaskCreated input2649 TaskCreated 입력

2651</h4>2650</h4>

2652 2651 

2653[공통 입력 필드](#common-input-fields) 외에도, TaskCreated 훅은 `task_id`, `task_subject`를 전달받으며, 선택적으로 `task_description`, `teammate_name`, `team_name`을 전달받습니다.2652[공통 입력 필드](#common-input-fields) 외에도 TaskCreated 훅은 `task_id`, `task_subject`, 그리고 선택적으로 `task_description`, `teammate_name`, `team_name`을 받습니다.

2654 2653 

2655```json theme={null}2654```json theme={null}

2656{2655{


2668 2667 

2669| 필드 | 설명 |2668| 필드 | 설명 |

2670| :- | :- |2669| :- | :- |

2671| `task_id` | 생성되는 작업의 식별자입니다 |2670| `task_id` | 생성 중인 작업의 식별자 |

2672| `task_subject` | 작업의 제목입니다 |2671| `task_subject` | 작업의 제목 |

2673| `task_description` | 작업에 대한 자세한 설명입니다. 없을 수도 있습니다 |2672| `task_description` | 작업의 상세 설명. 없을 수 있습니다 |

2674| `teammate_name` | 작업을 생성하는 팀원의 이름입니다. 없을 수도 있습니다 |2673| `teammate_name` | 작업을 생성하는 팀원의 이름. 없을 수 있습니다 |

2675| `team_name` | Deprecated. 세션에서 파생된 팀 이름이며, 향후 릴리스에서 제거됩니다 |2674| `team_name` | Deprecated. 세션에서 파생된 팀 이름이며, 향후 릴리스에서 제거될 예정입니다 |

2675| `agent_id` | 이 이벤트에서 [공통 입력 필드](#common-input-fields)는 작업을 생성하는 서브에이전트 또는 [인프로세스 팀원](/docs/ko/agent-teams#choose-a-display-mode)을 식별합니다. 없을 수 있습니다. Claude Code v2.1.290 이상이 필요합니다 |

2676 2676 

2677<h4 id="taskcreated-decision-control">2677<h4 id="taskcreated-decision-control">

2678 TaskCreated decision control2678 TaskCreated 결정 제어

2679</h4>2679</h4>

2680 2680 

2681TaskCreated 훅은 두 가지 방법으로 생성을 차단할 수 있습니다. 어느 방법이든 Claude Code는 작업을 삭제하고 메시지를 도구의 오류로 Claude에 반환합니다. Claude Code는 이 이벤트의 `continue: false`를 무시하며 Claude는 계속 작업합니다.2681TaskCreated 훅은 두 가지 방법으로 생성을 차단할 수 있습니다. 어느 방법이든 Claude Code는 작업을 삭제하고 메시지를 도구 오류로 Claude에게 반환합니다. Claude Code는 이 이벤트의 `continue: false`를 무시하며 Claude는 계속 작업합니다.

2682 2682 

2683* **종료 코드 2**: Claude Code가 stderr 텍스트를 메시지로 반환합니다.2683* **종료 코드 2**: Claude Code가 stderr 텍스트를 메시지로 반환합니다.

2684* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code가 `reason`을 메시지로 반환합니다.2684* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code가 `reason`을 메시지로 반환합니다.


2702 TaskCompleted2702 TaskCompleted

2703</h3>2703</h3>

2704 2704 

2705작업이 완료로 표시될 때 실행됩니다. 두 가지 상황에서 발생합니다. 에이전트가 TaskUpdate 도구를 통해 작업을 명시적으로 완료로 표시할 때, 또는 [에이전트 팀](/docs/ko/agent-teams) 팀원이 진행 중인 작업이 있는 상태로 턴을 마칠 때입니다. 작업을 종료하기 전에 테스트 통과나 lint 검사 같은 완료 기준을 적용하는 데 사용합니다.2705작업이 완료로 표시될 때 실행됩니다. 이는 두 가지 상황에서 발생합니다. 에이전트가 TaskUpdate 도구를 통해 작업을 명시적으로 완료로 표시하는 경우, 또는 [에이전트 팀](/docs/ko/agent-teams) 팀원이 진행 중인 작업이 있는 상태로 턴을 마치는 경우입니다. 작업을 종료하기 전에 테스트 통과나 lint 검사 같은 완료 기준을 강제하는 데 사용합니다.

2706 2706 

2707TaskCompleted 훅은 matcher를 지원하지 않으며 매번 발생합니다.2707TaskCompleted 훅은 matcher를 지원하지 않으며 모든 경우에 발생합니다.

2708 2708 

2709<h4 id="taskcompleted-input">2709<h4 id="taskcompleted-input">

2710 TaskCompleted input2710 TaskCompleted 입력

2711</h4>2711</h4>

2712 2712 

2713[공통 입력 필드](#common-input-fields) 외에도, TaskCompleted 훅은 `task_id`, `task_subject`를 전달받으며, 선택적으로 `task_description`, `teammate_name`, `team_name`을 전달받습니다.2713[공통 입력 필드](#common-input-fields) 외에도 TaskCompleted 훅은 `task_id`, `task_subject`, 그리고 선택적으로 `task_description`, `teammate_name`, `team_name`을 받습니다.

2714 2714 

2715```json theme={null}2715```json theme={null}

2716{2716{


2729 2729 

2730| 필드 | 설명 |2730| 필드 | 설명 |

2731| :- | :- |2731| :- | :- |

2732| `task_id` | 완료되는 작업의 식별자입니다 |2732| `task_id` | 완료 중인 작업의 식별자 |

2733| `task_subject` | 작업의 제목입니다 |2733| `task_subject` | 작업의 제목 |

2734| `task_description` | 작업에 대한 자세한 설명입니다. 없을 수도 있습니다 |2734| `task_description` | 작업의 상세 설명. 없을 수 있습니다 |

2735| `teammate_name` | 작업을 완료하는 팀원의 이름입니다. 없을 수도 있습니다 |2735| `teammate_name` | 작업을 완료하는 팀원의 이름. 없을 수 있습니다 |

2736| `team_name` | Deprecated. 세션에서 파생된 팀 이름이며, 향후 릴리스에서 제거됩니다 |2736| `team_name` | Deprecated. 세션에서 파생된 팀 이름이며, 향후 릴리스에서 제거될 예정입니다 |

2737| `agent_id` | 이 이벤트에서 [공통 입력 필드](#common-input-fields)는 작업을 완료하는 서브에이전트 또는 [인프로세스 팀원](/docs/ko/agent-teams#choose-a-display-mode)을 식별합니다. 없을 수 있습니다. Claude Code v2.1.290 이상이 필요합니다 |

2737 2738 

2738<h4 id="taskcompleted-decision-control">2739<h4 id="taskcompleted-decision-control">

2739 TaskCompleted decision control2740 TaskCompleted 결정 제어

2740</h4>2741</h4>

2741 2742 

2742TaskCompleted 훅은 작업 완료를 제어하는 두 가지 방법을 지원합니다.2743TaskCompleted 훅은 작업 완료를 제어하는 두 가지 방법을 지원합니다.

2743 2744 

2744* **종료 코드 2**: 작업이 완료로 표시되지 않으며 stderr 메시지가 피드백으로 모델에 전달됩니다.2745* **종료 코드 2**: 작업이 완료로 표시되지 않으며 stderr 메시지가 피드백으로 모델에 다시 전달됩니다.

2745* **JSON `{"continue": false, "stopReason": "..."}`**: 팀원이 턴을 마쳐서 이벤트가 발생한 경우, `Stop` 훅 동작과 마찬가지로 팀원을 완전히 중지합니다. `stopReason`은 사용자에게 표시됩니다. `TaskUpdate` 도구가 이벤트를 발생시킨 경우에는 Claude Code가 `continue: false`를 무시하며, 종료 코드 2는 여전히 완료를 차단합니다.2746* **JSON `{"continue": false, "stopReason": "..."}`**: 팀원이 턴을 마쳐서 이벤트가 트리거된 경우, `Stop` 훅 동작과 마찬가지로 팀원을 완전히 중지합니다. `stopReason`은 사용자에게 표시됩니다. `TaskUpdate` 도구가 이벤트를 트리거한 경우 Claude Code는 `continue: false`를 무시하며, 종료 코드 2는 여전히 완료를 차단합니다.

2746 2747 

2747이 예시는 테스트를 실행하고 실패하면 작업 완료를 차단합니다.2748이 예시는 테스트를 실행하고 실패하면 작업 완료를 차단합니다.

2748 2749 


2764 Stop2765 Stop

2765</h3>2766</h3>

2766 2767 

2767메인 Claude Code 에이전트가 응답을 마쳤을 때 실행됩니다. 사용자 중단으로2768메인 Claude Code 에이전트가 응답을 마쳤을 때 실행됩니다. 사용자 중단으로 인해

2768중지된 경우에는 실행되지 않습니다. API 오류가 발생하면 대신2769중지된 경우에는 실행되지 않습니다. API 오류가 발생하면 대신

2769[StopFailure](#stopfailure)가 발생합니다.2770[StopFailure](#stopfailure)가 발생합니다.

2770 2771 

2771<Tip>2772<Tip>

2772 [`/goal`](/docs/ko/goal) 명령은 세션 범위의 프롬프트 기반 Stop 훅을 위한 기본 제공 단축 명령입니다. 훅 구성을 작성하지 않고 Claude가 특정 조건을 향해 계속 작업하게 하려면 이 명령을 사용합니다.2773 [`/goal`](/docs/ko/goal) 명령은 세션 범위의 프롬프트 기반 Stop 훅을 위한 기본 제공 바로 가기입니다. 훅 구성을 작성하지 않고 Claude가 특정 조건을 향해 계속 작업하도록 하려면 이 명령을 사용하세요.

2773</Tip>2774</Tip>

2774 2775 

2775<h4 id="stop-input">2776<h4 id="stop-input">

2776 Stop input2777 Stop 입력

2777</h4>2778</h4>

2778 2779 

2779[공통 입력 필드](#common-input-fields) 외에도 Stop 훅은 `stop_hook_active`, `last_assistant_message`, `background_tasks`, `session_crons`를 전달받습니다. `stop_hook_active` 필드는 Claude Code가 이미 stop 훅의 결과로 계속 진행 중일 때 `true`입니다. 결코 해결되지 않을 조건에서 차단하지 않도록 이 값을 확인하거나 트랜스크립트를 처리하세요.2780[공통 입력 필드](#common-input-fields) 외에도 Stop 훅은 `stop_hook_active`, `last_assistant_message`, `background_tasks`, `session_crons`를 받습니다. `stop_hook_active` 필드는 Claude Code가 이미 stop 훅의 결과로 계속 진행 중일 때 `true`입니다. 결코 해결되지 않을 조건에서 차단하는 것을 방지하려면 이 값을 확인하거나 트랜스크립트를 처리하세요.

2780 2781 

2781Claude Code는 연속 8회 계속 제한을 적용합니다. stop 훅이 턴을 연속으로 8회 계속시킨 후에는 Claude Code가 다음 차단을 재정의하고 턴을 종료합니다. 연속 계속 횟수는 Claude가 도구를 호출할 때마다 초기화됩니다. 제한을 늘리려면 [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/ko/env-vars)을 설정합니다.2782Claude Code는 연속 8회 계속 진행 제한을 적용합니다. stop 훅이 턴을 연속으로 8번 계속 진행시킨 후에는 Claude Code가 다음 차단을 재정의하고 턴을 종료합니다. 연속 계속 진행 횟수는 Claude가 도구를 호출할 때마다 재설정됩니다. 제한을 늘리려면 [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/ko/env-vars)을 설정합니다.

2782 2783 

2783`last_assistant_message` 필드에는 Claude의 최종 응답 텍스트 내용이 포함되므로, 훅은 트랜스크립트 파일을 파싱하지 않고도 이에 접근할 수 있습니다. 소리 내어 읽기나 알림 훅처럼 방금 완료된 턴에 대해 동작하는 훅은 `transcript_path`를 읽는 대신 이 필드를 사용합니다. 모든 버전에서 Stop 시점에 트랜스크립트 파일에 최종 메시지가 포함된다는 보장이 없기 때문입니다.2784`last_assistant_message` 필드에는 Claude 최종 응답의 텍스트 내용이 포함되므로, 훅은 트랜스크립트 파일을 파싱하지 않고도 이에 접근할 수 있습니다. 소리 내어 읽기나 알림 훅처럼 방금 완료된 턴에 대해 동작하는 훅의 경우 `transcript_path`를 읽는 대신 이 필드를 사용하세요. 모든 버전에서 Stop 시점에 트랜스크립트 파일에 최종 메시지가 포함된다고 보장되지는 않습니다.

2784 2785 

2785`background_tasks` 및 `session_crons` 배열을 사용하면 훅이 "세션이 완료됨"과 "세션이 백그라운드 작업이 다시 깨워 주기를 기다리며 일시 중지됨"을 구분할 수 있습니다. 두 배열은 작업 레지스트리에 접근할 수 있을 때 존재하며, 진행 중이거나 예약된 것이 없으면 비어 있습니다.2786`background_tasks` 및 `session_crons` 배열을 사용하면 훅이 "세션이 완료됨"과 "세션이 백그라운드 작업이 다시 깨워 주기를 기다리며 일시 중지됨"을 구별할 수 있습니다. 두 배열 모두 작업 레지스트리에 접근할 수 있을 때 존재하며, 진행 중이거나 예약된 항목이 없으면 비어 있습니다.

2786 2787 

2787`background_tasks`의 각 항목은 진행 중인 작업 하나를 설명하며 다음 필드를 사용합니다.2788`background_tasks`의 각 항목은 진행 중인 작업 하나를 설명하며 다음 필드를 사용합니다.

2788 2789 

2789| 필드 | 설명 |2790| 필드 | 설명 |

2790| :- | :- |2791| :- | :- |

2791| `id` | 작업 식별자입니다 |2792| `id` | 작업 식별자 |

2792| `type` | `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session`, `MCP task`와 같은 알기 쉬운 작업 유형 레이블입니다. 각 레이블은 작업을 생성한 Claude Code 기능을 나타냅니다. 인식되지 않는 유형의 경우 원시 판별값으로 대체됩니다 |2793| `type` | `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session`, `MCP task`와 같은 사용자 친화적인 작업 유형 레이블. 각 레이블은 어떤 Claude Code 기능이 작업을 생성했는지 나타냅니다. 인식되지 않는 유형의 경우 원시 판별 값으로 대체됩니다 |

2793| `status` | 현재 작업 상태입니다 |2794| `status` | 현재 작업 상태 |

2794| `description` | 자유 형식 설명으로, 1000자로 제한되며 잘린 경우 문자열 내에 `… [+N chars]` 마커가 붙습니다 |2795| `description` | 자유 형식 설명. 1000자로 제한되며, 잘린 경우 문자열 안에 `… [+N chars]` 마커가 포함됩니다 |

2795| `command` | 셸 명령줄로, 1000자로 제한됩니다. `shell` 작업에만 있습니다 |2796| `command` | 셸 명령줄. 1000자로 제한됩니다. `shell` 작업에만 존재합니다 |

2796| `agent_type` | 서브에이전트 유형 이름입니다. `subagent` 작업에만 있습니다 |2797| `agent_type` | 서브에이전트 유형 이름. `subagent` 작업에만 존재합니다 |

2797| `server` | MCP 서버 이름입니다. `monitor` 및 `MCP task` 작업에만 있습니다 |2798| `server` | MCP 서버 이름. `monitor` 및 `MCP task` 작업에만 존재합니다 |

2798| `tool` | MCP 도구 이름입니다. `monitor` 및 `MCP task` 작업에만 있습니다 |2799| `tool` | MCP 도구 이름. `monitor` 및 `MCP task` 작업에만 존재합니다 |

2799| `name` | 워크플로 이름입니다. `workflow` 작업에만 있습니다 |2800| `name` | 워크플로 이름. `workflow` 작업에만 존재합니다 |

2800 2801 

2801`session_crons`의 각 항목은 `CronCreate`, `ScheduleWakeup`, `/loop`에서 생성된 세션 범위의 예약된 깨우기 하나를 설명합니다.2802`session_crons`의 각 항목은 `CronCreate`, `ScheduleWakeup`, `/loop`에서 생성된 세션 범위의 예약된 깨우기 하나를 설명합니다.

2802 2803 

2803| 필드 | 설명 |2804| 필드 | 설명 |

2804| :- | :- |2805| :- | :- |

2805| `id` | Cron 작업 식별자입니다 |2806| `id` | Cron 작업 식별자 |

2806| `schedule` | Cron 표현식입니다. 예: `0 9 * * 1-5` |2807| `schedule` | Cron 표현식. 예: `0 9 * * 1-5` |

2807| `recurring` | 일정이 단일 실행 시각을 나타내는 일회성 깨우기는 `false`, 매칭될 때마다 다시 실행되는 작업은 `true`입니다 |2808| `recurring` | 일정이 단일 실행 시각을 나타내는 일회성 깨우기는 `false`, 일치할 때마다 다시 실행되는 작업은 `true` |

2808| `prompt` | cron이 실행될 때 제출되는 프롬프트로, 1000자로 제한되며 같은 `… [+N chars]` 마커가 붙습니다 |2809| `prompt` | cron이 실행될 때 제출되는 프롬프트. 1000자로 제한되며 동일한 `… [+N chars]` 마커를 사용합니다 |

2809 2810 

2810이 예시는 진행 중인 셸 작업 하나와 반복 cron 하나가 있는 Stop 입력을 보여 줍니다.2811이 예시는 진행 중인 셸 작업 하나와 반복 cron 하나가 있는 Stop 입력을 보여 줍니다.

2811 2812 


2839```2840```

2840 2841 

2841<h4 id="stop-decision-control">2842<h4 id="stop-decision-control">

2842 Stop decision control2843 Stop 결정 제어

2843</h4>2844</h4>

2844 2845 

2845`Stop` 및 `SubagentStop` 훅은 Claude의 계속 진행 여부를 제어할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도, 훅 스크립트는 다음과 같은 이벤트별 필드를 반환할 수 있습니다.2846`Stop` 및 `SubagentStop` 훅은 Claude가 계속할지 여부를 제어할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 훅 스크립트는 다음 이벤트별 필드를 반환할 수 있습니다.

2846 2847 

2847| 필드 | 설명 |2848| 필드 | 설명 |

2848| :- | :- |2849| :- | :- |

2849| `decision` | `"block"`은 Claude가 중지하지 못하게 합니다. Claude가 중지하도록 허용하려면 생략합니다 |2850| `decision` | `"block"`은 Claude가 중지하는 것을 방지합니다. Claude가 중지하도록 허용하려면 생략합니다 |

2850| `reason` | `decision`이 `"block"`일 때 필수입니다. Claude에 계속해야 하는 이유를 알려 줍니다 |2851| `reason` | `decision`이 `"block"`일 때 필수입니다. Claude에게 계속해야 하는 이유를 알려 줍니다 |

2851| `hookSpecificOutput.additionalContext` | Claude를 위한 오류가 아닌 피드백입니다. Claude가 이에 따라 조치할 수 있도록 대화가 계속되지만, `decision: "block"`과 달리 트랜스크립트에 훅 오류가 아닌 훅 피드백으로 표시됩니다 |2852| `hookSpecificOutput.additionalContext` | Claude를 위한 오류가 아닌 피드백. Claude가 이에 따라 행동할 수 있도록 대화가 계속되지만, `decision: "block"`과 달리 트랜스크립트에 훅 오류가 아닌 훅 피드백으로 표시됩니다 |

2852 2853 

2853종료 코드 2로 차단하는 훅은 `reason`과 같은 방식으로 전달됩니다. Claude는 stderr 메시지를 계속해야 하는 이유에 대한 설명으로 받습니다.2854종료 코드 2로 차단하는 훅은 `reason`과 같은 방식으로 전달됩니다. Claude는 stderr 메시지를 계속해야 하는 이유에 대한 설명으로 받습니다.

2854 2855 


2859}2860}

2860```2861```

2861 2862 

2862훅이 설계대로 작동하면서 "완료하기 전에 테스트 스위트 실행"과 같은 안내를 Claude에 제공할 때는 `additionalContext`를 사용합니다. 이 방법은 `decision: "block"`과 같은 루프 보호 장치, 즉 `stop_hook_active` 입력과 연속 8회 계속 진행 한도를 거쳐 대화를 계속하지만, 트랜스크립트에는 `Stop hook feedback`으로 레이블이 지정되며 훅 오류 알림은 표시되지 않습니다.2863훅이 설계대로 동작하면서 "완료하기 전에 테스트 스위트를 실행하세요"와 같이 Claude에게 지침을 제공하는 경우에는 `additionalContext`를 사용하세요. 이는 `decision: "block"`과 동일한 루프 보호 장치, 즉 `stop_hook_active` 입력과 연속 8회 계속 진행 제한을 통해 대화를 계속 진행시키지만, 트랜스크립트에는 `Stop hook feedback`으로 레이블이 지정되며 훅 오류 알림은 표시되지 않습니다.

2863 2864 

2864```json theme={null}2865```json theme={null}

2865{2866{


2874 StopFailure2875 StopFailure

2875</h3>2876</h3>

2876 2877 

2877API 오류로 턴이 끝날 때 [Stop](#stop) 대신 실행됩니다. Claude Code는 [`terminalSequence`](#emit-terminal-notifications)를 제외하고 훅의 출력과 종료 코드를 무시합니다. 속도 제한, 인증 문제 또는 기타 API 오류로 Claude가 응답을 완료할 수 없을 때 실패를 로그에 기록하거나, 알림을 보내거나, 복구 조치를 취하는 데 사용합니다.2878API 오류로 인해 턴이 종료될 때 [Stop](#stop) 대신 실행됩니다. Claude Code는 [`terminalSequence`](#emit-terminal-notifications)를 제외하고 훅의 출력과 종료 코드를 무시합니다. 속도 제한, 인증 문제 또는 기타 API 오류로 인해 Claude가 응답을 완료할 수 없을 때 실패를 로그에 기록하거나, 알림을 보내거나, 복구 작업을 수행하는 데 사용합니다.

2878 2879 

2879<h4 id="stopfailure-input">2880<h4 id="stopfailure-input">

2880 StopFailure input2881 StopFailure 입력

2881</h4>2882</h4>

2882 2883 

2883[공통 입력 필드](#common-input-fields) 외에도, StopFailure 훅은 `error`, 선택적 `error_details`, 선택적 `last_assistant_message`를 전달받습니다. `error` 필드는 오류 유형을 식별하며 matcher 필터링에 사용됩니다.2884[공통 입력 필드](#common-input-fields) 외에도 StopFailure 훅은 `error`, 선택적 `error_details`, 선택적 `last_assistant_message`를 받습니다. `error` 필드는 오류 유형을 식별하며 matcher 필터링에 사용됩니다.

2884 2885 

2885| 필드 | 설명 |2886| 필드 | 설명 |

2886| :- | :- |2887| :- | :- |

2887| `error` | 오류 유형: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error` 또는 `unknown` |2888| `error` | 오류 유형: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error` 또는 `unknown` |

2888| `error_details` | 사용 가능한 경우 오류에 대한 추가 세부 정보입니다 |2889| `error_details` | 가능한 경우 오류에 대한 추가 세부 정보 |

2889| `last_assistant_message` | 대화에 표시되는 렌더링된 오류 텍스트입니다. 이 필드에 Claude의 대화 출력이 담기는 `Stop` 및 `SubagentStop`과 달리, `StopFailure`에서는 `"API Error: Rate limit reached"`와 같은 API 오류 문자열 자체가 담깁니다 |2890| `last_assistant_message` | 대화에 표시되는 렌더링된 오류 텍스트. 이 필드에 Claude의 대화 출력이 담기는 `Stop` 및 `SubagentStop`과 달리, `StopFailure`의 경우 `"API Error: Rate limit reached"`와 같은 API 오류 문자열 자체가 포함됩니다 |

2890 2891 

2891```json theme={null}2892```json theme={null}

2892{2893{


2906 TeammateIdle2907 TeammateIdle

2907</h3>2908</h3>

2908 2909 

2909[에이전트 팀](/docs/ko/agent-teams) 팀원이 턴을 마친 후 유휴 상태로 전환되려고 할 때 실행됩니다. lint 검사 통과를 요구하거나 출력 파일이 존재하는지 확인하는 것처럼, 팀원이 작업을 멈추기 전에 품질 기준을 적용하는 데 사용합니다.2910[에이전트 팀](/docs/ko/agent-teams) 팀원이 턴을 마친 후 유휴 상태가 되려고 할 때 실행됩니다. lint 검사 통과를 요구하거나 출력 파일이 존재하는지 확인하는 것처럼, 팀원이 작업을 멈추기 전에 품질 기준을 강제하는 데 사용합니다.

2910 2911 

2911TeammateIdle 훅은 matcher를 지원하지 않으며 매번 발생합니다.2912TeammateIdle 훅은 matcher를 지원하지 않으며 모든 경우에 발생합니다.

2912 2913 

2913<h4 id="teammateidle-input">2914<h4 id="teammateidle-input">

2914 TeammateIdle input2915 TeammateIdle 입력

2915</h4>2916</h4>

2916 2917 

2917[공통 입력 필드](#common-input-fields) 외에도, TeammateIdle 훅은 `teammate_name`과 `team_name`을 전달받습니다.2918[공통 입력 필드](#common-input-fields) 외에도 TeammateIdle 훅은 `teammate_name`과 `team_name`을 받습니다.

2918 2919 

2919```json theme={null}2920```json theme={null}

2920{2921{


2930 2931 

2931| 필드 | 설명 |2932| 필드 | 설명 |

2932| :- | :- |2933| :- | :- |

2933| `teammate_name` | 유휴 상태로 전환되려는 팀원의 이름입니다 |2934| `teammate_name` | 유휴 상태가 되려는 팀원의 이름 |

2934| `team_name` | Deprecated. 세션에서 파생된 팀 이름이며, 향후 릴리스에서 제거됩니다 |2935| `team_name` | Deprecated. 세션에서 파생된 팀 이름이며, 향후 릴리스에서 제거될 예정입니다 |

2936| `agent_id` | 이 이벤트에서 [공통 입력 필드](#common-input-fields)는 유휴 상태가 되려는 [인프로세스 팀원](/docs/ko/agent-teams#choose-a-display-mode)을 식별합니다. 없을 수 있습니다. Claude Code v2.1.290 이상이 필요합니다 |

2935 2937 

2936<h4 id="teammateidle-decision-control">2938<h4 id="teammateidle-decision-control">

2937 TeammateIdle decision control2939 TeammateIdle 결정 제어

2938</h4>2940</h4>

2939 2941 

2940TeammateIdle 훅은 팀원 동작을 제어하는 두 가지 방법을 지원합니다.2942TeammateIdle 훅은 팀원 동작을 제어하는 두 가지 방법을 지원합니다.

2941 2943 

2942* **종료 코드 2**: 팀원이 stderr 메시지를 피드백으로 받고 유휴 상태로 전환되는 대신 계속 작업합니다.2944* **종료 코드 2**: 팀원이 stderr 메시지를 피드백으로 받고 유휴 상태가 되는 대신 계속 작업합니다.

2943* **JSON `{"continue": false, "stopReason": "..."}`**: `Stop` 훅 동작과 마찬가지로 팀원을 완전히 중지합니다. `stopReason`은 사용자에게 표시됩니다.2945* **JSON `{"continue": false, "stopReason": "..."}`**: `Stop` 훅 동작과 마찬가지로 팀원을 완전히 중지합니다. `stopReason`은 사용자에게 표시됩니다.

2944 2946 

2945이 예시는 팀원이 유휴 상태로 전환되도록 허용하기 전에 빌드 산출물이 존재하는지 확인합니다.2947이 예시는 팀원이 유휴 상태가 되도록 허용하기 전에 빌드 산출물이 존재하는지 확인합니다.

2946 2948 

2947```bash theme={null}2949```bash theme={null}

2948#!/bin/bash2950#!/bin/bash


2959 ConfigChange2961 ConfigChange

2960</h3>2962</h3>

2961 2963 

2962세션 중에 설정 파일이 변경될 때 실행됩니다. 설정 변경을 감사하거나, 보안 정책을 적용하거나, 설정 파일에 대한 무단 수정을 차단하는 데 사용합니다.2964세션 중에 설정 파일이 변경될 때 실행됩니다. 설정 변경을 감사하거나, 보안 정책을 강제하거나, 설정 파일에 대한 무단 수정을 차단하는 데 사용합니다.

2963 2965 

2964Claude Code는 설정 파일, 관리형 정책 파일 또는 스킬 파일이 변경될 때 ConfigChange 훅을 실행합니다. 관리형 정책의 경우 `managed-settings.json` 또는 `managed-settings.d/`의 파일이 변경될 때만 실행합니다. [서버 관리형 설정](/docs/ko/server-managed-settings)과 macOS 관리형 환경설정 또는 Windows 레지스트리 정책의 변경 사항은 훅을 실행하지 않고 적용합니다. [`wslInheritsWindowsSettings`](/docs/ko/settings-reference#wslinheritswindowssettings)를 사용하는 WSL에서는 변경된 Windows 측 관리형 설정 파일도 정책 폴링 시 훅을 실행하지 않고 적용합니다.2966Claude Code는 설정 파일, 관리형 정책 파일 또는 스킬 파일이 변경될 때 ConfigChange 훅을 실행합니다. 관리형 정책의 경우 `managed-settings.json` 또는 `managed-settings.d/`의 파일이 변경될 때만 실행합니다. [서버 관리형 설정](/docs/ko/server-managed-settings)과 macOS 관리형 환경설정 또는 Windows 레지스트리 정책의 변경 사항은 훅을 실행하지 않고 적용합니다. [`wslInheritsWindowsSettings`](/docs/ko/settings-reference#wslinheritswindowssettings)를 사용하는 WSL에서도 정책 폴링 시 변경된 Windows 측 관리형 설정 파일을 훅을 실행하지 않고 적용합니다.

2965 2967 

2966matcher는 구성 소스로 필터링합니다.2968matcher는 구성 출처를 기준으로 필터링합니다.

2967 2969 

2968| Matcher | 발생 시점 |2970| Matcher | 발생 시점 |

2969| :- | :- |2971| :- | :- |


2994```2996```

2995 2997 

2996<h4 id="configchange-input">2998<h4 id="configchange-input">

2997 ConfigChange input2999 ConfigChange 입력

2998</h4>3000</h4>

2999 3001 

3000[공통 입력 필드](#common-input-fields) 외에도, ConfigChange 훅은 `source`와 선택적으로 `file_path`를 전달받습니다. `source` 필드는 어떤 구성 유형이 변경되었는지 나타내고, `file_path`는 수정된 특정 파일의 경로를 제공합니다.3002[공통 입력 필드](#common-input-fields) 외에도 ConfigChange 훅은 `source`와 선택적으로 `file_path`를 받습니다. `source` 필드는 어떤 구성 유형이 변경되었는지 나타내고, `file_path`는 수정된 특정 파일의 경로를 제공합니다.

3001 3003 

3002```json theme={null}3004```json theme={null}

3003{3005{


3011```3013```

3012 3014 

3013<h4 id="configchange-decision-control">3015<h4 id="configchange-decision-control">

3014 ConfigChange decision control3016 ConfigChange 결정 제어

3015</h4>3017</h4>

3016 3018 

3017ConfigChange 훅은 구성 변경이 적용되지 않도록 차단할 수 있습니다. 변경을 막으려면 종료 코드 2 또는 JSON `decision`을 사용합니다. 차단되면 새 설정이 실행 중인 세션에 적용되지 않습니다.3019ConfigChange 훅은 구성 변경이 적용되지 않도록 차단할 수 있습니다. 변경을 방지하려면 종료 코드 2 또는 JSON `decision`을 사용합니다. 차단되면 새 설정이 실행 중인 세션에 적용되지 않습니다.

3018 3020 

3019| 필드 | 설명 |3021| 필드 | 설명 |

3020| :- | :- |3022| :- | :- |


3028}3030}

3029```3031```

3030 3032 

3031`policy_settings` 변경은 차단할 수 없습니다. 머신의 관리형 설정 파일이 변경되면 `policy_settings` 소스에 대해서도 훅이 발생하므로 이러한 수정 사항을 로그에 기록하는 데 사용할 수 있지만, 차단 결정은 무시됩니다. 이를 통해 엔터프라이즈 관리형 설정이 항상 적용되도록 보장합니다. [서버 관리형 설정](/docs/ko/server-managed-settings)이 도착하거나 갱신될 때는 Claude Code가 `ConfigChange` 훅을 실행하지 않습니다.3033`policy_settings` 변경은 차단할 수 없습니다. 머신의 관리형 설정 파일이 변경되면 `policy_settings` 출처에 대해서도 훅이 발생하므로 이를 사용해 해당 편집을 로그에 기록할 수 있지만, 차단 결정은 무시됩니다. 이를 통해 엔터프라이즈 관리형 설정이 항상 적용되도록 보장합니다. [서버 관리형 설정](/docs/ko/server-managed-settings)이 도착하거나 새로 고쳐질 때 Claude Code는 `ConfigChange` 훅을 실행하지 않습니다.

3032 3034 

3033Claude Code는 ConfigChange 훅의 JSON 출력에서 차단 결정에 따라 동작하며 `systemMessage`와 `continue`는 삭제합니다. `reason`으로 차단하든 종료 코드 2의 stderr로 차단하든, 차단된 변경은 사용자나 Claude에게 메시지를 표시하지 않습니다. Claude Code는 디버그 로그에 한 줄만 기록합니다.3035Claude Code는 ConfigChange 훅의 JSON 출력에서 차단 결정에 따라 동작하고 `systemMessage`와 `continue`는 폐기합니다. `reason`으로 차단하든 종료 코드 2의 stderr로 차단하든, 차단된 변경은 사용자나 Claude에게 아무 메시지도 표시하지 않습니다. Claude Code는 디버그 로그에 한 줄만 기록합니다.

3034 3036 

3035<h3 id="cwdchanged">3037<h3 id="cwdchanged">

3036 CwdChanged3038 CwdChanged

3037</h3>3039</h3>

3038 3040 

3039메인 대화의 셸 명령이 작업 디렉터리를 변경할 때 실행됩니다. 예를 들어 Claude가 `cd` 명령을 실행할 때입니다. 디렉터리 변경에 대응하는 데 사용합니다. 환경 변수를 다시 로드하거나, 프로젝트별 툴체인을 활성화하거나, 설정 스크립트를 자동으로 실행할 수 있습니다. 디렉터리별 환경을 관리하는 [direnv](https://direnv.net/) 같은 도구를 위해 [FileChanged](#filechanged)와 함께 사용합니다.3041메인 대화의 셸 명령이 작업 디렉터리를 변경할 때 실행됩니다. 예를 들어 Claude가 `cd` 명령을 실행하는 경우입니다. 디렉터리 변경에 대응하는 데 사용합니다. 환경 변수를 다시 로드하거나, 프로젝트별 툴체인을 활성화하거나, 설정 스크립트를 자동으로 실행할 수 있습니다. 디렉터리별 환경을 관리하는 [direnv](https://direnv.net/) 같은 도구를 위해 [FileChanged](#filechanged)와 함께 사용합니다.

3040 3042 

3041CwdChanged 훅은 [`CLAUDE_ENV_FILE`](#persist-environment-variables)에 접근할 수 있습니다. 해당 파일에 기록된 변수는 다음 CwdChanged 이벤트에서 Claude Code가 이를 지울 때까지 이후의 Bash 명령에 유지됩니다.3043CwdChanged 훅은 [`CLAUDE_ENV_FILE`](#persist-environment-variables)에 접근할 수 있습니다. 해당 파일에 기록된 변수는 다음 CwdChanged 이벤트에서 Claude Code가 지울 때까지 이후의 Bash 명령에 유지됩니다.

3042 3044 

3043CwdChanged는 matcher를 지원하지 않으며 매번 발생합니다.3045CwdChanged는 matcher를 지원하지 않으며 모든 경우에 발생합니다.

3044 3046 

3045<h4 id="cwdchanged-input">3047<h4 id="cwdchanged-input">

3046 CwdChanged input3048 CwdChanged 입력

3047</h4>3049</h4>

3048 3050 

3049[공통 입력 필드](#common-input-fields) 외에도, CwdChanged 훅은 `old_cwd`와 `new_cwd`를 전달받습니다.3051[공통 입력 필드](#common-input-fields) 외에도 CwdChanged 훅은 `old_cwd`와 `new_cwd`를 받습니다.

3050 3052 

3051```json theme={null}3053```json theme={null}

3052{3054{


3060```3062```

3061 3063 

3062<h4 id="cwdchanged-output">3064<h4 id="cwdchanged-output">

3063 CwdChanged output3065 CwdChanged 출력

3064</h4>3066</h4>

3065 3067 

3066모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도, CwdChanged 훅은 `watchPaths`를 반환하여 [FileChanged](#filechanged)가 감시하는 파일 경로를 동적으로 설정할 수 있습니다.3068모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 CwdChanged 훅은 [FileChanged](#filechanged)가 감시하는 파일 경로를 동적으로 설정하기 위해 `watchPaths`를 반환할 수 있습니다.

3067 3069 

3068| 필드 | 설명 |3070| 필드 | 설명 |

3069| :- | :- |3071| :- | :- |

3070| `watchPaths` | 절대 경로의 배열입니다. 현재 동적 감시 목록을 대체합니다. `matcher` 구성의 경로는 항상 감시됩니다. 빈 배열을 반환하면 동적 목록이 지워지며, 이는 새 디렉터리에 진입할 때 일반적입니다 |3072| `watchPaths` | 절대 경로의 배열. 현재 동적 감시 목록을 대체합니다. `matcher` 구성의 경로는 항상 감시됩니다. 빈 배열을 반환하면 동적 목록이 지워지며, 이는 새 디렉터리에 진입할 때 일반적입니다 |

3071 3073 

3072CwdChanged 훅에는 결정 제어가 없습니다. 디렉터리 변경을 차단할 수 없습니다.3074CwdChanged 훅에는 결정 제어가 없습니다. 디렉터리 변경을 차단할 수 없습니다.

3073 3075 

3074Claude Code는 JSON 출력에서 `watchPaths`와 `systemMessage`를 읽고 `continue`는 삭제합니다. 대화형 세션에서는 `systemMessage`를 짧은 터미널 알림으로 표시합니다. 이 메시지는 SDK 메시지 스트림에 전달되지 않습니다.3076Claude Code는 JSON 출력에서 `watchPaths`와 `systemMessage`를 읽고 `continue`는 폐기합니다. 대화형 세션에서는 `systemMessage`를 짧은 터미널 알림으로 표시합니다. 이 메시지는 SDK 메시지 스트림에 도달하지 않습니다.

3075 3077 

3076<h3 id="directoryadded">3078<h3 id="directoryadded">

3077 DirectoryAdded3079 DirectoryAdded

3078</h3>3080</h3>

3079 3081 

3080세션 중에 사용자가 `/add-dir` 명령으로 작업 디렉터리를 추가한 후, 또는 SDK 클라이언트가 `register_repo_root` 제어 요청으로 작업 디렉터리를 추가한 후에 실행됩니다. 예를 들어 의존성을 설치하는 것처럼 새로 추가된 저장소를 준비하는 데 사용합니다.3082세션 도중 `/add-dir` 명령으로 작업 디렉터리를 추가한 후, 또는 SDK 클라이언트가 `register_repo_root` 제어 요청으로 작업 디렉터리를 추가한 후에 실행됩니다. 새로 추가된 저장소를 준비하는 데 사용합니다. 예를 들어 해당 저장소의 의존성을 설치할 수 있습니다.

3081 3083 

3082Claude Code는 다음 경우에 이 이벤트를 발생시키지 않습니다.3084Claude Code는 다음 경우에 이 이벤트를 발생시키지 않습니다.

3083 3085 

3084* `--add-dir` 시작 플래그로 디렉터리를 전달한 경우. 이러한 디렉터리는 [SessionStart](#sessionstart)가 처리합니다3086* `--add-dir` 시작 플래그로 디렉터리를 전달한 경우. 해당 디렉터리는 [SessionStart](#sessionstart)가 처리합니다

3085* `/permissions`의 Workspace 탭에서 디렉터리를 추가한 경우3087* `/permissions` Workspace 탭에서 디렉터리를 추가한 경우

3086* 이미 작업 디렉터리이거나 작업 디렉터리 내부에 있는 디렉터리를 추가한 경우3088* 이미 작업 디렉터리이거나 작업 디렉터리 내부에 있는 디렉터리를 추가한 경우

3087 3089 

3088Claude Code는 샌드박스 및 권한 상태를 갱신한 후 DirectoryAdded를 발생시키므로, 훅이 실행될 때 샌드박스 처리된 도구는 이미 새 디렉터리를 인식합니다. 훅 명령 자체는 샌드박스 없이 실행됩니다.3090Claude Code는 샌드박스 및 권한 상태를 새로 고친 후 DirectoryAdded를 발생시키므로, 훅이 실행될 때 샌드박스 처리된 도구는 이미 새 디렉터리를 인식합니다. 훅 명령 자체는 샌드박스 없이 실행됩니다.

3089 3091 

3090Claude Code는 훅을 기다리지 않습니다. 추가는 즉시 완료되며, 훅은 600초의 기본 타임아웃으로 백그라운드에서 실행됩니다.3092Claude Code는 훅을 기다리지 않습니다. 추가는 즉시 완료되며, 훅은 600초 기본 타임아웃으로 백그라운드에서 실행됩니다.

3091 3093 

3092matcher는 디렉터리가 추가된 방식으로 필터링합니다.3094matcher는 디렉터리가 추가된 방식을 기준으로 필터링합니다.

3093 3095 

3094| Matcher | 발생 시점 |3096| Matcher | 발생 시점 |

3095| :- | :- |3097| :- | :- |

3096| `slash_command` | 사용자가 `/add-dir`로 디렉터리를 추가한 경우 |3098| `slash_command` | `/add-dir`로 디렉터리를 추가한 경우 |

3097| `register_repo_root` | SDK 클라이언트가 `register_repo_root` 제어 요청으로 디렉터리를 추가한 경우 |3099| `register_repo_root` | SDK 클라이언트가 `register_repo_root` 제어 요청으로 디렉터리를 추가한 경우 |

3098 3100 

3099<h4 id="directoryadded-input">3101<h4 id="directoryadded-input">

3100 DirectoryAdded input3102 DirectoryAdded 입력

3101</h4>3103</h4>

3102 3104 

3103[공통 입력 필드](#common-input-fields) 외에도, DirectoryAdded 훅은 `directory`와 `source`를 전달받습니다.3105[공통 입력 필드](#common-input-fields) 외에도 DirectoryAdded 훅은 `directory`와 `source`를 받습니다.

3104 3106 

3105| 필드 | 설명 |3107| 필드 | 설명 |

3106| :- | :- |3108| :- | :- |

3107| `directory` | 추가된 디렉터리의 절대 경로입니다 |3109| `directory` | 추가된 디렉터리의 절대 경로 |

3108| `source` | 디렉터리가 추가된 방식으로, `/add-dir`의 경우 `"slash_command"`, SDK 제어 요청의 경우 `"register_repo_root"`입니다 |3110| `source` | 디렉터리가 추가된 방식. `/add-dir`의 경우 `"slash_command"`, SDK 제어 요청의 경우 `"register_repo_root"` |

3109 3111 

3110```json theme={null}3112```json theme={null}

3111{3113{


3118}3120}

3119```3121```

3120 3122 

3121DirectoryAdded 훅에는 결정 제어가 없습니다. 훅이 실행될 때 이미 완료된 추가를 차단할 수 없습니다. Claude Code는 JSON 출력에서 `continue` 필드를 삭제하고, 나머지는 소스에 따라 다르게 표시합니다.3123DirectoryAdded 훅에는 결정 제어가 없습니다. 훅이 실행될 때 이미 완료된 추가를 차단할 수 없습니다. Claude Code는 JSON 출력에서 `continue` 필드를 폐기하고, 나머지는 출처에 따라 다르게 표시합니다.

3122 3124 

3123* `slash_command`: Claude Code는 훅의 `systemMessage`를 사용자에게 표시하는 대신 다음 대화 턴에서 Claude에 컨텍스트로 전달합니다. 실패한 훅의 수가 트랜스크립트에 표시됩니다. 전체 실패 출력은 디버그 로그에 기록됩니다3125* `slash_command`: Claude Code는 훅의 `systemMessage`를 사용자에게 표시하지 않고 다음 대화 턴에서 Claude에게 컨텍스트로 전달합니다. 실패한 훅의 개수가 트랜스크립트에 표시됩니다. 전체 실패 출력은 디버그 로그에 기록됩니다

3124* `register_repo_root`: Claude Code는 `systemMessage` 출력과 실패 출력을 디버그 로그에만 기록합니다3126* `register_repo_root`: Claude Code는 `systemMessage` 출력과 실패 출력을 디버그 로그에만 기록합니다

3125 3127 

3126<h3 id="filechanged">3128<h3 id="filechanged">

3127 FileChanged3129 FileChanged

3128</h3>3130</h3>

3129 3131 

3130감시 중인 파일이 디스크에서 변경될 때 실행됩니다. Claude Code는 도구 호출을 검사하는 것이 아니라 파일 시스템 감시자로 변경을 감지하므로, 무엇이 파일을 변경했든 훅을 실행합니다. `Edit` 또는 `Write` 도구 호출, Claude가 `Bash`로 실행하는 스크립트, 또는 Claude Code 외부의 프로세스 모두 해당됩니다. 일반적인 용도는 프로젝트 설정 파일이 변경될 때 환경 변수를 다시 로드하는 것입니다.3132감시 중인 파일이 디스크에서 변경될 때 실행됩니다. Claude Code는 도구 호출을 검사하는 것이 아니라 파일 시스템 감시자로 변경을 감지하므로, 무엇이 파일을 변경했든 훅을 실행합니다. `Edit` 또는 `Write` 도구 호출, Claude가 `Bash`로 실행하는 스크립트, 또는 완전히 Claude Code 외부의 프로세스가 모두 해당됩니다. 일반적인 용도는 프로젝트 설정 파일이 변경될 때 환경 변수를 다시 로드하는 것입니다.

3131 3133 

3132이 이벤트의 `matcher`는 두 가지 역할을 합니다.3134이 이벤트의 `matcher`는 두 가지 역할을 합니다.

3133 3135 

3134* **감시 목록 구성**: 값을 `|`로 분할하고 각 세그먼트를 작업 디렉터리의 리터럴 파일 이름으로 등록하므로, `".envrc|.env"`는 정확히 이 두 파일을 감시합니다. 여기서는 정규식 패턴이 유용하지 않습니다. `^\.env` 같은 값은 문자 그대로 `^\.env`라는 이름의 파일을 감시합니다.3136* **감시 목록 구성**: 값은 `|`로 분할되며 각 세그먼트는 작업 디렉터리의 리터럴 파일 이름으로 등록되므로, `".envrc|.env"`는 정확히 그 두 파일을 감시합니다. 여기서는 정규 표현식 패턴이 유용하지 않습니다. `^\.env`와 같은 값은 문자 그대로 `^\.env`라는 이름의 파일을 감시합니다.

3135* **실행할 훅 필터링**: 감시 중인 파일이 변경되면, 같은 값이 표준 [matcher 규칙](#matcher-patterns)을 사용하여 변경된 파일의 기본 이름(basename)을 대상으로 실행할 훅 그룹을 필터링합니다.3137* **실행할 훅 필터링**: 감시 중인 파일이 변경되면 동일한 값이 변경된 파일의 basename에 대해 표준 [matcher 규칙](#matcher-patterns)을 사용하여 실행할 훅 그룹을 필터링합니다.

3136 3138 

3137이 예시는 `Bash` 명령이나 외부 스크립트가 파일을 다시 쓰는 경우를 포함하여, 모든 변경 후 `data.csv`의 줄 끝을 정규화합니다.3139이 예시는 `Bash` 명령이나 외부 스크립트가 파일을 다시 기록하는 경우를 포함하여 모든 변경 후 `data.csv`의 줄 끝을 정규화합니다.

3138 3140 

3139```json theme={null}3141```json theme={null}

3140{3142{


3154}3156}

3155```3157```

3156 3158 

3157훅은 stdin의 [JSON 입력](#filechanged-input)에 있는 `file_path` 필드에서 변경된 파일의 절대 경로를 읽습니다. `grep` 가드는 `perl`이 제거하는 것과 같은 대상, 즉 줄 끝의 CR을 검사하므로, 정규화 이후의 실행은 파일을 건드리지 않고 종료됩니다. 더 느슨한 가드는 무한 루프에 빠집니다. `perl -i`는 치환할 것이 없어도 파일을 다시 쓰고, Claude Code는 다시 쓸 때마다 훅을 다시 실행하기 때문입니다. 이 스크립트를 `/path/to/normalize-line-endings.sh`에 저장하고 실행 가능하게 만듭니다.3159훅은 stdin으로 받는 [JSON 입력](#filechanged-input)의 `file_path` 필드에서 변경된 파일의 절대 경로를 읽습니다. `grep` 가드는 `perl`이 제거하는 것과 동일한 대상, 즉 줄 끝의 CR을 검사하므로, 정규화 후의 실행은 파일을 건드리지 않고 종료됩니다. 가드가 더 느슨하면 무한 루프가 발생합니다. `perl -i`는 아무것도 치환하지 않아도 파일을 다시 기록하고, Claude Code는 다시 기록될 때마다 훅을 다시 실행하기 때문입니다. 이 스크립트를 `/path/to/normalize-line-endings.sh`에 저장하고 실행 가능하게 만드세요.

3158 3160 

3159```bash theme={null}3161```bash theme={null}

3160#!/bin/bash3162#!/bin/bash


3164fi3166fi

3165```3167```

3166 3168 

3167훅이 작동하는지 확인하려면 Claude에 `Bash` 명령으로 `data.csv`에 CRLF 줄을 추가하도록 요청합니다. Claude Code가 훅을 실행하고 파일은 LF 줄 끝을 갖게 됩니다.3169훅이 작동하는지 확인하려면 Claude에게 `Bash` 명령으로 `data.csv`에 CRLF 줄을 추가하도록 요청하세요. Claude Code가 훅을 실행하고 파일은 LF 줄 끝으로 바뀝니다.

3168 3170 

3169미리 이름을 지정할 수 없는 파일을 감시하려면 훅에서 [`watchPaths`](#filechanged-output)를 반환하여 감시 목록을 동적으로 업데이트합니다. Claude Code는 감시할 파일이 지정될 때만 감시자를 시작하므로, matcher가 최소 하나의 파일을 지정하는 FileChanged 그룹이나 `watchPaths`를 반환하는 [SessionStart](#sessionstart-decision-control) 또는 [CwdChanged](#cwdchanged) 훅으로 목록을 초기화합니다. matcher는 감시 중인 파일이 변경될 때 실행할 훅 그룹을 여전히 필터링하므로, 동적 경로를 처리하는 그룹에는 matcher를 생략합니다. 생략된 matcher는 모든 감시 파일과 매칭되며 감시 목록에 아무것도 추가하지 않습니다. `"*"` matcher도 모든 파일과 매칭되지만, Claude Code는 이를 다른 값과 마찬가지로 `*`라는 이름의 리터럴 파일로 감시 목록에 등록합니다.3171미리 이름을 지정할 수 없는 파일을 감시하려면 훅에서 [`watchPaths`](#filechanged-output)를 반환하여 감시 목록을 동적으로 업데이트합니다. Claude Code는 감시할 파일이 지정된 경우에만 감시자를 시작하므로, matcher가 최소 하나의 파일을 지정하는 FileChanged 그룹이나 `watchPaths`를 반환하는 [SessionStart](#sessionstart-decision-control) 또는 [CwdChanged](#cwdchanged) 훅으로 목록을 초기화하세요. 감시 중인 파일이 변경될 때 matcher는 여전히 실행할 훅 그룹을 필터링하므로, 동적 경로를 처리하는 그룹은 matcher를 생략하세요. 생략된 matcher는 감시 중인 모든 파일과 일치하며 감시 목록에는 아무것도 추가하지 않습니다. `"*"` matcher도 모든 파일과 일치하지만, Claude Code는 이를 다른 값과 마찬가지로 `*`라는 리터럴 파일로 감시 목록에 등록합니다.

3170 3172 

3171FileChanged 훅은 [`CLAUDE_ENV_FILE`](#persist-environment-variables)에 접근할 수 있습니다. 해당 파일에 기록된 변수는 다음 [CwdChanged](#cwdchanged) 이벤트에서 Claude Code가 이를 지울 때까지 이후의 Bash 명령에 유지됩니다.3173FileChanged 훅은 [`CLAUDE_ENV_FILE`](#persist-environment-variables)에 접근할 수 있습니다. 해당 파일에 기록된 변수는 다음 [CwdChanged](#cwdchanged) 이벤트에서 Claude Code가 지울 때까지 이후의 Bash 명령에 유지됩니다.

3172 3174 

3173<h4 id="filechanged-input">3175<h4 id="filechanged-input">

3174 FileChanged input3176 FileChanged 입력

3175</h4>3177</h4>

3176 3178 

3177[공통 입력 필드](#common-input-fields) 외에도, FileChanged 훅은 `file_path`와 `event`를 전달받습니다.3179[공통 입력 필드](#common-input-fields) 외에도 FileChanged 훅은 `file_path`와 `event`를 받습니다.

3178 3180 

3179| 필드 | 설명 |3181| 필드 | 설명 |

3180| :- | :- |3182| :- | :- |

3181| `file_path` | 변경된 파일의 절대 경로입니다 |3183| `file_path` | 변경된 파일의 절대 경로 |

3182| `event` | 발생한 일: 수정된 파일은 `"change"`, 생성된 파일은 `"add"`, 삭제된 파일은 `"unlink"`입니다 |3184| `event` | 발생한 일: 수정된 파일은 `"change"`, 생성된 파일은 `"add"`, 삭제된 파일은 `"unlink"` |

3183 3185 

3184```json theme={null}3186```json theme={null}

3185{3187{


3193```3195```

3194 3196 

3195<h4 id="filechanged-output">3197<h4 id="filechanged-output">

3196 FileChanged output3198 FileChanged 출력

3197</h4>3199</h4>

3198 3200 

3199모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도, FileChanged 훅은 `watchPaths`를 반환하여 감시할 파일 경로를 동적으로 업데이트할 수 있습니다.3201모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 FileChanged 훅은 감시할 파일 경로를 동적으로 업데이트하기 위해 `watchPaths`를 반환할 수 있습니다.

3200 3202 

3201| 필드 | 설명 |3203| 필드 | 설명 |

3202| :- | :- |3204| :- | :- |

3203| `watchPaths` | 절대 경로의 배열입니다. 현재 동적 감시 목록을 대체합니다. `matcher` 구성의 경로는 항상 감시됩니다. 훅 스크립트가 변경된 파일을 기반으로 감시할 추가 파일을 찾았을 때 사용합니다 |3205| `watchPaths` | 절대 경로의 배열. 현재 동적 감시 목록을 대체합니다. `matcher` 구성의 경로는 항상 감시됩니다. 훅 스크립트가 변경된 파일을 기반으로 감시할 추가 파일을 발견할 때 사용합니다 |

3204 3206 

3205FileChanged 훅에는 결정 제어가 없습니다. 파일 변경이 일어나는 것을 차단할 수 없습니다.3207FileChanged 훅에는 결정 제어가 없습니다. 파일 변경이 발생하는 것을 차단할 수 없습니다.

3206 3208 

3207Claude Code는 JSON 출력에서 `watchPaths`와 `systemMessage`를 읽고 `continue`는 삭제합니다. 대화형 세션에서는 `systemMessage`를 짧은 터미널 알림으로 표시합니다. 이 메시지는 SDK 메시지 스트림에 전달되지 않습니다.3209Claude Code는 JSON 출력에서 `watchPaths`와 `systemMessage`를 읽고 `continue`는 폐기합니다. 대화형 세션에서는 `systemMessage`를 짧은 터미널 알림으로 표시합니다. 이 메시지는 SDK 메시지 스트림에 도달하지 않습니다.

3208 3210 

3209<h3 id="worktreecreate">3211<h3 id="worktreecreate">

3210 WorktreeCreate3212 WorktreeCreate

3211</h3>3213</h3>

3212 3214 

3213`claude --worktree`, [`isolation: "worktree"`를 사용하는 서브에이전트](/docs/ko/sub-agents#choose-the-subagent-scope), 또는 Claude Code가 자체 worktree에 격리하는 [백그라운드 세션](/docs/ko/agent-view#how-file-edits-are-isolated) 등으로 worktree가 생성될 때 실행됩니다. 기본적으로 Claude Code는 `git worktree`로 격리된 작업 사본을 생성합니다. WorktreeCreate 훅을 구성하면 이 기본 git 동작이 대체되므로, SVN, Perforce, Mercurial 같은 다른 버전 관리 시스템을 사용할 수 있습니다.3215`claude --worktree`, [`isolation: "worktree"`를 사용하는 서브에이전트](/docs/ko/sub-agents#choose-the-subagent-scope), 또는 Claude Code가 자체 worktree에 격리하는 [백그라운드 세션](/docs/ko/agent-view#how-file-edits-are-isolated) 등 worktree가 생성될 때 실행됩니다. 기본적으로 Claude Code는 `git worktree`로 격리된 작업 사본을 만듭니다. WorktreeCreate 훅을 구성하면 이 기본 git 동작을 대체하므로 SVN, Perforce, Mercurial과 같은 다른 버전 관리 시스템을 사용할 수 있습니다.

3214 3216 

3215훅이 기본 동작을 완전히 대체하므로 [`.worktreeinclude`](/docs/ko/worktrees#copy-gitignored-files-into-worktrees)는 처리되지 않습니다. `.env` 같은 로컬 설정 파일을 새 워크트리에 복사해야 하는 경우 훅 스크립트 안에서 수행합니다.3217훅이 기본 동작을 완전히 대체하므로 [`.worktreeinclude`](/docs/ko/worktrees#copy-gitignored-files-into-worktrees)는 처리되지 않습니다. `.env`와 같은 로컬 설정 파일을 새 워크트리로 복사해야 한다면 훅 스크립트 안에서 복사하십시오.

3216 3218 

3217훅은 생성된 worktree 디렉터리의 경로를 반환해야 합니다. Claude Code는 이 경로를 격리된 세션의 작업 디렉터리로 사용합니다. 각 훅 유형이 경로를 반환하는 방법은 [WorktreeCreate 출력](#worktreecreate-output)을 참조하세요.3219훅은 생성된 worktree 디렉터리의 경로를 반환해야 합니다. Claude Code는 이 경로를 격리된 세션의 작업 디렉터리로 사용합니다. 각 훅 유형이 경로를 반환하는 방법은 [WorktreeCreate 출력](#worktreecreate-output)을 참조하십시오.

3218 3220 

3219Claude Code는 훅의 성공 여부와 반환된 경로에 따라 동작하며, `systemMessage`와 `continue`는 삭제합니다.3221Claude Code는 훅의 성공 여부와 반환된 경로에 따라 동작하며, `systemMessage`와 `continue`는 버립니다.

3220 3222 

3221이 예시는 SVN 작업 사본을 생성하고 Claude Code가 사용할 경로를 출력합니다. 저장소 URL을 자신의 것으로 바꿉니다.3223다음 예시는 SVN 작업 사본을 만들고 Claude Code가 사용할 경로를 출력합니다. 저장소 URL을 사용자의 URL로 바꾸십시오.

3222 3224 

3223```json theme={null}3225```json theme={null}

3224{3226{


3237}3239}

3238```3240```

3239 3241 

3240훅은 stdin의 JSON 입력에서 worktree `name`을 읽고, 새 디렉터리에 새 사본을 체크아웃한 다음, 디렉터리 경로를 출력합니다. 마지막 줄의 `echo`가 Claude Code가 worktree 경로로 읽는 부분입니다. 경로에 방해가 되지 않도록 다른 모든 출력은 stderr로 리디렉션합니다.3242이 훅은 stdin의 JSON 입력에서 worktree `name`을 읽고, 새 디렉터리에 새 사본을 체크아웃한 다음 디렉터리 경로를 출력합니다. 마지막 줄의 `echo`가 Claude Code가 worktree 경로로 읽는 부분입니다. 경로와 충돌하지 않도록 다른 출력은 모두 stderr로 리디렉션하십시오.

3241 3243 

3242<h4 id="worktreecreate-input">3244<h4 id="worktreecreate-input">

3243 WorktreeCreate input3245 WorktreeCreate input

3244</h4>3246</h4>

3245 3247 

3246[공통 입력 필드](#common-input-fields) 외에도, WorktreeCreate 훅은 `name` 필드를 전달받습니다. 이는 사용자가 지정하거나 자동 생성된 새 worktree의 슬러그 식별자로, 예를 들면 `bold-oak-a3f2`입니다.3248[공통 입력 필드](#common-input-fields)에 더해 WorktreeCreate 훅은 `name` 필드를 받습니다. 이는 사용자가 지정했거나 자동 생성된 새 worktree의 슬러그 식별자이며, 예를 들면 `bold-oak-a3f2`와 같습니다.

3247 3249 

3248```json theme={null}3250```json theme={null}

3249{3251{


3256```3258```

3257 3259 

3258<h4 id="worktreecreate-output">3260<h4 id="worktreecreate-output">

3259 WorktreeCreate 출력3261 WorktreeCreate output

3260</h4>3262</h4>

3261 3263 

3262WorktreeCreate 훅은 표준 허용/차단 결정 모델을 사용하지 않습니다. 대신 훅의 성공 또는 실패가 결과를 결정합니다. 훅은 생성된 worktree 디렉터리의 경로를 반환해야 합니다.3264WorktreeCreate 훅은 표준 허용/차단 결정 모델을 사용하지 않습니다. 대신 훅의 성공 또는 실패가 결과를 결정합니다. 훅은 생성된 worktree 디렉터리의 경로를 반환해야 합니다.

3263 3265 

3264* **명령 훅** (`type: "command"`): stdout의 비어 있지 않은 마지막 줄에 경로를 출력합니다. Claude Code는 해당 줄을 읽기 전에 ANSI 이스케이프 코드를 제거하므로 `echo` 이전에 출력된 셸 시작 배너는 무시됩니다. 그 밖의 훅 출력은 stderr로 리디렉션하십시오.3266* **명령 훅** (`type: "command"`): stdout의 비어 있지 않은 마지막 줄에 경로를 출력합니다. Claude Code는 해당 줄을 읽기 전에 ANSI 이스케이프 코드를 제거하므로 `echo` 전에 출력되는 셸 시작 배너는 무시됩니다. 훅의 다른 출력은 모두 stderr로 리디렉션하십시오.

3265* **HTTP 훅** (`type: "http"`): 응답 본문에 `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }`를 반환합니다.3267* **HTTP 훅** (`type: "http"`): 응답 본문에 `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }`를 반환합니다.

3266 3268 

3267훅이 실패하거나 경로를 생성하지 않으면 worktree 생성이 오류와 함께 실패합니다.3269훅이 실패하거나 경로를 생성하지 않으면 worktree 생성이 오류와 함께 실패합니다.

3268 3270 

3269Claude Code는 상대 경로를 훅이 실행된 디렉터리를 기준으로 해석하며, 경로에 포함된 `.` 또는 `..` 세그먼트를 정리합니다. 결과 경로가 Claude Code가 진입할 수 있는 디렉터리가 아니면 세션은 해당 경로를 명시한 오류를 출력하고 코드 1로 종료됩니다.3271Claude Code는 상대 경로를 훅이 실행된 디렉터리를 기준으로 해석하며, 경로 안의 `.` 또는 `..` 세그먼트를 정리합니다. 결과 경로가 Claude Code가 들어갈 수 있는 디렉터리가 아니면 세션은 해당 경로를 명시한 오류를 출력하고 코드 1로 종료됩니다.

3270 3272 

3271Claude Code는 `.` 또는 `..` 세그먼트가 포함된 절대 경로와 저장소 루트 아래의 심볼릭 링크를 거치는 모든 경로를 거부합니다. 저장소에 커밋된 심볼릭 링크가 워크트리를 저장소 외부로 리디렉션할 수 있기 때문입니다. 오류 메시지에는 거부된 구성 요소가 명시됩니다. 저장소 내부의 심볼릭 링크를 거치지 않는 정규화된 경로를 반환하십시오. v2.1.216 이전에는 worktree 생성 시 이러한 검사 없이 훅의 경로를 그대로 따랐습니다.3273Claude Code는 `.` 또는 `..` 세그먼트가 포함된 절대 경로와 저장소 루트 아래의 심볼릭 링크를 거치는 모든 경로를 거부합니다. 저장소에 커밋된 심볼릭 링크가 worktree를 저장소 외부로 리디렉션할 수 있기 때문입니다. 오류 메시지에는 거부된 구성 요소가 표시됩니다. 저장소 내부의 심볼릭 링크를 거치지 않는 정규화된 경로를 반환하십시오. v2.1.216 이전에는 worktree 생성 시 이러한 검사 없이 훅의 경로를 그대로 따랐습니다.

3272 3274 

3273<h3 id="worktreeremove">3275<h3 id="worktreeremove">

3274 WorktreeRemove3276 WorktreeRemove

3275</h3>3277</h3>

3276 3278 

3277Claude Code가 [`WorktreeCreate`](#worktreecreate) 훅으로 생성된 worktree를 정리할 때 실행됩니다. 이 이벤트는 다음 경우에 발생합니다.3279Claude Code가 [`WorktreeCreate`](#worktreecreate) 훅으로 생성된 worktree를 정리할 때 실행됩니다. 이 이벤트는 다음과 같은 경우에 발생합니다.

3278 3280 

3279* 대화형 [worktree 세션](/docs/ko/worktrees#start-claude-in-a-worktree)을 종료하면서 Claude Code가 확인을 요청할 때 worktree 제거를 선택한 경우3281* 대화형 [worktree 세션](/docs/ko/worktrees#start-claude-in-a-worktree)을 종료하고 Claude Code가 확인을 요청할 때 worktree 제거를 선택하는 경우

3280* [이름을 지정](/docs/ko/sessions#name-your-sessions)하지 않은 대화형 worktree 세션을 종료했을 때 Claude Code가 변경되었거나 추적되지 않는 파일을 찾지 못해 확인 요청 없이 worktree를 제거하는 경우3282* [이름을 지정](/docs/ko/sessions#name-your-sessions)하지 않은 대화형 worktree 세션을 종료하고, Claude Code가 변경되거나 추적되지 않는 파일을 찾지 못해 묻지 않고 worktree를 제거하는 경우

3281* 해당 worktree에서 실행되는 [백그라운드 세션](/docs/ko/agent-view#what-deleting-a-session-removes)을 삭제한 경우3283* worktree에서 실행되는 [백그라운드 세션](/docs/ko/agent-view#what-deleting-a-session-removes)을 삭제하는 경우

3282 3284 

3283Claude Code는 git을 사용해 변경되었거나 추적되지 않는 파일을 찾으므로, git 체크아웃이 아니거나 git 체크아웃 내부에 있지 않은 worktree에서는 디렉터리에 커밋되지 않은 작업이 있더라도 아무것도 찾지 못합니다. WorktreeRemove 훅에서 무언가를 삭제하기 전에 그러한 작업이 있는지 확인하십시오.3285Claude Code는 git을 사용해 변경되거나 추적되지 않는 파일을 찾으므로, git 체크아웃이 아니거나 git 체크아웃 내부에 있지 않은 worktree에서는 디렉터리에 커밋되지 않은 작업이 있더라도 아무것도 찾지 못합니다. WorktreeRemove 훅에서 무언가를 삭제하기 전에 그러한 작업이 있는지 확인하십시오.

3284 3286 

3285git 기반 worktree의 경우 Claude Code가 `git worktree remove`로 정리를 자동으로 처리합니다. WorktreeCreate 훅을 구성했다면 WorktreeRemove 훅과 함께 사용하여 해당 훅이 생성한 워크트리의 정리를 제어하십시오.3287git 기반 worktree의 경우 Claude Code는 `git worktree remove`로 정리를 자동 처리합니다. WorktreeCreate 훅을 구성했다면 WorktreeRemove 훅과 함께 사용하여 해당 훅이 생성한 워크트리의 정리를 제어하십시오.

3286 3288 

3287* **WorktreeRemove 훅이 없는 경우**: worktree 세션을 종료하면서 Claude Code가 worktree를 제거할 때, WorktreeCreate 훅이 반환한 경로에 대해 `git worktree remove --force`로 폴백하므로 git이 인식하는 worktree는 제거됩니다. git이 인식하지 못하는 worktree(예: 훅이 git이 아닌 버전 관리 시스템으로 생성한 worktree)는 디스크에 남습니다. [백그라운드 세션](/docs/ko/agent-view#what-deleting-a-session-removes) 삭제 시 훅이 생성한 worktree가 어떻게 처리되는지는 에이전트 뷰의 삭제 규칙을 참조하십시오.3289* **WorktreeRemove 훅이 없는 경우**: worktree 세션을 종료하면서 Claude Code가 worktree를 제거할 때, WorktreeCreate 훅이 반환한 경로에 대해 `git worktree remove --force`로 폴백하므로 git이 인식하는 worktree는 제거됩니다. git이 인식하지 못하는 worktree, 예를 들어 훅이 git이 아닌 버전 관리 시스템으로 생성한 worktree는 디스크에 남습니다. [백그라운드 세션](/docs/ko/agent-view#what-deleting-a-session-removes)을 삭제할 때 훅으로 생성된 worktree가 어떻게 처리되는지는 에이전트 뷰의 삭제 규칙을 참조하십시오.

3288* **훅이 0으로 종료되는 경우**: 워크트리가 제거된 것으로 간주됩니다. Claude Code는 훅에서 다른 내용을 읽지 않으므로 훅이 디렉터리를 실제로 삭제했는지 확인하십시오.3290* **훅이 0으로 종료되는 경우**: worktree가 제거된 것으로 간주됩니다. Claude Code는 훅에서 다른 내용을 읽지 않으므로 훅이 디렉터리를 삭제했는지 확인하십시오.

3289* **훅이 0이 아닌 코드로 종료되는 경우**: 이후에도 `worktree_path`의 디렉터리가 여전히 존재하면 제거가 실패하고, 워크트리는 git 폴백 없이 디스크에 남습니다. 0이 아닌 코드로 종료하기 전에 디렉터리를 삭제한 훅은 제거된 것으로 간주됩니다. 실패가 보고되는 방식은 [WorktreeRemove 입력](#worktreeremove-input)을 참조하십시오.3291* **훅이 0이 아닌 코드로 종료되는 경우**: 이후에도 `worktree_path`의 디렉터리가 여전히 존재하면 제거가 실패하고, git 폴백 없이 worktree가 디스크에 남습니다. 0이 아닌 코드로 종료하기 전에 디렉터리를 삭제한 훅은 제거된 것으로 간주됩니다. 실패가 보고되는 방식은 [WorktreeRemove 입력](#worktreeremove-input)을 참조하십시오.

3290 3292 

3291Claude Code는 WorktreeCreate 훅이 반환한 경로만 알기 때문에 훅이 생성한 워크트리에 속한 브랜치를 삭제하지 않습니다. WorktreeCreate 훅이 브랜치를 생성한다면 WorktreeRemove 훅에서 해당 브랜치를 삭제하십시오.3293Claude Code는 WorktreeCreate 훅이 반환한 경로만 알고 있으므로 훅으로 생성된 worktree에 속한 브랜치를 삭제하지 않습니다. WorktreeCreate 훅이 브랜치를 생성한다면 WorktreeRemove 훅에서 삭제하십시오.

3292 3294 

3293Claude Code는 `systemMessage`, `continue` 등 WorktreeRemove 훅의 [JSON 출력 필드](#json-output)를 폐기합니다.3295Claude Code는 WorktreeRemove 훅의 `systemMessage`, `continue` 등 [JSON 출력 필드](#json-output)를 버립니다.

3294 3296 

3295백그라운드 세션 삭제 시 Claude Code는 훅을 실행하기 전에 저장된 worktree 경로를 검증하며, 심볼릭 링크이거나 저장소 루트 아래의 심볼릭 링크를 거치는 경로를 거부합니다. 파일이 아직 남아 있는 워크트리에 대해서는 [에이전트 뷰](/docs/ko/agent-view#what-deleting-a-session-removes)에서 삭제를 확인한 경우에만 훅이 실행되며, 이러한 워크트리에 대해 [`claude rm`](/docs/ko/agent-view#manage-sessions-from-the-shell)은 세션과 워크트리를 그대로 유지합니다. v2.1.216 이전에는 이러한 검사 없이 저장된 경로에 대해 훅이 실행되었습니다.3297백그라운드 세션 삭제의 경우 Claude Code는 훅을 실행하기 전에 저장된 worktree 경로를 검증하며, 심볼릭 링크이거나 저장소 루트 아래의 심볼릭 링크를 거치는 경로를 거부합니다. 여전히 파일이 포함된 worktree에 대해서는 [에이전트 뷰](/docs/ko/agent-view#what-deleting-a-session-removes)에서 삭제를 확인한 경우에만 훅이 실행되며, 이러한 worktree에 대해 [`claude rm`](/docs/ko/agent-view#manage-sessions-from-the-shell)은 대신 세션과 worktree를 유지합니다. v2.1.216 이전에는 이러한 검사 없이 저장된 경로에 대해 훅이 실행되었습니다.

3296 3298 

3297Claude Code는 WorktreeCreate가 반환한 경로를 훅 입력의 `worktree_path`로 전달합니다. 다음 예시는 해당 경로를 읽어 디렉터리를 제거합니다.3299Claude Code는 WorktreeCreate가 반환한 경로를 훅 입력의 `worktree_path`로 전달합니다. 다음 예시는 해당 경로를 읽고 디렉터리를 제거합니다.

3298 3300 

3299```json theme={null}3301```json theme={null}

3300{3302{


3314```3316```

3315 3317 

3316<h4 id="worktreeremove-input">3318<h4 id="worktreeremove-input">

3317 WorktreeRemove 입력3319 WorktreeRemove input

3318</h4>3320</h4>

3319 3321 

3320[공통 입력 필드](#common-input-fields)에 더해 WorktreeRemove 훅은 제거되는 worktree의 절대 경로인 `worktree_path` 필드를 받습니다.3322[공통 입력 필드](#common-input-fields)에 더해 WorktreeRemove 훅은 제거되는 worktree의 절대 경로인 `worktree_path` 필드를 받습니다.


3331 3333 

3332WorktreeRemove 훅의 종료 코드가 결과를 결정합니다. 훅이 0이 아닌 코드로 종료되고 이후에도 `worktree_path`의 디렉터리가 여전히 존재하면 제거가 실패합니다.3334WorktreeRemove 훅의 종료 코드가 결과를 결정합니다. 훅이 0이 아닌 코드로 종료되고 이후에도 `worktree_path`의 디렉터리가 여전히 존재하면 제거가 실패합니다.

3333 3335 

3334* 워크트리는 디스크에 남고, 훅의 명령과 stderr는 [디버그 로그](#debug-hooks)에 기록됩니다.3336* worktree는 디스크에 남고, 훅의 명령과 stderr는 [디버그 로그](#debug-hooks)에 기록됩니다.

3335* 백그라운드 세션을 삭제하던 중이었다면 세션도 유지됩니다. [에이전트 뷰](/docs/ko/agent-view#what-deleting-a-session-removes)의 거부 메시지는 `exited 1`과 같이 훅이 어떻게 종료되었는지 보고하고, stderr의 앞부분을 인용하며, 세션을 다시 삭제하면 디렉터리가 그래도 제거되는지 여부를 알려줍니다.3337* 백그라운드 세션을 삭제하던 중이었다면 세션도 유지됩니다. [에이전트 뷰](/docs/ko/agent-view#what-deleting-a-session-removes)의 거부 메시지는 `exited 1`과 같이 훅이 어떻게 종료되었는지 보고하고, stderr의 앞부분을 인용하며, 세션을 다시 삭제하면 디렉터리가 어쨌든 제거되는지 여부를 알려 줍니다.

3336 3338 

3337<h3 id="precompact">3339<h3 id="precompact">

3338 PreCompact3340 PreCompact


3345| Matcher | 실행 시점 |3347| Matcher | 실행 시점 |

3346| :- | :- |3348| :- | :- |

3347| `manual` | `/compact` |3349| `manual` | `/compact` |

3348| `auto` | 대화가 [자동 압축 윈도우](/docs/ko/model-config#set-the-auto-compact-window)에 도달하여 자동 압축될 때 |3350| `auto` | 대화가 [자동 압축 윈도우](/docs/ko/model-config#set-the-auto-compact-window)에 도달했을 때의 자동 압축 |

3349 3351 

3350압축을 차단하려면 코드 2로 종료하십시오. 수동 `/compact`의 경우 stderr 메시지가 사용자에게 표시됩니다. `"decision": "block"`이 포함된 JSON을 반환하여 차단할 수도 있습니다.3352압축을 차단하려면 코드 2로 종료하십시오. 수동 `/compact`의 경우 stderr 메시지가 사용자에게 표시됩니다. `"decision": "block"`이 포함된 JSON을 반환하여 차단할 수도 있습니다.

3351 3353 

3352자동 압축을 차단하면 실행 시점에 따라 효과가 달라집니다. 컨텍스트 한도에 도달하기 전에 선제적으로 압축이 트리거된 경우 Claude Code는 압축을 건너뛰고 대화는 압축되지 않은 상태로 계속됩니다. API가 이미 반환한 컨텍스트 한도 오류에서 복구하기 위해 압축이 트리거된 경우에는 원래 오류가 드러나고 현재 요청이 실패합니다.3354자동 압축을 차단하면 실행 시점에 따라 효과가 다릅니다. 컨텍스트 한도에 도달하기 전에 압축이 선제적으로 트리거된 경우 Claude Code는 압축을 건너뛰고 압축되지 않은 상태로 대화를 계속합니다. API가 이미 반환한 컨텍스트 한도 오류에서 복구하기 위해 압축이 트리거된 경우에는 원래 오류가 표시되고 현재 요청이 실패합니다.

3353 3355 

3354Claude Code는 PreCompact 훅의 `systemMessage` 및 `continue` 필드를 폐기합니다.3356Claude Code는 PreCompact 훅의 `systemMessage` 및 `continue` 필드를 버립니다.

3355 3357 

3356<h4 id="precompact-input">3358<h4 id="precompact-input">

3357 PreCompact 입력3359 PreCompact input

3358</h4>3360</h4>

3359 3361 

3360[공통 입력 필드](#common-input-fields)에 더해 PreCompact 훅은 `trigger`와 `custom_instructions`를 받습니다. `manual`의 경우 `custom_instructions`에는 사용자가 `/compact`에 전달한 내용이 담기며, 아무것도 전달하지 않으면 `null`입니다. `auto`의 경우 `custom_instructions`는 `null`입니다.3362[공통 입력 필드](#common-input-fields)에 더해 PreCompact 훅은 `trigger`와 `custom_instructions`를 받습니다. `manual`의 경우 `custom_instructions`에는 사용자가 `/compact`에 전달한 내용이 포함되며, 아무것도 전달하지 않으면 `null`입니다. `auto`의 경우 `custom_instructions`는 `null`입니다.

3361 3363 

3362```json theme={null}3364```json theme={null}

3363{3365{


3374 PostCompact3376 PostCompact

3375</h3>3377</h3>

3376 3378 

3377Claude Code가 압축 작업을 완료한 후 실행됩니다. 새로 압축된 상태에 대응할 때 이 이벤트를 사용하십시오. 예를 들어 생성된 요약을 로그에 기록하거나 외부 상태를 업데이트할 수 있습니다. Claude Code는 PostCompact 훅의 `systemMessage` 및 `continue` 필드를 폐기합니다.3379Claude Code가 압축 작업을 완료한 후 실행됩니다. 이 이벤트를 사용하면 새로 압축된 상태에 대응할 수 있습니다. 예를 들어 생성된 요약을 로그에 기록하거나 외부 상태를 업데이트할 수 있습니다. Claude Code는 PostCompact 훅의 `systemMessage` 및 `continue` 필드를 버립니다.

3378 3380 

3379`PreCompact`와 동일한 matcher 값이 적용됩니다.3381`PreCompact`와 동일한 matcher 값이 적용됩니다.

3380 3382 


3384| `auto` | 대화가 [자동 압축 윈도우](/docs/ko/model-config#set-the-auto-compact-window)에 도달하여 자동 압축된 이후 |3386| `auto` | 대화가 [자동 압축 윈도우](/docs/ko/model-config#set-the-auto-compact-window)에 도달하여 자동 압축된 이후 |

3385 3387 

3386<h4 id="postcompact-input">3388<h4 id="postcompact-input">

3387 PostCompact 입력3389 PostCompact input

3388</h4>3390</h4>

3389 3391 

3390[공통 입력 필드](#common-input-fields)에 더해 PostCompact 훅은 `trigger`와 `compact_summary`를 받습니다. `compact_summary` 필드에는 압축 작업으로 생성된 대화 요약이 담깁니다.3392[공통 입력 필드](#common-input-fields)에 더해 PostCompact 훅은 `trigger`와 `compact_summary`를 받습니다. `compact_summary` 필드에는 압축 작업으로 생성된 대화 요약이 포함됩니다.

3391 3393 

3392```json theme={null}3394```json theme={null}

3393{3395{


3406 PreModelSwitch3408 PreModelSwitch

3407</h3>3409</h3>

3408 3410 

3409사용자나 클라이언트가 요청한 모델 전환을 Claude Code가 적용하기 전에 실행됩니다. 전환을 차단하거나, 확인을 요구하거나, 전환이 일어나기 전에 전환 비용을 표시하는 데 사용하십시오.3411사용자나 클라이언트가 요청한 모델 전환을 Claude Code가 적용하기 전에 실행됩니다. 전환을 차단하거나, 확인을 요구하거나, 전환이 일어나기 전에 전환 비용을 보여 주는 데 사용할 수 있습니다.

3410 3412 

3411PreModelSwitch를 사용하려면 Claude Code v2.1.251 이상이 필요합니다. Claude Code는 다음 요청에 대해 이 훅을 실행합니다.3413PreModelSwitch를 사용하려면 Claude Code v2.1.251 이상이 필요합니다. Claude Code는 다음 요청에 대해 이 훅을 실행합니다.

3412 3414 

3413* `/model <name>` 및 `/model` 선택기3415* `/model <name>` 및 `/model` 선택기

3414* `Option+P` 또는 `Alt+P` 모델 선택기3416* `Option+P` 또는 `Alt+P` 모델 선택기

3415* `/config`의 Model 설정3417* `/config`의 Model 설정

3416* [빠른 모드](/docs/ko/fast-mode)를 켜서 세션의 모델이 변경되는 경우3418* 세션의 모델을 변경하는 경우의 [빠른 모드](/docs/ko/fast-mode) 켜기

3417* [Agent SDK](/docs/ko/agent-sdk/typescript#query-object) 호스트 또는 [Remote Control](/docs/ko/remote-control)에서 보낸 `set_model` 요청이나 `apply_flag_settings` 요청 내의 모델 변경3419* [Agent SDK](/docs/ko/agent-sdk/typescript#query-object) 호스트 또는 [Remote Control](/docs/ko/remote-control)에서 보낸 `set_model` 요청 또는 `apply_flag_settings` 요청의 모델 변경

3418 3420 

3419[자동 모델 폴백](/docs/ko/model-config#automatic-model-fallback)이나 세션을 재개할 때의 모델 복원처럼 Claude Code가 자체적으로 수행하는 전환에 대해서는 PreModelSwitch 훅을 실행하지 않습니다. 이러한 변경은 [PostModelSwitch](#postmodelswitch)에만 전달됩니다.3421Claude Code는 [자동 모델 폴백](/docs/ko/model-config#automatic-model-fallback)이나 세션 재개 시 모델 복원처럼 자체적으로 수행하는 전환에 대해서는 PreModelSwitch 훅을 실행하지 않습니다. 이러한 변경은 [PostModelSwitch](#postmodelswitch)에만 전달됩니다.

3420 3422 

3421Claude Code는 `[1m]` 접미사를 무시하고 세션이 전환하려는 모델의 정식 이름과 matcher를 비교합니다. `opus` 같은 별칭, 날짜가 포함된 모델 ID, Amazon Bedrock 모델 ID 같은 공급자별 ID는 모두 해석되는 하나의 정식 이름과 일치하므로, `claude-opus-5`는 Opus 5의 모든 표기를 포괄합니다.3423Claude Code는 `[1m]` 접미사를 무시하고, 세션이 전환하려는 모델의 정식 이름과 matcher를 비교합니다. `opus`와 같은 별칭, 날짜가 포함된 모델 ID, Amazon Bedrock 모델 ID와 같은 공급자별 ID는 모두 해석되는 하나의 정식 이름과 일치하므로 `claude-opus-5`는 Opus 5의 모든 표기를 포괄합니다.

3422 3424 

3423대상의 정식 이름을 확인할 수 없는 경우(예: [LLM 게이트웨이](/docs/ko/llm-gateway)만 알고 있는 사용자 지정 모델 ID) Claude Code는 matcher와 관계없이 모든 PreModelSwitch 훅을 실행합니다. 따라서 차단하는 훅은 matcher에만 의존하지 말고 입력의 `to_model`을 확인해야 합니다.3425예를 들어 사용자의 [LLM 게이트웨이](/docs/ko/llm-gateway)만 알고 있는 사용자 지정 모델 ID처럼 Claude Code가 대상의 정식 이름을 확인할 수 없는 경우, matcher와 관계없이 모든 PreModelSwitch 훅을 실행합니다. 따라서 차단하는 훅은 matcher에만 의존하지 말고 입력의 `to_model`을 확인해야 합니다.

3424 3426 

3425matcher는 정확한 이름, `claude-opus-4-6|claude-opus-5`처럼 `|`로 구분된 목록, 또는 `.*opus.*` 같은 정규식으로 작성합니다. 다음 예시는 정확한 이름 matcher를 사용하면서 훅 입력의 `to_model`도 확인하여, Opus 4.6으로의 전환은 코드 2로 종료하여 거부하고 다른 대상은 허용합니다.3427matcher는 정확한 이름, `claude-opus-4-6|claude-opus-5`와 같이 `|`로 구분된 목록, 또는 `.*opus.*`와 같은 정규 표현식으로 작성합니다. 다음 예시는 정확한 이름 matcher를 사용하는 동시에 훅 입력의 `to_model`도 확인하므로, 코드 2로 종료하여 Opus 4.6으로의 전환을 거부하고 다른 대상은 허용합니다.

3426 3428 

3427<Tabs>3429<Tabs>

3428 <Tab title="macOS/Linux">3430 <Tab title="macOS/Linux">

3429 명령은 `jq`로 `to_model`을 확인합니다.3431 이 명령은 `jq`로 `to_model`을 확인합니다.

3430 3432 

3431 ```json theme={null}3433 ```json theme={null}

3432 {3434 {


3475 }3477 }

3476 ```3478 ```

3477 3479 

3478 다음 스크립트를 프로젝트의 `.claude/hooks/block-opus-46.ps1`에 저장합니다.3480 이 스크립트를 프로젝트의 `.claude/hooks/block-opus-46.ps1`에 저장합니다.

3479 3481 

3480 ```powershell theme={null}3482 ```powershell theme={null}

3481 $hookInput = [Console]::In.ReadToEnd() | ConvertFrom-Json3483 $hookInput = [Console]::In.ReadToEnd() | ConvertFrom-Json


3488 </Tab>3490 </Tab>

3489</Tabs>3491</Tabs>

3490 3492 

3491훅이 작동하는지 확인하려면 다른 모델을 실행 중인 세션에서 `/model claude-opus-4-6`을 실행하십시오. Claude Code는 현재 모델을 유지하고, PreModelSwitch 훅이 전환을 차단했다고 사용자의 메시지를 사유로 함께 보고합니다.3493훅이 작동하는지 확인하려면 다른 모델을 실행 중인 세션에서 `/model claude-opus-4-6`을 실행하십시오. Claude Code는 현재 모델을 유지하고, PreModelSwitch 훅이 전환을 차단했다는 사실을 사용자의 메시지를 사유로 하여 보고합니다.

3492 3494 

3493<h4 id="premodelswitch-input">3495<h4 id="premodelswitch-input">

3494 PreModelSwitch 입력3496 PreModelSwitch input

3495</h4>3497</h4>

3496 3498 

3497[공통 입력 필드](#common-input-fields)에 더해 PreModelSwitch 훅은 다음 표의 필드를 받습니다. 마지막 다섯 개 필드는 대화를 새 모델로 다시 전송하는 비용을 나타내므로, 훅은 전환이 일어나기 전에 해당 수치를 표시할 수 있습니다.3499[공통 입력 필드](#common-input-fields)에 더해 PreModelSwitch 훅은 이 표의 필드를 받습니다. 마지막 다섯 개 필드는 대화를 새 모델로 다시 보내는 비용을 설명하므로 훅이 전환 전에 해당 수치를 보여 줄 수 있습니다.

3498 3500 

3499| 필드 | 타입 | 설명 |3501| 필드 | 유형 | 설명 |

3500| :- | :- | :- |3502| :- | :- | :- |

3501| `from_model` | string | 전환 전 모델 ID |3503| `from_model` | string | 전환 이전의 모델 ID |

3502| `to_model` | string | 전환 후 모델 ID. matcher는 이 모델의 정식 이름과 비교됩니다 |3504| `to_model` | string | 전환 대상 모델 ID. matcher는 이 모델의 정식 이름과 비교됩니다 |

3503| `requested_model` | string 또는 `null` | 요청에서 지정한 모델: `opus` 같은 별칭, 전체 모델 ID, 또는 기본 모델을 요청한 경우 `null` |3505| `requested_model` | string 또는 `null` | 요청에서 지정한 모델: `opus`와 같은 별칭, 전체 모델 ID, 또는 기본 모델을 요청한 경우 `null` |

3504| `source` | string | 요청의 출처: `/model <name>`, `/config`의 Model 설정, 빠른 모드 켜기의 경우 `"command"`, 모델 선택기의 경우 `"picker"`, Agent SDK 호스트 또는 Remote Control에서 보낸 `set_model` 요청이나 `apply_flag_settings` 요청 내 모델 변경의 경우 `"sdk"` |3506| `source` | string | 요청 출처: `/model <name>`, `/config`의 Model 설정, 빠른 모드 켜기는 `"command"`, 모델 선택기는 `"picker"`, Agent SDK 호스트 또는 Remote Control에서 보낸 `set_model` 요청이나 `apply_flag_settings` 요청의 모델 변경은 `"sdk"` |

3505| `context_tokens` | number | 다음 요청이 프롬프트로 다시 전송하는 토큰: 메인 대화의 마지막 응답에 대한 입력, 캐시 읽기, 캐시 생성, 출력 토큰의 합계. 첫 번째 응답 전에는 `0` |3507| `context_tokens` | number | 다음 요청이 프롬프트로 다시 보내는 토큰 수: 메인 대화의 마지막 응답의 입력, 캐시 읽기, 캐시 생성, 출력 토큰을 합한 값. 첫 응답 이전에는 `0` |

3506| `prompt_cache_warm` | boolean | 현재 모델의 프롬프트 캐시가 아직 활성 상태일 가능성이 높은지 여부. 즉 전환 시 해당 캐시를 잃게 됨을 의미합니다 |3508| `prompt_cache_warm` | boolean | 현재 모델의 프롬프트 캐시가 아직 유효할 가능성이 높은지 여부. 즉, 전환 시 이를 잃게 됨을 의미합니다 |

3507| `cache_ttl` | string | Claude Code가 이 세션에 요청하는 [프롬프트 캐시 수명](/docs/ko/prompt-caching#cache-lifetime): `"5m"` 또는 `"1h"` |3509| `cache_ttl` | string | Claude Code가 이 세션에 요청하는 [프롬프트 캐시 수명](/docs/ko/prompt-caching#cache-lifetime): `"5m"` 또는 `"1h"` |

3508| `estimated_cache_write_usd` | number | `to_model`에서 `cache_ttl` 요율로 `context_tokens`를 프롬프트 캐시에 쓰는 예상 비용(미국 달러)이며, 다음 응답은 제외됩니다. 서버가 전체 컨텍스트를 다시 캐시할 필요가 없을 수 있으므로 추정치로 취급하십시오 |3510| `estimated_cache_write_usd` | number | `cache_ttl` 요율로 `to_model`의 프롬프트 캐시에 `context_tokens`를 쓰는 추정 비용(미국 달러), 다음 응답은 제외. 서버가 전체 컨텍스트를 다시 캐시할 필요가 없을 수도 있으므로 추정치로 취급하십시오 |

3509| `pricing` | string | Claude Code가 `estimated_cache_write_usd`를 산정한 방식: 조직이 자체 요율을 구성한 경우 해당 요율로 산정한 `"configured"`, 정가로 산정한 `"catalog"`, 또는 `to_model`의 가격을 알 수 없어 Claude Code가 기본 요율을 가정한 경우 `"default"` |3511| `pricing` | string | Claude Code가 `estimated_cache_write_usd`를 산정한 방식: 조직이 자체 요율을 구성한 경우 해당 요율로 산정한 `"configured"`, 정가로 산정한 `"catalog"`, 또는 `to_model`의 가격을 알 수 없어 Claude Code가 기본 요율을 가정한 `"default"` |

3510 3512 

3511다음 예시는 Sonnet 5를 실행 중인 세션에서 `/model opus`를 실행했을 때의 입력을 보여 줍니다.3513다음 예시는 Sonnet 5를 실행 중인 세션에서 `/model opus`를 실행했을 때의 입력을 보여 줍니다.

3512 3514 


3529```3531```

3530 3532 

3531<h4 id="premodelswitch-decision-control">3533<h4 id="premodelswitch-decision-control">

3532 PreModelSwitch 결정 제어3534 PreModelSwitch decision control

3533</h4>3535</h4>

3534 3536 

3535`PreModelSwitch` 훅은 전환을 취소하거나, 사용자에게 확인을 요청하거나, 전환을 진행하도록 할 수 있습니다. 종료 코드 2 또는 최상위 `decision: "block"`은 전환을 취소합니다.3537`PreModelSwitch` 훅은 전환을 취소하거나, 사용자에게 확인을 요청하거나, 진행하도록 허용할 수 있습니다. 종료 코드 2 또는 최상위 `decision: "block"`은 전환을 취소합니다.

3536 3538 

3537더 세밀하게 제어하려면 [PreToolUse](#pretooluse-decision-control)와 마찬가지로 `hookSpecificOutput` 객체에 `permissionDecision`과 `permissionDecisionReason`을 반환하십시오. `PreModelSwitch`는 `"allow"`, `"deny"`, `"ask"`를 허용합니다. `"defer"`, `updatedInput`, `additionalContext`는 허용하지 않습니다. 아래 표는 두 필드를 설명합니다.3539더 세밀하게 제어하려면 [PreToolUse](#pretooluse-decision-control)에서와 같이 `hookSpecificOutput` 객체에 `permissionDecision`과 `permissionDecisionReason`을 반환하십시오. `PreModelSwitch`는 `"allow"`, `"deny"`, `"ask"`를 허용합니다. `"defer"`, `updatedInput`, `additionalContext`는 허용하지 않습니다. 아래 표는 두 필드를 설명합니다.

3538 3540 

3539| 필드 | 설명 |3541| 필드 | 설명 |

3540| :- | :- |3542| :- | :- |

3541| `permissionDecision` | `"allow"`는 전환을 진행하며 [프롬프트 캐시가 활성 상태일 때 Claude Code가 표시하는 확인](/docs/ko/prompt-caching#switching-models)을 건너뜁니다. `"deny"`는 전환을 취소합니다. `"ask"`는 사용자에게 확인을 요청합니다 |3543| `permissionDecision` | `"allow"`는 전환을 진행하며 [프롬프트 캐시가 유효한 동안 Claude Code가 표시하는 확인](/docs/ko/prompt-caching#switching-models)을 건너뜁니다. `"deny"`는 전환을 취소합니다. `"ask"`는 사용자에게 확인을 요청합니다 |

3542| `permissionDecisionReason` | `"deny"`의 경우 전환이 차단된 사유로 사용자에게 표시되거나, `set_model` 요청에 대한 오류로 반환됩니다. `"ask"`의 경우 확인 프롬프트에 표시됩니다. `"allow"`의 경우 무시됩니다 |3544| `permissionDecisionReason` | `"deny"`의 경우 전환이 차단된 사유로 사용자에게 표시되거나 `set_model` 요청에 대한 오류로 반환됩니다. `"ask"`의 경우 확인 프롬프트에 표시됩니다. `"allow"`의 경우 무시됩니다 |

3543 3545 

3544`"ask"` 프롬프트는 대화형 세션의 `/model`에서만 표시될 수 있습니다. `-p` 플래그를 사용한 비대화형 모드, `/config`, `set_model` 요청을 포함한 다른 모든 사용 환경에서 Claude Code는 `"ask"`를 거부로 취급합니다.3546대화형 세션의 `/model`만 `"ask"` 프롬프트를 표시할 수 있습니다. `-p` 플래그를 사용하는 비대화형 모드, `/config`, `set_model` 요청을 포함한 다른 모든 사용 환경에서 Claude Code는 `"ask"`를 거부로 처리합니다.

3545 3547 

3546다음 예시는 사용자에게 확인을 요청하며 `context_tokens`의 토큰 수를 인용합니다.3548다음 예시는 사용자에게 확인을 요청하며 `context_tokens`의 토큰 수를 인용합니다.

3547 3549 


3559 3561 

3560Claude Code는 결정과 관계없이 훅이 반환한 `systemMessage`를 사용자에게 표시하므로, 비용 보고 훅은 `{"systemMessage": "..."}`를 반환하고 0으로 종료할 수 있습니다.3562Claude Code는 결정과 관계없이 훅이 반환한 `systemMessage`를 사용자에게 표시하므로, 비용 보고 훅은 `{"systemMessage": "..."}`를 반환하고 0으로 종료할 수 있습니다.

3561 3563 

3562타임아웃 전에 응답하지 않는 PreModelSwitch 훅은 전환을 차단합니다. 반면 [PreToolUse](#timeouts)에서는 시간 초과된 명령 훅이 도구 호출을 계속 진행시킵니다. 이 이벤트의 기본 타임아웃은 30초입니다. `PreModelSwitch`는 `command`, `http`, `mcp_tool` 훅만 실행하므로 `prompt` 및 `agent` 기본값은 적용되지 않습니다.3564타임아웃 전에 응답하지 않는 PreModelSwitch 훅은 전환을 차단합니다. 반면 [PreToolUse](#timeouts)에서는 시간 초과된 명령 훅이 도구 호출을 계속 진행하도록 허용합니다. 이 이벤트의 기본 타임아웃은 30초입니다. `PreModelSwitch`는 `command`, `http`, `mcp_tool` 훅만 실행하므로 `prompt` 및 `agent`의 기본값은 적용되지 않습니다.

3563 3565 

35640 또는 2가 아닌 코드로 종료하고 JSON 결정을 출력하지 않는 훅은 차단하지 않습니다. [기타 종료 코드](#other-exit-codes)에 설명된 대로 Claude Code는 해당 훅의 stderr를 표시하고 전환을 적용합니다.35660이나 2가 아닌 코드로 종료하고 JSON 결정을 출력하지 않는 훅은 차단하지 않습니다. [기타 종료 코드](#other-exit-codes)에서 설명한 대로 Claude Code는 stderr를 표시하고 전환을 적용합니다.

3565 3567 

3566<h3 id="postmodelswitch">3568<h3 id="postmodelswitch">

3567 PostModelSwitch3569 PostModelSwitch

3568</h3>3570</h3>

3569 3571 

3570세션의 모델이 변경된 후 실행됩니다. 모든 CLAUDE.md를 편집하지 않고도 Claude에게 모델별 지침을 제공하는 데 사용하십시오. 예를 들어 특정 모델에 적용되는 조직 전체 지침을 제공할 수 있습니다.3572세션의 모델이 변경된 후 실행됩니다. 모든 CLAUDE.md를 편집하지 않고도 Claude에게 모델별 지침을 제공하는 데 사용할 수 있습니다. 예를 들어 특정 모델에 적용되는 조직 전체 지침을 제공할 수 있습니다.

3571 3573 

3572PostModelSwitch를 사용하려면 Claude Code v2.1.251 이상이 필요합니다. 모델이 이미 변경된 상태이므로 차단할 수 없습니다. Claude Code는 다음 변경 이후 PostModelSwitch 훅을 실행합니다.3574PostModelSwitch를 사용하려면 Claude Code v2.1.251 이상이 필요합니다. 모델이 이미 변경되었으므로 차단할 수 없습니다. Claude Code는 다음 변경 후에 PostModelSwitch 훅을 실행합니다.

3573 3575 

3574* 사용자나 클라이언트가 요청한 전환3576* 사용자나 클라이언트가 요청한 전환

3575* 세션의 모델을 변경하는 [자동 모델 폴백](/docs/ko/model-config#automatic-model-fallback)3577* 세션의 모델을 변경하는 [자동 모델 폴백](/docs/ko/model-config#automatic-model-fallback)

3576* [`opusplan`](/docs/ko/model-config#opusplan-model-setting) 같은 설정이 플랜 모드에 진입하거나 플랜 모드를 벗어나는 경우3578* [`opusplan`](/docs/ko/model-config#opusplan-model-setting)과 같은 설정이 플랜 모드에 들어가거나 나가는 경우

3577* 세션을 재개할 때 Claude Code가 모델을 복원하는 경우3579* 세션을 재개할 때 Claude Code가 모델을 복원하는 경우

3578 3580 

3579[대체 모델 체인](/docs/ko/model-config#fallback-model-chains)의 모델이 턴을 처리하는 경우에는 PostModelSwitch 훅을 실행하지 않습니다. 이러한 대체는 한 턴 동안만 유지되며 세션의 모델은 변경되지 않기 때문입니다.3581[폴백 모델 체인](/docs/ko/model-config#fallback-model-chains)의 모델이 턴을 처리하는 경우에는 Claude Code가 PostModelSwitch 훅을 실행하지 않습니다. 이 대체는 한 턴 동안만 지속되며 세션의 모델을 변경하지 않기 때문입니다.

3580 3582 

3581matcher는 [PreModelSwitch](#premodelswitch)와 동일한 규칙을 따릅니다. Claude Code는 세션이 전환된 모델의 정식 이름과 matcher를 비교합니다.3583matcher는 [PreModelSwitch](#premodelswitch)와 동일한 규칙을 따릅니다. Claude Code는 세션이 전환한 모델의 정식 이름과 matcher를 비교합니다.

3582 3584 

3583다음 예시는 세션의 모델이 Opus 모델로 변경될 때마다 지침을 추가합니다.3585다음 예시는 세션의 모델이 Opus 모델로 변경될 때마다 지침을 추가합니다.

3584 3586 


3600}3602}

3601```3603```

3602 3604 

3603훅이 작동하는지 확인하려면 다른 모델을 실행 중인 세션에서 Opus 모델로 전환한 다음(예: Sonnet 세션에서 `/model opus` 실행), Claude에게 현재 모델에 대해 어떤 지침을 받았는지 물어보십시오.3605훅이 작동하는지 확인하려면 다른 모델을 실행 중인 세션에서 Opus 모델로 전환한 다음(예: Sonnet 세션에서 `/model opus` 실행), Claude에게 현재 모델에 관해 어떤 지침을 갖고 있는지 물어보십시오.

3604 3606 

3605<h4 id="postmodelswitch-input">3607<h4 id="postmodelswitch-input">

3606 PostModelSwitch 입력3608 PostModelSwitch input

3607</h4>3609</h4>

3608 3610 

3609PostModelSwitch 훅은 [PreModelSwitch](#premodelswitch-input)와 동일한 필드를 받으며, `hook_event_name`은 `"PostModelSwitch"`로 설정되고 `source` 값이 두 가지 추가됩니다. 자동 폴백 또는 Claude Code가 자체적으로 수행한 기타 변경의 경우 `"auto"`, 세션을 재개할 때 복원된 모델의 경우 `"resume"`입니다.3611PostModelSwitch 훅은 [PreModelSwitch](#premodelswitch-input)와 동일한 필드를 받으며, `hook_event_name`은 `"PostModelSwitch"`로 설정되고 `source` 값이 두 가지 더 있습니다. 자동 폴백이나 Claude Code가 자체적으로 수행한 기타 변경의 경우 `"auto"`, 세션을 재개할 때 복원된 모델의 경우 `"resume"`입니다.

3610 3612 

3611`source`가 `"auto"`이면 `requested_model`은 `null`입니다. `source`가 `"resume"`이면 Claude Code가 복원한 저장된 모델 설정입니다.3613`source`가 `"auto"`이면 `requested_model`은 `null`입니다. `source`가 `"resume"`이면 Claude Code가 복원한 저장된 모델 설정입니다.

3612 3614 

3613<h4 id="postmodelswitch-decision-control">3615<h4 id="postmodelswitch-decision-control">

3614 PostModelSwitch 결정 제어3616 PostModelSwitch decision control

3615</h4>3617</h4>

3616 3618 

3617Claude Code는 종료 코드 0일 때 훅의 [일반 텍스트 stdout](#exit-code-0) 또는 JSON 출력의 `additionalContext`를 가져와 전환 이후의 다음 요청과 함께 Claude에게 전달합니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output)에 더해 다음을 반환할 수 있습니다.3619Claude Code는 종료 코드 0일 때 훅의 [일반 텍스트 stdout](#exit-code-0) 또는 JSON 출력의 `additionalContext`를 가져와 전환 후 다음 요청과 함께 Claude에게 전달합니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output)에 더해 다음을 반환할 수 있습니다.

3618 3620 

3619| 필드 | 설명 |3621| 필드 | 설명 |

3620| :- | :- |3622| :- | :- |

3621| `additionalContext` | 다음 요청과 함께 Claude의 컨텍스트에 추가되는 문자열. [Claude에 컨텍스트 추가](#add-context-for-claude)를 참조하십시오 |3623| `additionalContext` | 다음 요청과 함께 Claude의 컨텍스트에 추가되는 문자열. [Claude에 컨텍스트 추가](#add-context-for-claude)를 참조하십시오 |

3622 3624 

3623다음 프롬프트를 보낸 후 5초 이내에 훅이 완료되지 않으면 Claude Code는 출력 없이 해당 요청을 보내고, 대신 그다음 요청에 출력을 첨부합니다. 다음 요청 전에 모델이 여러 번 변경되면 Claude Code는 마지막 전환의 대상 모델에 대한 출력만 전달합니다.3625다음 프롬프트를 보낸 후 5초 이내에 훅이 완료되지 않으면 Claude Code는 출력 없이 해당 요청을 보내고 대신 그다음 요청에 출력을 첨부합니다. 다음 요청 전에 모델이 여러 번 변경되면 Claude Code는 마지막 전환의 대상 모델에 대한 출력만 전달합니다.

3624 3626 

3625<h3 id="sessionend">3627<h3 id="sessionend">

3626 SessionEnd3628 SessionEnd

3627</h3>3629</h3>

3628 3630 

3629Claude Code 세션이 종료될 때 실행됩니다. 정리 작업, 세션 통계 로깅,3631Claude Code 세션이 종료될 때 실행됩니다. 정리 작업, 세션

3630세션 상태 저장에 유용합니다. 종료 사유로 필터링하는 matcher를 지원합니다.3632통계 로깅, 세션 상태 저장에 유용합니다. 종료 사유로 필터링하는 matcher를 지원합니다.

3631 3633 

3632훅 입력의 `reason` 필드는 세션이 종료된 이유를 나타냅니다.3634훅 입력의 `reason` 필드는 세션이 종료된 이유를 나타냅니다.

3633 3635 

3634| 사유 | 설명 |3636| 사유 | 설명 |

3635| :- | :- |3637| :- | :- |

3636| `clear` | `/clear` 명령으로 세션이 지워짐 |3638| `clear` | `/clear` 명령으로 세션이 지워짐 |

3637| `resume` | 대화형 `/resume`으로 세션이 전환됨 |3639| `resume` | 대화형 `/resume`을 통해 세션이 전환됨 |

3638| `logout` | 사용자가 로그아웃함 |3640| `logout` | 사용자가 로그아웃함 |

3639| `prompt_input_exit` | 프롬프트 입력이 표시된 상태에서 사용자가 종료함 |3641| `prompt_input_exit` | 프롬프트 입력이 표시된 상태에서 사용자가 종료함 |

3640| `other` | 기타 종료 사유 |3642| `other` | 기타 종료 사유 |

3641| `bypass_permissions_disabled` | v2.1.234에서 제거되었으며 Claude Code는 이 값을 보내지 않습니다. `SessionEnd` matcher에서 제거하십시오 |3643| `bypass_permissions_disabled` | v2.1.234에서 제거되었으며 Claude Code는 이를 보내지 않습니다. `SessionEnd` matcher에서 제거하십시오 |

3642 3644 

3643<h4 id="sessionend-input">3645<h4 id="sessionend-input">

3644 SessionEnd 입력3646 SessionEnd input

3645</h4>3647</h4>

3646 3648 

3647[공통 입력 필드](#common-input-fields)에 더해 SessionEnd 훅은 세션이 종료된 이유를 나타내는 `reason` 필드를 받습니다. 모든 값은 위의 [사유 표](#sessionend)를 참조하십시오.3649[공통 입력 필드](#common-input-fields)에 더해 SessionEnd 훅은 세션이 종료된 이유를 나타내는 `reason` 필드를 받습니다. 모든 값은 위의 [사유 표](#sessionend)를 참조하십시오.


3656}3658}

3657```3659```

3658 3660 

3659SessionEnd 훅에는 결정 제어 기능이 없습니다. 세션 종료를 차단할 수는 없지만 정리 작업을 수행할 수 있습니다. Claude Code는 `systemMessage` 등 이 훅의 [JSON 출력 필드](#json-output)를 폐기합니다.3661SessionEnd 훅에는 결정 제어 기능이 없습니다. 세션 종료를 차단할 수는 없지만 정리 작업을 수행할 수 있습니다. Claude Code는 `systemMessage` 등 해당 훅의 [JSON 출력 필드](#json-output)를 버립니다.

3660 3662 

3661SessionEnd 훅의 기본 타임아웃은 1.5초입니다. 이는 종료할 때, `/clear`를 실행할 때, 대화형 `/resume`으로 세션을 전환할 때 적용됩니다. 훅에 더 많은 시간을 주는 방법은 두 가지입니다.3663SessionEnd 훅의 기본 타임아웃은 1.5초입니다. 이는 종료하거나, `/clear`를 실행하거나, 대화형 `/resume`으로 세션을 전환할 때 적용됩니다. 훅에 더 많은 시간을 주는 방법은 두 가지입니다.

3662 3664 

3663* **훅별 `timeout`**: 해당 훅의 구성에 `timeout`을 설정합니다. 전체 예산은 설정 파일에 있는 가장 높은 훅별 `timeout`에 맞춰 최대 60초까지 자동으로 늘어납니다. 이 방식으로 예산을 늘려도 자체 `timeout`이 없는 훅은 여전히 기본값을 유지합니다. 플러그인이 제공하는 훅에 설정된 타임아웃은 예산을 늘리지 않습니다.3665* **훅별 `timeout`**: 해당 훅의 구성에서 `timeout`을 설정합니다. 전체 예산은 설정 파일에 있는 가장 높은 훅별 `timeout`에 맞춰 최대 60초까지 자동으로 늘어납니다. 이 방법으로 예산을 늘리더라도 자체 `timeout`이 없는 훅은 여전히 기본값을 유지합니다. 플러그인이 제공하는 훅에 설정된 타임아웃은 예산을 늘리지 않습니다.

3664* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: 이 환경 변수를 밀리초 단위로 설정하여 예산을 명시적으로 재정의합니다. 설정한 값은 자체 `timeout`이 없는 각 훅의 타임아웃으로도 사용됩니다.3666* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: 이 환경 변수를 밀리초 단위로 설정하여 예산을 명시적으로 재정의합니다. 설정한 값은 자체 `timeout`이 없는 각 훅의 타임아웃이 되기도 합니다.

3665 3667 

3666다음 예시는 예산을 5초로 설정합니다.3668다음 예시는 예산을 5초로 설정합니다.

3667 3669 


3677 3679 

3678MCP 서버가 작업 도중 사용자 입력을 요청할 때 실행됩니다. 기본적으로 Claude Code는 사용자가 응답할 수 있는 대화형 대화 상자를 표시합니다. 훅은 이 요청을 가로채 프로그래밍 방식으로 응답하여 대화 상자를 완전히 건너뛸 수 있습니다.3680MCP 서버가 작업 도중 사용자 입력을 요청할 때 실행됩니다. 기본적으로 Claude Code는 사용자가 응답할 수 있는 대화형 대화 상자를 표시합니다. 훅은 이 요청을 가로채 프로그래밍 방식으로 응답하여 대화 상자를 완전히 건너뛸 수 있습니다.

3679 3681 

3682설정 항목과 스크립트를 포함한 완전한 훅은 [스크립트에서 양식 요청에 응답하기](#answer-a-form-request-from-a-script)를 참조하십시오.

3683 

3680matcher 필드는 MCP 서버 이름과 비교됩니다.3684matcher 필드는 MCP 서버 이름과 비교됩니다.

3681 3685 

3682<h4 id="elicitation-input">3686<h4 id="elicitation-input">

3683 Elicitation 입력3687 Elicitation input

3684</h4>3688</h4>

3685 3689 

3686[공통 입력 필드](#common-input-fields)에 더해 Elicitation 훅은 `mcp_server_name`, `message` 필드와 선택적 필드인 `mode`, `url`, `elicitation_id`, `requested_schema`를 받습니다.3690[공통 입력 필드](#common-input-fields)에 더해 Elicitation 훅은 `mcp_server_name`, `message`와 선택적 필드인 `mode`, `url`, `elicitation_id`, `requested_schema`를 받습니다.

3687 3691 

3688가장 일반적인 경우인 폼 모드 elicitation의 예:3692가장 일반적인 경우인 양식 모드 elicitation의 예는 다음과 같습니다.

3689 3693 

3690```json theme={null}3694```json theme={null}

3691{3695{


3705}3709}

3706```3710```

3707 3711 

3708브라우저 기반 인증에 사용되는 URL 모드 elicitation의 예:3712브라우저 기반 인증에 사용되는 URL 모드 elicitation의 예는 다음과 같습니다.

3709 3713 

3710```json theme={null}3714```json theme={null}

3711{3715{


3721```3725```

3722 3726 

3723<h4 id="elicitation-output">3727<h4 id="elicitation-output">

3724 Elicitation 출력3728 Elicitation output

3725</h4>3729</h4>

3726 3730 

3727대화 상자를 표시하지 않고 프로그래밍 방식으로 응답하려면 `hookSpecificOutput`이 포함된 JSON 객체를 반환하십시오.3731Elicitation 훅은 사용자 대신 요청에 응답하거나, 요청을 거절 또는 취소하거나, 대화 상자에 맡길 수 있습니다. 응답, 거절 또는 취소하려면 0으로 종료하고 `action`이 포함된 `hookSpecificOutput` 객체를 출력하십시오. 서버는 응답을 받고 대화 상자는 표시되지 않습니다. 이 표의 각 행은 하나의 결과에 대해 반환할 내용과 MCP 서버가 받는 내용을 보여 줍니다.

3732 

3733| 목적 | 반환 | 서버가 받는 내용 |

3734| :- | :- | :- |

3735| 사용자 대신 응답 | `content`에 양식 필드 값을 포함한 `"action": "accept"` | 사용자의 `content`가 포함된 `accept` |

3736| 요청 거절 | `"action": "decline"` | `decline` |

3737| 요청 취소 | `"action": "cancel"` | `cancel` |

3738| 요청을 사용자에게 맡김 | 출력 없음, 종료 코드 0 | [대화 상자](/docs/ko/mcp#respond-to-mcp-elicitation-requests)에서 받은 사용자의 응답 |

3739 

3740다음 출력은 [Elicitation 입력](#elicitation-input)에 표시된 양식 모드 요청에 응답합니다. `content`의 키는 해당 요청의 `requested_schema`에 있는 속성 이름입니다.

3728 3741 

3729```json theme={null}3742```json theme={null}

3730{3743{


3738}3751}

3739```3752```

3740 3753 

3741| 필드 | 값 | 설명 |3754다음 출력은 요청을 거절합니다.

3742| :- | :- | :- |3755 

3743| `action` | `accept`, `decline`, `cancel` | 요청을 수락, 거절 또는 취소할지 여부 |3756```json theme={null}

3744| `content` | object | 제출할 폼 필드 값. `action`이 `accept`일 때만 사용됩니다 |3757{

3758 "hookSpecificOutput": {

3759 "hookEventName": "Elicitation",

3760 "action": "decline"

3761 }

3762}

3763```

3764 

3765대화 상자에서 **Decline**을 선택하면 `decline`이 전송되고 `Esc`를 누르면 `cancel`이 전송되므로, 서버가 받기를 원하는 값을 반환하십시오.

3766 

3767URL 모드 요청의 경우 `accept`를 반환하는 훅은 대화 상자를 건너뛰므로 URL이 열리지 않습니다.

3768 

3769Claude Code는 반환하는 `action`과 관계없이 Elicitation 훅의 JSON 출력에서 `reason`, `systemMessage`, `continue`를 버립니다.

3745 3770 

3746종료 코드 2는 elicitation을 거부합니다. Claude Code는 stderr 메시지를 어디에도 표시하지 않습니다.3771<h4 id="other-ways-to-decline-an-elicitation">

3772 Other ways to decline an elicitation

3773</h4>

3774 

3775훅은 다음과 같은 방법으로도 거절할 수 있습니다. 서버는 `"action": "decline"`의 경우와 동일한 `decline`을 받습니다.

3776 

3777* **코드 2로 종료**: Claude Code는 같은 훅이 출력한 `hookSpecificOutput`을 무시합니다

3778* **최상위 `"decision": "block"` 출력**: 차단이 같은 출력의 `action`보다 우선합니다

3779 

3780여러 훅이 같은 요청과 일치하는 경우, 그중 하나의 거절이 다른 훅의 `accept` 또는 `cancel`보다 우선합니다.

3781 

3782다음 스크립트는 URL 모드 요청을 거절하고 양식 요청은 대화 상자에 맡깁니다.

3783 

3784```bash theme={null}

3785#!/bin/bash

3786if [ "$(jq -r '.mode')" = "url" ]; then

3787 exit 2

3788fi

3789```

3790 

3791Claude Code는 stderr나 `reason`을 표시하지 않으므로 사용자와 서버 모두 훅이 거절한 이유를 알 수 없습니다.

3792 

3793Claude Code는 v2.1.105부터 v2.1.284에서 수정될 때까지 `Elicitation` 및 `ElicitationResult` 훅의 최상위 `decision`을 무시했습니다.

3794 

3795<h4 id="answer-a-form-request-from-a-script">

3796 Answer a form request from a script

3797</h4>

3747 3798 

3748Claude Code는 Elicitation 훅의 JSON 출력 중 `hookSpecificOutput`에 따라 동작하며 `systemMessage`와 `continue`는 폐기합니다.3799다음 예시는 사용자 대신 반복되는 질문 하나에 응답합니다. `issue-tracker`라는 MCP 서버가 양식에서 프로젝트 키를 요청하면 훅이 `DOCS`를 채워 넣습니다. 스크립트는 `project_key`가 양식의 유일한 필드일 때 수락합니다. 다른 요청에는 아무것도 출력하지 않으므로 대화 상자가 표시됩니다.

3800 

3801<Tabs>

3802 <Tab title="macOS/Linux">

3803 설정 파일에서 서버 이름을 matcher로 하여 이벤트에 대한 명령 훅을 등록합니다.

3804 

3805 ```json theme={null}

3806 {

3807 "hooks": {

3808 "Elicitation": [

3809 {

3810 "matcher": "issue-tracker",

3811 "hooks": [

3812 {

3813 "type": "command",

3814 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/answer-project-key.sh",

3815 "args": []

3816 }

3817 ]

3818 }

3819 ]

3820 }

3821 }

3822 ```

3823 

3824 이 스크립트를 프로젝트의 `.claude/hooks/answer-project-key.sh`에 저장하고 `chmod +x`로 실행 가능하게 만듭니다.

3825 

3826 ```bash theme={null}

3827 #!/bin/bash

3828 input=$(cat)

3829 fields=$(jq -c '.requested_schema.properties // {} | keys' <<<"$input")

3830 

3831 if [ "$fields" = '["project_key"]' ]; then

3832 jq -n '{hookSpecificOutput: {hookEventName: "Elicitation", action: "accept", content: {project_key: "DOCS"}}}'

3833 fi

3834 ```

3835 </Tab>

3836 

3837 <Tab title="Windows (PowerShell)">

3838 서버 이름을 matcher로 하여 PowerShell을 통해 스크립트를 실행하는 명령 훅을 등록합니다.

3839 

3840 ```json theme={null}

3841 {

3842 "hooks": {

3843 "Elicitation": [

3844 {

3845 "matcher": "issue-tracker",

3846 "hooks": [

3847 {

3848 "type": "command",

3849 "command": "powershell.exe",

3850 "args": [

3851 "-NoProfile",

3852 "-ExecutionPolicy",

3853 "Bypass",

3854 "-File",

3855 "${CLAUDE_PROJECT_DIR}/.claude/hooks/answer-project-key.ps1"

3856 ]

3857 }

3858 ]

3859 }

3860 ]

3861 }

3862 }

3863 ```

3864 

3865 이 스크립트를 프로젝트의 `.claude/hooks/answer-project-key.ps1`에 저장합니다.

3866 

3867 ```powershell theme={null}

3868 $request = [Console]::In.ReadToEnd() | ConvertFrom-Json

3869 $fields = @($request.requested_schema.properties.PSObject.Properties.Name)

3870 

3871 if ($fields.Count -eq 1 -and $fields[0] -eq 'project_key') {

3872 @{

3873 hookSpecificOutput = @{

3874 hookEventName = "Elicitation"

3875 action = "accept"

3876 content = @{ project_key = "DOCS" }

3877 }

3878 } | ConvertTo-Json -Depth 3

3879 }

3880 ```

3881 </Tab>

3882</Tabs>

3883 

3884훅이 작동하는지 확인하려면 `claude --debug`로 Claude Code를 시작하고, 서버가 프로젝트 키를 요청하게 만드는 작업을 Claude에게 주십시오. 대화 상자가 표시되지 않으며, [디버그 로그](#debug-hooks)에 `Elicitation resolved by hook: {"action":"accept","content":{"project_key":"DOCS"}}`로 끝나는 줄이 기록됩니다.

3749 3885 

3750<h3 id="elicitationresult">3886<h3 id="elicitationresult">

3751 ElicitationResult3887 ElicitationResult

3752</h3>3888</h3>

3753 3889 

3754사용자가 MCP elicitation에 응답한 후 실행됩니다. 훅은 응답이 MCP 서버로 다시 전송되기 전에 이를 관찰, 수정 또는 차단할 수 있습니다.3890사용자가 MCP elicitation에 응답한 후 실행됩니다. 훅은 응답이 MCP 서버로 다시 전송되기 전에 응답을 관찰, 수정 또는 차단할 수 있습니다.

3891 

3892[Elicitation](#elicitation) 훅이 요청에 응답하면 Claude Code는 ElicitationResult 훅을 실행하지 않고 해당 응답을 서버로 보냅니다.

3755 3893 

3756matcher 필드는 MCP 서버 이름과 비교됩니다.3894matcher 필드는 MCP 서버 이름과 비교됩니다.

3757 3895 

3758<h4 id="elicitationresult-input">3896<h4 id="elicitationresult-input">

3759 ElicitationResult 입력3897 ElicitationResult input

3760</h4>3898</h4>

3761 3899 

3762[공통 입력 필드](#common-input-fields)에 더해 ElicitationResult 훅은 `mcp_server_name`, `action` 필드와 선택적 필드인 `mode`, `elicitation_id`, `content`를 받습니다.3900[공통 입력 필드](#common-input-fields)에 더해 ElicitationResult 훅은 `mcp_server_name`, `action`과 선택적 필드인 `mode`, `elicitation_id`, `content`를 받습니다.

3763 3901 

3764```json theme={null}3902```json theme={null}

3765{3903{


3770 "mcp_server_name": "my-mcp-server",3908 "mcp_server_name": "my-mcp-server",

3771 "action": "accept",3909 "action": "accept",

3772 "content": { "username": "alice" },3910 "content": { "username": "alice" },

3773 "mode": "form",3911 "mode": "form"

3774 "elicitation_id": "elicit-123"

3775}3912}

3776```3913```

3777 3914 

3778<h4 id="elicitationresult-output">3915<h4 id="elicitationresult-output">

3779 ElicitationResult 출력3916 ElicitationResult output

3780</h4>3917</h4>

3781 3918 

3782사용자의 응답을 재정의하려면 `hookSpecificOutput`이 포함된 JSON 객체를 반환하십시오.3919ElicitationResult 훅은 사용자의 응답을 그대로 통과시키거나, 값을 변경하거나, 차단할 수 있습니다. 응답을 변경하거나 차단하려면 0으로 종료하고 `action`이 포함된 `hookSpecificOutput` 객체를 출력하십시오. 이 표의 각 행은 하나의 결과에 대해 반환할 내용과 MCP 서버가 받는 내용을 보여 줍니다.

3920 

3921| 목적 | 반환 | 서버가 받는 내용 |

3922| :- | :- | :- |

3923| 응답 통과 | 출력 없음, 종료 코드 0 | 변경되지 않은 사용자의 응답 |

3924| 제출된 값 변경 | `content`에 새 값을 포함한 `"action": "accept"` | 사용자의 값 대신 훅의 `content`가 포함된 `accept` |

3925| 응답 차단 | `"action": "decline"` | 사용자의 값이 없는 `decline` |

3926| 요청 취소 | `"action": "cancel"` | 사용자가 제출한 값과 함께 `cancel`. 값을 보내지 않으려면 `"decline"`을 반환하십시오 |

3927 

3928다음 출력은 [ElicitationResult 입력](#elicitationresult-input)에 표시된 응답을 변경하므로, 사용자가 `alice`를 제출한 자리에 서버는 `alice@example.com`을 받습니다.

3783 3929 

3784```json theme={null}3930```json theme={null}

3785{3931{

3786 "hookSpecificOutput": {3932 "hookSpecificOutput": {

3787 "hookEventName": "ElicitationResult",3933 "hookEventName": "ElicitationResult",

3788 "action": "decline",3934 "action": "accept",

3789 "content": {}3935 "content": {

3936 "username": "alice@example.com"

3937 }

3790 }3938 }

3791}3939}

3792```3940```

3793 3941 

3794| 필드 | 값 | 설명 |3942훅의 `content`는 사용자의 `content` 객체 전체를 대체하므로 변경하지 않는 필드도 포함하십시오. Claude Code는 `action`이 없는 `hookSpecificOutput`을 무시하므로 `action`도 함께 반환하십시오.

3795| :- | :- | :- |3943 

3796| `action` | `accept`, `decline`, `cancel` | 사용자의 동작을 재정의합니다 |3944ElicitationResult 훅은 사용자가 거절하거나 취소할 때도 실행되며, 훅의 `action`이 사용자의 것을 대체합니다. `accept`를 반환하기 전에 입력의 `action`이 `accept`인지 확인하십시오. 그렇지 않으면 훅이 거절된 요청을 수락된 요청으로 바꾸게 됩니다. 다음 스크립트는 사용자가 수락한 경우 동일한 변경을 수행하고 다른 필드를 유지하며, 그 외의 경우에는 아무것도 출력하지 않습니다.

3797| `content` | object | 폼 필드 값을 재정의합니다. `action`이 `accept`일 때만 의미가 있습니다 |3945 

3946```bash theme={null}

3947#!/bin/bash

3948input=$(cat)

3798 3949 

3799종료 코드 2는 응답을 차단하며, 실제 동작을 `decline`으로 변경합니다. Claude Code는 stderr 메시지를 어디에도 표시하지 않습니다.3950if [ "$(jq -r '.action' <<<"$input")" = "accept" ]; then

3951 jq '{hookSpecificOutput: {hookEventName: "ElicitationResult", action: "accept", content: (.content + {username: (.content.username + "@example.com")})}}' <<<"$input"

3952fi

3953```

3800 3954 

3801Claude Code는 ElicitationResult 훅의 JSON 출력 중 `hookSpecificOutput`에 따라 동작하며 `systemMessage`와 `continue`는 폐기합니다.3955다음 출력은 응답을 차단합니다.

3956 

3957```json theme={null}

3958{

3959 "hookSpecificOutput": {

3960 "hookEventName": "ElicitationResult",

3961 "action": "decline"

3962 }

3963}

3964```

3965 

3966종료 코드 2와 최상위 `"decision": "block"`도 응답을 차단합니다. 훅이 이들을 함께 사용할 때 어느 것이 적용되는지, 사용자에게 무엇이 표시되는지, 어떤 버전이 `decision`을 무시했는지는 [elicitation을 거절하는 다른 방법](#other-ways-to-decline-an-elicitation)에서 다룹니다.

3967 

3968Claude Code는 반환하는 `action`과 관계없이 ElicitationResult 훅의 JSON 출력에서 `reason`, `systemMessage`, `continue`를 버립니다.

3802 3969 

3803<h2 id="prompt-based-hooks">3970<h2 id="prompt-based-hooks">

3804 프롬프트 기반 hook3971 프롬프트 기반 훅

3805</h2>3972</h2>

3806 3973 

3807명령, HTTP 및 MCP tool hook 외에도 Claude Code는 LLM을 사용하여 작업을 허용할지 차단할지 평가하는 프롬프트 기반 hook (`type: "prompt"`)과 도구 액세스가 있는 에이전트 검증자를 생성하는 에이전트 hook (`type: "agent"`)을 지원합니다. 모든 이벤트가 모든 hook 유형을 지원하는 것은 아닙니다.3974명령, HTTP, MCP 도구 훅 외에도 Claude Code는 LLM을 사용해 작업을 허용할지 차단할지 평가하는 프롬프트 기반 훅(`type: "prompt"`)과 도구 접근 권한을 가진 에이전트형 검증자를 생성하는 에이전트 훅(`type: "agent"`)을 지원합니다. 모든 이벤트가 모든 훅 유형을 지원하지는 않습니다.

3808 3975 

3809다섯 가지 hook 유형 모두 (`command`, `http`, `mcp_tool`, `prompt`, `agent`)를 지원하는 이벤트:3976다섯 가지 훅 유형(`command`, `http`, `mcp_tool`, `prompt`, `agent`)을 모두 지원하는 이벤트:

3810 3977 

3811* `PermissionDenied`3978* `PermissionDenied`

3812* `PostToolBatch`3979* `PostToolBatch`


3821* `UserPromptExpansion`3988* `UserPromptExpansion`

3822* `UserPromptSubmit`3989* `UserPromptSubmit`

3823 3990 

3824`PermissionRequest`는 `command`, `http`, `mcp_tool`, `prompt` 훅을 지원하지만 `agent` 훅은 지원하지 않습니다. 이 이벤트에 에이전트 훅을 구성하면 Claude Code는 이를 건너뛰고 권한 흐름은 변경 없이 진행됩니다. 훅에서 허용하거나 거부하려면 명령 또는 HTTP 훅에서 [결정 객체](#permissionrequest-decision-control)를 반환합니다.3991`PermissionRequest`는 `command`, `http`, `mcp_tool`, `prompt` 훅을 지원하지만 `agent` 훅은 지원하지 않습니다. 이 이벤트에 에이전트 훅을 구성하면 Claude Code는 이를 건너뛰고 권한 흐름은 변경 없이 진행됩니다. 훅에서 허용하거나 거부하려면 명령 또는 HTTP 훅에서 [결정 객체](#permissionrequest-decision-control)를 반환하십시오.

3825 3992 

3826`command`, `http` 및 `mcp_tool` hook을 지원하지만 `prompt` 또는 `agent`는 지원하지 않는 이벤트:3993`command`, `http`, `mcp_tool` 훅은 지원하지만 `prompt`나 `agent`는 지원하지 않는 이벤트:

3827 3994 

3828* `ConfigChange`3995* `ConfigChange`

3829* `CwdChanged`3996* `CwdChanged`


3844* `WorktreeCreate`4011* `WorktreeCreate`

3845* `WorktreeRemove`4012* `WorktreeRemove`

3846 4013 

3847`SessionStart` 및 `Setup`은 `command` 및 `mcp_tool` hook을 지원하며, [MCP tool hook 필드](#mcp-tool-hook-fields)는 해당 `mcp_tool` hook이 실행되는 시기를 설명합니다. `http`, `prompt` 또는 `agent` hook은 지원하지 않습니다.4014`SessionStart`와 `Setup`은 `command` 및 `mcp_tool` 훅을 지원하며, 이들의 `mcp_tool` 훅이 언제 실행되는지는 [MCP 도구 훅 필드](#mcp-tool-hook-fields)에서 설명합니다. 이 이벤트들은 `http`, `prompt`, `agent` 훅을 지원하지 않습니다.

3848 4015 

3849<h3 id="how-prompt-based-hooks-work">4016<h3 id="how-prompt-based-hooks-work">

3850 프롬프트 기반 hook이 어떻게 작동하는지4017 프롬프트 기반 훅의 작동 방식

3851</h3>4018</h3>

3852 4019 

3853프롬프트 기반 hook은 Bash 명령을 실행하는 대신:4020프롬프트 기반 훅은 Bash 명령을 실행하는 대신 다음과 같이 작동합니다.

3854 4021 

38551. 훅 입력과 프롬프트를 Claude 모델로 전송합니다. 기본값은 Claude Code가 [백그라운드 기능](/docs/ko/costs#background-token-usage)에 사용하는 모델입니다40221. 훅 입력과 프롬프트를 Claude 모델로 전송합니다. 기본적으로 Claude Code가 [백그라운드 기능](/docs/ko/costs#background-token-usage)에 사용하는 모델이 사용됩니다

38562. LLM은 결정을 포함하는 구조화된 JSON으로 응답합니다40232. LLM이 결정을 담은 구조화된 JSON으로 응답합니다

38573. Claude Code는 결정을 자동으로 처리합니다40243. Claude Code가 결정을 자동으로 처리합니다

3858 4025 

3859<h3 id="prompt-hook-configuration">4026<h3 id="prompt-hook-configuration">

3860 프롬프트 hook 구성4027 프롬프트 훅 구성

3861</h3>4028</h3>

3862 4029 

3863`type`을 `"prompt"`로 설정하고 `command` 대신 `prompt` 문자열을 제공합니다. `$ARGUMENTS` 자리 표시자를 사용하여 hook의 JSON 입력 데이터를 프롬프트 텍스트에 주입합니다.4030`type`을 `"prompt"`로 설정하고 `command` 대신 `prompt` 문자열을 제공합니다. `$ARGUMENTS` 플레이스홀더를 사용하여 훅의 JSON 입력 데이터를 프롬프트 텍스트에 삽입합니다.

4031 

4032프롬프트 훅이나 [에이전트 훅](#agent-based-hooks)에서는 `prompt`를 "`.env` 파일을 읽는 모든 Bash 명령을 차단"처럼 무엇을 차단하거나 허용할지에 대한 규칙으로 작성하거나, "모든 단위 테스트 통과"처럼 충족되어야 하는 조건으로 작성할 수 있습니다.

3864 4033 

3865이 `Stop` hook은 Claude가 완료되기 전에 모든 작업이 완료되었는지 평가하도록 LLM에 요청합니다:4034이 `Stop` 훅은 Claude가 작업을 마치도록 허용하기 전에 모든 작업이 완료되었는지 LLM에 평가를 요청합니다.

3866 4035 

3867```json theme={null}4036```json theme={null}

3868{4037{


3883 4052 

3884| 필드 | 필수 | 설명 |4053| 필드 | 필수 | 설명 |

3885| :- | :- | :- |4054| :- | :- | :- |

3886| `type` | 예 | `"prompt"`여야 합니다 |4055| `type` | 예 | 반드시 `"prompt"`여야 합니다 |

3887| `prompt` | 예 | LLM으로 전송할 프롬프트 텍스트. hook 입력 JSON에 대한 자리 표시자로 `$ARGUMENTS` 사용. `$ARGUMENTS`가 없으면 입력 JSON이 프롬프트에 추가됩니다 |4056| `prompt` | 예 | LLM에 전송할 프롬프트 텍스트입니다. 훅 입력 JSON의 플레이스홀더로 `$ARGUMENTS`를 사용합니다. `$ARGUMENTS`가 없으면 입력 JSON이 프롬프트 끝에 추가됩니다 |

3888| `model` | 아니오 | 평가에 사용할 모델. 기본값은 Claude Code가 [백그라운드 기능](/docs/ko/costs#background-token-usage)에 사용하는 모델입니다 |4057| `model` | 아니요 | 평가에 사용할 모델입니다. 기본값은 Claude Code가 [백그라운드 기능](/docs/ko/costs#background-token-usage)에 사용하는 모델입니다 |

3889| `timeout` | 아니오 | 초 단위 시간 초과. 기본값: 30 |4058| `timeout` | 아니요 | 초 단위 타임아웃입니다. 기본값: 30 |

3890| `continueOnBlock` | 아니오 | 적용되는 이벤트에서 `true`는 `ok: false` 이유를 Claude에 다시 피드백하고 턴을 종료하는 대신 계속합니다. 기본값: `false`. 이벤트별 동작은 [응답 스키마](#response-schema)를 참조하세요 |4059| `continueOnBlock` | 아니요 | 적용되는 이벤트에서 `true`로 설정하면 턴을 종료하는 대신 `ok: false` 사유를 Claude에 다시 전달하고 계속 진행합니다. 기본값: `false`. 이벤트별 동작은 [응답 스키마](#response-schema)를 참조하십시오 |

3891 4060 

3892<h3 id="response-schema">4061<h3 id="response-schema">

3893 응답 스키마4062 응답 스키마

3894</h3>4063</h3>

3895 4064 

3896LLM은 다음을 포함하는 JSON으로 응답해야 합니다:4065LLM은 다음을 포함하는 JSON으로 응답해야 합니다.

3897 4066 

3898```json theme={null}4067```json theme={null}

3899{4068{


3905 4074 

3906| 필드 | 설명 |4075| 필드 | 설명 |

3907| :- | :- |4076| :- | :- |

3908| `ok` | `true`는 허용합니다. `false`의 경우 아래의 이벤트별 동작을 참조하세요 |4077| `ok` | 허용하려면 `true`입니다. `false`인 경우 아래의 이벤트별 동작을 참조하십시오 |

3909| `reason` | `ok`가 `false`일 때 필수입니다 |4078| `reason` | `ok`가 `false`일 때 필수입니다 |

3910| `impossible` | 선택 사항입니다. 모델이 조건을 절대 만족할 수 없다고 판단할 때 `ok: false`와 함께 반환합니다. `Stop` 및 `SubagentStop`에서 Claude Code는 이유를 다시 피드백하는 대신 턴을 종료하도록 허용합니다. 에이전트 hook 및 기타 이벤트는 이를 무시합니다 |4079| `impossible` | 선택 사항입니다. 모델은 조건이 절대 충족될 수 없다고 판단하면 `ok: false`와 함께 이 값을 반환합니다. `Stop` 및 `SubagentStop`에서는 이 경우 Claude Code가 사유를 다시 전달하는 대신 턴이 종료되도록 합니다. 에이전트 훅과 다른 이벤트는 이 값을 무시합니다 |

3911 4080 

3912`ok: false`에서 발생하는 상황은 이벤트에 따라 다릅니다:4081`ok: false`일 때 발생하는 동작은 이벤트에 따라 다릅니다.

3913 4082 

3914* `Stop` 및 `SubagentStop`: 이유는 Claude의 다음 명령으로 피드백되며 턴이 계속됩니다. 응답이 `impossible: true`도 설정하지 않는 한, 이 경우 Claude Code는 중지를 허용하고 턴이 종료됩니다4083* `Stop` 및 `SubagentStop`: 사유가 Claude의 다음 지시로 다시 전달되고 턴이 계속됩니다. 단, 응답에서 `impossible: true`도 함께 설정한 경우에는 Claude Code가 중지를 허용하고 턴이 종료됩니다

3915* `PreToolUse`: tool 호출이 거부됩니다. 기본적으로 턴이 끝나고 거부 이유가 채팅에 경고 줄로 나타납니다. `continueOnBlock: true`를 설정하여 이유를 Claude에 tool 오류로 반환하여 조정하고 계속할 수 있도록 합니다. 이는 명령 hook의 `permissionDecision: "deny"`와 동일합니다. v2.1.210 이전에는 거부 이유가 Claude에 tool 오류로 반환되었고 턴이 계속되었습니다4084* `PreToolUse`: 도구 호출이 거부됩니다. 기본적으로 턴이 종료되고 거부 사유가 채팅에 경고 줄로 표시됩니다. 대신 사유를 도구 오류로 Claude에 반환하여 Claude가 조정하고 계속 진행할 수 있게 하려면 `continueOnBlock: true`를 설정하십시오. 이는 명령 훅의 `permissionDecision: "deny"`와 동일합니다. v2.1.210 이전에는 거부 사유가 도구 오류로 Claude에 반환되고 턴이 계속되었습니다

3916* `PostToolUse`: 기본적으로 턴이 끝나고 이유는 채팅에 경고 줄로 나타납니다. 대신 `continueOnBlock: true`를 설정하여 이유를 Claude에 다시 피드백하고 턴을 계속합니다4085* `PostToolUse`: 기본적으로 턴이 종료되고 사유가 채팅에 경고 줄로 표시됩니다. 대신 사유를 Claude에 다시 전달하고 턴을 계속하려면 `continueOnBlock: true`를 설정하십시오

3917* `PostToolBatch`, `UserPromptSubmit` 및 `UserPromptExpansion`: 턴이 끝나고 이유는 경고 줄로 나타납니다. 이러한 이벤트는 `continue`에 관계없이 `decision: "block"`에서 턴을 종료합니다4086* `PostToolBatch`, `UserPromptSubmit`, `UserPromptExpansion`: 턴이 종료되고 사유가 경고 줄로 표시됩니다. 이 이벤트들은 `continue`와 관계없이 `decision: "block"`에서 턴을 종료합니다

3918* `PostToolUseFailure` 및 `TaskCreated`: 이유는 Claude에 tool 오류로 반환되며 턴이 계속됩니다. `continueOnBlock`에 관계없이4087* `PostToolUseFailure` 및 `TaskCreated`: `continueOnBlock`과 관계없이 사유가 도구 오류로 Claude에 반환되고 턴이 계속됩니다

3919* `TaskCompleted`: 턴 중에 작업이 완료됨으로 표시되어 발생할 때 이유는 Claude에 tool 오류로 반환되며 턴이 계속됩니다. `continueOnBlock`에 관계없이. 팀원이 중지되어 발생할 때 `TeammateIdle`처럼 동작하며 기본적으로 팀원을 중지합니다4088* `TaskCompleted`: 턴 중에 작업이 완료로 표시되어 실행된 경우, `continueOnBlock`과 관계없이 사유가 도구 오류로 Claude에 반환되고 턴이 계속됩니다. 팀원이 중지하여 실행된 경우에는 `TeammateIdle`처럼 동작하며 기본적으로 팀원을 중단시킵니다

3920* `TeammateIdle`: 기본적으로 팀원이 중지되고 이유는 경고 줄로 나타납니다. `continueOnBlock: true`를 설정하여 이유를 팀원에게 다시 피드백하고 계속 작업하도록 유지합니다4089* `TeammateIdle`: 기본적으로 팀원이 중지되고 사유가 경고 줄로 표시됩니다. 대신 사유를 팀원에게 다시 전달하고 계속 작업하게 하려면 `continueOnBlock: true`를 설정하십시오

3921* `PermissionRequest`: `ok: false`는 효과가 없습니다. hook에서 승인을 거부하려면 `hookSpecificOutput.decision.behavior: "deny"`를 반환하는 [명령 hook](#command-hook-fields)을 사용합니다4090* `PermissionRequest`: `ok: false`는 아무런 효과가 없습니다. 훅에서 승인을 거부하려면 `hookSpecificOutput.decision.behavior: "deny"`를 반환하는 [명령 훅](#command-hook-fields)을 사용하십시오

3922* `PermissionDenied`: `ok: false`는 거부가 이미 발생했기 때문에 효과가 없습니다. 이 이벤트가 읽는 유일한 출력은 `hookSpecificOutput.retry`이며, 프롬프트 및 에이전트 hook은 이를 설정할 수 없습니다. 이들은 이 이벤트에서 실행되지만 출력은 버려집니다. `retry`를 반환하려면 [명령 hook](#command-hook-fields)을 사용합니다4091* `PermissionDenied`: 거부가 이미 발생했으므로 `ok: false`는 아무런 효과가 없습니다. 이 이벤트가 읽는 유일한 출력은 `hookSpecificOutput.retry`이며, 프롬프트 훅과 에이전트 훅은 이를 설정할 수 없습니다. 이 훅들은 이 이벤트에서 실행되지만 출력은 폐기됩니다. `retry`를 반환하려면 [명령 훅](#command-hook-fields)을 사용하십시오

3923 4092 

3924이벤트에 대해 더 세밀한 제어가 필요한 경우 [결정 제어](#decision-control)에 설명된 이벤트별 필드가 있는 [명령 hook](#command-hook-fields)을 사용합니다.4093어떤 이벤트에서든 더 세밀한 제어가 필요하다면 [결정 제어](#decision-control)에 설명된 이벤트별 필드와 함께 [명령 훅](#command-hook-fields)을 사용하십시오.

3925 4094 

3926<h3 id="check-multiple-conditions-before-stopping">4095<h3 id="check-multiple-conditions-before-stopping">

3927 중지하기 전에 여러 조건 확인4096 중지 전에 여러 조건 확인하기

3928</h3>4097</h3>

3929 4098 

3930이 `Stop` hook은 Claude가 중지하기 전에 세 가지 조건을 확인하는 자세한 프롬프트를 사용합니다. `SubagentStop` hook은 [subagent](/docs/ko/sub-agents)가 중지해야 하는지 평가하는 동일한 형식을 사용합니다. 모델이 조건이 아직 충족되지 않았기 때문에 `"ok": false`를 반환하면 Claude는 제공된 이유를 다음 명령으로 받으며 계속 작업합니다:4099이 `Stop` 훅은 상세한 프롬프트를 사용하여 Claude의 중지를 허용하기 전에 세 가지 조건을 확인합니다. `SubagentStop` 훅도 같은 형식을 사용하여 [서브에이전트](/docs/ko/sub-agents)가 중지해야 하는지 평가합니다. 조건이 아직 충족되지 않아 모델이 `"ok": false`를 반환하면, Claude는 제공된 사유를 다음 지시로 삼아 작업을 계속합니다.

3931 4100 

3932```json theme={null}4101```json theme={null}

3933{4102{

keybindings.md +49 −0

Details

68| `EffortSlider` | `/effort`로 열린 노력 슬라이더 |68| `EffortSlider` | `/effort`로 열린 노력 슬라이더 |

69| `Select` | 일반 선택/목록 컴포넌트 |69| `Select` | 일반 선택/목록 컴포넌트 |

70| `Plugin` | 플러그인 대화상자 (찾아보기, 발견, 관리) |70| `Plugin` | 플러그인 대화상자 (찾아보기, 발견, 관리) |

71| `AbovePrompt` | [프롬프트 위 영역](#above-prompt-actions) 또는 그 안의 버튼에 키보드 포커스가 있습니다 |

72| `AbovePromptInput` | 프롬프트 위 영역 또는 mod 창의 입력 필드에 키보드 포커스가 있습니다 |

73| `AbovePromptSelect` | 프롬프트 위 영역 또는 mod 창의 선택 항목에 키보드 포커스가 있습니다 |

71| `Pane` | [mod](/docs/ko/plugins/mods/interface#know-which-keys-your-mod-can-receive)가 그린 창에 키보드 포커스가 있습니다 |74| `Pane` | [mod](/docs/ko/plugins/mods/interface#know-which-keys-your-mod-can-receive)가 그린 창에 키보드 포커스가 있습니다 |

72| `PaneField` | mod 창의 입력 필드 또는 선택 항목에 키보드 포커스가 있습니다 |75| `PaneField` | mod 창의 입력 필드 또는 선택 항목에 키보드 포커스가 있습니다 |

73| `Agents` | [에이전트 보기](/docs/ko/agent-view) (`claude agents`) |76| `Agents` | [에이전트 보기](/docs/ko/agent-view) (`claude agents`) |


442| `plugin:install` | I | 선택한 플러그인 설치 |445| `plugin:install` | I | 선택한 플러그인 설치 |

443| `plugin:favorite` | F | 선택한 플러그인을 즐겨찾기에 추가하여 설치된 탭 상단 근처에 정렬되도록 합니다 |446| `plugin:favorite` | F | 선택한 플러그인을 즐겨찾기에 추가하여 설치된 탭 상단 근처에 정렬되도록 합니다 |

444 447 

448<h3 id="above-prompt-actions">

449 프롬프트 위 영역 작업

450</h3>

451 

452프롬프트 위 영역에 대한 작업입니다. 이 영역은 [mod](/docs/ko/plugins/mods/interface#pick-where-to-draw)가 버튼, 입력 필드, 선택 상자를 그리는 공유 스트립입니다. `abovePrompt:toggle` 및 `abovePrompt:focus`는 `Chat` 컨텍스트에서 적용됩니다. 다른 작업은 영역 또는 창에서 키보드 포커스를 가진 요소의 [컨텍스트](#contexts)에서 적용됩니다.

453 

454| 작업 | 기본값 | 설명 |

455| :- | :- | :- |

456| `abovePrompt:toggle` | Ctrl+X Ctrl+A | 영역을 한 줄 힌트로 축소하거나 다시 확장 |

457| `abovePrompt:focus` | Ctrl+X Tab | 키보드 포커스를 영역으로 이동한 다음 열려 있는 각 [창](#pane-actions)으로 이동하고, 마지막 창에서 프롬프트로 돌아옵니다 |

458| `abovePrompt:next` | Tab | 다음 컨트롤에 포커스 |

459| `abovePrompt:previous` | Shift+Tab | 이전 컨트롤에 포커스 |

460| `abovePrompt:press` | Enter | 포커스된 버튼을 누르거나, 포커스된 입력 필드를 제출하거나, 선택 상자에서 강조 표시된 옵션을 선택합니다 |

461| `abovePrompt:leave` | Escape | 키보드 포커스를 프롬프트로 되돌립니다 |

462| `abovePrompt:highlightNext` | Down | 포커스된 선택 상자에서 다음 옵션 강조 표시 |

463| `abovePrompt:highlightPrevious` | Up | 포커스된 선택 상자에서 이전 옵션 강조 표시 |

464 

465두 컨텍스트는 기본적으로 이러한 작업에 추가 키를 바인딩합니다:

466 

467* **`AbovePrompt`**: Right 및 Left도 `abovePrompt:next` 및 `abovePrompt:previous`를 실행하고, Space도 `abovePrompt:press`를 실행합니다

468* **`AbovePromptInput`**: Down 및 Up도 `abovePrompt:next` 및 `abovePrompt:previous`를 실행합니다

469 

470`AbovePrompt` 컨텍스트는 또한 Up, Down, PageUp, PageDown, Home 및 End를 [창 스크롤 작업](#pane-actions)인 `pane:scrollUp`부터 `pane:bottom`까지에 바인딩하므로, 영역에 대해 해당 키 중 하나를 변경하려면 `AbovePrompt` 블록에서 스크롤 작업을 바인딩하세요.

471 

472<h3 id="pane-actions">

473 창 작업

474</h3>

475 

476[mod](/docs/ko/plugins/mods/interface#know-which-keys-your-mod-can-receive)가 그리는 창(pane)에 대한 작업입니다. 스크롤, 크기 조정 및 닫기 작업은 `Pane` [컨텍스트](#contexts)에서 적용됩니다. `pane:close`는 `PaneField` 컨텍스트에서도 적용되므로 창의 필드 중 하나에 포커스가 있을 때도 작동합니다. `pane:next` 및 `pane:previous`는 둘 이상의 창이 열려 있을 때 `Global` 컨텍스트에서 적용됩니다.

477 

478| 작업 | 기본값 | 설명 |

479| :- | :- | :- |

480| `pane:scrollUp` | Up | 창에 표시할 수 있는 것보다 많은 행이 있을 때 창을 위로 스크롤 |

481| `pane:scrollDown` | Down | 창에 표시할 수 있는 것보다 많은 행이 있을 때 창을 아래로 스크롤 |

482| `pane:pageUp` | PageUp | 창을 한 페이지 위로 스크롤 |

483| `pane:pageDown` | PageDown | 창을 한 페이지 아래로 스크롤 |

484| `pane:top` | Home | 창의 맨 위로 이동 |

485| `pane:bottom` | End | 창의 맨 아래로 이동 |

486| `pane:grow` | Ctrl+X Left, Ctrl+X Up | 창에 더 많은 공간을 부여합니다: 트랜스크립트 옆에 있을 때는 너비, 프롬프트 위에 있을 때는 높이 |

487| `pane:shrink` | Ctrl+X Right, Ctrl+X Down | 창에 더 적은 공간을 부여합니다: 트랜스크립트 옆에 있을 때는 너비, 프롬프트 위에 있을 때는 높이 |

488| `pane:close` | Ctrl+X X | 창 닫기 |

489| `pane:next` | (바인딩 안 됨) | 열려 있는 다음 창 표시 |

490| `pane:previous` | (바인딩 안 됨) | 열려 있는 이전 창 표시 |

491 

492`Pane` 컨텍스트는 또한 Tab, Shift+Tab, Enter 및 Escape를 영역과 동일한 [프롬프트 위 영역 작업](#above-prompt-actions)에 바인딩하며, 창의 입력 필드와 선택 상자는 `AbovePromptInput` 및 `AbovePromptSelect` 컨텍스트를 사용합니다. [키보드 포커스 및 단축키](/docs/ko/plugins/mods/interface#know-which-keys-your-mod-can-receive)에서 창에서 각 키가 수행하는 작업을 확인할 수 있습니다.

493 

445<h3 id="settings-actions">494<h3 id="settings-actions">

446 설정 작업495 설정 작업

447</h3>496</h3>

Details

200 200 

201| 헤더 | 반환할 내용 및 이유 |201| 헤더 | 반환할 내용 및 이유 |

202| :- | :- |202| :- | :- |

203| `content-type` | 스트리밍된 Anthropic Messages 형식 응답에서는 `text/event-stream`을 반환하고, Amazon Bedrock 형식 응답에서는 `application/vnd.amazon.eventstream`을 수정하지 않고 반환합니다. 여기서 [다른 유형은 요청을 실패시킵니다](/docs/ko/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). [스트리밍](#streaming)은 이러한 스트림에서 정지 감지를 실행하는 연결을 나열합니다 |203| `content-type` | 스트리밍된 Anthropic Messages 형식 응답에서는 `text/event-stream`을 반환하고, Amazon Bedrock 형식 응답에서는 `application/vnd.amazon.eventstream`을 수정하지 않고 반환합니다. 여기서 [다른 유형은 요청을 실패시킵니다](/docs/ko/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy) |

204| `retry-after` | HTTP 날짜가 아닌 정수 초를 반환합니다. Claude Code는 다음 [자동 재시도](/docs/ko/errors#automatic-retries) 전에 최소한 그 시간만큼 대기하며, [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/ko/env-vars) 세션 외부에서 60 이상의 값은 재시도를 중지하고 오류를 즉시 표시합니다 |204| `retry-after` | HTTP 날짜가 아닌 정수 초를 반환합니다. Claude Code는 다음 [자동 재시도](/docs/ko/errors#automatic-retries) 전에 최소한 그 시간만큼 대기하며, [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/ko/env-vars) 세션 외부에서 60 이상의 값은 재시도를 중지하고 오류를 즉시 표시합니다 |

205| `x-should-retry` | 업스트림의 값을 수정하지 않고 그대로 전달합니다. Claude Code는 실패한 요청을 재시도할지 결정할 때 이 헤더를 하나의 입력으로 읽습니다: `true`는 응답을 재시도 가능으로 표시하고 `false`는 재시도 불가능으로 표시합니다. 재시도 횟수, 백오프 및 Claude Code가 재시도하는 실패에 대해서는 [자동 재시도](/docs/ko/errors#automatic-retries)를 참조하세요 |205| `x-should-retry` | 업스트림의 값을 수정하지 않고 그대로 전달합니다. Claude Code는 실패한 요청을 재시도할지 결정할 때 이 헤더를 하나의 입력으로 읽습니다: `true`는 응답을 재시도 가능으로 표시하고 `false`는 재시도 불가능으로 표시합니다. 재시도 횟수, 백오프 및 Claude Code가 재시도하는 실패에 대해서는 [자동 재시도](/docs/ko/errors#automatic-retries)를 참조하세요 |

206| `anthropic-ratelimit-unified-*` | 모든 응답에서 업스트림의 값을 수정하지 않고 전달합니다. Claude Code는 성공한 응답에서 이를 읽어 claude.ai로 로그인한 개발자에게 계획 제한에 대한 사용량을 표시하고, `429`에서 계획 제한 또는 지출 한도를 임시 제한과 구분합니다. [사용량 제한](/docs/ko/errors#usage-limits)을 참조하세요 |206| `anthropic-ratelimit-unified-*` | 모든 응답에서 업스트림의 값을 수정하지 않고 전달합니다. Claude Code는 성공한 응답에서 이를 읽어 claude.ai로 로그인한 개발자에게 계획 제한에 대한 사용량을 표시하고, `429`에서 계획 제한 또는 지출 한도를 임시 제한과 구분합니다. [사용량 제한](/docs/ko/errors#usage-limits)을 참조하세요 |

Details

154 154 

155Claude Code는 다음 순서대로 소스를 확인합니다(우선순위가 높은 순서대로):155Claude Code는 다음 순서대로 소스를 확인합니다(우선순위가 높은 순서대로):

156 156 

1571. 원격 설정, claude.ai에서 [서버 관리 설정](/docs/ko/server-managed-settings)으로 또는 [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway)로 제공됩니다. Claude Code는 세션이 [적격 로그인 또는 키](/docs/ko/server-managed-settings#platform-availability)로 Anthropic의 API에 직접 인증하거나 `/login`으로 게이트웨이에 로그인할 때만 이 소스를 가져옵니다. 다른 공급자에서 또는 `ANTHROPIC_BASE_URL`이 Anthropic의 API 이외의 다른 곳을 가리킬 때는 다음 소스에서 시작합니다.1571. 원격 설정, claude.ai에서 [서버 관리 설정](/docs/ko/server-managed-settings)으로 또는 [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway)로 제공됩니다. Claude Code는 세션이 [적격 자격 증명](/docs/ko/server-managed-settings#platform-availability)으로 Anthropic의 API에 직접 인증하거나 `/login`으로 게이트웨이에 로그인할 때만 이 소스를 가져옵니다. 다른 공급자에서 또는 `ANTHROPIC_BASE_URL`이 Anthropic의 API 이외의 다른 곳을 가리킬 때는 다음 소스에서 시작합니다.

1582. MDM 또는 OS 수준 정책: macOS plist 또는 HKLM 레지스트리 키1582. MDM 또는 OS 수준 정책: macOS plist 또는 HKLM 레지스트리 키

1593. 관리형 설정 파일, `managed-settings.d/*.json` 및 `managed-settings.json`이 함께 병합됨1593. 관리형 설정 파일, `managed-settings.d/*.json` 및 `managed-settings.json`이 함께 병합됨

1604. Windows의 HKCU 레지스트리, WSL에서는 HKLM 레지스트리 또는 Windows 관리형 설정 파일이 [`wslInheritsWindowsSettings`](/docs/ko/settings-reference#wslinheritswindowssettings)를 켜고 HKCU 값도 이를 설정할 때. Claude Code는 [위에 존재하는 관리 문서가 없을 때](#present-admin-documents)와 [호스트 제공 부모 설정](#let-an-embedding-host-add-policy)이 제한적인 키를 제공하지 않을 때만 읽습니다.1604. Windows의 HKCU 레지스트리, WSL에서는 HKLM 레지스트리 또는 Windows 관리형 설정 파일이 [`wslInheritsWindowsSettings`](/docs/ko/settings-reference#wslinheritswindowssettings)를 켜고 HKCU 값도 이를 설정할 때. Claude Code는 [위에 존재하는 관리 문서가 없을 때](#present-admin-documents)와 [호스트 제공 부모 설정](#let-an-embedding-host-add-policy)이 제한적인 키를 제공하지 않을 때만 읽습니다.


263 263 

264[`policyHelper`](/docs/ko/settings-reference#policyhelper)는 이 키와 관계없이 부모 병합을 끌 수 있습니다. 해당 항목은 언제인지 설명합니다.264[`policyHelper`](/docs/ko/settings-reference#policyhelper)는 이 키와 관계없이 부모 병합을 끌 수 있습니다. 해당 항목은 언제인지 설명합니다.

265 265 

266Claude Code는 또한 부모 제공 값에 이러한 확인을 적용합니다:266Claude Code는 또한 부모 제공 값 자체에 이러한 확인을 적용합니다:

267 267 

268* 모든 관리 소스가 `allowManagedPermissionRulesOnly`를 설정할 때, Claude Code는 더 높은 우선순위 소스가 키를 설정하지 않은 경우에도 읽을 때 [부모 제공](/docs/ko/claude-apps-gateway#restrict-parent-settings) 권한 허용 규칙과 `additionalDirectories`를 삭제합니다. 키의 효과는 Claude Code가 적용하는 관리형 설정이나 병합하도록 선택한 부모 설정에서 나옵니다.268* 모든 관리 소스가 `allowManagedPermissionRulesOnly`를 설정할 때, Claude Code는 더 높은 우선순위 소스가 키를 설정하지 않은 경우에도 읽을 때 [부모 제공](/docs/ko/claude-apps-gateway#restrict-parent-settings) 권한 허용 규칙과 `additionalDirectories`를 삭제합니다. 사용자 자신의 권한 규칙에 대한 키의 효과는 Claude Code가 적용하는 관리형 설정이나 병합하도록 선택한 부모 설정에서 나옵니다.

269* Claude Code는 적용하는 관리형 설정의 `forceLoginOrgUUID` 또는 `allowedMcpServers` 값을 적용하고 부모 제공 값을 차단합니다. MCP 허용 목록 잠금 외부에서 Claude Code가 적용하지 않는 더 낮은 관리 소스의 값은 적용되지도 차단되지도 않습니다.269* Claude Code는 적용하는 관리형 설정의 `forceLoginOrgUUID` 또는 `allowedMcpServers` 값을 적용하고 부모 제공 값을 차단합니다. MCP 허용 목록 잠금 외부에서 Claude Code가 적용하지 않는 더 낮은 관리 소스의 값은 적용되지도 않고 부모의 값을 차단하지도 않습니다.

270 270 

271 Claude Code v2.1.273 이상에서 `allowManagedMcpServersOnly`가 켜져 있는 동안 하나를 설정하는 가장 높은 순위의 관리 소스의 `allowedMcpServers` 목록이 적용되고 부모의 것을 차단합니다([교차 소스 키](#keys-read-from-every-admin-source)로). 부모의 목록은 관리 소스가 하나를 설정하지 않을 때만 적용됩니다. [`managedSourcesBehavior`](/docs/ko/settings-reference#managedsourcesbehavior) 항목은 `"merge"` 아래에서 어떤 소스가 각 키를 제공하는지 설명합니다. v2.1.223 이전에는 모든 관리 소스의 값이 부모의 것을 차단했습니다.271 Claude Code v2.1.273 이상에서 `allowManagedMcpServersOnly`가 켜져 있는 동안 하나를 설정하는 가장 높은 순위의 관리 소스의 `allowedMcpServers` 목록이 적용되고 부모의 것을 차단합니다([교차 소스 키](#keys-read-from-every-admin-source)로). 부모의 목록은 관리 소스가 하나를 설정하지 않을 때만 적용됩니다. [`managedSourcesBehavior`](/docs/ko/settings-reference#managedsourcesbehavior) 항목은 `"merge"` 아래에서 어떤 소스가 각 키를 제공하는지 설명합니다. v2.1.223 이전에는 모든 관리 소스의 값이 부모의 것을 차단했습니다.

272* `availableModels`의 경우 Claude Code는 적용하는 관리형 설정의 값을 적용하고 부모 제공 목록을 차단합니다.272* `availableModels`의 경우 Claude Code는 적용하는 관리형 설정의 값을 적용하고 부모 제공 목록을 차단합니다.

mcp.md +35 −13

Details

142```142```

143 143 

144<Note>144<Note>

145 **중요: 서버 인수를 `--`로 구분**

146 

147 Stdio 서버의 경우, `--` (이중 대시)는 Claude의 자체 옵션(예: `--transport`, `--env`, `--scope`)과 서버를 실행하는 명령 및 인수를 구분합니다. `--` 이후의 모든 것은 서버에 그대로 전달됩니다.145 Stdio 서버의 경우, `--` (이중 대시)는 Claude의 자체 옵션(예: `--transport`, `--env`, `--scope`)과 서버를 실행하는 명령 및 인수를 구분합니다. `--` 이후의 모든 것은 서버에 그대로 전달됩니다.

148 146 

149 예를 들어:147 예를 들어:


275* `✘ Rejected (see disabledMcpjsonServers in settings)`: [`disabledMcpjsonServers`](/docs/ko/settings-reference#disabledmcpjsonservers) 항목이 거부하는 `.mcp.json` 서버입니다. Claude Code는 `claude mcp get <name>`에만 표시합니다.273* `✘ Rejected (see disabledMcpjsonServers in settings)`: [`disabledMcpjsonServers`](/docs/ko/settings-reference#disabledmcpjsonservers) 항목이 거부하는 `.mcp.json` 서버입니다. Claude Code는 `claude mcp get <name>`에만 표시합니다.

276* `⊘ Disabled for this project (re-enable via /mcp)`: 프로젝트의 [`disabledMcpServers`](#disable-a-server-without-removing-it) 목록이 이름을 지정하는 서버입니다. Claude Code는 `claude mcp list` 및 `claude mcp get <name>` 모두에 표시합니다. `/mcp` 패널에서 서버를 다시 켜세요.274* `⊘ Disabled for this project (re-enable via /mcp)`: 프로젝트의 [`disabledMcpServers`](#disable-a-server-without-removing-it) 목록이 이름을 지정하는 서버입니다. Claude Code는 `claude mcp list` 및 `claude mcp get <name>` 모두에 표시합니다. `/mcp` 패널에서 서버를 다시 켜세요.

277 275 

278WebSocket 서버는 `claude mcp list` 출력에 나타나지 않습니다. `claude mcp get <name>` 또는 `/mcp` 패널을 사용하여 확인하세요.

279 

280<h4 id="project-server-approvals-and-workspace-trust">276<h4 id="project-server-approvals-and-workspace-trust">

281 프로젝트 서버 승인 및 워크스페이스 신뢰277 프로젝트 서버 승인 및 워크스페이스 신뢰

282</h4>278</h4>


371 367 

372v2에서 Claude Code는 또한:368v2에서 Claude Code는 또한:

373 369 

374* HTTP 서버에 더 새로운 개정을 지원하는지 묻고, 지원하는 서버와 함께 사용합니다. 기능 플래그를 가져오는 세션에서는 claude.ai 커넥터 서버에도 묻고, Claude Code v2.1.285 이상에서는 Anthropic이 해당 변경 사항을 롤아웃함에 따라 stdio 서버에도 묻습니다. 모든 세션에서 커넥터 및 stdio 서버에 묻도록 하려면 [`MCP_PROTOCOL_NEGOTIATION`](/docs/ko/env-vars)을 `auto`로 설정하세요. 다른 모든 서버에는 v1처럼 연결합니다.370* HTTP 및 stdio 서버에 더 새로운 개정을 지원하는지 묻고, 지원하는 서버와 함께 사용합니다. 기능 플래그를 가져오는 세션에서는 claude.ai 커넥터 서버에도 묻습니다. 다른 모든 서버에는 v1처럼 연결합니다.

375* [열린 스트림](#notification-streams-on-the-v2-runtime)을 통해 더 새로운 개정의 서버에서 `list_changed` 알림을 받습니다.371* [열린 스트림](#notification-streams-on-the-v2-runtime)을 통해 더 새로운 개정의 서버에서 `list_changed` 알림을 받습니다.

376* 더 새로운 개정에 연결되는 [채널](#push-messages-with-channels) 서버를 등록하지 않습니다. 해당 개정은 채널 메시지를 전달할 수 없기 때문입니다.372* 더 새로운 개정에 연결되는 [채널](#push-messages-with-channels) 서버를 등록하지 않습니다. 해당 개정은 채널 메시지를 전달할 수 없기 때문입니다.

377* 인증 응답이 예상치 못한 발급자의 이름을 지정하는 [MCP OAuth 로그인](#authenticate-with-remote-mcp-servers)을 실패합니다.373* 인증 응답이 예상치 못한 발급자의 이름을 지정하는 [MCP OAuth 로그인](#authenticate-with-remote-mcp-servers)을 실패합니다.


458 454 

459[v2 런타임](#mcp-client-runtimes)에서 MCP 프로토콜 개정 2026-07-28을 협상하는 채널 서버는 채널 메시지를 전달할 수 없으므로 Claude Code는 이를 채널로 등록하지 않습니다. 해당 개정을 지원하지 않는 채널 서버는 이전 핸드셰이크로 연결되며 이전과 같이 등록됩니다.455[v2 런타임](#mcp-client-runtimes)에서 MCP 프로토콜 개정 2026-07-28을 협상하는 채널 서버는 채널 메시지를 전달할 수 없으므로 Claude Code는 이를 채널로 등록하지 않습니다. 해당 개정을 지원하지 않는 채널 서버는 이전 핸드셰이크로 연결되며 이전과 같이 등록됩니다.

460 456 

461[`MCP_PROTOCOL_NEGOTIATION`](/docs/ko/env-vars)을 `auto`로 설정하면 Claude Code는 stdio 서버에 해당 개정을 요청합니다. Anthropic은 또한 Claude Code가 [기능 플래그를 가져오는](/docs/ko/env-vars#features-that-need-feature-flag-fetching) 세션에서 Claude Code v2.1.285 이상을 대상으로 이를 기본적으로 켜고 있습니다. stdio 채널 서버를 이전 핸드셰이크에 유지하려면 `MCP_PROTOCOL_NEGOTIATION`을 `legacy`로 설정하세요. 이렇게 하면 모든 서버가 이전 핸드셰이크에 유지됩니다.457Claude Code는 기본적으로 stdio 서버에 해당 개정을 요청합니다. stdio 채널 서버를 이전 핸드셰이크에 유지하려면 [`MCP_PROTOCOL_NEGOTIATION`](/docs/ko/env-vars)을 `legacy`로 설정하세요. 이렇게 하면 모든 서버가 이전 핸드셰이크에 유지됩니다.

462 458 

463<Tip>459<Tip>

464 팁:460 팁:


509 플러그인 제공 MCP 서버505 플러그인 제공 MCP 서버

510</h3>506</h3>

511 507 

512[플러그인](/docs/ko/plugins/overview)은 MCP 서버를 번들로 제공할 수 있으며, 플러그인을 활성화하면 도구 및 통합을 제공합니다. 플러그인 MCP 서버는 사용자 구성 서버와 동일하게 작동합니다.508[플러그인](/docs/ko/plugins/overview)은 MCP 서버를 번들로 제공할 수 있으며, 플러그인을 활성화하면 도구 및 통합을 제공합니다.

513 509 

514**플러그인 MCP 서버의 작동 방식**:510**플러그인 MCP 서버의 작동 방식**:

515 511 


1407* **기본 제한**: 기본 최댓값은 25,000 토큰입니다1403* **기본 제한**: 기본 최댓값은 25,000 토큰입니다

1408* **범위**: 환경 변수는 자체 제한을 선언하지 않은 도구에 적용됩니다. [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool)를 설정한 도구는 `MAX_MCP_OUTPUT_TOKENS`가 무엇으로 설정되어 있든 관계없이 텍스트 콘텐츠에 대해 해당 값을 대신 사용합니다. 이미지 데이터를 반환하는 도구는 여전히 `MAX_MCP_OUTPUT_TOKENS`의 적용을 받습니다1404* **범위**: 환경 변수는 자체 제한을 선언하지 않은 도구에 적용됩니다. [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool)를 설정한 도구는 `MAX_MCP_OUTPUT_TOKENS`가 무엇으로 설정되어 있든 관계없이 텍스트 콘텐츠에 대해 해당 값을 대신 사용합니다. 이미지 데이터를 반환하는 도구는 여전히 `MAX_MCP_OUTPUT_TOKENS`의 적용을 받습니다

1409* **제한 초과**: 이미지 콘텐츠가 없는 성공한 결과가 토큰 제한을 초과하면, Claude Code는 이를 파일에 저장하고 대화에서 파일 경로를 명시하는 메시지로 대체하므로, Claude는 콘텐츠가 필요할 때 파일을 읽습니다. 파일은 [`~/.claude/projects/`](/docs/ko/claude-directory#cleaned-up-automatically) 아래의 세션의 `tool-results` 디렉터리에 저장됩니다.1405* **제한 초과**: 이미지 콘텐츠가 없는 성공한 결과가 토큰 제한을 초과하면, Claude Code는 이를 파일에 저장하고 대화에서 파일 경로를 명시하는 메시지로 대체하므로, Claude는 콘텐츠가 필요할 때 파일을 읽습니다. 파일은 [`~/.claude/projects/`](/docs/ko/claude-directory#cleaned-up-automatically) 아래의 세션의 `tool-results` 디렉터리에 저장됩니다.

1406* **HTTP 및 SSE 서버의 응답 크기**: Claude Code는 [HTTP](#option-1-add-a-remote-http-server) 또는 [SSE](#option-2-add-a-remote-sse-server) 서버의 응답에서 하나의 JSON 응답 본문 또는 이벤트 스트림의 하나의 이벤트가 압축 해제 후 16MB를 넘으면 응답 읽기를 중단합니다. 해당 응답이 응답하는 요청은 실패합니다. 서버를 관리하는 경우, 결과를 페이지로 나누는 등의 방법으로 응답당 반환하는 데이터를 줄여 제한을 넘지 않도록 합니다

1410 1407 

1411Claude Code가 [백그라운드 작업으로 전환한](#automatic-backgrounding-of-long-tool-calls) 호출은 작업 알림을 통해 결과를 보고합니다. 포그라운드에서 완료되는 호출에는 두 가지 제한이 추가로 적용됩니다:1408Claude Code가 [백그라운드 작업으로 전환한](#automatic-backgrounding-of-long-tool-calls) 호출은 작업 알림을 통해 결과를 보고합니다. 포그라운드에서 완료되는 호출에는 두 가지 제한이 추가로 적용됩니다:

1412 1409 


1440 1437 

1441주석 처리는 텍스트 콘텐츠에 대해 `MAX_MCP_OUTPUT_TOKENS`와 독립적으로 적용되므로, 사용자는 이를 선언한 도구에 대해 환경 변수를 올릴 필요가 없습니다. 이미지 데이터를 반환하는 도구는 여전히 토큰 제한의 적용을 받습니다.1438주석 처리는 텍스트 콘텐츠에 대해 `MAX_MCP_OUTPUT_TOKENS`와 독립적으로 적용되므로, 사용자는 이를 선언한 도구에 대해 환경 변수를 올릴 필요가 없습니다. 이미지 데이터를 반환하는 도구는 여전히 토큰 제한의 적용을 받습니다.

1442 1439 

1443<Warning>

1444 제어하지 않는 특정 MCP 서버에서 출력 경고가 자주 발생하는 경우, `MAX_MCP_OUTPUT_TOKENS` 제한을 늘리는 것을 고려하십시오. 서버 작성자에게 `anthropic/maxResultSizeChars` 주석 처리를 추가하거나 응답을 페이지 매김하도록 요청할 수도 있습니다. 주석 처리는 이미지 콘텐츠를 반환하는 도구에는 영향을 주지 않습니다. 이러한 도구의 경우 `MAX_MCP_OUTPUT_TOKENS`를 올리는 것이 유일한 옵션입니다.

1445</Warning>

1446 

1447<h3 id="images-in-tool-results">1440<h3 id="images-in-tool-results">

1448 도구 결과의 이미지1441 도구 결과의 이미지

1449</h3>1442</h3>


1604 1597 

1605세션의 모든 MCP 서버에 대한 제한을 변경하려면 [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/ko/env-vars#variables)를 문자 수로 설정하세요. 이 변수는 Claude Code v2.1.280 이상이 필요합니다.1598세션의 모든 MCP 서버에 대한 제한을 변경하려면 [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/ko/env-vars#variables)를 문자 수로 설정하세요. 이 변수는 Claude Code v2.1.280 이상이 필요합니다.

1606 1599 

1600<h4 id="per-tool-alwaysload">

1601 도구를 미리 로드하거나 연기된 상태로 유지하도록 표시

1602</h4>

1603 

1604서버의 도구 중 하나가 로드되는 방식을 제어하려면 해당 도구의 `_meta` 객체에 `"anthropic/alwaysLoad"`를 설정하세요. 서버를 Claude Code에 추가하는 사람도 자신의 구성에서 서버 전체에 대해 [`alwaysLoad`](#exempt-a-server-from-deferral)를 설정할 수 있으며, 그 설정이 작성자의 설정을 재정의할 수 있습니다:

1605 

1606| 도구의 값 | 동작 |

1607| :- | :- |

1608| `true` | 도구가 미리 로드됩니다. 이 값 때문에 시작 시 서버를 기다리지는 않습니다. 서버를 구성하는 사람은 여전히 [서버의 모든 도구를 연기](#defer-a-servers-tools)할 수 있습니다 |

1609| `false` | 해당 구성에서 `"alwaysLoad": true`를 설정하더라도 도구가 연기된 상태로 유지됩니다. 이는 서버가 [`--mcp-config`](/docs/ko/cli-reference#cli-flags)로 전달되거나, [Agent SDK 애플리케이션](/docs/ko/agent-sdk/mcp#in-code)에서 제공되거나, [플러그인](#plugin-provided-mcp-servers)에서 제공될 때 적용됩니다. 다른 서버에서는 도구가 미리 로드됩니다. Claude Code v2.1.285 이상이 필요합니다 |

1610 

1611다음 `tools/list` 항목은 하나의 도구를 미리 로드하도록 요청합니다:

1612 

1613```json theme={null}

1614{

1615 "name": "search_tickets",

1616 "description": "Searches the ticket tracker by keyword",

1617 "_meta": {

1618 "anthropic/alwaysLoad": true

1619 }

1620}

1621```

1622 

1607<h3 id="configure-tool-search">1623<h3 id="configure-tool-search">

1608 도구 검색 구성1624 도구 검색 구성

1609</h3>1625</h3>


1655 서버를 연기에서 제외1671 서버를 연기에서 제외

1656</h3>1672</h3>

1657 1673 

1658서버의 도구가 항상 검색 단계 없이 Claude에게 표시되어야 하는 경우, 해당 서버의 구성에서 `alwaysLoad`를 `true`로 설정하세요. 그러면 해당 서버의 모든 도구가 `ENABLE_TOOL_SEARCH` 설정과 관계없이 세션 시작 시 컨텍스트에 로드됩니다. 각 미리 로드된 도구가 대화에 사용할 수 있는 컨텍스트를 소비하므로, Claude가 모든 턴에서 필요한 적은 수의 도구에 이를 사용하세요.1674서버의 도구가 항상 검색 단계 없이 Claude에게 표시되어야 하는 경우, 해당 서버의 구성에서 `alwaysLoad`를 `true`로 설정하세요. 그러면 해당 서버의 도구가 `ENABLE_TOOL_SEARCH` 설정과 관계없이 컨텍스트에 로드됩니다. 각 미리 로드된 도구가 대화에 사용할 수 있는 컨텍스트를 소비하므로, Claude가 모든 턴에서 필요한 적은 수의 도구에 이를 사용하세요.

1659 1675 

1660다음 `.mcp.json` 항목은 다른 서버는 연기된 상태로 두고 하나의 HTTP 서버를 제외합니다:1676다음 `.mcp.json` 항목은 다른 서버는 연기된 상태로 두고 하나의 HTTP 서버를 제외합니다:

1661 1677 


1671}1687}

1672```1688```

1673 1689 

1674`alwaysLoad` 필드는 모든 서버 유형에서 사용 가능합니다. MCP 서버는 도구의 `_meta` 객체에 `"anthropic/alwaysLoad": true`를 포함하여 개별 도구를 항상 로드되도록 표시할 수도 있으며, 이는 해당 도구에만 동일한 효과를 갖습니다.1690`alwaysLoad` 필드는 모든 서버 유형에서 사용 가능합니다.

1675 1691 

1676`alwaysLoad: true`를 설정하면 시작 시 서버의 도구를 기다리게 되며, 첫 번째 프롬프트가 구축될 때 도구가 있어야 하므로 표준 5초 연결 타임아웃으로 제한됩니다. 유효한 [`cached` 항목](#server-status-detail)이 있는 원격 서버는 연결하지 않고 캐시에서 도구를 제공하므로 시작을 지연시키지 않습니다. 다른 서버는 기본적으로 백그라운드에서 연결됩니다. [`MCP_CONNECTION_NONBLOCKING=0`](/docs/ko/env-vars)을 설정하여 시작이 이들을 기다리도록 하세요.1692`alwaysLoad: true`를 설정하면 시작 시 서버의 도구를 기다리게 되며, 첫 번째 프롬프트가 구축될 때 도구가 있어야 하므로 표준 5초 연결 타임아웃으로 제한됩니다. 유효한 [`cached` 항목](#server-status-detail)이 있는 원격 서버는 연결하지 않고 캐시에서 도구를 제공하므로 시작을 지연시키지 않습니다. 다른 서버는 기본적으로 백그라운드에서 연결됩니다. [`MCP_CONNECTION_NONBLOCKING=0`](/docs/ko/env-vars)을 설정하여 시작이 이들을 기다리도록 하세요.

1677 1693 

1694<h3 id="defer-a-servers-tools">

1695 서버의 도구 연기

1696</h3>

1697 

1698서버의 모든 도구를 도구 검색 뒤에 유지하려면 MCP 구성의 해당 서버 항목에 `"alwaysLoad": false`를 설정하세요. 여기에는 서버 작성자가 [미리 로드하도록 표시한](#per-tool-alwaysload) 도구도 포함됩니다. `alwaysLoad`를 생략하면 표시된 도구는 미리 로드됩니다. Claude Code v2.1.287 이상이 필요합니다.

1699 

1678<h2 id="use-mcp-prompts-as-commands">1700<h2 id="use-mcp-prompts-as-commands">

1679 MCP 프롬프트를 명령어로 사용하기1701 MCP 프롬프트를 명령어로 사용하기

1680</h2>1702</h2>

memory.md +5 −3

Details

161 161 

162발견된 모든 파일은 서로를 재정의하지 않고 컨텍스트에 연결됩니다. 디렉터리 트리 전체에서 콘텐츠는 파일 시스템 루트에서 작업 디렉터리까지 순서대로 정렬됩니다. `foo/bar/` 예시의 경우 `foo/CLAUDE.md`가 `foo/bar/CLAUDE.md` 이전에 컨텍스트에 나타나므로 Claude를 시작한 위치에 더 가까운 지침이 마지막에 읽힙니다. 각 디렉터리 내에서 `CLAUDE.local.md`는 `CLAUDE.md` 이후에 추가되므로 개인 노트가 해당 수준에서 Claude가 읽는 마지막 항목입니다.162발견된 모든 파일은 서로를 재정의하지 않고 컨텍스트에 연결됩니다. 디렉터리 트리 전체에서 콘텐츠는 파일 시스템 루트에서 작업 디렉터리까지 순서대로 정렬됩니다. `foo/bar/` 예시의 경우 `foo/CLAUDE.md`가 `foo/bar/CLAUDE.md` 이전에 컨텍스트에 나타나므로 Claude를 시작한 위치에 더 가까운 지침이 마지막에 읽힙니다. 각 디렉터리 내에서 `CLAUDE.local.md`는 `CLAUDE.md` 이후에 추가되므로 개인 노트가 해당 수준에서 Claude가 읽는 마지막 항목입니다.

163 163 

164Claude는 또한 현재 작업 디렉터리 아래의 하위 디렉터리에서 `CLAUDE.md` 및 `CLAUDE.local.md` 파일을 발견합니다. 시작 시 로드하지 않고, Claude가 해당 하위 디렉터리의 파일에 [Read](/docs/ko/tools-reference#read-tool-behavior), [Write](/docs/ko/tools-reference#write-tool-behavior) 또는 [Edit](/docs/ko/tools-reference#edit-tool-behavior) 도구를 사용할 때 Claude Code가 이를 포함합니다. Claude가 하위 디렉터리의 `CLAUDE.md` 자체에 이미 이러한 도구 중 하나를 사용한 경우, Claude Code는 해당 파일이 이미 대화에 있는 것으로 취급하므로 이 방식으로 로드되지 않습니다. `.claude/worktrees/` 아래의 워크트리 내부 파일에 대해서는 [워크트리로 서브에이전트 격리하기](/docs/ko/worktrees#isolate-subagents-with-worktrees)를 참조하십시오.164Claude는 또한 현재 작업 디렉터리 아래의 하위 디렉터리에서 `CLAUDE.md` 및 `CLAUDE.local.md` 파일을 발견합니다. 시작 시 로드하지 않고, Claude가 해당 하위 디렉터리의 다른 파일을 읽거나, 쓰거나, 편집하면 Claude Code가 각 파일을 로드합니다. 읽기에는 단일 파일에 대한 `cat` 또는 `head`처럼 [읽기로 간주되는](/docs/ko/tools-reference#edit-tool-behavior) Bash 명령으로 파일을 보는 것도 포함됩니다. `.claude/worktrees/` 아래의 워크트리 내부 파일에 대해서는 [워크트리로 서브에이전트 격리하기](/docs/ko/worktrees#isolate-subagents-with-worktrees)를 참조하십시오.

165 165 

166대규모 모노레포에서 작업하고 다른 팀의 CLAUDE.md 파일이 선택되는 경우 [`claudeMdExcludes`](#exclude-specific-claude-md-files)를 사용하여 건너뛰십시오. 루트 및 디렉터리별 CLAUDE.md 파일과 규칙의 전체 레이아웃은 [모노레포 및 대규모 저장소](/docs/ko/large-codebases)를 참조하십시오.166대규모 모노레포에서 작업하고 다른 팀의 CLAUDE.md 파일이 선택되는 경우 [`claudeMdExcludes`](#exclude-specific-claude-md-files)를 사용하여 건너뛰십시오. 루트 및 디렉터리별 CLAUDE.md 파일과 규칙의 전체 레이아웃은 [모노레포 및 대규모 저장소](/docs/ko/large-codebases)를 참조하십시오.

167 167 


232- Include OpenAPI documentation comments232- Include OpenAPI documentation comments

233```233```

234 234 

235`paths` 필드가 없는 규칙은 무조건 로드되고 모든 파일에 적용됩니다. 경로 범위 규칙은 모든 도구 사용 시가 아니라, Claude가 패턴과 일치하는 파일에 Read, Write 또는 Edit 도구를 사용할 때 트리거됩니다. 일치는 Claude가 프로젝트 디렉터리의 심볼릭 링크된 경로를 통해 파일에 도달할 때도 작동합니다(예: 심볼릭 링크된 체크아웃).235`paths` 필드가 없는 규칙은 무조건 로드되고 모든 파일에 적용됩니다. 경로 범위 규칙은 Claude가 일치하는 파일에 Read, Write 또는 Edit 도구를 사용할 때 로드됩니다. 또한 Claude가 단일 파일에 대한 `cat` 또는 `head`처럼 [읽기로 간주되는](/docs/ko/tools-reference#edit-tool-behavior) Bash 명령으로 일치하는 파일을 볼 때도 로드됩니다. 일치는 Claude가 프로젝트 디렉터리의 심볼릭 링크된 경로를 통해 파일에 도달할 때도 작동합니다(예: 심볼릭 링크된 체크아웃).

236 236 

237`paths` 필드에서 glob 패턴을 사용하여 확장자, 디렉터리 또는 조합으로 파일을 일치시키십시오:237`paths` 필드에서 glob 패턴을 사용하여 확장자, 디렉터리 또는 조합으로 파일을 일치시키십시오:

238 238 


278 278 

279`.claude/rules/` 디렉터리는 심볼릭 링크를 지원하므로 공유 규칙 세트를 유지하고 여러 프로젝트에 링크할 수 있습니다. 순환 심볼릭 링크는 감지되고 우아하게 처리됩니다.279`.claude/rules/` 디렉터리는 심볼릭 링크를 지원하므로 공유 규칙 세트를 유지하고 여러 프로젝트에 링크할 수 있습니다. 순환 심볼릭 링크는 감지되고 우아하게 처리됩니다.

280 280 

281Claude Code는 대상이 작업 디렉터리 외부인 심볼릭 링크를 [외부 가져오기](#import-additional-files)처럼 취급합니다. 링크된 규칙은 프로젝트에 대한 외부 가져오기를 승인할 때까지 로드되지 않으며, 그 후 [`paths` 필드](#path-specific-rules)가 없는 규칙만 로드됩니다. Claude Code는 프로젝트 메모리 파일이 `@path`로 작업 디렉터리 외부의 파일을 가져올 때만 승인을 요청하며, 심볼릭 링크만으로는 요청하지 않습니다. 해당 승인 없이 공유 규칙을 로드하려면 [`~/.claude/rules/`](#user-level-rules)에 유지하십시오. 여기서 컴퓨터의 모든 프로젝트에 적용됩니다.281Claude Code는 대상이 작업 디렉터리 외부인 심볼릭 링크를 [외부 가져오기](#import-additional-files)처럼 취급합니다. 링크된 규칙은 프로젝트에 대한 외부 가져오기를 승인할 때까지 로드되지 않으며, 그 후 [`paths` 필드](#path-specific-rules)가 없는 규칙만 로드됩니다.

282 

283Claude Code는 대화형 세션 시작 시 대화 상자를 통해 프로젝트당 한 번 해당 승인을 요청합니다. 대화 상자에는 외부 `@path` 가져오기와 함께 링크된 규칙 파일이 나열됩니다. 해당 승인 없이 공유 규칙을 로드하려면 [`~/.claude/rules/`](#user-level-rules)에 유지하십시오. 여기서 컴퓨터의 모든 프로젝트에 적용됩니다.

282 284 

283이 예시는 공유 디렉터리와 개별 파일을 모두 링크합니다:285이 예시는 공유 디렉터리와 개별 파일을 모두 링크합니다:

284 286 

Details

118 118 

119Claude Code는 Microsoft Foundry에 대해 세 가지 인증 방법을 지원합니다. 보안 요구 사항에 가장 적합한 방법을 선택하세요.119Claude Code는 Microsoft Foundry에 대해 세 가지 인증 방법을 지원합니다. 보안 요구 사항에 가장 적합한 방법을 선택하세요.

120 120 

121**옵션 A: API 키 인증**121* [API 키](#use-an-api-key): Microsoft Foundry 포털에서 키를 복사하여 `ANTHROPIC_FOUNDRY_API_KEY`로 설정합니다

122* [Microsoft Entra ID](#use-microsoft-entra-id): Claude Code가 Azure SDK 기본 자격 증명 체인을 통해(예: `az login` 세션에서) 토큰을 얻으므로 저장할 API 키가 없습니다

123* [Bearer 토큰](#use-a-bearer-token): 다른 프로세스가 Microsoft Entra ID 액세스 토큰을 얻고, 이를 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`으로 전달합니다

124 

125<Note>

126 Microsoft Foundry를 사용할 때 `/logout` 명령은 Azure 자격 증명을 통해 인증이 처리되므로 사용할 수 없습니다.

127</Note>

128 

129<h4 id="use-an-api-key">

130 API 키 사용

131</h4>

132 

133Microsoft Foundry 포털에서 키를 복사한 다음 환경 변수로 설정합니다:

122 134 

1231. Microsoft Foundry 포털에서 리소스로 이동합니다1351. Microsoft Foundry 포털에서 리소스로 이동합니다

1242. **엔드포인트 및 키** 섹션으로 이동합니다1362. **엔드포인트 및 키** 섹션을 엽니다

1253. **API 키**를 복사합니다1373. **API 키**를 복사합니다

1264. 환경 변수를 설정합니다. `your-azure-api-key`를 복사한 키로 바꾸세요:1384. 환경 변수를 설정합니다. `your-azure-api-key`를 복사한 키로 바꾸세요:

127 139 


129export ANTHROPIC_FOUNDRY_API_KEY=your-azure-api-key141export ANTHROPIC_FOUNDRY_API_KEY=your-azure-api-key

130```142```

131 143 

132**옵션 B: Microsoft Entra ID 인증**144<h4 id="use-microsoft-entra-id">

145 Microsoft Entra ID 사용

146</h4>

133 147 

134`ANTHROPIC_FOUNDRY_API_KEY`와 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`이 모두 설정되지 않으면 Claude Code는 자동으로 Azure SDK [기본 자격 증명 체인](https://learn.microsoft.com/en-us/azure/developer/javascript/sdk/authentication/credential-chains#defaultazurecredential-overview)을 사용합니다.148`ANTHROPIC_FOUNDRY_API_KEY`와 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`을 설정하지 않은 상태로 둡니다. 그러면 Claude Code는 Azure SDK [기본 자격 증명 체인](https://learn.microsoft.com/en-us/azure/developer/javascript/sdk/authentication/credential-chains#defaultazurecredential-overview)을 사용합니다.

135이는 로컬 및 원격 워크로드를 인증하기 위한 다양한 방법을 지원합니다.149이는 로컬 및 원격 워크로드를 인증하기 위한 다양한 방법을 지원합니다.

136 150 

137로컬 환경에서는 일반적으로 Azure CLI를 사용할 수 있습니다:151로컬 머신에서는 Azure CLI로 로그인합니다:

138 152 

139```bash theme={null}153```bash theme={null}

140az login154az login

141```155```

142 156 

143**옵션 C: Bearer 토큰 인증**157ID에 필요한 역할은 [Azure RBAC 구성](#azure-rbac-configuration)을 참조하세요.

158 

159<h4 id="use-a-bearer-token">

160 Bearer 토큰 사용

161</h4>

144 162 

145Claude Code는 모든 요청에서 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`의 값을 `Authorization: Bearer` 헤더로 전송합니다. 호스트 애플리케이션이나 로그인 스크립트와 같은 다른 프로세스가 이미 액세스 토큰을 얻은 경우 이 옵션을 사용합니다. Claude Code v2.1.203 이상이 필요합니다.163Claude Code는 모든 요청에서 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`의 값을 `Authorization: Bearer` 헤더로 전송합니다. 호스트 애플리케이션이나 로그인 스크립트와 같은 다른 프로세스가 이미 액세스 토큰을 얻은 경우 이 옵션을 사용합니다. Claude Code v2.1.203 이상이 필요합니다.

146 164 


152 170 

153`ANTHROPIC_FOUNDRY_AUTH_TOKEN`은 `ANTHROPIC_FOUNDRY_API_KEY`보다 우선하며 기본 자격 증명 체인보다 우선합니다.171`ANTHROPIC_FOUNDRY_AUTH_TOKEN`은 `ANTHROPIC_FOUNDRY_API_KEY`보다 우선하며 기본 자격 증명 체인보다 우선합니다.

154 172 

155<Note>

156 Microsoft Foundry를 사용할 때 `/logout` 명령은 Azure 자격 증명을 통해 인증이 처리되므로 사용할 수 없습니다.

157</Note>

158 

159<h3 id="3-configure-claude-code">173<h3 id="3-configure-claude-code">

160 3. Claude Code 구성174 3. Claude Code 구성

161</h3>175</h3>


240 254 

241자세한 내용은 [Microsoft Foundry RBAC 설명서](https://learn.microsoft.com/en-us/azure/ai-foundry/concepts/rbac-azure-ai-foundry)를 참조하세요.255자세한 내용은 [Microsoft Foundry RBAC 설명서](https://learn.microsoft.com/en-us/azure/ai-foundry/concepts/rbac-azure-ai-foundry)를 참조하세요.

242 256 

257<h2 id="1m-token-context-window">

258 1M 토큰 컨텍스트 윈도우

259</h2>

260 

261Microsoft Foundry에서 Claude Code가 배포에서 제공하는 모델을 식별할 수 있는 경우, Fable 모델, Sonnet 5 이상, Opus 4.7 이상은 `[1m]` 접미사 없이도 기본적으로 [1M 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)로 실행됩니다. Claude Code는 모델 변수의 배포 이름에서 모델을 읽습니다. 각 배포의 이름을 `claude-opus-4-8`과 같은 모델 ID로 지정하거나, [`modelOverrides`](/docs/ko/model-config#override-model-ids-per-version)를 사용하여 모델을 배포 이름에 매핑하십시오. 모델과 매칭할 수 없는 배포 이름의 경우, [다른 윈도우를 선언](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id)하지 않는 한 Claude Code는 200K 윈도우로 간주합니다.

262 

263다음 `settings.json` 항목은 `team-opus-prod`라는 이름의 배포가 Opus 4.8을 제공한다는 것을 Claude Code에 알려 줍니다.

264 

265```json theme={null}

266{

267 "modelOverrides": {

268 "claude-opus-4-8": "team-opus-prod"

269 }

270}

271```

272 

273대신 200K 윈도우를 유지하려면 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/ko/model-config#turn-off-1m-context)을 설정하십시오.

274 

275Opus 4.6과 Sonnet 4.6은 [서드파티 배포용 모델 고정](/docs/ko/model-config#pin-models-for-third-party-deployments)에 설명된 대로 `ANTHROPIC_DEFAULT_OPUS_MODEL` 또는 `ANTHROPIC_DEFAULT_SONNET_MODEL`의 배포 이름에 `[1m]`을 추가하면 1M 윈도우를 사용할 수 있습니다. v2.1.287 이전에는 Microsoft Foundry에서 Fable 모델과 Opus 4.7 이상에도 해당 접미사가 필요했으며, 접미사가 없으면 기본적으로 200K 윈도우로 실행되었습니다.

276 

243<h2 id="troubleshooting">277<h2 id="troubleshooting">

244 문제 해결278 문제 해결

245</h2>279</h2>

model-config.md +165 −155

Details

19 * Microsoft Foundry: 배포 이름19 * Microsoft Foundry: 배포 이름

20 * Google Cloud의 Agent Platform: 버전 이름20 * Google Cloud의 Agent Platform: 버전 이름

21 21 

22어떤 모델과 노력 수준이 다양한 종류의 작업에 적합한지에 대한 지침은 블로그의 [Claude Code에서 Claude 모델 및 노력 수준 선택하기](https://claude.com/blog/claude-model-and-effort-level-in-claude-code)를 참조하십시오.22어떤 모델과 effort 수준이 다양한 종류의 작업에 적합한지에 대한 지침은 블로그의 [Claude Code에서 Claude 모델 및 effort 수준 선택하기](https://claude.com/blog/claude-model-and-effort-level-in-claude-code)를 참조하십시오.

23 23 

24<Note>24<Note>

25 `ANTHROPIC_BASE_URL`은 요청이 전송되는 위치를 변경하며, 어떤 모델이 응답하는지는 변경하지 않습니다. Claude를 LLM 게이트웨이를 통해 라우팅하려면 [LLM 게이트웨이](/docs/ko/llm-gateway)를 참조하십시오.25 `ANTHROPIC_BASE_URL`은 요청이 전송되는 위치를 변경하며, 어떤 모델이 응답하는지는 변경하지 않습니다. Claude를 LLM 게이트웨이를 통해 라우팅하려면 [LLM 게이트웨이](/docs/ko/llm-gateway)를 참조하십시오.


34| 모델 별칭 | 동작 |34| 모델 별칭 | 동작 |

35| - | - |35| - | - |

36| **`default`** | 모든 모델 재정의를 지우고 [계정의 런타임 기본값](#default-model-setting)으로 되돌리는 특수 값입니다. 자체로는 모델 별칭이 아닙니다 |36| **`default`** | 모든 모델 재정의를 지우고 [계정의 런타임 기본값](#default-model-setting)으로 되돌리는 특수 값입니다. 자체로는 모델 별칭이 아닙니다 |

37| **`best`** | [`fable` 별칭이 확인되는](#fable-alias-resolution) 모델을 사용합니다. Fable을 사용할 수 있는 경우, 그렇지 않으면 `opus`와 동일한 모델을 사용합니다 |37| **`best`** | Fable을 사용할 수 있는 경우 [`fable` 별칭이 확인되는](#fable-alias-resolution) 모델을 사용하고, 그렇지 않으면 `opus`와 동일한 모델을 사용합니다 |

38| **`fable`** | 가장 어렵고 오래 실행되는 작업을 위해 [공급자의 Fable 모델](#fable-alias-resolution)을 사용합니다 |38| **`fable`** | 가장 어렵고 오래 실행되는 작업을 위해 [공급자의 Fable 모델](#fable-alias-resolution)을 사용합니다 |

39| **`sonnet`** | 일상적인 코딩 작업을 위해 최신 Sonnet 모델을 사용합니다 |39| **`sonnet`** | 일상적인 코딩 작업을 위해 최신 Sonnet 모델을 사용합니다 |

40| **`opus`** | 복잡한 추론 작업을 위해 최신 Opus 모델을 사용합니다 |40| **`opus`** | 복잡한 추론 작업을 위해 최신 Opus 모델을 사용합니다 |

41| **`haiku`** | 간단한 작업을 위해 빠르고 효율적인 Haiku 모델을 사용합니다 |41| **`haiku`** | 간단한 작업을 위해 빠르고 효율적인 Haiku 모델을 사용합니다 |

42| **`sonnet[1m]`** | 긴 세션을 위해 [100만 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)를 가진 Sonnet을 사용합니다. `sonnet`이 이미 기본 100만 윈도우를 가진 Sonnet 5.5 또는 Sonnet 5로 확인되는 경우 효과가 없습니다 |42| **`sonnet[1m]`** | 긴 세션을 위해 [100만 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)를 가진 Sonnet을 사용합니다. `sonnet`이 이미 기본 100만 윈도우를 가진 Sonnet 5.5 또는 Sonnet 5로 확인되는 경우 효과가 없습니다 |

43| **`opus[1m]`** | 긴 세션을 위해 [100만 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)를 가진 Opus를 사용합니다 |43| **`opus[1m]`** | 긴 세션을 위해 [100만 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)를 가진 Opus를 사용합니다. `opus`가 이미 기본 100만 윈도우를 가진 Opus 4.7 이상으로 확인되는 경우 효과가 없습니다 |

44| **`opusplan`** | 계획 모드 중에 `opus`를 사용한 다음 실행을 위해 `sonnet`으로 전환하는 특수 모드입니다 |44| **`opusplan`** | 플랜 모드 중에 `opus`를 사용한 다음 실행을 위해 `sonnet`으로 전환하는 특수 모드입니다 |

45 45 

46`opus`, `sonnet`, `haiku` 별칭은 Anthropic API에서는 최신 버전으로 확인되고, 일부 다른 공급자에서는 이전 버전으로 확인됩니다:46`opus`, `sonnet`, `haiku` 별칭은 Anthropic API에서는 최신 버전으로 확인되고, 일부 다른 공급자에서는 이전 버전으로 확인됩니다:

47 47 


79* **Fable 5.1**: `/model fable`을 실행하거나 `claude --model fable`로 시작합니다. [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway) 세션에서 별칭이 Fable 5로 확인되는 경우 대신 `/model claude-fable-5-1`을 실행합니다.79* **Fable 5.1**: `/model fable`을 실행하거나 `claude --model fable`로 시작합니다. [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway) 세션에서 별칭이 Fable 5로 확인되는 경우 대신 `/model claude-fable-5-1`을 실행합니다.

80* **Fable 5**: 모델 ID로 선택합니다. Anthropic API에서 `/model claude-fable-5`를 실행하거나 `claude --model claude-fable-5`로 시작합니다. 다른 공급자에서는 공급자의 Fable 5 모델 ID를 사용하거나 `ANTHROPIC_DEFAULT_FABLE_MODEL`로 [고정합니다](#pin-models-for-third-party-deployments).80* **Fable 5**: 모델 ID로 선택합니다. Anthropic API에서 `/model claude-fable-5`를 실행하거나 `claude --model claude-fable-5`로 시작합니다. 다른 공급자에서는 공급자의 Fable 5 모델 ID를 사용하거나 `ANTHROPIC_DEFAULT_FABLE_MODEL`로 [고정합니다](#pin-models-for-third-party-deployments).

81 81 

82Anthropic API에 직접 연결하고 사용자 설정에 모델로 `claude-fable-5` 또는 `claude-fable-5[1m]`이 있는 경우(예: v2.1.257 이전에 `/model` 선택기에서 Fable을 선택했기 때문), Claude Code는 v2.1.257 이상을 처음 실행할 때 저장된 값을 `fable` 또는 `fable[1m]` 별칭으로 변경합니다. 시작 모델 라인은 한 번 `(auto-updated)`를 표시합니다. 프로젝트, 로컬 또는 관리 설정의 `claude-fable-5` 값은 그대로 유지됩니다.82Anthropic API에 직접 연결하고 사용자 설정에 모델로 `claude-fable-5` 또는 `claude-fable-5[1m]`이 있는 경우(예: v2.1.257 이전에 `/model` 선택기에서 Fable을 선택했기 때문), Claude Code는 v2.1.257 이상을 처음 실행할 때 저장된 값을 `fable` 또는 `fable[1m]` 별칭으로 변경합니다. 시작 모델 라인은 한 번 `(auto-updated)`를 표시합니다. 프로젝트, 로컬 또는 관리형 설정의 `claude-fable-5` 값은 그대로 유지됩니다.

83 83 

84Fable 모델의 안전 분류기가 플래그를 지정하는 요청(대부분 사이버 보안 및 생물학 도메인)은 [자동 모델 폴백](#automatic-model-fallback)을 트리거합니다.84Fable 모델의 안전 분류기가 플래그를 지정하는 요청(대부분 사이버 보안 및 생물학 도메인)은 [자동 모델 폴백](#automatic-model-fallback)을 트리거합니다.

85 85 


94 Fable 5.1은 Claude Code v2.1.257 이상이 필요합니다. 이전 버전의 요청이 실패하면 [Claude Code는 이 모델을 지원하지 않습니다](/docs/ko/errors#claude-code-does-not-support-this-model)를 참조하십시오. `claude update`를 실행하여 업그레이드합니다. 영점 데이터 보존 하에서의 가용성은 [ZDR 하의 모델 가용성](/docs/ko/zero-data-retention#model-availability-under-zdr)을 참조하십시오.94 Fable 5.1은 Claude Code v2.1.257 이상이 필요합니다. 이전 버전의 요청이 실패하면 [Claude Code는 이 모델을 지원하지 않습니다](/docs/ko/errors#claude-code-does-not-support-this-model)를 참조하십시오. `claude update`를 실행하여 업그레이드합니다. 영점 데이터 보존 하에서의 가용성은 [ZDR 하의 모델 가용성](/docs/ko/zero-data-retention#model-availability-under-zdr)을 참조하십시오.

95</Note>95</Note>

96 96 

97Anthropic API에서 `/model` 선택기는 [`availableModels`](#restrict-model-selection) 또는 [조직 모델 제한](#organization-model-restrictions)이 이를 제외하지 않으면 Fable 모델을 나열합니다. 조직이 [영점 데이터 보존](/docs/ko/zero-data-retention#model-availability-under-zdr) 하에서와 같이 Fable을 전혀 사용할 수 없는 경우, 행은 선택기에서 회색으로 표시되며 이유에 대한 참고 사항이 있습니다.97Anthropic API에서 Fable 모델은 [`availableModels`](#restrict-model-selection) 또는 [조직 모델 제한](#organization-model-restrictions)이 이를 제외하지 않는 한 `/model` 선택기에 나타납니다. 조직이 [영점 데이터 보존](/docs/ko/zero-data-retention#model-availability-under-zdr) 하에서와 같이 Fable을 전혀 사용할 수 없는 경우, 행은 선택기에서 회색으로 표시되며 이유에 대한 참고 사항이 있습니다.

98 98 

99<h4 id="fable-and-usage-credits">99<h4 id="fable-and-usage-credits">

100 Fable 및 사용 크레딧100 Fable 및 사용량 크레딧

101</h4>101</h4>

102 102 

103플랜 및 시트 계층에 따라 Fable 사용은 [사용 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)으로 청구되거나 플랜의 포함된 한도를 사용할 수 있습니다. 그렇게 되면 `/model` 선택기는 Fable 행에 "사용 크레딧 필요"를 표시합니다. 사용 크레딧을 관리하려면 [구독에 사용 크레딧 추가](/docs/ko/costs#add-usage-credits-to-your-subscription)를 참조하십시오.103플랜 및 시트 계층에 따라 Fable 사용은 플랜에 포함된 한도를 사용하는 대신 [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)으로 청구될 수 있습니다. 그렇게 되면 `/model` 선택기는 Fable 행에 "사용량 크레딧 필요"를 표시합니다. 사용량 크레딧을 관리하려면 [구독에 사용량 크레딧 추가](/docs/ko/costs#add-usage-credits-to-your-subscription)를 참조하십시오.

104 104 

105대화형 세션에서 Claude Code는 Fable 요청이 사용 크레딧을 청구하기 전에 동의 프롬프트를 표시합니다. 조직 청구가 있는 Enterprise 플랜의 구성원은 프롬프트를 보지 않습니다. 사용 크레딧을 사용하여 Fable을 계속하거나 기본 모델로 전환할 수 있습니다. 프롬프트를 해제할 수도 있습니다:105대화형 세션에서 Claude Code는 Fable 요청이 사용량 크레딧을 청구하기 전에 동의 프롬프트를 표시합니다. 조직 청구가 있는 Enterprise 플랜의 구성원은 프롬프트를 보지 않습니다. 사용량 크레딧을 사용하여 Fable을 계속하거나 기본 모델로 전환할 수 있습니다. 프롬프트를 해제할 수도 있습니다:

106 106 

107* `/model`로 Fable 모델을 선택하면 현재 모델을 유지합니다.107* `/model`로 Fable 모델을 선택하면 현재 모델을 유지합니다.

108* 세션 중간에 Claude Code는 기본 모델에서 턴을 계속합니다.108* 세션 중간에 Claude Code는 기본 모델에서 턴을 계속합니다.

109 109 

110사용 크레딧을 사용하여 Fable을 계속하도록 선택한 후 Claude Code는 프롬프트를 다시 표시하지 않습니다.110사용량 크레딧을 사용하여 Fable을 계속하도록 선택한 후 Claude Code는 프롬프트를 다시 표시하지 않습니다.

111 111 

112[Remote Control](/docs/ko/remote-control)이 연결된 세션, [백그라운드 세션](/docs/ko/agent-view), 또는 [에이전트 팀](/docs/ko/agent-teams) 팀원의 세션에서 터미널에 아무도 없을 수 있으므로 Claude Code는 [`dialogExpiry`](/docs/ko/settings-reference#dialogexpiry) 기한(기본값 5분)까지 세션 중간 동의 프롬프트를 유지합니다. 기한까지 아무도 응답하지 않으면 Claude Code는 요청을 보내지 않고 턴을 종료하고 트랜스크립트에 알림을 추가하며, Remote Control 클라이언트도 이를 표시합니다. 모델 선택은 변경되지 않으며 Claude Code는 다음 메시지에서 동의를 다시 요청합니다.112[Remote Control](/docs/ko/remote-control)이 연결된 세션, [백그라운드 세션](/docs/ko/agent-view), 또는 [에이전트 팀](/docs/ko/agent-teams) 팀원의 세션에서 터미널에 아무도 없을 수 있으므로 Claude Code는 [`dialogExpiry`](/docs/ko/settings-reference#dialogexpiry) 기한(기본값 5분)까지 세션 중간 동의 프롬프트를 유지합니다. 기한까지 아무도 응답하지 않으면 Claude Code는 요청을 보내지 않고 턴을 종료하고 트랜스크립트에 알림을 추가하며, Remote Control 클라이언트도 이를 표시합니다. 모델 선택은 변경되지 않으며 Claude Code는 다음 메시지에서 동의를 다시 요청합니다.

113 113 


119 119 

120[Agent SDK](/docs/ko/agent-sdk/overview)를 통해 다른 애플리케이션이 호스팅하는 세션에서 프롬프트가 나타나는지 여부는 해당 애플리케이션에 따라 다릅니다. 프롬프트가 나타나고 동일한 [`dialogExpiry`](/docs/ko/settings-reference#dialogexpiry) 기한까지 아무도 응답하지 않으면 Claude Code는 요청을 보내지 않고 턴을 종료합니다.120[Agent SDK](/docs/ko/agent-sdk/overview)를 통해 다른 애플리케이션이 호스팅하는 세션에서 프롬프트가 나타나는지 여부는 해당 애플리케이션에 따라 다릅니다. 프롬프트가 나타나고 동일한 [`dialogExpiry`](/docs/ko/settings-reference#dialogexpiry) 기한까지 아무도 응답하지 않으면 Claude Code는 요청을 보내지 않고 턴을 종료합니다.

121 121 

122[비대화형 모드](/docs/ko/headless)에서 `-p` 플래그를 사용하고 프롬프트를 표시하지 않는 Agent SDK 애플리케이션에서 Claude Code는 동의를 요청하지 않습니다. Fable 요청이 사용 크레딧으로 청구될 때 Claude Code는 묻지 않고 청구합니다.122[비대화형 모드](/docs/ko/headless)에서 `-p` 플래그를 사용하고 프롬프트를 표시하지 않는 Agent SDK 애플리케이션에서 Claude Code는 동의를 요청하지 않습니다. Fable 요청이 사용량 크레딧으로 청구될 때 Claude Code는 묻지 않고 청구합니다.

123 123 

124<h3 id="setting-your-model">124<h3 id="setting-your-model">

125 모델 설정하기125 모델 설정하기


136`/model`은 사용자 설정에서 `model` 필드를 작성하여 선택을 새 세션의 기본값으로 저장합니다. 선택기에서:136`/model`은 사용자 설정에서 `model` 필드를 작성하여 선택을 새 세션의 기본값으로 저장합니다. 선택기에서:

137 137 

138* `Enter`: 모델을 전환하고 기본값으로 저장합니다138* `Enter`: 모델을 전환하고 기본값으로 저장합니다

139* `s`: 이 세션에만 모델을 전환합니다. 다른 키를 사용하려면 [`modelPicker:thisSessionOnly`](/docs/ko/keybindings#model-picker-actions)를 다시 바인딩합니다139* `s`: 이 세션에만 모델을 전환하고 기본값은 변경하지 않습니다. 다른 키를 사용하려면 [`modelPicker:thisSessionOnly`](/docs/ko/keybindings#model-picker-actions)를 다시 바인딩합니다

140 140 

141`/model <name>`을 직접 입력하는 것은 `Enter`처럼 동작합니다. 이 세션에만 전환하려면 `/model`로 선택기를 열고 모델의 행에서 `s`를 누릅니다.141`/model <name>`을 직접 입력하는 것은 `Enter`처럼 동작합니다. 이 세션에만 전환하려면 `/model`로 선택기를 열고 모델의 행에서 `s`를 누릅니다.

142 142 


146* [모델 제한](#restrict-model-selection)이 기록된 모델을 제외하거나 계정에서 사용할 수 없으며, 관리자가 조직 기본 모델을 설정하지 않았으면 Default 옵션은 아무것도 기록되지 않은 것처럼 확인됩니다.146* [모델 제한](#restrict-model-selection)이 기록된 모델을 제외하거나 계정에서 사용할 수 없으며, 관리자가 조직 기본 모델을 설정하지 않았으면 Default 옵션은 아무것도 기록되지 않은 것처럼 확인됩니다.

147* Default 또는 `opusplan`을 `/model`에서 선택하면 기록된 선택은 변경되지 않습니다.147* Default 또는 `opusplan`을 `/model`에서 선택하면 기록된 선택은 변경되지 않습니다.

148 148 

149`/model`로 모델을 전환하면 전환은 [주 대화의 모델을 상속하는 서브에이전트](/docs/ko/sub-agents#choose-a-model)에도 도달합니다. Claude Code는 Claude가 시작할 때 세션이 사용 중인 모델에서 해당 모델을 확인하기 때문입니다. 연구 또는 테스트 실행을 하나에 위임하기 전에 Opus로 전환하면 해당 작업도 Opus에서 실행됩니다. 사용자 정의 서브에이전트를 더 작은 모델에 유지하려면 해당 정의에서 `model`을 설정합니다.149`/model`로 모델을 전환하면 전환은 [주 대화의 모델을 상속하는 서브에이전트](/docs/ko/sub-agents#choose-a-model)에도 도달합니다. Claude Code는 Claude가 서브에이전트를 시작할 때 세션이 사용 중인 모델에서 해당 모델을 확인하기 때문입니다. Claude가 연구 또는 테스트 실행을 서브에이전트 중 하나에 위임하기 전에 Opus로 전환하면 해당 작업도 Opus에서 실행됩니다. 사용자 정의 서브에이전트를 더 작은 모델에 유지하려면 해당 정의에서 `model`을 설정합니다.

150 150 

151[비대화형 모드](/docs/ko/headless)에서 `-p` 플래그를 사용하여 `/model`로 모델을 설정하면 현재 세션에만 적용되며 기본값으로 저장되지 않습니다. `/model`은 해당 모드에서 Claude Code v2.1.205 이상이 필요합니다. 프로젝트 및 관리 설정은 여전히 우선순위를 가지며 다음 시작 시 다시 적용됩니다. [조직 기본 모델](#organization-default-model)이 관리자에 의해 사용자 선택을 재정의하도록 구성된 경우 다음 시작 시 다시 적용됩니다.151[비대화형 모드](/docs/ko/headless)에서 `-p` 플래그를 사용하여 `/model`로 모델을 설정하면 현재 세션에만 적용되며 기본값으로 저장되지 않습니다. `/model`은 해당 모드에서 Claude Code v2.1.205 이상이 필요합니다. 프로젝트 및 관리형 설정은 여전히 우선 적용되며 다음 시작 시 다시 적용됩니다. 관리자가 사용자 선택을 재정의하도록 구성한 [조직 기본 모델](#organization-default-model)도 다음 시작 시 다시 적용됩니다.

152 152 

153v2.1.144부터 v2.1.152까지 `/model`은 현재 세션에만 적용되었고 선택기의 `d`는 기본값을 저장했습니다.153v2.1.144부터 v2.1.152까지 `/model`은 현재 세션에만 적용되었고 선택기의 `d`는 기본값을 저장했습니다.

154 154 

155`--model` 플래그 및 `ANTHROPIC_MODEL` 환경 변수는 시작한 세션에만 적용됩니다. 동시에 다른 터미널에서 다른 모델을 실행하려면 `/model`로 전환하는 대신 각각 자신의 `--model` 플래그로 시작합니다.155`--model` 플래그 및 `ANTHROPIC_MODEL` 환경 변수는 시작한 세션에만 적용됩니다. 동시에 다른 터미널에서 다른 모델을 실행하려면 `/model`로 전환하는 대신 각각 자신의 `--model` 플래그로 시작합니다.

156 156 

157`/model` 선택기의 가격은 Claude Code가 Anthropic API와 직접 또는 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 프록시할 때 나타나며, 행의 가격은 해당 행이 선택하는 모델의 가격입니다. Amazon Bedrock과 같은 [타사 공급자](/docs/ko/third-party-integrations)에서 및 [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway)에서 공급자 또는 게이트웨이가 지불하는 금액을 결정하므로 선택기 행은 가격을 표시하지 않습니다. 가격은 표시 레이블일 뿐이며, 행이 선택하는 모델이나 공급자가 청구하는 금액에 영향을 주지 않습니다. v2.1.206 이전에는 [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws) 및 게이트웨이 세션이 Anthropic 정가를 표시했으며, 행은 선택하는 모델과 다른 모델의 가격을 표시할 수 있었습니다.157`/model` 선택기의 가격은 Claude Code가 Anthropic API와 직접 또는 이를 프록시하는 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 통신할 때 나타나며, 행의 가격은 해당 행이 선택하는 모델의 가격입니다. Amazon Bedrock과 같은 [타사 공급자](/docs/ko/third-party-integrations) 및 [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway)에서는 공급자 또는 게이트웨이가 지불하는 금액을 결정하므로 선택기 행은 가격을 표시하지 않습니다. 가격은 표시 레이블일 뿐이며, 행이 선택하는 모델이나 공급자가 청구하는 금액에 영향을 주지 않습니다. v2.1.206 이전에는 [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws) 및 게이트웨이 세션이 Anthropic 정가를 표시했으며, 행은 선택하는 모델과 다른 모델의 가격을 표시할 수 있었습니다.

158 158 

159`claude --resume`, `--continue` 또는 `/resume` 선택기로 시작된 재개된 세션은 트랜스크립트가 저장되었을 때 사용 중이던 모델을 유지합니다. 복원된 모델이 폐기되었거나 [`availableModels`](#restrict-model-selection)에 의해 제외되면 세션은 정상 우선순위 순서로 폴백됩니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry와 같이 Anthropic 모델 ID 대신 공급자별 배포 ID를 사용하는 공급자에서는 트랜스크립트 모델이 전혀 복원되지 않으며 세션은 정상 우선순위 순서를 통해 모델을 확인합니다.159`claude --resume`, `--continue` 또는 `/resume` 선택기로 시작된 재개된 세션은 트랜스크립트가 저장되었을 때 사용 중이던 모델을 유지합니다. 복원된 모델이 폐기되었거나 [`availableModels`](#restrict-model-selection)에 의해 제외되면 세션은 정상 우선순위 순서로 폴백됩니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry와 같이 Anthropic 모델 ID 대신 공급자별 배포 ID를 사용하는 공급자에서는 트랜스크립트 모델이 전혀 복원되지 않으며 세션은 정상 우선순위 순서를 통해 모델을 확인합니다.

160 160 

161`model` 설정이 `haiku`인 경우, Haiku 모델에서 저장된 세션은 현재 `haiku`가 확인되는 모델에서 재개됩니다. 예를 들어 `haiku`가 Haiku 5.5로 확인되면, Haiku 4.5에서 저장된 세션은 Haiku 5.5에서 재개됩니다.161`model` 설정이 `haiku`인 경우, Haiku 모델에서 저장된 세션은 현재 `haiku`가 확인되는 모델에서 재개됩니다. 예를 들어 `haiku`가 Haiku 5.5로 확인되면, Haiku 4.5에서 저장된 세션은 Haiku 5.5에서 재개됩니다.

162 162 

163새 시작을 위해 `--model` 또는 `ANTHROPIC_MODEL`로 선택한 모델은 여전히 복원된 모델보다 우선순위를 가집니다. v2.1.195부터 [`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables) 패밀리 변수도 마찬가지입니다. [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions)도 해당 섹션에 나열된 조건 하에서 가능합니다.163새 시작을 위해 `--model` 또는 `ANTHROPIC_MODEL`로 선택한 모델은 여전히 복원된 모델보다 우선 적용됩니다. v2.1.195부터 [`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables) 패밀리 변수도 마찬가지입니다. [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions)도 해당 섹션에 나열된 조건 하에서 가능합니다.

164 164 

165시작 시 활성 모델이 자신의 선택이 아닌 프로젝트 또는 관리 설정에서 나오면 시작 헤더는 어떤 설정 파일이 설정했는지 표시합니다. `/model`을 실행하여 재정의합니다. 프로젝트 또는 관리 설정은 다음 시작 시 다시 적용됩니다. Claude Code를 포함하고 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ko/env-vars)를 설정하는 플랫폼에서 호스트의 모델 구성은 관리 모델 설정보다 우선순위를 가지며, 호스트가 자신의 것을 제공하지 않으면 관리 `availableModels` 허용 목록이 적용됩니다. [관리 설정 우선순위의 예외](/docs/ko/settings#exceptions-to-managed-settings-precedence)는 호스트가 재정의하는 키 및 변수를 나타냅니다.165시작 시 활성 모델이 자신의 선택이 아닌 프로젝트 또는 관리형 설정에서 나오면 시작 헤더는 어떤 설정 파일이 설정했는지 표시합니다. `/model`을 실행하여 재정의합니다. 프로젝트 또는 관리형 설정은 다음 시작 시 다시 적용됩니다. Claude Code를 포함하고 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ko/env-vars)를 설정하는 플랫폼에서 호스트의 모델 구성은 관리형 모델 설정보다 우선 적용되며, 호스트가 자체 허용 목록을 제공하지 않으면 관리형 `availableModels` 허용 목록이 계속 적용됩니다. [관리형 설정 우선순위의 예외](/docs/ko/settings#exceptions-to-managed-settings-precedence)는 호스트가 재정의하는 키 및 변수를 나타냅니다.

166 166 

167조직이 [PreModelSwitch 훅](/docs/ko/hooks#premodelswitch)을 구성하면 요청된 전환이 적용되기 전에 실행되며 이를 차단하거나 확인을 요청할 수 있습니다.167사용자 또는 조직이 [PreModelSwitch 훅](/docs/ko/hooks#premodelswitch)을 구성하면 요청된 전환이 적용되기 전에 실행되며 이를 차단하거나 확인을 요청할 수 있습니다.

168 168 

169Claude Code가 조직의 [관리 플러그인](/docs/ko/settings-reference#enabledplugins)이 제공하는 PreModelSwitch 훅을 알 수 없는 경우(예: 관리 플러그인이 로드되지 않음), 확인되지 않은 상태로 적용하는 대신 전환을 거부하며, 각 새 시도에서 다시 확인합니다. [PreModelSwitch 훅에 의해 모델 전환이 차단되었습니다](/docs/ko/errors#model-switch-was-blocked-by-a-premodelswitch-hook)를 참조하여 메시지 및 복구를 확인합니다.169Claude Code가 조직의 [관리형 플러그인](/docs/ko/settings-reference#enabledplugins)이 제공하는 PreModelSwitch 훅을 알 수 없는 경우(예: 관리형 플러그인이 로드되지 않음), 확인되지 않은 상태로 적용하는 대신 전환을 거부하며, 각 새 시도에서 다시 확인합니다. [PreModelSwitch 훅에 의해 모델 전환이 차단되었습니다](/docs/ko/errors#model-switch-was-blocked-by-a-premodelswitch-hook)를 참조하여 메시지 및 복구를 확인합니다.

170 170 

171[Agent SDK](/docs/ko/agent-sdk/overview) `setModel()` 메서드를 통해 모델을 전환하거나 [Desktop 앱](/docs/ko/desktop)과 같은 앱에서, 또는 [Remote Control](/docs/ko/remote-control)을 통해 연결된 장치에서 Claude Code는 값을 전환할 때 확인합니다:171[Agent SDK](/docs/ko/agent-sdk/overview) `setModel()` 메서드를 통해 모델을 전환하거나 [Desktop 앱](/docs/ko/desktop)과 같은 앱에서, 또는 [Remote Control](/docs/ko/remote-control)을 통해 연결된 장치에서 Claude Code는 값을 전환할 때 확인합니다:

172 172 


177 177 

178`--model` 플래그, `ANTHROPIC_MODEL` 환경 변수 또는 `model` 설정으로 모델을 설정하면 Claude Code는 미리 확인하지 않으며, 잘못 입력된 값은 첫 번째 요청에서 [선택된 모델에 문제가 있습니다](/docs/ko/errors#theres-an-issue-with-the-selected-model)를 생성합니다.178`--model` 플래그, `ANTHROPIC_MODEL` 환경 변수 또는 `model` 설정으로 모델을 설정하면 Claude Code는 미리 확인하지 않으며, 잘못 입력된 값은 첫 번째 요청에서 [선택된 모델에 문제가 있습니다](/docs/ko/errors#theres-an-issue-with-the-selected-model)를 생성합니다.

179 179 

180요청된 모델에 예정된 폐기 날짜가 있거나 자동으로 최신 버전으로 다시 매핑되면 Claude Code는 요청된 모델의 이름을 지정하는 경고를 표시합니다. 대화형 세션은 시작 알림으로 표시합니다. v2.1.182부터 기본 텍스트 출력 형식을 사용할 때 [비대화형 모드](/docs/ko/headless)에서 동일한 경고가 stderr에 작성됩니다. 확인은 또한 [서브에이전트 프론트매터](/docs/ko/sub-agents)에 설정된 `model`을 다룹니다. stderr 경고는 `--output-format json` 및 `stream-json`에 대해 억제됩니다. [결과 메시지](/docs/ko/headless#get-structured-output)의 `modelUsage` 필드에서 실제 모델을 읽습니다.180요청된 모델에 예정된 폐기 날짜가 있거나 자동으로 최신 버전으로 다시 매핑되면 Claude Code는 요청된 모델의 이름을 지정하는 경고를 표시합니다. 대화형 세션은 시작 알림으로 표시합니다. v2.1.182부터 기본 텍스트 출력 형식을 사용할 때 [비대화형 모드](/docs/ko/headless)에서 동일한 경고가 stderr에 작성됩니다. 확인은 또한 [서브에이전트 frontmatter](/docs/ko/sub-agents)에 설정된 `model`을 다룹니다. stderr 경고는 `--output-format json` 및 `stream-json`에 대해 억제됩니다. 대신 [결과 메시지](/docs/ko/headless#get-structured-output)의 `modelUsage` 필드에서 실제 모델을 읽습니다.

181 181 

182예를 들어 Opus에서 세션을 시작합니다:182예를 들어 Opus에서 세션을 시작합니다:

183 183 


212 212 

213* `--model` 플래그213* `--model` 플래그

214* `ANTHROPIC_MODEL`214* `ANTHROPIC_MODEL`

215* 모든 설정 파일의 `model` 값(예: `/model`로 저장한 선택 포함)215* 모든 설정 파일의 `model` 값(`/model`로 저장한 선택 포함)

216* [조직 기본 모델](#organization-default-model)216* [조직 기본 모델](#organization-default-model)

217 217 

218`/model`로 저장한 선택은 나중의 시작에서도 변수보다 우선순위를 가집니다. 대신 `ANTHROPIC_MODEL`이 설정되면 Claude Code는 `/model`로 저장한 것에 관계없이 다음 시작에서 해당 변수의 모델로 돌아갑니다.218`/model`로 저장한 선택은 이후 시작에서도 변수보다 우선 적용됩니다. 대신 `ANTHROPIC_MODEL`이 설정되면 Claude Code는 `/model`로 저장한 것에 관계없이 다음 시작에서 해당 변수의 모델로 돌아갑니다.

219 219 

220Claude Code는 또한 조직 기본 모델이 적용되지 않으면 Default 옵션을 변수의 모델로 확인합니다. Default 옵션이 변수의 모델로 확인되면 `/model` 선택기의 Default 행은 ANTHROPIC\_DEFAULT\_MODEL로 설정된 레이블을 표시합니다.220Claude Code는 또한 조직 기본 모델이 적용되지 않으면 Default 옵션을 변수의 모델로 확인합니다. Default 옵션이 변수의 모델로 확인되면 `/model` 선택기의 Default 행은 Set by ANTHROPIC\_DEFAULT\_MODEL 레이블을 표시합니다.

221 221 

222Claude Code는 이 경우들에서 변수를 무시하며, Default 옵션은 설정하지 않은 것처럼 확인됩니다:222Claude Code는 이 경우들에서 변수를 무시하며, Default 옵션은 설정하지 않은 것처럼 확인됩니다:

223 223 


226* 조직의 [모델 제한](#restrict-model-selection)이 모델을 제외합니다226* 조직의 [모델 제한](#restrict-model-selection)이 모델을 제외합니다

227* 모델을 계정에서 사용할 수 없습니다227* 모델을 계정에서 사용할 수 없습니다

228 228 

229새 세션이 변수의 모델에서 시작될 때 `claude --resume`, `--continue` 또는 `/resume` 선택기로 재개한 세션도 시작됩니다. Claude Code는 해당 세션의 트랜스크립트에 저장된 모델을 복원하지 않습니다. 그렇지 않으면 Claude Code는 [세션을 재개할 때](#setting-your-model) 변수를 사용하지 않습니다.229새 세션이 변수의 모델에서 시작되는 경우, `claude --resume`, `--continue` 또는 `/resume` 선택기로 재개한 세션도 해당 모델에서 시작됩니다. Claude Code는 해당 세션의 트랜스크립트에 저장된 모델을 복원하지 않습니다. 그렇지 않으면 Claude Code는 [세션을 재개할 때](#setting-your-model) 변수를 사용하지 않습니다.

230 230 

231<h4 id="a-new-session-starts-on-a-different-model-than-you-picked">231<h4 id="a-new-session-starts-on-a-different-model-than-you-picked">

232 새 세션이 선택한 것과 다른 모델에서 시작됩니다232 새 세션이 선택한 것과 다른 모델에서 시작됩니다

233</h4>233</h4>

234 234 

235`/model`로 모델을 선택하고 다음 세션이 다른 것에서 시작되면 이것이 일반적인 원인입니다:235`/model`로 모델을 선택했는데 다음 세션이 다른 모델에서 시작되는 경우, 일반적인 원인은 다음과 같습니다:

236 236 

237* **한 세션에만 선택했습니다.** 선택기에서 `s`를 누르고, `--model`로 시작하고, 비대화형 모드에서 `/model`을 실행하는 것은 모두 현재 세션에 적용되며 저장된 기본값을 그대로 둡니다.237* **한 세션에만 선택했습니다.** 선택기에서 `s`를 누르고, `--model`로 시작하고, 비대화형 모드에서 `/model`을 실행하는 것은 모두 현재 세션에 적용되며 저장된 기본값을 그대로 둡니다.

238* **더 높은 우선순위를 가진 것이 모델을 설정합니다.** 프로젝트 또는 관리 설정의 `model` 값, 셸의 `ANTHROPIC_MODEL`, 또는 관리자가 사용자 선택을 재정의하도록 설정한 [조직 기본값](#organization-default-model)은 모든 시작에서 다시 적용됩니다. `/model` 선택은 여전히 저장됩니다. 우선순위가 높습니다. 프로젝트 또는 관리 설정이 모델을 설정하면 시작 헤더가 파일의 이름을 지정합니다.238* **더 높은 우선순위를 가진 것이 모델을 설정합니다.** 프로젝트 또는 관리형 설정의 `model` 값, 셸의 `ANTHROPIC_MODEL`, 또는 관리자가 사용자 선택을 재정의하도록 설정한 [조직 기본값](#organization-default-model)은 모든 시작에서 다시 적용됩니다. `/model` 선택은 여전히 저장되어 있으며, 더 높은 우선순위의 설정에 밀릴 뿐입니다. 프로젝트 또는 관리형 설정이 모델을 설정하면 시작 헤더가 파일의 이름을 표시합니다.

239* **Claude Code가 선택을 저장할 수 없었습니다.** `/model`은 `~/.claude/settings.json`에 `model`을 작성합니다. 다른 도구가 생성하거나 읽기 전용 복사본에 연결하는 경우와 같이 해당 파일에 쓸 수 없으면 선택한 모델은 세션 동안 지속되고 다음 시작은 이전 값을 읽습니다. 파일을 생성하는 도구에서 `model`을 설정하거나 파일을 쓰기 가능하게 만듭니다. [Claude Code에서 만든 변경 사항이 새 세션에서 손실됩니다](/docs/ko/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions)를 참조하십시오.239* **Claude Code가 선택을 저장할 수 없었습니다.** `/model`은 `~/.claude/settings.json`에 `model`을 작성합니다. 다른 도구가 생성하거나 읽기 전용 복사본에 연결하는 경우와 같이 해당 파일에 쓸 수 없으면 선택한 모델은 세션 동안 지속되고 다음 시작은 이전 값을 읽습니다. 파일을 생성하는 도구에서 `model`을 설정하거나 파일을 쓰기 가능하게 만듭니다. [Claude Code에서 만든 변경 사항이 새 세션에서 손실됩니다](/docs/ko/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions)를 참조하십시오.

240* **세션을 재개했습니다.** `claude --resume` 또는 `--continue`로 재개한 세션은 일반적으로 현재 기본값이 아닌 [사용 중이던 모델을 유지합니다](#setting-your-model).240* **세션을 재개했습니다.** `claude --resume` 또는 `--continue`로 재개한 세션은 일반적으로 현재 기본값이 아닌 [사용 중이던 모델을 유지합니다](#setting-your-model).

241 241 


310* [Claude Tag](https://claude.com/docs/claude-tag/overview) 세션은 클라우드 환경에서 실행되지만 서버 관리 설정을 수신하지 않습니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments)에서는 여전히 러너 이미지의 관리형 설정 파일을 읽습니다. 이러한 세션의 모델을 설정하려면 Claude Tag 관리자 가이드의 [범위에 대한 모델 선택](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope)을 참조하세요.310* [Claude Tag](https://claude.com/docs/claude-tag/overview) 세션은 클라우드 환경에서 실행되지만 서버 관리 설정을 수신하지 않습니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments)에서는 여전히 러너 이미지의 관리형 설정 파일을 읽습니다. 이러한 세션의 모델을 설정하려면 Claude Tag 관리자 가이드의 [범위에 대한 모델 선택](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope)을 참조하세요.

311* Cowork(Claude 데스크톱 앱의 에이전트 작업 탭)는 Claude Code에서 세션을 실행하지만, 설계상 claude.ai 관리 콘솔에서 서버 관리 설정을 수신하지 않습니다. 서버 관리 설정의 `availableModels` 목록이 비어있지 않고 사용자가 목록 외부의 모델을 선택하면, 서버는 원격 Cowork 세션에 대해 해당 모델을 거부합니다. 관리형 설정 파일은 세션이 실행되는 위치에 있을 때 Cowork 세션에 적용됩니다. 원격 Cowork 세션은 Anthropic 관리 VM에서 실행되며, 여기서 장치 배포 파일은 없습니다.311* Cowork(Claude 데스크톱 앱의 에이전트 작업 탭)는 Claude Code에서 세션을 실행하지만, 설계상 claude.ai 관리 콘솔에서 서버 관리 설정을 수신하지 않습니다. 서버 관리 설정의 `availableModels` 목록이 비어있지 않고 사용자가 목록 외부의 모델을 선택하면, 서버는 원격 Cowork 세션에 대해 해당 모델을 거부합니다. 관리형 설정 파일은 세션이 실행되는 위치에 있을 때 Cowork 세션에 적용됩니다. 원격 Cowork 세션은 Anthropic 관리 VM에서 실행되며, 여기서 장치 배포 파일은 없습니다.

312* [Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, 그리고 Claude Platform on AWS](/docs/ko/claude-platform-on-aws)와 같은 [제3자 제공자](/docs/ko/server-managed-settings#platform-availability)의 세션은 서버 관리 설정을 수신하지 않으므로, 허용 목록을 MDM 또는 관리형 설정 파일을 통해 전달합니다.312* [Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, 그리고 Claude Platform on AWS](/docs/ko/claude-platform-on-aws)와 같은 [제3자 제공자](/docs/ko/server-managed-settings#platform-availability)의 세션은 서버 관리 설정을 수신하지 않으므로, 허용 목록을 MDM 또는 관리형 설정 파일을 통해 전달합니다.

313* 서버 관리 전달은 또한 세션이 [적격 로그인 또는 키](/docs/ko/server-managed-settings#platform-availability)로 인증하도록 요구합니다. [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 스크립트를 통해서만 키를 생성하는 플릿은 MDM 또는 관리형 설정 파일을 통해 허용 목록을 전달해야 합니다.313* 관리 콘솔을 통한 전달은 또한 세션이 조직에 대한 [적격 로그인](/docs/ko/server-managed-settings#platform-availability) 또는 조직에 대해 발급된 OAuth 토큰으로 설정을 가져와야 합니다. 직접 구성했든 [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 스크립트로 생성했든 API 키로 인증하는 플릿의 경우, MDM 또는 관리형 설정 파일을 통해 허용 목록을 전달하세요.

314* 데스크톱 Code 탭은 또한 [SSH 세션](/docs/ko/desktop#ssh-sessions)을 호스팅하며, 이는 실행되는 원격 호스트에서 관리형 설정 파일을 읽습니다. [데스크톱 관리형 설정](/docs/ko/desktop#managed-settings)을 참조하세요.314* 데스크톱 Code 탭은 또한 [SSH 세션](/docs/ko/desktop#ssh-sessions)을 호스팅하며, 이는 실행되는 원격 호스트에서 관리형 설정 파일을 읽습니다. [데스크톱 관리형 설정](/docs/ko/desktop#managed-settings)을 참조하세요.

315* claude.ai 및 데스크톱 앱의 모델 선택기는 조직의 허용 목록에 의해 제외된 모델을 숨기거나 회색으로 표시합니다. 선택기 상태는 사용자를 위한 편의입니다. 허용 목록을 적용하지 않습니다.315* claude.ai 및 데스크톱 앱의 모델 선택기는 조직의 허용 목록에 의해 제외된 모델을 숨기거나 회색으로 표시합니다. 선택기 상태는 사용자를 위한 편의입니다. 허용 목록을 적용하지 않습니다.

316 316 


500 500 

501관리자가 [조직 기본 모델](#organization-default-model)을 설정한 경우, `default`는 위의 계정 유형 기본값 대신 해당 모델로 확인됩니다. Claude Code v2.1.196 이상이 필요합니다. `default`는 [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions)로 설정한 모델로도 확인될 수 있으며, 해당 섹션에 나열된 조건 하에서 또는 [계정에 기록된](#setting-your-model) 모델로 확인될 수 있습니다.501관리자가 [조직 기본 모델](#organization-default-model)을 설정한 경우, `default`는 위의 계정 유형 기본값 대신 해당 모델로 확인됩니다. Claude Code v2.1.196 이상이 필요합니다. `default`는 [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions)로 설정한 모델로도 확인될 수 있으며, 해당 섹션에 나열된 조건 하에서 또는 [계정에 기록된](#setting-your-model) 모델로 확인될 수 있습니다.

502 502 

503계정에 아무것도 기록되지 않았을 때, 관리되는 설정이 [Default 모델에 대한 허용 목록을 적용](#enforce-the-allowlist-for-the-default-model)하고, 계정 유형 기본값이 `availableModels`에 없으면, `default`는 위의 계정 유형 기본값 대신 적용된 Default로 확인됩니다. 조직 기본값과 적용이 모두 적용될 때, 조직 기본값이 먼저 계정 유형 기본값을 대체하고 적용이 이에 적용됩니다: 허용 목록에 있는 조직 기본값은 유지되고, 목록 외의 값은 적용된 Default로 확인됩니다.503계정에 아무것도 기록되지 않았을 때, 관리형 설정이 [Default 모델에 대한 허용 목록을 적용](#enforce-the-allowlist-for-the-default-model)하고, 계정 유형 기본값이 `availableModels`에 없으면, `default`는 위의 계정 유형 기본값 대신 적용된 Default로 확인됩니다. 조직 기본값과 적용이 모두 적용될 때, 조직 기본값이 먼저 계정 유형 기본값을 대체하고 적용이 이에 적용됩니다: 허용 목록에 있는 조직 기본값은 유지되고, 목록 외의 값은 적용된 Default로 확인됩니다.

504 504 

505Fable 모델은 어떤 플랜이나 제공자에서도 계정 유형 기본값이 아닙니다. `/model`로 선택하면 사용자 설정에서 선택된 모델로 저장되므로, 이후 세션이 이 모델에서 시작됩니다. v2.1.257에서 Claude Code가 저장된 Fable 5 선택에 대해 수행하는 일회성 변경의 경우, [Fable 작업](#work-with-fable)을 참조하세요.505Fable 모델은 어떤 플랜이나 제공자에서도 계정 유형 기본값이 아닙니다. `/model`로 선택하면 사용자 설정에서 선택된 모델로 저장되므로, 이후 세션이 이 모델에서 시작됩니다. v2.1.257에서 Claude Code가 저장된 Fable 5 선택에 대해 수행하는 일회성 변경의 경우, [Fable 작업](#work-with-fable)을 참조하세요.

506 506 


510 510 

511`opusplan` 모델 별칭은 자동화된 하이브리드 접근 방식을 제공합니다:511`opusplan` 모델 별칭은 자동화된 하이브리드 접근 방식을 제공합니다:

512 512 

513* **계획 모드에서**: 복잡한 추론 및 아키텍처 결정을 위해 `opus`를 사용합니다513* **플랜 모드에서**: 복잡한 추론 및 아키텍처 결정을 위해 `opus`를 사용합니다

514* **실행 모드에서**: 코드 생성 및 구현을 위해 자동으로 `sonnet`으로 전환합니다514* **실행 모드에서**: 코드 생성 및 구현을 위해 자동으로 `sonnet`으로 전환합니다

515 515 

516이는 계획을 위한 Opus의 추론과 실행을 위한 Sonnet의 효율성을 결합합니다.516이는 계획을 위한 Opus의 추론과 실행을 위한 Sonnet의 효율성을 결합합니다.

517 517 

518계획 모드 Opus 단계는 `opus` 모델 설정과 동일한 컨텍스트 윈도우를 사용하고, 실행 단계는 `sonnet`과 동일한 윈도우를 사용합니다. `opus`와 `sonnet`이 [1M 컨텍스트 윈도우](#extended-context)로 기본 실행되는 모델로 확인될 때, Anthropic API의 현재 모델처럼, 두 단계 모두 이를 사용하여 실행됩니다. 이들이 그렇지 않은 경우 두 단계 모두에 대해 1M 컨텍스트를 요청하려면, [모델을 설정](#setting-your-model)하여 `opusplan[1m]`으로 설정하세요. 예를 들어 `/model opusplan[1m]`을 사용합니다. 이를 `/model`로 설정하려면 Claude Code v2.1.265 이상이 필요합니다. 이전 버전에서는 `--model` 플래그 또는 `model` 설정을 대신 사용하세요.518플랜 모드 Opus 단계는 `opus` 모델 설정과 동일한 컨텍스트 윈도우를 사용하고, 실행 단계는 `sonnet`과 동일한 윈도우를 사용합니다. `opus`와 `sonnet`이 [1M 컨텍스트 윈도우](#extended-context)로 기본 실행되는 모델로 확인될 때, Anthropic API의 현재 모델처럼, 두 단계 모두 이를 사용하여 실행됩니다. 이들이 그렇지 않은 경우 두 단계 모두에 대해 1M 컨텍스트를 요청하려면, [모델을 설정](#setting-your-model)하여 `opusplan[1m]`으로 설정하세요. 예를 들어 `/model opusplan[1m]`을 사용합니다. 이를 `/model`로 설정하려면 Claude Code v2.1.265 이상이 필요합니다. 이전 버전에서는 `--model` 플래그 또는 `model` 설정을 대신 사용하세요.

519 519 

520[`availableModels`](#restrict-model-selection)이 최신 Opus를 제외하지만 이전 버전(예: `["sonnet", "claude-opus-4-6"]`)을 허용할 때, `opusplan`은 계획을 위해 허용된 최신 Opus를 사용하고 모든 Opus가 제외될 때만 Sonnet에만 유지됩니다. 계획 모드에서 일반적으로 Sonnet으로 업그레이드할 Haiku 세션은 마찬가지로 허용된 최신 Sonnet을 사용하고, 모든 Sonnet이 제외될 때만 Haiku에만 유지됩니다. v2.1.205 이전에는 계획 모드가 허용 목록이 이전 버전을 허용했을 때에도 업그레이드 제품군의 최신 버전이 제외될 때마다 세션의 모델에 유지되었습니다.520[`availableModels`](#restrict-model-selection)이 최신 Opus를 제외하지만 이전 버전(예: `["sonnet", "claude-opus-4-6"]`)을 허용할 때, `opusplan`은 계획을 위해 허용된 최신 Opus를 사용하고 모든 Opus가 제외될 때만 Sonnet에 유지됩니다. 플랜 모드에서 일반적으로 Sonnet으로 업그레이드할 Haiku 세션은 마찬가지로 허용된 최신 Sonnet을 사용하고, 모든 Sonnet이 제외될 때만 Haiku에 유지됩니다. v2.1.205 이전에는 플랜 모드가 허용 목록이 이전 버전을 허용했을 때에도 업그레이드 제품군의 최신 버전이 제외될 때마다 세션의 모델에 유지되었습니다.

521 521 

522이전 허용 버전의 대체는 Anthropic API 및 [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws)에 적용됩니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 및 Mantle에서는 제공자별 모델 ID를 사용하는 배포이므로, 계획 모드는 업그레이드 모델이 제외될 때마다 세션의 모델에 유지됩니다.522이전 허용 버전의 대체는 Anthropic API 및 [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws)에 적용됩니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 및 Mantle에서는 제공자별 모델 ID를 사용하는 배포이므로, 플랜 모드는 업그레이드 모델이 제외될 때마다 세션의 모델에 유지됩니다.

523 523 

524Claude가 계획 경계에서 전환하는 대신 작업 중간에 두 번째 모델을 참조할 시기를 결정하는 하이브리드 접근 방식의 경우, [advisor 도구](/docs/ko/advisor)를 참조하세요.524Claude가 계획 경계에서 전환하는 대신 작업 중간에 두 번째 모델을 참조할 시기를 결정하는 하이브리드 접근 방식의 경우, [advisor 도구](/docs/ko/advisor)를 참조하세요.

525 525 


552요청이 폴백될 때, Claude Code는 하나가 이를 수락할 때까지 순서대로 각 항목을 시도합니다. 설정에 고정된 폐기된 모델과 같이 도달할 수 없는 항목도 동일한 방식으로 다음 항목으로 폴백됩니다. Claude Code는 해당 이동을 시작하기 전에 두 가지 종류의 항목을 제거합니다:552요청이 폴백될 때, Claude Code는 하나가 이를 수락할 때까지 순서대로 각 항목을 시도합니다. 설정에 고정된 폐기된 모델과 같이 도달할 수 없는 항목도 동일한 방식으로 다음 항목으로 폴백됩니다. Claude Code는 해당 이동을 시작하기 전에 두 가지 종류의 항목을 제거합니다:

553 553 

554* **허용 목록 외**: Claude Code는 체인을 읽을 때 [`availableModels`](#restrict-model-selection)에 의해 허용되지 않는 항목을 삭제합니다.554* **허용 목록 외**: Claude Code는 체인을 읽을 때 [`availableModels`](#restrict-model-selection)에 의해 허용되지 않는 항목을 삭제합니다.

555* **압축 중 더 작은 컨텍스트 윈도우**: 체인은 [압축](/docs/ko/context-window#what-survives-compaction)도 포함하지만, Claude Code는 기본 모델보다 더 작은 컨텍스트 윈도우를 가진 모델로 폴백하지 않습니다. 요약이 먼저 대화의 일부를 차단하기 때문입니다. 모든 폴백이 더 작으면, 압축은 원래 오류를 표시하고 재시도할 수 있습니다.555* **압축 중 더 작은 컨텍스트 윈도우**: 체인은 [압축](/docs/ko/context-window#what-survives-compaction)도 포함하지만, Claude Code는 기본 모델보다 더 작은 컨텍스트 윈도우를 가진 모델로 폴백하지 않습니다. 그곳에서 요약하면 대화의 일부가 먼저 잘리기 때문입니다. 모든 폴백이 더 작으면, 압축은 원래 오류를 표시하고 재시도할 수 있습니다.

556 556 

557Claude Code는 [subagents](/docs/ko/sub-agents)에도 체인을 적용합니다. subagent의 요청이 폴백될 때, Claude Code는 순서대로 구성된 폴백 모델을 시도하고, subagent는 요청을 수락하는 모델에서 계속됩니다. 세션의 모델은 변경되지 않습니다. v2.1.247 이전에는 체인이 포함하는 실패가 subagent를 종료했습니다.557Claude Code는 [서브에이전트](/docs/ko/sub-agents)에도 체인을 적용합니다. 서브에이전트의 요청이 폴백될 때, Claude Code는 순서대로 구성된 폴백 모델을 시도하고, 서브에이전트는 요청을 수락하는 모델에서 계속됩니다. 세션의 모델은 변경되지 않습니다. v2.1.247 이전에는 체인이 포함하는 실패가 서브에이전트를 종료했습니다.

558 558 

559<h3 id="automatic-model-fallback">559<h3 id="automatic-model-fallback">

560 자동 모델 폴백560 자동 모델 폴백


562 562 

563이 섹션은 Fable 모델, Opus 5.5, Sonnet 5.5 및 Opus 5의 콘텐츠 기반 폴백을 다룹니다. 모델이 과부하 상태이거나 사용할 수 없을 때의 가용성 기반 폴백의 경우, [폴백 모델 체인](#fallback-model-chains)을 참조하세요.563이 섹션은 Fable 모델, Opus 5.5, Sonnet 5.5 및 Opus 5의 콘텐츠 기반 폴백을 다룹니다. 모델이 과부하 상태이거나 사용할 수 없을 때의 가용성 기반 폴백의 경우, [폴백 모델 체인](#fallback-model-chains)을 참조하세요.

564 564 

565Fable 모델, Opus 5.5, Sonnet 5.5 및 Opus 5는 안전 분류기로 실행되며, 이는 대부분 사이버 보안 및 생물학 콘텐츠에 플래그를 지정합니다. 분류기가 요청에 플래그를 지정하고 플래그된 카테고리에 폴백 모델이 있을 때, Claude Code는 해당 모델에서 요청을 다시 실행하고 트랜스크립트에 알림을 표시합니다. 이 두 카테고리의 경우, 폴백 모델은 어느 모델이 거부했는지에 따라 달라집니다:565Fable 모델, Opus 5.5, Sonnet 5.5 및 Opus 5는 안전 분류기로 실행되며, 이는 대부분 사이버 보안 및 생물학 콘텐츠에 플래그를 지정합니다. 이 두 카테고리의 경우, 폴백 모델은 어느 모델이 거부했는지에 따라 달라집니다:

566 566 

567* **Fable 5.1, Fable 5 및 Opus 5.5**: 생물학 플래그 요청은 Opus 5에서 다시 실행되고, 사이버 보안 플래그 요청은 Opus 4.8에서 다시 실행됩니다.567* **Fable 5.1, Fable 5 및 Opus 5.5**: 생물학 플래그 요청은 Opus 5에서 다시 실행되고, 사이버 보안 플래그 요청은 Opus 4.8에서 다시 실행됩니다.

568* **Sonnet 5.5**: 사이버 보안 플래그 요청은 Sonnet 5에서 다시 실행됩니다. 생물학 플래그 요청은 Sonnet 5.5에 생물학 폴백 모델이 없기 때문에 거부로 종료됩니다.568* **Sonnet 5.5**: 사이버 보안 플래그 요청은 Sonnet 5에서 다시 실행됩니다. 생물학 플래그 요청은 Sonnet 5.5에 생물학 폴백 모델이 없기 때문에 거부로 종료됩니다.


570 570 

571Amazon Bedrock, Google Cloud의 Agent Platform 및 Microsoft Foundry에서는 Claude Code가 배포의 모델 ID를 통해 이러한 대상을 확인합니다. [Bedrock, Agent Platform 및 Foundry에서 폴백 활성화](#enable-fallback-on-bedrock-agent-platform-and-foundry)를 참조하세요.571Amazon Bedrock, Google Cloud의 Agent Platform 및 Microsoft Foundry에서는 Claude Code가 배포의 모델 ID를 통해 이러한 대상을 확인합니다. [Bedrock, Agent Platform 및 Foundry에서 폴백 활성화](#enable-fallback-on-bedrock-agent-platform-and-foundry)를 참조하세요.

572 572 

573Claude Code가 플래그된 요청을 해당 카테고리의 폴백 모델로 전환하면, 그 모델에서 요청을 다시 실행합니다. 메인 대화에서는 트랜스크립트에 알림을 표시합니다. 먼저 확인 요청을 받으려면 [전환하기 전에 확인](#ask-before-switching)을 참조하세요.

574 

573폴백 후, 세션은 폴백 모델에서 계속됩니다. 원래 모델로 돌아가려면 [`/model`](#setting-your-model)을 실행하세요.575폴백 후, 세션은 폴백 모델에서 계속됩니다. 원래 모델로 돌아가려면 [`/model`](#setting-your-model)을 실행하세요.

574 576 

575카테고리 기반 폴백에는 Claude Code v2.1.219 이상이 필요합니다. v2.1.219 이전에는 모든 플래그된 Fable 5 요청이 제공자의 기본 Opus 모델에서 다시 실행되었고, Opus 5는 폴백 소스가 아니었습니다.577카테고리 기반 폴백에는 Claude Code v2.1.219 이상이 필요합니다. v2.1.219 이전에는 모든 플래그된 Fable 5 요청이 제공자의 기본 Opus 모델에서 다시 실행되었고, Opus 5는 폴백 소스가 아니었습니다.


580 폴백 후 effort 수준582 폴백 후 effort 수준

581</h4>583</h4>

582 584 

583Claude Code가 세션을 폴백 모델로 전환할 때, 해당 모델의 기본 effort 대신 플래그된 요청이 실행된 effort 수준을 유지합니다. 예를 들어, 기본값 `medium`으로 Opus 5.5에서 실행되던 세션이 Opus 4.8로 폴백되면, Opus 4.8의 기본값이 `high`이더라도 `medium`으로 유지됩니다.585Claude Code가 세션을 폴백 모델로 전환할 때, 플래그된 요청이 실행된 effort 수준을 유지합니다. 예를 들어, 기본값 `medium`으로 Opus 5.5에서 실행되던 세션이 Opus 4.8로 폴백되면, Opus 4.8의 기본값이 `high`이더라도 `medium`으로 유지됩니다.

584 586 

585다음과 같은 경우에는 다른 수준이 적용됩니다:587다음과 같은 경우에는 다른 수준이 적용됩니다:

586 588 

587* **설정 또는 조직 기본값**: 폴백 모델에 적용되는 설정의 수준이나 조직이 해당 모델에 설정한 기본 effort가 대신 적용됩니다.

588* **사용자의 직접 변경**: effort 수준을 선택하거나, `/model`에서 모델을 고르거나, 나중에 세션을 재개하면 플래그된 요청의 수준은 더 이상 이어지지 않습니다.589* **사용자의 직접 변경**: effort 수준을 선택하거나, `/model`에서 모델을 고르거나, 나중에 세션을 재개하면 플래그된 요청의 수준은 더 이상 이어지지 않습니다.

589* **스킬 effort**: 스킬의 `effort` frontmatter가 플래그된 요청에 설정한 수준은 해당 턴에 적용되며, 이후 턴은 [effort 확인 순서](#adjust-effort-level)가 폴백 모델에 부여하는 수준으로 실행됩니다.590* **스킬 effort**: 스킬의 `effort` frontmatter가 플래그된 요청에 설정한 수준은 해당 턴에 적용되며, 이후 턴은 [effort 확인 순서](#adjust-effort-level)가 폴백 모델에 부여하는 수준으로 실행됩니다.

590 591 

591세션 헤더는 모델 이름 옆에 적용 중인 수준을 표시합니다. 변경하려면 세션에서 `/effort`를 실행하세요.592세션에서 `/effort status`를 실행하여 적용 중인 수준을 확인하거나, `/effort`를 실행하여 변경하세요.

592 593 

593<h4 id="check-what-triggered-fallback">594<h4 id="check-what-triggered-fallback">

594 폴백을 트리거한 것 확인595 폴백을 트리거한 것 확인

595</h4>596</h4>

596 597 

597폴백은 CLAUDE.md 콘텐츠 및 git 상태와 같은 작업 공간 컨텍스트를 전달하는 첫 번째 요청 전에 세션의 첫 번째 요청에서 트리거될 수 있습니다. 보안 또는 생물학 자료를 포함하는 저장소는 해당 컨텍스트만으로 분류기를 트리거할 수 있습니다.598폴백은 특이한 내용을 보내기 전인 세션의 첫 번째 요청에서도 트리거될 수 있습니다. 첫 번째 요청에는 CLAUDE.md 콘텐츠 및 git 상태와 같은 워크스페이스 컨텍스트가 포함되기 때문입니다. 보안 또는 생물학 자료를 포함하는 저장소는 해당 컨텍스트만으로 분류기를 트리거할 수 있습니다.

598 599 

599사용자 정의가 트리거인지 확인하려면, `claude --safe-mode`로 세션을 시작하세요. 이는 CLAUDE.md, 스킬, MCP 서버 및 훅과 같은 사용자 정의를 비활성화합니다. Git 상태 및 디렉토리 이름은 사용자 정의가 아니며 여전히 포함됩니다.600사용자 정의가 트리거인지 확인하려면, `claude --safe-mode`로 세션을 시작하세요. 이는 CLAUDE.md, 스킬, MCP 서버 및 훅과 같은 사용자 정의를 비활성화합니다. Git 상태 및 디렉토리 이름은 사용자 정의가 아니며 여전히 포함됩니다.

600 601 

601<h4 id="ask-before-switching">602<h4 id="ask-before-switching">

602 전환하기 전에 요청603 전환하기 전에 확인

603</h4>604</h4>

604 605 

605요청이 플래그될 때마다 자동으로 전환하는 대신 어떤 일이 발생할지 결정하려면, `/config`를 실행하고 **메시지가 플래그될 때 모델 전환**을 끄거나, 설정 파일에서 [`switchModelsOnFlag`](/docs/ko/settings-reference#switchmodelsonflag)를 `false`로 설정하세요. 플래그된 요청은 두 가지 옵션으로 세션을 일시 중지합니다: 폴백 모델로 전환하거나, 프롬프트를 편집하고 현재 모델에서 재시도합니다.606요청이 플래그될 때마다 어떤 일이 발생할지 결정하려면, `/config`를 실행하고 **Switch models when a message is flagged**를 선택한 다음 **Ask each time**을 선택하세요. 설정 파일에서 [`switchModelsOnFlag`](/docs/ko/settings-reference#switchmodelsonflag)를 `false`로 설정할 수도 있습니다. 그러면 Claude Code는 모델을 전환하게 될 플래그된 요청에서 일시 중지하고 두 가지 옵션을 제공합니다: 폴백 모델로 전환하거나, 프롬프트를 편집하고 재시도합니다.

607 

608대화형 세션에서 플래그된 요청이 처음으로 모델을 전환하게 될 때, Claude Code는 이후부터 자동으로 전환할지 물을 수 있습니다. `switchModelsOnFlag`를 설정하지 않은 경우에만 묻고, 선택한 내용을 사용자 설정에 해당 키로 저장합니다.

609 

610대신 현재 모델에 머무르기를 선택하면, 저장되는 값은 **Ask each time**과 동일한 `false`입니다. 질문을 닫으면 Claude Code는 아무것도 저장하지 않으며, 다음에 플래그된 요청이 모델을 전환하게 될 때 다시 묻습니다.

606 611 

607일부 경우는 다르게 동작합니다:612**Ask each time**을 선택한 경우, 일부 경우는 다르게 동작합니다:

608 613 

609* 플래그된 카테고리에 폴백 모델이 없을 때(예: Opus 5 또는 Sonnet 5.5의 생물학 플래그), Claude Code는 프롬프트를 표시하지 않으며 요청은 거부로 종료됩니다.614* 플래그된 카테고리에 폴백 모델이 없을 때(예: Opus 5 또는 Sonnet 5.5의 생물학 플래그), Claude Code는 프롬프트를 표시하지 않으며 요청은 거부로 종료됩니다.

610* 두 모델이 동일한 요청에 플래그를 지정하면, 프롬프트를 편집하고 재시도하거나 새 세션을 시작할 수 있습니다.615* 두 모델이 동일한 요청에 플래그를 지정하면, 프롬프트를 편집하고 재시도하거나 새 세션을 시작할 수 있습니다.

611* 모바일 앱의 [클라우드 세션](/docs/ko/claude-code-on-the-web)에서는 편집 및 재시도가 지원되지 않습니다. 모델을 전환하거나 데스크톱 브라우저 또는 데스크톱 앱에서 세션을 계속하세요.616* 모바일 앱의 [클라우드 세션](/docs/ko/claude-code-on-the-web)에서는 편집 및 재시도가 지원되지 않습니다. 모델을 전환하거나 데스크톱 브라우저 또는 데스크톱 앱에서 세션을 계속하세요.

612* [비대화형 모드](/docs/ko/cli-reference#cli-flags) 및 프롬프트를 표시할 수 없는 SDK 통합에서는 플래그된 요청이 거부로 턴을 종료합니다.617* [비대화형 모드](/docs/ko/cli-reference#cli-flags) 및 프롬프트를 표시할 수 없는 SDK 통합에서는 플래그된 요청이 거부로 턴을 종료합니다.

618* [서브에이전트](/docs/ko/sub-agents)에서는 Claude Code가 프롬프트를 표시하지 않으며, 모델을 전환하게 될 플래그된 요청은 폴백 모델에서 다시 실행됩니다.

613* 폴백 대상이 [`availableModels`](#restrict-model-selection)에 의해 차단될 때, Claude Code는 프롬프트를 표시하지 않습니다. 플래그된 요청은 거부로 종료되며, 대상이 차단될 때 자동 폴백과 동일합니다.619* 폴백 대상이 [`availableModels`](#restrict-model-selection)에 의해 차단될 때, Claude Code는 프롬프트를 표시하지 않습니다. 플래그된 요청은 거부로 종료되며, 대상이 차단될 때 자동 폴백과 동일합니다.

614 620 

615<h4 id="enable-fallback-on-bedrock-agent-platform-and-foundry">621<h4 id="enable-fallback-on-bedrock-agent-platform-and-foundry">


619[Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai) 및 [Microsoft Foundry](/docs/ko/microsoft-foundry)에서는 모델 ID가 제공자별이므로, 자동 폴백은 Claude Code가 관련된 각 모델을 식별할 수 있을 때만 작동합니다:625[Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai) 및 [Microsoft Foundry](/docs/ko/microsoft-foundry)에서는 모델 ID가 제공자별이므로, 자동 폴백은 Claude Code가 관련된 각 모델을 식별할 수 있을 때만 작동합니다:

620 626 

621* Claude Code는 현재 모델을 폴백 소스로 인식해야 합니다. Fable 5.1 및 Fable 5는 모델 ID가 `claude-fable-5`를 포함하거나, `ANTHROPIC_DEFAULT_FABLE_MODEL`의 값과 일치하거나, [`modelOverrides`](#override-model-ids-per-version)로 매핑될 때 인식됩니다. Opus 5.5, Sonnet 5.5 및 Opus 5는 제공자 모델 ID 또는 [`modelOverrides`](#override-model-ids-per-version) 매핑으로 인식됩니다.627* Claude Code는 현재 모델을 폴백 소스로 인식해야 합니다. Fable 5.1 및 Fable 5는 모델 ID가 `claude-fable-5`를 포함하거나, `ANTHROPIC_DEFAULT_FABLE_MODEL`의 값과 일치하거나, [`modelOverrides`](#override-model-ids-per-version)로 매핑될 때 인식됩니다. Opus 5.5, Sonnet 5.5 및 Opus 5는 제공자 모델 ID 또는 [`modelOverrides`](#override-model-ids-per-version) 매핑으로 인식됩니다.

622* Opus 대상은 배포에서 확인되어야 합니다. 어느 모델이 거부했든: `ANTHROPIC_DEFAULT_OPUS_MODEL`을 설정하거나, 제공자의 모델 목록에 Opus 4.8 항목을 유지하세요. 없으면, 폴백은 Sonnet 5.5를 포함한 모든 소스 모델에 대해 꺼지고, 플래그된 요청은 거부로 종료됩니다.628* 어느 모델이 거부했든 Opus 대상은 배포에서 확인되어야 합니다: `ANTHROPIC_DEFAULT_OPUS_MODEL`을 설정하거나, 제공자의 모델 목록에 Opus 4.8 항목을 유지하세요. 없으면, 폴백은 Sonnet 5.5를 포함한 모든 소스 모델에 대해 꺼지고, 플래그된 요청은 거부로 종료됩니다.

623* 플래그된 카테고리의 폴백 모델은 배포에서 확인되어야 합니다. Fable 모델, Opus 5.5 또는 Opus 5에서, `ANTHROPIC_DEFAULT_OPUS_MODEL`을 설정하면, 플래그된 요청은 폴백이 있는 모든 카테고리에 대해 해당 모델에서 다시 실행됩니다. Opus 5의 생물학 플래그는 여전히 거부로 종료됩니다. 설정하지 않으면, 사이버 보안 플래그 요청은 Opus 4.8 항목에서 다시 실행되고, Fable 모델 또는 Opus 5.5의 생물학 플래그 요청은 Opus 5 항목에서 다시 실행됩니다. Sonnet 5.5에서는 사이버 보안 플래그 요청이 `ANTHROPIC_DEFAULT_SONNET_MODEL`에서 설정한 모델에서 다시 실행되거나, 설정하지 않으면 제공자의 모델 목록의 Sonnet 5 항목에서 다시 실행됩니다.629* 플래그된 카테고리의 폴백 모델은 배포에서 확인되어야 합니다. Fable 모델, Opus 5.5 또는 Opus 5에서, `ANTHROPIC_DEFAULT_OPUS_MODEL`을 설정하면, 플래그된 요청은 폴백이 있는 모든 카테고리에 대해 해당 모델에서 다시 실행됩니다. Opus 5의 생물학 플래그는 여전히 거부로 종료됩니다. 설정하지 않으면, 사이버 보안 플래그 요청은 Opus 4.8 항목에서 다시 실행되고, Fable 모델 또는 Opus 5.5의 생물학 플래그 요청은 Opus 5 항목에서 다시 실행됩니다. Sonnet 5.5에서는 사이버 보안 플래그 요청이 `ANTHROPIC_DEFAULT_SONNET_MODEL`에서 설정한 모델에서 다시 실행되거나, 설정하지 않으면 제공자의 모델 목록의 Sonnet 5 항목에서 다시 실행됩니다.

624 630 

625두 모델 중 하나를 식별할 수 없으면, Claude Code는 전환하지 않습니다. 플래그된 요청은 거부 메시지로 종료되고, [`/model`](#setting-your-model)로 모델을 전환하고 재시도할 수 있습니다. 두 모델을 모두 식별 가능하게 하려면, 소스 모델에 대한 핀을 설정하세요:631두 모델 중 하나를 식별할 수 없으면, Claude Code는 전환하지 않습니다. 플래그된 요청은 거부 메시지로 종료되고, [`/model`](#setting-your-model)로 모델을 전환하고 재시도할 수 있습니다. 두 모델을 모두 식별 가능하게 하려면, 소스 모델에 대한 핀을 설정하세요:

626 632 

627* **Fable 모델**: `ANTHROPIC_DEFAULT_FABLE_MODEL`을 Fable 모델 ID로 설정하여 Claude Code가 이를 폴백 소스로 인식하도록 합니다.633* **Fable 모델**: `ANTHROPIC_DEFAULT_FABLE_MODEL`을 Fable 모델 ID로 설정하여 Claude Code가 이를 폴백 소스로 인식하도록 합니다.

628* **모든 소스 모델**: `ANTHROPIC_DEFAULT_OPUS_MODEL`을 Opus 모델 ID로 설정하여 폴백을 켜고 플래그된 카테고리에 대상을 제공합니다. Opus 제품군 외의 모델 또는 거부한 모델을 이름 지정하는 핀은 거부를 유지합니다.634* **모든 소스 모델**: `ANTHROPIC_DEFAULT_OPUS_MODEL`을 Opus 모델 ID로 설정하여 폴백을 켜고 플래그된 카테고리에 대상을 제공합니다. Opus 제품군 외의 모델 또는 거부한 모델을 지정하는 핀은 거부를 그대로 유지합니다.

629* **Sonnet 5.5**: Opus 핀 외에도, `ANTHROPIC_DEFAULT_SONNET_MODEL`을 설정하거나 제공자의 모델 목록에 Sonnet 5 항목을 유지하여 요청이 다시 실행되는 모델을 제공합니다. Sonnet 제품군 외의 모델 또는 Sonnet 5.5 자체를 이름 지정하는 Sonnet 핀은 거부를 유지합니다.635* **Sonnet 5.5**: Opus 핀 외에도, `ANTHROPIC_DEFAULT_SONNET_MODEL`을 설정하거나 제공자의 모델 목록에 Sonnet 5 항목을 유지하여 요청이 다시 실행되는 모델을 제공합니다. Sonnet 제품군 외의 모델 또는 Sonnet 5.5 자체를 지정하는 Sonnet 핀은 거부를 그대로 유지합니다.

636 

637폴백 모델은 또한 세션의 컨텍스트 윈도우 이상의 컨텍스트 윈도우를 가져야 합니다. 그렇지 않으면 Claude Code는 전환하지 않으며 플래그된 요청은 동일한 거부로 종료됩니다. 이러한 제공자에서 소스 모델은 기본적으로 [1M 컨텍스트 윈도우](#extended-context)로 실행됩니다. `ANTHROPIC_DEFAULT_OPUS_MODEL`의 Opus 4.8 또는 `ANTHROPIC_DEFAULT_SONNET_MODEL`의 Sonnet 5처럼 마찬가지로 1M으로 실행되는 모델을, Claude Code가 [해당 모델과 일치시킬 수 있는](#pin-models-for-third-party-deployments) ID로 고정하세요.

630 638 

631<h4 id="security-research-and-biology-workloads">639<h4 id="security-research-and-biology-workloads">

632 보안 연구 및 생물학 워크로드640 보안 연구 및 생물학 워크로드

633</h4>641</h4>

634 642 

635공격적 보안 또는 생물학의 워크로드(침투 테스트, Capture the Flag(CTF) 연습 및 생물학 인접 코드베이스 포함)는 폴백을 자주 트리거하며, 종종 첫 번째 요청에서 트리거합니다. Fable 5.1, Fable 5 또는 Opus 5.5의 실질적인 생물학 작업의 경우, Claude Code는 첫 번째 플래그된 요청에서 세션을 Opus 5로 이동하고, 이후 생물학 플래그 요청은 Opus 5에서 거부로 종료됩니다. Opus 5에 생물학 폴백이 없기 때문입니다. Opus 5 및 Sonnet 5.5에서는 첫 번째 플래그된 요청부터 이러한 거부를 받습니다.643공격적 보안 또는 생물학의 워크로드(침투 테스트, Capture the Flag(CTF) 연습 및 생물학 인접 코드베이스 포함)는 폴백을 자주 트리거하며, 종종 첫 번째 요청에서 트리거합니다. Fable 5.1, Fable 5 또는 Opus 5.5의 실질적인 생물학 작업의 경우, 모델을 전환하는 첫 번째 플래그된 요청이 세션을 Opus 5로 이동하고, 이후 생물학 플래그 요청은 Opus 5에서 거부로 종료됩니다. Opus 5에 생물학 폴백이 없기 때문입니다. Opus 5 및 Sonnet 5.5에서는 첫 번째 플래그된 요청부터 이러한 거부를 받습니다.

636 644 

637이는 이러한 도메인에 대한 예상 라우팅이며, 계정 플래그가 아닙니다. 조직이 이 작업을 위해 Fable 클래스 기능이 필요한 경우, Anthropic 계정 팀에 신뢰할 수 있는 액세스 프로그램에 대해 문의하세요.645이는 이러한 도메인에 대한 예상 라우팅이며, 계정 플래그가 아닙니다. 조직이 이 작업을 위해 Fable 클래스 기능이 필요한 경우, Anthropic 계정 팀에 신뢰할 수 있는 액세스 프로그램에 대해 문의하세요.

638 646 

639<h3 id="adjust-effort-level">647<h3 id="adjust-effort-level">

640 노력 수준 조정648 effort 수준 조정

641</h3>649</h3>

642 650 

643[노력 수준](https://platform.claude.com/docs/en/build-with-claude/effort)은 적응형 추론을 제어하며, 이는 모델이 각 단계에서 작업 복잡성에 따라 생각할지 여부와 얼마나 생각할지를 결정하도록 합니다. 낮은 노력은 간단한 작업에 더 빠르고 저렴하고, 높은 노력은 복잡한 문제에 더 깊은 추론을 제공합니다.651[effort 수준](https://platform.claude.com/docs/en/build-with-claude/effort)은 적응형 추론을 제어하며, 이는 모델이 각 단계에서 작업 복잡성에 따라 사고할지 여부와 얼마나 사고할지를 결정하도록 합니다. 낮은 effort는 간단한 작업에 더 빠르고 저렴하고, 높은 effort는 복잡한 문제에 더 깊은 추론을 제공합니다.

644 652 

645사용 가능한 노력 수준은 모델에 따라 다릅니다. 여기에 나열되지 않은 모델은 노력을 지원하지 않습니다:653사용 가능한 effort 수준은 모델에 따라 다릅니다. 여기에 나열되지 않은 모델은 effort를 지원하지 않습니다:

646 654 

647| 모델 | 수준 |655| 모델 | 수준 |

648| :- | :- |656| :- | :- |


650| Opus 5.5, Sonnet 5.5, Haiku 5.5, Opus 5, Sonnet 5, Opus 4.8 및 Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |658| Opus 5.5, Sonnet 5.5, Haiku 5.5, Opus 5, Sonnet 5, Opus 4.8 및 Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

651| Opus 4.6 및 Sonnet 4.6 | `low`, `medium`, `high`, `max` |659| Opus 4.6 및 Sonnet 4.6 | `low`, `medium`, `high`, `max` |

652 660 

653활성 모델이 지원하지 않는 수준을 설정하면, Claude Code는 설정한 수준 이하의 지원되는 최고 수준으로 폴백합니다. 예를 들어, `xhigh`는 Opus 4.6에서 `high`로 실행됩니다. 조직 또는 자신의 설정도 모델이 제공하는 수준을 제한할 수 있습니다. [조직 노력 제한](#organization-effort-limits)을 참조하세요.661활성 모델이 지원하지 않는 수준을 설정하면, Claude Code는 설정한 수준 이하의 지원되는 최고 수준으로 폴백합니다. 예를 들어, `xhigh`는 Opus 4.6에서 `high`로 실행됩니다. 조직 또는 자신의 설정도 모델이 제공하는 수준을 제한할 수 있습니다. [조직 effort 제한](#organization-effort-limits)을 참조하세요.

654 662 

655Claude Code는 세션의 노력 수준을 이 순서로 확인하며, 적용되는 첫 번째를 사용합니다:663Claude Code는 세션의 effort 수준을 이 순서로 확인하며, 적용되는 첫 번째를 사용합니다:

656 664 

6571. 명시적 선택: [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/ko/env-vars#variables) 환경 변수, `--effort`로 시작하거나, 세션에서 `/effort` ([비대화형 `/effort`는 더 좁은 효과를 가짐](#non-interactive-effort))6651. 명시적 선택: [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/ko/env-vars#variables) 환경 변수, `--effort`로 시작하거나, 세션에서 `/effort` ([비대화형 `/effort`는 더 좁은 효과를 가짐](#non-interactive-effort))

6582. 설정: 모델에 대해 저장한 수준 또는 [`effortLevel`](/docs/ko/settings-reference#effortlevel) 키, [`modelSettings`](/docs/ko/settings-reference#modelsettings)에 명시된 우선순위6662. 설정: 모델에 대해 저장한 수준 또는 [`effortLevel`](/docs/ko/settings-reference#effortlevel) 키이며, 둘 사이 및 설정 파일 간의 우선순위는 [`modelSettings`](/docs/ko/settings-reference#modelsettings)에 명시되어 있습니다

6593. 모델의 기본 effort: effort를 지원하는 모든 모델에서 `high`, 단 Opus 5.5, Sonnet 5.5 및 Haiku 5.5는 `medium`으로 기본값, Opus 4.7은 `xhigh`로 기본값이며, 조직이 [조직 기본 모델](#organization-default-model)에 대한 기본 effort 수준을 설정할 때, 해당 모델을 실행할 때 그 수준이 기본값입니다. 자동 모델 폴백 후 적용되는 수준은 [폴백 후 effort 수준](#effort-level-after-a-fallback)을 참조하세요.6673. 모델의 기본 effort: effort를 지원하는 모든 모델에서 `high`, 단 Opus 5.5, Sonnet 5.5 및 Haiku 5.5는 `medium`으로 기본값, Opus 4.7은 `xhigh`로 기본값이며, 조직이 [조직 기본 모델](#organization-default-model)에 대한 기본 effort 수준을 설정할 때, 해당 모델을 실행할 때 그 수준이 기본값입니다

668 

669자동 모델 폴백 후 적용되는 수준은 [폴백 후 effort 수준](#effort-level-after-a-fallback)을 참조하세요.

660 670 

661Opus 5.5는 위의 소스 중 하나가 수준을 설정하지 않으면 `medium`에서 시작하고, 사용자 설정 파일의 최상위 `effortLevel`은 Opus 5.5에 대해 계산되지 않습니다. 해당 키는 Claude Code가 모델별로 수준을 저장하기 전에 `/effort`가 작성한 이전 형식입니다: 이전에 적용된 곳에 계속 적용되며, Opus 5, Fable 5.1 및 이전 모델에서, Opus 5.5 및 이후 릴리스된 모델은 `/effort` 또는 `/model` 선택기로 수준을 선택할 때까지 자신의 기본값에서 시작합니다. 프로젝트, 로컬 또는 관리되는 설정의 최상위 `effortLevel` 또는 `--settings`로 전달된 것은 모든 모델에 적용됩니다.671Opus 5.5는 위의 소스 중 하나가 수준을 설정하지 않으면 `medium`에서 시작하고, 사용자 설정 파일의 최상위 `effortLevel`은 Opus 5.5에 대해 계산되지 않습니다. 해당 키는 Claude Code가 모델별로 수준을 저장하기 전에 `/effort`가 작성한 이전 형식입니다: 이전에 적용된 곳, 즉 Opus 5, Fable 5.1 및 이전 모델에서 계속 적용되며, Opus 5.5 및 이후 릴리스된 모델은 `/effort` 또는 `/model` 선택기로 수준을 선택할 때까지 자신의 기본값에서 시작합니다. 프로젝트, 로컬 또는 관리형 설정의 최상위 `effortLevel` 또는 `--settings`로 전달된 것은 모든 모델에 적용됩니다.

662 672 

663기계에서 대화형 세션에서 `low`, `medium`, `high` 또는 `xhigh`를 설정할 때, 확인 방식으로 지속 기간을 선택합니다:673사용자 컴퓨터의 대화형 세션에서 `low`, `medium`, `high` 또는 `xhigh`를 설정할 때, 확인 방식으로 지속 기간을 선택합니다:

664 674 

665* `/effort` 슬라이더 또는 `/model` 선택기에서 `Enter`, 또는 `/effort` 후 입력한 수준: 수준을 기본값으로 저장하고 이후 세션에 적용합니다675* `/effort` 슬라이더 또는 `/model` 선택기에서 `Enter`, 또는 `/effort` 후 입력한 수준: 수준을 기본값으로 저장하고 이후 세션에 적용합니다

666* `/effort` 슬라이더 또는 `/model` 선택기에서 `s`: 이 세션에만 수준을 적용합니다. Claude Code v2.1.257 이상이 필요합니다.676* `/effort` 슬라이더 또는 `/model` 선택기에서 `s`: 이 세션에만 수준을 적용합니다. Claude Code v2.1.257 이상이 필요합니다

667 677 

668Claude Code는 사용자 설정의 [`modelSettings`](/docs/ko/settings-reference#modelsettings) 키 아래에서 모델별로 수준을 저장하므로, 각 모델은 자신의 저장된 수준을 유지합니다.678Claude Code는 사용자 설정의 [`modelSettings`](/docs/ko/settings-reference#modelsettings) 키 아래에서 모델별로 수준을 저장하므로, 각 모델은 자신의 저장된 수준을 유지합니다.

669 679 

670`max`는 가장 깊은 추론 수준입니다. `CLAUDE_CODE_EFFORT_LEVEL` 환경 변수를 통해 설정하지 않으면, Claude Code는 `max`를 현재 세션에만 적용합니다.680`max`는 가장 깊은 추론 수준입니다. `CLAUDE_CODE_EFFORT_LEVEL` 환경 변수를 통해 설정하지 않으면, Claude Code는 `max`를 현재 세션에만 적용합니다.

671 681 

672<Note>682<Note>

673 [Remote Control](/docs/ko/remote-control#what-connected-devices-see)을 통해 연결된 휴대폰 또는 브라우저의 노력 제어에서 선택한 수준은 해당 세션에만 적용됩니다.683 [Remote Control](/docs/ko/remote-control#what-connected-devices-see)을 통해 연결된 휴대폰 또는 브라우저의 effort 제어에서 선택한 수준은 해당 세션에만 적용됩니다.

674</Note>684</Note>

675 685 

676<span id="non-interactive-effort" />686<span id="non-interactive-effort" />

677 687 

678[`-p` 실행](/docs/ko/headless)에서 `/effort`로 수준을 설정할 때, Claude Code는 해당 세션에만 적용하고 기본값으로 저장하지 않습니다.688[`-p` 실행](/docs/ko/headless)에서 `/effort`로 수준을 설정할 때, Claude Code는 해당 세션에만 적용하고 기본값으로 저장하지 않습니다.

679 689 

680`/effort` 슬라이더에는 **Ultracode** 토글도 있습니다. Ultracode는 모델 노력 수준이 아닌 Claude Code 설정입니다: 켜져 있으면, Claude는 세션이 실행되는 노력 수준에서 실질적인 작업에 대해 [동적 워크플로우](/docs/ko/workflows)를 조율합니다. 지속적으로 설정할 수 있는 위치는 [`ultracode`](/docs/ko/settings-reference#ultracode) 설정을 참조하세요.690`/effort` 슬라이더에는 **Ultracode** 토글도 있습니다. Ultracode는 모델 effort 수준이 아닌 Claude Code 설정입니다: 켜져 있으면, Claude는 세션이 실행되는 effort 수준에서 실질적인 작업에 대해 [동적 워크플로](/docs/ko/workflows)를 조율합니다. 지속적으로 설정할 수 있는 위치는 [`ultracode`](/docs/ko/settings-reference#ultracode) 설정을 참조하세요.

681 691 

682`/effort` 또는 `ultracode` 설정으로 ultracode를 켜거나 끄면 노력 수준은 변경되지 않습니다. `--effort ultracode` 플래그 및 Agent SDK `effortLevel: "ultracode"` 값은 이를 켜고 수준을 `xhigh`로 설정합니다. `/effort` 슬라이더 또는 `/model` 선택기에서 수준을 선택하면 ultracode는 그대로 유지됩니다.692`/effort` 또는 `ultracode` 설정으로 ultracode를 켜거나 끄면 effort 수준은 변경되지 않습니다. `--effort ultracode` 플래그 및 Agent SDK `effortLevel: "ultracode"` 값은 이를 켜고 수준을 `xhigh`로 설정합니다. `/effort` 슬라이더 또는 `/model` 선택기에서 수준을 선택하면 ultracode는 그대로 유지됩니다.

683 693 

684다음 중 하나를 통해 ultracode를 켤 수 있습니다:694다음 중 하나를 통해 ultracode를 켤 수 있습니다:

685 695 

686* **`/effort`**: 현재 세션에 대해 켜려면 `/effort ultracode`를 실행하거나 끄려면 `/effort ultracode off`를 실행하세요. `/effort` 슬라이더에서 `Tab`을 눌러 **Ultracode** 토글을 뒤집은 다음 `Enter`를 눌러 적용합니다.696* **`/effort`**: 현재 세션에 대해 켜려면 `/effort ultracode`를 실행하거나 끄려면 `/effort ultracode off`를 실행하세요. `/effort` 슬라이더에서 `Tab`을 눌러 **Ultracode** 토글을 전환한 다음 `Enter`를 눌러 적용합니다

687* **`--effort` 플래그**: `claude --effort ultracode`로 시작하여 `xhigh` 노력과 ultracode가 켜진 상태로 세션을 시작합니다.697* **`--effort` 플래그**: `claude --effort ultracode`로 시작하여 `xhigh` effort와 ultracode가 켜진 상태로 세션을 시작합니다

688* **`ultracode` 설정**: 설정 파일, `--settings` 또는 Agent SDK 제어 요청에서 [`"ultracode": true`](/docs/ko/settings-reference#ultracode)를 설정합니다. [`applyFlagSettings()`](/docs/ko/agent-sdk/typescript#applyflagsettings) 요청도 `effortLevel: "ultracode"`를 허용하며, 이는 이를 켜고 노력 수준을 `xhigh`로 설정합니다.698* **`ultracode` 설정**: 설정 파일, `--settings` 또는 Agent SDK 제어 요청에서 [`"ultracode": true`](/docs/ko/settings-reference#ultracode)를 설정합니다. [`applyFlagSettings()`](/docs/ko/agent-sdk/typescript#applyflagsettings) 요청도 `effortLevel: "ultracode"`를 허용하며, 이는 이를 켜고 effort 수준을 `xhigh`로 설정합니다

689 699 

690`/effort ultracode off` 형식, 슬라이더 토글 및 `xhigh` 이외의 노력 수준에서 ultracode를 켜진 상태로 유지하려면 Claude Code v2.1.284 이상이 필요합니다. v2.1.284 이전에는 ultracode를 켜면 세션이 `xhigh` 노력으로 설정되고, 다른 수준을 선택하면 꺼지고, `xhigh` 아래의 노력 제한이 이를 사용할 수 없게 만들었습니다.700`/effort ultracode off` 형식, 슬라이더 토글 및 `xhigh` 이외의 effort 수준에서 ultracode를 켜진 상태로 유지하려면 Claude Code v2.1.284 이상이 필요합니다. v2.1.284 이전에는 ultracode를 켜면 세션이 `xhigh` effort로 설정되고, 다른 수준을 선택하면 꺼지고, `xhigh` 아래의 effort 제한이 이를 사용할 수 없게 만들었습니다.

691 701 

692`--effort` 플래그 또는 Agent SDK `effortLevel` 값에 `ultracode`를 전달하려면 Claude Code v2.1.203 이상이 필요합니다. v2.1.203 이전에는 `--effort ultracode`가 `Unknown --effort value 'ultracode'`를 인쇄했고 세션이 기본 노력으로 시작되었습니다.702`--effort` 플래그 또는 Agent SDK `effortLevel` 값에 `ultracode`를 전달하려면 Claude Code v2.1.203 이상이 필요합니다. v2.1.203 이전에는 `--effort ultracode`가 `Unknown --effort value 'ultracode'`를 출력했고 세션이 기본 effort로 시작되었습니다.

693 703 

694지속된 `effortLevel` 설정 및 `CLAUDE_CODE_EFFORT_LEVEL` 환경 변수는 `ultracode`를 허용하지 않습니다. `CLAUDE_CODE_EFFORT_LEVEL` 또는 [노력 제한](#organization-effort-limits)이 세션의 수준을 설정하면, ultracode는 해당 수준에서 켜진 상태로 유지됩니다.704지속된 `effortLevel` 설정 및 `CLAUDE_CODE_EFFORT_LEVEL` 환경 변수는 `ultracode`를 허용하지 않습니다. `CLAUDE_CODE_EFFORT_LEVEL` 또는 [effort 제한](#organization-effort-limits)이 세션의 수준을 설정하면, ultracode는 해당 수준에서 켜진 상태로 유지됩니다.

695 705 

696<span id="when-ultracode-is-available" />706<span id="when-ultracode-is-available" />

697 707 

698Ultracode는 다음과 같은 경우 사용할 수 없습니다:708Ultracode는 다음과 같은 경우 사용할 수 없습니다:

699 709 

700* [워크플로우가 꺼짐](/docs/ko/workflows#turn-workflows-off)710* [워크플로가 꺼짐](/docs/ko/workflows#turn-workflows-off)

701* 모델이 `xhigh` 노력을 지원하지 않음711* 모델이 `xhigh` effort를 지원하지 않음

702 712 

703이 경우 `--effort ultracode`는 모델 및 제한이 허용하는 최고 노력 수준(최대 `xhigh`)에서 ultracode가 꺼진 상태로 세션을 시작합니다.713이 경우 `--effort ultracode`는 모델 및 제한이 허용하는 최고 effort 수준(최대 `xhigh`)에서 ultracode가 꺼진 상태로 세션을 시작합니다.

704 714 

705<h4 id="choose-an-effort-level">715<h4 id="choose-an-effort-level">

706 노력 수준 선택716 effort 수준 선택

707</h4>717</h4>

708 718 

709각 수준은 토큰 지출을 기능에 대해 거래합니다. 기본값은 대부분의 코딩 작업에 적합합니다. 다른 균형을 원할 때 조정하세요.719각 수준은 토큰 지출과 성능 사이에서 균형을 맞춥니다. 기본값은 대부분의 코딩 작업에 적합합니다. 다른 균형을 원할 때 조정하세요.

710 720 

711| 수준 | 사용 시기 |721| 수준 | 사용 시기 |

712| :- | :- |722| :- | :- |


714| `medium` | Opus 5.5, Sonnet 5.5 및 Haiku 5.5의 기본값입니다. Opus 5.5 및 Sonnet 5.5에서는 명확한 범위의 일상적인 엔지니어링 작업(예: 새 기능 구현)에 적합합니다. 기본값이 더 높은 모델에서는 일부 지능을 양보할 수 있는 비용 민감한 작업의 토큰 사용을 줄입니다 |724| `medium` | Opus 5.5, Sonnet 5.5 및 Haiku 5.5의 기본값입니다. Opus 5.5 및 Sonnet 5.5에서는 명확한 범위의 일상적인 엔지니어링 작업(예: 새 기능 구현)에 적합합니다. 기본값이 더 높은 모델에서는 일부 지능을 양보할 수 있는 비용 민감한 작업의 토큰 사용을 줄입니다 |

715| `high` | 검증이 중요하거나 엣지 케이스가 발생할 가능성이 높은 작업(예: 기존 코드베이스의 버그 수정). Opus 5.5, Sonnet 5.5, Haiku 5.5 및 Opus 4.7을 제외한 모든 모델의 기본값 |725| `high` | 검증이 중요하거나 엣지 케이스가 발생할 가능성이 높은 작업(예: 기존 코드베이스의 버그 수정). Opus 5.5, Sonnet 5.5, Haiku 5.5 및 Opus 4.7을 제외한 모든 모델의 기본값 |

716| `xhigh` | 더 높은 토큰 지출로 더 깊은 추론. Opus 4.7의 기본값 |726| `xhigh` | 더 높은 토큰 지출로 더 깊은 추론. Opus 4.7의 기본값 |

717| `max` | Claude가 당신 없이 작업하기를 원하는 어려운 문제(예: 보안 취약점 찾기). `max`는 수익 감소를 보일 수 있고 과도한 생각에 취약하므로, 광범위하게 채택하기 전에 테스트하세요. |727| `max` | 사용자의 개입 없이 Claude가 끝까지 처리하기를 원하는 어려운 문제(예: 보안 취약점 찾기). `max`는 수익 감소를 보일 수 있고 과도한 사고에 빠지기 쉬우므로, 광범위하게 채택하기 전에 테스트하세요 |

718| `ultracode` | 수준이 아닌 Claude Code 설정: 모든 노력 수준에서 각 실질적인 작업에 대해 [동적 워크플로우](/docs/ko/workflows)를 계획합니다. |728| `ultracode` | 수준이 아닌 Claude Code 설정: 모든 effort 수준에서 각 실질적인 작업에 대해 [동적 워크플로](/docs/ko/workflows)를 계획합니다 |

719 729 

720Opus 5.5 및 Fable 5.1의 테스트에서, Claude는 더 높은 수준에서 더 많은 엣지 케이스를 테스트하고 답변하기 전에 더 많은 작업을 검증했습니다. 또한 더 많은 선택을 독립적으로 했습니다. 더 낮은 수준에서, Claude는 시작점을 더 빨리 반환했으며, 이는 각 결과를 검토하고 다음 단계를 조율하는 작업에 적합합니다. 각 수준에서 실행되는 동일한 작업을 보려면, 블로그의 [Using Claude Code: Spending your effort](https://claude.dev/blog/spending-your-effort/)를 읽으세요.730Opus 5.5 및 Fable 5.1의 테스트에서, Claude는 더 높은 수준에서 더 많은 엣지 케이스를 테스트하고 답변하기 전에 더 많은 작업을 검증했습니다. 또한 더 많은 선택을 독립적으로 했습니다. 더 낮은 수준에서, Claude는 시작점을 더 빨리 반환했으며, 이는 각 결과를 검토하고 다음 단계를 조율하는 작업에 적합합니다. 각 수준에서 실행되는 동일한 작업을 보려면, 블로그의 [Using Claude Code: Spending your effort](https://claude.dev/blog/spending-your-effort/)를 읽으세요.

721 731 

722노력 척도는 모델별로 보정되므로, 동일한 수준 이름이 모델 전체에서 동일한 기본 값을 나타내지 않습니다.732effort 척도는 모델별로 보정되므로, 동일한 수준 이름이 모델 전체에서 동일한 기본 값을 나타내지 않습니다.

723 733 

724Opus 5.5는 [기본값 `medium`](#adjust-effort-level)으로 시작하며, Opus 5의 기본값 `high`보다 한 수준 아래입니다. Anthropic의 테스트에서, Opus 5.5는 `medium`에서 코딩 및 지식 작업 평가에서 Opus 5를 `high`에서 일치하거나 초과합니다. 주어진 수준에서, Opus 5.5는 Opus 5보다 턴당 더 많이 생각하는 경향이 있습니다. Opus 5에서 Opus 5.5로 이동할 때, Opus 5에서 사용한 수준을 이월하는 대신 `medium`에서 시작하세요. 자신의 작업에 대해 수준을 테스트하려면, Opus 5.5 프롬프팅 가이드의 [Calibrate effort](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-opus-5-5#calibrate-effort)를 참조하세요.734Opus 5.5는 [기본값 `medium`](#adjust-effort-level)으로 시작하며, Opus 5의 기본값 `high`보다 한 수준 아래입니다. Anthropic의 테스트에서, `medium`의 Opus 5.5는 코딩 및 지식 작업 평가에서 `high`의 Opus 5와 같거나 이를 초과합니다. 주어진 수준에서, Opus 5.5는 Opus 5보다 턴당 더 많이 사고하는 경향이 있습니다. Opus 5에서 Opus 5.5로 이동할 때, Opus 5에서 사용한 수준을 이월하는 대신 `medium`에서 시작하세요. 자신의 작업에 대해 수준을 테스트하려면, Opus 5.5 프롬프팅 가이드의 [Calibrate effort](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-opus-5-5#calibrate-effort)를 참조하세요.

725 735 

726<h4 id="use-ultrathink-for-one-off-deep-reasoning">736<h4 id="use-ultrathink-for-one-off-deep-reasoning">

727 일회성 깊은 추론을 위해 ultrathink 사용737 일회성 깊은 추론을 위해 ultrathink 사용

728</h4>738</h4>

729 739 

730프롬프트의 어디든 `ultrathink`를 포함하여 세션 노력 설정을 변경하지 않고 해당 턴에서 더 깊은 추론을 요청합니다. Claude Code는 키워드를 인식하고 컨텍스트 내 지시를 추가합니다. API로 전송된 노력 수준은 변경되지 않습니다. Claude Code는 "think", "think hard" 및 "think more"와 같은 다른 구문을 일반 프롬프트 텍스트로 전달하고 키워드로 인식하지 않습니다.740프롬프트의 어디든 `ultrathink`를 포함하여 세션 effort 설정을 변경하지 않고 해당 턴에서 더 깊은 추론을 요청합니다. Claude Code는 키워드를 인식하고 컨텍스트 내 지시를 추가합니다. API로 전송된 effort 수준은 변경되지 않습니다. Claude Code는 "think", "think hard" 및 "think more"와 같은 다른 구문을 일반 프롬프트 텍스트로 전달하고 키워드로 인식하지 않습니다.

731 741 

732<h4 id="set-the-effort-level">742<h4 id="set-the-effort-level">

733 노력 수준 설정743 effort 수준 설정

734</h4>744</h4>

735 745 

736다음 중 하나를 통해 노력을 변경할 수 있습니다:746다음 중 하나를 통해 effort를 변경할 수 있습니다:

737 747 

738* **`/effort`**: 인터랙티브 슬라이더를 열려면 인수 없이 `/effort`를 실행하고, 직접 설정하려면 수준 이름 뒤에 `/effort`를 실행하거나, 활성 모델에 대해 저장된 수준을 지우려면 `/effort auto`를 실행합니다. Claude가 작업 중일 때 실행할 수 있으며, Claude Code가 표시하는 경우 [캐시 경고](/docs/ko/prompt-caching#changing-effort-level)를 확인한 후, Claude Code는 새 수준을 턴의 다음 요청에 적용합니다.748* **`/effort`**: 대화형 슬라이더를 열려면 인수 없이 `/effort`를 실행하고, 직접 설정하려면 `/effort` 뒤에 수준 이름을 붙여 실행하거나, 활성 모델에 대해 저장된 수준을 지우려면 `/effort auto`를 실행합니다. Claude가 작업 중일 때 실행할 수 있으며, Claude Code가 [캐시 경고](/docs/ko/prompt-caching#changing-effort-level)를 표시하는 경우 이를 확인하면, Claude Code는 새 수준을 턴의 다음 요청에 적용합니다

739* **`/model`에서**: 모델을 선택할 때 왼쪽/오른쪽 화살표 키를 사용하여 노력 슬라이더를 조정합니다.749* **`/model`에서**: 모델을 선택할 때 왼쪽/오른쪽 화살표 키를 사용하여 effort 슬라이더를 조정합니다

740* **`--effort` 플래그**: Claude Code를 시작할 때 단일 세션에 대해 설정하려면 수준 이름을 전달합니다.750* **`--effort` 플래그**: Claude Code를 시작할 때 단일 세션에 대해 설정하려면 수준 이름을 전달합니다

741* **환경 변수**: `CLAUDE_CODE_EFFORT_LEVEL`을 수준 이름 또는 `auto`로 설정합니다.751* **환경 변수**: `CLAUDE_CODE_EFFORT_LEVEL`을 수준 이름 또는 `auto`로 설정합니다

742* **설정**: [`modelSettings`](/docs/ko/settings-reference#modelsettings)에서 모델별 수준을 설정하거나, [`effortLevel`](/docs/ko/settings-reference#effortlevel)을 `low`, `medium`, `high` 또는 `xhigh`로 설정하여 수준이 없는 모델의 기본값으로 설정합니다. `max`는 두 키에서 수준으로 허용되지 않으며, `ultracode`는 자신의 [`ultracode`](/docs/ko/settings-reference#ultracode) 키를 가집니다.752* **설정**: [`modelSettings`](/docs/ko/settings-reference#modelsettings)에서 모델별 수준을 설정하거나, [`effortLevel`](/docs/ko/settings-reference#effortlevel)을 `low`, `medium`, `high` 또는 `xhigh`로 설정하여 수준이 없는 모델의 기본값으로 설정합니다. `max`는 두 키에서 수준으로 허용되지 않으며, `ultracode`는 자체 [`ultracode`](/docs/ko/settings-reference#ultracode) 키를 가집니다

743* **연결된 장치에서**: [Remote Control](/docs/ko/remote-control#what-connected-devices-see) 세션에서, 휴대폰 또는 브라우저의 노력 제어에서 수준을 선택합니다. 수준은 현재 세션에만 적용됩니다. Claude Code v2.1.234 이상이 필요합니다.753* **연결된 장치에서**: [Remote Control](/docs/ko/remote-control#what-connected-devices-see) 세션에서, 휴대폰 또는 브라우저의 effort 제어에서 수준을 선택합니다. 수준은 현재 세션에만 적용됩니다. Claude Code v2.1.234 이상이 필요합니다

744* **스킬 및 subagent frontmatter**: [스킬](/docs/ko/skills#frontmatter-reference) 또는 [subagent](/docs/ko/sub-agents#supported-frontmatter-fields) markdown 파일에서 `effort`를 설정하여 해당 스킬 또는 subagent가 실행될 때 노력 수준을 재정의합니다.754* **스킬 및 서브에이전트 frontmatter**: [스킬](/docs/ko/skills#frontmatter-reference) 또는 [서브에이전트](/docs/ko/sub-agents#supported-frontmatter-fields) markdown 파일에서 `effort`를 설정하여 해당 스킬 또는 서브에이전트가 실행될 때 effort 수준을 재정의합니다

745 755 

746Frontmatter 노력은 해당 스킬 또는 subagent가 활성화될 때 적용되며, 세션 수준을 재정의하지만 환경 변수는 재정의하지 않습니다. [`maxEffortLevel`](/docs/ko/settings-reference#maxeffortlevel) 또는 [조직 노력 제한](#organization-effort-limits)은 여전히 스킬 또는 subagent가 실행되는 수준을 제한합니다.756Frontmatter effort는 해당 스킬 또는 서브에이전트가 활성화될 때 적용되며, 세션 수준을 재정의하지만 환경 변수는 재정의하지 않습니다. [`maxEffortLevel`](/docs/ko/settings-reference#maxeffortlevel) 또는 [조직 effort 제한](#organization-effort-limits)은 여전히 스킬 또는 서브에이전트가 실행되는 수준을 제한합니다.

747 757 

748[관리되는 설정](/docs/ko/managed-settings)에서 `effortLevel`을 설정하면, Claude Code는 [노력 해결 순서](#adjust-effort-level)의 설정 단계에서 적용하고, 사용자는 여전히 `/effort` 또는 `--effort`로 수준을 변경할 수 있습니다. 사용자를 수준 이하로 유지하려면, [`maxEffortLevel`](/docs/ko/settings-reference#maxeffortlevel)을 설정하세요.758[관리형 설정](/docs/ko/managed-settings)에서 `effortLevel`을 설정하면, Claude Code는 [effort 확인 순서](#adjust-effort-level)의 설정 단계에서 적용하고, 사용자는 여전히 `/effort` 또는 `--effort`로 수준을 변경할 수 있습니다. 사용자를 특정 수준 이하로 유지하려면, [`maxEffortLevel`](/docs/ko/settings-reference#maxeffortlevel)을 설정하세요.

749 759 

750노력 슬라이더는 지원되는 모델이 선택되었을 때 `/model`에 나타납니다. 현재 노력 수준은 모델 이름 옆의 세션 헤더에도 표시됩니다(예: "with low effort"). 따라서 `/model`을 열지 않고도 어느 설정이 활성화되었는지 확인할 수 있습니다. 바닥글은 시작 시 및 변경 시 노력 수준을 간단히 표시합니다.760effort 슬라이더는 지원되는 모델이 선택되었을 때 `/model`에 나타납니다. 현재 effort 수준은 모델 이름 옆의 세션 헤더에도 표시됩니다(예: "with low effort"). 따라서 `/model`을 열지 않고도 어느 설정이 활성화되었는지 확인할 수 있습니다. 바닥글도 시작 시 및 변경 시 effort 수준을 잠시 표시합니다.

751 761 

752<h4 id="adaptive-reasoning-and-fixed-thinking-budgets">762<h4 id="adaptive-reasoning-and-fixed-thinking-budgets">

753 적응형 추론 및 고정 생각 예산763 적응형 추론 및 고정 사고 예산

754</h4>764</h4>

755 765 

756적응형 추론은 각 단계에서 생각을 선택 사항으로 만들므로, Claude는 일상적인 프롬프트에 더 빠르게 응답하고 이점을 얻는 단계를 위해 더 깊은 생각을 예약할 수 있습니다. 현재 수준이 생성하는 것보다 Claude가 더 자주 또는 덜 자주 생각하기를 원하면, 프롬프트 또는 `CLAUDE.md`에서 직접 말할 수 있습니다. 모델은 노력 설정 내에서 해당 지침에 응답합니다.766적응형 추론은 각 단계에서 사고를 선택 사항으로 만들므로, Claude는 일상적인 프롬프트에 더 빠르게 응답하고 이점을 얻는 단계를 위해 더 깊은 사고를 남겨 둘 수 있습니다. 현재 수준이 생성하는 것보다 Claude가 더 자주 또는 덜 자주 사고하기를 원하면, 프롬프트 또는 `CLAUDE.md`에서 직접 말할 수 있습니다. 모델은 effort 설정 내에서 해당 지침에 응답합니다.

757 767 

758Fable 모델, Sonnet 5 이상, Haiku 5.5 및 Opus 4.7 이상은 항상 적응형 추론을 사용합니다. 고정 사고 예산 모드 및 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING`은 이들에게 적용되지 않습니다.768Fable 모델, Sonnet 5 이상, Haiku 5.5 및 Opus 4.7 이상은 항상 적응형 추론을 사용합니다. 고정 사고 예산 모드 및 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING`은 이들에게 적용되지 않습니다.

759 769 

760Opus 4.6 및 Sonnet 4.6에서는 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1`을 설정하여 `MAX_THINKING_TOKENS`로 제어되는 이전 고정 생각 예산으로 되돌릴 수 있습니다. [환경 변수](/docs/ko/env-vars)를 참조하세요.770Opus 4.6 및 Sonnet 4.6에서는 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1`을 설정하여 `MAX_THINKING_TOKENS`로 제어되는 이전 고정 사고 예산으로 되돌릴 수 있습니다. [환경 변수](/docs/ko/env-vars)를 참조하세요.

761 771 

762<h3 id="extended-thinking">772<h3 id="extended-thinking">

763 확장 생각773 확장 사고

764</h3>774</h3>

765 775 

766확장 생각은 Claude가 응답하기 전에 내보내는 추론입니다. [적응형 추론](#adjust-effort-level)을 지원하는 모델에서, 노력 수준은 얼마나 많은 생각이 발생하는지에 대한 주요 제어이며, 아래 설정은 생각을 켜거나 끄고 표시 방식을 제어합니다. Anthropic API에서 생각이 꺼져 있으면, Claude Code는 Opus 5와 같이 [해당 조합을 허용하지 않는](/docs/ko/errors#effort-isnt-available-with-thinking-turned-off) 모델에 더 높은 수준 대신 노력 `high`를 보냅니다.776확장 사고는 Claude가 응답하기 전에 내보내는 추론입니다. [적응형 추론](#adjust-effort-level)을 지원하는 모델에서, effort 수준은 얼마나 많은 사고가 발생하는지에 대한 주요 제어이며, 아래 설정은 사고를 켜거나 끄고 표시 방식을 제어합니다. Anthropic API에서 사고가 꺼져 있으면, Claude Code는 Opus 5와 같이 [해당 조합을 허용하지 않는](/docs/ko/errors#effort-isnt-available-with-thinking-turned-off) 모델에 더 높은 수준 대신 effort `high`를 보냅니다.

767 777 

768| 제어 | 설정 방법 |778| 제어 | 설정 방법 |

769| :- | :- |779| :- | :- |

770| 현재 세션에 대한 토글 | macOS에서 `Option+T` 또는 Windows 및 Linux에서 `Alt+T`를 누릅니다. |780| 현재 세션에 대한 토글 | macOS에서 `Option+T` 또는 Windows 및 Linux에서 `Alt+T`를 누릅니다 |

771| 전역 기본값 설정 | `/config`를 실행하고 생각 모드를 토글합니다. `~/.claude/settings.json`에서 `alwaysThinkingEnabled`로 저장됩니다. |781| 전역 기본값 설정 | `/config`를 실행하고 사고 모드를 토글합니다. `~/.claude/settings.json`에서 `alwaysThinkingEnabled`로 저장됩니다 |

772| 환경 변수를 통해 비활성화 | [`MAX_THINKING_TOKENS=0`](/docs/ko/env-vars)을 설정하면 Opus 5.5, Sonnet 5.5, Haiku 5.5 및 Fable 모델을 제외하고 Anthropic API에서 사고가 꺼집니다. [서드파티 제공자](/docs/ko/third-party-integrations)에서는 Claude Code가 대신 `thinking` 매개변수를 생략하며, 적응형 추론 모델은 여전히 사고할 수 있습니다 |782| 환경 변수를 통해 비활성화 | [`MAX_THINKING_TOKENS=0`](/docs/ko/env-vars)을 설정하면 Opus 5.5, Sonnet 5.5, Haiku 5.5 및 Fable 모델을 제외하고 Anthropic API에서 사고가 꺼집니다. [서드파티 제공자](/docs/ko/third-party-integrations)에서는 Claude Code가 대신 `thinking` 매개변수를 생략하며, 적응형 추론 모델은 여전히 사고할 수 있습니다 |

773 783 

774Opus 5.5, Sonnet 5.5, Haiku 5.5 또는 Fable 모델에서는 사고를 끌 수 없습니다. 세션 토글 및 `/config` 행은 스위치를 제공하는 대신 이 모델들에 대해 `Thinking can't be turned off`를 표시하고, 저장된 `alwaysThinkingEnabled: false` 또는 `MAX_THINKING_TOKENS=0`은 여기에 영향을 주지 않습니다. 이 모델들에서는 모델이 effort 수준에 따라 각 단계에서 얼마나 사고할지 결정합니다. 저장된 설정은 이를 허용하는 모델로 전환할 때 다시 적용됩니다.784Opus 5.5, Sonnet 5.5, Haiku 5.5 또는 Fable 모델에서는 사고를 끌 수 없습니다. 세션 토글 및 `/config` 행은 스위치를 제공하는 대신 이 모델들에 대해 `Thinking can't be turned off`를 표시하고, 저장된 `alwaysThinkingEnabled: false` 또는 `MAX_THINKING_TOKENS=0`은 여기에 영향을 주지 않습니다. 이 모델들에서는 모델이 effort 수준에 따라 각 단계에서 얼마나 사고할지 결정합니다. 저장된 설정은 이를 허용하는 모델로 전환할 때 다시 적용됩니다.

775 785 

776Claude Code는 기본적으로 생각 출력을 축소합니다. `Ctrl+O`를 눌러 상세 모드를 토글하고 회색 기울임꼴 텍스트로 추론을 봅니다. Anthropic API의 대화형 세션은 기본적으로 편집된 생각 블록을 수신하므로, 확장할 때 전체 요약을 사용 가능하게 하려면 [설정](/docs/ko/settings)에서 `showThinkingSummaries: true`를 설정하세요. 축소되거나 편집된 경우에도 생성된 모든 생각 토큰에 대해 청구됩니다.786Claude Code는 기본적으로 사고 출력을 축소합니다. `Ctrl+O`를 눌러 상세 모드를 토글하고 회색 기울임꼴 텍스트로 추론을 봅니다. Anthropic API의 대화형 세션은 기본적으로 편집된 thinking 블록을 수신하므로, 확장할 때 전체 요약을 사용 가능하게 하려면 [설정](/docs/ko/settings)에서 `showThinkingSummaries: true`를 설정하세요. 축소되거나 편집된 경우에도 생성된 모든 사고 토큰에 대해 청구됩니다.

777 787 

778<a id="extended-context-with-1m" />788<a id="extended-context-with-1m" />

779 789 

790<span id="sonnet-5-5-and-sonnet-5-context-window" />

791 

780<h3 id="extended-context">792<h3 id="extended-context">

781 확장 컨텍스트793 확장 컨텍스트

782</h3>794</h3>

783 795 

784Fable 5.1, Fable 5, Sonnet 5 이상, Haiku 5.5, Opus 4.6 이상 및 Sonnet 4.6은 큰 코드베이스가 있는 긴 세션을 위해 [1백만 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)를 지원합니다.796Fable 5.1, Fable 5, Sonnet 5 이상, Haiku 5.5, Opus 4.6 이상 및 Sonnet 4.6은 큰 코드베이스가 있는 긴 세션을 위해 [1백만 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)를 지원합니다.

785 797 

786Anthropic API에서, Fable 5.1, Fable 5, Sonnet 5 이상, Haiku 5.5 및 Opus 4.7 이상은 Pro를 포함한 모든 플랜에서 1M 윈도우로 실행됩니다. 이 모델들에서 `[1m]` 변형을 선택하거나 1M 윈도우에 대해 사용량 크레딧을 켤 필요가 없습니다. Fable 사용 자체는 일부 플랜에서 사용량 크레딧으로 청구될 수 있습니다. [Fable 및 사용량 크레딧](#fable-and-usage-credits)을 참조하세요.798Fable 5.1, Fable 5, Sonnet 5 이상, Haiku 5.5 및 Opus 4.7 이상은 `[1m]` 접미사 없이 기본적으로 1M 윈도우로 실행됩니다. 여기에는 Amazon Bedrock, Google Cloud의 Agent Platform 및 Microsoft Foundry의 세션과 [Claude apps gateway](/docs/ko/claude-apps-gateway) 세션이 포함됩니다. 대신 200K 윈도우로 실행하려면 [1M 컨텍스트 끄기](#turn-off-1m-context)를 참조하세요.

787 799 

788Opus 4.6 및 Sonnet 4.6은 `[1m]` 변형을 통해서만 1M에 도달하며, 해당 변형에 대한 액세스는 플랜에 따라 다릅니다. Max, Team 및 Enterprise 플랜(Team Standard 및 Team Premium 좌석 모두 포함)에서, 1M 컨텍스트가 있는 Opus 4.6은 구독에 포함됩니다. 1M 컨텍스트가 있는 Sonnet 4.6은 모든 구독 플랜(Max 포함)에서 [사용 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)이 필요합니다.800Opus 4.6 및 Sonnet 4.6은 `[1m]` 변형을 통해서만 1M에 도달하며, 해당 변형에 대한 액세스는 플랜에 따라 다릅니다. Max, Team 및 Enterprise 플랜(Team Standard 및 Team Premium 좌석 모두 포함)에서, 1M 컨텍스트가 있는 Opus 4.6은 구독에 포함됩니다. 1M 컨텍스트가 있는 Sonnet 4.6은 모든 구독 플랜(Max 포함)에서 [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)이 필요합니다.

789 801 

790| 플랜 | 1M 컨텍스트가 있는 Opus 4.6 | 1M 컨텍스트가 있는 Sonnet 4.6 |802| 플랜 | 1M 컨텍스트가 있는 Opus 4.6 | 1M 컨텍스트가 있는 Sonnet 4.6 |

791| - | - | - |803| - | - | - |

792| Max, Team 및 Enterprise | 구독에 포함됨 | [사용 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 필요 |804| Max, Team 및 Enterprise | 구독에 포함됨 | [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 필요 |

793| Pro | [사용 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 필요 | [사용 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 필요 |805| Pro | [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 필요 | [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 필요 |

794| API 및 종량제 | 전체 액세스 | 전체 액세스 |806| API 및 종량제 | 전체 액세스 | 전체 액세스 |

795 807 

796Claude Code는 Anthropic API에 직접 연결할 때만 이러한 플랜 요구 사항을 확인합니다. 저장된 claude.ai 로그인이 활성 자격증으로 유지되는 동안 `ANTHROPIC_BASE_URL`을 [LLM 게이트웨이](/docs/ko/llm-gateway#subscriptions-and-gateways)로 지정하면, Claude Code는 계정의 사용 크레딧을 확인하지 않습니다. `[1m]` 옵션은 `/model`에서 사용 가능하게 유지되고, 게이트웨이는 요청이 성공하는지 결정합니다. v2.1.229 이전에는 Claude Code가 해당 구성에서 사용 크레딧을 확인할 수 없을 때 `/model sonnet[1m]`을 거부했습니다.808Claude Code는 Anthropic API에 직접 연결할 때만 이러한 플랜 요구 사항을 확인합니다. 저장된 claude.ai 로그인이 활성 자격 증명으로 유지되는 동안 `ANTHROPIC_BASE_URL`을 [LLM 게이트웨이](/docs/ko/llm-gateway#subscriptions-and-gateways)로 지정하면, Claude Code는 플랜의 사용량 크레딧을 확인하지 않습니다. `[1m]` 옵션은 `/model`에서 사용 가능하게 유지되고, 게이트웨이가 요청의 성공 여부를 결정합니다. v2.1.229 이전에는 Claude Code가 해당 구성에서 계정의 사용량 크레딧을 확인할 수 없을 때 `/model sonnet[1m]`을 거부했습니다.

797 809 

798<span id="context-window-behind-a-gateway" />810Anthropic API에서 1M 컨텍스트 윈도우는 200K를 초과하는 토큰에 대한 프리미엄 없이 표준 모델 가격을 사용합니다. 단, Haiku 5.5는 [100K 토큰보다 긴 프롬프트에서 비용이 더 높습니다](#haiku-5-5-context-window-and-pricing). 확장 컨텍스트가 구독에 포함된 플랜의 경우, 사용은 계속 구독에 포함됩니다. 사용량 크레딧을 통해 확장 컨텍스트에 액세스하는 플랜의 경우, 토큰은 사용량 크레딧으로 청구됩니다.

799 

800`ANTHROPIC_BASE_URL`을 [LLM 게이트웨이](/docs/ko/llm-gateway) 또는 다른 프록시로 설정하면, Claude Code는 인식하는 각 모델에 Anthropic API에서 해당 모델이 가진 것과 동일한 컨텍스트 윈도우를 제공합니다. Fable 5.1, Fable 5, Sonnet 5 이상, Haiku 5.5 및 Opus 4.7 이상은 선택할 `[1m]` 변형 없이 1M 윈도우를 얻고, Opus 4.6과 같이 `[1m]` 변형을 통해서만 1M에 도달하는 모델은 해당 변형 없이는 200K에서 실행됩니다. Claude Code는 게이트웨이 또는 그 뒤의 서버가 적용하는 더 낮은 제한을 감지할 수 없습니다. 게이트웨이가 200K 토큰을 초과하는 요청을 거부하면, Claude Code를 시작하는 환경에서 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`](/docs/ko/env-vars)을 설정하여 모든 모델의 세션이 [해당 경계에서 압축](#set-the-auto-compact-window)되도록 하세요.

801 

8021M 컨텍스트를 끄려면, `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`을 설정하세요. Claude Code는 모델 선택기에서 1M 모델 변형을 제거합니다. Sonnet 5 및 Fable 모델과 같이 기본 1M 윈도우가 있는 모델에서, 모델을 200K 컨텍스트 윈도우로 취급합니다:

803 

804* 자동 압축이 켜져 있으면, 세션은 [자동 압축](#set-the-auto-compact-window)을 통해 200K 경계에서 압축됩니다. 자동 압축 윈도우를 200K 위로 설정해도 보류를 해제하지 않습니다. Claude Code는 해당 윈도우를 모델의 컨텍스트 윈도우로 제한하기 때문입니다.

805* 자동 압축이 꺼져 있으면, 세션은 압축하는 대신 200K 경계에서 [컨텍스트 제한 오류](/docs/ko/errors#prompt-is-too-long)로 중지됩니다.

806 811 

807v2.1.223 이전에는 Claude Code가 Sonnet 5, Opus 4.8 및 Opus 5 세션만 200K로 유지했습니다. [환경 변수](/docs/ko/env-vars)를 참조하세요.812<h4 id="select-1m-context-for-opus-4-6-or-sonnet-4-6">

808 813 Opus 4.6 또는 Sonnet 4.6에 대해 1M 컨텍스트 선택

8091M 컨텍스트 윈도우는 200K를 초과하는 토큰에 대한 프리미엄 없이 표준 모델 가격을 사용합니다. 단, Haiku 5.5는 [100K 토큰보다 긴 프롬프트에서 비용이 더 높습니다](#haiku-5-5-context-window-and-pricing). 확장 컨텍스트가 구독에 포함된 플랜의 경우, 사용은 계속 구독에 포함됩니다. 사용량 크레딧을 통해 확장 컨텍스트에 액세스하는 플랜의 경우, 토큰은 사용량 크레딧으로 청구됩니다.814</h4>

810 

811계정이 1M 컨텍스트를 지원하면, 옵션이 최신 버전의 Claude Code의 `/model` 선택기에 나타납니다. 보이지 않으면, 세션을 다시 시작하고, 제3자 제공자에서 배포가 `ANTHROPIC_DEFAULT_*_MODEL` 변수로 [모델을 고정](#pin-models-for-third-party-deployments)했는지 확인하세요.

812 815 

813모델 별칭 또는 전체 모델 이름으로 `[1m]` 접미사를 사용할 수도 있습니다:816이름으로 1M 변형을 선택하려면, 모델 별칭 또는 전체 모델 이름에 `[1m]` 접미사를 추가하세요:

814 817 

815```text theme={null}818```text theme={null}

816# opus[1m] 또는 sonnet[1m] 별칭 사용819# Append [1m] to a full model name

817/model opus[1m]820/model claude-opus-4-6[1m]

818/model sonnet[1m]821/model claude-sonnet-4-6[1m]

819 822 

820# 또는 전체 모델 이름에 [1m] 추가823# Or to an alias: the suffix applies to the model the alias resolves to

821/model claude-opus-4-8[1m]824/model opus[1m]

822```825```

823 826 

824<h4 id="sonnet-5-5-and-sonnet-5-context-window">827<span id="context-window-behind-a-gateway" />

825 Sonnet 5.5 및 Sonnet 5 컨텍스트 윈도우828 

829<h4 id="context-window-behind-an-llm-gateway">

830 LLM 게이트웨이 뒤의 컨텍스트 윈도우

826</h4>831</h4>

827 832 

828Anthropic API에서, Sonnet 5.5 및 Sonnet 5는 항상 1M 컨텍스트 윈도우로 실행됩니다. 200K 변형이 없고, 선택할 `[1m]` 접미사가 없으며, 어떤 플랜에서도 사용 크레딧이 필요하지 않습니다. 세션은 윈도우가 채워지기 전에 자동 압축되며, 기본적으로 약 967K 토큰에서 압축됩니다. [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/ko/env-vars)를 설정하여 다른 임계값을 선택합니다.833`ANTHROPIC_BASE_URL`을 [LLM 게이트웨이](/docs/ko/llm-gateway) 또는 다른 프록시로 설정하면, Claude Code는 인식하는 각 모델에 Anthropic API에서 해당 모델이 가진 것과 동일한 컨텍스트 윈도우를 제공합니다. Fable 5.1, Fable 5, Sonnet 5 이상, Haiku 5.5 및 Opus 4.7 이상은 선택할 `[1m]` 변형 없이 1M 윈도우를 얻고, Opus 4.6과 같이 `[1m]` 변형을 통해서만 1M에 도달하는 모델은 해당 변형 없이는 200K에서 실행됩니다. Claude Code는 게이트웨이 또는 그 뒤의 서버가 적용하는 더 낮은 제한을 감지할 수 없습니다. 게이트웨이가 200K 토큰을 초과하는 요청을 거부하면, Claude Code를 시작하는 환경에서 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`](/docs/ko/env-vars)을 설정하여 모든 모델의 세션이 [해당 경계에서 압축](#set-the-auto-compact-window)되도록 하세요.

829 834 

830Claude Code는 [LLM 게이트웨이](/docs/ko/llm-gateway) 또는 다른 사용자 정의 `ANTHROPIC_BASE_URL` 뒤에서 Sonnet 5.5 및 Sonnet 5에 동일한 1M 윈도우를 제공합니다. 게이트웨이가 더 낮은 제한을 적용하면, [게이트웨이 뒤의 컨텍스트 윈도우](#context-window-behind-a-gateway)를 참조하세요.835<h4 id="turn-off-1m-context">

836 1M 컨텍스트 끄기

837</h4>

831 838 

832이 설정은 윈도우를 200K로 예산합니다:839세션을 200K 윈도우로 유지하려면, 셸 또는 [설정 파일](/docs/ko/env-vars#set-environment-variables)에서 `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`을 설정하세요. Claude Code는 모델 선택기에서 `[1m]` 모델 변형을 제거합니다. Fable 모델, Sonnet 5 이상, Opus 4.7 이상처럼 기본적으로 1M 윈도우로 실행되는 모델에서는 모델을 200K 컨텍스트 윈도우를 가진 것으로 취급합니다:

833 840 

834* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**: 기본 1M 윈도우가 있는 모든 모델의 세션을 200K 윈도우로 유지합니다. [확장 컨텍스트](#extended-context)에서 보류가 적용되는 방식을 참조하세요. 컨텍스트를 제한해야 하는 배포에 유용합니다.841* 자동 압축이 켜져 있으면, 세션은 [자동 압축](#set-the-auto-compact-window)을 통해 200K 경계에서 압축됩니다. 자동 압축 윈도우를 200K 위로 설정해도 보류가 해제되지 않습니다. Claude Code는 해당 윈도우를 모델의 컨텍스트 윈도우로 제한하기 때문입니다.

842* 자동 압축이 꺼져 있으면, 세션은 압축하는 대신 200K 경계에서 [컨텍스트 제한 오류](/docs/ko/errors#prompt-is-too-long)로 중지됩니다.

835 843 

836<h4 id="haiku-5-5-context-window-and-pricing">844<h4 id="haiku-5-5-context-window-and-pricing">

837 Haiku 5.5 컨텍스트 윈도우 및 가격845 Haiku 5.5 컨텍스트 윈도우 및 가격


857 865 

858* **현재 모델에 대해, 이 세션 및 이후 세션의 경우**: `/autocompact`를 값과 함께 실행합니다(예: `/autocompact 500k`). Claude Code는 이를 사용자 설정의 [`modelSettings`](/docs/ko/settings-reference#modelsettings) 아래 현재 모델 항목에 저장하고 현재 세션에 적용합니다. 관리형 설정과 같은 더 높은 우선순위의 [설정 범위](/docs/ko/settings#settings-precedence)가 해당 모델 또는 모든 모델에 대해 자체 윈도우를 설정하면 명령은 값을 저장하지만 세션은 해당 범위의 윈도우를 유지하며 명령이 이를 알립니다. `/autocompact auto`를 실행하여 모델에 맞게 조정된 윈도우로 돌아갑니다. v2.1.288 이전에는 이 명령이 모든 모델에 대해 하나의 윈도우를 최상위 `autoCompactWindow`로 저장했습니다.866* **현재 모델에 대해, 이 세션 및 이후 세션의 경우**: `/autocompact`를 값과 함께 실행합니다(예: `/autocompact 500k`). Claude Code는 이를 사용자 설정의 [`modelSettings`](/docs/ko/settings-reference#modelsettings) 아래 현재 모델 항목에 저장하고 현재 세션에 적용합니다. 관리형 설정과 같은 더 높은 우선순위의 [설정 범위](/docs/ko/settings#settings-precedence)가 해당 모델 또는 모든 모델에 대해 자체 윈도우를 설정하면 명령은 값을 저장하지만 세션은 해당 범위의 윈도우를 유지하며 명령이 이를 알립니다. `/autocompact auto`를 실행하여 모델에 맞게 조정된 윈도우로 돌아갑니다. v2.1.288 이전에는 이 명령이 모든 모델에 대해 하나의 윈도우를 최상위 `autoCompactWindow`로 저장했습니다.

859* **모든 모델의 경우**: 설정 파일에서 [`autoCompactWindow`](/docs/ko/settings-reference#autocompactwindow)를 설정합니다(예: `~/.claude/settings.json`의 `"autoCompactWindow": 200000`). `/autocompact`로 특정 모델에 대해 저장한 윈도우는 해당 모델에 대해 같은 파일의 이 키보다 우선합니다.867* **모든 모델의 경우**: 설정 파일에서 [`autoCompactWindow`](/docs/ko/settings-reference#autocompactwindow)를 설정합니다(예: `~/.claude/settings.json`의 `"autoCompactWindow": 200000`). `/autocompact`로 특정 모델에 대해 저장한 윈도우는 해당 모델에 대해 같은 파일의 이 키보다 우선합니다.

860* **한 번의 실행의 경우**: Claude Code를 시작할 때 [`--autocompact`](/docs/ko/cli-reference#cli-flags)를 전달합니다. 플래그는 저장된 설정을 변경하지 않고 해당 실행에 대해 저장된 설정을 재정의하며, `claude --autocompact auto`는 저장된 설정에 값이 있더라도 조정된 윈도우에서 세션을 실행합니다. `/autocompact`와 달리 플래그는 관리 설정과 같은 더 높은 우선순위의 설정 범위에 의해 선점되지 않습니다.868* **한 번의 실행의 경우**: Claude Code를 시작할 때 [`--autocompact`](/docs/ko/cli-reference#cli-flags)를 전달합니다. 플래그는 저장된 설정을 변경하지 않고 해당 실행에 대해 저장된 설정을 재정의하며, `claude --autocompact auto`는 저장된 설정에 값이 있더라도 조정된 윈도우에서 세션을 실행합니다. `/autocompact`와 달리 플래그는 관리형 설정과 같은 더 높은 우선순위의 설정 범위에 의해 선점되지 않습니다.

861* **스크립트 및 클라우드 환경에서**: [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/ko/env-vars)를 설정합니다. 설정되어 있는 동안 명령, 플래그 및 설정보다 우선하며, `/autocompact`는 윈도우를 변경하는 대신 재정의를 보고합니다.869* **스크립트 및 클라우드 환경에서**: [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/ko/env-vars)를 설정합니다. 설정되어 있는 동안 명령, 플래그 및 설정보다 우선하며, `/autocompact`는 윈도우를 변경하는 대신 재정의를 보고합니다.

862 870 

863명령과 플래그는 다음 형식 중 하나로 100K에서 1M 토큰 범위의 윈도우 크기를 허용합니다.871명령과 플래그는 다음 형식 중 하나로 100K에서 1M 토큰 범위의 윈도우 크기를 허용합니다.


875자동 압축 윈도우를 설정하지 않으면 Claude Code는 다음 세션을 제외하고 대화가 모델의 컨텍스트 제한에 도달할 때 압축합니다.883자동 압축 윈도우를 설정하지 않으면 Claude Code는 다음 세션을 제외하고 대화가 모델의 컨텍스트 제한에 도달할 때 압축합니다.

876 884 

877* [클라우드 세션](/docs/ko/claude-code-on-the-web)은 대화가 모델 제한에 접근할 때 압축합니다.885* [클라우드 세션](/docs/ko/claude-code-on-the-web)은 대화가 모델 제한에 접근할 때 압축합니다.

878* Sonnet 4.6 및 Opus 4.6([확장 컨텍스트](#extended-context) 없음)은 200K 경계에서 압축하며, Opus 4.8 및 이후 버전도 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry와 같은 200K 컨텍스트 윈도우로 실행할 때 압축합니다.886* Sonnet 4.6 및 Opus 4.6([확장 컨텍스트](#extended-context) 없음)은 200K 경계에서 압축합니다.

879* [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/ko/env-vars)을 설정하면 Sonnet 5 및 Fable 모델과 같이 기본 1M 윈도우가 있는 모델은 200K 경계에서 압축합니다.887* [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/ko/env-vars)을 설정하면 Sonnet 5 및 Fable 모델과 같이 기본 1M 윈도우가 있는 모델은 200K 경계에서 압축합니다.

880* 기본 1M 윈도우로 실행되는 모델은 윈도우가 채워지기 전에 압축되며, 기본적으로 약 967K 토큰에서 압축됩니다. Anthropic API에서는 Sonnet 5, Haiku 5.5, Fable 모델, Opus 4.7 이상이 포함됩니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry에서는 [타사 배포를 위한 모델 고정](#pin-models-for-third-party-deployments)에서 해당 윈도우로 실행되는 모델을 참조하십시오. 사용자 정의 `ANTHROPIC_BASE_URL` 뒤에서는 [게이트웨이 뒤의 컨텍스트 윈도우](#context-window-behind-a-gateway)를 참조하십시오.888* 기본 1M 윈도우로 실행되는 모델은 윈도우가 채워지기 전에 압축되며, 기본적으로 약 967K 토큰에서 압축됩니다. 여기에는 Fable 모델, Sonnet 5 이상, Haiku 5.5, Opus 4.7 이상이 포함됩니다. 사용자 정의 `ANTHROPIC_BASE_URL` 뒤에서는 [게이트웨이 뒤의 컨텍스트 윈도우](#context-window-behind-a-gateway)를 참조하십시오.

881* Claude Code가 인식하지 못하는 모델 ID(예: [LLM 게이트웨이](/docs/ko/llm-gateway) 별칭)의 세션은 Claude Code가 ID에 대해 가정하는 컨텍스트 윈도우에서 압축합니다. [게이트웨이 또는 사용자 정의 모델 ID의 윈도우 수정](#correct-the-window-for-a-gateway-or-custom-model-id)을 참조하십시오.889* Claude Code가 인식하지 못하는 모델 ID(예: [LLM 게이트웨이](/docs/ko/llm-gateway) 별칭)의 세션은 Claude Code가 ID에 대해 가정하는 컨텍스트 윈도우에서 압축합니다. [게이트웨이 또는 사용자 정의 모델 ID의 윈도우 수정](#correct-the-window-for-a-gateway-or-custom-model-id)을 참조하십시오.

882 890 

883<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">891<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">


947| 환경 변수 | 설명 |955| 환경 변수 | 설명 |

948| - | - |956| - | - |

949| `ANTHROPIC_DEFAULT_FABLE_MODEL` | `fable`에 사용할 모델이며, Claude Code가 타사 제공자에서 [자동 모델 폴백](#automatic-model-fallback)을 위해 Fable 모델로 인식하는 모델 ID입니다. |957| `ANTHROPIC_DEFAULT_FABLE_MODEL` | `fable`에 사용할 모델이며, Claude Code가 타사 제공자에서 [자동 모델 폴백](#automatic-model-fallback)을 위해 Fable 모델로 인식하는 모델 ID입니다. |

950| `ANTHROPIC_DEFAULT_OPUS_MODEL` | `opus`에 사용할 모델이거나 Plan Mode가 활성화되었을 때 `opusplan`에 사용할 모델입니다. |958| `ANTHROPIC_DEFAULT_OPUS_MODEL` | `opus`에 사용할 모델이거나 플랜 모드가 활성화되었을 때 `opusplan`에 사용할 모델입니다. |

951| `ANTHROPIC_DEFAULT_SONNET_MODEL` | `sonnet`에 사용할 모델이거나 Plan Mode가 활성화되지 않았을 때 `opusplan`에 사용할 모델입니다. |959| `ANTHROPIC_DEFAULT_SONNET_MODEL` | `sonnet`에 사용할 모델이거나 플랜 모드가 활성화되지 않았을 때 `opusplan`에 사용할 모델입니다. |

952| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | `haiku`에 사용할 모델이거나 [백그라운드 기능](/docs/ko/costs#background-token-usage)입니다. |960| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | `haiku`에 사용할 모델이거나 [백그라운드 기능](/docs/ko/costs#background-token-usage)입니다. |

953| `CLAUDE_CODE_SUBAGENT_MODEL` | [subagents](/docs/ko/sub-agents#choose-a-model), [agent team](/docs/ko/agent-teams#specify-teammates-and-models) 팀원, 그리고 다른 방식으로 모델이 할당되지 않은 [workflow](/docs/ko/workflows) 에이전트의 기본 모델입니다. `haiku`와 같은 별칭이나 전체 모델 이름을 허용합니다. 호출별 모델이나 정의의 `model` 필드(예: `inherit`)가 우선합니다. 이를 변경하려면 [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/ko/sub-agents#run-every-subagent-on-one-model)를 설정합니다. |961| `CLAUDE_CODE_SUBAGENT_MODEL` | [서브에이전트](/docs/ko/sub-agents#choose-a-model), [에이전트 팀](/docs/ko/agent-teams#specify-teammates-and-models) 팀원, 그리고 다른 방식으로 모델이 할당되지 않은 [워크플로](/docs/ko/workflows) 에이전트의 기본 모델입니다. `haiku`와 같은 별칭이나 전체 모델 이름을 허용합니다. 호출별 모델이나 정의의 `model` 필드(`inherit` 포함)가 우선합니다. 이를 변경하려면 [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/ko/sub-agents#run-every-subagent-on-one-model)를 설정합니다. |

954 962 

955타사 제공자에서 [고정된 모델 표시 및 기능 사용자 정의](#customize-pinned-model-display-and-capabilities)는 `/model` 선택기에서 고정된 모델의 행이 표시하는 내용을 설명합니다.963타사 제공자에서 [고정된 모델 표시 및 기능 사용자 정의](#customize-pinned-model-display-and-capabilities)는 `/model` 선택기에서 고정된 모델의 행이 표시하는 내용을 설명합니다.

956 964 

957참고: `ANTHROPIC_SMALL_FAST_MODEL`은 `ANTHROPIC_DEFAULT_HAIKU_MODEL`을 위해 더 이상 사용되지 않습니다.965참고: `ANTHROPIC_SMALL_FAST_MODEL`은 deprecated되었으며 `ANTHROPIC_DEFAULT_HAIKU_MODEL`로 대체되었습니다.

958 966 

959<h3 id="pin-models-for-third-party-deployments">967<h3 id="pin-models-for-third-party-deployments">

960 타사 배포를 위한 모델 고정968 타사 배포를 위한 모델 고정


980 988 

981`ANTHROPIC_DEFAULT_FABLE_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`에 대해 동일한 패턴을 적용합니다. 모든 제공자의 현재 및 레거시 모델 ID는 [Models overview](https://platform.claude.com/docs/en/about-claude/models/overview)를 참조하세요. 사용자를 새 모델 버전으로 업그레이드하려면 이러한 환경 변수를 업데이트하고 다시 배포합니다.989`ANTHROPIC_DEFAULT_FABLE_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`에 대해 동일한 패턴을 적용합니다. 모든 제공자의 현재 및 레거시 모델 ID는 [Models overview](https://platform.claude.com/docs/en/about-claude/models/overview)를 참조하세요. 사용자를 새 모델 버전으로 업그레이드하려면 이러한 환경 변수를 업데이트하고 다시 배포합니다.

982 990 

983고정된 모델에 대해 [확장 컨텍스트](#extended-context)를 활성화하려면 `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, 또는 `ANTHROPIC_DEFAULT_FABLE_MODEL`의 모델 ID에 `[1m]`을 추가합니다:991Opus 4.8 또는 Sonnet 5와 같이 기본적으로 1M 윈도우를 갖는 고정된 모델은 Claude Code가 고정된 ID를 해당 모델과 일치시킬 수 있을 때 접미사 없이 [1M 컨텍스트 윈도우](#extended-context)로 실행됩니다. ID는 `us.anthropic.claude-opus-4-8`이 `claude-opus-4-8`을 포함하는 것처럼 모델의 Anthropic API ID를 포함하거나, [`modelOverrides`](#override-model-ids-per-version) 항목이 모델을 해당 ID에 매핑할 때 일치합니다. Claude Code가 모델과 일치시킬 수 없는 고정된 ID에서는 ID에 `[1m]` 접미사가 없는 한 세션이 기본적으로 200K 윈도우로 실행됩니다.

992 

993Opus 4.6 또는 Sonnet 4.6과 같이 `[1m]` 변형을 통해 1M에 도달하는 모델의 경우 `ANTHROPIC_DEFAULT_OPUS_MODEL` 또는 `ANTHROPIC_DEFAULT_SONNET_MODEL`의 모델 ID에 `[1m]`을 추가하여 확장 컨텍스트를 활성화합니다:

984 994 

985```bash theme={null}995```bash theme={null}

986export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8[1m]'996export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-6[1m]'

987```997```

988 998 

989`[1m]` 접미사를 사용하면 1M 컨텍스트 윈도우가 고정된 별칭의 모든 사용에 적용되며, [`opusplan`](#opusplan-model-setting)의 plan-mode Opus 단계와 별칭을 이름으로 지정하는 `model` frontmatter를 가진 [subagents](/docs/ko/sub-agents#choose-a-model)를 포함합니다.999`[1m]` 접미사를 사용하면 1M 컨텍스트 윈도우가 고정된 별칭의 모든 사용에 적용되며, [`opusplan`](#opusplan-model-setting)의 플랜 모드 Opus 단계와 별칭을 이름으로 지정하는 `model` frontmatter를 가진 [서브에이전트](/docs/ko/sub-agents#choose-a-model)를 포함합니다.

990 1000 

991* Claude Code는 모델 ID를 제공자에게 보내기 전에 접미사를 제거합니다.1001* Claude Code는 모델 ID를 제공자에게 보내기 전에 접미사를 제거합니다.

992* 기본 모델이 1M 컨텍스트를 [지원할 때만](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) `[1m]`을 추가합니다.1002* 기본 모델이 1M 컨텍스트를 [지원할 때만](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) `[1m]`을 추가합니다.

993* 접미사는 모델별이 아닌 변수별로 읽혀집니다. Amazon Bedrock, Google Cloud의 Agent Platform 및 Microsoft Foundry에서 한 변수의 `[1m]` 없는 모델 ID는 다른 변수가 접미사와 함께 동일한 모델을 설정하더라도 200K 컨텍스트를 사용합니다. Sonnet 5는 항상 이러한 제공자에서 1M 윈도우로 실행되며 접미사가 필요하지 않습니다.1003* 접미사는 모델별이 아닌 변수별로 읽혀집니다. Amazon Bedrock, Google Cloud의 Agent Platform 및 Microsoft Foundry에서 한 변수의 `[1m]` 없는 Opus 4.6 또는 Sonnet 4.6 ID는 다른 변수가 접미사와 함께 동일한 모델을 설정하더라도 200K 컨텍스트를 사용합니다.

994 1004 

995`ANTHROPIC_DEFAULT_*_MODEL` 변수를 설정하면 `/model` 선택기는 패밀리의 기본 제공 행 대신 해당 모델에 대한 하나의 행을 표시하며, 1M 컨텍스트 행을 포함합니다. 해당 변수에 접미사를 추가하지 않고 1M 윈도우에 도달하려면 사용자가 `/model opus[1m]`을 실행하고, Claude Code는 변수가 이름을 지정하는 모델에 접미사를 적용합니다. `/model sonnet[1m]`도 동일한 방식으로 작동합니다.1005`ANTHROPIC_DEFAULT_*_MODEL` 변수를 설정하면 `/model` 선택기는 패밀리의 기본 제공 행 대신 해당 모델에 대한 하나의 행을 표시하며, 1M 컨텍스트 행을 포함합니다. 해당 변수에 접미사를 추가하지 않고 1M 윈도우에 도달하려면 사용자가 `/model opus[1m]`을 실행하고, Claude Code는 변수가 이름을 지정하는 모델에 접미사를 적용합니다. `/model sonnet[1m]`도 동일한 방식으로 작동합니다.

996 1006 

997<Note>1007<Note>

998 [MDM 또는 관리 설정 파일](/docs/ko/managed-settings#delivery-mechanisms)을 통해 전달된 `availableModels` 허용 목록은 타사 제공자를 사용할 때도 여전히 적용됩니다. [서버 관리 설정은 그곳에 전달되지 않습니다](/docs/ko/server-managed-settings#platform-availability).1008 [MDM 또는 관리형 설정 파일](/docs/ko/managed-settings#delivery-mechanisms)을 통해 전달된 `availableModels` 허용 목록은 타사 제공자를 사용할 때도 여전히 적용됩니다. [서버 관리형 설정은 그곳에 전달되지 않습니다](/docs/ko/server-managed-settings#platform-availability).

999 1009 

1000 필터링은 `opus`와 같은 모델 별칭, `claude-opus-4-8`과 같은 버전 접두사, 또는 전체 제공자 형식 모델 ID와 일치합니다. `us.anthropic.`과 같은 제공자별 접두사는 제거되지 않으므로 특정 모델을 허용하려면 전체 제공자 형식 ID를 나열하거나 [`modelOverrides`](#override-model-ids-per-version)를 통해 매핑합니다. 모든 `[1m]` 접미사는 허용 목록 항목과 요청된 모델 모두에서 제거되어 일치합니다.1010 필터링은 `opus`와 같은 모델 별칭, `claude-opus-4-8`과 같은 버전 접두사, 또는 전체 제공자 형식 모델 ID와 일치합니다. `us.anthropic.`과 같은 제공자별 접두사는 제거되지 않으므로 특정 모델을 허용하려면 전체 제공자 형식 ID를 나열하거나 [`modelOverrides`](#override-model-ids-per-version)를 통해 매핑합니다. 고정된 모델의 경우 해당 ID는 해당 `ANTHROPIC_DEFAULT_*_MODEL` 변수에 설정한 값입니다. 모든 `[1m]` 접미사는 일치 비교 전에 허용 목록 항목과 요청된 모델 모두에서 제거됩니다.

1001</Note>1011</Note>

1002 1012 

1003<h3 id="customize-pinned-model-display-and-capabilities">1013<h3 id="customize-pinned-model-display-and-capabilities">


1013 1023 

1014Claude Code는 또한 고정된 모델이 지원하는 기능을 인식하지 못할 수 있습니다. 각 고정된 모델에 대한 동반 환경 변수로 표시 이름과 설명을 직접 설정하고 기능을 선언할 수 있습니다.1024Claude Code는 또한 고정된 모델이 지원하는 기능을 인식하지 못할 수 있습니다. 각 고정된 모델에 대한 동반 환경 변수로 표시 이름과 설명을 직접 설정하고 기능을 선언할 수 있습니다.

1015 1025 

1016이러한 변수는 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry와 같은 타사 제공자에서 적용됩니다. `_NAME` 및 `_DESCRIPTION` 변수는 `ANTHROPIC_BASE_URL`이 [LLM gateway](/docs/ko/llm-gateway)를 가리킬 때도 적용됩니다. `api.anthropic.com`에 직접 연결할 때는 영향을 주지 않습니다.1026이러한 변수는 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry와 같은 타사 제공자에서 적용됩니다. `_NAME` 및 `_DESCRIPTION` 변수는 `ANTHROPIC_BASE_URL`이 [LLM 게이트웨이](/docs/ko/llm-gateway)를 가리킬 때도 적용됩니다. `api.anthropic.com`에 직접 연결할 때는 영향을 주지 않습니다.

1017 1027 

1018| 환경 변수 | 설명 |1028| 환경 변수 | 설명 |

1019| - | - |1029| - | - |


1023 1033 

1024동일한 `_NAME`, `_DESCRIPTION`, `_SUPPORTED_CAPABILITIES` 접미사는 `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, `ANTHROPIC_DEFAULT_FABLE_MODEL`, `ANTHROPIC_CUSTOM_MODEL_OPTION`에 사용 가능합니다.1034동일한 `_NAME`, `_DESCRIPTION`, `_SUPPORTED_CAPABILITIES` 접미사는 `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, `ANTHROPIC_DEFAULT_FABLE_MODEL`, `ANTHROPIC_CUSTOM_MODEL_OPTION`에 사용 가능합니다.

1025 1035 

1026Claude Code는 모델 ID를 알려진 패턴과 비교하여 [노력 수준](#adjust-effort-level) 및 [확장 사고](#extended-thinking)와 같은 기능을 활성화합니다. Amazon Bedrock ARN 또는 사용자 정의 배포 이름과 같은 제공자별 ID는 종종 이러한 패턴과 일치하지 않아 지원되는 기능이 비활성화됩니다. `_SUPPORTED_CAPABILITIES`를 설정하여 Claude Code에 모델이 실제로 지원하는 기능을 알립니다:1036Claude Code는 모델 ID를 알려진 패턴과 비교하여 [effort 수준](#adjust-effort-level) 및 [확장 사고](#extended-thinking)와 같은 기능을 활성화합니다. Amazon Bedrock ARN 또는 사용자 정의 배포 이름과 같은 제공자별 ID는 종종 이러한 패턴과 일치하지 않아 지원되는 기능이 비활성화됩니다. `_SUPPORTED_CAPABILITIES`를 설정하여 Claude Code에 모델이 실제로 지원하는 기능을 알립니다:

1027 1037 

1028| 기능 값 | 활성화 |1038| 기능 값 | 활성화 |

1029| - | - |1039| - | - |

1030| `effort` | [노력 수준](#adjust-effort-level) 및 `/effort` 명령 |1040| `effort` | [effort 수준](#adjust-effort-level) 및 `/effort` 명령 |

1031| `xhigh_effort` | `xhigh` 노력 수준 |1041| `xhigh_effort` | `xhigh` effort 수준 |

1032| `max_effort` | `max` 노력 수준 |1042| `max_effort` | `max` effort 수준 |

1033| `thinking` | [확장 사고](#extended-thinking) |1043| `thinking` | [확장 사고](#extended-thinking) |

1034| `adaptive_thinking` | 작업 복잡도에 따라 동적으로 사고를 할당하는 적응형 추론 |1044| `adaptive_thinking` | 작업 복잡도에 따라 동적으로 사고를 할당하는 적응형 추론 |

1035| `interleaved_thinking` | 도구 호출 간의 사고 |1045| `interleaved_thinking` | 도구 호출 간의 사고 |


1049 버전별 모델 ID 재정의1059 버전별 모델 ID 재정의

1050</h3>1060</h3>

1051 1061 

1052Claude Code를 임베드하고 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ko/env-vars)를 설정하는 플랫폼에서 호스트의 모델 구성이 관리 모델 설정보다 우선하며, 호스트가 자신의 것을 제공하지 않는 한 관리 `availableModels` 허용 목록은 계속 적용됩니다. [관리 설정 우선순위의 예외](/docs/ko/settings#exceptions-to-managed-settings-precedence)는 호스트가 재정의하는 키와 변수를 나타냅니다.1062Claude Code를 임베드하고 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ko/env-vars)를 설정하는 플랫폼에서 호스트의 모델 구성이 관리형 모델 설정보다 우선하며, 호스트가 자신의 것을 제공하지 않는 한 관리형 `availableModels` 허용 목록은 계속 적용됩니다. [관리형 설정 우선순위의 예외](/docs/ko/settings#exceptions-to-managed-settings-precedence)는 호스트가 재정의하는 키와 변수를 나타냅니다.

1053 1063 

1054위의 패밀리 수준 환경 변수는 패밀리 별칭당 하나의 모델 ID를 구성합니다. 동일한 패밀리 내의 여러 버전을 서로 다른 제공자 ID에 매핑해야 하는 경우 대신 `modelOverrides` 설정을 사용합니다.1064위의 패밀리 수준 환경 변수는 패밀리 별칭당 하나의 모델 ID를 구성합니다. 동일한 패밀리 내의 여러 버전을 서로 다른 제공자 ID에 매핑해야 하는 경우 대신 `modelOverrides` 설정을 사용합니다.

1055 1065 


1075 1085 

1076재정의는 `/model` 선택기의 각 항목을 지원하는 기본 제공 모델 ID를 대체합니다. Amazon Bedrock에서 `modelOverrides` 항목은 Claude Code가 시작 시 자동으로 발견하는 모든 추론 프로필보다 우선합니다. Claude Code는 Amazon Bedrock 추론 프로필 ARN이나 Microsoft Foundry 배포 이름과 같이 이미 제공자 네이티브인 값을 제공자에게 그대로 전달합니다.1086재정의는 `/model` 선택기의 각 항목을 지원하는 기본 제공 모델 ID를 대체합니다. Amazon Bedrock에서 `modelOverrides` 항목은 Claude Code가 시작 시 자동으로 발견하는 모든 추론 프로필보다 우선합니다. Claude Code는 Amazon Bedrock 추론 프로필 ARN이나 Microsoft Foundry 배포 이름과 같이 이미 제공자 네이티브인 값을 제공자에게 그대로 전달합니다.

1077 1087 

1078재정의는 `--model`, `ANTHROPIC_MODEL` 환경 변수, 또는 `ANTHROPIC_DEFAULT_*_MODEL` 환경 변수를 통해 Anthropic 모델 ID를 직접 전달할 때도 적용됩니다. Amazon Bedrock, Google Cloud의 Agent Platform, [Mantle](/docs/ko/amazon-bedrock#use-the-mantle-endpoint)에서 `modelOverrides` 항목이 없는 Anthropic 모델 ID는 제공자가 해당 버전을 지원할 때 `/model` 선택기 행과 동일한 제공자별 ID로 확인됩니다. Mantle은 버전의 부분 집합을 지원합니다. 해당 부분 집합 외의 Anthropic 모델 ID의 경우 Claude Code는 `modelOverrides` 항목이 이를 포함하지 않는 한 원본 ID를 Mantle에 보냅니다. v2.1.200 이전에는 `--model` 및 환경 변수 값이 재정의 맵을 거치지 않고 제공자에게 그대로 도달했습니다.1088재정의는 `--model`, `ANTHROPIC_MODEL` 환경 변수, 또는 `ANTHROPIC_DEFAULT_*_MODEL` 환경 변수를 통해 Anthropic 모델 ID를 직접 전달할 때도 적용됩니다. Amazon Bedrock, Google Cloud의 Agent Platform, [Mantle](/docs/ko/amazon-bedrock#use-the-mantle-endpoint)에서 `modelOverrides` 항목이 없는 Anthropic 모델 ID는 제공자가 해당 버전을 지원할 때 `/model` 선택기 행과 동일한 제공자별 ID로 확인됩니다. Mantle은 버전의 부분 집합을 지원합니다. 해당 부분 집합 외의 Anthropic 모델 ID의 경우 Claude Code는 `modelOverrides` 항목이 이를 포함하지 않는 한 원본 ID를 매핑하지 않고 Mantle에 보냅니다. v2.1.200 이전에는 `--model` 및 환경 변수 값이 재정의 맵을 거치지 않고 제공자에게 그대로 도달했습니다.

1079 1089 

1080`modelOverrides`는 `availableModels`과 함께 작동합니다. 허용 목록은 재정의 값이 아닌 Anthropic 모델 ID에 대해 평가되므로 `availableModels`의 `"opus"`와 같은 항목은 Opus 버전이 ARN에 매핑되어도 계속 일치합니다. `enforceAvailableModels`이 관리 설정에서 설정되면 강제된 기본값은 [관리 설정](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)에서만 `modelOverrides`를 통해 확인됩니다. 추론 프로필 ARN에 고정된 버전과 같은 관리자의 매핑이 강제된 기본값에서 인정됩니다. 사용자 또는 프로젝트 설정의 재정의는 이에 영향을 주지 않습니다.1090`modelOverrides`는 `availableModels`과 함께 작동합니다. 허용 목록은 재정의 값이 아닌 Anthropic 모델 ID에 대해 평가되므로 `availableModels`의 `"opus"`와 같은 항목은 Opus 버전이 ARN에 매핑되어도 계속 일치합니다. `enforceAvailableModels`이 관리형 설정에서 설정되면 강제된 기본값은 [관리형 설정](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)의 `modelOverrides`를 통해서만 확인됩니다. 추론 프로필 ARN에 고정된 버전과 같은 관리자의 매핑이 강제된 기본값에서 인정됩니다. 사용자 또는 프로젝트 설정의 재정의는 이에 영향을 주지 않습니다.

1081 1091 

1082`availableModels`이 [관리 설정](/docs/ko/managed-settings)에서 설정되면 `--model` 또는 위의 환경 변수를 통해 직접 전달된 Anthropic 모델 ID에는 관리 설정의 `modelOverrides`만 적용됩니다. Claude Code는 사용자 또는 프로젝트 설정의 해당 ID에 대한 재정의를 무시하며, 관리 목록이 제외하는 ID를 어떤 설정 소스의 `modelOverrides`를 통해서도 확인하지 않습니다. 이 관리 소스 제한은 Claude Code v2.1.200 이상이 필요합니다. 차단된 ID가 처리되는 방식은 [모델 선택 제한](#restrict-model-selection)을 참조하세요.1092`availableModels`이 [관리형 설정](/docs/ko/managed-settings)에서 설정되면 `--model` 또는 위의 환경 변수를 통해 직접 전달된 Anthropic 모델 ID에는 관리형 설정의 `modelOverrides`만 적용됩니다. Claude Code는 사용자 또는 프로젝트 설정의 해당 ID에 대한 재정의를 무시하며, 관리형 목록이 제외하는 ID를 어떤 설정 소스의 `modelOverrides`를 통해서도 확인하지 않습니다. 이 관리형 소스 제한은 Claude Code v2.1.200 이상이 필요합니다. 차단된 ID가 처리되는 방식은 [모델 선택 제한](#restrict-model-selection)을 참조하세요.

1083 1093 

1084<h3 id="prompt-caching-configuration">1094<h3 id="prompt-caching-configuration">

1085 Prompt caching 구성1095 프롬프트 캐싱 구성

1086</h3>1096</h3>

1087 1097 

1088Claude Code는 성능을 최적화하고 비용을 절감하기 위해 [prompt caching](/docs/ko/prompt-caching)을 자동으로 사용합니다. 전역적으로 또는 특정 모델 계층에 대해 prompt caching을 비활성화할 수 있습니다:1098Claude Code는 성능을 최적화하고 비용을 절감하기 위해 [프롬프트 캐싱](/docs/ko/prompt-caching)을 자동으로 사용합니다. 전역적으로 또는 특정 모델 계층에 대해 프롬프트 캐싱을 비활성화할 수 있습니다:

1089 1099 

1090| 환경 변수 | 설명 |1100| 환경 변수 | 설명 |

1091| - | - |1101| - | - |

1092| `DISABLE_PROMPT_CACHING` | 모든 모델에 대해 prompt caching을 비활성화하려면 `1`로 설정합니다. 모델별 설정보다 우선합니다. |1102| `DISABLE_PROMPT_CACHING` | 모든 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다. 모델별 설정보다 우선합니다. |

1093| `DISABLE_PROMPT_CACHING_HAIKU` | [기본 Haiku 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 prompt caching을 비활성화하려면 `1`로 설정합니다. |1103| `DISABLE_PROMPT_CACHING_HAIKU` | [기본 Haiku 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다. |

1094| `DISABLE_PROMPT_CACHING_SONNET` | [기본 Sonnet 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 prompt caching을 비활성화하려면 `1`로 설정합니다. |1104| `DISABLE_PROMPT_CACHING_SONNET` | [기본 Sonnet 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다. |

1095| `DISABLE_PROMPT_CACHING_OPUS` | [기본 Opus 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 prompt caching을 비활성화하려면 `1`로 설정합니다. |1105| `DISABLE_PROMPT_CACHING_OPUS` | [기본 Opus 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다. |

1096| `DISABLE_PROMPT_CACHING_FABLE` | Fable 모델에 대해서만 prompt caching을 비활성화하려면 `1`로 설정합니다. |1106| `DISABLE_PROMPT_CACHING_FABLE` | Fable 모델에 대해서만 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다. |

1097 1107 

1098메인 대화와 subagents에 대해 캐시 TTL을 별도로 선택하려면 [TTL을 직접 선택](/docs/ko/prompt-caching#choose-the-ttl-yourself)을 참조하세요. 캐시 미스를 트리거하는 것이 무엇인지 알아보려면 [Claude Code가 prompt caching을 사용하는 방법](/docs/ko/prompt-caching)을 참조하세요.1108메인 대화와 서브에이전트에 대해 캐시 TTL을 별도로 선택하려면 [TTL을 직접 선택](/docs/ko/prompt-caching#choose-the-ttl-yourself)을 참조하세요. 캐시 미스를 트리거하는 것이 무엇인지 알아보려면 [Claude Code가 프롬프트 캐싱을 사용하는 방법](/docs/ko/prompt-caching)을 참조하세요.

1099 1109 

1100<h2 id="version-history">1110<h2 id="version-history">

1101 버전 이력1111 버전 이력

Details

551* **서버 관리 설정**: 조직의 [서버 관리 설정](/docs/ko/server-managed-settings)의 `env` 블록에 추가합니다. Claude Code는 [서버 관리 설정이 적용되는](/docs/ko/model-config#surface-coverage) 모든 곳(사용자의 머신 및 Claude Tag 채널 세션 이외의 클라우드 세션 포함)에서 시작 시 해당 설정을 가져옵니다. Claude Tag 세션은 서버 관리 설정을 받지 않으므로, 이 방법은 이들을 구성하지 않습니다.551* **서버 관리 설정**: 조직의 [서버 관리 설정](/docs/ko/server-managed-settings)의 `env` 블록에 추가합니다. Claude Code는 [서버 관리 설정이 적용되는](/docs/ko/model-config#surface-coverage) 모든 곳(사용자의 머신 및 Claude Tag 채널 세션 이외의 클라우드 세션 포함)에서 시작 시 해당 설정을 가져옵니다. Claude Tag 세션은 서버 관리 설정을 받지 않으므로, 이 방법은 이들을 구성하지 않습니다.

552* **환경의 변수**: 클라우드 환경의 [환경 변수](/docs/ko/cloud-environments#set-environment-variables)에 추가하여 해당 환경에서 실행되는 세션만 구성합니다. 이것이 Claude Tag 세션에 도달하는 방법입니다.552* **환경의 변수**: 클라우드 환경의 [환경 변수](/docs/ko/cloud-environments#set-environment-variables)에 추가하여 해당 환경에서 실행되는 세션만 구성합니다. 이것이 Claude Tag 세션에 도달하는 방법입니다.

553 553 

554환경을 사용하는 모든 사람이 해당 변수를 읽을 수 있으므로, 수집기 토큰(예: `OTEL_EXPORTER_OTLP_HEADERS`)과 같은 자격 증명을 거기에 넣지 마십시오. 환경의 [네트워크 시크릿](/docs/ko/cloud-environments#add-api-credentials)도 도움이 되지 않습니다. Claude Code의 자체 텔레메트리 내보내기는 [시크릿을 받지 않는 요청](/docs/ko/cloud-environments#requests-that-never-get-the-credential) 중 하나이기 때문입니다. 수집기에 자격 증명이 필요한 경우, 서버 관리 설정을 통해 전체 내보내기를 구성하십시오. 거기에 자격 증명을 설정하면 [Claude Code는 관리형 설정 외부에서 설정된 엔드포인트 변수를 제거합니다](#how-managed-settings-lock-the-otlp-destination).554환경을 사용하는 모든 사람이 해당 변수를 읽을 수 있으므로, 수집기 토큰(예: `OTEL_EXPORTER_OTLP_HEADERS`)과 같은 자격 증명을 거기에 넣지 마십시오. 환경의 [네트워크 시크릿](/docs/ko/cloud-environments#add-network-secrets)도 도움이 되지 않습니다. Claude Code의 자체 텔레메트리 내보내기는 [시크릿을 받지 않는 요청](/docs/ko/cloud-environments#requests-that-never-get-the-credential) 중 하나이기 때문입니다. 수집기에 자격 증명이 필요한 경우, 서버 관리 설정을 통해 전체 내보내기를 구성하십시오. 거기에 자격 증명을 설정하면 [Claude Code는 관리형 설정 외부에서 설정된 엔드포인트 변수를 제거합니다](#how-managed-settings-lock-the-otlp-destination).

555 555 

556클라우드 세션에 대한 텔레메트리를 구성할 때 다음 제약 사항을 염두에 두십시오:556클라우드 세션에 대한 텔레메트리를 구성할 때 다음 제약 사항을 염두에 두십시오:

557 557 


1314* `event.sequence`: [이벤트 상관 속성](#event-correlation-attributes)에서 설명한 이벤트 순서 지정을 위한 프로세스당 카운터1314* `event.sequence`: [이벤트 상관 속성](#event-correlation-attributes)에서 설명한 이벤트 순서 지정을 위한 프로세스당 카운터

1315* `plugin_id`: `<name>@<marketplace>` 형식의 플러그인 식별자1315* `plugin_id`: `<name>@<marketplace>` 형식의 플러그인 식별자

1316* `hook_event`: 메트릭을 내보낸 훅 이벤트 유형1316* `hook_event`: 메트릭을 내보낸 훅 이벤트 유형

1317* 최대 20개의 플러그인 내보낸 메트릭 키. 이름은 `^[a-z][a-z0-9_]{0,39}$`와 일치합니다. 값은 부울 또는 숫자입니다.1317* 플러그인이 내보내는 메트릭 키 최대 20개. 이름은 `^[a-z][a-z0-9_]{0,39}$`와 일치해야 합니다. 값은 Boolean 또는 숫자입니다.

1318 1318 

1319<h4 id="compaction-event">1319<h4 id="compaction-event">

1320 압축 이벤트1320 압축 이벤트


1382* `appearance_id`: 하나의 설문 인스턴스에 대해 내보낸 이벤트를 연결하는 고유 ID1382* `appearance_id`: 하나의 설문 인스턴스에 대해 내보낸 이벤트를 연결하는 고유 ID

1383* `survey_type`: 이벤트를 생성한 설문. `"session"`은 "Claude가 어떻게 하고 있나요?" 평가 프롬프트1383* `survey_type`: 이벤트를 생성한 설문. `"session"`은 "Claude가 어떻게 하고 있나요?" 평가 프롬프트

1384* `response`: `responded` 이벤트의 사용자 선택1384* `response`: `responded` 이벤트의 사용자 선택

1385* `enabled_via_override`: [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/docs/ko/env-vars)이 설정되었을 때 `true`. 부울로 내보냄, 문자열이 아님. `session` 설문 이벤트에 있음. 이 오버라이드가 플릿 전체에 적용되는지 확인하려면 이 속성으로 필터링하세요1385* `enabled_via_override`: [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/docs/ko/env-vars)이 설정된 경우 `true`입니다. 문자열이 아닌 Boolean으로 내보내집니다. `session` 설문 이벤트에 표시됩니다. 이 속성으로 필터링하여 전체 장비에 재정의가 적용되었는지 확인할 수 있습니다

1386 1386 

1387<h4 id="retention-sweep-event">1387<h4 id="retention-sweep-event">

1388 보존 스윕 이벤트1388 보존 스윕 이벤트


1473 예를 들어 `apiKeyHelper`, 두 개의 `env` 변수, 거부 규칙이 있는 관리 설정은 `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`로 내보냄.1473 예를 들어 `apiKeyHelper`, 두 개의 `env` 변수, 거부 규칙이 있는 관리 설정은 `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`로 내보냄.

1474 1474 

1475 Claude Code는 값을 8 KB UTF-8에서 자르고, 자른 값은 유효한 JSON이 아님1475 Claude Code는 값을 8 KB UTF-8에서 자르고, 자른 값은 유효한 JSON이 아님

1476* `managed_settings.settings_truncated` (`managed_settings.settings`가 있을 때): Claude Code가 `managed_settings.settings`를 8 KB에서 자를 때 `true`, 그 외의 경우 `false`. 부울로 내보냄, 문자열이 아님1476* `managed_settings.settings_truncated` (`managed_settings.settings`가 있는 경우): Claude Code가 `managed_settings.settings`를 8 KB에서 자른 경우 `true`, 그렇지 않으면 `false`입니다. 문자열이 아닌 Boolean으로 내보내집니다

1477 1477 

1478<h2 id="interpret-metrics-and-events-data">1478<h2 id="interpret-metrics-and-events-data">

1479 메트릭 및 이벤트 데이터 해석1479 메트릭 및 이벤트 데이터 해석

Details

209| :- | :- | :- | :- |209| :- | :- | :- | :- |

210| 첫 바이트 데드라인 | Claude Code가 요청을 보낸 후 응답 헤더가 도착하지 않음 | 직접 Anthropic API 및 [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws) (HTTPS 프록시 포함), 단 `ANTHROPIC_BASE_URL` 또는 `ANTHROPIC_AWS_BASE_URL`이 [게이트웨이](/docs/ko/gateways)를 통해 라우팅하는 경우는 제외. Amazon Bedrock에서 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`로 옵트인; Google Cloud의 Agent Platform 또는 Microsoft Foundry에서는 실행되지 않음 | 직접 Anthropic API에서 180초, 다른 곳에서 300초, 요청 본문 32KB당 1초 추가 |210| 첫 바이트 데드라인 | Claude Code가 요청을 보낸 후 응답 헤더가 도착하지 않음 | 직접 Anthropic API 및 [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws) (HTTPS 프록시 포함), 단 `ANTHROPIC_BASE_URL` 또는 `ANTHROPIC_AWS_BASE_URL`이 [게이트웨이](/docs/ko/gateways)를 통해 라우팅하는 경우는 제외. Amazon Bedrock에서 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`로 옵트인; Google Cloud의 Agent Platform 또는 Microsoft Foundry에서는 실행되지 않음 | 직접 Anthropic API에서 180초, 다른 곳에서 300초, 요청 본문 32KB당 1초 추가 |

211| 이벤트 수준 감시견 | 응답 이벤트가 파싱되지 않음. 바이트 수준 감시견이 Amazon Bedrock 이외의 연결에서 실행되는 경우, 도착한 바이트(keep-alive ping 포함)도 이 감시견을 재설정하며, 약 5분 동안 파싱된 이벤트가 없을 수 있음 | 모든 제공자 | 300초 |211| 이벤트 수준 감시견 | 응답 이벤트가 파싱되지 않음. 바이트 수준 감시견이 Amazon Bedrock 이외의 연결에서 실행되는 경우, 도착한 바이트(keep-alive ping 포함)도 이 감시견을 재설정하며, 약 5분 동안 파싱된 이벤트가 없을 수 있음 | 모든 제공자 | 300초 |

212| 바이트 수준 감시견 | 와이어에 바이트가 도착하지 않음 (SSE keep-alive ping 포함) | 직접 Anthropic API, [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws), 및 [게이트웨이](/docs/ko/gateways) 연결 (사용자 정의 `ANTHROPIC_BASE_URL` 포함). Amazon Bedrock `vnd.amazon.eventstream` 응답에서 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`로 옵트인; Google Cloud의 Agent Platform 또는 Microsoft Foundry에서는 실행되지 않음 | 직접 Anthropic API에서 180초, 다른 곳에서 300초 |212| 바이트 수준 감시견 | 와이어에 바이트가 도착하지 않음 (SSE keep-alive ping 포함) | 직접 Anthropic API, [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws), 및 [게이트웨이](/docs/ko/gateways) 연결 (사용자 정의 `ANTHROPIC_BASE_URL` 포함). Amazon Bedrock `vnd.amazon.eventstream` 응답에서 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`로 옵트인; Google Cloud의 Agent Platform 또는 Microsoft Foundry에서는 실행되지 않음 | 직접 Anthropic API에서 180초. 사용자 정의 `ANTHROPIC_BASE_URL`을 통하는 경우, Claude Code가 [기능 플래그를 가져온](/docs/ko/env-vars#features-that-need-feature-flag-fetching) 경우 180초, 가져오지 않은 경우 300초. 다른 곳에서 300초 |

213| 본문 유휴 타임아웃 | 5분 동안 바이트가 도착하지 않음 | 직접 Anthropic API, AWS의 Claude Platform, 및 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`이 설정된 Amazon Bedrock 이외의 제공자 (단, [`API_FORCE_IDLE_TIMEOUT`](/docs/ko/env-vars)이 이를 변경하지 않는 한) | 5분 |213| 본문 유휴 타임아웃 | 5분 동안 바이트가 도착하지 않음 | 직접 Anthropic API, AWS의 Claude Platform, 및 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`이 설정된 Amazon Bedrock 이외의 제공자 (단, [`API_FORCE_IDLE_TIMEOUT`](/docs/ko/env-vars)이 이를 변경하지 않는 한) | 5분 |

214 214 

215`CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`을 설정하면, 바이트 수준 감시견이 Bedrock에서 본문 유휴 타임아웃을 대체하며 함께 실행되지 않습니다. 그러면 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`도 Bedrock 스트림이 Claude Code가 연결을 끊긴 것으로 간주하기 전에 얼마나 오래 조용할 수 있는지를 제어하며, 아래 나열된 제한 범위 내입니다. 도착한 바이트는 여전히 Bedrock에서 이벤트 수준 감시견을 재설정하지 않습니다. 디버그 로깅이 켜져 있으면, 각 Bedrock 스트림은 `wire-heartbeat: _chunkTimes absent`로 시작하는 디버그 메시지를 기록합니다.215`CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`을 설정하면, 바이트 수준 감시견이 Bedrock에서 본문 유휴 타임아웃을 대체하며 함께 실행되지 않습니다. 그러면 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`도 Bedrock 스트림이 Claude Code가 연결을 끊긴 것으로 간주하기 전에 얼마나 오래 조용할 수 있는지를 제어하며, 아래 나열된 제한 범위 내입니다. 도착한 바이트는 여전히 Bedrock에서 이벤트 수준 감시견을 재설정하지 않습니다. 디버그 로깅이 켜져 있으면, 각 Bedrock 스트림은 `wire-heartbeat: _chunkTimes absent`로 시작하는 디버그 메시지를 기록합니다.

Details

183| :- | :- | :- |183| :- | :- | :- |

184| `name` | 아니요 | 출력 스타일의 이름으로, `/config` 선택기에 표시됩니다. 기본값: 파일 이름 |184| `name` | 아니요 | 출력 스타일의 이름으로, `/config` 선택기에 표시됩니다. 기본값: 파일 이름 |

185| `description` | 아니요 | 출력 스타일의 설명으로, `/config` 선택기에 표시됩니다 |185| `description` | 아니요 | 출력 스타일의 설명으로, `/config` 선택기에 표시됩니다 |

186| `keep-coding-instructions` | 아니요 | `true`로 설정하면 Claude Code의 기본 제공 소프트웨어 엔지니어링 지침을 스타일과 함께 유지합니다. 기본값: `false` |186| `keep-coding-instructions` | 아니요 | `true`로 설정하면 전체 시스템 프롬프트에만 포함되는 Claude Code의 기본 제공 소프트웨어 엔지니어링 지침 섹션을 스타일과 함께 유지합니다. [출력 스타일 작동 방식](#how-output-styles-work)을 참조하세요. 기본값: `false` |

187| `force-for-plugin` | 아니요 | 플러그인 출력 스타일만 해당합니다. `true`로 설정하면 사용자가 선택하지 않아도 플러그인이 활성화될 때마다 이 스타일을 자동으로 적용합니다. 사용자의 `outputStyle` 설정을 재정의합니다. 여러 활성화된 플러그인이 이를 설정하면 Claude Code는 먼저 로드된 것을 사용합니다. 기본값: `false` |187| `force-for-plugin` | 아니요 | 플러그인 출력 스타일만 해당합니다. `true`로 설정하면 사용자가 선택하지 않아도 플러그인이 활성화될 때마다 이 스타일을 자동으로 적용합니다. 사용자의 `outputStyle` 설정을 재정의합니다. 여러 활성화된 플러그인이 이를 설정하면 Claude Code는 먼저 로드된 것을 사용합니다. 기본값: `false` |

188 188 

189<span id="comparisons-to-related-features" />189<span id="comparisons-to-related-features" />


214출력 스타일은 Claude Code가 Claude에게 제공하는 지침을 변경합니다.214출력 스타일은 Claude Code가 Claude에게 제공하는 지침을 변경합니다.

215 215 

216* Claude Code는 모든 요청과 함께 활성 스타일의 지침을 전송합니다.216* Claude Code는 모든 요청과 함께 활성 스타일의 지침을 전송합니다.

217* 사용자 정의 출력 스타일은 `keep-coding-instructions`가 `true`로 설정되지 않은 한, 변경 범위 지정 방법, 주석 작성 방법, 작업 검증 방법 등 Claude Code의 기본 제공 소프트웨어 엔지니어링 지침을 제외합니다.217* 전체 시스템 프롬프트에서 사용자 정의 출력 스타일은 `keep-coding-instructions`가 `true`로 설정되지 않은 한, 변경 범위 지정 방법, 주석 작성 방법, 작업 검증 방법 등 Claude Code의 기본 제공 소프트웨어 엔지니어링 지침 섹션을 제외합니다. 더 짧은 시스템 프롬프트에는 해당 섹션이 포함되지 않으므로 이 필드는 효과가 없습니다. 이 필드를 활용하려면 [`CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT`](/docs/ko/env-vars#variables)를 `0`으로 설정합니다. 그러면 모든 모델에서 전체 프롬프트가 선택됩니다.

218 218 

219출력 스타일은 주 대화와 부모의 전체 대화 및 시스템 프롬프트를 상속하는 [포크](/docs/ko/sub-agents#fork-the-current-conversation)에 적용됩니다. 다른 [subagent는 자신의 시스템 프롬프트를 실행](/docs/ko/sub-agents#what-loads-at-startup)하므로 스타일은 응답 방식을 변경하지 않습니다.219출력 스타일은 주 대화와 부모의 전체 대화 및 시스템 프롬프트를 상속하는 [포크](/docs/ko/sub-agents#fork-the-current-conversation)에 적용됩니다. 다른 [서브에이전트는 자신의 시스템 프롬프트를 실행](/docs/ko/sub-agents#what-loads-at-startup)하므로 스타일은 응답 방식을 변경하지 않습니다.

220 220 

221토큰 사용량은 스타일에 따라 달라집니다. 스타일의 지침은 입력 토큰을 추가하지만, 프롬프트 캐싱은 세션의 첫 번째 요청 이후 이 비용을 줄입니다.221토큰 사용량은 스타일에 따라 달라집니다. 스타일의 지침은 입력 토큰을 추가하지만, 프롬프트 캐싱은 세션의 첫 번째 요청 이후 이 비용을 줄입니다.

222 222 

overview.md +1 −1

Details

42 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd42 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

43 ```43 ```

44 44 

45 설치 프로그램이 완료되면 새 터미널 창을 열고 `claude --version`을 실행하십시오. 설치가 제대로 되었으면 버전 번호가 출력됩니다. 셸에서 `claude`를 찾을 수 없거나 인식되지 않는다고 표시되면 설치 디렉토리가 아직 PATH에 없는 것입니다. [PATH 수정](/docs/ko/troubleshoot-install#command-not-found-claude-after-installation)을 참조하십시오.45 설치 명령은 Claude Code를 다운로드하는 동안 진행 상황을 표시하지 않습니다. 설치 프로그램이 완료되면 새 터미널 창을 열고 `claude --version`을 실행하십시오. 설치가 제대로 되었으면 버전 번호가 출력됩니다. 셸에서 `claude`를 찾을 수 없거나 인식되지 않는다고 표시되면 설치 디렉토리가 아직 PATH에 없는 것입니다. [PATH 수정](/docs/ko/troubleshoot-install#command-not-found-claude-after-installation)을 참조하십시오.

46 46 

47 `The token '&&' is not a valid statement separator` 오류가 표시되면 CMD가 아닌 PowerShell에 있는 것입니다. `'irm' is not recognized as an internal or external command` 오류가 표시되면 PowerShell이 아닌 CMD에 있는 것입니다.47 `The token '&&' is not a valid statement separator` 오류가 표시되면 CMD가 아닌 PowerShell에 있는 것입니다. `'irm' is not recognized as an internal or external command` 오류가 표시되면 PowerShell이 아닌 CMD에 있는 것입니다.

48 48 

permissions.md +1 −1

Details

700권한과 [샌드박싱](/docs/ko/sandboxing)은 상호 보완적인 보안 계층입니다:700권한과 [샌드박싱](/docs/ko/sandboxing)은 상호 보완적인 보안 계층입니다:

701 701 

702* **권한**은 Claude Code가 사용할 수 있는 도구와 액세스할 수 있는 파일 또는 도메인을 제어합니다. Bash, Read, Edit, WebFetch, MCP 및 다른 모든 도구에 적용되지만, deny 또는 ask 규칙은 다른 도구가 남아 있는 동안 [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)을 차단할 수 없습니다.702* **권한**은 Claude Code가 사용할 수 있는 도구와 액세스할 수 있는 파일 또는 도메인을 제어합니다. Bash, Read, Edit, WebFetch, MCP 및 다른 모든 도구에 적용되지만, deny 또는 ask 규칙은 다른 도구가 남아 있는 동안 [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)을 차단할 수 없습니다.

703* **샌드박싱**은 셸 명령의 파일 시스템 및 네트워크 액세스를 제한하는 OS 수준 적용을 제공합니다. Bash, PowerShell 및 [Monitor](/docs/ko/tools-reference#monitor-tool) 명령과 해당 자식 프로세스에만 적용됩니다.703* **샌드박싱**은 셸 명령의 파일 시스템 및 네트워크 액세스를 제한하는 OS 수준 적용을 제공합니다. Bash, PowerShell 및 [Monitor](/docs/ko/tools-reference#monitor-tool) 도구 명령과 해당 자식 프로세스에 적용됩니다.

704 704 

705심층 방어를 위해 둘 다 사용합니다. 샌드박스 제한은 프롬프트 주입이 Claude의 의사 결정을 우회하더라도 여전히 적용됩니다. 샌드박스 설정과 권한 규칙의 경로 및 도메인은 [최종 샌드박스 구성으로 병합됩니다](/docs/ko/sandboxing#permission-rules).705심층 방어를 위해 둘 다 사용합니다. 샌드박스 제한은 프롬프트 주입이 Claude의 의사 결정을 우회하더라도 여전히 적용됩니다. 샌드박스 설정과 권한 규칙의 경로 및 도메인은 [최종 샌드박스 구성으로 병합됩니다](/docs/ko/sandboxing#permission-rules).

706 706 

plugin-evals.md +26 −5

Details

335* **대체**: `{{input.<field>}}`로 호출의 입력에서 필드를 삽입하고, `{{file:fixtures/{input.<field>}.json}}`으로 모의 옆의 고정 파일의 내용을 삽입합니다.335* **대체**: `{{input.<field>}}`로 호출의 입력에서 필드를 삽입하고, `{{file:fixtures/{input.<field>}.json}}`으로 모의 옆의 고정 파일의 내용을 삽입합니다.

336* **`expect:`**: `expect:` 블록은 입력을 보호합니다. 호출이 위반하면 실행이 점수 0으로 중단되고 이유를 기록합니다. 따라서 케이스는 플러그인이 서버에 요청한 것을 주장할 수 있습니다.336* **`expect:`**: `expect:` 블록은 입력을 보호합니다. 호출이 위반하면 실행이 점수 0으로 중단되고 이유를 기록합니다. 따라서 케이스는 플러그인이 서버에 요청한 것을 주장할 수 있습니다.

337* **`error: true`**: 본문을 도구 오류로 반환하려면 `error: true`를 설정합니다.337* **`error: true`**: 본문을 도구 오류로 반환하려면 `error: true`를 설정합니다.

338* **`type: agent`**: 판정 모델이 본문의 지침에 따라 서버로서 답변하도록 하려면 `type: agent`를 설정합니다.338* **`type: agent`**: 판정 모델이 본문의 지침에 따라 서버로서 답변하도록 하려면 `type: agent`를 설정합니다. 에이전트 모의에 대한 호출은 케이스 `max_turns`의 4배인 하나의 [실행당 예산](#mock-call-budget-exceeded)을 공유하며, 이를 초과한 호출은 실행을 점수 0으로 중단합니다.

339 339 

340[모의 파일 참조](#mock-files)는 모든 키와 `_server.md` 및 `_tools.json` 파일을 나열합니다.340[모의 파일 참조](#mock-files)는 모든 키와 `_server.md` 및 `_tools.json` 파일을 나열합니다.

341 341 


370| :- | :- |370| :- | :- |

371| `.`과 같은 플러그인의 루트 디렉터리 | 해당 플러그인이 로드된 eval 디렉터리 아래의 모든 케이스 |371| `.`과 같은 플러그인의 루트 디렉터리 | 해당 플러그인이 로드된 eval 디렉터리 아래의 모든 케이스 |

372| 단일 `prompt.md` 또는 `case.yaml` 파일 | 해당 케이스, 포함하는 플러그인이 로드됨 |372| 단일 `prompt.md` 또는 `case.yaml` 파일 | 해당 케이스, 포함하는 플러그인이 로드됨 |

373| 설치된 플러그인 이름, `name` 또는 `name@marketplace` | 설치된 복사본의 eval 디렉터리의 케이스, 설치된 복사본이 로드됨. 결과는 현재 디렉터리의 `./evals/results/` 또는 `--eval-dir`이 있는 `./<dir>/results/`에 기록됨 |373| 설치된 플러그인 이름, `name` 또는 `name@marketplace` | 플러그인과 해당 eval 디렉터리의 케이스로, [제자리에서 또는 설치된 복사본에서](/docs/ko/plugins/loading#in-place-and-copied-plugins) 읽음. 결과는 현재 디렉터리의 `./evals/results/` 또는 `--eval-dir`이 있는 `./<dir>/results/`에 기록됨 |

374| `name@skills-dir` | [skills-directory 플러그인](/docs/ko/plugins/loading#plugins-shared-through-a-repository)의 경우 동일 |374| `name@skills-dir` | [skills-directory 플러그인](/docs/ko/plugins/loading#plugins-shared-through-a-repository)의 경우 동일 |

375| 생략됨 | 현재 디렉터리를 경로로 |375| 생략됨 | 현재 디렉터리를 경로로 |

376 376 


502| `cases[].aggregates.score` | 케이스의 암 포함 실행 평균 점수 |502| `cases[].aggregates.score` | 케이스의 암 포함 실행 평균 점수 |

503| `cases[].aggregates.delta` | 암 포함 점수에서 암 제외 점수를 뺀 값입니다. 암이 비교 가능하지 않을 때 생략됩니다 |503| `cases[].aggregates.delta` | 암 포함 점수에서 암 제외 점수를 뺀 값입니다. 암이 비교 가능하지 않을 때 생략됩니다 |

504| `cases[].arms.with[].error` | `null` 또는 실행이 비정상적으로 종료된 이유(예: `timed out after 300s`). 시작했지만 잘못 종료된 실행도 생성된 내용에 대해 등급이 매겨지므로 null이 아닌 오류는 점수 0을 의미하지 않습니다 |504| `cases[].arms.with[].error` | `null` 또는 실행이 비정상적으로 종료된 이유(예: `timed out after 300s`). 시작했지만 잘못 종료된 실행도 생성된 내용에 대해 등급이 매겨지므로 null이 아닌 오류는 점수 0을 의미하지 않습니다 |

505| `cases[].arms.with[].aborted` | [mock](#mock-mcp-servers)의 `expect:` 또는 `abort_when`이 실행을 중지했을 때 `server`, `tool` 및 `reason`과 함께 나타납니다. 실행은 0점을 받고 `error`는 `null`로 유지됩니다 |505| `cases[].arms.with[].aborted` | [mock](#mock-mcp-servers)이 `expect:`, `abort_when` 또는 [에이전트 mock 호출 예산](#mock-call-budget-exceeded)을 통해 실행을 중지했을 때 `server`, `tool` 및 `reason`과 함께 나타납니다. 실행은 0점을 받고 `error`는 `null`로 유지됩니다 |

506| `cases[].arms.with[].skippedPaidGraders` | 비용 한도가 이 실행의 판정 그레이더를 건너뛰었을 때 `true`이므로 해당 점수는 비교 가능하지 않습니다 |506| `cases[].arms.with[].skippedPaidGraders` | 비용 한도가 이 실행의 판정 그레이더를 건너뛰었을 때 `true`이므로 해당 점수는 비교 가능하지 않습니다 |

507| `costUsd`, `durationSeconds`, `claudeVersion` | 판정 호출을 포함한 정가 기준 예상 비용, 벽시계 시간(초) 및 스위트를 실행한 Claude Code 버전 |507| `costUsd`, `durationSeconds`, `claudeVersion` | 판정 호출을 포함한 정가 기준 예상 비용, 벽시계 시간(초) 및 스위트를 실행한 Claude Code 버전 |

508 508 


656| 키 | 기본값 | 목적 |656| 키 | 기본값 | 목적 |

657| :- | :- | :- |657| :- | :- | :- |

658| `type` | `fixed` | `fixed`는 본문을 작성한 대로 반환합니다. `agent`는 본문을 [판사 모델](#command-options)에 대한 지침으로 취급하며, 이 모델은 실행 동안 서버 역할을 하고 이전 호출을 이력으로 봅니다. |658| `type` | `fixed` | `fixed`는 본문을 작성한 대로 반환합니다. `agent`는 본문을 [판사 모델](#command-options)에 대한 지침으로 취급하며, 이 모델은 실행 동안 서버 역할을 하고 이전 호출을 이력으로 봅니다. |

659| `expect` | 설정 안 됨 | 점선 입력 경로에서 `string`, `number`, `boolean`, `array`, `object`와 같은 유형 이름, `/regex/`, 리터럴 또는 허용된 리터럴 목록으로의 맵. 위반하는 호출은 점수 0으로 실행을 중단하고 `aborted`로 서버, 도구 및 이유로 보고됩니다. |659| `expect` | 설정 안 됨 | 점선 입력 경로에서 `string`, `number`, `boolean`, `array`, `object`와 같은 유형 이름, [`/regex/`](#expect-patterns), 리터럴 또는 허용된 리터럴 목록으로의 맵. 위반하는 호출은 점수 0으로 실행을 중단하고 `aborted`로 서버, 도구 및 이유와 함께 보고됩니다. |

660| `error` | `false` | `fixed`만. 본문을 도구 오류로 반환합니다. |660| `error` | `false` | `fixed`만. 본문을 도구 오류로 반환합니다. |

661| `abort_when` | 설정 안 됨 | `agent`만. 에이전트가 실행을 중단할 수 있는 유일한 조건을 나열하는 산문 |661| `abort_when` | 설정 안 됨 | `agent`만. 에이전트가 실행을 중단할 수 있는 유일한 조건을 나열하는 산문 |

662 662 

663두 개의 선택적 파일은 서버의 디렉토리에서 도구 파일 옆에 있습니다.663두 개의 선택적 파일은 서버의 디렉토리에서 도구 파일 옆에 있습니다.

664 664 

665* **`_server.md`**: 여러 도구에 답변하는 단일 `type: agent` 모의. `tools:` frontmatter 키에 나열됩니다. 동일한 도구에 대한 `<tool>.md`가 우선합니다. `expect:` 보호를 개별 `<tool>.md`에 넣고, 여기에는 아닙니다.665* **`_server.md`**: 여러 도구에 답변하는 단일 `type: agent` 모의. 답변하는 도구는 `tools:` frontmatter 키에 나열됩니다. 동일한 도구에 대한 `<tool>.md`가 우선합니다. 여기에 있는 `expect:` 보호는 `tools:`가 단일 도구를 나열하지 않는 한 로드 오류이므로, 대신 보호를 개별 `<tool>.md`에 넣습니다.

666* **`_tools.json`**: 실제 서버에서 저장된 `tools/list` 응답이므로 모의 도구는 자리 표시자 대신 실제 설명 및 입력 스키마를 전달합니다.666* **`_tools.json`**: 실제 서버에서 저장된 `tools/list` 응답이므로 모의 도구는 자리 표시자 대신 실제 설명 및 입력 스키마를 전달합니다.

667 667 

668케이스의 자체 `mocks/` 디렉토리는 동일한 레이아웃을 사용하고 파일별로 모음의 모의를 재정의합니다.668케이스의 자체 `mocks/` 디렉토리는 동일한 레이아웃을 사용하고 파일별로 모음의 모의를 재정의합니다.

669 669 

670<h4 id="expect-patterns">

671 expect의 정규식 패턴

672</h4>

673 

674`expect:`의 `/regex/` 값은 Claude Code가 모음을 로드할 때 검사하는 작은 방언을 사용합니다.

675 

676* 리터럴 문자, `.`, `\d`와 같은 이스케이프, `[a-z]`와 같은 문자 클래스

677* 수량자 `*`, `+`, `?` 및 `{m,n}` 형식. 각각 단일 문자, 이스케이프 또는 클래스에 적용됩니다.

678* 시작 부분의 선택적 `^` 및 끝 부분의 선택적 `$`

679* 플래그 `i` 및 `s`만

680 

681그룹, 교대, 역참조, 전후방 탐색 또는 다른 플래그가 있는 패턴처럼 방언을 벗어난 패턴은 케이스 로드를 중단시킵니다. 케이스는 0점을 받고 오류에 해당 패턴이 명시됩니다. 여러 정확한 값을 허용하려면 교대 대신 리터럴 목록을 작성합니다.

682 

683각 패턴은 최대 길이까지만 값을 검사하며, 더 긴 값은 위반으로 계산됩니다. 수량자는 이 길이를 낮출 수 있고 선행 `^`는 이를 높이므로, 패턴을 `^`로 고정하고 수량자를 적게 유지합니다.

684 

670<h2 id="troubleshooting">685<h2 id="troubleshooting">

671 문제 해결686 문제 해결

672</h2>687</h2>


775 790 

776계정이 스위트 실행 중에 플랜의 사용량 제한 또는 API 속도 제한에 도달하면, 각 이후 실행은 해당 오류로 끝나고, 생성한 것에 대해 채점되며, 일반적으로 0으로 채점됩니다. 스위트는 여전히 완료되고 `partial`로 표시되지 않으므로, 결과는 회귀처럼 보일 수 있습니다. 점수를 신뢰하기 전에 `NOTES` 열 또는 JSON의 `cases[].arms.with[].error`에서 제한 메시지를 확인한 후, 제한이 재설정된 후 `--runs 1` 또는 `--case` 필터를 사용하여 다시 실행하세요.791계정이 스위트 실행 중에 플랜의 사용량 제한 또는 API 속도 제한에 도달하면, 각 이후 실행은 해당 오류로 끝나고, 생성한 것에 대해 채점되며, 일반적으로 0으로 채점됩니다. 스위트는 여전히 완료되고 `partial`로 표시되지 않으므로, 결과는 회귀처럼 보일 수 있습니다. 점수를 신뢰하기 전에 `NOTES` 열 또는 JSON의 `cases[].arms.with[].error`에서 제한 메시지를 확인한 후, 제한이 재설정된 후 `--runs 1` 또는 `--case` 필터를 사용하여 다시 실행하세요.

777 792 

793<h3 id="mock-call-budget-exceeded">

794 "mock call budget exceeded"

795</h3>

796 

797실행의 모든 `type: agent` [모의](#mock-mcp-servers)는 케이스 `max_turns`의 4배인 하나의 호출 예산을 공유하며, 이는 기본값 10에서 40회 호출입니다. `.replay/` 녹화에서 응답된 호출도 포함되며, 케이스의 `mock budget` 진행 줄에 예산이 출력됩니다. 예산을 초과하는 호출은 점수 0과 이 사유로 실행을 중단시키므로, 에이전트 모의를 많이 호출하는 스킬의 경우 케이스에서 `max_turns`를 높이세요.

798 

778<h3 id="runs-time-out-or-hit-the-turn-cap">799<h3 id="runs-time-out-or-hit-the-turn-cap">

779 실행이 시간 초과되거나 턴 상한에 도달합니다800 실행이 시간 초과되거나 턴 상한에 도달합니다

780</h3>801</h3>

Details

19</Note>19</Note>

20 20 

21<h2 id="claude-plugin-commands">21<h2 id="claude-plugin-commands">

22 claude plugin 명령어22 claude plugin 명령

23</h2>23</h2>

24 24 

25셸이나 스크립트에서 `claude plugin <subcommand>`을 실행하세요. Claude Code 세션 외부에서 실행합니다. 이 하위 명령어들은 [`/plugin`](#plugin-in-a-session) 패널을 열지 않고 플러그인을 설치하고 관리합니다.25셸이나 스크립트에서 `claude plugin <subcommand>`을 실행하세요. Claude Code 세션 외부에서 실행합니다. 이 하위 명령들은 [`/plugin`](#plugin-in-a-session) 패널을 열지 않고 플러그인을 설치하고 관리합니다.

26 26 

27`claude plugins`는 `claude plugin`의 별칭입니다.27`claude plugins`는 `claude plugin`의 별칭입니다.

28 28 

29모든 하위 명령어는 다음 종료 코드, 플러그인 인수, 범위 값을 공유합니다:29모든 하위 명령은 다음 종료 코드, 플러그인 인수, 범위 값을 공유합니다:

30 30 

31* **종료 코드**: 성공 시 `0`, 실패 시 `1`. `validate`는 예상치 못한 오류에 대해 종료 코드 `2`를 추가하고, `eval`은 [해당 섹션](#plugin-eval)에 나열된 코드를 추가합니다.31* **종료 코드**: 성공 시 `0`, 실패 시 `1`. `validate`는 예상치 못한 오류에 대해 종료 코드 `2`를 추가하고, `eval`은 [해당 섹션](#plugin-eval)에 나열된 코드를 추가합니다.

32* **플러그인 인수**: `<plugin>` 인수는 플러그인 `name` 또는 `name@marketplace`입니다. 두 마켓플레이스가 같은 이름을 제공할 때는 정규화된 형식을 사용하세요. `configure`는 정규화된 형식만 사용합니다.32* **플러그인 인수**: `<plugin>` 인수는 플러그인 `name` 또는 `name@marketplace`입니다. 두 마켓플레이스가 같은 이름을 제공할 때는 정규화된 형식을 사용하세요. `configure`는 정규화된 형식만 사용합니다.

33* **범위**: `--scope`는 `user`, `project`, 또는 `local`을 사용하며, 명령어가 쓰는 설정 파일의 이름을 지정합니다. `update`는 `managed`도 사용합니다.33* **범위**: `--scope`는 `user`, `project`, 또는 `local`을 사용하며, 명령이 쓰는 설정 파일의 이름을 지정합니다. `update`는 `managed`도 사용합니다.

34 34 

35<h3 id="plugin-init">35<h3 id="plugin-init">

36 plugin init36 plugin init


40 40 

41`new`는 `init`의 별칭입니다.41`new`는 `init`의 별칭입니다.

42 42 

43이 명령어로 시작하는 생성, 테스트, 편집 워크플로우는 [플러그인 생성](/docs/ko/plugins/create)을 참조하세요.43이 명령으로 시작하는 생성, 테스트, 편집 워크플로는 [플러그인 생성](/docs/ko/plugins/create)을 참조하세요.

44 44 

45```bash theme={null}45```bash theme={null}

46claude plugin init <name> [options]46claude plugin init <name> [options]


48 48 

49`<name>`은 `~/.claude/skills/` 아래의 디렉토리 이름이 되고 플러그인의 매니페스트에서 `name`이 됩니다.49`<name>`은 `~/.claude/skills/` 아래의 디렉토리 이름이 되고 플러그인의 매니페스트에서 `name`이 됩니다.

50 50 

51이 명령어는 다른 위치에 대한 플래그가 없습니다. 대신 프로젝트 내에 스캐폴드하려면 [플러그인 생성](/docs/ko/plugins/create)을 참조하세요.51이 명령은 다른 위치에 대한 플래그가 없습니다. 대신 프로젝트 내에 스캐폴드하려면 [플러그인 생성](/docs/ko/plugins/create)을 참조하세요.

52 52 

53| 플래그 | 설명 |53| 플래그 | 설명 |

54| :- | :- |54| :- | :- |


64claude plugin init my-helper --with skills hooks64claude plugin init my-helper --with skills hooks

65```65```

66 66 

67Claude Code는 작성한 내용을 검증하고 `Created plugin "my-helper" at ~/.claude/skills/my-helper`를 출력한 후, 로드되는 ID와 이를 끄는 `claude plugin disable` 명령어를 출력합니다.67Claude Code는 작성한 내용을 검증하고 `Created plugin "my-helper" at ~/.claude/skills/my-helper`를 출력한 후, 로드되는 ID와 이를 끄는 `claude plugin disable` 명령을 출력합니다.

68 68 

69Claude Code는 안전하게 스캐폴드할 수 없을 때 `1`로 종료하고 메시지에 이유를 명시합니다. 다음은 일반적인 이유입니다:69Claude Code는 안전하게 스캐폴드할 수 없을 때 아무것도 쓰지 않고 `1`로 종료하며 메시지에 이유를 명시합니다. 다음은 일반적인 이유입니다:

70 70 

71* 알 수 없는 `--with` 값71* 알 수 없는 `--with` 값

72* `--force` 없이 대상에 기존 스캐폴드가 있음72* `--force` 없이 대상에 기존 스캐폴드가 있음


82claude plugin install <plugin> [options]82claude plugin install <plugin> [options]

83```83```

84 84 

85대부분의 플러그인은 프롬프트 없이 설치됩니다. 마켓플레이스 항목이 [설치를 위해 명령어를 실행](/docs/ko/plugins/host-marketplace)하거나 [다운로드를 위해 `headersHelper`를 설정](/docs/ko/plugins/host-marketplace#how-users-accept-a-headershelper-command)하는 플러그인의 경우, Claude Code는 먼저 명령어를 출력하고 `Run this command now? [y/N]`을 묻습니다.85대부분의 플러그인은 프롬프트 없이 설치됩니다. 마켓플레이스 항목이 [설치를 위해 명령을 실행](/docs/ko/plugins/host-marketplace)하거나 [다운로드를 위해 `headersHelper`를 설정](/docs/ko/plugins/host-marketplace#how-users-accept-a-headershelper-command)하는 플러그인의 경우, Claude Code는 먼저 명령을 출력하고 `Run this command now? [y/N]`을 묻습니다.

86 86 

87| 플래그 | 설명 |87| 플래그 | 설명 |

88| :- | :- |88| :- | :- |

89| `-s, --scope <scope>` | 설치 범위: `user`, `project`, 또는 `local`. 기본값은 `user` |89| `-s, --scope <scope>` | 설치 범위: `user`, `project`, 또는 `local`. 기본값은 `user` |

90| `--config <key=value>` | 플러그인의 매니페스트가 선언하는 [`userConfig`](/docs/ko/plugins/manifest-reference) 옵션을 설정합니다. 각 옵션에 대해 플래그를 반복합니다. `<server>.<key>` 형식으로 작성된 키는 대신 플러그인 내부에 포함된 번들 파일의 [번들 MCP 서버](/docs/ko/plugins/components#include-a-packaged-mcpb-server)가 자체 `user_config`에서 선언하는 설정을 설정합니다. `<server>.<key>` 형식은 Claude Code v2.1.285 이상 필요합니다 |90| `--config <key=value>` | 플러그인의 매니페스트가 선언하는 [`userConfig`](/docs/ko/plugins/manifest-reference) 옵션을 설정합니다. 각 옵션에 대해 플래그를 반복합니다. `<server>.<key>` 형식으로 작성된 키는 대신 플러그인 내부에 포함된 번들 파일의 [번들 MCP 서버](/docs/ko/plugins/components#include-a-packaged-mcpb-server)가 자체 `user_config`에서 선언하는 설정을 설정합니다. `<server>.<key>` 형식은 Claude Code v2.1.285 이상 필요합니다 |

91| `-y, --yes` | `Run this command now?` 프롬프트 없이 표시된 설치 명령어를 수락합니다. Bash 도구나 훅에서와 같이 Claude Code 세션 내부에서 명령어가 실행될 때는 무시됩니다. Claude Code v2.1.229 이상 필요 |91| `-y, --yes` | `Run this command now?` 프롬프트 없이 표시된 설치 명령을 수락합니다. Bash 도구나 훅에서와 같이 Claude Code 세션 내부에서 명령이 실행될 때는 무시됩니다. Claude Code v2.1.229 이상 필요 |

92| `--accept-command <sha256>` | 이전 [`--json` 실행](#plugin-json-result)이 `shownCommand`에서 보고한 `sha256`인 표시된 설치 명령어를 수락합니다. `-y` 대신 사용합니다. `-y`와 결합할 수 없습니다. [표시된 설치 명령어 수락](#accept-a-displayed-install-command)을 참조하세요. Claude Code v2.1.271 이상 필요 |92| `--accept-command <sha256>` | 이전 [`--json` 실행](#plugin-json-result)이 `shownCommand`에서 보고한 `sha256`인 표시된 설치 명령을 수락합니다. `-y` 대신 사용합니다. `-y`와 결합할 수 없습니다. [표시된 설치 명령 수락](#accept-a-displayed-install-command)을 참조하세요. Claude Code v2.1.271 이상 필요 |

93| `--json` | 스크립트에서 사용하기 위해 stdout의 마지막 줄에 하나의 JSON 객체로 결과를 출력합니다. [JSON 결과 형식](#plugin-json-result)을 참조하세요. Claude Code v2.1.268 이상 필요 |93| `--json` | 스크립트에서 사용하기 위해 사람이 읽을 수 있는 메시지 대신 stdout의 마지막 줄에 하나의 JSON 객체로 결과를 출력합니다. [JSON 결과 형식](#plugin-json-result)을 참조하세요. Claude Code v2.1.268 이상 필요 |

94 94 

95셸에서 `claude plugin install --help`를 실행하여 버전이 지원하는 모든 옵션을 확인하세요.95셸에서 `claude plugin install --help`를 실행하여 버전이 지원하는 모든 옵션을 확인하세요.

96 96 

97자신의 터미널에서 `-y`를 전달하여 프롬프트 없이 표시된 명령어를 수락합니다. TTY가 없을 때와 Claude가 명령어를 실행할 때 어떤 일이 발생하는지 다음과 같습니다:97자신의 터미널에서 `-y`를 전달하여 프롬프트 없이 표시된 명령을 수락합니다. TTY가 없을 때와 Claude가 명령을 실행할 때 어떤 일이 발생하는지 다음과 같습니다:

98 98 

99* **stdin 또는 stdout이 TTY가 아니고 `-y` 또는 `--accept-command`를 전달하지 않음**: 설치가 거부됩니다. 출력에는 명령어만 표시되었다고 나오고 종료 코드는 `1`입니다99* **stdin 또는 stdout이 TTY가 아니고 `-y` 또는 `--accept-command`를 전달하지 않음**: 설치가 거부됩니다. 출력에는 명령만 표시되었다고 나오고 종료 코드는 `1`입니다

100* **Claude가 Bash 도구를 통해 명령어를 실행**: `-y`는 무시됩니다. 대신 자신의 터미널에서 명령어를 실행하세요100* **Claude가 Bash 도구를 통해 명령을 실행**: `-y`는 무시됩니다. 대신 자신의 터미널에서 명령을 실행하세요

101 101 

102프로젝트를 복제하는 모든 사람을 위해 플러그인을 설치합니다:102프로젝트를 복제하는 모든 사람을 위해 플러그인을 설치합니다:

103 103 


108Claude Code는 `Successfully installed plugin: formatter@my-marketplace (scope: project)`를 출력합니다. 새로운 것이 설치되지 않으면 출력에 이유가 나옵니다:108Claude Code는 `Successfully installed plugin: formatter@my-marketplace (scope: project)`를 출력합니다. 새로운 것이 설치되지 않으면 출력에 이유가 나옵니다:

109 109 

110* **해당 범위에 이미 설치됨**: 출력은 `Plugin "formatter@my-marketplace" is already installed (scope: project)`이고 종료 코드는 `0`입니다110* **해당 범위에 이미 설치됨**: 출력은 `Plugin "formatter@my-marketplace" is already installed (scope: project)`이고 종료 코드는 `0`입니다

111* **명령어 소스 프롬프트를 거부함**: 출력은 `Aborted.`이고 종료 코드는 `1`입니다111* **명령 소스 프롬프트를 거부함**: 출력은 `Aborted.`이고 종료 코드는 `1`입니다

112* **`headersHelper` 프롬프트를 거부하거나 TTY 없이 확인할 수 없음**: 출력은 `Aborted — the command was not run.`이고 종료 코드는 `1`입니다112* **`headersHelper` 프롬프트를 거부하거나 TTY 없이 확인할 수 없음**: 출력은 `Aborted — the command was not run.`이고 종료 코드는 `1`입니다

113 113 

114<h4 id="plugin-json-result">114<h4 id="plugin-json-result">

115 JSON 결과 형식115 JSON 결과 형식

116</h4>116</h4>

117 117 

118`plugin install`에 `--json`을 전달하면 stdout의 마지막 줄은 하나의 JSON 객체입니다. Claude Code가 앞에 선언한 명령어를 출력할 수 있으므로 해당 줄만 파싱하세요.118`plugin install`에 `--json`을 전달하면 stdout의 마지막 줄은 하나의 JSON 객체입니다. Claude Code가 마켓플레이스에서 선언한 명령을 그 앞에 출력하므로 해당 줄만 파싱하세요.

119 119 

120세 개의 필드는 항상 존재합니다:120세 개의 필드는 항상 존재합니다:

121 121 

122* `command`: 실행된 하위 명령어(예: `install`)122* `command`: 실행된 하위 명령(예: `install`)

123* `outcome`: `ok` 또는 `failed`123* `outcome`: `ok` 또는 `failed`

124* `message`: 결과에 대한 사람이 읽을 수 있는 설명124* `message`: 결과에 대한 사람이 읽을 수 있는 설명

125 125 

126`pluginId`, `scope`, `failureCode` 같은 다른 필드는 적용될 때만 나타납니다.126`pluginId`, `scope`, `failureCode` 같은 다른 필드는 적용될 때만 나타납니다.

127 127 

128`--json` 옵션은 `plugin uninstall`, `plugin update`, `plugin enable`, `plugin disable`에서도 해당 하위 명령어의 자체 필드를 포함한 동일한 객체를 출력합니다.128`--json` 옵션은 `plugin uninstall`, `plugin update`, `plugin enable`, `plugin disable`에서도 해당 하위 명령의 자체 필드를 포함한 동일한 객체를 출력합니다.

129 129 

130사용 오류(예: 잘못된 `--scope`)는 결과 줄을 출력하지 않고 stderr에 이유를 포함하여 `1`로 종료합니다.130사용 오류(예: 잘못된 `--scope`)는 결과 줄을 출력하지 않고 stderr에 이유를 포함하여 `1`로 종료합니다.

131 131 

132<h4 id="json-result-for-marketplace-commands">

133 마켓플레이스 명령의 JSON 결과

134</h4>

135 

136`plugin marketplace add`, `plugin marketplace remove`, `plugin marketplace update`에서 `--json`은 stdout의 마지막 줄에 `command`, `outcome`, `message` 필드가 있는 하나의 JSON 객체를 출력합니다. 다음은 `claude plugin marketplace remove your-marketplace --json`의 결과입니다:

137 

138```json theme={null}

139{"command":"marketplace-remove","outcome":"ok","marketplace":"your-marketplace","message":"Successfully removed marketplace: your-marketplace"}

140```

141 

142`command` 값은 `marketplace-add`, `marketplace-remove`, 또는 `marketplace-update`입니다. 아래 필드는 적용될 때만 나타납니다:

143 

144* `marketplace`: 명령이 작업한 마켓플레이스의 이름

145* `failureCode`: 명령이 실패한 이유를 나타내는 코드(예: `invalid_source`)

146 

147인수가 [예약된 이름](/docs/ko/plugins/marketplace-reference#reserved-names)인 `anthropic-plugin-directory`일 때 `plugin marketplace add`와 `plugin marketplace remove`는 결과 줄을 출력하지 않을 수 있으므로, 해당 이름에 대해서는 종료 코드를 확인하세요.

148 

132<h4 id="accept-a-displayed-install-command">149<h4 id="accept-a-displayed-install-command">

133 표시된 설치 명령어 수락150 표시된 설치 명령 수락

134</h4>151</h4>

135 152 

136`--json` 실행이 마켓플레이스에서 선언한 명령어를 표시하고 실행하지 않으면, `failed` 결과는 `shownCommand` 객체도 포함합니다. 해당 필드에는 표시된 명령어, 속한 플러그인, 명령어의 `sha256`이 포함됩니다.153`--json` 실행이 마켓플레이스에서 선언한 명령을 표시하고 실행하지 않으면, `failed` 결과는 `shownCommand` 객체도 포함합니다. 해당 필드에는 표시된 명령, 속한 플러그인, 명령의 `sha256`이 포함됩니다.

137 154 

138정확히 그 명령어를 수락하려면 자신의 터미널에서 해당 `sha256`을 `--accept-command`로 다시 실행하세요. 플래그는 Claude Code 세션 내부에서 효과가 없기 때문입니다. Claude Code v2.1.271 이상 필요합니다.155정확히 그 명령을 수락하려면 자신의 터미널에서 해당 `sha256`을 `--accept-command`로 다시 실행하세요. 플래그는 Claude Code 세션 내부에서 효과가 없기 때문입니다. Claude Code v2.1.271 이상 필요합니다.

139 156 

140`sha256`은 정확히 그 명령어, 플러그인, 마켓플레이스 카탈로그에 대한 수락으로 계산됩니다. 명령어가 표시된 이후 이들 중 하나라도 변경되면 Claude Code는 `sha256`을 수락하지 않고 명령어를 다시 표시합니다. 실행 자체의 마켓플레이스 새로고침이 가져오는 변경도 그러한 변경으로 계산됩니다.157`sha256`은 정확히 그 명령, 플러그인, 마켓플레이스 카탈로그에 대한 수락으로 계산됩니다. 명령이 표시된 이후 이들 중 하나라도 변경되면 Claude Code는 `sha256`을 수락하지 않고 명령을 다시 표시합니다. 실행 자체의 마켓플레이스 새로고침이 가져오는 변경도 그러한 변경으로 계산됩니다.

141 158 

142`shownCommand.acceptCommandMatched`가 `false`이면, 전달한 `sha256`이 현재 표시된 명령어와 일치하지 않습니다. 해당 명령어를 검토한 후 해당 `sha256`으로 다시 실행하세요.159`shownCommand.acceptCommandMatched`가 `false`이면, 전달한 `sha256`이 현재 표시된 명령과 일치하지 않습니다. 해당 명령을 검토한 후 해당 `sha256`으로 다시 실행하세요.

143 160 

144<h3 id="plugin-uninstall">161<h3 id="plugin-uninstall">

145 plugin uninstall162 plugin uninstall


165claude plugin uninstall formatter@my-marketplace --scope project182claude plugin uninstall formatter@my-marketplace --scope project

166```183```

167 184 

168Claude Code는 `Successfully uninstalled plugin: formatter (scope: project)`를 출력합니다. 플러그인이 해당 범위에 설치되지 않으면 명령어는 `Failed to uninstall plugin "formatter@my-marketplace":`로 시작하는 줄을 출력하고 `1`로 종료합니다.185Claude Code는 `Successfully uninstalled plugin: formatter (scope: project)`를 출력합니다. 플러그인이 해당 범위에 설치되지 않으면 명령은 `Failed to uninstall plugin "formatter@my-marketplace":`로 시작하는 줄을 출력하고 `1`로 종료합니다.

169 186 

170실패 줄이 `"formatter" was not uninstalled:`로 계속되고 설정 파일의 이름을 지정하면, Claude Code는 범위의 설정이 더 이상 플러그인을 켜지 않는지 확인할 수 없으므로 플러그인은 저장한 모든 것과 함께 설치된 상태로 유지됩니다. `--json`을 사용하면 결과는 `failureCode: "settings_still_on"`을 포함합니다. 이 설정 확인은 Claude Code v2.1.282 이상 필요합니다.187실패 줄이 `"formatter" was not uninstalled:`로 계속되고 설정 파일의 이름을 지정하면, Claude Code는 범위의 설정이 더 이상 플러그인을 켜지 않는지 확인할 수 없으므로 플러그인은 저장한 모든 것과 함께 설치된 상태로 유지됩니다. `--json`을 사용하면 결과는 `failureCode: "settings_still_on"`을 포함합니다. 이 설정 확인은 Claude Code v2.1.282 이상 필요합니다.

171 188 


196| `-s, --scope <scope>` | 활성화할 범위: `user`, `project`, 또는 `local`. 생략하면 자동 감지됩니다 |213| `-s, --scope <scope>` | 활성화할 범위: `user`, `project`, 또는 `local`. 생략하면 자동 감지됩니다 |

197| `--json` | 결과를 stdout의 마지막 줄에 하나의 JSON 객체로 출력합니다. [`plugin install --json`](#plugin-json-result)과 동일한 형식입니다. Claude Code v2.1.268 이상 필요 |214| `--json` | 결과를 stdout의 마지막 줄에 하나의 JSON 객체로 출력합니다. [`plugin install --json`](#plugin-json-result)과 동일한 형식입니다. Claude Code v2.1.268 이상 필요 |

198 215 

199`--scope` 없이 명령어는 설정 파일을 local, project, user 순서로 확인하고 플러그인을 언급하는 첫 번째 범위를 사용합니다.216`--scope` 없이 명령은 설정 파일을 local, project, user 순서로 확인하고 플러그인을 언급하는 첫 번째 범위를 사용합니다.

200 217 

201플러그인이 선언되지 않은 `--scope`를 전달하면 명령어는 재정의를 쓰거나 실패합니다:218플러그인이 선언되지 않은 `--scope`를 전달하면 명령은 재정의를 쓰거나 실패합니다:

202 219 

203* **선언하는 범위보다 [우선순위가 높은 범위](/docs/ko/plugins/loading)**: Claude Code는 전달한 범위에 재정의를 씁니다. 예를 들어 `claude plugin disable formatter --scope local`은 프로젝트에서 활성화된 플러그인을 혼자만 끕니다220* **선언하는 범위보다 [우선순위가 높은 범위](/docs/ko/plugins/loading)**: Claude Code는 전달한 범위에 재정의를 씁니다. 예를 들어 `claude plugin disable formatter --scope local`은 프로젝트에서 활성화된 플러그인을 혼자만 끕니다

204* **다른 범위**: 명령어는 `Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.`로 실패합니다221* **다른 범위**: 명령은 `Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.`로 실패합니다

205 222 

206플러그인이 해결된 범위에서 이미 활성화되어 있으면 명령어는 `Plugin "formatter" is already enabled`를 출력하고 `1`로 종료합니다. `--json`을 사용하면 결과는 `"failureCode": "already_in_goal_state"`와 `"alreadyInGoalState": true`를 가지므로 스크립트는 그 경우를 성공으로 처리할 수 있습니다.223플러그인이 해결된 범위에서 이미 활성화되어 있으면 명령은 `Plugin "formatter" is already enabled`를 출력하고 `1`로 종료합니다. `--json`을 사용하면 결과는 `"failureCode": "already_in_goal_state"`와 `"alreadyInGoalState": true`를 가지므로 스크립트는 그 경우를 성공으로 처리할 수 있습니다.

207 224 

208플러그인이 [의존성](/docs/ko/plugins/dependencies)을 선언하면 Claude Code는 이들도 활성화합니다. 명령어는 다음 경우에 실패합니다:225플러그인이 [의존성](/docs/ko/plugins/dependencies)을 선언하면 Claude Code는 이들도 활성화합니다. 명령은 다음 경우에 실패합니다:

209 226 

210* **의존성이 설치되지 않음**: 활성화가 실패하고 누락된 각 의존성에 대해 `claude plugin install` 명령어를 출력합니다227* **의존성이 설치되지 않음**: 활성화가 실패하고 누락된 각 의존성에 대해 `claude plugin install` 명령을 출력합니다

211* **의존성이 조직의 플러그인 정책에 의해 차단됨**: 활성화가 실패하고 차단된 의존성의 이름을 지정합니다228* **의존성이 조직의 플러그인 정책에 의해 차단됨**: 활성화가 실패하고 차단된 의존성의 이름을 지정합니다

212* **의존성이 대상 범위보다 우선순위가 높은 범위에서 `false`로 설정됨**: 활성화가 실패합니다. 해당 범위에서 의존성을 활성화하거나 `--scope`를 전달하여 거기에 쓰세요229* **의존성이 대상 범위보다 우선순위가 높은 범위에서 `false`로 설정됨**: 활성화가 실패합니다. 해당 범위에서 의존성을 활성화하거나 `--scope`를 전달하여 거기에 쓰세요

213 230 


237 254 

238`--scope` 없이 범위는 [`plugin enable`](#plugin-enable)과 동일한 local, project, user 순서로 자동 감지됩니다.255`--scope` 없이 범위는 [`plugin enable`](#plugin-enable)과 동일한 local, project, user 순서로 자동 감지됩니다.

239 256 

240플러그인 이름이나 `--all`을 모두 전달하지 않으면 Claude Code는 `Please specify a plugin name or use --all to disable all plugins`를 출력하고 `1`로 종료합니다. 이미 비활성화된 플러그인을 비활성화하면 `Plugin "formatter" is already disabled`를 출력하고 `1`로 종료합니다. [`plugin enable`](#plugin-enable)이 이미 활성화된 플러그인에 대해 하는 것처럼 말입니다.257플러그인 이름이나 `--all`을 모두 전달하지 않으면 Claude Code는 `Please specify a plugin name or use --all to disable all plugins`를 출력하고 `1`로 종료합니다. 이미 비활성화된 플러그인을 비활성화하면 `Plugin "formatter" is already disabled`를 출력하고 `1`로 종료합니다. [`plugin enable`](#plugin-enable)이 이미 활성화된 플러그인에 대해 하는 것과 같습니다.

241 258 

242명령어는 여전히 필요한 플러그인에 대해 실패합니다:259명령은 여전히 필요한 플러그인에 대해 실패합니다:

243 260 

244* **다른 활성화된 플러그인이 [이를 의존](/docs/ko/plugins/dependencies)함**: 명령어가 실패하고 먼저 비활성화할 종속성의 이름을 지정합니다261* **다른 활성화된 플러그인이 [이에 의존](/docs/ko/plugins/dependencies)함**: 명령이 실패하고 먼저 비활성화할 의존 플러그인의 이름을 지정합니다

245* **조직이 동기화된 플러그인으로 이를 요구함**: 명령어가 실패하고 아무것도 저장하지 않습니다262* **조직이 동기화된 플러그인으로 이를 요구함**: 명령이 실패하고 아무것도 저장하지 않습니다

246 263 

247한 플러그인을 비활성화합니다:264한 플러그인을 비활성화합니다:

248 265 


265| 플래그 | 설명 |282| 플래그 | 설명 |

266| :- | :- |283| :- | :- |

267| `-s, --scope <scope>` | 업데이트할 범위: `user`, `project`, `local`, 또는 `managed`. 생략하면 자동 감지됩니다 |284| `-s, --scope <scope>` | 업데이트할 범위: `user`, `project`, `local`, 또는 `managed`. 생략하면 자동 감지됩니다 |

268| `-y, --yes` | [명령어 소스](/docs/ko/plugins/host-marketplace) 플러그인에서 변경된 설치 명령어를 프롬프트 없이 수락합니다. stdin 또는 stdout이 TTY가 아닐 때 필요합니다. `--accept-command`를 전달하지 않으면 필요합니다. Claude Code v2.1.229 이상 필요 |285| `-y, --yes` | [명령 소스](/docs/ko/plugins/host-marketplace) 플러그인에서 변경된 설치 명령을 프롬프트 없이 수락합니다. `--accept-command`를 전달하지 않는 한 stdin 또는 stdout이 TTY가 아닐 때 필요합니다. Claude Code v2.1.229 이상 필요 |

269| `--accept-command <sha256>` | 이전 [`--json` 실행](#plugin-json-result)이 `shownCommand`에서 보고한 `sha256`인 마켓플레이스에서 선언한 명령어를 수락합니다. `-y` 대신 사용합니다. `-y`와 결합할 수 없습니다. Claude Code v2.1.271 이상 필요 |286| `--accept-command <sha256>` | 이전 [`--json` 실행](#plugin-json-result)이 `shownCommand`에서 보고한 `sha256`인 마켓플레이스에서 선언한 명령을 수락합니다. `-y` 대신 사용합니다. `-y`와 결합할 수 없습니다. Claude Code v2.1.271 이상 필요 |

270| `--json` | 결과를 stdout의 마지막 줄에 하나의 JSON 객체로 출력합니다. [`plugin install --json`](#plugin-json-result)과 동일한 형식입니다. Claude Code v2.1.268 이상 필요 |287| `--json` | 결과를 stdout의 마지막 줄에 하나의 JSON 객체로 출력합니다. [`plugin install --json`](#plugin-json-result)과 동일한 형식입니다. Claude Code v2.1.268 이상 필요 |

271 288 

272플러그인을 업데이트합니다:289플러그인을 업데이트합니다:


281 명령이 업데이트하는 범위298 명령이 업데이트하는 범위

282</h4>299</h4>

283 300 

284`--scope`를 생략하면 명령어는 현재 프로젝트에 설치된 가장 구체적인 범위에서 플러그인을 업데이트합니다. local, project, user, managed를 확인합니다.301`--scope`를 생략하면 명령은 현재 프로젝트에 설치된 가장 구체적인 범위에서 플러그인을 업데이트합니다. local, project, user, managed 순서로 확인합니다.

285 302 

286v2.1.281 이전에는 `--scope`를 생략할 때 명령어가 `user`를 사용했으므로 프로젝트 또는 local 범위에만 설치된 플러그인을 업데이트하면 `Plugin "<name>" is not installed at scope user`로 실패했습니다. 이 버전에서는 `--scope`를 전달하세요.303v2.1.281 이전에는 `--scope`를 생략할 때 명령이 `user`를 사용했으므로 프로젝트 또는 local 범위에만 설치된 플러그인을 업데이트하면 `Plugin "<name>" is not installed at scope user`로 실패했습니다. 이 버전에서는 `--scope`를 전달하세요.

287 304 

288`managed`는 업데이트할 수 있지만 설치할 수 없는 유일한 범위입니다. 관리자가 설치한 플러그인은 [조직을 위한 플러그인 관리](/docs/ko/plugins/org)를 참조하세요.305`managed`는 업데이트할 수 있지만 설치할 수 없는 유일한 범위입니다. 관리자가 설치한 플러그인은 [조직을 위한 플러그인 관리](/docs/ko/plugins/org)를 참조하세요.

289 306 


291 이름만으로 업데이트308 이름만으로 업데이트

292</h4>309</h4>

293 310 

294플러그인 이름을 전달할 수 있으며, 명령어는 설치된 플러그인과 일치시킵니다. 다른 마켓플레이스의 설치된 플러그인이 이름을 공유하면 명령어는 업데이트를 거부하고 대신 실행할 정규화된 `plugin-name@marketplace-name` 명령어를 나열합니다. 이름으로 업데이트하려면 Claude Code v2.1.246 이상 필요합니다.311플러그인 이름만 전달할 수 있으며, 명령은 설치된 플러그인과 일치시킵니다. 다른 마켓플레이스의 설치된 플러그인이 이름을 공유하면 명령은 업데이트를 거부하고 대신 실행할 정규화된 `plugin-name@marketplace-name` 명령을 나열합니다. 이름만으로 업데이트하려면 Claude Code v2.1.246 이상 필요합니다.

295 312 

296<h4 id="retry-an-unfinished-dependency-install">313<h4 id="retry-an-unfinished-dependency-install">

297 완료되지 않은 의존성 설치 재시도314 완료되지 않은 의존성 설치 재시도


313| :- | :- |330| :- | :- |

314| `--json` | 목록을 JSON으로 출력합니다 |331| `--json` | 목록을 JSON으로 출력합니다 |

315| `--available` | 설치하지 않은 마켓플레이스가 제공하는 플러그인도 나열합니다. `--json` 없이는 효과가 없습니다 |332| `--available` | 설치하지 않은 마켓플레이스가 제공하는 플러그인도 나열합니다. `--json` 없이는 효과가 없습니다 |

316| `--data-size [plugin]` | 각 설치된 플러그인의 [저장된 데이터 디렉토리](#what-an-uninstall-deletes-and-keeps)를 측정하거나 `name@marketplace`로 지정된 명명된 플러그인만 측정합니다. `--json` 없이는 효과가 없습니다. 이름에 설치 기록이 없으면 명령어는 `--data-size names a plugin that is not installed`를 출력하고 목록을 출력하는 대신 `1`로 종료합니다. Claude Code v2.1.285 이상 필요합니다 |333| `--data-size [plugin]` | 각 설치된 플러그인의 [저장된 데이터 디렉토리](#what-an-uninstall-deletes-and-keeps)를 측정하거나 `name@marketplace`로 지정된 명명된 플러그인만 측정합니다. `--json` 없이는 효과가 없습니다. 이름에 설치 기록이 없으면 명령은 `--data-size names a plugin that is not installed`를 출력하고 목록을 출력하는 대신 `1`로 종료합니다. Claude Code v2.1.285 이상 필요합니다 |

317 334 

318Claude Code는 사람이 읽을 수 있는 출력을 각 플러그인이 로드되는 방식으로 그룹화합니다:335Claude Code는 사람이 읽을 수 있는 출력을 각 플러그인이 로드되는 방식으로 그룹화합니다:

319 336 

320* **`Installed plugins:`**: 마켓플레이스에서 설치한 플러그인337* **`Installed plugins:`**: 마켓플레이스에서 설치한 플러그인

321* **`Session-only plugins (--plugin-dir / --plugin-url):`**: 같은 명령어에서 이 플래그로 로드된 플러그인(예: `claude --plugin-dir ./my-plugin plugin list`)338* **`Session-only plugins (--plugin-dir / --plugin-url):`**: 같은 명령에서 이 플래그로 로드된 플러그인(예: `claude --plugin-dir ./my-plugin plugin list`)

322* **`Skills-directory plugins (.claude/skills/*):`**: Claude Code가 skills 디렉토리에서 찾은 플러그인339* **`Skills-directory plugins (.claude/skills/*):`**: Claude Code가 skills 디렉토리에서 찾은 플러그인

323* **`Synced from claude.ai`**: [claude.ai 계정에서 동기화된 플러그인](/docs/ko/plugins/loading#synced-plugins)340* **`Synced from claude.ai`**: [claude.ai 계정에서 동기화된 플러그인](/docs/ko/plugins/loading#synced-plugins)

324 341 


370 387 

371플러그인의 컴포넌트 인벤토리와 예상 토큰 비용을 표시합니다.388플러그인의 컴포넌트 인벤토리와 예상 토큰 비용을 표시합니다.

372 389 

373플러그인은 로드되어야 합니다: 설치되거나, skills 디렉토리에서 찾거나, 같은 명령어에서 `--plugin-dir` 또는 `--plugin-url`로 전달됩니다. `<name>`은 플러그인 `name` 또는 `name@marketplace`입니다.390플러그인은 로드되어야 합니다: 설치되거나, skills 디렉토리에서 찾거나, 같은 명령에서 `--plugin-dir` 또는 `--plugin-url`로 전달됩니다. `<name>`은 플러그인 `name` 또는 `name@marketplace`입니다.

374 391 

375```bash theme={null}392```bash theme={null}

376claude plugin details <name>393claude plugin details <name>

377```394```

378 395 

379명령어는 `--help` 외에 플래그를 사용하지 않습니다.396명령은 `--help` 외에 플래그를 사용하지 않습니다.

380 397 

381설치된 플러그인이 기여하는 것을 표시합니다:398설치된 플러그인이 기여하는 것을 표시합니다:

382 399 


388 405 

389* **`Component inventory`**: 플러그인의 skills, agents, hooks, MCP 서버, LSP 서버406* **`Component inventory`**: 플러그인의 skills, agents, hooks, MCP 서버, LSP 서버

390* **`Projected token cost`**: 플러그인이 모든 세션에 추가하는 항상 켜진 토큰407* **`Projected token cost`**: 플러그인이 모든 세션에 추가하는 항상 켜진 토큰

391* **`Per-component (rounded)`**: 각 skill, agent, 명령어에 대한 항상 켜진 토큰과 호출 시 추정치. 플러그인이 없을 때 생략됨408* **`Per-component (rounded)`**: 각 skill, agent, 명령에 대한 항상 켜진 토큰과 호출 시 추정치. 플러그인에 이러한 항목이 없을 때 생략됨

392 409 

393두 비용 수치가 의미하는 바는 [플러그인 비용 및 사용량 측정](/docs/ko/plugins/measure)을 참조하세요.410두 비용 수치가 의미하는 바는 [플러그인 비용 및 사용량 측정](/docs/ko/plugins/measure)을 참조하세요.

394 411 


406 423 

407| 플래그 | 설명 |424| 플래그 | 설명 |

408| :- | :- |425| :- | :- |

409| `--values-stdin` | stdin에서 옵션 값을 JSON 객체의 단일 줄 문자열로 읽고 저장합니다. 생략한 옵션은 저장된 값을 유지합니다 |426| `--values-stdin` | stdin에서 옵션 값을 단일 줄 문자열로 이루어진 JSON 객체로 읽고 저장합니다. 생략한 옵션은 저장된 값을 유지합니다 |

410| `--json` | 결과를 stdout에 하나의 JSON 객체로 출력합니다. `--values-stdin` 없이 객체는 옵션의 `schema`와 `choices`, 시작 `inputs`, `configured`와 `unconfigured` 옵션 이름을 포함합니다. `--values-stdin`을 사용하면 `saved` 옵션 이름과 읽을 수 있을 때 `unconfigured` 옵션 이름을 포함합니다 |427| `--json` | 결과를 stdout에 하나의 JSON 객체로 출력합니다. `--values-stdin` 없이 객체는 옵션의 `schema`와 `choices`, 시작 `inputs`, `configured`와 `unconfigured` 옵션 이름을 포함합니다. `--values-stdin`을 사용하면 `saved` 옵션 이름과 다시 읽을 수 있을 때 `unconfigured` 옵션 이름을 포함합니다 |

411 428 

412플래그 없이 명령어는 각 옵션을 최대 세 개의 레이블로 나열합니다: `required` 또는 `optional`, 그 다음 매니페스트가 민감하다고 선언하는 옵션의 경우 `sensitive`, 그 다음 `set` 또는 `not set`. 저장된 값을 출력하지 않습니다. `--json`을 사용하면 출력에는 민감하지 않은 옵션의 저장된 값이 포함되고 민감한 옵션의 텍스트는 절대 포함되지 않습니다.429플래그 없이 명령은 각 옵션을 최대 세 개의 레이블로 나열합니다: `required` 또는 `optional`, 그 다음 매니페스트가 민감하다고 선언하는 옵션의 경우 `sensitive`, 그 다음 `set` 또는 `not set`. 저장된 값을 출력하지 않습니다. `--json`을 사용하면 출력에는 민감하지 않은 옵션의 저장된 값이 포함되고 민감한 옵션의 텍스트는 절대 포함되지 않습니다.

413 430 

414값을 저장하려면 JSON 객체로 파일에 작성하여 옵션 키를 문자열 값으로 매핑한 후 파일을 stdin에 전달하세요. `formatter@my-marketplace`를 자신의 플러그인 ID로 바꾸세요. `claude plugin list`가 표시하는 대로입니다. 이 예제는 `{"api_url": "https://example.com"}`을 포함하는 `values.json` 파일에서 `api_url`이라는 하나의 옵션을 설정합니다:431값을 저장하려면 옵션 키를 문자열 값으로 매핑하는 JSON 객체로 파일에 작성한 후 파일을 stdin에 전달하세요. `formatter@my-marketplace`를 `claude plugin list`가 표시하는 자신의 플러그인 ID로 바꾸세요. 이 예제는 `{"api_url": "https://example.com"}`을 포함하는 `values.json` 파일에서 `api_url`이라는 하나의 옵션을 설정합니다:

415 432 

416```bash theme={null}433```bash theme={null}

417claude plugin configure formatter@my-marketplace --values-stdin < values.json434claude plugin configure formatter@my-marketplace --values-stdin < values.json

418```435```

419 436 

420Claude Code는 각 값을 옵션의 선언된 유형에 대해 검증하고 `Configuration saved. Restart Claude Code to apply it.`를 출력합니다. 매니페스트가 선언하지 않은 키를 전달하거나 검증에 실패하는 값을 전달하면 명령어는 아무것도 저장하지 않고, `Failed to save configuration:`을 이유와 함께 출력하고, `1`로 종료합니다. `--json`을 사용하면 거부된 값은 stdout에 `refused` 필드가 `message`를 포함하고 한 옵션이 잘못되었을 때 해당 `option` 키를 포함하는 객체도 출력합니다.437Claude Code는 각 값을 옵션의 선언된 유형에 대해 검증하고 `Configuration saved. Restart Claude Code to apply it.`를 출력합니다. 매니페스트가 선언하지 않은 키를 전달하거나 검증에 실패하는 값을 전달하면 명령은 아무것도 저장하지 않고, `Failed to save configuration:`을 이유와 함께 출력하고, `1`로 종료합니다. `--json`을 사용하면 거부된 값은 stdout에 `refused` 필드가 `message`를 포함하고 한 옵션이 잘못되었을 때 해당 `option` 키를 포함하는 객체도 출력합니다.

421 438 

422플러그인의 전체 `name@marketplace` ID를 전달하세요. `claude plugin list`가 표시하는 대로입니다. `configure`는 베어 `name`을 수락하지 않습니다. 로드된 플러그인이 해당 ID를 가지지 않으면 명령어는 `No installed plugin has the id "<plugin>".`를 출력하고 `1`로 종료합니다.439`claude plugin list`가 표시하는 대로 플러그인의 전체 `name@marketplace` ID를 전달하세요. `configure`는 `name`만으로는 수락하지 않습니다. 로드된 플러그인이 해당 ID를 가지지 않으면 명령은 `No installed plugin has the id "<plugin>".`를 출력하고 `1`로 종료합니다.

423 440 

424번들 MCP 서버의 설정은 [`plugin install --config`](#plugin-install) 또는 `/plugin`의 **Configure** 항목을 참조하세요.441번들 MCP 서버의 설정은 [`plugin install --config`](#plugin-install) 또는 `/plugin`의 **Configure** 항목을 참조하세요.

425 442 


427 plugin prune444 plugin prune

428</h3>445</h3>

429 446 

430설치된 플러그인이 더 이상 필요하지 않은 자동 설치된 [의존성](/docs/ko/plugins/dependencies)을 제거합니다. 명령어는 직접 설치한 플러그인을 절대 제거하지 않습니다. `autoremove`는 `prune`의 별칭입니다.447설치된 플러그인이 더 이상 필요하지 않은 자동 설치된 [의존성](/docs/ko/plugins/dependencies)을 제거합니다. 명령은 직접 설치한 플러그인을 절대 제거하지 않습니다. `autoremove`는 `prune`의 별칭입니다.

431 448 

432```bash theme={null}449```bash theme={null}

433claude plugin prune [options]450claude plugin prune [options]


447 464 

448Claude Code는 고아 의존성을 나열하고 `(dry run — nothing removed)`로 끝냅니다. 제거할 것이 없으면 `Nothing to prune`으로 시작하는 줄을 출력합니다.465Claude Code는 고아 의존성을 나열하고 `(dry run — nothing removed)`로 끝냅니다. 제거할 것이 없으면 `Nothing to prune`으로 시작하는 줄을 출력합니다.

449 466 

450`--dry-run` 없이 명령어는 프롬프트에서 확인하거나 `-y`를 전달한 후에만 고아 의존성을 제거합니다.467`--dry-run` 없이 명령은 프롬프트에서 확인하거나 `-y`를 전달한 후에만 고아 의존성을 제거합니다.

451 468 

452프롬프트에서 어떻게 답하든 종료 코드는 `0`입니다.469프롬프트에서 어떻게 답하든 종료 코드는 `0`입니다.

453 470 


480* `name` 또는 `name@marketplace`로 설치된 플러그인497* `name` 또는 `name@marketplace`로 설치된 플러그인

481* `name@skills-dir`498* `name@skills-dir`

482 499 

483`--tag`, `--allow-tools`, `--json` 앞에 target을 놓으세요. 이 옵션들 각각은 뒤따르는 단어를 값으로 사용하므로 이 옵션 중 하나 뒤에 작성된 target은 태그, 도구 이름, 또는 target 대신 JSON 출력 경로로 읽힙니다.500`--tag`, `--allow-tools`, `--json` 앞에 target을 놓으세요. 이 옵션들 각각은 뒤따르는 단어를 값으로 사용하므로 이 옵션 중 하나 뒤에 작성된 target은 target 대신 태그, 도구 이름, 또는 JSON 출력 경로로 읽힙니다.

484 501 

485이 표는 대부분의 실행이 사용하는 옵션을 나열합니다. `--case`, `--tag`, `--output-dir`, `--report`, `--allow-real-servers`, `--keep-temp`, `--verbose`를 포함한 전체 집합은 `claude plugin eval --help`를 실행하세요.502이 표는 대부분의 실행이 사용하는 옵션을 나열합니다. `--case`, `--tag`, `--output-dir`, `--report`, `--allow-real-servers`, `--keep-temp`, `--verbose`를 포함한 전체 집합은 `claude plugin eval --help`를 실행하세요.

486 503 


488| :- | :- | :- |505| :- | :- | :- |

489| `--runs <n>` | 각 [arm](/docs/ko/plugin-evals#compare-against-a-no-plugin-baseline)의 케이스당 실행 | 각 케이스의 `runs`, 그 외 3 |506| `--runs <n>` | 각 [arm](/docs/ko/plugin-evals#compare-against-a-no-plugin-baseline)의 케이스당 실행 | 각 케이스의 `runs`, 그 외 3 |

490| `-j, --concurrency <n>` | 동시에 실행할 에이전트 세션, 1\~8. 속도 제한을 공유합니다 | `1` |507| `-j, --concurrency <n>` | 동시에 실행할 에이전트 세션, 1\~8. 속도 제한을 공유합니다 | `1` |

491| `--model <model>` | 테스트 중인 에이전트의 모델 | 각 케이스의 `model`, 그 외 `ANTHROPIC_MODEL`이 설정되면, 그 외 Claude Code의 기본값 |508| `--model <model>` | 테스트 중인 에이전트의 모델 | 각 케이스의 `model`, 그 외 `ANTHROPIC_MODEL`이 설정되면 해당 값, 그 외 Claude Code의 기본값 |

492| `--judge-model <model>` | `llm` 및 `baseline` 채점자의 모델 | [백그라운드 작업](/docs/ko/plugin-evals#grade-the-result)용 모델 |509| `--judge-model <model>` | `llm` 및 `baseline` 채점자의 모델 | [백그라운드 작업](/docs/ko/plugin-evals#grade-the-result)용 모델 |

493| `--ablation <mode>` | `none` 또는 `with-without`. [플러그인 없음 기준선에 대해 점수 매기기](/docs/ko/plugin-evals#compare-against-a-no-plugin-baseline)를 참조하세요 | 해당 섹션이 설명하는 대로 케이스당 결정됨 |510| `--ablation <mode>` | `none` 또는 `with-without`. [플러그인 없음 기준선에 대해 점수 매기기](/docs/ko/plugin-evals#compare-against-a-no-plugin-baseline)를 참조하세요 | 해당 섹션이 설명하는 대로 케이스당 결정됨 |

494| `--threshold <0..1>` | 케이스가 이 아래로 점수를 받으면 1로 종료 | `1.0` |511| `--threshold <0..1>` | 케이스가 이 아래로 점수를 받으면 1로 종료 | `1.0` |


521claude plugin eval init [name] [options]538claude plugin eval init [name] [options]

522```539```

523 540 

524플러그인의 루트 폴더(`.claude-plugin/plugin.json`을 보유하거나 skill의 `SKILL.md`)에서 명령어를 실행하세요. 의도적으로 다른 디렉토리에 스위트를 스캐폴드하려면 `--eval-dir`을 전달하세요.541플러그인의 루트 폴더(`.claude-plugin/plugin.json` 또는 skill의 `SKILL.md`를 보유한 디렉토리)에서 명령을 실행하세요. 의도적으로 다른 디렉토리에 스위트를 스캐폴드하려면 `--eval-dir`을 전달하세요.

525 542 

526터미널에서 명령어는 작성 인터뷰를 위해 대화형 Claude Code 세션을 엽니다. 인터뷰에서 Claude는 다음을 수행합니다:543터미널에서 명령은 작성 인터뷰를 위해 대화형 Claude Code 세션을 엽니다. 인터뷰에서 Claude는 다음을 수행합니다:

527 544 

5281. 플러그인을 읽습니다5451. 플러그인을 읽습니다

5292. 잘 해야 할 일을 묻습니다5462. 플러그인이 잘 해야 할 일을 묻습니다

5303. 케이스와 채점자를 제안합니다5473. 케이스와 채점자를 제안합니다

5314. 케이스 파일을 씁니다5484. 케이스 파일을 씁니다

5325. 케이스를 실행하고 채점자가 당신이 하는 방식으로 점수를 매기는지 확인하기 위해 당신과 함께 등급을 검토합니다5495. 케이스를 실행하고, 채점자가 사용자의 판단대로 점수를 매기는지 확인하기 위해 사용자와 함께 등급을 검토합니다

533 550 

534`--bare`를 사용하거나 터미널 없이 명령어는 빈 단일 케이스 템플릿을 대신 씁니다. Claude가 Claude Code 세션 내부에서 명령어를 실행하면 명령어는 해당 세션이 따를 인터뷰 지침을 출력합니다.551`--bare`를 사용하거나 터미널 없이 실행하면 명령은 대신 빈 단일 케이스 템플릿을 씁니다. Claude가 Claude Code 세션 내부에서 명령을 실행하면 명령은 템플릿을 쓰는 대신 해당 세션이 따를 인터뷰 지침을 출력합니다.

535 552 

536선택적 `name`은 케이스 이름입니다. `--bare`를 사용하거나 터미널 없이 필요합니다. 명령어가 해당 케이스에 대한 빈 템플릿을 쓰기 때문입니다. 케이스 이름은 문자 또는 숫자로 시작하고 문자, 숫자, `.`, `_`, `-`만 포함합니다. 모든 플랫폼에서 명령어는 Windows가 저장할 수 없는 이름(예: `con` 또는 `.`로 끝나는 이름)도 거부합니다.553선택적 `name`은 케이스 이름입니다. `--bare`를 사용하거나 터미널 없이 실행할 때 필요합니다. 명령이 해당 케이스에 대한 빈 템플릿을 쓰기 때문입니다. 케이스 이름은 문자 또는 숫자로 시작하고 문자, 숫자, `.`, `_`, `-`만 포함합니다. 모든 플랫폼에서 명령은 Windows가 저장할 수 없는 이름(예: `con` 또는 `.`로 끝나는 이름)도 거부합니다.

537 554 

538명령어는 다음 옵션을 수락합니다:555명령은 다음 옵션을 수락합니다:

539 556 

540| 옵션 | 설명 | 기본값 |557| 옵션 | 설명 | 기본값 |

541| :- | :- | :- |558| :- | :- | :- |


547 plugin tag564 plugin tag

548</h3>565</h3>

549 566 

550플러그인 릴리스에 대해 `<name>--v<version>`이라는 주석이 달린 git 태그를 생성합니다. 태그 지정 전에 명령어는 플러그인의 `plugin.json`과 이를 나열하는 마켓플레이스 항목이 버전에 동의하는지 확인합니다.567플러그인 릴리스에 대해 `<name>--v<version>`이라는 주석이 달린 git 태그를 생성합니다. 태그 지정 전에 명령은 플러그인의 `plugin.json`과 이를 나열하는 마켓플레이스 항목이 버전에 동의하는지 확인합니다.

551 568 

552릴리스를 태그할 때는 [플러그인 게시](/docs/ko/plugins/publish)를 참조하세요.569릴리스를 태그할 시점은 [플러그인 게시](/docs/ko/plugins/publish)를 참조하세요.

553 570 

554```bash theme={null}571```bash theme={null}

555claude plugin tag [path] [options]572claude plugin tag [path] [options]

556```573```

557 574 

558`[path]`는 플러그인 디렉토리이며 현재 디렉토리로 기본값입니다. 명령어는 해당 디렉토리에서 플러그인을 나열하는 `.claude-plugin/marketplace.json`까지 위로 걸어가서 마켓플레이스 항목을 찾습니다.575`[path]`는 플러그인 디렉토리이며 현재 디렉토리로 기본값입니다. 명령은 해당 디렉토리에서 위로 올라가며 플러그인을 나열하는 `.claude-plugin/marketplace.json`을 찾아 마켓플레이스 항목을 찾습니다.

559 576 

560| 플래그 | 설명 |577| 플래그 | 설명 |

561| :- | :- |578| :- | :- |


577* 버전과 어느 파일에서 왔는지594* 버전과 어느 파일에서 왔는지

578* 일치하는 마켓플레이스 항목(있을 때)595* 일치하는 마켓플레이스 항목(있을 때)

579* 태그 이름596* 태그 이름

580* 실행할 `git tag` 및 `git push` 명령어597* 실행할 `git tag` 및 `git push` 명령

581 598 

582`--dry-run` 없이 Claude Code는 `Created tag formatter--v1.0.0`을 출력하고 `Pushed to origin` 또는 직접 실행할 푸시 명령어를 출력합니다. 푸시가 실패하면 태그는 여전히 로컬로 생성되고 명령어는 오류로 종료됩니다.599`--dry-run` 없이 Claude Code는 `Created tag formatter--v1.0.0`을 출력하고 `Pushed to origin` 또는 직접 실행할 푸시 명령을 출력합니다. 푸시가 실패하면 태그는 여전히 로컬로 생성되고 명령은 오류로 종료됩니다.

583 600 

584안전하게 태그 지정할 수 없을 때 명령어는 `1`로 종료하고 이유를 출력합니다. 일반적인 이유는:601안전하게 태그 지정할 수 없을 때 명령은 `1`로 종료하고 이유를 출력합니다. 일반적인 이유는 다음과 같습니다:

585 602 

586* `plugin.json` 또는 마켓플레이스 항목에 `version` 없음603* `plugin.json` 또는 마켓플레이스 항목에 `version` 없음

587* 태그가 이미 존재함604* 태그가 이미 존재함


609 plugin validate626 plugin validate

610</h3>627</h3>

611 628 

612플러그인 매니페스트, 마켓플레이스 매니페스트, 또는 디렉토리의 skills, agents, 명령어를 검증하고 CI 작업이 처리할 수 있는 코드로 종료합니다. 생성, 테스트, 편집 워크플로우는 [플러그인 생성](/docs/ko/plugins/create)을 참조하세요. 각 매니페스트에서 검증자가 확인하는 것은 [플러그인 매니페스트 참조](/docs/ko/plugins/manifest-reference) 및 [마켓플레이스 참조](/docs/ko/plugins/marketplace-reference)를 참조하세요.629플러그인 매니페스트, 마켓플레이스 매니페스트, 또는 디렉토리의 skills, agents, 명령을 검증하고 CI 작업이 처리할 수 있는 코드로 종료합니다. 생성, 테스트, 편집 워크플로는 [플러그인 생성](/docs/ko/plugins/create)을 참조하세요. 각 매니페스트에서 검증자가 확인하는 것은 [플러그인 매니페스트 참조](/docs/ko/plugins/manifest-reference) 및 [마켓플레이스 참조](/docs/ko/plugins/marketplace-reference)를 참조하세요.

613 630 

614```bash theme={null}631```bash theme={null}

615claude plugin validate <path> [options]632claude plugin validate <path> [options]


618| 플래그 | 설명 |635| 플래그 | 설명 |

619| :- | :- |636| :- | :- |

620| `--strict` | 경고를 오류로 취급하므로, 런타임이 허용하는 인식되지 않은 필드와 누락된 메타데이터로 인해 실행이 실패합니다 |637| `--strict` | 경고를 오류로 취급하므로, 런타임이 허용하는 인식되지 않은 필드와 누락된 메타데이터로 인해 실행이 실패합니다 |

621| `--json` | 검증 보고서를 동일한 종료 코드를 포함하는 하나의 JSON 객체로 출력합니다. Claude Code v2.1.259 이상 필요 |638| `--json` | 검증 보고서를 동일한 종료 코드로 하나의 JSON 객체로 출력합니다. Claude Code v2.1.259 이상 필요 |

622 639 

623커밋하기 전에 플러그인을 검증합니다:640커밋하기 전에 플러그인을 검증합니다:

624 641 


671* `strict`: 실행이 경고를 오류로 취급했는지 여부688* `strict`: 실행이 경고를 오류로 취급했는지 여부

672* `target`: Claude Code가 검증한 해결된 경로689* `target`: Claude Code가 검증한 해결된 경로

673* `manifest`: 매니페스트의 자체 결과 또는 매니페스트 없는 실행의 경우 `null`690* `manifest`: 매니페스트의 자체 결과 또는 매니페스트 없는 실행의 경우 `null`

674* `contents`: 파일당 결과로, 각각 `file`의 이름을 지정하고 `errors`, `warnings`, `notes` 배열을 포함합니다691* `contents`: 파일별 결과로, 각각 `file`의 이름을 지정하고 `errors`, `warnings`, `notes` 배열을 포함합니다

692 * `gatingHooks`: 작업을 거부할 수 있는 각 [mod](/docs/ko/plugins/mods/overview) 훅(예: `tool.call` 훅)에 [`.catch` 핸들러](/docs/ko/plugins/mods/events#handle-a-hook-that-fails)가 있는지 여부. 각 항목은 `module`, `pattern`, `hook`, `hasCatch`를 제공합니다. Claude Code v2.1.290 이상 필요

675 693 

676종료 `2`에서 명령어는 stdout에 아무것도 쓰지 않습니다. 오류 메시지는 stderr로 이동합니다.694종료 `2`에서 명령은 stdout에 아무것도 쓰지 않습니다. 오류 메시지는 stderr로 이동합니다.

677 695 

678<h2 id="claude-plugin-marketplace-commands">696<h2 id="claude-plugin-marketplace-commands">

679 claude plugin marketplace 명령어697 claude plugin marketplace 명령

680</h2>698</h2>

681 699 

682셸에서 `claude plugin marketplace <subcommand>`를 실행하여 플러그인을 설치하는 마켓플레이스를 추가, 나열, 새로고침 및 제거합니다.700셸에서 `claude plugin marketplace <subcommand>`를 실행하여 플러그인을 설치하는 마켓플레이스를 추가, 나열, 새로고침 및 제거합니다.

683 701 

684* **종료 코드**: 이러한 하위 명령어는 플러그인 명령어의 [종료 코드 규칙](#claude-plugin-commands)을 따릅니다702* **종료 코드**: 이러한 하위 명령은 플러그인 명령의 [종료 코드 규칙](#claude-plugin-commands)을 따릅니다

685* **범위**: 해당 `--scope` 플래그에는 `-s` 짧은 형식이 없습니다703* **범위**: 해당 `--scope` 플래그에는 `-s` 짧은 형식이 없습니다

686 704 

687마켓플레이스가 무엇이고 Claude Code가 이를 캐시하는 방법은 [플러그인 로딩 참조](/docs/ko/plugins/loading)를 참조하세요.705마켓플레이스가 무엇이고 Claude Code가 이를 캐시하는 방법은 [플러그인 로딩 참조](/docs/ko/plugins/loading)를 참조하세요.


692 710 

693GitHub 저장소, git URL, 호스팅된 `marketplace.json` 또는 로컬 경로에서 마켓플레이스를 추가하고 설정 파일에 선언합니다.711GitHub 저장소, git URL, 호스팅된 `marketplace.json` 또는 로컬 경로에서 마켓플레이스를 추가하고 설정 파일에 선언합니다.

694 712 

695추가한 후 Claude Code는 설치된 플러그인이 누락된 [종속성](/docs/ko/plugins/dependencies)을 설치합니다.713추가한 후 Claude Code는 설치된 플러그인이 누락된 [의존성](/docs/ko/plugins/dependencies)을 설치합니다.

696 714 

697```bash theme={null}715```bash theme={null}

698claude plugin marketplace add <source> [options]716claude plugin marketplace add <source> [options]


703| `--scope <scope>` | 마켓플레이스를 선언할 설정 파일: `user`, `project` 또는 `local`. 기본값은 `user` |721| `--scope <scope>` | 마켓플레이스를 선언할 설정 파일: `user`, `project` 또는 `local`. 기본값은 `user` |

704| `--sparse <paths...>` | monorepos의 경우 git 체크아웃을 이러한 디렉토리로 제한합니다. `github` 및 `git` 소스만 해당 |722| `--sparse <paths...>` | monorepos의 경우 git 체크아웃을 이러한 디렉토리로 제한합니다. `github` 및 `git` 소스만 해당 |

705| `--claudeai` | 인수를 소스 대신 [claude.ai에서 호스팅되는 마켓플레이스](/docs/ko/plugins/install#add-from-claude-ai)의 이름으로 읽습니다. Claude Code v2.1.273 이상 필요 |723| `--claudeai` | 인수를 소스 대신 [claude.ai에서 호스팅되는 마켓플레이스](/docs/ko/plugins/install#add-from-claude-ai)의 이름으로 읽습니다. Claude Code v2.1.273 이상 필요 |

724| `--json` | 명령의 성공 여부와 메시지를 stdout의 마지막 줄에 하나의 JSON 객체로 [JSON 결과 형식](#plugin-json-result)에 따라 출력합니다. `--claudeai`와 함께 사용하면 효과가 없습니다. Claude Code v2.1.287 이상 필요 |

706 725 

707`<source>`는 아래 표의 형식 중 하나를 사용하고 해당 형식은 소스 유형과 Claude Code가 마켓플레이스를 가져오는 방식을 결정합니다. 결과 소스 객체는 [마켓플레이스 참조](/docs/ko/plugins/marketplace-reference)를 참조하세요.726`<source>`는 아래 표의 형식 중 하나를 사용하고 해당 형식은 소스 유형과 Claude Code가 마켓플레이스를 가져오는 방식을 결정합니다. 결과 소스 객체는 [마켓플레이스 참조](/docs/ko/plugins/marketplace-reference)를 참조하세요.

708 727 


738claude plugin marketplace add --claudeai claudeai-organization-library757claude plugin marketplace add --claudeai claudeai-organization-library

739```758```

740 759 

741`--claudeai`를 사용하면 명령어는 `--scope` 및 `--sparse`를 거부합니다. 마켓플레이스는 계정에 대해 호스팅되고 설정 파일에 선언되지 않으므로 프로젝트의 `.claude/settings.json`을 통해 공유할 수 없습니다.760`--claudeai`를 사용하면 명령은 `--scope` 및 `--sparse`를 거부합니다. 마켓플레이스는 계정에 대해 호스팅되고 설정 파일에 선언되지 않으므로 프로젝트의 `.claude/settings.json`을 통해 공유할 수 없습니다.

742 761 

743<h3 id="plugin-marketplace-list">762<h3 id="plugin-marketplace-list">

744 plugin marketplace list763 plugin marketplace list


765| `repo` | `owner/repo`. `github` 소스만 해당 |784| `repo` | `owner/repo`. `github` 소스만 해당 |

766| `url` | 복제 또는 가져오기 URL입니다. `git` 및 `url` 소스만 해당 |785| `url` | 복제 또는 가져오기 URL입니다. `git` 및 `url` 소스만 해당 |

767| `path` | 로컬 경로입니다. `directory` 및 `file` 소스만 해당 |786| `path` | 로컬 경로입니다. `directory` 및 `file` 소스만 해당 |

768| `ref` | 고정된 분기 또는 태그입니다. `github` 및 `git` 소스, 고정된 경우만 해당 |787| `ref` | 고정된 브랜치 또는 태그입니다. `github` 및 `git` 소스, 고정된 경우만 해당 |

769| `installLocation` | Claude Code가 마켓플레이스를 캐시한 위치 |788| `installLocation` | Claude Code가 마켓플레이스를 캐시한 위치 |

770 789 

771추가된 [claude.ai 마켓플레이스](/docs/ko/plugins/install#add-from-claude-ai)에는 로컬 복제본이 없으므로 해당 항목은 `installLocation` 대신 claude.ai 식별자 `marketplaceId` 및 `organizationUuid`를 포함합니다. 또한 기록된 경우 `scope`와 `status`를 포함합니다.790추가된 [claude.ai 마켓플레이스](/docs/ko/plugins/install#add-from-claude-ai)에는 로컬 복제본이 없으므로 해당 항목은 `installLocation` 대신 claude.ai 식별자 `marketplaceId` 및 `organizationUuid`를 포함합니다. 또한 기록된 경우 `scope`와 `status`를 포함합니다.

772 791 

773터미널 세션이 [claude.ai 계정에서 플러그인을 동기화](/docs/ko/plugins/loading#synced-plugins)하면 텍스트 목록은 `From claude.ai:` 섹션으로 끝납니다. 해당 섹션은 claude.ai가 추가하지 않은 계정에 대해 나열하는 마켓플레이스의 이름을 지정합니다(git 기반 및 호스팅). Claude Code v2.1.273 이상 필요합니다.792터미널 세션이 [claude.ai 계정에서 플러그인을 동기화](/docs/ko/plugins/loading#synced-plugins)하면 텍스트 목록은 `From claude.ai:` 섹션으로 끝납니다. 해당 섹션은 claude.ai가 계정에 대해 나열하지만 아직 추가하지 않은 마켓플레이스의 이름을 지정합니다(git 기반 및 호스팅). Claude Code v2.1.273 이상이 필요합니다.

774 793 

775해당 섹션에서 마켓플레이스를 추가하려면 [claude.ai에서 마켓플레이스 추가](/docs/ko/plugins/install#add-from-claude-ai)를 참조하세요.794해당 섹션에서 마켓플레이스를 추가하려면 [claude.ai에서 마켓플레이스 추가](/docs/ko/plugins/install#add-from-claude-ai)를 참조하세요.

776 795 


783설정에서 마켓플레이스의 선언을 제거합니다. `rm`은 `remove`의 별칭입니다.802설정에서 마켓플레이스의 선언을 제거합니다. `rm`은 `remove`의 별칭입니다.

784 803 

785<Warning>804<Warning>

786 마켓플레이스를 선언하는 마지막 범위에서 제거하면 Claude Code는 캐시도 삭제하고 설치한 모든 플러그인을 제거합니다. 또한 저장된 [옵션 및 비밀](/docs/ko/plugins/manifest-reference#user-configuration) 및 [데이터](/docs/ko/plugins/components#path-variables-and-persistent-data)를 삭제합니다.805 마켓플레이스를 선언하는 마지막 범위에서 제거하면 Claude Code는 캐시도 삭제하고 해당 마켓플레이스에서 설치한 모든 플러그인을 제거합니다. 또한 가능한 경우 저장된 [옵션 및 비밀](/docs/ko/plugins/manifest-reference#user-configuration) 및 [데이터](/docs/ko/plugins/components#path-variables-and-persistent-data)를 삭제합니다.

787 806 

788 플러그인을 잃지 않고 마켓플레이스를 새로고침하려면 `plugin marketplace update`를 대신 실행하세요.807 플러그인을 잃지 않고 마켓플레이스를 새로고침하려면 `plugin marketplace update`를 대신 실행하세요.

789</Warning>808</Warning>


792claude plugin marketplace remove <name> [options]811claude plugin marketplace remove <name> [options]

793```812```

794 813 

795`<name>`은 전달한 소스가 아니라 `plugin marketplace list`가 표시하는 마켓플레이스 이름입니다.814`<name>`은 `add`에 전달한 소스가 아니라 `plugin marketplace list`가 표시하는 마켓플레이스 이름입니다.

796 815 

797| 플래그 | 설명 |816| 플래그 | 설명 |

798| :- | :- |817| :- | :- |

799| `--scope <scope>` | 한 설정 범위에서 선언을 제거합니다: `user`, `project` 또는 `local`. 없으면 Claude Code는 모든 범위에서 제거합니다 |818| `--scope <scope>` | 한 설정 범위에서 선언을 제거합니다: `user`, `project` 또는 `local`. 없으면 Claude Code는 모든 범위에서 선언을 제거합니다 |

819| `--json` | 명령의 성공 여부와 메시지를 stdout의 마지막 줄에 하나의 JSON 객체로 [JSON 결과 형식](#plugin-json-result)에 따라 출력합니다. Claude Code v2.1.287 이상 필요 |

800 820 

801모든 범위에서 마켓플레이스를 제거합니다:821모든 범위에서 마켓플레이스를 제거합니다:

802 822 


804claude plugin marketplace remove your-marketplace824claude plugin marketplace remove your-marketplace

805```825```

806 826 

807Claude Code는 `Successfully removed marketplace: your-marketplace`를 출력합니다. 명령어가 플러그인을 제거할 때 출력은 `Also uninstalled 2 plugins from this marketplace:`와 같은 줄 아래에 나열합니다. 다시 사용하려면 마켓플레이스를 다시 추가하고 플러그인을 다시 설치하세요.827Claude Code는 `Successfully removed marketplace: your-marketplace`를 출력합니다. 명령이 플러그인을 제거할 때 출력은 `Also uninstalled 2 plugins from this marketplace:`와 같은 줄 아래에 나열합니다. 다시 사용하려면 마켓플레이스를 다시 추가하고 플러그인을 다시 설치하세요.

808 828 

809마켓플레이스를 선언하지 않는 설정 파일로 범위를 지정하면 명령어는 `Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.`로 실패합니다.829마켓플레이스를 선언하지 않는 설정 파일로 범위를 지정하면 명령은 `Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.`로 실패합니다.

810 830 

811<h3 id="plugin-marketplace-update">831<h3 id="plugin-marketplace-update">

812 plugin marketplace update832 plugin marketplace update

813</h3>833</h3>

814 834 

815한 마켓플레이스 또는 모든 마켓플레이스를 소스에서 새로고침하여 새 플러그인 및 버전을 가져옵니다. 분기 또는 태그 `ref`로 추가된 마켓플레이스는 저장소의 기본 분기가 아니라 해당 ref의 최신 커밋으로 업데이트됩니다.835한 마켓플레이스 또는 모든 마켓플레이스를 소스에서 새로고침하여 새 플러그인 및 버전을 가져옵니다. 브랜치 또는 태그 `ref`로 추가된 마켓플레이스는 저장소의 기본 브랜치가 아니라 해당 ref의 최신 커밋으로 업데이트됩니다.

816 836 

817```bash theme={null}837```bash theme={null}

818claude plugin marketplace update [name]838claude plugin marketplace update [name] [options]

819```839```

820 840 

821명령어는 `--help` 이외의 플래그를 사용하지 않습니다.841| 플래그 | 설명 |

842| :- | :- |

843| `--json` | 명령의 성공 여부와 메시지를 stdout의 마지막 줄에 하나의 JSON 객체로 [JSON 결과 형식](#plugin-json-result)에 따라 출력합니다. 이름 없이 실행하면 명령은 `--json`을 거부하고 `1`로 종료합니다. Claude Code v2.1.287 이상 필요 |

822 844 

823한 마켓플레이스를 새로고침합니다:845한 마켓플레이스를 새로고침합니다:

824 846 


826claude plugin marketplace update your-marketplace848claude plugin marketplace update your-marketplace

827```849```

828 850 

829Claude Code는 `Successfully updated marketplace: your-marketplace`를 출력합니다. 이름을 생략하면 `Successfully updated 2 marketplaces`와 같은 수를 출력합니다. 추가된 마켓플레이스가 없으면 `No marketplaces configured`를 출력하고 `0`으로 종료합니다.851Claude Code는 `Successfully updated marketplace: your-marketplace`를 출력합니다. 이름을 생략하면 `Successfully updated 2 marketplaces`와 같은 수를 출력합니다.

830 852 

831<h2 id="plugin-in-a-session">853<h2 id="plugin-in-a-session">

832 세션의 /plugin854 세션의 /plugin

plugins/components.md +118 −118

Details

633</PluginExplorer>633</PluginExplorer>

634 634 

635<h2 id="add-each-kind-of-component">635<h2 id="add-each-kind-of-component">

636 각 종류의 컴포넌트 추가636 각 유형의 구성 요소 추가하기

637</h2>637</h2>

638 638 

639아래의 각 섹션은 한 종류의 컴포넌트를 다룹니다: 플러그인에서 파일이 어디로 가는지, 검증하는 예제, 플러그인이 로드된 후 사용자가 보는 것, 기본 위치를 변경하는 manifest 키. 플러그인이 필요한 것들을 추가합니다; 아무것도 필수가 아닙니다.639아래 각 섹션은 한 가지 유형의 구성 요소를 다룹니다. 플러그인에서 해당 파일을 두는 위치, 검증을 통과하는 예시, 플러그인이 로드된 후 사용자에게 보이는 내용, 기본 위치를 변경하는 매니페스트 키를 설명합니다. 플러그인에 필요한 것만 추가하면 되며, 필수 항목은 없습니다.

640 640 

641<h3 id="skills">641<h3 id="skills">

642 Skills642 Skills

643</h3>643</h3>

644 644 

645[skill](/docs/ko/skills)은 설명이 작업과 일치할 때 Claude가 로드할 수 있는 `SKILL.md` 파일입니다. 사용자는 또한 명령으로 실행할 수 있습니다. 각 skill을 `skills/` 아래의 자신의 디렉토리에 저장합니다:645[스킬](/docs/ko/skills)은 설명이 작업과 일치할 때 Claude가 로드할 수 있는 `SKILL.md` 파일입니다. 사용자가 명령으로 직접 실행할 수도 있습니다. 각 스킬은 `skills/` 아래의 개별 디렉터리에 저장합니다.

646 646 

647```text theme={null}647```text theme={null}

648my-plugin/648my-plugin/


653 └── SKILL.md653 └── SKILL.md

654```654```

655 655 

656`SKILL.md`에 `description`을 제공하여 Claude가 언제 사용할지 알 수 있도록 합니다:656Claude가 언제 사용할지 알 수 있도록 `SKILL.md`에 `description`을 지정합니다.

657 657 

658```markdown skills/review/SKILL.md theme={null}658```markdown skills/review/SKILL.md theme={null}

659---659---


663Review the changed files. Report style problems first, then missing tests.663Review the changed files. Report style problems first, then missing tests.

664```664```

665 665 

666플러그인을 로드한 후, `/my-plugin:review`는 skill을 실행합니다. 명령 이름과 누가 호출할 수 있는지는 다음 규칙을 따릅니다:666플러그인을 로드하면 `/my-plugin:review`가 스킬을 실행합니다. 명령 이름과 호출 주체는 다음 규칙을 따릅니다.

667 667 

668* **명령 이름**: `/<plugin>:<directory>`, 따라서 `my-plugin`의 `skills/review/SKILL.md`는 `/my-plugin:review`입니다. frontmatter에서 `name`을 설정하면, 마지막 세그먼트를 대체하고 플러그인 접두사는 유지됩니다. [skill이 명령 이름을 얻는 방법](/docs/ko/skills#how-a-skill-gets-its-command-name)을 참조합니다668* **명령 이름**: `/<plugin>:<directory>` 형식이므로 `my-plugin`의 `skills/review/SKILL.md`는 `/my-plugin:review`가 됩니다. frontmatter에서 `name`을 설정하면 마지막 세그먼트가 대체되고 플러그인 접두사는 유지됩니다. [스킬의 명령 이름이 정해지는 방식](/docs/ko/skills#how-a-skill-gets-its-command-name)을 참조하십시오

669* **누가 호출하는가**: Claude, 사용자, 또는 둘 다, frontmatter로 제어됩니다. [skill 호출을 제어하는 사람](/docs/ko/skills#control-who-invokes-a-skill)을 참조합니다669* **호출 주체**: Claude, 사용자 또는 둘 다이며, frontmatter로 제어합니다. [스킬 호출 주체 제어하기](/docs/ko/skills#control-who-invokes-a-skill)를 참조하십시오

670 670 

671기본 `skills/` 디렉토리 외부에 skills를 배치할 수도 있습니다:671기본 `skills/` 디렉터리 외부에 스킬을 둘 수도 있습니다.

672 672 

673* **추가 디렉토리**: `skills` manifest 키에 나열합니다. 이들은 `commands`와 `agents`와 달리 기본 `skills/` 스캔을 대체하지 않고 추가합니다673* **추가 디렉터리**: `skills` 매니페스트 키에 나열합니다. `commands` 및 `agents`와 달리, 기본 `skills/` 스캔을 대체하지 않고 여기에 추가됩니다

674* **플러그인 루트의 단일 skill**: `skills/` 디렉토리가 없고 `skills` manifest 키가 없으면, 플러그인 루트의 `SKILL.md`는 하나의 skill로 로드됩니다. frontmatter에서 `name`을 설정합니다, 그렇지 않으면 마켓플레이스 설치가 플러그인 이름이 아닌 [캐시 디렉토리](/docs/ko/plugins/loading#find-plugins-on-disk) 이름으로 skill을 이름 지정합니다674* **플러그인 루트의 단일 스킬**: `skills/` 디렉터리와 `skills` 매니페스트 키가 모두 없으면 플러그인 루트의 `SKILL.md`가 하나의 스킬로 로드됩니다. frontmatter에 `name`을 설정하십시오. 그렇지 않으면 마켓플레이스 설치 시 스킬 이름이 플러그인이 아닌 [캐시 디렉터리](/docs/ko/plugins/loading#find-plugins-on-disk) 이름을 따르게 됩니다

675 675 

676플러그인에 지침을 포함하려면, 이를 skill로 작성합니다. Claude Code는 플러그인 루트의 `CLAUDE.md`를 로드하지 않으며, `claude plugin validate`는 `CLAUDE.md at the plugin root is not loaded as project context` 경고를 표시합니다.676플러그인에 지침을 포함하려면 스킬로 작성하십시오. Claude Code는 플러그인 루트의 `CLAUDE.md`를 로드하지 않으며, `claude plugin validate`는 `CLAUDE.md at the plugin root is not loaded as project context` 경고를 표시합니다.

677 677 

678규칙이 매번 유지되어야 하는 경우(예: [보호된 파일에 대한 편집 차단](/docs/ko/hooks-guide#block-edits-to-protected-files)), 이를 skill이 아닌 플러그인에 [hook](#hooks)으로 추가합니다. 둘 중 선택하려면, [유사한 기능 비교](/docs/ko/features-overview#compare-similar-features) 아래의 Hook vs Skill 탭을 참조합니다.678[보호된 파일 편집 차단](/docs/ko/hooks-guide#block-edits-to-protected-files)처럼 항상 지켜져야 하는 규칙이라면 스킬이 아닌 [훅](#hooks)으로 플러그인에 추가하십시오. 둘 중 무엇을 선택할지는 [유사한 기능 비교](/docs/ko/features-overview#compare-similar-features)의 Hook vs Skill 탭을 참조하십시오.

679 679 

680frontmatter 필드 및 지원 파일의 경우, [Skills](/docs/ko/skills)를 참조합니다.680frontmatter 필드와 보조 파일에 대해서는 [Skills](/docs/ko/skills)를 참조하십시오.

681 681 

682<h3 id="commands">682<h3 id="commands">

683 명령683 Commands

684</h3>684</h3>

685 685 

686명령은 사용자가 이름으로 실행하는 단일 Markdown 파일입니다(예: `/my-plugin:about`).686명령은 사용자가 `/my-plugin:about`처럼 이름으로 실행하는 단일 Markdown 파일입니다.

687 687 

688<Note>688<Note>

689 명령은 이전 형식이며, [skills](#skills)는 새로운 작업을 위해 이를 대체합니다. skill은 같은 방식으로 이름으로 실행되고, 디렉토리에 지원 파일을 포함할 수도 있습니다. `.claude/commands/`에서 이동하는 파일에 대해 `commands/`를 유지합니다.689 명령은 이전 형식이며, 새로운 작업에서는 [스킬](#skills)이 이를 대체합니다. 스킬도 같은 방식으로 이름으로 실행되며, 디렉터리에 보조 파일을 함께 담을 수도 있습니다. `commands/`는 `.claude/commands/`에서 옮겨 오는 파일에만 사용하십시오.

690</Note>690</Note>

691 691 

692`commands/<file>.md`에 명령을 저장하면 `/<plugin>:<file>`이 됩니다. 서브디렉토리는 세그먼트를 추가하므로, `commands/db/migrate.md`는 `/my-plugin:db:migrate`입니다.692명령을 `commands/<file>.md`에 저장하면 `/<plugin>:<file>`이 됩니다. 하위 디렉터리는 세그먼트를 추가하므로 `commands/db/migrate.md`는 `/my-plugin:db:migrate`가 됩니다.

693 693 

694명령 파일은 skills와 동일한 frontmatter를 사용합니다.694명령 파일은 스킬과 동일한 frontmatter를 사용합니다.

695 695 

696<h4 id="define-commands-in-the-manifest">696<h4 id="define-commands-in-the-manifest">

697 manifest에서 명령 정의697 매니페스트에서 명령 정의하기

698</h4>698</h4>

699 699 

700명령 파일을 `commands/` 이외의 다른 곳에 유지하거나, 별도의 Markdown 파일 없이 `plugin.json` 내부에 짧은 명령을 정의하려는 경우에만 필요합니다. `commands` manifest 키를 설정하면, Claude Code는 `commands/`를 스캔하는 대신 이를 읽습니다. 키는 경로, 경로 배열, 또는 각 명령 이름을 `source` 파일 또는 인라인 `content`로 매핑하는 객체를 사용합니다.700이 방법은 명령 파일을 `commands/`가 아닌 다른 위치에 두거나, 별도의 Markdown 파일 없이 `plugin.json` 안에 짧은 명령을 정의하려는 경우에만 필요합니다. `commands` 매니페스트 키를 설정하면 Claude Code는 `commands/`를 스캔하는 대신 이 키를 읽습니다. 이 키는 경로, 경로 배열, 또는 각 명령 이름을 `source` 파일이나 인라인 `content`에 매핑하는 객체를 받습니다.

701 701 

702이 manifest는 `/my-plugin:about`을 인라인으로 정의하며, Markdown 파일이 없습니다:702다음 매니페스트는 Markdown 파일 없이 `/my-plugin:about`을 인라인으로 정의합니다.

703 703 

704```json .claude-plugin/plugin.json theme={null}704```json .claude-plugin/plugin.json theme={null}

705{705{


715 715 

716플러그인을 로드하고 세션에서 `/my-plugin:about`을 실행하여 로드되었는지 확인합니다.716플러그인을 로드하고 세션에서 `/my-plugin:about`을 실행하여 로드되었는지 확인합니다.

717 717 

718전체 키 구문의 경우, [`commands`](/docs/ko/plugins/manifest-reference#commands)를 참조합니다.718전체 키 구문은 [`commands`](/docs/ko/plugins/manifest-reference#commands)를 참조하십시오.

719 719 

720<h3 id="agents">720<h3 id="agents">

721 Agents721 Agents

722</h3>722</h3>

723 723 

724[서브에이전트](/docs/ko/sub-agents)는 자신의 지침과 컨텍스트 윈도우를 가진 별도의 어시스턴트로, Claude가 작업을 위임할 수 있습니다. `agents/` 아래의 각 Markdown 파일은 하나를 정의합니다:724[서브에이전트](/docs/ko/sub-agents)는 자체 지침과 컨텍스트 윈도우를 가진 별도의 어시스턴트로, Claude가 작업을 위임할 수 있습니다. `agents/` 아래의 각 Markdown 파일이 하나의 서브에이전트를 정의합니다.

725 725 

726```markdown agents/security-reviewer.md theme={null}726```markdown agents/security-reviewer.md theme={null}

727---727---


733You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.733You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.

734```734```

735 735 

736이 에이전트는 `my-plugin:security-reviewer`로 이름 지정되고, 사용자는 `@agent-my-plugin:security-reviewer`로 [명시적으로 호출](/docs/ko/sub-agents#invoke-subagents-explicitly)할 수 있습니다. 이름 형식은 `<plugin>:<name>`이며, `<name>`은 frontmatter `name` 필드에서 오거나, 해당 필드가 없을 때 파일 이름에서 옵니다.736이 에이전트의 이름은 `my-plugin:security-reviewer`이며, 사용자는 `@agent-my-plugin:security-reviewer`로 [명시적으로 호출](/docs/ko/sub-agents#invoke-subagents-explicitly)할 수 있습니다. 이름 형식은 `<plugin>:<name>`이며, `<name>`은 frontmatter의 `name` 필드에서 가져오고, 해당 필드가 없으면 파일 이름에서 가져옵니다.

737 737 

738`agents` manifest 키는 `agents/` 스캔을 대체합니다.738`agents` 매니페스트 키는 `agents/` 스캔을 대체합니다.

739 739 

740<h4 id="organize-agents-in-subfolders">740<h4 id="organize-agents-in-subfolders">

741 agents의 서브폴더에서 agents 구성741 하위 폴더로 에이전트 정리하기

742</h4>742</h4>

743 743 

744플러그인 agent 파일을 `agents/`의 서브폴더에 넣을 수 있습니다. Claude Code는 [재귀적으로 로드](/docs/ko/sub-agents#choose-the-subagent-scope)하고 플러그인 이름, 각 서브폴더 이름, 파일 이름을 콜론으로 결합하여 에이전트의 범위 지정 이름을 형성합니다. 예를 들어, `my-plugin`이라는 플러그인의 `agents/review/security.md`는 `my-plugin:review:security`로 로드됩니다. 두 가지 설정이 해당 이름을 변경합니다:744플러그인 에이전트 파일을 `agents/`의 하위 폴더에 둘 수 있습니다. Claude Code는 이를 [재귀적으로 로드](/docs/ko/sub-agents#choose-the-subagent-scope)하며, 플러그인 이름, 각 하위 폴더 이름, 파일 이름을 콜론으로 연결하여 에이전트의 범위 지정 이름을 만듭니다. 예를 들어 `my-plugin`이라는 플러그인의 `agents/review/security.md`는 `my-plugin:review:security`로 로드됩니다. 다음 두 가지 설정이 이 이름을 변경합니다.

745 745 

746* Frontmatter `name`: 파일 이름만 대체하므로, `agents/review/security.md`의 `name: audit`은 `my-plugin:review:audit`로 로드됩니다746* Frontmatter `name`: 파일 이름만 대체하므로 `agents/review/security.md`의 `name: audit`는 `my-plugin:review:audit`로 로드됩니다

747* Manifest [`agents`](/docs/ko/plugins/manifest-reference#fields) 필드: 거기에 나열한 파일은 서브폴더 이름 없이 로드되므로, `"agents": "./custom/review/security.md"`는 `my-plugin:security`로 로드됩니다747* 매니페스트 [`agents`](/docs/ko/plugins/manifest-reference#fields) 필드: 여기에 나열한 파일은 하위 폴더 이름 없이 로드되므로 `"agents": "./custom/review/security.md"`는 `my-plugin:security`로 로드됩니다

748 748 

749<h4 id="frontmatter-fields-in-plugin-agents">749<h4 id="frontmatter-fields-in-plugin-agents">

750 플러그인 agents의 Frontmatter 필드750 플러그인 에이전트의 frontmatter 필드

751</h4>751</h4>

752 752 

753플러그인 agent의 frontmatter는 다음 규칙을 따릅니다:753플러그인 에이전트의 frontmatter는 다음 규칙을 따릅니다.

754 754 

755* **지원되는 필드**: `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color`, 그리고 `experimental`의 `cacheTtl` 키. 유일한 유효한 `isolation` 값은 `"worktree"`입니다. 각각이 무엇을 하는지는 [지원되는 frontmatter 필드](/docs/ko/sub-agents#supported-frontmatter-fields)를 참조합니다755* **지원되는 필드**: `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color`, 그리고 `experimental`의 `cacheTtl` 키입니다. 유효한 `isolation` 값은 `"worktree"`뿐입니다. 각 필드의 역할은 [지원되는 frontmatter 필드](/docs/ko/sub-agents#supported-frontmatter-fields)를 참조하십시오

756* **무시되는 필드**: `permissionMode`, `hooks`, `mcpServers`, `initialPrompt`. agent 파일은 자신의 hooks나 MCP 서버를 추가할 수 없으므로, 이들을 플러그인 [hooks](#hooks)와 [MCP 서버](#mcp-servers)로 추가합니다756* **무시되는 필드**: `permissionMode`, `hooks`, `mcpServers`, `initialPrompt`입니다. 에이전트 파일은 자체적으로 훅이나 MCP 서버를 추가할 수 없으므로, 대신 플러그인 [훅](#hooks)과 [MCP 서버](#mcp-servers)로 추가하십시오

757* **파싱되지 않는 Frontmatter**: agent는 여전히 모든 필드가 무시된 상태로 로드됩니다. 파일 이름으로 이름 지정되고, 설명은 `Agent from my-plugin plugin`을 읽습니다. 셸에서 [`claude plugin validate`](/docs/ko/plugins/cli-reference#plugin-validate)를 실행하여 이러한 파일을 찾습니다757* **파싱되지 않는 frontmatter**: 에이전트는 모든 필드가 무시된 채로 로드됩니다. 이름은 파일 이름을 따르며, 설명은 `Agent from my-plugin plugin`으로 표시됩니다. 이러한 파일을 찾으려면 셸에서 [`claude plugin validate`](/docs/ko/plugins/cli-reference#plugin-validate)를 실행하십시오

758 758 

759각 필드가 무엇을 하는지와 우선순위 규칙의 경우, [Subagents](/docs/ko/sub-agents#supported-frontmatter-fields)를 참조합니다.759각 필드의 역할과 우선순위 규칙은 [Subagents](/docs/ko/sub-agents#supported-frontmatter-fields)를 참조하십시오.

760 760 

761<h3 id="hooks">761<h3 id="hooks">

762 Hooks762 Hooks

763</h3>763</h3>

764 764 

765[hook](/docs/ko/hooks-guide)은 Claude Code의 라이프사이클의 한 지점(예: 모든 파일 편집 후)에서 자동으로 무언가를 실행합니다: 셸 명령, HTTP 요청, MCP 도구 호출, 모델에 대한 프롬프트, 또는 서브에이전트. 플러그인의 hooks를 플러그인 루트의 `hooks/hooks.json`에 저장하고, 최상위 `"hooks"` 키 아래에, `settings.json`의 `hooks` 객체와 동일한 형태로 저장합니다. 이를 통해 기존 설정 hook을 변경 없이 복사할 수 있습니다.765[훅](/docs/ko/hooks-guide)은 파일을 편집할 때마다와 같이 Claude Code 수명 주기의 특정 시점에 셸 명령, HTTP 요청, MCP 도구 호출, 모델에 대한 프롬프트 또는 서브에이전트를 자동으로 실행합니다. 플러그인의 훅은 플러그인 루트의 `hooks/hooks.json`에 최상위 `"hooks"` 키 아래에, `settings.json`의 `hooks` 객체와 동일한 형태로 저장합니다. 따라서 기존 설정 훅을 그대로 복사해 넣을 수 있습니다.

766 766 

767이 hook은 모든 `Write` 또는 `Edit` 후에 번들된 스크립트를 실행합니다:767다음 훅은 모든 `Write` 또는 `Edit` 이후에 번들된 스크립트를 실행합니다.

768 768 

769```json hooks/hooks.json theme={null}769```json hooks/hooks.json theme={null}

770{770{


784}784}

785```785```

786 786 

787`scripts/format.sh`에 스크립트를 저장하고 실행 가능하게 만듭니다.787스크립트를 `scripts/format.sh`에 저장하고 실행 가능하게 만듭니다.

788 788 

789플러그인을 로드하고 Claude에 파일을 편집하도록 요청합니다. 종료 코드 0인 `PostToolUse` hook은 트랜스크립트에 아무것도 표시하지 않으므로, [디버그 로깅](/docs/ko/hooks#debug-hooks)으로 또는 스크립트 자체가 변경하는 것으로 실행되었는지 확인합니다.789플러그인을 로드하고 Claude에게 파일 편집을 요청합니다. 0으로 종료되는 `PostToolUse` 훅은 트랜스크립트에 아무것도 표시하지 않으므로, [디버그 로깅](/docs/ko/hooks#debug-hooks)을 사용하거나 스크립트 자체가 변경한 내용을 통해 실행 여부를 확인하십시오.

790 790 

791`hooks/hooks.json`과 `hooks` manifest 키의 Hooks는 모두 로드됩니다. 모든 이벤트와 그 페이로드의 경우, [Hook 이벤트](/docs/ko/hooks#hook-events)를 참조합니다.791`hooks/hooks.json`의 훅과 `hooks` 매니페스트 키의 훅은 모두 로드됩니다. 모든 이벤트와 해당 페이로드는 [Hook events](/docs/ko/hooks#hook-events)를 참조하십시오.

792 792 

793JavaScript 함수로 hooks를 작성하여 Claude Code 내부에서 실행되고 인터페이스에 그릴 수 있도록 하려면, 동일한 `hooks/hooks.json`의 `modules` 키 아래에 모듈 파일을 나열합니다. 하나를 가진 플러그인은 mod입니다. [mod 만들기](/docs/ko/plugins/mods/create)를 참조합니다.793Claude Code 내부에서 실행되고 인터페이스에 그릴 수 있는 JavaScript 함수로 훅을 작성하려면, 같은 `hooks/hooks.json`의 `modules` 키 아래에 모듈 파일을 나열합니다. 이러한 모듈이 있는 플러그인이 mod입니다. [mod 만들기](/docs/ko/plugins/mods/create)를 참조하십시오.

794 794 

795<h4 id="when-plugin-hooks-fire">795<h4 id="when-plugin-hooks-fire">

796 플러그인 hooks가 발생할 때796 플러그인 훅이 실행되는 시점

797</h4>797</h4>

798 798 

799플러그인의 hooks는 플러그인의 skills나 명령 중 하나가 사용될 때까지 기다리지 않습니다. Claude Code는 세션이 플러그인을 로드할 때 이들을 등록하고, 그 이후로 이벤트에서 발생합니다. hook이 실행되는 시기를 제한하려면, `matcher`를 좁힙니다.799플러그인의 훅은 플러그인의 스킬이나 명령이 사용될 때까지 기다리지 않습니다. Claude Code는 세션이 플러그인을 로드할 때 훅을 등록하며, 그 이후부터 해당 이벤트에서 훅이 실행됩니다. 훅의 실행 시점을 제한하려면 `matcher`의 범위를 좁히십시오.

800 800 

801hook이 발생하지 않으면, [발생하지 않는 hooks](/docs/ko/plugins/troubleshooting#failed-to-load-hooks-from-and-hooks-that-dont-fire)를 참조합니다.801훅이 전혀 실행되지 않는다면 [실행되지 않는 훅](/docs/ko/plugins/troubleshooting#failed-to-load-hooks-from-and-hooks-that-dont-fire)을 참조하십시오.

802 802 

803<h4 id="environment-quoting-and-matching-mcp-tools">803<h4 id="environment-quoting-and-matching-mcp-tools">

804 환경, 인용, MCP 도구 일치804 환경, 따옴표 처리 및 MCP 도구 매칭

805</h4>805</h4>

806 806 

807hook의 환경, `${CLAUDE_PLUGIN_ROOT}`의 인용, 플러그인의 자신의 MCP 도구에 대한 매처는 다음과 같이 작동합니다:807훅의 환경, `${CLAUDE_PLUGIN_ROOT}`의 따옴표 처리, 플러그인 자체 MCP 도구에 대한 matcher는 다음과 같이 작동합니다.

808 808 

809* **환경**: 모든 hook 프로세스는 환경에서 `CLAUDE_PLUGIN_ROOT`와 `CLAUDE_PLUGIN_DATA`를 받고, 각 [사용자 구성](#user-configuration) 값에 대해 `CLAUDE_PLUGIN_OPTION_<KEY>`를 받으므로, 스크립트는 거기서 이들을 읽을 수 있습니다809* **환경**: 모든 훅 프로세스는 환경 변수로 `CLAUDE_PLUGIN_ROOT`와 `CLAUDE_PLUGIN_DATA`를 받으며, 각 [사용자 구성](#user-configuration) 값에 대해 `CLAUDE_PLUGIN_OPTION_<KEY>`도 받으므로 스크립트에서 이를 읽을 수 있습니다

810* **인용**: `command`에 `args`가 없으면, 셸을 통해 실행되므로, `${CLAUDE_PLUGIN_ROOT}` 경로를 큰따옴표로 감싸십시오, [Hooks](#hooks) 아래의 `hooks/hooks.json` 예제처럼, 확장된 경로를 하나의 셸 단어로 유지하려면. `args`를 대신 전달하면, 각 요소는 셸 없이 하나의 인수로 전달되고 인용이 필요하지 않습니다. [exec 형식과 셸 형식](/docs/ko/hooks#exec-form-and-shell-form)을 참조합니다810* **따옴표 처리**: `command`에 `args`가 없으면 셸을 통해 실행되므로, [Hooks](#hooks)의 `hooks/hooks.json` 예시처럼 `${CLAUDE_PLUGIN_ROOT}` 경로를 큰따옴표로 감싸 확장된 경로가 하나의 셸 단어로 유지되도록 하십시오. 대신 `args`를 전달하면 각 요소가 셸 없이 하나의 인수로 전달되므로 따옴표가 필요하지 않습니다. [exec 형식과 셸 형식](/docs/ko/hooks#exec-form-and-shell-form)을 참조하십시오

811* **플러그인의 자신의 MCP 도구 일치**: 이 플러그인이 선언하는 [MCP 서버](#mcp-servers)의 도구는 `mcp__plugin_<plugin>_<server>__<tool>`로 이름 지정되므로, 매처에 전체 이름을 작성합니다. 서버 이름만의 매처는 발생하지 않습니다. [MCP 도구 일치](/docs/ko/hooks#match-mcp-tools)를 참조합니다811* **플러그인 자체 MCP 도구 매칭**: [이 플러그인이 선언한 MCP 서버](#mcp-servers)의 도구 이름은 `mcp__plugin_<plugin>_<server>__<tool>`이므로, matcher에 이 전체 이름을 작성하십시오. 서버 이름만으로 된 matcher는 절대 실행되지 않습니다. [MCP 도구 매칭](/docs/ko/hooks#match-mcp-tools)을 참조하십시오

812 812 

813<h3 id="mcp-servers">813<h3 id="mcp-servers">

814 MCP 서버814 MCP servers

815</h3>815</h3>

816 816 

817MCP 서버는 Claude에 외부 시스템의 도구를 제공합니다. 플러그인 루트의 `.mcp.json`에서 선언하고, [프로젝트 `.mcp.json`](/docs/ko/mcp#project-scope)과 동일한 형태로 선언합니다. 이 `.mcp.json`은 `db`라는 하나의 서버를 선언합니다:817MCP 서버는 외부 시스템의 도구를 Claude에 제공합니다. 플러그인 루트의 `.mcp.json`에 [프로젝트 `.mcp.json`](/docs/ko/mcp#project-scope)과 동일한 형태로 선언합니다. 다음 `.mcp.json`은 `db`라는 서버 하나를 선언합니다.

818 818 

819```json .mcp.json theme={null}819```json .mcp.json theme={null}

820{820{


827}827}

828```828```

829 829 

830`mcpServers` 래퍼를 생략하고 `db`를 파일의 최상위 수준에 넣을 수도 있습니다.830`mcpServers` 래퍼를 생략하고 `db`를 파일의 최상위에 둘 수도 있습니다.

831 831 

832플러그인을 로드하고 `/mcp`를 실행하여 서버가 `plugin:my-plugin:db`로 나타나는지 확인합니다.832플러그인을 로드하고 `/mcp`를 실행하여 서버가 `plugin:my-plugin:db`로 표시되는지 확인합니다.

833 833 

834`claude plugin validate`는 `.mcp.json`을 확인하고 Claude Code가 로드 시간에 삭제할 서버 항목을 오류로 보고합니다. Claude Code v2.1.281 이상이 필요합니다.834`claude plugin validate`는 `.mcp.json`을 검사하고, Claude Code가 로드 시점에 제외할 서버 항목을 오류로 보고합니다. Claude Code v2.1.281 이상이 필요합니다.

835 835 

836잘못된 항목이 로드 시간에 나타나는 위치의 경우, [시작하지 않는 MCP 서버](/docs/ko/plugins/troubleshooting#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start)를 참조합니다.836잘못된 항목이 로드 시점에 어디에 표시되는지는 [시작되지 않는 MCP 서버](/docs/ko/plugins/troubleshooting#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start)를 참조하십시오.

837 837 

838`mcpServers` manifest 키는 인라인 서버 맵, JSON 파일 경로, 또는 이들의 배열을 사용합니다. manifest 서버가 `.mcp.json`의 것과 동일한 이름을 가지면, manifest 서버가 이를 대체합니다.838`mcpServers` 매니페스트 키는 인라인 서버 맵, JSON 파일 경로, 또는 이들의 배열을 받습니다. 매니페스트 서버가 `.mcp.json`의 서버와 이름이 같으면 매니페스트 서버가 이를 대체합니다.

839 839 

840<h4 id="reach-users-on-claude-ai-and-cowork">840<h4 id="reach-users-on-claude-ai-and-cowork">

841 claude.ai 및 Cowork의 사용자에게 도달841 claude.ai 및 Cowork 사용자에게 제공하기

842</h4>842</h4>

843 843 

844`db` 서버 아래의 [MCP 서버](#mcp-servers)와 같은 로컬 stdio 서버는 Claude Code에서 실행되고 Claude Desktop 앱에서 머신에서 실행되는 Cowork 세션에서 실행되지만, claude.ai에서는 실행되지 않습니다. 거기에도 사용자에게 도달하려면, `https://` URL로 원격 서버를 참조하십시오, 이는 claude.ai와 Cowork이 사용자에게 커넥터로 제공합니다. [MCP 커넥터를 skill과 함께 번들](https://claude.com/docs/plugins/build#bundle-an-mcp-connector-with-its-skill)에서 보여주는 대로입니다.844[MCP servers](#mcp-servers)의 `db` 서버와 같은 로컬 stdio 서버는 Claude Code와 Claude Desktop 앱에서 사용자의 컴퓨터로 실행되는 Cowork 세션에서는 실행되지만 claude.ai에서는 실행되지 않습니다. 해당 사용자에게도 제공하려면 [Bundle an MCP connector with its skill](https://claude.com/docs/plugins/build#bundle-an-mcp-connector-with-its-skill)에 나온 것처럼 `https://` URL로 원격 서버를 참조하십시오. claude.ai와 Cowork는 이를 사용자에게 커넥터로 제공합니다.

845 845 

846<h4 id="server-names-tool-names-and-reloads">846<h4 id="server-names-tool-names-and-reloads">

847 서버 이름, 도구 이름, 재로드847 서버 이름, 도구 이름 및 다시 로드

848</h4>848</h4>

849 849 

850서버의 이름, 변수 대체, 재로드 동작은 다음 규칙을 따릅니다:850서버의 이름, 변수 치환, 다시 로드 동작은 다음 규칙을 따릅니다.

851 851 

852* **서버 이름**: `plugin:<plugin>:<server>`, 따라서 `my-plugin`의 `db` 서버는 `/mcp`에서 `plugin:my-plugin:db`입니다. [`mcp_tool` hook](/docs/ko/hooks#mcp-tool-hook-fields)에서 서버를 이름 지정할 때 동일한 형식을 사용합니다852* **서버 이름**: `plugin:<plugin>:<server>` 형식이므로 `my-plugin`의 `db` 서버는 `/mcp`에서 `plugin:my-plugin:db`로 표시됩니다. [`mcp_tool` 훅](/docs/ko/hooks#mcp-tool-hook-fields)에서 서버를 지정할 때도 같은 형식을 사용합니다

853* **도구 이름**: `mcp__plugin_<plugin>_<server>__<tool>`, 따라서 해당 `db` 서버의 `query` 도구는 `mcp__plugin_my-plugin_db__query`입니다. 이것은 [권한 규칙](/docs/ko/permissions)과 [hook 매처](#hooks)에서 사용할 이름입니다853* **도구 이름**: `mcp__plugin_<plugin>_<server>__<tool>` 형식이므로 해당 `db` 서버의 `query` 도구는 `mcp__plugin_my-plugin_db__query`입니다. [권한 규칙](/docs/ko/permissions)과 [훅 matcher](#hooks)에서는 이 이름을 사용합니다

854* **대체**: `${CLAUDE_PLUGIN_ROOT}`와 다른 [경로 변수](#path-variables-and-persistent-data)는 `command`, `args`, `env`에서 대체됩니다. `args`에서는 각 요소가 하나의 인수로 전달되므로 인용이 필요하지 않습니다854* **치환**: `${CLAUDE_PLUGIN_ROOT}`와 기타 [경로 변수](#path-variables-and-persistent-data)는 `command`, `args`, `env`에서 치환됩니다. `args`에서는 각 요소가 하나의 인수로 전달되므로 따옴표가 필요하지 않습니다

855* **재로드**: 사용자가 `/reload-plugins`를 실행하고 [재로드가 적용](/docs/ko/plugins/cli-reference#reloads-that-change-mcp-tools)되면, 구성이 변경되지 않은 서버는 연결을 유지합니다. 구성이 변경된 서버는 재연결되고, 제거한 서버는 연결을 끊습니다855* **다시 로드**: 사용자가 `/reload-plugins`를 실행하고 [다시 로드가 적용되면](/docs/ko/plugins/cli-reference#reloads-that-change-mcp-tools), 구성이 변경되지 않은 서버는 연결을 유지합니다. 구성이 변경된 서버는 다시 연결되고, 제거한 서버는 연결이 해제됩니다

856 856 

857<h4 id="include-a-packaged-mcpb-server">857<h4 id="include-a-packaged-mcpb-server">

858 패키지된 MCPB 서버 포함858 패키징된 MCPB 서버 포함하기

859</h4>859</h4>

860 860 

861`mcpServers` 키는 또한 [MCPB 파일](https://github.com/modelcontextprotocol/mcpb)로 패키지된 서버를 수용하며, 확장자는 `.mcpb` 또는 이전 `.dxt`입니다. 키를 파일로 가리키십시오, 플러그인 내부의 경로 또는 `https://` URL:861`mcpServers` 키는 확장자가 `.mcpb` 또는 이전 형식인 `.dxt`인 [MCPB 파일](https://github.com/modelcontextprotocol/mcpb)로 패키징된 서버도 받습니다. 키가 플러그인 내부 경로 또는 `https://` URL로 파일을 가리키도록 지정합니다.

862 862 

863```json .claude-plugin/plugin.json theme={null}863```json .claude-plugin/plugin.json theme={null}

864{864{


867}867}

868```868```

869 869 

870서버는 번들의 manifest에서 `name`을 가져옵니다.870서버 이름은 번들 매니페스트의 `name`을 따릅니다.

871 871 

872번들의 자신의 manifest는 서버가 필요로 하는 설정을 `user_config` 블록에서 선언할 수 있습니다. 저장된 값이 없는 필수 설정을 가진 번들된 서버는 시작되지 않습니다. `/plugin` **Errors** 탭은 `Bundled MCP server "<name>" was not started: it needs configuration`을 표시합니다.872번들 자체의 매니페스트는 `user_config` 블록에서 서버가 사용자로부터 필요로 하는 설정을 선언할 수 있습니다. 필수 설정에 저장된 값이 없는 번들 서버는 시작되지 않습니다. `/plugin` **Errors** 탭에 `Bundled MCP server "<name>" was not started: it needs configuration`이 표시됩니다.

873 873 

874사용자는 두 가지 방법 중 하나로 값을 제공합니다:874사용자는 다음 두 가지 방법 중 하나로 값을 제공합니다.

875 875 

876* **`/plugin`에서**: 플러그인을 **Installed** 탭에서 선택하고 **Configure**를 선택합니다876* **`/plugin`에서**: **Installed** 탭에서 플러그인을 선택하고 **Configure**를 선택합니다

877* **설치 시, 셸에서**: [`--config <server>.<key>=<value>`](/docs/ko/plugins/cli-reference#plugin-install)를 `claude plugin install`에 전달합니다. Claude Code v2.1.285 이상이 필요하고, 플러그인 내부에 패키지된 번들에만 작동합니다.877* **설치 시 셸에서**: `claude plugin install`에 [`--config <server>.<key>=<value>`](/docs/ko/plugins/cli-reference#plugin-install)를 전달합니다. Claude Code v2.1.285 이상이 필요하며, 플러그인 내부에 패키징된 번들에서만 작동합니다.

878 878 

879전송 및 인증의 경우, [MCP](/docs/ko/mcp#plugin-provided-mcp-servers)를 참조합니다.879전송 방식과 인증에 대해서는 [MCP](/docs/ko/mcp#plugin-provided-mcp-servers)를 참조하십시오.

880 880 

881<h3 id="lsp-servers">881<h3 id="lsp-servers">

882 LSP 서버882 LSP servers

883</h3>883</h3>

884 884 

885LSP 서버는 Claude에 언어에 대한 진단 및 코드 네비게이션을 제공합니다. [공식 코드 인텔리전스 플러그인](/docs/ko/plugins/code-intelligence)이 이미 언어를 다루면, 하나을 작성하는 대신 설치합니다. 그렇지 않으면 플러그인 루트의 `.lsp.json`에서 서버를 선언합니다:885LSP 서버는 특정 언어에 대한 진단과 코드 탐색 기능을 Claude에 제공합니다. [공식 코드 인텔리전스 플러그인](/docs/ko/plugins/code-intelligence)이 이미 해당 언어를 지원한다면 직접 작성하는 대신 그 플러그인을 설치하십시오. 그렇지 않으면 플러그인 루트의 `.lsp.json`에 서버를 선언합니다.

886 886 

887```json .lsp.json theme={null}887```json .lsp.json theme={null}

888{888{


896}896}

897```897```

898 898 

899파일은 각 서버 이름을 직접 구성에 매핑하며, 맵 주위에 래퍼 객체가 없습니다. `command`는 바이너리의 이름이고, 인수는 `args`에 있습니다. `extensionToLanguage`는 최소한 하나의 확장이 필요하며, 각각은 `.`로 시작합니다.899이 파일은 맵을 감싸는 래퍼 객체 없이 각 서버 이름을 해당 구성에 직접 매핑합니다. `command`는 바이너리 이름이며, 인수는 `args`에 지정합니다. `extensionToLanguage`에는 `.`으로 시작하는 확장자가 하나 이상 필요합니다.

900 900 

901`claude plugin validate`는 이 파일을 읽지 않습니다. 항목이 유효하지 않으면, 전체 파일은 로드 시 건너뛰고 `Invalid LSP server config for ".lsp.json"`이 `/plugin` **Errors** 탭에 나타납니다.901`claude plugin validate`는 이 파일을 읽지 않습니다. 항목 중 하나라도 유효하지 않으면 로드 시 파일 전체를 건너뛰며, `/plugin` **Errors** 탭에 `Invalid LSP server config for ".lsp.json"`이 표시됩니다.

902 902 

903플러그인은 연결을 구성하지만 서버 바이너리를 설치하지 않으며, 각 파일 확장자는 하나의 서버를 가집니다:903플러그인은 연결을 구성하지만 서버 바이너리를 설치하지는 않으며, 각 파일 확장자에는 하나의 서버만 할당됩니다.

904 904 

905* **누락된 바이너리**: Claude Code는 사용자의 `PATH`에서 이름으로 `command`를 시작합니다. 바이너리가 없으면, 서버는 시작하지 못하고 `claude --debug`는 `LSP server <name> failed to start`를 로깅합니다905* **바이너리 누락**: Claude Code는 사용자의 `PATH`에서 이름으로 `command`를 시작합니다. 바이너리가 없으면 서버 시작에 실패하고 `claude --debug`가 `LSP server <name> failed to start`를 로그에 기록합니다

906* **확장자 충돌**: 두 개의 활성화된 서버가 동일한 확장자를 주장하면, 처음 등록된 것이 해당 파일을 처리하고 다른 것은 이들에 대해 사용되지 않습니다, 서버가 하나의 플러그인에서 오든 두 개에서 오든. `/plugin` **Errors** 탭은 경고 `LSP server "<name>" is not used for <ext> files`를 표시합니다906* **확장자 충돌**: 활성화된 두 서버가 같은 확장자를 지정하면, 서버가 한 플러그인에서 왔든 두 플러그인에서 왔든 먼저 등록된 서버가 해당 파일을 처리하고 다른 서버는 해당 파일에 사용되지 않습니다. `/plugin` **Errors** 탭에 `LSP server "<name>" is not used for <ext> files` 경고가 표시됩니다

907 907 

908`lspServers` manifest 키는 동일한 맵을 인라인으로, JSON 파일 경로로, 또는 이들의 배열로 사용하며, 서버는 `.lsp.json`의 것에 추가됩니다. manifest 서버가 `.lsp.json`의 것과 동일한 이름을 가지면, manifest 서버가 이를 대체합니다.908`lspServers` 매니페스트 키는 같은 맵을 인라인으로, JSON 파일 경로로, 또는 이들의 배열로 받으며, 해당 서버는 `.lsp.json`의 서버에 추가됩니다. 매니페스트 서버가 `.lsp.json`의 서버와 이름이 같으면 매니페스트 서버가 이를 대체합니다.

909 909 

910`transport`, 타임아웃, 재시작, 다른 필드의 경우, [`lspServers`](/docs/ko/plugins/manifest-reference#lspservers)를 참조합니다.910`transport`, 타임아웃, 재시작 및 기타 필드는 [`lspServers`](/docs/ko/plugins/manifest-reference#lspservers)를 참조하십시오.

911 911 

912로그 출력을 stdout이 아닌 stderr로 보냅니다. Claude Code는 서버의 stdout을 프로토콜 메시지로만 읽고, 메시지 헤더는 최대 64 KiB, 메시지 본문은 최대 32 MiB를 수용합니다.912로그 출력은 stdout이 아닌 stderr로 보내십시오. Claude Code는 서버의 stdout을 프로토콜 메시지로만 읽으며, 최대 64 KiB의 메시지 헤더와 최대 32 MiB의 메시지 본문을 허용합니다.

913 913 

914Claude Code는 어느 한계를 초과하거나 stdout에 비프로토콜 출력을 작성하는 서버를 연결 해제하고, `restartOnCrash`와 `maxRestarts`에 대해 연결 해제를 충돌로 계산합니다. `--debug`로 실행하면, Claude Code는 원인을 이름 지정하는 오류를 디버그 로그에 작성합니다.914Claude Code는 두 제한 중 하나를 초과하거나 stdout에 프로토콜이 아닌 출력을 쓰는 서버의 연결을 끊고, 이 연결 해제를 `restartOnCrash` 및 `maxRestarts`에 대한 충돌로 집계합니다. `--debug`로 실행하면 Claude Code가 원인을 명시한 오류를 디버그 로그에 기록합니다.

915 915 

916<h3 id="executables">916<h3 id="executables">

917 실행 파일917 Executables

918</h3>918</h3>

919 919 

920플러그인 루트의 `bin/` 파일은 플러그인이 활성화되어 있는 동안 Bash 도구의 셸의 `PATH`에 있으므로, Claude는 이들을 베어 명령으로 실행할 수 있습니다. 실행 가능한 스크립트를 추가합니다:920플러그인 루트의 `bin/`에 있는 파일은 플러그인이 활성화된 동안 Bash 도구 셸의 `PATH`에 포함되므로, Claude가 이를 단독 명령으로 실행할 수 있습니다. 실행 가능한 스크립트를 추가합니다.

921 921 

922```bash bin/hello-plugin theme={null}922```bash bin/hello-plugin theme={null}

923#!/bin/bash923#!/bin/bash

924echo "hello from my-plugin"924echo "hello from my-plugin"

925```925```

926 926 

927`chmod +x bin/hello-plugin`으로 실행 가능하게 만들고 플러그인을 로드합니다. Claude에 `hello-plugin`을 실행하도록 요청하면, Bash 도구 결과는 스크립트의 출력을 표시합니다.927`chmod +x bin/hello-plugin`으로 실행 가능하게 만들고 플러그인을 로드합니다. Claude에게 `hello-plugin` 실행을 요청하면 Bash 도구 결과에 스크립트의 출력이 표시됩니다.

928 928 

929플러그인 `bin/` 디렉토리는 사용자의 자신의 `PATH` 항목 뒤에 오므로, 플러그인은 `git`, `ls`, 또는 다른 시스템 명령을 섀도우할 수 없습니다.929플러그인 `bin/` 디렉터리는 사용자 자체의 `PATH` 항목 뒤에 위치하므로, 플러그인이 `git`, `ls` 또는 기타 시스템 명령을 가릴 수 없습니다.

930 930 

931claude.ai와 Cowork은 최상위 `bin/` 디렉토리를 가진 플러그인을 설치하지 않습니다, [claude.ai 조직 설정을 통해 배포](https://claude.com/docs/plugins/org-sync#keep-executables-out-of-the-top-level-bin-directory)하는 것을 포함합니다.931claude.ai와 Cowork는 최상위 `bin/` 디렉터리가 있는 플러그인을 설치하지 않으며, [claude.ai 조직 설정을 통해 배포](https://claude.com/docs/plugins/org-sync#keep-executables-out-of-the-top-level-bin-directory)하는 플러그인도 마찬가지입니다.

932 932 

933<h3 id="default-settings">933<h3 id="default-settings">

934 기본 설정934 Default settings

935</h3>935</h3>

936 936 

937플러그인이 활성화되어 있는 동안 적용되는 기본값을 설정하려면, 플러그인 루트에 `settings.json`을 추가하거나, 동일한 객체를 `settings` manifest 키에 인라인으로 넣습니다. 두 개의 키가 효과를 발휘합니다, `agent`와 `subagentStatusLine`, 다른 모든 키는 삭제됩니다.937플러그인이 활성화된 동안 적용되는 기본값을 설정하려면 플러그인 루트에 `settings.json`을 추가하거나, 같은 객체를 `settings` 매니페스트 키에 인라인으로 넣습니다. 적용되는 키는 `agent`와 `subagentStatusLine` 두 가지이며, 그 외의 키는 모두 제외됩니다.

938 938 

939플러그인의 자신의 agents 중 하나를 주 스레드로 실행하도록 `agent`를 설정합니다:939플러그인 자체 에이전트 중 하나를 메인 스레드로 실행하려면 `agent`를 설정합니다.

940 940 

941```json settings.json theme={null}941```json settings.json theme={null}

942{942{


944}944}

945```945```

946 946 

947플러그인을 로드하고 세션을 시작합니다. Claude는 주 대화에서 `security-reviewer` 에이전트의 시스템 프롬프트와 모델로 응답합니다.947플러그인을 로드하고 세션을 시작합니다. 그러면 Claude가 메인 대화에서 `security-reviewer` 에이전트의 시스템 프롬프트와 모델로 응답합니다.

948 948 

949키가 제어하는 모든 것의 경우, [`agent` 설정](/docs/ko/settings-reference#agent)을 참조합니다.949이 키가 제어하는 모든 항목은 [`agent` 설정](/docs/ko/settings-reference#agent)을 참조하십시오.

950 950 

951동일한 키가 하나 이상의 위치에서 설정되면, 이 규칙들이 어느 값이 적용되는지 결정합니다:951같은 키가 여러 곳에 설정된 경우 다음 규칙에 따라 적용할 값이 결정됩니다.

952 952 

953* **파일이 manifest보다 우선**: 둘 다 존재하고 `settings.json`이 최소한 하나의 지원되는 키를 설정하면, `settings.json`이 적용되고 manifest의 `settings`는 무시됩니다953* **매니페스트보다 파일 우선**: 둘 다 존재하고 `settings.json`이 지원되는 키를 하나 이상 설정하면 `settings.json`이 적용되고 매니페스트의 `settings`는 무시됩니다

954* **사용자 설정이 플러그인 기본값보다 우선**: 설정 소스 전체에서, 플러그인 기본값은 가장 낮은 계층이므로, 사용자의 자신의 `agent`는 `~/.claude/settings.json`에서 당신의 것을 재정의합니다954* **플러그인 기본값보다 사용자 설정 우선**: 설정 소스 전체에서 플러그인 기본값이 가장 낮은 계층이므로, 사용자가 `~/.claude/settings.json`에 설정한 `agent`가 플러그인의 값을 재정의합니다

955* **두 개의 플러그인이 동일한 키를 설정**: 마지막에 로드된 플러그인의 값이 적용되고, `claude --debug`는 `overrides setting`을 로깅합니다955* **두 플러그인이 같은 키를 설정하는 경우**: 마지막으로 로드된 플러그인의 값이 적용되며, `claude --debug`가 `overrides setting`을 로그에 기록합니다

956 956 

957`subagentStatusLine` 형태의 경우, [서브에이전트 상태 라인](/docs/ko/statusline#subagent-status-lines)을 참조합니다.957`subagentStatusLine`의 형태는 [서브에이전트 상태줄](/docs/ko/statusline#subagent-status-lines)을 참조하십시오.

958 958 

959<h3 id="themes-and-output-styles">959<h3 id="themes-and-output-styles">

960 테마 및 출력 스타일960 Themes and output styles

961</h3>961</h3>

962 962 

963플러그인은 색상 테마와 출력 스타일을 포함할 수 있습니다. 둘 다 사용자의 자신의 것과 동일한 선택기에 나타납니다. 둘 중 하나의 경우, manifest 키를 설정하면 폴더 스캔을 대체합니다.963플러그인에는 색상 테마와 출력 스타일을 포함할 수 있습니다. 둘 다 사용자 자체의 항목과 같은 선택기에 표시됩니다. 두 경우 모두 매니페스트 키를 설정하면 폴더 스캔이 대체됩니다.

964 964 

965| 컴포넌트 | 다음으로 저장 | 형식 | 다음에 나타남 | Manifest 키 |965| 구성 요소 | 저장 위치 | 형식 | 표시 위치 | 매니페스트 키 |

966| :- | :- | :- | :- | :- |966| :- | :- | :- | :- | :- |

967| 테마 | `themes/<slug>.json` | 사용자가 `~/.claude/themes/`에 작성하는 [사용자 정의 테마 파일](/docs/ko/terminal-config#create-a-custom-theme) 형식 | `/theme`, 파일의 `name` 아래 | `experimental.themes` |967| 테마 | `themes/<slug>.json` | 사용자가 `~/.claude/themes/`에 작성하는 [사용자 지정 테마 파일](/docs/ko/terminal-config#create-a-custom-theme) 형식 | `/theme`, 파일의 `name`으로 표시 | `experimental.themes` |

968| 출력 스타일 | `output-styles/<name>.md` | [사용자 정의 출력 스타일](/docs/ko/output-styles#create-a-custom-output-style) 형식, `name`과 `description` frontmatter 포함 | `/output-style`, `<plugin>:<name>`으로 | `outputStyles` |968| 출력 스타일 | `output-styles/<name>.md` | `name` 및 `description` frontmatter를 포함하는 [사용자 지정 출력 스타일](/docs/ko/output-styles#create-a-custom-output-style) 형식 | `/output-style`, `<plugin>:<name>`으로 표시 | `outputStyles` |

969 969 

970플러그인 테마는 읽기 전용이므로, 사용자가 `/theme`에서 하나를 편집하면, 편집은 자신의 테마 디렉토리에 복사본으로 저장됩니다.970플러그인 테마는 읽기 전용이므로, 사용자가 `/theme`에서 편집하면 편집 내용은 사용자 자체의 테마 디렉터리에 사본으로 저장됩니다.

971 971 

972이 테마는 어두운 사전 설정에서 프롬프트 악센트와 오류 텍스트를 다시 칠합니다:972다음 테마는 dark 프리셋에서 프롬프트 강조 색상과 오류 텍스트 색상을 변경합니다.

973 973 

974```json themes/dracula.json theme={null}974```json themes/dracula.json theme={null}

975{975{


983```983```

984 984 

985<h3 id="channels">985<h3 id="channels">

986 채널986 Channels

987</h3>987</h3>

988 988 

989[채널](/docs/ko/channels)은 채팅 앱과 같은 외부 시스템이 메시지를 세션으로 보낼 수 있게 합니다. 플러그인에서, 채널은 MCP 서버 중 하나와 이를 바인딩하고 자신의 구성을 프롬프트할 수 있는 `channels` 항목입니다. 이 manifest는 채널을 `telegram` 서버에 바인딩하고 봇 토큰을 요청합니다:989[채널](/docs/ko/channels)을 사용하면 채팅 앱과 같은 외부 시스템이 세션으로 메시지를 보낼 수 있습니다. 플러그인에서 채널은 MCP 서버 중 하나와, 이에 바인딩되며 자체 구성을 요청할 수 있는 `channels` 항목으로 구성됩니다. 다음 매니페스트는 채널을 `telegram` 서버에 바인딩하고 봇 토큰을 요청합니다.

990 990 

991```json .claude-plugin/plugin.json theme={null}991```json .claude-plugin/plugin.json theme={null}

992{992{


1014}1014}

1015```1015```

1016 1016 

1017`server`는 `mcpServers`의 키와 일치해야 합니다. 채널별 `userConfig`는 [최상위 `userConfig` 키](#user-configuration)와 동일한 형태를 사용합니다.1017`server`는 `mcpServers`의 키와 일치해야 합니다. 채널별 `userConfig`는 [최상위 `userConfig` 키](#user-configuration)와 같은 형태를 가집니다.

1018 1018 

1019서버가 구현해야 하는 것과 사용자가 채널 플러그인을 활성화하는 방법의 경우, 채널 참조의 [플러그인으로 패키지](/docs/ko/channels-reference#package-as-a-plugin)를 참조합니다. 필드 테이블의 경우, [`channels`](/docs/ko/plugins/manifest-reference#channels)를 참조합니다.1019서버가 구현해야 하는 사항과 사용자가 채널 플러그인을 활성화하는 방법은 채널 레퍼런스의 [플러그인으로 패키징하기](/docs/ko/channels-reference#package-as-a-plugin)를 참조하십시오. 필드 표는 [`channels`](/docs/ko/plugins/manifest-reference#channels)를 참조하십시오.

1020 1020 

1021<h3 id="monitors">1021<h3 id="monitors">

1022 모니터1022 Monitors

1023</h3>1023</h3>

1024 1024 

1025모니터는 전체 세션 동안 백그라운드에서 실행되는 셸 명령입니다. 이것이 인쇄하는 것은 Claude에 알림으로 도달하므로, Claude는 보도록 요청받지 않고도 로그나 상태 변경에 반응할 수 있습니다. 항목을 `monitors/monitors.json`에 저장합니다:1025모니터는 세션 전체 동안 백그라운드에서 실행되는 셸 명령입니다. 모니터가 출력하는 내용은 알림으로 Claude에 전달되므로, Claude는 감시하라는 요청을 받지 않아도 로그나 상태 변경에 대응할 수 있습니다. 항목은 `monitors/monitors.json`에 저장합니다.

1026 1026 

1027```json monitors/monitors.json theme={null}1027```json monitors/monitors.json theme={null}

1028[1028[


1034]1034]

1035```1035```

1036 1036 

1037명령은 셸에서 실행되고, 세션이 시작된 작업 디렉토리에서 실행됩니다.1037명령은 세션의 현재 작업 디렉터리에서 셸로 실행됩니다. 사용자의 전체 권한으로 [샌드박스](/docs/ko/sandboxing) 외부에서 실행됩니다.

1038 1038 

1039모니터의 명령은 시작 위치와 참조할 수 있는 것에서 제한됩니다:1039모니터의 명령은 시작 위치와 참조할 수 있는 항목이 제한됩니다.

1040 1040 

1041* **대화형 세션만**: 플러그인 모니터는 대화형 세션에서 시작되고 `-p` 플래그를 사용한 비대화형 모드에서는 시작되지 않습니다. 또한 API 제공자 또는 텔레메트리 설정으로 인해 [Monitor 도구](/docs/ko/tools-reference#monitor-tool)를 사용할 수 없는 세션에서도 시작되지 않습니다1041* **대화형 세션 전용**: 플러그인 모니터는 대화형 세션에서 시작되며, `-p` 플래그를 사용하는 비대화형 모드에서는 절대 시작되지 않습니다. API 제공자 또는 텔레메트리 설정으로 인해 [Monitor 도구](/docs/ko/tools-reference#monitor-tool)를 사용할 수 없는 세션에서도 시작되지 않습니다

1042* **사용자 구성 없음**: `command`는 [경로 변수](#path-variables-and-persistent-data)와 환경의 `${ENV_VAR}`을 가져오지만, `${user_config.*}`는 절대 가져오지 않습니다. 하나을 참조하는 모니터는 시작되지 않으며, 모니터 프로세스는 `CLAUDE_PLUGIN_OPTION_<KEY>`도 받지 않습니다1042* **사용자 구성 사용 불가**: `command`는 [경로 변수](#path-variables-and-persistent-data)와 환경의 `${ENV_VAR}`를 받지만 `${user_config.*}`는 절대 받지 않습니다. 이를 참조하는 모니터는 시작되지 않으며, 모니터 프로세스는 `CLAUDE_PLUGIN_OPTION_<KEY>`도 받지 않습니다

1043* **세션 중 비활성화**: 세션 중에 플러그인을 비활성화하면, Claude Code는 이미 실행 중인 모니터를 중지하지 않습니다. 세션이 끝날 때 중지됩니다1043* **세션 중 비활성화**: 세션 도중 플러그인을 비활성화해도 Claude Code는 이미 실행 중인 모니터를 중지하지 않습니다. 모니터는 세션이 종료될 때 중지됩니다

1044 1044 

1045`experimental.monitors` manifest 키는 동일한 배열을 인라인으로 또는 JSON 파일 경로로 사용하고, `monitors/monitors.json` 대신 읽습니다.1045`experimental.monitors` 매니페스트 키는 같은 배열을 인라인으로 또는 JSON 파일 경로로 받으며, `monitors/monitors.json` 대신 읽힙니다.

1046 1046 

1047`when` 트리거 및 다른 필드의 경우, [`monitors`](/docs/ko/plugins/manifest-reference#monitors)를 참조합니다.1047`when` 트리거와 기타 필드는 [`monitors`](/docs/ko/plugins/manifest-reference#monitors)를 참조하십시오.

1048 1048 

1049<h2 id="user-configuration">1049<h2 id="user-configuration">

1050 사용자에게 구성 값을 요청합니다1050 사용자에게 구성 값을 요청합니다

Details

52* **Claude Code가 마켓플레이스에서 오지 않는 플러그인에 사용하는 이름**: [`--plugin-dir`](/docs/ko/cli-reference)로 로드된 플러그인의 경우 `inline`, 기본 제공 플러그인의 경우 `builtin`, [`.claude/skills/`](/docs/ko/skills)에서 자동 로드되는 플러그인의 경우 `skills-dir`, claude.ai 계정에서 동기화된 플러그인의 경우 `synced`. `claude-plugin-test`도 예약됩니다. `skills-dir`은 `{"source": "skills-dir"}`로도 `strictKnownMarketplaces` 및 `blockedMarketplaces`에 나타나며, [소스 값이 정책 목록에서만 유효함](#source-values-valid-only-in-policy-lists)에서 설명합니다.52* **Claude Code가 마켓플레이스에서 오지 않는 플러그인에 사용하는 이름**: [`--plugin-dir`](/docs/ko/cli-reference)로 로드된 플러그인의 경우 `inline`, 기본 제공 플러그인의 경우 `builtin`, [`.claude/skills/`](/docs/ko/skills)에서 자동 로드되는 플러그인의 경우 `skills-dir`, claude.ai 계정에서 동기화된 플러그인의 경우 `synced`. `claude-plugin-test`도 예약됩니다. `skills-dir`은 `{"source": "skills-dir"}`로도 `strictKnownMarketplaces` 및 `blockedMarketplaces`에 나타나며, [소스 값이 정책 목록에서만 유효함](#source-values-valid-only-in-policy-lists)에서 설명합니다.

53* **`npm`, `pip`, `uv`, `cargo`, `github`, `gh`**: 모든 대소문자로 예약됨. 이 확인에는 Claude Code v2.1.275 이상이 필요합니다.53* **`npm`, `pip`, `uv`, `cargo`, `github`, `gh`**: 모든 대소문자로 예약됨. 이 확인에는 Claude Code v2.1.275 이상이 필요합니다.

54* **`claudeai-`로 시작하는 이름**: claude.ai에서 호스팅되는 마켓플레이스를 위해 예약됨. `claude plugin marketplace add`는 `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`로 이를 사용하는 다른 마켓플레이스를 거부합니다.54* **`claudeai-`로 시작하는 이름**: claude.ai에서 호스팅되는 마켓플레이스를 위해 예약됨. `claude plugin marketplace add`는 `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`로 이를 사용하는 다른 마켓플레이스를 거부합니다.

55* **등록된 GitHub 마켓플레이스의 다운로드 폴더, `<owner>-<repo>`**: Claude Code는 `acme/x-tools`와 같은 `github` 소스에서 추가된 마켓플레이스를 해당 마켓플레이스 자체의 `name`과 관계없이 `acme-x-tools`라는 폴더를 통해 다운로드합니다. 해당 마켓플레이스가 `acme-x-tools` 이외의 이름으로 등록되어 있는 동안, `claude plugin marketplace add`는 `acme-x-tools`라는 이름의 다른 마켓플레이스를 다운로드한 후 거부하고 `Can't use the marketplace name "acme-x-tools"`를 보고합니다. 이 확인에는 Claude Code v2.1.290 이상이 필요합니다.

55 56 

56등록된 마켓플레이스가 공식 이름을 모방하기 때문에 로드를 중지할 때, `claude plugin list`와 `/plugin`은 `Claude Code refuses the marketplace name "<name>"`을 보고합니다. 메시지는 마켓플레이스를 제거하도록 지시합니다. 제거하면 해당 플러그인도 제거되고 저장된 데이터가 삭제됩니다. 이 명명된 거부 메시지에는 Claude Code v2.1.282 이상이 필요합니다.57등록된 마켓플레이스가 공식 이름을 모방하기 때문에 로드를 중지할 때, `claude plugin list`와 `/plugin`은 `Claude Code refuses the marketplace name "<name>"`을 보고합니다. 메시지는 마켓플레이스를 제거하도록 지시합니다. 제거하면 해당 플러그인도 제거되고 저장된 데이터가 삭제됩니다. 이 명명된 거부 메시지에는 Claude Code v2.1.282 이상이 필요합니다.

57 58 


498| `Claude Code cannot install plugin "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | 오류 | `plugins[i].name` |499| `Claude Code cannot install plugin "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | 오류 | `plugins[i].name` |

499| `Duplicate plugin name "x" found in marketplace` | 오류 | 두 항목이 `name` 공유 |500| `Duplicate plugin name "x" found in marketplace` | 오류 | 두 항목이 `name` 공유 |

500| `plugins.i.source: Invalid input` | 오류 | 항목의 `source`가 어떤 유형과도 일치하지 않음. [source의 잘못된 입력](#invalid-input-on-a-source) 참조 |501| `plugins.i.source: Invalid input` | 오류 | 항목의 `source`가 어떤 유형과도 일치하지 않음. [source의 잘못된 입력](#invalid-input-on-a-source) 참조 |

502| `plugins.i.source: Invalid string: must start with "./"` | 오류 | 앞에 `./`가 없는 상대 경로 `source`. v2.1.285 이전에는 이 실수에 대해 대신 `Invalid input`이 출력됨 |

501| `plugins[i].source: Path contains "..": <path>` | 오류 | 마켓플레이스 루트를 벗어나는 상대 `source` |503| `plugins[i].source: Path contains "..": <path>` | 오류 | 마켓플레이스 루트를 벗어나는 상대 `source` |

502| `source.source: 'unsupported' is a parse-time placeholder and cannot be authored` | 오류 | `plugins[i].source` |504| `source.source: 'unsupported' is a parse-time placeholder and cannot be authored` | 오류 | `plugins[i].source` |

503| `Plugin "x" sets headersHelper but is not "strict": false` | 오류 | `plugins[i].headersHelper`, `archive` 항목에서 |505| `Plugin "x" sets headersHelper but is not "strict": false` | 오류 | `plugins[i].headersHelper`, `archive` 항목에서 |


524 526 

525`source`의 `Invalid input`은 객체가 어떤 source 유형과도 일치하지 않음을 의미합니다. 다음 원인을 확인하십시오:527`source`의 `Invalid input`은 객체가 어떤 source 유형과도 일치하지 않음을 의미합니다. 다음 원인을 확인하십시오:

526 528 

527* `./`로 시작하지 않는 상대 경로(`"."` 또는 [metadata.pluginRoot 아래의 베어 이름](#relative-path-plugin-source) 제외)

528* `..`를 포함하는 `npm` `package`529* `..`를 포함하는 `npm` `package`

529* [플러그인 source](#plugin-sources) 중 하나가 아닌 `source` 유형530* [플러그인 source](#plugin-sources) 중 하나가 아닌 `source` 유형

530* 필수 필드가 누락되었거나 잘못된 유형의 알려진 유형(예: `repo` 없는 `github`)531* 필수 필드가 누락되었거나 잘못된 유형의 알려진 유형(예: `repo` 없는 `github`)

531 532 

533`./`로 시작하지 않는 상대 경로(`"."` 또는 [`metadata.pluginRoot` 아래의 베어 이름](#relative-path-plugin-source) 제외)는 `Invalid string: must start with "./"`로 실패합니다. v2.1.285 이전에는 위의 원인과 마찬가지로 `Invalid input`을 출력했습니다.

534 

532<h3 id="failures-that-validation-doesn’t-catch">535<h3 id="failures-that-validation-doesn’t-catch">

533 유효성 검사가 포착하지 못하는 오류536 유효성 검사가 포착하지 못하는 오류

534</h3>537</h3>

Details

25 사용자가 설치한 mod 로드 차단하기25 사용자가 설치한 mod 로드 차단하기

26</h2>26</h2>

27 27 

28사용자가 가져오는 모든 mod가 로드되지 않도록 하려면 [기본 제공 가드](#know-what-happens-by-default)에서 `allowManagedModsOnly` 옵션을 설정합니다. 기본 제공 가드는 Claude Code가 사용자가 설치하는 모든 mod보다 먼저 로드하는 정책 mod입니다. 이 옵션은 관리형 설정의 `pluginConfigs` 아래에 `cc-plugin-sec-default@builtin`을 키로 하여 지정합니다.28사용자가 가져오는 모든 mod가 훅을 실행하지 않도록 하려면 [기본 제공 가드](#know-what-happens-by-default)에서 `allowManagedModsOnly` 옵션을 설정합니다. 기본 제공 가드는 Claude Code가 사용자가 설치하는 모든 mod보다 먼저 로드하는 정책 mod입니다. 이 옵션은 관리형 설정의 `pluginConfigs` 아래에 `cc-plugin-sec-default@builtin`을 키로 하여 지정합니다.

29 29 

30```json managed-settings.json theme={null}30```json managed-settings.json theme={null}

31{31{


41 41 

42관리형 설정에 이 옵션을 지정하면 다음과 같이 동작합니다.42관리형 설정에 이 옵션을 지정하면 다음과 같이 동작합니다.

43 43 

44* **사용자가 가져온 mod는 로드되지 않습니다**: 사용자가 설치한 플러그인에 포함된 mod, `--plugin-dir`로 로드한 mod, [세션 중에 Claude가 작성한](/docs/ko/plugins/mods/create#ask-claude-for-a-mod) mod가 모두 여기에 해당합니다44* **사용자가 가져온 mod는 훅을 실행하지 않습니다**: 사용자가 설치한 플러그인에 포함된 mod, `--plugin-dir`로 로드한 mod, [세션 중에 Claude가 작성한](/docs/ko/plugins/mods/create#ask-claude-for-a-mod) mod가 모두 여기에 해당합니다

45* **조직의 mod는 계속 로드됩니다**: [조직의 mod로 간주되는](#install-your-organizations-mods) mod는 검사하지 않습니다. 그 외의 모든 mod는 사용자의 mod로 간주되어 로드되지 않습니다. 여기에는 GitHub 또는 기타 원격 마켓플레이스에서 활성화한 플러그인에 포함된 mod와 조직이 claude.ai에서 구성원을 위해 켠 mod도 포함됩니다. 조직의 mod로 간주되는 mod가 없으면 설치된 mod는 하나도 로드되지 않습니다.45* **조직의 mod는 계속 실행됩니다**: [조직의 mod로 간주되는](#install-your-organizations-mods) mod는 검사하지 않습니다. 그 외의 모든 mod는 사용자의 mod로 간주되어 거부됩니다. 여기에는 GitHub 또는 기타 원격 마켓플레이스에서 활성화한 플러그인에 포함된 mod와 조직이 claude.ai에서 구성원을 위해 켠 mod도 포함됩니다. 조직의 mod로 간주되는 mod가 없으면 설치된 mod는 하나도 훅을 실행하지 않습니다.

46* **사용자가 되돌릴 수 없습니다**: 가드는 관리형 설정에서만 이 옵션을 읽으므로 사용자, 프로젝트 또는 로컬 설정 파일이나 `--settings`로 전달한 파일에 동일한 항목을 넣어도 아무것도 바뀌지 않습니다46* **사용자가 되돌릴 수 없습니다**: 가드는 관리형 설정에서만 이 옵션을 읽으므로 사용자, 프로젝트 또는 로컬 설정 파일이나 `--settings`로 전달한 파일에 동일한 항목을 넣어도 아무것도 바뀌지 않습니다

47* **파일 또는 MDM 정책은 모든 제공자에 적용됩니다**: 이 옵션을 파일이나 MDM을 통해 배포하면 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry에서도 동일하게 동작합니다. claude.ai 관리자 콘솔을 통한 배포는 [플랫폼 가용성](/docs/ko/server-managed-settings#platform-availability)을 참조하세요47* **파일 또는 MDM 정책은 모든 제공자에 적용됩니다**: 이 옵션을 파일이나 MDM을 통해 배포하면 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry에서도 동일하게 동작합니다. claude.ai 관리자 콘솔을 통한 배포는 [플랫폼 가용성](/docs/ko/server-managed-settings#platform-availability)을 참조하세요

48* **사용자의 다른 사용자 지정 항목은 계속 작동합니다**: [설정 파일의 훅](/docs/ko/hooks), 상태줄, `/goal`은 영향을 받지 않습니다48* **사용자의 다른 사용자 지정 항목은 계속 작동합니다**: [설정 파일의 훅](/docs/ko/hooks)과 플러그인의 `hooks/hooks.json`에 있는 훅, 상태줄, `/goal`은 영향을 받지 않습니다

49* **기본 제공 mod는 계속 실행됩니다**: `AGENTS.md` 지원과 같이 Claude Code에 기본 제공되는 mod에는 각각 [별도의 스위치](/docs/ko/plugins/mods/overview#mods-built-into-claude-code)가 있습니다49* **기본 제공 mod는 계속 실행됩니다**: `AGENTS.md` 지원과 같이 Claude Code에 기본 제공되는 mod에는 각각 [별도의 스위치](/docs/ko/plugins/mods/overview#mods-built-into-claude-code)가 있습니다

50 50 

51사용자의 머신에서 이 옵션이 적용되었는지 확인하려면 해당 머신에서 `--plugin-dir`와 mod가 들어 있는 디렉터리 경로를 지정하여 Claude Code를 시작합니다(예: `claude --plugin-dir ./first-mod`). mod의 훅은 실행되지 않으며, 트랜스크립트와 디버그 로그에 mod 이름과 `allowManagedModsOnly`를 명시한 [가드 메시지](/docs/ko/plugins/mods/troubleshoot#messages-from-the-built-in-guard)가 표시됩니다. mod가 로드된다면 [정책이 적용 중인지 확인하기](/docs/ko/managed-settings#check-that-a-policy-is-in-force)와 [옵션의 적용 여부를 결정하는 규칙](#set-options-on-the-built-in-guard)을 참조하세요.51사용자의 머신에서 이 옵션이 적용되었는지 확인하려면 해당 머신에서 `--plugin-dir`와 mod가 들어 있는 디렉터리 경로를 지정하여 Claude Code를 시작합니다(예: `claude --plugin-dir ./first-mod`). mod의 훅은 실행되지 않으며, 트랜스크립트와 디버그 로그에 mod 이름과 `allowManagedModsOnly`를 명시한 [가드 메시지](/docs/ko/plugins/mods/troubleshoot#messages-from-the-built-in-guard)가 표시됩니다. 메시지가 표시되지 않는다면 [정책이 적용 중인지 확인하기](/docs/ko/managed-settings#check-that-a-policy-is-in-force)와 [옵션의 적용 여부를 결정하는 규칙](#set-options-on-the-built-in-guard)을 참조하세요.

52 52 

53얼리 액세스 기간에 `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS`를 `0`으로 설정했다면 이 옵션으로 대체하세요. Claude Code v2.1.287 이상은 이 변수를 값과 관계없이 무시하므로, `0`으로 설정해 두어도 mod는 켜진 상태로 유지됩니다.53얼리 액세스 기간에 `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS`를 `0`으로 설정했다면 이 옵션으로 대체하세요. Claude Code v2.1.287 이상은 이 변수를 값과 관계없이 무시하므로, `0`으로 설정해 두어도 mod는 켜진 상태로 유지됩니다.

54 54 


117claude plugin validate ./some-mod117claude plugin validate ./some-mod

118```118```

119 119 

120출력 중 두 줄이 mod의 코드를 설명합니다.120출력의 `hooks:` 및 `calls:` 줄이 mod의 코드를 설명합니다.

121 121 

122```text theme={null}122```text theme={null}

123 ❯ ./register.js hooks: session.start, tool.call, ui.render{component=Pane}123 ❯ ./register.js hooks: session.start, tool.call, ui.render{component=Pane}


150 150 

151| 원하는 결과 | 설정 |151| 원하는 결과 | 설정 |

152| :- | :- |152| :- | :- |

153| 설치된 mod는 허용하지 않고 훅은 그대로 유지 | [`allowManagedModsOnly`](#set-options-on-the-built-in-guard)를 설정하고 조직 자체의 mod는 배포하지 않음 |153| 설치된 mod는 실행하지 않고 설정 훅은 그대로 유지 | [`allowManagedModsOnly`](#set-options-on-the-built-in-guard)를 설정하고 조직 자체의 mod는 배포하지 않음 |

154| 설치된 mod와 훅을 모두 허용하지 않음(관리형 훅 포함) | `disableAllHooks`를 `true`로 설정 |154| 설치된 mod와 훅을 모두 허용하지 않음(관리형 훅 포함) | `disableAllHooks`를 `true`로 설정 |

155| 조직의 mod만 허용 | 가드의 [`allowManagedModsOnly` 옵션](#stop-user-installed-mods-from-loading)을 설정하고, 조직의 mod로 인정되도록 [mod를 설치](#install-your-organizations-mods) |155| 조직의 mod만 허용 | 가드의 [`allowManagedModsOnly` 옵션](#stop-user-installed-mods-from-loading)을 설정하고, 조직의 mod로 인정되도록 [mod를 설치](#install-your-organizations-mods) |

156| 승인한 마켓플레이스의 모든 mod 허용 | [마켓플레이스 제한](/docs/ko/plugins/org#restrict-what-users-can-install)을 유지하고 `disableSideloadFlags`를 `true`로 설정 |156| 승인한 마켓플레이스의 모든 mod 허용 | [마켓플레이스 제한](/docs/ko/plugins/org#restrict-what-users-can-install)을 유지하고 `disableSideloadFlags`를 `true`로 설정 |


158 158 

159각 설정의 역할은 다음과 같습니다.159각 설정의 역할은 다음과 같습니다.

160 160 

161* **`allowManagedModsOnly`**: 기본 제공 가드의 옵션입니다. 사용자가 직접 설치한 mod는 로드되지 않으며, 사용자의 설정 훅, 상태줄, `/goal`은 계속 작동합니다. 적용 범위는 [사용자가 설치한 mod의 로드 차단하기](#stop-user-installed-mods-from-loading)에 나와 있습니다.161* **`allowManagedModsOnly`**: 기본 제공 가드의 옵션입니다. Claude Code가 사용자 자체 mod를 거부하므로 해당 mod의 훅은 하나도 실행되지 않습니다. 사용자의 설정 훅, 상태줄, `/goal`은 계속 작동합니다. 적용 범위는 [사용자가 설치한 mod의 로드 차단하기](#stop-user-installed-mods-from-loading)에 나와 있습니다.

162* **`allowManagedHooksOnly`**: 더 넓은 범위의 설정입니다. [조직의 mod](#install-your-organizations-mods)와 Claude Code에 기본 제공되는 mod만 로드됩니다. 사용자가 직접 설치한 mod는 로드되지 않습니다. 이 설정은 사용자 자체 설정 파일의 훅도 차단합니다. 설정하기 전에 [`allowManagedHooksOnly`에서 실행되는 항목](/docs/ko/settings-reference#what-runs-under-allowmanagedhooksonly)을 확인하십시오.162* **`allowManagedHooksOnly`**: 더 넓은 범위의 설정입니다. [조직의 mod](#install-your-organizations-mods)와 Claude Code에 기본 제공되는 mod만 로드됩니다. 사용자가 직접 설치한 mod는 로드되지 않습니다. 이 설정은 사용자 자체 설정 파일의 훅도 차단합니다. 설정하기 전에 [`allowManagedHooksOnly`에서 실행되는 항목](/docs/ko/settings-reference#what-runs-under-allowmanagedhooksonly)을 확인하십시오.

163* **`disableAllHooks`**: 가장 넓은 범위의 설정입니다. 관리형 설정에서 사용하면 조직의 플러그인을 포함해 설치된 모든 플러그인의 mod를 중지하고 설정 파일의 모든 훅을 끄므로, 관리형 설정의 `PreToolUse` 훅도 더 이상 아무것도 차단하지 않습니다. 사용자 지정 상태줄과 `/goal`도 작동하지 않습니다. 설정하기 전에 [`disableAllHooks`](/docs/ko/settings-reference#disableallhooks)를 확인하십시오.163* **`disableAllHooks`**: 가장 넓은 범위의 설정입니다. 관리형 설정에서 사용하면 조직의 플러그인을 포함해 설치된 모든 플러그인의 mod를 중지하고 설정 파일의 모든 훅을 끄므로, 관리형 설정의 `PreToolUse` 훅도 더 이상 아무것도 차단하지 않습니다. 사용자 지정 상태줄과 `/goal`도 작동하지 않습니다. 설정하기 전에 [`disableAllHooks`](/docs/ko/settings-reference#disableallhooks)를 확인하십시오.

164* **`disableSideloadFlags`**: 시작 시 `--plugin-dir`와 `--plugin-url`을 거부하고, 세션 중에 Claude가 작성한 mod가 로드되지 않도록 합니다. 이 설정은 `--agents`와 `--mcp-config`도 거부합니다. 설정하기 전에 [`disableSideloadFlags`](/docs/ko/settings-reference#disablesideloadflags)를 확인하십시오.164* **`disableSideloadFlags`**: 시작 시 `--plugin-dir`와 `--plugin-url`을 거부하고, 세션 중에 Claude가 작성한 mod가 로드되지 않도록 합니다. 이 설정은 `--agents`와 `--mcp-config`도 거부합니다. 설정하기 전에 [`disableSideloadFlags`](/docs/ko/settings-reference#disablesideloadflags)를 확인하십시오.

165 165 

166`AGENTS.md` 지원과 같이 Claude Code에 기본 제공되는 mod는 이러한 설정의 영향을 받지 않습니다. 각 mod에는 [자체 스위치](/docs/ko/plugins/mods/overview#mods-built-into-claude-code)가 있습니다.166`AGENTS.md` 지원과 같이 Claude Code에 기본 제공되는 mod는 이러한 설정의 영향을 받지 않습니다. 각 mod에는 [자체 스위치](/docs/ko/plugins/mods/overview#mods-built-into-claude-code)가 있습니다.

167 167 

168mod가 로드되지 않은 사용자는 디버그 로그에서 그 이유를 확인할 수 있습니다. [거부 메시지](/docs/ko/plugins/mods/troubleshoot#refusal-messages)에는 `allowManagedHooksOnly`와 `disableAllHooks`에 해당하는 줄이 나와 있으며, [기본 제공 가드의 메시지](/docs/ko/plugins/mods/troubleshoot#messages-from-the-built-in-guard)에는 `allowManagedModsOnly`에 해당하는 줄이 나와 있습니다.168mod가 거부되었거나 로드되지 않은 사용자는 디버그 로그에서 그 이유를 확인할 수 있습니다. [거부 메시지](/docs/ko/plugins/mods/troubleshoot#refusal-messages)에는 `allowManagedHooksOnly`와 `disableAllHooks`에 해당하는 줄이 나와 있으며, [기본 제공 가드의 메시지](/docs/ko/plugins/mods/troubleshoot#messages-from-the-built-in-guard)에는 `allowManagedModsOnly`에 해당하는 줄이 나와 있습니다.

169 169 

170<h3 id="allow-only-your-organization’s-mods">170<h3 id="allow-only-your-organization’s-mods">

171 조직의 mod만 허용하기171 조직의 mod만 허용하기


228 228 

229| 옵션 | 미설정 | `true` |229| 옵션 | 미설정 | `true` |

230| :- | :- | :- |230| :- | :- | :- |

231| `allowManagedModsOnly` | 사용자 자체 mod가 로드됨 | [조직의 mod](#install-your-organizations-mods)와 Claude Code에 기본 제공되는 mod만 로드됩니다. 사용자가 설치했거나 `--plugin-dir`로 지정한 mod를 포함해 그 밖의 모든 mod는 Claude Code가 거부합니다. |231| `allowManagedModsOnly` | 사용자 자체 mod가 실행됨 | [조직의 mod](#install-your-organizations-mods)와 Claude Code에 기본 제공되는 mod만 훅을 실행합니다. 사용자가 설치했거나 `--plugin-dir`로 지정한 mod를 포함해 그 밖의 모든 mod는 Claude Code가 거부합니다. |

232| `allowModsToOverrideDenyRules` | 거부 규칙이 사용자 mod보다 우선함 | 도구 호출을 승인하는 사용자 mod가 `deny` 규칙이 거부한 호출을 승인할 수 있음 |232| `allowModsToOverrideDenyRules` | 거부 규칙이 사용자 mod보다 우선함 | 도구 호출을 승인하는 사용자 mod가 `deny` 규칙이 거부한 호출을 승인할 수 있음 |

233 233 

234옵션의 적용 여부는 다음 규칙에 따라 결정됩니다.234옵션의 적용 여부는 다음 규칙에 따라 결정됩니다.


285}285}

286```286```

287 287 

288Claude Code가 캐시에 복사하는 플러그인은 관리형 `enabledPlugins`가 활성화하더라도 사용자의 플러그인으로 간주됩니다. GitHub, git, URL 또는 npm 소스의 모든 플러그인이 이에 해당합니다. 해당 플러그인의 mod는 사용자 mod와 함께 실행되고, `prependPlugins`와 `appendPlugins`는 이를 건너뛰며, `allowManagedModsOnly` 또는 `allowManagedHooksOnly`에서는 로드되지 않습니다. 사용자의 디버그 로그에는 플러그인 ID와 `is enabled by managed settings, but`으로 시작하는 줄이 기록됩니다.288Claude Code가 캐시에 복사하는 플러그인은 관리형 `enabledPlugins`가 활성화하더라도 사용자의 플러그인으로 간주됩니다. GitHub, git, URL 또는 npm 소스의 모든 플러그인이 이에 해당합니다. 해당 플러그인의 mod는 사용자 mod와 함께 실행되고, `prependPlugins`와 `appendPlugins`는 이를 건너뛰며, `allowManagedModsOnly`는 이를 거부하고, `allowManagedHooksOnly`는 이를 로드하지 않습니다. 사용자의 디버그 로그에는 플러그인 ID와 `is enabled by managed settings, but`으로 시작하는 줄이 기록됩니다.

289 289 

290Claude Code는 도구 실행과 같은 작업을 수행하려 할 때마다 이벤트를 발생시키고 이를 각 mod에 차례로 전달합니다. 조직의 것으로 간주되는 mod는 어디에도 나열하지 않더라도 [사용자 mod보다 먼저 실행됩니다](/docs/ko/plugins/mods/events#the-order-mods-run-in). 실행 위치를 지정하려면 두 설정 중 하나에 해당 ID를 나열하십시오. ID는 플러그인 이름, `@`, 마켓플레이스 이름으로 구성되며, 예를 들어 `acme-guard@acme-tools`와 같습니다.290Claude Code는 도구 실행과 같은 작업을 수행하려 할 때마다 이벤트를 발생시키고 이를 각 mod에 차례로 전달합니다. 조직의 것으로 간주되는 mod는 어디에도 나열하지 않더라도 [사용자 mod보다 먼저 실행됩니다](/docs/ko/plugins/mods/events#the-order-mods-run-in). 실행 위치를 지정하려면 두 설정 중 하나에 해당 ID를 나열하십시오. ID는 플러그인 이름, `@`, 마켓플레이스 이름으로 구성되며, 예를 들어 `acme-guard@acme-tools`와 같습니다.

291 291 

Details

71 71 

72티켓에 대해 질문하면 Claude는 티켓 id와 함께 `mcp__my-mod__ticket`을 호출할 수 있습니다. 두 번째 훅은 티켓을 가져와 응답 본문을 반환하며, Claude는 이를 도구의 결과로 읽습니다. 서버가 오류 상태로 응답하면 Claude는 `Lookup failed with status`와 상태 번호를 읽습니다.72티켓에 대해 질문하면 Claude는 티켓 id와 함께 `mcp__my-mod__ticket`을 호출할 수 있습니다. 두 번째 훅은 티켓을 가져와 응답 본문을 반환하며, Claude는 이를 도구의 결과로 읽습니다. 서버가 오류 상태로 응답하면 Claude는 `Lookup failed with status`와 상태 번호를 읽습니다.

73 73 

74<Tip>

75 [MCP 도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)이 등록된 도구를 지연 로드하면, Claude는 해당 도구를 검색하기 전까지 이름만 볼 수 있고 설명은 볼 수 없습니다. Claude가 매 턴마다 이 도구를 고려해야 한다면 등록 시 [`isDeferred: false`](/docs/ko/plugins/mods/reference#tools)를 추가하여 [전체 도구를 미리 로드](/docs/ko/mcp#exempt-a-server-from-deferral)하십시오. 이 필드는 Claude Code v2.1.293 이상이 필요하며, 이전 버전에서는 무시됩니다.

76</Tip>

77 

74<h2 id="call-a-model">78<h2 id="call-a-model">

75 모델 호출하기79 모델 호출하기

76</h2>80</h2>


208 212 

209이러한 호출 각각은 그 자체로 하나의 이벤트이며, `$.`를 제외한 네임스페이스와 메서드 이름으로 명명됩니다. 예를 들어 `$.fs.read`의 이벤트는 `fs.read`입니다. [체인의 앞쪽](/docs/ko/plugins/mods/events#the-order-mods-run-in)에 있는 mod는 사용자의 호출을 관찰하거나, 재작성하거나, 거부할 수 있으며, 조직은 이 방식으로 mod가 접근할 수 있는 범위를 제한합니다.213이러한 호출 각각은 그 자체로 하나의 이벤트이며, `$.`를 제외한 네임스페이스와 메서드 이름으로 명명됩니다. 예를 들어 `$.fs.read`의 이벤트는 `fs.read`입니다. [체인의 앞쪽](/docs/ko/plugins/mods/events#the-order-mods-run-in)에 있는 mod는 사용자의 호출을 관찰하거나, 재작성하거나, 거부할 수 있으며, 조직은 이 방식으로 mod가 접근할 수 있는 범위를 제한합니다.

210 214 

215mod는 명령이 출력을 생성했거나 종료된 후에도 사용자의 `$.process.spawn` 호출을 거부할 수 있으며, 이 경우 명령이 수행한 작업은 되돌려지지 않습니다. 그러면 호출은 다음 문자열 중 하나와 거부한 mod의 사유로 끝나는 메시지와 함께 reject됩니다.

216 

217* **`$.process.spawn started, and a plugin withheld its result:`**: 거부한 mod가 명령의 출력을 끝까지 읽지 않은 상태였습니다. 명령이 아직 실행 중이면 Claude Code가 명령을 중지합니다.

218* **`$.process.spawn ran, and a plugin withheld its result:`**: 거부한 mod가 명령의 출력을 끝까지 읽은 상태였으므로 명령은 이미 종료되었습니다

219 

211<h2 id="next-steps">220<h2 id="next-steps">

212 다음 단계221 다음 단계

213</h2>222</h2>

Details

316✔ Validation passed316✔ Validation passed

317```317```

318 318 

319`hooks:` 줄에는 모듈이 훅하는 이벤트가 중괄호 안의 필터와 함께 나열됩니다. `calls:` 줄에는 모듈이 호출하는 모든 mods API 메서드가 나열됩니다. 환경 변수를 읽거나 설정하는 모듈에는 `env reads:` 및 `env writes:` 줄도 표시되고, [`$.state`](/docs/ko/plugins/mods/interface#keep-state)를 사용하는 모듈에는 `state reads:` 및 `state writes:` 줄이 표시됩니다.319`hooks:` 줄에는 모듈이 훅하는 이벤트가 중괄호 안의 필터와 함께 나열됩니다. `calls:` 줄에는 모듈이 호출하는 모든 mods API 메서드가 나열됩니다. 환경 변수를 읽거나 설정하는 모듈에는 `env reads:` 및 `env writes:` 줄도 표시되고, [`$.state`](/docs/ko/plugins/mods/interface#keep-state)를 사용하는 모듈에는 `state reads:` 및 `state writes:` 줄이 표시됩니다. 또한 작업을 거부할 수 있는 훅마다 `gating hook without .catch: tool.call`과 같은 줄이 하나씩 표시되며, 이 줄은 해당 훅에 [`.catch` 핸들러](/docs/ko/plugins/mods/events#handle-a-hook-that-fails)가 있는지 여부를 알려 줍니다.

320 320 

321처리하려던 이벤트가 첫 번째 줄에 없다면 Claude Code도 해당 훅을 호출하지 않습니다. 일반적인 원인은 이벤트 이름의 오타이며, 이 명령은 이를 `"tool.calls" is not an event`와 같은 오류로 보고합니다.321처리하려던 이벤트가 첫 번째 줄에 없다면 Claude Code도 해당 훅을 호출하지 않습니다. 일반적인 원인은 이벤트 이름의 오타이며, 이 명령은 이를 `"tool.calls" is not an event`와 같은 오류로 보고합니다.

322 322 

Details

245 245 

246`open a PR for this change` 같은 프롬프트를 보내면 트랜스크립트의 메시지는 그대로 보이며, Claude는 그 뒤에 `Current branch: feature/auth` 같은 줄도 읽습니다. 풀 리퀘스트를 언급하지 않는 프롬프트는 변경 없이 전달되며 `git`도 실행되지 않습니다.246`open a PR for this change` 같은 프롬프트를 보내면 트랜스크립트의 메시지는 그대로 보이며, Claude는 그 뒤에 `Current branch: feature/auth` 같은 줄도 읽습니다. 풀 리퀘스트를 언급하지 않는 프롬프트는 변경 없이 전달되며 `git`도 실행되지 않습니다.

247 247 

248프롬프트를 중단하려면 `next`를 호출하지 않고 `{ drop: 'the reason' }`을 반환합니다. 훅의 `next(e)` 호출이 프롬프트를 통과시킨 후에 훅이 `drop`을 반환하면 턴은 그대로 실행되며, 훅은 `a drop after its next() was answered`가 포함된 메시지와 함께 [실패합니다](#handle-a-hook-that-fails).

249 

248[다른 이벤트](/docs/ko/plugins/mods/reference#prompts-and-what-claude-reads)는 Claude가 읽는 나머지 내용을 다룹니다. 시스템 프롬프트의 각 섹션에는 `prompt.section`, 첫 번째 메시지와 함께 전송되는 컨텍스트에는 `prompt.context`, 스킬의 텍스트에는 `skill.prompt`를 사용합니다. 이러한 훅에서 나온 텍스트가 요청마다 달라지면 [프롬프트 캐시가 무효화됩니다](/docs/ko/prompt-caching).250[다른 이벤트](/docs/ko/plugins/mods/reference#prompts-and-what-claude-reads)는 Claude가 읽는 나머지 내용을 다룹니다. 시스템 프롬프트의 각 섹션에는 `prompt.section`, 첫 번째 메시지와 함께 전송되는 컨텍스트에는 `prompt.context`, 스킬의 텍스트에는 `skill.prompt`를 사용합니다. 이러한 훅에서 나온 텍스트가 요청마다 달라지면 [프롬프트 캐시가 무효화됩니다](/docs/ko/prompt-caching).

249 251 

250<h3 id="follow-a-turn">252<h3 id="follow-a-turn">


341 343 

342mod, 이벤트, 이유를 나타내는 한 줄이 기록됩니다(예: `my-mod: tool.call hook skipped: threw Error: boom`). 이 내용을 확인하는 위치는 [mod가 아무 동작도 하지 않는 이유 찾기](/docs/ko/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing)에 나와 있듯이 세션에 따라 다릅니다. 그리기 결과가 유효성 검사를 통과하지 못한 `ui.render` 훅은 [요소로 트리 만들기](/docs/ko/plugins/mods/interface#build-a-tree-from-elements)에 설명된 대로 다른 방식으로 보고됩니다.344mod, 이벤트, 이유를 나타내는 한 줄이 기록됩니다(예: `my-mod: tool.call hook skipped: threw Error: boom`). 이 내용을 확인하는 위치는 [mod가 아무 동작도 하지 않는 이유 찾기](/docs/ko/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing)에 나와 있듯이 세션에 따라 다릅니다. 그리기 결과가 유효성 검사를 통과하지 못한 `ui.render` 훅은 [요소로 트리 만들기](/docs/ko/plugins/mods/interface#build-a-tree-from-elements)에 설명된 대로 다른 방식으로 보고됩니다.

343 345 

344호출을 차단하는 훅이 실패 시 닫힌 상태(fail closed)가 되도록 하려면, 그 자리에서 대신 응답하는 `.catch` 오류 핸들러를 추가하십시오. 여기서 `guard`는 사용자의 훅 함수입니다.346호출을 차단하는 훅이 실패 시 닫힌 상태(fail closed)가 되도록 하려면, 그 자리에서 대신 응답하는 `.catch` 오류 핸들러를 추가하십시오. 여기서 `guard`는 사용자의 훅 함수이며, 핸들러는 [`next.called`](/docs/ko/plugins/mods/reference#the-hook-function)를 검사하여 `guard`가 실패했을 때 이미 `next`를 호출했는지 확인합니다.

345 347 

346```javascript theme={null}348```javascript theme={null}

347// on returns a registration, and .catch attaches a handler to that one hook349// on returns a registration, and .catch attaches a handler to that one hook

348on('tool.call', { tool: 'Bash' }, guard).catch(async ($, e, next) => {350on('tool.call', { tool: 'Bash' }, guard).catch(async ($, e, next) => {

349 // next.error.kind is 'throw' or 'timeout', which says how guard failed351 // guard had already called next, so return what came back

352 if (next.called) return next(e)

353 // next.error.kind says why the handler was asked, such as 'throw' or 'timeout'

350 return { deny: 'The command guard failed, so this command was not run: ' + next.error.kind }354 return { deny: 'The command guard failed, so this command was not run: ' + next.error.kind }

351})355})

352```356```

353 357 

354`guard`가 정상적으로 작동하는 동안에는 핸들러가 실행되지 않습니다. `guard`가 Bash 호출에서 예외를 던지거나 시간 초과되면, Claude Code는 같은 이벤트로 핸들러를 호출합니다. 핸들러가 `{ deny }`를 반환하므로 명령은 실행되지 않으며, Claude는 끝에 `throw` 또는 `timeout`이 붙은 텍스트를 읽습니다. 핸들러가 없다면 Claude Code는 `guard`를 건너뛰고 명령을 실행합니다. 핸들러에는 자체적으로 더 짧은 [시간 제한](/docs/ko/plugins/mods/reference#limits)이 적용됩니다.358`guard`가 Bash 호출에서 예외를 던지거나 시간 초과되면, Claude Code는 같은 이벤트로 핸들러를 호출합니다.

359 

360* **`guard`가 `next`를 호출하기 전에 실패한 경우**: 명령은 실행되지 않으며, Claude는 끝에 kind 값이 붙은 `deny` 텍스트를 읽습니다

361* **`guard`가 `next`를 호출한 후에 실패한 경우**: 핸들러의 `next(e)`는 명령을 다시 실행하지 않고 `guard`의 호출이 생성한 결과로 완료되며, Claude는 그 결과를 읽습니다

362 

363핸들러에는 자체적으로 더 짧은 [시간 제한](/docs/ko/plugins/mods/reference#limits)이 적용됩니다. 핸들러 자체가 예외를 던지거나 시간 초과되면, Claude Code는 핸들러가 없는 것처럼 해당 훅을 건너뜁니다. `guard`가 `next`를 호출하지 않았다면, 명령은 mod가 없을 때와 같이 그대로 진행됩니다.

364 

365같은 형태의 핸들러는 `prompt.submit` 또는 `config.set`의 가드에도 적용됩니다. `next.called`가 false이면 [이벤트 레퍼런스](/docs/ko/plugins/mods/reference#events)에 해당 이벤트에 대해 나열된 거부를 반환하십시오. `prompt.submit`에는 `{ drop: 'the reason' }`, `config.set`에는 `{ deny: 'the reason' }`을 반환합니다.

366 

367`tool.check`와 `plugin.register`에서는 `next`가 완료된 후에 반환된 거부도 유효하므로, `next.called`를 검사하지 않고 거부를 반환하십시오.

368 

369* **`tool.check`**: `{ decision: 'deny', reason: 'the reason' }`을 반환합니다

370* **`plugin.register`**: [검사가 실패하면 mod 거부하기](/docs/ko/plugins/mods/admin#refuse-mods-when-your-check-fails)에 나와 있듯이 `{ refuse: 'the reason' }`을 반환합니다

355 371 

356<h2 id="next-steps">372<h2 id="next-steps">

357 다음 단계373 다음 단계

Details

443 443 

444`--plugin-dir`로 시작한 세션에서는 `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`과 같은 트랜스크립트 줄로 이를 알려 줍니다. [디버그 로그](/docs/ko/plugins/mods/troubleshoot#read-the-debug-log)에는 같은 사유와 함께 `ui.render (Pane): a hook returned a tree that does not validate`로 기록됩니다. 세션에는 그 밖에 아무것도 표시되지 않으므로, 그린 내용이 나타나지 않는다면 해당 줄이나 로그를 확인하십시오.444`--plugin-dir`로 시작한 세션에서는 `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`과 같은 트랜스크립트 줄로 이를 알려 줍니다. [디버그 로그](/docs/ko/plugins/mods/troubleshoot#read-the-debug-log)에는 같은 사유와 함께 `ui.render (Pane): a hook returned a tree that does not validate`로 기록됩니다. 세션에는 그 밖에 아무것도 표시되지 않으므로, 그린 내용이 나타나지 않는다면 해당 줄이나 로그를 확인하십시오.

445 445 

446<h3 id="link-in-the-desktop-app">

447 Desktop 앱의 `Link`

448</h3>

449 

450Desktop 앱에서 `Link`는 `href`가 다음 요구 사항을 충족하지 않으면 일반 텍스트로 그려집니다.

451 

452* **스킴과 호스트**: `https:` URL 또는 `http://localhost:3000` 같은 `http://localhost` URL

453* **`@` 사용 불가**: 경로나 쿼리에 있는 `@`는 `%40`으로 작성합니다

454* **표기**: 호스트 뒤에 `/`가 빠진 것을 제외하면 `new URL(href).href`가 반환하는 값과 같아야 합니다. 따라서 대문자 호스트, 공백, `https:` URL의 `:443`은 허용되지 않습니다.

455 

456터미널에서는 이러한 요구 사항이 적용되지 않습니다.

457 

458<h3 id="when-a-client-fails">

459 `Client`가 실패할 때

460</h3>

461 

462터미널에서 `Client`가 실행하는 파일이 실패하면 `my-mod: Client client/spinner.js: boom` 같은 흐리게 표시된 줄이 `Client`의 자리를 대신하며, 그린 내용의 나머지 부분은 그대로 표시됩니다.

463 

464mod가 [`ui.fault`](/docs/ko/plugins/mods/reference#interface)를 처리하면 Claude Code는 이후 [해당 영역을 다시 그립니다](#when-claude-code-redraws-without-being-asked).

465 

446<h3 id="draw-a-grid-of-colored-cells">466<h3 id="draw-a-grid-of-colored-cells">

447 색상 셀 그리드 그리기467 색상 셀 그리드 그리기

448</h3>468</h3>


806코드에는 다음 규칙이 적용됩니다.826코드에는 다음 규칙이 적용됩니다.

807 827 

808* **`plugin`과 `key`를 문자열 리터럴로 작성합니다**: `claude plugin validate`가 소스에서 이 값을 읽습니다828* **`plugin`과 `key`를 문자열 리터럴로 작성합니다**: `claude plugin validate`가 소스에서 이 값을 읽습니다

829* **각 `atom` 호출 결과를 `const`에 보관합니다**: `count`를 `let`으로 선언하면 `takes a source the scan can read`와 함께 검증이 실패합니다

809* **모든 값을 타입 선언 파일에 선언합니다**: 그렇지 않으면 `hello-tabs.count is not declared`와 함께 검증이 실패합니다830* **모든 값을 타입 선언 파일에 선언합니다**: 그렇지 않으면 `hello-tabs.count is not declared`와 함께 검증이 실패합니다

810* **콜백이나 다른 이벤트의 훅에서 씁니다**: `ui.render` 훅은 상태를 읽을 수는 있지만 쓸 수는 없으므로, `onPress`, `onSubmit` 또는 다른 이벤트의 훅에서 씁니다831* **콜백이나 다른 이벤트의 훅에서 씁니다**: `ui.render` 훅은 상태를 읽을 수는 있지만 쓸 수는 없으므로, `onPress`, `onSubmit` 또는 다른 이벤트의 훅에서 씁니다

811 832 

Details

113mod는 기본적으로 켜져 있습니다. 터미널에서는 Claude Code v2.1.287 이상을 사용하십시오. Desktop 앱에는 자체 Claude Code가 포함되어 있으며, 여기서는 v2.1.286부터 mod가 작동합니다. mod를 사용하는 환경에서 버전을 확인하십시오.113mod는 기본적으로 켜져 있습니다. 터미널에서는 Claude Code v2.1.287 이상을 사용하십시오. Desktop 앱에는 자체 Claude Code가 포함되어 있으며, 여기서는 v2.1.286부터 mod가 작동합니다. mod를 사용하는 환경에서 버전을 확인하십시오.

114 114 

115* **터미널**: 셸에서 `claude --version`을 실행합니다. 이보다 오래된 버전이라면 [Claude Code를 업데이트](/docs/ko/setup#update-claude-code)하십시오.115* **터미널**: 셸에서 `claude --version`을 실행합니다. 이보다 오래된 버전이라면 [Claude Code를 업데이트](/docs/ko/setup#update-claude-code)하십시오.

116* **Desktop 앱**: Code 탭의 로컬 세션에서 `/status`를 입력하고 **Claude Code** 행을 확인합니다. 이 행에는 `2.1.286`과 같은 버전이 표시됩니다. 이보다 오래된 버전이라면 Desktop 앱을 업데이트하십시오.116* **Desktop 앱**: Code 탭의 로컬 세션에서 `/status`를 입력하고 **Claude Code** 행을 확인합니다. 이 행에는 `2.1.286`과 같은 버전이 표시됩니다. 이보다 오래된 버전이라면 [Desktop 앱을 업데이트](/docs/ko/desktop#claude-code-version-in-the-code-tab)하십시오.

117 117 

118mod를 끄려면 몇 개의 mod를 중지할지, 그리고 얼마 동안 중지할지 선택합니다. 다시 켜려면 같은 변경을 되돌리면 됩니다.118mod를 끄려면 몇 개의 mod를 중지할지, 그리고 얼마 동안 중지할지 선택합니다. 다시 켜려면 같은 변경을 되돌리면 됩니다.

119 119 

Details

43| `next.origin` | 이벤트를 발생시킨 주체의 `{ plugin, tier }`입니다. Claude Code 자체는 `{ plugin: 'engine', tier: 'core' }`입니다. mod의 `tier`는 [mod 실행 순서](/docs/ko/plugins/mods/events#the-order-mods-run-in)에서의 우선순위 그룹으로, `prepend`, `user`, `append`, `builtin` 중 하나입니다. |43| `next.origin` | 이벤트를 발생시킨 주체의 `{ plugin, tier }`입니다. Claude Code 자체는 `{ plugin: 'engine', tier: 'core' }`입니다. mod의 `tier`는 [mod 실행 순서](/docs/ko/plugins/mods/events#the-order-mods-run-in)에서의 우선순위 그룹으로, `prepend`, `user`, `append`, `builtin` 중 하나입니다. |

44| `next.budget` | 밀리초 단위의 훅 시간 제한입니다. `next.budget.ms`는 전체 제한이고, `next.budget.remainingMs`는 현재 남은 시간입니다 |44| `next.budget` | 밀리초 단위의 훅 시간 제한입니다. `next.budget.ms`는 전체 제한이고, `next.budget.remainingMs`는 현재 남은 시간입니다 |

45| `next.to(e, tier)` | 이후의 tier인 `append`, `builtin`, `core` 중 하나로 건너뜁니다. `next.to(e, 'append')`는 사용자가 설치한 mod를 건너뜁니다. `prependPlugins` 또는 `appendPlugins`에 있는 mod만 이를 호출할 수 있습니다. |45| `next.to(e, tier)` | 이후의 tier인 `append`, `builtin`, `core` 중 하나로 건너뜁니다. `next.to(e, 'append')`는 사용자가 설치한 mod를 건너뜁니다. `prependPlugins` 또는 `appendPlugins`에 있는 mod만 이를 호출할 수 있습니다. |

46| `next.error`, `next.called` | `.catch` 핸들러에서만 사용할 수 있습니다. `next.error.kind`는 `throw` 또는 `timeout`이고, `next.error.message`는 오류의 텍스트이며, `next.called`는 실패한 훅이 `next`를 호출한 경우 `true`입니다. |46| `next.error` | `.catch` 핸들러에서만 사용할 수 있습니다. 훅이 실패한 경우 `kind`는 `throw` 또는 `timeout`이고, `message`는 오류의 텍스트입니다. 이벤트가 훅 자신의 mods API 호출 내부에서 발생하여 훅을 건너뛴 경우 `kind`는 `re-entry`이며, 다른 mod가 mods API에 추가한 메서드가 해당 이벤트를 발생시킨 경우 `cause`는 `lent`입니다. `re-entry`와 `cause`는 Claude Code v2.1.292 이상이 필요합니다. |

47| `next.called` | `.catch` 핸들러에서만 사용할 수 있습니다. 훅이 `next`를 호출한 경우 `true`입니다. |

47 48 

48<h2 id="events">49<h2 id="events">

49 이벤트50 이벤트


258| [`Box`](/docs/ko/plugins/mods/interface#build-a-tree-from-elements) | `key`, flex 레이아웃, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ |259| [`Box`](/docs/ko/plugins/mods/interface#build-a-tree-from-elements) | `key`, flex 레이아웃, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ |

259| [`Text`](/docs/ko/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |260| [`Text`](/docs/ko/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |

260| [`Button`](/docs/ko/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |261| [`Button`](/docs/ko/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |

261| `Link` | `href`, `label` | ✓ | ✓ |262| [`Link`](/docs/ko/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. [제한 사항](#limits)을 참조하십시오. | ✓ | ✓ |

262| `Code` | 코드 | ✓ | ✓ |263| [`Code`](/docs/ko/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ |

263| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ |264| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ |

264| [`Input`](/docs/ko/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ |265| [`Input`](/docs/ko/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ |

265| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ |266| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ |

266| `Svg` | SVG 문서, 최대 131,072자 | | ✓ |267| `Svg` | SVG 문서, 최대 131,072자 | | ✓ |

267| [`Client`](/docs/ko/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ |268| [`Client`](/docs/ko/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ |

268| [`Raster`](/docs/ko/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, 최대 512의 `columns`, 최대 256의 `rows`, `cells`. [색상 셀 그리드 그리기](/docs/ko/plugins/mods/interface#draw-a-grid-of-colored-cells)를 참조하십시오. | ✓ | |269| [`Raster`](/docs/ko/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, 최대 512의 `columns`, 최대 256의 `rows`, `cells`. [색상 셀 그리드 그리기](/docs/ko/plugins/mods/interface#draw-a-grid-of-colored-cells)를 참조하십시오. | ✓ | |

269| `Image` | 최대 2 MiB의 PNG 또는 RGBA 바이트, 또는 파일 경로 | ✓ | |270| `Image` | 최대 2 MiB의 PNG 또는 RGBA 바이트 또는 파일 경로, 각각 최대 255의 `columns` 및 `rows`, `alt` 텍스트. | ✓ | |

270 271 

271`Button`에 대한 추가 규칙: `action`은 Claude Code 자체의 [키보드 단축키 액션](/docs/ko/keybindings) 중 하나를 지정하며, 해당 액션에 대한 사용자의 바인딩이 코드(chord) 또는 수정자 키 조합인 경우 그 바인딩으로 버튼이 눌립니다. 밴드에 있는 버튼의 숫자 `hotkey`는 사용자가 빈 프롬프트에 해당 숫자만 입력하고 잠시 멈출 때도 실행됩니다. 하나의 그리기에서 두 버튼이 동일한 `hotkey`를 지정하면 나중의 버튼이 이를 가져갑니다. `autoFocus`는 모든 컨트롤에서 `true`만 허용하므로, 이를 끄려면 해당 prop을 생략하십시오.272`Button`에 대한 추가 규칙: `action`은 Claude Code 자체의 [키보드 단축키 액션](/docs/ko/keybindings) 중 하나를 지정하며, 해당 액션에 대한 사용자의 바인딩이 코드(chord) 또는 수정자 키 조합인 경우 그 바인딩으로 버튼이 눌립니다. 밴드에 있는 버튼의 숫자 `hotkey`는 사용자가 빈 프롬프트에 해당 숫자만 입력하고 잠시 멈출 때도 실행됩니다. 하나의 그리기에서 두 버튼이 동일한 `hotkey`를 지정하면 나중의 버튼이 이를 가져갑니다. `autoFocus`는 모든 컨트롤에서 `true`만 허용하므로, 이를 끄려면 해당 prop을 생략하십시오.

272 273 


295 제한296 제한

296</h2>297</h2>

297 298 

298훅 및 mod API 호출은 시간 및 크기 제한 내에서 실행됩니다. Claude Code는 시간 제한을 초과한 훅을 건너뛰고, 크기 제한을 초과한 호출은 거부합니다.299훅 및 mod API 호출은 시간 및 크기 제한 내에서 실행됩니다. Claude Code는 시간 제한을 초과한 훅을 건너뜁니다.

299 300 

300| 제한 | 값 |301| 제한 | 값 |

301| :- | :- |302| :- | :- |


306| `$.model.complete` `maxTokens` | 기본값 1024, 최대 64,000 또는 모델의 출력 제한 |307| `$.model.complete` `maxTokens` | 기본값 1024, 최대 64,000 또는 모델의 출력 제한 |

307| `$.fs.read` 및 `$.fs.write` | 파일 하나당 4 MiB |308| `$.fs.read` 및 `$.fs.write` | 파일 하나당 4 MiB |

308| 하나의 트리에 포함된 텍스트 | 처음 100,000자까지 그려집니다 |309| 하나의 트리에 포함된 텍스트 | 처음 100,000자까지 그려집니다 |

310| `Code`의 `language` 또는 `path`, `Select` 옵션의 `value`, `Client`의 `module` | 10,000자. 이보다 길면 Claude Code가 [해당 위치를 자체 버전으로 그립니다](/docs/ko/plugins/mods/interface#build-a-tree-from-elements). |

311| `Link`의 `href` | 2,048자. 이보다 긴 `href`가 있으면 트리 전체가 그려지지 않습니다. |

309| `$.store` | JSON 총 4 MiB |312| `$.store` | JSON 총 4 MiB |

310| `$.session.messages()` | 최신 4,096개 항목 |313| `$.session.messages()` | 최신 4,096개 항목 |

311| `$.ui.invalidate('ui.render')` 다시 그리기 | 초당 10회로 제한되며, 터미널에서는 표시 중인 창, 확장된 밴드, 프롬프트 아래의 힌트 줄에 대해 초당 30회로 제한됩니다. 그보다 빨리 들어오는 호출은 하나로 병합됩니다. |314| `$.ui.invalidate('ui.render')` 다시 그리기 | 초당 10회로 제한되며, 터미널에서는 표시 중인 창, 확장된 밴드, 프롬프트 아래의 힌트 줄에 대해 초당 30회로 제한됩니다. 그보다 빨리 들어오는 호출은 하나로 병합됩니다. |


325| `CLAUDE_CODE_PLUGIN_DIRS` | 환경, 또는 `~/.claude/settings.json`의 `env` | 플래그를 전달할 수 없는 앱을 위해 `--plugin-dir`와 같은 방식으로 로드할 플러그인 디렉터리입니다. 절대 경로를 `:`로 구분하며, Windows에서는 `;`로 구분합니다. |328| `CLAUDE_CODE_PLUGIN_DIRS` | 환경, 또는 `~/.claude/settings.json`의 `env` | 플래그를 전달할 수 없는 앱을 위해 `--plugin-dir`와 같은 방식으로 로드할 플러그인 디렉터리입니다. 절대 경로를 `:`로 구분하며, Windows에서는 `;`로 구분합니다. |

326| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | 환경 | `1`로 설정하면 장시간 실행되는 비대화형 세션이 저장 시 `--plugin-dir` mod를 다시 로드합니다 |329| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | 환경 | `1`로 설정하면 장시간 실행되는 비대화형 세션이 저장 시 `--plugin-dir` mod를 다시 로드합니다 |

327| `prependPlugins`, `appendPlugins` | 관리형 설정. 관리형 설정이 없는 머신에서 Team 또는 Enterprise 플랜으로 로그인하지 않은 사용자의 경우에만 사용자 설정. | `acme-guard@acme-tools`와 같은 플러그인 ID 목록입니다. `prependPlugins`의 mod는 사용자가 설치한 모든 mod보다 먼저 실행되고, `appendPlugins`의 mod는 그 후에 나열된 순서대로 실행됩니다. [mod 실행 순서](/docs/ko/plugins/mods/events#the-order-mods-run-in)를 참조하세요. |330| `prependPlugins`, `appendPlugins` | 관리형 설정. 관리형 설정이 없는 머신에서 Team 또는 Enterprise 플랜으로 로그인하지 않은 사용자의 경우에만 사용자 설정. | `acme-guard@acme-tools`와 같은 플러그인 ID 목록입니다. `prependPlugins`의 mod는 사용자가 설치한 모든 mod보다 먼저 실행되고, `appendPlugins`의 mod는 그 후에 나열된 순서대로 실행됩니다. [mod 실행 순서](/docs/ko/plugins/mods/events#the-order-mods-run-in)를 참조하세요. |

328| `allowManagedModsOnly` | 관리형 설정, [기본 제공 가드의 옵션](/docs/ko/plugins/mods/admin#set-options-on-the-built-in-guard)으로 설정 | [조직의 mod로 간주되는](/docs/ko/plugins/mods/admin#install-your-organizations-mods) mod와 Claude Code에 기본 제공되는 mod만 로드됩니다. 사용자의 설정 훅은 계속 실행됩니다. |331| `allowManagedModsOnly` | 관리형 설정, [기본 제공 가드의 옵션](/docs/ko/plugins/mods/admin#set-options-on-the-built-in-guard)으로 설정 | [조직의 mod로 간주되는](/docs/ko/plugins/mods/admin#install-your-organizations-mods) mod와 Claude Code에 기본 제공되는 mod만 훅을 실행합니다. 사용자의 설정 훅은 계속 실행됩니다. |

329| `allowModsToOverrideDenyRules` | 관리형 설정, [기본 제공 가드의 옵션](/docs/ko/plugins/mods/admin#set-options-on-the-built-in-guard)으로 설정 | 사용자가 설치한 mod가 `deny` 규칙이 거부하는 도구 호출을 승인할 수 있도록 합니다 |332| `allowModsToOverrideDenyRules` | 관리형 설정, [기본 제공 가드의 옵션](/docs/ko/plugins/mods/admin#set-options-on-the-built-in-guard)으로 설정 | 사용자가 설치한 mod가 `deny` 규칙이 거부하는 도구 호출을 승인할 수 있도록 합니다 |

330| `allowManagedHooksOnly` | 관리형 설정 | 조직의 것이 아닌 훅과 설치된 mod를 차단합니다. [계속 실행되는 항목](/docs/ko/settings-reference#what-runs-under-allowmanagedhooksonly)을 참조하세요. |333| `allowManagedHooksOnly` | 관리형 설정 | 조직의 것이 아닌 훅과 설치된 mod를 차단합니다. [계속 실행되는 항목](/docs/ko/settings-reference#what-runs-under-allowmanagedhooksonly)을 참조하세요. |

331| `disableAllHooks` | 모든 설정 파일 | 관리형 설정에서는 설치된 플러그인의 mod나 훅이 하나도 실행되지 않습니다. 사용자 본인의 설정에서는 조직이 관리하는 항목이 계속 실행됩니다. [`disableAllHooks`](/docs/ko/settings-reference#disableallhooks)를 참조하세요. |334| `disableAllHooks` | 모든 설정 파일 | 관리형 설정에서는 설치된 플러그인의 mod나 훅이 하나도 실행되지 않습니다. 사용자 본인의 설정에서는 조직이 관리하는 항목이 계속 실행됩니다. [`disableAllHooks`](/docs/ko/settings-reference#disableallhooks)를 참조하세요. |

Details

107 107 

108mods API 호출에 대한 스텁은 `value` 필드가 있는 객체를 반환하며, 이 필드에는 mod에서 해당 호출이 resolve될 값이 들어갑니다. 예를 들어 `{ value: 7 }`은 `$.store.get`이 `7`로 resolve되게 합니다. [`turn.step`](/docs/ko/plugins/mods/reference#turns)이나 `tool.call` 같은 Claude Code 이벤트에 대한 스텁은 `{ result: 'ok' }`처럼 해당 이벤트 자체의 결과를 반환합니다. 표에서 보듯이 `$.session.send`와 `$.prompt.fill`도 해당 이벤트의 결과를 받습니다. 자주 쓰이는 각 이름이 어떤 형식을 따르는지는 [스텁이 반환하는 값 찾아보기](#look-up-what-a-stub-returns)에서 확인할 수 있습니다. 다음 오류는 스텁이 잘못되었거나 누락되었다는 뜻입니다. 실패한 테스트의 출력에는 `the engine reported:`로 시작하는 블록이 포함되며, 각 오류가 그 안에 표시됩니다.108mods API 호출에 대한 스텁은 `value` 필드가 있는 객체를 반환하며, 이 필드에는 mod에서 해당 호출이 resolve될 값이 들어갑니다. 예를 들어 `{ value: 7 }`은 `$.store.get`이 `7`로 resolve되게 합니다. [`turn.step`](/docs/ko/plugins/mods/reference#turns)이나 `tool.call` 같은 Claude Code 이벤트에 대한 스텁은 `{ result: 'ok' }`처럼 해당 이벤트 자체의 결과를 반환합니다. 표에서 보듯이 `$.session.send`와 `$.prompt.fill`도 해당 이벤트의 결과를 받습니다. 자주 쓰이는 각 이름이 어떤 형식을 따르는지는 [스텁이 반환하는 값 찾아보기](#look-up-what-a-stub-returns)에서 확인할 수 있습니다. 다음 오류는 스텁이 잘못되었거나 누락되었다는 뜻입니다. 실패한 테스트의 출력에는 `the engine reported:`로 시작하는 블록이 포함되며, 각 오류가 그 안에 표시됩니다.

109 109 

110* `returned neither { value } nor { deny }`: mods API 호출에 대한 스텁이 값을 그대로 반환했습니다110* `returned neither { value } nor { deny }`: mods API 호출에 대한 스텁이 값을 그대로 반환했으며, 이 경우 테스트가 실패합니다

111* `no implementation for` 뒤에 이름이 오는 경우: mod가 해당 호출을 했지만 응답하는 스텁이 없습니다111* `no implementation for` 뒤에 이름이 오는 경우: mod가 해당 호출을 했지만 응답하는 스텁이 없습니다

112 112 

113키트는 네임스페이스 전체에 대신 응답하는 인메모리 mock도 내보냅니다. `mock.clock(on)`은 [`$.clock`](/docs/ko/plugins/mods/api#run-work-in-the-background)에 응답하고, `mock.store(on, { count: 7 })`는 지정한 항목으로 시작하는 저장소에서 `$.store`에 응답하며, `mock.env(on, { CI: 'true' })`는 지정한 변수에서 `$.env.get`에 응답합니다. `mock.clock`은 테스트가 시간을 앞당길 수 있는 mock 시계를 반환하므로, 타이머 테스트가 기다릴 필요가 없습니다. `mock.store`는 아무것도 반환하지 않으므로, mod가 무엇을 저장했는지 확인하려면 [그리기 테스트](#test-a-drawing)처럼 두 개의 `store` 스텁을 직접 작성해야 합니다.113키트는 네임스페이스 전체에 대신 응답하는 인메모리 mock도 내보냅니다. `mock.clock(on)`은 [`$.clock`](/docs/ko/plugins/mods/api#run-work-in-the-background)에 응답하고, `mock.store(on, { count: 7 })`는 지정한 항목으로 시작하는 저장소에서 `$.store`에 응답하며, `mock.env(on, { CI: 'true' })`는 지정한 변수에서 `$.env.get`에 응답합니다. `mock.clock`은 테스트가 시간을 앞당길 수 있는 mock 시계를 반환하므로, 타이머 테스트가 기다릴 필요가 없습니다. `mock.store`는 아무것도 반환하지 않으므로, mod가 무엇을 저장했는지 확인하려면 [그리기 테스트](#test-a-drawing)처럼 두 개의 `store` 스텁을 직접 작성해야 합니다.


198 198 

199`expect`에는 `toBe`, `toEqual`, `toMatch`, `toMatchObject`, `toContain`, `toBeDefined`, `toBeUndefined`, `toThrow` 어설션이 있으며, 이들 앞에 `.not`을 붙일 수 있습니다.199`expect`에는 `toBe`, `toEqual`, `toMatch`, `toMatchObject`, `toContain`, `toBeDefined`, `toBeUndefined`, `toThrow` 어설션이 있으며, 이들 앞에 `.not`을 붙일 수 있습니다.

200 200 

201비동기 제너레이터가 아닌 일반 함수로 `on`에 전달한 스텁이나 훅 안에서 `expect`가 실패하면 테스트가 실패합니다. 엔진은 해당 훅을 건너뛰며, 실패 출력에는 `in the test's store.set hook`처럼 그 훅의 이름이 표시됩니다.

202 

201<h2 id="test-a-timer">203<h2 id="test-a-timer">

202 타이머 테스트하기204 타이머 테스트하기

203</h2>205</h2>

Details

30| :- | :- |30| :- | :- |

31| `no hooks module to load` | mod를 로드할 수 있습니다. 이 명령이 현재 디렉터리에서 테스트할 mod를 찾지 못했습니다. |31| `no hooks module to load` | mod를 로드할 수 있습니다. 이 명령이 현재 디렉터리에서 테스트할 mod를 찾지 못했습니다. |

32| `hooks modules are turned off here` | 설정이 mod를 차단하고 있습니다. 사용자 설정의 `disableAllHooks` 또는 조직의 정책이 원인입니다 |32| `hooks modules are turned off here` | 설정이 mod를 차단하고 있습니다. 사용자 설정의 `disableAllHooks` 또는 조직의 정책이 원인입니다 |

33| `hooks modules are turned off in this process` | Anthropic이 설치된 mod를 원격으로 껐습니다. 사용자 컴퓨터의 어떤 설정으로도 다시 켤 수 없습니다. |33| `hooks modules are turned off in this process: the rollout switch served off` | Anthropic이 설치된 mod를 원격으로 껐습니다. |

34| `hooks modules are turned off in this process: the rollout switch was saved off by an earlier session` | 이 명령이 이전 세션에서 저장한 값을 사용했으며, 이 값은 최신 상태가 아닐 수 있습니다. `claude`를 한 번 시작하여 값을 새로 고친 다음 명령을 다시 실행합니다. |

34 35 

35조직은 `allowManagedModsOnly`를 설정하여 조직 자체의 mod만 허용할 수도 있으며, 이 명령은 이를 보고하지 않습니다. 이 경우 사용자가 설치한 mod는 로드되지 않으며, [그 이유를 알려 주는 메시지](/docs/ko/plugins/mods/troubleshoot#messages-from-the-built-in-guard)가 표시됩니다.36조직은 `allowManagedModsOnly`를 설정하여 조직 자체의 mod만 허용할 수도 있으며, 이 명령은 이를 보고하지 않습니다. 이 경우 Claude Code는 사용자가 설치한 mod를 거부하며, [그 이유를 알려 주는 메시지](/docs/ko/plugins/mods/troubleshoot#messages-from-the-built-in-guard)가 표시됩니다.

36 37 

37<h2 id="the-mod-doesn’t-load">38<h2 id="the-mod-doesn’t-load">

38 mod가 로드되지 않음39 mod가 로드되지 않음


72 73 

73| 메시지 시작 부분 | 의미 |74| 메시지 시작 부분 | 의미 |

74| :- | :- |75| :- | :- |

75| `hooks modules are turned off for installed plugins in this process` | Anthropic이 설치된 mod를 원격으로 껐습니다. 사용자 컴퓨터의 어떤 설정으로도 다시 켤 수 없습니다. |76| `hooks modules are turned off for installed plugins in this process: the rollout switch served off` | Anthropic이 설치된 mod를 원격으로 껐습니다. |

77| `hooks modules are turned off for installed plugins in this process: the rollout switch was saved off by an earlier session` | 세션이 이전 세션에서 저장한 값을 사용했으며, 이 값은 오래된 것일 수 있습니다. 값을 새로 고치려면 Claude Code를 다시 시작합니다. |

76| `disableAllHooks in managed settings` | 조직에서 설치된 플러그인의 훅을 껐습니다 |78| `disableAllHooks in managed settings` | 조직에서 설치된 플러그인의 훅을 껐습니다 |

77| `only managed plugins and built-in plugins run` | `allowManagedHooksOnly`가 설정되어 있거나, 관리형 설정이 아닌 설정 파일에 `disableAllHooks`가 설정되어 있습니다 |79| `only managed plugins and built-in plugins run` | `allowManagedHooksOnly`가 설정되어 있거나, 관리형 설정이 아닌 설정 파일에 `disableAllHooks`가 설정되어 있습니다 |

78| `installed plugins that are not managed load no hooks module in this mode (--bare)` | Claude Code를 `--bare`로 시작했습니다 |80| `installed plugins that are not managed load no hooks module in this mode (--bare)` | Claude Code를 `--bare`로 시작했습니다 |


86 88 

87| 메시지 포함 내용 | 의미 | 표시 위치 |89| 메시지 포함 내용 | 의미 | 표시 위치 |

88| :- | :- | :- |90| :- | :- | :- |

89| `mods are limited to your organization's by policy (allowManagedModsOnly)` | 조직에서 [조직 자체의 mod](/docs/ko/plugins/mods/admin#install-your-organizations-mods)만 허용하므로 사용자의 mod가 로드되지 않았습니다 | 디버그 로그, 그리고 [플러그인 디렉터리를 핫 리로드하는 세션](#find-out-why-a-mod-does-nothing)의 트랜스크립트 |91| `mods are limited to your organization's by policy (allowManagedModsOnly)` | 조직에서 [조직 자체의 mod](/docs/ko/plugins/mods/admin#install-your-organizations-mods)만 허용하므로 사용자의 mod가 거부되었습니다 | 디버그 로그, 그리고 [플러그인 디렉터리를 핫 리로드하는 세션](#find-out-why-a-mod-does-nothing)의 트랜스크립트 |

90| `tried to lift a deny rule in your settings` | mod의 [`tool.check`](/docs/ko/plugins/mods/reference#tools) 훅이 `deny` 규칙에서 거부하는 호출을 승인했습니다. 해당 호출은 계속 거부됩니다. | 트랜스크립트와 디버그 로그, 세션에서 mod마다 한 번씩. `claude -p` 실행에서는 디버그 로그에만 표시됩니다. |92| `tried to lift a deny rule in your settings` | mod의 [`tool.check`](/docs/ko/plugins/mods/reference#tools) 훅이 `deny` 규칙에서 거부하는 호출을 승인했습니다. 해당 호출은 계속 거부됩니다. | 트랜스크립트와 디버그 로그, 세션에서 mod마다 한 번씩. `claude -p` 실행에서는 디버그 로그에만 표시됩니다. |

91| `the deny rules in your settings could not be checked for this call, so it is refused` | mod가 승인한 호출을 확인하는 중에 가드가 실패하여 해당 호출을 거부했습니다 | 거부된 호출에 대해 Claude가 읽는 이유 |93| `the deny rules in your settings could not be checked for this call, so it is refused` | mod가 승인한 호출을 확인하는 중에 가드가 실패하여 해당 호출을 거부했습니다 | 거부된 호출에 대해 Claude가 읽는 이유 |

92 94 


163 165 

164훅을 수정하십시오.166훅을 수정하십시오.

165 167 

168<h3 id="its-session-start-ran-again-in-a-fresh-copy">

169 `its session.start ran again in a fresh copy`

170</h3>

171 

172이 줄은 mod의 이름으로 시작하며 `$.prompt.submit`, `$.command.run` 또는 `$.agent.spawn` 호출을 지정합니다. 예를 들면 `first-mod: its session.start ran again in a fresh copy; the $.prompt.submit call it had already made was not made again`과 같습니다. Claude Code가 mod의 모듈을 다시 로드했고(예: 훅 워커가 충돌하여 교체된 후), 새 사본의 [`session.start`](/docs/ko/plugins/mods/reference#session) 훅이 실행된 것입니다. 이 줄이 지정하는 호출은 다시 실행되는 대신 첫 번째 실행의 결과로 확정되었으므로, mod가 프롬프트를 제출하거나, 명령을 실행하거나, 서브에이전트를 시작하는 작업을 두 번 수행하지 않습니다. 훅의 나머지 부분은 평소와 같이 실행되었습니다.

173 

174수정할 사항은 없습니다.

175 

176v2.1.292 이전에는 해당 호출이 두 번째로 실행되었기 때문에 프롬프트가 두 번 제출되거나, 명령이 두 번 실행되거나, 서브에이전트가 두 번 시작되었습니다.

177 

166<h3 id="mods-that-run-in-the-hooks-worker-are-off-for-this-session">178<h3 id="mods-that-run-in-the-hooks-worker-are-off-for-this-session">

167 `mods that run in the hooks worker are off for this session`179 `mods that run in the hooks worker are off for this session`

168</h3>180</h3>


207 219 

208해당 줄에 표시된 이유를 확인합니다. 흔한 원인은 해당 요소가 받지 않는 prop을 사용했거나 앱에 없는 요소를 사용한 경우입니다.220해당 줄에 표시된 이유를 확인합니다. 흔한 원인은 해당 요소가 받지 않는 prop을 사용했거나 앱에 없는 요소를 사용한 경우입니다.

209 221 

222<h3 id="a-ui-render-line-says-threw-while-drawn">

223 `ui.render` 줄에 `threw while drawn`이 표시됨

224</h3>

225 

226해당 줄은 [렌더링 지점](/docs/ko/plugins/mods/reference#render-sites)을 명시한 다음 `threw while drawn:`과 오류를 표시합니다. 예를 들면 `first-mod: ui.render (ToolUse) threw while drawn: <error>; the engine drew its own`과 같습니다. Claude Code가 [`ui.render`](/docs/ko/plugins/mods/reference#interface) 훅이 반환한 트리를 그리는 중에, 또는 [훅이 `next`에 전달한 `props`](/docs/ko/plugins/mods/interface#change-what-claude-code-already-draws)로 해당 지점을 그리는 중에 이 오류가 발생한 것입니다. 끝부분의 `the engine drew its own`은 해당 지점에 Claude Code의 일반 콘텐츠가 표시된다는 의미입니다.

227 

228오류를 확인하고 이를 일으킨 훅의 값을 수정합니다.

229 

230v2.1.289 이전에는 트랜스크립트 행에서 이 오류가 발생하면 [`Claude Code exited after an unrecoverable interface error`](/docs/ko/errors#exited-after-an-unrecoverable-interface-error)와 함께 세션이 종료되었습니다.

231 

232<h3 id="the-module-failed-without-a-message">

233 `the module failed without a message`

234</h3>

235 

236[`Client`](/docs/ko/plugins/mods/interface#when-a-client-fails)가 `throw new Error()`처럼 메시지가 없는 오류로 실패했습니다. 그 자리에 표시되는 줄은 `my-mod: Client client/spinner.js: the module failed without a message`와 같습니다.

237 

238`Client` 코드에서 throw 구문을 찾아 오류에 메시지를 지정합니다. 그러면 해당 줄에 그 메시지가 표시됩니다.

239 

240v2.1.289 이전에는 해당 줄에 이유로 `Error`가 대신 표시되었습니다.

241 

210<h3 id="$-ui-open-runs-and-no-pane-appears">242<h3 id="$-ui-open-runs-and-no-pane-appears">

211 `$.ui.open`이 실행되지만 pane이 나타나지 않음243 `$.ui.open`이 실행되지만 pane이 나타나지 않음

212</h3>244</h3>


285 317 

286유효성 검사를 통과하지 못한 드로잉도 거부된 결과로 간주되어 줄이 기록됩니다. 로그에 직접 줄을 작성하려면 `$.ui.log('message', { to: 'debug' })`처럼 두 번째 인수와 함께 [`$.ui.log`](/docs/ko/plugins/mods/api#show-something-without-starting-a-turn)를 호출합니다. 두 번째 인수가 없으면 `$.ui.log`는 트랜스크립트에 흐린 줄을 추가합니다.318유효성 검사를 통과하지 못한 드로잉도 거부된 결과로 간주되어 줄이 기록됩니다. 로그에 직접 줄을 작성하려면 `$.ui.log('message', { to: 'debug' })`처럼 두 번째 인수와 함께 [`$.ui.log`](/docs/ko/plugins/mods/api#show-something-without-starting-a-turn)를 호출합니다. 두 번째 인수가 없으면 `$.ui.log`는 트랜스크립트에 흐린 줄을 추가합니다.

287 319 

288`--plugin-dir`로 로드된 mod를 편집하는 동안, 트랜스크립트에는 다시 로드할 때마다 mod의 이름을 표시하고 해당 훅을 나열하는 줄이 나타납니다. 저장으로 인해 모듈이 손상되면 해당 줄에 이유와 함께 `reload failed, the previous version stays loaded:`가 표시되며, 마지막으로 정상 작동한 버전이 계속 실행됩니다.320`--plugin-dir`로 로드된 mod를 편집하는 동안, 트랜스크립트에는 다시 로드할 때마다 mod의 이름을 표시하고 해당 훅을 나열하는 줄이 나타납니다. 저장으로 인해 모듈이 손상되면 해당 줄에 이유와 함께 `reload failed, the previous version stays loaded:`가 표시되며, 마지막으로 정상 작동한 버전은 `/reload-plugins`를 실행할 때처럼 Claude Code가 다음에 플러그인을 다시 로드할 때까지 계속 실행됩니다.

289 321 

290<h2 id="next-steps">322<h2 id="next-steps">

291 다음 단계323 다음 단계

plugins/org.md +1 −1

Details

212| `pluginTrustMessage` | 플러그인이 설치되기 전에 `/plugin`이 표시하는 신뢰 경고에 텍스트를 추가합니다 | 경고 자신의 텍스트를 변경하지 않습니다 |212| `pluginTrustMessage` | 플러그인이 설치되기 전에 `/plugin`이 표시하는 신뢰 경고에 텍스트를 추가합니다 | 경고 자신의 텍스트를 변경하지 않습니다 |

213| `allowedChannelPlugins` | 채널 메시지를 푸시할 수 있는 플러그인의 기본 목록을 대체합니다. `channelsEnabled: true` 필요 | [채널 플러그인이 실행할 수 있는 것 제한](/docs/ko/channels#restrict-which-channel-plugins-can-run)을 참조하세요 |213| `allowedChannelPlugins` | 채널 메시지를 푸시할 수 있는 플러그인의 기본 목록을 대체합니다. `channelsEnabled: true` 필요 | [채널 플러그인이 실행할 수 있는 것 제한](/docs/ko/channels#restrict-which-channel-plugins-can-run)을 참조하세요 |

214| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](/docs/ko/env-vars) | 대화형 터미널 세션이 공식 마켓플레이스를 자동 등록하는 것을 중지합니다 | 이미 등록된 마켓플레이스를 제거하지 않습니다. 허용 목록 및 차단 목록은 이 없이도 같은 자동 등록을 제어합니다. 이를 설정하여 시작한 머신은 설정을 해제한 후 자동 등록을 재개하지 않습니다 |214| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](/docs/ko/env-vars) | 대화형 터미널 세션이 공식 마켓플레이스를 자동 등록하는 것을 중지합니다 | 이미 등록된 마켓플레이스를 제거하지 않습니다. 허용 목록 및 차단 목록은 이 없이도 같은 자동 등록을 제어합니다. 이를 설정하여 시작한 머신은 설정을 해제한 후 자동 등록을 재개하지 않습니다 |

215| [`allowManagedModsOnly`](/docs/ko/plugins/mods/admin#stop-user-installed-mods-from-loading) | 조직의 것으로 [계산되지 않는](/docs/ko/plugins/mods/admin#install-your-organizations-mods) 설치된 모든 [mod](/docs/ko/plugins/mods/overview)가 로드되는 것을 중지합니다 | mod를 포함하는 플러그인이 설치되는 것을 중지하지 않습니다. 그렇게 하려면 이 표의 마켓플레이스 키를 사용하세요 |215| [`allowManagedModsOnly`](/docs/ko/plugins/mods/admin#stop-user-installed-mods-from-loading) | 조직의 것으로 [계산되지 않는](/docs/ko/plugins/mods/admin#install-your-organizations-mods) 설치된 모든 [mod](/docs/ko/plugins/mods/overview)가 훅을 실행하는 것을 중지합니다 | mod를 포함하는 플러그인이 설치되는 것을 중지하지 않습니다. 그렇게 하려면 이 표의 마켓플레이스 키를 사용하세요 |

216 216 

217표의 모든 키는 `enabledPlugins`, `syncClaudeAiPlugins`, `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` 및 `allowManagedModsOnly` 제외하고 관리되는 설정입니다:217표의 모든 키는 `enabledPlugins`, `syncClaudeAiPlugins`, `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` 및 `allowManagedModsOnly` 제외하고 관리되는 설정입니다:

218 218 

Details

29플러그인은 사용자 권한으로 머신에서 실행되는 코드와 Claude의 컨텍스트에 지침으로 입력되는 콘텐츠를 포함할 수 있으므로 [플러그인을 설치하기 전에 검토하십시오](#review-a-plugin-before-you-install). 설치된 플러그인이 할 수 있는 것은 다음과 같습니다:29플러그인은 사용자 권한으로 머신에서 실행되는 코드와 Claude의 컨텍스트에 지침으로 입력되는 콘텐츠를 포함할 수 있으므로 [플러그인을 설치하기 전에 검토하십시오](#review-a-plugin-before-you-install). 설치된 플러그인이 할 수 있는 것은 다음과 같습니다:

30 30 

31* **Hooks**: 플러그인의 [hooks](/docs/ko/hooks)는 도구 호출 전후와 같이 Claude Code의 수명 주기의 특정 지점에서 셸 명령으로 실행됩니다.31* **Hooks**: 플러그인의 [hooks](/docs/ko/hooks)는 도구 호출 전후와 같이 Claude Code의 수명 주기의 특정 지점에서 셸 명령으로 실행됩니다.

32* **Monitors**: 플러그인의 [monitors](/docs/ko/plugins/components#monitors)는 세션이 시작될 때, 사용자가 플러그인을 다시 로드할 때, 또는 지정된 스킬이 처음 실행될 때 Claude Code가 자체적으로 시작하는 백그라운드 셸 명령으로 실행됩니다.

32* **Mods**: 플러그인의 [mod](/docs/ko/plugins/mods/overview)는 Claude Code 내에서 사용자의 권한으로 JavaScript를 실행합니다. 설치하기 전에 mod가 수행하는 작업을 나열하려면 [mod를 신뢰할지 결정하기](/docs/ko/plugins/mods/overview#decide-whether-to-trust-a-mod)를 참조하십시오.33* **Mods**: 플러그인의 [mod](/docs/ko/plugins/mods/overview)는 Claude Code 내에서 사용자의 권한으로 JavaScript를 실행합니다. 설치하기 전에 mod가 수행하는 작업을 나열하려면 [mod를 신뢰할지 결정하기](/docs/ko/plugins/mods/overview#decide-whether-to-trust-a-mod)를 참조하십시오.

33* **MCP 및 LSP 서버**: Claude Code는 활성화된 플러그인이 선언하는 [MCP 서버](/docs/ko/mcp)에 연결되고 Claude에 해당 도구를 제공합니다. stdio MCP 서버는 Claude Code가 머신에서 시작하는 프로세스로 실행됩니다. Claude Code는 플러그인이 선언하는 언어 서버도 시작합니다.34* **MCP 및 LSP 서버**: Claude Code는 활성화된 플러그인이 선언하는 [MCP 서버](/docs/ko/mcp)에 연결되고 Claude에 해당 도구를 제공합니다. stdio MCP 서버는 Claude Code가 머신에서 시작하는 프로세스로 실행됩니다. Claude Code는 플러그인이 선언하는 언어 서버도 시작합니다.

34* **`bin/` 디렉토리**: Claude Code는 활성화된 각 플러그인의 `bin/` 디렉토리를 Bash 도구의 셸의 `PATH`에 추가하므로 Claude의 Bash 명령은 여기의 모든 실행 파일을 실행할 수 있습니다.35* **`bin/` 디렉토리**: Claude Code는 활성화된 각 플러그인의 `bin/` 디렉토리를 Bash 도구의 셸의 `PATH`에 추가하므로 Claude의 Bash 명령은 여기의 모든 실행 파일을 실행할 수 있습니다.


37 38 

38Claude Code의 [권한 규칙](/docs/ko/permissions) 및 [sandbox](/docs/ko/sandboxing)는 Claude가 수행하는 도구 호출을 다루며, 플러그인이 자체적으로 실행하는 코드는 다루지 않습니다:39Claude Code의 [권한 규칙](/docs/ko/permissions) 및 [sandbox](/docs/ko/sandboxing)는 Claude가 수행하는 도구 호출을 다루며, 플러그인이 자체적으로 실행하는 코드는 다루지 않습니다:

39 40 

40* **Hooks 및 서버 프로세스**: 명령 hooks는 전체 사용자 권한으로 셸 명령을 실행합니다. Claude Code는 hooks, MCP 서버 및 [mod](/docs/ko/plugins/mods/overview#what-a-mod-can-reach)가 시작하는 프로세스를 샌드박스 외부에서 실행합니다.41* **Hooks, monitors 및 서버 프로세스**: 명령 hooks와 monitors는 전체 사용자 권한으로 실행되는 셸 명령입니다. Claude Code는 hooks, monitors, MCP 서버, LSP 서버 및 [mod](/docs/ko/plugins/mods/overview#what-a-mod-can-reach)가 시작하는 프로세스를 샌드박스 외부에서 실행합니다.

41* **Claude의 도구 호출**: 플러그인의 MCP 도구 중 하나에 대한 호출 및 플러그인의 `bin/`에서 실행 파일을 실행하는 Bash 명령은 도구 호출이므로 권한 규칙이 적용됩니다. mod가 도구 호출에 수행할 수 있는 작업에 대해서는 [mod를 신뢰할지 결정하기](/docs/ko/plugins/mods/overview#decide-whether-to-trust-a-mod)를 참조하십시오.42* **Claude의 도구 호출**: 플러그인의 MCP 도구 중 하나에 대한 호출 및 플러그인의 `bin/`에서 실행 파일을 실행하는 Bash 명령은 도구 호출이므로 권한 규칙이 적용됩니다. mod가 도구 호출에 수행할 수 있는 작업에 대해서는 [mod를 신뢰할지 결정하기](/docs/ko/plugins/mods/overview#decide-whether-to-trust-a-mod)를 참조하십시오.

42 43 

43플러그인을 설치하면 해당 매니페스트 또는 마켓플레이스 항목이 [`defaultEnabled: false`](/docs/ko/plugins/install#choose-an-install-scope)를 설정하고 사용자가 직접 활성화하지 않은 경우를 제외하고는 플러그인이 활성화됩니다.44플러그인을 설치하면 해당 매니페스트 또는 마켓플레이스 항목이 [`defaultEnabled: false`](/docs/ko/plugins/install#choose-an-install-scope)를 설정하고 사용자가 직접 활성화하지 않은 경우를 제외하고는 플러그인이 활성화됩니다.

quickstart.md +16 −14

Details

53 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd53 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

54 ```54 ```

55 55 

56 설치 프로그램이 완료되면 새 터미널 창을 열고 `claude --version`을 실행하십시오. 설치가 제대로 되었으면 버전 번호가 출력됩니다. 셸에서 `claude`를 찾을 수 없거나 인식되지 않는다고 표시되면 설치 디렉토리가 아직 PATH에 없는 것입니다. [PATH 수정](/docs/ko/troubleshoot-install#command-not-found-claude-after-installation)을 참조하십시오.56 설치 명령은 Claude Code를 다운로드하는 동안 진행 상황을 표시하지 않습니다. 설치 프로그램이 완료되면 새 터미널 창을 열고 `claude --version`을 실행하십시오. 설치가 제대로 되었으면 버전 번호가 출력됩니다. 셸에서 `claude`를 찾을 수 없거나 인식되지 않는다고 표시되면 설치 디렉토리가 아직 PATH에 없는 것입니다. [PATH 수정](/docs/ko/troubleshoot-install#command-not-found-claude-after-installation)을 참조하십시오.

57 57 

58 `The token '&&' is not a valid statement separator` 오류가 표시되면 CMD가 아닌 PowerShell에 있는 것입니다. `'irm' is not recognized as an internal or external command` 오류가 표시되면 PowerShell이 아닌 CMD에 있는 것입니다.58 `The token '&&' is not a valid statement separator` 오류가 표시되면 CMD가 아닌 PowerShell에 있는 것입니다. `'irm' is not recognized as an internal or external command` 오류가 표시되면 PowerShell이 아닌 CMD에 있는 것입니다.

59 59 


229 7단계: 다른 일반적인 워크플로 테스트하기229 7단계: 다른 일반적인 워크플로 테스트하기

230</h2>230</h2>

231 231 

232Claude와 함께 작업하는 방법은 다양합니다.232몇 가지 프롬프트를 더 시도해 보세요. Claude에게 코드 리팩터링, 테스트 작성, 문서 업데이트, 변경 사항 리뷰를 요청할 수 있습니다.

233 

234**코드 리팩터링**

235 233 

236```text wrap theme={null}234```text wrap theme={null}

237refactor the authentication module to use async/await instead of callbacks235refactor the authentication module to use async/await instead of callbacks

238```236```

239 237 

240**테스트 작성**

241 

242```text wrap theme={null}238```text wrap theme={null}

243write unit tests for the calculator functions239write unit tests for the calculator functions

244```240```

245 241 

246**문서 업데이트**

247 

248```text wrap theme={null}242```text wrap theme={null}

249update the README with installation instructions243update the README with installation instructions

250```244```

251 245 

252**코드 리뷰**

253 

254```text wrap theme={null}246```text wrap theme={null}

255review my changes and suggest improvements247review my changes and suggest improvements

256```248```


263 필수 명령255 필수 명령

264</h2>256</h2>

265 257 

266일상적인 사용을 위한 가장 중요한 명령은 다음과 같습니다. 셸 명령은 Claude Code를 시작하거나 재개하기 위해 터미널에서 실행됩니다. 세션 명령은 Claude Code가 시작된 후 내부에서 실행됩니다.258일상적인 사용을 위한 가장 중요한 명령을 실행 위치별로 분류하면 다음과 같습니다.

267 259 

268**셸 명령**260<h3 id="shell-commands">

261 셸 명령

262</h3>

263 

264Claude Code를 시작하거나 재개하려면 터미널에서 다음 명령을 실행합니다.

269 265 

270| 명령 | 기능 | 예시 |266| 명령 | 기능 | 예시 |

271| - | - | - |267| - | - | - |


275| `claude -c` | 현재 디렉토리에서 가장 최근 대화 계속 | `claude -c` |271| `claude -c` | 현재 디렉토리에서 가장 최근 대화 계속 | `claude -c` |

276| `claude -r` | 이전 대화 재개 | `claude -r` |272| `claude -r` | 이전 대화 재개 | `claude -r` |

277 273 

278**세션 명령**274전체 셸 명령 목록은 [CLI 참조](/docs/ko/cli-reference)를 참조하십시오.

275 

276<h3 id="session-commands">

277 세션 명령

278</h3>

279 

280Claude Code가 시작된 후 내부에서 다음 명령을 실행합니다.

279 281 

280| 명령 | 기능 | 예시 |282| 명령 | 기능 | 예시 |

281| - | - | - |283| - | - | - |


283| `/help` | 사용 가능한 명령 표시 | `/help` |285| `/help` | 사용 가능한 명령 표시 | `/help` |

284| `/exit` 또는 Ctrl+D 두 번 | Claude Code 종료 | `/exit` |286| `/exit` 또는 Ctrl+D 두 번 | Claude Code 종료 | `/exit` |

285 287 

286전체 셸 명령 목록은 [CLI 참조](/docs/ko/cli-reference)를 참조하고 전체 세션 명령 목록은 [명령 참조](/docs/ko/commands)를 참조하십시오.288전체 세션 명령 목록은 [명령 참조](/docs/ko/commands)를 참조하십시오.

287 289 

288<h2 id="pro-tips-for-beginners">290<h2 id="pro-tips-for-beginners">

289 초보자를 위한 팁291 초보자를 위한 팁

Details

201* **`false`**: 자동 연결을 끕니다. 단, [관리 설정](/docs/ko/managed-settings)의 `true`가 이를 무시합니다. Claude Code는 선택을 사용자 설정에 저장하기 때문입니다. 프로젝트 또는 로컬 설정(`.claude/settings.json`, `.claude/settings.local.json`)의 `false`는 관리 `true`보다도 자동 연결을 끕니다.201* **`false`**: 자동 연결을 끕니다. 단, [관리 설정](/docs/ko/managed-settings)의 `true`가 이를 무시합니다. Claude Code는 선택을 사용자 설정에 저장하기 때문입니다. 프로젝트 또는 로컬 설정(`.claude/settings.json`, `.claude/settings.local.json`)의 `false`는 관리 `true`보다도 자동 연결을 끕니다.

202* **`default`**: 선택을 지우고 설정된 경우 조직의 관리자 기본값을 따르거나, 그렇지 않으면 Claude Code의 현재 기본값을 따릅니다.202* **`default`**: 선택을 지우고 설정된 경우 조직의 관리자 기본값을 따르거나, 그렇지 않으면 Claude Code의 현재 기본값을 따릅니다.

203 203 

204동일한 토글은 CLI 외부에도 나타납니다:204VS Code 확장과 Desktop 앱에도 자동 연결 토글이 있습니다:

205 205 

206* **Desktop 앱**: **설정 > Claude Code > 기본적으로 원격 제어 활성화**.

207* **VS Code 확장**: [명령 메뉴](/docs/ko/vs-code#use-the-prompt-box)의 설정 섹션에서 **모든 세션에 대해 Remote Control 활성화**.206* **VS Code 확장**: [명령 메뉴](/docs/ko/vs-code#use-the-prompt-box)의 설정 섹션에서 **모든 세션에 대해 Remote Control 활성화**.

207* **Desktop 앱**: **Settings > Claude Code > Connect new sessions to Remote Control**. [다른 기기에 표시되는 세션 제어](/docs/ko/desktop#control-which-sessions-appear-on-your-other-devices)를 참조하세요.

208 208 

209설정 파일에서 자동 연결을 켜려면 사용자 `~/.claude/settings.json` 또는 [관리 설정](/docs/ko/managed-settings)에서 [`remoteControlAtStartup`](/docs/ko/settings-reference#remotecontrolatstartup)을 `true`로 설정하세요. 프로젝트 또는 로컬 설정(`.claude/settings.json`, `.claude/settings.local.json`)에서 Claude Code는 `false`를 준수하고 해당 저장소에 대해 자동 연결을 끕니다. 하지만 `true`는 무시하므로 체크인된 파일이 저장소를 여는 모든 사람에 대해 Remote Control을 켤 수 없습니다.209설정 파일에서 자동 연결을 켜려면 사용자 `~/.claude/settings.json` 또는 [관리 설정](/docs/ko/managed-settings)에서 [`remoteControlAtStartup`](/docs/ko/settings-reference#remotecontrolatstartup)을 `true`로 설정하세요. 프로젝트 또는 로컬 설정(`.claude/settings.json`, `.claude/settings.local.json`)에서 Claude Code는 `false`를 준수하고 해당 저장소에 대해 자동 연결을 끕니다. 하지만 `true`는 무시하므로 체크인된 파일이 저장소를 여는 모든 사람에 대해 Remote Control을 켤 수 없습니다.

210 210 

routines.md +1 −1

Details

93 루틴에 대해 [클라우드 환경](/docs/ko/cloud-environments)을 선택합니다. 환경은 클라우드 세션이 액세스할 수 있는 것을 제어합니다:93 루틴에 대해 [클라우드 환경](/docs/ko/cloud-environments)을 선택합니다. 환경은 클라우드 세션이 액세스할 수 있는 것을 제어합니다:

94 94 

95 * **Network access**: 각 실행 중에 사용 가능한 인터넷 액세스 수준을 설정합니다95 * **Network access**: 각 실행 중에 사용 가능한 인터넷 액세스 수준을 설정합니다

96 * **Environment variables**: Claude가 각 실행 중에 사용할 수 있는 값을 제공합니다. 이들은 [환경을 사용하는 모든 사람에게 표시](/docs/ko/cloud-environments#what-carries-over-from-your-setup)되므로, Pro 및 Max 플랜에서는 Claude가 실행 중에 호출하는 API의 키를 대신 [네트워크 시크릿](/docs/ko/cloud-environments#add-api-credentials)으로 저장합니다. 해당 섹션에는 시크릿을 받지 않는 요청도 나열됩니다96 * **Environment variables**: Claude가 각 실행 중에 사용할 수 있는 값을 제공합니다. 이들은 [환경을 사용하는 모든 사람에게 표시](/docs/ko/cloud-environments#what-carries-over-from-your-setup)되므로, Pro 및 Max 플랜에서는 Claude가 실행 중에 호출하는 API의 키를 대신 [네트워크 시크릿](/docs/ko/cloud-environments#add-network-secrets)으로 저장합니다. 해당 섹션에는 시크릿을 받지 않는 요청도 나열됩니다

97 * **Setup script**: 루틴이 필요로 하는 종속성 및 도구를 설치합니다. 결과는 [캐시됩니다](/docs/ko/cloud-environments#environment-caching)이므로 스크립트는 모든 세션에서 다시 실행되지 않습니다97 * **Setup script**: 루틴이 필요로 하는 종속성 및 도구를 설치합니다. 결과는 [캐시됩니다](/docs/ko/cloud-environments#environment-caching)이므로 스크립트는 모든 세션에서 다시 실행되지 않습니다

98 98 

99 **Default** 환경은 **Trusted** 네트워크 액세스와 함께 제공되며, 이는 세션의 네트워크를 통해 [기본 허용 목록](/docs/ko/cloud-environments#default-allowed-domains)의 패키지 레지스트리, 클라우드 제공자 API, 컨테이너 레지스트리 및 일반적인 개발 도메인만 허용합니다. 루틴에 추가하는 커넥터는 Anthropic의 서버를 통해 해당 서비스에 도달하므로 허용 목록 변경이 필요하지 않습니다. 루틴이 자신의 서비스에 직접 도달해야 하거나 해당 목록 외의 도메인에 도달해야 하는 경우, 실행하기 전에 환경의 [network access](/docs/ko/cloud-environments#network-access)를 편집합니다. 별도의 환경을 사용하려면 먼저 [하나를 만듭니다](/docs/ko/cloud-environments#configure-your-environment).99 **Default** 환경은 **Trusted** 네트워크 액세스와 함께 제공되며, 이는 세션의 네트워크를 통해 [기본 허용 목록](/docs/ko/cloud-environments#default-allowed-domains)의 패키지 레지스트리, 클라우드 제공자 API, 컨테이너 레지스트리 및 일반적인 개발 도메인만 허용합니다. 루틴에 추가하는 커넥터는 Anthropic의 서버를 통해 해당 서비스에 도달하므로 허용 목록 변경이 필요하지 않습니다. 루틴이 자신의 서비스에 직접 도달해야 하거나 해당 목록 외의 도메인에 도달해야 하는 경우, 실행하기 전에 환경의 [network access](/docs/ko/cloud-environments#network-access)를 편집합니다. 별도의 환경을 사용하려면 먼저 [하나를 만듭니다](/docs/ko/cloud-environments#configure-your-environment).

Details

22 22 

23| 방식 | 격리되는 항목 | Docker 필요 | 설정 노력 |23| 방식 | 격리되는 항목 | Docker 필요 | 설정 노력 |

24| :- | :- | :- | :- |24| :- | :- | :- | :- |

25| [샌드박스 Bash 도구](#sandboxed-bash-tool) | Bash, PowerShell, Monitor 명령 및 자식 프로세스 | 아니오 | macOS에서 최소; Linux 및 WSL2에서 낮음 |25| [샌드박스 Bash 도구](#sandboxed-bash-tool) | Bash, PowerShell, Monitor 도구 명령 및 해당 자식 프로세스 | 아니오 | macOS에서 최소; Linux 및 WSL2에서 낮음 |

26| [샌드박스 런타임](#sandbox-runtime) | 전체 Claude Code 프로세스(파일 도구, MCP 서버, 훅 포함) | 아니오 | 낮음 |26| [샌드박스 런타임](#sandbox-runtime) | 전체 Claude Code 프로세스(파일 도구, MCP 서버, 훅 포함) | 아니오 | 낮음 |

27| [개발 컨테이너](#dev-containers) | 전체 개발 환경 | 예 | 중간 |27| [개발 컨테이너](#dev-containers) | 전체 개발 환경 | 예 | 중간 |

28| [사용자 정의 컨테이너](#custom-container) | 전체 개발 환경 | 예 | 중간\~높음 |28| [사용자 정의 컨테이너](#custom-container) | 전체 개발 환경 | 예 | 중간\~높음 |


76 이 옵션은 기본 Windows를 지원하지 않습니다. Windows 호스트에서는 WSL2 또는 아래의 컨테이너 또는 VM 방식 중 하나를 사용하세요.76 이 옵션은 기본 Windows를 지원하지 않습니다. Windows 호스트에서는 WSL2 또는 아래의 컨테이너 또는 VM 방식 중 하나를 사용하세요.

77</Note>77</Note>

78 78 

79샌드박스 Bash 도구는 Claude Code에 기본 제공됩니다. 운영 체제 기본 요소를 사용하여 Claude가 실행하는 모든 Bash, PowerShell 또는 Monitor 명령의 파일 시스템 및 네트워크 접근을 제한합니다.79샌드박스 Bash 도구는 Claude Code에 기본 제공됩니다. 운영 체제 기본 요소를 사용하여 Claude가 실행하는 Bash, PowerShell, Monitor 도구 명령의 파일 시스템 및 네트워크 접근을 제한합니다.

80 80 

81`/sandbox` 명령을 실행하여 샌드박스 패널을 열고 모드를 선택하세요. [샌드박싱](/docs/ko/sandboxing) 가이드는 승인 모드, 기본 경계, 이를 확대하거나 좁히는 방법을 다룹니다.81`/sandbox` 명령을 실행하여 샌드박스 패널을 열고 모드를 선택하세요. [샌드박싱](/docs/ko/sandboxing) 가이드는 승인 모드, 기본 경계, 이를 확대하거나 좁히는 방법을 다룹니다.

82 82 

83명령별 샌드박스는 세션에서 실행되는 모든 것을 다루지 않습니다:83명령별 샌드박스는 세션에서 실행되는 모든 것을 다루지 않습니다:

84 84 

85* Read, Edit, WebFetch와 같은 다른 [기본 제공 도구](/docs/ko/tools-reference)는 Claude Code 프로세스 내에서 실행되며 임의의 코드를 생성하지 않습니다. [권한 규칙](/docs/ko/permissions)이 경로 또는 도메인으로 이들을 제어합니다.85* Read, Edit, WebFetch와 같은 다른 [기본 제공 도구](/docs/ko/tools-reference)는 Claude Code 프로세스 내에서 실행되며 임의의 코드를 생성하지 않습니다. [권한 규칙](/docs/ko/permissions)이 경로 또는 도메인으로 이들을 제어합니다.

86* [MCP](/docs/ko/mcp) 서버 및 [명령 훅](/docs/ko/hooks#command-hook-fields)은 호스트에서 제약 없이 실행되는 별도의 프로세스입니다.86* [MCP](/docs/ko/mcp) 서버, [명령 훅](/docs/ko/hooks#command-hook-fields), [플러그인 모니터](/docs/ko/plugins/components#monitors)는 호스트에서 제약 없이 실행되는 별도의 프로세스입니다. 이와 같이 실행되는 다른 프로세스에 대해서는 [샌드박스 외부에서 실행되는 항목](/docs/ko/sandboxing#what-runs-outside-the-sandbox)을 참조하세요.

87 87 

88기본 제공 도구, MCP 서버, 훅을 모두 하나의 OS 경계 뒤에 배치하려면 전체 Claude Code 프로세스를 [샌드박스 런타임](#sandbox-runtime), [개발 컨테이너](#dev-containers) 또는 [사용자 정의 컨테이너](#custom-container) 내에서 실행하세요.88기본 제공 도구, MCP 서버, 훅을 모두 하나의 OS 경계 뒤에 배치하려면 전체 Claude Code 프로세스를 [샌드박스 런타임](#sandbox-runtime), [개발 컨테이너](#dev-containers) 또는 [사용자 정의 컨테이너](#custom-container) 내에서 실행하세요.

89 89 

sandboxing.md +1 −1

Details

698권한 규칙과 샌드박싱은 서로 다른 것들을 제어합니다:698권한 규칙과 샌드박싱은 서로 다른 것들을 제어합니다:

699 699 

700* **권한 규칙**은 Claude Code가 사용할 수 있는 도구를 제어하며 도구가 실행되기 전에 평가됩니다. 이들은 모든 도구(Bash, Read, Edit, WebFetch, MCP 및 기타)에 적용되지만, deny 또는 ask 규칙은 다른 도구가 남아 있는 동안 [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)을 차단할 수 없습니다.700* **권한 규칙**은 Claude Code가 사용할 수 있는 도구를 제어하며 도구가 실행되기 전에 평가됩니다. 이들은 모든 도구(Bash, Read, Edit, WebFetch, MCP 및 기타)에 적용되지만, deny 또는 ask 규칙은 다른 도구가 남아 있는 동안 [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)을 차단할 수 없습니다.

701* **샌드박싱**은 OS 수준의 강제 실행을 제공하여 셸 명령이 파일 시스템 및 네트워크 수준에서 접근할 수 있는 것을 제한합니다. 이는 Bash, PowerShell 및 [Monitor](/docs/ko/tools-reference#monitor-tool) 명령과 그 자식 프로세스에만 적용됩니다.701* **샌드박싱**은 OS 수준의 강제 실행을 제공하여 셸 명령이 파일 시스템 및 네트워크 수준에서 접근할 수 있는 것을 제한합니다. 이는 Bash, PowerShell 및 [Monitor](/docs/ko/tools-reference#monitor-tool) 도구 명령과 그 자식 프로세스에 적용됩니다.

702 702 

703두 계층은 또한 강제 실행 방식이 다릅니다. Claude Code는 명령 문자열을 기반으로 명령이 실행되기 전에 권한 결정을 평가하며, 자동 모드에서는 명령이 안전한지 여부에 대한 별도 분류기의 판단을 기반으로 합니다. 운영 체제는 실행 중인 프로세스에 샌드박스 경계를 강제 실행하므로, 모델이 실행하도록 선택한 것과 관계없이 그리고 허용된 명령이 이름이 시사하는 것보다 더 많은 작업을 수행하더라도 유지됩니다.703두 계층은 또한 강제 실행 방식이 다릅니다. Claude Code는 명령 문자열을 기반으로 명령이 실행되기 전에 권한 결정을 평가하며, 자동 모드에서는 명령이 안전한지 여부에 대한 별도 분류기의 판단을 기반으로 합니다. 운영 체제는 실행 중인 프로세스에 샌드박스 경계를 강제 실행하므로, 모델이 실행하도록 선택한 것과 관계없이 그리고 허용된 명령이 이름이 시사하는 것보다 더 많은 작업을 수행하더라도 유지됩니다.

704 704 

Details

348 348 

349[`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 스크립트에서 반환된 키도 [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 자격 증명도 설정 가져오기를 트리거하지 않습니다.349[`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 스크립트에서 반환된 키도 [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 자격 증명도 설정 가져오기를 트리거하지 않습니다.

350 350 

351세션은 인증에 사용하는 자격 증명을 소유한 조직의 관리형 설정을 받습니다. [Claude Console](https://platform.claude.com)의 API 키는 해당 키가 생성된 Console 조직에 속하며, 이 조직은 claude.ai Team 또는 Enterprise 조직과 별개의 조직입니다. 따라서 claude.ai 관리자 설정에서 구성한 설정은 회사의 Console API 키를 사용하는 CI 작업처럼 해당 키로 인증하는 세션에는 적용되지 않습니다. 해당 작업에 설정을 적용하려면 다음 옵션 중 하나를 사용합니다. OAuth 토큰 옵션은 [`--bare`](/docs/ko/headless#start-faster-with-bare-mode)로 실행되는 작업에는 적용되지 않습니다. bare 모드는 `CLAUDE_CODE_OAUTH_TOKEN`을 읽지 않기 때문입니다.

352 

353* **OAuth 토큰**: [`claude setup-token`](/docs/ko/authentication#generate-a-long-lived-token)으로 토큰을 생성하고, Team 또는 Enterprise 조직에 대해 권한을 부여한 다음, 작업 환경에서 `CLAUDE_CODE_OAUTH_TOKEN`으로 설정합니다. `ANTHROPIC_API_KEY`처럼 토큰보다 [우선 적용되는](/docs/ko/authentication#authentication-precedence) 자격 증명은 해당 환경에서 제거합니다.

354* **엔드포인트 관리 설정**: 작업을 실행하는 머신에 [관리형 설정 파일](/docs/ko/managed-settings#delivery-mechanisms)을 배포합니다.

355 

351Claude Desktop 앱의 [Cowork](https://claude.com/docs/cowork/overview) 세션에서, Claude Code는 사용자가 Team 또는 Enterprise 계정으로 로그인할 때에도 claude.ai 관리 콘솔에서 서버 관리 설정을 가져오지 않습니다. [정책이 적용되는 위치와 시기](/docs/ko/managed-settings#where-and-when-a-policy-applies)는 어떤 정책이 사용자 머신의 Cowork 세션과 원격 Cowork 세션에 도달하는지 다룹니다. claude.ai는 Cowork 사용자가 claude.ai의 git 저장소에서 또는 Cowork 탭의 **사용자 정의**에서 마켓플레이스를 추가할 때 여전히 [`strictKnownMarketplaces`](/docs/ko/settings-reference#strictknownmarketplaces) 및 [`blockedMarketplaces`](/docs/ko/settings-reference#blockedmarketplaces) 목록을 적용합니다. [제한 사항이 작동하는 방식](/docs/ko/plugins/org#restrict-what-users-can-install)은 해당 확인을 설명합니다.356Claude Desktop 앱의 [Cowork](https://claude.com/docs/cowork/overview) 세션에서, Claude Code는 사용자가 Team 또는 Enterprise 계정으로 로그인할 때에도 claude.ai 관리 콘솔에서 서버 관리 설정을 가져오지 않습니다. [정책이 적용되는 위치와 시기](/docs/ko/managed-settings#where-and-when-a-policy-applies)는 어떤 정책이 사용자 머신의 Cowork 세션과 원격 Cowork 세션에 도달하는지 다룹니다. claude.ai는 Cowork 사용자가 claude.ai의 git 저장소에서 또는 Cowork 탭의 **사용자 정의**에서 마켓플레이스를 추가할 때 여전히 [`strictKnownMarketplaces`](/docs/ko/settings-reference#strictknownmarketplaces) 및 [`blockedMarketplaces`](/docs/ko/settings-reference#blockedmarketplaces) 목록을 적용합니다. [제한 사항이 작동하는 방식](/docs/ko/plugins/org#restrict-what-users-can-install)은 해당 확인을 설명합니다.

352 357 

353셸에서 `CLAUDE_CODE_USE_*` 공급자 변수 또는 기본값이 아닌 `ANTHROPIC_BASE_URL`을 내보내면, Claude Code는 세션에 대한 설정 가져오기를 건너뜁니다. [`claude doctor` 및 `/status`는 건너뛴 가져오기와 그 원인을 보고합니다](#verify-settings-delivery).358셸에서 `CLAUDE_CODE_USE_*` 공급자 변수 또는 기본값이 아닌 `ANTHROPIC_BASE_URL`을 내보내면, Claude Code는 세션에 대한 설정 가져오기를 건너뜁니다. [`claude doctor` 및 `/status`는 건너뛴 가져오기와 그 원인을 보고합니다](#verify-settings-delivery).


379| 사용자가 수정된 Claude Code 바이너리를 실행함 | 수정된 클라이언트를 실행할 수 있는 사용자는 모든 클라이언트 측 제어를 우회할 수 있습니다. |384| 사용자가 수정된 Claude Code 바이너리를 실행함 | 수정된 클라이언트를 실행할 수 있는 사용자는 모든 클라이언트 측 제어를 우회할 수 있습니다. |

380| 사용자가 이전 Claude Code 버전을 실행함 | 서버 관리 설정 이전의 버전은 이를 가져오거나 적용하지 않습니다. |385| 사용자가 이전 Claude Code 버전을 실행함 | 서버 관리 설정 이전의 버전은 이를 가져오거나 적용하지 않습니다. |

381| API를 사용할 수 없음 | 캐시된 설정이 있으면 적용되지만, [가져오기가 성공할 때까지 Claude Code가 보류하는 값](#fetch-and-caching-behavior)은 제외됩니다. 캐시가 없으면 Claude Code는 다음 성공적인 가져오기까지 서버 관리 설정을 적용하지 않으며 기기의 [엔드포인트 관리 설정](/docs/ko/managed-settings#delivery-mechanisms)은 여전히 적용합니다. `forceRemoteSettingsRefresh: true`를 사용하면 CLI는 계속하는 대신 종료되지만, [`claude auth` 부분 명령](#enforce-fail-closed-startup)은 제외됩니다. [Claude 앱 게이트웨이](#platform-availability)를 통해 로그인한 클라이언트는 해당 설정 없이 시작 시 종료되며, 동일한 `claude auth` 예외가 적용됩니다. |386| API를 사용할 수 없음 | 캐시된 설정이 있으면 적용되지만, [가져오기가 성공할 때까지 Claude Code가 보류하는 값](#fetch-and-caching-behavior)은 제외됩니다. 캐시가 없으면 Claude Code는 다음 성공적인 가져오기까지 서버 관리 설정을 적용하지 않으며 기기의 [엔드포인트 관리 설정](/docs/ko/managed-settings#delivery-mechanisms)은 여전히 적용합니다. `forceRemoteSettingsRefresh: true`를 사용하면 CLI는 계속하는 대신 종료되지만, [`claude auth` 부분 명령](#enforce-fail-closed-startup)은 제외됩니다. [Claude 앱 게이트웨이](#platform-availability)를 통해 로그인한 클라이언트는 해당 설정 없이 시작 시 종료되며, 동일한 `claude auth` 예외가 적용됩니다. |

382| 사용자가 다른 조직으로 인증함 | 관리 조직 외부의 계정에 대해 설정이 전달되지 않습니다. |387| 사용자가 다른 조직으로 인증함 | [Console API 키](#platform-availability)로 인증하는 세션을 포함하여 관리 조직 외부의 계정에 대해서는 설정이 전달되지 않습니다. |

383| 사용자가 [타사 모델 공급자](#platform-availability)를 구성함 | 서버 관리 설정이 우회됩니다. 여기에는 `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_MANTLE`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, `CLAUDE_CODE_USE_ANTHROPIC_AWS` 설정 또는 기본이 아닌 `ANTHROPIC_BASE_URL` 설정이 포함됩니다. |388| 사용자가 [타사 모델 공급자](#platform-availability)를 구성함 | 서버 관리 설정이 우회됩니다. 여기에는 `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_MANTLE`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, `CLAUDE_CODE_USE_ANTHROPIC_AWS` 설정 또는 기본이 아닌 `ANTHROPIC_BASE_URL` 설정이 포함됩니다. |

384| 네트워크 트래픽이 가로채지거나 리디렉션됨 | 비활성화된 TLS 검증 또는 가로챈 트래픽은 클라이언트가 수신하는 설정을 변경할 수 있습니다. |389| 네트워크 트래픽이 가로채지거나 리디렉션됨 | 비활성화된 TLS 검증 또는 가로챈 트래픽은 클라이언트가 수신하는 설정을 변경할 수 있습니다. |

385 390 

Details

1399 1399 

1400[안전 분류기가 요청에 플래그를 지정](/docs/ko/model-config#automatic-model-fallback)할 때 수행할 작업을 선택합니다. 폴백 모델로 전환하여 계속하거나, 일시 중지하여 전환과 프롬프트 편집 중에서 선택할 수 있도록 합니다.1400[안전 분류기가 요청에 플래그를 지정](/docs/ko/model-config#automatic-model-fallback)할 때 수행할 작업을 선택합니다. 폴백 모델로 전환하여 계속하거나, 일시 중지하여 전환과 프롬프트 편집 중에서 선택할 수 있도록 합니다.

1401 1401 

1402* **범위**: [`Any file`](#scopes). `/config`에서 **Switch models when a message is flagged**로 표시됩니다.1402* **범위**: [`Any file`](#scopes). `/config`에서 **Switch models when a message is flagged**로 표시되며, 옵션은 **Switch automatically**와 **Ask each time**입니다.

1403* **유형**: Boolean1403* **유형**: Boolean

1404 * `true`: Claude Code가 폴백 모델로 전환하고 계속합니다1404 * `true`: Claude Code가 폴백 모델로 전환하고 계속합니다

1405 * `false`: 대화형 세션에서는 Claude Code가 일시 중지하여 전환과 프롬프트 편집 중에서 선택할 수 있도록 합니다. `-p` 실행처럼 대화 상자를 표시할 수 없는 곳에서는 플래그가 지정된 요청이 오류로 종료됩니다1405 * `false`: 대화형 세션에서는 Claude Code가 일시 중지하여 전환과 프롬프트 편집 중에서 선택할 수 있도록 합니다. `-p` 실행처럼 대화 상자를 표시할 수 없는 곳에서는 플래그가 지정된 요청이 오류로 종료됩니다

1406* **기본값**: `true`, 자동으로 전환1406* **기본값**: 설정되지 않음. Claude Code는 자동으로 전환하지만, 대화형 세션에서는 [먼저 확인](/docs/ko/model-config#ask-before-switching)할 수 있습니다

1407 1407 

1408```json settings.json theme={null}1408```json settings.json theme={null}

1409{1409{


3164 `plansDirectory`3164 `plansDirectory`

3165</h3>3165</h3>

3166 3166 

3167Claude Code가 [계획 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)에서 작성하는 계획 파일을 저장할 위치를 선택합니다. Claude Code는 경로를 프로젝트 루트에 상대적으로 해석하고 경로가 외부에서 해석될 때 기본값을 유지합니다.3167Claude Code가 [플랜 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)에서 작성하는 계획 파일을 저장할 위치를 선택합니다. Claude Code는 경로를 프로젝트 루트에 상대적으로 해석합니다.

3168 3168 

3169* **범위**: [`모든 파일`](#scopes)3169* **범위**: [`모든 파일`](#scopes)

3170* **유형**: 문자열, 프로젝트 루트에 상대적인 경로3170* **유형**: 문자열, 프로젝트 루트에 상대적인 경로


3176}3176}

3177```3177```

3178 3178 

3179다음과 같은 경우 Claude Code는 설정한 디렉토리 대신 `~/.claude/plans`에 계획을 저장합니다:

3180 

3181* **프로젝트 루트 외부**: `"../plans"`처럼 경로가 프로젝트 루트 외부로 해석되는 경우.

3182* **macOS, Linux 및 WSL에서의 백슬래시**: Windows 스타일의 `"docs\\plans"`처럼 해석된 경로에 백슬래시가 포함된 경우. Windows에서도 작동하는 `"docs/plans"`로 작성합니다.

3183 

3179<h3 id="skilllistingbudgetfraction">3184<h3 id="skilllistingbudgetfraction">

3180 `skillListingBudgetFraction`3185 `skillListingBudgetFraction`

3181</h3>3186</h3>


5768 5773 

5769개발자가 SSH를 통해 원격 머신에서 작업해야 하는 배포의 경우 [데스크톱 앱](/docs/ko/desktop#local-sessions-on-managed-devices)에서 실행되는 Code 세션을 끕니다. Code 탭에서 **Local** 환경은 환경 드롭다운에 남아 있지만 회색으로 표시되고 선택할 수 없으며, 조직이 이를 끄도록 했다는 도구 설명이 표시됩니다. Windows에서는 WSL 항목도 같은 방식으로 회색으로 표시되지만, WSL 세션이 관리되는 디바이스에서 실행되는지 여부는 [별도로 관리됩니다](/docs/ko/admin-setup#wsl-sessions-in-claude-code-desktop). 새 세션은 구성된 첫 번째 [SSH 연결](/docs/ko/desktop#ssh-sessions)로 기본 설정되며, 앱은 디바이스에서 세션을 시작하거나 재개하기를 거부합니다(같은 머신으로의 SSH 연결 포함). 다른 호스트로의 SSH 세션 및 클라우드 세션은 영향을 받지 않습니다. 데스크톱 앱은 이 키를 읽습니다. 터미널 CLI는 무시합니다. Claude Desktop v1.37937.0 이상이 필요합니다.5774개발자가 SSH를 통해 원격 머신에서 작업해야 하는 배포의 경우 [데스크톱 앱](/docs/ko/desktop#local-sessions-on-managed-devices)에서 실행되는 Code 세션을 끕니다. Code 탭에서 **Local** 환경은 환경 드롭다운에 남아 있지만 회색으로 표시되고 선택할 수 없으며, 조직이 이를 끄도록 했다는 도구 설명이 표시됩니다. Windows에서는 WSL 항목도 같은 방식으로 회색으로 표시되지만, WSL 세션이 관리되는 디바이스에서 실행되는지 여부는 [별도로 관리됩니다](/docs/ko/admin-setup#wsl-sessions-in-claude-code-desktop). 새 세션은 구성된 첫 번째 [SSH 연결](/docs/ko/desktop#ssh-sessions)로 기본 설정되며, 앱은 디바이스에서 세션을 시작하거나 재개하기를 거부합니다(같은 머신으로의 SSH 연결 포함). 다른 호스트로의 SSH 세션 및 클라우드 세션은 영향을 받지 않습니다. 데스크톱 앱은 이 키를 읽습니다. 터미널 CLI는 무시합니다. Claude Desktop v1.37937.0 이상이 필요합니다.

5770 5775 

5771* **범위**: [`Managed`](#scopes)5776* **범위**: [`Managed`](#scopes). 기본적으로 데스크톱 앱은 [하나의 관리형 소스](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)에서 이 키를 읽습니다.

5772* **유형**: Boolean; JSON Boolean `true`만 적용됩니다5777* **유형**: Boolean; JSON Boolean `true`만 적용됩니다

5773 * `true`: 데스크톱 앱은 온디바이스 Code 세션을 제공하지 않습니다. 기존 로컬 세션은 나열되지만 계속할 수 없습니다5778 * `true`: 데스크톱 앱은 온디바이스 Code 세션을 제공하지 않습니다. 기존 로컬 세션은 나열되지만 계속할 수 없습니다

5774 * `false`: 로컬 세션은 사용 가능한 상태로 유지됩니다5779 * `false`: 로컬 세션은 사용 가능한 상태로 유지됩니다


5915 5920 

5916[Desktop](/docs/ko/desktop#pre-configure-ssh-connections-for-your-team) 환경 드롭다운에 SSH 연결을 추가합니다. 관리자는 이를 사용하여 팀에 공유 연결을 배포합니다. 관리 설정에서 정의한 연결은 관리됨으로 표시되므로 사용자는 이를 선택할 수 있지만 앱에서 편집하거나 삭제할 수 없습니다.5921[Desktop](/docs/ko/desktop#pre-configure-ssh-connections-for-your-team) 환경 드롭다운에 SSH 연결을 추가합니다. 관리자는 이를 사용하여 팀에 공유 연결을 배포합니다. 관리 설정에서 정의한 연결은 관리됨으로 표시되므로 사용자는 이를 선택할 수 있지만 앱에서 편집하거나 삭제할 수 없습니다.

5917 5922 

5918* **범위**: [`User or managed`](#scopes). 데스크톱 앱은 이 키를 읽습니다.5923* **범위**: [`User or managed`](#scopes). 데스크톱 앱은 이 키를 읽습니다. 기본적으로 [하나의 관리형 소스](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)에서 관리되는 연결을 읽습니다.

5919* **유형**: 필수 `id`, `name` 및 `sshHost`와 선택적 `sshPort` 및 `sshIdentityFile`을 포함하는 객체 배열5924* **유형**: 필수 `id`, `name` 및 `sshHost`와 선택적 `sshPort` 및 `sshIdentityFile`을 포함하는 객체 배열

5920* **기본값**: 설정되지 않음5925* **기본값**: 설정되지 않음

5921 5926 


5939 5944 

5940[Desktop SSH 세션](/docs/ko/desktop#restrict-which-ssh-hosts-users-can-connect-to)이 연결할 수 있는 호스트를 제한합니다. Desktop 앱만 이 키를 읽습니다. CLI는 읽지 않습니다. 패턴은 대소문자를 구분하지 않습니다: `*`는 모든 호스트와 일치하고, `*.example.com`은 `example.com` 및 모든 하위 도메인과 일치하며, 다른 것은 `~/.ssh/config` 해석 후 호스트 이름과 정확히 일치합니다. 빈 배열은 SSH 세션을 끕니다.5945[Desktop SSH 세션](/docs/ko/desktop#restrict-which-ssh-hosts-users-can-connect-to)이 연결할 수 있는 호스트를 제한합니다. Desktop 앱만 이 키를 읽습니다. CLI는 읽지 않습니다. 패턴은 대소문자를 구분하지 않습니다: `*`는 모든 호스트와 일치하고, `*.example.com`은 `example.com` 및 모든 하위 도메인과 일치하며, 다른 것은 `~/.ssh/config` 해석 후 호스트 이름과 정확히 일치합니다. 빈 배열은 SSH 세션을 끕니다.

5941 5946 

5942* **범위**: [`Managed`](#scopes)5947* **범위**: [`Managed`](#scopes). 기본적으로 Desktop은 [하나의 관리형 소스](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)에서 이 키를 읽습니다.

5943* **유형**: 호스트 이름 패턴 배열5948* **유형**: 호스트 이름 패턴 배열

5944* **기본값**: 설정되지 않음, 따라서 모든 호스트가 허용됩니다5949* **기본값**: 설정되지 않음, 따라서 모든 호스트가 허용됩니다

5945 5950 


5951}5956}

5952```5957```

5953 5958 

5959Desktop이 호스트 목록으로 읽을 수 없는 값(예: `true` 또는 객체)은 수정할 때까지 빈 배열로 간주됩니다. 단, `null`은 설정되지 않은 것으로 간주됩니다. Claude Desktop v2.26454.0 이상이 필요합니다.

5960 

5961최상위 소스에서 [`managedSourcesBehavior`](#managedsourcesbehavior)를 `"merge"`로 설정하면 Desktop은 모든 [관리자 소스](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)의 목록을 결합하고 그중 하나라도 일치하는 호스트를 허용합니다. 한 소스에서 빈 배열을 설정하더라도 다른 소스가 나열한 호스트에 대해서는 SSH 세션이 켜진 상태로 유지됩니다.

5962 

5954<span id="authentication-and-login" />5963<span id="authentication-and-login" />

5955 5964 

5956<h2 id="authentication-and-providers">5965<h2 id="authentication-and-providers">

setup.md +12 −8

Details

63 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd63 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

64 ```64 ```

65 65 

66 설치 프로그램이 완료되면 새 터미널 창을 열고 `claude --version`을 실행하십시오. 설치가 제대로 되었으면 버전 번호가 출력됩니다. 셸에서 `claude`를 찾을 수 없거나 인식되지 않는다고 표시되면 설치 디렉토리가 아직 PATH에 없는 것입니다. [PATH 수정](/docs/ko/troubleshoot-install#command-not-found-claude-after-installation)을 참조하십시오.66 설치 명령은 Claude Code를 다운로드하는 동안 진행 상황을 표시하지 않습니다. 설치 프로그램이 완료되면 새 터미널 창을 열고 `claude --version`을 실행하십시오. 설치가 제대로 되었으면 버전 번호가 출력됩니다. 셸에서 `claude`를 찾을 수 없거나 인식되지 않는다고 표시되면 설치 디렉토리가 아직 PATH에 없는 것입니다. [PATH 수정](/docs/ko/troubleshoot-install#command-not-found-claude-after-installation)을 참조하십시오.

67 67 

68 `The token '&&' is not a valid statement separator` 오류가 표시되면 CMD가 아닌 PowerShell에 있는 것입니다. `'irm' is not recognized as an internal or external command` 오류가 표시되면 PowerShell이 아닌 CMD에 있는 것입니다.68 `The token '&&' is not a valid statement separator` 오류가 표시되면 CMD가 아닌 PowerShell에 있는 것입니다. `'irm' is not recognized as an internal or external command` 오류가 표시되면 PowerShell이 아닌 CMD에 있는 것입니다.

69 69 


119 119 

120| 옵션 | 필요 사항 | [샌드박싱](/docs/ko/sandboxing) | 사용 시기 |120| 옵션 | 필요 사항 | [샌드박싱](/docs/ko/sandboxing) | 사용 시기 |

121| - | - | - | - |121| - | - | - | - |

122| 네이티브 Windows | 없음; [Git for Windows](https://git-scm.com/downloads/win)는 선택 사항 | 지원되지 않음 | Windows 기본 프로젝트 및 도구 |122| [네이티브 Windows](#install-on-native-windows) | 없음; [Git for Windows](https://git-scm.com/downloads/win)는 선택 사항 | 지원되지 않음 | Windows 기본 프로젝트 및 도구 |

123| WSL 2 | WSL 2 활성화 | 지원됨 | Linux 도구 체인 또는 샌드박싱된 명령 실행 |123| [WSL 2](#install-in-wsl) | WSL 2 활성화 | 지원됨 | Linux 도구 체인 또는 샌드박싱된 명령 실행 |

124| WSL 1 | WSL 1 활성화 | 지원되지 않음 | WSL 2를 사용할 수 없는 경우 |124| [WSL 1](#install-in-wsl) | WSL 1 활성화 | 지원되지 않음 | WSL 2를 사용할 수 없는 경우 |

125 125 

126**옵션 1: 네이티브 Windows**126<h4 id="install-on-native-windows">

127 네이티브 Windows에 설치

128</h4>

127 129 

128PowerShell 또는 CMD에서 설치 명령을 실행하세요. 관리자로 실행할 필요가 없습니다. [Git for Windows](https://git-scm.com/downloads/win) 설치는 선택 사항입니다. 이는 [Bash 도구](/docs/ko/tools-reference#bash-tool-behavior)와 [Monitor 도구](/docs/ko/tools-reference#monitor-tool)에 필요한 Git Bash를 제공합니다.130PowerShell 또는 CMD에서 [설치 명령](#install-claude-code)을 실행하세요. 관리자로 실행할 필요가 없습니다. [Git for Windows](https://git-scm.com/downloads/win) 설치는 선택 사항입니다. 이는 [Bash 도구](/docs/ko/tools-reference#bash-tool-behavior)와 [Monitor 도구](/docs/ko/tools-reference#monitor-tool)에 필요한 Git Bash를 제공합니다.

129 131 

130PowerShell 또는 CMD에서 설치하는지 여부는 실행하는 설치 명령에만 영향을 줍니다. 프롬프트는 PowerShell에서 `PS C:\Users\YourName>`을 표시하고 CMD에서는 `PS` 없이 `C:\Users\YourName>`을 표시합니다. 터미널이 처음이라면 [터미널 가이드](/docs/ko/terminal-guide#windows)에서 각 단계를 안내합니다.132PowerShell 또는 CMD에서 설치하는지 여부는 실행하는 설치 명령에만 영향을 줍니다. 프롬프트는 PowerShell에서 `PS C:\Users\YourName>`을 표시하고 CMD에서는 `PS` 없이 `C:\Users\YourName>`을 표시합니다. 터미널이 처음이라면 [터미널 가이드](/docs/ko/terminal-guide#windows)에서 각 단계를 안내합니다.

131 133 


144 146 

145Git for Windows가 설치되면 PowerShell 도구는 Bash와 함께 사용 가능합니다: claude.ai 및 Console 계정의 경우 기본적으로 활성화되며, Amazon Bedrock, Google Cloud의 Agent Platform 및 Microsoft Foundry 세션에서는 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`로 활성화됩니다. 도구를 끄려면 `0`으로 설정하세요. 설정 및 제한사항은 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool)를 참조하세요.147Git for Windows가 설치되면 PowerShell 도구는 Bash와 함께 사용 가능합니다: claude.ai 및 Console 계정의 경우 기본적으로 활성화되며, Amazon Bedrock, Google Cloud의 Agent Platform 및 Microsoft Foundry 세션에서는 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`로 활성화됩니다. 도구를 끄려면 `0`으로 설정하세요. 설정 및 제한사항은 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool)를 참조하세요.

146 148 

147**옵션 2: WSL**149<h4 id="install-in-wsl">

150 WSL에 설치

151</h4>

148 152 

149WSL 배포판을 열고 위의 [설치 지침](#install-claude-code)에서 Linux 설치 프로그램을 실행하세요. PowerShell 또는 CMD가 아닌 WSL 터미널 내에서 `claude`를 설치하고 실행합니다.153WSL 배포판을 열고 [설치 지침](#install-claude-code)에서 Linux 설치 프로그램을 실행하세요. PowerShell 또는 CMD가 아닌 WSL 터미널 내에서 `claude`를 설치하고 실행합니다.

150 154 

151<h3 id="alpine-linux-and-musl-based-distributions">155<h3 id="alpine-linux-and-musl-based-distributions">

152 Alpine Linux 및 musl 기반 배포판156 Alpine Linux 및 musl 기반 배포판

skills.md +15 −0

Details

36 36 

37번들 스킬은 [명령 참조](/docs/ko/commands)에서 기본 제공 명령과 함께 나열되며, 목적 열에 **Skill**로 표시됩니다.37번들 스킬은 [명령 참조](/docs/ko/commands)에서 기본 제공 명령과 함께 나열되며, 목적 열에 **Skill**로 표시됩니다.

38 38 

39<h3 id="check-your-setup-with-/doctor">

40 `/doctor`로 설정 점검

41</h3>

42 

43Claude Code 프롬프트에서 `/doctor`를 실행하면 문제를 진단하고 수정할 수 있는 설정 점검을 수행합니다. Claude는 먼저 발견 사항을 보고하고, 무엇이든 변경하기 전에 확인을 요청합니다. 점검 대상은 다음과 같습니다.

44 

45* **설치 상태**: 중복되거나 남아 있는 설치, `PATH` 문제, 파싱할 수 없는 설정 파일, 그리고 [릴리스 채널](/docs/ko/setup#configure-release-channel)에 더 새로운 버전이 있는지 여부

46* **확장 기능**: 컨텍스트 비용 대비 사용되지 않는 스킬, MCP 서버, 플러그인, 그리고 느린 [훅](/docs/ko/hooks)

47* **`CLAUDE.md` 파일**: 체크인된 파일과 중복되는 로컬 `CLAUDE.md` 파일, 체크인된 [`CLAUDE.md` 내용 중 Claude가 코드베이스에서 도출할 수 있는 내용](/docs/ko/memory#my-claude-md-is-too-large), 그리고 항상 로드되는 나머지 지침. Claude는 이 지침을 필요할 때 로드되는 스킬과 중첩된 `CLAUDE.md` 파일로 옮기도록 제안합니다

48* **권한**: [자동 모드](/docs/ko/permissions#permission-modes)를 기본 권한 모드로 설정하고, 자주 거부하는 읽기 전용 명령을 [사전 승인](/docs/ko/permissions)하도록 제안

49 

50세션을 시작하지 않고 읽기 전용 설치 진단을 수행하려면 대신 터미널에서 `claude doctor`를 실행합니다.

51 

52설정이 아닌 지침을 감사하려면 Claude Code 프롬프트에서 `/doctor prompt-audit`를 실행합니다. Claude는 점검을 실행하는 대신 [`CLAUDE.md` 파일, 스킬 및 기타 구성을 검사](/docs/ko/memory#audit-your-instruction-files)하여 오래되었거나 충돌하는 지침을 찾습니다. `prompt-audit` 하위 명령은 Claude Code v2.1.283 이상이 필요합니다.

53 

39<h3 id="run-and-verify-your-app">54<h3 id="run-and-verify-your-app">

40 앱 실행 및 확인55 앱 실행 및 확인

41</h3>56</h3>

statusline.md +88 −39

Details

143</Steps>143</Steps>

144 144 

145<h2 id="how-status-lines-work">145<h2 id="how-status-lines-work">

146 상태 표시줄 작동 방식146 상태줄 작동 방식

147</h2>147</h2>

148 148 

149Claude Code는 스크립트를 [JSON 세션 데이터](#available-data)와 함께 stdin에서 실행하고 스크립트가 stdout에 인쇄하는 모든 것을 표시합니다.149Claude Code는 스크립트를 [JSON 세션 데이터](#available-data)와 함께 stdin에서 실행하고 스크립트가 stdout에 인쇄하는 모든 것을 표시합니다.

150 150 

151**업데이트 시기**151<Note>상태줄은 로컬에서 실행되며 API 토큰을 소비하지 않습니다. 도움말 메뉴 및 권한 프롬프트를 포함한 특정 UI 상호 작용 중에 일시적으로 숨겨집니다.</Note>

152 

153<h3 id="when-the-status-line-updates">

154 상태줄 업데이트 시기

155</h3>

152 156 

153스크립트는 세션이 시작될 때(재개할 때 포함) 한 번 실행됩니다. 그 후에는 다음 경우에 다시 실행됩니다:157스크립트는 세션이 시작될 때(재개할 때 포함) 한 번 실행됩니다. 그 후에는 다음 경우에 다시 실행됩니다:

154 158 


158* Vim 모드가 전환될 때162* Vim 모드가 전환될 때

159* `statusLine` 설정에서 `command`를 변경할 때163* `statusLine` 설정에서 `command`를 변경할 때

160* [`refreshInterval`](#manually-configure-a-status-line) 타이머가 경과할 때(설정한 경우)164* [`refreshInterval`](#manually-configure-a-status-line) 타이머가 경과할 때(설정한 경우)

161* 스크립트가 마지막으로 받은 데이터의 [rate-limit 윈도우](#rate-limit-usage)가 `resets_at` 시간에 도달할 때165* 스크립트가 마지막으로 받은 데이터의 [속도 제한 윈도우](#rate-limit-usage)가 `resets_at` 시간에 도달할 때

162* 스크립트가 마지막으로 받은 데이터의 warm [prompt cache](#prompt-cache-fields)가 `expires_at` 시간에 도달할 때166* 스크립트가 마지막으로 받은 데이터의 warm 상태인 [프롬프트 캐시](#prompt-cache-fields)가 `expires_at` 시간에 도달할 때

163 167 

164Claude Code는 업데이트를 300ms에서 디바운스하므로 빠른 변경이 함께 일괄 처리되고 스크립트는 변경이 멈춘 후 한 번 실행됩니다. `command` 자체에 대한 변경은 디바운스를 건너뜁니다: Claude Code는 새 명령을 즉시 실행합니다. 스크립트가 여전히 실행 중인 동안 새 업데이트가 트리거되면 Claude Code는 진행 중인 스크립트를 취소합니다. 스크립트를 편집하면 업데이트 트리거가 다시 실행될 때 변경 사항이 나타납니다.168Claude Code는 업데이트를 300ms에서 디바운스하므로 빠른 변경이 함께 일괄 처리되고 스크립트는 변경이 멈춘 후 한 번 실행됩니다. `command` 자체에 대한 변경은 디바운스를 건너뜁니다: Claude Code는 새 명령을 즉시 실행합니다. 스크립트가 여전히 실행 중인 동안 새 업데이트가 트리거되면 Claude Code는 진행 중인 스크립트를 취소합니다. 스크립트를 편집하면 업데이트 트리거가 스크립트를 다시 실행할 때 변경 사항이 나타납니다.

165 169 

166이벤트 기반 트리거는 주 세션이 유휴 상태일 때(예: 코디네이터가 백그라운드 서브에이전트를 기다릴 때) 조용해질 수 있습니다. 유휴 기간 동안 시간 기반 또는 외부 소스 세그먼트를 최신 상태로 유지하려면 [`refreshInterval`](#manually-configure-a-status-line)을 설정하여 고정 타이머에서도 명령을 다시 실행합니다.170이벤트 기반 트리거는 주 세션이 유휴 상태일 때(예: 코디네이터가 백그라운드 서브에이전트를 기다릴 때) 조용해질 수 있습니다. 유휴 기간 동안 시간 기반 또는 외부 소스 세그먼트를 최신 상태로 유지하려면 [`refreshInterval`](#manually-configure-a-status-line)을 설정하여 고정 타이머에서도 명령을 다시 실행합니다.

167 171 

168**스크립트가 출력할 수 있는 것**172<h3 id="what-your-script-can-output">

173 스크립트가 출력할 수 있는 것

174</h3>

175 

176스크립트는 한 줄의 일반 텍스트 이상을 출력할 수 있습니다:

169 177 

170* **여러 줄**: 각 `echo` 또는 `print` 문은 별도의 행으로 표시됩니다. [다중 줄 예제](#display-multiple-lines)를 참조하세요.178* **여러 줄**: 각 `echo` 또는 `print` 문은 별도의 행으로 표시됩니다. [다중 줄 예제](#display-multiple-lines)를 참조하세요.

171* **색상**: 녹색의 경우 `\033[32m`과 같은 [ANSI 이스케이프 코드](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors)를 사용합니다(터미널이 지원해야 함). [git 상태 예제](#git-status-with-colors)를 참조하세요.179* **색상**: 녹색의 경우 `\033[32m`과 같은 [ANSI 이스케이프 코드](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors)를 사용합니다(터미널이 지원해야 함). [git 상태 예제](#git-status-with-colors)를 참조하세요.

172* **링크**: [OSC 8 이스케이프 시퀀스](https://en.wikipedia.org/wiki/ANSI_escape_code#OSC)를 사용하여 텍스트를 클릭 가능하게 만듭니다(macOS에서는 Cmd+클릭, Windows/Linux에서는 Ctrl+클릭). iTerm2, Kitty 또는 WezTerm과 같이 하이퍼링크를 지원하는 터미널이 필요합니다. [클릭 가능한 링크 예제](#clickable-links)를 참조하세요.180* **링크**: [OSC 8 이스케이프 시퀀스](https://en.wikipedia.org/wiki/ANSI_escape_code#OSC)를 사용하여 텍스트를 클릭 가능하게 만듭니다(macOS에서는 Cmd+클릭, Windows/Linux에서는 Ctrl+클릭). iTerm2, Kitty 또는 WezTerm과 같이 하이퍼링크를 지원하는 터미널이 필요합니다. [클릭 가능한 링크 예제](#clickable-links)를 참조하세요.

173 181 

174**터미널에 맞게 출력 크기 조정**182<h3 id="size-output-to-the-terminal">

183 터미널에 맞게 출력 크기 조정

184</h3>

175 185 

176Claude Code는 스크립트의 출력을 캡처하므로 터미널에 직접 연결하지 않아 스크립트 내부에서 `tput cols`와 언어 수준의 너비 감지가 터미널 크기를 읽을 수 없습니다. `COLUMNS` 및 `LINES` 환경 변수를 대신 읽으세요. Claude Code는 스크립트를 실행하기 전에 이러한 변수를 현재 터미널 크기로 설정합니다.186Claude Code는 스크립트의 출력을 캡처하므로 터미널에 직접 연결하지 않아 스크립트 내부에서 `tput cols`와 언어 수준의 너비 감지가 터미널 크기를 읽을 수 없습니다. `COLUMNS` 및 `LINES` 환경 변수를 대신 읽으세요. Claude Code는 스크립트를 실행하기 전에 이러한 변수를 현재 터미널 크기로 설정합니다.

177 187 

178<Note>상태 표시줄은 로컬에서 실행되며 API 토큰을 소비하지 않습니다. 도움말 메뉴 및 권한 프롬프트를 포함한 특정 UI 상호 작용 중에 일시적으로 숨겨집니다.</Note>

179 

180<h2 id="available-data">188<h2 id="available-data">

181 사용 가능한 데이터189 사용 가능한 데이터

182</h2>190</h2>


1167}1175}

1168```1176```

1169 1177 

1170명령은 새로 고침 틱마다 한 번 실행되며 모든 표시 가능한 서브에이전트 행이 stdin의 단일 JSON 객체로 전달됩니다. 입력에는 [기본 훅 필드](/docs/ko/hooks#common-input-fields), `columns` 필드(사용 가능한 행 너비 포함) 및 `tasks` 배열이 포함됩니다. 각 작업에는 `id`, `name`, `type`, `status`, `description`, `label`, `startTime`, `model`, `effort`, `contextWindowSize`, `tokenCount`, `tokenSamples` 및 `cwd`가 있습니다.1178명령은 새로 고침 틱마다 한 번 실행되며 표시되는 모든 서브에이전트 행을 stdin의 단일 JSON 객체로 전달받습니다. 입력에는 [기본 훅 필드](/docs/ko/hooks#common-input-fields), 사용 가능한 행 너비를 담은 `columns` 필드, 그리고 행마다 하나의 항목을 갖는 `tasks` 배열이 포함되며, 이는 [작업 필드](#task-fields)에 설명되어 있습니다.

1171 

1172작업별 `model` 필드는 작업이 실행되는 확인된 모델 ID입니다. `contextWindowSize`는 해당 모델의 컨텍스트 윈도우(토큰 단위)이며, 메인 상태 표시줄의 `context_window.context_window_size`와 동일한 방식으로 계산되므로 `tokenCount`에서 행별 백분율을 렌더링할 수 있습니다. 두 필드 모두 Claude Code v2.1.205 이상이 필요하며 모델이 아직 확인되지 않은 작업의 경우 생략됩니다.

1173 

1174작업별 `effort` 필드는 해당 서브에이전트에 대해 설정된 추론 effort로, [정의 frontmatter](/docs/ko/sub-agents#supported-frontmatter-fields) 또는 개별 호출에서 설정됩니다. 값은 effort 수준 문자열 `low`, `medium`, `high`, `xhigh` 또는 `max` 중 하나이거나 숫자 토큰 예산입니다. 필드는 구성된 값을 작성된 그대로 보고합니다. 모델이 해당 수준을 지원하지 않으면 Claude Code가 실제로 적용하는 effort가 다를 수 있습니다. 필드는 Claude Code v2.1.214 이상이 필요하며 서브에이전트에 수준이 설정되지 않은 경우에는 없습니다.

1175 1179 

1176재정의하려는 각 행에 대해 stdout에 한 줄의 JSON을 작성합니다: `{"id": "<task id>", "content": "<row body>"}`. `content` 문자열은 ANSI 색상 및 OSC 8 하이퍼링크를 포함하여 그대로 렌더링됩니다. 작업의 `id`를 생략하여 해당 행의 기본 렌더링을 유지합니다. 빈 `content` 문자열을 내보내 숨깁니다.1180재정의하려는 각 행에 대해 stdout에 한 줄의 JSON을 작성합니다: `{"id": "<task id>", "content": "<row body>"}`. `content` 문자열은 ANSI 색상 및 OSC 8 하이퍼링크를 포함하여 그대로 렌더링됩니다. 작업의 `id`를 생략하여 해당 행의 기본 렌더링을 유지합니다. 빈 `content` 문자열을 내보내 숨깁니다.

1177 1181 

1178`statusLine`에 적용되는 동일한 신뢰, `disableAllHooks` 및 [`allowManagedHooksOnly`](/docs/ko/settings-reference#allowmanagedhooksonly) 게이트가 여기에 적용됩니다. 플러그인은 [`settings.json`](/docs/ko/plugins/manifest-reference#standard-layout)에서 기본 `subagentStatusLine`을 제공할 수 있지만, 훅과 달리 플러그인이 관리 설정 `enabledPlugins`에서 강제 활성화되어 있을 때도 플러그인 값은 `allowManagedHooksOnly` 아래에서 실행되지 않습니다.1182`statusLine`에 적용되는 동일한 신뢰, `disableAllHooks` 및 [`allowManagedHooksOnly`](/docs/ko/settings-reference#allowmanagedhooksonly) 게이트가 여기에 적용됩니다. 플러그인은 [`settings.json`](/docs/ko/plugins/manifest-reference#standard-layout)에서 기본 `subagentStatusLine`을 제공할 수 있지만, 훅과 달리 플러그인이 관리 설정 `enabledPlugins`에서 강제 활성화되어 있을 때도 플러그인 값은 `allowManagedHooksOnly` 아래에서 실행되지 않습니다.

1179 1183 

1184<h3 id="task-fields">

1185 작업 필드

1186</h3>

1187 

1188`tasks` 배열의 각 항목은 아래 필드로 하나의 서브에이전트 행을 설명합니다. 선택 사항으로 표시된 필드는 값이 없으면 생략되므로 스크립트에서 해당 필드가 없는 경우를 처리해야 합니다.

1189 

1190| 필드 | 유형 | 설명 |

1191| :- | :- | :- |

1192| `id` | string | 작업의 식별자입니다. 이 행에 대해 다시 작성하는 줄에 `id`로 그대로 전달합니다 |

1193| `name` | string, 선택 사항 | 서브에이전트에 이름이 있는 경우 [호출할 때 사용하는](/docs/ko/sub-agents#subagent-names) 이름입니다 |

1194| `type` | string | 작업의 종류: `local_agent` |

1195| `agentType` | string | 작업이 실행되는 서브에이전트 유형으로, 기본 제공 [`Explore`](/docs/ko/sub-agents#built-in-subagents) 또는 사용자 정의 `code-reviewer` 등이 있습니다. 훅이 [`agent_type`](/docs/ko/hooks#subagentstart)으로 받는 값과 동일한 값을 담습니다. Claude Code v2.1.293 이상이 필요합니다 |

1196| `status` | string | 작업의 상태로, `running`, `completed`, `failed` 또는 `killed` 등이 있습니다 |

1197| `description` | string | 작업에 대한 짧은 설명으로, Claude가 서브에이전트를 생성할 때 제공한 설명 등이 있습니다 |

1198| `label` | string | Claude Code에 작업의 짧은 진행 요약이 있으면 그 요약이며, 없으면 `description`과 동일한 텍스트입니다 |

1199| `startTime` | number | 작업이 시작된 시각으로, Unix epoch 이후의 밀리초 단위입니다 |

1200| `model` | string, 선택 사항 | 작업이 실행되는 확인된 모델의 ID입니다. 모델이 확인될 때까지 생략됩니다. Claude Code v2.1.205 이상이 필요합니다 |

1201| `effort` | string 또는 number, 선택 사항 | 서브에이전트의 [정의 frontmatter](/docs/ko/sub-agents#supported-frontmatter-fields) 또는 개별 호출에서 설정된 추론 effort로, `low`, `medium`, `high`, `xhigh`, `max` 또는 숫자 토큰 예산입니다. 이는 구성된 값이며, 모델이 해당 수준을 지원하지 않으면 Claude Code가 실제로 적용하는 effort가 다를 수 있습니다. effort가 설정되지 않으면 생략됩니다. Claude Code v2.1.213 이상이 필요합니다 |

1202| `contextWindowSize` | number, 선택 사항 | `model`의 컨텍스트 윈도우(토큰 단위)로, 메인 상태줄의 [`context_window.context_window_size`](#context-window-fields)와 동일한 방식으로 계산되므로 `tokenCount`에서 행별 백분율을 렌더링할 수 있습니다. `model`이 생략되면 함께 생략됩니다. Claude Code v2.1.205 이상이 필요합니다 |

1203| `tokenCount` | number | 서브에이전트의 누적 토큰 수로, 기본 행에 표시되는 수치입니다 |

1204| `tokenSamples` | array of numbers | 최근 최대 16개의 `tokenCount` 측정값으로, 새로 고침 틱마다 하나씩 기록되며 가장 오래된 값부터 시작해 현재 값으로 끝납니다 |

1205| `cwd` | string | 서브에이전트의 작업 디렉터리입니다. 격리된 worktree처럼 자체 디렉터리에서 실행되는 경우 해당 디렉터리이며, 그렇지 않으면 세션의 작업 디렉터리입니다 |

1206 

1180<h2 id="tips">1207<h2 id="tips">

1181 팁1208 팁

1182</h2>1209</h2>


1191 문제 해결1218 문제 해결

1192</h2>1219</h2>

1193 1220 

1194**상태 표시줄이 나타나지 않음**1221상태줄이 비어 있으면 [상태줄이 나타나지 않음](#status-line-not-appearing)부터 확인합니다. 신뢰하지 않은 폴더와 실패하는 스크립트도 상태줄을 비워 두며, 이는 [워크스페이스 신뢰 필요](#workspace-trust-required) 및 [스크립트 오류 또는 중단](#script-errors-or-hangs)에서 설명합니다.

1222 

1223<h3 id="status-line-not-appearing">

1224 상태줄이 나타나지 않음

1225</h3>

1226 

1227상태줄을 구성했는데 인터페이스 하단에 아무것도 표시되지 않으면 다음 항목을 차례로 확인합니다:

1195 1228 

1196* 스크립트가 실행 가능한지 확인합니다: `chmod +x ~/.claude/statusline.sh`1229* 스크립트가 실행 가능한지 확인합니다: `chmod +x ~/.claude/statusline.sh`

1197* 스크립트가 stderr가 아닌 stdout으로 출력하는지 확인합니다1230* 스크립트가 stderr가 아닌 stdout으로 출력하는지 확인합니다

1198* 스크립트를 수동으로 실행하여 출력을 생성하는지 확인합니다1231* 스크립트를 수동으로 실행하여 출력을 생성하는지 확인합니다

1199* Git Bash가 설치된 Windows에서는 `command` 경로의 백슬래시가 스크립트 실행 전에 이스케이프 문자로 처리될 가능성이 높습니다. 경로에서 슬래시를 사용합니다. [Windows 구성](#windows-configuration)을 참조합니다.1232* Git Bash가 설치된 Windows에서는 `command` 경로의 백슬래시가 스크립트 실행 전에 이스케이프 문자로 처리될 가능성이 높습니다. 경로에서 슬래시를 사용합니다. [Windows 구성](#windows-configuration)을 참조합니다.

1200* [설정 우선순위](/docs/ko/hooks#disable-or-remove-hooks)가 적용된 후 관리되는 설정 외부에서 `disableAllHooks`가 `true`인 경우, Claude Code는 관리되는 설정의 `statusLine`만 실행하며, 관리되는 `statusLine`이 없으면 상태 표시줄이 비활성화됩니다. 설정을 제거하거나 이를 설정하는 파일에서 `false`로 설정하여 다시 활성화합니다. [`disableAllHooks`](/docs/ko/settings-reference#disableallhooks)를 참조합니다.1233* [설정 우선순위](/docs/ko/hooks#disable-or-remove-hooks)가 적용된 후 관리형 설정 외부에서 `disableAllHooks`가 `true`인 경우, Claude Code는 관리형 설정의 `statusLine`만 실행하며, 관리형 `statusLine`이 없으면 상태줄이 비활성화됩니다. 설정을 제거하거나 이를 설정하는 파일에서 `false`로 설정하여 다시 활성화합니다. [`disableAllHooks`](/docs/ko/settings-reference#disableallhooks)를 참조합니다.

1201* 조직에서 관리되는 설정에 `allowManagedHooksOnly`를 설정하면 사용자 정의 상태 표시줄이 경고 없이 사라집니다. 관리되는 설정의 `statusLine` 값에서만 상태 표시줄을 가져올 수 있습니다. [`allowManagedHooksOnly`에서 실행되는 항목](/docs/ko/settings-reference#what-runs-under-allowmanagedhooksonly)에서 전체 동작을 확인하고 이 설정이 사용자에게 적용되는지 관리자에게 문의합니다.1234* 조직에서 관리형 설정에 `allowManagedHooksOnly`를 설정하면 사용자 정의 상태줄이 경고 없이 사라집니다. 관리형 설정의 `statusLine` 값에서만 상태줄을 가져올 수 있습니다. [`allowManagedHooksOnly`에서 실행되는 항목](/docs/ko/settings-reference#what-runs-under-allowmanagedhooksonly)에서 전체 동작을 확인하고 이 설정이 사용자에게 적용되는지 관리자에게 문의합니다.

1202* `claude --debug`를 실행하여 모든 상태 표시줄 호출에서 스크립트의 stderr를 기록하고 세션의 첫 번째 호출에서 종료 코드를 기록합니다1235* `claude --debug`를 실행하여 모든 상태줄 호출에서 스크립트의 stderr를 기록하고 세션의 첫 번째 호출에서 종료 코드를 기록합니다

1203* Claude에 설정 파일을 읽고 `statusLine` 명령을 직접 실행하도록 요청하여 오류를 표시합니다1236* Claude에 설정 파일을 읽고 `statusLine` 명령을 직접 실행하도록 요청하여 오류를 표시합니다

1204 1237 

1205**상태 표시줄이 `--` 또는 빈 값을 표시함**1238<h3 id="status-line-shows-or-empty-values">

1239 상태줄이 `--` 또는 빈 값을 표시함

1240</h3>

1241 

1242필드는 첫 번째 API 응답이 완료되기 전에 `null`일 수 있으므로, jq의 `// 0`과 같은 폴백으로 스크립트에서 null 값을 처리합니다. 여러 메시지 후에도 값이 비어 있으면 Claude Code를 다시 시작합니다.

1206 1243 

1207* 필드는 첫 번째 API 응답이 완료되기 전에 `null`일 수 있습니다1244<h3 id="context-percentage-shows-unexpected-values">

1208* jq의 `// 0`과 같은 폴백으로 스크립트에서 null 값을 처리합니다1245 컨텍스트 백분율이 예상치 못한 값을 표시함

1209* 여러 메시지 후에도 값이 비어 있으면 Claude Code를 다시 시작합니다1246</h3>

1210 1247 

1211**컨텍스트 백분율이 예상치 못한 값을 표시함**1248상태줄은 마지막 API 응답의 개수를 보고하는 반면, `/context`는 해당 응답 이후 추가된 메시지에 대한 추정값을 추가하므로, 다음 응답까지 `/context`가 더 높게 읽을 수 있습니다. 가장 간단한 정확한 컨텍스트 상태를 위해 `used_percentage`를 사용합니다. `used_percentage`의 계산식은 [컨텍스트 윈도우 필드](#context-window-fields)를 참조합니다.

1212 1249 

1213* 가장 간단한 정확한 컨텍스트 상태를 위해 `used_percentage`를 사용합니다1250<h3 id="osc-8-links-not-clickable">

1214* 상태 표시줄은 마지막 API 응답의 개수를 보고하는 반면, `/context`는 해당 응답 이후 추가된 메시지에 대한 추정값을 추가하므로, 다음 응답까지 `/context`가 더 높게 읽을 수 있습니다1251 OSC 8 링크를 클릭할 수 없음

1252</h3>

1215 1253 

1216**OSC 8 링크를 클릭할 수 없음**1254링크를 클릭할 수 있는지 여부는 터미널, Claude Code가 해당 터미널에서 하이퍼링크 지원을 감지하는지 여부, SSH 또는 tmux가 이스케이프 시퀀스를 제거하는지 여부, 그리고 스크립트가 이를 출력하는 방식에 따라 달라집니다:

1217 1255 

1218* 터미널이 OSC 8 하이퍼링크를 지원하는지 확인합니다(iTerm2, Kitty, WezTerm)1256* 터미널이 OSC 8 하이퍼링크를 지원하는지 확인합니다(iTerm2, Kitty, WezTerm)

1219 1257 


1235 1273 

1236* `\e]8;;`과 같은 리터럴 텍스트로 이스케이프 시퀀스가 나타나면 `echo -e` 대신 `printf '%b'`를 사용하여 더 안정적인 이스케이프 처리를 합니다1274* `\e]8;;`과 같은 리터럴 텍스트로 이스케이프 시퀀스가 나타나면 `echo -e` 대신 `printf '%b'`를 사용하여 더 안정적인 이스케이프 처리를 합니다

1237 1275 

1238**이스케이프 시퀀스로 인한 디스플레이 결함**1276<h3 id="display-glitches-with-escape-sequences">

1277 이스케이프 시퀀스로 인한 디스플레이 결함

1278</h3>

1279 

1280복잡한 이스케이프 시퀀스(ANSI 색상, OSC 8 링크)는 다른 UI 업데이트와 겹치면 가끔 손상된 출력을 유발할 수 있습니다. 이스케이프 코드가 있는 다중 줄 상태줄은 일반 텍스트 단일 줄보다 렌더링 문제가 더 발생하기 쉽습니다.

1281 

1282손상된 텍스트가 보이면 스크립트를 일반 텍스트 출력으로 단순화해 봅니다.

1283 

1284<h3 id="workspace-trust-required">

1285 워크스페이스 신뢰 필요

1286</h3>

1239 1287 

1240* 복잡한 이스케이프 시퀀스(ANSI 색상, OSC 8 링크)는 다른 UI 업데이트와 겹치면 가끔 손상된 출력을 유발할 수 있습니다1288워크스페이스 신뢰 대화 상자를 수락하기 전까지 상태줄은 공백으로 유지됩니다. `statusLine`이 셸 명령을 실행하므로 Claude Code는 [설정 파일의 훅과 동일한 워크스페이스 신뢰 규칙](/docs/ko/permissions#what-runs-before-you-trust-a-folder)에서 이를 실행합니다. 해당 폴더에 대한 대화 상자를 수락하거나, 신뢰 범위가 해당 폴더까지 확장되는 상위 디렉토리에 대한 대화 상자를 수락하면 충분합니다.

1241* 손상된 텍스트가 보이면 스크립트를 일반 텍스트 출력으로 단순화해 봅니다

1242* 이스케이프 코드가 있는 다중 줄 상태 표시줄은 일반 텍스트 단일 줄보다 렌더링 문제가 더 발생하기 쉽습니다

1243 1289 

1244**워크스페이스 신뢰 필요**1290그때까지 `claude --debug`는 `Status line command skipped: workspace trust not accepted`를 기록합니다. Claude Code를 다시 시작하고 신뢰 대화 상자를 수락하여 활성화합니다.

1245 1291 

1246* `statusLine`이 셸 명령을 실행하므로 Claude Code는 [설정 파일의 훅과 동일한 워크스페이스 신뢰 규칙](/docs/ko/permissions#what-runs-before-you-trust-a-folder)에서 실행합니다. 폴더에 대한 대화를 수락하거나 신뢰가 이를 확장하는 상위 디렉토리를 수락하면 충분합니다.1292<h3 id="script-errors-or-hangs">

1247* 그때까지 상태 표시줄은 공백으로 유지되며, `claude --debug`는 `Status line command skipped: workspace trust not accepted`를 기록합니다. Claude Code를 다시 시작하고 신뢰 대화를 수락하여 활성화합니다.1293 스크립트 오류 또는 중단

1294</h3>

1248 1295 

1249**스크립트 오류 또는 중단**1296Claude Code는 스크립트가 코드 0으로 종료된 후에만 스크립트의 출력을 표시합니다:

1250 1297 

1251* 0이 아닌 코드로 종료되거나 출력을 생성하지 않는 스크립트는 상태 표시줄을 공백으로 만듭니다1298* 0이 아닌 코드로 종료되거나 출력을 생성하지 않는 스크립트는 상태줄을 공백으로 만듭니다

1252* 느린 스크립트는 완료될 때까지 상태 표시줄이 업데이트되지 않도록 차단합니다. 오래된 출력을 피하려면 스크립트를 빠르게 유지합니다1299* 느린 스크립트는 완료될 때까지 상태줄이 업데이트되지 않도록 차단합니다. 오래된 출력을 피하려면 스크립트를 빠르게 유지합니다.

1253* 느린 스크립트가 실행 중인 동안 새 업데이트가 트리거되면 진행 중인 스크립트가 취소됩니다1300* 느린 스크립트가 실행 중인 동안 새 업데이트가 트리거되면 진행 중인 스크립트가 취소됩니다

1254* 구성하기 전에 모의 입력으로 스크립트를 독립적으로 테스트합니다1301* 구성하기 전에 모의 입력으로 스크립트를 독립적으로 테스트합니다

1255 1302 

1256**알림이 상태 표시줄 행을 공유함**1303<h3 id="notifications-share-the-status-line-row">

1304 알림이 상태줄 행을 공유함

1305</h3>

1257 1306 

1258[전체 화면 렌더링](/docs/ko/fullscreen) 외부에서 Claude Code는 상태 표시줄과 동일한 행에 알림을 표시합니다. 전체 화면 렌더링에서 Claude Code는 알림에 자체 행을 제공합니다.1307[전체 화면 렌더링](/docs/ko/fullscreen) 외부에서 Claude Code는 상태줄과 동일한 행에 알림을 표시합니다. 전체 화면 렌더링에서 Claude Code는 알림에 자체 행을 제공합니다.

1259 1308 

1260* MCP 서버 오류 및 자동 업데이트와 같은 시스템 알림은 행의 오른쪽에 표시됩니다. 컨텍스트 부족 경고와 같은 일시적 알림도 이 영역을 순환합니다.1309* MCP 서버 오류 및 자동 업데이트와 같은 시스템 알림은 행의 오른쪽에 표시됩니다. 컨텍스트 부족 경고와 같은 일시적 알림도 이 영역을 순환합니다.

1261* 자세한 모드를 활성화하면 이 영역에 토큰 카운터가 추가됩니다1310* 자세한 모드를 활성화하면 이 영역에 토큰 카운터가 추가됩니다

1262* 좁은 터미널에서 이러한 알림이 상태 표시줄 출력을 자를 수 있습니다1311* 좁은 터미널에서 이러한 알림이 상태줄 출력을 자를 수 있습니다

sub-agents.md +2 −0

Details

3793. [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/ko/model-config#environment-variables) 환경 변수. 모델 별칭 또는 모델 ID로 설정할 때3793. [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/ko/model-config#environment-variables) 환경 변수. 모델 별칭 또는 모델 ID로 설정할 때

3804. 주 대화의 모델3804. 주 대화의 모델

381 381 

382설치된 [mod](/docs/ko/plugins/mods/overview)가 자체 [`agent.spawn`](/docs/ko/plugins/mods/reference#subagents) 훅에서 모델을 설정하면, Claude Code는 호출별 매개변수 대신 해당 모델을 사용합니다.

383 

382두 가지 경우에, 호출별 매개변수 또는 프론트매터의 `opus`와 같은 패밀리 별칭은 [별칭이 가리키는 버전](/docs/ko/model-config#model-aliases) 대신 주 대화의 모델로 확인됩니다:384두 가지 경우에, 호출별 매개변수 또는 프론트매터의 `opus`와 같은 패밀리 별칭은 [별칭이 가리키는 버전](/docs/ko/model-config#model-aliases) 대신 주 대화의 모델로 확인됩니다:

383 385 

384* **주 대화의 모델이 해당 패밀리에 속함**: 서브에이전트는 주 대화의 정확한 모델(모든 `[1m]` 접미사 포함)에서 실행되므로 주 대화와 동일한 [확장 컨텍스트](/docs/ko/model-config#extended-context) 윈도우를 얻습니다.386* **주 대화의 모델이 해당 패밀리에 속함**: 서브에이전트는 주 대화의 정확한 모델(모든 `[1m]` 접미사 포함)에서 실행되므로 주 대화와 동일한 [확장 컨텍스트](/docs/ko/model-config#extended-context) 윈도우를 얻습니다.

Details

203 백그라운드 명령이 중지될 때203 백그라운드 명령이 중지될 때

204</h4>204</h4>

205 205 

206[포그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)가 시작한 명령은 해당 서브에이전트의 실행이 끝날 때 중지됩니다. 완료되었든, 실패했든, 또는 중단되었든 상관없습니다. 주 대화 또는 백그라운드 서브에이전트가 시작한 명령은 최종 응답 후에도 계속 실행되며, 종료되거나, 중지되거나, [시간 제한](#time-limit-for-background-commands)에 도달할 때까지 계속됩니다. `-p` 플래그가 있는 비대화형 모드에서, [백그라운드 명령은 실행의 최종 결과 직후에 종료됩니다](/docs/ko/headless#background-tasks-at-exit).206[포그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)가 시작한 명령은 해당 서브에이전트의 실행이 끝날 때 중지됩니다. 완료되었든, 실패했든, 또는 중단되었든 상관없습니다. 주 대화 또는 백그라운드 서브에이전트가 시작한 명령은 최종 응답 후에도 계속 실행되며, 종료되거나, 중지되거나, [시간 제한](#time-limit-for-background-commands)에 도달할 때까지 계속됩니다.

207 

208주 대화가 시작한 명령이 아직 실행 중인 동안, `-p` 플래그를 사용한 비대화형 모드의 실행은 해당 명령이 종료되거나 시간 제한에 도달할 때까지 [결과 이후에도 열린 상태로 유지됩니다](/docs/ko/headless#background-tasks-at-exit). 백그라운드 서브에이전트가 시작한 명령은 실행이 종료될 때 중지됩니다.

207 209 

208<h4 id="time-limit-for-background-commands">210<h4 id="time-limit-for-background-commands">

209 백그라운드 명령의 시간 제한211 백그라운드 명령의 시간 제한


218* Claude가 백그라운드에서 시작하는 명령은 30분 또는 `run_in_background`로 전달하는 `timeout`을 받으며, 최대 2시간입니다.220* Claude가 백그라운드에서 시작하는 명령은 30분 또는 `run_in_background`로 전달하는 `timeout`을 받으며, 최대 2시간입니다.

219* 포그라운드에서 시작한 후 백그라운드로 이동하는 명령(예: 타임아웃 시)은 이동 시점부터 30분을 받습니다.221* 포그라운드에서 시작한 후 백그라운드로 이동하는 명령(예: 타임아웃 시)은 이동 시점부터 30분을 받습니다.

220 222 

223프롬프트를 `--input-format stream-json`이 아닌 텍스트로 전달하는 `-p` 플래그 실행에서는, 실행이 [결과 이후 백그라운드 명령을 기다리기](/docs/ko/headless#background-tasks-at-exit) 때문에 두 기본값 모두 30분이 아닌 10분입니다.

224 

221백그라운드 명령이 시간 제한에 도달하면, Claude Code는 이를 중지하고 Claude에 이유를 알립니다. Claude는 작업이 여전히 필요하면 더 긴 `timeout`으로 명령을 다시 시작할 수 있습니다. 중지 알림은 `Background command "<description>" was stopped after reaching its background time limit`를 읽습니다.225백그라운드 명령이 시간 제한에 도달하면, Claude Code는 이를 중지하고 Claude에 이유를 알립니다. Claude는 작업이 여전히 필요하면 더 긴 `timeout`으로 명령을 다시 시작할 수 있습니다. 중지 알림은 `Background command "<description>" was stopped after reaching its background time limit`를 읽습니다.

222 226 

223<h4 id="raise-the-time-limit-for-background-commands">227<h4 id="raise-the-time-limit-for-background-commands">

224 백그라운드 명령의 시간 제한 높이기228 백그라운드 명령의 시간 제한 높이기

225</h4>229</h4>

226 230 

227두 개의 [환경 변수](/docs/ko/env-vars)는 Bash 및 PowerShell 명령 모두에 대해 이러한 제한을 높입니다. 둘 다 밀리초를 사용하며, 어느 것도 제한을 단축할 수 없습니다. 더 낮은 값은 30분 기본값과 2시간 최대값을 그대로 둡니다.231두 개의 [환경 변수](/docs/ko/env-vars)는 Bash 및 PowerShell 명령 모두에 대해 이러한 제한을 높입니다. 둘 다 밀리초를 사용하며, 어느 것도 제한을 단축할 수 없습니다. 더 낮은 값은 기본값과 2시간 최대값을 그대로 둡니다.

228 232 

229* `BASH_DEFAULT_TIMEOUT_MS`를 `1800000` 이상으로 설정하여 30분 기본값을 해당 값으로 바꿉니다. Claude가 `timeout` 없이 시작하는 명령과 이동된 명령 모두에 적용됩니다.233* `BASH_DEFAULT_TIMEOUT_MS`를 `1800000` 이상으로 설정하여 30분 기본값을 해당 값으로 바꿉니다. Claude가 `timeout` 없이 시작하는 명령과 이동된 명령 모두에 적용됩니다. 프롬프트를 텍스트로 전달하는 `-p` 실행에서는 `600000`을 초과하는 모든 값이 10분 기본값을 대체합니다.

230* `BASH_MAX_TIMEOUT_MS`를 `7200000` 이상으로 설정하여 2시간 최대값을 해당 값으로 높입니다. `BASH_DEFAULT_TIMEOUT_MS`를 `7200000` 이상으로 설정하면 최대값을 동일한 방식으로 높입니다.234* `BASH_MAX_TIMEOUT_MS`를 `7200000` 이상으로 설정하여 2시간 최대값을 해당 값으로 높입니다. `BASH_DEFAULT_TIMEOUT_MS`를 `7200000` 이상으로 설정하면 최대값을 동일한 방식으로 높입니다.

231 235 

232<h4 id="foreground-commands-that-move-to-the-background">236<h4 id="foreground-commands-that-move-to-the-background">


285 289 

286Bash로 파일을 보는 것은 명령이 `cat`, `nl`, `bat`, `batcat`, `head`, `tail`, `sed -n 'X,Yp'`, `grep`, `egrep`, `fgrep` 또는 `rg`일 때 단일 파일에 대해 파이프나 리디렉션이 없을 때 편집 전 읽기 요구 사항을 충족합니다. 파이프된 출력 및 기타 Bash 명령은 편집 전 읽기 검사에 계산되지 않습니다.290Bash로 파일을 보는 것은 명령이 `cat`, `nl`, `bat`, `batcat`, `head`, `tail`, `sed -n 'X,Yp'`, `grep`, `egrep`, `fgrep` 또는 `rg`일 때 단일 파일에 대해 파이프나 리디렉션이 없을 때 편집 전 읽기 요구 사항을 충족합니다. 파이프된 출력 및 기타 Bash 명령은 편집 전 읽기 검사에 계산되지 않습니다.

287 291 

288Bash로 파일을 보는 것은 권한이 아닌 편집 적격성에만 영향을 미칩니다. [Read 및 Edit 권한 규칙](/docs/ko/permissions#read-and-edit)에서 `Read` 및 `Edit` 거부 규칙이 적용되는 Bash 명령을 확인하십시오.292Claude가 이 방식으로 파일을 볼 때, Claude Code는 해당 파일에 적용되는 [하위 디렉터리 `CLAUDE.md`](/docs/ko/memory#how-claude-md-files-load) 및 [경로 범위 규칙](/docs/ko/memory#path-specific-rules)도 로드합니다. [Read 및 Edit 권한 규칙](/docs/ko/permissions#read-and-edit)에서 `Read` 및 `Edit` 거부 규칙이 적용되는 Bash 명령을 확인하십시오.

289 293 

290<h2 id="endconversation-tool-behavior">294<h2 id="endconversation-tool-behavior">

291 EndConversation 도구 동작295 EndConversation 도구 동작


709검색 백엔드는 구성할 수 없습니다. 다른 공급자로 검색하려면 검색 도구를 노출하는 [MCP 서버](/docs/ko/mcp)를 추가합니다.713검색 백엔드는 구성할 수 없습니다. 다른 공급자로 검색하려면 검색 도구를 노출하는 [MCP 서버](/docs/ko/mcp)를 추가합니다.

710 714 

711<Note>715<Note>

712 WebSearch는 Claude API 및 [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws)에서 사용할 수 있습니다. Microsoft Foundry에서는 [Anthropic에서 호스팅하는 배포](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)가 필요합니다. Azure에서 호스팅하는 배포는 서버 측 도구를 지원하지 않으므로 WebSearch 호출이 실패합니다. Google Cloud의 Agent Platform에서는 Opus, Sonnet, Haiku를 포함한 Claude 4 이상 모델에서 작동합니다. Amazon Bedrock은 서버 측 웹 검색 도구를 노출하지 않습니다.716 WebSearch는 Claude API, [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws), Microsoft Foundry에서 사용할 수 있습니다. Google Cloud의 Agent Platform에서는 Opus, Sonnet, Haiku를 포함한 Claude 4 이상 모델에서 작동합니다. Amazon Bedrock은 서버 측 웹 검색 도구를 노출하지 않습니다.

713</Note>717</Note>

714 718 

715<h3 id="session-search-limit">719<h3 id="session-search-limit">

716 세션 검색 제한720 세션 검색 제한

717</h3>721</h3>

718 722 

719세션은 최대 200개의 WebSearch 호출을 수행할 수 있으며, 이는 주 대화와 생성하는 모든 [하위 에이전트](/docs/ko/sub-agents)에서 계산되므로 병렬 연구 팬아웃에서 수행한 검색도 동일한 제한에 포함됩니다. 이 제한에는 Claude Code v2.1.212 이상이 필요합니다. Claude가 제한에 도달하면 추가 호출은 재시도를 유도할 오류 대신 Claude에 이미 수집한 정보로 계속 진행하도록 지시하는 알림을 반환합니다. 사용자는 알림을 볼 수 없습니다. 제한된 호출은 대화에 아무것도 하지 않은 검색으로 표시되며, Claude에 더 많은 검색이 필요한 경우 알림은 제한을 높이도록 요청하도록 지시합니다.723대화형 터미널 세션에는 200개의 WebSearch 호출 제한이 있습니다. 주 대화와 병렬 연구 팬아웃 같은 [서브에이전트](/docs/ko/sub-agents)에서 수행한 검색은 동일한 제한에 합산됩니다. 이 제한에는 Claude Code v2.1.212 이상이 필요합니다.

724 

725세션이 제한에 도달한 동안에는 검색이 대화에 아무것도 하지 않은 호출로 표시됩니다. Claude는 이미 수집한 정보로 계속 진행하고, 더 많은 검색이 필요한 경우 사용자에게 제한을 높이도록 요청하라는 알림을 받습니다.

726 

727더 많은 검색을 하려면 상한을 높이거나, 제한이 다시 채워질 때까지 기다리거나, 새 대화를 시작합니다:

720 728 

721[`CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION`](/docs/ko/env-vars) 환경 변수를 설정하여 제한을 변경합니다. 양의 정수를 허용하므로 제한을 높일 수 있지만 끌 수는 없습니다. [`/clear`](/docs/ko/commands#all-commands)를 실행하면 개수가 재설정됩니다. 실행 중인 워크플로우와 같이 여전히 [하위 에이전트](/docs/ko/sub-agents)를 생성할 수 있는 작업이 명확한 후에도 남아 있으면 개수가 대신 이월됩니다.729* **상한 높이기**: [`CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION`](/docs/ko/env-vars#variables) 환경 변수를 `500`과 같은 양의 정수로 설정합니다. 상한은 높일 수 있지만 끌 수는 없습니다.

730* **다시 채워질 때까지 기다리기**: Claude Code v2.1.290 이상에서는 대화형 터미널 세션의 제한이 시간당 약 100회 호출씩 다시 채워집니다. 속도를 변경하려면 [`CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR`](/docs/ko/env-vars#variables)를 `50`과 같은 시간당 호출 수로 설정합니다.

731* **새 대화 시작하기**: Claude Code 프롬프트에서 [`/clear`](/docs/ko/commands#all-commands)를 실행해도 개수가 재설정됩니다. 실행 중인 워크플로와 같이 여전히 서브에이전트를 생성할 수 있는 작업이 초기화 후에도 남아 있으면 개수가 대신 이월됩니다.

722 732 

723<h2 id="write-tool-behavior">733<h2 id="write-tool-behavior">

724 Write 도구 동작734 Write 도구 동작

vs-code.md +1 −0

Details

623* **Claude의 응답**: 확장 프로그램은 각 응답을 완료되었을 때 한 번 알리고, 텍스트가 스트리밍되는 동안 침묵을 유지합니다. 화면 읽기 프로그램은 코드 블록을 줄 수 요약으로 읽고, 링크를 레이블로 읽으며, 표를 셀 단위로 읽습니다. 전체 응답은 기록에서 읽을 수 있는 상태로 유지됩니다.623* **Claude의 응답**: 확장 프로그램은 각 응답을 완료되었을 때 한 번 알리고, 텍스트가 스트리밍되는 동안 침묵을 유지합니다. 화면 읽기 프로그램은 코드 블록을 줄 수 요약으로 읽고, 링크를 레이블로 읽으며, 표를 셀 단위로 읽습니다. 전체 응답은 기록에서 읽을 수 있는 상태로 유지됩니다.

624* **권한 요청 및 질문**: 확장 프로그램은 권한 프롬프트가 나타날 때 요청을 알리고, Claude가 사용하려는 도구의 이름을 지정합니다. Claude가 질문을 할 때와 Claude가 계획을 완료하고 검토를 기다릴 때도 같은 방식으로 알립니다.624* **권한 요청 및 질문**: 확장 프로그램은 권한 프롬프트가 나타날 때 요청을 알리고, Claude가 사용하려는 도구의 이름을 지정합니다. Claude가 질문을 할 때와 Claude가 계획을 완료하고 검토를 기다릴 때도 같은 방식으로 알립니다.

625* **상태 변경**: 확장 프로그램은 Claude가 작업을 시작할 때, Claude가 입력을 기다릴 준비가 되었을 때, Claude Code가 대화를 압축하기 시작할 때를 알립니다.625* **상태 변경**: 확장 프로그램은 Claude가 작업을 시작할 때, Claude가 입력을 기다릴 준비가 되었을 때, Claude Code가 대화를 압축하기 시작할 때를 알립니다.

626* **대기 중인 메시지**: Claude가 작업하는 동안 메시지를 보내면, 확장 프로그램은 해당 메시지에 대해 "Message queued."라고 알립니다.

626* **오류 및 모델 프롬프트**: 확장 프로그램은 대화의 오류를 알리고, [사용량-크레딧 동의 프롬프트](/docs/ko/model-config#fable-and-usage-credits) 또는 [플래그된 요청 프롬프트](/docs/ko/model-config#ask-before-switching)가 나타날 때를 알립니다.627* **오류 및 모델 프롬프트**: 확장 프로그램은 대화의 오류를 알리고, [사용량-크레딧 동의 프롬프트](/docs/ko/model-config#fable-and-usage-credits) 또는 [플래그된 요청 프롬프트](/docs/ko/model-config#ask-before-switching)가 나타날 때를 알립니다.

627 628 

628Claude가 작업하는 동안, 화면 읽기 프로그램은 진행률 스피너의 애니메이션 대신 텍스트 레이블을 읽습니다.629Claude가 작업하는 동안, 화면 읽기 프로그램은 진행률 스피너의 애니메이션 대신 텍스트 레이블을 읽습니다.

Details

12 12 

13클라우드 세션은 사용자의 머신 대신 기본적으로 Anthropic 관리 클라우드 인프라에서 Claude Code를 실행합니다. 이 빠른 시작은 브라우저에서 [claude.ai/code](https://claude.ai/code)에서 시작합니다. Claude 모바일 앱, Desktop 앱, 또는 터미널에서 `claude --cloud`를 사용하여 시작할 수도 있습니다.13클라우드 세션은 사용자의 머신 대신 기본적으로 Anthropic 관리 클라우드 인프라에서 Claude Code를 실행합니다. 이 빠른 시작은 브라우저에서 [claude.ai/code](https://claude.ai/code)에서 시작합니다. Claude 모바일 앱, Desktop 앱, 또는 터미널에서 `claude --cloud`를 사용하여 시작할 수도 있습니다.

14 14 

15[시작하기](#connect-github)를 위해 GitHub 저장소가 필요합니다. Claude는 이를 격리된 가상 머신으로 복제하고, 변경 사항을 만들고, 검토할 수 있도록 브랜치를 푸시합니다. 세션은 기기 간에 지속되므로, 노트북에서 시작한 작업을 나중에 휴대폰에서 검토할 수 있습니다.15[시작하기](#connect-github)를 위해 GitHub 저장소가 필요합니다. Claude는 이를 격리된 가상 머신으로 복제하고, 변경 사항을 만들고, 검토할 수 있도록 브랜치를 푸시합니다. 세션은 기기 간에 지속되므로, 노트북에서 시작한 작업을 나중에 휴대폰에서 검토할 수 있습니다. 각 세션은 나머지 Claude 및 Claude Code 사용량과 함께 플랜의 사용 한도에 포함되며, 클라우드 VM에 대한 별도 요금은 없습니다.

16 16 

17클라우드 세션은 다음에 적합합니다:17클라우드 세션은 다음에 적합합니다:

18 18