SpyBara
Go Premium

Documentation 2026-11-08 22:58 UTC to 2026-11-09 23:02 UTC

35 files changed +481 −149. View all changes and history on the product overview
2026
Thu 12 21:00 Wed 11 22:59 Tue 10 21:57 Mon 9 23:02 Sun 8 22:58 Sat 7 23:58 Fri 6 23:01 Thu 5 23:03 Wed 4 23:59 Tue 3 23:58 Mon 2 23:57 Sun 1 23:57

advisor.md +4 −3

Details

98| Opus 4.7 또는 Opus 4.8 | Fable, Opus 4.7 이상, Sonnet 5.5 |98| Opus 4.7 또는 Opus 4.8 | Fable, Opus 4.7 이상, Sonnet 5.5 |

99| Sonnet 5.5 | Fable, Opus 5 이상, Sonnet 5.5 |99| Sonnet 5.5 | Fable, Opus 5 이상, Sonnet 5.5 |

100| Opus 5 또는 Opus 5.5 | Fable, Opus 5 이상 |100| Opus 5 또는 Opus 5.5 | Fable, Opus 5 이상 |

101| Fable 5 | Fable 5.1 또는 Fable 5 |101| Fable 5 | Fable 5.2, Fable 5.1 또는 Fable 5 |

102| Fable 5.1 | Fable 5.1 |102| Fable 5.1 | Fable 5.2 또는 Fable 5.1 |

103| Fable 5.2 | Fable 5.2 |

103 104 

104Fable 5.1은 Claude Code v2.1.257 이상이 필요합니다. Fable 모델은 [Fable 액세스](https://code.claude.com/docs/ko/model-config.md#work-with-fable)가 필요합니다. Opus 4.7 또는 Opus 4.8 주 모델의 조언자로 Sonnet 5.5를 사용하려면 Claude Code v2.1.287 이상이 필요합니다. Haiku 5.5를 주 모델 또는 조언자로 사용하려면 Claude Code v2.1.293 이상이 필요합니다.105Fable 5.2는 Claude Code v2.1.321 이상이 필요하며, Fable 5.1은 v2.1.257 이상이 필요합니다. Fable 모델은 [Fable 액세스](https://code.claude.com/docs/ko/model-config.md#work-with-fable)가 필요합니다. Opus 4.7 또는 Opus 4.8 주 모델의 조언자로 Sonnet 5.5를 사용하려면 Claude Code v2.1.287 이상이 필요합니다. Haiku 5.5를 주 모델 또는 조언자로 사용하려면 Claude Code v2.1.293 이상이 필요합니다.

105 106 

106조언자를 `fable`, `opus`, 또는 `sonnet`으로 설정하세요. 이러한 별칭은 각 모델 제품군에 대한 Claude Code의 [기본 제공 기본 버전](https://code.claude.com/docs/ko/model-config.md#model-aliases)으로 확인되며, 새로운 Claude Code 릴리스와 함께 업데이트됩니다. `claude-opus-5-5` 또는 `claude-haiku-5-5`와 같은 전체 모델 ID를 전달할 수도 있습니다. Haiku 4.5는 조언자를 호출할 수 있지만 조언자로 작동할 수는 없습니다.107조언자를 `fable`, `opus`, 또는 `sonnet`으로 설정하세요. 이러한 별칭은 각 모델 제품군에 대한 Claude Code의 [기본 제공 기본 버전](https://code.claude.com/docs/ko/model-config.md#model-aliases)으로 확인되며, 새로운 Claude Code 릴리스와 함께 업데이트됩니다. `claude-opus-5-5` 또는 `claude-haiku-5-5`와 같은 전체 모델 ID를 전달할 수도 있습니다. Haiku 4.5는 조언자를 호출할 수 있지만 조언자로 작동할 수는 없습니다.

107 108 

Details

56 56 

57### 날씨 도구 예제57### 날씨 도구 예제

58 58 

59이 예제는 `get_temperature` 도구를 정의하고 MCP 서버에 래핑하며, 서버를 `query`에 전달하지는 않습니다. 도구를 실행하려면 아래의 [사용자 정의 도구 호출](#call-a-custom-tool)을 참조하세요.59이 예제는 `get_temperature` 도구를 정의하고 MCP 서버에 래핑하며, 서버를 `query`에 전달하지는 않습니다. 도구를 실행하려면 [사용자 정의 도구 호출](#call-a-custom-tool)을 참조하세요.

60 60 

61```python Python theme={null}61```python Python theme={null}

62from typing import Annotated, Any62from typing import Annotated, Any


148* **TypeScript**: Zod 필드에 `.optional()`을 추가합니다.148* **TypeScript**: Zod 필드에 `.optional()`을 추가합니다.

149* **Python**: 딕셔너리 스키마는 모든 키를 필수로 요구합니다. JSON 스키마 형식을 사용하고, 매개변수를 `required`에서 제외한 뒤 `args.get()`으로 읽습니다. 선택적 키가 있는 타입 지정 스키마는 [TypedDict 클래스](https://code.claude.com/docs/ko/agent-sdk/python.md#input-schema-options)를 참조하세요.149* **Python**: 딕셔너리 스키마는 모든 키를 필수로 요구합니다. JSON 스키마 형식을 사용하고, 매개변수를 `required`에서 제외한 뒤 `args.get()`으로 읽습니다. 선택적 키가 있는 타입 지정 스키마는 [TypedDict 클래스](https://code.claude.com/docs/ko/agent-sdk/python.md#input-schema-options)를 참조하세요.

150 150 

151[아래의 `get_precipitation_chance` 도구](#add-more-tools)는 두 패턴을 모두 보여줍니다.151[`get_precipitation_chance` 도구](#add-more-tools)는 두 패턴을 모두 보여줍니다.

152 152 

153### 사용자 정의 도구 호출153### 사용자 정의 도구 호출

154 154 

155`mcpServers` 옵션을 통해 생성한 MCP 서버를 `query`에 전달하고, 도구가 권한 프롬프트 없이 실행되도록 각 도구의 [정규화된 이름](https://code.claude.com/docs/ko/agent-sdk/mcp.md#tool-naming-convention)을 `allowedTools`에 나열합니다. 이 이름은 `mcp__{server_name}__{tool_name}`이며, 여기서 `{server_name}`은 `mcpServers`에서 서버에 지정한 키입니다. 키에 `.`이나 공백과 같은 문자가 포함되어 있으면 `{server_name}`을 작성할 때 해당 문자를 `_`로 바꿉니다.155사용자 정의 도구를 호출하려면 다음 단계를 따르세요:

156 

1571. `mcpServers` 옵션을 사용하여 생성한 MCP 서버를 `query`에 전달합니다.

1582. 도구 호출을 [사전 승인](https://code.claude.com/docs/ko/agent-sdk/permissions.md#allow-and-deny-rules)하려면 도구의 [정규화된 이름](https://code.claude.com/docs/ko/agent-sdk/mcp.md#tool-naming-convention)을 `allowedTools`에 나열합니다. 이 이름은 `mcp__{server_name}__{tool_name}` 규칙을 따르며, 여기서 `{server_name}`은 `mcpServers`에서 서버에 지정한 키입니다. 키에 `.`이나 공백과 같은 문자가 포함되어 있으면 `{server_name}`을 작성할 때 해당 문자를 `_`로 바꿉니다.

156 159 

157이 스니펫들은 [날씨 도구 예제](#weather-tool-example)의 `weatherServer`를 재사용하여 Claude에게 특정 위치의 날씨를 묻습니다.160이 스니펫들은 [날씨 도구 예제](#weather-tool-example)의 `weatherServer`를 재사용하여 Claude에게 특정 위치의 날씨를 묻습니다.

158 161 


329| :- | :- | :- |332| :- | :- | :- |

330| `readOnlyHint` | `false` | 도구는 환경을 수정하지 않습니다. 도구를 다른 읽기 전용 도구와 병렬로 호출할 수 있는지 여부를 제어합니다. |333| `readOnlyHint` | `false` | 도구는 환경을 수정하지 않습니다. 도구를 다른 읽기 전용 도구와 병렬로 호출할 수 있는지 여부를 제어합니다. |

331| `destructiveHint` | `true` | 도구는 파괴적인 업데이트를 수행할 수 있습니다. [`always_ask`로 표시](#require-approval-for-specific-tools)하는 모든 도구에는 이 값을 명시적으로 `true`로 설정하세요. |334| `destructiveHint` | `true` | 도구는 파괴적인 업데이트를 수행할 수 있습니다. [`always_ask`로 표시](#require-approval-for-specific-tools)하는 모든 도구에는 이 값을 명시적으로 `true`로 설정하세요. |

332| `idempotentHint` | `false` | 동일한 인수로 반복 호출해도 추가 효과가 없습니다. 정보 제공용입니다. |335| `idempotentHint` | `false` | 동일한 인수로 반복 호출해도 추가 효과가 없습니다. |

333| `openWorldHint` | `true` | 도구는 프로세스 외부의 시스템에 도달합니다. 정보 제공용입니다. |336| `openWorldHint` | `true` | 도구는 프로세스 외부의 시스템에 도달합니다. |

334 337 

335주석은 메타데이터이지 강제 사항이 아닙니다. `readOnlyHint: true`로 표시된 도구도 핸들러가 그렇게 하면 디스크에 쓸 수 있습니다. 주석을 핸들러와 정확하게 유지하세요.338주석은 메타데이터이지 강제 사항이 아닙니다. `readOnlyHint: true`로 표시된 도구도 핸들러가 그렇게 하면 디스크에 쓸 수 있습니다. 주석을 핸들러와 정확하게 유지하세요.

336 339 


373 376 

374### 허용된 도구 구성377### 허용된 도구 구성

375 378 

376`tools` 옵션과 허용/거부 목록은 두 가지 계층에 영향을 미칩니다. 가용성은 Claude의 컨텍스트에 도구가 표시되는지 여부를 제어하고, 권한은 Claude가 호출을 시도한 후 호출이 승인되는지 여부를 제어합니다. `tools`와 단순 이름 `disallowedTools` 항목은 가용성을 변경합니다. `allowedTools`와 범위가 지정된 `disallowedTools` 규칙은 권한을 변경합니다. [작업 추적 도구](https://code.claude.com/docs/ko/agent-sdk/todo-tracking.md#model-availability) 중 하나를 `allowedTools`에 지정하면 Claude Code는 해당 세션에서 작업 추적 도구도 활성화합니다.379`tools`, `allowedTools`, `disallowedTools` 옵션으로 두 가지 계층을 제어합니다.

380 

381* **가용성**: 도구가 Claude의 컨텍스트에 표시되는지 여부입니다. 이를 변경하려면 `tools` 옵션을 사용하거나 `"Bash"`와 같은 기본 제공 도구의 단순 이름을 `disallowedTools`에 나열하십시오.

382* **권한**: Claude가 호출할 때 Claude Code가 해당 호출을 승인하는지 여부입니다. 이를 변경하려면 `allowedTools` 또는 `"Bash(rm *)"`와 같은 범위가 지정된 `disallowedTools` 규칙을 사용하십시오.

377 383 

378| 옵션 | 계층 | 효과 |384| 옵션 | 계층 | 효과 |

379| :- | :- | :- |385| :- | :- | :- |

380| `tools: ["Read", "Grep"]` | 가용성 | 나열된 기본 제공 도구만 Claude의 컨텍스트에 있습니다. 나열되지 않은 기본 제공 도구는 제거됩니다. MCP 도구는 영향을 받지 않습니다. |386| `tools: ["Read", "Grep"]` | 가용성 | 나열된 기본 제공 도구만 Claude의 컨텍스트에 있습니다. 나열되지 않은 기본 제공 도구는 제거됩니다. MCP 도구는 영향을 받지 않습니다. |

381| `tools: []` | 가용성 | 모든 기본 제공 도구가 제거됩니다. Claude는 MCP 도구만 사용할 수 있습니다. |387| `tools: []` | 가용성 | 모든 기본 제공 도구가 제거됩니다. Claude는 MCP 도구만 사용할 수 있습니다. |

382| 허용된 도구 | 권한 | 나열된 도구는 권한 프롬프트 없이 실행됩니다. 다른 나열되지 않은 도구는 계속 사용 가능하며, 호출은 [권한 흐름](https://code.claude.com/docs/ko/agent-sdk/permissions.md)을 거칩니다. |388| 허용된 도구 | 권한 | 나열된 도구는 [어떤 허용 규칙으로도 승인되지 않는 호출](https://code.claude.com/docs/ko/agent-sdk/permissions.md#calls-an-allow-rule-never-approves)을 제외하고 사전 승인됩니다. 목록에서 제외한 도구에 대한 호출은 [권한 흐름](https://code.claude.com/docs/ko/agent-sdk/permissions.md)을 거칩니다. |

383| 거부된 도구 | 둘 다 | `"Bash"`와 같은 단순 도구 이름은 도구를 Claude의 컨텍스트에서 제거하며, `tools`에서 생략하는 것과 동일합니다. `"Bash(rm *)"` 같은 범위가 지정된 규칙은 도구를 컨텍스트에 남겨두고 [작성된 대로](https://code.claude.com/docs/ko/permissions.md#bash-rule-limits) 일치하는 호출만 거부합니다. |389| 거부된 도구 | 둘 다 | `"Bash"`와 같은 기본 제공 도구의 단순 이름은 도구를 Claude의 컨텍스트에서 제거합니다. `"Bash(rm *)"` 같은 범위가 지정된 규칙은 도구를 컨텍스트에 남겨두고 [작성된 대로](https://code.claude.com/docs/ko/permissions.md#bash-rule-limits) 일치하는 호출을 거부합니다. |

384 390 

385기본 제공 도구를 완전히 제거하려면 `tools`에서 생략하거나 `disallowedTools`(Python: `disallowed_tools`)에 단순 이름을 나열하십시오. 둘 다 도구를 컨텍스트 밖에 유지하므로 Claude는 절대 시도하지 않습니다. 범위가 지정된 `disallowedTools` 규칙은 일치하는 호출을 차단하지만 도구를 표시된 상태로 유지하므로 Claude가 시도하는 데 턴을 낭비할 수 있습니다. 전체 평가 순서는 [권한 구성](https://code.claude.com/docs/ko/agent-sdk/permissions.md)을 참조하십시오.391기본 제공 도구를 Claude의 컨텍스트에서 제거하려면 `tools`에서 생략하거나 `disallowedTools`(TypeScript) 또는 `disallowed_tools`(Python)에 단순 이름을 나열하십시오. 전체 평가 순서는 [권한 구성](https://code.claude.com/docs/ko/agent-sdk/permissions.md#how-permissions-are-evaluated)을 참조하십시오.

386 392 

387### 특정 도구에 승인 요구393### 특정 도구에 승인 요구

388 394 


637 643 

638## 구조화된 데이터 반환644## 구조화된 데이터 반환

639 645 

640`structuredContent`는 결과의 선택적 JSON 객체로, `content` 배열과 별도입니다. Claude가 텍스트 문자열이나 이미지에서 구문 분석하는 대신 정확한 필드로 읽을 수 있는 원본 값을 반환하는 데 사용합니다.646`structuredContent`는 결과의 선택적 JSON 객체로, `content` 배열과 별도입니다. Claude가 텍스트 문자열이나 이미지에서 구문 분석하는 대신 정확한 필드로 읽을 수 있는 원본 값을 반환하는 데 사용합니다. Python 핸들러의 경우 [Python의 구조화된 콘텐츠](#structured-content-in-python)를 참조하세요.

641 647 

642`structuredContent`가 설정되면 Claude는 JSON과 `content`의 모든 이미지 또는 리소스 블록을 수신합니다. `content`의 텍스트 블록은 구조화된 데이터를 복제한다고 가정하므로 전달되지 않습니다. 아래 예제는 차트를 이미지 블록으로 렌더링하고 동일한 핸들러의 `structuredContent`에서 뒤에 있는 데이터 포인트를 반환합니다. 스니펫에서 `chartPngBuffer`는 렌더링된 PNG 바이트를 보유하는 `Buffer`입니다.648TypeScript `tool()` 핸들러가 `structuredContent`를 설정하면 Claude는 JSON과 `content`의 이미지 및 리소스 블록을 수신하며, `content`의 텍스트 블록은 Claude에 전달되지 않습니다. 아래 예제는 차트를 이미지 블록으로 렌더링하고 동일한 핸들러의 `structuredContent`에서 뒤에 있는 데이터 포인트를 반환합니다. 스니펫에서 `chartPngBuffer`는 렌더링된 PNG 바이트를 보유하는 `Buffer`입니다.

643 649 

644```typescript TypeScript theme={null}650```typescript TypeScript theme={null}

645return {651return {

Details

205 205 

206### allowedTools로 자동 승인하기206### allowedTools로 자동 승인하기

207 207 

208`allowedTools`를 사용하면 특정 MCP 도구를 자동 승인하여 Claude가 권한 프롬프트 없이 해당 도구를 사용할 수 있습니다.208`allowedTools`를 사용하여 특정 MCP 도구를 자동 승인합니다.

209 209 

210```typescript TypeScript hidelines={1,-1} theme={null}210```typescript TypeScript hidelines={1,-1} theme={null}

211const _ = {211const _ = {

Details

18 18 

19**1. 훅**19**1. 훅**

20 20 

21[훅](https://code.claude.com/docs/ko/agent-sdk/hooks.md)을 실행합니다. 훅은 호출을 즉시 거부하거나 다음 단계로 넘길 수 있습니다. `allow`를 반환하는 훅이라도 아래의 거부(deny) 및 확인(ask) 규칙을 건너뛰지 않으며, 이 규칙들은 훅 결과와 관계없이 평가됩니다.21[훅](https://code.claude.com/docs/ko/agent-sdk/hooks.md)을 실행합니다. 훅은 호출을 즉시 거부하거나 다음 단계로 넘길 수 있습니다. `allow`를 반환하는 훅이라도 deny 규칙 및 ask 규칙 단계를 건너뛰지는 않으며, 이 단계들은 훅 결과와 관계없이 평가됩니다.

22 22 

23또한 `allow`를 반환하는 `PreToolUse` 훅은 `rm -rf ~`처럼 Claude Code가 [중요 경로](https://code.claude.com/docs/ko/permission-modes.md#critical-paths)로 인식하는 대상에 대한 `rm` 또는 `rmdir` 명령을 승인할 수 없습니다. 플랜 모드에서 해당 `allow`가 어떻게 작동하는지는 [플랜 모드의 훅 승인](https://code.claude.com/docs/ko/permissions.md#hook-approvals-in-plan-mode)을 참조하세요.23또한 `allow`를 반환하는 `PreToolUse` 훅은 `rm -rf ~`처럼 Claude Code가 [중요 경로](https://code.claude.com/docs/ko/permission-modes.md#critical-paths)로 인식하는 대상에 대한 `rm` 또는 `rmdir` 명령을 승인할 수 없습니다. 플랜 모드에서 해당 `allow`가 어떻게 작동하는지는 [플랜 모드의 훅 승인](https://code.claude.com/docs/ko/permissions.md#hook-approvals-in-plan-mode)을 참조하세요.

24 24 


58 58 

59**6. canUseTool 콜백**59**6. canUseTool 콜백**

60 60 

61위의 어느 것도 해결하지 못하면 결정을 위해 [`canUseTool` 콜백](https://code.claude.com/docs/ko/agent-sdk/user-input)을 호출합니다. `dontAsk` 모드에서는 이 단계를 건너뛰고 도구가 거부됩니다. 다만 설치한 [mod](https://code.claude.com/docs/ko/plugins/mods/overview.md)는 여전히 [이러한 호출 중 일부](https://code.claude.com/docs/ko/permissions.md#precedence-among-rules-hooks-and-mods)를 승인할 수 있습니다.61이전 단계에서 요청을 해결하지 못하면 결정을 위해 [`canUseTool` 콜백](https://code.claude.com/docs/ko/agent-sdk/user-input)을 호출합니다. `dontAsk` 모드에서는 이 단계를 건너뛰고 도구가 거부됩니다. 다만 설치한 [mod](https://code.claude.com/docs/ko/plugins/mods/overview.md)는 여전히 [이러한 호출 중 일부](https://code.claude.com/docs/ko/permissions.md#precedence-among-rules-hooks-and-mods)를 승인할 수 있습니다.

62 62 

63TypeScript SDK에서 [`permissionPrompts: 'none'`](https://code.claude.com/docs/ko/agent-sdk/typescript#options)을 설정하면 콜백이 이 단계에서 호출되지 않습니다. [`PermissionRequest` hook](https://code.claude.com/docs/ko/hooks#permissionrequest)은 여전히 결정할 기회를 얻으며, 그렇지 않으면 Claude Code가 호출을 거부합니다. 이 옵션에는 Claude Code v2.1.259 이상이 필요합니다.63TypeScript SDK에서 [`permissionPrompts: 'none'`](https://code.claude.com/docs/ko/agent-sdk/typescript#options)을 설정하면 콜백이 이 단계에서 호출되지 않습니다. [`PermissionRequest` hook](https://code.claude.com/docs/ko/hooks#permissionrequest)은 여전히 결정할 기회를 얻으며, 그렇지 않으면 Claude Code가 호출을 거부합니다. 이 옵션에는 Claude Code v2.1.259 이상이 필요합니다.

64 64 


80 80 

81## 허용 및 거부 규칙81## 허용 및 거부 규칙

82 82 

83`allowed_tools` 및 `disallowed_tools` (TypeScript: `allowedTools` / `disallowedTools`)는 위의 평가 흐름에서 허용 및 거부 규칙 목록에 항목을 추가합니다. [작업 추적 도구](https://code.claude.com/docs/ko/agent-sdk/todo-tracking.md#model-availability) 중 하나를 `allowed_tools`에 지정하면 Claude Code는 해당 세션에서 작업 추적 도구도 활성화합니다. `allowed_tools`에 나열되지 않은 다른 도구는 여전히 Claude에서 사용 가능하며, 승인이 필요한 호출은 권한 모드로 넘어갑니다. 거부 규칙은 도구의 이름을 지정하는지 또는 도구 내의 패턴을 범위 지정하는지에 따라 다르게 작동합니다.83`allowedTools` 및 `disallowedTools`(TypeScript) 또는 `allowed_tools` 및 `disallowed_tools`(Python)를 설정하면 Claude Code는 해당 항목을 [권한 평가 흐름](#how-permissions-are-evaluated)의 허용 및 거부 규칙 목록에 추가합니다. `allowed_tools`에 나열되지 않은 다른 도구는 여전히 Claude에서 사용 가능하며, 승인이 필요한 호출은 권한 모드로 넘어갑니다.

84 84 

85| 옵션 | 효과 |85| 옵션 | 효과 |

86| :- | :- |86| :- | :- |

87| `allowed_tools=["Read", "Grep"]` | `Read` 및 `Grep`은 [네트워크 경로에서의 읽기](https://code.claude.com/docs/ko/permissions.md#network-paths)를 제외하고 자동 승인됩니다. 여기에 나열되지 않은 다른 도구는 여전히 존재하며, 승인이 필요한 호출은 권한 모드 및 `canUseTool`로 넘어갑니다. |87| `allowed_tools=["Read", "Grep"]` | `Read` 및 `Grep`은 [네트워크 경로에서의 읽기](https://code.claude.com/docs/ko/permissions.md#network-paths)를 제외하고 자동 승인됩니다. 여기에 나열되지 않은 다른 도구는 여전히 존재하며, 승인이 필요한 호출은 권한 모드 및 `canUseTool`로 넘어갑니다. |

88| `disallowed_tools=["Bash"]` | `Bash` 도구 정의가 요청에서 제거됩니다. Claude는 도구를 보지 못하며 시도할 수 없습니다. |88| `disallowed_tools=["Bash"]` | `Bash` 도구 정의가 요청에서 제거됩니다. |

89| `disallowed_tools=["Bash(rm *)"]` | `Bash`는 사용 가능한 상태로 유지됩니다. `rm *` [작성된 대로](https://code.claude.com/docs/ko/permissions.md#bash-rule-limits) 일치하는 호출은 `bypassPermissions`를 포함한 모든 권한 모드에서 거부됩니다. `/bin/rm`을 포함한 다른 `Bash` 호출은 권한 모드로 넘어갑니다. |89| `disallowed_tools=["Bash(rm *)"]` | `Bash`는 사용 가능한 상태로 유지됩니다. `rm *` [작성된 대로](https://code.claude.com/docs/ko/permissions.md#bash-rule-limits) 일치하는 호출은 `bypassPermissions`를 포함한 모든 권한 모드에서 거부됩니다. `/bin/rm`을 포함한 다른 `Bash` 호출은 권한 모드로 넘어갑니다. |

90| `disallowed_tools=["*"]` | 모든 도구 정의가 요청에서 제거됩니다. 도구 이름 글롭은 거부 규칙에서 지원됩니다: `"*"`는 모든 도구와 일치하고 `"mcp__*"`는 모든 서버의 모든 MCP 도구와 일치합니다. |90| `disallowed_tools=["*"]` | 도구 이름 글롭은 거부 규칙에서 지원됩니다: `"*"`는 모든 도구와 일치하고 `"mcp__*"`는 모든 서버의 모든 MCP 도구와 일치합니다. |

91 91 

92허용 규칙은 리터럴 `mcp__<server>__` 접두사 이후에만 도구 이름 글롭을 허용합니다. 서버 세그먼트는 글롭이 없어야 하므로 규칙이 구성한 특정 서버의 이름을 지정합니다: `mcp__puppeteer__*`는 `puppeteer` 서버의 모든 도구와 일치하고, `mcp__github__get_*`는 해당 `get_` 도구와 일치합니다. `allowed_tools=["*"]` 또는 `allowed_tools=["mcp__*"]`와 같은 앵커되지 않은 항목은 무시되며 아무것도 자동 승인하지 않습니다.92허용 규칙은 리터럴 `mcp__<server>__` 접두사 이후에만 도구 이름 글롭을 허용합니다. 서버 세그먼트는 글롭이 없어야 하므로 규칙이 구성한 특정 서버의 이름을 지정합니다: `mcp__puppeteer__*`는 `puppeteer` 서버의 모든 도구와 일치하고, `mcp__github__get_*`는 해당 `get_` 도구와 일치합니다. `allowed_tools=["*"]` 또는 `allowed_tools=["mcp__*"]`와 같은 앵커되지 않은 항목은 무시되며 아무것도 자동 승인하지 않습니다.

93 93 

Details

2787 2787 

2788백그라운드 소스를 실행하고 각 이벤트를 Claude에 전달하여 폴링 없이 반응할 수 있게 합니다. `command`는 스크립트를 실행하고 stdout 한 줄마다 이벤트 하나를 내보내며, `ws`는 WebSocket을 열고 텍스트 프레임 하나마다 이벤트 하나를 내보냅니다. `command`와 `ws` 중 정확히 하나만 제공하세요.2788백그라운드 소스를 실행하고 각 이벤트를 Claude에 전달하여 폴링 없이 반응할 수 있게 합니다. `command`는 스크립트를 실행하고 stdout 한 줄마다 이벤트 하나를 내보내며, `ws`는 WebSocket을 열고 텍스트 프레임 하나마다 이벤트 하나를 내보냅니다. `command`와 `ws` 중 정확히 하나만 제공하세요.

2789 2789 

2790Monitor가 명령을 실행할 때는 Bash와 동일한 권한 규칙을 따르며, WebSocket 감시는 별도로 승인을 요청합니다. `ws` 소스는 Claude Code v2.1.195 이상이 필요합니다. 동작과 제공업체별 사용 가능 여부는 [Monitor 도구 레퍼런스](https://code.claude.com/docs/ko/tools-reference.md#monitor-tool)를 참조하세요.2790`ws` 소스는 Claude Code v2.1.195 이상이 필요합니다. Monitor가 명령을 실행할 때는 Bash와 동일한 권한 규칙을 따릅니다. WebSocket 권한, 동작, 제공업체별 사용 가능 여부는 [Monitor 도구 레퍼런스](https://code.claude.com/docs/ko/tools-reference.md#monitor-tool)를 참조하세요.

2791 2791 

2792**입력:**2792**입력:**

2793 2793 

Details

3385 3385 

3386백그라운드 소스를 실행하고 각 이벤트를 Claude에 전달하므로 폴링 없이 반응할 수 있습니다: `command`는 스크립트를 실행하고 stdout 라인당 하나의 이벤트를 내보내며, `ws`는 WebSocket을 열고 텍스트 프레임당 하나의 이벤트를 내보냅니다. `command` 또는 `ws` 중 정확히 하나를 제공합니다. `ws` 소스는 Claude Code v2.1.195 이상이 필요합니다.3386백그라운드 소스를 실행하고 각 이벤트를 Claude에 전달하므로 폴링 없이 반응할 수 있습니다: `command`는 스크립트를 실행하고 stdout 라인당 하나의 이벤트를 내보내며, `ws`는 WebSocket을 열고 텍스트 프레임당 하나의 이벤트를 내보냅니다. `command` 또는 `ws` 중 정확히 하나를 제공합니다. `ws` 소스는 Claude Code v2.1.195 이상이 필요합니다.

3387 3387 

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

3389 3389 

3390내보낸 타입은 스키마가 기본값을 채우기 때문에 `timeout_ms`를 필수로 표시합니다. 이를 생략한 호출도 유효성 검사를 통과합니다.3390* **기본값 및 제한**: 기본값은 300000이며 최대 3600000까지의 값을 허용합니다. 유효한 마감 시간은 최대 1800000(30분)이므로, 더 큰 허용 값은 그 값으로 단축됩니다

3391* **마감 시간 도달 시**: 감시가 종료되고 Claude는 여전히 필요한 경우 새 감시를 시작할 수 있도록 하나의 알림을 받습니다

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

3391 3393 

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

3393 3395 

3394### TaskOutput3396### TaskOutput

3395 3397 

Details

433 433 

434### 모델과 effort 변경하기434### 모델과 effort 변경하기

435 435 

436[Effort](https://code.claude.com/docs/ko/model-config.md#adjust-effort-level)는 Claude가 얼마나 오래 생각할지를 조절하는 주요 수단이며, 예전에 프롬프트 문구로 하던 일 대부분을 대체합니다. Claude Opus 5.5, Sonnet 5.5, Haiku 5.5의 기본값은 `medium`이며, 범위가 명확한 일상적인 기능 작업에는 이것으로 충분합니다. 세션에서 `/effort`로 조정할 만한 경우는 다음과 같습니다.436[Effort](https://code.claude.com/docs/ko/model-config.md#adjust-effort-level)는 Claude가 얼마나 오래 생각할지를 조절하는 주요 수단이며, 예전에 프롬프트 문구로 하던 일 대부분을 대체합니다. Claude Fable 5.2, Opus 5.5, Sonnet 5.5, Haiku 5.5의 기본값은 `medium`이며, 범위가 명확한 일상적인 기능 작업에는 이것으로 충분합니다. 세션에서 `/effort`로 조정할 만한 경우는 다음과 같습니다.

437 437 

438* 놓치기 쉬운 경우에 따라 결과의 정확성이 좌우된다면 `/effort high` 또는 `/effort xhigh`로 높이십시오. 직접 작성하지 않은 코드의 버그, 불안정한 테스트, Claude가 이전 형태를 읽는 모든 곳을 찾아야 하는 스키마 변경 등을 생각해 보십시오. 그러면 Claude는 답하기 전에 더 많은 엣지 케이스를 확인하고 작업을 더 많이 검증하며, 추가 시간과 토큰은 여기에 쓰입니다.438* 놓치기 쉬운 경우에 따라 결과의 정확성이 좌우된다면 `/effort high` 또는 `/effort xhigh`로 높이십시오. 직접 작성하지 않은 코드의 버그, 불안정한 테스트, Claude가 이전 형태를 읽는 모든 곳을 찾아야 하는 스키마 변경 등을 생각해 보십시오. 그러면 Claude는 답하기 전에 더 많은 엣지 케이스를 확인하고 작업을 더 많이 검증하며, 추가 시간과 토큰은 여기에 쓰입니다.

439* 빠르게 주고받으면서 어차피 결과를 하나하나 검토하는 경우에는 `/effort low`로 낮추십시오. 브레인스토밍, 첫 스케치, 몇 개 파일에 걸친 이름 변경 등입니다. Claude가 더 빨리 출발점을 제공하며, 모든 단계를 사용자가 조종하고 있으므로 추가 숙고는 기다리는 시간 외에는 크게 달라지게 하지 않았을 것입니다.439* 빠르게 주고받으면서 어차피 결과를 하나하나 검토하는 경우에는 `/effort low`로 낮추십시오. 브레인스토밍, 첫 스케치, 몇 개 파일에 걸친 이름 변경 등입니다. Claude가 더 빨리 출발점을 제공하며, 모든 단계를 사용자가 조종하고 있으므로 추가 숙고는 기다리는 시간 외에는 크게 달라지게 하지 않았을 것입니다.

440* `max`는 보안 취약점 탐색처럼 Claude가 사용자 없이 끝까지 파고들기를 원하는 어려운 문제에만 사용하십시오. 일반적인 작업에서는 지나치게 생각하는 경향이 있어서, `high`가 줬을 답보다 나을 것이 없는 답에 더 많은 비용을 지불하게 됩니다.440* `max`는 보안 취약점 탐색처럼 Claude가 사용자 없이 끝까지 파고들기를 원하는 어려운 문제에만 사용하십시오. 일반적인 작업에서는 지나치게 생각하는 경향이 있어서, `high`가 줬을 답보다 나을 것이 없는 답에 더 많은 비용을 지불하게 됩니다.

441* 다른 부분은 일상적인 작업 중에 까다로운 질문 하나처럼 다음 메시지에만 필요하다면, 설정을 바꾸는 대신 해당 프롬프트에 [`ultrathink`](https://code.claude.com/docs/ko/model-config#use-ultrathink-for-one-off-deep-reasoning)를 넣으십시오.441* 다른 부분은 일상적인 작업 중에 까다로운 질문 하나처럼 다음 메시지에만 필요하다면, 설정을 바꾸는 대신 해당 프롬프트에 [`ultrathink`](https://code.claude.com/docs/ko/model-config#use-ultrathink-for-one-off-deep-reasoning)를 넣으십시오.

442 442 

443모델 자체의 경우, 기본값인 Opus 5.5가 대부분의 코딩을 잘 처리하고 Sonnet은 일상적인 작업에서 비용이 적게 듭니다. [Claude Fable 5.1](https://code.claude.com/docs/ko/model-config.md#work-with-fable)은 `/model fable`로 명시적으로 선택하면 사용할 수 있고, Haiku는 간단한 작업을 하는 서브에이전트에 잘 맞습니다. 플랜 및 제공업체별 전체 목록은 [모델 구성](https://code.claude.com/docs/ko/model-config.md)에 있습니다.443모델 자체의 경우, 기본값인 Opus 5.5가 대부분의 코딩을 잘 처리하고 Sonnet은 일상적인 작업에서 비용이 적게 듭니다. [Claude Fable 5.2](https://code.claude.com/docs/ko/model-config.md#work-with-fable)를 사용하려면 `/model fable`을 실행하십시오. Haiku는 간단한 작업을 하는 서브에이전트에 잘 맞습니다. 플랜 및 제공업체별 전체 목록은 [모델 구성](https://code.claude.com/docs/ko/model-config.md)에 있습니다.

444 444 

445### 서브에이전트의 비용 알기445### 서브에이전트의 비용 알기

446 446 

Details

172 172 

173성공적인 부팅은 Amazon Bedrock 및 Google Cloud의 Agent Platform 인스턴스 자격 증명이 부팅 시가 아닌 첫 요청에서 확인되기 때문에 추론 경로를 검증하지 않습니다.173성공적인 부팅은 Amazon Bedrock 및 Google Cloud의 Agent Platform 인스턴스 자격 증명이 부팅 시가 아닌 첫 요청에서 확인되기 때문에 추론 경로를 검증하지 않습니다.

174 174 

175부팅 시퀀스에 대해 stderr를 감시하세요. 로그 라인은 `[gateway] <timestamp> <level> <message>` 형식을 사용하고, 감사 이벤트는 `evt` 필드가 있는 단일 라인 JSON이며, 시작 배너(아래 생략됨)는 마이그레이션과 수신 대기 라인 사이에 인쇄됩니다. 신규 데이터베이스는 스키마 마이그레이션당 하나의 `migration N applied` 라인을 인쇄합니다; 이미 마이그레이션된 데이터베이스는 없습니다. 순서대로 다음을 볼 수 있습니다:175부팅 시퀀스에 대해 stderr를 감시하세요. 기본적으로 로그 라인은 `[gateway] <timestamp> <level> <message>` 형식을 사용하며, 시작 배너(아래 생략됨)는 마이그레이션과 수신 대기 라인 사이에 인쇄됩니다. 감사 이벤트는 `evt` 필드가 있는 단일 라인 JSON입니다. 신규 데이터베이스는 스키마 마이그레이션당 하나의 `migration N applied` 라인을 인쇄합니다; 이미 마이그레이션된 데이터베이스는 없습니다. 순서대로 다음을 볼 수 있습니다:

176 176 

177```text theme={null}177```text theme={null}

178{"ts":"2026-06-10T17:03:21.114Z","evt":"config.load","path":"/etc/claude/gateway.yaml","sha256":"…"}178{"ts":"2026-06-10T17:03:21.114Z","evt":"config.load","path":"/etc/claude/gateway.yaml","sha256":"…"}

Details

28 28 

29**선택사항 섹션:**29**선택사항 섹션:**

30 30 

31* [`login_notice`](#login_notice): 개발자가 로그인할 때 표시되는 공지

31* [`admin`](#admin): Admin API 인증 및 지출 한도 보유32* [`admin`](#admin): Admin API 인증 및 지출 한도 보유

32* [`enforcement`](#enforcement): 지출 한도 실패 개방 또는 실패 폐쇄 동작33* [`enforcement`](#enforcement): 지출 한도 실패 개방 또는 실패 폐쇄 동작

33* [`pricing`](#pricing): 계약된 요금 및 지출 미터 및 개발자가 보는 비용 수치에 대한 승수34* [`pricing`](#pricing): 계약된 요금 및 지출 미터 및 개발자가 보는 비용 수치에 대한 승수


847 848 

848## 선택 섹션849## 선택 섹션

849 850 

851### `login_notice`

852 

853개발자가 로그인할 때 공지를 표시하려면 최상위 `login_notice` 키에 최대 500자의 공지 텍스트를 설정합니다. 다음 예시는 게이트웨이의 대상 사용자와 액세스 문의처를 안내합니다.

854 

855```yaml theme={null}

856login_notice: This gateway is for Example Corp staff. For access questions, email it-help@example.com.

857```

858 

859개발자는 브라우저의 게이트웨이 인증 페이지와 터미널의 대화형 로그인 화면에서 `Notice from <gateway hostname>` 아래에 표시되는 텍스트를 확인합니다. 텍스트의 줄바꿈은 공백으로 바뀝니다. 공지는 로그인 전에 표시되므로 게이트웨이에 접근할 수 있는 누구나 읽을 수 있습니다.

860 

861게이트웨이 서버에 Claude Code v2.1.319 이상이 필요하며, 터미널 화면의 경우 개발자의 머신에도 필요합니다. 이전 버전의 게이트웨이는 이 키를 발견하면 시작을 거부합니다. 키를 추가하기 전에 모든 레플리카를 업그레이드하고, 롤백하기 전에 키를 제거하십시오.

862 

850### `admin`863### `admin`

851 864 

852선택 사항입니다. Anthropic의 공개 Admin API를 그대로 따르는 `/v1/organizations/spend_limits`와 `/v1/messages`에서의 개발자별 지출 한도 적용을 활성화합니다. 한도를 설정하고 적용하는 방법은 [지출 한도](https://code.claude.com/docs/ko/claude-apps-gateway-spend-limits.md)를 참조하십시오. 이 섹션에서는 이 기능을 켜고 조정하는 `gateway.yaml` 키를 다룹니다.865선택 사항입니다. Anthropic의 공개 Admin API를 그대로 따르는 `/v1/organizations/spend_limits`와 `/v1/messages`에서의 개발자별 지출 한도 적용을 활성화합니다. 한도를 설정하고 적용하는 방법은 [지출 한도](https://code.claude.com/docs/ko/claude-apps-gateway-spend-limits.md)를 참조하십시오. 이 섹션에서는 이 기능을 켜고 조정하는 `gateway.yaml` 키를 다룹니다.


865 # IdP groups granted full admin via the normal gateway JWT (no API key).878 # IdP groups granted full admin via the normal gateway JWT (no API key).

866 admin_groups: [platform-finops]879 admin_groups: [platform-finops]

867 blocked_message: request an increase at https://go.example.com/claude-limits880 blocked_message: request an increase at https://go.example.com/claude-limits

881 # Try eng-platform's pooled budget first, then eng-all's, then any other group's.

882 pooled_conflict_rule: priority_list

883 pooled_priority_order: [eng-platform, eng-all]

868```884```

869 885 

870| 필드 | 필수 여부 | 설명 |886| 필드 | 필수 여부 | 설명 |


877| `spend_retention_months` | 아니요 | 기본값은 `13`입니다. 이보다 오래된 `spend` 카운터 행은 정리됩니다. 기본값은 전년 대비 보고를 위해 1년 전체와 진행 중인 현재 월을 보관합니다. |893| `spend_retention_months` | 아니요 | 기본값은 `13`입니다. 이보다 오래된 `spend` 카운터 행은 정리됩니다. 기본값은 전년 대비 보고를 위해 1년 전체와 진행 중인 현재 월을 보관합니다. |

878| `identity_retention_days` | 아니요 | 기본값은 `90`입니다. 각 개발자의 이메일, 표시 이름, 그룹(PII)을 보관하는 `principal_emails` 행의 마지막 확인 기준 TTL입니다. 프로비저닝 해제된 ID는 만료되고 익명 지출 카운터는 남도록 지출 보관 기간보다 의도적으로 짧게 설정되어 있습니다. |894| `identity_retention_days` | 아니요 | 기본값은 `90`입니다. 각 개발자의 이메일, 표시 이름, 그룹(PII)을 보관하는 `principal_emails` 행의 마지막 확인 기준 TTL입니다. 프로비저닝 해제된 ID는 만료되고 익명 지출 카운터는 남도록 지출 보관 기간보다 의도적으로 짧게 설정되어 있습니다. |

879| `group_limit_mode` | 아니요 | `min`(기본값) 또는 `max`입니다. 개발자가 한도가 설정된 여러 그룹에 속할 때 `min`은 가장 제한적인 한도를, `max`는 가장 느슨한 한도를 적용합니다. 적용 로직과 `/effective` 모두에서 사용됩니다. |895| `group_limit_mode` | 아니요 | `min`(기본값) 또는 `max`입니다. 개발자가 한도가 설정된 여러 그룹에 속할 때 `min`은 가장 제한적인 한도를, `max`는 가장 느슨한 한도를 적용합니다. 적용 로직과 `/effective` 모두에서 사용됩니다. |

896| `pooled_conflict_rule` | 아니요 | `default_order`(기본값) 또는 `priority_list`입니다. 게이트웨이가 개발자의 풀 예산을 시도하는 순서입니다. [풀 예산 순서](#pooled-budget-order)를 참조하십시오. v2.1.319 이상이 필요합니다. |

897| `pooled_priority_order` | `priority_list` 사용 시 | 최대 50개의 그룹 이름으로, 각각 한 번씩 IdP가 보내는 철자 그대로 나열합니다. 게이트웨이가 가장 먼저 풀 예산을 시도할 그룹입니다. [풀 예산 순서](#pooled-budget-order)를 참조하십시오. v2.1.319 이상이 필요합니다. |

898 

899#### 풀 예산 순서

900 

901풀 예산은 그룹 전체가 함께 사용하는 하나의 월간 한도입니다. 풀 예산을 설정하려면 [그룹의 월간 한도를 설정하는 요청](https://code.claude.com/docs/ko/claude-apps-gateway-spend-limits.md#set-a-cap)에 `pooled_budget`을 추가합니다. 예를 들어 \$5,000의 경우 `"pooled_budget": {"amount": "500000"}`와 같이 작성합니다. 이 요청에는 그룹의 `scope`, `"period": "monthly"`, `amount`도 포함되며, `amount`는 계속 각 구성원의 개별 한도로 사용됩니다.

902 

903이러한 그룹에 여러 개 속한 개발자의 경우, 각 요청은 지출이 한도 미만인 첫 번째 예산에 반영되며, 모든 예산이 소진되면 거부됩니다. `pooled_conflict_rule`은 게이트웨이가 예산을 시도하는 순서를 설정합니다.

904 

905* **`default_order`**: 가장 큰 한도부터, 한도가 같으면 그룹 이름의 오름차순으로 시도합니다

906* **`priority_list`**: `pooled_priority_order`에 있는 그룹의 예산을 목록 순서대로 시도한 다음, 나머지 그룹의 예산을 그룹 이름순으로 시도합니다

907 

908`pooled_conflict_rule: priority_list` 없이 그룹을 나열하면 게이트웨이는 목록을 무시하고 부팅 시 경고를 로그에 기록합니다.

909 

910v2.1.319 이전의 게이트웨이 서버는 `pooled_conflict_rule` 또는 `pooled_priority_order`를 발견하면 시작을 거부합니다. 두 키 중 하나를 추가하기 전에 모든 레플리카를 업그레이드하고, 롤백하기 전에 두 키를 모두 제거하십시오.

880 911 

881### `enforcement`912### `enforcement`

882 913 


1675# 환경 변수(debug | info | warn | error; 기본값 info)로 제어됩니다. debug는1706# 환경 변수(debug | info | warn | error; 기본값 info)로 제어됩니다. debug는

1676# 또한 각 id_token의 클레임 이름을 기록하여 groups_claim 진단을 위해 사용됩니다.1707# 또한 각 id_token의 클레임 이름을 기록하여 groups_claim 진단을 위해 사용됩니다.

1677# 감사 이벤트는 항상 내보내지므로 영향을 주지 않습니다.1708# 감사 이벤트는 항상 내보내지므로 영향을 주지 않습니다.

1709# CLAUDE_GATEWAY_LOG_FORMAT=json을 설정하면 운영 로그 줄을 severity, time, message가

1710# 포함된 JSON 객체로 기록합니다.

1678 1711 

1679listen:1712listen:

1680 host: 0.0.0.01713 host: 0.0.0.0


1715 # connect_timeout_seconds: 51748 # connect_timeout_seconds: 5

1716 # readiness_grace_seconds: 300 # 데이터베이스 장애 조치 중에도 준비 상태 확인을 계속 통과합니다.1749 # readiness_grace_seconds: 300 # 데이터베이스 장애 조치 중에도 준비 상태 확인을 계속 통과합니다.

1717 1750 

1751# 로그인 시 표시되는 안내문입니다. 게이트웨이에 접근할 수 있는 사람은 누구나 읽을 수 있습니다.

1752# login_notice: This gateway is for Example Corp staff. For access questions, email it-help@example.com.

1753 

1718# /v1/organizations/spend_limits(Anthropic Admin API를 미러링함)를 활성화합니다.1754# /v1/organizations/spend_limits(Anthropic Admin API를 미러링함)를 활성화합니다.

1719# 및 /v1/messages에서 개발자별 지출 적용. 비활성화하려면 생략합니다.1755# 및 /v1/messages에서 개발자별 지출 적용. 비활성화하려면 생략합니다.

1720# 한도 자체는 관리자 API를 통해 설정되며 여기에서는 설정되지 않습니다.1756# 한도 자체는 관리자 API를 통해 설정되며 여기에서는 설정되지 않습니다.


1729# # spend_retention_months: 131765# # spend_retention_months: 13

1730# # identity_retention_days: 901766# # identity_retention_days: 90

1731# # group_limit_mode: min1767# # group_limit_mode: min

1768# # pooled_conflict_rule: priority_list

1769# # pooled_priority_order: [eng-platform, eng-all]

1732 1770 

1733# enforcement:1771# enforcement:

1734# fail_closed_on_error: false1772# fail_closed_on_error: false

Details

173 * `admin.denied`는 거부된 관리자 API 인증 시도를 클라이언트 IP, 메서드, 경로 및 이유로 기록하며, 제시된 키 자료는 포함하지 않습니다: `x-api-key`가 제시되었지만 구성된 키와 일치하지 않을 때 `invalid_key`, `Authorization` 헤더만 제시되었고 `admin.admin_groups`의 게이트웨이 세션으로 검증되지 않을 때 `bearer_rejected`, 또는 두 헤더 모두 제시되지 않을 때 `no_credentials`173 * `admin.denied`는 거부된 관리자 API 인증 시도를 클라이언트 IP, 메서드, 경로 및 이유로 기록하며, 제시된 키 자료는 포함하지 않습니다: `x-api-key`가 제시되었지만 구성된 키와 일치하지 않을 때 `invalid_key`, `Authorization` 헤더만 제시되었고 `admin.admin_groups`의 게이트웨이 세션으로 검증되지 않을 때 `bearer_rejected`, 또는 두 헤더 모두 제시되지 않을 때 `no_credentials`

174* **운영 로그**: 부팅, 경고 및 업스트림 오류에 대한 인간이 읽을 수 있는 `[gateway]` 접두사가 있는 줄입니다. `CLAUDE_GATEWAY_LOG_LEVEL` 환경 변수는 상세도를 제어하며 `debug`, `info`, `warn` 또는 `error`를 허용하며, 기본값은 `info`입니다. `debug`에서는 각 로그인 및 새로고침도 id\_token의 클레임 이름(값이 아님)을 기록하고, `userinfo_fallback`이 제공한 경우 userinfo 클레임의 이름을 기록하므로, PII를 기록하지 않고 `email_claim` 및 `groups_claim` 설정을 진단할 수 있습니다. 감사 이벤트에는 영향을 주지 않으며, 감사 이벤트는 항상 발생합니다.174* **운영 로그**: 부팅, 경고 및 업스트림 오류에 대한 인간이 읽을 수 있는 `[gateway]` 접두사가 있는 줄입니다. `CLAUDE_GATEWAY_LOG_LEVEL` 환경 변수는 상세도를 제어하며 `debug`, `info`, `warn` 또는 `error`를 허용하며, 기본값은 `info`입니다. `debug`에서는 각 로그인 및 새로고침도 id\_token의 클레임 이름(값이 아님)을 기록하고, `userinfo_fallback`이 제공한 경우 userinfo 클레임의 이름을 기록하므로, PII를 기록하지 않고 `email_claim` 및 `groups_claim` 설정을 진단할 수 있습니다. 감사 이벤트에는 영향을 주지 않으며, 감사 이벤트는 항상 발생합니다.

175 175 

176#### 운영 로그를 JSON으로 기록

177 

178로그 수집기가 각 줄의 수준을 JSON 필드에서 읽는 경우, 게이트웨이 환경에 `CLAUDE_GATEWAY_LOG_FORMAT=json`을 설정합니다. 게이트웨이 서버에 Claude Code v2.1.319 이상이 필요합니다.

179 

180그러면 각 운영 로그 줄은 `severity`, `time`, `message`를 포함하는 하나의 객체가 됩니다:

181 

182```json theme={null}

183{"severity":"INFO","time":"2026-11-04T17:03:21.512Z","message":"claude gateway listening on http://0.0.0.0:8080"}

184```

185 

186`severity`는 대문자로 표기된 로그 수준이며, `warn`은 `WARNING`으로 기록됩니다. 시작에 실패하면 `ERROR` 줄이 기록됩니다.

187 

188마찬가지로 stderr로 출력되는 감사 이벤트는 변경되지 않습니다. 감사 이벤트는 `ts`와 `evt`를 포함하며, `severity`는 포함하지 않습니다.

189 

176### 상태190### 상태

177 191 

178게이트웨이는 `GET /healthz`를 생존성 프로브로, `GET /readyz`를 준비 상태 프로브로 제공합니다. `/readyz`는 저장소에 도달할 수 있는지 확인합니다. [`store.readiness_grace_seconds`](https://code.claude.com/docs/ko/claude-apps-gateway-config#store)를 설정하면, `/readyz`는 저장소가 응답을 중단한 후 최대 그 초 동안 준비 상태로 계속 보고합니다.192게이트웨이는 `GET /healthz`를 생존성 프로브로, `GET /readyz`를 준비 상태 프로브로 제공합니다. `/readyz`는 저장소에 도달할 수 있는지 확인합니다. [`store.readiness_grace_seconds`](https://code.claude.com/docs/ko/claude-apps-gateway-config#store)를 설정하면, `/readyz`는 저장소가 응답을 중단한 후 최대 그 초 동안 준비 상태로 계속 보고합니다.

Details

6 6 

7> Claude 앱 게이트웨이를 통해 각 개발자의 지출을 일, 주 또는 월 단위로 제한합니다. Admin API로 한도를 설정하면 게이트웨이가 모든 요청에서 실시간으로 이를 적용합니다.7> Claude 앱 게이트웨이를 통해 각 개발자의 지출을 일, 주 또는 월 단위로 제한합니다. Admin API로 한도를 설정하면 게이트웨이가 모든 요청에서 실시간으로 이를 적용합니다.

8 8 

9지출 한도는 각 개발자가 주어진 일, 주 또는 월 동안 [Claude 앱 게이트웨이](https://code.claude.com/docs/ko/claude-apps-gateway)를 통해 지출할 수 있는 금액을 제한합니다. 개발자가 한도를 초과하면 게이트웨이는 다음 요청에서 `429`를 반환하고 기간이 재설정되거나 관리자가 한도를 올릴 때까지 해당 개발자를 차단합니다. 지출 한도를 사용하여 각 개발자, 그룹 또는 전체 조직에 모두가 공유하는 자격 증명에 대한 상한선을 설정합니다.9지출 한도는 각 개발자가 주어진 일, 주 또는 월 동안 [Claude 앱 게이트웨이](https://code.claude.com/docs/ko/claude-apps-gateway)를 통해 지출할 수 있는 금액을 제한합니다. 개발자가 한도를 초과하면 게이트웨이는 관리자가 한도를 올릴 때까지, 또는 한도가 \$0보다 큰 경우 한도가 재설정될 때까지 해당 개발자의 이후 요청에 `429`를 반환합니다. 지출 한도를 사용하여 각 개발자, 그룹 또는 전체 조직에 모두가 공유하는 자격 증명에 대한 상한선을 설정합니다.

10 10 

11기본적으로 Claude 앱 게이트웨이는 하나의 공유 업스트림 자격 증명을 통해 모든 추론을 전달하므로 공급자의 청구서는 개별 개발자가 아닌 해당 자격 증명에 모든 것을 귀속시킵니다. Amazon Bedrock에서 [개발자별 AWS 비용 귀속](https://code.claude.com/docs/ko/claude-apps-gateway-config.md#per-developer-aws-cost-attribution)이 이를 변경합니다. 개발자별 한도가 없으면 하나의 폭주하는 에이전트 플릿이 조직의 전체 약정을 소비할 수 있습니다. 지출 한도는 게이트웨이의 개발자별 보기이자 해당 공유 청구서 위의 차단기입니다.11기본적으로 Claude 앱 게이트웨이는 하나의 공유 업스트림 자격 증명을 통해 모든 추론을 전달하므로 공급자의 청구서는 개별 개발자가 아닌 해당 자격 증명에 모든 것을 귀속시킵니다. Amazon Bedrock에서 [개발자별 AWS 비용 귀속](https://code.claude.com/docs/ko/claude-apps-gateway-config.md#per-developer-aws-cost-attribution)이 이를 변경합니다. 개발자별 한도가 없으면 하나의 폭주하는 에이전트 플릿이 조직의 전체 약정을 소비할 수 있습니다. 지출 한도는 게이트웨이의 개발자별 보기이자 해당 공유 청구서 위의 차단기입니다.

12 12 


51 51 

52각 `/v1/messages` 요청에서 게이트웨이는 개발자의 한도와 기간 누적 지출을 하나의 Postgres 쿼리로 조회합니다. 한도를 초과한 개발자는 `error.type: billing_error`와 헤더 `x-should-retry: false`를 포함한 `429`를 받습니다.52각 `/v1/messages` 요청에서 게이트웨이는 개발자의 한도와 기간 누적 지출을 하나의 Postgres 쿼리로 조회합니다. 한도를 초과한 개발자는 `error.type: billing_error`와 헤더 `x-should-retry: false`를 포함한 `429`를 받습니다.

53 53 

54메시지는 기간과 재설정 시간을 명시합니다. 예를 들어 `spend limit reached (daily; resets 2026-08-08 00:00 UTC)`이며, 설정된 경우 [`admin.blocked_message`](https://code.claude.com/docs/ko/claude-apps-gateway-config#admin)가 뒤따릅니다. 개발자가 여러 한도를 동시에 초과하면 메시지는 가장 늦게 재설정되는 한도를 명시합니다. 응답에는 해당 재설정까지 남은 초 단위 시간을 나타내는 `retry-after` 헤더도 포함됩니다. 게이트웨이 서버의 v2.1.225 이전 버전에서는 메시지가 기간, 재설정 시간 또는 `retry-after` 헤더 없이 `spend limit reached`였습니다.54`"0"`보다 큰 한도의 경우 메시지에는 해당 한도가 재설정되는 UTC 날짜가 표시됩니다. [`admin.blocked_message`](https://code.claude.com/docs/ko/claude-apps-gateway-config#admin)를 설정하면 게이트웨이가 다음 예시와 같이 이를 메시지 뒤에 덧붙입니다.

55 

56```text theme={null}

57spend limit reached · resets Dec 1 · request an increase at https://go.example.com/claude-limits

58```

59 

60재설정으로 해제되지 않는 `"0"` 한도의 경우 메시지에 날짜가 없습니다. 개발자가 여러 한도를 동시에 초과하면 메시지는 가장 늦게 재설정되는 한도를 명시합니다. 응답에는 해당 한도의 기간이 끝날 때까지 남은 초 단위 시간을 나타내는 `retry-after` 헤더도 포함됩니다.

61 

62게이트웨이 서버의 v2.1.319 이전 버전에서는 메시지가 `spend limit reached (daily; resets 2026-08-08 00:00 UTC)`와 같이 기간과 재설정 시간을 명시했습니다. v2.1.225 이전 버전에서는 메시지가 기간, 재설정 시간 또는 `retry-after` 헤더 없이 `spend limit reached`였습니다.

55 63 

56v2.1.227 이상에서는 `<public_url>/protocol`의 프로토콜 참조에 정확한 사용량 제한 응답 헤더와 `429` 본문도 나열됩니다.64v2.1.227 이상에서는 `<public_url>/protocol`의 프로토콜 참조에 정확한 사용량 제한 응답 헤더와 `429` 본문도 나열됩니다.

57 65 


95| 75% 및 95%에서의 사용량 경고 | v2.1.225 이상 | v2.1.225 이상 |103| 75% 및 95%에서의 사용량 경고 | v2.1.225 이상 | v2.1.225 이상 |

96| 한도의 사용 비율과 재설정 시간을 보여 주는 `/usage`의 **지출 한도** 막대, 그리고 상태줄 입력의 `rate_limits.spend_limit` 객체 | v2.1.251 이상 | v2.1.225 이상 |104| 한도의 사용 비율과 재설정 시간을 보여 주는 `/usage`의 **지출 한도** 막대, 그리고 상태줄 입력의 `rate_limits.spend_limit` 객체 | v2.1.251 이상 | v2.1.225 이상 |

97| "\$271.40 / \$500.00 spent this month"와 같이 **지출 한도** 막대에 표시되는 미국 달러 기준 추정 지출액과 한도, 그리고 상태줄 입력의 동일한 금액 및 한도 기간 | v2.1.284 이상 | v2.1.284 이상 |105| "\$271.40 / \$500.00 spent this month"와 같이 **지출 한도** 막대에 표시되는 미국 달러 기준 추정 지출액과 한도, 그리고 상태줄 입력의 동일한 금액 및 한도 기간 | v2.1.284 이상 | v2.1.284 이상 |

106| [`admin:`](https://code.claude.com/docs/ko/claude-apps-gateway-config#admin) 블록이 있는 게이트웨이에서 적용되는 한도가 없을 때, "\$13.06 today · \$80.76 this week · \$272.06 this month"와 같이 `/usage`의 **Spend (UTC)** 아래에 표시되는 추정 지출액 | v2.1.319 이상 | v2.1.319 이상 |

98 107 

99경고와 백분율은 `anthropic-ratelimit-unified-*` 헤더에서 가져오며, 게이트웨이는 한도가 있는 개발자에 대한 각 성공적인 `/v1/messages` 응답에 이 헤더를 추가합니다. 헤더는 항상 개발자 자신의 한도를 설명합니다. 게이트웨이는 공유 할당량을 설명하는 업스트림 공급자의 속도 제한 헤더를 제거하고 절대 전달하지 않습니다.108경고와 백분율은 `anthropic-ratelimit-unified-*` 헤더에서 가져오며, 게이트웨이는 한도가 있는 개발자에 대한 각 성공적인 `/v1/messages` 응답에 이 헤더를 추가합니다. 헤더는 항상 개발자 자신의 한도를 설명합니다. 게이트웨이는 공유 할당량을 설명하는 업스트림 공급자의 속도 제한 헤더를 제거하고 절대 전달하지 않습니다.

100 109 

Details

41| `claude mcp logout <name>` | MCP 서버에 대해 저장된 OAuth 자격 증명을 지웁니다 | `claude mcp logout sentry` |41| `claude mcp logout <name>` | MCP 서버에 대해 저장된 OAuth 자격 증명을 지웁니다 | `claude mcp logout sentry` |

42| `claude plugin` | Claude Code [플러그인](https://code.claude.com/docs/ko/plugins/overview.md)을 관리합니다. 별칭: `claude plugins`. 하위 명령은 [플러그인 참조](https://code.claude.com/docs/ko/plugins/cli-reference.md#claude-plugin-commands)를 참조하세요 | `claude plugin install code-review@claude-plugins-official` |42| `claude plugin` | Claude Code [플러그인](https://code.claude.com/docs/ko/plugins/overview.md)을 관리합니다. 별칭: `claude plugins`. 하위 명령은 [플러그인 참조](https://code.claude.com/docs/ko/plugins/cli-reference.md#claude-plugin-commands)를 참조하세요 | `claude plugin install code-review@claude-plugins-official` |

43| `claude purge [path]` | 프로젝트의 모든 로컬 Claude Code 상태를 삭제합니다: 트랜스크립트, 작업 목록, 디버그 로그, 파일 편집 기록, 프롬프트 기록 라인 및 `~/.claude.json`의 프로젝트 항목. `[path]`를 생략하면 대화형 목록에서 선택할 수 있습니다. 플래그: `--dry-run`으로 미리 보기, `-y`/`--yes`로 확인 건너뛰기, `-i`/`--interactive`로 각 항목 확인, `--all`로 모든 프로젝트. [로컬 데이터 지우기](https://code.claude.com/docs/ko/claude-directory.md#clear-local-data) 참조 | `claude purge ~/work/repo --dry-run` |43| `claude purge [path]` | 프로젝트의 모든 로컬 Claude Code 상태를 삭제합니다: 트랜스크립트, 작업 목록, 디버그 로그, 파일 편집 기록, 프롬프트 기록 라인 및 `~/.claude.json`의 프로젝트 항목. `[path]`를 생략하면 대화형 목록에서 선택할 수 있습니다. 플래그: `--dry-run`으로 미리 보기, `-y`/`--yes`로 확인 건너뛰기, `-i`/`--interactive`로 각 항목 확인, `--all`로 모든 프로젝트. [로컬 데이터 지우기](https://code.claude.com/docs/ko/claude-directory.md#clear-local-data) 참조 | `claude purge ~/work/repo --dry-run` |

44| `claude remote-control` | Claude.ai 또는 Claude 앱에서 Claude Code를 제어하기 위한 [Remote Control](https://code.claude.com/docs/ko/remote-control.md) 서버를 시작합니다. 서버 모드에서 실행됩니다(로컬 대화형 세션 없음). [서버 모드 플래그](https://code.claude.com/docs/ko/remote-control.md#start-a-remote-control-session) 참조. 서버를 중지한 후 이를 제공하던 세션을 다시 가져올 수 있습니다. [서버 중지 후 세션 재개](https://code.claude.com/docs/ko/remote-control.md#resume-sessions-after-stopping-the-server) 참조 | `claude remote-control --name "My Project"` |44| `claude remote-control` | claude.ai 또는 Claude 앱에서 Claude Code를 제어하기 위한 [Remote Control](https://code.claude.com/docs/ko/remote-control.md) 서버를 시작합니다. 별칭: `claude rc`. 서버 모드에서 실행됩니다(로컬 대화형 세션 없음). [서버 모드 플래그](https://code.claude.com/docs/ko/remote-control.md#start-a-remote-control-session) 참조. 서버를 중지한 후 이를 제공하던 세션을 다시 가져올 수 있습니다. [서버 중지 후 세션 재개](https://code.claude.com/docs/ko/remote-control.md#resume-sessions-after-stopping-the-server) 참조 | `claude remote-control --name "My Project"` |

45| `claude respawn <id>` | 대화를 유지하면서 실행 중이거나 중지된 [백그라운드 세션](https://code.claude.com/docs/ko/agent-view.md#manage-sessions-from-the-shell)을 다시 시작합니다. `--all`을 사용하여 모든 실행 중인 세션을 다시 시작합니다(예: 업데이트된 Claude Code 바이너리를 선택하기 위해) | `claude respawn 7c5dcf5d` |45| `claude respawn <id>` | 대화를 유지하면서 실행 중이거나 중지된 [백그라운드 세션](https://code.claude.com/docs/ko/agent-view.md#manage-sessions-from-the-shell)을 다시 시작합니다. `--all`을 사용하여 모든 실행 중인 세션을 다시 시작합니다(예: 업데이트된 Claude Code 바이너리를 선택하기 위해) | `claude respawn 7c5dcf5d` |

46| `claude rm <id>` | [백그라운드 세션](https://code.claude.com/docs/ko/agent-view.md#manage-sessions-from-the-shell)을 목록에서 제거합니다. 제거가 [세션의 worktree를 통해 거부](https://code.claude.com/docs/ko/agent-view.md#what-deleting-a-session-removes)되고 두 번째 `claude rm`이 이를 해결할 수 있을 때, 거부는 전달할 정확한 플래그와 값을 인쇄합니다: `--discard-unpushed <commit>@<worktree-id>`는 푸시되지 않은 커밋이 있는 worktree를 해당 커밋과 함께 삭제하고, `--force-remove-worktree <worktree-id>`는 git 또는 `WorktreeRemove` 훅이 제거할 수 없는 worktree 디렉토리를 삭제합니다. `--discard-unpushed`는 Claude Code v2.1.260 이상이 필요하고, `--force-remove-worktree`는 v2.1.268 이상이 필요합니다. 대화 트랜스크립트는 로컬 머신에 남아 있으며 `claude --resume`을 통해 사용할 수 있습니다 | `claude rm 7c5dcf5d` |46| `claude rm <id>` | [백그라운드 세션](https://code.claude.com/docs/ko/agent-view.md#manage-sessions-from-the-shell)을 목록에서 제거합니다. 제거가 [세션의 worktree를 통해 거부](https://code.claude.com/docs/ko/agent-view.md#what-deleting-a-session-removes)되고 두 번째 `claude rm`이 이를 해결할 수 있을 때, 거부는 전달할 정확한 플래그와 값을 인쇄합니다: `--discard-unpushed <commit>@<worktree-id>`는 푸시되지 않은 커밋이 있는 worktree를 해당 커밋과 함께 삭제하고, `--force-remove-worktree <worktree-id>`는 git 또는 `WorktreeRemove` 훅이 제거할 수 없는 worktree 디렉토리를 삭제합니다. `--discard-unpushed`는 Claude Code v2.1.260 이상이 필요하고, `--force-remove-worktree`는 v2.1.268 이상이 필요합니다. 대화 트랜스크립트는 로컬 머신에 남아 있으며 `claude --resume`을 통해 사용할 수 있습니다 | `claude rm 7c5dcf5d` |

47| `claude self-hosted-runner` | 이 머신 또는 컨테이너를 [자체 호스팅 환경](https://code.claude.com/docs/ko/self-hosted-environments)에 등록하고 인프라에서 Claude Code 클라우드 세션을 호스팅하는 러너 프로세스를 시작합니다. 안내식 운영자 연습을 위해 `claude self-hosted-runner setup`을 실행하고, 배포된 러너를 [진단](https://code.claude.com/docs/ko/self-hosted-environments-deploy.md#troubleshooting)하기 위해 `claude self-hosted-runner doctor`를 실행하고, [온디맨드 러너](https://code.claude.com/docs/ko/self-hosted-environments-configuration.md#on-demand-runners)를 생성하기 위해 `claude self-hosted-runner orchestrator`를 실행합니다. Claude Code v2.1.224 이상이 필요합니다 | `claude self-hosted-runner setup` |47| `claude self-hosted-runner` | 이 머신 또는 컨테이너를 [자체 호스팅 환경](https://code.claude.com/docs/ko/self-hosted-environments)에 등록하고 인프라에서 Claude Code 클라우드 세션을 호스팅하는 러너 프로세스를 시작합니다. 안내식 운영자 연습을 위해 `claude self-hosted-runner setup`을 실행하고, 배포된 러너를 [진단](https://code.claude.com/docs/ko/self-hosted-environments-deploy.md#troubleshooting)하기 위해 `claude self-hosted-runner doctor`를 실행하고, [온디맨드 러너](https://code.claude.com/docs/ko/self-hosted-environments-configuration.md#on-demand-runners)를 생성하기 위해 `claude self-hosted-runner orchestrator`를 실행합니다. Claude Code v2.1.224 이상이 필요합니다 | `claude self-hosted-runner setup` |


111| `--no-session-persistence` | 세션 지속성을 비활성화하므로 세션이 디스크에 저장되지 않고 재개할 수 없습니다. 인쇄 모드만 해당입니다. [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](https://code.claude.com/docs/ko/env-vars) 환경 변수는 모든 모드에서 동일한 작업을 수행합니다 | `claude -p --no-session-persistence "query"` |111| `--no-session-persistence` | 세션 지속성을 비활성화하므로 세션이 디스크에 저장되지 않고 재개할 수 없습니다. 인쇄 모드만 해당입니다. [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](https://code.claude.com/docs/ko/env-vars) 환경 변수는 모든 모드에서 동일한 작업을 수행합니다 | `claude -p --no-session-persistence "query"` |

112| `--output-format` | 인쇄 모드에 대한 출력 형식을 지정합니다(옵션: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |112| `--output-format` | 인쇄 모드에 대한 출력 형식을 지정합니다(옵션: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |

113| `--permission-mode` | 지정된 [권한 모드](https://code.claude.com/docs/ko/permission-modes.md)에서 시작합니다. `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions` 또는 `manual`을 `default`의 별칭으로 허용합니다. `manual` 별칭은 UI가 Manual로 레이블 지정하는 권한 모드를 선택하며 Claude Code v2.1.200 이상이 필요합니다. `claude --help`는 `default` 대신 이를 나열하고 두 값 모두 작동합니다. 설정 파일의 `defaultMode`를 재정의합니다. 이 플래그 또는 `--dangerously-skip-permissions` 없이 새 세션은 [세션이 시작되는 권한 모드](https://code.claude.com/docs/ko/permission-modes.md#which-mode-a-session-starts-in)에 설명된 권한 모드에서 시작됩니다. 해당 섹션에서는 `-p` 실행이 어떤 모드에서 시작되는지도 다룹니다 | `claude --permission-mode plan` |113| `--permission-mode` | 지정된 [권한 모드](https://code.claude.com/docs/ko/permission-modes.md)에서 시작합니다. `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions` 또는 `manual`을 `default`의 별칭으로 허용합니다. `manual` 별칭은 UI가 Manual로 레이블 지정하는 권한 모드를 선택하며 Claude Code v2.1.200 이상이 필요합니다. `claude --help`는 `default` 대신 이를 나열하고 두 값 모두 작동합니다. 설정 파일의 `defaultMode`를 재정의합니다. 이 플래그 또는 `--dangerously-skip-permissions` 없이 새 세션은 [세션이 시작되는 권한 모드](https://code.claude.com/docs/ko/permission-modes.md#which-mode-a-session-starts-in)에 설명된 권한 모드에서 시작됩니다. 해당 섹션에서는 `-p` 실행이 어떤 모드에서 시작되는지도 다룹니다 | `claude --permission-mode plan` |

114| `--permission-prompt-tool` | 비대화형 모드에서 권한 프롬프트를 처리할 MCP 도구를 지정합니다. 실행에서 로드하는 MCP 서버에 있는 도구의 전체 이름(예: `mcp__<server>__<tool>`)을 전달합니다. Claude Code는 첫 번째 턴을 실행하기 전에 해당 도구의 MCP 서버가 연결될 때까지 기다립니다. [`MCP_TIMEOUT`](https://code.claude.com/docs/ko/env-vars) 시작 타임아웃(기본값 30초)까지입니다. 프롬프트 도구는 [사용자 상호 작용이 필요한 것으로 표시된](https://code.claude.com/docs/ko/mcp.md#require-approval-for-a-specific-tool) MCP 도구를 승인할 수 없습니다. Claude Code는 이러한 도구에 대한 `allow` 결과를 거부로 변환합니다. 이 제한에는 Claude Code v2.1.199 이상이 필요합니다 | `claude -p --mcp-config ./mcp.json --permission-prompt-tool mcp__permissions__approve "query"` |114| `--permission-prompt-tool` | 비대화형 모드에서 권한 프롬프트를 처리할 MCP 도구를 지정합니다. 실행에서 로드하는 MCP 서버에 있는 도구의 전체 이름(예: `mcp__<server>__<tool>`)을 전달합니다. Claude Code는 첫 번째 턴을 실행하기 전에 해당 도구의 MCP 서버가 연결될 때까지 기다립니다. [`MCP_TIMEOUT`](https://code.claude.com/docs/ko/env-vars) 시작 타임아웃(기본값 30초)까지입니다. [도구가 반환해야 하는 내용](https://code.claude.com/docs/ko/errors.md#permission-prompt-tool-returned-an-invalid-result)을 참조하세요. 프롬프트 도구는 [사용자 상호 작용이 필요한 것으로 표시된](https://code.claude.com/docs/ko/mcp.md#require-approval-for-a-specific-tool) MCP 도구를 승인할 수 없습니다. Claude Code는 이러한 도구에 대한 `allow` 결과를 거부로 변환합니다. 이 제한에는 Claude Code v2.1.199 이상이 필요합니다 | `claude -p --mcp-config ./mcp.json --permission-prompt-tool mcp__permissions__approve "query"` |

115| `--permission-prompts` | 인쇄 모드에서 권한 프롬프트에 응답하는 사람을 설정합니다. 기본 `host`를 사용하면 Claude Code는 Agent SDK 호스트 또는 `--permission-prompt-tool` 도구로 보냅니다. 아무도 응답할 수 없을 때 `none`을 전달하면 Claude Code는 대신 거부합니다. [무인 실행에서 권한 프롬프트 끄기](https://code.claude.com/docs/ko/headless.md#turn-off-permission-prompts-in-unattended-runs)를 참조하세요. Claude Code v2.1.259 이상이 필요합니다 | `claude -p --permission-prompts none "query"` |115| `--permission-prompts` | 인쇄 모드에서 권한 프롬프트에 응답하는 사람을 설정합니다. 기본 `host`를 사용하면 Claude Code는 Agent SDK 호스트 또는 `--permission-prompt-tool` 도구로 보냅니다. 아무도 응답할 수 없을 때 `none`을 전달하면 Claude Code는 대신 거부합니다. [무인 실행에서 권한 프롬프트 끄기](https://code.claude.com/docs/ko/headless.md#turn-off-permission-prompts-in-unattended-runs)를 참조하세요. Claude Code v2.1.259 이상이 필요합니다 | `claude -p --permission-prompts none "query"` |

116| `--plugin-dir` | 이 세션에만 디렉터리 또는 `.zip` 아카이브에서 플러그인을 로드하거나 [플러그인 폴더](https://code.claude.com/docs/ko/plugins/create.md#load-a-directory-or-archive-for-one-session)에서 여러 개를 로드합니다. 각 플래그는 하나의 경로를 사용합니다. 더 많은 경로에 대해 플래그를 반복합니다: `--plugin-dir A --plugin-dir B.zip`. 플러그인 폴더를 전달하려면 Claude Code v2.1.265 이상이 필요합니다 | `claude --plugin-dir ./my-plugin` |116| `--plugin-dir` | 이 세션에만 디렉터리 또는 `.zip` 아카이브에서 플러그인을 로드하거나 [플러그인 폴더](https://code.claude.com/docs/ko/plugins/create.md#load-a-directory-or-archive-for-one-session)에서 여러 개를 로드합니다. 각 플래그는 하나의 경로를 사용합니다. 더 많은 경로에 대해 플래그를 반복합니다: `--plugin-dir A --plugin-dir B.zip`. 플러그인 폴더를 전달하려면 Claude Code v2.1.265 이상이 필요합니다 | `claude --plugin-dir ./my-plugin` |

117| `--plugin-url` | 이 세션에만 URL에서 플러그인 `.zip` 아카이브를 가져옵니다. 여러 플러그인에 대해 플래그를 반복하거나 단일 따옴표 값에 공백으로 구분된 URL을 전달합니다 | `claude --plugin-url https://example.com/plugin.zip` |117| `--plugin-url` | 이 세션에만 URL에서 플러그인 `.zip` 아카이브를 가져옵니다. 여러 플러그인에 대해 플래그를 반복하거나 단일 따옴표 값에 공백으로 구분된 URL을 전달합니다 | `claude --plugin-url https://example.com/plugin.zip` |

commands.md +1 −1

Details

162| `/ultrareview [PR or branch]` | [ultrareview](https://code.claude.com/docs/ko/ultrareview.md)를 사용하여 클라우드 샌드박스에서 심층 멀티 에이전트 코드 리뷰를 실행합니다. 해당 풀 리퀘스트를 리뷰하려면 PR 참조를 전달하고, 비교 기준을 변경하려면 기준 브랜치 또는 커밋을 전달합니다. 권장 호출 방식은 `/code-review ultra`이며 `/ultrareview`는 별칭입니다. Pro, Max, Ultra에서는 무료 실행 3회가 포함되며, 그 이후에는 [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)이 필요합니다 |162| `/ultrareview [PR or branch]` | [ultrareview](https://code.claude.com/docs/ko/ultrareview.md)를 사용하여 클라우드 샌드박스에서 심층 멀티 에이전트 코드 리뷰를 실행합니다. 해당 풀 리퀘스트를 리뷰하려면 PR 참조를 전달하고, 비교 기준을 변경하려면 기준 브랜치 또는 커밋을 전달합니다. 권장 호출 방식은 `/code-review ultra`이며 `/ultrareview`는 별칭입니다. Pro, Max, Ultra에서는 무료 실행 3회가 포함되며, 그 이후에는 [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)이 필요합니다 |

163| `/update-config [request]` | **[스킬](https://code.claude.com/docs/ko/skills.md#bundled-skills).** 명령 허용, 환경 변수 설정, [훅](https://code.claude.com/docs/ko/hooks.md) 추가 같은 설정 변경을 설명하면 Claude가 해당하는 [`settings.json`](https://code.claude.com/docs/ko/settings) 파일을 편집합니다. 테마와 모델 같은 옵션에는 대신 `/config`를 사용합니다 |163| `/update-config [request]` | **[스킬](https://code.claude.com/docs/ko/skills.md#bundled-skills).** 명령 허용, 환경 변수 설정, [훅](https://code.claude.com/docs/ko/hooks.md) 추가 같은 설정 변경을 설명하면 Claude가 해당하는 [`settings.json`](https://code.claude.com/docs/ko/settings) 파일을 편집합니다. 테마와 모델 같은 옵션에는 대신 `/config`를 사용합니다 |

164| `/upgrade` | 더 높은 플랜 등급으로 전환하기 위해 브라우저에서 업그레이드 페이지를 엽니다. 브라우저를 열지 못하면 명령이 URL을 출력하지 않고 로그인 프롬프트를 표시합니다 |164| `/upgrade` | 더 높은 플랜 등급으로 전환하기 위해 브라우저에서 업그레이드 페이지를 엽니다. 브라우저를 열지 못하면 명령이 URL을 출력하지 않고 로그인 프롬프트를 표시합니다 |

165| `/usage` | 세션 비용, 플랜 사용 한도, 활동 통계를 표시합니다. Pro, Max, Ultra, Team 또는 Enterprise 플랜에서는 [플랜 한도에 집계되는 항목의 세부 내역](https://code.claude.com/docs/ko/costs.md#plan-usage-breakdown)이 포함됩니다. `/cost`와 `/stats`는 별칭입니다 |165| `/usage` | 세션 비용, 플랜 사용 한도, 활동 통계를 표시합니다. Pro, Max, Ultra, Team 또는 Enterprise 플랜에서는 [플랜 한도에 집계되는 항목의 세부 내역](https://code.claude.com/docs/ko/costs.md#plan-usage-breakdown)이 포함됩니다. 지출을 추적하는 Claude apps 게이트웨이를 사용하는 경우 [게이트웨이를 통한 지출](https://code.claude.com/docs/ko/claude-apps-gateway-spend-limits.md#usage-warnings-in-claude-code)을 표시합니다. `/cost`와 `/stats`는 별칭입니다 |

166| `/usage-credits` | 한도에 도달했을 때 사용량 크레딧을 구성하거나 관리자에게 요청합니다. 브라우저에서 [사용량 크레딧 청구 설정](https://code.claude.com/docs/ko/costs.md#add-usage-credits-to-your-subscription)을 엽니다. 단, 청구 액세스 권한이 없는 Team 및 Enterprise 구성원은 요청이 관리자에게 알림으로 전달된다는 것을 대화 상자에서 확인한 후, CLI에서 관리자에게 사용량 크레딧 요청을 보냅니다. SSH 사용 시처럼 브라우저로 청구 페이지를 열 수 없는 경우 명령이 대신 방문할 URL을 출력합니다. 이 기능은 Claude Code v2.1.205 이상이 필요하며, 이전 버전에서는 이 경우 아무것도 표시되지 않았습니다. 이전 명칭: `/extra-usage` |166| `/usage-credits` | 한도에 도달했을 때 사용량 크레딧을 구성하거나 관리자에게 요청합니다. 브라우저에서 [사용량 크레딧 청구 설정](https://code.claude.com/docs/ko/costs.md#add-usage-credits-to-your-subscription)을 엽니다. 단, 청구 액세스 권한이 없는 Team 및 Enterprise 구성원은 요청이 관리자에게 알림으로 전달된다는 것을 대화 상자에서 확인한 후, CLI에서 관리자에게 사용량 크레딧 요청을 보냅니다. SSH 사용 시처럼 브라우저로 청구 페이지를 열 수 없는 경우 명령이 대신 방문할 URL을 출력합니다. 이 기능은 Claude Code v2.1.205 이상이 필요하며, 이전 버전에서는 이 경우 아무것도 표시되지 않았습니다. 이전 명칭: `/extra-usage` |

167| `/verify` | **[스킬](https://code.claude.com/docs/ko/skills.md#bundled-skills).** 테스트나 타입 검사에 의존하지 않고, 프로젝트의 앱을 빌드하고 실행하여 결과를 관찰함으로써 코드 변경이 의도대로 작동하는지 확인합니다. [앱 실행 및 검증](https://code.claude.com/docs/ko/skills.md#run-and-verify-your-app)을 참조하세요 |167| `/verify` | **[스킬](https://code.claude.com/docs/ko/skills.md#bundled-skills).** 테스트나 타입 검사에 의존하지 않고, 프로젝트의 앱을 빌드하고 실행하여 결과를 관찰함으로써 코드 변경이 의도대로 작동하는지 확인합니다. [앱 실행 및 검증](https://code.claude.com/docs/ko/skills.md#run-and-verify-your-app)을 참조하세요 |

168| `/vim` | v2.1.92에서 제거되었습니다. Vim 편집 모드와 Normal 편집 모드 사이를 전환하려면 `/config` → Editor mode를 사용하세요 |168| `/vim` | v2.1.92에서 제거되었습니다. Vim 편집 모드와 Normal 편집 모드 사이를 전환하려면 `/config` → Editor mode를 사용하세요 |

costs.md +1 −1

Details

236 * [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)이 켜져 있다면 `/usage-credits`를 실행해 할당량을 초과하는 사용량을 요청합니다.236 * [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)이 켜져 있다면 `/usage-credits`를 실행해 할당량을 초과하는 사용량을 요청합니다.

237 * Claude Code v2.1.234 이상에서는 [대기한 후 재설정 시 중단된 작업을 자동으로 계속](https://code.claude.com/docs/ko/interactive-mode.md#wait-for-a-usage-limit-to-reset)할 수 있습니다. 해당 섹션에는 Claude Code가 자체적으로 대기를 시작하는 경우와 개발자가 `/rate-limit-options`에서 선택하는 경우가 나와 있습니다. 전체 환경에서 Claude Code가 자체적으로 대기를 시작할지 여부를 제어하려면 [관리형 설정](https://code.claude.com/docs/ko/settings.md#settings-precedence)에서 [`autoContinueAtUsageLimit`](https://code.claude.com/docs/ko/settings-reference#autocontinueatusagelimit)를 설정합니다.237 * Claude Code v2.1.234 이상에서는 [대기한 후 재설정 시 중단된 작업을 자동으로 계속](https://code.claude.com/docs/ko/interactive-mode.md#wait-for-a-usage-limit-to-reset)할 수 있습니다. 해당 섹션에는 Claude Code가 자체적으로 대기를 시작하는 경우와 개발자가 `/rate-limit-options`에서 선택하는 경우가 나와 있습니다. 전체 환경에서 Claude Code가 자체적으로 대기를 시작할지 여부를 제어하려면 [관리형 설정](https://code.claude.com/docs/ko/settings.md#settings-precedence)에서 [`autoContinueAtUsageLimit`](https://code.claude.com/docs/ko/settings-reference#autocontinueatusagelimit)를 설정합니다.

238* **"You've hit your individual spend limit", "org's monthly spend limit" 또는 "team's shared budget"**: 개발자의 요청이 사용량 크레딧으로 청구될 예정이었으나, 해당 크레딧이 관리자가 설정한 지출 한도에 도달한 것입니다. 개발자가 계속 사용할 수 있게 하려면 [**Organization settings > Usage**](https://claude.ai/admin-settings/usage)로 이동해 메시지에 명시된 한도를 늘립니다. 메시지에 플랜 재설정 시간도 명시되어 있다면 개발자는 대신 그때까지 기다릴 수 있습니다. 각 변형은 [오류 참조](https://code.claude.com/docs/ko/errors.md#youve-hit-your-monthly-spend-limit)를 참조하세요.238* **"You've hit your individual spend limit", "org's monthly spend limit" 또는 "team's shared budget"**: 개발자의 요청이 사용량 크레딧으로 청구될 예정이었으나, 해당 크레딧이 관리자가 설정한 지출 한도에 도달한 것입니다. 개발자가 계속 사용할 수 있게 하려면 [**Organization settings > Usage**](https://claude.ai/admin-settings/usage)로 이동해 메시지에 명시된 한도를 늘립니다. 메시지에 플랜 재설정 시간도 명시되어 있다면 개발자는 대신 그때까지 기다릴 수 있습니다. 각 변형은 [오류 참조](https://code.claude.com/docs/ko/errors.md#youve-hit-your-monthly-spend-limit)를 참조하세요.

239* **[Claude apps 게이트웨이](https://code.claude.com/docs/ko/claude-apps-gateway)의 지출 한도 메시지**: 개발자가 자체 호스팅 게이트웨이에 설정된 지출 상한을 초과한 것으로, 기간이 재설정되거나 관리자가 상한을 올릴 때까지 게이트웨이가 해당 개발자의 요청을 차단합니다. 상한, 재설정 일정, 개발자에게 표시되는 메시지는 [게이트웨이 지출 한도](https://code.claude.com/docs/ko/claude-apps-gateway-spend-limits.md)를 참조하세요.239* **[Claude apps 게이트웨이](https://code.claude.com/docs/ko/claude-apps-gateway)의 지출 한도 메시지**: 개발자가 자체 호스팅 게이트웨이에 관리자가 설정한 지출 상한을 초과한 것입니다. 게이트웨이는 관리자가 상한을 올리거나, 상한이 \$0보다 큰 경우 상한이 재설정될 때까지 해당 개발자의 요청을 차단합니다. 상한, 재설정 일정, 개발자에게 표시되는 메시지는 [게이트웨이 지출 한도](https://code.claude.com/docs/ko/claude-apps-gateway-spend-limits.md)를 참조하세요.

240* **컨텍스트 또는 자동 압축 경고**: 사용 한도가 아닙니다. 대화가 세션의 [자동 압축 윈도우](https://code.claude.com/docs/ko/model-config.md#set-the-auto-compact-window), 즉 Claude Code가 공간을 확보하기 위해 이전 기록을 요약하는 임계값에 가까워진 것입니다. 개발자에게 [토큰 사용량 줄이기](#reduce-token-usage)를 안내합니다.240* **컨텍스트 또는 자동 압축 경고**: 사용 한도가 아닙니다. 대화가 세션의 [자동 압축 윈도우](https://code.claude.com/docs/ko/model-config.md#set-the-auto-compact-window), 즉 Claude Code가 공간을 확보하기 위해 이전 기록을 요약하는 임계값에 가까워진 것입니다. 개발자에게 [토큰 사용량 줄이기](#reduce-token-usage)를 안내합니다.

241* **API 또는 클라우드 제공업체 플랜에서 예상보다 높은 지출**: 대개 한 번도 지우지 않은 긴 세션이나 기본 모델로 남아 있는 Opus가 원인입니다. 공유하기에 가장 효과적인 습관은 관련 없는 작업 사이에 대화를 지우는 것과 작업에 맞는 모델을 선택하는 것이며, 두 가지 모두 [토큰 사용량 줄이기](#reduce-token-usage)에서 다룹니다.241* **API 또는 클라우드 제공업체 플랜에서 예상보다 높은 지출**: 대개 한 번도 지우지 않은 긴 세션이나 기본 모델로 남아 있는 Opus가 원인입니다. 공유하기에 가장 효과적인 습관은 관련 없는 작업 사이에 대화를 지우는 것과 작업에 맞는 모델을 선택하는 것이며, 두 가지 모두 [토큰 사용량 줄이기](#reduce-token-usage)에서 다룹니다.

242 242 

env-vars.md +2 −1

Details

365| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Claude Code가 허용하는 유일한 값인 `5m` 또는 `1h`로 설정하여 메인 대화의 [프롬프트 캐시 TTL](https://code.claude.com/docs/ko/prompt-caching.md#cache-lifetime)을 선택합니다. 메인 대화에는 대화형, `-p`, SDK 턴과 이와 함께 인라인으로 실행되는 헬퍼가 포함됩니다. `promptCacheTtl` 설정과 `ENABLE_PROMPT_CACHING_1H`보다 우선하며, `FORCE_PROMPT_CACHING_5M`이 이 변수를 재정의합니다. API는 1시간 캐시 쓰기에 더 높은 요금을 청구합니다. Claude Code v2.1.242 이상이 필요합니다 |365| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Claude Code가 허용하는 유일한 값인 `5m` 또는 `1h`로 설정하여 메인 대화의 [프롬프트 캐시 TTL](https://code.claude.com/docs/ko/prompt-caching.md#cache-lifetime)을 선택합니다. 메인 대화에는 대화형, `-p`, SDK 턴과 이와 함께 인라인으로 실행되는 헬퍼가 포함됩니다. `promptCacheTtl` 설정과 `ENABLE_PROMPT_CACHING_1H`보다 우선하며, `FORCE_PROMPT_CACHING_5M`이 이 변수를 재정의합니다. API는 1시간 캐시 쓰기에 더 높은 요금을 청구합니다. Claude Code v2.1.242 이상이 필요합니다 |

366| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | `ANTHROPIC_BASE_URL`이 사용자 지정 프록시를 가리킬 때 W3C 트레이스 컨텍스트를 전파하려면 `1`로 설정합니다. 전파 대상은 모델 및 HTTP MCP 요청의 `traceparent` 헤더와 Bash, PowerShell, 훅 하위 프로세스의 `TRACEPARENT` 환경 변수입니다. 기본적으로 Anthropic API에 직접 연결된 경우에만 전파가 활성화됩니다. v2.1.152에서 추가되었습니다. [트레이스(베타)](https://code.claude.com/docs/ko/monitoring-usage.md#traces-beta)를 참조하세요 |366| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | `ANTHROPIC_BASE_URL`이 사용자 지정 프록시를 가리킬 때 W3C 트레이스 컨텍스트를 전파하려면 `1`로 설정합니다. 전파 대상은 모델 및 HTTP MCP 요청의 `traceparent` 헤더와 Bash, PowerShell, 훅 하위 프로세스의 `TRACEPARENT` 환경 변수입니다. 기본적으로 Anthropic API에 직접 연결된 경우에만 전파가 활성화됩니다. v2.1.152에서 추가되었습니다. [트레이스(베타)](https://code.claude.com/docs/ko/monitoring-usage.md#traces-beta)를 참조하세요 |

367| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Claude Code를 내장하고 모델 제공업체 라우팅을 대신 관리하는 호스트 플랫폼이 설정합니다. 설정하면 Claude Code는 설정 파일의 `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL`, `ANTHROPIC_API_KEY` 등 제공업체 선택, 엔드포인트, 인증 변수를 무시하므로 사용자 설정이 호스트의 라우팅을 재정의할 수 없습니다. Claude Code는 또한 어떤 관리형 소스가 전달하든 [관리형 설정](https://code.claude.com/docs/ko/managed-settings.md)의 `model`, `fallbackModel`, `modelOverrides` 등 모델 선택 키를 무시하므로, 호스트의 모델 구성이 오래된 관리형 모델 고정보다 우선합니다. Claude Code는 또한 관리형 `env` 블록의 `ANTHROPIC_MODEL` 및 `ANTHROPIC_DEFAULT_*_MODEL` 계열 등 모델 선택 변수를 무시합니다. 관리형 설정의 [`availableModels`](https://code.claude.com/docs/ko/model-config#restrict-model-selection) 허용 목록은 호스트가 자체 목록을 제공하지 않는 한 계속 적용됩니다. Claude Code는 또한 Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, Microsoft Foundry 등 타사 제공업체에서 적용하던 자동 텔레메트리 옵트아웃을 건너뛰므로, 텔레메트리는 표준 `DISABLE_TELEMETRY` 옵트아웃을 따릅니다. [API 제공업체별 기본 동작](https://code.claude.com/docs/ko/data-usage.md#default-behaviors-by-api-provider)을 참조하세요 |367| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Claude Code를 내장하고 모델 제공업체 라우팅을 대신 관리하는 호스트 플랫폼이 설정합니다. 설정하면 Claude Code는 설정 파일의 `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL`, `ANTHROPIC_API_KEY` 등 제공업체 선택, 엔드포인트, 인증 변수를 무시하므로 사용자 설정이 호스트의 라우팅을 재정의할 수 없습니다. Claude Code는 또한 어떤 관리형 소스가 전달하든 [관리형 설정](https://code.claude.com/docs/ko/managed-settings.md)의 `model`, `fallbackModel`, `modelOverrides` 등 모델 선택 키를 무시하므로, 호스트의 모델 구성이 오래된 관리형 모델 고정보다 우선합니다. Claude Code는 또한 관리형 `env` 블록의 `ANTHROPIC_MODEL` 및 `ANTHROPIC_DEFAULT_*_MODEL` 계열 등 모델 선택 변수를 무시합니다. 관리형 설정의 [`availableModels`](https://code.claude.com/docs/ko/model-config#restrict-model-selection) 허용 목록은 호스트가 자체 목록을 제공하지 않는 한 계속 적용됩니다. Claude Code는 또한 Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, Microsoft Foundry 등 타사 제공업체에서 적용하던 자동 텔레메트리 옵트아웃을 건너뛰므로, 텔레메트리는 표준 `DISABLE_TELEMETRY` 옵트아웃을 따릅니다. [API 제공업체별 기본 동작](https://code.claude.com/docs/ko/data-usage.md#default-behaviors-by-api-provider)을 참조하세요 |

368| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | 호출자 대신 프록시가 DNS 확인을 수행하도록 허용하려면 `1`로 설정합니다. 프록시가 호스트 이름 확인을 처리해야 하는 환경을 위한 옵트인 설정입니다 |368| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | `1`로 설정하면 호출자 대신 프록시가 DNS 확인을 수행하도록 허용합니다. 프록시가 호스트 이름 확인을 처리해야 하는 환경을 위한 옵트인입니다. `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`가 설정된 경우 Claude Code를 시작하는 프로세스의 환경에서 설정합니다 |

369| `CLAUDE_CODE_REMOTE` | Claude Code가 [클라우드 세션](https://code.claude.com/docs/ko/claude-code-on-the-web.md)으로 실행될 때 자동으로 `true`로 설정됩니다. 훅이나 설정 스크립트에서 이 값을 읽어 클라우드 세션인지 감지합니다 |369| `CLAUDE_CODE_REMOTE` | Claude Code가 [클라우드 세션](https://code.claude.com/docs/ko/claude-code-on-the-web.md)으로 실행될 때 자동으로 `true`로 설정됩니다. 훅이나 설정 스크립트에서 이 값을 읽어 클라우드 세션인지 감지합니다 |

370| `CLAUDE_CODE_REMOTE_SESSION_ID` | [클라우드 세션](https://code.claude.com/docs/ko/claude-code-on-the-web.md)에서 현재 세션의 ID로 자동 설정됩니다. 세션 트랜스크립트로 돌아가는 링크를 구성할 때 읽습니다. [출력을 세션에 다시 연결](https://code.claude.com/docs/ko/cloud-environments.md#link-output-back-to-the-session)을 참조하세요 |370| `CLAUDE_CODE_REMOTE_SESSION_ID` | [클라우드 세션](https://code.claude.com/docs/ko/claude-code-on-the-web.md)에서 현재 세션의 ID로 자동 설정됩니다. 세션 트랜스크립트로 돌아가는 링크를 구성할 때 읽습니다. [출력을 세션에 다시 연결](https://code.claude.com/docs/ko/cloud-environments.md#link-output-back-to-the-session)을 참조하세요 |

371| `CLAUDE_CODE_RESTRICTED` | [`--restricted`](https://code.claude.com/docs/ko/cli-reference#cli-flags)를 전달하는 것과 같이 제한 모드로 세션을 시작하려면 `1`로 설정합니다. Claude Code는 설정 파일의 `env` 블록에서 이 변수를 무시합니다. Claude Code v2.1.248 이상이 필요합니다 |371| `CLAUDE_CODE_RESTRICTED` | [`--restricted`](https://code.claude.com/docs/ko/cli-reference#cli-flags)를 전달하는 것과 같이 제한 모드로 세션을 시작하려면 `1`로 설정합니다. Claude Code는 설정 파일의 `env` 블록에서 이 변수를 무시합니다. Claude Code v2.1.248 이상이 필요합니다 |


529| `VERTEX_REGION_CLAUDE_5_SONNET` | Google Cloud's Agent Platform 사용 시 Claude Sonnet 5의 리전을 재정의합니다. v2.1.197에서 추가되었습니다 |529| `VERTEX_REGION_CLAUDE_5_SONNET` | Google Cloud's Agent Platform 사용 시 Claude Sonnet 5의 리전을 재정의합니다. v2.1.197에서 추가되었습니다 |

530| `VERTEX_REGION_CLAUDE_FABLE_5` | Google Cloud's Agent Platform 사용 시 Claude Fable 5의 리전을 재정의합니다. v2.1.170에서 추가되었습니다 |530| `VERTEX_REGION_CLAUDE_FABLE_5` | Google Cloud's Agent Platform 사용 시 Claude Fable 5의 리전을 재정의합니다. v2.1.170에서 추가되었습니다 |

531| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Google Cloud's Agent Platform 사용 시 Claude Fable 5.1의 리전을 재정의합니다. v2.1.257에서 추가되었습니다 |531| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Google Cloud's Agent Platform 사용 시 Claude Fable 5.1의 리전을 재정의합니다. v2.1.257에서 추가되었습니다 |

532| `VERTEX_REGION_CLAUDE_FABLE_5_2` | Google Cloud's Agent Platform 사용 시 Claude Fable 5.2의 리전을 재정의합니다. v2.1.321에서 추가되었습니다 |

532| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Google Cloud's Agent Platform 사용 시 Claude Haiku 4.5의 리전을 재정의합니다 |533| `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에서 추가되었습니다 |534| `VERTEX_REGION_CLAUDE_HAIKU_5_5` | Google Cloud's Agent Platform 사용 시 Claude Haiku 5.5의 리전을 재정의합니다. v2.1.293에서 추가되었습니다 |

534 535 

errors.md +93 −16

Details

52| `Credit balance is too low` | [사용 한도](#credit-balance-is-too-low) |52| `Credit balance is too low` | [사용 한도](#credit-balance-is-too-low) |

53| `You've hit your monthly spend limit` / `You've hit your individual spend limit` / `You've hit your org's monthly spend limit` / `You've hit your channel's monthly spend limit` / `You've hit your team's shared budget` / `You've hit your individual usage limit` | [사용 한도](#youve-hit-your-monthly-spend-limit) |53| `You've hit your monthly spend limit` / `You've hit your individual spend limit` / `You've hit your org's monthly spend limit` / `You've hit your channel's monthly spend limit` / `You've hit your team's shared budget` / `You've hit your individual usage limit` | [사용 한도](#youve-hit-your-monthly-spend-limit) |

54| `Could not update your spend limit` | [사용 한도](#could-not-update-your-spend-limit) |54| `Could not update your spend limit` | [사용 한도](#could-not-update-your-spend-limit) |

55| `spend limit reached` / `spend limit unavailable` | [사용 한도](#spend-limit-reached) |55| `spend limit reached` / `spend limit unavailable` / `This request exceeds your group's budget` | [사용 한도](#spend-limit-reached) |

56| `Not logged in · Please run /login` | [인증](#not-logged-in) |56| `Not logged in · Please run /login` | [인증](#not-logged-in) |

57| `Couldn't save your login` | [인증](#couldnt-save-your-login) |57| `Couldn't save your login` | [인증](#couldnt-save-your-login) |

58| `Sign in again to take your previous account or API key off the config file.` | [인증](#sign-in-again-to-take-your-previous-account-or-api-key-off-the-config-file) |58| `Sign in again to take your previous account or API key off the config file.` | [인증](#sign-in-again-to-take-your-previous-account-or-api-key-off-the-config-file) |


336| `MCP server "<name>" connection closed before the tool call was answered` | [도구 오류](#connection-closed-before-the-tool-call-was-answered) |336| `MCP server "<name>" connection closed before the tool call was answered` | [도구 오류](#connection-closed-before-the-tool-call-was-answered) |

337| `MCP server "<name>" is disabled — re-enable it via /mcp to use its tools` | [도구 오류](#mcp-server-is-disabled) |337| `MCP server "<name>" is disabled — re-enable it via /mcp to use its tools` | [도구 오류](#mcp-server-is-disabled) |

338| `MCP server "<name>" tool "<tool>" timed out after <N>s. The server asked the user a question, and no answer came before the time limit.` | [도구 오류](#mcp-tool-call-timed-out-with-the-servers-question-unanswered) |338| `MCP server "<name>" tool "<tool>" timed out after <N>s. The server asked the user a question, and no answer came before the time limit.` | [도구 오류](#mcp-tool-call-timed-out-with-the-servers-question-unanswered) |

339| `Permission prompt tool returned an invalid result` | [도구 오류](#permission-prompt-tool-returned-an-invalid-result) |

339| `would be spawned with zero tools — refusing` | [도구 오류](#agent-would-be-spawned-with-zero-tools) |340| `would be spawned with zero tools — refusing` | [도구 오류](#agent-would-be-spawned-with-zero-tools) |

340| `File is covered by a Read deny rule in your permission settings` | [도구 오류](#file-is-covered-by-a-read-deny-rule) |341| `File is covered by a Read deny rule in your permission settings` | [도구 오류](#file-is-covered-by-a-read-deny-rule) |

341| `<path> is outside <dirs>; the permissions.blockWritesOutsideWorkingDirectories setting blocks writes outside the working directories` | [도구 오류](#setting-blocks-writes-outside-the-working-directories) |342| `<path> is outside <dirs>; the permissions.blockWritesOutsideWorkingDirectories setting blocks writes outside the working directories` | [도구 오류](#setting-blocks-writes-outside-the-working-directories) |


420| `The Claude Code program for this computer, the <build> build, could not be found` | [래퍼 및 IDE 오류](#the-claude-code-program-for-this-computer-could-not-be-found) |421| `The Claude Code program for this computer, the <build> build, could not be found` | [래퍼 및 IDE 오류](#the-claude-code-program-for-this-computer-could-not-be-found) |

421| `Restored the code, but skipped N files` | [되돌리기 경고 및 오류](#restored-the-code-but-skipped-files) |422| `Restored the code, but skipped N files` | [되돌리기 경고 및 오류](#restored-the-code-but-skipped-files) |

422| `No files were restored: N files failed (backup missing, or the file could not be updated)` | [되돌리기 경고 및 오류](#no-files-were-restored) |423| `No files were restored: N files failed (backup missing, or the file could not be updated)` | [되돌리기 경고 및 오류](#no-files-were-restored) |

424| `The file backups are still being copied. Nothing was changed. Try again in a moment.` | [`/rewind`](https://code.claude.com/docs/ko/checkpointing)에서 같은 지점을 다시 선택합니다. [`/branch`](https://code.claude.com/docs/ko/sessions#branch-a-session) 직후에 코드를 복원하면 Claude Code가 아직 파일 백업을 새 세션으로 복사하는 중일 수 있습니다. |

423| `Transcript writes are failing (...)` | [세션 저장 경고](#transcript-writes-are-failing) |425| `Transcript writes are failing (...)` | [세션 저장 경고](#transcript-writes-are-failing) |

424| `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [세션 저장 경고](#transcript-saving-is-off-skip-prompt-history) |426| `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [세션 저장 경고](#transcript-saving-is-off-skip-prompt-history) |

425| `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [세션 저장 경고](#transcript-saving-is-off-child-session-marker) |427| `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [세션 저장 경고](#transcript-saving-is-off-child-session-marker) |


431| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [구성 경고](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |433| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [구성 경고](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |

432| `N skill or command names refused: run with --debug to see which ([names]), rename, then restart` | [구성 경고](#skill-or-command-name-refused) |434| `N skill or command names refused: run with --debug to see which ([names]), rename, then restart` | [구성 경고](#skill-or-command-name-refused) |

433| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [구성 경고](#workspace-has-not-been-trusted) |435| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [구성 경고](#workspace-has-not-been-trusted) |

436| `Two Claude Code config files exist: this run uses <path>, not <path>` | [구성 경고](#two-claude-code-config-files-exist) |

434| `Make this change again later: <path> could not be updated, so it applies to this session only` | [구성 경고](#make-this-change-again-later) |437| `Make this change again later: <path> could not be updated, so it applies to this session only` | [구성 경고](#make-this-change-again-later) |

435| `is a network path, which cannot be added as a working directory` | [구성 경고](#working-directory-is-a-network-path) |438| `is a network path, which cannot be added as a working directory` | [구성 경고](#working-directory-is-a-network-path) |

436| `Remote managed settings failed to load (<cause>)` | [구성 경고](#remote-managed-settings-failed-to-load) |439| `Remote managed settings failed to load (<cause>)` | [구성 경고](#remote-managed-settings-failed-to-load) |


468| `CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" isn't a usable size, so Claude Code ignores it` | [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`의 값 및 경고](https://code.claude.com/docs/ko/model-config#claude_code_auto_compact_window-values) |471| `CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" isn't a usable size, so Claude Code ignores it` | [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`의 값 및 경고](https://code.claude.com/docs/ko/model-config#claude_code_auto_compact_window-values) |

469| `Model "<model>" isn't recognized · context assumed to be 200k tokens` | [게이트웨이 또는 사용자 지정 모델 ID의 윈도우 수정](https://code.claude.com/docs/ko/model-config.md#correct-the-window-for-a-gateway-or-custom-model-id) |472| `Model "<model>" isn't recognized · context assumed to be 200k tokens` | [게이트웨이 또는 사용자 지정 모델 ID의 윈도우 수정](https://code.claude.com/docs/ko/model-config.md#correct-the-window-for-a-gateway-or-custom-model-id) |

470| `Claude Code doesn't recognize the model "<model>", so it assumes a context window of 200k tokens` | [게이트웨이 또는 사용자 지정 모델 ID의 윈도우 수정](https://code.claude.com/docs/ko/model-config.md#correct-the-window-for-a-gateway-or-custom-model-id) |473| `Claude Code doesn't recognize the model "<model>", so it assumes a context window of 200k tokens` | [게이트웨이 또는 사용자 지정 모델 ID의 윈도우 수정](https://code.claude.com/docs/ko/model-config.md#correct-the-window-for-a-gateway-or-custom-model-id) |

474| `Model "<model>" isn't recognized · did you mean "<suggestion>"?` / `Claude Code doesn't recognize the model "<model>". Did you mean "<suggestion>"?` | [잘못 입력한 모델 이름 수정](https://code.claude.com/docs/ko/model-config.md#fix-a-mistyped-model-name) |

471| `[claude-code:unrecognized_model]` | [구성 경고](#unrecognized-model-id-on-a-request) |475| `[claude-code:unrecognized_model]` | [구성 경고](#unrecognized-model-id-on-a-request) |

472| `is ignored — managed settings set allowManagedReadPathsOnly` / `is ignored — managed settings set allowManagedDomainsOnly` | [구성 경고](#sandbox-allow-entries-are-ignored-under-a-managed-lock) |476| `is ignored — managed settings set allowManagedReadPathsOnly` / `is ignored — managed settings set allowManagedDomainsOnly` | [구성 경고](#sandbox-allow-entries-are-ignored-under-a-managed-lock) |

473| `Sandbox mask files left behind at write-deny paths` | [구성 경고](#stale-sandbox-mask-files-left-by-a-killed-session) |477| `Sandbox mask files left behind at write-deny paths` | [구성 경고](#stale-sandbox-mask-files-left-by-a-killed-session) |


909Fable 5.1 now uses usage credits · the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change913Fable 5.1 now uses usage credits · the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change

910```914```

911 915 

912메시지에는 세션의 Fable 모델 이름이 표시되므로, Fable 5에서는 `continuing on Fable 5` 및 `Fable 5 now uses usage credits`로 표시됩니다. v2.1.257 이전에는 첫 번째 메시지가 `Fable 5 limit reached`로 시작했습니다.916메시지에는 세션의 Fable 모델 이름이 표시되므로, Fable 5.2에서는 `continuing on Fable 5.2` 및 `Fable 5.2 now uses usage credits`로 표시됩니다. v2.1.257 이전에는 첫 번째 메시지가 `Fable 5 limit reached`로 시작했습니다.

913 917 

914이는 [Remote Control](https://code.claude.com/docs/ko/remote-control.md) 세션, [백그라운드 세션](https://code.claude.com/docs/ko/agent-view.md), [에이전트 팀](https://code.claude.com/docs/ko/agent-teams.md) 팀원 세션, 그리고 다른 애플리케이션이 Agent SDK를 통해 호스팅하는 세션에서 발생합니다. Claude Code가 프롬프트를 닫는 시점은 [Fable 및 사용량 크레딧](https://code.claude.com/docs/ko/model-config.md#fable-and-usage-credits)을 참조하세요.918이는 [Remote Control](https://code.claude.com/docs/ko/remote-control.md) 세션, [백그라운드 세션](https://code.claude.com/docs/ko/agent-view.md), [에이전트 팀](https://code.claude.com/docs/ko/agent-teams.md) 팀원 세션, 그리고 다른 애플리케이션이 Agent SDK를 통해 호스팅하는 세션에서 발생합니다. Claude Code가 프롬프트를 닫는 시점은 [Fable 및 사용량 크레딧](https://code.claude.com/docs/ko/model-config.md#fable-and-usage-credits)을 참조하세요.

915 919 


983 987 

984### Spend limit reached988### Spend limit reached

985 989 

986[Claude 앱 게이트웨이](https://code.claude.com/docs/ko/claude-apps-gateway)를 통해 연결하고 있으며 게이트웨이 운영자가 설정한 [지출 상한](https://code.claude.com/docs/ko/claude-apps-gateway-spend-limits.md)을 초과했습니다. 게이트웨이는 명시된 기간이 재설정되거나 운영자가 상한을 올릴 때까지 요청을 차단합니다. 차단된 각 `429` 응답에는 `x-should-retry: false`가 표시되므로, Claude Code는 재시도하지 않고 이 메시지를 표시합니다.990[Claude 앱 게이트웨이](https://code.claude.com/docs/ko/claude-apps-gateway)를 통해 연결하고 있으며 게이트웨이 운영자가 설정한 [지출 상한](https://code.claude.com/docs/ko/claude-apps-gateway-spend-limits.md)에 도달했습니다. 게이트웨이는 운영자가 상한을 올리거나, 상한이 \$0보다 큰 경우 상한이 재설정될 때까지 요청을 차단합니다. 차단된 각 `429` 응답에는 `x-should-retry: false`가 표시되므로, 터미널에서 Claude Code는 재시도하지 않고 이 메시지를 표시합니다.

987 991 

988```text theme={null}992```text theme={null}

989spend limit reached (daily; resets 2026-08-09 00:00 UTC)993spend limit reached · resets Dec 1

990```994```

991 995 

992메시지에는 상한의 기간과 재설정 시간이 표시되며, 운영자가 `blocked_message`를 구성한 경우 그 뒤에 운영자의 안내가 이어집니다. v2.1.225 이전에는 메시지가 `spend limit reached`로만 표시되었으며, 이전 버전의 게이트웨이는 여전히 이 짧은 형식을 보냅니다.996메시지에 날짜가 있는지 확인합니다.

997 

998* **날짜가 있는 경우**: 해당 날짜의 00:00 UTC에 상한이 재설정됩니다

999* **날짜가 없는 경우**: 상한이 \$0이거나, 게이트웨이가 v2.1.225 이전 버전을 실행하고 있습니다

1000 

1001메시지의 그 밖의 텍스트는 게이트웨이 운영자의 안내입니다.

1002 

1003게이트웨이 서버의 v2.1.225부터 v2.1.319 이전까지는 `spend limit reached (daily; resets 2026-08-09 00:00 UTC)`와 같이 메시지에 상한의 기간과 재설정 시간이 표시되었습니다.

993 1004 

994**해결 방법:**1005**해결 방법:**

995 1006 

996* 메시지에 표시된 재설정 시간까지 기다리거나, 메시지에 운영자의 안내가 포함되어 있으면 그 안내를 따릅니다1007* 메시지에 날짜가 있으면 재설정될 때까지 기다리거나, 메시지에 운영자의 안내가 포함되어 있으면 그 안내를 따릅니다

997* 상한에 자주 도달한다면 게이트웨이 운영자에게 상한을 올려 달라고 요청합니다1008* 메시지에 날짜가 없거나, 해당 날짜 이후에도 여전히 차단되거나, 상한에 자주 도달한다면 게이트웨이 운영자에게 상한을 올려 달라고 요청합니다

1009 

1010또 다른 게이트웨이 메시지인 `This request exceeds your group's budget`은 그룹의 [공유 예산](https://code.claude.com/docs/ko/claude-apps-gateway-config.md#pooled-budget-order)이 소진되었음을 의미합니다. 메시지에 안내된 단계를 따르세요.

1011 

1012```text theme={null}

1013This request exceeds your group's budget. Ask your organization's admins to raise it, or try again after it resets on November 1 at 00:00 UTC.

1014```

998 1015 

999관련 메시지인 `spend limit unavailable`은 게이트웨이가 지출 기록을 읽을 수 없어 상한 초과가 아닌 예방 차원에서 요청을 차단했음을 의미합니다. 보통 저절로 해소되며, 지속되면 게이트웨이 운영자에게 알리세요.1016관련 메시지인 `spend limit unavailable`은 게이트웨이가 지출 기록을 읽을 수 없어 상한 초과가 아닌 예방 차원에서 요청을 차단했음을 의미합니다. 보통 저절로 해소되며, 지속되면 게이트웨이 운영자에게 알리세요.

1000 1017 


2287 2304 

2288### Couldn't send feedback2305### Couldn't send feedback

2289 2306 

2290`Couldn't send feedback`으로 시작하는 메시지는 [`/feedback`, `/bug` 또는 `/share` 대화 상자](https://code.claude.com/docs/ko/commands#all-commands)에서 제출한 보고서나 큐에 있는 [피드백 초안](https://code.claude.com/docs/ko/tools-reference.md#sendfeedback-tool-behavior)을 피드백 서비스가 확인하지 않았음을 의미합니다. 수신되지 않은 것으로 간주합니다. 콜론 뒤에 조직에 관한 문장이 이어지면 조직이 피드백을 거부하는 것이며, 같은 보고서는 같은 응답을 받습니다.2307`Couldn't send feedback`으로 시작하는 메시지는 [`/feedback`, `/bug` 또는 `/share` 대화 상자](https://code.claude.com/docs/ko/commands#all-commands)에서 제출한 보고서나 큐에 있는 [피드백 초안](https://code.claude.com/docs/ko/tools-reference.md#sendfeedback-tool-behavior)을 피드백 서비스가 확인하지 않았음을 의미합니다. 수신되지 않은 것으로 간주합니다. 콜론 뒤에 조직에 관한 문장이 이어지면 조직이 피드백을 거부하는 것입니다.

2291 2308 

2292다음 두 예시 중 두 번째는 조직의 거부입니다:2309두 번째 예시는 조직의 거부입니다:

2293 2310 

2294```text wrap theme={null}2311```text wrap theme={null}

2295Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.2312Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.


2300**수행할 작업:**2317**수행할 작업:**

2301 2318 

2302* **로그인되지 않음**: 메시지가 `: not signed in. Run /login, then retry.`로 이어집니다. `/login`을 실행한 다음 다시 보냅니다.2319* **로그인되지 않음**: 메시지가 `: not signed in. Run /login, then retry.`로 이어집니다. `/login`을 실행한 다음 다시 보냅니다.

2303* **조직의 거부**: 예를 들어 `: Feedback has not been enabled for your organization.` 또는 `: Feedback collection is not available for organizations with custom data retention policies.`입니다. 메시지에 `To report a bug, open an issue`가 추가되어 있으면 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)에서 이슈를 엽니다. 큐에 있는 초안은 큐에 남아 있으며, [초안을 삭제](https://code.claude.com/docs/ko/tools-reference.md#discard-or-keep-a-draft)할 수 있습니다.2320* **조직의 거부**: 예를 들어 `: Feedback has not been enabled for your organization.` 또는 `: Feedback collection is not available for organizations with custom data retention policies.`입니다. 메시지에 `To report a bug, open an issue`가 추가되어 있으면 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)에서 이슈를 엽니다. 이후 7일 동안 `/feedback`이 [조직의 정책에 의해 비활성화되었다](#feedback-is-disabled-by-your-organizations-policy)고 응답할 수 있습니다. 큐에 있는 초안은 큐에 남아 있으며 여전히 [일정에 따라 만료](https://code.claude.com/docs/ko/tools-reference.md#discard-or-keep-a-draft)됩니다.

2304* **거부된 자격 증명**: 메시지가 `: the sign-in this session uses is not allowed to send feedback` 또는 `: the server did not accept the credentials this session uses`로 이어집니다. Claude Code 프롬프트에서 `/status`를 실행하여 이 세션이 보내는 로그인, 토큰 또는 API 키를 확인합니다.2321* **거부된 자격 증명**: 메시지가 `: the sign-in this session uses is not allowed to send feedback` 또는 `: the server did not accept the credentials this session uses`로 이어집니다. Claude Code 프롬프트에서 `/status`를 실행하여 이 세션이 보내는 로그인, 토큰 또는 API 키를 확인합니다.

2305* **`Couldn't send feedback` 바로 뒤의 `(request timed out)` 또는 `(couldn't reach the service)`**: 보고서 또는 큐에 있는 초안을 다시 보냅니다. 대화 상자는 텍스트를 유지하며, 큐에 있는 초안의 메시지에는 `The draft is still queued.`라고 표시됩니다. 다른 요청도 실패하는 경우, 네트워크 연결을 확인하고 [Unable to connect to API](#unable-to-connect-to-api)를 참조합니다. 계속 실패하면 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)에서 보고서를 제출합니다.2322* **`Couldn't send feedback` 바로 뒤의 `(request timed out)` 또는 `(couldn't reach the service)`**: 보고서 또는 큐에 있는 초안을 다시 보냅니다. 대화 상자는 텍스트를 유지하며, 큐에 있는 초안의 메시지에는 `The draft is still queued.`라고 표시됩니다. 다른 요청도 실패하는 경우, 네트워크 연결을 확인하고 [Unable to connect to API](#unable-to-connect-to-api)를 참조합니다. 계속 실패하면 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)에서 보고서를 제출합니다.

2306* **`Couldn't send feedback` 바로 뒤의 `(server returned <status>)` 또는 이유 없음**: 상태는 서비스의 응답 코드입니다. 서비스가 자체 메시지를 보낸 경우 `(server returned 403: Access Forbidden)`처럼 상태 뒤에 이어집니다. 계속 실패하면 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)에서 보고서를 제출합니다.2323* **`Couldn't send feedback` 바로 뒤의 `(server returned <status>)` 또는 이유 없음**: 상태는 서비스의 응답 코드입니다. 서비스가 자체 메시지를 보낸 경우 `(server returned 403: Access Forbidden)`처럼 상태 뒤에 이어집니다. 계속 실패하면 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)에서 보고서를 제출합니다.


3431* **`Error: Workspace not trusted. <folder> is your home directory`**: 홈 디렉터리에 대한 신뢰는 절대 저장되지 않으므로 그곳에서 먼저 `claude`를 실행해도 도움이 되지 않습니다. 대신 프로젝트 디렉터리에서 `claude`를 한 번 실행해 신뢰 대화 상자를 수락한 후 그곳에서 `claude ultrareview`를 실행하거나, `--trust-workspace`를 추가합니다.3448* **`Error: Workspace not trusted. <folder> is your home directory`**: 홈 디렉터리에 대한 신뢰는 절대 저장되지 않으므로 그곳에서 먼저 `claude`를 실행해도 도움이 되지 않습니다. 대신 프로젝트 디렉터리에서 `claude`를 한 번 실행해 신뢰 대화 상자를 수락한 후 그곳에서 `claude ultrareview`를 실행하거나, `--trust-workspace`를 추가합니다.

3432* **`No answer in time.` 뒤에 `Error: Workspace not trusted`**: `Trust <folder>? [y/N]` 질문에 5분 동안 응답이 없었습니다. `claude ultrareview`를 다시 실행하고 질문에 답합니다.3449* **`No answer in time.` 뒤에 `Error: Workspace not trusted`**: `Trust <folder>? [y/N]` 질문에 5분 동안 응답이 없었습니다. `claude ultrareview`를 다시 실행하고 질문에 답합니다.

3433* **`Ultrareview did not start: <folder> is not trusted`**: `n`으로 답하거나 Enter를 누르는 등 `Trust <folder>? [y/N]` 질문에서 거절했습니다. 리뷰를 시작하려면 `claude ultrareview`를 다시 실행하고 `y`로 답합니다.3450* **`Ultrareview did not start: <folder> is not trusted`**: `n`으로 답하거나 Enter를 누르는 등 `Trust <folder>? [y/N]` 질문에서 거절했습니다. 리뷰를 시작하려면 `claude ultrareview`를 다시 실행하고 `y`로 답합니다.

3434* **``Ultrareview did not start: `--trust-workspace` takes no value``**: PR 번호나 `false` 등 플래그가 아닌 무언가가 `--trust-workspace` 뒤에 있습니다. 폴더를 신뢰하지 않는다면 플래그를 빼십시오. 이번 실행에서 신뢰하려면 PR 번호나 기본 브랜치를 플래그 앞에 둡니다: `claude ultrareview 1234 --trust-workspace`.3451* **``Ultrareview did not start: `--trust-workspace` takes no value``**: `--trust-workspace` 뒤에 PR 번호나 `false`처럼 플래그가 아닌 것이 옵니다. 폴더를 신뢰하지 않는다면 플래그를 빼세요. 이번 실행에서 신뢰하려면 PR 번호나 기본 브랜치를 플래그 앞에 둡니다: `claude ultrareview 1234 --trust-workspace`.

3435 3452 

3436v2.1.309 이전에는 `claude ultrareview`가 `--trust-workspace`를 받지 않았습니다.3453v2.1.309 이전에는 `claude ultrareview`가 `--trust-workspace`를 받지 않았습니다.

3437 3454 


3705 3722 

3706### origin/HEAD가 없으면 /security-review가 실패함3723### origin/HEAD가 없으면 /security-review가 실패함

3707 3724 

3708[`/security-review`](https://code.claude.com/docs/ko/commands#all-commands)는 브랜치를 `origin/HEAD`와 비교한 diff로 리뷰 컨텍스트를 구성합니다. `origin/HEAD`는 `origin` 원격의 기본 브랜치가 무엇인지 기록하는 로컬 ref입니다. 이 ref가 없으면 diff를 수집하는 git 명령이 실패하고 리뷰가 시작되기 전에 중단됩니다.3725[`/security-review`](https://code.claude.com/docs/ko/commands#all-commands)는 `origin` 원격의 기본 브랜치가 무엇인지 기록하는 로컬 참조인 `origin/HEAD`와 현재 브랜치를 비교한 diff로 리뷰 컨텍스트를 구성합니다. 이 참조가 없으면 diff를 수집하는 git 명령이 실패하고, 리뷰는 시작되기 전에 중단됩니다.

3709 3726 

3710```text theme={null}3727```text theme={null}

3711Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]3728Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]


3724 3741 

3725명령이 실행되기 전에 발생하는 관련 메시지도 있습니다.3742명령이 실행되기 전에 발생하는 관련 메시지도 있습니다.

3726 3743 

3727* `Shell command permission check failed for pattern "..."`: 명령의 권한 검사가 명령을 허용하지 않았습니다. [주입된 명령에 대한 권한 검사](https://code.claude.com/docs/ko/skills.md#permission-checks-on-injected-commands)에서 각 권한 모드에서 어떤 결과가 중단되는지와 `allowed-tools`로 명령을 미리 승인하는 방법을 다룹니다3744* `Shell command permission check failed for pattern "..."`: 명령의 권한 검사가 이를 허용하지 않았습니다. [주입된 명령의 권한 검사](https://code.claude.com/docs/ko/skills.md#permission-checks-on-injected-commands)에서 각 권한 모드에서 어떤 결과가 중단으로 이어지는지, 그리고 `allowed-tools`로 명령을 사전 승인하는 방법을 다룹니다

3728* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: 스킬의 frontmatter가 bash가 없는 컴퓨터에서 bash를 요구합니다. Git for Windows를 설치하거나 frontmatter를 `shell: powershell`로 변경합니다. [주입된 명령이 실행되는 방식](https://code.claude.com/docs/ko/skills.md#how-injected-commands-run)을 참조하세요3745* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: 스킬의 frontmatter가 bash가 없는 컴퓨터에서 bash를 요구합니다. Git for Windows를 설치하거나 frontmatter를 `shell: powershell`로 변경합니다. [주입된 명령이 실행되는 방식](https://code.claude.com/docs/ko/skills.md#how-injected-commands-run)을 참조하세요

3729 3746 

3730**해결 방법:**3747**해결 방법:**


3878 3895 

3879* **기본 브랜치를 전달하지 않은 경우**: Claude Code는 저장소의 기본 브랜치와 비교했으며, 위 예시처럼 기본 브랜치를 명시적으로 전달하도록 제안합니다3896* **기본 브랜치를 전달하지 않은 경우**: Claude Code는 저장소의 기본 브랜치와 비교했으며, 위 예시처럼 기본 브랜치를 명시적으로 전달하도록 제안합니다

3880* **이미 클론에 있는 기본 브랜치를 전달한 경우**: 힌트는 ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``입니다3897* **이미 클론에 있는 기본 브랜치를 전달한 경우**: 힌트는 ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``입니다

3881* **클론에 없던 기본 브랜치를 전달한 경우**: Claude Code가 비교하기 전에 origin에서 해당 브랜치를 가져왔습니다. 힌트는 ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``이며, Claude Code가 클론이 얕은(shallow) 클론인지 판단할 수 없는 경우에는 대신 `git fetch --unshallow origin`을 제안합니다. v2.1.221 이전에는 가져온 모든 기본 브랜치에 대해 `git fetch --unshallow origin`을 제안했으며, 완전한 클론에서는 이 명령이 `fatal: --unshallow on a complete repository does not make sense`와 함께 실패합니다.3898* **클론에 없는 기본 브랜치를 전달한 경우**: Claude Code는 비교하기 전에 origin에서 해당 브랜치를 가져왔습니다. 힌트는 ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``입니다. Claude Code가 클론이 shallow 클론인지 판단할 수 없는 경우에는 대신 `git fetch --unshallow origin`을 제안합니다. v2.1.221 이전에는 가져온 모든 기본 브랜치에 대해 `git fetch --unshallow origin`을 제안했으며, 완전한 클론에서는 이 명령이 `fatal: --unshallow on a complete repository does not make sense`와 함께 실패했습니다.

3882 3899 

3883**해결 방법:**3900**해결 방법:**

3884 3901 


4227 4244 

4228### /feedback is disabled by your organization's policy4245### /feedback is disabled by your organization's policy

4229 4246 

4230이 메시지는 조직의 정책이 Claude Code에서의 제품 피드백을 허용하지 않으므로 `/feedback`, `/bug`, `/share`가 피드백 대화 상자를 열지 않는다는 의미입니다. 메시지에는 Claude Code 프롬프트에서 입력한 명령이 표시됩니다:4247이 메시지는 제품 피드백이 꺼져 있어 입력한 명령이 피드백 대화 상자를 열지 않는다는 의미입니다. 조직 정책과 이전 거부 모두 이 메시지를 발생시킵니다.

4248 

4249* **조직 정책**: 조직 정책에서 Claude Code의 제품 피드백을 허용하지 않습니다. `/feedback`, `/bug`, `/share` 모두 이 메시지로 응답합니다.

4250* **이전 거부**: 피드백 서비스가 [`Couldn't send feedback: Feedback has not been enabled for your organization.`](#couldnt-send-feedback) 등으로 보낸 보고서를 거부했습니다. 이후 `/feedback`과 `/bug`가 이 메시지로 응답할 수 있습니다. 이 상태는 이 컴퓨터에서 해당 거부 시점부터 7일간 유지됩니다. Pro 및 Max를 포함한 모든 플랜에 적용됩니다.

4251 

4252메시지에는 Claude Code 프롬프트에서 입력한 명령이 표시됩니다.

4231 4253 

4232```text wrap theme={null}4254```text wrap theme={null}

4233/feedback is disabled by your organization's policy. To report a bug, open an issue at https://github.com/anthropics/claude-code/issues. Issues are public, so leave out anything confidential.4255/feedback is disabled by your organization's policy. To report a bug, open an issue at https://github.com/anthropics/claude-code/issues. Issues are public, so leave out anything confidential.


4238**해결 방법:**4260**해결 방법:**

4239 4261 

4240* 버그를 보고하려면 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)에서 이슈를 엽니다. 이곳의 이슈는 누구나 읽을 수 있으므로 코드, 트랜스크립트 및 기타 기밀 정보는 포함하지 마십시오.4262* 버그를 보고하려면 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)에서 이슈를 엽니다. 이곳의 이슈는 누구나 읽을 수 있으므로 코드, 트랜스크립트 및 기타 기밀 정보는 포함하지 마십시오.

4263* 이전 거부 후에는 7일이 지날 때까지 기다린 후, 보고서를 다시 보내 서비스가 여전히 거부하는지 확인합니다

4264 

4265v2.1.319 이전에는 이전 거부가 이 메시지를 발생시키지 않았습니다.

4241 4266 

4242v2.1.302 이전에는 전체 메시지가 `/feedback is disabled by your organization's policy. Contact your organization admin to enable it.`였습니다.4267v2.1.302 이전에는 전체 메시지가 `/feedback is disabled by your organization's policy. Contact your organization admin to enable it.`였습니다.

4243 4268 


4654* 답변할 시간을 더 주려면 서버의 구성 항목에서 더 긴 [`timeout`](https://code.claude.com/docs/ko/mcp#time-limits-on-mcp-tool-calls)을 밀리초 단위로 설정합니다. 예를 들어 10분이라면 `"timeout": 600000`으로 설정합니다4679* 답변할 시간을 더 주려면 서버의 구성 항목에서 더 긴 [`timeout`](https://code.claude.com/docs/ko/mcp#time-limits-on-mcp-tool-calls)을 밀리초 단위로 설정합니다. 예를 들어 10분이라면 `"timeout": 600000`으로 설정합니다

4655* 대신 대화형 세션에서 작업을 실행하고 서버의 [대화 상자](https://code.claude.com/docs/ko/mcp.md#respond-to-mcp-elicitation-requests)에 직접 답변합니다4680* 대신 대화형 세션에서 작업을 실행하고 서버의 [대화 상자](https://code.claude.com/docs/ko/mcp.md#respond-to-mcp-elicitation-requests)에 직접 답변합니다

4656 4681 

4682### Permission prompt tool returned an invalid result

4683 

4684[`--permission-prompt-tool`](https://code.claude.com/docs/ko/cli-reference#cli-flags)에 전달한 도구가 Claude Code가 읽을 수 없는 응답을 반환했기 때문에, 응답이 호출을 허용했더라도 그 응답을 기다리던 도구 호출은 실행되지 않았습니다.

4685 

4686```text wrap theme={null}

4687Permission prompt tool returned an invalid result. Expected a single text block param with type="text" and a string text value.

4688```

4689 

4690**조치 방법:**

4691 

4692* 텍스트가 `{"behavior": "allow"}` 또는 `{"behavior": "deny", "message": "<reason>"}`인 텍스트 블록 하나를 반환합니다. 입력을 변경하려면 `allow` 객체에 `updatedInput`을 추가합니다. v2.1.86부터 v2.1.206까지는 `allow`에서 입력을 유지하려면 `"updatedInput": {}`가 필요했습니다.

4693* MCP SDK가 자동으로 추가할 수 있는 [`structuredContent`](https://code.claude.com/docs/ko/agent-sdk/custom-tools#return-structured-data)를 반환하지 않습니다. 예를 들어 도구를 다음과 같이 등록합니다.

4694 * **`mcp.server`의 `FastMCP` 또는 `MCPServer`**: `structured_output=False`로 등록합니다

4695 * **`fastmcp`의 `FastMCP`**: `output_schema=None`으로 등록하고 문자열을 반환합니다

4696 * **MCP TypeScript SDK**: `outputSchema` 없이 등록합니다

4697* 약 40KB 이상의 입력에서만 오류가 발생한다면 입력을 `updatedInput`이나 거부의 `message`에 복사하지 마세요. 그렇게 큰 입력을 변경하려면 [프롬프트 도구의 출력 제한을 높입니다](https://code.claude.com/docs/ko/mcp.md#raise-the-limit-for-a-specific-tool).

4698 

4657### Agent would be spawned with zero tools4699### Agent would be spawned with zero tools

4658 4700 

4659서브에이전트의 [`tools` 목록](https://code.claude.com/docs/ko/sub-agents#supported-frontmatter-fields)에 있는 모든 항목이 사용 가능한 도구와 일치하지 않았기 때문에 Claude Code가 서브에이전트 실행을 거부했습니다. 도구가 없으면 서브에이전트는 아무 작업도 할 수 없습니다. 메시지는 항목을 문제 유형별로 분류합니다.4701서브에이전트의 [`tools` 목록](https://code.claude.com/docs/ko/sub-agents#supported-frontmatter-fields)에 있는 모든 항목이 사용 가능한 도구와 일치하지 않았기 때문에 Claude Code가 서브에이전트 실행을 거부했습니다. 도구가 없으면 서브에이전트는 아무 작업도 할 수 없습니다. 메시지는 항목을 문제 유형별로 분류합니다.


6432 6474 

6433v2.1.257 이전에는 `claude doctor`가 이러한 파일을 표시하지 않았으며, 이전 버전에서도 세션이 강제 종료되면 같은 자리 표시자가 남습니다.6475v2.1.257 이전에는 `claude doctor`가 이러한 파일을 표시하지 않았으며, 이전 버전에서도 세션이 강제 종료되면 같은 자리 표시자가 남습니다.

6434 6476 

6477### Claude Code 설정 파일이 두 개 존재함

6478 

6479Claude Code는 이 메시지가 명시한 첫 번째 파일을 사용하고 있으므로 두 번째 파일의 내용은 적용되지 않습니다. 첫 번째 파일은 [`.claude.json`](https://code.claude.com/docs/ko/claude-directory#ce-claude-json)의 이전 이름인 `.config.json`입니다. 메시지에는 어느 파일에 사용자의 설정이 들어 있는지 확인하는 방법이 포함되어 있습니다:

6480 

6481```text wrap theme={null}

6482Two Claude Code config files exist: this run uses /home/you/.claude/.config.json, not /home/you/.claude.json. The file with the higher count here is usually yours, and this prints nothing else from them: grep -c -E '"(hasCompletedOnboarding|mcpServers)"' "/home/you/.claude/.config.json" "/home/you/.claude.json". To end this: if several hosts share this home, first get every host to version 2.1.319 or later, since an older one can write a moved .config.json back. Then stop your Claude processes on every host, move aside the one you do not want, and start none until no host lists it.

6483```

6484 

6485Windows에서는 `grep` 명령이 포함된 문장 대신 `The one with hasCompletedOnboarding or mcpServers in it is usually yours.`가 표시됩니다.

6486 

6487**할 일:**

6488 

6489**1. 설정이 들어 있는 파일 찾기**

6490 

6491* **Windows**: 두 파일을 모두 열고 어느 파일에 `hasCompletedOnboarding` 또는 `mcpServers`가 들어 있는지 확인하세요

6492* **기타 플랫폼**: 셸에서 메시지의 `grep` 명령을 실행하고 어느 파일의 개수가 더 높은지 확인하세요

6493 

6494**2. 홈 디렉터리를 공유하는 모든 호스트 업데이트**

6495 

6496여러 호스트가 이 홈 디렉터리를 공유하는 경우, 먼저 모든 호스트의 Claude Code를 메시지가 명시한 버전 이상으로 업데이트하세요. 이전 버전은 옮겨 둔 `.config.json`을 다시 기록할 수 있습니다.

6497 

6498**3. Claude Code 중지**

6499 

6500모든 호스트에서 Claude Code 프로세스를 중지하세요.

6501 

6502**4. 원하지 않는 파일 옮기기**

6503 

6504원하지 않는 파일을 해당 폴더 밖으로 옮기세요. 나중에 되돌릴 수 있도록 삭제하지 말고 옮기세요.

6505 

6506**5. Claude Code를 다시 시작하기 전에 기다리기**

6507 

6508옮긴 파일이 이전 경로에 있다고 표시하는 호스트가 하나도 남지 않을 때까지 어느 호스트에서도 Claude Code를 시작하지 마세요.

6509 

6510두 파일 중 하나가 없어지면 메시지가 더 이상 표시되지 않습니다.

6511 

6435### 나중에 이 변경을 다시 수행하세요: \~/.claude.json을 업데이트할 수 없음6512### 나중에 이 변경을 다시 수행하세요: \~/.claude.json을 업데이트할 수 없음

6436 6513 

6437stderr의 이 알림은 로그인이나 신뢰 프롬프트에 대한 응답처럼 [`~/.claude.json`](https://code.claude.com/docs/ko/claude-directory#ce-claude-json)에 대한 변경 사항이 파일에 저장되지 않았다는 의미입니다:6514stderr의 이 알림은 로그인이나 신뢰 프롬프트에 대한 응답처럼 [`~/.claude.json`](https://code.claude.com/docs/ko/claude-directory#ce-claude-json)에 대한 변경 사항이 파일에 저장되지 않았다는 의미입니다:


6450 6527 

6451* 구성된 [`--fallback-model`](https://code.claude.com/docs/ko/cli-reference#cli-flags)은 가용성 오류 후 해당 턴에만 제어를 인수받으며, 트랜스크립트에 공지가 표시됩니다6528* 구성된 [`--fallback-model`](https://code.claude.com/docs/ko/cli-reference#cli-flags)은 가용성 오류 후 해당 턴에만 제어를 인수받으며, 트랜스크립트에 공지가 표시됩니다

6452* Amazon Bedrock 또는 Google Cloud의 Agent Platform 시작 확인에서 기본 모델을 사용할 수 없음을 발견하거나, 계정이 [세션 중간에 모델에 대한 액세스를 잃음](https://code.claude.com/docs/ko/amazon-bedrock.md#when-a-model-is-disabled-mid-session)6529* Amazon Bedrock 또는 Google Cloud의 Agent Platform 시작 확인에서 기본 모델을 사용할 수 없음을 발견하거나, 계정이 [세션 중간에 모델에 대한 액세스를 잃음](https://code.claude.com/docs/ko/amazon-bedrock.md#when-a-model-is-disabled-mid-session)

6453* [자동 모델 폴백](https://code.claude.com/docs/ko/model-config.md#automatic-model-fallback)은 Fable 5.1, Fable 5, Opus 5.5, Sonnet 5.5, Opus 5에서 세션을 플래그된 카테고리의 폴백 모델로 이동하며, 해당 카테고리에 폴백 모델이 있을 때 트랜스크립트에 공지를 표시합니다6530* Fable 모델, Opus 5.5, Sonnet 5.5, Opus 5의 [자동 모델 폴백](https://code.claude.com/docs/ko/model-config.md#automatic-model-fallback)은 플래그된 카테고리에 폴백 모델이 있는 경우 세션을 해당 카테고리의 폴백 모델로 이동합니다. 트랜스크립트에 공지가 표시됩니다

6454 6531 

6455아래의 모델 선택 확인은 두 번째와 세 번째 경우를 포착합니다. 첫 번째는 `/model` 변경이 아니라 트랜스크립트 공지로 나타납니다. [모델 구성](https://code.claude.com/docs/ko/model-config.md)에서 각 폴백이 적용되는 시기를 설명합니다.6532아래의 모델 선택 확인은 두 번째와 세 번째 경우를 포착합니다. 첫 번째는 `/model` 변경이 아니라 트랜스크립트 공지로 나타납니다. [모델 구성](https://code.claude.com/docs/ko/model-config.md)에서 각 폴백이 적용되는 시기를 설명합니다.

6456 6533 

fast-mode.md +21 −16

Details

4 4 

5# 빠른 모드로 응답 속도 향상5# 빠른 모드로 응답 속도 향상

6 6 

7> Claude Code에서 빠른 모드를 전환하여 더 빠른 Opus 응답을 받습니다.7> Claude Code에서 `/fast`로 빠른 모드를 전환하여 더 빠른 Opus 및 Fable 응답을 받습니다.

8 8 

9> [!NOTE]9> [!NOTE]

10>10>

11> Claude Opus 5.5의 빠른 모드를 사용할 수 있으며, Claude Opus 5 및 Claude Opus 4.8의 빠른 모드는 [리서치 프리뷰](#research-preview) 단계입니다.11> Claude Fable 5.2 및 Claude Opus 5.5의 빠른 모드를 사용할 수 있으며, Claude Opus 5 및 Claude Opus 4.8의 빠른 모드는 [리서치 프리뷰](#research-preview) 단계입니다.

12 12 

13빠른 모드는 Claude Opus를 위한 고속 구성으로, 토큰당 더 높은 비용으로 모델을 최대 2.5배 빠르게 만듭니다. 빠른 반복이나 라이브 디버깅과 같은 대화형 작업에서 속도가 필요할 때 `/fast`로 켜고, 비용이 지연 시간보다 중요할 때 끕니다.13빠른 모드는 지원되는 모델을 위한 고속 구성으로, 토큰당 더 높은 비용으로 모델을 최대 2.5배 빠르게 만듭니다. 빠른 반복이나 라이브 디버깅과 같은 대화형 작업에서 속도가 필요할 때 `/fast`로 켜고, 비용이 지연 시간보다 중요할 때 끕니다.

14 14 

15빠른 모드는 다른 모델이 아닙니다. 비용 효율성보다 속도를 우선시하는 다른 API 구성을 사용하는 동일한 Claude Opus를 사용합니다. 동일한 품질과 기능을 얻으며, 응답만 더 빠릅니다. 빠른 모드는 Opus 5.5, Opus 5 및 Opus 4.8에서 지원됩니다. Sonnet, Haiku 또는 다른 모델에서는 사용할 수 없습니다.15빠른 모드는 비용 효율성보다 속도를 우선시하는 다른 API 구성으로 동일한 모델을 사용하므로, 품질과 기능은 동일하게 유지됩니다. 빠른 모드는 Fable 5.2, Opus 5.5, Opus 5 및 Opus 4.8에서 지원됩니다. Sonnet, Haiku 또는 다른 모델에서는 사용할 수 없습니다.

16 16 

17> [!WARNING]17> [!WARNING]

18>18>


26알아야 할 사항:26알아야 할 사항:

27 27 

28* Claude Code CLI에서 `/fast`를 사용하여 빠른 모드를 전환합니다. [VS Code 확장 프로그램](https://code.claude.com/docs/ko/vs-code.md)은 선택한 모델이 빠른 모드를 지원할 때 **빠른 모드 전환** 명령을 제공합니다. Claude Code는 해당 전환을 [`fastMode` 설정](#toggle-fast-mode)에 저장합니다.28* Claude Code CLI에서 `/fast`를 사용하여 빠른 모드를 전환합니다. [VS Code 확장 프로그램](https://code.claude.com/docs/ko/vs-code.md)은 선택한 모델이 빠른 모드를 지원할 때 **빠른 모드 전환** 명령을 제공합니다. Claude Code는 해당 전환을 [`fastMode` 설정](#toggle-fast-mode)에 저장합니다.

29* 빠른 모드 가격은 Opus 5.5에서 MTok 입력/출력당 \$8/\$40이고 Opus 5 및 Opus 4.8에서 \$10/\$50입니다.29* 빠른 모드 가격은 MTok 입력/출력당 Fable 5.2에서 \$16/\$80, Opus 5.5에서 \$8/\$40, Opus 5 및 Opus 4.8에서 \$10/\$50입니다.

30* 구독 요금제(Pro/Max/Ultra/Team/Enterprise)의 Claude Code 사용자 및 Claude Console에서 사용할 수 있습니다. Team 및 Enterprise 조직은 먼저 소유자가 활성화해야 하며, Console 조직은 Opus 5 또는 Opus 4.8에서 사용하려면 먼저 액세스를 프로비저닝해야 합니다. 두 가지 모두 [요구 사항](#requirements)에 설명되어 있습니다.30* 구독 요금제(Pro/Max/Ultra/Team/Enterprise)의 Claude Code 사용자 및 Claude Console에서 사용할 수 있습니다. Team 및 Enterprise 조직은 먼저 소유자가 활성화해야 하며, Console 조직은 Opus 5 또는 Opus 4.8에서 사용하려면 먼저 액세스를 프로비저닝해야 합니다. 두 가지 모두 [요구 사항](#requirements)에 설명되어 있습니다.

31* 구독 요금제(Pro/Max/Ultra/Team/Enterprise)의 Claude Code 사용자의 경우, 빠른 모드는 사용량 크레딧을 통해서만 사용 가능하며 구독 속도 제한에 포함되지 않습니다.31* 구독 요금제(Pro/Max/Ultra/Team/Enterprise)의 Claude Code 사용자의 경우, 빠른 모드는 사용량 크레딧을 통해서만 사용 가능하며 구독 속도 제한에 포함되지 않습니다.

32 32 


35CLI에서 다음 중 한 가지 방법으로 빠른 모드를 전환합니다:35CLI에서 다음 중 한 가지 방법으로 빠른 모드를 전환합니다:

36 36 

37* `/fast`를 입력하고 Space를 눌러 켜거나 끕니다. 그 다음 Enter를 눌러 확인합니다37* `/fast`를 입력하고 Space를 눌러 켜거나 끕니다. 그 다음 Enter를 눌러 확인합니다

38* 빠른 모드를 지원하는 모델에서 [사용자 설정 파일](https://code.claude.com/docs/ko/settings.md)에 `"fastMode": true`를 설정합니다. 다른 모델에서 이를 설정하면 해당 모델이 그대로 유지되며 빠른 모드는 꺼진 상태로 남습니다.38* 빠른 모드를 지원하는 모델에서 [사용자 설정 파일](https://code.claude.com/docs/ko/settings.md)에 `"fastMode": true`를 설정합니다. 다른 모델에서 이를 설정하면 해당 모델이 그대로 유지되며 빠른 모드는 꺼진 상태로 남습니다. Fable 5.2에서는 Fable 5.2를 사용하는 동안 `/fast`를 실행하기 전까지 이 설정만으로는 효과가 없습니다.

39 39 

40기본적으로 빠른 모드는 대화형 세션에서 켜면 지원되는 모델에서 세션 간에 유지됩니다. 빠른 모드를 각 세션마다 재설정하도록 구성할 수 있습니다. 자세한 내용은 [세션별 옵트인 필요](#require-per-session-opt-in)를 참조합니다.40기본적으로 빠른 모드는 대화형 세션에서 켜면 지원되는 모델에서 세션 간에 유지됩니다. Fable 5.2에서는 [Fable 5.2를 사용하는 동안 켠](#switch-models-while-fast-mode-is-on) 경우에만 유지됩니다. 빠른 모드를 각 세션마다 재설정하도록 구성할 수 있습니다. 자세한 내용은 [세션별 옵트인 필요](#require-per-session-opt-in)를 참조합니다.

41 41 

42[클라우드 세션](#use-fast-mode-in-cloud-sessions) 외부에서 [비대화형 모드](https://code.claude.com/docs/ko/headless.md)에서 `-p` 플래그를 사용하면, `/fast`는 [`--settings`](https://code.claude.com/docs/ko/cli-reference#cli-flags) 값에 빠른 모드가 켜져 있는 상태로 시작된 세션에서만 작동합니다. 예를 들어 `claude -p --settings '{"fastMode": true}'`와 같이 사용하면, 토글이 해당 세션에만 적용되며 기본값으로 저장되지 않습니다. `-p` 형식은 Claude Code v2.1.205 이상이 필요합니다. 비대화형 모드의 다른 곳에서는 빠른 모드를 사용할 수 없다는 명령 보고가 나타납니다.42[클라우드 세션](#use-fast-mode-in-cloud-sessions) 외부에서 [비대화형 모드](https://code.claude.com/docs/ko/headless.md)에서 `-p` 플래그를 사용하면, `/fast`는 [`--settings`](https://code.claude.com/docs/ko/cli-reference#cli-flags) 값에 빠른 모드가 켜져 있는 상태로 시작된 세션에서만 작동합니다. 예를 들어 `claude -p --settings '{"fastMode": true}'`와 같이 사용하면, 토글이 해당 세션에만 적용되며 기본값으로 저장되지 않습니다. `-p` 형식은 Claude Code v2.1.205 이상이 필요합니다. 비대화형 모드의 다른 곳에서는 빠른 모드를 사용할 수 없다는 명령 보고가 나타납니다.

43 43 


48`/fast`로 빠른 모드를 활성화하면:48`/fast`로 빠른 모드를 활성화하면:

49 49 

50* 현재 모델이 빠른 모드를 지원하지 않으면 Claude Code가 Opus로 전환합니다50* 현재 모델이 빠른 모드를 지원하지 않으면 Claude Code가 Opus로 전환합니다

51* Fable 5.2에서 빠른 모드를 사용하려면 Claude Code v2.1.321 이상이 필요합니다

51* 확인 메시지가 표시됩니다: "Fast mode ON"52* 확인 메시지가 표시됩니다: "Fast mode ON"

52* 빠른 모드가 활성화되어 있는 동안 프롬프트 옆에 작은 `↯` 아이콘이 나타납니다53* 빠른 모드가 활성화되어 있는 동안 프롬프트 옆에 작은 `↯` 아이콘이 나타납니다

53* 언제든지 `/fast`를 다시 실행하여 빠른 모드가 켜져 있는지 꺼져 있는지 확인합니다54* 언제든지 `/fast`를 다시 실행하여 빠른 모드가 켜져 있는지 꺼져 있는지 확인합니다

54 55 

55Opus 5.5는 Claude Code v2.1.280 이상에서 빠른 모드 기본값입니다. v2.1.280 이전에는 v2.1.219부터 Opus 5로 기본 설정되었습니다.56Opus 5.5는 Claude Code v2.1.280 이상에서 빠른 모드 기본값입니다. v2.1.280 이전에는 v2.1.219부터 Opus 5로 기본 설정되었습니다.

56 57 

57`/fast`를 다시 실행하여 빠른 모드를 비활성화하면 Opus에 유지됩니다. 다른 모델로 전환하려면 `/model`을 사용합니다.58`/fast`를 다시 실행하여 빠른 모드를 비활성화하면 현재 모델이 유지됩니다. 다른 모델로 전환하려면 `/model`을 사용합니다.

58 59 

59### 빠른 모드가 켜져 있는 동안 모델 전환60### 빠른 모드가 켜져 있는 동안 모델 전환

60 61 

61빠른 모드는 양방향 모델 전환을 따릅니다:62빠른 모드는 모델 전환을 따릅니다:

62 63 

63* **전환**: 빠른 모드를 지원하지 않는 모델로 전환하면 Claude Code가 빠른 모드를 끕니다. 여기에는 Opus 4.7이 포함됩니다. v2.1.221 이전에는 Opus 4.7로 전환한 후에도 빠른 모드가 켜져 있었고 API가 요청을 거부했습니다.64* **전환**: 빠른 모드를 지원하지 않는 모델로 전환하면 Claude Code가 빠른 모드를 끕니다. 여기에는 Opus 4.7이 포함됩니다. v2.1.221 이전에는 Opus 4.7로 전환한 후에도 빠른 모드가 켜져 있었고 API가 요청을 거부했습니다.

64* **다시 전환**: 지원되는 Opus 모델로 다시 전환하면 저장된 빠른 모드 기본 설정이 켜져 있을 때 빠른 모드가 다시 켜집니다. 이는 새 세션이 기본적으로 시작되는 것과 동일한 기본 설정입니다. 모델 전환은 저장된 기본 설정이 꺼져 있는 세션에서는 빠른 모드를 절대 켜지 않으며, [세션별 옵트인](#require-per-session-opt-in)이 구성된 경우 다시 전환해도 켜지 않습니다. `/fast`를 실행하여 다시 활성화합니다.65* **다시 전환**: 저장된 기본 설정이 켜져 있으면 지원되는 Opus 모델에서 빠른 모드가 다시 켜집니다. [세션별 옵트인](#require-per-session-opt-in)을 사용하는 경우에는 대신 `/fast`를 실행합니다.

66* **Fable 5.2로 전환**: Fable 5.2를 사용하는 동안 켠 경우가 아니면 빠른 모드가 꺼집니다. 켜려면 Fable 5.2에서 `/fast`를 실행합니다. [세션별 옵트인](#require-per-session-opt-in)을 설정하지 않은 경우, 끄거나 다른 모델에서 켜기 전까지 이 상태가 세션 간에 유지됩니다.

65 67 

66모델 전환이 빠른 모드를 켜거나 끌 때마다 Claude Code는 `Fast mode ON` 또는 `Fast mode OFF` 확인을 표시하며, 빠른 모드가 켜져 있는 동안 `↯` 아이콘이 나타납니다. 이는 `/model`로 전환하든, [`/config model=<model>`](https://code.claude.com/docs/ko/settings)로 전환하든, [원격 제어](https://code.claude.com/docs/ko/remote-control.md)를 통해 연결된 기기에서 전환하든 적용됩니다.68모델 전환이 빠른 모드를 켜거나 끌 때마다 Claude Code는 `Fast mode ON` 또는 `Fast mode OFF` 확인을 표시하며, 빠른 모드가 켜져 있는 동안 `↯` 아이콘이 나타납니다. 이는 `/model`로 전환하든, [`/config model=<model>`](https://code.claude.com/docs/ko/settings)로 전환하든, [원격 제어](https://code.claude.com/docs/ko/remote-control.md)를 통해 연결된 기기에서 전환하든 적용됩니다.

67 69 


77 79 

78## 비용 트레이드오프 이해80## 비용 트레이드오프 이해

79 81 

80빠른 모드는 표준 Opus보다 토큰당 가격이 높습니다:82빠른 모드는 표준 속도보다 토큰당 가격이 높습니다:

81 83 

82| 모델 | 입력 (MTok) | 출력 (MTok) |84| 모델 | 입력 (MTok) | 출력 (MTok) |

83| - | - | - |85| - | - | - |

86| Fable 5.2 | \$16 | \$80 |

84| Opus 5.5 | \$8 | \$40 |87| Opus 5.5 | \$8 | \$40 |

85| Opus 5 | \$10 | \$50 |88| Opus 5 | \$10 | \$50 |

86| Opus 4.8 | \$10 | \$50 |89| Opus 4.8 | \$10 | \$50 |

87 90 

88빠른 모드 가격은 전체 1M 토큰 컨텍스트 윈도우에 걸쳐 고정입니다. 표준 Opus 요금을 비교하려면 [Claude 가격 책정 참고](https://platform.claude.com/docs/ko/about-claude/pricing)를 참조하십시오.91빠른 모드 가격은 전체 1M 토큰 컨텍스트 윈도우에 걸쳐 고정입니다. 비교할 표준 요금은 [Claude 가격 책정 참고](https://platform.claude.com/docs/ko/about-claude/pricing)를 참조하십시오.

89 92 

90대화에서 빠른 모드를 처음 활성화하면 전체 대화 컨텍스트에 대해 빠른 모드의 캐시되지 않은 입력 토큰 전체 가격을 지불합니다. 대화가 깊어질수록 이 비용이 커지므로, 대화를 시작할 때 빠른 모드를 활성화하면 요금이 가장 적습니다. 빠른 모드와 표준 속도는 [별도의 캐시](https://code.claude.com/docs/ko/prompt-caching.md#turning-on-fast-mode)를 유지하므로, 이후 전환할 때마다 대화의 일부 또는 전체를 다시 캐시되지 않은 상태로 읽습니다.93대화에서 빠른 모드를 처음 활성화하면 전체 대화 컨텍스트에 대해 빠른 모드의 캐시되지 않은 입력 토큰 전체 가격을 지불합니다. 대화가 깊어질수록 이 비용이 커지므로, 대화를 시작할 때 빠른 모드를 활성화하면 요금이 가장 적습니다. 빠른 모드와 표준 속도는 [별도의 캐시](https://code.claude.com/docs/ko/prompt-caching.md#turning-on-fast-mode)를 유지하므로, 이후 전환할 때마다 대화의 일부 또는 전체를 다시 캐시되지 않은 상태로 읽습니다.

91 94 


137 140 

138* **유료 Console 조직**: Claude Console 계정은 사용 크레딧을 사용하지 않으며, 조직은 나머지 API 사용량과 함께 빠른 모드에 대해 토큰당 비용을 지불합니다. Console의 무료 Evaluation 요금제에서 `/fast`는 "Fast mode unavailable during evaluation. Please purchase credits."을 표시합니다. 이를 해결하려면 [Console 청구 설정](https://platform.claude.com/settings/billing)에서 크레딧을 구매합니다.141* **유료 Console 조직**: Claude Console 계정은 사용 크레딧을 사용하지 않으며, 조직은 나머지 API 사용량과 함께 빠른 모드에 대해 토큰당 비용을 지불합니다. Console의 무료 Evaluation 요금제에서 `/fast`는 "Fast mode unavailable during evaluation. Please purchase credits."을 표시합니다. 이를 해결하려면 [Console 청구 설정](https://platform.claude.com/settings/billing)에서 크레딧을 구매합니다.

139 142 

140 Opus 5.5에서의 빠른 모드는 조직의 [사용량 티어](https://platform.claude.com/docs/en/api/rate-limits)에도 영향을 받습니다.143 Fable 5.2 또는 Opus 5.5에서의 빠른 모드는 조직의 [사용량 티어](https://platform.claude.com/docs/en/api/rate-limits)에도 영향을 받습니다.

141* **Team 및 Enterprise의 Owner 활성화**: 빠른 모드는 Team 및 Enterprise 조직에 대해 기본적으로 비활성화됩니다. 사용자가 액세스할 수 있으려면 Owner가 명시적으로 [빠른 모드를 활성화](#enable-fast-mode-for-your-organization)해야 합니다.144* **Team 및 Enterprise의 Owner 활성화**: 빠른 모드는 Team 및 Enterprise 조직에 대해 기본적으로 비활성화됩니다. 사용자가 액세스할 수 있으려면 Owner가 명시적으로 [빠른 모드를 활성화](#enable-fast-mode-for-your-organization)해야 합니다.

142 145 

143> [!NOTE]146> [!NOTE]


147> * **빠른 모드가 활성화되지 않음**: 조직에 대해 빠른 모드가 활성화되지 않은 경우 `/fast`로 빠른 모드를 켜면 "Fast mode has been disabled by your organization."이 표시됩니다.150> * **빠른 모드가 활성화되지 않음**: 조직에 대해 빠른 모드가 활성화되지 않은 경우 `/fast`로 빠른 모드를 켜면 "Fast mode has been disabled by your organization."이 표시됩니다.

148> * **관리 설정에 의해 빠른 모드가 꺼짐**: 조직이 [`fastMode: false`](https://code.claude.com/docs/ko/settings-reference#fastmode)를 설정하는 [관리 설정](https://code.claude.com/docs/ko/managed-settings.md)을 배포하는 경우 `/fast`로 빠른 모드를 켜면 동일한 "Fast mode has been disabled by your organization" 메시지가 표시됩니다.151> * **관리 설정에 의해 빠른 모드가 꺼짐**: 조직이 [`fastMode: false`](https://code.claude.com/docs/ko/settings-reference#fastmode)를 설정하는 [관리 설정](https://code.claude.com/docs/ko/managed-settings.md)을 배포하는 경우 `/fast`로 빠른 모드를 켜면 동일한 "Fast mode has been disabled by your organization" 메시지가 표시됩니다.

149> * **세션별 옵트인 필요**: [`fastModePerSessionOptIn: true`](#require-per-session-opt-in)를 설정하는 관리 설정은 대화형 터미널 세션을 제외한 모든 곳에서 `/fast on`을 동일한 메시지로 거부합니다.152> * **세션별 옵트인 필요**: [`fastModePerSessionOptIn: true`](#require-per-session-opt-in)를 설정하는 관리 설정은 대화형 터미널 세션을 제외한 모든 곳에서 `/fast on`을 동일한 메시지로 거부합니다.

150> * **빠른 모드 모델이 허용되지 않음**: 조직의 [`availableModels`](https://code.claude.com/docs/ko/model-config#restrict-model-selection) 허용 목록이 빠른 모드 Opus 모델을 제외하는 경우 "is not in your organization's allowed models"로 거부됩니다. 빠른 모드를 지원하는 허용된 Opus 모델에서 이미 실행 중인 세션에서는 `/fast`가 모델을 전환하는 대신 현재 모델에서 빠른 모드를 활성화합니다.153> * **빠른 모드 모델이 허용되지 않음**: 조직의 [`availableModels`](https://code.claude.com/docs/ko/model-config#restrict-model-selection) 허용 목록이 빠른 모드 Opus 모델을 제외하는 경우 빠른 모드를 켜려고 하면 "is not in your organization's allowed models"로 거부됩니다. 빠른 모드를 지원하는 허용된 모델에서 이미 실행 중인 세션에서는 `/fast`가 모델을 전환하는 대신 현재 모델에서 빠른 모드를 활성화합니다.

151 154 

152### 조직에 대해 빠른 모드 활성화155### 조직에 대해 빠른 모드 활성화

153 156 


196 199 

197### 세션별 옵트인 필요200### 세션별 옵트인 필요

198 201 

199기본적으로 사용자가 대화형 세션에서 켠 빠른 모드는 지원되는 모델에서 세션 간에 유지됩니다. 이를 변경하려면 [설정 파일](https://code.claude.com/docs/ko/settings.md#where-settings-live)에서 `fastModePerSessionOptIn`을 `true`로 설정합니다. 이로 인해 각 세션이 빠른 모드가 꺼진 상태로 시작되며 사용자가 `/fast`로 명시적으로 활성화해야 합니다. [Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) 또는 [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) 요금제의 소유자는 [서버 관리 설정](https://code.claude.com/docs/ko/server-managed-settings.md)을 통해 조직 전체에 배포할 수 있습니다.202기본적으로 사용자가 대화형 세션에서 켠 빠른 모드는 지원되는 모델에서 세션 간에 유지됩니다. Fable 5.2에서는 사용자가 [Fable 5.2를 사용하는 동안 켠](#switch-models-while-fast-mode-is-on) 경우에만 유지됩니다.

203 

204모든 세션이 빠른 모드가 꺼진 상태로 시작되도록 하려면 [설정 파일](https://code.claude.com/docs/ko/settings.md#where-settings-live)에서 `fastModePerSessionOptIn`을 `true`로 설정합니다. 그러면 사용자는 각 세션에서 `/fast`로 빠른 모드를 활성화합니다. [Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) 또는 [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) 요금제의 Owner는 [서버 관리 설정](https://code.claude.com/docs/ko/server-managed-settings.md)을 통해 조직 전체에 배포할 수 있습니다.

200 205 

201```json theme={null}206```json theme={null}

202{207{


210 215 

211## 속도 제한 처리216## 속도 제한 처리

212 217 

213빠른 모드는 표준 Opus와 별도의 속도 제한을 가집니다. Console 조직의 경우 Claude Platform의 [속도 제한](https://platform.claude.com/docs/en/api/rate-limits) 페이지에서 이에 대해 설명합니다. 빠른 모드 속도 제한에 도달하면:218빠른 모드는 표준 속도와 별도의 속도 제한을 가집니다. Console 조직의 경우 Claude Platform의 [속도 제한](https://platform.claude.com/docs/en/api/rate-limits) 페이지에서 이에 대해 설명합니다. 빠른 모드 속도 제한에 도달하면:

214 219 

2151. 빠른 모드가 자동으로 표준 속도로 폴백됩니다2201. 빠른 모드가 자동으로 표준 속도로 폴백됩니다

2162. `↯` 아이콘이 회색으로 변하여 쿨다운을 나타냅니다2212. `↯` 아이콘이 회색으로 변하여 쿨다운을 나타냅니다

hooks.md +11 −3

Details

1089 1089 

1090#### 터미널 알림 내보내기1090#### 터미널 알림 내보내기

1091 1091 

1092Hook은 제어 터미널 없이 실행되므로 이스케이프 시퀀스를 `/dev/tty`에 직접 쓰면 실패합니다. 대신 `terminalSequence` 필드에 이스케이프 시퀀스를 반환하면 Claude Code가 자체 터미널 쓰기 경로를 통해 이를 내보냅니다. 이 방식은 race-free이며 tmux 및 GNU screen 내에서 작동하고 `/dev/tty`가 없는 Windows에서도 작동합니다.1092Hook은 제어 터미널 없이 실행되므로 이스케이프 시퀀스를 `/dev/tty`에 직접 쓰면 실패합니다. 대신 `terminalSequence` 필드에 이스케이프 시퀀스를 반환하면 Claude Code가 자체 터미널 쓰기 경로를 통해 이를 내보냅니다. 이 방식은 race-free이며 `/dev/tty`가 없는 Windows에서도 작동합니다.

1093 1093 

1094이 필드는 허용 목록에 있는 하나 이상의 이스케이프 시퀀스로 구성된 문자열을 허용합니다:1094이 필드는 허용 목록에 있는 하나 이상의 이스케이프 시퀀스로 구성된 문자열을 허용합니다:

1095 1095 


1101 1101 

1102시퀀스는 BEL 또는 ST로 종료될 수 있습니다. CSI 커서 및 색상 시퀀스, OSC 팔레트 시퀀스, OSC 8 하이퍼링크, OSC 52 클립보드 쓰기, OSC 1337을 포함하여 허용 목록 외의 항목은 거부되고 필드는 무시됩니다.1102시퀀스는 BEL 또는 ST로 종료될 수 있습니다. CSI 커서 및 색상 시퀀스, OSC 팔레트 시퀀스, OSC 8 하이퍼링크, OSC 52 클립보드 쓰기, OSC 1337을 포함하여 허용 목록 외의 항목은 거부되고 필드는 무시됩니다.

1103 1103 

1104Claude Code는 hook의 출력을 처리할 때 시퀀스를 직접 기록하므로 이 필드는 `Notification` 및 `StopFailure`와 같이 `systemMessage` 및 `continue`를 버리는 이벤트에서도 작동합니다. 두 가지 제한이 있습니다:1104Claude Code는 hook의 출력을 처리할 때 시퀀스를 직접 기록하므로 이 필드는 `Notification` 및 `StopFailure`와 같이 `systemMessage` 및 `continue`를 버리는 이벤트에서도 작동합니다. 몇 가지 제한이 있습니다:

1105 1105 

1106* Claude Code는 대화형 세션에서만, 그리고 인터페이스가 화면에 표시되어 있는 동안에만 시퀀스를 기록합니다. `-p` 플래그를 사용한 비대화형 모드와 Agent SDK에서는 이 필드를 무시합니다.1106* Claude Code는 대화형 세션에서만, 그리고 인터페이스가 화면에 표시되어 있는 동안에만 시퀀스를 기록합니다. `-p` 플래그를 사용한 비대화형 모드와 Agent SDK에서는 이 필드를 무시합니다.

1107* 이 필드는 [백그라운드](#run-hooks-in-the-background)에서 실행되지 않는 hook에서만 작동하므로 `async`와 `asyncRewake`는 꺼 둡니다.

1107* `WorktreeCreate` 명령 hook은 Claude Code가 stdout을 worktree 경로로 읽기 때문에 JSON을 반환할 수 없습니다. HTTP `WorktreeCreate` hook은 JSON을 반환하므로 이 필드를 포함할 수 있습니다.1108* `WorktreeCreate` 명령 hook은 Claude Code가 stdout을 worktree 경로로 읽기 때문에 JSON을 반환할 수 없습니다. HTTP `WorktreeCreate` hook은 JSON을 반환하므로 이 필드를 포함할 수 있습니다.

1108 1109 

1109아래 예제는 `Notification` hook에서 데스크톱 알림을 발생시킵니다. 이스케이프 시퀀스는 `printf` 8진수 이스케이프로 만들어지므로 제어 바이트가 셸 명령줄에 나타나지 않으며, `jq -n --arg`로 JSON 출력을 만들어 알림 메시지의 따옴표, 백슬래시, 줄바꿈이 올바르게 이스케이프됩니다:1110tmux 또는 GNU screen을 사용한다면 먼저 [해당 환경에 대한 설정](#get-terminal-notifications-inside-tmux-or-gnu-screen)을 완료합니다. 아래 예제는 Ghostty나 Warp처럼 OSC `777`을 읽는 터미널에서 `Notification` hook으로 데스크톱 알림을 발생시킵니다. 스크립트의 `jq -nc --arg` 호출은 JSON 출력을 만들고 알림 메시지의 따옴표, 백슬래시, 줄바꿈을 이스케이프합니다:

1110 1111 

1111```bash theme={null}1112```bash theme={null}

1112#!/bin/bash1113#!/bin/bash


1120 1121 

1121`{ "terminalSequence": "..." }` 형태는 모든 셸 또는 언어에서 동일합니다.1122`{ "terminalSequence": "..." }` 형태는 모든 셸 또는 언어에서 동일합니다.

1122 1123 

1124#### tmux 또는 GNU screen 내에서 터미널 알림 받기

1125 

1126Claude Code가 tmux 또는 GNU screen 내에서 실행될 때 OSC 시퀀스가 터미널 애플리케이션에 도달하려면 다음이 필요합니다:

1127 

1128* **tmux 3.3 이상**: `~/.tmux.conf`에 `set -g allow-passthrough on`을 추가한 다음 셸에서 `tmux source-file ~/.tmux.conf`를 실행합니다. 이 옵션은 Claude Code뿐만 아니라 해당 패인의 모든 프로그램에 적용됩니다. `on`을 사용하면 tmux가 표시하고 있는 패인만 시퀀스를 보낼 수 있습니다. 연결된 세션의 다른 패인도 시퀀스를 보낼 수 있게 하려면 tmux 3.4 이상에서 `on` 대신 `all`을 사용합니다.

1129* **GNU screen**: 백그라운드 창의 시퀀스는 터미널 애플리케이션에 도달하지 않으므로 screen에서 Claude Code의 창이 표시된 상태를 유지합니다

1130 

1123#### Claude를 위한 컨텍스트 추가1131#### Claude를 위한 컨텍스트 추가

1124 1132 

1125`additionalContext` 필드는 hook의 문자열을 Claude의 컨텍스트 윈도우로 전달합니다. Claude Code는 문자열을 [시스템 리마인더](https://code.claude.com/docs/ko/glossary.md#system-reminder)로 감싸고 hook이 발생한 지점에서 대화에 삽입합니다. Claude는 다음 모델 요청에서 리마인더를 읽지만, 인터페이스에 채팅 메시지로 나타나지는 않습니다.1133`additionalContext` 필드는 hook의 문자열을 Claude의 컨텍스트 윈도우로 전달합니다. Claude Code는 문자열을 [시스템 리마인더](https://code.claude.com/docs/ko/glossary.md#system-reminder)로 감싸고 hook이 발생한 지점에서 대화에 삽입합니다. Claude는 다음 모델 요청에서 리마인더를 읽지만, 인터페이스에 채팅 메시지로 나타나지는 않습니다.

Details

223| 베타 [도구 필드](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | 도구 관련 베타 헤더는 `strict` 및 `defer_loading`과 같은 도구 스키마 필드와 쌍을 이룹니다. | 본문이 헤더 없이 통과할 때 인식되지 않는 도구 스키마 필드의 이름을 지정하는 `400`. `defer_loading`의 경우 [도구 검색 없이 재시도](#retry-without-tool-search)를 참조하십시오. | 둘 다 전달하거나 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |223| 베타 [도구 필드](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | 도구 관련 베타 헤더는 `strict` 및 `defer_loading`과 같은 도구 스키마 필드와 쌍을 이룹니다. | 본문이 헤더 없이 통과할 때 인식되지 않는 도구 스키마 필드의 이름을 지정하는 `400`. `defer_loading`의 경우 [도구 검색 없이 재시도](#retry-without-tool-search)를 참조하십시오. | 둘 다 전달하거나 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

224| [노력](https://platform.claude.com/docs/en/build-with-claude/effort) 및 [구조화된 출력](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | `output_config` 본문 필드는 노력, 구조화된 출력 형식 및 작업 예산 설정을 전달합니다. 각각은 자체 베타 헤더와 쌍을 이룹니다. | Amazon Bedrock 및 Google Cloud의 Agent Platform 업스트림에서 `output_config`의 이름을 지정하는 `400`. 종종 `Extra inputs are not permitted` | 필드와 헤더를 함께 전달하거나, 개발자가 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities)을 설정하도록 합니다. 이 변수는 형식 및 작업 예산 설정을 제거하지만 노력은 제거하지 않습니다. 형식만 제거하려면 대신 [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](https://code.claude.com/docs/ko/env-vars)을 설정할 수 있으며, 이는 v2.1.288 이상이 필요합니다. |224| [노력](https://platform.claude.com/docs/en/build-with-claude/effort) 및 [구조화된 출력](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | `output_config` 본문 필드는 노력, 구조화된 출력 형식 및 작업 예산 설정을 전달합니다. 각각은 자체 베타 헤더와 쌍을 이룹니다. | Amazon Bedrock 및 Google Cloud의 Agent Platform 업스트림에서 `output_config`의 이름을 지정하는 `400`. 종종 `Extra inputs are not permitted` | 필드와 헤더를 함께 전달하거나, 개발자가 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities)을 설정하도록 합니다. 이 변수는 형식 및 작업 예산 설정을 제거하지만 노력은 제거하지 않습니다. 형식만 제거하려면 대신 [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](https://code.claude.com/docs/ko/env-vars)을 설정할 수 있으며, 이는 v2.1.288 이상이 필요합니다. |

225| 대화 중간 시스템 메시지 | 베타 헤더 없음. Claude Code는 Claude Opus 4.8, 그 이후에 출시된 모델, 인식되지 않는 모델 ID에 대해 일부 리마인더 및 첨부 텍스트를 `messages`의 `role: "system"` 항목으로 전송합니다. | `Unexpected role "system"`과 같은 `400` | Claude Code는 [시스템 메시지 없이 재시도합니다](#automatic-retry-and-error-forwarding). Claude Opus 4.8 이전에 출시된 모델의 별칭에서 시스템 메시지를 중지하려면 배포하는 설정에 [`modelOverrides` 항목](#settings-for-unrecognized-model-ids)을 추가합니다. |225| 대화 중간 시스템 메시지 | 베타 헤더 없음. Claude Code는 Claude Opus 4.8, 그 이후에 출시된 모델, 인식되지 않는 모델 ID에 대해 일부 리마인더 및 첨부 텍스트를 `messages`의 `role: "system"` 항목으로 전송합니다. | `Unexpected role "system"`과 같은 `400` | Claude Code는 [시스템 메시지 없이 재시도합니다](#automatic-retry-and-error-forwarding). Claude Opus 4.8 이전에 출시된 모델의 별칭에서 시스템 메시지를 중지하려면 배포하는 설정에 [`modelOverrides` 항목](#settings-for-unrecognized-model-ids)을 추가합니다. |

226| [턴별로 설정된 노력](https://code.claude.com/docs/ko/prompt-caching.md#changing-effort-level) | Opus 5.5, Sonnet 5.5, Haiku 5.5 및 Fable 5.1에서는 베타 헤더가 `role: "system"` 항목(시스템 메시지 또는 빈 콘텐츠가 있는 항목)의 `output_config.effort`와 쌍을 이룹니다. | 게이트웨이가 빈 항목에서 필드를 제거할 때 `messages.N: system content must contain at least one block`을 포함한 `400` | 둘 다 전달하거나, 개발자가 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities)을 설정하여 해당 필드와 빈 항목을 중지하도록 합니다. |226| [턴별로 설정된 노력](https://code.claude.com/docs/ko/prompt-caching.md#changing-effort-level) | Opus 5.5, Sonnet 5.5, Haiku 5.5, Fable 5.2 및 Fable 5.1에서는 베타 헤더가 `role: "system"` 항목의 `output_config.effort`와 쌍을 이룹니다. 항목은 시스템 메시지 또는 빈 콘텐츠가 있는 항목입니다. | 게이트웨이가 빈 항목에서 필드를 제거할 때 `messages.N: system content must contain at least one block`을 포함한 `400` | 둘 다 전달하거나, 개발자가 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities)을 설정하여 해당 필드와 빈 항목을 중지하도록 합니다. |

227| [프롬프트 캐싱](https://code.claude.com/docs/ko/prompt-caching.md) | 베타 쌍 없음. Claude Code는 `cache_control` 마커를 `system` 블록 및 `messages` 항목(대화 중간에 추가된 `role: "system"` 항목 포함)에 첨부합니다. | 오류 없음: 대화는 매 턴마다 캐시되지 않은 입력으로 청구되며, `usage`에서 높은 `input_tokens`과 거의 또는 전혀 캐시 활동이 없는 것으로 표시됩니다. | `cache_control`을 나타나는 모든 곳에서 그대로 전달하고, 블록 형식 `system` 또는 메시지 콘텐츠를 일반 문자열로 변환하지 마십시오. |227| [프롬프트 캐싱](https://code.claude.com/docs/ko/prompt-caching.md) | 베타 쌍 없음. Claude Code는 `cache_control` 마커를 `system` 블록 및 `messages` 항목(대화 중간에 추가된 `role: "system"` 항목 포함)에 첨부합니다. | 오류 없음: 대화는 매 턴마다 캐시되지 않은 입력으로 청구되며, `usage`에서 높은 `input_tokens`과 거의 또는 전혀 캐시 활동이 없는 것으로 표시됩니다. | `cache_control`을 나타나는 모든 곳에서 그대로 전달하고, 블록 형식 `system` 또는 메시지 콘텐츠를 일반 문자열로 변환하지 마십시오. |

228| [토큰 계산](https://platform.claude.com/docs/en/build-with-claude/token-counting) | 베타 쌍 없음. `count_tokens` 엔드포인트를 사용합니다. | 오류 없음: Claude Code는 문자 기반 추정으로 돌아가므로 `/context`는 대략적인 계산을 표시합니다. | 정확한 토큰 계산을 위해 엔드포인트를 노출합니다. |228| [토큰 계산](https://platform.claude.com/docs/en/build-with-claude/token-counting) | 베타 쌍 없음. `count_tokens` 엔드포인트를 사용합니다. | 오류 없음: Claude Code는 문자 기반 추정으로 돌아가므로 `/context`는 대략적인 계산을 표시합니다. | 정확한 토큰 계산을 위해 엔드포인트를 노출합니다. |

229 229 

model-config.md +53 −24

Details

30| 모델 별칭 | 동작 |30| 모델 별칭 | 동작 |

31| - | - |31| - | - |

32| **`default`** | 모든 모델 재정의를 지우고 [계정의 런타임 기본값](#default-model-setting)으로 되돌리는 특수 값입니다. 자체로는 모델 별칭이 아닙니다 |32| **`default`** | 모든 모델 재정의를 지우고 [계정의 런타임 기본값](#default-model-setting)으로 되돌리는 특수 값입니다. 자체로는 모델 별칭이 아닙니다 |

33| **`best`** | Fable을 사용할 수 있는 경우 [`fable` 별칭이 확인되는](#fable-alias-resolution) 모델을 사용하고, 그렇지 않으면 `opus`와 동일한 모델을 사용합니다 |33| **`best`** | `opus`와 동일한 모델을 사용합니다 |

34| **`fable`** | 가장 어렵고 오래 실행되는 작업을 위해 [공급자의 Fable 모델](#fable-alias-resolution)을 사용합니다 |34| **`fable`** | 가장 어렵고 오래 실행되는 작업을 위해 [공급자의 Fable 모델](#fable-alias-resolution)을 사용합니다 |

35| **`sonnet`** | 일상적인 코딩 작업을 위해 최신 Sonnet 모델을 사용합니다 |35| **`sonnet`** | 일상적인 코딩 작업을 위해 최신 Sonnet 모델을 사용합니다 |

36| **`opus`** | 복잡한 추론 작업을 위해 최신 Opus 모델을 사용합니다 |36| **`opus`** | 복잡한 추론 작업을 위해 최신 Opus 모델을 사용합니다 |


48| Amazon Bedrock, Google Cloud의 Agent Platform | Opus 5.5 | Sonnet 4.5 | Haiku 4.5 |48| Amazon Bedrock, Google Cloud의 Agent Platform | Opus 5.5 | Sonnet 4.5 | Haiku 4.5 |

49| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 | Haiku 4.5 |49| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 | Haiku 4.5 |

50 50 

51`ANTHROPIC_DEFAULT_FABLE_MODEL`을 설정하지 않으면 `fable` 별칭은 Fable 5.1로 확인됩니다. 단, [Claude 앱 게이트웨이](https://code.claude.com/docs/ko/claude-apps-gateway) 세션에서는 `fable` 및 `best`가 Fable 5로 확인됩니다.51`ANTHROPIC_DEFAULT_FABLE_MODEL`을 설정하지 않으면 `fable` 별칭은 [Claude 앱 게이트웨이](https://code.claude.com/docs/ko/claude-apps-gateway) 세션에서는 Fable 5로, 그 외의 모든 곳에서는 Fable 5.2로 확인됩니다.

52 52 

53`claude-fable-5-1`을 제공하도록 구성되지 않은 게이트웨이는 해당 모델에 대한 요청을 거부합니다. 이를 제공하는 게이트웨이를 통해 Fable 5.1을 사용하려면 `/model claude-fable-5-1`로 선택합니다.53`claude-fable-5-2`를 제공하도록 구성되지 않은 게이트웨이는 해당 모델에 대한 요청을 거부합니다. 이를 제공하는 게이트웨이를 통해 Fable 5.2를 사용하려면 `/model claude-fable-5-2`로 선택합니다.

54 54 

55`opus` 또는 `sonnet`이 이전 모델로 확인되는 경우, 전체 모델 이름을 명시적으로 선택하거나 `ANTHROPIC_DEFAULT_OPUS_MODEL` 또는 `ANTHROPIC_DEFAULT_SONNET_MODEL`을 설정하여 최신 모델을 사용할 수 있습니다.55`opus` 또는 `sonnet`이 이전 모델로 확인되는 경우, 전체 모델 이름을 명시적으로 선택하거나 `ANTHROPIC_DEFAULT_OPUS_MODEL` 또는 `ANTHROPIC_DEFAULT_SONNET_MODEL`을 설정하여 최신 모델을 사용할 수 있습니다.

56 56 


64 64 

65### Fable 작업하기65### Fable 작업하기

66 66 

67[Claude Fable 5.1](https://platform.claude.com/docs/en/about-claude/models/overview) 및 Claude Fable 5는 Claude Code에서 가장 강력한 모델로, 한 번의 세션보다 큰 작업에 적합합니다. 이들은 긴 자율 세션을 유지하고, 행동하기 전에 조사하며, 더 작은 모델보다 더 자주 자신의 작업을 검증합니다. Fable 5.1은 더 최신 릴리스입니다.67[Claude Fable 모델](https://platform.claude.com/docs/en/about-claude/models/overview)은 Claude Code에서 가장 강력한 모델로, 한 번의 세션보다 큰 작업에 적합합니다. 이들은 긴 자율 세션을 유지하고, 행동하기 전에 조사하며, 더 작은 모델보다 더 자주 자신의 작업을 검증합니다.

68 68 

69두 Fable 모델 모두 어떤 플랜이나 공급자에서도 계정 유형 기본값이 아닙니다. 명시적으로 선택합니다:69어떤 Fable 모델도 어떤 플랜이나 공급자에서 계정 유형 기본값이 아닙니다. 명시적으로 선택합니다:

70 70 

71* **Fable 5.1**: `/model fable`을 실행하거나 `claude --model fable`로 시작합니다. [Claude 앱 게이트웨이](https://code.claude.com/docs/ko/claude-apps-gateway) 세션에서 별칭이 Fable 5로 확인되는 경우 대신 `/model claude-fable-5-1`을 실행합니다.71* **Fable 5.2**: `/model fable`을 실행하거나 `claude --model fable`로 시작합니다. [Claude 앱 게이트웨이](https://code.claude.com/docs/ko/claude-apps-gateway) 세션에서는 대신 `/model claude-fable-5-2`를 실행합니다.

72* **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).72* **Fable 5.1 또는 Fable 5**: 모델 ID로 선택합니다. Anthropic API에서 `/model claude-fable-5-1` 또는 `/model claude-fable-5`를 실행하거나 `claude --model claude-fable-5-1`로 시작합니다. 다른 공급자에서는 공급자의 모델 ID를 사용하거나 `ANTHROPIC_DEFAULT_FABLE_MODEL`로 [고정합니다](#pin-models-for-third-party-deployments).

73 73 

74Anthropic 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` 값은 그대로 유지됩니다.74Pro, Max, Team, Enterprise 플랜에서는 사용자 설정에 저장된 `claude-fable-5-1` 모델이 `fable` 별칭으로 이동합니다:

75 

76* **Pro 또는 Max 플랜**: 이동은 v2.1.321 이상을 처음 실행할 때 이루어집니다. 터미널에서는 시작 모델 라인에 `(auto-updated)`가 한 번 표시될 수 있습니다.

77* **Team 또는 Enterprise 플랜**: 이동은 조직의 설정을 기다리므로 이후의 시작 시에 이루어지거나 전혀 이루어지지 않을 수 있습니다. 다음 세션부터 적용되며 `(auto-updated)` 라인은 표시되지 않습니다. 모델을 확인하려면 `/model`을 실행합니다.

78 

79이동 후에는 Fable 5.2에 대해 [수준을 설정](#adjust-effort-level)하지 않은 한 세션이 Fable 5.2의 기본 effort로 시작합니다. Console 계정, 타사 공급자, 그리고 프로젝트, 로컬 또는 관리형 설정은 `claude-fable-5-1`을 유지합니다.

75 80 

76Fable 모델의 안전 분류기가 플래그를 지정하는 요청(대부분 사이버 보안 및 생물학 도메인)은 [자동 모델 폴백](#automatic-model-fallback)을 트리거합니다.81Fable 모델의 안전 분류기가 플래그를 지정하는 요청(대부분 사이버 보안 및 생물학 도메인)은 [자동 모델 폴백](#automatic-model-fallback)을 트리거합니다.

77 82 


84 89 

85> [!NOTE]90> [!NOTE]

86>91>

87> Fable 5.1은 Claude Code v2.1.257 이상이 필요합니다. 이전 버전의 요청이 실패하면 [Claude Code는 이 모델을 지원하지 않습니다](https://code.claude.com/docs/ko/errors.md#claude-code-does-not-support-this-model)를 참조하십시오. `claude update`를 실행하여 업그레이드합니다. 영점 데이터 보존 하에서의 가용성은 [ZDR 하의 모델 가용성](https://code.claude.com/docs/ko/zero-data-retention.md#model-availability-under-zdr)을 참조하십시오.92> Fable 5.2는 Claude Code v2.1.321 이상이 필요하고, Fable 5.1은 v2.1.257 이상이 필요합니다. 이전 버전에서 이들 중 하나에 대한 요청이 실패하면 [Claude Code는 이 모델을 지원하지 않습니다](https://code.claude.com/docs/ko/errors.md#claude-code-does-not-support-this-model)를 참조하십시오. `claude update`를 실행하여 업그레이드합니다. 영점 데이터 보존 하에서의 가용성은 [ZDR 하의 모델 가용성](https://code.claude.com/docs/ko/zero-data-retention.md#model-availability-under-zdr)을 참조하십시오.

88 93 

89Anthropic API에서 Fable 모델은 [`availableModels`](#restrict-model-selection) 또는 [조직 모델 제한](#organization-model-restrictions)이 이를 제외하지 않는 한 `/model` 선택기에 나타납니다. 조직이 [영점 데이터 보존](https://code.claude.com/docs/ko/zero-data-retention.md#model-availability-under-zdr) 하에서와 같이 Fable을 전혀 사용할 수 없는 경우, 행은 선택기에서 회색으로 표시되며 이유에 대한 참고 사항이 있습니다.94Anthropic API에서 Fable 모델은 [`availableModels`](#restrict-model-selection) 또는 [조직 모델 제한](#organization-model-restrictions)이 이를 제외하지 않는 한 `/model` 선택기에 나타납니다. 조직이 [영점 데이터 보존](https://code.claude.com/docs/ko/zero-data-retention.md#model-availability-under-zdr) 하에서와 같이 Fable을 전혀 사용할 수 없는 경우, 행은 선택기에서 회색으로 표시되며 이유에 대한 참고 사항이 있습니다.

90 95 


163 168 

164[모델은 인식된 모델 ID가 아닙니다](https://code.claude.com/docs/ko/errors.md#model-is-not-a-recognized-model-id) 및 [모델을 찾을 수 없습니다](https://code.claude.com/docs/ko/errors.md#model-not-found)를 참조하여 메시지를 확인합니다.169[모델은 인식된 모델 ID가 아닙니다](https://code.claude.com/docs/ko/errors.md#model-is-not-a-recognized-model-id) 및 [모델을 찾을 수 없습니다](https://code.claude.com/docs/ko/errors.md#model-not-found)를 참조하여 메시지를 확인합니다.

165 170 

166`--model` 플래그, `ANTHROPIC_MODEL` 환경 변수 또는 `model` 설정으로 모델을 설정하면 Claude Code는 미리 확인하지 않으며, 잘못 입력된 값은 첫 번째 요청에서 [선택된 모델에 문제가 있습니다](https://code.claude.com/docs/ko/errors.md#theres-an-issue-with-the-selected-model)를 생성합니다.171`--model` 플래그, `ANTHROPIC_MODEL` 환경 변수 또는 `model` 설정으로 모델을 설정하면 Claude Code는 잘못 입력된 값을 미리 거부하지 않습니다. 세션이 시작되고 첫 번째 요청에서 [선택된 모델에 문제가 있습니다](https://code.claude.com/docs/ko/errors.md#theres-an-issue-with-the-selected-model)가 발생합니다. Anthropic API에서는 `claude-`로 시작하지 않으면서 모델 이름이나 별칭과 철자가 거의 같은 값이 [올바른 이름을 제안하는 시작 경고](#fix-a-mistyped-model-name)를 표시할 수도 있습니다.

167 172 

168요청된 모델에 예정된 폐기 날짜가 있거나 자동으로 최신 버전으로 다시 매핑되면 Claude Code는 요청된 모델의 이름을 지정하는 경고를 표시합니다. 대화형 세션은 시작 알림으로 표시합니다. v2.1.182부터 기본 텍스트 출력 형식을 사용할 때 [비대화형 모드](https://code.claude.com/docs/ko/headless.md)에서 동일한 경고가 stderr에 작성됩니다. 확인은 또한 [서브에이전트 frontmatter](https://code.claude.com/docs/ko/sub-agents.md)에 설정된 `model`을 다룹니다. stderr 경고는 `--output-format json` 및 `stream-json`에 대해 억제됩니다. 대신 [결과 메시지](https://code.claude.com/docs/ko/headless.md#get-structured-output)의 `modelUsage` 필드에서 실제 모델을 읽습니다.173요청된 모델에 예정된 폐기 날짜가 있거나 자동으로 최신 버전으로 다시 매핑되면 Claude Code는 요청된 모델의 이름을 지정하는 경고를 표시합니다. 대화형 세션은 시작 알림으로 표시합니다. v2.1.182부터 기본 텍스트 출력 형식을 사용할 때 [비대화형 모드](https://code.claude.com/docs/ko/headless.md)에서 동일한 경고가 stderr에 작성됩니다. 확인은 또한 [서브에이전트 frontmatter](https://code.claude.com/docs/ko/sub-agents.md)에 설정된 `model`을 다룹니다. stderr 경고는 `--output-format json` 및 `stream-json`에 대해 억제됩니다. 대신 [결과 메시지](https://code.claude.com/docs/ko/headless.md#get-structured-output)의 `modelUsage` 필드에서 실제 모델을 읽습니다.

169 174 


225 230 

226## 모델 선택 제한231## 모델 선택 제한

227 232 

228관리자는 [관리형 또는 정책 설정](https://code.claude.com/docs/ko/managed-settings.md)에서 `availableModels`를 사용하여 사용자가 선택할 수 있는 모델을 제한할 수 있습니다. 항목은 `sonnet`과 같은 모델 패밀리, `claude-sonnet-4-5`와 같은 버전 접두사, 또는 `claude-sonnet-4-5-20250929`와 같은 전체 모델 ID와 일치합니다. 버전 접두사는 또한 다른 세그먼트로 확장하는 이후 모델 ID와도 일치하므로, `claude-fable-5`는 Fable 5와 Fable 5.1을 모두 허용하고, `claude-fable-5-1`은 Fable 5.1만 허용합니다. 목록이 허용하는 모델을 차단하거나 각 모델 ID 항목이 이름을 지정하는 버전만 허용하도록 하려면 [특정 모델 또는 버전 차단](#block-specific-models-or-versions)을 참조하세요.233관리자는 [관리형 또는 정책 설정](https://code.claude.com/docs/ko/managed-settings.md)에서 `availableModels`를 사용하여 사용자가 선택할 수 있는 모델을 제한할 수 있습니다. 각 항목은 다음 중 하나와 일치합니다:

234 

235* `sonnet`과 같은 모델 패밀리

236* `claude-sonnet-4-5`와 같은 버전 접두사. 이 접두사를 다른 세그먼트로 확장하는 이후 모델 ID와도 일치합니다. 예를 들어 `claude-fable-5`는 Fable 5, Fable 5.1, Fable 5.2를 허용하고, `claude-fable-5-1`은 Fable 5.1만 허용합니다

237* `claude-sonnet-4-5-20250929`와 같은 전체 모델 ID

238 

239목록이 허용하는 모델을 차단하거나 각 모델 ID 항목이 이름을 지정하는 버전만 허용하도록 하려면 [특정 모델 또는 버전 차단](#block-specific-models-or-versions)을 참조하세요.

229 240 

230Claude Code를 포함하고 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/ko/env-vars)를 설정하는 플랫폼에서는 호스트의 모델 구성이 관리형 모델 설정보다 우선하며, 관리형 `availableModels` 허용 목록은 호스트가 자체 목록을 제공하지 않는 한 계속 적용됩니다. [관리형 설정 우선순위의 예외](https://code.claude.com/docs/ko/settings.md#exceptions-to-managed-settings-precedence)는 호스트가 재정의하는 키와 변수를 설명합니다.241Claude Code를 포함하고 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/ko/env-vars)를 설정하는 플랫폼에서는 호스트의 모델 구성이 관리형 모델 설정보다 우선하며, 관리형 `availableModels` 허용 목록은 호스트가 자체 목록을 제공하지 않는 한 계속 적용됩니다. [관리형 설정 우선순위의 예외](https://code.claude.com/docs/ko/settings.md#exceptions-to-managed-settings-precedence)는 호스트가 재정의하는 키와 변수를 설명합니다.

231 242 


465 476 

466계정에 아무것도 기록되지 않았을 때, 관리형 설정이 [Default 모델에 대한 허용 목록을 적용](#enforce-the-allowlist-for-the-default-model)하고, 계정 유형 기본값이 `availableModels`에 없으면, `default`는 위의 계정 유형 기본값 대신 적용된 Default로 확인됩니다. 조직 기본값과 적용이 모두 적용될 때, 조직 기본값이 먼저 계정 유형 기본값을 대체하고 적용이 이에 적용됩니다: 허용 목록에 있는 조직 기본값은 유지되고, 목록 외의 값은 적용된 Default로 확인됩니다.477계정에 아무것도 기록되지 않았을 때, 관리형 설정이 [Default 모델에 대한 허용 목록을 적용](#enforce-the-allowlist-for-the-default-model)하고, 계정 유형 기본값이 `availableModels`에 없으면, `default`는 위의 계정 유형 기본값 대신 적용된 Default로 확인됩니다. 조직 기본값과 적용이 모두 적용될 때, 조직 기본값이 먼저 계정 유형 기본값을 대체하고 적용이 이에 적용됩니다: 허용 목록에 있는 조직 기본값은 유지되고, 목록 외의 값은 적용된 Default로 확인됩니다.

467 478 

468Fable 모델은 어떤 플랜이나 제공자에서도 계정 유형 기본값이 아닙니다. `/model`로 선택하면 사용자 설정에서 선택된 모델로 저장되므로, 이후 세션이 이 모델에서 시작됩니다. v2.1.257에서 Claude Code가 저장된 Fable 5 선택에 대해 수행하는 일회성 변경의 경우, [Fable 작업](#work-with-fable)을 참조하세요.479> [!NOTE]

480>

481> Fable 모델은 어떤 플랜이나 제공자에서도 계정 유형 기본값이 아닙니다. `/model`로 선택하면 사용자 설정에서 선택된 모델로 저장되므로, 이후 세션이 이 모델에서 시작됩니다. 단, [저장된 Fable 5.1 선택에 대한 일회성 변경](#work-with-fable)은 예외입니다.

469 482 

470### `opusplan` 모델 설정483### `opusplan` 모델 설정

471 484 


521 534 

522Fable 모델, Opus 5.5, Sonnet 5.5 및 Opus 5는 안전 분류기로 실행되며, 이는 대부분 사이버 보안 및 생물학 콘텐츠에 플래그를 지정합니다. 이 두 카테고리의 경우, 폴백 모델은 어느 모델이 거부했는지에 따라 달라집니다:535Fable 모델, Opus 5.5, Sonnet 5.5 및 Opus 5는 안전 분류기로 실행되며, 이는 대부분 사이버 보안 및 생물학 콘텐츠에 플래그를 지정합니다. 이 두 카테고리의 경우, 폴백 모델은 어느 모델이 거부했는지에 따라 달라집니다:

523 536 

524* **Fable 5.1, Fable 5 및 Opus 5.5**: 생물학 플래그 요청은 Opus 5에서 다시 실행되고, 사이버 보안 플래그 요청은 Opus 4.8에서 다시 실행됩니다.537* **Fable 모델 및 Opus 5.5**: 생물학 플래그 요청은 Opus 5에서 다시 실행되고, 사이버 보안 플래그 요청은 Opus 4.8에서 다시 실행됩니다.

525* **Sonnet 5.5**: 사이버 보안 플래그 요청은 Sonnet 5에서 다시 실행됩니다. 생물학 플래그 요청은 Sonnet 5.5에 생물학 폴백 모델이 없기 때문에 거부로 종료됩니다.538* **Sonnet 5.5**: 사이버 보안 플래그 요청은 Sonnet 5에서 다시 실행됩니다. 생물학 플래그 요청은 Sonnet 5.5에 생물학 폴백 모델이 없기 때문에 거부로 종료됩니다.

526* **Opus 5**: 사이버 보안 플래그 요청은 Opus 4.8에서 다시 실행됩니다. 생물학 플래그 요청은 Opus 5가 폴백 모델이 없는 자체 생물학 분류기를 실행하기 때문에 거부로 종료됩니다.539* **Opus 5**: 사이버 보안 플래그 요청은 Opus 4.8에서 다시 실행됩니다. 생물학 플래그 요청은 Opus 5가 폴백 모델이 없는 자체 생물학 분류기를 실행하기 때문에 거부로 종료됩니다.

527 540 


582 595 

583[Amazon Bedrock](https://code.claude.com/docs/ko/amazon-bedrock.md), [Google Cloud의 Agent Platform](https://code.claude.com/docs/ko/google-vertex-ai.md) 및 [Microsoft Foundry](https://code.claude.com/docs/ko/microsoft-foundry.md)에서는 모델 ID가 제공자별이므로, 자동 폴백은 Claude Code가 관련된 각 모델을 식별할 수 있을 때만 작동합니다:596[Amazon Bedrock](https://code.claude.com/docs/ko/amazon-bedrock.md), [Google Cloud의 Agent Platform](https://code.claude.com/docs/ko/google-vertex-ai.md) 및 [Microsoft Foundry](https://code.claude.com/docs/ko/microsoft-foundry.md)에서는 모델 ID가 제공자별이므로, 자동 폴백은 Claude Code가 관련된 각 모델을 식별할 수 있을 때만 작동합니다:

584 597 

585* 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) 매핑으로 인식됩니다.598* Claude Code는 현재 모델을 폴백 소스로 인식해야 합니다. Fable 모델은 모델 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) 매핑으로 인식됩니다.

586* 어느 모델이 거부했든 Opus 대상은 배포에서 확인되어야 합니다: `ANTHROPIC_DEFAULT_OPUS_MODEL`을 설정하거나, 제공자의 모델 목록에 Opus 4.8 항목을 유지하세요. 없으면, 폴백은 Sonnet 5.5를 포함한 모든 소스 모델에 대해 꺼지고, 플래그된 요청은 거부로 종료됩니다.599* 어느 모델이 거부했든 Opus 대상은 배포에서 확인되어야 합니다: `ANTHROPIC_DEFAULT_OPUS_MODEL`을 설정하거나, 제공자의 모델 목록에 Opus 4.8 항목을 유지하세요. 없으면, 폴백은 Sonnet 5.5를 포함한 모든 소스 모델에 대해 꺼지고, 플래그된 요청은 거부로 종료됩니다.

587* 플래그된 카테고리의 폴백 모델은 배포에서 확인되어야 합니다. 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 항목에서 다시 실행됩니다.600* 플래그된 카테고리의 폴백 모델은 배포에서 확인되어야 합니다. 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 항목에서 다시 실행됩니다.

588 601 


596 609 

597#### 보안 연구 및 생물학 워크로드610#### 보안 연구 및 생물학 워크로드

598 611 

599공격적 보안 또는 생물학의 워크로드(침투 테스트, Capture the Flag(CTF) 연습 및 생물학 인접 코드베이스 포함)는 폴백을 자주 트리거하며, 종종 첫 번째 요청에서 트리거합니다. Fable 5.1, Fable 5 또는 Opus 5.5의 실질적인 생물학 작업의 경우, 모델을 전환하는 첫 번째 플래그된 요청이 세션을 Opus 5로 이동하고, 이후 생물학 플래그 요청은 Opus 5에서 거부로 종료됩니다. Opus 5에 생물학 폴백이 없기 때문입니다. Opus 5 및 Sonnet 5.5에서는 첫 번째 플래그된 요청부터 이러한 거부를 받습니다.612공격적 보안 또는 생물학의 워크로드(침투 테스트, Capture the Flag(CTF) 연습 및 생물학 인접 코드베이스 포함)는 폴백을 자주 트리거하며, 종종 첫 번째 요청에서 트리거합니다. 이는 이러한 도메인에 대한 예상 라우팅이며, 계정 플래그가 아닙니다. 조직이 이 작업을 위해 Fable 클래스 기능이 필요한 경우, Anthropic 계정 팀에 신뢰할 수 있는 액세스 프로그램에 대해 문의하세요.

600 613 

601이는 이러한 도메인에 대한 예상 라우팅이며, 계정 플래그가 아닙니다. 조직이 이 작업을 위해 Fable 클래스 기능이 필요한 경우, Anthropic 계정 팀에 신뢰할 수 있는 액세스 프로그램에 대해 문의하세요.614Fable 모델 또는 Opus 5.5의 실질적인 생물학 작업의 경우, 모델을 전환하는 첫 번째 플래그된 요청이 세션을 Opus 5로 이동합니다. 이후 생물학 플래그 요청은 그곳에서 거부로 종료됩니다. Opus 5에 생물학 폴백이 없기 때문입니다. Opus 5 및 Sonnet 5.5에서는 첫 번째 플래그된 요청부터 이러한 거부를 받습니다.

602 615 

603### effort 수준 조정616### effort 수준 조정

604 617 


608 621 

609| 모델 | 수준 |622| 모델 | 수준 |

610| :- | :- |623| :- | :- |

611| Fable 5.1 및 Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |624| Fable 모델 | `low`, `medium`, `high`, `xhigh`, `max` |

612| Opus 5.5, Sonnet 5.5, Haiku 5.5, Opus 5, Sonnet 5, Opus 4.8 및 Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |625| Opus 5.5, Sonnet 5.5, Haiku 5.5, Opus 5, Sonnet 5, Opus 4.8 및 Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

613| Opus 4.6 및 Sonnet 4.6 | `low`, `medium`, `high`, `max` |626| Opus 4.6 및 Sonnet 4.6 | `low`, `medium`, `high`, `max` |

614 627 


6202. 세션에서 선택한 수준(예: `/effort`, `/model` 선택기 또는 [`applyFlagSettings()`](https://code.claude.com/docs/ko/agent-sdk/typescript#applyflagsettings) 사용)6332. 세션에서 선택한 수준(예: `/effort`, `/model` 선택기 또는 [`applyFlagSettings()`](https://code.claude.com/docs/ko/agent-sdk/typescript#applyflagsettings) 사용)

6213. `--effort`로 시작6343. `--effort`로 시작

6224. 설정: 모델에 대해 저장한 수준 또는 [`effortLevel`](https://code.claude.com/docs/ko/settings-reference#effortlevel) 키이며, 둘 사이 및 설정 파일 간의 우선순위는 [`modelSettings`](https://code.claude.com/docs/ko/settings-reference#modelsettings)에 명시되어 있습니다6354. 설정: 모델에 대해 저장한 수준 또는 [`effortLevel`](https://code.claude.com/docs/ko/settings-reference#effortlevel) 키이며, 둘 사이 및 설정 파일 간의 우선순위는 [`modelSettings`](https://code.claude.com/docs/ko/settings-reference#modelsettings)에 명시되어 있습니다

6235. 모델의 기본 effort: effort를 지원하는 모든 모델에서 `high`이며, 단 Opus 5.5, Sonnet 5.5 및 Haiku 5.5는 `medium`, Opus 4.7은 `xhigh`가 기본값입니다. 조직이 [조직 기본 모델](#organization-default-model)에 대한 기본 effort 수준을 설정하면, 해당 모델을 실행할 때 그 수준이 기본값입니다.6365. 모델의 기본 effort: Fable 5.2, Opus 5.5, Sonnet 5.5 및 Haiku 5.5는 `medium`, Opus 4.7은 `xhigh`가 기본값입니다. [effort 수준 표](#adjust-effort-level)의 다른 모델은 `high`가 기본값입니다. 조직이 [조직 기본 모델](#organization-default-model)에 대한 기본 effort 수준을 설정하면, 해당 모델을 실행할 때 그 수준이 기본값입니다.

624 637 

625자동 모델 폴백 후 적용되는 수준은 [폴백 후 effort 수준](#effort-level-after-a-fallback)을 참조하세요. 서브에이전트 및 팀원의 경우 [서브에이전트 및 팀원의 effort 수준](#effort-level-of-subagents-and-teammates)을 참조하세요.638자동 모델 폴백 후 적용되는 수준은 [폴백 후 effort 수준](#effort-level-after-a-fallback)을 참조하세요. 서브에이전트 및 팀원의 경우 [서브에이전트 및 팀원의 effort 수준](#effort-level-of-subagents-and-teammates)을 참조하세요.

626 639 


671| 수준 | 사용 시기 |684| 수준 | 사용 시기 |

672| :- | :- |685| :- | :- |

673| `low` | 각 결과를 검토하는 빠른 교환(예: 브레인스토밍, 첫 번째 스케치 또는 이름 바꾸기와 같은 작은 변경) |686| `low` | 각 결과를 검토하는 빠른 교환(예: 브레인스토밍, 첫 번째 스케치 또는 이름 바꾸기와 같은 작은 변경) |

674| `medium` | Opus 5.5, Sonnet 5.5 및 Haiku 5.5의 기본값입니다. Opus 5.5 및 Sonnet 5.5에서는 명확한 범위의 일상적인 엔지니어링 작업(예: 새 기능 구현)에 적합합니다. 기본값이 더 높은 모델에서는 일부 지능을 양보할 수 있는 비용 민감한 작업의 토큰 사용을 줄입니다 |687| `medium` | Fable 5.2, Opus 5.5, Sonnet 5.5 및 Haiku 5.5 모델의 기본값입니다. Opus 5.5 및 Sonnet 5.5에서는 명확한 범위의 일상적인 엔지니어링 작업(예: 새 기능 구현)에 적합합니다. 기본값이 더 높은 모델에서는 일부 지능을 양보할 수 있는 비용 민감한 작업의 토큰 사용을 줄입니다 |

675| `high` | 검증이 중요하거나 엣지 케이스가 발생할 가능성이 높은 작업(예: 기존 코드베이스의 버그 수정). Opus 5.5, Sonnet 5.5, Haiku 5.5 및 Opus 4.7을 제외한 모든 모델의 기본값 |688| `high` | 검증이 중요하거나 엣지 케이스가 발생할 가능성이 높은 작업(예: 기존 코드베이스의 버그 수정). effort 표에 있는 다른 모델의 기본값 |

676| `xhigh` | 더 높은 토큰 지출로 더 깊은 추론. Opus 4.7의 기본값 |689| `xhigh` | 더 높은 토큰 지출로 더 깊은 추론. Opus 4.7의 기본값 |

677| `max` | 사용자의 개입 없이 Claude가 끝까지 처리하기를 원하는 어려운 문제(예: 보안 취약점 찾기). `max`는 수익 감소를 보일 수 있고 과도한 사고에 빠지기 쉬우므로, 광범위하게 채택하기 전에 테스트하세요 |690| `max` | 사용자의 개입 없이 Claude가 끝까지 처리하기를 원하는 어려운 문제(예: 보안 취약점 찾기). `max`는 수익 감소를 보일 수 있고 과도한 사고에 빠지기 쉬우므로, 광범위하게 채택하기 전에 테스트하세요 |

678| `ultracode` | 수준이 아닌 Claude Code 설정: 모든 effort 수준에서 각 실질적인 작업에 대해 [동적 워크플로](https://code.claude.com/docs/ko/workflows.md)를 계획합니다 |691| `ultracode` | 수준이 아닌 Claude Code 설정: 모든 effort 수준에서 각 실질적인 작업에 대해 [동적 워크플로](https://code.claude.com/docs/ko/workflows.md)를 계획합니다 |


691 704 

692* 따옴표, 괄호, 경로 또는 명령과 같은 것의 바깥에서, `/`로 시작하지 않는 프롬프트에 다시 입력합니다705* 따옴표, 괄호, 경로 또는 명령과 같은 것의 바깥에서, `/`로 시작하지 않는 프롬프트에 다시 입력합니다

693* `CLAUDE_CODE_EFFORT_LEVEL`이 `xhigh` 미만으로 설정되어 있으면 설정을 해제합니다. 또는 자신의 [`maxEffortLevel`](https://code.claude.com/docs/ko/settings-reference#maxeffortlevel)을 `xhigh` 이상으로 높이거나, 조직 관리자에게 [조직의 제한](#organization-effort-limits)을 높여 달라고 요청합니다706* `CLAUDE_CODE_EFFORT_LEVEL`이 `xhigh` 미만으로 설정되어 있으면 설정을 해제합니다. 또는 자신의 [`maxEffortLevel`](https://code.claude.com/docs/ko/settings-reference#maxeffortlevel)을 `xhigh` 이상으로 높이거나, 조직 관리자에게 [조직의 제한](#organization-effort-limits)을 높여 달라고 요청합니다

694* 세션에서 `/model`을 실행하여 Opus 5.5, Sonnet 5.5, Haiku 5.5 또는 Fable 5.1 모델로 전환합니다. Amazon Bedrock처럼 이 단어가 턴을 높일 수 없는 경우에는 대신 [effort 수준을 설정](#set-the-effort-level)합니다707* 세션에서 `/model`을 실행하여 Opus 5.5, Sonnet 5.5, Haiku 5.5, Fable 5.2 또는 Fable 5.1 모델로 전환합니다. Amazon Bedrock처럼 이 단어가 턴을 높일 수 없는 경우에는 대신 [effort 수준을 설정](#set-the-effort-level)합니다

695 708 

696#### effort 수준 설정709#### effort 수준 설정

697 710 


767 780 

768### 확장 컨텍스트781### 확장 컨텍스트

769 782 

770Fable 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)를 지원합니다.783큰 코드베이스가 있는 긴 세션에서는 [1백만 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)를 사용할 수 있습니다. Fable 모델, Sonnet 5 이상, Haiku 5.5, Opus 4.6 이상 및 Sonnet 4.6이 이를 지원합니다.

771 784 

772Fable 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](https://code.claude.com/docs/ko/claude-apps-gateway) 세션이 포함됩니다. 대신 200K 윈도우로 실행하려면 [1M 컨텍스트 끄기](#turn-off-1m-context)를 참조하세요.785Fable 모델, Sonnet 5 이상, Haiku 5.5 및 Opus 4.7 이상은 `[1m]` 접미사 없이 기본적으로 1M 윈도우로 실행됩니다. 여기에는 Amazon Bedrock, Google Cloud의 Agent Platform 및 Microsoft Foundry의 세션과 [Claude apps gateway](https://code.claude.com/docs/ko/claude-apps-gateway) 세션이 포함됩니다. 대신 200K 윈도우로 실행하려면 [1M 컨텍스트 끄기](#turn-off-1m-context)를 참조하세요.

773 786 

774Opus 4.6 및 Sonnet 4.6은 `[1m]` 변형을 통해서만 1M에 도달하며, 해당 변형에 대한 액세스는 플랜에 따라 다릅니다. Max, Ultra, Team 및 Enterprise 플랜(Team Standard 및 Team Premium 좌석 모두 포함)에서, 1M 컨텍스트가 있는 Opus 4.6은 구독에 포함됩니다. 1M 컨텍스트가 있는 Sonnet 4.6은 모든 구독 플랜(Max 및 Ultra 포함)에서 [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)이 필요합니다.787Opus 4.6 및 Sonnet 4.6은 `[1m]` 변형을 통해서만 1M에 도달하며, 해당 변형에 대한 액세스는 플랜에 따라 다릅니다. Max, Ultra, Team 및 Enterprise 플랜(Team Standard 및 Team Premium 좌석 모두 포함)에서, 1M 컨텍스트가 있는 Opus 4.6은 구독에 포함됩니다. 1M 컨텍스트가 있는 Sonnet 4.6은 모든 구독 플랜(Max 및 Ultra 포함)에서 [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)이 필요합니다.

775 788 


798 811 

799#### LLM 게이트웨이 뒤의 컨텍스트 윈도우812#### LLM 게이트웨이 뒤의 컨텍스트 윈도우

800 813 

801`ANTHROPIC_BASE_URL`을 [LLM 게이트웨이](https://code.claude.com/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`](https://code.claude.com/docs/ko/env-vars)을 설정하여 모든 모델의 세션이 [해당 경계에서 압축](#set-the-auto-compact-window)되도록 하세요.814`ANTHROPIC_BASE_URL`을 [LLM 게이트웨이](https://code.claude.com/docs/ko/llm-gateway) 또는 다른 프록시로 설정하면, Claude Code는 인식하는 각 모델에 Anthropic API에서 해당 모델이 가진 것과 동일한 컨텍스트 윈도우를 제공합니다. Fable 모델, Sonnet 5 이상, Haiku 5.5 및 Opus 4.7 이상은 `[1m]` 변형 없이 1M 윈도우를 얻습니다. Opus 4.6과 같이 `[1m]` 변형을 통해서만 1M에 도달하는 모델은 해당 변형 없이는 200K에서 실행됩니다.

815 

816Claude Code는 게이트웨이 또는 그 뒤의 서버가 적용하는 더 낮은 제한을 감지할 수 없습니다. 게이트웨이가 200K 토큰을 초과하는 요청을 거부하면, Claude Code를 시작하는 환경에서 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`](https://code.claude.com/docs/ko/env-vars)을 설정하여 모든 모델의 세션이 [해당 경계에서 압축](#set-the-auto-compact-window)되도록 하세요.

802 817 

803#### 1M 컨텍스트 끄기818#### 1M 컨텍스트 끄기

804 819 


885 900 

886Claude Code가 ID를 인식하거나 지정한 윈도우를 사용하게 되면, 해당 ID로 세션을 시작할 때 더 이상 경고가 표시되지 않습니다.901Claude Code가 ID를 인식하거나 지정한 윈도우를 사용하게 되면, 해당 ID로 세션을 시작할 때 더 이상 경고가 표시되지 않습니다.

887 902 

903#### 잘못 입력한 모델 이름 수정

904 

905다음 경고 중 하나가 표시되면 Claude Code가 설정된 모델 ID를 인식하지 못하며, 해당 ID의 철자가 Claude Code가 인식하는 모델 이름 또는 별칭과 거의 같다는 의미입니다.

906 

907```text theme={null}

908⚠ Model "<model>" isn't recognized · did you mean "<suggestion>"?

909Claude Code doesn't recognize the model "<model>". Did you mean "<suggestion>"?

910```

911 

912* **ID를 잘못 입력한 경우**: [모델을 설정한 위치](#setting-your-model)에서 ID를 제안된 값으로 변경합니다.

913* **의도한 ID인 경우**: 그대로 둡니다. 세션은 작성한 그대로 ID를 전송합니다. Claude Code가 해당 ID에 대해 가정하는 컨텍스트 윈도우가 잘못된 경우 [윈도우를 수정](#correct-the-window-for-a-gateway-or-custom-model-id)하십시오.

914 

888#### `CLAUDE_CODE_MAX_CONTEXT_TOKENS`가 적용되는 ID915#### `CLAUDE_CODE_MAX_CONTEXT_TOKENS`가 적용되는 ID

889 916 

890[LLM 게이트웨이](https://code.claude.com/docs/ko/llm-gateway) 또는 기타 사용자 정의 배포에서 Claude Code는 모델 ID가 모델의 실제 윈도우와 다른 컨텍스트 윈도우를 가정할 수 있습니다(ID가 Claude 모델로 확인되는지 여부와 관계없이). [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](https://code.claude.com/docs/ko/env-vars)를 Claude Code가 대신 가정해야 하는 윈도우로 설정합니다.917[LLM 게이트웨이](https://code.claude.com/docs/ko/llm-gateway) 또는 기타 사용자 정의 배포에서 Claude Code는 모델 ID가 모델의 실제 윈도우와 다른 컨텍스트 윈도우를 가정할 수 있습니다(ID가 Claude 모델로 확인되는지 여부와 관계없이). [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](https://code.claude.com/docs/ko/env-vars)를 Claude Code가 대신 가정해야 하는 윈도우로 설정합니다.


1100 1127 

1101| 버전 | 변경 사항 |1128| 버전 | 변경 사항 |

1102| :- | :- |1129| :- | :- |

1130| v2.1.321 | `fable`은 Claude 앱 게이트웨이 세션을 제외하고 Fable 5.2로 해석됩니다 |

1131| v2.1.321 | `best`는 `opus`와 동일한 모델로 해석됩니다. 이전 버전에서는 Fable을 사용할 수 있는 경우 `fable`이 해석하는 모델을 사용합니다 |

1103| v2.1.293 | `haiku`는 Anthropic API에서 Haiku 5.5로 해석됩니다 |1132| v2.1.293 | `haiku`는 Anthropic API에서 Haiku 5.5로 해석됩니다 |

1104| v2.1.284 | `sonnet`은 Anthropic API에서 Sonnet 5.5로 해석됩니다 |1133| v2.1.284 | `sonnet`은 Anthropic API에서 Sonnet 5.5로 해석됩니다 |

1105| v2.1.280 | `opus`는 Anthropic API, AWS의 Claude Platform, Amazon Bedrock 및 Google Cloud의 Agent Platform에서 Opus 5.5로 해석됩니다 |1134| v2.1.280 | `opus`는 Anthropic API, AWS의 Claude Platform, Amazon Bedrock 및 Google Cloud의 Agent Platform에서 Opus 5.5로 해석됩니다 |

permissions.md +2 −1

Details

253| :- | :- | :- |253| :- | :- | :- |

254| `Bash(curl *)` | `curl https://example.com` | `/usr/bin/curl https://example.com`, `sh -c 'curl https://example.com'` |254| `Bash(curl *)` | `curl https://example.com` | `/usr/bin/curl https://example.com`, `sh -c 'curl https://example.com'` |

255| `Bash(rm *)` | `rm -rf build/` | `/bin/rm -rf build/`, `bash -c 'rm -rf build/'` |255| `Bash(rm *)` | `rm -rf build/` | `/bin/rm -rf build/`, `bash -c 'rm -rf build/'` |

256| `Bash(git push *)` | `git push origin main` | `git -C . push origin main`, `git -c push.default=current push origin main`, `git 'push' origin main` |256| `Bash(git push *)` | `git push origin main` | `git -C . push origin main`, `git -c push.default=current push origin main` |

257 257 

258마지막 열의 명령은 다른 규칙과 권한 모드에 따라 결정됩니다.258마지막 열의 명령은 다른 규칙과 권한 모드에 따라 결정됩니다.

259 259 


273* **다른 데몬을 가리키는 `docker`**: `docker`의 읽기 전용 형태는 `-H`, `--context`, 또는 Podman의 `--url`과 `--connection`처럼 다른 데몬을 선택하는 플래그가 명령에 포함되어 있으면 확인을 요청합니다.273* **다른 데몬을 가리키는 `docker`**: `docker`의 읽기 전용 형태는 `-H`, `--context`, 또는 Podman의 `--url`과 `--connection`처럼 다른 데몬을 선택하는 플래그가 명령에 포함되어 있으면 확인을 요청합니다.

274* **경로를 여는 플래그가 있는 `file`**: `file`은 `-m`/`--magic-file` 또는 `-f`/`--files-from`을 전달하면 확인을 요청합니다. 이러한 플래그는 `file`이 플래그 값에 지정된 경로를 열게 하기 때문입니다.274* **경로를 여는 플래그가 있는 `file`**: `file`은 `-m`/`--magic-file` 또는 `-f`/`--files-from`을 전달하면 확인을 요청합니다. 이러한 플래그는 `file`이 플래그 값에 지정된 경로를 열게 하기 때문입니다.

275* **환경 변수를 출력할 수 있는 `ps`**: `ps`는 `ps auxe`나 `ps aux -e`처럼 인수 중 하나가 `e` 옵션으로 작동할 수 있으면 확인을 요청합니다. 이 옵션은 프로세스 환경 변수를 출력하기 때문입니다. `ps aux`와 `ps -ef`는 프롬프트 없이 실행됩니다. `ps aux -e` 같은 대시 형태에 대한 검사는 Claude Code v2.1.290 이상이 필요합니다.275* **환경 변수를 출력할 수 있는 `ps`**: `ps`는 `ps auxe`나 `ps aux -e`처럼 인수 중 하나가 `e` 옵션으로 작동할 수 있으면 확인을 요청합니다. 이 옵션은 프로세스 환경 변수를 출력하기 때문입니다. `ps aux`와 `ps -ef`는 프롬프트 없이 실행됩니다. `ps aux -e` 같은 대시 형태에 대한 검사는 Claude Code v2.1.290 이상이 필요합니다.

276* **조회 및 표시 이외의 플래그가 있는 `which`**: `which`는 `-i`/`--read-alias` 또는 `--read-functions` 같은 플래그를 전달하면 확인을 요청합니다. `which node`와 `which -a node`는 프롬프트 없이 실행됩니다.

276* **Windows의 네트워크 경로**: `\\server\share\file`처럼 인수에 네트워크(UNC) 경로가 포함된 명령은 확인을 요청합니다. 네트워크 경로에 접근하면 Windows 자격 증명이 해당 경로가 가리키는 호스트로 전송될 수 있기 때문입니다. 동일한 검사가 [PowerShell 도구](https://code.claude.com/docs/ko/tools-reference.md#powershell-tool) 명령에도 적용됩니다.277* **Windows의 네트워크 경로**: `\\server\share\file`처럼 인수에 네트워크(UNC) 경로가 포함된 명령은 확인을 요청합니다. 네트워크 경로에 접근하면 Windows 자격 증명이 해당 경로가 가리키는 호스트로 전송될 수 있기 때문입니다. 동일한 검사가 [PowerShell 도구](https://code.claude.com/docs/ko/tools-reference.md#powershell-tool) 명령에도 적용됩니다.

277* **특수 셸 변수에 대한 쓰기**: `PATH`나 `IFS` 같은 특정 특수 셸 변수를 설정, 해제하거나 이를 대상으로 반복하는 명령은 명령의 나머지 부분이 읽기 전용이더라도 확인을 요청합니다.278* **특수 셸 변수에 대한 쓰기**: `PATH`나 `IFS` 같은 특정 특수 셸 변수를 설정, 해제하거나 이를 대상으로 반복하는 명령은 명령의 나머지 부분이 읽기 전용이더라도 확인을 요청합니다.

278* **분석으로 파싱할 수 없는 명령**: Claude Code가 명령을 완전히 파싱할 수 없으면 해당 명령을 읽기 전용으로 취급하지 않고 승인을 요청합니다. 10,000자를 초과하는 명령은 분석이 파싱하는 범위를 넘어서므로 항상 확인을 요청합니다.279* **분석으로 파싱할 수 없는 명령**: Claude Code가 명령을 완전히 파싱할 수 없으면 해당 명령을 읽기 전용으로 취급하지 않고 승인을 요청합니다. 10,000자를 초과하는 명령은 분석이 파싱하는 범위를 넘어서므로 항상 확인을 요청합니다.

Details

279* **훅의 `next(e)` 호출이 프롬프트를 통과시킨 후에 훅이 `drop`을 반환하는 경우**: 턴은 그대로 실행되며, 훅은 `a drop after its next() was answered`가 포함된 메시지와 함께 [실패합니다](#handle-a-hook-that-fails)279* **훅의 `next(e)` 호출이 프롬프트를 통과시킨 후에 훅이 `drop`을 반환하는 경우**: 턴은 그대로 실행되며, 훅은 `a drop after its next() was answered`가 포함된 메시지와 함께 [실패합니다](#handle-a-hook-that-fails)

280* **훅이 예외를 발생시키거나 시간 초과되는 경우**: Claude Code는 훅을 건너뛰고 프롬프트를 전송합니다. 실패로 인해 훅이 중단했을 프롬프트가 전송되지 않도록 [`.catch` 핸들러를 추가](#handle-a-hook-that-fails)하세요.280* **훅이 예외를 발생시키거나 시간 초과되는 경우**: Claude Code는 훅을 건너뛰고 프롬프트를 전송합니다. 실패로 인해 훅이 중단했을 프롬프트가 전송되지 않도록 [`.catch` 핸들러를 추가](#handle-a-hook-that-fails)하세요.

281 281 

282[다른 이벤트](https://code.claude.com/docs/ko/plugins/mods/reference.md#prompts-and-what-claude-reads)는 Claude가 읽는 나머지 내용을 다룹니다. 시스템 프롬프트의 각 섹션에는 `prompt.section`, 첫 번째 메시지와 함께 전송되는 컨텍스트에는 `prompt.context`, 스킬의 텍스트에는 `skill.prompt`를 사용합니다. 이러한 훅에서 나온 텍스트가 요청마다 달라지면 [프롬프트 캐시가 무효화됩니다](https://code.claude.com/docs/ko/prompt-caching.md). `skill.prompt` 훅에서는 [스킬이 어떤 플러그인이나 파일에서 왔는지](https://code.claude.com/docs/ko/plugins/mods/reference.md#skill-prompt-fields)도 읽을 수 있습니다.282[다른 이벤트](https://code.claude.com/docs/ko/plugins/mods/reference.md#prompts-and-what-claude-reads)는 Claude가 읽는 나머지 내용을 다룹니다. 시스템 프롬프트의 각 섹션에는 `prompt.section`, 첫 번째 메시지와 함께 전송되는 컨텍스트에는 `prompt.context`, 스킬의 텍스트에는 `skill.prompt`를 사용합니다. 대화가 시작된 후에 섹션을 변경하려면 [변경된 시스템 프롬프트 섹션 또는 도구 설명 보내기](https://code.claude.com/docs/ko/plugins/mods/reference.md#break-prompt-cache)를 참조하세요. `skill.prompt` 훅에서는 [스킬이 어떤 플러그인이나 파일에서 왔는지](https://code.claude.com/docs/ko/plugins/mods/reference.md#skill-prompt-fields)도 읽을 수 있습니다.

283 283 

284### 턴 추적하기284### 턴 추적하기

285 285 

Details

197>197>

198> band에 그리려면 `{ component: 'AbovePrompt' }`로 필터링합니다.198> band에 그리려면 `{ component: 'AbovePrompt' }`로 필터링합니다.

199 199 

200mod는 [트랜스크립트에 자체 행을 배치](#place-a-row-in-the-transcript)할 수도 있습니다.

201 

200### Claude Code가 이미 그리는 요소 변경하기202### Claude Code가 이미 그리는 요소 변경하기

201 203 

202Claude Code는 메시지, 도구 호출 행, 스피너 등 인터페이스의 대부분을 직접 그립니다. 이러한 각 부분도 렌더링 지점이므로 mod로 스타일을 변경하거나 대체할 수 있습니다. 하나를 변경하려면 다음 표에 있는 이름으로 `ui.render` 훅을 필터링합니다.204Claude Code는 메시지, 도구 호출 행, 스피너 등 인터페이스의 대부분을 직접 그립니다. 이러한 각 부분도 렌더링 지점이므로 mod로 스타일을 변경하거나 대체할 수 있습니다. 하나를 변경하려면 다음 표에 있는 이름으로 `ui.render` 훅을 필터링합니다.


349* **프롬프트 제안**: 패널은 프롬프트 상자의 흐린 제안 텍스트를 Claude 자체 제안용으로 유지하므로 `$.prompt.suggest`는 `isShown: false`로 resolve되며 아무것도 표시하지 않습니다.351* **프롬프트 제안**: 패널은 프롬프트 상자의 흐린 제안 텍스트를 Claude 자체 제안용으로 유지하므로 `$.prompt.suggest`는 `isShown: false`로 resolve되며 아무것도 표시하지 않습니다.

350* **텍스트 제한**: 패널은 상태줄을 200자 또는 두 행에서 자르고, 토스트는 500자에서 자릅니다.352* **텍스트 제한**: 패널은 상태줄을 200자 또는 두 행에서 자르고, 토스트는 500자에서 자릅니다.

351 353 

354### 트랜스크립트에 행 배치하기

355 

356행은 mod가 터미널의 트랜스크립트에서 최신 메시지 뒤에 추가하는 줄입니다. 행은 대화가 진행되어도 그 위치에 그대로 남으며, Claude는 이를 보지 못합니다. `$.ui.place`에는 Claude Code v2.1.314 이상이 필요합니다.

357 

358**1. 행 배치하기**

359 

360`id`로 [`$.ui.place`](https://code.claude.com/docs/ko/plugins/mods/reference#mods-api-methods)를 호출합니다. `id`는 `build-status`처럼 행에 붙이는 임의의 이름입니다. 영문자, 숫자, `_`, `-`로 구성된 1\~64자일 수 있으며, mod가 트랜스크립트에 둔 각 행에는 고유한 `id`가 필요합니다.

361 

362**2. 행 그리기**

363 

364[`Placed`](https://code.claude.com/docs/ko/plugins/mods/reference#render-sites) 렌더링 지점에서 행을 그립니다.

365 

366다음 예제는 `/build-status` 명령을 추가합니다. 사용자가 명령을 실행하면 mod는 `Build: passing`을 표시하는 행을 추가합니다. 예제를 짧게 유지하기 위해 텍스트가 고정되어 있으므로, 실제 mod에서는 자체 결과를 그려야 합니다.

367 

368```javascript theme={null}

369export function register(on) {

370 on('session.start', async ($, e, next) => {

371 await $.command.register({ name: 'build-status', description: 'Show the build status' })

372 return next(e)

373 })

374 

375 on('command.run', { command: 'build-status' }, async ($) => {

376 const placed = await $.ui.place({ id: 'build-status' })

377 // Where nothing draws the row, reply with text instead

378 return placed.isPlaced ? {} : { text: 'Build: passing' }

379 })

380 

381 on('ui.render', { component: 'Placed' }, async ($, e, next) => {

382 // This hook runs for every mod's rows, and another mod can use the same id

383 if (e.props.plugin !== $.plugin.name || e.props.id !== 'build-status') return next(e)

384 const { Text } = $.ui.resolve(e)

385 return Text({ children: ['Build: passing'] })

386 })

387}

388```

389 

390예제를 사용해 보려면 이 코드를 [mod](https://code.claude.com/docs/ko/plugins/mods/create.md)에 넣으십시오. 터미널 세션에서 Claude Code 프롬프트에 `/build-status`를 실행합니다. 트랜스크립트 끝에 `Build: passing`이 행으로 나타납니다.

391 

392호출이 항상 행을 표시하는 것은 아니며 행이 나중에 사라질 수도 있으므로, mod에서 다음 경우를 처리하십시오.

393 

394* **결과**: 터미널이 행을 그리면 `{ isPlaced: true, requestId }`입니다. 그렇지 않으면 `isPlaced`는 `false`이고 `reason`은 `no attached surface draws placed rows yet`처럼 그 이유를 설명합니다. 이유 중 하나는 mod가 한 번에 가질 수 있는 [행 수 제한](https://code.claude.com/docs/ko/plugins/mods/reference.md#limits)입니다.

395* **같은 `id`로 두 번째 호출**: 첫 번째 행이 아직 트랜스크립트에 있는 동안에는 호출이 행을 추가하지 않고 해당 행의 `requestId`로 resolve됩니다. 행에 표시되는 내용을 변경하려면 [행을 다시 그리십시오](#redraw-when-something-changes).

396* **행이 사라지는 경우**: 대화가 끝날 때, 사용자가 행 이전으로 되감을 때, 또는 [전체 화면 렌더링](https://code.claude.com/docs/ko/fullscreen.md) 외부에서 대화가 압축될 때입니다. `--resume`으로는 행이 복원되지 않습니다. 행을 다시 표시하려면 `$.ui.place`를 다시 호출합니다.

397 

398### 대화 뒤에 배경 두기

399 

400> [!NOTE]

401>

402> `$.theme.set`과 `$.theme.clear`는 Claude Code v2.1.319에서 제거된 `$.ui.backdrop`을 대체합니다. `$.ui.backdrop({ id: 'your-backdrop' })`은 `$.theme.set({ backdrop: { id: 'your-backdrop' } })`로, `$.ui.backdrop(undefined)`는 모든 mod의 배경을 제거하는 `$.theme.clear()`로 변경하십시오.

403 

404Desktop 앱이나 모바일 앱에서 대화 뒤에 배경을 두려면 `backdrop`과 함께 [`$.theme.set`](https://code.claude.com/docs/ko/plugins/mods/reference#mods-api-methods)을 호출한 다음 [`Backdrop`](https://code.claude.com/docs/ko/plugins/mods/reference#render-sites) 렌더링 지점에서 배경을 그립니다. 배경을 없애려면 `$.theme.clear()`를 호출합니다. 터미널은 배경을 그리지 않습니다. `$.theme.set`과 `$.theme.clear`에는 Claude Code v2.1.319 이상이 필요합니다.

405 

406다음 mod는 세션이 시작될 때 배경을 설정하고, 배경을 그리며, 배경을 없애는 `/plain` 명령을 추가합니다.

407 

408```javascript theme={null}

409export function register(on) {

410 // Neither a reload of this mod nor --resume keeps the backdrop, so set it here

411 on('session.start', async ($, e, next) => {

412 await $.theme.set({ backdrop: { id: 'night-sky', colorScheme: 'dark' } })

413 await $.command.register({ name: 'plain', description: 'Take the backdrop off' })

414 return next(e)

415 })

416 

417 on('ui.render', { component: 'Backdrop' }, async ($, e, next) => {

418 // This hook runs for every mod's backdrop, and another mod can use the same id

419 if (e.props.plugin !== $.plugin.name || e.props.id !== 'night-sky') return next(e)

420 const { Box, Text } = $.ui.resolve(e)

421 return Box({ backgroundColor: 'blue', children: [Text({ children: ['Night sky'] })] })

422 })

423 

424 on('command.run', { command: 'plain' }, async ($) => {

425 const cleared = await $.theme.clear()

426 return { text: cleared.reason }

427 })

428}

429```

430 

431예제를 사용해 보려면 이 코드를 [mod](https://code.claude.com/docs/ko/plugins/mods/create.md)에 넣고 Desktop 앱이나 모바일 앱에서 세션을 시작하십시오. 배경을 없애려면 Claude Code 프롬프트에서 `/plain`을 실행합니다. 트랜스크립트에는 mod 이름 뒤에 `the theme is cleared`가 표시됩니다. 예를 들어 이름이 `night-sky`인 mod의 경우 `night-sky: the theme is cleared`로 표시됩니다.

432 

433`backdrop`이 받는 값, 호출 결과가 알려 주는 내용, 다른 mod가 변경할 수 있는 내용을 확인하십시오.

434 

435* **`backdrop` 필드**: 직접 정하는 [이름](https://code.claude.com/docs/ko/plugins/mods/reference.md#limits)인 `id`는 필수이며, 다른 필드는 선택 사항입니다. `colorScheme`은 `'light'` 또는 `'dark'`이며 그리는 내용이 밝은지 어두운지를 나타냅니다. `glass`에 대해서는 [빌드에 맞는 타입](https://code.claude.com/docs/ko/plugins/mods/create.md#get-the-types-for-your-build)을 참조하십시오.

436* **배경이 그려지는지 여부**: 세션에 연결된 Desktop 또는 모바일 앱이 배경을 그린다고 응답하면 `$.theme.set`은 `isDrawn: true`로 resolve됩니다. 그렇지 않으면 `isDrawn`은 `false`이고 `reason`은 그 이유를 설명합니다.

437* **세션당 하나의 배경**: `$.theme.set` 호출은 어느 mod가 설정했든 세션의 배경을 대체하고, `$.theme.clear()`는 그 배경을 제거합니다. `$.theme.clear()`는 사용자가 요청할 때만 호출하십시오.

438 

352## 요소로 트리 만들기439## 요소로 트리 만들기

353 440 

354`ui.render` 훅이 반환하는 것은 요소 트리입니다. 요소 트리는 무엇을 그릴지에 대한 설명으로, 서로 중첩된 박스, 텍스트, 컨트롤로 구성됩니다. 그릴 내용을 기술하면 Claude Code가 사용자가 열어 둔 앱, 즉 터미널, Desktop 앱 또는 VS Code 확장 프로그램 중 어디에서든 이를 렌더링합니다.441`ui.render` 훅이 반환하는 것은 요소 트리입니다. 요소 트리는 무엇을 그릴지에 대한 설명으로, 서로 중첩된 박스, 텍스트, 컨트롤로 구성됩니다. 그릴 내용을 기술하면 Claude Code가 사용자가 열어 둔 앱, 즉 터미널, Desktop 앱 또는 VS Code 확장 프로그램 중 어디에서든 이를 렌더링합니다.

Details

57| :- | :- | :- |57| :- | :- | :- |

58| [`tool.call`](https://code.claude.com/docs/ko/plugins/mods/events#guard-or-change-a-tool-call) | 도구가 실행되기 직전 | `next(e)`, `{ deny: reason }` 또는 `{ result }` |58| [`tool.call`](https://code.claude.com/docs/ko/plugins/mods/events#guard-or-change-a-tool-call) | 도구가 실행되기 직전 | `next(e)`, `{ deny: reason }` 또는 `{ result }` |

59| [`tool.check`](https://code.claude.com/docs/ko/plugins/mods/events#where-settings-hooks-run-in-the-order) | `tool.call` 및 `PreToolUse` 훅 이후, Claude Code가 도구 호출의 실행 허용 여부를 결정할 때. `next(e)`는 규칙, 권한 모드, 그리고 해당 훅들이 내린 결정으로 확정됩니다. | `next(e)` 또는 `{ decision }`. `decision`은 `allow`, `ask` 또는 `deny`로 설정하며, 선택적으로 `reason`을 함께 지정할 수 있습니다 |59| [`tool.check`](https://code.claude.com/docs/ko/plugins/mods/events#where-settings-hooks-run-in-the-order) | `tool.call` 및 `PreToolUse` 훅 이후, Claude Code가 도구 호출의 실행 허용 여부를 결정할 때. `next(e)`는 규칙, 권한 모드, 그리고 해당 훅들이 내린 결정으로 확정됩니다. | `next(e)` 또는 `{ decision }`. `decision`은 `allow`, `ask` 또는 `deny`로 설정하며, 선택적으로 `reason`을 함께 지정할 수 있습니다 |

60| `tool.describe` | 각 도구의 설명이 Claude에 처음 전송될 때 도구마다 한 번. MCP 도구의 경우 Claude가 [도구 검색](https://code.claude.com/docs/ko/mcp.md#scale-with-mcp-tool-search)을 통해 해당 도구를 로드할 때 한 번 더 발생하며, 이때 `e.description`은 로드된 도구에 대해 Claude가 읽는 텍스트로 설정됩니다. | `{ description }`. 선택적으로 `isDeferred`를 함께 지정할 수 있으며, `true`로 설정하면 도구를 도구 검색 뒤에 두고 `false`로 설정하면 처음부터 로드합니다 |60| `tool.describe` | 각 도구의 설명이 Claude에 처음 전송될 때 도구마다 한 번. MCP 도구의 경우 Claude가 [도구 검색](https://code.claude.com/docs/ko/mcp.md#scale-with-mcp-tool-search)을 통해 해당 도구를 로드할 때 한 번 더 발생하며, 이때 `e.description`은 로드된 도구에 대해 Claude가 읽는 텍스트로 설정됩니다. | `{ description }`. 선택적으로 `isDeferred`를 함께 지정할 수 있으며, `true`로 설정하면 도구를 도구 검색 뒤에 두고 `false`로 설정하면 처음부터 로드합니다. 변경한 설명을 다음 턴에 전송하려면 [`breakPromptCache: true`](#break-prompt-cache)를 추가합니다. |

61 61 

62#### `tool.check`의 에이전트 및 조직 필드62#### `tool.check`의 에이전트 및 조직 필드

63 63 


85| `prompt.edit` | 사용자가 프롬프트 입력란을 편집할 때 | `next(e)` |85| `prompt.edit` | 사용자가 프롬프트 입력란을 편집할 때 | `next(e)` |

86| `prompt.autocomplete` | 사용자가 프롬프트 입력란에 입력하고 커서 위치에서 단어가 끝날 때. `e.token`은 해당 단어입니다. Claude Code는 훅을 기다리지 않으며, 자체 자동 완성 행이 먼저 표시됩니다. | `{ suggestions }`(Claude Code 자체 행 아래에 표시되는 `{ text, label, description }` 행 목록). 행을 선택하면 해당 행의 `text`가 단어를 대체합니다. |86| `prompt.autocomplete` | 사용자가 프롬프트 입력란에 입력하고 커서 위치에서 단어가 끝날 때. `e.token`은 해당 단어입니다. Claude Code는 훅을 기다리지 않으며, 자체 자동 완성 행이 먼저 표시됩니다. | `{ suggestions }`(Claude Code 자체 행 아래에 표시되는 `{ text, label, description }` 행 목록). 행을 선택하면 해당 행의 `text`가 단어를 대체합니다. |

87| `prompt.compose` | Claude Code가 시스템 프롬프트를 렌더링할 때 | `{ sections }`(전송 순서대로 나열한 `{ id, text, scope }` 목록) |87| `prompt.compose` | Claude Code가 시스템 프롬프트를 렌더링할 때 | `{ sections }`(전송 순서대로 나열한 `{ id, text, scope }` 목록) |

88| [`prompt.section`](https://code.claude.com/docs/ko/plugins/mods/events#rewrite-or-add-to-a-prompt) | 시스템 프롬프트의 이름 있는 섹션마다 한 번. `e.name`은 `prompt.compose`에서의 섹션 `id`입니다. | `{ text }`, 또는 섹션을 생략하려면 `{ text: null }` |88| [`prompt.section`](https://code.claude.com/docs/ko/plugins/mods/events#rewrite-or-add-to-a-prompt) | 시스템 프롬프트의 이름 있는 섹션마다 한 번. `e.name`은 `prompt.compose`에서의 섹션 `id`입니다. | `{ text }`, 또는 섹션을 생략하려면 `{ text: null }`. 변경한 섹션을 다음 턴에 전송하려면 [`breakPromptCache: true`](#break-prompt-cache)를 추가합니다. |

89| [`prompt.context`](https://code.claude.com/docs/ko/plugins/mods/events#rewrite-or-add-to-a-prompt) | 대화마다 한 번, 첫 메시지와 함께 전송되는 컨텍스트에 대해 | `{ blocks }` |89| [`prompt.context`](https://code.claude.com/docs/ko/plugins/mods/events#rewrite-or-add-to-a-prompt) | 대화마다 한 번, 첫 메시지와 함께 전송되는 컨텍스트에 대해 | `{ blocks }` |

90| `prompt.attachment` | Claude Code가 리마인더처럼 Claude를 위한 자체 메시지를 추가할 때. `e.type`은 종류를 나타내며, 타입에 선언된 종류의 경우 `e.detail`에 텍스트 작성의 근거가 된 정보가 담깁니다. | `{ text }`, 또는 생략하려면 `{ text: null }` |90| `prompt.attachment` | Claude Code가 리마인더처럼 Claude를 위한 자체 메시지를 추가할 때. `e.type`은 종류를 나타내며, 타입에 선언된 종류의 경우 `e.detail`에 텍스트 작성의 근거가 된 정보가 담깁니다. | `{ text }`, 또는 생략하려면 `{ text: null }` |

91| `prompt.mention` | Claude Code가 프롬프트에서 @-멘션한 파일을 읽기 직전. Claude Code v2.1.290 이상이 필요합니다. | 다른 파일을 읽으려면 `next({ ...e, path })`, 또는 `{ deny: reason }` |91| `prompt.mention` | Claude Code가 프롬프트에서 @-멘션한 파일을 읽기 직전. Claude Code v2.1.290 이상이 필요합니다. | 다른 파일을 읽으려면 `next({ ...e, path })`, 또는 `{ deny: reason }` |


108 108 

109`skill.prompt`에서 `e.source`, `e.pluginName`, `e.path`, `e.frontmatter`, `e.frontmatterProblem`을 사용하려면 Claude Code v2.1.299 이상이 필요합니다.109`skill.prompt`에서 `e.source`, `e.pluginName`, `e.path`, `e.frontmatter`, `e.frontmatterProblem`을 사용하려면 Claude Code v2.1.299 이상이 필요합니다.

110 110 

111#### `breakPromptCache`로 변경한 시스템 프롬프트 섹션 또는 도구 설명 전송하기

112 

113실행 중인 대화에서 섹션이나 도구 설명을 변경하려면 `$.ui.invalidate('prompt.section')` 또는 `$.ui.invalidate('tool.describe')`를 호출하여 훅이 다시 실행되도록 합니다. 그리고 훅에서 `{ text, breakPromptCache: true }` 또는 `{ description, breakPromptCache: true }`를 반환합니다. 이 필드가 없으면 섹션이나 처음부터 로드된 도구에 대해 Claude는 새 대화가 시작되거나 [압축](https://code.claude.com/docs/ko/prompt-caching.md#compacting-the-conversation)이 이루어질 때까지 [대화와 함께 저장된](https://code.claude.com/docs/ko/cli-reference.md#system-prompt-flags-in-resumed-conversations) 텍스트를 계속 읽습니다.

114 

115변경한 텍스트는 다음 턴에 Claude에 전달되며 [프롬프트 캐시](https://code.claude.com/docs/ko/prompt-caching.md)가 처음부터 다시 시작되므로, 해당 턴은 더 느리고 비용이 더 많이 듭니다. 이 필드를 사용하려면 Claude Code v2.1.321 이상이 필요합니다. v2.1.299부터 v2.1.321 이전까지는 실행 중인 대화가 다음 턴에 변경된 텍스트를 받았습니다.

116 

111### 명령과 구성117### 명령과 구성

112 118 

113| 이벤트 | 발생 시점 | 훅이 반환할 수 있는 값 |119| 이벤트 | 발생 시점 | 훅이 반환할 수 있는 값 |


212| 네임스페이스 | 메서드 |218| 네임스페이스 | 메서드 |

213| :- | :- |219| :- | :- |

214| `$.plugin` | `name`, `root`: 이 플러그인의 이름과 디렉터리 |220| `$.plugin` | `name`, `root`: 이 플러그인의 이름과 디렉터리 |

215| [`$.ui`](https://code.claude.com/docs/ko/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, `focus`, `scroll`, `toast`, `notify`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit` |221| [`$.ui`](https://code.claude.com/docs/ko/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, [`place`](https://code.claude.com/docs/ko/plugins/mods/interface#place-a-row-in-the-transcript), `focus`, `scroll`, `toast`, `notify`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit`, `view`. `view`에는 Claude Code v2.1.300 이상이, `place`에는 v2.1.314 이상이 필요합니다. |

222| [`$.theme`](https://code.claude.com/docs/ko/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `set`, `clear`: Desktop 또는 모바일 앱이 그릴 배경을 설정하고, 배경을 제거합니다. Claude Code v2.1.319 이상이 필요합니다. |

216| [`$.command`](https://code.claude.com/docs/ko/plugins/mods/api#add-a-command) | `register`, `run`, `list` |223| [`$.command`](https://code.claude.com/docs/ko/plugins/mods/api#add-a-command) | `register`, `run`, `list` |

217| [`$.tool`](https://code.claude.com/docs/ko/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |224| [`$.tool`](https://code.claude.com/docs/ko/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |

218| `$.agent` | `register`, `spawn`, `list`. `list()`는 이 세션의 서브에이전트와 팀원을 반환하며, 각 항목의 `status`는 `pending`, `running`, `waiting`, `idle`, `completed`, `failed`, `killed` 중 하나입니다. 이 중 `idle`과 `waiting`에는 Claude Code v2.1.289 이상이 필요합니다. |225| `$.agent` | `register`, `spawn`, `list`. `list()`는 이 세션의 서브에이전트와 팀원을 반환하며, 각 항목의 `status`는 `pending`, `running`, `waiting`, `idle`, `completed`, `failed`, `killed` 중 하나입니다. 이 중 `idle`과 `waiting`에는 Claude Code v2.1.289 이상이 필요합니다. |


243| :- | :- | :- | :- |250| :- | :- | :- | :- |

244| [`Pane`](https://code.claude.com/docs/ko/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | 창의 `id` | 터미널, Desktop, VS Code |251| [`Pane`](https://code.claude.com/docs/ko/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | 창의 `id` | 터미널, Desktop, VS Code |

245| [`AbovePrompt`](https://code.claude.com/docs/ko/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | 단일 인스턴스 | 터미널, Desktop |252| [`AbovePrompt`](https://code.claude.com/docs/ko/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | 단일 인스턴스 | 터미널, Desktop |

253| [`Placed`](https://code.claude.com/docs/ko/plugins/mods/interface#place-a-row-in-the-transcript) | `id`, `plugin`, `onScreen` | `$.ui.place`가 반환한 `requestId` | 터미널 |

254| [`Backdrop`](https://code.claude.com/docs/ko/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `id`, `plugin`, `glass`, `colorScheme` | `backdrop` | `desktop` 및 `mobile` 사용 환경. Desktop 또는 모바일 앱이 배경 그리기를 요청할 때 훅이 실행됩니다. |

246| `UserMessage` | `text`, `origin`, `isExpanded`, 그리고 origin에 따라 `task` 또는 `from` | 메시지 id | 터미널, Desktop, VS Code |255| `UserMessage` | `text`, `origin`, `isExpanded`, 그리고 origin에 따라 `task` 또는 `from` | 메시지 id | 터미널, Desktop, VS Code |

247| `AssistantMessage` | 응답의 텍스트 | 메시지 id | 터미널, Desktop, VS Code |256| `AssistantMessage` | 응답의 텍스트 | 메시지 id | 터미널, Desktop, VS Code |

248| `ToolUse`, `ToolResult`, `ToolGroup` | 도구의 이름, 입력, 결과 | 도구 호출 id | 터미널, Desktop, VS Code |257| `ToolUse`, `ToolResult`, `ToolGroup` | 도구의 이름, 입력, 결과 | 도구 호출 id | 터미널, Desktop, VS Code |


399| `$.ui.invalidate('ui.render')` 다시 그리기 | 초당 10회로 제한되며, 터미널에서는 표시 중인 창, 확장된 밴드, 프롬프트 아래의 힌트 줄에 대해 초당 30회로 제한됩니다. 그보다 빨리 들어오는 호출은 하나로 병합됩니다. |408| `$.ui.invalidate('ui.render')` 다시 그리기 | 초당 10회로 제한되며, 터미널에서는 표시 중인 창, 확장된 밴드, 프롬프트 아래의 힌트 줄에 대해 초당 30회로 제한됩니다. 그보다 빨리 들어오는 호출은 하나로 병합됩니다. |

400| `$.ui.toast` | `{ timeoutMs }`를 전달하지 않으면 4초 동안 표시됩니다. [클래식 렌더러](https://code.claude.com/docs/ko/fullscreen.md#enable-fullscreen-rendering)에서는 mod의 새 토스트가 표시 중이거나 표시 대기 중인 [이전 토스트를 대체할 수 있습니다](https://code.claude.com/docs/ko/plugins/mods/troubleshoot.md#a-toast-doesn’t-appear). |409| `$.ui.toast` | `{ timeoutMs }`를 전달하지 않으면 4초 동안 표시됩니다. [클래식 렌더러](https://code.claude.com/docs/ko/fullscreen.md#enable-fullscreen-rendering)에서는 mod의 새 토스트가 표시 중이거나 표시 대기 중인 [이전 토스트를 대체할 수 있습니다](https://code.claude.com/docs/ko/plugins/mods/troubleshoot.md#a-toast-doesn’t-appear). |

401| 사용자가 요청하지 않았는데 열린 창 | 터미널 너비가 144열 이상일 때 배치되며, 사용자가 한 번 연 이후에는 110열 이상일 때 배치됩니다 |410| 사용자가 요청하지 않았는데 열린 창 | 터미널 너비가 144열 이상일 때 배치되며, 사용자가 한 번 연 이후에는 110열 이상일 때 배치됩니다 |

411| 하나의 mod가 하나의 대화에서 동시에 보유하는 `$.ui.place`의 행 | 500. 제한에 도달하면 새 `id`를 사용한 호출은 `{ isPlaced: false, reason: 'a plugin holds at most 500 placed rows' }`로 resolve됩니다. |

402| mod API 호출 인수의 중첩 깊이 | 28,000단계. 이를 넘으면 호출이 `nesting deeper than 28000 levels is not supported`로 끝나는 메시지와 함께 거부됩니다. Claude Code v2.1.299 이상이 필요합니다. |412| mod API 호출 인수의 중첩 깊이 | 28,000단계. 이를 넘으면 호출이 `nesting deeper than 28000 levels is not supported`로 끝나는 메시지와 함께 거부됩니다. Claude Code v2.1.299 이상이 필요합니다. |

403| `turn.step`의 훅과 같은 [비동기 제너레이터 훅](#events) 외부에서 `next`에 전달되는 변경된 이벤트의 중첩 깊이 | 28,000단계. 이를 넘으면 `next`가 `nesting deeper than 28000 levels is not supported`로 끝나는 메시지와 함께 거부됩니다. Claude Code v2.1.299 이상이 필요합니다. |413| `turn.step`의 훅과 같은 [비동기 제너레이터 훅](#events) 외부에서 `next`에 전달되는 변경된 이벤트의 중첩 깊이 | 28,000단계. 이를 넘으면 `next`가 `nesting deeper than 28000 levels is not supported`로 끝나는 메시지와 함께 거부됩니다. Claude Code v2.1.299 이상이 필요합니다. |

404| `ui.render`, `ui.resolve`, 비동기 제너레이터 훅 외부에서 훅 반환 값의 중첩 깊이 | 28,000단계. 이를 넘으면 훅의 결과가 거부되며, [이를 보고하는 알림](https://code.claude.com/docs/ko/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing)에 `nesting deeper than 28000 levels is not supported`가 포함됩니다. Claude Code v2.1.299 이상이 필요합니다. |414| `ui.render`, `ui.resolve`, 비동기 제너레이터 훅 외부에서 훅 반환 값의 중첩 깊이 | 28,000단계. 이를 넘으면 훅의 결과가 거부되며, [이를 보고하는 알림](https://code.claude.com/docs/ko/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing)에 `nesting deeper than 28000 levels is not supported`가 포함됩니다. Claude Code v2.1.299 이상이 필요합니다. |

405| 훅 모듈의 한 파일 안에서 서로 중첩된 함수, 블록, 루프 등의 범위 | 2,000 |415| 훅 모듈의 한 파일 안에서 서로 중첩된 함수, 블록, 루프 등의 범위 | 2,000 |

406| 명령, 도구, 서브에이전트 유형 및 창 이름 | 문자, 숫자, `_`, `-`로 구성되며 최대 64자 |416| 명령, 도구, 서브에이전트 유형 및 창 이름, 그리고 배치된 행 또는 백드롭의 `id` | 문자, 숫자, `_`, `-`로 구성되며 최대 64자 |

407| 하나의 `claude plugin test` 테스트 | 테스트에서 `timeoutMs`를 설정하지 않으면 5초 |417| 하나의 `claude plugin test` 테스트 | 테스트에서 `timeoutMs`를 설정하지 않으면 5초 |

408 418 

409## 설정 및 환경 변수419## 설정 및 환경 변수

Details

33두 가지 설정은 계층 표에 나타나지 않지만 여전히 캐시된 상태에 영향을 미칩니다:33두 가지 설정은 계층 표에 나타나지 않지만 여전히 캐시된 상태에 영향을 미칩니다:

34 34 

35* **모델**: 각 모델은 자체 캐시를 가집니다. 모델을 전환하면 콘텐츠가 동일한 경우에도 전체 요청이 다시 계산됩니다. 아래의 [모델 전환](#switching-models)을 참조하세요.35* **모델**: 각 모델은 자체 캐시를 가집니다. 모델을 전환하면 콘텐츠가 동일한 경우에도 전체 요청이 다시 계산됩니다. 아래의 [모델 전환](#switching-models)을 참조하세요.

36* **effort 수준**: 대부분의 모델에서 각 effort 수준은 자체 캐시를 가지므로 세션 중에 effort를 변경하면 전체 요청이 다시 계산됩니다. API 키 또는 Claude 구독이 있는 Opus 5.5, Sonnet 5.5, Haiku 5.5 및 Fable 5.1에서는 기본적으로 캐시가 그대로 유지됩니다. 아래의 [effort 수준 변경](#changing-effort-level)을 참조하세요.36* **effort 수준**: 대부분의 모델에서 각 effort 수준은 자체 캐시를 가지므로 세션 중에 effort를 변경하면 전체 요청이 다시 계산됩니다. API 키 또는 Claude 구독을 사용하는 경우 Fable 5.1 이상, Opus 5.5, Sonnet 5.5, Haiku 5.5에서는 기본적으로 캐시가 그대로 유지됩니다. 아래의 [effort 수준 변경](#changing-effort-level)을 참조하세요.

37 37 

38> [!TIP]38> [!TIP]

39>39>


94 94 

95대부분의 모델에서 세션 중간에 [effort 수준](https://code.claude.com/docs/ko/model-config.md#adjust-effort-level)을 변경하면 다음 요청이 캐시 히트 없이 전체 대화 기록을 읽습니다. 캐시가 여전히 따뜻한 동안 Claude Code는 먼저 변경을 확인하도록 요청합니다.95대부분의 모델에서 세션 중간에 [effort 수준](https://code.claude.com/docs/ko/model-config.md#adjust-effort-level)을 변경하면 다음 요청이 캐시 히트 없이 전체 대화 기록을 읽습니다. 캐시가 여전히 따뜻한 동안 Claude Code는 먼저 변경을 확인하도록 요청합니다.

96 96 

97API 키 또는 Claude 구독을 사용하는 Opus 5.5, Sonnet 5.5, Haiku 5.5, Fable 5.1에서는 effort를 변경해도 캐시가 유지됩니다. Claude Code는 묻지 않고 [새 수준을 적용](https://code.claude.com/docs/ko/model-config.md#when-a-new-effort-level-starts)합니다. Amazon Bedrock, Google Cloud의 Agent Platform 또는 [Claude 앱 게이트웨이](https://code.claude.com/docs/ko/claude-apps-gateway)에서 사용하거나, [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](https://code.claude.com/docs/ko/llm-gateway-protocol#disable-pre-release-capabilities)를 설정했거나 조직에 HIPAA 구성이 있는 경우에는 대부분의 모델과 같이 동작합니다.97API 키 또는 Claude 구독을 사용하는 경우 Fable 5.1 이상, Opus 5.5, Sonnet 5.5, Haiku 5.5에서는 effort를 변경해도 캐시가 유지됩니다. Claude Code는 묻지 않고 [새 수준을 적용](https://code.claude.com/docs/ko/model-config.md#when-a-new-effort-level-starts)합니다. Amazon Bedrock, Google Cloud의 Agent Platform 또는 [Claude 앱 게이트웨이](https://code.claude.com/docs/ko/claude-apps-gateway)에서 사용하거나, [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](https://code.claude.com/docs/ko/llm-gateway-protocol#disable-pre-release-capabilities)를 설정했거나 조직에 HIPAA 구성이 있는 경우에는 대부분의 모델과 같이 동작합니다.

98 98 

99v2.1.260 이전에는 API 키 또는 Claude 구독이 있는 Fable 5.1에서 effort를 변경해도 캐시가 무효화되었습니다.99v2.1.260 이전에는 API 키 또는 Claude 구독이 있는 Fable 5.1에서 effort를 변경해도 캐시가 무효화되었습니다.

100 100 

Details

49> claude remote-control49> claude remote-control

50> ```50> ```

51>51>

52> `claude rc`는 이 명령의 별칭입니다.

53>

52> Remote Control의 일회성 확인을 수락하기 전까지 `claude remote-control`은 서버를 시작하기 전에 기능을 설명하고 `Enable Remote Control? (y/n)`을 묻습니다. `y`로 답하면 수락하고 서버를 시작합니다. 거절하면 Claude Code는 서버를 시작하지 않고 종료되며, 다음에 명령을 실행할 때 다시 묻습니다.54> Remote Control의 일회성 확인을 수락하기 전까지 `claude remote-control`은 서버를 시작하기 전에 기능을 설명하고 `Enable Remote Control? (y/n)`을 묻습니다. `y`로 답하면 수락하고 서버를 시작합니다. 거절하면 Claude Code는 서버를 시작하지 않고 종료되며, 다음에 명령을 실행할 때 다시 묻습니다.

53>55>

54> 서버 모드에서는 프로세스가 터미널에서 계속 실행되며 원격 연결을 기다립니다. [다른 기기에서 연결](#connect-from-another-device)하는 데 사용할 수 있는 URL이 표시되며, 스페이스바를 누르면 휴대폰에서 빠르게 접속할 수 있는 QR 코드가 표시됩니다. 원격 세션이 활성화된 동안 터미널에는 연결 상태와 도구 활동이 표시됩니다.56> 서버 모드에서는 프로세스가 터미널에서 계속 실행되며 원격 연결을 기다립니다. [다른 기기에서 연결](#connect-from-another-device)하는 데 사용할 수 있는 URL이 표시되며, 스페이스바를 누르면 휴대폰에서 빠르게 접속할 수 있는 QR 코드가 표시됩니다. 원격 세션이 활성화된 동안 터미널에는 연결 상태와 도구 활동이 표시됩니다.


462* **Claude.ai 플랜이 Pro, Max 또는 Ultra**: Claude Code가 여전히 이전 로그인의 Team 또는 Enterprise 조직 아래에 로그인되어 있으므로, 해당 조직의 Remote Control 정책을 확인합니다. `/status`를 실행하여 로그인이 사용하는 플랜과 조직을 확인합니다. `claude auth logout`을 실행한 후 `claude auth login`을 실행하여 현재 플랜 아래에서 다시 로그인합니다.464* **Claude.ai 플랜이 Pro, Max 또는 Ultra**: Claude Code가 여전히 이전 로그인의 Team 또는 Enterprise 조직 아래에 로그인되어 있으므로, 해당 조직의 Remote Control 정책을 확인합니다. `/status`를 실행하여 로그인이 사용하는 플랜과 조직을 확인합니다. `claude auth logout`을 실행한 후 `claude auth login`을 실행하여 현재 플랜 아래에서 다시 로그인합니다.

463* **메시지에 조직 관리자에게 문의하라고 하지 않음**: 조직에 [HIPAA 구성](https://code.claude.com/docs/ko/hipaa-setup.md)이 적용되어 있으며, 이 구성은 Remote Control을 끕니다. 확인하려면 `/status`를 실행하고 `Organization configuration` 행에서 `HIPAA`를 찾습니다. Owner에게는 [관리자 설정](https://claude.ai/admin-settings/claude-code)의 **Remote Control** 토글이 회색으로 표시되며 켤 수 없습니다. 구성에 대해 궁금한 점이 있으면 Owner에게 문의하세요. Owner는 조직의 Anthropic 계정 팀에 연락할 수 있습니다. v2.1.267 이전에는 이 경우 "Remote Control isn't available for your organization due to its compliance policy"로 표시되었습니다.465* **메시지에 조직 관리자에게 문의하라고 하지 않음**: 조직에 [HIPAA 구성](https://code.claude.com/docs/ko/hipaa-setup.md)이 적용되어 있으며, 이 구성은 Remote Control을 끕니다. 확인하려면 `/status`를 실행하고 `Organization configuration` 행에서 `HIPAA`를 찾습니다. Owner에게는 [관리자 설정](https://claude.ai/admin-settings/claude-code)의 **Remote Control** 토글이 회색으로 표시되며 켤 수 없습니다. 구성에 대해 궁금한 점이 있으면 Owner에게 문의하세요. Owner는 조직의 Anthropic 계정 팀에 연락할 수 있습니다. v2.1.267 이전에는 이 경우 "Remote Control isn't available for your organization due to its compliance policy"로 표시되었습니다.

464* **Remote Control이 조직의 다른 구성원에게는 작동하지만 사용자에게는 작동하지 않음**: Enterprise 조직이 [사용자 지정 역할](https://support.claude.com/en/articles/13930452)로 액세스를 관리하는 경우, 사용자의 역할이 원인일 수 있습니다. Remote Control에는 클라우드 세션 권한과 **Claude Code remote control** 권한이 모두 필요합니다. Owner에게 역할에 두 권한이 모두 포함되어 있는지 확인하고 누락된 권한을 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles)에서 추가하도록 요청하세요.466* **Remote Control이 조직의 다른 구성원에게는 작동하지만 사용자에게는 작동하지 않음**: Enterprise 조직이 [사용자 지정 역할](https://support.claude.com/en/articles/13930452)로 액세스를 관리하는 경우, 사용자의 역할이 원인일 수 있습니다. Remote Control에는 클라우드 세션 권한과 **Claude Code remote control** 권한이 모두 필요합니다. Owner에게 역할에 두 권한이 모두 포함되어 있는지 확인하고 누락된 권한을 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles)에서 추가하도록 요청하세요.

467* **Owner에게 [관리자 설정](https://claude.ai/admin-settings/claude-code)에서 [Zero Data Retention](https://code.claude.com/docs/ko/zero-data-retention.md) 배너가 표시됨**: 조직에서 Remote Control을 사용할 수 없으며, Owner도 이를 켤 수 없습니다.

465* **그 외의 경우, Owner가 조직에 대해 활성화하지 않음**: Remote Control은 Team 및 Enterprise 플랜에서 기본적으로 비활성화됩니다. Owner는 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)에서 **Remote Control** 토글을 켜서 활성화할 수 있습니다. 이 토글은 서버 측 조직 설정입니다.468* **그 외의 경우, Owner가 조직에 대해 활성화하지 않음**: Remote Control은 Team 및 Enterprise 플랜에서 기본적으로 비활성화됩니다. Owner는 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)에서 **Remote Control** 토글을 켜서 활성화할 수 있습니다. 이 토글은 서버 측 조직 설정입니다.

466 469 

467v2.1.281 이전에는 이 메시지가 Claude Code가 이 머신에서 조직의 정책을 로드하지 않았을 때도 나타났습니다. 예를 들어 오프라인으로 시작한 후입니다. 이후 버전은 해당 상태를 [`Couldn't verify your organization's policy for remote control`](#couldnt-verify-your-organizations-policy-for-remote-control)로 보고합니다.470v2.1.281 이전에는 이 메시지가 Claude Code가 이 머신에서 조직의 정책을 로드하지 않았을 때도 나타났습니다. 예를 들어 오프라인으로 시작한 후입니다. 이후 버전은 해당 상태를 [`Couldn't verify your organization's policy for remote control`](#couldnt-verify-your-organizations-policy-for-remote-control)로 보고합니다.

Details

154| :- | :- |154| :- | :- |

155| `CLAUDE_RUNNER_REPO_URL` | clone할 저장소 URL로, `--git-host-rewrite` 및 `--git-ssh-rewrite`가 적용된 후의 값 |155| `CLAUDE_RUNNER_REPO_URL` | clone할 저장소 URL로, `--git-host-rewrite` 및 `--git-ssh-rewrite`가 적용된 후의 값 |

156| `CLAUDE_RUNNER_REPO_REF` | 세션이 요청한 대로 체크아웃할 리비전: 브랜치, 태그, 커밋 SHA 또는 `refs/heads/<branch>`나 `refs/pull/<number>/head`와 같은 전체 참조 이름. 비어 있으면 저장소의 기본 브랜치를 의미합니다. |156| `CLAUDE_RUNNER_REPO_REF` | 세션이 요청한 대로 체크아웃할 리비전: 브랜치, 태그, 커밋 SHA 또는 `refs/heads/<branch>`나 `refs/pull/<number>/head`와 같은 전체 참조 이름. 비어 있으면 저장소의 기본 브랜치를 의미합니다. |

157| `CLAUDE_RUNNER_CHECKOUT_PATH` | 작업 트리를 남겨 두어야 하는 절대 경로 |157| `CLAUDE_RUNNER_CHECKOUT_PATH` | 작업 트리를 남겨 두어야 하는 절대 경로. [체크아웃 폴더 이름](#checkout-folder-names)을 참조하십시오. |

158| `CLAUDE_RUNNER_SESSION_ID` | 로깅 및 상관 관계 분석용, 태그가 붙은 `session_...` 형식의 세션 ID |158| `CLAUDE_RUNNER_SESSION_ID` | 로깅 및 상관 관계 분석용, 태그가 붙은 `session_...` 형식의 세션 ID |

159| `CLAUDE_RUNNER_SESSION_UUID` | 표준 UUID 형식의 동일한 세션 ID |159| `CLAUDE_RUNNER_SESSION_UUID` | 표준 UUID 형식의 동일한 세션 ID |

160| `CLAUDE_RUNNER_API_BASE_URL` | 세션 범위 호출을 위한 Anthropic API 기본 URL |160| `CLAUDE_RUNNER_API_BASE_URL` | 세션 범위 호출을 위한 Anthropic API 기본 URL |


166 166 

167훅이 반환된 후 러너는 `CLAUDE_RUNNER_CHECKOUT_PATH`에 `.git`이 포함되어 있는지 확인합니다. 훅이 Perforce나 압축 해제된 tarball과 같은 git이 아닌 소스를 구성하는 경우, 러너 환경에 `CLAUDE_RUNNER_SKIP_GIT_VERIFY=1`을 설정하여 이 검사를 건너뛰십시오. 작업 브랜치 생성이나 결과 push와 같은 git 기반 흐름은 git 체크아웃이 필요하므로, git이 아닌 트리의 결과물은 [`post-session` 훅](#post-session)으로 내보내십시오.167훅이 반환된 후 러너는 `CLAUDE_RUNNER_CHECKOUT_PATH`에 `.git`이 포함되어 있는지 확인합니다. 훅이 Perforce나 압축 해제된 tarball과 같은 git이 아닌 소스를 구성하는 경우, 러너 환경에 `CLAUDE_RUNNER_SKIP_GIT_VERIFY=1`을 설정하여 이 검사를 건너뛰십시오. 작업 브랜치 생성이나 결과 push와 같은 git 기반 흐름은 git 체크아웃이 필요하므로, git이 아닌 트리의 결과물은 [`post-session` 훅](#post-session)으로 내보내십시오.

168 168 

169#### 체크아웃 폴더 이름

170 

171`CLAUDE_RUNNER_CHECKOUT_PATH`는 `acme-api`와 같이 `<repo-owner>-<repo>` 형식의 이름을 가진 폴더로 끝납니다. 한 세션에 있는 두 저장소는 이름이 대소문자만 다르더라도 같은 폴더를 공유할 수 없습니다. 예를 들어 세션에 `acme/api`가 나열되고 그다음에 `Acme/API`가 나열되면, 첫 번째 저장소는 `acme-api`를, 두 번째 저장소는 `Acme-API-2`를 받습니다.

172 

169#### 훅에서 git 자격 증명 얻기173#### 훅에서 git 자격 증명 얻기

170 174 

171러너는 훅에 git 자격 증명을 전달하지 않습니다. checkout 훅 환경에는 `CLAUDE_RUNNER_CLAUDE_BIN`이 설정되지 않으므로 `decode-token` 하위 명령도 여기서는 사용할 수 없습니다. 대신 세션의 ID로부터 세션별 clone 자격 증명을 발급하거나, 호스트 자체의 git 인증으로 대체하십시오.175러너는 훅에 git 자격 증명을 전달하지 않습니다. checkout 훅 환경에는 `CLAUDE_RUNNER_CLAUDE_BIN`이 설정되지 않으므로 `decode-token` 하위 명령도 여기서는 사용할 수 없습니다. 대신 세션의 ID로부터 세션별 clone 자격 증명을 발급하거나, 호스트 자체의 git 인증으로 대체하십시오.

Details

23 * **[Anthropic 관리형 git](#use-the-anthropic-git-proxy) 사용 시**: 이러한 자격 증명이 있으면 Claude는 Anthropic 관리형 git을 거치지 않고 GitHub에 직접 접근합니다.23 * **[Anthropic 관리형 git](#use-the-anthropic-git-proxy) 사용 시**: 이러한 자격 증명이 있으면 Claude는 Anthropic 관리형 git을 거치지 않고 GitHub에 직접 접근합니다.

24 * **Anthropic 관리형 git 미사용 시**: [이미지에 git 구성 포함](#ship-git-config-in-your-image)에서 설명하는 만큼 범위를 엄격하게 제한하면 클론 자격 증명을 이미지에 유지할 수 있습니다.24 * **Anthropic 관리형 git 미사용 시**: [이미지에 git 구성 포함](#ship-git-config-in-your-image)에서 설명하는 만큼 범위를 엄격하게 제한하면 클론 자격 증명을 이미지에 유지할 수 있습니다.

25* **세션 실행 호스트에서 환경 시크릿 분리**: 환경 시크릿은 러너를 등록하고 환경에 대기 중인 모든 세션을 선택할 수 있습니다. 고정 플릿에서는 모든 러너 호스트에 있으며, 모든 세션의 코드가 시크릿 파일을 읽을 수 있습니다. [온디맨드 러너](https://code.claude.com/docs/ko/self-hosted-environments-configuration.md#on-demand-runners)를 선호하세요. 여기서 시크릿은 사용자 코드를 실행하지 않는 오케스트레이터 호스트에 유지되며, 각 러너는 정확히 하나의 러너를 등록하는 단일 사용 작업 주문을 받습니다. 고정 플릿에서는 환경 시크릿 파일을 모든 세션이 읽을 수 있는 것으로 취급하고 의심되는 세션 손상 후 시크릿을 회전하세요.25* **세션 실행 호스트에서 환경 시크릿 분리**: 환경 시크릿은 러너를 등록하고 환경에 대기 중인 모든 세션을 선택할 수 있습니다. 고정 플릿에서는 모든 러너 호스트에 있으며, 모든 세션의 코드가 시크릿 파일을 읽을 수 있습니다. [온디맨드 러너](https://code.claude.com/docs/ko/self-hosted-environments-configuration.md#on-demand-runners)를 선호하세요. 여기서 시크릿은 사용자 코드를 실행하지 않는 오케스트레이터 호스트에 유지되며, 각 러너는 정확히 하나의 러너를 등록하는 단일 사용 작업 주문을 받습니다. 고정 플릿에서는 환경 시크릿 파일을 모든 세션이 읽을 수 있는 것으로 취급하고 의심되는 세션 손상 후 시크릿을 회전하세요.

26 * **손상이 의심되는 경우**: [Owner](https://code.claude.com/docs/ko/cloud-environments.md#organization-shared-environments)가 환경의 **구성** 탭에서 새 시크릿을 생성하고 이전 시크릿을 취소하도록 한 다음, 새 시크릿을 배포하세요. Anthropic은 이전 시크릿의 작업 주문으로 실행된 온디맨드 러너를 포함하여 이전 시크릿을 사용하는 모든 오케스트레이터와 러너를 거부합니다. 러너가 종료되며, 해당 세션이 중단됩니다.

26* **기본 거부 네트워크 이그레스**: 모든 환경에서 네트워크 경계에서 러너 및 세션 컨테이너 아웃바운드 트래픽을 제한하세요. [기본 거부 이그레스](#default-deny-egress)에서 허용할 항목과 이유를 다룹니다.27* **기본 거부 네트워크 이그레스**: 모든 환경에서 네트워크 경계에서 러너 및 세션 컨테이너 아웃바운드 트래픽을 제한하세요. [기본 거부 이그레스](#default-deny-egress)에서 허용할 항목과 이유를 다룹니다.

27* **최소 권한 호스트 IAM**: 러너 호스트에 연결된 컴퓨팅 ID(예: 인스턴스 프로필 또는 노드 서비스 계정)는 러너 자체가 필요한 것만 부여해야 합니다. 세션은 호스트의 ID를 상속하는 대신 래퍼 스크립트를 통해 자신의 자격증명을 얻어야 합니다.28* **최소 권한 호스트 IAM**: 러너 호스트에 연결된 컴퓨팅 ID(예: 인스턴스 프로필 또는 노드 서비스 계정)는 러너 자체가 필요한 것만 부여해야 합니다. 세션은 호스트의 ID를 상속하는 대신 래퍼 스크립트를 통해 자신의 자격증명을 얻어야 합니다.

28* **세션에서 클라우드 메타데이터 엔드포인트 차단**: 세션을 호스트 ID에서 벗어나게 유지하려면 클라우드 메타데이터 엔드포인트에 대한 액세스를 차단해야 하며, 서브넷 수준 이그레스 정책은 링크 로컬 메타데이터 트래픽을 가로채지 않으므로 컨테이너 자체에서 차단하세요:29* **세션에서 클라우드 메타데이터 엔드포인트 차단**: 세션을 호스트 ID에서 벗어나게 유지하려면 클라우드 메타데이터 엔드포인트에 대한 액세스를 차단해야 하며, 서브넷 수준 이그레스 정책은 링크 로컬 메타데이터 트래픽을 가로채지 않으므로 컨테이너 자체에서 차단하세요:


203> [!WARNING]204> [!WARNING]

204>205>

205> `--use-anthropic-git-proxy`가 설정되면 러너는 자신이 실행되는 사용자의 전역 git 구성을 삭제하고 대체하며 백업을 보관하지 않습니다. 이 작업은 시작 시와 각 세션 전에 수행됩니다. 그곳에 보관한 로그인 또는 자격 증명 헬퍼는 사라집니다. [`--configure-git`](#let-the-runner-configure-git)이 작성하는 설정은 유지됩니다. 러너는 전용 사용자로 또는 컨테이너에서 실행하고, 절대 자신의 사용자로 실행하지 마세요.206> `--use-anthropic-git-proxy`가 설정되면 러너는 자신이 실행되는 사용자의 전역 git 구성을 삭제하고 대체하며 백업을 보관하지 않습니다. 이 작업은 시작 시와 각 세션 전에 수행됩니다. 그곳에 보관한 로그인 또는 자격 증명 헬퍼는 사라집니다. [`--configure-git`](#let-the-runner-configure-git)이 작성하는 설정은 유지됩니다. 러너는 전용 사용자로 또는 컨테이너에서 실행하고, 절대 자신의 사용자로 실행하지 마세요.

207>

208> 전역 git 구성은 `~/.gitconfig`, 설정한 경우 `GIT_CONFIG_GLOBAL`이 가리키는 파일, 그리고 `$XDG_CONFIG_HOME/git` 디렉토리 전체(기본값 `~/.config/git`)의 세 가지 모두를 의미합니다.

206 209 

207ID 및 `safe.directory`와 같이 비밀이 아닌 git 설정은 시스템 git 구성에 보관하세요.210ID 및 `safe.directory`와 같이 비밀이 아닌 git 설정은 시스템 git 구성에 보관하세요.

208 211 


247* **`remote: access denied by the git proxy`를 포함하는 라인**: Anthropic이 제공하는 세션도 거부될 수 있습니다. 예를 들어 조직 정책이 세션의 git 액세스를 거부하거나 세션이 저장소에 대한 권한이 없는 경우입니다. 그러면 러너의 로그에 `remote: access denied by the git proxy`를 포함하는 라인이 표시되며, 해당 라인의 나머지 부분에 이유가 나옵니다.250* **`remote: access denied by the git proxy`를 포함하는 라인**: Anthropic이 제공하는 세션도 거부될 수 있습니다. 예를 들어 조직 정책이 세션의 git 액세스를 거부하거나 세션이 저장소에 대한 권한이 없는 경우입니다. 그러면 러너의 로그에 `remote: access denied by the git proxy`를 포함하는 라인이 표시되며, 해당 라인의 나머지 부분에 이유가 나옵니다.

248* **`GitHub authentication required`**: 세션 작성자가 claude.ai에서 작동하는 GitHub 연결이 없을 때 표시됩니다. 세션의 클론이 실패하고 git 오류는 `GitHub authentication required. Please reconnect your GitHub account.`로 표시됩니다. 해당 사용자에게 claude.ai 설정에서 GitHub를 연결하거나 다시 연결하도록 요청하세요.251* **`GitHub authentication required`**: 세션 작성자가 claude.ai에서 작동하는 GitHub 연결이 없을 때 표시됩니다. 세션의 클론이 실패하고 git 오류는 `GitHub authentication required. Please reconnect your GitHub account.`로 표시됩니다. 해당 사용자에게 claude.ai 설정에서 GitHub를 연결하거나 다시 연결하도록 요청하세요.

249 252 

250원인을 해결한 후 실패한 세션을 다시 시작하세요.253원인을 해결한 후 세션에 실패한 러너를 다시 시작한 다음, 각 작성자가 자신의 세션에서 메시지를 보내거나 Owner가 **Retry**를 선택하도록 하세요.

251 254 

252#### Anthropic git 프록시 끄기255#### Anthropic git 프록시 끄기

253 256 


265 268 

266github.com을 포함하여 러너의 세션이 사용하는 모든 git 호스트에 대해 프롬프트 없이 작동하는 자격 증명을 제공하세요. `--use-anthropic-git-proxy`가 설정되어 있는 동안 러너가 러너 사용자의 전역 git 구성을 삭제했으므로 그곳에 있던 자격 증명은 사라졌습니다. [이미지에 자격 증명을 제공](#ship-git-config-in-your-image)하거나 [`checkout` 수명 주기 훅](https://code.claude.com/docs/ko/self-hosted-environments-configuration#checkout)을 사용하세요.269github.com을 포함하여 러너의 세션이 사용하는 모든 git 호스트에 대해 프롬프트 없이 작동하는 자격 증명을 제공하세요. `--use-anthropic-git-proxy`가 설정되어 있는 동안 러너가 러너 사용자의 전역 git 구성을 삭제했으므로 그곳에 있던 자격 증명은 사라졌습니다. [이미지에 자격 증명을 제공](#ship-git-config-in-your-image)하거나 [`checkout` 수명 주기 훅](https://code.claude.com/docs/ko/self-hosted-environments-configuration#checkout)을 사용하세요.

267 270 

271대신 [전역 git 구성](#git-proxy-replaces-global-git-config)에 자격 증명을 보관하려면 먼저 [러너를 중지](#shutdown-timing)하세요. 플래그로 시작한 러너는 각 세션 전에 해당 구성을 다시 작성하기 때문입니다. 그런 다음 `$XDG_CONFIG_HOME/git`(기본값 `~/.config/git`)을 삭제하고 `~/.gitconfig` 또는 `GIT_CONFIG_GLOBAL`이 가리키는 파일을 직접 작성한 파일로 교체하세요.

272 

268**3. 네트워크 경로 열기**273**3. 네트워크 경로 열기**

269 274 

270러너가 러너의 세션이 사용하는 각 git 호스트에 포트 443 또는 22로 도달할 수 있도록 허용하세요. [네트워크 요구 사항](#network-requirements)의 git 호스트 행을 참조하세요.275러너가 러너의 세션이 사용하는 각 git 호스트에 포트 443 또는 22로 도달할 수 있도록 허용하세요. [네트워크 요구 사항](#network-requirements)의 git 호스트 행을 참조하세요.


507 512 

508## Kubernetes513## Kubernetes

509 514 

510러너는 기본적으로 포트 8080에서 `GET /healthz`를 제공하며, `--health-port`로 구성할 수 있으므로 Kubernetes 프로브는 추가 설정 없이 작동합니다. 엔드포인트는 프로세스가 살아있을 때마다 `200`을 반환하므로 아래 프로브는 막힌 프로세스가 아닌 죽은 프로세스를 감지합니다. 폴링을 중지한 러너를 잡으려면 [`/metrics`](https://code.claude.com/docs/ko/self-hosted-environments-reference#prometheus-metrics)의 `last_poll_age_seconds` 시리즈에 대해 경고하세요. 아래 Deployment는 Kubernetes Secret에서 환경 시크릿을 마운트하고, 활성 및 준비 프로브를 `/healthz`로 가리키며, 90초 종료 유예 기간을 설정합니다. [종료 타이밍](#shutdown-timing)에서 유예 기간이 중요한 이유를 참조하세요.515러너는 기본적으로 포트 8080에서 `GET /healthz`를 제공하며, `--health-port`로 구성할 수 있습니다. 시작 후 엔드포인트는 프로세스가 살아있을 때마다 `200`을 반환하므로 아래 프로브는 막힌 프로세스가 아닌 죽은 프로세스를 감지합니다. 폴링을 중지한 러너를 잡으려면 [`/metrics`](https://code.claude.com/docs/ko/self-hosted-environments-reference#prometheus-metrics)의 `last_poll_age_seconds` 시리즈에 대해 경고하세요.

516 

517아래 Deployment는 Kubernetes Secret에서 환경 시크릿을 마운트하고, 활성 및 준비 프로브를 `/healthz`로 가리키며, 90초 종료 유예 기간을 설정합니다. [종료 타이밍](#shutdown-timing)에서 유예 기간이 중요한 이유를 참조하세요.

511 518 

512매니페스트는 러너 컨테이너에 CPU 또는 메모리 `resources`를 설정하지 않습니다. 실행하는 용량에 맞게 크기가 조정된 블록을 추가하세요. [세션에 대한 CPU 및 메모리 크기 조정](#size-cpu-and-memory-for-sessions)에서 설명합니다.519매니페스트는 러너 컨테이너에 CPU 또는 메모리 `resources`를 설정하지 않습니다. 실행하는 용량에 맞게 크기가 조정된 블록을 추가하세요. [세션에 대한 CPU 및 메모리 크기 조정](#size-cpu-and-memory-for-sessions)에서 설명합니다.

513 520 


565 secretName: claude-runner-environment-secret572 secretName: claude-runner-environment-secret

566```573```

567 574 

575> [!NOTE]

576>

577> 포드 이벤트에서 시작 중에 활성 프로브가 실패하는 것으로 나타나면 `initialDelaySeconds`를 늘리거나 `startupProbe`를 추가하세요. 러너가 등록되고 시작 검사를 완료할 때까지는 상태 포트에서 아무것도 응답하지 않습니다. 위의 설정에서는 약 90초 이내에 서비스를 제공하지 않는 러너를 Kubernetes가 다시 시작합니다.

578 

568위의 Deployment는 `claude-runners` 네임스페이스에 있습니다. 먼저 네임스페이스를 생성하세요:579위의 Deployment는 `claude-runners` 네임스페이스에 있습니다. 먼저 네임스페이스를 생성하세요:

569 580 

570```bash theme={null}581```bash theme={null}


942 세션 시작 후 약 30분 뒤부터 모든 호출이 실패하기 시작한다면 래퍼 스크립트가 세션의 stdin을 끊어 토큰 교체가 세션에 도달하지 못하는 것일 가능성이 높습니다. [stdin과 파일 디스크립터 3을 연결된 상태로 유지하기](https://code.claude.com/docs/ko/self-hosted-environments-configuration.md#keep-stdin-and-file-descriptor-3-attached)를 참조하십시오.953 세션 시작 후 약 30분 뒤부터 모든 호출이 실패하기 시작한다면 래퍼 스크립트가 세션의 stdin을 끊어 토큰 교체가 세션에 도달하지 못하는 것일 가능성이 높습니다. [stdin과 파일 디스크립터 3을 연결된 상태로 유지하기](https://code.claude.com/docs/ko/self-hosted-environments-configuration.md#keep-stdin-and-file-descriptor-3-attached)를 참조하십시오.

943 954 

944 v2.1.274 이전에는 러너가 실패한 가져오기를 몇 번 시도한 후 재시도를 중단하고 다음 예정된 가져오기를 기다렸습니다. 실패한 턴은 가져오기를 트리거하지 않았으므로, 다음 예정된 가져오기까지 모든 턴이 401로 실패했습니다.955 v2.1.274 이전에는 러너가 실패한 가져오기를 몇 번 시도한 후 재시도를 중단하고 다음 예정된 가져오기를 기다렸습니다. 실패한 턴은 가져오기를 트리거하지 않았으므로, 다음 예정된 가져오기까지 모든 턴이 401로 실패했습니다.

956* **세션에 `The server has refused to renew this session's access to the model`이 표시됨**: 세션의 [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/ko/self-hosted-environments-configuration#wrapper-scripts)이 만료되었으며, 러너가 새 토큰 요청에 대한 응답으로 HTTP 400을 받았습니다. 러너는 `the server has refused to renew the inference_token`을 로그에 기록합니다. 해당 세션의 턴은 실패합니다. 러너는 세션의 프로세스가 실행되는 동안 계속 새 토큰을 요청합니다.

957 

958 * **요청이 성공하는 경우**: 경고를 표시했던 세션에 `The server renewed this session's access to the model`이 표시됩니다

959 * **턴이 계속 실패하는 경우**: 프로세스가 결국 종료되며, 세션에 `The session process exited with code 1`과 같은 실패가 표시됩니다

960 

961 새 토큰을 기다리지 않고 작업을 계속하려면 새 세션을 시작합니다. 새 세션도 실패한다면 사용 중인 프록시나 게이트웨이가 HTTP 400 응답을 반환했는지 확인합니다. 그렇지 않다면 첫 번째 세션의 ID와 함께 [Anthropic 계정 팀에 문의합니다](#report-an-issue).

945* **claude.ai/code에서 턴이 `This model needs a newer version of Claude Code`와 함께 실패함**: 러너가 세션을 시작할 때 사용하는 Claude Code 버전이 세션의 모델이 요구하는 버전보다 오래되어 API가 [요청을 거부](https://code.claude.com/docs/ko/errors.md#claude-code-does-not-support-this-model)합니다. [버전 고정하기](#pin-the-version)에 설명된 대로 러너를 메시지에서 요구하는 버전 이상으로 업그레이드합니다. 그때까지는 세션에서 다른 모델을 선택할 수 있습니다.962* **claude.ai/code에서 턴이 `This model needs a newer version of Claude Code`와 함께 실패함**: 러너가 세션을 시작할 때 사용하는 Claude Code 버전이 세션의 모델이 요구하는 버전보다 오래되어 API가 [요청을 거부](https://code.claude.com/docs/ko/errors.md#claude-code-does-not-support-this-model)합니다. [버전 고정하기](#pin-the-version)에 설명된 대로 러너를 메시지에서 요구하는 버전 이상으로 업그레이드합니다. 그때까지는 세션에서 다른 모델을 선택할 수 있습니다.

946* **드레인 도중 파드가 종료됨**: `terminationGracePeriodSeconds`를 러너가 시작 시 로그에 기록하는 값 이상으로 늘립니다. [종료 타이밍](#shutdown-timing)을 참조하십시오.963* **드레인 도중 파드가 종료됨**: `terminationGracePeriodSeconds`를 러너가 시작 시 로그에 기록하는 값 이상으로 늘립니다. [종료 타이밍](#shutdown-timing)을 참조하십시오.

947* **러너가 `was paused or too slow`로 끝나는 `[runner:log]` 줄을 로그에 기록함**: 러너는 계속 실행되었으며 다시 시작할 필요가 없습니다. 해당 줄에 명시된 stdout 또는 stderr 스트림이 다시 읽힐 때까지, 러너는 그 스트림의 가장 최근 256 KiB 분량의 줄을 제외한 모든 줄을 버렸습니다. [`--log-file`](https://code.claude.com/docs/ko/self-hosted-environments-reference#runner-cli-flags)을 전달했다면 버려진 줄을 그 파일에서 찾습니다.964* **러너가 `was paused or too slow`로 끝나는 `[runner:log]` 줄을 로그에 기록함**: 러너는 계속 실행되었으며 다시 시작할 필요가 없습니다. 해당 줄에 명시된 stdout 또는 stderr 스트림이 다시 읽힐 때까지, 러너는 그 스트림의 가장 최근 256 KiB 분량의 줄을 제외한 모든 줄을 버렸습니다. [`--log-file`](https://code.claude.com/docs/ko/self-hosted-environments-reference#runner-cli-flags)을 전달했다면 버려진 줄을 그 파일에서 찾습니다.

Details

73 73 

74관리자 설정의 [**클라우드 환경** 페이지](https://claude.ai/admin-settings/cloud-environments)로 이동하세요. **자체 호스팅 환경** 아래에서 **새로 만들기**를 선택하고, 환경의 이름을 지정한 후 **생성**을 선택하세요. 마법사의 두 번째 단계에서 **환경 키 복사**를 선택하여 환경 비밀을 복사하세요. 관리자 UI는 이를 환경 키로 표시합니다. claude.ai는 비밀을 한 번만 표시하며, 나중에 검색할 수 없습니다. 생성 후 365일 후에 만료됩니다. 환경의 `ccpool_...` ID는 세부 정보 대화 상자에서 계속 표시됩니다. [토큰 검증](https://code.claude.com/docs/ko/self-hosted-environments-identity.md)의 `aud` 확인 및 [CI에서 테스트 세션 디스패치](https://code.claude.com/docs/ko/self-hosted-environments-testing.md#run-the-test-loop)에 필요합니다.74관리자 설정의 [**클라우드 환경** 페이지](https://claude.ai/admin-settings/cloud-environments)로 이동하세요. **자체 호스팅 환경** 아래에서 **새로 만들기**를 선택하고, 환경의 이름을 지정한 후 **생성**을 선택하세요. 마법사의 두 번째 단계에서 **환경 키 복사**를 선택하여 환경 비밀을 복사하세요. 관리자 UI는 이를 환경 키로 표시합니다. claude.ai는 비밀을 한 번만 표시하며, 나중에 검색할 수 없습니다. 생성 후 365일 후에 만료됩니다. 환경의 `ccpool_...` ID는 세부 정보 대화 상자에서 계속 표시됩니다. [토큰 검증](https://code.claude.com/docs/ko/self-hosted-environments-identity.md)의 `aud` 확인 및 [CI에서 테스트 세션 디스패치](https://code.claude.com/docs/ko/self-hosted-environments-testing.md#run-the-test-loop)에 필요합니다.

75 75 

76비밀을 잃어버렸거나 회전해야 하는 경우, 환경의 **구성** 탭에서 새 비밀을 생성하고, 새 비밀을 러너에 배포한 후, 이전 비밀을 취소하세요. 취소된 비밀을 보유한 러너는 다음 인증된 폴에서 실패하고 종료되며, `poll auth failed`를 기록하고, 오케스트레이터가 새 비밀로 다시 시작합니다.76비밀이 유출되었을 가능성이 있다면 아래의 회전 절차가 아니라 [배포 페이지의 침해 의심 시 단계](https://code.claude.com/docs/ko/self-hosted-environments-deploy.md#after-a-suspected-compromise)를 따르세요.

77 

78비밀을 잃어버렸거나 회전할 계획이라면 환경의 **구성** 탭에서 새 비밀을 생성하세요. 새 비밀을 러너에 배포한 다음 이전 비밀을 취소하세요. 취소된 비밀을 보유한 러너는 다음 인증된 폴에서 실패하고 종료되며, `poll auth failed`를 기록하고, 오케스트레이터가 새 비밀로 다시 시작합니다.

77 79 

78**2. 러너 시작**80**2. 러너 시작**

79 81 

80비밀 디렉토리를 생성하세요. 이 명령과 다음 명령은 루트 권한이 필요한 `/etc/claude`를 사용하며, 이 명령들이 생성하는 비밀 파일은 명령을 실행한 사용자만 읽을 수 있습니다. 러너가 다른 사용자로 실행되면 `error: Failed to read environment secret file <path> (EACCES: permission denied, open '<path>')`와 함께 종료됩니다. 이 경우 `/etc/claude` 대신 러너의 사용자가 쓸 수 있는 디렉토리를 사용하여 두 명령을 러너의 사용자로 실행하고, 같은 경로를 `--environment-secret-file`에 전달하세요. 러너 프로세스가 읽을 수 있는 모든 경로가 작동합니다.82비밀 디렉터리를 생성하세요. 이 명령과 다음 명령은 루트 권한이 필요한 `/etc/claude`를 사용하며, 이 명령들이 생성하는 비밀 파일은 명령을 실행한 사용자만 읽을 수 있습니다. 러너가 다른 사용자로 실행되면 `error: Failed to read environment secret file <path> (EACCES: permission denied, open '<path>')`와 함께 종료됩니다. 이 경우 `/etc/claude` 대신 러너의 사용자가 쓸 수 있는 디렉터리를 사용하여 두 명령을 러너의 사용자로 실행하고, 같은 경로를 `--environment-secret-file`에 전달하세요. 러너 프로세스가 읽을 수 있는 모든 경로가 작동합니다.

81 83 

82```bash theme={null}84```bash theme={null}

83mkdir -p /etc/claude85mkdir -p /etc/claude

Details

141 141 

142## 상태 엔드포인트142## 상태 엔드포인트

143 143 

144러너는 구성된 상태 포트에서 `GET /healthz`를 제공합니다. 응답은 프로세스가 살아 있을 때마다 `200 OK`이며, 폴 루프가 어떤 상태에 있든 관계없이, 이 엔드포인트의 HTTP 프로브는 죽은 프로세스만 감지합니다. JSON 본문은 현재 상태를 설명합니다:144러너는 등록을 마치고 시작 검사를 완료하면 구성된 상태 포트에서 `GET /healthz`를 제공합니다. 그 이후로는 폴 루프가 어떤 상태에 있든 관계없이 프로세스가 살아 있는 동안 응답은 항상 `200 OK`이므로, 이 엔드포인트의 HTTP 프로브는 죽은 프로세스만 감지합니다. JSON 본문은 현재 상태를 설명합니다:

145 145 

146```json theme={null}146```json theme={null}

147{147{

settings.md +1 −0

Details

310| [`isolatePeerMachines`](https://code.claude.com/docs/ko/settings-reference#isolatepeermachines) | 모든 범위의 `true` | 관리형 소스가 `false`를 설정할 때도 준수됩니다 |310| [`isolatePeerMachines`](https://code.claude.com/docs/ko/settings-reference#isolatepeermachines) | 모든 범위의 `true` | 관리형 소스가 `false`를 설정할 때도 준수됩니다 |

311| [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/ko/settings-reference#permissions-blockreadsoutsideworkingdirectories) | 모든 범위의 `true` | 관리형 소스가 `false`를 설정할 때도 준수됩니다. Claude Code v2.1.257 이상이 필요합니다 |311| [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/ko/settings-reference#permissions-blockreadsoutsideworkingdirectories) | 모든 범위의 `true` | 관리형 소스가 `false`를 설정할 때도 준수됩니다. Claude Code v2.1.257 이상이 필요합니다 |

312| [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/ko/settings-reference#permissions-blockwritesoutsideworkingdirectories) | 모든 범위의 `true` | 관리형 소스가 `false`를 설정할 때도 준수됩니다. Claude Code v2.1.314 이상이 필요합니다 |312| [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/ko/settings-reference#permissions-blockwritesoutsideworkingdirectories) | 모든 범위의 `true` | 관리형 소스가 `false`를 설정할 때도 준수됩니다. Claude Code v2.1.314 이상이 필요합니다 |

313| [`permissions.denyInsteadOfPrompting`](https://code.claude.com/docs/ko/settings-reference#permissions-denyinsteadofprompting) | `~/.claude/settings.json` 또는 `--settings`의 `true` | 관리형 소스가 `false`를 설정할 때도 준수됩니다. Claude Code v2.1.319 이상이 필요합니다 |

313| [`autoMode.classifyAllShell`](https://code.claude.com/docs/ko/settings-reference#automode-classifyallshell) | `~/.claude/settings.json` 또는 `--settings`의 `true` | 관리형 소스가 `false`를 설정할 때도 준수됩니다 |314| [`autoMode.classifyAllShell`](https://code.claude.com/docs/ko/settings-reference#automode-classifyallshell) | `~/.claude/settings.json` 또는 `--settings`의 `true` | 관리형 소스가 `false`를 설정할 때도 준수됩니다 |

314| [`remoteControlAtStartup`](https://code.claude.com/docs/ko/settings-reference#remotecontrolatstartup) | `.claude/settings.json` 또는 `.claude/settings.local.json`의 `false` | 관리형 소스가 `true`를 설정할 때도 준수됩니다. 프로젝트 또는 로컬 `true`는 무시됩니다 |315| [`remoteControlAtStartup`](https://code.claude.com/docs/ko/settings-reference#remotecontrolatstartup) | `.claude/settings.json` 또는 `.claude/settings.local.json`의 `false` | 관리형 소스가 `true`를 설정할 때도 준수됩니다. 프로젝트 또는 로컬 `true`는 무시됩니다 |

315| [`crossSessionInbound`](https://code.claude.com/docs/ko/settings-reference#crosssessioninbound) | `.claude/settings.json` 또는 `.claude/settings.local.json`의 더 엄격한 값, `accept` \< `hold` \< `refuse` 사다리에서 | 관리형, `--settings`, 및 사용자 값보다 준수됩니다. 더 엄격하지 않은 프로젝트 또는 로컬 값은 무시됩니다 |316| [`crossSessionInbound`](https://code.claude.com/docs/ko/settings-reference#crosssessioninbound) | `.claude/settings.json` 또는 `.claude/settings.local.json`의 더 엄격한 값, `accept` \< `hold` \< `refuse` 사다리에서 | 관리형, `--settings`, 및 사용자 값보다 준수됩니다. 더 엄격하지 않은 프로젝트 또는 로컬 값은 무시됩니다 |

Details

448 448 

449사용 가능한 세션에서 [빠른 모드](https://code.claude.com/docs/ko/fast-mode.md)를 켭니다. 토큰당 비용이 더 높더라도 속도가 필요한 빠른 반복이나 실시간 디버깅 같은 대화형 작업에 적합합니다. 일반적으로 이 키를 직접 편집하지 않습니다. `/fast`를 실행하면 `~/.claude/settings.json`에 `fastMode: true`가 기록되고, 다시 실행하여 빠른 모드를 끄면 키가 제거됩니다.449사용 가능한 세션에서 [빠른 모드](https://code.claude.com/docs/ko/fast-mode.md)를 켭니다. 토큰당 비용이 더 높더라도 속도가 필요한 빠른 반복이나 실시간 디버깅 같은 대화형 작업에 적합합니다. 일반적으로 이 키를 직접 편집하지 않습니다. `/fast`를 실행하면 `~/.claude/settings.json`에 `fastMode: true`가 기록되고, 다시 실행하여 빠른 모드를 끄면 키가 제거됩니다.

450 450 

451빠른 모드는 Opus 5.5, Opus 5, Opus 4.8에서만 지원됩니다. 다른 모델에서 `/fast`를 실행하면 Opus로 전환되며, 지원되지 않는 모델로 전환하면 빠른 모드가 꺼집니다. [빠른 모드가 켜진 상태에서 모델 전환](https://code.claude.com/docs/ko/fast-mode.md#switch-models-while-fast-mode-is-on)을 참조하세요.451빠른 모드는 Fable 5.2, Opus 5.5, Opus 5, Opus 4.8에서만 지원됩니다. 다른 모델에서 `/fast`를 실행하면 Opus로 전환되며, 지원되지 않는 모델로 전환하면 빠른 모드가 꺼집니다. [빠른 모드가 켜진 상태에서 모델 전환](https://code.claude.com/docs/ko/fast-mode.md#switch-models-while-fast-mode-is-on)을 참조하세요.

452 452 

453* **범위**: [`Any file`](#scopes)453* **범위**: [`Any file`](#scopes)

454* **유형**: Boolean454* **유형**: Boolean

455 * `true`: Claude Code가 사용 가능한 세션에서 빠른 모드를 켭니다455 * `true`: Claude Code가 사용 가능한 세션에서 빠른 모드를 켭니다. Fable 5.2에서는 [Fable 5.2를 사용하는 동안 `/fast`도 실행](https://code.claude.com/docs/ko/fast-mode#switch-models-while-fast-mode-is-on)해야 합니다

456 * `false`: 빠른 모드가 꺼진 상태로 유지됩니다456 * `false`: 빠른 모드가 꺼진 상태로 유지됩니다

457* **기본값**: 설정되지 않음. 따라서 빠른 모드가 꺼져 있습니다457* **기본값**: 설정되지 않음. 따라서 빠른 모드가 꺼져 있습니다

458* **세션별 재정의**: [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/ko/env-vars)는 한 세션에 대해 빠른 모드를 끄며, 이 키로 다시 켤 수 없습니다458* **세션별 재정의**: [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/ko/env-vars)는 한 세션에 대해 빠른 모드를 끄며, 이 키로 다시 켤 수 없습니다


465 465 

466### `fastModePerSessionOptIn`466### `fastModePerSessionOptIn`

467 467 

468일반적으로 `/fast`를 실행하면 [`fastMode`](#fastmode)가 사용자 설정에 저장되므로, 지원되는 모델에서 새 세션이 시작될 때 빠른 모드가 켜집니다. 이를 막으려면 이 키를 `true`로 설정합니다. 그러면 저장된 `fastMode: true`가 더 이상 세션 시작 시 빠른 모드를 켜지 않으며, 각 사용자는 빠른 모드를 원하는 세션마다 `/fast`를 실행해야 합니다. Claude Code는 파일의 `fastMode` 키를 그대로 두므로 이 키를 끄면 이전 동작이 복원됩니다.468일반적으로 `/fast`를 실행하면 [`fastMode`](#fastmode)가 사용자 설정에 저장되므로, 지원되는 모델에서 새 세션이 시작될 때 빠른 모드가 켜집니다. Fable 5.2에서는 [Fable 5.2를 사용하는 동안 빠른 모드를 켠](https://code.claude.com/docs/ko/fast-mode.md#switch-models-while-fast-mode-is-on) 경우에만 그렇게 됩니다. 각 사용자가 빠른 모드를 원하는 세션마다 `/fast`를 실행하도록 하려면 이 키를 `true`로 설정합니다. Claude Code는 파일의 `fastMode` 키를 그대로 두므로 이 키를 끄면 이전 동작이 복원됩니다.

469 469 

470Team 또는 Enterprise 플랜의 Owner는 [서버 관리형 설정](https://code.claude.com/docs/ko/server-managed-settings.md)을 통해 조직 전체에 배포할 수 있습니다. 관리형 설정에서 이 키를 설정하면 대화형 터미널 세션 외부에서는 `/fast on`이 거부되고 조직에서 빠른 모드를 비활성화했다고 알립니다. 여기에는 [비대화형 모드](https://code.claude.com/docs/ko/headless.md), [VS Code 확장](https://code.claude.com/docs/ko/vs-code.md), [클라우드 세션](https://code.claude.com/docs/ko/claude-code-on-the-web.md)이 포함됩니다.470Team 또는 Enterprise 플랜의 Owner는 [서버 관리형 설정](https://code.claude.com/docs/ko/server-managed-settings.md)을 통해 조직 전체에 배포할 수 있습니다. 관리형 설정에서 이 키를 설정하면 대화형 터미널 세션 외부에서는 `/fast on`이 거부되고 조직에서 빠른 모드를 비활성화했다고 알립니다. 여기에는 [비대화형 모드](https://code.claude.com/docs/ko/headless.md), [VS Code 확장](https://code.claude.com/docs/ko/vs-code.md), [클라우드 세션](https://code.claude.com/docs/ko/claude-code-on-the-web.md)이 포함됩니다.

471 471 

472* **범위**: [`Any file`](#scopes)472* **범위**: [`Any file`](#scopes)

473* **유형**: Boolean473* **유형**: Boolean

474 * `true`: 저장된 `fastMode: true`가 더 이상 세션 시작 시 빠른 모드를 켜지 않으므로 각 사용자가 원하는 세션마다 `/fast`를 실행합니다. 관리형 설정에서 이 키를 설정하지 않는 한 `--settings`로 전달된 `fastMode: true`는 해당 세션에 여전히 적용됩니다474 * `true`: 저장된 `fastMode: true`가 더 이상 세션 시작 시 빠른 모드를 켜지 않으므로 각 사용자가 원하는 세션마다 `/fast`를 실행합니다. 관리형 설정에서 이 키를 설정하지 않는 한 `--settings`로 전달된 `fastMode: true`는 해당 세션에 여전히 적용됩니다

475 * `false`: 저장된 `fastMode: true`가 지원되는 모델에서 각 새 세션이 시작될 때 빠른 모드를 켭니다475 * `false`: 저장된 `fastMode: true`가 [`fastMode`](#fastmode)에 설명된 대로 동작합니다

476* **기본값**: `false`476* **기본값**: `false`

477 477 

478```json settings.json theme={null}478```json settings.json theme={null}

sub-agents.md +2 −0

Details

592사용자가 설정한 값을 Claude Code가 사용할지 여부는 메인 대화의 권한 모드에 따라 결정됩니다.592사용자가 설정한 값을 Claude Code가 사용할지 여부는 메인 대화의 권한 모드에 따라 결정됩니다.

593 593 

594* 메인 대화가 `bypassPermissions`, `acceptEdits` 또는 [자동 모드](https://code.claude.com/docs/ko/permission-modes.md#eliminate-prompts-with-auto-mode)인 경우, 서브에이전트는 동일한 모드로 실행되며 Claude Code는 사용자가 설정한 `permissionMode`를 무시합니다. 자동 모드에서는 분류기가 메인 대화의 차단 및 허용 규칙으로 서브에이전트의 도구 호출을 평가합니다. 서브에이전트가 완료되면 [자동 모드가 서브에이전트를 처리하는 방식](https://code.claude.com/docs/ko/permission-modes.md#eliminate-prompts-with-auto-mode)에 설명된 대로 분류기는 보고서가 전달되기 전에 서브에이전트의 작업과 최종 보고서도 검토합니다.594* 메인 대화가 `bypassPermissions`, `acceptEdits` 또는 [자동 모드](https://code.claude.com/docs/ko/permission-modes.md#eliminate-prompts-with-auto-mode)인 경우, 서브에이전트는 동일한 모드로 실행되며 Claude Code는 사용자가 설정한 `permissionMode`를 무시합니다. 자동 모드에서는 분류기가 메인 대화의 차단 및 허용 규칙으로 서브에이전트의 도구 호출을 평가합니다. 서브에이전트가 완료되면 [자동 모드가 서브에이전트를 처리하는 방식](https://code.claude.com/docs/ko/permission-modes.md#eliminate-prompts-with-auto-mode)에 설명된 대로 분류기는 보고서가 전달되기 전에 서브에이전트의 작업과 최종 보고서도 검토합니다.

595 

596 메인 대화가 `bypassPermissions`인 상태에서 서브에이전트가 권한을 요청한다면, 해당 도구 호출이 [어떤 모드도 자동 승인하지 않는 작업](https://code.claude.com/docs/ko/permission-modes.md#actions-no-mode-auto-approves) 중 하나인지 확인하세요.

595* 메인 대화가 `plan` 모드인 경우, 서브에이전트가 [에이전트 팀 규칙](https://code.claude.com/docs/ko/agent-teams.md#have-teammates-plan-before-implementing)에 따라 [에이전트 팀 팀원](#subagent-names)으로 실행되지 않는 한, 사용자가 설정한 `permissionMode`와 관계없이 서브에이전트는 플랜 모드를 유지합니다. `dontAsk`를 설정하면 서브에이전트는 사용자에게 확인도 요청하지 않으며, 플랜 모드에서 승인을 요청하게 될 작업은 대신 거부됩니다.597* 메인 대화가 `plan` 모드인 경우, 서브에이전트가 [에이전트 팀 규칙](https://code.claude.com/docs/ko/agent-teams.md#have-teammates-plan-before-implementing)에 따라 [에이전트 팀 팀원](#subagent-names)으로 실행되지 않는 한, 사용자가 설정한 `permissionMode`와 관계없이 서브에이전트는 플랜 모드를 유지합니다. `dontAsk`를 설정하면 서브에이전트는 사용자에게 확인도 요청하지 않으며, 플랜 모드에서 승인을 요청하게 될 작업은 대신 거부됩니다.

596* 메인 대화가 `default` 또는 `dontAsk` 모드인 경우, 서브에이전트는 사용자가 설정한 권한 모드로 실행됩니다. 다만 다음 경우에는 대신 메인 대화의 권한 모드를 유지합니다.598* 메인 대화가 `default` 또는 `dontAsk` 모드인 경우, 서브에이전트는 사용자가 설정한 권한 모드로 실행됩니다. 다만 다음 경우에는 대신 메인 대화의 권한 모드를 유지합니다.

597 * 사용자가 `bypassPermissions`를 설정한 경우. `bypassPermissions` 예외는 Claude Code v2.1.267 이상이 필요합니다.599 * 사용자가 `bypassPermissions`를 설정한 경우. `bypassPermissions` 예외는 Claude Code v2.1.267 이상이 필요합니다.

tools-reference.md +50 −35

Details

26| `CronDelete` | ID로 세션 범위 예약 작업을 취소합니다 | 아니오 |26| `CronDelete` | ID로 세션 범위 예약 작업을 취소합니다 | 아니오 |

27| `CronList` | 모든 세션 범위 예약 작업을 나열합니다 | 아니오 |27| `CronList` | 모든 세션 범위 예약 작업을 나열합니다 | 아니오 |

28| `Edit` | 특정 파일에 대한 대상 편집을 수행합니다. [Edit 도구 동작](#edit-tool-behavior)을 참조하세요 | 예 |28| `Edit` | 특정 파일에 대한 대상 편집을 수행합니다. [Edit 도구 동작](#edit-tool-behavior)을 참조하세요 | 예 |

29| `EndConversation` | 지속적인 학대 입력이 있는 드문 경우 또는 Claude에게 도구를 시연하도록 요청할 때 세션을 종료합니다. [EndConversation 도구 동작](#endconversation-tool-behavior)을 참조하세요 | 아니오 |29| `EndConversation` | 지속적인 학대 입력이 있는 드문 경우 또는 사용자가 Claude에게 세션 종료를 요청한 후 확인할 때 세션을 종료합니다. [EndConversation 도구 동작](#endconversation-tool-behavior)을 참조하세요 | 아니오 |

30| `EnterPlanMode` | 코딩 전에 접근 방식을 설계하기 위해 플랜 모드로 전환합니다 | 아니오 |30| `EnterPlanMode` | 코딩 전에 접근 방식을 설계하기 위해 플랜 모드로 전환합니다 | 아니오 |

31| `EnterWorktree` | 격리된 [git worktree](https://code.claude.com/docs/ko/worktrees.md)를 생성하여 그 안으로 전환하거나, 기존 worktree로 전환합니다. [EnterWorktree 도구 동작](#enterworktree-tool-behavior)을 참조하세요 | 예 |31| `EnterWorktree` | 격리된 [git worktree](https://code.claude.com/docs/ko/worktrees.md)를 생성하여 그 안으로 전환하거나, 기존 worktree로 전환합니다. [EnterWorktree 도구 동작](#enterworktree-tool-behavior)을 참조하세요 | 예 |

32| `ExitPlanMode` | 승인을 위한 계획을 제시하고 플랜 모드를 종료합니다 | 예 |32| `ExitPlanMode` | 승인을 위한 계획을 제시하고 플랜 모드를 종료합니다 | 예 |


274 274 

275EndConversation 도구는 현재 세션을 종료합니다. Claude는 두 가지 상황에서만 이를 사용합니다:275EndConversation 도구는 현재 세션을 종료합니다. Claude는 두 가지 상황에서만 이를 사용합니다:

276 276 

277* 지속적인 학대적 입력에 대한 최후의 수단으로, 대화를 다시 방향 지으려는 시도가 실패하고 이전 메시지에서 명확한 경고를 한 후277* Claude가 명확한 경고를 했지만 대화의 방향을 바꾸지 못했는데도 사용자가 계속 학대적인 메시지를 보낼 때

278* 도구 시연을 명시적으로 요청하고 세션을 종료하고 싶다는 것을 확인할 때278* 사용자가 Claude에게 세션 종료를 명시적으로 요청한 후, 계속 진행할지 Claude가 물을 때 이를 확인한 경우

279 279 

280일반적인 좌절감, 욕설, 또는 작업이 잘못되는 것은 해당하지 않으며, 유해한 콘텐츠 요청도 마찬가지입니다. Claude는 세션을 종료하는 대신 이를 거절합니다. Claude Code는 claude.ai와 동일한 접근 방식을 따르며, [드물게 채팅의 일부를 종료](https://www.anthropic.com/research/end-subset-conversations)할 수 있습니다.280일반적인 좌절감, 욕설, 또는 작업이 잘못되는 것은 해당하지 않으며, 유해한 콘텐츠 요청도 마찬가지입니다. Claude는 세션을 종료하는 대신 이를 거절합니다. Claude Code는 claude.ai와 동일한 접근 방식을 따르며, [드물게 채팅의 일부를 종료](https://www.anthropic.com/research/end-subset-conversations)할 수 있습니다.

281 281 


390 390 

391Monitor가 명령을 실행할 때 [Bash와 동일한 권한 규칙](https://code.claude.com/docs/ko/permissions.md#tool-specific-permission-rules)을 사용하므로 Bash에 대해 설정한 `allow` 및 `deny` 패턴이 여기에도 적용됩니다. [자동 모드](https://code.claude.com/docs/ko/permission-modes.md#eliminate-prompts-with-auto-mode)가 활성화되어 있는 동안 Claude Code는 `Monitor` 자체의 이름을 지정하는 allow 규칙과 [함께 삭제되는 다른 광범위한 allow 규칙](https://code.claude.com/docs/ko/permission-modes.md#how-the-classifier-evaluates-actions)을 적용하지 않으므로 분류기는 Monitor 명령을 Bash 명령과 동일한 방식으로 검토합니다.391Monitor가 명령을 실행할 때 [Bash와 동일한 권한 규칙](https://code.claude.com/docs/ko/permissions.md#tool-specific-permission-rules)을 사용하므로 Bash에 대해 설정한 `allow` 및 `deny` 패턴이 여기에도 적용됩니다. [자동 모드](https://code.claude.com/docs/ko/permission-modes.md#eliminate-prompts-with-auto-mode)가 활성화되어 있는 동안 Claude Code는 `Monitor` 자체의 이름을 지정하는 allow 규칙과 [함께 삭제되는 다른 광범위한 allow 규칙](https://code.claude.com/docs/ko/permission-modes.md#how-the-classifier-evaluates-actions)을 적용하지 않으므로 분류기는 Monitor 명령을 Bash 명령과 동일한 방식으로 검토합니다.

392 392 

393[WebSocket 소스](#websocket-source)에는 자체 승인 프롬프트가 있으며, 분류기도 자동 모드에서 이를 결정합니다.

394 

395다음의 경우 Monitor를 사용하려면 최소 버전 또는 Git Bash가 필요합니다:393다음의 경우 Monitor를 사용하려면 최소 버전 또는 Git Bash가 필요합니다:

396 394 

397* **최소 버전**: Amazon Bedrock, Claude Platform on AWS, Google Cloud의 Agent Platform 또는 Microsoft Foundry에서, 또는 `DISABLE_TELEMETRY`나 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정된 경우 Monitor에는 Claude Code v2.1.310 이상이 필요합니다. 이 요구 사항은 [기능 플래그 가져오기](https://code.claude.com/docs/ko/env-vars.md#features-that-need-feature-flag-fetching)가 꺼져 있을 때 적용됩니다395* **최소 버전**: Amazon Bedrock, Claude Platform on AWS, Google Cloud의 Agent Platform 또는 Microsoft Foundry에서, 또는 `DISABLE_TELEMETRY`나 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정된 경우 Monitor에는 Claude Code v2.1.310 이상이 필요합니다. 이 요구 사항은 [기능 플래그 가져오기](https://code.claude.com/docs/ko/env-vars.md#features-that-need-feature-flag-fetching)가 꺼져 있을 때 적용됩니다


417 415 

418`timeout_ms` 기한은 WebSocket 감시에도 적용됩니다: 감시가 기한에 종료되고 `TaskStop`이 조기에 취소합니다.416`timeout_ms` 기한은 WebSocket 감시에도 적용됩니다: 감시가 기한에 종료되고 `TaskStop`이 조기에 취소합니다.

419 417 

420WebSocket을 열면 승인을 요청합니다. [자동 모드](https://code.claude.com/docs/ko/permission-modes.md#eliminate-prompts-with-auto-mode)에서는 분류기가 대신 결정합니다. 프롬프트는 동일한 호스트에 대해 향후 프롬프트를 건너뛸 수 있는 옵션을 제공하지 않습니다.418`Monitor` 허용 규칙이 없으면 Claude가 WebSocket을 열기 전에 확인을 요청합니다. [자동 모드](https://code.claude.com/docs/ko/permission-modes.md#eliminate-prompts-with-auto-mode)에서는 [확인 규칙](#bash-rules-that-deny-or-prompt-for-websocket-watches)이 적용되지 않는 한 분류기가 대신 결정합니다. 프롬프트는 동일한 호스트에 대해 향후 프롬프트를 건너뛸 수 있는 옵션을 제공하지 않습니다.

419 

420#### WebSocket 감시에 거부되는 주소 및 호스트

421 

422Claude Code는 프라이빗, 링크-로컬 또는 클라우드 메타데이터 주소를 가리키는 URL을 거부하며, 여기에는 사용자의 컴퓨터에서 해당 주소로 확인되는 호스트 이름도 포함됩니다. [프록시](https://code.claude.com/docs/ko/network-config.md#proxy-configuration) 뒤에서는 프록시가 차단하지 않는 한 감시가 프라이빗, 링크-로컬 또는 클라우드 메타데이터 주소에 도달할 수 있습니다. Claude Code는 프록시가 찾은 주소를 확인하지 않기 때문입니다. Claude Code는 또한 `sandbox.network.deniedDomains`의 호스트를 거부하고, 관리형 설정에서 [`allowManagedDomainsOnly`](https://code.claude.com/docs/ko/settings-reference#sandbox-network-allowmanageddomainsonly)가 설정된 경우 관리형 허용 목록 외부의 모든 호스트를 거부합니다.

423 

424프록시 뒤의 감시가 `could not resolve <host>`로 실패하면 [`CLAUDE_CODE_PROXY_RESOLVES_HOSTS`](https://code.claude.com/docs/ko/env-vars#variables)를 `1`로 설정한 상태로 Claude Code v2.1.319 이상을 다시 시작하여 프록시가 호스트 이름을 조회하도록 하세요.

425 

426#### WebSocket 감시를 거부하거나 확인을 요청하는 Bash 규칙

427 

428Claude Code가 WebSocket을 여는 `Monitor` 호출을 거부하면 `Bash` 또는 `Bash(*)`로 작성된 [거부 또는 확인 규칙](https://code.claude.com/docs/ko/permissions.md#manage-permissions)을 찾아보세요. `Monitor` 허용 규칙이 있는데도 해당 호출에 대해 확인을 요청하는 경우에도 마찬가지입니다. 모든 Bash 명령에 적용되는 규칙은 이러한 WebSocket 감시에도 적용됩니다:

429 

430* **거부 규칙**: 세션이 시작될 때 규칙이 적용되어 있으면 Claude에게 Monitor 도구가 제공되지 않으므로 감시를 시작할 수 없습니다. 세션 중에 규칙을 추가하면 Claude의 다음 `Monitor` 호출이 거부됩니다. 거부 메시지는 `Permission to use Monitor has been denied: it runs code as Bash does, and a rule denies Bash.`입니다.

431* **확인 규칙**: 감시에 대한 승인을 요청합니다. 허용 규칙, `PreToolUse` 훅, `bypassPermissions` 모드 또는 자동 모드 분류기가 대신 승인하도록 할 수 없습니다. [`PermissionRequest` 훅](https://code.claude.com/docs/ko/hooks#permissionrequest)에서 승인할 수 있습니다. `dontAsk` 모드처럼 아무도 응답할 수 없는 경우 Claude Code는 감시를 거부합니다.

432 

433이러한 감시가 실행되도록 하려면 `Bash(rm *)`처럼 의도한 명령으로 규칙의 범위를 좁히세요.

421 434 

422Claude Code는 프라이빗, 링크-로컬 또는 클라우드 메타데이터 주소를 가리키는 URL을 거부하며, 이는 해당 주소로 확인되는 호스트 이름도 포함합니다. 또한 `sandbox.network.deniedDomains`의 호스트를 거부하고, 관리형 설정에서 [`allowManagedDomainsOnly`](https://code.claude.com/docs/ko/settings-reference#sandbox-network-allowmanageddomainsonly)가 설정된 경우 관리형 허용 목록 외부의 모든 호스트를 거부합니다.435확인 규칙과 세션 중에 추가한 거부 규칙은 Claude Code v2.1.319 이상에서 이러한 감시에 적용됩니다.

423 436 

424## NotebookEdit 도구 동작437## NotebookEdit 도구 동작

425 438 


541 554 

542## SendFeedback 도구 동작555## SendFeedback 도구 동작

543 556 

544Claude가 작성한 피드백은 Claude Code에 대해 Claude가 사용자를 위해 작성하는 피드백 보고서입니다. Claude Code v2.1.238 이상이 필요합니다. Claude Code는 각 초안을 사용자의 머신에 `~/.claude/feedback/drafts/` 아래에 저장하며, SendFeedback 도구를 사용하여 초안을 전송할 때까지 Anthropic에 아무것도 전달되지 않습니다. Claude는 다음의 경우에 SendFeedback 도구로 초안을 작성합니다:557Claude 작성 피드백은 Claude가 사용자를 대신해 작성하는 Claude Code에 관한 피드백 보고서입니다. Claude Code v2.1.238 이상이 필요합니다. Claude Code는 각 초안을 사용자의 컴퓨터에 있는 `~/.claude/feedback/drafts/` 아래에 저장하며, 사용자가 직접 전송하기 전까지는 어떤 내용도 Anthropic에 전달되지 않습니다. Claude는 다음과 같은 경우 SendFeedback 도구로 초안을 작성합니다.

545 558 

546* 도구 또는 명령이 계속 실패하는 경우559* 도구나 명령이 계속 실패하는 경우

547* 사용자가 요청한 작업을 도와줄 수 없는 경우560* 사용자가 요청한 작업을 도울 수 없는 경우

548* 사용자가 Claude가 한 실수를 지적하거나 Claude가 실수를 발견한 경우561* 사용자가 Claude의 실수를 지적하거나 Claude가 스스로 실수를 발견한 경우

549* 사용자가 피드백을 제출하도록 요청하는 경우562* 사용자가 피드백 제출을 요청한 경우

550 563 

551### Claude가 초안을 작성할 때 표시되는 내용564### Claude가 초안을 작성할 때 표시되는 내용

552 565 

553Claude가 초안을 대기열에 추가한 후, 프롬프트 위에 초안의 제목이 있는 카드가 표시됩니다. `1`을 눌러 초안을 검토하고, `2`를 두 번 눌러 작성된 대로 전송하거나, `0`을 눌러 해제할 수 있습니다. 해제된 초안은 대기열에 남아 있습니다. 카드를 해제한 후 Claude Code는 Claude가 작성한 피드백을 끌 것인지 묻습니다. 두 번 거절하면 더 이상 묻지 않습니다.566Claude가 초안을 대기열에 추가하면 프롬프트 위에 초안 제목이 담긴 카드가 표시됩니다. `1`을 눌러 초안을 검토하거나, `2`를 두 번 눌러 작성된 그대로 전송하거나, `0`을 눌러 닫을 수 있습니다. 닫은 초안은 대기열에 그대로 남아 있습니다. 카드를 닫으면 Claude Code가 Claude 작성 피드백을 끌지 묻습니다. 사용자가 두 번 거절하면 더 이상 묻지 않습니다.

554 567 

555기본적으로 한 세션에서 최대 3개의 카드가 표시됩니다. Anthropic은 릴리스 없이 서버에서 이 제한을 조정할 수 있습니다. 제한 이후 및 [`feedbackDrafts`](https://code.claude.com/docs/ko/settings-reference#feedbackdrafts)를 `quiet`으로 설정할 때마다, 프롬프트 바닥글에 대기 중인 초안의 개수만 표시됩니다.568기본적으로 한 세션에서 카드는 최대 세 개까지 표시되며, Anthropic은 릴리스 없이 서버에서 이 한도를 조정할 수 있습니다. 한도에 도달한 후, 그리고 [`feedbackDrafts`](https://code.claude.com/docs/ko/settings-reference#feedbackdrafts)를 `quiet`로 설정한 경우에는 프롬프트 하단에 대기 중인 초안 수만 표시됩니다.

556 569 

557### 초안 검토 및 편집570### 초안 검토 및 편집

558 571 

559인수 없이 `/feedback`을 실행하여 대기열을 엽니다. 카드를 해제했거나 본 적이 없는 초안을 포함하여 모든 세션의 모든 대기 중인 초안을 나열합니다. 초안을 선택하여 검토를 위해 열면 다음을 수행할 수 있습니다:572인수 없이 `/feedback`을 실행하면 대기열이 열립니다. 대기열에는 모든 세션에서 대기 중인 초안이 나열되며, 카드를 닫았거나 보지 못한 초안도 포함됩니다. 초안을 선택하면 검토 화면이 열리며, 여기서 다음 작업을 할 수 있습니다.

560 573 

561* 제목, 영역 및 세부 정보 편집574* 제목, 영역, 세부 정보 편집

562* **전사본 전송**을 `yes` 또는 `no`로 설정합니다. Claude가 초안을 대기열에 추가한 세션의 전사본을 여전히 사용할 수 있을 때, `yes`로 시작되어 해당 대화를 Anthropic에 전송합니다. `no`는 보고서만 전송합니다.575* **Send transcript**를 `yes` 또는 `no`로 설정. Claude가 초안을 대기열에 추가한 세션의 트랜스크립트를 아직 사용할 수 있으면 `yes`로 시작하며, 이 경우 해당 대화가 Anthropic에 전송됩니다. `no`는 보고서만 전송합니다

563* 초안을 전송하거나, 삭제하거나, 나중을 위해 대기열에 남겨둡니다.576* 초안 전송, 삭제 또는 나중을 위해 대기열에 보관

564 577 

565대신 직접 보고서를 작성하려면 `w`를 눌러 표준 피드백 대화를 엽니다. `/feedback` 뒤에 텍스트가 있거나 `/bug`를 사용하면 해당 대화를 직접 엽니다.578대신 보고서를 직접 작성하려면 `w`를 눌러 표준 피드백 대화 상자를 엽니다. 뒤에 텍스트를 붙인 `/feedback`과 `/bug`는 이 대화 상자를 바로 엽니다.

566 579 

567### 초안 전송580### 초안 전송

568 581 

569초안을 전송하면 Claude Code는 `/feedback` 보고서와 동일한 방식으로 제출하며, 동일한 [보존](https://code.claude.com/docs/ko/data-usage.md#feedback-using-the-%2Ffeedback-command)을 사용하고 머신에서 초안을 삭제합니다. 카드에서 전송하면 `✓ Sent`가 표시됩니다. 대기열에서 전송하면 영수증 ID와 함께 닫힙니다.582사용자가 초안을 전송하면 Claude Code는 `/feedback` 보고서와 동일한 방식으로 동일한 [보존 기간](https://code.claude.com/docs/ko/data-usage.md#feedback-using-the-%2Ffeedback-command)을 적용하여 제출하고, 사용자의 컴퓨터에서 초안을 삭제합니다. 카드에서 전송하면 `✓ Sent`가 표시되고, 대기열에서 전송하면 수신 ID와 함께 닫힙니다.

570 583 

571보고서에는 다음이 포함됩니다:584보고서에는 다음 내용이 포함됩니다.

572 585 

573* 사용자의 제목, 영역 및 세부 정보586* 사용자의 제목, 영역, 세부 정보

574* Claude Code 버전, 운영 체제 및 모델과 같은 환경 정보587* Claude Code 버전, 운영 체제, 모델 등의 환경 정보

575* 최근 API 요청의 ID588* 최근 API 요청의 ID

576* 검토 화면에서 **전사본 전송**을 `yes`로 설정한 경우의 대화 전사본입니다. 카드에서 전송하면 전사본이 포함되지 않습니다.589* 검토 화면에서 **Send transcript**를 `yes`로 둔 경우 대화 트랜스크립트. 카드에서 전송하면 트랜스크립트는 절대 포함되지 않습니다

577 590 

578Claude Code는 전사본을 찾을 수 있도록 로컬 초안에 작업 디렉토리를 유지하며, 디렉토리를 전송하지 않습니다.591Claude Code는 트랜스크립트를 찾을 수 있도록 로컬 초안에 작업 디렉터리를 보관하지만, 디렉터리는 전송하지 않습니다.

579 592 

580[Zero Data Retention이 적용된 조직](https://code.claude.com/docs/ko/zero-data-retention.md#features-disabled-under-zdr)과 [HIPAA 구성](https://code.claude.com/docs/ko/hipaa-setup.md)이 적용된 조직에서는 Claude Code가 세션에서 SendFeedback 도구를 제외합니다. Zero Data Retention이 적용된 조직의 세션에서 여전히 도구를 제공하는 경우, 초안은 머신에 남아 있으며 전송은 `Feedback collection is not available for organizations with custom data retention policies.` 오류로 실패합니다.593[Zero Data Retention이 적용된 조직](https://code.claude.com/docs/ko/zero-data-retention.md#features-disabled-under-zdr)과 [HIPAA 구성](https://code.claude.com/docs/ko/hipaa-setup.md)이 적용된 조직에서는 Claude Code가 세션에서 SendFeedback 도구를 제외합니다. Zero Data Retention이 적용된 조직의 세션에서 여전히 이 도구가 제공되더라도 초안은 사용자의 컴퓨터에 남으며, 전송은 `Feedback collection is not available for organizations with custom data retention policies.` 오류와 함께 실패합니다.

581 594 

582### 초안 삭제 또는 유지595### 초안 삭제 또는 보관

583 596 

584초안을 삭제하면 Claude Code는 머신에서 초안을 삭제합니다. 대기열에 남겨둔 초안은 30일 후 또는 더 짧을 때 [`cleanupPeriodDays`](https://code.claude.com/docs/ko/settings-reference#cleanupperioddays)가 지난 후 만료됩니다. 대기열은 모든 세션에서 10개의 초안을 보유하며, Claude가 11번째 초안을 대기열에 추가하면 Claude Code는 가장 오래된 초안을 삭제합니다. 세션의 초안이 여전히 대기열에 있을 때 `/exit`을 실행하면 Claude Code는 종료하기 전에 초안을 검토할 것인지 삭제할 것인지 묻습니다.597초안을 삭제하면 Claude Code가 사용자의 컴퓨터에서 해당 초안을 삭제합니다. 대기열에 남겨 둔 초안은 30일 후, 또는 [`cleanupPeriodDays`](https://code.claude.com/docs/ko/settings-reference#cleanupperioddays)가 더 짧은 경우 그 기간이 지나면 만료됩니다. 대기열은 모든 세션을 통틀어 10개의 초안을 보관하며, Claude가 11번째 초안을 추가하면 Claude Code가 가장 오래된 초안을 삭제합니다. 해당 세션의 초안이 대기열에 남아 있는 상태에서 `/exit`를 실행하면 Claude Code는 종료하기 전에 초안을 검토할지 삭제할지 묻습니다.

585 598 

586### Claude가 작성한 피드백 끄기599### Claude 작성 피드백 끄기

587 600 

588`/config`에서 **Claude가 작성한 피드백**을 `off`로 설정하면 [`feedbackDrafts`](https://code.claude.com/docs/ko/settings-reference#feedbackdrafts) 설정이 작성되거나, 한 세션 동안 [`CLAUDE_CODE_SEND_FEEDBACK=0`](https://code.claude.com/docs/ko/env-vars)을 설정합니다. 둘 중 하나를 사용하면 Claude는 초안을 대기열에 추가할 수 없습니다. 카드 없이 초안 작성을 계속하려면 `feedbackDrafts`를 `quiet`으로 설정합니다. 관리자는 [관리 설정](https://code.claude.com/docs/ko/managed-settings.md)에서 `feedbackDrafts`를 설정할 수 있으며, 이는 사용자의 설정보다 우선합니다.601`/config`에서 **Claude-drafted feedback**을 `off`로 설정하면 [`feedbackDrafts`](https://code.claude.com/docs/ko/settings-reference#feedbackdrafts) 설정이 기록되며, 한 세션에만 적용하려면 [`CLAUDE_CODE_SEND_FEEDBACK=0`](https://code.claude.com/docs/ko/env-vars)을 설정합니다. 어느 방법이든 Claude는 초안을 대기열에 추가할 수 없습니다. 카드 없이 초안 작성 기능을 유지하려면 대신 `feedbackDrafts`를 `quiet`로 설정합니다. 관리자는 [관리형 설정](https://code.claude.com/docs/ko/managed-settings.md)에서 `feedbackDrafts`를 설정할 수 있으며, 이 설정은 사용자 자신의 설정보다 우선합니다.

589 602 

590### Claude가 작성한 피드백이 없는 세션603### Claude 작성 피드백이 없는 세션

591 604 

592Claude Code는 Claude API를 사용하는 머신의 대화형 터미널 세션에 도구를 포함합니다. 다음에서는 도구를 제외합니다:605Claude Code는 클라우드 공급자가 아닌 Claude API를 사용하는, 사용자 컴퓨터의 대화형 터미널 세션에 이 도구를 포함합니다. 다음의 경우에는 도구를 제외합니다.

593 606 

594* 대기열을 검토할 화면이 없는 비대화형 `-p` 실행 및 [Agent SDK](https://code.claude.com/docs/ko/agent-sdk/overview.md) 세션607* 대기열을 검토할 화면이 없는 비대화형 `-p` 실행 및 [Agent SDK](https://code.claude.com/docs/ko/agent-sdk/overview.md) 세션

595* 머신의 대기열에 쓸 수 없는 [Claude Code on the web](https://code.claude.com/docs/ko/claude-code-on-the-web.md)과 같은 클라우드 세션608* 사용자 컴퓨터의 대기열에 쓸 수 없는 [클라우드 세션](https://code.claude.com/docs/ko/claude-code-on-the-web.md)

596* [Amazon Bedrock](https://code.claude.com/docs/ko/amazon-bedrock.md), [Claude Platform on AWS](https://code.claude.com/docs/ko/claude-platform-on-aws.md), [Google Cloud의 Agent Platform](https://code.claude.com/docs/ko/google-vertex-ai.md) 또는 [Microsoft Foundry](https://code.claude.com/docs/ko/microsoft-foundry.md)의 세션609* [Amazon Bedrock](https://code.claude.com/docs/ko/amazon-bedrock.md), [Claude Platform on AWS](https://code.claude.com/docs/ko/claude-platform-on-aws.md), [Google Cloud's Agent Platform](https://code.claude.com/docs/ko/google-vertex-ai.md) 또는 [Microsoft Foundry](https://code.claude.com/docs/ko/microsoft-foundry.md)에서의 세션

597* [`CLAUDE_CODE_SEND_FEEDBACK=0`](https://code.claude.com/docs/ko/env-vars) 또는 [`DISABLE_FEEDBACK_COMMAND=1`](https://code.claude.com/docs/ko/env-vars)을 설정하거나, `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`을 비어 있지 않은 값으로 설정하거나, [기능 플래그 가져오기](https://code.claude.com/docs/ko/env-vars.md#features-that-need-feature-flag-fetching)를 끈 세션610* 게이트웨이 자체의 키나 토큰을 사용하여 [LLM 게이트웨이](https://code.claude.com/docs/ko/llm-gateway)를 통해 Claude에 접근하는 세션

611* [`CLAUDE_CODE_SEND_FEEDBACK=0`](https://code.claude.com/docs/ko/env-vars) 또는 [`DISABLE_FEEDBACK_COMMAND=1`](https://code.claude.com/docs/ko/env-vars)을 설정했거나, `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`을 비어 있지 않은 값으로 설정했거나, [기능 플래그 가져오기](https://code.claude.com/docs/ko/env-vars.md#features-that-need-feature-flag-fetching)를 끈 세션

598* 제품 피드백을 끈 조직, [Zero Data Retention이 적용된 조직](https://code.claude.com/docs/ko/zero-data-retention.md#features-disabled-under-zdr), [HIPAA 구성](https://code.claude.com/docs/ko/hipaa-setup.md)이 적용된 조직612* 제품 피드백을 끈 조직, [Zero Data Retention이 적용된 조직](https://code.claude.com/docs/ko/zero-data-retention.md#features-disabled-under-zdr), [HIPAA 구성](https://code.claude.com/docs/ko/hipaa-setup.md)이 적용된 조직

613* Claude Code가 [보고서가 거부된 후 피드백 제공을 중단한](https://code.claude.com/docs/ko/errors.md#feedback-is-disabled-by-your-organizations-policy) 세션

599 614 

600## Task 도구 가용성615## Task 도구 가용성

601 616 

Details

70 70 

71### ZDR에서의 모델 가용성71### ZDR에서의 모델 가용성

72 72 

73Claude Fable 5.1 및 Fable 5는 [적용 대상 모델](https://support.claude.com/en/articles/15425695-covered-models)이며 기본적으로 [데이터 보존이 필요하고](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#model-specific-data-retention-requirements), ZDR 조직 또는 워크스페이스가 이를 사용할 수 있는지 여부는 Claude Code가 아닌 적용 대상 모델 정책에 의해 관리됩니다. 조직에서 이를 사용할 수 없는 경우 모델은 `/model` 선택기에서 없거나 비활성화된 것으로 표시되며, 클라이언트 구성에 관계없이 서버는 이에 대한 요청을 거부합니다.73Claude Fable 5.2, Fable 5.1 및 Fable 5는 [적용 대상 모델](https://support.claude.com/en/articles/15425695-covered-models)이며 기본적으로 [데이터 보존이 필요하고](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#model-specific-data-retention-requirements), ZDR 조직 또는 워크스페이스가 이를 사용할 수 있는지 여부는 Claude Code가 아닌 적용 대상 모델 정책에 의해 관리됩니다. 조직에서 이를 사용할 수 없는 경우 모델은 `/model` 선택기에서 없거나 비활성화된 것으로 표시되며, 클라이언트 구성에 관계없이 서버는 이에 대한 요청을 거부합니다.

74 74 

75다른 모델은 ZDR에서 계속 사용할 수 있습니다. Fable 모델은 기본값이 아니며, 사용 가능한 경우 최신 Fable 모델로 확인되는 `best` 별칭은 사용할 수 없는 조직의 경우 Opus로 확인됩니다.75다른 모델은 ZDR에서 계속 사용할 수 있습니다. Fable 모델은 기본값이 아니며, `best` 별칭은 Opus로 확인됩니다.

76 76 

77## 정책 위반에 대한 데이터 보존77## 정책 위반에 대한 데이터 보존

78 78