SpyBara
Go Premium

Documentation 2026-10-02 22:59 UTC to 2026-10-03 04:59 UTC

42 files changed +1,314 −1,127. View all changes and history on the product overview
2026
Sat 3 05:58 Fri 2 22:59 Thu 1 23:59
Details

145일부 동작은 스크린 리더 모드에 맞게 조정되지 않습니다:145일부 동작은 스크린 리더 모드에 맞게 조정되지 않습니다:

146 146 

147* 스크린 리더 모드는 스크린 리더가 실행 중일 때 자동으로 켜지지 않습니다.147* 스크린 리더 모드는 스크린 리더가 실행 중일 때 자동으로 켜지지 않습니다.

148* Claude Code는 `Shift+Tab`으로 순환하는 것 이외의 방식으로 변경된 권한 모드를 발표하지 않습니다. 예를 들어 명령에서 [계획 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)로 진입하는 경우입니다.148* Claude Code는 `/plan`으로 [플랜 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)에 진입하는 것처럼 명령으로 변경한 권한 모드를 발표하지 않습니다.

149* `claude attach` 또는 에이전트 보기에서 [백그라운드 세션](/docs/ko/agent-view)에 첨부하면 기본 스크롤백이 없는 터미널의 대체 화면으로 들어갑니다. 이는 [다른 첨부된 세션과 동일한 동작](/docs/ko/fullscreen)입니다. 나가려면 빈 프롬프트에서 왼쪽 화살표를 누르거나 대화 상자에 포커스가 있으면 Ctrl+Z를 누릅니다.149* `claude attach` 또는 에이전트 보기에서 [백그라운드 세션](/docs/ko/agent-view)에 첨부하면 기본 스크롤백이 없는 터미널의 대체 화면으로 들어갑니다. 이는 [다른 첨부된 세션과 동일한 동작](/docs/ko/fullscreen)입니다. 나가려면 빈 프롬프트에서 왼쪽 화살표를 누르거나 대화 상자에 포커스가 있으면 Ctrl+Z를 누릅니다.

150* Claude Code는 종료 시 인쇄하는 요약에서 비용을 발표하며, 턴당이 아닙니다.150* Claude Code는 종료 시 인쇄하는 요약에서 비용을 발표하며, 턴당이 아닙니다.

151* 스크린 리더 모드는 `-p` 플래그로 [비대화형 모드](/docs/ko/headless)를 변경하지 않습니다. 비대화형 모드는 이미 평문을 작성하며 스크립팅을 위한 대안으로 남아 있습니다.151* 스크린 리더 모드는 `-p` 플래그로 [비대화형 모드](/docs/ko/headless)를 변경하지 않습니다. 비대화형 모드는 이미 평문을 작성하며 스크립팅을 위한 대안으로 남아 있습니다.

Details

716| `reloadOutputStyles()` | 디스크에서 [출력 스타일](/docs/ko/output-styles)을 다시 읽어 중간 세션에 추가하거나 편집한 스타일 파일이 실행 중인 세션에서 사용 가능하게 됩니다. 다시 로드 후 사용 가능한 스타일 이름을 나열하는 [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse)로 해결합니다. Agent SDK v0.3.261 이상이 필요합니다 |716| `reloadOutputStyles()` | 디스크에서 [출력 스타일](/docs/ko/output-styles)을 다시 읽어 중간 세션에 추가하거나 편집한 스타일 파일이 실행 중인 세션에서 사용 가능하게 됩니다. 다시 로드 후 사용 가능한 스타일 이름을 나열하는 [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse)로 해결합니다. Agent SDK v0.3.261 이상이 필요합니다 |

717| `accountInfo()` | 계정 정보를 반환합니다 |717| `accountInfo()` | 계정 정보를 반환합니다 |

718| `reconnectMcpServer(serverName)` | MCP 서버를 이름으로 다시 연결합니다. 이름이 `.mcp.json` 또는 `~/.claude.json` 같은 설정 파일의 항목과도 일치하면 Claude Code는 [`mcpServers`](#options) 또는 `setMcpServers()`를 통해 구성한 서버를 다시 연결하며, 설정 파일 항목은 아닙니다. 해당 해결 순서는 Claude Code v2.1.257 이상이 필요합니다 |718| `reconnectMcpServer(serverName)` | MCP 서버를 이름으로 다시 연결합니다. 이름이 `.mcp.json` 또는 `~/.claude.json` 같은 설정 파일의 항목과도 일치하면 Claude Code는 [`mcpServers`](#options) 또는 `setMcpServers()`를 통해 구성한 서버를 다시 연결하며, 설정 파일 항목은 아닙니다. 해당 해결 순서는 Claude Code v2.1.257 이상이 필요합니다 |

719| `toggleMcpServer(serverName, enabled)` | `reconnectMcpServer()`와 동일한 이름 해결을 사용하여 MCP 서버를 이름으로 활성화 또는 비활성화합니다. stdio, SSE 또는 HTTP 서버를 비활성화하면 연결을 끊고 도구를 제거합니다. 중간 세션에서 `setMcpServers()`로 추가한 서버의 경우 도구 제거에 Claude Code v2.1.285 이상이 필요합니다 |719| `toggleMcpServer(serverName, enabled)` | `reconnectMcpServer()`와 동일한 이름 확인 방식으로 이름을 사용해 MCP 서버를 활성화하거나 비활성화합니다. 서버를 비활성화하면 연결이 끊기고 해당 도구가 제거됩니다. 서버 종류별로 필요한 Claude Code 버전은 [`toggleMcpServer()`](#togglemcpserver)를 참조하세요 |

720| `setMcpServers(servers)` | 이 세션의 MCP 서버 집합을 동적으로 대체합니다. 추가되고 제거된 서버를 명시하고 오류가 있는 [`McpSetServersResult`](#mcpsetserversresult)로 해결합니다 |720| `setMcpServers(servers)` | 이 세션의 MCP 서버 집합을 동적으로 대체합니다. 추가되고 제거된 서버를 명시하고 오류가 있는 [`McpSetServersResult`](#mcpsetserversresult)로 해결합니다 |

721| `readMcpResource(serverName, uri)` | *알파.* 연결된 MCP 서버에서 하나의 MCP Apps `ui://` 리소스를 읽어 애플리케이션이 도구의 위젯을 렌더링할 수 있도록 합니다. [`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse)로 해결합니다. TypeScript Agent SDK v0.3.280 이상이 필요합니다 |721| `readMcpResource(serverName, uri)` | *알파.* 연결된 MCP 서버에서 하나의 MCP Apps `ui://` 리소스를 읽어 애플리케이션이 도구의 위젯을 렌더링할 수 있도록 합니다. [`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse)로 해결합니다. TypeScript Agent SDK v0.3.280 이상이 필요합니다 |

722| `streamInput(stream)` | 다중 턴 대화를 위해 쿼리에 입력 메시지를 스트리밍합니다 |722| `streamInput(stream)` | 다중 턴 대화를 위해 쿼리에 입력 메시지를 스트리밍합니다 |


780 780 

781호출은 다른 키를 전달할 때, 세션이 원격 전송을 통해 실행될 때, 세션의 [`settingSources`](#options)가 명시한 소스를 제외할 때 거부합니다. 키 삭제는 지원되지 않습니다.781호출은 다른 키를 전달할 때, 세션이 원격 전송을 통해 실행될 때, 세션의 [`settingSources`](#options)가 명시한 소스를 제외할 때 거부합니다. 키 삭제는 지원되지 않습니다.

782 782 

783<h4 id="togglemcpserver">

784 `toggleMcpServer()`

785</h4>

786 

787서버를 비활성화하면 연결이 끊기고 해당 도구가 세션에서 제거됩니다. 세션 중에 추가한 서버와 인프로세스 서버의 경우, 이는 Claude Code 버전에 따라 달라집니다.

788 

789* 세션 중에 `setMcpServers()`로 추가한 stdio, SSE 또는 HTTP 서버: 도구를 제거하려면 Claude Code v2.1.285 이상이 필요합니다.

790* [`createSdkMcpServer()`](#createsdkmcpserver)로 만든 인프로세스 서버(`mcpServers`로 전달했든 `setMcpServers()`로 전달했든): 연결을 끊고 도구를 제거하려면 Claude Code v2.1.286 이상이 필요합니다. 이러한 서버를 비활성화하면 아직 실행 중인 해당 도구 호출도 실패하므로, 핸들러가 반환될 때까지 기다리지 않고 Claude가 각 호출에 대한 오류 결과를 즉시 받습니다.

791 

783<h3 id="warmquery">792<h3 id="warmquery">

784 `WarmQuery`793 `WarmQuery`

785</h3>794</h3>


1582 shouldQuery?: boolean;1591 shouldQuery?: boolean;

1583 client_composed?: true;1592 client_composed?: true;

1584 tool_use_result?: unknown;1593 tool_use_result?: unknown;

1594 priority?: "now" | "next" | "later";

1585 origin?: SDKMessageOrigin;1595 origin?: SDKMessageOrigin;

1586 inline_pastes?: string[];1596 inline_pastes?: string[];

1587};1597};


1589 1599 

1590사용자가 프롬프트 UI에 입력하지 않고 붙여넣은 콘텐츠를 보내려면 `pasted_content`를 설정하세요. 붙여넣기당 하나의 항목이며, 각각 문자열 또는 콘텐츠 블록 배열입니다. Claude Code는 각 항목의 텍스트를 입력된 텍스트 뒤에 순서대로 추가하며, 각 붙여넣기를 `<pasted_content>` 태그로 감쌀 수 있습니다. 텍스트 이외의 블록은 무시되므로 이미지와 문서는 `message.content`에서 보내세요. Agent SDK v0.3.277 이상이 필요합니다.1600사용자가 프롬프트 UI에 입력하지 않고 붙여넣은 콘텐츠를 보내려면 `pasted_content`를 설정하세요. 붙여넣기당 하나의 항목이며, 각각 문자열 또는 콘텐츠 블록 배열입니다. Claude Code는 각 항목의 텍스트를 입력된 텍스트 뒤에 순서대로 추가하며, 각 붙여넣기를 `<pasted_content>` 태그로 감쌀 수 있습니다. 텍스트 이외의 블록은 무시되므로 이미지와 문서는 `message.content`에서 보내세요. Agent SDK v0.3.277 이상이 필요합니다.

1591 1601 

1592Claude Code가 보낸 메시지를 처리하는 방식을 변경하려면 `shouldQuery` 또는 `client_composed`를 설정하세요:1602`message.content` 중 사용자가 직접 입력하지 않고 붙여넣은 부분을 Claude Code에 알리려면 `inline_pastes`를 설정하세요. 붙여넣기 한 번당 문자열 하나입니다. 프롬프트 텍스트는 사용자가 둔 위치에 그대로 유지됩니다. Claude Code는 나열된 각 붙여넣기를 해당 위치에서 `<pasted_content>` 태그로 감쌀 수 있으므로, Claude는 붙여넣은 내용과 사용자가 직접 작성한 내용을 구별할 수 있습니다. 프롬프트의 마지막 텍스트 블록에 있는 붙여넣기만 감싸집니다. TypeScript Agent SDK v0.3.280 이상이 필요합니다.

1603 

1604보내는 메시지를 Claude Code가 처리하는 방식을 바꾸려면 `shouldQuery`, `client_composed` 또는 `priority`를 설정하세요.

1593 1605 

1594* `shouldQuery`: 어시스턴트 턴을 트리거하지 않고 메시지를 트랜스크립트에 추가하려면 `false`로 설정하세요. 메시지는 보류되고 턴을 트리거하는 다음 사용자 메시지로 병합됩니다. 이를 사용하여 모델 호출을 소비하지 않고 대역 외에서 실행한 명령의 출력과 같은 컨텍스트를 주입하세요.1606* `shouldQuery`: 어시스턴트 턴을 트리거하지 않고 메시지를 트랜스크립트에 추가하려면 `false`로 설정하세요. 메시지는 보류되고 턴을 트리거하는 다음 사용자 메시지로 병합됩니다. 이를 사용하여 모델 호출을 소비하지 않고 대역 외에서 실행한 명령의 출력과 같은 컨텍스트를 주입하세요.

1595* `client_composed`: Claude Code가 작성된 대로 메시지 텍스트를 전달하도록 하려면 `true`로 설정하세요. Claude Code는 `@path` 또는 [`@server:resource`](/docs/ko/mcp#use-mcp-resources) 언급을 확장하지 않으며, `/`로 시작하는 텍스트를 명령으로 실행하지 않습니다. [`verbatimPrompts`](#options) 옵션이 켜져 있는 동안 SDK는 모든 메시지에 필드를 설정합니다. TypeScript Agent SDK v0.3.280 이상과 Claude Code v2.1.248 이상이 필요합니다.1607* `client_composed`: Claude Code가 작성된 대로 메시지 텍스트를 전달하도록 하려면 `true`로 설정하세요. Claude Code는 `@path` 또는 [`@server:resource`](/docs/ko/mcp#use-mcp-resources) 언급을 확장하지 않으며, `/`로 시작하는 텍스트를 명령으로 실행하지 않습니다. [`verbatimPrompts`](#options) 옵션이 켜져 있는 동안 SDK는 모든 메시지에 필드를 설정합니다. TypeScript Agent SDK v0.3.280 이상과 Claude Code v2.1.248 이상이 필요합니다.

1608* `priority`: 실행 중인 턴 동안 보낸 메시지가 언제 Claude에 도달하는지 제어합니다.

1609 * `'next'` 또는 `priority` 필드 없음: Claude는 실행 중인 도구 호출이 끝나는 즉시 같은 턴에서 메시지를 읽습니다. 턴이 먼저 끝나면 메시지가 다음 턴을 시작합니다.

1610 * `'later'`: Claude Code는 턴이 끝날 때까지 메시지를 보류한 다음 새 턴으로 보냅니다.

1611 * [`origin: { kind: "human" }`](#sdkmessageorigin)과 함께 `'now'`: Claude Code v2.1.286 이상에서는 백그라운드에서 계속할 수 있는 작업이 백그라운드로 이동하고, Claude는 같은 턴에서 메시지를 읽습니다. 이동할 수 있는 작업에는 셸 명령, 서브에이전트, MCP 도구 호출이 포함됩니다. v2.1.287 이상에서는 WebFetch 및 WebSearch 호출도 포함됩니다. Claude가 응답만 작성 중이거나 실행 중인 작업을 이동할 수 없으면, Claude Code는 대신 턴을 인터럽트하고 Claude는 다음으로 메시지를 읽습니다.

1612 * 해당 origin 없이 `'now'`: Claude Code는 턴을 인터럽트하고 Claude는 다음으로 메시지를 읽습니다.

1596 1613 

1597`tool_result` 블록을 전달하는 메시지에서 `tool_use_result`는 모델로 전송된 텍스트가 아니라 도구의 구조화된 출력 객체입니다. 해당 형태는 일치하는 `tool_use` 블록으로 명명된 도구에 따라 다르므로 필드는 `unknown`으로 입력됩니다. 기본 제공 형태는 [도구 출력 타입](#tool-output-types)에 나열되어 있습니다.1614턴이 실행 중일 때 보낸 다음 메시지는 아직 실행 중인 셸 명령을 잃지 않고 Claude에게 방향을 바꾸도록 요청합니다.

1598 1615 

1599`Agent` 도구의 경우 `tool_use_result`는 [`AgentOutput`](#agent-2)입니다. `tool_result` 텍스트를 구문 분석하는 대신 이를 기반으로 렌더링하세요. `completed` 결과의 `content`는 서브에이전트의 보고서를 보유하며, 보고서가 `SubagentHandback` 도구 호출을 거치는 서브에이전트의 경우 보고서 대신 해당 인계에 관한 짧은 메모를 보유합니다. Claude Code v2.1.271 이상의 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서는 `completed` 결과를 생성하는 모든 서브에이전트가 [포크](/docs/ko/sub-agents#fork-the-current-conversation)가 아닌 한 그 방식으로 보고하며, Claude는 서브에이전트로부터 보고서를 별도의 메시지로 받습니다.1616```typescript theme={null}

1617const message: SDKUserMessage = {

1618 type: "user",

1619 message: { role: "user", content: "Skip the integration tests and summarize what you have so far" },

1620 parent_tool_use_id: null,

1621 priority: "now",

1622 origin: { kind: "human" },

1623};

1624```

1600 1625 

1601결과에 `resource_link` 블록이 포함된 MCP 도구의 경우, `tool_use_result`는 [`SDKMcpResourceLink`](#sdkmcpresourcelink) 항목의 `resourceLinks` 배열을 가진 객체입니다. Claude는 각 링크를 `tool_result` 블록의 텍스트 줄로 받으므로, 해당 텍스트를 구문 분석하는 대신 `resourceLinks`를 읽어 서버가 반환한 파일을 렌더링하세요. Claude Code는 결과에 링크가 없을 때 `resourceLinks`를 생략하고, 서브에이전트의 결과에서 생략하며, 결과당 최대 50개의 링크를 유지하고, 배열이 64 KiB의 직렬화된 JSON에 도달하면 링크 추가를 중지합니다. `resourceLinks`는 Agent SDK v0.3.257 이상이 필요합니다.1626`tool_result` 블록을 포함하는 메시지에서 `tool_use_result`는 모델에 전송된 텍스트가 아닌 도구의 구조화된 출력 객체입니다. 그 형태는 대응하는 `tool_use` 블록이 가리키는 도구에 따라 달라지므로 필드 타입은 `unknown`입니다. 내장 형태는 [Tool Output Types](#tool-output-types)에 나열되어 있습니다. 다음 결과는 나열된 형태 이상의 처리가 필요합니다.

1602 1627 

1603Claude Code에 `message.content`의 어느 부분을 사용자가 입력하지 않고 붙여넣었는지 알려주려면 `inline_pastes`를 설정하세요. 붙여넣기당 하나의 문자열입니다. 프롬프트 텍스트는 사용자가 배치한 위치에 유지됩니다. Claude Code는 각 나열된 붙여넣기를 그 자리에서 `<pasted_content>` 태그로 감쌀 수 있으므로 Claude는 붙여넣은 자료를 사용자 자신의 말과 구별할 수 있습니다. 프롬프트의 마지막 텍스트 블록의 붙여넣기만 감싸집니다. TypeScript Agent SDK v0.3.280 이상이 필요합니다.1628* `Agent` 도구: `tool_use_result`는 [`AgentOutput`](#agent-2)입니다. `tool_result` 텍스트를 파싱하지 말고 이 값을 기반으로 렌더링하세요. `completed` 결과의 `content`에는 서브에이전트의 보고서가 담기며, 보고서를 `SubagentHandback` 도구 호출로 전달하는 서브에이전트의 경우에는 보고서 대신 해당 전달에 대한 짧은 안내가 담깁니다. Claude Code v2.1.271 이상의 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서는 [포크](/docs/ko/sub-agents#fork-the-current-conversation)가 아닌 한 `completed` 결과를 생성하는 모든 서브에이전트가 이 방식으로 보고하며, Claude는 서브에이전트로부터 별도의 메시지로 보고서를 받습니다.

1629* `'now'` 메시지를 전달하기 위해 Claude Code가 백그라운드로 이동한 WebFetch 또는 WebSearch 호출: 해당 호출의 `tool_result`를 담은 사용자 메시지는 `tool_use_result`가 `{ detachedToolCall: true }`로 설정됩니다. 호출은 여전히 실행 중이며, 완료되면 Claude가 결과를 받습니다. 해당 `tool_use_id`에 대한 두 번째 `tool_result`는 뒤따르지 않으므로, 애플리케이션이 도구 호출마다 행을 그린다면 이 메시지가 도착할 때 해당 행을 백그라운드로 이동된 것으로 표시하세요. Claude Code v2.1.287 이상이 필요합니다.

1630* 결과에 `resource_link` 블록이 포함된 MCP 도구: `tool_use_result`는 [`SDKMcpResourceLink`](#sdkmcpresourcelink) 항목의 `resourceLinks` 배열을 가진 객체입니다. Claude는 각 링크를 `tool_result` 블록의 텍스트 한 줄로 받으므로, 해당 텍스트를 파싱하는 대신 `resourceLinks`를 읽어 서버가 반환한 파일을 렌더링하세요. Claude Code는 결과에 링크가 없을 때와 서브에이전트의 결과에서 `resourceLinks`를 생략하며, 결과당 최대 50개의 링크를 유지하고, 배열이 직렬화된 JSON 기준 64 KiB에 도달하면 링크 추가를 중단합니다. `resourceLinks`에는 Agent SDK v0.3.257 이상이 필요합니다.

1631* [`structuredContent`](#calltoolresult)를 반환하는 MCP 도구: `tool_use_result`는 `structuredContent` 멤버에 서버가 보낸 내용을, `content` 멤버에 [`McpOutput`](#mcpoutput) 값을 담은 객체입니다. 서브에이전트의 결과에는 `structuredContent`가 포함되지 않습니다.

1632* `structuredContent`가 JSON으로 직렬화했을 때 1,048,576자를 초과하는 MCP 도구: Claude Code는 `tool_use_result`에서 `structuredContent`를 제외하고 대신 `structuredContentOmitted: true`를 설정하므로, 애플리케이션은 삭제된 객체와 아무것도 보내지 않은 도구를 구별할 수 있습니다. `content`, `resourceLinks` 같은 다른 멤버는 유지되며, Claude가 받는 내용은 바뀌지 않습니다. [인프로세스 SDK 서버](/docs/ko/agent-sdk/custom-tools)의 도구와 `tools/list` 항목에 [MCP Apps `_meta.ui` 리소스](#mcpserverstatus)를 선언한 도구는 예외이며 객체 전체를 전달합니다. Claude Code v2.1.287 이상에서 이 상한이 적용됩니다.

1604 1633 

1605<h3 id="sdkusermessagereplay">1634<h3 id="sdkusermessagereplay">

1606 `SDKUserMessageReplay`1635 `SDKUserMessageReplay`


1655 first_content_frame_ms?: number;1684 first_content_frame_ms?: number;

1656 first_stream_post_ms?: number;1685 first_stream_post_ms?: number;

1657 first_stream_post_ack_ms?: number;1686 first_stream_post_ack_ms?: number;

1687 first_stream_post_queue_wait_ms?: number;

1688 first_stream_post_queued_behind?: "durable_post" | "ephemeral_post" | "retry_backoff" | "hold" | "none";

1658 first_stream_post_wall_ms?: number;1689 first_stream_post_wall_ms?: number;

1690 first_text_post_ms?: number;

1691 first_text_post_queue_wait_ms?: number;

1692 first_text_post_queued_behind?: "durable_post" | "ephemeral_post" | "retry_backoff" | "hold" | "none";

1693 first_text_post_wall_ms?: number;

1659 total_cost_usd: number;1694 total_cost_usd: number;

1660 usage: NonNullableUsage;1695 usage: NonNullableUsage;

1661 modelUsage: { [modelName: string]: ModelUsage };1696 modelUsage: { [modelName: string]: ModelUsage };


2039권한 시스템이 대화형 프롬프트 없이 도구 호출을 거부할 때 내보내는 스트림 이벤트입니다. 뒤따르는 `is_error` 도구 결과만 관찰하는 대신, 이를 사용하여 거부가 발생하는 즉시 UI에서 렌더링하세요. 어느 거부를 보고하는지는 실행이 권한 프롬프트를 처리하는 방식에 따라 다릅니다:2074권한 시스템이 대화형 프롬프트 없이 도구 호출을 거부할 때 내보내는 스트림 이벤트입니다. 뒤따르는 `is_error` 도구 결과만 관찰하는 대신, 이를 사용하여 거부가 발생하는 즉시 UI에서 렌더링하세요. 어느 거부를 보고하는지는 실행이 권한 프롬프트를 처리하는 방식에 따라 다릅니다:

2040 2075 

2041* **[`canUseTool`](#canusetool) 콜백과 기본 [`permissionPrompts: 'host'`](#options)**: 권한 프롬프트는 콜백으로 가며, 이 이벤트는 Claude Code가 콜백을 호출하지 않고 자체적으로 결정한 거부를 보고합니다.2076* **[`canUseTool`](#canusetool) 콜백과 기본 [`permissionPrompts: 'host'`](#options)**: 권한 프롬프트는 콜백으로 가며, 이 이벤트는 Claude Code가 콜백을 호출하지 않고 자체적으로 결정한 거부를 보고합니다.

2042* **둘 다 없음**: 베어 `-p` 실행 또는 `canUseTool`도 `permissionPromptToolName`도 설정하지 않는 `query()`는 확인을 요청했을 도구 호출을 거부하며, 이 이벤트는 이러한 거부와 Claude Code가 자체적으로 결정한 거부를 보고합니다. v2.1.223 이전에는 Claude Code가 콜백 없는 실행에서 이 이벤트를 내보내지 않았습니다.2077* **둘 다 없는 경우**: 단순 `-p` 실행 또는 `canUseTool`과 `permissionPromptToolName` 중 어느 것도 설정하지 않은 `query()`는 [`PermissionRequest` 훅](/docs/ko/hooks-guide#limitations)이 허용하지 않는 한 확인을 요청했을 도구 호출을 모두 거부하며, 이 이벤트는 이러한 거부와 Claude Code가 자체적으로 결정한 거부를 모두 보고합니다. v2.1.223 이전에는 콜백이 없는 실행에서 Claude Code가 이 이벤트를 생성하지 않았습니다.

2043* **MCP 프롬프트 도구**(`permissionPromptToolName` 또는 [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags) 플래그로 설정)와 기본 `permissionPrompts: 'host'`: Claude Code는 자체적으로 결정한 규칙 거부에 대해서도 이 이벤트를 전혀 내보내지 않습니다.2078* **MCP 프롬프트 도구**(`permissionPromptToolName` 또는 [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags) 플래그로 설정)와 기본 `permissionPrompts: 'host'`: Claude Code는 자체적으로 결정한 규칙 거부에 대해서도 이 이벤트를 전혀 내보내지 않습니다.

2044* **[`permissionPrompts: 'none'`](#options)**: `canUseTool` 또는 MCP 프롬프트 도구가 함께 설정되어 있더라도 Claude Code는 확인을 요청했을 호출을 거부하며, 이 이벤트는 이러한 거부와 Claude Code가 자체적으로 결정한 거부를 보고합니다. Claude Code v2.1.259 이상이 필요합니다.2079* **[`permissionPrompts: 'none'`](#options)**: `canUseTool` 또는 MCP 프롬프트 도구가 함께 설정되어 있더라도 Claude Code는 확인을 요청했을 호출을 거부하며, 이 이벤트는 이러한 거부와 Claude Code가 자체적으로 결정한 거부를 보고합니다. Claude Code v2.1.259 이상이 필요합니다.

2045 2080 


4962 };4997 };

4963```4998```

4964 4999 

4965MCP 도구 결과는 서버에 따라 문자열 또는 콘텐츠 블록 배열로 반환됩니다. 내보낸 타입의 후행 일반 객체 분기는 스키마 생성 아티팩트입니다: SDK는 서버의 구조화된 출력이 반환되기 전에 JSON 문자열로 직렬화되기 때문에 베어 객체를 반환하지 않습니다. 런타임에 값은 `undefined`일 수도 있지만, 내보낸 타입은 이를 모델링하지 않습니다.5000MCP 도구 결과는 서버에 따라 문자열 또는 콘텐츠 블록 배열로 반환됩니다. 내보낸 타입의 후행 일반 객체 분기는 스키마 생성 과정의 산출물입니다. `structuredContent` 또는 리소스 링크도 함께 전달하는 결과의 경우, 이 값을 `content` 멤버에 담고 있는 [`tool_use_result`](#sdkusermessage)를 참조하십시오. 런타임에 값은 `undefined`일 수도 있지만, 내보낸 타입은 이를 모델링하지 않습니다.

4966 5001 

4967<h2 id="permission-types">5002<h2 id="permission-types">

4968 권한 타입5003 권한 타입

agent-teams.md +1 −1

Details

91* **Enter**: 선택한 팀원의 대화 기록을 열고 직접 메시지 전송91* **Enter**: 선택한 팀원의 대화 기록을 열고 직접 메시지 전송

92* **Escape**: 선택 해제. 팀원의 대화 기록을 보고 있는 동안 Escape는 해당 팀원의 현재 턴을 중단합니다.92* **Escape**: 선택 해제. 팀원의 대화 기록을 보고 있는 동안 Escape는 해당 팀원의 현재 턴을 중단합니다.

93 93 

94v2.1.199부터, 유휴 팀원의 행은 다른 팀원이나 서브에이전트가 여전히 작업 중인 동안 패널에 남아 있으므로, 이를 선택하여 대화 기록을 검토하거나 추가 작업을 보낼 수 있습니다. 패널의 모든 에이전트가 유휴 상태가 되면, 유휴 행은 30초 후 숨겨지고 팀원의 다음 턴에 다시 나타납니다. 팀원은 숨겨진 상태에서도 계속 실행되고 주소 지정 가능합니다. v2.1.181부터 v2.1.198까지는, 유휴 행이 다른 팀원들이 여전히 작업 중이더라도 자신의 턴이 끝난 후 30초 후에 숨겨졌습니다. v2.1.181 이전 버전에서는 유휴 행이 숨겨지지 않습니다.94유휴 팀원의 행은 다른 팀원이나 서브에이전트가 여전히 작업 중인 동안 패널에 남아 있으므로, 이를 선택하여 트랜스크립트를 검토하거나 추가 작업을 보낼 수 있습니다. 패널의 모든 에이전트가 유휴 상태가 되면, 유휴 행은 30초 후 숨겨지고 팀원의 다음 턴에 다시 나타납니다. 팀원은 숨겨진 상태에서도 계속 실행되고 주소 지정 가능합니다.

95 95 

96세 명 이상의 팀원이 동시에 유휴 상태일 때, 처음 세 명을 넘는 행들은 `5명이 유휴 상태일 때 2명의 유휴 에이전트`와 같이 축소된 팀원의 수를 세는 단일 행으로 축소됩니다. 이를 선택하고 Enter를 누르면 축소된 행들이 확장되거나, Esc를 누르면 다시 축소됩니다. 작업 중인 팀원, 실패한 팀원, 그리고 현재 보고 있는 팀원은 항상 자신의 행을 유지합니다.96세 명 이상의 팀원이 동시에 유휴 상태일 때, 처음 세 명을 넘는 행들은 `5명이 유휴 상태일 때 2명의 유휴 에이전트`와 같이 축소된 팀원의 수를 세는 단일 행으로 축소됩니다. 이를 선택하고 Enter를 누르면 축소된 행들이 확장되거나, Esc를 누르면 다시 축소됩니다. 작업 중인 팀원, 실패한 팀원, 그리고 현재 보고 있는 팀원은 항상 자신의 행을 유지합니다.

97 97 

champion-kit.md +7 −7

Details

50재사용 가능한 기법의 예:50재사용 가능한 기법의 예:

51 51 

52* "디렉토리를 @-멘션하는 것이 작동한다는 것을 배웠습니다. `@src/components/`를 가리키고 어떤 것이 테스트를 놓쳤는지 묻자 두 개를 발견했습니다."52* "디렉토리를 @-멘션하는 것이 작동한다는 것을 배웠습니다. `@src/components/`를 가리키고 어떤 것이 테스트를 놓쳤는지 묻자 두 개를 발견했습니다."

53* "Plan mode (`Shift+Tab`)는 편집이 이루어지기 전에 정확히 어떤 파일이 건드려질지 보여주므로, 공유 코드에서 이를 사용하는 것이 편합니다."53* "플랜 모드(`Shift+Tab`)는 제안된 변경 사항을 먼저 제시하므로, 공유 코드에서 이를 사용하는 것이 편합니다."

54* "Stop hook을 구성하여 긴 작업이 완료될 때 데스크톱 알림을 받습니다. 구성은 스레드에 있습니다."54* "Stop hook을 구성하여 긴 작업이 완료될 때 데스크톱 알림을 받습니다. 구성은 스레드에 있습니다."

55* "`/init`을 실행하면 저장소에서 `CLAUDE.md`를 생성하므로 어시스턴트가 우리의 규칙에 대해 다시 묻지 않습니다."55* "`/init`을 실행하면 저장소에서 `CLAUDE.md`를 생성하므로 어시스턴트가 우리의 규칙에 대해 다시 묻지 않습니다."

56 56 


86```86```

87 87 

88```text theme={null}88```text theme={null}

89Plan mode는 내가 중요한 코드에서 이를 사용하는 것이 편한 이유입니다.89플랜 모드는 내가 중요한 코드에서 이를 사용하는 것이 편한 이유입니다.

90Shift+Tab을 누르면 "plan"이 보일 때까지; 변경하기 전에 정확히 어떤 파일을90"plan"이 보일 때까지 Shift+Tab을 누르세요. 소스를 편집하지 않고

91건드릴 의도인지 보여줍니다.91제안하는 변경 사항을 정리해서 보여줍니다.

92```92```

93 93 

94<h2 id="be-the-person-people-ask">94<h2 id="be-the-person-people-ask">


124| 질문 | 제안된 응답 | 후속 리소스 |124| 질문 | 제안된 응답 | 후속 리소스 |

125| - | - | - |125| - | - | - |

126| "먼저 무엇을 시도해야 할까요?" | 실제이지만 포함된 작업, 이상적으로는 어렵기보다는 지루해서 미루고 있던 버그나 잡무를 권장합니다. | [Common workflows](/docs/ko/common-workflows) |126| "먼저 무엇을 시도해야 할까요?" | 실제이지만 포함된 작업, 이상적으로는 어렵기보다는 지루해서 미루고 있던 버그나 잡무를 권장합니다. | [Common workflows](/docs/ko/common-workflows) |

127| "코드를 어떻게 신뢰할 수 있나요?" | Plan mode를 소개합니다: `Shift+Tab`을 누르면 순환하고, Claude는 정확히 변경할 의도를 제안하며, 사용자가 승인할 때까지 아무것도 수정되지 않습니다. | [Permissions](/docs/ko/permissions) |127| "코드를 어떻게 신뢰할 수 있나요?" | 플랜 모드를 소개합니다: `Shift+Tab`을 누르면 플랜 모드로 전환되며, Claude는 소스를 편집하지 않고 조사한 뒤 변경 사항을 제안합니다. | [Permissions](/docs/ko/permissions) |

128| "설정이 노력할 가치가 있나요?" | 설치는 대략 2분이 걸리고, 터미널에서 실행되며, IDE 확장이 필요하지 않습니다. `/init`을 한 번 실행하는 것으로 충분합니다. | [Quickstart](/docs/ko/quickstart) |128| "설정이 노력할 가치가 있나요?" | 설치는 대략 2분이 걸리고, 터미널에서 실행되며, IDE 확장이 필요하지 않습니다. `/init`을 한 번 실행하는 것으로 충분합니다. | [Quickstart](/docs/ko/quickstart) |

129| "잘못된 결과를 생성했습니다." | 실패를 Claude에게 다시 제공하도록 권장합니다. 오류 메시지나 실패한 테스트를 붙여넣는 것이 원래 요청을 다시 표현하는 것보다 훨씬 더 효과적입니다. | [Common workflows](/docs/ko/common-workflows) |129| "잘못된 결과를 생성했습니다." | 실패를 Claude에게 다시 제공하도록 권장합니다. 오류 메시지나 실패한 테스트를 붙여넣는 것이 원래 요청을 다시 표현하는 것보다 훨씬 더 효과적입니다. | [Common workflows](/docs/ko/common-workflows) |

130| "우리 코드베이스 규칙을 이해하지 못합니다." | `/init`을 실행하여 `CLAUDE.md` 파일을 생성한 후, 팀의 규칙, 테스트 명령, 그리고 수정하면 안 되는 디렉토리를 추가하도록 제안합니다. | [Memory](/docs/ko/memory) |130| "우리 코드베이스 규칙을 이해하지 못합니다." | `/init`을 실행하여 `CLAUDE.md` 파일을 생성한 후, 팀의 규칙, 테스트 명령, 그리고 수정하면 안 되는 디렉토리를 추가하도록 제안합니다. | [Memory](/docs/ko/memory) |


197| 우려 | 제안된 응답 | 제공할 증거 |197| 우려 | 제안된 응답 | 제공할 증거 |

198| - | - | - |198| - | - | - |

199| "나는 이것 없이 더 빠릅니다." | 그것은 그 사람이 일상적으로 쓰는 코드에 대해 아마도 사실일 것입니다. 레거시 파일, 낯선 서비스, 또는 테스트 스캐폴딩과 같이 피하는 경향이 있는 작업에서 시도하도록 제안합니다. 여기서 가장 도움이 됩니다. | 지루한 작업 하나를 양쪽 방식으로 시간을 재고 비교합니다. |199| "나는 이것 없이 더 빠릅니다." | 그것은 그 사람이 일상적으로 쓰는 코드에 대해 아마도 사실일 것입니다. 레거시 파일, 낯선 서비스, 또는 테스트 스캐폴딩과 같이 피하는 경향이 있는 작업에서 시도하도록 제안합니다. 여기서 가장 도움이 됩니다. | 지루한 작업 하나를 양쪽 방식으로 시간을 재고 비교합니다. |

200| "나는 AI가 프로덕션 코드를 건드리는 것을 신뢰하지 않습니다." | 변경이 읽지 않은 상태로 랜드되어서는 안 된다는 데 동의합니다. Plan mode와 정상적인 diff 검토는 엔지니어가 검사하지 않은 것이 적용되지 않음을 의미하며, 이는 모든 풀 리퀘스트와 동일한 표준입니다. | 실제 파일에서 plan mode를 시연합니다. |200| "나는 AI가 프로덕션 코드를 건드리는 것을 신뢰하지 않습니다." | 변경이 읽지 않은 상태로 랜드되어서는 안 된다는 데 동의합니다. 플랜 모드로 제안된 변경 사항을 먼저 확인한 다음, 모든 풀 리퀘스트와 동일한 기준으로 diff를 검토하도록 제안합니다. | 실제 파일에서 플랜 모드를 시연합니다. |

201| "이것은 주니어 엔지니어를 약하게 만들 것입니다." | 잘 사용되면, 그것은 효과적인 설명자입니다. 주니어 엔지니어들이 변경을 요청하기 전에 Claude에게 파일과 그 호출 사이트를 설명하도록 요청하도록 권장합니다. | "파일을 설명하고 어디서 호출되는지 보여주세요"를 함께 실행합니다. |201| "이것은 주니어 엔지니어를 약하게 만들 것입니다." | 잘 사용되면, 그것은 효과적인 설명자입니다. 주니어 엔지니어들이 변경을 요청하기 전에 Claude에게 파일과 그 호출 사이트를 설명하도록 요청하도록 권장합니다. | "파일을 설명하고 어디서 호출되는지 보여주세요"를 함께 실행합니다. |

202| "나는 한 번 시도했는데 환각했습니다." | 이것은 보통 모델 문제보다는 맥락 문제입니다. @-멘션 관련 파일, `/init` 실행, 그리고 실제 오류 출력 제공은 보통 이를 해결합니다. | 적절한 `@`-맥락으로 원래 프롬프트를 다시 실행합니다. |202| "나는 한 번 시도했는데 환각했습니다." | 이것은 보통 모델 문제보다는 맥락 문제입니다. @-멘션 관련 파일, `/init` 실행, 그리고 실제 오류 출력 제공은 보통 이를 해결합니다. | 적절한 `@`-맥락으로 원래 프롬프트를 다시 실행합니다. |

203| "우리는 다른 도구를 배울 시간이 없습니다." | Claude Code는 플랫폼이 아니라 터미널 명령입니다. 첫 번째 세션 내에서 가치를 반환하지 않으면, 이를 옆에 두는 것이 합리적입니다. | 2분 설치 후 하나의 실제 버그. |203| "우리는 다른 도구를 배울 시간이 없습니다." | Claude Code는 플랫폼이 아니라 터미널 명령입니다. 첫 번째 세션 내에서 가치를 반환하지 않으면, 이를 옆에 두는 것이 합리적입니다. | 2분 설치 후 하나의 실제 버그. |


211| 기법 | 적용 방법 |211| 기법 | 적용 방법 |

212| - | - |212| - | - |

213| 올바른 맥락 제공 | `@file` 또는 `@directory/` 참조를 사용하거나, 오류 또는 로그 출력을 직접 붙여넣습니다. 관련 맥락을 제공하는 것이 정교한 프롬프팅보다 더 효과적입니다. |213| 올바른 맥락 제공 | `@file` 또는 `@directory/` 참조를 사용하거나, 오류 또는 로그 출력을 직접 붙여넣습니다. 관련 맥락을 제공하는 것이 정교한 프롬프팅보다 더 효과적입니다. |

214| 편집 전에 계획 검토 | `Shift+Tab`을 눌러 plan mode에 들어갑니다. Claude는 실행하기 전에 승인을 위해 의도된 변경을 설명합니다. |214| 편집 전에 계획 검토 | `Shift+Tab`을 눌러 플랜 모드에 들어갑니다. Claude는 소스를 편집하지 않고 조사한 후 변경 사항을 제안합니다. |

215| 저장소를 가르치기 | `/init`을 실행하여 `CLAUDE.md` 파일을 생성한 후, 규칙, 테스트 명령, 그리고 수정하면 안 되는 디렉토리를 추가합니다. [Memory](/docs/ko/memory)를 참조합니다. |215| 저장소를 가르치기 | `/init`을 실행하여 `CLAUDE.md` 파일을 생성한 후, 규칙, 테스트 명령, 그리고 수정하면 안 되는 디렉토리를 추가합니다. [Memory](/docs/ko/memory)를 참조합니다. |

216| 워크플로우 재사용 | `.claude/skills/<name>/`에 `SKILL.md` 파일을 저장하여 전체 팀이 사용할 수 있는 `/name` 스킬을 만듭니다. [Skills](/docs/ko/skills)를 참조합니다. |216| 워크플로우 재사용 | `.claude/skills/<name>/`에 `SKILL.md` 파일을 저장하여 전체 팀이 사용할 수 있는 `/name` 스킬을 만듭니다. [Skills](/docs/ko/skills)를 참조합니다. |

217| 긴 작업 중에 정보 유지 | Stop hook을 구성하여 오래 실행되는 작업이 완료될 때 데스크톱 알림을 받습니다. [Hooks](/docs/ko/hooks-guide)를 참조합니다. |217| 긴 작업 중에 정보 유지 | Stop hook을 구성하여 오래 실행되는 작업이 완료될 때 데스크톱 알림을 받습니다. [Hooks](/docs/ko/hooks-guide)를 참조합니다. |

channels.md +1 −1

Details

349 349 

350빈 배열을 설정하면 허용 목록의 모든 채널 플러그인을 차단하지만 `--dangerously-load-development-channels`는 여전히 로컬 테스트를 위해 이를 우회할 수 있습니다. 개발 플래그를 포함한 채널을 완전히 차단하려면 대신 `channelsEnabled`를 설정하지 않은 상태로 두세요.350빈 배열을 설정하면 허용 목록의 모든 채널 플러그인을 차단하지만 `--dangerously-load-development-channels`는 여전히 로컬 테스트를 위해 이를 우회할 수 있습니다. 개발 플래그를 포함한 채널을 완전히 차단하려면 대신 `channelsEnabled`를 설정하지 않은 상태로 두세요.

351 351 

352이 설정에는 `channelsEnabled: true`가 필요합니다. 사용자가 `--channels`에 조직 목록에 없는 플러그인을 전달하면 Claude Code가 정상적으로 시작되지만 채널이 등록되지 않으며 시작 알림이 플러그인이 조직의 승인된 목록에 없음을 설명합니다. `MCP_PROTOCOL_NEGOTIATION`을 v2 MCP 클라이언트 런타임에서 `auto`로 설정하면 Claude Code가 [프로토콜 개정 2026-07-28을 협상하는 채널 서버를 등록하지 않기](/docs/ko/mcp#push-messages-with-channels) 때문에 채널이 등록되지 않을 수도 있습니다.352이 설정에는 `channelsEnabled: true`가 필요합니다. 사용자가 `--channels`에 조직 목록에 없는 플러그인을 전달하면 Claude Code가 정상적으로 시작되지만 채널이 등록되지 않으며 시작 알림이 플러그인이 조직의 승인된 목록에 없음을 설명합니다. v2 MCP 클라이언트 런타임에서는 Claude Code가 [프로토콜 개정 2026-07-28을 협상하는 채널 서버를 등록하지 않기](/docs/ko/mcp#push-messages-with-channels) 때문에 채널이 등록되지 않을 수도 있습니다.

353 353 

354<h2 id="research-preview">354<h2 id="research-preview">

355 연구 미리보기355 연구 미리보기

chrome.md +1 −1

Details

130VS Code 세션에서 Claude Code가 브라우저 작업 전에 확인을 요청하는지는 세션이 브라우저에 연결된 방식에 따라 달라집니다:130VS Code 세션에서 Claude Code가 브라우저 작업 전에 확인을 요청하는지는 세션이 브라우저에 연결된 방식에 따라 달라집니다:

131 131 

132* **`@browser`를 입력한 경우**: Claude Code가 원래 확인을 요청했을 각 브라우저 작업을 확장 프로그램이 승인합니다.132* **`@browser`를 입력한 경우**: Claude Code가 원래 확인을 요청했을 각 브라우저 작업을 확장 프로그램이 승인합니다.

133* **[기본적으로 활성화](#enable-chrome-by-default) 설정으로 시작 시 연결된 경우**: 해당 세션에서 `@browser`를 입력하기 전까지 Claude Code는 Manual, Edit automatically, Auto, Bypass permissions 모드에서 브라우저 작업 전에 확인을 요청합니다.133* **[기본적으로 활성화](#enable-chrome-by-default) 설정으로 시작 시 연결된 경우**: 해당 세션에서 `@browser`를 입력하기 전까지 Claude Code는 Manual, Edit automatically, Auto, Bypass permissions 모드에서 허용하지 않은 사이트에 대한 브라우저 작업 전에 확인을 요청합니다.

134 134 

135<h3 id="browser-tools-in-plan-mode">135<h3 id="browser-tools-in-plan-mode">

136 플랜 모드의 브라우저 도구136 플랜 모드의 브라우저 도구

Details

79| 필드 | 필수 | 설명 |79| 필드 | 필수 | 설명 |

80| - | - | - |80| - | - | - |

81| `issuer` | 예 | OIDC 검색 기본입니다. `/.well-known/openid-configuration`에서 검색을 제공해야 합니다. 프로덕션에서는 HTTPS를 사용하세요. 게이트웨이는 `http://` 발급자를 수락합니다. `http://localhost:8081` 같은 루프백 발급자는 `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`이 게이트웨이의 환경에 설정되지 않으면 [SSRF 가드](/docs/ko/claude-apps-gateway-deploy#threat-model-summary)에 의해 거부됩니다. |81| `issuer` | 예 | OIDC 검색 기본입니다. `/.well-known/openid-configuration`에서 검색을 제공해야 합니다. 프로덕션에서는 HTTPS를 사용하세요. 게이트웨이는 `http://` 발급자를 수락합니다. `http://localhost:8081` 같은 루프백 발급자는 `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`이 게이트웨이의 환경에 설정되지 않으면 [SSRF 가드](/docs/ko/claude-apps-gateway-deploy#threat-model-summary)에 의해 거부됩니다. |

82| `client_id` / `client_secret` | 예 | OAuth 클라이언트 등록에서 가져옵니다. |82| `client_id` | 예 | OAuth 클라이언트 등록에서 가져옵니다. |

83| `client_secret` | `token_endpoint_auth_method`가 `private_key_jwt`가 아닌 경우 필수 | OAuth 클라이언트 등록에서 가져옵니다. [인증서 클라이언트 인증](#certificate-client-authentication)을 사용할 때는 생략합니다. |

83| `allowed_email_domains` | 아니오 | `email` 클레임이 이 도메인 중 하나에 없는 id\_token을 거부합니다(대소문자 구분 안 함). 다중 테넌트 IdP 잘못된 구성에 대한 심층 방어입니다. 이 설정과 무관하게 `email_verified` 클레임이 명시적으로 `false`인 id\_token은 항상 거부됩니다. |84| `allowed_email_domains` | 아니오 | `email` 클레임이 이 도메인 중 하나에 없는 id\_token을 거부합니다(대소문자 구분 안 함). 다중 테넌트 IdP 잘못된 구성에 대한 심층 방어입니다. 이 설정과 무관하게 `email_verified` 클레임이 명시적으로 `false`인 id\_token은 항상 거부됩니다. |

84| `allowed_groups` | 아니오 | 로그인을 이 IdP 그룹의 멤버로 제한하고 `groups_claim`에 대해 일치시킵니다. 허용된 이메일 도메인에 있지만 이 그룹 중 어느 것도 아닌 사용자는 거부됩니다. IdP가 그룹 클레임을 내보내야 합니다. 일치는 해당 클레임의 값에 대한 정확한 대소문자 구분 문자열 비교이며 게이트웨이는 중첩된 그룹을 확장하지 않습니다. 하위 그룹의 멤버를 허용하려면 여기에 하위 그룹을 나열하거나 IdP를 구성하여 평탄화된 멤버십을 내보냅니다. |85| `allowed_groups` | 아니오 | 로그인을 이 IdP 그룹의 멤버로 제한하고 `groups_claim`에 대해 일치시킵니다. 허용된 이메일 도메인에 있지만 이 그룹 중 어느 것도 아닌 사용자는 거부됩니다. IdP가 그룹 클레임을 내보내야 합니다. 일치는 해당 클레임의 값에 대한 정확한 대소문자 구분 문자열 비교이며 게이트웨이는 중첩된 그룹을 확장하지 않습니다. 하위 그룹의 멤버를 허용하려면 여기에 하위 그룹을 나열하거나 IdP를 구성하여 평탄화된 멤버십을 내보냅니다. |

85| `groups_claim` | 아니오 | 어느 id\_token 클레임이 그룹 멤버십을 전달하는지입니다. 기본값 `groups`. Microsoft Entra는 `roles` 아래에 앱 역할을 내보냅니다. 평면 키 또는 중첩된 클레임에 대해 `/resource_access/gateway/roles` 같은 RFC 6901 JSON 포인터를 수락합니다. |86| `groups_claim` | 아니오 | 어느 id\_token 클레임이 그룹 멤버십을 전달하는지입니다. 기본값 `groups`. Microsoft Entra는 `roles` 아래에 앱 역할을 내보냅니다. 평면 키 또는 중첩된 클레임에 대해 `/resource_access/gateway/roles` 같은 RFC 6901 JSON 포인터를 수락합니다. |


91| `userinfo_fallback` | 아니오 | id\_token이 이메일 또는 그룹을 생략할 때 `/userinfo`에서 가져옵니다. Keycloak 경량 액세스 토큰, Okta org 서버 및 ADFS 최소 토큰에 필요합니다. id\_token은 권위 있는 상태로 유지됩니다. userinfo는 간격만 채웁니다. 기본값 `false`. |92| `userinfo_fallback` | 아니오 | id\_token이 이메일 또는 그룹을 생략할 때 `/userinfo`에서 가져옵니다. Keycloak 경량 액세스 토큰, Okta org 서버 및 ADFS 최소 토큰에 필요합니다. id\_token은 권위 있는 상태로 유지됩니다. userinfo는 간격만 채웁니다. 기본값 `false`. |

92| `use_pkce` | 아니오 | 인증 요청에 PKCE(S256) 챌린지를 보냅니다. 기본값 `true`. IdP가 이 기밀 클라이언트에 대해 PKCE를 거부하는 경우에만 `false`로 설정합니다. |93| `use_pkce` | 아니오 | 인증 요청에 PKCE(S256) 챌린지를 보냅니다. 기본값 `true`. IdP가 이 기밀 클라이언트에 대해 PKCE를 거부하는 경우에만 `false`로 설정합니다. |

93| `clock_skew_seconds` | 아니오 | id\_token 시간 클레임을 검증할 때 클록 드리프트를 허용합니다. 기본값 `0`으로 엄격합니다. 로그인 직후 호스트/IdP 클록 스큐로 인해 "token expired / not yet valid" 오류가 표시되면 이를 높입니다. |94| `clock_skew_seconds` | 아니오 | id\_token 시간 클레임을 검증할 때 클록 드리프트를 허용합니다. 기본값 `0`으로 엄격합니다. 로그인 직후 호스트/IdP 클록 스큐로 인해 "token expired / not yet valid" 오류가 표시되면 이를 높입니다. |

94| `token_endpoint_auth_method` | 아니오 | 토큰 엔드포인트 인증 방법을 재정의합니다. `client_secret_basic` 또는 `client_secret_post`를 수락합니다. 기본적으로 자동 협상됩니다. |95| `token_endpoint_auth_method` | 아니오 | 게이트웨이가 IdP의 토큰 엔드포인트에 인증하는 방법입니다: `client_secret_basic`, `client_secret_post` 또는 [인증서 클라이언트 인증](#certificate-client-authentication)을 위한 `private_key_jwt`. 기본적으로 게이트웨이는 IdP가 알리는 내용에 따라 두 가지 `client_secret` 방법 중 하나를 선택합니다. |

96| `client_assertion` | `private_key_jwt` 사용 시 필수 | `private_key_pem`과 `certificate_pem`을 포함하는 블록으로, [인증서 클라이언트 인증](#certificate-client-authentication)을 위한 개인 키와 인증서입니다. v2.1.284 이상이 필요합니다. |

95| `id_token_signed_response_alg` | 아니오 | 예상되는 id\_token 서명 알고리즘입니다. 기본값 `RS256`. ES256, PS256 또는 EdDSA로 서명하는 IdP에 대해 설정합니다. |97| `id_token_signed_response_alg` | 아니오 | 예상되는 id\_token 서명 알고리즘입니다. 기본값 `RS256`. ES256, PS256 또는 EdDSA로 서명하는 IdP에 대해 설정합니다. |

96| `additional_authorized_parties` | 아니오 | `client_id` 외에 수락할 추가 `azp` 값입니다. Keycloak 브로커 및 토큰 교환 흐름의 경우입니다. |98| `additional_authorized_parties` | 아니오 | `client_id` 외에 수락할 추가 `azp` 값입니다. Keycloak 브로커 및 토큰 교환 흐름의 경우입니다. |

97| `discovery_url` | 아니오 | 이 URL에서 검색 문서를 가져옵니다. `issuer`에서 파생시키는 대신 발급자 호스트를 다시 작성하는 프록시 뒤의 IdP의 경우입니다. 경로는 `/.well-known/`을 포함해야 합니다. |99| `discovery_url` | 아니오 | 이 URL에서 검색 문서를 가져옵니다. `issuer`에서 파생시키는 대신 발급자 호스트를 다시 작성하는 프록시 뒤의 IdP의 경우입니다. 경로는 `/.well-known/`을 포함해야 합니다. |


99| `form_action_origins` | 아니오 | `/device` 페이지의 `Content-Security-Policy: form-action` 지시문에 대한 추가 원본입니다. 게이트웨이는 이미 `'self'`와 검색된 `authorization_endpoint` 원본을 허용하지만 Chrome은 전체 리디렉션 체인에 대해 `form-action`을 적용합니다. IdP가 Azure AD가 ADFS로 페더레이션되거나 허브-스포크 Okta 또는 회사 SSO 인터셉터 같은 두 번째 호스트를 통해 리디렉션하는 경우 인증 요청이 리디렉션될 수 있는 모든 원본을 나열합니다. |101| `form_action_origins` | 아니오 | `/device` 페이지의 `Content-Security-Policy: form-action` 지시문에 대한 추가 원본입니다. 게이트웨이는 이미 `'self'`와 검색된 `authorization_endpoint` 원본을 허용하지만 Chrome은 전체 리디렉션 체인에 대해 `form-action`을 적용합니다. IdP가 Azure AD가 ADFS로 페더레이션되거나 허브-스포크 Okta 또는 회사 SSO 인터셉터 같은 두 번째 호스트를 통해 리디렉션하는 경우 인증 요청이 리디렉션될 수 있는 모든 원본을 나열합니다. |

100| `ca_cert_pem` | 아니오 | PEM 인코딩된 CA 인증서 자체이며 파일 경로가 아닙니다. IdP 요청에만 시스템 신뢰 저장소를 대체합니다. 마운트된 파일을 로드하려면 `${file:/etc/gateway/idp-ca.pem}`을 작성합니다. 회사 PKI 뒤의 Keycloak 또는 Dex에 사용합니다. |102| `ca_cert_pem` | 아니오 | PEM 인코딩된 CA 인증서 자체이며 파일 경로가 아닙니다. IdP 요청에만 시스템 신뢰 저장소를 대체합니다. 마운트된 파일을 로드하려면 `${file:/etc/gateway/idp-ca.pem}`을 작성합니다. 회사 PKI 뒤의 Keycloak 또는 Dex에 사용합니다. |

101 103 

104<h4 id="certificate-client-authentication">

105 인증서 클라이언트 인증

106</h4>

107 

108Microsoft Entra가 인증서 자격 증명으로 하는 것처럼 ID 공급자가 클라이언트 비밀 대신 인증서로 OAuth 클라이언트를 인증하는 경우 `token_endpoint_auth_method: private_key_jwt`를 설정합니다. 게이트웨이 서버에서 Claude Code v2.1.284 이상이 필요합니다.

109 

110이 구성에서 게이트웨이는 비밀을 보내지 않습니다. 개발자가 로그인할 때와 게이트웨이가 세션을 새로 고칠 때마다 인증서의 개인 키로 서명된 단기 JWT로 IdP의 토큰 엔드포인트에 인증합니다. JWT는 RS256으로 서명되며 `kid`가 아닌 `x5t` 및 `x5t#S256` 지문 헤더로 인증서를 식별합니다. IdP는 지문으로 등록된 인증서를 찾을 수 있어야 합니다.

111 

112<Steps>

113 <Step title="키와 인증서 만들기">

114 PKCS#8 또는 PKCS#1 PEM 형식으로 최소 2048비트의 암호화되지 않은 RSA 개인 키와 이에 대한 인증서를 만듭니다. 게이트웨이는 이 조건을 충족하지 않는 키로는 시작을 거부합니다. 이 `openssl` 명령은 1년 동안 유효한 자체 서명 인증서와 함께 이러한 키를 만듭니다:

115 

116 ```bash theme={null}

117 openssl req -x509 -newkey rsa:2048 -nodes -keyout idp-client.key -out idp-client.crt -days 365 -subj "/CN=claude-gateway"

118 ```

119 

120 이 명령은 현재 디렉터리에 `idp-client.key`와 `idp-client.crt`를 작성합니다. 두 파일을 게이트웨이가 읽을 수 있는 위치에 복사하거나 마운트합니다. 3단계의 예제는 `/etc/gateway/`를 사용합니다.

121 </Step>

122 

123 <Step title="IdP에 인증서 업로드">

124 개인 키가 아닌 인증서를 IdP의 게이트웨이 앱 등록에 업로드합니다.

125 </Step>

126 

127 <Step title="gateway.yaml에 키와 인증서 추가">

128 `client_assertion` 블록에서 게이트웨이에 개인 키와 인증서를 제공합니다. `client_secret`은 생략합니다. `private_key_jwt`와 함께 설정되면 게이트웨이가 시작을 거부하기 때문입니다. 이 `oidc` 블록은 인증서로 Microsoft Entra 테넌트에 게이트웨이를 인증합니다:

129 

130 ```yaml theme={null}

131 oidc:

132 issuer: https://login.microsoftonline.com/<tenant-id>/v2.0

133 client_id: <application-id>

134 token_endpoint_auth_method: private_key_jwt

135 client_assertion:

136 private_key_pem: ${file:/etc/gateway/idp-client.key}

137 certificate_pem: ${file:/etc/gateway/idp-client.crt}

138 ```

139 

140 두 값 모두 파일 경로가 아닌 PEM 콘텐츠이므로 예제처럼 `${file:/path}`로 마운트된 파일을 로드합니다. `certificate_pem`이 체인의 나머지 없이 공개 키가 `private_key_pem`과 일치하는 단일 PEM 인증서가 아니면 게이트웨이는 시작을 거부합니다.

141 </Step>

142 

143 <Step title="게이트웨이를 재시작하고 부팅 로그 확인">

144 게이트웨이를 재시작하고 부팅 로그에서 다음 줄을 찾습니다:

145 

146 ```text theme={null}

147 [gateway] 2026-10-01T23:07:40.512Z info oidc: client authentication private_key_jwt; certificate CN=claude-gateway, SHA-1 thumbprint DE92821854EE8BAA1D98C758FAA04AABE80B9F57, expires Oct 1 23:07:31 2027 GMT

148 ```

149 

150 SHA-1 지문을 업로드한 인증서에 대해 IdP가 표시하는 지문과 비교합니다. 인증서가 만료되었거나 아직 유효하지 않으면 게이트웨이는 계속 시작되지만 인증서를 교체할 때까지 로그인과 새로 고침이 실패한다는 경고를 기록합니다. IdP가 인증서를 수락하는지 확인하려면 개발자 한 명이 게이트웨이를 통해 로그인하도록 합니다.

151 </Step>

152</Steps>

153 

154<h4 id="rotate-the-client-certificate">

155 클라이언트 인증서 회전

156</h4>

157 

158게이트웨이는 부팅 시 키와 인증서를 한 번 읽으므로 변경된 파일은 재시작 후에만 적용됩니다. IdP에 없는 인증서를 제시하는 토큰 요청이 없도록 다음 순서로 회전합니다:

159 

1601. 새 인증서를 이전 인증서와 함께 IdP에 업로드합니다.

1612. `gateway.yaml`이 로드하는 키와 인증서 파일을 교체한 후 게이트웨이를 재시작합니다.

1623. IdP에서 이전 인증서를 제거합니다.

163 

102<h4 id="idp-requests-through-a-forward-proxy">164<h4 id="idp-requests-through-a-forward-proxy">

103 전방 프록시를 통한 IdP 요청165 전방 프록시를 통한 IdP 요청

104</h4>166</h4>


1224| - | - | - | - |1286| - | - | - | - |

1225| `access_control` | `allow_cidrs` / `deny_cidrs` | 비어 있음 | `trusted_proxies` 해석 이후의 클라이언트 주소를 기준으로 하는 인바운드 IP 허용/거부입니다. `deny_cidrs`를 먼저 확인하며, 여기에 일치하는 클라이언트는 `allow_cidrs`에도 일치하더라도 거부됩니다. `allow_cidrs`가 비어 있지 않으면 게이트웨이는 기본 거부로 동작합니다. `/healthz` 및 `/readyz`는 `allow_cidrs`에서 제외됩니다. 신뢰할 수 있는 프록시가 IP 주소가 아닌 `X-Forwarded-For` 항목을 보내면 실제 클라이언트를 알 수 없으며, 게이트웨이는 확인할 사항을 안내하는 경고를 한 번 로그에 기록합니다. 두 목록 중 하나라도 해당 요청에 적용되면 `403`과 감사 사유 `xff_unparseable`로 요청을 거부합니다. 어느 목록도 적용되지 않으면 요청을 처리하며, IP별 속도 제한 및 감사에 프록시 자체의 주소를 클라이언트 IP로 사용합니다. |1287| `access_control` | `allow_cidrs` / `deny_cidrs` | 비어 있음 | `trusted_proxies` 해석 이후의 클라이언트 주소를 기준으로 하는 인바운드 IP 허용/거부입니다. `deny_cidrs`를 먼저 확인하며, 여기에 일치하는 클라이언트는 `allow_cidrs`에도 일치하더라도 거부됩니다. `allow_cidrs`가 비어 있지 않으면 게이트웨이는 기본 거부로 동작합니다. `/healthz` 및 `/readyz`는 `allow_cidrs`에서 제외됩니다. 신뢰할 수 있는 프록시가 IP 주소가 아닌 `X-Forwarded-For` 항목을 보내면 실제 클라이언트를 알 수 없으며, 게이트웨이는 확인할 사항을 안내하는 경고를 한 번 로그에 기록합니다. 두 목록 중 하나라도 해당 요청에 적용되면 `403`과 감사 사유 `xff_unparseable`로 요청을 거부합니다. 어느 목록도 적용되지 않으면 요청을 처리하며, IP별 속도 제한 및 감사에 프록시 자체의 주소를 클라이언트 IP로 사용합니다. |

1226| `limits` | `max_request_bytes` | 32 MiB | 최대 인바운드 요청 본문 크기입니다. 크기를 초과한 요청은 본문이 버퍼링되기 전에 `413`을 받습니다. 큰 파일이나 이미지 요청이 있으면 값을 올립니다. |1288| `limits` | `max_request_bytes` | 32 MiB | 최대 인바운드 요청 본문 크기입니다. 크기를 초과한 요청은 본문이 버퍼링되기 전에 `413`을 받습니다. 큰 파일이나 이미지 요청이 있으면 값을 올립니다. |

1227| `limits` | `max_request_header_bytes` | 설정 안 됨 | 설정하면 크기를 초과한 헤더는 `431`을 반환합니다 |1289| `limits` | `max_request_header_bytes` | 설정 안 됨 | 요청 헤더 전체에 대한 게이트웨이의 256 KiB 제한을 낮춥니다. 제한을 초과한 요청은 `431`을 반환하며, 256 KiB보다 큰 값은 효과가 없습니다. 로그인 후 개발자가 `431`을 받는다면 [로그인 후 요청 헤더가 너무 큼](/docs/ko/claude-apps-gateway-deploy#request-headers-too-large-after-sign-in)을 참조하세요. |

1228| `limits` | `max_url_length` | 설정 안 됨 | 설정하면 너무 긴 URL은 `414`를 반환합니다 |1290| `limits` | `max_url_length` | 설정 안 됨 | 설정하면 너무 긴 URL은 `414`를 반환합니다 |

1229| `timeouts` | `upstream_ttfb_ms` | 120000 | 업스트림의 응답 헤더를 기다리는 최대 시간(첫 바이트까지의 시간)입니다. 이후 응답 본문은 총 경과 시간 제한 없이 스트리밍됩니다. Anthropic 직접 업스트림 경로에 적용되며, 다른 모든 공급자에서는 게이트웨이가 응답이 시작될 때까지 최대 1시간을 기다립니다. |1291| `timeouts` | `upstream_ttfb_ms` | 120000 | 업스트림의 응답 헤더를 기다리는 최대 시간(첫 바이트까지의 시간)입니다. 이후 응답 본문은 총 경과 시간 제한 없이 스트리밍됩니다. Anthropic 직접 업스트림 경로에 적용되며, 다른 모든 공급자에서는 게이트웨이가 응답이 시작될 때까지 최대 1시간을 기다립니다. |

1230| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | 인증되지 않은 디바이스 인가 엔드포인트에 대한 IP별 속도 제한입니다. 공유 송신 IP나 NAT 뒤에 있는 대규모 조직이라면 값을 올립니다. 크기를 정하는 방법은 [대규모 롤아웃](/docs/ko/claude-apps-gateway-deploy#large-rollouts)을 참조하세요. 이 제한은 디바이스 그랜트 로그인 흐름에만 적용되며 `/v1/messages` 추론에는 적용되지 않습니다. [사용자 코드 무차별 대입 방어](/docs/ko/claude-apps-gateway-deploy#user-code-brute-force-resistance)를 참조하세요. |1292| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | 인증되지 않은 디바이스 인가 엔드포인트에 대한 IP별 속도 제한입니다. 공유 송신 IP나 NAT 뒤에 있는 대규모 조직이라면 값을 올립니다. 크기를 정하는 방법은 [대규모 롤아웃](/docs/ko/claude-apps-gateway-deploy#large-rollouts)을 참조하세요. 이 제한은 디바이스 그랜트 로그인 흐름에만 적용되며 `/v1/messages` 추론에는 적용되지 않습니다. [사용자 코드 무차별 대입 방어](/docs/ko/claude-apps-gateway-deploy#user-code-brute-force-resistance)를 참조하세요. |

Details

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

26</h2>26</h2>

27 27 

28단일 리디렉션 URI `https://<gateway>/oauth/callback`을 사용하여 기밀 OAuth/OpenID Connect(OIDC) 웹 애플리케이션을 ID 공급자에 등록하고, 게이트웨이 액세스 권한이 있어야 하는 사용자 또는 그룹에 할당하세요.28단일 리디렉션 URI `https://<gateway>/oauth/callback`을 사용하여 기밀 OAuth/OpenID Connect(OIDC) 웹 애플리케이션을 등록하고, 게이트웨이 액세스 권한이 있어야 하는 사용자 또는 그룹에 할당하세요. 게이트웨이는 등록의 클라이언트 시크릿을 사용하여 IdP에 인증하거나, IdP가 대신 [인증서 자격 증명](/docs/ko/claude-apps-gateway-config#certificate-client-authentication)을 사용하는 경우 등록에 업로드한 인증서를 사용하여 인증합니다.

29 29 

30모든 OIDC 호환 IdP가 작동합니다: Okta, Microsoft Entra ID, Google Workspace, Keycloak, Dex, PingFederate 등. IdP는 세 가지 요구사항을 충족해야 합니다:30모든 OIDC 호환 IdP가 작동합니다: Okta, Microsoft Entra ID, Google Workspace, Keycloak, Dex, PingFederate 등. IdP는 세 가지 요구사항을 충족해야 합니다:

31 31 


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

379* **추론 문제**: 요청된 모델, 구성된 업스트림, 요청에 대한 gateway 감사 로그(어느 업스트림이 제공했는지 및 응답 상태 기록)379* **추론 문제**: 요청된 모델, 구성된 업스트림, 요청에 대한 gateway 감사 로그(어느 업스트림이 제공했는지 및 응답 상태 기록)

380 380 

381gateway stderr에는 감사 이벤트 스트림이 포함되고, 감사 로그는 개발자 신원을 기록하며, 디버그 파일은 개발자 머신의 hook 및 MCP 서버 출력을 기록합니다. 공개 이슈에 게시하기 전에 이를 검토하고 수정하세요.381gateway stderr에는 감사 이벤트 스트림이 포함되고, 감사 로그는 개발자 신원을 기록하며, 디버그 파일은 개발자 머신의 훅 및 MCP 서버 출력을 기록합니다. 공개 이슈에 게시하기 전에 이를 검토하고 수정하세요.

382 382 

383| 증상 | 원인 | 해결 방법 |383| 증상 | 원인 | 해결 방법 |

384| - | - | - |384| - | - | - |

385| 개발자의 `/login`이 **Cloud gateway** 화면 대신 표준 계정 선택기를 표시함 | 해당 머신의 관리 설정에서 `forceLoginMethod` 또는 `forceLoginGatewayUrl`이 설정되지 않음 | [관리 설정 파일](/docs/ko/claude-apps-gateway#set-the-gateway-url)을 기기에 배포하세요. `/login`은 여기서 gateway URL을 읽습니다 |385| 개발자의 `/login`이 **Cloud gateway** 화면 대신 표준 계정 선택기를 표시함 | 해당 머신의 관리형 설정에서 `forceLoginMethod` 또는 `forceLoginGatewayUrl`이 설정되지 않음 | [관리형 설정 파일](/docs/ko/claude-apps-gateway#set-the-gateway-url)을 기기에 배포하세요. `/login`은 여기서 gateway URL을 읽습니다 |

386| 개발자의 요청이 `Not signed in to the Cloud gateway — run /login.`으로 실패함 | 머신의 관리 설정이 `forceLoginMethod: "gateway"` 또는 `forceLoginGatewayUrl`을 설정했고, 세션에 gateway 로그인이 없음. 남은 claude.ai 로그인은 요구사항을 충족하지 않음 | 개발자가 `/login`을 실행하고 gateway 로그인을 완료하도록 하세요. [관리자 정책이 Cloud gateway 로그인을 요구함](/docs/ko/errors#administrator-policy-requires-a-cloud-gateway-sign-in)도 참조하세요. |386| 개발자의 요청이 `Not signed in to the Cloud gateway — run /login.`으로 실패함 | 머신의 관리형 설정이 `forceLoginMethod: "gateway"` 또는 `forceLoginGatewayUrl`을 설정했고, 세션에 gateway 로그인이 없음. 남은 claude.ai 로그인은 요구사항을 충족하지 않음 | 개발자가 `/login`을 실행하고 gateway 로그인을 완료하도록 하세요. [관리자 정책이 Cloud gateway 로그인을 요구함](/docs/ko/errors#administrator-policy-requires-a-cloud-gateway-sign-in)도 참조하세요. |

387| Claude Desktop이 부트스트랩 구성을 가져올 수 없다고 보고함 | `/user/bootstrap`이 404를 반환함: 사용자와 일치하는 정책이 `desktop` 키를 포함하지 않거나 일치하는 정책이 없음. gateway 감사 로그는 각 거부를 `desktop_bootstrap.denied`로 이유와 함께 기록함 | 사용자와 일치하는 정책 또는 `match: {}` 기본 계층에 `desktop` 블록을 추가하세요. 빈 `desktop: {}`으로 충분합니다. [Claude Desktop 오버레이](/docs/ko/claude-apps-gateway-config#claude-desktop-overlay)를 참조하세요. |387| Claude Desktop이 부트스트랩 구성을 가져올 수 없다고 보고함 | `/user/bootstrap`이 404를 반환함: 사용자와 일치하는 정책이 `desktop` 키를 포함하지 않거나 일치하는 정책이 없음. gateway 감사 로그는 각 거부를 `desktop_bootstrap.denied`로 이유와 함께 기록함 | 사용자와 일치하는 정책 또는 `match: {}` 기본 계층에 `desktop` 블록을 추가하세요. 빈 `desktop: {}`으로 충분합니다. [Claude Desktop 오버레이](/docs/ko/claude-apps-gateway-config#claude-desktop-overlay)를 참조하세요. |

388| 시작 시 `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.`를 표시함 | 설치된 Claude Code 빌드가 gateway 지원보다 이전 버전임 | 개발자가 Cloud gateway 지원을 포함하는 릴리스로 Claude Code를 업데이트하도록 하세요 |388| 시작 시 `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.`를 표시함 | 설치된 Claude Code 빌드가 gateway 지원보다 이전 버전임 | 개발자가 Cloud gateway 지원을 포함하는 릴리스로 Claude Code를 업데이트하도록 하세요 |

389| 시작이 `Administrator policy requires a Cloud gateway sign-in on this machine`으로 종료됨 | 개발자의 환경이 `ANTHROPIC_API_KEY` 또는 `ANTHROPIC_AUTH_TOKEN`을 설정하거나, 설정이 [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper)를 구성하거나, 이전 Claude Console 로그인의 API 키가 여전히 저장되어 있음 | 해당하는 각각을 지우도록 개발자에게 지시하세요: 변수를 설정 해제하거나, `apiKeyHelper` 항목을 제거하거나, `claude auth logout`을 실행하여 저장된 키를 제거합니다. `CLAUDE_CODE_USE_*`를 사용하여 클라우드 공급자를 선택하는 세션은 로그인 없이 시작됩니다. 다른 모든 세션의 경우 개발자가 `claude`를 시작하고 `/login`으로 로그인하도록 하세요. [관리자 정책이 Cloud gateway 로그인을 요구함](/docs/ko/errors#administrator-policy-requires-a-cloud-gateway-sign-in)도 참조하세요. |389| 시작이 `Administrator policy requires a Cloud gateway sign-in on this machine`으로 종료됨 | 개발자의 환경이 `ANTHROPIC_API_KEY` 또는 `ANTHROPIC_AUTH_TOKEN`을 설정하거나, 설정이 [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper)를 구성하거나, 이전 Claude Console 로그인의 API 키가 여전히 저장되어 있음 | 해당하는 각각을 지우도록 개발자에게 지시하세요: 변수를 설정 해제하거나, `apiKeyHelper` 항목을 제거하거나, `claude auth logout`을 실행하여 저장된 키를 제거합니다. `CLAUDE_CODE_USE_*`를 사용하여 클라우드 공급자를 선택하는 세션은 로그인 없이 시작됩니다. 다른 모든 세션의 경우 개발자가 `claude`를 시작하고 `/login`으로 로그인하도록 하세요. [관리자 정책이 Cloud gateway 로그인을 요구함](/docs/ko/errors#administrator-policy-requires-a-cloud-gateway-sign-in)도 참조하세요. |


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

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

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

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

398| CLI `/login`: `Could not resolve the configured HTTP proxy` | `HTTPS_PROXY` 또는 `HTTP_PROXY`의 호스트명이 개발자 머신에서 확인되지 않음. 일반적으로 회사 네트워크에 연결되지 않았기 때문 | 개발자가 네트워크 또는 VPN에 연결하고 다시 시도하거나 프록시 URL을 수정하도록 하세요 |398| CLI `/login`: `Could not resolve the configured HTTP proxy` | `HTTPS_PROXY` 또는 `HTTP_PROXY`의 호스트명이 개발자 머신에서 확인되지 않음. 일반적으로 회사 네트워크에 연결되지 않았기 때문 | 개발자가 네트워크 또는 VPN에 연결하고 다시 시도하거나 프록시 URL을 수정하도록 하세요 |

399| CLI `/login`: `Could not resolve gateway host <host>` | 머신이 gateway의 내부 DNS 이름을 확인할 수 없음. 일반적으로 회사 네트워크에 없기 때문 | 개발자가 네트워크 또는 VPN에 연결한 후 `/login`을 다시 시도하도록 하세요 |399| CLI `/login`: `Could not resolve gateway host <host>` | 머신이 gateway의 내부 DNS 이름을 확인할 수 없음. 일반적으로 회사 네트워크에 없기 때문 | 개발자가 네트워크 또는 VPN에 연결한 후 `/login`을 다시 시도하도록 하세요 |

400| 부트가 `store.postgres_url`을 이름으로 지정하는 구성 검증 오류로 종료됨 | Postgres가 구성되지 않음. gateway는 Postgres를 요구함 | `store.postgres_url`을 설정하세요. 로컬 개발의 경우 일회용 컨테이너를 사용하세요: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |400| 부트가 `store.postgres_url`을 이름으로 지정하는 구성 검증 오류로 종료됨 | Postgres가 구성되지 않음. gateway는 Postgres를 요구함 | `store.postgres_url`을 설정하세요. 로컬 개발의 경우 일회용 컨테이너를 사용하세요: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |


405| `/oauth/callback`이 "Sign-in could not be completed"를 표시함 | 이메일 도메인이 거부됨, id\_token 검증 실패, 또는 `email_verified`가 명시적으로 `false`이며 gateway는 항상 재정의 없이 거부함 | `allowed_email_domains`을 확인하고 IdP가 확인된 `email` 클레임을 반환하는지 확인하세요. `email_verified: false`의 경우 IdP 측 검증을 수정하세요. IdP가 다른 클레임 이름 아래에서 이메일을 내보내는 경우 `oidc.email_claim`을 설정하세요. |405| `/oauth/callback`이 "Sign-in could not be completed"를 표시함 | 이메일 도메인이 거부됨, id\_token 검증 실패, 또는 `email_verified`가 명시적으로 `false`이며 gateway는 항상 재정의 없이 거부함 | `allowed_email_domains`을 확인하고 IdP가 확인된 `email` 클레임을 반환하는지 확인하세요. `email_verified: false`의 경우 IdP 측 검증을 수정하세요. IdP가 다른 클레임 이름 아래에서 이메일을 내보내는 경우 `oidc.email_claim`을 설정하세요. |

406| 로그: `token exchange failed request_id=<id>: id_token missing email claim` | IdP가 기본적으로 id\_token에 `email`을 포함하지 않음. 이 거부는 `allowed_email_domains`이 설정된 경우에만 발생함. 없으면 누락된 이메일이 이메일 없이 세션을 발행함 | IdP를 구성하여 id\_token에 `email`을 내보내도록 하세요. Okta: 사용자 정의 권한 부여 서버의 ID 토큰 클레임에 `email`을 추가하세요. Entra: 앱 등록에서 `email`을 선택적 클레임으로 추가하세요. PingFederate: `email`을 내보내는 OpenID Connect 정책을 활성화하세요. IdP가 userinfo 엔드포인트에서 `email`을 제공하지만 id\_token에 포함하지 않는 경우(예: Okta org 권한 부여 서버) `oidc.userinfo_fallback: true`를 설정하세요. |406| 로그: `token exchange failed request_id=<id>: id_token missing email claim` | IdP가 기본적으로 id\_token에 `email`을 포함하지 않음. 이 거부는 `allowed_email_domains`이 설정된 경우에만 발생함. 없으면 누락된 이메일이 이메일 없이 세션을 발행함 | IdP를 구성하여 id\_token에 `email`을 내보내도록 하세요. Okta: 사용자 정의 권한 부여 서버의 ID 토큰 클레임에 `email`을 추가하세요. Entra: 앱 등록에서 `email`을 선택적 클레임으로 추가하세요. PingFederate: `email`을 내보내는 OpenID Connect 정책을 활성화하세요. IdP가 userinfo 엔드포인트에서 `email`을 제공하지만 id\_token에 포함하지 않는 경우(예: Okta org 권한 부여 서버) `oidc.userinfo_fallback: true`를 설정하세요. |

407| 로그: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, 개발자가 매 `session.ttl_hours`마다 `Cloud gateway session expired`를 봄 | IdP가 새로 고침 토큰을 수락했지만 함께 id\_token을 반환하지 않았으므로 gateway가 IdP의 userinfo 엔드포인트에 사용자의 클레임을 요청했습니다. IdP가 새로 고쳐진 액세스 토큰을 거기서 거부했습니다. gateway가 `temporarily_unavailable`으로 응답하므로 Claude Code는 새로 고침 토큰을 유지하지만 세션을 갱신할 수 없습니다. v2.1.260 이전의 gateway 버전은 `(at …)` 세부 정보 없이 동일한 줄을 기록합니다. | [`oidc.scope_on_refresh: true`](/docs/ko/claude-apps-gateway-config#oidc)를 설정하세요. gateway v2.1.260 이상에서 사용 가능하므로 새로 고침 요청이 `openid`를 다시 요청합니다. Okta와 같은 일부 IdP는 요청할 때만 새로 고침 시 id\_token을 반환합니다. PingFederate에서는 대신 **Applications > OAuth > OpenID Connect Policy Management** 아래에서 **Return ID Token On Refresh Grant**를 활성화하세요. 키는 PingFederate의 동작을 변경하지 않습니다. 여전히 생략하는 다른 IdP의 경우 userinfo 엔드포인트가 새로 고침으로 발급된 액세스 토큰을 수락하는지 확인하세요. 임시 방편으로 [`session.ttl_hours`](/docs/ko/claude-apps-gateway-config#session)를 높이세요. 프로비저닝 해제 트레이드오프는 [Identity provider setup](#identity-provider-setup)을 참조하세요. |407| 로그: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, 개발자가 매 `session.ttl_hours`마다 `Cloud gateway session expired`를 봄 | IdP가 새로 고침 토큰을 수락했지만 함께 id\_token을 반환하지 않았으므로 gateway가 IdP의 userinfo 엔드포인트에 사용자의 클레임을 요청했습니다. IdP가 새로 고쳐진 액세스 토큰을 거기서 거부했습니다. gateway가 `temporarily_unavailable`으로 응답하므로 Claude Code는 새로 고침 토큰을 유지하지만 세션을 갱신할 수 없습니다. v2.1.260 이전의 gateway 버전은 `(at …)` 세부 정보 없이 동일한 줄을 기록합니다. | [`oidc.scope_on_refresh: true`](/docs/ko/claude-apps-gateway-config#oidc)를 설정하세요. gateway v2.1.260 이상에서 사용 가능하므로 새로 고침 요청이 `openid`를 다시 요청합니다. Okta와 같은 일부 IdP는 요청할 때만 새로 고침 시 id\_token을 반환합니다. PingFederate에서는 대신 **Applications > OAuth > OpenID Connect Policy Management** 아래에서 **Return ID Token On Refresh Grant**를 활성화하세요. 키는 PingFederate의 동작을 변경하지 않습니다. 여전히 생략하는 다른 IdP의 경우 userinfo 엔드포인트가 새로 고침으로 발급된 액세스 토큰을 수락하는지 확인하세요. 임시 방편으로 [`session.ttl_hours`](/docs/ko/claude-apps-gateway-config#session)를 높이세요. 프로비저닝 해제 트레이드오프는 [Identity provider setup](#identity-provider-setup)을 참조하세요. |

408| 개발자가 로그인한 후 해당 세션의 모든 요청이 `431` 오류로 실패함 | 모든 요청의 `Authorization` 헤더에 있는 세션 토큰이 개발자의 IdP 그룹을 나열하므로, 많은 그룹에 속한 개발자의 경우 헤더 합계가 게이트웨이가 허용하는 크기를 초과할 수 있음 | 어떤 제한이 적용되는지와 무엇을 변경해야 하는지는 [로그인 후 요청 헤더가 너무 큼](#request-headers-too-large-after-sign-in)을 참조하세요 |

408| 모든 Amazon Bedrock 요청이 502를 반환함. 로그가 `Could not load credentials from any providers`를 표시함 | EC2에서 IMDSv2의 기본 홉 제한 1이 컨테이너 내부의 인스턴스 메타데이터 요청을 차단함. 부트 및 `/readyz`는 AWS SDK가 클라이언트 구성이 아닌 첫 번째 요청에서 인스턴스 자격 증명을 확인하므로 어쨌든 통과함 | `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`로 홉 제한을 높이거나 시작 템플릿에서 설정하세요. 변경 사항은 인스턴스의 모든 컨테이너에 적용됩니다. 가능한 경우 ECS 작업 역할을 선호하세요. 이는 ECS 컨테이너 자격 증명 엔드포인트에서 자격 증명을 읽고 변경을 완전히 피하거나, 노출을 제한하기 위해 전용 gateway 인스턴스에 변경을 적용하세요. |409| 모든 Amazon Bedrock 요청이 502를 반환함. 로그가 `Could not load credentials from any providers`를 표시함 | EC2에서 IMDSv2의 기본 홉 제한 1이 컨테이너 내부의 인스턴스 메타데이터 요청을 차단함. 부트 및 `/readyz`는 AWS SDK가 클라이언트 구성이 아닌 첫 번째 요청에서 인스턴스 자격 증명을 확인하므로 어쨌든 통과함 | `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`로 홉 제한을 높이거나 시작 템플릿에서 설정하세요. 변경 사항은 인스턴스의 모든 컨테이너에 적용됩니다. 가능한 경우 ECS 작업 역할을 선호하세요. 이는 ECS 컨테이너 자격 증명 엔드포인트에서 자격 증명을 읽고 변경을 완전히 피하거나, 노출을 제한하기 위해 전용 gateway 인스턴스에 변경을 적용하세요. |

409| 피크 로드에서 응답이 시작되기 느리거나 중단된 것처럼 보이거나, 업스트림이 정상인데도 502 `all upstreams failed`로 실패함 | 복제본이 업스트림으로 한 번에 보내는 것보다 더 많은 요청을 열어 두었으므로 추가 요청은 gateway 내부에서 대기함. `provider: anthropic` 업스트림에서 `timeouts.upstream_ttfb_ms`보다 오래 대기하는 요청은 해당 업스트림을 포기하며, 이후 업스트림이 제공하지 않으면 502를 생성함. 로그는 `client requests are open`을 포함하는 경고를 표시함. | 복제본을 추가하거나 각 복제본의 제한을 높이세요. [동시 업스트림 요청](#concurrent-upstream-requests)을 참조하세요. |410| 피크 로드에서 응답이 시작되기 느리거나 중단된 것처럼 보이거나, 업스트림이 정상인데도 502 `all upstreams failed`로 실패함 | 복제본이 업스트림으로 한 번에 보내는 것보다 더 많은 요청을 열어 두었으므로 추가 요청은 gateway 내부에서 대기함. `provider: anthropic` 업스트림에서 `timeouts.upstream_ttfb_ms`보다 오래 대기하는 요청은 해당 업스트림을 포기하며, 이후 업스트림이 제공하지 않으면 502를 생성함. 로그는 `client requests are open`을 포함하는 경고를 표시함. | 복제본을 추가하거나 각 복제본의 제한을 높이세요. [동시 업스트림 요청](#concurrent-upstream-requests)을 참조하세요. |

410| IdP 오류: unknown or unsupported scope | IdP가 인식하지 못하는 범위를 거부함 | `oidc.scopes`를 정확히 IdP가 수락하는 목록으로 설정하세요. `openid`를 포함해야 합니다. 기본값은 `openid profile email offline_access`입니다. |411| IdP 오류: unknown or unsupported scope | IdP가 인식하지 못하는 범위를 거부함 | `oidc.scopes`를 정확히 IdP가 수락하는 목록으로 설정하세요. `openid`를 포함해야 합니다. 기본값은 `openid profile email offline_access`입니다. |


422 423 

423Claude Code가 gateway 로그인 후 `couldn't load your organization's managed settings`를 보고하면 Claude Code는 이유를 이름으로 지정하고, 제자리에서 다시 시작하며, 대화를 재개합니다. Claude Code가 다시 시작할 수 없는 경우(예: 백그라운드 세션) Claude Code는 세션을 종료하고 로그인을 유지합니다.424Claude Code가 gateway 로그인 후 `couldn't load your organization's managed settings`를 보고하면 Claude Code는 이유를 이름으로 지정하고, 제자리에서 다시 시작하며, 대화를 재개합니다. Claude Code가 다시 시작할 수 없는 경우(예: 백그라운드 세션) Claude Code는 세션을 종료하고 로그인을 유지합니다.

424 425 

426<h3 id="request-headers-too-large-after-sign-in">

427 로그인 후 요청 헤더가 너무 큼

428</h3>

429 

430개발자가 많은 IdP 그룹에 속해 있으면 로그인 후 개발자의 요청이 `431` 오류로 실패할 수 있습니다.

431 

432게이트웨이는 요청 헤더의 합계가 256 KiB를 초과하거나, [`limits.max_request_header_bytes`](/docs/ko/claude-apps-gateway-config#http-tuning)를 설정한 경우 그 값을 초과하면 `431`로 응답합니다. 이러한 요청에 대해서는 로그 줄이나 감사 이벤트를 기록하지 않습니다. v2.1.284 이전의 게이트웨이 버전은 16 KiB를 초과하면 `431`로 응답합니다.

433 

434변경할 사항은 게이트웨이의 버전과 구성에 따라 다릅니다:

435 

436* **v2.1.284보다 이전의 게이트웨이**: 게이트웨이를 업그레이드하세요

437* **`limits.max_request_header_bytes`가 설정됨**: 값을 높이거나 키를 제거하세요

438* **둘 다 해당하지 않거나, 이후에도 `431`이 계속됨**: IdP가 더 적은 그룹을 내보내도록 하세요. Okta, Microsoft Entra ID, Google Workspace가 그룹을 제공하는 방법은 [Identity provider setup](#identity-provider-setup)에서 다룹니다

439 

425<h2 id="related">440<h2 id="related">

426 관련441 관련

427</h2>442</h2>

Details

1598 1598 

1599`<project>`는 문자와 숫자 이외의 모든 문자가 `-`로 바뀐 작업 디렉토리 경로입니다. 예를 들어 `-Users-you-my-project`. [`CLAUDE_CODE_TMPDIR`](/docs/ko/env-vars)을 설정하면 트리가 대신 해당 디렉토리 아래로 이동합니다. Hook은 현재 세션의 경로를 [`scratchpad_dir`](/docs/ko/hooks#common-input-fields)로 받습니다.1599`<project>`는 문자와 숫자 이외의 모든 문자가 `-`로 바뀐 작업 디렉토리 경로입니다. 예를 들어 `-Users-you-my-project`. [`CLAUDE_CODE_TMPDIR`](/docs/ko/env-vars)을 설정하면 트리가 대신 해당 디렉토리 아래로 이동합니다. Hook은 현재 세션의 경로를 [`scratchpad_dir`](/docs/ko/hooks#common-input-fields)로 받습니다.

1600 1600 

1601스크래치패드 파일은 세션의 트랜스크립트만큼 오래 지속됩니다: [보존 스윕](#cleaned-up-automatically)은 트랜스크립트를 삭제할 때 디렉토리를 삭제하고, [`claude project purge`](#clear-local-data)는 임시 디렉토리를 건드리지 않습니다. 디렉토리가 시스템 임시 위치 아래에 있으므로 운영 체제도 이를 정리할 수 있습니다. 예를 들어 재시작 시. Claude가 거기에 작성한 것을 유지하려면 Claude에게 프로젝트로 이동하도록 요청하세요.1601스크래치패드 파일은 세션의 트랜스크립트만큼 오래 지속됩니다: [보존 스윕](#cleaned-up-automatically)은 트랜스크립트를 삭제할 때 디렉토리를 삭제하고, [`claude purge`](#clear-local-data)는 임시 디렉토리를 건드리지 않습니다. 디렉토리가 시스템 임시 위치 아래에 있으므로 운영 체제도 이를 정리할 수 있습니다. 예를 들어 재시작 시. Claude가 거기에 작성한 것을 유지하려면 Claude에게 프로젝트로 이동하도록 요청하세요.

1602 1602 

1603세션은 다음 모두가 유지될 때만 스크래치패드를 갖습니다:1603세션은 다음 모두가 유지될 때만 스크래치패드를 갖습니다:

1604 1604 


1645 로컬 데이터 지우기1645 로컬 데이터 지우기

1646</h3>1646</h3>

1647 1647 

1648`claude project purge`를 실행하여 Claude Code가 한 프로젝트에 대해 보유한 상태를 삭제합니다. 다음을 삭제합니다:1648`claude purge`를 실행하여 Claude Code가 한 프로젝트에 대해 보유한 상태를 삭제합니다. 다음을 삭제합니다:

1649 1649 

1650* `projects/` 아래의 트랜스크립트 및 자동 메모리1650* `projects/` 아래의 트랜스크립트 및 자동 메모리

1651* 세션별 `tasks/`, `debug/` 및 `file-history/` 항목1651* 세션별 `tasks/`, `debug/` 및 `file-history/` 항목


1656 1656 

1657명령은 전체 삭제 계획을 인쇄하고 아무것도 제거하기 전에 확인을 요청합니다.1657명령은 전체 삭제 계획을 인쇄하고 아무것도 제거하기 전에 확인을 요청합니다.

1658 1658 

1659v2.1.288 이전에는 명령이 `claude project purge`였습니다.

1660 

1659아래 예제는 `~/work/my-repo`를 자리 표시자로 사용합니다. 프로젝트의 경로로 바꾸세요. 경로와 일치하는 상태가 없으면 명령은 오류를 인쇄하고 상태 1로 종료합니다.1661아래 예제는 `~/work/my-repo`를 자리 표시자로 사용합니다. 프로젝트의 경로로 바꾸세요. 경로와 일치하는 상태가 없으면 명령은 오류를 인쇄하고 상태 1로 종료합니다.

1660 1662 

1661아무것도 삭제하지 않고 계획 미리 보기:1663아무것도 삭제하지 않고 계획 미리 보기:

1662 1664 

1663```bash theme={null}1665```bash theme={null}

1664claude project purge ~/work/my-repo --dry-run1666claude purge ~/work/my-repo --dry-run

1665```1667```

1666 1668 

1667계획은 각 일치하는 항목과 포함된 이유를 나열합니다:1669계획은 각 일치하는 항목과 포함된 이유를 나열합니다:


1684단일 확인 프롬프트로 삭제:1686단일 확인 프롬프트로 삭제:

1685 1687 

1686```bash theme={null}1688```bash theme={null}

1687claude project purge ~/work/my-repo1689claude purge ~/work/my-repo

1688```1690```

1689 1691 

1690명령은 동일한 계획을 인쇄한 다음 `Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]`를 묻고 `y`로 답변한 경우에만 삭제합니다.1692명령은 동일한 계획을 인쇄한 다음 `Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]`를 묻고 `y`로 답변한 경우에만 삭제합니다.


1694스크립트에서 사용하기 위해 확인 프롬프트를 건너뛰세요:1696스크립트에서 사용하기 위해 확인 프롬프트를 건너뛰세요:

1695 1697 

1696```bash theme={null}1698```bash theme={null}

1697claude project purge ~/work/my-repo --yes1699claude purge ~/work/my-repo --yes

1698```1700```

1699 1701 

1700경로 대신 `--all`을 전달하여 한 번에 모든 프로젝트의 상태를 purge합니다. 이는 `history.jsonl`을 필터링하는 대신 완전히 삭제합니다. `-i`를 전달하여 삭제 계획을 한 번에 하나씩 단계별로 진행합니다.1702경로 대신 `--all`을 전달하여 한 번에 모든 프로젝트의 상태를 purge합니다. 이는 `history.jsonl`을 필터링하는 대신 완전히 삭제합니다. `-i`를 전달하여 삭제 계획을 한 번에 하나씩 단계별로 진행합니다.

Details

500 제한 사항500 제한 사항

501</h2>501</h2>

502 502 

503* 프로젝트는 claude.ai/code, 데스크톱 앱 및 Claude 모바일 앱에서 사용 가능하며, 터미널 CLI, VS Code 확장 프로그램 또는 JetBrains 플러그인에서는 사용할 수 없으며, Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry를 통해서도 사용할 수 없습니다. CLI의 [`claude project`](/docs/ko/cli-reference) 명령은 디렉토리에 대한 로컬 Claude Code 상태를 관리하며 관련이 없습니다.503* 프로젝트는 claude.ai/code, 데스크톱 앱 및 Claude 모바일 앱에서 사용 가능하며, 터미널 CLI, VS Code 확장 프로그램 또는 JetBrains 플러그인에서는 사용할 수 없으며, Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry를 통해서도 사용할 수 없습니다.

504* 프로젝트 스레드는 [클라우드 세션](/docs/ko/claude-code-on-the-web)이거나, [Remote Control](/docs/ko/remote-control)을 통한 자신의 머신의 세션이며, 두 경우 모두 Anthropic이 모델 제공자입니다. [보안](/docs/ko/security) 및 [데이터 사용](/docs/ko/data-usage)은 클라우드 세션이 어떻게 격리되고 무엇이 유지되는지를 다루며, [연결 및 보안](/docs/ko/remote-control#connection-and-security)은 머신의 스레드가 어떻게 연결되고 무엇이 저장되는지를 다룹니다.504* 프로젝트 스레드는 [클라우드 세션](/docs/ko/claude-code-on-the-web)이거나, [Remote Control](/docs/ko/remote-control)을 통한 자신의 머신의 세션이며, 두 경우 모두 Anthropic이 모델 제공자입니다. [보안](/docs/ko/security) 및 [데이터 사용](/docs/ko/data-usage)은 클라우드 세션이 어떻게 격리되고 무엇이 유지되는지를 다루며, [연결 및 보안](/docs/ko/remote-control#connection-and-security)은 머신의 스레드가 어떻게 연결되고 무엇이 저장되는지를 다룹니다.

505* 자신의 머신에서 직접 시작한 세션을 프로젝트에 추가할 수 없습니다. 프로젝트가 머신에 도달하는 유일한 방법은 [Remote Control을 통해 머신에서 스레드를 실행](#run-a-thread-on-your-own-computer)하는 것이며, 해당 섹션에서 필요한 사항을 나열합니다.505* 자신의 머신에서 직접 시작한 세션을 프로젝트에 추가할 수 없습니다. 프로젝트가 머신에 도달하는 유일한 방법은 [Remote Control을 통해 머신에서 스레드를 실행](#run-a-thread-on-your-own-computer)하는 것이며, 해당 섹션에서 필요한 사항을 나열합니다.

506* 클라우드 스레드의 샌드박스는 차례 사이에 일시 중지되고 스레드가 계속될 때 다시 시작됩니다. 샌드박스를 다시 시작할 수 없으면 스레드는 새 복제에서 계속되므로 커밋되지 않은 변경 사항이 손실될 수 있습니다. 긴 작업에서 Claude에게 진행 중인 작업을 커밋하고 푸시하도록 요청합니다.506* 클라우드 스레드의 샌드박스는 차례 사이에 일시 중지되고 스레드가 계속될 때 다시 시작됩니다. 샌드박스를 다시 시작할 수 없으면 스레드는 새 복제에서 계속되므로 커밋되지 않은 변경 사항이 손실될 수 있습니다. 긴 작업에서 Claude에게 진행 중인 작업을 커밋하고 푸시하도록 요청합니다.

Details

40| `claude mcp login <name>` | 구성된 MCP 서버의 OAuth 흐름을 대화형 `/mcp` 패널을 열지 않고 실행합니다. HTTP, SSE 및 claude.ai 커넥터 서버에서 작동합니다. SSH를 통해 `--no-browser`를 추가하여 브라우저를 열지 않고 인증 URL을 인쇄한 다음 리다이렉트 URL을 프롬프트에 다시 붙여넣습니다. [명령줄에서 인증](/docs/ko/mcp#authenticate-from-the-command-line) 참조 | `claude mcp login sentry` |40| `claude mcp login <name>` | 구성된 MCP 서버의 OAuth 흐름을 대화형 `/mcp` 패널을 열지 않고 실행합니다. HTTP, SSE 및 claude.ai 커넥터 서버에서 작동합니다. SSH를 통해 `--no-browser`를 추가하여 브라우저를 열지 않고 인증 URL을 인쇄한 다음 리다이렉트 URL을 프롬프트에 다시 붙여넣습니다. [명령줄에서 인증](/docs/ko/mcp#authenticate-from-the-command-line) 참조 | `claude mcp login sentry` |

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

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

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

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

46| `claude rm <id>` | [백그라운드 세션](/docs/ko/agent-view#manage-sessions-from-the-shell)을 목록에서 제거합니다. 제거가 [세션의 worktree를 통해 거부](/docs/ko/agent-view#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>` | [백그라운드 세션](/docs/ko/agent-view#manage-sessions-from-the-shell)을 목록에서 제거합니다. 제거가 [세션의 worktree를 통해 거부](/docs/ko/agent-view#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` |


51 51 

52하위 명령을 잘못 입력하면 Claude Code는 가장 가까운 일치를 제안하고 세션을 시작하지 않고 종료합니다. 예를 들어, `claude udpate`는 `Did you mean claude update?`를 인쇄합니다.52하위 명령을 잘못 입력하면 Claude Code는 가장 가까운 일치를 제안하고 세션을 시작하지 않고 종료합니다. 예를 들어, `claude udpate`는 `Did you mean claude update?`를 인쇄합니다.

53 53 

54v2.1.199부터 `claude --dangerously-skip-permissions daemon <subcommand>`는 `daemon` 하위 명령을 실행합니다. 이전 버전에서는 `daemon <subcommand>`를 새 대화형 세션의 프롬프트로 처리했으므로 플래그가 먼저 올 때 하위 명령이 실행되지 않았습니다. 이는 `claude`가 플래그를 포함하도록 별칭이 지정된 경우 일반적인 설정입니다. 선행 `--dangerously-skip-permissions` 또는 `--allow-dangerously-skip-permissions`만 이 방식으로 `daemon`으로 라우팅됩니다. 다른 선행 플래그는 여전히 대화형 세션을 시작합니다.54`claude --dangerously-skip-permissions daemon <subcommand>`는 `daemon` 하위 명령을 실행하므로, `claude`가 플래그를 포함하도록 별칭이 지정된 경우에도 하위 명령이 작동합니다. 선행 `--dangerously-skip-permissions` 또는 `--allow-dangerously-skip-permissions`만 이 방식으로 `daemon`으로 라우팅됩니다. `daemon` 앞에 다른 플래그가 있으면 하위 명령이 실행되지 않습니다.

55 55 

56<h2 id="cli-flags">56<h2 id="cli-flags">

57 CLI 플래그57 CLI 플래그

Details

118 자격 증명 추가118 자격 증명 추가

119</h4>119</h4>

120 120 

121이미 존재하는 환경의 편집기에서 한 번에 하나씩 자격 증명을 추가합니다. 새 환경의 대화 상자는 이를 제공하지 않습니다. 편집도 없습니다. 자격 증명의 호스트 또는 값을 변경하려면 삭제하고 다시 추가합니다.121자격 증명은 한 번에 하나씩 추가하며, 추가한 후에는 편집할 수 없습니다. 자격 증명의 호스트 또는 값을 변경하려면 삭제하고 다시 추가합니다.

122 122 

123<Steps>123<Steps>

124 <Step title="환경의 API 자격 증명 열기">124 <Step title="환경의 API 자격 증명 열기">

125 [claude.ai/code](https://claude.ai/code)의 환경 선택기에서 [편집할 환경을 열기](#configure-your-environment)합니다. **Edit cloud environment** 대화 상자에서 **Environment variables** 아래에 **API credentials**를 찾습니다. 환경에 이미 있는 자격 증명과 적용되는 호스트를 볼 수 있습니다.125 [claude.ai/code](https://claude.ai/code)에서 [편집할 환경을 엽니다](#configure-your-environment). **Edit environment** 대화 상자에서 **API credentials** 섹션을 찾습니다. 환경에 이미 있는 자격 증명이 각각 적용되는 호스트와 함께 표시됩니다.

126 </Step>126 </Step>

127 127 

128 <Step title="자격 증명 추가">128 <Step title="자격 증명 추가">

code-review.md +3 −2

Details

339 다음 플래그를 추가할 수도 있습니다:339 다음 플래그를 추가할 수도 있습니다:

340 340 

341 * `--fix`: 검토 후 결과를 작업 트리에 적용합니다341 * `--fix`: 검토 후 결과를 작업 트리에 적용합니다

342 * `--comment`: GitHub pull request에 인라인 댓글로 결과를 게시하거나, GitLab merge request에 단일 노트로 게시합니다342 * `--comment`: GitHub 풀 리퀘스트에 인라인 댓글로 결과를 게시하거나, GitLab merge request에 단일 노트로 게시합니다

343 * `--post`: `github.com` pull request의 `ultra` 클라우드 검토에서 시작 대화에 완료된 결과를 PR에 게시하는 것을 미리 선택합니다. [Pull request에 결과 게시](/docs/ko/ultrareview#post-findings-to-the-pull-request)를 참조하십시오. Claude Code v2.1.227 이상이 필요합니다343 * `--post`: `github.com` 풀 리퀘스트의 `ultra` 클라우드 검토에서 시작 대화 상자에 완료된 결과를 PR에 게시하는 것을 미리 선택합니다. [풀 리퀘스트에 결과 게시](/docs/ko/ultrareview#post-findings-to-the-pull-request)를 참조하십시오. Claude Code v2.1.227 이상이 필요합니다

344 * `--max-findings <n>`, `--max-findings all` 또는 `--max-findings default`: 검토의 일반적인 제한 대신 최대 `n`개의 결과를 보고하거나, `all`을 사용하면 모든 결과를 보고합니다. 이후 검토는 `--max-findings default`를 전달할 때까지 입력한 값을 재사용합니다. Claude Code v2.1.288 이상이 필요합니다

344 345 

345 GitLab merge request에 대해 `--comment`를 전달하면, Claude Code는 GitLab의 `glab` CLI를 통해 결과를 게시합니다. Claude Code v2.1.257 이상이 필요합니다. `glab`이 설치되지 않은 경우, Claude는 대신 터미널에 결과를 출력합니다.346 GitLab merge request에 대해 `--comment`를 전달하면, Claude Code는 GitLab의 `glab` CLI를 통해 결과를 게시합니다. Claude Code v2.1.257 이상이 필요합니다. `glab`이 설치되지 않은 경우, Claude는 대신 터미널에 결과를 출력합니다.

346 347 

commands.md +2 −2

Details

72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[스킬](/docs/ko/skills#bundled-skills).** 프로젝트 언어에 맞는 [Claude API](https://platform.claude.com/docs/en/api/overview) 및 [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) 참조 자료를 로드합니다. 코드에서 `anthropic` 또는 `@anthropic-ai/sdk`를 임포트하면 자동으로 활성화되기도 합니다. 각 하위 명령의 기능과 필요한 버전은 [Claude API 프로젝트 작업](/docs/ko/skills#work-on-claude-api-projects)을 참조하세요 |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[스킬](/docs/ko/skills#bundled-skills).** 프로젝트 언어에 맞는 [Claude API](https://platform.claude.com/docs/en/api/overview) 및 [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) 참조 자료를 로드합니다. 코드에서 `anthropic` 또는 `@anthropic-ai/sdk`를 임포트하면 자동으로 활성화되기도 합니다. 각 하위 명령의 기능과 필요한 버전은 [Claude API 프로젝트 작업](/docs/ko/skills#work-on-claude-api-projects)을 참조하세요 |

73| `/claude-in-chrome [task]` | **[스킬](/docs/ko/skills#bundled-skills).** [Claude in Chrome](/docs/ko/chrome)을 통해 페이지 테스트, 양식 작성, 콘솔 로그 읽기 등의 작업을 Claude가 브라우저에서 수행하도록 합니다. 세션에서 Chrome 통합이 활성화된 경우(예: `claude --chrome` 사용) 또는 Claude Code가 [확장 프로그램 설치](/docs/ko/chrome#install-the-extension-when-claude-asks)를 제안할 수 있는 경우에 사용할 수 있습니다 |73| `/claude-in-chrome [task]` | **[스킬](/docs/ko/skills#bundled-skills).** [Claude in Chrome](/docs/ko/chrome)을 통해 페이지 테스트, 양식 작성, 콘솔 로그 읽기 등의 작업을 Claude가 브라우저에서 수행하도록 합니다. 세션에서 Chrome 통합이 활성화된 경우(예: `claude --chrome` 사용) 또는 Claude Code가 [확장 프로그램 설치](/docs/ko/chrome#install-the-extension-when-claude-asks)를 제안할 수 있는 경우에 사용할 수 있습니다 |

74| `/clear [name]` | 빈 컨텍스트로 새 대화를 시작합니다. 이름을 전달하면 `/resume` 선택기에서 이전 대화에 레이블을 지정합니다. 같은 대화를 계속하면서 컨텍스트를 확보하려면 대신 `/compact`를 사용합니다. `/resume`으로 이전 대화를 재개하거나, 같은 Claude Code 프로세스 내에서는 [되감기 메뉴의 이전 세션 항목](/docs/ko/checkpointing#rewind-past-a-cleared-conversation)에서 복원합니다. 별칭: `/reset`, `/new` |74| `/clear [name]` | 빈 컨텍스트로 새 대화를 시작합니다. 이름을 전달하면 `/resume` 선택기에서 이전 대화에 레이블을 지정합니다. 같은 대화를 계속하면서 컨텍스트를 확보하려면 대신 `/compact`를 사용합니다. `/resume`으로 이전 대화를 재개하거나, 같은 Claude Code 프로세스 내에서는 [되감기 메뉴의 이전 세션 항목](/docs/ko/checkpointing#rewind-past-a-cleared-conversation)에서 복원합니다. 별칭: `/reset`, `/new` |

75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[스킬](/docs/ko/skills#bundled-skills).** 현재 diff 또는 전달한 PR 번호, 브랜치, 경로에서 정확성 버그를 리뷰합니다. 모델과 effort 수준에 따라 정리할 부분도 리뷰 대상에 포함됩니다. 발견 사항을 적용하려면 `--fix`를, GitHub PR 또는 GitLab 병합 요청에 게시하려면 `--comment`를, 심층 [클라우드 리뷰](/docs/ko/ultrareview)를 실행하려면 `ultra`를 전달합니다. GitLab 병합 요청에 게시하려면 Claude Code v2.1.257 이상이 필요합니다. `github.com` PR 대상에 `ultra`를 사용할 때 `--post`를 전달하면 실행 대화 상자에서 [완료된 발견 사항을 PR에 게시](/docs/ko/ultrareview#post-findings-to-the-pull-request)하는 옵션이 미리 선택됩니다. `--post`는 Claude Code v2.1.227 이상이 필요합니다. effort 수준, 대상 지정, `/simplify`와의 관계는 [로컬에서 diff 리뷰하기](/docs/ko/code-review#review-a-diff-locally)를 참조하세요. 별칭: `/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[스킬](/docs/ko/skills#bundled-skills).** 현재 diff 또는 전달한 PR 번호, 브랜치, 경로에서 정확성 버그를 리뷰합니다. 모델과 effort 수준에 따라 정리할 부분도 리뷰 대상에 포함됩니다. 발견 사항을 적용하려면 `--fix`를, GitHub PR 또는 GitLab 병합 요청에 게시하려면 `--comment`를, 심층 [클라우드 리뷰](/docs/ko/ultrareview)를 실행하려면 `ultra`를 전달합니다. GitLab 병합 요청에 게시하려면 Claude Code v2.1.257 이상이 필요합니다. `github.com` PR 대상에 `ultra`를 사용할 때 `--post`를 전달하면 실행 대화 상자에서 [완료된 발견 사항을 PR에 게시](/docs/ko/ultrareview#post-findings-to-the-pull-request)하는 옵션이 미리 선택됩니다. `--post`는 Claude Code v2.1.227 이상이 필요합니다. effort 수준, 대상 지정, `/simplify`와의 관계는 [로컬에서 diff 리뷰하기](/docs/ko/code-review#review-a-diff-locally)를 참조하세요. 별칭: `/review` |

76| `/color [color\|default]` | 현재 세션의 프롬프트 바 색상을 설정합니다. 사용 가능한 색상: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. 초기화하려면 `default`를 사용하고, 인수 없이 실행하면 임의의 색상이 선택됩니다. [Remote Control](/docs/ko/remote-control)이 연결되어 있으면 색상이 claude.ai/code와 동기화됩니다. 비대화형 모드(`-p`)에서도 사용할 수 있으며, Claude Code v2.1.205 이상이 필요합니다 |76| `/color [color\|default]` | 현재 세션의 프롬프트 바 색상을 설정합니다. 사용 가능한 색상: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. 초기화하려면 `default`를 사용하고, 인수 없이 실행하면 임의의 색상이 선택됩니다. [Remote Control](/docs/ko/remote-control)이 연결되어 있으면 색상이 claude.ai/code와 동기화됩니다. 비대화형 모드(`-p`)에서도 사용할 수 있으며, Claude Code v2.1.205 이상이 필요합니다 |

77| `/compact [instructions]` | 지금까지의 대화를 요약하여 컨텍스트를 확보합니다. 선택적으로 요약의 초점에 대한 지침을 전달할 수 있습니다. [압축이 규칙, 스킬, 메모리 파일을 처리하는 방식](/docs/ko/context-window#what-survives-compaction)을 참조하세요 |77| `/compact [instructions]` | 지금까지의 대화를 요약하여 컨텍스트를 확보합니다. 선택적으로 요약의 초점에 대한 지침을 전달할 수 있습니다. [압축이 규칙, 스킬, 메모리 파일을 처리하는 방식](/docs/ko/context-window#what-survives-compaction)을 참조하세요 |

78| `/config [key=value ...]` | 테마, 모델, [출력 스타일](/docs/ko/output-styles) 및 기타 환경설정을 조정하는 [설정](/docs/ko/settings) 인터페이스를 엽니다. 하나 이상의 `key=value` 쌍을 전달하면 인터페이스를 열지 않고 설정을 직접 지정할 수 있습니다(예: `/config thinking=false`, `/config theme=dark`, `/config model=sonnet`). `key=value` 형식은 비대화형 모드(`-p`)와 [Remote Control](/docs/ko/remote-control)을 통한 Claude 모바일 앱에서도 작동합니다. `key=value` 형식으로는 [`autoContinueAtUsageLimit`](/docs/ko/interactive-mode#turn-automatic-continue-off)처럼 패널에서 확인이 필요한 설정을 켤 수 없지만, 끌 수는 있습니다. 허용되는 키 목록을 보려면 `/config --help`를 실행합니다. 별칭: `/settings` |78| `/config [key=value ...]` | 테마, 모델, [출력 스타일](/docs/ko/output-styles) 및 기타 환경설정을 조정하는 [설정](/docs/ko/settings) 인터페이스를 엽니다. 하나 이상의 `key=value` 쌍을 전달하면 인터페이스를 열지 않고 설정을 직접 지정할 수 있습니다(예: `/config thinking=false`, `/config theme=dark`, `/config model=sonnet`). `key=value` 형식은 비대화형 모드(`-p`)와 [Remote Control](/docs/ko/remote-control)을 통한 Claude 모바일 앱에서도 작동합니다. `key=value` 형식으로는 [`autoContinueAtUsageLimit`](/docs/ko/interactive-mode#turn-automatic-continue-off)처럼 패널에서 확인이 필요한 설정을 켤 수 없지만, 끌 수는 있습니다. 허용되는 키 목록을 보려면 `/config --help`를 실행합니다. 별칭: `/settings` |


134| `/remote-env` | CLI에서 시작하는 클라우드 세션의 기본 [클라우드 환경](/docs/ko/cloud-environments#select-an-environment-from-the-cli)을 선택합니다 |134| `/remote-env` | CLI에서 시작하는 클라우드 세션의 기본 [클라우드 환경](/docs/ko/cloud-environments#select-an-environment-from-the-cli)을 선택합니다 |

135| `/rename [name]` | 현재 세션의 이름을 바꾸고 프롬프트 바에 이름을 표시합니다. 이름을 지정하지 않으면 대화 기록에서 자동으로 생성합니다. 비대화형 모드(`-p`)에서도 사용할 수 있으며, Claude Code v2.1.205 이상이 필요합니다. claude.ai와 데스크톱 앱을 포함한 모든 이름 변경 사용 환경에서, Claude Code는 새 이름의 제어 문자와 보이지 않는 문자를 공백으로 바꾸고 이름을 200자로 제한합니다. 보이지 않는 문자를 제거한 후 이름이 비어 있으면 Claude Code는 이를 거부하고 `That name is empty once invisible characters are removed. Usage: /rename <name>`을 표시합니다. 문자 대체와 길이 제한은 Claude Code v2.1.221 이상이 필요합니다. 이 컴퓨터에서 실행 중인 다른 세션이 전달한 이름을 이미 사용하고 있으면, Claude Code는 대신 [해당 이름의 변형](/docs/ko/sessions#name-your-sessions)을 적용합니다 |135| `/rename [name]` | 현재 세션의 이름을 바꾸고 프롬프트 바에 이름을 표시합니다. 이름을 지정하지 않으면 대화 기록에서 자동으로 생성합니다. 비대화형 모드(`-p`)에서도 사용할 수 있으며, Claude Code v2.1.205 이상이 필요합니다. claude.ai와 데스크톱 앱을 포함한 모든 이름 변경 사용 환경에서, Claude Code는 새 이름의 제어 문자와 보이지 않는 문자를 공백으로 바꾸고 이름을 200자로 제한합니다. 보이지 않는 문자를 제거한 후 이름이 비어 있으면 Claude Code는 이를 거부하고 `That name is empty once invisible characters are removed. Usage: /rename <name>`을 표시합니다. 문자 대체와 길이 제한은 Claude Code v2.1.221 이상이 필요합니다. 이 컴퓨터에서 실행 중인 다른 세션이 전달한 이름을 이미 사용하고 있으면, Claude Code는 대신 [해당 이름의 변형](/docs/ko/sessions#name-your-sessions)을 적용합니다 |

136| `/resume [session]` | ID나 이름으로 대화를 재개하거나 세션 선택기를 엽니다. [백그라운드 세션](/docs/ko/agent-view)은 선택기에 `bg` 표시와 함께 나타납니다. 선택기에서 또는 ID나 이름으로 아직 실행 중인 세션을 재개하면 [해당 세션이 열립니다](/docs/ko/sessions#resume-a-running-background-session). 현재 대화는 백그라운드로 이동하고 이 터미널은 실행 중인 세션에 연결됩니다. 빈 프롬프트에서 `←`를 누르면 에이전트 보기로 돌아가며, 여기에는 떠나온 대화도 나열됩니다. v2.1.285 이전에는 Claude Code가 이를 거부하고 `claude attach`로 세션을 열거나 먼저 중지하라고 안내했습니다. 별칭: `/continue` |136| `/resume [session]` | ID나 이름으로 대화를 재개하거나 세션 선택기를 엽니다. [백그라운드 세션](/docs/ko/agent-view)은 선택기에 `bg` 표시와 함께 나타납니다. 선택기에서 또는 ID나 이름으로 아직 실행 중인 세션을 재개하면 [해당 세션이 열립니다](/docs/ko/sessions#resume-a-running-background-session). 현재 대화는 백그라운드로 이동하고 이 터미널은 실행 중인 세션에 연결됩니다. 빈 프롬프트에서 `←`를 누르면 에이전트 보기로 돌아가며, 여기에는 떠나온 대화도 나열됩니다. v2.1.285 이전에는 Claude Code가 이를 거부하고 `claude attach`로 세션을 열거나 먼저 중지하라고 안내했습니다. 별칭: `/continue` |

137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | [`/code-review`](/docs/ko/code-review#review-a-diff-locally)의 별칭입니다. 현재 diff 또는 전달한 PR 번호, 브랜치, 경로(예: `/review 1234`)를 리뷰하며, 동일한 effort 수준과 플래그를 받습니다. 수준을 지정하지 않으면 마지막으로 입력한 `low`부터 `max`까지의 수준을 재사용합니다. 정확한 규칙은 [로컬에서 diff 리뷰하기](/docs/ko/code-review#review-a-diff-locally)를 참조하세요. 심층 클라우드 리뷰에는 [`/code-review ultra`](/docs/ko/ultrareview)를 사용합니다. v2.1.223 이전에는 `/review`가 번호로 지정한 GitHub 풀 리퀘스트에 대해 단일 패스의 읽기 전용 리뷰를 실행하는 별도의 명령이었으며, 인수 없이 실행하면 선택할 수 있도록 열린 PR을 나열했습니다. v2.1.186부터 v2.1.201까지는 `/code-review medium`과 동일한 멀티 에이전트 엔진을 실행했습니다 |137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | [`/code-review`](/docs/ko/code-review#review-a-diff-locally)의 별칭입니다. 현재 diff 또는 전달한 PR 번호, 브랜치, 경로(예: `/review 1234`)를 리뷰하며, 동일한 effort 수준과 플래그를 받습니다. 수준을 지정하지 않으면 마지막으로 입력한 `low`부터 `max`까지의 수준을 재사용합니다. 정확한 규칙은 [로컬에서 diff 리뷰하기](/docs/ko/code-review#review-a-diff-locally)를 참조하세요. 심층 클라우드 리뷰에는 [`/code-review ultra`](/docs/ko/ultrareview)를 사용합니다. v2.1.223 이전에는 `/review`가 번호로 지정한 GitHub 풀 리퀘스트에 대해 단일 패스의 읽기 전용 리뷰를 실행하는 별도의 명령이었으며, 인수 없이 실행하면 선택할 수 있도록 열린 PR을 나열했습니다. v2.1.186부터 v2.1.201까지는 `/code-review medium`과 동일한 멀티 에이전트 엔진을 실행했습니다 |

138| `/rewind` | 대화 및/또는 코드를 이전 시점으로 되감거나, 선택한 메시지부터 요약합니다. [체크포인트](/docs/ko/checkpointing)를 참조하세요. 별칭: `/checkpoint`, `/undo` |138| `/rewind` | 대화 및/또는 코드를 이전 시점으로 되감거나, 선택한 메시지부터 요약합니다. [체크포인트](/docs/ko/checkpointing)를 참조하세요. 별칭: `/checkpoint`, `/undo` |

139| `/run` | **[스킬](/docs/ko/skills#bundled-skills).** 테스트 통과뿐 아니라 변경 사항이 실제로 작동하는지 확인하기 위해 프로젝트의 앱을 실행하고 조작합니다. [앱 실행 및 검증](/docs/ko/skills#run-and-verify-your-app)을 참조하세요 |139| `/run` | **[스킬](/docs/ko/skills#bundled-skills).** 테스트 통과뿐 아니라 변경 사항이 실제로 작동하는지 확인하기 위해 프로젝트의 앱을 실행하고 조작합니다. [앱 실행 및 검증](/docs/ko/skills#run-and-verify-your-app)을 참조하세요 |

140| `/run-skill-generator` | **[스킬](/docs/ko/skills#bundled-skills).** 프로젝트별 [스킬](/docs/ko/skills#run-and-verify-your-app)을 작성하여 `/run`과 `/verify`가 깨끗한 환경에서 프로젝트의 앱을 빌드하고, 실행하고, 조작하는 방법을 학습하도록 합니다 |140| `/run-skill-generator` | **[스킬](/docs/ko/skills#bundled-skills).** 프로젝트별 [스킬](/docs/ko/skills#run-and-verify-your-app)을 작성하여 `/run`과 `/verify`가 깨끗한 환경에서 프로젝트의 앱을 빌드하고, 실행하고, 조작하는 방법을 학습하도록 합니다 |

Details

46 46 

47 팀,47 팀,

48 48 

49 오늘부터 Claude Code에 액세스할 수 있습니다. Claude Code는 터미널에서 실행되고, 실제 코드베이스를 읽고, 실제 작업을 끝까지 처리하는 AI 코딩 에이전트입니다: 디버깅, 리팩토링, 테스트, PR. 자동 완성이 아니고 채팅 창도 아닙니다. 파일을 편집하고, 명령어를 실행하고, 위험한 작업 전에 권한을 요청합니다.49 오늘부터 Claude Code에 액세스할 수 있습니다. Claude Code는 터미널에서 실행되고, 실제 코드베이스를 읽고, 실제 작업을 끝까지 처리하는 AI 코딩 에이전트입니다: 디버깅, 리팩토링, 테스트, PR. 자동 완성이 아니고 채팅 창도 아닙니다. 파일을 편집하고 명령을 실행합니다.

50 50 

51 2분 안에 실행하기:51 2분 안에 실행하기:

52 52 


54 cd <your-repo>54 cd <your-repo>

55 claude55 claude

56 56 

57 그런 다음 /init를 한 번 실행하십시오. Claude는 프로젝트를 읽고 빌드 명령어와 규칙을 포함한 CLAUDE.md를 작성하므로 기본 사항을 다시 설명할 필요가 없습니다.57 그런 다음 /init를 한 번 실행하십시오. Claude는 프로젝트를 읽고 빌드 명령과 규칙을 포함한 CLAUDE.md를 작성하므로 기본 사항을 다시 설명할 필요가 없습니다.

58 58 

59 그런 다음 이미 있는 리포지토리에서 다음 중 하나를 시도하십시오:59 그런 다음 이미 있는 리포지토리에서 다음 중 하나를 시도하십시오:

60 60 

61 - "[파일]의 테스트가 불안정합니다. 이유를 파악하고 수정하세요"61 - "[파일]의 테스트가 불안정합니다. 이유를 파악하고 수정하세요"

62 - "[모듈]이 [X]를 어떻게 처리하는지 설명해주세요"62 - "[모듈]이 [X]를 어떻게 처리하는지 설명해주세요"

63 - "작동하는 diff를 보고 푸시하기 전에 위험한 것이 무엇인지 알려주세요"63 - "작업 중인 diff를 보고 푸시하기 전에 위험한 것이 무엇인지 알려주세요"

64 64 

65 코드가 가는 곳: Claude Code는 터미널에서 실행되고 Anthropic의 API와 직접 통신하며, 루프에 제3자 서버가 없습니다. 파일을 편집하거나 명령어를 실행하기 전에 요청합니다. Team 또는 Enterprise 계획에 따라 Anthropic은 모델 학습을 위해 코드나 프롬프트를 사용하지 않습니다.65 코드가 가는 곳: Claude Code는 터미널에서 실행되고 Anthropic의 API와 직접 통신합니다. Team 또는 Enterprise 계획에 따라 Anthropic은 모델 학습을 위해 코드나 프롬프트를 사용하지 않습니다.

66 세부 정보: https://code.claude.com/docs/en/data-usage66 세부 정보: https://code.claude.com/docs/en/data-usage

67 https://code.claude.com/docs/en/security67 https://code.claude.com/docs/en/security

68 68 


78 ```markdown theme={null}78 ```markdown theme={null}

79 🚀 *Claude Code가 [팀]에 대해 활성화됨*79 🚀 *Claude Code가 [팀]에 대해 활성화됨*

80 80 

81 AI 코딩 에이전트, 터미널에서 실행, 리포지토리 읽음, 실제 작업 수행: 버그, 리팩토링, 테스트, PR. 무엇이든 건드리기 전에 요청합니다.81 AI 코딩 에이전트, 터미널에서 실행, 리포지토리 읽음, 실제 작업 수행: 버그, 리팩토링, 테스트, PR.

82 82 

83 `curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` → `claude`83 `curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` → `claude`

84 84 

85 *먼저 시도할 것* → `/init`를 실행한 다음: "[파일]의 테스트가 불안정합니다, 이유를 파악하고 수정하세요."85 *먼저 시도할 것* → `/init`를 실행한 다음: "[파일]의 테스트가 불안정합니다, 이유를 파악하고 수정하세요."

86 86 

87 🔒 터미널에서 실행, Anthropic의 API와만 통신합니다. Team 또는 Enterprise 계획에 따라 코드와 프롬프트는 모델 학습에 사용되지 않습니다.87 🔒 터미널에서 실행, Anthropic의 API와 직접 통신합니다. Team 또는 Enterprise 계획에 따라 코드와 프롬프트는 모델 학습에 사용되지 않습니다.

88 데이터 사용 → https://code.claude.com/docs/en/data-usage88 데이터 사용 → https://code.claude.com/docs/en/data-usage

89 89 

90 📚 빠른 시작 · VS Code · 무료 1시간 과정90 📚 빠른 시작 · VS Code · 무료 1시간 과정


160 160 

161[표준 공지에서 "2분 안에 실행하기" 계속]161[표준 공지에서 "2분 안에 실행하기" 계속]

162 162 

163파일럿을 위한 한 가지 추가: 첫 번째 다중 파일 변경에서 Shift+Tab를 누르면 "plan"이 표시될 때까지 누르십시오. Claude는 파일을 건드리기 전에 정확히 무엇을 할 의도인지 설명합니다. 신뢰할 수 있는 정도를 조정하는 가장 빠른 방법입니다.163파일럿을 위한 한 가지 추가: 첫 번째 다중 파일 변경에서 "plan"이 표시될 때까지 Shift+Tab를 누르십시오. Claude는 소스를 편집하지 않고 무엇을 할 의도인지 설명합니다. 신뢰할 수 있는 정도를 조정하는 가장 빠른 방법입니다.

164```164```

165 165 

166<h3 id="champion-recruitment-dm">166<h3 id="champion-recruitment-dm">


271 271 

272때로는 Claude가 모든 편집 전에 요청하기를 원합니다. 때로는 그냥 배포하기를 원합니다. 영원히 하나를 선택할 필요는 없습니다.272때로는 Claude가 모든 편집 전에 요청하기를 원합니다. 때로는 그냥 배포하기를 원합니다. 영원히 하나를 선택할 필요는 없습니다.

273 273 

274*Shift+Tab*은 Claude가 얻는 자유도를 순환합니다: *Manual*(`default` 설정 값)은 파일 편집 및 대부분의 셸 명령어 전에 요청하고, *acceptEdits*는 파일 편집과 일반적인 파일 시스템 명령어가 흐르도록 하면서도 다른 셸 명령어 전에 확인하고, *plan*은 무엇이든 건드리기 전에 승인을 위해 변경 사항을 제안합니다. Plan 모드는 신뢰 구축자이므로 여러 파일을 건드리는 모든 것에 대해 거기서 시작하십시오.274*Shift+Tab*은 Claude가 묻지 않고 할 수 있는 범위를 순환합니다: *Manual*(`default` 설정 값)은 파일 편집 및 대부분의 셸 명령 전에 묻고, *acceptEdits*는 파일 편집과 일반적인 파일 시스템 명령은 그대로 진행하면서도 다른 셸 명령 전에는 확인하며, *plan*은 소스를 편집하지 않고 조사하여 변경 사항을 제안합니다. 플랜 모드는 신뢰 구축자이므로 여러 파일을 건드리는 모든 작업은 여기서 시작하십시오.

275 275 

276*지금 시도하기:* 다음 리팩토링에서 Shift+Tab을 누르면 "plan"이 표시될 때까지 누른 다음 변경 사항을 설명하십시오. 단일 파일이 움직이기 전에 전체 제안을 받을 것입니다.276*지금 시도하기:* 다음 리팩토링에서 "plan"이 표시될 때까지 Shift+Tab을 누른 다음 변경 사항을 설명하십시오. 검토할 전체 제안을 받게 됩니다.

277 277 

278📖 권한 모드 → https://code.claude.com/docs/ko/permissions278📖 권한 모드 → https://code.claude.com/docs/ko/permissions

279```279```


404팀의 누군가가 "잠깐, 내 코드는 어디로 가나요?"라고 물어볼 것입니다.404팀의 누군가가 "잠깐, 내 코드는 어디로 가나요?"라고 물어볼 것입니다.

405여기 붙여넣을 수 있는 짧은 버전입니다.405여기 붙여넣을 수 있는 짧은 버전입니다.

406 406 

407설계상 권한 우선. 모든 파일 편집, 셸 명령어, 외부 호출은 승인으로 제어됩니다. CLI는 터미널에서 실행되고 Anthropic의 API와 직접 통신하며, 제3자 서버가 없고, 셸 명령어에 대한 선택적 OS 수준 샌드박싱을 지원합니다. Team 또는 Enterprise 계획에 따라 Anthropic은 모델 학습을 위해 코드나 프롬프트를 사용하지 않습니다.407권한 모드는 Claude가 먼저 묻지 않고 수행할 수 있는 작업을 설정합니다. CLI는 터미널에서 실행되고 Anthropic의 API와 직접 통신하며, 셸 명령에 대한 선택적 OS 수준 샌드박싱을 지원합니다. Team 또는 Enterprise 플랜에서는 Anthropic이 모델 학습에 코드나 프롬프트를 사용하지 않습니다.

408 408 

409*지금 시도하기:* 다음에 질문이 나올 때를 위해 이 두 링크를 저장하십시오. 대부분의 보안 검토 질문에 답변합니다.409*지금 시도하기:* 다음에 질문이 나올 때를 위해 이 두 링크를 저장하십시오. 대부분의 보안 검토 질문에 답변합니다.

410 410 


443| - | - |443| - | - |

444| "VS Code에서 작동하나요?" | 예. VS Code 확장 프로그램과 JetBrains 플러그인이 있으며 같은 기능을 가지고 있고 편집기에 포함되어 있습니다. [VS Code →](/docs/ko/vs-code) |444| "VS Code에서 작동하나요?" | 예. VS Code 확장 프로그램과 JetBrains 플러그인이 있으며 같은 기능을 가지고 있고 편집기에 포함되어 있습니다. [VS Code →](/docs/ko/vs-code) |

445| "먼저 뭔가 구성해야 하나요?" | 아니요. 설치한 다음 모든 리포지토리에서 `claude`를 실행하십시오. `/init`를 한 번 실행하면 설정됩니다. [빠른 시작 →](/docs/ko/quickstart) |445| "먼저 뭔가 구성해야 하나요?" | 아니요. 설치한 다음 모든 리포지토리에서 `claude`를 실행하십시오. `/init`를 한 번 실행하면 설정됩니다. [빠른 시작 →](/docs/ko/quickstart) |

446| "내 코드는 어디로 가나요?" | CLI는 터미널에서 실행되고 컨텍스트를 Anthropic의 API로 보내 추론하며, 제3자 서버가 없습니다. Team 또는 Enterprise 계획에 따라 코드와 프롬프트는 모델 학습에 사용되지 않습니다. [데이터 사용 →](/docs/ko/data-usage) |446| "내 코드는 어디로 가나요?" | CLI는 터미널에서 실행되며 추론을 위해 컨텍스트를 Anthropic의 API로 보냅니다. Team 또는 Enterprise 플랜에서는 코드와 프롬프트가 모델 학습에 사용되지 않습니다. [데이터 사용 →](/docs/ko/data-usage) |

447| "전체 리포지토리를 볼 수 있나요?" | 액세스 권한을 부여한 것을 읽습니다. 작업 디렉토리 내의 파일 읽기는 프롬프트하지 않습니다; 권한 프롬프트는 편집, 읽기 전용이 아닌 셸 명령어, 그 디렉토리 외부의 파일 도구 읽기를 제어합니다. `ls` 및 `cat`과 같은 기본 제공 읽기 전용 셸 명령어 세트는 프롬프트 없이 실행됩니다; [sandbox `denyRead` 규칙](/docs/ko/sandboxing#filesystem-isolation)으로 제한하십시오. [권한 →](/docs/ko/permissions) |447| "전체 리포지토리를 볼 수 있나요?" | 액세스 권한을 부여한 것을 읽습니다. 작업 디렉터리 내의 파일 읽기는 확인을 요청하지 않습니다. [권한 →](/docs/ko/permissions) |

448| "이것이 Copilot과 어떻게 다른가요?" | Copilot은 줄을 자동 완성합니다. Claude Code는 파일을 읽고, 명령어를 실행하고, 다중 파일 편집을 하는 에이전트입니다. [개요 →](/docs/ko/overview) |448| "이것이 Copilot과 어떻게 다른가요?" | Copilot은 줄을 자동 완성합니다. Claude Code는 파일을 읽고, 명령어를 실행하고, 다중 파일 편집을 하는 에이전트입니다. [개요 →](/docs/ko/overview) |

449| "먼저 뭘 시도해야 하나요?" | 지루해서 미루고 있던 버그. "\[파일]의 테스트가 불안정합니다, 이유를 파악하세요." [빠른 시작 →](/docs/ko/quickstart) |449| "먼저 뭘 시도해야 하나요?" | 지루해서 미루고 있던 버그. "\[파일]의 테스트가 불안정합니다, 이유를 파악하세요." [빠른 시작 →](/docs/ko/quickstart) |

450 450 

Details

226* **수신 세션이 권한을 프롬프트함**: Claude Code는 각 메시지를 전달합니다. 발신 세션이 권한 프롬프트를 우회하는 것으로 식별될 때만 하나를 승인을 위해 보류합니다.226* **수신 세션이 권한을 프롬프트함**: Claude Code는 각 메시지를 전달합니다. 발신 세션이 권한 프롬프트를 우회하는 것으로 식별될 때만 하나를 승인을 위해 보류합니다.

227* **수신 세션이 권한 프롬프트를 우회함**: Claude Code는 각 메시지를 승인을 위해 보류합니다. 발신 세션이 또한 우회하는 것으로 식별될 때만 하나를 전달합니다.227* **수신 세션이 권한 프롬프트를 우회함**: Claude Code는 각 메시지를 승인을 위해 보류합니다. 발신 세션이 또한 우회하는 것으로 식별될 때만 하나를 전달합니다.

228 228 

229기본값이 메시지를 보류할 때, Claude Code는 수신 세션에서 승인 대화를 엽니다. 대화는 발신자와 미리보기를 표시합니다:229대화형 터미널 세션에서 기본값이 메시지를 보류하면, Claude Code는 해당 세션에서 승인 대화 상자를 엽니다. 대화 상자는 발신자와 미리보기를 표시합니다:

230 230 

231* **승인**은 해당 메시지를 Claude에게 전달합니다.231* **승인**은 해당 메시지를 Claude에게 전달합니다.

232* **거부** 또는 대화를 닫으면 삭제합니다.232* **거부** 또는 대화를 닫으면 삭제합니다.


234* 터미널이 [배경 세션](/docs/ko/agent-view)에 첨부되지 않은 동안, Claude Code는 대화를 기한을 지나 열어 둡니다. 첨부한 후, 대화가 전체 기한 기간 동안 답변되지 않으면, Claude Code는 이를 닫고 메시지를 삭제합니다.234* 터미널이 [배경 세션](/docs/ko/agent-view)에 첨부되지 않은 동안, Claude Code는 대화를 기한을 지나 열어 둡니다. 첨부한 후, 대화가 전체 기한 기간 동안 답변되지 않으면, Claude Code는 이를 닫고 메시지를 삭제합니다.

235* 메시지가 보류되는 동안 이 세션의 권한 모드 클래스가 변경되면, Claude Code는 인바운드 규칙을 다시 적용하고, 이제 수용하는 메시지를 전달하며, 알림을 표시합니다.235* 메시지가 보류되는 동안 이 세션의 권한 모드 클래스가 변경되면, Claude Code는 인바운드 규칙을 다시 적용하고, 이제 수용하는 메시지를 전달하며, 알림을 표시합니다.

236 236 

237VS Code 확장 프로그램이나 Desktop 앱의 세션은 대화 상자를 표시할 수 없습니다. 이러한 세션에서 Claude Code는 [비대화형 세션](#non-interactive-sessions)에서 설명하는 것처럼 동일한 기한까지 보류된 메시지를 유지합니다.

238 

237Claude Code는 최대 100개의 메시지를 보류하며, 그 이상은 가장 오래된 것을 삭제합니다.239Claude Code는 최대 100개의 메시지를 보류하며, 그 이상은 가장 오래된 것을 삭제합니다.

238 240 

239<h3 id="non-interactive-sessions">241<h3 id="non-interactive-sessions">

env-vars.md +295 −293

Details

124 변수124 변수

125</h2>125</h2>

126 126 

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

128 128 

129<Note>129<Note>

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

131 131 

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

133 133 

134 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`134 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

135 * `DISABLE_TELEMETRY`135 * `DISABLE_TELEMETRY`


138 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`138 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`

139 * `IS_DEMO`139 * `IS_DEMO`

140 140 

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

142</Note>142</Note>

143 143 

144| 변수 | 용도 |144| 변수 | 용도 |

145| :- | :- |145| :- | :- |

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | `CLAUDE_AUTO_BACKGROUND_TASKS`가 활성화된 경우, 아직 실행 중인 [백그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)를 확인하도록 Claude에게 보내는 리마인더 사이의 간격(초)입니다. `1`부터 `86400`까지의 일반 정수만 허용하며, 다른 값이나 표기는 설정되지 않은 것으로 읽힙니다. 설정하지 않으면 확인 리마인더가 없습니다. Claude Code v2.1.248 이상이 필요합니다 |223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | `CLAUDE_AUTO_BACKGROUND_TASKS`가 활성화된 경우, 아직 실행 중인 [백그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)를 확인하도록 Claude에게 알리는 간격(초)입니다. `1`부터 `86400`까지의 일반 정수만 허용하며, 그 외의 값이나 표기는 설정되지 않은 것으로 읽힙니다. 설정하지 않으면 확인 알림이 없습니다. Claude Code v2.1.248 이상이 필요합니다 |

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

278| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | `1`로 설정하면 `rm -rf "$(pwd)"`처럼 대상이 전적으로 명령 치환의 출력인 재귀 `rm`에 대한 [중요 경로](/docs/ko/permission-modes#critical-paths) 검사를 끕니다. 다른 중요 경로 검사는 계속 실행됩니다. Claude Code는 설정 `env` 블록을 통해 전달된 값을 무시하므로, Claude Code를 실행하는 환경에서 설정하세요. Claude Code v2.1.281 이상이 필요합니다 |278| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | `1`로 설정하면 업스트림이 구조화된 출력 `output_config.format` 필드와 이와 짝을 이루는 `anthropic-beta` 값을 거부하는 [LLM 게이트웨이](/docs/ko/llm-gateway-protocol#feature-pass-through)를 위해 Claude Code가 이를 전송하지 않습니다. [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/ko/llm-gateway-protocol#disable-pre-release-capabilities)가 끄는 다른 출시 전 기능은 켜진 상태로 유지됩니다. Claude Code v2.1.288 이상이 필요합니다 |

279| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | `1`로 설정하면 대화 컨텍스트에 기반한 자동 터미널 제목 업데이트를 비활성화합니다. 또한 [세션 제목을 생성하는](/docs/ko/sessions#name-your-sessions) 백그라운드 small/fast 모델 요청도 건너뜁니다 |279| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | `1`로 설정하면 `rm -rf "$(pwd)"`처럼 대상 전체가 명령 치환의 출력인 재귀적 `rm`에 대한 [중요 경로](/docs/ko/permission-modes#critical-paths) 검사를 끕니다. 다른 중요 경로 검사는 계속 실행됩니다. Claude Code는 설정 `env` 블록을 통해 전달된 값을 무시하므로, Claude Code를 실행하는 환경에서 설정하십시오. Claude Code v2.1.281 이상이 필요합니다 |

280| `CLAUDE_CODE_DISABLE_THINKING` | `1`로 설정하면 API 요청에서 `thinking` 매개변수를 완전히 생략합니다. 이는 이 매개변수를 거부하는 프록시와 게이트웨이를 위한 호환성 옵션입니다. 기본적으로 사고하는 모델에서는 매개변수를 생략해도 모델이 여전히 사고할 수 있습니다. Anthropic API에서 [확장 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)를 명시적으로 비활성화하려면 대신 `MAX_THINKING_TOKENS=0`을 사용하세요. 사고를 끌 수 없는 Opus 5.5, Sonnet 5.5, Fable 모델에서는 두 변수 모두 사고를 끄지 않습니다. [서드 파티 제공업체](/docs/ko/third-party-integrations)에서는 `MAX_THINKING_TOKENS=0`도 마찬가지로 매개변수를 생략하므로, 두 변수가 동일하게 동작합니다 |280| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | `1`로 설정하면 대화 컨텍스트에 기반한 터미널 제목 자동 업데이트를 비활성화합니다. 이 설정은 [세션 제목을 생성하는](/docs/ko/sessions#name-your-sessions) 백그라운드 small/fast 모델 요청도 건너뜁니다 |

281| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | `1`로 설정하면 [LLM 게이트웨이](/docs/ko/llm-gateway) 별칭처럼 Claude Code가 모델 ID를 인식하지 못할 때 선제적 [자동 압축](/docs/ko/costs#reduce-token-usage)을 건너뜁니다. 이 변수가 없으면 Claude Code는 해당 ID에 대해 가정한 컨텍스트 윈도우에서 압축합니다. 대신 `CLAUDE_CODE_MAX_CONTEXT_TOKENS`로 가정된 윈도우를 수정할 수 있습니다. 각 변수가 적용되는 경우는 [게이트웨이 또는 사용자 지정 모델 ID의 윈도우 수정](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id)을 참조하세요. Claude Code v2.1.223 이상이 필요합니다 |281| `CLAUDE_CODE_DISABLE_THINKING` | `1`로 설정하면 API 요청에서 `thinking` 매개변수를 완전히 생략합니다. 이는 해당 매개변수를 거부하는 프록시와 게이트웨이를 위한 호환성 옵션입니다. 기본적으로 사고하는 모델에서는 매개변수를 생략해도 모델이 여전히 사고할 수 있습니다. Anthropic API에서 [확장 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)를 명시적으로 비활성화하려면 대신 `MAX_THINKING_TOKENS=0`을 사용하십시오. 사고를 끌 수 없는 Opus 5.5, Sonnet 5.5, Fable 모델에서는 두 변수 모두 사고를 끄지 않습니다. [서드파티 제공업체](/docs/ko/third-party-integrations)에서는 `MAX_THINKING_TOKENS=0`도 마찬가지로 매개변수를 생략하므로, 두 변수가 동일하게 동작합니다 |

282| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | `1`로 설정하면 [전체 화면 렌더링](/docs/ko/fullscreen)에서 가상 스크롤을 비활성화하고 트랜스크립트의 모든 메시지를 렌더링합니다. 전체 화면 모드에서 스크롤할 때 메시지가 나타나야 할 곳에 빈 영역이 표시되는 경우 사용하세요 |282| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | `1`로 설정하면 [LLM 게이트웨이](/docs/ko/llm-gateway) 별칭처럼 Claude Code가 모델 ID를 인식하지 못할 때 선제적 [자동 압축](/docs/ko/costs#reduce-token-usage)을 건너뜁니다. 이 변수가 없으면 Claude Code는 해당 ID에 대해 가정한 컨텍스트 윈도우에서 압축합니다. 대신 `CLAUDE_CODE_MAX_CONTEXT_TOKENS`로 가정된 윈도우를 수정할 수 있습니다. 각 변수가 적용되는 경우는 [게이트웨이 또는 사용자 지정 모델 ID의 윈도우 수정](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id)을 참조하십시오. Claude Code v2.1.223 이상이 필요합니다 |

283| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | `1`로 설정하면 [전체 화면 렌더링](/docs/ko/fullscreen)에서 가상 스크롤을 비활성화하고 트랜스크립트의 모든 메시지를 렌더링합니다. 전체 화면 모드에서 스크롤할 때 메시지가 표시되어야 할 곳에 빈 영역이 나타나는 경우 사용하십시오 |

283| `CLAUDE_CODE_DISABLE_WEB_FETCH` | `1`로 설정하면 [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior) 도구를 끕니다. [WebSearch](/docs/ko/tools-reference#websearch-tool-behavior) 도구는 계속 사용할 수 있습니다. Claude Code v2.1.285 이상이 필요합니다 |284| `CLAUDE_CODE_DISABLE_WEB_FETCH` | `1`로 설정하면 [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior) 도구를 끕니다. [WebSearch](/docs/ko/tools-reference#websearch-tool-behavior) 도구는 계속 사용할 수 있습니다. Claude Code v2.1.285 이상이 필요합니다 |

284| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | `1`로 설정하면 Windows에서 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool) 명령을 `cmd.exe` 런처를 거치지 않고 직접 시작합니다. 기본적으로 런처는 [백그라운드에서 실행 중인](/docs/ko/tools-reference#background-commands) PowerShell 명령이 [세션의 다음 프로세스로 이어지도록](/docs/ko/agent-view#the-supervisor-process) 합니다. 예를 들어 [세션을 백그라운드로 전환할](/docs/ko/agent-view#from-inside-a-session) 때가 그렇습니다. 변수를 설정하면 백그라운드로 전환된 PowerShell 명령은 세션의 프로세스가 종료될 때 중지됩니다. Bash 명령은 영향을 받지 않습니다. Claude Code v2.1.269 이상이 필요합니다 |285| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | `1`로 설정하면 Windows에서 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool) 명령을 `cmd.exe` 런처를 거치지 않고 직접 시작합니다. 기본적으로 런처는 [세션을 백그라운드로 전환](/docs/ko/agent-view#from-inside-a-session)할 때처럼 [백그라운드에서 실행 중인](/docs/ko/tools-reference#background-commands) PowerShell 명령이 [세션의 다음 프로세스로 이어지도록](/docs/ko/agent-view#the-supervisor-process) 합니다. 이 변수를 설정하면 백그라운드로 전환된 PowerShell 명령은 세션의 프로세스가 종료될 때 중지됩니다. Bash 명령은 영향을 받지 않습니다. Claude Code v2.1.269 이상이 필요합니다 |

285| `CLAUDE_CODE_DISABLE_WORKFLOWS` | `1`로 설정하면 [워크플로](/docs/ko/workflows#turn-workflows-off)를 비활성화합니다. [`disableWorkflows`](/docs/ko/settings-reference#disableworkflows) 설정과 동일합니다 |286| `CLAUDE_CODE_DISABLE_WORKFLOWS` | `1`로 설정하면 [워크플로](/docs/ko/workflows#turn-workflows-off)를 비활성화합니다. [`disableWorkflows`](/docs/ko/settings-reference#disableworkflows) 설정과 동일합니다 |

286| `CLAUDE_CODE_EFFORT_LEVEL` | 지원되는 모델의 effort 수준을 설정합니다. 값: `low`, `medium`, `high`, `xhigh`, `max`, 또는 모델 기본값을 사용하려면 `auto`. 사용 가능한 수준은 모델에 따라 다릅니다. `--effort`, `/effort`, `modelSettings` 및 `effortLevel` 설정보다 우선합니다. [`maxEffortLevel`](/docs/ko/settings-reference#maxeffortlevel) 상한은 여전히 적용됩니다. [effort 수준 조정](/docs/ko/model-config#adjust-effort-level)을 참조하세요 |287| `CLAUDE_CODE_EFFORT_LEVEL` | 지원되는 모델의 effort 수준을 설정합니다. 값: `low`, `medium`, `high`, `xhigh`, `max`, 또는 모델 기본값을 사용하려면 `auto`. 사용 가능한 수준은 모델에 따라 다릅니다. `--effort`, `/effort`, `modelSettings` 및 `effortLevel` 설정보다 우선합니다. [`maxEffortLevel`](/docs/ko/settings-reference#maxeffortlevel) 상한은 계속 적용됩니다. [effort 수준 조정](/docs/ko/model-config#adjust-effort-level)을 참조하십시오 |

287| `CLAUDE_CODE_ENABLE_AUTO_MODE` | 이전 릴리스와의 호환성을 위해 허용되며 효과가 없습니다. 자동 모드는 Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, 로그인된 [Claude apps gateway](/docs/ko/claude-apps-gateway) 세션을 포함한 모든 제공업체에서 기본적으로 사용할 수 있습니다. v2.1.158부터 v2.1.206까지는 해당 제공업체에서 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)를 사용하려면 이 값을 `1`로 설정해야 했습니다 |288| `CLAUDE_CODE_ENABLE_AUTO_MODE` | 이전 릴리스와의 호환성을 위해 허용되며 효과는 없습니다. 자동 모드는 Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, 로그인한 [Claude apps gateway](/docs/ko/claude-apps-gateway) 세션을 포함한 모든 제공업체에서 기본적으로 사용할 수 있습니다. v2.1.158부터 v2.1.206까지는 해당 제공업체에서 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)를 사용하려면 이 값을 `1`로 설정해야 했습니다 |

288| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | [세션 요약](/docs/ko/interactive-mode#session-recap) 사용 가능 여부를 재정의합니다. `/config` 토글과 관계없이 요약을 강제로 끄려면 `0`으로 설정하세요. [`awaySummaryEnabled`](/docs/ko/settings-reference#awaysummaryenabled)가 `false`일 때 요약을 강제로 켜려면 `1`로 설정하세요. 설정과 `/config` 토글보다 우선합니다 |289| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | [세션 요약](/docs/ko/interactive-mode#session-recap) 사용 가능 여부를 재정의합니다. `/config` 토글과 관계없이 요약을 강제로 끄려면 `0`으로 설정하십시오. [`awaySummaryEnabled`](/docs/ko/settings-reference#awaysummaryenabled)가 `false`일 때 요약을 강제로 켜려면 `1`로 설정하십시오. 해당 설정과 `/config` 토글보다 우선합니다 |

289| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | `1`로 설정하면 백그라운드 설치가 완료된 후 [비대화형 모드](/docs/ko/headless)에서 턴 경계마다 플러그인 상태를 새로 고칩니다. 새로 고침은 세션 도중 시스템 프롬프트를 변경하여 해당 턴의 [프롬프트 캐싱](/docs/ko/prompt-caching)을 무효화하므로 기본적으로 꺼져 있습니다 |290| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | 백그라운드 설치가 완료된 후 [비대화형 모드](/docs/ko/headless)에서 턴 경계마다 플러그인 상태를 새로 고치려면 `1`로 설정합니다. 새로 고침이 세션 도중에 시스템 프롬프트를 변경하여 해당 턴의 [프롬프트 캐싱](/docs/ko/prompt-caching)을 무효화하므로 기본적으로 꺼져 있습니다 |

290| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Anthropic으로 향하는 비필수 트래픽이 차단된 경우 "How is Claude doing?" 세션 품질 설문을 자체 [OpenTelemetry 수집기](/docs/ko/monitoring-usage)로 보내려면 `1`로 설정합니다. 설문 평가는 구성된 수집기에 OTEL 이벤트로만 내보내집니다. 이 모드에서는 설문 데이터가 Anthropic으로 전송되지 않습니다. `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` 또는 `DO_NOT_TRACK`이 설정된 경우에 적용되며, 그 외에는 효과가 없습니다. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`와 조직의 제품 피드백 정책이 우선합니다 |291| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Anthropic으로 향하는 필수적이지 않은 트래픽이 차단된 경우 "How is Claude doing?" 세션 품질 설문을 자체 [OpenTelemetry 수집기](/docs/ko/monitoring-usage)로 라우팅하려면 `1`로 설정합니다. 설문 평가는 구성된 수집기에 OTEL 이벤트로만 내보내집니다. 이 모드에서는 설문 데이터가 Anthropic으로 전송되지 않습니다. `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` 또는 `DO_NOT_TRACK`이 설정된 경우에 적용되며, 그 외에는 효과가 없습니다. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`와 조직의 제품 피드백 정책이 우선합니다 |

291| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Claude가 도구 호출 입력을 생성하는 동안 API에서 스트리밍할지 여부를 제어합니다. 이 기능이 꺼져 있으면 긴 파일 쓰기와 같은 큰 도구 입력은 Claude가 생성을 마친 후에야 도착하므로 멈춘 것처럼 보일 수 있습니다. Anthropic API에서는 기본적으로 활성화됩니다. Amazon Bedrock과 Google Cloud의 Agent Platform에서는 배포된 컨테이너가 지원하는 경우 모델별로 활성화됩니다. 사용하지 않으려면 `0`으로 설정합니다. `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` 또는 `ANTHROPIC_BEDROCK_BASE_URL`을 통해 프록시로 라우팅할 때 강제로 켜려면 `1`로 설정합니다. Microsoft Foundry 및 [게이트웨이](/docs/ko/llm-gateway) 연결에서는 기본적으로 꺼져 있습니다 |292| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Claude가 도구 호출 입력을 생성하는 동안 API에서 해당 입력을 스트리밍할지 여부를 제어합니다. 이 기능이 꺼져 있으면 긴 파일 쓰기와 같은 큰 도구 입력은 Claude가 생성을 마친 후에야 도착하므로 멈춘 것처럼 보일 수 있습니다. Anthropic API에서는 기본적으로 활성화됩니다. Amazon Bedrock과 Google Cloud의 Agent Platform에서는 배포된 컨테이너가 지원하는 모델별로 활성화됩니다. 옵트아웃하려면 `0`으로 설정합니다. `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` 또는 `ANTHROPIC_BEDROCK_BASE_URL`을 통해 프록시로 라우팅할 때 강제로 켜려면 `1`로 설정합니다. Microsoft Foundry 및 [게이트웨이](/docs/ko/llm-gateway) 연결에서는 기본적으로 꺼져 있습니다 |

292| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | `ANTHROPIC_BASE_URL`이 LiteLLM, Kong 또는 내부 프록시와 같은 Anthropic 호환 게이트웨이를 가리킬 때 게이트웨이의 `/v1/models` 엔드포인트에서 `/model` 선택기를 채우려면 `1`로 설정합니다. 공유 API 키를 사용하는 게이트웨이에서는 키가 액세스할 수 있는 모든 모델이 모든 사용자에게 표시되므로 기본적으로 꺼져 있습니다. 검색된 모델은 여전히 세션이 받는 [`availableModels`](/docs/ko/settings-reference#availablemodels) 허용 목록으로 필터링됩니다. [게이트웨이 구성에서는 서버 관리 전달을 사용할 수 없으므로](/docs/ko/server-managed-settings#platform-availability) [MDM 또는 관리형 설정 파일](/docs/ko/managed-settings#delivery-mechanisms)을 통해 목록을 전달합니다 |293| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | `ANTHROPIC_BASE_URL`이 LiteLLM, Kong 또는 내부 프록시와 같은 Anthropic 호환 게이트웨이를 가리킬 때 게이트웨이의 `/v1/models` 엔드포인트에서 `/model` 선택기를 채우려면 `1`로 설정합니다. 그렇지 않으면 공유 API 키를 사용하는 게이트웨이가 해당 키로 접근할 수 있는 모든 모델을 모든 사용자에게 보여 주게 되므로 기본적으로 꺼져 있습니다. 검색된 모델은 여전히 세션이 받는 [`availableModels`](/docs/ko/settings-reference#availablemodels) 허용 목록으로 필터링됩니다. [게이트웨이 구성에서는 서버 관리형 전달을 사용할 수 없으므로](/docs/ko/server-managed-settings#platform-availability) [MDM 또는 관리형 설정 파일](/docs/ko/managed-settings#delivery-mechanisms)을 통해 목록을 전달합니다 |

293| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | [빠른 모드](/docs/ko/fast-mode) 기본값이 Opus 4.6에서 Opus 4.7로 변경된 v2.1.142에서 제거되었습니다 |294| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | [빠른 모드](/docs/ko/fast-mode) 기본값이 Opus 4.6에서 Opus 4.7로 변경된 v2.1.142에서 제거되었습니다 |

294| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | 프롬프트 입력에 표시되는 회색 예측인 프롬프트 제안을 끄려면 `false`로 설정합니다. `/config`의 **Prompt suggestions** 토글이 기록하는 [`promptSuggestionEnabled`](/docs/ko/settings-reference#promptsuggestionenabled) 설정보다 우선합니다. Claude Code는 또한 [계정이 사용 한도에 가까워지거나 도달하면 제안을 일시 중지합니다](/docs/ko/interactive-mode#when-claude-code-skips-suggestions). 한도에 도달할 때까지 제안을 계속 켜 두려면 `true`로 설정합니다. Claude Code v2.1.238 이상이 필요합니다. [프롬프트 제안](/docs/ko/interactive-mode#prompt-suggestions)을 참조하세요 |295| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | 프롬프트 입력에 회색으로 표시되는 예측인 프롬프트 제안을 끄려면 `false`로 설정합니다. `/config`의 **Prompt suggestions** 토글이 기록하는 [`promptSuggestionEnabled`](/docs/ko/settings-reference#promptsuggestionenabled) 설정보다 우선합니다. Claude Code는 또한 [계정이 사용 한도에 가까워지거나 도달하면 제안을 일시 중지합니다](/docs/ko/interactive-mode#when-claude-code-skips-suggestions). 한도에 도달할 때까지 제안을 계속 표시하려면 `true`로 설정합니다. Claude Code v2.1.238 이상이 필요합니다. [프롬프트 제안](/docs/ko/interactive-mode#prompt-suggestions)을 참조하세요 |

295| `CLAUDE_CODE_ENABLE_TASKS` | [작업 추적 도구가 있는 세션](/docs/ko/tools-reference#task-tool-availability)에서 Claude Code가 제공하는 작업 추적 도구를 선택합니다. 기본적으로 Claude Code는 Task 도구인 `TaskCreate`, `TaskUpdate`, `TaskGet`, `TaskList`를 제공합니다. 대신 레거시 `TodoWrite` 도구를 사용하려면 `0`으로 설정합니다. [작업 목록](/docs/ko/interactive-mode#task-list)을 참조하세요 |296| `CLAUDE_CODE_ENABLE_TASKS` | [작업 추적 도구가 있는 세션](/docs/ko/tools-reference#task-tool-availability)에서 Claude Code가 제공하는 작업 추적 도구를 선택합니다. 기본적으로 Claude Code는 Task 도구인 `TaskCreate`, `TaskUpdate`, `TaskGet`, `TaskList`를 제공합니다. 대신 레거시 `TodoWrite` 도구를 사용하려면 `0`으로 설정합니다. [작업 목록](/docs/ko/interactive-mode#task-list)을 참조하세요 |

296| `CLAUDE_CODE_ENABLE_TELEMETRY` | 메트릭 및 로깅을 위한 OpenTelemetry 데이터 수집을 활성화하려면 `1`로 설정합니다. OTel 익스포터를 구성하기 전에 필요합니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |297| `CLAUDE_CODE_ENABLE_TELEMETRY` | 메트릭 및 로깅을 위한 OpenTelemetry 데이터 수집을 활성화하려면 `1`로 설정합니다. OTel 익스포터를 구성하기 전에 필요합니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

297| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | 모든 모델에서 작업 추적 도구를 사용하려면 `1`로 설정합니다. 이 변수가 없으면 Claude Code는 [Task 도구 가용성](/docs/ko/tools-reference#task-tool-availability)에 나열된 모델에서만 기본적으로 이 도구를 제공합니다. `CLAUDE_CODE_ENABLE_TASKS`는 여전히 Task 도구와 `TodoWrite` 중 어느 것을 사용할지 선택합니다. Claude Code v2.1.233 이상이 필요합니다 |298| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | 모든 모델에서 작업 추적 도구를 사용하려면 `1`로 설정합니다. 이 변수가 없으면 Claude Code는 [Task 도구 가용성](/docs/ko/tools-reference#task-tool-availability)에 나열된 모델에서만 기본적으로 이 도구를 제공합니다. `CLAUDE_CODE_ENABLE_TASKS`는 여전히 Task 도구 또는 `TodoWrite`를 선택합니다. Claude Code v2.1.233 이상이 필요합니다 |

298| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | 쿼리 루프가 유휴 상태가 된 후 자동으로 종료하기 전에 대기할 시간(밀리초)입니다. SDK 모드를 사용하는 자동화된 워크플로 및 스크립트에 유용합니다 |299| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | 쿼리 루프가 유휴 상태가 된 후 자동으로 종료하기 전에 대기할 시간(밀리초)입니다. SDK 모드를 사용하는 자동화된 워크플로 및 스크립트에 유용합니다 |

299| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | [에이전트 팀](/docs/ko/agent-teams)을 활성화하려면 `1`로 설정합니다. 에이전트 팀은 실험적 기능이며 기본적으로 비활성화되어 있습니다 |300| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | [에이전트 팀](/docs/ko/agent-teams)을 활성화하려면 `1`로 설정합니다. 에이전트 팀은 실험적 기능이며 기본적으로 비활성화되어 있습니다 |

300| `CLAUDE_CODE_EXTRA_BODY` | 모든 API 요청 본문의 최상위 수준에 병합할 JSON 객체입니다. Claude Code가 직접 노출하지 않는 공급자별 매개변수를 전달할 때 유용합니다. 셸에서 내보낸 값은 `claude agents` 또는 `--bg`로 디스패치하는 [백그라운드 세션](/docs/ko/agent-view)에도 적용됩니다. v2.1.206 이전에는 백그라운드 세션이 셸에서 내보낸 값을 무시하고 백그라운드 supervisor 프로세스가 상속한 값을 사용했습니다 |301| `CLAUDE_CODE_EXTRA_BODY` | 모든 API 요청 본문의 최상위 수준에 병합할 JSON 객체입니다. Claude Code가 직접 노출하지 않는 공급자별 매개변수를 전달하는 데 유용합니다. 셸에서 export한 값은 `claude agents` 또는 `--bg`로 디스패치하는 [백그라운드 세션](/docs/ko/agent-view)에도 적용됩니다. v2.1.206 이전에는 백그라운드 세션이 셸에서 export한 값을 무시하고 백그라운드 감독자 프로세스가 상속한 값을 사용했습니다 |

301| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | 파일 읽기의 기본 토큰 제한을 재정의합니다. 더 큰 파일을 전체적으로 읽어야 할 때 유용합니다 |302| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | 파일 읽기의 기본 토큰 제한을 재정의합니다. 더 큰 파일을 전체로 읽어야 할 때 유용합니다 |

302| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | 이 `claude`가 다른 Claude Code 세션 내부에서 실행된 경우에도 트랜스크립트 저장, 프롬프트 기록, `claude agents` 등록을 강제하려면 `1`로 설정합니다. 예를 들어 `screen` 세션이나 Claude Code의 Bash 도구가 처음 시작한 백그라운드 런처에서 상속된 `CLAUDE_CODE_CHILD_SESSION` 값으로 인해 실제 최상위 세션이 중첩 세션으로 잘못 분류될 때 사용합니다. v2.1.178부터 Claude Code는 tmux의 경우를 자동으로 감지하고 상속된 마커를 무시하므로 tmux에서는 더 이상 이 변수가 필요하지 않습니다. v2.1.169 이하에서도 적용되며, 이 변수가 재정의하는 중첩 세션 감지가 제거된 v2.1.170 및 v2.1.171에서는 효과가 없습니다 |303| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | 이 `claude`가 다른 Claude Code 세션 내부에서 실행된 경우에도 트랜스크립트 유지, 프롬프트 기록, `claude agents` 등록을 강제하려면 `1`로 설정합니다. 예를 들어 `screen` 세션이나 Claude Code의 Bash 도구가 처음 시작한 백그라운드 런처에서 상속된 `CLAUDE_CODE_CHILD_SESSION` 값으로 인해 실제 최상위 세션이 중첩 세션으로 잘못 분류될 때 사용합니다. v2.1.178부터 Claude Code는 tmux의 경우를 자동으로 감지하고 상속된 마커를 무시하므로 tmux에서는 더 이상 이 변수가 필요하지 않습니다. v2.1.169 이하에서도 적용되며, 이 변수가 재정의하는 중첩 세션 감지가 제거된 v2.1.170 및 v2.1.171에서는 효과가 없습니다 |

303| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 터미널이 취소선을 지원하지만 자동으로 감지되지 않는 경우(예: `TERM_PROGRAM`이 전달되지 않는 SSH 환경), Claude의 응답에서 `~~text~~`를 취소선으로 강제 렌더링하려면 `1`로 설정합니다. 이 설정이 없으면 감지되지 않은 터미널에서는 텍스트를 취소선으로 렌더링하는 대신 `~~` 마커가 그대로 표시됩니다. Claude Code v2.1.186 이상이 필요합니다 |304| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 터미널이 취소선을 지원하지만 자동 감지되지 않는 경우(예: `TERM_PROGRAM`이 전달되지 않은 SSH 환경) Claude의 응답에서 `~~text~~`에 취소선 렌더링을 강제하려면 `1`로 설정합니다. 이 설정이 없으면 감지되지 않은 터미널은 텍스트를 취소선으로 렌더링하는 대신 `~~` 마커를 그대로 표시합니다. Claude Code v2.1.186 이상이 필요합니다 |

304| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | 터미널이 DEC private mode 2026 [동기화된 출력](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036)을 지원하지만 자동으로 감지되지 않을 때 강제로 활성화하려면 `1`로 설정합니다. BSU/ESU를 구현하지만 기능 프로브에 응답하지 않는 Emacs `eat`과 같은 에뮬레이터에 유용합니다. tmux에서는 효과가 없습니다. [전체 화면 렌더링](/docs/ko/fullscreen)으로 전환하는 `CLAUDE_CODE_NO_FLICKER`와 달리 이 설정은 렌더러를 변경하지 않습니다 |305| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | 터미널이 DEC private mode 2026 [동기화된 출력](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036)을 지원하지만 자동 감지되지 않을 때 이를 강제로 활성화하려면 `1`로 설정합니다. BSU/ESU를 구현하지만 기능 프로브에 응답하지 않는 Emacs `eat`과 같은 에뮬레이터에 유용합니다. tmux에서는 효과가 없습니다. [전체 화면 렌더링](/docs/ko/fullscreen)으로 전환하는 `CLAUDE_CODE_NO_FLICKER`와 달리 이 변수는 렌더러를 변경하지 않습니다 |

305| `CLAUDE_CODE_FORK_SUBAGENT` | Claude가 [포크된 서브에이전트](/docs/ko/sub-agents#fork-the-current-conversation)를 직접 생성할 수 있게 하는 [포크 모드](/docs/ko/sub-agents#turn-fork-mode-on-or-off)를 제어하며, 포크 모드는 대화형 세션에서만 기본적으로 켜져 있습니다. `claude -p`와 Agent SDK에서도 켜려면 `1`로, 모든 종류의 세션에서 끄려면 `0`으로 설정합니다. `/subtask`는 포크 모드가 켜져 있는지와 관계없이 실행할 수 있습니다. 대화형 기본값에는 Claude Code v2.1.232 이상이 필요하며, 이전 버전에서는 포크 모드를 켜려면 변수를 `1`로 설정합니다 |306| `CLAUDE_CODE_FORK_SUBAGENT` | Claude가 [포크된 서브에이전트](/docs/ko/sub-agents#fork-the-current-conversation)를 직접 생성할 수 있게 하는 [포크 모드](/docs/ko/sub-agents#turn-fork-mode-on-or-off)를 제어하며, 포크 모드는 대화형 세션에서만 기본적으로 켜져 있습니다. `claude -p`와 Agent SDK에서도 켜려면 `1`로, 모든 종류의 세션에서 끄려면 `0`으로 설정합니다. `/subtask`는 포크 모드가 켜져 있는지 여부와 관계없이 실행할 수 있습니다. 대화형 기본값은 Claude Code v2.1.232 이상이 필요하며, 이전 버전에서는 포크 모드를 켜려면 변수를 `1`로 설정합니다 |

306| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | `claude -p --output-format stream-json` 출력에서 [서브에이전트](/docs/ko/sub-agents) 텍스트와 thinking 블록을 내보내려면 `1`로 설정합니다. [`--forward-subagent-text`](/docs/ko/cli-reference#cli-flags) 플래그와 동일한 동작입니다. 하니스가 `claude`를 호출하면서 플래그를 직접 전달할 수 없을 때 변수를 사용합니다. stream-json 출력을 사용하는 비대화형 모드 외부에서는 오류와 함께 종료되는 플래그와 달리, 변수는 그러한 환경에서 무시되므로 프로세스 전체에 설정되어 있어도 중첩 호출이 계속 작동합니다. Claude Code v2.1.211 이상이 필요합니다 |307| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | `claude -p --output-format stream-json` 출력에 [서브에이전트](/docs/ko/sub-agents) 텍스트 및 thinking 블록을 내보내려면 `1`로 설정합니다. [`--forward-subagent-text`](/docs/ko/cli-reference#cli-flags) 플래그와 동일한 동작입니다. 하네스가 `claude`를 호출하며 플래그를 직접 전달할 수 없을 때 이 변수를 사용합니다. stream-json 출력을 사용하는 비대화형 모드 외부에서 오류와 함께 종료되는 플래그와 달리, 이 변수는 그런 경우 무시되므로 프로세스 전체에 설정되어 있어도 중첩 호출이 계속 작동합니다. Claude Code v2.1.211 이상이 필요합니다 |

307| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | 사용자 지정 프록시 또는 Amazon Bedrock이나 Claude Platform on AWS와 같은 서드파티 공급자에서 `x-claude-code-request-class` 및 `x-claude-code-compaction`과 같은 [게이트웨이 힌트 헤더](/docs/ko/llm-gateway-protocol#gateway-hint-headers)를 보내려면 `1`로 설정합니다. Claude Code가 기본적으로 헤더를 보내는 Anthropic API 직접 연결을 포함하여 모든 연결에서 헤더 전송을 중지하려면 `0`으로 설정합니다. Claude Code v2.1.273 이상이 필요합니다 |308| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | 사용자 지정 프록시 또는 Amazon Bedrock이나 Claude Platform on AWS와 같은 타사 공급자에서 `x-claude-code-request-class` 및 `x-claude-code-compaction`과 같은 [게이트웨이 힌트 헤더](/docs/ko/llm-gateway-protocol#gateway-hint-headers)를 보내려면 `1`로 설정합니다. Claude Code가 기본적으로 헤더를 보내는 Anthropic API 직접 연결을 포함한 모든 연결에서 헤더 전송을 중지하려면 `0`으로 설정합니다. Claude Code v2.1.273 이상이 필요합니다 |

308| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY`가 켜는 [게이트웨이 모델 검색](/docs/ko/llm-gateway-protocol#model-discovery) 요청의 타임아웃(밀리초)입니다(기본값: `3000`). 게이트웨이가 시작 시 `/v1/models`에 응답하는 데 3초보다 오래 걸리는 경우 값을 늘립니다. 숫자만 허용되며, `0`, 음수 값 및 기타 표기는 기본값을 유지합니다. Claude Code v2.1.269 이상이 필요합니다 |309| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY`가 켜는 [게이트웨이 모델 검색](/docs/ko/llm-gateway-protocol#model-discovery) 요청의 타임아웃(밀리초)입니다(기본값: `3000`). 게이트웨이가 시작 시 `/v1/models`에 응답하는 데 3초보다 오래 걸리면 값을 늘립니다. 일반 숫자만 허용되며, `0`, 음수 값 및 기타 표기는 기본값을 유지합니다. Claude Code v2.1.269 이상이 필요합니다 |

309| `CLAUDE_CODE_GIT_BASH_PATH` | Windows 전용: Git Bash 실행 파일(`bash.exe`)의 경로입니다. Git Bash가 설치되어 있지만 PATH에 없을 때 사용합니다. 경로가 존재하지 않거나 파일 이름이 `bash.exe`, `sh.exe`, `bash`, `sh`가 아니면 Claude Code는 변수를 무시하고 설정되지 않은 것처럼 Git Bash를 자동 감지하며, `--debug`로 볼 수 있는 경고를 로그에 기록합니다. v2.1.219 이전에는 경로가 존재하지 않으면 Claude Code가 시작 시 종료되었고, bash 또는 sh인지 확인하지 않고 존재하는 아무 파일이나 셸로 사용했습니다. [Windows 설정](/docs/ko/setup#set-up-on-windows)을 참조하세요 |310| `CLAUDE_CODE_GIT_BASH_PATH` | Windows 전용: Git Bash 실행 파일(`bash.exe`)의 경로입니다. Git Bash가 설치되어 있지만 PATH에 없을 때 사용합니다. 경로가 존재하지 않거나 파일 이름이 `bash.exe`, `sh.exe`, `bash`, `sh`가 아니면 Claude Code는 변수를 무시하고 설정되지 않은 것처럼 Git Bash를 자동 감지하며, `--debug`로 볼 수 있는 경고를 로그에 기록합니다. v2.1.219 이전에는 경로가 존재하지 않으면 Claude Code가 시작 시 종료되었고, 기존 파일이면 bash 또는 sh인지 확인하지 않고 셸로 사용했습니다. [Windows 설정](/docs/ko/setup#set-up-on-windows)을 참조하세요 |

310| `CLAUDE_CODE_GLOB_HIDDEN` | Claude가 [Glob 도구](/docs/ko/tools-reference#glob-tool-behavior)를 호출할 때 결과에서 dotfile을 제외하려면 `false`로 설정합니다. 기본적으로 포함됩니다. `@` 파일 자동 완성, `ls`, Grep 또는 Read에는 영향을 주지 않습니다 |311| `CLAUDE_CODE_GLOB_HIDDEN` | Claude가 [Glob 도구](/docs/ko/tools-reference#glob-tool-behavior)를 호출할 때 결과에서 dotfile을 제외하려면 `false`로 설정합니다. 기본적으로 포함됩니다. `@` 파일 자동 완성, `ls`, Grep 또는 Read에는 영향을 주지 않습니다 |

311| `CLAUDE_CODE_GLOB_NO_IGNORE` | [Glob 도구](/docs/ko/tools-reference#glob-tool-behavior)가 `.gitignore` 패턴을 따르도록 하려면 `false`로 설정합니다. 기본적으로 Glob은 gitignore된 파일을 포함하여 일치하는 모든 파일을 반환합니다. 자체 [`respectGitignore` 설정](/docs/ko/settings-reference#respectgitignore)이 있는 `@` 파일 자동 완성에는 영향을 주지 않습니다 |312| `CLAUDE_CODE_GLOB_NO_IGNORE` | [Glob 도구](/docs/ko/tools-reference#glob-tool-behavior)가 `.gitignore` 패턴을 따르도록 하려면 `false`로 설정합니다. 기본적으로 Glob은 gitignore된 파일을 포함하여 일치하는 모든 파일을 반환합니다. 자체 [`respectGitignore` 설정](/docs/ko/settings-reference#respectgitignore)이 있는 `@` 파일 자동 완성에는 영향을 주지 않습니다 |

312| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Glob 도구 파일 검색의 타임아웃(초)입니다. 대부분의 플랫폼에서 기본값은 20초이며 WSL에서는 60초입니다 |313| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Glob 도구 파일 검색의 타임아웃(초)입니다. 대부분의 플랫폼에서 기본값은 20초이며 WSL에서는 60초입니다 |

313| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Claude Code가 [Claude에게 활성 목표를 확인하도록 요청하기](/docs/ko/goal#background-work-defers-evaluation) 전에 백그라운드 작업이 활성 목표를 대기 상태로 유지할 수 있는 시간(분)입니다. 기본값은 `30`입니다. 확인을 끄려면 `0`으로 설정합니다. 최대 `10080`(1주일)까지 정수 분 단위로 숫자만 입력합니다. Claude Code는 그 외의 값을 설정되지 않은 것으로 간주하고 기본값을 사용합니다. Claude Code v2.1.234 이상이 필요합니다 |314| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | 백그라운드 작업이 활성 목표를 대기시킬 수 있는 시간(분)으로, 이 시간이 지나면 Claude Code가 [Claude에게 목표를 확인하도록 요청합니다](/docs/ko/goal#background-work-defers-evaluation). 기본값은 `30`입니다. 확인을 끄려면 `0`으로 설정합니다. 분 단위의 정수를 일반 숫자로 지정하며, 최댓값은 1주에 해당하는 `10080`입니다. Claude Code는 그 외의 값을 설정되지 않은 것으로 처리하고 기본값을 사용합니다. Claude Code v2.1.234 이상이 필요합니다 |

314| `CLAUDE_CODE_HIDE_CWD` | 시작 로고에서 작업 디렉터리를 숨기려면 `1`로 설정합니다. 경로에 OS 사용자 이름이 노출되는 화면 공유나 녹화에 유용합니다 |315| `CLAUDE_CODE_HIDE_CWD` | 시작 로고에서 작업 디렉터리를 숨기려면 `1`로 설정합니다. 경로에 OS 사용자 이름이 노출되는 화면 공유나 녹화에 유용합니다 |

315| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | IDE 확장에 연결하는 데 사용되는 호스트 주소를 재정의합니다. 기본적으로 Claude Code는 WSL에서 Windows로의 라우팅을 포함하여 올바른 주소를 자동으로 감지합니다 |316| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | IDE 확장에 연결하는 데 사용되는 호스트 주소를 재정의합니다. 기본적으로 Claude Code는 WSL에서 Windows로의 라우팅을 포함하여 올바른 주소를 자동 감지합니다 |

316| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | IDE 확장의 자동 설치를 건너뛰려면 `1`로 설정합니다. [`autoInstallIdeExtension`](/docs/ko/settings-reference#autoinstallideextension)을 `false`로 설정하는 것과 같습니다 |317| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | IDE 확장의 자동 설치를 건너뛰려면 `1`로 설정합니다. [`autoInstallIdeExtension`](/docs/ko/settings-reference#autoinstallideextension)을 `false`로 설정하는 것과 동일합니다 |

317| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | 연결 중 IDE lockfile 항목의 유효성 검사를 건너뛰려면 `1`로 설정합니다. IDE가 실행 중인데도 자동 연결이 IDE를 찾지 못할 때 사용합니다 |318| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | 연결 중 IDE 잠금 파일 항목의 유효성 검사를 건너뛰려면 `1`로 설정합니다. IDE가 실행 중인데도 자동 연결이 IDE를 찾지 못할 때 사용합니다 |

318| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Agent 도구가 추가 생성을 거부하기 전에 한 세션에서 동시에 실행할 수 있는 [서브에이전트](/docs/ko/sub-agents#concurrent-subagent-limit) 수입니다(기본값: 20). 숫자로 된 양의 정수를 허용하며, 그 외의 값은 무시되므로 이 변수로 상한을 조정할 수는 있지만 비활성화할 수는 없습니다. Claude Code v2.1.217 이상이 필요합니다 |319| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Agent 도구가 추가 생성을 거부하기 전까지 한 세션에서 동시에 실행될 수 있는 [서브에이전트](/docs/ko/sub-agents#concurrent-subagent-limit) 수입니다(기본값: 20). 양의 정수를 일반 숫자로 허용하며, 그 외의 값은 무시되므로 이 변수로 상한을 조정할 수는 있지만 비활성화할 수는 없습니다. Claude Code v2.1.217 이상이 필요합니다 |

319| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Claude Code가 활성 모델에 대해 가정하는 컨텍스트 윈도우 크기를 재정의합니다. v2.1.193부터는 Claude Code가 모델 ID를 확인하는 방식에 따라 적용 방식이 달라집니다. [게이트웨이 또는 사용자 지정 모델 ID의 윈도우 수정](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id)을 참조하세요. 컨텍스트 윈도우가 해당 이름의 기본 제공 크기와 일치하지 않는 모델로 `ANTHROPIC_BASE_URL`을 통해 라우팅할 때 사용합니다 |320| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Claude Code가 활성 모델에 대해 가정하는 컨텍스트 윈도우 크기를 재정의합니다. v2.1.193부터는 Claude Code가 모델 ID를 해석하는 방식에 따라 적용 방식이 달라집니다. [게이트웨이 또는 사용자 지정 모델 ID의 윈도우 수정](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id)을 참조하세요. 컨텍스트 윈도우가 해당 이름의 기본 제공 크기와 일치하지 않는 모델로 `ANTHROPIC_BASE_URL`을 통해 라우팅할 때 사용합니다 |

320| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Claude Code가 모델에 보내는 각 MCP 도구 설명과 각 MCP 서버 지침의 최대 길이(문자 수)입니다(기본값: 2048). Claude Code는 [더 긴 텍스트를 잘라냅니다](/docs/ko/mcp#for-mcp-server-authors). 숫자로 된 양의 정수를 허용합니다. 그 외의 값은 무시되고 기본값이 적용됩니다. Claude Code v2.1.280 이상이 필요합니다 |321| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Claude Code가 모델에 보내는 각 MCP 도구 설명 및 각 MCP 서버 지침의 최대 길이(문자 수)입니다(기본값: 2048). Claude Code는 [더 긴 텍스트를 잘라냅니다](/docs/ko/mcp#for-mcp-server-authors). 양의 정수를 일반 숫자로 허용합니다. 그 외의 값은 무시되고 기본값이 적용됩니다. Claude Code v2.1.280 이상이 필요합니다 |

321| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 대부분의 요청에 대한 최대 출력 토큰 수를 설정합니다. 기본값과 상한은 모델마다 다릅니다. [최대 출력 토큰](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison)을 참조하세요. Claude Code는 모델의 상한을 초과하는 값을 상한으로 낮춥니다. Claude Code가 알고 있는 모델로 확인할 수 없는 모델 ID의 경우 기본값은 32000이고 상한은 128000입니다. 이 값을 늘리면 [자동 압축](/docs/ko/costs#reduce-token-usage)이 트리거되기 전에 사용할 수 있는 유효 컨텍스트 윈도우가 줄어듭니다 |322| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 대부분의 요청에 대한 최대 출력 토큰 수를 설정합니다. 기본값과 상한은 모델마다 다릅니다. [최대 출력 토큰](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison)을 참조하세요. Claude Code는 모델의 상한보다 큰 값을 상한으로 낮춥니다. Claude Code가 알고 있는 모델로 해석할 수 없는 모델 ID의 경우 기본값은 32000이고 상한은 128000입니다. 이 값을 늘리면 [자동 압축](/docs/ko/costs#reduce-token-usage)이 트리거되기 전에 사용할 수 있는 유효 컨텍스트 윈도우가 줄어듭니다 |

322| `CLAUDE_CODE_MAX_RETRIES` | 실패한 API 요청을 재시도하는 횟수를 재정의합니다(기본값: 10). v2.1.186부터 최대 15로 제한됩니다. v2.1.199부터는 `CLAUDE_CODE_RETRY_WATCHDOG`이 기본값을 높이고 상한을 제거합니다. 더 긴 장애 동안 기다려야 하는 무인 세션에는 대신 `CLAUDE_CODE_RETRY_WATCHDOG`을 설정합니다 |323| `CLAUDE_CODE_MAX_RETRIES` | 실패한 API 요청의 재시도 횟수를 재정의합니다(기본값: 10). v2.1.186부터 최대 15로 제한되며, v2.1.199부터는 `CLAUDE_CODE_RETRY_WATCHDOG`가 기본값을 높이고 상한을 제거합니다. 더 긴 장애를 기다려야 하는 무인 세션에는 대신 `CLAUDE_CODE_RETRY_WATCHDOG`를 설정합니다 |

323| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | v2.1.224에서 제거되어 현재는 아무 효과가 없습니다. 이전에는 Claude가 한 세션에서 Agent 도구로 생성할 수 있는 [서브에이전트](/docs/ko/sub-agents)의 총수를 제한했습니다(기본값: 200). 상한을 넘어 생성하면 `Subagent spawn limit reached`와 함께 실패했습니다. [동시 서브에이전트 제한](/docs/ko/sub-agents#concurrent-subagent-limit)과 [깊이 제한](/docs/ko/sub-agents#let-subagents-spawn-their-own-subagents)은 여전히 적용됩니다 |324| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | v2.1.224에서 제거되었으며 이제 아무 효과가 없습니다. 이전에는 한 세션에서 Claude가 Agent 도구로 생성할 수 있는 [서브에이전트](/docs/ko/sub-agents)의 총 수를 제한했으며(기본값: 200), 상한을 넘어 생성하면 `Subagent spawn limit reached`와 함께 실패했습니다. [동시 서브에이전트 제한](/docs/ko/sub-agents#concurrent-subagent-limit)과 [깊이 제한](/docs/ko/sub-agents#let-subagents-spawn-their-own-subagents)은 여전히 적용됩니다 |

324| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | 메인 대화 아래에 허용되는 [서브에이전트 계층](/docs/ko/sub-agents#let-subagents-spawn-their-own-subagents) 수 (기본값: 3)입니다. 기본값에서는 서브에이전트가 자체 서브에이전트를 생성할 수 있으며, 세 번째 계층의 서브에이전트는 더 이상 생성할 수 없습니다. 중첩을 끄려면 `1`로 설정합니다. v2.1.217부터 v2.1.218까지는 기본값이 1이었으므로 제한을 높이지 않으면 서브에이전트가 자체 서브에이전트를 생성할 수 없었습니다. v2.1.219에서 기본값이 3으로 높아졌습니다. 숫자로 된 양의 정수를 허용하며, 그 외의 값은 무시되므로 제한을 조정할 수는 있지만 제거할 수는 없습니다. Claude Code v2.1.217 이상이 필요합니다 |325| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | 주 대화 아래에 허용되는 [서브에이전트 계층](/docs/ko/sub-agents#let-subagents-spawn-their-own-subagents) 수 (기본값: 3)입니다. 기본값에서는 서브에이전트가 자체 서브에이전트를 생성할 수 있으며, 세 번째 계층의 서브에이전트는 더 이상 생성할 수 없습니다. 중첩을 끄려면 `1`로 설정합니다. v2.1.217부터 v2.1.218까지는 기본값이 1이었으므로 제한을 높이지 않으면 서브에이전트가 자체 서브에이전트를 생성할 수 없었으며, v2.1.219에서 기본값이 3으로 높아졌습니다. 양의 정수를 일반 숫자로 허용하며, 그 외의 값은 무시되므로 제한을 조정할 수는 있지만 제거할 수는 없습니다. Claude Code v2.1.217 이상이 필요합니다 |

325| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 병렬로 실행할 수 있는 읽기 전용 도구 및 서브에이전트의 최대 수입니다(기본값: 10). 값이 높을수록 병렬 처리가 늘어나지만 더 많은 리소스를 소비합니다 |326| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 병렬로 실행할 수 있는 읽기 전용 도구 및 서브에이전트의 최대 수입니다(기본값: 10). 값이 클수록 병렬성이 높아지지만 더 많은 리소스를 사용합니다 |

326| `CLAUDE_CODE_MAX_TURNS` | 명시적 제한이 전달되지 않을 때 에이전트 턴 수를 제한합니다. [`--max-turns`](/docs/ko/cli-reference#cli-flags)를 전달하는 것과 같으며, 둘 다 설정된 경우 `--max-turns`가 우선합니다. 양의 정수가 아닌 값은 제한 없음으로 처리되지 않고 시작 시 오류와 함께 거부됩니다 |327| `CLAUDE_CODE_MAX_TURNS` | 명시적 제한이 전달되지 않을 때 에이전트 턴 수의 상한을 지정합니다. [`--max-turns`](/docs/ko/cli-reference#cli-flags)를 전달하는 것과 동일하며, 둘 다 설정된 경우 플래그가 우선합니다. 양의 정수가 아닌 값은 상한 없음으로 처리되지 않고 시작 시 오류와 함께 거부됩니다 |

327| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | 한 세션에서 수행할 수 있는 [WebSearch](/docs/ko/tools-reference#websearch-tool-behavior) 호출의 총수 상한입니다(기본값: 200). Claude가 상한에 도달하면 이후 WebSearch 호출은 이미 수집한 정보로 계속 진행하라는 알림을 반환합니다. 상한이 없는 양의 정수를 허용합니다. 그 외의 값은 무시되고 기본값이 적용되므로 상한을 높일 수는 있지만 끌 수는 없습니다. Claude Code v2.1.212 이상이 필요합니다 |328| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | 한 세션에서 수행할 수 있는 [WebSearch](/docs/ko/tools-reference#websearch-tool-behavior) 호출 총 수의 상한입니다(기본값: 200). Claude가 상한에 도달하면 이후 WebSearch 호출은 이미 수집한 정보로 계속 진행하라는 알림을 반환합니다. 상한이 없는 양의 정수를 허용합니다. 그 외의 값은 무시되고 기본값이 적용되므로 상한을 높일 수는 있지만 끌 수는 없습니다. Claude Code v2.1.212 이상이 필요합니다 |

328| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | 셸 환경을 상속하는 대신 안전한 기본 환경과 서버에 구성된 `env`만으로 stdio MCP 서버를 생성하려면 `1`로 설정합니다 |329| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | 셸 환경을 상속하는 대신 안전한 기본 환경과 서버에 구성된 `env`만으로 stdio MCP 서버를 생성하려면 `1`로 설정합니다 |

329| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | 아직 실행 중인 MCP 도구 호출이 [백그라운드 작업으로 이동하기](/docs/ko/mcp#automatic-backgrounding-of-long-tool-calls) 전까지의 경과 시간(밀리초)입니다(기본값: 120000, 즉 2분). 자동 백그라운드 전환을 끄려면 `0`으로 설정합니다. Claude Code v2.1.212 이상이 필요합니다 |330| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | 아직 실행 중인 MCP 도구 호출이 [백그라운드 작업으로 이동하기](/docs/ko/mcp#automatic-backgrounding-of-long-tool-calls) 전까지의 경과 시간(밀리초)입니다(기본값: 120000, 즉 2분). 자동 백그라운드 전환을 끄려면 `0`으로 설정합니다. Claude Code v2.1.212 이상이 필요합니다 |

330| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | [비대화형](/docs/ko/headless) 세션의 첫 번째 턴이 아직 연결 중인 MCP 서버를 기다리는 시간(밀리초)으로, 기본 [첫 번째 턴 대기](/docs/ko/agent-sdk/mcp#connection-timing)를 대신합니다. 설정하면 대기는 보류 중인 모든 서버에 적용됩니다. 대기를 건너뛰려면 `0`으로 설정합니다. [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags) 서버는 값과 관계없이 자체 `MCP_TIMEOUT` 대기를 유지합니다. Claude Code v2.1.274 이상이 필요합니다 |331| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | [비대화형](/docs/ko/headless) 세션의 첫 번째 턴이 아직 연결 중인 MCP 서버를 기다리는 시간(밀리초)으로, 기본 [첫 번째 턴 대기](/docs/ko/agent-sdk/mcp#connection-timing) 대신 사용됩니다. 설정하면 대기 시간이 보류 중인 모든 서버에 적용됩니다. 대기를 건너뛰려면 `0`으로 설정합니다. [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags) 서버는 값과 관계없이 자체 `MCP_TIMEOUT` 대기를 유지합니다. Claude Code v2.1.274 이상이 필요합니다 |

331| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | MCP 도구 호출의 유휴 타임아웃(밀리초)입니다. stdio, HTTP, SSE, WebSocket 또는 [claude.ai 커넥터](/docs/ko/mcp#use-mcp-servers-from-claude-ai) MCP 서버가 이 시간 동안 응답이나 진행 알림을 보내지 않으면, 도구 호출은 전체 `MCP_TOOL_TIMEOUT`을 기다리지 않고 오류와 함께 중단됩니다. 네트워크 서버의 경우 300000(5분), stdio 서버의 경우 1800000(30분)인 전송 방식별 기본값을 재정의합니다. 유휴 검사를 비활성화하려면 `0`으로 설정합니다. 1000 미만의 값은 1초로 올려지며, 값은 유효 `MCP_TOOL_TIMEOUT`으로 제한됩니다. `.mcp.json`의 서버별 `timeout`이 1000 이상이면 해당 서버의 유휴 시간 범위가 최소 `timeout` 값까지 늘어납니다. IDE 서버나 SDK 프로세스 내 서버에는 적용되지 않습니다. Claude Code v2.1.187 이상이 필요합니다. v2.1.203 이전에는 stdio 서버가 유휴 타임아웃에서 제외되었습니다 |332| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | MCP 도구 호출의 유휴 타임아웃(밀리초)입니다. stdio, HTTP, SSE, WebSocket 또는 [claude.ai 커넥터](/docs/ko/mcp#use-mcp-servers-from-claude-ai) MCP 서버가 이 시간 동안 응답이나 진행 알림을 보내지 않으면, 도구 호출은 전체 `MCP_TOOL_TIMEOUT`을 기다리지 않고 오류와 함께 중단됩니다. 네트워크 서버의 경우 300000(5분), stdio 서버의 경우 1800000(30분)인 전송 방식별 기본값을 재정의합니다. 유휴 검사를 비활성화하려면 `0`으로 설정합니다. 1000 미만의 값은 1초로 올려지며, 값은 유효 `MCP_TOOL_TIMEOUT`으로 제한됩니다. `.mcp.json`에서 서버별 `timeout`이 1000 이상이면 해당 서버의 유휴 기간이 최소 `timeout` 값으로 늘어납니다. IDE 서버나 SDK 인프로세스 서버에는 적용되지 않습니다. Claude Code v2.1.187 이상이 필요합니다. v2.1.203 이전에는 stdio 서버가 유휴 타임아웃에서 제외되었습니다 |

332| `CLAUDE_CODE_MESSAGING_SOCKET` | 사용자가 아니라 Claude Code가 설정합니다. [수신함 소켓](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)을 바인딩하는 세션에서 Claude Code는 소켓을 바인딩할 때 해당 소켓의 경로를 훅과 Bash 명령에 내보냅니다. 메시징이 켜진 상태로 시작하는 세션에서는 Claude Code가 훅이 실행되기 전에 소켓을 바인딩합니다. 머신의 다른 세션은 이 경로로 메시지를 전달합니다. 각 세션은 부모로부터 상속된 소켓이 아닌 자체 소켓을 내보내며, 이 소켓으로 도착하는 메시지는 세션의 [인바운드 제어](/docs/ko/cross-session-messaging#control-inbound-messages)를 거칩니다. 설정의 `env` 블록으로는 설정할 수 없습니다. Claude Code v2.1.224 이상이 필요합니다 |333| `CLAUDE_CODE_MESSAGING_SOCKET` | 사용자가 아닌 Claude Code가 설정합니다. [받은 편지함 소켓](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)을 바인딩하는 세션에서 Claude Code는 소켓을 바인딩할 때 해당 소켓의 경로를 훅과 Bash 명령에 내보냅니다. 메시징이 켜진 상태로 시작하는 세션에서는 Claude Code가 훅이 실행되기 전에 소켓을 바인딩합니다. 머신의 다른 세션은 이 경로로 메시지를 전달합니다. 각 세션은 부모에게서 상속한 소켓이 아닌 자체 소켓을 내보내며, 이 소켓으로 도착하는 메시지는 세션의 [수신 제어](/docs/ko/cross-session-messaging#control-inbound-messages)를 거칩니다. 설정의 `env` 블록으로는 설정할 수 없습니다. Claude Code v2.1.224 이상이 필요합니다 |

333| `CLAUDE_CODE_MESSAGING_TOKEN` | 사용자가 아니라 Claude Code가 설정합니다. [수신함 소켓](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)을 바인딩하는 세션에서 Claude Code는 `CLAUDE_CODE_MESSAGING_SOCKET`과 함께 이 세션별 토큰을 훅과 Bash 명령에 내보냅니다. 소켓에 게시하는 스크립트는 첫 번째 줄로 `{"type":"auth","token":"<token>"}`를 보내 해당 세션에 속함을 증명할 수 있습니다. 네이티브 Windows에서는 Claude Code가 이 줄을 요구하며, 유효한 줄로 시작하지 않는 연결은 닫습니다. Claude Code가 토큰을 확인하는 시점은 [자식 프로세스 규칙](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)에 설명되어 있습니다. 각 세션은 부모 세션에서 상속된 토큰이 아닌 자체 토큰을 내보냅니다. 설정의 `env` 블록으로는 설정할 수 없습니다. Claude Code v2.1.228 이상이 필요합니다 |334| `CLAUDE_CODE_MESSAGING_TOKEN` | 사용자가 아닌 Claude Code가 설정합니다. [받은 편지함 소켓](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)을 바인딩하는 세션에서 Claude Code는 이 세션별 토큰을 `CLAUDE_CODE_MESSAGING_SOCKET`과 함께 훅과 Bash 명령에 내보냅니다. 소켓에 게시하는 스크립트는 첫 번째 줄로 `{"type":"auth","token":"<token>"}`를 보내 해당 세션에 속함을 증명할 수 있습니다. 네이티브 Windows에서는 Claude Code가 이 줄을 요구하며, 유효한 줄로 시작하지 않는 연결은 모두 닫습니다. [자체 자식 규칙](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)에서 Claude Code가 토큰을 참조하는 시점을 설명합니다. 각 세션은 부모 세션에서 상속한 토큰이 아닌 자체 토큰을 내보냅니다. 설정의 `env` 블록으로는 설정할 수 없습니다. Claude Code v2.1.228 이상이 필요합니다 |

334| `CLAUDE_CODE_NATIVE_CURSOR` | 그려진 블록 대신 입력 캐럿 위치에 터미널 자체 커서를 표시하려면 `1`로 설정합니다. 커서는 터미널의 깜박임, 모양, 포커스 설정을 따릅니다 |335| `CLAUDE_CODE_NATIVE_CURSOR` | 그려진 블록 대신 입력 캐럿 위치에 터미널 자체 커서를 표시하려면 `1`로 설정합니다. 커서는 터미널의 깜박임, 모양, 포커스 설정을 따릅니다 |

335| `CLAUDE_CODE_NEW_INIT` | `/init`이 대화형 설정 흐름을 실행하도록 하려면 `1`로 설정합니다. 이 흐름은 코드베이스를 탐색하고 파일을 작성하기 전에 CLAUDE.md, 스킬, 훅 등 어떤 파일을 생성할지 묻습니다. 이 변수가 없으면 `/init`은 묻지 않고 CLAUDE.md를 자동으로 생성합니다 |336| `CLAUDE_CODE_NEW_INIT` | `/init`이 대화형 설정 흐름을 실행하도록 하려면 `1`로 설정합니다. 이 흐름은 코드베이스를 탐색하고 파일을 작성하기 전에 CLAUDE.md, 스킬, 훅을 포함하여 생성할 파일을 묻습니다. 이 변수가 없으면 `/init`은 묻지 않고 CLAUDE.md를 자동으로 생성합니다 |

336| `CLAUDE_CODE_NONBLOCKING_STDOUT` | 두 번째 논블로킹 파일 디스크립터를 통해 터미널 출력을 쓰려면 `1`로 설정합니다. 이렇게 하면 일시 중지된 tmux 컨트롤 모드 창이나 멈춘 SSH 연결처럼 읽기를 중단한 터미널이 세션 도중 Claude Code를 멈추게 할 수 없습니다. stdout이 터미널인 경우 macOS, Linux, WSL에 적용됩니다. Claude Code v2.1.261 이상이 필요합니다 |337| `CLAUDE_CODE_NONBLOCKING_STDOUT` | 일시 중지된 tmux 제어 모드 창이나 정체된 SSH 연결처럼 읽기를 멈춘 터미널이 세션 도중 Claude Code를 멈추게 하지 않도록, 두 번째 논블로킹 파일 디스크립터를 통해 터미널 출력을 쓰려면 `1`로 설정합니다. stdout이 터미널일 때 macOS, Linux, WSL에서 적용됩니다. Claude Code v2.1.261 이상이 필요합니다 |

337| `CLAUDE_CODE_NO_FLICKER` | 깜박임을 줄이고 긴 대화에서 메모리 사용량을 일정하게 유지하는 리서치 프리뷰인 [전체 화면 렌더링](/docs/ko/fullscreen)을 활성화하려면 `1`로 설정합니다. [`tui`](/docs/ko/settings-reference#tui) 설정을 재정의합니다. `/tui fullscreen`으로 전환할 수도 있습니다 |338| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | 시간 초과된 [비스트리밍 요청](/docs/ko/errors#streaming-response-ended-before-any-complete-data-was-received)을 Claude Code가 다시 보내는 횟수를 제한합니다. `0`이면 첫 번째 시간 초과에서 요청이 실패합니다. 기본적으로 설정되어 있지 않으므로 `CLAUDE_CODE_MAX_RETRIES`가 이러한 재전송을 제한합니다. 타임아웃에 대해서는 [재시도 동작 조정](/docs/ko/errors#tune-retry-behavior)을 참조하세요. Claude Code v2.1.285 이상이 필요합니다 |

338| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Claude.ai 인증을 위한 OAuth 새로 고침 토큰입니다. 설정하면 `claude auth login`이 브라우저를 여는 대신 이 토큰을 직접 교환합니다. `CLAUDE_CODE_OAUTH_SCOPES`가 필요합니다. 자동화된 환경에서 인증을 프로비저닝할 때 유용합니다 |339| `CLAUDE_CODE_NO_FLICKER` | 깜박임을 줄이고 긴 대화에서 메모리 사용량을 일정하게 유지하는 리서치 프리뷰인 [전체 화면 렌더링](/docs/ko/fullscreen)을 활성화하려면 `1`로 설정합니다. [`tui`](/docs/ko/settings-reference#tui) 설정을 재정의하며, `/tui fullscreen`으로도 전환할 수 있습니다 |

339| `CLAUDE_CODE_OAUTH_SCOPES` | 새로 고침 토큰이 발급될 때 사용된, 공백으로 구분된 OAuth 범위입니다(예: `"user:profile user:inference user:sessions:claude_code"`). `CLAUDE_CODE_OAUTH_REFRESH_TOKEN`이 설정된 경우 필요합니다 |340| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Claude.ai 인증을 위한 OAuth 새로 고침 토큰입니다. 설정하면 `claude auth login`이 브라우저를 여는 대신 이 토큰을 직접 교환합니다. `CLAUDE_CODE_OAUTH_SCOPES`가 필요합니다. 자동화된 환경에서 인증을 프로비저닝하는 데 유용합니다 |

340| `CLAUDE_CODE_OAUTH_TOKEN` | claude.ai 인증을 위한 OAuth 액세스 토큰입니다. SDK 및 자동화된 환경에서 `/login`의 대안입니다. 키체인에 저장된 자격 증명보다 우선합니다. [`claude setup-token`](/docs/ko/authentication#generate-a-long-lived-token)으로 생성합니다. [`/login`](/docs/ko/authentication#authentication-precedence)을 실행하지 않는 한 Claude Code는 세션 전체에서 설정한 토큰을 사용합니다. 만료된 토큰을 교체하려면 새 토큰을 생성하고 다시 시작합니다 |341| `CLAUDE_CODE_OAUTH_SCOPES` | 새로 고침 토큰이 발급될 때 사용된 공백으로 구분된 OAuth 범위입니다(예: `"user:profile user:inference user:sessions:claude_code"`). `CLAUDE_CODE_OAUTH_REFRESH_TOKEN`이 설정된 경우 필요합니다 |

341| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | v2.1.160에서 제거되어 현재는 아무 효과가 없습니다. 이전에는 [빠른 모드](/docs/ko/fast-mode)를 현재 기본값 대신 Claude Opus 4.6으로 고정했습니다. Opus 4.6은 더 이상 빠른 모드를 지원하지 않습니다 |342| `CLAUDE_CODE_OAUTH_TOKEN` | claude.ai 인증을 위한 OAuth 액세스 토큰입니다. SDK 및 자동화된 환경에서 `/login` 대신 사용할 수 있습니다. 키체인에 저장된 자격 증명보다 우선합니다. [`claude setup-token`](/docs/ko/authentication#generate-a-long-lived-token)으로 생성합니다. [`/login`](/docs/ko/authentication#authentication-precedence)을 실행하지 않는 한 Claude Code는 설정한 토큰을 세션 전체에서 사용합니다. 만료된 토큰을 교체하려면 새 토큰을 생성하고 다시 시작합니다 |

342| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | 콘텐츠를 포함하는 OpenTelemetry 속성(모델 응답, 도구 콘텐츠, 시스템 프롬프트, 원시 API 본문)의 최대 길이로, 잘림 마커를 포함하며 UTF-16 코드 단위로 측정합니다(기본값: 61440, 즉 60KB). 텔레메트리 백엔드가 64KB보다 큰 속성 값을 허용하는 경우에만 늘리거나, 텔레메트리 양을 줄이려면 낮춥니다. Claude Code v2.1.214 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |343| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | v2.1.160에서 제거되었으며 이제 아무 효과가 없습니다. 이전에는 [빠른 모드](/docs/ko/fast-mode)를 현재 기본값 대신 Claude Opus 4.6으로 고정했습니다. Opus 4.6은 더 이상 빠른 모드를 지원하지 않습니다 |

343| `CLAUDE_CODE_OTEL_DIAG_STDERR` | OpenTelemetry 익스포터의 진단 오류를 stderr에 쓰려면 `1`로 설정합니다. 기본적으로 이러한 오류는 `--debug`를 사용할 때만 표시되므로, 그렇지 않으면 Prometheus 포트 충돌과 같이 잘못 구성된 익스포터가 아무 알림 없이 실패합니다. Claude Code v2.1.179 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |344| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | 콘텐츠를 담는 OpenTelemetry 속성(모델 응답, 도구 콘텐츠, 시스템 프롬프트, 원시 API 본문)의 최대 길이로, 잘림 표시를 포함하며 UTF-16 코드 단위로 측정됩니다(기본값: 61440, 즉 60 KB). 텔레메트리 백엔드가 64 KB보다 큰 속성 값을 허용하는 경우에만 늘리고, 텔레메트리 양을 줄이려면 낮춥니다. Claude Code v2.1.214 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

344| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | 보류 중인 OpenTelemetry 스팬을 플러시하기 위한 타임아웃(밀리초)입니다(기본값: 5000). [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |345| `CLAUDE_CODE_OTEL_DIAG_STDERR` | OpenTelemetry 익스포터 진단 오류를 stderr에 기록하려면 `1`로 설정합니다. 기본적으로 이러한 오류는 `--debug`에서만 표시되므로, 그렇지 않으면 Prometheus 포트 충돌과 같이 잘못 구성된 익스포터가 조용히 실패합니다. Claude Code v2.1.179 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

346| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | 보류 중인 OpenTelemetry 스팬을 플러시하는 타임아웃(밀리초)입니다(기본값: 5000). [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

345| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 동적 OpenTelemetry 헤더를 새로 고치는 간격(밀리초)입니다(기본값: 1740000 / 29분). [동적 헤더](/docs/ko/monitoring-usage#dynamic-headers)를 참조하세요 |347| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 동적 OpenTelemetry 헤더를 새로 고치는 간격(밀리초)입니다(기본값: 1740000 / 29분). [동적 헤더](/docs/ko/monitoring-usage#dynamic-headers)를 참조하세요 |

346| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | 종료 시 OpenTelemetry 익스포터가 완료되기까지의 타임아웃(밀리초)입니다(기본값: 2000). 종료 시 메트릭이 누락되면 값을 늘립니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |348| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | 종료 시 OpenTelemetry 익스포터가 완료되기까지의 타임아웃(밀리초)입니다(기본값: 2000). 종료 시 메트릭이 누락되면 늘립니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

347| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | 새 버전이 있을 때 Claude Code가 백그라운드에서 패키지 관리자의 업그레이드 명령을 실행하도록 하려면 `1`로 설정합니다. Homebrew 및 WinGet 설치에 적용됩니다. 다른 패키지 관리자는 업그레이드 명령을 실행하지 않고 계속 표시만 합니다. [자동 업데이트](/docs/ko/setup#auto-updates)를 참조하세요 |349| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | 새 버전이 있을 때 Claude Code가 패키지 관리자의 업그레이드 명령을 백그라운드에서 실행하도록 하려면 `1`로 설정합니다. Homebrew 및 WinGet 설치에 적용됩니다. 다른 패키지 관리자는 계속해서 업그레이드 명령을 실행하지 않고 표시만 합니다. [자동 업데이트](/docs/ko/setup#auto-updates)를 참조하세요 |

348| `CLAUDE_CODE_PERFORCE_MODE` | Perforce 인식 쓰기 보호를 활성화하려면 `1`로 설정합니다. 설정하면 대상 파일에 소유자 쓰기 비트가 없을 때 Edit, Write, NotebookEdit이 `p4 edit <file>` 힌트와 함께 실패합니다. Perforce는 동기화된 파일에서 `p4 edit`으로 열 때까지 이 비트를 해제합니다. 이를 통해 Claude Code가 Perforce 변경 추적을 우회하는 것을 방지합니다 |350| `CLAUDE_CODE_PERFORCE_MODE` | Perforce 인식 쓰기 보호를 활성화하려면 `1`로 설정합니다. 설정하면 대상 파일에 소유자 쓰기 비트가 없을 때 Edit, Write, NotebookEdit이 `p4 edit <file>` 힌트와 함께 실패합니다. Perforce는 `p4 edit`으로 열 때까지 동기화된 파일에서 이 비트를 해제합니다. 이를 통해 Claude Code가 Perforce 변경 추적을 우회하는 것을 방지합니다 |

349| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 플러그인 루트 디렉터리를 재정의합니다. 이름과 달리 이 변수는 캐시 자체가 아닌 상위 디렉터리를 설정합니다. 마켓플레이스와 플러그인 캐시는 이 경로 아래의 하위 디렉터리에 있습니다. 기본값은 `~/.claude/plugins`입니다 |351| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 플러그인 루트 디렉터리를 재정의합니다. 이름과 달리 캐시 자체가 아닌 상위 디렉터리를 설정합니다. 마켓플레이스와 플러그인 캐시는 이 경로 아래의 하위 디렉터리에 있습니다. 기본값은 `~/.claude/plugins`입니다 |

350| `CLAUDE_CODE_PLUGIN_DIRS` | 세션에 로드할 플러그인 디렉터리로, 각각 [`--plugin-dir`](/docs/ko/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) 플래그가 로드하는 방식으로 로드됩니다. 여러 경로는 Unix에서는 `:`, Windows에서는 `;`로 구분합니다. Claude Code는 상대 경로를 건너뛰므로 각 경로를 절대 경로로 지정하거나 `~`로 시작합니다. Claude Code v2.1.280 이상이 필요합니다. [한 세션에 플러그인 로드하기](/docs/ko/plugins/create#load-a-directory-or-archive-for-one-session)를 참조하세요 |352| `CLAUDE_CODE_PLUGIN_DIRS` | 세션에 로드할 플러그인 디렉터리로, 각 디렉터리는 [`--plugin-dir`](/docs/ko/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) 플래그와 같은 방식으로 로드됩니다. 여러 경로는 Unix에서는 `:`, Windows에서는 `;`로 구분합니다. Claude Code는 상대 경로를 건너뛰므로 각 경로를 절대 경로로 지정하거나 `~`로 시작합니다. Claude Code v2.1.280 이상이 필요합니다. [한 세션에 플러그인 로드](/docs/ko/plugins/create#load-a-directory-or-archive-for-one-session)를 참조하세요 |

351| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | 플러그인 마켓플레이스를 복제하거나 새로 고치기 위한 타임아웃(밀리초)입니다(기본값: 120000). 대형 저장소나 느린 네트워크 연결의 경우 이 값을 늘립니다. [Git 복제 시간 초과](/docs/ko/plugins/troubleshooting#git-clone-timed-out-after-120s)를 참조하세요 |353| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | 플러그인 마켓플레이스를 복제하거나 새로 고치는 타임아웃(밀리초)입니다(기본값: 120000). 대용량 저장소나 느린 네트워크 연결의 경우 이 값을 늘립니다. [Git clone timed out](/docs/ko/plugins/troubleshooting#git-clone-timed-out-after-120s)을 참조하세요 |

352| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | 마켓플레이스 새로 고침이 원격에 연결하거나 인증할 수 없을 때 재복제 시도를 건너뛰고 기존 마켓플레이스 체크아웃을 계속 사용하려면 `1`로 설정합니다. 재복제가 같은 방식으로 실패할 오프라인 또는 에어갭 환경에서 유용합니다. [오프라인 환경에서 마켓플레이스 업데이트 실패](/docs/ko/plugins/troubleshooting#marketplace-updates-keep-failing-offline)를 참조하세요 |354| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | 마켓플레이스 새로 고침이 원격에 연결하거나 인증할 수 없을 때 재복제 시도를 건너뛰고 기존 마켓플레이스 체크아웃을 계속 사용하려면 `1`로 설정합니다. 재복제도 같은 방식으로 실패할 오프라인 또는 에어갭 환경에서 유용합니다. [오프라인 환경에서 마켓플레이스 업데이트 실패](/docs/ko/plugins/troubleshooting#marketplace-updates-keep-failing-offline)를 참조하세요 |

353| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | GitHub `owner/repo` 축약형 소스를 SSH 대신 HTTPS로 복제하려면 `1`로 설정합니다. 플러그인 설치 및 업데이트와 `/plugin marketplace add` 및 `update`에 적용됩니다. CI 러너, 컨테이너 또는 `github.com`에 대한 SSH 키가 구성되지 않은 모든 환경에서 유용합니다 |355| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | GitHub `owner/repo` 축약형 소스를 SSH 대신 HTTPS로 복제하려면 `1`로 설정합니다. 플러그인 설치 및 업데이트와 `/plugin marketplace add` 및 `update`에 적용됩니다. CI 러너, 컨테이너 또는 `github.com`용 SSH 키가 구성되지 않은 모든 환경에서 유용합니다 |

354| `CLAUDE_CODE_PLUGIN_SEED_DIR` | 하나 이상의 읽기 전용 플러그인 시드 디렉터리 경로로, Unix에서는 `:`, Windows에서는 `;`로 구분합니다. 미리 채워진 플러그인 디렉터리를 컨테이너 이미지에 번들로 포함할 때 사용합니다. Claude Code는 시작 시 이 디렉터리에서 마켓플레이스를 등록하고 재복제 없이 미리 캐시된 플러그인을 사용합니다. [컨테이너용 플러그인 미리 채우기](/docs/ko/plugins/org#seed-containers-and-ci)를 참조하세요 |356| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Unix에서는 `:`, Windows에서는 `;`로 구분된 하나 이상의 읽기 전용 플러그인 시드 디렉터리 경로입니다. 미리 채워진 플러그인 디렉터리를 컨테이너 이미지에 번들로 포함할 때 사용합니다. Claude Code는 시작 시 이 디렉터리에서 마켓플레이스를 등록하고 미리 캐시된 플러그인을 재복제 없이 사용합니다. [컨테이너용 플러그인 미리 채우기](/docs/ko/plugins/org#seed-containers-and-ci)를 참조하세요 |

355| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | 도구 호출, 훅, 상태줄 명령을 위해 PowerShell을 생성할 때 Claude Code가 `-ExecutionPolicy Bypass`를 전달하지 않고 대신 머신의 유효 실행 정책을 따르도록 하려면 `1`로 설정합니다. 기본적으로 Claude Code는 기본값이 Restricted인 Windows 설치에서도 `.ps1` 스크립트와 모듈 가져오기가 작동하도록 프로세스 범위에서 실행 정책을 우회합니다. 프로세스 범위 우회는 이 설정과 관계없이 그룹 정책 `MachinePolicy` 또는 `UserPolicy`를 재정의하지 않습니다 |357| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | 도구 호출, 훅, 상태줄 명령을 위해 PowerShell을 생성할 때 Claude Code가 `-ExecutionPolicy Bypass`를 전달하지 않고 대신 머신의 유효 실행 정책을 따르도록 하려면 `1`로 설정합니다. 기본적으로 Claude Code는 프로세스 범위에서 실행 정책을 우회하므로 기본값이 Restricted인 Windows 설치에서도 `.ps1` 스크립트와 모듈 가져오기가 작동합니다. 프로세스 범위 우회는 이 설정과 관계없이 그룹 정책 `MachinePolicy` 또는 `UserPolicy`를 재정의하지 않습니다 |

356| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | `-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless#background-tasks-at-exit)에서 마지막 턴 이후 백그라운드 서브에이전트와 워크플로를 유휴 상태로 기다리는 시간의 상한(밀리초)입니다. Claude가 백그라운드 결과를 처리하기 위해 턴을 진행할 때마다 유휴 대기가 다시 시작됩니다. 기본값: `600000`, 즉 10분. 유휴 대기가 상한에 도달하면 Claude Code는 남은 백그라운드 작업을 기다리지 않고 종료합니다. 무기한 기다리려면 `0`으로 설정합니다. 이 상한은 일반 백그라운드 셸에 적용되는 5초 유예 기간과는 별개입니다. Claude Code v2.1.182 이상이 필요합니다 |358| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | `-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless#background-tasks-at-exit)에서 마지막 턴 이후 백그라운드 서브에이전트와 워크플로를 유휴 상태로 기다리는 시간의 상한(밀리초)입니다. 유휴 대기는 Claude가 백그라운드 결과를 처리하기 위해 턴을 수행할 때마다 다시 시작됩니다. 기본값: `600000`, 즉 10분. 유휴 대기가 상한에 도달하면 Claude Code는 남은 백그라운드 작업 대기를 중단하고 종료합니다. 무기한 대기하려면 `0`으로 설정합니다. 이 상한은 일반 백그라운드 셸에 적용되는 5초 유예 기간과 별개입니다. Claude Code v2.1.182 이상이 필요합니다 |

357| `CLAUDE_CODE_PROCESS_WRAPPER` | [에이전트 뷰](/docs/ko/agent-view) 세션을 호스팅하는 백그라운드 서비스처럼 Claude Code가 자체 바이너리에서 시작하는 프로세스를, `/opt/corp/launcher`와 같은 argv 접두사로 지정한 기업용 런처를 통해 실행합니다. 분리된 백그라운드 서비스가 이를 상속하도록 셸 export가 아닌 사용자 설정 또는 [관리형 설정](/docs/ko/managed-settings)의 `env` 블록에 설정합니다. 프로젝트 및 로컬 설정에서는 설정할 수 없습니다. Claude Code v2.1.210 이상이 필요한 [`processWrapper` 설정](/docs/ko/settings-reference#processwrapper)과 동일하며, 둘 다 설정된 경우 이 변수가 우선합니다. VS Code 확장은 자체 `claudeProcessWrapper` 설정을 통해 별도로 런처를 구성합니다. Windows에서는 무시됩니다. 값 형식, 런처가 다루는 범위, 런처가 충족해야 하는 계약은 [기업용 런처 뒤에서 Claude Code 실행하기](/docs/ko/corporate-launcher)를 참조하세요. Claude Code v2.1.208 이상이 필요합니다 |359| `CLAUDE_CODE_PROCESS_WRAPPER` | [에이전트 뷰](/docs/ko/agent-view) 세션을 호스팅하는 백그라운드 서비스처럼 Claude Code가 자체 바이너리에서 시작하는 프로세스를 `/opt/corp/launcher`와 같은 argv 접두사로 지정한 회사 런처를 통해 실행합니다. 분리된 백그라운드 서비스가 상속하도록 셸 export가 아닌 사용자 설정 또는 [관리형 설정](/docs/ko/managed-settings)의 `env` 블록에서 설정합니다. 프로젝트 및 로컬 설정에서는 설정할 수 없습니다. [`processWrapper` 설정](/docs/ko/settings-reference#processwrapper)과 동일하며, 이 설정은 Claude Code v2.1.210 이상이 필요합니다. 둘 다 설정된 경우 이 변수가 우선합니다. VS Code 확장은 `claudeProcessWrapper` 설정을 통해 자체 런처를 별도로 구성합니다. Windows에서는 무시됩니다. 값 형식, 런처가 다루는 범위, 런처가 충족해야 하는 계약은 [회사 런처 뒤에서 Claude Code 실행](/docs/ko/corporate-launcher)을 참조하세요. Claude Code v2.1.208 이상이 필요합니다 |

358| `CLAUDE_CODE_PROJECT_DIR_NAME` | `CLAUDE_CONFIG_DIR`과 함께 설정하여, 작업 디렉터리 경로에서 파생된 이름 대신 Claude Code가 해당 세션의 트랜스크립트와 자동 메모리를 저장하는 `projects/` 디렉터리 이름을 선택합니다. 예를 들어 `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude`로 Claude Code를 시작하면 `/srv/tenant-a/projects/work/` 아래에 저장됩니다. Claude Code는 `CLAUDE_CONFIG_DIR`이 설정되지 않은 경우 이 변수를 무시하며, `claude`를 시작하는 환경에서만 읽고 [설정 파일의 `env` 블록](#in-settings-files)에서는 읽지 않습니다. [프로젝트 디렉터리 이름 직접 지정하기](/docs/ko/sessions#name-the-project-directory-yourself)를 참조하세요. Claude Code v2.1.234 이상이 필요합니다 |360| `CLAUDE_CODE_PROJECT_DIR_NAME` | `CLAUDE_CONFIG_DIR`와 함께 설정하여, 작업 디렉터리 경로에서 파생된 이름 대신 Claude Code가 해당 세션의 트랜스크립트와 자동 메모리를 저장할 `projects/` 디렉터리 이름을 선택합니다. 예를 들어 `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude`로 Claude Code를 시작하면 `/srv/tenant-a/projects/work/` 아래에 저장됩니다. `CLAUDE_CONFIG_DIR`가 설정되지 않은 경우 Claude Code는 이 변수를 무시하며, [설정 파일 `env` 블록](#in-settings-files)이 아닌 `claude`를 시작하는 환경에서만 읽습니다. [프로젝트 디렉터리 이름 직접 지정](/docs/ko/sessions#name-the-project-directory-yourself)을 참조하세요. Claude Code v2.1.234 이상이 필요합니다 |

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

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

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

362| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | 호출자 대신 프록시가 DNS 확인을 수행하도록 허용하려면 `1`로 설정합니다. 프록시가 호스트 이름 확인을 처리해야 하는 환경을 위한 옵트인 설정입니다 |364| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | 호출자 대신 프록시가 DNS 확인을 수행하도록 허용하려면 `1`로 설정합니다. 프록시가 호스트 이름 확인을 처리해야 하는 환경을 위한 옵트인 설정입니다 |

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

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

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

366| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 이전 세션이 턴 도중에 종료된 경우 자동으로 재개하려면 `1`로 설정합니다. SDK 모드에서 SDK가 프롬프트를 다시 보내지 않아도 모델이 계속 진행하도록 하는 데 사용됩니다. 끄려면 변수 설정을 해제하거나 `0`으로 설정합니다. VS Code 채팅 패널의 경우 [다시 로드 후 대화 계속하기](/docs/ko/vs-code#continue-conversations-after-a-reload)를 참조하세요 |368| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 이전 세션이 턴 도중에 종료된 경우 자동으로 재개하려면 `1`로 설정합니다. SDK가 프롬프트를 다시 보내지 않아도 모델이 계속 진행하도록 SDK 모드에서 사용됩니다. 끄려면 변수를 설정 해제하거나 `0`으로 설정합니다. VS Code 채팅 패널의 경우 [다시 로드 후 대화 계속하기](/docs/ko/vs-code#continue-conversations-after-a-reload)를 참조하세요 |

367| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | 턴 도중에 종료된 세션이 재개 시 자동으로 계속되기 위한 마지막 트랜스크립트 메시지의 최대 경과 시간(밀리초)입니다. 마지막 메시지가 이 한계보다 오래되면 Claude Code는 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 자동 재개와 `CLAUDE_CODE_RESUME_PROMPT` 계속 메시지를 건너뛰고, 세션은 유휴 상태로 시작되므로 사용자가 명시적으로 계속해야 합니다. 설정하지 않거나 `0`이면 한계가 없습니다. 단, 마지막 요청이 API 오류로 실패한 턴은 해당 오류가 발생한 지 6시간 미만인 경우에만 재개됩니다. 양수 값은 이러한 턴을 포함한 모든 턴에 한계를 적용하며, 음수 또는 숫자가 아닌 값은 1시간 한계를 적용합니다. 장기 실행 에이전트의 생성 스크립트에서 이 값을 설정하면 오래된 트랜스크립트로 재시작할 때 오래된 프롬프트가 다시 실행되지 않도록 할 수 있습니다. Claude Code는 대화형 세션에서 대화를 상속한 [에이전트 뷰](/docs/ko/agent-view) 세션이 충돌하여 재시작할 때 자체적으로 1시간 한계를 설정합니다. Claude Code v2.1.211 이상이 필요합니다 |369| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | 턴 도중 종료된 세션이 재개 시 자동으로 계속되기 위한 마지막 트랜스크립트 메시지의 최대 경과 시간(밀리초)입니다. 마지막 메시지가 이 한도보다 오래되면 Claude Code는 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 자동 재개와 `CLAUDE_CODE_RESUME_PROMPT` 계속 메시지를 건너뛰고, 세션은 유휴 상태로 시작되어 사용자가 명시적으로 계속해야 합니다. 설정하지 않거나 `0`이면 한도가 없습니다. 단, 마지막 요청이 API 오류로 실패한 턴은 해당 오류가 발생한 지 6시간이 지나지 않은 경우에만 재개됩니다. 양수 값은 이러한 턴을 포함한 모든 턴에 한도를 적용하며, 음수 또는 숫자가 아닌 값은 1시간 한도를 적용합니다. 장기 실행 에이전트의 생성 스크립트는 이 값을 설정하여 오래된 트랜스크립트로 다시 시작할 때 오래된 프롬프트가 다시 실행되지 않도록 할 수 있습니다. Claude Code는 대화형 세션에서 대화를 상속한 [에이전트 뷰](/docs/ko/agent-view) 세션이 충돌한 후 다시 시작할 때 자체적으로 1시간 한도를 설정합니다. Claude Code v2.1.211 이상이 필요합니다 |

368| `CLAUDE_CODE_RESUME_PROMPT` | `CLAUDE_CODE_RESUME_INTERRUPTED_TURN`이 프롬프트를 다시 보내는 대신 중단된 턴을 계속할 때, 또는 `-p`로 [지연된 도구 호출](/docs/ko/hooks#defer-a-tool-call-for-later)을 재개할 때 Claude Code가 Claude에 보내는 계속 메시지를 재정의합니다. 기본값은 `Continue from where you left off.`입니다. 빈 문자열을 지정하면 기본값이 사용됩니다 |370| `CLAUDE_CODE_RESUME_PROMPT` | `CLAUDE_CODE_RESUME_INTERRUPTED_TURN`이 프롬프트를 다시 보내는 대신 중단된 턴을 계속할 때, 또는 `-p`로 [지연된 도구 호출](/docs/ko/hooks#defer-a-tool-call-for-later)을 재개할 때 Claude Code가 Claude에게 보내는 계속 메시지를 재정의합니다. 기본값은 `Continue from where you left off.`입니다. 빈 문자열은 기본값을 사용합니다 |

369| `CLAUDE_CODE_RETRY_WATCHDOG` | eval 하니스, CI 작업, 원격 워커와 같은 무인 세션에서는 `1`로 설정합니다. `429` 및 `529` 용량 오류를 `CLAUDE_CODE_MAX_RETRIES`회 시도 후 실패하는 대신 무기한 재시도합니다. 표준 속도 요청이 지출 한도나 소진된 사용량 크레딧을 보고하는 `429`를 받으면, 일정에 따라 재설정되는 [게이트웨이 지출 상한](/docs/ko/errors#spend-limit-reached)에서 온 경우라도 Claude Code는 즉시 실패합니다. v2.1.239 이전에는 watchdog이 이를 무기한 재시도했습니다. 빠른 모드 요청의 경우 [속도 제한 처리](/docs/ko/fast-mode#handle-rate-limits)를 참조하세요. watchdog은 시도 사이에 최대 5분까지, 또는 응답에 속도 제한 재설정 시간이 포함된 경우 제한이 재설정될 때까지 백오프하므로, 사용 한도에 도달한 세션은 남은 기간 동안 기다립니다. v2.1.199 이상에서는 서버 오류, 타임아웃, 끊어진 연결과 같은 기타 일시적 오류의 기본 재시도 횟수도 300(약 3시간의 백오프)으로 높이고, `CLAUDE_CODE_MAX_RETRIES`를 명시적으로 설정한 경우 15의 상한을 제거합니다. Claude Code v2.1.186 이상이 필요합니다 |371| `CLAUDE_CODE_RETRY_WATCHDOG` | 평가 하네스, CI 작업, 원격 워커와 같은 무인 세션에는 `1`로 설정합니다. `429` 및 `529` 용량 오류를 `CLAUDE_CODE_MAX_RETRIES`회 시도 후 실패하는 대신 무기한 재시도합니다. 표준 속도 요청이 지출 한도나 소진된 사용량 크레딧을 보고하는 `429`를 받으면, 일정에 따라 재설정되는 [게이트웨이 지출 상한](/docs/ko/errors#spend-limit-reached)에서 온 경우라도 Claude Code는 즉시 실패합니다. v2.1.239 이전에는 워치독이 이러한 오류를 무기한 재시도했습니다. 빠른 모드 요청의 경우 [속도 제한 처리](/docs/ko/fast-mode#handle-rate-limits)를 참조하세요. 워치독은 시도 간에 최대 5분까지, 또는 응답에 속도 제한 재설정 시간이 포함된 경우 제한이 재설정될 때까지 백오프하므로, 사용 한도에 도달한 세션은 남은 기간 동안 기다립니다. v2.1.199 이상에서는 서버 오류, 타임아웃, 연결 끊김과 같은 다른 일시적 오류의 기본 재시도 횟수도 약 3시간의 백오프에 해당하는 300으로 늘리고, `CLAUDE_CODE_MAX_RETRIES`를 명시적으로 설정한 경우 15의 상한을 제거합니다. Claude Code v2.1.186 이상이 필요합니다 |

370| `CLAUDE_CODE_SAFE_MODE` | 안전 모드로 시작하려면 `1`로 설정합니다. 안전 모드에서는 손상된 구성의 문제 해결을 위해 CLAUDE.md, 스킬, 플러그인, 훅, MCP 서버, 사용자 지정 명령 및 에이전트, 출력 스타일, 워크플로, 사용자 지정 테마, 사용자 지정 키보드 단축키, 상태줄 및 파일 제안 명령, LSP 서버, 자동 메모리가 로드되지 않습니다. 정책으로 구성된 훅, 상태줄, 파일 제안 명령을 포함한 관리형 설정 정책은 계속 적용되지만, 관리형 플러그인, 관리형 스킬, 관리형 CLAUDE.md, 정책으로 구성된 MCP 서버는 적용되지 않습니다. [`--safe-mode`](/docs/ko/cli-reference#cli-flags)를 전달하는 것과 같습니다. 직접 생성된 자식 프로세스는 이 변수를 상속합니다 |372| `CLAUDE_CODE_SAFE_MODE` | 손상된 구성의 문제 해결을 위해 안전 모드로 시작하려면 `1`로 설정합니다. 안전 모드에서는 CLAUDE.md, 스킬, 플러그인, 훅, MCP 서버, 사용자 지정 명령 및 에이전트, 출력 스타일, 워크플로, 사용자 지정 테마, 사용자 지정 키보드 단축키, 상태줄 및 파일 제안 명령, LSP 서버, 자동 메모리가 로드되지 않습니다. 정책으로 구성된 훅, 상태줄, 파일 제안 명령을 포함한 관리형 설정 정책은 계속 적용되지만, 관리형 플러그인, 관리형 스킬, 관리형 CLAUDE.md, 정책으로 구성된 MCP 서버는 적용되지 않습니다. [`--safe-mode`](/docs/ko/cli-reference#cli-flags)를 전달하는 것과 동일합니다. 직접 생성된 자식 프로세스는 이 변수를 상속합니다 |

371| `CLAUDE_CODE_SCRIPT_CAPS` | `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`이 설정된 경우 특정 스크립트를 세션당 호출할 수 있는 횟수를 제한하는 JSON 객체입니다. 키는 명령 텍스트와 대조하는 부분 문자열이고, 값은 정수 호출 제한입니다. 예를 들어 `{"deploy.sh": 2}`는 `deploy.sh`를 최대 두 번까지 호출할 수 있도록 허용합니다. 일치는 부분 문자열 기반이므로 `./scripts/deploy.sh $(evil)`과 같은 셸 확장 트릭도 상한에 포함됩니다. `xargs` 또는 `find -exec`를 통한 런타임 팬아웃은 감지되지 않습니다. 이는 심층 방어 제어입니다 |373| `CLAUDE_CODE_SCRIPT_CAPS` | `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`가 설정된 경우 특정 스크립트를 세션당 호출할 수 있는 횟수를 제한하는 JSON 객체입니다. 키는 명령 텍스트와 대조되는 하위 문자열이고, 값은 정수 호출 제한입니다. 예를 들어 `{"deploy.sh": 2}`는 `deploy.sh`를 최대 두 번까지 호출할 수 있도록 허용합니다. 일치는 하위 문자열 기반이므로 `./scripts/deploy.sh $(evil)`과 같은 셸 확장 기법도 상한에 포함됩니다. `xargs` 또는 `find -exec`를 통한 런타임 팬아웃은 감지되지 않으며, 이는 심층 방어 제어입니다 |

372| `CLAUDE_CODE_SCROLL_SPEED` | [전체 화면 렌더링](/docs/ko/fullscreen#mouse-wheel-scrolling)에서 마우스 휠 스크롤 배율을 설정합니다. 20 이하의 모든 양수 값을 허용하며, 이미 휠 이벤트를 증폭하는 터미널에서 가속된 트랙패드 및 휠 스크롤을 느리게 하기 위한 `0.5`와 같은 1 미만의 소수 값도 포함합니다. 터미널이 증폭 없이 노치당 하나의 휠 이벤트를 보내는 경우 `vim`과 맞추려면 `3`으로 설정합니다. Claude Code가 자체 스크롤 처리를 사용하는 JetBrains IDE 터미널에서는 무시됩니다 |374| `CLAUDE_CODE_SCROLL_SPEED` | [전체 화면 렌더링](/docs/ko/fullscreen#mouse-wheel-scrolling)에서 마우스 휠 스크롤 배율을 설정합니다. 20 이하의 모든 양수 값을 허용하며, 이미 휠 이벤트를 증폭하는 터미널에서 가속된 트랙패드 및 휠 스크롤을 늦추기 위한 `0.5`와 같은 1 미만의 소수 값도 허용합니다. 터미널이 증폭 없이 노치당 하나의 휠 이벤트를 보내는 경우 `vim`과 맞추려면 `3`으로 설정합니다. Claude Code가 자체 스크롤 처리를 사용하는 JetBrains IDE 터미널에서는 무시됩니다 |

373| `CLAUDE_CODE_SEND_FEEDBACK` | 세션에서 [Claude가 작성하는 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior)을 끄려면 `0`으로 설정합니다. 계정에 이미 액세스 권한이 있는 경우 켜려면 `1`로 설정합니다. 이 변수 자체로는 액세스 권한을 부여할 수 없으며, `DISABLE_FEEDBACK_COMMAND` 및 [`feedbackDrafts`](/docs/ko/settings-reference#feedbackdrafts) 설정의 `off` 값과 같이 피드백을 끄는 다른 스위치는 계속 적용됩니다 |375| `CLAUDE_CODE_SEND_FEEDBACK` | 세션에서 [Claude가 작성하는 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior)을 끄려면 `0`으로 설정합니다. 계정에 이미 액세스 권한이 있는 경우 켜려면 `1`로 설정합니다. 이 변수 자체로는 액세스 권한을 부여할 수 없으며, `DISABLE_FEEDBACK_COMMAND` 및 [`feedbackDrafts`](/docs/ko/settings-reference#feedbackdrafts) 설정의 `off` 값과 같이 피드백을 끄는 다른 스위치는 계속 적용됩니다 |

374| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | [SessionEnd](/docs/ko/hooks#sessionend) 훅의 시간 예산(밀리초)을 재정의합니다. 이 값은 자체 `timeout`을 설정하지 않은 각 훅의 타임아웃이기도 합니다. 세션 종료, `/clear`, 대화형 `/resume`을 통한 세션 전환에 적용됩니다. 기본적으로 예산은 1.5초이며, 설정 파일에 구성된 가장 높은 훅별 `timeout`까지 최대 60초로 자동으로 늘어납니다. 플러그인이 제공하는 훅의 타임아웃은 예산을 늘리지 않습니다 |376| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | [SessionEnd](/docs/ko/hooks#sessionend) 훅의 시간 예산(밀리초)을 재정의합니다. 이 값은 자체 `timeout`을 설정하지 않은 각 훅의 타임아웃이기도 합니다. 세션 종료, `/clear`, 대화형 `/resume`을 통한 세션 전환에 적용됩니다. 기본 예산은 1.5초이며, 설정 파일에 구성된 훅별 `timeout` 중 가장 높은 값으로 최대 60초까지 자동으로 늘어납니다. 플러그인이 제공하는 훅의 타임아웃은 예산을 늘리지 않습니다 |

375| `CLAUDE_CODE_SESSION_ID` | Bash 및 PowerShell 도구 하위 프로세스, [훅 명령](/docs/ko/hooks) 하위 프로세스, stdio [MCP 서버](/docs/ko/mcp) 하위 프로세스에서 현재 세션 ID로 자동 설정됩니다. Bash, PowerShell, 훅의 경우 이 값은 훅 JSON 입력의 `session_id` 필드와 일치하며 `/clear` 시 업데이트됩니다. MCP 서버 하위 프로세스는 생성될 때의 ID를 유지합니다. `--resume <session-id>`에서는 재개된 ID를 받아 훅 및 Bash와 일치합니다. 명시적 ID 없이 `--continue` 또는 `--resume`을 사용하면 대신 초기 시작 ID를 받을 수 있습니다. 스크립트 및 외부 도구를 이를 실행한 Claude Code 세션과 연관시키는 데 사용합니다 |377| `CLAUDE_CODE_SESSION_ID` | Bash 및 PowerShell 도구 하위 프로세스, [훅 명령](/docs/ko/hooks) 하위 프로세스, stdio [MCP 서버](/docs/ko/mcp) 하위 프로세스에서 현재 세션 ID로 자동 설정됩니다. Bash, PowerShell, 훅의 경우 이 값은 훅 JSON 입력의 `session_id` 필드와 일치하며 `/clear` 시 업데이트됩니다. MCP 서버 하위 프로세스는 생성될 때의 ID를 유지합니다. `--resume <session-id>`에서는 재개된 ID를 받아 훅 및 Bash와 일치합니다. 명시적 ID 없이 `--continue` 또는 `--resume`을 사용하면 대신 초기 시작 ID를 받을 수 있습니다. 스크립트와 외부 도구를 이를 실행한 Claude Code 세션과 연관시키는 데 사용합니다 |

376| `CLAUDE_CODE_SHELL` | Claude Code가 Bash 도구 명령을 실행하는 데 사용하는 셸을 설정합니다. `bash` 또는 `zsh` 바이너리 경로를 허용합니다(예: `/opt/homebrew/bin/bash`). `fish`와 같은 다른 셸은 지원되지 않습니다. 값이 작동하는 `bash` 또는 `zsh` 경로가 아니면 Claude Code는 이를 무시하고 자동 감지로 폴백합니다. 자동 감지는 `$SHELL`이 `bash` 또는 `zsh`를 가리키면 이를 사용하고, 그렇지 않으면 `PATH`와 표준 설치 위치에서 찾은 첫 번째로 작동하는 `zsh`, 그다음 `bash`를 선택합니다 |378| `CLAUDE_CODE_SHELL` | Claude Code가 Bash 도구 명령을 실행하는 데 사용하는 셸을 설정합니다. `bash` 또는 `zsh` 바이너리 경로를 허용합니다(예: `/opt/homebrew/bin/bash`). `fish`와 같은 다른 셸은 지원되지 않습니다. 값이 작동하는 `bash` 또는 `zsh` 경로가 아니면 Claude Code는 이를 무시하고 자동 감지로 폴백합니다. 자동 감지는 `$SHELL`이 `bash` 또는 `zsh`를 가리키면 이를 사용하고, 그렇지 않으면 `PATH`와 표준 설치 위치에서 찾은 첫 번째로 작동하는 `zsh`, 그다음 `bash`를 선택합니다 |

377| `CLAUDE_CODE_SHELL_PREFIX` | Claude Code가 생성하는 셸 명령을 감싸는 명령 접두사로, Bash 도구 호출, [훅](/docs/ko/hooks) 명령, [상태줄](/docs/ko/statusline) 명령, stdio [MCP 서버](/docs/ko/mcp) 시작 명령에 적용됩니다. PowerShell 훅과 exec 형식 훅은 접두사 없이 실행됩니다. 로깅이나 감사에 유용합니다. `/path/to/logger.sh`와 같은 단순 실행 파일 경로를 설정하면 각 명령이 `/path/to/logger.sh '<command>'`로 실행됩니다. 래퍼는 명령줄을 `$1`에 셸 인용된 단일 인수로 받으므로, 래퍼는 `exec bash -c "$1"`과 같이 셸로 `$1`을 다시 평가해야 합니다. `$1`을 단순 실행 파일 경로로 취급하면 `npx -y <package>`와 같은 인수를 전달하는 stdio MCP 서버가 작동하지 않습니다. Bash 도구 호출의 경우 `$1`에는 Claude가 실행한 명령뿐 아니라 환경 설정을 포함하여 Claude Code가 조립한 전체 셸 호출이 포함됩니다 |379| `CLAUDE_CODE_SHELL_PREFIX` | Claude Code가 생성하는 셸 명령을 감싸는 명령 접두사입니다. 대상은 Bash 도구 호출, [훅](/docs/ko/hooks) 명령, [상태줄](/docs/ko/statusline) 명령, stdio [MCP 서버](/docs/ko/mcp) 시작 명령입니다. PowerShell 훅과 exec 형식 훅은 접두사 없이 실행됩니다. 로깅이나 감사에 유용합니다. `/path/to/logger.sh`와 같은 단순 실행 파일 경로를 설정하면 각 명령이 `/path/to/logger.sh '<command>'`로 실행됩니다. 래퍼는 명령줄을 `$1`에 단일 셸 인용 인수로 받으므로, 래퍼는 `exec bash -c "$1"`처럼 셸로 `$1`을 다시 평가해야 합니다. `$1`을 단순 실행 파일 경로로 취급하면 `npx -y <package>`와 같은 인수를 전달하는 stdio MCP 서버가 작동하지 않습니다. Bash 도구 호출의 경우 `$1`에는 Claude가 실행한 명령뿐 아니라 환경 설정을 포함하여 Claude Code가 조합한 전체 셸 호출이 포함됩니다 |

378| `CLAUDE_CODE_SIMPLE` | 최소한의 시스템 프롬프트와 Bash, 파일 읽기, 파일 편집 도구만으로 실행하려면 `1`로 설정합니다. `--mcp-config`의 MCP 도구는 계속 사용할 수 있습니다. 훅, 스킬, 사용자 지정 명령, 서브에이전트, 설치된 플러그인, MCP 서버, 자동 메모리, CLAUDE.md의 자동 검색을 비활성화합니다. `--add-dir`로 전달한 디렉터리의 스킬은 계속 로드됩니다. OAuth 토큰과 키체인 자격 증명을 읽지 않으므로 Anthropic 인증은 `ANTHROPIC_API_KEY` 또는 `--settings`의 `apiKeyHelper`에서 제공되어야 합니다. [`--bare`](/docs/ko/headless#start-faster-with-bare-mode)를 전달하는 것과 같습니다 |380| `CLAUDE_CODE_SIMPLE` | 최소한의 시스템 프롬프트와 Bash, 파일 읽기, 파일 편집 도구만으로 실행하려면 `1`로 설정합니다. `--mcp-config`의 MCP 도구는 계속 사용할 수 있습니다. 훅, 스킬, 사용자 지정 명령, 서브에이전트, 설치된 플러그인, MCP 서버, 자동 메모리, CLAUDE.md의 자동 검색을 비활성화합니다. `--add-dir`로 전달한 디렉터리의 스킬은 계속 로드됩니다. OAuth 토큰과 키체인 자격 증명을 읽지 않으므로 Anthropic 인증은 `ANTHROPIC_API_KEY` 또는 `--settings`의 `apiKeyHelper`에서 제공되어야 합니다. [`--bare`](/docs/ko/headless#start-faster-with-bare-mode)를 전달하는 것과 동일합니다 |

379| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | 모든 모델에서 더 짧은 시스템 프롬프트와 축약된 도구 설명을 사용하려면 `1`로 설정합니다. 실험이나 서버 구성으로 활성화되는 모델에서도 사용하지 않으려면 `0`, `false`, `no`, `off`로 설정합니다. 전체 도구 세트, 훅, MCP 서버, CLAUDE.md 검색은 활성화된 상태로 유지됩니다 |381| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | 모든 모델에서 더 짧은 시스템 프롬프트와 축약된 도구 설명을 사용하려면 `1`로 설정합니다. 실험이나 서버 구성에 의해 활성화되는 모델에서도 옵트아웃하려면 `0`, `false`, `no` 또는 `off`로 설정합니다. 전체 도구 세트, 훅, MCP 서버, CLAUDE.md 검색은 계속 활성화됩니다 |

380| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | 요청에 직접 서명하는 게이트웨이를 위해 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)의 클라이언트 측 인증을 건너뜁니다 |382| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | 요청에 직접 서명하는 게이트웨이를 위해 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)의 클라이언트 측 인증을 건너뜁니다 |

381| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | AWS 기본 자격 증명 공급자 체인에서 확인한 자격 증명의 프로세스 내 캐시를 끄려면 `1`로 설정합니다. 이렇게 하면 Claude Code가 API 요청마다 체인을 확인합니다. 캐시가 꺼져 있으면 SSO 기반 프로필이 요청마다 IAM Identity Center에 자격 증명을 요청합니다. [자격 증명 캐싱 및 확인 타임아웃](/docs/ko/amazon-bedrock#credential-caching-and-resolution-timeout)을 참조하세요. Claude Code v2.1.207 이상이 필요합니다 |383| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | AWS 기본 자격 증명 공급자 체인에서 확인된 자격 증명의 프로세스 내 캐시를 끄려면 `1`로 설정합니다. 그러면 Claude Code가 모든 API 요청에서 체인을 확인합니다. 캐시가 꺼져 있으면 SSO 기반 프로필은 모든 요청에서 IAM Identity Center에 자격 증명을 요청합니다. [자격 증명 캐싱 및 확인 타임아웃](/docs/ko/amazon-bedrock#credential-caching-and-resolution-timeout)을 참조하세요. Claude Code v2.1.207 이상이 필요합니다 |

382| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Amazon Bedrock에 대한 AWS 인증을 건너뜁니다(예: LLM 게이트웨이를 사용하는 경우) |384| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Amazon Bedrock의 AWS 인증을 건너뜁니다(예: LLM 게이트웨이를 사용하는 경우) |

383| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | 확인 요청이 `api.anthropic.com`에 직접 연결하는 것을 차단하는 네트워크를 위해, 실패한 [빠른 모드](/docs/ko/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 가용성 확인을 사용 가능한 것으로 처리하려면 `1`로 설정합니다. Claude Code는 "disabled by your organization" 응답은 계속 따릅니다 |385| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | 검사의 `api.anthropic.com` 직접 요청을 차단하는 네트워크를 위해, 실패한 [빠른 모드](/docs/ko/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 가용성 검사를 사용 가능으로 처리하려면 `1`로 설정합니다. Claude Code는 "disabled by your organization" 응답은 여전히 따릅니다 |

384| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | 확인 요청을 거부하는 대신 가로채는 프록시를 위해 클라이언트 측 [빠른 모드](/docs/ko/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 가용성 확인을 건너뛰려면 `1`로 설정합니다. 조직에서 빠른 모드를 비활성화한 경우 API는 여전히 빠른 모드 요청을 거부합니다 |386| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | 검사 요청을 거부하지 않고 가로채는 프록시를 위해 클라이언트 측 [빠른 모드](/docs/ko/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 가용성 검사를 건너뛰려면 `1`로 설정합니다. 조직에서 빠른 모드를 비활성화한 경우 API는 여전히 빠른 모드 요청을 거부합니다 |

385| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | 자체 `Authorization` 헤더를 삽입하는 프록시나 게이트웨이를 위해 Microsoft Foundry에 대한 Azure 인증을 건너뜁니다. Claude Code는 Azure 자격 증명 없이 요청을 보내고, 예를 들어 `ANTHROPIC_CUSTOM_HEADERS`를 통해 제공하는 `Authorization` 헤더를 유지합니다. `ANTHROPIC_FOUNDRY_API_KEY` 또는 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`이 설정된 경우 무시됩니다. v2.1.203 이전에는 API 키도 함께 설정하지 않으면 이 변수로 인해 Microsoft Foundry 클라이언트가 요청을 보낼 수 없었습니다 |387| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | 자체 `Authorization` 헤더를 삽입하는 프록시 또는 게이트웨이를 위해 Microsoft Foundry의 Azure 인증을 건너뜁니다. Claude Code는 Azure 자격 증명 없이 요청을 보내며, 예를 들어 `ANTHROPIC_CUSTOM_HEADERS`를 통해 제공한 `Authorization` 헤더를 유지합니다. `ANTHROPIC_FOUNDRY_API_KEY` 또는 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`이 설정된 경우 무시됩니다. v2.1.203 이전에는 API 키도 함께 설정하지 않으면 이 변수로 인해 Microsoft Foundry 클라이언트가 요청을 보낼 수 없었습니다 |

386| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Amazon Bedrock Mantle에 대한 AWS 인증을 건너뜁니다(예: LLM 게이트웨이를 사용하는 경우) |388| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Amazon Bedrock Mantle의 AWS 인증을 건너뜁니다(예: LLM 게이트웨이를 사용하는 경우) |

387| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | [Amazon Bedrock](/docs/ko/amazon-bedrock) 및 [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai)의 [시작 모델 확인](/docs/ko/amazon-bedrock#startup-model-checks)은 계정에서 호출할 수 없는 것으로 확인된 모델을 이 머신에 최대 하루 동안 기억합니다. 이 기억 기능을 끄려면 `1`로 설정합니다. Claude Code v2.1.285 이상이 필요합니다 |389| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | [Amazon Bedrock](/docs/ko/amazon-bedrock) 및 [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai)의 [시작 모델 검사](/docs/ko/amazon-bedrock#startup-model-checks)는 계정이 호출할 수 없는 것으로 확인된 모델을 최대 하루 동안 이 머신에 기억합니다. 이 기억 기능을 끄려면 `1`로 설정합니다. Claude Code v2.1.285 이상이 필요합니다 |

388| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | 프롬프트 기록과 세션 트랜스크립트를 디스크에 쓰지 않으려면 `1`로 설정합니다. 이 변수를 설정한 상태로 시작한 세션은 `--resume`, `--continue` 또는 위쪽 화살표 기록에 나타나지 않습니다. 임시 스크립트 세션에 유용합니다 |390| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | 프롬프트 기록과 세션 트랜스크립트를 디스크에 쓰지 않으려면 `1`로 설정합니다. 이 변수를 설정한 상태로 시작한 세션은 `--resume`, `--continue` 또는 위쪽 화살표 기록에 표시되지 않습니다. 일회성 스크립트 세션에 유용합니다 |

389| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Google Cloud의 Agent Platform에 대한 Google 인증을 건너뜁니다(예: LLM 게이트웨이를 사용하는 경우) |391| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Google Cloud의 Agent Platform의 Google 인증을 건너뜁니다(예: LLM 게이트웨이를 사용하는 경우) |

390| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | `--output-format stream-json`으로 시작한 세션이, 원래는 stderr 출력만으로 끝나는 시작 실패에 대해 [Claude Code가 시작을 거부한 이유를 알려주는 결과 메시지](/docs/ko/agent-sdk/typescript#startup_failure_reason)를 쓰도록 하려면 `1`로 설정합니다. Claude Code v2.1.274 이상이 필요합니다 |392| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | `--output-format stream-json`으로 시작한 세션이, 그렇지 않으면 stderr 출력만으로 끝나는 시작 실패에 대해 [Claude Code가 시작을 거부한 이유를 명시하는 결과 메시지](/docs/ko/agent-sdk/typescript#startup_failure_reason)를 쓰도록 하려면 `1`로 설정합니다. Claude Code v2.1.274 이상이 필요합니다 |

391| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Claude Code가 이를 재정의하고 턴을 종료하기 전에 [Stop](/docs/ko/hooks#stop) 또는 [SubagentStop](/docs/ko/hooks#subagentstop) 훅이 턴 종료를 연속으로 차단할 수 있는 최대 횟수입니다(기본값: 8). 상한을 비활성화하려면 `0`으로 설정합니다. 훅이 해결하는 데 정당하게 더 많은 반복이 필요한 경우 이 값을 늘립니다 |393| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Claude Code가 [Stop](/docs/ko/hooks#stop) 또는 [SubagentStop](/docs/ko/hooks#subagentstop) 훅을 무시하고 턴을 종료하기 전까지, 해당 훅이 턴 종료를 연속으로 차단할 수 있는 최대 횟수입니다(기본값: 8). 상한을 비활성화하려면 `0`으로 설정합니다. 훅이 해결을 위해 실제로 더 많은 반복이 필요하다면 이 값을 늘립니다 |

392| `CLAUDE_CODE_SUBAGENT_MODEL` | 다른 방법으로 모델이 지정되지 않은 [서브에이전트](/docs/ko/sub-agents#choose-a-model), [에이전트 팀](/docs/ko/agent-teams#specify-teammates-and-models) 팀원, [워크플로](/docs/ko/workflows) 에이전트의 기본 모델입니다. `haiku`와 같은 별칭이나 전체 모델 이름을 허용합니다. 두 가지 소스가 이 값보다 우선합니다. Claude가 에이전트를 생성할 때 전달하는 모델과, `inherit`을 포함한 에이전트 정의의 `model` 필드입니다. 이를 변경하려면 [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/ko/sub-agents#run-every-subagent-on-one-model)를 설정합니다. 전체 순서는 [모델 선택](/docs/ko/sub-agents#choose-a-model)을 참조하세요. `inherit`으로 설정하는 것은 설정하지 않는 것과 같습니다. v2.1.251 이전에는 이 변수가 호출별 모델과 정의의 `model` 필드를 모두 재정의했습니다 |394| `CLAUDE_CODE_SUBAGENT_MODEL` | 다른 방식으로 모델이 할당되지 않은 [서브에이전트](/docs/ko/sub-agents#choose-a-model), [에이전트 팀](/docs/ko/agent-teams#specify-teammates-and-models) 팀원, [워크플로](/docs/ko/workflows) 에이전트의 기본 모델입니다. `haiku`와 같은 별칭이나 전체 모델 이름을 허용합니다. 두 가지 소스가 이 변수보다 우선합니다. Claude가 에이전트를 생성할 때 전달하는 모델과, `inherit`을 포함한 에이전트 정의의 `model` 필드입니다. 이를 변경하려면 [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/ko/sub-agents#run-every-subagent-on-one-model)를 설정합니다. 전체 순서는 [모델 선택](/docs/ko/sub-agents#choose-a-model)을 참조하세요. `inherit`으로 설정하는 것은 설정하지 않는 것과 같습니다. v2.1.251 이전에는 이 변수가 호출별 모델과 정의의 `model` 필드를 모두 재정의했습니다 |

393| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | 서브에이전트, 팀원, 워크플로 에이전트에 하나의 모델을 강제로 적용하려면 `1`로 설정합니다. 어떤 모델이 적용되는지는 [모든 서브에이전트를 하나의 모델로 실행하기](/docs/ko/sub-agents#run-every-subagent-on-one-model)에서 설명합니다. Claude Code v2.1.257 이상이 필요합니다 |395| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | 서브에이전트, 팀원, 워크플로 에이전트에 하나의 모델을 강제하려면 `1`로 설정합니다. 어떤 모델인지는 [모든 서브에이전트를 하나의 모델로 실행](/docs/ko/sub-agents#run-every-subagent-on-one-model)에서 설명합니다. Claude Code v2.1.257 이상이 필요합니다 |

394| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Claude Code가 허용하는 유일한 값인 `5m` 또는 `1h`로 설정하여 [서브에이전트](/docs/ko/sub-agents), 워크플로, 백그라운드 작업과 같이 메인 대화 외부의 요청에 대한 [프롬프트 캐시 TTL](/docs/ko/prompt-caching#cache-lifetime)을 선택합니다. `subagentPromptCacheTtl` 설정과 `ENABLE_PROMPT_CACHING_1H`보다 우선하며, `FORCE_PROMPT_CACHING_5M`이 이 변수를 재정의합니다. API는 1시간 캐시 쓰기에 더 높은 요금을 청구합니다. Claude Code v2.1.242 이상이 필요합니다 |396| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Claude Code가 허용하는 유일한 값인 `5m` 또는 `1h`로 설정하여 [서브에이전트](/docs/ko/sub-agents), 워크플로, 백그라운드 작업과 같이 주 대화 외부의 요청에 대한 [프롬프트 캐시 TTL](/docs/ko/prompt-caching#cache-lifetime)을 선택합니다. `subagentPromptCacheTtl` 설정과 `ENABLE_PROMPT_CACHING_1H`보다 우선하며, `FORCE_PROMPT_CACHING_5M`이 이 변수를 재정의합니다. API는 1시간 캐시 쓰기에 더 높은 요율을 청구합니다. Claude Code v2.1.242 이상이 필요합니다 |

395| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | 하위 프로세스 환경(Bash 도구, 훅, MCP stdio 서버)에서 자격 증명을 제거하려면 `1`로 설정합니다. 제거 대상은 Anthropic 및 클라우드 공급자 자격 증명, Claude Code가 자격 증명으로 인식하는 기타 모든 변수, 패키지 레지스트리 URL에 포함된 자격 증명입니다. 상위 Claude 프로세스는 API 호출을 위해 이러한 자격 증명을 유지하지만 자식 프로세스는 이를 읽을 수 없으므로, 셸 확장을 통해 비밀을 유출하려는 프롬프트 인젝션 공격에 대한 노출이 줄어듭니다. v2.1.251 이상에서는 Claude Code 자체 구성 저장소 포인터 변수(예: `CLAUDE_CONFIG_DIR`)도 제거하므로 자식 프로세스가 재배치된 구성 디렉터리를 찾을 수 없습니다. 하위 프로세스에 이러한 변수가 필요하면 이 변수를 설정하지 않은 상태로 둡니다. Linux에서는 Bash 하위 프로세스를 격리된 PID 네임스페이스에서 실행하여 `/proc`를 통해 호스트 프로세스 환경을 읽을 수 없게 합니다. 부작용으로 `ps`, `pgrep`, `kill`이 호스트 프로세스를 보거나 신호를 보낼 수 없습니다. `claude-code-action`은 `allowed_non_write_users`가 구성되면 이를 자동으로 설정합니다 |397| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | 하위 프로세스 환경(Bash 도구, 훅, MCP stdio 서버)에서 자격 증명을 제거하려면 `1`로 설정합니다. 제거 대상은 Anthropic 및 클라우드 공급자 자격 증명, Claude Code가 자격 증명으로 인식하는 기타 모든 변수, 패키지 레지스트리 URL에 포함된 자격 증명입니다. 부모 Claude 프로세스는 API 호출을 위해 이러한 자격 증명을 유지하지만 자식 프로세스는 이를 읽을 수 없으므로, 셸 확장을 통해 비밀을 유출하려는 프롬프트 인젝션 공격에 대한 노출이 줄어듭니다. v2.1.251 이상에서는 Claude Code 자체의 구성 스토어 포인터 변수(예: `CLAUDE_CONFIG_DIR`)도 제거하므로, 자식 프로세스가 위치가 변경된 구성 디렉터리를 찾을 수 없습니다. 하위 프로세스에 이러한 변수가 필요하면 이 변수를 설정하지 않습니다. Linux에서는 Bash 하위 프로세스를 격리된 PID 네임스페이스에서 실행하여 `/proc`를 통해 호스트 프로세스 환경을 읽을 수 없도록 합니다. 부작용으로 `ps`, `pgrep`, `kill`은 호스트 프로세스를 보거나 신호를 보낼 수 없습니다. `claude-code-action`은 `allowed_non_write_users`가 구성되면 이 변수를 자동으로 설정합니다 |

396| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 비대화형 모드(`-p` 플래그)에서 첫 번째 쿼리 전에 플러그인 설치가 완료될 때까지 기다리려면 `1`로 설정합니다. 이 설정이 없으면 플러그인은 백그라운드에서 설치되며 첫 번째 턴에서 사용하지 못할 수 있습니다. 대기 시간을 제한하려면 `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS`와 함께 사용합니다 |398| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 비대화형 모드(`-p` 플래그)에서 첫 번째 쿼리 전에 플러그인 설치가 완료될 때까지 기다리려면 `1`로 설정합니다. 이 설정이 없으면 플러그인이 백그라운드에서 설치되어 첫 번째 턴에서 사용하지 못할 수 있습니다. 대기 시간을 제한하려면 `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS`와 함께 사용합니다 |

397| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | 동기 플러그인 설치의 타임아웃(밀리초)입니다. 초과하면 Claude Code는 플러그인 없이 진행하고 오류를 로그에 기록합니다. 기본값은 없습니다. 이 변수가 없으면 동기 설치는 완료될 때까지 기다립니다 |399| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | 동기식 플러그인 설치의 타임아웃(밀리초)입니다. 초과하면 Claude Code는 플러그인 없이 진행하고 오류를 로그에 기록합니다. 기본값 없음: 이 변수가 없으면 동기식 설치는 완료될 때까지 기다립니다 |

398| `CLAUDE_CODE_SYNC_SKILLS` | `-p` 플래그를 사용하는 비대화형 모드에서, Claude Code가 해당 실행에서 claude.ai 계정에 활성화된 스킬을 다운로드하고 첫 번째 쿼리를 실행하기 전에 `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`까지 스킬 목록을 기다리도록 하려면 `1`로 설정합니다. 다운로드 자체는 백그라운드에서 완료되며, Claude는 스킬을 호출할 때 해당 스킬의 다운로드를 기다립니다. claude.ai 인증이 필요합니다. claude.ai 계정으로 로그인한 터미널 세션은 이 변수 없이도 이러한 스킬을 `~/.claude/skills/synced/`에 [다운로드하고](/docs/ko/skills#where-synced-skills-load) 약 10분마다 다시 동기화하므로, `-p` 실행의 첫 번째 쿼리에서 현재 스킬이 필요한 경우에만 설정합니다. v2.1.273 이전에는 터미널 세션이 이 변수가 설정된 `-p` 실행에서만 스킬을 다운로드했습니다. `synced` 폴더 이름은 [이 다운로드용으로 예약되어 있습니다](/docs/ko/skills#where-skills-live). v2.1.227 이전에는 스킬이 `~/.claude/skills/`에 직접 다운로드되었습니다. Claude Code는 머신에서 `!` 명령을 실행하지 않는 것과 같이 [다운로드된 스킬에 추가 규칙](/docs/ko/skills#how-synced-skills-behave)을 적용합니다 |400| `CLAUDE_CODE_SYNC_SKILLS` | `-p` 플래그를 사용하는 비대화형 모드에서 Claude Code가 해당 실행에서 claude.ai 계정에 활성화된 스킬을 다운로드하고, 첫 번째 쿼리를 실행하기 전에 `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`까지 스킬 목록을 기다리도록 하려면 `1`로 설정합니다. 다운로드 자체는 백그라운드에서 완료되며, Claude는 스킬을 호출할 때 해당 스킬의 다운로드를 기다립니다. claude.ai 인증이 필요합니다. claude.ai 계정으로 로그인하는 터미널 세션은 이 변수 없이도 이러한 스킬을 `~/.claude/skills/synced/`에 [다운로드하고](/docs/ko/skills#where-synced-skills-load) 약 10분마다 다시 동기화하므로, `-p` 실행의 첫 번째 쿼리에서 현재 스킬이 필요한 경우에만 설정합니다. v2.1.273 이전에는 터미널 세션이 이 변수가 설정된 `-p` 실행에서만 스킬을 다운로드했습니다. `synced` 폴더 이름은 [이 다운로드용으로 예약되어 있습니다](/docs/ko/skills#where-skills-live). v2.1.227 이전에는 스킬이 `~/.claude/skills/`에 직접 다운로드되었습니다. Claude Code는 [다운로드된 스킬에 추가 규칙을 적용하며](/docs/ko/skills#how-synced-skills-behave), 예를 들어 해당 스킬의 `!` 명령을 사용자의 머신에서 실행하지 않습니다 |

399| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | [Agent SDK](/docs/ko/agent-sdk/typescript#query-object)로 빌드된 앱이 스킬을 다시 로드할 때 세션 중에 실행되는 스킬 재동기화의 타임아웃(밀리초)입니다(기본값: 30000). 초과하면 도착한 스킬로 다시 로드가 계속되고, 남은 다운로드는 백그라운드에서 완료됩니다 |401| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | [Agent SDK](/docs/ko/agent-sdk/typescript#query-object)로 빌드된 앱이 스킬을 다시 로드할 때 세션 도중 실행되는 스킬 재동기화의 타임아웃(밀리초)입니다(기본값: 30000). 초과하면 다시 로드는 도착한 스킬로 계속 진행되고, 나머지 다운로드는 백그라운드에서 완료됩니다 |

400| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | `CLAUDE_CODE_SYNC_SKILLS`가 설정된 경우 첫 번째 쿼리가 초기 스킬 목록을 기다리는 타임아웃(밀리초)입니다(기본값: 5000). 초과하면 첫 번째 쿼리는 도착한 스킬로 실행됩니다. 어느 경우든 다운로드는 백그라운드에서 완료되며, Claude는 스킬을 호출할 때 해당 스킬의 다운로드를 기다립니다 |402| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | `CLAUDE_CODE_SYNC_SKILLS`가 설정된 경우 첫 번째 쿼리가 초기 스킬 목록을 기다리는 타임아웃(밀리초)입니다(기본값: 5000). 초과하면 첫 번째 쿼리는 도착한 스킬로 실행됩니다. 어느 경우든 다운로드는 백그라운드에서 완료되며, Claude는 스킬을 호출할 때 해당 스킬의 다운로드를 기다립니다 |

401| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | diff 출력에서 구문 강조를 비활성화하려면 `false`로 설정합니다. 색상이 터미널 설정과 충돌할 때 유용합니다. 코드 블록과 파일 미리 보기에서도 강조를 비활성화하려면 [`syntaxHighlightingDisabled`](/docs/ko/settings-reference#syntaxhighlightingdisabled) 설정을 사용합니다 |403| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | diff 출력에서 구문 강조를 비활성화하려면 `false`로 설정합니다. 색상이 터미널 설정을 방해할 때 유용합니다. 코드 블록과 파일 미리 보기에서도 강조를 비활성화하려면 [`syntaxHighlightingDisabled`](/docs/ko/settings-reference#syntaxhighlightingdisabled) 설정을 사용합니다 |

402| `CLAUDE_CODE_TASK_LIST_ID` | 세션 간에 작업 목록을 공유합니다. [Task 도구가 있는 세션](/docs/ko/tools-reference#task-tool-availability)에서 여러 Claude Code 인스턴스에 동일한 ID를 설정하여 공유 작업 목록에서 협업합니다. [작업 목록](/docs/ko/interactive-mode#task-list)을 참조하세요 |404| `CLAUDE_CODE_TASK_LIST_ID` | 세션 간에 작업 목록을 공유합니다. [Task 도구가 있는 세션](/docs/ko/tools-reference#task-tool-availability)에서 여러 Claude Code 인스턴스에 동일한 ID를 설정하여 공유 작업 목록으로 협업합니다. [작업 목록](/docs/ko/interactive-mode#task-list)을 참조하세요 |

403| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | 비대화형 세션이 종료 시 [에이전트 팀](/docs/ko/agent-teams) 해체가 완료될 때까지 기다리는 시간을 밀리초 단위로 재정의합니다. 1000에서 60000까지 허용하며, 범위를 벗어난 값은 무시되고 기본값 10000이 적용됩니다. Claude Code v2.1.206 이상이 필요합니다 |405| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | 비대화형 세션이 종료 시 [에이전트 팀](/docs/ko/agent-teams) 해체가 완료될 때까지 기다리는 시간을 밀리초 단위로 재정의합니다. 1000에서 60000까지 허용하며, 범위를 벗어난 값은 무시되고 기본값 10000이 적용됩니다. Claude Code v2.1.206 이상이 필요합니다 |

404| `CLAUDE_CODE_TMPDIR` | 내부 임시 파일에 사용되는 임시 디렉터리를 재정의합니다. Claude Code는 Unix에서는 이 경로에 `/claude-{uid}/`를, Windows에서는 `/claude/`를 추가합니다. 기본값: macOS에서는 `/tmp`, Linux 및 Windows에서는 `os.tmpdir()`. macOS와 Linux에서 재정의 경로가 긴 경우, 일부 도구는 임시 경로가 너무 길면 실패하므로 [샌드박스가 적용된](/docs/ko/sandboxing) Bash 하위 프로세스는 시스템 기본값 아래의 짧은 대체 `$TMPDIR`을 받습니다. 샌드박스가 적용되지 않은 Bash 명령은 셸의 `$TMPDIR`이 설정된 경우 이를 상속합니다. 네이티브 Windows에서 셸이 `$TMPDIR`을 설정하지 않으면, `$TMPDIR`을 참조하는 Bash 명령은 재정의 값을 받거나, 재정의를 설정하지 않은 경우 `%TEMP%`를 받습니다. Claude Code 자체 임시 파일은 항상 재정의 값을 사용합니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |406| `CLAUDE_CODE_TMPDIR` | 내부 임시 파일에 사용되는 임시 디렉터리를 재정의합니다. Claude Code는 Unix에서는 이 경로에 `/claude-{uid}/`를, Windows에서는 `/claude/`를 추가합니다. 기본값: macOS에서는 `/tmp`, Linux와 Windows에서는 `os.tmpdir()`. macOS와 Linux에서 재정의 값이 긴 경로이면 [샌드박스된](/docs/ko/sandboxing) Bash 하위 프로세스는 시스템 기본값 아래의 짧은 폴백 `$TMPDIR`을 받습니다. 일부 도구는 임시 경로가 너무 길면 실패하기 때문입니다. 샌드박스되지 않은 Bash 명령은 셸의 `$TMPDIR`이 설정되어 있으면 이를 상속합니다. 네이티브 Windows에서 셸이 `$TMPDIR`을 설정하지 않으면, `$TMPDIR`을 참조하는 Bash 명령은 재정의 값을 받거나, 재정의 값을 설정하지 않은 경우 `%TEMP%`를 받습니다. Claude Code 자체의 임시 파일은 항상 재정의 값을 사용합니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |

405| `CLAUDE_CODE_TMUX_TRUECOLOR` | tmux 내에서 24비트 트루컬러 출력을 허용하려면 `1`과 같이 비어 있지 않은 값으로 설정합니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 트루컬러가 허용됩니다**. 256색 제한을 복원하려면 변수를 설정 해제합니다. tmux는 따로 구성하지 않으면 트루컬러 이스케이프 시퀀스를 전달하지 않으므로, 기본적으로 Claude Code는 `$TMUX`가 설정되면 256색으로 제한합니다. `~/.tmux.conf`에 `set -ga terminal-overrides ',*:Tc'`를 추가한 후 이 변수를 설정합니다. 기타 tmux 설정은 [터미널 구성](/docs/ko/terminal-config)을 참조하세요 |407| `CLAUDE_CODE_TMUX_TRUECOLOR` | tmux 내에서 24비트 트루컬러 출력을 허용하려면 `1`과 같이 비어 있지 않은 값으로 설정합니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 트루컬러가 허용됩니다**. 256색 제한을 복원하려면 변수를 설정 해제합니다. 기본적으로 tmux는 구성하지 않는 한 트루컬러 이스케이프 시퀀스를 전달하지 않으므로, Claude Code는 `$TMUX`가 설정되면 256색으로 제한합니다. `~/.tmux.conf`에 `set -ga terminal-overrides ',*:Tc'`를 추가한 후 이 변수를 설정합니다. 다른 tmux 설정은 [터미널 구성](/docs/ko/terminal-config)을 참조하세요 |

406| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | Linux와 WSL에서 Claude Code가 [도구 메모리 상한에서 제외하는](/docs/ko/tools-reference#memory-limit-on-linux-and-wsl) 프로세스 종류를 `mcp` 또는 `lsp`와 같이 쉼표로 구분된 목록으로 설정합니다. 모든 종류에 상한을 적용하려면 `none`으로, Bash, PowerShell, Monitor 도구 명령에만 상한을 적용하려면 `all-new`로 설정합니다. 어떤 항목을 나열하든 Claude Code는 Bash, PowerShell, Monitor 도구 명령을 상한 아래에 둡니다. Claude Code v2.1.246 이상이 필요합니다 |408| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | Linux와 WSL에서 Claude Code가 [도구 메모리 상한에서 제외하는](/docs/ko/tools-reference#memory-limit-on-linux-and-wsl) 프로세스 종류의 쉼표로 구분된 목록으로 설정합니다(예: `mcp` 또는 `lsp`). 모든 종류에 상한을 적용하려면 `none`으로, Bash, PowerShell, Monitor 도구 명령에만 상한을 적용하려면 `all-new`로 설정합니다. Claude Code는 목록과 관계없이 Bash, PowerShell, Monitor 도구 명령을 상한 아래에 둡니다. Claude Code v2.1.246 이상이 필요합니다 |

407| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | Linux와 WSL에서 `4G`와 같은 크기로 설정하여 [Bash 및 PowerShell 도구 명령이 사용할 수 있는 메모리를 제한하며](/docs/ko/tools-reference#memory-limit-on-linux-and-wsl), v2.1.246 이상에서는 Monitor 도구 명령도 제한합니다. 크기는 숫자로 작성하며, 바이트 수는 숫자만, 그 외에는 `K`, `M`, `G`, `T` 접미사와 함께 작성합니다. 상한을 끄려면 `0` 또는 `off`로 설정합니다. Claude Code가 시작한 첫 번째 프로세스가 상한을 켜거나 끈 후에는, 변경된 값이 다음에 `claude`를 실행할 때 적용됩니다. Claude Code v2.1.233 이상이 필요합니다 |409| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | Linux와 WSL에서 `4G`와 같은 크기로 설정하여 [Bash 및 PowerShell 도구 명령이 사용할 수 있는 메모리를 제한합니다](/docs/ko/tools-reference#memory-limit-on-linux-and-wsl). v2.1.246 이상에서는 Monitor 도구 명령도 제한합니다. 크기는 일반 숫자로 작성하며, 바이트 수는 숫자만 쓰거나 `K`, `M`, `G`, `T` 접미사를 붙여 작성합니다. 상한을 끄려면 `0` 또는 `off`로 설정합니다. Claude Code가 시작하는 첫 번째 프로세스가 상한을 켜거나 끈 후에는, 변경된 값이 다음에 `claude`를 실행할 때 적용됩니다. Claude Code v2.1.233 이상이 필요합니다 |

408| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Claude Code가 [Remote Control](/docs/ko/remote-control) 또는 SDK 호스트와 같은 원격 클라이언트에 전달하는 대화 상자나 [보류된 세션 간 메시지](/docs/ko/cross-session-messaging#control-inbound-messages)의 승인 대화 상자를 취소하기 전까지의 기한(밀리초)입니다. 권한 프롬프트와 `AskUserQuestion` 질문은 자체 흐름을 사용하며 이 값의 적용을 받지 않습니다. Claude Code v2.1.236 이상에서는 무인으로 실행될 수 있는 세션에서 세션 중에 표시되는 [Fable 사용량 크레딧 동의 프롬프트](/docs/ko/model-config#fable-and-usage-credits)에도 기한을 적용합니다. 기한이 적용되지 않는 경우를 포함한 전체 보류 메시지 만료 규칙은 [인바운드 메시지 제어](/docs/ko/cross-session-messaging#control-inbound-messages) 및 [비대화형 세션](/docs/ko/cross-session-messaging#non-interactive-sessions)에서 다룹니다. [`dialogExpiry`](/docs/ko/settings-reference#dialogexpiry) 설정을 재정의합니다. `0` 또는 음수 값은 기한을 비활성화합니다 |410| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Claude Code가 [Remote Control](/docs/ko/remote-control) 또는 SDK 호스트와 같은 원격 클라이언트로 전달하는 대화 상자나, [보류된 세션 간 메시지](/docs/ko/cross-session-messaging#control-inbound-messages)의 승인 대화 상자를 취소하기 전까지의 기한(밀리초)입니다. 권한 프롬프트와 `AskUserQuestion` 질문은 자체 흐름을 사용하며 이 변수의 적용을 받지 않습니다. Claude Code v2.1.236 이상에서는 무인으로 실행될 수 있는 세션에서 세션 도중의 [Fable 사용량 크레딧 동의 프롬프트](/docs/ko/model-config#fable-and-usage-credits)에도 기한을 적용합니다. 기한이 적용되지 않는 경우를 포함한 보류 메시지 만료 규칙 전체는 [수신 메시지 제어](/docs/ko/cross-session-messaging#control-inbound-messages)와 [비대화형 세션](/docs/ko/cross-session-messaging#non-interactive-sessions)에서 다룹니다. [`dialogExpiry`](/docs/ko/settings-reference#dialogexpiry) 설정을 재정의합니다. `0` 또는 음수 값은 기한을 비활성화합니다 |

409| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)를 사용합니다 |411| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)를 사용합니다 |

410| `CLAUDE_CODE_USE_BEDROCK` | [Amazon Bedrock](/docs/ko/amazon-bedrock)을 사용합니다 |412| `CLAUDE_CODE_USE_BEDROCK` | [Amazon Bedrock](/docs/ko/amazon-bedrock)을 사용합니다 |

411| `CLAUDE_CODE_USE_FOUNDRY` | [Microsoft Foundry](/docs/ko/microsoft-foundry)를 사용합니다 |413| `CLAUDE_CODE_USE_FOUNDRY` | [Microsoft Foundry](/docs/ko/microsoft-foundry)를 사용합니다 |

412| `CLAUDE_CODE_USE_MANTLE` | Amazon Bedrock [Mantle 엔드포인트](/docs/ko/amazon-bedrock#use-the-mantle-endpoint)를 사용합니다 |414| `CLAUDE_CODE_USE_MANTLE` | Amazon Bedrock [Mantle 엔드포인트](/docs/ko/amazon-bedrock#use-the-mantle-endpoint)를 사용합니다 |

413| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | ripgrep 대신 Node.js 파일 API를 사용하여 사용자 지정 명령, 서브에이전트, 출력 스타일을 검색하려면 `1`로 설정합니다. 번들된 ripgrep 바이너리를 사용할 수 없거나 환경에서 차단된 경우 설정합니다. Grep 또는 파일 검색 도구에는 영향을 주지 않습니다 |415| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | ripgrep 대신 Node.js 파일 API를 사용하여 사용자 지정 명령, 서브에이전트, 출력 스타일을 검색하려면 `1`로 설정합니다. 번들된 ripgrep 바이너리를 사용할 수 없거나 환경에서 차단된 경우 설정합니다. Grep 또는 파일 검색 도구에는 영향을 주지 않습니다 |

414| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | PowerShell 도구를 제어합니다. Git Bash가 없는 Windows에서는 도구가 자동으로 활성화되며, 비활성화하려면 `0`으로 설정합니다. Git Bash가 설치된 Windows에서는 claude.ai 및 Console 계정에 대해 기본적으로 도구가 켜져 있습니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 세션에서 활성화하려면 `1`로, 끄려면 `0`으로 설정합니다. Linux, macOS, WSL에서는 활성화하려면 `1`로 설정하며, `PATH`에 `pwsh`가 있어야 합니다. Windows에서 활성화하면 Claude는 Git Bash를 거치지 않고 PowerShell 명령을 네이티브로 실행할 수 있습니다. [PowerShell 도구](/docs/ko/tools-reference#powershell-tool)를 참조하세요 |416| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | PowerShell 도구를 제어합니다. Git Bash가 없는 Windows에서는 도구가 자동으로 활성화되며, 비활성화하려면 `0`으로 설정합니다. Git Bash가 설치된 Windows에서는 claude.ai 및 Console 계정의 경우 도구가 기본적으로 켜져 있습니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 세션에서 활성화하려면 `1`로, 끄려면 `0`으로 설정합니다. Linux, macOS, WSL에서는 활성화하려면 `1`로 설정하며, 이 경우 `PATH`에 `pwsh`가 있어야 합니다. Windows에서 활성화되면 Claude는 Git Bash를 거치지 않고 PowerShell 명령을 네이티브로 실행할 수 있습니다. [PowerShell 도구](/docs/ko/tools-reference#powershell-tool)를 참조하세요 |

415| `CLAUDE_CODE_USE_VERTEX` | [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai)을 사용합니다 |417| `CLAUDE_CODE_USE_VERTEX` | [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai)을 사용합니다 |

416| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior)가 가져온 각 URL의 응답을 캐시에 유지하는 시간(밀리초)으로 설정합니다. 기본값은 `900000`, 즉 15분입니다. 숫자만 허용되며, `0`, 소수 또는 기타 표기는 기본값을 유지합니다. Claude Code는 실행할 때마다 값을 한 번 읽으므로, 설정 `env` 블록의 변경 사항은 다음에 `claude`를 실행할 때 적용됩니다. Claude Code v2.1.233 이상이 필요합니다 |418| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior)가 가져온 각 URL의 응답을 캐시에 유지하는 시간(밀리초)으로 설정합니다. 기본값은 15분에 해당하는 `900000`입니다. 일반 숫자만 허용되며, `0`, 소수 또는 기타 표기는 기본값을 유지합니다. Claude Code는 실행할 때마다 값을 한 번 읽으므로, 설정 `env` 블록의 변경 사항은 다음에 `claude`를 실행할 때 적용됩니다. Claude Code v2.1.233 이상이 필요합니다 |

417| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior)가 따라가는 리디렉션을 포함하여 페이지 다운로드를 기다리는 시간의 상한(밀리초)입니다. 그때까지 완료되지 않은 다운로드는 기한 오류로 실패합니다. 기본값은 `300000`, 즉 5분입니다. 제한을 없애려면 `0`으로 설정합니다. 숫자만 허용되며, 소수 또는 기타 표기는 기본값을 유지합니다. Claude Code v2.1.268 이상이 필요합니다 |419| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior)가 따르는 리디렉션을 포함하여 페이지 다운로드를 기다리는 시간의 상한(밀리초)입니다. 그때까지 완료되지 않은 다운로드는 기한 오류와 함께 실패합니다. 기본값은 5분에 해당하는 `300000`입니다. 제한을 제거하려면 `0`으로 설정합니다. 일반 숫자만 허용되며, 소수 또는 기타 표기는 기본값을 유지합니다. Claude Code v2.1.268 이상이 필요합니다 |

418| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | 단일 [워크플로](/docs/ko/workflows) 실행이 동시에 실행하는 에이전트 수로, `1`부터 `256`까지 지정할 수 있습니다. 기본적으로 실행은 최대 16개의 에이전트를 동시에 실행하며, Claude Code가 사용할 수 있는 CPU가 적으면 더 적게 실행합니다. 대기 중인 `agent()` 호출은 빈 슬롯을 기다립니다. 실행 중인 각 에이전트의 트랜스크립트는 Claude Code의 메모리에 유지되므로 값이 높을수록 메모리 사용량이 늘어납니다. 숫자만 허용되며, 범위를 벗어난 값과 기타 표기는 기본값을 유지합니다. Claude Code v2.1.269 이상이 필요합니다 |420| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | 단일 [워크플로](/docs/ko/workflows) 실행이 동시에 실행하는 에이전트 수로, `1`부터 `256`까지 지정할 수 있습니다. 기본적으로 한 번의 실행은 최대 16개의 에이전트를 동시에 실행하며, Claude Code가 사용할 수 있는 CPU가 더 적으면 그보다 적게 실행합니다. 대기 중인 `agent()` 호출은 빈 슬롯이 생길 때까지 기다립니다. 실행 중인 각 에이전트의 트랜스크립트는 Claude Code의 메모리에 유지되므로 값이 높을수록 메모리 사용량이 늘어납니다. 숫자만 허용되며, 범위를 벗어난 값이나 다른 표기는 기본값을 유지합니다. Claude Code v2.1.269 이상이 필요합니다 |

419| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | [워크플로](/docs/ko/workflows) 에이전트가 자체 첫 요청을 보내기 전에 동일한 접두사를 가진 형제 에이전트의 첫 응답이 시작되기를 기다리는 최대 시간(밀리초)입니다. 팬아웃이 [프롬프트 캐시 접두사](/docs/ko/workflows#prompt-caching-in-a-fan-out)를 공유하는 여러 에이전트를 시작하면 Claude Code는 첫 번째 에이전트를 제외한 나머지 에이전트를 최대 이 시간만큼 대기시켜, 각 에이전트가 접두사를 캐시 없이 처리하는 대신 캐시된 접두사를 읽도록 합니다. 기본값은 `5000`입니다. `0`으로 설정하면 대기를 비활성화합니다. `DISABLE_PROMPT_CACHING`이 설정된 경우 에이전트는 대기하지 않습니다. Claude Code v2.1.229 이상이 필요합니다 |421| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | [워크플로](/docs/ko/workflows) 에이전트가 자신의 첫 요청을 보내기 전에 동일한 프리픽스를 가진 형제 에이전트의 첫 응답이 시작되기를 기다리는 시간의 상한(밀리초)입니다. 팬아웃이 [프롬프트 캐시 프리픽스](/docs/ko/workflows#prompt-caching-in-a-fan-out)를 공유하는 여러 에이전트를 시작하면, Claude Code는 첫 번째 에이전트를 제외한 나머지를 최대 이 시간만큼 대기시켜 각 에이전트가 프리픽스를 캐시 없이 처리하는 대신 캐시된 프리픽스를 읽도록 합니다. 기본값은 `5000`입니다. 대기를 비활성화하려면 `0`으로 설정합니다. `DISABLE_PROMPT_CACHING`이 설정되어 있으면 에이전트는 대기하지 않습니다. Claude Code v2.1.229 이상이 필요합니다 |

420| `CLAUDE_CONFIG_DIR` | 구성 디렉터리를 재정의합니다(기본값: `~/.claude`). 모든 설정, 세션 기록, 플러그인이 이 경로 아래에 저장됩니다. 자격 증명에 대해서는 [Claude Code가 자격 증명을 저장하는 위치](/docs/ko/authentication#credential-management)를 참조하세요. 여러 계정을 나란히 실행할 때 유용합니다. 예: `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |422| `CLAUDE_CONFIG_DIR` | 구성 디렉터리를 재정의합니다(기본값: `~/.claude`). 모든 설정, 세션 기록, 플러그인이 이 경로 아래에 저장됩니다. 자격 증명에 대해서는 [Claude Code가 자격 증명을 저장하는 위치](/docs/ko/authentication#credential-management)를 참조하세요. 여러 계정을 나란히 실행할 때 유용합니다. 예: `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |

421| `CLAUDE_DISABLE_ADOPT` | `←`를 누르거나 [`/background`](/docs/ko/agent-view#from-inside-a-session)로 세션을 백그라운드로 전환할 때 진행 중인 백그라운드 작업을 이어가는 대신 중지하려면 `1`로 설정합니다. Claude Code는 백그라운드로 전환하기 전에 확인을 요청한 다음, 이어졌을 작업을 중지합니다. Claude Code v2.1.195 이상이 필요합니다 |423| `CLAUDE_DISABLE_ADOPT` | `←`를 누르거나 [`/background`](/docs/ko/agent-view#from-inside-a-session)로 세션을 백그라운드로 보낼 때 진행 중인 백그라운드 작업을 이어가는 대신 중지하려면 `1`로 설정합니다. Claude Code는 백그라운드로 전환하기 전에 확인을 요청한 다음, 그렇지 않았다면 이어졌을 작업을 중지합니다. Claude Code v2.1.195 이상이 필요합니다 |

422| `CLAUDE_EFFORT` | Bash 도구 하위 프로세스와 훅 명령에서, 하위 프로세스가 시작될 때 적용 중인 [effort 수준](/docs/ko/model-config#adjust-effort-level)(`low`, `medium`, `high`, `xhigh` 또는 `max`)으로 자동 설정됩니다. [훅](/docs/ko/hooks)에 전달되는 `effort.level` 필드와 일치합니다. 현재 모델이 effort 매개변수를 지원하는 경우에만 설정됩니다 |424| `CLAUDE_EFFORT` | Bash 도구 하위 프로세스와 훅 명령에서, 하위 프로세스가 시작될 때 적용 중인 [effort 수준](/docs/ko/model-config#adjust-effort-level)인 `low`, `medium`, `high`, `xhigh` 또는 `max`로 자동 설정됩니다. [훅](/docs/ko/hooks)에 전달되는 `effort.level` 필드와 일치합니다. 현재 모델이 effort 매개변수를 지원하는 경우에만 설정됩니다 |

423| `CLAUDE_ENABLE_BYTE_WATCHDOG` | 바이트 수준 스트리밍 유휴 워치독을 강제로 활성화하려면 `1`, 강제로 비활성화하려면 `0`으로 설정합니다. `0`은 해당 기한이 실행되는 연결에서 [첫 바이트 기한](/docs/ko/network-config#streaming-idle-watchdogs)도 끕니다. 설정하지 않으면 워치독은 Anthropic API 직접 연결과 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 연결, 그리고 `ANTHROPIC_BASE_URL` 또는 `ANTHROPIC_AWS_BASE_URL`을 통해 연결되는 [게이트웨이](/docs/ko/gateways) 연결의 스트리밍 응답에서 기본적으로 활성화됩니다. v2.1.222 이전에는 이러한 게이트웨이 연결에서 실행되지 않았기 때문에, keep-alive 핑이 도착하는 중에도 이벤트 수준 워치독이 정지를 보고할 수 있었습니다. 타임아웃과 타이머 간의 상호 작용에 대해서는 [스트리밍 유휴 워치독](/docs/ko/network-config#streaming-idle-watchdogs)을 참조하세요 |425| `CLAUDE_ENABLE_BYTE_WATCHDOG` | 바이트 수준 스트리밍 유휴 워치독을 강제로 활성화하려면 `1`, 강제로 비활성화하려면 `0`으로 설정합니다. `0`은 해당 기한이 적용되는 연결에서 [첫 바이트 기한](/docs/ko/network-config#streaming-idle-watchdogs)도 끕니다. 설정하지 않으면 직접 Anthropic API 및 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 연결, 그리고 `ANTHROPIC_BASE_URL` 또는 `ANTHROPIC_AWS_BASE_URL`을 통해 연결되는 [게이트웨이](/docs/ko/gateways) 연결의 스트리밍 응답에 대해 워치독이 기본적으로 활성화됩니다. v2.1.222 이전에는 이러한 게이트웨이 연결에서 워치독이 실행되지 않았기 때문에, keep-alive 핑이 도착하는 중에도 이벤트 수준 워치독이 정체를 보고할 수 있었습니다. 타임아웃과 타이머 간의 상호 작용에 대해서는 [스트리밍 유휴 워치독](/docs/ko/network-config#streaming-idle-watchdogs)을 참조하세요 |

424| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Amazon Bedrock `vnd.amazon.eventstream` 응답에서 바이트 수준 스트리밍 유휴 워치독을 활성화하려면 `1`로 설정합니다. 이렇게 하면 Bedrock 스트리밍 요청에서 [첫 바이트 기한](/docs/ko/network-config#streaming-idle-watchdogs)도 활성화됩니다. 기본적으로 꺼져 있습니다. 타임아웃은 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 구성합니다 |426| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Amazon Bedrock `vnd.amazon.eventstream` 응답에서 바이트 수준 스트리밍 유휴 워치독을 활성화하려면 `1`로 설정합니다. 이 설정은 Bedrock 스트리밍 요청에서 [첫 바이트 기한](/docs/ko/network-config#streaming-idle-watchdogs)도 활성화합니다. 기본적으로 꺼져 있습니다. 타임아웃은 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 구성합니다 |

425| `CLAUDE_ENABLE_STREAM_WATCHDOG` | 이벤트 수준 스트리밍 유휴 워치독을 강제로 비활성화하려면 `0`, 강제로 활성화하려면 `1`로 설정합니다. 설정하지 않으면 워치독은 모든 공급자에서 기본적으로 켜져 있습니다. v2.1.196 이전에는 설정하지 않았을 때의 기본값이 Anthropic API 직접 연결에서는 서버에 의해 제어되었고 다른 공급자에서는 꺼져 있었습니다. 타임아웃은 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 구성합니다. 이 타이머와 함께 실행되는 다른 정지 타이머에 대해서는 [스트리밍 유휴 워치독](/docs/ko/network-config#streaming-idle-watchdogs)을 참조하세요 |427| `CLAUDE_ENABLE_STREAM_WATCHDOG` | 이벤트 수준 스트리밍 유휴 워치독을 강제로 비활성화하려면 `0`, 강제로 활성화하려면 `1`로 설정합니다. 설정하지 않으면 모든 제공업체에서 워치독이 기본적으로 켜집니다. v2.1.196 이전에는 설정하지 않았을 때의 기본값을 직접 Anthropic API에서는 서버가 제어했고 다른 제공업체에서는 꺼져 있었습니다. 타임아웃은 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 구성합니다. 이 워치독과 함께 실행되는 다른 정체 타이머에 대해서는 [스트리밍 유휴 워치독](/docs/ko/network-config#streaming-idle-watchdogs)을 참조하세요 |

426| `CLAUDE_ENV_FILE` | Claude Code가 각 Bash 명령 전에 동일한 셸 프로세스에서 내용을 실행하는 셸 스크립트의 경로로, 파일의 export가 명령에서 보이게 됩니다. 명령 간에 virtualenv 또는 conda 활성화를 유지하는 데 사용합니다. [SessionStart](/docs/ko/hooks#persist-environment-variables), [Setup](/docs/ko/hooks#setup), [CwdChanged](/docs/ko/hooks#cwdchanged), [FileChanged](/docs/ko/hooks#filechanged) 훅에 의해 동적으로 채워지기도 합니다 |428| `CLAUDE_ENV_FILE` | Claude Code가 각 Bash 명령 전에 동일한 셸 프로세스에서 그 내용을 실행하는 셸 스크립트의 경로로, 파일의 export가 명령에 반영됩니다. 명령 간에 virtualenv 또는 conda 활성화를 유지하는 데 사용합니다. [SessionStart](/docs/ko/hooks#persist-environment-variables), [Setup](/docs/ko/hooks#setup), [CwdChanged](/docs/ko/hooks#cwdchanged), [FileChanged](/docs/ko/hooks#filechanged) 훅에 의해 동적으로 채워지기도 합니다 |

427| `CLAUDE_JOB_DIR` | Claude Code가 각 [백그라운드 세션](/docs/ko/agent-view)에서 해당 세션의 `~/.claude/jobs/<id>` 디렉터리로 설정합니다. 세션이 실행하는 셸 명령이 이를 상속합니다. 임시 파일은 [`$CLAUDE_JOB_DIR/tmp`](/docs/ko/agent-view#where-state-is-stored)에 작성합니다. 그곳에 대한 Claude의 `Write` 및 `Edit` 호출은 권한을 묻지 않으며, 세션이 삭제되면 디렉터리도 제거됩니다 |429| `CLAUDE_JOB_DIR` | Claude Code가 각 [백그라운드 세션](/docs/ko/agent-view)에서 해당 세션의 `~/.claude/jobs/<id>` 디렉터리로 설정합니다. 세션이 실행하는 셸 명령이 이 값을 상속합니다. 임시 파일은 [`$CLAUDE_JOB_DIR/tmp`](/docs/ko/agent-view#where-state-is-stored)에 작성하세요. 이 위치에 대한 Claude의 `Write` 및 `Edit` 호출은 권한 확인을 요청하지 않으며, 세션이 삭제되면 디렉터리도 제거됩니다 |

428| `CLAUDE_PID` | Claude Code는 자신이 생성하는 하위 프로세스(Bash 및 PowerShell 도구 명령과 훅 명령)에서 이 변수를 자신의 프로세스 ID로 설정합니다. Linux에서 Bash 도구의 셸 통합은 이를 사용하여 Claude Code 프로세스 자체와 일치하는 `pkill` 패턴을 거부합니다. [오류 레퍼런스](/docs/ko/errors#pkill-pattern-matches-the-claude-code-process)를 참조하세요. 사용자 스크립트에서 이 값을 읽어 상위 Claude Code 프로세스를 의도적으로 식별하거나 신호를 보낼 수 있습니다. Claude Code v2.1.214 이상이 필요합니다 |430| `CLAUDE_PID` | Claude Code는 자신이 생성하는 하위 프로세스(Bash 및 PowerShell 도구 명령과 훅 명령)에서 이 변수를 자신의 프로세스 ID로 설정합니다. Linux에서 Bash 도구의 셸 통합은 이 값을 사용해 Claude Code 프로세스 자체와 일치하는 `pkill` 패턴을 거부합니다. [오류 참조](/docs/ko/errors#pkill-pattern-matches-the-claude-code-process)를 참조하세요. 자체 스크립트에서 이 값을 읽어 상위 Claude Code 프로세스를 의도적으로 식별하거나 시그널을 보낼 수 있습니다. Claude Code v2.1.214 이상이 필요합니다 |

429| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | 명시적인 이름이 제공되지 않을 때 자동 생성되는 [Remote Control](/docs/ko/remote-control) 세션 이름의 접두사입니다. 기본값은 머신의 호스트 이름이며, `myhost-graceful-unicorn`과 같은 이름이 생성됩니다. `--remote-control-session-name-prefix` CLI 플래그는 단일 실행에 대해 동일한 값을 설정합니다 |431| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | 명시적인 이름이 제공되지 않을 때 자동 생성되는 [Remote Control](/docs/ko/remote-control) 세션 이름의 접두사입니다. 기본값은 머신의 호스트 이름이며, `myhost-graceful-unicorn`과 같은 이름이 생성됩니다. `--remote-control-session-name-prefix` CLI 플래그는 단일 호출에 대해 같은 값을 설정합니다 |

430| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | [첫 바이트 기한](/docs/ko/network-config#streaming-idle-watchdogs)이 실행되는 연결에서 스트리밍 요청의 첫 응답 바이트에 대한 기한(밀리초)입니다. Claude Code가 이 값을 제한하는 방식, 큰 요청 본문에 대해 추가하는 시간, 설정하지 않았을 때 기한을 선택하는 방식에 대해서는 [API 응답 없음](/docs/ko/errors#no-response-from-api)을 참조하세요. Claude Code v2.1.242 이상이 필요합니다 |432| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | [첫 바이트 기한](/docs/ko/network-config#streaming-idle-watchdogs)이 적용되는 연결에서 스트리밍 요청의 첫 응답 바이트에 대한 기한(밀리초)입니다. Claude Code가 이 값을 조정하는 방식, 큰 요청 본문에 대해 추가하는 시간, 이 값을 설정하지 않았을 때 기한을 선택하는 방식에 대해서는 [No response from API](/docs/ko/errors#no-response-from-api)를 참조하세요. Claude Code v2.1.242 이상이 필요합니다 |

431| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | 이벤트 및 바이트 수준 스트리밍 유휴 워치독이 정지된 연결을 닫기 전까지의 타임아웃(밀리초)입니다. 이 변수를 명시적으로 설정하는 경우 최솟값은 `300000`(5분)입니다. 확장 사고 일시 중지와 프록시 버퍼링을 흡수하기 위해 더 낮은 값은 경고 없이 제한되며, 바이트 수준 워치독은 값을 30분으로 제한합니다. 바이트 수준 워치독에 대해서는 `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS`가 이 변수보다 우선합니다. 설정하지 않았을 때의 워치독별 기본값은 [스트리밍 유휴 워치독](/docs/ko/network-config#streaming-idle-watchdogs)을 참조하세요 |433| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | 이벤트 수준 및 바이트 수준 스트리밍 유휴 워치독이 정체된 연결을 닫기 전까지의 타임아웃(밀리초)입니다. 이 변수를 명시적으로 설정하면 최솟값은 `300000`(5분)입니다. 확장 사고 중의 일시 중지와 프록시 버퍼링을 흡수하기 위해 더 낮은 값은 자동으로 조정되며, 바이트 수준 워치독은 값을 최대 30분으로 제한합니다. 바이트 수준 워치독에서는 `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS`가 이 변수보다 우선합니다. 워치독별로 설정하지 않았을 때의 기본값은 [스트리밍 유휴 워치독](/docs/ko/network-config#streaming-idle-watchdogs)을 참조하세요 |

432| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | v2.1.260에서 제거되어 이제 아무 동작도 하지 않습니다. 이전에는 [서브에이전트](/docs/ko/sub-agents)가 시작한 [백그라운드 셸 명령](/docs/ko/interactive-mode#background-bash-commands)이 실행될 수 있는 시간을 밀리초 단위로 제한했으며, 기본값은 60분이었습니다. [백그라운드 명령 수명 규칙](/docs/ko/tools-reference#background-commands)을 참조하세요 |434| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | v2.1.260에서 제거되었으며 이제 아무 효과가 없습니다. 이전에는 [서브에이전트](/docs/ko/sub-agents)가 시작한 [백그라운드 셸 명령](/docs/ko/interactive-mode#background-bash-commands)이 실행될 수 있는 시간을 밀리초 단위로 제한했으며, 기본값은 60분이었습니다. [백그라운드 명령 수명 규칙](/docs/ko/tools-reference#background-commands)을 참조하세요 |

433| `DEBUG` | 디버그 모드를 활성화하려면 `1`로 설정합니다. [`--debug`](/docs/ko/cli-reference#cli-flags)로 실행하는 것과 동일합니다. 디버그 로그는 `~/.claude/debug/<session-id>.txt` 또는 `CLAUDE_CODE_DEBUG_LOGS_DIR`로 설정된 경로에 기록됩니다. 참으로 간주되는 값 `1`, `true`, `yes`, `on`만 디버그 모드를 활성화하므로, 다른 도구를 위해 설정된 `DEBUG=express:*`와 같은 네임스페이스 패턴은 디버그 모드를 트리거하지 않습니다 |435| `DEBUG` | 디버그 모드를 활성화하려면 `1`로 설정합니다. [`--debug`](/docs/ko/cli-reference#cli-flags)로 실행하는 것과 동일합니다. 디버그 로그는 `~/.claude/debug/<session-id>.txt` 또는 `CLAUDE_CODE_DEBUG_LOGS_DIR`로 설정한 경로에 기록됩니다. 참 값인 `1`, `true`, `yes`, `on`만 디버그 모드를 활성화하므로, 다른 도구를 위해 설정한 `DEBUG=express:*` 같은 네임스페이스 패턴은 디버그 모드를 트리거하지 않습니다 |

434| `DISABLE_AUTOUPDATER` | 자동 백그라운드 업데이트를 비활성화하려면 `1`로 설정합니다. 수동 `claude update`는 여전히 작동합니다. 둘 다 차단하려면 `DISABLE_UPDATES`를 사용하세요 |436| `DISABLE_AUTOUPDATER` | 자동 백그라운드 업데이트를 비활성화하려면 `1`로 설정합니다. 수동 `claude update`는 계속 작동합니다. 둘 다 차단하려면 `DISABLE_UPDATES`를 사용하세요 |

435| `DISABLE_AUTO_COMPACT` | 컨텍스트 한도에 가까워질 때 자동 압축을 비활성화하려면 `1`로 설정합니다. 수동 `/compact` 명령은 계속 사용할 수 있습니다. 압축 시점을 명시적으로 제어하려는 경우에 사용합니다. [`autoCompactEnabled`](/docs/ko/settings-reference#autocompactenabled) 설정을 재정의합니다 |437| `DISABLE_AUTO_COMPACT` | 컨텍스트 한도에 가까워질 때 자동 압축을 비활성화하려면 `1`로 설정합니다. 수동 `/compact` 명령은 계속 사용할 수 있습니다. 압축 시점을 명시적으로 제어하려는 경우에 사용합니다. [`autoCompactEnabled`](/docs/ko/settings-reference#autocompactenabled) 설정을 재정의합니다 |

436| `DISABLE_COMPACT` | 자동 압축과 수동 `/compact` 명령을 포함한 모든 압축을 비활성화하려면 `1`로 설정합니다 |438| `DISABLE_COMPACT` | 자동 압축과 수동 `/compact` 명령을 모두 포함해 모든 압축을 비활성화하려면 `1`로 설정합니다 |

437| `DISABLE_COST_WARNINGS` | 비용 경고 메시지를 비활성화하려면 `1`로 설정합니다 |439| `DISABLE_COST_WARNINGS` | 비용 경고 메시지를 비활성화하려면 `1`로 설정합니다 |

438| `DISABLE_DOCTOR_COMMAND` | [`/doctor`](/docs/ko/commands#all-commands) 설정 점검 스킬과 해당 `/checkup` 별칭을 숨기려면 `1`로 설정합니다. 사용자가 세션에서 설정 진단을 실행해서는 안 되는 관리형 배포에 유용합니다. `claude doctor` 터미널 명령에는 영향을 주지 않습니다. v2.1.205 이전에는 이 변수가 `/doctor` 진단 화면 명령을 숨겼습니다 |440| `DISABLE_DOCTOR_COMMAND` | [`/doctor`](/docs/ko/commands#all-commands) 설정 점검 스킬과 그 별칭인 `/checkup`을 숨기려면 `1`로 설정합니다. 사용자가 세션에서 설정 진단을 실행해서는 안 되는 관리형 배포에 유용합니다. `claude doctor` 터미널 명령에는 영향을 주지 않습니다. v2.1.205 이전에는 이 변수가 `/doctor` 진단 화면 명령을 숨겼습니다 |

439| `DISABLE_ERROR_REPORTING` | 오류 보고를 거부하려면 `1`과 같이 비어 있지 않은 값으로 설정합니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 여전히 거부됩니다**. 오류 보고를 다시 켜려면 변수를 설정 해제하세요 |441| `DISABLE_ERROR_REPORTING` | 오류 보고를 옵트아웃하려면 `1`과 같이 비어 있지 않은 값으로 설정합니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 옵트아웃됩니다**. 오류 보고를 다시 켜려면 변수 설정을 해제하세요 |

440| `DISABLE_EXTRA_USAGE_COMMAND` | 사용자가 속도 제한을 넘어 추가 사용량을 구매할 수 있는 `/usage-credits` 명령을 숨기려면 `1`로 설정합니다 |442| `DISABLE_EXTRA_USAGE_COMMAND` | 사용자가 속도 제한을 넘어 추가 사용량을 구매할 수 있는 `/usage-credits` 명령을 숨기려면 `1`로 설정합니다 |

441| `DISABLE_FEEDBACK_COMMAND` | `/feedback` 명령과 [Claude가 작성하는 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior)을 비활성화하려면 `1`로 설정합니다. 같은 경로로 보고하는 `/bug` 및 `/share`도 비활성화합니다. v2.1.212 이전에는 이들이 `/feedback`의 별칭이었으므로 모든 이름으로 명령이 비활성화되었습니다. 이전 이름인 `DISABLE_BUG_COMMAND`도 허용됩니다 |443| `DISABLE_FEEDBACK_COMMAND` | `/feedback` 명령과 [Claude가 작성하는 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior)을 비활성화하려면 `1`로 설정합니다. 같은 경로로 보고하는 `/bug`와 `/share`도 비활성화합니다. v2.1.212 이전에는 이들이 `/feedback`의 별칭이었으므로 모든 이름에서 명령이 비활성화되었습니다. 이전 이름인 `DISABLE_BUG_COMMAND`도 허용됩니다 |

442| `DISABLE_GROWTHBOOK` | GrowthBook 기능 플래그 가져오기를 비활성화하고 모든 플래그에 코드 기본값을 사용하려면 `1` 또는 `true`로 설정합니다. 이렇게 하면 [Remote Control](/docs/ko/remote-control#requirements)과 그 밖의 [기능 플래그 가져오기가 필요한 기능](#features-that-need-feature-flag-fetching)을 사용할 수 없게 됩니다. `0` 또는 `false`로 설정하면 가져오기가 켜진 상태로 유지됩니다. `DISABLE_TELEMETRY`도 설정하지 않는 한 텔레메트리 이벤트 로깅은 계속 켜져 있습니다 |444| `DISABLE_GROWTHBOOK` | GrowthBook 기능 플래그 가져오기를 비활성화하고 모든 플래그에 코드 기본값을 사용하려면 `1` 또는 `true`로 설정합니다. 이렇게 하면 [Remote Control](/docs/ko/remote-control#requirements)과 [기능 플래그 가져오기가 필요한 기타 기능](#features-that-need-feature-flag-fetching)을 사용할 수 없게 됩니다. `0` 또는 `false`로 설정하면 가져오기가 켜진 상태로 유지됩니다. 텔레메트리 이벤트 로깅은 `DISABLE_TELEMETRY`도 설정하지 않는 한 켜진 상태로 유지됩니다 |

443| `DISABLE_INSTALLATION_CHECKS` | 설치 경고를 비활성화하려면 `1`로 설정합니다. 표준 설치의 문제를 가릴 수 있으므로 설치 위치를 수동으로 관리하는 경우에만 사용하세요 |445| `DISABLE_INSTALLATION_CHECKS` | 설치 경고를 비활성화하려면 `1`로 설정합니다. 표준 설치의 문제를 가릴 수 있으므로 설치 위치를 수동으로 관리하는 경우에만 사용하세요 |

444| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | `/install-github-app` 명령을 숨기려면 `1`로 설정합니다. 서드파티 공급자(Amazon Bedrock, Google Cloud's Agent Platform 또는 Microsoft Foundry)를 사용할 때는 이미 숨겨져 있습니다 |446| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | `/install-github-app` 명령을 숨기려면 `1`로 설정합니다. 서드파티 제공업체(Amazon Bedrock, Google Cloud's Agent Platform 또는 Microsoft Foundry)를 사용할 때는 이미 숨겨져 있습니다 |

445| `DISABLE_INTERLEAVED_THINKING` | interleaved-thinking 베타 헤더를 보내지 않으려면 `1`로 설정합니다. LLM 게이트웨이 또는 공급자가 [인터리브드 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking)를 지원하지 않을 때 유용합니다 |447| `DISABLE_INTERLEAVED_THINKING` | interleaved-thinking 베타 헤더 전송을 방지하려면 `1`로 설정합니다. LLM 게이트웨이나 제공업체가 [인터리브드 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking)를 지원하지 않을 때 유용합니다 |

446| `DISABLE_LOGIN_COMMAND` | `/login` 명령을 숨기려면 `1`로 설정합니다. API 키 또는 `apiKeyHelper`를 통해 인증이 외부에서 처리되는 경우에 유용합니다 |448| `DISABLE_LOGIN_COMMAND` | `/login` 명령을 숨기려면 `1`로 설정합니다. API 키나 `apiKeyHelper`를 통해 외부에서 인증을 처리할 때 유용합니다 |

447| `DISABLE_LOGOUT_COMMAND` | `/logout` 명령을 숨기려면 `1`로 설정합니다 |449| `DISABLE_LOGOUT_COMMAND` | `/logout` 명령을 숨기려면 `1`로 설정합니다 |

448| `DISABLE_PROMPT_CACHING` | 모든 모델에 대해 [프롬프트 캐싱](/docs/ko/prompt-caching#disable-prompt-caching)을 비활성화하려면 `1`로 설정합니다(모델별 설정보다 우선함) |450| `DISABLE_PROMPT_CACHING` | 모든 모델에 대해 [프롬프트 캐싱](/docs/ko/prompt-caching#disable-prompt-caching)을 비활성화하려면 `1`로 설정합니다(모델별 설정보다 우선합니다) |

449| `DISABLE_PROMPT_CACHING_FABLE` | Fable 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |451| `DISABLE_PROMPT_CACHING_FABLE` | Fable 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |

450| `DISABLE_PROMPT_CACHING_HAIKU` | 실행 위치와 관계없이 [기본 Haiku 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |452| `DISABLE_PROMPT_CACHING_HAIKU` | 실행 위치와 관계없이 [기본 Haiku 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |

451| `DISABLE_PROMPT_CACHING_OPUS` | [기본 Opus 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |453| `DISABLE_PROMPT_CACHING_OPUS` | [기본 Opus 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |

452| `DISABLE_PROMPT_CACHING_SONNET` | [기본 Sonnet 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |454| `DISABLE_PROMPT_CACHING_SONNET` | [기본 Sonnet 모델](/docs/ko/prompt-caching#disable-prompt-caching)에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |

453| `DISABLE_TELEMETRY` | 텔레메트리를 거부하려면 `1`과 같이 비어 있지 않은 값으로 설정합니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 여전히 거부됩니다**. 텔레메트리를 다시 켜려면 변수를 설정 해제하세요. 텔레메트리 이벤트에는 코드, 파일 경로, Bash 명령과 같은 사용자 데이터가 포함되지 않습니다. [기능 플래그 가져오기](#features-that-need-feature-flag-fetching)도 비활성화합니다. [조직의 텔레메트리 끄기](/docs/ko/managed-settings#turn-telemetry-off-for-your-organization)를 참조하세요 |455| `DISABLE_TELEMETRY` | 텔레메트리를 옵트아웃하려면 `1`과 같이 비어 있지 않은 값으로 설정합니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 옵트아웃됩니다**. 텔레메트리를 다시 켜려면 변수 설정을 해제하세요. 텔레메트리 이벤트에는 코드, 파일 경로, Bash 명령과 같은 사용자 데이터가 포함되지 않습니다. [기능 플래그 가져오기](#features-that-need-feature-flag-fetching)도 비활성화합니다. [조직의 텔레메트리 끄기](/docs/ko/managed-settings#turn-telemetry-off-for-your-organization)를 참조하세요 |

454| `DISABLE_UPDATES` | 수동 `claude update` 및 `claude install`을 포함한 모든 업데이트를 차단하려면 `1`로 설정합니다. `DISABLE_AUTOUPDATER`보다 엄격합니다. 자체 채널을 통해 Claude Code를 배포하며 사용자가 직접 업데이트해서는 안 되는 경우에 사용합니다 |456| `DISABLE_UPDATES` | 수동 `claude update` 및 `claude install`을 포함한 모든 업데이트를 차단하려면 `1`로 설정합니다. `DISABLE_AUTOUPDATER`보다 엄격합니다. 자체 채널을 통해 Claude Code를 배포하며 사용자가 직접 업데이트해서는 안 되는 경우에 사용합니다 |

455| `DISABLE_UPGRADE_COMMAND` | `/upgrade` 명령을 숨기려면 `1`로 설정합니다 |457| `DISABLE_UPGRADE_COMMAND` | `/upgrade` 명령을 숨기려면 `1`로 설정합니다 |

456| `DO_NOT_TRACK` | 텔레메트리를 거부하려면 `1`로 설정합니다. [기능 플래그 가져오기](#features-that-need-feature-flag-fetching)에 대한 영향을 포함하여 `DISABLE_TELEMETRY`와 동일한 효과를 가집니다. Claude Code는 이 변수를 표준 불리언으로 읽으므로 `0`이면 텔레메트리가 켜진 상태로 유지되며, 여러 개발자 CLI에서 인식하는 도구 간 공통 규칙으로서 이를 준수합니다 |458| `DO_NOT_TRACK` | 텔레메트리를 옵트아웃하려면 `1`로 설정합니다. [기능 플래그 가져오기](#features-that-need-feature-flag-fetching)에 대한 영향을 포함해 `DISABLE_TELEMETRY`와 동일한 효과가 있습니다. Claude Code는 이 변수를 표준 불리언으로 읽으므로 `0`이면 텔레메트리가 켜진 상태로 유지되며, 많은 개발자 CLI가 인식하는 도구 간 공통 규약으로서 이 변수를 준수합니다 |

457| `ENABLE_BETA_TRACING_DETAILED` | `BETA_TRACING_ENDPOINT`와 함께 `1`로 설정하면 [상세 베타 추적](/docs/ko/monitoring-usage#traces-beta)이 켜지며, 콘텐츠를 포함하는 span 속성과 `claude_code.hook` span이 추가됩니다. 대화형 CLI 세션에서는 조직이 베타 허용 목록에 등록되어 있어야 합니다. 두 변수 모두 [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |459| `ENABLE_BETA_TRACING_DETAILED` | `BETA_TRACING_ENDPOINT`와 함께 `1`로 설정하면 [상세 베타 트레이싱](/docs/ko/monitoring-usage#traces-beta)이 켜지며, 콘텐츠를 포함하는 스팬 속성과 `claude_code.hook` 스팬이 추가됩니다. 대화형 CLI 세션에서는 조직이 베타 허용 목록에 등록되어 있어야 합니다. 두 변수 모두 [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |

458| `ENABLE_CLAUDEAI_MCP_SERVERS` | Claude Code가 [claude.ai MCP 서버](/docs/ko/mcp#use-mcp-servers-from-claude-ai)를 가져오지 않도록 하려면 `false`로 설정합니다. 로그인한 사용자에게는 기본적으로 활성화되어 있습니다. 프로젝트별 또는 조직별로 비활성화하려면 대신 설정에서 [`disableClaudeAiConnectors`](/docs/ko/settings-reference#disableclaudeaiconnectors)를 설정하세요 |460| `ENABLE_CLAUDEAI_MCP_SERVERS` | Claude Code가 [claude.ai MCP 서버](/docs/ko/mcp#use-mcp-servers-from-claude-ai)를 가져오지 않도록 하려면 `false`로 설정합니다. 로그인한 사용자에게는 기본적으로 활성화되어 있습니다. 프로젝트별 또는 조직별로 비활성화하려면 대신 설정에서 [`disableClaudeAiConnectors`](/docs/ko/settings-reference#disableclaudeaiconnectors)를 설정하세요 |

459| `ENABLE_PROMPT_CACHING_1H` | 기본값인 5분 대신 1시간 [프롬프트 캐시 TTL](/docs/ko/prompt-caching#cache-lifetime)을 요청하려면 `1`로 설정합니다. API 키, [Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud's Agent Platform](/docs/ko/google-vertex-ai), [Microsoft Foundry](/docs/ko/microsoft-foundry), [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 사용자를 위한 것입니다. 포함된 사용량 범위 내의 구독 사용자는 [기본 대화](/docs/ko/prompt-caching#which-ttl-each-request-gets)에서 1시간 TTL을 자동으로 받습니다. [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)을 사용하는 구독 사용자는 1시간 TTL을 유지하기 위해 이를 설정할 수 있습니다. 1시간 캐시 쓰기는 더 높은 요율로 청구됩니다. 대신 요청 버킷별로 TTL을 선택하려면 이 변수보다 우선하는 `CLAUDE_CODE_PROMPT_CACHE_TTL` 및 `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`을 사용하세요 |461| `ENABLE_PROMPT_CACHING_1H` | 기본값인 5분 대신 1시간 [프롬프트 캐시 TTL](/docs/ko/prompt-caching#cache-lifetime)을 요청하려면 `1`로 설정합니다. API 키, [Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud's Agent Platform](/docs/ko/google-vertex-ai), [Microsoft Foundry](/docs/ko/microsoft-foundry), [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 사용자를 위한 것입니다. 포함된 사용량 범위 내의 구독 사용자는 [메인 대화](/docs/ko/prompt-caching#which-ttl-each-request-gets)에서 1시간 TTL을 자동으로 받습니다. [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)을 사용하는 구독 사용자는 1시간 TTL을 유지하기 위해 이 변수를 설정할 수 있습니다. 1시간 캐시 쓰기는 더 높은 요율로 청구됩니다. 대신 요청 버킷별로 TTL을 선택하려면 이 변수보다 우선하는 `CLAUDE_CODE_PROMPT_CACHE_TTL` 및 `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`을 사용하세요 |

460| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | deprecated. 대신 `ENABLE_PROMPT_CACHING_1H`를 사용하세요 |462| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | deprecated되었습니다. 대신 `ENABLE_PROMPT_CACHING_1H`를 사용하세요 |

461| `ENABLE_TOOL_SEARCH` | [MCP 도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)을 제어합니다. 설정하지 않으면 Claude Code는 기본적으로 모든 MCP 도구를 지연 로드합니다. 다만 Claude 4.5 세대 이전의 Google Cloud's Agent Platform 모델, Azure에서 호스팅되는 Microsoft Foundry 배포, 그리고 `ANTHROPIC_BASE_URL`이 퍼스트파티가 아닌 호스트를 가리키는 경우에는 여전히 미리 로드합니다. `true`는 동일한 Agent Platform 모델과 Microsoft Foundry 배포를 제외하고 항상 지연 로드하며 베타 헤더를 보냅니다. `tool_reference`를 지원하지 않는 프록시에서는 요청이 실패합니다. `auto`는 도구 정의가 컨텍스트의 10% 이내에 들어갈 때 미리 로드합니다. `auto:N`은 사용자 지정 임계값을 설정합니다(예: 5%의 경우 `auto:5`). `false`는 모든 도구를 미리 로드합니다. `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`가 설정된 경우 직접 설정한 값은 무시됩니다. v2.1.221 이전에는 이 변수를 `true`로 설정하지 않는 한 Claude Code가 Google Cloud's Agent Platform의 모든 모델에서 도구 검색을 비활성화했습니다 |463| `ENABLE_TOOL_SEARCH` | [MCP 도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)을 제어합니다. 설정하지 않으면 Claude Code는 기본적으로 모든 MCP 도구를 지연 로드합니다. 다만 Claude 4.5 세대 이전의 Google Cloud's Agent Platform 모델, Azure에서 호스팅되는 Microsoft Foundry 배포, 그리고 `ANTHROPIC_BASE_URL`이 퍼스트 파티가 아닌 호스트를 가리키는 경우에는 여전히 미리 로드합니다. `true`는 동일한 Agent Platform 모델과 Microsoft Foundry 배포를 제외하고 항상 지연 로드하며 베타 헤더를 보냅니다. `tool_reference`를 지원하지 않는 프록시에서는 요청이 실패합니다. `auto`는 도구 정의가 컨텍스트의 10% 이내에 들어가면 미리 로드합니다. `auto:N`은 `auto:5`(5%)처럼 사용자 지정 임계값을 설정합니다. `false`는 모든 도구를 미리 로드합니다. `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`가 설정되어 있으면 직접 설정한 값은 무시됩니다. v2.1.221 이전에는 이 변수를 `true`로 설정하지 않는 한 Claude Code가 Google Cloud's Agent Platform의 모든 모델에서 도구 검색을 비활성화했습니다 |

462| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | 폴백 모델이 구성되지 않은 경우 모든 모델에 대해 반복되는 과부하 오류 시 Claude Code가 재시도를 중단하도록 하려면 `1`과 같이 비어 있지 않은 값으로 설정합니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 여전히 활성화됩니다**. 기본 재시도 동작을 복원하려면 변수를 설정 해제하세요. 이 변수가 없으면 Claude Code는 Claude 구독이 아닌 API 키 또는 [서드파티 공급자](/docs/ko/third-party-integrations)로 인증할 때 Opus, Fable 또는 Mythos 모델로 인식하는 모델에서만 이 방식으로 재시도를 중단합니다. Claude Code v2.1.160 이상에서는 모든 기본 모델에 대해 반복되는 과부하 오류 시 구성된 [폴백 모델 체인](/docs/ko/model-config#fallback-model-chains)으로 전환하므로, 이 변수는 폴백 모델로의 전환에 영향을 주지 않습니다 |464| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | 폴백 모델이 구성되지 않았을 때 모든 모델에 대해 반복되는 과부하 오류 시 Claude Code가 재시도를 중단하도록 하려면 `1`과 같이 비어 있지 않은 값으로 설정합니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 활성화됩니다**. 기본 재시도 동작을 복원하려면 변수 설정을 해제하세요. 이 변수가 없으면 Claude Code는 Claude 구독 대신 API 키나 [서드파티 제공업체](/docs/ko/third-party-integrations)로 인증할 때 Opus, Fable 또는 Mythos 모델로 인식하는 모델에서만 이런 방식으로 재시도를 중단합니다. Claude Code v2.1.160 이상에서는 모든 주 모델에 대해 반복되는 과부하 오류 시 구성된 [폴백 모델 체인](/docs/ko/model-config#fallback-model-chains)으로 전환하므로, 이 변수는 폴백 모델로의 전환에 영향을 주지 않습니다 |

463| `FORCE_AUTOUPDATE_PLUGINS` | `DISABLE_AUTOUPDATER`를 통해 기본 자동 업데이터가 비활성화된 경우에도 플러그인 자동 업데이트를 강제하려면 `1`로 설정합니다 |465| `FORCE_AUTOUPDATE_PLUGINS` | `DISABLE_AUTOUPDATER`로 기본 자동 업데이터가 비활성화된 경우에도 플러그인 자동 업데이트를 강제하려면 `1`로 설정합니다 |

464| `FORCE_HYPERLINK` | 터미널이 클릭 가능한 OSC 8 하이퍼링크를 지원하지만 자동 감지되지 않을 때 이를 활성화하려면 `1`, 비활성화하려면 `0`으로 설정합니다. 설정하지 않으면 Claude Code는 터미널 지원을 감지한 경우에만 하이퍼링크를 활성화합니다. Claude Code는 이 값을 불리언이 아닌 숫자로 파싱하므로, `false`, `no`, `off`와 같은 값은 하이퍼링크를 비활성화하는 대신 활성화합니다. 하단의 [PR 또는 병합 요청 배지](/docs/ko/interactive-mode#pr-review-status)는 SSH를 통한 경우처럼 Claude Code가 터미널 지원을 감지할 수 없을 때에도 하이퍼링크로 렌더링됩니다. 배지를 일반 텍스트로 렌더링하려면 `0`으로 설정하세요 |466| `FORCE_HYPERLINK` | 터미널이 클릭 가능한 OSC 8 하이퍼링크를 지원하지만 자동 감지되지 않을 때 이를 활성화하려면 `1`, 비활성화하려면 `0`으로 설정합니다. 설정하지 않으면 Claude Code는 터미널 지원을 감지한 경우에만 하이퍼링크를 활성화합니다. Claude Code는 이 값을 불리언이 아닌 숫자로 파싱하므로 `false`, `no`, `off` 같은 값은 하이퍼링크를 비활성화하지 않고 오히려 활성화합니다. 하단의 [PR 또는 병합 요청 배지](/docs/ko/interactive-mode#pr-review-status)는 SSH 연결처럼 Claude Code가 터미널 지원을 감지할 수 없는 경우에도 하이퍼링크로 렌더링됩니다. 배지를 일반 텍스트로 렌더링하려면 `0`으로 설정하세요 |

465| `FORCE_PROMPT_CACHING_5M` | 1시간 TTL이 적용될 경우에도 5분 프롬프트 캐시 TTL을 강제하려면 `1`로 설정합니다. `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H`, 그리고 `promptCacheTtl` 및 `subagentPromptCacheTtl` 설정을 재정의합니다 |467| `FORCE_PROMPT_CACHING_5M` | 1시간 TTL이 적용되는 경우에도 5분 프롬프트 캐시 TTL을 강제하려면 `1`로 설정합니다. `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H`, 그리고 `promptCacheTtl` 및 `subagentPromptCacheTtl` 설정을 재정의합니다 |

466| `HTTP_PROXY` | 네트워크 연결에 사용할 HTTP 프록시 서버를 지정합니다 |468| `HTTP_PROXY` | 네트워크 연결에 사용할 HTTP 프록시 서버를 지정합니다 |

467| `HTTPS_PROXY` | 네트워크 연결에 사용할 HTTPS 프록시 서버를 지정합니다 |469| `HTTPS_PROXY` | 네트워크 연결에 사용할 HTTPS 프록시 서버를 지정합니다 |

468| `IS_DEMO` | 데모 모드를 활성화하려면 `1`과 같이 비어 있지 않은 값으로 설정합니다. 데모 모드는 헤더와 `/status` 출력에서 이메일과 조직 이름을 숨기고 온보딩을 건너뜁니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 여전히 데모 모드가 활성화됩니다**. 끄려면 변수를 설정 해제하세요. 세션을 스트리밍하거나 녹화할 때 유용합니다 |470| `IS_DEMO` | 데모 모드를 활성화하려면 `1`과 같이 비어 있지 않은 값으로 설정합니다. 데모 모드는 헤더와 `/status` 출력에서 이메일과 조직 이름을 숨기고 온보딩을 건너뜁니다. 대부분의 켜기/끄기 변수와 달리 **`0` 또는 `false`로 설정해도 데모 모드가 활성화됩니다**. 끄려면 변수 설정을 해제하세요. 세션을 스트리밍하거나 녹화할 때 유용합니다 |

469| `MAX_MCP_OUTPUT_TOKENS` | MCP 도구 응답에 허용되는 최대 토큰 수입니다. 출력이 10,000 토큰을 초과하면 Claude Code가 경고를 표시합니다. [`anthropic/maxResultSizeChars`](/docs/ko/mcp#raise-the-limit-for-a-specific-tool)를 선언하는 도구는 텍스트 콘텐츠에 대해 대신 해당 문자 한도를 사용하지만, 이러한 도구의 이미지 콘텐츠에는 여전히 이 변수가 적용됩니다(기본값: 25000) |471| `MAX_MCP_OUTPUT_TOKENS` | MCP 도구 응답에 허용되는 최대 토큰 수입니다. 출력이 10,000 토큰을 초과하면 Claude Code가 경고를 표시합니다. [`anthropic/maxResultSizeChars`](/docs/ko/mcp#raise-the-limit-for-a-specific-tool)를 선언한 도구는 텍스트 콘텐츠에 대해 대신 해당 문자 수 제한을 사용하지만, 이러한 도구의 이미지 콘텐츠에는 여전히 이 변수가 적용됩니다(기본값: 25000) |

470| `MAX_STRUCTURED_OUTPUT_RETRIES` | `-p` 플래그를 사용하는 비대화형 모드에서 모델의 응답이 [`--json-schema`](/docs/ko/cli-reference#cli-flags)에 대한 검증에 실패할 때 Claude Code가 허용하는 시도 횟수입니다. 유효한 출력 없이 그만큼 시도가 실패하면 실행이 실패합니다. [워크플로](/docs/ko/workflows) 서브에이전트의 구조화된 출력이 검증에 실패할 때도 동일한 상한이 적용됩니다. 기본값은 5이며, 첫 시도와 네 번의 재시도로 구성됩니다 |472| `MAX_STRUCTURED_OUTPUT_RETRIES` | `-p` 플래그를 사용하는 비대화형 모드에서 모델 응답이 [`--json-schema`](/docs/ko/cli-reference#cli-flags)에 대한 검증에 실패할 때 Claude Code가 허용하는 시도 횟수입니다. 유효한 출력 없이 그 횟수만큼 시도가 실패하면 실행이 실패합니다. [워크플로](/docs/ko/workflows) 서브에이전트의 구조화된 출력이 검증에 실패할 때도 같은 상한이 적용됩니다. 기본값은 5이며, 첫 시도와 네 번의 재시도로 구성됩니다 |

471| `MAX_THINKING_TOKENS` | [확장 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)를 위한 고정 토큰 예산입니다. Claude Code는 이 값을 요청의 최대 출력 토큰보다 1토큰 적은 값으로 제한하며 1,024 미만으로는 내리지 않습니다. 해당 한도가 설정되는 방식은 `CLAUDE_CODE_MAX_OUTPUT_TOKENS`를 참조하세요. 설정하지 않고 사고가 활성화된 경우, [적응형 추론](/docs/ko/model-config#adjust-effort-level)을 지원하는 모델은 자체적으로 사고 깊이를 선택하고 다른 모델은 상한을 사용합니다. Anthropic API에서 사고를 비활성화하려면 `0`으로 설정합니다. 단, 사고를 끌 수 없는 Opus 5.5, Sonnet 5.5 및 Fable 모델은 예외입니다. [서드파티 공급자](/docs/ko/third-party-integrations)에서는 `0`이 대신 `thinking` 매개변수를 생략합니다. Anthropic API에서 사고가 꺼진 경우, Claude Code는 Opus 5와 같이 [해당 조합을 허용하지 않는](/docs/ko/errors#effort-isnt-available-with-thinking-turned-off) 것으로 알려진 모델에 더 높은 수준 대신 effort `high`를 보냅니다. Claude Code는 적응형 추론 모델에서 0이 아닌 값을 무시합니다. 단, `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING`이 적응형 추론을 끄는 모델은 예외입니다 |473| `MAX_THINKING_TOKENS` | [확장 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)를 위한 고정 토큰 예산입니다. Claude Code는 이 값을 요청의 최대 출력 토큰보다 1 토큰 작은 값으로 제한하며, 1,024 미만으로는 내려가지 않습니다. 이 한도가 설정되는 방식은 `CLAUDE_CODE_MAX_OUTPUT_TOKENS`를 참조하세요. 설정하지 않은 상태에서 사고가 활성화되면 [적응형 추론](/docs/ko/model-config#adjust-effort-level)을 지원하는 모델은 사고 깊이를 자체적으로 선택하고, 다른 모델은 상한을 사용합니다. Anthropic API에서 사고를 비활성화하려면 `0`으로 설정합니다. 단, 사고를 끌 수 없는 Opus 5.5, Sonnet 5.5, Fable 모델은 예외입니다. [서드파티 제공업체](/docs/ko/third-party-integrations)에서는 `0`이 대신 `thinking` 매개변수를 생략합니다. Anthropic API에서 사고가 꺼져 있으면, Claude Code는 Opus 5처럼 [해당 조합을 허용하지 않는](/docs/ko/errors#effort-isnt-available-with-thinking-turned-off) 것으로 알려진 모델에 더 높은 수준 대신 effort `high`를 보냅니다. Claude Code는 적응형 추론 모델에서 0이 아닌 값을 무시합니다. 단, `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING`이 적응형 추론을 끄는 모델은 예외입니다 |

472| `MCP_CLIENT_SECRET` | [사전 구성된 자격 증명](/docs/ko/mcp#use-pre-configured-oauth-credentials)이 필요한 MCP 서버를 위한 OAuth 클라이언트 시크릿입니다. `--client-secret`으로 서버를 추가할 때 대화형 프롬프트를 생략할 수 있습니다 |474| `MCP_CLIENT_SECRET` | [사전 구성된 자격 증명](/docs/ko/mcp#use-pre-configured-oauth-credentials)이 필요한 MCP 서버용 OAuth 클라이언트 시크릿입니다. `--client-secret`으로 서버를 추가할 때 대화형 프롬프트를 피할 수 있습니다 |

473| `MCP_CONNECTION_NONBLOCKING` | 시작 시 첫 쿼리 전에 MCP 서버 연결을 기다릴지 여부를 제어합니다. MCP 시작은 기본적으로 논블로킹입니다. 서버는 백그라운드에서 연결되며 연결이 완료되는 대로 해당 도구를 사용할 수 있게 됩니다. Claude Code가 첫 쿼리 전에 서버 연결을 기다리도록 하려면 `0`으로 설정합니다. [`alwaysLoad: true`](/docs/ko/mcp#exempt-a-server-from-deferral)로 구성된 서버는 첫 프롬프트가 구성될 때 해당 도구가 있어야 하므로, [디스커버리 캐시](/docs/ko/mcp#server-status-detail)에서 제공되는 경우를 제외하고는 여전히 시작 시 대기하게 합니다. `--input-format stream-json` 없이 비대화형 모드(`-p`)에서 실행하는 경우, Claude Code는 이 변수와 관계없이 첫 턴 전에 아직 대기 중인 서버도 기다립니다. [`--mcp-config`](/docs/ko/cli-reference#cli-flags)를 명시적으로 전달하면 대기 기한이 더 길어집니다. 캐시된 서버 예외에 대해서는 해당 플래그 항목을 참조하세요 |475| `MCP_CONNECTION_NONBLOCKING` | 첫 쿼리 전에 시작 과정이 MCP 서버 연결을 기다릴지 여부를 제어합니다. MCP 시작은 기본적으로 논블로킹입니다. 서버는 백그라운드에서 연결되며, 연결이 완료되는 대로 해당 도구를 사용할 수 있게 됩니다. Claude Code가 첫 쿼리 전에 서버 연결을 기다리도록 하려면 `0`으로 설정합니다. [`alwaysLoad: true`](/docs/ko/mcp#exempt-a-server-from-deferral)로 구성된 서버는 첫 프롬프트를 구성할 때 도구가 있어야 하므로 이 설정과 관계없이 여전히 시작 과정을 대기시킵니다. 단, [디스커버리 캐시](/docs/ko/mcp#server-status-detail)에서 제공되는 경우는 예외입니다. `--input-format stream-json` 없이 비대화형 모드(`-p`)를 사용하면 이 변수와 관계없이 Claude Code가 첫 턴 전에 아직 대기 중인 서버도 기다립니다. [`--mcp-config`](/docs/ko/cli-reference#cli-flags)를 명시적으로 전달하면 대기 기한이 더 길어집니다. 캐시된 서버 예외에 대해서는 해당 플래그 항목을 참조하세요 |

474| `MCP_CONNECT_TIMEOUT_MS` | 블로킹 MCP 시작이 도구 목록의 스냅샷을 만들기 전에 연결 배치를 기다리는 시간(밀리초)입니다(기본값: 5000). `MCP_CONNECTION_NONBLOCKING=0`인 경우 또는 [`alwaysLoad: true`](/docs/ko/mcp#exempt-a-server-from-deferral)로 표시된 서버에 적용됩니다. 기한에 아직 대기 중인 서버는 백그라운드에서 계속 연결됩니다. 개별 서버의 연결 시도를 제한하는 `MCP_TIMEOUT`과는 다릅니다 |476| `MCP_CONNECT_TIMEOUT_MS` | 블로킹 MCP 시작이 도구 목록의 스냅샷을 만들기 전에 연결 배치를 기다리는 시간(밀리초)입니다(기본값: 5000). `MCP_CONNECTION_NONBLOCKING=0`일 때 또는 [`alwaysLoad: true`](/docs/ko/mcp#exempt-a-server-from-deferral)로 표시된 서버에 적용됩니다. 기한 시점에 아직 대기 중인 서버는 백그라운드에서 계속 연결을 시도합니다. 개별 서버의 연결 시도를 제한하는 `MCP_TIMEOUT`과는 다릅니다 |

475| `MCP_DISCOVERY_CACHE` | [MCP 디스커버리 캐시](/docs/ko/mcp#server-status-detail)를 켜거나 끕니다. 캐시가 켜져 있으면 이전에 사용한 원격 HTTP 또는 SSE 서버가 [`cached` 상태](/docs/ko/mcp#server-status-detail)를 표시할 수 있으며, Claude Code는 시작 시가 아니라 첫 도구 호출 시 해당 서버를 연결합니다. 점진적 출시를 통해 계정에 활성화되지 않은 한 캐시는 기본적으로 꺼져 있습니다. 켜려면 `1`로 설정하고, 출시를 통해 활성화된 경우에도 끈 상태로 유지하려면 `0`으로 설정합니다. v2.1.238 이전에는 캐시가 기본적으로 켜져 있었습니다. `cached` 상태에는 Claude Code v2.1.221 이상이 필요합니다 |477| `MCP_DISCOVERY_CACHE` | [MCP 디스커버리 캐시](/docs/ko/mcp#server-status-detail)를 켜거나 끕니다. 캐시가 켜져 있으면 이전에 사용한 원격 HTTP 또는 SSE 서버가 [`cached` 상태](/docs/ko/mcp#server-status-detail)를 표시할 수 있으며, Claude Code는 시작 시점이 아니라 첫 도구 호출 시 해당 서버를 연결합니다. 점진적 롤아웃으로 계정에 활성화되지 않은 한 캐시는 기본적으로 꺼져 있습니다. 켜려면 `1`, 롤아웃으로 활성화된 경우에도 꺼진 상태로 유지하려면 `0`으로 설정합니다. v2.1.238 이전에는 캐시가 기본적으로 켜져 있었습니다. `cached` 상태에는 Claude Code v2.1.221 이상이 필요합니다 |

476| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | [디스커버리 캐시](/docs/ko/mcp#server-status-detail) 항목의 최대 수명(초)입니다 (기본값: 14400, 즉 4시간). 항목이 이보다 오래된 상태에서 시작하면 Claude Code는 해당 항목을 버리고 캐시가 꺼져 있을 때와 마찬가지로 시작 시 서버를 연결합니다. Claude Code는 이 값을 7일로 제한합니다. v2.1.238 이전에는 기본값이 86400, 즉 24시간이었으며 Claude Code가 값을 제한하지 않았습니다 |478| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | [디스커버리 캐시](/docs/ko/mcp#server-status-detail) 항목의 최대 수명(초)입니다(기본값: 14400, 즉 4시간). 시작 시 항목이 그보다 오래되었으면 Claude Code는 해당 항목을 폐기하고, 캐시가 꺼져 있을 때처럼 시작 시 서버를 연결합니다. Claude Code는 값을 최대 7일로 제한합니다. v2.1.238 이전에는 기본값이 86400, 즉 24시간이었으며 Claude Code가 값을 제한하지 않았습니다 |

477| `MCP_DISCOVERY_CACHE_STRIKES` | [디스커버리 캐시](/docs/ko/mcp#server-status-detail) 항목이 `MCP_DISCOVERY_CACHE_TTL_S`보다 오래된 상태에서 시작하면 Claude Code는 백그라운드에서 항목을 새로 고칩니다. 이 변수는 Claude Code가 항목을 버리고 다음 시작 시 서버를 연결하기 전까지 연속으로 실패할 수 있는 새로 고침 횟수를 설정합니다(기본값: 1). 네트워크 연결이 가끔 끊기는 경우 한 번의 새로 고침 실패로 항목이 버려지지 않도록 값을 높이세요. Claude Code v2.1.238 이상이 필요합니다 |479| `MCP_DISCOVERY_CACHE_STRIKES` | 시작 시 [디스커버리 캐시](/docs/ko/mcp#server-status-detail) 항목이 `MCP_DISCOVERY_CACHE_TTL_S`보다 오래되었으면 Claude Code는 백그라운드에서 항목을 새로 고칩니다. 이 변수는 Claude Code가 항목을 폐기하고 대신 다음 시작 시 서버를 연결하기 전까지 연속으로 실패할 수 있는 새로 고침 횟수를 설정합니다(기본값: 1). 네트워크 연결이 가끔 끊기는 경우, 한 번의 새로 고침 실패로 항목이 폐기되지 않도록 이 값을 높이세요. Claude Code v2.1.238 이상이 필요합니다 |

478| `MCP_DISCOVERY_CACHE_TTL_S` | Claude Code가 [디스커버리 캐시](/docs/ko/mcp#server-status-detail) 항목을 새로 고치지 않고 사용하는 시간(초)입니다(기본값: 900). 항목이 이보다 오래된 상태에서 시작하면 Claude Code는 여전히 해당 항목을 사용하지만 백그라운드에서 새로 고칩니다. 항목이 `MCP_DISCOVERY_CACHE_MAX_STALE_S`보다 오래되면 Claude Code는 대신 해당 항목을 버립니다. Claude Code는 이 값을 기본적으로 4시간인 `MCP_DISCOVERY_CACHE_MAX_STALE_S`로 제한합니다. v2.1.238 이전에는 Claude Code가 값을 제한하지 않았습니다 |480| `MCP_DISCOVERY_CACHE_TTL_S` | Claude Code가 [디스커버리 캐시](/docs/ko/mcp#server-status-detail) 항목을 새로 고치지 않고 사용하는 시간(초)입니다(기본값: 900). 시작 시 항목이 그보다 오래되었으면 Claude Code는 여전히 항목을 사용하지만 백그라운드에서 새로 고칩니다. 항목이 `MCP_DISCOVERY_CACHE_MAX_STALE_S`보다 오래되면 Claude Code는 대신 항목을 폐기합니다. Claude Code는 이 값을 기본값이 4시간인 `MCP_DISCOVERY_CACHE_MAX_STALE_S`로 제한합니다. v2.1.238 이전에는 Claude Code가 값을 제한하지 않았습니다 |

479| `MCP_OAUTH_CALLBACK_PORT` | [사전 구성된 자격 증명](/docs/ko/mcp#use-pre-configured-oauth-credentials)으로 MCP 서버를 추가할 때 `--callback-port`의 대안으로 사용하는 OAuth 리디렉션 콜백용 고정 포트입니다 |481| `MCP_OAUTH_CALLBACK_PORT` | [사전 구성된 자격 증명](/docs/ko/mcp#use-pre-configured-oauth-credentials)으로 MCP 서버를 추가할 때 `--callback-port`의 대안으로 사용하는 OAuth 리디렉션 콜백용 고정 포트입니다 |

480| `MCP_PROTOCOL_NEGOTIATION` | [v2 MCP 클라이언트 런타임](/docs/ko/mcp#mcp-client-runtimes)에서만, Claude Code가 서버에 MCP 프로토콜 개정판 2026-07-28을 탐색할지 여부를 지정합니다. HTTP, claude.ai 커넥터 및 stdio 서버를 탐색하려면 `auto`로 설정합니다. 탐색에 응답하지 않는 서버는 SSE 및 WebSocket 서버가 항상 그러하듯 대신 이전 프로토콜로 연결됩니다. 모든 서버에 대해 탐색을 건너뛰려면 `legacy`로 설정합니다. 이 변수가 없으면 Claude Code는 HTTP 서버를 탐색하며, [기능 플래그를 가져오는](#features-that-need-feature-flag-fetching) 세션에서는 claude.ai 커넥터 서버도 탐색합니다. 그 밖의 값은 디버그 로그에 경고를 남기고 무시됩니다. Claude Code v2.1.221 이상이 필요합니다 |482| `MCP_PROTOCOL_NEGOTIATION` | [v2 MCP 클라이언트 런타임](/docs/ko/mcp#mcp-client-runtimes)에서만 적용되며, Claude Code가 서버에 대해 MCP 프로토콜 리비전 2026-07-28을 프로브할지 여부를 지정합니다. HTTP, claude.ai 커넥터, stdio 서버를 프로브하려면 `auto`, 아무 서버도 프로브하지 않으려면 `legacy`로 설정합니다. 변수를 설정하지 않으면 Claude Code는 [MCP 클라이언트 런타임](/docs/ko/mcp#mcp-client-runtimes)에 설명된 서버를 프로브합니다. 그 밖의 값은 디버그 로그에 경고를 남기고 무시됩니다. Claude Code v2.1.221 이상이 필요합니다 |

481| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | 시작 중에 병렬로 연결할 원격 MCP 서버(HTTP/SSE)의 최대 수입니다(기본값: 20) |483| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | 시작 중 병렬로 연결할 원격 MCP 서버(HTTP/SSE)의 최대 수입니다(기본값: 20) |

482| `MCP_SDK_GENERATION` | 이 프로세스가 MCP 서버에 연결할 때 사용할 [MCP 클라이언트 런타임](/docs/ko/mcp#mcp-client-runtimes)을 고정합니다. MCP TypeScript SDK 1.x 기반의 `v1` 또는 [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/) 기반의 `v2` 중에서 선택합니다. 이 변수가 없으면 Claude Code는 해당 섹션에 나열된 버전부터 v2를 사용합니다. Claude Code v2.1.221 이상에서 v2 런타임은 MCP OAuth 서버가 인가 응답에서 반환하는 발급자를 확인하며, 일치하지 않으면 `Issuer mismatch in authorization response`로 시작하는 오류와 함께 로그인에 실패합니다. v1 런타임은 이 확인을 수행하지 않습니다. 인식할 수 없는 값을 설정하면 Claude Code는 이를 무시하고 디버그 로그에 경고를 기록합니다. Claude Code는 프로세스당 한 번 값을 읽습니다. Claude Code v2.1.218 이상이 필요합니다 |484| `MCP_SDK_GENERATION` | 이 프로세스가 MCP 서버에 연결할 때 사용하는 [MCP 클라이언트 런타임](/docs/ko/mcp#mcp-client-runtimes)을 고정합니다. MCP TypeScript SDK 1.x 기반의 `v1` 또는 [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/) 기반의 `v2` 중에서 선택합니다. 이 변수가 없으면 Claude Code는 해당 섹션에 나열된 버전부터 v2를 사용합니다. Claude Code v2.1.221 이상에서 v2 런타임은 MCP OAuth 서버가 인가 응답에서 반환하는 발급자를 확인하며, 일치하지 않으면 `Issuer mismatch in authorization response`로 시작하는 오류와 함께 로그인을 실패시킵니다. v1 런타임은 이 확인을 수행하지 않습니다. 인식할 수 없는 값을 설정하면 Claude Code는 이를 무시하고 디버그 로그에 경고를 기록합니다. Claude Code는 프로세스당 한 번 값을 읽습니다. Claude Code v2.1.218 이상이 필요합니다 |

483| `MCP_SERVER_CONNECTION_BATCH_SIZE` | 시작 중에 병렬로 연결할 로컬 MCP 서버(stdio)의 최대 수입니다(기본값: 3) |485| `MCP_SERVER_CONNECTION_BATCH_SIZE` | 시작 중 병렬로 연결할 로컬 MCP 서버(stdio)의 최대 수입니다(기본값: 3) |

484| `MCP_TIMEOUT` | MCP 서버 시작에 대한 타임아웃(밀리초)입니다(기본값: 30000, 즉 30초) |486| `MCP_TIMEOUT` | MCP 서버 시작 타임아웃(밀리초)입니다(기본값: 30000, 즉 30초) |

485| `MCP_TOOL_TIMEOUT` | MCP 도구 실행에 대한 타임아웃(밀리초)입니다(기본값: 100000000, 약 28시간). HTTP, SSE 또는 claude.ai 커넥터 서버의 경우 각 요청도 기본적으로 60초 후에 시간 초과됩니다. 이 요청별 한도를 높이려면 이 변수 또는 서버별 `timeout`을 60000보다 크게 설정하세요. 더 낮은 값은 전체 도구 실행 타임아웃을 줄이지만 요청별 한도는 60초로 유지됩니다. Stdio 및 WebSocket 서버에는 요청별 타이머가 없습니다. `.mcp.json`의 서버별 `timeout` 필드는 해당 서버에 대해 이 값을 재정의합니다. 1000 이상인 서버별 `timeout`은 해당 서버의 도구 호출에 대한 최소 유휴 시간도 설정하므로, `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`이 이보다 일찍 호출을 중단하지 않습니다. 이 하한에는 Claude Code v2.1.203 이상이 필요합니다. 환경 변수의 경우 1000 미만의 값은 1초로 올림되며, 서버별 필드의 경우 1000 미만의 값은 무시됩니다 |487| `MCP_TOOL_TIMEOUT` | MCP 도구 실행 타임아웃(밀리초)입니다(기본값: 100000000, 약 28시간). HTTP, SSE 또는 claude.ai 커넥터 서버의 경우 각 요청도 기본적으로 60초 후에 시간 초과됩니다. 요청당 제한을 늘리려면 이 변수 또는 서버별 `timeout`을 60000보다 크게 설정하세요. 더 낮은 값은 전체 도구 실행 타임아웃을 여전히 단축하지만 요청당 제한은 60초로 유지됩니다. Stdio 및 WebSocket 서버에는 요청당 타이머가 없습니다. `.mcp.json`의 서버별 `timeout` 필드는 해당 서버에 대해 이 값을 재정의합니다. 1000 이상인 서버별 `timeout`은 해당 서버 도구 호출의 최소 유휴 시간 창도 설정하므로, `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`이 그보다 일찍 도구 호출을 중단하지 않습니다. 이 하한에는 Claude Code v2.1.203 이상이 필요합니다. 환경 변수의 경우 1000 미만의 값은 1초로 올려지며, 서버별 필드의 경우 1000 미만의 값은 무시됩니다 |

486| `NO_PROXY` | 프록시를 우회하여 요청이 직접 전송될 도메인 및 IP 목록입니다 |488| `NO_PROXY` | 프록시를 우회하여 요청을 직접 보낼 도메인 및 IP 목록입니다 |

487| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | 속성 값 길이에 대한 표준 OpenTelemetry SDK 한도입니다. Claude Code는 잘림 표시가 SDK 한도 내에 유지되도록, 콘텐츠를 포함하는 텔레메트리 속성을 이 값과 `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 중 더 작은 값으로 제한합니다. Claude Code는 `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` 및 `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` 변형도 같은 방식으로 읽으며, 설정된 값 중 가장 작은 값이 모든 신호에 적용됩니다. Claude Code v2.1.214 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage#common-configuration-variables)을 참조하세요 |489| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | 속성 값 길이에 대한 표준 OpenTelemetry SDK 제한입니다. Claude Code는 잘림 표시가 SDK 제한 내에 머물도록, 콘텐츠를 포함하는 텔레메트리 속성을 이 값과 `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 중 작은 값으로 제한합니다. Claude Code는 `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` 및 `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` 변형도 같은 방식으로 읽으며, 설정된 값 중 가장 작은 값이 모든 시그널에 적용됩니다. Claude Code v2.1.214 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage#common-configuration-variables)을 참조하세요 |

488| `OTEL_LOG_ASSISTANT_RESPONSES` | `assistant_response` OpenTelemetry 로그 이벤트에 모델의 응답 텍스트를 포함하려면 `1`로 설정합니다. 설정하지 않으면 Claude Code는 대신 `OTEL_LOG_USER_PROMPTS`의 값을 사용합니다. `OTEL_LOG_USER_PROMPTS`가 설정된 경우에도 응답을 가린 상태로 유지하려면 `0`으로 설정합니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. Claude Code v2.1.193 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage#assistant-response-event)을 참조하세요 |490| `OTEL_LOG_ASSISTANT_RESPONSES` | `assistant_response` OpenTelemetry 로그 이벤트에 모델의 응답 텍스트를 포함하려면 `1`로 설정합니다. 설정하지 않으면 Claude Code는 대신 `OTEL_LOG_USER_PROMPTS`의 값을 사용합니다. `OTEL_LOG_USER_PROMPTS`가 설정된 경우에도 응답을 마스킹된 상태로 유지하려면 `0`으로 설정합니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. Claude Code v2.1.193 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage#assistant-response-event)을 참조하세요 |

489| `OTEL_LOG_MANAGED_SETTINGS` | 가려진 관리형 설정과 가리기 전 설정의 SHA-256 다이제스트를 `managed_settings_resolved` OpenTelemetry 로그 이벤트에 추가하려면 `1`로 설정합니다. 기본적으로 비활성화되어 있습니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. 프로젝트 또는 로컬 설정의 값으로는 켜지지 않습니다. Claude Code v2.1.274 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage#managed-settings-resolved-event)을 참조하세요 |491| `OTEL_LOG_MANAGED_SETTINGS` | `managed_settings_resolved` OpenTelemetry 로그 이벤트에 마스킹된 관리형 설정과 마스킹 전 설정의 SHA-256 다이제스트를 추가하려면 `1`로 설정합니다. 기본적으로 비활성화되어 있습니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. 프로젝트 또는 로컬 설정의 값으로는 켜지지 않습니다. Claude Code v2.1.274 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage#managed-settings-resolved-event)을 참조하세요 |

490| `OTEL_LOG_RAW_API_BODIES` | Anthropic Messages API 요청 및 응답 JSON을 `api_request_body` / `api_response_body` 로그 이벤트로 내보냅니다. 콘텐츠 한도에서 잘린 인라인 본문을 원하면 `1`로, 잘리지 않은 본문을 디스크에 쓰고 대신 `body_ref` 경로를 내보내려면 `file:<dir>`로 설정합니다. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`로 콘텐츠 한도를 구성하며, 기본값은 60 KB입니다. 기본적으로 비활성화되어 있으며, 본문에는 전체 대화 기록이 포함됩니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. [모니터링](/docs/ko/monitoring-usage#api-request-body-event)을 참조하세요 |492| `OTEL_LOG_RAW_API_BODIES` | Anthropic Messages API 요청 및 응답 JSON을 `api_request_body` / `api_response_body` 로그 이벤트로 내보냅니다. 콘텐츠 한도에서 잘린 인라인 본문을 내보내려면 `1`로, 잘리지 않은 본문을 디스크에 쓰고 대신 `body_ref` 경로를 내보내려면 `file:<dir>`로 설정합니다. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`로 콘텐츠 한도를 구성하며, 기본값은 60 KB입니다. 기본적으로 비활성화되어 있으며, 본문에는 전체 대화 기록이 포함됩니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. [모니터링](/docs/ko/monitoring-usage#api-request-body-event)을 참조하세요 |

491| `OTEL_LOG_TOOL_CONTENT` | `tool.output` OpenTelemetry span 이벤트에 도구 콘텐츠를 포함하려면 `1`로 설정합니다. span 속성은 [자체 게이트](/docs/ko/monitoring-usage#new-context-gates)에 따라 도구 콘텐츠를 포함합니다. [추적](/docs/ko/monitoring-usage#traces-beta)이 필요합니다. 민감한 데이터를 보호하기 위해 기본적으로 비활성화되어 있습니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. 해당 섹션에서 설명하는 끄기 값을 제외하고 [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. [모니터링](/docs/ko/monitoring-usage#tool-output-span-event)을 참조하세요 |493| `OTEL_LOG_TOOL_CONTENT` | `tool.output` OpenTelemetry 스팬 이벤트에 도구 콘텐츠를 포함하려면 `1`로 설정합니다. 스팬 속성은 [자체 게이트](/docs/ko/monitoring-usage#new-context-gates)에 따라 도구 콘텐츠를 포함합니다. [트레이싱](/docs/ko/monitoring-usage#traces-beta)이 필요합니다. 민감한 데이터를 보호하기 위해 기본적으로 비활성화되어 있습니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 해당 섹션에서 설명하는 끄기 값을 제외하고 무시됩니다. [모니터링](/docs/ko/monitoring-usage#tool-output-span-event)을 참조하세요 |

492| `OTEL_LOG_TOOL_DETAILS` | OpenTelemetry 메트릭, 추적 및 로그에 도구 입력 인수, MCP 서버 이름, 사용자가 작성한 워크플로 이름, 도구 실패 시의 원시 오류 문자열, `api_refusal` 이벤트의 거부 `category`, [비용 및 토큰 메트릭](/docs/ko/monitoring-usage#cost-counter)의 실제 에이전트·스킬·플러그인·MCP 서버 이름 및 기타 도구 세부 정보를 포함하려면 `1`로 설정합니다. PII를 보호하기 위해 기본적으로 비활성화되어 있습니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. 해당 섹션에서 설명하는 끄기 값을 제외하고 [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |494| `OTEL_LOG_TOOL_DETAILS` | 도구 입력 인수, MCP 서버 이름, 사용자가 작성한 워크플로 이름, 도구 실패 시의 원시 오류 문자열, `api_refusal` 이벤트의 거부 `category`, [비용 및 토큰 메트릭](/docs/ko/monitoring-usage#cost-counter)의 실제 에이전트, 스킬, 플러그인, MCP 서버 이름, 그리고 기타 도구 세부 정보를 OpenTelemetry 메트릭, 트레이스, 로그에 포함하려면 `1`로 설정합니다. PII를 보호하기 위해 기본적으로 비활성화되어 있습니다. 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 해당 섹션에서 설명하는 끄기 값을 제외하고 무시됩니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

493| `OTEL_LOG_USER_PROMPTS` | OpenTelemetry 추적 및 로그에 사용자 프롬프트 텍스트를 포함하려면 `1`로 설정합니다. 기본적으로 비활성화되어 있습니다(프롬프트가 가려짐). 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. 해당 섹션에서 설명하는 끄기 값을 제외하고 [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |495| `OTEL_LOG_USER_PROMPTS` | OpenTelemetry 트레이스와 로그에 사용자 프롬프트 텍스트를 포함하려면 `1`로 설정합니다. 기본적으로 비활성화되어 있습니다(프롬프트가 마스킹됨). 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 해당 섹션에서 설명하는 끄기 값을 제외하고 무시됩니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

494| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 메트릭 속성에서 계정 UUID를 제외하려면 `false`로 설정합니다(기본값: 포함). [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |496| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 메트릭 속성에서 계정 UUID를 제외하려면 `false`로 설정합니다(기본값: 포함). [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

495| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | 메트릭 속성에 세션 진입점을 포함하려면 `true`로 설정합니다(기본값: 제외). v2.1.152에서 추가되었습니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |497| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | 메트릭 속성에 세션 진입점을 포함하려면 `true`로 설정합니다(기본값: 제외). v2.1.152에서 추가되었습니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

496| `OTEL_METRICS_INCLUDE_REPOSITORY` | 세션의 저장소를 식별하는 `vcs.*` 속성으로 OpenTelemetry 메트릭 및 이벤트에 태그를 지정하려면 `true`로 설정합니다(기본값: 제외). Claude Code v2.1.269 이상이 필요합니다. [저장소 속성](/docs/ko/monitoring-usage#repository-attributes)을 참조하세요 |498| `OTEL_METRICS_INCLUDE_REPOSITORY` | 세션의 저장소를 식별하는 `vcs.*` 속성으로 OpenTelemetry 메트릭과 이벤트에 태그를 지정하려면 `true`로 설정합니다(기본값: 제외). Claude Code v2.1.269 이상이 필요합니다. [저장소 속성](/docs/ko/monitoring-usage#repository-attributes)을 참조하세요 |

497| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | v2.1.161부터 Claude Code는 `OTEL_RESOURCE_ATTRIBUTES` 키를 메트릭 데이터 포인트 레이블에 첨부합니다. 이를 제외하려면 `false`로 설정합니다(기본값: 포함). [모니터링](/docs/ko/monitoring-usage#multi-team-organization-support)을 참조하세요 |499| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | v2.1.161부터 Claude Code는 `OTEL_RESOURCE_ATTRIBUTES` 키를 메트릭 데이터포인트 레이블에 첨부합니다. 이를 제외하려면 `false`로 설정합니다(기본값: 포함). [모니터링](/docs/ko/monitoring-usage#multi-team-organization-support)을 참조하세요 |

498| `OTEL_METRICS_INCLUDE_SESSION_ID` | 메트릭 속성에서 세션 ID를 제외하려면 `false`로 설정합니다(기본값: 포함). [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |500| `OTEL_METRICS_INCLUDE_SESSION_ID` | 메트릭 속성에서 세션 ID를 제외하려면 `false`로 설정합니다(기본값: 포함). [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

499| `OTEL_METRICS_INCLUDE_VERSION` | 메트릭 속성에 Claude Code 버전을 포함하려면 `true`로 설정합니다(기본값: 제외). [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |501| `OTEL_METRICS_INCLUDE_VERSION` | 메트릭 속성에 Claude Code 버전을 포함하려면 `true`로 설정합니다(기본값: 제외). [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

500| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | [Skill 도구](/docs/ko/skills#control-who-invokes-a-skill)에 표시되는 스킬 메타데이터의 문자 예산을 재정의합니다. 예산은 컨텍스트 윈도우의 1%로 동적으로 조정되며, 폴백 값은 8,000자입니다. 이전 버전과의 호환성을 위해 레거시 이름이 유지됩니다 |502| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | [Skill 도구](/docs/ko/skills#control-who-invokes-a-skill)에 표시되는 스킬 메타데이터의 문자 예산을 재정의합니다. 예산은 컨텍스트 윈도우의 1%로 동적으로 조정되며, 폴백 값은 8,000자입니다. 하위 호환성을 위해 레거시 이름을 유지합니다 |

501| `TASK_MAX_OUTPUT_LENGTH` | v2.1.277에서 크기를 지정하던 `TaskOutput` 도구와 함께 제거되어 이제 아무 동작도 하지 않습니다. 이전에는 `TaskOutput` 도구가 유지하는 [백그라운드 작업](/docs/ko/tools-reference#background-commands) 출력의 최대 문자 수를 설정했습니다. 이제 Claude는 대신 `Read`로 백그라운드 작업의 출력 파일을 읽습니다 |503| `TASK_MAX_OUTPUT_LENGTH` | v2.1.277에서 이 변수가 크기를 지정하던 `TaskOutput` 도구와 함께 제거되었으며 이제 아무 효과가 없습니다. 이전에는 `TaskOutput` 도구가 보관하는 [백그라운드 작업](/docs/ko/tools-reference#background-commands) 출력의 최대 문자 수를 설정했습니다. 이제 Claude는 대신 `Read`로 백그라운드 작업의 출력 파일을 읽습니다 |

502| `USE_BUILTIN_RIPGREP` | Claude Code에 포함된 `rg` 대신 시스템에 설치된 `rg`를 사용하려면 `0`으로 설정합니다 |504| `USE_BUILTIN_RIPGREP` | Claude Code에 포함된 `rg` 대신 시스템에 설치된 `rg`를 사용하려면 `0`으로 설정합니다 |

503| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Google Cloud's Agent Platform 사용 시 Claude 3.5 Haiku의 리전을 재정의합니다 |505| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Google Cloud's Agent Platform 사용 시 Claude 3.5 Haiku의 리전을 재정의합니다 |

504| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Google Cloud's Agent Platform 사용 시 Claude 3.5 Sonnet의 리전을 재정의합니다 |506| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Google Cloud's Agent Platform 사용 시 Claude 3.5 Sonnet의 리전을 재정의합니다 |


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

521| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Google Cloud's Agent Platform 사용 시 Claude Haiku 4.5의 리전을 재정의합니다 |523| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Google Cloud's Agent Platform 사용 시 Claude Haiku 4.5의 리전을 재정의합니다 |

522 524 

523표준 OpenTelemetry 익스포터 변수(`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` 및 신호별 변형)도 지원됩니다. 구성 세부 정보는 [모니터링](/docs/ko/monitoring-usage)을 참조하세요.525표준 OpenTelemetry 익스포터 변수(`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` 및 시그널별 변형)도 지원됩니다. 구성 세부 정보는 [모니터링](/docs/ko/monitoring-usage)을 참조하세요.

524 526 

525`CLAUDE_CODE_ENABLE_TELEMETRY`와, 내보내기를 켜거나 대상을 선택하거나 콘텐츠를 캡처하는 OpenTelemetry 변수는 셸, 사용자 설정 또는 관리형 설정에서 설정합니다. Claude Code는 해당 섹션에서 설명하는 끄기 값을 제외하고 [프로젝트 및 로컬 설정에서 이러한 변수를 무시합니다](/docs/ko/settings-reference#variables-claude-code-ignores-in-env). `OTEL_RESOURCE_ATTRIBUTES`와 `OTEL_METRIC_EXPORT_INTERVAL` 같은 내보내기 간격, 타임아웃 및 압축 변수는 프로젝트 및 로컬 설정에서도 계속 적용됩니다.527`CLAUDE_CODE_ENABLE_TELEMETRY`와, 내보내기를 켜거나 내보낼 대상을 선택하거나 콘텐츠를 캡처하는 OpenTelemetry 변수는 셸, 사용자 설정 또는 관리형 설정에서 설정하세요. Claude Code는 해당 섹션에서 설명하는 끄기 값을 제외하고 [프로젝트 및 로컬 설정에서 이러한 변수를 무시합니다](/docs/ko/settings-reference#variables-claude-code-ignores-in-env). `OTEL_RESOURCE_ATTRIBUTES`와 `OTEL_METRIC_EXPORT_INTERVAL` 같은 내보내기 간격, 타임아웃, 압축 변수는 프로젝트 및 로컬 설정에서도 계속 적용됩니다.

526 528 

527<h2 id="features-that-need-feature-flag-fetching">529<h2 id="features-that-need-feature-flag-fetching">

528 기능 플래그 가져오기가 필요한 기능530 기능 플래그 가져오기가 필요한 기능


545* [어드바이저 도구](/docs/ko/advisor#requirements)를 사용할 수 없습니다547* [어드바이저 도구](/docs/ko/advisor#requirements)를 사용할 수 없습니다

546* [아티팩트의 댓글](/docs/ko/artifacts#collect-comments-on-an-artifact)을 읽거나 답글을 달 수 없습니다548* [아티팩트의 댓글](/docs/ko/artifacts#collect-comments-on-an-artifact)을 읽거나 답글을 달 수 없습니다

547* Claude가 [다른 조직의 공개 아티팩트](/docs/ko/artifacts#read-an-artifact-shared-with-you)를 읽도록 할 수 없습니다549* Claude가 [다른 조직의 공개 아티팩트](/docs/ko/artifacts#read-an-artifact-shared-with-you)를 읽도록 할 수 없습니다

548* Claude Code가 `MCP_PROTOCOL_NEGOTIATION=auto`를 설정하지 않는 한 [MCP 프로토콜 개정 2026-07-28](/docs/ko/mcp#mcp-client-runtimes)에 대해 claude.ai 커넥터 서버를 조사할 수 없습니다550* Claude Code가 `MCP_PROTOCOL_NEGOTIATION=auto`를 설정하지 않는 한 [MCP 프로토콜 개정 2026-07-28](/docs/ko/mcp#mcp-client-runtimes)에 대해 claude.ai 커넥터 서버 또는 stdio 서버를 조사할 수 없습니다

549* Git Bash가 설치된 Windows의 claude.ai 및 Console 계정에 대해 기본적으로 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool)를 가져올 수 없습니다. Claude Code는 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`을 설정하지 않는 한 셸 명령을 Git Bash를 통해 라우팅합니다. Git Bash가 없는 Windows에서는 도구가 활성화된 상태로 유지됩니다551* Git Bash가 설치된 Windows의 claude.ai 및 Console 계정에 대해 기본적으로 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool)를 가져올 수 없습니다. Claude Code는 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`을 설정하지 않는 한 셸 명령을 Git Bash를 통해 라우팅합니다. Git Bash가 없는 Windows에서는 도구가 활성화된 상태로 유지됩니다

550* [Claude가 작성한 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior)을 가져올 수 없습니다. Claude Code는 가져온 플래그를 통해 이를 활성화합니다552* [Claude가 작성한 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior)을 가져올 수 없습니다. Claude Code는 가져온 플래그를 통해 이를 활성화합니다

551* Claude가 [대용량 붙여넣기를 입력된 텍스트가 아닌 붙여넣은 텍스트로 처리할 수 없습니다](/docs/ko/terminal-config#how-claude-treats-pasted-text). `[Pasted text #N]` 자리 표시자 뒤의 콘텐츠는 표시되지 않은 상태로 Claude에 도달합니다553* Claude가 [대용량 붙여넣기를 입력된 텍스트가 아닌 붙여넣은 텍스트로 처리할 수 없습니다](/docs/ko/terminal-config#how-claude-treats-pasted-text). `[Pasted text #N]` 자리 표시자 뒤의 콘텐츠는 표시되지 않은 상태로 Claude에 도달합니다

errors.md +71 −51

Details

187| `<model>'s safeguards flagged this message` | [요청 오류](#safety-measures-flagged-a-cybersecurity-topic) |187| `<model>'s safeguards flagged this message` | [요청 오류](#safety-measures-flagged-a-cybersecurity-topic) |

188| `<model>'s safeguards flagged this session` | [요청 오류](#safety-measures-flagged-a-cybersecurity-topic) |188| `<model>'s safeguards flagged this session` | [요청 오류](#safety-measures-flagged-a-cybersecurity-topic) |

189| `<model> has safety measures that flagged this message for a cybersecurity topic` | [요청 오류](#safety-measures-flagged-a-cybersecurity-topic) |189| `<model> has safety measures that flagged this message for a cybersecurity topic` | [요청 오류](#safety-measures-flagged-a-cybersecurity-topic) |

190| `API Error: Output blocked by content filtering policy` | [요청 오류](#output-blocked-by-content-filtering-policy) |

190| `Installation was killed before it could finish (exit code 137)` | [설치 오류](#installation-was-killed-before-it-could-finish) |191| `Installation was killed before it could finish (exit code 137)` | [설치 오류](#installation-was-killed-before-it-could-finish) |

191| `The connection dropped while downloading the update` | [설치 오류](#the-connection-dropped-while-downloading-the-update) |192| `The connection dropped while downloading the update` | [설치 오류](#the-connection-dropped-while-downloading-the-update) |

192| `Download timed out: exceeded the total deadline` | [설치 오류](#the-connection-dropped-while-downloading-the-update) |193| `Download timed out: exceeded the total deadline` | [설치 오류](#the-connection-dropped-while-downloading-the-update) |


402* [Amazon Bedrock streaming response with an unexpected content-type](#bedrock-streaming-response-has-an-unexpected-content-type), 게이트웨이 또는 프록시가 응답을 다시 쓰면 재시도도 같은 방식으로 다시 쓸 것이기 때문입니다. Claude Code v2.1.208 이상이 필요합니다.403* [Amazon Bedrock streaming response with an unexpected content-type](#bedrock-streaming-response-has-an-unexpected-content-type), 게이트웨이 또는 프록시가 응답을 다시 쓰면 재시도도 같은 방식으로 다시 쓸 것이기 때문입니다. Claude Code v2.1.208 이상이 필요합니다.

403* 실패한 스트리밍 요청의 비스트리밍 재시도가 성공 상태를 받지만 [no Claude API message in the body](#api-returned-an-empty-or-malformed-response). Claude Code는 해당 오류로 턴을 종료합니다.404* 실패한 스트리밍 요청의 비스트리밍 재시도가 성공 상태를 받지만 [no Claude API message in the body](#api-returned-an-empty-or-malformed-response). Claude Code는 해당 오류로 턴을 종료합니다.

404* 조직의 정책 검사가 거부한 요청, 이는 거부 메시지를 전달하는 `API Error:` 줄로 표시됩니다. 조직의 관리자는 Claude Enterprise 기능인 [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks)로 검사를 설정하고, 메시지는 구성한 지침으로 끝나거나 기본적으로 관리자에게 연락하도록 안내합니다. Claude Code는 거부가 모델이 아닌 요청의 내용에 관한 것이므로 거부된 요청을 동일한 모델이나 [폴백 모델](/docs/ko/model-config#fallback-model-chains)로 다시 보내지 않습니다. v2.1.239 이전에는 Claude Code가 거부를 표시하기 전에 거부된 요청을 스트리밍 없이 또는 구성된 폴백 모델에서 다시 보낼 수 있었습니다.405* 조직의 정책 검사가 거부한 요청, 이는 거부 메시지를 전달하는 `API Error:` 줄로 표시됩니다. 조직의 관리자는 Claude Enterprise 기능인 [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks)로 검사를 설정하고, 메시지는 구성한 지침으로 끝나거나 기본적으로 관리자에게 연락하도록 안내합니다. Claude Code는 거부가 모델이 아닌 요청의 내용에 관한 것이므로 거부된 요청을 동일한 모델이나 [폴백 모델](/docs/ko/model-config#fallback-model-chains)로 다시 보내지 않습니다. v2.1.239 이전에는 Claude Code가 거부를 표시하기 전에 거부된 요청을 스트리밍 없이 또는 구성된 폴백 모델에서 다시 보낼 수 있었습니다.

406* API의 출력 콘텐츠 필터가 차단한 응답. Claude Code는 즉시 [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy)를 표시하며 해당 요청을 재시도하거나 다시 보내지 않습니다.

405 407 

406<h3 id="what-you-see-while-claude-code-retries-or-waits">408<h3 id="what-you-see-while-claude-code-retries-or-waits">

407 Claude Code가 재시도하거나 대기하는 동안 보는 것409 Claude Code가 재시도하거나 대기하는 동안 보는 것


432| [`CLAUDE_CODE_MAX_RETRIES`](/docs/ko/env-vars) | 10 | 재시도 시도 횟수. v2.1.186부터 15로 제한됩니다. v2.1.199부터 `CLAUDE_CODE_RETRY_WATCHDOG`는 기본값을 높이고 제한을 제거합니다. 스크립트에서 오류를 더 빨리 표시하려면 낮추세요. |434| [`CLAUDE_CODE_MAX_RETRIES`](/docs/ko/env-vars) | 10 | 재시도 시도 횟수. v2.1.186부터 15로 제한됩니다. v2.1.199부터 `CLAUDE_CODE_RETRY_WATCHDOG`는 기본값을 높이고 제한을 제거합니다. 스크립트에서 오류를 더 빨리 표시하려면 낮추세요. |

433| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/ko/env-vars) | 설정 안 됨 | CI 작업과 같은 무인 세션에서 `1`로 설정하여 `CLAUDE_CODE_MAX_RETRIES` 시도 후 실패하는 대신 `429` 및 `529` 용량 오류를 무한정 재시도합니다. Claude Code는 표준 속도 요청이 지출 한도 또는 소진된 사용량 크레딧을 보고하는 `429`를 받으면 즉시 실패합니다. 일정에 따라 재설정되는 [gateway spend cap](#spend-limit-reached)의 경우도 마찬가지입니다. v2.1.239 이전에는 watchdog이 이를 무한정 재시도했습니다. 빠른 모드 요청의 경우 [Handle rate limits](/docs/ko/fast-mode#handle-rate-limits)를 참조하세요. v2.1.199 이상에서는 서버 오류, 시간 초과 및 끊어진 연결과 같은 다른 일시적 오류에 대한 기본 재시도 횟수를 300으로 높입니다. 대략 3시간의 백오프이며, 변수를 명시적으로 설정하면 `CLAUDE_CODE_MAX_RETRIES`의 15 제한을 제거합니다. |435| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/ko/env-vars) | 설정 안 됨 | CI 작업과 같은 무인 세션에서 `1`로 설정하여 `CLAUDE_CODE_MAX_RETRIES` 시도 후 실패하는 대신 `429` 및 `529` 용량 오류를 무한정 재시도합니다. Claude Code는 표준 속도 요청이 지출 한도 또는 소진된 사용량 크레딧을 보고하는 `429`를 받으면 즉시 실패합니다. 일정에 따라 재설정되는 [gateway spend cap](#spend-limit-reached)의 경우도 마찬가지입니다. v2.1.239 이전에는 watchdog이 이를 무한정 재시도했습니다. 빠른 모드 요청의 경우 [Handle rate limits](/docs/ko/fast-mode#handle-rate-limits)를 참조하세요. v2.1.199 이상에서는 서버 오류, 시간 초과 및 끊어진 연결과 같은 다른 일시적 오류에 대한 기본 재시도 횟수를 300으로 높입니다. 대략 3시간의 백오프이며, 변수를 명시적으로 설정하면 `CLAUDE_CODE_MAX_RETRIES`의 15 제한을 제거합니다. |

434| [`API_TIMEOUT_MS`](/docs/ko/env-vars) | 600000 | 요청당 타임아웃(밀리초). 느린 네트워크 또는 프록시의 경우 높이세요. 또한 Claude Code가 응답 헤더를 기다리는 시간을 제한합니다. [No response from API](#no-response-from-api)에 설명되어 있습니다. |436| [`API_TIMEOUT_MS`](/docs/ko/env-vars) | 600000 | 요청당 타임아웃(밀리초). 느린 네트워크 또는 프록시의 경우 높이세요. 또한 Claude Code가 응답 헤더를 기다리는 시간을 제한합니다. [No response from API](#no-response-from-api)에 설명되어 있습니다. |

437| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/ko/env-vars) | 설정 안 됨 | 시간 초과된 [비스트리밍 요청](#streaming-response-ended-before-any-complete-data-was-received)의 재전송 횟수 제한. 제한에 도달하면 요청이 실패합니다. 생성하는 데 타임아웃보다 오래 걸리는 Claude의 응답은 재전송할 때마다 다시 시간 초과되므로, 더 빨리 실패하려면 `0`과 같은 낮은 숫자로 설정하세요. 각 비스트리밍 시도는 로컬 세션에서 300초 후에 시간 초과되며, `API_TIMEOUT_MS`를 양수 값으로 설정한 경우 해당 시간 후에 시간 초과됩니다. Claude Code v2.1.285 이상이 필요합니다. |

435| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/ko/env-vars) | 설정 안 됨 | 스트리밍 요청의 첫 응답 바이트에 대한 기한(밀리초). Claude Code v2.1.242 이상이 필요합니다. 이것이 설정되지 않았을 때 Claude Code가 기한을 선택하는 방법에 대해서는 [No response from API](#no-response-from-api)를 참조하세요. |438| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/ko/env-vars) | 설정 안 됨 | 스트리밍 요청의 첫 응답 바이트에 대한 기한(밀리초). Claude Code v2.1.242 이상이 필요합니다. 이것이 설정되지 않았을 때 Claude Code가 기한을 선택하는 방법에 대해서는 [No response from API](#no-response-from-api)를 참조하세요. |

436 439 

437<h2 id="server-errors">440<h2 id="server-errors">


1839이러한 오류의 대부분은 Claude Code의 네트워크 요청이 목적지에 도달하지 못했거나, Claude Code와 API 사이의 무언가가 반환 경로에서 응답을 변경했음을 의미합니다. 항목에 실패한 아카이브 쓰기와 같은 로컬 원인도 있는 경우, 본문에 명시되어 있습니다. 이러한 오류는 일반적으로 로컬 네트워크, 프록시 또는 방화벽, 또는 클라우드 환경의 네트워크 정책에서 발생합니다.1842이러한 오류의 대부분은 Claude Code의 네트워크 요청이 목적지에 도달하지 못했거나, Claude Code와 API 사이의 무언가가 반환 경로에서 응답을 변경했음을 의미합니다. 항목에 실패한 아카이브 쓰기와 같은 로컬 원인도 있는 경우, 본문에 명시되어 있습니다. 이러한 오류는 일반적으로 로컬 네트워크, 프록시 또는 방화벽, 또는 클라우드 환경의 네트워크 정책에서 발생합니다.

1840 1843 

1841<h3 id="unable-to-connect-to-api">1844<h3 id="unable-to-connect-to-api">

1842 API에 연결할 수 없음1845 Unable to connect to API

1843</h3>1846</h3>

1844 1847 

1845API에 대한 TCP 연결이 실패했거나 완료되지 않았습니다. 일반적인 연결 오류 코드의 경우, 메시지는 실패의 종류를 명시하고 괄호 안에 코드를 유지합니다:1848API에 대한 TCP 연결이 실패했거나 완료되지 않았습니다. 일반적인 연결 오류 코드의 경우, 메시지는 실패의 종류를 명시하고 괄호 안에 코드를 유지합니다:


1856 1859 

1857Claude Code가 인식하지 못하는 코드는 `Unable to connect to API`로 표시되고 괄호 안에 코드가 나타납니다. 이러한 메시지 중 일부는 두 개 이상의 코드를 표시할 수 있습니다. 예를 들어 `Connection refused`는 `ConnectionRefused` 또는 `ECONNREFUSED`를 표시할 수 있고, `Can't reach the API server`는 `ENOTFOUND` 또는 `FailedToOpenSocket`을 표시할 수 있습니다.1860Claude Code가 인식하지 못하는 코드는 `Unable to connect to API`로 표시되고 괄호 안에 코드가 나타납니다. 이러한 메시지 중 일부는 두 개 이상의 코드를 표시할 수 있습니다. 예를 들어 `Connection refused`는 `ConnectionRefused` 또는 `ECONNREFUSED`를 표시할 수 있고, `Can't reach the API server`는 `ENOTFOUND` 또는 `FailedToOpenSocket`을 표시할 수 있습니다.

1858 1861 

1859v2.1.227 이전에는 이러한 각 코드화된 메시지가 `Unable to connect to API` 다음에 코드를 읽었습니다. 예를 들어 `Unable to connect to API (ECONNREFUSED)`.1862v2.1.227 이전에는 이러한 각 코드화된 메시지가 `Unable to connect to API` 뒤에 코드가 붙는 형태였습니다. 예를 들어 `Unable to connect to API (ECONNREFUSED)`입니다.

1860 1863 

1861일반적인 원인으로는 인터넷 접근 불가, `api.anthropic.com`을 차단하는 VPN, 또는 구성되지 않은 필수 회사 프록시가 있습니다.1864일반적인 원인으로는 인터넷 접근 불가, `api.anthropic.com`을 차단하는 VPN, 또는 구성되지 않은 필수 회사 프록시가 있습니다.

1862 1865 


1876* Docker Desktop 및 유사한 컨테이너 런타임은 아웃바운드 트래픽을 가로챌 수 있습니다. 이를 배제하기 위해 종료하고 다시 시도합니다.1879* Docker Desktop 및 유사한 컨테이너 런타임은 아웃바운드 트래픽을 가로챌 수 있습니다. 이를 배제하기 위해 종료하고 다시 시도합니다.

1877 1880 

1878<h3 id="unable-to-connect-to-anthropic-services">1881<h3 id="unable-to-connect-to-anthropic-services">

1879 Anthropic 서비스에 연결할 수 없음1882 Unable to connect to Anthropic services

1880</h3>1883</h3>

1881 1884 

1882첫 실행 설정 중에 Claude Code는 로그인 단계를 표시하기 전에 `api.anthropic.com` 및 `platform.claude.com`에 도달할 수 있는지 확인합니다. 두 확인 중 하나라도 실패하면 Claude Code는 이유를 인쇄하고 종료합니다.1885첫 실행 설정 중에 Claude Code는 로그인 단계를 표시하기 전에 `api.anthropic.com` 및 `platform.claude.com`에 도달할 수 있는지 확인합니다. 두 확인 중 하나라도 실패하면 Claude Code는 이유를 인쇄하고 종료합니다.


1895**수행할 작업:**1898**수행할 작업:**

1896 1899 

1897* 메시지가 프록시 변수의 이름을 지정하는 경우, 해당 값이 올바른 프록시를 가리키는지 확인하고 네트워크 팀에 메시지의 호스트에 대한 HTTPS 연결을 허용하도록 요청합니다. [네트워크 구성](/docs/ko/network-config)을 참조합니다.1900* 메시지가 프록시 변수의 이름을 지정하는 경우, 해당 값이 올바른 프록시를 가리키는지 확인하고 네트워크 팀에 메시지의 호스트에 대한 HTTPS 연결을 허용하도록 요청합니다. [네트워크 구성](/docs/ko/network-config)을 참조합니다.

1898* [API에 연결할 수 없음](#unable-to-connect-to-api)의 확인을 진행합니다. 거기의 `curl` 테스트 및 방화벽 지침이 이 확인에도 적용됩니다.1901* [Unable to connect to API](#unable-to-connect-to-api)의 확인을 진행합니다. 거기의 `curl` 테스트 및 방화벽 지침이 이 확인에도 적용됩니다.

1899* 네트워크가 열려 있고 실패가 지속되는 경우, Claude Code가 [귀국에서 사용 가능하지 않을 수 있습니다](https://www.anthropic.com/supported-countries).1902* 네트워크가 열려 있고 실패가 지속되는 경우, Claude Code가 [해당 국가에서 사용 가능하지 않을 수 있습니다](https://www.anthropic.com/supported-countries).

1900 1903 

1901<h3 id="socket-is-closed">1904<h3 id="socket-is-closed">

1902 소켓이 닫혔음1905 Socket is closed

1903</h3>1906</h3>

1904 1907 

1905`Socket is closed`는 스트리밍 응답을 전달하는 연결이 응답이 여전히 도착하는 동안 닫혔음을 의미합니다. 가장 일반적인 원인은 Windows의 회사 프록시가 응답 중간에 설정된 터널을 삭제하는 것입니다.1908`Socket is closed`는 스트리밍 응답을 전달하는 연결이 응답이 여전히 도착하는 동안 닫혔음을 의미합니다. 가장 일반적인 원인은 Windows의 회사 프록시가 응답 중간에 설정된 터널을 삭제하는 것입니다.


1911**수행할 작업:**1914**수행할 작업:**

1912 1915 

1913* 이 오류가 표시되면 `claude update`로 v2.1.214 이상으로 업데이트한 다음 메시지를 다시 보냅니다.1916* 이 오류가 표시되면 `claude update`로 v2.1.214 이상으로 업데이트한 다음 메시지를 다시 보냅니다.

1914* 업데이트 후 동일한 프록시 뒤에서 턴이 계속 실패하는 경우, [API에 연결할 수 없음](#unable-to-connect-to-api)을 진행하고 [네트워크 구성](/docs/ko/network-config)에서 프록시 설정을 확인합니다.1917* 업데이트 후 동일한 프록시 뒤에서 턴이 계속 실패하는 경우, [Unable to connect to API](#unable-to-connect-to-api)를 진행하고 [네트워크 구성](/docs/ko/network-config)에서 프록시 설정을 확인합니다.

1915 1918 

1916<h3 id="api-returned-an-empty-or-malformed-response">1919<h3 id="api-returned-an-empty-or-malformed-response">

1917 API가 빈 응답 또는 형식이 잘못된 응답을 반환했습니다1920 API returned an empty or malformed response

1918</h3>1921</h3>

1919 1922 

1920Claude Code는 실패한 스트리밍 요청의 비스트리밍 재시도가 HTTP 성공 상태를 받지만 본문이 Claude API 메시지가 아닐 때 이 오류를 표시합니다. 일반적으로 HTML 오류 또는 로그인 페이지, 빈 본문 또는 다른 형식의 JSON입니다. 프록시, 게이트웨이 또는 네트워크 로그인 페이지가 API 대신 응답하는 것이 일반적인 원인입니다. Claude Code는 요청을 재시도하지 않으며, 턴이 이 오류로 종료됩니다.1923Claude Code는 실패한 스트리밍 요청의 비스트리밍 재시도가 HTTP 성공 상태를 받지만 본문이 Claude API 메시지가 아닐 때 이 오류를 표시합니다. 일반적으로 HTML 오류 또는 로그인 페이지, 빈 본문 또는 다른 형식의 JSON입니다. 프록시, 게이트웨이 또는 네트워크 로그인 페이지가 API 대신 응답하는 것이 일반적인 원인입니다. Claude Code는 요청을 재시도하지 않으며, 턴이 이 오류로 종료됩니다.


1940* 게이트웨이를 통한 비스트리밍 경로만 손상된 경우, [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1`](/docs/ko/env-vars#variables)을 설정하여 스트리밍 엔드포인트 자체가 `404`를 반환할 때를 제외하고 이 폴백을 끕니다. 여기서 Claude Code는 여전히 폴백합니다.1943* 게이트웨이를 통한 비스트리밍 경로만 손상된 경우, [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1`](/docs/ko/env-vars#variables)을 설정하여 스트리밍 엔드포인트 자체가 `404`를 반환할 때를 제외하고 이 폴백을 끕니다. 여기서 Claude Code는 여전히 폴백합니다.

1941 1944 

1942<h3 id="streaming-response-ended-before-any-complete-data-was-received">1945<h3 id="streaming-response-ended-before-any-complete-data-was-received">

1943 스트리밍 응답이 완전한 데이터를 받기 전에 종료됨1946 Streaming response ended before any complete data was received

1944</h3>1947</h3>

1945 1948 

1946모델 공급자의 스트리밍 응답이 사용 가능한 데이터를 전달하지 않고 완료되었으므로 Claude Code는 턴을 완료하기 위해 스트리밍 없이 요청을 다시 보냈습니다. Claude Code는 경고를 세션당 한 번, 대화형 세션에서만 표시합니다. v2.1.239 이전에는 Claude Code가 스트리밍 없이 자동으로 재시도했습니다.1949모델 공급자의 스트리밍 응답이 사용 가능한 데이터를 전달하지 않고 완료되었으므로 Claude Code는 턴을 완료하기 위해 스트리밍 없이 요청을 다시 보냈습니다. Claude Code는 경고를 세션당 한 번, 대화형 세션에서만 표시합니다. v2.1.239 이전에는 Claude Code가 스트리밍 없이 자동으로 재시도했습니다.


2075v2.1.236 이전에는 Claude Code가 이러한 메시지 대신 원시 JavaScript TypeError를 표시했습니다.2078v2.1.236 이전에는 Claude Code가 이러한 메시지 대신 원시 JavaScript TypeError를 표시했습니다.

2076 2079 

2077<h3 id="couldnt-reconnect-to-your-remote-control-session">2080<h3 id="couldnt-reconnect-to-your-remote-control-session">

2078 Remote Control 세션에 다시 연결할 수 없습니다2081 Couldn't reconnect to your Remote Control session

2079</h3>2082</h3>

2080 2083 

2081```text theme={null}2084```text theme={null}


2093서버가 대신 이전 세션이 없다고 보고하면 이 메시지가 표시되지 않습니다. Claude Code는 새 세션을 시작하거나 [`Previous session is unavailable — run /remote-control to start a new one`](/docs/ko/remote-control#previous-session-is-unavailable)을 표시합니다.2096서버가 대신 이전 세션이 없다고 보고하면 이 메시지가 표시되지 않습니다. Claude Code는 새 세션을 시작하거나 [`Previous session is unavailable — run /remote-control to start a new one`](/docs/ko/remote-control#previous-session-is-unavailable)을 표시합니다.

2094 2097 

2095<h3 id="sessions-ended-while-this-machine-was-offline">2098<h3 id="sessions-ended-while-this-machine-was-offline">

2096 이 머신이 오프라인 상태인 동안 세션이 종료됨2099 Sessions ended while this machine was offline

2097</h3>2100</h3>

2098 2101 

2099Claude Code는 머신이 오프라인 상태인 동안 서버가 머신이 제공하던 Remote Control 환경을 정리할 만큼 충분히 오래 있었던 후 [`claude remote-control`](/docs/ko/remote-control#start-a-remote-control-session)을 실행하는 터미널에 이 메시지를 표시합니다. 해당 환경의 세션이 종료되었으며 재개할 수 없습니다. 개수는 종료된 세션의 수입니다.2102Claude Code는 머신이 오프라인 상태인 동안 서버가 머신이 제공하던 Remote Control 환경을 정리할 만큼 충분히 오래 있었던 후 [`claude remote-control`](/docs/ko/remote-control#start-a-remote-control-session)을 실행하는 터미널에 이 메시지를 표시합니다. 해당 환경의 세션이 종료되었으며 재개할 수 없습니다. 개수는 종료된 세션의 수입니다.


2108* `claude remote-control`을 실행하여 새로운 환경을 시작합니다.2111* `claude remote-control`을 실행하여 새로운 환경을 시작합니다.

2109 2112 

2110<h3 id="couldnt-share-the-transcript">2113<h3 id="couldnt-share-the-transcript">

2111 트랜스크립트를 공유할 수 없습니다2114 Couldn't share the transcript

2112</h3>2115</h3>

2113 2116 

2114[세션 품질 설문 조사](/docs/ko/data-usage#session-quality-surveys)와 같은 설문 조사 프롬프트에서 세션 트랜스크립트를 공유하기로 동의한 후 Claude Code는 이를 Anthropic에 업로드하거나 타사 공급자, [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway) 세션 및 Anthropic 자격 증명을 사용할 수 없을 때 로컬 아카이브를 대신 저장합니다. 이 메시지는 공유가 완료되지 않았음을 의미합니다.2117[세션 품질 설문 조사](/docs/ko/data-usage#session-quality-surveys)와 같은 설문 조사 프롬프트에서 세션 트랜스크립트를 공유하기로 동의한 후 Claude Code는 이를 Anthropic에 업로드하거나 타사 공급자, [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway) 세션 및 Anthropic 자격 증명을 사용할 수 없을 때 로컬 아카이브를 대신 저장합니다. 이 메시지는 공유가 완료되지 않았음을 의미합니다.


2122**수행할 작업:**2125**수행할 작업:**

2123 2126 

2124* `/feedback`을 실행하여 발생한 상황에 대한 설명과 함께 트랜스크립트를 보냅니다. 환경에서 `/feedback`을 사용할 수 없는 경우 [오류 보고](#report-an-error)를 참조합니다.2127* `/feedback`을 실행하여 발생한 상황에 대한 설명과 함께 트랜스크립트를 보냅니다. 환경에서 `/feedback`을 사용할 수 없는 경우 [오류 보고](#report-an-error)를 참조합니다.

2125* 다른 요청도 실패하는 경우, 네트워크 연결을 확인하고 [API에 연결할 수 없음](#unable-to-connect-to-api)을 참조합니다.2128* 다른 요청도 실패하는 경우, 네트워크 연결을 확인하고 [Unable to connect to API](#unable-to-connect-to-api)를 참조합니다.

2126 2129 

2127<h3 id="couldnt-send-feedback">2130<h3 id="couldnt-send-feedback">

2128 피드백을 보낼 수 없습니다2131 Couldn't send feedback

2129</h3>2132</h3>

2130 2133 

2131[`/feedback`, `/bug`, 또는 `/share` 대화](/docs/ko/commands#all-commands)에서 보고서를 보냈고 Anthropic으로의 업로드가 실패했습니다. 대화는 텍스트를 유지하므로 다시 시도할 수 있습니다.2134[`/feedback`, `/bug`, 또는 `/share` 대화](/docs/ko/commands#all-commands)에서 보고서를 보냈고 Anthropic으로의 업로드가 실패했습니다. 대화는 텍스트를 유지하므로 다시 시도할 수 있습니다.


2144**수행할 작업:**2147**수행할 작업:**

2145 2148 

2146* 로그인되지 않았다는 문구의 경우, `/login`을 실행하고 다시 보냅니다.2149* 로그인되지 않았다는 문구의 경우, `/login`을 실행하고 다시 보냅니다.

2147* 그 외의 경우, 다시 보냅니다. 다른 요청도 실패하는 경우, 네트워크 연결을 확인하고 [API에 연결할 수 없음](#unable-to-connect-to-api)을 참조합니다.2150* 그 외의 경우, 다시 보냅니다. 다른 요청도 실패하는 경우, 네트워크 연결을 확인하고 [Unable to connect to API](#unable-to-connect-to-api)를 참조합니다.

2148* 계속 실패하면 메시지가 말하는 대로 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)에서 보고서를 제출합니다.2151* 계속 실패하면 메시지가 말하는 대로 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)에서 보고서를 제출합니다.

2149 2152 

2150v2.1.281 이전에는 Remote Control **중지** 또는 긴급 교차 세션 메시지가 대화가 열려 있는 동안 도착했을 때 모든 전송이 이 메시지로 실패했습니다. 이러한 버전에서는 대화를 닫고, 다시 열고, 다시 보냅니다.2153v2.1.281 이전에는 Remote Control **중지** 또는 긴급 교차 세션 메시지가 대화가 열려 있는 동안 도착했을 때 모든 전송이 이 메시지로 실패했습니다. 이러한 버전에서는 대화를 닫고, 다시 열고, 다시 보냅니다.


2156이러한 오류는 요청의 내용과 관련이 있습니다. 대부분은 API가 요청을 거부한 후 반환되며, 일부는 요청이 전송되기 전에 Claude Code에서 로컬로 생성됩니다.2159이러한 오류는 요청의 내용과 관련이 있습니다. 대부분은 API가 요청을 거부한 후 반환되며, 일부는 요청이 전송되기 전에 Claude Code에서 로컬로 생성됩니다.

2157 2160 

2158<h3 id="prompt-is-too-long">2161<h3 id="prompt-is-too-long">

2159 프롬프트가 너무 깁니다2162 Prompt is too long

2160</h3>2163</h3>

2161 2164 

2162대화와 첨부된 파일이 모델의 컨텍스트 윈도우를 초과합니다.2165대화와 첨부된 파일이 모델의 컨텍스트 윈도우를 초과합니다.


2251**할 일:**2254**할 일:**

2252 2255 

2253* 다중 턴 대화에서 `/compact`를 실행하여 이전 턴을 요약하고 공간을 확보합니다. 대신 새로 시작하려면 `/clear`를 실행합니다.2256* 다중 턴 대화에서 `/compact`를 실행하여 이전 턴을 요약하고 공간을 확보합니다. 대신 새로 시작하려면 `/clear`를 실행합니다.

2254* 사용량을 줄이는 더 많은 방법은 [프롬프트가 너무 깁니다](#prompt-is-too-long)를 참조하십시오.2257* 사용량을 줄이는 더 많은 방법은 [Prompt is too long](#prompt-is-too-long)을 참조하십시오.

2255 2258 

2256v2.1.216 이전에는 `/context`가 100% 이상의 사용량을 표시했으며 그것이 의미하는 바 또는 복구 방법을 설명하는 경고 줄이 없었습니다.2259v2.1.216 이전에는 `/context`가 100% 이상의 사용량을 표시했으며 그것이 의미하는 바 또는 복구 방법을 설명하는 경고 줄이 없었습니다.

2257 2260 

2258<h3 id="request-too-large">2261<h3 id="request-too-large">

2259 요청이 너무 큽니다2262 Request too large

2260</h3>2263</h3>

2261 2264 

2262원본 요청 본문이 토큰화 전에 API의 32MB 제한을 초과했습니다. 일반적으로 큰 붙여넣은 내용, 도구 결과 또는 첨부 파일 때문입니다. 이 제한은 [컨텍스트 윈도우](#prompt-is-too-long)와 별개입니다.2265원본 요청 본문이 토큰화 전에 API의 32MB 제한을 초과했습니다. 일반적으로 큰 붙여넣은 내용, 도구 결과 또는 첨부 파일 때문입니다. 이 제한은 [컨텍스트 윈도우](#prompt-is-too-long)와 별개입니다.


2277* 메시지가 `compacting cannot make it fit`이라고 말하면 Esc를 두 번 눌러 큰 내용을 추가한 턴 이전으로 되돌아가거나 `/clear`를 실행하여 새로 시작합니다.2280* 메시지가 `compacting cannot make it fit`이라고 말하면 Esc를 두 번 눌러 큰 내용을 추가한 턴 이전으로 되돌아가거나 `/clear`를 실행하여 새로 시작합니다.

2278* 그렇지 않으면 `/compact`를 실행합니다. 이는 누적된 이미지 및 첨부 파일을 제거합니다.2281* 그렇지 않으면 `/compact`를 실행합니다. 이는 누적된 이미지 및 첨부 파일을 제거합니다.

2279* 내용을 붙여넣는 대신 경로로 큰 파일을 참조하여 Claude가 청크 단위로 읽을 수 있도록 합니다.2282* 내용을 붙여넣는 대신 경로로 큰 파일을 참조하여 Claude가 청크 단위로 읽을 수 있도록 합니다.

2280* 이미지의 경우 아래의 [이미지가 너무 컸습니다](#image-was-too-large)를 참조하십시오.2283* 이미지의 경우 아래의 [Image was too large](#image-was-too-large)를 참조하십시오.

2281 2284 

2282<h3 id="image-was-too-large">2285<h3 id="image-was-too-large">

2283 이미지가 너무 컸습니다2286 Image was too large

2284</h3>2287</h3>

2285 2288 

2286붙여넣거나 첨부한 이미지가 API의 크기 또는 치수 제한을 초과합니다.2289붙여넣거나 첨부한 이미지가 API의 크기 또는 치수 제한을 초과합니다.


2298* 전체 화면 대신 관련 영역만 더 좁게 스크린샷을 찍습니다.2301* 전체 화면 대신 관련 영역만 더 좁게 스크린샷을 찍습니다.

2299 2302 

2300<h3 id="unable-to-resize-image">2303<h3 id="unable-to-resize-image">

2301 이미지 크기를 조정할 수 없습니다2304 Unable to resize image

2302</h3>2305</h3>

2303 2306 

2304Claude Code가 API로 보내기 전에 첨부된 이미지를 축소할 수 없었습니다.2307Claude Code가 API로 보내기 전에 첨부된 이미지를 축소할 수 없었습니다.


2347페이지 범위 읽기는 `pdftoppm`으로 페이지를 렌더링합니다. 메시지가 제공하는 명령으로 poppler-utils를 설치하거나, 다른 플랫폼에서는 `pdftoppm`을 `PATH`에 배치하는 poppler 빌드를 설치합니다. 어떤 PDF가 페이지 범위로 읽히는지는 [Read 도구 동작](/docs/ko/tools-reference#read-tool-behavior)을 참조하십시오.2350페이지 범위 읽기는 `pdftoppm`으로 페이지를 렌더링합니다. 메시지가 제공하는 명령으로 poppler-utils를 설치하거나, 다른 플랫폼에서는 `pdftoppm`을 `PATH`에 배치하는 poppler 빌드를 설치합니다. 어떤 PDF가 페이지 범위로 읽히는지는 [Read 도구 동작](/docs/ko/tools-reference#read-tool-behavior)을 참조하십시오.

2348 2351 

2349<h3 id="extra-inputs-are-not-permitted">2352<h3 id="extra-inputs-are-not-permitted">

2350 추가 입력은 허용되지 않습니다2353 Extra inputs are not permitted

2351</h3>2354</h3>

2352 2355 

2353Claude Code와 API 사이의 프록시 또는 LLM 게이트웨이가 `anthropic-beta` 요청 헤더를 제거했으므로 API가 이 헤더에 의존하는 필드를 거부했습니다.2356Claude Code와 API 사이의 프록시 또는 LLM 게이트웨이가 `anthropic-beta` 요청 헤더를 제거했으므로 API가 이 헤더에 의존하는 필드를 거부했습니다.


2409v2.1.281 이전에는 과도하게 긴 이름이 기록에 남아 있었고 API는 `/compact` 및 `--resume`을 포함하여 대화를 다시 보내는 모든 요청을 거부했으므로 이 오류가 반복되고 대화가 막혔습니다.2412v2.1.281 이전에는 과도하게 긴 이름이 기록에 남아 있었고 API는 `/compact` 및 `--resume`을 포함하여 대화를 다시 보내는 모든 요청을 거부했으므로 이 오류가 반복되고 대화가 막혔습니다.

2410 2413 

2411<h3 id="theres-an-issue-with-the-selected-model">2414<h3 id="theres-an-issue-with-the-selected-model">

2412 선택한 모델에 문제가 있습니다2415 There's an issue with the selected model

2413</h3>2416</h3>

2414 2417 

2415구성된 모델 이름을 인식하지 못했거나 계정에 해당 모델에 대한 액세스 권한이 없습니다. v2.1.160부터 뒤따르는 힌트(여기서는 대화형 형식으로 표시)는 사용 환경에 따라 다릅니다.2418구성된 모델 이름을 인식하지 못했거나 계정에 해당 모델에 대한 액세스 권한이 없습니다. v2.1.160부터 뒤따르는 힌트(여기서는 대화형 형식으로 표시)는 사용 환경에 따라 다릅니다.


2429* Google Cloud의 Agent Platform 배포의 경우 [Google Cloud의 Agent Platform 문제 해결](/docs/ko/google-vertex-ai#troubleshooting)을 참조하십시오.2432* Google Cloud의 Agent Platform 배포의 경우 [Google Cloud의 Agent Platform 문제 해결](/docs/ko/google-vertex-ai#troubleshooting)을 참조하십시오.

2430 2433 

2431<h3 id="model-is-not-a-recognized-model-id">2434<h3 id="model-is-not-a-recognized-model-id">

2432 모델이 인식된 모델 ID가 아닙니다2435 Model is not a recognized model id

2433</h3>2436</h3>

2434 2437 

2435모델 전환에 전달한 문자열이 Claude Code가 모델로 사용할 수 있는 것이 아니므로 요청을 보내지 않고 전환을 거부했으며 세션은 현재 모델을 유지합니다. 이 오류는 [Agent SDK](/docs/ko/agent-sdk/typescript) `setModel()` 메서드를 통해 모델을 설정할 때, [Desktop 앱](/docs/ko/desktop)처럼 Claude Code CLI를 대신 실행하는 앱이 모델을 설정할 때, 또는 [Remote Control](/docs/ko/remote-control)로 연결된 장치에서 모델을 선택할 때 발생할 수 있습니다. v2.1.200 이전에는 Claude Code가 문자열을 저장했고 다음 요청에서 [선택한 모델에 문제가 있습니다](#theres-an-issue-with-the-selected-model)로 실패했습니다.2438모델 전환에 전달한 문자열이 Claude Code가 모델로 사용할 수 있는 것이 아니므로 요청을 보내지 않고 전환을 거부했으며 세션은 현재 모델을 유지합니다. 이 오류는 [Agent SDK](/docs/ko/agent-sdk/typescript) `setModel()` 메서드를 통해 모델을 설정할 때, [Desktop 앱](/docs/ko/desktop)처럼 Claude Code CLI를 대신 실행하는 앱이 모델을 설정할 때, 또는 [Remote Control](/docs/ko/remote-control)로 연결된 장치에서 모델을 선택할 때 발생할 수 있습니다. v2.1.200 이전에는 Claude Code가 문자열을 저장했고 다음 요청에서 [There's an issue with the selected model](#theres-an-issue-with-the-selected-model)로 실패했습니다.

2436 2439 

2437```text theme={null}2440```text theme={null}

2438Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?2441Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?


2447**할 일:**2450**할 일:**

2448 2451 

2449* 인수 없이 `/model`을 실행하여 선택기를 열고 계정에서 사용 가능한 모델 중에서 선택한 다음 거기에 표시된 별칭 또는 ID를 전달합니다.2452* 인수 없이 `/model`을 실행하여 선택기를 열고 계정에서 사용 가능한 모델 중에서 선택한 다음 거기에 표시된 별칭 또는 ID를 전달합니다.

2450* 최신 Claude Code 버전에서만 지원하는 별칭을 사용한 경우 `claude update`를 실행하거나 대신 모델의 전체 ID를 전달합니다. 서버는 여전히 해당 모델에 대해 최소 Claude Code 버전을 요구할 수 있습니다. [Claude Code가 이 모델을 지원하지 않습니다](#claude-code-does-not-support-this-model)를 참조하십시오.2453* 최신 Claude Code 버전에서만 지원하는 별칭을 사용한 경우 `claude update`를 실행하거나 대신 모델의 전체 ID를 전달합니다. 서버는 여전히 해당 모델에 대해 최소 Claude Code 버전을 요구할 수 있습니다. [Claude Code does not support this model](#claude-code-does-not-support-this-model)을 참조하십시오.

2451* v2.1.200 이전에 저장된 모델은 이 확인으로 복구되지 않습니다. 오래된 값이 계속 다시 나타나면 [모델 설정](/docs/ko/model-config#setting-your-model)에 나열된 위치에서 제거합니다.2454* v2.1.200 이전에 저장된 모델은 이 확인으로 복구되지 않습니다. 오래된 값이 계속 다시 나타나면 [모델 설정](/docs/ko/model-config#setting-your-model)에 나열된 위치에서 제거합니다.

2452* Anthropic API 이외의 제공자나 게이트웨이 또는 사용자 지정 `ANTHROPIC_BASE_URL` 뒤에서는 빈 문자열만 이 오류를 받습니다. Claude Code는 여전히 모든 제공자에서 요청 시점에 [인식되지 않은 모델 진단 줄](#unrecognized-model-id-on-a-request)을 기록할 수 있습니다.2455* Anthropic API 이외의 제공자나 게이트웨이 또는 사용자 지정 `ANTHROPIC_BASE_URL` 뒤에서는 빈 문자열만 이 오류를 받습니다. Claude Code는 여전히 모든 제공자에서 요청 시점에 [인식되지 않은 모델 진단 줄](#unrecognized-model-id-on-a-request)을 기록할 수 있습니다.

2453 2456 

2454<h3 id="model-not-found">2457<h3 id="model-not-found">

2455 모델을 찾을 수 없습니다2458 Model not found

2456</h3>2459</h3>

2457 2460 

2458이름으로 모델을 전환했고 Claude Code가 해당 이름의 모델이 존재하는지 확인할 수 없었습니다. 이름이 [모델 별칭](/docs/ko/model-config#model-aliases) 또는 Claude Code가 로컬에서 허용하는 다른 표기가 아닌 경우 Claude Code는 최소 API 요청으로 이를 확인하며, 이 오류는 일반적으로 API 엔드포인트의 응답입니다. `/model <name>`에서는 공백을 포함하는 이름처럼 애초에 모델 ID가 될 수 없는 이름도 동일한 메시지를 받습니다.2461이름으로 모델을 전환했고 Claude Code가 해당 이름의 모델이 존재하는지 확인할 수 없었습니다. 이름이 [모델 별칭](/docs/ko/model-config#model-aliases) 또는 Claude Code가 로컬에서 허용하는 다른 표기가 아닌 경우 Claude Code는 최소 API 요청으로 이를 확인하며, 이 오류는 일반적으로 API 엔드포인트의 응답입니다. `/model <name>`에서는 공백을 포함하는 이름처럼 애초에 모델 ID가 될 수 없는 이름도 동일한 메시지를 받습니다.


2471* v2.1.265 이전에는 `/model`이 `opusplan[1m]` 별칭 표기도 이 오류로 거부했습니다. 이러한 버전에서는 Claude Code를 업데이트하거나, 대신 [설정](/docs/ko/model-config#setting-your-model)에서 또는 `--model`로 모델을 설정합니다.2474* v2.1.265 이전에는 `/model`이 `opusplan[1m]` 별칭 표기도 이 오류로 거부했습니다. 이러한 버전에서는 Claude Code를 업데이트하거나, 대신 [설정](/docs/ko/model-config#setting-your-model)에서 또는 `--model`로 모델을 설정합니다.

2472 2475 

2473<h3 id="couldnt-confirm-model-with-the-api">2476<h3 id="couldnt-confirm-model-with-the-api">

2474 선택한 모델을 API로 확인할 수 없습니다2477 Couldn't confirm model with the API

2475</h3>2478</h3>

2476 2479 

2477[Agent SDK](/docs/ko/agent-sdk/typescript) `setModel()` 메서드를 통해 또는 [Desktop 앱](/docs/ko/desktop)과 같이 Claude Code CLI를 대신 실행하는 앱을 통해 모델을 전환했고, 모델 ID를 API 엔드포인트로 확인하는 요청이 5초 이내에 응답을 받지 못했습니다. 세션은 현재 모델을 유지합니다.2480[Agent SDK](/docs/ko/agent-sdk/typescript) `setModel()` 메서드를 통해 또는 [Desktop 앱](/docs/ko/desktop)과 같이 Claude Code CLI를 대신 실행하는 앱을 통해 모델을 전환했고, 모델 ID를 API 엔드포인트로 확인하는 요청이 5초 이내에 응답을 받지 못했습니다. 세션은 현재 모델을 유지합니다.


2502**할 일:**2505**할 일:**

2503 2506 

2504* 서버의 설명에 따라 조치합니다. 속도 제한 또는 5xx 상태의 경우 기다렸다가 모델을 다시 선택합니다.2507* 서버의 설명에 따라 조치합니다. 속도 제한 또는 5xx 상태의 경우 기다렸다가 모델을 다시 선택합니다.

2505* 고유한 문구가 있는 거부는 [모델을 찾을 수 없습니다](#model-not-found) 및 [모델이 조직의 설정으로 제한됩니다](#model-is-restricted-by-your-organizations-settings)와 같은 주변 항목에서 다룹니다.2508* 고유한 문구가 있는 거부는 [Model not found](#model-not-found) 및 [Model is restricted by your organization's settings](#model-is-restricted-by-your-organizations-settings)와 같은 주변 항목에서 다룹니다.

2506 2509 

2507<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">2510<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">

2508 Claude Opus는 Claude Pro 플랜에서 사용할 수 없습니다2511 Claude Opus is not available with the Claude Pro plan

2509</h3>2512</h3>

2510 2513 

2511활성 구독 플랜에 선택한 모델이 포함되지 않습니다.2514활성 구독 플랜에 선택한 모델이 포함되지 않습니다.


2523* 각 플랜에 포함된 모델에 대해서는 [claude.com/pricing](https://claude.com/pricing)을 참조하십시오.2526* 각 플랜에 포함된 모델에 대해서는 [claude.com/pricing](https://claude.com/pricing)을 참조하십시오.

2524 2527 

2525<h3 id="claude-code-does-not-support-this-model">2528<h3 id="claude-code-does-not-support-this-model">

2526 Claude Code가 이 모델을 지원하지 않습니다2529 Claude Code does not support this model

2527</h3>2530</h3>

2528 2531 

2529Claude Code 버전이 필요한 최소 버전보다 낮기 때문에 API가 400으로 요청을 거부했습니다. 선택한 모델이 더 최신 버전을 요구하거나(서버가 모델별로 확인), 조직의 정책이 이를 요구합니다. 400에는 오류 코드 `claude_code_version_too_old`가 포함되며, 메시지에 어떤 최소 버전이 적용되는지 표시됩니다.2532Claude Code 버전이 필요한 최소 버전보다 낮기 때문에 API가 400으로 요청을 거부했습니다. 선택한 모델이 더 최신 버전을 요구하거나(서버가 모델별로 확인), 조직의 정책이 이를 요구합니다. 400에는 오류 코드 `claude_code_version_too_old`가 포함되며, 메시지에 어떤 최소 버전이 적용되는지 표시됩니다.


2556* 조직 정책 문구의 경우 계속하기 전에 업데이트합니다.2559* 조직 정책 문구의 경우 계속하기 전에 업데이트합니다.

2557 2560 

2558<h3 id="model-is-restricted-by-your-organizations-settings">2561<h3 id="model-is-restricted-by-your-organizations-settings">

2559 모델이 조직의 설정으로 제한됩니다2562 Model is restricted by your organization's settings

2560</h3>2563</h3>

2561 2564 

2562조직 관리자가 claude.ai 관리자 콘솔에서 이 모델을 비활성화했거나, 관리형 설정이 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 허용 목록 또는 [`deniedModels`](/docs/ko/model-config#block-specific-models-or-versions) 목록을 통해 이 모델을 제외합니다. 이 알림은 `--model`, `ANTHROPIC_MODEL` 또는 `model` 설정이 제한된 모델을 지정했을 때 시작 시 나타나며, 세션이 대신 사용하는 모델을 표시합니다. 관리형 설정이 세션에서 사용할 수 있는 허용된 모델을 남기지 않는 경우 [관리형 설정이 기본 모델을 차단합니다](#managed-settings-block-the-default-model)를 참조하십시오. 대체 알림은 관리자가 claude.ai 관리자 콘솔에서 세션이 실행 중인 모델을 비활성화한 후 세션 도중에도 나타날 수 있습니다.2565조직 관리자가 claude.ai 관리자 콘솔에서 이 모델을 비활성화했거나, 관리형 설정이 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 허용 목록 또는 [`deniedModels`](/docs/ko/model-config#block-specific-models-or-versions) 목록을 통해 이 모델을 제외합니다. 이 알림은 `--model`, `ANTHROPIC_MODEL` 또는 `model` 설정이 제한된 모델을 지정했을 때 시작 시 나타나며, 세션이 대신 사용하는 모델을 표시합니다. 관리형 설정이 세션에서 사용할 수 있는 허용된 모델을 남기지 않는 경우 [관리형 설정이 기본 모델을 차단합니다](#managed-settings-block-the-default-model)를 참조하십시오. 대체 알림은 관리자가 claude.ai 관리자 콘솔에서 세션이 실행 중인 모델을 비활성화한 후 세션 도중에도 나타날 수 있습니다.


2578* 제한된 모델에 액세스해야 하는 경우 조직 관리자에게 활성화를 요청합니다. [조직 모델 제한](/docs/ko/model-config#organization-model-restrictions)을 참조하십시오.2581* 제한된 모델에 액세스해야 하는 경우 조직 관리자에게 활성화를 요청합니다. [조직 모델 제한](/docs/ko/model-config#organization-model-restrictions)을 참조하십시오.

2579 2582 

2580<h3 id="cant-switch-to-the-default-model">2583<h3 id="cant-switch-to-the-default-model">

2581 기본값으로 전환할 수 없습니다2584 Can't switch to the default model

2582</h3>2585</h3>

2583 2586 

2584기본 모델을 선택했습니다. 예를 들어 `/model` 선택기에서 Default 행을 선택하거나 `/model default`를 입력했습니다. Claude Code가 전환을 거부했으므로 세션은 현재 모델을 유지합니다.2587기본 모델을 선택했습니다. 예를 들어 `/model` 선택기에서 Default 행을 선택하거나 `/model default`를 입력했습니다. Claude Code가 전환을 거부했으므로 세션은 현재 모델을 유지합니다.


2602이러한 관리형 설정에서 세션이 대신 `Claude Code can't start` 메시지와 함께 시작되지 않는 경우 [관리형 설정이 기본 모델을 차단합니다](#managed-settings-block-the-default-model)를 참조하십시오.2605이러한 관리형 설정에서 세션이 대신 `Claude Code can't start` 메시지와 함께 시작되지 않는 경우 [관리형 설정이 기본 모델을 차단합니다](#managed-settings-block-the-default-model)를 참조하십시오.

2603 2606 

2604<h3 id="model-switch-was-blocked-by-a-premodelswitch-hook">2607<h3 id="model-switch-was-blocked-by-a-premodelswitch-hook">

2605 모델 전환이 PreModelSwitch 훅에 의해 차단되었습니다2608 Model switch was blocked by a PreModelSwitch hook

2606</h3>2609</h3>

2607 2610 

2608[PreModelSwitch 훅](/docs/ko/hooks#premodelswitch)이 사용자 또는 클라이언트가 요청한 모델 전환을 승인하지 않았으므로 세션은 현재 모델을 유지합니다. 전환이 사용자가 입력한 명령이 아니라 [Agent SDK](/docs/ko/agent-sdk/overview) 호스트 또는 [Remote Control](/docs/ko/remote-control)에서 온 경우 메시지는 대상 모델을 표시하지 않고 `Model switch blocked by a PreModelSwitch hook`으로 표시됩니다.2611[PreModelSwitch 훅](/docs/ko/hooks#premodelswitch)이 사용자 또는 클라이언트가 요청한 모델 전환을 승인하지 않았으므로 세션은 현재 모델을 유지합니다. 전환이 사용자가 입력한 명령이 아니라 [Agent SDK](/docs/ko/agent-sdk/overview) 호스트 또는 [Remote Control](/docs/ko/remote-control)에서 온 경우 메시지는 대상 모델을 표시하지 않고 `Model switch blocked by a PreModelSwitch hook`으로 표시됩니다.


2622v2.1.260 이전에는 관리형 플러그인 거부 메시지가 `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`였습니다. Claude Code는 플러그인 로드를 한 번 재시도한 다음, 조직이 관리하는 플러그인이 없는 경우에도 세션의 이후 전환을 거부했습니다. 이러한 버전에서는 세션을 다시 시작하여 플러그인 로드를 다시 실행합니다.2625v2.1.260 이전에는 관리형 플러그인 거부 메시지가 `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`였습니다. Claude Code는 플러그인 로드를 한 번 재시도한 다음, 조직이 관리하는 플러그인이 없는 경우에도 세션의 이후 전환을 거부했습니다. 이러한 버전에서는 세션을 다시 시작하여 플러그인 로드를 다시 실행합니다.

2623 2626 

2624<h3 id="couldnt-save-it-as-your-default">2627<h3 id="couldnt-save-it-as-your-default">

2625 기본값으로 저장할 수 없었습니다2628 Couldn't save it as your default

2626</h3>2629</h3>

2627 2630 

2628모델을 기본값으로 저장하도록 선택했지만(예: `/model <name>` 또는 `/model` 선택기에서 `Enter`), Claude Code가 사용자 설정 파일 `~/.claude/settings.json`에 선택을 쓸 수 없었습니다. 전환 자체는 적용되었으므로 현재 세션은 선택한 모델에서 실행되지만 기본값은 변경되지 않으며 다음 세션은 이전 값으로 시작됩니다.2631모델을 기본값으로 저장하도록 선택했지만(예: `/model <name>` 또는 `/model` 선택기에서 `Enter`), Claude Code가 사용자 설정 파일 `~/.claude/settings.json`에 선택을 쓸 수 없었습니다. 전환 자체는 적용되었으므로 현재 세션은 선택한 모델에서 실행되지만 기본값은 변경되지 않으며 다음 세션은 이전 값으로 시작됩니다.


2664v2.1.287 이전에는 Claude Code가 여러 조합의 순위를 다르게 매겼습니다. Opus 4.7 또는 Opus 4.8 메인 모델에 Sonnet 5.5 advisor를 사용할 때 이 메모를 표시했지만, 이 조합은 이제 허용됩니다. 또한 Sonnet 5.5 메인 모델에 Opus 4.8 advisor를 사용하는 경우처럼 현재는 이 메모가 표시되는 일부 advisor를 연결했습니다.2667v2.1.287 이전에는 Claude Code가 여러 조합의 순위를 다르게 매겼습니다. Opus 4.7 또는 Opus 4.8 메인 모델에 Sonnet 5.5 advisor를 사용할 때 이 메모를 표시했지만, 이 조합은 이제 허용됩니다. 또한 Sonnet 5.5 메인 모델에 Opus 4.8 advisor를 사용하는 경우처럼 현재는 이 메모가 표시되는 일부 advisor를 연결했습니다.

2665 2668 

2666<h3 id="thinking-type-enabled-is-not-supported-for-this-model">2669<h3 id="thinking-type-enabled-is-not-supported-for-this-model">

2667 thinking.type.enabled는 이 모델에서 지원되지 않습니다2670 thinking.type.enabled is not supported for this model

2668</h3>2671</h3>

2669 2672 

2670Claude Code 버전이 선택한 모델의 최소 버전보다 오래되었습니다. CLI가 모델이 더 이상 허용하지 않는 사고 구성을 보냈습니다.2673Claude Code 버전이 선택한 모델의 최소 버전보다 오래되었습니다. CLI가 모델이 더 이상 허용하지 않는 사고 구성을 보냈습니다.


2753* 오류가 지속되면 `/clear`를 실행하여 해당 블록이 포함되지 않은 대화를 시작합니다.2756* 오류가 지속되면 `/clear`를 실행하여 해당 블록이 포함되지 않은 대화를 시작합니다.

2754 2757 

2755<h3 id="unsupported-tool-content-removed">2758<h3 id="unsupported-tool-content-removed">

2756 지원되지 않는 도구 내용이 제거되었습니다2759 Unsupported tool content removed

2757</h3>2760</h3>

2758 2761 

2759Claude Code가 Anthropic API에 직접 연결된 상태에서 저장된 세션을 로드하거나 미리 볼 때, Anthropic API가 허용하지 않는 도구 내용을 제거하고 제거된 내용이 두 thinking 블록 사이에 있던 위치에 이 줄을 남깁니다:2762Claude Code가 Anthropic API에 직접 연결된 상태에서 저장된 세션을 로드하거나 미리 볼 때, Anthropic API가 허용하지 않는 도구 내용을 제거하고 제거된 내용이 두 thinking 블록 사이에 있던 위치에 이 줄을 남깁니다:


2770* 재개된 세션의 모든 턴이 대신 400 오류로 실패하면 `claude update`를 실행하고 세션을 다시 재개합니다. v2.1.246 이전 버전은 해당 내용을 제거하지 않습니다.2773* 재개된 세션의 모든 턴이 대신 400 오류로 실패하면 `claude update`를 실행하고 세션을 다시 재개합니다. v2.1.246 이전 버전은 해당 내용을 제거하지 않습니다.

2771 2774 

2772<h3 id="role-system-must-precede-an-assistant-message">2775<h3 id="role-system-must-precede-an-assistant-message">

2773 역할 'system'은 'assistant' 메시지 앞에 와야 합니다2776 role 'system' must precede an 'assistant' message

2774</h3>2777</h3>

2775 2778 

2776대화에서 API가 허용하지 않는 위치에 시스템 메시지가 있기 때문에 API가 400으로 요청을 거부했습니다:2779대화에서 API가 허용하지 않는 위치에 시스템 메시지가 있기 때문에 API가 400으로 요청을 거부했습니다:


2865* 요청이 사이버 보안 주제와 관련이 없었다면 `/feedback`을 실행하여 오탐을 보고합니다.2868* 요청이 사이버 보안 주제와 관련이 없었다면 `/feedback`을 실행하여 오탐을 보고합니다.

2866* 같은 세션에서 계속 작업하려면 Esc를 두 번 누르거나 `/rewind`를 실행하여 플래그를 트리거한 턴 이전의 체크포인트로 되돌아간 다음 다른 접근 방식을 취합니다. [체크포인트](/docs/ko/checkpointing)를 참조하십시오.2869* 같은 세션에서 계속 작업하려면 Esc를 두 번 누르거나 `/rewind`를 실행하여 플래그를 트리거한 턴 이전의 체크포인트로 되돌아간 다음 다른 접근 방식을 취합니다. [체크포인트](/docs/ko/checkpointing)를 참조하십시오.

2867 2870 

2871<h3 id="output-blocked-by-content-filtering-policy">

2872 Output blocked by content filtering policy

2873</h3>

2874 

2875API의 출력 콘텐츠 필터가 Claude가 생성하던 응답을 중단했습니다. 메시지 텍스트는 API에서 제공됩니다:

2876 

2877```text theme={null}

2878API Error: Output blocked by content filtering policy

2879```

2880 

2881Claude Code는 차단이 도착하는 즉시 오류를 표시하고 해당 요청을 종료합니다. 요청을 재시도하거나, 스트리밍 없이 다시 보내거나, [폴백 모델](/docs/ko/model-config#fallback-model-chains)로 전환하지 않습니다. v2.1.285 이전에는 Claude Code가 차단된 요청을 다시 보내고 재시도할 수 있었으며, 때로는 몇 분 동안 그렇게 한 후에야 오류를 표시했습니다.

2882 

2883**할 일:**

2884 

2885* 마지막 메시지를 다르게 표현하거나 다른 접근 방식을 취합니다.

2886* 차단을 트리거한 턴 이전의 체크포인트로 되돌아가려면 Esc를 두 번 누르거나 `/rewind`를 실행합니다. [체크포인트](/docs/ko/checkpointing)를 참조하십시오.

2887 

2868<h2 id="installation-errors">2888<h2 id="installation-errors">

2869 설치 오류2889 설치 오류

2870</h2>2890</h2>


4247이러한 오류는 Claude의 도구 호출에서 발생합니다. Claude는 대부분의 도구 오류를 자동으로 수정합니다. 변경이 필요한 경우 해당 오류의 **할 일** 목록에 변경할 사항이 명시되어 있습니다.4267이러한 오류는 Claude의 도구 호출에서 발생합니다. Claude는 대부분의 도구 오류를 자동으로 수정합니다. 변경이 필요한 경우 해당 오류의 **할 일** 목록에 변경할 사항이 명시되어 있습니다.

4248 4268 

4249<h3 id="no-such-tool-available">4269<h3 id="no-such-tool-available">

4250 사용 가능한 도구가 없음4270 No such tool available

4251</h3>4271</h3>

4252 4272 

4253Claude가 세션의 도구 목록에 없는 이름으로 도구를 호출했습니다. Claude Code는 도구 호출의 결과로 Claude에 오류를 반환하며 턴이 계속됩니다. Claude Code가 도구가 없는 이유를 알 수 있으면 두 번째 줄처럼 도구 이름 뒤에 이유를 설명하거나 대신 호출할 도구를 지정하는 문장을 추가합니다:4273Claude가 세션의 도구 목록에 없는 이름으로 도구를 호출했습니다. Claude Code는 도구 호출의 결과로 Claude에 오류를 반환하며 턴이 계속됩니다. Claude Code가 도구가 없는 이유를 알 수 있으면 두 번째 줄처럼 도구 이름 뒤에 이유를 설명하거나 대신 호출할 도구를 지정하는 문장을 추가합니다:


4267* MCP 서버의 도구 호출이 이 오류로 계속 실패하면 세션에서 `/mcp`를 실행하거나 셸에서 `claude mcp list`를 실행하여 서버의 [상태](/docs/ko/mcp#server-status)를 확인하고, 실패한 서버는 `/mcp`에서 다시 연결합니다. Agent SDK에서는 [오류 처리](/docs/ko/agent-sdk/mcp#error-handling)를 참조합니다.4287* MCP 서버의 도구 호출이 이 오류로 계속 실패하면 세션에서 `/mcp`를 실행하거나 셸에서 `claude mcp list`를 실행하여 서버의 [상태](/docs/ko/mcp#server-status)를 확인하고, 실패한 서버는 `/mcp`에서 다시 연결합니다. Agent SDK에서는 [오류 처리](/docs/ko/agent-sdk/mcp#error-handling)를 참조합니다.

4268 4288 

4269<h3 id="agent-would-be-spawned-with-zero-tools">4289<h3 id="agent-would-be-spawned-with-zero-tools">

4270 에이전트가 도구 없이 생성됨4290 Agent would be spawned with zero tools

4271</h3>4291</h3>

4272 4292 

4273서브에이전트의 [`tools` 목록](/docs/ko/sub-agents#supported-frontmatter-fields)의 모든 항목이 사용 가능한 도구와 일치하지 않아 Claude Code가 서브에이전트 시작을 거부했습니다. 도구가 없으면 작동할 수 없기 때문입니다. 메시지는 항목을 잘못된 이유별로 그룹화합니다:4293서브에이전트의 [`tools` 목록](/docs/ko/sub-agents#supported-frontmatter-fields)의 모든 항목이 사용 가능한 도구와 일치하지 않아 Claude Code가 서브에이전트 시작을 거부했습니다. 도구가 없으면 작동할 수 없기 때문입니다. 메시지는 항목을 잘못된 이유별로 그룹화합니다:


4293* `Agent`만 포함하는 `tools` 목록의 경우 [깊이 제한](/docs/ko/sub-agents#let-subagents-spawn-their-own-subagents)을 높이거나 에이전트에 최소한 하나의 다른 도구를 제공합니다. Claude Code는 해당 제한에서 `Agent`를 보류하므로 다른 항목이 없는 목록은 도구 없음으로 해석됩니다.4313* `Agent`만 포함하는 `tools` 목록의 경우 [깊이 제한](/docs/ko/sub-agents#let-subagents-spawn-their-own-subagents)을 높이거나 에이전트에 최소한 하나의 다른 도구를 제공합니다. Claude Code는 해당 제한에서 `Agent`를 보류하므로 다른 항목이 없는 목록은 도구 없음으로 해석됩니다.

4294 4314 

4295<h3 id="file-is-covered-by-a-read-deny-rule">4315<h3 id="file-is-covered-by-a-read-deny-rule">

4296 파일이 Read 거부 규칙으로 적용됨4316 File is covered by a Read deny rule

4297</h3>4317</h3>

4298 4318 

4299Edit 또는 Write 도구가 [`Read` 거부 규칙](/docs/ko/permissions#read-and-edit)과 일치하는 경로에서 호출되었습니다. 여기에는 해당 경로에 새 파일을 만드는 것도 포함됩니다. 두 도구 모두 Claude가 다시 읽을 수 있어야 하는 콘텐츠를 변경하므로 Claude Code는 파일 액세스 전에 호출을 거부합니다. NotebookEdit은 `Read` 거부 규칙의 적용을 받지 않습니다. v2.1.228 이전에는 규칙이 Edit 도구만 차단했고, v2.1.208 이전에는 `Edit` 거부 규칙만 편집을 차단했습니다.4319Edit 또는 Write 도구가 [`Read` 거부 규칙](/docs/ko/permissions#read-and-edit)과 일치하는 경로에서 호출되었습니다. 여기에는 해당 경로에 새 파일을 만드는 것도 포함됩니다. 두 도구 모두 Claude가 다시 읽을 수 있어야 하는 콘텐츠를 변경하므로 Claude Code는 파일 액세스 전에 호출을 거부합니다. NotebookEdit은 `Read` 거부 규칙의 적용을 받지 않습니다. v2.1.228 이전에는 규칙이 Edit 도구만 차단했고, v2.1.208 이전에는 `Edit` 거부 규칙만 편집을 차단했습니다.


4310* 파일이 그대로 유지되어야 하면 규칙을 유지하고 NotebookEdit 도구도 차단하기 위해 동일한 경로에 `Edit` 거부 규칙을 추가합니다.4330* 파일이 그대로 유지되어야 하면 규칙을 유지하고 NotebookEdit 도구도 차단하기 위해 동일한 경로에 `Edit` 거부 규칙을 추가합니다.

4311 4331 

4312<h3 id="path-cannot-contain-null-bytes">4332<h3 id="path-cannot-contain-null-bytes">

4313 경로에 null 바이트가 포함될 수 없음4333 Path cannot contain null bytes

4314</h3>4334</h3>

4315 4335 

4316파일 도구 호출의 경로 또는 패턴 인수에 null 바이트가 포함되어 있으며, 파일 시스템과 검색 도구는 이를 수락할 수 없습니다. Read, Write, Edit, NotebookEdit, Glob 및 Grep은 이를 확인하고 메시지는 도구와 인수의 이름을 지정합니다:4336파일 도구 호출의 경로 또는 패턴 인수에 null 바이트가 포함되어 있으며, 파일 시스템과 검색 도구는 이를 수락할 수 없습니다. Read, Write, Edit, NotebookEdit, Glob 및 Grep은 이를 확인하고 메시지는 도구와 인수의 이름을 지정합니다:


4328v2.1.281 이전에는 Read, Write, Edit 또는 NotebookEdit 경로의 null 바이트가 `Path contains null bytes`라는 이름의 오류로 전체 턴을 종료했으며 도구는 실행되지 않았습니다.4348v2.1.281 이전에는 Read, Write, Edit 또는 NotebookEdit 경로의 null 바이트가 `Path contains null bytes`라는 이름의 오류로 전체 턴을 종료했으며 도구는 실행되지 않았습니다.

4329 4349 

4330<h3 id="subagent-type-is-required">4350<h3 id="subagent-type-is-required">

4331 subagent\_type이 필수입니다4351 subagent\_type is required

4332</h3>4352</h3>

4333 4353 

4334```text theme={null}4354```text theme={null}


4414 팀원의 에이전트 정의가 복원되지 않음4434 팀원의 에이전트 정의가 복원되지 않음

4415</h3>4435</h3>

4416 4436 

4417Claude가 중지된 [에이전트 팀](/docs/ko/agent-teams) 팀원에게 메시지를 보냈고 Claude Code가 [서브에이전트 정의](/docs/ko/agent-teams#use-subagent-definitions-for-teammates)를 다시 적용하지 않고 복구했습니다. 정의 파일이 저장된 신뢰가 없는 폴더에서 나왔기 때문입니다. 알림은 전송 에이전트의 도구 결과에서 재개 보고서를 따릅니다:4437Claude가 중지된 [에이전트 팀](/docs/ko/agent-teams) 팀원에게 메시지를 보냈고, Claude Code가 해당 팀원을 생성할 때 사용한 [서브에이전트 정의](/docs/ko/agent-teams#use-subagent-definitions-for-teammates)를 다시 적용하지 않고 복구했습니다. 알림은 전송 에이전트의 도구 결과에서 재개 보고서 뒤에 나타나며 이유를 지정합니다. 정의 파일이 저장된 신뢰가 없는 폴더에서 나온 경우 다음과 같이 표시됩니다:

4418 4438 

4419```text wrap theme={null}4439```text wrap theme={null}

4420Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.4440Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.


4428* 또는 `~/.claude.json`에서 `hasTrustDialogAccepted` 항목을 `true`로 설정합니다. 디버그 로그가 인쇄하는 정확한 `projects["<path>"]` 키를 사용합니다.4448* 또는 `~/.claude.json`에서 `hasTrustDialogAccepted` 항목을 `true`로 설정합니다. 디버그 로그가 인쇄하는 정확한 `projects["<path>"]` 키를 사용합니다.

4429 4449 

4430<h3 id="message-too-large-for-cross-session-delivery">4450<h3 id="message-too-large-for-cross-session-delivery">

4431 교차 세션 전달에 너무 큼4451 Message too large for cross-session delivery

4432</h3>4452</h3>

4433 4453 

4434Claude의 [교차 세션 메시지](/docs/ko/cross-session-messaging)가 이 머신의 다른 세션으로 너무 길어서 보낼 수 없었습니다. Claude Code가 거부했고 수신 세션이 아무것도 받지 못했습니다. 거부는 터미널의 배너가 아닌 전송 세션의 도구 결과에 나타납니다. 두 크기와 메시지를 맞추는 방법을 지정합니다:4454Claude의 [교차 세션 메시지](/docs/ko/cross-session-messaging)가 이 머신의 다른 세션으로 너무 길어서 보낼 수 없었습니다. Claude Code가 거부했고 수신 세션이 아무것도 받지 못했습니다. 거부는 터미널의 배너가 아닌 전송 세션의 도구 결과에 나타납니다. 두 크기와 메시지를 맞추는 방법을 지정합니다:


4447v2.1.235 이전에는 Claude Code가 과도한 크기의 메시지를 보낸 것으로 보고했습니다. 수신 세션이 읽지 않고 삭제했습니다.4467v2.1.235 이전에는 Claude Code가 과도한 크기의 메시지를 보낸 것으로 보고했습니다. 수신 세션이 읽지 않고 삭제했습니다.

4448 4468 

4449<h3 id="too-many-messages-to-this-session-just-now">4469<h3 id="too-many-messages-to-this-session-just-now">

4450 이 세션으로 너무 많은 메시지4470 Too many messages to this session just now

4451</h3>4471</h3>

4452 4472 

4453Claude가 이 머신의 한 세션으로 빠른 [교차 세션 메시지](/docs/ko/cross-session-messaging) 버스트를 보냈고 버스트가 해당 세션의 받은편지함이 수락하는 것에 도달했습니다. Claude Code가 다음 전송을 거부했고 수신 세션이 아무것도 받지 못했습니다. 거부는 터미널의 배너가 아닌 전송 세션의 도구 결과에 나타납니다:4473Claude가 이 머신의 한 세션으로 빠른 [교차 세션 메시지](/docs/ko/cross-session-messaging) 버스트를 보냈고 버스트가 해당 세션의 받은편지함이 수락하는 것에 도달했습니다. Claude Code가 다음 전송을 거부했고 수신 세션이 아무것도 받지 못했습니다. 거부는 터미널의 배너가 아닌 전송 세션의 도구 결과에 나타납니다:


4464v2.1.236 이전에는 Claude Code가 이러한 전송을 보낸 것으로 보고했습니다. 수신 세션이 읽지 않고 삭제했습니다.4484v2.1.236 이전에는 Claude Code가 이러한 전송을 보낸 것으로 보고했습니다. 수신 세션이 읽지 않고 삭제했습니다.

4465 4485 

4466<h3 id="cross-session-message-dropped-at-the-inbox">4486<h3 id="cross-session-message-dropped-at-the-inbox">

4467 교차 세션 메시지가 수신자 세션의 받은편지함에서 삭제됨4487 Cross-session message was dropped at the recipient session's inbox

4468</h3>4488</h3>

4469 4489 

4470Claude가 [교차 세션 메시지](/docs/ko/cross-session-messaging)를 이 머신의 다른 세션으로 보냈고 해당 세션의 받은편지함이 Claude가 해당 세션에서 읽기 전에 메시지를 삭제했습니다. 줄은 수신자의 주소를 지정하고, 수신자가 이유를 제공했을 때 대시 뒤에 이유를 추가합니다:4490Claude가 [교차 세션 메시지](/docs/ko/cross-session-messaging)를 이 머신의 다른 세션으로 보냈고 해당 세션의 받은편지함이 Claude가 해당 세션에서 읽기 전에 메시지를 삭제했습니다. 줄은 수신자의 주소를 지정하고, 수신자가 이유를 제공했을 때 대시 뒤에 이유를 추가합니다:


4546v2.1.280 이전에는 `where it leads on disk could not be determined` 거부가 나타나지 않았습니다.4566v2.1.280 이전에는 `where it leads on disk could not be determined` 거부가 나타나지 않았습니다.

4547 4567 

4548<h3 id="task-output-swap-refused">4568<h3 id="task-output-swap-refused">

4549 작업 출력 스왑 거부4569 Task output swap refused

4550</h3>4570</h3>

4551 4571 

4552Claude Code는 각 Bash 명령의 출력을 임시 디렉터리 아래의 파일에 저장합니다. 이러한 파일 중 하나를 열 때마다 경로가 여전히 생성한 파일로 이어지는지 확인합니다. 심볼릭 링크, 추가 하드 링크 또는 이동된 디렉터리가 리디렉션하지 않습니다. 이 메시지는 확인이 실패했음을 의미하므로 Claude Code는 해당 경로를 통해 쓰거나 읽는 대신 작업을 거부했습니다. 메시지는 Bash 도구 결과에 나타납니다:4572Claude Code는 각 Bash 명령의 출력을 임시 디렉터리 아래의 파일에 저장합니다. 이러한 파일 중 하나를 열 때마다 경로가 여전히 생성한 파일로 이어지는지 확인합니다. 심볼릭 링크, 추가 하드 링크 또는 이동된 디렉터리가 리디렉션하지 않습니다. 이 메시지는 확인이 실패했음을 의미하므로 Claude Code는 해당 경로를 통해 쓰거나 읽는 대신 작업을 거부했습니다. 메시지는 Bash 도구 결과에 나타납니다:


4593* 그런 다음 Claude에 명령을 다시 실행하도록 합니다. 인쇄한 출력은 손실되었으며 잘리지 않았습니다.4613* 그런 다음 Claude에 명령을 다시 실행하도록 합니다. 인쇄한 출력은 손실되었으며 잘리지 않았습니다.

4594 4614 

4595<h3 id="the-source-file-is-not-valid-utf-8-text">4615<h3 id="the-source-file-is-not-valid-utf-8-text">

4596 소스 파일이 유효한 UTF-8 텍스트가 아님4616 The source file is not valid UTF-8 text

4597</h3>4617</h3>

4598 4618 

4599Claude가 바이트가 텍스트로 디코딩되지 않거나 텍스트가 이미 대체 문자 `U+FFFD`를 포함하는 파일에서 [아티팩트](/docs/ko/artifacts)를 게시하려고 했으므로 Claude Code는 아무것도 업로드하기 전에 게시를 거부했습니다. 메시지는 Artifact 도구 결과에 나타나고 수정할 첫 번째 위치의 이름을 지정합니다:4619Claude가 바이트가 텍스트로 디코딩되지 않거나 텍스트가 이미 대체 문자 `U+FFFD`를 포함하는 파일에서 [아티팩트](/docs/ko/artifacts)를 게시하려고 했으므로 Claude Code는 아무것도 업로드하기 전에 게시를 거부했습니다. 메시지는 Artifact 도구 결과에 나타나고 수정할 첫 번째 위치의 이름을 지정합니다:


4615v2.1.267 이전에는 Claude Code가 그러한 파일을 확인 없이 업로드했고 서버가 대신 게시를 거부했습니다.4635v2.1.267 이전에는 Claude Code가 그러한 파일을 확인 없이 업로드했고 서버가 대신 게시를 거부했습니다.

4616 4636 

4617<h3 id="not-published-that-file-is-on-a-network-share">4637<h3 id="not-published-that-file-is-on-a-network-share">

4618 게시되지 않음: 해당 파일이 네트워크 공유에 있음4638 Not published: that file is on a network share

4619</h3>4639</h3>

4620 4640 

4621Claude가 네트워크 호스트를 지정하는 경로에 있는 파일에서 [아티팩트](/docs/ko/artifacts)를 게시하려고 했습니다:4641Claude가 네트워크 호스트를 지정하는 경로에 있는 파일에서 [아티팩트](/docs/ko/artifacts)를 게시하려고 했습니다:


4656* 정확한 파일을 아티팩트에 넣으려면 세션의 연결된 폴더 중 하나에 일반 파일(심볼릭 링크 아님)로 복사하고 다시 요청합니다.4676* 정확한 파일을 아티팩트에 넣으려면 세션의 연결된 폴더 중 하나에 일반 파일(심볼릭 링크 아님)로 복사하고 다시 요청합니다.

4657 4677 

4658<h3 id="webfetch-cannot-fetch-localhost">4678<h3 id="webfetch-cannot-fetch-localhost">

4659 WebFetch는 localhost를 가져올 수 없음4679 WebFetch cannot fetch localhost

4660</h3>4680</h3>

4661 4681 

4662Claude가 `http://localhost:3000` 또는 `http://wiki/`와 같은 인트라넷 이름처럼 점이 없는 호스트명을 가진 URL로 [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior)를 호출했습니다. WebFetch는 요청을 하기 전에 이러한 URL을 거부합니다:4682Claude가 `http://localhost:3000` 또는 `http://wiki/`와 같은 인트라넷 이름처럼 점이 없는 호스트명을 가진 URL로 [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior)를 호출했습니다. WebFetch는 요청을 하기 전에 이러한 URL을 거부합니다:

hooks.md +461 −461

Details

1159 훅 이벤트1159 훅 이벤트

1160</h2>1160</h2>

1161 1161 

1162각 이벤트는 훅이 실행될 수 있는 Claude Code 수명 주기의 한 시점에 해당합니다. 아래 섹션은 세션 설정부터 에이전틱 루프를 거쳐 세션 종료까지 수명 주기 순서대로 정렬되어 있습니다. 각 섹션에서는 이벤트가 언제 발생하는지, 어떤 matcher를 지원하는지, 어떤 JSON 입력을 받는지, 출력을 통해 동작을 어떻게 제어하는지 설명합니다.1162각 이벤트는 Claude Code 수명 주기에서 훅이 실행될 수 있는 지점에 해당합니다. 아래 섹션은 세션 설정부터 에이전틱 루프를 거쳐 세션 종료까지 수명 주기 순서에 맞춰 정렬되어 있습니다. 각 섹션에서는 이벤트가 발생하는 시점, 지원하는 matcher, 수신하는 JSON 입력, 출력을 통해 동작을 제어하는 방법을 설명합니다.

1163 1163 

1164<h3 id="sessionstart">1164<h3 id="sessionstart">

1165 SessionStart1165 SessionStart

1166</h3>1166</h3>

1167 1167 

1168Claude Code가 새 세션을 시작하거나 기존 세션을 재개할 때 실행됩니다. 기존 이슈나 코드베이스의 최근 변경 사항 같은 개발 컨텍스트를 로드하거나 환경 변수를 설정할 때 유용합니다. 스크립트가 필요하지 않은 정적 컨텍스트에는 대신 [CLAUDE.md](/docs/ko/memory)를 사용합니다.1168Claude Code가 새 세션을 시작하거나 기존 세션을 재개할 때 실행됩니다. 기존 이슈나 코드베이스의 최근 변경 사항 같은 개발 컨텍스트를 불러오거나 환경 변수를 설정하는 데 유용합니다. 스크립트가 필요 없는 정적 컨텍스트에는 대신 [CLAUDE.md](/docs/ko/memory)를 사용합니다.

1169 1169 

1170SessionStart는 모든 세션에서 실행되므로 이 훅은 빠르게 유지해야 합니다. `type: "command"` 및 `type: "mcp_tool"` 훅만 지원됩니다. `mcp_tool` 훅이 언제 실행되는지는 [MCP 도구 훅 필드](#mcp-tool-hook-fields)를 참조하십시오.1170SessionStart는 모든 세션에서 실행되므로 이 훅은 빠르게 유지해야 합니다. `type: "command"` 및 `type: "mcp_tool"` 훅만 지원됩니다. `mcp_tool` 훅이 실행되는 시점은 [MCP 도구 훅 필드](#mcp-tool-hook-fields)를 참조하세요.

1171 1171 

1172matcher 값은 세션이 시작된 방식에 해당합니다.1172matcher 값은 세션이 시작된 방식에 해당합니다.

1173 1173 


1181 1181 

1182v2.1.214 이전에는 분기된 세션이 source를 `"resume"`으로 보고했습니다.1182v2.1.214 이전에는 분기된 세션이 source를 `"resume"`으로 보고했습니다.

1183 1183 

1184대화형 세션을 시작하거나, 실행 시 `--continue` 또는 `--resume`으로 대화를 재개하거나, `/clear`를 실행하면 SessionStart 훅이 백그라운드에서 실행됩니다. 바로 입력할 수 있으며, 재개한 대화는 훅을 기다리지 않고 표시됩니다. Claude의 첫 응답은 여전히 훅이 완료될 때까지 기다리므로 훅의 컨텍스트가 Claude에게 전달됩니다.1184대화형 세션을 시작하거나, 실행 시 `--continue` 또는 `--resume`으로 대화를 재개하거나, `/clear`를 실행하면 SessionStart 훅이 백그라운드에서 실행됩니다. 바로 입력을 시작할 수 있으며, 재개한 대화는 훅을 기다리지 않고 표시됩니다. Claude의 첫 응답은 여전히 훅이 끝날 때까지 기다리므로 훅의 컨텍스트가 Claude에 전달됩니다.

1185 1185 

1186세션 내에서 `/resume`으로 대화를 전환하면 대신 전환이 훅 완료를 기다립니다. 백그라운드 훅이 아직 실행 중일 때 `/clear`를 실행하거나 다른 대화로 전환하면 훅이 반환하는 내용은 세션에 적용되지 않습니다.1186세션 안에서 `/resume`으로 대화를 전환하면 전환이 대신 훅이 끝날 때까지 기다립니다. 백그라운드 훅이 아직 실행 중일 때 `/clear`를 실행하거나 다른 대화로 전환하면 훅이 반환하는 내용은 세션에 적용되지 않습니다.

1187 1187 

1188재개한 세션을 포함하여 실행 시에도 동일한 대기가 적용됩니다. SessionStart 훅이 아직 실행 중일 때 보낸 프롬프트는 훅이 완료될 때까지 Claude에게 전달되지 않습니다.1188재개한 세션을 포함하여 실행 시에도 동일한 대기가 적용됩니다. SessionStart 훅이 아직 실행 중일 때 보낸 프롬프트는 훅이 끝날 때까지 Claude에 전달되지 않습니다.

1189 1189 

1190어느 쪽 대기 중이든 `Esc`를 누르면 프롬프트를 보내지 않고 입력란으로 되돌릴 수 있습니다. 훅은 계속 실행됩니다.1190어느 대기 중이든 `Esc`를 누르면 프롬프트를 보내지 않고 입력란으로 되돌릴 수 있습니다. 훅은 계속 실행됩니다.

1191 1191 

1192<h4 id="sessionstart-input">1192<h4 id="sessionstart-input">

1193 SessionStart 입력1193 SessionStart 입력

1194</h4>1194</h4>

1195 1195 

1196[공통 입력 필드](#common-input-fields) 외에도 SessionStart 훅은 `source`와 선택적으로 `model`, `agent_type`, `session_title`을 받습니다.1196[공통 입력 필드](#common-input-fields) 외에도 SessionStart 훅은 `source`와 선택적으로 `model`, `agent_type`, `session_title`을 수신합니다.

1197 1197 

1198| 필드 | 설명 |1198| 필드 | 설명 |

1199| :- | :- |1199| :- | :- |

1200| `source` | 세션이 시작된 방식: 새 세션은 `"startup"`, 재개된 세션은 `"resume"`, `/clear` 후에는 `"clear"`, 압축 후에는 `"compact"`, 기존 세션에서 분기된 새 세션은 `"fork"` |1200| `source` | 세션이 시작된 방식: 새 세션은 `"startup"`, 재개된 세션은 `"resume"`, `/clear` 이후는 `"clear"`, 압축 이후는 `"compact"`, 기존 세션에서 분기된 새 세션은 `"fork"` |

1201| `model` | 활성 모델 식별자입니다. 예를 들어 `/clear` 후나 대화 복구를 통해 세션이 복원된 경우에는 생략될 수 있으므로 읽기 전에 필드가 있는지 확인해야 합니다 |1201| `model` | 활성 모델 식별자. 예를 들어 `/clear` 이후나 대화 복구를 통해 세션이 복원된 경우 생략될 수 있으므로, 읽기 전에 필드가 있는지 확인해야 합니다 |

1202| `agent_type` | 에이전트 이름입니다. `claude --agent <name>`으로 Claude Code를 시작한 경우에 존재합니다 |1202| `agent_type` | 에이전트 이름. `claude --agent <name>`으로 Claude Code를 시작할 때 포함됩니다 |

1203| `session_title` | 세션의 사용자 지정 제목입니다. 예를 들어 `--name`, `/rename`, 훅의 `sessionTitle` 출력 또는 Agent SDK의 `renameSession()`으로 제목이 설정된 경우에 존재합니다. `sessionTitle`을 내보내는 훅은 기존 사용자 지정 제목을 덮어쓰지 않도록 먼저 이 필드를 확인할 수 있습니다 |1203| `session_title` | 세션의 사용자 지정 제목. 예를 들어 `--name`, `/rename`, 훅의 `sessionTitle` 출력 또는 Agent SDK의 `renameSession()`으로 제목이 설정된 경우 포함됩니다. `sessionTitle`을 내보내는 훅은 기존 사용자 지정 제목을 덮어쓰지 않도록 이 필드를 먼저 확인할 수 있습니다 |

1204 1204 

1205이름을 지정하지 않은 세션에도 [생성된 제목](/docs/ko/sessions#name-your-sessions)이 있을 수 있습니다. 이 제목은 사용자 지정 제목이 아니며 `session_title`에 나타나지 않습니다.1205이름을 지정하지 않은 세션에도 [생성된 제목](/docs/ko/sessions#name-your-sessions)이 있을 수 있습니다. 이 제목은 사용자 지정 제목이 아니며 `session_title`에 나타나지 않습니다.

1206 1206 

1207`source`가 `"resume"` 또는 `"fork"`이고 트랜스크립트에 Claude의 응답이 하나 이상 포함된 경우, SessionStart 훅은 아래 네 가지 필드도 받습니다. 훅은 이 필드를 사용하여 첫 요청 전에 오래된 대화를 재개하는 데 드는 비용을 보고할 수 있으며, 예를 들어 [`systemMessage`](#json-output)로 보고할 수 있습니다. 이 필드를 사용하려면 Claude Code v2.1.251 이상이 필요합니다.1207`source`가 `"resume"` 또는 `"fork"`이고 트랜스크립트에 Claude의 응답이 하나 이상 포함되어 있으면 SessionStart 훅은 아래 네 가지 필드도 수신합니다. 훅은 이 필드를 사용하여 오래된 대화를 재개하는 데 드는 비용을 첫 요청 전에 보고할 수 있습니다. 예를 들어 [`systemMessage`](#json-output)에 보고할 수 있습니다. 이 필드에는 Claude Code v2.1.251 이상이 필요합니다.

1208 1208 

1209| 필드 | 설명 |1209| 필드 | 설명 |

1210| :- | :- |1210| :- | :- |

1211| `seconds_since_last_response` | 재개된 트랜스크립트의 마지막 응답 이후 경과한 실제 시간(초) |1211| `seconds_since_last_response` | 재개된 트랜스크립트의 마지막 응답 이후 경과한 실제 시간(초) |

1212| `context_tokens` | 재개된 세션의 첫 요청이 프롬프트로 다시 보내는 토큰 |1212| `context_tokens` | 재개된 세션의 첫 요청이 프롬프트로 다시 보내는 토큰 수 |

1213| `prompt_cache_likely_expired` | 마지막 응답이 세션의 [프롬프트 캐시 수명](/docs/ko/prompt-caching#cache-lifetime)보다 오래되었거나 이후의 압축이 캐시된 대화를 대체한 경우 `true` |1213| `prompt_cache_likely_expired` | 마지막 응답이 세션의 [프롬프트 캐시 수명](/docs/ko/prompt-caching#cache-lifetime)보다 오래되었거나 이후의 압축이 캐시된 대화를 대체한 경우 `true` |

1214| `estimated_cache_write_usd` | 세션의 모델에서 `context_tokens`를 프롬프트 캐시에 쓰는 데 드는 예상 비용(미국 달러)이며, 응답은 제외됩니다 |1214| `estimated_cache_write_usd` | 세션의 모델에서 `context_tokens`를 프롬프트 캐시에 쓰는 예상 비용(미국 달러). 응답은 제외됩니다 |

1215 1215 

1216다음 예시는 마지막 응답 90분 후에 재개된 세션의 입력을 보여 줍니다.1216다음 예시는 마지막 응답 후 90분 뒤에 재개된 세션의 입력을 보여 줍니다.

1217 1217 

1218```json theme={null}1218```json theme={null}

1219{1219{


1234 SessionStart 결정 제어1234 SessionStart 결정 제어

1235</h4>1235</h4>

1236 1236 

1237Claude Code는 [일반 텍스트로 취급하는](#exit-code-0) stdout을 Claude의 컨텍스트에 추가합니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 다음 이벤트별 필드를 반환할 수 있습니다.1237Claude Code는 [일반 텍스트로 처리하는](#exit-code-0) stdout을 Claude의 컨텍스트에 추가합니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 다음과 같은 이벤트별 필드를 반환할 수 있습니다.

1238 1238 

1239| 필드 | 설명 |1239| 필드 | 설명 |

1240| :- | :- |1240| :- | :- |

1241| `additionalContext` | 대화 시작 시 첫 프롬프트 전에 Claude의 컨텍스트에 추가되는 문자열입니다. 텍스트가 전달되는 방식과 넣을 내용은 [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하십시오 |1241| `additionalContext` | 첫 프롬프트 전, 대화 시작 시점에 Claude의 컨텍스트에 추가되는 문자열. 텍스트가 전달되는 방식과 포함할 내용은 [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |

1242| `initialUserMessage` | 세션의 첫 사용자 메시지로 사용되는 문자열입니다. `-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless)에 적용되며, 프롬프트가 제공되지 않아도 첫 턴이 됩니다. 프롬프트가 제공되면 그 프롬프트가 다음 턴으로 이어집니다. 기존 턴에 첨부되는 `additionalContext`와 달리 이 필드는 턴을 생성합니다 |1242| `initialUserMessage` | 세션의 첫 사용자 메시지로 사용되는 문자열. `-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless)에 적용되며, 프롬프트가 제공되지 않아도 첫 턴이 됩니다. 프롬프트가 제공되면 그 프롬프트가 다음 턴으로 이어집니다. 기존 턴에 첨부되는 `additionalContext`와 달리 이 필드는 턴을 생성합니다 |

1243| `sessionTitle` | 세션 제목을 설정하며, `/rename`과 같은 효과가 있습니다. 실행 폴더, git 브랜치 또는 worktree 이름으로 세션 이름을 자동 지정할 때 사용합니다. `source`가 `"startup"`, `"resume"` 또는 `"fork"`일 때 적용되며, `"clear"` 및 `"compact"`에서는 무시됩니다 |1243| `sessionTitle` | 세션 제목을 설정하며, `/rename`과 효과가 같습니다. 실행 폴더, git 브랜치 또는 worktree 이름으로 세션 이름을 자동으로 지정하는 데 사용합니다. `source`가 `"startup"`, `"resume"` 또는 `"fork"`일 때 적용되며, `"clear"`와 `"compact"`에서는 무시됩니다 |

1244| `watchPaths` | 이 세션 동안 [FileChanged](#filechanged) 이벤트를 감시할 절대 경로의 배열 |1244| `watchPaths` | 이 세션 동안 [FileChanged](#filechanged) 이벤트를 감시할 절대 경로 배열 |

1245| `reloadSkills` | 불리언입니다. `true`이면 Claude Code는 SessionStart 훅이 완료된 후 [스킬](/docs/ko/skills) 및 명령 디렉터리를 다시 스캔하므로, 훅이 설치한 스킬을 첫 프롬프트부터 같은 세션에서 사용할 수 있습니다 |1245| `reloadSkills` | 불리언. `true`이면 SessionStart 훅이 완료된 후 Claude Code가 [스킬](/docs/ko/skills) 및 명령 디렉터리를 다시 스캔하므로, 훅이 설치한 스킬을 첫 프롬프트부터 같은 세션에서 사용할 수 있습니다 |

1246 1246 

1247```json theme={null}1247```json theme={null}

1248{1248{


1254}1254}

1255```1255```

1256 1256 

1257이 이벤트에서는 일반 stdout이 이미 Claude에게 전달되므로, 컨텍스트만 로드하는 훅은 JSON을 만들지 않고 stdout에 직접 출력할 수 있습니다. 컨텍스트를 `sessionTitle` 같은 다른 필드와 결합해야 할 때 JSON 형식을 사용합니다.1257이 이벤트에서는 일반 stdout이 이미 Claude에 전달되므로, 컨텍스트만 불러오는 훅은 JSON을 구성하지 않고 stdout에 직접 출력할 수 있습니다. 컨텍스트를 `sessionTitle` 같은 다른 필드와 함께 사용해야 할 때 JSON 형식을 사용합니다.

1258 1258 

1259SessionStart 훅이 스킬을 설치하거나 업데이트할 때는 `reloadSkills`를 사용합니다. 스킬 검색은 일반적으로 SessionStart 훅이 완료되기 전에 실행되므로, 그렇지 않으면 훅이 `~/.claude/skills/` 또는 `.claude/skills/`에 쓴 파일은 다음 세션에서만 나타납니다. 다음 예시는 공유 스킬 저장소를 동기화하고 다시 스캔을 요청합니다.1259SessionStart 훅이 스킬을 설치하거나 업데이트할 때는 `reloadSkills`를 사용합니다. 스킬 검색은 일반적으로 SessionStart 훅이 끝나기 전에 실행되므로, 그렇지 않으면 훅이 `~/.claude/skills/` 또는 `.claude/skills/`에 작성한 파일은 다음 세션에서만 나타납니다. 다음 예시는 공유 스킬 저장소를 동기화하고 다시 스캔을 요청합니다.

1260 1260 

1261```bash theme={null}1261```bash theme={null}

1262#!/bin/bash1262#!/bin/bash


1267echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1267echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1268```1268```

1269 1269 

1270저장소 URL은 자리 표시자이므로 사용자의 스킬 저장소로 바꿔야 합니다. 자리 표시자를 그대로 사용하면 clone이 실패하고 stderr에 `fatal:` 메시지가 출력됩니다. 0으로 종료하는 SessionStart 훅의 stderr는 정보 제공용일 뿐이므로 `reloadSkills` 요청은 여전히 적용됩니다.1270저장소 URL은 자리 표시자이므로 자체 스킬 저장소로 바꿔야 합니다. 자리 표시자를 그대로 두면 clone이 실패하고 stderr에 `fatal:` 메시지가 출력됩니다. 0으로 종료하는 SessionStart 훅의 stderr는 정보 제공용일 뿐이므로 `reloadSkills` 요청은 여전히 적용됩니다.

1271 1271 

1272<h4 id="persist-environment-variables">1272<h4 id="persist-environment-variables">

1273 환경 변수 유지1273 환경 변수 유지

1274</h4>1274</h4>

1275 1275 

1276SessionStart 훅은 `CLAUDE_ENV_FILE` 환경 변수에 접근할 수 있으며, 이 변수는 이후 Bash 명령을 위해 환경 변수를 유지할 수 있는 파일 경로를 제공합니다.1276SessionStart 훅은 `CLAUDE_ENV_FILE` 환경 변수에 액세스할 수 있습니다. 이 변수는 이후 Bash 명령에 사용할 환경 변수를 유지할 수 있는 파일 경로를 제공합니다.

1277 1277 

1278개별 환경 변수를 설정하려면 `CLAUDE_ENV_FILE`에 `export` 문을 씁니다. 다른 훅이 설정한 변수를 보존하려면 추가(`>>`)를 사용합니다.1278개별 환경 변수를 설정하려면 `export` 문을 `CLAUDE_ENV_FILE`에 작성합니다. 다른 훅이 설정한 변수를 보존하려면 추가(`>>`)를 사용합니다.

1279 1279 

1280```bash theme={null}1280```bash theme={null}

1281#!/bin/bash1281#!/bin/bash


1289exit 01289exit 0

1290```1290```

1291 1291 

1292설정 명령의 모든 환경 변경 사항을 캡처하려면 전후의 내보낸 변수를 비교합니다.1292설정 명령으로 인한 모든 환경 변경 사항을 캡처하려면 전후의 내보낸 변수를 비교합니다.

1293 1293 

1294```bash theme={null}1294```bash theme={null}

1295#!/bin/bash1295#!/bin/bash


1309```1309```

1310 1310 

1311<Note>1311<Note>

1312 `CLAUDE_ENV_FILE`은 SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged), [FileChanged](#filechanged) 훅에서 사용할 수 있습니다. 다른 훅 유형은 이 변수에 접근할 수 없습니다.1312 `CLAUDE_ENV_FILE`은 SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged), [FileChanged](#filechanged) 훅에서 사용할 수 있습니다. 다른 훅 유형은 이 변수에 액세스할 수 없습니다.

1313</Note>1313</Note>

1314 1314 

1315<h3 id="setup">1315<h3 id="setup">


1325| `init` | `claude --init-only` 또는 `claude -p --init` |1325| `init` | `claude --init-only` 또는 `claude -p --init` |

1326| `maintenance` | `claude -p --maintenance` |1326| `maintenance` | `claude -p --maintenance` |

1327 1327 

1328`claude --init-only`를 실행하면 Claude Code는 Setup 훅과 `startup` matcher를 사용하는 `SessionStart` 훅을 실행한 다음, 대화를 시작하지 않고 종료합니다.1328`claude --init-only`를 실행하면 Claude Code는 Setup 훅과 `startup` matcher를 사용하는 `SessionStart` 훅을 실행한 다음 대화를 시작하지 않고 종료합니다.

1329 1329 

1330`-p`로 대화를 시작하거나 계속할 때는 인수로 또는 stdin 파이프로 프롬프트도 제공해야 합니다. `SessionStart` 훅이 [`initialUserMessage`](#sessionstart-decision-control)를 제공하거나 [지연된 도구 호출](#defer-a-tool-call-for-later)이 있는 세션을 재개할 때는 프롬프트를 생략할 수 있습니다.1330`-p`로 대화를 시작하거나 계속하는 경우 프롬프트도 인수로 제공하거나 stdin으로 파이프해야 합니다. `SessionStart` 훅이 [`initialUserMessage`](#sessionstart-decision-control)를 제공하거나 [지연된 도구 호출](#defer-a-tool-call-for-later)이 있는 세션을 재개하는 경우에는 프롬프트를 생략할 수 있습니다.

1331 1331 

1332성공하면 `--init-only`는 터미널에 아무것도 출력하지 않습니다. 훅이 실행되었는지 확인하려면 `<path>`를 로그 파일 위치로 바꿔 `claude --debug-file <path> --init-only`로 시작하고, 로그에서 Setup 및 SessionStart 훅 항목을 확인합니다.1332성공하면 `--init-only`는 터미널에 아무것도 출력하지 않습니다. 훅이 실행되었는지 확인하려면 `<path>`를 로그 파일 위치로 바꿔 `claude --debug-file <path> --init-only`로 시작한 다음, 로그에서 Setup 및 SessionStart 훅 항목을 확인합니다.

1333 1333 

1334Setup은 매번 실행될 때 발생하지 않으므로, 의존성 설치가 필요한 플러그인은 Setup에만 의존할 수 없습니다. 실용적인 패턴은 처음 사용할 때 의존성을 확인하고 없으면 설치하는 것입니다. 예를 들어 `${CLAUDE_PLUGIN_DATA}/node_modules`가 있는지 테스트하고 없으면 `npm install`을 실행하는 훅이나 스킬을 사용할 수 있습니다. 설치된 의존성을 저장할 위치는 [영구 데이터 디렉터리](/docs/ko/plugins/components#path-variables-and-persistent-data)를 참조하십시오. 마켓플레이스를 통해 플러그인을 배포하는 경우에는 이 패턴이 필요하지 않을 수 있습니다. Claude Code는 플러그인을 캐시할 때 [적격한 Node.js 패키지 의존성을 자동으로 설치](/docs/ko/plugins/loading#node-js-package-dependencies)합니다.1334Setup은 매번 실행 시 발생하지 않으므로, 의존성 설치가 필요한 플러그인은 Setup에만 의존할 수 없습니다. 실용적인 패턴은 처음 사용할 때 의존성을 확인하고 없으면 설치하는 것입니다. 예를 들어 훅이나 스킬이 `${CLAUDE_PLUGIN_DATA}/node_modules`가 있는지 확인하고 없으면 `npm install`을 실행할 수 있습니다. 설치된 의존성을 저장할 위치는 [영구 데이터 디렉터리](/docs/ko/plugins/components#path-variables-and-persistent-data)를 참조하세요. 마켓플레이스를 통해 플러그인을 배포하는 경우에는 이 패턴이 필요하지 않을 수 있습니다. Claude Code는 플러그인을 캐시할 때 [적격한 Node.js 패키지 의존성을 자동으로 설치](/docs/ko/plugins/loading#node-js-package-dependencies)합니다.

1335 1335 

1336<h4 id="setup-input">1336<h4 id="setup-input">

1337 Setup 입력1337 Setup 입력

1338</h4>1338</h4>

1339 1339 

1340[공통 입력 필드](#common-input-fields) 외에도 Setup 훅은 `"init"` 또는 `"maintenance"`로 설정된 `trigger` 필드를 받습니다.1340[공통 입력 필드](#common-input-fields) 외에도 Setup 훅은 `"init"` 또는 `"maintenance"`로 설정된 `trigger` 필드를 수신합니다.

1341 1341 

1342```json theme={null}1342```json theme={null}

1343{1343{


1353 Setup 결정 제어1353 Setup 결정 제어

1354</h4>1354</h4>

1355 1355 

1356Setup 훅은 차단할 수 없으며, 어떤 종료 코드에서도 실행이 계속됩니다. 모든 종료 코드에서 Claude Code는 `systemMessage`, `continue`, `hookSpecificOutput.additionalContext` 같은 Setup 훅의 [JSON 출력 필드](#json-output)를 버립니다. `-p`를 사용하면 Setup 훅의 stdout, stderr, 종료 코드는 `--output-format stream-json --verbose`로 실행한 경우에만 실행 출력에 [`hook_response` 이벤트](/docs/ko/headless#read-session-metadata)로 나타납니다.1356Setup 훅은 차단할 수 없으며, 종료 코드와 관계없이 실행이 계속됩니다. 모든 종료 코드에서 Claude Code는 `systemMessage`, `continue`, `hookSpecificOutput.additionalContext` 같은 Setup 훅의 [JSON 출력 필드](#json-output)를 버립니다. `-p`를 사용하는 경우 Setup 훅의 stdout, stderr, 종료 코드는 `--output-format stream-json --verbose`로 실행할 때만 실행 출력에 [`hook_response` 이벤트](/docs/ko/headless#read-session-metadata)로 나타납니다.

1357 1357 

1358Setup 훅은 `CLAUDE_ENV_FILE`에 접근할 수 있습니다. 해당 파일에 쓴 변수는 [SessionStart 훅](#persist-environment-variables)과 마찬가지로 세션의 이후 Bash 명령에 유지됩니다. `Setup`에서는 `type: "command"` 훅만 실행됩니다. `Setup`의 `type: "mcp_tool"` 훅은 [MCP 도구 훅 필드](#mcp-tool-hook-fields)에 설명된 대로 항상 건너뜁니다.1358Setup 훅은 `CLAUDE_ENV_FILE`에 액세스할 수 있습니다. 이 파일에 작성한 변수는 [SessionStart 훅](#persist-environment-variables)과 마찬가지로 세션의 이후 Bash 명령에 유지됩니다. `Setup`에서는 `type: "command"` 훅만 실행됩니다. `Setup`의 `type: "mcp_tool"` 훅은 [MCP 도구 훅 필드](#mcp-tool-hook-fields)에 설명된 대로 항상 건너뜁니다.

1359 1359 

1360<h3 id="instructionsloaded">1360<h3 id="instructionsloaded">

1361 InstructionsLoaded1361 InstructionsLoaded

1362</h3>1362</h3>

1363 1363 

1364`CLAUDE.md` 또는 `.claude/rules/*.md` 파일이 컨텍스트에 로드될 때 발생합니다. 이 이벤트는 세션 시작 시 즉시 로드되는 파일에 대해 발생하고, 이후 파일이 지연 로드될 때 다시 발생합니다. 예를 들어 Claude가 중첩된 `CLAUDE.md`가 포함된 하위 디렉터리에 접근하거나 `paths:` frontmatter가 있는 조건부 규칙이 일치할 때입니다. 이 훅은 차단이나 결정 제어를 지원하지 않습니다. 관찰 가능성을 위해 비동기적으로 실행됩니다.1364`CLAUDE.md` 또는 `.claude/rules/*.md` 파일이 컨텍스트에 로드될 때 발생합니다. 이 이벤트는 즉시 로드되는 파일에 대해 세션 시작 시 발생하며, 이후 파일이 지연 로드될 때 다시 발생합니다. 예를 들어 Claude가 중첩된 `CLAUDE.md`가 있는 하위 디렉터리에 액세스하거나 `paths:` frontmatter가 있는 조건부 규칙이 일치할 때입니다. 이 훅은 차단이나 결정 제어를 지원하지 않습니다. 관측 가능성을 위해 비동기적으로 실행됩니다.

1365 1365 

1366이 이벤트는 Claude가 **Project instructions** 설정을 통해 [`AGENTS.md`를 직접 읽을](/docs/ko/memory#agents-md) 때는 발생하지 않습니다. `CLAUDE.md`가 `AGENTS.md`를 가져올 때는 다른 가져온 파일과 마찬가지로 `load_reason`이 `include`로 설정되어 발생하며, `CLAUDE.md`가 해당 파일에 대한 심볼릭 링크일 때는 일반 `CLAUDE.md` 로드로 발생합니다.1366이 이벤트는 Claude가 **Project instructions** 설정을 통해 [`AGENTS.md`를 직접 읽을](/docs/ko/memory#agents-md) 때는 발생하지 않습니다. `CLAUDE.md`가 `AGENTS.md`를 가져오는 경우에는 다른 가져온 파일과 마찬가지로 `load_reason`이 `include`로 설정되어 발생하며, `CLAUDE.md`가 해당 파일에 대한 심볼릭 링크인 경우에는 일반적인 `CLAUDE.md` 로드로 발생합니다.

1367 1367 

1368matcher는 `load_reason`에 대해 실행됩니다. 예를 들어 세션 시작 시 로드된 파일에 대해서만 발생시키려면 `"matcher": "session_start"`를, 지연 로드에 대해서만 발생시키려면 `"matcher": "path_glob_match|nested_traversal"`을 사용합니다.1368matcher는 `load_reason`에 대해 실행됩니다. 예를 들어 세션 시작 시 로드된 파일에 대해서만 발생시키려면 `"matcher": "session_start"`를, 지연 로드에 대해서만 발생시키려면 `"matcher": "path_glob_match|nested_traversal"`을 사용합니다.

1369 1369 


1371 InstructionsLoaded 입력1371 InstructionsLoaded 입력

1372</h4>1372</h4>

1373 1373 

1374[공통 입력 필드](#common-input-fields) 외에도 InstructionsLoaded 훅은 다음 필드를 받습니다.1374[공통 입력 필드](#common-input-fields) 외에도 InstructionsLoaded 훅은 다음 필드를 수신합니다.

1375 1375 

1376| 필드 | 설명 |1376| 필드 | 설명 |

1377| :- | :- |1377| :- | :- |

1378| `file_path` | 로드된 지침 파일의 절대 경로 |1378| `file_path` | 로드된 지침 파일의 절대 경로 |

1379| `memory_type` | 파일의 범위: `"User"`, `"Project"`, `"Local"` 또는 `"Managed"` |1379| `memory_type` | 파일의 범위: `"User"`, `"Project"`, `"Local"` 또는 `"Managed"` |

1380| `load_reason` | 파일이 로드된 이유: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` 또는 `"compact"`. `"compact"` 값은 압축 이벤트 후 지침 파일이 다시 로드될 때 발생합니다 |1380| `load_reason` | 파일이 로드된 이유: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` 또는 `"compact"`. `"compact"` 값은 압축 이벤트 후 지침 파일이 다시 로드될 때 발생합니다 |

1381| `globs` | 파일의 `paths:` frontmatter에 있는 경로 glob 패턴(있는 경우). `path_glob_match` 로드에만 존재합니다 |1381| `globs` | 파일의 `paths:` frontmatter에 있는 경로 glob 패턴(있는 경우). `path_glob_match` 로드에만 포함됩니다 |

1382| `trigger_file_path` | 지연 로드의 경우, 접근하여 이 로드를 트리거한 파일의 경로 |1382| `trigger_file_path` | 지연 로드의 경우, 액세스하여 이 로드를 트리거한 파일의 경로 |

1383| `parent_file_path` | `include` 로드의 경우, 이 파일을 포함한 상위 지침 파일의 경로 |1383| `parent_file_path` | `include` 로드의 경우, 이 파일을 포함한 상위 지침 파일의 경로 |

1384 1384 

1385```json theme={null}1385```json theme={null}


1398 InstructionsLoaded 결정 제어1398 InstructionsLoaded 결정 제어

1399</h4>1399</h4>

1400 1400 

1401InstructionsLoaded 훅에는 결정 제어가 없습니다. 지침 로드를 차단하거나 수정할 수 없습니다. Claude Code는 `systemMessage`, `continue` 같은 [JSON 출력 필드](#json-output)를 버립니다. 이 이벤트는 감사 로깅, 규정 준수 추적 또는 관찰 가능성에 사용합니다.1401InstructionsLoaded 훅에는 결정 제어가 없습니다. 지침 로드를 차단하거나 수정할 수 없습니다. Claude Code는 `systemMessage`, `continue` 같은 [JSON 출력 필드](#json-output)를 버립니다. 이 이벤트는 감사 로깅, 규정 준수 추적 또는 관측 가능성에 사용합니다.

1402 1402 

1403<h3 id="userpromptsubmit">1403<h3 id="userpromptsubmit">

1404 UserPromptSubmit1404 UserPromptSubmit

1405</h3>1405</h3>

1406 1406 

1407사용자가 프롬프트를 제출하면 Claude가 처리하기 전에 실행됩니다. 이를 통해1407사용자가 프롬프트를 제출할 때, Claude가 이를 처리하기 전에 실행됩니다. 이를 통해

1408프롬프트나 대화를 기반으로 추가 컨텍스트를 더하거나, 프롬프트를 검증하거나,1408프롬프트/대화를 기반으로 추가 컨텍스트를 더하거나, 프롬프트를 검증하거나,

1409특정 유형의 프롬프트를 차단할 수 있습니다.1409특정 유형의 프롬프트를 차단할 수 있습니다.

1410 1410 

1411`UserPromptSubmit` 훅의 기본 타임아웃은 `command`, `http`, `mcp_tool` 유형에서 30초이며, 대부분의 다른 이벤트에서 이 유형들의 기본값인 600초보다 짧습니다. 이 훅은 모든 프롬프트 전에 실행되고 완료될 때까지 모델 처리를 차단하므로, 멈춘 훅은 세션을 정지시킵니다. 훅에 더 많은 시간이 필요하면 훅 항목에서 `timeout` 필드를 설정합니다.1411`UserPromptSubmit` 훅의 기본 타임아웃은 `command`, `http`, `mcp_tool` 유형에 대해 30초로, 대부분의 다른 이벤트에서 이 유형들의 기본값인 600초보다 짧습니다. 이 훅은 모든 프롬프트 전에 실행되고 완료될 때까지 모델 처리를 차단하므로, 멈춘 훅은 세션을 지연시킵니다. 훅에 더 많은 시간이 필요하면 훅 항목에서 `timeout` 필드를 설정합니다.

1412 1412 

1413[`async: true`](#run-hooks-in-the-background)로 실행하는 명령 훅을 제외하고, 타임아웃에 도달한 `UserPromptSubmit` 명령, HTTP 또는 MCP 도구 훅은 취소되며 `additionalContext`를 포함한 출력이 버려집니다. 프롬프트는 해당 컨텍스트 없이 여전히 Claude에게 전달됩니다. 트랜스크립트에는 훅 이름, 발생한 타임아웃, 출력이 버려졌다는 알림이 표시됩니다.1413[`async: true`](#run-hooks-in-the-background)로 실행하는 command 훅을 제외하면, 타임아웃에 도달한 `UserPromptSubmit` command, HTTP 또는 MCP 도구 훅은 취소되며 `additionalContext`를 포함한 출력이 버려집니다. 프롬프트는 해당 컨텍스트 없이 Claude에 전달됩니다. 트랜스크립트에는 훅 이름, 발생한 타임아웃, 출력이 버려졌다는 사실을 알리는 알림이 표시됩니다.

1414 1414 

1415`UserPromptSubmit`의 [Agent SDK 콜백 훅](/docs/ko/agent-sdk/hooks)이 타임아웃에 도달하면 훅 이름과 타임아웃을 명시한 메시지와 함께 프롬프트를 차단합니다. 해당 위치의 콜백은 실패 시 열려서는 안 되는 정책 게이트 역할을 할 수 있기 때문입니다. 세션은 계속됩니다. v2.1.208 이전에는 해당 이벤트에서 콜백 타임아웃이 발생하면 실행 오류로 턴이 종료되었습니다.1415타임아웃에 도달한 `UserPromptSubmit`의 [Agent SDK 콜백 훅](/docs/ko/agent-sdk/hooks)은 훅 이름과 타임아웃을 명시한 메시지와 함께 프롬프트를 차단합니다. 해당 위치의 콜백은 실패 시 열림(fail open) 상태가 되어서는 안 되는 정책 게이트 역할을 할 수 있기 때문입니다. 세션은 계속됩니다. v2.1.208 이전에는 해당 이벤트에서 콜백 타임아웃이 발생하면 실행 오류와 함께 턴이 종료되었습니다.

1416 1416 

1417<h4 id="userpromptsubmit-input">1417<h4 id="userpromptsubmit-input">

1418 UserPromptSubmit 입력1418 UserPromptSubmit 입력

1419</h4>1419</h4>

1420 1420 

1421[공통 입력 필드](#common-input-fields) 외에도 UserPromptSubmit 훅은 사용자가 제출한 텍스트가 포함된 `prompt` 필드를 받습니다. `[Pasted text #N]` 자리 표시자로 축소된 붙여넣은 콘텐츠는 제자리에서 확장되어 도착합니다. Claude Code가 [Claude를 위해 붙여넣은 텍스트를 표시](/docs/ko/terminal-config#how-claude-treats-pasted-text)하는 세션에서는 확장된 콘텐츠가 `<pasted_content id="…">` 줄과 `</pasted_content id="…">` 줄 사이에 위치하므로, 훅이 프롬프트를 파싱한다면 이 줄들을 고려해야 합니다.1421[공통 입력 필드](#common-input-fields) 외에도 UserPromptSubmit 훅은 사용자가 제출한 텍스트가 담긴 `prompt` 필드를 수신합니다. `[Pasted text #N]` 자리 표시자로 축소된 붙여넣기 콘텐츠는 제자리에서 확장된 상태로 전달됩니다. Claude Code가 [붙여넣은 텍스트를 Claude를 위해 표시하는](/docs/ko/terminal-config#how-claude-treats-pasted-text) 세션에서는 확장된 콘텐츠가 `<pasted_content id="…">` 줄과 `</pasted_content id="…">` 줄 사이에 위치하므로, 훅이 프롬프트를 파싱한다면 이 줄들을 고려해야 합니다.

1422 1422 

1423UserPromptSubmit 훅은 세션에 사용자 지정 제목이 있으면 `session_title`도 받으며, 의미는 [SessionStart `session_title` 필드](#sessionstart-input)와 같습니다.1423UserPromptSubmit 훅은 세션에 사용자 지정 제목이 있을 때 `session_title`도 수신하며, 의미는 [SessionStart의 `session_title` 필드](#sessionstart-input)와 같습니다.

1424 1424 

1425```json theme={null}1425```json theme={null}

1426{1426{


1441 1441 

1442종료 코드 0에서 대화에 컨텍스트를 추가하는 방법은 두 가지입니다.1442종료 코드 0에서 대화에 컨텍스트를 추가하는 방법은 두 가지입니다.

1443 1443 

1444* **일반 텍스트 stdout**: Claude Code는 [일반 텍스트로 취급하는](#exit-code-0) stdout을 Claude의 컨텍스트에 추가합니다1444* **일반 텍스트 stdout**: Claude Code는 [일반 텍스트로 처리하는](#exit-code-0) stdout을 Claude의 컨텍스트에 추가합니다

1445* **`additionalContext`가 있는 JSON**: 더 세밀하게 제어하려면 아래 JSON 형식을 사용합니다. `additionalContext` 필드가 컨텍스트로 추가됩니다1445* **`additionalContext`가 포함된 JSON**: 더 세밀하게 제어하려면 아래 JSON 형식을 사용합니다. `additionalContext` 필드가 컨텍스트로 추가됩니다

1446 1446 

1447어느 채널도 트랜스크립트에 표시되는 항목을 생성하지 않습니다. 일반 stdout과 `additionalContext` 값은 각각 훅 이름으로 시작하는 시스템 리마인더로 주입되며, Claude는 둘 다 읽습니다. 전달을 확인하려면 [디버그 로그](#debug-hooks)를 확인합니다.1447어느 채널도 트랜스크립트에 보이는 항목을 생성하지 않습니다. 일반 stdout과 `additionalContext` 값은 각각 훅 이름으로 시작하는 시스템 리마인더로 주입되며, Claude는 둘 다 읽습니다. 전달 여부를 확인하려면 [디버그 로그](#debug-hooks)를 확인합니다.

1448 1448 

1449프롬프트를 차단하려면 `decision`이 `"block"`으로 설정된 JSON 객체를 반환합니다.1449프롬프트를 차단하려면 `decision`이 `"block"`으로 설정된 JSON 객체를 반환합니다.

1450 1450 

1451| 필드 | 설명 |1451| 필드 | 설명 |

1452| :- | :- |1452| :- | :- |

1453| `decision` | `"block"`은 프롬프트가 Claude에게 도달하기 전에 중지합니다. 프롬프트 진행을 허용하려면 생략합니다 |1453| `decision` | `"block"`은 프롬프트가 Claude에 도달하기 전에 중지합니다. 프롬프트 진행을 허용하려면 생략합니다 |

1454| `reason` | `decision`이 `"block"`일 때 사용자에게 표시됩니다. 컨텍스트에는 추가되지 않습니다 |1454| `reason` | `decision`이 `"block"`일 때 사용자에게 표시됩니다. 컨텍스트에는 추가되지 않습니다 |

1455| `additionalContext` | 제출된 프롬프트와 함께 Claude의 컨텍스트에 추가되는 문자열입니다. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하십시오 |1455| `additionalContext` | 제출된 프롬프트와 함께 Claude의 컨텍스트에 추가되는 문자열. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |

1456| `sessionTitle` | 세션 제목을 설정합니다. 프롬프트 내용을 기반으로 세션 이름을 자동 지정할 때 사용합니다 |1456| `sessionTitle` | 세션 제목을 설정합니다. 프롬프트 내용을 기반으로 세션 이름을 자동으로 지정하는 데 사용합니다 |

1457| `suppressOriginalPrompt` | 훅이 프롬프트를 차단할 때 `true`이면 차단 메시지에서 프롬프트 텍스트를 제외합니다. [차단된 프롬프트가 남기는 것](#what-a-blocked-prompt-leaves-behind)을 참조하십시오 |1457| `suppressOriginalPrompt` | 훅이 프롬프트를 차단할 때 `true`이면 차단 메시지에서 프롬프트 텍스트를 제외합니다. [차단된 프롬프트가 남기는 것](#what-a-blocked-prompt-leaves-behind)을 참조하세요 |

1458 1458 

1459종료 코드 2로 차단하는 훅은 `reason`과 같은 방식으로 전달됩니다. 차단 메시지는 stderr 텍스트를 사용자에게 표시하며, 컨텍스트에는 추가되지 않습니다.1459종료 코드 2로 차단하는 훅은 `reason`과 같은 방식으로 전달됩니다. 차단 메시지에 stderr 텍스트가 사용자에게 표시되며, 컨텍스트에는 추가되지 않습니다.

1460 1460 

1461```json theme={null}1461```json theme={null}

1462{1462{


1475 차단된 프롬프트가 남기는 것1475 차단된 프롬프트가 남기는 것

1476</h4>1476</h4>

1477 1477 

1478차단된 프롬프트는 Claude에게 도달하지 않지만, 그 텍스트가 모든 곳에서 제거되는 것은 아닙니다. 기본적으로 사용자에게 표시되는 차단 메시지는 `Original prompt:` 뒤에 제출된 텍스트로 끝나며, Claude Code는 이 메시지를 디스크의 세션 트랜스크립트 파일에 씁니다. 메시지에서 텍스트를 제외하려면 `hookSpecificOutput` 안에 `"suppressOriginalPrompt": true`가 있는 JSON을 출력합니다. 이는 훅이 `decision: "block"`으로 차단하든 종료 코드 2로 차단하든 작동합니다. JSON을 출력하지 않는 종료 코드 2 훅은 항상 차단 메시지에 프롬프트 텍스트가 포함됩니다.1478차단된 프롬프트는 Claude에 도달하지 않지만, 그 텍스트가 모든 곳에서 제거되는 것은 아닙니다. 기본적으로 사용자에게 표시되는 차단 메시지는 `Original prompt:` 뒤에 제출된 텍스트가 오는 형태로 끝나며, Claude Code는 이 메시지를 디스크의 세션 트랜스크립트 파일에 기록합니다. 메시지에서 텍스트를 제외하려면 `hookSpecificOutput` 안에 `"suppressOriginalPrompt": true`가 포함된 JSON을 출력합니다. 이는 훅이 `decision: "block"`으로 차단하든 종료 코드 2로 차단하든 작동합니다. JSON을 출력하지 않는 종료 코드 2 훅은 항상 차단 메시지에 프롬프트 텍스트가 포함됩니다.

1479 1479 

1480`suppressOriginalPrompt`는 차단 메시지만 변경합니다. 제출된 텍스트는 세션 트랜스크립트나 프롬프트 기록 같은 로컬 파일에 여전히 나타날 수 있으므로, 차단 훅은 비밀 정보를 디스크에 남기지 않는 방법이 아닙니다. 이러한 파일을 제한하거나 제거하려면 [일반 텍스트 스토리지](/docs/ko/claude-directory#plaintext-storage) 및 [로컬 데이터 지우기](/docs/ko/claude-directory#clear-local-data)를 참조하십시오.1480`suppressOriginalPrompt`는 차단 메시지만 변경합니다. 제출된 텍스트는 세션 트랜스크립트나 프롬프트 기록 같은 로컬 파일에 여전히 나타날 수 있으므로, 차단 훅은 비밀 정보를 디스크에 남기지 않는 방법이 아닙니다. 이러한 파일을 제한하거나 제거하려면 [일반 텍스트 스토리지](/docs/ko/claude-directory#plaintext-storage) 및 [로컬 데이터 지우기](/docs/ko/claude-directory#clear-local-data)를 참조하세요.

1481 1481 

1482<h3 id="userpromptexpansion">1482<h3 id="userpromptexpansion">

1483 UserPromptExpansion1483 UserPromptExpansion

1484</h3>1484</h3>

1485 1485 

1486사용자가 입력한 명령이 Claude에게 도달하기 전에 프롬프트로 확장될 때 실행됩니다. 특정 명령의 직접 호출을 차단하거나, 특정 스킬에 컨텍스트를 주입하거나, 사용자가 호출하는 명령을 로그에 기록하는 데 사용합니다. 예를 들어 `deploy`와 일치하는 훅은 승인 파일이 없으면 `/deploy`를 차단할 수 있고, 리뷰 스킬과 일치하는 훅은 팀의 리뷰 체크리스트를 `additionalContext`로 추가할 수 있습니다.1486사용자가 입력한 명령이 Claude에 도달하기 전에 프롬프트로 확장될 때 실행됩니다. 특정 명령의 직접 호출을 차단하거나, 특정 스킬에 컨텍스트를 주입하거나, 사용자가 호출하는 명령을 로그에 기록하는 데 사용합니다. 예를 들어 `deploy`와 일치하는 훅은 승인 파일이 없으면 `/deploy`를 차단할 수 있고, 리뷰 스킬과 일치하는 훅은 팀의 리뷰 체크리스트를 `additionalContext`로 추가할 수 있습니다.

1487 1487 

1488이 이벤트는 `PreToolUse`가 다루지 않는 경로를 다룹니다. `Skill` 도구와 일치하는 `PreToolUse` 훅은 Claude가 도구를 호출할 때만 발생하지만, `/skillname`을 직접 입력하면 `PreToolUse`를 우회합니다. `UserPromptExpansion`은 이 직접 경로에서 발생합니다.1488이 이벤트는 `PreToolUse`가 다루지 않는 경로를 다룹니다. `Skill` 도구와 일치하는 `PreToolUse` 훅은 Claude가 도구를 호출할 때만 발생하지만, `/skillname`을 직접 입력하면 `PreToolUse`를 거치지 않습니다. `UserPromptExpansion`은 이 직접 경로에서 발생합니다.

1489 1489 

1490`command_name`에 대해 일치시킵니다. 모든 프롬프트 유형 명령에서 발생시키려면 matcher를 비워 둡니다.1490`command_name`에 대해 일치시킵니다. 모든 프롬프트 유형 명령에서 발생시키려면 matcher를 비워 둡니다.

1491 1491 


1493 UserPromptExpansion 입력1493 UserPromptExpansion 입력

1494</h4>1494</h4>

1495 1495 

1496[공통 입력 필드](#common-input-fields) 외에도 UserPromptExpansion 훅은 `expansion_type`, `command_name`, `command_args`, `command_source`, 원본 `prompt` 문자열을 받습니다. `expansion_type` 필드는 스킬 및 사용자 지정 명령의 경우 `slash_command`, MCP 서버 프롬프트의 경우 `mcp_prompt`입니다.1496[공통 입력 필드](#common-input-fields) 외에도 UserPromptExpansion 훅은 `expansion_type`, `command_name`, `command_args`, `command_source`, 그리고 원래의 `prompt` 문자열을 수신합니다. `expansion_type` 필드는 스킬 및 사용자 지정 명령의 경우 `slash_command`, MCP 서버 프롬프트의 경우 `mcp_prompt`입니다.

1497 1497 

1498```json theme={null}1498```json theme={null}

1499{1499{


1520| :- | :- |1520| :- | :- |

1521| `decision` | `"block"`은 명령이 확장되지 않도록 합니다. 진행을 허용하려면 생략합니다 |1521| `decision` | `"block"`은 명령이 확장되지 않도록 합니다. 진행을 허용하려면 생략합니다 |

1522| `reason` | `decision`이 `"block"`일 때 사용자에게 표시됩니다 |1522| `reason` | `decision`이 `"block"`일 때 사용자에게 표시됩니다 |

1523| `additionalContext` | 확장된 프롬프트와 함께 Claude의 컨텍스트에 추가되는 문자열입니다. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하십시오 |1523| `additionalContext` | 확장된 프롬프트와 함께 Claude의 컨텍스트에 추가되는 문자열. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |

1524 1524 

1525종료 코드 2로 차단하는 훅은 `reason`과 같은 방식으로 전달됩니다. 차단 메시지는 stderr 텍스트를 사용자에게 표시합니다.1525종료 코드 2로 차단하는 훅은 `reason`과 같은 방식으로 전달됩니다. 차단 메시지에 stderr 텍스트가 사용자에게 표시됩니다.

1526 1526 

1527```json theme={null}1527```json theme={null}

1528{1528{


1539 MessageDisplay1539 MessageDisplay

1540</h3>1540</h3>

1541 1541 

1542어시스턴트 메시지가 화면에 스트리밍되는 동안 실행됩니다. Claude Code는 메시지를 단계적으로 표시합니다. 새로 완성된 줄의 배치가 렌더링될 준비가 될 때마다 훅이 해당 줄로 한 번 실행되고, Claude Code는 그 자리에 훅의 대체 텍스트를 렌더링합니다. 긴 메시지는 여러 번 호출되며, 짧은 메시지는 한 번만 호출될 수도 있습니다.1542어시스턴트 메시지가 화면에 스트리밍되는 동안 실행됩니다. Claude Code는 메시지를 단계적으로 표시합니다. 새로 완성된 줄의 묶음이 렌더링될 준비가 될 때마다 훅이 해당 줄로 한 번 실행되고, Claude Code는 그 자리에 훅의 대체 텍스트를 렌더링합니다. 긴 메시지는 여러 번의 호출을 생성하며, 짧은 메시지는 한 번만 생성할 수도 있습니다.

1543 1543 

1544MessageDisplay는 다음 용도로 사용합니다.1544MessageDisplay는 다음 용도로 사용합니다.

1545 1545 


1547* Agent SDK 애플리케이션이 사용자에게 보여 주는 텍스트 변환1547* Agent SDK 애플리케이션이 사용자에게 보여 주는 텍스트 변환

1548* Claude의 응답에서 API 키나 내부 호스트 이름 가리기1548* Claude의 응답에서 API 키나 내부 호스트 이름 가리기

1549 1549 

1550Claude Code는 훅이 반환할 때까지 각 배치를 보류하므로 훅을 빠르게 유지해야 합니다. 훅이 실패하거나 시간 초과되면 Claude Code는 원본 텍스트를 표시합니다. 이 이벤트의 기본 타임아웃은 10초이며, 훅에 더 많은 시간이 필요하면 훅 항목에서 `timeout` 필드를 설정합니다.1550Claude Code는 훅이 반환될 때까지 각 묶음을 보류하므로 훅을 빠르게 유지해야 합니다. 훅이 실패하거나 시간 초과되면 Claude Code는 원래 텍스트를 표시합니다. 이 이벤트의 기본 타임아웃은 10초이며, 훅에 더 많은 시간이 필요하면 훅 항목에서 `timeout` 필드를 설정합니다.

1551 1551 

1552MessageDisplay는 표시 전용입니다. 대체 텍스트는 화면에 렌더링되는 내용만 변경합니다. 트랜스크립트와 Claude가 보는 내용은 원본 텍스트를 유지하므로 Claude는 대체 텍스트를 보지 않으며, 상세 모드에서는 원본이 표시됩니다. 훅은 어시스턴트 메시지 텍스트만 받으므로 도구 결과와 사용자가 입력한 텍스트는 변경 없이 렌더링됩니다.1552MessageDisplay는 표시 전용입니다. 대체 텍스트는 화면에 렌더링되는 내용만 변경합니다. 트랜스크립트와 Claude가 보는 내용은 원래 텍스트를 유지하므로 Claude는 대체 텍스트를 보지 않으며, verbose 모드에서는 원래 텍스트가 표시됩니다. 훅은 어시스턴트 메시지 텍스트만 수신하므로 도구 결과와 사용자가 입력하는 텍스트는 변경 없이 렌더링됩니다.

1553 1553 

1554MessageDisplay는 matcher를 지원하지 않으며, 텍스트를 스트리밍하는 모든 어시스턴트 메시지에서 발생합니다. 도구 호출만 있는 응답처럼 텍스트가 없는 메시지는 이 훅을 트리거하지 않습니다.1554MessageDisplay는 matcher를 지원하지 않으며 텍스트를 스트리밍하는 모든 어시스턴트 메시지에서 발생합니다. 도구 호출만 있는 응답처럼 텍스트가 없는 메시지는 이 이벤트를 트리거하지 않습니다.

1555 1555 

1556Agent SDK 쿼리와 `claude -p`를 포함한 비대화형 실행에서는 MessageDisplay가 줄 배치마다 한 번이 아니라 어시스턴트 메시지마다 한 번 실행됩니다. 단일 호출은 메시지가 완료된 후 도착하며 전체 메시지 텍스트를 전달합니다. `index`는 `0`, `final`은 `true`이고, `delta`에는 메시지 전체가 담깁니다. 각 메시지의 `delta` 텍스트를 수집하는 훅은 두 모드에서 동일한 전체 텍스트를 받습니다.1556Agent SDK 쿼리와 `claude -p`를 포함한 비대화형 실행에서는 MessageDisplay가 줄 묶음마다가 아니라 어시스턴트 메시지마다 한 번 실행됩니다. 단일 호출은 메시지가 완료된 후 도착하며 전체 메시지 텍스트를 담습니다. `index`는 `0`, `final`은 `true`이고, `delta`에는 전체 메시지가 들어 있습니다. 각 메시지의 `delta` 텍스트를 수집하는 훅은 두 모드에서 동일한 전체 텍스트를 수신합니다.

1557 1557 

1558<h4 id="messagedisplay-input">1558<h4 id="messagedisplay-input">

1559 MessageDisplay 입력1559 MessageDisplay 입력

1560</h4>1560</h4>

1561 1561 

1562[공통 입력 필드](#common-input-fields) 외에도 MessageDisplay 훅은 턴과 메시지의 식별자, 메시지 내에서 이 호출의 위치, `delta`의 새 텍스트를 받습니다. 배치 경계는 텍스트가 스트리밍되는 방식에 따라 달라지므로, 줄이 특정 방식으로 그룹화될 것으로 기대하지 말고 `index`와 `final`을 사용하여 메시지 진행 상황을 추적합니다.1562[공통 입력 필드](#common-input-fields) 외에도 MessageDisplay 훅은 턴과 메시지의 식별자, 메시지 내에서 이 호출의 위치, 그리고 `delta`의 새 텍스트를 수신합니다. 묶음 경계는 텍스트가 스트리밍되는 방식에 따라 달라지므로, 줄이 특정 방식으로 묶일 것이라고 기대하기보다 `index`와 `final`을 사용하여 메시지의 진행 상황을 추적합니다.

1563 1563 

1564| 필드 | 설명 |1564| 필드 | 설명 |

1565| :- | :- |1565| :- | :- |

1566| `turn_id` | 현재 턴의 UUID |1566| `turn_id` | 현재 턴의 UUID |

1567| `message_id` | 표시 중인 어시스턴트 메시지의 UUID입니다. 같은 메시지의 모든 배치에서 동일하게 유지됩니다. API의 `msg_…` id가 아니므로 트랜스크립트 메시지 id와 연관시킬 수 없습니다 |1567| `message_id` | 표시 중인 어시스턴트 메시지의 UUID. 같은 메시지의 모든 묶음에서 동일하게 유지됩니다. API의 `msg_…` id가 아니므로 트랜스크립트 메시지 id와 연관시킬 수 없습니다 |

1568| `index` | 메시지 내에서 이 배치의 0부터 시작하는 인덱스 |1568| `index` | 메시지 내에서 이 묶음의 0부터 시작하는 인덱스 |

1569| `final` | 메시지의 마지막 배치에서 `true`입니다. 각 메시지에는 정확히 하나의 마지막 배치가 있습니다 |1569| `final` | 메시지의 마지막 묶음에서 `true`. 각 메시지에는 정확히 하나의 마지막 묶음이 있습니다 |

1570| `delta` | 이전 배치 이후 새로 완성된 줄이며, 끝의 줄바꿈이 포함됩니다. 줄 중간에서 끝날 수 있는 마지막 배치를 제외하면 항상 완전한 줄입니다. 대화형 실행에서 메시지가 줄바꿈으로 끝나면 마지막 배치의 delta는 비어 있으므로, 비어 있지 않은 delta가 아니라 `final`을 메시지 종료 신호로 취급해야 합니다. Agent SDK 및 `claude -p` 실행에서는 단일 호출이 메시지 전체를 전달합니다 |1570| `delta` | 이전 묶음 이후 새로 완성된 줄(끝의 줄바꿈 포함). 줄 중간에서 끝날 수 있는 마지막 묶음을 제외하면 항상 완전한 줄입니다. 대화형 실행에서는 메시지가 줄바꿈으로 끝나면 마지막 묶음의 delta가 비어 있으므로, 비어 있지 않은 delta가 아니라 `final`을 메시지 끝 신호로 취급해야 합니다. Agent SDK 및 `claude -p` 실행에서는 단일 호출이 전체 메시지를 담습니다 |

1571 1571 

1572```json theme={null}1572```json theme={null}

1573{1573{


1587 MessageDisplay 출력1587 MessageDisplay 출력

1588</h4>1588</h4>

1589 1589 

1590모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 MessageDisplay 훅은 화면의 delta를 대체하는 `displayContent`를 반환할 수 있습니다.1590모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 MessageDisplay 훅은 화면에서 delta를 대체하는 `displayContent`를 반환할 수 있습니다.

1591 1591 

1592| 필드 | 설명 |1592| 필드 | 설명 |

1593| :- | :- |1593| :- | :- |

1594| `displayContent` | delta 대신 표시되는 텍스트입니다. 원본을 표시하려면 생략합니다 |1594| `displayContent` | delta 대신 표시되는 텍스트. 원래 텍스트를 표시하려면 생략합니다 |

1595 1595 

1596MessageDisplay 훅에는 결정 제어가 없습니다. 메시지를 차단하거나 트랜스크립트에 저장되거나 Claude에게 전송되는 내용을 변경할 수 없습니다. Claude Code는 JSON 출력의 `displayContent`에 따라 동작하고 `systemMessage`와 `continue`는 버립니다.1596MessageDisplay 훅에는 결정 제어가 없습니다. 메시지를 차단하거나 트랜스크립트에 저장되는 내용 또는 Claude에 전송되는 내용을 변경할 수 없습니다. Claude Code는 JSON 출력의 `displayContent`에 따라 동작하며 `systemMessage`와 `continue`는 버립니다.

1597 1597 

1598다음 예시는 일반 텍스트 표시를 위해 Claude의 응답에서 markdown 서식을 제거합니다. 스크립트는 stdin에서 각 배치를 읽고, `delta`에서 굵게 표시 기호와 인라인 코드 백틱을 제거한 다음, 결과를 `displayContent`로 반환합니다.1598다음 예시는 일반 텍스트 표시를 위해 Claude의 응답에서 markdown 서식을 제거합니다. 스크립트는 stdin에서 각 묶음을 읽고, `delta`에서 굵게 표시 기호와 인라인 코드 백틱을 제거한 다음, 결과를 `displayContent`로 반환합니다.

1599 1599 

1600<Tabs>1600<Tabs>

1601 <Tab title="macOS/Linux">1601 <Tab title="macOS/Linux">

1602 설정 파일에서 이벤트에 대한 명령 훅을 등록합니다.1602 설정 파일에서 이벤트에 대한 command 훅을 등록합니다.

1603 1603 

1604 ```json theme={null}1604 ```json theme={null}

1605 {1605 {


1628 </Tab>1628 </Tab>

1629 1629 

1630 <Tab title="Windows (PowerShell)">1630 <Tab title="Windows (PowerShell)">

1631 PowerShell을 통해 스크립트를 실행하는 명령 훅을 등록합니다.1631 PowerShell을 통해 스크립트를 실행하는 command 훅을 등록합니다.

1632 1632 

1633 ```json theme={null}1633 ```json theme={null}

1634 {1634 {


1654 }1654 }

1655 ```1655 ```

1656 1656 

1657 `-NoProfile` 플래그는 PowerShell 프로필 로드를 건너뛰어 훅이 빠르게 시작되도록 하고, `-ExecutionPolicy Bypass`는 PowerShell이 로컬 스크립트 파일을 실행할 수 있게 합니다.1657 `-NoProfile` 플래그는 PowerShell 프로필 로드를 건너뛰어 훅이 빠르게 시작되도록 하며, `-ExecutionPolicy Bypass`는 PowerShell이 로컬 스크립트 파일을 실행할 수 있도록 합니다.

1658 1658 

1659 이 스크립트를 프로젝트의 `.claude/hooks/plain-display.ps1`에 저장합니다.1659 이 스크립트를 프로젝트의 `.claude/hooks/plain-display.ps1`에 저장합니다.

1660 1660 


1671 </Tab>1671 </Tab>

1672</Tabs>1672</Tabs>

1673 1673 

1674markdown이 없는 배치는 변경 없이 통과합니다. 예를 들어 `jq`가 없어 스크립트가 실패하면, Claude Code는 원본 텍스트를 표시하고 실패 사실은 세션이 아닌 [디버그 출력](#debug-hooks)에만 기록합니다.1674markdown이 없는 묶음은 변경 없이 통과합니다. 예를 들어 `jq`가 없어서 스크립트가 실패하면 Claude Code는 원래 텍스트를 표시하며, 실패는 세션이 아닌 [디버그 출력](#debug-hooks)에만 기록됩니다.

1675 1675 

1676<h3 id="pretooluse">1676<h3 id="pretooluse">

1677 PreToolUse1677 PreToolUse


1679 1679 

1680Claude가 도구 매개변수를 생성한 후, 도구 호출을 처리하기 전에 실행됩니다. `EndConversation`을 제외한 모든 도구 이름에 대해 일치시킵니다. 여기에는 `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion`, `ExitPlanMode` 같은 기본 제공 도구와 모든 [MCP 도구 이름](#match-mcp-tools)이 포함됩니다.1680Claude가 도구 매개변수를 생성한 후, 도구 호출을 처리하기 전에 실행됩니다. `EndConversation`을 제외한 모든 도구 이름에 대해 일치시킵니다. 여기에는 `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion`, `ExitPlanMode` 같은 기본 제공 도구와 모든 [MCP 도구 이름](#match-mcp-tools)이 포함됩니다.

1681 1681 

1682무엇이 파일을 썼든 디스크에서 특정 파일이 변경될 때 훅을 실행하려면, 파일 편집 도구를 이름으로 일치시키는 대신 [FileChanged](#filechanged)를 사용합니다. PreToolUse와 달리 Claude Code는 변경 후에 FileChanged 훅을 실행하며, 이 훅에는 결정 제어가 없으므로 쓰기를 차단할 수 없습니다.1682무엇이 작성했든 특정 파일이 디스크에서 변경될 때 훅을 실행하려면, 파일 편집 도구를 이름으로 일치시키는 대신 [FileChanged](#filechanged)를 사용합니다. PreToolUse와 달리 Claude Code는 변경 후에 FileChanged 훅을 실행하며, 이 훅에는 결정 제어가 없으므로 쓰기를 차단할 수 없습니다.

1683 1683 

1684<Warning>1684<Warning>

1685 PreToolUse는 Claude가 도구를 호출할 때만 실행됩니다. [프롬프트에서 `@`로 참조한](/docs/ko/common-workflows#reference-files-and-directories) 파일은 도구 호출 없이 추가됩니다. Claude Code가 프롬프트를 구성하는 동안 파일 내용을 삽입하므로, `Read`와 일치하는 훅을 포함하여 어떤 PreToolUse 훅도 발생하지 않습니다. `@` 참조에서 특정 경로를 차단하려면 대신 [`Read` 거부 규칙](/docs/ko/permissions#read-and-edit)을 사용합니다.1685 PreToolUse는 Claude가 도구를 호출할 때만 실행됩니다. [프롬프트에서 `@`로 참조하는](/docs/ko/common-workflows#reference-files-and-directories) 파일은 도구 호출 없이 추가됩니다. Claude Code는 프롬프트를 구성하면서 파일 내용을 삽입하므로, `Read`와 일치하는 훅을 포함하여 어떤 PreToolUse 훅도 이 파일에 대해 발생하지 않습니다. `@` 참조에서 특정 경로를 차단하려면 대신 [`Read` 거부 규칙](/docs/ko/permissions#read-and-edit)을 사용합니다.

1686 1686 

1687 PreToolUse는 [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)에서도 발생하지 않습니다.1687 PreToolUse는 [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)에서도 발생하지 않습니다.

1688</Warning>1688</Warning>

1689 1689 

1690도구 호출을 허용, 거부, 확인 요청 또는 지연하려면 [PreToolUse 결정 제어](#pretooluse-decision-control)를 사용합니다.1690도구 호출을 허용, 거부, 확인 요청 또는 지연하려면 [PreToolUse 결정 제어](#pretooluse-decision-control)를 사용합니다.

1691 1691 

1692`PreToolUse`의 [Agent SDK 콜백 훅](/docs/ko/agent-sdk/hooks)이 타임아웃을 초과하면 도구 호출이 차단되고, Claude는 타임아웃을 명시한 오류 결과를 받습니다. 다른 훅이 반환한 명시적 거부는 여전히 우선합니다.1692타임아웃을 초과한 `PreToolUse`의 [Agent SDK 콜백 훅](/docs/ko/agent-sdk/hooks)은 도구 호출을 차단하며, Claude는 타임아웃을 명시한 오류 결과를 수신합니다. 다른 훅이 반환한 명시적 거부는 여전히 우선합니다.

1693 1693 

1694<h4 id="pretooluse-input">1694<h4 id="pretooluse-input">

1695 PreToolUse 입력1695 PreToolUse 입력

1696</h4>1696</h4>

1697 1697 

1698[공통 입력 필드](#common-input-fields) 외에도 PreToolUse 훅은 `tool_name`, `tool_input`, `tool_use_id`를 받습니다.1698[공통 입력 필드](#common-input-fields) 외에도 PreToolUse 훅은 `tool_name`, `tool_input`, `tool_use_id`를 수신합니다.

1699 1699 

1700[MCP 도구](#match-mcp-tools)의 경우 입력에 `mcp_server`도 포함됩니다. 이는 서버의 `name`과 서버 정의의 출처를 나타내는 `source`를 가진 객체입니다. `source` 값에는 `plugin`, `sdk`, 그리고 `user`, `project` 같은 구성 범위가 포함됩니다. Agent SDK 참조의 [`McpServerProvenance`](/docs/ko/agent-sdk/typescript#mcpserverprovenance)에 모든 값이 나열되어 있으며, 인식하지 못하는 값을 처리하는 방법도 설명되어 있습니다. 신뢰 결정은 `name`이나 `mcp__<server>__` 도구 이름 접두사가 아닌 `source`를 기반으로 내려야 합니다. `mcp_server` 필드를 사용하려면 Claude Code v2.1.274 이상이 필요합니다.1700[MCP 도구](#match-mcp-tools)의 경우 입력에는 `mcp_server`도 포함됩니다. 이는 서버의 `name`과 서버 정의의 출처를 나타내는 `source`가 담긴 객체입니다. `source` 값에는 `plugin`, `sdk`, 그리고 `user`, `project` 같은 구성 범위가 포함됩니다. Agent SDK 레퍼런스의 [`McpServerProvenance`](/docs/ko/agent-sdk/typescript#mcpserverprovenance)에서 전체 값 목록과 인식하지 못하는 값을 처리하는 방법을 확인할 수 있습니다. 신뢰 결정은 `name`이나 `mcp__<server>__` 도구 이름 접두사가 아닌 `source`를 기준으로 내려야 합니다. `mcp_server` 필드에는 Claude Code v2.1.274 이상이 필요합니다.

1701 1701 

1702파일 도구 `Write`, `Edit`, `Read`의 경우 `tool_input.file_path`는 항상 절대 경로입니다.1702파일 도구 `Write`, `Edit`, `Read`의 경우 `tool_input.file_path`는 항상 절대 경로입니다.

1703 1703 

1704* Claude Code는 훅이 실행되기 전에 `~`와 상대 경로를 확장하므로, 경로에 대해 일치시키는 훅은 `~`나 같은 경로의 상대 표기로 우회할 수 없습니다1704* Claude Code는 훅이 실행되기 전에 `~`와 상대 경로를 확장하므로, 경로를 일치시키는 훅은 `~`나 같은 경로의 상대 표기를 통해 우회될 수 없습니다

1705* Windows에서는 훅이 `$PWD`가 `/c/project`처럼 보이는 Git Bash에서 실행되더라도 경로가 백슬래시 구분 기호로 도착합니다1705* Windows에서는 훅이 `$PWD`가 `/c/project`처럼 보이는 Git Bash에서 실행되더라도 경로가 백슬래시 구분 기호와 함께 전달됩니다

1706* `/src/` 검사처럼 슬래시로 작성된 비교는 백슬래시 경로와 절대 일치하지 않으며, 도구 호출은 훅이 차단할 것이 없었던 것처럼 진행됩니다1706* `/src/` 검사처럼 슬래시로 작성된 비교는 백슬래시 경로와 절대 일치하지 않으며, 도구 호출은 훅이 차단할 것이 없는 것처럼 진행됩니다

1707* 비교하기 전에 구분 기호를 정규화합니다. Bash에서는 `FILE_PATH="${FILE_PATH//\\//}"`, Python에서는 `file_path.replace("\\", "/")`를 사용한 다음, 경로가 절대 경로이므로 `^`로 고정하지 말고 `/src/` 같은 경로 세그먼트와 일치시킵니다1707* 비교하기 전에 구분 기호를 정규화합니다. Bash에서는 `FILE_PATH="${FILE_PATH//\\//}"`, Python에서는 `file_path.replace("\\", "/")`를 사용한 다음, 경로가 절대 경로이므로 `^`로 고정하지 말고 `/src/` 같은 경로 세그먼트를 일치시킵니다

1708 1708 

1709Windows에서 `Write` 호출은 다음을 전달합니다.1709Windows에서 `Write` 호출은 다음을 전달합니다.

1710 1710 


1730 1730 

1731셸 명령을 실행합니다.1731셸 명령을 실행합니다.

1732 1732 

1733| 필드 | 유형 | 예시 | 설명 |1733| 필드 | 타입 | 예시 | 설명 |

1734| :- | :- | :- | :- |1734| :- | :- | :- | :- |

1735| `command` | string | `"npm test"` | 실행할 셸 명령 |1735| `command` | string | `"npm test"` | 실행할 셸 명령 |

1736| `description` | string | `"Run test suite"` | 명령이 수행하는 작업에 대한 선택적 설명 |1736| `description` | string | `"Run test suite"` | 명령이 수행하는 작업에 대한 선택적 설명 |

1737| `timeout` | number | `120000` | 밀리초 단위의 선택적 타임아웃입니다. [최대값](/docs/ko/tools-reference#bash-tool-behavior)을 초과하는 값은 거부되지 않고 최대값으로 줄어듭니다 |1737| `timeout` | number | `120000` | 선택적 타임아웃(밀리초). [최대값](/docs/ko/tools-reference#bash-tool-behavior)을 초과하는 값은 거부되지 않고 최대값으로 줄어듭니다 |

1738| `run_in_background` | boolean | `false` | 명령을 백그라운드에서 실행할지 여부 |1738| `run_in_background` | boolean | `false` | 명령을 백그라운드에서 실행할지 여부 |

1739 1739 

1740Bash 명령이 Git 저장소의 파일을 변경하면 Claude Code는 변경된 내용을 기록할 수 있습니다. [`bashEditDiffEnabled`](/docs/ko/settings-reference#basheditdiffenabled) 설정으로 기록을 켜면 모든 권한 모드에서 변경 사항을 기록하며, 어떤 파일에서 이 설정을 지정할 수 있는지는 해당 설정 항목에 설명되어 있습니다. 그렇지 않으면 자동 모드와 `bypassPermissions` 모드에서만, 그리고 Claude Code가 Claude에게 Bash를 통해 파일을 편집하도록 지시할 때만 기록합니다. 기록을 끄려면 `bashEditDiffEnabled`를 `false`로 설정합니다. 백그라운드 명령과 읽기 전용 명령에는 diff가 없습니다.1740Bash 명령이 Git 저장소의 파일을 변경하면 Claude Code는 변경된 내용을 기록할 수 있습니다. [`bashEditDiffEnabled`](/docs/ko/settings-reference#basheditdiffenabled) 설정이 기록을 켜면 모든 권한 모드에서 변경 사항을 기록하며, 어떤 파일에서 이 설정을 지정할 수 있는지는 해당 설정 항목에 나와 있습니다. 그렇지 않으면 자동 모드와 `bypassPermissions` 모드에서만, 그리고 Claude Code가 Claude에게 Bash를 통해 파일을 편집하도록 지시한 경우에만 기록합니다. 기록을 끄려면 `bashEditDiffEnabled`를 `false`로 설정합니다. 백그라운드 명령과 읽기 전용 명령에는 diff가 포함되지 않습니다.

1741 1741 

1742그러면 [PostToolUse 훅](#posttooluse)은 `tool_response.bashEditDiff`에서 변경된 파일을 받습니다. 이 목록은 명령이 실행되는 동안 저장소 아래에서 변경된 내용을 다룹니다. Git이 무시하는 파일과 서브모듈의 파일은 나열되지 않습니다. Claude Code v2.1.269 이상이 필요합니다.1742그러면 [PostToolUse 훅](#posttooluse)이 `tool_response.bashEditDiff`에서 변경된 파일을 수신합니다. 이 목록은 명령이 실행되는 동안 저장소 아래에서 변경된 내용을 다룹니다. Git이 무시하는 파일과 서브모듈의 파일은 목록에 포함되지 않습니다. Claude Code v2.1.269 이상이 필요합니다.

1743 1743 

1744<Note>1744<Note>

1745 이 목록은 최선의 노력에 기반한 것이며 공개 베타 상태입니다. Claude Code는 변경 사항을 놓치거나, 다른 프로세스가 동시에 변경한 파일을 포함하거나, 크기 제한에서 중단될 수 있습니다. 필드 형태는 변경될 수 있습니다. 이 목록은 정책을 강제하는 용도가 아니라 검토할 대상을 찾는 용도로 사용합니다.1745 이 목록은 최선의 노력(best effort)으로 제공되며 공개 베타 상태입니다. Claude Code는 변경 사항을 놓치거나, 동시에 다른 프로세스가 변경한 파일을 포함하거나, 크기 제한에서 중단될 수 있습니다. 필드 형태는 변경될 수 있습니다. 이 목록은 정책을 강제하는 용도가 아니라 검토할 대상을 찾는 용도로 사용합니다.

1746</Note>1746</Note>

1747 1747 

1748`changedFiles`와 `files`는 명령이 변경한 내용을 나열하며, 나머지 필드는 해당 목록이 얼마나 완전하고 신뢰할 수 있는지를 나타냅니다.1748`changedFiles`와 `files`는 명령이 변경한 내용을 나열하며, 나머지 필드는 해당 목록이 얼마나 완전하고 신뢰할 수 있는지를 나타냅니다.

1749 1749 

1750| 필드 | 유형 | 예시 | 설명 |1750| 필드 | 타입 | 예시 | 설명 |

1751| :- | :- | :- | :- |1751| :- | :- | :- | :- |

1752| `changedFiles` | array | `["/path/to/src/app.ts"]` | 명령이 변경한 파일의 절대 경로이며, 최대 200개입니다. `files`에 diff가 있거나 `moreFiles`가 0보다 클 때마다 존재합니다 |1752| `changedFiles` | array | `["/path/to/src/app.ts"]` | 명령이 변경한 파일의 절대 경로(최대 200개). `files`에 diff가 있거나 `moreFiles`가 0보다 클 때마다 포함됩니다 |

1753| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | 표시용으로 최대 5개의 변경된 파일 diff입니다. 명령이 추가하거나 제거한 파일에는 `created` 또는 `deleted`가 `true`입니다 |1753| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | 표시용으로 최대 5개의 변경된 파일에 대한 diff. 명령이 추가하거나 제거한 파일의 경우 `created` 또는 `deleted`가 `true`입니다 |

1754| `moreFiles` | number | `2` | `files`에 diff가 없는 변경된 파일 수 |1754| `moreFiles` | number | `2` | `files`에 diff가 없는 변경된 파일 수 |

1755| `unavailable` | boolean | `true` | diff가 불완전하거나 가져올 수 없을 때 설정됩니다 |1755| `unavailable` | boolean | `true` | diff가 불완전하거나 가져올 수 없을 때 설정됩니다 |

1756| `skipped` | boolean | `true` | `git checkout`이나 `git stash`처럼 작업 트리를 이동하는 Git 명령에 설정되며, 이 경우 Claude Code는 diff를 가져오지 않습니다 |1756| `skipped` | boolean | `true` | `git checkout`이나 `git stash`처럼 작업 트리를 이동하는 Git 명령에 대해 설정되며, 이 경우 Claude Code는 diff를 가져오지 않습니다 |

1757| `shared` | boolean | `true` | 서브에이전트의 호출 같은 다른 Bash 도구 호출이 같은 저장소에서 동시에 실행되었을 때 설정되며, 이 경우 나열된 일부 변경 사항은 해당 명령의 것일 수 있습니다 |1757| `shared` | boolean | `true` | 서브에이전트의 호출 같은 다른 Bash 도구 호출이 같은 시간에 같은 저장소에서 실행되어, 나열된 일부 변경 사항이 해당 명령의 것일 수 있을 때 설정됩니다 |

1758 1758 

1759<a id="powershell" />1759<a id="powershell" />

1760 1760 


1762 PowerShell1762 PowerShell

1763</h5>1763</h5>

1764 1764 

1765PowerShell 명령을 실행합니다. 플랫폼별 사용 가능 여부는 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool)를 참조하십시오.1765PowerShell 명령을 실행합니다. 플랫폼별 사용 가능 여부는 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool)를 참조하세요.

1766 1766 

1767필드는 Bash 도구와 같으며, 명령 문자열은 `command`에 있습니다.1767필드는 Bash 도구와 같으며, 명령 문자열은 `command`에 들어갑니다.

1768 1768 

1769| 필드 | 유형 | 예시 | 설명 |1769| 필드 | 타입 | 예시 | 설명 |

1770| :- | :- | :- | :- |1770| :- | :- | :- | :- |

1771| `command` | string | `"Get-ChildItem -Recurse"` | 실행할 PowerShell 명령 |1771| `command` | string | `"Get-ChildItem -Recurse"` | 실행할 PowerShell 명령 |

1772| `description` | string | `"List files recursively"` | 명령이 수행하는 작업에 대한 선택적 설명 |1772| `description` | string | `"List files recursively"` | 명령이 수행하는 작업에 대한 선택적 설명 |

1773| `timeout` | number | `120000` | 밀리초 단위의 선택적 타임아웃 |1773| `timeout` | number | `120000` | 선택적 타임아웃(밀리초) |

1774| `run_in_background` | boolean | `false` | 명령을 백그라운드에서 실행할지 여부 |1774| `run_in_background` | boolean | `false` | 명령을 백그라운드에서 실행할지 여부 |

1775 1775 

1776셸 명령을 검사하는 훅에서는 두 도구를 모두 다루도록 `Bash|PowerShell`과 일치시킵니다.1776셸 명령을 검사하는 훅에서는 두 도구를 모두 다루도록 `Bash|PowerShell`을 일치시킵니다.

1777 1777 

1778* Windows에서 PowerShell 도구가 활성화된 곳이라면 Claude는 PowerShell을 기본 셸로 취급하고 셸 명령을 PowerShell을 통해 전달합니다.1778* Windows에서 PowerShell 도구가 활성화된 곳이라면 어디서든 Claude는 PowerShell을 기본 셸로 취급하고 셸 명령을 PowerShell을 통해 라우팅합니다.

1779* Git Bash가 없는 Windows에서는 이 도구가 자동으로 활성화되며 Claude Code는 Bash 도구를 아예 등록하지 않습니다.1779* Git Bash가 없는 Windows에서는 이 도구가 자동으로 활성화되며 Claude Code는 Bash 도구를 전혀 등록하지 않습니다.

1780* `Bash`만 일치시키는 훅은 그런 환경에서 절대 발생하지 않습니다.1780* `Bash`만 일치시키는 훅은 그곳에서 절대 발생하지 않습니다.

1781 1781 

1782<h5 id="write">1782<h5 id="write">

1783 Write1783 Write


1785 1785 

1786파일을 생성하거나 덮어씁니다.1786파일을 생성하거나 덮어씁니다.

1787 1787 

1788| 필드 | 유형 | 예시 | 설명 |1788| 필드 | 타입 | 예시 | 설명 |

1789| :- | :- | :- | :- |1789| :- | :- | :- | :- |

1790| `file_path` | string | `"/path/to/file.txt"` | 쓸 파일의 절대 경로 |1790| `file_path` | string | `"/path/to/file.txt"` | 쓸 파일의 절대 경로 |

1791| `content` | string | `"file content"` | 파일에 쓸 내용 |1791| `content` | string | `"file content"` | 파일에 쓸 내용 |


1794 Edit1794 Edit

1795</h5>1795</h5>

1796 1796 

1797기존 파일의 문자열을 바꿉니다.1797기존 파일의 문자열을 대체합니다.

1798 1798 

1799| 필드 | 유형 | 예시 | 설명 |1799| 필드 | 타입 | 예시 | 설명 |

1800| :- | :- | :- | :- |1800| :- | :- | :- | :- |

1801| `file_path` | string | `"/path/to/file.txt"` | 편집할 파일의 절대 경로 |1801| `file_path` | string | `"/path/to/file.txt"` | 편집할 파일의 절대 경로 |

1802| `old_string` | string | `"original text"` | 찾아서 바꿀 텍스트 |1802| `old_string` | string | `"original text"` | 찾아서 대체할 텍스트 |

1803| `new_string` | string | `"replacement text"` | 대체 텍스트 |1803| `new_string` | string | `"replacement text"` | 대체 텍스트 |

1804| `replace_all` | boolean | `false` | 모든 항목을 바꿀지 여부 |1804| `replace_all` | boolean | `false` | 모든 항목을 대체할지 여부 |

1805 1805 

1806<h5 id="read">1806<h5 id="read">

1807 Read1807 Read


1809 1809 

1810파일 내용을 읽습니다.1810파일 내용을 읽습니다.

1811 1811 

1812| 필드 | 유형 | 예시 | 설명 |1812| 필드 | 타입 | 예시 | 설명 |

1813| :- | :- | :- | :- |1813| :- | :- | :- | :- |

1814| `file_path` | string | `"/path/to/file.txt"` | 읽을 파일의 절대 경로 |1814| `file_path` | string | `"/path/to/file.txt"` | 읽을 파일의 절대 경로 |

1815| `offset` | number | `10` | 읽기를 시작할 선택적 줄 번호 |1815| `offset` | number | `10` | 읽기를 시작할 선택적 줄 번호 |


1821 1821 

1822glob 패턴과 일치하는 파일을 찾습니다.1822glob 패턴과 일치하는 파일을 찾습니다.

1823 1823 

1824| 필드 | 유형 | 예시 | 설명 |1824| 필드 | 타입 | 예시 | 설명 |

1825| :- | :- | :- | :- |1825| :- | :- | :- | :- |

1826| `pattern` | string | `"**/*.ts"` | 파일과 일치시킬 glob 패턴 |1826| `pattern` | string | `"**/*.ts"` | 파일을 일치시킬 glob 패턴 |

1827| `path` | string | `"/path/to/dir"` | 검색할 선택적 디렉터리입니다. 기본값은 현재 작업 디렉터리입니다 |1827| `path` | string | `"/path/to/dir"` | 검색할 선택적 디렉터리. 기본값은 현재 작업 디렉터리입니다 |

1828 1828 

1829<h5 id="grep">1829<h5 id="grep">

1830 Grep1830 Grep


1832 1832 

1833정규식으로 파일 내용을 검색합니다.1833정규식으로 파일 내용을 검색합니다.

1834 1834 

1835| 필드 | 유형 | 예시 | 설명 |1835| 필드 | 타입 | 예시 | 설명 |

1836| :- | :- | :- | :- |1836| :- | :- | :- | :- |

1837| `pattern` | string | `"TODO.*fix"` | 검색할 정규식 패턴 |1837| `pattern` | string | `"TODO.*fix"` | 검색할 정규식 패턴 |

1838| `path` | string | `"/path/to/dir"` | 검색할 선택적 파일 또는 디렉터리 |1838| `path` | string | `"/path/to/dir"` | 검색할 선택적 파일 또는 디렉터리 |

1839| `glob` | string | `"*.ts"` | 파일을 필터링할 선택적 glob 패턴 |1839| `glob` | string | `"*.ts"` | 파일을 필터링할 선택적 glob 패턴 |

1840| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` 또는 `"count"`. 기본값은 `"files_with_matches"`입니다 |1840| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` 또는 `"count"`. 기본값은 `"files_with_matches"`입니다 |

1841| `-i` | boolean | `true` | 대소문자를 구분하지 않는 검색 |1841| `-i` | boolean | `true` | 대소문자 구분 없는 검색 |

1842| `multiline` | boolean | `false` | 여러 줄 일치 활성화 |1842| `multiline` | boolean | `false` | 여러 줄 일치 활성화 |

1843 1843 

1844<h5 id="webfetch">1844<h5 id="webfetch">


1847 1847 

1848웹 콘텐츠를 가져와 처리합니다.1848웹 콘텐츠를 가져와 처리합니다.

1849 1849 

1850| 필드 | 유형 | 예시 | 설명 |1850| 필드 | 타입 | 예시 | 설명 |

1851| :- | :- | :- | :- |1851| :- | :- | :- | :- |

1852| `url` | string | `"https://example.com/api"` | 콘텐츠를 가져올 URL |1852| `url` | string | `"https://example.com/api"` | 콘텐츠를 가져올 URL |

1853| `prompt` | string | `"Extract the API endpoints"` | 가져온 콘텐츠에 실행할 프롬프트 |1853| `prompt` | string | `"Extract the API endpoints"` | 가져온 콘텐츠에 대해 실행할 프롬프트 |

1854 1854 

1855<h5 id="websearch">1855<h5 id="websearch">

1856 WebSearch1856 WebSearch


1858 1858 

1859웹을 검색합니다.1859웹을 검색합니다.

1860 1860 

1861| 필드 | 유형 | 예시 | 설명 |1861| 필드 | 타입 | 예시 | 설명 |

1862| :- | :- | :- | :- |1862| :- | :- | :- | :- |

1863| `query` | string | `"react hooks best practices"` | 검색 쿼리 |1863| `query` | string | `"react hooks best practices"` | 검색 쿼리 |

1864| `allowed_domains` | array | `["docs.example.com"]` | 선택 사항: 이 도메인의 결과만 포함합니다 |1864| `allowed_domains` | array | `["docs.example.com"]` | 선택 사항: 이 도메인의 결과만 포함 |

1865| `blocked_domains` | array | `["spam.example.com"]` | 선택 사항: 이 도메인의 결과를 제외합니다 |1865| `blocked_domains` | array | `["spam.example.com"]` | 선택 사항: 이 도메인의 결과 제외 |

1866 1866 

1867<h5 id="agent">1867<h5 id="agent">

1868 Agent1868 Agent


1870 1870 

1871[서브에이전트](/docs/ko/sub-agents)를 생성합니다.1871[서브에이전트](/docs/ko/sub-agents)를 생성합니다.

1872 1872 

1873| 필드 | 유형 | 예시 | 설명 |1873| 필드 | 타입 | 예시 | 설명 |

1874| :- | :- | :- | :- |1874| :- | :- | :- | :- |

1875| `prompt` | string | `"Find all API endpoints"` | 에이전트가 수행할 작업 |1875| `prompt` | string | `"Find all API endpoints"` | 에이전트가 수행할 작업 |

1876| `description` | string | `"Find API endpoints"` | 작업에 대한 짧은 설명 |1876| `description` | string | `"Find API endpoints"` | 작업에 대한 짧은 설명 |

1877| `subagent_type` | string | `"Explore"` | 사용할 전문 에이전트 유형 |1877| `subagent_type` | string | `"Explore"` | 사용할 특화 에이전트 유형 |

1878| `model` | string | `"sonnet"` | 기본값을 재정의할 선택적 모델 별칭 |1878| `model` | string | `"sonnet"` | 기본값을 재정의할 선택적 모델 별칭 |

1879 1879 

1880포그라운드 Agent 호출이 완료되면 [PostToolUse 훅](#posttooluse)은 `tool_response`에서 서브에이전트의 결과와 실행 텔레메트리를 받습니다. 실행을 검사하려면 이 필드를 읽습니다. `totalTokens`와 `usage`는 마지막 요청만 다루므로, 서브에이전트 전반의 토큰 및 비용 집계에는 `query_source` `"subagent"`로 필터링한 [토큰 및 비용 카운터](/docs/ko/monitoring-usage#token-counter)를 사용합니다.1880포그라운드 Agent 호출이 완료되면 [PostToolUse 훅](#posttooluse)은 `tool_response`에서 서브에이전트의 결과와 실행 텔레메트리를 수신합니다. 실행을 검사하려면 이 필드를 읽습니다. 서브에이전트 전체의 토큰 및 비용 집계에는 `query_source` `"subagent"`로 필터링한 [토큰 및 비용 카운터](/docs/ko/monitoring-usage#token-counter)를 사용합니다. `totalTokens`와 `usage`는 마지막 요청만 다루기 때문입니다.

1881 1881 

1882| 필드 | 유형 | 예시 | 설명 |1882| 필드 | 타입 | 예시 | 설명 |

1883| :- | :- | :- | :- |1883| :- | :- | :- | :- |

1884| `status` | string | `"completed"` | 포그라운드 서브에이전트는 `"completed"`, 백그라운드 서브에이전트는 `"async_launched"`입니다. 서브에이전트는 기본적으로 백그라운드에서 실행되므로, `run_in_background`를 생략한 Agent 호출도 `"async_launched"`를 생성합니다 |1884| `status` | string | `"completed"` | 포그라운드 서브에이전트는 `"completed"`, 백그라운드 서브에이전트는 `"async_launched"`. 서브에이전트는 기본적으로 백그라운드에서 실행되므로 `run_in_background`를 생략한 Agent 호출도 `"async_launched"`를 생성합니다 |

1885| `agentId` | string | `"a4d2c8f1e0b3a297"` | 서브에이전트 실행의 식별자 |1885| `agentId` | string | `"a4d2c8f1e0b3a297"` | 서브에이전트 실행의 식별자 |

1886| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | 서브에이전트의 최종 텍스트 블록, 또는 보고서가 `SubagentHandback`을 통해 전달되는 서브에이전트의 경우 그 대신 해당 핸드백에 대한 짧은 메모 |1886| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | 서브에이전트의 최종 텍스트 블록. 보고서가 `SubagentHandback`을 통해 전달되는 서브에이전트의 경우 그 대신 해당 인계에 대한 짧은 메모 |

1887| `resolvedModel` | string | `"claude-sonnet-4-5"` | 서브에이전트가 시작한 모델이며, 요청한 모델과 다를 수 있습니다 |1887| `resolvedModel` | string | `"claude-sonnet-4-5"` | 서브에이전트가 시작한 모델. 요청된 모델과 다를 수 있습니다 |

1888| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | 사용된 모델을 순서대로 나열하며, 연속된 반복은 하나로 합칩니다. 실행 중에 모델이 교체된 경우에만 설정됩니다. Claude Code v2.1.212 이상이 필요합니다 |1888| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | 사용된 모델을 순서대로 나열하며 연속된 반복은 하나로 합칩니다. 실행 중에 모델이 교체된 경우에만 설정됩니다. Claude Code v2.1.212 이상이 필요합니다 |

1889| `totalTokens` | number | `12450` | 서브에이전트의 마지막 API 요청의 토큰 수로, 입력, 출력, 캐시 토큰을 합한 값입니다. 전체 실행에 걸친 합계가 아닙니다 |1889| `totalTokens` | number | `12450` | 서브에이전트의 마지막 API 요청의 토큰 수: 입력, 출력, 캐시 토큰의 합계. 전체 실행에 대한 합계가 아닙니다 |

1890| `totalDurationMs` | number | `48211` | 서브에이전트 실행의 실제 소요 시간 |1890| `totalDurationMs` | number | `48211` | 서브에이전트 실행의 실제 소요 시간 |

1891| `totalToolUseCount` | number | `7` | 서브에이전트가 수행한 도구 호출 수 |1891| `totalToolUseCount` | number | `7` | 서브에이전트가 수행한 도구 호출 수 |

1892| `usage` | object | `{"input_tokens": 8320, ...}` | 마지막 API 요청의 유형별 토큰 내역: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1892| `usage` | object | `{"input_tokens": 8320, ...}` | 마지막 API 요청의 유형별 토큰 내역: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1893 1893 

1894Claude Code v2.1.271 이상에서는 Claude Code가 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서 제공하는 [`SubagentHandback`](/docs/ko/tools-reference) 도구와 함께 실행되는 서브에이전트가 보고서를 텍스트로 반환하지 않고 해당 도구를 통해 전달합니다. 그러면 `completed` 결과의 `content` 필드에는 보고서 자체가 아니라 해당 핸드백에 대한 짧은 메모가 담깁니다. 보고서를 읽으려면 `SubagentHandback`에 `PreToolUse` 또는 `PostToolUse` 훅을 일치시키고 `tool_input.message`를 읽습니다.1894Claude Code v2.1.271 이상에서는 Claude Code가 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서 제공하는 [`SubagentHandback`](/docs/ko/tools-reference) 도구로 실행되는 서브에이전트가 보고서를 텍스트로 반환하지 않고 해당 도구를 통해 전달합니다. 이 경우 `completed` 결과의 `content` 필드에는 보고서 자체가 아니라 해당 인계에 대한 짧은 메모가 담깁니다. 보고서를 읽으려면 `SubagentHandback`에 `PreToolUse` 또는 `PostToolUse` 훅을 일치시키고 `tool_input.message`를 읽습니다.

1895 1895 

1896백그라운드 서브에이전트의 경우 작업이 백그라운드로 이동할 때 도구가 반환되므로 `tool_response`에는 사용량 필드가 없습니다. 백그라운드 실행은 즉시 반환되며, Claude Code가 실행 도중 백그라운드로 보낸 포그라운드 작업은 그 전환 시점에 반환됩니다. 여기에는 `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile`, `resolvedModel`이 있습니다.1896백그라운드 서브에이전트의 경우 작업이 백그라운드로 이동할 때 도구가 반환되므로 `tool_response`에는 사용량 필드가 없습니다. 백그라운드 실행은 즉시 반환되고, Claude Code가 실행 도중 백그라운드로 전환한 포그라운드 작업은 그 전환 시점에 반환됩니다. 이 응답에는 `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile`, `resolvedModel`이 포함됩니다.

1897 1897 

1898`completed` 응답에서 `resolvedModel`은 서브에이전트가 시작한 모델을 나타내며, `availableModels`나 다른 재정의가 적용되는 경우처럼 `tool_input`의 `model` 값과 다를 수 있습니다. `async_launched` 응답에서 `resolvedModel`은 에이전트가 백그라운드로 이동할 때 사용 중이던 모델을 나타내므로, 백그라운드 전환 전에 일어난 교체가 반영됩니다. `modelsUsed`와 백그라운드 전환 시점의 `resolvedModel` 동작은 Claude Code v2.1.212 이상이 필요합니다.1898`completed` 응답에서 `resolvedModel`은 서브에이전트가 시작한 모델을 나타내며, `availableModels`나 다른 재정의가 적용되는 경우처럼 `tool_input`의 `model` 값과 다를 수 있습니다. `async_launched` 응답에서 `resolvedModel`은 에이전트가 백그라운드로 이동할 때 사용 중이던 모델을 나타내므로, 백그라운드 전환 전에 발생한 교체가 반영됩니다. `modelsUsed`와 백그라운드 전환 시점의 `resolvedModel` 동작에는 Claude Code v2.1.212 이상이 필요합니다.

1899 1899 

1900<a id="askuserquestion" />1900<a id="askuserquestion" />

1901 1901 


1905 1905 

1906사용자에게 1\~4개의 객관식 질문을 합니다.1906사용자에게 1\~4개의 객관식 질문을 합니다.

1907 1907 

1908| 필드 | 유형 | 예시 | 설명 |1908| 필드 | 타입 | 예시 | 설명 |

1909| :- | :- | :- | :- |1909| :- | :- | :- | :- |

1910| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | 제시할 질문으로, 각각 `question` 문자열, 짧은 `header`, `options` 배열, 선택적 `multiSelect` 플래그를 가집니다 |1910| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | 표시할 질문. 각 질문에는 `question` 문자열, 짧은 `header`, `options` 배열, 선택적 `multiSelect` 플래그가 있습니다 |

1911| `answers` | object | `{"Which framework?": "React"}` | 선택 사항입니다. 질문 텍스트를 선택된 옵션 레이블에 매핑합니다. 다중 선택 답변은 레이블을 쉼표로 연결합니다. Claude는 이 필드를 설정하지 않으며, 프로그래밍 방식으로 답하려면 `updatedInput`을 통해 제공합니다 |1911| `answers` | object | `{"Which framework?": "React"}` | 선택 사항. 질문 텍스트를 선택된 옵션 레이블에 매핑합니다. 다중 선택 답변은 레이블을 쉼표로 연결합니다. Claude는 이 필드를 설정하지 않으며, 프로그래밍 방식으로 답하려면 `updatedInput`을 통해 제공합니다 |

1912 1912 

1913<h5 id="exitplanmode">1913<h5 id="exitplanmode">

1914 ExitPlanMode1914 ExitPlanMode

1915</h5>1915</h5>

1916 1916 

1917Claude가 [플랜 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)를 떠나기 전에 계획을 제시하고 사용자에게 승인을 요청합니다. Claude는 도구를 호출하기 전에 계획을 디스크의 파일에 쓰므로, 모델에서 온 실제 `tool_input`은 일반적으로 비어 있습니다. Claude Code는 입력을 훅에 전달하기 전에 계획 내용과 파일 경로를 주입합니다.1917Claude가 [플랜 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)를 벗어나기 전에 계획을 제시하고 사용자에게 승인을 요청합니다. Claude는 도구를 호출하기 전에 계획을 디스크의 파일에 작성하므로, 모델이 보낸 실제 `tool_input`은 일반적으로 비어 있습니다. Claude Code는 입력을 훅에 전달하기 전에 계획 내용과 파일 경로를 주입합니다.

1918 1918 

1919| 필드 | 유형 | 예시 | 설명 |1919| 필드 | 타입 | 예시 | 설명 |

1920| :- | :- | :- | :- |1920| :- | :- | :- | :- |

1921| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown 형식의 계획 내용입니다. 디스크의 계획 파일에서 주입됩니다 |1921| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown 형식의 계획 내용. 디스크의 계획 파일에서 주입됩니다 |

1922| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 계획 파일의 경로입니다. 주입됩니다 |1922| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 계획 파일 경로. 주입됩니다 |

1923| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | deprecated입니다. Claude Code는 이 필드를 받지만 무시합니다. v2.1.205 이전에는 Claude가 계획을 구현하기 위해 요청한 프롬프트 기반 권한을 담았습니다 |1923| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | deprecated. Claude Code는 이 필드를 받아들이지만 무시합니다. v2.1.205 이전에는 Claude가 계획을 구현하기 위해 요청한 프롬프트 기반 권한을 담았습니다 |

1924 1924 

1925`PostToolUse`에서 `tool_response`는 승인된 계획을 담은 `plan` 및 `filePath` 필드와 내부 상태 플래그가 있는 객체입니다. 디스크에서 파일을 다시 읽는 대신 `tool_response.plan`에서 계획 내용을 읽습니다.1925`PostToolUse`에서 `tool_response`는 승인된 계획을 담은 `plan` 및 `filePath` 필드와 내부 상태 플래그가 포함된 객체입니다. 계획 내용은 디스크에서 파일을 다시 읽지 말고 `tool_response.plan`에서 읽습니다.

1926 1926 

1927<h4 id="pretooluse-decision-control">1927<h4 id="pretooluse-decision-control">

1928 PreToolUse 결정 제어1928 PreToolUse 결정 제어

1929</h4>1929</h4>

1930 1930 

1931`PreToolUse` 훅은 도구 호출의 진행 여부를 제어할 수 있습니다. 최상위 `decision` 필드를 사용하는 다른 훅과 달리 PreToolUse는 `hookSpecificOutput` 객체 안에서 결정을 반환합니다. 이를 통해 네 가지 결과(허용, 거부, 확인 요청, 지연)와 실행 전 도구 입력 수정 기능이라는 더 풍부한 제어가 가능합니다.1931`PreToolUse` 훅은 도구 호출의 진행 여부를 제어할 수 있습니다. 최상위 `decision` 필드를 사용하는 다른 훅과 달리 PreToolUse는 `hookSpecificOutput` 객체 안에서 결정을 반환합니다. 이를 통해 더 풍부한 제어가 가능합니다. 네 가지 결과(허용, 거부, 확인 요청, 지연)와 함께 실행 전에 도구 입력을 수정하는 기능을 제공합니다.

1932 1932 

1933| 필드 | 설명 |1933| 필드 | 설명 |

1934| :- | :- |1934| :- | :- |

1935| `permissionDecision` | `"allow"`는 권한 프롬프트를 건너뜁니다. 단, [어떤 모드도 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves)과 [`updatedInput`을 함께 사용](#allow-with-updatedinput)해야 하는 `AskUserQuestion` 및 `ExitPlanMode`는 예외입니다. `"deny"`는 도구 호출을 막습니다. `"ask"`는 사용자에게 확인을 요청합니다. `"defer"`는 나중에 도구를 재개할 수 있도록 정상적으로 종료합니다. [거부 및 확인 규칙](/docs/ko/permissions#manage-permissions)은 훅이 무엇을 반환하든 여전히 평가됩니다 |1935| `permissionDecision` | `"allow"`는 권한 프롬프트를 건너뜁니다. 단, [어떤 모드도 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves)과, [`updatedInput`과 함께 사용](#allow-with-updatedinput)해야 하는 `AskUserQuestion` 및 `ExitPlanMode`는 예외입니다. `"deny"`는 도구 호출을 막습니다. `"ask"`는 사용자에게 확인을 요청합니다. `"defer"`는 나중에 도구를 재개할 수 있도록 정상적으로 종료합니다. 훅이 무엇을 반환하든 [거부 및 확인 규칙](/docs/ko/permissions#manage-permissions)은 여전히 평가됩니다 |

1936| `permissionDecisionReason` | `"ask"`의 경우 Claude가 아닌 사용자에게 표시됩니다. `"deny"`의 경우 Claude에게 표시됩니다. `"allow"`와 `"defer"`의 경우 [디버그 로그](#debug-hooks)에만 기록됩니다 |1936| `permissionDecisionReason` | `"ask"`의 경우 권한 프롬프트에서 사용자에게 표시됩니다. 아무도 해당 프롬프트에 응답할 수 없는 `-p` 실행에서 Claude Code가 [호출을 거부](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)하면 Claude는 대신 도구 결과에서 이유를 읽습니다. `"deny"`의 경우 Claude에게 표시됩니다. `"allow"`와 `"defer"`의 경우 [디버그 로그](#debug-hooks)에만 기록됩니다 |

1937| `updatedInput` | 실행 전에 도구의 입력 매개변수를 수정합니다. 입력 객체 전체를 대체하므로 수정된 필드와 함께 변경되지 않은 필드도 포함해야 합니다. Claude Code는 Claude가 보낸 입력이 아니라 훅이 반환한 입력에 대해 권한 규칙과 Bash 명령의 [자동 백그라운드 적격성](/docs/ko/tools-reference#foreground-commands-that-move-to-the-background)을 평가합니다. 자동 승인하려면 `"allow"`와, 수정된 입력을 사용자에게 보여 주려면 `"ask"`와 함께 사용합니다. `"defer"`에서는 무시됩니다 |1937| `updatedInput` | 실행 전에 도구의 입력 매개변수를 수정합니다. 전체 입력 객체를 대체하므로 수정한 필드와 함께 변경하지 않은 필드도 포함해야 합니다. Claude Code는 Claude가 보낸 입력이 아니라 훅이 반환한 입력을 기준으로 권한 규칙과 Bash 명령의 [자동 백그라운드 전환 적격성](/docs/ko/tools-reference#foreground-commands-that-move-to-the-background)을 평가합니다. 자동 승인하려면 `"allow"`와, 수정된 입력을 사용자에게 보여 주려면 `"ask"`와 함께 사용합니다. `"defer"`의 경우 무시됩니다 |

1938| `additionalContext` | 도구 결과와 함께 Claude의 컨텍스트에 추가되는 문자열입니다. `permissionDecision`이 `"defer"`이면 무시됩니다. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하십시오 |1938| `additionalContext` | 도구 결과와 함께 Claude의 컨텍스트에 추가되는 문자열. `permissionDecision`이 `"defer"`이면 무시됩니다. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |

1939 1939 

1940여러 PreToolUse 훅이 서로 다른 결정을 반환하면 우선순위는 `deny` > `defer` > `ask` > `allow`입니다.1940여러 PreToolUse 훅이 서로 다른 결정을 반환하는 경우 우선순위는 `deny` > `defer` > `ask` > `allow`입니다.

1941 1941 

1942종료 코드 2로 차단하는 훅은 `"deny"`와 같은 방식으로 전달됩니다. Claude는 stderr 메시지를 거부 이유로 봅니다.1942종료 코드 2로 차단하는 훅은 `"deny"`와 같은 방식으로 전달됩니다. Claude는 stderr 메시지를 거부 이유로 봅니다.

1943 1943 

1944훅이 `"ask"`를 반환하면 사용자에게 표시되는 권한 프롬프트에 훅의 출처를 식별하는 레이블이 포함됩니다. 설정 파일이나 에이전트 frontmatter의 훅은 `[settings]`, 플러그인의 훅은 `[plugin:<name>]`, 스킬 frontmatter의 훅은 `[skill]`입니다. 이를 통해 사용자는 어떤 구성 소스가 확인을 요청하는지 이해할 수 있습니다.1944훅이 `"ask"`를 반환하면 사용자에게 표시되는 권한 프롬프트에 훅의 출처를 식별하는 레이블이 포함됩니다. 설정 파일이나 에이전트 frontmatter의 훅은 `[settings]`, 플러그인의 훅은 `[plugin:<name>]`, 스킬 frontmatter의 훅은 `[skill]`입니다. 이를 통해 사용자는 어떤 구성 출처가 확인을 요청하는지 이해할 수 있습니다.

1945 1945 

1946훅의 `"ask"`는 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서도 권한 프롬프트를 강제합니다. 분류기는 여전히 도구 호출을 거부할 수 있지만, 호출을 조용히 승인할 수는 없습니다. v2.1.211 이전에는 분류기가 [샌드박스](/docs/ko/sandboxing) 밖에서 실행되는 Bash 명령을 훅이 요청한 프롬프트를 표시하지 않고 승인할 수 있었습니다. 분류기는 여전히 해당 명령에 자체 안전 규칙을 적용했으며, 훅의 `"deny"`는 항상 존중되었습니다.1946훅의 `"ask"`는 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서도 권한 프롬프트를 강제합니다. 분류기는 여전히 도구 호출을 거부할 수 있지만, 호출을 조용히 승인할 수는 없습니다. v2.1.211 이전에는 분류기가 [샌드박스](/docs/ko/sandboxing) 외부에서 실행되는 Bash 명령을 훅이 요청한 프롬프트를 표시하지 않고 승인할 수 있었습니다. 이 경우에도 분류기는 해당 명령에 자체 안전 규칙을 적용했으며, 훅의 `"deny"`는 항상 적용되었습니다.

1947 1947 

1948```json theme={null}1948```json theme={null}

1949{1949{


1961 1961 

1962<span id="allow-with-updatedinput" />1962<span id="allow-with-updatedinput" />

1963 1963 

1964`-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless)에서 Claude Code는 Agent SDK `canUseTool` 콜백처럼 프롬프트를 받을 [권한 호스트](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)가 실행에 있을 때만 `AskUserQuestion`과 `ExitPlanMode`를 제공합니다. 이 도구들은 사용자 상호 작용이 필요합니다. `permissionDecision: "allow"`와 `updatedInput`을 함께 반환하면 이 요구 사항이 충족됩니다. 훅은 stdin에서 도구의 입력을 읽고, 자체 UI를 통해 답변을 수집한 다음, `updatedInput`으로 반환하여 도구가 프롬프트 없이 실행되도록 합니다. 이 도구들에는 `"allow"`만 반환하는 것으로는 충분하지 않습니다. `AskUserQuestion`의 경우 원본 `questions` 배열을 그대로 돌려주고, 각 질문의 텍스트를 선택된 답변에 매핑하는 [`answers`](#askuserquestion) 객체를 추가합니다.1964`-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless)에서 Claude Code는 Agent SDK의 `canUseTool` 콜백처럼 프롬프트를 수신할 [권한 호스트](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)가 실행에 있을 때만 `AskUserQuestion`과 `ExitPlanMode`를 제공합니다. 이 도구들은 사용자 상호 작용이 필요합니다. `permissionDecision: "allow"`를 `updatedInput`과 함께 반환하면 이 요구 사항이 충족됩니다. 훅은 stdin에서 도구의 입력을 읽고, 자체 UI를 통해 답변을 수집한 다음, 도구가 프롬프트 없이 실행되도록 `updatedInput`에 답변을 담아 반환합니다. 이 도구들에는 `"allow"`만 반환하는 것으로는 충분하지 않습니다. `AskUserQuestion`의 경우 원래 `questions` 배열을 그대로 반환하고, 각 질문의 텍스트를 선택된 답변에 매핑하는 [`answers`](#askuserquestion) 객체를 추가합니다.

1965 1965 

1966v2.1.199부터 서버가 [`_meta["anthropic/requiresUserInteraction"]`](/docs/ko/mcp#require-approval-for-a-specific-tool)으로 표시한 MCP 도구는 더 엄격합니다. Claude Code는 훅이 도구에 필요한 상호 작용을 수집했는지 확인할 수 없으므로, 훅은 `updatedInput` 유무와 관계없이 `"allow"`로 승인 프롬프트를 건너뛸 수 없습니다.1966서버가 [`_meta["anthropic/requiresUserInteraction"]`](/docs/ko/mcp#require-approval-for-a-specific-tool)로 표시한 MCP 도구는 더 엄격합니다. 훅은 `updatedInput` 유무와 관계없이 `"allow"`로 승인 프롬프트를 건너뛸 수 없습니다. Claude Code가 훅이 해당 도구에 필요한 상호 작용을 수집했는지 확인할 수 없기 때문입니다.

1967 1967 

1968<Note>1968<Note>

1969 PreToolUse는 이전에 최상위 `decision` 및 `reason` 필드를 사용했지만, 이 이벤트에서는 deprecated되었습니다. 대신 `hookSpecificOutput.permissionDecision`과 `hookSpecificOutput.permissionDecisionReason`을 사용합니다. deprecated된 값 `"approve"`와 `"block"`은 각각 `"allow"`와 `"deny"`에 매핑됩니다. PostToolUse와 Stop 같은 다른 이벤트는 현재 형식으로 최상위 `decision`과 `reason`을 계속 사용합니다.1969 PreToolUse는 이전에 최상위 `decision` 및 `reason` 필드를 사용했지만, 이 이벤트에서는 deprecated되었습니다. 대신 `hookSpecificOutput.permissionDecision`과 `hookSpecificOutput.permissionDecisionReason`을 사용합니다. deprecated된 값 `"approve"`와 `"block"`은 각각 `"allow"`와 `"deny"`에 매핑됩니다. PostToolUse와 Stop 같은 다른 이벤트는 현재 형식으로 최상위 `decision`과 `reason`을 계속 사용합니다.

1970</Note>1970</Note>

1971 1971 

1972<h4 id="defer-a-tool-call-for-later">1972<h4 id="defer-a-tool-call-for-later">

1973 나중을 위해 도구 호출 지연1973 도구 호출을 나중으로 지연

1974</h4>1974</h4>

1975 1975 

1976`"defer"`는 Agent SDK 앱이나 Claude Code 위에 구축된 사용자 지정 UI처럼 `claude -p`를 하위 프로세스로 실행하고 JSON 출력을 읽는 통합을 위한 것입니다. 이를 통해 호출 프로세스는 도구 호출 시점에서 Claude를 일시 중지하고, 자체 인터페이스를 통해 입력을 수집한 다음, 중단된 지점에서 재개할 수 있습니다. Claude Code는 `-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless)에서만 이 값을 존중합니다. 대화형 세션에서는 경고를 로그에 기록하고 훅 결과를 무시합니다.1976`"defer"`는 Agent SDK 앱이나 Claude Code 위에 구축된 사용자 지정 UI처럼 `claude -p`를 하위 프로세스로 실행하고 JSON 출력을 읽는 통합을 위한 것입니다. 이를 통해 호출하는 프로세스가 도구 호출 시점에 Claude를 일시 중지하고, 자체 인터페이스를 통해 입력을 수집한 다음, 중단한 지점에서 재개할 수 있습니다. Claude Code는 `-p` 플래그를 사용하는 [비대화형 모드](/docs/ko/headless)에서만 이 값을 적용합니다. 대화형 세션에서는 경고를 로그에 기록하고 훅 결과를 무시합니다.

1977 1977 

1978`AskUserQuestion` 도구가 대표적인 사례입니다. Claude는 사용자에게 무언가를 묻고 싶지만 답할 터미널이 없습니다. `-p` 실행은 `--permission-prompt-tool`로 전달하는 MCP 도구 같은 [권한 호스트](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)가 있을 때만 `AskUserQuestion`을 제공하므로, 권한 호스트와 함께 실행을 시작해야 합니다. 왕복 과정은 다음과 같습니다.1978`AskUserQuestion` 도구가 대표적인 경우입니다. Claude가 사용자에게 무언가를 묻고 싶지만 답변할 터미널이 없습니다. `-p` 실행은 `--permission-prompt-tool`로 전달하는 MCP 도구 같은 [권한 호스트](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)가 있을 때만 `AskUserQuestion`을 제공하므로, 권한 호스트와 함께 실행을 시작합니다. 왕복 과정은 다음과 같습니다.

1979 1979 

19801. Claude가 `AskUserQuestion`을 호출합니다. `PreToolUse` 훅이 발생합니다.19801. Claude가 `AskUserQuestion`을 호출합니다. `PreToolUse` 훅이 발생합니다.

19812. 훅이 `permissionDecision: "defer"`를 반환합니다. 도구는 실행되지 않습니다. 프로세스는 `stop_reason: "tool_deferred"`로 종료되며, 보류 중인 도구 호출은 트랜스크립트에 보존됩니다.19812. 훅이 `permissionDecision: "defer"`를 반환합니다. 도구는 실행되지 않습니다. 프로세스는 `stop_reason: "tool_deferred"`와 함께 종료되며, 보류 중인 도구 호출은 트랜스크립트에 보존됩니다.

19823. 호출 프로세스는 SDK 결과에서 `deferred_tool_use`를 읽고, 자체 UI에 질문을 표시한 다음, 답변을 기다립니다.19823. 호출하는 프로세스가 SDK 결과에서 `deferred_tool_use`를 읽고, 자체 UI에 질문을 표시한 다음 답변을 기다립니다.

19834. 호출 프로세스는 같은 권한 호스트로 `claude -p --resume <session-id>`를 실행합니다. 같은 도구 호출이 다시 `PreToolUse`를 발생시킵니다.19834. 호출하는 프로세스가 같은 권한 호스트로 `claude -p --resume <session-id>`를 실행합니다. 같은 도구 호출이 `PreToolUse`를 다시 발생시킵니다.

19845. 훅이 `updatedInput`에 답변을 담아 `permissionDecision: "allow"`를 반환합니다. 도구가 실행되고 Claude가 계속합니다.19845. 훅이 `updatedInput`에 답변을 담아 `permissionDecision: "allow"`를 반환합니다. 도구가 실행되고 Claude가 계속 진행합니다.

1985 1985 

1986`deferred_tool_use` 필드에는 도구의 `id`, `name`, `input`이 담깁니다. `input`은 Claude가 도구 호출을 위해 생성한 매개변수로, 실행 전에 캡처됩니다.1986`deferred_tool_use` 필드에는 도구의 `id`, `name`, `input`이 담깁니다. `input`은 Claude가 도구 호출을 위해 생성한 매개변수로, 실행 전에 캡처됩니다.

1987 1987 


1999}1999}

2000```2000```

2001 2001 

2002타임아웃이나 재시도 제한은 없습니다. 세션은 재개할 때까지 디스크에 남아 있으며, [보존 정리 규칙](/docs/ko/claude-directory#cleaned-up-automatically)에 따라 기본적으로 30일 후 세션 파일을 삭제하는 [`cleanupPeriodDays`](/docs/ko/settings-reference#cleanupperioddays) 보존 정리의 적용을 받습니다. 재개할 때 답변이 준비되지 않았다면 훅은 다시 `"defer"`를 반환할 수 있으며, 프로세스는 같은 방식으로 종료됩니다. 호출 프로세스는 결국 훅에서 `"allow"` 또는 `"deny"`를 반환하여 루프를 끝낼 시점을 제어합니다.2002타임아웃이나 재시도 제한은 없습니다. 세션은 재개할 때까지 디스크에 남아 있으며, [보존 정리 규칙](/docs/ko/claude-directory#cleaned-up-automatically)에 따라 기본적으로 30일 후 세션 파일을 삭제하는 [`cleanupPeriodDays`](/docs/ko/settings-reference#cleanupperioddays) 보존 정리의 적용을 받습니다. 재개할 때 답변이 준비되지 않았다면 훅이 다시 `"defer"`를 반환할 수 있으며, 프로세스는 같은 방식으로 종료됩니다. 호출하는 프로세스는 최종적으로 훅에서 `"allow"` 또는 `"deny"`를 반환하여 루프를 끝낼 시점을 제어합니다.

2003 2003 

2004`"defer"`는 Claude가 턴에서 단일 도구 호출을 할 때만 작동합니다. Claude가 한 번에 여러 도구 호출을 하면 `"defer"`는 경고와 함께 무시되고 도구는 일반 권한 흐름을 통해 진행됩니다. 이 제약은 재개 시 하나의 도구만 다시 실행할 수 있기 때문에 존재합니다. 배치에서 하나의 호출을 지연하면서 나머지를 해결되지 않은 상태로 두지 않을 방법이 없습니다.2004`"defer"`는 Claude가 해당 턴에서 단일 도구 호출을 할 때만 작동합니다. Claude가 여러 도구 호출을 한 번에 하면 `"defer"`는 경고와 함께 무시되고 도구는 일반 권한 흐름을 거쳐 진행됩니다. 이 제약은 재개 시 하나의 도구만 다시 실행할 수 있기 때문에 존재합니다. 묶음에서 하나의 호출만 지연하면 나머지 호출이 해결되지 않은 상태로 남게 됩니다.

2005 2005 

2006재개할 때 지연된 도구를 더 이상 사용할 수 없으면 프로세스는 훅이 발생하기 전에 `stop_reason: "tool_deferred_unavailable"` 및 `is_error: true`로 종료됩니다. 이는 도구를 제공한 MCP 서버가 재개된 세션에 연결되어 있지 않을 때 발생합니다. `deferred_tool_use` 페이로드는 여전히 포함되므로 어떤 도구가 없어졌는지 식별할 수 있습니다.2006재개할 때 지연된 도구를 더 이상 사용할 수 없으면, 프로세스는 훅이 발생하기 전에 `stop_reason: "tool_deferred_unavailable"` 및 `is_error: true`와 함께 종료됩니다. 이는 도구를 제공한 MCP 서버가 재개된 세션에 연결되지 않은 경우에 발생합니다. 어떤 도구가 사라졌는지 식별할 수 있도록 `deferred_tool_use` 페이로드는 여전히 포함됩니다.

2007 2007 

2008<Note>2008<Note>

2009 플랜 모드에서 지연된 세션을 재개하려면 Claude Code가 승인을 위해 계획을 제시할 수 있도록 `--resume`과 함께 [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags)을 전달합니다. 특정 다른 실행 플래그를 전달하면 재개된 실행이 플랜 모드로 돌아가지 않습니다. [`-p`로 플랜 모드에서 재개](/docs/ko/sessions#resume-in-plan-mode-with-p)를 참조하십시오. Claude Code v2.1.246 이상이 필요합니다.2009 지연된 세션을 플랜 모드로 재개하려면 Claude Code가 승인을 위해 계획을 제시할 수 있도록 `--resume`과 함께 [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags)을 전달합니다. 특정 다른 실행 플래그를 전달하면 재개된 실행이 플랜 모드로 돌아가지 않습니다. [`-p`로 플랜 모드에서 재개](/docs/ko/sessions#resume-in-plan-mode-with-p)를 참조하세요. Claude Code v2.1.246 이상이 필요합니다.

2010 2010 

2011 `-p`로 재개하면 Claude Code는 다른 저장된 권한 모드를 복원하지 않습니다. 새 `claude -p` 실행이 시작할 권한 모드로 실행을 시작하므로, 지연된 세션이 `--permission-mode` 또는 `--dangerously-skip-permissions`를 사용했다면 다시 전달해야 합니다. `-p` 없이 `claude --resume <session-id>`로 재개하면 Claude Code는 [재개 시 권한 모드](/docs/ko/sessions#permission-mode-on-resume)에 나열된 예외를 제외하고 저장된 권한 모드를 복원합니다.2011 `-p`로 재개하면 Claude Code는 저장된 다른 권한 모드를 복원하지 않습니다. 새로운 `claude -p` 실행이 시작하는 권한 모드로 실행을 시작하므로, 지연된 세션이 `--permission-mode` 또는 `--dangerously-skip-permissions`를 사용했다면 다시 전달해야 합니다. `-p` 없이 `claude --resume <session-id>`로 재개하면 Claude Code는 [재개 시 권한 모드](/docs/ko/sessions#permission-mode-on-resume)에 나열된 예외를 제외하고 저장된 권한 모드를 복원합니다.

2012</Note>2012</Note>

2013 2013 

2014<h3 id="permissionrequest">2014<h3 id="permissionrequest">

2015 PermissionRequest2015 PermissionRequest

2016</h3>2016</h3>

2017 2017 

2018Claude Code가 도구 사용 권한을 요청하려고 할 때 실행됩니다. [비대화형 모드](/docs/ko/headless)의 백그라운드 서브에이전트처럼 프롬프트를 표시할 수 없는 세션에서도 Claude Code는 이 훅을 실행하며, 어떤 훅도 결정을 반환하지 않으면 도구 호출을 거부합니다. `--permission-prompt-tool`이나 Agent SDK의 [`canUseTool` 콜백](/docs/ko/agent-sdk/permissions)에 도달하는 호출의 경우 훅은 호스트와 함께 실행되며, 먼저 결정하는 쪽이 적용됩니다.2018Claude Code가 도구 사용 권한을 요청하려고 할 때 실행됩니다. [비대화형 모드](/docs/ko/headless)의 백그라운드 서브에이전트처럼 프롬프트를 표시할 수 없는 세션에서도 Claude Code는 이 훅을 실행하며, 결정을 반환하는 훅이 없으면 도구 호출을 거부합니다. `--permission-prompt-tool`이나 Agent SDK의 [`canUseTool` 콜백](/docs/ko/agent-sdk/permissions)에 도달하는 호출의 경우 훅은 호스트와 함께 실행되며, 먼저 결정하는 쪽이 적용됩니다.

2019[PermissionRequest 결정 제어](#permissionrequest-decision-control)를 사용해 사용자를 대신하여 허용하거나 거부하십시오.2019사용자를 대신하여 허용하거나 거부하려면 [PermissionRequest 결정 제어](#permissionrequest-decision-control)를 사용합니다.

2020 2020 

2021Claude가 도구 사용 권한을 요청하는 순간에 신호가 필요할 때 이 이벤트를 사용합니다. Claude Code는 프롬프트가 약 6초 동안 대기한 후에만 `permission_prompt` 유형의 [Notification](#notification) 훅을 실행합니다.2021Claude가 도구 사용 권한을 요청하는 순간 신호가 필요할 때 이 이벤트를 사용합니다. Claude Code는 프롬프트가 약 6초 동안 대기한 후에만 `permission_prompt` 유형의 [Notification](#notification) 훅을 실행합니다.

2022 2022 

2023Claude Code는 샌드박스 처리된 명령의 [네트워크 요청](/docs/ko/sandboxing#network-isolation)에 대해서는 PermissionRequest 훅을 실행하지 않습니다. 해당 프롬프트에 대한 신호를 받으려면 `permission_prompt` 알림 유형을 사용합니다.2023Claude Code는 샌드박스 처리된 명령의 [네트워크 요청](/docs/ko/sandboxing#network-isolation)에 대해서는 PermissionRequest 훅을 실행하지 않습니다. 해당 프롬프트에 대한 신호를 받으려면 `permission_prompt` 알림 유형을 사용합니다.

2024 2024 

2025PreToolUse와 같은 값으로 도구 이름에 대해 일치시킵니다.2025도구 이름에 대해 일치시키며, 값은 PreToolUse와 같습니다.

2026 2026 

2027<h4 id="permissionrequest-input">2027<h4 id="permissionrequest-input">

2028 PermissionRequest 입력2028 PermissionRequest 입력

2029</h4>2029</h4>

2030 2030 

2031PermissionRequest 훅은 PreToolUse 훅처럼 `tool_name`과 `tool_input` 필드를 받지만 `tool_use_id`는 받지 않습니다. MCP 도구의 경우 [`mcp_server`](#pretooluse-input) 객체도 받습니다. 선택적 `permission_suggestions` 배열에는 허용 규칙 추가나 권한 모드 변경처럼 Claude Code가 이 요청에 대해 제안하는 [권한 업데이트](#permission-update-entries)가 담깁니다.2031PermissionRequest 훅은 PreToolUse 훅처럼 `tool_name` 및 `tool_input` 필드를 수신하지만 `tool_use_id`는 없습니다. MCP 도구의 경우 [`mcp_server`](#pretooluse-input) 객체도 수신합니다. 선택적 `permission_suggestions` 배열에는 허용 규칙 추가나 권한 모드 변경처럼 Claude Code가 이 요청에 대해 제안하는 [권한 업데이트](#permission-update-entries)가 담깁니다.

2032 2032 

2033각 권한 대화 상자는 자체 옵션을 구성하므로 `permission_suggestions` 배열은 사용자에게 표시되는 옵션의 정확한 목록이 아닙니다. 파일 편집용 대화 상자처럼 일부 대화 상자는 배열을 전혀 읽지 않고 요청 자체에서 옵션을 도출합니다. 배열을 읽는 대화 상자도 제안이 배열에 남아 있는 옵션을 보류할 수 있습니다. 예를 들어 [`allowManagedPermissionRulesOnly`](/docs/ko/settings-reference#allowmanagedpermissionrulesonly)가 규칙 저장 옵션을 숨기는 경우입니다. 또한 권한 업데이트를 통하지 않고 권한 모드를 직접 변경하는 [**Yes, and switch to auto mode**](/docs/ko/permission-modes#switch-permission-modes)처럼 제안 항목이 없는 옵션을 제공할 수도 있습니다.2033각 권한 대화 상자는 자체 옵션을 구성하므로 `permission_suggestions` 배열은 사용자에게 보이는 옵션의 정확한 목록이 아닙니다. 파일 편집 대화 상자처럼 일부 대화 상자는 배열을 전혀 읽지 않고 요청 자체에서 옵션을 도출합니다. 배열을 읽는 대화 상자도 제안이 배열에 남아 있는 옵션을 표시하지 않을 수 있습니다. 예를 들어 [`allowManagedPermissionRulesOnly`](/docs/ko/settings-reference#allowmanagedpermissionrulesonly)가 규칙 저장 옵션을 숨기는 경우입니다. 또한 [**Yes, and switch to auto mode**](/docs/ko/permission-modes#switch-permission-modes)처럼 제안 항목이 없는 옵션을 제공할 수도 있으며, 이 옵션은 권한 업데이트를 거치지 않고 권한 모드를 직접 변경합니다.

2034 2034 

2035PreToolUse 훅은 권한이 필요한지 여부와 관계없이 모든 도구 호출 전에 실행됩니다. PermissionRequest 훅은 Claude Code가 권한을 요청하려고 할 때, 또는 프롬프트를 표시할 수 없는 호출을 자동 거부하려고 할 때만 실행됩니다. 두 이벤트 모두 [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)에서는 발생하지 않습니다.2035PreToolUse 훅은 권한이 필요한지 여부와 관계없이 모든 도구 호출 전에 실행됩니다. PermissionRequest 훅은 Claude Code가 권한을 요청하려고 할 때, 또는 프롬프트를 표시할 수 없는 호출을 자동으로 거부하려고 할 때만 실행됩니다. 두 이벤트 모두 [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)에서는 발생하지 않습니다.

2036 2036 

2037```json theme={null}2037```json theme={null}

2038{2038{


2061 PermissionRequest 결정 제어2061 PermissionRequest 결정 제어

2062</h4>2062</h4>

2063 2063 

2064`PermissionRequest` 훅은 권한 요청을 허용하거나 거부할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 훅 스크립트는 다음 이벤트별 필드가 있는 `decision` 객체를 반환할 수 있습니다.2064`PermissionRequest` 훅은 권한 요청을 허용하거나 거부할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 훅 스크립트는 다음 이벤트별 필드가 포함된 `decision` 객체를 반환할 수 있습니다.

2065 2065 

2066| 필드 | 설명 |2066| 필드 | 설명 |

2067| :- | :- |2067| :- | :- |

2068| `behavior` | `"allow"`는 권한을 부여하고, `"deny"`는 거부합니다. [거부 및 확인 규칙](/docs/ko/permissions#manage-permissions)은 여전히 평가되므로, `"allow"`를 반환하는 훅이 일치하는 거부 규칙을 재정의하지는 않습니다 |2068| `behavior` | `"allow"`는 권한을 부여하고, `"deny"`는 거부합니다. [거부 및 확인 규칙](/docs/ko/permissions#manage-permissions)은 여전히 평가되므로, `"allow"`를 반환하는 훅이 일치하는 거부 규칙을 재정의하지는 않습니다 |

2069| `updatedInput` | `"allow"` 전용: 실행 전에 도구의 입력 매개변수를 수정합니다. 입력 객체 전체를 대체하므로 수정된 필드와 함께 변경되지 않은 필드도 포함해야 합니다. 수정된 입력은 거부 및 확인 규칙에 대해 다시 평가됩니다 |2069| `updatedInput` | `"allow"` 전용: 실행 전에 도구의 입력 매개변수를 수정합니다. 전체 입력 객체를 대체하므로 수정한 필드와 함께 변경하지 않은 필드도 포함해야 합니다. 수정된 입력은 거부 및 확인 규칙에 대해 다시 평가됩니다 |

2070| `updatedPermissions` | `"allow"` 전용: 허용 규칙 추가나 세션 권한 모드 변경처럼 적용할 [권한 업데이트 항목](#permission-update-entries)의 배열 |2070| `updatedPermissions` | `"allow"` 전용: 허용 규칙 추가나 세션 권한 모드 변경처럼 적용할 [권한 업데이트 항목](#permission-update-entries)의 배열 |

2071| `message` | `"deny"` 전용: 권한이 거부된 이유를 Claude에게 알립니다 |2071| `message` | `"deny"` 전용: 권한이 거부된 이유를 Claude에게 알립니다 |

2072| `interrupt` | `"deny"` 전용: `true`이면 Claude를 중지합니다 |2072| `interrupt` | `"deny"` 전용: `true`이면 Claude를 중지합니다 |


2095 2095 

2096| `type` | 필드 | 효과 |2096| `type` | 필드 | 효과 |

2097| :- | :- | :- |2097| :- | :- | :- |

2098| `addRules` | `rules`, `behavior`, `destination` | 권한 규칙을 추가합니다. `rules`는 `{toolName, ruleContent?}` 객체의 배열입니다. 도구 전체와 일치시키려면 `ruleContent`를 생략합니다. `behavior`는 `"allow"`, `"deny"` 또는 `"ask"`입니다 |2098| `addRules` | `rules`, `behavior`, `destination` | 권한 규칙을 추가합니다. `rules`는 `{toolName, ruleContent?}` 객체의 배열입니다. 도구 전체를 일치시키려면 `ruleContent`를 생략합니다. `behavior`는 `"allow"`, `"deny"` 또는 `"ask"`입니다 |

2099| `replaceRules` | `rules`, `behavior`, `destination` | `destination`에서 지정된 `behavior`의 모든 규칙을 제공된 `rules`로 대체합니다 |2099| `replaceRules` | `rules`, `behavior`, `destination` | `destination`에서 지정된 `behavior`의 모든 규칙을 제공된 `rules`로 대체합니다 |

2100| `removeRules` | `rules`, `behavior`, `destination` | 지정된 `behavior`의 일치하는 규칙을 제거합니다 |2100| `removeRules` | `rules`, `behavior`, `destination` | 지정된 `behavior`의 일치하는 규칙을 제거합니다 |

2101| `setMode` | `mode`, `destination` | 권한 모드를 변경합니다. 유효한 모드는 `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan`, 그리고 `default`의 별칭인 `manual`입니다. `manual` 별칭은 Claude Code v2.1.200 이상이 필요합니다 |2101| `setMode` | `mode`, `destination` | 권한 모드를 변경합니다. 유효한 모드는 `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan`, 그리고 `default`의 별칭인 `manual`입니다. `manual` 별칭에는 Claude Code v2.1.200 이상이 필요합니다 |

2102| `addDirectories` | `directories`, `destination` | 작업 디렉터리를 추가합니다. `directories`는 경로 문자열의 배열입니다 |2102| `addDirectories` | `directories`, `destination` | 작업 디렉터리를 추가합니다. `directories`는 경로 문자열의 배열입니다 |

2103| `removeDirectories` | `directories`, `destination` | 작업 디렉터리를 제거합니다 |2103| `removeDirectories` | `directories`, `destination` | 작업 디렉터리를 제거합니다 |

2104 2104 

2105<Note>2105<Note>

2106 `bypassPermissions`를 지정한 `setMode`는 bypass 모드를 이미 사용할 수 있는 상태로 세션을 시작한 경우에만 적용됩니다. 즉, `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions`를 사용했거나 [사용자, `--settings` 또는 관리형 설정](/docs/ko/settings-reference#permissions-defaultmode)에 `permissions.defaultMode: "bypassPermissions"`가 지정되어 있어야 합니다. 그렇지 않으면 이 업데이트는 아무 효과가 없습니다. [`permissions.disableBypassPermissionsMode`](/docs/ko/permissions#managed-settings)가 이 모드를 비활성화한 경우나 세션이 [제한 모드](/docs/ko/cli-reference#cli-flags)로 시작된 경우에도 업데이트는 아무 효과가 없습니다.2106 `bypassPermissions`를 사용하는 `setMode`는 우회 모드를 이미 사용할 수 있는 상태로 세션을 시작한 경우에만 적용됩니다. 즉, `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions`를 사용했거나 [사용자 설정, `--settings` 또는 관리형 설정](/docs/ko/settings-reference#permissions-defaultmode)에 `permissions.defaultMode: "bypassPermissions"`가 있어야 합니다. 그렇지 않으면 업데이트는 아무 효과가 없습니다. [`permissions.disableBypassPermissionsMode`](/docs/ko/permissions#managed-settings)가 이 모드를 비활성화한 경우나 세션이 [제한 모드](/docs/ko/cli-reference#cli-flags)로 시작된 경우에도 업데이트는 아무 효과가 없습니다.

2107 2107 

2108 `bypassPermissions`는 `destination`과 관계없이 `defaultMode`로 저장되지 않습니다.2108 `bypassPermissions`는 `destination`과 관계없이 `defaultMode`로 저장되지 않습니다.

2109</Note>2109</Note>


2117| `projectSettings` | `.claude/settings.json` |2117| `projectSettings` | `.claude/settings.json` |

2118| `userSettings` | `~/.claude/settings.json` |2118| `userSettings` | `~/.claude/settings.json` |

2119 2119 

2120훅은 전달받은 `permission_suggestions` 중 하나를 그대로 자신의 `updatedPermissions` 출력으로 반환할 수 있습니다.2120훅은 전달받은 `permission_suggestions` 중 하나를 자체 `updatedPermissions` 출력으로 그대로 반환할 수 있습니다.

2121 2121 

2122<h3 id="posttooluse">2122<h3 id="posttooluse">

2123 PostToolUse2123 PostToolUse


2125 2125 

2126도구가 성공적으로 완료된 직후에 실행됩니다.2126도구가 성공적으로 완료된 직후에 실행됩니다.

2127 2127 

2128도구 이름으로 매칭하며, 값은 PreToolUse와 같습니다.2128도구 이름으로 매칭하며, PreToolUse와 같은 값을 사용합니다.

2129 2129 

2130도구 이름이 적절한 필터가 아닐 때는 더 넓게 매칭할 수 있습니다.2130도구 이름이 적절한 필터가 아닐 때는 더 넓게 매칭합니다.

2131 2131 

2132* 어떤 도구든 성공적으로 완료된 후에 훅을 실행하려면 `matcher`를 생략하거나 `"*"`로 설정합니다. 그러면 훅이 무엇이 변경되었는지 직접 파악할 수 있습니다. 예를 들어 `git status --porcelain`을 실행하면 `git diff`가 놓치는 추적되지 않은 파일도 함께 나열됩니다. 실패한 도구 호출의 경우 같은 훅을 [PostToolUseFailure](#posttoolusefailure) 아래에 추가합니다.2132* 어떤 도구든 성공적으로 완료된 후에 훅을 실행하려면 `matcher`를 생략하거나 `"*"`로 설정합니다. 그러면 훅이 직접 변경 내용을 파악할 수 있습니다. 예를 들어 `git status --porcelain`을 실행하면 `git diff`가 놓치는 추적되지 않는 파일도 나열됩니다. 실패한 도구 호출에 대해서는 같은 훅을 [PostToolUseFailure](#posttoolusefailure)에 추가합니다.

2133* 무엇이 파일을 기록했는지와 관계없이 특정 파일이 디스크에서 변경될 때 훅을 실행하려면 [FileChanged](#filechanged)를 사용합니다. `Bash` 명령이나 Claude Code 외부의 프로세스가 같은 파일을 다시 쓰는 경우, Claude Code는 `Edit|Write`에 매칭되는 `PostToolUse` 훅을 실행하지 않습니다.2133* 무엇이 파일을 기록했든 특정 파일이 디스크에서 변경될 때 훅을 실행하려면 [FileChanged](#filechanged)를 사용합니다. `Bash` 명령이나 Claude Code 외부의 프로세스가 같은 파일을 다시 쓰는 경우, Claude Code는 `Edit|Write`에 매칭되는 `PostToolUse` 훅을 실행하지 않습니다.

2134 2134 

2135<h4 id="posttooluse-input">2135<h4 id="posttooluse-input">

2136 PostToolUse 입력2136 PostToolUse input

2137</h4>2137</h4>

2138 2138 

2139`PostToolUse` 훅은 도구가 이미 성공적으로 실행된 후에 발생합니다. 입력에는 도구에 전송된 인수인 `tool_input`과 도구가 반환한 결과인 `tool_response`가 모두 포함됩니다. 두 필드의 정확한 스키마는 도구에 따라 다릅니다. 파일 도구의 `tool_input` 경로는 [PreToolUse](#pretooluse-input)와 같은 형식으로 전달됩니다. 즉, 항상 절대 경로이며 플랫폼 고유의 구분자를 사용하므로 Windows에서는 백슬래시가 사용됩니다. MCP 도구의 경우 입력에 [`mcp_server`](#pretooluse-input) 객체도 포함됩니다.2139`PostToolUse` 훅은 도구가 이미 성공적으로 실행된 후에 발생합니다. 입력에는 도구에 전송된 인수인 `tool_input`과 도구가 반환한 결과인 `tool_response`가 모두 포함됩니다. 두 필드의 정확한 스키마는 도구에 따라 다릅니다. 파일 도구의 `tool_input` 경로는 [PreToolUse](#pretooluse-input)와 같은 형식으로 전달됩니다. 즉, 항상 절대 경로이며 플랫폼 고유의 구분자를 사용하므로 Windows에서는 백슬래시가 사용됩니다. MCP 도구의 경우 입력에 [`mcp_server`](#pretooluse-input) 객체도 포함됩니다.


2161 2161 

2162| 필드 | 설명 |2162| 필드 | 설명 |

2163| :- | :- |2163| :- | :- |

2164| `duration_ms` | 선택 사항입니다. 밀리초 단위의 도구 실행 시간입니다. 권한 프롬프트와 PreToolUse 훅에서 소요된 시간은 제외됩니다 |2164| `duration_ms` | 선택 사항입니다. 밀리초 단위의 도구 실행 시간입니다. 권한 프롬프트와 PreToolUse 훅에 소요된 시간은 제외됩니다 |

2165 2165 

2166<h4 id="posttooluse-decision-control">2166<h4 id="posttooluse-decision-control">

2167 PostToolUse 결정 제어2167 PostToolUse decision control

2168</h4>2168</h4>

2169 2169 

2170`PostToolUse` 훅은 도구 실행 후 Claude에게 피드백을 제공할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 훅 스크립트는 다음과 같은 이벤트별 필드를 반환할 수 있습니다.2170`PostToolUse` 훅은 도구 실행 후 Claude에 피드백을 제공할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도, 훅 스크립트는 다음과 같은 이벤트별 필드를 반환할 수 있습니다.

2171 2171 

2172| 필드 | 설명 |2172| 필드 | 설명 |

2173| :- | :- |2173| :- | :- |

2174| `decision` | `"block"`은 도구 결과 옆에 `reason`을 추가합니다. Claude는 여전히 원래 출력을 보게 되며, 출력을 대체하려면 `updatedToolOutput`을 사용합니다 |2174| `decision` | `"block"`은 도구 결과 옆에 `reason`을 추가합니다. Claude는 여전히 원래 출력을 봅니다. 출력을 대체하려면 `updatedToolOutput`을 사용합니다 |

2175| `reason` | `decision`이 `"block"`일 때 Claude에게 표시되는 설명입니다 |2175| `reason` | `decision`이 `"block"`일 때 Claude에 표시되는 설명입니다 |

2176| `additionalContext` | 도구 결과와 함께 Claude의 컨텍스트에 추가되는 문자열입니다. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |2176| `additionalContext` | 도구 결과와 함께 Claude의 컨텍스트에 추가되는 문자열입니다. [Claude에 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |

2177| `classifierContext` | Claude가 아닌 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode) 분류기를 위한, 이 호출 결과에 대한 짧은 메모입니다. [자동 모드 분류기를 위한 결과 주석 달기](#annotate-a-result-for-the-auto-mode-classifier)를 참조하세요. Claude Code v2.1.236 이상이 필요합니다 |2177| `classifierContext` | Claude가 아닌 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode) 분류기를 위한, 이 호출의 결과에 대한 짧은 메모입니다. [자동 모드 분류기를 위해 결과에 주석 달기](#annotate-a-result-for-the-auto-mode-classifier)를 참조하세요. Claude Code v2.1.236 이상이 필요합니다 |

2178| `updatedToolOutput` | Claude에게 전송되기 전에 도구의 출력을 제공된 값으로 대체합니다. 값은 도구의 출력 형태와 일치해야 합니다 |2178| `updatedToolOutput` | 도구의 출력이 Claude에 전송되기 전에 제공된 값으로 대체합니다. 값은 도구의 출력 형태와 일치해야 합니다 |

2179| `updatedMCPToolOutput` | [MCP 도구](#match-mcp-tools)에 대해서만 출력을 대체합니다. 모든 도구에서 작동하는 `updatedToolOutput`을 사용하는 것이 좋습니다 |2179| `updatedMCPToolOutput` | [MCP 도구](#match-mcp-tools)의 출력만 대체합니다. 모든 도구에서 작동하는 `updatedToolOutput`을 사용하는 것이 좋습니다 |

2180 2180 

2181아래 예시는 `Bash` 호출의 출력을 대체합니다. 대체 값은 `Bash` 도구의 출력 형태와 일치합니다.2181아래 예시는 `Bash` 호출의 출력을 대체합니다. 대체 값은 `Bash` 도구의 출력 형태와 일치합니다.

2182 2182 


2196```2196```

2197 2197 

2198<Warning>2198<Warning>

2199 `updatedToolOutput`은 Claude가 보는 내용만 변경합니다. 훅이 발생할 때는 도구가 이미 실행된 상태이므로, 기록된 파일, 실행된 명령, 전송된 네트워크 요청은 이미 효과가 발생한 상태입니다. OpenTelemetry 도구 스팬 및 분석 이벤트와 같은 텔레메트리도 훅이 실행되기 전에 원래 출력을 수집합니다. 도구 호출이 실행되기 전에 이를 막거나 수정하려면 대신 [PreToolUse](#pretooluse) 훅을 사용합니다.2199 `updatedToolOutput`은 Claude가 보는 내용만 변경합니다. 훅이 발생할 때는 도구가 이미 실행된 상태이므로, 기록된 파일, 실행된 명령, 전송된 네트워크 요청은 이미 적용되었습니다. OpenTelemetry 도구 스팬이나 분석 이벤트와 같은 텔레메트리도 훅이 실행되기 전에 원래 출력을 수집합니다. 도구 호출이 실행되기 전에 이를 차단하거나 수정하려면 대신 [PreToolUse](#pretooluse) 훅을 사용합니다.

2200 2200 

2201 대체 값은 도구의 출력 형태와 일치해야 합니다. 기본 제공 도구는 일반 문자열이 아닌 구조화된 객체를 반환합니다. 예를 들어 `Bash`는 `stdout`, `stderr`, `interrupted`, `isImage` 필드가 있는 객체를 반환합니다. 기본 제공 도구의 경우 도구의 출력 스키마와 일치하지 않는 값은 무시되고 원래 출력이 사용됩니다. MCP 도구 출력은 스키마 검증 없이 그대로 전달됩니다. Claude에게 필요한 오류 세부 정보를 제거하면 Claude가 잘못된 가정에 따라 작업을 진행할 수 있습니다.2201 대체 값은 도구의 출력 형태와 일치해야 합니다. 기본 제공 도구는 일반 문자열이 아닌 구조화된 객체를 반환합니다. 예를 들어 `Bash`는 `stdout`, `stderr`, `interrupted`, `isImage` 필드가 있는 객체를 반환합니다. 기본 제공 도구의 경우 도구의 출력 스키마와 일치하지 않는 값은 무시되고 원래 출력이 사용됩니다. MCP 도구 출력은 스키마 검증 없이 그대로 전달됩니다. Claude에 필요한 오류 세부 정보를 제거하면 Claude가 잘못된 가정에 따라 작업을 진행할 수 있습니다.

2202</Warning>2202</Warning>

2203 2203 

2204<h4 id="annotate-a-result-for-the-auto-mode-classifier">2204<h4 id="annotate-a-result-for-the-auto-mode-classifier">

2205 자동 모드 분류기를 위한 결과 주석 달기2205 Annotate a result for the auto mode classifier

2206</h4>2206</h4>

2207 2207 

2208`classifierContext`를 반환하면 도구 호출 결과에 대한 짧은 메모를 Claude가 아닌 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode) 분류기에 전송합니다. 분류기는 [도구 결과 자체를 전달받지 않으므로](/docs/ko/permission-modes#how-the-classifier-evaluates-actions), 이 필드는 분류기가 이후 작업을 검토하기 전에 호출이 반환한 내용에 대해 알려 줄 수 있는 공식적인 방법입니다. 이 필드는 Claude Code v2.1.236 이상이 필요합니다.2208`classifierContext`를 반환하면 도구 호출 결과에 대한 짧은 메모를 Claude가 아닌 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode) 분류기에 보낼 수 있습니다. 분류기는 [도구 결과 자체를 전달받지 않으므로](/docs/ko/permission-modes#how-the-classifier-evaluates-actions), 이 필드는 분류기가 이후 작업을 검토하기 전에 호출이 반환한 내용에 대해 알려 주는 공식적인 방법입니다. 이 필드에는 Claude Code v2.1.236 이상이 필요합니다.

2209 2209 

2210아래 예시는 쿼리 출력의 출처를 분류기에 알려 줍니다.2210아래 예시는 쿼리 출력의 출처를 분류기에 알려 줍니다.

2211 2211 


2218}2218}

2219```2219```

2220 2220 

2221분류기가 메모에 부여하는 가중치는 훅을 어디에서 구성했는지에 따라 달라집니다.2221분류기가 메모에 부여하는 비중은 훅을 구성한 위치에 따라 달라집니다.

2222 2222 

2223* **Claude Code에서 구성한 훅**: 설정 파일, 플러그인, 스킬, 에이전트 frontmatter에서 온 훅의 경우, 분류기는 메모를 검증되지 않은 애플리케이션 제공 컨텍스트로 취급합니다. 메모는 사용자 의도를 확립하지 않으며, 메모에서 사용자가 무언가를 승인하거나 요청했다고 주장하는 경우 분류기는 대화에 있는 사용자의 실제 메시지와 대조하여 그 주장을 확인합니다2223* **Claude Code에서 구성된 훅**: 설정 파일, 플러그인, 스킬, 에이전트 frontmatter의 훅에 대해 분류기는 메모를 검증되지 않은, 애플리케이션이 제공한 컨텍스트로 취급합니다. 메모는 사용자 의도를 확립하지 않으며, 메모가 사용자가 무언가를 승인했거나 요청했다고 주장하면 분류기는 그 주장을 대화 속 사용자의 실제 메시지와 대조합니다

2224* **프로세스 내 Agent SDK 콜백**: Claude Code를 내장한 애플리케이션이 훅을 [TypeScript SDK 콜백](/docs/ko/agent-sdk/hooks)으로 등록하고 실행 중인 세션에서 메모를 반환하는 경우, 분류기는 메모에 전달된 사용자 발언을 사용자 의도로 고려할 수 있습니다. 이러한 발언은 분류기가 사용자가 보낸 메시지로부터 수용할 수 있는 동의 요건을 충족할 수 있지만, 사용자 자신의 메시지로도 해제할 수 없는 차단을 해제하지는 않습니다. 세션이 재개된 후에는 Claude Code가 복원된 메모를 검증되지 않은 컨텍스트로 취급합니다. 두 그룹의 훅이 같은 호출에 주석을 다는 경우, 분류기는 결합된 메모를 검증되지 않은 것으로 취급합니다2224* **프로세스 내 Agent SDK 콜백**: Claude Code를 내장한 애플리케이션이 훅을 [TypeScript SDK 콜백](/docs/ko/agent-sdk/hooks)으로 등록하고 라이브 세션 중에 메모를 반환하면, 분류기는 메모에 전달된 사용자 진술을 사용자 의도로 고려할 수 있습니다. 이러한 진술은 분류기가 사용자가 보낸 메시지로부터 받아들일 동의 요건을 충족할 수 있지만, 사용자 자신의 메시지로도 해제할 수 없는 차단을 해제하지는 못합니다. 세션이 재개된 후에는 Claude Code가 복원된 메모를 검증되지 않은 컨텍스트로 취급합니다. 두 그룹의 훅이 같은 호출에 주석을 달면 분류기는 결합된 메모를 검증되지 않은 것으로 취급합니다

2225 2225 

2226Claude Code는 메모를 전달할 때 다음과 같은 제한을 적용합니다.2226Claude Code는 메모를 전달할 때 다음 제한을 적용합니다.

2227 2227 

2228* **길이**: Claude Code는 하나의 도구 호출에 대한 메모를 2,000자로 제한하고 나머지는 잘라냅니다. 이 제한은 해당 호출에 응답하는 모든 훅이 공유합니다2228* **길이**: Claude Code는 하나의 도구 호출에 대한 메모를 2,000자로 제한하고 나머지는 잘라 냅니다. 이 한도는 해당 호출에 응답하는 모든 훅이 공유합니다

2229* **동기 응답만 해당**: [백그라운드에서 실행되는](#run-hooks-in-the-background) 훅의 응답은 Claude Code가 도구 결과를 기록한 후에 도착하므로, Claude Code는 이러한 응답의 필드를 무시합니다2229* **동기 응답만 해당**: [백그라운드에서 실행되는](#run-hooks-in-the-background) 훅의 응답에 있는 이 필드는 무시됩니다. 해당 응답은 Claude Code가 도구 결과를 기록한 후에 도착하기 때문입니다

2230* **분류기가 기록하지 않는 호출**: 분류기의 트랜스크립트는 파일 읽기 및 검색과 같은 읽기 전용 조회를 생략합니다. Claude Code는 이러한 호출에 첨부된 메모를 삭제합니다2230* **분류기가 기록하지 않는 호출**: 분류기의 트랜스크립트에는 파일 읽기나 검색 같은 읽기 전용 조회가 포함되지 않습니다. Claude Code는 이러한 호출에 첨부된 메모를 삭제합니다

2231* **재작성과의 상호작용**: 메모가 `updatedToolOutput`으로 대체하는 출력을 설명하는 경우, 같은 훅 응답에서 두 필드를 모두 반환합니다. 해당 재작성이 거부되거나 다른 훅의 재작성이 이를 대체하면 Claude Code는 메모를 삭제합니다. 재작성 없이 반환한 메모는 다른 훅이 출력을 재작성하더라도 Claude Code가 전달합니다2231* **재작성과의 상호작용**: 메모가 `updatedToolOutput`으로 대체하는 출력을 설명하는 경우, 같은 훅 응답에서 두 필드를 모두 반환합니다. 해당 재작성이 거부되거나 다른 훅의 재작성이 이를 대체하면 Claude Code는 메모를 삭제합니다. 재작성 없이 반환한 메모는 다른 훅이 출력을 재작성하더라도 Claude Code가 전달합니다

2232 2232 

2233<Warning>2233<Warning>

2234 분류기는 `classifierContext`에 넣은 내용을 세션을 호스팅하는 애플리케이션이 제공한 정보로 읽으므로, 신뢰할 수 없는 도구 출력이나 제3자 텍스트를 이 필드에 복사하지 마세요. 메모는 출처에 대한 사실이나 해당 호출에 대한 사용자 발언처럼 이 호출 하나에 대한 짧은 주장으로 유지하고, 관련 없는 메시지나 일련의 이벤트를 전달하는 데 이 필드를 사용하지 마세요.2234 분류기는 `classifierContext`에 넣은 내용을 세션을 호스팅하는 애플리케이션의 정보로 읽으므로, 신뢰할 수 없는 도구 출력이나 서드파티 텍스트를 여기에 복사하지 마세요. 메모는 출처에 관한 사실이나 이에 대한 사용자 진술처럼 해당 호출 하나에 대한 짧은 주장으로 유지하고, 관련 없는 메시지나 일련의 이벤트를 전달하는 데 이 필드를 사용하지 마세요.

2235</Warning>2235</Warning>

2236 2236 

2237<h3 id="posttoolusefailure">2237<h3 id="posttoolusefailure">

2238 PostToolUseFailure2238 PostToolUseFailure

2239</h3>2239</h3>

2240 2240 

2241실행을 시작한 도구가 실패할 때 실행됩니다. 즉, 도구에서 오류가 발생했거나 MCP 도구가 오류 결과를 반환한 경우입니다. 실패를 로그에 기록하거나, 알림을 보내거나, Claude에게 수정 피드백을 제공하는 데 사용합니다.2241실행을 시작한 도구가 실패할 때 실행됩니다. 즉, 도구가 오류를 발생시켰거나 MCP 도구가 오류 결과를 반환한 경우입니다. 실패를 로그에 기록하거나, 알림을 보내거나, Claude에 수정 피드백을 제공하는 데 사용합니다.

2242 2242 

2243도구 이름으로 매칭하며, 값은 PreToolUse와 같습니다.2243도구 이름으로 매칭하며, PreToolUse와 같은 값을 사용합니다.

2244 2244 

2245<Note>2245<Note>

2246 이 이벤트는 실행 전에 거부된 도구 호출에서는 발생하지 않습니다. 여기에는 알 수 없는 도구 이름, 스키마 또는 도구별 검증에 실패한 입력, 권한 거부가 해당합니다. 검증 거부는 `tool_use_error` 결과로 반환되며 훅이 실행되기 전에 발생하므로 `PreToolUse`와 `PostToolUseFailure` 모두 발생하지 않습니다. 권한 거부는 `PreToolUse`를 발생시키지만 이 이벤트는 발생시키지 않습니다. [PermissionDenied](#permissiondenied)를 참조하세요.2246 이 이벤트는 실행 전에 거부된 도구 호출에 대해서는 발생하지 않습니다. 알 수 없는 도구 이름, 스키마 또는 도구별 검증에 실패한 입력, 권한 거부가 여기에 해당합니다. 검증 거부는 `tool_use_error` 결과로 반환되며 훅이 실행되기 전에 발생하므로, `PreToolUse`와 `PostToolUseFailure` 모두 발생하지 않습니다. 권한 거부는 `PreToolUse`를 발생시키지만 이 이벤트는 발생시키지 않습니다. [PermissionDenied](#permissiondenied)를 참조하세요.

2247</Note>2247</Note>

2248 2248 

2249<h4 id="posttoolusefailure-input">2249<h4 id="posttoolusefailure-input">

2250 PostToolUseFailure 입력2250 PostToolUseFailure input

2251</h4>2251</h4>

2252 2252 

2253PostToolUseFailure 훅은 PostToolUse와 같은 `tool_name` 및 `tool_input` 필드와 함께 최상위 필드로 오류 정보를 전달받습니다. MCP 도구의 경우 [`mcp_server`](#pretooluse-input) 객체도 전달받습니다. 예를 들어 실패한 `npm test` 명령은 다음을 전달할 수 있습니다.2253PostToolUseFailure 훅은 PostToolUse와 같은 `tool_name` 및 `tool_input` 필드를 전달받으며, 오류 정보는 최상위 필드로 함께 전달받습니다. MCP 도구의 경우 [`mcp_server`](#pretooluse-input) 객체도 전달받습니다. 예를 들어 실패한 `npm test` 명령은 다음을 전달할 수 있습니다.

2254 2254 

2255```json theme={null}2255```json theme={null}

2256{2256{


2274| 필드 | 설명 |2274| 필드 | 설명 |

2275| :- | :- |2275| :- | :- |

2276| `error` | 무엇이 잘못되었는지 설명하는 문자열입니다. 형식은 실패한 도구에 따라 다릅니다 |2276| `error` | 무엇이 잘못되었는지 설명하는 문자열입니다. 형식은 실패한 도구에 따라 다릅니다 |

2277| `is_interrupt` | 선택적 boolean입니다. 실패가 도구가 보고한 오류가 아니라 중단(abort)으로 Claude Code에 도달한 경우 true입니다. 실행 중인 도구를 취소하는 경우에는 이 훅이 발생하지 않으며, 대신 도구 결과에 중단 메시지가 포함됩니다 |2277| `is_interrupt` | 선택적 불리언입니다. 실패가 도구가 보고한 오류가 아닌 중단(abort)으로 Claude Code에 도달한 경우 true입니다. 실행 중인 도구를 취소해도 이 훅은 발생하지 않으며, 대신 도구 결과에 중단 메시지가 포함됩니다 |

2278| `duration_ms` | 선택 사항입니다. 밀리초 단위의 도구 실행 시간입니다. 권한 프롬프트와 PreToolUse 훅에서 소요된 시간은 제외됩니다 |2278| `duration_ms` | 선택 사항입니다. 밀리초 단위의 도구 실행 시간입니다. 권한 프롬프트와 PreToolUse 훅에 소요된 시간은 제외됩니다 |

2279 2279 

2280`error` 문자열은 일반적으로 Claude가 실패한 도구의 결과로 받는 텍스트와 같습니다. 형식은 도구와 실패 유형에 따라 다릅니다. 훅은 `tool_name`, `is_interrupt`, 첫 줄의 `Exit code N`을 기준으로 동작하도록 작성하고, 문자열의 나머지 부분은 안정적인 형식이 아닌 표시용 텍스트로 취급합니다.2280`error` 문자열은 일반적으로 Claude가 실패한 도구의 결과로 받는 텍스트와 같습니다. 형식은 도구와 실패 유형에 따라 다릅니다. 훅은 `tool_name`, `is_interrupt`, 그리고 첫 줄의 `Exit code N`을 기준으로 판단하고, 문자열의 나머지 부분은 안정적인 형식이 아닌 표시용 텍스트로 취급합니다.

2281 2281 

2282* Bash와 PowerShell의 경우, 실행된 후 종료된 명령은 첫 줄에 `Exit code N`을 생성하고, 그 뒤에 명령이 생성한 출력을 stdout과 stderr가 섞인 하나의 블록으로 생성합니다2282* Bash와 PowerShell의 경우, 실행 후 종료된 명령은 첫 줄에 `Exit code N`을 생성하고, 이어서 명령이 생성한 출력을 stdout과 stderr가 섞인 하나의 블록으로 생성합니다

2283* Claude Code가 셸 프로세스 자체를 시작할 수 없었던 경우, 페이로드에 종료 코드 줄 없이 실패 메시지만 포함될 수도 있습니다2283* Claude Code가 셸 프로세스 자체를 시작할 수 없었던 경우, 페이로드에 종료 코드 줄 없이 실패 메시지만 포함될 수도 있습니다

2284* Claude Code는 긴 문자열의 중간 부분을 `... [N characters truncated] ...` 마커를 기준으로 잘라내며, `Command timed out after 2m 0s`와 같은 자체 줄을 삽입할 수 있습니다2284* Claude Code는 긴 문자열의 가운데를 `... [N characters truncated] ...` 마커를 기준으로 잘라 내며, `Command timed out after 2m 0s`와 같은 자체 줄을 삽입할 수 있습니다

2285 2285 

2286<h4 id="posttoolusefailure-decision-control">2286<h4 id="posttoolusefailure-decision-control">

2287 PostToolUseFailure 결정 제어2287 PostToolUseFailure decision control

2288</h4>2288</h4>

2289 2289 

2290`PostToolUseFailure` 훅은 도구 실패 후 Claude에게 컨텍스트를 제공할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 훅 스크립트는 다음과 같은 이벤트별 필드를 반환할 수 있습니다.2290`PostToolUseFailure` 훅은 도구 실패 후 Claude에 컨텍스트를 제공할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도, 훅 스크립트는 다음과 같은 이벤트별 필드를 반환할 수 있습니다.

2291 2291 

2292| 필드 | 설명 |2292| 필드 | 설명 |

2293| :- | :- |2293| :- | :- |

2294| `additionalContext` | 오류와 함께 Claude의 컨텍스트에 추가되는 문자열입니다. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |2294| `additionalContext` | 오류와 함께 Claude의 컨텍스트에 추가되는 문자열입니다. [Claude에 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |

2295 2295 

2296```json theme={null}2296```json theme={null}

2297{2297{


2306 PostToolBatch2306 PostToolBatch

2307</h3>2307</h3>

2308 2308 

2309배치의 모든 도구 호출이 처리된 후, Claude Code가 모델에 다음 요청을 보내기 전에 한 번 실행됩니다. `PostToolUse`는 도구마다 한 번씩 발생하므로, Claude가 병렬 도구 호출을 수행하면 동시에 발생합니다. `PostToolBatch`는 전체 배치에 대해 정확히 한 번 발생하므로, 단일 도구가 아닌 실행된 도구 집합에 따라 달라지는 컨텍스트를 주입하기에 적합한 위치입니다. 이 이벤트에는 matcher가 없습니다.2309배치의 모든 도구 호출이 처리된 후, Claude Code가 모델에 다음 요청을 보내기 전에 한 번 실행됩니다. `PostToolUse`는 도구마다 한 번씩 발생하므로, Claude가 병렬 도구 호출을 하면 동시에 발생합니다. `PostToolBatch`는 전체 배치에 대해 정확히 한 번 발생하므로, 단일 도구가 아닌 실행된 도구 집합에 따라 달라지는 컨텍스트를 주입하기에 적합합니다. 이 이벤트에는 matcher가 없습니다.

2310 2310 

2311<h4 id="posttoolbatch-input">2311<h4 id="posttoolbatch-input">

2312 PostToolBatch 입력2312 PostToolBatch input

2313</h4>2313</h4>

2314 2314 

2315[공통 입력 필드](#common-input-fields) 외에도 PostToolBatch 훅은 배치의 모든 도구 호출을 설명하는 배열인 `tool_calls`를 전달받습니다.2315[공통 입력 필드](#common-input-fields) 외에도, PostToolBatch 훅은 배치의 모든 도구 호출을 설명하는 배열인 `tool_calls`를 전달받습니다.

2316 2316 

2317```json theme={null}2317```json theme={null}

2318{2318{


2338}2338}

2339```2339```

2340 2340 

2341`tool_response`에는 모델이 해당 `tool_result` 블록에서 받는 것과 같은 내용이 포함됩니다. 값은 도구가 내보낸 그대로의 직렬화된 문자열 또는 콘텐츠 블록 배열입니다. `Read`의 경우 원시 파일 내용이 아니라 줄 번호가 앞에 붙은 텍스트입니다. 응답이 클 수 있으므로 필요한 필드만 파싱합니다.2341`tool_response`에는 모델이 해당 `tool_result` 블록에서 받는 것과 같은 내용이 포함됩니다. 값은 도구가 내보낸 그대로의 직렬화된 문자열 또는 콘텐츠 블록 배열입니다. `Read`의 경우 원시 파일 내용이 아니라 줄 번호가 앞에 붙은 텍스트를 의미합니다. 응답이 클 수 있으므로 필요한 필드만 파싱합니다.

2342 2342 

2343<Note>2343<Note>

2344 `tool_response`의 형태는 `PostToolUse`의 형태와 다릅니다. `PostToolUse`는 도구의 구조화된 `Output` 객체(예: `Write`의 경우 `{filePath: "...", type: "create"}`)를 전달하고, `PostToolBatch`는 모델이 보는 직렬화된 `tool_result` 콘텐츠를 전달합니다.2344 `tool_response`의 형태는 `PostToolUse`의 것과 다릅니다. `PostToolUse`는 `Write`의 `{filePath: "...", type: "create"}`와 같은 도구의 구조화된 `Output` 객체를 전달하고, `PostToolBatch`는 모델이 보는 직렬화된 `tool_result` 내용을 전달합니다.

2345</Note>2345</Note>

2346 2346 

2347<h4 id="posttoolbatch-decision-control">2347<h4 id="posttoolbatch-decision-control">

2348 PostToolBatch 결정 제어2348 PostToolBatch decision control

2349</h4>2349</h4>

2350 2350 

2351`PostToolBatch` 훅은 Claude를 위한 컨텍스트를 주입할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 훅 스크립트는 다음과 같은 이벤트별 필드를 반환할 수 있습니다.2351`PostToolBatch` 훅은 Claude를 위한 컨텍스트를 주입할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도, 훅 스크립트는 다음과 같은 이벤트별 필드를 반환할 수 있습니다.

2352 2352 

2353| 필드 | 설명 |2353| 필드 | 설명 |

2354| :- | :- |2354| :- | :- |

2355| `additionalContext` | 다음 모델 호출 전에 한 번 주입되는 컨텍스트 문자열입니다. 전달 방식, 포함할 내용, 재개된 세션에서 이전 값을 처리하는 방식은 [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |2355| `additionalContext` | 다음 모델 호출 전에 한 번 주입되는 컨텍스트 문자열입니다. 전달 세부 사항, 포함할 내용, 재개된 세션이 이전 값을 처리하는 방식은 [Claude에 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |

2356 2356 

2357```json theme={null}2357```json theme={null}

2358{2358{


2363}2363}

2364```2364```

2365 2365 

2366`decision: "block"` 또는 `continue: false`를 반환하면 다음 모델 호출 전에 에이전틱 루프가 중지됩니다. 차단 메시지는 JSON의 `reason` 또는 `stopReason`에서 가져오거나, 종료 코드 2인 경우 stderr에서 가져옵니다. 이 메시지는 트랜스크립트에 경고로 표시되며 대화에 남아 있으므로, 대화가 계속되면 Claude가 이를 보게 됩니다.2366`decision: "block"` 또는 `continue: false`를 반환하면 다음 모델 호출 전에 에이전틱 루프가 중지됩니다. 차단 메시지는 JSON의 `reason` 또는 `stopReason`에서, 또는 종료 코드 2의 경우 stderr에서 가져옵니다. 이 메시지는 트랜스크립트에 경고로 표시되며 대화에 남아 있으므로, 대화가 계속되면 Claude가 이를 보게 됩니다.

2367 2367 

2368<h3 id="permissiondenied">2368<h3 id="permissiondenied">

2369 PermissionDenied2369 PermissionDenied

2370</h3>2370</h3>

2371 2371 

2372[자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)가 도구 호출을 거부할 때 실행됩니다. 여기에는 [자동 모드와 별개인 안전 검사가 분류기 자체의 요청을 거부했거나](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action) 분류기의 응답을 파싱할 수 없어서 분류기 판정 없이 거부한 경우도 포함됩니다. 이 훅은 자동 모드에서만 발생합니다. 사용자가 권한 대화 상자에서 직접 거부하거나, `PreToolUse` 훅이 호출을 차단하거나, `deny` 규칙이 매칭되는 경우에는 실행되지 않습니다. 거부를 로그에 기록하거나, 구성을 조정하거나, 모델에게 도구 호출을 재시도해도 된다고 알리는 데 사용합니다.2372[자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)가 도구 호출을 거부할 때 실행됩니다. [자동 모드와 별개인 안전 검사가 분류기 자체의 요청을 거부](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action)했거나 분류기의 응답을 파싱할 수 없어서 분류기 판정 없이 거부하는 경우도 포함됩니다. 이 훅은 자동 모드에서만 발생합니다. 사용자가 권한 대화 상자를 수동으로 거부하거나, `PreToolUse` 훅이 호출을 차단하거나, `deny` 규칙이 매칭되는 경우에는 실행되지 않습니다. 거부를 로그에 기록하거나, 구성을 조정하거나, 모델에 도구 호출을 재시도해도 된다고 알리는 데 사용합니다.

2373 2373 

2374도구 이름으로 매칭하며, 값은 PreToolUse와 같습니다.2374도구 이름으로 매칭하며, PreToolUse와 같은 값을 사용합니다.

2375 2375 

2376<h4 id="permissiondenied-input">2376<h4 id="permissiondenied-input">

2377 PermissionDenied 입력2377 PermissionDenied input

2378</h4>2378</h4>

2379 2379 

2380[공통 입력 필드](#common-input-fields) 외에도 PermissionDenied 훅은 `tool_name`, `tool_input`, `tool_use_id`, `reason`을 전달받습니다. MCP 도구의 경우 [`mcp_server`](#pretooluse-input) 객체도 전달받습니다.2380[공통 입력 필드](#common-input-fields) 외에도, PermissionDenied 훅은 `tool_name`, `tool_input`, `tool_use_id`, `reason`을 전달받습니다. MCP 도구의 경우 [`mcp_server`](#pretooluse-input) 객체도 전달받습니다.

2381 2381 

2382```json theme={null}2382```json theme={null}

2383{2383{


2398 2398 

2399| 필드 | 설명 |2399| 필드 | 설명 |

2400| :- | :- |2400| :- | :- |

2401| `reason` | 거부 사유입니다. 분류기 판정의 경우 대부분의 세션에서 `[Data Exfiltration]`과 같이 매칭된 규칙 이름을 대괄호 안에 표시합니다. 다른 형식은 [거부 검토](/docs/ko/auto-mode-config#review-denials)를 참조하세요. [판정 없는 거부](#permissiondenied-decision-control)의 경우 `Auto mode could not evaluate this action and is blocking it for safety`로 시작합니다. 분류기 모델을 사용할 수 없어서 거부된 경우 고정 텍스트 `Classifier unavailable`입니다 |2401| `reason` | 거부 사유입니다. 분류기 판정의 경우 대부분의 세션에서 `[Data Exfiltration]`처럼 매칭된 규칙을 대괄호 안에 표시합니다. 다른 형식은 [거부 검토](/docs/ko/auto-mode-config#review-denials)를 참조하세요. [판정 없는 거부](#permissiondenied-decision-control)의 경우 `Auto mode could not evaluate this action and is blocking it for safety`로 시작합니다. 분류기 모델을 사용할 수 없어서 거부된 경우 고정 텍스트 `Classifier unavailable`입니다 |

2402 2402 

2403<h4 id="permissiondenied-decision-control">2403<h4 id="permissiondenied-decision-control">

2404 PermissionDenied 결정 제어2404 PermissionDenied decision control

2405</h4>2405</h4>

2406 2406 

2407PermissionDenied 훅은 모델에게 거부된 도구 호출을 재시도해도 된다고 알릴 수 있습니다. `hookSpecificOutput.retry`를 `true`로 설정한 JSON 객체를 반환합니다.2407PermissionDenied 훅은 거부된 도구 호출을 모델이 재시도해도 된다고 알릴 수 있습니다. `hookSpecificOutput.retry`를 `true`로 설정한 JSON 객체를 반환합니다.

2408 2408 

2409```json theme={null}2409```json theme={null}

2410{2410{


2415}2415}

2416```2416```

2417 2417 

2418`retry`가 `true`이면 Claude Code는 모델에게 도구 호출을 재시도해도 된다고 알리는 메시지를 대화에 추가합니다. Claude Code가 거부 자체를 번복하지는 않습니다. 훅이 JSON을 반환하지 않거나 `retry: false`를 반환하면 거부가 유지되고 모델은 원래의 거부 메시지를 받습니다.2418`retry`가 `true`이면 Claude Code는 모델에 도구 호출을 재시도해도 된다고 알리는 메시지를 대화에 추가합니다. Claude Code가 거부 자체를 취소하지는 않습니다. 훅이 JSON을 반환하지 않거나 `retry: false`를 반환하면 거부가 유지되고 모델은 원래의 거부 메시지를 받습니다.

2419 2419 

2420분류기가 [작업에 대한 판정을 내리지 못한](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action) 경우, 즉 분류기의 응답을 파싱할 수 없었거나 자동 모드와 별개인 안전 검사가 분류기 자체의 요청을 거부한 경우 Claude Code는 `retry: true`를 무시합니다. 이러한 거부의 경우 Claude Code는 이미 거부 메시지에서 모델에게 나중에 재시도할지 다음으로 넘어갈지 알려 줍니다.2420분류기가 [해당 작업에 대해 판정을 내리지 못한](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action) 경우, 즉 응답을 파싱할 수 없었거나 자동 모드와 별개인 안전 검사가 분류기 자체의 요청을 거부한 경우에는 Claude Code가 `retry: true`를 무시합니다. 이러한 거부에 대해서는 Claude Code가 이미 거부 메시지에서 나중에 재시도할지 아니면 다른 작업으로 넘어갈지를 모델에 알려 줍니다.

2421 2421 

2422<h3 id="notification">2422<h3 id="notification">

2423 Notification2423 Notification


2425 2425 

2426Claude Code가 알림을 보낼 때 실행됩니다. 알림 유형으로 매칭합니다. 모든 알림 유형에 대해 훅을 실행하려면 matcher를 생략합니다.2426Claude Code가 알림을 보낼 때 실행됩니다. 알림 유형으로 매칭합니다. 모든 알림 유형에 대해 훅을 실행하려면 matcher를 생략합니다.

2427 2427 

2428데스크톱 알림을 꺼 두어도 이 훅 이벤트는 전달됩니다. `notifications_disabled`를 포함한 `preferredNotifChannel` 설정은 사용자에게 알리는 방식만 변경할 뿐 훅의 실행 여부에는 영향을 주지 않습니다.2428데스크톱 알림을 꺼 두어도 이러한 훅 이벤트는 전달됩니다. `notifications_disabled`를 포함한 `preferredNotifChannel` 설정은 사용자에게 알리는 방식만 바꿀 뿐, 훅 실행 여부에는 영향을 주지 않습니다.

2429 2429 

2430| Matcher | 발생 시점 |2430| Matcher | 발생 시점 |

2431| :- | :- |2431| :- | :- |

2432| `permission_prompt` | Claude가 도구 사용 또는 샌드박스 처리된 명령의 [네트워크 요청](/docs/ko/sandboxing#network-isolation)에 대한 사용자 승인을 필요로 하고, 프롬프트가 약 6초 동안 대기한 경우 |2432| `permission_prompt` | Claude가 도구 사용 또는 샌드박스 처리된 명령의 [네트워크 요청](/docs/ko/sandboxing#network-isolation)에 대한 사용자 승인을 필요로 하며, 프롬프트가 약 6초 동안 대기한 경우 |

2433| `idle_prompt` | Claude가 약 60초 전에 응답을 마쳤고 그 이후 사용자가 입력하지 않은 경우 |2433| `idle_prompt` | Claude가 약 60초 전에 응답을 마쳤고 그 이후 사용자가 입력하지 않은 경우 |

2434| `auth_success` | 인증이 완료된 경우 |2434| `auth_success` | 인증이 완료된 경우 |

2435| `elicitation_dialog` | MCP 서버가 elicitation 양식을 열었고 사용자가 약 6초 동안 입력하지 않은 경우 |2435| `elicitation_dialog` | MCP 서버가 elicitation 양식을 열었고 사용자가 약 6초 동안 입력하지 않은 경우 |

2436| `elicitation_url_dialog` | MCP 서버가 브라우저 URL을 열도록 요청했고 사용자가 약 6초 동안 입력하지 않은 경우 |2436| `elicitation_url_dialog` | MCP 서버가 브라우저 URL을 열도록 요청했고 사용자가 약 6초 동안 입력하지 않은 경우 |

2437| `elicitation_complete` | MCP 서버가 [URL 모드 elicitation](#elicitation-input)이 완료되었다고 보고한 경우 |2437| `elicitation_complete` | MCP 서버가 [URL 모드 elicitation](#elicitation-input)이 완료되었다고 보고한 경우 |

2438| `elicitation_response` | MCP elicitation 응답이 서버로 다시 전송된 경우 |2438| `elicitation_response` | MCP elicitation 응답이 서버로 다시 전송된 경우 |

2439| `agent_needs_input` | 터미널에서 [에이전트 뷰](/docs/ko/agent-view)가 열려 있는 동안 백그라운드 세션이 사용자 입력을 기다리기 시작한 경우. 터미널 세션에서 [에이전트 팀 팀원의 터미널 설정 질문](/docs/ko/agent-teams#choose-a-display-mode)이나 [분류기 요청 요금](/docs/ko/auto-mode-classifier-billing)에 대한 자동 모드 안내를 표시하고 사용자가 약 6초 동안 입력하지 않은 경우에도 발생합니다 |2439| `agent_needs_input` | 터미널에서 [에이전트 뷰](/docs/ko/agent-view)가 열려 있는 동안 백그라운드 세션이 사용자 입력을 기다리기 시작한 경우. 터미널 세션이 [에이전트 팀 팀원의 터미널 설정 질문](/docs/ko/agent-teams#choose-a-display-mode)이나 [분류기 요청 요금](/docs/ko/auto-mode-classifier-billing)에 대한 자동 모드 안내를 표시했고 사용자가 약 6초 동안 입력하지 않은 경우에도 발생합니다 |

2440| `agent_completed` | 백그라운드 세션이 완료되거나 실패한 경우. 터미널에서 [에이전트 뷰](/docs/ko/agent-view)가 열려 있는 동안에만 발생합니다 |2440| `agent_completed` | 백그라운드 세션이 완료되거나 실패한 경우. 터미널에서 [에이전트 뷰](/docs/ko/agent-view)가 열려 있을 때만 발생합니다 |

2441| `quota_auto_resume_fired` | claude.ai 사용 한도로 일시 중지된 작업을 Claude Code가 계속 진행하는 경우. 한도가 재설정될 때 진행하거나, 대기 중에 Claude Code에서 사용량 크레딧 추가, 플랜 업그레이드, 모델 전환 등의 작업으로 사용량을 다시 사용할 수 있게 되면 더 일찍 진행합니다. 단, [모델 설정 예외](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset)가 적용됩니다 |2441| `quota_auto_resume_fired` | claude.ai 사용 한도로 일시 중지된 작업을 Claude Code가 계속하는 경우. 한도가 재설정될 때, 또는 대기 중에 사용량 크레딧 추가, 플랜 업그레이드, 모델 전환처럼 Claude Code에서 수행한 작업으로 사용량을 다시 사용할 수 있게 되면 더 일찍 계속하며, [모델 설정 예외](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset)가 적용됩니다 |

2442| `quota_auto_resume_stale` | 컴퓨터가 약 30분 이상 절전 상태인 동안 claude.ai 사용 한도가 재설정된 경우. Claude Code는 계속 진행하지 않고 사용자가 `Enter`를 누를 때까지 기다립니다. 절전 시간이 더 짧으면 계속 진행하고 대신 `quota_auto_resume_fired`를 발생시킵니다 |2442| `quota_auto_resume_stale` | 컴퓨터가 약 30분 이상 절전 상태인 동안 claude.ai 사용 한도가 재설정된 경우. Claude Code는 계속하지 않고 사용자가 `Enter`를 누를 때까지 기다립니다. 더 짧게 절전한 후에는 계속 진행하며 대신 `quota_auto_resume_fired`를 발생시킵니다 |

2443| `quota_auto_resume_disabled` | Claude Code가 작업을 계속하지 않고 claude.ai 사용 한도 대기를 종료하는 경우. 즉, Claude Code가 스스로 시작한 대기 중에 [`autoContinueAtUsageLimit`](/docs/ko/settings-reference#autocontinueatusagelimit)이 꺼졌거나 재설정 시점이 24시간 이상 뒤로 밀린 경우, 계속 진행한 작업이 계속 한도에 도달한 경우, 또는 계속 진행이 모델에 도달하기 전에 차단된 경우입니다. 사용자가 `Esc` 또는 `Ctrl+C`를 누르거나 **Don't continue automatically**를 선택한 경우에는 발생하지 않습니다 |2443| `quota_auto_resume_disabled` | Claude Code가 작업을 계속하지 않고 claude.ai 사용 한도 대기를 종료한 경우. [`autoContinueAtUsageLimit`](/docs/ko/settings-reference#autocontinueatusagelimit)이 꺼졌거나, Claude Code가 스스로 시작한 대기 중에 재설정 시각이 24시간 이상 뒤로 밀렸거나, 계속된 작업이 반복해서 한도에 도달했거나, 계속 진행이 모델에 도달하기 전에 차단된 경우입니다. 사용자가 `Esc` 또는 `Ctrl+C`를 누르거나 **Don't continue automatically**를 선택한 경우에는 발생하지 않습니다 |

2444 2444 

2445`quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled` 유형은 Claude Code v2.1.234 이상이 필요합니다.2445`quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled` 유형에는 Claude Code v2.1.234 이상이 필요합니다.

2446 2446 

2447터미널 세션에서 샌드박스 처리된 명령의 네트워크 요청에 대한 `permission_prompt`는 Claude Code v2.1.246 이상이 필요합니다.2447터미널 세션에서 샌드박스 처리된 명령의 네트워크 요청에 대한 `permission_prompt`에는 Claude Code v2.1.246 이상이 필요합니다.

2448 2448 

2449팀원의 터미널 설정 질문에 대한 `agent_needs_input`은 Claude Code v2.1.248 이상이 필요합니다.2449팀원의 터미널 설정 질문에 대한 `agent_needs_input`에는 Claude Code v2.1.248 이상이 필요합니다.

2450 2450 

2451<Note>2451<Note>

2452 `permission_prompt`, `idle_prompt`, `elicitation_dialog`, `elicitation_url_dialog` 유형은 데스크톱 알림과 타이밍을 공유하므로, 터미널 세션에서는 사용자가 터미널에서 자리를 비운 것으로 보일 때만 표시됩니다.2452 `permission_prompt`, `idle_prompt`, `elicitation_dialog`, `elicitation_url_dialog` 유형은 데스크톱 알림과 타이밍을 공유하므로, 터미널 세션에서는 사용자가 터미널을 떠나 있는 것으로 보일 때만 표시됩니다.

2453 2453 

2454 * `permission_prompt`는 사용자가 약 6초 동안 입력하지 않으면 발생합니다. 타이머는 권한 프롬프트가 나타날 때 시작되며, 키를 입력할 때마다 연기됩니다. Claude가 도구 사용 권한을 요청할 때 즉시 훅을 실행하려면 대신 [PermissionRequest](#permissionrequest)를 사용합니다.2454 * `permission_prompt`는 사용자가 약 6초 동안 입력하지 않으면 발생합니다. 타이머는 권한 프롬프트가 나타날 때 시작되며, 키를 누를 때마다 지연됩니다. Claude가 도구 사용 권한을 요청할 때 즉시 훅을 실행하려면 대신 [PermissionRequest](#permissionrequest)를 사용합니다.

2455 * `idle_prompt`는 Claude가 응답을 마친 후 약 60초가 지나면 발생하며, 그 이후 사용자가 입력하지 않은 경우에만 발생합니다. Claude Code는 claude.ai 사용 한도가 재설정되기를 기다리는 동안에는 `idle_prompt`를 보내지 않습니다. 대기가 자체적으로 종료되면 대신 `quota_auto_resume_*` 유형 중 하나가 발생합니다.2455 * `idle_prompt`는 Claude가 응답을 마친 후 약 60초 뒤에 발생하며, 그 이후 사용자가 입력하지 않았고 백그라운드 [서브에이전트](/docs/ko/sub-agents) 같은 백그라운드 에이전트가 실행 중이지 않은 경우에만 발생합니다. Claude Code는 claude.ai 사용 한도가 재설정되기를 기다리는 동안에는 `idle_prompt`를 보내지 않습니다. 대기가 자체적으로 끝나면 대신 `quota_auto_resume_*` 유형 중 하나가 발생합니다.

2456 * elicitation 양식의 경우 `elicitation_dialog`, 브라우저 URL 요청의 경우 `elicitation_url_dialog`가 사용자가 약 6초 동안 입력하지 않으면 발생합니다. 둘 다 `permission_prompt`와 같은 6초 기준을 공유합니다. 타이머는 대화 상자가 나타날 때 시작되며, 키를 입력할 때마다 연기됩니다.2456 * elicitation 양식에 대한 `elicitation_dialog` 또는 브라우저 URL 요청에 대한 `elicitation_url_dialog`는 사용자가 약 6초 동안 입력하지 않으면 발생합니다. 둘 다 `permission_prompt`와 같은 6초 조건을 공유합니다. 타이머는 대화 상자가 나타날 때 시작되며, 키를 누를 때마다 지연됩니다.

2457 2457 

2458 다른 대화 상자가 화면에 있는 동안 도착한 권한 요청이나 elicitation도 같은 6초 기준을 유지하며, 요청이 도착한 시점부터 시간을 잽니다. 요청이 아직 열린 대화 상자 뒤에서 대기하는 동안에도 알림이 전달될 수 있습니다.2458 다른 대화 상자가 화면에 있는 동안 도착한 권한 요청이나 elicitation도 요청이 도착한 시점부터 계산되는 같은 6초 조건을 유지합니다. 요청이 아직 열린 대화 상자 뒤에서 대기하는 동안에도 알림이 사용자에게 전달될 수 있습니다.

2459</Note>2459</Note>

2460 2460 

2461Claude Code가 권한 요청을 Agent SDK의 [`canUseTool` 콜백](/docs/ko/agent-sdk/user-input)으로 보내는 세션에서는 `permission_prompt`의 타이밍이 다릅니다. Claude Desktop과 VS Code 확장 프로그램이 이 방식으로 Claude Code를 호스팅합니다.2461Claude Code가 권한 요청을 Agent SDK의 [`canUseTool` 콜백](/docs/ko/agent-sdk/user-input)으로 보내는 세션에서는 `permission_prompt`의 타이밍이 다릅니다. Claude Desktop과 VS Code 확장 프로그램이 이 방식으로 Claude Code를 호스팅합니다.

2462 2462 

2463* `permission_prompt`는 Claude가 권한을 요청한 후 약 6초가 지나면 발생합니다. 사용자가 입력하는 동안에도 Claude Code는 이를 연기하지 않습니다.2463* `permission_prompt`는 Claude가 권한을 요청한 후 약 6초 뒤에 발생합니다. 사용자가 입력하는 동안에도 Claude Code는 이를 지연하지 않습니다.

2464* 사용자나 [PermissionRequest](#permissionrequest) 훅이 더 일찍 응답하면 Claude Code는 `permission_prompt`를 실행하지 않습니다.2464* 사용자 또는 [PermissionRequest](#permissionrequest) 훅이 그보다 먼저 응답하면 Claude Code는 `permission_prompt`를 실행하지 않습니다.

2465* 이러한 세션에서 `permission_prompt`를 끄려면 [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/ko/env-vars)를 `1`로 설정합니다.2465* 이러한 세션에서 `permission_prompt`를 끄려면 [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/ko/env-vars)를 `1`로 설정합니다.

2466 2466 

2467v2.1.233 이전에는 이러한 세션에서 `permission_prompt`가 발생하지 않았습니다.2467v2.1.233 이전에는 이러한 세션에서 `permission_prompt`가 발생하지 않았습니다.

2468 2468 

2469알림 유형에 따라 서로 다른 핸들러를 실행하려면 별도의 matcher를 사용합니다. 다음 구성은 Claude가 권한 승인을 필요로 할 때 권한 전용 알림 스크립트를 트리거하고, Claude가 유휴 상태일 때 다른 알림을 트리거합니다.2469알림 유형에 따라 다른 핸들러를 실행하려면 별도의 matcher를 사용합니다. 이 구성은 Claude에 권한 승인이 필요할 때 권한 전용 알림 스크립트를 실행하고, Claude가 유휴 상태일 때 다른 알림을 실행합니다.

2470 2470 

2471```json theme={null}2471```json theme={null}

2472{2472{


2496```2496```

2497 2497 

2498<h4 id="notification-input">2498<h4 id="notification-input">

2499 Notification 입력2499 Notification input

2500</h4>2500</h4>

2501 2501 

2502[공통 입력 필드](#common-input-fields) 외에도 Notification 훅은 알림 텍스트가 담긴 `message`, 선택적 `title`, 발생한 유형을 나타내는 `notification_type`을 전달받습니다.2502[공통 입력 필드](#common-input-fields) 외에도, Notification 훅은 알림 텍스트가 담긴 `message`, 선택적 `title`, 발생한 유형을 나타내는 `notification_type`을 전달받습니다.

2503 2503 

2504```json theme={null}2504```json theme={null}

2505{2505{


2513}2513}

2514```2514```

2515 2515 

2516Notification 훅은 알림을 차단하거나 수정할 수 없습니다. Claude Code는 이 훅의 `systemMessage` 및 `continue` 필드를 삭제하지만, 데스크톱 알림 예시가 사용하는 [`terminalSequence`](#emit-terminal-notifications)는 계속 내보냅니다. Notification 훅은 알림을 외부 서비스로 전달하는 것과 같은 부수 효과를 위한 것입니다.2516Notification 훅은 알림을 차단하거나 수정할 수 없습니다. Claude Code는 이 훅의 `systemMessage` 및 `continue` 필드를 삭제하지만, 데스크톱 알림 예시가 사용하는 [`terminalSequence`](#emit-terminal-notifications)는 여전히 내보냅니다. Notification 훅은 알림을 외부 서비스로 전달하는 것과 같은 부수 효과를 위한 것입니다.

2517 2517 

2518<h3 id="subagentstart">2518<h3 id="subagentstart">

2519 SubagentStart2519 SubagentStart

2520</h3>2520</h3>

2521 2521 

2522Claude가 Agent 도구로 서브에이전트를 생성할 때, Claude가 [서브에이전트를 재개](/docs/ko/sub-agents#resume-subagents)할 때, 그리고 프로세스 내 [에이전트 팀](/docs/ko/agent-teams) 팀원이 새 메시지를 처리할 때마다 실행됩니다. 에이전트 유형 이름으로 필터링하는 matcher를 지원합니다. 기본 제공 에이전트의 경우 `general-purpose`, `Explore`, `Plan`과 같은 에이전트 이름입니다. [사용자 정의 서브에이전트](/docs/ko/sub-agents)의 경우 파일 이름이 아니라 에이전트 frontmatter의 `name` 필드입니다.2522Claude가 Agent 도구로 서브에이전트를 생성할 때, Claude가 [서브에이전트를 재개](/docs/ko/sub-agents#resume-subagents)할 때, 그리고 프로세스 내 [에이전트 팀](/docs/ko/agent-teams) 팀원이 새 메시지를 처리할 때마다 실행됩니다. 에이전트 유형 이름으로 필터링하는 matcher를 지원합니다. 기본 제공 에이전트의 경우 `general-purpose`, `Explore`, `Plan` 같은 에이전트 이름입니다. [사용자 정의 서브에이전트](/docs/ko/sub-agents)의 경우 파일 이름이 아니라 에이전트 frontmatter의 `name` 필드입니다.

2523 2523 

2524[플러그인](/docs/ko/plugins/overview)으로 제공되는 서브에이전트의 경우 에이전트 유형은 단순한 frontmatter 이름이 아니라 `my-plugin:reviewer`와 같은 플러그인 범위 식별자입니다. 콜론이 있으면 플러그인 범위 이름이 정규식 경로로 처리되므로, 정확히 매칭하려면 matcher를 `^`와 `$`로 고정합니다: `^my-plugin:reviewer$`.2524[플러그인](/docs/ko/plugins/overview)이 제공하는 서브에이전트의 경우, 에이전트 유형은 frontmatter의 이름만이 아니라 `my-plugin:reviewer`와 같은 플러그인 범위 식별자입니다. 콜론 때문에 플러그인 범위 이름은 정규식 경로로 처리되므로, 정확히 매칭하려면 matcher를 `^`와 `$`로 고정합니다. 예: `^my-plugin:reviewer$`.

2525 2525 

2526<h4 id="subagentstart-input">2526<h4 id="subagentstart-input">

2527 SubagentStart 입력2527 SubagentStart input

2528</h4>2528</h4>

2529 2529 

2530[공통 입력 필드](#common-input-fields) 외에도 SubagentStart 훅은 서브에이전트의 고유 식별자가 담긴 `agent_id`와 matcher가 필터링하는 에이전트 이름이 담긴 `agent_type`을 전달받습니다.2530[공통 입력 필드](#common-input-fields) 외에도, SubagentStart 훅은 서브에이전트의 고유 식별자가 담긴 `agent_id`와 matcher가 필터링하는 에이전트 이름이 담긴 `agent_type`을 전달받습니다.

2531 2531 

2532```json theme={null}2532```json theme={null}

2533{2533{


2544 2544 

2545| 필드 | 설명 |2545| 필드 | 설명 |

2546| :- | :- |2546| :- | :- |

2547| `additionalContext` | 서브에이전트의 대화 시작 시, 첫 프롬프트 전에 서브에이전트의 컨텍스트에 추가되는 문자열입니다. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |2547| `additionalContext` | 서브에이전트의 대화 시작 시, 첫 프롬프트 전에 서브에이전트의 컨텍스트에 추가되는 문자열입니다. [Claude에 컨텍스트 추가](#add-context-for-claude)를 참조하세요 |

2548 2548 

2549```json theme={null}2549```json theme={null}

2550{2550{


2555}2555}

2556```2556```

2557 2557 

2558같은 서브에이전트에 대해 훅이 다시 실행되면, Claude Code는 서브에이전트의 컨텍스트에 이전 실행의 사본이 아직 없는 경우에만 반환된 컨텍스트를 주입합니다. 시작 시 주입된 사본은 그대로 유지되므로 서브에이전트의 [프롬프트 캐시](/docs/ko/prompt-caching#subagents-and-the-cache)가 손상되지 않습니다. [자동 압축](/docs/ko/sub-agents#auto-compaction)으로 해당 사본이 삭제된 후에는 Claude Code가 다음 실행의 컨텍스트를 다시 주입합니다.2558같은 서브에이전트에 대해 훅이 다시 실행되면, Claude Code는 서브에이전트의 컨텍스트에 이전 실행의 사본이 아직 없는 경우에만 반환된 컨텍스트를 주입합니다. 시작 시 주입된 사본은 그대로 유지되므로 서브에이전트의 [프롬프트 캐시](/docs/ko/prompt-caching#subagents-and-the-cache)가 손상되지 않습니다. [자동 압축](/docs/ko/sub-agents#auto-compaction)이 해당 사본을 삭제한 후에는 Claude Code가 다음 실행의 컨텍스트를 다시 주입합니다.

2559 2559 

2560<h3 id="subagentstop">2560<h3 id="subagentstop">

2561 SubagentStop2561 SubagentStop

2562</h3>2562</h3>

2563 2563 

2564Claude Code 서브에이전트가 응답을 마쳤을 때 실행됩니다. 에이전트 유형으로 매칭하며, 값은 SubagentStart와 같습니다.2564Claude Code 서브에이전트가 응답을 마쳤을 때 실행됩니다. 에이전트 유형으로 매칭하며, SubagentStart와 같은 값을 사용합니다.

2565 2565 

2566<h4 id="subagentstop-input">2566<h4 id="subagentstop-input">

2567 SubagentStop 입력2567 SubagentStop input

2568</h4>2568</h4>

2569 2569 

2570[공통 입력 필드](#common-input-fields) 외에도 SubagentStop 훅은 `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path`, `last_assistant_message`를 전달받습니다. `agent_type` 필드는 matcher 필터링에 사용되는 값입니다. `transcript_path`는 메인 세션의 트랜스크립트이고, `agent_transcript_path`는 중첩된 `subagents/` 폴더에 저장된 서브에이전트 자체의 트랜스크립트입니다. `last_assistant_message` 필드에는 서브에이전트의 최종 응답 텍스트 내용이 포함되므로, 훅은 트랜스크립트 파일을 파싱하지 않고도 이에 접근할 수 있습니다.2570[공통 입력 필드](#common-input-fields) 외에도, SubagentStop 훅은 `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path`, `last_assistant_message`를 전달받습니다. `agent_type` 필드는 matcher 필터링에 사용되는 값입니다. `transcript_path`는 메인 세션의 트랜스크립트이고, `agent_transcript_path`는 중첩된 `subagents/` 폴더에 저장된 서브에이전트 자체의 트랜스크립트입니다. `last_assistant_message` 필드에는 서브에이전트의 최종 응답 텍스트 내용이 포함되므로, 훅은 트랜스크립트 파일을 파싱하지 않고도 이에 접근할 수 있습니다.

2571 2571 

2572모든 SubagentStop 이벤트가 Claude가 생성한 서브에이전트에서 오는 것은 아닙니다. Claude Code는 [프롬프트 제안](/docs/ko/interactive-mode#prompt-suggestions) 및 [`/btw` 곁가지 질문](/docs/ko/interactive-mode#side-questions-with-%2Fbtw)과 같은 일부 자체 기능을 위해 내부 에이전트도 실행하며, 이러한 에이전트 중 하나가 완료될 때도 SubagentStop이 발생합니다. 이러한 이벤트의 경우 `agent_type`은 [`--agent`](/docs/ko/cli-reference#cli-flags) 또는 [`agent` 설정](/docs/ko/settings-reference#agent)으로 지정된 것처럼 세션 자체가 실행되는 에이전트 이름이며, 세션이 에이전트 없이 실행되는 경우 빈 문자열입니다.2572모든 SubagentStop 이벤트가 Claude가 생성한 서브에이전트에서 오는 것은 아닙니다. Claude Code는 [프롬프트 제안](/docs/ko/interactive-mode#prompt-suggestions)이나 [`/btw` 부가 질문](/docs/ko/interactive-mode#side-questions-with-%2Fbtw) 같은 일부 자체 기능을 위해 내부 에이전트도 실행하며, 이들 중 하나가 완료될 때도 SubagentStop이 발생합니다. 이러한 이벤트의 경우 `agent_type`은 [`--agent`](/docs/ko/cli-reference#cli-flags) 또는 [`agent` 설정](/docs/ko/settings-reference#agent)으로 지정된 것처럼 세션 자체가 실행되는 에이전트 이름이며, 세션이 에이전트 없이 실행되면 빈 문자열입니다.

2573 2573 

2574에이전트 유형을 지정하는 `matcher`는 빈 `agent_type`과 매칭되지 않습니다. matcher가 생략되었거나, `""` 또는 `"*"`이거나, 빈 문자열과 매칭되는 정규식인 훅은 빈 `agent_type`을 가진 이벤트에서도 실행됩니다.2574에이전트 유형을 지정한 `matcher`는 빈 `agent_type`과 매칭되지 않습니다. matcher가 생략되었거나, `""` 또는 `"*"`이거나, 빈 문자열과 매칭되는 정규식인 훅은 빈 `agent_type`을 가진 이벤트에도 실행됩니다.

2575 2575 

2576Claude Code v2.1.271 이상에서는 [`SubagentHandback`](/docs/ko/tools-reference) 도구와 함께 실행되는 서브에이전트가 중지되기 전에 해당 도구를 통해 보고서를 전달합니다. 이 경우 `last_assistant_message` 필드에는 서브에이전트의 마무리 텍스트(있는 경우)가 담기며, 이는 전달된 보고서가 아닙니다. 보고서는 해당 호출의 `message` 입력이며, `SubagentHandback`에 매칭되는 `PreToolUse` 또는 `PostToolUse` 훅이 이를 `tool_input.message`로 전달받습니다.2576Claude Code v2.1.271 이상에서는 [`SubagentHandback`](/docs/ko/tools-reference) 도구와 함께 실행되는 서브에이전트가 중지되기 전에 해당 도구를 통해 보고서를 전달합니다. 이때 `last_assistant_message` 필드에는 서브에이전트의 마무리 텍스트가 있으면 그것이 담기며, 이는 전달된 보고서가 아닙니다. 보고서는 해당 호출의 `message` 입력이며, `SubagentHandback`에 매칭되는 `PreToolUse` 또는 `PostToolUse` 훅은 이를 `tool_input.message`로 전달받습니다.

2577 2577 

2578SubagentStop 훅은 [Stop 입력](#stop-input)에서 설명하는 `background_tasks` 및 `session_crons` 배열도 전달받습니다. 두 배열 모두 서브에이전트가 아닌 부모 세션 범위입니다.2578SubagentStop 훅은 [Stop 입력](#stop-input)에서 설명하는 `background_tasks` 및 `session_crons` 배열도 전달받습니다. 두 배열 모두 서브에이전트가 아닌 상위 세션 범위입니다.

2579 2579 

2580```json theme={null}2580```json theme={null}

2581{2581{


2594}2594}

2595```2595```

2596 2596 

2597SubagentStop 훅은 [Stop 훅](#stop-decision-control)과 같은 결정 제어 형식을 사용하며, 여기에는 서브에이전트를 계속 실행시키는 오류가 아닌 피드백을 위해 `hookEventName`을 `"SubagentStop"`으로 설정한 `hookSpecificOutput.additionalContext`도 포함됩니다. `reason`과 함께 `decision: "block"`을 반환하면 서브에이전트가 계속 실행되며 `reason`이 서브에이전트의 다음 지시로 전달됩니다. 종료 코드 2로 차단하는 훅도 같은 방식으로 stderr 메시지를 전달합니다. 서브에이전트가 반환된 후 부모 세션에 컨텍스트를 주입하려면 대신 `Agent` 도구에 대한 [`PostToolUse`](#posttooluse) 훅을 사용합니다.2597SubagentStop 훅은 [Stop 훅](#stop-decision-control)과 같은 결정 제어 형식을 사용하며, 서브에이전트를 계속 실행시키는 오류가 아닌 피드백을 위해 `hookEventName`을 `"SubagentStop"`으로 설정한 `hookSpecificOutput.additionalContext`도 포함됩니다. `reason`과 함께 `decision: "block"`을 반환하면 서브에이전트가 계속 실행되며 `reason`이 서브에이전트의 다음 지시로 전달됩니다. 종료 코드 2로 차단하는 훅은 stderr 메시지를 같은 방식으로 전달합니다. 서브에이전트가 반환된 후 상위 세션에 컨텍스트를 주입하려면 대신 `Agent` 도구에 대한 [`PostToolUse`](#posttooluse) 훅을 사용합니다.

2598 2598 

2599<h3 id="taskcreated">2599<h3 id="taskcreated">

2600 TaskCreated2600 TaskCreated

2601</h3>2601</h3>

2602 2602 

2603`TaskCreate` 도구를 통해 작업이 생성될 때 실행됩니다. 명명 규칙을 적용하거나, 작업 설명을 필수로 요구하거나, 특정 작업이 생성되지 않도록 막는 데 사용합니다. [Task 도구가 없는 세션](/docs/ko/tools-reference#task-tool-availability)에서는 이 이벤트가 발생하지 않습니다.2603`TaskCreate` 도구를 통해 작업이 생성될 때 실행됩니다. 명명 규칙을 적용하거나, 작업 설명을 필수로 요구하거나, 특정 작업의 생성을 방지하는 데 사용합니다. [Task 도구가 없는 세션](/docs/ko/tools-reference#task-tool-availability)에서는 이 이벤트가 발생하지 않습니다.

2604 2604 

2605TaskCreated 훅은 matcher를 지원하지 않으며 매번 발생합니다.2605TaskCreated 훅은 matcher를 지원하지 않으며 매번 발생합니다.

2606 2606 

2607<h4 id="taskcreated-input">2607<h4 id="taskcreated-input">

2608 TaskCreated 입력2608 TaskCreated input

2609</h4>2609</h4>

2610 2610 

2611[공통 입력 필드](#common-input-fields) 외에도 TaskCreated 훅은 `task_id`, `task_subject`와 선택적으로 `task_description`, `teammate_name`, `team_name`을 전달받습니다.2611[공통 입력 필드](#common-input-fields) 외에도, TaskCreated 훅은 `task_id`, `task_subject`를 전달받으며, 선택적으로 `task_description`, `teammate_name`, `team_name`을 전달받습니다.

2612 2612 

2613```json theme={null}2613```json theme={null}

2614{2614{


2626 2626 

2627| 필드 | 설명 |2627| 필드 | 설명 |

2628| :- | :- |2628| :- | :- |

2629| `task_id` | 생성 중인 작업의 식별자입니다 |2629| `task_id` | 생성되는 작업의 식별자입니다 |

2630| `task_subject` | 작업의 제목입니다 |2630| `task_subject` | 작업의 제목입니다 |

2631| `task_description` | 작업의 상세 설명입니다. 없을 수도 있습니다 |2631| `task_description` | 작업에 대한 자세한 설명입니다. 없을 수도 있습니다 |

2632| `teammate_name` | 작업을 생성하는 팀원의 이름입니다. 없을 수도 있습니다 |2632| `teammate_name` | 작업을 생성하는 팀원의 이름입니다. 없을 수도 있습니다 |

2633| `team_name` | Deprecated. 세션에서 파생된 팀 이름이며, 향후 릴리스에서 제거될 예정입니다 |2633| `team_name` | Deprecated. 세션에서 파생된 팀 이름이며, 향후 릴리스에서 제거됩니다 |

2634 2634 

2635<h4 id="taskcreated-decision-control">2635<h4 id="taskcreated-decision-control">

2636 TaskCreated 결정 제어2636 TaskCreated decision control

2637</h4>2637</h4>

2638 2638 

2639TaskCreated 훅은 두 가지 방법으로 생성을 차단할 수 있습니다. 어느 방법이든 Claude Code는 작업을 삭제하고 메시지를 도구의 오류로 Claude에게 반환합니다. Claude Code는 이 이벤트의 `continue: false`를 무시하며 Claude는 계속 작업합니다.2639TaskCreated 훅은 두 가지 방법으로 생성을 차단할 수 있습니다. 어느 방법이든 Claude Code는 작업을 삭제하고 메시지를 도구의 오류로 Claude에 반환합니다. Claude Code는 이 이벤트의 `continue: false`를 무시하며 Claude는 계속 작업합니다.

2640 2640 

2641* **종료 코드 2**: Claude Code가 stderr 텍스트를 메시지로 반환합니다.2641* **종료 코드 2**: Claude Code가 stderr 텍스트를 메시지로 반환합니다.

2642* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code가 `reason`을 메시지로 반환합니다.2642* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code가 `reason`을 메시지로 반환합니다.


2660 TaskCompleted2660 TaskCompleted

2661</h3>2661</h3>

2662 2662 

2663작업이 완료로 표시될 때 실행됩니다. 이 이벤트는 두 가지 상황에서 발생합니다. 어떤 에이전트든 TaskUpdate 도구를 통해 작업을 명시적으로 완료로 표시하는 경우, 또는 [에이전트 팀](/docs/ko/agent-teams) 팀원이 진행 중인 작업이 있는 상태에서 턴을 마치는 경우입니다. 작업이 종료되기 전에 테스트 통과나 린트 검사와 같은 완료 기준을 적용하는 데 사용합니다.2663작업이 완료로 표시될 때 실행됩니다. 두 가지 상황에서 발생합니다. 에이전트가 TaskUpdate 도구를 통해 작업을 명시적으로 완료로 표시할 때, 또는 [에이전트 팀](/docs/ko/agent-teams) 팀원이 진행 중인 작업이 있는 상태로 턴을 마칠 때입니다. 작업을 종료하기 전에 테스트 통과나 lint 검사 같은 완료 기준을 적용하는 데 사용합니다.

2664 2664 

2665TaskCompleted 훅은 matcher를 지원하지 않으며 매번 발생합니다.2665TaskCompleted 훅은 matcher를 지원하지 않으며 매번 발생합니다.

2666 2666 

2667<h4 id="taskcompleted-input">2667<h4 id="taskcompleted-input">

2668 TaskCompleted 입력2668 TaskCompleted input

2669</h4>2669</h4>

2670 2670 

2671[공통 입력 필드](#common-input-fields) 외에도 TaskCompleted 훅은 `task_id`, `task_subject`와 선택적으로 `task_description`, `teammate_name`, `team_name`을 전달받습니다.2671[공통 입력 필드](#common-input-fields) 외에도, TaskCompleted 훅은 `task_id`, `task_subject`를 전달받으며, 선택적으로 `task_description`, `teammate_name`, `team_name`을 전달받습니다.

2672 2672 

2673```json theme={null}2673```json theme={null}

2674{2674{


2687 2687 

2688| 필드 | 설명 |2688| 필드 | 설명 |

2689| :- | :- |2689| :- | :- |

2690| `task_id` | 완료 중인 작업의 식별자입니다 |2690| `task_id` | 완료되는 작업의 식별자입니다 |

2691| `task_subject` | 작업의 제목입니다 |2691| `task_subject` | 작업의 제목입니다 |

2692| `task_description` | 작업의 상세 설명입니다. 없을 수도 있습니다 |2692| `task_description` | 작업에 대한 자세한 설명입니다. 없을 수도 있습니다 |

2693| `teammate_name` | 작업을 완료하는 팀원의 이름입니다. 없을 수도 있습니다 |2693| `teammate_name` | 작업을 완료하는 팀원의 이름입니다. 없을 수도 있습니다 |

2694| `team_name` | Deprecated. 세션에서 파생된 팀 이름이며, 향후 릴리스에서 제거될 예정입니다 |2694| `team_name` | Deprecated. 세션에서 파생된 팀 이름이며, 향후 릴리스에서 제거됩니다 |

2695 2695 

2696<h4 id="taskcompleted-decision-control">2696<h4 id="taskcompleted-decision-control">

2697 TaskCompleted 결정 제어2697 TaskCompleted decision control

2698</h4>2698</h4>

2699 2699 

2700TaskCompleted 훅은 작업 완료를 제어하는 두 가지 방법을 지원합니다.2700TaskCompleted 훅은 작업 완료를 제어하는 두 가지 방법을 지원합니다.

2701 2701 

2702* **종료 코드 2**: 작업이 완료로 표시되지 않으며 stderr 메시지가 피드백으로 모델에 전달됩니다.2702* **종료 코드 2**: 작업이 완료로 표시되지 않으며 stderr 메시지가 피드백으로 모델에 전달됩니다.

2703* **JSON `{"continue": false, "stopReason": "..."}`**: 팀원이 턴을 마치면서 이벤트가 트리거된 경우, `Stop` 훅 동작과 마찬가지로 팀원을 완전히 중지합니다. `stopReason`은 사용자에게 표시됩니다. `TaskUpdate` 도구가 이벤트를 트리거한 경우 Claude Code는 `continue: false`를 무시하며, 종료 코드 2는 여전히 완료를 차단합니다.2703* **JSON `{"continue": false, "stopReason": "..."}`**: 팀원이 턴을 마쳐서 이벤트가 발생한 경우, `Stop` 훅 동작과 마찬가지로 팀원을 완전히 중지합니다. `stopReason`은 사용자에게 표시됩니다. `TaskUpdate` 도구가 이벤트를 발생시킨 경우에는 Claude Code가 `continue: false`를 무시하며, 종료 코드 2는 여전히 완료를 차단합니다.

2704 2704 

2705이 예시는 테스트를 실행하고 테스트가 실패하면 작업 완료를 차단합니다.2705이 예시는 테스트를 실행하고 실패하면 작업 완료를 차단합니다.

2706 2706 

2707```bash theme={null}2707```bash theme={null}

2708#!/bin/bash2708#!/bin/bash


2722 Stop2722 Stop

2723</h3>2723</h3>

2724 2724 

2725메인 Claude Code 에이전트가 응답을 마쳤을 때 실행됩니다. 사용자 중단으로 인해2725메인 Claude Code 에이전트가 응답을 마쳤을 때 실행됩니다. 사용자 중단으로

2726중지된 경우에는 실행되지 않습니다. API 오류는 대신2726중지된 경우에는 실행되지 않습니다. API 오류가 발생하면 대신

2727[StopFailure](#stopfailure)를 발생시킵니다.2727[StopFailure](#stopfailure)가 발생합니다.

2728 2728 

2729<Tip>2729<Tip>

2730 [`/goal`](/docs/ko/goal) 명령은 세션 범위의 프롬프트 기반 Stop 훅을 위한 기본 제공 단축 기능입니다. 훅 구성을 작성하지 않고도 Claude가 특정 조건을 향해 계속 작업하도록 하려는 경우에 사용합니다.2730 [`/goal`](/docs/ko/goal) 명령은 세션 범위의 프롬프트 기반 Stop 훅을 위한 기본 제공 단축 명령입니다. 훅 구성을 작성하지 않고 Claude가 특정 조건을 향해 계속 작업하게 하려면 이 명령을 사용합니다.

2731</Tip>2731</Tip>

2732 2732 

2733<h4 id="stop-input">2733<h4 id="stop-input">

2734 Stop 입력2734 Stop input

2735</h4>2735</h4>

2736 2736 

2737[공통 입력 필드](#common-input-fields) 외에도 Stop 훅은 `stop_hook_active`, `last_assistant_message`, `background_tasks`, `session_crons`를 전달받습니다. `stop_hook_active` 필드는 Claude Code가 이미 stop 훅의 결과로 계속 진행 중인 경우 `true`입니다. 결코 해결되지 않을 조건에서 차단하지 않도록 이 값을 확인하거나 트랜스크립트를 처리합니다. Claude Code는 연속 계속 진행 횟수를 8회로 제한합니다. stop 훅이 턴을 연속으로 8번 계속 진행시킨 후에는 Claude Code가 다음 차단을 재정의하고 턴을 종료합니다. 이 제한을 높이려면 [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/ko/env-vars)을 설정합니다.2737[공통 입력 필드](#common-input-fields) 외에도, Stop 훅은 `stop_hook_active`, `last_assistant_message`, `background_tasks`, `session_crons`를 전달받습니다. `stop_hook_active` 필드는 Claude Code가 이미 stop 훅의 결과로 계속 진행 중일 때 `true`입니다. 절대 해결되지 않을 조건으로 차단하지 않도록 이 값을 확인하거나 트랜스크립트를 처리합니다. Claude Code는 연속 8회 계속 진행 한도를 적용합니다. stop 훅이 턴을 연속으로 8번 계속 진행시킨 후에는 Claude Code가 다음 차단을 재정의하고 턴을 종료합니다. 한도를 높이려면 [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/ko/env-vars)을 설정합니다.

2738 2738 

2739`last_assistant_message` 필드에는 Claude의 최종 응답 텍스트 내용이 포함되므로, 훅은 트랜스크립트 파일을 파싱하지 않고도 이에 접근할 수 있습니다. 소리 내어 읽기 훅이나 알림 훅처럼 방금 완료된 턴에 대해 작동하는 훅의 경우 `transcript_path`를 읽는 대신 이 필드를 사용합니다. 모든 버전에서 Stop 시점에 트랜스크립트 파일에 최종 메시지가 포함된다고 보장되지 않기 때문입니다.2739`last_assistant_message` 필드에는 Claude의 최종 응답 텍스트 내용이 포함되므로, 훅은 트랜스크립트 파일을 파싱하지 않고도 이에 접근할 수 있습니다. 소리 내어 읽기나 알림 훅처럼 방금 완료된 턴에 대해 동작하는 훅은 `transcript_path`를 읽는 대신 이 필드를 사용합니다. 모든 버전에서 Stop 시점에 트랜스크립트 파일에 최종 메시지가 포함된다는 보장이 없기 때문입니다.

2740 2740 

2741`background_tasks` 및 `session_crons` 배열을 사용하면 훅이 "세션이 완료됨"과 "백그라운드 작업이 세션을 다시 깨울 때까지 일시 중지됨"을 구별할 수 있습니다. 두 배열은 작업 레지스트리에 접근할 수 있을 때 존재하며, 진행 중이거나 예약된 것이 없으면 비어 있습니다.2741`background_tasks` 및 `session_crons` 배열을 사용하면 훅이 "세션이 완료됨"과 "세션이 백그라운드 작업이 다시 깨워 주기를 기다리며 일시 중지됨"을 구분할 수 있습니다. 두 배열은 작업 레지스트리에 접근할 수 있을 때 존재하며, 진행 중이거나 예약된 것이 없으면 비어 있습니다.

2742 2742 

2743`background_tasks`의 각 항목은 진행 중인 작업 하나를 설명하며 다음 필드를 사용합니다.2743`background_tasks`의 각 항목은 진행 중인 작업 하나를 설명하며 다음 필드를 사용합니다.

2744 2744 

2745| 필드 | 설명 |2745| 필드 | 설명 |

2746| :- | :- |2746| :- | :- |

2747| `id` | 작업 식별자입니다 |2747| `id` | 작업 식별자입니다 |

2748| `type` | `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session`, `MCP task`와 같은 읽기 쉬운 작업 유형 레이블입니다. 각 레이블은 어떤 Claude Code 기능이 작업을 생성했는지 식별합니다. 인식되지 않는 유형의 경우 원시 판별값으로 대체됩니다 |2748| `type` | `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session`, `MCP task`와 같은 알기 쉬운 작업 유형 레이블입니다. 각 레이블은 작업을 생성한 Claude Code 기능을 나타냅니다. 인식되지 않는 유형의 경우 원시 판별값으로 대체됩니다 |

2749| `status` | 현재 작업 상태입니다 |2749| `status` | 현재 작업 상태입니다 |

2750| `description` | 자유 형식 설명이며, 1000자로 제한되고 잘린 경우 문자열 안에 `… [+N chars]` 마커가 표시됩니다 |2750| `description` | 자유 형식 설명으로, 1000자로 제한되며 잘린 경우 문자열 내에 `… [+N chars]` 마커가 붙습니다 |

2751| `command` | 셸 명령줄이며, 1000자로 제한됩니다. `shell` 작업에만 존재합니다 |2751| `command` | 셸 명령줄로, 1000자로 제한됩니다. `shell` 작업에만 있습니다 |

2752| `agent_type` | 서브에이전트 유형 이름입니다. `subagent` 작업에만 존재합니다 |2752| `agent_type` | 서브에이전트 유형 이름입니다. `subagent` 작업에만 있습니다 |

2753| `server` | MCP 서버 이름입니다. `monitor` 및 `MCP task` 작업에만 존재합니다 |2753| `server` | MCP 서버 이름입니다. `monitor` 및 `MCP task` 작업에만 있습니다 |

2754| `tool` | MCP 도구 이름입니다. `monitor` 및 `MCP task` 작업에만 존재합니다 |2754| `tool` | MCP 도구 이름입니다. `monitor` 및 `MCP task` 작업에만 있습니다 |

2755| `name` | 워크플로 이름입니다. `workflow` 작업에만 존재합니다 |2755| `name` | 워크플로 이름입니다. `workflow` 작업에만 있습니다 |

2756 2756 

2757`session_crons`의 각 항목은 `CronCreate`, `ScheduleWakeup`, `/loop`에서 가져온 세션 범위의 예약된 깨우기 하나를 설명합니다.2757`session_crons`의 각 항목은 `CronCreate`, `ScheduleWakeup`, `/loop`에서 생성된 세션 범위의 예약된 깨우기 하나를 설명합니다.

2758 2758 

2759| 필드 | 설명 |2759| 필드 | 설명 |

2760| :- | :- |2760| :- | :- |

2761| `id` | Cron 작업 식별자입니다 |2761| `id` | Cron 작업 식별자입니다 |

2762| `schedule` | Cron 표현식입니다(예: `0 9 * * 1-5`) |2762| `schedule` | Cron 표현식입니다. 예: `0 9 * * 1-5` |

2763| `recurring` | 일정이 단일 실행 시점을 나타내는 일회성 깨우기는 `false`, 매칭될 때마다 다시 실행되는 작업은 `true`입니다 |2763| `recurring` | 일정이 단일 실행 시각을 나타내는 일회성 깨우기는 `false`, 매칭될 때마다 다시 실행되는 작업은 `true`입니다 |

2764| `prompt` | cron이 실행될 때 제출되는 프롬프트이며, 1000자로 제한되고 동일한 `… [+N chars]` 마커가 사용됩니다 |2764| `prompt` | cron이 실행될 때 제출되는 프롬프트로, 1000자로 제한되며 같은 `… [+N chars]` 마커가 붙습니다 |

2765 2765 

2766이 예시는 진행 중인 셸 작업 하나와 반복 cron 하나가 있는 Stop 입력을 보여 줍니다.2766이 예시는 진행 중인 셸 작업 하나와 반복 cron 하나가 있는 Stop 입력을 보여 줍니다.

2767 2767 


2795```2795```

2796 2796 

2797<h4 id="stop-decision-control">2797<h4 id="stop-decision-control">

2798 Stop 결정 제어2798 Stop decision control

2799</h4>2799</h4>

2800 2800 

2801`Stop` 및 `SubagentStop` 훅은 Claude의 계속 진행 여부를 제어할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 훅 스크립트는 다음과 같은 이벤트별 필드를 반환할 수 있습니다.2801`Stop` 및 `SubagentStop` 훅은 Claude의 계속 진행 여부를 제어할 수 있습니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도, 훅 스크립트는 다음과 같은 이벤트별 필드를 반환할 수 있습니다.

2802 2802 

2803| 필드 | 설명 |2803| 필드 | 설명 |

2804| :- | :- |2804| :- | :- |

2805| `decision` | `"block"`은 Claude가 중지되지 않도록 합니다. Claude가 중지되도록 허용하려면 생략합니다 |2805| `decision` | `"block"`은 Claude가 중지하지 못하게 합니다. Claude가 중지하도록 허용하려면 생략합니다 |

2806| `reason` | `decision`이 `"block"`일 때 필수입니다. Claude에게 계속 진행해야 하는 이유를 알려 줍니다 |2806| `reason` | `decision`이 `"block"`일 때 필수입니다. Claude에 계속해야 하는 이유를 알려 줍니다 |

2807| `hookSpecificOutput.additionalContext` | Claude를 위한 오류가 아닌 피드백입니다. Claude가 이에 따라 조치할 수 있도록 대화가 계속되지만, `decision: "block"`과 달리 트랜스크립트에 훅 오류가 아닌 훅 피드백으로 표시됩니다 |2807| `hookSpecificOutput.additionalContext` | Claude를 위한 오류가 아닌 피드백입니다. Claude가 이에 따라 조치할 수 있도록 대화가 계속되지만, `decision: "block"`과 달리 트랜스크립트에 훅 오류가 아닌 훅 피드백으로 표시됩니다 |

2808 2808 

2809종료 코드 2로 차단하는 훅은 `reason`과 같은 방식으로 전달됩니다. Claude는 stderr 메시지를 계속 진행해야 하는 이유에 대한 설명으로 전달받습니다.2809종료 코드 2로 차단하는 훅은 `reason`과 같은 방식으로 전달됩니다. Claude는 stderr 메시지를 계속해야 하는 이유에 대한 설명으로 받습니다.

2810 2810 

2811```json theme={null}2811```json theme={null}

2812{2812{


2815}2815}

2816```2816```

2817 2817 

2818훅이 설계대로 작동하면서 "완료하기 전에 테스트 스위트 실행"과 같은 지침을 Claude에게 제공하는 경우 `additionalContext`를 사용합니다. 이 필드는 `decision: "block"`과 같은 루프 보호 장치, 즉 `stop_hook_active` 입력과 연속 계속 진행 8회 제한을 거쳐 대화를 계속 진행하지만, 트랜스크립트에는 `Stop hook feedback`으로 표시되고 훅 오류 알림은 표시되지 않습니다.2818훅이 설계대로 작동하면서 "완료하기 전에 테스트 스위트 실행"과 같은 안내를 Claude에 제공할 때는 `additionalContext`를 사용합니다. 이 방법은 `decision: "block"`과 같은 루프 보호 장치, 즉 `stop_hook_active` 입력과 연속 8회 계속 진행 한도를 거쳐 대화를 계속하지만, 트랜스크립트에는 `Stop hook feedback`으로 레이블이 지정되며 훅 오류 알림은 표시되지 않습니다.

2819 2819 

2820```json theme={null}2820```json theme={null}

2821{2821{


2830 StopFailure2830 StopFailure

2831</h3>2831</h3>

2832 2832 

2833API 오류로 인해 턴이 종료될 때 [Stop](#stop) 대신 실행됩니다. Claude Code는 [`terminalSequence`](#emit-terminal-notifications)를 제외한 훅의 출력과 종료 코드를 무시합니다. 속도 제한, 인증 문제 또는 기타 API 오류로 인해 Claude가 응답을 완료할 수 없을 때 실패를 로그에 기록하거나, 알림을 보내거나, 복구 조치를 취하는 데 사용합니다.2833API 오류로 턴이 끝날 때 [Stop](#stop) 대신 실행됩니다. Claude Code는 [`terminalSequence`](#emit-terminal-notifications)를 제외하고 훅의 출력과 종료 코드를 무시합니다. 속도 제한, 인증 문제 또는 기타 API 오류로 Claude가 응답을 완료할 수 없을 때 실패를 로그에 기록하거나, 알림을 보내거나, 복구 조치를 취하는 데 사용합니다.

2834 2834 

2835<h4 id="stopfailure-input">2835<h4 id="stopfailure-input">

2836 StopFailure 입력2836 StopFailure input

2837</h4>2837</h4>

2838 2838 

2839[공통 입력 필드](#common-input-fields) 외에도 StopFailure 훅은 `error`, 선택적 `error_details`, 선택적 `last_assistant_message`를 전달받습니다. `error` 필드는 오류 유형을 식별하며 matcher 필터링에 사용됩니다.2839[공통 입력 필드](#common-input-fields) 외에도, StopFailure 훅은 `error`, 선택적 `error_details`, 선택적 `last_assistant_message`를 전달받습니다. `error` 필드는 오류 유형을 식별하며 matcher 필터링에 사용됩니다.

2840 2840 

2841| 필드 | 설명 |2841| 필드 | 설명 |

2842| :- | :- |2842| :- | :- |

2843| `error` | 오류 유형: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error` 또는 `unknown` |2843| `error` | 오류 유형: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error` 또는 `unknown` |

2844| `error_details` | 사용 가능한 경우 오류에 대한 추가 세부 정보입니다 |2844| `error_details` | 사용 가능한 경우 오류에 대한 추가 세부 정보입니다 |

2845| `last_assistant_message` | 대화에 표시된 렌더링된 오류 텍스트입니다. 이 필드에 Claude의 대화 출력이 담기는 `Stop` 및 `SubagentStop`과 달리, `StopFailure`에서는 `"API Error: Rate limit reached"`와 같은 API 오류 문자열 자체가 담깁니다 |2845| `last_assistant_message` | 대화에 표시되는 렌더링된 오류 텍스트입니다. 이 필드에 Claude의 대화 출력이 담기는 `Stop` 및 `SubagentStop`과 달리, `StopFailure`에서는 `"API Error: Rate limit reached"`와 같은 API 오류 문자열 자체가 담깁니다 |

2846 2846 

2847```json theme={null}2847```json theme={null}

2848{2848{


2862 TeammateIdle2862 TeammateIdle

2863</h3>2863</h3>

2864 2864 

2865[에이전트 팀](/docs/ko/agent-teams) 팀원이 턴을 마친 후 유휴 상태가 되려고 할 때 실행됩니다. 린트 검사 통과를 요구하거나 출력 파일이 존재하는지 확인하는 등, 팀원이 작업을 멈추기 전에 품질 기준을 적용하는 데 사용합니다.2865[에이전트 팀](/docs/ko/agent-teams) 팀원이 턴을 마친 후 유휴 상태로 전환되려고 할 때 실행됩니다. lint 검사 통과를 요구하거나 출력 파일이 존재하는지 확인하는 것처럼, 팀원이 작업을 멈추기 전에 품질 기준을 적용하는 데 사용합니다.

2866 2866 

2867TeammateIdle 훅은 matcher를 지원하지 않으며 매번 발생합니다.2867TeammateIdle 훅은 matcher를 지원하지 않으며 매번 발생합니다.

2868 2868 

2869<h4 id="teammateidle-input">2869<h4 id="teammateidle-input">

2870 TeammateIdle 입력2870 TeammateIdle input

2871</h4>2871</h4>

2872 2872 

2873[공통 입력 필드](#common-input-fields) 외에도 TeammateIdle 훅은 `teammate_name`과 `team_name`을 전달받습니다.2873[공통 입력 필드](#common-input-fields) 외에도, TeammateIdle 훅은 `teammate_name`과 `team_name`을 전달받습니다.

2874 2874 

2875```json theme={null}2875```json theme={null}

2876{2876{


2886 2886 

2887| 필드 | 설명 |2887| 필드 | 설명 |

2888| :- | :- |2888| :- | :- |

2889| `teammate_name` | 유휴 상태가 되려는 팀원의 이름입니다 |2889| `teammate_name` | 유휴 상태로 전환되려는 팀원의 이름입니다 |

2890| `team_name` | Deprecated. 세션에서 파생된 팀 이름이며, 향후 릴리스에서 제거될 예정입니다 |2890| `team_name` | Deprecated. 세션에서 파생된 팀 이름이며, 향후 릴리스에서 제거됩니다 |

2891 2891 

2892<h4 id="teammateidle-decision-control">2892<h4 id="teammateidle-decision-control">

2893 TeammateIdle 결정 제어2893 TeammateIdle decision control

2894</h4>2894</h4>

2895 2895 

2896TeammateIdle 훅은 팀원 동작을 제어하는 두 가지 방법을 지원합니다.2896TeammateIdle 훅은 팀원 동작을 제어하는 두 가지 방법을 지원합니다.

2897 2897 

2898* **종료 코드 2**: 팀원이 stderr 메시지를 피드백으로 받고 유휴 상태가 되는 대신 계속 작업합니다.2898* **종료 코드 2**: 팀원이 stderr 메시지를 피드백으로 받고 유휴 상태로 전환되는 대신 계속 작업합니다.

2899* **JSON `{"continue": false, "stopReason": "..."}`**: `Stop` 훅 동작과 마찬가지로 팀원을 완전히 중지합니다. `stopReason`은 사용자에게 표시됩니다.2899* **JSON `{"continue": false, "stopReason": "..."}`**: `Stop` 훅 동작과 마찬가지로 팀원을 완전히 중지합니다. `stopReason`은 사용자에게 표시됩니다.

2900 2900 

2901이 예시는 팀원이 유휴 상태가 되도록 허용하기 전에 빌드 산출물이 존재하는지 확인합니다.2901이 예시는 팀원이 유휴 상태로 전환되도록 허용하기 전에 빌드 산출물이 존재하는지 확인합니다.

2902 2902 

2903```bash theme={null}2903```bash theme={null}

2904#!/bin/bash2904#!/bin/bash


2917 2917 

2918세션 중에 설정 파일이 변경될 때 실행됩니다. 설정 변경을 감사하거나, 보안 정책을 적용하거나, 설정 파일에 대한 무단 수정을 차단하는 데 사용합니다.2918세션 중에 설정 파일이 변경될 때 실행됩니다. 설정 변경을 감사하거나, 보안 정책을 적용하거나, 설정 파일에 대한 무단 수정을 차단하는 데 사용합니다.

2919 2919 

2920Claude Code는 설정 파일, 관리형 정책 파일 또는 스킬 파일이 변경될 때 ConfigChange 훅을 실행합니다. 관리형 정책의 경우 `managed-settings.json` 또는 `managed-settings.d/`의 파일이 변경될 때만 실행합니다. [서버 관리형 설정](/docs/ko/server-managed-settings)과 macOS 관리형 환경설정 또는 Windows 레지스트리 정책의 변경 사항은 훅을 실행하지 않고 적용합니다. [`wslInheritsWindowsSettings`](/docs/ko/settings-reference#wslinheritswindowssettings)가 적용된 WSL에서는 정책 폴링 시 변경된 Windows 측 관리형 설정 파일도 훅을 실행하지 않고 적용합니다.2920Claude Code는 설정 파일, 관리형 정책 파일 또는 스킬 파일이 변경될 때 ConfigChange 훅을 실행합니다. 관리형 정책의 경우 `managed-settings.json` 또는 `managed-settings.d/`의 파일이 변경될 때만 실행합니다. [서버 관리형 설정](/docs/ko/server-managed-settings)과 macOS 관리형 환경설정 또는 Windows 레지스트리 정책의 변경 사항은 훅을 실행하지 않고 적용합니다. [`wslInheritsWindowsSettings`](/docs/ko/settings-reference#wslinheritswindowssettings)를 사용하는 WSL에서는 변경된 Windows 측 관리형 설정 파일도 정책 폴링 시 훅을 실행하지 않고 적용합니다.

2921 2921 

2922matcher는 구성 소스를 기준으로 필터링합니다.2922matcher는 구성 소스로 필터링합니다.

2923 2923 

2924| Matcher | 발생 시점 |2924| Matcher | 발생 시점 |

2925| :- | :- |2925| :- | :- |


2950```2950```

2951 2951 

2952<h4 id="configchange-input">2952<h4 id="configchange-input">

2953 ConfigChange 입력2953 ConfigChange input

2954</h4>2954</h4>

2955 2955 

2956[공통 입력 필드](#common-input-fields) 외에도 ConfigChange 훅은 `source`와 선택적으로 `file_path`를 전달받습니다. `source` 필드는 어떤 구성 유형이 변경되었는지 나타내고, `file_path`는 수정된 특정 파일의 경로를 제공합니다.2956[공통 입력 필드](#common-input-fields) 외에도, ConfigChange 훅은 `source`와 선택적으로 `file_path`를 전달받습니다. `source` 필드는 어떤 구성 유형이 변경되었는지 나타내고, `file_path`는 수정된 특정 파일의 경로를 제공합니다.

2957 2957 

2958```json theme={null}2958```json theme={null}

2959{2959{


2967```2967```

2968 2968 

2969<h4 id="configchange-decision-control">2969<h4 id="configchange-decision-control">

2970 ConfigChange 결정 제어2970 ConfigChange decision control

2971</h4>2971</h4>

2972 2972 

2973ConfigChange 훅은 구성 변경이 적용되지 않도록 차단할 수 있습니다. 변경을 막으려면 종료 코드 2 또는 JSON `decision`을 사용합니다. 차단되면 새 설정이 실행 중인 세션에 적용되지 않습니다.2973ConfigChange 훅은 구성 변경이 적용되지 않도록 차단할 수 있습니다. 변경을 막으려면 종료 코드 2 또는 JSON `decision`을 사용합니다. 차단되면 새 설정이 실행 중인 세션에 적용되지 않습니다.


2984}2984}

2985```2985```

2986 2986 

2987`policy_settings` 변경은 차단할 수 없습니다. 머신의 관리형 설정 파일이 변경되면 `policy_settings` 소스에 대해서도 훅이 발생하므로 해당 편집을 로그에 기록하는 데 사용할 수 있지만, 차단 결정은 무시됩니다. 이를 통해 엔터프라이즈 관리형 설정이 항상 적용되도록 보장합니다. Claude Code는 [서버 관리형 설정](/docs/ko/server-managed-settings)이 도착하거나 새로 고쳐질 때 `ConfigChange` 훅을 실행하지 않습니다.2987`policy_settings` 변경은 차단할 수 없습니다. 머신의 관리형 설정 파일이 변경되면 `policy_settings` 소스에 대해서도 훅이 발생하므로 이러한 수정 사항을 로그에 기록하는 데 사용할 수 있지만, 차단 결정은 무시됩니다. 이를 통해 엔터프라이즈 관리형 설정이 항상 적용되도록 보장합니다. [서버 관리형 설정](/docs/ko/server-managed-settings)이 도착하거나 갱신될 때는 Claude Code가 `ConfigChange` 훅을 실행하지 않습니다.

2988 2988 

2989Claude Code는 ConfigChange 훅의 JSON 출력에서 차단 결정에 따라 동작하며 `systemMessage`와 `continue`는 삭제합니다. 차단된 변경은 `reason`으로 차단하든 종료 코드 2의 stderr로 차단하든 사용자나 Claude에게 아무 메시지도 표시하지 않습니다. Claude Code는 디버그 로그에 한 줄만 기록합니다.2989Claude Code는 ConfigChange 훅의 JSON 출력에서 차단 결정에 따라 동작하며 `systemMessage`와 `continue`는 삭제합니다. `reason`으로 차단하든 종료 코드 2의 stderr로 차단하든, 차단된 변경은 사용자나 Claude에게 메시지를 표시하지 않습니다. Claude Code는 디버그 로그에 한 줄만 기록합니다.

2990 2990 

2991<h3 id="cwdchanged">2991<h3 id="cwdchanged">

2992 CwdChanged2992 CwdChanged

2993</h3>2993</h3>

2994 2994 

2995메인 대화의 셸 명령이 작업 디렉터리를 변경할 때 실행됩니다. 예를 들어 Claude가 `cd` 명령을 실행하는 경우입니다. 환경 변수 다시 로드, 프로젝트별 도구 체인 활성화, 설정 스크립트 자동 실행 등 디렉터리 변경에 대응하는 데 사용합니다. 디렉터리별 환경을 관리하는 [direnv](https://direnv.net/)와 같은 도구에는 [FileChanged](#filechanged)와 함께 사용합니다.2995메인 대화의 셸 명령이 작업 디렉터리를 변경할 때 실행됩니다. 예를 들어 Claude가 `cd` 명령을 실행할 때입니다. 디렉터리 변경에 대응하는 데 사용합니다. 환경 변수를 다시 로드하거나, 프로젝트별 툴체인을 활성화하거나, 설정 스크립트를 자동으로 실행할 수 있습니다. 디렉터리별 환경을 관리하는 [direnv](https://direnv.net/) 같은 도구를 위해 [FileChanged](#filechanged)와 함께 사용합니다.

2996 2996 

2997CwdChanged 훅은 [`CLAUDE_ENV_FILE`](#persist-environment-variables)에 접근할 수 있습니다. 해당 파일에 기록된 변수는 다음 CwdChanged 이벤트에서 Claude Code가 지울 때까지 이후의 Bash 명령에서 유지됩니다.2997CwdChanged 훅은 [`CLAUDE_ENV_FILE`](#persist-environment-variables)에 접근할 수 있습니다. 해당 파일에 기록된 변수는 다음 CwdChanged 이벤트에서 Claude Code가 이를 지울 때까지 이후의 Bash 명령에 유지됩니다.

2998 2998 

2999CwdChanged는 matcher를 지원하지 않으며 매번 발생합니다.2999CwdChanged는 matcher를 지원하지 않으며 매번 발생합니다.

3000 3000 

3001<h4 id="cwdchanged-input">3001<h4 id="cwdchanged-input">

3002 CwdChanged 입력3002 CwdChanged input

3003</h4>3003</h4>

3004 3004 

3005[공통 입력 필드](#common-input-fields) 외에도 CwdChanged 훅은 `old_cwd`와 `new_cwd`를 전달받습니다.3005[공통 입력 필드](#common-input-fields) 외에도, CwdChanged 훅은 `old_cwd`와 `new_cwd`를 전달받습니다.

3006 3006 

3007```json theme={null}3007```json theme={null}

3008{3008{


3016```3016```

3017 3017 

3018<h4 id="cwdchanged-output">3018<h4 id="cwdchanged-output">

3019 CwdChanged 출력3019 CwdChanged output

3020</h4>3020</h4>

3021 3021 

3022모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 CwdChanged 훅은 [FileChanged](#filechanged)가 감시하는 파일 경로를 동적으로 설정하기 위해 `watchPaths`를 반환할 수 있습니다.3022모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도, CwdChanged 훅은 `watchPaths`를 반환하여 [FileChanged](#filechanged)가 감시하는 파일 경로를 동적으로 설정할 수 있습니다.

3023 3023 

3024| 필드 | 설명 |3024| 필드 | 설명 |

3025| :- | :- |3025| :- | :- |

3026| `watchPaths` | 절대 경로 배열입니다. 현재 동적 감시 목록을 대체합니다. `matcher` 구성의 경로는 항상 감시됩니다. 빈 배열을 반환하면 동적 목록이 지워지며, 이는 새 디렉터리로 들어갈 때 일반적입니다 |3026| `watchPaths` | 절대 경로의 배열입니다. 현재 동적 감시 목록을 대체합니다. `matcher` 구성의 경로는 항상 감시됩니다. 빈 배열을 반환하면 동적 목록이 지워지며, 이는 새 디렉터리에 진입할 때 일반적입니다 |

3027 3027 

3028CwdChanged 훅에는 결정 제어가 없습니다. 디렉터리 변경을 차단할 수 없습니다.3028CwdChanged 훅에는 결정 제어가 없습니다. 디렉터리 변경을 차단할 수 없습니다.

3029 3029 

3030Claude Code는 JSON 출력에서 `watchPaths`와 `systemMessage`를 읽고 `continue`는 삭제합니다. 대화형 세션에서는 `systemMessage`를 짧은 터미널 알림으로 표시합니다. 이 메시지는 SDK 메시지 스트림에 도달하지 않습니다.3030Claude Code는 JSON 출력에서 `watchPaths`와 `systemMessage`를 읽고 `continue`는 삭제합니다. 대화형 세션에서는 `systemMessage`를 짧은 터미널 알림으로 표시합니다. 이 메시지는 SDK 메시지 스트림에 전달되지 않습니다.

3031 3031 

3032<h3 id="directoryadded">3032<h3 id="directoryadded">

3033 DirectoryAdded3033 DirectoryAdded

3034</h3>3034</h3>

3035 3035 

3036세션 중에 사용자가 `/add-dir` 명령으로 작업 디렉터리를 추가한 후, 또는 SDK 클라이언트가 `register_repo_root` 제어 요청으로 작업 디렉터리를 추가한 후에 실행됩니다. 예를 들어 의존성을 설치하는 등 새로 추가된 저장소를 준비하는 데 사용합니다.3036세션 중에 사용자가 `/add-dir` 명령으로 작업 디렉터리를 추가한 후, 또는 SDK 클라이언트가 `register_repo_root` 제어 요청으로 작업 디렉터리를 추가한 후에 실행됩니다. 예를 들어 의존성을 설치하는 것처럼 새로 추가된 저장소를 준비하는 데 사용합니다.

3037 3037 

3038Claude Code는 다음 경우에 이 이벤트를 발생시키지 않습니다.3038Claude Code는 다음 경우에 이 이벤트를 발생시키지 않습니다.

3039 3039 

3040* `--add-dir` 시작 플래그로 디렉터리를 전달하는 경우. 이러한 디렉터리는 [SessionStart](#sessionstart)에서 다룹니다3040* `--add-dir` 시작 플래그로 디렉터리를 전달한 경우. 이러한 디렉터리는 [SessionStart](#sessionstart)가 처리합니다

3041* `/permissions` Workspace 탭에서 디렉터리를 추가하는 경우3041* `/permissions`의 Workspace 탭에서 디렉터리를 추가한 경우

3042* 이미 작업 디렉터리이거나 작업 디렉터리 내부에 있는 디렉터리를 추가하는 경우3042* 이미 작업 디렉터리이거나 작업 디렉터리 내부에 있는 디렉터리를 추가한 경우

3043 3043 

3044Claude Code는 샌드박스 및 권한 상태를 새로 고친 후 DirectoryAdded를 발생시키므로, 훅이 실행될 때 샌드박스 처리된 도구는 이미 새 디렉터리를 인식합니다. 훅 명령 자체는 샌드박스 없이 실행됩니다.3044Claude Code는 샌드박스 및 권한 상태를 갱신한 후 DirectoryAdded를 발생시키므로, 훅이 실행될 때 샌드박스 처리된 도구는 이미 새 디렉터리를 인식합니다. 훅 명령 자체는 샌드박스 없이 실행됩니다.

3045 3045 

3046Claude Code는 훅을 기다리지 않습니다. 추가는 즉시 완료되며, 훅은 600초 기본 타임아웃으로 백그라운드에서 실행됩니다.3046Claude Code는 훅을 기다리지 않습니다. 추가는 즉시 완료되며, 훅은 600초의 기본 타임아웃으로 백그라운드에서 실행됩니다.

3047 3047 

3048matcher는 디렉터리가 추가된 방식을 기준으로 필터링합니다.3048matcher는 디렉터리가 추가된 방식으로 필터링합니다.

3049 3049 

3050| Matcher | 발생 시점 |3050| Matcher | 발생 시점 |

3051| :- | :- |3051| :- | :- |

3052| `slash_command` | `/add-dir`로 디렉터리를 추가한 경우 |3052| `slash_command` | 사용자가 `/add-dir`로 디렉터리를 추가한 경우 |

3053| `register_repo_root` | SDK 클라이언트가 `register_repo_root` 제어 요청으로 디렉터리를 추가한 경우 |3053| `register_repo_root` | SDK 클라이언트가 `register_repo_root` 제어 요청으로 디렉터리를 추가한 경우 |

3054 3054 

3055<h4 id="directoryadded-input">3055<h4 id="directoryadded-input">

3056 DirectoryAdded 입력3056 DirectoryAdded input

3057</h4>3057</h4>

3058 3058 

3059[공통 입력 필드](#common-input-fields) 외에도 DirectoryAdded 훅은 `directory`와 `source`를 전달받습니다.3059[공통 입력 필드](#common-input-fields) 외에도, DirectoryAdded 훅은 `directory`와 `source`를 전달받습니다.

3060 3060 

3061| 필드 | 설명 |3061| 필드 | 설명 |

3062| :- | :- |3062| :- | :- |

3063| `directory` | 추가된 디렉터리의 절대 경로입니다 |3063| `directory` | 추가된 디렉터리의 절대 경로입니다 |

3064| `source` | 디렉터리가 추가된 방식이며, `/add-dir`의 경우 `"slash_command"`, SDK 제어 요청의 경우 `"register_repo_root"`입니다 |3064| `source` | 디렉터리가 추가된 방식으로, `/add-dir`의 경우 `"slash_command"`, SDK 제어 요청의 경우 `"register_repo_root"`입니다 |

3065 3065 

3066```json theme={null}3066```json theme={null}

3067{3067{


3074}3074}

3075```3075```

3076 3076 

3077DirectoryAdded 훅에는 결정 제어가 없습니다. 훅이 실행될 때 이미 완료된 추가를 차단할 수 없습니다. Claude Code는 JSON 출력에서 `continue` 필드를 삭제하고 나머지는 소스에 따라 다르게 표시합니다.3077DirectoryAdded 훅에는 결정 제어가 없습니다. 훅이 실행될 때 이미 완료된 추가를 차단할 수 없습니다. Claude Code는 JSON 출력에서 `continue` 필드를 삭제하고, 나머지는 소스에 따라 다르게 표시합니다.

3078 3078 

3079* `slash_command`: Claude Code는 훅의 `systemMessage`를 사용자에게 표시하는 대신 다음 대화 턴에서 Claude에게 컨텍스트로 전달합니다. 실패한 훅의 개수가 트랜스크립트에 표시됩니다. 전체 실패 출력은 디버그 로그에 기록됩니다3079* `slash_command`: Claude Code는 훅의 `systemMessage`를 사용자에게 표시하는 대신 다음 대화 턴에서 Claude에 컨텍스트로 전달합니다. 실패한 훅의 수가 트랜스크립트에 표시됩니다. 전체 실패 출력은 디버그 로그에 기록됩니다

3080* `register_repo_root`: Claude Code는 `systemMessage` 출력과 실패 출력을 디버그 로그에만 기록합니다3080* `register_repo_root`: Claude Code는 `systemMessage` 출력과 실패 출력을 디버그 로그에만 기록합니다

3081 3081 

3082<h3 id="filechanged">3082<h3 id="filechanged">

3083 FileChanged3083 FileChanged

3084</h3>3084</h3>

3085 3085 

3086감시 중인 파일이 디스크에서 변경될 때 실행됩니다. Claude Code는 도구 호출을 검사하는 것이 아니라 파일 시스템 감시자로 변경을 감지하므로, `Edit` 또는 `Write` 도구 호출, Claude가 `Bash`로 실행하는 스크립트, Claude Code 외부의 프로세스 등 무엇이 파일을 변경했는지와 관계없이 훅을 실행합니다. 일반적인 용도는 프로젝트 설정 파일이 변경될 때 환경 변수를 다시 로드하는 것입니다.3086감시 중인 파일이 디스크에서 변경될 때 실행됩니다. Claude Code는 도구 호출을 검사하는 것이 아니라 파일 시스템 감시자로 변경을 감지하므로, 무엇이 파일을 변경했든 훅을 실행합니다. `Edit` 또는 `Write` 도구 호출, Claude가 `Bash`로 실행하는 스크립트, 또는 Claude Code 외부의 프로세스 모두 해당됩니다. 일반적인 용도는 프로젝트 설정 파일이 변경될 때 환경 변수를 다시 로드하는 것입니다.

3087 3087 

3088이 이벤트의 `matcher`는 두 가지 역할을 합니다.3088이 이벤트의 `matcher`는 두 가지 역할을 합니다.

3089 3089 

3090* **감시 목록 구성**: 값은 `|`를 기준으로 분할되며 각 세그먼트는 작업 디렉터리의 리터럴 파일 이름으로 등록되므로, `".envrc|.env"`는 정확히 이 두 파일을 감시합니다. 여기서는 정규식 패턴이 유용하지 않습니다. `^\.env`와 같은 값은 문자 그대로 `^\.env`라는 이름의 파일을 감시합니다.3090* **감시 목록 구성**: 값을 `|`로 분할하고 각 세그먼트를 작업 디렉터리의 리터럴 파일 이름으로 등록하므로, `".envrc|.env"`는 정확히 이 두 파일을 감시합니다. 여기서는 정규식 패턴이 유용하지 않습니다. `^\.env` 같은 값은 문자 그대로 `^\.env`라는 이름의 파일을 감시합니다.

3091* **실행할 훅 필터링**: 감시 중인 파일이 변경되면 같은 값이 변경된 파일의 basename에 대해 표준 [matcher 규칙](#matcher-patterns)을 사용하여 실행할 훅 그룹을 필터링합니다.3091* **실행할 훅 필터링**: 감시 중인 파일이 변경되면, 같은 값이 표준 [matcher 규칙](#matcher-patterns)을 사용하여 변경된 파일의 기본 이름(basename)을 대상으로 실행할 훅 그룹을 필터링합니다.

3092 3092 

3093이 예시는 `Bash` 명령이나 외부 스크립트가 파일을 다시 쓰는 경우를 포함하여 `data.csv`가 변경될 때마다 줄 바꿈 문자를 정규화합니다.3093이 예시는 `Bash` 명령이나 외부 스크립트가 파일을 다시 쓰는 경우를 포함하여, 모든 변경 후 `data.csv`의 줄 끝을 정규화합니다.

3094 3094 

3095```json theme={null}3095```json theme={null}

3096{3096{


3110}3110}

3111```3111```

3112 3112 

3113훅은 stdin의 [JSON 입력](#filechanged-input)에 있는 `file_path` 필드에서 변경된 파일의 절대 경로를 읽습니다. 훅의 `grep` 가드는 `perl`이 제거하는 것과 같은 대상, 즉 줄 끝의 CR을 검사하므로 정규화 이후의 실행은 파일을 건드리지 않고 종료됩니다. 가드가 더 느슨하면 무한 루프가 발생합니다. `perl -i`는 아무것도 치환하지 않더라도 파일을 다시 쓰고, Claude Code는 파일을 다시 쓸 때마다 훅을 다시 실행하기 때문입니다. 이 스크립트를 `/path/to/normalize-line-endings.sh`에 저장하고 실행 가능하게 만듭니다.3113훅은 stdin의 [JSON 입력](#filechanged-input)에 있는 `file_path` 필드에서 변경된 파일의 절대 경로를 읽습니다. `grep` 가드는 `perl`이 제거하는 것과 같은 대상, 즉 줄 끝의 CR을 검사하므로, 정규화 이후의 실행은 파일을 건드리지 않고 종료됩니다. 더 느슨한 가드는 무한 루프에 빠집니다. `perl -i`는 치환할 것이 없어도 파일을 다시 쓰고, Claude Code는 다시 쓸 때마다 훅을 다시 실행하기 때문입니다. 이 스크립트를 `/path/to/normalize-line-endings.sh`에 저장하고 실행 가능하게 만듭니다.

3114 3114 

3115```bash theme={null}3115```bash theme={null}

3116#!/bin/bash3116#!/bin/bash


3120fi3120fi

3121```3121```

3122 3122 

3123훅이 작동하는지 확인하려면 Claude에게 `Bash` 명령으로 `data.csv`에 CRLF 줄을 추가하도록 요청합니다. Claude Code가 훅을 실행하면 파일의 줄 바꿈이 LF로 바뀝니다.3123훅이 작동하는지 확인하려면 Claude에 `Bash` 명령으로 `data.csv`에 CRLF 줄을 추가하도록 요청합니다. Claude Code가 훅을 실행하고 파일은 LF 줄 끝을 갖게 됩니다.

3124 3124 

3125미리 이름을 지정할 수 없는 파일을 감시하려면 훅에서 [`watchPaths`](#filechanged-output)를 반환하여 감시 목록을 동적으로 업데이트합니다. Claude Code는 감시할 파일이 지정된 경우에만 감시자를 시작하므로, matcher에 하나 이상의 파일 이름을 지정한 FileChanged 그룹이나 `watchPaths`를 반환하는 [SessionStart](#sessionstart-decision-control) 또는 [CwdChanged](#cwdchanged) 훅으로 목록을 초기화합니다. 감시 중인 파일이 변경될 때 matcher는 여전히 실행할 훅 그룹을 필터링하므로, 동적 경로를 처리하는 그룹에는 matcher를 생략합니다. matcher를 생략하면 감시 중인 모든 파일과 매칭되며 감시 목록에는 아무것도 추가되지 않습니다. `"*"` matcher도 모든 파일과 매칭되지만, Claude Code는 이를 다른 값과 마찬가지로 `*`라는 이름의 리터럴 파일로 감시 목록에 등록합니다.3125미리 이름을 지정할 수 없는 파일을 감시하려면 훅에서 [`watchPaths`](#filechanged-output)를 반환하여 감시 목록을 동적으로 업데이트합니다. Claude Code는 감시할 파일이 지정될 때만 감시자를 시작하므로, matcher가 최소 하나의 파일을 지정하는 FileChanged 그룹이나 `watchPaths`를 반환하는 [SessionStart](#sessionstart-decision-control) 또는 [CwdChanged](#cwdchanged) 훅으로 목록을 초기화합니다. matcher는 감시 중인 파일이 변경될 때 실행할 훅 그룹을 여전히 필터링하므로, 동적 경로를 처리하는 그룹에는 matcher를 생략합니다. 생략된 matcher는 모든 감시 파일과 매칭되며 감시 목록에 아무것도 추가하지 않습니다. `"*"` matcher도 모든 파일과 매칭되지만, Claude Code는 이를 다른 값과 마찬가지로 `*`라는 이름의 리터럴 파일로 감시 목록에 등록합니다.

3126 3126 

3127FileChanged 훅은 [`CLAUDE_ENV_FILE`](#persist-environment-variables)에 접근할 수 있습니다. 해당 파일에 기록된 변수는 다음 [CwdChanged](#cwdchanged) 이벤트에서 Claude Code가 지울 때까지 이후의 Bash 명령에서 유지됩니다.3127FileChanged 훅은 [`CLAUDE_ENV_FILE`](#persist-environment-variables)에 접근할 수 있습니다. 해당 파일에 기록된 변수는 다음 [CwdChanged](#cwdchanged) 이벤트에서 Claude Code가 이를 지울 때까지 이후의 Bash 명령에 유지됩니다.

3128 3128 

3129<h4 id="filechanged-input">3129<h4 id="filechanged-input">

3130 FileChanged 입력3130 FileChanged input

3131</h4>3131</h4>

3132 3132 

3133[공통 입력 필드](#common-input-fields) 외에도 FileChanged 훅은 `file_path`와 `event`를 전달받습니다.3133[공통 입력 필드](#common-input-fields) 외에도, FileChanged 훅은 `file_path`와 `event`를 전달받습니다.

3134 3134 

3135| 필드 | 설명 |3135| 필드 | 설명 |

3136| :- | :- |3136| :- | :- |


3149```3149```

3150 3150 

3151<h4 id="filechanged-output">3151<h4 id="filechanged-output">

3152 FileChanged 출력3152 FileChanged output

3153</h4>3153</h4>

3154 3154 

3155모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 FileChanged 훅은 감시할 파일 경로를 동적으로 업데이트하기 위해 `watchPaths`를 반환할 수 있습니다.3155모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도, FileChanged 훅은 `watchPaths`를 반환하여 감시할 파일 경로를 동적으로 업데이트할 수 있습니다.

3156 3156 

3157| 필드 | 설명 |3157| 필드 | 설명 |

3158| :- | :- |3158| :- | :- |

3159| `watchPaths` | 절대 경로 배열입니다. 현재 동적 감시 목록을 대체합니다. `matcher` 구성의 경로는 항상 감시됩니다. 훅 스크립트가 변경된 파일을 기반으로 감시할 추가 파일을 발견한 경우에 사용합니다 |3159| `watchPaths` | 절대 경로의 배열입니다. 현재 동적 감시 목록을 대체합니다. `matcher` 구성의 경로는 항상 감시됩니다. 훅 스크립트가 변경된 파일을 기반으로 감시할 추가 파일을 찾았을 때 사용합니다 |

3160 3160 

3161FileChanged 훅에는 결정 제어가 없습니다. 파일 변경이 발생하는 것을 차단할 수 없습니다.3161FileChanged 훅에는 결정 제어가 없습니다. 파일 변경이 일어나는 것을 차단할 수 없습니다.

3162 3162 

3163Claude Code는 JSON 출력에서 `watchPaths`와 `systemMessage`를 읽고 `continue`는 삭제합니다. 대화형 세션에서는 `systemMessage`를 짧은 터미널 알림으로 표시합니다. 이 메시지는 SDK 메시지 스트림에 도달하지 않습니다.3163Claude Code는 JSON 출력에서 `watchPaths`와 `systemMessage`를 읽고 `continue`는 삭제합니다. 대화형 세션에서는 `systemMessage`를 짧은 터미널 알림으로 표시합니다. 이 메시지는 SDK 메시지 스트림에 전달되지 않습니다.

3164 3164 

3165<h3 id="worktreecreate">3165<h3 id="worktreecreate">

3166 WorktreeCreate3166 WorktreeCreate

3167</h3>3167</h3>

3168 3168 

3169`claude --worktree`, [`isolation: "worktree"`를 사용하는 서브에이전트](/docs/ko/sub-agents#choose-the-subagent-scope), 또는 Claude Code가 자체 워크트리에 격리하는 [백그라운드 세션](/docs/ko/agent-view#how-file-edits-are-isolated) 등에서 워크트리가 생성될 때 실행됩니다. 기본적으로 Claude Code는 `git worktree`로 격리된 작업 사본을 만듭니다. WorktreeCreate 훅을 구성하면 이 기본 git 동작이 대체되므로 SVN, Perforce, Mercurial과 같은 다른 버전 관리 시스템을 사용할 수 있습니다.3169`claude --worktree`, [`isolation: "worktree"`를 사용하는 서브에이전트](/docs/ko/sub-agents#choose-the-subagent-scope), 또는 Claude Code가 자체 worktree에 격리하는 [백그라운드 세션](/docs/ko/agent-view#how-file-edits-are-isolated) 등으로 worktree가 생성될 때 실행됩니다. 기본적으로 Claude Code는 `git worktree`로 격리된 작업 사본을 생성합니다. WorktreeCreate 훅을 구성하면 이 기본 git 동작이 대체되므로, SVN, Perforce, Mercurial 같은 다른 버전 관리 시스템을 사용할 수 있습니다.

3170 3170 

3171훅이 기본 동작을 완전히 대체하므로 [`.worktreeinclude`](/docs/ko/worktrees#copy-gitignored-files-into-worktrees)는 처리되지 않습니다. `.env`와 같은 로컬 설정 파일을 새 워크트리에 복사해야 한다면 훅 스크립트 내부에서 수행합니다.3171훅이 기본 동작을 완전히 대체하므로 [`.worktreeinclude`](/docs/ko/worktrees#copy-gitignored-files-into-worktrees)는 처리되지 않습니다. `.env` 같은 로컬 설정 파일을 새 워크트리에 복사해야 하는 경우 훅 스크립트 안에서 수행합니다.

3172 3172 

3173훅은 생성된 worktree 디렉터리의 경로를 반환해야 합니다. Claude Code는 이 경로를 격리된 세션의 작업 디렉터리로 사용합니다. 각 훅 유형이 경로를 반환하는 방법은 [WorktreeCreate 출력](#worktreecreate-output)을 참조하세요.3173훅은 생성된 worktree 디렉터리의 경로를 반환해야 합니다. Claude Code는 이 경로를 격리된 세션의 작업 디렉터리로 사용합니다. 각 훅 유형이 경로를 반환하는 방법은 [WorktreeCreate 출력](#worktreecreate-output)을 참조하세요.

3174 3174 

3175Claude Code는 훅의 성공 여부와 반환된 경로에 따라 동작하며, `systemMessage`와 `continue`는 삭제합니다.3175Claude Code는 훅의 성공 여부와 반환된 경로에 따라 동작하며, `systemMessage`와 `continue`는 삭제합니다.

3176 3176 

3177이 예시는 SVN 작업 사본을 만들고 Claude Code가 사용할 경로를 출력합니다. 저장소 URL을 자신의 것으로 바꾸세요.3177이 예시는 SVN 작업 사본을 생성하고 Claude Code가 사용할 경로를 출력합니다. 저장소 URL을 자신의 것으로 바꿉니다.

3178 3178 

3179```json theme={null}3179```json theme={null}

3180{3180{


3193}3193}

3194```3194```

3195 3195 

3196훅은 stdin의 JSON 입력에서 worktree `name`을 읽고, 새 디렉터리에 새 사본을 체크아웃한 다음, 디렉터리 경로를 출력합니다. 마지막 줄의 `echo`가 Claude Code가 worktree 경로로 읽는 부분입니다. 경로에 간섭하지 않도록 다른 모든 출력은 stderr로 리디렉션합니다.3196훅은 stdin의 JSON 입력에서 worktree `name`을 읽고, 새 디렉터리에 새 사본을 체크아웃한 다음, 디렉터리 경로를 출력합니다. 마지막 줄의 `echo`가 Claude Code가 worktree 경로로 읽는 부분입니다. 경로에 방해가 되지 않도록 다른 모든 출력은 stderr로 리디렉션합니다.

3197 3197 

3198<h4 id="worktreecreate-input">3198<h4 id="worktreecreate-input">

3199 WorktreeCreate 입력3199 WorktreeCreate input

3200</h4>3200</h4>

3201 3201 

3202[공통 입력 필드](#common-input-fields) 외에도 WorktreeCreate 훅은 `name` 필드를 전달받습니다. 이는 새 워크트리의 슬러그 식별자로, 사용자가 지정하거나 자동 생성되며 예를 들면 `bold-oak-a3f2`와 같습니다.3202[공통 입력 필드](#common-input-fields) 외에도, WorktreeCreate 훅은 `name` 필드를 전달받습니다. 이는 사용자가 지정하거나 자동 생성된 새 worktree의 슬러그 식별자로, 예를 들면 `bold-oak-a3f2`입니다.

3203 3203 

3204```json theme={null}3204```json theme={null}

3205{3205{


3217 3217 

3218WorktreeCreate 훅은 표준 허용/차단 결정 모델을 사용하지 않습니다. 대신 훅의 성공 또는 실패가 결과를 결정합니다. 훅은 생성된 worktree 디렉터리의 경로를 반환해야 합니다.3218WorktreeCreate 훅은 표준 허용/차단 결정 모델을 사용하지 않습니다. 대신 훅의 성공 또는 실패가 결과를 결정합니다. 훅은 생성된 worktree 디렉터리의 경로를 반환해야 합니다.

3219 3219 

3220* **명령 훅** (`type: "command"`): 경로를 stdout의 마지막 비어 있지 않은 줄로 출력합니다. Claude Code는 해당 줄을 읽기 전에 ANSI 이스케이프 코드를 제거하므로 `echo` 전에 출력된 셸 시작 배너는 무시됩니다. 그 밖의 훅 출력은 stderr로 리디렉션합니다.3220* **명령 훅** (`type: "command"`): stdout의 비어 있지 않은 마지막 줄에 경로를 출력합니다. Claude Code는 해당 줄을 읽기 전에 ANSI 이스케이프 코드를 제거하므로 `echo` 이전에 출력된 셸 시작 배너는 무시됩니다. 그 밖의 훅 출력은 stderr로 리디렉션하십시오.

3221* **HTTP 훅** (`type: "http"`): 응답 본문에 `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }`를 반환합니다.3221* **HTTP 훅** (`type: "http"`): 응답 본문에 `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }`를 반환합니다.

3222 3222 

3223훅이 실패하거나 경로를 생성하지 않으면 worktree 생성이 오류와 함께 실패합니다.3223훅이 실패하거나 경로를 생성하지 않으면 worktree 생성이 오류와 함께 실패합니다.

3224 3224 

3225Claude Code는 상대 경로를 훅이 실행된 디렉터리를 기준으로 해석하며, 경로에 포함된 `.` 또는 `..` 세그먼트를 정리합니다. 결과 경로가 Claude Code가 진입할 수 있는 디렉터리가 아니면 세션은 해당 경로를 명시한 오류를 출력하고 코드 1로 종료합니다.3225Claude Code는 상대 경로를 훅이 실행된 디렉터리를 기준으로 해석하며, 경로에 포함된 `.` 또는 `..` 세그먼트를 정리합니다. 결과 경로가 Claude Code가 진입할 수 있는 디렉터리가 아니면 세션은 해당 경로를 명시한 오류를 출력하고 코드 1로 종료됩니다.

3226 3226 

3227Claude Code는 `.` 또는 `..` 세그먼트를 포함하는 절대 경로와 저장소 루트 아래의 심볼릭 링크를 통과하는 모든 경로를 거부합니다. 저장소에 커밋된 심볼릭 링크가 worktree를 저장소 외부로 리디렉션할 수 있기 때문입니다. 오류에는 거부된 구성 요소가 명시됩니다. 저장소 내부의 심볼릭 링크를 통과하지 않는 정규화된 경로를 반환해야 합니다. v2.1.216 이전에는 worktree 생성 시 이러한 검사 없이 훅의 경로를 그대로 따랐습니다.3227Claude Code는 `.` 또는 `..` 세그먼트가 포함된 절대 경로와 저장소 루트 아래의 심볼릭 링크를 거치는 모든 경로를 거부합니다. 저장소에 커밋된 심볼릭 링크가 워크트리를 저장소 외부로 리디렉션할 수 있기 때문입니다. 오류 메시지에는 거부된 구성 요소가 명시됩니다. 저장소 내부의 심볼릭 링크를 거치지 않는 정규화된 경로를 반환하십시오. v2.1.216 이전에는 worktree 생성 시 이러한 검사 없이 훅의 경로를 그대로 따랐습니다.

3228 3228 

3229<h3 id="worktreeremove">3229<h3 id="worktreeremove">

3230 WorktreeRemove3230 WorktreeRemove

3231</h3>3231</h3>

3232 3232 

3233worktree가 제거될 때 실행됩니다. [WorktreeCreate](#worktreecreate)에 대응하는 정리용 이벤트입니다. 이 이벤트는 다음과 같은 경우에 발생합니다.3233worktree가 제거될 때 실행됩니다. [WorktreeCreate](#worktreecreate)에 대응하는 정리용 이벤트입니다. 이 이벤트는 다음 경우에 발생합니다.

3234 3234 

3235* `--worktree` 세션을 종료하면서 제거를 선택한 경우3235* `--worktree` 세션을 종료하면서 제거를 선택한 경우

3236* `isolation: "worktree"`가 설정된 서브에이전트가 완료된 경우3236* `isolation: "worktree"`가 설정된 서브에이전트가 완료된 경우

3237* 훅이 생성한 worktree를 사용하는 [백그라운드 세션](/docs/ko/agent-view#what-deleting-a-session-removes)을 삭제한 경우3237* 훅이 생성한 worktree를 사용하는 [백그라운드 세션](/docs/ko/agent-view#what-deleting-a-session-removes)을 삭제한 경우

3238 3238 

3239git 기반 worktree의 경우 Claude Code가 `git worktree remove`로 정리를 자동 처리합니다. WorktreeCreate 훅을 구성했다면 WorktreeRemove 훅과 함께 사용하여 해당 훅이 생성한 worktree의 정리를 제어하십시오.3239git 기반 worktree의 경우 Claude Code가 `git worktree remove`로 정리를 자동으로 처리합니다. WorktreeCreate 훅을 구성했다면 WorktreeRemove 훅과 함께 사용하여 해당 훅이 생성한 워크트리의 정리를 제어하십시오.

3240 3240 

3241* **WorktreeRemove 훅이 없는 경우**: `--worktree` 세션을 종료하면서 제거를 선택하면 Claude Code는 WorktreeCreate 훅이 반환한 경로에 대해 `git worktree remove --force`로 폴백하므로, git이 인식하는 worktree는 제거됩니다. git이 인식하지 못하는 worktree(예: 훅이 git 이외의 버전 관리 시스템으로 생성한 worktree)는 디스크에 남습니다. [백그라운드 세션](/docs/ko/agent-view#what-deleting-a-session-removes)을 삭제할 때 훅이 생성한 worktree가 어떻게 처리되는지는 에이전트 뷰의 삭제 규칙을 참조하십시오.3241* **WorktreeRemove 훅이 없는 경우**: `--worktree` 세션을 종료하면서 제거를 선택하면 Claude Code는 WorktreeCreate 훅이 반환한 경로에 대해 `git worktree remove --force`로 폴백하므로, git이 인식하는 worktree는 제거됩니다. git이 인식하지 못하는 워크트리(예: 훅이 git이 아닌 버전 관리 시스템으로 생성한 워크트리)는 디스크에 남습니다. [백그라운드 세션](/docs/ko/agent-view#what-deleting-a-session-removes)을 삭제할 때 훅이 생성한 워크트리가 어떻게 처리되는지는 에이전트 뷰의 삭제 규칙을 참조하십시오.

3242* **훅이 0으로 종료하는 경우**: worktree가 제거된 것으로 간주됩니다. Claude Code는 훅에서 다른 정보를 읽지 않으므로 훅이 디렉터리를 실제로 삭제했는지 확인해야 합니다.3242* **훅이 0으로 종료되는 경우**: 워크트리가 제거된 것으로 간주됩니다. Claude Code는 훅에서 다른 내용을 읽지 않으므로 훅이 디렉터리를 실제로 삭제했는지 확인하십시오.

3243* **훅이 0이 아닌 코드로 종료하는 경우**: 이후에도 `worktree_path`의 디렉터리가 존재하면 제거가 실패하며, worktree는 git 폴백 없이 디스크에 남습니다. 0이 아닌 코드로 종료하기 전에 디렉터리를 삭제한 훅은 제거된 것으로 간주됩니다. 실패가 보고되는 방식은 [WorktreeRemove 입력](#worktreeremove-input)을 참조하십시오.3243* **훅이 0이 아닌 코드로 종료되는 경우**: 이후에도 `worktree_path`의 디렉터리가 여전히 존재하면 제거가 실패하고, 워크트리는 git 폴백 없이 디스크에 남습니다. 0이 아닌 코드로 종료하기 전에 디렉터리를 삭제한 훅은 제거된 것으로 간주됩니다. 실패가 보고되는 방식은 [WorktreeRemove 입력](#worktreeremove-input)을 참조하십시오.

3244 3244 

3245Claude Code는 WorktreeCreate 훅이 반환한 경로만 알기 때문에 훅이 생성한 worktree에 속한 브랜치를 삭제하지 않습니다. WorktreeCreate 훅이 브랜치를 생성한다면 WorktreeRemove 훅에서 해당 브랜치를 삭제하십시오.3245Claude Code는 WorktreeCreate 훅이 반환한 경로만 알기 때문에 훅이 생성한 워크트리에 속한 브랜치를 삭제하지 않습니다. WorktreeCreate 훅이 브랜치를 생성한다면 WorktreeRemove 훅에서 해당 브랜치를 삭제하십시오.

3246 3246 

3247Claude Code는 WorktreeRemove 훅의 `systemMessage`, `continue` 등 [JSON 출력 필드](#json-output)를 무시합니다.3247Claude Code는 `systemMessage`, `continue` 등 WorktreeRemove 훅의 [JSON 출력 필드](#json-output)를 폐기합니다.

3248 3248 

3249백그라운드 세션 삭제 시 Claude Code는 훅을 실행하기 전에 저장된 worktree 경로를 검증하며, 심볼릭 링크이거나 저장소 루트 아래의 심볼릭 링크를 통과하는 경로는 거부합니다. 아직 파일이 남아 있는 worktree에 대해서는 [에이전트 뷰](/docs/ko/agent-view#what-deleting-a-session-removes)에서 삭제를 확인한 경우에만 훅이 실행됩니다. 이러한 worktree의 경우 [`claude rm`](/docs/ko/agent-view#manage-sessions-from-the-shell)은 세션과 worktree를 그대로 유지합니다. v2.1.216 이전에는 이러한 검사 없이 저장된 경로에 대해 훅이 실행되었습니다.3249백그라운드 세션 삭제 시 Claude Code는 훅을 실행하기 전에 저장된 worktree 경로를 검증하며, 심볼릭 링크이거나 저장소 루트 아래의 심볼릭 링크를 거치는 경로를 거부합니다. 파일이 아직 남아 있는 워크트리에 대해서는 [에이전트 뷰](/docs/ko/agent-view#what-deleting-a-session-removes)에서 삭제를 확인한 경우에만 훅이 실행되며, 이러한 워크트리에 대해 [`claude rm`](/docs/ko/agent-view#manage-sessions-from-the-shell)은 세션과 워크트리를 그대로 유지합니다. v2.1.216 이전에는 이러한 검사 없이 저장된 경로에 대해 훅이 실행되었습니다.

3250 3250 

3251Claude Code는 WorktreeCreate가 반환한 경로를 훅 입력의 `worktree_path`로 전달합니다. 다음 예시는 해당 경로를 읽어 디렉터리를 제거합니다.3251Claude Code는 WorktreeCreate가 반환한 경로를 훅 입력의 `worktree_path`로 전달합니다. 다음 예시는 해당 경로를 읽어 디렉터리를 제거합니다.

3252 3252 


3271 WorktreeRemove 입력3271 WorktreeRemove 입력

3272</h4>3272</h4>

3273 3273 

3274[공통 입력 필드](#common-input-fields) 외에도 WorktreeRemove 훅은 제거되는 worktree의 절대 경로인 `worktree_path` 필드를 받습니다.3274[공통 입력 필드](#common-input-fields)에 더해 WorktreeRemove 훅은 제거되는 worktree의 절대 경로인 `worktree_path` 필드를 받습니다.

3275 3275 

3276```json theme={null}3276```json theme={null}

3277{3277{


3283}3283}

3284```3284```

3285 3285 

3286WorktreeRemove 훅의 종료 코드가 결과를 결정합니다. 훅이 0이 아닌 코드로 종료하고 이후에도 `worktree_path`의 디렉터리가 존재하면 제거가 실패합니다.3286WorktreeRemove 훅의 종료 코드가 결과를 결정합니다. 훅이 0이 아닌 코드로 종료되고 이후에도 `worktree_path`의 디렉터리가 여전히 존재하면 제거가 실패합니다.

3287 3287 

3288* worktree는 디스크에 남으며, 훅의 명령과 stderr는 [디버그 로그](#debug-hooks)에 기록됩니다.3288* 워크트리는 디스크에 남고, 훅의 명령과 stderr는 [디버그 로그](#debug-hooks)에 기록됩니다.

3289* 백그라운드 세션을 삭제하던 중이었다면 세션도 유지됩니다. [에이전트 뷰](/docs/ko/agent-view#what-deleting-a-session-removes)의 거부 메시지는 `exited 1`과 같이 훅이 어떻게 종료되었는지 보고하고, stderr의 앞부분을 인용하며, 세션을 다시 삭제하면 디렉터리가 어쨌든 제거되는지 여부를 알려 줍니다.3289* 백그라운드 세션을 삭제하던 중이었다면 세션도 유지됩니다. [에이전트 뷰](/docs/ko/agent-view#what-deleting-a-session-removes)의 거부 메시지는 `exited 1`과 같이 훅이 어떻게 종료되었는지 보고하고, stderr의 앞부분을 인용하며, 세션을 다시 삭제하면 디렉터리가 그래도 제거되는지 여부를 알려줍니다.

3290 3290 

3291<h3 id="precompact">3291<h3 id="precompact">

3292 PreCompact3292 PreCompact


3296 3296 

3297matcher 값은 압축이 수동으로 트리거되었는지 자동으로 트리거되었는지를 나타냅니다.3297matcher 값은 압축이 수동으로 트리거되었는지 자동으로 트리거되었는지를 나타냅니다.

3298 3298 

3299| Matcher | 발생 시점 |3299| Matcher | 실행 시점 |

3300| :- | :- |3300| :- | :- |

3301| `manual` | `/compact` |3301| `manual` | `/compact` |

3302| `auto` | 대화가 [자동 압축 윈도우](/docs/ko/model-config#set-the-auto-compact-window)에 도달하여 자동 압축될 때 |3302| `auto` | 대화가 [자동 압축 윈도우](/docs/ko/model-config#set-the-auto-compact-window)에 도달하여 자동 압축될 때 |

3303 3303 

3304압축을 차단하려면 코드 2로 종료합니다. 수동 `/compact`의 경우 stderr 메시지가 사용자에게 표시됩니다. `"decision": "block"`이 포함된 JSON을 반환하여 차단할 수도 있습니다.3304압축을 차단하려면 코드 2로 종료하십시오. 수동 `/compact`의 경우 stderr 메시지가 사용자에게 표시됩니다. `"decision": "block"`이 포함된 JSON을 반환하여 차단할 수도 있습니다.

3305 3305 

3306자동 압축을 차단하면 발생 시점에 따라 효과가 다릅니다. 컨텍스트 한도에 도달하기 전에 선제적으로 압축이 트리거된 경우 Claude Code는 압축을 건너뛰고 압축되지 않은 상태로 대화를 계속합니다. API가 이미 반환한 컨텍스트 한도 오류에서 복구하기 위해 압축이 트리거된 경우에는 원래 오류가 표시되고 현재 요청이 실패합니다.3306자동 압축을 차단하면 실행 시점에 따라 효과가 달라집니다. 컨텍스트 한도에 도달하기 전에 선제적으로 압축이 트리거된 경우 Claude Code는 압축을 건너뛰고 대화는 압축되지 않은 상태로 계속됩니다. API가 이미 반환한 컨텍스트 한도 오류에서 복구하기 위해 압축이 트리거된 경우에는 원래 오류가 드러나고 현재 요청이 실패합니다.

3307 3307 

3308Claude Code는 PreCompact 훅의 `systemMessage` 및 `continue` 필드를 무시합니다.3308Claude Code는 PreCompact 훅의 `systemMessage` 및 `continue` 필드를 폐기합니다.

3309 3309 

3310<h4 id="precompact-input">3310<h4 id="precompact-input">

3311 PreCompact 입력3311 PreCompact 입력

3312</h4>3312</h4>

3313 3313 

3314[공통 입력 필드](#common-input-fields) 외에도 PreCompact 훅은 `trigger`와 `custom_instructions`를 받습니다. `manual`의 경우 `custom_instructions`에는 사용자가 `/compact`에 전달한 내용이 담기며, 아무것도 전달하지 않으면 `null`입니다. `auto`의 경우 `custom_instructions`는 `null`입니다.3314[공통 입력 필드](#common-input-fields)에 더해 PreCompact 훅은 `trigger`와 `custom_instructions`를 받습니다. `manual`의 경우 `custom_instructions`에는 사용자가 `/compact`에 전달한 내용이 담기며, 아무것도 전달하지 않으면 `null`입니다. `auto`의 경우 `custom_instructions`는 `null`입니다.

3315 3315 

3316```json theme={null}3316```json theme={null}

3317{3317{


3328 PostCompact3328 PostCompact

3329</h3>3329</h3>

3330 3330 

3331Claude Code가 압축 작업을 완료한 후 실행됩니다. 이 이벤트를 사용하여 새로 압축된 상태에 대응할 수 있습니다. 예를 들어 생성된 요약을 로그에 기록하거나 외부 상태를 업데이트할 수 있습니다. Claude Code는 PostCompact 훅의 `systemMessage` 및 `continue` 필드를 무시합니다.3331Claude Code가 압축 작업을 완료한 후 실행됩니다. 새로 압축된 상태에 대응할 때 이 이벤트를 사용하십시오. 예를 들어 생성된 요약을 로그에 기록하거나 외부 상태를 업데이트할 수 있습니다. Claude Code는 PostCompact 훅의 `systemMessage` 및 `continue` 필드를 폐기합니다.

3332 3332 

3333`PreCompact`와 동일한 matcher 값이 적용됩니다.3333`PreCompact`와 동일한 matcher 값이 적용됩니다.

3334 3334 

3335| Matcher | 발생 시점 |3335| Matcher | 실행 시점 |

3336| :- | :- |3336| :- | :- |

3337| `manual` | `/compact` 이후 |3337| `manual` | `/compact` 이후 |

3338| `auto` | 대화가 [자동 압축 윈도우](/docs/ko/model-config#set-the-auto-compact-window)에 도달하여 자동 압축된 이후 |3338| `auto` | 대화가 [자동 압축 윈도우](/docs/ko/model-config#set-the-auto-compact-window)에 도달하여 자동 압축된 이후 |


3341 PostCompact 입력3341 PostCompact 입력

3342</h4>3342</h4>

3343 3343 

3344[공통 입력 필드](#common-input-fields) 외에도 PostCompact 훅은 `trigger`와 `compact_summary`를 받습니다. `compact_summary` 필드에는 압축 작업으로 생성된 대화 요약이 담깁니다.3344[공통 입력 필드](#common-input-fields)에 더해 PostCompact 훅은 `trigger`와 `compact_summary`를 받습니다. `compact_summary` 필드에는 압축 작업으로 생성된 대화 요약이 담깁니다.

3345 3345 

3346```json theme={null}3346```json theme={null}

3347{3347{


3360 PreModelSwitch3360 PreModelSwitch

3361</h3>3361</h3>

3362 3362 

3363사용자 또는 클라이언트가 요청한 모델 전환을 Claude Code가 적용하기 전에 실행됩니다. 전환을 차단하거나, 확인을 요구하거나, 전환이 일어나기 전에 전환 비용을 보여 주는 데 사용합니다.3363사용자나 클라이언트가 요청한 모델 전환을 Claude Code가 적용하기 전에 실행됩니다. 전환을 차단하거나, 확인을 요구하거나, 전환이 일어나기 전에 전환 비용을 표시하는 데 사용하십시오.

3364 3364 

3365PreModelSwitch에는 Claude Code v2.1.251 이상이 필요합니다. Claude Code는 다음 요청에 대해 이 훅을 실행합니다.3365PreModelSwitch를 사용하려면 Claude Code v2.1.251 이상이 필요합니다. Claude Code는 다음 요청에 대해 이 훅을 실행합니다.

3366 3366 

3367* `/model <name>` 및 `/model` 선택기3367* `/model <name>` 및 `/model` 선택기

3368* `Option+P` 또는 `Alt+P` 모델 선택기3368* `Option+P` 또는 `Alt+P` 모델 선택기

3369* `/config`의 Model 설정3369* `/config`의 Model 설정

3370* 세션의 모델을 변경하는 [빠른 모드](/docs/ko/fast-mode) 켜기3370* [빠른 모드](/docs/ko/fast-mode)를 켜서 세션의 모델이 변경되는 경우

3371* [Agent SDK](/docs/ko/agent-sdk/typescript#query-object) 호스트 또는 [Remote Control](/docs/ko/remote-control)의 `set_model` 요청, 또는 `apply_flag_settings` 요청에 포함된 모델 변경3371* [Agent SDK](/docs/ko/agent-sdk/typescript#query-object) 호스트 또는 [Remote Control](/docs/ko/remote-control)에서 보낸 `set_model` 요청이나 `apply_flag_settings` 요청 내의 모델 변경

3372 3372 

3373Claude Code는 [자동 모델 폴백](/docs/ko/model-config#automatic-model-fallback)이나 세션 재개 시 모델 복원처럼 자체적으로 수행하는 전환에 대해서는 PreModelSwitch 훅을 실행하지 않습니다. 이러한 변경은 [PostModelSwitch](#postmodelswitch)에만 전달됩니다.3373[자동 모델 폴백](/docs/ko/model-config#automatic-model-fallback)이나 세션을 재개할 때의 모델 복원처럼 Claude Code가 자체적으로 수행하는 전환에 대해서는 PreModelSwitch 훅을 실행하지 않습니다. 이러한 변경은 [PostModelSwitch](#postmodelswitch)에만 전달됩니다.

3374 3374 

3375Claude Code는 `[1m]` 접미사를 무시하고, 세션이 전환하려는 모델의 정식 이름과 matcher를 비교합니다. `opus`와 같은 별칭, 날짜가 포함된 모델 ID, Amazon Bedrock 모델 ID와 같은 제공업체별 ID는 모두 해석 결과인 하나의 정식 이름과 일치하므로, `claude-opus-5`는 Opus 5의 모든 표기를 포괄합니다.3375Claude Code는 `[1m]` 접미사를 무시하고 세션이 전환하려는 모델의 정식 이름과 matcher를 비교합니다. `opus` 같은 별칭, 날짜가 포함된 모델 ID, Amazon Bedrock 모델 ID 같은 공급자별 ID는 모두 해석되는 하나의 정식 이름과 일치하므로, `claude-opus-5`는 Opus 5의 모든 표기를 포괄합니다.

3376 3376 

3377[LLM 게이트웨이](/docs/ko/llm-gateway)만 아는 사용자 지정 모델 ID처럼 Claude Code가 대상의 정식 이름을 확인할 수 없는 경우에는 matcher와 관계없이 모든 PreModelSwitch 훅을 실행합니다. 따라서 차단하는 훅은 matcher에만 의존하지 말고 입력의 `to_model`을 확인해야 합니다.3377대상의 정식 이름을 확인할 수 없는 경우(예: [LLM 게이트웨이](/docs/ko/llm-gateway)만 알고 있는 사용자 지정 모델 ID) Claude Code는 matcher와 관계없이 모든 PreModelSwitch 훅을 실행합니다. 따라서 차단하는 훅은 matcher에만 의존하지 말고 입력의 `to_model`을 확인해야 합니다.

3378 3378 

3379matcher는 정확한 이름, `claude-opus-4-6|claude-opus-5`와 같은 `|`로 구분된 목록, 또는 `.*opus.*`와 같은 정규식으로 작성합니다. 다음 예시는 정확한 이름 matcher를 사용하면서 훅 입력의 `to_model`도 확인하므로, 코드 2로 종료하여 Opus 4.6으로의 전환을 거부하고 다른 대상은 허용합니다.3379matcher는 정확한 이름, `claude-opus-4-6|claude-opus-5`처럼 `|`로 구분된 목록, 또는 `.*opus.*` 같은 정규식으로 작성합니다. 다음 예시는 정확한 이름 matcher를 사용하면서 훅 입력의 `to_model`도 확인하여, Opus 4.6으로의 전환은 코드 2로 종료하여 거부하고 다른 대상은 허용합니다.

3380 3380 

3381<Tabs>3381<Tabs>

3382 <Tab title="macOS/Linux">3382 <Tab title="macOS/Linux">

3383 명령이 `jq`로 `to_model`을 확인합니다.3383 명령은 `jq`로 `to_model`을 확인합니다.

3384 3384 

3385 ```json theme={null}3385 ```json theme={null}

3386 {3386 {


3442 </Tab>3442 </Tab>

3443</Tabs>3443</Tabs>

3444 3444 

3445훅이 작동하는지 확인하려면 다른 모델을 실행 중인 세션에서 `/model claude-opus-4-6`을 실행합니다. Claude Code는 현재 모델을 유지하고, PreModelSwitch 훅이 전환을 차단했다고 보고하며, 작성한 메시지를 이유로 표시합니다.3445훅이 작동하는지 확인하려면 다른 모델을 실행 중인 세션에서 `/model claude-opus-4-6`을 실행하십시오. Claude Code는 현재 모델을 유지하고, PreModelSwitch 훅이 전환을 차단했다고 사용자의 메시지를 사유로 함께 보고합니다.

3446 3446 

3447<h4 id="premodelswitch-input">3447<h4 id="premodelswitch-input">

3448 PreModelSwitch 입력3448 PreModelSwitch 입력

3449</h4>3449</h4>

3450 3450 

3451[공통 입력 필드](#common-input-fields) 외에도 PreModelSwitch 훅은 다음 표의 필드를 받습니다. 마지막 다섯 개 필드는 대화를 새 모델로 다시 전송하는 비용을 설명하므로, 훅은 전환이 일어나기 전에 해당 수치를 보여 줄 수 있습니다.3451[공통 입력 필드](#common-input-fields)에 더해 PreModelSwitch 훅은 다음 표의 필드를 받습니다. 마지막 다섯 개 필드는 대화를 새 모델로 다시 전송하는 비용을 나타내므로, 훅은 전환이 일어나기 전에 해당 수치를 표시할 수 있습니다.

3452 3452 

3453| 필드 | 유형 | 설명 |3453| 필드 | 타입 | 설명 |

3454| :- | :- | :- |3454| :- | :- | :- |

3455| `from_model` | string | 전환 전 모델 ID |3455| `from_model` | string | 전환 전 모델 ID |

3456| `to_model` | string | 전환 후 모델 ID. matcher는 이 모델의 정식 이름과 비교됩니다 |3456| `to_model` | string | 전환 후 모델 ID. matcher는 이 모델의 정식 이름과 비교됩니다 |

3457| `requested_model` | string 또는 `null` | 요청에 지정된 모델: `opus`와 같은 별칭, 전체 모델 ID, 또는 기본 모델을 요청한 경우 `null` |3457| `requested_model` | string 또는 `null` | 요청에서 지정한 모델: `opus` 같은 별칭, 전체 모델 ID, 또는 기본 모델을 요청한 경우 `null` |

3458| `source` | string | 요청의 출처: `/model <name>`, `/config`의 Model 설정 또는 빠른 모드 켜기의 경우 `"command"`, 모델 선택기의 경우 `"picker"`, Agent SDK 호스트 또는 Remote Control의 `set_model` 요청이나 `apply_flag_settings` 요청의 모델 변경의 경우 `"sdk"` |3458| `source` | string | 요청의 출처: `/model <name>`, `/config`의 Model 설정, 빠른 모드 켜기의 경우 `"command"`, 모델 선택기의 경우 `"picker"`, Agent SDK 호스트 또는 Remote Control에서 보낸 `set_model` 요청이나 `apply_flag_settings` 요청 내 모델 변경의 경우 `"sdk"` |

3459| `context_tokens` | number | 다음 요청이 프롬프트로 다시 전송하는 토큰: 메인 대화의 마지막 응답에 대한 입력, 캐시 읽기, 캐시 생성 및 출력 토큰의 합계. 첫 번째 응답 이전에는 `0` |3459| `context_tokens` | number | 다음 요청이 프롬프트로 다시 전송하는 토큰: 메인 대화의 마지막 응답에 대한 입력, 캐시 읽기, 캐시 생성, 출력 토큰의 합계. 첫 번째 응답 전에는 `0` |

3460| `prompt_cache_warm` | boolean | 현재 모델의 프롬프트 캐시가 아직 웜 상태일 가능성이 높은지 여부. 웜 상태라면 전환 시 캐시를 잃게 됩니다 |3460| `prompt_cache_warm` | boolean | 현재 모델의 프롬프트 캐시가 아직 활성 상태일 가능성이 높은지 여부. 즉 전환 시 해당 캐시를 잃게 됨을 의미합니다 |

3461| `cache_ttl` | string | Claude Code가 이 세션에 요청하는 [프롬프트 캐시 수명](/docs/ko/prompt-caching#cache-lifetime): `"5m"` 또는 `"1h"` |3461| `cache_ttl` | string | Claude Code가 이 세션에 요청하는 [프롬프트 캐시 수명](/docs/ko/prompt-caching#cache-lifetime): `"5m"` 또는 `"1h"` |

3462| `estimated_cache_write_usd` | number | `to_model`에서 `cache_ttl` 요율로 `context_tokens`를 프롬프트 캐시에 쓰는 예상 비용(미화 달러). 다음 응답은 제외됩니다. 서버가 전체 컨텍스트를 다시 캐싱할 필요가 없을 수도 있으므로 추정치로 취급하십시오 |3462| `estimated_cache_write_usd` | number | `to_model`에서 `cache_ttl` 요율로 `context_tokens`를 프롬프트 캐시에 쓰는 예상 비용(미국 달러)이며, 다음 응답은 제외됩니다. 서버가 전체 컨텍스트를 다시 캐시할 필요가 없을 수 있으므로 추정치로 취급하십시오 |

3463| `pricing` | string | Claude Code가 `estimated_cache_write_usd`의 가격을 산정한 방식: 조직이 자체 요율을 구성한 경우 해당 요율을 적용한 `"configured"`, 정가를 적용한 `"catalog"`, `to_model`의 가격을 알 수 없어 Claude Code가 기본 요율을 가정한 경우 `"default"` |3463| `pricing` | string | Claude Code가 `estimated_cache_write_usd`를 산정한 방식: 조직이 자체 요율을 구성한 경우 해당 요율로 산정한 `"configured"`, 정가로 산정한 `"catalog"`, 또는 `to_model`의 가격을 알 수 없어 Claude Code가 기본 요율을 가정한 경우 `"default"` |

3464 3464 

3465다음 예시는 Sonnet 5를 실행 중인 세션에서 `/model opus`를 실행할 때의 입력을 보여 줍니다.3465다음 예시는 Sonnet 5를 실행 중인 세션에서 `/model opus`를 실행했을 때의 입력을 보여 줍니다.

3466 3466 

3467```json theme={null}3467```json theme={null}

3468{3468{


3486 PreModelSwitch 결정 제어3486 PreModelSwitch 결정 제어

3487</h4>3487</h4>

3488 3488 

3489`PreModelSwitch` 훅은 전환을 취소하거나, 사용자에게 확인을 요청하거나, 전환을 진행하도록 할 수 있습니다. 종료 코드 2 또는 최상위 수준의 `decision: "block"`은 전환을 취소합니다.3489`PreModelSwitch` 훅은 전환을 취소하거나, 사용자에게 확인을 요청하거나, 전환을 진행하도록 할 수 있습니다. 종료 코드 2 또는 최상위 `decision: "block"`은 전환을 취소합니다.

3490 3490 

3491보다 세밀하게 제어하려면 [PreToolUse](#pretooluse-decision-control)와 마찬가지로 `hookSpecificOutput` 객체에 `permissionDecision`과 `permissionDecisionReason`을 반환합니다. `PreModelSwitch`는 `"allow"`, `"deny"`, `"ask"`를 허용합니다. `"defer"`, `updatedInput`, `additionalContext`는 허용하지 않습니다. 아래 표에서 두 필드를 설명합니다.3491더 세밀하게 제어하려면 [PreToolUse](#pretooluse-decision-control)와 마찬가지로 `hookSpecificOutput` 객체에 `permissionDecision`과 `permissionDecisionReason`을 반환하십시오. `PreModelSwitch`는 `"allow"`, `"deny"`, `"ask"`를 허용합니다. `"defer"`, `updatedInput`, `additionalContext`는 허용하지 않습니다. 아래 표는 두 필드를 설명합니다.

3492 3492 

3493| 필드 | 설명 |3493| 필드 | 설명 |

3494| :- | :- |3494| :- | :- |

3495| `permissionDecision` | `"allow"`는 전환을 진행하며 [프롬프트 캐시가 웜 상태일 때 Claude Code가 표시하는 확인](/docs/ko/prompt-caching#switching-models)을 건너뜁니다. `"deny"`는 전환을 취소합니다. `"ask"`는 사용자에게 확인을 요청합니다 |3495| `permissionDecision` | `"allow"`는 전환을 진행하며 [프롬프트 캐시가 활성 상태일 때 Claude Code가 표시하는 확인](/docs/ko/prompt-caching#switching-models)을 건너뜁니다. `"deny"`는 전환을 취소합니다. `"ask"`는 사용자에게 확인을 요청합니다 |

3496| `permissionDecisionReason` | `"deny"`의 경우 전환이 차단된 이유로 사용자에게 표시되거나, `set_model` 요청에 대한 오류로 반환됩니다. `"ask"`의 경우 확인 프롬프트에 표시됩니다. `"allow"`의 경우 무시됩니다 |3496| `permissionDecisionReason` | `"deny"`의 경우 전환이 차단된 사유로 사용자에게 표시되거나, `set_model` 요청에 대한 오류로 반환됩니다. `"ask"`의 경우 확인 프롬프트에 표시됩니다. `"allow"`의 경우 무시됩니다 |

3497 3497 

3498대화형 세션의 `/model`만 `"ask"` 프롬프트를 표시할 수 있습니다. `-p` 플래그를 사용하는 비대화형 모드, `/config`, `set_model` 요청을 포함한 다른 모든 사용 환경에서는 Claude Code가 `"ask"`를 거부로 처리합니다.3498`"ask"` 프롬프트는 대화형 세션의 `/model`에서만 표시될 수 있습니다. `-p` 플래그를 사용한 비대화형 모드, `/config`, `set_model` 요청을 포함한 다른 모든 사용 환경에서 Claude Code는 `"ask"`를 거부로 취급합니다.

3499 3499 

3500다음 예시는 사용자에게 확인을 요청하며 `context_tokens`의 토큰 수를 인용합니다.3500다음 예시는 사용자에게 확인을 요청하며 `context_tokens`의 토큰 수를 인용합니다.

3501 3501 


3513 3513 

3514Claude Code는 결정과 관계없이 훅이 반환한 `systemMessage`를 사용자에게 표시하므로, 비용 보고 훅은 `{"systemMessage": "..."}`를 반환하고 0으로 종료할 수 있습니다.3514Claude Code는 결정과 관계없이 훅이 반환한 `systemMessage`를 사용자에게 표시하므로, 비용 보고 훅은 `{"systemMessage": "..."}`를 반환하고 0으로 종료할 수 있습니다.

3515 3515 

3516타임아웃 전에 응답하지 않는 PreModelSwitch 훅은 전환을 차단합니다. 반면 [PreToolUse](#timeouts)에서는 시간 초과된 명령 훅이 도구 호출을 계속 진행하도록 합니다. 이 이벤트의 기본 타임아웃은 30초입니다. `PreModelSwitch`는 `command`, `http`, `mcp_tool` 훅만 실행하므로 `prompt` 및 `agent` 기본값은 적용되지 않습니다.3516타임아웃 전에 응답하지 않는 PreModelSwitch 훅은 전환을 차단합니다. 반면 [PreToolUse](#timeouts)에서는 시간 초과된 명령 훅이 도구 호출을 계속 진행시킵니다. 이 이벤트의 기본 타임아웃은 30초입니다. `PreModelSwitch`는 `command`, `http`, `mcp_tool` 훅만 실행하므로 `prompt` 및 `agent` 기본값은 적용되지 않습니다.

3517 3517 

35180 또는 2 이외의 코드로 종료하고 JSON 결정을 출력하지 않는 훅은 차단하지 않습니다. [기타 종료 코드](#other-exit-codes)에 설명된 대로 Claude Code는 해당 stderr를 표시하고 전환을 적용합니다.35180 또는 2가 아닌 코드로 종료하고 JSON 결정을 출력하지 않는 훅은 차단하지 않습니다. [기타 종료 코드](#other-exit-codes)에 설명된 대로 Claude Code는 해당 훅의 stderr를 표시하고 전환을 적용합니다.

3519 3519 

3520<h3 id="postmodelswitch">3520<h3 id="postmodelswitch">

3521 PostModelSwitch3521 PostModelSwitch

3522</h3>3522</h3>

3523 3523 

3524세션의 모델이 변경된 후 실행됩니다. 모든 CLAUDE.md를 편집하지 않고도 Claude에게 모델별 지침을 제공하는 데 사용합니다. 예를 들어 특정 모델에 적용되는 조직 전체 지침을 제공할 수 있습니다.3524세션의 모델이 변경된 후 실행됩니다. 모든 CLAUDE.md를 편집하지 않고도 Claude에게 모델별 지침을 제공하는 데 사용하십시오. 예를 들어 특정 모델에 적용되는 조직 전체 지침을 제공할 수 있습니다.

3525 3525 

3526PostModelSwitch에는 Claude Code v2.1.251 이상이 필요합니다. 모델이 이미 변경된 후이므로 차단할 수 없습니다. Claude Code는 다음 변경 후에 PostModelSwitch 훅을 실행합니다.3526PostModelSwitch를 사용하려면 Claude Code v2.1.251 이상이 필요합니다. 모델이 이미 변경된 상태이므로 차단할 수 없습니다. Claude Code는 다음 변경 이후 PostModelSwitch 훅을 실행합니다.

3527 3527 

3528* 사용자 또는 클라이언트가 요청한 전환3528* 사용자나 클라이언트가 요청한 전환

3529* 세션의 모델을 변경하는 [자동 모델 폴백](/docs/ko/model-config#automatic-model-fallback)3529* 세션의 모델을 변경하는 [자동 모델 폴백](/docs/ko/model-config#automatic-model-fallback)

3530* [`opusplan`](/docs/ko/model-config#opusplan-model-setting)과 같은 설정에서 플랜 모드에 진입하거나 플랜 모드를 벗어나는 경우3530* [`opusplan`](/docs/ko/model-config#opusplan-model-setting) 같은 설정이 플랜 모드에 진입하거나 플랜 모드를 벗어나는 경우

3531* 세션 재개 시 Claude Code가 모델을 복원하는 경우3531* 세션을 재개할 때 Claude Code가 모델을 복원하는 경우

3532 3532 

3533[폴백 모델 체인](/docs/ko/model-config#fallback-model-chains)의 모델이 턴을 처리하는 경우에는 Claude Code가 PostModelSwitch 훅을 실행하지 않습니다. 해당 대체는 한 턴 동안만 지속되며 세션의 모델을 변경하지 않기 때문입니다.3533[대체 모델 체인](/docs/ko/model-config#fallback-model-chains)의 모델이 턴을 처리하는 경우에는 PostModelSwitch 훅을 실행하지 않습니다. 이러한 대체는 한 턴 동안만 유지되며 세션의 모델은 변경되지 않기 때문입니다.

3534 3534 

3535matcher는 [PreModelSwitch](#premodelswitch)와 동일한 규칙을 따릅니다. Claude Code는 세션이 전환된 모델의 정식 이름과 matcher를 비교합니다.3535matcher는 [PreModelSwitch](#premodelswitch)와 동일한 규칙을 따릅니다. Claude Code는 세션이 전환된 모델의 정식 이름과 matcher를 비교합니다.

3536 3536 


3554}3554}

3555```3555```

3556 3556 

3557훅이 작동하는지 확인하려면 다른 모델을 실행 중인 세션에서 Opus 모델로 전환한 다음(예: Sonnet 세션에서 `/model opus` 실행), 현재 모델에 대해 어떤 지침을 가지고 있는지 Claude에게 물어보십시오.3557훅이 작동하는지 확인하려면 다른 모델을 실행 중인 세션에서 Opus 모델로 전환한 다음(예: Sonnet 세션에서 `/model opus` 실행), Claude에게 현재 모델에 대해 어떤 지침을 받았는지 물어보십시오.

3558 3558 

3559<h4 id="postmodelswitch-input">3559<h4 id="postmodelswitch-input">

3560 PostModelSwitch 입력3560 PostModelSwitch 입력

3561</h4>3561</h4>

3562 3562 

3563PostModelSwitch 훅은 [PreModelSwitch](#premodelswitch-input)와 동일한 필드를 받으며, `hook_event_name`은 `"PostModelSwitch"`로 설정되고 `source` 값이 두 가지 추가됩니다. 자동 폴백 또는 Claude Code가 자체적으로 수행한 기타 변경의 경우 `"auto"`, 세션 재개 시 복원된 모델의 경우 `"resume"`입니다.3563PostModelSwitch 훅은 [PreModelSwitch](#premodelswitch-input)와 동일한 필드를 받으며, `hook_event_name`은 `"PostModelSwitch"`로 설정되고 `source` 값이 두 가지 추가됩니다. 자동 폴백 또는 Claude Code가 자체적으로 수행한 기타 변경의 경우 `"auto"`, 세션을 재개할 때 복원된 모델의 경우 `"resume"`입니다.

3564 3564 

3565`source`가 `"auto"`이면 `requested_model`은 `null`입니다. `source`가 `"resume"`이면 Claude Code가 복원한 저장된 모델 설정입니다.3565`source`가 `"auto"`이면 `requested_model`은 `null`입니다. `source`가 `"resume"`이면 Claude Code가 복원한 저장된 모델 설정입니다.

3566 3566 


3568 PostModelSwitch 결정 제어3568 PostModelSwitch 결정 제어

3569</h4>3569</h4>

3570 3570 

3571Claude Code는 종료 코드 0일 때 훅의 [일반 텍스트 stdout](#exit-code-0) 또는 JSON 출력의 `additionalContext`를 가져와, 전환 후 다음 요청과 함께 Claude에게 전달합니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output) 외에도 다음을 반환할 수 있습니다.3571Claude Code는 종료 코드 0일 때 훅의 [일반 텍스트 stdout](#exit-code-0) 또는 JSON 출력의 `additionalContext`를 가져와 전환 이후의 다음 요청과 함께 Claude에게 전달합니다. 모든 훅에서 사용할 수 있는 [JSON 출력 필드](#json-output)에 더해 다음을 반환할 수 있습니다.

3572 3572 

3573| 필드 | 설명 |3573| 필드 | 설명 |

3574| :- | :- |3574| :- | :- |

3575| `additionalContext` | 다음 요청과 함께 Claude의 컨텍스트에 추가되는 문자열. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하십시오 |3575| `additionalContext` | 다음 요청과 함께 Claude의 컨텍스트에 추가되는 문자열. [Claude에 컨텍스트 추가](#add-context-for-claude)를 참조하십시오 |

3576 3576 

3577다음 프롬프트를 보낸 후 5초 이내에 훅이 완료되지 않으면 Claude Code는 출력 없이 해당 요청을 보내고 대신 그다음 요청에 출력을 첨부합니다. 다음 요청 전에 모델이 여러 번 변경되면 Claude Code는 마지막 전환의 대상 모델에 대한 출력만 전달합니다.3577다음 프롬프트를 보낸 후 5초 이내에 훅이 완료되지 않으면 Claude Code는 출력 없이 해당 요청을 보내고, 대신 그다음 요청에 출력을 첨부합니다. 다음 요청 전에 모델이 여러 번 변경되면 Claude Code는 마지막 전환의 대상 모델에 대한 출력만 전달합니다.

3578 3578 

3579<h3 id="sessionend">3579<h3 id="sessionend">

3580 SessionEnd3580 SessionEnd

3581</h3>3581</h3>

3582 3582 

3583Claude Code 세션이 종료될 때 실행됩니다. 정리 작업, 세션3583Claude Code 세션이 종료될 때 실행됩니다. 정리 작업, 세션 통계 로깅,

3584통계 로깅 또는 세션 상태 저장에 유용합니다. 종료 이유로 필터링하는 matcher를 지원합니다.3584세션 상태 저장에 유용합니다. 종료 사유로 필터링하는 matcher를 지원합니다.

3585 3585 

3586훅 입력의 `reason` 필드는 세션이 종료된 이유를 나타냅니다.3586훅 입력의 `reason` 필드는 세션이 종료된 이유를 나타냅니다.

3587 3587 

3588| 이유 | 설명 |3588| 사유 | 설명 |

3589| :- | :- |3589| :- | :- |

3590| `clear` | `/clear` 명령으로 세션이 지워짐 |3590| `clear` | `/clear` 명령으로 세션이 지워짐 |

3591| `resume` | 대화형 `/resume`을 통해 세션이 전환됨 |3591| `resume` | 대화형 `/resume`으로 세션이 전환됨 |

3592| `logout` | 사용자가 로그아웃함 |3592| `logout` | 사용자가 로그아웃함 |

3593| `prompt_input_exit` | 프롬프트 입력이 표시된 상태에서 사용자가 종료함 |3593| `prompt_input_exit` | 프롬프트 입력이 표시된 상태에서 사용자가 종료함 |

3594| `other` | 기타 종료 이유 |3594| `other` | 기타 종료 사유 |

3595| `bypass_permissions_disabled` | v2.1.234에서 제거되었으며 Claude Code는 이 값을 보내지 않습니다. `SessionEnd` matcher에서 제거하십시오 |3595| `bypass_permissions_disabled` | v2.1.234에서 제거되었으며 Claude Code는 이 값을 보내지 않습니다. `SessionEnd` matcher에서 제거하십시오 |

3596 3596 

3597<h4 id="sessionend-input">3597<h4 id="sessionend-input">

3598 SessionEnd 입력3598 SessionEnd 입력

3599</h4>3599</h4>

3600 3600 

3601[공통 입력 필드](#common-input-fields) 외에도 SessionEnd 훅은 세션이 종료된 이유를 나타내는 `reason` 필드를 받습니다. 모든 값은 위의 [이유 표](#sessionend)를 참조하십시오.3601[공통 입력 필드](#common-input-fields)에 더해 SessionEnd 훅은 세션이 종료된 이유를 나타내는 `reason` 필드를 받습니다. 모든 값은 위의 [사유 표](#sessionend)를 참조하십시오.

3602 3602 

3603```json theme={null}3603```json theme={null}

3604{3604{


3610}3610}

3611```3611```

3612 3612 

3613SessionEnd 훅에는 결정 제어 기능이 없습니다. 세션 종료를 차단할 수는 없지만 정리 작업을 수행할 수 있습니다. Claude Code는 `systemMessage` 등 해당 훅의 [JSON 출력 필드](#json-output)를 무시합니다.3613SessionEnd 훅에는 결정 제어 기능이 없습니다. 세션 종료를 차단할 수는 없지만 정리 작업을 수행할 수 있습니다. Claude Code는 `systemMessage` 등 이 훅의 [JSON 출력 필드](#json-output)를 폐기합니다.

3614 3614 

3615SessionEnd 훅의 기본 타임아웃은 1.5초입니다. 이 타임아웃은 종료할 때, `/clear`를 실행할 때, 또는 대화형 `/resume`으로 세션을 전환할 때 적용됩니다. 훅에 더 많은 시간을 주는 방법은 두 가지입니다.3615SessionEnd 훅의 기본 타임아웃은 1.5초입니다. 이는 종료할 때, `/clear`를 실행할 때, 대화형 `/resume`으로 세션을 전환할 때 적용됩니다. 훅에 더 많은 시간을 주는 방법은 두 가지입니다.

3616 3616 

3617* **훅별 `timeout`**: 해당 훅의 구성에서 `timeout`을 설정합니다. 전체 허용 시간은 설정 파일에 있는 가장 높은 훅별 `timeout`에 맞춰 최대 60초까지 자동으로 늘어납니다. 이 방식으로 허용 시간을 늘려도 자체 `timeout`이 없는 훅은 여전히 기본값을 유지합니다. 플러그인이 제공하는 훅에 설정된 타임아웃은 허용 시간을 늘리지 않습니다.3617* **훅별 `timeout`**: 해당 훅의 구성에 `timeout`을 설정합니다. 전체 예산은 설정 파일에 있는 가장 높은 훅별 `timeout`에 맞춰 최대 60초까지 자동으로 늘어납니다. 이 방식으로 예산을 늘려도 자체 `timeout`이 없는 훅은 여전히 기본값을 유지합니다. 플러그인이 제공하는 훅에 설정된 타임아웃은 예산을 늘리지 않습니다.

3618* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: 이 환경 변수를 밀리초 단위로 설정하여 허용 시간을 명시적으로 재정의합니다. 설정한 값은 자체 `timeout`이 없는 각 훅의 타임아웃으로도 사용됩니다.3618* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: 이 환경 변수를 밀리초 단위로 설정하여 예산을 명시적으로 재정의합니다. 설정한 값은 자체 `timeout`이 없는 각 훅의 타임아웃으로도 사용됩니다.

3619 3619 

3620다음 예시는 허용 시간을 5초로 설정합니다.3620다음 예시는 예산을 5초로 설정합니다.

3621 3621 

3622```bash theme={null}3622```bash theme={null}

3623CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude3623CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude

3624```3624```

3625 3625 

3626v2.1.268 이전에는 `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`가 전체 허용 시간만 늘렸으며, 자체 `timeout`이 없는 훅은 여전히 1.5초 후에 취소되었습니다.3626v2.1.268 이전에는 `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`가 전체 예산만 늘렸으며, 자체 `timeout`이 없는 훅은 여전히 1.5초 후에 취소되었습니다.

3627 3627 

3628<h3 id="elicitation">3628<h3 id="elicitation">

3629 Elicitation3629 Elicitation

3630</h3>3630</h3>

3631 3631 

3632MCP 서버가 작업 도중 사용자 입력을 요청할 때 실행됩니다. 기본적으로 Claude Code는 사용자가 응답할 수 있도록 대화형 대화 상자를 표시합니다. 훅은 이 요청을 가로채 프로그래밍 방식으로 응답하여 대화 상자를 완전히 건너뛸 수 있습니다.3632MCP 서버가 작업 도중 사용자 입력을 요청할 때 실행됩니다. 기본적으로 Claude Code는 사용자가 응답할 수 있는 대화형 대화 상자를 표시합니다. 훅은 이 요청을 가로채 프로그래밍 방식으로 응답하여 대화 상자를 완전히 건너뛸 수 있습니다.

3633 3633 

3634matcher 필드는 MCP 서버 이름과 비교됩니다.3634matcher 필드는 MCP 서버 이름과 비교됩니다.

3635 3635 


3637 Elicitation 입력3637 Elicitation 입력

3638</h4>3638</h4>

3639 3639 

3640[공통 입력 필드](#common-input-fields) 외에도 Elicitation 훅은 `mcp_server_name`, `message` 및 선택적 필드인 `mode`, `url`, `elicitation_id`, `requested_schema`를 받습니다.3640[공통 입력 필드](#common-input-fields)에 더해 Elicitation 훅은 `mcp_server_name`, `message` 필드와 선택적 필드인 `mode`, `url`, `elicitation_id`, `requested_schema`를 받습니다.

3641 3641 

3642가장 일반적인 경우인 폼 모드 elicitation의 예시입니다.3642가장 일반적인 경우인 폼 모드 elicitation의 예:

3643 3643 

3644```json theme={null}3644```json theme={null}

3645{3645{


3659}3659}

3660```3660```

3661 3661 

3662브라우저 기반 인증에 사용되는 URL 모드 elicitation의 예시입니다.3662브라우저 기반 인증에 사용되는 URL 모드 elicitation의 예:

3663 3663 

3664```json theme={null}3664```json theme={null}

3665{3665{


3678 Elicitation 출력3678 Elicitation 출력

3679</h4>3679</h4>

3680 3680 

3681대화 상자를 표시하지 않고 프로그래밍 방식으로 응답하려면 `hookSpecificOutput`이 포함된 JSON 객체를 반환합니다.3681대화 상자를 표시하지 않고 프로그래밍 방식으로 응답하려면 `hookSpecificOutput`이 포함된 JSON 객체를 반환하십시오.

3682 3682 

3683```json theme={null}3683```json theme={null}

3684{3684{


3695| 필드 | 값 | 설명 |3695| 필드 | 값 | 설명 |

3696| :- | :- | :- |3696| :- | :- | :- |

3697| `action` | `accept`, `decline`, `cancel` | 요청을 수락, 거절 또는 취소할지 여부 |3697| `action` | `accept`, `decline`, `cancel` | 요청을 수락, 거절 또는 취소할지 여부 |

3698| `content` | object | 제출할 폼 필드 값. `action`이 `accept`인 경우에만 사용됩니다 |3698| `content` | object | 제출할 폼 필드 값. `action`이 `accept`일 때만 사용됩니다 |

3699 3699 

3700종료 코드 2는 elicitation을 거부합니다. Claude Code는 stderr 메시지를 어디에도 표시하지 않습니다.3700종료 코드 2는 elicitation을 거부합니다. Claude Code는 stderr 메시지를 어디에도 표시하지 않습니다.

3701 3701 

3702Claude Code는 Elicitation 훅의 JSON 출력에서 `hookSpecificOutput`에 따라 동작하며 `systemMessage`와 `continue`는 무시합니다.3702Claude Code는 Elicitation 훅의 JSON 출력 중 `hookSpecificOutput`에 따라 동작하며 `systemMessage`와 `continue`는 폐기합니다.

3703 3703 

3704<h3 id="elicitationresult">3704<h3 id="elicitationresult">

3705 ElicitationResult3705 ElicitationResult


3713 ElicitationResult 입력3713 ElicitationResult 입력

3714</h4>3714</h4>

3715 3715 

3716[공통 입력 필드](#common-input-fields) 외에도 ElicitationResult 훅은 `mcp_server_name`, `action` 및 선택적 필드인 `mode`, `elicitation_id`, `content`를 받습니다.3716[공통 입력 필드](#common-input-fields)에 더해 ElicitationResult 훅은 `mcp_server_name`, `action` 필드와 선택적 필드인 `mode`, `elicitation_id`, `content`를 받습니다.

3717 3717 

3718```json theme={null}3718```json theme={null}

3719{3719{


3733 ElicitationResult 출력3733 ElicitationResult 출력

3734</h4>3734</h4>

3735 3735 

3736사용자의 응답을 재정의하려면 `hookSpecificOutput`이 포함된 JSON 객체를 반환합니다.3736사용자의 응답을 재정의하려면 `hookSpecificOutput`이 포함된 JSON 객체를 반환하십시오.

3737 3737 

3738```json theme={null}3738```json theme={null}

3739{3739{


3747 3747 

3748| 필드 | 값 | 설명 |3748| 필드 | 값 | 설명 |

3749| :- | :- | :- |3749| :- | :- | :- |

3750| `action` | `accept`, `decline`, `cancel` | 사용자의 작업을 재정의합니다 |3750| `action` | `accept`, `decline`, `cancel` | 사용자의 동작을 재정의합니다 |

3751| `content` | object | 폼 필드 값을 재정의합니다. `action`이 `accept`인 경우에만 의미가 있습니다 |3751| `content` | object | 폼 필드 값을 재정의합니다. `action`이 `accept`일 때만 의미가 있습니다 |

3752 3752 

3753종료 코드 2는 응답을 차단하여 실제 적용되는 작업을 `decline`으로 변경합니다. Claude Code는 stderr 메시지를 어디에도 표시하지 않습니다.3753종료 코드 2는 응답을 차단하며, 실제 동작을 `decline`으로 변경합니다. Claude Code는 stderr 메시지를 어디에도 표시하지 않습니다.

3754 3754 

3755Claude Code는 ElicitationResult 훅의 JSON 출력에서 `hookSpecificOutput`에 따라 동작하며 `systemMessage`와 `continue`는 무시합니다.3755Claude Code는 ElicitationResult 훅의 JSON 출력 중 `hookSpecificOutput`에 따라 동작하며 `systemMessage`와 `continue`는 폐기합니다.

3756 3756 

3757<h2 id="prompt-based-hooks">3757<h2 id="prompt-based-hooks">

3758 프롬프트 기반 hook3758 프롬프트 기반 hook

keybindings.md +27 −1

Details

68| `EffortSlider` | `/effort`로 열린 노력 슬라이더 |68| `EffortSlider` | `/effort`로 열린 노력 슬라이더 |

69| `Select` | 일반 선택/목록 컴포넌트 |69| `Select` | 일반 선택/목록 컴포넌트 |

70| `Plugin` | 플러그인 대화상자 (찾아보기, 발견, 관리) |70| `Plugin` | 플러그인 대화상자 (찾아보기, 발견, 관리) |

71| `Pane` | [mod](/docs/ko/plugins/mods/interface#know-which-keys-your-mod-can-receive)가 그린 창에 키보드 포커스가 있습니다 |

72| `PaneField` | mod 창의 입력 필드 또는 선택 항목에 키보드 포커스가 있습니다 |

71| `Agents` | [에이전트 보기](/docs/ko/agent-view) (`claude agents`) |73| `Agents` | [에이전트 보기](/docs/ko/agent-view) (`claude agents`) |

72| `Scroll` | 전체 화면 모드에서 대화 스크롤 및 텍스트 선택 |74| `Scroll` | 전체 화면 모드에서 대화 스크롤 및 텍스트 선택 |

73 75 


596 598 

597이는 코드 바인딩에도 작동합니다. 접두사를 공유하는 모든 코드를 바인딩 해제하면 해당 접두사를 단일 키 바인딩으로 사용할 수 있습니다. 활성 컨텍스트의 코드는 접두사를 예약된 상태로 유지하므로 해당 코드를 정의하는 컨텍스트에서 각 코드를 바인딩 해제해야 합니다.599이는 코드 바인딩에도 작동합니다. 접두사를 공유하는 모든 코드를 바인딩 해제하면 해당 접두사를 단일 키 바인딩으로 사용할 수 있습니다. 활성 컨텍스트의 코드는 접두사를 예약된 상태로 유지하므로 해당 코드를 정의하는 컨텍스트에서 각 코드를 바인딩 해제해야 합니다.

598 600 

599Claude Code는 `ctrl+x` 접두사에서 다음과 같은 기본 코드를 바인딩합니다: `Chat`에서 `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, `ctrl+x ctrl+s`, `ctrl+x tab`, `Task`에서 `ctrl+x ctrl+b`, `DiffPanel`에서 `ctrl+x b`. `ctrl+x enter` 코드는 v2.1.247 이상이 필요하며, `ctrl+x b`, `ctrl+x ctrl+a`, `ctrl+x tab`은 v2.1.260 이상이 필요하고, `ctrl+x ctrl+s`는 v2.1.275 이상이 필요합니다.601Claude Code는 `ctrl+x` 접두사에서 컨텍스트별로 다음과 같은 기본 코드를 바인딩합니다:

602 

603* `Chat`: `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, `ctrl+x ctrl+s`, `ctrl+x tab`

604* `Task`: `ctrl+x ctrl+b`

605* `DiffPanel`: `ctrl+x b`

606* `Pane`: `ctrl+x left`, `ctrl+x right`, `ctrl+x up`, `ctrl+x down`, `ctrl+x x`

607* `PaneField`: `ctrl+x x`

608 

609`ctrl+x enter` 코드는 v2.1.247 이상이 필요하며, `ctrl+x b`, `ctrl+x ctrl+a`, `ctrl+x tab`은 v2.1.260 이상이 필요하고, `ctrl+x ctrl+s`는 v2.1.275 이상이 필요합니다.

600 610 

601`ctrl+x` 자체를 단일 키 바인딩으로 되찾으려면 모두 바인딩 해제합니다:611`ctrl+x` 자체를 단일 키 바인딩으로 되찾으려면 모두 바인딩 해제합니다:

602 612 


615 "ctrl+x b": null625 "ctrl+x b": null

616 }626 }

617 },627 },

628 {

629 "context": "Pane",

630 "bindings": {

631 "ctrl+x left": null,

632 "ctrl+x right": null,

633 "ctrl+x up": null,

634 "ctrl+x down": null,

635 "ctrl+x x": null

636 }

637 },

638 {

639 "context": "PaneField",

640 "bindings": {

641 "ctrl+x x": null

642 }

643 },

618 {644 {

619 "context": "Chat",645 "context": "Chat",

620 "bindings": {646 "bindings": {

Details

290 Slack, 클라우드 세션 및 Remote Control290 Slack, 클라우드 세션 및 Remote Control

291</h3>291</h3>

292 292 

293[Slack의 Claude Code](/docs/ko/slack) 및 [클라우드 세션](/docs/ko/claude-code-on-the-web)은 항상 Anthropic의 API를 사용합니다. 게이트웨이 배포의 일부가 아닙니다. 클라우드 세션의 환경 구성에서 설정된 게이트웨이 변수는 적용되지 않습니다. 트래픽이 게이트웨이에 남아 있어야 한다면, 이러한 사용자에 대해 이러한 표면을 활성화하지 마세요.293[Slack의 Claude Code](/docs/ko/slack) 및 [클라우드 세션](/docs/ko/claude-code-on-the-web)은 게이트웨이 배포의 일부가 아닙니다. 클라우드 세션의 환경 구성에서 설정된 게이트웨이 변수는 적용되지 않습니다. 트래픽이 게이트웨이에 남아 있어야 한다면, 해당 사용자에 대해 이러한 사용 환경을 활성화하지 마세요.

294 294 

295[Remote Control](/docs/ko/remote-control) 및 [음성 받아쓰기](/docs/ko/voice-dictation)는 모두 claude.ai 신원에 의존합니다: Remote Control은 라이브 세션을 계정과 쌍으로 만들고, 음성 받아쓰기는 claude.ai 전사 엔드포인트에 도달합니다. `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper`가 활성화되어 있는 동안은 사용할 수 없습니다. v2.1.196부터 Remote Control은 `ANTHROPIC_BASE_URL`이 Anthropic이 아닌 호스트를 가리킬 때도 비활성화되므로, claude.ai로 로그인하는 것만으로는 충분하지 않습니다. v2.1.196 이전에는 Anthropic이 아닌 기본 URL이 Remote Control을 차단하지 않았습니다.295[Remote Control](/docs/ko/remote-control) 및 [음성 받아쓰기](/docs/ko/voice-dictation)는 모두 claude.ai 신원에 의존합니다: Remote Control은 라이브 세션을 계정과 쌍으로 만들고, 음성 받아쓰기는 claude.ai 전사 엔드포인트에 도달합니다. `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper`가 활성화되어 있는 동안은 사용할 수 없습니다. v2.1.196부터 Remote Control은 `ANTHROPIC_BASE_URL`이 Anthropic이 아닌 호스트를 가리킬 때도 비활성화되므로, claude.ai로 로그인하는 것만으로는 충분하지 않습니다. v2.1.196 이전에는 Anthropic이 아닌 기본 URL이 Remote Control을 차단하지 않았습니다.

296 296 

Details

245| [컨텍스트 관리](https://platform.claude.com/docs/en/build-with-claude/context-editing) | 컨텍스트 관리 베타 헤더는 `context_management` 본문 필드와 쌍을 이룹니다. | `Extra inputs are not permitted`를 포함한 `400`. 게이트웨이가 Anthropic 형식 요청을 수락하지만 Amazon Bedrock으로 전달할 때 일반적입니다. | 둘 다 전달하거나 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |245| [컨텍스트 관리](https://platform.claude.com/docs/en/build-with-claude/context-editing) | 컨텍스트 관리 베타 헤더는 `context_management` 본문 필드와 쌍을 이룹니다. | `Extra inputs are not permitted`를 포함한 `400`. 게이트웨이가 Anthropic 형식 요청을 수락하지만 Amazon Bedrock으로 전달할 때 일반적입니다. | 둘 다 전달하거나 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

246| [확장 컨텍스트](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) 및 [인터리브된 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 베타 헤더만, 본문 필드 없음 | 헤더가 제거될 때 조용히 사용 불가능. 업스트림은 기능 요청을 보지 못합니다. | `anthropic-beta`를 그대로 전달합니다. |246| [확장 컨텍스트](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) 및 [인터리브된 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 베타 헤더만, 본문 필드 없음 | 헤더가 제거될 때 조용히 사용 불가능. 업스트림은 기능 요청을 보지 못합니다. | `anthropic-beta`를 그대로 전달합니다. |

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

248| [노력](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)을 설정하도록 합니다. 이 변수는 형식 및 작업 예산 설정을 제거하지만 노력은 제거하지 않습니다. |248| [노력](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`](/docs/ko/env-vars)을 설정할 수 있으며, 이는 v2.1.288 이상이 필요합니다. |

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

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

251 251 


362검색된 ID는 선택기에 이미 있는 행과 일치할 때 자신의 행을 얻지 않습니다:362검색된 ID는 선택기에 이미 있는 행과 일치할 때 자신의 행을 얻지 않습니다:

363 363 

364* 같은 ID: 검색된 ID가 기존 행의 ID와 정확히 일치하거나, 두 ID가 같은 [Fable](/docs/ko/model-config#work-with-fable) 버전의 철자입니다.364* 같은 ID: 검색된 ID가 기존 행의 ID와 정확히 일치하거나, 두 ID가 같은 [Fable](/docs/ko/model-config#work-with-fable) 버전의 철자입니다.

365* 기본 제공 별칭과 같은 모델: 검색된 명시적 ID가 기본 제공 별칭이 현재 해결되는 모델의 이름을 지을 때, 선택기는 별칭 행만 표시합니다. 예를 들어, `sonnet`이 `claude-sonnet-5-5`로 해결되는 동안, 검색된 `claude-sonnet-5-5`는 `sonnet` 행으로 축소되고, 검색된 `claude-sonnet-5`는 여전히 자신의 행을 얻습니다. v2.1.197 이전에는 Claude Code가 이러한 ID를 기본 제공 행으로 접지 않았으므로 ID가 별칭으로 해결되는 것도 자신의 "게이트웨이에서" 행을 얻었습니다.365* 기본 제공 별칭과 같은 모델: 검색된 명시적 ID가 기본 제공 별칭이 현재 해결되는 모델의 이름을 지을 때, 선택기는 별칭 행만 표시합니다. 예를 들어, `sonnet`이 `claude-sonnet-5-5`로 해결되는 동안, 검색된 `claude-sonnet-5-5`는 `sonnet` 행으로 축소되고, 검색된 `claude-sonnet-5`는 여전히 자신의 행을 얻습니다.

366 366 

367결과는 `~/.claude/cache/gateway-models.json` 또는 Windows의 `%USERPROFILE%\.claude\cache\gateway-models.json`으로 캐시되고 각 시작 시 새로 고쳐집니다. [`CLAUDE_CONFIG_DIR`](/docs/ko/env-vars)을 설정하면, 캐시는 대신 해당 디렉토리 아래에 있습니다. 요청이 실패하거나 게이트웨이가 `/v1/models`를 구현하지 않으면, 선택기는 이전 시작의 캐시된 목록 또는 기본 제공 모델 목록으로 돌아갑니다. 게이트웨이가 검색 필터와 일치하지 않는 별칭 아래에서 Claude 모델을 제공하면, 개발자는 [모델 구성](/docs/ko/model-config) 변수를 사용하여 해당 별칭을 수동으로 추가할 수 있습니다.367결과는 `~/.claude/cache/gateway-models.json` 또는 Windows의 `%USERPROFILE%\.claude\cache\gateway-models.json`으로 캐시되고 각 시작 시 새로 고쳐집니다. [`CLAUDE_CONFIG_DIR`](/docs/ko/env-vars)을 설정하면, 캐시는 대신 해당 디렉토리 아래에 있습니다. 요청이 실패하거나 게이트웨이가 `/v1/models`를 구현하지 않으면, 선택기는 이전 시작의 캐시된 목록 또는 기본 제공 모델 목록으로 돌아갑니다. 게이트웨이가 검색 필터와 일치하지 않는 별칭 아래에서 Claude 모델을 제공하면, 개발자는 [모델 구성](/docs/ko/model-config) 변수를 사용하여 해당 별칭을 수동으로 추가할 수 있습니다.

368 368 

mcp.md +13 −13

Details

371 371 

372v2에서 Claude Code는 또한:372v2에서 Claude Code는 또한:

373 373 

374* HTTP 서버에 더 새로운 개정을 지원하는지 묻고, 지원하는 서버와 함께 사용합니다. 또한 기능 플래그를 가져오는 세션에서 claude.ai 커넥터 서버에 묻습니다. stdio 서버에 묻거나 모든 세션에서 커넥터 서버에 묻도록 하려면 [`MCP_PROTOCOL_NEGOTIATION`](/docs/ko/env-vars)을 `auto`로 설정하세요. 다른 모든 서버에 v1처럼 연결합니다.374* HTTP 서버에 더 새로운 개정을 지원하는지 묻고, 지원하는 서버와 함께 사용합니다. 기능 플래그를 가져오는 세션에서는 claude.ai 커넥터 서버에도 묻고, Claude Code v2.1.285 이상에서는 Anthropic이 해당 변경 사항을 롤아웃함에 따라 stdio 서버에도 묻습니다. 모든 세션에서 커넥터 및 stdio 서버에 묻도록 하려면 [`MCP_PROTOCOL_NEGOTIATION`](/docs/ko/env-vars)을 `auto`로 설정하세요. 다른 모든 서버에는 v1처럼 연결합니다.

375* [열린 스트림](#notification-streams-on-the-v2-runtime)을 통해 더 새로운 개정의 서버에서 `list_changed` 알림을 받습니다.375* [열린 스트림](#notification-streams-on-the-v2-runtime)을 통해 더 새로운 개정의 서버에서 `list_changed` 알림을 받습니다.

376* 더 새로운 개정에 연결되는 [채널](#push-messages-with-channels) 서버를 등록하지 않습니다. 해당 개정은 채널 메시지를 전달할 수 없기 때문입니다.376* 더 새로운 개정에 연결되는 [채널](#push-messages-with-channels) 서버를 등록하지 않습니다. 해당 개정은 채널 메시지를 전달할 수 없기 때문입니다.

377* 인증 응답이 예상치 못한 발급자의 이름을 지정하는 [MCP OAuth 로그인](#authenticate-with-remote-mcp-servers)을 실패합니다.377* 인증 응답이 예상치 못한 발급자의 이름을 지정하는 [MCP OAuth 로그인](#authenticate-with-remote-mcp-servers)을 실패합니다.


456 456 

457MCP 서버는 또한 메시지를 세션에 직접 푸시할 수 있으므로 Claude는 CI 결과, 모니터링 경고 또는 채팅 메시지와 같은 외부 이벤트에 반응할 수 있습니다. 이를 활성화하려면 서버가 `claude/channel` 기능을 선언하고 시작 시 `--channels` 플래그로 옵트인합니다. 공식적으로 지원되는 채널을 사용하려면 [채널](/docs/ko/channels)을 참조하거나, 자신만의 채널을 구축하려면 [채널 참조](/docs/ko/channels-reference)를 참조하세요.457MCP 서버는 또한 메시지를 세션에 직접 푸시할 수 있으므로 Claude는 CI 결과, 모니터링 경고 또는 채팅 메시지와 같은 외부 이벤트에 반응할 수 있습니다. 이를 활성화하려면 서버가 `claude/channel` 기능을 선언하고 시작 시 `--channels` 플래그로 옵트인합니다. 공식적으로 지원되는 채널을 사용하려면 [채널](/docs/ko/channels)을 참조하거나, 자신만의 채널을 구축하려면 [채널 참조](/docs/ko/channels-reference)를 참조하세요.

458 458 

459[v2 런타임](#mcp-client-runtimes)에서 [`MCP_PROTOCOL_NEGOTIATION`](/docs/ko/env-vars)을 `auto`로 설정하고 채널 서버가 MCP 프로토콜 개정 2026-07-28을 협상하면 채널 메시지를 전달할 수 없으므로 Claude Code는 채널로 등록하지 않습니다. 변수를 설정하지 않거나 `legacy`로 설정하면 stdio 서버가 이전 핸드셰이크에 유지됩니다.459[v2 런타임](#mcp-client-runtimes)에서 MCP 프로토콜 개정 2026-07-28을 협상하는 채널 서버는 채널 메시지를 전달할 수 없으므로 Claude Code는 이를 채널로 등록하지 않습니다. 해당 개정을 지원하지 않는 채널 서버는 이전 핸드셰이크로 연결되며 이전과 같이 등록됩니다.

460 

461[`MCP_PROTOCOL_NEGOTIATION`](/docs/ko/env-vars)을 `auto`로 설정하면 Claude Code는 stdio 서버에 해당 개정을 요청합니다. Anthropic은 또한 Claude Code가 [기능 플래그를 가져오는](/docs/ko/env-vars#features-that-need-feature-flag-fetching) 세션에서 Claude Code v2.1.285 이상을 대상으로 이를 기본적으로 켜고 있습니다. stdio 채널 서버를 이전 핸드셰이크에 유지하려면 `MCP_PROTOCOL_NEGOTIATION`을 `legacy`로 설정하세요. 이렇게 하면 모든 서버가 이전 핸드셰이크에 유지됩니다.

460 462 

461<Tip>463<Tip>

462 팁:464 팁:


1478[루트 수준 결합자 처리](#tool-input-schemas-with-a-root-level-combinator)는 별개이며 플래그 가져오기가 꺼져 있거나 플래그가 도착한 적이 없을 때 자체 동작을 유지합니다.1480[루트 수준 결합자 처리](#tool-input-schemas-with-a-root-level-combinator)는 별개이며 플래그 가져오기가 꺼져 있거나 플래그가 도착한 적이 없을 때 자체 동작을 유지합니다.

1479 1481 

1480<h2 id="require-approval-for-a-specific-tool">1482<h2 id="require-approval-for-a-specific-tool">

1481 특정 도구에 대한 승인 필요1483 특정 도구에 승인 요구하기

1482</h2>1484</h2>

1483 1485 

1484MCP 서버를 구축하는 경우, 도구의 `tools/list` 응답 항목에서 `_meta["anthropic/requiresUserInteraction"]`을 `true`로 설정하여 도구가 모든 호출에서 명시적 승인을 요구하도록 표시할 수 있습니다. 값은 JSON 부울 `true`여야 하며, 다른 값은 무시됩니다.1486MCP 서버를 구축하는 경우, 도구의 `tools/list` 응답 항목에서 `_meta["anthropic/requiresUserInteraction"]`을 `true`로 설정하여 해당 도구가 매 호출마다 명시적인 승인을 요구하도록 지정할 수 있습니다. 값은 반드시 JSON 불리언 `true`여야 하며, 그 외의 값은 무시됩니다.

1485 1487 

1486Claude Code는 `acceptEdits`, `auto`, `bypassPermissions` [권한 모드](/docs/ko/permissions#permission-modes)에서도 모든 호출에 대해 해당 도구의 권한 프롬프트를 표시하며, "다시 묻지 않기" 옵션을 제공하지 않습니다. 도구와 일치하는 [허용 규칙](/docs/ko/permissions#permission-rule-syntax)도 프롬프트를 건너뛰지 않습니다. 절대 프롬프트를 표시하지 않는 `dontAsk` 모드에서는 Claude Code가 호출을 거부합니다.1488Claude Code는 `acceptEdits`, `auto`, `bypassPermissions` [권한 모드](/docs/ko/permissions#permission-modes)에서도 해당 도구의 권한 프롬프트를 매 호출마다 표시하며, 해당 도구에 대해서는 "다시 묻지 않기" 옵션을 제공하지 않습니다. 해당 도구와 일치하는 [허용 규칙](/docs/ko/permissions#permission-rule-syntax)도 프롬프트를 건너뛰지 않습니다. 프롬프트를 전혀 표시하지 않는 `dontAsk` 모드에서는 Claude Code가 대신 호출을 거부합니다.

1487 1489 

1488프롬프트는 사람에게 도달해야 합니다. [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags)을 사용하는 비대화형 모드에서, 플래그된 도구에 대한 프롬프트 도구의 `allow` 결과는 `MCP tool requires user interaction; not supported via --permission-prompt-tool` 메시지와 함께 거부로 변환됩니다. Agent SDK의 [`canUseTool` 콜백](/docs/ko/agent-sdk/permissions)은 이러한 호출을 수신하고 승인할 수 있습니다. SDK 애플리케이션이 사용자에게 이를 표시할 것으로 예상되기 때문입니다.1490프롬프트는 반드시 사람에게 전달되어야 합니다. [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags)을 사용하는 비대화형 모드에서는, 지정된 도구에 대해 프롬프트 도구가 반환한 `allow` 결과가 `MCP tool requires user interaction; not supported via --permission-prompt-tool` 메시지와 함께 거부로 변환됩니다. Agent SDK의 [`canUseTool` 콜백](/docs/ko/agent-sdk/permissions)은 이러한 호출을 전달받아 승인할 수 있습니다. SDK 애플리케이션이 이를 사용자에게 표시할 것으로 기대되기 때문입니다.

1489 1491 

1490동의 또는 액세스 부여 단계와 같이 권한 프롬프트 자체가 목적인 도구에 이를 사용하십시오. 자동 승인은 인간이 절대 동의하지 않음을 의미합니다. 동일한 서버의 다른 도구는 일반적인 권한 동작을 유지합니다.1492이 기능은 권한 프롬프트 자체가 핵심인 도구에 사용하십시오. 예를 들어 동의 또는 접근 권한 부여 단계처럼, 자동 승인이 이루어지면 결국 어떤 사람도 동의한 적이 없는 상태가 되어 버리는 경우입니다. 같은 서버의 다른 도구는 기존 권한 동작을 그대로 유지합니다.

1491 1493 

1492다음 `tools/list` 항목은 한 도구를 항상 승인이 필요한 것으로 표시합니다.1494다음 `tools/list` 항목은 하나의 도구를 항상 승인이 필요한 도구로 지정합니다.

1493 1495 

1494```json theme={null}1496```json theme={null}

1495{1497{


1501}1503}

1502```1504```

1503 1505 

1504`anthropic/requiresUserInteraction` 주석은 Claude Code v2.1.199 이상이 필요합니다. 이전 버전은 이를 무시하고 표준 권한 흐름을 적용합니다.1506[Remote Control](/docs/ko/remote-control)이나 [Agent SDK](/docs/ko/agent-sdk/overview)로 구축한 애플리케이션과 같은 일부 사용 환경에서는 일반적으로 한 번의 탭으로 도구 호출을 승인할 수 있습니다. 이 어노테이션이 지정된 도구의 경우 Claude Code는 한 번의 탭 동작을 제공하지 않고 대신 도구의 전체 권한 프롬프트를 표시합니다. 따라서 승인은 탭이 아니라 프롬프트에 응답하는 사람으로부터 이루어집니다.

1505 

1506[Remote Control](/docs/ko/remote-control) 및 [Agent SDK](/docs/ko/agent-sdk/overview)를 기반으로 구축된 애플리케이션과 같은 일부 표면에서는 일반적으로 한 번의 탭으로 도구 호출을 승인할 수 있습니다. 이 주석으로 표시된 도구의 경우, Claude Code는 한 번의 탭 작업을 보류하고 도구의 전체 권한 프롬프트를 대신 표시하므로, 승인은 탭이 아닌 프롬프트에 응답하는 사람으로부터 나옵니다.

1507 1507 

1508Claude Code는 터미널 대화 상자에서만 완전히 렌더링할 수 있는 모든 권한 요청(예: 안전 경고 또는 원격 표면이 표시할 수 없는 항상 허용 옵션을 포함하는 요청)에 대해 동일한 방식으로 한 번의 탭 승인을 보류합니다. 해당 요청에 Remote Control이 아닌 터미널 대화 상자에서 응답합니다. Claude Code v2.1.214 이상이 필요합니다.1508Claude Code는 터미널 대화 상자에서만 전체를 표시할 수 있는 모든 권한 요청에 대해서도 같은 방식으로 한 번의 탭 승인을 제공하지 않습니다. 예를 들어 안전 경고가 포함되어 있거나, 원격 사용 환경에서 표시할 수 없는 항상 허용 옵션이 포함된 요청이 이에 해당합니다. 이러한 요청은 Remote Control이 아닌 터미널 대화 상자에서 응답해야 합니다. Claude Code v2.1.214 이상이 필요합니다.

1509 1509 

1510<h2 id="respond-to-mcp-elicitation-requests">1510<h2 id="respond-to-mcp-elicitation-requests">

1511 MCP 유도 요청에 응답하기1511 MCP 유도 요청에 응답하기


1516서버는 두 가지 방식으로 입력을 요청할 수 있습니다.1516서버는 두 가지 방식으로 입력을 요청할 수 있습니다.

1517 1517 

1518* **양식 모드**: Claude Code는 서버에서 정의한 양식 필드가 있는 대화 상자를 표시합니다(예: 사용자 이름 및 암호 프롬프트). 필드를 채우고 제출합니다.1518* **양식 모드**: Claude Code는 서버에서 정의한 양식 필드가 있는 대화 상자를 표시합니다(예: 사용자 이름 및 암호 프롬프트). 필드를 채우고 제출합니다.

1519* **URL 모드**: Claude Code는 브라우저에서 링크를 열지 여부를 묻고 사용자가 수락할 때 링크를 엽니다. 서버는 이 모드를 터미널 외부에서 완료되는 흐름(예: 로그인)에 사용합니다.1519* **URL 모드**: Claude Code는 브라우저에서 링크를 열지 여부를 묻습니다. 서버는 이 모드를 터미널 외부에서 완료되는 흐름(예: 로그인)에 사용합니다.

1520 1520 

1521URL 모드에서 Claude Code는 URL을 명령줄 인수로 시스템의 URL 핸들러에 전달하며, 해당 인수의 길이를 제한합니다. URL이 명령줄에 대해 이스케이프된 후 해당 제한을 초과하면 요청을 거부할 수만 있습니다. `%` 또는 `&`와 같이 이스케이프해야 하는 모든 문자는 제한에 대해 4배로 계산됩니다. 즉, 자신의 문자와 3개의 이스케이프 문자입니다. 이들이 없는 URL은 약 8,000자에서 제한에 도달합니다. 대부분 퍼센트 이스케이프로 구성된 URL(3번째 문자마다 `%`가 있는 경우)은 대략 4,000에서 도달합니다.1521URL 모드에서 Claude Code는 URL을 명령줄 인수로 시스템의 URL 핸들러에 전달하며, 해당 인수의 길이를 제한합니다. URL이 명령줄에 대해 이스케이프된 후 해당 제한을 초과하면 요청을 거부할 수만 있습니다. `%` 또는 `&`와 같이 이스케이프해야 하는 모든 문자는 제한에 대해 4배로 계산됩니다. 즉, 자신의 문자와 3개의 이스케이프 문자입니다. 이들이 없는 URL은 약 8,000자에서 제한에 도달합니다. 대부분 퍼센트 이스케이프로 구성된 URL(3번째 문자마다 `%`가 있는 경우)은 대략 4,000에서 도달합니다.

1522 1522 

model-config.md +4 −3

Details

794 794 

795<span id="context-window-behind-a-gateway" />795<span id="context-window-behind-a-gateway" />

796 796 

797`ANTHROPIC_BASE_URL`을 [LLM 게이트웨이](/docs/ko/llm-gateway) 또는 다른 프록시로 설정하면, Claude Code는 인식하는 각 모델에 Anthropic API의 모델이 가진 것과 동일한 컨텍스트 윈도우를 제공합니다. Fable 5.1, Fable 5, Sonnet 5 이상 및 Opus 4.7 이상은 선택할 `[1m]` 변형이 없는 1M 윈도우를 얻고, Opus 4.6과 같이 `[1m]` 변형을 통해서만 1M에 도달하는 모델은 이 없이 200K에서 실행됩니다. Claude Code는 게이트웨이 또는 그 뒤의 서버가 적용하는 더 낮은 제한을 감지할 수 없습니다. 게이트웨이가 200K 토큰 이상의 요청을 거부하면, [`/autocompact 200k`](#set-the-auto-compact-window)를 실행하여 세션이 해당 경계에서 압축되도록 합니다.797`ANTHROPIC_BASE_URL`을 [LLM 게이트웨이](/docs/ko/llm-gateway) 또는 다른 프록시로 설정하면, Claude Code는 인식하는 각 모델에 Anthropic API에서 해당 모델이 가진 것과 동일한 컨텍스트 윈도우를 제공합니다. Fable 5.1, Fable 5, Sonnet 5 이상 및 Opus 4.7 이상은 선택할 `[1m]` 변형 없이 1M 윈도우를 얻고, Opus 4.6과 같이 `[1m]` 변형을 통해서만 1M에 도달하는 모델은 해당 변형 없이는 200K에서 실행됩니다. Claude Code는 게이트웨이 또는 그 뒤의 서버가 적용하는 더 낮은 제한을 감지할 수 없습니다. 게이트웨이가 200K 토큰을 초과하는 요청을 거부하면, Claude Code를 시작하는 환경에서 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`](/docs/ko/env-vars)을 설정하여 모든 모델의 세션이 [해당 경계에서 압축](#set-the-auto-compact-window)되도록 하세요.

798 798 

7991M 컨텍스트를 끄려면, `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`을 설정하세요. Claude Code는 모델 선택기에서 1M 모델 변형을 제거합니다. Sonnet 5 및 Fable 모델과 같이 기본 1M 윈도우가 있는 모델에서, 모델을 200K 컨텍스트 윈도우로 취급합니다:7991M 컨텍스트를 끄려면, `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`을 설정하세요. Claude Code는 모델 선택기에서 1M 모델 변형을 제거합니다. Sonnet 5 및 Fable 모델과 같이 기본 1M 윈도우가 있는 모델에서, 모델을 200K 컨텍스트 윈도우로 취급합니다:

800 800 


840 자동 압축 윈도우 설정840 자동 압축 윈도우 설정

841</h3>841</h3>

842 842 

843자동 압축 윈도우는 세 가지 위치에서 설정할 수 있습니다.843자동 압축 윈도우는 다음 위치에서 설정할 수 있습니다.

844 844 

845* **이 세션 및 이후 세션의 경우**: `/autocompact`를 값과 함께 실행합니다(예: `/autocompact 500k`). Claude Code는 이를 사용자 설정에 [`autoCompactWindow`](/docs/ko/settings-reference#autocompactwindow)로 저장하고 현재 세션에 적용합니다. 관리 설정과 같은 더 높은 우선순위의 [설정 범위](/docs/ko/settings#settings-precedence)가 키를 설정하면 명령은 값을 저장하지만 세션은 해당 범위의 윈도우를 유지하며 명령이 이를 알립니다. `/autocompact auto`를 실행하여 모델에 맞게 조정된 윈도우로 돌아갑니다.845* **현재 모델에 대해, 이 세션 및 이후 세션의 경우**: `/autocompact`를 값과 함께 실행합니다(예: `/autocompact 500k`). Claude Code는 이를 사용자 설정의 [`modelSettings`](/docs/ko/settings-reference#modelsettings) 아래 현재 모델 항목에 저장하고 현재 세션에 적용합니다. 관리형 설정과 같은 더 높은 우선순위의 [설정 범위](/docs/ko/settings#settings-precedence)가 해당 모델 또는 모든 모델에 대해 자체 윈도우를 설정하면 명령은 값을 저장하지만 세션은 해당 범위의 윈도우를 유지하며 명령이 이를 알립니다. `/autocompact auto`를 실행하여 모델에 맞게 조정된 윈도우로 돌아갑니다. v2.1.288 이전에는 이 명령이 모든 모델에 대해 하나의 윈도우를 최상위 `autoCompactWindow`로 저장했습니다.

846* **모든 모델의 경우**: 설정 파일에서 [`autoCompactWindow`](/docs/ko/settings-reference#autocompactwindow)를 설정합니다(예: `~/.claude/settings.json`의 `"autoCompactWindow": 200000`). `/autocompact`로 특정 모델에 대해 저장한 윈도우는 해당 모델에 대해 같은 파일의 이 키보다 우선합니다.

846* **한 번의 실행의 경우**: Claude Code를 시작할 때 [`--autocompact`](/docs/ko/cli-reference#cli-flags)를 전달합니다. 플래그는 저장된 설정을 변경하지 않고 해당 실행에 대해 저장된 설정을 재정의하며, `claude --autocompact auto`는 저장된 설정에 값이 있더라도 조정된 윈도우에서 세션을 실행합니다. `/autocompact`와 달리 플래그는 관리 설정과 같은 더 높은 우선순위의 설정 범위에 의해 선점되지 않습니다.847* **한 번의 실행의 경우**: Claude Code를 시작할 때 [`--autocompact`](/docs/ko/cli-reference#cli-flags)를 전달합니다. 플래그는 저장된 설정을 변경하지 않고 해당 실행에 대해 저장된 설정을 재정의하며, `claude --autocompact auto`는 저장된 설정에 값이 있더라도 조정된 윈도우에서 세션을 실행합니다. `/autocompact`와 달리 플래그는 관리 설정과 같은 더 높은 우선순위의 설정 범위에 의해 선점되지 않습니다.

847* **스크립트 및 클라우드 환경에서**: [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/ko/env-vars)를 설정합니다. 설정되어 있는 동안 명령, 플래그 및 설정보다 우선하며, `/autocompact`는 윈도우를 변경하는 대신 재정의를 보고합니다.848* **스크립트 및 클라우드 환경에서**: [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/ko/env-vars)를 설정합니다. 설정되어 있는 동안 명령, 플래그 및 설정보다 우선하며, `/autocompact`는 윈도우를 변경하는 대신 재정의를 보고합니다.

848 849 

Details

578 578 

579`dontAsk` 모드를 설정하면 Claude Code는 그 외에 프롬프트를 표시할 모든 도구 호출을 자동으로 거부합니다. Claude는 여전히 Manual 모드에서 승인이 필요 없는 작업을 실행합니다. 예를 들어 작업 디렉터리 내의 파일 읽기 및 [읽기 전용 Bash 명령](/docs/ko/permissions#read-only-commands), `permissions.allow` 규칙과 일치하는 작업, 그리고 [PreToolUse 훅](/docs/ko/permissions#extend-permissions-with-hooks)으로 승인된 호출입니다. 이 모드는 CI 파이프라인이나 Claude가 수행할 수 있는 작업을 사전에 정의하는 제한된 환경에서 사용합니다. 세션은 입력을 기다리지 않습니다. 이 모드가 활성화되어 있는 동안 상태 표시줄에 `⏵⏵ don't ask on`이 표시됩니다.579`dontAsk` 모드를 설정하면 Claude Code는 그 외에 프롬프트를 표시할 모든 도구 호출을 자동으로 거부합니다. Claude는 여전히 Manual 모드에서 승인이 필요 없는 작업을 실행합니다. 예를 들어 작업 디렉터리 내의 파일 읽기 및 [읽기 전용 Bash 명령](/docs/ko/permissions#read-only-commands), `permissions.allow` 규칙과 일치하는 작업, 그리고 [PreToolUse 훅](/docs/ko/permissions#extend-permissions-with-hooks)으로 승인된 호출입니다. 이 모드는 CI 파이프라인이나 Claude가 수행할 수 있는 작업을 사전에 정의하는 제한된 환경에서 사용합니다. 세션은 입력을 기다리지 않습니다. 이 모드가 활성화되어 있는 동안 상태 표시줄에 `⏵⏵ don't ask on`이 표시됩니다.

580 580 

581Claude Code는 프롬프트를 표시하는 대신 명시적인 [`ask` 규칙](/docs/ko/permissions#manage-permissions)과 일치하는 호출을 거부합니다. 또한 `allow` 규칙이 일치하더라도 기본 제공 `AskUserQuestion` 도구를 거부하며, 해당 설정이 Claude Code에 도달하는 세션에서 조직이 [`ask`로 설정한](/docs/ko/mcp#organization-controls-on-connector-tools) 커넥터 도구도 동일하게 거부합니다. [`_meta["anthropic/requiresUserInteraction"]`](/docs/ko/mcp#require-approval-for-a-specific-tool)로 표시된 MCP 도구도 동일한 방식으로 거부합니다. 이는 승인 카드가 이 모드에서 수집하지 않는 답변이 필요하기 때문입니다. 이 기능은 Claude Code v2.1.199 이상이 필요합니다.581Claude Code는 프롬프트를 표시하는 대신 명시적인 [`ask` 규칙](/docs/ko/permissions#manage-permissions)과 일치하는 호출을 거부합니다. 또한 `allow` 규칙이 일치하더라도 기본 제공 `AskUserQuestion` 도구를 거부하며, 해당 설정이 Claude Code에 도달하는 세션에서 조직이 [`ask`로 설정한](/docs/ko/mcp#organization-controls-on-connector-tools) 커넥터 도구도 동일하게 거부합니다. [`_meta["anthropic/requiresUserInteraction"]`](/docs/ko/mcp#require-approval-for-a-specific-tool)로 표시된 MCP 도구도 동일한 방식으로 거부합니다. 이는 승인 카드가 이 모드에서 수집하지 않는 답변이 필요하기 때문입니다.

582 582 

583`rm` 및 `rmdir` 제거가 [중요 경로](#critical-paths)를 대상으로 하는 경우(예: `rm -rf /` 및 `rm -rf ~`), `allow` 규칙이 일치하거나 `PreToolUse` 훅이 허용하더라도 거부됩니다.583`rm` 및 `rmdir` 제거가 [중요 경로](#critical-paths)를 대상으로 하는 경우(예: `rm -rf /` 및 `rm -rf ~`), `allow` 규칙이 일치하거나 `PreToolUse` 훅이 허용하더라도 거부됩니다.

584 584 

Details

371| `workspaceFolder` | No | 서버의 작업 공간 폴더 경로 |371| `workspaceFolder` | No | 서버의 작업 공간 폴더 경로 |

372| `startupTimeout` | No | 시작을 기다릴 밀리초, 양의 정수 |372| `startupTimeout` | No | 시작을 기다릴 밀리초, 양의 정수 |

373| `shutdownTimeout` | No | 정상 종료를 기다릴 밀리초, 양의 정수. 시간 초과가 경과하면 Claude Code가 서버 프로세스를 종료합니다. 설정하지 않으면 시간 초과가 적용되지 않습니다 |373| `shutdownTimeout` | No | 정상 종료를 기다릴 밀리초, 양의 정수. 시간 초과가 경과하면 Claude Code가 서버 프로세스를 종료합니다. 설정하지 않으면 시간 초과가 적용되지 않습니다 |

374| `requestTimeout` | No | 서버가 요청에 응답하기를 기다릴 밀리초, 양의 정수. 기본값은 `60000`이므로 서버가 응답하지 않는 요청은 60초 후에 실패합니다. v2.1.288 이상이 필요합니다 |

374| `restartOnCrash` | No | 서버가 충돌한 후 다시 시작할지 여부. 기본값은 `true`입니다. 충돌한 서버를 다시 시작하지 않고 중지된 상태로 두려면 `false`로 설정 |375| `restartOnCrash` | No | 서버가 충돌한 후 다시 시작할지 여부. 기본값은 `true`입니다. 충돌한 서버를 다시 시작하지 않고 중지된 상태로 두려면 `false`로 설정 |

375| `maxRestarts` | No | 포기하기 전 재시작 시도, 0 이상 |376| `maxRestarts` | No | 포기하기 전 재시작 시도, 0 이상 |

376| `diagnostics` | No | 편집 후 진단을 컨텍스트에 푸시할지 여부. 기본값은 `true`입니다 |377| `diagnostics` | No | 편집 후 진단을 컨텍스트에 푸시할지 여부. 기본값은 `true`입니다 |

Details

63 63 

64| 필드 | 유형 | 설명 |64| 필드 | 유형 | 설명 |

65| :- | :- | :- |65| :- | :- | :- |

66| `name` | string | 마켓플레이스 식별자: 문자, 숫자, `.`, `_`, `-`로 구성되며, 문자 또는 숫자로 시작하고 `..`가 없습니다. 마켓플레이스에서 설치된 모든 [플러그인 id](/docs/ko/plugins/loading#find-where-a-plugin-came-from)의 `@` 뒤 부분을 형성하므로, `claude plugin validate`는 다른 이름을 실패합니다. [예약된 이름](#reserved-names) 참조 |66| `name` | string | 마켓플레이스 식별자: 문자, 숫자, `.`, `_`, `-`로 구성되며, 문자 또는 숫자로 시작하고 `..`가 없습니다. Claude Code는 그 외의 이름을 사용하는 마켓플레이스에서 플러그인을 설치할 수 없으므로 `claude plugin validate`는 다른 이름을 실패로 처리합니다. 사용자는 플러그인을 설치할 때 `my-plugin@my-marketplace`와 같은 [플러그인 id](/docs/ko/plugins/loading#find-where-a-plugin-came-from)에서 `@` 뒤에 이 이름을 입력합니다. [예약된 이름](#reserved-names) 참조 |

67| `owner` | object | 유지보수자 정보. `name`은 필수이고 `email` 및 `url`은 선택사항입니다 |67| `owner` | object | 유지보수자 정보. `name`은 필수이고 `email` 및 `url`은 선택사항입니다 |

68| `plugins` | array | [플러그인 항목](#plugin-entries). 각 항목은 독립적으로 검증되므로 하나의 잘못된 항목이 마켓플레이스를 실패하게 하지 않습니다 |68| `plugins` | array | [플러그인 항목](#plugin-entries). 각 항목은 독립적으로 검증되므로 하나의 잘못된 항목이 마켓플레이스를 실패하게 하지 않습니다 |

69| `$schema` | string | 편집기 자동 완성을 위한 JSON Schema URL. 로드 시간에 무시됨 |69| `$schema` | string | 편집기 자동 완성을 위한 JSON Schema URL. 로드 시간에 무시됨 |

Details

377 mod 공유하기377 mod 공유하기

378</h2>378</h2>

379 379 

380mod는 플러그인이므로 매니페스트에서 버전을 관리하며, 다른 사람들은 `/plugin` 명령으로 이를 설치하고 업데이트합니다. 다른 사람들에게 배포하려면 [마켓플레이스에 추가](/docs/ko/plugins/publish)하십시오.380mod는 플러그인이므로 매니페스트에서 버전을 관리하며, 다른 사람들은 `/plugin` 명령으로 이를 설치하고 업데이트합니다. 공유 방법은 대상에 따라 다릅니다.

381 

382* **소수의 사람**: 플러그인 디렉터리 또는 해당 디렉터리의 `.zip` 파일을 전달하십시오. [마켓플레이스 없이 플러그인 공유하기](/docs/ko/plugins/publish#share-a-plugin-without-a-marketplace)를 참조하십시오

383* **팀**: 플러그인마다 하나의 디렉터리를 두는 비공개 저장소와 같은 [자체 마켓플레이스](/docs/ko/plugins/publish#publish-through-your-own-marketplace)에 등록하십시오. 저장소에서 작업하는 모든 사람을 위해 해당 마켓플레이스를 추가하려면 [저장소 설정에 등록](/docs/ko/plugins/host-marketplace#register-the-marketplace-for-everyone-in-a-repository)하십시오

384* **조직 전체**: 관리자가 관리형 설정을 통해 [조직의 mod를 설치](/docs/ko/plugins/mods/admin#install-your-organizations-mods)할 수 있습니다

385* **모든 사람**: 마켓플레이스 저장소를 공개하거나 [Anthropic 디렉터리에 플러그인을 제출](/docs/ko/plugins/publish#submit-to-anthropics-directory)하십시오

381 386 

382그 전에 플러그인의 `name`을 확인하십시오. `claude-`로 시작하는 이름처럼 [Anthropic 자체 플러그인 이름으로 보이는](/docs/ko/plugins/manifest-reference#name) 이름은 `claude plugin validate` 검사를 통과하지 못합니다. 이벤트와 메서드는 릴리스마다 변경될 수 있으므로, 테스트에 사용한 Claude Code 버전은 README에 명시하십시오.387그 전에 플러그인의 `name`을 확인하십시오. `claude-`로 시작하는 이름처럼 [Anthropic 자체 플러그인 이름으로 보이는](/docs/ko/plugins/manifest-reference#name) 이름은 `claude plugin validate` 검사를 통과하지 못합니다. 이벤트와 메서드는 릴리스마다 변경될 수 있으므로, 테스트에 사용한 Claude Code 버전은 README에 명시하십시오.

383 388 

Details

531| Up 및 Down | 그린 내용이 들어맞는 동안에는 컨트롤 사이를 이동합니다. 창이나 밴드에 표시할 수 있는 것보다 많은 행이 있으면 스크롤합니다. |531| Up 및 Down | 그린 내용이 들어맞는 동안에는 컨트롤 사이를 이동합니다. 창이나 밴드에 표시할 수 있는 것보다 많은 행이 있으면 스크롤합니다. |

532| Enter | 포커스된 `Button`을 누르거나, 포커스된 `Input`을 제출하거나, `Select`에서 항목을 고릅니다 |532| Enter | 포커스된 `Button`을 누르거나, 포커스된 `Input`을 제출하거나, `Select`에서 항목을 고릅니다 |

533| 버튼의 단축키 | 해당 버튼을 누릅니다. `Input`에 포커스가 있는 동안에는 출력 가능한 모든 키가 필드로 전달됩니다. |533| 버튼의 단축키 | 해당 버튼을 누릅니다. `Input`에 포커스가 있는 동안에는 출력 가능한 모든 키가 필드로 전달됩니다. |

534| Page Up, Page Down, Home 및 End | 창이나 밴드에 표시할 수 있는 것보다 많은 행이 있으면 창이나 밴드를 스크롤합니다 |

535| Ctrl+X 다음 화살표 키 | 창 크기를 조정합니다. Left 또는 Up은 창에 더 많은 공간을 주고, Right 또는 Down은 그 공간을 되돌려 줍니다. |

536| Ctrl+X 다음 X | 창의 필드 중 하나에 포커스가 있는 동안에도 창을 닫습니다 |

534| Esc | 키보드 포커스를 프롬프트로 되돌립니다. `closeOnEscape: true`를 지정하면 창도 닫습니다. |537| Esc | 키보드 포커스를 프롬프트로 되돌립니다. `closeOnEscape: true`를 지정하면 창도 닫습니다. |

535 538 

536mod는 Tab이나 화살표 키를 다른 동작에 바인딩할 수 없으므로, 게임은 `w`, `a`, `s`, `d`로 조작합니다.539mod는 Tab이나 화살표 키를 다른 동작에 바인딩할 수 없으므로, 게임은 `w`, `a`, `s`, `d`로 조작합니다.

Details

63| :- | :- | :- |63| :- | :- | :- |

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

65| [`tool.check`](/docs/ko/plugins/mods/events#where-settings-hooks-run-in-the-order) | `tool.call` 및 `PreToolUse` 훅 이후, Claude Code가 도구 호출의 실행 허용 여부를 결정할 때. `next(e)`는 규칙, 권한 모드, 그리고 해당 훅들이 내린 결정으로 확정됩니다. | `{ decision }`(`allow`, `ask` 또는 `deny`) |65| [`tool.check`](/docs/ko/plugins/mods/events#where-settings-hooks-run-in-the-order) | `tool.call` 및 `PreToolUse` 훅 이후, Claude Code가 도구 호출의 실행 허용 여부를 결정할 때. `next(e)`는 규칙, 권한 모드, 그리고 해당 훅들이 내린 결정으로 확정됩니다. | `{ decision }`(`allow`, `ask` 또는 `deny`) |

66| `tool.describe` | 각 도구의 설명이 Claude에 처음 전송될 때 도구마다 한 번 | `{ description }` |66| `tool.describe` | 각 도구의 설명이 Claude에 처음 전송될 때 도구마다 한 번 | `{ description }`. 선택적으로 `isDeferred`를 함께 지정할 수 있으며, `true`로 설정하면 도구를 [도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search) 뒤에 두고 `false`로 설정하면 처음부터 로드합니다 |

67 67 

68<h3 id="prompts-and-what-claude-reads">68<h3 id="prompts-and-what-claude-reads">

69 프롬프트와 Claude가 읽는 내용69 프롬프트와 Claude가 읽는 내용

plugins/publish.md +26 −11

Details

145 Anthropic의 디렉터리에 제출145 Anthropic의 디렉터리에 제출

146</h2>146</h2>

147 147 

148Anthropic의 디렉터리는 사람들이 claude.ai와 Cowork에서 플러그인과 커넥터를 추가하기 위해 탐색하는 카탈로그입니다. 여기에 하나의 목록이 있으면 claude.ai, Cowork, Claude Code의 사용자에게 도달합니다. [claude.ai/directory/manage](https://claude.ai/directory/manage)의 개발자 포털에서 제출하며, claude.com의 [검토 준비](https://claude.com/docs/directory/publish#prepare-for-review)에서는 각 버전이 게시되기 전에 어떤 일이 발생하는지 설명합니다.148[Anthropic의 디렉터리](https://claude.ai/directory)는 사람들이 claude.ai와 Cowork에서 플러그인과 커넥터를 추가하기 위해 탐색하는 카탈로그입니다. 여기에 하나의 목록이 있으면 claude.ai, Cowork, Claude Code의 사용자에게 도달합니다. [claude.ai/directory/manage](https://claude.ai/directory/manage)의 개발자 포털에서 제출하며, claude.com의 [플러그인 제출](https://claude.com/docs/plugins/submit#submit-a-plugin)에서 포털 사용 방법을 안내합니다.

149 149 

150제출하려면 유료 claude.ai 플랜이 필요합니다. Pro와 Max에서는 자신의 계정에서 제출합니다. Team과 Enterprise에서는 소유자가 제출할 수 있으며, Enterprise에서는 소유자가 **Organization settings > Roles** 아래의 사용자 정의 역할을 통해 다른 멤버에게 **Directory** 권한을 부여할 수도 있습니다. [디렉터리에 제출할 수 있는지 확인](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory)을 참조하세요.150Anthropic의 공식 마켓플레이스인 `claude-plugins-official`은 디렉터리 포털을 통한 제출을 받지 않습니다. Anthropic 파트너 담당자와 함께 일하면 공식 마켓플레이스 목록에 대해 물어보세요.

151 151 

152제출 단계, 각 버전이 통과해야 하는 검사, 게시 후 발생하는 일은 claude.com에 문서화되어 있습니다. 사용자가 어느 서피스에 있든 동일하기 때문입니다:152플러그인을 제출하려면:

153 153 

154* [디렉터리에 게시](https://claude.com/docs/directory/publish#before-you-submit-to-the-directory): 제출할 수 있는 것과 누가 제출할 수 있는지154<Steps>

155* [플러그인 제출](https://claude.com/docs/plugins/submit#submit-a-plugin): 포털 단계 및 [게시된 플러그인 업데이트](https://claude.com/docs/plugins/submit#update-a-published-plugin)155 <Step title="제출할 수 있는지 확인">

156* [플러그인 제출 전 체크리스트](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit): 제출 전에 실행하고 수정할 검사156 제출하려면 유료 claude.ai 플랜이 필요합니다. Pro와 Max에서는 자신의 계정에서 제출합니다. Team과 Enterprise에서는 소유자가 제출할 수 있으며, Enterprise에서는 소유자가 **Organization settings > Roles** 아래의 사용자 정의 역할을 통해 다른 멤버에게 **Directory** 권한을 부여할 수도 있습니다. [디렉터리에 제출할 수 있는지 확인](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory)을 참조하세요.

157* [이전 제출을 개발자 포털로 이동](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal): 포털이 존재하기 전에 이전 제출 양식 중 하나를 통해 플러그인을 제출한 경우 수행할 작업157 </Step>

158 158 

159포털을 열기 전에 로컬에서 유효성을 검사하고 Claude Code 외부에서 로드되는 구성 요소를 확인하세요:159 <Step title="로컬에서 플러그인 유효성 검사">

160 셸에서 `claude plugin validate ./your-plugin --strict`를 실행합니다. `./your-plugin`을 플러그인 디렉터리의 경로로 바꾸세요. 이 명령은 로컬에서 매니페스트 오류를 포착합니다. [plugin validate](/docs/ko/plugins/cli-reference#plugin-validate)는 각 실행이 읽는 파일을 나열합니다. 포털은 CLI가 확인하지 않는 추가 디렉터리 규칙을 적용하므로, 깨끗한 로컬 실행이 깨끗한 포털 유효성 검사를 보장하지는 않습니다.

160 161 

161* **셸에서 `claude plugin validate ./your-plugin --strict` 실행**: `./your-plugin`을 플러그인 디렉터리의 경로로 바꾸세요. 이 명령은 로컬에서 매니페스트 오류를 포착합니다. [plugin validate](/docs/ko/plugins/cli-reference#plugin-validate)는 각 실행이 읽는 파일을 나열합니다. 포털은 CLI가 확인하지 않는 추가 디렉터리 규칙을 적용하므로, 깨끗한 로컬 실행이 깨끗한 포털 유효성 검사를 보장하지는 않습니다.162 claude.com의 [플러그인 제출 전 체크리스트](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit)에는 제출 전에 실행하고 수정할 검사가 있습니다.

162* **어디에 로드되는지 확인**: 일부 플러그인 구성 요소는 Claude Code 전용이며 claude.ai 또는 Cowork에서 로드되지 않습니다. [구성 요소 지원 표](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app)는 각 앱별로 각 구성 요소를 나열하므로 Claude Code 외부의 사용자가 무엇을 얻을지 알 수 있습니다.163 </Step>

163 164 

164Anthropic의 공식 마켓플레이스인 `claude-plugins-official`은 디렉터리 포털을 통한 제출을 받지 않습니다. Anthropic 파트너 담당자와 함께 일하면 공식 마켓플레이스 목록에 대해 물어보세요.165 <Step title="어디에 로드되는지 확인">

166 일부 플러그인 구성 요소는 Claude Code 전용이며 claude.ai 또는 Cowork에서 로드되지 않습니다. [구성 요소 지원 표](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app)는 각 앱별로 각 구성 요소를 나열하므로 Claude Code 외부의 사용자가 무엇을 얻을지 알 수 있습니다.

167 </Step>

168 

169 <Step title="개발자 포털에서 제출">

170 [claude.ai/directory/manage](https://claude.ai/directory/manage)에서 개발자 포털을 열고 claude.com의 [플러그인 제출](https://claude.com/docs/plugins/submit#submit-a-plugin)을 따르세요.

171 </Step>

172</Steps>

173 

174나머지 과정은 claude.com에 문서화되어 있습니다:

175 

176* [검토 준비](https://claude.com/docs/directory/publish#prepare-for-review): 각 버전이 게시되기 전에 어떤 일이 발생하는지

177* [게시된 플러그인 업데이트](https://claude.com/docs/plugins/submit#update-a-published-plugin): 새 버전이 플러그인을 사용하는 사람들에게 도달하는 방식

178* [플러그인 및 MCP 서버를 커넥터로 제출](https://claude.com/docs/directory/publish#submit-your-plugin-and-your-mcp-server-as-a-connector): 제출할 수 있는 것

179* [이전 제출을 개발자 포털로 이동](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal): 포털이 존재하기 전에 이전 제출 양식 중 하나를 통해 플러그인을 제출한 경우 수행할 작업

165 180 

166<h3 id="how-a-listed-plugin-reaches-claude-code-users">181<h3 id="how-a-listed-plugin-reaches-claude-code-users">

167 나열된 플러그인이 Claude Code 사용자에게 도달하는 방식182 나열된 플러그인이 Claude Code 사용자에게 도달하는 방식

routines.md +1 −1

Details

403 </Step>403 </Step>

404 404 

405 <Step title="네트워크 액세스 수준 변경">405 <Step title="네트워크 액세스 수준 변경">

406 **클라우드 환경 편집** 대화 상자에서 **네트워크 액세스**를 **사용자 정의**로 변경하고 **허용된 도메인**에 도메인을 입력합니다. **기본 패키지 관리자 목록도 포함**을 선택하여 [기본 허용 목록](/docs/ko/cloud-environments#default-allowed-domains)을 사용자 정의 도메인과 함께 유지합니다. 제한 없는 액세스를 위해 **전체**를 대신 선택합니다.406 **환경 편집** 대화 상자에서 **네트워크 액세스**를 **사용자 정의**로 변경하고 **허용된 도메인**에 도메인을 입력합니다. **기본 패키지 관리자 목록도 포함**을 선택하여 [기본 허용 목록](/docs/ko/cloud-environments#default-allowed-domains)을 사용자 정의 도메인과 함께 유지합니다. 제한 없는 액세스를 위해 **전체**를 대신 선택합니다.

407 </Step>407 </Step>

408 408 

409 <Step title="저장">409 <Step title="저장">

sandboxing.md +2 −4

Details

459 자격 증명 마스킹459 자격 증명 마스킹

460</h3>460</h3>

461 461 

462자격 증명을 마스킹하면 Claude Code는 샌드박스 처리된 명령에 센티널이라는 세션별 플레이스홀더를 보여 주고, [샌드박스 프록시](#network-isolation)는 허용한 호스트로 나가는 요청에서 실제 값으로 치환합니다. [자격 증명 보호](#protect-credentials)의 `deny` 항목은 대신 자격 증명을 차단합니다. macOS의 파일의 경우 Claude Code는 마스킹하는 대신 [파일을 차단합니다](#mask-credential-files).462자격 증명을 마스킹하면 Claude Code는 샌드박스 처리된 명령에 센티널이라는 세션별 플레이스홀더를 보여 주고, [샌드박스 프록시](#network-isolation)는 허용한 호스트로 나가는 요청에서 실제 값으로 치환합니다. [자격 증명 보호](#protect-credentials)의 `deny` 항목은 대신 자격 증명을 차단합니다. macOS의 파일의 경우 Claude Code는 마스킹하는 대신 [파일을 차단합니다](#mask-credential-files). [`sandbox.credentials`](/docs/ko/settings-reference#sandbox-credentials) 참조에 모든 필드가 나열되어 있습니다.

463 

464환경 변수 마스킹에는 Claude Code v2.1.199 이상이 필요합니다. [`sandbox.credentials`](/docs/ko/settings-reference#sandbox-credentials) 참조에 모든 필드가 나열되어 있습니다.

465 463 

466마스킹에는 다음이 필요합니다:464마스킹에는 다음이 필요합니다:

467 465 


620`WebFetch(domain:...)` 규칙에서 샌드박스는 두 가지 와일드카드 형식을 인정합니다. `*.example.com`과 같은 앞쪽의 `*.`와 단독 `*`입니다. 단독 `*` 형식은 Claude Code v2.1.186 이상이 필요합니다. `WebFetch(domain:example.*)`처럼 다른 위치에 있는 와일드카드는 여전히 fetch와 일치하지만 샌드박스가 적용된 명령에는 영향을 주지 않습니다.618`WebFetch(domain:...)` 규칙에서 샌드박스는 두 가지 와일드카드 형식을 인정합니다. `*.example.com`과 같은 앞쪽의 `*.`와 단독 `*`입니다. 단독 `*` 형식은 Claude Code v2.1.186 이상이 필요합니다. `WebFetch(domain:example.*)`처럼 다른 위치에 있는 와일드카드는 여전히 fetch와 일치하지만 샌드박스가 적용된 명령에는 영향을 주지 않습니다.

621 619 

622<Note>620<Note>

623 내장 프록시는 요청된 호스트 이름을 기준으로 허용 목록을 적용하며, 기본적으로 TLS 트래픽을 종료하거나 검사하지 않습니다. Claude Code v2.1.199 이상에서 사용할 수 있는 실험적 [`network.tlsTerminate`](/docs/ko/settings-reference#sandbox-network-tlsterminate) 설정은 내장 프록시가 TLS를 직접 종료하도록 하며, 이는 [`mask` 자격 증명 항목](#mask-credentials)에 필요합니다. 기본값의 영향에 대해서는 [보안 제한 사항](#security-limitations)을, 위협 모델에 TLS 검사가 필요한 경우 [사용자 지정 프록시 구성](#custom-proxy-configuration)을 참조하십시오.621 내장 프록시는 요청된 호스트 이름을 기준으로 허용 목록을 적용하며, 기본적으로 TLS 트래픽을 종료하거나 검사하지 않습니다. 실험적 [`network.tlsTerminate`](/docs/ko/settings-reference#sandbox-network-tlsterminate) 설정은 내장 프록시가 TLS를 직접 종료하도록 하며, 이는 [`mask` 자격 증명 항목](#mask-credentials)에 필요합니다. 기본값의 영향에 대해서는 [보안 제한 사항](#security-limitations)을, 위협 모델에 TLS 검사가 필요한 경우 [사용자 지정 프록시 구성](#custom-proxy-configuration)을 참조하십시오.

624</Note>622</Note>

625 623 

626<h4 id="hosts-outside-your-allowed-domains">624<h4 id="hosts-outside-your-allowed-domains">

Details

24* **러너**: 네트워크 내부의 호스트에서 실행되는 프로그램입니다. 러너는 세션을 실행합니다. 개념은 자체 호스팅 CI 러너와 동일합니다.24* **러너**: 네트워크 내부의 호스트에서 실행되는 프로그램입니다. 러너는 세션을 실행합니다. 개념은 자체 호스팅 CI 러너와 동일합니다.

25* **세션**: 개발자가 시작한 하나의 Claude Code 작업입니다.25* **세션**: 개발자가 시작한 하나의 Claude Code 작업입니다.

26 26 

27개발자가 클라우드 세션을 시작하면, 세션 시작 UI는 Anthropic 호스팅 환경과 조직이 생성한 환경을 나열하는 환경 선택기를 표시합니다. 조직의 환경을 선택하면, Anthropic의 제어 평면이 세션을 환경의 큐에 배치하고, 러너가 이를 요청하고, 개발자가 선택한 저장소를 복제하고, 호스트에서 Claude Code 프로세스를 시작하여 실행합니다. 러너는 구성한 자격 증명으로 git 호스트에 인증합니다. [git 구성](/docs/ko/self-hosted-environments-deploy#configure-git)에서 옵션을 다룹니다. 세션은 네트워크 내부에서 내부 서비스에 도달하며, 내부인 경우 git 호스트도 동일한 방식으로 도달합니다. Anthropic으로의 트래픽, 큐 폴링, 세션의 이벤트 스트림, 모델 추론은 `api.anthropic.com`으로의 아웃바운드 HTTPS이며, 세션이 도달할 수 있는 추가 호스트의 짧은 목록은 [네트워크 요구 사항](/docs/ko/self-hosted-environments-deploy#network-requirements)에 있습니다. Anthropic은 절대 네트워크에 연결하지 않습니다.27개발자가 클라우드 세션을 시작하면, 세션 시작 UI는 Anthropic 호스팅 환경과 조직이 생성한 환경을 나열하는 환경 선택기를 표시합니다. 조직의 환경을 선택하면, Anthropic의 제어 평면이 세션을 환경의 큐에 배치하고, 러너가 이를 요청하고, 개발자가 선택한 저장소를 복제하고, 호스트에서 Claude Code 프로세스를 시작하여 실행합니다. 러너는 구성한 자격 증명으로 git 호스트에 인증합니다. [git 구성](/docs/ko/self-hosted-environments-deploy#configure-git)에서 옵션을 다룹니다. 세션은 네트워크 내부에서 내부 서비스에 도달하며, 내부인 경우 git 호스트도 동일한 방식으로 도달합니다. Anthropic으로의 트래픽, 즉 큐 폴링, 세션의 이벤트 스트림, 그리고 기본적으로 모델 추론은 `api.anthropic.com`으로의 아웃바운드 HTTPS이며, 세션이 도달할 수 있는 추가 호스트의 짧은 목록은 [네트워크 요구 사항](/docs/ko/self-hosted-environments-deploy#network-requirements)에 있습니다. Anthropic은 절대 네트워크에 연결하지 않습니다.

28 28 

29<div style={{maxWidth: "640px", margin: "0 auto"}}>29<div style={{maxWidth: "640px", margin: "0 auto"}}>

30 <Frame>30 <Frame>


46 46 

47* **플랜**: Team 및 Enterprise 조직을 위한 공개 베타입니다. 자체 호스팅 환경은 기본적으로 비활성화되어 있습니다. [소유자](/docs/ko/cloud-environments#organization-shared-environments)가 [**클라우드 환경** 관리 페이지](https://claude.ai/admin-settings/cloud-environments)에서 **자체 호스팅 환경 허용**을 켜야 하며, 이는 조직에 대해 [클라우드 세션](/docs/ko/claude-code-on-the-web)이 활성화되어 있어야 합니다.47* **플랜**: Team 및 Enterprise 조직을 위한 공개 베타입니다. 자체 호스팅 환경은 기본적으로 비활성화되어 있습니다. [소유자](/docs/ko/cloud-environments#organization-shared-environments)가 [**클라우드 환경** 관리 페이지](https://claude.ai/admin-settings/cloud-environments)에서 **자체 호스팅 환경 허용**을 켜야 하며, 이는 조직에 대해 [클라우드 세션](/docs/ko/claude-code-on-the-web)이 활성화되어 있어야 합니다.

48* **Zero Data Retention**: [Zero Data Retention](/docs/ko/zero-data-retention)이 활성화된 조직에서는 사용할 수 없습니다.48* **Zero Data Retention**: [Zero Data Retention](/docs/ko/zero-data-retention)이 활성화된 조직에서는 사용할 수 없습니다.

49* **모델 추론**: 세션은 Anthropic API를 사용하며, 추론은 [Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry](/docs/ko/third-party-integrations) 또는 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 라우팅될 수 없습니다.49* **모델 추론**: 러너가 [Amazon Bedrock 또는 Google Cloud의 Agent Platform으로 모델 요청을 보내도록](/docs/ko/self-hosted-environments-configuration#send-model-requests-to-bedrock-or-agent-platform) 구성하지 않는 한 세션은 Anthropic API를 사용합니다. 두 경우 모두 세션 콘텐츠는 Anthropic으로 전송됩니다. 이렇게 구성된 러너에서는 claude.ai의 [서버 관리 설정](/docs/ko/server-managed-settings) 및 조직 정책이 세션에 적용되지 않습니다.

50* **표면**: [claude.ai/code](https://claude.ai/code), 모바일 및 데스크톱 앱, [예약된 루틴](/docs/ko/routines), 터미널에서 [`claude --cloud`](/docs/ko/claude-code-on-the-web#from-terminal-to-cloud) 또는 [`--environment` 디스패치](/docs/ko/self-hosted-environments-testing#run-the-test-loop)로 시작된 세션은 자체 호스팅 환경에서 실행될 수 있습니다. [Claude Tag](https://claude.com/docs/claude-tag/overview) 세션도 실행될 수 있지만, Claude는 아직 해당 세션에서 [Access 번들](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle)을 사용할 수 없습니다. [Claude Security](/docs/ko/claude-security) 및 [Code Review](/docs/ko/code-review) 세션은 아직 라우팅되지 않습니다. 이 두 표면에 대한 지원은 별도로 따릅니다.50* **표면**: [claude.ai/code](https://claude.ai/code), 모바일 및 데스크톱 앱, [예약된 루틴](/docs/ko/routines), 터미널에서 [`claude --cloud`](/docs/ko/claude-code-on-the-web#from-terminal-to-cloud) 또는 [`--environment` 디스패치](/docs/ko/self-hosted-environments-testing#run-the-test-loop)로 시작된 세션은 자체 호스팅 환경에서 실행될 수 있습니다. [Claude Tag](https://claude.com/docs/claude-tag/overview) 세션도 실행될 수 있지만, Claude는 아직 해당 세션에서 [Access 번들](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle)을 사용할 수 없습니다. [Claude Security](/docs/ko/claude-security) 및 [Code Review](/docs/ko/code-review) 세션은 아직 라우팅되지 않습니다. 이 두 표면에 대한 지원은 별도로 따릅니다.

51* **저장소**: 세션은 GitHub에서 저장소를 체크아웃합니다. [GitHub 인증 옵션](/docs/ko/claude-code-on-the-web#github-authentication-options)을 참조하세요. GitHub Enterprise Server 호스트의 경우 해당 [네트워크 요구 사항](/docs/ko/github-enterprise-server#network-requirements)을 참조하세요.51* **저장소**: 세션은 GitHub에서 저장소를 체크아웃합니다. [GitHub 인증 옵션](/docs/ko/claude-code-on-the-web#github-authentication-options)을 참조하세요. GitHub Enterprise Server 호스트의 경우 해당 [네트워크 요구 사항](/docs/ko/github-enterprise-server#network-requirements)을 참조하세요.

52* **청구**: 자체 호스팅 환경의 세션은 Anthropic 호스팅 환경의 세션과 동일한 방식으로 조직의 Claude Code 사용량을 소비합니다.52* **청구**: 자체 호스팅 환경의 세션은 Anthropic 호스팅 환경의 세션과 동일한 방식으로 조직의 Claude Code 사용량을 소비합니다.


61 61 

62* **네트워크 액세스**: 세션은 네트워크 내부에서 실행되며 공개 인터넷에 노출하지 않고 내부 서비스, 데이터베이스 및 레지스트리에 도달할 수 있습니다.62* **네트워크 액세스**: 세션은 네트워크 내부에서 실행되며 공개 인터넷에 노출하지 않고 내부 서비스, 데이터베이스 및 레지스트리에 도달할 수 있습니다.

63* **사용자 정의 도구**: 러너 이미지에 컴파일러, SDK 및 내부 CLI를 사전 설치하여 모든 세션이 빌드할 준비가 된 상태로 시작됩니다.63* **사용자 정의 도구**: 러너 이미지에 컴파일러, SDK 및 내부 CLI를 사전 설치하여 모든 세션이 빌드할 준비가 된 상태로 시작됩니다.

64* **규정 준수**: 저장소 체크아웃 및 빌드 아티팩트는 제어하는 인프라에 남아 있습니다. 세션 콘텐츠는 여전히 모델 추론을 위해 `api.anthropic.com`으로 이동합니다.64* **규정 준수**: 저장소 체크아웃 및 빌드 산출물은 직접 제어하는 인프라에 남아 있습니다. 세션 콘텐츠는 여전히 `api.anthropic.com`으로 전송됩니다.

65 65 

66<h2 id="environments-runners-and-sessions">66<h2 id="environments-runners-and-sessions">

67 환경, 러너 및 세션67 환경, 러너 및 세션


136* **Git**: 러너는 배포가 제공하는 자격 증명으로 인증하여 HTTPS 또는 SSH를 통해 git 호스트에서 복제하고 푸시합니다. [git 구성](/docs/ko/self-hosted-environments-deploy#configure-git)에서 옵션을 다루며, 세션별 발급 자격 증명 및 [Anthropic git 프록시](/docs/ko/self-hosted-environments-deploy#use-the-anthropic-git-proxy)를 포함하며, 이는 git을 `api.anthropic.com` 대신을 통해 라우팅합니다.136* **Git**: 러너는 배포가 제공하는 자격 증명으로 인증하여 HTTPS 또는 SSH를 통해 git 호스트에서 복제하고 푸시합니다. [git 구성](/docs/ko/self-hosted-environments-deploy#configure-git)에서 옵션을 다루며, 세션별 발급 자격 증명 및 [Anthropic git 프록시](/docs/ko/self-hosted-environments-deploy#use-the-anthropic-git-proxy)를 포함하며, 이는 git을 `api.anthropic.com` 대신을 통해 라우팅합니다.

137* **세션 자식**: 자식 Claude Code 프로세스는 `api.anthropic.com`에 대한 세션의 이벤트 스트림을 유지하며, 모델 추론 및 세션 중에 실행되는 git 명령에 대한 자신의 아웃바운드 호출을 만듭니다. 전체 이그레스 목록은 [네트워크 요구 사항](/docs/ko/self-hosted-environments-deploy#network-requirements)을 참조하세요. [위의 다이어그램](#how-self-hosted-environments-work)은 선택적 SCM 커넥터를 제외한 이러한 경로를 보여줍니다.137* **세션 자식**: 자식 Claude Code 프로세스는 `api.anthropic.com`에 대한 세션의 이벤트 스트림을 유지하며, 모델 추론 및 세션 중에 실행되는 git 명령에 대한 자신의 아웃바운드 호출을 만듭니다. 전체 이그레스 목록은 [네트워크 요구 사항](/docs/ko/self-hosted-environments-deploy#network-requirements)을 참조하세요. [위의 다이어그램](#how-self-hosted-environments-work)은 선택적 SCM 커넥터를 제외한 이러한 경로를 보여줍니다.

138 138 

139모델 추론은 Anthropic API를 사용합니다. 제어 평면은 각 세션에 API 엔드포인트를 전달하고, 세션은 Anthropic 발급 세션 범위 OAuth 토큰으로 인증하므로, 추론은 [Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry](/docs/ko/third-party-integrations) 또는 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 라우팅될 수 없습니다.139기본적으로 모델 추론은 Anthropic API를 사용합니다. 제어 평면은 각 세션에 API 엔드포인트를 전달하고, 세션은 Anthropic 발급 세션 범위 OAuth 토큰으로 인증합니다. 대신 자체 클라우드 계정으로 모델 요청을 보내려면 [Bedrock 또는 Agent Platform으로 모델 요청 보내기](/docs/ko/self-hosted-environments-configuration#send-model-requests-to-bedrock-or-agent-platform)를 참조하세요.

140 140 

141기업 이그레스 프록시가 지원됩니다. 러너 및 선택적 [자동 스케일링 오케스트레이터](/docs/ko/self-hosted-environments-configuration#on-demand-runners)는 [네트워크 구성](/docs/ko/network-config)에서 설명하는 프록시 및 mTLS 환경 변수를 준수합니다. 예를 들어 `HTTPS_PROXY` 및 `NO_PROXY`입니다. 각 프로세스의 환경에서 설정합니다. 변수는 제어 평면 호출, 오케스트레이터의 [SCM 커넥터](/docs/ko/self-hosted-environments-reference#scm-connector-flags) WebSocket, HTTPS 리모트에 대한 기본 제공 복제를 다루며, 세션은 러너에서 이를 상속합니다. 세션 스트리밍은 HTTPS를 통한 서버 전송 이벤트를 사용하므로, 경로의 프록시는 응답을 버퍼링하지 않아야 합니다.141기업 이그레스 프록시가 지원됩니다. 러너 및 선택적 [자동 스케일링 오케스트레이터](/docs/ko/self-hosted-environments-configuration#on-demand-runners)는 [네트워크 구성](/docs/ko/network-config)에서 설명하는 프록시 및 mTLS 환경 변수를 준수합니다. 예를 들어 `HTTPS_PROXY` 및 `NO_PROXY`입니다. 각 프로세스의 환경에서 설정합니다. 변수는 제어 평면 호출, 오케스트레이터의 [SCM 커넥터](/docs/ko/self-hosted-environments-reference#scm-connector-flags) WebSocket, HTTPS 리모트에 대한 기본 제공 복제를 다루며, 세션은 러너에서 이를 상속합니다. 세션 스트리밍은 HTTPS를 통한 서버 전송 이벤트를 사용하므로, 경로의 프록시는 응답을 버퍼링하지 않아야 합니다.

142 142 


146 인프라에 남아 있는 것146 인프라에 남아 있는 것

147</h2>147</h2>

148 148 

149저장소 체크아웃, 빌드 아티팩트, 시크릿 및 세션이 생성하거나 수정하는 모든 파일은 프로비저닝한 머신에 남아 있습니다. 대화 자체(프롬프트, 응답 및 도구 결과 포함)는 모델 추론을 위해 `api.anthropic.com`으로 이동하며, Anthropic은 다른 [지원되는 표면](#availability-and-limitations)에서 세션을 재개할 수 있도록 세션 트랜스크립트를 저장합니다.149저장소 체크아웃, 빌드 아티팩트, 시크릿 및 세션이 생성하거나 수정하는 모든 파일은 프로비저닝한 머신에 남아 있습니다. 대화 자체(프롬프트, 응답 및 도구 결과 포함)는 `api.anthropic.com`으로 이동하며, Anthropic은 다른 [지원되는 사용 환경](#availability-and-limitations)에서 세션을 재개할 수 있도록 세션 트랜스크립트를 저장합니다. 러너가 [Amazon Bedrock 또는 Google Cloud의 Agent Platform으로 모델 요청을 보내는 경우](/docs/ko/self-hosted-environments-configuration#send-model-requests-to-bedrock-or-agent-platform)에도 대화는 여전히 세션의 이벤트 스트림을 통해 `api.anthropic.com`으로 이동합니다.

150 150 

151자체 호스팅 환경은 세션 실행을 네트워크로 이동합니다. 제어 평면은 Anthropic 호스팅입니다: 세션 오케스트레이션, 큐잉 및 claude.ai 인터페이스는 Anthropic의 인프라에서 계속 실행됩니다.151자체 호스팅 환경은 세션 실행을 네트워크로 이동합니다. 제어 평면은 Anthropic 호스팅입니다: 세션 오케스트레이션, 큐잉 및 claude.ai 인터페이스는 Anthropic의 인프라에서 계속 실행됩니다.

152 152 

sessions.md +1 −1

Details

293 세션 데이터 삭제293 세션 데이터 삭제

294</h3>294</h3>

295 295 

296기록은 [보존 정리 규칙](/docs/ko/claude-directory#cleaned-up-automatically)에 따라 만료됩니다. 프로젝트의 기록 및 관련 상태를 더 빨리 삭제하려면 [`claude project purge`](/docs/ko/claude-directory#clear-local-data)를 실행합니다. [`claude rm <id>`](/docs/ko/agent-view#what-deleting-a-session-removes)로 [백그라운드 세션](/docs/ko/agent-view)을 삭제하면 해당 기록은 디스크에 남아 있으며 `claude --resume`을 통해 계속 사용할 수 있습니다.296트랜스크립트는 [보존 정리 규칙](/docs/ko/claude-directory#cleaned-up-automatically)에 따라 만료됩니다. 프로젝트의 트랜스크립트 및 관련 상태를 더 빨리 삭제하려면 [`claude purge`](/docs/ko/claude-directory#clear-local-data)를 실행합니다. [`claude rm <id>`](/docs/ko/agent-view#what-deleting-a-session-removes)로 [백그라운드 세션](/docs/ko/agent-view)을 삭제하면 해당 트랜스크립트는 디스크에 남아 있으며 `claude --resume`을 통해 계속 사용할 수 있습니다.

297 297 

298<h3 id="name-the-project-directory-yourself">298<h3 id="name-the-project-directory-yourself">

299 프로젝트 디렉토리 이름 직접 지정299 프로젝트 디렉토리 이름 직접 지정

settings-reference.md +205 −204

Details

708| [`modelOverrides`](#modeloverrides) | [모델 ID를 공급자의 ID(예: Bedrock ARN)에 매핑](/docs/ko/model-config#override-model-ids-per-version) | 모델 및 응답 | 모든 파일 |708| [`modelOverrides`](#modeloverrides) | [모델 ID를 공급자의 ID(예: Bedrock ARN)에 매핑](/docs/ko/model-config#override-model-ids-per-version) | 모델 및 응답 | 모든 파일 |

709| [`modelPicker`](#modelpicker) | [`/model` 선택기](/docs/ko/model-config#available-models)가 나열하는 모델을 선택하고, 자신의 순서 및 자신의 레이블로 선택 | 모델 및 응답 | 사용자 또는 관리됨 |709| [`modelPicker`](#modelpicker) | [`/model` 선택기](/docs/ko/model-config#available-models)가 나열하는 모델을 선택하고, 자신의 순서 및 자신의 레이블로 선택 | 모델 및 응답 | 사용자 또는 관리됨 |

710| [`modelPricing`](#modelpricing) | 목록 가격 대신 조직의 계약 요금으로 지출 보고 | 모델 및 응답 | 관리됨 |710| [`modelPricing`](#modelpricing) | 목록 가격 대신 조직의 계약 요금으로 지출 보고 | 모델 및 응답 | 관리됨 |

711| [`modelSettings`](#modelsettings) | 모델별로 저장된 [effort 수준](/docs/ko/model-config#adjust-effort-level)을 유지하거나 한 모델의 effort 제한 | 모델 및 응답 | 모든 파일 |711| [`modelSettings`](#modelsettings) | 모델별로 저장된 [effort 수준](/docs/ko/model-config#adjust-effort-level) 또는 [자동 압축 윈도우](/docs/ko/model-config#set-the-auto-compact-window)를 유지하거나, 한 모델의 effort 상한을 설정합니다 | 모델 및 응답 | 모든 파일 |

712| [`otelHeadersHelper`](#otelheadershelper) | 자신의 명령으로 회전하는 [OpenTelemetry](/docs/ko/monitoring-usage#dynamic-headers) 헤더 생성 | 인증 및 공급자 | 모든 파일 |712| [`otelHeadersHelper`](#otelheadershelper) | 자신의 명령으로 회전하는 [OpenTelemetry](/docs/ko/monitoring-usage#dynamic-headers) 헤더 생성 | 인증 및 공급자 | 모든 파일 |

713| [`outputStyle`](#outputstyle) | [출력 스타일](/docs/ko/output-styles)로 Claude의 역할, 톤, 출력 형식 변경 | 모델 및 응답 | 모든 파일 |713| [`outputStyle`](#outputstyle) | [출력 스타일](/docs/ko/output-styles)로 Claude의 역할, 톤, 출력 형식 변경 | 모델 및 응답 | 모든 파일 |

714| [`parentSettingsBehavior`](#parentsettingsbehavior) | [관리형 설정](/docs/ko/managed-settings)을 배포할 때 [SDK 또는 IDE 호스트](/docs/ko/managed-settings#let-an-embedding-host-add-policy)가 전달하는 제한 사항 적용 또는 삭제 | 엔터프라이즈 및 관리형 설정 | 관리됨 |714| [`parentSettingsBehavior`](#parentsettingsbehavior) | [관리형 설정](/docs/ko/managed-settings)을 배포할 때 [SDK 또는 IDE 호스트](/docs/ko/managed-settings#let-an-embedding-host-add-policy)가 전달하는 제한 사항 적용 또는 삭제 | 엔터프라이즈 및 관리형 설정 | 관리됨 |


839 모델 및 응답839 모델 및 응답

840</h2>840</h2>

841 841 

842Claude Code가 사용할 모델과 응답 방식을 선택합니다. 이러한 설정이 `/model` 명령 및 환경 변수와 어떻게 상호작용하는지는 [모델 구성](/docs/ko/model-config)을 참조하십시오.842Claude Code가 사용하는 모델과 응답 방식을 선택합니다. 이러한 설정이 `/model` 명령 및 환경 변수와 어떻게 상호 작용하는지는 [모델 구성](/docs/ko/model-config)을 참조하세요.

843 843 

844<h3 id="advisormodel">844<h3 id="advisormodel">

845 `advisorModel`845 `advisorModel`

846</h3>846</h3>

847 847 

848Claude가 서버 측 [advisor 도구](/docs/ko/advisor)를 호출할 때 응답하는 모델을 선택합니다. advisor를 끄려면 설정을 해제합니다. advisor는 최소한 주 모델만큼 능력이 있어야 합니다. 허용되는 쌍과 허용되지 않는 쌍을 선택할 때 발생하는 상황은 [advisor 모델 선택](/docs/ko/advisor#choose-an-advisor-model)을 참조하십시오.848Claude가 서버 측 [advisor 도구](/docs/ko/advisor)를 호출할 때 응답할 모델을 선택합니다. advisor를 끄려면 이 키를 설정 해제합니다. advisor는 최소한 메인 모델과 동등한 성능을 갖춰야 합니다. 허용되는 조합과 허용되지 않는 모델을 선택했을 때 어떻게 되는지는 [advisor 모델 선택](/docs/ko/advisor#choose-an-advisor-model)을 참조하세요.

849 849 

850일반적으로 이 키를 직접 편집하지 않습니다. `/advisor`를 실행하여 현재 선택, advisor가 될 수 있는 모델, **advisor 없음**을 표시하는 선택기를 엽니다. Claude Code는 선택 사항을 `~/.claude/settings.json`의 이 키에 저장합니다. [Remote Control](/docs/ko/remote-control) 클라이언트에서 선택하거나 원격 워커에 연결된 세션에서 선택하면, 선택 사항이 해당 세션에만 적용되고 이 키는 변경되지 않습니다.850일반적으로 이 키를 직접 편집하지 않습니다. `/advisor`를 실행하면 현재 선택, advisor로 사용할 수 있는 모델, **No advisor**를 보여 주는 선택기가 열립니다. Claude Code는 선택한 항목을 `~/.claude/settings.json`의 이 키에 저장합니다. [Remote Control](/docs/ko/remote-control) 클라이언트에서 선택하거나 원격 워커에 연결된 세션에서 선택하면 해당 선택은 그 세션에만 적용되며 이 키는 변경되지 않습니다.

851 851 

852계정에 [usage-credits 동의](/docs/ko/advisor#fable-advisor-and-usage-credits)가 필요한 경우, `/model fable`을 실행하여 먼저 동의합니다. 동의하기 전까지는 `/advisor`에서 Fable을 선택해도 아무것도 저장되지 않으며 Claude Code는 먼저 `/model fable`을 실행하도록 지시합니다.852계정에 [사용량 크레딧 동의](/docs/ko/advisor#fable-advisor-and-usage-credits)가 필요한 경우 먼저 `/model fable`을 실행하여 동의해야 합니다. 동의하기 전까지는 `/advisor`에서 Fable을 선택해도 아무것도 저장되지 않으며, Claude Code가 먼저 `/model fable`을 실행하라고 안내합니다.

853 853 

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

855* **유형**: 문자열, `"fable"`, `"opus"`, 또는 `"sonnet"` 중 하나의 별칭(Claude Code의 해당 모델 제품군의 현재 기본 버전으로 확인됨) 또는 `"claude-opus-5-5"`와 같은 전체 모델 ID855* **유형**: 문자열. 해당 모델 계열의 Claude Code 현재 기본 버전으로 해석되는 별칭 `"fable"`, `"opus"`, `"sonnet"` 중 하나 또는 `"claude-opus-5-5"`와 같은 전체 모델 ID

856* **기본값**: 설정 해제되어 advisor가 꺼짐856* **기본값**: 설정되지 않음. 따라서 advisor가 꺼져 있습니다

857* **세션별 재정의**: `--advisor`는 한 세션에 대해 이 키보다 우선하며, [`CLAUDE_CODE_DISABLE_ADVISOR_TOOL`](/docs/ko/env-vars)은 advisor를 끄고 이 키는 다시 켤 수 없습니다.857* **세션별 재정의**: 한 세션에 대해서는 `--advisor`가 이 키보다 우선합니다. [`CLAUDE_CODE_DISABLE_ADVISOR_TOOL`](/docs/ko/env-vars)은 advisor를 끄며, 이 키로 다시 켤 수 없습니다

858 858 

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

860{860{


862}862}

863```863```

864 864 

865이 키는 Amazon Bedrock 및 AWS의 Claude Platform과 같이 advisor가 [사용 불가능](/docs/ko/advisor#requirements)한 공급자에게는 영향을 주지 않습니다. `"fable"`은 [Fable 액세스](/docs/ko/advisor#choose-an-advisor-model)가 필요합니다.865이 키는 Amazon Bedrock 및 Claude Platform on AWS처럼 advisor를 [사용할 수 없는](/docs/ko/advisor#requirements) 공급자에서는 효과가 없습니다. `"fable"`에는 [Fable 액세스](/docs/ko/advisor#choose-an-advisor-model)가 필요합니다.

866 866 

867<h3 id="alwaysthinkingenabled">867<h3 id="alwaysthinkingenabled">

868 `alwaysThinkingEnabled`868 `alwaysThinkingEnabled`

869</h3>869</h3>

870 870 

871이를 `false`로 설정하여 모든 세션에 대해 [확장 사고](/docs/ko/model-config#extended-thinking)를 끕니다. 사고는 기본적으로 켜져 있으므로 `true`는 아무것도 변경하지 않습니다. 대부분의 사람들은 파일을 편집하는 대신 `/config`를 통해 이를 설정합니다.871이 값을 `false`로 설정하면 모든 세션에서 [확장 사고](/docs/ko/model-config#extended-thinking)를 끕니다. 사고는 기본적으로 켜져 있으므로 `true`는 아무것도 바꾸지 않습니다. 대부분 파일을 편집하는 대신 `/config`를 통해 설정합니다.

872 872 

873Opus 5.5, Sonnet 5.5, Fable 모델과 같이 항상 사고하는 모델에서는 `false`가 영향을 주지 않습니다. [타사 공급자](/docs/ko/third-party-integrations)에서 Claude Code는 사고를 끄는 대신 `thinking` 매개변수를 생략하므로 적응형 추론 모델은 여전히 사고할 수 있습니다. Anthropic API에서 사고를 끈 경우, Claude Code는 [해당 조합을 허용하지 않는](/docs/ko/errors#effort-isnt-available-with-thinking-turned-off) Opus 5와 같은 모델에 더 높은 수준 대신 노력 `high`를 보냅니다.873Opus 5.5, Sonnet 5.5, Fable 모델처럼 항상 사고하는 모델에서는 `false`가 효과가 없습니다. [서드파티 공급자](/docs/ko/third-party-integrations)에서는 Claude Code가 사고를 끄는 대신 `thinking` 매개변수를 생략하므로 적응형 추론 모델은 여전히 사고할 수 있습니다. Anthropic API에서 사고를 끈 상태에서는, Opus 5처럼 [해당 조합을 허용하지 않는](/docs/ko/errors#effort-isnt-available-with-thinking-turned-off) 것으로 알려진 모델에 Claude Code가 더 높은 수준 대신 effort `high`를 보냅니다.

874 874 

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

876* **유형**: 부울876* **유형**: Boolean

877 * `true`: 영향 없음; 사고는 이미 켜짐877 * `true`: 효과 없음. 사고가 이미 켜져 있습니다

878 * `false`: Claude Code는 모든 세션에 대해 확장 사고를 끕니다.878 * `false`: Claude Code가 모든 세션에서 확장 사고를 끕니다

879* **기본값**: 설정 해제되어 사고는 이를 지원하는 모델에 대해 켜짐879* **기본값**: 설정되지 않음. 따라서 지원하는 모델에서는 사고가 켜져 있습니다

880* **세션별 재정의**: [`MAX_THINKING_TOKENS`](/docs/ko/env-vars)는 한 세션에 대해 이 키보다 우선합니다: `0`은 `false`와 동일한 모델 및 공급자 제한 하에서 사고를 끄고, 양수 값은 이 키가 `false`일 때도 사고를 켭니다. 적응형 추론 모델에서는 숫자 자체가 무시됩니다.880* **세션별 재정의**: 한 세션에 대해서는 [`MAX_THINKING_TOKENS`](/docs/ko/env-vars)가 이 키보다 우선합니다. `0`은 `false`와 동일한 모델 및 공급자 제한 아래에서 사고를 끄고, 양수 값은 이 키가 `false`여도 사고를 켭니다. 적응형 추론 모델에서는 숫자 자체가 무시됩니다

881 881 

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

883{883{


889 `availableModels`889 `availableModels`

890</h3>890</h3>

891 891 

892사람들이 주 세션, [subagents](/docs/ko/sub-agents), [skills](/docs/ko/skills), [advisor](/docs/ko/advisor)에 대해 선택할 수 있는 모델을 제한합니다. 관리되는 목록은 `/model`, `--model`, 개발자 자신의 파일의 `model` 키를 제한합니다. 목록 외의 모델은 선택할 수 없습니다. 기본 접두사 일치를 사용하면 Default 옵션 자체는 건드리지 않습니다. 이를 위해 [`enforceAvailableModels`](#enforceavailablemodels)와 쌍을 이룹니다.892메인 세션, [서브에이전트](/docs/ko/sub-agents), [스킬](/docs/ko/skills), [advisor](/docs/ko/advisor)에 사용자가 선택할 수 있는 모델을 제한합니다. 관리형 목록은 `/model`, `--model`, 개발자 자신의 파일에 있는 `model` 키를 제한하며, 목록에 없는 모델은 선택할 수 없습니다. 기본 접두사 매칭에서는 이 키만으로 Default 옵션에 영향을 주지 않으므로, 그러려면 [`enforceAvailableModels`](#enforceavailablemodels)와 함께 사용하세요.

893 893 

894* **범위**: [`Any file`](#scopes). 조직에 대해 이를 적용하려면 관리되는 설정에 배포합니다.894* **범위**: [`Any file`](#scopes). 조직 전체에 적용하려면 관리형 설정에 배포합니다.

895* **유형**: 모델 별칭 또는 ID의 배열895* **유형**: 모델 별칭 또는 ID의 배열

896* **기본값**: 설정 해제되어 모든 모델을 사용할 수 있음896* **기본값**: 설정되지 않음. 따라서 모든 모델을 사용할 수 있습니다

897 897 

898이 예제는 사람들이 Sonnet 및 Haiku 모델만 선택하도록 허용합니다:898이 예시는 Sonnet 및 Haiku 모델만 선택할 수 있도록 합니다:

899 899 

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

901{901{


903}903}

904```904```

905 905 

906`"claude-opus-5"`와 같은 모델 ID 항목은 Opus 5.5와 같이 이를 확장하는 이후 버전도 허용합니다. 이러한 버전 중 하나를 차단하려면 [`deniedModels`](#deniedmodels)을 사용합니다. 각 모델 ID 항목이 이름을 지정하는 버전만 허용하도록 하려면 [`availableModelsMatch`](#availablemodelsmatch)를 사용합니다. [모델 선택 제한](/docs/ko/model-config#restrict-model-selection)을 참조하십시오.906`"claude-opus-5"`와 같은 모델 ID 항목은 Opus 5.5처럼 이를 확장하는 이후 버전도 허용합니다. 그러한 버전 중 하나를 차단하려면 [`deniedModels`](#deniedmodels)를 사용하세요. 각 모델 ID 항목이 명시한 버전만 허용하도록 하려면 [`availableModelsMatch`](#availablemodelsmatch)를 사용하세요. [모델 선택 제한](/docs/ko/model-config#restrict-model-selection)을 참조하세요.

907 907 

908<h3 id="availablemodelsmatch">908<h3 id="availablemodelsmatch">

909 `availableModelsMatch`909 `availableModelsMatch`

910</h3>910</h3>

911 911 

912[`availableModels`](#availablemodels) 항목이 모델 ID와 일치하는 방식을 선택합니다. 기본적으로 모델 ID 항목은 이를 확장하는 이후 버전도 허용하므로 `"claude-opus-5"`는 Opus 5.5를 허용합니다. `"exact"`를 사용하면 각 모델 ID 항목은 이름을 지정하는 버전만 허용하므로 해당 모델의 최신 버전은 이를 나열할 때까지 차단된 상태로 유지됩니다. Claude Code v2.1.283 이상이 필요합니다.912[`availableModels`](#availablemodels) 항목이 모델 ID와 일치하는 방식을 선택합니다. 기본적으로 모델 ID 항목은 이를 확장하는 이후 버전도 허용하므로 `"claude-opus-5"`는 Opus 5.5를 허용합니다. `"exact"`를 사용하면 각 모델 ID 항목은 명시한 버전만 허용하므로, 해당 모델의 새 버전은 목록에 추가할 때까지 차단된 상태로 유지됩니다. Claude Code v2.1.283 이상이 필요합니다.

913 913 

914* **범위**: [`Managed`](#scopes). Claude Code는 사용자, 프로젝트, 로컬 설정 및 `--settings`에서 이 키를 무시하고 경고를 표시합니다.914* **범위**: [`Managed`](#scopes). Claude Code는 사용자, 프로젝트, 로컬 설정과 `--settings`에 있는 이 키를 경고와 함께 무시합니다

915* **유형**: 문자열, 다음 중 하나:915* **유형**: 문자열. 다음 중 하나:

916 * `"prefix"`: 모델 ID 항목은 해당 버전 및 다른 세그먼트로 확장하는 모든 모델 ID를 허용합니다.916 * `"prefix"`: 모델 ID 항목은 해당 버전과, 다른 세그먼트로 이를 확장하는 모든 모델 ID를 허용합니다

917 * `"exact"`: 모델 ID 항목은 이름을 지정하는 버전만 허용하며, 해당 버전의 날짜 ID를 포함하므로 `"claude-opus-5"`는 Opus 5를 허용하지만 `claude-opus-5-5`는 허용하지 않습니다. `"opus"`와 같은 제품군 별칭은 여전히 전체 제품군을 허용하며, `best`, `opusplan`, `default` 항목은 무시됩니다.917 * `"exact"`: 모델 ID 항목은 해당 버전의 날짜가 포함된 ID를 포함하여 명시한 버전만 허용하므로, `"claude-opus-5"`는 Opus 5를 허용하지만 `claude-opus-5-5`는 허용하지 않습니다. `"opus"`와 같은 계열 별칭은 여전히 계열 전체를 허용하며, `best`, `opusplan`, `default` 항목은 무시됩니다

918* **기본값**: `"prefix"`918* **기본값**: `"prefix"`

919 919 

920이 예제는 Opus 5 및 Sonnet 5와 이들의 최신 릴리스를 허용하지 않습니다:920이 예시는 Opus 5와 Sonnet 5를 허용하고 둘 다 이후 릴리스는 허용하지 않습니다:

921 921 

922```json managed-settings.json theme={null}922```json managed-settings.json theme={null}

923{923{


926}926}

927```927```

928 928 

929`"exact"`를 사용하면 목록이 최소한 하나의 모델 또는 제품군을 나열할 때마다 Default 옵션도 나열된 모델로 제한됩니다. [특정 모델 또는 버전 차단](/docs/ko/model-config#block-specific-models-or-versions)을 참조하십시오.929`"exact"`를 사용하면 목록에 모델이나 계열이 하나 이상 명시되어 있을 때마다 Default 옵션도 목록의 모델로 제한됩니다. [특정 모델 또는 버전 차단](/docs/ko/model-config#block-specific-models-or-versions)을 참조하세요.

930 930 

931<h3 id="deniedmodels">931<h3 id="deniedmodels">

932 `deniedModels`932 `deniedModels`

933</h3>933</h3>

934 934 

935특정 모델을 차단하며, [`availableModels`](#availablemodels) 허용 목록이 있거나 없을 수 있으며 해당 목록이 이들을 허용하더라도 차단합니다. Claude Code는 차단된 모델을 `/model` 선택기에서 숨기며, `availableModels`이 적용되는 곳 어디서나 모델을 선택할 수 없습니다. Default 옵션의 세션은 [특정 모델 또는 버전 차단](/docs/ko/model-config#block-specific-models-or-versions)에서 설명하는 대로 차단된 모델도 실행하지 않습니다. Claude Code v2.1.283 이상이 필요합니다.935[`availableModels`](#availablemodels) 허용 목록의 유무와 관계없이, 그리고 해당 목록이 허용하더라도 특정 모델을 차단합니다. Claude Code는 차단된 모델을 `/model` 선택기에서 숨기며, `availableModels`가 적용되는 어디에서도 해당 모델을 선택할 수 없습니다. [특정 모델 또는 버전 차단](/docs/ko/model-config#block-specific-models-or-versions)에서 설명하듯이 Default 옵션을 사용하는 세션도 차단된 모델을 실행하지 않습니다. Claude Code v2.1.283 이상이 필요합니다.

936 936 

937* **범위**: [`Managed`](#scopes). Claude Code는 사용자, 프로젝트, 로컬 설정 및 `--settings`에서 이 키를 무시하고 경고를 표시합니다.937* **범위**: [`Managed`](#scopes). Claude Code는 사용자, 프로젝트, 로컬 설정과 `--settings`에 있는 이 키를 경고와 함께 무시합니다

938* **유형**: 모델 별칭 또는 ID의 배열938* **유형**: 모델 별칭 또는 ID의 배열

939 * `"opus"`와 같은 제품군 별칭은 해당 제품군의 모든 모델을 차단합니다.939 * `"opus"`와 같은 계열 별칭은 해당 계열의 모든 모델을 차단합니다

940 * `"claude-opus-5-5"`와 같은 모델 ID는 날짜 및 공급자별 ID를 포함한 모든 철자로 해당 버전을 차단합니다.940 * `"claude-opus-5-5"`와 같은 모델 ID는 날짜가 포함된 ID와 공급자별 ID를 포함하여 모든 표기의 해당 버전을 차단합니다

941 * `"claude-opus-5"`와 같이 부 버전이 없는 모델 ID는 Opus 5.5와 같은 이후 부 버전도 차단합니다. Opus 5만 차단하려면 `"claude-opus-5-0"`을 작성합니다.941 * `"claude-opus-5"`처럼 마이너 버전이 없는 모델 ID는 Opus 5.5와 같은 이후 마이너 버전도 차단합니다. Opus 5만 차단하려면 `"claude-opus-5-0"`을 작성합니다

942 * `best`, `opusplan`, `default` 항목은 무시됩니다.942 * `best`, `opusplan`, `default` 항목은 무시됩니다

943* **기본값**: 설정 해제되어 모델이 차단되지 않음943* **기본값**: 설정되지 않음. 따라서 차단되는 모델이 없습니다

944 944 

945이 예제는 Opus 및 Sonnet 모델을 허용하고 Opus 5.5를 차단합니다:945이 예시는 Opus 및 Sonnet 모델을 허용하고 Opus 5.5를 차단합니다:

946 946 

947```json managed-settings.json theme={null}947```json managed-settings.json theme={null}

948{948{


951}951}

952```952```

953 953 

954[특정 모델 또는 버전 차단](/docs/ko/model-config#block-specific-models-or-versions)을 참조하십시오.954[특정 모델 또는 버전 차단](/docs/ko/model-config#block-specific-models-or-versions)을 참조하세요.

955 955 

956<h3 id="effortlevel">956<h3 id="effortlevel">

957 `effortLevel`957 `effortLevel`

958</h3>958</h3>

959 959 

960저장하지 않은 모델에 대한 기본 [노력 수준](/docs/ko/model-config#adjust-effort-level)을 설정합니다. 낮은 수준은 간단한 작업에서 더 빠르고 저렴하며, 높은 수준은 복잡한 문제에서 더 깊이 있게 추론합니다.960수준을 저장하지 않은 모델에 대한 기본 [effort 수준](/docs/ko/model-config#adjust-effort-level)을 설정합니다. 낮은 수준은 간단한 작업에서 더 빠르고 저렴하며, 높은 수준은 복잡한 문제에서 더 깊이 추론합니다.

961 961 

962머신의 대화형 세션에서 `/effort low`, `medium`, `high`, 또는 `xhigh`를 실행하면 Claude Code는 이 키를 작성하는 대신 [`modelSettings`](#modelsettings) 아래의 활성 모델에 대한 수준을 저장합니다. v2.1.251 이전에는 `/effort`가 이 키를 작성했습니다.962로컬 머신의 대화형 세션에서 `/effort low`, `medium`, `high`, `xhigh`를 실행하면 Claude Code는 이 키에 쓰는 대신 활성 모델에 대한 수준을 [`modelSettings`](#modelsettings) 아래에 저장합니다. v2.1.251 이전에는 `/effort`가 이 키에 썼습니다.

963 963 

964동일한 설정 파일 내에서 Claude Code는 이 키보다 모델의 저장된 수준을 사용합니다. [`modelSettings`](#modelsettings)는 파일 간 우선순위를 나타냅니다.964같은 설정 파일 내에서 Claude Code는 이 키보다 모델의 저장된 수준을 사용합니다. 파일 간 우선순위는 [`modelSettings`](#modelsettings)에 설명되어 있습니다.

965 965 

966원격 워커에 연결된 세션, `-p` 실행, Agent SDK에서 `/effort`는 해당 세션에만 적용됩니다. [노력 수준 조정](/docs/ko/model-config#adjust-effort-level)은 해당 세션에만 적용되는 대화형 선택을 나열합니다. `/effort`가 인쇄하는 메시지는 어느 것이 발생했는지 나타냅니다.966원격 워커에 연결된 세션, `-p` 실행, Agent SDK에서는 `/effort`가 해당 세션에만 적용됩니다. 해당 세션에만 적용되는 대화형 선택 항목은 [effort 수준 조정](/docs/ko/model-config#adjust-effort-level)에 나열되어 있습니다. `/effort`가 출력하는 메시지에서 어떤 방식으로 적용되었는지 알려 줍니다.

967 967 

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

969* **유형**: 문자열, 다음 중 하나:969* **유형**: 문자열. 다음 중 하나:

970 * `"low"`: 최소 추론, 짧고 범위가 지정되며 지연 시간에 민감하지만 지능에 민감하지 않은 작업용970 * `"low"`: 가장 적은 추론. 지능에 민감하지 않은 짧고 범위가 정해진 지연 시간 민감 작업용

971 * `"medium"`: 일부 지능을 거래할 수 있는 비용에 민감한 작업에 대한 토큰 사용 감소971 * `"medium"`: 어느 정도의 지능을 절충할 수 있는 비용 민감 작업에서 토큰 사용량을 줄입니다

972 * `"high"`: 토큰 사용과 지능의 균형972 * `"high"`: 토큰 사용량과 지능의 균형을 맞춥니다

973 * `"xhigh"`: 더 높은 토큰 지출로 더 깊은 추론973 * `"xhigh"`: 더 많은 토큰을 사용하여 더 깊이 추론합니다

974* **기본값**: 설정 해제됨974* **기본값**: 설정되지 않음

975* **세션별 재정의**: `--effort`는 한 세션에 대해 이 키보다 우선하며, [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/ko/env-vars)은 둘 다보다 우선합니다.975* **세션별 재정의**: 한 세션에 대해서는 `--effort`가 이 키보다 우선하며, [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/ko/env-vars)은 둘 다보다 우선합니다

976 976 

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

978{978{


980}980}

981```981```

982 982 

983사용자 설정 파일 `~/.claude/settings.json`에서 이 키는 `/effort`가 모델별로 수준을 저장하기 전에 작성한 이전 형식이며, Opus 5, Fable 5.1, 이전 모델에서 이전에 적용된 곳에 계속 적용됩니다. Opus 5.5 및 이후에 릴리스된 모델은 이를 무시하고 [`modelSettings`](#modelsettings) 아래에서 수준을 저장할 때까지 자신의 기본값으로 시작합니다. 프로젝트, 로컬, 관리되는 설정 및 `--settings`에서 이 키는 모든 모델에 적용됩니다.983사용자 설정 파일 `~/.claude/settings.json`에서 이 키는 `/effort`가 모델별로 수준을 저장하기 전에 쓰던 이전 형식이며, Opus 5, Fable 5.1 및 이전 모델처럼 이전에 적용되던 곳에 계속 적용됩니다. Opus 5.5 및 그 이후에 출시된 모델은 이 키를 무시하고 수준을 저장하기 전까지 자체 기본값으로 시작하며, `/effort`는 해당 수준을 [`modelSettings`](#modelsettings) 아래에 씁니다. 프로젝트, 로컬, 관리형 설정과 `--settings`에서는 이 키가 모든 모델에 적용됩니다.

984 984 

985<h3 id="enforceavailablemodels">985<h3 id="enforceavailablemodels">

986 `enforceAvailableModels`986 `enforceAvailableModels`

987</h3>987</h3>

988 988 

989\[`/model` 선택기는 **Default** 옵션을 가지며, [`default` 모델 설정](/docs/ko/model-config#default-model-setting)은 이것이 확인되는 모델을 설명합니다. [`availableModels`](#availablemodels) 허용 목록은 이름을 지정할 수 있는 모델을 제한하지만, 기본 [접두사 일치](#availablemodelsmatch)를 사용하면 계정 유형의 기본값을 다시 매핑하지 않으므로 **Default**는 여전히 목록 외의 모델로 확인될 수 있습니다. 이 키는 그 간격을 닫습니다. Claude Code v2.1.175 이상이 필요합니다.989`/model` 선택기에는 **Default** 옵션이 있으며, 이 옵션이 어떤 모델로 해석되는지는 [`default` 모델 설정](/docs/ko/model-config#default-model-setting)에 설명되어 있습니다. [`availableModels`](#availablemodels) 허용 목록은 지정할 수 있는 모델을 제한하지만, 기본 [접두사 매칭](#availablemodelsmatch)에서는 계정 유형의 기본값을 다시 매핑하지 않으므로 **Default**가 여전히 목록 밖의 모델로 해석될 수 있습니다. 이 키는 그 공백을 메웁니다. Claude Code v2.1.175 이상이 필요합니다.

990 990 

991조직이 관리되는 설정을 배포할 때 Claude Code는 관리되는 소스에서만 이 키를 읽고 다른 파일에서는 무시합니다.991조직에서 관리형 설정을 배포하는 경우 Claude Code는 관리형 소스에서만 이 키를 읽고 다른 파일의 이 키는 무시합니다.

992 992 

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

994* **유형**: 부울994* **유형**: Boolean

995 * `true`: **Default**가 `availableModels` 외의 모델로 확인될 때 Claude Code는 이를 목록의 첫 번째 사용 가능한 모델로 확인합니다.995 * `true`: **Default**가 `availableModels` 밖의 모델로 해석될 경우 Claude Code는 목록에서 처음으로 사용 가능한 모델로 해석합니다

996 * `false`: 이 키는 **Default**가 확인되는 방식을 변경하지 않습니다.996 * `false`: 이 키는 **Default**가 해석되는 방식을 바꾸지 않습니다

997* **기본값**: `false`997* **기본값**: `false`

998 998 

999이 예제는 명명된 선택을 Sonnet 및 Haiku 모델로 제한하고 **Default**를 사용 가능한 첫 번째로 확인합니다:999이 예시는 지정 선택을 Sonnet 및 Haiku 모델로 제한하고 **Default**가 그중 처음으로 사용 가능한 모델로 해석되도록 합니다:

1000 1000 

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

1002{1002{


1005}1005}

1006```1006```

1007 1007 

1008`availableModels`이 설정 해제되거나 비어 있을 때 이 키는 영향을 주지 않습니다. [Default 모델에 대한 허용 목록 적용](/docs/ko/model-config#enforce-the-allowlist-for-the-default-model)을 참조하십시오. Claude Code v2.1.175 이상이 필요합니다.1008`availableModels`가 설정되지 않았거나 비어 있으면 이 키는 효과가 없습니다. [Default 모델에 허용 목록 적용](/docs/ko/model-config#enforce-the-allowlist-for-the-default-model)을 참조하세요. Claude Code v2.1.175 이상이 필요합니다.

1009 1009 

1010<h3 id="fallbackmodel">1010<h3 id="fallbackmodel">

1011 `fallbackModel`1011 `fallbackModel`

1012</h3>1012</h3>

1013 1013 

1014주 모델이 과부하되거나 사용 불가능할 때 Claude Code가 순서대로 시도할 백업 모델을 이름 지정합니다. Claude Code는 턴의 나머지 부분에 대해 체인의 다음 사용 가능한 모델로 전환하고 알림을 표시합니다. 체인이 없으면 Claude Code는 동일한 모델을 재시도한 다음 서버의 오류를 표시하며, 사용자가 재시도하거나 모델을 전환합니다.1014기본 모델이 과부하 상태이거나 사용할 수 없을 때 Claude Code가 순서대로 시도할 백업 모델을 지정합니다. Claude Code는 턴의 나머지 부분 동안 체인에서 다음으로 사용 가능한 모델로 전환하고 알림을 표시합니다. 체인이 없으면 Claude Code는 같은 모델을 재시도한 뒤 서버의 오류를 표시하며, 사용자가 직접 재시도하거나 모델을 전환해야 합니다.

1015 1015 

1016전환은 폴백 모델에서 하나의 턴으로 콜드 [프롬프트 캐시](/docs/ko/prompt-caching#switching-models)를 의미합니다. 다음 메시지는 주 모델을 먼저 다시 시도합니다.1016전환하면 폴백 모델에서 [프롬프트 캐시](/docs/ko/prompt-caching#switching-models)가 비어 있는 상태로 한 턴이 진행됩니다. 다음 메시지에서는 다시 기본 모델을 먼저 시도합니다.

1017 1017 

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

1019* **유형**: 모델 별칭 또는 ID의 배열; `"default"`는 기본 모델로 확장됩니다.1019* **유형**: 모델 별칭 또는 ID의 배열. `"default"`는 기본 모델로 확장됩니다

1020* **기본값**: 설정 해제되어 실패한 요청이 다른 모델에서 재시도되지 않음1020* **기본값**: 설정되지 않음. 따라서 실패한 요청을 다른 모델로 재시도하지 않습니다

1021* **세션별 재정의**: `--fallback-model`은 한 세션에 대해 이 키보다 우선합니다.1021* **세션별 재정의**: 한 세션에 대해서는 `--fallback-model`이 이 키보다 우선합니다

1022 1022 

1023이 예제는 주 모델이 실패할 때 먼저 Sonnet 5를 시도한 다음 Haiku 4.5를 시도합니다:1023이 예시는 기본 모델이 실패하면 Sonnet 5를 먼저 시도한 다음 Haiku 4.5를 시도합니다:

1024 1024 

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

1026{1026{


1028}1028}

1029```1029```

1030 1030 

1031대부분의 배열 설정과 달리 이 키는 설정 파일 간에 병합되지 않습니다: 가장 높은 우선순위 파일이 정의하는 것이 전체 체인을 제공합니다. 프로젝트 파일이 `["claude-sonnet-5"]`를 설정하고 사용자 파일이 `["claude-haiku-4-5"]`를 설정하면 체인은 `["claude-sonnet-5"]`만입니다. Claude Code는 목록에서 최대 3개의 서로 다른 허용 모델을 유지하고 나머지는 무시합니다. [폴백 모델 체인](/docs/ko/model-config#fallback-model-chains)을 참조하십시오.1031대부분의 배열 설정과 달리 이 키는 설정 파일 간에 병합되지 않습니다. 이 키를 정의한 우선순위가 가장 높은 파일이 체인 전체를 제공합니다. 프로젝트 파일에서 `["claude-sonnet-5"]`를 설정하고 사용자 파일에서 `["claude-haiku-4-5"]`를 설정하면 체인은 `["claude-sonnet-5"]`뿐입니다. Claude Code는 목록에서 서로 다른 허용 모델을 최대 세 개까지 유지하고 나머지는 무시합니다. [폴백 모델 체인](/docs/ko/model-config#fallback-model-chains)을 참조하세요.

1032 1032 

1033<h3 id="fastmode">1033<h3 id="fastmode">

1034 `fastMode`1034 `fastMode`

1035</h3>1035</h3>

1036 1036 

1037사용 가능한 세션에 대해 [빠른 모드](/docs/ko/fast-mode)를 켜서 빠른 반복 또는 라이브 디버깅과 같은 대화형 작업을 위해 토큰당 더 높은 비용으로 속도를 원합니다. 일반적으로 이 키를 직접 편집하지 않습니다: `/fast`를 실행하면 `fastMode: true`를 `~/.claude/settings.json`에 작성하고, 다시 실행하면 빠른 모드를 끕니다. 빠른 모드는 Opus 5.5, Opus 5, Opus 4.8에서만 실행됩니다: 다른 모델에서 켜면 Opus로 전환되고, 지원되지 않는 모델로 전환하면 꺼집니다. [빠른 모드가 켜져 있는 동안 모델 전환](/docs/ko/fast-mode#switch-models-while-fast-mode-is-on)을 참조하십시오.1037사용 가능한 세션에서 [빠른 모드](/docs/ko/fast-mode)를 켭니다. 토큰당 비용이 더 높더라도 속도가 필요한 빠른 반복이나 실시간 디버깅 같은 대화형 작업에 적합합니다. 일반적으로 이 키를 직접 편집하지 않습니다. `/fast`를 실행하면 `~/.claude/settings.json`에 `fastMode: true`가 기록되고, 다시 실행하여 빠른 모드를 끄면 키가 제거됩니다. 빠른 모드는 Opus 5.5, Opus 5, Opus 4.8에서만 실행됩니다. 다른 모델에서 켜면 Opus로 전환되며, 지원되지 않는 모델로 전환하면 꺼집니다. [빠른 모드가 켜진 상태에서 모델 전환](/docs/ko/fast-mode#switch-models-while-fast-mode-is-on)을 참조하세요.

1038 1038 

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

1040* **유형**: 부울1040* **유형**: Boolean

1041 * `true`: Claude Code는 사용 가능한 세션에 대해 빠른 모드를 켭니다.1041 * `true`: Claude Code가 사용 가능한 세션에서 빠른 모드를 켭니다

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

1043* **기본값**: 설정 해제되어 빠른 모드는 꺼짐1043* **기본값**: 설정되지 않음. 따라서 빠른 모드가 꺼져 있습니다

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

1045 1045 

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

1047{1047{


1053 `fastModePerSessionOptIn`1053 `fastModePerSessionOptIn`

1054</h3>1054</h3>

1055 1055 

1056일반적으로 `/fast`를 실행하면 [`fastMode`](#fastmode)를 사용자 설정에 저장하므로 빠른 모드는 이후의 모든 세션 시작 시 켜집니다. 이를 중지하려면 이 키를 `true`로 설정합니다: 저장된 `fastMode: true`는 더 이상 세션 시작 시 빠른 모드를 켜지 않으며, 각 사용자는 빠른 모드를 원하는 각 세션에서 `/fast`를 실행해야 합니다. Claude Code는 파일에 `fastMode` 키를 남겨두므로 이 키를 끄면 이전 동작이 복원됩니다.1056일반적으로 `/fast`를 실행하면 [`fastMode`](#fastmode)가 사용자 설정에 저장되므로 이후 모든 세션이 시작될 때 빠른 모드가 켜집니다. 이를 막으려면 이 키를 `true`로 설정합니다. 그러면 저장된 `fastMode: true`가 더 이상 세션 시작 시 빠른 모드를 켜지 않으며, 각 사용자는 빠른 모드를 원하는 세션마다 `/fast`를 실행해야 합니다. Claude Code는 파일의 `fastMode` 키를 그대로 두므로 이 키를 끄면 이전 동작이 복원됩니다.

1057 1057 

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

1059 1059 

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

1061* **유형**: 부울1061* **유형**: Boolean

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

1063 * `false`: 저장된 `fastMode: true`는 이후의 모든 세션 시작 시 빠른 모드를 켭니다.1063 * `false`: 저장된 `fastMode: true`가 이후 모든 세션이 시작될 때 빠른 모드를 켭니다

1064* **기본값**: `false`1064* **기본값**: `false`

1065 1065 

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


1069}1069}

1070```1070```

1071 1071 

1072[세션별 옵트인 필요](/docs/ko/fast-mode#require-per-session-opt-in)를 참조하십시오.1072[세션별 옵트인 요구](/docs/ko/fast-mode#require-per-session-opt-in)를 참조하세요.

1073 1073 

1074<h3 id="language">1074<h3 id="language">

1075 `language`1075 `language`

1076</h3>1076</h3>

1077 1077 

1078Claude가 기본적으로 영어 이외의 언어로 응답하도록 합니다. 응답에 대한 고정 목록이 없습니다: Claude Code는 값을 Claude에 항상 해당 언어로 응답하도록 지시하는 것으로 그대로 전달하므로 Claude가 읽을 수 있는 모든 언어 이름이 작동합니다. Claude Code는 값을 확인하지 않으므로 잘못된 이름은 오류를 생성하는 대신 작성된 대로 Claude에 도달합니다. 동일한 값은 [음성 받아쓰기](/docs/ko/voice-dictation#change-the-dictation-language)의 언어를 설정하며, 이는 [지원되는 받아쓰기 언어](/docs/ko/voice-dictation#change-the-dictation-language)의 고정 목록을 가지며, 자동 생성된 세션 제목도 설정합니다.1078Claude가 기본적으로 영어가 아닌 언어로 응답하도록 합니다. 응답에 대한 고정된 목록은 없습니다. Claude Code는 이 값을 해당 언어로 항상 응답하라는 지시로 Claude에 그대로 전달하므로 Claude가 읽을 수 있는 모든 언어 이름이 작동합니다. Claude Code는 값을 확인하지 않으므로 철자가 틀린 이름은 오류를 발생시키지 않고 작성된 그대로 Claude에 전달됩니다. 같은 값이 [음성 받아쓰기](/docs/ko/voice-dictation#change-the-dictation-language)의 언어와 자동 생성되는 세션 제목의 언어도 설정하며, 음성 받아쓰기에는 [지원되는 받아쓰기 언어](/docs/ko/voice-dictation#change-the-dictation-language)의 고정 목록이 있습니다.

1079 1079 

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

1081* **유형**: 문자열, `"japanese"`, `"spanish"`, `"french"`와 같은 모든 언어 이름; Claude Code는 이를 검증하지 않습니다.1081* **유형**: 문자열. `"japanese"`, `"spanish"`, `"french"`와 같은 모든 언어 이름. Claude Code는 검증하지 않습니다

1082* **기본값**: 설정 해제됨; 세션 제목은 대화의 언어와 일치합니다.1082* **기본값**: 설정되지 않음. 이 경우 세션 제목은 대화 언어를 따릅니다

1083 1083 

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

1085{1085{


1091 `maxEffortLevel`1091 `maxEffortLevel`

1092</h3>1092</h3>

1093 1093 

1094세션이 사용할 수 있는 [노력 수준](/docs/ko/model-config#adjust-effort-level)을 제한하고 낮은 수준을 사용 가능하게 둡니다. 더 높은 수준은 모두 제한으로 실행되며, `/effort`, `/model` 선택기, `--effort`, [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/ko/env-vars), 스킬 또는 subagent의 `effort` frontmatter, 또는 모델의 자체 기본값을 포함합니다. Claude Code는 각 요청 전에 제한을 자체 적용하므로 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry를 포함한 모든 공급자에서 유지됩니다. Claude Code v2.1.267 이상이 필요합니다.1094세션이 사용할 수 있는 [effort 수준](/docs/ko/model-config#adjust-effort-level)의 상한을 정하고, 그보다 낮은 수준은 계속 사용할 수 있도록 합니다. 더 높은 수준은 상한에서 대신 실행되며, 여기에는 `/effort`, `/model` 선택기, `--effort`, [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/ko/env-vars), 스킬이나 서브에이전트의 `effort` frontmatter, 모델 자체 기본값에서 온 수준이 포함됩니다. Claude Code가 각 요청 전에 직접 상한을 적용하므로 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry를 포함한 모든 공급자에서 유지됩니다. Claude Code v2.1.267 이상이 필요합니다.

1095 1095 

1096* **범위**: [`Any file`](#scopes). 조직에 대해 이를 적용하려면 관리되는 설정에 배포합니다. 여러 범위가 제한을 설정할 때 가장 낮은 것이 적용되므로 한 범위에서 설정된 제한은 다른 범위에서 올릴 수 없습니다.1096* **범위**: [`Any file`](#scopes). 조직 전체에 적용하려면 관리형 설정에 배포합니다. 여러 범위에서 상한을 설정하면 가장 낮은 값이 적용되므로, 한 범위에서 설정한 상한을 다른 범위에서 올릴 수 없습니다

1097* **유형**: 문자열, `"low"`, `"medium"`, `"high"`, `"xhigh"`, 또는 `"max"` 중 하나. `"max"` 값은 제한을 설정하지 않습니다.1097* **유형**: 문자열. `"low"`, `"medium"`, `"high"`, `"xhigh"`, `"max"` 중 하나. `"max"` 값은 상한을 설정하지 않습니다

1098* **기본값**: 설정 해제되어 제한이 적용되지 않음1098* **기본값**: 설정되지 않음. 따라서 상한이 적용되지 않습니다

1099* **세션별 재정의**: 모델의 [`modelSettings`](#modelsettings) 항목에 `maxEffortLevel`을 추가합니다. 해당 항목은 사용자 설정 또는 [관리되는 소스](/docs/ko/managed-settings#how-claude-code-combines-managed-sources) 중 하나와 같이 둘 다 설정하는 설정 소스 내에서 모델에 대해서만 이 키를 대체합니다. 해당 소스의 제한에서 모델을 제외하려면 거기에 `"max"`를 설정합니다. Claude Code는 여전히 다른 소스의 제한을 적용합니다.1099* **모델별 상한**: 모델의 [`modelSettings`](#modelsettings) 항목에 `maxEffortLevel`을 추가합니다. 해당 항목은 사용자 설정이나 하나의 [관리형 소스](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)처럼 둘 다 설정한 설정 소스 내에서만 그 모델에 대해 이 키를 대체합니다. 해당 소스의 상한에서 모델을 제외하려면 그곳에 `"max"`를 설정합니다. Claude Code는 다른 소스의 상한은 여전히 적용합니다

1100 1100 

1101이 예제는 모든 모델을 `medium`으로 제한하고 Sonnet 4.6을 제외합니다:1101이 예시는 모든 모델의 상한을 `medium`으로 정하고 Sonnet 4.6은 제외합니다:

1102 1102 

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

1104{1104{


1111}1111}

1112```1112```

1113 1113 

1114조직이 모델에 대해 [노력 제한](/docs/ko/model-config#organization-effort-limits)을 설정할 때 두 제한 중 낮은 것이 적용됩니다.1114조직에서 모델에 대한 [effort 제한](/docs/ko/model-config#organization-effort-limits)도 설정한 경우 두 상한 중 낮은 값이 적용됩니다.

1115 1115 

1116<h3 id="model">1116<h3 id="model">

1117 `model`1117 `model`

1118</h3>1118</h3>

1119 1119 

1120모든 새 세션이 사용할 모델을 설정하므로 매번 `/model`로 선택할 필요가 없습니다. 여기에 설정해도 세션 중에 전환하는 것을 중지하지 않습니다. 관리자가 사용자 선택을 재정의하도록 [조직 기본 모델](/docs/ko/model-config#organization-default-model)을 설정한 경우 사용자, 프로젝트, 로컬 설정에서 이 키를 설정해도 해당 모델을 얻습니다.1120모든 새 세션이 사용할 모델을 설정하여 매번 `/model`로 모델을 선택하지 않아도 되도록 합니다. 여기에서 설정해도 세션 중간에 전환하는 것은 막지 않습니다. 관리자가 사용자 선택을 재정의하도록 [조직 기본 모델](/docs/ko/model-config#organization-default-model)을 설정한 경우, 사용자, 프로젝트, 로컬 설정에서 이 키를 설정하더라도 해당 모델이 사용됩니다.

1121 1121 

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

1123* **유형**: 문자열, 모델 별칭 또는 전체 모델 ID1123* **유형**: 문자열. 모델 별칭 또는 전체 모델 ID

1124* **기본값**: 설정 해제되어 Claude Code는 계정의 기본 모델을 사용합니다.1124* **기본값**: 설정되지 않음. 따라서 Claude Code는 계정의 기본 모델을 사용합니다

1125* **세션별 재정의**: `--model`은 [`ANTHROPIC_MODEL`](/docs/ko/env-vars)보다 우선하며, 둘 다 한 세션에 대해 이 키보다 우선하며, 관리되는 `model`보다도 우선합니다. [`availableModels`](#availablemodels) 목록은 여전히 선택에 적용됩니다.1125* **세션별 재정의**: `--model`은 [`ANTHROPIC_MODEL`](/docs/ko/env-vars)보다 우선하며, 둘 다 한 세션에 대해서는 관리형 `model`을 포함하여 이 키보다 우선합니다. [`availableModels`](#availablemodels) 목록은 여전히 선택에 적용됩니다

1126 1126 

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

1128{1128{


1130}1130}

1131```1131```

1132 1132 

1133여기의 값은 [`ANTHROPIC_DEFAULT_MODEL`](/docs/ko/model-config#set-a-default-model-for-new-sessions)을 능가하며, Claude Code는 다른 것이 모델을 선택하지 않을 때만 사용합니다.1133여기의 값은 [`ANTHROPIC_DEFAULT_MODEL`](/docs/ko/model-config#set-a-default-model-for-new-sessions)보다 우선하며, Claude Code는 다른 어떤 것도 모델을 선택하지 않을 때만 `ANTHROPIC_DEFAULT_MODEL`을 사용합니다.

1134 1134 

1135<h3 id="modeloverrides">1135<h3 id="modeloverrides">

1136 `modelOverrides`1136 `modelOverrides`

1137</h3>1137</h3>

1138 1138 

1139Anthropic 모델 ID를 Amazon Bedrock 추론 프로필 ARN과 같은 공급자별 모델 ID로 매핑합니다. 각 모델 선택기 항목은 공급자 API를 호출할 때 매핑된 값을 사용합니다. 관리자는 [Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry](/docs/ko/model-config#override-model-ids-per-version)에서 이를 사용하여 각 모델 버전을 특정 추론 프로필, 버전 이름, 배포로 라우팅하여 거버넌스, 비용 할당, 지역 라우팅을 수행합니다.1139Anthropic 모델 ID를 Amazon Bedrock 추론 프로필 ARN과 같은 공급자별 모델 ID에 매핑합니다. 그러면 각 모델 선택기 항목은 공급자 API를 호출할 때 매핑된 값을 사용합니다. 관리자는 [Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry](/docs/ko/model-config#override-model-ids-per-version)에서 거버넌스, 비용 할당 또는 지역 라우팅을 위해 각 모델 버전을 특정 추론 프로필, 버전 이름 또는 배포로 라우팅하는 데 이를 사용합니다.

1140 1140 

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

1142* **유형**: 모델 ID를 공급자 모델 ID로 매핑하는 객체1142* **유형**: 모델 ID를 공급자 모델 ID에 매핑하는 객체

1143* **기본값**: 설정 해제됨1143* **기본값**: 설정되지 않음

1144 1144 

1145이 예제는 Opus 4.6에 대한 모든 호출을 명명된 Bedrock 추론 프로필로 라우팅합니다:1145이 예시는 Opus 4.6에 대한 모든 호출을 지정된 Bedrock 추론 프로필로 라우팅합니다:

1146 1146 

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

1148{1148{


1152}1152}

1153```1153```

1154 1154 

1155[버전별 모델 ID 재정의](/docs/ko/model-config#override-model-ids-per-version)를 참조하십시오.1155[버전별 모델 ID 재정의](/docs/ko/model-config#override-model-ids-per-version)를 참조하세요.

1156 1156 

1157<h3 id="modelpicker">1157<h3 id="modelpicker">

1158 `modelPicker`1158 `modelPicker`

1159</h3>1159</h3>

1160 1160 

1161\[`/model` 선택기가 제공하는 모델을 작성한 순서대로 선택한 레이블 아래에 나열하므로 선택기는 조직이 실행하는 모델을 나열하며, 기본 제공 라인업 후 또는 대신합니다. 각 행의 `model`은 그대로 사용되므로 `--model`이 허용하는 모든 것을 허용합니다: `opus`와 같은 별칭, Anthropic 모델 ID, 또는 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, LLM 게이트웨이의 공급자 형식 ID. Claude Code v2.1.242 이상이 필요합니다.1161`/model` 선택기가 제공하는 모델을 작성한 순서대로 원하는 레이블로 나열하여, 선택기가 기본 제공 라인업 뒤에 또는 그 대신 조직에서 실행하는 모델을 나열하도록 합니다. 각 행의 `model`은 그대로 사용되므로 `--model`이 허용하는 모든 것을 허용합니다. 즉 `opus`와 같은 별칭, Anthropic 모델 ID, 또는 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, LLM 게이트웨이용 공급자 형식 ID를 사용할 수 있습니다. Claude Code v2.1.242 이상이 필요합니다.

1162 1162 

1163* **범위**: [`User or managed`](#scopes). Claude Code는 관리되는 설정, `--settings`, 사용자 설정에서 키를 읽고 프로젝트 및 로컬 설정에서는 무시하므로 복제한 저장소가 선택기를 다시 레이블할 수 없습니다. 이 세 가지 중 가장 높은 것이 키를 설정하면 전체 라인업을 제공하며, Claude Code는 두 소스의 라인업을 결코 결합하지 않습니다.1163* **범위**: [`User or managed`](#scopes). Claude Code는 관리형 설정, `--settings`, 사용자 설정에서 이 키를 읽고, 복제한 저장소가 선택기의 레이블을 바꿀 수 없도록 프로젝트 및 로컬 설정에서는 무시합니다. 이 세 가지 중 키를 설정한 가장 높은 소스가 라인업 전체를 제공하며, Claude Code는 두 소스의 라인업을 결합하지 않습니다.

1164* **유형**: `options` 배열과 선택적 `replaceBuiltInOptions` 부울을 가진 객체1164* **유형**: 행의 `options` 배열과 선택적 `replaceBuiltInOptions` Boolean을 가진 객체

1165* **기본값**: 설정 해제되어 선택기는 기본 제공 라인업을 표시합니다.1165* **기본값**: 설정되지 않음. 따라서 선택기는 기본 제공 라인업을 표시합니다

1166 1166 

1167이 예제는 두 개의 Bedrock 배포를 기본 제공 라인업 후에 추가하며, 팀이 인식하는 이름 아래에 있습니다:1167이 예시는 기본 제공 라인업 뒤에 팀이 알아볼 수 있는 이름으로 두 개의 Bedrock 배포를 추가합니다:

1168 1168 

1169```json managed-settings.json theme={null}1169```json managed-settings.json theme={null}

1170{1170{


1189 `modelPicker`의 필드1189 `modelPicker`의 필드

1190</h4>1190</h4>

1191 1191 

1192키는 행 자체에 대한 하나와 기본 제공 라인업을 대체하거나 추가하는지에 대한 하나의 두 필드를 사용합니다.1192이 키는 두 개의 필드를 받습니다. 하나는 행 자체에 대한 것이고, 다른 하나는 행이 기본 제공 라인업을 대체할지 또는 추가될지에 대한 것입니다.

1193 1193 

1194| 필드 | 유형 | 수행 작업 |1194| 필드 | 유형 | 동작 |

1195| :- | :- | :- |1195| :- | :- | :- |

1196| `options` | 필수 `model` 및 선택적 `label`, `description`, `behavesAs`를 가진 행의 배열 | 선택기가 표시하는 행(이 순서로), 회색으로 표시된 행은 아래로 이동합니다. `label` 없이 Claude Code는 알려진 모델에 대해 기본 제공 이름으로 행을 제목으로 지정하거나 모델 ID로 지정하며, `description` 없이 일반 두 번째 줄을 작성합니다. |1196| `options` | 행의 배열. 각 행에는 필수 `model`과 선택적 `label`, `description`, `behavesAs`가 있습니다 | 선택기가 이 순서대로 표시하는 행입니다. 단, 회색으로 표시된 행은 맨 아래로 이동합니다. `label`이 없으면 Claude Code는 알고 있는 모델이면 기본 제공 이름으로, 그렇지 않으면 모델 ID로 행 제목을 붙이며, `description`이 없으면 일반적인 두 번째 줄을 작성합니다 |

1197| `replaceBuiltInOptions` | 부울, 기본값 `false` | 이들 행만, **Default**, 세션이 이미 사용 중인 모델의 행을 표시하려면 `true`로 설정합니다. 기본 제공 라인업 후에 이들 행을 추가하려면 설정 해제합니다. |1197| `replaceBuiltInOptions` | Boolean, 기본값 `false` | `true`로 설정하면 이 행들, **Default**, 세션이 이미 사용 중인 모델의 행만 표시합니다. 설정하지 않으면 이 행들이 기본 제공 라인업 뒤에 추가됩니다 |

1198 1198 

1199\[`options`의 항목은 또한 `model` 옆에 선택적 `behavesAs` 문자열을 전달할 수 있으며, v2.1.257 이상이 필요합니다. 이를 Claude Code 버전이 이미 알고 있는 모델의 ID(예: `claude-opus-4-8`)로 설정하며, `model`이 버전보다 최신인 항목에서 설정합니다. Claude Code는 알려진 모델의 기능 및 노력 기본값을 항목에 적용하는 대신 모델을 알 수 없는 것으로 취급합니다. 항목의 레이블과 Claude Code가 요청에서 보내는 모델 ID는 변경되지 않습니다.1199`options`의 항목은 `model` 옆에 선택적 `behavesAs` 문자열도 가질 수 있으며, 이를 위해서는 v2.1.257 이상이 필요합니다. `model`이 현재 버전보다 새로운 항목에 `claude-opus-4-8`처럼 현재 Claude Code 버전이 이미 알고 있는 모델의 ID로 설정합니다. 그러면 Claude Code는 해당 모델을 알 수 없는 모델로 취급하는 대신 알려진 모델의 기능과 effort 기본값을 항목에 적용합니다. 항목의 레이블과 Claude Code가 요청에서 보내는 모델 ID는 변경되지 않습니다.

1200 1200 

1201`replaceBuiltInOptions`가 켜져 있으면 Claude Code는 모든 다른 행을 숨깁니다: 기본 제공 라인업, [`availableModels`](#availablemodels) 항목에 대해 추가하는 행, [게이트웨이 검색](/docs/ko/llm-gateway-protocol#model-discovery)이 찾은 모델, [`ANTHROPIC_CUSTOM_MODEL_OPTION`](/docs/ko/model-config#add-a-custom-model-option). 꺼져 있으면 Claude Code는 기본 제공 라인업이 이미 포함하는 나열된 모델을 건너뜁니다. 레이블은 선택기가 표시하는 것을 변경하며, Claude Code가 실행하는 모델은 변경하지 않습니다.1201`replaceBuiltInOptions`를 켜면 Claude Code는 다른 모든 행을 숨깁니다. 여기에는 기본 제공 라인업, [`availableModels`](#availablemodels) 항목에 대해 추가하는 행, [게이트웨이 검색](/docs/ko/llm-gateway-protocol#model-discovery)이 찾은 모델, [`ANTHROPIC_CUSTOM_MODEL_OPTION`](/docs/ko/model-config#add-a-custom-model-option)이 포함됩니다. 끄면 Claude Code는 기본 제공 라인업이 이미 포함하는 나열된 모델을 건너뜁니다. 레이블은 선택기에 표시되는 내용만 바꾸며 Claude Code가 실행하는 모델은 바꾸지 않습니다.

1202 1202 

1203[`availableModels`](#availablemodels) 허용 목록은 여전히 이들 행에 적용됩니다. 나열된 모델을 허용 목록에 추가하기 전에 [병합 동작](/docs/ko/model-config#merge-behavior)을 읽으십시오: 특정 모델 ID는 제품군의 와일드카드 항목을 좁힙니다. Claude Code는 또한 선택기를 표시하기 전에 각 행을 세션에 대해 확인합니다:1203[`availableModels`](#availablemodels) 허용 목록은 이 행들에도 여전히 적용됩니다. 나열된 모델을 허용 목록에 추가하기 전에 [병합 동작](/docs/ko/model-config#merge-behavior)을 읽어 보세요. 특정 모델 ID는 해당 계열의 와일드카드 항목을 좁힙니다. Claude Code는 선택기를 표시하기 전에 각 행을 세션과 대조하여 확인하기도 합니다:

1204 1204 

1205* **삭제됨**: Claude Code가 제공할 수 없는 행(예: 폐기된 모델 또는 조직이 액세스할 수 없는 모델)1205* **제거됨**: 폐기된 모델이나 조직에 액세스 권한이 없는 모델처럼 Claude Code가 제공할 수 없는 행

1206* **회색으로 표시됨**: 아직 선택할 수 없는 행이며, 이유와 함께 표시됩니다.1206* **회색으로 표시됨**: 아직 선택할 수 없는 행으로, 이유와 함께 표시됩니다

1207* **행이 생존하지 않음**: Claude Code는 기본 제공 라인업을 유지하며, 허용 목록으로 필터링됩니다.1207* **남은 행 없음**: Claude Code는 평소처럼 허용 목록으로 필터링된 기본 제공 라인업을 유지합니다

1208 1208 

1209Claude Code는 구문 분석할 수 없는 행을 삭제하고 나머지를 유지합니다. [손상된 설정 파일 수정](/docs/ko/settings#fix-a-broken-settings-file)을 참조하십시오.1209Claude Code는 구문 분석할 수 없는 행을 제거하고 나머지는 유지합니다. [손상된 설정 파일 수정](/docs/ko/settings#fix-a-broken-settings-file)을 참조하세요.

1210 1210 

1211<h3 id="modelpricing">1211<h3 id="modelpricing">

1212 `modelPricing`1212 `modelPricing`

1213</h3>1213</h3>

1214 1214 

1215조직이 지불하는 요금으로 지출을 보고하며, 목록 가격 대신입니다. 조직이 계약 요금을 가지고 있을 때 설정하므로 개발자가 보는 달러 수치가 청구서와 일치합니다. Claude Code는 `/usage`, [상태 줄](/docs/ko/statusline), Agent SDK의 `total_cost_usd`, [`--max-budget-usd`](/docs/ko/cli-reference) 제한, [OpenTelemetry](/docs/ko/monitoring-usage) 비용 메트릭 및 이벤트의 요금을 적용합니다. 요금을 제공합니다: Claude Code는 계약 또는 Claude 콘솔에서 읽지 않습니다. Claude Code v2.1.242 이상이 필요합니다.1215정가 대신 조직에서 지불하는 요율로 지출을 보고합니다. 조직에 계약 요율이 있을 때 설정하면 개발자에게 표시되는 금액이 청구서와 일치합니다. Claude Code는 `/usage`, [상태줄](/docs/ko/statusline), Agent SDK의 `total_cost_usd`, [`--max-budget-usd`](/docs/ko/cli-reference) 제한, [OpenTelemetry](/docs/ko/monitoring-usage) 비용 지표 및 이벤트에 요율을 적용합니다. 요율은 직접 제공해야 합니다. Claude Code는 계약이나 Claude Console에서 요율을 읽지 않습니다. Claude Code v2.1.242 이상이 필요합니다.

1216 1216 

1217* **범위**: [`Managed`](#scopes). 서버 관리 설정, MDM 정책, `managed-settings.json` 파일, [정책 도우미](/docs/ko/managed-settings#compute-the-policy-with-a-helper-program)를 통해 키를 배포합니다. Claude Code는 사용자, 프로젝트, 로컬 설정, `--settings`, Windows의 사용자 쓰기 가능 [HKCU 레지스트리](/docs/ko/managed-settings#where-each-mechanism-stores-the-policy)에서 무시합니다. 서버 관리 설정을 사용하면 각 세션은 해당 세션의 [설정 가져오기](/docs/ko/server-managed-settings#fetch-and-caching-behavior)가 설정을 확인할 때까지 목록 가격으로 비용을 보고합니다. Claude Code를 포함하고 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ko/env-vars)를 설정하는 호스트 애플리케이션은 SDK [`managedSettings`](/docs/ko/agent-sdk/typescript#options) 옵션을 통해 자신의 테이블을 제공할 수 있으며, Claude Code는 관리되는 소스가 키를 설정하지 않을 때만 사용하며 Claude Code v2.1.246 이상에서만 사용합니다.1217* **범위**: [`Managed`](#scopes). 서버 관리형 설정, MDM 정책, `managed-settings.json` 파일 또는 [정책 헬퍼](/docs/ko/managed-settings#compute-the-policy-with-a-helper-program)를 통해 키를 배포합니다. Claude Code는 사용자, 프로젝트, 로컬 설정, `--settings`, 그리고 Windows에서는 사용자가 쓸 수 있는 [HKCU 레지스트리](/docs/ko/managed-settings#where-each-mechanism-stores-the-policy)에 있는 이 키를 무시합니다. 서버 관리형 설정을 사용하면 각 세션은 해당 세션의 [설정 가져오기](/docs/ko/server-managed-settings#fetch-and-caching-behavior)가 설정을 확인할 때까지 정가로 비용을 보고합니다. Claude Code를 임베드하고 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ko/env-vars)를 설정하는 호스트 애플리케이션은 SDK [`managedSettings`](/docs/ko/agent-sdk/typescript#options) 옵션을 통해 자체 요율표를 제공할 수 있으며, Claude Code는 어떤 관리형 소스도 이 키를 설정하지 않을 때만, 그리고 Claude Code v2.1.246 이상에서만 이를 사용합니다.

1218* **유형**: 선택적 `multiplier` 및 선택적 `overrides` 맵을 가진 객체1218* **유형**: 선택적 `multiplier`와 선택적 `overrides` 맵을 가진 객체

1219* **기본값**: 설정 해제되어 Claude Code는 호스트 애플리케이션이 테이블을 제공하지 않는 한 목록 가격을 보고합니다.1219* **기본값**: 설정되지 않음. 따라서 호스트 애플리케이션이 요율표를 제공하지 않는 한 Claude Code는 정가를 보고합니다

1220 1220 

1221단독으로 `multiplier`를 설정하여 정액 할인 또는 인상, 단독으로 `overrides`를 설정하여 모델별 요금, 또는 둘 다를 설정합니다.1221일률적인 할인이나 인상에는 `multiplier`만, 모델별 요율에는 `overrides`만 설정하거나 둘 다 설정합니다.

1222 1222 

1223이 예제는 Sonnet 4.6에 대한 계약 요금을 설정한 다음 Sonnet 행을 포함한 모든 수치를 15% 감소시킵니다:1223이 예시는 Sonnet 4.6의 계약 요율을 설정한 다음 Sonnet 행을 포함한 모든 금액을 15% 줄입니다:

1224 1224 

1225```json managed-settings.json theme={null}1225```json managed-settings.json theme={null}

1226{1226{


1238}1238}

1239```1239```

1240 1240 

1241`multiplier`를 1 이상 10까지 설정하여 모든 수치를 인상합니다. 인상은 Claude Code v2.1.271 이상이 필요합니다. 이전 버전은 경고와 함께 1 이상의 `multiplier`를 무시하고 설정의 나머지를 유지합니다.1241모든 금액을 인상하려면 `multiplier`를 1보다 크게, 최대 10까지 설정합니다. 인상에는 Claude Code v2.1.271 이상이 필요합니다. 이전 버전은 1보다 큰 `multiplier`를 경고와 함께 무시하고 설정의 나머지 부분은 유지합니다.

1242 1242 

1243단계(요금이 적용되는지 확인하는 방법 포함)는 [계약 요금으로 지출 보고](/docs/ko/costs#report-spend-at-your-contracted-rates)를 참조하십시오.1243요율이 적용되었는지 확인하는 방법을 포함한 단계는 [계약 요율로 지출 보고](/docs/ko/costs#report-spend-at-your-contracted-rates)를 참조하세요.

1244 1244 

1245<span id="modelpricing-multiplier" />1245<span id="modelpricing-multiplier" />

1246 1246 


1250 `modelPricing`의 필드1250 `modelPricing`의 필드

1251</h4>1251</h4>

1252 1252 

1253| 필드 | 유형 | 수행 작업 |1253| 필드 | 유형 | 동작 |

1254| :- | :- | :- |1254| :- | :- | :- |

1255| `multiplier` | 0보다 크고 최대 10인 숫자 | Claude Code가 계산하는 모든 비용을 확장하며, `overrides` 행이 이를 포함하는지 여부와 관계없이 확장합니다. 1 미만은 할인, 1 이상은 인상입니다. |1255| `multiplier` | 0보다 크고 10 이하인 숫자 | `overrides` 행이 적용되는지 여부와 관계없이 Claude Code가 계산하는 모든 비용을 조정합니다. 1 미만은 할인, 1 초과는 인상입니다 |

1256| `overrides` | 모델 ID를 `input`, `output`, `cacheRead`, `cacheWrite`를 가진 요금 객체로 매핑하며, 각각 0에서 10000 | 해당 모델에 대한 백만 토큰당 USD 요금이며, 모두 4개 필수입니다. `cacheWrite`는 5분 및 1시간 캐시 쓰기를 모두 포함합니다. [어느 모델이 행을 적용하는지](#which-models-a-modelpricing-row-applies-to) 참조 |1256| `overrides` | 모델 ID를 `input`, `output`, `cacheRead`, `cacheWrite`(각각 0\~10000)를 가진 요율 객체에 매핑하는 맵 | 해당 모델의 백만 토큰당 USD 요율이며, 네 가지 모두 필수입니다. `cacheWrite`는 5분 및 1시간 캐시 쓰기를 모두 포함합니다. [`modelPricing` 행이 적용되는 모델](#which-models-a-modelpricing-row-applies-to)을 참조하세요 |

1257 1257 

1258Claude Code는 행의 요금을 정확히 작성한 대로 사용하며, 빠른 모드 추가 요금 또는 [미국 전용 추론 요금](https://platform.claude.com/docs/en/about-claude/pricing)을 추가하지 않습니다. `multiplier`도 설정하면 Claude Code는 행의 요금 위에 이를 적용합니다. Claude Code는 구문 분석할 수 없는 요금이 있는 행 또는 구문 분석할 수 없는 `multiplier`를 삭제하고 나머지를 유지합니다. [손상된 설정 파일 수정](/docs/ko/settings#fix-a-broken-settings-file)을 참조하십시오.1258Claude Code는 빠른 모드 추가 요금이나 [미국 전용 추론 요율](https://platform.claude.com/docs/en/about-claude/pricing)을 더하지 않고 작성한 그대로 행의 요율을 사용합니다. `multiplier`도 설정하면 Claude Code는 행의 요율 위에 이를 적용합니다. Claude Code는 구문 분석할 수 없는 요율이 있는 행이나 구문 분석할 수 없는 `multiplier`를 제거하고 나머지는 유지합니다. [손상된 설정 파일 수정](/docs/ko/settings#fix-a-broken-settings-file)을 참조하세요.

1259 1259 

1260<h4 id="which-models-a-modelpricing-row-applies-to">1260<h4 id="which-models-a-modelpricing-row-applies-to">

1261 `modelPricing` 행이 적용되는 모델1261 `modelPricing` 행이 적용되는 모델

1262</h4>1262</h4>

1263 1263 

1264Claude Code는 행의 키에서 행이 적용되는 모델을 결정합니다:1264Claude Code는 행의 키를 기준으로 행이 적용되는 모델을 결정합니다:

1265 1265 

1266* **기본 제공 모델의 ID**: Claude Code 자체가 기본 제공 모델에 사용하는 키이며, 해당 키가 모델의 자체 ID(예: `claude-sonnet-4-6`) 또는 Bedrock, Agent Platform, Foundry ID인지 여부와 관계없이 사용합니다. Claude Code는 해당 모델의 모든 날짜 스냅샷 ID 및 공급자별 ID에 행을 적용합니다.1266* **기본 제공 모델의 ID**: Claude Code 자체가 기본 제공 모델에 사용하는 키로, `claude-sonnet-4-6`과 같은 모델 자체 ID이든 Bedrock, Agent Platform, Foundry ID이든 해당됩니다. Claude Code는 해당 모델의 모든 날짜 스냅샷 ID와 공급자별 ID에 행을 적용합니다.

1267* **다른 모든 키**: 기본 제공 모델의 ID가 아닌 키(예: 게이트웨이 모델 별칭). Claude Code는 해당 하나의 ID에만 행을 적용합니다. 모델 ID가 키 중 하나와 정확히 일치하고 기본 제공 모델의 ID로 키가 지정된 행 아래에도 해당할 때 Claude Code는 정확한 일치를 사용합니다.1267* **그 밖의 키**: 게이트웨이 모델 별칭처럼 기본 제공 모델의 ID가 아닌 키입니다. Claude Code는 해당 ID 하나에만 행을 적용합니다. 모델 ID가 키 중 하나와 정확히 일치하면서 기본 제공 모델의 ID로 키가 지정된 행에도 해당하는 경우, Claude Code는 정확히 일치하는 항목을 사용합니다.

1268* **Bedrock 애플리케이션 추론 프로필**: Claude Code가 [`modelOverrides`](#modeloverrides) 맵을 통해 또는 [`bedrock:GetInferenceProfile` 조회](/docs/ko/amazon-bedrock#iam-configuration)를 통해 프로필을 라우팅하는 모델로 확인한 후 Claude Code는 해당 모델의 행을 프로필에 적용합니다.1268* **Bedrock 애플리케이션 추론 프로필**: Claude Code가 [`modelOverrides`](#modeloverrides) 맵이나 [`bedrock:GetInferenceProfile` 조회](/docs/ko/amazon-bedrock#iam-configuration)를 통해 프로필을 라우팅 대상 모델로 확인하면, Claude Code는 해당 모델의 행을 프로필에 적용합니다.

1269 1269 

1270<h3 id="modelsettings">1270<h3 id="modelsettings">

1271 `modelSettings`1271 `modelSettings`

1272</h3>1272</h3>

1273 1273 

1274사용하는 각 모델에 대해 [노력 수준](/docs/ko/model-config#adjust-effort-level)을 저장합니다. Claude Code v2.1.251 이상이 필요합니다.1274사용하는 각 모델에 대한 [effort 수준](/docs/ko/model-config#adjust-effort-level)을 저장합니다. Claude Code v2.1.251 이상이 필요합니다.

1275 1275 

1276머신의 대화형 세션에서 `/effort` 또는 `/model` 선택기의 노력 슬라이더로 `low`, `medium`, `high`, 또는 `xhigh`를 기본값으로 저장할 때 Claude Code는 해당 수준을 사용 중인 모델 아래에 작성하므로 이 키를 거의 편집하지 않습니다. [VS Code 확장의 모델 선택기](/docs/ko/vs-code#use-the-prompt-box)에서 이들 수준 중 하나를 선택할 때 Claude Code는 동일한 방식으로 저장합니다. [`effortLevel`](#effortlevel) 항목은 `/effort`가 해당 세션에만 적용되는 세션을 나열합니다.1276로컬 머신의 대화형 세션에서 `/effort` 또는 `/model` 선택기의 effort 슬라이더로 `low`, `medium`, `high`, `xhigh`를 기본값으로 저장하면 Claude Code는 사용 중인 모델 아래 여기에 해당 수준을 기록하므로, 이 키를 직접 편집할 일은 거의 없습니다. [VS Code 확장의 모델 선택기](/docs/ko/vs-code#use-the-prompt-box)에서 이러한 수준 중 하나를 선택하면 Claude Code는 같은 방식으로 여기에 저장합니다. `/effort`가 해당 세션에만 적용되는 세션은 [`effortLevel`](#effortlevel) 항목에 나열되어 있습니다.

1277 1277 

1278저장한 수준을 변경하거나 제거하려면 키를 직접 편집합니다.1278저장한 수준을 변경하거나 제거하려면 키를 직접 편집합니다.

1279 1279 

1280여기서 지정한 모델의 `effortLevel`은 동일한 설정 파일의 최상위 [`effortLevel`](#effortlevel)보다 우선합니다. 파일 간에 Claude Code는 각 모델을 별도로 확인합니다: 해당 모델에 대해 `effortLevel`을 설정하거나 [해당 모델에 적용되는](#effortlevel) 최상위 `effortLevel`을 설정하는 가장 높은 우선순위 [설정 파일](/docs/ko/settings#settings-precedence)이 결정하므로 관리되는 설정의 `effortLevel`은 사용자 설정에서 저장한 수준보다 우선합니다. [노력 수준 조정](/docs/ko/model-config#adjust-effort-level)은 저장된 수준을 재정의할 수 있는 다른 것(예: 시작 시 `--effort`)을 나열합니다.1280여기의 모델별 `effortLevel`은 같은 설정 파일의 최상위 [`effortLevel`](#effortlevel)보다 우선합니다. 파일 간에는 Claude Code가 각 모델을 개별적으로 해석합니다. 해당 모델에 대한 `effortLevel` 또는 [해당 모델에 적용되는](#effortlevel) 최상위 `effortLevel`을 설정한 우선순위가 가장 높은 [설정 파일](/docs/ko/settings#settings-precedence)이 결정하므로, 관리형 설정의 `effortLevel`은 사용자 설정에 저장한 수준보다 우선합니다. 실행 시 `--effort`처럼 저장된 수준을 재정의할 수 있는 다른 항목은 [effort 수준 조정](/docs/ko/model-config#adjust-effort-level)에 나열되어 있습니다.

1281 1281 

1282한 모델의 노력을 설정하는 대신 제한하려면 해당 모델의 항목에 [`maxEffortLevel`](#maxeffortlevel) 필드를 추가합니다. 필드는 Claude Code v2.1.267 이상이 필요합니다.1282한 모델의 수준을 설정하는 대신 effort 상한을 정하려면 해당 모델의 항목에 [`maxEffortLevel`](#maxeffortlevel) 필드를 추가합니다. 이 필드에는 Claude Code v2.1.267 이상이 필요합니다.

1283 1283 

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

1285* **유형**: 모델 이름을 `effortLevel` 필드(하나의 `"low"`, `"medium"`, `"high"`, 또는 `"xhigh"`), [`maxEffortLevel`](#maxeffortlevel) 필드, 또는 둘 다를 가진 객체로 매핑하는 객체1285* **유형**: 모델 이름을 다음 필드 중 일부를 가진 객체에 매핑하는 객체:

1286* **기본값**: 설정 해제됨1286 * `effortLevel`: `"low"`, `"medium"`, `"high"`, `"xhigh"` 중 하나

1287 * [`maxEffortLevel`](#maxeffortlevel): 모델이 실행될 수 있는 가장 높은 effort 수준

1288 * `autoCompactWindow`: `100000`에서 `1000000` 사이의 토큰 수 또는 모델에 맞게 조정된 윈도우를 의미하는 `"auto"`. [`/autocompact`](/docs/ko/model-config#set-the-auto-compact-window)가 여기에 저장합니다. 해당 모델에 대해서는 이 값이 같은 설정 파일의 최상위 [`autoCompactWindow`](#autocompactwindow)보다 우선합니다. Claude Code v2.1.288 이상이 필요합니다

1289* **기본값**: 설정되지 않음

1287 1290 

1288Claude Code는 각 항목을 `claude-opus-5-5`와 같은 모델의 정규 이름 아래에 작성하며, 해당 모델의 별칭, 날짜 접미사, `[1m]`, 인식된 공급자별 ID를 동일한 항목과 일치시킵니다.1291Claude Code는 각 항목을 `claude-opus-5-5`와 같은 모델의 표준 이름 아래에 기록하며, 해당 모델의 별칭, 날짜 접미사가 붙은 ID, `[1m]` ID, 인식되는 공급자별 ID를 같은 항목에 매칭합니다.

1289 1292 

1290이 예제는 Opus 5.5를 `high`로 유지하면서 다른 모델은 자신의 저장되거나 기본 수준을 사용합니다:1293이 예시는 다른 모델은 각자의 저장된 수준이나 기본 수준을 사용하는 동안 Opus 5.5를 `high`로 유지합니다:

1291 1294 

1292```json settings.json theme={null}1295```json settings.json theme={null}

1293{1296{


1299}1302}

1300```1303```

1301 1304 

1302사용 중인 모델에 대해 저장된 수준을 지우려면 `/effort auto`를 실행합니다. Claude Code는 다른 항목과 파일의 모든 최상위 `effortLevel`을 그대로 둡니다.1305사용 중인 모델에 대해 저장된 수준을 지우려면 `/effort auto`를 실행합니다. Claude Code는 다른 항목과 최상위 `effortLevel`은 그대로 둡니다.

1303 1306 

1304<h3 id="outputstyle">1307<h3 id="outputstyle">

1305 `outputStyle`1308 `outputStyle`

1306</h3>1309</h3>

1307 1310 

1308[출력 스타일](/docs/ko/output-styles)을 이름으로 선택합니다. 출력 스타일은 Claude의 역할, 톤, 출력 형식을 변경하는 저장된 지침 집합이며, 기본 제공 Explanatory 및 Learning 스타일 또는 직접 작성한 스타일입니다.1311이름으로 [출력 스타일](/docs/ko/output-styles)을 선택합니다. 출력 스타일은 Claude의 역할, 어조, 출력 형식을 바꾸는 저장된 지침 세트로, 기본 제공 Explanatory 및 Learning 스타일이나 직접 작성한 스타일이 이에 해당합니다.

1309 1312 

1310세션 중에 이 키를 변경하면 Claude는 다음 메시지부터 새 스타일을 사용합니다. 해당 메시지가 프롬프트 캐싱에서 비용이 얼마인지는 [출력 스타일 변경](/docs/ko/prompt-caching#changing-output-style)을 참조하십시오. v2.1.251 이전에는 `/clear`를 실행하거나 새 세션을 시작한 후에만 편집이 적용되었습니다.1313세션 중에 이 키를 변경하면 Claude는 다음 메시지부터 새 스타일을 사용합니다. 해당 메시지의 프롬프트 캐싱 비용은 [출력 스타일 변경](/docs/ko/prompt-caching#changing-output-style)을 참조하세요. v2.1.251 이전에는 `/clear`를 실행하거나 새 세션을 시작한 후에야 편집 내용이 적용되었습니다.

1311 1314 

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

1313* **유형**: 문자열, [기본 제공](/docs/ko/output-styles#built-in-output-styles) 또는 [사용자 정의](/docs/ko/output-styles#create-a-custom-output-style) 출력 스타일의 이름1316* **유형**: 문자열. [기본 제공](/docs/ko/output-styles#built-in-output-styles) 또는 [사용자 지정](/docs/ko/output-styles#create-a-custom-output-style) 출력 스타일의 이름

1314* **기본값**: 설정 해제되어 Claude Code는 기본 스타일을 사용합니다.1317* **기본값**: 설정되지 않음. 따라서 Claude Code는 기본 스타일을 사용합니다

1315 1318 

1316이 예제는 기본 제공 Explanatory 스타일을 선택하며, 작업 사이에 교육 통찰력을 추가합니다:1319이 예시는 작업 사이에 교육적인 인사이트를 추가하는 기본 제공 Explanatory 스타일을 선택합니다:

1317 1320 

1318```json settings.json theme={null}1321```json settings.json theme={null}

1319{1322{


1325 `promptCacheTtl`1328 `promptCacheTtl`

1326</h3>1329</h3>

1327 1330 

1328[프롬프트 캐시](/docs/ko/prompt-caching)가 주 대화를 유지하는 기간을 선택합니다. 이 키는 대화형, `-p`, Agent SDK 턴과 함께 Claude Code가 인라인으로 실행하는 도우미에 적용됩니다. 1시간 수명은 더 긴 휴식 시간에 캐시를 따뜻하게 유지하며, API는 [각 캐시 쓰기를 5분 수명보다 더 높은 요금으로 청구합니다](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing). Claude Code v2.1.242 이상이 필요합니다.1331[프롬프트 캐시](/docs/ko/prompt-caching)가 메인 대화를 유지하는 기간을 선택합니다. 이 키는 대화형, `-p`, Agent SDK 턴과 Claude Code가 이와 함께 인라인으로 실행하는 헬퍼에 적용됩니다. 1시간 수명은 더 긴 휴식 동안에도 캐시를 유지하며, API는 5분 수명보다 [각 캐시 쓰기에 더 높은 요율을 청구](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing)합니다. Claude Code v2.1.242 이상이 필요합니다.

1329 1332 

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

1331* **유형**: 문자열, 다음 중 하나:1334* **유형**: 문자열. 다음 중 하나:

1332 * `"5m"`: 캐시는 5분 동안 유지됩니다.1335 * `"5m"`: 캐시가 5분 동안 유지됩니다

1333 * `"1h"`: 캐시는 1시간 동안 유지됩니다.1336 * `"1h"`: 캐시가 1시간 동안 유지됩니다

1334* **기본값**: 설정 해제되어 각 주 대화 요청은 [기본 수명](/docs/ko/prompt-caching#which-ttl-each-request-gets)을 얻습니다.1337* **기본값**: 설정되지 않음. 따라서 각 메인 대화 요청은 [기본 수명](/docs/ko/prompt-caching#which-ttl-each-request-gets)을 받습니다

1335* **세션별 재정의**: [`FORCE_PROMPT_CACHING_5M`](/docs/ko/env-vars)은 모든 것보다 우선하며, 그 다음 [`CLAUDE_CODE_PROMPT_CACHE_TTL`](/docs/ko/env-vars), 그 다음 이 키, 마지막으로 [`ENABLE_PROMPT_CACHING_1H`](/docs/ko/env-vars)1338* **세션별 재정의**: [`FORCE_PROMPT_CACHING_5M`](/docs/ko/env-vars)이 다른 모든 것보다 우선하고, 그다음 [`CLAUDE_CODE_PROMPT_CACHE_TTL`](/docs/ko/env-vars), 그다음 이 키, 마지막으로 [`ENABLE_PROMPT_CACHING_1H`](/docs/ko/env-vars) 순입니다

1336 1339 

1337이 예제는 주 대화를 1시간 수명으로 유지하고 subagents를 5분으로 둡니다:1340이 예시는 메인 대화를 1시간 수명으로 유지하고 서브에이전트는 5분으로 둡니다:

1338 1341 

1339```json settings.json theme={null}1342```json settings.json theme={null}

1340{1343{


1343}1346}

1344```1347```

1345 1348 

1346각 수명이 비용이 얼마인지는 [캐시 수명](/docs/ko/prompt-caching#cache-lifetime)을 참조하십시오.1349각 수명의 비용은 [캐시 수명](/docs/ko/prompt-caching#cache-lifetime)을 참조하세요.

1347 1350 

1348<h3 id="showthinkingsummaries">1351<h3 id="showthinkingsummaries">

1349 `showThinkingSummaries`1352 `showThinkingSummaries`

1350</h3>1353</h3>

1351 1354 

1352대화형 세션에서 Claude의 [확장 사고](/docs/ko/model-config#extended-thinking) 요약을 봅니다. `Ctrl+O`로 사고를 확장할 때 전체 요약을 원하면 설정합니다. 설정 해제되거나 `false`일 때 Anthropic API는 사고 블록을 수정하고 Claude Code는 축소된 스텁을 표시합니다. 타사 공급자는 수정하지 않습니다.1355대화형 세션에서 Claude의 [확장 사고](/docs/ko/model-config#extended-thinking) 요약을 확인합니다. `Ctrl+O`로 사고를 펼칠 때 전체 요약을 보려면 설정합니다. 설정하지 않았거나 `false`이면 Anthropic API가 thinking 블록을 편집하여 가리고 Claude Code는 접힌 스텁을 표시합니다. 서드파티 공급자는 가리지 않습니다.

1353 1356 

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

1355* **유형**: 부울1358* **유형**: Boolean

1356 * `true`: `Ctrl+O`로 사고를 확장할 때 전체 사고 요약을 봅니다.1359 * `true`: `Ctrl+O`로 사고를 펼치면 전체 사고 요약이 표시됩니다

1357 * `false`: Anthropic API는 사고 블록을 수정하고 Claude Code는 축소된 스텁을 표시합니다.1360 * `false`: Anthropic API가 thinking 블록을 가리고 Claude Code는 접힌 스텁을 표시합니다

1358* **기본값**: `false`1361* **기본값**: `false`

1359 1362 

1360```json settings.json theme={null}1363```json settings.json theme={null}


1363}1366}

1364```1367```

1365 1368 

1366수정은 모델이 생성하는 것이 아니라 보는 것만 변경합니다. 사고 지출을 줄이려면 [예산을 낮추거나 사고를 비활성화](/docs/ko/model-config#extended-thinking)하십시오.1369가리기는 표시되는 내용만 바꾸며 모델이 생성하는 내용은 바꾸지 않습니다. 사고 비용을 줄이려면 대신 [예산을 낮추거나 사고를 비활성화](/docs/ko/model-config#extended-thinking)하세요.

1367 1370 

1368<h3 id="subagentpromptcachettl">1371<h3 id="subagentpromptcachettl">

1369 `subagentPromptCacheTtl`1372 `subagentPromptCacheTtl`

1370</h3>1373</h3>

1371 1374 

1372[프롬프트 캐시](/docs/ko/prompt-caching)가 주 대화 외부에서 Claude Code가 만드는 요청을 유지하는 기간을 선택합니다. 이 키는 [subagents](/docs/ko/sub-agents), [workflows](/docs/ko/workflows), Claude Code의 자체 배경 및 도우미 요청(예: 압축 및 세션 제목)에 적용됩니다. 1시간 수명은 더 긴 휴식 시간에 캐시를 따뜻하게 유지하며, API는 [각 캐시 쓰기를 5분 수명보다 더 높은 요금으로 청구합니다](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing). Claude Code v2.1.242 이상이 필요합니다.1375[프롬프트 캐시](/docs/ko/prompt-caching)가 Claude Code가 메인 대화 외부에서 보내는 요청을 유지하는 기간을 선택합니다. 이 키는 [서브에이전트](/docs/ko/sub-agents), [워크플로](/docs/ko/workflows), 그리고 압축 및 세션 제목과 같은 Claude Code 자체의 백그라운드 및 헬퍼 요청에 적용됩니다. 1시간 수명은 더 긴 휴식 동안에도 캐시를 유지하며, API는 5분 수명보다 [각 캐시 쓰기에 더 높은 요율을 청구](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing)합니다. Claude Code v2.1.242 이상이 필요합니다.

1373 1376 

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

1375* **유형**: 문자열, 다음 중 하나:1378* **유형**: 문자열. 다음 중 하나:

1376 * `"5m"`: 캐시는 5분 동안 유지됩니다.1379 * `"5m"`: 캐시가 5분 동안 유지됩니다

1377 * `"1h"`: 캐시는 1시간 동안 유지됩니다.1380 * `"1h"`: 캐시가 1시간 동안 유지됩니다

1378* **기본값**: 설정 해제되어 이들 각 요청은 [기본 수명](/docs/ko/prompt-caching#which-ttl-each-request-gets)을 얻습니다.1381* **기본값**: 설정되지 않음. 따라서 이러한 각 요청은 [기본 수명](/docs/ko/prompt-caching#which-ttl-each-request-gets)을 받습니다

1379* **세션별 재정의**: [`FORCE_PROMPT_CACHING_5M`](/docs/ko/env-vars)은 모든 것보다 우선하며, 그 다음 [`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`](/docs/ko/env-vars), 그 다음 이 키, 그 다음 [`ENABLE_PROMPT_CACHING_1H`](/docs/ko/env-vars)(모든 요청에서 1시간 수명을 요청). subagent의 자체 frontmatter 값이 어디에 순위가 지정되는지는 [TTL을 직접 선택](/docs/ko/prompt-caching#choose-the-ttl-yourself)을 참조하십시오.1382* **세션별 재정의**: [`FORCE_PROMPT_CACHING_5M`](/docs/ko/env-vars)이 다른 모든 것보다 우선하고, 그다음 [`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`](/docs/ko/env-vars), 그다음 이 키, 그다음 모든 요청에 1시간 수명을 요청하는 [`ENABLE_PROMPT_CACHING_1H`](/docs/ko/env-vars) 순입니다. 서브에이전트 자체 frontmatter 값의 순위는 [TTL 직접 선택](/docs/ko/prompt-caching#choose-the-ttl-yourself)을 참조하세요

1380 1383 

1381이 예제는 subagents 및 주 대화 외부의 다른 요청에 1시간 수명을 제공합니다:1384이 예시는 서브에이전트와 메인 대화 외부의 다른 요청에 1시간 수명을 부여합니다:

1382 1385 

1383```json settings.json theme={null}1386```json settings.json theme={null}

1384{1387{


1386}1389}

1387```1390```

1388 1391 

1389이 키는 [`promptCacheTtl`](#promptcachettl)이 포함하지 않는 요청을 포함하므로 Claude Code가 만드는 모든 요청에 대해 수명을 선택하려면 둘 다 설정합니다. subagent의 캐시가 주 대화의 캐시와 어떻게 다른지는 [Subagents 및 캐시](/docs/ko/prompt-caching#subagents-and-the-cache)를 참조하십시오.1392이 키는 [`promptCacheTtl`](#promptcachettl)이 다루지 않는 요청을 다루므로, Claude Code가 보내는 모든 요청의 수명을 선택하려면 둘 다 설정하세요. 서브에이전트의 캐시가 메인 대화의 캐시와 어떻게 다른지는 [서브에이전트와 캐시](/docs/ko/prompt-caching#subagents-and-the-cache)를 참조하세요.

1390 1393 

1391<h3 id="switchmodelsonflag">1394<h3 id="switchmodelsonflag">

1392 `switchModelsOnFlag`1395 `switchModelsOnFlag`

1393</h3>1396</h3>

1394 1397 

1395[안전 분류기가 요청에 플래그를 지정](/docs/ko/model-config#automatic-model-fallback)할 때 발생하는 상황을 선택합니다: 폴백 모델로 전환하고 계속하거나, 전환과 프롬프트 편집 중에서 선택할 수 있도록 일시 중지합니다.1398[안전 분류기가 요청에 플래그를 지정](/docs/ko/model-config#automatic-model-fallback)할 때 수행할 작업을 선택합니다. 폴백 모델로 전환하여 계속하거나, 일시 중지하여 전환과 프롬프트 편집 중에서 선택할 수 있도록 합니다.

1396 1399 

1397* **범위**: [`Any file`](#scopes). `/config`에 **메시지에 플래그가 지정되면 모델 전환**으로 나타납니다.1400* **범위**: [`Any file`](#scopes). `/config`에서 **Switch models when a message is flagged**로 표시됩니다.

1398* **유형**: 부울1401* **유형**: Boolean

1399 * `true`: Claude Code는 폴백 모델로 전환하고 계속합니다.1402 * `true`: Claude Code가 폴백 모델로 전환하고 계속합니다

1400 * `false`: 대화형 세션에서 Claude Code는 전환과 프롬프트 편집 중에서 선택할 수 있도록 일시 중지합니다. 대화 상자를 표시할 수 없는 곳(예: `-p` 실행)에서는 플래그된 요청이 오류로 끝납니다.1403 * `false`: 대화형 세션에서는 Claude Code가 일시 중지하여 전환과 프롬프트 편집 중에서 선택할 수 있도록 합니다. `-p` 실행처럼 대화 상자를 표시할 수 없는 곳에서는 플래그가 지정된 요청이 오류로 종료됩니다

1401* **기본값**: `true`, 자동으로 전환1404* **기본값**: `true`, 자동으로 전환

1402 1405 

1403```json settings.json theme={null}1406```json settings.json theme={null}


1406}1409}

1407```1410```

1408 1411 

1409[전환하기 전에 묻기](/docs/ko/model-config#ask-before-switching)를 참조하십시오.1412[전환 전에 확인](/docs/ko/model-config#ask-before-switching)을 참조하세요.

1410 1413 

1411<h3 id="ultracode">1414<h3 id="ultracode">

1412 `ultracode`1415 `ultracode`

1413</h3>1416</h3>

1414 1417 

1415[ultracode](/docs/ko/workflows#let-claude-decide-with-ultracode)를 켜서 세션을 시작합니다. 켜져 있으면 Claude는 사용자가 요청할 때까지 기다리는 대신 각 실질적인 작업에 대해 워크플로우를 계획합니다. Claude는 [동적 워크플로우](/docs/ko/workflows)가 사용자에게 활성화되고 모델이 `xhigh` 노력을 지원할 때만 워크플로우를 계획합니다. 키는 세션의 노력 수준을 변경하지 않습니다: ultracode는 세션이 사용하는 어느 수준에서든 실행됩니다. Claude Code는 이 키를 읽지만 절대 작성하지 않습니다: `/effort ultracode`는 현재 세션에만 ultracode를 켭니다.1418[ultracode](/docs/ko/workflows#let-claude-decide-with-ultracode)를 켠 상태로 세션을 시작합니다. 켜면 Claude는 요청을 기다리지 않고 실질적인 각 작업에 대해 워크플로를 계획합니다. Claude는 [동적 워크플로](/docs/ko/workflows)가 활성화되어 있고 모델이 `xhigh` effort를 지원할 때만 워크플로를 계획합니다. 이 키는 세션의 effort 수준을 바꾸지 않습니다. ultracode는 세션이 사용하는 수준에서 실행됩니다. Claude Code는 이 키를 읽기만 하고 쓰지는 않습니다. `/effort ultracode`는 현재 세션에 대해서만 ultracode를 켭니다.

1416 1419 

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

1418* **유형**: 부울1421* **유형**: Boolean

1419 * `true`: 동적 워크플로우가 사용자에게 활성화되고 모델이 `xhigh` 노력을 지원할 때 세션은 ultracode가 켜진 상태로 시작합니다.1422 * `true`: 동적 워크플로가 활성화되어 있고 모델이 `xhigh`를 지원하면 ultracode를 켠 상태로 세션이 시작됩니다

1420 * `false`: 세션은 ultracode가 꺼진 상태로 시작합니다.1423 * `false`: ultracode를 끈 상태로 세션이 시작됩니다

1421* **기본값**: 설정 해제되어 ultracode는 꺼짐1424* **기본값**: 설정되지 않음. 따라서 ultracode가 꺼져 있습니다

1422* **세션별 재정의**: `/effort ultracode`는 이 키 없이 한 세션에 대해 ultracode를 켭니다. `--effort ultracode` 플래그도 한 세션에 대해 켜며, `xhigh` 노력에서 켜며, Claude Code v2.1.203 이상이 필요합니다.1425* **세션별 재정의**: `/effort ultracode`는 이 키 없이 한 세션에 대해 ultracode를 켜고, `/effort ultracode off`는 이 키가 `true`일 때 한 세션에 대해 ultracode를 끕니다. `--effort ultracode` 플래그도 `xhigh` effort로 한 세션에 대해 ultracode를 켜며, Claude Code v2.1.203 이상이 필요합니다

1423 1426 

1424```json settings.json theme={null}1427```json settings.json theme={null}

1425{1428{


1427}1430}

1428```1431```

1429 1432 

1430세션의 노력 수준은 [`effortLevel`](#effortlevel), [`modelSettings`](#modelsettings), 다른 [노력 소스](/docs/ko/model-config#adjust-effort-level)에서 나오며, [노력 제한](/docs/ko/model-config#organization-effort-limits)(예: [`maxEffortLevel`](#maxeffortlevel))은 ultracode를 끄지 않고 해당 수준을 낮춥니다. 이것과 `/effort ultracode off` 형식은 Claude Code v2.1.284 이상이 필요합니다. v2.1.284 이전에는 `ultracode: true`가 세션을 `xhigh` 노력으로 실행했으며, `xhigh` 아래의 노력 제한은 ultracode를 꺼진 상태로 유지했습니다. Agent SDK `apply_flag_settings` 제어 요청도 키를 허용합니다.1433세션의 effort 수준은 [`effortLevel`](#effortlevel), [`modelSettings`](#modelsettings) 및 기타 [effort 소스](/docs/ko/model-config#adjust-effort-level)에서 결정되며, [`maxEffortLevel`](#maxeffortlevel)과 같은 [effort 상한](/docs/ko/model-config#organization-effort-limits)은 ultracode를 끄지 않고 해당 수준을 낮춥니다. 이 동작과 `/effort ultracode off` 형식에는 Claude Code v2.1.284 이상이 필요합니다. v2.1.284 이전에는 `ultracode: true`가 세션을 `xhigh` effort로 실행했으며, `xhigh` 미만의 effort 상한이 있으면 ultracode가 꺼진 상태로 유지되었습니다. Agent SDK `apply_flag_settings` 제어 요청도 이 키를 허용합니다.

1431 1434 

1432<h2 id="permission-settings">1435<h2 id="permission-settings">

1433 권한 설정1436 권한 설정


2478 `sandbox.credentials.envVars`2481 `sandbox.credentials.envVars`

2479</h3>2482</h3>

2480 2483 

2481환경 변수를 샌드박스된 명령으로부터 보호합니다. `"mode": "deny"`를 사용하면, Claude Code는 샌드박스된 명령의 환경에서 변수를 제거합니다. `"mode": "mask"`를 사용하면, 샌드박스된 명령은 세션별 센티널 값을 보고, 샌드박스 프록시는 해당 항목의 `injectHosts`에 대한 아웃바운드 요청에서 실제 값을 대체하므로, `gh` 및 `npm`과 같은 도구는 실제 자격 증명을 보유하지 않고도 계속 인증합니다. `"mode": "mask"`는 Claude Code v2.1.199 이상이 필요합니다.2484환경 변수를 샌드박스된 명령으로부터 보호합니다. `"mode": "deny"`를 사용하면, Claude Code는 샌드박스된 명령의 환경에서 변수를 제거합니다. `"mode": "mask"`를 사용하면, 샌드박스된 명령은 세션별 센티널 값을 보고, 샌드박스 프록시는 해당 항목의 `injectHosts`에 대한 아웃바운드 요청에서 실제 값을 대체하므로, `gh` 및 `npm`과 같은 도구는 실제 자격 증명을 보유하지 않고도 계속 인증합니다.

2482 2485 

2483* **범위**: [`모든 파일`](#scopes). Claude Code는 프로젝트 `.claude/settings.json` 및 로컬 `.claude/settings.local.json`에서 `mask` 항목을 버립니다.2486* **범위**: [`모든 파일`](#scopes). Claude Code는 프로젝트 `.claude/settings.json` 및 로컬 `.claude/settings.local.json`에서 `mask` 항목을 버립니다.

2484* **유형**: 각각 `name` 및 `"deny"` 또는 `"mask"`의 `mode`를 포함하는 객체의 배열이며, 선택적 [환경 변수용 마스크 필드](#mask-fields-for-environment-variables)도 포함합니다.2487* **유형**: 각각 `name` 및 `"deny"` 또는 `"mask"`의 `mode`를 포함하는 객체의 배열이며, 선택적 [환경 변수용 마스크 필드](#mask-fields-for-environment-variables)도 포함합니다.


2499}2502}

2500```2503```

2501 2504 

2502`name`은 문자 또는 밑줄로 시작해야 하며 문자, 숫자, 밑줄만 포함해야 합니다. Claude Code는 세션이 로드하는 모든 설정 범위에서 배열을 병합하고, 동일한 변수가 두 모드로 나타날 때 `deny`를 적용합니다. [자격 증명 보호](/docs/ko/sandboxing#protect-credentials)는 `--setting-sources`로 제외하는 소스에서 여전히 적용되는 것을 다룹니다. `mask` 항목은 Claude Code v2.1.199 이상이 필요합니다.2505`name`은 문자 또는 밑줄로 시작해야 하며 문자, 숫자, 밑줄만 포함해야 합니다. Claude Code는 세션이 로드하는 모든 설정 범위에서 배열을 병합하고, 동일한 변수가 두 모드로 나타날 때 `deny`를 적용합니다. [자격 증명 보호](/docs/ko/sandboxing#protect-credentials)는 `--setting-sources`로 제외하는 소스에서 여전히 적용되는 것을 다룹니다.

2503 2506 

2504`mask` 대체는 샌드박스 프록시를 통해서만 실행되므로, [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) 또는 일반 HTTP 테스트 네트워크의 경우 [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject)를 설정하십시오. [자격 증명 마스크](/docs/ko/sandboxing#mask-credentials)를 참조하십시오. Claude Code는 `deny` 항목의 `mask` 필드를 수용하지만 무시합니다.2507`mask` 대체는 샌드박스 프록시를 통해서만 실행되므로, [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) 또는 일반 HTTP 테스트 네트워크의 경우 [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject)를 설정하십시오. [자격 증명 마스크](/docs/ko/sandboxing#mask-credentials)를 참조하십시오. Claude Code는 `deny` 항목의 `mask` 필드를 수용하지만 무시합니다.

2505 2508 


2525| `onExtractNoMatch` | `"warn"`, `"deny"`, 또는 `"error"`. 기본값 `"warn"`. `decode`를 포함하는 항목에서는 `"warn"`만 수용됨 | `extract`가 아무것도 일치하지 않을 때 발생하는 일. `warn`은 변수를 마스크 없이 전달하고, `deny`는 샌드박스 내부에서 설정 해제하고, `error`는 구성을 수정할 때까지 샌드박스 설정을 중지합니다. v2.1.224 이상이 필요합니다. |2528| `onExtractNoMatch` | `"warn"`, `"deny"`, 또는 `"error"`. 기본값 `"warn"`. `decode`를 포함하는 항목에서는 `"warn"`만 수용됨 | `extract`가 아무것도 일치하지 않을 때 발생하는 일. `warn`은 변수를 마스크 없이 전달하고, `deny`는 샌드박스 내부에서 설정 해제하고, `error`는 구성을 수정할 때까지 샌드박스 설정을 중지합니다. v2.1.224 이상이 필요합니다. |

2526| `decode` | 문자열 `"jwt"` | 전체 값이 JWT인지 검증하고 구조적으로 유효한 가짜 토큰으로 대체하므로, 샌드박스 내부에서 토큰을 디코드하는 코드는 계속 작동합니다. 프록시는 송신 시 전체 실제 토큰을 대체합니다. 검증되지 않는 값은 경고와 함께 마스크 없이 전달됩니다. v2.1.224 이상이 필요합니다. |2529| `decode` | 문자열 `"jwt"` | 전체 값이 JWT인지 검증하고 구조적으로 유효한 가짜 토큰으로 대체하므로, 샌드박스 내부에서 토큰을 디코드하는 코드는 계속 작동합니다. 프록시는 송신 시 전체 실제 토큰을 대체합니다. 검증되지 않는 값은 경고와 함께 마스크 없이 전달됩니다. v2.1.224 이상이 필요합니다. |

2527| `maskClaims` | 문자열의 배열, 최소 하나의 클레임 이름. `decode` 필요 | 디코드된 JWT 내부의 명명된 최상위 페이로드 클레임만 마스크하고 수정된 페이로드를 중심으로 토큰을 다시 빌드하므로, 다른 클레임은 읽을 수 있게 유지됩니다. 명명된 클레임이 일치하지 않으면, 변수는 경고와 함께 마스크 없이 전달됩니다. v2.1.224 이상이 필요합니다. |2530| `maskClaims` | 문자열의 배열, 최소 하나의 클레임 이름. `decode` 필요 | 디코드된 JWT 내부의 명명된 최상위 페이로드 클레임만 마스크하고 수정된 페이로드를 중심으로 토큰을 다시 빌드하므로, 다른 클레임은 읽을 수 있게 유지됩니다. 명명된 클레임이 일치하지 않으면, 변수는 경고와 함께 마스크 없이 전달됩니다. v2.1.224 이상이 필요합니다. |

2528| `injectHosts` | 문자열의 배열, 각각 [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains)도 허용하는 호스트 | 샌드박스 프록시가 실제 값을 대체하는 호스트를 좁힙니다. 설정되지 않으면, 프록시는 `sandbox.network.allowedDomains`의 모든 호스트에 대한 요청에서 대체합니다. IPv6 대상은 괄호로 묶인 형식이 아니라 `"::1"`과 같이 압축된 주소 그대로 작성합니다. [`injectHosts`의 IPv6 대상](/docs/ko/sandboxing#ipv6-destinations-in-injecthosts)을 참조하십시오. v2.1.199 이상이 필요합니다. |2531| `injectHosts` | 문자열의 배열, 각각 [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains)도 허용하는 호스트 | 샌드박스 프록시가 실제 값을 대체하는 호스트를 좁힙니다. 설정되지 않으면, 프록시는 `sandbox.network.allowedDomains`의 모든 호스트에 대한 요청에서 대체합니다. IPv6 대상은 괄호로 묶인 형식이 아니라 `"::1"`과 같이 압축된 주소 그대로 작성합니다. [`injectHosts`의 IPv6 대상](/docs/ko/sandboxing#ipv6-destinations-in-injecthosts)을 참조하십시오. |

2529 2532 

2530다음은 `DATABASE_URL` 내부의 비밀번호만 마스크하고, 패턴이 아무것도 일치하지 않으면 변수를 설정 해제하고, `SERVICE_JWT`의 JWT를 마스크하면서 `api_key`를 제외한 모든 클레임을 읽을 수 있게 유지합니다:2533다음은 `DATABASE_URL` 내부의 비밀번호만 마스크하고, 패턴이 아무것도 일치하지 않으면 변수를 설정 해제하고, `SERVICE_JWT`의 JWT를 마스크하면서 `api_key`를 제외한 모든 클레임을 읽을 수 있게 유지합니다:

2531 2534 


2556 `sandbox.credentials.allowPlaintextInject`2559 `sandbox.credentials.allowPlaintextInject`

2557</h3>2560</h3>

2558 2561 

2559TLS 종료 HTTPS뿐만 아니라 일반 HTTP 요청에서도 `mask` 대체를 허용합니다. 일반 HTTP에서는 업스트림 신원이 검증되지 않으며 자격 증명이 평문으로 전송되므로, 신뢰할 수 있는 테스트 네트워크 외부에서는 이를 끈 상태로 두십시오. Claude Code v2.1.199 이상이 필요합니다.2562TLS 종료 HTTPS뿐만 아니라 일반 HTTP 요청에서도 `mask` 대체를 허용합니다. 일반 HTTP에서는 업스트림 신원이 검증되지 않으며 자격 증명이 평문으로 전송되므로, 신뢰할 수 있는 테스트 네트워크 외부에서는 이를 끈 상태로 두십시오.

2560 2563 

2561* **범위**: [`사용자 또는 관리됨`](#scopes)2564* **범위**: [`사용자 또는 관리됨`](#scopes)

2562* **유형**: Boolean2565* **유형**: Boolean


2574}2577}

2575```2578```

2576 2579 

2577Claude Code v2.1.199 이상이 필요합니다.

2578 

2579<h3 id="sandbox-credentials-awspairs">2580<h3 id="sandbox-credentials-awspairs">

2580 `sandbox.credentials.awsPairs`2581 `sandbox.credentials.awsPairs`

2581</h3>2582</h3>


2919}2920}

2920```2921```

2921 2922 

2922둘 이상의 인정된 소스가 이를 설정하면, Claude Code는 가장 높은 우선순위 소스의 값을 사용합니다: 관리형 설정, 그 다음 `--settings` 플래그, 그 다음 사용자 설정입니다. Claude Code v2.1.199 이상이 필요합니다.2923둘 이상의 인정된 소스가 이를 설정하면, Claude Code는 가장 높은 우선순위 소스의 값을 사용합니다: 관리형 설정, 그 다음 `--settings` 플래그, 그 다음 사용자 설정입니다.

2923 2924 

2924<span id="context-and-memory" />2925<span id="context-and-memory" />

2925 2926 


2967}2968}

2968```2969```

2969 2970 

2970[`/autocompact`](/docs/ko/commands#all-commands) 명령으로 설정하면 이 키가 사용자 설정에 기록됩니다. [자동 압축 윈도우 설정](/docs/ko/model-config#set-the-auto-compact-window)에서 명령, 플래그, 변수 및 설정이 어떻게 상호작용하는지 설명합니다.2971[`/autocompact`](/docs/ko/commands#all-commands) 명령은 현재 모델의 윈도우를 [`modelSettings`](#modelsettings) 아래에 저장하며, 이 값은 해당 모델에 대해 같은 파일의 이 키보다 우선합니다. [자동 압축 윈도우 설정](/docs/ko/model-config#set-the-auto-compact-window)에서 명령, 플래그, 변수 및 설정이 어떻게 상호작용하는지 설명합니다.

2971 2972 

2972<h3 id="automemorydirectory">2973<h3 id="automemorydirectory">

2973 `autoMemoryDirectory`2974 `autoMemoryDirectory`


5435 에이전트, 세션, 및 worktrees5436 에이전트, 세션, 및 worktrees

5436</h2>5437</h2>

5437 5438 

5438기본 에이전트를 설정하고, 팀원을 제어하며 세션 간 메시징을 구성하고, worktrees를 설정합니다. [Subagents](/docs/ko/sub-agents) 및 [Worktrees](/docs/ko/worktrees)를 참조하세요.5439기본 에이전트를 설정하고, 팀원을 제어하며 세션 간 메시징을 구성하고, worktrees를 설정합니다. [서브에이전트](/docs/ko/sub-agents) 및 [Worktrees](/docs/ko/worktrees)를 참조하세요.

5439 5440 

5440<h3 id="agent">5441<h3 id="agent">

5441 `agent`5442 `agent`

5442</h3>5443</h3>

5443 5444 

5444명명된 [subagent](/docs/ko/sub-agents#invoke-subagents-explicitly)로 메인 스레드를 실행하여 Claude Code가 해당 subagent의 시스템 프롬프트, 도구 제한 사항 및 모델을 세션에 적용하도록 합니다. 동일한 키는 `claude agents`에서 디스패치하는 세션의 기본 에이전트를 설정합니다.5445명명된 [서브에이전트](/docs/ko/sub-agents#invoke-subagents-explicitly)로 메인 스레드를 실행하여 Claude Code가 해당 서브에이전트의 시스템 프롬프트, 도구 제한 사항 및 모델을 세션에 적용하도록 합니다. 동일한 키는 `claude agents`에서 디스패치하는 세션의 기본 에이전트를 설정합니다.

5445 5446 

5446* **Scope**: [`Any file`](#scopes)5447* **Scope**: [`Any file`](#scopes)

5447* **Type**: string, 기본 제공 또는 사용자 정의 에이전트의 이름5448* **Type**: string, 기본 제공 또는 사용자 정의 에이전트의 이름


5462 5463 

5463이 세션이 [다른 Claude Code 세션에서 도착하는 메시지](/docs/ko/cross-session-messaging#control-inbound-messages)로 수행할 작업을 선택합니다. 적용되는 값이 없으면 Claude Code는 두 세션의 권한 모드 클래스에서 메시지별로 결정합니다. Claude Code v2.1.224 이상이 필요합니다.5464이 세션이 [다른 Claude Code 세션에서 도착하는 메시지](/docs/ko/cross-session-messaging#control-inbound-messages)로 수행할 작업을 선택합니다. 적용되는 값이 없으면 Claude Code는 두 세션의 권한 모드 클래스에서 메시지별로 결정합니다. Claude Code v2.1.224 이상이 필요합니다.

5464 5465 

5465* **Scope**: [`Any file`](#scopes). 프로젝트 또는 로컬 값은 관리되는 설정, `--settings` 플래그 또는 사용자 설정이 제공하는 값보다 더 엄격할 때만 적용됩니다.5466* **Scope**: [`Any file`](#scopes). 프로젝트 또는 로컬 값은 관리형 설정, `--settings` 플래그 또는 사용자 설정이 제공하는 값보다 더 엄격할 때만 적용됩니다.

5466* **Type**: string, 다음 중 하나:5467* **Type**: string, 다음 중 하나:

5467 * `"accept"`: Claude Code가 메시지를 Claude에 전달합니다5468 * `"accept"`: Claude Code가 메시지를 Claude에 전달합니다

5468 * `"hold"`: Claude Code가 메시지를 전달하지 않고 알림을 표시합니다5469 * `"hold"`: Claude Code가 메시지를 전달하지 않고 알림을 표시합니다


5475}5476}

5476```5477```

5477 5478 

5478Claude Code는 관리되는 설정을 먼저 읽은 다음 `--settings` 플래그, 그 다음 사용자 설정을 읽고 찾은 첫 번째 값을 적용합니다. `refuse`는 `hold`보다 더 엄격하고, `hold`는 `accept`보다 더 엄격합니다. 신뢰할 수 있는 소스 중 어느 것도 값을 설정하지 않으면 프로젝트 또는 로컬 `hold` 또는 `refuse`가 여전히 적용되어 메시지별 기본값을 대체합니다. 세션 간 메시징이 있는 세션에서 이 키는 `/config`에 **다른 세션의 메시지**로 나타나며, 이는 사용자 설정에 기록됩니다. 행에는 Claude Code v2.1.232 이상이 필요하며, Claude Code는 `--settings` 플래그 또는 관리되는 설정이 키를 설정하는 동안 이를 숨깁니다.5479Claude Code는 관리형 설정을 먼저 읽은 다음 `--settings` 플래그, 그 다음 사용자 설정을 읽고 찾은 첫 번째 값을 적용합니다. `refuse`는 `hold`보다 더 엄격하고, `hold`는 `accept`보다 더 엄격합니다. 신뢰할 수 있는 소스 중 어느 것도 값을 설정하지 않으면 프로젝트 또는 로컬 `hold` 또는 `refuse`가 여전히 적용되어 메시지별 기본값을 대체합니다. 세션 간 메시징이 있는 세션에서 이 키는 `/config`에 **다른 세션의 메시지**로 나타나며, 이는 사용자 설정에 기록됩니다. 행에는 Claude Code v2.1.232 이상이 필요하며, Claude Code는 `--settings` 플래그 또는 관리형 설정이 키를 설정하는 동안 이를 숨깁니다.

5479 5480 

5480Claude Code는 인식하지 못하는 값을 설정할 때 [경고](/docs/ko/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse)합니다. 해당 값이 사용자, 프로젝트, 로컬 또는 `--settings` 파일에 있는 동안 Claude Code는 인바운드 메시지를 보류합니다. 우선 순위를 갖는 소스가 `accept`를 설정하더라도 마찬가지입니다. 다른 소스가 설정한 `refuse`는 여전히 적용됩니다. 값을 수정하거나 제거하여 보류를 해제합니다.5481Claude Code는 인식하지 못하는 값을 설정할 때 [경고](/docs/ko/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse)합니다. 해당 값이 사용자, 프로젝트, 로컬 또는 `--settings` 파일에 있는 동안 Claude Code는 인바운드 메시지를 보류합니다. 우선순위를 갖는 소스가 `accept`를 설정하더라도 마찬가지입니다. 다른 소스가 설정한 `refuse`는 여전히 적용됩니다. 값을 수정하거나 제거하여 보류를 해제합니다.

5481 5482 

5482인식하지 못하는 값이 [관리되는 설정](/docs/ko/managed-settings)에 있으면 Claude Code는 대신 관리자가 수정할 때까지 이를 `refuse`로 처리합니다. v2.1.248 이전에는 Claude Code가 경고 없이 인식하지 못하는 값을 무시했습니다.5483인식하지 못하는 값이 [관리형 설정](/docs/ko/managed-settings)에 있으면 Claude Code는 대신 관리자가 수정할 때까지 이를 `refuse`로 처리합니다. v2.1.248 이전에는 Claude Code가 경고 없이 인식하지 못하는 값을 무시했습니다.

5483 5484 

5484<h3 id="disableagentview">5485<h3 id="disableagentview">

5485 `disableAgentView`5486 `disableAgentView`

5486</h3>5487</h3>

5487 5488 

5488[배경 에이전트 및 에이전트 보기](/docs/ko/agent-view)를 끕니다: `claude agents`, `--bg`, `/background` 및 온디맨드 감독자. [관리되는 설정](/docs/ko/managed-settings)에서 설정하여 조직에 대해 적용합니다.5489[배경 에이전트 및 에이전트 보기](/docs/ko/agent-view)를 끕니다: `claude agents`, `--bg`, `/background` 및 온디맨드 감독자. [관리형 설정](/docs/ko/managed-settings)에서 설정하여 조직에 대해 적용합니다.

5489 5490 

5490* **Scope**: [`Any file`](#scopes)5491* **Scope**: [`Any file`](#scopes)

5491* **Type**: Boolean5492* **Type**: Boolean


5566 `worktree`5567 `worktree`

5567</h3>5568</h3>

5568 5569 

5569Claude Code가 `--worktree`, `EnterWorktree` 도구 및 격리된 subagents 및 배경 세션에 대해 [git worktrees](/docs/ko/worktrees)를 생성하고 관리하는 방식을 구성합니다.5570Claude Code가 `--worktree`, `EnterWorktree` 도구 및 격리된 서브에이전트 및 배경 세션에 대해 [git worktrees](/docs/ko/worktrees)를 생성하고 관리하는 방식을 구성합니다.

5570 5571 

5571* **Scope**: [`Any file`](#scopes)5572* **Scope**: [`Any file`](#scopes)

5572* **Type**: `baseRef`, `symlinkDirectories`, `sparsePaths` 및 `bgIsolation`을 포함하는 객체5573* **Type**: `baseRef`, `symlinkDirectories`, `sparsePaths` 및 `bgIsolation`을 포함하는 객체

5573* **Default**: 설정되지 않음5574* **Default**: 설정되지 않음

5574 5575 

5575이 예제는 현재 `HEAD`에서 새 worktrees를 분기하고 각 worktree에 `node_modules`를 심링크합니다:5576이 예제는 현재 `HEAD`에서 새 worktree의 브랜치를 만들고 각 worktree에 `node_modules`의 심볼릭 링크를 만듭니다:

5576 5577 

5577```json settings.json theme={null}5578```json settings.json theme={null}

5578{5579{


5589 `worktree.baseRef`5590 `worktree.baseRef`

5590</h3>5591</h3>

5591 5592 

5592새 worktrees가 분기할 ref를 선택합니다. `"fresh"`는 원격과 일치하는 깨끗한 트리를 위해 `origin/<default-branch>`에서 분기합니다. `"head"`는 현재 로컬 `HEAD`에서 분기하므로 푸시되지 않은 커밋 및 기능 분기 상태가 worktree에 있습니다.5593새 worktree의 브랜치가 시작될 ref를 선택합니다. `"fresh"`는 원격과 일치하는 깨끗한 트리를 위해 `origin/<default-branch>`에서 브랜치를 만듭니다. `"head"`는 현재 로컬 `HEAD`에서 브랜치를 만들므로 푸시되지 않은 커밋 및 기능 브랜치 상태가 worktree에 있습니다.

5593 5594 

5594* **Scope**: [`Any file`](#scopes)5595* **Scope**: [`Any file`](#scopes)

5595* **Type**: string, 다음 중 하나:5596* **Type**: string, 다음 중 하나:

5596 * `"fresh"`: 새 worktrees는 `origin/<default-branch>`에서 분기합니다5597 * `"fresh"`: 새 worktree는 `origin/<default-branch>`에서 브랜치를 만듭니다

5597 * `"head"`: 새 worktrees는 푸시되지 않은 커밋을 포함하여 현재 로컬 `HEAD`에서 분기합니다5598 * `"head"`: 새 worktree는 푸시되지 않은 커밋을 포함하여 현재 로컬 `HEAD`에서 브랜치를 만듭니다

5598* **Default**: `"fresh"`5599* **Default**: `"fresh"`

5599 5600 

5600```json settings.json theme={null}5601```json settings.json theme={null}


5611 `worktree.symlinkDirectories`5612 `worktree.symlinkDirectories`

5612</h3>5613</h3>

5613 5614 

5614메인 리포지토리의 디렉토리를 각 worktree에 심링크하여 디스크에 큰 디렉토리를 복제하지 않습니다.5615메인 저장소의 디렉터리를 각 worktree에 심볼릭 링크로 연결하여 디스크에 큰 디렉터리를 복제하지 않습니다.

5615 5616 

5616* **Scope**: [`Any file`](#scopes)5617* **Scope**: [`Any file`](#scopes)

5617* **Type**: 문자열 배열, 리포지토리 루트에 상대적인 디렉토리 경로5618* **Type**: 문자열 배열, 저장소 루트에 상대적인 디렉터리 경로

5618* **Default**: 설정되지 않음. Claude Code는 디렉토리를 심링크하지 않습니다5619* **Default**: 설정되지 않음. Claude Code는 디렉터리를 심볼릭 링크로 연결하지 않습니다

5619 5620 

5620이 예제는 메인 리포지토리의 `node_modules` 및 `.cache`를 모든 새 worktree에 심링크합니다:5621이 예제는 메인 저장소의 `node_modules` 및 `.cache`를 모든 새 worktree에 심볼릭 링크로 연결합니다:

5621 5622 

5622```json settings.json theme={null}5623```json settings.json theme={null}

5623{5624{


5631 `worktree.sparsePaths`5632 `worktree.sparsePaths`

5632</h3>5633</h3>

5633 5634 

5634git sparse-checkout를 통해 각 worktree에서 나열된 디렉토리만 체크아웃합니다. Claude Code는 해당 디렉토리와 루트 수준 파일만 디스크에 기록하므로 대규모 monorepos에서 더 빠릅니다. [필요한 디렉토리만 체크아웃](/docs/ko/large-codebases#check-out-only-the-directories-you-need)을 참조하세요.5635git sparse-checkout를 통해 각 worktree에서 나열된 디렉터리만 체크아웃합니다. Claude Code는 해당 디렉터리와 루트 수준 파일만 디스크에 기록하므로 대규모 monorepos에서 더 빠릅니다. [필요한 디렉터리만 체크아웃](/docs/ko/large-codebases#check-out-only-the-directories-you-need)을 참조하세요.

5635 5636 

5636* **Scope**: [`Any file`](#scopes)5637* **Scope**: [`Any file`](#scopes)

5637* **Type**: 문자열 배열, 리포지토리 루트에 상대적인 디렉토리 경로5638* **Type**: 문자열 배열, 저장소 루트에 상대적인 디렉터리 경로

5638* **Default**: 설정되지 않음. 각 worktree는 전체 트리를 체크아웃합니다5639* **Default**: 설정되지 않음. 각 worktree는 전체 트리를 체크아웃합니다

5639 5640 

5640이 예제는 각 worktree에서 `packages/my-app` 및 `shared/utils`와 루트 수준 파일만 체크아웃합니다:5641이 예제는 각 worktree에서 `packages/my-app` 및 `shared/utils`와 루트 수준 파일만 체크아웃합니다:


5647}5648}

5648```5649```

5649 5650 

5650sparse worktree가 존재하는 동안 git은 리포지토리의 공유 `.git/config`에서 `extensions.worktreeConfig`를 활성화합니다.5651sparse worktree가 존재하는 동안 git은 저장소의 공유 `.git/config`에서 `extensions.worktreeConfig`를 활성화합니다.

5651 5652 

5652<h3 id="worktree-bgisolation">5653<h3 id="worktree-bgisolation">

5653 `worktree.bgIsolation`5654 `worktree.bgIsolation`

5654</h3>5655</h3>

5655 5656 

5656[배경 세션](/docs/ko/agent-view#how-file-edits-are-isolated)이 파일 편집을 격리하는 방식을 선택합니다. `"worktree"`를 사용하면 Claude Code는 세션이 `EnterWorktree`를 호출할 때까지 메인 체크아웃에서 `Edit` 및 `Write`를 차단합니다. `"none"`을 사용하면 배경 작업이 작업 복사본을 직접 편집합니다. git worktrees가 비실용적인 리포지토리의 경우 `"none"`을 설정합니다.5657[배경 세션](/docs/ko/agent-view#how-file-edits-are-isolated)이 파일 편집을 격리하는 방식을 선택합니다. `←` 또는 `/background`로 세션을 배경으로 옮긴 경우, 해당 세션은 이 키의 값과 관계없이 파일을 제자리에서 편집합니다. `"worktree"`를 사용하면 Claude Code는 세션이 `EnterWorktree`를 호출할 때까지 메인 체크아웃에서 `Edit` 및 `Write`를 차단합니다. `"none"`을 사용하면 배경 작업이 작업 복사본을 직접 편집합니다. git worktrees가 비실용적인 저장소의 경우 `"none"`을 설정합니다.

5657 5658 

5658* **Scope**: [`Any file`](#scopes)5659* **Scope**: [`Any file`](#scopes)

5659* **Type**: string, 다음 중 하나:5660* **Type**: string, 다음 중 하나:


5669}5670}

5670```5671```

5671 5672 

5672git 리포지토리 외부에서 실패하는 [`WorktreeCreate` 훅](/docs/ko/worktrees#non-git-version-control)은 블록을 해제하여 세션이 작업 디렉토리를 제자리에서 편집할 수 있도록 합니다. 해당 해제에는 Claude Code v2.1.203 이상이 필요합니다.5673git 저장소 외부에서 실패하는 [`WorktreeCreate` 훅](/docs/ko/worktrees#non-git-version-control)은 차단을 해제하여 세션이 작업 디렉터리를 제자리에서 편집할 수 있도록 합니다. 해당 해제에는 Claude Code v2.1.203 이상이 필요합니다.

5673 5674 

5674<h2 id="remote-desktop-and-notifications">5675<h2 id="remote-desktop-and-notifications">

5675 원격, 데스크톱 및 알림5676 원격, 데스크톱 및 알림

setup.md +5 −5

Details

45 <Tab title="기본 설치 (권장)">45 <Tab title="기본 설치 (권장)">

46 **macOS, Linux, WSL:**46 **macOS, Linux, WSL:**

47 47 

48 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}48 ```bash theme={null}

49 curl -fsSL https://claude.ai/install.sh | bash49 curl -fsSL https://claude.ai/install.sh | bash

50 ```50 ```

51 51 

52 **Windows PowerShell:**52 **Windows PowerShell:**

53 53 

54 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}54 ```powershell theme={null}

55 irm https://claude.ai/install.ps1 | iex55 irm https://claude.ai/install.ps1 | iex

56 ```56 ```

57 57 

58 **Windows CMD:**58 **Windows CMD:**

59 59 

60 ```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}60 ```batch theme={null}

61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

62 ```62 ```

63 63 


75 </Tab>75 </Tab>

76 76 

77 <Tab title="Homebrew">77 <Tab title="Homebrew">

78 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}78 ```bash theme={null}

79 brew install --cask claude-code79 brew install --cask claude-code

80 ```80 ```

81 81 


87 </Tab>87 </Tab>

88 88 

89 <Tab title="WinGet">89 <Tab title="WinGet">

90 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}90 ```powershell theme={null}

91 winget install Anthropic.ClaudeCode91 winget install Anthropic.ClaudeCode

92 ```92 ```

93 93 

skills.md +5 −4

Details

198 이름이 같은 스킬 해결198 이름이 같은 스킬 해결

199</h3>199</h3>

200 200 

201두 스킬이 같은 디렉터리 이름이나 파일 이름을 공유할 때 각각이 어디에서 왔는지에 따라 `/name`이 실행하는 스킬이 결정됩니다. frontmatter `name` 필드로 설정된 이름의 경우 [스킬이 명령 이름을 얻는 방법](#how-a-skill-gets-its-command-name)을 참조하세요. 표는 enterprise, personal, project, nested, plugin 및 claude.ai 위치, 번들 스킬 및 명령 파일을 다룹니다:201두 스킬이 같은 디렉터리 이름이나 파일 이름을 공유할 때 각각이 어디에서 왔는지에 따라 `/name`이 실행하는 스킬이 결정됩니다. frontmatter `name` 필드로 설정된 이름의 경우 [스킬이 명령 이름을 얻는 방법](#how-a-skill-gets-its-command-name)을 참조하세요. 표는 enterprise, personal, project, nested, plugin 및 claude.ai 위치, 번들 스킬, 기본 제공 명령 및 명령 파일을 다룹니다:

202 202 

203| 같은 이름 위치 | 실행되는 스킬 |203| 같은 이름 위치 | 실행되는 스킬 |

204| :- | :- |204| :- | :- |

205| Enterprise, personal 및 project 중 두 개 | Enterprise가 personal보다 우선하고 personal이 project보다 우선합니다. `~/.claude/skills/`와 프로젝트의 `.claude/skills/` 모두에 `deploy`가 있으면 `/deploy`는 personal 스킬을 실행합니다 |205| Enterprise, personal 및 project 중 두 개 | Enterprise가 personal보다 우선하고 personal이 project보다 우선합니다. `~/.claude/skills/`와 프로젝트의 `.claude/skills/` 모두에 `deploy`가 있으면 `/deploy`는 personal 스킬을 실행합니다 |

206| 해당 위치 중 하나와 [번들 스킬](#bundled-skills) | 사용자 스킬이 번들 명령을 대체하지만 별칭은 대체하지 않습니다. 프로젝트 `code-review` 스킬은 `/code-review`를 대체하고 번들 별칭 `/review`는 사용자 스킬을 실행하지 않습니다 |206| 해당 위치 중 하나와 [번들 스킬](#bundled-skills) | 사용자 스킬이 번들 명령을 대체하지만 별칭은 대체하지 않습니다. 프로젝트 `code-review` 스킬은 `/code-review`를 대체하고 번들 별칭 `/review`는 사용자 스킬을 실행하지 않습니다 |

207| 해당 위치 중 하나와 [기본 제공 명령](/docs/ko/commands) | 로컬 터미널 세션에서는 사용자 스킬이 기본 제공 명령을 대체하지만 별칭은 대체하지 않습니다. 프로젝트 `usage` 스킬은 `/usage`를 대체하고 기본 제공 별칭 `/cost`는 여전히 기본 제공 명령을 실행합니다 |

207| 스킬과 `.claude/commands/`의 파일 | 스킬 |208| 스킬과 `.claude/commands/`의 파일 | 스킬 |

208| 프로젝트 루트 스킬과 중첩된 스킬 | 둘 다 로드됩니다. [모노레포 및 하위 디렉터리](#discovery-from-parent-and-nested-directories) 참조 |209| 프로젝트 루트 스킬과 중첩된 스킬 | 둘 다 로드됩니다. [모노레포 및 하위 디렉터리](#discovery-from-parent-and-nested-directories) 참조 |

209| 플러그인 스킬과 위의 위치 중 하나의 스킬 | 플러그인 스킬이 `/plugin-name:skill-name`으로 네임스페이스되기 때문에 둘 다 로드됩니다 |210| 플러그인 스킬과 위의 위치 중 하나의 스킬 | 플러그인 스킬이 `/plugin-name:skill-name`으로 네임스페이스되기 때문에 둘 다 로드됩니다 |


416| `allowed-tools` | 아니요 | 이 스킬을 호출하는 턴 중에 Claude가 권한을 요청하지 않고 사용할 수 있는 도구입니다. 다음 메시지를 보낼 때 권한이 해제됩니다. 공백 또는 쉼표로 구분된 문자열 또는 YAML 목록을 허용합니다. [스킬에 대한 도구 사전 승인](#pre-approve-tools-for-a-skill)을 참조하세요. |417| `allowed-tools` | 아니요 | 이 스킬을 호출하는 턴 중에 Claude가 권한을 요청하지 않고 사용할 수 있는 도구입니다. 다음 메시지를 보낼 때 권한이 해제됩니다. 공백 또는 쉼표로 구분된 문자열 또는 YAML 목록을 허용합니다. [스킬에 대한 도구 사전 승인](#pre-approve-tools-for-a-skill)을 참조하세요. |

417| `disallowed-tools` | 아니요 | 이 스킬이 활성화되는 동안 Claude의 사용 가능한 도구 풀에서 제거되는 도구입니다. 백그라운드 루프에서의 `AskUserQuestion`처럼 특정 도구를 호출하지 않아야 하는 자율 스킬에 사용합니다. 공백 또는 쉼표로 구분된 문자열 또는 YAML 목록을 허용합니다. 다음 메시지를 보낼 때 제한이 해제됩니다. 거부 규칙과 마찬가지로 다른 도구가 남아 있는 동안 이 필드는 [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)을 제거할 수 없습니다. |418| `disallowed-tools` | 아니요 | 이 스킬이 활성화되는 동안 Claude의 사용 가능한 도구 풀에서 제거되는 도구입니다. 백그라운드 루프에서의 `AskUserQuestion`처럼 특정 도구를 호출하지 않아야 하는 자율 스킬에 사용합니다. 공백 또는 쉼표로 구분된 문자열 또는 YAML 목록을 허용합니다. 다음 메시지를 보낼 때 제한이 해제됩니다. 거부 규칙과 마찬가지로 다른 도구가 남아 있는 동안 이 필드는 [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)을 제거할 수 없습니다. |

418| `model` | 아니요 | 이 스킬이 활성화될 때 사용할 모델입니다. 재정의는 현재 턴의 나머지 부분에 적용되며 설정에 저장되지 않습니다. 다음 프롬프트를 보낼 때 세션 모델이 재개됩니다. [`/model`](/docs/ko/model-config)과 동일한 값을 허용하거나 활성 모델을 유지하려면 `inherit`을 허용합니다. 조직의 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 허용 목록에서 제외된 값은 사용되지 않으며 세션은 현재 모델을 유지합니다. [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서, 그리고 [분류기가 명령을 검토하는 동안 플랜 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)에서 자동 모드가 지원하지 않는 모델도 사용되지 않으며 세션은 현재 모델을 유지합니다. `context: fork`를 사용하면 값이 [포크된 서브에이전트의 모델](#run-skills-in-a-subagent)을 설정하고 제외된 값은 [서브에이전트 모델 재정의와 동일한 규칙을 따릅니다](/docs/ko/model-config#restrict-model-selection). |419| `model` | 아니요 | 이 스킬이 활성화될 때 사용할 모델입니다. 재정의는 현재 턴의 나머지 부분에 적용되며 설정에 저장되지 않습니다. 다음 프롬프트를 보낼 때 세션 모델이 재개됩니다. [`/model`](/docs/ko/model-config)과 동일한 값을 허용하거나 활성 모델을 유지하려면 `inherit`을 허용합니다. 조직의 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 허용 목록에서 제외된 값은 사용되지 않으며 세션은 현재 모델을 유지합니다. [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서, 그리고 [분류기가 명령을 검토하는 동안 플랜 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)에서 자동 모드가 지원하지 않는 모델도 사용되지 않으며 세션은 현재 모델을 유지합니다. `context: fork`를 사용하면 값이 [포크된 서브에이전트의 모델](#run-skills-in-a-subagent)을 설정하고 제외된 값은 [서브에이전트 모델 재정의와 동일한 규칙을 따릅니다](/docs/ko/model-config#restrict-model-selection). |

419| `effort` | 아니요 | 이 스킬이 활성화될 때의 [effort 수준](/docs/ko/model-config#adjust-effort-level)입니다. 세션 effort 수준을 재정의합니다. 기본값: 세션에서 상속됩니다. 옵션: `low`, `medium`, `high`, `xhigh`, `max`. 사용 가능한 수준은 모델에 따라 다릅니다. |420| `effort` | 아니요 | 이 스킬이 활성화될 때의 [effort 수준](/docs/ko/model-config#adjust-effort-level)입니다. 세션 effort 수준을 재정의합니다. 생략하면 [effort 결정 순서](/docs/ko/model-config#adjust-effort-level)에 따라 수준이 정해집니다. 옵션: `low`, `medium`, `high`, `xhigh`, `max`. 사용 가능한 수준은 모델에 따라 다릅니다. |

420| `context` | 아니요 | 포크된 서브에이전트 컨텍스트에서 실행하려면 `fork`로 설정합니다. [서브에이전트에서 스킬 실행](#run-skills-in-a-subagent)을 참조하세요. |421| `context` | 아니요 | 포크된 서브에이전트 컨텍스트에서 실행하려면 `fork`로 설정합니다. [서브에이전트에서 스킬 실행](#run-skills-in-a-subagent)을 참조하세요. |

421| `agent` | 아니요 | `context: fork`가 설정되었을 때 사용할 서브에이전트 유형입니다. |422| `agent` | 아니요 | `context: fork`가 설정되었을 때 사용할 서브에이전트 유형입니다. |

422| `background` | 아니요 | `context: fork`에만 적용됩니다. [백그라운드에서 실행](#run-skills-in-a-subagent)하는 대신 스킬을 호출한 턴에서 포크된 서브에이전트의 결과를 기다리려면 `false`로 설정합니다. 기본값: `true`. Claude Code v2.1.218 이상이 필요합니다. |423| `background` | 아니요 | `context: fork`에만 적용됩니다. [백그라운드에서 실행](#run-skills-in-a-subagent)하는 대신 스킬을 호출한 턴에서 포크된 서브에이전트의 결과를 기다리려면 `false`로 설정합니다. 기본값: `true`. Claude Code v2.1.218 이상이 필요합니다. |


664 665 

665인수와 함께 스킬을 호출했지만 스킬의 콘텐츠에서 인수를 받는 플레이스홀더가 없으면 Claude Code는 `ARGUMENTS: <your input>`을 스킬 콘텐츠 끝에 추가하므로 Claude는 여전히 입력한 내용을 봅니다. 플레이스홀더는 `$ARGUMENTS`, `$1`과 같은 인덱싱된 형식 또는 명명된 인수입니다. 위치에 인수가 없는 인덱싱된 플레이스홀더는 리터럴 텍스트로 유지되며 인수를 받은 것으로 계산되지 않습니다. 명명된 플레이스홀더는 위치에 인수가 없어도 계산됩니다. 빈 문자열로 확장되기 때문입니다.666인수와 함께 스킬을 호출했지만 스킬의 콘텐츠에서 인수를 받는 플레이스홀더가 없으면 Claude Code는 `ARGUMENTS: <your input>`을 스킬 콘텐츠 끝에 추가하므로 Claude는 여전히 입력한 내용을 봅니다. 플레이스홀더는 `$ARGUMENTS`, `$1`과 같은 인덱싱된 형식 또는 명명된 인수입니다. 위치에 인수가 없는 인덱싱된 플레이스홀더는 리터럴 텍스트로 유지되며 인수를 받은 것으로 계산되지 않습니다. 명명된 플레이스홀더는 위치에 인수가 없어도 계산됩니다. 빈 문자열로 확장되기 때문입니다.

666 667 

667한 메시지의 시작 부분에 여러 스킬을 스택할 수도 있습니다. `/write-tests /fix-issue 123`을 입력하면 두 스킬이 모두 로드되고 후행 텍스트 `123`이 각각에 `$ARGUMENTS`로 전달됩니다. v2.1.199 이전에는 첫 번째 스킬만 로드되고 `/fix-issue 123`을 리터럴 인수 텍스트로 받았습니다.668한 메시지의 시작 부분에 여러 스킬을 스택할 수도 있습니다. `/write-tests /fix-issue 123`을 입력하면 두 스킬이 모두 로드되고 후행 텍스트 `123`이 각각에 `$ARGUMENTS`로 전달됩니다.

668 669 

669Claude Code는 첫 번째 스킬과 그 뒤에 스택된 최대 5개를 확장합니다. 확장은 인라인 사용자 호출 가능 스킬이 아닌 첫 번째 토큰에서 중지되므로 [포크된 서브에이전트](#run-skills-in-a-subagent)로 실행되는 스킬(예: [`/code-review`](/docs/ko/code-review#review-a-diff-locally)) 또는 인수 자체가 슬래시 명령으로 시작할 수 있는 스킬(예: `/loop`)도 거기서 끝납니다. 해당 토큰 및 그 뒤의 모든 것이 확장된 모든 스킬의 인수 텍스트가 됩니다. v2.1.218부터 `/code-review`는 포크된 서브에이전트로 실행됩니다. 이전 버전에서는 인라인으로 실행되고 스택되었습니다.670Claude Code는 첫 번째 스킬과 그 뒤에 스택된 최대 5개를 확장합니다. 확장은 인라인 사용자 호출 가능 스킬이 아닌 첫 번째 토큰에서 중지되므로 [포크된 서브에이전트](#run-skills-in-a-subagent)로 실행되는 스킬(예: [`/code-review`](/docs/ko/code-review#review-a-diff-locally)) 또는 인수 자체가 슬래시 명령으로 시작할 수 있는 스킬(예: `/loop`)도 거기서 끝납니다. 해당 토큰 및 그 뒤의 모든 것이 확장된 모든 스킬의 인수 텍스트가 됩니다. v2.1.218부터 `/code-review`는 포크된 서브에이전트로 실행됩니다. 이전 버전에서는 인라인으로 실행되고 스택되었습니다.

670 671 


923 924 

924`/skills` 메뉴는 `"user-invocable-only"` 상태를 `user-only`로 레이블합니다.925`/skills` 메뉴는 `"user-invocable-only"` 상태를 `user-only`로 레이블합니다.

925 926 

926v2.1.199부터 `"off"`는 터미널 `/` 메뉴 외에도 [Remote Control](/docs/ko/remote-control) 클라이언트 및 [Agent SDK](/docs/ko/agent-sdk/skills#discover-available-commands) 호출자에게 광고되는 명령 목록에서 스킬을 숨깁니다. 전체 이름으로 숨겨진 스킬을 호출하면 여전히 실행하는 대신 `skillOverrides` 오류를 반환합니다.927`"off"`는 터미널 `/` 메뉴 외에도 [Remote Control](/docs/ko/remote-control) 클라이언트 및 [Agent SDK](/docs/ko/agent-sdk/skills#discover-available-commands) 호출자에게 광고되는 명령 목록에서도 스킬을 숨깁니다. 전체 이름으로 숨겨진 스킬을 호출하면 실행하는 대신 `skillOverrides` 오류를 반환합니다.

927 928 

928`skillOverrides`에 없는 스킬은 `"on"`으로 취급됩니다. 아래 예제는 한 스킬을 이름으로 축소하고 다른 스킬을 완전히 끕니다:929`skillOverrides`에 없는 스킬은 `"on"`으로 취급됩니다. 아래 예제는 한 스킬을 이름으로 축소하고 다른 스킬을 완전히 끕니다:

929 930 

sub-agents.md +2 −2

Details

986 986 

987무언가가 [서브에이전트의 응답을 스트림 중간에 중단](/docs/ko/errors#the-response-above-may-be-incomplete)하고 부분 응답에 텍스트가 포함되지만 도구 호출이 없으면 Claude Code는 실행을 종료하지 않고 서브에이전트에 계속하도록 프롬프트합니다. 이는 대화형 세션에서도 발생합니다. 실행은 이러한 연속이 소진될 때만 오류에서 종료됩니다.987무언가가 [서브에이전트의 응답을 스트림 중간에 중단](/docs/ko/errors#the-response-above-may-be-incomplete)하고 부분 응답에 텍스트가 포함되지만 도구 호출이 없으면 Claude Code는 실행을 종료하지 않고 서브에이전트에 계속하도록 프롬프트합니다. 이는 대화형 세션에서도 발생합니다. 실행은 이러한 연속이 소진될 때만 오류에서 종료됩니다.

988 988 

989v2.1.199부터 API 오류(예: 사용 한도 또는 반복된 서버 오류)로 인해 실행이 종료되는 서브에이전트는 오류 텍스트를 서브에이전트의 결과인 것처럼 반환하는 대신 해당 실패를 Claude에 다시 보고합니다. Claude가 수신하는 내용은 서브에이전트가 실행된 위치에 따라 다릅니다.989API 오류(예: 사용 한도 또는 반복된 서버 오류)로 인해 실행이 종료되는 서브에이전트는 해당 실패를 Claude에 다시 보고합니다. Claude가 수신하는 내용은 서브에이전트가 실행된 위치에 따라 다릅니다.

990 990 

991* **포그라운드**: 속도 제한, 과부하 또는 서버 오류가 이미 텍스트 출력을 생성한 서브에이전트를 중단하면 Agent 도구는 서브에이전트가 중단되었고 작업을 완료하지 못했다는 메모와 함께 해당 부분 출력을 반환합니다. 아무것도 생성하지 않았거나 유일한 출력이 도구 호출인 서브에이전트는 [`Agent terminated early due to an API error`](/docs/ko/errors#agent-terminated-early-due-to-an-api-error)로 실패하며 오류 세부 정보가 뒤따릅니다. v2.1.199에서 도구 호출 전용 형태를 중단한 속도 제한, 과부하 또는 서버 오류는 중단 메모만 포함하는 빈 부분 결과를 반환했습니다.991* **포그라운드**: 속도 제한, 과부하 또는 서버 오류가 이미 텍스트 출력을 생성한 서브에이전트를 중단하면 Agent 도구는 서브에이전트가 중단되었고 작업을 완료하지 못했다는 메모와 함께 해당 부분 출력을 반환합니다. 아무것도 생성하지 않았거나 유일한 출력이 도구 호출인 서브에이전트는 [`Agent terminated early due to an API error`](/docs/ko/errors#agent-terminated-early-due-to-an-api-error)로 실패하며 오류 세부 정보가 뒤따릅니다. v2.1.199에서 도구 호출 전용 형태를 중단한 속도 제한, 과부하 또는 서버 오류는 중단 메모만 포함하는 빈 부분 결과를 반환했습니다.

992* **백그라운드**: 서브에이전트는 실패로 표시되며 Claude가 종료될 때 수신하는 메시지는 API 오류의 이름을 지정하고 서브에이전트의 마지막 출력을 포함하므로 부분 작업이 손실되지 않습니다.992* **백그라운드**: 서브에이전트는 실패로 표시되며 Claude가 종료될 때 수신하는 메시지는 API 오류의 이름을 지정하고 서브에이전트의 마지막 출력을 포함하므로 부분 작업이 손실되지 않습니다.


1188 1188 

1189재개는 동일한 ID 아래에서 에이전트의 새 실행을 시작하므로 이미 실패했거나 완료된 서브에이전트는 작업 목록 및 Agent SDK의 작업 이벤트에서 다시 실행 중으로 표시됩니다. v2.1.205 이전에는 재개된 실행이 작동하는 동안 이전 실패 또는 완료 상태를 계속 표시했습니다.1189재개는 동일한 ID 아래에서 에이전트의 새 실행을 시작하므로 이미 실패했거나 완료된 서브에이전트는 작업 목록 및 Agent SDK의 작업 이벤트에서 다시 실행 중으로 표시됩니다. v2.1.205 이전에는 재개된 실행이 작동하는 동안 이전 실패 또는 완료 상태를 계속 표시했습니다.

1190 1190 

1191v2.1.199부터 `SendMessage`는 이름이 여전히 대화에서 이전에 도달한 동일한 에이전트를 참조하는지 확인합니다. 더 새로운 에이전트가 이름을 가져간 경우(예: 이름을 재사용한 재생성된 백그라운드 에이전트) Claude Code는 잘못된 에이전트로 전달하지 않고 전송을 거부하며 오류는 이름이 현재 도달하는 에이전트를 보고하므로 Claude가 재대상화할 수 있습니다. 여전히 실행 중인 이전 에이전트에 도달하려면 Claude는 생성할 때 받은 에이전트 ID로 주소를 지정합니다. 확인은 현재 대화로 범위가 지정되고 `/clear`에서 재설정됩니다.1191`SendMessage`는 이름이 여전히 대화에서 이전에 도달한 동일한 에이전트를 참조하는지 확인합니다. 더 새로운 에이전트가 이름을 가져간 경우(예: 이름을 재사용한 재생성된 백그라운드 에이전트) Claude Code는 잘못된 에이전트로 전달하지 않고 전송을 거부하며 오류는 이름이 현재 도달하는 에이전트를 보고하므로 Claude가 재대상화할 수 있습니다. 여전히 실행 중인 이전 에이전트에 도달하려면 Claude는 생성할 때 받은 에이전트 ID로 주소를 지정합니다. 확인은 현재 대화로 범위가 지정되고 `/clear`에서 재설정됩니다.

1192 1192 

1193서브에이전트는 자신을 시작한 에이전트로부터의 메시지를 일반 작업 방향으로 취급하며 작업 중 과정 수정을 포함하고 자신의 권한 설정 내에서 작동합니다. 두 제한은 메시지를 보낸 사람과 관계없이 유지됩니다. 어떤 에이전트의 메시지도 보류 중인 권한 프롬프트에 대한 승인으로 계산되지 않으며 어떤 에이전트 메시지도 서브에이전트의 권한 설정, `CLAUDE.md` 또는 구성을 변경할 수 없습니다. 권한 시스템 또는 자신의 메시지만 승인을 부여할 수 있습니다.1193서브에이전트는 자신을 시작한 에이전트로부터의 메시지를 일반 작업 방향으로 취급하며 작업 중 과정 수정을 포함하고 자신의 권한 설정 내에서 작동합니다. 두 제한은 메시지를 보낸 사람과 관계없이 유지됩니다. 어떤 에이전트의 메시지도 보류 중인 권한 프롬프트에 대한 승인으로 계산되지 않으며 어떤 에이전트 메시지도 서브에이전트의 권한 설정, `CLAUDE.md` 또는 구성을 변경할 수 없습니다. 권한 시스템 또는 자신의 메시지만 승인을 부여할 수 있습니다.

1194 1194 

ultrareview.md +1 −5

Details

134| - | - | - |134| - | - | - |

135| Pro | 3회 무료 실행 | [사용량 크레딧](https://support.claude.com/ko/articles/12429409-extra-usage-for-paid-claude-plans)으로 청구됨 |135| Pro | 3회 무료 실행 | [사용량 크레딧](https://support.claude.com/ko/articles/12429409-extra-usage-for-paid-claude-plans)으로 청구됨 |

136| Max | 3회 무료 실행 | [사용량 크레딧](https://support.claude.com/ko/articles/12429409-extra-usage-for-paid-claude-plans)으로 청구됨 |136| Max | 3회 무료 실행 | [사용량 크레딧](https://support.claude.com/ko/articles/12429409-extra-usage-for-paid-claude-plans)으로 청구됨 |

137| Team 및 Enterprise | 없음 | [사용량 크레딧](https://support.claude.com/ko/articles/12429409-extra-usage-for-paid-claude-plans)으로 청구됨 |

138 137 

139* **무료 실행**: Pro 및 Max의 3회 실행은 계정당 일회성 할당이며 새로 고쳐지지 않습니다.138* **무료 실행**: Pro 및 Max의 3회 실행은 계정당 일회성 할당이며 새로 고쳐지지 않습니다.

140* **리뷰당 비용**: 무료 실행을 모두 사용한 후 일반적으로 변경 사항의 크기에 따라 $5에서 $25의 사용량 크레딧이 소요되며, 각 실행 전에 시작 대화 상자에 표시되는 예상 비용과 일치합니다.139* **리뷰당 비용**: 무료 실행을 모두 사용한 후 일반적으로 변경 사항의 크기에 따라 $5에서 $25의 사용량 크레딧이 소요되며, 각 실행 전에 시작 대화 상자에 표시되는 예상 비용과 일치합니다.

141* **실행이 계산되는 시점**: 클라우드 세션이 시작되면입니다. 조기에 중단하거나 완료되지 않은 리뷰도 무료 실행을 사용합니다. 유료 리뷰의 경우 사용량 크레딧은 실행된 부분에 대해서만 청구됩니다.140* **실행이 계산되는 시점**: 클라우드 세션이 시작되면입니다. 조기에 중단하거나 완료되지 않은 리뷰도 무료 실행을 사용합니다. 유료 리뷰의 경우 사용량 크레딧은 실행된 부분에 대해서만 청구됩니다.

142 141 

143Ultrareview는 항상 무료 실행 외에 사용량 크레딧으로 청구되기 때문에 계정 또는 조직은 유료 리뷰를 시작하기 전에 사용량 크레딧을 활성화해야 합니다. 사용량 크레딧이 활성화되지 않은 경우 Claude Code는 시작을 차단하며, 켤 수 있는 방법은 청구 액세스 권한에 따라 다릅니다.142Ultrareview는 항상 무료 실행 외에 사용량 크레딧으로 청구되기 때문에 계정 또는 조직은 유료 리뷰를 시작하기 전에 사용량 크레딧을 활성화해야 합니다. 사용량 크레딧이 활성화되지 않은 경우 Claude Code는 시작을 차단합니다. 계정의 청구를 관리할 수 있는 경우 Claude Code는 사용량 크레딧을 켤 수 있는 청구 설정으로 연결합니다.

144 

145* 계정의 청구를 관리할 수 있는 경우 Claude Code는 사용량 크레딧을 켤 수 있는 청구 설정으로 연결합니다.

146* Team 및 Enterprise 플랜에서 청구 액세스 권한이 없는 구성원은 CLI에서 관리자에게 사용량 크레딧을 켜도록 요청하는 요청을 보냅니다.

147 143 

148`/usage-credits`를 실행하여 사용량 크레딧 설정을 확인하거나 변경할 수도 있습니다.144`/usage-credits`를 실행하여 사용량 크레딧 설정을 확인하거나 변경할 수도 있습니다.

149 145 

Details

184 184 

185음성 받아쓰기가 활성화되지 않거나 녹음되지 않을 때의 일반적인 문제:185음성 받아쓰기가 활성화되지 않거나 녹음되지 않을 때의 일반적인 문제:

186 186 

187* **`Voice mode requires a Claude.ai account`**: API 키 또는 타사 공급자로 인증되었습니다. `/login`을 실행하여 Claude.ai 계정으로 로그인하세요.187* **`Unknown command: /voice`**: `/voice`는 claude.ai 계정이 활성 로그인인 경우에만 사용할 수 있습니다. claude.ai 계정으로 로그인하지 않은 경우 `/login`을 실행하세요. `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, `apiKeyHelper` 설정 또는 [타사 공급자](#requirements)를 사용 중인 경우 claude.ai 로그인보다 우선 적용되므로, 이를 제거하고 Claude Code를 다시 시작하세요.

188* **`Voice mode requires a Claude.ai account`**: `/voice`를 실행하거나 녹음을 시작할 때 Claude Code가 사용 가능한 claude.ai 로그인을 찾지 못했습니다. `/login`을 실행하여 다시 로그인하세요.

188* **`Voice mode is disabled by your organization's policy`**: 조직의 관리자 정책이 음성 받아쓰기를 비활성화합니다. 조직 관리자에게 연락하여 조직에서 음성 받아쓰기를 사용할 수 있는지 확인하세요.189* **`Voice mode is disabled by your organization's policy`**: 조직의 관리자 정책이 음성 받아쓰기를 비활성화합니다. 조직 관리자에게 연락하여 조직에서 음성 받아쓰기를 사용할 수 있는지 확인하세요.

189* **`Microphone access is denied`**: 시스템 설정에서 터미널에 마이크 권한을 부여하세요. macOS에서는 시스템 설정 → 개인정보 보호 및 보안 → 마이크로 이동하여 터미널 앱을 활성화한 다음 `/voice`를 다시 실행하세요. Windows에서는 설정 → 개인정보 보호 및 보안 → 마이크로 이동하여 데스크톱 앱에 대한 마이크 접근을 켜세요. 그런 다음 `/voice`를 다시 실행하세요. 터미널이 macOS 설정에 나열되지 않으면 [macOS 마이크 설정에 나열되지 않은 터미널](#terminal-not-listed-in-macos-microphone-settings)을 참조하세요.190* **`Microphone access is denied`**: 시스템 설정에서 터미널에 마이크 권한을 부여하세요. macOS에서는 시스템 설정 → 개인정보 보호 및 보안 → 마이크로 이동하여 터미널 앱을 활성화한 다음 `/voice`를 다시 실행하세요. Windows에서는 설정 → 개인정보 보호 및 보안 → 마이크로 이동하여 데스크톱 앱에 대한 마이크 접근을 켜세요. 그런 다음 `/voice`를 다시 실행하세요. 터미널이 macOS 설정에 나열되지 않으면 [macOS 마이크 설정에 나열되지 않은 터미널](#terminal-not-listed-in-macos-microphone-settings)을 참조하세요.

190* **Linux에서 `Voice mode requires SoX for audio recording`**: 네이티브 오디오 모듈을 로드할 수 없고 폴백이 설치되지 않았습니다. 오류 메시지에 표시된 명령으로 SoX를 설치하세요. 예: `sudo apt-get install sox`.191* **Linux에서 `Voice mode requires SoX for audio recording`**: 네이티브 오디오 모듈을 로드할 수 없고 폴백이 설치되지 않았습니다. 오류 메시지에 표시된 명령으로 SoX를 설치하세요. 예: `sudo apt-get install sox`.