SpyBara
Go Premium

Documentation 2026-06-29 23:02 UTC to 2026-06-30 23:02 UTC

78 files changed +3,000 −556. View all changes and history on the product overview
2026
Tue 30 23:02 Mon 29 23:02 Sat 27 01:01 Fri 26 23:00 Thu 25 23:58 Wed 24 22:02 Tue 23 22:00 Mon 22 23:59 Fri 19 22:58 Thu 18 22:00 Wed 17 17:02 Tue 16 21:57 Mon 15 23:02 Sat 13 21:59 Fri 12 22:00 Thu 11 23:01 Wed 10 23:57 Tue 9 06:34 Mon 8 06:52 Sat 6 06:24 Fri 5 06:45 Thu 4 06:52 Wed 3 06:53 Tue 2 06:51

admin-setup.md +12 −10

Details

36| Google Vertex AI | 기존 GCP 규정 준수 제어 및 청구를 상속하려는 경우 |36| Google Vertex AI | 기존 GCP 규정 준수 제어 및 청구를 상속하려는 경우 |

37| Microsoft Foundry | 기존 Azure 규정 준수 제어 및 청구를 상속하려는 경우 |37| Microsoft Foundry | 기존 Azure 규정 준수 제어 및 청구를 상속하려는 경우 |

38 38 

39일부 Claude Code 기능에는 Claude.ai 계정이 필요합니다. [Claude Code on the web](/ko/claude-code-on-the-web), [Routines](/ko/routines), [Code Review](/ko/code-review), [Remote Control](/ko/remote-control) 및 [Chrome extension](/ko/chrome)은 Console API 키 또는 클라우드 제공자 자격증명만으로는 사용할 수 없습니다. Bedrock, Vertex 또는 Foundry를 통해 배포하는 경우 개발자가 Claude for Teams 또는 Enterprise 시트도 필요한지 계획하세요. 각 기능 페이지에는 해당 플랜 요구사항이 나열되어 있습니다.39일부 Claude Code 기능에는 claude.ai 계정이 필요합니다. [Claude Code on the web](/ko/claude-code-on-the-web), [Routines](/ko/routines), [Code Review](/ko/code-review), [Remote Control](/ko/remote-control) 및 [Chrome extension](/ko/chrome)은 Console API 키 또는 클라우드 제공자 자격증명만으로는 사용할 수 없습니다. Bedrock, Vertex 또는 Foundry를 통해 배포하는 경우 개발자가 Claude for Teams 또는 Enterprise 시트도 필요한지 계획하세요. 각 기능 페이지에는 해당 플랜 요구사항이 나열되어 있습니다.

40 40 

41인증, 지역 및 기능 패리티를 다루는 전체 제공자 비교는 [enterprise deployment overview](/ko/third-party-integrations)를 참조하세요. 각 제공자의 인증 설정은 [Authentication](/ko/authentication)에 있습니다.41인증, 지역 및 기능 패리티를 다루는 전체 제공자 비교는 [enterprise deployment overview](/ko/third-party-integrations)를 참조하세요. 각 제공자의 인증 설정은 [Authentication](/ko/authentication)에 있습니다.

42 42 


46 설정이 기기에 도달하는 방식 결정46 설정이 기기에 도달하는 방식 결정

47</h2>47</h2>

48 48 

49관리 설정은 로컬 개발자 구성보다 우선하는 정책을 정의합니다. Claude Code는 아래의 네 가지 소스를 우선순위 순서대로 확인하고 비어 있지 않은 구성을 반환하는 첫 번째 소스를 적용합니다.49관리 설정은 로컬 개발자 구성보다 우선하는 정책을 정의합니다. Claude Code는 아래의 네 가지 소스를 우선순위 순서대로 확인하고 비어 있지 않은 구성을 반환하는 첫 번째 소스를 적용합니다. 단, 한 가지 예외가 있습니다. 샌드박스 허용 목록 잠금과 같은 [교차 소스 잠금 키](/ko/settings#settings-precedence)의 작은 집합은 관리자 제어 소스가 설정할 때 존중됩니다.

50 50 

51| 메커니즘 | 전달 | 우선순위 | 플랫폼 |51| 메커니즘 | 전달 | 우선순위 | 플랫폼 |

52| :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--- | :------------- |52| :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--- | :------------- |

53| Server-managed | Claude.ai 관리자 콘솔 | 최고 | 모두 |53| Server-managed | claude.ai 관리자 콘솔 또는 게이트웨이 로그인을 위한 자체 호스팅 [Claude apps gateway](/ko/claude-apps-gateway) | 최고 | 모두 |

54| plist / registry policy | macOS: `com.anthropic.claudecode` plist<br />Windows: `HKLM\SOFTWARE\Policies\ClaudeCode` | 높음 | macOS, Windows |54| plist / registry policy | macOS: `com.anthropic.claudecode` plist<br />Windows: `HKLM\SOFTWARE\Policies\ClaudeCode` | 높음 | macOS, Windows |

55| File-based managed | macOS: `/Library/Application Support/ClaudeCode/managed-settings.json`<br />Linux and WSL: `/etc/claude-code/managed-settings.json`<br />Windows: `C:\Program Files\ClaudeCode\managed-settings.json` | 중간 | 모두 |55| File-based managed | macOS: `/Library/Application Support/ClaudeCode/managed-settings.json`<br />Linux and WSL: `/etc/claude-code/managed-settings.json`<br />Windows: `C:\Program Files\ClaudeCode\managed-settings.json` | 중간 | 모두 |

56| Windows user registry | `HKCU\SOFTWARE\Policies\ClaudeCode` | 최저 | Windows만 |56| Windows user registry | `HKCU\SOFTWARE\Policies\ClaudeCode` | 최저 | Windows만 |

57 57 

58Server-managed 설정은 인증 시 기기에 도달하고 활성 세션 중에 매시간 새로 고쳐지며 엔드포인트 인프라가 필요하지 않습니다. Claude for Teams 또는 Enterprise 플랜이 필요하므로 다른 제공자의 배포는 대신 파일 기반 또는 OS 수준 메커니즘 하나가 필요합니다.58구성된 [`policyHelper`](/ko/settings#compute-managed-settings-with-a-policy-helper)는 가지 소스 모두를 선점합니다. 해당 출력이 실행을 위한 유일한 관리 구성이 됩니다. [설정 우선순위](/ko/settings#settings-precedence)를 참조하세요.

59 59 

60조직이 제공자를 혼합하는 경우 Claude.ai 사용자를 위해 [server-managed settings](/ko/server-managed-settings)를 구성하고 다른 사용자도 관리 정책을 받을 수 있도록 [file-based or plist/registry fallback](/ko/settings#settings-files)을 구성하세요.60Server-managed 설정은 인증 기기에 도달하고 활성 세션 중에 매시간 새로 고쳐지며 엔드포인트 인프라가 필요하지 않습니다. claude.ai 관리자 콘솔을 통한 전달에는 Claude for Teams 또는 Enterprise 플랜이 필요합니다. Bedrock, Vertex AI 또는 Foundry의 배포는 [Claude apps gateway](/ko/claude-apps-gateway)를 실행하여 동일한 원격 전달을 받을 수 있거나, 대신 파일 기반 또는 OS 수준 메커니즘 중 하나를 사용할 수 있습니다.

61 

62조직이 제공자를 혼합하는 경우 claude.ai 사용자를 위해 [server-managed settings](/ko/server-managed-settings)를 구성하고 다른 사용자도 관리 정책을 받을 수 있도록 [file-based or plist/registry fallback](/ko/settings#settings-files)을 구성하세요.

61 63 

62plist 및 HKLM 레지스트리 위치는 모든 제공자와 함께 작동하며 관리자 권한이 필요하므로 변조에 저항합니다. HKCU의 Windows 사용자 레지스트리는 상승 권한 없이 쓸 수 있으므로 시행 채널이 아닌 편의 기본값으로 취급하세요.64plist 및 HKLM 레지스트리 위치는 모든 제공자와 함께 작동하며 관리자 권한이 필요하므로 변조에 저항합니다. HKCU의 Windows 사용자 레지스트리는 상승 권한 없이 쓸 수 있으므로 시행 채널이 아닌 편의 기본값으로 취급하세요.

63 65 

64기본적으로 WSL은 `/etc/claude-code`의 Linux 파일 경로만 읽습니다. Windows 레지스트리 및 `C:\Program Files\ClaudeCode` 정책을 같은 머신의 WSL로 확장하려면 관리자 전용 Windows 소스 중 하나에서 [`wslInheritsWindowsSettings: true`](/ko/settings#available-settings)를 설정하세요.66기본적으로 WSL은 `/etc/claude-code`의 Linux 파일 경로만 읽습니다. Windows 레지스트리 및 `C:\Program Files\ClaudeCode` 정책을 같은 머신의 WSL로 확장하려면 관리자 전용 Windows 소스 중 하나에서 [`wslInheritsWindowsSettings: true`](/ko/settings#available-settings)를 설정하세요.

65 67 

66선택한 메커니즘이 무엇이든 관리 값은 사용자 및 프로젝트 설정보다 우선합니다. `permissions.allow` 및 `permissions.deny`와 같은 배열 설정은 모든 소스의 항목을 병합하므로 개발자는 관리 목록을 확장할 수 있지만 제거할 수는 없습니다. [두 가지 예외](/ko/settings#settings-precedence)가 있습니다. 여기서 관리 값은 병합하지 않고 하위 계층을 대체합니다: `fallbackModel` `availableModels`.68선택한 메커니즘이 무엇이든 관리 값은 사용자 및 프로젝트 설정보다 우선합니다. `permissions.allow` 및 `permissions.deny`와 같은 배열 설정은 모든 소스의 항목을 병합하므로 개발자는 관리 목록을 확장할 수 있지만 제거할 수는 없습니다. [두 가지 예외](/ko/settings#settings-precedence)가 있습니다. `fallbackModel` `availableModels`의 경우 관리 값은 하위 계층을 병합하지 않고 대체합니다.

67 69 

68[Server-managed settings](/ko/server-managed-settings) 및 [Settings files and precedence](/ko/settings#settings-files)를 참조하세요.70[Server-managed settings](/ko/server-managed-settings) 및 [Settings files and precedence](/ko/settings#settings-files)를 참조하세요.

69 71 


80| [Sandboxing](/ko/sandboxing) | 도메인 허용 목록이 있는 OS 수준 파일 시스템 및 네트워크 격리 | `sandbox.enabled`, `sandbox.network.allowedDomains` |82| [Sandboxing](/ko/sandboxing) | 도메인 허용 목록이 있는 OS 수준 파일 시스템 및 네트워크 격리 | `sandbox.enabled`, `sandbox.network.allowedDomains` |

81| [Managed policy CLAUDE.md](/ko/memory#deploy-organization-wide-claude-md) | 모든 세션에서 로드되는 조직 전체 지침, 제외할 수 없음 | 관리 정책 경로의 파일 |83| [Managed policy CLAUDE.md](/ko/memory#deploy-organization-wide-claude-md) | 모든 세션에서 로드되는 조직 전체 지침, 제외할 수 없음 | 관리 정책 경로의 파일 |

82| [MCP server control](/ko/managed-mcp) | 사용자가 추가하거나 연결할 수 있는 MCP 서버 제한, 또는 고정된 집합 배포 | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, 또는 배포된 `managed-mcp.json` 파일 |84| [MCP server control](/ko/managed-mcp) | 사용자가 추가하거나 연결할 수 있는 MCP 서버 제한, 또는 고정된 집합 배포 | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, 또는 배포된 `managed-mcp.json` 파일 |

83| [Plugin marketplace control](/ko/plugin-marketplaces#managed-marketplace-restrictions) | 사용자가 추가하고 설치할 수 있는 마켓플레이스 소스 제한 | `strictKnownMarketplaces`, `blockedMarketplaces` |85| [Plugin marketplace control](/ko/plugin-marketplaces#managed-marketplace-restrictions) | 사용자가 추가하고 설치할 수 있는 마켓플레이스 소스 제한, 단일 실행을 위해 플러그인, 에이전트 및 MCP 서버를 사이드로드하는 CLI 플래그 거부 | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags` |

84| [Customization lockdown](/ko/settings#strictpluginonlycustomization) | skills, agents, hooks 및 MCP 서버를 사용자 및 프로젝트 소스에서 차단하여 플러그인 또는 관리 설정에서만 제공되도록 함 | `strictPluginOnlyCustomization` |86| [Customization lockdown](/ko/settings#strictpluginonlycustomization) | skills, agents, hooks 및 MCP 서버를 사용자 및 프로젝트 소스에서 차단하여 플러그인 또는 관리 설정에서만 제공되도록 함 | `strictPluginOnlyCustomization` |

85| [Hook restrictions](/ko/settings#hook-configuration) | 관리 hooks만 로드; HTTP hook URL 제한 | `allowManagedHooksOnly`, `allowedHttpHookUrls` |87| [Hook restrictions](/ko/settings#hook-configuration) | 관리 hooks만 로드; HTTP hook URL 제한 | `allowManagedHooksOnly`, `allowedHttpHookUrls` |

86| [Disable agent view](/ko/agent-view#how-background-sessions-are-hosted) | `claude agents`, `--bg`, `/background` 및 온디맨드 감독자 비활성화 | `disableAgentView` |88| [Disable agent view](/ko/agent-view#how-background-sessions-are-hosted) | `claude agents`, `--bg`, `/background` 및 온디맨드 감독자 비활성화 | `disableAgentView` |


99필요한 보고 내용에 따라 모니터링을 선택하세요.101필요한 보고 내용에 따라 모니터링을 선택하세요.

100 102 

101| 기능 | 제공 항목 | 가용성 | 시작 위치 |103| 기능 | 제공 항목 | 가용성 | 시작 위치 |

102| :------------------ | :------------------------------ | :--------- | :--------------------------------------- |104| :------------------ | :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------- |

103| Usage monitoring | 세션, 도구 및 토큰의 OpenTelemetry 내보내기 | 모든 제공자 | [Monitoring usage](/ko/monitoring-usage) |105| Usage monitoring | 세션, 도구 및 토큰의 OpenTelemetry 내보내기 | 모든 제공자 | [Monitoring usage](/ko/monitoring-usage) |

104| Analytics dashboard | 사용자별 메트릭, 기여도 추적, 리더보드 | Anthropic만 | [Analytics](/ko/analytics) |106| Analytics dashboard | 사용자별 메트릭, 기여도 추적, 리더보드 | Anthropic만 | [Analytics](/ko/analytics) |

105| Cost tracking | 지출 제한, 속도 제한 및 사용량 속성 | Anthropic만 | [Costs](/ko/costs) |107| Cost tracking | 지출 제한, 속도 제한 및 사용량 속성 | Anthropic; 타사 클라우드의 경우, [Claude apps gateway](/ko/claude-apps-gateway)가 사용자별 속성 및 [지출 제한](/ko/claude-apps-gateway-spend-limits)을 제공합니다 | [Costs](/ko/costs) |

106 108 

107클라우드 제공자는 AWS Cost Explorer, GCP Billing 또는 Azure Cost Management를 통해 지출을 노출합니다. Claude for Teams 및 Enterprise 플랜에는 [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code)의 사용량 대시보드가 포함됩니다.109클라우드 제공자는 AWS Cost Explorer, GCP Billing 또는 Azure Cost Management를 통해 지출을 노출합니다. Claude for Teams 및 Enterprise 플랜에는 [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code)의 사용량 대시보드가 포함됩니다.

108 110 


118| Zero Data Retention (ZDR) | 요청 완료 후 저장되지 않음. Claude for Enterprise에서 사용 가능 | [Zero data retention](/ko/zero-data-retention) |120| Zero Data Retention (ZDR) | 요청 완료 후 저장되지 않음. Claude for Enterprise에서 사용 가능 | [Zero data retention](/ko/zero-data-retention) |

119| Security architecture | 네트워크 모델, 암호화, 인증, 감사 추적 | [Security](/ko/security) |121| Security architecture | 네트워크 모델, 암호화, 인증, 감사 추적 | [Security](/ko/security) |

120 122 

121요청 수준 감사 로깅이 필요하거나 데이터 민감도별로 트래픽을 라우팅하려면 개발자와 제공자 사이에 [LLM gateway](/ko/llm-gateway)를 배치하세요. 규제 요구사항 및 인증은 [Legal and compliance](/ko/legal-and-compliance)를 참조하세요.123요청 수준 감사 로깅이 필요하거나 데이터 민감도별로 트래픽을 라우팅하려면 개발자와 제공자 사이에 게이트웨이를 배치하세요. 자체 호스팅된 [Claude apps gateway](/ko/claude-apps-gateway)는 IdP 신원을 포함한 요청별 감사 로그를 기록하거나 다른 [LLM gateway](/ko/llm-gateway)를 사용하세요. 규제 요구사항 및 인증은 [Legal and compliance](/ko/legal-and-compliance)를 참조하세요.

122 124 

123<h2 id="verify-and-onboard">125<h2 id="verify-and-onboard">

124 확인 및 온보딩126 확인 및 온보딩

advisor.md +2 −1

Details

88| ----------------------------------------------- | ------------------------ | ------------------------------------- |88| ----------------------------------------------- | ------------------------ | ------------------------------------- |

89| Haiku 4.5 | Fable, Opus, Sonnet | Haiku는 조언자를 호출할 수 있지만 조언자로 작동할 수 없습니다 |89| Haiku 4.5 | Fable, Opus, Sonnet | Haiku는 조언자를 호출할 수 있지만 조언자로 작동할 수 없습니다 |

90| Sonnet 4.6 | Fable, Opus, Sonnet | |90| Sonnet 4.6 | Fable, Opus, Sonnet | |

91| Sonnet 5 | Fable, Opus, Sonnet 5 | Sonnet 4.6 조언자는 거부됩니다 |

91| Opus 4.6 이상 | 주 모델의 버전 이상인 Fable, Opus | Opus 4.7 주 모델과 Opus 4.6 조언자는 거부됩니다 |92| Opus 4.6 이상 | 주 모델의 버전 이상인 Fable, Opus | Opus 4.7 주 모델과 Opus 4.6 조언자는 거부됩니다 |

92| Fable 5 ({/* min-version: 2.1.170 */}v2.1.170+) | Fable | Opus 또는 Sonnet 조언자는 거부됩니다 |93| Fable 5 ({/* min-version: 2.1.170 */}v2.1.170+) | Fable | Opus 또는 Sonnet 조언자는 거부됩니다 |

93 94 


161 162 

162* **Claude Code v2.1.98 이상**: `claude update`를 실행하여 업그레이드하세요.163* **Claude Code v2.1.98 이상**: `claude update`를 실행하여 업그레이드하세요.

163* **Anthropic API만**: 조언자는 서버 실행 도구입니다. Amazon Bedrock, Google Vertex AI 또는 Microsoft Foundry에서는 사용할 수 없습니다. [LLM 게이트웨이](/ko/llm-gateway)를 통해 `ANTHROPIC_BASE_URL`로 구성된 경우 가용성은 게이트웨이가 요청을 Anthropic API로 그대로 전달하는지 여부에 따라 달라집니다.164* **Anthropic API만**: 조언자는 서버 실행 도구입니다. Amazon Bedrock, Google Vertex AI 또는 Microsoft Foundry에서는 사용할 수 없습니다. [LLM 게이트웨이](/ko/llm-gateway)를 통해 `ANTHROPIC_BASE_URL`로 구성된 경우 가용성은 게이트웨이가 요청을 Anthropic API로 그대로 전달하는지 여부에 따라 달라집니다.

164* **지원되는 주 모델**: Opus 4.6 이상, Sonnet 4.6 또는 Haiku 4.5. {/* min-version: 2.1.170 */}Fable 5도 Claude Code v2.1.170 이상에서 적합합니다.165* **지원되는 주 모델**: Opus 4.6 이상, Sonnet 4.6 이상 또는 Haiku 4.5. {/* min-version: 2.1.170 */}Fable 5도 Claude Code v2.1.170 이상에서 적합합니다.

165 166 

166<h2 id="turn-the-advisor-off">167<h2 id="turn-the-advisor-off">

167 조언자 끄기168 조언자 끄기

Details

226 모델226 모델

227</h3>227</h3>

228 228 

229`model`을 설정하지 않으면 SDK는 Claude Code의 기본값을 사용하며, 이는 인증 방법 및 구독에 따라 다릅니다. 특정 모델을 고정하거나 더 빠르고 저렴한 에이전트를 위해 더 작은 모델을 사용하려면 명시적으로 설정합니다(예: `model="claude-sonnet-4-6"`). 사용 가능한 ID는 [모델](https://platform.claude.com/docs/en/about-claude/models)을 참조하세요.229`model`을 설정하지 않으면 SDK는 Claude Code의 기본값을 사용하며, 이는 인증 방법 및 구독에 따라 다릅니다. 특정 모델을 고정하거나 더 빠르고 저렴한 에이전트를 위해 더 작은 모델을 사용하려면 명시적으로 설정합니다(예: `model="claude-sonnet-5"`). 사용 가능한 ID는 [모델](https://platform.claude.com/docs/en/about-claude/models)을 참조하세요.

230 230 

231<h2 id="the-context-window">231<h2 id="the-context-window">

232 컨텍스트 윈도우232 컨텍스트 윈도우

Details

205 205 

206`hooks` 옵션은 다음과 같은 딕셔너리(Python) 또는 객체(TypeScript)입니다:206`hooks` 옵션은 다음과 같은 딕셔너리(Python) 또는 객체(TypeScript)입니다:

207 207 

208* **키** [훅 이벤트 이름](#available-hooks)입니다(예: `'PreToolUse'`, `'PostToolUse'`, `'Stop'`).208* **키**: [훅 이벤트 이름](#available-hooks)입니다(예: `'PreToolUse'`, `'PostToolUse'`, `'Stop'`).

209* **값** [매처](#matchers) 배열이며, 각각 선택적 필터 패턴과 [콜백 함수](#callback-functions)를 포함합니다.209* **값**: [매처](#matchers) 배열이며, 각각 선택적 필터 패턴과 [콜백 함수](#callback-functions)를 포함합니다.

210 210 

211<h3 id="matchers">211<h3 id="matchers">

212 매처212 매처


214 214 

215매처를 사용하여 콜백이 발생할 때를 필터링합니다. `matcher` 필드는 훅 이벤트 유형에 따라 다른 값과 일치합니다. 예를 들어 도구 기반 훅은 도구 이름과 일치하고, `Notification` 훅은 알림 유형과 일치합니다. 각 이벤트 유형에 대한 매처 값의 전체 목록은 [Claude Code 훅 참조](/ko/hooks#matcher-patterns)를 참조하세요.215매처를 사용하여 콜백이 발생할 때를 필터링합니다. `matcher` 필드는 훅 이벤트 유형에 따라 다른 값과 일치합니다. 예를 들어 도구 기반 훅은 도구 이름과 일치하고, `Notification` 훅은 알림 유형과 일치합니다. 각 이벤트 유형에 대한 매처 값의 전체 목록은 [Claude Code 훅 참조](/ko/hooks#matcher-patterns)를 참조하세요.

216 216 

217SDK 매처는 [설정 파일의 매처](/ko/hooks#matcher-patterns)와 동일한 규칙을 따릅니다: 문자, 숫자, `_`, 공백, `,`, `|`만 포함하는 매처는 정확한 문자열로 비교되며, `|` 또는 `,`로 구분된 대안이 있고 선택적 주변 공백이 있으므로 `Write|Edit`와 `Write, Edit`는 각각 정확히 이 두 도구와 일치합니다. `*` 매처, 빈 문자열, 또는 매처를 완전히 생략하면 이벤트의 모든 발생과 일치합니다. 다른 문자를 포함하는 매처는 정규식으로 평가되므로 `^mcp__`는 모든 MCP 도구와 일치합니다. `mcp__memory`와 같은 매처는 문자와 밑줄만 포함하므로 정확한 문자열로 비교되며 도구와 일치하지 않습니다. 해당 서버의 모든 도구와 일치하려면 `mcp__memory__.*`를 사용합니다.217SDK 매처는 [설정 파일의 매처](/ko/hooks#matcher-patterns)와 동일한 규칙을 따릅니다. 문자, 숫자, `_`, `-`, 공백, `,`, `|`만 포함하는 매처는 정확한 문자열로 비교되며, `|` 또는 `,`로 구분된 대안이 있고 선택적 주변 공백이 있으므로 `Write|Edit`와 `Write, Edit`는 각각 정확히 이 두 도구와 일치하고 `code-reviewer`는 해당 에이전트 유형만 일치합니다. `*` 매처, 빈 문자열, 또는 매처를 완전히 생략하면 이벤트의 모든 발생과 일치합니다.

218 

219다른 문자를 포함하는 매처는 앵커되지 않은 정규식으로 평가되므로 `^mcp__`는 모든 MCP 도구와 일치하고 `Edit.*`는 `Edit`과 `NotebookEdit` 모두와 일치합니다. 전체 문자열 일치가 필요할 때는 정규식을 `^`와 `$`로 감싸세요.

220 

221`mcp__memory` 또는 `mcp__brave-search`와 같은 매처는 정확한 일치 문자만 포함하므로 정확한 문자열로 비교되며 도구와 일치하지 않습니다. 해당 서버의 모든 도구와 일치하려면 `mcp__memory__.*`를 사용합니다.

222 

223매처의 정확한 일치 집합에 있는 하이픈은 Claude Code 런타임 v2.1.195 이상이 필요합니다. 이전 버전에서는 `code-reviewer`와 같은 하이픈이 있는 이름이 앵커되지 않은 정규식으로 평가되며 정확히 일치하려면 `^code-reviewer$`로 앵커되어야 합니다.

218 224 

219| 옵션 | 타입 | 기본값 | 설명 |225| 옵션 | 타입 | 기본값 | 설명 |

220| --------- | ---------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |226| --------- | ---------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


222| `hooks` | `HookCallback[]` | - | 필수입니다. 패턴이 일치할 때 실행할 콜백 함수의 배열 |228| `hooks` | `HookCallback[]` | - | 필수입니다. 패턴이 일치할 때 실행할 콜백 함수의 배열 |

223| `timeout` | `number` | `60` | 초 단위의 타임아웃 |229| `timeout` | `number` | `60` | 초 단위의 타임아웃 |

224 230 

225가능할 때마다 `matcher` 패턴을 사용하여 특정 도구를 대상으로 합니다. `'Bash'` 매처는 Bash 명령에만 실행되지만 패턴을 생략하면 콜백이 이벤트의 모든 발생에 대해 실행됩니다. 도구 기반 훅의 경우 매처는 **도구 이름**으로만 필터링하며, 파일 경로나 다른 인수로는 필터링하지 않습니다. 파일 경로로 필터링하려면 콜백 내에서 `tool_input.file_path`를 확인합니다.231가능할 때마다 `matcher` 패턴을 사용하여 특정 도구를 대상으로 합니다. `'Bash'` 매처는 Bash 명령에만 실행되지만 패턴을 생략하면 콜백이 이벤트의 모든 발생에 대해 실행됩니다.

232 

233도구 기반 훅의 경우 매처는 도구 이름으로만 필터링하며, 파일 경로나 다른 인수로는 필터링하지 않습니다. 파일 경로로 필터링하려면 콜백 내에서 `tool_input.file_path`를 확인합니다.

226 234 

227<Tip>235<Tip>

228 **도구 이름 발견:** [도구 입력 타입](/ko/agent-sdk/typescript#tool-input-types)에서 기본 제공 도구 이름의 전체 목록을 참조하거나, 매처 없이 훅을 추가하여 세션이 수행하는 모든 도구 호출을 기록합니다.236 **도구 이름 발견:** [도구 입력 타입](/ko/agent-sdk/typescript#tool-input-types)에서 기본 제공 도구 이름의 전체 목록을 참조하거나, 매처 없이 훅을 추가하여 세션이 수행하는 모든 도구 호출을 기록합니다.


240 248 

241모든 훅 콜백은 세 가지 인수를 받습니다:249모든 훅 콜백은 세 가지 인수를 받습니다:

242 250 

243* **입력 데이터:** 이벤트 세부 정보를 포함하는 입력된 객체입니다. 각 훅 유형은 자체 입력 형태를 가집니다(예: `PreToolUseHookInput`은 `tool_name`과 `tool_input`을 포함하고, `NotificationHookInput`은 `message`를 포함합니다). [TypeScript](/ko/agent-sdk/typescript#hookinput) 및 [Python](/ko/agent-sdk/python#hookinput) SDK 참조에서 전체 타입 정의를 참조하세요.251* **입력 데이터:** 이벤트 세부 정보를 포함하는 입력된 객체입니다. 각 훅 유형은 자체 입력 형태를 가집니다. 예를 들어 `PreToolUseHookInput`은 `tool_name`과 `tool_input`을 포함하고, `NotificationHookInput`은 `message`를 포함합니다. [TypeScript](/ko/agent-sdk/typescript#hookinput) 및 [Python](/ko/agent-sdk/python#hookinput) SDK 참조에서 전체 타입 정의를 참조하세요.

244 * 모든 훅 입력은 `session_id`, `cwd`, `hook_event_name`을 공유합니다.252 * 모든 훅 입력은 `session_id`, `cwd`, `hook_event_name`을 공유합니다.

245 * `agent_id`와 `agent_type`은 훅이 서브에이전트 내에서 발생할 때 채워집니다. TypeScript에서는 기본 훅 입력에 있으며 모든 훅 유형에서 사용 가능합니다. Python에서는 `PreToolUse`, `PostToolUse`, `PostToolUseFailure`에만 있습니다.253 * `agent_id`와 `agent_type`은 훅이 서브에이전트 내에서 발생할 때 채워집니다. TypeScript에서는 기본 훅 입력에 있으며 모든 훅 유형에서 사용 가능합니다. Python에서는 `PreToolUse`, `PostToolUse`, `PostToolUseFailure`에만 있습니다.

246* **도구 사용 ID** (`str | None` / `string | undefined`): 동일한 도구 호출에 대해 `PreToolUse` 및 `PostToolUse` 이벤트를 연결합니다.254* **도구 사용 ID** (`str | None` / `string | undefined`): 동일한 도구 호출에 대해 `PreToolUse` 및 `PostToolUse` 이벤트를 연결합니다.


258변경 없이 작업을 허용하려면 `{}`를 반환합니다. SDK 콜백 훅은 [Claude Code 셸 명령 훅](/ko/hooks#json-output)과 동일한 JSON 출력 형식을 사용하며, 이는 모든 필드와 이벤트별 옵션을 문서화합니다. SDK 타입 정의는 [TypeScript](/ko/agent-sdk/typescript#synchookjsonoutput) 및 [Python](/ko/agent-sdk/python#synchookjsonoutput) SDK 참조를 참조하세요.266변경 없이 작업을 허용하려면 `{}`를 반환합니다. SDK 콜백 훅은 [Claude Code 셸 명령 훅](/ko/hooks#json-output)과 동일한 JSON 출력 형식을 사용하며, 이는 모든 필드와 이벤트별 옵션을 문서화합니다. SDK 타입 정의는 [TypeScript](/ko/agent-sdk/typescript#synchookjsonoutput) 및 [Python](/ko/agent-sdk/python#synchookjsonoutput) SDK 참조를 참조하세요.

259 267 

260<Note>268<Note>

261 여러 훅 또는 권한 규칙이 적용되는 경우 **deny****defer**보다 우선하고, **defer****ask**보다 우선하고, **ask****allow**보다 우선합니다. 훅이 `deny`를 반환하면 다른 훅에 관계없이 작업이 차단됩니다.269 여러 훅 또는 권한 규칙이 적용되는 경우 `deny``defer`보다 우선하고, `defer``ask`보다 우선하고, `ask``allow`보다 우선합니다. 훅이 `deny`를 반환하면 다른 훅에 관계없이 작업이 차단됩니다.

262</Note>270</Note>

263 271 

264<h4 id="asynchronous-output">272<h4 id="asynchronous-output">


782* 훅 이벤트 이름이 올바르고 대소문자를 구분하는지 확인합니다(`preToolUse`가 아닌 `PreToolUse`).790* 훅 이벤트 이름이 올바르고 대소문자를 구분하는지 확인합니다(`preToolUse`가 아닌 `PreToolUse`).

783* 매처 패턴이 도구 이름과 정확히 일치하는지 확인합니다.791* 매처 패턴이 도구 이름과 정확히 일치하는지 확인합니다.

784* 훅이 `options.hooks`의 올바른 이벤트 유형 아래에 있는지 확인합니다.792* 훅이 `options.hooks`의 올바른 이벤트 유형 아래에 있는지 확인합니다.

785* `Stop` 및 `SubagentStop` 같은 도구가 아닌 훅의 경우 매처는 다른 필드와 일치합니다([매처 패턴](/ko/hooks#matcher-patterns) 참조).793* `Notification` 및 `SubagentStop` 같은 도구가 아닌 훅의 경우 매처는 다른 필드와 일치하며, `Stop`은 매처를 무시합니다([매처 패턴](/ko/hooks#matcher-patterns) 참조).

786* 에이전트가 [`max_turns`](/ko/agent-sdk/python#claudeagentoptions) 제한에 도달하면 훅이 발생하지 않을 수 있습니다. 세션이 훅을 실행하기 전에 종료되기 때문입니다.794* 에이전트가 [`max_turns`](/ko/agent-sdk/python#claudeagentoptions) 제한에 도달하면 훅이 발생하지 않을 수 있습니다. 세션이 훅을 실행하기 전에 종료되기 때문입니다.

787 795 

788<h3 id="matcher-not-filtering-as-expected">796<h3 id="matcher-not-filtering-as-expected">

789 매처가 예상대로 필터링하지 않음797 매처가 예상대로 필터링하지 않음

790</h3>798</h3>

791 799 

792매처는 **도구 이름**만 일치하며, 파일 경로나 다른 인수는 일치하지 않습니다. 파일 경로로 필터링하려면 훅 내에서 `tool_input.file_path`를 확인합니다:800매처는 도구 이름만 일치하며, 파일 경로나 다른 인수는 일치하지 않습니다. 파일 경로로 필터링하려면 훅 내에서 `tool_input.file_path`를 확인합니다:

793 801 

794```typescript theme={null}802```typescript theme={null}

795const myHook: HookCallback = async (input, toolUseID, { signal }) => {803const myHook: HookCallback = async (input, toolUseID, { signal }) => {

Details

209 209 

210* **트랜스크립트만**: `SessionStore`는 트랜스크립트를 미러링하며, `CLAUDE.md` 메모리 파일이나 다른 작업 디렉토리 아티팩트는 미러링하지 않습니다. 공유 볼륨을 마운트하거나 별도로 동기화하십시오.210* **트랜스크립트만**: `SessionStore`는 트랜스크립트를 미러링하며, `CLAUDE.md` 메모리 파일이나 다른 작업 디렉토리 아티팩트는 미러링하지 않습니다. 공유 볼륨을 마운트하거나 별도로 동기화하십시오.

211* **미러링, 대체 아님**: 서브프로세스는 먼저 로컬 디스크에 쓰고, 스토어는 각 배치의 복사본을 받습니다. 로컬 쓰기가 권한이 있습니다.211* **미러링, 대체 아님**: 서브프로세스는 먼저 로컬 디스크에 쓰고, 스토어는 각 배치의 복사본을 받습니다. 로컬 쓰기가 권한이 있습니다.

212* **`mirror_error` 메시지**: 스토어가 거부하거나 시간 초과되면 SDK는 `{ type: "system", subtype: "mirror_error" }` 메시지를 내보내고 재시도 없이 쿼리를 계속합니다. 스토어 지속성이 중요한 경우 이에 대해 경고하십시오.212* **`mirror_error` 메시지**: 스토어가 거부하는 배치는 각 재시도 전에 짧은 백오프를 사용하여 총 최대 3회 전송됩니다. 시간 초과된 호출은 재시도되지 않습니다. 배치가 여전히 실패하면 SDK는 이를 삭제하고, `{ type: "system", subtype: "mirror_error" }` 메시지를 내보내고, 쿼리를 계속합니다. 스토어 지속성이 중요한 경우 이에 대해 경고하십시오.

213 213 

214<h3 id="observability">214<h3 id="observability">

215 관찰성215 관찰성

Details

44 </Step>44 </Step>

45</Steps>45</Steps>

46 46 

47<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agent-sdk/permissions-flow.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=cc94220087262cd48c9b64a14c4e1c2c" alt="5단계 권한 평가 흐름의 다이어그램으로, 위의 단계와 일치합니다: 도구 요청이 훅, 거부 규칙, 권한 모드, 허용 규칙 및 canUseTool을 통과합니다. 훅, 거부 규칙 및 canUseTool은 차단으로 라우팅할 수 있습니다. 권한 모드 우회, 허용 규칙 및 canUseTool은 실행으로 라우팅할 수 있습니다." width="1024" height="260" data-path="images/agent-sdk/permissions-flow.svg" />47<img src="https://mintcdn.com/claude-code/jYgs7qigNjO1Badj/images/agent-sdk/permissions-flow.svg?fit=max&auto=format&n=jYgs7qigNjO1Badj&q=85&s=c771ad9085b1277d3708027a49c744bc" alt="6단계 권한 평가 흐름의 다이어그램으로, 위의 단계와 일치합니다: 도구 요청이 훅, 거부 규칙, 요청 규칙, 권한 모드, 허용 규칙 및 canUseTool을 통과합니다. 훅, 거부 규칙 및 canUseTool은 차단으로 라우팅할 수 있습니다. 권한 모드 우회, 허용 규칙 및 canUseTool은 실행으로 라우팅할 수 있습니다." width="1180" height="260" data-path="images/agent-sdk/permissions-flow.svg" />

48 48 

49이 페이지는 **허용 및 거부 규칙**과 **권한 모드**에 중점을 둡니다. 다른 단계의 경우:49이 페이지는 **허용 및 거부 규칙**과 **권한 모드**에 중점을 둡니다. 다른 단계의 경우:

50 50 

51* **훅:** 도구 요청을 허용, 거부 또는 수정하는 사용자 정의 코드를 실행합니다. [훅으로 실행 제어](/ko/agent-sdk/hooks)를 참조하세요.51* **훅:** 도구 요청을 허용, 거부 또는 수정하는 사용자 정의 코드를 실행합니다. [훅으로 실행 제어](/ko/agent-sdk/hooks)를 참조하세요.

52* **canUseTool 콜백:** 런타임에 사용자에게 승인을 요청합니다. [승인 및 사용자 입력 처리](/ko/agent-sdk/user-input)를 참조하세요.52* **canUseTool 콜백:** 런타임에 사용자에게 승인을 요청합니다. 이전 단계에서 호출이 해결되지 않을 때 사용합니다. [승인 및 사용자 입력 처리](/ko/agent-sdk/user-input)를 참조하세요.

53 53 

54<h2 id="allow-and-deny-rules">54<h2 id="allow-and-deny-rules">

55 허용 및 거부 규칙55 허용 및 거부 규칙


66 66 

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

68 68 

69<Warning>

70 **자동 승인된 도구는 절대 `canUseTool`에 도달하지 않습니다.** `acceptEdits` 또는 `bypassPermissions`에 의해, 또는 허용 규칙에 의해 이전 단계에서 승인된 도구 호출은 `canUseTool` 콜백을 건너뛰므로 거기에 배치한 권한 검사는 해당 도구에 대해 자동으로 무시됩니다. 적용 범위는 항목의 형식에 따라 달라집니다. `Read` 또는 `mcp__github__get_issue`와 같은 단순 이름은 해당 도구에 대한 모든 호출을 자동 승인하는 반면, `Bash(ls *)`와 같은 범위 규칙은 일치하는 호출만 자동 승인하고 다른 `Bash` 호출은 여전히 콜백으로 통과합니다. 모든 도구 호출에서 실행되어야 하는 검사의 경우 [`PreToolUse` 훅](/ko/agent-sdk/hooks)을 사용합니다. 훅은 다른 모든 단계 이전에 실행되며, 훅 거부는 `bypassPermissions` 모드에서도 적용됩니다.

71</Warning>

72 

69잠금된 에이전트의 경우 `allowedTools`를 `permissionMode: "dontAsk"`와 쌍으로 사용합니다. 나열된 도구는 승인되고 다른 모든 항목은 프롬프트 대신 완전히 거부됩니다:73잠금된 에이전트의 경우 `allowedTools`를 `permissionMode: "dontAsk"`와 쌍으로 사용합니다. 나열된 도구는 승인되고 다른 모든 항목은 프롬프트 대신 완전히 거부됩니다:

70 74 

71```typescript theme={null}75```typescript theme={null}

Details

750 750 

751 751 

752async def main():752async def main():

753 options = ClaudeAgentOptions(753 # 게이트된 도구를 allowed_tools에도 나열하지 마십시오: allow 규칙은 can_use_tool이 실행되기 전에 호출을 승인합니다

754 can_use_tool=custom_permission_handler, allowed_tools=["Read", "Write", "Edit"]754 options = ClaudeAgentOptions(can_use_tool=custom_permission_handler)

755 )

756 755 

757 async with ClaudeSDKClient(options=options) as client:756 async with ClaudeSDKClient(options=options) as client:

758 await client.query("Update the system config file")757 await client.query("Update the system config file")


886 fork_session: bool = False885 fork_session: bool = False

887 agents: dict[str, AgentDefinition] | None = None886 agents: dict[str, AgentDefinition] | None = None

888 setting_sources: list[SettingSource] | None = None887 setting_sources: list[SettingSource] | None = None

888 skills: list[str] | Literal["all"] | None = None

889 sandbox: SandboxSettings | None = None889 sandbox: SandboxSettings | None = None

890 plugins: list[SdkPluginConfig] = field(default_factory=list)890 plugins: list[SdkPluginConfig] = field(default_factory=list)

891 max_thinking_tokens: int | None = None # Deprecated: use thinking instead891 max_thinking_tokens: int | None = None # Deprecated: use thinking instead


924| `max_buffer_size` | `int \| None` | `None` | CLI stdout 버퍼링 시 최대 바이트 |924| `max_buffer_size` | `int \| None` | `None` | CLI stdout 버퍼링 시 최대 바이트 |

925| `debug_stderr` | `Any` | `sys.stderr` | *Deprecated* - 디버그 출력을 위한 파일 유사 객체. 대신 `stderr` 콜백 사용 |925| `debug_stderr` | `Any` | `sys.stderr` | *Deprecated* - 디버그 출력을 위한 파일 유사 객체. 대신 `stderr` 콜백 사용 |

926| `stderr` | `Callable[[str], None] \| None` | `None` | CLI의 stderr 출력을 위한 콜백 함수 |926| `stderr` | `Callable[[str], None] \| None` | `None` | CLI의 stderr 출력을 위한 콜백 함수 |

927| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | 도구 권한 콜백 함수. 자세한 내용은 [권한 타입](#canusetool) 참조 |927| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | 도구 권한 콜백 함수. [권한 흐름](/ko/agent-sdk/permissions#how-permissions-are-evaluated)이 프롬프트로 넘어갈 때만 호출됩니다. `allowed_tools`, 허용 규칙 또는 `permission_mode`로 자동 승인된 호출에 대해서는 호출되지 않습니다. [`CanUseTool`](#canusetool)에서 자세한 내용 참조 |

928| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | 이벤트 가로채기를 위한 hook 구성 |928| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | 이벤트 가로채기를 위한 hook 구성 |

929| `user` | `str \| None` | `None` | 사용자 식별자 |929| `user` | `str \| None` | `None` | 사용자 식별자 |

930| `include_partial_messages` | `bool` | `False` | 부분 메시지 스트리밍 이벤트 포함. 활성화되면 [`StreamEvent`](#streamevent) 메시지가 생성됩니다 |930| `include_partial_messages` | `bool` | `False` | 부분 메시지 스트리밍 이벤트 포함. 활성화되면 [`StreamEvent`](#streamevent) 메시지가 생성됩니다 |


960* `API_TIMEOUT_MS`: Anthropic 클라이언트의 요청당 시간 초과 (밀리초). 기본값 `600000`. 주 루프 및 모든 서브에이전트에 적용됩니다.960* `API_TIMEOUT_MS`: Anthropic 클라이언트의 요청당 시간 초과 (밀리초). 기본값 `600000`. 주 루프 및 모든 서브에이전트에 적용됩니다.

961* `CLAUDE_CODE_MAX_RETRIES`: 최대 API 재시도. 기본값 `10`, 최대 `15`로 제한됨. 각 재시도는 자체 `API_TIMEOUT_MS` 윈도우를 가지므로, 최악의 경우 벽시간은 대략 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` 더하기 백오프입니다. 더 긴 중단을 기다려야 하는 무인 실행의 경우, `CLAUDE_CODE_RETRY_WATCHDOG=1`을 설정하여 용량 오류를 무한정 재시도합니다.961* `CLAUDE_CODE_MAX_RETRIES`: 최대 API 재시도. 기본값 `10`, 최대 `15`로 제한됨. 각 재시도는 자체 `API_TIMEOUT_MS` 윈도우를 가지므로, 최악의 경우 벽시간은 대략 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` 더하기 백오프입니다. 더 긴 중단을 기다려야 하는 무인 실행의 경우, `CLAUDE_CODE_RETRY_WATCHDOG=1`을 설정하여 용량 오류를 무한정 재시도합니다.

962* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: `run_in_background`으로 시작된 서브에이전트의 정지 감시견. 기본값 `600000`. 각 스트림 이벤트에서 재설정됩니다. 정지 시 서브에이전트를 중단하고, 작업을 실패로 표시하고, 부분 결과와 함께 오류를 부모에게 표시합니다. 동기 서브에이전트에는 적용되지 않습니다.962* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: `run_in_background`으로 시작된 서브에이전트의 정지 감시견. 기본값 `600000`. 각 스트림 이벤트에서 재설정됩니다. 정지 시 서브에이전트를 중단하고, 작업을 실패로 표시하고, 부분 결과와 함께 오류를 부모에게 표시합니다. 동기 서브에이전트에는 적용되지 않습니다.

963* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` with `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: 헤더가 도착했지만 응답 본문이 스트리밍을 중지할 때 요청을 중단합니다. `CLAUDE_ENABLE_STREAM_WATCHDOG`이 설정되지 않으면 기본값은 직접 Anthropic API에서는 서버 제어이고 다른 공급자에서는 꺼져 있습니다. `CLAUDE_STREAM_IDLE_TIMEOUT_MS`는 기본값 `300000`이고 해당 최소값으로 제한됩니다. 중단된 요청은 정상 재시도 경로를 거칩니다.963* `CLAUDE_ENABLE_STREAM_WATCHDOG` with `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: 헤더가 도착했지만 응답 본문이 스트리밍을 중지할 때 요청을 중단합니다. 감시견은 모든 공급자에 대해 기본적으로 켜져 있습니다. `CLAUDE_ENABLE_STREAM_WATCHDOG=0`으로 설정하여 비활성화합니다. `CLAUDE_STREAM_IDLE_TIMEOUT_MS`는 기본값 `300000`이고 해당 최소값으로 제한됩니다. 중단된 요청은 정상 재시도 경로를 거칩니다.

964 964 

965<h3 id="outputformat">965<h3 id="outputformat">

966 `OutputFormat`966 `OutputFormat`


1206 "low", # Minimal thinking, fastest responses1206 "low", # Minimal thinking, fastest responses

1207 "medium", # Moderate thinking1207 "medium", # Moderate thinking

1208 "high", # Deep reasoning1208 "high", # Deep reasoning

1209 "xhigh", # Extended reasoning (Opus 4.8 and Opus 4.7; falls back to "high" on other models)1209 "xhigh", # Extended reasoning; falls back to "high" on models that don't support it

1210 "max", # Maximum effort1210 "max", # Maximum effort

1211]1211]

1212```1212```


1231 1231 

1232`PermissionResult` (`PermissionResultAllow` 또는 `PermissionResultDeny`)를 반환합니다.1232`PermissionResult` (`PermissionResultAllow` 또는 `PermissionResultDeny`)를 반환합니다.

1233 1233 

1234콜백은 대화형 권한 프롬프트의 SDK 대체입니다: [권한 평가 흐름](/ko/agent-sdk/permissions#how-permissions-are-evaluated)이 프롬프트로 해결될 때만 호출됩니다. `allowed_tools` 항목, 설정 허용 규칙 또는 `acceptEdits` 또는 `bypassPermissions`와 같은 권한 모드로 이미 승인된 도구 호출은 이를 호출하지 않습니다. 모든 도구 호출을 제어하려면 [`PreToolUse` hook](/ko/agent-sdk/hooks)을 대신 사용합니다.

1235 

1234<h3 id="toolpermissioncontext">1236<h3 id="toolpermissioncontext">

1235 `ToolPermissionContext`1237 `ToolPermissionContext`

1236</h3>1238</h3>


1432`ClaudeAgentOptions`의 `betas` 필드와 함께 사용하여 베타 기능을 활성화합니다.1434`ClaudeAgentOptions`의 `betas` 필드와 함께 사용하여 베타 기능을 활성화합니다.

1433 1435 

1434<Warning>1436<Warning>

1435 `context-1m-2025-08-07` 베타는 2026년 4월 30일부터 폐기되었습니다. Claude Sonnet 4.5 또는 Sonnet 4와 함께 이 헤더를 전달하면 효과가 없으며, 표준 200k 토큰 컨텍스트 윈도우를 초과하는 요청은 오류를 반환합니다. 1M 토큰 컨텍스트 윈도우를 사용하려면 [Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7 또는 Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview)로 마이그레이션하십시오. 이들은 베타 헤더 없이 표준 가격으로 1M 컨텍스트를 포함합니다.1437 `context-1m-2025-08-07` 베타는 2026년 4월 30일부터 폐기되었습니다. Claude Sonnet 4.5 또는 Sonnet 4와 함께 이 헤더를 전달하면 효과가 없으며, 표준 200k 토큰 컨텍스트 윈도우를 초과하는 요청은 오류를 반환합니다. 1M 토큰 컨텍스트 윈도우를 사용하려면 [Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7 또는 Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview)로 마이그레이션하십시오. 이들은 베타 헤더 없이 표준 가격으로 1M 컨텍스트를 포함합니다.

1436</Warning>1438</Warning>

1437 1439 

1438<h3 id="mcpsdkserverconfig">1440<h3 id="mcpsdkserverconfig">


2681 2683 

2682**도구 이름:** `Monitor`2684**도구 이름:** `Monitor`

2683 2685 

2684백그라운드 스크립트를 실행하고 각 stdout 줄을 Claude에 이벤트로 전달하여 폴링 없이 반응할 수 있도록 합니다. Monitor는 Bash와 동일한 권한 규칙을 따릅니다. 동작 제공자 가용성은 [Monitor 도구 참조](/ko/tools-reference#monitor-tool)를 참조하십시오.2686백그라운드 소스를 실행하고 각 이벤트를 Claude에 전달하여 폴링 없이 반응할 수 있도록 합니다. `command`는 스크립트를 실행하고 stdout 줄당 하나의 이벤트를 내보내며, `ws`는 WebSocket을 열고 텍스트 프레임당 하나의 이벤트를 내보냅니다. `command` 또는 `ws` 중 정확히 하나를 제공하십시오.

2687 

2688Monitor가 명령을 실행할 때, Bash와 동일한 권한 규칙을 따릅니다. WebSocket 감시는 별도로 승인을 요청합니다. {/* min-version: 2.1.195 */}`ws` 소스는 Claude Code v2.1.195 이상이 필요합니다. 동작 및 제공자 가용성은 [Monitor 도구 참조](/ko/tools-reference#monitor-tool)를 참조하십시오.

2685 2689 

2686**입력:**2690**입력:**

2687 2691 

2688```python theme={null}2692```python theme={null}

2689{2693{

2690 "command": str, # 셸 스크립트; 각 stdout 줄은 이벤트이고, 종료는 감시를 끝냅니다2694 "command": str | None, # 셸 스크립트; 각 stdout 줄은 이벤트이고, 종료는 감시를 끝냅니다

2695 "ws": dict | None, # WebSocket 소스: {"url": str, "protocols": list[str] | None}; 각 텍스트 프레임은 이벤트입니다

2691 "description": str, # 알림에 표시되는 짧은 설명2696 "description": str, # 알림에 표시되는 짧은 설명

2692 "timeout_ms": int | None, # 이 기한 후 종료 (기본값 300000, 최대 3600000)2697 "timeout_ms": int | None, # 이 기한 후 종료 (기본값 300000, 최대 3600000)

2693 "persistent": bool | None, # 세션의 수명 동안 실행; TaskStop으로 중지2698 "persistent": bool | None, # 세션의 수명 동안 실행; TaskStop으로 중지

Details

41 언어에 맞는 Agent SDK 패키지를 설치합니다:41 언어에 맞는 Agent SDK 패키지를 설치합니다:

42 42 

43 <Tabs>43 <Tabs>

44 <Tab title="TypeScript">44 <Tab title="TypeScript (새 프로젝트)">

45 ```bash theme={null}45 ```bash theme={null}

46 npm init -y

47 npm pkg set type=module

46 npm install @anthropic-ai/claude-agent-sdk48 npm install @anthropic-ai/claude-agent-sdk

49 npm install --save-dev tsx

47 ```50 ```

51 

52 `package.json`에서 `"type": "module"`을 설정하면 에이전트 스크립트가 최상위 `await`를 사용할 수 있으며, [tsx](https://tsx.is)는 TypeScript 파일을 직접 실행합니다.

53 </Tab>

54 

55 <Tab title="TypeScript (기존 프로젝트)">

56 ```bash theme={null}

57 npm install @anthropic-ai/claude-agent-sdk

58 npm install --save-dev tsx

59 ```

60 

61 [tsx](https://tsx.is)는 TypeScript 파일을 직접 실행합니다. 프로젝트가 CommonJS를 사용하는 경우 에이전트 스크립트의 이름을 `agent.ts` 대신 `agent.mts`로 지정합니다. `.mts` 확장자는 tsx가 파일을 ES 모듈로 처리하도록 하므로 전체 프로젝트를 ES 모듈로 변환하지 않고도 최상위 `await`가 작동합니다. 이 빠른 시작의 나중에 생성 및 실행 단계에서 `agent.ts` 대신 `agent.mts`를 사용합니다.

48 </Tab>62 </Tab>

49 63 

50 <Tab title="Python (uv)">64 <Tab title="Python (uv)">


85 </Step>99 </Step>

86 100 

87 <Step title="API 키 설정">101 <Step title="API 키 설정">

88 [Claude 콘솔](https://platform.claude.com/)에서 API 키를 가져온 다음 프로젝트 디렉토리에 `.env` 파일을 생성합니다:102 [Claude 콘솔](https://platform.claude.com/)에서 API 키를 가져온 다음 에이전트를 실행할 셸에서 환경 변수로 설정합니다:

89 103 

104 <Tabs>

105 <Tab title="macOS / Linux">

90 ```bash theme={null}106 ```bash theme={null}

91 ANTHROPIC_API_KEY=your-api-key107 export ANTHROPIC_API_KEY=your-api-key

92 ```108 ```

109 </Tab>

110 

111 <Tab title="Windows (PowerShell)">

112 ```powershell theme={null}

113 $env:ANTHROPIC_API_KEY = "your-api-key"

114 ```

115 </Tab>

116 </Tabs>

117 

118 SDK는 에이전트를 실행하는 프로세스의 환경에서 키를 읽습니다. `.env` 파일을 자동으로 로드하지 않습니다. 키를 `.env` 파일에 보관하는 경우 SDK를 호출하기 전에 `dotenv` 패키지 등으로 직접 로드합니다.

93 119 

94 SDK는 또한 타사 API 공급자를 통한 인증을 지원합니다:120 SDK는 또한 타사 API 공급자를 통한 인증을 지원합니다:

95 121 


133 버그를 찾고 수정하는 에이전트 구축159 버그를 찾고 수정하는 에이전트 구축

134</h2>160</h2>

135 161 

136Python SDK를 사용하는 경우 `agent.py`를 생성하거나 TypeScript의 경우 `agent.ts`를 생성합니다:162Python SDK를 사용하는 경우 `agent.py`를 생성하거나 TypeScript의 경우 `agent.ts`를 생성합니다. 기존 프로젝트가 CommonJS를 사용하는 경우 `agent.ts` 대신 `agent.mts`를 사용합니다:

137 163 

138<CodeGroup>164<CodeGroup>

139 ```python Python theme={null}165 ```python Python theme={null}


218 ```bash theme={null}244 ```bash theme={null}

219 npx tsx agent.ts245 npx tsx agent.ts

220 ```246 ```

247 

248 스크립트의 이름을 `agent.mts`로 지정한 경우 `npx tsx agent.mts`를 실행합니다.

221 </Tab>249 </Tab>

222 250 

223 <Tab title="Python (uv)">251 <Tab title="Python (uv)">


244이것이 Agent SDK를 다르게 만드는 것입니다: Claude는 구현을 요청하는 대신 도구를 직접 실행합니다.272이것이 Agent SDK를 다르게 만드는 것입니다: Claude는 구현을 요청하는 대신 도구를 직접 실행합니다.

245 273 

246<Note>274<Note>

247 "API key not found"가 표시되면 `.env` 파일 또는 환경에서 `ANTHROPIC_API_KEY` 환경 변수를 설정했는지 확인합니다. 자세한 내용은 [전체 문제 해결 가이드](/ko/troubleshooting)를 참조합니다.275 "API key not found"가 표시되면 에이전트를 실행할 셸에서 `ANTHROPIC_API_KEY` 환경 변수를 설정했는지 확인합니다. SDK는 `.env` 파일을 자동으로 로드하지 않습니다. 자세한 내용은 [전체 문제 해결 가이드](/ko/troubleshooting)를 참조합니다.

248</Note>276</Note>

249 277 

250<h3 id="try-other-prompts">278<h3 id="try-other-prompts">


342| 모드 | 동작 | 사용 사례 |370| 모드 | 동작 | 사용 사례 |

343| ----------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------ |371| ----------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------ |

344| `acceptEdits` | 파일 편집 및 일반적인 파일 시스템 명령을 자동 승인하고 다른 작업을 요청합니다 | 신뢰할 수 있는 개발 워크플로우 |372| `acceptEdits` | 파일 편집 및 일반적인 파일 시스템 명령을 자동 승인하고 다른 작업을 요청합니다 | 신뢰할 수 있는 개발 워크플로우 |

373| `plan` | 읽기 전용 도구를 실행합니다. 파일 편집은 자동 승인되지 않으며 `canUseTool` 콜백에 도달합니다 | 실행 승인 전 작업 범위 지정 |

345| `dontAsk` | `allowedTools`에 없는 모든 것을 거부합니다 | 잠금된 헤드리스 에이전트 |374| `dontAsk` | `allowedTools`에 없는 모든 것을 거부합니다 | 잠금된 헤드리스 에이전트 |

346| `auto` (TypeScript만 해당) | 모델 분류기가 각 도구 호출을 승인하거나 거부합니다 | 안전 가드레일이 있는 자율 에이전트 |375| `auto` (TypeScript만 해당) | 모델 분류기가 각 도구 호출을 승인하거나 거부합니다 | 안전 가드레일이 있는 자율 에이전트 |

347| `bypassPermissions` | 명시적 [`ask` 규칙](/ko/agent-sdk/permissions#how-permissions-are-evaluated)이 일치하지 않는 한 프롬프트 없이 모든 도구를 실행합니다 | 샌드박스 CI, 완전히 신뢰할 수 있는 환경 |376| `bypassPermissions` | 명시적 [`ask` 규칙](/ko/agent-sdk/permissions#how-permissions-are-evaluated)이 일치하지 않는 한 프롬프트 없이 모든 도구를 실행합니다 | 샌드박스 CI, 완전히 신뢰할 수 있는 환경 |


349 378 

350위의 예제는 `acceptEdits` 모드를 사용하며, 이는 파일 작업을 자동 승인하므로 에이전트가 대화형 프롬프트 없이 실행될 수 있습니다. 사용자에게 승인을 요청하려면 `default` 모드를 사용하고 사용자 입력을 수집하는 [`canUseTool` 콜백](/ko/agent-sdk/user-input)을 제공합니다. 더 많은 제어를 위해 [권한](/ko/agent-sdk/permissions)을 참조합니다.379위의 예제는 `acceptEdits` 모드를 사용하며, 이는 파일 작업을 자동 승인하므로 에이전트가 대화형 프롬프트 없이 실행될 수 있습니다. 사용자에게 승인을 요청하려면 `default` 모드를 사용하고 사용자 입력을 수집하는 [`canUseTool` 콜백](/ko/agent-sdk/user-input)을 제공합니다. 더 많은 제어를 위해 [권한](/ko/agent-sdk/permissions)을 참조합니다.

351 380 

352<h2 id="troubleshooting">

353 문제 해결

354</h2>

355 

356<h3 id="api-error-thinking-type-enabled-is-not-supported-for-this-model">

357 API 오류 `thinking.type.enabled`는 이 모델에서 지원되지 않습니다

358</h3>

359 

360Claude Opus 4.7은 `thinking.type.enabled`를 `thinking.type.adaptive`로 대체합니다. 이전 Agent SDK 버전은 `claude-opus-4-7`을 선택할 때 다음 API 오류로 실패합니다:

361 

362```text theme={null}

363API Error: 400 {"type":"invalid_request_error","message":"\"thinking.type.enabled\" is not supported for this model. Use \"thinking.type.adaptive\" and \"output_config.effort\" to control thinking behavior."}

364```

365 

366Opus 4.7을 사용하려면 Agent SDK v0.2.111 이상으로 업그레이드합니다.

367 

368<h2 id="next-steps">381<h2 id="next-steps">

369 다음 단계382 다음 단계

370</h2>383</h2>

Details

235 미러 쓰기는 최선의 노력입니다235 미러 쓰기는 최선의 노력입니다

236</h3>236</h3>

237 237 

238`append()`가 거부하거나 시간 초과되면 오류가 기록되고, `{ type: "system", subtype: "mirror_error" }` 메시지가 반복자로 내보내지며, 쿼리가 계속됩니다. 로컬 기록은 이미 디스크에 내구적이므로 저장소 중단은 에이전트를 중단하거나 로컬에서 데이터를 손실하지 않습니다. 실패한 배치는 재시도되지 않으므로 저장소 데이터 손실을 감지해야 하는 경우 `mirror_error`를 모니터링합니다.238`append()`가 거부하면 SDK는 짧은 백오프를 사용하여 배치를 최대 2회 더 재시도하며, 총 최대 3회 시도합니다. 시간 초과된 호출은 재시도되지 않습니다. 원본 호출이 여전히 도착할 수 있기 때문입니다. 배치가 여전히 실패하면 오류가 기록되고, `{ type: "system", subtype: "mirror_error" }` 메시지가 반복자로 내보내지며, 배치는 삭제되고 쿼리가 계속됩니다. 로컬 기록은 이미 디스크에 내구적이므로 저장소 중단은 에이전트를 중단하거나 로컬에서 데이터를 손실하지 않습니다. 저장소 데이터 손실을 감지해야 하는 경우 `mirror_error`를 모니터링합니다. 재시도된 배치는 이미 도착한 항목을 다시 전달할 수 있으므로 `append()` 구현에서 `entry.uuid`로 중복을 제거합니다.

239 239 

240<h3 id="getsessionmessages-returns-the-post-compaction-chain">240<h3 id="getsessionmessages-returns-the-post-compaction-chain">

241 `getSessionMessages`는 압축 후 체인을 반환합니다241 `getSessionMessages`는 압축 후 체인을 반환합니다

Details

24 })) {24 })) {

25 if (message.type === "system" && message.subtype === "init") {25 if (message.type === "system" && message.subtype === "init") {

26 console.log("Available slash commands:", message.slash_commands);26 console.log("Available slash commands:", message.slash_commands);

27 // Example output: ["clear", "compact", "context", "usage"]27 // Includes built-in commands plus bundled skills, for example:

28 // ["clear", "compact", "context", "usage", "code-review", "verify", ...]

28 }29 }

29 }30 }

30 ```31 ```


38 async for message in query(prompt="Hello Claude", options=ClaudeAgentOptions(max_turns=1)):39 async for message in query(prompt="Hello Claude", options=ClaudeAgentOptions(max_turns=1)):

39 if isinstance(message, SystemMessage) and message.subtype == "init":40 if isinstance(message, SystemMessage) and message.subtype == "init":

40 print("Available slash commands:", message.data["slash_commands"])41 print("Available slash commands:", message.data["slash_commands"])

41 # Example output: ["clear", "compact", "context", "usage"]42 # Includes built-in commands plus bundled skills, for example:

43 # ["clear", "compact", "context", "usage", "code-review", "verify", ...]

42 44 

43 45 

44 asyncio.run(main())46 asyncio.run(main())


49 슬래시 명령어 전송51 슬래시 명령어 전송

50</h2>52</h2>

51 53 

52프롬프트 문자열에 슬래시 명령어를 포함하여 일반 텍스트처럼 전송합니다:54슬래시 명령어를 프롬프트 문자열에 포함하여 일반 텍스트처럼 전송합니다. `/compact`와 같이 대화 기록에 작용하는 명령어는 작업할 이전 메시지가 필요하므로, 아래 예제에서는 먼저 질문을 한 다음 같은 대화에 대한 후속 명령어로 명령어를 전송합니다:

53 55 

54<CodeGroup>56<CodeGroup>

55 ```typescript TypeScript theme={null}57 ```typescript TypeScript theme={null}

56 import { query } from "@anthropic-ai/claude-agent-sdk";58 import { query } from "@anthropic-ai/claude-agent-sdk";

57 59 

58 // Send a slash command60 // Build up conversation history first

61 try {

59 for await (const message of query({62 for await (const message of query({

60 prompt: "/compact",63 prompt: "What does the README in this directory cover?",

61 options: { maxTurns: 1 }64 options: { maxTurns: 2 }

62 })) {65 })) {

63 if (message.type === "result" && message.subtype === "success") {66 if (message.type === "result" && message.subtype === "success") {

64 console.log("Command executed:", message.result);67 console.log(message.result);

68 }

69 }

70 } catch (error) {

71 // A single-shot query() throws after yielding an error result,

72 // so the follow-up query below still runs.

73 console.error(`Session ended with an error: ${error}`);

74 }

75 

76 // Send a slash command as a follow-up to the same conversation

77 for await (const message of query({

78 prompt: "/compact",

79 options: { continue: true, maxTurns: 1 }

80 })) {

81 if (message.type === "result") {

82 console.log("Command executed, result subtype:", message.subtype);

83 // Example output: Command executed, result subtype: success

65 }84 }

66 }85 }

67 ```86 ```


72 91 

73 92 

74 async def main():93 async def main():

75 # Send a slash command94 # Build up conversation history first

76 async for message in query(prompt="/compact", options=ClaudeAgentOptions(max_turns=1)):95 try:

96 async for message in query(

97 prompt="What does the README in this directory cover?",

98 options=ClaudeAgentOptions(max_turns=2),

99 ):

100 if isinstance(message, ResultMessage) and message.subtype == "success":

101 print(message.result)

102 except Exception as error:

103 # A single-shot query() raises after yielding an error result,

104 # so the follow-up query below still runs.

105 print(f"Session ended with an error: {error}")

106 

107 # Send a slash command as a follow-up to the same conversation

108 async for message in query(

109 prompt="/compact",

110 options=ClaudeAgentOptions(continue_conversation=True, max_turns=1),

111 ):

77 if isinstance(message, ResultMessage):112 if isinstance(message, ResultMessage):

78 print("Command executed:", message.result)113 print("Command executed, result subtype:", message.subtype)

114 # Example output: Command executed, result subtype: success

79 115 

80 116 

81 asyncio.run(main())117 asyncio.run(main())

82 ```118 ```

83</CodeGroup>119</CodeGroup>

84 120 

121<Note>

122 쿼리는 오류 결과로 끝날 수 있습니다. 예를 들어 작업이 완료되기 전에 `maxTurns` / `max_turns` 제한에 도달한 경우입니다. 최종 결과 메시지는 `is_error: true`를 가지며 `success` 대신 `error_max_turns`와 같은 오류 서브타입을 가집니다.

123 

124 해당 최종 결과 메시지를 생성한 후 SDK는 CLI 프로세스가 0이 아닌 코드로 종료되기 때문에 오류를 발생시킵니다.

125 

126 명령어가 제한에 도달할 수 있는 경우 TypeScript에서는 루프를 `try`/`catch`로 감싸거나 Python에서는 `try`/`except`로 감싸십시오. [단일 메시지 입력](/ko/agent-sdk/streaming-vs-single-mode#single-message-input)에 표시된 대로 하거나, 작업이 완료될 수 있도록 `maxTurns`를 충분히 높게 설정하십시오. Python에서는 `Exception`을 캐치하십시오: SDK는 오류 결과를 일반 `Exception`으로 표시합니다.

127</Note>

128 

85<h2 id="common-slash-commands">129<h2 id="common-slash-commands">

86 일반적인 슬래시 명령어130 일반적인 슬래시 명령어

87</h2>131</h2>


90 `/compact` - 대화 기록 압축134 `/compact` - 대화 기록 압축

91</h3>135</h3>

92 136 

93`/compact` 명령어는 이전 메시지를 요약하면서 중요한 컨텍스트를 보존하여 대화 기록의 크기를 줄입니다:137`/compact` 명령어는 이전 메시지를 요약하면서 중요한 컨텍스트를 보존하여 대화 기록의 크기를 줄입니다. 압축을 수행하려면 최소 두 번의 이전 교환이 있는 기존 대화가 필요합니다. 이 예제는 먼저 대화를 진행한 후 압축을 수행하고 결과를 보고하는 `compact_boundary` 시스템 메시지를 읽습니다:

94 138 

95<CodeGroup>139<CodeGroup>

96 ```typescript TypeScript theme={null}140 ```typescript TypeScript theme={null}

97 import { query } from "@anthropic-ai/claude-agent-sdk";141 import { query } from "@anthropic-ai/claude-agent-sdk";

98 142 

143 // Compaction needs existing history, so have a conversation first

144 try {

145 for await (const message of query({

146 prompt: "Explain what this project does",

147 options: { maxTurns: 2 }

148 })) {

149 if (message.type === "result" && message.subtype === "success") {

150 console.log(message.result);

151 }

152 }

153 } catch (error) {

154 // A single-shot query() throws after yielding an error result,

155 // so the follow-up query below still runs.

156 console.error(`Session ended with an error: ${error}`);

157 }

158 

159 // Compact the same conversation

99 for await (const message of query({160 for await (const message of query({

100 prompt: "/compact",161 prompt: "/compact",

101 options: { maxTurns: 1 }162 options: { continue: true, maxTurns: 1 }

102 })) {163 })) {

103 if (message.type === "system" && message.subtype === "compact_boundary") {164 if (message.type === "system" && message.subtype === "compact_boundary") {

104 console.log("Compaction completed");165 console.log("Compaction completed");

105 console.log("Pre-compaction tokens:", message.compact_metadata.pre_tokens);166 console.log("Pre-compaction tokens:", message.compact_metadata.pre_tokens);

106 console.log("Trigger:", message.compact_metadata.trigger);167 console.log("Trigger:", message.compact_metadata.trigger);

168 // Example output:

169 // Compaction completed

170 // Pre-compaction tokens: 1842

171 // Trigger: manual

107 }172 }

108 }173 }

109 ```174 ```

110 175 

111 ```python Python theme={null}176 ```python Python theme={null}

112 import asyncio177 import asyncio

113 from claude_agent_sdk import query, ClaudeAgentOptions, SystemMessage178 from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage, SystemMessage

114 179 

115 180 

116 async def main():181 async def main():

117 async for message in query(prompt="/compact", options=ClaudeAgentOptions(max_turns=1)):182 # Compaction needs existing history, so have a conversation first

183 try:

184 async for message in query(

185 prompt="Explain what this project does",

186 options=ClaudeAgentOptions(max_turns=2),

187 ):

188 if isinstance(message, ResultMessage) and message.subtype == "success":

189 print(message.result)

190 except Exception as error:

191 # A single-shot query() raises after yielding an error result,

192 # so the follow-up query below still runs.

193 print(f"Session ended with an error: {error}")

194 

195 # Compact the same conversation

196 async for message in query(

197 prompt="/compact",

198 options=ClaudeAgentOptions(continue_conversation=True, max_turns=1),

199 ):

118 if isinstance(message, SystemMessage) and message.subtype == "compact_boundary":200 if isinstance(message, SystemMessage) and message.subtype == "compact_boundary":

119 print("Compaction completed")201 print("Compaction completed")

120 print("Pre-compaction tokens:", message.data["compact_metadata"]["pre_tokens"])202 print("Pre-compaction tokens:", message.data["compact_metadata"]["pre_tokens"])

121 print("Trigger:", message.data["compact_metadata"]["trigger"])203 print("Trigger:", message.data["compact_metadata"]["trigger"])

204 # Example output:

205 # Compaction completed

206 # Pre-compaction tokens: 1842

207 # Trigger: manual

122 208 

123 209 

124 asyncio.run(main())210 asyncio.run(main())

125 ```211 ```

126</CodeGroup>212</CodeGroup>

127 213 

214<Note>

215 `compact_boundary` 메시지는 압축이 실행되었을 때만 도착합니다. 요약할 내용이 없으면 `/compact`는 대신 이유를 보고합니다. 실행은 여전히 `success` 결과로 끝나고, `compact_boundary` 메시지는 발생하지 않으며, 결과 텍스트에 메시지가 포함됩니다. 예를 들어 짧은 단일 교환 후 `Not enough messages to compact.`입니다. 새로운 일회성 `query()` 호출은 빈 컨텍스트로 시작하므로 이 패턴을 이전 턴이 있는 세션에서 사용하세요. 예를 들어 [스트리밍 입력 모드](/ko/agent-sdk/streaming-vs-single-mode)에서 또는 세션을 재개할 때입니다.

216</Note>

217 

128<h3 id="/clear-reset-conversation-context">218<h3 id="/clear-reset-conversation-context">

129 `/clear` - 대화 컨텍스트 초기화219 `/clear` - 대화 컨텍스트 초기화

130</h3>220</h3>


170 기본 예제260 기본 예제

171</h4>261</h4>

172 262 

173`.claude/commands/refactor.md` 생성:263프로젝트에 `.claude/commands` 디렉토리가 없으면 생성한 후 `.claude/commands/refactor.md` 생성합니다:

174 264 

175```markdown theme={null}265```markdown theme={null}

176Refactor the selected code to improve readability and maintainability.266Refactor the selected code to improve readability and maintainability.


189---279---

190allowed-tools: Read, Grep, Glob280allowed-tools: Read, Grep, Glob

191description: Run security vulnerability scan281description: Run security vulnerability scan

192model: claude-opus-4-7282model: claude-opus-4-8

193---283---

194 284 

195Analyze the codebase for security vulnerabilities including:285Analyze the codebase for security vulnerabilities including:


210 import { query } from "@anthropic-ai/claude-agent-sdk";300 import { query } from "@anthropic-ai/claude-agent-sdk";

211 301 

212 // 사용자 정의 명령어 사용302 // 사용자 정의 명령어 사용

303 try {

213 for await (const message of query({304 for await (const message of query({

214 prompt: "/refactor src/auth/login.ts",305 prompt: "/refactor src/auth/login.ts",

215 options: { maxTurns: 3 }306 options: { maxTurns: 3 }


218 console.log("Refactoring suggestions:", message.message);309 console.log("Refactoring suggestions:", message.message);

219 }310 }

220 }311 }

312 } catch (error) {

313 // 단일 쿼리 query()는 오류 결과를 반환한 후 throw하므로,

314 // 아래의 두 번째 쿼리는 여전히 실행됩니다.

315 console.error(`Session ended with an error: ${error}`);

316 }

221 317 

222 // 사용자 정의 명령어는 slash_commands 목록에 나타납니다318 // 사용자 정의 명령어는 slash_commands 목록에 나타납니다

223 for await (const message of query({319 for await (const message of query({


225 options: { maxTurns: 1 }321 options: { maxTurns: 1 }

226 })) {322 })) {

227 if (message.type === "system" && message.subtype === "init") {323 if (message.type === "system" && message.subtype === "init") {

228 // 기본 제공 명령어와 사용자 정의 명령어를 모두 포함합니다

229 console.log("Available commands:", message.slash_commands);324 console.log("Available commands:", message.slash_commands);

230 // 예: ["clear", "compact", "context", "usage", "refactor", "security-check"]325 // 기본 제공 명령어와 번들된 스킬 사용자 정의 명령어를 포함합니다. 예를 들어:

326 // ["clear", "compact", "context", "usage", "code-review", "verify", "refactor", "security-check", ...]

231 }327 }

232 }328 }

233 ```329 ```


239 335 

240 async def main():336 async def main():

241 # 사용자 정의 명령어 사용337 # 사용자 정의 명령어 사용

338 try:

242 async for message in query(339 async for message in query(

243 prompt="/refactor src/auth/login.py", options=ClaudeAgentOptions(max_turns=3)340 prompt="/refactor src/auth/login.py", options=ClaudeAgentOptions(max_turns=3)

244 ):341 ):


246 for block in message.content:343 for block in message.content:

247 if hasattr(block, "text"):344 if hasattr(block, "text"):

248 print("Refactoring suggestions:", block.text)345 print("Refactoring suggestions:", block.text)

346 except Exception as error:

347 # 단일 쿼리 query()는 오류 결과를 반환한 후 raise하므로,

348 # 아래의 두 번째 쿼리는 여전히 실행됩니다.

349 print(f"Session ended with an error: {error}")

249 350 

250 # 사용자 정의 명령어는 slash_commands 목록에 나타납니다351 # 사용자 정의 명령어는 slash_commands 목록에 나타납니다

251 async for message in query(prompt="Hello", options=ClaudeAgentOptions(max_turns=1)):352 async for message in query(prompt="Hello", options=ClaudeAgentOptions(max_turns=1)):

252 if isinstance(message, SystemMessage) and message.subtype == "init":353 if isinstance(message, SystemMessage) and message.subtype == "init":

253 # 기본 제공 명령어와 사용자 정의 명령어를 모두 포함합니다

254 print("Available commands:", message.data["slash_commands"])354 print("Available commands:", message.data["slash_commands"])

255 # 예: ["clear", "compact", "context", "usage", "refactor", "security-check"]355 # 기본 제공 명령어와 번들된 스킬 사용자 정의 명령어를 포함합니다. 예를 들어:

356 # ["clear", "compact", "context", "usage", "code-review", "verify", "refactor", "security-check", ...]

256 357 

257 358 

258 asyncio.run(main())359 asyncio.run(main())


384 실용적인 예제485 실용적인 예제

385</h3>486</h3>

386 487 

387<h4 id="code-review-command">488<h4 id="pull-request-review-command">

388 코드 리뷰 명령어489 리퀘스트 리뷰 명령어

389</h4>490</h4>

390 491 

391`.claude/commands/code-review.md` 생성:492`.claude/commands/review-pr.md` 생성합니다:

392 493 

393```markdown theme={null}494```markdown theme={null}

394---495---


414Provide specific, actionable feedback organized by priority.515Provide specific, actionable feedback organized by priority.

415```516```

416 517 

518<Note>

519 Claude Code에는 번들된 `code-review` 및 `verify` 스킬이 포함되어 있습니다. 예를 들어 `.claude/commands/code-review.md`와 같이 사용자 정의 명령어의 이름을 이 중 하나로 지정하면, 사용자 정의 명령어가 번들된 스킬을 가리고 `slash_commands`는 이름을 한 번만 나열합니다.

520</Note>

521 

417<h4 id="test-runner-command">522<h4 id="test-runner-command">

418 테스트 러너 명령어523 테스트 러너 명령어

419</h4>524</h4>


442 import { query } from "@anthropic-ai/claude-agent-sdk";547 import { query } from "@anthropic-ai/claude-agent-sdk";

443 548 

444 // 코드 리뷰 실행549 // 코드 리뷰 실행

550 try {

445 for await (const message of query({551 for await (const message of query({

446 prompt: "/code-review",552 prompt: "/review-pr",

447 options: { maxTurns: 3 }553 options: { maxTurns: 3 }

448 })) {554 })) {

449 // 리뷰 피드백 처리555 // 리뷰 피드백 처리

450 }556 }

557 } catch (error) {

558 // 단일 쿼리 query()는 오류 결과를 반환한 후 throw하므로,

559 // 아래의 두 번째 쿼리는 여전히 실행됩니다.

560 console.error(`Session ended with an error: ${error}`);

561 }

451 562 

452 // 특정 테스트 실행563 // 특정 테스트 실행

453 for await (const message of query({564 for await (const message of query({


465 576 

466 async def main():577 async def main():

467 # 코드 리뷰 실행578 # 코드 리뷰 실행

468 async for message in query(prompt="/code-review", options=ClaudeAgentOptions(max_turns=3)):579 try:

580 async for message in query(prompt="/review-pr", options=ClaudeAgentOptions(max_turns=3)):

469 # 리뷰 피드백 처리581 # 리뷰 피드백 처리

470 pass582 pass

583 except Exception as error:

584 # 단일 쿼리 query()는 오류 결과를 반환한 후 raise하므로,

585 # 아래의 두 번째 쿼리는 여전히 실행됩니다.

586 print(f"Session ended with an error: {error}")

471 587 

472 # 특정 테스트 실행588 # 특정 테스트 실행

473 async for message in query(prompt="/test auth", options=ClaudeAgentOptions(max_turns=5)):589 async for message in query(prompt="/test auth", options=ClaudeAgentOptions(max_turns=5)):

Details

71 71 

72`agents` 매개변수를 사용하여 코드에서 직접 서브에이전트를 정의합니다. 이 예시는 읽기 전용 액세스가 있는 코드 리뷰어와 명령을 실행할 수 있는 테스트 러너라는 두 개의 서브에이전트를 생성합니다. Claude가 `Agent` 도구를 통해 서브에이전트를 호출하므로 `allowedTools`에 `Agent`를 포함하여 권한 프롬프트 없이 서브에이전트 호출을 자동으로 승인합니다.72`agents` 매개변수를 사용하여 코드에서 직접 서브에이전트를 정의합니다. 이 예시는 읽기 전용 액세스가 있는 코드 리뷰어와 명령을 실행할 수 있는 테스트 러너라는 두 개의 서브에이전트를 생성합니다. Claude가 `Agent` 도구를 통해 서브에이전트를 호출하므로 `allowedTools`에 `Agent`를 포함하여 권한 프롬프트 없이 서브에이전트 호출을 자동으로 승인합니다.

73 73 

74이 페이지의 대부분의 예시는 최종 결과만 출력합니다. Claude가 서브에이전트에 위임했는지 직접 답변했는지 확인하려면 [서브에이전트 호출 감지](#detecting-subagent-invocation)를 참조하세요.

75 

74<CodeGroup>76<CodeGroup>

75 ```python Python theme={null}77 ```python Python theme={null}

76 import asyncio78 import asyncio


193| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | 아니오 | 이 에이전트의 추론 노력 수준 |195| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | 아니오 | 이 에이전트의 추론 노력 수준 |

194| `permissionMode` | `PermissionMode` | 아니오 | 이 에이전트 내의 도구 실행을 위한 권한 모드 |196| `permissionMode` | `PermissionMode` | 아니오 | 이 에이전트 내의 도구 실행을 위한 권한 모드 |

195 197 

196Python SDK에서 이러한 필드 이름은 와이어 형식과 일치하도록 camelCase를 사용합니다. 자세한 내용은 [`AgentDefinition` 참조](/ko/agent-sdk/python#agentdefinition)를 참조하세요.198Python SDK에서 `disallowedTools` 및 `mcpServers`와 같은 여러 단어로 된 필드 이름은 Python의 snake\_case 규칙을 따르지 않고 와이어 형식과 일치하도록 camelCase를 유지합니다. 자세한 내용은 [`AgentDefinition` 참조](/ko/agent-sdk/python#agentdefinition)를 참조하세요.

197 199 

198<Note>200<Note>

199 {/* min-version: 2.1.172 */}Claude Code v2.1.172부터 서브에이전트는 자신의 서브에이전트를 생성할 수 있습니다. 메인 에이전트 아래 5단계 깊이의 서브에이전트는 추가 서브에이전트를 생성할 수 없습니다. 포그라운드 또는 백그라운드에서 실행되는지 여부와 관계없이 이 제한이 적용됩니다. 서브에이전트가 다른 서브에이전트를 생성하지 못하도록 하려면 `tools` 배열에서 `Agent`를 생략하거나 `disallowedTools`에 추가합니다. 전체 깊이 규칙은 [중첩된 서브에이전트](/ko/sub-agents#spawn-nested-subagents)를 참조하세요.201 {/* min-version: 2.1.172 */}Claude Code v2.1.172부터 서브에이전트는 자신의 서브에이전트를 생성할 수 있습니다. 메인 에이전트 아래 5단계 깊이의 서브에이전트는 추가 서브에이전트를 생성할 수 없습니다. 포그라운드 또는 백그라운드에서 실행되는지 여부와 관계없이 이 제한이 적용됩니다. 서브에이전트가 다른 서브에이전트를 생성하지 못하도록 하려면 `tools` 배열에서 `Agent`를 생략하거나 `disallowedTools`에 추가합니다. 전체 깊이 규칙은 [중첩된 서브에이전트](/ko/sub-agents#spawn-nested-subagents)를 참조하세요.


469 session_id = None471 session_id = None

470 472 

471 # First invocation - run the endpoint-finder subagent473 # First invocation - run the endpoint-finder subagent

474 try:

472 async for message in query(475 async for message in query(

473 prompt="Use the endpoint-finder agent to find all API endpoints in this codebase",476 prompt="Use the endpoint-finder agent to find all API endpoints in this codebase",

474 options=ClaudeAgentOptions(allowed_tools=["Read", "Grep", "Glob", "Agent"], agents=AGENTS),477 options=ClaudeAgentOptions(allowed_tools=["Read", "Grep", "Glob", "Agent"], agents=AGENTS),


483 # Print the final result486 # Print the final result

484 if hasattr(message, "result"):487 if hasattr(message, "result"):

485 print(message.result)488 print(message.result)

489 except Exception as error:

490 # A single-shot query() raises after yielding an error result,

491 # so session_id and agent_id have already been captured by the loop above.

492 print(f"Session ended with an error: {error}")

486 493 

487 # Second invocation - resume and ask follow-up494 # Second invocation - resume and ask follow-up

488 if agent_id and session_id:495 if agent_id and session_id:


494 ):501 ):

495 if hasattr(message, "result"):502 if hasattr(message, "result"):

496 print(message.result)503 print(message.result)

504 else:

505 print("No agentId found in the first query, so there is no subagent to resume.")

497 506 

498 507 

499 asyncio.run(main())508 asyncio.run(main())


522 let sessionId: string | undefined;531 let sessionId: string | undefined;

523 532 

524 // First invocation - run the endpoint-finder subagent533 // First invocation - run the endpoint-finder subagent

534 try {

525 for await (const message of query({535 for await (const message of query({

526 prompt: "Use the endpoint-finder agent to find all API endpoints in this codebase",536 prompt: "Use the endpoint-finder agent to find all API endpoints in this codebase",

527 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"], agents }537 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"], agents }


534 // Print the final result544 // Print the final result

535 if ("result" in message) console.log(message.result);545 if ("result" in message) console.log(message.result);

536 }546 }

547 } catch (error) {

548 // A single-shot query() throws after yielding an error result,

549 // so sessionId and agentId have already been captured by the loop above.

550 console.error(`Session ended with an error: ${error}`);

551 }

537 552 

538 // Second invocation - resume and ask follow-up553 // Second invocation - resume and ask follow-up

539 if (agentId && sessionId) {554 if (agentId && sessionId) {


543 })) {558 })) {

544 if ("result" in message) console.log(message.result);559 if ("result" in message) console.log(message.result);

545 }560 }

561 } else {

562 console.log("No agentId found in the first query, so there is no subagent to resume.");

546 }563 }

547 ```564 ```

548</CodeGroup>565</CodeGroup>

Details

475| `allowDangerouslySkipPermissions` | `boolean` | `false` | 권한 건너뛰기를 활성화합니다. `permissionMode: 'bypassPermissions'`를 사용할 때 필수입니다 |475| `allowDangerouslySkipPermissions` | `boolean` | `false` | 권한 건너뛰기를 활성화합니다. `permissionMode: 'bypassPermissions'`를 사용할 때 필수입니다 |

476| `allowedTools` | `string[]` | `[]` | 프롬프트 없이 자동 승인할 도구입니다. 이것은 Claude를 이 도구들로만 제한하지 않습니다. 나열되지 않은 도구는 `permissionMode` 및 `canUseTool`로 넘어갑니다. `disallowedTools`를 사용하여 도구를 차단합니다. [권한](/ko/agent-sdk/permissions#allow-and-deny-rules) 참조 |476| `allowedTools` | `string[]` | `[]` | 프롬프트 없이 자동 승인할 도구입니다. 이것은 Claude를 이 도구들로만 제한하지 않습니다. 나열되지 않은 도구는 `permissionMode` 및 `canUseTool`로 넘어갑니다. `disallowedTools`를 사용하여 도구를 차단합니다. [권한](/ko/agent-sdk/permissions#allow-and-deny-rules) 참조 |

477| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | 베타 기능 활성화 |477| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | 베타 기능 활성화 |

478| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | 도구 사용을 위한 사용자 정의 권한 함수 |478| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | 사용자 정의 권한 함수로, [권한 흐름](/ko/agent-sdk/permissions#how-permissions-are-evaluated)이 프롬프트로 넘어갈 때만 호출됩니다. `allowedTools`, 허용 규칙 또는 `permissionMode`에 의해 자동 승인된 호출에 대해서는 호출되지 않습니다. 자세한 내용은 [`CanUseTool`](#canusetool) 참조 |

479| `continue` | `boolean` | `false` | 가장 최근 대화 계속 |479| `continue` | `boolean` | `false` | 가장 최근 대화 계속 |

480| `cwd` | `string` | `process.cwd()` | 현재 작업 디렉토리 |480| `cwd` | `string` | `process.cwd()` | 현재 작업 디렉토리 |

481| `debug` | `boolean` | `false` | Claude Code 프로세스에 대한 디버그 모드 활성화 |481| `debug` | `boolean` | `false` | Claude Code 프로세스에 대한 디버그 모드 활성화 |


553* `API_TIMEOUT_MS`: Anthropic 클라이언트의 요청당 타임아웃 (밀리초 단위). 기본값 `600000`. 메인 루프 및 모든 서브에이전트에 적용됩니다.553* `API_TIMEOUT_MS`: Anthropic 클라이언트의 요청당 타임아웃 (밀리초 단위). 기본값 `600000`. 메인 루프 및 모든 서브에이전트에 적용됩니다.

554* `CLAUDE_CODE_MAX_RETRIES`: 최대 API 재시도 횟수. 기본값 `10`, 최대 `15`로 제한됩니다. 각 재시도는 자체 `API_TIMEOUT_MS` 윈도우를 가지므로 최악의 경우 벽시간은 대략 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` 더하기 백오프입니다. 더 긴 중단을 기다려야 하는 무인 실행의 경우 `CLAUDE_CODE_RETRY_WATCHDOG=1`을 설정하여 용량 오류를 무한정 재시도합니다.554* `CLAUDE_CODE_MAX_RETRIES`: 최대 API 재시도 횟수. 기본값 `10`, 최대 `15`로 제한됩니다. 각 재시도는 자체 `API_TIMEOUT_MS` 윈도우를 가지므로 최악의 경우 벽시간은 대략 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` 더하기 백오프입니다. 더 긴 중단을 기다려야 하는 무인 실행의 경우 `CLAUDE_CODE_RETRY_WATCHDOG=1`을 설정하여 용량 오류를 무한정 재시도합니다.

555* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: `run_in_background`으로 시작된 서브에이전트에 대한 정지 감시견입니다. 기본값 `600000`. 각 스트림 이벤트에서 재설정되며, 정지 시 서브에이전트를 중단하고 작업을 실패로 표시하며 부분 결과와 함께 오류를 부모에게 표시합니다. 동기 서브에이전트에는 적용되지 않습니다.555* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: `run_in_background`으로 시작된 서브에이전트에 대한 정지 감시견입니다. 기본값 `600000`. 각 스트림 이벤트에서 재설정되며, 정지 시 서브에이전트를 중단하고 작업을 실패로 표시하며 부분 결과와 함께 오류를 부모에게 표시합니다. 동기 서브에이전트에는 적용되지 않습니다.

556* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` 및 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: 헤더가 도착했지만 응답 본문이 스트리밍을 중지할 때 요청을 중단합니다. `CLAUDE_ENABLE_STREAM_WATCHDOG`이 설정되지 않으면 기본값은 직접 Anthropic API에서는 서버 제어이고 다른 공급자에서는 꺼져 있습니다. `CLAUDE_STREAM_IDLE_TIMEOUT_MS`는 기본값 `300000`이고 해당 최소값으로 고정됩니다. 중단된 요청은 일반 재시도 경로를 거칩니다.556* `CLAUDE_ENABLE_STREAM_WATCHDOG` 및 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: 헤더가 도착했지만 응답 본문이 스트리밍을 중지할 때 요청을 중단합니다. 감시견은 모든 공급자에 대해 기본적으로 켜져 있습니다. `CLAUDE_ENABLE_STREAM_WATCHDOG=0`으로 설정하여 비활성화합니다. `CLAUDE_STREAM_IDLE_TIMEOUT_MS`는 기본값 `300000`이고 해당 최소값으로 고정됩니다. 중단된 요청은 일반 재시도 경로를 거칩니다.

557 557 

558<h3 id="query-object">558<h3 id="query-object">

559 `Query` 객체559 `Query` 객체


573 setMaxThinkingTokens(maxThinkingTokens: number | null): Promise<void>;573 setMaxThinkingTokens(maxThinkingTokens: number | null): Promise<void>;

574 applyFlagSettings(settings: { [K in keyof Settings]?: Settings[K] | null }): Promise<void>;574 applyFlagSettings(settings: { [K in keyof Settings]?: Settings[K] | null }): Promise<void>;

575 initializationResult(): Promise<SDKControlInitializeResponse>;575 initializationResult(): Promise<SDKControlInitializeResponse>;

576 reinitialize(): Promise<SDKControlInitializeResponse>;

576 supportedCommands(): Promise<SlashCommand[]>;577 supportedCommands(): Promise<SlashCommand[]>;

577 supportedModels(): Promise<ModelInfo[]>;578 supportedModels(): Promise<ModelInfo[]>;

578 supportedAgents(): Promise<AgentInfo[]>;579 supportedAgents(): Promise<AgentInfo[]>;


592</h4>593</h4>

593 594 

594| 메서드 | 설명 |595| 메서드 | 설명 |

595| :------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- |596| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

596| `interrupt()` | 쿼리를 중단합니다 (스트리밍 입력 모드에서만 사용 가능) |597| `interrupt()` | 쿼리를 중단합니다 (스트리밍 입력 모드에서만 사용 가능) |

597| `rewindFiles(userMessageId, options?)` | 파일을 지정된 사용자 메시지의 상태로 복원합니다. 변경 사항을 미리 보려면 `{ dryRun: true }`를 전달합니다. `enableFileCheckpointing: true`가 필요합니다. [파일 체크포인팅](/ko/agent-sdk/file-checkpointing) 참조 |598| `rewindFiles(userMessageId, options?)` | 파일을 지정된 사용자 메시지의 상태로 복원합니다. 변경 사항을 미리 보려면 `{ dryRun: true }`를 전달합니다. `enableFileCheckpointing: true`가 필요합니다. [파일 체크포인팅](/ko/agent-sdk/file-checkpointing) 참조 |

598| `setPermissionMode()` | 권한 모드를 변경합니다 (스트리밍 입력 모드에서만 사용 가능) |599| `setPermissionMode()` | 권한 모드를 변경합니다 (스트리밍 입력 모드에서만 사용 가능) |


600| `setMaxThinkingTokens()` | *더 이상 사용되지 않음:* 대신 `thinking` 옵션을 사용합니다. 최대 사고 토큰을 변경합니다 |601| `setMaxThinkingTokens()` | *더 이상 사용되지 않음:* 대신 `thinking` 옵션을 사용합니다. 최대 사고 토큰을 변경합니다 |

601| `applyFlagSettings(settings)` | 런타임에 세션의 플래그 설정 계층으로 설정을 병합합니다 (스트리밍 입력 모드에서만 사용 가능). [`applyFlagSettings()`](#applyflagsettings) 참조 |602| `applyFlagSettings(settings)` | 런타임에 세션의 플래그 설정 계층으로 설정을 병합합니다 (스트리밍 입력 모드에서만 사용 가능). [`applyFlagSettings()`](#applyflagsettings) 참조 |

602| `initializationResult()` | 지원되는 명령, 모델, 계정 정보 및 출력 스타일 구성을 포함한 전체 초기화 결과를 반환합니다 |603| `initializationResult()` | 지원되는 명령, 모델, 계정 정보 및 출력 스타일 구성을 포함한 전체 초기화 결과를 반환합니다 |

604| `reinitialize()` | {/* min-version: 2.1.195 */}실행 중인 CLI에 `initialize` 제어 요청을 다시 보내고 캐시된 첫 연결 결과 대신 새로운 결과를 반환합니다. 연결 해제 후 세션에 다시 연결하는 것과 같은 전송 간격 후에 사용하여 보류 중인 권한 요청이 `canUseTool` 콜백에 다시 도달하도록 합니다. 응답이 손실된 요청은 다시 전달되므로 요청 ID당 콜백을 멱등성으로 만듭니다. Claude Code v2.1.195 이상이 필요합니다 |

603| `supportedCommands()` | 사용 가능한 슬래시 명령을 반환합니다 |605| `supportedCommands()` | 사용 가능한 슬래시 명령을 반환합니다 |

604| `supportedModels()` | 표시 정보를 포함한 사용 가능한 모델을 반환합니다 |606| `supportedModels()` | 표시 정보를 포함한 사용 가능한 모델을 반환합니다 |

605| `supportedAgents()` | 사용 가능한 서브에이전트를 [`AgentInfo`](#agentinfo)`[]`로 반환합니다 |607| `supportedAgents()` | 사용 가능한 서브에이전트를 [`AgentInfo`](#agentinfo)`[]`로 반환합니다 |


689 691 

690클라이언트가 이미 실행 중인 세션에 `initialize`를 보낼 때 제어 응답 래퍼는 선택적 `pending_permission_requests` 배열도 전달합니다. 필드는 응답 래퍼 자체에 있으며, 위의 `SDKControlInitializeResponse` 페이로드에는 없습니다. 각 항목은 세션이 실행 중일 때 권한 요청에 대해 스트리밍하는 것과 동일한 `{ type: "control_request", request_id, request }` 형태의 완전한 `control_request` 메시지입니다.692클라이언트가 이미 실행 중인 세션에 `initialize`를 보낼 때 제어 응답 래퍼는 선택적 `pending_permission_requests` 배열도 전달합니다. 필드는 응답 래퍼 자체에 있으며, 위의 `SDKControlInitializeResponse` 페이로드에는 없습니다. 각 항목은 세션이 실행 중일 때 권한 요청에 대해 스트리밍하는 것과 동일한 `{ type: "control_request", request_id, request }` 형태의 완전한 `control_request` 메시지입니다.

691 693 

692이들은 클라이언트가 연결되기 전에 발급되었으며 여전히 회신을 기다리고 있는 요청이므로 배열을 읽어 진행 중인 권한 프롬프트를 즉시 표시합니다. 이들은 다시 전송되지 않습니다.694이들은 클라이언트가 연결되기 전에 발급되었으며 여전히 회신을 기다리고 있는 요청입니다. SDK는 배열을 읽고 항목을 [`canUseTool`](#canusetool) 콜백으로 전달하며, 이는 전송 간격 후 [`reinitialize()`](#query-object)가 트리거하는 것과 동일한 재전달입니다. 반복된 요청 ID를 멱등성으로 처리합니다. 연결이 끊어지기 전에 콜백이 이미 받은 요청을 반복할 수 있기 때문입니다.

693 695 

694<h3 id="agentdefinition">696<h3 id="agentdefinition">

695 `AgentDefinition`697 `AgentDefinition`


886 888 

887도구 사용을 제어하기 위한 사용자 정의 권한 함수 타입입니다.889도구 사용을 제어하기 위한 사용자 정의 권한 함수 타입입니다.

888 890 

891함수는 대화형 권한 프롬프트의 SDK 대체입니다: [권한 평가 흐름](/ko/agent-sdk/permissions#how-permissions-are-evaluated)이 프롬프트로 해결될 때만 호출됩니다. `allowedTools` 항목, 설정 허용 규칙 또는 `acceptEdits` 또는 `bypassPermissions`와 같은 권한 모드에 의해 이미 승인된 도구 호출은 이를 호출하지 않습니다. 모든 도구 호출을 제어하려면 [`PreToolUse` 훅](/ko/agent-sdk/hooks)을 사용합니다.

892 

889```typescript theme={null}893```typescript theme={null}

890type CanUseTool = (894type CanUseTool = (

891 toolName: string,895 toolName: string,


1531 session_id: string;1535 session_id: string;

1532 transcript_path: string;1536 transcript_path: string;

1533 cwd: string;1537 cwd: string;

1538 prompt_id?: string;

1534 permission_mode?: string;1539 permission_mode?: string;

1535 effort?: { level: string };1540 effort?: { level: string };

1536 agent_id?: string;1541 agent_id?: string;


1538};1543};

1539```1544```

1540 1545 

1546`prompt_id` 필드는 현재 처리 중인 사용자 프롬프트를 식별하는 UUID입니다. [OpenTelemetry 이벤트의 `prompt.id` 속성](/ko/monitoring-usage#event-correlation-attributes)과 일치하며 첫 번째 사용자 입력까지는 없습니다. Claude Code v2.1.196 이상이 필요합니다.

1547 

1541<h4 id="pretoolusehookinput">1548<h4 id="pretoolusehookinput">

1542 `PreToolUseHookInput`1549 `PreToolUseHookInput`

1543</h4>1550</h4>


2037 2044 

2038```typescript theme={null}2045```typescript theme={null}

2039type MonitorInput = {2046type MonitorInput = {

2040 command: string;2047 command?: string;

2048 ws?: {

2049 url: string;

2050 protocols?: string[];

2051 };

2041 description: string;2052 description: string;

2042 timeout_ms?: number;2053 timeout_ms?: number;

2043 persistent?: boolean;2054 persistent?: boolean;

2044};2055};

2045```2056```

2046 2057 

2047백그라운드 스크립트를 실행하고 각 stdout 라인을 Claude에 이벤트로 전달하므로 폴링 없이 반응할 수 있습니다. 로그 테일과 같은 세션 길이 감시의 경우 `persistent: true` 설정합니다. Monitor는 Bash와 동일한 권한 규칙을 따릅니다. [Monitor 도구 참조](/ko/tools-reference#monitor-tool)에서 동작 공급자 가용성을 참조하세요.2058백그라운드 소스를 실행하고 각 이벤트를 Claude에 전달하므로 폴링 없이 반응할 수 있습니다: `command`는 스크립트를 실행하고 stdout 라인당 하나의 이벤트를 내보내며, `ws`는 WebSocket을 열고 텍스트 프레임당 하나의 이벤트를 내보냅니다. `command` 또는 `ws` 중 정확히 하나를 제공합니다. {/* min-version: 2.1.195 */}`ws` 소스는 Claude Code v2.1.195 이상이 필요합니다.

2059 

2060로그 테일과 같은 세션 길이 감시의 경우 `persistent: true`를 설정합니다. Monitor가 명령을 실행할 때, Bash와 동일한 권한 규칙을 따릅니다. WebSocket 감시는 별도로 승인을 요청합니다. 동작 및 공급자 가용성은 [Monitor 도구 참조](/ko/tools-reference#monitor-tool)를 참조하세요.

2048 2061 

2049<h3 id="taskoutput">2062<h3 id="taskoutput">

2050 TaskOutput2063 TaskOutput


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

2237 2250 

2238| 필드 | 타입 | 설명 |2251| 필드 | 타입 | 설명 |

2239| ----------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |2252| ----------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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

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


3098```3111```

3099 3112 

3100<Warning>3113<Warning>

3101 `context-1m-2025-08-07` 베타는 2026년 4월 30일부터 폐기되었습니다. Claude Sonnet 4.5 또는 Sonnet 4와 함께 이 값을 전달하면 효과가 없으며, 표준 200k 토큰 컨텍스트 윈도우를 초과하는 요청은 오류를 반환합니다. 1M 토큰 컨텍스트 윈도우를 사용하려면 [Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7 또는 Claude Opus 4.8](https://platform.claude.com/docs/ko/about-claude/models/overview)로 마이그레이션하세요. 이들은 베타 헤더 없이 표준 가격으로 1M 컨텍스트를 포함합니다.3114 `context-1m-2025-08-07` 베타는 2026년 4월 30일부터 폐기되었습니다. Claude Sonnet 4.5 또는 Sonnet 4와 함께 이 값을 전달하면 효과가 없으며, 표준 200k 토큰 컨텍스트 윈도우를 초과하는 요청은 오류를 반환합니다. 1M 토큰 컨텍스트 윈도우를 사용하려면 [Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7 또는 Claude Opus 4.8](https://platform.claude.com/docs/ko/about-claude/models/overview)로 마이그레이션하세요. 이들은 베타 헤더 없이 표준 가격으로 1M 컨텍스트를 포함합니다.

3102</Warning>3115</Warning>

3103 3116 

3104<h3 id="slashcommand">3117<h3 id="slashcommand">

Details

44 44 

45콜백은 두 가지 경우에 실행됩니다.45콜백은 두 가지 경우에 실행됩니다.

46 46 

471. **도구가 승인 필요**: Claude가 [권한 규칙](/ko/agent-sdk/permissions) 또는 모드에 의해 자동 승인되지 않은 도구를 사용하려고 합니다. 도구에 대해 `tool_name`을 확인합니다(예: `"Bash"`, `"Write"`).471. **도구가 승인 필요**: Claude가 [권한 규칙](/ko/agent-sdk/permissions) 또는 권한 모드에 의해 자동 승인되지 않은 도구를 사용하려고 합니다. 도구에 대해 `tool_name`을 확인합니다(예: `"Bash"`, `"Write"`).

482. **Claude가 질문함**: Claude가 `AskUserQuestion` 도구를 호출합니다. `tool_name == "AskUserQuestion"`을 확인하여 다르게 처리합니다. `tools` 배열을 지정하는 경우 이것이 작동하려면 `AskUserQuestion`을 포함하십시오. 자세한 내용은 [명확화 질문 처리](#handle-clarifying-questions)를 참조하십시오.482. **Claude가 질문함**: Claude가 `AskUserQuestion` 도구를 호출합니다. `tool_name == "AskUserQuestion"`을 확인하여 다르게 처리합니다. `tools` 배열을 지정하는 경우 이것이 작동하려면 `AskUserQuestion`을 포함하십시오. 자세한 내용은 [명확화 질문 처리](#handle-clarifying-questions)를 참조하십시오.

49 49 

50<Note>50<Warning>

51 사용자에게 프롬프트하지 않고 도구를 자동으로 허용하거나 거부하려면 [](/ko/agent-sdk/hooks)을 대신 사용하십시오. 훅은 `canUseTool` 전에 실행되며 자신의 로직에 따라 요청을 허용, 거부 또는 수정할 수 있습니다. [`PermissionRequest` 훅](/ko/agent-sdk/hooks#available-hooks)을 사용하여 Claude가 승인을 기다리고 있을 때 외부 알림(Slack, 이메일, 푸시)을 보낼 수도 있습니다.51 **콜백은 자동 승인된 도구에 대해서는 실행되지 않습니다.** [권한 평가 흐름](/ko/agent-sdk/permissions#how-permissions-are-evaluated)의 이전 단계에서 허용 규칙이나 `acceptEdits` 또는 `bypassPermissions`와 같은 모드가 `canUseTool`확인하기 전에 호출을 해결합니다. `allowed_tools`에 도구를 나열하면, 요청이 질문 규칙이나 `plan` 모드에 의해 프롬프트로 다시 라우팅되지 않는 한 해당 도구에 대한 `canUseTool` 확인이 실행되지 않습니다. 모든 도구 호출에 적용되어야 하는 로직의 경우 흐름의 나머지 부분 전에 실행되고 요청을 허용, 거부 또는 수정할 수 있는 [`PreToolUse` 훅](/ko/agent-sdk/hooks)을 사용하십시오.

52</Note>52</Warning>

53 

54또한 [`PermissionRequest` 훅](/ko/agent-sdk/hooks#available-hooks)을 사용하여 Claude가 승인을 기다리고 있을 때 외부 알림(Slack, 이메일, 푸시)을 보낼 수 있습니다.

53 55 

54<h2 id="handle-tool-approval-requests">56<h2 id="handle-tool-approval-requests">

55 도구 승인 요청 처리57 도구 승인 요청 처리

agent-view.md +54 −32

Details

76 76 

77`claude agents`를 실행하여 에이전트 뷰를 엽니다. 전체 터미널을 차지하고 상태별로 그룹화된 모든 세션을 나열하며, 고정된 세션과 입력이 필요한 세션이 맨 위에 있습니다. 각 행은 세션의 이름, 현재 활동 및 마지막 변경 이후 경과 시간을 보여줍니다.77`claude agents`를 실행하여 에이전트 뷰를 엽니다. 전체 터미널을 차지하고 상태별로 그룹화된 모든 세션을 나열하며, 고정된 세션과 입력이 필요한 세션이 맨 위에 있습니다. 각 행은 세션의 이름, 현재 활동 및 마지막 변경 이후 경과 시간을 보여줍니다.

78 78 

79기본적으로 목록은 모든 프로젝트에 걸쳐 시작한 모든 백그라운드 세션을 표시합니다. 한 저장소에서 작업하는 세션과 다른 worktree에서 작업하는 세션은 모두 여기에 나타나며, 에이전트 뷰를 연 디렉토리와 관계없이 표시됩니다. 목록을 한 프로젝트로 범위를 지정하려면 `--cwd`를 전달합니다(Claude Code v2.1.141 이상 필요):79기본적으로 목록은 모든 프로젝트에 걸쳐 시작한 모든 백그라운드 세션을 표시합니다. 한 저장소에서 작업하는 세션과 다른 worktree에서 작업하는 세션은 모두 여기에 나타나며, 에이전트 뷰를 연 디렉토리와 관계없이 표시됩니다. 목록을 한 프로젝트로 범위를 지정하려면 `--cwd`를 전달합니다:

80 80 

81```bash theme={null}81```bash theme={null}

82claude agents --cwd ~/projects/my-app82claude agents --cwd ~/projects/my-app


143 143 

144각 행의 한 줄 요약은 [Haiku 클래스 모델](/ko/model-config)에 의해 생성되므로 행은 세션이 무엇을 하고 있는지, 무엇이 필요한지, 또는 트랜스크립트를 열지 않고도 무엇을 생성했는지 알려줄 수 있습니다. 세션이 적극적으로 작동하는 동안 요약은 최대 15초마다 한 번, 그리고 각 턴이 끝날 때 한 번 새로고침됩니다.144각 행의 한 줄 요약은 [Haiku 클래스 모델](/ko/model-config)에 의해 생성되므로 행은 세션이 무엇을 하고 있는지, 무엇이 필요한지, 또는 트랜스크립트를 열지 않고도 무엇을 생성했는지 알려줄 수 있습니다. 세션이 적극적으로 작동하는 동안 요약은 최대 15초마다 한 번, 그리고 각 턴이 끝날 때 한 번 새로고침됩니다.

145 145 

146v2.1.161부터 세션이 서브에이전트, 백그라운드 셸 명령 또는 모니터와 같은 두 개 이상의 병렬 작업 항목을 실행 중일 때, `2/5`와 같은 `done/total` 개수가 요약 텍스트 앞에 나타납니다.146세션이 서브에이전트, 백그라운드 셸 명령 또는 모니터와 같은 두 개 이상의 병렬 작업 항목을 실행 중일 때, `2/5`와 같은 `done/total` 개수가 요약 텍스트 앞에 나타납니다.

147 147 

148각 새로고침은 일반 제공자를 통한 하나의 짧은 Haiku 클래스 요청이며, 세션 자체와 동일한 [데이터 사용 약관](/ko/data-usage)에 따라 청구되고 처리됩니다. Bedrock, Vertex AI, Microsoft Foundry 및 사용자 정의 게이트웨이와 같은 타사 제공자에서는 Haiku 모델이 구성되지 않은 경우 요청이 세션의 주 모델로 폴백됩니다. 이러한 제공자에서 이 요약에 대한 모델을 선택하려면 [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/ko/model-config#environment-variables)을 설정합니다.148각 새로고침은 일반 제공자를 통한 하나의 짧은 Haiku 클래스 요청이며, 세션 자체와 동일한 [데이터 사용 약관](/ko/data-usage)에 따라 청구되고 처리됩니다. Bedrock, Vertex AI, Microsoft Foundry 및 사용자 정의 게이트웨이와 같은 타사 제공자에서는 Haiku 모델이 구성되지 않은 경우 요청이 세션의 주 모델로 폴백됩니다. 이러한 제공자에서 이 요약에 대한 모델을 선택하려면 [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/ko/model-config#environment-variables)을 설정합니다.

149 149 


172 172 

173선택된 행에서 `Space`를 눌러 엿보기 패널을 엽니다. 세션이 필요로 하는 것, 최근 출력 및 열린 풀 리퀘스트를 보여줍니다. 대부분의 경우 이것으로 충분하며 전체 트랜스크립트를 열 필요가 없습니다.173선택된 행에서 `Space`를 눌러 엿보기 패널을 엽니다. 세션이 필요로 하는 것, 최근 출력 및 열린 풀 리퀘스트를 보여줍니다. 대부분의 경우 이것으로 충분하며 전체 트랜스크립트를 열 필요가 없습니다.

174 174 

175v2.1.161부터 세션이 병렬 작업 항목을 실행 중일 때, 패널은 또한 가장 오래 실행 중인 항목의 이름과 실행 시간을 표시하므로 연결하지 않고도 세션이 기다리는 것을 볼 수 있습니다.175세션이 병렬 작업 항목을 실행 중일 때, 패널은 또한 가장 오래 실행 중인 항목의 이름과 실행 시간을 표시하므로 연결하지 않고도 세션이 기다리는 것을 볼 수 있습니다.

176 176 

177엿보기 패널에 답변을 입력하고 `Enter`를 눌러 해당 세션으로 전송합니다. 세션이 객관식 질문을 하는 경우 엿보기 패널은 옵션을 표시하고 숫자 키를 눌러 하나를 선택할 수 있습니다. 다른 차단된 세션의 경우 `Tab`을 눌러 입력을 편집하기 전에 제안된 답변으로 채웁니다. 답변 앞에 `!`를 붙여 Bash 명령을 대신 전송합니다.177엿보기 패널에 답변을 입력하고 `Enter`를 눌러 해당 세션으로 전송합니다. 세션이 객관식 질문을 하는 경우 엿보기 패널은 옵션을 표시하고 숫자 키를 눌러 하나를 선택할 수 있습니다. 다른 차단된 세션의 경우 `Tab`을 눌러 입력을 편집하기 전에 제안된 답변으로 채웁니다. 답변 앞에 `!`를 붙여 Bash 명령을 대신 전송합니다.

178 178 


202 목록 구성202 목록 구성

203</h3>203</h3>

204 204 

205에이전트 뷰는 세션을 그룹화하여 입력이 필요한 세션이 맨 위에 있고, `검토 준비 완료`와 `입력 필요`가 `작업 중`과 `완료됨` 위에 있습니다. 이 그룹 이름은 [상태](#read-session-state) 위의 일대일 매핑이 아닙니다: 세션이 열린 풀 리퀘스트를 가지면 `검토 준비 완료`로 이동하고, `완료됨`은 완료되고, 실패하고, 중지된 세션을 함께 수집합니다. `Ctrl+S`를 눌러 대신 디렉토리별로 그룹화로 전환합니다. 선택 사항은 실행 간에 저장됩니다.205에이전트 뷰는 세션을 그룹화하여 입력이 필요한 세션이 맨 위에 있고, `검토 준비 완료`와 `입력 필요`가 `작업 중`과 `완료됨` 위에 있습니다. 이 그룹 이름은 [상태](#read-session-state) 위의 일대일 매핑이 아닙니다: 세션이 열린 풀 리퀘스트를 가지면 `검토 준비 완료`로 이동하고, `완료됨`은 완료되고, 실패하고, 중지된 세션을 함께 수집합니다.

206 

207`Ctrl+S`를 눌러 대신 디렉토리별로 그룹화로 전환합니다. 선택 사항은 실행 간에 저장됩니다.

206 208 

207그룹 내에서:209그룹 내에서:

208 210 


215 217 

216삭제하면 세션이 에이전트 뷰에서 제거됩니다. Claude가 세션에 대해 [worktree를 생성](#how-file-edits-are-isolated)한 경우 삭제하면 커밋되지 않은 변경 사항을 포함한 해당 worktree도 제거되므로 유지하려는 작업을 먼저 푸시하거나 커밋합니다. 직접 생성하고 세션을 시작한 worktree는 제자리에 남겨집니다. 대화 트랜스크립트는 로컬 머신에 남아 있으며 `claude --resume`을 통해 계속 사용할 수 있습니다.218삭제하면 세션이 에이전트 뷰에서 제거됩니다. Claude가 세션에 대해 [worktree를 생성](#how-file-edits-are-isolated)한 경우 삭제하면 커밋되지 않은 변경 사항을 포함한 해당 worktree도 제거되므로 유지하려는 작업을 먼저 푸시하거나 커밋합니다. 직접 생성하고 세션을 시작한 worktree는 제자리에 남겨집니다. 대화 트랜스크립트는 로컬 머신에 남아 있으며 `claude --resume`을 통해 계속 사용할 수 있습니다.

217 219 

218오래된 완료된 세션은 목록을 짧게 유지하기 위해 `… N more` 행으로 접힙니다. 실패 및 열린 풀 리퀘스트가 있는 세션은 항상 표시됩니다.220오래된 완료된 세션은 목록을 짧게 유지하기 위해 `… N more` 행으로 접힙니다. 실패 및 열린 풀 리퀘스트가 있는 세션은 항상 표시됩니다. `완료됨` 그룹은 라이브 그룹 이후 남은 수직 공간을 채우며, 짧은 터미널에서 헤더는 단일 요약 라인으로 압축되므로 작업 중이거나 입력이 필요한 세션이 표시된 상태로 유지됩니다.

219 221 

220<h3 id="filter-sessions">222<h3 id="filter-sessions">

221 세션 필터링223 세션 필터링


305 307 

306`/background` 또는 별칭 `/bg`를 실행하여 현재 대화를 백그라운드 세션으로 이동합니다. `/bg run the test suite and fix any failures`와 같은 프롬프트를 전달하여 먼저 하나의 추가 명령을 보냅니다. Claude가 응답 중일 때 `/bg`를 실행하면 응답이 백그라운드 세션에서 계속됩니다.308`/background` 또는 별칭 `/bg`를 실행하여 현재 대화를 백그라운드 세션으로 이동합니다. `/bg run the test suite and fix any failures`와 같은 프롬프트를 전달하여 먼저 하나의 추가 명령을 보냅니다. Claude가 응답 중일 때 `/bg`를 실행하면 응답이 백그라운드 세션에서 계속됩니다.

307 309 

308대화형 세션에서 백그라운드로 이동하면 저장된 대화에서 재개되는 새로운 프로세스가 시작되므로 서브에이전트, [모니터](/ko/tools-reference#monitor-tool) 백그라운드 명령을 실행하는 것이 이동되지 않습니다. Claude는 실행 중인 것이 있을 백그라운드로 이동하기 전에 확인을 요청합니다. 백그라운드에 있으면 세션은 새로운 서브에이전트, 모니터 백그라운드 명령을 시작할 있으며, 이들은 나중의 분리 재연결 전체에서 계속 실행됩니다.310대화형 세션에서 백그라운드로 이동하면 저장된 대화에서 재개되는 새로운 프로세스가 시작되며, 진행 중인 작업이 이동됩니다: 실행 중인 백그라운드 셸 명령, 백그라운드 서브에이전트, 동적 워크플로우 및 [`/loop`](/ko/scheduled-tasks) 생성한 예약된 작업이 백그라운드 세션으로 이동하고 계속 실행됩니다. 서브에이전트는 시작한 모든 것과 함께 이동하므로 Windows를 포함한 모든 작업이 이동할 있을 때만 이동합니다. 진행 중인 작업을 이동하는 대신 중지하려면 [`CLAUDE_DISABLE_ADOPT=1`](/ko/env-vars#variables) 환경 변수를 설정합니다. Claude Code는 백그라운드로 이동하기 전에 확인을 요청합니다.

311 

312이동할 수 없는 작업(예: 실행 중인 [모니터](/ko/tools-reference#monitor-tool))은 중지됩니다. 모니터를 소유한 백그라운드 서브에이전트는 함께 중지됩니다. 이러한 작업이 실행 중일 때 Claude Code는 `Background this session?` 대화 상자를 표시하므로 중지되기 전에 확인할 수 있습니다.

313 

314백그라운드에 있으면 세션은 새로운 서브에이전트, 모니터 및 백그라운드 명령을 시작할 수 있으며, 이들은 나중의 분리 및 재연결 전체에서 계속 실행됩니다.

309 315 

310원본 실행의 구성 플래그는 백그라운드로 이동된 세션으로 전달되므로 MCP 서버, 설정 및 폴백 모델이 계속 적용됩니다:316원본 실행의 구성 플래그는 백그라운드로 이동된 세션으로 전달되므로 MCP 서버, 설정 및 폴백 모델이 계속 적용됩니다:

311 317 


394}400}

395```401```

396 402 

397<Note>

398 `worktree.bgIsolation` 설정은 Claude Code v2.1.143 이상이 필요합니다.

399</Note>

400 

401git 저장소 외부에서 세션은 작업 디렉토리에 직접 쓰며 서로 격리되지 않으므로 동일한 파일을 편집하는 병렬 세션을 디스패치하지 않도록 합니다. 다른 버전 제어 시스템을 사용하는 경우 [`WorktreeCreate` 훅](/ko/worktrees#non-git-version-control)을 구성하면 Claude는 git에 대해 수행하는 것과 동일한 방식으로 편집을 격리합니다.403git 저장소 외부에서 세션은 작업 디렉토리에 직접 쓰며 서로 격리되지 않으므로 동일한 파일을 편집하는 병렬 세션을 디스패치하지 않도록 합니다. 다른 버전 제어 시스템을 사용하는 경우 [`WorktreeCreate` 훅](/ko/worktrees#non-git-version-control)을 구성하면 Claude는 git에 대해 수행하는 것과 동일한 방식으로 편집을 격리합니다.

402 404 

403에이전트 뷰에서 세션을 삭제하면(`Ctrl+X` 두 번) Claude가 생성한 worktree가 제거되며, 커밋되지 않은 변경 사항도 포함되므로 유지하려는 변경 사항을 먼저 병합하거나 푸시합니다. 셸에서 [`claude rm`](#manage-sessions-from-the-shell)으로 삭제하면 커밋되지 않은 변경 사항이 있는 worktree를 유지하고 경로를 인쇄하므로 직접 정리할 수 있습니다. 직접 생성한 worktree이고 세션을 시작한 경우 어느 쪽이든 그대로 유지됩니다.405에이전트 뷰에서 세션을 삭제하면(`Ctrl+X` 두 번) Claude가 생성한 worktree가 제거되며, 커밋되지 않은 변경 사항도 포함되므로 유지하려는 변경 사항을 먼저 병합하거나 푸시합니다. 셸에서 [`claude rm`](#manage-sessions-from-the-shell)으로 삭제하면 커밋되지 않은 변경 사항이 있는 worktree를 유지하고 경로를 인쇄하므로 직접 정리할 수 있습니다. 직접 생성한 worktree이고 세션을 시작한 경우 어느 쪽이든 그대로 유지됩니다.


410 모델 설정412 모델 설정

411</h3>413</h3>

412 414 

413에이전트 뷰 헤더에 표시된 모델 이름은 디스패치 기본값입니다. 입력에서 시작하는 새로운 세션은 이 모델을 사용하며, 이는 사용자 설정의 [`model` 설정](/ko/settings#available-settings)에서 제공됩니다. [`/model` 선택기](/ko/model-config)에서 모델을 선택하여 설정하거나 설정을 직접 편집합니다. 전체 에이전트 뷰 세션에 대해 이를 재정의하려면 에이전트 뷰를 열 때 `--model`을 전달합니다. [권한 모드, 모델 및 노력](#permission-mode-model-and-effort)을 참조하십시오.415에이전트 뷰 헤더에 표시된 모델 이름은 디스패치 기본값입니다. 입력에서 시작하는 새로운 세션은 이 모델을 사용하며, 이는 사용자 설정의 [`model` 설정](/ko/settings#available-settings)에서 제공됩니다. [`/model` 선택기](/ko/model-config)에서 모델을 선택하여 설정하거나 설정을 직접 편집합니다.

416 

417전체 에이전트 뷰 세션에 대해 이를 재정의하려면 에이전트 뷰를 열 때 `--model`을 전달합니다. [권한 모드, 모델 및 노력](#permission-mode-model-and-effort)을 참조하십시오.

414 418 

415에이전트 뷰 내에서 디스패치 기본값을 변경하려면 디스패치 입력에서 `/model` 뒤에 모델 이름을 입력하고 `Enter`를 누릅니다. 헤더는 `(session)` 마커와 함께 해당 모델을 표시하도록 업데이트되며, 그 후 디스패치하는 세션은 이를 사용합니다. `/model default`를 입력하여 재정의를 지우고 디스패치 기본값으로 돌아갑니다. 이 재정의는 현재 `claude agents` 실행의 나머지 동안 지속되며, 설정 파일에 쓰지 않으며, Claude Code v2.1.172 이상이 필요합니다. 다음 예제는 Opus에서 한 세션을 디스패치하고 Sonnet에서 다음 세션을 디스패치합니다:419에이전트 뷰 내에서 디스패치 기본값을 변경하려면 디스패치 입력에서 `/model` 뒤에 모델 이름을 입력하고 `Enter`를 누릅니다. 헤더는 `(session)` 마커와 함께 해당 모델을 표시하도록 업데이트되며, 그 후 디스패치하는 세션은 이를 사용합니다. `/model default`를 입력하여 재정의를 지우고 디스패치 기본값으로 돌아갑니다. 이 재정의는 현재 `claude agents` 실행의 나머지 동안 지속되며, 설정 파일에 쓰지 않습니다. 다음 예제는 Opus에서 한 세션을 디스패치하고 Sonnet에서 다음 세션을 디스패치합니다:

416 420 

417```text theme={null}421```text theme={null}

418/model opus422/model opus


449 453 

450`claude agents`는 또한 `--dangerously-skip-permissions`를 `--permission-mode bypassPermissions`의 약자로 허용하며, `--allow-dangerously-skip-permissions`를 사용하여 각 디스패치된 세션의 `Shift+Tab` 사이클에서 `bypassPermissions`를 사용 가능하게 만들 수 있습니다. 둘 다 [최상위 CLI 플래그](/ko/cli-reference)와 일치합니다.454`claude agents`는 또한 `--dangerously-skip-permissions`를 `--permission-mode bypassPermissions`의 약자로 허용하며, `--allow-dangerously-skip-permissions`를 사용하여 각 디스패치된 세션의 `Shift+Tab` 사이클에서 `bypassPermissions`를 사용 가능하게 만들 수 있습니다. 둘 다 [최상위 CLI 플래그](/ko/cli-reference)와 일치합니다.

451 455 

452이러한 플래그는 여러 릴리스에 걸쳐 추가되었습니다. 이전 버전은 이러한 플래그를 unknown-option 오류로 거부합니다.

453 

454| 플래그 또는 설정 | 최소 버전 |

455| :--------------------------------------------------------------------------- | :------- |

456| `--permission-mode`, `--model`, `--effort`, `--dangerously-skip-permissions` | v2.1.142 |

457| `--allow-dangerously-skip-permissions` | v2.1.143 |

458| `--agent` 및 디스패치된 세션에 대한 `agent` 설정 준수 | v2.1.157 |

459 

460v2.1.157 이전에는 에이전트 뷰가 `agent` 설정을 무시하고 기본 제공 `claude` 에이전트를 디스패치합니다.

461 

462활성 기본값은 디스패치 입력 아래의 바닥글에 나타납니다.456활성 기본값은 디스패치 입력 아래의 바닥글에 나타납니다.

463 457 

464이러한 플래그가 없으면 세션은 해당 디렉토리의 설정에서 `defaultMode`를 사용하거나 디스패치된 [서브에이전트의 프론트매터](/ko/sub-agents#supported-frontmatter-fields)에서 `permissionMode`를 사용하며, 에이전트 뷰 헤더에 표시된 모델을 사용합니다.458이러한 플래그가 없으면 세션은 해당 디렉토리의 설정에서 `defaultMode`를 사용하거나 디스패치된 [서브에이전트의 프론트매터](/ko/sub-agents#supported-frontmatter-fields)에서 `permissionMode`를 사용하며, 에이전트 뷰 헤더에 표시된 모델을 사용합니다.

465 459 

466`bypassPermissions` 또는 `auto`를 사용하는 것은 대화형으로 한 번 실행하여 해당 모드를 수락할 때까지 거부됩니다. 이러한 모드는 감시하지 않는 세션이 승인 없이 작동하도록 허용하기 때문입니다. 이는 `claude agents`에 모드를 전달하든 `claude --bg --permission-mode`에 전달하든 동일하게 적용됩니다.460`bypassPermissions` 또는 `auto`를 사용하는 것은 대화형으로 한 번 실행하여 해당 모드를 수락할 때까지 거부됩니다. 이러한 모드는 감시하지 않는 세션이 승인 없이 작동하도록 허용하기 때문입니다. 이는 `claude agents`에 모드를 전달하든 `claude --bg --permission-mode`에 전달하든 동일하게 적용됩니다. `--allow-dangerously-skip-permissions`를 전달하면 동일한 면책 조항을 표시하고, 수락하면 `bypassPermissions`를 해당 세션의 `Shift+Tab` 사이클에서 사용 가능하게 만듭니다.

467 461 

468<h3 id="settings-plugins-and-mcp-servers">462<h3 id="settings-plugins-and-mcp-servers">

469 설정, 플러그인 및 MCP 서버463 설정, 플러그인 및 MCP 서버

470</h3>464</h3>

471 465 

472에이전트 뷰는 설정, 플러그인, MCP 서버 및 추가 디렉토리를 로드하기 위해 `claude`와 동일한 구성 플래그를 허용합니다. 이러한 플래그는 Claude Code v2.1.142 이상이 필요합니다. 각 플래그는 에이전트 뷰 자체에 적용되며 디스패치하는 모든 세션에 전달되므로 이러한 방식으로 로드하는 플러그인 또는 MCP 서버는 해당 세션에서도 사용 가능합니다.466에이전트 뷰는 설정, 플러그인, MCP 서버 및 추가 디렉토리를 로드하기 위해 `claude`와 동일한 구성 플래그를 허용합니다. 각 플래그는 에이전트 뷰 자체에 적용되며 디스패치하는 모든 세션에 전달되므로 이러한 방식으로 로드하는 플러그인 또는 MCP 서버는 해당 세션에서도 사용 가능합니다.

473 467 

474| 플래그 | 효과 |468| 플래그 | 효과 |

475| :----------------------------------------------------------------------------------------------- | :------------------------------------------ |469| :----------------------------------------------------------------------------------------------- | :------------------------------------------ |


523 517 

524감독자 및 세션은 대화형 세션과 동일한 저장된 자격 증명으로 인증하고 모델 API 이상의 추가 네트워크 연결을 하지 않습니다. `CLAUDE_CODE_USE_BEDROCK` 및 `ANTHROPIC_DEFAULT_*_MODEL` 별칭과 같은 공급자 선택 변수는 각 세션을 디스패치한 셸에서 읽혀지고 해당 워커에 적용됩니다.518감독자 및 세션은 대화형 세션과 동일한 저장된 자격 증명으로 인증하고 모델 API 이상의 추가 네트워크 연결을 하지 않습니다. `CLAUDE_CODE_USE_BEDROCK` 및 `ANTHROPIC_DEFAULT_*_MODEL` 별칭과 같은 공급자 선택 변수는 각 세션을 디스패치한 셸에서 읽혀지고 해당 워커에 적용됩니다.

525 519 

526{/* min-version: 2.1.174 */}백그라운드 세션은 `ANTHROPIC_BASE_URL`, 동등한 Bedrock, Vertex 및 Foundry 기본 URL 변수, 또는 감독자를 시작한 셸이나 디스패칭 셸에서 쌍을 이루는 `ANTHROPIC_AUTH_TOKEN`과 같은 게이트웨이 엔드포인트 변수를 상속하지 않습니다. 세션은 저장된 자격 증명과 프로젝트 디렉토리의 [설정](/ko/settings)에 있는 `env` 값을 사용합니다. 프로젝트의 백그라운드 세션을 [LLM 게이트웨이](/ko/llm-gateway)로 지정하려면 셸에서 내보내는 대신 해당 프로젝트의 `.claude/settings.json` `env` 블록에 `ANTHROPIC_BASE_URL`을 설정합니다. v2.1.174 이전에는 백그라운드 세션이 감독자의 시작 셸에서 이러한 변수를 상속했으므로 프로젝트 디렉토리에 구성된 게이트웨이 대신 해당 셸에 구성된 게이트웨이를 사용할 수 있었습니다.520백그라운드 세션은 `ANTHROPIC_BASE_URL`, 동등한 Bedrock, Vertex 및 Foundry 기본 URL 변수, 또는 감독자를 시작한 셸이나 디스패칭 셸에서 쌍을 이루는 `ANTHROPIC_AUTH_TOKEN`과 같은 게이트웨이 엔드포인트 변수를 상속하지 않습니다. 세션은 저장된 자격 증명과 프로젝트 디렉토리의 [설정](/ko/settings)에 있는 `env` 값을 사용합니다. 프로젝트의 백그라운드 세션을 [LLM 게이트웨이](/ko/llm-gateway)로 지정하려면 셸에서 내보내는 대신 해당 프로젝트의 `.claude/settings.json` `env` 블록에 `ANTHROPIC_BASE_URL`을 설정합니다.

527 521 

528각 백그라운드 세션은 자체 Claude Code 프로세스이며 터미널이 아닌 감독자에 의해 관리됩니다. 적극적으로 작업 중이거나, 입력을 기다리거나, 터미널이 연결된 세션은 프로세스를 실행 상태로 유지합니다. 실행 중인 백그라운드 셸 명령, 서브에이전트, 동적 워크플로우 또는 모니터는 활성 작업으로 간주되므로 개발 서버와 같은 장기 실행 프로세스는 세션을 활성 상태로 유지합니다.522각 백그라운드 세션은 자체 Claude Code 프로세스이며 터미널이 아닌 감독자에 의해 관리됩니다. 적극적으로 작업 중이거나, 입력을 기다리거나, 터미널이 연결된 세션은 프로세스를 실행 상태로 유지합니다. 실행 중인 백그라운드 셸 명령, 서브에이전트, 동적 워크플로우 또는 모니터는 활성 작업으로 간주되므로 개발 서버와 같은 장기 실행 프로세스는 세션을 활성 상태로 유지합니다.

529 523 

530세션이 완료되고 약 1시간 동안 연결되지 않은 상태로 있으면 감독자는 리소스를 확보하기 위해 프로세스를 중지합니다. `Ctrl+T`로 [고정](#organize-the-list)한 세션은 예외이며 유휴 상태에서도 프로세스를 실행 상태로 유지합니다. 트랜스크립트와 상태는 어느 쪽이든 디스크에 유지되며, 다음에 연결하거나, 엿보거나, 중지된 세션에 답변할 때 감독자는 중단된 위치에서 새로운 프로세스를 시작합니다. 모든 세션이 완료되고 터미널이 연결되지 않으면 감독자 자체가 종료되고 다음에 필요할 때 다시 시작됩니다.524세션이 완료되고 약 1시간 동안 연결되지 않은 상태로 있으면 감독자는 리소스를 확보하기 위해 프로세스를 중지합니다. `Ctrl+T`로 [고정](#organize-the-list)한 세션은 예외이며 유휴 상태에서도 프로세스를 실행 상태로 유지합니다. 트랜스크립트와 상태는 어느 쪽이든 디스크에 유지되며, 다음에 연결하거나, 엿보거나, 중지된 세션에 답변할 때 감독자는 중단된 위치에서 새로운 프로세스를 시작합니다. 모든 세션이 완료되고 터미널이 연결되지 않으면 감독자 자체가 종료되고 다음에 필요할 때 다시 시작됩니다.

531 525 

526백그라운드 셸 명령 및 동적 워크플로우는 세션의 프로세스가 중지되거나, 다시 시작되거나, Windows를 포함한 업데이트될 때 계속 실행됩니다. 해당 세션을 위해 시작된 다음 프로세스는 이들을 다시 선택하고, 그 사이에 완료된 셸 명령은 출력과 함께 완료된 것으로 보고되며, 워크플로우는 중단된 위치에서 재개됩니다. 서브에이전트가 시작한 셸 명령 및 실행 중인 [모니터](/ko/tools-reference#monitor-tool)는 여전히 프로세스와 함께 중지되며, 세션을 삭제하면 모든 것이 중지됩니다. 백그라운드 셸 명령 및 워크플로우를 프로세스와 함께 중지하려면 [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/ko/env-vars#variables) 환경 변수를 `1`로 설정합니다.

527 

528다시 시작된 세션이 트랜스크립트를 비어 있는 것으로 잘못 읽었기 때문에 원본 프롬프트만 표시되면서 돌아오면, 대화 트랜스크립트는 삭제되는 대신 `.orphaned-` 접두사로 이름이 바뀌므로 머신에 남아 있습니다.

529 

532`←`를 눌러 남겨진 빈 행에 프롬프트가 주어지지 않은 경우 약 5분 후에 완전히 제거되므로 목록이 자동으로 정리됩니다. `claude --bg`로 시작한 세션과 신뢰 대화 상자와 같은 설정 프롬프트를 기다리는 세션은 이러한 방식으로 제거되지 않습니다.530`←`를 눌러 남겨진 빈 행에 프롬프트가 주어지지 않은 경우 약 5분 후에 완전히 제거되므로 목록이 자동으로 정리됩니다. `claude --bg`로 시작한 세션과 신뢰 대화 상자와 같은 설정 프롬프트를 기다리는 세션은 이러한 방식으로 제거되지 않습니다.

533 531 

534호스트의 메모리가 부족할 때 감독자는 유휴 고정되지 않은 세션을 먼저 중지하고 아무것도 확보되지 않은 경우에만 유휴 고정된 세션을 중지합니다.532호스트의 메모리가 부족할 때 감독자는 유휴 고정되지 않은 세션을 먼저 중지하고 아무것도 확보되지 않은 경우에만 유휴 고정된 세션을 중지합니다.


556 554 

557Windows에서 `claude daemon status`는 감독자의 파이프 키 파일이 잠겨 있거나 읽을 수 없을 때 일반적인 연결 실패를 보고하는 대신 기본 파일 오류를 표시합니다.555Windows에서 `claude daemon status`는 감독자의 파이프 키 파일이 잠겨 있거나 읽을 수 없을 때 일반적인 연결 실패를 보고하는 대신 기본 파일 오류를 표시합니다.

558 556 

557세션은 버전 불일치를 그대로 유지합니다: 이전 Claude Code 버전이 세션의 `state.json`을 업데이트할 때 인식하지 못하는 필드를 보존하고 세션을 나열된 상태로 유지합니다.

558 

559<h3 id="turn-off-agent-view">559<h3 id="turn-off-agent-view">

560 에이전트 뷰 끄기560 에이전트 뷰 끄기

561</h3>561</h3>


570 `claude agents`가 에이전트 뷰를 열지 않고 서브에이전트를 나열함570 `claude agents`가 에이전트 뷰를 열지 않고 서브에이전트를 나열함

571</h3>571</h3>

572 572 

573`claude agents`가 개수를 출력한 후 구성된 서브에이전트를 나열하고 종료되면, 에이전트 뷰를 사용할 수 없는 환경입니다. 이전 버전은 Bedrock, Vertex AI 또는 Foundry를 통해 연결된 경우를 포함하여 모든 환경에서 에이전트 뷰를 열지 않았습니다. `claude update`를 실행하여 최신 버전을 설치합니다.573`claude agents`가 개수를 출력한 후 구성된 서브에이전트를 나열하고 종료되면, 에이전트 뷰를 사용할 수 없는 환경입니다. `claude update`를 실행하여 최신 버전을 설치합니다.

574 574 

575업데이트 후에도 에이전트 뷰가 열리지 않으면, 설정 또는 환경 변수에 의해 [꺼져 있는지](#turn-off-agent-view) 확인합니다.575업데이트 후에도 에이전트 뷰가 열리지 않으면, 설정 또는 환경 변수에 의해 [꺼져 있는지](#turn-off-agent-view) 확인합니다.

576 576 


580 580 

581첫 번째 세션을 디스패치하기 전에 에이전트 뷰는 세션 목록 대신 짧은 온보딩 힌트와 예제 프롬프트를 표시합니다. 하단의 입력에 프롬프트를 입력하고 `Enter`를 눌러 첫 번째 세션을 디스패치합니다.581첫 번째 세션을 디스패치하기 전에 에이전트 뷰는 세션 목록 대신 짧은 온보딩 힌트와 예제 프롬프트를 표시합니다. 하단의 입력에 프롬프트를 입력하고 `Enter`를 눌러 첫 번째 세션을 디스패치합니다.

582 582 

583<h3 id="cannot-open-agents-because-work-is-running-in-the-background">583<h3 id="backgrounding-shows-a-background-this-session-dialog">

584 백그라운드 작업이 실행 중이어서 에이전트를 없음584 백그라운드로 이동하면 `Background this session?` 대화 상자가 표시됨

585</h3>585</h3>

586 586 

587`←`를 눌러 현재 세션을 백그라운드로 전환할 때 `Cannot open agents — N still running in the background`이 표시되면, 세션에 서브에이전트, 동적 워크플로우 또는 백그라운드 명령과 같은 진행 중인 작업이 있으며, 바로가기는 이를 자동으로 중단하지 않습니다. `/tasks`를 실행하여 실행 중인 작업을 확인한 후 `/bg`를 실행하여 중단을 확인합니다. 백그라운드할 전송되는 항목과 전송되지 않는 항목에 대해서는 [세션 내에서](#from-inside-a-session) 참조합니다.587`←`를 눌러 현재 세션을 백그라운드로 전환할 때 `Background this session?` 대화 상자가 표시되면, 세션에 실행 중인 [모니터](/ko/tools-reference#monitor-tool)와 같이 백그라운드 세션으로 이동할 없는 진행 중인 작업이 있으며, Claude Code는 이를 자동으로 중단하지 않습니다. 대화 상자는 중단될 작업의 이름을 지정하고 별도로 이동할 작업의 개수를 세어줍니다. `/tasks`를 실행하여 실행 중인 모든 작업을 확인한 후 어쨌든 백그라운드로 이동하도록 확인하거나 `Stay`를 선택하여 작업이 먼저 완료되도록 합니다. [세션 내에서](#from-inside-a-session)에서 이동되는 작업 종류와 중지되는 작업 종류를 참조합니다.

588 588 

589<h3 id="prompt-rejected-as-too-short">589<h3 id="prompt-rejected-as-too-short">

590 프롬프트가 너무 짧아서 거부됨590 프롬프트가 너무 짧아서 거부됨


612 612 

613새로운 감독자는 실행 중인 세션에 다시 연결됩니다. `--keep-workers` 없이는 명령이 백그라운드 세션도 종료합니다. `--any` 플래그는 기본값인 설치된 서비스가 아닌 요청 시 시작된 감독자를 중지하려는 의도를 확인합니다.613새로운 감독자는 실행 중인 세션에 다시 연결됩니다. `--keep-workers` 없이는 명령이 백그라운드 세션도 종료합니다. `--any` 플래그는 기본값인 설치된 서비스가 아닌 요청 시 시작된 감독자를 중지하려는 의도를 확인합니다.

614 614 

615감독자가 시작되지만 연결을 수락할 수 없으면 자체적으로 종료되고 잠금을 해제하므로, 다음 `claude agents`는 이 수동 중지 없이 새로운 프로세스를 시작합니다. 위의 단계는 실행 중인 감독자가 중단되었을 때 적용됩니다.

616 

615Windows에서 감독자가 중지 요청에 응답하지 않으면, 명령이 프로세스 ID를 출력합니다. `taskkill /PID <pid>`로 해당 프로세스를 종료하여 복구를 완료합니다. `--keep-workers`를 전달했으면 백그라운드 세션은 여전히 보존됩니다.617Windows에서 감독자가 중지 요청에 응답하지 않으면, 명령이 프로세스 ID를 출력합니다. `taskkill /PID <pid>`로 해당 프로세스를 종료하여 복구를 완료합니다. `--keep-workers`를 전달했으면 백그라운드 세션은 여전히 보존됩니다.

616 618 

617<h3 id="dispatch-fails-with-could-not-resolve-authentication-method">619<h3 id="dispatch-fails-with-could-not-resolve-authentication-method">

618 `Could not resolve authentication method` 오류로 디스패치 실패620 `Could not resolve authentication method` 오류로 디스패치 실패

619</h3>621</h3>

620 622 

621{/* min-version: 2.1.174 */}백그라운드 디스패치가 `Could not resolve authentication method` 오류로 실패하지만 대화형 세션은 정상적으로 인증되면, 디스패치를 받은 워커가 자격 증명을 선택하지 못했습니다. v2.1.174 이상에서 감독자는 [사전 준비된 워커](#the-supervisor-process)를 할당할 때 새로운 자격 증명 스냅샷을 제공하므로, 이 오류는 감독자 프로세스 자체에서 저장된 자격 증명을 사용할 수 없음을 의미합니다. `/login`을 실행했거나 API 키를 구성했는지 확인한 후 감독자를 중지합니다:623백그라운드 디스패치가 `Could not resolve authentication method` 오류로 실패하지만 대화형 세션은 정상적으로 인증되면, 디스패치를 받은 워커가 자격 증명을 선택하지 못했습니다. 감독자는 [사전 준비된 워커](#the-supervisor-process)를 할당할 때 새로운 자격 증명 스냅샷을 제공하므로, 이 오류는 감독자 프로세스 자체에서 저장된 자격 증명을 사용할 수 없음을 의미합니다. `/login`을 실행했거나 API 키를 구성했는지 확인한 후 감독자를 중지합니다:

622 624 

623```bash theme={null}625```bash theme={null}

624claude daemon stop --any --keep-workers626claude daemon stop --any --keep-workers


626 628 

627다음 `claude agents` 또는 `claude --bg`는 저장된 자격 증명을 읽는 새로운 감독자를 시작합니다. `ANTHROPIC_API_KEY`와 같은 환경 변수로 인증하는 경우 `/login` 대신 변수가 설정된 셸에서 다음 명령을 실행합니다.629다음 `claude agents` 또는 `claude --bg`는 저장된 자격 증명을 읽는 새로운 감독자를 시작합니다. `ANTHROPIC_API_KEY`와 같은 환경 변수로 인증하는 경우 `/login` 대신 변수가 설정된 셸에서 다음 명령을 실행합니다.

628 630 

629원인 및 해결 방법의 전체 목록은 [오류 참조](/ko/errors#could-not-resolve-authentication-method)를 참조합니다. v2.1.174 이전에는 유휴 상태로 있던 사전 준비된 워커가 자격 증명이 유효한 경우에도 디스패치에 할당될 때 이 오류를 표시할 수 있습니다. 업그레이드하여 복구합니다.631원인 및 해결 방법의 전체 목록은 [오류 참조](/ko/errors#could-not-resolve-authentication-method)를 참조합니다.

630 632 

631<h3 id="background-sessions-cannot-read-desktop-documents-or-downloads-on-macos">633<h3 id="background-sessions-cannot-read-desktop-documents-or-downloads-on-macos">

632 macOS에서 백그라운드 세션이 Desktop, Documents 또는 Downloads를 읽을 수 없음634 macOS에서 백그라운드 세션이 Desktop, Documents 또는 Downloads를 읽을 수 없음


640 연결 후 세션이 응답이 느림642 연결 후 세션이 응답이 느림

641</h3>643</h3>

642 644 

643세션이 완료되고 약 1시간 동안 연결되지 않으면 감독자는 리소스를 확보하기 위해 프로세스를 중지합니다. 연결하면 중단된 위치에서 새로운 프로세스를 시작하는데 시간이 걸립니다. 작업 중이거나 입력을 기다리는 세션 또는 [고정된](#organize-the-list) 세션은 이런 식으로 중지되지 않으므로, `Ctrl+T`로 세션을 고정하여 응답성을 유지합니다.645세션이 완료되고 약 1시간 동안 연결되지 않으면 감독자는 리소스를 확보하기 위해 프로세스를 중지합니다. 연결하면 중단된 위치에서 새로운 프로세스를 시작합니다. 작업 중이거나 입력을 기다리는 세션 또는 [고정된](#organize-the-list) 세션은 이런 식으로 중지되지 않으므로, `Ctrl+T`로 세션을 고정하여 응답성을 유지합니다.

644 646 

645<h3 id="claude/worktrees/-is-filling-up">647<h3 id="claude/worktrees/-is-filling-up">

646 `.claude/worktrees/`가 채워지고 있음648 `.claude/worktrees/`가 채워지고 있음


667* [에이전트를 병렬로 실행](/ko/agents): 에이전트 뷰를 서브에이전트, 에이전트 팀 및 워크트리와 비교합니다669* [에이전트를 병렬로 실행](/ko/agents): 에이전트 뷰를 서브에이전트, 에이전트 팀 및 워크트리와 비교합니다

668* [에이전트 팀](/ko/agent-teams): 서로 메시지를 주고받는 여러 세션을 조정합니다670* [에이전트 팀](/ko/agent-teams): 서로 메시지를 주고받는 여러 세션을 조정합니다

669* [웹의 Claude Code](/ko/claude-code-on-the-web): 로컬 대신 관리되는 클라우드 환경에서 세션을 실행합니다671* [웹의 Claude Code](/ko/claude-code-on-the-web): 로컬 대신 관리되는 클라우드 환경에서 세션을 실행합니다

672 

673<h2 id="version-history">

674 버전 기록

675</h2>

676 

677에이전트 뷰는 연구 미리보기 중에 빠르게 발전했습니다. 이전 Claude Code 버전을 사용 중인 경우 이 페이지의 일부 동작이 다를 수 있습니다. 특히 `claude agents`는 아직 지원하지 않는 플래그를 `unknown option` 오류로 거부합니다. 아래 표는 각 플래그와 동작이 추가된 시기를 나열합니다.

678 

679| 버전 | 변경 사항 |

680| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

681| v2.1.196 | {/* min-version: 2.1.196 */}단일 `←` 누름이 포그라운드 세션을 백그라운드로 이동합니다. 이전 버전은 바닥글 힌트와 확인이 있는 두 번의 누름이 필요했습니다. `claude agents`에 전달된 `--dangerously-skip-permissions`는 자동으로 삭제되는 대신 면책 조항을 표시합니다. 이름을 지정하지 않은 대화형 세션은 세션 목록 및 `claude agents --json`에서 `my-app-3f`와 같은 기본 이름을 가집니다. 백그라운드 셸 명령 및 동적 워크플로우는 세션의 프로세스가 중지되거나, 다시 시작되거나, Windows를 포함한 업데이트될 때 생존합니다. `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1`을 설정하여 핸드오프를 끕니다. 다시 시작 시 비어 있는 것으로 잘못 읽은 트랜스크립트는 삭제되는 대신 `.orphaned-` 접두사로 이름이 바뀝니다. |

682| v2.1.195 | {/* min-version: 2.1.195 */}Windows에서도 백그라운드 세션으로 이동할 때 진행 중인 작업이 이동합니다. `CLAUDE_DISABLE_ADOPT=1`을 설정하여 대신 중지합니다. `완료됨` 그룹은 남은 수직 공간을 채우고 짧은 터미널에서 헤더가 압축됩니다. 이전 Claude Code 버전은 더 이상 최신 세션의 `state.json` 필드를 삭제하거나 해당 세션을 `claude agents`에서 숨기지 않습니다. 중지된 세션에 연결하면 최대 5초 동안 빈 화면을 표시하는 대신 즉시 전환됩니다. 연결을 수락할 수 없는 감독자는 자체적으로 종료되고 잠금을 해제합니다. |

683| v2.1.174 | {/* min-version: 2.1.174 */}백그라운드 세션은 더 이상 감독자의 시작 셸에서 `ANTHROPIC_BASE_URL`과 같은 게이트웨이 엔드포인트 변수를 상속하지 않습니다. 감독자는 사전 준비된 워커에 새로운 자격 증명 스냅샷을 제공하여 허위 `Could not resolve authentication method` 오류를 수정합니다. |

684| v2.1.172 | {/* min-version: 2.1.172 */}디스패치 입력의 `/model`이 세션 범위 디스패치 모델 재정의를 설정합니다. |

685| v2.1.161 | {/* min-version: 2.1.161 */}행 요약은 병렬 작업 항목에 대해 `done/total` 개수를 표시합니다. 엿보기 패널은 가장 오래 실행 중인 병렬 작업 항목의 이름을 지정합니다. |

686| v2.1.157 | {/* min-version: 2.1.157 */}}`claude agents`는 `--agent`를 허용합니다. 디스패치된 세션은 `agent` 설정을 준수합니다. |

687| v2.1.145 | {/* min-version: 2.1.145 */}음성 받아쓰기는 엿보기 패널 답변 입력 및 디스패치 입력에서 지원됩니다. |

688| v2.1.143 | {/* min-version: 2.1.143 */}}`worktree.bgIsolation` 설정이 추가되었습니다. `claude agents`는 `--allow-dangerously-skip-permissions`를 허용합니다. |

689| v2.1.142 | {/* min-version: 2.1.142 */}}`claude agents`는 `--permission-mode`, `--model`, `--effort`, `--dangerously-skip-permissions`, `--settings`, `--add-dir`, `--plugin-dir`, `--mcp-config` 및 `--strict-mcp-config`를 허용합니다. |

690| v2.1.141 | {/* min-version: 2.1.141 */}}`claude agents`는 `--cwd`를 허용하여 목록을 한 프로젝트로 범위를 지정합니다. |

691| v2.1.139 | {/* min-version: 2.1.139 */}에이전트 뷰가 연구 미리보기로 도입되었습니다. |

Details

397 1M 토큰 컨텍스트 윈도우397 1M 토큰 컨텍스트 윈도우

398</h2>398</h2>

399 399 

400Claude Opus 4.6 이상 및 Sonnet 4.6은 Amazon Bedrock에서 [1M 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/ko/build-with-claude/context-windows#1m-token-context-window)를 지원합니다. Claude Code는 1M 모델 변형을 선택할 때 확장된 컨텍스트 윈도우를 자동으로 활성화합니다.400Claude Sonnet 5, Opus 4.6 이상 및 Sonnet 4.6은 Amazon Bedrock에서 [1M 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/ko/build-with-claude/context-windows#1m-token-context-window)를 지원합니다. Sonnet 5는 [Mantle 엔드포인트](#use-the-mantle-endpoint)를 통해 제공되며 항상 1M 윈도우로 실행되며, 선택할 `[1m]` 변형이 없습니다. 다른 모델의 경우, Claude Code는 1M 모델 변형을 선택할 때 확장된 컨텍스트 윈도우를 자동으로 활성화합니다.

401 401 

402[설정 마법사](#sign-in-with-bedrock)는 모델을 고정할 때 1M 컨텍스트 옵션을 제공합니다. 수동으로 고정된 모델에 대해 대신 활성화하려면 모델 ID에 `[1m]`을 추가하십시오. 자세한 내용은 [타사 배포를 위한 모델 고정](/ko/model-config#pin-models-for-third-party-deployments)을 참조하십시오.402[설정 마법사](#sign-in-with-bedrock)는 모델을 고정할 때 1M 컨텍스트 옵션을 제공합니다. 수동으로 고정된 모델에 대해 대신 활성화하려면 모델 ID에 `[1m]`을 추가하십시오. 자세한 내용은 [타사 배포를 위한 모델 고정](/ko/model-config#pin-models-for-third-party-deployments)을 참조하십시오.

403 403 


458 Mantle 모델 선택458 Mantle 모델 선택

459</h3>459</h3>

460 460 

461Mantle은 `anthropic.` 접두사가 있고 버전 접미사가 없는 모델 ID를 사용합니다(예: `anthropic.claude-haiku-4-5`). 계정에서 사용 가능한 모델은 조직에 부여된 것에 따라 다르며, 추가 모델 ID는 AWS의 온보딩 자료에 나열됩니다. 허용 목록에 있는 모델에 대한 액세스를 요청하려면 AWS 계정 팀에 문의하십시오.461Mantle은 `anthropic.` 접두사가 있고 버전 접미사가 없는 모델 ID를 사용합니다(예: `anthropic.claude-sonnet-5` 또는 `anthropic.claude-haiku-4-5`). 계정에서 사용 가능한 모델은 조직에 부여된 것에 따라 다르며, 추가 모델 ID는 AWS의 온보딩 자료에 나열됩니다. 허용 목록에 있는 모델에 대한 액세스를 요청하려면 AWS 계정 팀에 문의하십시오.

462 462 

463`--model` 플래그 또는 Claude Code 내의 `/model`로 모델을 설정하십시오:463`--model` 플래그 또는 Claude Code 내의 `/model`로 모델을 설정하십시오:

464 464 


542 542 

543Claude Code는 Bedrock [Invoke API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)를 사용하며 Converse API를 지원하지 않습니다.543Claude Code는 Bedrock [Invoke API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)를 사용하며 Converse API를 지원하지 않습니다.

544 544 

545<h3 id="zero-token-counts-in-/context">

546 /context의 0 토큰 개수

547</h3>

548 

549`/context` 명령은 도구 스키마를 Bedrock count-tokens API로 전송하여 각 도구 그룹의 토큰을 계산합니다. {/* min-version: 2.1.196 */}v2.1.196 이전의 Claude Code 버전에서는 Bedrock이 스키마가 count-tokens API에서 허용하지 않는 필드를 포함하고 있어서 해당 요청을 거부했으므로 모든 도구 그룹이 0 토큰을 표시했습니다. 메시지 및 메모리 파일과 같은 분석의 다른 행은 영향을 받지 않습니다.

550 

551v2.1.196 이상으로 업데이트하십시오.

552 

545<h3 id="mantle-endpoint-errors">553<h3 id="mantle-endpoint-errors">

546 Mantle 엔드포인트 오류554 Mantle 엔드포인트 오류

547</h3>555</h3>

Details

24* **Claude for Teams 또는 Enterprise**: 팀 관리자가 초대한 Claude.ai 계정으로 로그인합니다.24* **Claude for Teams 또는 Enterprise**: 팀 관리자가 초대한 Claude.ai 계정으로 로그인합니다.

25* **Claude Console**: Console 자격증명으로 로그인합니다. 관리자가 먼저 [초대](#claude-console-authentication)해야 합니다.25* **Claude Console**: Console 자격증명으로 로그인합니다. 관리자가 먼저 [초대](#claude-console-authentication)해야 합니다.

26* **클라우드 제공자**: 조직에서 [Amazon Bedrock](/ko/amazon-bedrock), [Google Vertex AI](/ko/google-vertex-ai), 또는 [Microsoft Foundry](/ko/microsoft-foundry)를 사용하는 경우 `claude`를 실행하기 전에 필요한 환경 변수를 설정합니다. 브라우저 로그인이 필요하지 않습니다.26* **클라우드 제공자**: 조직에서 [Amazon Bedrock](/ko/amazon-bedrock), [Google Vertex AI](/ko/google-vertex-ai), 또는 [Microsoft Foundry](/ko/microsoft-foundry)를 사용하는 경우 `claude`를 실행하기 전에 필요한 환경 변수를 설정합니다. 브라우저 로그인이 필요하지 않습니다.

27* **클라우드 게이트웨이**: 조직에서 자체 호스팅 [Claude 앱 게이트웨이](/ko/claude-apps-gateway)를 실행하는 경우 `/login`을 통해 회사 SSO로 로그인합니다. 게이트웨이에서 발급한 토큰이 세션의 유일한 자격증명입니다.

27 28 

28Claude Code 프롬프트에서 `/logout`을 입력하여 로그아웃하고 다시 인증합니다.29Claude Code 프롬프트에서 `/logout`을 입력하여 로그아웃하고 다시 인증합니다.

29 30 


37 38 

38* [Claude for Teams 또는 Enterprise](#claude-for-teams-or-enterprise), 대부분의 팀에 권장됨39* [Claude for Teams 또는 Enterprise](#claude-for-teams-or-enterprise), 대부분의 팀에 권장됨

39* [Claude Console](#claude-console-authentication)40* [Claude Console](#claude-console-authentication)

41* [Claude apps gateway](/ko/claude-apps-gateway), 개발자가 IdP로 로그인하고 구성한 클라우드 제공자로 추론을 라우팅하는 자체 호스팅 게이트웨이

40* [Amazon Bedrock](/ko/amazon-bedrock)42* [Amazon Bedrock](/ko/amazon-bedrock)

41* [Google Vertex AI](/ko/google-vertex-ai)43* [Google Vertex AI](/ko/google-vertex-ai)

42* [Microsoft Foundry](/ko/microsoft-foundry)44* [Microsoft Foundry](/ko/microsoft-foundry)


131 * Windows에서 자격증명은 `%USERPROFILE%\.claude\.credentials.json`에 저장되며 사용자 프로필 디렉터리의 액세스 제어를 상속하므로 기본적으로 파일이 사용자 계정으로 제한됩니다.133 * Windows에서 자격증명은 `%USERPROFILE%\.claude\.credentials.json`에 저장되며 사용자 프로필 디렉터리의 액세스 제어를 상속하므로 기본적으로 파일이 사용자 계정으로 제한됩니다.

132 * Linux 또는 Windows에서 `CLAUDE_CONFIG_DIR` 환경 변수를 설정한 경우 `.credentials.json` 파일은 해당 디렉터리 아래에 있습니다.134 * Linux 또는 Windows에서 `CLAUDE_CONFIG_DIR` 환경 변수를 설정한 경우 `.credentials.json` 파일은 해당 디렉터리 아래에 있습니다.

133 * Claude Code는 `/login` 및 `/logout`을 통해 `.credentials.json`을 관리합니다. 요청을 사용자 정의 API 엔드포인트를 통해 라우팅하려면 대신 [`ANTHROPIC_BASE_URL`](/ko/env-vars) 환경 변수를 설정합니다.135 * Claude Code는 `/login` 및 `/logout`을 통해 `.credentials.json`을 관리합니다. 요청을 사용자 정의 API 엔드포인트를 통해 라우팅하려면 대신 [`ANTHROPIC_BASE_URL`](/ko/env-vars) 환경 변수를 설정합니다.

134* **지원되는 인증 유형**: Claude.ai 자격증명, Claude API 자격증명, Azure Auth, Bedrock Auth, Vertex Auth.136* **지원되는 인증 유형**: Claude.ai 자격증명, Claude API 자격증명, Azure Auth, Bedrock Auth, Vertex Auth, 및 [Claude apps gateway](/ko/claude-apps-gateway) 세션 토큰.

135* **사용자 정의 자격증명 스크립트**: [`apiKeyHelper`](/ko/settings#available-settings) 설정을 구성하여 API 키를 반환하는 셸 스크립트를 실행할 수 있습니다.137* **사용자 정의 자격증명 스크립트**: [`apiKeyHelper`](/ko/settings#available-settings) 설정을 구성하여 API 키를 반환하는 셸 스크립트를 실행할 수 있습니다.

136* **새로고침 간격**: 기본적으로 `apiKeyHelper`는 5분 후 또는 HTTP 401 응답 시 호출됩니다. 사용자 정의 새로고침 간격을 위해 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` 환경 변수를 설정합니다.138* **새로고침 간격**: 기본적으로 `apiKeyHelper`는 5분 후 또는 HTTP 401 응답 시 호출됩니다. 사용자 정의 새로고침 간격을 위해 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` 환경 변수를 설정합니다.

137* **느린 도우미 알림**: `apiKeyHelper`가 키를 반환하는 데 10초 이상 걸리면 Claude Code는 경과 시간을 표시하는 프롬프트 표시줄에 경고 알림을 표시합니다. 이 알림이 정기적으로 표시되면 자격증명 스크립트를 최적화할 수 있는지 확인합니다.139* **느린 도우미 알림**: `apiKeyHelper`가 키를 반환하는 데 10초 이상 걸리면 Claude Code는 경과 시간을 표시하는 프롬프트 표시줄에 경고 알림을 표시합니다. 이 알림이 정기적으로 표시되면 자격증명 스크립트를 최적화할 수 있는지 확인합니다.

Details

6 6 

7> 자동 모드 분류기에 조직이 신뢰하는 저장소, 버킷 및 도메인을 알려줍니다. 환경 컨텍스트를 설정하고, 기본 차단 및 허용 규칙을 재정의하며, 자동 모드 CLI 하위 명령으로 유효한 구성을 검사합니다.7> 자동 모드 분류기에 조직이 신뢰하는 저장소, 버킷 및 도메인을 알려줍니다. 환경 컨텍스트를 설정하고, 기본 차단 및 허용 규칙을 재정의하며, 자동 모드 CLI 하위 명령으로 유효한 구성을 검사합니다.

8 8 

9[자동 모드](/ko/permission-modes#eliminate-prompts-with-auto-mode)를 사용하면 Claude Code가 각 도구 호출을 분류기를 통해 라우팅하여 권한 프롬프트 없이 실행될 수 있습니다. 분류기는 되돌릴 수 없거나 파괴적이거나 환경 외부를 대상으로 하는 모든 것을 차단합니다. `autoMode` 설정 블록을 사용하여 분류기에 조직이 신뢰하는 저장소, 버킷 및 도메인을 알려주면, 분류기가 일상적인 내부 작업 차단을 중지합니다.9[자동 모드](/ko/permission-modes#eliminate-prompts-with-auto-mode)를 사용하면 Claude Code가 각 도구 호출을 분류기를 통해 라우팅하여 권한 프롬프트 없이 실행될 수 있습니다. 분류기는 되돌릴 수 없거나 파괴적이거나 환경 외부를 대상으로 하는 모든 것을 차단합니다. 거부 및 명시적 요청 규칙은 분류기 이전에 평가되며 여전히 차단하거나 프롬프트합니다. `autoMode` 설정 블록을 사용하여 분류기에 조직이 신뢰하는 저장소, 버킷 및 도메인을 알려주면, 분류기가 일상적인 내부 작업 차단을 중지합니다.

10 10 

11<Note>11<Note>

12 자동 모드는 Anthropic API의 모든 사용자가 사용할 수 있습니다. Amazon Bedrock, Google Cloud Vertex AI 및 Microsoft Foundry에서는 먼저 [`CLAUDE_CODE_ENABLE_AUTO_MODE`](/ko/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry)를 설정해야 합니다. Claude Code가 계정에서 자동 모드를 사용할 수 없다고 보고하는 경우, [전체 요구사항](/ko/permission-modes#eliminate-prompts-with-auto-mode)을 확인하세요. 여기에는 지원되는 모델과 Team 및 Enterprise 플랜의 관리자 활성화도 포함됩니다.12 자동 모드는 Anthropic API의 모든 사용자가 사용할 수 있습니다. Amazon Bedrock, Google Cloud Vertex AI, Microsoft Foundry 로그인된 [Claude 앱 게이트웨이](/ko/claude-apps-gateway) 세션에서는 먼저 [`CLAUDE_CODE_ENABLE_AUTO_MODE`](/ko/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry)를 설정해야 합니다. Claude Code가 계정에서 자동 모드를 사용할 수 없다고 보고하는 경우, [전체 요구사항](/ko/permission-modes#eliminate-prompts-with-auto-mode)을 확인하세요. 여기에는 지원되는 모델과 Team 및 Enterprise 플랜의 Owner 활성화도 포함됩니다.

13</Note>13</Note>

14 14 

15기본적으로 분류기는 작업 디렉토리와 현재 저장소의 구성된 원격 저장소만 신뢰합니다. 회사의 소스 제어 조직에 푸시하거나 팀 클라우드 버킷에 쓰기와 같은 작업은 `autoMode.environment`에 추가할 때까지 차단됩니다.15기본적으로 분류기는 작업 디렉토리와 현재 저장소의 구성된 원격 저장소만 신뢰합니다. 회사의 소스 제어 조직에 푸시하거나 팀 클라우드 버킷에 쓰기와 같은 작업은 `autoMode.environment`에 추가할 때까지 차단됩니다.


21* [규칙을 설정할 위치 선택](#where-the-classifier-reads-configuration) - CLAUDE.md, 사용자 설정 및 관리 설정 전체21* [규칙을 설정할 위치 선택](#where-the-classifier-reads-configuration) - CLAUDE.md, 사용자 설정 및 관리 설정 전체

22* [신뢰할 수 있는 인프라 정의](#define-trusted-infrastructure) - `autoMode.environment` 사용22* [신뢰할 수 있는 인프라 정의](#define-trusted-infrastructure) - `autoMode.environment` 사용

23* [차단 및 허용 규칙 재정의](#override-the-block-and-allow-rules) - 기본값이 파이프라인에 맞지 않을 때23* [차단 및 허용 규칙 재정의](#override-the-block-and-allow-rules) - 기본값이 파이프라인에 맞지 않을 때

24* [모든 셸 명령을 분류기를 통해 라우팅](#route-all-shell-commands-through-the-classifier) - `autoMode.classifyAllShell` 사용

24* [유효한 구성 검사](#inspect-the-defaults-and-your-effective-config) - `claude auto-mode` 하위 명령 사용25* [유효한 구성 검사](#inspect-the-defaults-and-your-effective-config) - `claude auto-mode` 하위 명령 사용

25* [거부 검토](#review-denials) - 다음에 추가할 항목 파악26* [거부 검토](#review-denials) - 다음에 추가할 항목 파악

26 27 


41 42 

42분류기는 `.claude/settings.json`의 공유 프로젝트 설정에서 `autoMode`를 읽지 않으므로, 체크인된 저장소는 자체 허용 규칙을 주입할 수 없습니다.43분류기는 `.claude/settings.json`의 공유 프로젝트 설정에서 `autoMode`를 읽지 않으므로, 체크인된 저장소는 자체 허용 규칙을 주입할 수 없습니다.

43 44 

44각 범위의 항목이 결합됩니다. 개발자는 개인 항목으로 `environment`, `allow`, `soft_deny`, `hard_deny`를 확장할 수 있지만 관리 설정이 제공하는 항목을 제거할 수 없습니다. 허용 규칙이 분류기 내의 차단 규칙에 대한 예외로 작동하기 때문에, 개발자가 추가한 `allow` 항목은 조직의 `soft_deny` 항목을 재정의할 수 있습니다. 조합은 가산적이며, 하드 정책 경계가 아닙니다.45각 범위의 항목이 결합됩니다. 개발자는 개인 항목으로 `environment`, `allow`, `soft_deny`, `hard_deny`를 확장할 수 있지만 관리 설정이 제공하는 항목을 제거할 수 없습니다. 허용 규칙이 분류기 내의 소프트 차단 규칙에 대한 예외로 작동하기 때문에, 개발자가 추가한 `allow` 항목은 조직의 `soft_deny` 항목을 재정의할 수 있습니다. 조합은 가산적이며, 하드 정책 경계가 아닙니다.

45 46 

46<Note>47<Note>

47 분류기는 [권한 시스템](/ko/permissions) 이후에 실행되는 두 번째 게이트입니다. 사용자 의도나 분류기 구성에 관계없이 절대 실행되어서는 안 되는 작업의 경우, 관리 설정에서 `permissions.deny`를 사용하세요. 이는 분류기가 참조되기 전에 작업을 차단하며 재정의될 수 없습니다.48 분류기는 [권한 시스템](/ko/permissions) 이후에 실행되는 두 번째 게이트입니다. 사용자 의도나 분류기 구성에 관계없이 절대 실행되어서는 안 되는 작업의 경우, 관리 설정에서 `permissions.deny`를 사용하세요. 이는 분류기가 참조되기 전에 작업을 차단하며 재정의될 수 없습니다.


53 54 

54대부분의 조직에서 `autoMode.environment`는 설정해야 하는 유일한 필드입니다. 분류기에 신뢰할 수 있는 저장소, 버킷 및 도메인을 알려줍니다. 분류기는 이를 사용하여 "외부"가 무엇을 의미하는지 결정하므로, 나열되지 않은 모든 대상은 잠재적 정보 유출 대상입니다.55대부분의 조직에서 `autoMode.environment`는 설정해야 하는 유일한 필드입니다. 분류기에 신뢰할 수 있는 저장소, 버킷 및 도메인을 알려줍니다. 분류기는 이를 사용하여 "외부"가 무엇을 의미하는지 결정하므로, 나열되지 않은 모든 대상은 잠재적 정보 유출 대상입니다.

55 56 

56기본 환경 목록은 작업 저장소와 그 구성된 원격 저장소를 신뢰합니다. 기본값과 함께 자신의 항목을 추가하려면 배열에 리터럴 문자열 `"$defaults"`를 포함하세요. 기본 항목은 해당 위치에 삽입되므로, 사용자 정의 항목은 기본값 앞이나 뒤에 있습니다.57Claude Code v2.1.195부터 `claude auto-mode defaults` 가지 종류의 환경 항목을 인쇄합니다.

58 

59* **신뢰 슬롯**: 분류기가 경계 내부로 취급하는 것을 명명합니다. 슬롯은 신뢰할 수 있는 저장소, 소스 제어, 신뢰할 수 있는 내부 도메인, 신뢰할 수 있는 클라우드 버킷, 주요 내부 서비스 및 내부 패키지 레지스트리입니다. 저장소 및 소스 제어 항목은 기본적으로 작업 저장소와 그 구성된 원격 저장소로 설정됩니다. 다른 모든 신뢰 슬롯은 기본적으로 `None configured`로 설정되므로, 추가할 때까지 다른 것은 신뢰되지 않습니다.

60* **민감도 슬롯**: 보호 규칙이 고위험으로 취급하는 것을 명명합니다. 슬롯은 PII / 규제 데이터 위치, 민감한 원격 대상 및 보호된 IaC 범위입니다. 각각은 기본적으로 광범위한 휴리스틱으로 설정되며, 예를 들어 이름에 `prod` 또는 `production`을 포함하는 모든 호스트 또는 네임스페이스를 민감한 원격 대상으로 취급하므로, 보호 규칙은 아무것도 구성하기 전에 활성화됩니다. 민감도 슬롯에서 구체적인 대상을 명명하면 휴리스틱 대신 명명된 대상에 해당 규칙이 적용됩니다.

61 

62v2.1.195 이전 버전은 처음 다섯 개의 신뢰 슬롯만 인쇄합니다.

63 

64기본값과 함께 자신의 항목을 추가하려면 배열에 리터럴 문자열 `"$defaults"`를 포함하세요. 기본 항목은 해당 위치에 삽입되므로, 사용자 정의 항목은 기본값 앞이나 뒤에 올 수 있습니다.

65 

66다음 예제는 기본 항목을 유지하고 조직의 저장소, 버킷, 도메인 및 서비스를 추가합니다.

57 67 

58```json theme={null}68```json theme={null}

59{69{


76* **클라우드 제공자 및 신뢰할 수 있는 버킷**: Claude가 읽고 쓸 수 있어야 하는 버킷 이름 또는 접두사86* **클라우드 제공자 및 신뢰할 수 있는 버킷**: Claude가 읽고 쓸 수 있어야 하는 버킷 이름 또는 접두사

77* **신뢰할 수 있는 내부 도메인**: 네트워크 내부의 API, 대시보드 및 서비스에 대한 호스트명(예: `*.internal.example.com`)87* **신뢰할 수 있는 내부 도메인**: 네트워크 내부의 API, 대시보드 및 서비스에 대한 호스트명(예: `*.internal.example.com`)

78* **주요 내부 서비스**: CI, 아티팩트 레지스트리, 내부 패키지 인덱스, 인시던트 도구88* **주요 내부 서비스**: CI, 아티팩트 레지스트리, 내부 패키지 인덱스, 인시던트 도구

89* **내부 패키지 레지스트리**: 설치가 라우팅되어야 하는 개인 npm, PyPI 또는 기타 레지스트리이므로, 공개 레지스트리를 위해 이를 우회하는 설치는 차단됩니다.

90* **PII / 규제 데이터 위치**: 개인 또는 규제 데이터를 보유하는 버킷, 데이터베이스 또는 경로이므로, 분류기가 콘텐츠에서 추측하는 대신 해당 위치를 보호합니다.

91* **민감한 원격 대상**: 프로덕션으로 계산되는 네임스페이스, 호스트 또는 컨테이너이므로, 원격 셸 및 포트 포워드는 명시적 승인이 필요합니다.

92* **보호된 IaC 범위**: 적용 또는 삭제가 항상 변경을 명명하도록 요구해야 하는 인프라 리소스입니다.

79* **추가 컨텍스트**: 규제 산업 제약, 다중 테넌트 인프라 또는 분류기가 위험으로 취급해야 할 사항에 영향을 미치는 규정 준수 요구사항93* **추가 컨텍스트**: 규제 산업 제약, 다중 테넌트 인프라 또는 분류기가 위험으로 취급해야 할 사항에 영향을 미치는 규정 준수 요구사항

80 94 

95내부 패키지 레지스트리, PII / 규제 데이터 위치, 민감한 원격 대상 및 보호된 IaC 범위 항목은 Claude Code v2.1.195 이상이 필요합니다. 이전 버전은 여전히 이를 일반 컨텍스트로 읽지만 이를 대상으로 하는 기본 제공 규칙이 없습니다.

96 

81유용한 시작 템플릿: 괄호로 묶인 필드를 채우고 적용되지 않는 줄을 제거하세요.97유용한 시작 템플릿: 괄호로 묶인 필드를 채우고 적용되지 않는 줄을 제거하세요.

82 98 

83```json theme={null}99```json theme={null}


105 차단 및 허용 규칙 재정의121 차단 및 허용 규칙 재정의

106</h2>122</h2>

107 123 

108세 개의 추가 필드를 사용하여 분류기의 기본 제공 규칙 목록을 바꿀 수 있습니다: `autoMode.hard_deny`는 무조건적인 보안 경계를 위한 것이고, `autoMode.soft_deny`는 사용자 의도로 해제할 수 있는 파괴적인 작업을 위한 것이며, `autoMode.allow`는 예외를 위한 것입니다. 각각은 자연어 규칙으로 읽히는 산문 설명의 배열입니다. 분류기 이전에 실행되는 도구 패턴 기반의 하드 블록의 경우 [`permissions.deny`](/ko/permissions)를 사용하세요.124세 개의 추가 필드를 사용하여 분류기의 기본 제공 규칙 목록을 바꿀 수 있습니다:

125 

126* `autoMode.hard_deny`: 무조건적인 보안 경계

127* `autoMode.soft_deny`: 사용자 의도로 해제할 수 있는 파괴적인 작업

128* `autoMode.allow`: 소프트 블록 규칙의 예외

129 

130각각은 자연어 규칙으로 읽히는 산문 설명의 배열입니다. 분류기 이전에 실행되는 도구 패턴 기반의 하드 블록의 경우 [`permissions.deny`](/ko/permissions)를 사용하세요.

109 131 

110분류기 내에서 우선순위는 네 가지 계층으로 작동합니다:132분류기 내에서 우선순위는 네 가지 계층으로 작동합니다:

111 133 


120 142 

121기본 제공 규칙을 유지하면서 자신의 규칙을 추가하려면 배열에 리터럴 문자열 `"$defaults"`를 포함하세요. 기본 규칙이 해당 위치에 삽입되므로, 사용자 정의 규칙이 앞이나 뒤에 올 수 있으며, 릴리스 전반에 걸쳐 기본 제공 목록이 변경되면서 업데이트를 계속 상속받습니다.143기본 제공 규칙을 유지하면서 자신의 규칙을 추가하려면 배열에 리터럴 문자열 `"$defaults"`를 포함하세요. 기본 규칙이 해당 위치에 삽입되므로, 사용자 정의 규칙이 앞이나 뒤에 올 수 있으며, 릴리스 전반에 걸쳐 기본 제공 목록이 변경되면서 업데이트를 계속 상속받습니다.

122 144 

145다음 예제는 네 개의 목록 모두에서 기본값을 유지하고 각각에 조직별 규칙을 추가합니다.

146 

123```json theme={null}147```json theme={null}

124{148{

125 "autoMode": {149 "autoMode": {


146```170```

147 171 

148<Danger>172<Danger>

149 `environment`, `allow`, `soft_deny` 또는 `hard_deny` 중 하나를 `"$defaults"` 없이 설정하면 해당 섹션의 전체 기본 목록이 바뀝니다. `"$defaults"`가 없는 `soft_deny` 배열은 강제 푸시, `curl | bash`, 프로덕션 배포를 포함한 모든 기본 제공 소프트 블록 규칙을 버립니다. `"$defaults"`가 없는 `hard_deny` 배열은 기본 제공 데이터 유출 및 안전 검사 우회 규칙을 버립니다.173 `environment`, `allow`, `soft_deny` 또는 `hard_deny` 중 하나를 `"$defaults"` 없이 설정하면 해당 섹션의 전체 기본 목록이 바뀝니다. `"$defaults"`가 없는 `soft_deny` 배열은 강제 푸시, `curl | bash`, 프로덕션 배포를 포함한 모든 기본 제공 소프트 블록 규칙을 버립니다. `"$defaults"`가 없는 `hard_deny` 배열은 기본 제공 데이터 유출 및 자동 모드 우회 규칙을 버립니다.

150</Danger>174</Danger>

151 175 

152각 섹션은 독립적으로 평가되므로, `environment`만 설정하면 기본 `allow`, `soft_deny` 및 `hard_deny` 목록은 그대로 유지됩니다. `"$defaults"`를 생략하는 것은 목록의 전체 소유권을 가질 의도가 있을 때만 하세요. 이 경우 `claude auto-mode defaults`를 실행하여 기본 제공 규칙을 인쇄하고, 설정 파일에 복사한 다음, 각 규칙을 자신의 파이프라인 및 위험 허용도와 비교하여 검토하세요.176각 섹션은 독립적으로 평가되므로, `environment`만 설정하면 기본 `allow`, `soft_deny` 및 `hard_deny` 목록은 그대로 유지됩니다.

177 

178`"$defaults"`를 생략하는 것은 목록의 전체 소유권을 가질 의도가 있을 때만 하세요. 이 경우 `claude auto-mode defaults`를 실행하여 기본 제공 규칙을 인쇄하고, 설정 파일에 복사한 다음, 각 규칙을 자신의 파이프라인 및 위험 허용도와 비교하여 검토하세요.

179 

180<h2 id="route-all-shell-commands-through-the-classifier">

181 모든 셸 명령을 분류기를 통해 라우팅

182</h2>

183 

184기본적으로 좁은 Bash 및 PowerShell 허용 규칙(예: `Bash(npm test)`)은 자동 모드로 이월되며 분류기가 실행되기 전에 해결됩니다. 자동 모드는 `Bash(*)` 또는 와일드카드 인터프리터와 같은 임의 코드 실행을 부여하는 광범위한 규칙만 일시 중단합니다. 이는 좁은 규칙이 여전히 분류기가 보지 못하는 파괴적인 인수(예: 규칙의 접두사가 예상하지 못한 스크립트 경로 또는 플래그)를 통과시킬 수 있음을 의미합니다.

185 

186`autoMode.classifyAllShell`을 `true`로 설정하여 자동 모드가 활성화되어 있는 동안 모든 Bash 및 PowerShell 허용 규칙을 일시 중단하면, 분류기가 허용 목록에 관계없이 모든 셸 명령을 평가합니다.

187 

188```json theme={null}

189{

190 "autoMode": {

191 "classifyAllShell": true

192 }

193}

194```

195 

196이는 지연 시간을 위해 범위를 교환합니다: 허용 규칙이 즉시 승인했을 명령은 이제 분류기 결정을 기다리며, 각 셸 명령은 분류기 호출로 계산됩니다.

197 

198설정은 자동 모드가 활성화되어 있는 동안만 적용되며, 다른 권한 모드에서는 허용 규칙이 정상적으로 작동합니다.

199 

200<Note>

201 `autoMode.classifyAllShell`은 Claude Code v2.1.193 이상이 필요합니다. 이전 버전은 키를 무시하고 좁은 셸 허용 규칙을 자동 모드로 계속 이월합니다.

202</Note>

153 203 

154<h2 id="inspect-the-defaults-and-your-effective-config">204<h2 id="inspect-the-defaults-and-your-effective-config">

155 기본값 및 유효한 구성 검사205 기본값 및 유효한 구성 검사


175claude auto-mode critique225claude auto-mode critique

176```226```

177 227 

178설정을 저장한 후 `claude auto-mode config`를 실행하여 유효한 규칙이 예상한 것인지 확인하세요. `"$defaults"`가 제자리에 확장됩니다. 사용자 정의 규칙을 작성한 경우 `claude auto-mode critique`가 이를 검토하고 모호하거나 중복되거나 거짓 양성을 유발할 가능성이 있는 항목을 플래그합니다. 기본 제공 규칙을 추가하는 대신 제거하거나 다시 작성해야 하는 경우 `claude auto-mode defaults`의 출력을 파일에 저장하고, 목록을 편집한 다음, 결과를 설정 파일에 `"$defaults"` 대신 붙여넣으세요.228설정을 저장한 후 `claude auto-mode config`를 실행하여 유효한 규칙이 예상한 것인지 확인하세요. `"$defaults"`가 제자리에 확장됩니다. 사용자 정의 규칙을 작성한 경우 `claude auto-mode critique`가 이를 검토하고 모호하거나 중복되거나 거짓 양성을 유발할 가능성이 있는 항목을 플래그합니다.

229 

230기본 제공 규칙을 추가하는 대신 제거하거나 다시 작성해야 하는 경우 `claude auto-mode defaults`의 출력을 파일에 저장하고, 목록을 편집한 다음, 결과를 설정 파일에 `"$defaults"` 대신 붙여넣으세요.

179 231 

180<h2 id="review-denials">232<h2 id="review-denials">

181 거부 검토233 거부 검토


183 235 

184자동 모드가 도구 호출을 거부하면, 거부는 `/permissions` 아래의 최근 거부 탭에 기록됩니다. 거부된 작업에서 `r`을 누르면 재시도 표시됩니다: 대화 상자를 종료하면 Claude Code가 모델에 해당 도구 호출을 재시도할 수 있음을 알리는 메시지를 보내고 대화를 재개합니다.236자동 모드가 도구 호출을 거부하면, 거부는 `/permissions` 아래의 최근 거부 탭에 기록됩니다. 거부된 작업에서 `r`을 누르면 재시도 표시됩니다: 대화 상자를 종료하면 Claude Code가 모델에 해당 도구 호출을 재시도할 수 있음을 알리는 메시지를 보내고 대화를 재개합니다.

185 237 

238Claude Code v2.1.193 이상에서는 각 거부에 대한 분류기의 이유가 트랜스크립트의 차단된 도구 호출 옆에, 거부 알림에서, 그리고 최근 거부 탭의 각 항목 아래에 나타납니다. 이유를 사용하여 수정이 `environment` 항목, `allow` 예외 또는 다음 메시지에서 명시적 의도로 재시도하는 것인지 결정하세요.

239 

186동일한 대상에 대한 반복된 거부는 일반적으로 분류기가 컨텍스트를 놓치고 있음을 의미합니다. 해당 대상을 `autoMode.environment`에 추가한 다음 `claude auto-mode config`를 실행하여 적용되었는지 확인하세요.240동일한 대상에 대한 반복된 거부는 일반적으로 분류기가 컨텍스트를 놓치고 있음을 의미합니다. 해당 대상을 `autoMode.environment`에 추가한 다음 `claude auto-mode config`를 실행하여 적용되었는지 확인하세요.

187 241 

188거부에 프로그래밍 방식으로 반응하려면 [`PermissionDenied` 훅](/ko/hooks#permissiondenied)을 사용하세요.242거부에 프로그래밍 방식으로 반응하려면 [`PermissionDenied` 훅](/ko/hooks#permissiondenied)을 사용하세요.

claude-apps-gateway-config.md +748 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude 앱 게이트웨이 구성

6 

7> 모든 gateway.yaml 옵션에 대한 참조: 리스너 및 TLS, OIDC, 세션, Postgres 저장소, Bedrock/Agent Platform/Foundry 업스트림, 모델 라우팅, 관리형 정책 및 텔레메트리.

8 

9Claude 앱 게이트웨이 배포는 하나의 YAML 파일(관례상 `gateway.yaml`)로 구성됩니다. 이 파일은 게이트웨이가 수행하는 모든 작업을 정의합니다: 어디서 수신 대기하는지, 개발자가 어떻게 로그인하는지, 추론이 어디로 가는지, 어떤 정책과 텔레메트리가 적용되는지입니다. 이 페이지는 해당 파일의 모든 옵션에 대한 참조입니다. 첫 번째 파일을 작성하려면 [빠른 시작](/ko/claude-apps-gateway#quickstart)에서 시작하세요. 이 페이지는 최소한의 작동 구성을 구축하고 실행합니다. 만족스러운 구성이 있으면 [배포 가이드](/ko/claude-apps-gateway-deploy)에서 Kubernetes, Cloud Run 또는 자신의 플랫폼에서 컨테이너화 및 호스팅하는 방법을 다룹니다.

10 

11게이트웨이는 `claude gateway --config /path/to/gateway.yaml`을 사용하여 시작 시 파일을 한 번 읽습니다. 모든 옵션은 부팅 시 스키마에 대해 검증되므로 잘못된 구성은 첫 사용 시가 아니라 필드 수준 오류로 시작 시 실패합니다.

12 

13이 페이지 끝의 [완전한 예제](#complete-example)는 모든 섹션을 다룹니다.

14 

15<h2 id="file-structure">

16 파일 구조

17</h2>

18 

195개 섹션이 [필수](#required-sections)입니다. 다른 모든 섹션은 [선택 사항](#optional-sections)이며, 생략된 섹션은 기본값을 사용합니다. 알 수 없는 키는 부팅을 실패하므로 오타는 자동으로 무시되는 설정이 아니라 명명된 오류로 표시됩니다.

20 

21**필수 섹션:**

22 

23* [`listen`](#listen): 바인드 주소, 공개 URL, TLS 종료

24* [`oidc`](#oidc): ID 공급자(IdP), 발급자, 클라이언트, 클레임 매핑 및 로그인 가능 사용자 포함

25* [`session`](#session): 게이트웨이가 발급하는 베어러 토큰, 비밀 및 수명 포함

26* [`store`](#store): 장치 권한 부여 및 속도 제한 카운터용 PostgreSQL

27* [`upstreams`](#upstreams): 추론이 가는 위치, Anthropic, Bedrock, Agent Platform 또는 Foundry 여부

28 

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

30 

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

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

33* [`models`](#models) 및 `auto_include_builtin_models`: 관리자 선별 모델 목록 및 업스트림별 ID

34* [`managed`](#managed): IdP 그룹별 관리형 설정 정책

35* [`telemetry`](#telemetry): 관찰성 스택으로의 OTLP 전달

36* [`access_control`, `limits`, `timeouts`, `rate_limits`](#http-tuning): IP 허용/거부, 요청 크기 제한, 업스트림 첫 바이트까지의 시간 및 IP당 로그인 한도

37 

38<h2 id="secret-expansion">

39 비밀 확장

40</h2>

41 

42`client_secret`, `jwt_secret` 또는 `postgres_url`과 같은 비밀을 `gateway.yaml`에 직접 작성하지 마세요. 아래 형식 중 하나로 참조하면 게이트웨이가 부팅 시 환경 변수 또는 파일에서 값을 확인합니다:

43 

44| 형식 | 확인 대상 | 사용 대상 |

45| --------------- | ---------------------------- | ------------------------------------------- |

46| `${VAR}` | 환경 변수 `VAR`. 정의되지 않으면 부팅 실패. | 컨테이너 환경 변수, 환경 주입을 통한 AWS Secrets Manager |

47| `${file:/path}` | 파일 내용, 정리됨 | Kubernetes Secret 볼륨 마운트, Vault Agent, SOPS |

48 

49<h2 id="required-sections">

50 필수 섹션

51</h2>

52 

53<h3 id="listen">

54 `listen`

55</h3>

56 

57`listen` 블록은 게이트웨이가 제공하는 위치를 제어합니다: 바인드 주소 및 포트, 외부에서 보이는 원본 및 선택적 TLS 종료.

58 

59| 필드 | 필수 | 설명 |

60| ---------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

61| `host` | 아니요 | 바인드 주소. 기본값 `0.0.0.0`. |

62| `port` | 아니요 | 바인드 포트. 기본값 `8080`. |

63| `public_url` | 프록시 뒤 | 외부에서 보이는 `https://` 원본, IdP `redirect_uri` 및 검색 메타데이터를 구축하는 데 사용됩니다. ALB, Ingress 또는 Cloud Run과 같은 TLS 종료 프록시 뒤에 필수입니다. 게이트웨이는 자신의 원본을 구성할 때 `X-Forwarded-*` 헤더를 신뢰하지 않기 때문입니다. 이들은 클라이언트가 스푸핑할 수 있습니다. 아래의 `trusted_proxies`는 클라이언트 IP 확인만 제어합니다. 또한 [텔레메트리](#telemetry)를 활성화하려면 필수입니다. 게이트웨이가 클라이언트에 푸시하는 OTLP 엔드포인트를 이 URL에서 구축하기 때문입니다. |

64| `tls.cert` / `tls.key` | 아니요 | 게이트웨이가 자체적으로 TLS를 종료하는 경우 PEM 경로 |

65| `trusted_proxies` | 아니요 | 게이트웨이 앞의 로드 밸런서의 CIDR 또는 IP. 설정하면 게이트웨이는 이 피어에서만 `X-Forwarded-For`를 신뢰하고 IP당 속도 제한 및 감사를 위해 실제 클라이언트 IP를 기록합니다. nginx `set_real_ip_from`과 동등합니다. |

66 

67<h3 id="oidc">

68 `oidc`

69</h3>

70 

71OpenID Connect(OIDC)는 게이트웨이가 ID 공급자와 함께 사용하는 SSO 프로토콜입니다. IdP 측에서 등록할 내용은 [ID 공급자 설정](/ko/claude-apps-gateway-deploy#identity-provider-setup)을 참조하세요. `oidc` 블록은 게이트웨이를 ID 공급자에 연결하고 로그인할 수 있는 사용자를 결정합니다. 발급자 및 OAuth 클라이언트의 이름을 지정하고, 이메일 및 그룹을 전달하는 클레임을 매핑하며, 이메일 도메인 또는 그룹별로 로그인을 제한합니다.

72 

73| 필드 | 필수 | 설명 |

74| ------------------------------- | --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

76| `client_id` / `client_secret` | 예 | OAuth 클라이언트 등록에서 |

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

78| `allowed_groups` | 아니요 | 로그인을 이 IdP 그룹의 구성원으로 제한하며, `groups_claim`과 비교합니다. 허용된 이메일 도메인에 있지만 이 그룹 중 어느 것도 아닌 사용자는 거부됩니다. IdP가 그룹 클레임을 내보내야 합니다. |

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

80| `google_groups` | 아니요 | Google Workspace Admin SDK Directory API를 통해 로그인한 사용자의 그룹을 조회합니다. Google의 id\_token은 그룹 클레임을 전달하지 않기 때문입니다. `service_account_json_path`를 `https://www.googleapis.com/auth/admin.directory.group.readonly` 범위에 대한 도메인 전체 위임이 있는 서비스 계정 키 파일로 설정하고, `admin_email`을 서비스 계정이 가장하는 Workspace 관리자로 설정합니다. Directory API는 실제 관리자 주체가 필요합니다. 각 사용자의 그룹 이메일 주소는 그룹 클레임이 되므로 `allowed_groups` 및 `managed.policies.match.groups`는 그룹 이메일과 일치합니다. |

81| `email_claim` | 아니요 | 어느 id\_token 클레임이 사용자의 이메일을 전달하는지. 기본값 `email`. ADFS 및 Entra B2C와 같은 일부 IdP는 대신 `upn` 또는 `preferred_username`을 내보냅니다. 평면 키, JSON 포인터 또는 첫 번째 존재하는 키가 사용되는 폴백 키 목록을 허용합니다. |

82| `scopes` | 아니요 | 게이트웨이가 요청하는 OIDC 범위의 전체 재정의. 기본값 `[openid, profile, email, offline_access]`. IdP가 인식하지 못하는 범위를 거부하거나 그룹 또는 이메일을 내보내기 위해 사용자 정의 범위가 필요한 경우 설정합니다. `openid`를 포함해야 합니다. `offline_access`를 삭제하면 새로 고침 토큰이 비활성화되므로 개발자는 `session.ttl_hours`마다 브라우저 로그인을 다시 실행합니다. Google의 새로 고침 토큰 흐름과 같은 IdP별 범위 레시피는 [ID 공급자 설정](/ko/claude-apps-gateway-deploy#identity-provider-setup)을 참조하세요. |

83| `extra_auth_params` | 아니요 | IdP 인증 요청에 그대로 추가되는 추가 쿼리 매개변수. 이것은 Google 새로 고침 토큰의 `access_type: offline`, 일부 Entra 테넌트의 `domain_hint` 또는 단계별 흐름의 `acr_values`와 같은 IdP 특정 동작에 대한 재정의 메커니즘입니다. 게이트웨이 관리 프로토콜 매개변수는 재정의할 수 없습니다: `state`, `nonce`, `redirect_uri`, PKCE, `scope`, `response_type`, `response_mode` 및 `client_id`. |

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

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

86| `clock_skew_seconds` | 아니요 | id\_token 시간 클레임을 검증할 때 클록 드리프트를 허용합니다. 기본값 `0`(엄격함). 로그인 직후 "토큰 만료됨 / 아직 유효하지 않음" 오류가 표시되면 호스트/IdP 클록 스큐로 인해 올립니다. |

87| `token_endpoint_auth_method` | 아니요 | 토큰 엔드포인트 인증 방법을 재정의합니다. `client_secret_basic` 또는 `client_secret_post`를 허용합니다. 기본적으로 자동 협상됩니다. |

88| `id_token_signed_response_alg` | 아니요 | 예상 id\_token 서명 알고리즘. 기본값 `RS256`. IdP가 ES256, PS256 또는 EdDSA로 서명하는 경우 설정합니다. |

89| `additional_authorized_parties` | 아니요 | `client_id` 외에 허용할 추가 `azp` 값, Keycloak 브로커 및 토큰 교환 흐름의 경우 |

90| `discovery_url` | 아니요 | 발급자에서 파생하는 대신 이 URL에서 검색 문서를 가져옵니다. IdP가 발급자 호스트를 다시 쓰는 프록시 뒤에 있는 경우. 경로는 `/.well-known/`을 포함해야 합니다. |

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

92| `ca_cert_pem` | 아니요 | IdP 요청에만 시스템 신뢰 저장소를 대체하는 PEM CA 인증서. 회사 PKI 뒤의 Keycloak 또는 Dex에 사용합니다. |

93 

94<h3 id="session">

95 `session`

96</h3>

97 

98`session` 블록은 로그인 후 게이트웨이가 발급하는 베어러 토큰의 형태를 결정합니다: 서명하는 비밀과 수명.

99 

100| 필드 | 필수 | 설명 |

101| ------------ | --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

102| `jwt_secret` | 예 | 최소 32바이트의 엔트로피(예: `openssl rand -base64 32`에서). 게이트웨이의 HS256 베어러 토큰에 서명합니다. 단일 문자열 또는 회전용 배열을 허용합니다: 인덱스 0이 서명하고 모든 항목이 검증합니다. 회전하려면 새 비밀을 앞에 추가하고 `ttl_hours`를 기다린 후 이전 비밀을 삭제합니다. |

103| `ttl_hours` | 아니요 | 게이트웨이 베어러 토큰 수명. 기본값 `1`. CLI는 IdP가 새로 고침 토큰을 발급할 때 만료 전에 자동으로 새로 고칩니다. 더 짧은 수명은 더 빠르게 프로비저닝을 해제합니다. 더 긴 수명은 더 적은 IdP 왕복을 만듭니다. IdP가 `offline_access`를 사용할 수 없어서 새로 고침 토큰을 발급할 수 없으면 자동 새로 고침이 없으므로 개발자가 매시간 브라우저 로그인으로 돌아가는 것을 피하기 위해 이를 `8` 또는 `12`로 올립니다. |

104 

105<h3 id="store">

106 `store`

107</h3>

108 

109`store` 블록은 게이트웨이를 PostgreSQL 데이터베이스로 지정합니다. 이 데이터베이스는 장치 권한 부여 및 속도 제한 카운터를 보유합니다.

110 

111| 필드 | 필수 | 설명 |

112| ----------------- | --- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

113| `postgres_url` | 예 | `postgres://` 또는 `postgresql://` URL. 필수: 장치 권한 부여 랑데부(브라우저 콜백이 쓰고 폴링 CLI가 읽음)는 교차 복제본 상태가 필요합니다. 게이트웨이는 부팅 시 자체 스키마 마이그레이션을 실행하므로 역할은 대상 스키마에 대해 `CREATE TABLE`이 필요합니다. 보안 정책이 애플리케이션 역할의 DDL을 금지하는 경우 관리자 역할로 마이그레이션을 실행하고(초기에 그리고 새 릴리스가 마이그레이션을 제공할 때마다 다시) 앱 역할에 게이트웨이의 테이블에 대해 `SELECT, INSERT, UPDATE, DELETE`를 부여합니다. [업그레이드](/ko/claude-apps-gateway-deploy#upgrades) 및 [Postgres](/ko/claude-apps-gateway-deploy#postgres)를 참조하세요. |

114| `username` | 아니요 | `postgres_url`의 사용자를 재정의합니다 |

115| `password` | 아니요 | 데이터베이스 자격증명. 자격증명이 URL에서 벗어나도록 `postgres_url`이 아닌 여기에 설정합니다. 모든 문자를 허용하고 URL 자격증명보다 우선합니다. |

116| `max_connections` | 아니요 | 복제본당 Postgres 연결 풀 크기. 기본값 `5`(보수적이고 공유 데이터베이스에 친화적). [지출 한도](#admin)가 활성화되면 핫 경로는 추론 요청당 몇 가지 작업을 수행하므로 로드 아래의 전용 데이터베이스에 대해 올리고 복제본 × 이를 데이터베이스의 `max_connections` 아래로 유지합니다. |

117 

118로컬 개발의 경우 `postgres_url`을 일회용 Postgres 컨테이너로 지정합니다(예: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`).

119 

120<h3 id="upstreams">

121 `upstreams`

122</h3>

123 

124`upstreams`는 정렬된 목록입니다. 게이트웨이는 요청된 모델을 확인하는 첫 번째 업스트림으로 추론을 전달합니다. `5xx`, `429` 또는 시간 초과 시 다음으로 장애 조치합니다. 다른 `4xx`는 그렇지 않습니다. 이러한 오류는 업스트림이 아닌 요청에 기인하기 때문입니다. 동일한 공급자의 여러 업스트림은 고유한 `name:`을 설정해야 합니다.

125 

126Bedrock, Agent Platform 및 Foundry 클라이언트는 시작 시 한 번 구축되며 SDK는 자격증명을 내부적으로 새로 고치므로 클라우드 자격증명을 회전해도 재시작이 필요하지 않습니다. 정적 Anthropic API 키 및 베어러는 시작 시 읽혀집니다. [Anthropic API](#anthropic-api)를 참조하세요.

127 

128<h4 id="anthropic-api">

129 Anthropic API

130</h4>

131 

132최소 Anthropic 업스트림은 [Claude 콘솔](https://platform.claude.com)의 API 키입니다:

133 

134```yaml theme={null}

135upstreams:

136 - provider: anthropic

137 auth:

138 api_key: ${ANTHROPIC_API_KEY}

139 # 또는 OAuth 베어러(예: Workload-Identity-Federation 교환 토큰):

140 # oauth_token: ${file:/var/run/secrets/anthropic-oauth-token}

141 # base_url: https://api.anthropic.com # 기본값; 전달 프록시에 대해 재정의

142```

143 

144두 자격증명 형식은 전송하는 헤더가 다릅니다:

145 

146* **`api_key`**: `x-api-key`를 보냅니다. Claude 콘솔에서 회전하고 환경 변수를 업데이트합니다.

147* **`oauth_token`**: `Authorization: Bearer`를 보냅니다. 조직이 장기 API 키 대신 단기 토큰을 발급할 때 베어러 형식을 사용합니다. 베어러는 시작 시 한 번 읽혀지므로 비밀을 다시 마운트하고 재시작하여 새로 고칩니다.

148 

149정적 키 또는 베어러 대신 Workload Identity Federation을 사용할 수 있습니다. [Workload Identity Federation 가이드](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)를 따라 페더레이션 규칙을 만든 후 Kubernetes 프로젝트된 서비스 계정 토큰 또는 CI 플랫폼의 id-token과 같은 파일로 워크로드의 OIDC JWT를 마운트합니다. 게이트웨이는 JWT를 단기 베어러로 교환하고 자동으로 새로 고칩니다. 토큰 파일은 모든 교환에서 다시 읽혀지므로 회전된 프로젝트된 토큰은 재시작 없이 선택됩니다.

150 

151```yaml theme={null}

152upstreams:

153 - provider: anthropic

154 auth:

155 federation_rule_id: ${ANTHROPIC_FEDERATION_RULE_ID}

156 organization_id: ${ANTHROPIC_ORGANIZATION_ID}

157 identity_token_file: /var/run/secrets/anthropic/id-token

158 # workspace_id: wrkspc_... # 규칙이 >1 워크스페이스를 다루는 경우 필수

159 # service_account_id: svac_... # 선택적 예상 대상 확인

160```

161 

162<h4 id="amazon-bedrock">

163 Amazon Bedrock

164</h4>

165 

166게이트웨이가 대체하거나 앞에 있는 클라이언트 측 Bedrock 배포의 경우 [Amazon Bedrock의 Claude Code](/ko/amazon-bedrock)를 참조하세요. 게이트웨이 측 업스트림:

167 

168```yaml theme={null}

169upstreams:

170 - provider: bedrock

171 region: us-east-1

172 auth: {} # 선호: AWS 기본 자격증명 체인

173 # 또는 명시적 자격증명:

174 # auth:

175 # aws_access_key_id: ${AWS_AKID}

176 # aws_secret_access_key: ${AWS_SK}

177 # aws_session_token: ${AWS_ST}

178 # 또는 Bedrock API 베어러 토큰:

179 # auth:

180 # aws_bearer_token: ${AWS_BEARER_TOKEN}

181 # FIPS 또는 VPC 엔드포인트 배포를 위해 bedrock-runtime 엔드포인트를 재정의합니다:

182 # base_url: https://bedrock-runtime-fips.us-east-1.amazonaws.com

183```

184 

185빈 `auth` 블록은 AWS SDK의 기본 자격증명 체인을 사용합니다: 환경 변수, `~/.aws/credentials`, ECS 작업 역할, EC2 인스턴스 메타데이터 또는 EKS의 IRSA. 프로덕션에서는 컨테이너 이미지에 정적 키를 포함하는 대신 게이트웨이 포드에 IAM 역할을 제공합니다.

186 

187| 설정 | 방법 |

188| --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

189| IAM 권한 | 게이트웨이의 주체에 추론 프로필 ARN 및 기본 기초 모델 ARN 모두에 대해 `bedrock:InvokeModel` 및 `bedrock:InvokeModelWithResponseStream`을 부여합니다. US 지역의 기본 제공 카탈로그의 경우: `arn:aws:bedrock:<region>:<account>:inference-profile/us.anthropic.*` 및 `arn:aws:bedrock:*::foundation-model/anthropic.*`. |

190| 모델 액세스 | Bedrock 콘솔에서 지역별로 원하는 Claude 모델에 대한 모델 액세스를 요청하고 활성화합니다. 교차 지역 추론 프로필(`us.anthropic.*`)은 프로필이 걸쳐 있는 각 지역에서 모델 액세스가 필요합니다. |

191| EKS(IRSA) | 위의 정책과 클러스터의 OIDC 공급자로 범위가 지정된 신뢰 정책이 있는 IAM 역할을 만듭니다. 게이트웨이의 서비스 계정에 `eks.amazonaws.com/role-arn: arn:aws:iam::<acct>:role/claude-gateway`로 주석을 답니다. `auth: {}`가 선택합니다. |

192| ECS / EC2 | IAM 역할을 작업 정의 또는 인스턴스 프로필에 연결합니다. `auth: {}`가 선택합니다. |

193| 다른 곳 | `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` 및 `AWS_SESSION_TOKEN` 환경 변수를 통해 자격증명을 전달하거나 `auth:`에서 `${VAR}` 확장으로 명시적으로 설정합니다 |

194| 지역 | `region:`은 API 엔드포인트 지역입니다. 교차 지역 추론 프로필은 선택한 지역과 무관하게 지역(US, EU, APAC)을 통해 라우팅합니다. US가 아닌 지역 또는 프로비저닝된 처리량 ARN의 경우 올바른 업스트림별 ID가 있는 [`models:`](#models) 블록을 추가합니다. |

195 

196<h4 id="google-cloud-agent-platform">

197 Google Cloud Agent Platform

198</h4>

199 

200동등한 클라이언트 측 설정의 경우 [Google Cloud의 Claude Code](/ko/google-vertex-ai)를 참조하세요. 게이트웨이 측 업스트림:

201 

202```yaml theme={null}

203upstreams:

204 - provider: vertex

205 region: us-east5

206 project_id: example-prod

207 auth: {} # 선호: Application Default Credentials

208 # 또는 서비스 계정 키 파일:

209 # auth: { service_account_json: /secrets/sa.json }

210 # Private Service Connect를 위해 aiplatform 엔드포인트를 재정의합니다:

211 # base_url: https://us-east5-aiplatform.p.googleapis.com

212```

213 

214빈 `auth` 블록은 Application Default Credentials를 사용합니다: `GOOGLE_APPLICATION_CREDENTIALS`, GCE 메타데이터 또는 GKE Workload Identity. 서비스 계정 JSON 키 파일은 지원되지만 권장되지 않습니다. Workload Identity를 사용하거나 GCE 또는 Cloud Run 인스턴스에 서비스 계정을 연결합니다.

215 

216`region: global`을 설정하여 지역 엔드포인트 대신 [Agent Platform의 글로벌 엔드포인트](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations)를 사용합니다. Google은 각 요청을 사용 가능한 지역으로 라우팅하므로 지역별 모델 가용성을 추적하지 않습니다. 특정 지역을 설정하면 모든 요청이 해당 지역에 고정됩니다.

217 

218| 설정 | 방법 |

219| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

220| IAM 권한 | 게이트웨이의 서비스 계정에 프로젝트에 대해 `roles/aiplatform.user`를 부여하거나 `aiplatform.endpoints.predict`가 있는 사용자 정의 역할을 부여합니다. Agent Platform API(`aiplatform.googleapis.com`)를 활성화합니다. |

221| 모델 액세스 | Model Garden에서 프로젝트에 대해 Claude 모델을 활성화합니다. 특정 지역에 게시합니다. 지원되는 지역은 모델 카드를 확인하세요. |

222| GKE(Workload Identity) | GCP 서비스 계정을 게이트웨이의 Kubernetes 서비스 계정에 바인드하고 KSA에 `iam.gke.io/gcp-service-account: claude-gateway@<proj>.iam.gserviceaccount.com`으로 주석을 답니다. `auth: {}`가 선택합니다. |

223| Cloud Run / GCE | 서비스의 서비스 계정을 `roles/aiplatform.user`가 있는 것으로 설정합니다. `auth: {}`가 선택합니다. |

224| 다른 곳 | `auth: { service_account_json: /secrets/sa.json }`, JSON 키 파일의 경로가 비밀로 마운트됩니다. 필드는 키 내용이 아닌 파일 경로를 사용하므로 `${file:…}` 확장이 관련되지 않습니다. |

225 

226<h4 id="microsoft-foundry">

227 Microsoft Foundry

228</h4>

229 

230클라이언트 측 Foundry 배포의 경우 [Microsoft Foundry의 Claude Code](/ko/microsoft-foundry)를 참조하세요. 게이트웨이 측 업스트림:

231 

232```yaml theme={null}

233upstreams:

234 - provider: foundry

235 resource: example-foundry # https://example-foundry.services.ai.azure.com

236 auth: { use_azure_ad: true } # 선호: DefaultAzureCredential / Managed Identity

237 # 또는 API 키:

238 # auth:

239 # api_key: ${FOUNDRY_API_KEY}

240```

241 

242`use_azure_ad: true`는 `DefaultAzureCredential`을 통해 확인합니다: AKS, ACI 또는 App Service의 Managed Identity, Azure CLI 또는 환경 자격증명. API 키는 작동하지만 프로젝트 전체이며 자동으로 회전하지 않습니다. Foundry의 엔드포인트는 `resource:`에서 파생됩니다. Azure Government와 같은 소주권 클라우드에 대해 선택적 `base_url`을 설정하여 재정의합니다.

243 

244| 설정 | 방법 |

245| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------- |

246| RBAC | 게이트웨이의 ID에 Foundry 리소스에 대해 `Azure AI User` 또는 `Cognitive Services User`를 부여합니다 |

247| 배포 | Foundry는 정규 모델 ID가 아닌 관리자 선택 배포 이름을 사용합니다. 각 정규 ID를 배포 이름에 매핑하는 [`models:`](#models) 블록을 추가합니다. |

248| AKS(워크로드 ID) | 사용자 할당 Managed Identity를 클러스터의 OIDC 발급자와 페더레이션하고 게이트웨이의 서비스 계정에 바인드합니다. `use_azure_ad: true`가 `WorkloadIdentityCredential`을 통해 선택합니다. |

249| ACI / App Service | 리소스에서 시스템 할당 또는 사용자 할당 관리 ID를 활성화합니다. `use_azure_ad: true`가 선택합니다. |

250| 다른 곳 | `auth: { api_key: "${FOUNDRY_API_KEY}" }`. `{ }` 내에서 `${…}`를 인용합니다. |

251 

252<h4 id="multiple-upstreams">

253 여러 업스트림

254</h4>

255 

256동일한 공급자는 고유한 `name:`으로 두 번 이상 나타날 수 있습니다. 이는 다양한 지역, 다양한 자격증명 체인을 통한 다양한 계정, 프로비저닝된 처리량 대 온디맨드 및 교차 공급자 장애 조치를 다룹니다.

257 

258게이트웨이는 순서대로 업스트림을 시도합니다. `5xx`, `429`, 시간 초과 및 누락된 엔드포인트(`501`)는 장애 조치합니다. 다른 `4xx`는 그렇지 않습니다. `429`는 업스트림별 용량이므로 프로비저닝된 처리량(PT) 소진은 온디맨드로 장애 조치합니다. 요청된 모델을 확인할 수 없는 업스트림은 네트워크 왕복 없이 건너뜁니다.

259 

260이 예제는 프로비저닝된 처리량 Bedrock 할당을 먼저 라우팅하고, 온디맨드 및 두 번째 계정으로 오버플로우하며, 마지막으로 Anthropic API로 장애 조치합니다:

261 

262```yaml theme={null}

263upstreams:

264 # 기본: 홈 지역의 프로비저닝된 처리량.

265 - name: bedrock-pt

266 provider: bedrock

267 region: us-east-1

268 auth: {}

269 # 오버플로우: 온디맨드 교차 지역.

270 - name: bedrock-od

271 provider: bedrock

272 region: us-west-2

273 auth: {}

274 # 다른 계정: 가정된 역할 자격증명을 통한 별도의 Bedrock 할당.

275 - name: bedrock-acct2

276 provider: bedrock

277 region: us-east-1

278 auth:

279 aws_access_key_id: ${ACCT2_AKID}

280 aws_secret_access_key: ${ACCT2_SK}

281 # 최후의 수단: 직접 Anthropic API.

282 - name: anthropic-fallback

283 provider: anthropic

284 auth:

285 api_key: ${ANTHROPIC_API_KEY}

286 

287# 업스트림별 모델 ID는 업스트림의 `name:`으로 키가 지정됩니다. `name:`이 없는 업스트림은

288# 기본값으로 공급자 문자열(예: `bedrock`)을 사용합니다. 모델에 대해 나열되지 않은 모든

289# 업스트림은 건너뜁니다. 이것이 모델을 프로비저닝된 처리량으로 라우팅하는 방법입니다.

290# 다른 모든 것은 온디맨드로 유지됩니다.

291models:

292 - id: claude-opus-4-8

293 label: Claude Opus 4.8

294 upstream_model:

295 bedrock-pt: arn:aws:bedrock:us-east-1:111111111111:provisioned-model/abcdef

296 bedrock-od: us.anthropic.claude-opus-4-8

297 bedrock-acct2: us.anthropic.claude-opus-4-8

298 anthropic-fallback: claude-opus-4-8

299```

300 

301| 레버 | 방법 |

302| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |

303| 다른 지역 | 지역당 하나의 Bedrock 업스트림, 각각 자신의 `region:`. [`auto_include_builtin_models: true`](#models)를 사용하면 교차 지역 추론 프로필이 자동으로 라우팅됩니다. 지역 고정 배포의 경우 `models:` 블록을 사용합니다. |

304| 다른 계정 | 계정당 하나의 Bedrock 업스트림, 각각 `auth:`의 자신의 자격증명. 기본 체인(`auth: {}`)은 포드의 ID를 사용합니다. 두 번째 계정의 경우 명시적 자격증명 또는 베어러 토큰을 설정합니다. |

305| 프로비저닝된 처리량 | 해당 업스트림의 이름에 대해 `models:`에서 모델을 프로비저닝된 처리량 ARN에 매핑합니다. 다른 업스트림은 온디맨드 ID를 유지하므로 PT 용량이 장애 조치 전에 소진됩니다. |

306| VPC / FIPS 엔드포인트 | 업스트림에서 `base_url:`을 VPC 엔드포인트 또는 FIPS 엔드포인트 URL로 설정합니다 |

307| 모델 범위 라우팅 | 모델의 `upstream_model:` 맵에서 업스트림을 생략하면 해당 업스트림은 해당 모델에 대해 건너뜁니다. 예를 들어 Opus를 프로비저닝된 처리량으로 라우팅하고 Sonnet 및 Haiku를 온디맨드로 라우팅합니다. |

308 

309클라우드 공급자 간 또는 직접 Anthropic API로 장애 조치하면 요청을 관리하는 계약, 지역 및 기타 약관이 변경됩니다.

310 

311CLI는 어느 업스트림이 주어진 요청을 제공하는지와 무관하게 게이트웨이에 동일한 기능 게이팅을 적용하므로 장애 조치는 업스트림이 거부할 본문 필드를 보내지 않습니다.

312 

313<h2 id="optional-sections">

314 선택 사항 섹션

315</h2>

316 

317<h3 id="admin">

318 `admin`

319</h3>

320 

321선택 사항. Anthropic의 공개 관리자 API를 미러링하는 `/v1/organizations/spend_limits`를 활성화하고 `/v1/messages`에서 개발자별 지출 적용을 활성화합니다. 한도가 설정되고 적용되는 방법은 [지출 한도](/ko/claude-apps-gateway-spend-limits)를 참조하세요. 이 섹션은 기능을 켜고 조정하는 `gateway.yaml` 키를 다룹니다.

322 

323```yaml theme={null}

324admin:

325 # 관리자 엔드포인트에 대한 명명된 정적 API 키, x-api-key로 전송됨.

326 # id는 감사 로그에 admin-key:<id>로 나타나므로 각 키는

327 # 귀속 가능합니다. 회전용 배열: 새 키를 추가하고 클라이언트를 롤링하고

328 # 이전 키를 제거합니다.

329 write_keys:

330 - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }

331 - { id: ci, key: "${GATEWAY_ADMIN_WRITE_KEY_CI}" }

332 read_keys:

333 - { id: reporting, key: "${GATEWAY_ADMIN_READ_KEY}" }

334 # 일반 게이트웨이 JWT를 통해 전체 관리자 권한이 부여된 IdP 그룹(API 키 없음).

335 admin_groups: [platform-finops]

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

337```

338 

339| 필드 | 필수 | 설명 |

340| ------------------------- | --- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

341| `write_keys` | 아니요 | `{id, key}` 배열. 이 중 하나와 일치하는 `x-api-key`는 지출 한도를 나열, 설정 및 삭제할 수 있습니다. 키 값은 최소 32자여야 합니다. `id`는 `read_keys` 및 `write_keys`에서 고유해야 합니다. |

342| `read_keys` | 아니요 | `{id, key}` 배열. 읽기 전용: 모든 `GET` 엔드포인트, 한도 나열, ID별 가져오기 및 [`/effective`](/ko/claude-apps-gateway-spend-limits#%2Feffective) 및 [`/audit`](/ko/claude-apps-gateway-spend-limits#%2Faudit) 읽기 포함. |

343| `admin_groups` | 아니요 | IdP 그룹 이름. `groups` 클레임이 이 중 하나를 포함하는 게이트웨이 JWT는 전체 관리자 액세스(읽기 및 쓰기)를 가지며 `oidc:<sub>`로 감사합니다. 인간 관리자에게 사용합니다. 기계에는 API 키를 사용합니다. |

344| `blocked_message` | 아니요 | 차단된 개발자가 보는 `429 billing_error`에 그대로 추가됩니다. URL 또는 Slack 채널과 같은 전체 지침을 작성합니다. 설정하지 않으면 오류는 `spend limit reached`입니다. |

345| `audit_retention_days` | 아니요 | 기본값 `365`. 더 오래된 `admin_audit` 행은 정리됩니다. |

346| `spend_retention_months` | 아니요 | 기본값 `13`. 이보다 오래된 `spend` 카운터 행은 정리됩니다. 기본값은 연간 비교 보고를 위해 전체 연도와 현재 부분 월을 유지합니다. |

347| `identity_retention_days` | 아니요 | 기본값 `90`. `principal_emails` 행의 마지막 표시 TTL(각 개발자의 이메일, 표시 이름 및 그룹 포함, PII). 의도적으로 지출 보유보다 짧으므로 프로비저닝 해제된 ID는 익명 지출 카운터가 유지되는 동안 만료됩니다. |

348| `group_limit_mode` | 아니요 | `min`(기본값) 또는 `max`. 개발자가 한도가 있는 여러 그룹에 있을 때 `min`은 가장 제한적인 것을 적용하고 `max`는 가장 제한적이지 않은 것을 적용합니다. 적용 및 `/effective` 모두에서 사용됩니다. |

349 

350<h3 id="enforcement">

351 `enforcement`

352</h3>

353 

354`enforcement` 블록은 저장소를 사용할 수 없을 때 지출 한도 확인이 어떻게 동작하는지 제어합니다.

355 

356| 필드 | 필수 | 설명 |

357| ---------------------- | --- | -------------------------------------------------------------------------------------------------------------------------------------------------- |

358| `fail_closed_on_error` | 아니요 | 기본값 `false`. 지출 적용은 Postgres 중단 시 개방되므로 추론이 계속됩니다. `true`로 설정하여 폐쇄: 초과 용량 개발자는 차단되지만 저장소에 도달할 수 없으면 모두가 차단됩니다. [`admin:`](#admin) 블록 없이는 효과가 없습니다. |

359 

360<h3 id="models">

361 `models`

362</h3>

363 

364`models` 블록은 선택적 관리자 선별 모델 목록이며 `/v1/models`에서 제공되고 업스트림별 모델 ID를 변환하는 데 사용됩니다. US가 아닌 Bedrock 지역, Bedrock 프로비저닝된 처리량 ARN 및 Foundry 배포 이름에 필수입니다.

365 

366```yaml theme={null}

367auto_include_builtin_models: true # false: 아래 목록만 노출

368models:

369 - id: claude-opus-4-8

370 label: Claude Opus 4.8

371 # description: 선택적 텍스트가 표시되는 클라이언트에 표시됨

372 upstream_model:

373 anthropic: claude-opus-4-8

374 bedrock: us.anthropic.claude-opus-4-8 # 또는 추론 프로필 ARN

375 foundry: your-opus-deployment-name

376```

377 

378<h3 id="managed">

379 `managed`

380</h3>

381 

382`managed` 블록은 IdP 그룹 또는 이메일 도메인을 기반으로 하는 역할 기반 액세스 정책을 정의합니다. 정책은 순서대로 평가됩니다. 첫 번째 일치가 선택되고 아래에 설명된 `match: {}` 캐치올 기본에 병합됩니다. 사용자별로 `GET /managed/settings`에서 ETag/304 캐싱으로 제공됩니다.

383 

384```yaml theme={null}

385managed:

386 policies:

387 # 특정 그룹을 먼저.

388 - match: { groups: [eng-contractors] }

389 cli:

390 availableModels: [claude-sonnet-4-6]

391 permissions: { deny: ["WebFetch", "WebSearch"] }

392 # 기본 캐치올 마지막: 인증된 모든 사용자와 일치.

393 - match: {}

394 cli:

395 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]

396```

397 

398`match: {}` 캐치올(관례상 마지막에 나열됨)은 기본 계층으로 처리됩니다. 모든 다른 정책은 설정하지 않은 모든 키를 캐치올에서 상속하므로 역할별 항목은 조직 기본값과 다른 것만 나열하면 됩니다. 병합 규칙은 키 유형에 따라 다릅니다:

399 

400* **허용 목록**: `availableModels` 및 `permissions.allow`. 특정 정책의 목록은 기본값을 완전히 대체합니다.

401* **거부 목록 및 후크 배열**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces` 및 모든 `hooks` 이벤트 유형 배열. 이들은 기본값과 정책의 합집합을 사용하므로 조직 전체 거부 또는 감사 후크는 역할별 재정의로 실수로 삭제될 수 없습니다.

402* **레코드 유형 키**: `env`, `modelOverrides` 및 `skillOverrides`. 이들은 얕게 병합되므로 역할별 `env` 블록은 설정하는 키를 재정의하고 나머지는 기본값에서 상속합니다.

403 

404`availableModels`는 또한 `/v1/messages`에서 서버 측으로 적용되므로 거부된 모델은 클라이언트가 보내는 것과 무관하게 `400`을 반환합니다.

405 

406| 매처 | 동작 |

407| --------------------------------------------------- | --------------------------------------------------------------------------------- |

408| `match: {}` | 인증된 모든 사용자와 일치합니다. 이 중 하나로 시작하고 나중에 그룹 범위 정책을 위에 추가합니다. |

409| `match: { groups: [a, b] }` | JWT의 `groups` 클레임이 나열된 그룹 중 하나를 포함하면 일치합니다. 대소문자 구분: 그룹은 IdP의 정확한 대소문자와 일치해야 합니다. |

410| `match: { email_domain: example.com }` | JWT의 `email` 클레임에서 마지막 `@` 뒤의 부분과 일치합니다(대소문자 구분 안 함). 정책당 하나의 도메인을 허용합니다. |

411| `match: { groups: [a], email_domain: example.com }` | 두 조건 모두 일치해야 합니다 |

412 

413정책과 일치하지 않는 인증된 사용자는 게이트웨이의 기본값을 가져옵니다. 이는 카탈로그의 모든 모델과 관리형 설정이 없음을 의미합니다. 보장된 기본 정책을 원하면 마지막에 `match: {}` 캐치올을 추가합니다.

414 

415<Note>

416 게이트웨이는 자신의 사용자 디렉토리를 유지하지 않습니다. 사용자의 IdP 토큰에서 각 요청을 승인하고 토큰의 `groups` 클레임에서 그룹 멤버십을 읽으며 이에 대해 정책을 평가합니다. 열거할 명단이 없고 사전 생성할 계정이 없으므로 SCIM 엔드포인트가 없습니다. 동기화할 것이 없기 때문입니다.

417 

418 사용자 및 그룹 수명 주기 관리를 진실의 원본(IdP의 기본 SCIM 프로비저닝 또는 전용 ID 거버넌스 플랫폼)에서 실행합니다. 거기서 관리되는 멤버십 및 프로비저닝 해제는 토큰을 통해 게이트웨이에 자동으로 흐릅니다. Claude 계정 자체의 SCIM 프로비저닝을 원하면 이는 [Claude for Enterprise](/ko/admin-setup) 기능입니다.

419 

420 두 가지 전파 시계가 적용됩니다:

421 

422 * **정책 내용**: 정책을 편집하고 재배포하면 연결된 클라이언트가 다음 관리형 설정 폴링 시 1시간 이내에 도달합니다.

423 * **그룹 멤버십**: 사용자의 그룹 멤버십을 변경하면 어떤 정책이 일치하는지 변경됩니다. 이는 다음 세션 재발급 시(다음 자동 새로 고침 의미)에 적용되며 `session.ttl_hours`로 제한됩니다.

424</Note>

425 

426<h4 id="what-goes-in-cli">

427 `cli`에 들어가는 것

428</h4>

429 

430각 `cli` 값은 완전한 Claude Code `managed-settings.json` 문서이며, MDM 또는 `/etc/claude-code/managed-settings.json`을 통해 배포할 동일한 스키마이며, 여기서는 YAML로 표현됩니다. CLI는 관리형 계층에서 전달된 문서를 적용합니다. 사용자 및 프로젝트 설정 위에 있습니다.

431 

432게이트웨이는 부팅 시 각 문서를 CLI의 설정 스키마에 대해 검증하므로 인식되지 않는 최상위 키 또는 인식되지만 잘못된 형식의 값이 있는 키는 모든 위반 키의 이름을 지정하는 오류로 부팅을 실패합니다. 의도적으로 개방된 스키마 부분은 여전히 임의의 값을 허용합니다. 더 새로운 클라이언트가 게이트웨이의 스키마가 인식하지 못하는 항목을 인식할 수 있기 때문입니다. 이러한 개방 키는 `env`, `pluginConfigs` 및 `permissions` 아래에 중첩된 키입니다.

433 

434검증이 게이트웨이의 설치된 버전과 함께 번들된 스키마를 사용하므로 더 새로운 Claude Code 릴리스에서 도입된 최상위 설정 키를 관리형 구성에 넣으려면 먼저 게이트웨이를 업그레이드해야 합니다. 한 클라이언트에서 새 정책을 연기 테스트한 후 롤아웃합니다.

435 

436전체 키 참조는 [Claude Code 설정](/ko/settings#available-settings)에 있습니다. 운영자가 먼저 도달하는 키:

437 

438```yaml theme={null}

439managed:

440 policies:

441 - match: {}

442 cli:

443 # 모델 액세스(/v1/messages에서도 서버 측으로 적용됨)

444 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]

445 

446 # 권한 정책

447 permissions:

448 deny:

449 - "WebFetch"

450 - "Read(./.env)"

451 - "Read(./secrets/**)"

452 disableBypassPermissionsMode: disable # --dangerously-skip-permissions 차단

453 allowManagedPermissionRulesOnly: true # 사용자/프로젝트 권한 규칙 무시

454 

455 # CLI 프로세스에 푸시된 환경. DISABLE_UPDATES는 배경 및 수동 업데이트를 차단합니다.

456 # DISABLE_AUTOUPDATER는 배경 업데이트만 중지합니다.

457 env:

458 DISABLE_UPDATES: "1" # 자신의 배포를 통해 버전 고정

459 

460 # 조직 전체 후크. 후크 명령은 게이트웨이가 아닌 개발자 머신에서 실행되므로

461 # 경로는 정책의 모든 클라이언트 OS에 존재해야 합니다.

462 hooks:

463 PostToolUse:

464 - matcher: "Edit|Write"

465 hooks:

466 - { type: command, command: /usr/local/bin/audit-edit.sh }

467```

468 

469| 키 | 적용 대상 | 효과 |

470| ------------------------------------------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |

471| `availableModels` | 게이트웨이 + CLI | 모델 허용 목록. `/v1/messages`에서도 확인되므로 패치된 클라이언트는 이를 우회할 수 없습니다. |

472| `permissions.allow` / `.deny` | CLI | 도구 및 명령 규칙. [권한](/ko/permissions)을 참조하세요. |

473| `permissions.disableBypassPermissionsMode` | CLI | [`bypassPermissions`](/ko/permission-modes#skip-all-checks-with-bypasspermissions-mode) 모드를 차단하도록 `disable`으로 설정하고 `--dangerously-skip-permissions` 플래그 |

474| `allowManagedPermissionRulesOnly` | CLI | `true`일 때 사용자 및 프로젝트 권한 규칙은 무시됩니다. 이 문서의 규칙만 적용됩니다 |

475| `env` | CLI | CLI 프로세스에 병합된 환경 변수. 텔레메트리, 자동 업데이트 및 모델 이름 재정의에 사용합니다. |

476| `hooks` | CLI | 조직 전체 [후크](/ko/hooks) |

477 

478이러한 설정은 네트워크를 통해 도착하므로 CLI는 각 개발자에게 셸 명령을 실행하거나 트래픽이 가는 위치를 변경할 수 있는 모든 것을 적용하기 전에 일회성 보안 승인 대화를 표시합니다. 대화는 다음을 다룹니다:

479 

480* `hooks`

481* CLI의 기본 제공 안전 목록에 없는 `env` 변수

482* `apiKeyHelper` 및 `statusLine`과 같은 셸 실행 설정

483* 관리형 CLAUDE.md 내용

484 

485안전 목록은 어떤 `env` 변수가 승인 없이 적용되는지 결정합니다:

486 

487* **안전 목록에 있음**: 자동 업데이트 및 모델 이름 변수

488* **안전 목록에 없음**: 프록시 변수, 기본 URL 변수 및 `OTEL_EXPORTER_OTLP_ENDPOINT`

489 

490게이트웨이의 [텔레메트리](#telemetry) 구성은 `OTEL_EXPORTER_OTLP_ENDPOINT`를 푸시하므로 `telemetry.forward_to`를 설정하면 각 대화형 클라이언트에서 대화를 트리거합니다. `-p` 플래그를 사용한 비대화형 실행은 대화를 건너뛰고 승인 없이 설정을 적용합니다. 대화는 조직으로부터 개발자를 보호하지 않고 손상되거나 적대적인 게이트웨이로부터 개발자의 머신을 보호하므로 `-p` 건너뛰기는 의도적입니다.

491 

492개발자가 거부하면 Claude Code는 정책을 적용하지 않고 종료됩니다. 새 후크 또는 비안전 env 변수를 광범위한 정책에 푸시하면 일치하는 모든 개발자의 다음 시작 시 승인 프롬프트가 표시됩니다.

493 

494`cli` 키는 이전 릴리스에서 `settings`로 명명되었습니다. 해당 철자는 여전히 별칭으로 허용되지만 새 배포는 `cli`를 사용해야 합니다.

495 

496<h4 id="precedence-with-other-managed-sources">

497 다른 관리형 소스와의 우선순위

498</h4>

499 

500장치에 로컬 `managed-settings.json` 또는 MDM 전달 정책도 있으면 관리형 소스는 병합되지 않습니다. 가장 높은 우선순위 소스는 모든 정책 설정을 제공하며 다음 순서로 순위가 지정됩니다(가장 높은 우선순위 먼저):

501 

5021. [정책 도우미](/ko/settings#compute-managed-settings-with-a-policy-helper)

5032. 게이트웨이 전달 설정

5043. MDM, Windows의 HKLM 레지스트리 또는 macOS의 plist를 통해

5054. `managed-settings.json` 파일

5065. HKCU 레지스트리(Windows만 해당)

507 

508포함 호스트는 SDK `managedSettings` 옵션을 통해 정책을 제공할 수 있습니다. 기본적으로 무시되며 관리형 소스가 [`parentSettingsBehavior: "merge"`](/ko/settings#available-settings)로 옵트인할 때만 적용되며, 정책을 강화할 수 있지만 완화할 수 없도록 필터링됩니다.

509 

510예외는 모든 관리형 소스가 설정할 때 적용되는 작은 키 집합입니다. 사용자 쓰기 가능 HKCU 계층은 제외됩니다:

511 

512* `sandbox.network.allowManagedDomainsOnly` 및 `sandbox.filesystem.allowManagedReadPathsOnly`: 잠금 시 해당 허용 목록은 소스 전체에서 합집합됩니다.

513* [`allowAllClaudeAiMcps`](/ko/settings#available-settings): claude.ai MCP 서버 허용 목록에 대한 허용 전용 재정의

514* `sandbox.bwrapPath` 및 `sandbox.socatPath`: [샌드박스](/ko/sandboxing) 도우미 바이너리의 파일 시스템 경로

515 

516`allowManagedPermissionRulesOnly` 및 `disableBypassPermissionsMode`는 교차 소스가 아니므로 승리한 소스의 값만 적용됩니다. 설정 페이지의 동일한 규칙은 [설정 우선순위](/ko/settings#settings-precedence)를 참조하세요.

517 

518게이트웨이 정책은 비대화형 `claude -p` 실행 및 Agent SDK에서 생성된 세션을 포함하여 머신의 모든 Claude Code 호출에 적용됩니다. 게이트웨이가 시작 시 도달할 수 없으면 서명된 세션은 정책 없이 실행하지 않고 오류로 종료됩니다.

519 

520<Warning>

521 정책의 `cli` 블록 내의 `mcpServers`는 게이트웨이 부팅 시 거부됩니다. 그룹별 MCP 배포는 사용할 수 없습니다. 각 장치에서 파일 기반 `managed-mcp.json`을 통해 MCP 서버를 배포하거나 개발자가 로컬로 추가하도록 합니다.

522</Warning>

523 

524<h3 id="telemetry">

525 `telemetry`

526</h3>

527 

528CLI는 OpenTelemetry Protocol(OTLP) over HTTP 메트릭, 로그 및 활성화 시 추적을 게이트웨이로 보내며, 게이트웨이는 각 구성된 대상으로 그대로 중계합니다. CLI가 내보내는 메트릭 및 이벤트는 [사용 모니터링](/ko/monitoring-usage)을 참조하세요.

529 

530CLI는 각 내보내기에 게이트웨이 발급 JWT에서 읽은 인증된 사용자의 ID를 스탬프합니다: `user.id`, `user.email` 및 `user.groups` 속성. 개발자별 비용 및 사용 귀속은 개발자 측 구성 없이 작동합니다.

531 

532```yaml theme={null}

533telemetry:

534 forward_to:

535 - url: https://otel-collector.internal.example.com

536 headers:

537 Authorization: ${OTLP_TOKEN}

538 # 신호별 옵트인. 기본값: 메트릭만.

539 metrics: true

540 logs: false

541 traces: false

542 - url: https://api.datadoghq.com/api/v2/otlp

543 headers:

544 DD-API-KEY: ${DD_API_KEY}

545```

546 

547<Warning>

548 각 대상은 `metrics`, `logs` 및 `traces`에 독립적으로 옵트인하며 기본값은 메트릭만입니다. 신호는 민감도가 다릅니다:

549 

550 * **메트릭**: 토큰 수, 요청 수 및 지연 시간과 같은 집계 카운터

551 * **로그 및 추적**: 전체 bash 명령, 도구 입력 및 파일 경로를 전달할 수 있으며 Claude Code가 개발자 머신에서 수행하는 모든 것을 다룹니다.

552 

553 로그 및 추적은 해당 데이터가 보증하는 액세스 제어 및 보유 정책이 있는 대상에서만 활성화합니다.

554</Warning>

555 

556텔레메트리는 CLI에서 기본적으로 꺼져 있습니다. `telemetry.forward_to`를 `listen.public_url`과 함께 구성하면 켜집니다. 게이트웨이는 `/managed/settings`를 통해 모든 연결된 클라이언트에 5개의 환경 변수를 푸시합니다:

557 

558* `CLAUDE_CODE_ENABLE_TELEMETRY=1`

559* `OTEL_METRICS_EXPORTER=otlp`

560* `OTEL_LOGS_EXPORTER=otlp`

561* `OTEL_TRACES_EXPORTER=otlp`

562* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`

563 

564푸시된 엔드포인트는 공개 URL에서 구축되므로 메트릭 및 로그는 개발자 또는 정책의 OTEL 구성이 필요하지 않습니다. 푸시된 구성은 관리형 계층에서 적용되어 개발자가 로컬로 설정하는 `OTEL_*` 변수를 재정의합니다.

565 

566[추적](/ko/monitoring-usage#traces-beta)은 추가로 각 클라이언트에서 `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1`이 필요합니다. 게이트웨이는 해당 변수를 푸시하지 않으므로 관리형 정책의 `env` 블록을 통해 설정합니다. CLI의 안전 목록에 없으므로 정책을 통해 전달하는 것은 푸시된 OTLP 엔드포인트가 이미 트리거하는 동일한 [보안 승인 대화](#managed)로 다룹니다.

567 

568Protobuf 및 JSON OTLP 인코딩 모두 중계되며 모든 OpenTelemetry 호환 백엔드가 대상으로 작동합니다.

569 

570<h3 id="http-tuning">

571 HTTP 조정

572</h3>

573 

5744개의 선택적 최상위 블록 `access_control`, `limits`, `timeouts` 및 `rate_limits`는 HTTP 표면을 조정합니다. 기본값은 대부분의 배포에 적합합니다.

575 

576| 블록 | 키 | 기본값 | 설명 |

577| ---------------- | ---------------------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

578| `access_control` | `allow_cidrs` / `deny_cidrs` | 비어 있음 | 클라이언트 주소별 인바운드 IP 허용/거부, `trusted_proxies` 확인 후. `deny_cidrs`가 먼저 확인됩니다. 일치하는 클라이언트는 `allow_cidrs`도 일치하더라도 거부됩니다. `allow_cidrs`가 비어 있지 않으면 게이트웨이는 기본 거부입니다. `/healthz` 및 `/readyz`는 `allow_cidrs`에서 제외됩니다. |

579| `limits` | `max_request_bytes` | 32 MiB | 최대 인바운드 요청 본문. 크기 초과 요청은 본문이 버퍼링되기 전에 `413`을 가져옵니다. 큰 파일 또는 이미지 요청에 대해 올립니다. |

580| `limits` | `max_request_header_bytes` | 설정 안 함 | 설정하면 크기 초과 헤더는 `431`을 반환합니다 |

581| `limits` | `max_url_length` | 설정 안 함 | 설정하면 과도하게 긴 URL은 `414`를 반환합니다 |

582| `timeouts` | `upstream_ttfb_ms` | 120000 | 업스트림의 응답 헤더(첫 바이트까지의 시간)를 기다리는 최대 시간. 응답 본문은 그 후 벽시계 제한 없이 스트리밍됩니다. 직접 Anthropic 업스트림 경로에 적용됩니다. Bedrock, Agent Platform 및 Foundry는 공급자 SDK의 자체 시간 초과로 제한됩니다. |

583| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | 인증되지 않은 장치 인증 엔드포인트에 대한 IP당 속도 제한. 공유 송신 IP 또는 NAT 뒤의 큰 조직에 대해 올립니다. 이러한 한도는 장치 권한 부여 로그인 흐름에만 적용되며 `/v1/messages` 추론에는 적용되지 않습니다. [사용자 코드 무차별 대입 공격 저항](/ko/claude-apps-gateway-deploy#user-code-brute-force-resistance)을 참조하세요. |

584| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | `/device`에서 `user_code` 제출에 대한 IP당 속도 제한 |

585 

586<h2 id="complete-example">

587 완전한 예제

588</h2>

589 

590이 전체 참조 구성은 모든 핵심 섹션을 다룹니다. [HTTP 조정 블록](#http-tuning)은 기본값을 유지합니다. 복사하고 필요하지 않은 것을 삭제하고 값을 채웁니다. [빠른 시작](/ko/claude-apps-gateway#quickstart)의 구성은 이것의 최소 버전입니다.

591 

592```yaml gateway.yaml theme={null}

593# 실행:

594# claude gateway --config gateway.yaml

595#

596# 운영 로그 상세도는 CLAUDE_GATEWAY_LOG_LEVEL

597# 환경 변수(info | warn | error; 기본 info)로 제어됩니다. 감사 이벤트는

598# 항상 내보내지므로 영향을 주지 않습니다.

599 

600listen:

601 host: 0.0.0.0

602 port: 8080

603 public_url: https://claude-gateway.internal.example.com

604 # TLS 종료 ingress 뒤에서 실행할 때 tls 블록을 생략합니다.

605 # tls:

606 # cert: /certs/gateway.crt

607 # key: /certs/gateway.key

608 # trusted_proxies:

609 # - 10.0.0.0/8

610 

611oidc:

612 issuer: https://example.okta.com

613 client_id: 0oa1example2

614 client_secret: ${OIDC_CLIENT_SECRET}

615 allowed_email_domains:

616 - example.com

617 # Okta org 서버가 발급자인 경우 필수. id_token은

618 # 이메일 및 그룹을 생략할 수 있습니다. 게이트웨이는 /userinfo에서 채웁니다.

619 userinfo_fallback: true

620 # allowed_groups: [claude-code-users]

621 # Okta는 `groups` 범위가 요청되고 앱의 그룹 클레임 필터가

622 # 허용할 때만 그룹을 내보냅니다. 아래의 계약자 정책은

623 # 그룹과 일치하므로 범위가 여기에서 요청됩니다.

624 scopes: [openid, profile, email, offline_access, groups]

625 # extra_auth_params: { access_type: offline, prompt: consent } # Google

626 # groups_claim: groups # Entra 앱 역할: `roles` 사용

627 # email_claim: email

628 

629session:

630 jwt_secret: ${GATEWAY_JWT_SECRET} # openssl rand -base64 32

631 # ttl_hours: 1

632 

633store:

634 postgres_url: ${GATEWAY_POSTGRES_URL}

635 # max_connections: 5

636 

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

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

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

640# admin:

641# write_keys:

642# - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }

643# read_keys:

644# - { id: reporting, key: "${GATEWAY_ADMIN_READ_KEY}" }

645# admin_groups: [platform-finops]

646# blocked_message: request an increase at https://go.example.com/claude-limits

647# # audit_retention_days: 365

648# # spend_retention_months: 13

649# # identity_retention_days: 90

650# # group_limit_mode: min

651 

652# enforcement:

653# fail_closed_on_error: false

654 

655upstreams:

656 - provider: anthropic

657 auth:

658 api_key: ${ANTHROPIC_API_KEY}

659 

660 # - provider: bedrock

661 # region: us-east-1

662 # auth: {}

663 

664 # - provider: vertex

665 # region: us-east5

666 # project_id: example-prod

667 # auth: {}

668 

669 # - provider: foundry

670 # resource: example-foundry

671 # auth: { use_azure_ad: true }

672 

673auto_include_builtin_models: true

674models:

675 - id: claude-opus-4-8

676 label: Claude Opus 4.8

677 upstream_model:

678 anthropic: claude-opus-4-8

679 # bedrock: us.anthropic.claude-opus-4-8

680 # vertex: claude-opus-4-8

681 # foundry: <your-opus-deployment-name>

682 - id: claude-sonnet-4-6

683 label: Claude Sonnet 4.6

684 upstream_model:

685 anthropic: claude-sonnet-4-6

686 - id: claude-haiku-4-5

687 label: Claude Haiku 4.5

688 upstream_model:

689 anthropic: claude-haiku-4-5

690 

691managed:

692 policies:

693 - match: { groups: [contractors] }

694 cli:

695 availableModels: [claude-haiku-4-5]

696 # 기본 선택기 옵션을 계약자가 기본값을 얻지 않도록

697 # availableModels로 제한합니다. 그래서 계약자는 기본값에 400을 얻지 않습니다.

698 enforceAvailableModels: true

699 # allow는 이 도구를 자동 승인합니다. 나머지를 차단하지 않습니다.

700 # 도구를 제한하려면 거부 규칙을 추가합니다.

701 permissions: { allow: [Read, Grep] }

702 - match: {}

703 cli:

704 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]

705 permissions:

706 allow: [Read, Grep, Bash, Edit]

707 deny: ["WebFetch"]

708 env: { HTTP_PROXY: http://proxy.example.com:8080 }

709 

710telemetry:

711 forward_to:

712 - url: https://otel.internal.example.com:4318

713 headers:

714 Authorization: Bearer ${OTEL_TOKEN}

715```

716 

717<h2 id="client-side-managed-settings">

718 클라이언트 측 관리형 설정

719</h2>

720 

721위의 모든 것은 게이트웨이 서버를 구성합니다. 개발자 머신을 지정하는 것은 각 장치에서 Claude Code의 [관리형 설정](/ko/settings#settings-files)을 통해 별도로 구성됩니다. 게이트웨이는 클라이언트가 게이트웨이가 어디에 있는지 알려주는 키를 푸시할 수 없습니다.

722 

723CLI의 경우 OS별 `managed-settings.json`에서 두 키를 모두 설정합니다:

724 

725```json theme={null}

726{

727 "forceLoginMethod": "gateway",

728 "forceLoginGatewayUrl": "https://claude-gateway.internal.example.com"

729}

730```

731 

732일반적으로 MDM 플랫폼을 통해 각 장치에 해당 파일을 배포합니다. 파일 경로는 플랫폼마다 다릅니다:

733 

734| 플랫폼 | 경로 |

735| ----------- | ----------------------------------------------------------------------------------------------------------- |

736| macOS | `/Library/Application Support/ClaudeCode/managed-settings.json` 또는 `com.anthropic.claudecode` 관리형 기본 설정 도메인 |

737| Linux 및 WSL | `/etc/claude-code/managed-settings.json` |

738| Windows | `C:\Program Files\ClaudeCode\managed-settings.json` 또는 HKLM 레지스트리를 통한 그룹 정책 |

739 

740`forceLoginGatewayUrl` 및 `forceLoginMethod`의 `"gateway"` 값은 관리자 제어 관리형 계층에서만 적용됩니다. 개발자가 자신의 `~/.claude/settings.json`에서 설정하는 것은 효과가 없습니다.

741 

742<h2 id="related">

743 관련

744</h2>

745 

746* [Claude 앱 게이트웨이 개요](/ko/claude-apps-gateway): 빠른 시작 및 개발자 연결

747* [배포 가이드](/ko/claude-apps-gateway-deploy): IdP 설정, 컨테이너 이미지, Kubernetes 및 Cloud Run, 운영

748* [지출 한도](/ko/claude-apps-gateway-spend-limits): 개발자별 한도 및 관리자 API

claude-apps-gateway-deploy.md +301 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude 앱 게이트웨이 배포 및 운영

6 

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

8 

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

10 

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

12 

131. [ID 공급자 설정](#identity-provider-setup): OAuth 클라이언트를 등록하고 Okta, Entra, Google에 대한 IdP별 참고사항 확인

142. [게이트웨이 배포](#deployment): 고정된 컨테이너 이미지를 빌드하고 Kubernetes, Cloud Run 또는 자신의 플랫폼에서 실행합니다. 이 섹션은 비용, 우회, 다중 게이트웨이 및 서버리스 결정도 다룹니다

153. [운영 설정](#operations): 로그, 상태 프로브, 중단 동작, 시크릿 로테이션 및 업그레이드. 모니터링 및 런북을 연결할 때 참조할 참고 자료

164. [보안 태세 검토](#security): 데이터가 어디로 흐르는지, 위협 모델 및 규정 준수 답변. 보안 검토를 위한 참고 자료

17 

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

19 

20<Note>

21 **프라이빗 네트워크에 배포하세요.** Claude Code는 주소가 프라이빗인 게이트웨이에만 연결합니다. 이는 보안 가드입니다. 신뢰할 수 있는 게이트웨이는 개발자 머신에서 명령을 실행하는 설정을 푸시할 수 있기 때문입니다. 게이트웨이를 내부 로드 밸런서 또는 VPN 뒤에 배치하고 프라이빗 IP로만 확인되는 호스트명을 지정하세요.

22</Note>

23 

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

25 ID 공급자 설정

26</h2>

27 

28단일 리디렉션 URI `https://<gateway>/oauth/callback`을 사용하여 기밀 OAuth/OpenID Connect(OIDC) 웹 애플리케이션을 ID 공급자에 등록하고, 게이트웨이 액세스 권한이 있어야 하는 사용자 또는 그룹에 할당하세요.

29 

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

31 

32* `/.well-known/openid-configuration`을 프로덕션에서 HTTPS를 통해 제공합니다. 게이트웨이는 [`http://` 발급자](/ko/claude-apps-gateway-config#oidc)를 허용하며, 루프백 발급자는 추가로 `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`이 필요합니다

33* 인증 코드 흐름을 지원합니다. PKCE(Proof Key for Code Exchange)는 기본적으로 활성화되어 있습니다. 이를 지원하지 않는 IdP의 경우 `oidc.use_pkce: false`로 비활성화하세요

34* id\_token에서 `email`을 반환하고 선택적으로 `groups`를 반환하거나, `oidc.userinfo_fallback: true`를 사용하여 userinfo 엔드포인트에서 제공합니다

35 

36프라이빗 PKI의 경우 `oidc.ca_cert_pem`을 설정하세요.

37 

38일부 공급자는 이메일 및 그룹 클레임을 다르게 처리합니다:

39 

40* **Okta**: `https://example.okta.com`의 조직 인증 서버는 `email` 및 `groups`를 생략하는 얇은 id\_token을 반환하므로, 이를 `issuer`로 사용할 때마다 `oidc.userinfo_fallback: true`를 설정하세요. `https://example.okta.com/oauth2/default`와 같은 id\_token에 `email` 및 선택적으로 `groups`를 포함하는 사용자 정의 인증 서버는 이를 직접 내보내며 폴백이 필요하지 않습니다. Okta는 `oidc.scopes`에서 `groups` 범위가 요청되고 앱의 그룹 클레임 필터가 이를 허용할 때만 `groups`를 내보냅니다. `userinfo_fallback`은 IdP가 요청하지 않은 클레임을 채울 수 없습니다.

41* **Microsoft Entra ID**: `issuer` = `https://login.microsoftonline.com/<tenant-id>/v2.0`. Entra는 이름이 아닌 그룹 개체 ID를 내보내므로, `managed.policies.match.groups`에서 GUID를 사용하거나 인간이 읽을 수 있는 이름을 위해 앱 역할을 사용하세요. 테넌트가 `groups` 대신 `roles` 아래에 역할을 내보내는 경우 `oidc.groups_claim: roles`을 설정하세요.

42* **Google Workspace**: `issuer` = `https://accounts.google.com`. Google의 id\_token은 그룹을 전달하지 않습니다. Google을 IdP로 사용하여 그룹 기반 `allowed_groups` 또는 `managed.policies`를 사용하려면 [`oidc.google_groups`](/ko/claude-apps-gateway-config#oidc)를 구성하세요. 이는 도메인 전체 위임이 있는 서비스 계정을 사용하여 Admin SDK Directory API를 통해 각 사용자의 그룹을 조회합니다. 이 없이는 멤버십 게이팅을 위해 `oidc.allowed_email_domains`를 사용하고 정책 할당을 위해 `managed.policies.match.email_domain`을 사용하세요. Google은 또한 표준 `offline_access` 범위를 무시합니다. 새로고침 토큰의 경우 `oidc.scopes: [openid, profile, email]`과 `oidc.extra_auth_params: { access_type: offline, prompt: consent }`를 설정하세요.

43 

44위에서 다루지 않은 ID 공급자에 대한 지원은 [문제 해결](#troubleshooting)을 참조하세요.

45 

46<Warning>

47 새로고침 토큰을 사용하면 게이트웨이가 개발자를 브라우저로 다시 보내지 않고 개발자의 세션을 자동으로 갱신할 수 있습니다. 또한 IdP가 사용자를 비활성화할 때 다음 새로고침이 실패하고 세션이 `ttl_hours` 내에 종료되므로 프로비저닝 해제를 주도합니다. 게이트웨이는 기본적으로 새로고침 토큰을 얻기 위해 `offline_access`를 요청합니다. IdP가 오프라인 액세스에 대한 명시적 동의를 요구하는 경우 OAuth 클라이언트를 구성하여 이를 허용하세요.

48 

49 IdP가 전혀 새로고침 토큰을 발급할 수 없는 경우, 게이트웨이는 여전히 작동하지만 자동 갱신이 없으므로 개발자는 세션이 만료될 때 브라우저 로그인을 다시 실행합니다. 이것이 매시간 발생하지 않도록 하려면 [`session.ttl_hours`](/ko/claude-apps-gateway-config#session)를 `8` 또는 `12`로 올리세요. 트레이드오프는 프로비저닝 해제 지연입니다. 새로고침 토큰이 없으면 비활성화된 사용자는 더 긴 TTL이 경과할 때까지 액세스를 유지합니다.

50</Warning>

51 

52<h2 id="deployment">

53 배포

54</h2>

55 

56게이트웨이는 단일 Linux 바이너리입니다. 복제본이 상태 비저장이고 Postgres가 공유 조정 계층이므로 수평으로 확장됩니다. 환경에서 상태 비저장 서비스를 실행하는 방식대로 실행하세요. 이 섹션의 나머지 부분은 이미지가 필요한 것을 설명하며, Kubernetes 및 Cloud Run에 대한 짧은 참고사항이 있습니다.

57 

58게이트웨이는 업스트림 자격 증명을 보유하고 추론을 위한 단일 송신 지점으로 작동하므로 네트워크 내부에서 실행되도록 설계되었습니다. 개발자와 IdP가 HTTPS를 통해 도달할 수 있는 곳이면 어디든 실행할 수 있습니다. 프로덕션 자격 증명을 보유하는 다른 서비스처럼 취급하세요.

59 

60몇 가지 결정이 실행 위치 이상으로 배포를 형성합니다:

61 

62* **비용**: 게이트웨이에 대한 별도의 라이선스 또는 사용자당 요금이 없습니다. 이는 `claude` 바이너리의 일부입니다. 기존 클라우드 또는 Anthropic 약정을 통해 추론에 대해 비용을 지불하고, 컨테이너 및 텔레메트리 수집기의 컴퓨팅을 지불합니다.

63* **우회**: 게이트웨이는 모델로의 유일한 경로가 이를 통과하도록 강제하지 않습니다. 자신의 자격 증명이 있는 개발자는 여전히 공급자를 직접 호출할 수 있으므로, 해당 경로를 닫는 것은 네트워크 정책 결정입니다. 예를 들어 `api.anthropic.com`으로의 송신을 게이트웨이를 제외하고 차단합니다. 해당 송신을 차단하면 각 개발자의 머신에서 `api.anthropic.com`을 호출하는 [WebFetch 도메인 안전 확인](/ko/data-usage#webfetch-domain-safety-check)도 중단됩니다. 관리형 정책에서 `skipWebFetchPreflight: true`를 설정하여 비활성화하세요.

64* **다중 게이트웨이**: 각 게이트웨이는 자신의 구성을 가진 별도의 배포입니다. CLI는 게이트웨이 호스트명별로 신뢰 지문 및 자격 증명을 저장하므로, 다른 팀이 충돌 없이 다른 게이트웨이에 연결할 수 있습니다. 여러 OIDC 발급자를 제공하려면 별도의 인스턴스를 실행하세요.

65* **서버리스**: Cloud Run이 작동합니다. 콜드 OIDC 검색을 피하려면 `min-instances: 1`을 설정하세요. Lambda 및 Cloud Functions는 작동하지 않습니다. 게이트웨이는 장기 실행 HTTP 서버이기 때문입니다.

66 

67여기의 모든 프로덕션 토폴로지는 일반 HTTP 복제본 앞에 Ingress, Cloud Run의 프론트 엔드 또는 ALB와 같은 L7 프록시를 배치합니다. [`listen.trusted_proxies`](/ko/claude-apps-gateway-config#listen)를 프록시의 소스 범위로 설정하여 게이트웨이가 `X-Forwarded-For`에서 클라이언트 IP를 읽도록 하세요. 게이트웨이는 TCP 피어가 신뢰할 수 있을 때만 헤더를 인정합니다. [Google Cloud 작동 예제](/ko/claude-apps-gateway-on-gcp)는 토폴로지별 구체적인 값을 가지고 있습니다. 신뢰할 수 있는 프록시가 없으면, 모든 요청이 프록시의 IP에서 오는 것으로 나타나므로 IP당 속도 제한이 하나의 공유 버킷으로 축소되고 감사 이벤트에 프록시의 IP가 기록됩니다.

68 

69<h3 id="container-image">

70 컨테이너 이미지

71</h3>

72 

73표준 Claude Code 릴리스의 네이티브 `claude` 바이너리 주위에 자신의 이미지를 빌드하세요:

74 

751. 고정된 릴리스에서 이미지 아키텍처용 Linux 빌드를 다운로드하세요. 다운로드 URL은 [특정 버전 설치](/ko/setup#install-a-specific-version)를 참조하세요.

762. [바이너리 무결성 및 코드 서명](/ko/setup#binary-integrity-and-code-signing)에 설명된 대로 릴리스의 GPG 서명된 `manifest.json`에 대해 확인하세요.

773. 빌드 컨텍스트에 복사하세요.

78 

79빌드가 릴리스 호스트에 도달할 수 없는 경우 릴리스를 내부 레지스트리로 미러링하고 플릿이 실행하는 버전을 고정하세요.

80 

81바이너리 외에도 이미지는 다음이 필요합니다:

82 

83* **glibc 기반 이미지**: glibc 빌드의 유일한 동적 종속성은 glibc 라이브러리입니다. Musl 기반 이미지는 `linux-x64-musl` 또는 `linux-arm64-musl` 빌드와 추가 패키지가 필요합니다. [Alpine Linux 설정](/ko/setup#alpine-linux-and-musl-based-distributions)을 참조하세요.

84* **쓰기 가능한 상태 디렉토리**: 게이트웨이는 모든 사용자로 실행되지만, 최소 이미지에는 쓰기 가능한 홈이 없습니다. `CLAUDE_CONFIG_DIR`을 `/tmp/.claude`와 같은 쓰기 가능한 경로로 설정하세요.

85* **컨테이너 명령**: `claude gateway --config /etc/claude/gateway.yaml`. 구성 파일은 읽기 전용으로 마운트되고 시크릿은 환경 변수로 제공됩니다. 게이트웨이는 `listen.port`에서 수신하며, 기본값은 `8080`입니다.

86 

87<h3 id="kubernetes">

88 Kubernetes

89</h3>

90 

91게이트웨이를 모든 상태 비저장 서비스처럼 배포로 실행하세요:

92 

93* ConfigMap에서 구성을 마운트하고 Secret에서 시크릿을 마운트하세요. YAML에서 `${file:/path/to/secret}` 또는 환경 변수를 통해 시크릿을 참조하세요

94* Ingress에서 TLS를 종료하고 `listen.public_url`을 Ingress 호스트명으로 설정하세요

95* 준비 프로브를 `GET /readyz`로 지정하고 생존 프로브를 `GET /healthz`로 지정하세요

96 

97<Note>

98 **워크로드 ID**

99 

100 정적 키보다 플랫폼의 워크로드 ID를 선호하세요: EKS의 Bedrock용 IRSA, GKE의 Agent Platform용 Workload Identity, AKS의 Foundry용 워크로드 ID. 업스트림 블록에서 `auth: {}`를 설정하거나 Foundry의 경우 `use_azure_ad: true`를 설정하면, 게이트웨이는 해당 공급자의 기본 자격 증명 체인을 통해 포드의 ID를 선택합니다. Bedrock 업스트림을 GKE에서 사용하는 경우와 같은 클라우드 간 페어링의 경우, 업스트림의 `auth` 블록에서 명시적 자격 증명을 설정하세요. [`upstreams` 참조](/ko/claude-apps-gateway-config#upstreams)는 플랫폼별 설정 세부사항을 가지고 있습니다.

101</Note>

102 

103<h3 id="cloud-run">

104 Cloud Run

105</h3>

106 

107서비스를 다음과 같이 구성하세요:

108 

109* `listen.port`를 기본값 `8080`으로 유지하세요. 이는 Cloud Run의 기본 `PORT`와 일치하거나 `port: ${PORT}`를 설정하세요

110* `public_url`을 외부에서 도달 가능한 원본으로 설정하세요. 프로덕션의 경우 이는 일반적으로 내부 로드 밸런서의 호스트명입니다. `/login`이 [공개 주소를 거부](/ko/claude-apps-gateway#prerequisites)하고 `*.run.app` URL이 하나로 확인되므로, Cloud Run URL 단독은 `curl` 또는 브라우저 스모크 테스트에만 작동합니다. 예외는 `*.run.app`이 Private Service Connect를 통해 프라이빗으로 확인되고 Cloud DNS 프라이빗 영역이 있는 네트워크입니다. 해당 토폴로지에서 Cloud Run URL은 유효한 `public_url`입니다. [Google Cloud 작동 예제](/ko/claude-apps-gateway-on-gcp#deploy-the-gateway)는 둘 다 다룹니다.

111* 구성을 시크릿 볼륨으로 마운트하세요

112* 첫 번째 요청에서 콜드 OIDC 검색을 피하려면 `min-instances: 1`을 설정하세요

113 

114<Note>

115 Cloud Run 또는 GKE, Cloud SQL 및 Secret Manager를 다루는 Google Cloud의 완전한 작동 예제는 [Google Cloud에 배포](/ko/claude-apps-gateway-on-gcp)를 참조하세요.

116</Note>

117 

118<h3 id="push-the-gateway-url-to-developer-machines">

119 게이트웨이 URL을 개발자 머신으로 푸시

120</h3>

121 

122게이트웨이가 제공되면, MDM을 통해 또는 OS별 `managed-settings.json`을 직접 작성하여 관리형 설정을 통해 각 개발자의 머신으로 `forceLoginMethod` 및 `forceLoginGatewayUrl`을 푸시하세요. 이 없이는 `/login`이 게이트웨이 옵션이 없는 표준 계정 선택기를 표시합니다. 파일 경로는 [클라이언트 측 관리형 설정](/ko/claude-apps-gateway-config#client-side-managed-settings)을 참조하세요.

123 

124<h2 id="operations">

125 운영

126</h2>

127 

128게이트웨이가 트래픽을 제공하면, 일상적인 운영은 로그를 읽고, 상태를 프로브하며, 일정에 따라 시크릿을 로테이션하는 것입니다. 아래 섹션은 각각을 다루고, Postgres가 보유한 것과 업그레이드 및 롤백이 어떻게 동작하는지를 다룹니다.

129 

130<h3 id="logs">

131 로그

132</h3>

133 

134게이트웨이는 stderr에 두 개의 스트림을 작성하며, 둘 다 JSON 친화적입니다:

135 

136* **감사 이벤트**: 보안 관련 이벤트당 한 줄의 JSON. stderr를 로그 수집기로 파이프하세요. 내보낸 이벤트는 `config.load`, `session.mint`, `session.refresh`, `device.authorize`, `device.verify`, `auth.denied`, `access.denied`, `inference`, `managed.serve`, `spend.blocked` 및 `admin.denied`를 포함합니다. 필드는 이벤트에 따라 다릅니다:

137 * 성공적인 mint 및 refresh 이벤트는 `sub`, `email`, `client_ip` 및 결과를 전달합니다

138 * 거부 이벤트는 이유, 경로 및 클라이언트 IP를 전달합니다. 거부 시 ID가 없기 때문입니다

139 * `inference`는 어느 업스트림이 요청을 제공했는지 및 응답 상태를 기록합니다

140 * `admin.denied`는 거부된 관리자 API 인증 시도를 이유(`invalid_key` 또는 `no_credentials`), 클라이언트 IP, 메서드 및 경로와 함께 기록하며, 제시된 키 자료는 없습니다

141* **운영 로그**: 부팅, 경고 및 업스트림 오류에 대한 인간이 읽을 수 있는 `[gateway]` 접두사 줄. `CLAUDE_GATEWAY_LOG_LEVEL` 환경 변수는 상세도를 제어하고 `info`, `warn` 또는 `error`를 허용하며, 기본값은 `info`입니다. 감사 이벤트는 항상 내보내지므로 이는 감사 이벤트에 영향을 주지 않습니다.

142 

143<h3 id="health">

144 상태

145</h3>

146 

147게이트웨이는 `GET /healthz`를 생존 프로브로 제공하고 `GET /readyz`를 준비 프로브로 제공합니다. `/readyz`는 저장소에 도달 가능한지 확인합니다. 둘 다 `access_control.allow_cidrs`에서 제외되므로 프로브는 잠긴 리스너에서 작동합니다.

148 

149`/.well-known/oauth-authorization-server`의 OAuth 검색 문서는 구성 로드, OIDC 검색, 업스트림 클라이언트 구성 및 Postgres 마이그레이션이 모두 성공한 후에만 `200`을 반환하므로, 엔드 투 엔드 부팅 확인으로도 작동합니다.

150 

151실행 중인 게이트웨이는 또한 `<public_url>/protocol`에서 실행 중인 버전과 일치하는 수락하는 경로 및 요청 형태의 설명을 제공합니다. 내용은 릴리스 간에 안정적이지 않습니다.

152 

153<h3 id="outage-behavior">

154 중단 동작

155</h3>

156 

157Postgres가 다운되면, 게이트웨이 자체는 로그인한 개발자를 계속 제공하고 새로운 로그인은 실패합니다. 개발자가 실제로 계속 작동하는지는 오케스트레이터가 준비를 처리하는 방식에 따라 다릅니다:

158 

159* **기존 세션**: 베어러 토큰은 JWT 시크릿으로 로컬에서 검증되고, 세션 새로고침은 저장소를 건드리지 않으며, 게이트웨이 프로세스는 여전히 추론을 제공할 수 있습니다

160* **새로운 로그인**: Postgres가 복구될 때까지 실패합니다. 장치 흐름 및 속도 제한 카운터가 Postgres에 있기 때문입니다

161* **[지출 제한 적용](/ko/claude-apps-gateway-spend-limits#postgres-availability)**: 중단 중에 기본적으로 열린 상태로 실패하므로 추론이 계속 흐릅니다. 차단하는 것을 선호하면 닫힌 상태로 뒤집으세요

162* **준비**: `/readyz`는 중단 중에 준비되지 않음을 보고하므로, 준비에 대한 트래픽을 게이트하는 오케스트레이터는 Postgres가 복구될 때까지 모든 복제본을 한 번에 로테이션에서 제거합니다. 해당 토폴로지에서 게이트웨이가 여전히 제공할 수 있는 추론을 포함한 모든 트래픽은 로드 밸런서에서 실패합니다. `/healthz`의 생존 프로브는 계속 통과하므로 복제본은 다시 시작되지 않습니다. 로그인한 개발자가 저장소 중단을 통해 계속 작동하도록 하려면 준비 프로브를 `/healthz`로 지정하세요. 비용은 새로운 로그인이 여전히 준비됨을 보고하는 복제본에 대해 실패한다는 것입니다.

163 

164IdP가 다운되면, 기존 세션은 `ttl_hours`까지 작동하고, 새로운 로그인 및 새로고침은 실패합니다. IdP가 자주 유지보수 창을 가지면 더 긴 `ttl_hours`를 설정하세요.

165 

166<h3 id="jwt-secret-rotation">

167 JWT 시크릿 로테이션

168</h3>

169 

170기존 세션이 유효하게 유지되도록 3단계로 서명 시크릿을 로테이션하세요:

171 

1721. 새 시크릿을 생성하세요. `session.jwt_secret` 배열에 앞에 추가하세요.

1732. 배포를 롤링하세요. 새 토큰은 새 시크릿으로 서명합니다. 이전 토큰은 여전히 검증합니다.

1743. `ttl_hours`와 여유 후에 이전 시크릿을 제거하고 다시 롤링하세요.

175 

176로테이션은 또한 만료 전에 세션을 강제로 제거하는 유일한 방법입니다: 베어러 토큰은 JWT 시크릿에 대해 로컬에서 검증되므로 세션별 해제가 없습니다. 배열에 이전 시크릿을 유지하지 않고 시크릿을 완전히 교체하면 한 번에 모든 미해결 세션이 무효화됩니다. 개별 오프보딩의 경우 IdP에서 사용자를 프로비저닝 해제하세요. 세션은 `ttl_hours` 내에 종료됩니다.

177 

178<h3 id="postgres">

179 Postgres

180</h3>

181 

182게이트웨이는 부팅 시 마이그레이션으로 생성되는 5개의 테이블을 보유합니다:

183 

184| 테이블 | 내용 | 보존 |

185| ------------------ | --------------------------------------------- | ------------------------------------------------- |

186| `kv` | 장치 부여(10분 TTL) 및 속도 제한 카운터 | 행별 TTL |

187| `spend` | 주요 기간별 누적 지출 카운터(센트) | `admin.spend_retention_months`, 기본값 13 |

188| `spend_limits` | 구성된 지출 상한 | API를 통해 삭제될 때까지 |

189| `admin_audit` | 관리자 API 변경 추적 | `admin.audit_retention_days`, 기본값 365 |

190| `principal_emails` | 각 주요의 마지막 확인 이메일, 표시 이름 및 IdP 그룹. PII를 포함합니다. | `admin.identity_retention_days` 마지막 활동 이후, 기본값 90 |

191 

19230초 루프는 TTL을 지난 `kv` 행을 만료하고, 시간별 스윕은 지출 테이블의 보존 창을 적용하므로 아무것도 무한정 증가하지 않습니다. [지출 제한](/ko/claude-apps-gateway-spend-limits)이 구성되지 않으면 `kv`만 작성됩니다. 보안 정책이 애플리케이션 역할의 DDL을 금지하면 이러한 테이블과 `_migrations`을 관리자 역할로 미리 생성하고 앱 역할에 각각에 대해 `SELECT, INSERT, UPDATE, DELETE`를 부여하세요.

193 

194지출 제한이 사용 중이면, 손실된 데이터베이스는 개발자 재로그인뿐만 아니라 손실된 지출 추적 및 상한을 의미하므로 정기적인 백업을 실행하세요. 보존을 기다리지 않고 떠난 개발자 하나를 즉시 지우려면 `DELETE FROM principal_emails WHERE principal = '<sub>'`을 직접 실행하세요. 이는 이메일, 이름 및 그룹을 보유하는 유일한 테이블을 제거합니다. `spend` 및 `admin_audit` 행은 의사명 OIDC `sub`만 참조합니다.

195 

196<h3 id="upgrades">

197 업그레이드

198</h3>

199 

200복제본은 상태 비저장이므로 롤링 재시작은 언제든지 안전합니다. 게이트웨이는 부팅 시 스키마 마이그레이션을 실행하므로, 새 바이너리를 배포하면 데이터베이스가 자동으로 마이그레이션됩니다. 데이터베이스 역할이 DDL을 실행할 수 없으면 스키마를 미리 생성하세요. 현재 버전으로 시드된 `_migrations` 테이블을 포함합니다. 그렇지 않으면 부팅이 `CREATE TABLE`을 시도하면서 실패합니다.

201 

202마이그레이션은 추가 전용이므로 더 적은 마이그레이션을 아는 이전 바이너리로 롤백하는 것은 안전합니다. 추가 행을 무시합니다. 롤백은 또한 YAML을 이전 바이너리의 스키마에 대해 재검증하므로, 새 릴리스에서 도입한 키를 채택한 구성은 이전 바이너리에서 부팅이 실패합니다. 롤백 전에 새 키를 제거하세요.

203 

204게이트웨이의 버전을 자신의 이미지에 고정하므로, 새 Claude Code 릴리스의 수정사항(보안 수정사항 포함)은 핀을 업데이트하고 재배포할 때만 배포에 도달합니다. 게이트웨이를 프로덕션 자격 증명을 보유하는 다른 서비스에 사용하는 것과 동일한 패칭 주기에 포함하세요.

205 

206<h2 id="security">

207 보안

208</h2>

209 

210이 섹션은 보안 검토가 묻는 질문에 답합니다: 어떤 데이터가 게이트웨이를 통해 흐르고 어디로 가는지, 설계가 방어하는 공격, 규정 준수 질문지에 속하는 답변.

211 

212<h3 id="data-flow">

213 데이터 흐름

214</h3>

215 

216| 데이터 | 경로 | 게이트웨이에서 Anthropic으로 전송됨 |

217| ---------------------------------------------------------------------------- | ----------------------------------------------- | ----------------------------- |

218| 추론(프롬프트, 완료) | CLI → 게이트웨이 → 업스트림 | Anthropic API가 구성된 업스트림인 경우에만 |

219| 텔레메트리(OTLP 메트릭, 플러스 [옵트인 로그 및 추적](/ko/claude-apps-gateway-config#telemetry)) | CLI → 게이트웨이 → 수집기 | 절대 아님 |

220| ID(이메일, 그룹, sub) | IdP → 게이트웨이 → JWT → CLI; CLI는 OTLP 내보내기에 스탬프합니다 | 절대 아님 |

221| 관리형 설정 | 게이트웨이 YAML → CLI | 절대 아님 |

222| 감사 로그 | 게이트웨이 stderr → 수집기 | 절대 아님 |

223 

224<h3 id="threat-model-summary">

225 위협 모델 요약

226</h3>

227 

228게이트웨이는 네트워크 경계 내부에 있지만, 개별 개발자 노트북은 신뢰할 수 있는 것으로 취급되지 않습니다. 설계는 3가지 방식으로 이를 설명합니다:

229 

230* 개발자는 원시 업스트림 키 대신 단기 JWT를 보유합니다. CLI-게이트웨이 레그는 RFC 8628 장치 부여를 사용하고, 게이트웨이의 IdP와의 인증 코드 교환은 기본 구성에서 PKCE를 실행하므로, 가로챈 IdP 인증 코드는 쓸모가 없습니다.

231* 장치 검증 페이지는 동일 출처 POST 및 RFC 8628 §5.1당 IP당 속도 제한을 적용합니다. [사용자 코드 무차별 대입 저항](#user-code-brute-force-resistance)을 참조하세요.

232* 아웃바운드 요청은 DNS를 확인하고, 링크 로컬 및 클라우드 메타데이터 주소와 기본적으로 루프백을 차단하며, 연결을 확인된 IP에 고정하는 서버 측 요청 위조(SSRF) 가드를 통과합니다. 따라서 IdP 및 OTLP 대상과 같은 운영자 영향 URL은 클라우드 메타데이터 엔드포인트로 리디렉션될 수 없습니다. RFC 1918 프라이빗 범위는 의도적으로 허용됩니다. IdP 및 OTLP 수집기가 일반적으로 프라이빗 IP에 있기 때문입니다. 루프백 IdP 또는 수집기에 대한 로컬 개발의 경우 게이트웨이의 환경에서 `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`을 설정하세요. 프로덕션에서는 설정하지 마세요.

233 

234자신의 송신 제어를 추가하면, 게이트웨이는 워크로드 ID와 같은 인스턴스 메타데이터 자격 증명을 사용할 때마다 메타데이터 서버에 도달해야 합니다.

235 

236두 가지 위협은 범위를 벗어났습니다. 이는 보안할 인프라입니다:

237 

238* **손상된 게이트웨이 호스트**: 호스트는 업스트림 자격 증명을 보유하고 [관리형 설정](/ko/claude-apps-gateway-config#managed)을 모든 연결된 개발자에게 배포하므로, 게이트웨이 구성에 대한 제어는 MDM에 대한 제어와 비교할 수 있습니다. CLI의 일회성 승인 대화는 셸 가능 설정의 자동 변경을 제한하지만 호스트 보안을 대체하지 않습니다.

239* **악의적인 OIDC 공급자**: 공급자는 게이트웨이가 신뢰하는 id\_token에 서명하므로 모든 ID를 주장할 수 있습니다. IdP 검증 및 보안은 귀사의 책임입니다.

240 

241<h3 id="user-code-brute-force-resistance">

242 사용자 코드 무차별 대입 저항

243</h3>

244 

245개발자가 `/device` 검증 페이지에 입력하는 `user_code`는 20자 알파벳에서 그려진 8자이며, 20⁸ 또는 약 2.56×10¹⁰ 조합을 산출하고 10분 후 만료됩니다.

246 

247게이트웨이는 [`rate_limits`](/ko/claude-apps-gateway-config#http-tuning)를 통해 구성 가능한 장치 부여 엔드포인트에 IP당 속도 제한을 적용합니다. 많은 개발자가 단일 공유 회사 NAT 주소에서 로그인하면 제한을 올리세요. 제한은 로그인 흐름에만 적용되며 추론에는 적용되지 않습니다.

248 

249<h3 id="compliance-posture">

250 규정 준수 태세

251</h3>

252 

253* **데이터 거주지**: 게이트웨이의 자체 데이터 평면은 Anthropic API가 구성된 업스트림인 경우를 제외하고 Anthropic에 아무것도 보내지 않습니다. 그 경우 기존 데이터 처리 계약이 추론 경로에 적용됩니다. 텔레메트리, 감사, ID 및 설정은 구성한 대상으로만 이동합니다.

254* **호스트 프로세스 트래픽**: 호스트 프로세스는 Claude Code CLI이며, 시작 분석 및 업데이트 확인을 Anthropic으로 보낼 수 있습니다. 엄격한 송신 배포의 경우 게이트웨이의 컨테이너 환경에서 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1`을 설정하세요.

255* **클라이언트 분석**: CLI는 게이트웨이에 로그인하는 동안 자신의 사용 분석을 비활성화하고, 오류 보고는 타사 API 표면에서 기본적으로 꺼져 있습니다.

256* **클라이언트 머신**: 개발자의 CLI는 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` 및 `skipWebFetchPreflight: true`가 설정되지 않으면 여전히 WebFetch 호스트명 확인 및 버전 확인을 Anthropic으로 보냅니다. [데이터 사용](/ko/data-usage)을 참조하세요.

257* **설문 조사 평가**: 게이트웨이 자격 증명은 Anthropic 바운드 평가 싱크를 비활성화하므로 평가는 Anthropic으로 전송되지 않습니다.

258* **트랜스크립트 공유**: 설문 조사의 트랜스크립트 공유 프롬프트에서 예를 선택하면 Anthropic으로 업로드하는 대신 `~/.claude/feedback-bundles/` 아래의 로컬 파일을 작성합니다.

259* **클라이언트 업데이트**: 업데이트 확인은 게이트웨이 트래픽과 별개입니다. 자신의 배포를 통해 버전을 고정하고 노트북이 릴리스를 가져오면 안 되면 `DISABLE_UPDATES`를 설정하세요. `DISABLE_AUTOUPDATER`는 `claude update`가 여전히 작동하는 동안 백그라운드 업데이트만 중지합니다.

260* **TLS**: 프로덕션에서 `public_url`을 HTTPS를 통해 제공하세요. 게이트웨이의 자체 리스너를 통해 `listen.tls`를 사용하거나 `listen.public_url`이 설정된 일반 HTTP 복제본 앞의 TLS 종료 ingress에서. 게이트웨이는 일반 HTTP를 거부하지 않습니다. IdP는 프로덕션에서 HTTPS를 제공해야 하고, Postgres는 `?sslmode=require`를 지원합니다. ingress에서 `Strict-Transport-Security`를 설정하세요.

261* **취약점 공개**: [보안 문제 보고](/ko/security#reporting-security-issues)를 따르세요

262 

263<h2 id="troubleshooting">

264 문제 해결

265</h2>

266 

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

268 

269* **게이트웨이 문제**: 관련 창의 게이트웨이 stderr, 시크릿이 수정된 `gateway.yaml`, 게이트웨이 버전(랜딩 페이지 `/`에 표시되고 `/managed/settings`의 `x-cc-gateway-version` 응답 헤더에 표시됨), 최근에 변경된 것

270* **로그인 문제**: 개발자는 `claude --debug-file ./claude-debug.txt`를 실행하고, 재현하며, 해당 파일과 동일한 창의 게이트웨이 감사 로그를 보냅니다

271* **추론 문제**: 요청된 모델, 구성된 업스트림, 요청의 게이트웨이 감사 로그(어느 업스트림이 제공했는지 및 응답 상태를 기록함)

272 

273| 증상 | 원인 | 수정 |

274| ------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

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

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

277| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | 게이트웨이 호스트명이 적어도 하나의 공개 IP 주소로 확인됩니다. Claude Code는 각 확인된 주소를 확인하고 모든 주소가 프라이빗이어야 합니다. 일반적인 원인은 한 패밀리가 공개 주소로 확인되는 이중 스택 이름입니다. AWS 내부 이중 스택 로드 밸런서를 포함하여 공개 범위 AAAA 주소를 반환합니다 | 게이트웨이 이름이 개발자 머신에서 프라이빗 주소로만 확인되도록 하세요. 이중 스택 이름의 경우 공개 범위 레코드를 삭제하거나 별도의 내부 전용 DNS 이름을 제공하세요. [프라이빗 네트워크 전제조건](/ko/claude-apps-gateway#prerequisites)을 참조하세요. |

278| CLI `/login`: `Gateway login requires a direct connection and does not support connecting through an HTTP proxy` | `HTTPS_PROXY` 또는 `HTTP_PROXY`가 게이트웨이 호스트에 적용되고 프록시의 호스트명이 공개 주소로 확인됩니다. 호스트가 프라이빗 주소로만 확인되는 프록시는 허용되며 이 오류를 트리거하지 않습니다 | 개발자의 머신에서 `NO_PROXY`에 게이트웨이 호스트를 추가하여 연결이 직접이거나 호스트명이 프라이빗 주소로 확인되는 프록시를 사용하세요 |

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

280| 부팅이 `store.postgres_url`을 명명하는 구성 검증 오류로 종료됩니다 | Postgres가 구성되지 않음. 게이트웨이는 Postgres가 필요합니다 | `store.postgres_url`을 설정하세요. 로컬 개발의 경우 일회용 컨테이너를 사용하세요: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |

281| 부팅 종료: `requires the native binary` | Node 대신 네이티브 바이너리에서 실행 중입니다 | [독립 실행형 설치 방법](/ko/setup) 중 하나로 Claude Code를 설치하세요 |

282| 부팅이 `config.load` 후 OIDC 검색 오류로 종료됩니다 | `oidc.issuer`에 도달할 수 없거나 TLS 체인을 신뢰하지 않습니다 | 발급자가 포드에서 도달 가능하고 `/.well-known/openid-configuration`을 제공하는지 확인하세요. 프라이빗 PKI의 경우 `ca_cert_pem`을 설정하세요. |

283| 부팅이 Postgres 권한 오류로 종료됩니다 | 앱 역할에 `CREATE TABLE` 권한이 없습니다 | 관리자 역할로 스키마를 미리 생성하고 앱 역할에 DML을 부여하거나, 새 마이그레이션을 적용하는 부팅을 위해 DDL을 임시로 부여하세요 |

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

285| 로그: `token exchange failed: 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 조직 인증 서버), `oidc.userinfo_fallback: true`를 설정하세요. |

286| 모든 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 컨테이너 자격 증명 엔드포인트에서 자격 증명을 읽고 변경을 완전히 피하거나, 노출을 제한하기 위해 전용 게이트웨이 인스턴스에 변경을 적용하세요. |

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

288| `oidc.scopes` 설정 후 세션이 자동으로 갱신되지 않습니다 | `offline_access`가 재정의에서 삭제되었습니다 | IdP가 지원하면 `offline_access`를 다시 추가하세요. 새로고침 토큰이 없으면 개발자는 매 `session.ttl_hours`마다 브라우저 로그인을 다시 실행합니다. |

289| 브라우저가 "This request came from another site and was blocked" 표시 | CSRF 보호로 차단된 교차 사이트 양식 POST. 포함되거나 프록시된 페이지의 경우 예상됩니다 | 검증 링크를 직접 열어주세요 |

290| Chrome이 "Refused to send form data … violates … Content Security Policy directive: form-action"으로 승인 버튼을 차단하지만 동일한 페이지가 Safari 또는 Firefox에서 작동합니다 | Chrome은 전체 리디렉션 체인에 대해 `form-action`을 적용합니다. IdP가 허용 목록에 없는 두 번째 호스트로 계속 리디렉션합니다. | 리디렉션 체인의 각 추가 원본을 `oidc.form_action_origins`에 추가하세요. 승인 페이지에서 Chrome DevTools → 콘솔을 열어 어느 원본이 차단되었는지 확인하세요. |

291| 로그인이 IdP에서 완료되지만 콜백이 실패합니다. Chrome에서 CSP 오류 또는 Safari에서 "this sign-in link has expired" | IdP가 `response_mode=form_post`를 통해 코드를 반환했으며, 이는 POST를 통해 `/oauth/callback`으로 교차 원본을 자동 제출합니다. Chrome은 엄격한 CSP에서 이를 차단합니다. Safari는 제출을 허용하지만 콜백은 쿼리 문자열만 읽습니다. | IdP가 `response_mode=query`를 준수하는지 확인하세요. 게이트웨이가 명시적으로 요청하므로 콜백은 일반 리디렉션입니다 |

292| 로그인이 로컬에서 작동하지만 ALB 뒤에서 실패합니다 | `public_url`이 설정되지 않아 IdP가 내부 `http://` 원본을 `redirect_uri`로 받습니다 | `listen.public_url`을 외부 `https://` 원본으로 설정하세요 |

293| 개발자가 신뢰 프롬프트를 반복적으로 봅니다 | TLS 인증서가 복제본별 또는 요청별로 회전합니다 | ingress에서 안정적인 인증서를 사용하거나 TLS를 한 번 종료하고 내부적으로 일반 HTTP를 통해 복제본을 실행하세요 |

294| CLI `/login`: "Could not verify the gateway's TLS certificate" 또는 `SELF_SIGNED_CERT_IN_CHAIN` | 게이트웨이의 TLS 체인이 CLI 호스트의 신뢰 저장소에 없는 프라이빗 CA로 서명됩니다 | Claude Code는 기본적으로 네이티브 바이너리 및 Node 22.15 이상에서 OS 신뢰 저장소를 읽습니다. [`CLAUDE_CODE_CERT_STORE`](/ko/network-config#ca-certificate-store)는 이 동작을 제어합니다. CA가 OS 신뢰 저장소에 설치되면 개발자가 현재 런타임에 있는지 확인하세요. 그렇지 않으면 시작 전에 `NODE_EXTRA_CA_CERTS`를 CA 인증서 PEM으로 설정하세요. 첫 연결 지문 프롬프트는 여전히 적용됩니다. |

295 

296<h2 id="related">

297 관련

298</h2>

299 

300* [Claude 앱 게이트웨이 개요](/ko/claude-apps-gateway): 빠른 시작 및 개발자 연결

301* [구성 참조](/ko/claude-apps-gateway-config): 모든 `gateway.yaml` 옵션

claude-apps-gateway-on-gcp.md +330 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Google Cloud에 Claude 앱 게이트웨이 배포

6 

7> Google Cloud에서 Claude 앱 게이트웨이를 실행하는 실제 예제: Cloud Run 또는 GKE, Cloud SQL for PostgreSQL, Secret Manager, 그리고 Agent Platform에 대한 서비스 계정 인증.

8 

9<Note>

10 이 페이지는 Google Cloud에서 Claude 앱 게이트웨이를 실행하는 한 가지 방법을 안내합니다. 이 구성은 지원되는 프로덕션 배포가 아닌 고객 관리 인프라에 대한 작동 예제입니다. 이를 사용하여 자신의 환경에 맞게 조정하기 전에 각 부분이 어떻게 함께 작동하는지 확인하세요. 플랫폼 독립적인 요구 사항은 [배포 가이드](/ko/claude-apps-gateway-deploy)를 참조하세요.

11</Note>

12 

13이 예제는 Google Cloud의 Agent Platform을 모델 업스트림으로 사용하여 Google Cloud에 Claude 앱 게이트웨이를 프로비저닝합니다. 컴퓨팅을 위해 Cloud Run 또는 GKE를 사용합니다. Google Workspace는 예제 ID 공급자(IdP)이지만, OpenID Connect(OIDC) 호환 IdP는 모두 작동합니다. `oidc` 블록만 변경됩니다. IdP별 세부 사항은 [ID 공급자 설정](/ko/claude-apps-gateway-deploy#identity-provider-setup)을 참조하세요.

14 

15<h2 id="what-you’ll-build">

16 구축할 내용

17</h2>

18 

19<Frame>

20 <img src="https://mintcdn.com/claude-code/-uq-4JE0W_JO5Er5/images/claude-gateway-gcp-architecture.svg?fit=max&auto=format&n=-uq-4JE0W_JO5Er5&q=85&s=cb705151c69128ac0da235852d5600ab" alt="Google Cloud의 Claude 앱 게이트웨이 다이어그램: Claude Code 클라이언트는 HTTPS를 통해 게이트웨이(Cloud Run 또는 GKE)에 연결되며, 이는 세션 상태를 위한 프라이빗 IP Cloud SQL 데이터베이스와 함께 VPC 내부에서 실행됩니다. 게이트웨이는 OIDC를 통해 Google Workspace에 대해 사용자에게 로그인하도록 하고, Secret Manager에서 구성 및 비밀을 읽고, 모델 요청을 Agent Platform으로 전달하며, 배포 시 Artifact Registry에서 이미지를 가져옵니다." width="760" height="400" data-path="images/claude-gateway-gcp-architecture.svg" />

21</Frame>

22 

23참조 구성은 다음을 프로비저닝합니다:

24 

25* 게이트웨이 컨테이너를 실행하는 **Cloud Run** 서비스 또는 **GKE** Deployment

26* 게이트웨이 이미지를 위한 **Artifact Registry** 저장소

27* 게이트웨이의 [저장소](/ko/claude-apps-gateway-config#store)를 위한 **Cloud SQL for PostgreSQL** 인스턴스(프라이빗 IP만)

28* `gateway.yaml`, JWT 서명 키, OIDC 클라이언트 비밀, Postgres URL에 대한 **Secret Manager** 비밀

29* `roles/aiplatform.user`를 가진 **서비스 계정**(Cloud Run에 직접 연결되거나 GKE에서 Workload Identity를 통해 바인딩됨)

30* Cloud Run의 **내부 Application Load Balancer** 또는 GKE의 `gce-internal` 클래스 내부 **GKE Ingress**(HTTPS용)

31 

32<h2 id="prerequisites">

33 전제 조건

34</h2>

35 

36* 청구가 활성화된 GCP 프로젝트 및 위의 리소스를 생성할 권한

37* `gcloud auth login`으로 인증된 `gcloud` CLI 및 로컬에 설치된 Docker

38* GKE 트랙의 경우: `kubectl` 및 아래 연습에서 생성된 VPC의 GKE 클러스터

39* Model Garden에서 필요한 Claude 모델에 대한 액세스 및 이를 게시하는 지역

40* 리다이렉트 URI `https://<gateway-host>/oauth/callback`를 가진 Google Workspace OAuth 2.0 웹 애플리케이션 클라이언트. [ID 공급자 설정](/ko/claude-apps-gateway-deploy#identity-provider-setup)을 참조하세요.

41* 게이트웨이를 위한 TLS 호스트명(일반적으로 로드 밸런서를 가리키는 내부 DNS 이름)

42 

43프로젝트와 지역을 한 번 설정합니다:

44 

45```bash theme={null}

46export PROJECT_ID=<your-project>

47export REGION=us-east5 # a region where the Claude models you need are published in Model Garden

48gcloud config set project "$PROJECT_ID"

49```

50 

51<h2 id="deploy-the-gateway">

52 게이트웨이 배포

53</h2>

54 

55아래 단계는 `gcloud` 명령으로 전체 배포를 프로비저닝합니다.

56 

57<Steps>

58 <Step title="API 활성화">

59 연습에서 사용하는 서비스 API를 활성화합니다:

60 

61 ```bash theme={null}

62 gcloud services enable \

63 aiplatform.googleapis.com \

64 artifactregistry.googleapis.com \

65 sqladmin.googleapis.com \

66 secretmanager.googleapis.com \

67 iamcredentials.googleapis.com \

68 iam.googleapis.com \

69 compute.googleapis.com \

70 servicenetworking.googleapis.com \

71 run.googleapis.com \

72 container.googleapis.com

73 ```

74 

75 필요한 API는 배포 경로에 따라 다릅니다:

76 

77 * `compute` 및 `servicenetworking`: 프라이빗 IP Cloud SQL 경로에 필요

78 * `run`: Cloud Run만

79 * `container`: GKE만

80 </Step>

81 

82 <Step title="서비스 계정 생성 및 IAM 권한 부여">

83 게이트웨이는 Agent Platform을 호출할 권한이 있는 전용 서비스 계정으로 실행됩니다. VPC를 통해 Cloud SQL에 도달하는 암호 사용자이므로 Cloud SQL IAM 역할이 필요하지 않습니다:

84 

85 ```bash theme={null}

86 gcloud iam service-accounts create claude-gateway --display-name="Claude apps gateway"

87 SA="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com"

88 

89 gcloud projects add-iam-policy-binding "$PROJECT_ID" \

90 --member="serviceAccount:${SA}" --role="roles/aiplatform.user" --condition=None

91 ```

92 

93 그런 다음 Model Garden에서 프로젝트에 대해 Claude 모델을 활성화합니다. 모델은 특정 지역에 게시되므로 각 모델 카드를 확인하세요.

94 </Step>

95 

96 <Step title="이미지를 Artifact Registry에 빌드 및 푸시">

97 [컨테이너 이미지 요구 사항](/ko/claude-apps-gateway-deploy#container-image)에 따라 `linux-x64` glibc 바이너리를 사용하여 이미지를 빌드하고 푸시합니다:

98 

99 ```bash theme={null}

100 gcloud artifacts repositories create claude-gateway \

101 --repository-format=docker --location="$REGION"

102 gcloud auth configure-docker "${REGION}-docker.pkg.dev" --quiet

103 

104 # Cloud Run requires linux/amd64. --provenance=false avoids a buildx OCI

105 # image index that Cloud Run rejects.

106 docker build --platform=linux/amd64 --provenance=false \

107 -t "${REGION}-docker.pkg.dev/${PROJECT_ID}/claude-gateway/gateway:<version>" .

108 docker push "${REGION}-docker.pkg.dev/${PROJECT_ID}/claude-gateway/gateway:<version>"

109 ```

110 </Step>

111 

112 <Step title="Cloud SQL for PostgreSQL 프로비저닝">

113 Private Services Access를 통해 VPC에 인스턴스를 생성하여 공개 IP가 없도록 합니다. 이는 `constraints/sql.restrictPublicIp`가 적용되는 프로젝트도 만족합니다:

114 

115 ```bash theme={null}

116 VPC=cc-gateway-vpc

117 gcloud compute networks create "$VPC" --subnet-mode=custom

118 gcloud compute networks subnets create cc-gateway-subnet \

119 --network="$VPC" --region="$REGION" --range=10.0.0.0/24

120 

121 # Private Services Access: one-time per VPC

122 gcloud compute addresses create "google-managed-services-${VPC}" \

123 --global --purpose=VPC_PEERING --prefix-length=16 --network="$VPC"

124 gcloud services vpc-peerings connect \

125 --service=servicenetworking.googleapis.com \

126 --ranges="google-managed-services-${VPC}" --network="$VPC"

127 

128 gcloud sql instances create claude-gateway-db \

129 --database-version=POSTGRES_16 --tier=db-g1-small --region="$REGION" \

130 --network="projects/${PROJECT_ID}/global/networks/${VPC}" --no-assign-ip

131 gcloud sql databases create claude_gateway --instance=claude-gateway-db

132 PGPASS="$(openssl rand -hex 24)"

133 gcloud sql users create gateway --instance=claude-gateway-db --password="$PGPASS"

134 

135 PRIVATE_IP="$(gcloud sql instances describe claude-gateway-db \

136 --format='value(ipAddresses[0].ipAddress)')"

137 GATEWAY_POSTGRES_URL="postgres://gateway:${PGPASS}@${PRIVATE_IP}:5432/claude_gateway?sslmode=require"

138 ```

139 

140 Cloud Run 또는 GKE 런타임은 이 VPC에 있거나 이 VPC로 라우팅되어야 합니다.

141 </Step>

142 

143 <Step title="gateway.yaml 작성">

144 `upstreams` 블록은 `auth: {}`를 사용하여 Agent Platform을 가리키므로 게이트웨이는 런타임 서비스 계정의 Application Default Credentials를 통해 인증합니다. 모든 필드는 [구성 참조](/ko/claude-apps-gateway-config)를 참조하세요.

145 

146 두 개의 `listen` 필드는 게이트웨이 앞에 무엇이 있는지에 따라 다릅니다:

147 

148 * `public_url`: Cloud Run 또는 GKE Ingress 뒤에 필요합니다. 게이트웨이는 IdP `redirect_uri`와 검색 문서를 이 값에서만 빌드하며 `X-Forwarded-*` 헤더에서는 빌드하지 않습니다.

149 * `trusted_proxies`: 프론트 엔드의 소스 범위입니다. 게이트웨이는 TCP 피어가 이 목록에 있을 때만 `X-Forwarded-For`를 인정하고, 신뢰할 수 있는 홉을 지나 체인을 따라가므로 IP별 로그인 속도 제한 및 감사 이벤트는 로드 밸런서의 IP 대신 개발자 IP를 기록합니다.

150 

151 `trusted_proxies`를 프론트 엔드와 일치하도록 설정합니다. `gce` 클래스의 외부 GKE Ingress는 나열되지 않습니다. 공개 전달 규칙 주소를 프로비저닝하며, 이는 `/login` [프라이빗 네트워크 확인](/ko/claude-apps-gateway#prerequisites)을 거부합니다.

152 

153 | 프론트 엔드 | `trusted_proxies` |

154 | ----------------------------------------- | ------------------------------------- |

155 | 로드 밸런서 없이 직접 도달하는 Cloud Run | `[169.254.0.0/16]` |

156 | Cloud Run 앞의 내부 Application Load Balancer | `169.254.0.0/16` 더하기 프록시 전용 서브넷의 CIDR |

157 | GKE 내부 Ingress, 클래스 `gce-internal` | 프록시 전용 서브넷의 CIDR |

158 

159 아래 예제는 내부 로드 밸런서 앞의 Cloud Run 값을 사용합니다.

160 

161 ```yaml gateway.yaml theme={null}

162 listen:

163 host: 0.0.0.0

164 port: 8080

165 public_url: https://claude-gateway.internal.example.com

166 trusted_proxies: [169.254.0.0/16, <your-proxy-only-subnet-cidr>]

167 

168 oidc:

169 issuer: https://accounts.google.com

170 client_id: <your-oauth-client-id>

171 client_secret: ${OIDC_CLIENT_SECRET} # GKE: ${file:/secrets/oidc-client-secret}

172 allowed_email_domains: [example.com]

173 # Google ignores offline_access; these yield refresh tokens:

174 scopes: [openid, profile, email]

175 extra_auth_params: { access_type: offline, prompt: consent }

176 

177 session:

178 jwt_secret: ${GATEWAY_JWT_SECRET} # GKE: ${file:/secrets/jwt-secret}

179 

180 store:

181 postgres_url: ${GATEWAY_POSTGRES_URL} # GKE: ${file:/secrets/postgres-url}

182 

183 upstreams:

184 - provider: vertex

185 region: <your-region> # must match $REGION

186 project_id: <your-project>

187 auth: {} # ADC via the runtime service account

188 ```

189 

190 <Note>

191 Google id\_tokens는 `groups` 클레임을 포함하지 않습니다. Google Workspace를 IdP로 사용하여 [`managed.policies`](/ko/claude-apps-gateway-config#managed)에서 그룹 기반 정책을 사용하려면 [`oidc.google_groups`](/ko/claude-apps-gateway-config#oidc)를 구성하세요. 이는 도메인 전체 위임이 있는 서비스 계정을 사용하여 Admin SDK Directory API를 통해 각 사용자의 그룹을 조회합니다. 없으면 `email_domain`으로 일치시킵니다.

192 </Note>

193 </Step>

194 

195 <Step title="Secret Manager에 비밀 저장">

196 네 개의 비밀을 생성하고 `claude-gateway` 서비스 계정에 `roles/secretmanager.secretAccessor`를 부여합니다:

197 

198 | 비밀 | 소스 |

199 | ---------------------------- | ------------------------------------- |

200 | `gateway-jwt-secret` | `openssl rand -base64 32` |

201 | `gateway-oidc-client-secret` | Google Cloud Console → OAuth 클라이언트 |

202 | `gateway-postgres-url` | Cloud SQL 단계의 `$GATEWAY_POSTGRES_URL` |

203 | `gateway-config` | 이전 단계의 전체 `gateway.yaml` |

204 

205 비밀이 컨테이너에 도달하는 방식은 트랙에 따라 다릅니다:

206 

207 * GKE에서는 Secret Manager CSI 드라이버를 통해 `/secrets`로 마운트되며, `gateway.yaml`은 `${file:/secrets/...}`를 참조합니다.

208 * Cloud Run에서는 여러 비밀을 한 디렉토리에 마운트할 수 없으므로 `gateway.yaml`은 파일로 마운트되고 다른 세 개는 환경 변수로 주입되므로 `gateway.yaml`은 `${GATEWAY_JWT_SECRET}`, `${OIDC_CLIENT_SECRET}`, `${GATEWAY_POSTGRES_URL}`을 대신 참조합니다.

209 </Step>

210 

211 <Step title="배포">

212 <Tabs>

213 <Tab title="Cloud Run">

214 아래 명령은 내부 로드 밸런서 뒤의 프로덕션을 위해 배포합니다.

215 

216 ```bash theme={null}

217 gcloud run deploy claude-gateway \

218 --image="${REGION}-docker.pkg.dev/${PROJECT_ID}/claude-gateway/gateway:<version>" \

219 --region="$REGION" \

220 --service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com" \

221 --min-instances=1 \

222 --timeout=3600 \

223 --ingress=internal-and-cloud-load-balancing \

224 --network="$VPC" --subnet=cc-gateway-subnet --vpc-egress=private-ranges-only \

225 --set-secrets=/etc/claude/gateway.yaml=gateway-config:latest,GATEWAY_JWT_SECRET=gateway-jwt-secret:latest,OIDC_CLIENT_SECRET=gateway-oidc-client-secret:latest,GATEWAY_POSTGRES_URL=gateway-postgres-url:latest \

226 --no-invoker-iam-check

227 ```

228 

229 Direct VPC egress(`--network`, `--subnet`, `--vpc-egress=private-ranges-only`)를 통해 서비스는 Cloud SQL 프라이빗 IP에 직접 도달할 수 있습니다. Agent Platform 엔드포인트 및 `accounts.google.com`에 대한 공개 egress는 VPC를 통하지 않고 인터넷으로 직접 이동하므로 Cloud NAT이 필요하지 않습니다.

230 

231 invoker IAM 확인은 열려 있거나 비활성화되어야 합니다. 게이트웨이는 자체 OIDC를 실행하고 클라이언트는 GCP 토큰을 가지지 않으므로 Cloud Run의 invoker 확인은 인증되지 않은 요청을 허용해야 합니다. 게이트웨이의 OIDC 로그인은 컨테이너에 도달하면 요청을 인증하며, `allowed_email_domains`는 어떤 도메인이 로그인할 수 있는지를 제어합니다.

232 

233 두 플래그는 인증되지 않은 요청을 허용합니다:

234 

235 * `--no-invoker-iam-check`: 관리할 `allUsers` 바인딩 없이 확인을 비활성화하며 Domain Restricted Sharing에서 작동합니다.

236 * `--allow-unauthenticated`: `allUsers`에 `run.invoker` 역할을 부여합니다. 조직이 `--no-invoker-iam-check`를 허용하지 않으면 사용하세요.

237 

238 `--ingress`를 통한 Ingress 제한은 invoker 확인과 별개의 독립적인 계층입니다. 서비스를 회사 네트워크로 제한하도록 설정된 상태로 유지합니다.

239 

240 기본적으로 Cloud Run `*.run.app` URL은 공개 주소로 확인되며, 이는 `/login` [프라이빗 네트워크 확인](/ko/claude-apps-gateway#prerequisites)을 거부합니다. 두 가지 토폴로지는 개발자에게 프라이빗으로 확인 가능한 호스트명을 제공하며, Cloud Run은 둘 다 프로비저닝하지 않습니다:

241 

242 * **내부 Application Load Balancer**(위의 배포 명령이 가정하는 토폴로지): `--ingress=internal-and-cloud-load-balancing`으로 배포하고, 서비스 앞에 내부 Application Load Balancer를 프로비저닝하며 내부 DNS 이름과 인증서를 사용하고, `listen.public_url`을 해당 호스트명으로 설정합니다.

243 * **로드 밸런서 없는 내부 전용 ingress**: `--ingress=internal`로 배포하고 `listen.public_url`을 `*.run.app` URL로 유지합니다. 아래 [참조 자산](#terraform-reference)의 기본값입니다. `*.run.app`이 프라이빗으로 확인되려면 네트워크 팀이 이미 Google API에 대한 Private Service Connect 엔드포인트를 운영하고, `*.run.app`을 이에 확인하는 Cloud DNS 프라이빗 영역을 운영하고, 해당 엔드포인트로의 온프레미스 라우팅을 운영해야 합니다.

244 

245 Google의 [Cloud Run용 프라이빗 네트워킹 가이드](https://cloud.google.com/run/docs/securing/private-networking)는 두 옵션이 필요로 하는 인프라를 다룹니다. 게이트웨이가 프라이빗 호스트명에서 제공되면 로그인을 확인합니다. 그때까지 Cloud Run의 로그에서 컨테이너가 부팅되었는지 확인합니다.

246 

247 첫 번째 로그인 전에 OAuth 클라이언트의 승인된 리다이렉트 URI를 `<public_url>/oauth/callback`으로 업데이트합니다. `public_url`을 변경한 후 다시 배포합니다. 게이트웨이는 해당 설정에서만 공개 원본을 빌드하고 `X-Forwarded-Host` 및 `X-Forwarded-Proto`를 무시합니다. `X-Forwarded-For`는 `listen.trusted_proxies`가 설정되었을 때만 클라이언트 IP에 대해 인정됩니다.

248 </Tab>

249 

250 <Tab title="GKE">

251 클러스터는 Cloud SQL 단계에서 생성된 `$VPC`에 있어야 하므로 포드가 데이터베이스의 프라이빗 IP에 도달할 수 있습니다. VPC 피어링만으로는 작동하지 않습니다. Cloud SQL 프라이빗 IP 자체가 피어링된 네트워크이고 피어링은 비전이적이기 때문입니다. 해당 VPC에 새 클러스터를 생성하려면 `gcloud container clusters create`에 `--network="$VPC" --subnetwork=cc-gateway-subnet`을 전달합니다.

252 

253 클러스터 및 노드 풀에서 Workload Identity를 활성화한 다음 Google 서비스 계정을 Kubernetes 서비스 계정에 바인딩하여 포드가 해당 자격 증명을 상속하도록 합니다:

254 

255 ```bash theme={null}

256 gcloud container clusters update <cluster> --region="$REGION" \

257 --workload-pool="${PROJECT_ID}.svc.id.goog"

258 # On a Standard cluster, existing node pools also need GKE_METADATA;

259 # Autopilot enables this by default.

260 gcloud container node-pools update <pool> --cluster=<cluster> \

261 --region="$REGION" --workload-metadata=GKE_METADATA

262 

263 kubectl create namespace claude-gateway

264 kubectl create serviceaccount gateway -n claude-gateway

265 

266 gcloud iam service-accounts add-iam-policy-binding \

267 "claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com" \

268 --role roles/iam.workloadIdentityUser \

269 --member "serviceAccount:${PROJECT_ID}.svc.id.goog[claude-gateway/gateway]"

270 

271 kubectl annotate serviceaccount gateway -n claude-gateway \

272 iam.gke.io/gcp-service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com"

273 ```

274 

275 [Kubernetes 배포](/ko/claude-apps-gateway-deploy#kubernetes)에 설명된 대로 게이트웨이를 표준 Deployment, Service, 내부 Ingress(클래스 `gce-internal`)로 배포합니다:

276 

277 * `serviceAccountName: gateway`

278 * Secret Manager CSI 드라이버가 `/secrets`에 비밀을 마운트

279 * readiness 프로브가 `GET /readyz`를 가리킴

280 

281 게이트웨이 Service에 BackendConfig를 연결하고 `timeoutSec`을 높입니다. GKE Ingress 뒤의 로드 밸런서 백엔드 서비스는 기본적으로 30초 타임아웃이며, 이는 긴 스트리밍 응답을 차단합니다.

282 

283 Workload Identity 클러스터에서 `169.254.169.254`를 차단하는 egress NetworkPolicy를 적용하지 마세요. 포드는 자격 증명을 위해 메타데이터 서버에 도달해야 합니다. 게이트웨이의 내장 [SSRF 가드](/ko/claude-apps-gateway-deploy#threat-model-summary)가 방어입니다.

284 

285 게이트웨이는 메타데이터 엔드포인트에 도달 가능하고 egress NetworkPolicy를 적용할 것을 제안하는 부팅 경고를 기록합니다. Workload Identity에서 해당 경고는 예상되며, 포드가 엔드포인트를 필요로 하기 때문입니다.

286 </Tab>

287 </Tabs>

288 </Step>

289 

290 <Step title="게이트웨이 URL을 개발자 머신에 푸시">

291 게이트웨이가 이제 실행 중이지만 개발자는 게이트웨이 URL이 머신에 있을 때까지 `/login`에서 도달할 수 없습니다. MDM을 통해 각 디바이스에 배포하는 [관리 설정 파일](/ko/claude-apps-gateway#set-the-gateway-url)에서 `forceLoginMethod` 및 `forceLoginGatewayUrl`을 설정합니다. 개발자가 수동으로 선택할 수 있는 로그인 선택기의 게이트웨이 옵션이 없습니다.

292 </Step>

293</Steps>

294 

295<h2 id="terraform-reference">

296 Terraform 참조

297</h2>

298 

299[참조 배포 자산](https://github.com/anthropics/claude-code/tree/main/examples/gateway/gcp)은 이 페이지의 Cloud Run 트랙을 자동화합니다. 구성 및 이미지 자산은 두 트랙 모두에 적용됩니다:

300 

301* `setup.sh`: API 활성화부터 첫 번째 배포까지 전체 Cloud Run 경로를 거치는 멱등성 `gcloud` 프로비저너

302* `terraform/`: 인프라 코드로서의 동일한 배포(greenfield 배포용): Artifact Registry 저장소를 생성하기 위한 대상 적용, 이미지를 빌드 및 푸시, 그 다음 전체 적용

303* `gateway.yaml.example` 및 distroless 런타임 이미지를 위한 `Dockerfile`

304 

305자산은 기본적으로 Cloud Run ingress를 `internal`로 설정하므로 로드 밸런서가 필요하지 않습니다. 이 페이지의 프로덕션 뒤 ALB 배포와 일치하려면 `setup.sh`를 `INGRESS=internal-and-cloud-load-balancing`으로 실행하거나 Terraform 변수 `ingress`를 `INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER`로 설정합니다. 자산은 또한 invoker 계층을 이 페이지의 연습과 반대로 `--no-invoker-iam-check` 대신 `allUsers` `run.invoker` 부여로 기본 설정합니다. 둘 다 작동하며 선택은 조직의 정책 제약에 따라 다릅니다.

306 

307자산은 지원되는 프로덕션 아티팩트가 아닌 작동 예제로 제공됩니다. 환경에 맞게 검토하고 조정하세요.

308 

309<h2 id="troubleshooting">

310 문제 해결

311</h2>

312 

313게이트웨이 부팅 및 로그인 오류는 플랫폼 독립적인 [문제 해결 표](/ko/claude-apps-gateway-deploy#troubleshooting)를 참조하세요. 아래 항목은 Google Cloud에 특정합니다.

314 

315| 증상 | 원인 | 해결 |

316| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

317| Cloud Run이 컨테이너에 도달하기 전에 `403 Forbidden`을 반환 | invoker IAM 확인이 여전히 활성화됨 | `--no-invoker-iam-check`로 배포하거나 `--allow-unauthenticated`로 `allUsers`에 `run.invoker` 역할을 부여 |

318| `--no-invoker-iam-check`가 `invoker_iam_disabled is not currently available`로 거부됨 | `constraints/run.managed.requireInvokerIam`에 의해 차단됨 | `--allow-unauthenticated`를 사용합니다. `constraints/iam.allowedPolicyMemberDomains`를 통한 Domain Restricted Sharing도 차단하면 GKE 트랙을 사용하세요. 이는 `allUsers` 바인딩 없이 네트워크 계층에서 게이트웨이를 노출합니다. |

319| 배포 시 `Container manifest type … must support amd64/linux` | 이미지가 비 amd64 호스트에서 빌드되었거나 buildx가 OCI 이미지 인덱스를 내보냄 | `--platform=linux/amd64 --provenance=false`로 빌드 |

320| 게이트웨이 부팅이 Cloud Run의 Postgres 연결 타임아웃 오류로 종료됨 | 서비스가 VPC에 연결되지 않았거나 Cloud SQL이 해당 VPC에 프라이빗 IP가 없음. 저장소는 5초 후 대기를 중지 | Direct VPC egress를 위해 `--network` 및 `--subnet`으로 배포하고 Cloud SQL 인스턴스를 `--no-assign-ip` 및 동일한 VPC를 가리키는 `--network`로 생성 |

321| Agent Platform 요청이 `403 PERMISSION_DENIED`를 반환 | 런타임이 `claude-gateway` 서비스 계정을 사용하지 않거나 모델이 프로젝트의 Model Garden에서 활성화되지 않음 | Cloud Run에서 `--service-account`를 설정하거나 GKE에서 Workload Identity를 바인딩하고 각 Claude 모델을 대상 지역의 Model Garden에서 활성화 |

322| 스트리밍 응답이 고정 기간 후 차단됨 | 프론트 엔드 요청 타임아웃: GKE Ingress 뒤의 로드 밸런서 백엔드 서비스는 기본적으로 30초이고 Cloud Run은 300초 | GKE에서 `timeoutSec`이 높은 BackendConfig를 연결하거나 Cloud Run에서 `--timeout=3600`으로 배포 |

323 

324<h2 id="next-steps">

325 다음 단계

326</h2>

327 

328* [구성 참조](/ko/claude-apps-gateway-config): 모든 `gateway.yaml` 옵션(예: `managed.policies` 및 `telemetry`)

329* [배포 및 운영](/ko/claude-apps-gateway-deploy): IdP 설정, 상태 확인, JWT 비밀 로테이션, 업그레이드, 보안 모델

330* [Claude 앱 게이트웨이 개요](/ko/claude-apps-gateway): 빠른 시작 및 개발자 연결

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude 앱 게이트웨이 지출 한도

6 

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

8 

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

10 

11Claude 앱 게이트웨이는 하나의 공유 업스트림 자격 증명을 통해 모든 추론을 전달하므로 공급자의 청구서는 개별 개발자가 아닌 해당 자격 증명에 모든 것을 귀속시킵니다. 개발자별 한도가 없으면 하나의 폭주하는 에이전트 플릿이 조직의 전체 약정을 소비할 수 있습니다. 지출 한도는 게이트웨이의 개발자별 보기이자 해당 공유 청구서 위의 차단기입니다.

12 

13<h2 id="set-a-cap">

14 한도 설정

15</h2>

16 

17`gateway.yaml`에서 [`admin:`](/ko/claude-apps-gateway-config#admin) 블록이 구성되면 게이트웨이는 `/v1/organizations/spend_limits`에서 admin API를 제공하고 모든 추론 요청에서 한도를 실시간으로 적용합니다. 한도 자체는 `gateway.yaml`이 아닌 해당 API를 통해 설정됩니다. 각 `POST /v1/organizations/spend_limits` 요청은 `{scope, amount, period}`에서 하나의 한도를 생성하거나 대체합니다. API는 Anthropic의 공개 [Admin API](https://platform.claude.com/docs/en/manage-claude/admin-api) 지출 한도 엔드포인트의 와이어 형태를 미러링하므로 해당 계약에 대해 작성된 HTTP 클라이언트는 기본 URL을 변경하여 게이트웨이를 대상으로 할 수 있습니다.

18 

19이 요청은 모든 개발자를 위해 월별 \$500의 조직 전체 기본값을 설정합니다:

20 

21```bash theme={null}

22curl -sS https://claude-gateway.internal.example.com/v1/organizations/spend_limits \

23 -H "x-api-key: $GATEWAY_ADMIN_WRITE_KEY" \

24 -H "Content-Type: application/json" \

25 -d '{"scope": {"type": "organization"}, "amount": "50000", "period": "monthly"}'

26```

27 

28이 요청은 `contractors` 그룹의 각 멤버에 더 엄격한 일일 \$100 한도를 추가합니다:

29 

30```bash theme={null}

31curl -sS https://claude-gateway.internal.example.com/v1/organizations/spend_limits \

32 -H "x-api-key: $GATEWAY_ADMIN_WRITE_KEY" \

33 -H "Content-Type: application/json" \

34 -d '{"scope": {"type": "rbac_group", "rbac_group_id": "contractors"}, "amount": "10000", "period": "daily"}'

35```

36 

37| 필드 | 값 | 설명 |

38| ------------ | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

39| `scope.type` | `user`, `rbac_group`, `organization` | `user`는 OpenID Connect (OIDC) `sub`로 하나의 개발자를 대상으로 하며, 이는 ID 공급자가 할당하는 안정적인 사용자 ID입니다. `scope.user_id`로 전달합니다. `rbac_group`은 [IdP 그룹](/ko/claude-apps-gateway-config#managed)을 이름으로 대상으로 하며, `scope.rbac_group_id`로 전달합니다. `organization`은 조직 전체 기본값입니다. 게이트웨이는 세 가지 모두 허용합니다. Anthropic의 공개 `POST`는 현재 사용자 전용입니다. |

40| `amount` | USD 센트의 정수 문자열 또는 `null` | `null`은 무제한입니다. `"0"`은 모든 요청을 차단하는 0 한도입니다. |

41| `period` | `daily`, `weekly`, `monthly` | 범위는 기간당 하나의 한도를 보유할 수 있으며 각각 독립적으로 적용됩니다. 개발자는 이들 중 하나를 초과하면 차단됩니다. |

42 

43그룹 또는 조직 한도는 각 멤버가 상속하는 좌석별 기본값이지 공유 풀이 아닙니다. 기간당 개발자의 유효 한도는 다음 순서로 해결됩니다: 사용자별 재정의, 그룹 한도 중 가장 제한적인 것, 조직 기본값, 무제한. [`admin.group_limit_mode: max`](/ko/claude-apps-gateway-config#admin)는 다중 그룹 동점 결정을 가장 제한적인 것 대신 가장 제한적이지 않은 것으로 뒤집습니다.

44 

45<h3 id="authenticate-to-the-admin-api">

46 Admin API에 인증

47</h3>

48 

49다음 중 하나를 보냅니다:

50 

51* [`admin.write_keys`](/ko/claude-apps-gateway-config#admin)의 키와 일치하는 `x-api-key` 헤더(전체 액세스) 또는 `admin.read_keys`(`GET` 전용 액세스). 각 키는 감사 로그에 `admin-key:<id>`로 나타나는 `id`를 전달하므로 Terraform, CI 및 각 자동화에 자신의 키를 제공합니다.

52* `groups` 클레임이 [`admin.admin_groups`](/ko/claude-apps-gateway-config#admin) 중 하나를 포함하는 게이트웨이 베어러 토큰. 이는 전체 액세스이며 `oidc:<sub>`로 감사되므로 인간 관리자에게 선호됩니다.

53 

54<h2 id="how-enforcement-works">

55 적용 방식

56</h2>

57 

58각 `/v1/messages` 요청에서 게이트웨이는 개발자의 한도와 기간 누적 지출을 하나의 Postgres 쿼리로 해결합니다. 한도를 초과하면 요청은 `error.type: billing_error`와 헤더 `x-should-retry: false`를 포함한 `429`를 반환합니다. 메시지는 `spend limit reached`이고 설정된 경우 [`admin.blocked_message`](/ko/claude-apps-gateway-config#admin)가 뒤따릅니다.

59 

60`/v1/messages/count_tokens`은 제외됩니다. 토큰 계산은 무료이므로 한도 상태와 관계없이 실행됩니다.

61 

62각 응답 후 사용량 미터는 응답에서 토큰 수를 읽고 USD 정가로 가격을 책정한 후 세 기간 버킷 모두에 대해 Postgres 카운터를 증가시킵니다. 미터는 스트림의 단일 리더이므로 클라이언트의 바이트는 손상되지 않으며 미터링 실패는 응답을 손상시키지 않습니다.

63 

64지출 한도는 토큰 수에서 USD 정가로 지출을 추정합니다. 이는 차단기이지 송장이 아닙니다. 권위 있는 청구를 위해 Anthropic Usage & Cost Admin API, Bedrock의 호출 로그 또는 Google Cloud의 Cloud Monitoring과 같은 공급자의 자체 사용량 보고에 대해 조정합니다.

65 

66가격 책정은 Claude Code CLI가 자체 비용 표시에 사용하는 것과 동일한 테이블을 사용하며, Anthropic, Bedrock (`us.anthropic.…-v1:0`), Agent Platform (`claude-…@date`) 및 Foundry ID 형식 전체에서 동일한 모델 ID 정규화를 사용합니다. Foundry 배포 이름 또는 추론 프로필 ARN과 같이 테이블이 배치할 수 없는 모델 ID는 0이 아닌 미알려진 모델 기본 계층인 백만 입력/출력 토큰당 $5/$25로 가격이 책정되므로 인식되지 않는 ID는 미계량으로 이동하여 한도를 우회할 수 없습니다. 게이트웨이는 부팅 시 및 런타임에 ID당 한 번 경고합니다.

67 

68클라이언트 중단도 청구됩니다. 업스트림은 스트림의 터미널 프레임에서만 출력 토큰을 보고하므로 중단된 스트림은 이를 전달하지 않습니다. 미터는 스트림된 콘텐츠 크기에서 보수적인 하한 추정값(토큰당 약 4자)을 유지하고 터미널 사용량 프레임이 누락된 경우에만 청구합니다. 완전한 스트림은 항상 업스트림 보고 수를 청구합니다. 이 없이 제한된 개발자는 출력을 스트림하고 끝나기 직전에 각 요청을 중단하여 계산되지 않고 지출할 수 있습니다.

69 

70<h3 id="postgres-availability">

71 Postgres 가용성

72</h3>

73 

74사전 확인 쿼리는 2초 타임아웃으로 Postgres를 쿼리합니다. 저장소에 연결할 수 없거나 타임아웃되면 기본적으로 적용이 열린 상태로 실패합니다. 요청이 진행되고 게이트웨이가 경고를 기록합니다. 대신 [`enforcement.fail_closed_on_error: true`](/ko/claude-apps-gateway-config#enforcement)를 설정하여 닫힌 상태로 실패하면 메시지 `spend limit unavailable`과 함께 동일한 `429 billing_error`를 반환합니다. 열린 상태 실패는 저장소 중단이 추론 중단이 되는 것을 방지합니다. 닫힌 상태 실패는 미계량 지출이 없음을 보장합니다.

75 

76<h2 id="admin-api-reference">

77 Admin API 참조

78</h2>

79 

80아래 엔드포인트는 `/v1/organizations/spend_limits` 아래에서 제공됩니다.

81 

82| 메서드 및 경로 | 설명 |

83| ---------------------------------------------- | ---------------------------------------------------------- |

84| `GET /v1/organizations/spend_limits` | 구성된 한도를 나열합니다. 쿼리: `?limit=&after_id=&before_id=`. |

85| `POST /v1/organizations/spend_limits` | `{scope, period}`에 대한 한도를 생성하거나 대체합니다. |

86| `GET /v1/organizations/spend_limits/{id}` | `spl_` 접두사가 있는 ID로 하나의 한도를 가져옵니다. |

87| `DELETE /v1/organizations/spend_limits/{id}` | 하나의 한도를 삭제합니다. `{type: "spend_limit_deleted", id}`를 반환합니다. |

88| `GET /v1/organizations/spend_limits/effective` | 기간당 주체별로 해결된 한도 및 누적 지출. |

89| `GET /v1/organizations/spend_limits/audit` | 관리자 변경 추적, 최신 우선. 쿼리: `?limit=`. |

90 

91규칙은 Anthropic의 Admin API를 미러링합니다:

92 

93* 모든 객체의 `type`

94* `spl_` 접두사가 있는 ID

95* USD 센트의 정수 문자열로 된 금액. `POST`는 다른 `currency`를 `400`으로 거부합니다.

96* `{type: "error", error: {type, message}, request_id}` 오류 봉투

97* 성공 또는 오류인 모든 관리자 응답의 `request-id` 응답 헤더, 본문의 `request_id`와 일치합니다.

98 

99모든 변경은 동일한 트랜잭션에서 `admin_audit`에 변경 전/후 행을 작성하며, `admin-key:<id>` 또는 `oidc:<sub>`에 귀속됩니다.

100 

101게이트웨이는 지출 한도 엔드포인트만 제공합니다. `spend_limit_increase_requests` 큐와 같은 다른 Admin API 표면은 게이트웨이의 Admin API의 일부가 아닙니다.

102 

103<h3 id="/effective">

104 `/effective`

105</h3>

106 

107`GET /v1/organizations/spend_limits/effective`는 Anthropic의 `SpendSummary` 스키마를 반환합니다. 각 행은 기간에 대한 주체이며, 해결된 한도, 기간 누적 지출 및 `actor` 객체를 포함합니다. 게이트웨이 특정 차이점:

108 

109* `user_id`는 OIDC `sub`입니다.

110* `actor.name` 및 `actor.email_address`는 주체의 첫 번째 추론 요청이 게이트웨이를 통과할 때까지 `null`입니다. 게이트웨이에는 사용자 디렉토리가 없습니다. 각 사용자의 자체 세션 JWT에서 마지막 확인 값을 기록합니다.

111* 각 행은 또한 `groups` 배열, 주체의 마지막 확인 IdP 그룹을 전달합니다. 이는 관리자 UI가 적용되는 모든 한도 계층을 표시할 수 있도록 하는 게이트웨이 확장입니다. Anthropic 형태의 클라이언트는 이를 무시합니다.

112* `user_ids[]` 필터가 없으면 기록된 지출이 있는 주체를 나열합니다. 게이트웨이는 모든 조직 멤버를 열거할 수 없기 때문입니다.

113 

114그룹 소스 한도는 적용이 사용하는 동일한 `group_limit_mode` 동점 결정으로 마지막 확인 그룹에 대해 해결되므로 뷰어는 실제로 적용되는 한도를 표시합니다.

115 

116| 쿼리 매개변수 | 설명 |

117| ---------------- | --------------------------------------------------------------- |

118| `user_ids[]` | 반복 가능. OIDC `sub`로 특정 주체로 필터링합니다. |

119| `period[]` | 반복 가능. `daily`, `weekly` 또는 `monthly` 행으로 필터링합니다. |

120| `sort` | `spend_desc`는 상위 지출자를 먼저 나열합니다. 정확히 하나의 `period[]`가 필요합니다. |

121| `q` | OIDC `sub`, 마지막 확인 이메일 및 마지막 확인 표시 이름에 대한 대소문자 구분 없는 부분 문자열 필터. |

122| `limit` / `page` | 페이지 크기(1–1000, 기본값 20) 및 이전 응답의 `next_page`에서 불투명 커서. |

123 

124<Warning>

125 `q=` 및 `user_ids[]=`는 GET 쿼리 문자열을 타고 있으므로 모든 프론팅 프록시 또는 로드 밸런서가 액세스 로그에서 이를 캡처합니다. PII 로그 정책이 엄격하면 거기서 이러한 매개변수를 스크럽합니다.

126</Warning>

127 

128<h3 id="/audit">

129 `/audit`

130</h3>

131 

132지출 한도 변경 추적을 반환합니다. 누가 어떤 한도를 변경했는지, 변경 전/후 스냅샷 및 선택적 이유, 최신 우선. `has_more`는 정확합니다. 이 엔드포인트는 첫 번째 당사자 와이어 형태가 아닌 로컬 Admin API 규칙을 따릅니다.

133 

134<h3 id="pagination">

135 페이지 매김

136</h3>

137 

138원본 목록은 `after_id` 및 `before_id`로 페이지를 매기며, 이는 상호 배타적인 `spl_…` ID입니다. 결과는 생성 순서로 정렬되고 `has_more`는 순회 방향을 반영합니다. `/effective`는 이전 응답에서 `?page=`로 다시 전달되는 불투명 `next_page` 토큰으로 페이지를 매기며, 주체는 오름차순으로 정렬되어 지출이 기록되는 동안 페이지가 안정적으로 유지됩니다. `limit`은 둘 다에서 1–1000, 기본값 20입니다.

139 

140<h2 id="data-lifecycle">

141 데이터 수명 주기

142</h2>

143 

144게이트웨이는 4개의 지출 관련 테이블을 보유합니다. 시간별 스윕은 보존 기간을 적용합니다:

145 

146| 테이블 | 내용 | 보존 |

147| ------------------ | --------------------------------------------- | ----------------------------------------------------------------------------------------- |

148| `spend` | 주체별 기간 누적 카운터(센트) | [`admin.spend_retention_months`](/ko/claude-apps-gateway-config#admin), 기본값 13 |

149| `spend_limits` | 구성된 한도 | API를 통해 삭제될 때까지 |

150| `admin_audit` | 변경 추적 | [`admin.audit_retention_days`](/ko/claude-apps-gateway-config#admin), 기본값 365 |

151| `principal_emails` | 각 주체의 마지막 확인 이메일, 표시 이름 및 IdP 그룹. PII를 포함합니다. | [`admin.identity_retention_days`](/ko/claude-apps-gateway-config#admin) 마지막 활동 이후, 기본값 90 |

152 

153`identity_retention_days`는 의도적으로 `spend_retention_months`보다 짧습니다. 프로비저닝 해제된 ID는 새로 고침을 중지하고 나이가 들지만 익명 지출 카운터는 연간 보고를 위해 유지됩니다.

154 

155개발자가 떠날 때 `DELETE /v1/organizations/spend_limits/{id}`를 통해 사용자별 한도를 삭제합니다. 지출 및 ID 행은 위의 보존 기간에 나이가 듭니다. 오프보딩 또는 데이터 주체 액세스 요청(DSAR)을 위해 한 사람을 즉시 지우려면 게이트웨이 데이터베이스에 대해 직접 `DELETE FROM principal_emails WHERE principal = '<sub>'`를 실행합니다. 이는 이메일, 이름 및 그룹을 보유하는 유일한 테이블을 제거합니다. `spend` 및 `admin_audit` 행은 의사명 OIDC `sub`만 참조하고 자체 기간에 나이가 듭니다.

156 

157<h2 id="related">

158 관련

159</h2>

160 

161* [`admin` 및 `enforcement` 구성](/ko/claude-apps-gateway-config#admin): admin API 활성화 및 보존 조정

162* [배포 가이드](/ko/claude-apps-gateway-deploy#postgres): Postgres 스키마 및 백업 지침

Details

186| 환경 보관 | 환경을 편집하기 위해 열고 **Archive**를 선택합니다. 보관된 환경은 선택기에서 숨겨지지만 기존 세션은 계속 실행됩니다. |186| 환경 보관 | 환경을 편집하기 위해 열고 **Archive**를 선택합니다. 보관된 환경은 선택기에서 숨겨지지만 기존 세션은 계속 실행됩니다. |

187| `--remote`의 기본값 설정 | 터미널에서 `/remote-env`를 실행합니다. 단일 환경이 있으면 이 명령은 현재 구성을 표시합니다. `/remote-env`는 기본값만 선택합니다. 웹 인터페이스에서 환경을 추가, 편집 및 보관합니다. |187| `--remote`의 기본값 설정 | 터미널에서 `/remote-env`를 실행합니다. 단일 환경이 있으면 이 명령은 현재 구성을 표시합니다. `/remote-env`는 기본값만 선택합니다. 웹 인터페이스에서 환경을 추가, 편집 및 보관합니다. |

188 188 

189환경 변수는 `.env` 형식을 사용하며 한 줄에 하나의 `KEY=value` 쌍입니다. 따옴표는 값의 일부로 저장되므로 값을 따옴표로 감싸지 마세요.189환경 변수는 `.env` 형식을 사용하며 한 줄에 하나의 `KEY=value` 쌍입니다. 따옴표는 값의 일부로 저장되므로 값을 따옴표로 감싸지 마세요. 이 예제는 세 개의 변수를 정의합니다:

190 190 

191```text theme={null}191```text theme={null}

192NODE_ENV=development192NODE_ENV=development


593 * \*.sentry.io593 * \*.sentry.io

594 * downloads.sentry-cdn.com594 * downloads.sentry-cdn.com

595 * http-intake.logs.datadoghq.com595 * http-intake.logs.datadoghq.com

596 * browser-intake-us5-datadoghq.com

596 * \*.datadoghq.com597 * \*.datadoghq.com

597 * \*.datadoghq.eu598 * \*.datadoghq.eu

598 * api.honeycomb.io599 * api.honeycomb.io


641 642 

642이렇게 하면 claude.ai에서 새 클라우드 세션이 생성됩니다. 세션은 현재 디렉토리의 GitHub 원격을 현재 분기에서 복제하므로, VM이 머신이 아닌 GitHub에서 복제하기 때문에 로컬 커밋이 있으면 먼저 푸시하세요. `--remote`는 한 번에 하나의 저장소에서 작동합니다. 작업은 클라우드에서 실행되는 동안 로컬에서 계속 작업할 수 있습니다.643이렇게 하면 claude.ai에서 새 클라우드 세션이 생성됩니다. 세션은 현재 디렉토리의 GitHub 원격을 현재 분기에서 복제하므로, VM이 머신이 아닌 GitHub에서 복제하기 때문에 로컬 커밋이 있으면 먼저 푸시하세요. `--remote`는 한 번에 하나의 저장소에서 작동합니다. 작업은 클라우드에서 실행되는 동안 로컬에서 계속 작업할 수 있습니다.

643 644 

645{/* min-version: 2.1.195 */}v2.1.195부터 CLI는 저장소 복제 및 [설정 스크립트](#setup-scripts) 실행과 같은 설정 단계의 라이브 체크리스트를 표시하며, 클라우드 컨테이너가 시작됩니다. 컨테이너가 프로비저닝되는 동안 입력한 메시지는 큐에 저장되었다가 세션이 준비되면 전송됩니다.

646 

644<Note>647<Note>

645 `--remote`는 클라우드 세션을 생성합니다. `--remote-control`은 관련이 없습니다: 로컬 CLI 세션을 노출하여 웹에서 모니터링할 수 있습니다. [Remote Control](/ko/remote-control)을 참조하세요.648 `--remote`는 클라우드 세션을 생성합니다. `--remote-control`은 관련이 없습니다: 로컬 CLI 세션을 노출하여 웹에서 모니터링할 수 있습니다. [Remote Control](/ko/remote-control)을 참조하세요.

646</Note>649</Note>


704 707 

705* **`--teleport` 사용**: 명령줄에서 `claude --teleport`를 실행하여 대화형 세션 선택기를 사용하거나 `claude --teleport <session-id>`를 실행하여 특정 세션을 직접 재개합니다. 커밋되지 않은 변경 사항이 있으면 먼저 stash하라는 메시지가 표시됩니다.708* **`--teleport` 사용**: 명령줄에서 `claude --teleport`를 실행하여 대화형 세션 선택기를 사용하거나 `claude --teleport <session-id>`를 실행하여 특정 세션을 직접 재개합니다. 커밋되지 않은 변경 사항이 있으면 먼저 stash하라는 메시지가 표시됩니다.

706* **`/teleport` 사용**: 기존 CLI 세션 내에서 `/teleport`(또는 `/tp`)를 실행하여 Claude Code를 다시 시작하지 않고 동일한 세션 선택기를 엽니다.709* **`/teleport` 사용**: 기존 CLI 세션 내에서 `/teleport`(또는 `/tp`)를 실행하여 Claude Code를 다시 시작하지 않고 동일한 세션 선택기를 엽니다.

707* **`/tasks`에서**: `/tasks`를 실행하여 백그라운드 세션을 보고 `t`를 눌러 하나로 텔레포트합니다710* **`/tasks`에서**: `/tasks`를 실행하여 백그라운드 세션을 보고 `t`를 눌러 하나로 텔레포트합니다.

708* **웹 인터페이스에서**: **Open in CLI**를 선택하여 터미널에 붙여넣을 수 있는 명령을 복사합니다711* **웹 인터페이스에서**: **Open in CLI**를 선택하여 터미널에 붙여넣을 수 있는 명령을 복사합니다.

709 712 

710세션을 텔레포트하면 Claude가 올바른 저장소에 있는지 확인하고, 클라우드 세션에서 분기를 가져와 체크아웃하고, 전체 대화 기록을 터미널에 로드합니다.713세션을 텔레포트하면 Claude가 올바른 저장소에 있는지 확인하고, 클라우드 세션에서 분기를 가져와 체크아웃하고, 전체 대화 기록을 터미널에 로드합니다.

711 714 


752 755 

753자동 압축은 컨텍스트 윈도우가 용량에 접근할 때 자동으로 실행됩니다. 더 일찍 트리거하려면 [환경 변수](#configure-your-environment)에서 [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/ko/env-vars)를 설정하세요. 예를 들어 `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=70`은 윈도우가 거의 가득 찰 때까지 기다리는 대신 70% 용량에서 압축합니다. 압축 계산을 위한 유효 윈도우 크기를 변경하려면 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/ko/env-vars)를 사용하세요.756자동 압축은 컨텍스트 윈도우가 용량에 접근할 때 자동으로 실행됩니다. 더 일찍 트리거하려면 [환경 변수](#configure-your-environment)에서 [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/ko/env-vars)를 설정하세요. 예를 들어 `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=70`은 윈도우가 거의 가득 찰 때까지 기다리는 대신 70% 용량에서 압축합니다. 압축 계산을 위한 유효 윈도우 크기를 변경하려면 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/ko/env-vars)를 사용하세요.

754 757 

755[Subagents](/ko/sub-agents)는 로컬과 동일한 방식으로 작동합니다. Claude는 Task 도구로 이들을 생성하여 연구 또는 병렬 작업을 별도의 컨텍스트 윈도우로 오프로드하여 주 대화를 더 가볍게 유지할 수 있습니다. 저장소의 `.claude/agents/`에 정의된 Subagents는 자동으로 선택됩니다. [Agent teams](/ko/agent-teams)는 기본적으로 꺼져 있지만 [환경 변수](#configure-your-environment)에 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`을 추가하여 활성화할 수 있습니다.758[Subagents](/ko/sub-agents)는 로컬과 동일한 방식으로 작동합니다. Claude는 Task 도구로 이들을 생성하여 연구 또는 병렬 작업을 별도의 컨텍스트 윈도우로 오프로드하여 주 대화를 더 가볍게 유지할 수 있습니다. 저장소의 `.claude/agents/`에 정의된 Subagents는 자동으로 선택됩니다.

759 

760[Agent teams](/ko/agent-teams)는 기본적으로 꺼져 있지만 [환경 변수](#configure-your-environment)에 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`을 추가하여 활성화할 수 있습니다.

756 761 

757<h3 id="review-changes">762<h3 id="review-changes">

758 변경 사항 검토763 변경 사항 검토


770 Enterprise 또는 Team 계정에서 공유775 Enterprise 또는 Team 계정에서 공유

771</h4>776</h4>

772 777 

773Enterprise 및 Team 계정의 경우 두 가지 가시성 옵션은 **Private** 및 **Team**입니다. Team 가시성은 claude.ai 조직의 다른 구성원에게 세션을 표시합니다. 저장소 액세스 확인은 기본적으로 수신자의 계정에 연결된 GitHub 계정을 기반으로 활성화됩니다. 계정의 표시 이름은 액세스 권한이 있는 모든 수신자에게 표시됩니다. [Claude in Slack](/ko/slack) 세션은 자동으로 Team 가시성으로 공유됩니다.778Enterprise 및 Team 계정의 경우 두 가지 가시성 옵션은 **Private** 및 **Team**입니다. Team 가시성은 claude.ai 조직의 다른 구성원에게 세션을 표시합니다. [Claude in Slack](/ko/slack) 세션은 자동으로 Team 가시성으로 공유됩니다.

779 

780저장소 액세스 확인은 기본적으로 수신자의 계정에 연결된 GitHub 계정을 기반으로 활성화됩니다. 계정의 표시 이름은 액세스 권한이 있는 모든 수신자에게 표시됩니다.

774 781 

775<h4 id="share-from-a-max-or-pro-account">782<h4 id="share-from-a-max-or-pro-account">

776 Max 또는 Pro 계정에서 공유783 Max 또는 Pro 계정에서 공유

Details

283```bash theme={null}283```bash theme={null}

284export ANTHROPIC_DEFAULT_FABLE_MODEL=claude-fable-5284export ANTHROPIC_DEFAULT_FABLE_MODEL=claude-fable-5

285export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-7285export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-7

286export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6286export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5

287export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5287export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5

288```288```

289 289 

Details

22| `claude -c -p "query"` | SDK를 통해 계속 | `claude -c -p "Check for type errors"` |22| `claude -c -p "query"` | SDK를 통해 계속 | `claude -c -p "Check for type errors"` |

23| `claude -r "<session>" "query"` | ID 또는 이름으로 세션 재개 | `claude -r "auth-refactor" "Finish this PR"` |23| `claude -r "<session>" "query"` | ID 또는 이름으로 세션 재개 | `claude -r "auth-refactor" "Finish this PR"` |

24| `claude update` | 최신 버전으로 업데이트 | `claude update` |24| `claude update` | 최신 버전으로 업데이트 | `claude update` |

25| `claude gateway` | 자체 호스팅 [Claude 앱 게이트웨이](/ko/claude-apps-gateway) 서버를 시작합니다. Bedrock, Vertex AI 또는 Foundry의 Claude Code 앞에 SSO 및 정책을 배포하는 관리자용입니다. [`gateway.yaml`](/ko/claude-apps-gateway-config)을 가리키는 `--config`가 필요합니다. Claude Code v2.1.195 이상에서 사용 가능합니다. | `claude gateway --config gateway.yaml` |

25| `claude install [version]` | 네이티브 바이너리를 설치하거나 재설치합니다. `2.1.118`과 같은 버전, 또는 `stable` 또는 `latest`를 허용합니다. [특정 버전 설치](/ko/setup#install-a-specific-version) 참조 | `claude install stable` |26| `claude install [version]` | 네이티브 바이너리를 설치하거나 재설치합니다. `2.1.118`과 같은 버전, 또는 `stable` 또는 `latest`를 허용합니다. [특정 버전 설치](/ko/setup#install-a-specific-version) 참조 | `claude install stable` |

26| `claude auth login` | Anthropic 계정에 로그인합니다. `--email`을 사용하여 이메일 주소를 미리 입력하고, `--sso`를 사용하여 SSO 인증을 강제하고, `--console`을 사용하여 Claude 구독 대신 API 사용 청구를 위해 Anthropic Console로 로그인할 수 있습니다 | `claude auth login --console` |27| `claude auth login` | Anthropic 계정에 로그인합니다. `--email`을 사용하여 이메일 주소를 미리 입력하고, `--sso`를 사용하여 SSO 인증을 강제하고, `--console`을 사용하여 Claude 구독 대신 API 사용 청구를 위해 Anthropic Console로 로그인할 수 있습니다 | `claude auth login --console` |

27| `claude auth logout` | Anthropic 계정에서 로그아웃합니다 | `claude auth logout` |28| `claude auth logout` | Anthropic 계정에서 로그아웃합니다 | `claude auth logout` |


93| `--max-budget-usd` | 중지하기 전에 API 호출에 소비할 최대 달러 금액(인쇄 모드만 해당) | `claude -p --max-budget-usd 5.00 "query"` |94| `--max-budget-usd` | 중지하기 전에 API 호출에 소비할 최대 달러 금액(인쇄 모드만 해당) | `claude -p --max-budget-usd 5.00 "query"` |

94| `--max-turns` | 에이전트 턴의 수를 제한합니다(인쇄 모드만 해당). 제한에 도달하면 오류로 종료됩니다. 기본적으로 제한 없음 | `claude -p --max-turns 3 "query"` |95| `--max-turns` | 에이전트 턴의 수를 제한합니다(인쇄 모드만 해당). 제한에 도달하면 오류로 종료됩니다. 기본적으로 제한 없음 | `claude -p --max-turns 3 "query"` |

95| `--mcp-config` | JSON 파일 또는 문자열에서 MCP 서버를 로드합니다(공백으로 구분) | `claude --mcp-config ./mcp.json` |96| `--mcp-config` | JSON 파일 또는 문자열에서 MCP 서버를 로드합니다(공백으로 구분) | `claude --mcp-config ./mcp.json` |

96| `--model` | 최신 모델의 별칭(`sonnet`, `opus`, `haiku` 또는 `fable`) 또는 모델의 전체 이름으로 현재 세션에 대한 모델을 설정합니다. [`model`](/ko/settings#available-settings) 설정 및 [`ANTHROPIC_MODEL`](/ko/model-config#environment-variables)을 재정의합니다 | `claude --model claude-sonnet-4-6` |97| `--model` | 최신 모델의 별칭(`sonnet`, `opus`, `haiku` 또는 `fable`) 또는 모델의 전체 이름으로 현재 세션에 대한 모델을 설정합니다. [`model`](/ko/settings#available-settings) 설정 및 [`ANTHROPIC_MODEL`](/ko/model-config#environment-variables)을 재정의합니다 | `claude --model claude-sonnet-5` |

97| `--name`, `-n` | 세션의 표시 이름을 설정합니다. `/resume`과 터미널 제목에 표시됩니다. `claude --resume <name>`으로 명명된 세션을 재개할 수 있습니다. <br /><br />[`/rename`](/ko/commands)은 세션 중에 이름을 변경하고 프롬프트 표시줄에도 표시합니다 | `claude -n "my-feature-work"` |98| `--name`, `-n` | 세션의 표시 이름을 설정합니다. `/resume`과 터미널 제목에 표시됩니다. `claude --resume <name>`으로 명명된 세션을 재개할 수 있습니다. <br /><br />[`/rename`](/ko/commands)은 세션 중에 이름을 변경하고 프롬프트 표시줄에도 표시합니다 | `claude -n "my-feature-work"` |

98| `--no-chrome` | 이 세션에 대해 [Chrome 브라우저 통합](/ko/chrome)을 비활성화합니다 | `claude --no-chrome` |99| `--no-chrome` | 이 세션에 대해 [Chrome 브라우저 통합](/ko/chrome)을 비활성화합니다 | `claude --no-chrome` |

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

commands.md +2 −0

Details

70| `/cost` | `/usage`의 별칭입니다 |70| `/cost` | `/usage`의 별칭입니다 |

71| `/debug [description]` | **[Skill](/ko/skills#bundled-skills).** 현재 세션에 대해 디버그 로깅을 활성화하고 세션 디버그 로그를 읽어 문제를 해결합니다. 디버그 로깅은 `claude --debug`로 시작하지 않는 한 기본적으로 꺼져 있으므로, 세션 중간에 `/debug`를 실행하면 그 시점부터 로그 캡처를 시작합니다. 선택적으로 분석에 초점을 맞추기 위해 문제를 설명합니다 |71| `/debug [description]` | **[Skill](/ko/skills#bundled-skills).** 현재 세션에 대해 디버그 로깅을 활성화하고 세션 디버그 로그를 읽어 문제를 해결합니다. 디버그 로깅은 `claude --debug`로 시작하지 않는 한 기본적으로 꺼져 있으므로, 세션 중간에 `/debug`를 실행하면 그 시점부터 로그 캡처를 시작합니다. 선택적으로 분석에 초점을 맞추기 위해 문제를 설명합니다 |

72| `/deep-research <question>` | **[Workflow](/ko/workflows#bundled-workflows).** 질문에 대한 웹 검색을 펼치고, 소스를 가져와 교차 검증하고, 인용된 보고서를 종합합니다 |72| `/deep-research <question>` | **[Workflow](/ko/workflows#bundled-workflows).** 질문에 대한 웹 검색을 펼치고, 소스를 가져와 교차 검증하고, 인용된 보고서를 종합합니다 |

73| `/design-login` | `/design-sync`를 위해 claude.ai 계정으로 design-system 액세스를 승인합니다 |

74| `/design-sync [hint]` | **[Skill](/ko/skills#bundled-skills).** 리포지토리의 React design system을 변환하고 [Claude Design](https://claude.ai/design)에 업로드하여 생성하는 디자인이 실제 구성 요소를 사용하도록 합니다. 선택적으로 design system의 이름을 지정합니다. 예를 들어 `/design-sync Acme DS`. 첫 번째 동기화는 모든 구성 요소를 확인하며 큰 리포지토리에서는 몇 시간이 걸릴 수 있습니다. Anthropic API에서 사용 가능합니다. Amazon Bedrock, Google Cloud의 Agent Platform 및 Microsoft Foundry에서는 기본 도구가 claude.ai에 도달할 수 없으므로 명령어를 사용할 수 없습니다 |

73| `/desktop` | 현재 세션을 Claude Code Desktop 앱에서 계속합니다. macOS 및 Windows만 해당하며 Claude 구독이 필요합니다. 별칭: `/app` |75| `/desktop` | 현재 세션을 Claude Code Desktop 앱에서 계속합니다. macOS 및 Windows만 해당하며 Claude 구독이 필요합니다. 별칭: `/app` |

74| `/diff` | 커밋되지 않은 변경 사항과 턴별 diff를 표시하는 대화형 diff 뷰어를 엽니다. 왼쪽/오른쪽 화살표를 사용하여 현재 git diff와 개별 Claude 턴 사이를 전환하고, 위/아래를 사용하여 파일을 탐색합니다 |76| `/diff` | 커밋되지 않은 변경 사항과 턴별 diff를 표시하는 대화형 diff 뷰어를 엽니다. 왼쪽/오른쪽 화살표를 사용하여 현재 git diff와 개별 Claude 턴 사이를 전환하고, 위/아래를 사용하여 파일을 탐색합니다 |

75| `/doctor` | Claude Code 설치 및 설정을 진단하고 확인합니다. 결과는 상태 아이콘과 함께 표시됩니다. `f`를 눌러 Claude가 보고된 문제를 수정하도록 합니다 |77| `/doctor` | Claude Code 설치 및 설정을 진단하고 확인합니다. 결과는 상태 아이콘과 함께 표시됩니다. `f`를 눌러 Claude가 보고된 문제를 수정하도록 합니다 |

computer-use.md +3 −3

Details

112 한 번에 한 세션112 한 번에 한 세션

113</h3>113</h3>

114 114 

115컴퓨터 사용은 활성 상태일 머신 전체 잠금을 유지합니다. 다른 Claude Code 세션이 이미 컴퓨터를 사용 중이면 새로운 시도는 어느 세션이 잠금을 유지하는지 알려주는 메시지와 함께 실패합니다. 먼저 해당 세션을 완료하거나 종료합니다.115컴퓨터 사용은 번째 컴퓨터 사용 작업부터 그 작업을 수행한 세션이 종료될 때까지 머신 전체 잠금을 유지합니다. {/* min-version: 2.1.195 */}v2.1.195부터는 작업을 완료해도 잠금이 해제되지 않으며, 세션을 종료할 때만 해제됩니다. 다른 Claude Code 세션이 이미 컴퓨터를 사용 중이면 새로운 시도는 어느 세션이 잠금을 유지하는지 알려주는 메시지와 함께 실패합니다. 먼저 해당 세션을 종료합니다.

116 116 

117<h3 id="apps-are-hidden-while-claude-works">117<h3 id="apps-are-hidden-while-claude-works">

118 Claude가 작업하는 동안 앱이 숨겨집니다.118 Claude가 작업하는 동안 앱이 숨겨집니다.


134 언제든지 중지134 언제든지 중지

135</h3>135</h3>

136 136 

137Claude가 잠금을 획득하면 macOS 알림이 나타납니다. "Claude가 컴퓨터를 사용 중입니다 · Esc를 눌러 중지하세요." 어디서나 `Esc`를 눌러 현재 작업을 즉시 중단하거나 터미널에서 `Ctrl+C`를 누릅니다. 어느 쪽이든 Claude는 잠금을 해제하고, 앱을 표시하고, 제어를 사용자에게 반환합니다.137Claude가 잠금을 획득하면 macOS 알림이 나타납니다. "Claude가 컴퓨터를 사용 중입니다 · Esc를 눌러 중지하세요." 어디서나 `Esc`를 눌러 현재 작업을 즉시 중단하거나 터미널에서 `Ctrl+C`를 누릅니다. 어느 쪽이든 Claude는 중지하고, 앱을 표시하고, 제어를 사용자에게 반환합니다. 세션은 종료될 때까지 [컴퓨터 사용 잠금](#one-session-at-a-time)을 유지합니다.

138 138 

139Claude가 완료되면 두 번째 알림이 나타납니다.139Claude가 완료되면 두 번째 알림이 나타납니다.

140 140 


223 "컴퓨터 사용이 다른 Claude 세션에서 사용 중입니다"223 "컴퓨터 사용이 다른 Claude 세션에서 사용 중입니다"

224</h3>224</h3>

225 225 

226다른 Claude Code 세션이 잠금을 유지합니다. 해당 세션에서 작업을 완료하거나 종료합니다. 다른 세션이 충돌한 경우 Claude가 프로세스가 더 이상 실행 중이 아님을 감지하면 잠금이 자동으로 해제됩니다.226다른 Claude Code 세션이 잠금을 유지합니다. 해당 세션을 종료합니다. 다른 세션이 충돌한 경우 Claude가 프로세스가 더 이상 실행 중이 아님을 감지하면 잠금이 자동으로 해제됩니다.

227 227 

228<h3 id="macos-permissions-prompt-keeps-reappearing">228<h3 id="macos-permissions-prompt-keeps-reappearing">

229 macOS 권한 프롬프트가 계속 다시 나타남229 macOS 권한 프롬프트가 계속 다시 나타남

Details

1615* **작업 간 지우기**: 관련 없는 작업으로 전환할 때 `/clear`를 실행하세요. 오래된 대화는 다음에 필요한 파일을 밀어내고 모든 메시지에서 토큰을 소비합니다.1615* **작업 간 지우기**: 관련 없는 작업으로 전환할 때 `/clear`를 실행하세요. 오래된 대화는 다음에 필요한 파일을 밀어내고 모든 메시지에서 토큰을 소비합니다.

1616* **대용량 읽기 위임**: 연구를 [서브에이전트](/ko/sub-agents)에 보내 파일 콘텐츠가 사용자의 컨텍스트 윈도우가 아닌 서브에이전트의 컨텍스트 윈도우에 유지되도록 하세요.1616* **대용량 읽기 위임**: 연구를 [서브에이전트](/ko/sub-agents)에 보내 파일 콘텐츠가 사용자의 컨텍스트 윈도우가 아닌 서브에이전트의 컨텍스트 윈도우에 유지되도록 하세요.

1617 1617 

1618더 작은 대화보다 더 큰 윈도우가 필요한 경우 Fable 5, Opus 4.6 이상, Sonnet 4.6은 100만 토큰 컨텍스트 윈도우를 지원합니다. 플랜별 가용성 및 `[1m]` 모델 변형을 선택하는 방법은 [확장 컨텍스트](/ko/model-config#extended-context)를 참조하세요. 압축은 더 큰 제한에서도 동일한 방식으로 작동합니다.1618더 작은 대화보다 더 큰 윈도우가 필요한 경우 Fable 5, Sonnet 5, Opus 4.6 이상, Sonnet 4.6은 100만 토큰 컨텍스트 윈도우를 지원합니다. 플랜별 가용성 및 `[1m]` 모델 변형을 선택하는 방법은 [확장 컨텍스트](/ko/model-config#extended-context)를 참조하세요. Sonnet 5는 선택할 `[1m]` 변형 없이 1M으로 실행됩니다. 자동 압축 임계값 및 LLM 게이트웨이 예외에 대해서는 [Sonnet 5 컨텍스트 윈도우](/ko/model-config#sonnet-5-context-window)를 참조하세요. 압축은 더 큰 제한에서도 동일한 방식으로 작동합니다.

1619 1619 

1620<h2 id="check-your-own-session">1620<h2 id="check-your-own-session">

1621 자신의 세션 확인1621 자신의 세션 확인

costs.md +1 −1

Details

51 사용자 정의 속도 제한이 있는 조직의 경우, 이 워크스페이스의 Claude Code 트래픽은 조직의 전체 API 속도 제한에 포함됩니다. Claude Console의 이 워크스페이스의 한도 페이지에서 [워크스페이스 속도 제한](https://platform.claude.com/docs/ko/api/rate-limits#setting-lower-limits-for-workspaces)을 설정하여 Claude Code의 할당량을 제한하고 다른 프로덕션 워크로드를 보호할 수 있습니다.51 사용자 정의 속도 제한이 있는 조직의 경우, 이 워크스페이스의 Claude Code 트래픽은 조직의 전체 API 속도 제한에 포함됩니다. Claude Console의 이 워크스페이스의 한도 페이지에서 [워크스페이스 속도 제한](https://platform.claude.com/docs/ko/api/rate-limits#setting-lower-limits-for-workspaces)을 설정하여 Claude Code의 할당량을 제한하고 다른 프로덕션 워크로드를 보호할 수 있습니다.

52</Note>52</Note>

53 53 

54Bedrock, Vertex 및 Foundry에서 Claude Code는 클라우드에서 메트릭을 전송하지 않습니다. 이미 Claude Code를 [LLM gateway](/ko/llm-gateway)를 통해 라우팅하는 조직은 게이트웨이가 모든 요청을 보기 때문에 그곳에서 지출을 추적할 수 있습니다.54Bedrock, Vertex 및 Foundry에서 Claude Code는 클라우드에서 메트릭을 전송하지 않습니다. 자체 호스팅된 [Claude apps gateway](/ko/claude-apps-gateway)는 사용자별 사용량 귀속, 토큰 수를 포함한 OTLP 메트릭, 그리고 이러한 제공자에 대한 [사용자별 지출 한도](/ko/claude-apps-gateway-spend-limits)를 제공합니다. 다른 [LLM gateway](/ko/llm-gateway)를 통해 Claude Code를 라우팅하는 조직은 게이트웨이가 모든 요청을 보기 때문에 그곳에서 지출을 추적할 수 있습니다.

55 55 

56<h3 id="rate-limit-recommendations">56<h3 id="rate-limit-recommendations">

57 속도 제한 권장사항57 속도 제한 권장사항

data-usage.md +2 −2

Details

39 39 

40등급 메시지 이후에 "Anthropic이 세션 기록을 확인하여 Claude Code를 개선하는 데 도움을 줄 수 있나요?"라는 별도의 후속 질문이 표시될 수 있습니다. 이는 등급과 구별되는 선택적 두 번째 단계입니다:40등급 메시지 이후에 "Anthropic이 세션 기록을 확인하여 Claude Code를 개선하는 데 도움을 줄 수 있나요?"라는 별도의 후속 질문이 표시될 수 있습니다. 이는 등급과 구별되는 선택적 두 번째 단계입니다:

41 41 

42* **예**: 대화 기록, 모든 서브에이전트 기록, 디스크의 원본 세션 로그 파일을 Anthropic에 업로드합니다. 알려진 API 키 및 토큰 패턴은 업로드 전에 제거됩니다. 소스 코드, 파일 내용 및 기타 대화 내용은 그대로 업로드됩니다. 공유된 기록은 최대 6개월 동안 보관됩니다.42* **예**: 대화 기록, 모든 서브에이전트 기록, 디스크의 원본 세션 로그 파일을 Anthropic에 업로드합니다. 알려진 API 키 및 토큰 패턴은 업로드 전에 제거됩니다. 소스 코드, 파일 내용 및 기타 대화 내용은 그대로 업로드됩니다. 공유된 기록은 최대 6개월 동안 보관됩니다. Bedrock, Vertex AI, Foundry, 로그인된 [Claude apps gateway](/ko/claude-apps-gateway) 세션에서는 Yes가 동일한 페이로드를 `~/.claude/feedback-bundles/` 아래의 로컬 아카이브에 작성합니다. 파일을 전달할 때까지 아무것도 머신을 떠나지 않습니다.

43* **아니오**: 아무것도 보내지 않고 거절합니다.43* **아니오**: 아무것도 보내지 않고 거절합니다.

44* **다시 묻지 않기**: 거절하고 향후 세션에서 이 후속 질문이 표시되지 않도록 합니다.44* **다시 묻지 않기**: 거절하고 향후 세션에서 이 후속 질문이 표시되지 않도록 합니다.

45 45 


127 API 제공자별 기본 동작127 API 제공자별 기본 동작

128</h2>128</h2>

129 129 

130기본적으로 Bedrock, Vertex, Foundry 또는 AWS의 Claude Platform을 사용할 때 오류 보고, 원격 측정 및 버그 보고가 비활성화됩니다. 세션 품질 설문조사 및 WebFetch 도메인 안전 검사는 예외이며 제공자와 관계없이 실행됩니다. `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`을 설정하여 설문조사를 포함한 모든 필수가 아닌 트래픽을 한 번에 거부할 수 있습니다. 이 변수는 WebFetch 검사에 영향을 주지 않으며, WebFetch 검사는 자체 거부 옵션이 있습니다. 다음은 전체 기본 동작입니다:130기본적으로 Bedrock, Vertex, Foundry 또는 AWS의 Claude Platform을 사용할 때 오류 보고, 원격 측정 및 버그 보고가 비활성화됩니다. 세션 품질 설문조사 및 WebFetch 도메인 안전 검사는 예외이며 제공자와 관계없이 실행됩니다. 서명된 [Claude 앱 게이트웨이](/ko/claude-apps-gateway) 세션에서는 게이트웨이 자격 증명 자체에 의해 Anthropic에 대한 사용 분석, 오류 보고 및 설문조사 평가가 비활성화되며, 이를 다시 활성화할 수 있는 설정이 없습니다. `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`을 설정하여 설문조사를 포함한 모든 필수가 아닌 트래픽을 한 번에 거부할 수 있습니다. 이 변수는 WebFetch 검사에 영향을 주지 않으며, WebFetch 검사는 자체 거부 옵션이 있습니다. 다음은 전체 기본 동작입니다:

131 131 

132| 서비스 | Claude API | Vertex API | Bedrock API | Foundry API | AWS의 Claude Platform |132| 서비스 | Claude API | Vertex API | Bedrock API | Foundry API | AWS의 Claude Platform |

133| ------------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |133| ------------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |

Details

19특정 카테고리에 대한 세부 정보는 전용 명령으로 팔로우업합니다:19특정 카테고리에 대한 세부 정보는 전용 명령으로 팔로우업합니다:

20 20 

21| 명령 | 표시 내용 |21| 명령 | 표시 내용 |

22| :--------------- | :------------------------------------------------------------- |22| :--------------- | :------------------------------------------------------------------------------------------------------------------------------------ |

23| `/memory` | 로드된 `CLAUDE.md` 및 규칙 파일, 자동 메모리 항목 |23| `/memory` | 로드된 `CLAUDE.md` 및 규칙 파일, 자동 메모리 항목 |

24| `/skills` | 프로젝트, 사용자 및 플러그인 소스의 사용 가능한 스킬 |24| `/skills` | 프로젝트, 사용자 및 플러그인 소스의 사용 가능한 스킬 |

25| `/agents` | 구성된 서브에이전트 및 해당 설정 |25| `/agents` | 구성된 서브에이전트 및 해당 설정 |

26| `/hooks` | 활성 훅 구성 |26| `/hooks` | 활성 훅 구성 |

27| `/mcp` | 연결된 MCP 서버 및 해당 상태 |27| `/mcp` | 연결된 MCP 서버 및 해당 상태 |

28| `/permissions` | 현재 적용 중인 허용 및 거부 규칙 |28| `/permissions` | 현재 적용 중인 허용 및 거부 규칙 |

29| `/doctor` | 구성 진단: 잘못된 키, 스키마 오류, 설치 상태 |29| `/doctor` | 구성 진단: 잘못된 키, 스키마 오류, 설치 상태. {/* min-version: 2.1.196 */}v2.1.196부터 동일한 범위에서 정의된 중복 [서브에이전트](/ko/sub-agents) 이름도 보고하며 활성 상태인 것을 표시합니다 |

30| `/debug [issue]` | 세션에 대해 디버그 로깅을 활성화하고 Claude가 로그 출력 및 설정 경로를 사용하여 진단하도록 프롬프트합니다 |30| `/debug [issue]` | 세션에 대해 디버그 로깅을 활성화하고 Claude가 로그 출력 및 설정 경로를 사용하여 진단하도록 프롬프트합니다 |

31| `/status` | 활성 설정 소스, 관리 설정이 적용 중인지 여부 포함 |31| `/status` | 활성 설정 소스, 관리 설정이 적용 중인지 여부 포함 |

32 32 

desktop.md +10 −6

Details

8 8 

9Claude Desktop 앱에는 세 개의 탭이 있습니다: 대화를 위한 **Chat**, [Dispatch 및 더 긴 에이전트 작업](https://claude.com/product/cowork)을 위한 **Cowork**, 소프트웨어 개발을 위한 **Code**입니다. 이 페이지는 Code 탭에 대한 참고 자료입니다.9Claude Desktop 앱에는 세 개의 탭이 있습니다: 대화를 위한 **Chat**, [Dispatch 및 더 긴 에이전트 작업](https://claude.com/product/cowork)을 위한 **Cowork**, 소프트웨어 개발을 위한 **Code**입니다. 이 페이지는 Code 탭에 대한 참고 자료입니다.

10 10 

11<CardGroup cols={2}>11<CardGroup cols={3}>

12 <Card title="Download for macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">12 <Card title="Download for macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">

13 Universal build for Intel and Apple Silicon13 Universal build for Intel and Apple Silicon

14 </Card>14 </Card>


16 <Card title="Download for Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">16 <Card title="Download for Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">

17 For x64 processors17 For x64 processors

18 </Card>18 </Card>

19 

20 <Card title="Get Claude for Linux (beta)" icon="linux" href="/en/desktop-linux">

21 apt or .deb for Ubuntu and Debian

22 </Card>

19</CardGroup>23</CardGroup>

20 24 

21For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). The desktop app is not available on Linux; use the [CLI](/en/quickstart) instead.25For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). On Linux, install with apt; see [Claude Desktop on Linux](/en/desktop-linux).

22 26 

23설치 후 Claude를 실행하고, 로그인한 다음 **Code** 탭을 클릭합니다. Windows에서 처음 열 때는 [Git for Windows](https://git-scm.com/downloads/win)가 설치되어 있어야 하며, 설치 후 앱을 다시 시작합니다. 첫 번째 세션의 전체 안내는 [시작하기 가이드](/ko/desktop-quickstart)를 참조하세요.27설치 후 Claude를 실행하고, 로그인한 다음 **Code** 탭을 클릭합니다. Windows에서 처음 열 때는 [Git for Windows](https://git-scm.com/downloads/win)가 설치되어 있어야 하며, 설치 후 앱을 다시 시작합니다. 첫 번째 세션의 전체 안내는 [시작하기 가이드](/ko/desktop-quickstart)를 참조하세요.

24 28 


88 92 

89<span id="auto-mode-availability" />93<span id="auto-mode-availability" />

90 94 

91Auto mode는 Anthropic API의 모든 사용자에게 제공되는 연구 미리보기이며 Claude Opus 4.6 이상 또는 Sonnet 4.6이 필요합니다. Google Cloud Vertex AI로 라우팅하는 엔터프라이즈 배포에서는 [`CLAUDE_CODE_ENABLE_AUTO_MODE`를 설정](/ko/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry)할 때까지 auto mode가 꺼져 있으며, 거기서는 Claude Opus 4.7과 Opus 4.8만 지원됩니다.95Auto mode는 Anthropic API의 모든 사용자에게 제공되는 연구 미리보기이며 Claude Opus 4.6 이상 또는 Sonnet 4.6 이상이 필요합니다. Google Cloud Vertex AI로 라우팅하는 엔터프라이즈 배포에서는 [`CLAUDE_CODE_ENABLE_AUTO_MODE`를 설정](/ko/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry)할 때까지 auto mode가 꺼져 있으며, 거기서는 Claude Sonnet 5, Opus 4.7, Opus 4.8만 지원됩니다.

92 96 

93<Tip title="모범 사례">97<Tip title="모범 사례">

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


600 604 

601로컬 세션 및 개발 서버에 대한 환경 변수를 설정하려면 프롬프트 상자의 환경 드롭다운을 열고 **Local** 위에 마우스를 올린 다음 기어 아이콘을 클릭하여 로컬 환경 편집기를 엽니다. 여기에 저장한 변수는 머신에 암호화되어 저장되며 시작하는 모든 로컬 세션 및 미리보기 서버에 적용됩니다. `~/.claude/settings.json` 파일의 `env` 키에 변수를 추가할 수도 있습니다. 단, 이는 Claude 세션에만 도달하고 개발 서버에는 도달하지 않습니다. 지원되는 변수의 전체 목록은 [환경 변수](/ko/env-vars)를 참조하세요.605로컬 세션 및 개발 서버에 대한 환경 변수를 설정하려면 프롬프트 상자의 환경 드롭다운을 열고 **Local** 위에 마우스를 올린 다음 기어 아이콘을 클릭하여 로컬 환경 편집기를 엽니다. 여기에 저장한 변수는 머신에 암호화되어 저장되며 시작하는 모든 로컬 세션 및 미리보기 서버에 적용됩니다. `~/.claude/settings.json` 파일의 `env` 키에 변수를 추가할 수도 있습니다. 단, 이는 Claude 세션에만 도달하고 개발 서버에는 도달하지 않습니다. 지원되는 변수의 전체 목록은 [환경 변수](/ko/env-vars)를 참조하세요.

602 606 

603[Extended thinking](/ko/model-config#extended-thinking)은 기본적으로 활성화되어 있으며, 복잡한 추론 작업의 성능을 향상시키지만 추가 토큰을 사용합니다. 생각을 완전히 비활성화하려면 로컬 환경 편집기에서 `MAX_THINKING_TOKENS`을 `0`으로 설정합니다. [적응형 추론](/ko/model-config#adjust-effort-level)이 있는 모델에서는 적응형 추론이 생각 깊이를 제어하기 때문에 다른 `MAX_THINKING_TOKENS` 값은 무시됩니다. Opus 4.6 및 Sonnet 4.6에서는 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING`을 `1`로 설정하여 고정 생각 예산을 사용합니다. Opus 4.7 이상은 항상 적응형 추론을 사용하며 고정 예산 모드가 없습니다.607[Extended thinking](/ko/model-config#extended-thinking)은 기본적으로 활성화되어 있으며, 복잡한 추론 작업의 성능을 향상시키지만 추가 토큰을 사용합니다. 생각을 완전히 비활성화하려면 로컬 환경 편집기에서 `MAX_THINKING_TOKENS`을 `0`으로 설정합니다. [third-party providers](/ko/third-party-integrations)에서 `0`은 `thinking` 매개변수를 대신 생략하며, 적응형 추론 모델은 여전히 생각할 수 있습니다. [적응형 추론](/ko/model-config#adjust-effort-level)이 있는 모델에서는 적응형 추론이 생각 깊이를 제어하기 때문에 다른 `MAX_THINKING_TOKENS` 값은 무시됩니다. Opus 4.6 및 Sonnet 4.6에서는 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING`을 `1`로 설정하여 고정 생각 예산을 사용합니다. Fable 5, Sonnet 5, Opus 4.7 이상은 항상 적응형 추론을 사용하며 고정 예산 모드가 없습니다.

604 608 

605<h3 id="cloud-sessions">609<h3 id="cloud-sessions">

606 클라우드 세션610 클라우드 세션


822다음 기능은 CLI 또는 VS Code 확장에서만 사용 가능하며, 명시된 경우를 제외하고는 그렇습니다:826다음 기능은 CLI 또는 VS Code 확장에서만 사용 가능하며, 명시된 경우를 제외하고는 그렇습니다:

823 827 

824* **Third-party providers**: Desktop은 Anthropic의 API에 기본적으로 연결됩니다. 엔터프라이즈 배포는 [관리 설정](https://support.claude.com/en/articles/12622667-enterprise-configuration)을 통해 Vertex AI 및 게이트웨이 공급자를 구성할 수 있습니다. CLI에서 Bedrock 또는 Foundry의 경우 [빠른 시작](/ko/quickstart)을 참조하세요. 위 섹션의 예외로, [Cowork on 3P 연구 미리보기](https://claude.com/docs/cowork/3p/overview)는 Code 탭을 Bedrock, Vertex AI, Foundry 또는 자체 호스팅 LLM 게이트웨이에서 실행합니다.828* **Third-party providers**: Desktop은 Anthropic의 API에 기본적으로 연결됩니다. 엔터프라이즈 배포는 [관리 설정](https://support.claude.com/en/articles/12622667-enterprise-configuration)을 통해 Vertex AI 및 게이트웨이 공급자를 구성할 수 있습니다. CLI에서 Bedrock 또는 Foundry의 경우 [빠른 시작](/ko/quickstart)을 참조하세요. 위 섹션의 예외로, [Cowork on 3P 연구 미리보기](https://claude.com/docs/cowork/3p/overview)는 Code 탭을 Bedrock, Vertex AI, Foundry 또는 자체 호스팅 LLM 게이트웨이에서 실행합니다.

825* **Linux**: 데스크톱 앱은 macOS Windows에서만 사용 가능합니다. Linux에서는 [CLI](/ko/quickstart) 사용합니다.829* **Linux (베타)**: 컴퓨터 사용은 아직 Linux 데스크톱 앱에서 사용할 없습니다. [Linux에서 Claude Desktop](/ko/desktop-linux) 참조하세요.

826* **Inline code suggestions**: Desktop은 자동 완성 스타일 제안을 제공하지 않습니다. 대화형 프롬프트 및 명시적 코드 변경을 통해 작동합니다.830* **Inline code suggestions**: Desktop은 자동 완성 스타일 제안을 제공하지 않습니다. 대화형 프롬프트 및 명시적 코드 변경을 통해 작동합니다.

827* **Agent teams**: 서로 메시지를 주고받는 병렬 Claude Code 세션은 [CLI](/ko/agent-teams)에서 사용 가능하며 Desktop에서는 사용할 수 없습니다. 한 세션 내에서 다중 에이전트 작업의 경우 [동적 워크플로우](/ko/workflows)를 사용합니다. 이는 Desktop에서 실행됩니다.831* **Agent teams**: 서로 메시지를 주고받는 병렬 Claude Code 세션은 [CLI](/ko/agent-teams)에서 사용 가능하며 Desktop에서는 사용할 수 없습니다. 한 세션 내에서 다중 에이전트 작업의 경우 [동적 워크플로우](/ko/workflows)를 사용합니다. 이는 Desktop에서 실행됩니다.

828* **Terminal-dialog commands**: `/permissions`, `/config`, `/agents`, `/doctor`와 같이 터미널에서 대화형 패널을 여는 기본 제공 명령은 Code 탭에서 사용할 수 없으며 `isn't available in this environment`로 응답합니다. [설정 파일](/ko/settings)을 직접 편집하여 권한 규칙 및 구성을 관리하거나 독립 실행형 CLI에서 명령을 실행합니다.832* **Terminal-dialog commands**: `/permissions`, `/config`, `/agents`, `/doctor`와 같이 터미널에서 대화형 패널을 여는 기본 제공 명령은 Code 탭에서 사용할 수 없으며 `isn't available in this environment`로 응답합니다. [설정 파일](/ko/settings)을 직접 편집하여 권한 규칙 및 구성을 관리하거나 독립 실행형 CLI에서 명령을 실행합니다.


862앱이 열리지만 빈 화면이나 응답하지 않는 화면이 표시되면:866앱이 열리지만 빈 화면이나 응답하지 않는 화면이 표시되면:

863 867 

8641. 앱을 다시 시작합니다.8681. 앱을 다시 시작합니다.

8652. 보류 중인 업데이트를 확인합니다. 앱은 시작 시 자동으로 업데이트됩니다.8692. 보류 중인 업데이트를 확인합니다. macOS 및 Windows에서 앱은 시작 시 자동으로 업데이트됩니다. Linux에서는 [Claude Desktop on Linux](/ko/desktop-linux)에 설명된 대로 apt를 통해 업데이트합니다.

8663. Windows에서 Event Viewer의 **Windows Logs → Application** 아래에서 충돌 로그를 확인합니다.8703. Windows에서 Event Viewer의 **Windows Logs → Application** 아래에서 충돌 로그를 확인합니다.

867 871 

868<h3 id="failed-to-load-session">872<h3 id="failed-to-load-session">

desktop-linux.md +113 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Linux의 Claude Desktop (베타)

6 

7> Ubuntu 및 Debian에서 Claude 데스크톱 앱 설치 및 업데이트

8 

9<Note>

10 Claude 데스크톱 앱의 Linux 지원은 베타 버전입니다. Chat, Cowork 및 Code 탭을 모두 사용할 수 있습니다.

11</Note>

12 

13Linux의 데스크톱 앱은 macOS 및 Windows와 동일한 Chat, Cowork 및 Claude Code 환경을 제공합니다: 병렬 세션, 시각적 diff 검토, 통합 터미널 및 편집기, 라이브 앱 미리보기. 전체 기능 참조는 [Claude Code Desktop 사용](/ko/desktop)을 참조하세요.

14 

15<h2 id="requirements">

16 요구 사항

17</h2>

18 

19* Ubuntu 22.04 이상 또는 Debian 12 이상

20* x86\_64 또는 arm64

21 

22이러한 요구 사항을 충족하는 다른 Debian 기반 배포판도 작동할 수 있지만 공식적으로 테스트되지 않았습니다.

23 

24<h2 id="install">

25 설치

26</h2>

27 

28시스템의 정기적인 패키지 업데이트를 통해 업데이트가 도착하도록 Anthropic의 apt 저장소에서 설치하세요.

29 

30<Steps>

31 <Step title="Anthropic의 apt 저장소 추가">

32 Anthropic의 서명 키를 다운로드합니다:

33 

34 ```bash theme={null}

35 sudo curl -fsSLo /usr/share/keyrings/claude-desktop-archive-keyring.asc https://downloads.claude.ai/claude-desktop/key.asc

36 ```

37 

38 저장소를 등록합니다:

39 

40 ```bash theme={null}

41 echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/claude-desktop-archive-keyring.asc] https://downloads.claude.ai/claude-desktop/apt/stable stable main" | sudo tee /etc/apt/sources.list.d/claude-desktop.list

42 ```

43 </Step>

44 

45 <Step title="패키지 설치">

46 ```bash theme={null}

47 sudo apt update && sudo apt install claude-desktop

48 ```

49 </Step>

50 

51 <Step title="실행 및 로그인">

52 애플리케이션 런처에서 **Claude**를 실행하거나 터미널에서 `claude-desktop`을 실행한 후 Anthropic 계정으로 로그인합니다.

53 </Step>

54</Steps>

55 

56<Accordion title="서명 키 확인">

57 다운로드한 서명 키가 Anthropic에 속하는지 확인할 수 있습니다:

58 

59 ```bash theme={null}

60 gpg --show-keys /usr/share/keyrings/claude-desktop-archive-keyring.asc

61 ```

62 

63 지문은 `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE`여야 합니다.

64</Accordion>

65 

66<h3 id="install-from-a-downloaded-file">

67 다운로드한 파일에서 설치

68</h3>

69 

70apt 저장소를 사용할 수 없는 경우 [claude.com/download](https://claude.com/download)에서 아키텍처(x64 또는 arm64)에 맞는 `.deb` 패키지를 다운로드한 후 소프트웨어 설치 프로그램으로 열거나 다운로드 디렉터리에서 실행합니다:

71 

72```bash theme={null}

73sudo apt install ./claude-desktop_*.deb

74```

75 

76이런 방식으로 설치된 `.deb`는 업데이트를 받지 않습니다. apt를 통해 업데이트를 받으려면 위에 표시된 대로 저장소를 추가하거나 패키지가 `/etc/apt/sources.list.d/claude-desktop.list`에 작성하는 자리 표시자 항목의 `deb` 줄을 주석 해제합니다.

77 

78<h2 id="update">

79 업데이트

80</h2>

81 

82데스크톱 앱은 Linux에서 자동으로 업데이트되지 않습니다. 업데이트는 시스템의 정기적인 패키지 업데이트와 함께 도착합니다:

83 

84```bash theme={null}

85sudo apt update && sudo apt upgrade

86```

87 

88배포판의 그래픽 소프트웨어 업데이터도 새 버전을 선택합니다.

89 

90<h2 id="uninstall">

91 제거

92</h2>

93 

94```bash theme={null}

95sudo apt remove claude-desktop

96```

97 

98이렇게 하면 앱과 함께 서명 키가 제거되므로 설치 중에 저장소 항목을 추가한 경우 이것도 제거합니다:

99 

100```bash theme={null}

101sudo rm /etc/apt/sources.list.d/claude-desktop.list

102```

103 

104<h2 id="what’s-not-in-the-linux-beta-yet">

105 Linux 베타에서 아직 제공되지 않는 기능

106</h2>

107 

108* **Computer Use**: [앱 및 화면 제어](/ko/desktop#let-claude-use-your-computer)는 Linux에서 사용할 수 없습니다.

109* **Dictation**: 음성 입력은 Linux 데스크톱 앱에서 사용할 수 없습니다. 대신 CLI에서 [음성 받아쓰기](/ko/voice-dictation)를 사용하세요.

110* **Quick Entry 전역 핫키**: X11에서 작동합니다. 기본 Wayland에서는 데스크톱 환경의 GlobalShortcuts 포털이 필요합니다.

111* **Fedora 및 RHEL**: 현재 Debian 기반 배포판만 지원됩니다. 추가 배포판에 대한 지원은 향후 제공될 예정입니다.

112 

113데스크톱 앱에서 아직 사용할 수 없는 기능의 경우 [CLI](/ko/quickstart)는 동일한 Claude Code 엔진을 실행하며 더 넓은 범위의 Linux 배포판을 지원합니다. [시스템 요구 사항](/ko/setup#system-requirements)을 참조하세요.

Details

8 8 

9데스크톱 앱은 여러 세션을 나란히 실행하도록 구축된 그래픽 인터페이스를 갖춘 Claude Code를 제공합니다: 병렬 작업을 관리하기 위한 사이드바, 통합 터미널 및 파일 편집기가 있는 드래그 앤 드롭 레이아웃, 시각적 diff 검토, 라이브 앱 미리보기, GitHub PR 모니터링 및 자동 병합, 그리고 예약된 작업입니다. 터미널이 필요하지 않습니다.9데스크톱 앱은 여러 세션을 나란히 실행하도록 구축된 그래픽 인터페이스를 갖춘 Claude Code를 제공합니다: 병렬 작업을 관리하기 위한 사이드바, 통합 터미널 및 파일 편집기가 있는 드래그 앤 드롭 레이아웃, 시각적 diff 검토, 라이브 앱 미리보기, GitHub PR 모니터링 및 자동 병합, 그리고 예약된 작업입니다. 터미널이 필요하지 않습니다.

10 10 

11<CardGroup cols={2}>11<CardGroup cols={3}>

12 <Card title="Download for macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">12 <Card title="Download for macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">

13 Universal build for Intel and Apple Silicon13 Universal build for Intel and Apple Silicon

14 </Card>14 </Card>


16 <Card title="Download for Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">16 <Card title="Download for Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">

17 For x64 processors17 For x64 processors

18 </Card>18 </Card>

19 

20 <Card title="Get Claude for Linux (beta)" icon="linux" href="/en/desktop-linux">

21 apt or .deb for Ubuntu and Debian

22 </Card>

19</CardGroup>23</CardGroup>

20 24 

21For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). The desktop app is not available on Linux; use the [CLI](/en/quickstart) instead.25For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). On Linux, install with apt; see [Claude Desktop on Linux](/en/desktop-linux).

22 26 

23<Note>27<Note>

24 Claude Code는 [Pro, Max, Team, 또는 Enterprise 구독](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing)이 필요합니다.28 Claude Code는 [Pro, Max, Team, 또는 Enterprise 구독](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing)이 필요합니다.


40 44 

41<Steps>45<Steps>

42 <Step title="설치 및 로그인">46 <Step title="설치 및 로그인">

43 위의 링크에서 플랫폼에 맞는 설치 프로그램을 다운로드하고 실행합니다. macOS의 Applications 폴더 또는 Windows의 Start 메뉴에서 Claude를 실행한 다음 Anthropic 계정으로 로그인합니다.47 macOS와 Windows에서는 위의 링크에서 설치 프로그램을 다운로드하고 실행합니다. Linux에서는 [Linux의 Claude Desktop](/ko/desktop-linux)에서 설치 단계를 따릅니다. macOS의 Applications 폴더, Windows의 Start 메뉴 또는 Linux의 애플리케이션 런처에서 Claude를 실행한 다음 Anthropic 계정으로 로그인합니다.

44 </Step>48 </Step>

45 49 

46 <Step title="Code 탭 열기">50 <Step title="Code 탭 열기">

Details

246 246 

247전체 URL을 제공하여 모든 git 저장소를 추가합니다. 이는 GitLab, Bitbucket 및 자체 호스팅 서버를 포함한 모든 Git 호스트에서 작동합니다. `.git` 접미사를 포함하여 Claude Code가 저장소를 복제하도록 하고 URL을 호스팅된 `marketplace.json` 파일의 직접 링크로 처리하지 않도록 합니다.247전체 URL을 제공하여 모든 git 저장소를 추가합니다. 이는 GitLab, Bitbucket 및 자체 호스팅 서버를 포함한 모든 Git 호스트에서 작동합니다. `.git` 접미사를 포함하여 Claude Code가 저장소를 복제하도록 하고 URL을 호스팅된 `marketplace.json` 파일의 직접 링크로 처리하지 않도록 합니다.

248 248 

249`https://` 접두사도 포함합니다. Claude Code v2.1.196 이상은 `gitlab.com/company/plugins.git`과 같이 접두사 없이 입력된 호스트를 잘못된 GitHub `owner/repo` 단축형으로 거부하며, 오류 메시지에서 접두사를 추가하도록 알려줍니다. 이전 버전은 이를 GitHub 저장소 경로로 잘못 읽고 복제 시간에 실패합니다.

250 

249HTTPS 사용:251HTTPS 사용:

250 252 

251```shell theme={null}253```shell theme={null}


298 플러그인 설치300 플러그인 설치

299</h2>301</h2>

300 302 

301마켓플레이스를 추가한 후 플러그인을 직접 설치할 수 있습니다(기본적으로 사용자 범위로 설치됨):303마켓플레이스를 추가한 후 플러그인을 직접 설치할 수 있습니다:

302 304 

303```shell theme={null}305```shell theme={null}

304/plugin install plugin-name@marketplace-name306/plugin install plugin-name@marketplace-name

305```307```

306 308 

307다른 [설치 범위](/ko/settings#configuration-scopes)를 선택하려면 대화형 UI를 사용하세요. `/plugin`을 실행하고 **Discover** 탭으로 이동한 후 플러그인에서 **Enter**를 누르세요. 다음 옵션이 표시됩니다:309 명령어는 플러그인의 세부 정보를 열며, 여기서 [설치 범위](/ko/settings#configuration-scopes)를 선택합니다. `/plugin`을 실행하고 **Discover** 탭으로 이동한 후 플러그인에서 **Enter**를 누를 때도 동일한 선택지가 표시됩니다:

308 310 

309* **사용자 범위**(기본값): 모든 프로젝트에서 자신을 위해 설치311* **사용자 범위**(기본값): 모든 프로젝트에서 자신을 위해 설치

310* **프로젝트 범위**: 이 저장소의 모든 협력자를 위해 설치(`.claude/settings.json`에 추가)312* **프로젝트 범위**: 이 저장소의 모든 협력자를 위해 설치(`.claude/settings.json`에 추가)

311* **로컬 범위**: 이 저장소에서만 자신을 위해 설치(협력자와 공유되지 않음)313* **로컬 범위**: 이 저장소에서만 자신을 위해 설치(협력자와 공유되지 않음)

312 314 

315대화형 단계 없이 설치하려면 [`claude plugin install`](/ko/plugins-reference#plugin-install) 셸 명령어를 사용하세요. 이 명령어는 `--scope`를 전달하지 않으면 사용자 범위로 설치됩니다.

316 

313**관리됨** 범위의 플러그인도 볼 수 있습니다. 이러한 플러그인은 관리자가 [관리 설정](/ko/settings#settings-files)을 통해 설치하며 수정할 수 없습니다.317**관리됨** 범위의 플러그인도 볼 수 있습니다. 이러한 플러그인은 관리자가 [관리 설정](/ko/settings#settings-files)을 통해 설치하며 수정할 수 없습니다.

314 318 

315<Warning>319<Warning>


328* 입력하여 플러그인 이름 또는 설명으로 필터링332* 입력하여 플러그인 이름 또는 설명으로 필터링

329* Enter를 눌러 플러그인의 세부 정보 보기를 열고 활성화, 비활성화 또는 제거333* Enter를 눌러 플러그인의 세부 정보 보기를 열고 활성화, 비활성화 또는 제거

330 334 

331세부 정보 보기는 플러그인이 제공하는 구성 요소를 표시합니다: 명령어, skills, agents, hooks, MCP servers 및 LSP servers. 동일한 인벤토리는 `claude plugin details` 명령어로 명령줄에서도 사용할 수 있습니다.335세부 정보 보기는 플러그인이 제공하는 구성 요소를 표시합니다: commands, skills, agents, hooks, MCP servers 및 LSP servers. 동일한 인벤토리는 `claude plugin details` 명령어로 명령줄에서도 사용할 수 있습니다.

332 336 

333Claude Code v2.1.187 이상에서는 Installed 탭에 **Not used recently** 그룹이 추가되어 마켓플레이스에서 직접 설치했지만 최소 2주 동안 그리고 최소 10개 세션에서 호출하지 않은 플러그인을 표시하며, 세부 정보 보기는 각 플러그인에 대한 **Last used** 줄을 표시합니다. 이를 사용하여 더 이상 사용하지 않지만 여전히 시작 및 컨텍스트 비용을 추가하는 플러그인을 찾은 다음 비활성화하거나 제거합니다.337Claude Code v2.1.187 이상에서는 Installed 탭에 **Not used recently** 그룹이 추가되어 마켓플레이스에서 직접 설치했지만 최소 2주 동안 그리고 최소 10개 세션에서 호출하지 않은 플러그인을 표시하며, 세부 정보 보기는 각 플러그인에 대한 **Last used** 줄을 표시합니다. 이를 사용하여 더 이상 사용하지 않지만 여전히 시작 및 컨텍스트 비용을 추가하는 플러그인을 찾은 다음 비활성화하거나 제거합니다.

334 338 


358/plugin enable plugin-name@marketplace-name362/plugin enable plugin-name@marketplace-name

359```363```

360 364 

365이 식별자에서 `plugin-name`은 [마켓플레이스 항목](/ko/plugin-marketplaces#plugin-entries)의 플러그인 `name`이며, 플러그인 자체의 `plugin.json`의 `name`과 다를 수 있습니다.

366 

367Claude Code v2.1.195부터 `/plugin` 인터페이스의 **Enable** 및 **Disable**은 두 이름이 다른 플러그인에 대해 작동하며, `/plugin enable` 및 `/plugin disable`은 두 이름 중 하나를 허용합니다. 이전 버전에서 이러한 플러그인을 비활성화하면 Claude Code는 `already disabled`를 보고하고 활성화된 상태로 둡니다.

368 

361플러그인을 완전히 제거합니다:369플러그인을 완전히 제거합니다:

362 370 

363```shell theme={null}371```shell theme={null}


464 472 

465팀 관리자는 `.claude/settings.json`에 마켓플레이스 구성을 추가하여 프로젝트에 대한 자동 마켓플레이스 설치를 설정할 수 있습니다. 팀 멤버가 저장소 폴더를 신뢰하면 Claude Code는 이러한 마켓플레이스 및 플러그인을 설치하도록 요청합니다.473팀 관리자는 `.claude/settings.json`에 마켓플레이스 구성을 추가하여 프로젝트에 대한 자동 마켓플레이스 설치를 설정할 수 있습니다. 팀 멤버가 저장소 폴더를 신뢰하면 Claude Code는 이러한 마켓플레이스 및 플러그인을 설치하도록 요청합니다.

466 474 

475Claude Code v2.1.195부터 이 설치 단계는 플러그인을 로드하는 모든 경로에 적용됩니다. 프로젝트의 `.claude/settings.json`만으로 활성화되고 GitHub 저장소 또는 npm 패키지와 같은 외부 소스에서 제공되는 플러그인은 팀 멤버가 설치할 때까지 로드되지 않습니다. 그때까지 Claude Code는 플러그인이 설치되지 않았다고 보고하고 실행할 `claude plugin install` 명령을 표시합니다.

476 

467프로젝트의 `.claude/settings.json`에 `extraKnownMarketplaces`를 추가합니다:477프로젝트의 `.claude/settings.json`에 `extraKnownMarketplaces`를 추가합니다:

468 478 

469```json theme={null}479```json theme={null}


499 509 

5001. **버전 확인**: `claude --version`을 실행하여 설치된 항목을 확인합니다.5101. **버전 확인**: `claude --version`을 실행하여 설치된 항목을 확인합니다.

5012. **Claude Code 업데이트**:5112. **Claude Code 업데이트**:

502 * **Homebrew**: `brew upgrade claude-code`(또는 해당 cask를 설치한 경우 `brew upgrade claude-code@latest`)512 * **Homebrew**: `brew upgrade claude-code`, 또는 해당 cask를 설치한 경우 `brew upgrade claude-code@latest`

503 * **npm**: `npm install -g @anthropic-ai/claude-code@latest`513 * **npm**: `npm install -g @anthropic-ai/claude-code@latest`

504 * **네이티브 설치 프로그램**: [설정](/ko/setup)에서 설치 명령어를 다시 실행합니다.514 * **네이티브 설치 프로그램**: [설정](/ko/setup)에서 설치 명령어를 다시 실행합니다.

5053. **Claude Code 재시작**: 업데이트 후 터미널을 재시작하고 `claude`를 다시 실행합니다.5153. **Claude Code 재시작**: 업데이트 후 터미널을 재시작하고 `claude`를 다시 실행합니다.


509</h3>519</h3>

510 520 

511* **마켓플레이스가 로드되지 않음**: URL에 액세스할 수 있고 `.claude-plugin/marketplace.json`이 경로에 있는지 확인합니다.521* **마켓플레이스가 로드되지 않음**: URL에 액세스할 수 있고 `.claude-plugin/marketplace.json`이 경로에 있는지 확인합니다.

512* **플러그인 설치 실패**: 플러그인 소스 URL에 액세스할 수 있고 저장소가 공개되어 있거나(또는 액세스 권한이 있는지) 확인합니다.522* **플러그인 설치 실패**: 플러그인 소스 URL에 액세스할 수 있고 저장소가 공개되어 있거나 액세스 권한이 있는지 확인합니다.

513* **설치 후 파일을 찾을 수 없음**: 플러그인은 캐시에 복사되므로 플러그인 디렉토리 외부의 파일을 참조하는 경로는 작동하지 않습니다.523* **설치 후 파일을 찾을 수 없음**: 플러그인은 캐시에 복사되므로 플러그인 디렉토리 외부의 파일을 참조하는 경로는 작동하지 않습니다.

514* **플러그인 skills가 나타나지 않음**: `rm -rf ~/.claude/plugins/cache`로 캐시를 지우고, Claude Code를 재시작한 후 플러그인을 다시 설치합니다.524* **플러그인 skills가 나타나지 않음**: `rm -rf ~/.claude/plugins/cache`로 캐시를 지우고, Claude Code를 재시작한 후 플러그인을 다시 설치합니다.

515 525 

env-vars.md +15 −9

Details

102| `ANTHROPIC_AWS_API_KEY` | [Claude Platform on AWS](/ko/claude-platform-on-aws)의 워크스페이스 API 키이며, AWS 콘솔에서 생성됩니다. `x-api-key`로 전송되며 AWS SigV4보다 우선합니다. |102| `ANTHROPIC_AWS_API_KEY` | [Claude Platform on AWS](/ko/claude-platform-on-aws)의 워크스페이스 API 키이며, AWS 콘솔에서 생성됩니다. `x-api-key`로 전송되며 AWS SigV4보다 우선합니다. |

103| `ANTHROPIC_AWS_BASE_URL` | [Claude Platform on AWS](/ko/claude-platform-on-aws) 엔드포인트 URL을 재정의합니다. 사용자 정의 리전 또는 [LLM 게이트웨이](/ko/llm-gateway)를 통해 라우팅할 때 사용합니다. 기본값은 `https://aws-external-anthropic.{AWS_REGION}.api.aws`입니다. |103| `ANTHROPIC_AWS_BASE_URL` | [Claude Platform on AWS](/ko/claude-platform-on-aws) 엔드포인트 URL을 재정의합니다. 사용자 정의 리전 또는 [LLM 게이트웨이](/ko/llm-gateway)를 통해 라우팅할 때 사용합니다. 기본값은 `https://aws-external-anthropic.{AWS_REGION}.api.aws`입니다. |

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

105| `ANTHROPIC_BASE_URL` | API 엔드포인트를 재정의하여 프록시 또는 게이트웨이를 통해 요청을 라우팅합니다. 비자사 호스트로 설정하면 [MCP 도구 검색](/ko/mcp#scale-with-mcp-tool-search)이 기본적으로 비활성화됩니다. 프록시가 `tool_reference` 블록을 전달하면 `ENABLE_TOOL_SEARCH=true`로 설정합니다. |105| `ANTHROPIC_BASE_URL` | API 엔드포인트를 재정의하여 프록시 또는 게이트웨이를 통해 요청을 라우팅합니다. 비자사 호스트로 설정하면 [MCP 도구 검색](/ko/mcp#scale-with-mcp-tool-search)이 기본적으로 비활성화됩니다. 프록시가 `tool_reference` 블록을 전달하면 `ENABLE_TOOL_SEARCH=true`로 설정합니다. {/* min-version: 2.1.196 */}v2.1.196부터 [Remote Control](/ko/remote-control#requirements)은 이것이 `api.anthropic.com` 이외의 호스트를 가리킬 때 비활성화되며, Bedrock, Vertex AI, Foundry의 동작과 일치합니다. |

106| `ANTHROPIC_BEDROCK_BASE_URL` | Bedrock 엔드포인트 URL을 재정의합니다. 사용자 정의 Bedrock 엔드포인트 또는 [LLM 게이트웨이](/ko/llm-gateway)를 통해 라우팅할 때 사용합니다. [Amazon Bedrock](/ko/amazon-bedrock) 참조 |106| `ANTHROPIC_BEDROCK_BASE_URL` | Bedrock 엔드포인트 URL을 재정의합니다. 사용자 정의 Bedrock 엔드포인트 또는 [LLM 게이트웨이](/ko/llm-gateway)를 통해 라우팅할 때 사용합니다. [Amazon Bedrock](/ko/amazon-bedrock) 참조 |

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

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


148| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | 모든 기본 제공 [subagent](/ko/sub-agents) 유형(예: Explore 및 Plan)을 비활성화하려면 `1`로 설정합니다. 비대화형 모드(`-p` 플래그)에만 적용됩니다. SDK 사용자가 백지 상태를 원할 때 유용합니다. |148| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | 모든 기본 제공 [subagent](/ko/sub-agents) 유형(예: Explore 및 Plan)을 비활성화하려면 `1`로 설정합니다. 비대화형 모드(`-p` 플래그)에만 적용됩니다. SDK 사용자가 백지 상태를 원할 때 유용합니다. |

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

150| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | 백그라운드 subagent의 정체 타임아웃(밀리초). 기본값 `600000`(10분). 타이머는 각 스트리밍 진행 이벤트에서 재설정됩니다. 윈도우 내에 진행이 도착하지 않으면 subagent가 중단되고 작업이 실패로 표시되며 부분 결과가 부모에게 표시됩니다. |150| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | 백그라운드 subagent의 정체 타임아웃(밀리초). 기본값 `600000`(10분). 타이머는 각 스트리밍 진행 이벤트에서 재설정됩니다. 윈도우 내에 진행이 도착하지 않으면 subagent가 중단되고 작업이 실패로 표시되며 부분 결과가 부모에게 표시됩니다. |

151| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | 자동 압축이 트리거되는 자동 압축 윈도우의 백분율(1-100)을 설정합니다. `50`과 같은 낮은 값을 사용하여 더 일찍 압축합니다. 이 변수는 Claude Code가 사전에 압축할 때만 더 일찍 압축을 유발합니다: `CLAUDE_CODE_AUTO_COMPACT_WINDOW`가 설정되었을 때, [클라우드 세션](/ko/claude-code-on-the-web)에서, [확장 컨텍스트](/ko/model-config#extended-context) 없이 Sonnet 4.6 및 Opus 4.6에서 기본적으로 200K 경계에서 압축합니다. 기본 로컬 세션과 같은 다른 경우에는 대화가 모델의 컨텍스트 제한에 도달할 때 자동 압축이 트리거됩니다. 재정의는 기본 임계값만 낮출 수 있으므로 기본값보다 높은 값은 효과가 없습니다. 주 대화와 subagent 모두에 적용됩니다. |151| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | 자동 압축이 트리거되는 자동 압축 윈도우의 백분율(1-100)을 설정합니다. `50`과 같은 낮은 값을 사용하여 더 일찍 압축합니다. 이 변수는 Claude Code가 사전에 압축할 때만 더 일찍 압축을 유발합니다: `CLAUDE_CODE_AUTO_COMPACT_WINDOW`가 설정되었을 때, [클라우드 세션](/ko/claude-code-on-the-web)에서, [확장 컨텍스트](/ko/model-config#extended-context) 없이 Sonnet 4.6 및 Opus 4.6에서 기본적으로 200K 경계에서 압축합니다. Sonnet 5에서는 모델의 [기본 임계값](/ko/model-config#sonnet-5-context-window)에서 사전 압축이 적용됩니다. 로컬 세션의 Opus 4.8과 같은 다른 경우에는 대화가 모델의 컨텍스트 제한에 도달할 때 자동 압축이 트리거됩니다. 재정의는 기본 임계값만 낮출 수 있으므로 기본값보다 높은 값은 효과가 없습니다. 주 대화와 subagent 모두에 적용됩니다. |

152| `CLAUDE_AUTO_BACKGROUND_TASKS` | 장시간 실행되는 에이전트 작업의 자동 백그라운드 처리를 강제로 활성화하려면 `1`로 설정합니다. 활성화되면 subagent는 약 2분 동안 실행한 후 백그라운드로 이동합니다. |152| `CLAUDE_AUTO_BACKGROUND_TASKS` | 장시간 실행되는 에이전트 작업의 자동 백그라운드 처리를 강제로 활성화하려면 `1`로 설정합니다. 활성화되면 subagent는 약 2분 동안 실행한 후 백그라운드로 이동합니다. |

153| `CLAUDE_AX_SCREEN_READER` | {/* min-version: 2.1.181 */}화면 판독기 친화적 출력을 렌더링하려면 `1`로 설정합니다: 장식 테두리 또는 애니메이션 없는 평면 텍스트. [`axScreenReader`](/ko/settings#available-settings)가 `true`인 경우에도 화면 판독기 모드를 강제로 끄려면 `0`으로 설정합니다. [`--ax-screen-reader`](/ko/cli-reference#cli-flags) 플래그가 우선합니다. Claude Code v2.1.181 이상이 필요합니다. |153| `CLAUDE_AX_SCREEN_READER` | {/* min-version: 2.1.181 */}화면 판독기 친화적 출력을 렌더링하려면 `1`로 설정합니다: 장식 테두리 또는 애니메이션 없는 평면 텍스트. [`axScreenReader`](/ko/settings#available-settings)가 `true`인 경우에도 화면 판독기 모드를 강제로 끄려면 `0`으로 설정합니다. [`--ax-screen-reader`](/ko/cli-reference#cli-flags) 플래그가 우선합니다. Claude Code v2.1.181 이상이 필요합니다. |

154| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | 주 세션에서 각 Bash 또는 PowerShell 명령 후 원래 작업 디렉토리로 돌아갑니다. |154| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | 주 세션에서 각 Bash 또는 PowerShell 명령 후 원래 작업 디렉토리로 돌아갑니다. |


160| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | 자격 증명을 새로 고쳐야 하는 간격(밀리초)([`apiKeyHelper`](/ko/settings#available-settings) 사용 시) |160| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | 자격 증명을 새로 고쳐야 하는 간격(밀리초)([`apiKeyHelper`](/ko/settings#available-settings) 사용 시) |

161| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | 새 [아티팩트](/ko/artifacts)가 게시될 때 Claude Code가 브라우저를 자동으로 열지 않도록 하려면 `0`으로 설정합니다. 기존 아티팩트를 다시 게시해도 이 설정과 관계없이 브라우저를 열지 않습니다. |161| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | 새 [아티팩트](/ko/artifacts)가 게시될 때 Claude Code가 브라우저를 자동으로 열지 않도록 하려면 `0`으로 설정합니다. 기존 아티팩트를 다시 게시해도 이 설정과 관계없이 브라우저를 열지 않습니다. |

162| `CLAUDE_CODE_ATTRIBUTION_HEADER` | 시스템 프롬프트의 시작 부분에서 속성 블록(클라이언트 버전 및 프롬프트 지문)을 생략하려면 `0`으로 설정합니다. 비활성화하면 [LLM 게이트웨이](/ko/llm-gateway)를 통해 라우팅할 때 프롬프트 캐시 히트율이 향상됩니다. Anthropic API 캐싱은 영향을 받지 않습니다. |162| `CLAUDE_CODE_ATTRIBUTION_HEADER` | 시스템 프롬프트의 시작 부분에서 속성 블록(클라이언트 버전 및 프롬프트 지문)을 생략하려면 `0`으로 설정합니다. 비활성화하면 [LLM 게이트웨이](/ko/llm-gateway)를 통해 라우팅할 때 프롬프트 캐시 히트율이 향상됩니다. Anthropic API 캐싱은 영향을 받지 않습니다. |

163| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | 자동 압축 계산에 사용되는 컨텍스트 용량을 토큰 단위로 설정합니다. 기본값은 모델의 컨텍스트 윈도우입니다: 표준 모델의 경우 200K 또는 [확장 컨텍스트](/ko/model-config#extended-context) 모델의 경우 1M입니다. 1M 모델에서 `500000`과 같은 낮은 값을 사용하여 압축 목적상 윈도우를 500K로 취급합니다. 값은 모델의 실제 컨텍스트 윈도우로 제한됩니다. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`는 이 값의 백분율로 적용됩니다. 이 변수를 설정하면 압축 임계값이 상태 줄의 `used_percentage`에서 분리되며, 이는 항상 모델의 전체 컨텍스트 윈도우를 사용합니다. |163| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | 자동 압축 계산에 사용되는 컨텍스트 용량을 토큰 단위로 설정합니다. 기본값은 모델의 컨텍스트 윈도우입니다: 표준 모델의 경우 200K 또는 [확장 컨텍스트](/ko/model-config#extended-context) 모델의 경우 1M입니다. Sonnet 5는 자체 [기본 임계값](/ko/model-config#sonnet-5-context-window)을 가집니다. 1M 모델에서 `500000`과 같은 낮은 값을 사용하여 압축 목적상 윈도우를 500K로 취급합니다. 값은 모델의 실제 컨텍스트 윈도우로 제한됩니다. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`는 이 값의 백분율로 적용됩니다. 이 변수를 설정하면 압축 임계값이 상태 줄의 `used_percentage`에서 분리되며, 이는 항상 모델의 전체 컨텍스트 윈도우를 사용합니다. |

164| `CLAUDE_CODE_AUTO_CONNECT_IDE` | 자동 [IDE 연결](/ko/vs-code)을 재정의합니다. 기본적으로 Claude Code는 지원되는 IDE의 통합 터미널 내에서 실행될 때 자동으로 연결됩니다. 이를 방지하려면 `false`로 설정합니다. tmux가 부모 터미널을 가리는 경우와 같이 자동 감지가 실패할 때 연결을 강제하려면 `true`로 설정합니다. [`autoConnectIde`](/ko/settings#global-config-settings) 전역 구성 설정보다 우선합니다. |164| `CLAUDE_CODE_AUTO_CONNECT_IDE` | 자동 [IDE 연결](/ko/vs-code)을 재정의합니다. 기본적으로 Claude Code는 지원되는 IDE의 통합 터미널 내에서 실행될 때 자동으로 연결됩니다. 이를 방지하려면 `false`로 설정합니다. tmux가 부모 터미널을 가리는 경우와 같이 자동 감지가 실패할 때 연결을 강제하려면 `true`로 설정합니다. [`autoConnectIde`](/ko/settings#global-config-settings) 전역 구성 설정보다 우선합니다. |

165| `CLAUDE_CODE_CERT_STORE` | TLS 연결을 위한 CA 인증서 소스의 쉼표로 구분된 목록입니다. `bundled`는 Claude Code와 함께 제공되는 Mozilla CA 세트입니다. `system`은 운영 체제 신뢰 저장소입니다. 기본값은 `bundled,system`입니다. |165| `CLAUDE_CODE_CERT_STORE` | TLS 연결을 위한 CA 인증서 소스의 쉼표로 구분된 목록입니다. `bundled`는 Claude Code와 함께 제공되는 Mozilla CA 세트입니다. `system`은 운영 체제 신뢰 저장소입니다. 기본값은 `bundled,system`입니다. |

166| `CLAUDE_CODE_CHILD_SESSION` | {/* min-version: 2.1.172 */}Bash, PowerShell, Monitor 도구, [훅](/ko/hooks) 명령, [상태 줄](/ko/statusline) 명령을 통해 Claude Code가 생성하는 subprocess에서 `1`로 설정됩니다. stdio [MCP 서버](/ko/mcp) subprocess에는 설정되지 않으며, 이는 장기 실행되고 이를 생성한 세션보다 오래 지속됩니다. `CLAUDECODE`와 달리 이는 Claude Code의 자체 생성 경로에서만 설정되고 IDE 확장에서는 설정되지 않으므로 중첩 세션을 IDE 통합 터미널에서 시작된 최상위 `claude`와 안정적으로 구분합니다. 이 방식으로 시작된 중첩 대화형 `claude` TUI는 `--resume`, `--continue`, 위쪽 화살표 기록, `claude agents` 목록에서 자동으로 제외됩니다. 비대화형 `claude -p` 세션은 여전히 지속됩니다. `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1`을 설정하여 이 제외를 재정의합니다. Claude Code v2.1.172 이상이 필요합니다. |166| `CLAUDE_CODE_CHILD_SESSION` | {/* min-version: 2.1.172 */}Bash, PowerShell, Monitor 도구, [훅](/ko/hooks) 명령, [상태 줄](/ko/statusline) 명령을 통해 Claude Code가 생성하는 subprocess에서 `1`로 설정됩니다. stdio [MCP 서버](/ko/mcp) subprocess에는 설정되지 않으며, 이는 장기 실행되고 이를 생성한 세션보다 오래 지속됩니다. `CLAUDECODE`와 달리 이는 Claude Code의 자체 생성 경로에서만 설정되고 IDE 확장에서는 설정되지 않으므로 중첩 세션을 IDE 통합 터미널에서 시작된 최상위 `claude`와 안정적으로 구분합니다. 이 방식으로 시작된 중첩 대화형 `claude` TUI는 `--resume`, `--continue`, 위쪽 화살표 기록, `claude agents` 목록에서 자동으로 제외됩니다. 비대화형 `claude -p` 세션은 여전히 지속됩니다. `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1`을 설정하여 이 제외를 재정의합니다. Claude Code v2.1.172 이상이 필요합니다. |


170| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | {/* max-version: 2.1.185 */}v2.1.186에서 제거되었으며 이제 작동하지 않습니다. 이전에는 스트리밍 API 요청의 연결, TLS, 응답 헤더 단계에 대한 별도의 타임아웃을 설정했습니다. 요청별 타임아웃의 경우 `API_TIMEOUT_MS`를 사용합니다. |170| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | {/* max-version: 2.1.185 */}v2.1.186에서 제거되었으며 이제 작동하지 않습니다. 이전에는 스트리밍 API 요청의 연결, TLS, 응답 헤더 단계에 대한 별도의 타임아웃을 설정했습니다. 요청별 타임아웃의 경우 `API_TIMEOUT_MS`를 사용합니다. |

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

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

173| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | [1M 컨텍스트 윈도우](/ko/model-config#extended-context) 지원을 비활성화하려면 `1`로 설정합니다. 설정하면 1M 모델 변형을 모델 선택기에서 사용할 수 없습니다. 규정 준수 요구 사항이 있는 엔터프라이즈 환경에 유용합니다. |173| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | [1M 컨텍스트 윈도우](/ko/model-config#extended-context) 지원을 비활성화하려면 `1`로 설정합니다. 설정하면 1M 모델 변형을 모델 선택기에서 사용할 수 없습니다. [Sonnet 5](/ko/model-config#sonnet-5-context-window) 세션은 200K 윈도우를 가진 것으로 취급됩니다. 규정 준수 요구 사항이 있는 엔터프라이즈 환경에 유용합니다. |

174| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Opus 4.6 및 Sonnet 4.6에 대해 [적응형 추론](/ko/model-config#adjust-effort-level)을 비활성화하려면 `1`로 설정합니다. `MAX_THINKING_TOKENS`로 제어되는 고정 사고 예산으로 돌아갑니다. {/* min-version: 2.1.111 */}v2.1.111부터 Fable 5에는 효과가 없으며, Opus 4.7 이상에는 항상 적응형 추론을 사용합니다. |174| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Opus 4.6 및 Sonnet 4.6에 대해 [적응형 추론](/ko/model-config#adjust-effort-level)을 비활성화하려면 `1`로 설정합니다. `MAX_THINKING_TOKENS`로 제어되는 고정 사고 예산으로 돌아갑니다. {/* min-version: 2.1.111 */}v2.1.111부터 Fable 5, Sonnet 5, Opus 4.7 이상에는 효과가 없으며, 항상 적응형 추론을 사용합니다. |

175| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | {/* min-version: 2.1.98 */}[어드바이저 도구](/ko/advisor)를 비활성화하려면 `1`로 설정합니다. `/advisor` 명령 및 `--advisor` 플래그를 사용할 수 없게 되고 구성된 `advisorModel`은 무시됩니다. Claude Code v2.1.98 이상이 필요합니다. |175| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | {/* min-version: 2.1.98 */}[어드바이저 도구](/ko/advisor)를 비활성화하려면 `1`로 설정합니다. `/advisor` 명령 및 `--advisor` 플래그를 사용할 수 없게 되고 구성된 `advisorModel`은 무시됩니다. Claude Code v2.1.98 이상이 필요합니다. |

176| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | [백그라운드 에이전트 및 에이전트 보기](/ko/agent-view)를 끄려면 `1`로 설정합니다: `claude agents`, `--bg`, `/background`, 온디맨드 감독자. [`disableAgentView`](/ko/settings#available-settings) 설정과 동일합니다. |176| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | [백그라운드 에이전트 및 에이전트 보기](/ko/agent-view)를 끄려면 `1`로 설정합니다: `claude agents`, `--bg`, `/background`, 온디맨드 감독자. [`disableAgentView`](/ko/settings#available-settings) 설정과 동일합니다. |

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


179| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 첨부 파일 처리를 비활성화하려면 `1`로 설정합니다. `@` 구문이 있는 파일 언급은 파일 내용으로 확장되지 않고 일반 텍스트로 전송됩니다. |179| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 첨부 파일 처리를 비활성화하려면 `1`로 설정합니다. `@` 구문이 있는 파일 언급은 파일 내용으로 확장되지 않고 일반 텍스트로 전송됩니다. |

180| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | [자동 메모리](/ko/memory#auto-memory)를 비활성화하려면 `1`로 설정합니다. `0`으로 설정하여 `--bare` 모드 또는 [`autoMemoryEnabled: false`](/ko/settings#available-settings)가 그렇지 않으면 비활성화할 때에도 자동 메모리를 강제로 켭니다. 비활성화되면 Claude는 자동 메모리 파일을 생성하거나 로드하지 않습니다. |180| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | [자동 메모리](/ko/memory#auto-memory)를 비활성화하려면 `1`로 설정합니다. `0`으로 설정하여 `--bare` 모드 또는 [`autoMemoryEnabled: false`](/ko/settings#available-settings)가 그렇지 않으면 비활성화할 때에도 자동 메모리를 강제로 켭니다. 비활성화되면 Claude는 자동 메모리 파일을 생성하거나 로드하지 않습니다. |

181| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Bash 및 subagent 도구의 `run_in_background` 매개변수, 자동 백그라운드 처리, Ctrl+B 단축키를 포함한 모든 백그라운드 작업 기능을 비활성화하려면 `1`로 설정합니다. |181| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Bash 및 subagent 도구의 `run_in_background` 매개변수, 자동 백그라운드 처리, Ctrl+B 단축키를 포함한 모든 백그라운드 작업 기능을 비활성화하려면 `1`로 설정합니다. |

182| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | {/* min-version: 2.1.196 */}[백그라운드 세션](/ko/agent-view)의 실행 중인 백그라운드 셸 명령 및 동적 워크플로우를 [감독자](/ko/agent-view#the-supervisor-process)가 중지, 재시작 또는 해당 세션의 프로세스를 업데이트할 때 중지하려면 `1`로 설정합니다. 대신 다음 프로세스로 전달하는 대신입니다. 이 핸드오프에만 영향을 줍니다: `←` 또는 [`/background`](/ko/agent-view#from-inside-a-session)로 세션을 백그라운드 처리하면 여전히 진행 중인 작업을 수행하고, `CLAUDE_DISABLE_ADOPT`는 둘 다 끕니다. Claude Code v2.1.196 이상이 필요합니다. |

183| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | {/* min-version: 2.1.193 */}운영 체제가 메모리 압력을 보고할 때 Claude Code가 [백그라운드 셸 명령](/ko/interactive-mode#background-bash-commands)을 종료하지 않도록 하려면 `1`로 설정합니다. 기본적으로 macOS 및 Linux에서 Claude Code는 세션이 30분 동안 유휴 상태이고 턴 또는 subagent가 실행 중이 아닐 때 메모리 압력 신호에서 주 세션에서 시작된 백그라운드 셸을 종료합니다. Windows에는 메모리 압력 신호가 없으므로 이 변수는 효과가 없습니다. Claude Code v2.1.193 이상이 필요합니다. |

182| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Claude Code와 함께 제공되는 [skill](/ko/skills) 및 워크플로우를 비활성화하려면 `1`로 설정합니다: 번들 skill 및 워크플로우는 완전히 제거되고, `/init`과 같은 기본 제공 슬래시 명령은 입력 가능하지만 모델에서 숨겨집니다. 플러그인, `.claude/skills/`, `.claude/commands/`의 skill은 영향을 받지 않습니다. [`disableBundledSkills`](/ko/settings#available-settings) 설정과 동일합니다. `0`은 이를 재정의하지 않습니다. |184| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Claude Code와 함께 제공되는 [skill](/ko/skills) 및 워크플로우를 비활성화하려면 `1`로 설정합니다: 번들 skill 및 워크플로우는 완전히 제거되고, `/init`과 같은 기본 제공 슬래시 명령은 입력 가능하지만 모델에서 숨겨집니다. 플러그인, `.claude/skills/`, `.claude/commands/`의 skill은 영향을 받지 않습니다. [`disableBundledSkills`](/ko/settings#available-settings) 설정과 동일합니다. `0`은 이를 재정의하지 않습니다. |

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

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


189| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Claude의 시스템 프롬프트에서 기본 제공 커밋 및 PR 워크플로우 지침과 git 상태 스냅샷을 제거하려면 `1`로 설정합니다. 자신의 git 워크플로우 skill을 사용할 때 유용합니다. 설정하면 [`includeGitInstructions`](/ko/settings#available-settings) 설정보다 우선합니다. |191| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Claude의 시스템 프롬프트에서 기본 제공 커밋 및 PR 워크플로우 지침과 git 상태 스냅샷을 제거하려면 `1`로 설정합니다. 자신의 git 워크플로우 skill을 사용할 때 유용합니다. 설정하면 [`includeGitInstructions`](/ko/settings#available-settings) 설정보다 우선합니다. |

190| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Anthropic API에서 Opus 4.0 및 4.1을 현재 Opus 버전으로 자동 재매핑하지 않으려면 `1`로 설정합니다. 의도적으로 이전 모델을 고정하려는 경우 사용합니다. 재매핑은 Bedrock, Vertex 또는 Foundry에서 실행되지 않습니다. |192| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Anthropic API에서 Opus 4.0 및 4.1을 현재 Opus 버전으로 자동 재매핑하지 않으려면 `1`로 설정합니다. 의도적으로 이전 모델을 고정하려는 경우 사용합니다. 재매핑은 Bedrock, Vertex 또는 Foundry에서 실행되지 않습니다. |

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

194| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | {/* min-version: 2.1.195 */}[전체 화면 렌더링](/ko/fullscreen)에서 클릭, 드래그, 호버 처리를 비활성화하려면 `1`로 설정합니다. 마우스 휠 스크롤은 유지합니다. 휠 스크롤이 Claude Code 내에서 작동하기를 원하지만 클릭이 커서를 배치하거나, 도구 출력을 확장하거나, 링크를 열지 않기를 원할 때 사용합니다. 둘 다 설정하면 `CLAUDE_CODE_DISABLE_MOUSE`가 우선합니다. Claude Code v2.1.195 이상이 필요합니다. |

192| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | `DISABLE_AUTOUPDATER`, `DISABLE_FEEDBACK_COMMAND`, `DISABLE_ERROR_REPORTING`, `DISABLE_TELEMETRY` 설정과 동일합니다. |195| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | `DISABLE_AUTOUPDATER`, `DISABLE_FEEDBACK_COMMAND`, `DISABLE_ERROR_REPORTING`, `DISABLE_TELEMETRY` 설정과 동일합니다. |

193| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | 스트리밍 요청이 중간에 실패할 때 비스트리밍 폴백을 비활성화하려면 `1`로 설정합니다. 스트리밍 오류는 재시도 계층으로 전파됩니다. 프록시 또는 게이트웨이가 폴백으로 인해 중복 도구 실행을 생성할 때 유용합니다. |196| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | 스트리밍 요청이 중간에 실패할 때 비스트리밍 폴백을 비활성화하려면 `1`로 설정합니다. 스트리밍 오류는 재시도 계층으로 전파됩니다. 프록시 또는 게이트웨이가 폴백으로 인해 중복 도구 실행을 생성할 때 유용합니다. |

197| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | {/* min-version: 2.1.193 */}터미널에서 입력하거나 포커스할 때에도 `PushNotification` 도구의 데스크톱 알림을 전송하려면 `1`로 설정합니다. 기본적으로 도구는 최근 키보드 활동 또는 터미널 포커스를 감지할 때 데스크톱 알림과 [모바일 푸시](/ko/remote-control#mobile-push-notifications)를 모두 건너뜁니다. 이 변수는 로컬 확인만 비활성화하므로 서버는 활성 상태를 감지할 때 모바일 푸시를 억제할 수 있습니다. Claude Code v2.1.193 이상이 필요합니다. |

194| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | 첫 실행 시 공식 플러그인 마켓플레이스의 자동 추가를 건너뛰려면 `1`로 설정합니다. |198| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | 첫 실행 시 공식 플러그인 마켓플레이스의 자동 추가를 건너뛰려면 `1`로 설정합니다. |

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

196| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 대화 컨텍스트를 기반으로 자동 터미널 제목 업데이트를 비활성화하려면 `1`로 설정합니다. Agent SDK 및 `claude -p` 세션에서는 세션 제목을 생성하는 백그라운드 Haiku 요청도 건너뜁니다. |200| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 대화 컨텍스트를 기반으로 자동 터미널 제목 업데이트를 비활성화하려면 `1`로 설정합니다. Agent SDK 및 `claude -p` 세션에서는 세션 제목을 생성하는 백그라운드 Haiku 요청도 건너뜁니다. |


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

225| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | IDE 확장의 자동 설치를 건너뜁니다. [`autoInstallIdeExtension`](/ko/settings#global-config-settings)을 `false`로 설정하는 것과 동일합니다. |229| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | IDE 확장의 자동 설치를 건너뜁니다. [`autoInstallIdeExtension`](/ko/settings#global-config-settings)을 `false`로 설정하는 것과 동일합니다. |

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

227| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Claude Code가 활성 모델에 대해 가정하는 컨텍스트 윈도우 크기를 재정의합니다. `DISABLE_COMPACT`도 설정되어 있을 때만 적용됩니다. `ANTHROPIC_BASE_URL`을 통해 이름의 기본 제공 크기와 일치하지 않는 컨텍스트 윈도우를 가진 모델로 라우팅할 때 사용합니다. |231| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Claude Code가 활성 모델에 대해 가정하는 컨텍스트 윈도우 크기를 재정의합니다. {/* min-version: 2.1.193 */}v2.1.193부터 Claude Code가 Claude 모델로 인식하는 모델 이름에 대해 직접 적용됩니다. 인식된 Claude 모델의 경우 `DISABLE_COMPACT`도 설정되어 있을 때만 적용됩니다. `ANTHROPIC_BASE_URL`을 통해 이름의 기본 제공 크기와 일치하지 않는 컨텍스트 윈도우를 가진 모델로 라우팅할 때 사용합니다. |

228| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 대부분의 요청에 대한 최대 출력 토큰 수를 설정합니다. 기본값 및 상한은 모델에 따라 다릅니다. [최대 출력 토큰](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison) 참조. 이 값을 증가시키면 [자동 압축](/ko/costs#reduce-token-usage)이 트리거되기 전에 사용 가능한 효과적인 컨텍스트 윈도우가 감소합니다. |232| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 대부분의 요청에 대한 최대 출력 토큰 수를 설정합니다. 기본값 및 상한은 모델에 따라 다릅니다. [최대 출력 토큰](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison) 참조. 이 값을 증가시키면 [자동 압축](/ko/costs#reduce-token-usage)이 트리거되기 전에 사용 가능한 효과적인 컨텍스트 윈도우가 감소합니다. |

229| `CLAUDE_CODE_MAX_RETRIES` | 실패한 API 요청을 재시도할 횟수를 재정의합니다(기본값: 10). {/* min-version: 2.1.186 */}v2.1.186부터 최대 15로 제한됩니다. 더 긴 중단을 기다려야 하는 무인 세션의 경우 `CLAUDE_CODE_RETRY_WATCHDOG`을 대신 설정합니다. |233| `CLAUDE_CODE_MAX_RETRIES` | 실패한 API 요청을 재시도할 횟수를 재정의합니다(기본값: 10). {/* min-version: 2.1.186 */}v2.1.186부터 최대 15로 제한됩니다. 더 긴 중단을 기다려야 하는 무인 세션의 경우 `CLAUDE_CODE_RETRY_WATCHDOG`을 대신 설정합니다. |

230| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 병렬로 실행할 수 있는 읽기 전용 도구 및 subagent의 최대 수(기본값: 10). 더 높은 값은 병렬 처리를 증가시키지만 더 많은 리소스를 소비합니다. |234| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 병렬로 실행할 수 있는 읽기 전용 도구 및 subagent의 최대 수(기본값: 10). 더 높은 값은 병렬 처리를 증가시키지만 더 많은 리소스를 소비합니다. |


275| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | 프롬프트 기록 및 세션 트랜스크립트를 디스크에 쓰지 않으려면 `1`로 설정합니다. 이 변수로 시작된 세션은 `--resume`, `--continue` 또는 위쪽 화살표 기록에 나타나지 않습니다. 임시 스크립트 세션에 유용합니다. |279| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | 프롬프트 기록 및 세션 트랜스크립트를 디스크에 쓰지 않으려면 `1`로 설정합니다. 이 변수로 시작된 세션은 `--resume`, `--continue` 또는 위쪽 화살표 기록에 나타나지 않습니다. 임시 스크립트 세션에 유용합니다. |

276| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Vertex에 대한 Google 인증을 건너뜁니다(예: LLM 게이트웨이를 사용할 때). |280| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Vertex에 대한 Google 인증을 건너뜁니다(예: LLM 게이트웨이를 사용할 때). |

277| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | [Stop](/ko/hooks#stop) 또는 [SubagentStop](/ko/hooks#subagentstop) 훅이 턴 종료를 차단할 수 있는 최대 연속 횟수입니다(기본값: 8). Claude Code가 턴을 어쨌든 종료하기 전입니다. `0`으로 설정하여 제한을 비활성화합니다. 훅이 해결하기 위해 더 많은 반복이 필요하면 이를 올립니다. |281| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | [Stop](/ko/hooks#stop) 또는 [SubagentStop](/ko/hooks#subagentstop) 훅이 턴 종료를 차단할 수 있는 최대 연속 횟수입니다(기본값: 8). Claude Code가 턴을 어쨌든 종료하기 전입니다. `0`으로 설정하여 제한을 비활성화합니다. 훅이 해결하기 위해 더 많은 반복이 필요하면 이를 올립니다. |

278| `CLAUDE_CODE_SUBAGENT_MODEL` | [모델 구성](/ko/model-config) 참조 |282| `CLAUDE_CODE_SUBAGENT_MODEL` | [모델 구성](/ko/model-config) 참조 {/* min-version: 2.1.196 */}v2.1.196부터 `inherit`로 설정하는 것은 설정하지 않은 것과 동일합니다. 이전 버전은 `inherit`를 모든 subagent를 주 대화의 모델로 강제하는 재정의로 취급했습니다. |

279| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Anthropic 및 클라우드 공급자 자격 증명을 subprocess 환경(Bash 도구, 훅, MCP stdio 서버)에서 제거하려면 `1`로 설정합니다. 부모 Claude 프로세스는 API 호출을 위해 이러한 자격 증명을 유지하지만 자식 프로세스는 이를 읽을 수 없으므로 셸 확장을 통해 비밀을 유출하려는 프롬프트 주입 공격에 대한 노출을 줄입니다. Linux에서는 Bash subprocess를 격리된 PID 네임스페이스에서도 실행하므로 `/proc`을 통해 호스트 프로세스 환경을 읽을 수 없습니다. 부작용으로 `ps`, `pgrep`, `kill`은 호스트 프로세스를 보거나 신호할 수 없습니다. `allowed_non_write_users`가 구성되면 `claude-code-action`이 자동으로 이를 설정합니다. |283| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Anthropic 및 클라우드 공급자 자격 증명을 subprocess 환경(Bash 도구, 훅, MCP stdio 서버)에서 제거하려면 `1`로 설정합니다. 부모 Claude 프로세스는 API 호출을 위해 이러한 자격 증명을 유지하지만 자식 프로세스는 이를 읽을 수 없으므로 셸 확장을 통해 비밀을 유출하려는 프롬프트 주입 공격에 대한 노출을 줄입니다. Linux에서는 Bash subprocess를 격리된 PID 네임스페이스에서도 실행하므로 `/proc`을 통해 호스트 프로세스 환경을 읽을 수 없습니다. 부작용으로 `ps`, `pgrep`, `kill`은 호스트 프로세스를 보거나 신호할 수 없습니다. `allowed_non_write_users`가 구성되면 `claude-code-action`이 자동으로 이를 설정합니다. |

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

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


295| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | PowerShell 도구를 제어합니다. Windows에서 Git Bash가 없으면 도구가 자동으로 활성화됩니다. `0`으로 설정하여 비활성화합니다. Windows에 Git Bash가 설치되어 있으면 도구가 점진적으로 롤아웃됩니다: 옵트인하려면 `1`로 설정하거나 옵트아웃하려면 `0`으로 설정합니다. Linux, macOS, WSL에서는 `1`로 설정하여 활성화합니다. PATH에 `pwsh`가 필요합니다. Windows에서 활성화되면 Claude는 Git Bash를 통해 라우팅하는 대신 PowerShell 명령을 기본적으로 실행할 수 있습니다. [PowerShell 도구](/ko/tools-reference#powershell-tool) 참조 |299| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | PowerShell 도구를 제어합니다. Windows에서 Git Bash가 없으면 도구가 자동으로 활성화됩니다. `0`으로 설정하여 비활성화합니다. Windows에 Git Bash가 설치되어 있으면 도구가 점진적으로 롤아웃됩니다: 옵트인하려면 `1`로 설정하거나 옵트아웃하려면 `0`으로 설정합니다. Linux, macOS, WSL에서는 `1`로 설정하여 활성화합니다. PATH에 `pwsh`가 필요합니다. Windows에서 활성화되면 Claude는 Git Bash를 통해 라우팅하는 대신 PowerShell 명령을 기본적으로 실행할 수 있습니다. [PowerShell 도구](/ko/tools-reference#powershell-tool) 참조 |

296| `CLAUDE_CODE_USE_VERTEX` | [Vertex](/ko/google-vertex-ai) 사용 |300| `CLAUDE_CODE_USE_VERTEX` | [Vertex](/ko/google-vertex-ai) 사용 |

297| `CLAUDE_CONFIG_DIR` | 구성 디렉토리를 재정의합니다(기본값: `~/.claude`). 모든 설정, 자격 증명, 세션 기록 및 플러그인이 이 경로 아래에 저장됩니다. 여러 계정을 나란히 실행하는 데 유용합니다: 예를 들어 `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'` |301| `CLAUDE_CONFIG_DIR` | 구성 디렉토리를 재정의합니다(기본값: `~/.claude`). 모든 설정, 자격 증명, 세션 기록 및 플러그인이 이 경로 아래에 저장됩니다. 여러 계정을 나란히 실행하는 데 유용합니다: 예를 들어 `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'` |

302| `CLAUDE_DISABLE_ADOPT` | {/* min-version: 2.1.195 */}세션을 백그라운드 처리할 때 `←` 또는 [`/background`](/ko/agent-view#from-inside-a-session)를 눌러 진행 중인 백그라운드 작업을 수행하는 대신 중지하려면 `1`로 설정합니다. Claude Code는 백그라운드 처리 전에 확인을 요청한 다음 그렇지 않으면 수행할 작업을 중지합니다. Claude Code v2.1.195 이상이 필요합니다. |

298| `CLAUDE_EFFORT` | Bash 도구 subprocess 및 훅 명령에서 활성 [노력 수준](/ko/model-config#adjust-effort-level)으로 자동으로 설정됩니다: `low`, `medium`, `high`, `xhigh`, 또는 `max`. Ultracode는 별개의 수준이 아니며 `xhigh`로 보고됩니다. [훅](/ko/hooks)에 전달된 `effort.level` 필드와 일치합니다. 현재 모델이 노력 매개변수를 지원할 때만 설정됩니다. |303| `CLAUDE_EFFORT` | Bash 도구 subprocess 및 훅 명령에서 활성 [노력 수준](/ko/model-config#adjust-effort-level)으로 자동으로 설정됩니다: `low`, `medium`, `high`, `xhigh`, 또는 `max`. Ultracode는 별개의 수준이 아니며 `xhigh`로 보고됩니다. [훅](/ko/hooks)에 전달된 `effort.level` 필드와 일치합니다. 현재 모델이 노력 매개변수를 지원할 때만 설정됩니다. |

299| `CLAUDE_ENABLE_BYTE_WATCHDOG` | 바이트 수준 스트리밍 유휴 감시견을 강제로 활성화하려면 `1`로 설정하거나, 강제로 비활성화하려면 `0`으로 설정합니다. 설정하지 않으면 감시견은 직접 Anthropic API 및 [Claude Platform on AWS](/ko/claude-platform-on-aws) 연결에 대해 기본적으로 활성화됩니다. 바이트 감시견은 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 설정된 기간 동안 와이어에 바이트가 도착하지 않으면 연결을 중단합니다. 최소 5분이며 이벤트 수준 감시견과 독립적입니다. |304| `CLAUDE_ENABLE_BYTE_WATCHDOG` | 바이트 수준 스트리밍 유휴 감시견을 강제로 활성화하려면 `1`로 설정하거나, 강제로 비활성화하려면 `0`으로 설정합니다. 설정하지 않으면 감시견은 직접 Anthropic API 및 [Claude Platform on AWS](/ko/claude-platform-on-aws) 연결에 대해 기본적으로 활성화됩니다. 바이트 감시견은 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 설정된 기간 동안 와이어에 바이트가 도착하지 않으면 연결을 중단합니다. 최소 5분이며 이벤트 수준 감시견과 독립적입니다. |

300| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Amazon Bedrock `vnd.amazon.eventstream` 응답에서 바이트 수준 스트리밍 유휴 감시견을 활성화하려면 `1`로 설정합니다. 기본적으로 꺼져 있습니다. `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 타임아웃을 구성합니다. |305| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Amazon Bedrock `vnd.amazon.eventstream` 응답에서 바이트 수준 스트리밍 유휴 감시견을 활성화하려면 `1`로 설정합니다. 기본적으로 꺼져 있습니다. `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 타임아웃을 구성합니다. |

301| `CLAUDE_ENABLE_STREAM_WATCHDOG` | 이벤트 수준 스트리밍 유휴 감시견을 강제로 활성화하려면 `1`로 설정하거나, 강제로 비활성화하려면 `0`으로 설정합니다. 설정하지 않으면 기본값은 직접 Anthropic API에서 서버 제어이고 다른 공급자에서는 꺼져 있습니다. {/* min-version: 2.1.169 */}v2.1.169부터 직접 Anthropic API 및 Claude Platform on AWS 이외의 공급자도 `API_FORCE_IDLE_TIMEOUT`에 설명된 독립적인 5분 본문 유휴 타임아웃을 가집니다. Bedrock에서는 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`로 독립적인 바이트 수준 감시견을 활성화할 수도 있습니다. 둘 다 설정하면 함께 실행됩니다. `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 타임아웃을 구성합니다. |306| `CLAUDE_ENABLE_STREAM_WATCHDOG` | 이벤트 수준 스트리밍 유휴 감시견을 강제로 활성화하려면 `1`로 설정하거나, 강제로 비활성화하려면 `0`으로 설정합니다. {/* min-version: 2.1.196 */}}설정하지 않으면 감시견은 모든 공급자에 대해 기본적으로 켜져 있습니다. v2.1.196 이전에는 설정하지 않은 기본값이 직접 Anthropic API에서 서버 제어이고 다른 공급자에서는 꺼져 있었습니다. {/* min-version: 2.1.169 */}}v2.1.169부터 직접 Anthropic API 및 Claude Platform on AWS 이외의 공급자도 `API_FORCE_IDLE_TIMEOUT`에 설명된 독립적인 5분 본문 유휴 타임아웃을 가집니다. Bedrock에서는 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`로 독립적인 바이트 수준 감시견을 활성화할 수도 있습니다. 둘 다 설정하면 함께 실행됩니다. `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 타임아웃을 구성합니다. |

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

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

304| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | 스트리밍 유휴 감시견이 정체된 연결을 닫기 전의 타임아웃(밀리초). 설정하지 않으면 이벤트 수준 감시견은 기본값 300초이고 바이트 수준 감시견은 직접 Anthropic API 연결에서 기본값 180초입니다(Claude Platform on AWS 및 다른 공급자에서 300초). 설정하지 않은 180초 바이트 감시견 기본값은 별개의 값이며 5분 제한을 받지 않습니다. 타사 공급자의 이벤트 수준 감시견의 경우 `CLAUDE_ENABLE_STREAM_WATCHDOG=1`이 필요합니다. `API_FORCE_IDLE_TIMEOUT`에 설명된 본문 유휴 타임아웃은 독립적으로 적용됩니다. Bedrock에서는 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`일 때도 적용됩니다. |309| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | 스트리밍 유휴 감시견이 정체된 연결을 닫기 전의 타임아웃(밀리초). 설정하지 않으면 이벤트 수준 감시견은 기본값 300초이고 바이트 수준 감시견은 직접 Anthropic API 연결에서 기본값 180초입니다(Claude Platform on AWS 및 다른 공급자에서 300초). 설정하지 않은 180초 바이트 감시견 기본값은 별개의 값이며 5분 제한을 받지 않습니다. 설정하지 않으면 이벤트 수준 감시견은 기본값 300초이고 바이트 수준 감시견은 직접 Anthropic API 연결에서 기본값 180초입니다(Claude Platform on AWS 및 다른 공급자에서 300초). 설정하지 않은 180초 바이트 감시견 기본값은 별개의 값이며 5분 제한을 받지 않습니다. `API_FORCE_IDLE_TIMEOUT`에 설명된 본문 유휴 타임아웃은 독립적으로 적용됩니다. Bedrock에서는 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`일 때도 적용됩니다. |

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

306| `DISABLE_AUTOUPDATER` | 자동 업데이트를 비활성화하려면 `1`로 설정합니다. 수동 `claude update`는 계속 작동합니다. `DISABLE_UPDATES`를 사용하여 둘 다 차단합니다. |311| `DISABLE_AUTOUPDATER` | 자동 업데이트를 비활성화하려면 `1`로 설정합니다. 수동 `claude update`는 계속 작동합니다. `DISABLE_UPDATES`를 사용하여 둘 다 차단합니다. |

307| `DISABLE_AUTO_COMPACT` | 컨텍스트 제한에 접근할 때 자동 압축을 비활성화하려면 `1`로 설정합니다. 수동 `/compact` 명령은 계속 사용 가능합니다. 압축이 발생하는 시기를 명시적으로 제어하려는 경우 사용합니다. |312| `DISABLE_AUTO_COMPACT` | 컨텍스트 제한에 접근할 때 자동 압축을 비활성화하려면 `1`로 설정합니다. 수동 `/compact` 명령은 계속 사용 가능합니다. 압축이 발생하는 시기를 명시적으로 제어하려는 경우 사용합니다. |


348| `MCP_TIMEOUT` | MCP 서버 시작의 타임아웃(밀리초)(기본값: 30000, 또는 30초) |353| `MCP_TIMEOUT` | MCP 서버 시작의 타임아웃(밀리초)(기본값: 30000, 또는 30초) |

349| `MCP_TOOL_TIMEOUT` | MCP 도구 실행의 타임아웃(밀리초)(기본값: 100000000, 약 28시간). 서버별 `.mcp.json`의 `timeout` 필드가 해당 서버에 대해 이를 재정의합니다. 환경 변수의 경우 1000 미만의 값은 1초로 내림됩니다. 서버별 필드의 경우 1000 미만의 값은 무시됩니다. |354| `MCP_TOOL_TIMEOUT` | MCP 도구 실행의 타임아웃(밀리초)(기본값: 100000000, 약 28시간). 서버별 `.mcp.json`의 `timeout` 필드가 해당 서버에 대해 이를 재정의합니다. 환경 변수의 경우 1000 미만의 값은 1초로 내림됩니다. 서버별 필드의 경우 1000 미만의 값은 무시됩니다. |

350| `NO_PROXY` | 프록시를 우회하여 직접 발급될 요청의 도메인 및 IP 목록 |355| `NO_PROXY` | 프록시를 우회하여 직접 발급될 요청의 도메인 및 IP 목록 |

356| `OTEL_LOG_ASSISTANT_RESPONSES` | {/* min-version: 2.1.193 */}}모델의 응답 텍스트를 `assistant_response` OpenTelemetry 로그 이벤트에 포함하려면 `1`로 설정합니다. 설정하지 않으면 `OTEL_LOG_USER_PROMPTS`의 값이 사용됩니다. `OTEL_LOG_USER_PROMPTS`가 설정된 경우에도 응답을 수정된 상태로 유지하려면 `0`으로 설정합니다. Claude Code v2.1.193 이상이 필요합니다. [모니터링](/ko/monitoring-usage#assistant-response-event) 참조 |

351| `OTEL_LOG_RAW_API_BODIES` | Anthropic Messages API 요청 및 응답 JSON을 `api_request_body` / `api_response_body` 로그 이벤트로 내보냅니다. 60KB에서 잘린 인라인 본문의 경우 `1`로 설정하거나, 잘리지 않은 본문을 디스크에 쓰고 `body_ref` 경로를 내보내려면 `file:<dir>`로 설정합니다. 기본적으로 비활성화됩니다. 본문에는 전체 대화 기록이 포함됩니다. [모니터링](/ko/monitoring-usage#api-request-body-event) 참조 |357| `OTEL_LOG_RAW_API_BODIES` | Anthropic Messages API 요청 및 응답 JSON을 `api_request_body` / `api_response_body` 로그 이벤트로 내보냅니다. 60KB에서 잘린 인라인 본문의 경우 `1`로 설정하거나, 잘리지 않은 본문을 디스크에 쓰고 `body_ref` 경로를 내보내려면 `file:<dir>`로 설정합니다. 기본적으로 비활성화됩니다. 본문에는 전체 대화 기록이 포함됩니다. [모니터링](/ko/monitoring-usage#api-request-body-event) 참조 |

352| `OTEL_LOG_TOOL_CONTENT` | 도구 입력 및 출력 내용을 OpenTelemetry 스팬 이벤트에 포함하려면 `1`로 설정합니다. 민감한 데이터를 보호하기 위해 기본적으로 비활성화됩니다. [모니터링](/ko/monitoring-usage) 참조 |358| `OTEL_LOG_TOOL_CONTENT` | 도구 입력 및 출력 내용을 OpenTelemetry 스팬 이벤트에 포함하려면 `1`로 설정합니다. 민감한 데이터를 보호하기 위해 기본적으로 비활성화됩니다. [모니터링](/ko/monitoring-usage) 참조 |

353| `OTEL_LOG_TOOL_DETAILS` | 도구 입력 인수, MCP 서버 이름, 도구 실패 시 원본 오류 문자열, 기타 도구 세부 정보를 OpenTelemetry 추적 및 로그에 포함하려면 `1`로 설정합니다. PII를 보호하기 위해 기본적으로 비활성화됩니다. [모니터링](/ko/monitoring-usage) 참조 |359| `OTEL_LOG_TOOL_DETAILS` | 도구 입력 인수, MCP 서버 이름, 도구 실패 시 원본 오류 문자열, 기타 도구 세부 정보를 OpenTelemetry 추적 및 로그에 포함하려면 `1`로 설정합니다. PII를 보호하기 위해 기본적으로 비활성화됩니다. [모니터링](/ko/monitoring-usage) 참조 |

errors.md +22 −4

Details

40| `Your organization has disabled API key authentication` | [인증](#your-organization-has-disabled-api-key-authentication) |40| `Your organization has disabled API key authentication` | [인증](#your-organization-has-disabled-api-key-authentication) |

41| `Your organization has disabled Claude subscription access` | [인증](#your-organization-has-disabled-claude-subscription-access) |41| `Your organization has disabled Claude subscription access` | [인증](#your-organization-has-disabled-claude-subscription-access) |

42| `Routines are disabled by your organization's policy` | [인증](#routines-are-disabled-by-your-organization%E2%80%99s-policy) |42| `Routines are disabled by your organization's policy` | [인증](#routines-are-disabled-by-your-organization%E2%80%99s-policy) |

43| `Remote Control is only available when using Claude via api.anthropic.com` | [인증](#remote-control-requires-the-anthropic-api) |

43| `OAuth token revoked` / `OAuth token has expired` | [인증](#oauth-token-revoked-or-expired) |44| `OAuth token revoked` / `OAuth token has expired` | [인증](#oauth-token-revoked-or-expired) |

44| `does not meet scope requirement user:profile` | [인증](#oauth-scope-requirement) |45| `does not meet scope requirement user:profile` | [인증](#oauth-scope-requirement) |

45| `Unable to connect to API` | [네트워크](#unable-to-connect-to-api) |46| `Unable to connect to API` | [네트워크](#unable-to-connect-to-api) |


426* 조직의 Owner에게 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)에서 **Routines** 토글을 활성화하도록 요청합니다.427* 조직의 Owner에게 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)에서 **Routines** 토글을 활성화하도록 요청합니다.

427* 조직 수준의 루틴이 필요하지 않은 일회성 예약 작업의 경우 [예약된 작업](/ko/scheduled-tasks)을 참조하십시오.428* 조직 수준의 루틴이 필요하지 않은 일회성 예약 작업의 경우 [예약된 작업](/ko/scheduled-tasks)을 참조하십시오.

428 429 

430<h3 id="remote-control-requires-the-anthropic-api">

431 Remote Control requires the Anthropic API

432</h3>

433 

434세션이 Anthropic API와 직접 통신하지 않으므로 [Remote Control](/ko/remote-control)이 쌍을 이룰 claude.ai 백엔드가 없습니다.

435 

436```text theme={null}

437Remote Control is only available when using Claude via api.anthropic.com.

438```

439 

440이는 Amazon Bedrock, Google Vertex AI 및 Microsoft Foundry에 나타납니다. {/* min-version: 2.1.196 */}v2.1.196부터는 [`ANTHROPIC_BASE_URL`](/ko/env-vars)이 `api.anthropic.com` 이외의 호스트(예: [LLM 게이트웨이](/ko/llm-gateway) 또는 프록시)를 가리킬 때도 나타나며, claude.ai로 로그인한 경우에도 마찬가지입니다.

441 

442**할 일:**

443 

444* `ANTHROPIC_BASE_URL`을 설정 해제하고 세션을 다시 시작하거나 Anthropic API와 직접 통신하는 세션에서 Remote Control을 시작합니다.

445* 이 및 기타 Remote Control 시작 메시지의 경우 [Remote Control 문제 해결](/ko/remote-control#troubleshooting)을 참조하십시오.

446 

429<h3 id="oauth-token-revoked-or-expired">447<h3 id="oauth-token-revoked-or-expired">

430 OAuth token revoked or expired448 OAuth token revoked or expired

431</h3>449</h3>


727 thinking.type.enabled is not supported for this model745 thinking.type.enabled is not supported for this model

728</h3>746</h3>

729 747 

730Claude Code 버전이 Opus 4.7 또는 Opus 4.8의 최소값보다 오래되었습니다. CLI가 모델이 더 이상 허용하지 않는 생각 구성을 보냈습니다.748Claude Code 버전이 Sonnet 5, Opus 4.8 또는 Opus 4.7의 최소값보다 오래되었습니다. CLI가 모델이 더 이상 허용하지 않는 생각 구성을 보냈습니다.

731 749 

732```text theme={null}750```text theme={null}

733API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.751API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.


735 753 

736**할 일:**754**할 일:**

737 755 

738* `claude update`를 실행하고 Claude Code를 다시 시작합니다. Opus 4.7은 v2.1.111 이상이 필요합니다. Opus 4.8은 v2.1.154 이상이 필요합니다.756* `claude update`를 실행하고 Claude Code를 다시 시작합니다. Opus 4.7은 v2.1.111 이상이 필요합니다. Opus 4.8은 v2.1.154 이상이 필요합니다. Sonnet 5는 v2.1.197 이상이 필요합니다.

739* 업그레이드할 수 없으면 `/model`을 실행하고 Opus 4.6 또는 Sonnet을 선택합니다.757* 업그레이드할 수 없으면 `/model`을 실행하고 Opus 4.6 또는 Sonnet 4.6을 선택합니다.

740* Agent SDK에서 이를 맞으면 [SDK 문제 해결](/ko/agent-sdk/quickstart#troubleshooting) 참조하십시오.758* {/* min-version: agent-sdk@0.3.197 */}[Agent SDK](/ko/agent-sdk/overview)에서 이를 맞으면 SDK 패키지를 대신 업그레이드합니다. Opus 4.8은 TypeScript SDK v0.3.154 이상과 Python SDK v0.2.88 이상이 필요합니다. Sonnet 5는 TypeScript SDK v0.3.197 이상이 필요합니다.

741 759 

742<h3 id="thinking-budget-exceeds-output-limit">760<h3 id="thinking-budget-exceeds-output-limit">

743 Thinking budget exceeds output limit761 Thinking budget exceeds output limit

fullscreen.md +8 −2

Details

58* **`/` 명령 또는 `@` 파일 목록의 제안을 클릭**하여 수락합니다. 마우스 커서 위의 행을 강조 표시합니다.58* **`/` 명령 또는 `@` 파일 목록의 제안을 클릭**하여 수락합니다. 마우스 커서 위의 행을 강조 표시합니다.

59* **선택 메뉴의 옵션을 클릭**하여 선택합니다. 이는 권한 프롬프트, `/model`, `/config` 및 옵션 목록을 표시하는 기타 대화 상자를 포함합니다. 마우스 커서 위의 행에 포인터가 표시됩니다. {/* min-version: 2.1.187 */}Claude Code v2.1.187 이상이 필요합니다.59* **선택 메뉴의 옵션을 클릭**하여 선택합니다. 이는 권한 프롬프트, `/model`, `/config` 및 옵션 목록을 표시하는 기타 대화 상자를 포함합니다. 마우스 커서 위의 행에 포인터가 표시됩니다. {/* min-version: 2.1.187 */}Claude Code v2.1.187 이상이 필요합니다.

60* **축소된 도구 결과를 클릭**하여 확장하고 전체 출력을 봅니다. 다시 클릭하면 축소됩니다. 도구 호출과 그 결과가 함께 확장됩니다. 표시할 내용이 더 있는 메시지만 클릭 가능합니다.60* **축소된 도구 결과를 클릭**하여 확장하고 전체 출력을 봅니다. 다시 클릭하면 축소됩니다. 도구 호출과 그 결과가 함께 확장됩니다. 표시할 내용이 더 있는 메시지만 클릭 가능합니다.

61* **macOS에서 `Cmd`를 누르거나 Linux 및 Windows에서 `Ctrl`을 누르고 URL 또는 파일 경로를 클릭**하여 엽니다. Edit 또는 Write 후 인쇄된 것과 같은 도구 출력의 파일 경로는 기본 애플리케이션에서 열립니다. 일반 `http://` 및 `https://` URL은 브라우저에서 열립니다. v2.1.181부터 `Cmd` 또는 `Ctrl`을 누르지 않은 일반 클릭은 더 이상 링크를 열지 않으며, 기본 터미널 동작과 일치합니다. VS Code 통합 터미널 및 유사한 xterm.js 기반 터미널에서는 Claude Code가 터미널의 자체 링크 핸들러로 연기하며, 이는 동일한 제스처를 사용합니다.61* **macOS에서 `Cmd`를 누르거나 Linux 및 Windows에서 `Ctrl`을 누르고 URL 또는 파일 경로를 클릭**하여 엽니다. Edit 또는 Write 후 인쇄된 것과 같은 도구 출력의 파일 경로는 기본 애플리케이션에서 열립니다. 일반 `http://` 및 `https://` URL은 브라우저에서 열립니다. {/* min-version: 2.1.181 */}v2.1.181부터 `Cmd` 또는 `Ctrl`을 누르지 않은 일반 클릭은 더 이상 링크를 열지 않으며, 기본 터미널 동작과 일치합니다. VS Code 통합 터미널 및 유사한 xterm.js 기반 터미널에서는 Claude Code가 터미널의 자체 링크 핸들러로 연기하며, 이는 동일한 제스처를 사용합니다.

62* **클릭 및 드래그**하여 대화의 어디든지 텍스트를 선택합니다. 더블 클릭하면 단어를 선택하며, iTerm2의 단어 경계와 일치하므로 파일 경로가 하나의 단위로 선택됩니다. 트리플 클릭하면 줄을 선택합니다.62* **클릭 및 드래그**하여 대화의 어디든지 텍스트를 선택합니다. 더블 클릭하면 단어를 선택하며, iTerm2의 단어 경계와 일치하므로 파일 경로가 하나의 단위로 선택됩니다. 트리플 클릭하면 줄을 선택합니다.

63* **마우스 휠로 스크롤**하여 대화를 이동합니다.63* **마우스 휠로 스크롤**하여 대화를 이동합니다.

64 64 


123 대화 검색 및 검토123 대화 검색 및 검토

124</h2>124</h2>

125 125 

126`Ctrl+o`는 일반 프롬프트와 트랜스크립트 모드 사이를 전환합니다. 마지막 프롬프트, 편집 diffstat가 있는 도구 호출의 한 줄 요약, 최종 응답만 표시하는 더 조용한 보기의 경우 `/focus`를 실행합니다. 설정은 세션 전체에 유지됩니다. 끄려면 `/focus`를 다시 실행합니다.126`Ctrl+o`는 일반 프롬프트와 트랜스크립트 모드 사이를 전환합니다.

127 

128더 조용한 보기의 경우 `/focus`를 실행합니다. 이 보기는 마지막 프롬프트, 편집 diffstat가 있는 도구 호출의 한 줄 요약, 최종 응답만 표시합니다. 설정은 세션 전체에 유지됩니다. 끄려면 `/focus`를 다시 실행합니다.

127 129 

128트랜스크립트 모드는 `less` 스타일 탐색 및 검색을 얻습니다:130트랜스크립트 모드는 `less` 스타일 탐색 및 검색을 얻습니다:

129 131 


203 205 

204마우스 캡처가 비활성화되면 `PgUp`, `PgDn`, `Ctrl+Home`, `Ctrl+End`를 사용한 키보드 스크롤이 여전히 작동하고 터미널이 기본적으로 선택을 처리합니다. Claude Code 내에서 클릭하여 커서 위치 지정, 클릭하여 도구 출력 확장, URL 클릭, 휠 스크롤을 잃습니다.206마우스 캡처가 비활성화되면 `PgUp`, `PgDn`, `Ctrl+Home`, `Ctrl+End`를 사용한 키보드 스크롤이 여전히 작동하고 터미널이 기본적으로 선택을 처리합니다. Claude Code 내에서 클릭하여 커서 위치 지정, 클릭하여 도구 출력 확장, URL 클릭, 휠 스크롤을 잃습니다.

205 207 

208휠 스크롤은 유지하되 클릭, 드래그 및 호버 처리를 끄려면 대신 `CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1`을 설정합니다. Claude Code v2.1.195 이상이 필요합니다. 두 변수가 모두 설정된 경우 `CLAUDE_CODE_DISABLE_MOUSE`가 우선합니다.

209 

210클릭이 비활성화되면 Claude Code는 여전히 마우스를 캡처하므로 휠과 터치패드가 대화를 스크롤하지만 Claude Code 내에서 왼쪽 클릭은 아무 작동도 하지 않습니다. 기본 클릭 및 드래그 선택을 위해 터미널의 키를 누른 상태로 유지해야 합니다. 오른쪽 클릭과 중간 클릭 붙여넣기는 이를 지원하는 터미널에서 계속 작동합니다.

211 

206<h2 id="research-preview">212<h2 id="research-preview">

207 연구 미리보기213 연구 미리보기

208</h2>214</h2>

gateways.md +87 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 게이트웨이를 통해 Claude Code 실행

6 

7> Claude Code를 자체 호스팅 게이트웨이를 통해 라우팅하여 중앙 집중식 자격 증명, 사용량 추적 및 비용 제어를 수행합니다. 아키텍처, Anthropic의 Claude 앱 게이트웨이 및 다른 게이트웨이 제품 사용을 다룹니다.

8 

9게이트웨이는 Claude Code와 모델 제공자 사이에서 조직이 실행하는 프록시입니다. Claude Code는 제공자에게 직접 보내지 않고 게이트웨이로 API 트래픽을 전송하며, 게이트웨이는 조직이 보유한 자격 증명을 사용하여 이를 전달합니다. 개발자는 제공자 자격 증명을 보유하지 않고 게이트웨이에 인증하므로, 인증, 사용량 추적, 예산 및 감사 로깅이 사용자가 제어하는 한 곳에서 발생합니다.

10 

11Claude Code에는 `claude` 바이너리에 포함된 자체 호스팅 게이트웨이인 [Claude 앱 게이트웨이](/ko/claude-apps-gateway)가 포함되어 있으므로, 게이트웨이를 실행하기 위해 별도의 게이트웨이 제품을 채택할 필요가 없습니다. 조직이 이미 [LLM 게이트웨이](/ko/llm-gateway)를 실행 중인 경우, Claude Code도 이와 함께 작동합니다.

12 

13이 페이지에서 다루는 내용:

14 

15* [게이트웨이가 Claude Code와 제공자 사이에 어떻게 위치하는지](#how-a-gateway-works)

16* [Claude 앱 게이트웨이와 이미 실행 중인 게이트웨이 중 선택](#choose-a-gateway)

17* [게이트웨이가 claude.ai 구독과 상호 작용하는 방식](#subscriptions-and-gateways)

18* [게이트웨이와 별도로 구성되는 항목](#configure-separately-from-the-gateway)

19 

20<h2 id="how-a-gateway-works">

21 게이트웨이의 작동 방식

22</h2>

23 

24각 개발자의 Claude Code는 게이트웨이의 주소를 가리키도록 설정되고 게이트웨이에서 발급한 자격 증명으로 인증합니다.

25 

26게이트웨이는 개발자를 인증하고, 구성한 모든 액세스 및 예산 규칙을 적용하며, 조직의 자격 증명을 사용하여 요청을 제공자에게 전달합니다. 제공자는 Anthropic의 API이거나 Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry와 같은 [클라우드 제공자](/ko/third-party-integrations)일 수 있습니다. 게이트웨이의 구성이 결정합니다. Claude 앱 게이트웨이 또는 단일 Anthropic 형식 엔드포인트를 노출하는 다른 게이트웨이를 사용하면, 제공자를 변경해도 개발자 머신을 건드릴 필요가 없습니다.

27 

28<Frame>

29 <img src="https://mintcdn.com/claude-code/-uq-4JE0W_JO5Er5/images/llm-gateway-flow.svg?fit=max&auto=format&n=-uq-4JE0W_JO5Er5&q=85&s=1c1a8dcc0cfcc3a58652cc8e28cd3e20" alt="Claude Code가 게이트웨이를 통해 라우팅되는 것을 보여주는 다이어그램입니다. 개발자 머신 영역에서 Claude Code CLI 및 VS Code 확장은 개발자별 자격 증명을 사용하여 게이트웨이 주소로 요청을 전송합니다. 사용자 인프라로 표시된 영역에서 게이트웨이는 인증, 사용량 추적, 예산 및 라우팅을 처리하고 조직의 자격 증명을 사용하여 요청을 전달합니다. 모델 제공자 영역에서 실선 화살표는 구성한 제공자(Anthropic API로 표시)로 이동하고, 점선 화살표는 Amazon Bedrock, Google Cloud 및 Microsoft Foundry를 예로 들어 다른 제공자 옵션으로 이동합니다." width="780" height="322" data-path="images/llm-gateway-flow.svg" />

30</Frame>

31 

32두 가지 종류의 자격 증명이 관련됩니다:

33 

34* **개발자 자격 증명**: 각 개발자가 게이트웨이에서 발급한 자신의 자격 증명을 보유합니다. 게이트웨이에 인증하고 사용량 추적에서 개발자를 식별합니다.

35* **제공자 자격 증명**: 게이트웨이가 제공자 계정에 대한 하나의 자격 증명을 보유하며, 모든 전달된 트래픽에서 공유됩니다.

36 

37<h2 id="choose-a-gateway">

38 게이트웨이 선택

39</h2>

40 

41Claude Code는 Anthropic의 자체 게이트웨이 또는 조직이 이미 실행 중인 게이트웨이와 함께 작동합니다.

42 

43<h3 id="claude-apps-gateway">

44 Claude 앱 게이트웨이

45</h3>

46 

47Claude 앱 게이트웨이는 `claude` 바이너리에 포함된 Anthropic의 자체 호스팅 게이트웨이입니다. Amazon Bedrock, Google Cloud, Microsoft Foundry 또는 Anthropic API를 업스트림으로 라우팅합니다. 개발자는 `/login`을 통해 회사 ID 제공자로 로그인하고, 게이트웨이는 IdP 그룹별로 모델 액세스 및 [관리 설정](/ko/permissions#managed-settings)을 적용하며, [OpenTelemetry Protocol (OTLP)](/ko/monitoring-usage) 사용량 메트릭을 자신의 관찰성 스택으로 내보냅니다.

48 

49각 Claude Code 릴리스와 함께 빌드되고 테스트되므로, Claude Code가 전송하는 헤더 및 요청 필드를 전달합니다. 별도로 유지 관리되는 게이트웨이는 각 릴리스에서 해당 헤더 및 필드가 변경될 때 [전달 규칙을 업데이트](/ko/llm-gateway-protocol#forward-as-open-lists)해야 합니다. Claude 앱 게이트웨이는 CLI와 함께 릴리스되므로 최신 상태를 유지할 목록이 없습니다. [가용성 및 제한 사항](/ko/claude-apps-gateway#availability-and-limitations)에서 게이트웨이 세션에서 다르게 작동하는 작은 기능 집합을 참조하세요.

50 

51게이트웨이 로그인은 브라우저 SSO 단계이며 서비스 토큰 흐름이 없으므로, 승인할 개발자가 없는 CI 파이프라인은 이를 통해 인증할 수 없습니다. 이러한 경우 제공자에 대해 직접 구성하세요. Agent SDK 세션 및 개발자가 로그인한 머신에서의 `claude -p` 실행은 해당 머신의 게이트웨이 세션을 사용하며 해당 정책의 적용을 받습니다. [CI 파이프라인 및 원격 머신](/ko/claude-apps-gateway#ci-pipelines-and-remote-machines)을 참조하세요.

52 

53배포하려면 [Claude 앱 게이트웨이](/ko/claude-apps-gateway)를 참조하세요.

54 

55<h3 id="other-gateways">

56 다른 게이트웨이

57</h3>

58 

59조직이 이미 LLM 게이트웨이 또는 API 게이트웨이를 실행 중인 경우, 대신 이를 사용할 수 있습니다. Anthropic은 다른 게이트웨이 제품을 승인, 유지 관리 또는 감사하지 않으며, 어떤 게이트웨이를 통해서도 Claude Code를 비 Claude 모델로 라우팅하는 것을 지원하지 않습니다. 관리자 롤아웃 체크리스트, 게이트웨이가 구현해야 할 사항 및 Claude Code를 이에 가리키는 방법은 [다른 LLM 게이트웨이](/ko/llm-gateway)를 참조하세요.

60 

61<h2 id="subscriptions-and-gateways">

62 구독 및 게이트웨이

63</h2>

64 

65개발자가 게이트웨이 자격 증명을 사용하여 게이트웨이를 통해 연결할 때, 사용량은 API 요금으로 조직의 제공자 계정에 청구되며, 해당 claude.ai 구독은 사용되거나 청구되지 않습니다. 실행 중인 게이트웨이에 대해 [`ANTHROPIC_AUTH_TOKEN`](/ko/env-vars)을 설정하거나 `/login`을 사용하여 Claude 앱 게이트웨이에 로그인하면 해당 세션에 대한 구독 로그인이 비활성화됩니다. 해당 자격 증명으로 전달된 모든 요청은 게이트웨이의 제공자 자격 증명 뒤의 계정에 청구됩니다.

66 

67예외는 게이트웨이 자격 증명 없이 `ANTHROPIC_BASE_URL`만 설정하는 경우입니다. 요청은 여전히 게이트웨이를 통해 라우팅되지만, 저장된 claude.ai 로그인은 활성 자격 증명으로 유지되므로 구독의 사용량 제한 및 청구가 적용됩니다. [다른 LLM 게이트웨이](/ko/llm-gateway#subscriptions-and-gateways)에서 해당 구성 및 작동하기 위해 게이트웨이가 전달해야 할 사항을 다룹니다.

68 

69<h2 id="configure-separately-from-the-gateway">

70 게이트웨이와 별도로 구성

71</h2>

72 

73게이트웨이는 모델 API 요청을 라우팅합니다. 게이트웨이가 처리할 것으로 예상할 수 있는 몇 가지 항목은 다른 곳에서 구성됩니다:

74 

75* **어떤 모델이 응답하는지**: `/model` 명령 또는 [모델 환경 변수](/ko/model-config#setting-your-model)로 모델을 선택합니다. 게이트웨이는 요청이 어디로 가는지 결정하며, 개발자가 선택한 모델이 아닙니다. Claude 앱 게이트웨이는 그룹별 `availableModels` 허용 목록으로 선택을 제한할 수 있지만, 개발자는 여전히 그 범위 내에서 선택합니다.

76* **다른 네트워크 트래픽**: Claude Code 자체는 버전 확인을 전송하고 게이트웨이 경로와 별도로 Anthropic에서 직접 다운로드합니다. 선택적 클라이언트 원격 분석 스트림도 켜져 있는지 여부는 제공자에 따라 다릅니다. [원격 분석 기본값 표](/ko/data-usage#telemetry-services)에서 각 경우를 다룹니다. 로그인한 Claude 앱 게이트웨이 세션에서 게이트웨이 자격 증명은 Anthropic 바운드 분석을 비활성화하고, [원격 분석 전달](/ko/claude-apps-gateway-config#telemetry)이 구성된 경우 OTLP 내보내기를 게이트웨이에 고정합니다. 네트워크는 여전히 [필수 도메인](/ko/network-config)으로의 송신이 필요하거나 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/ko/env-vars)을 설정하여 선택적 스트림을 끕니다.

77* **회사 HTTP 프록시**: `HTTPS_PROXY`는 Claude Code와 게이트웨이를 포함하여 통신하는 모든 서버 사이에 위치합니다. 네트워크에 필요한 경우, 게이트웨이 외에 [프록시를 구성](/ko/network-config)하세요. Claude 앱 게이트웨이의 경우, [로그인은 프록시 호스트도 개인 네트워크에 있는지 확인](/ko/claude-apps-gateway#prerequisites)합니다. 그렇지 않으면 게이트웨이 호스트를 `NO_PROXY`에 추가하여 CLI가 직접 연결하도록 하세요.

78 

79<h2 id="next-steps">

80 다음 단계

81</h2>

82 

83다음 페이지는 게이트웨이를 실행하는 사람에 따라 다릅니다. Anthropic의 게이트웨이는 `claude` 바이너리에서 실행되며 자체 설정 가이드가 있습니다. 조직이 이미 실행 중인 게이트웨이는 구현할 프로토콜과 관리자 롤아웃 체크리스트가 있습니다.

84 

85* [Claude 앱 게이트웨이](/ko/claude-apps-gateway) - SSO 로그인 및 OTLP 원격 분석을 사용하여 Anthropic의 자체 호스팅 게이트웨이 배포

86* [다른 LLM 게이트웨이](/ko/llm-gateway) - 조직이 이미 실행 중인 게이트웨이가 구현해야 할 사항 및 Claude Code를 이에 가리키는 방법

87* [조직을 위해 Claude Code 설정](/ko/admin-setup) - 게이트웨이가 한 부분인 더 넓은 롤아웃 결정

Details

127 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}127 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

128 custom_instructions: "Follow our coding standards"128 custom_instructions: "Follow our coding standards"

129 max_turns: "10"129 max_turns: "10"

130 model: "claude-sonnet-4-6"130 model: "claude-sonnet-5"

131```131```

132 132 

133**GA 버전 (v1.0):**133**GA 버전 (v1.0):**


140 claude_args: |140 claude_args: |

141 --append-system-prompt "Follow our coding standards"141 --append-system-prompt "Follow our coding standards"

142 --max-turns 10142 --max-turns 10

143 --model claude-sonnet-4-6143 --model claude-sonnet-5

144```144```

145 145 

146<Tip>146<Tip>


228 228 

229이슈 또는 PR 댓글에서:229이슈 또는 PR 댓글에서:

230 230 

231```text theme={null}231```text wrap theme={null}

232@claude implement this feature based on the issue description232@claude implement this feature based on the issue description

233@claude how should I implement user authentication for this endpoint?233@claude how should I implement user authentication for this endpoint?

234@claude fix the TypeError in the user dashboard component234@claude fix the TypeError in the user dashboard component


709`claude_args` 파라미터는 모든 Claude Code CLI 인수를 허용합니다:709`claude_args` 파라미터는 모든 Claude Code CLI 인수를 허용합니다:

710 710 

711```yaml theme={null}711```yaml theme={null}

712claude_args: "--max-turns 5 --model claude-sonnet-4-6 --mcp-config /path/to/config.json"712claude_args: "--max-turns 5 --model claude-sonnet-5 --mcp-config /path/to/config.json"

713```713```

714 714 

715일반적인 인수:715일반적인 인수:

716 716 

717* `--max-turns`: 최대 대화 턴 (기본값: 10)717* `--max-turns`: 최대 대화 턴 (기본값: 10)

718* `--model`: 사용할 모델 (예: `claude-sonnet-4-6`)718* `--model`: 사용할 모델 (예: `claude-sonnet-5`)

719* `--mcp-config`: MCP 구성 경로719* `--mcp-config`: MCP 구성 경로

720* `--allowedTools`: 허용된 도구의 쉼표로 구분된 목록. `--allowed-tools` 별칭도 작동합니다.720* `--allowedTools`: 허용된 도구의 쉼표로 구분된 목록. `--allowed-tools` 별칭도 작동합니다.

721* `--debug`: 디버그 출력 활성화721* `--debug`: 디버그 출력 활성화

glossary.md +1 −1

Details

170 Effort level170 Effort level

171</h3>171</h3>

172 172 

173각 턴에서 Claude가 적응형 추론 사고 예산을 얼마나 사용할지 제어하는 설정입니다. 더 높은 노력은 더 많은 사고 토큰과 더 깊은 추론을 의미합니다. 더 낮은 노력은 더 빠르고 저렴합니다. Effort는 Fable 5, Opus 4.6 이상 및 Sonnet 4.6에서 지원됩니다.173각 턴에서 Claude가 적응형 추론 사고 예산을 얼마나 사용할지 제어하는 설정입니다. 더 높은 노력은 더 많은 사고 토큰과 더 깊은 추론을 의미합니다. 더 낮은 노력은 더 빠르고 저렴합니다. Effort는 Fable 5, Opus 4.6 이상 및 Sonnet 4.6 이상에서 지원됩니다.

174 174 

175자세히 알아보기: [노력 수준 조정](/ko/model-config#adjust-effort-level)175자세히 알아보기: [노력 수준 조정](/ko/model-config#adjust-effort-level)

176 176 

Details

236 236 

237```bash theme={null}237```bash theme={null}

238export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'238export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'

239export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-4-6'239export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-5'

240export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5@20251001'240export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5@20251001'

241```241```

242 242 


290 1M 토큰 context window290 1M 토큰 context window

291</h2>291</h2>

292 292 

293Claude Opus 4.6 이상 및 Sonnet 4.6은 Vertex AI에서 [1M 토큰 context window](https://platform.claude.com/docs/ko/build-with-claude/context-windows#1m-token-context-window)를 지원합니다. Claude Code는 1M 모델 변형을 선택할 때 확장된 context window를 자동으로 활성화합니다.293Claude Sonnet 5, Opus 4.6 이상 및 Sonnet 4.6은 Vertex AI에서 [1M 토큰 context window](https://platform.claude.com/docs/ko/build-with-claude/context-windows#1m-token-context-window)를 지원합니다. Sonnet 5는 항상 1M 윈도우로 실행되며, 선택할 `[1m]` 변형이 없습니다. 다른 모델의 경우, Claude Code는 1M 모델 변형을 선택할 때 확장된 context window를 자동으로 활성화합니다.

294 294 

295[설정 마법사](#sign-in-with-vertex-ai)는 모델을 고정할 때 1M context 옵션을 제공합니다. 수동으로 고정된 모델에 대해 대신 활성화하려면 모델 ID에 `[1m]`을 추가합니다. 자세한 내용은 [타사 배포를 위한 모델 고정](/ko/model-config#pin-models-for-third-party-deployments)을 참조하십시오.295[설정 마법사](#sign-in-with-vertex-ai)는 모델을 고정할 때 1M context 옵션을 제공합니다. 수동으로 고정된 모델에 대해 대신 활성화하려면 모델 ID에 `[1m]`을 추가합니다. 자세한 내용은 [타사 배포를 위한 모델 고정](/ko/model-config#pin-models-for-third-party-deployments)을 참조하십시오.

296 296 

hooks.md +52 −19

Details

191`matcher` 필드는 hook이 발생할 때를 필터링합니다. matcher가 평가되는 방식은 포함된 문자에 따라 다릅니다:191`matcher` 필드는 hook이 발생할 때를 필터링합니다. matcher가 평가되는 방식은 포함된 문자에 따라 다릅니다:

192 192 

193| Matcher 값 | 평가 대상 | 예제 |193| Matcher 값 | 평가 대상 | 예제 |

194| :----------------------------- | :---------------------------------------------------- | :-------------------------------------------------------------------------------- |194| :---------------------------------- | :---------------------------------------------------- | :-------------------------------------------------------------------------------------------------------- |

195| `"*"`, `""` 또는 생략됨 | 모두 일치 | 이벤트의 모든 발생에서 발생 |195| `"*"`, `""` 또는 생략됨 | 모두 일치 | 이벤트의 모든 발생에서 발생 |

196| 문자, 숫자, `_`, 공백, `,`, `\|`만 포함 | 정확한 문자열 또는 `\|` 또는 `,`로 구분된 정확한 문자열 목록 (선택적 주변 공백 포함) | `Bash`는 Bash 도구만 일치; `Edit\|Write` 및 `Edit, Write`는 각각 두 도구 중 하나와 정확히 일치 |196| 문자, 숫자, `_`, `-`, 공백, `,`, `\|`만 포함 | 정확한 문자열 또는 `\|` 또는 `,`로 구분된 정확한 문자열 목록 (선택적 주변 공백 포함) | `Bash`는 Bash 도구만 일치; `Edit\|Write` 및 `Edit, Write`는 각각 두 도구 중 하나와 정확히 일치; `code-reviewer`는 해당 에이전트 유형만 일치 |

197| 다른 문자 포함 | JavaScript 정규식 | `^Notebook`은 Notebook으로 시작하는 모든 도구와 일치; `mcp__memory__.*`는 `memory` 서버의 모든 도구와 일치 |197| 다른 문자 포함 | JavaScript 정규식, 앵커 없음 | `^Notebook`은 Notebook으로 시작하는 모든 도구와 일치; `mcp__memory__.*`는 `memory` 서버의 모든 도구와 일치 |

198 198 

199쉼표 구분자와 주변 공백 허용은 Claude Code v2.1.191 이상이 필요합니다. `FileChanged` 및 `StopFailure` 이벤트는 `|`만 목록 구분자로 허용하고 `,` 리터럴 문자로 취급합니다. 다음 표에 나열된 다른 모든 이벤트는 `|` 또는 `,` 허용합니다.199JavaScript의 `RegExp.prototype.test`로 테스트되는 정규식 경로의 matcher는 값의 어디든지 일치하면 성공합니다. `Edit.*` `Edit` `NotebookEdit` 모두와 일치합니다. 전체 문자열 일치가 필요할 때는 `^Edit$`처럼 패턴을 `^` `$` 감싸세요.

200 

201쉼표 구분자와 주변 공백 허용은 Claude Code v2.1.191 이상이 필요합니다.

202 

203정확한 일치 집합의 하이픈은 Claude Code v2.1.195 이상이 필요합니다. 이전 버전에서는 `code-reviewer`와 같은 하이픈이 있는 이름이 앵커 없는 정규식으로 평가되므로 `senior-code-reviewer`에도 발생합니다. 해당 버전에서 해당 이름만 일치하도록 `^code-reviewer$`로 앵커하세요.

204 

205`FileChanged` 및 `StopFailure`는 문자, 숫자, `_`, `|`만 포함하는 더 좁은 정확한 일치 집합을 사용합니다. matcher에 하이픈, 공백 또는 쉼표가 있으면 이 두 이벤트에 대해 정규식 경로에 유지되고 `|`만 대안을 구분합니다. 다음 표에서 matcher 지원이 있는 다른 모든 이벤트는 `|` 또는 `,`를 허용합니다.

200 206 

201`FileChanged` 이벤트는 감시 목록을 구축할 때 이러한 규칙을 따르지 않습니다. [FileChanged](#filechanged)를 참조하세요.207`FileChanged` 이벤트는 감시 목록을 구축할 때 이러한 규칙을 따르지 않습니다. [FileChanged](#filechanged)를 참조하세요.

202 208 


209| `Setup` | 설정을 트리거한 CLI 플래그 | `init`, `maintenance` |215| `Setup` | 설정을 트리거한 CLI 플래그 | `init`, `maintenance` |

210| `SessionEnd` | 세션이 종료된 이유 | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |216| `SessionEnd` | 세션이 종료된 이유 | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |

211| `Notification` | 알림 유형 | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response` |217| `Notification` | 알림 유형 | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response` |

212| `SubagentStart` | 에이전트 유형 | `general-purpose`, `Explore`, `Plan` 또는 사용자 정의 에이전트 이름 |218| `SubagentStart` | 에이전트 유형 | `general-purpose`, `Explore`, `Plan`, 사용자 정의 에이전트 이름 또는 `^my-plugin:reviewer$`와 같은 plugin 범위 이름 |

213| `PreCompact`, `PostCompact` | 압축을 트리거한 것 | `manual`, `auto` |219| `PreCompact`, `PostCompact` | 압축을 트리거한 것 | `manual`, `auto` |

214| `SubagentStop` | 에이전트 유형 | `SubagentStart`와 동일한 값 |220| `SubagentStop` | 에이전트 유형 | `SubagentStart`와 동일한 값 |

215| `ConfigChange` | 구성 소스 | `user_settings`, `project_settings`, `local_settings`, `policy_settings`, `skills` |221| `ConfigChange` | 구성 소스 | `user_settings`, `project_settings`, `local_settings`, `policy_settings`, `skills` |


244}250}

245```251```

246 252 

247`UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `MessageDisplay`는 matcher를 지원하지 않으며 모든 발생에서 항상 발생합니다. 이러한 이벤트에 `matcher` 필드를 추가하면 자동으로 무시됩니다.253`UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `MessageDisplay`, `CwdChanged`는 matcher를 지원하지 않으며 모든 발생에서 항상 발생합니다. 이러한 이벤트에 `matcher` 필드를 추가하면 자동으로 무시됩니다.

248 254 

249도구 이벤트의 경우 개별 hook 핸들러에서 [`if` 필드](#common-fields)를 설정하여 더 좁게 필터링할 수 있습니다. `if`는 [권한 규칙 구문](/ko/permissions)을 사용하여 도구 이름과 인수를 함께 일치시키므로 `"Bash(git *)"` 는 `git *` 패턴과 일치하는 모든 하위 명령에서 실행되고 `"Edit(*.ts)"`는 TypeScript 파일에만 실행됩니다.255도구 이벤트의 경우 개별 hook 핸들러에서 [`if` 필드](#common-fields)를 설정하여 더 좁게 필터링할 수 있습니다. `if`는 [권한 규칙 구문](/ko/permissions)을 사용하여 도구 이름과 인수를 함께 일치시키므로 `"Bash(git *)"` 는 `git *` 패턴과 일치하는 모든 하위 명령에서 실행되고 `"Edit(*.ts)"`는 TypeScript 파일에만 실행됩니다.

250 256 


263서버의 모든 도구와 일치하려면 서버 접두사에 `.*`를 추가합니다. `.*`는 필수입니다: `mcp__memory`와 같은 matcher는 문자와 밑줄만 포함하므로 정확한 문자열로 비교되고 도구와 일치하지 않습니다.269서버의 모든 도구와 일치하려면 서버 접두사에 `.*`를 추가합니다. `.*`는 필수입니다: `mcp__memory`와 같은 matcher는 문자와 밑줄만 포함하므로 정확한 문자열로 비교되고 도구와 일치하지 않습니다.

264 270 

265* `mcp__memory__.*`는 `memory` 서버의 모든 도구와 일치합니다271* `mcp__memory__.*`는 `memory` 서버의 모든 도구와 일치합니다

272* `mcp__brave-search__.*`는 이름에 하이픈이 있는 서버의 모든 도구와 일치합니다

266* `mcp__.*__write.*`는 모든 서버의 이름이 `write`로 시작하는 모든 도구와 일치합니다273* `mcp__.*__write.*`는 모든 서버의 이름이 `write`로 시작하는 모든 도구와 일치합니다

267 274 

275정확한 일치 집합의 하이픈은 Claude Code v2.1.195 이상이 필요합니다. 이전 버전에서는 `mcp__brave-search`와 같은 bare 하이픈이 있는 접두사가 앵커 없는 정규식으로 평가되고 해당 서버의 모든 도구와 일치합니다. `mcp__brave-search__.*` 형식은 모든 버전에서 작동합니다.

276 

268이 예제는 모든 memory 서버 작업을 기록하고 모든 MCP 서버의 쓰기 작업을 검증합니다:277이 예제는 모든 memory 서버 작업을 기록하고 모든 MCP 서버의 쓰기 작업을 검증합니다:

269 278 

270```json theme={null}279```json theme={null}


306* **[프롬프트 hook](#prompt-and-agent-hook-fields)** (`type: "prompt"`): Claude 모델에 단일 턴 평가를 위한 프롬프트를 전송합니다. 모델은 yes/no 결정을 JSON으로 반환합니다. [프롬프트 기반 hook](#prompt-based-hooks)을 참조하세요.315* **[프롬프트 hook](#prompt-and-agent-hook-fields)** (`type: "prompt"`): Claude 모델에 단일 턴 평가를 위한 프롬프트를 전송합니다. 모델은 yes/no 결정을 JSON으로 반환합니다. [프롬프트 기반 hook](#prompt-based-hooks)을 참조하세요.

307* **[에이전트 hook](#prompt-and-agent-hook-fields)** (`type: "agent"`): Read, Grep, Glob과 같은 도구를 사용하여 결정을 반환하기 전에 조건을 확인할 수 있는 subagent를 생성합니다. 에이전트 hook은 실험적이며 변경될 수 있습니다. [에이전트 기반 hook](#agent-based-hooks)을 참조하세요.316* **[에이전트 hook](#prompt-and-agent-hook-fields)** (`type: "agent"`): Read, Grep, Glob과 같은 도구를 사용하여 결정을 반환하기 전에 조건을 확인할 수 있는 subagent를 생성합니다. 에이전트 hook은 실험적이며 변경될 수 있습니다. [에이전트 기반 hook](#agent-based-hooks)을 참조하세요.

308 317 

318일치하는 모든 hook은 병렬로 실행되며 동일한 핸들러는 자동으로 중복 제거됩니다. 명령 hook은 명령 문자열과 `args`로 중복 제거되고 HTTP hook은 URL로 중복 제거됩니다.

319 

320핸들러는 현재 디렉토리에서 Claude Code의 환경으로 실행됩니다. `$CLAUDE_CODE_REMOTE` 환경 변수는 원격 웹 환경에서 `"true"`로 설정되고 로컬 CLI에서는 설정되지 않습니다.

321 

309<h4 id="common-fields">322<h4 id="common-fields">

310 공통 필드323 공통 필드

311</h4>324</h4>


341[공통 필드](#common-fields) 외에도 명령 hook은 이러한 필드를 허용합니다:354[공통 필드](#common-fields) 외에도 명령 hook은 이러한 필드를 허용합니다:

342 355 

343| 필드 | 필수 | 설명 |356| 필드 | 필수 | 설명 |

344| :------------ | :-- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |357| :------------ | :-- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

345| `command` | 예 | 실행할 셸 명령. `args`와 함께 직접 생성할 실행 파일입니다. [Exec 형식 및 셸 형식](#exec-form-and-shell-form) 참조 |358| `command` | 예 | 실행할 셸 명령. `args`와 함께 직접 생성할 실행 파일입니다. [Exec 형식 및 셸 형식](#exec-form-and-shell-form) 참조 |

346| `args` | 아니오 | 인수 목록. 존재할 때 `command`는 실행 파일로 해결되고 `args`를 인수 벡터로 하여 직접 생성되며 셸이 관여하지 않습니다. [Exec 형식 및 셸 형식](#exec-form-and-shell-form) 참조 |359| `args` | 아니오 | 인수 목록. 존재할 때 `command`는 실행 파일로 해결되고 `args`를 인수 벡터로 하여 직접 생성되며 셸이 관여하지 않습니다. [Exec 형식 및 셸 형식](#exec-form-and-shell-form) 참조 |

347| `async` | 아니오 | `true`인 경우 차단하지 않고 백그라운드에서 실행됩니다. [백그라운드에서 hook 실행](#run-hooks-in-the-background) 참조 |360| `async` | 아니오 | `true`인 경우 차단하지 않고 백그라운드에서 실행됩니다. [백그라운드에서 hook 실행](#run-hooks-in-the-background) 참조 |

348| `asyncRewake` | 아니오 | `true`인 경우 백그라운드에서 실행되고 종료 코드 2에서 Claude를 깨웁니다. `async`를 의미합니다. hook의 stderr 또는 stderr이 비어 있으면 stdout이 Claude에 시스템 알림으로 표시되므로 장기 실행 백그라운드 실패에 반응할 수 있습니다 |361| `asyncRewake` | 아니오 | `true`인 경우 백그라운드에서 실행되고 종료 코드 2에서 Claude를 깨웁니다. `async`를 의미합니다. hook의 stderr 또는 stderr이 비어 있으면 stdout이 Claude에 시스템 알림으로 표시되므로 장기 실행 백그라운드 실패에 반응할 수 있습니다 |

349| `shell` | 아니오 | 이 hook에 사용할 셸. `"bash"` (기본값) 또는 `"powershell"`을 허용합니다. `"powershell"`을 설정하면 Windows에서 PowerShell을 통해 명령을 실행합니다. `CLAUDE_CODE_USE_POWERSHELL_TOOL`이 필요하지 않습니다. hook이 PowerShell을 직접 생성하기 때문입니다. `args`가 설정되면 무시됩니다 |362| `shell` | 아니오 | 이 hook에 사용할 셸. `"bash"` 또는 `"powershell"`을 허용합니다. 기본값은 `"bash"` 또는 Git Bash가 설치되지 않았을 때 Windows에서 `"powershell"`입니다. `"powershell"`을 설정하면 Windows에서 PowerShell을 통해 명령을 실행합니다. `CLAUDE_CODE_USE_POWERSHELL_TOOL`이 필요하지 않습니다. hook이 PowerShell을 직접 생성하기 때문입니다. `args`가 설정되면 무시됩니다 |

350 363 

351<a id="exec-form-and-shell-form" />364<a id="exec-form-and-shell-form" />

352 365 


479| `prompt` | 예 | 모델에 전송할 프롬프트 텍스트. hook 입력 JSON에 대한 자리 표시자로 `$ARGUMENTS` 사용. 리터럴 텍스트를 포함하려면 백슬래시로 이스케이프: `\$1.00`은 `$1.00`으로 렌더링됨 |492| `prompt` | 예 | 모델에 전송할 프롬프트 텍스트. hook 입력 JSON에 대한 자리 표시자로 `$ARGUMENTS` 사용. 리터럴 텍스트를 포함하려면 백슬래시로 이스케이프: `\$1.00`은 `$1.00`으로 렌더링됨 |

480| `model` | 아니오 | 평가에 사용할 모델. 기본값은 빠른 모델 |493| `model` | 아니오 | 평가에 사용할 모델. 기본값은 빠른 모델 |

481 494 

482일치하는 모든 hook은 병렬로 실행되며 동일한 핸들러는 자동으로 중복 제거됩니다. 명령 hook은 명령 문자열과 `args`로 중복 제제거되고 HTTP hook은 URL로 중복 제거됩니다. 핸들러는 현재 디렉토리에서 Claude Code의 환경으로 실행됩니다. `$CLAUDE_CODE_REMOTE` 환경 변수는 원격 웹 환경에서 `"true"`로 설정되고 로컬 CLI에서는 설정되지 않습니다.

483 

484<h3 id="reference-scripts-by-path">495<h3 id="reference-scripts-by-path">

485 경로별로 스크립트 참조496 경로별로 스크립트 참조

486</h3>497</h3>


620| 필드 | 설명 |631| 필드 | 설명 |

621| :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |632| :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

622| `session_id` | 현재 세션 식별자 |633| `session_id` | 현재 세션 식별자 |

634| `prompt_id` | 현재 처리 중인 사용자 프롬프트를 식별하는 UUID입니다. [OpenTelemetry 이벤트의 `prompt.id` 속성](/ko/monitoring-usage#event-correlation-attributes)과 일치하므로 hook 출력을 단일 프롬프트의 원격 분석과 연관시킬 수 있습니다. 첫 번째 사용자 입력까지 없습니다. {/* min-version: 2.1.196 */}Claude Code v2.1.196 이상 필요 |

623| `transcript_path` | 대화 JSON 경로 |635| `transcript_path` | 대화 JSON 경로 |

624| `cwd` | hook이 호출될 때의 현재 작업 디렉토리 |636| `cwd` | hook이 호출될 때의 현재 작업 디렉토리 |

625| `permission_mode` | 현재 [권한 모드](/ko/permissions#permission-modes): `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, `"dontAsk"` 또는 `"bypassPermissions"`. 모든 이벤트가 이 필드를 받는 것은 아닙니다: 각 이벤트의 JSON 예제를 확인하세요 |637| `permission_mode` | 현재 [권한 모드](/ko/permissions#permission-modes): `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, `"dontAsk"` 또는 `"bypassPermissions"`. 모든 이벤트가 이 필드를 받는 것은 아닙니다: 각 이벤트의 JSON 예제를 확인하세요 |


629`--agent`로 실행하거나 subagent 내부에서 실행할 때 두 개의 추가 필드가 포함됩니다:641`--agent`로 실행하거나 subagent 내부에서 실행할 때 두 개의 추가 필드가 포함됩니다:

630 642 

631| 필드 | 설명 |643| 필드 | 설명 |

632| :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |644| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

633| `agent_id` | subagent의 고유 식별자. hook이 subagent 호출 내부에서 발생할 때만 존재합니다. 이를 사용하여 subagent hook 호출을 메인 스레드 호출과 구별합니다. |645| `agent_id` | subagent의 고유 식별자. hook이 subagent 호출 내부에서 발생할 때만 존재합니다. 이를 사용하여 subagent hook 호출을 메인 스레드 호출과 구별합니다. |

634| `agent_type` | 에이전트 이름 (예: `"Explore"` 또는 `"security-reviewer"`). 세션이 `--agent`를 사용하거나 hook이 subagent 내부에서 발생할 때 존재합니다. subagent의 경우 subagent의 유형이 세션의 `--agent` 값보다 우선합니다. [사용자 정의 subagent](/ko/sub-agents)의 경우 이는 에이전트의 frontmatter에서 `name` 필드이며 파일명이 아닙니다. |646| `agent_type` | 에이전트 이름 (예: `"Explore"` 또는 `"security-reviewer"`). 세션이 `--agent`를 사용하거나 hook이 subagent 내부에서 발생할 때 존재합니다. subagent의 경우 subagent의 유형이 세션의 `--agent` 값보다 우선합니다. [사용자 정의 subagent](/ko/sub-agents)의 경우 이는 에이전트의 frontmatter에서 `name` 필드이며 파일명이 아닙니다. [플러그인](/ko/plugins)에서 제공하는 subagent의 경우 이는 `my-plugin:reviewer`와 같은 플러그인 범위 식별자이며 bare frontmatter 이름이 아닙니다. 플러그인 범위 이름에 대해 matcher를 작성하는 방법은 [SubagentStart](#subagentstart)를 참조하세요. |

635 647 

636`SessionStart` hook만 `model` 필드를 받을 수 있으며 존재가 보장되지 않습니다. `$CLAUDE_MODEL` 환경 변수는 없습니다. hook 프로세스는 부모 환경을 상속하므로 셸에서 설정한 경우 `$ANTHROPIC_MODEL`을 읽을 수 있지만 세션 중에 `/model`로 모델을 전환할 때 해당 값은 변경되지 않습니다.648`SessionStart` hook만 `model` 필드를 받을 수 있으며 존재가 보장되지 않습니다. `$CLAUDE_MODEL` 환경 변수는 없습니다. hook 프로세스는 부모 환경을 상속하므로 셸에서 설정한 경우 `$ANTHROPIC_MODEL`을 읽을 수 있지만 세션 중에 `/model`로 모델을 전환할 때 해당 값은 변경되지 않습니다.

637 649 


640```json theme={null}652```json theme={null}

641{653{

642 "session_id": "abc123",654 "session_id": "abc123",

655 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",

643 "transcript_path": "/home/user/.claude/projects/.../transcript.jsonl",656 "transcript_path": "/home/user/.claude/projects/.../transcript.jsonl",

644 "cwd": "/home/user/my-project",657 "cwd": "/home/user/my-project",

645 "permission_mode": "default",658 "permission_mode": "default",


796# Notification hook: Claude Code가 주의가 필요할 때 데스크톱을 ping합니다.809# Notification hook: Claude Code가 주의가 필요할 때 데스크톱을 ping합니다.

797input=$(cat)810input=$(cat)

798title="Claude Code'811title="Claude Code'

799body=$(jq -r '.message // 'Needs your attention'' <<<'$input")812body=$(jq -r '.message // 'Needs your attention"' <<<"$input")

800seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")813seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")

801jq -nc --arg seq "$seq" '{terminalSequence: $seq}'814jq -nc --arg seq "$seq" '{terminalSequence: $seq}'

802```815```


867 880 

868일부 이벤트는 또한 허용 또는 차단하는 것이 아니라 콘텐츠를 다시 작성할 수 있습니다:881일부 이벤트는 또한 허용 또는 차단하는 것이 아니라 콘텐츠를 다시 작성할 수 있습니다:

869 882 

870* `PreToolUse` `hookSpecificOutput` 바로 아래의 `updatedInput`은 실행 전에 도구의 인수를 바꿉니다 ([세부 정보](#pretooluse-decision-control))883* `PreToolUse`: `hookSpecificOutput` 바로 아래의 `updatedInput`은 실행 전에 도구의 인수를 바꿉니다. [PreToolUse 결정 제어](#pretooluse-decision-control) 참조

871* `PermissionRequest` `decision` 객체 내의 `updatedInput` ([세부 정보](#permissionrequest-decision-control))884* `PermissionRequest`: `decision` 객체 내의 `updatedInput`. [PermissionRequest 결정 제어](#permissionrequest-decision-control) 참조

872* `PostToolUse` `updatedToolOutput`은 도구의 결과를 바꿉니다 ([세부 정보](#posttooluse-decision-control))885* `PostToolUse`: `updatedToolOutput`은 도구의 결과를 바꿉니다. [PostToolUse 결정 제어](#posttooluse-decision-control) 참조

873* `UserPromptSubmit` 프롬프트를 바꿀 수 없습니다; `additionalContext`를 옆에만 주입합니다886* `UserPromptSubmit`: 프롬프트를 바꿀 수 없습니다; `additionalContext`를 옆에만 주입합니다

874 887 

875편집 또는 변환 사용 사례의 경우 아웃바운드 도구 입력에 대해 `PreToolUse`에서 가로채고 인바운드 도구 결과에 대해 `PostToolUse`에서 가로채세요.888편집 또는 변환 사용 사례의 경우 아웃바운드 도구 입력에 대해 `PreToolUse`에서 가로채고 인바운드 도구 결과에 대해 `PostToolUse`에서 가로채세요.

876 889 


959 "cwd": "/Users/...",972 "cwd": "/Users/...",

960 "hook_event_name": "SessionStart",973 "hook_event_name": "SessionStart",

961 "source": "startup",974 "source": "startup",

962 "model": "claude-sonnet-4-6"975 "model": "claude-sonnet-5"

963}976}

964```977```

965 978 


1148 1161 

1149`UserPromptSubmit` hook은 `command`, `http`, `mcp_tool` 유형에 대해 기본 30초 시간 초과를 가지며, 이는 다른 이벤트에서 이러한 유형의 기본 600초보다 짧습니다. 이 hook은 모든 프롬프트 전에 실행되고 모델 처리가 완료될 때까지 차단하므로 stuck hook은 세션을 정지시킵니다. hook에 더 많은 시간이 필요하면 hook 항목에서 `timeout` 필드를 설정합니다.1162`UserPromptSubmit` hook은 `command`, `http`, `mcp_tool` 유형에 대해 기본 30초 시간 초과를 가지며, 이는 다른 이벤트에서 이러한 유형의 기본 600초보다 짧습니다. 이 hook은 모든 프롬프트 전에 실행되고 모델 처리가 완료될 때까지 차단하므로 stuck hook은 세션을 정지시킵니다. hook에 더 많은 시간이 필요하면 hook 항목에서 `timeout` 필드를 설정합니다.

1150 1163 

1164시간 초과에 도달한 `UserPromptSubmit` hook은 취소되고 `additionalContext`를 포함한 출력이 삭제됩니다. 프롬프트는 여전히 해당 컨텍스트 없이 Claude에 도달합니다. v2.1.196부터 트랜스크립트는 hook의 이름, 발생한 시간 초과, 출력이 삭제되었음을 나타내는 알림을 표시합니다. 이전 버전은 알림 없이 hook을 취소합니다.

1165 

1151<h4 id="userpromptsubmit-input">1166<h4 id="userpromptsubmit-input">

1152 UserPromptSubmit 입력1167 UserPromptSubmit 입력

1153</h4>1168</h4>


1404 1419 

1405Claude가 도구 매개변수를 생성한 후 도구 호출을 처리하기 전에 실행됩니다. 도구 이름에서 일치합니다: `Bash`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `WebFetch`, `WebSearch`, `AskUserQuestion`, `ExitPlanMode`, 모든 [MCP 도구 이름](#match-mcp-tools).1420Claude가 도구 매개변수를 생성한 후 도구 호출을 처리하기 전에 실행됩니다. 도구 이름에서 일치합니다: `Bash`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `WebFetch`, `WebSearch`, `AskUserQuestion`, `ExitPlanMode`, 모든 [MCP 도구 이름](#match-mcp-tools).

1406 1421 

1422<Warning>

1423 PreToolUse는 Claude가 도구를 호출할 때만 실행됩니다. [프롬프트에서 `@`로 참조하는](/ko/common-workflows#reference-files-and-directories) 파일은 도구 호출 없이 추가됩니다: Claude Code는 프롬프트를 구축하는 동안 해당 내용을 삽입하므로 `Read`와 일치하는 hook을 포함하여 PreToolUse hook이 발생하지 않습니다. 특정 경로를 `@` 참조에서 차단하려면 [`Read` 거부 규칙](/ko/permissions#read-and-edit)을 대신 사용하세요.

1424</Warning>

1425 

1407[PreToolUse 결정 제어](#pretooluse-decision-control)를 사용하여 도구 사용을 허용, 거부, 요청 또는 연기합니다.1426[PreToolUse 결정 제어](#pretooluse-decision-control)를 사용하여 도구 사용을 허용, 거부, 요청 또는 연기합니다.

1408 1427 

1409<h4 id="pretooluse-input">1428<h4 id="pretooluse-input">


2054 2073 

2055Agent 도구를 통해 Claude Code subagent가 생성될 때 실행됩니다. 에이전트 유형 이름으로 필터링할 matcher를 지원합니다. 기본 제공 에이전트의 경우 이는 `general-purpose`, `Explore`, `Plan`과 같은 에이전트 이름입니다. [사용자 정의 subagent](/ko/sub-agents)의 경우 이는 파일명이 아닌 에이전트의 frontmatter의 `name` 필드입니다.2074Agent 도구를 통해 Claude Code subagent가 생성될 때 실행됩니다. 에이전트 유형 이름으로 필터링할 matcher를 지원합니다. 기본 제공 에이전트의 경우 이는 `general-purpose`, `Explore`, `Plan`과 같은 에이전트 이름입니다. [사용자 정의 subagent](/ko/sub-agents)의 경우 이는 파일명이 아닌 에이전트의 frontmatter의 `name` 필드입니다.

2056 2075 

2076[plugin](/ko/plugins)에서 제공하는 subagent의 경우 에이전트 유형은 `my-plugin:reviewer`와 같은 plugin 범위 식별자이며, 파일명이 아닙니다. 콜론은 plugin 범위 이름을 정규식 경로에 배치하므로 정확한 일치를 위해 matcher를 `^` 및 `$`로 고정합니다: `^my-plugin:reviewer$`.

2077 

2057<h4 id="subagentstart-input">2078<h4 id="subagentstart-input">

2058 SubagentStart 입력2079 SubagentStart 입력

2059</h4>2080</h4>


2493ConfigChange hook은 구성 변경이 적용되는 것을 차단할 수 있습니다. 종료 코드 2 또는 JSON `decision`을 사용하여 변경을 방지합니다. 차단되면 새 설정이 실행 중인 세션에 적용되지 않습니다.2514ConfigChange hook은 구성 변경이 적용되는 것을 차단할 수 있습니다. 종료 코드 2 또는 JSON `decision`을 사용하여 변경을 방지합니다. 차단되면 새 설정이 실행 중인 세션에 적용되지 않습니다.

2494 2515 

2495| 필드 | 설명 |2516| 필드 | 설명 |

2496| :--------- | :-------------------------------------------- |2517| :--------- | :------------------------------------------- |

2497| `decision` | `"block"`은 구성 변경이 적용되는 것을 방지합니다. 생략하여 변경을 허용 |2518| `decision` | `"block"`은 구성 변경이 적용되는 것을 방지합니다. 생략하여 변경을 허용 |

2498| `reason` | `decision`이 `"block"`일 때 사용자에게 표시되는 설명 |2519| `reason` | `decision`이 `"block"`일 때 사용자에게 표시되는 설명 |

2499 2520 


3285}3306}

3286```3307```

3287 3308 

3309PowerShell 셸 형식 명령에서 프로젝트 루트를 참조하려면 `$env:CLAUDE_PROJECT_DIR`을 사용하여 환경 변수로 읽습니다. PowerShell은 `${CLAUDE_PROJECT_DIR}` 형식을 로컬 변수로 취급하며 환경 조회가 아니고, Claude Code는 [플러그인 hook](#reference-scripts-by-path)에 대해서만 셸 형식에서 해당 자리 표시자를 대체합니다. `settings.json`에 정의된 hook의 경우 `$env:` 형식을 사용하거나 [exec 형식](#exec-form-and-shell-form)으로 전환합니다. 여기서 `${CLAUDE_PROJECT_DIR}`은 hook이 정의된 위치와 관계없이 각 `args` 요소에서 대체됩니다.

3310 

3311아래 예제는 `$env:` 형식으로 프로젝트 스크립트를 실행하는 `settings.json` hook을 보여줍니다:

3312 

3313```json theme={null}

3314{

3315 "type": "command",

3316 "shell": "powershell",

3317 "command": "& \"$env:CLAUDE_PROJECT_DIR\\.claude\\hooks\\check.ps1\""

3318}

3319```

3320 

3288<h2 id="debug-hooks">3321<h2 id="debug-hooks">

3289 Hook 디버그3322 Hook 디버그

3290</h2>3323</h2>

Details

36| `Ctrl+O` | 트랜스크립트 뷰어 토글 | 자세한 도구 사용 및 실행을 표시합니다. MCP 호출도 확장하며, 기본적으로 "Slack 3회 호출됨"과 같은 단일 줄로 축소됩니다 |36| `Ctrl+O` | 트랜스크립트 뷰어 토글 | 자세한 도구 사용 및 실행을 표시합니다. MCP 호출도 확장하며, 기본적으로 "Slack 3회 호출됨"과 같은 단일 줄로 축소됩니다 |

37| `Ctrl+R` | 역방향 검색 명령 기록 | 이전 명령을 대화형으로 검색 |37| `Ctrl+R` | 역방향 검색 명령 기록 | 이전 명령을 대화형으로 검색 |

38| `Ctrl+V` 또는 `Cmd+V` (iTerm2) 또는 `Alt+V` (Windows 및 WSL) | 클립보드에서 이미지 붙여넣기 | 커서에 `[Image #N]` 칩을 삽입하여 프롬프트에서 위치별로 참조할 수 있습니다. WSL에서는 `Ctrl+V`와 `Alt+V` 모두 바인딩되어 있습니다. 터미널이 `Ctrl+V`를 가로채면 `Alt+V`를 사용하세요 |38| `Ctrl+V` 또는 `Cmd+V` (iTerm2) 또는 `Alt+V` (Windows 및 WSL) | 클립보드에서 이미지 붙여넣기 | 커서에 `[Image #N]` 칩을 삽입하여 프롬프트에서 위치별로 참조할 수 있습니다. WSL에서는 `Ctrl+V`와 `Alt+V` 모두 바인딩되어 있습니다. 터미널이 `Ctrl+V`를 가로채면 `Alt+V`를 사용하세요 |

39| `Ctrl+B` | 백그라운드 실행 작업 | bash 명령 및 에이전트를 백그라운드로 실행합니다. Tmux 사용자는 두 번 누르기 |39| `Ctrl+B` | 백그라운드 실행 작업 | Bash 명령 및 에이전트를 백그라운드로 실행합니다. Tmux 사용자는 두 번 누르기 |

40| `Ctrl+T` | 작업 목록 토글 | 터미널 상태 영역에서 [작업 목록](#task-list) 표시 또는 숨기기 |40| `Ctrl+T` | 작업 목록 토글 | 터미널 상태 영역에서 [작업 목록](#task-list) 표시 또는 숨기기 |

41| `Left/Right 화살표` | 대화 상자 탭 순환 | 권한 대화 상자 및 메뉴의 탭 간 탐색 |41| `Left/Right 화살표` | 대화 상자 탭 순환 | 권한 대화 상자 및 메뉴의 탭 간 탐색 |

42| `Up/Down 화살표` 또는 `Ctrl+P`/`Ctrl+N` | 커서 이동 또는 명령 기록 탐색 | 입력이 여러 시각적 줄에 걸쳐 있을 때(줄 바꿈 또는 여러 줄 여부), 먼저 프롬프트 내에서 커서를 이동합니다. 커서가 첫 번째 또는 마지막 시각적 줄에 있으면 다시 누르면 명령 기록을 탐색합니다. {/* min-version: 2.1.169 */}v2.1.169부터 줄 바꿈된 단일 줄 입력은 여러 줄과 동일하게 작동합니다 |42| `Up/Down 화살표` 또는 `Ctrl+P`/`Ctrl+N` | 커서 이동 또는 명령 기록 탐색 | 입력이 여러 시각적 줄에 걸쳐 있을 때(줄 바꿈 또는 여러 줄 여부), 먼저 프롬프트 내에서 커서를 이동합니다. 커서가 첫 번째 또는 마지막 시각적 줄에 있으면 다시 누르면 명령 기록을 탐색합니다. {/* min-version: 2.1.169 */}v2.1.169부터 줄 바꿈된 단일 줄 입력은 여러 줄과 동일하게 작동합니다 |


249* 입력 기록은 `/clear`를 실행하여 새 세션을 시작할 때 재설정됩니다. 이전 세션의 대화는 보존되며 재개할 수 있습니다.249* 입력 기록은 `/clear`를 실행하여 새 세션을 시작할 때 재설정됩니다. 이전 세션의 대화는 보존되며 재개할 수 있습니다.

250* 동일한 프롬프트를 연속으로 두 번 제출하면 하나의 기록 항목만 기록되므로 위쪽 화살표를 누르면 이전의 서로 다른 프롬프트로 이동합니다250* 동일한 프롬프트를 연속으로 두 번 제출하면 하나의 기록 항목만 기록되므로 위쪽 화살표를 누르면 이전의 서로 다른 프롬프트로 이동합니다

251* Up/Down 화살표를 사용하여 탐색하세요 (위의 키보드 단축키 참조)251* Up/Down 화살표를 사용하여 탐색하세요 (위의 키보드 단축키 참조)

252* **참고**: 기록 확장(`!`)은 기본적으로 비활성화됩니다252* 기록 확장(`!`)은 기본적으로 비활성화됩니다

253 253 

254<h3 id="reverse-search-with-ctrl-r">254<h3 id="reverse-search-with-ctrl-r">

255 Ctrl+R을 사용한 역방향 검색255 Ctrl+R을 사용한 역방향 검색


271검색은 선택한 범위에서 가장 최근의 고유한 프롬프트 100개를 로드하며, 중복은 가장 최신 항목으로 축소됩니다. 일치하는 프롬프트는 검색어가 강조된 상태로 표시되므로 이전 입력을 찾아 재사용할 수 있습니다.271검색은 선택한 범위에서 가장 최근의 고유한 프롬프트 100개를 로드하며, 중복은 가장 최신 항목으로 축소됩니다. 일치하는 프롬프트는 검색어가 강조된 상태로 표시되므로 이전 입력을 찾아 재사용할 수 있습니다.

272 272 

273<h2 id="background-bash-commands">273<h2 id="background-bash-commands">

274 백그라운드 bash 명령274 백그라운드 Bash 명령

275</h2>275</h2>

276 276 

277Claude Code는 bash 명령을 백그라운드에서 실행하도록 지원하여 장시간 실행되는 프로세스가 실행되는 동안 계속 작업할 수 있습니다.277Claude Code는 Bash 명령을 백그라운드에서 실행하도록 지원하여 장시간 실행되는 프로세스가 실행되는 동안 계속 작업할 수 있습니다.

278 278 

279<h3 id="how-backgrounding-works">279<h3 id="how-backgrounding-works">

280 백그라운드 실행 방식280 백그라운드 실행 방식


285명령을 백그라운드에서 실행하려면 다음 중 하나를 수행할 수 있습니다:285명령을 백그라운드에서 실행하려면 다음 중 하나를 수행할 수 있습니다:

286 286 

287* Claude Code에 명령을 백그라운드에서 실행하도록 프롬프트287* Claude Code에 명령을 백그라운드에서 실행하도록 프롬프트

288* Ctrl+B를 눌러 일반 Bash 도구 호출을 백그라운드로 이동합니다. (Tmux 사용자는 tmux의 접두사 키로 인해 Ctrl+B를 두 번 눌러야 합니다.)288* `Ctrl+B`를 눌러 일반 Bash 도구 호출을 백그라운드로 이동합니다. Tmux 사용자는 tmux의 접두사 키로 인해 `Ctrl+B`를 두 번 눌러야 합니다.

289 289 

290**주요 기능:**290**주요 기능:**

291 291 

292* 출력은 파일에 기록되며 Claude는 Read 도구를 사용하여 검색할 수 있습니다292* 출력은 파일에 기록되며 Claude는 Read 도구를 사용하여 검색할 수 있습니다

293* 백그라운드 작업에는 추적 및 출력 검색을 위한 고유 ID가 있습니다293* 백그라운드 작업에는 추적 및 출력 검색을 위한 고유 ID가 있습니다

294* 백그라운드 작업은 Claude Code가 종료될 때 자동으로 정리됩니다294* 백그라운드 작업은 Claude Code가 종료될 때 자동으로 정리됩니다. 세션을 종료하는 대신 백그라운드로 설정하면 백그라운드 세션에 전달되어 계속 실행됩니다. [실행 중인 세션을 백그라운드로 설정](/ko/agent-view#from-inside-a-session)을 참조하세요

295* 백그라운드 작업은 출력이 5GB를 초과하면 자동으로 종료되며, stderr에 이유를 설명하는 메모가 있습니다295* 백그라운드 작업은 출력이 5GB를 초과하면 자동으로 종료되며, stderr에 이유를 설명하는 메모가 있습니다

296* {/* min-version: 2.1.193 */}v2.1.193부터 macOS 및 Linux에서는 세션이 최소 30분 동안 유휴 상태이고 실행 중인 턴이나 서브에이전트가 없을 때 운영 체제가 메모리 압박 신호를 보내면 실행 중인 백그라운드 작업이 종료됩니다. [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/ko/env-vars)를 `1`로 설정하여 이를 비활성화할 수 있습니다

296 297 

297모든 백그라운드 작업 기능을 비활성화하려면 `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 환경 변수를 `1`로 설정하세요. 자세한 내용은 [환경 변수](/ko/env-vars)를 참조하세요.298모든 백그라운드 작업 기능을 비활성화하려면 `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 환경 변수를 `1`로 설정하세요. 자세한 내용은 [환경 변수](/ko/env-vars)를 참조하세요.

298 299 


322* 실시간 진행 상황 및 출력을 표시합니다323* 실시간 진행 상황 및 출력을 표시합니다

323* 장시간 실행 명령에 대해 동일한 `Ctrl+B` 백그라운드 실행을 지원합니다324* 장시간 실행 명령에 대해 동일한 `Ctrl+B` 백그라운드 실행을 지원합니다

324* Claude가 명령을 해석하거나 승인할 필요가 없습니다325* Claude가 명령을 해석하거나 승인할 필요가 없습니다

325* 기록 기반 자동 완성을 지원합니다: 부분 명령을 입력하고 **Tab**을 눌러 현재 프로젝트의 이전 `!` 명령에서 완성합니다326* 기록 기반 자동 완성을 지원합니다: 부분 명령을 입력하고 `Tab`을 눌러 현재 프로젝트의 이전 `!` 명령에서 완성합니다

327* {/* min-version: 2.1.193 */}v2.1.193부터 모든 플랫폼에서 라이브 파일 경로 자동 완성을 지원합니다: `./src/` 또는 `~/`와 같이 슬래시를 포함하는 토큰을 입력하면 일치하는 파일 및 디렉터리의 드롭다운이 표시되고, `Tab`을 눌러 수락합니다. Windows에서도 슬래시를 사용하세요. 드롭다운은 `/`로 트리거되며 `\`로는 아닙니다

326* 빈 프롬프트에서 `Escape`, `Backspace` 또는 `Ctrl+U`로 종료합니다328* 빈 프롬프트에서 `Escape`, `Backspace` 또는 `Ctrl+U`로 종료합니다

327* 빈 프롬프트에 `!`로 시작하는 텍스트를 붙여넣으면 입력된 `!` 동작과 일치하여 shell 모드에 자동으로 진입합니다329* 빈 프롬프트에 `!`로 시작하는 텍스트를 붙여넣으면 입력된 `!` 동작과 일치하여 shell 모드에 자동으로 진입합니다

328 330 


338 340 

339Claude가 응답한 후 다중 부분 요청의 후속 단계 또는 워크플로우의 자연스러운 계속과 같은 대화 기록을 기반으로 제안이 계속 나타납니다.341Claude가 응답한 후 다중 부분 요청의 후속 단계 또는 워크플로우의 자연스러운 계속과 같은 대화 기록을 기반으로 제안이 계속 나타납니다.

340 342 

341* **Tab** 또는 **Right 화살표**를 눌러 제안을 프롬프트 입력에 배치한 후 **Enter**를 눌러 제출합니다343* `Tab` 또는 `Right arrow`를 눌러 제안을 프롬프트 입력에 배치한 후 `Enter`를 눌러 제출합니다

342* 입력을 시작하여 제안을 해제합니다344* 입력을 시작하여 제안을 해제합니다

343 345 

344제안은 부모 대화의 프롬프트 캐시를 재사용하는 백그라운드 요청으로 실행되므로 추가 비용은 최소입니다. Claude Code는 불필요한 비용을 피하기 위해 캐시가 콜드일 때 제안 생성을 건너뜁니다.346제안은 부모 대화의 프롬프트 캐시를 재사용하는 백그라운드 요청으로 실행되므로 추가 비용은 최소입니다. Claude Code는 불필요한 비용을 피하기 위해 캐시가 콜드일 때 제안 생성을 건너뜁니다.

345 347 

346제안은 대화의 첫 번째 턴 이후, Plan Mode에서 자동으로 건너뜁니다. 인쇄 모드에서는 기본적으로 꺼져 있습니다. [`--prompt-suggestions`](/ko/cli-reference#cli-flags)를 `--output-format stream-json --verbose`와 함께 전달하여 각 턴 이후에 `prompt_suggestion` 메시지를 내보냅니다.348제안은 대화의 첫 번째 턴 이후 Plan Mode에서 자동으로 건너뜁니다. 인쇄 모드에서는 기본적으로 꺼져 있습니다. [`--prompt-suggestions`](/ko/cli-reference#cli-flags)를 `--output-format stream-json --verbose`와 함께 전달하여 각 턴 이후에 `prompt_suggestion` 메시지를 내보냅니다.

347 349 

348프롬프트 제안을 완전히 비활성화하려면 환경 변수를 설정하거나 `/config`에서 설정을 토글하세요:350프롬프트 제안을 완전히 비활성화하려면 환경 변수를 설정하거나 `/config`에서 설정을 토글하세요:

349 351 


413* 빨간색: 변경 요청됨415* 빨간색: 변경 요청됨

414* 회색: 초안416* 회색: 초안

415 417 

416풀 요청이 병합되거나 닫히면 배지가 사라집니다. `Cmd+click` (Mac) 또는 `Ctrl+click` (Windows/Linux)으로 링크를 클릭하여 브라우저에서 풀 요청을 열 수 있습니다. 상태는 60초마다 새로 고쳐지며, `gh pr` 또는 `git push` 명령이 세션에서 실행된 직후에 즉시 새로 고쳐집니다.418풀 요청이 병합되거나 닫히면 배지가 사라집니다. `Cmd+click` (macOS) 또는 `Ctrl+click` (Windows/Linux)으로 링크를 클릭하여 브라우저에서 풀 요청을 열 수 있습니다. 상태는 60초마다 새로 고쳐지며, `gh pr` 또는 `git push` 명령이 세션에서 실행된 직후에 즉시 새로 고쳐집니다.

417 419 

418<Note>420<Note>

419 PR 상태는 `gh` CLI가 설치되고 인증되어야 합니다 (`gh auth login`).421 PR 상태는 `gh` CLI가 설치되고 인증되어야 합니다 (`gh auth login`).

jetbrains.md +1 −1

Details

233 보안 고려 사항233 보안 고려 사항

234</h2>234</h2>

235 235 

236Claude Code가 자동 편집 권한이 활성화된 JetBrains IDE에서 실행될 때, IDE에서 자동으로 실행될 수 있는 IDE 구성 파일을 수정할 수 있습니다. 이는 자동 편집 모드에서 Claude Code를 실행하는 위험을 증가시킬 수 있으며 bash 실행에 대한 Claude Code의 권한 프롬프트를 우회할 수 있습니다.236Claude Code가 [`acceptEdits` 권한 모드](/ko/permission-modes#auto-approve-file-edits-with-acceptedits-mode)에서 JetBrains IDE에서 실행될 때, IDE에서 자동으로 실행될 수 있는 IDE 구성 파일을 수정할 수 있습니다. 이는 `acceptEdits` 모드에서 Claude Code를 실행하는 위험을 증가시킬 수 있으며 bash 실행에 대한 Claude Code의 권한 프롬프트를 우회할 수 있습니다.

237 237 

238JetBrains IDE에서 실행할 때 다음을 고려합니다:238JetBrains IDE에서 실행할 때 다음을 고려합니다:

239 239 

llm-gateway.md +0 −96 deleted

File Deleted View Diff

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# LLM gateway

6 

7> Claude Code를 LLM gateway를 통해 라우팅하여 중앙 집중식 인증, 사용량 추적 및 비용 제어를 수행합니다. Claude Code를 gateway에 연결하고, 조직을 위해 gateway를 배포하고, Claude Code가 gateway에 전송하는 내용, 그리고 gateway가 claude.ai 구독과 상호작용하는 방식을 다룹니다.

8 

9LLM gateway는 Claude Code와 모델 공급자 간에 조직이 운영하는 프록시입니다. Claude Code는 API 트래픽을 gateway로 전송하고, gateway는 조직이 제어하는 자격 증명을 사용하여 공급자에게 이를 전달합니다.

10 

11<Note>

12 * 기존 gateway에 연결하는 개발자인 경우: [Claude Code를 gateway에 연결](/ko/llm-gateway-connect)

13 * 조직을 위해 gateway를 배포하는 관리자인 경우: [gateway를 배포 및 배포](/ko/llm-gateway-rollout)

14 * gateway 제품을 구성하는 경우: [gateway 프로토콜 참조](/ko/llm-gateway-protocol)

15</Note>

16 

17<h2 id="what-a-gateway-provides">

18 gateway가 제공하는 것

19</h2>

20 

21gateway는 조직이 다음을 관리할 수 있는 한 곳을 제공합니다:

22 

23* **자격 증명**: 공급자 키는 서버 측에 유지되고, 개발자는 gateway 자격 증명을 대신 보유합니다

24* **사용량 추적**: 요청을 처리하는 공급자와 관계없이 개발자 또는 팀별로 사용량을 속성화합니다

25* **비용 제어**: 한 곳에서 예산 및 속도 제한을 적용합니다

26* **감사 로깅**: 규정 준수를 위해 모든 모델 요청을 기록합니다

27* **공급자 전환**: 개발자 머신을 건드리지 않고 gateway 구성에서 공급자를 변경합니다

28 

29이 중 공급자 전환을 제외한 모든 것은 업스트림이 Anthropic의 API이든 [클라우드 공급자](/ko/third-party-integrations)이든 적용됩니다.

30 

31트레이드오프는 gateway가 조직이 운영하는 인프라가 된다는 것입니다. Claude Code는 각 릴리스마다 기능을 추가하고, gateway가 이를 전달하지 않으면 해당 기능이 손상되므로, gateway 제품은 Claude Code가 진화함에 따라 최신 상태로 유지되어야 합니다. [gateway 프로토콜 참조](/ko/llm-gateway-protocol)는 전달할 내용을 다룹니다.

32 

33<h2 id="how-a-gateway-works">

34 gateway가 작동하는 방식

35</h2>

36 

37기본적으로 Claude Code는 `api.anthropic.com`의 Anthropic API로 요청을 직접 전송합니다. gateway를 통해 라우팅하려면 `ANTHROPIC_BASE_URL`을 gateway의 주소로 설정합니다. Claude Code는 대신 동일한 요청을 그곳으로 전송합니다. gateway는 개발자를 인증하고, 조직의 공급자 자격 증명을 첨부하고, 각 요청을 구성된 공급자로 전달합니다.

38 

39`ANTHROPIC_BASE_URL`은 대부분의 gateway에 대한 주소 변수입니다. Bedrock, Vertex, Foundry 또는 AWS의 Claude Platform과 같은 특정 클라우드 공급자를 앞에 두는 gateway는 대신 해당 공급자의 기본 URL 변수를 사용합니다. [API 형식](/ko/llm-gateway-protocol#api-formats)은 각 구성과 함께 어떤 변수가 사용되는지 나열합니다.

40 

41<Frame>

42 <img src="https://mintcdn.com/claude-code/-uq-4JE0W_JO5Er5/images/llm-gateway-flow.svg?fit=max&auto=format&n=-uq-4JE0W_JO5Er5&q=85&s=1c1a8dcc0cfcc3a58652cc8e28cd3e20" alt="Claude Code가 LLM gateway를 통해 라우팅되는 것을 보여주는 다이어그램입니다. 개발자 머신 영역에서 Claude Code CLI, VS Code 확장 및 CI 또는 Agent SDK 클라이언트는 gateway로 요청을 전송하며, gateway의 API 형식에 대한 기본 URL 변수가 이를 가리키고 각 개발자는 개발자별 자격 증명을 보유하며, 데스크톱 앱은 조직이 배포한 구성을 통해 동일한 gateway에 도달합니다. 인프라라고 표시된 영역에서 LLM gateway는 인증, 사용량 추적, 예산 및 라우팅을 처리하고 조직의 자격 증명으로 요청을 전달합니다. 모델 공급자 영역에서 실선 화살표는 구성한 공급자(Anthropic API로 표시됨)로 이어지고, 점선 화살표는 Amazon Bedrock, Google Vertex AI 및 Microsoft Foundry를 예로 들어 다른 공급자 옵션으로 이어집니다." width="780" height="322" data-path="images/llm-gateway-flow.svg" />

43</Frame>

44 

45두 가지 종류의 자격 증명이 관련됩니다:

46 

47* **개발자 자격 증명**: 각 개발자는 gateway에서 발급한 자신의 자격 증명을 보유합니다. 이는 gateway에 대해 인증하고 사용량 추적에서 개발자를 식별합니다

48* **공급자 자격 증명**: gateway는 공급자 계정에 대한 하나의 자격 증명을 보유하며, 모든 전달된 트래픽에서 공유됩니다. 개발자별로 공급자 키를 프로비저닝하지 않습니다

49 

50gateway는 Anthropic API, [Amazon Bedrock](/ko/amazon-bedrock), [Google Vertex AI](/ko/google-vertex-ai), [Microsoft Foundry](/ko/microsoft-foundry) 또는 [AWS의 Claude Platform](/ko/claude-platform-on-aws)과 같이 구성한 공급자로 각 요청을 전달합니다. Claude Code는 gateway하고만 통신하므로, 공급자 선택은 gateway의 구성이지 클라이언트의 구성이 아닙니다.

51 

52<h2 id="roll-out-a-gateway">

53 gateway 배포

54</h2>

55 

56조직에 LLM gateway를 배포할 준비가 되면, 선택한 gateway 제품이 무엇이든 순서는 동일합니다:

57 

581. gateway를 배포하고 공급자 자격 증명을 제공하여 전달하는 요청을 인증할 수 있도록 합니다.

592. 각 개발자에게 gateway 자격 증명을 발급하여 사용량이 개발자에게 속성화되고 오프보딩이 하나의 자격 증명을 취소하도록 합니다.

603. [관리되는 설정 파일](/ko/settings#settings-files) 및 비밀 도구를 통해 구성을 배포하여 모든 머신이 기본 URL과 자격 증명을 받도록 합니다. 둘 다 배포되면 개발자는 아무것도 구성하지 않습니다. 설정 배포가 없으면 개발자는 [연결 페이지](/ko/llm-gateway-connect)를 따라 변수를 직접 설정합니다.

614. 각 개발자가 [Claude Code에서 구성을 확인](/ko/llm-gateway-connect#check-for-an-existing-configuration)하도록 하여 배포 문제가 gateway에 의존하기 전에 표면화되도록 합니다.

62 

63[조직을 위해 LLM gateway 배포](/ko/llm-gateway-rollout)는 각 단계를 안내하고 각 단계에서 배포할 구성 파일을 보여줍니다. gateway는 조직 설정의 한 부분입니다. 정책 적용, 사용량 가시성 및 데이터 처리 결정의 경우 [조직을 위해 Claude Code 설정](/ko/admin-setup)을 참조하세요.

64 

65<h2 id="third-party-gateways">

66 제3자 gateway

67</h2>

68 

69[지원되는 API 형식](/ko/llm-gateway-protocol#api-formats)을 노출하는 모든 gateway가 작동합니다. Anthropic은 제3자 gateway 제품을 보증, 유지 관리 또는 감사하지 않습니다. 자신의 문서에 따라 배포한 다음 [배포 단계](/ko/llm-gateway-rollout)를 사용하여 Claude Code 측의 배포를 완료합니다.

70 

71<h2 id="subscriptions-and-gateways">

72 구독 및 gateway

73</h2>

74 

75[gateway 자격 증명 변수](/ko/llm-gateway-connect#set-the-credential-variable) 또는 `apiKeyHelper`가 활성화되어 있는 동안 개발자의 claude.ai 구독은 사용되지 않습니다: 자격 증명이 해당 세션에 대한 구독 로그인을 대체하고, 구독의 사용량 제한이 적용되지 않습니다. 해당 트래픽은 gateway가 전달하는 자격 증명의 소유자(예: 조직의 Anthropic Console 계정 또는 gateway가 그곳으로 라우팅할 때 Bedrock, Vertex 또는 Foundry 계정)에게 토큰당 청구됩니다.

76 

77gateway 자격 증명 없이 `ANTHROPIC_BASE_URL`만 설정하면 구독을 대체하지 않습니다. 요청은 여전히 gateway를 통해 라우팅되지만 저장된 claude.ai 로그인이 활성 자격 증명으로 유지되므로 해당 사용량 제한 및 청구가 적용됩니다. 이 트래픽을 Anthropic에 전달하는 gateway는 `anthropic-beta`에서 OAuth 기능을 전달해야 합니다. [요청 헤더 참조](/ko/llm-gateway-protocol#request-headers)를 참조하세요.

78 

79<h2 id="configure-separately-from-the-gateway">

80 gateway와 별도로 구성

81</h2>

82 

83gateway는 모델 API 요청이 전송되는 위치를 결정합니다. 모델 선택, Claude Code의 나머지 네트워크 트래픽 및 회사 프록시는 별도로 구성됩니다:

84 

85* **모델 선택**: 기본 URL은 요청이 가는 위치를 결정하고, 어떤 모델이 응답하는지는 결정하지 않습니다. `/model` 명령 또는 모델 환경 변수로 모델을 선택합니다. [모델을 설정하는 방법](/ko/model-config#setting-your-model)을 참조하세요

86* **클라이언트 측 트래픽**: 버전 확인 및 선택적 클라이언트 원격 분석(둘 다 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/ko/env-vars)으로 비활성화됨) 및 claude.ai 또는 Console 로그인이 사용 중일 때의 로그인 트래픽은 gateway가 아닌 Anthropic의 업데이트 및 인증 엔드포인트로 이동합니다. 도메인은 [네트워크 액세스 요구사항](/ko/network-config#network-access-requirements)을 참조하세요

87* **회사 프록시**: `HTTPS_PROXY`로 설정된 프록시는 Claude Code와 gateway를 포함하여 통신하는 모든 서버 간에 위치합니다. 네트워크에 프록시가 필요하면 둘 다 구성합니다. [프록시 구성](/ko/network-config#proxy-configuration)을 참조하세요

88 

89<h2 id="related-pages">

90 관련 페이지

91</h2>

92 

93* [Claude Code를 LLM gateway에 연결](/ko/llm-gateway-connect): 자신의 머신에서 기본 URL 및 자격 증명을 설정하고, 표면별 구성 및 문제 해결 테이블 포함

94* [조직을 위해 LLM gateway 배포](/ko/llm-gateway-rollout): gateway 배포, 개발자 자격 증명 발급 및 관리되는 설정 배포를 위한 관리자 체크리스트

95* [Gateway 프로토콜 참조](/ko/llm-gateway-protocol): Claude Code가 gateway에 전송하는 내용, gateway를 구성하는 운영자를 위해, 엔드포인트, 전달할 헤더 및 기능 통과를 다룸

96* [조직을 위해 Claude Code 설정](/ko/admin-setup): gateway가 정책 적용 및 사용량 가시성을 포함한 한 부분인 더 넓은 배포 결정

Details

285 285 

286[Slack의 Claude Code](/ko/slack) 및 [웹의 Claude Code](/ko/claude-code-on-the-web)는 항상 Anthropic의 API를 사용하는 Anthropic 호스팅 제품입니다. 게이트웨이 배포의 일부가 아닙니다. 클라우드 세션의 환경 구성에서 설정된 게이트웨이 변수는 적용되지 않습니다. 트래픽이 게이트웨이에 남아 있어야 한다면, 이러한 사용자에 대해 이러한 표면을 활성화하지 마세요.286[Slack의 Claude Code](/ko/slack) 및 [웹의 Claude Code](/ko/claude-code-on-the-web)는 항상 Anthropic의 API를 사용하는 Anthropic 호스팅 제품입니다. 게이트웨이 배포의 일부가 아닙니다. 클라우드 세션의 환경 구성에서 설정된 게이트웨이 변수는 적용되지 않습니다. 트래픽이 게이트웨이에 남아 있어야 한다면, 이러한 사용자에 대해 이러한 표면을 활성화하지 마세요.

287 287 

288[Remote Control](/ko/remote-control) 및 [음성 받아쓰기](/ko/voice-dictation)는 모두 claude.ai 신원에 의존합니다: Remote Control은 라이브 세션을 계정과 쌍으로 만들고, 음성 받아쓰기는 claude.ai 전사 엔드포인트에 도달합니다. `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper`가 활성화되어 있는 동안은 사용할 수 없습니다. 하나를 사용하려면 게이트웨이 자격 증명을 설정 해제하고 대신 claude.ai로 로그인합니다. `/doctor`는 설정 해제할 변수를 명시합니다.288[Remote Control](/ko/remote-control) 및 [음성 받아쓰기](/ko/voice-dictation)는 모두 claude.ai 신원에 의존합니다: Remote Control은 라이브 세션을 계정과 쌍으로 만들고, 음성 받아쓰기는 claude.ai 전사 엔드포인트에 도달합니다. `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper`가 활성화되어 있는 동안은 사용할 수 없습니다. {/* min-version: 2.1.196 */}v2.1.196부터 Remote Control은 `ANTHROPIC_BASE_URL`이 Anthropic이 아닌 호스트를 가리킬 때도 비활성화되므로, claude.ai로 로그인하는 것만으로는 충분하지 않습니다.

289 

290기능을 복원하려면 claude.ai로 로그인하고 확인하는 게이트웨이 변수를 설정 해제합니다. `/doctor`는 설정 해제할 자격 증명 변수를 명시합니다.

291 

292* 음성 받아쓰기: 게이트웨이 자격 증명 설정 해제

293* Remote Control: 게이트웨이 자격 증명 및 `ANTHROPIC_BASE_URL` 설정 해제

289 294 

290<h2 id="additional-configuration">295<h2 id="additional-configuration">

291 추가 구성296 추가 구성


318```json theme={null}323```json theme={null}

319{324{

320 "env": {325 "env": {

321 "ANTHROPIC_CUSTOM_HEADERS": "X-Org-Route: prod\nX-Tenant: acme"326 "ANTHROPIC_CUSTOM_HEADERS": "X-Org-Route: prod\nX-Tenant: example"

322 }327 }

323}328}

324```329```


388 게이트웨이를 통해 클라우드 제공자로 라우팅393 게이트웨이를 통해 클라우드 제공자로 라우팅

389</h3>394</h3>

390 395 

391이러한 구성은 Claude Code를 `ANTHROPIC_BASE_URL` 대신 제공자 관련 기본 URL 변수를 통해 게이트웨이로 가리킵니다. Bedrock 및 Vertex 게이트웨이는 이러한 제공자의 기본 요청 형식을 허용합니다. Foundry 및 AWS의 Claude Platform 게이트웨이는 Anthropic Messages 형식을 허용하고 어느 기본 URL 변수가 이에 도달하는지에서만 다릅니다.396이러한 구성은 Claude Code를 `ANTHROPIC_BASE_URL` 대신 제공자 관련 기본 URL 변수를 통해 게이트웨이로 가리킵니다. Bedrock 및 Agent Platform 게이트웨이는 이러한 제공자의 기본 요청 형식을 허용합니다. Foundry 및 AWS의 Claude Platform 게이트웨이는 Anthropic Messages 형식을 허용하고 어느 기본 URL 변수가 이에 도달하는지에서만 다릅니다.

392 397 

393게이트웨이 팀이 Bedrock, Vertex, Foundry 또는 AWS의 Claude Platform을 구체적으로 명시한 경우에만 하나를 사용합니다. 위의 [확인 요청](#verify-the-connection)이 JSON을 반환했다면 이 섹션을 건너뛸 수 있습니다.398게이트웨이 팀이 Bedrock, Agent Platform, Foundry 또는 AWS의 Claude Platform을 구체적으로 명시한 경우에만 하나를 사용합니다. 위의 [확인 요청](#verify-the-connection)이 JSON을 반환했다면 이 섹션을 건너뛸 수 있습니다.

394 399 

395게이트웨이 팀이 명시한 제공자에 대한 블록을 설정합니다. skip-auth 변수는 게이트웨이가 이를 보유하므로 Claude Code가 제공자 자격 증명으로 요청에 서명하지 않도록 합니다. 게이트웨이가 자체 토큰이 필요하면, 블록 후에 `ANTHROPIC_AUTH_TOKEN`을 추가합니다. Foundry는 표시된 대로 `ANTHROPIC_FOUNDRY_API_KEY`를 사용합니다.400게이트웨이 팀이 명시한 제공자에 대한 블록을 설정합니다. skip-auth 변수는 게이트웨이가 이를 보유하므로 Claude Code가 제공자 자격 증명으로 요청에 서명하지 않도록 합니다. 게이트웨이가 자체 토큰이 필요하면, 블록 후에 `ANTHROPIC_AUTH_TOKEN`을 추가합니다. Foundry는 표시된 대로 `ANTHROPIC_FOUNDRY_API_KEY`를 사용합니다.

396 401 


416 </Tab>421 </Tab>

417</Tabs>422</Tabs>

418 423 

419<h4 id="google-vertex-ai">424<h4 id="google-cloud’s-agent-platform">

420 Google Vertex AI425 Google Cloud의 Agent Platform

421</h4>426</h4>

422 427 

423<Tabs>428<Tabs>

Details

8 8 

9이 페이지는 Claude Code가 게이트웨이로 전송하는 요청을 문서화합니다. 여기에는 호출하는 엔드포인트, 게이트웨이가 전달해야 하는 헤더 및 본문 필드, 그리고 게이트웨이가 이를 수행하지 않을 때 작동을 멈추는 기능이 포함됩니다. 이 문서는 Claude Code와 함께 작동하도록 게이트웨이 제품을 구성하는 운영자를 위해 작성되었습니다.9이 페이지는 Claude Code가 게이트웨이로 전송하는 요청을 문서화합니다. 여기에는 호출하는 엔드포인트, 게이트웨이가 전달해야 하는 헤더 및 본문 필드, 그리고 게이트웨이가 이를 수행하지 않을 때 작동을 멈추는 기능이 포함됩니다. 이 문서는 Claude Code와 함께 작동하도록 게이트웨이 제품을 구성하는 운영자를 위해 작성되었습니다.

10 10 

11실행 중인 [Claude 앱 게이트웨이](/ko/claude-apps-gateway)는 `GET /protocol`에서 이 계약의 기계 판독 가능한 버전을 제공하며, 동일한 전달 요구 사항과 SSO 로그인, 관리형 설정 전달, 원격 측정을 위한 Claude 앱 게이트웨이 특정 엔드포인트를 포함합니다. Claude 앱 게이트웨이는 CLI와 동일한 `claude` 바이너리에서 실행되므로, [Claude 앱 게이트웨이 빠른 시작](/ko/claude-apps-gateway#quickstart)이 사양을 가져올 수 있는 실행 중인 인스턴스로 가는 가장 짧은 경로입니다.

12 

11<Note>13<Note>

12 * 조직을 위해 기존 또는 타사 게이트웨이를 배포하려면 [LLM 게이트웨이 배포](/ko/llm-gateway-rollout)를 참조하십시오.14 * 조직을 위해 기존 또는 타사 게이트웨이를 배포하려면 [LLM 게이트웨이 배포](/ko/llm-gateway-rollout)를 참조하십시오.

13 * 제공받은 자격 증명으로 Claude Code를 게이트웨이에 인증하는 개별 개발자인 경우 [Claude Code를 LLM 게이트웨이에 연결](/ko/llm-gateway-connect)을 참조하십시오.15 * 제공받은 자격 증명으로 Claude Code를 게이트웨이에 인증하는 개별 개발자인 경우 [Claude Code를 LLM 게이트웨이에 연결](/ko/llm-gateway-connect)을 참조하십시오.


32 API 형식34 API 형식

33</h2>35</h2>

34 36 

35게이트웨이는 Claude Code 클라이언트에 다음 API 형식 중 최소 하나를 노출해야 합니다. Claude Code가 사용하는 형식은 클라이언트의 구성에 의해 결정됩니다. 아래 표의 선택 기준 열의 변수는 Claude Code를 해당 형식의 게이트웨이로 지정합니다.37게이트웨이는 Claude Code 클라이언트에 다음 API 형식 중 최소 하나를 노출해야 합니다. Claude Code가 사용하는 형식은 클라이언트의 구성에 의해 결정됩니다. 아래 표의 선택 기준 열의 변수는 Claude Code를 해당 형식의 게이트웨이로 지정합니다. Agent Platform은 Google Cloud의 Claude 엔드포인트이며, 이전에는 Vertex AI였습니다. 변수 이름은 `VERTEX` 철자를 유지합니다.

36 38 

37| 형식 | 선택 기준 | 엔드포인트 | 변경 없이 전달 |39| 형식 | 선택 기준 | 엔드포인트 | 변경 없이 전달 |

38| :------------------ | :------------------------------------------------------------ | :-------------------------------------------------------------------- | :--------------------------------------------------------------------------- |40| :------------------------ | :------------------------------------------------------------ | :-------------------------------------------------------------------- | :--------------------------------------------------------------------------- |

39| Anthropic Messages | `ANTHROPIC_BASE_URL` | `/v1/messages`, `/v1/messages/count_tokens` (선택 사항) | `anthropic-beta` 및 `anthropic-version` 요청 헤더 |41| Anthropic Messages | `ANTHROPIC_BASE_URL` | `/v1/messages`, `/v1/messages/count_tokens` (선택 사항) | `anthropic-beta` 및 `anthropic-version` 요청 헤더 |

40| Bedrock InvokeModel | `ANTHROPIC_BEDROCK_BASE_URL` with `CLAUDE_CODE_USE_BEDROCK=1` | `/model/{model}/invoke`, `/model/{model}/invoke-with-response-stream` | `anthropic_beta` 및 `anthropic_version` 요청 본문 필드 |42| Bedrock InvokeModel | `ANTHROPIC_BEDROCK_BASE_URL` with `CLAUDE_CODE_USE_BEDROCK=1` | `/model/{model}/invoke`, `/model/{model}/invoke-with-response-stream` | `anthropic_beta` 및 `anthropic_version` 요청 본문 필드 |

41| Vertex rawPredict | `ANTHROPIC_VERTEX_BASE_URL` with `CLAUDE_CODE_USE_VERTEX=1` | `:rawPredict`, `:streamRawPredict`, `count-tokens:rawPredict` (선택 사항) | `anthropic-beta` 및 `anthropic-version` 요청 헤더, 및 `anthropic_version` 요청 본문 필드 |43| Agent Platform rawPredict | `ANTHROPIC_VERTEX_BASE_URL` with `CLAUDE_CODE_USE_VERTEX=1` | `:rawPredict`, `:streamRawPredict`, `count-tokens:rawPredict` (선택 사항) | `anthropic-beta` 및 `anthropic-version` 요청 헤더, 및 `anthropic_version` 요청 본문 필드 |

42 44 

43<h3 id="foundry-and-claude-platform-on-aws">45<h3 id="foundry-and-claude-platform-on-aws">

44 Foundry 및 AWS의 Claude Platform46 Foundry 및 AWS의 Claude Platform


50 선택 사항 엔드포인트 및 시작 트래픽52 선택 사항 엔드포인트 및 시작 트래픽

51</h3>53</h3>

52 54 

53토큰 계산 엔드포인트는 유일한 선택 사항입니다. 이들이 없을 때 Claude Code는 컨텍스트 사용을 로컬에서 추정합니다. 추론 요청은 `/v1/messages?beta=true`로 게시되므로 전체 URL이 아닌 경로와 일치합니다. Vertex 메서드 접미사는 게시자 모델 경로에 첨부됩니다. 예: `/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict`.55토큰 계산 엔드포인트는 유일한 선택 사항입니다. 이들이 없을 때 Claude Code는 컨텍스트 사용을 로컬에서 추정합니다. 추론 요청은 `/v1/messages?beta=true`로 게시되므로 전체 URL이 아닌 경로와 일치합니다. Agent Platform 메서드 접미사는 게시자 모델 경로에 첨부됩니다. 예: `/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict`.

54 56 

55게이트웨이는 또한 아무것도 손상시키지 않고 거부할 수 있는 최선의 노력 시작 트래픽을 봅니다: `HEAD /` 연결 프로브, 및 Bedrock 형식 게이트웨이에서 `GET /inference-profiles?type=SYSTEM_DEFINED` 요청.57게이트웨이는 또한 아무것도 손상시키지 않고 거부할 수 있는 최선의 노력 시작 트래픽을 봅니다: `HEAD /` 연결 프로브, 및 Bedrock 형식 게이트웨이에서 `GET /inference-profiles?type=SYSTEM_DEFINED` 요청.

56 58 


66 68 

67클라이언트가 사용하는 형식은 게이트웨이가 수신하는 것을 결정합니다. 일반적인 실패 모드는 클라이언트가 게이트웨이로 전송하는 형식과 뒤에 있는 업스트림 제공자가 수락하는 형식 간의 불일치입니다.69클라이언트가 사용하는 형식은 게이트웨이가 수신하는 것을 결정합니다. 일반적인 실패 모드는 클라이언트가 게이트웨이로 전송하는 형식과 뒤에 있는 업스트림 제공자가 수락하는 형식 간의 불일치입니다.

68 70 

69* 클라이언트가 Bedrock 또는 Vertex 형식을 사용할 때, Claude Code는 해당 제공자가 수락하는 전체 기능 집합의 부분 집합만 전송합니다.71* 클라이언트가 Bedrock 또는 Agent Platform 형식을 사용할 때, Claude Code는 해당 제공자가 수락하는 전체 기능 집합의 부분 집합만 전송합니다.

70* 클라이언트가 Anthropic Messages 형식을 사용할 때, Claude Code는 게이트웨이가 Bedrock 또는 Vertex 업스트림으로 전달하더라도 전체 집합을 전송합니다.72* 클라이언트가 Anthropic Messages 형식을 사용할 때, Claude Code는 게이트웨이가 Bedrock 또는 Agent Platform 업스트림으로 전달하더라도 전체 집합을 전송합니다.

71 73 

72그 차이를 연결하는 것은 게이트웨이의 작업입니다. [기능 통과](#feature-pass-through)는 그렇지 않을 때 손상되는 것을 설명합니다.74그 차이를 연결하는 것은 게이트웨이의 작업입니다. [기능 통과](#feature-pass-through)는 그렇지 않을 때 손상되는 것을 설명합니다.

73 75 


80| 헤더 | 설명 |82| 헤더 | 설명 |

81| :------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |83| :------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

82| `Authorization`, `x-api-key` | 개발자의 게이트웨이 자격 증명. 설정한 [자격 증명 변수](/ko/llm-gateway-connect#set-the-credential-variable)에 따라 하나 또는 두 헤더 모두에 포함됨 |84| `Authorization`, `x-api-key` | 개발자의 게이트웨이 자격 증명. 설정한 [자격 증명 변수](/ko/llm-gateway-connect#set-the-credential-variable)에 따라 하나 또는 두 헤더 모두에 포함됨 |

83| `anthropic-version` | API 버전. 현재 `2023-06-01`. Bedrock 및 Vertex 형식 요청은 또한 `anthropic_version` 본문 필드를 전달하며, 그 값은 이 헤더의 값이 아닌 제공자 방언 문자열입니다. |85| `anthropic-version` | API 버전. 현재 `2023-06-01`. Bedrock 및 Agent Platform 형식 요청은 또한 `anthropic_version` 본문 필드를 전달하며, 그 값은 이 헤더의 값이 아닌 제공자 방언 문자열입니다. |

84| `anthropic-beta` | 요청에 대한 쉼표로 구분된 기능 값. 헤더를 그대로 전달합니다. 개별 값을 허용 목록에 추가하지 마십시오. Claude Code 릴리스에 따라 집합이 변경되기 때문입니다. 개발자가 claude.ai 로그인으로 인증할 때 (이는 `ANTHROPIC_BASE_URL`이 게이트웨이 자격 증명 변수 없이 설정될 때 가능함), 이 헤더는 또한 업스트림이 요구하는 OAuth 기능을 전달하며, 이를 제거하면 해당 요청이 `401`로 실패합니다. |86| `anthropic-beta` | 요청에 대한 쉼표로 구분된 기능 값. 헤더를 그대로 전달합니다. 개별 값을 허용 목록에 추가하지 마십시오. Claude Code 릴리스에 따라 집합이 변경되기 때문입니다. 개발자가 claude.ai 로그인으로 인증할 때 (이는 `ANTHROPIC_BASE_URL`이 게이트웨이 자격 증명 변수 없이 설정될 때 가능함), 이 헤더는 또한 업스트림이 요구하는 OAuth 기능을 전달하며, 이를 제거하면 해당 요청이 `401`로 실패합니다. |

85| `x-claude-code-session-id` | 현재 Claude Code 세션의 고유 식별자. 요청 본문을 구문 분석하지 않고 한 세션의 모든 요청을 집계하는 데 사용합니다. |87| `x-claude-code-session-id` | 현재 Claude Code 세션의 고유 식별자. 요청 본문을 구문 분석하지 않고 한 세션의 모든 요청을 집계하는 데 사용합니다. |

86| `x-claude-code-agent-id` | 요청을 발급한 [서브에이전트](/ko/sub-agents)의 식별자. 세션 내에서 Claude Code가 생성한 에이전트의 요청에만 존재합니다. 세션 ID와 함께 사용하여 병렬 에이전트에 비용을 속성화합니다. |88| `x-claude-code-agent-id` | 요청을 발급한 [서브에이전트](/ko/sub-agents)의 식별자. 세션 내에서 Claude Code가 생성한 에이전트의 요청에만 존재합니다. 세션 ID와 함께 사용하여 병렬 에이전트에 비용을 속성화합니다. |


98 100 

99Anthropic 형식 업스트림으로 전달할 때, 오늘 보는 것들을 허용 목록에 추가하기보다는 `anthropic-*` 요청 헤더 및 요청 본문 필드를 변경 없이 통과시킵니다. 관찰된 목록에 고정된 게이트웨이는 다음 기능의 헤더 또는 필드를 제거하고 이를 도입하는 릴리스에서 손상시킵니다.101Anthropic 형식 업스트림으로 전달할 때, 오늘 보는 것들을 허용 목록에 추가하기보다는 `anthropic-*` 요청 헤더 및 요청 본문 필드를 변경 없이 통과시킵니다. 관찰된 목록에 고정된 게이트웨이는 다음 기능의 헤더 또는 필드를 제거하고 이를 도입하는 릴리스에서 손상시킵니다.

100 102 

101예외는 Bedrock 또는 Vertex와 같은 비 Anthropic 업스트림입니다. 여기서 스키마 차이를 연결하는 것은 게이트웨이의 작업입니다. [기능 통과](#feature-pass-through)를 참조하십시오.103예외는 Bedrock 또는 Agent Platform과 같은 비 Anthropic 업스트림입니다. 여기서 스키마 차이를 연결하는 것은 게이트웨이의 작업입니다. [기능 통과](#feature-pass-through)를 참조하십시오.

102 104 

103<h2 id="system-prompt-attribution-block">105<h2 id="system-prompt-attribution-block">

104 시스템 프롬프트 속성 블록106 시스템 프롬프트 속성 블록


112 기능 통과114 기능 통과

113</h2>115</h2>

114 116 

115Claude Code는 `ANTHROPIC_BASE_URL` 게이트웨이를 Anthropic 형식 엔드포인트로 취급하고 `api.anthropic.com`으로 전송하는 베타 헤더 및 요청 본문 필드를 전송합니다. 단, 직접 연결을 위해 예약된 작은 진단 및 기본값 집합은 제외합니다.117Claude Code는 `ANTHROPIC_BASE_URL` 게이트웨이를 Anthropic 형식 엔드포인트로 취급하고 `api.anthropic.com`으로 전송하는 베타 헤더 및 요청 본문 필드를 전송합니다. 단, 직접 연결을 위해 예약된 작은 진단 및 기본값 집합은 제외합니다. 이 집합은 릴리스에 따라 다르므로 그 내용에 의존하지 마십시오.

116 118 

117기능을 추가하는 본문 필드는 베타 헤더와 쌍을 이루며, 쌍은 함께 이동합니다. 헤더를 제거하면서 본문을 통과시키거나, Anthropic 형식 본문을 다른 스키마의 업스트림으로 전달하는 게이트웨이는 하드 `400` 오류를 생성합니다. 두 절반이 함께 없을 때만 기능이 조용히 꺼집니다. 콘텐츠 검사를 위해 요청 본문을 다시 쓰거나 수정하는 게이트웨이는 제거하는 것과 같은 방식으로 쌍을 손상시키므로, 수정하지 않고 검사합니다. 표는 기능이 쌍에서 벗어나는 경우를 기록합니다.119기능을 추가하는 본문 필드는 베타 헤더와 쌍을 이루며, 쌍은 함께 이동합니다. 헤더를 제거하면서 본문을 통과시키거나, Anthropic 형식 본문을 다른 스키마의 업스트림으로 전달하는 게이트웨이는 하드 `400` 오류를 생성합니다. 두 절반이 함께 없을 때만 기능이 조용히 꺼집니다. 콘텐츠 검사를 위해 요청 본문을 다시 쓰거나 수정하는 게이트웨이는 제거하는 것과 같은 방식으로 쌍을 손상시키므로, 수정하지 않고 검사합니다. 표는 기능이 쌍에서 벗어나는 경우를 기록합니다.

118 120 

119세분화된 도구 스트리밍은 직접 연결 기본값 중 하나입니다. 요청이 사용자 정의 기본 URL을 통해 라우팅될 때마다 기본적으로 꺼져 있으며, 개발자가 [`CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1`](/ko/env-vars)을 설정할 때 게이트웨이가 이를 수신합니다.121세분화된 도구 스트리밍은 직접 연결 기본값 중 하나입니다. 요청이 사용자 정의 기본 URL을 통해 라우팅될 때마다 기본적으로 꺼져 있으며, 개발자가 [`CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1`](/ko/env-vars)을 설정할 때 게이트웨이가 이를 수신합니다.

120 122 

121| 기능 | 헤더 및 본문 쌍 | 손상될 때의 증상 | 해결 방법 |123| 기능 | 헤더 및 본문 쌍 | 손상될 때의 증상 | 해결 방법 |

122| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------- |124| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------- |

123| [적응형 추론](/ko/model-config#adjust-effort-level) | 베타 헤더 없음. Claude Code는 Claude 4.6 이상에 대해 `thinking: {"type": "adaptive"}`를 전송하고, 게이트웨이 별칭과 같이 인식하지 못하는 모델 이름을 현재 모델로 취급하여 필드를 수신합니다. | 업스트림 모델 빌드가 이를 수락하지 않을 때 `thinking` 필드 또는 `adaptive` 태그의 이름을 지정하는 `400` | 업스트림을 업그레이드합니다. Opus 4.6 및 Sonnet 4.6에서 개발자는 대신 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1`을 설정할 수 있습니다. |125| [적응형 추론](/ko/model-config#adjust-effort-level) | 베타 헤더 없음. Claude Code는 Claude 4.6 이상에 대해 `thinking: {"type": "adaptive"}`를 전송하고, 게이트웨이 별칭과 같이 인식하지 못하는 모델 이름을 현재 모델로 취급하여 필드를 수신합니다. | 업스트림 모델 빌드가 이를 수락하지 않을 때 `thinking` 필드 또는 `adaptive` 태그의 이름을 지정하는 `400` | 업스트림을 업그레이드합니다. Opus 4.6 및 Sonnet 4.6에서 개발자는 대신 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1`을 설정할 수 있습니다. |

124| [컨텍스트 관리](https://platform.claude.com/docs/en/build-with-claude/context-management) | 컨텍스트 관리 베타 헤더는 `context_management` 본문 필드와 쌍을 이룹니다. | `Extra inputs are not permitted`를 포함한 `400`. 게이트웨이가 Anthropic 형식 요청을 수락하지만 Bedrock으로 전달할 때 일반적입니다. | 둘 다 전달하거나 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/ko/env-vars) |126| [컨텍스트 관리](https://platform.claude.com/docs/en/build-with-claude/context-management) | 컨텍스트 관리 베타 헤더는 `context_management` 본문 필드와 쌍을 이룹니다. | `Extra inputs are not permitted`를 포함한 `400`. 게이트웨이가 Anthropic 형식 요청을 수락하지만 Bedrock으로 전달할 때 일반적입니다. | 둘 다 전달하거나 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/ko/env-vars) |

125| [확장 컨텍스트](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window) 및 [인터리브된 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 베타 헤더만, 본문 필드 없음 | 헤더가 제거될 때 조용히 사용 불가능. 업스트림은 기능 요청을 보지 못합니다. | `anthropic-beta`를 그대로 전달합니다. |127| [확장 컨텍스트](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window) 및 [인터리브된 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 베타 헤더만, 본문 필드 없음 | 헤더가 제거될 때 조용히 사용 불가능. 업스트림은 기능 요청을 보지 못합니다. | `anthropic-beta`를 그대로 전달합니다. |

126| 베타 [도구 필드](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | 도구 관련 베타 헤더는 `strict` 및 `defer_loading`과 같은 도구 스키마 필드와 쌍을 이룹니다. | 본문이 헤더 없이 통과할 때 인식되지 않는 도구 스키마 필드의 이름을 지정하는 `400` | 둘 다 전달하거나 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` |128| 베타 [도구 필드](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | 도구 관련 베타 헤더는 `strict` 및 `defer_loading`과 같은 도구 스키마 필드와 쌍을 이룹니다. | 본문이 헤더 없이 통과할 때 인식되지 않는 도구 스키마 필드의 이름을 지정하는 `400` | 둘 다 전달하거나 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` |

127| [노력](https://platform.claude.com/docs/en/build-with-claude/effort) 및 [구조화된 출력](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | `output_config` 본문 필드는 노력, 구조화된 출력 형식 및 작업 예산 설정을 전달합니다. 각각은 자체 베타 헤더와 쌍을 이룹니다. | Bedrock 및 Vertex 업스트림에서 `output_config`의 이름을 지정하는 `400`. 종종 `Extra inputs are not permitted` | 필드와 헤더를 함께 전달합니다. |129| [노력](https://platform.claude.com/docs/en/build-with-claude/effort) 및 [구조화된 출력](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | `output_config` 본문 필드는 노력, 구조화된 출력 형식 및 작업 예산 설정을 전달합니다. 각각은 자체 베타 헤더와 쌍을 이룹니다. | Bedrock 및 Agent Platform 업스트림에서 `output_config`의 이름을 지정하는 `400`. 종종 `Extra inputs are not permitted` | 필드와 헤더를 함께 전달합니다. |

128| [토큰 계산](https://platform.claude.com/docs/en/build-with-claude/token-counting) | 베타 쌍 없음. `count_tokens` 엔드포인트를 사용합니다. | Claude Code는 컨텍스트 사용을 로컬에서 추정하는 것으로 돌아갑니다. | 정확한 계산을 원하면 엔드포인트를 노출합니다. |130| [토큰 계산](https://platform.claude.com/docs/en/build-with-claude/token-counting) | 베타 쌍 없음. `count_tokens` 엔드포인트를 사용합니다. | Claude Code는 컨텍스트 사용을 로컬에서 추정하는 것으로 돌아갑니다. | 정확한 계산을 원하면 엔드포인트를 노출합니다. |

129 131 

130`ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` [변수](/ko/model-config)는 제공자 구성에서만 모델 기능을 선언합니다: `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, 및 [`CLAUDE_CODE_USE_MANTLE`](/ko/amazon-bedrock#use-the-mantle-endpoint). 이들은 `ANTHROPIC_BASE_URL` 게이트웨이 뒤에서 효과가 없습니다.132`ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` [변수](/ko/model-config)는 제공자 구성에서만 모델 기능을 선언합니다: `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, 및 [`CLAUDE_CODE_USE_MANTLE`](/ko/amazon-bedrock#use-the-mantle-endpoint). 이들은 `ANTHROPIC_BASE_URL` 게이트웨이 뒤에서 효과가 없습니다.


182{184{

183 "data": [185 "data": [

184 { "id": "claude-sonnet-4-6", "display_name": "Claude Sonnet 4.6" },186 { "id": "claude-sonnet-4-6", "display_name": "Claude Sonnet 4.6" },

185 { "id": "claude-opus-4-7" }187 { "id": "claude-opus-4-8" }

186 ]188 ]

187}189}

188```190```


191 선택기 항목 및 캐싱193 선택기 항목 및 캐싱

192</h3>194</h3>

193 195 

194선택기는 개발자가 Claude Code에서 `/model`을 실행할 때 열리는 대화형 모델 목록입니다. 각 검색된 항목은 "게이트웨이에서" 레이블이 지정되고 제공된 경우 `display_name`을 사용합니다. 검색된 ID는 선택기에 이미 있는 행과 정확히 일치하거나 검색된 ID와 기존 ID가 모두 [Fable](/ko/model-config#work-with-fable-5)로 해결될 때만 건너뜁니다. 기본 제공 행은 `sonnet`과 같은 별칭으로 키가 지정되므로, `claude-sonnet-4-6`과 같은 검색된 ID는 기본 제공 항목 옆에 자체 "게이트웨이에서" 행을 추가합니다. [`availableModels` 관리되는 설정](/ko/settings#available-settings)은 검색이 추가할 수 있는 것을 제한합니다.196선택기는 개발자가 Claude Code에서 `/model`을 실행할 때 열리는 대화형 모델 목록입니다. 각 검색된 항목은 "게이트웨이에서" 레이블이 지정되고 제공된 경우 `display_name`을 사용합니다. [`availableModels` 관리되는 설정](/ko/settings#available-settings)은 검색이 추가할 수 있는 것을 제한합니다.

197 

198검색된 ID는 선택기에 이미 있는 행과 정확히 일치하거나 검색된 ID와 기존 ID가 모두 [Fable](/ko/model-config#work-with-fable-5)로 해결될 때만 건너뜁니다. 기본 제공 행은 `sonnet`과 같은 별칭으로 키가 지정되므로, `claude-sonnet-4-6`과 같은 검색된 ID는 기본 제공 항목 옆에 자체 "게이트웨이에서" 행을 추가합니다.

195 199 

196결과는 `~/.claude/cache/gateway-models.json` 또는 Windows의 `%USERPROFILE%\.claude\cache\gateway-models.json`으로 캐시되고 각 시작 시 새로 고쳐집니다. 요청이 실패하거나 게이트웨이가 `/v1/models`를 구현하지 않으면, 선택기는 이전 시작의 캐시된 목록 또는 기본 제공 모델 목록으로 돌아갑니다. 게이트웨이가 검색 필터와 일치하지 않는 별칭 아래에서 Claude 모델을 제공하면, 개발자는 [모델 구성](/ko/model-config) 변수를 사용하여 해당 별칭을 수동으로 추가할 수 있습니다.200결과는 `~/.claude/cache/gateway-models.json` 또는 Windows의 `%USERPROFILE%\.claude\cache\gateway-models.json`으로 캐시되고 각 시작 시 새로 고쳐집니다. 요청이 실패하거나 게이트웨이가 `/v1/models`를 구현하지 않으면, 선택기는 이전 시작의 캐시된 목록 또는 기본 제공 모델 목록으로 돌아갑니다. 게이트웨이가 검색 필터와 일치하지 않는 별칭 아래에서 Claude 모델을 제공하면, 개발자는 [모델 구성](/ko/model-config) 변수를 사용하여 해당 별칭을 수동으로 추가할 수 있습니다.

197 201 


201 205 

202게이트웨이 문서 집합의 나머지 부분 및 기본 API 참조:206게이트웨이 문서 집합의 나머지 부분 및 기본 API 참조:

203 207 

204* [LLM 게이트웨이 개요](/ko/llm-gateway): 게이트웨이가 무엇이고 claude.ai 구독과 어떻게 상호작용하는지208* [게이트웨이 개요](/ko/gateways): 게이트웨이가 무엇이고 Claude 게이트웨이와 다른 제품 중에서 선택하는 방법

209* [다른 LLM 게이트웨이](/ko/llm-gateway): 조직이 실행하는 게이트웨이를 배포하는 방법 및 claude.ai 구독과 어떻게 상호작용하는지

205* [조직을 위해 LLM 게이트웨이 배포](/ko/llm-gateway-rollout): 이 계약을 사용하는 관리자 체크리스트210* [조직을 위해 LLM 게이트웨이 배포](/ko/llm-gateway-rollout): 이 계약을 사용하는 관리자 체크리스트

206* [Claude Code를 LLM 게이트웨이에 연결](/ko/llm-gateway-connect): 개발자별 구성 및 문제 해결 표211* [Claude Code를 LLM 게이트웨이에 연결](/ko/llm-gateway-connect): 개발자별 구성 및 문제 해결 표

207* [베타 헤더 참조](https://platform.claude.com/docs/en/api/beta-headers): 현재 `anthropic-beta` 값 집합212* [베타 헤더 참조](https://platform.claude.com/docs/en/api/beta-headers): 현재 `anthropic-beta` 값 집합

Details

22* 인프라에 배포된 게이트웨이로, 개발자에게 배포할 정확한 주소에서 HTTPS를 제공하며, 리디렉션되는 주소가 아니고, Claude 모델 이름을 공급자에게 라우팅하도록 구성됨22* 인프라에 배포된 게이트웨이로, 개발자에게 배포할 정확한 주소에서 HTTPS를 제공하며, 리디렉션되는 주소가 아니고, Claude 모델 이름을 공급자에게 라우팅하도록 구성됨

23* 게이트웨이가 전달할 공급자 자격증명:23* 게이트웨이가 전달할 공급자 자격증명:

24 * Anthropic API의 경우: [Claude 콘솔](https://platform.claude.com/settings/keys)의 API 키24 * Anthropic API의 경우: [Claude 콘솔](https://platform.claude.com/settings/keys)의 API 키

25 * 클라우드 공급자의 경우: 모델 액세스 권한이 있는 클라우드 자격증명. [Amazon Bedrock](/ko/amazon-bedrock#prerequisites), [Google Vertex AI](/ko/google-vertex-ai#prerequisites) 또는 [Microsoft Foundry](/ko/microsoft-foundry#prerequisites) 페이지의 필수 조건을 참조하십시오.25 * 클라우드 공급자의 경우: 모델 액세스 권한이 있는 클라우드 자격증명. [Amazon Bedrock](/ko/amazon-bedrock#prerequisites), [Google Cloud의 Agent Platform](/ko/google-vertex-ai#prerequisites) 또는 [Microsoft Foundry](/ko/microsoft-foundry#prerequisites) 페이지의 필수 조건을 참조하십시오.

26* MDM 또는 구성 관리와 같이 개발자 머신에 설정 파일을 전달하는 방법26* MDM 또는 구성 관리와 같이 개발자 머신에 설정 파일을 전달하는 방법

27 * 아직 없는 경우 [설정이 장치에 도달하는 방법](/ko/admin-setup#decide-how-settings-reach-devices)에서 옵션을 비교합니다.27 * 아직 없는 경우 [설정이 장치에 도달하는 방법](/ko/admin-setup#decide-how-settings-reach-devices)에서 옵션을 비교합니다.

28 28 


180어느 경로를 선택하든 동일한 변수 집합이 적용됩니다. 대부분의 롤아웃은 `ANTHROPIC_BASE_URL`과 자격증명만 필요합니다. 게이트웨이 설정에서 필요한 경우 조건부 행을 포함하십시오.180어느 경로를 선택하든 동일한 변수 집합이 적용됩니다. 대부분의 롤아웃은 `ANTHROPIC_BASE_URL`과 자격증명만 필요합니다. 게이트웨이 설정에서 필요한 경우 조건부 행을 포함하십시오.

181 181 

182| 변수 또는 설정 | 수행 작업 | 포함 시기 |182| 변수 또는 설정 | 수행 작업 | 포함 시기 |

183| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |183| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

184| `ANTHROPIC_BASE_URL` | Claude Code의 API 요청을 `api.anthropic.com` 대신 게이트웨이로 전송합니다. | 항상 |184| `ANTHROPIC_BASE_URL` | Claude Code의 API 요청을 `api.anthropic.com` 대신 게이트웨이로 전송합니다. | 항상 |

185| `apiKeyHelper` 또는 `ANTHROPIC_AUTH_TOKEN` 또는 `ANTHROPIC_API_KEY`의 자격증명 | 게이트웨이에 대한 각 요청을 인증합니다. 도우미는 키를 가져오는 명령을 실행합니다. 변수는 각각 `Authorization: Bearer` 및 `x-api-key`로 전송되는 정적 키를 보유합니다. | 항상; 3개 중 1개 |185| `apiKeyHelper` 또는 `ANTHROPIC_AUTH_TOKEN` 또는 `ANTHROPIC_API_KEY`의 자격증명 | 게이트웨이에 대한 각 요청을 인증합니다. 도우미는 키를 가져오는 명령을 실행합니다. 변수는 각각 `Authorization: Bearer` 및 `x-api-key`로 전송되는 정적 키를 보유합니다. | 항상; 3개 중 1개 |

186| `ANTHROPIC_CUSTOM_HEADERS` | 모든 API 요청에 추가 HTTP 헤더를 추가합니다. | 게이트웨이가 모든 요청에 테넌트 또는 라우팅 헤더를 요구하는 경우 |186| `ANTHROPIC_CUSTOM_HEADERS` | 모든 API 요청에 추가 HTTP 헤더를 추가합니다. | 게이트웨이가 모든 요청에 테넌트 또는 라우팅 헤더를 요구하는 경우 |

187| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | 시작 시 게이트웨이의 `/v1/models`을 쿼리하고 반환된 이름을 `/model` 선택기에 추가합니다. | 게이트웨이가 `/v1/models`을 제공하고 개발자의 선택기를 게이트웨이에서 채우려는 경우 |187| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | 시작 시 게이트웨이의 `/v1/models`을 쿼리하고 반환된 이름을 `/model` 선택기에 추가합니다. | 게이트웨이가 `/v1/models`을 제공하고 개발자의 선택기를 게이트웨이에서 채우려는 경우 |

188| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Claude Code가 사전 릴리스 기능 헤더 및 본문 필드를 전송하지 않도록 중지합니다. | 게이트웨이가 베타 필드를 거부하는 Bedrock 또는 Vertex 업스트림으로 전달하는 경우. [게이트웨이 요구사항](#gateway-requirements) 참조 |188| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Claude Code가 사전 릴리스 기능 헤더 및 본문 필드를 전송하지 않도록 중지합니다. | 게이트웨이가 베타 필드를 거부하는 Bedrock 또는 Agent Platform 업스트림으로 전달하는 경우. [게이트웨이 요구사항](#gateway-requirements) 참조 |

189| `ANTHROPIC_MODEL` 또는 [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/ko/model-config) | Claude Code가 주 세션 및 백그라운드 트래픽에 대해 요청하는 모델 이름을 설정합니다. | 게이트웨이가 Claude Code의 기본값과 일치하지 않는 모델 이름을 라우팅하거나 [백그라운드 기능](/ko/costs#background-token-usage)을 다른 모델로 라우팅하는 경우. 게이트웨이에서 재정의 이름과 Claude Code의 기본 이름을 모두 라우팅하십시오. 일부 하위 호출은 재정의와 관계없이 기본 이름을 요청할 수 있기 때문입니다. |189| `ANTHROPIC_MODEL` 또는 [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/ko/model-config) | Claude Code가 주 세션 및 백그라운드 트래픽에 대해 요청하는 모델 이름을 설정합니다. | 게이트웨이가 Claude Code의 기본값과 일치하지 않는 모델 이름을 라우팅하거나 [백그라운드 기능](/ko/costs#background-token-usage)을 다른 모델로 라우팅하는 경우. 게이트웨이에서 재정의 이름과 Claude Code의 기본 이름을 모두 라우팅하십시오. 일부 하위 호출은 재정의와 관계없이 기본 이름을 요청할 수 있기 때문입니다. [모델 구성](/ko/model-config)은 세션의 각 부분이 사용하는 모델을 다룹니다. |

190| `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, `ANTHROPIC_FOUNDRY_BASE_URL` 또는 `ANTHROPIC_AWS_BASE_URL`과 [해당 공급자의 변수](/ko/llm-gateway-connect#route-to-a-cloud-provider-through-a-gateway) | Claude Code를 게이트웨이를 통해 공급자별 기본 URL로 가리킵니다. Bedrock 및 Vertex는 해당 공급자의 기본 요청 형식으로도 전환합니다. | 게이트웨이가 Bedrock, Vertex, Foundry 또는 AWS의 Claude Platform을 앞에 두는 경우. [API 형식](/ko/llm-gateway-protocol#api-formats) 참조 |190| `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, `ANTHROPIC_FOUNDRY_BASE_URL` 또는 `ANTHROPIC_AWS_BASE_URL`과 [해당 공급자의 변수](/ko/llm-gateway-connect#route-to-a-cloud-provider-through-a-gateway) | Claude Code를 게이트웨이를 통해 공급자별 기본 URL로 가리킵니다. Bedrock 및 Agent Platform은 해당 공급자의 기본 요청 형식으로도 전환합니다. | 게이트웨이가 Bedrock, Agent Platform, Foundry 또는 AWS의 Claude Platform을 앞에 두는 경우. [API 형식](/ko/llm-gateway-protocol#api-formats) 참조 |

191 191 

192<h4 id="distribute-through-managed-settings">192<h4 id="distribute-through-managed-settings">

193 관리되는 설정을 통해 배포193 관리되는 설정을 통해 배포

mcp.md +36 −6

Details

111 111 

112Stdio 서버는 컴퓨터에서 로컬 프로세스로 실행됩니다. 시스템에 직접 액세스하거나 사용자 정의 스크립트가 필요한 도구에 이상적입니다.112Stdio 서버는 컴퓨터에서 로컬 프로세스로 실행됩니다. 시스템에 직접 액세스하거나 사용자 정의 스크립트가 필요한 도구에 이상적입니다.

113 113 

114Claude Code는 생성된 서버의 환경에서 `CLAUDE_PROJECT_DIR`을 프로젝트 루트로 설정하므로 서버는 작업 디렉터리에 의존하지 않고 프로젝트 상대 경로를 확인할 수 있습니다. 이는 hooks가 `CLAUDE_PROJECT_DIR` 변수에서 받는 것과 동일한 디렉터리입니다. 서버 프로세스 내에서 읽으세요. 예를 들어 Node에서는 `process.env.CLAUDE_PROJECT_DIR` 또는 Python에서는 `os.environ["CLAUDE_PROJECT_DIR"]`입니다. 서버는 또한 MCP `roots/list` 요청을 호출할 수 있으며, 이는 Claude Code가 시작된 디렉터리를 반환합니다.114Claude Code는 생성된 서버의 환경에서 `CLAUDE_PROJECT_DIR`을 프로젝트 루트로 설정하므로 서버는 작업 디렉터리에 의존하지 않고 프로젝트 상대 경로를 확인할 수 있습니다. 이는 hooks가 `CLAUDE_PROJECT_DIR` 변수에서 받는 것과 동일한 디렉터리입니다. 서버 프로세스 내에서 읽으세요. 예를 들어 Node에서는 `process.env.CLAUDE_PROJECT_DIR` 또는 Python에서는 `os.environ["CLAUDE_PROJECT_DIR"]`입니다.

115 

116서버는 또한 MCP `roots/list` 요청을 호출할 수 있으며, 이는 Claude Code가 시작된 디렉터리를 반환합니다.

115 117 

116이 변수는 Claude Code 자체의 환경이 아닌 서버의 환경에 설정되므로 프로젝트 또는 사용자 범위의 `.mcp.json` `command` 또는 `args`에서 `${VAR}` 확장을 통해 참조하려면 `${CLAUDE_PROJECT_DIR:-.}`와 같은 기본값이 필요합니다. 플러그인 제공 MCP 구성은 `${CLAUDE_PROJECT_DIR}`을 직접 대체하며 기본값이 필요하지 않습니다.118이 변수는 Claude Code 자체의 환경이 아닌 서버의 환경에 설정되므로 프로젝트 또는 사용자 범위의 `.mcp.json` `command` 또는 `args`에서 `${VAR}` 확장을 통해 참조하려면 `${CLAUDE_PROJECT_DIR:-.}`와 같은 기본값이 필요합니다. 플러그인 제공 MCP 구성은 `${CLAUDE_PROJECT_DIR}`을 직접 대체하며 기본값이 필요하지 않습니다.

117 119 


176 178 

177`.mcp.json`의 프로젝트 범위 서버 중 승인을 기다리는 서버는 `claude mcp list`에 `⏸ 승인 대기 중`으로 나타납니다. `claude`를 대화형으로 실행하여 검토하고 승인하세요. `claude mcp get <name>`은 보류 중인 서버를 `⏸ 승인 대기 중`으로 표시하고 거부된 서버를 `✗ 거부됨`으로 표시합니다.179`.mcp.json`의 프로젝트 범위 서버 중 승인을 기다리는 서버는 `claude mcp list`에 `⏸ 승인 대기 중`으로 나타납니다. `claude`를 대화형으로 실행하여 검토하고 승인하세요. `claude mcp get <name>`은 보류 중인 서버를 `⏸ 승인 대기 중`으로 표시하고 거부된 서버를 `✗ 거부됨`으로 표시합니다.

178 180 

181v2.1.196부터 `claude mcp list` 및 `claude mcp get`은 `.mcp.json` 승인을 `claude`를 실행하고 작업 영역 신뢰 대화 상자를 수락하여 작업 영역을 신뢰할 때까지 저장소에 체크인되지 않은 설정 파일에서만 읽습니다. 복제된 저장소는 자신의 서버를 승인할 수 없습니다: 프로젝트의 `.claude/settings.json`에 커밋된 [`enableAllProjectMcpServers` 또는 `enabledMcpjsonServers`](/ko/settings#available-settings)는 신뢰할 수 없는 폴더에서 무시되며, 서버는 연결되고 상태 확인되는 대신 `⏸ 승인 대기 중`으로 유지됩니다.

182 

183이러한 소스의 승인은 신뢰할 수 없는 폴더에서도 적용됩니다:

184 

185* 사용자 `~/.claude/settings.json`

186* 관리되는 설정

187* `--settings`로 전달된 설정

188* `.claude/settings.local.json` (git이 추적하지 않는 한)

189 

190모든 설정 파일의 `disabledMcpjsonServers` 항목은 여전히 서버를 거부합니다.

191 

179`/mcp` 패널은 각 연결된 서버 옆에 도구 개수를 표시하고 도구 기능을 광고하지만 도구를 노출하지 않는 서버에 플래그를 지정합니다.192`/mcp` 패널은 각 연결된 서버 옆에 도구 개수를 표시하고 도구 기능을 광고하지만 도구를 노출하지 않는 서버에 플래그를 지정합니다.

180 193 

181요청이 백그라운드에서 아직 연결 중인 서버의 도구가 필요한 경우 Claude는 해당 서버가 연결될 때까지 기다립니다. [도구 검색](#scale-with-mcp-tool-search)이 활성화되어 있으면 (기본값), 대기는 `ToolSearch` 호출 내에서 발생합니다. Vertex AI, 사용자 정의 `ANTHROPIC_BASE_URL` 또는 `ENABLE_TOOL_SEARCH=false`와 같이 도구 검색이 없는 구성에서는 Claude가 대신 `WaitForMcpServers` 도구를 사용합니다.194요청이 백그라운드에서 아직 연결 중인 서버의 도구가 필요한 경우 Claude는 해당 서버가 연결될 때까지 기다립니다. [도구 검색](#scale-with-mcp-tool-search)이 활성화되어 있으면 (기본값), 대기는 `ToolSearch` 호출 내에서 발생합니다. Vertex AI, 사용자 정의 `ANTHROPIC_BASE_URL` 또는 `ENABLE_TOOL_SEARCH=false`와 같이 도구 검색이 없는 구성에서는 Claude가 대신 `WaitForMcpServers` 도구를 사용합니다.


208 팁:221 팁:

209 222 

210 * `--scope` 플래그를 사용하여 구성이 저장되는 위치를 지정하세요:223 * `--scope` 플래그를 사용하여 구성이 저장되는 위치를 지정하세요:

211 * `local` (기본값): 현재 프로젝트에서만 사용자에게만 사용 가능 (이전 버전에서는 `project`라고 불렸음)224 * `local` (기본값): 현재 프로젝트에서만 사용자에게만 사용 가능. 이전 버전에서는 이 범위를 `project`라고 불렀습니다

212 * `project`: `.mcp.json` 파일을 통해 프로젝트의 모든 사람과 공유225 * `project`: `.mcp.json` 파일을 통해 프로젝트의 모든 사람과 공유

213 * `user`: 모든 프로젝트에서 사용자에게 사용 가능 (이전 버전에서는 `global`이라고 불렸음)226 * `user`: 모든 프로젝트에서 사용자에게 사용 가능. 이전 버전에서는 이 범위를 `global`이라고 불렀습니다

214 * `--env` 플래그로 환경 변수를 설정하세요 (예: `--env KEY=value`)227 * `--env` 플래그로 환경 변수를 설정하세요 (예: `--env KEY=value`)

215 * `MCP_TIMEOUT` 환경 변수를 사용하여 MCP 서버 시작 시간 초과를 구성하세요 (예: `MCP_TIMEOUT=10000 claude`는 10초 시간 초과를 설정)228 * `MCP_TIMEOUT` 환경 변수를 사용하여 MCP 서버 시작 시간 초과를 구성하세요 (예: `MCP_TIMEOUT=10000 claude`는 10초 시간 초과를 설정)

216 * 서버당 도구 실행 시간 초과를 설정하려면 해당 서버의 `.mcp.json` 항목에 밀리초 단위의 `timeout` 필드를 추가하세요. 예를 들어 10분의 경우 `"timeout": 600000`입니다. 이는 해당 서버에만 `MCP_TOOL_TIMEOUT` 환경 변수를 재정의합니다229 * 서버당 도구 실행 시간 초과를 설정하려면 해당 서버의 `.mcp.json` 항목에 밀리초 단위의 `timeout` 필드를 추가하세요. 예를 들어 10분의 경우 `"timeout": 600000`입니다. 이는 해당 서버에만 `MCP_TOOL_TIMEOUT` 환경 변수를 재정의합니다


218 * OAuth 2.0 인증이 필요한 원격 서버로 인증하려면 `/mcp`를 사용하세요231 * OAuth 2.0 인증이 필요한 원격 서버로 인증하려면 `/mcp`를 사용하세요

219</Tip>232</Tip>

220 233 

221서버당 `timeout`은 도구 호출당 하드 월클록 제한이며, 서버의 진행 알림은 이를 연장하지 않습니다. 1000 미만의 값은 무시되고 `MCP_TOOL_TIMEOUT`으로 넘어가거나, 해당 변수가 설정되지 않은 경우 약 28시간의 기본값으로 넘어갑니다. {/* min-version: 2.1.162 */}v2.1.162 이전에는 1000 미만의 값이 1초로 내림되었습니다. HTTP 및 SSE 서버의 경우, 요청당 fetch 첫 바이트 예산은 60초 최소값을 가집니다.234서버당 `timeout`은 도구 호출당 하드 월클록 제한이며, 서버의 진행 알림은 이를 연장하지 않습니다. 1000 미만의 값은 무시되고 `MCP_TOOL_TIMEOUT`으로 넘어가거나, 해당 변수가 설정되지 않은 경우 약 28시간의 기본값으로 넘어갑니다. {/* min-version: 2.1.162 */}v2.1.162 이전에는 1000 미만의 값이 1초로 내림되었습니다.

235 

236HTTP 및 SSE 서버의 경우, 요청당 fetch 첫 바이트 예산은 60초 최소값을 가집니다.

222 237 

223v2.1.187부터 원격 HTTP, SSE, WebSocket 또는 [claude.ai 커넥터](#use-mcp-servers-from-claude-ai) 서버에 대한 도구 호출이 5분 동안 응답 및 진행 알림을 보내지 않으면 월클록 제한을 기다리는 대신 오류로 중단됩니다. [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/ko/env-vars) 환경 변수를 밀리초 단위로 설정하여 유휴 윈도우를 변경하거나, `0`으로 설정하여 확인을 비활성화하세요. Stdio 서버는 로컬 프로세스이며 유휴 시간 초과의 대상이 아닙니다.238v2.1.187부터 원격 HTTP, SSE, WebSocket 또는 [claude.ai 커넥터](#use-mcp-servers-from-claude-ai) 서버에 대한 도구 호출이 5분 동안 응답 및 진행 알림을 보내지 않으면 월클록 제한을 기다리는 대신 오류로 중단됩니다. [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/ko/env-vars) 환경 변수를 밀리초 단위로 설정하여 유휴 윈도우를 변경하거나, `0`으로 설정하여 확인을 비활성화하세요. Stdio 서버는 로컬 프로세스이며 유휴 시간 초과의 대상이 아닙니다.

224 239 


524 539 

525많은 클라우드 기반 MCP 서버는 인증이 필요합니다. Claude Code는 보안 연결을 위해 OAuth 2.0을 지원합니다.540많은 클라우드 기반 MCP 서버는 인증이 필요합니다. Claude Code는 보안 연결을 위해 OAuth 2.0을 지원합니다.

526 541 

527Claude Code는 서버가 `401 Unauthorized` 또는 `403 Forbidden`으로 응답할 때 원격 서버를 인증이 필요한 것으로 표시합니다. 두 상태 코드 모두 서버를 `/mcp`에 플래그하여 OAuth 흐름을 완료할 수 있습니다. 인증 서버를 가리키는 `WWW-Authenticate` 헤더를 반환하는 사용자 정의 서버는 다른 원격 서버와 동일한 자동 검색을 받습니다.542Claude Code는 서버가 `401 Unauthorized` 또는 `403 Forbidden`으로 응답할 때 원격 서버를 인증이 필요한 것으로 표시합니다. 두 상태 코드 모두 서버를 `/mcp`에 플래그하여 OAuth 흐름을 완료할 수 있습니다.

543 

544v2.1.195부터 토큰 새로 고침이 서버가 저장된 새로 고침 토큰을 거부하기 때문에 실패하면 Claude Code는 즉시 `/mcp`를 가리키는 알림을 표시합니다. 연결된 서버의 메뉴에서 다시 인증하기를 제공하므로 다음 도구 호출이 실패하기 전에 다시 로그인할 수 있습니다.

545 

546인증 서버를 가리키는 `WWW-Authenticate` 헤더를 반환하는 사용자 정의 서버는 다른 원격 서버와 동일한 자동 검색을 받습니다.

547 

548v2.1.193부터 Claude Code는 하나 이상의 구성된 서버가 인증이 필요할 때 시작 알림을 표시하므로 어떤 서버가 로그인이 필요한지 알아내기 위해 `/mcp`를 열 필요가 없습니다.

549 

550비대화형 모드에는 `/mcp` 패널이 없으므로 Claude Code는 OAuth 흐름을 실행할 수 없습니다. v2.1.196부터 구성된 서버가 `claude -p` 또는 [도구 검색](#scale-with-mcp-tool-search)이 활성화된 Agent SDK 실행 중에 인증이 필요할 때 (기본값), Claude Code는 Claude에게 서버의 도구가 인증할 때까지 사용할 수 없음을 알립니다. Claude는 서버가 구성되지 않은 것처럼 응답하는 대신 로그인이 필요한 서버의 이름을 지정할 수 있습니다. `/mcp`를 사용하는 대화형 세션에서 또는 `claude mcp login <name>`으로 로그인을 완료합니다.

528 551 

529서버에 대해 `headers.Authorization`을 구성했는데 서버가 해당 헤더를 거부하면 Claude Code는 OAuth로 폴백하지 않고 연결이 실패한 것으로 보고합니다. MCP 엔드포인트에 대해 토큰이 유효한지 확인하거나 OAuth 흐름을 사용하려면 헤더를 제거합니다.552서버에 대해 `headers.Authorization`을 구성했는데 서버가 해당 헤더를 거부하면 Claude Code는 OAuth로 폴백하지 않고 연결이 실패한 것으로 보고합니다. MCP 엔드포인트에 대해 토큰이 유효한지 확인하거나 OAuth 흐름을 사용하려면 헤더를 제거합니다.

530 553 


710 733 

711`oauth.scopes`는 `authServerMetadataUrl`과 서버가 `/.well-known`에서 검색하는 범위 모두보다 우선합니다. 설정하지 않으면 MCP 서버가 요청된 범위 집합을 결정합니다.734`oauth.scopes`는 `authServerMetadataUrl`과 서버가 `/.well-known`에서 검색하는 범위 모두보다 우선합니다. 설정하지 않으면 MCP 서버가 요청된 범위 집합을 결정합니다.

712 735 

736v2.1.196부터 `oauth.scopes`가 설정되지 않으면 Claude Code는 서버의 `WWW-Authenticate` 헤더 또는 보호된 리소스 메타데이터에서 제공하는 범위를 요청하고 둘 다 제공하지 않을 때 `scope` 매개변수를 보내지 않습니다. 더 이상 자동으로 검색된 인증 서버 메타데이터에서 전체 `scopes_supported` 카탈로그를 요청하지 않습니다. 해당 카탈로그를 요청하면 관리자 전용 또는 템플릿 범위를 광고하는 ID 공급자가 `invalid_scope` 오류로 인증 요청을 거부하게 했습니다. 구성된 `authServerMetadataUrl`에서 가져온 메타데이터는 여전히 `scopes_supported`를 요청된 범위로 제공합니다.

737 

713인증 서버가 `scopes_supported`에서 `offline_access`를 광고하면 Claude Code는 액세스 토큰을 새로운 브라우저 로그인 없이 새로 고칠 수 있도록 고정된 범위에 추가합니다.738인증 서버가 `scopes_supported`에서 `offline_access`를 광고하면 Claude Code는 액세스 토큰을 새로운 브라우저 로그인 없이 새로 고칠 수 있도록 고정된 범위에 추가합니다.

714 739 

715서버가 나중에 도구 호출에 대해 403 `insufficient_scope`을 반환하면 Claude Code는 동일한 고정된 범위로 다시 인증합니다. 필요한 도구가 고정된 범위 외의 범위를 요구할 때 `oauth.scopes`를 확대합니다.740서버가 나중에 도구 호출에 대해 403 `insufficient_scope`을 반환하면 Claude Code는 동일한 고정된 범위로 다시 인증합니다. 필요한 도구가 고정된 범위 외의 범위를 요구할 때 `oauth.scopes`를 확대합니다.


754 779 

755헬퍼는 각 연결 (세션 시작 및 재연결 시)에서 새로 실행됩니다. 캐싱이 없으므로 스크립트는 토큰 재사용을 담당합니다.780헬퍼는 각 연결 (세션 시작 및 재연결 시)에서 새로 실행됩니다. 캐싱이 없으므로 스크립트는 토큰 재사용을 담당합니다.

756 781 

782v2.1.193부터 도구 호출이 `401 Unauthorized` 또는 `403 Forbidden`을 반환하면 Claude Code는 자동으로 헬퍼를 다시 실행하고 새로운 헤더로 재연결한 다음 호출을 한 번 재시도합니다. Claude Code는 해당 재시도도 실패한 경우에만 서버를 `/mcp`에서 인증이 필요한 것으로 표시합니다.

783 

757Claude Code는 헬퍼를 실행할 때 다음 환경 변수를 설정합니다:784Claude Code는 헬퍼를 실행할 때 다음 환경 변수를 설정합니다:

758 785 

759| 변수 | 값 |786| 변수 | 값 |

760| :---------------------------- | :---------- |787| :---------------------------- | :------------------------------------------------------------------------- |

761| `CLAUDE_CODE_MCP_SERVER_NAME` | MCP 서버의 이름 |788| `CLAUDE_CODE_MCP_SERVER_NAME` | MCP 서버의 이름 |

762| `CLAUDE_CODE_MCP_SERVER_URL` | MCP 서버의 URL |789| `CLAUDE_CODE_MCP_SERVER_URL` | MCP 서버의 URL |

790| `CLAUDE_PLUGIN_ROOT` | 플러그인의 루트 디렉토리. [플러그인](/ko/plugins-reference#mcp-servers)이 서버를 제공할 때만 설정됩니다 |

763 791 

764이를 사용하여 여러 MCP 서버를 제공하는 단일 헬퍼 스크립트를 작성합니다.792이를 사용하여 여러 MCP 서버를 제공하는 단일 헬퍼 스크립트를 작성합니다.

765 793 

794플러그인 제공 서버의 경우 헬퍼는 또한 작업 디렉토리가 플러그인 루트로 설정된 상태에서 실행되므로 상대 `headersHelper` 경로는 세션의 작업 디렉토리가 아닌 플러그인 디렉토리 내에서 확인됩니다. Claude Code v2.1.195 이상이 필요합니다.

795 

766<Note>796<Note>

767 `headersHelper`는 임의의 셸 명령을 실행합니다. 프로젝트 또는 로컬 범위에서 정의될 때 작업 공간 신뢰 대화 상자를 수락한 후에만 실행됩니다.797 `headersHelper`는 임의의 셸 명령을 실행합니다. 프로젝트 또는 로컬 범위에서 정의될 때 작업 공간 신뢰 대화 상자를 수락한 후에만 실행됩니다.

768</Note>798</Note>

Details

171 171 

172```bash theme={null}172```bash theme={null}

173export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'173export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'

174export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-4-6'174export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-5'

175export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5'175export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5'

176```176```

177 177 

model-config.md +43 −30

Details

30모델 별칭은 정확한 버전 번호를 기억할 필요 없이 모델 설정을 선택하는 편리한 방법을 제공합니다:30모델 별칭은 정확한 버전 번호를 기억할 필요 없이 모델 설정을 선택하는 편리한 방법을 제공합니다:

31 31 

32| 모델 별칭 | 동작 |32| 모델 별칭 | 동작 |

33| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |33| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

34| **`default`** | 모델 재정의를 제거하고 계정 유형에 따른 권장 모델로 되돌리는 특수 값입니다. 자체로는 모델 별칭이 아닙니다 |34| **`default`** | 모델 재정의를 제거하고 계정 유형에 따른 권장 모델로 되돌리는 특수 값입니다. 자체로는 모델 별칭이 아닙니다 |

35| **`best`** | 조직에서 액세스할 수 있는 경우 Fable 5를 사용하고, 그렇지 않으면 최신 Opus 모델을 사용합니다 |35| **`best`** | 조직에서 액세스할 수 있는 경우 Fable 5를 사용하고, 그렇지 않으면 최신 Opus 모델을 사용합니다 |

36| **`fable`** | 가장 어렵고 오래 실행되는 작업을 위해 Claude Fable 5를 사용합니다 |36| **`fable`** | 가장 어렵고 오래 실행되는 작업을 위해 Claude Fable 5를 사용합니다 |

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

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

39| **`haiku`** | 간단한 작업을 위해 빠르고 효율적인 Haiku 모델을 사용합니다 |39| **`haiku`** | 간단한 작업을 위해 빠르고 효율적인 Haiku 모델을 사용합니다 |

40| **`sonnet[1m]`** | 긴 세션을 위해 [100만 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/ko/build-with-claude/context-windows#1m-token-context-window)를 사용하는 Sonnet을 사용합니다 |40| **`sonnet[1m]`** | 긴 세션을 위해 [100만 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/ko/build-with-claude/context-windows#1m-token-context-window)를 사용하는 Sonnet을 사용합니다. `sonnet`이 이미 기본 1M 윈도우를 가진 Sonnet 5로 확인될 때는 효과가 없습니다. [LLM 게이트웨이](/ko/llm-gateway) 뒤에서는 Sonnet 5의 1M 윈도우를 선택합니다 |

41| **`opus[1m]`** | 긴 세션을 위해 [100만 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/ko/build-with-claude/context-windows#1m-token-context-window)를 사용하는 Opus를 사용합니다 |41| **`opus[1m]`** | 긴 세션을 위해 [100만 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/ko/build-with-claude/context-windows#1m-token-context-window)를 사용하는 Opus를 사용합니다 |

42| **`opusplan`** | Plan Mode 중에 `opus`를 사용한 후 실행을 위해 `sonnet`으로 전환하는 특수 모드입니다 |42| **`opusplan`** | Plan Mode 중에 `opus`를 사용한 후 실행을 위해 `sonnet`으로 전환하는 특수 모드입니다 |

43 43 

44Anthropic API에서 `opus`는 Opus 4.8로, `sonnet`은 Sonnet 4.6으로 확인됩니다. [Claude Platform on AWS](/ko/claude-platform-on-aws)에서 `opus`는 Opus 4.7로, `sonnet`은 Sonnet 4.6으로 확인됩니다. Bedrock, Vertex 및 Foundry에서 `opus`는 Opus 4.6으로, `sonnet`은 Sonnet 4.5로 확인됩니다. 더 새로운 모델은 전체 모델 이름을 명시적으로 선택하거나 `ANTHROPIC_DEFAULT_OPUS_MODEL` 또는 `ANTHROPIC_DEFAULT_SONNET_MODEL`을 설정하여 해당 제공자에서 사용할 수 있습니다.44Anthropic API에서 `opus`는 Opus 4.8로, `sonnet`은 Sonnet 5로 확인됩니다. [Claude Platform on AWS](/ko/claude-platform-on-aws)에서 `opus`는 Opus 4.7로, `sonnet`은 Sonnet 4.6으로 확인됩니다. Bedrock, Vertex 및 Foundry에서 `opus`는 Opus 4.6으로, `sonnet`은 Sonnet 4.5로 확인됩니다. 더 새로운 모델은 전체 모델 이름을 명시적으로 선택하거나 `ANTHROPIC_DEFAULT_OPUS_MODEL` 또는 `ANTHROPIC_DEFAULT_SONNET_MODEL`을 설정하여 해당 제공자에서 사용할 수 있습니다.

45 45 

46별칭은 제공자에 대한 권장 버전을 가리키며 시간이 지남에 따라 업데이트됩니다. 특정 버전으로 고정하려면 전체 모델 이름(예: `claude-opus-4-8`)을 사용하거나 `ANTHROPIC_DEFAULT_OPUS_MODEL`과 같은 해당 환경 변수를 설정합니다.46별칭은 제공자에 대한 권장 버전을 가리키며 시간이 지남에 따라 업데이트됩니다. 특정 버전으로 고정하려면 전체 모델 이름(예: `claude-opus-4-8`)을 사용하거나 `ANTHROPIC_DEFAULT_OPUS_MODEL`과 같은 해당 환경 변수를 설정합니다.

47 47 

48<Note>48<Note>

49 Opus 4.8은 Claude Code v2.1.154 이상이 필요합니다. `claude update`를 실행하여 업그레이드하세요.49 Sonnet 5는 Claude Code v2.1.197 이상이 필요합니다. Opus 4.8은 v2.1.154 이상이 필요합니다. `claude update`를 실행하여 업그레이드하세요.

50</Note>50</Note>

51 51 

52<h3 id="work-with-fable-5">52<h3 id="work-with-fable-5">


74 74 

75다음과 같은 여러 방법으로 모델을 구성할 수 있으며, 우선순위 순서대로 나열되어 있습니다:75다음과 같은 여러 방법으로 모델을 구성할 수 있으며, 우선순위 순서대로 나열되어 있습니다:

76 76 

771. **세션 중** - `/model <alias|name>`을 사용하여 즉시 전환하거나, 인수 없이 `/model`을 실행하여 선택기를 엽니다. 선택기는 대화에 이전 출력이 있을 때 확인을 요청합니다. 다음 응답이 캐시된 컨텍스트 없이 전체 기록을 다시 읽기 때문입니다.771. **세션 중**: `/model <alias|name>`을 사용하여 즉시 전환하거나, 인수 없이 `/model`을 실행하여 선택기를 엽니다. 선택기는 대화에 이전 출력이 있을 때 확인을 요청합니다. 다음 응답이 캐시된 컨텍스트 없이 전체 기록을 다시 읽기 때문입니다.

782. **시작 시** - `claude --model <alias|name>`으로 실행합니다.782. **시작 시**: `claude --model <alias|name>`으로 실행합니다.

793. **환경 변수** - `ANTHROPIC_MODEL=<alias|name>`을 설정합니다.793. **환경 변수**: `ANTHROPIC_MODEL=<alias|name>`을 설정합니다.

804. **설정** - `model` 필드를 사용하여 설정 파일에서 영구적으로 구성합니다.804. **설정**: `model` 필드를 사용하여 설정 파일에서 영구적으로 구성합니다.

81 81 

82v2.1.153부터 `/model`은 사용자 설정에서 `model` 필드를 작성하여 새 세션의 기본값으로 선택 항목을 저장합니다. 선택기에서:82v2.1.153부터 `/model`은 사용자 설정에서 `model` 필드를 작성하여 새 세션의 기본값으로 선택 항목을 저장합니다. 선택기에서:

83 83 


92 92 

93`claude --resume`, `--continue` 또는 `/resume` 선택기로 시작된 재개된 세션은 현재 `model` 설정에 관계없이 트랜스크립트가 저장되었을 때 사용 중이던 모델을 유지합니다. 해당 모델이 중단된 경우 또는 [`availableModels`](#restrict-model-selection)에 의해 제외된 경우, 세션은 일반 우선순위 순서로 폴백됩니다. 이는 다른 세션의 `/model` 선택이 재개 시 모델을 변경하는 것을 방지합니다.93`claude --resume`, `--continue` 또는 `/resume` 선택기로 시작된 재개된 세션은 현재 `model` 설정에 관계없이 트랜스크립트가 저장되었을 때 사용 중이던 모델을 유지합니다. 해당 모델이 중단된 경우 또는 [`availableModels`](#restrict-model-selection)에 의해 제외된 경우, 세션은 일반 우선순위 순서로 폴백됩니다. 이는 다른 세션의 `/model` 선택이 재개 시 모델을 변경하는 것을 방지합니다.

94 94 

95새 실행 시 `--model` 또는 `ANTHROPIC_MODEL`로 선택한 모델은 여전히 복원된 모델보다 우선순위를 가집니다. {/* min-version: 2.1.195 */}v2.1.195부터 [`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables) 계열 변수도 마찬가지입니다.

96 

95시작 시 활성 모델이 자신의 선택이 아닌 프로젝트 또는 관리되는 설정에서 나온 경우, 시작 헤더는 어느 설정 파일이 이를 설정했는지 표시합니다. `/model`을 실행하여 재정의합니다. 프로젝트 또는 관리되는 설정은 다음 실행 시 다시 적용됩니다.97시작 시 활성 모델이 자신의 선택이 아닌 프로젝트 또는 관리되는 설정에서 나온 경우, 시작 헤더는 어느 설정 파일이 이를 설정했는지 표시합니다. `/model`을 실행하여 재정의합니다. 프로젝트 또는 관리되는 설정은 다음 실행 시 다시 적용됩니다.

96 98 

97요청된 모델에 예정된 중단 날짜가 있거나 자동으로 최신 버전으로 재매핑될 때, Claude Code는 요청된 모델의 이름을 지정하는 경고를 표시합니다. 대화형 세션은 이를 시작 알림으로 표시합니다. v2.1.182부터 [비대화형 모드](/ko/headless)에서 기본 텍스트 출력 형식을 사용할 때 동일한 경고가 stderr에 기록됩니다. 확인은 [서브에이전트 프론트매터](/ko/sub-agents)에 설정된 `model`도 포함합니다. stderr 경고는 `--output-format json` 및 `stream-json`에 대해 억제됩니다. [결과 메시지](/ko/headless#get-structured-output)의 `modelUsage` 필드에서 실제 모델을 읽으세요.99요청된 모델에 예정된 중단 날짜가 있거나 자동으로 최신 버전으로 재매핑될 때, Claude Code는 요청된 모델의 이름을 지정하는 경고를 표시합니다. 대화형 세션은 이를 시작 알림으로 표시합니다. v2.1.182부터 [비대화형 모드](/ko/headless)에서 기본 텍스트 출력 형식을 사용할 때 동일한 경고가 stderr에 기록됩니다. 확인은 [서브에이전트 프론트매터](/ko/sub-agents)에 설정된 `model`도 포함합니다. stderr 경고는 `--output-format json` 및 `stream-json`에 대해 억제됩니다. [결과 메시지](/ko/headless#get-structured-output)의 `modelUsage` 필드에서 실제 모델을 읽으세요.


165 기본 모델 동작167 기본 모델 동작

166</h3>168</h3>

167 169 

168모델 선택기의 Default 옵션은 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model)도 설정되지 않는 한 `availableModels`의 영향을 받지 않습니다. 자체적으로 `availableModels`은 Default를 사용 가능하게 두고, [사용자의 구독 계층을 기반으로 ](#default-model-setting) 시스템의 런타임 기본값으로 확인됩니다. 계층 기본값이 제한하려는 모델인 경우 `enforceAvailableModels`도 설정합니다.170모델 선택기의 Default 옵션은 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model)도 설정되지 않는 한 `availableModels`의 영향을 받지 않습니다. 자체적으로 `availableModels`은 Default를 사용 가능하게 두고, 시스템의 [런타임 기본값](#default-model-setting)으로 확인됩니다. 해당 기본값이 제한하려는 모델인 경우 `enforceAvailableModels`도 설정합니다.

169 171 

170빈 `availableModels` 배열은 Default 모델 강제를 활성화하지 않습니다: `availableModels: []`인 경우 명명된 모델 선택은 차단되지만 `enforceAvailableModels`에 관계없이 계정 유형에 대한 Default 모델은 사용 가능합니다.172빈 `availableModels` 배열은 Default 모델 강제를 활성화하지 않습니다: `availableModels: []`인 경우 명명된 모델 선택은 차단되지만 `enforceAvailableModels`에 관계없이 계정 유형에 대한 Default 모델은 사용 가능합니다.

171 173 


192 사용자가 실행하는 모델 제어194 사용자가 실행하는 모델 제어

193</h3>195</h3>

194 196 

195`model` 설정은 초기 선택이지 강제가 아닙니다. 세션이 시작될 때 활성화되는 모델을 설정하지만 사용자는 여전히 `/model`을 열고 Default를 선택할 수 있으며, 이는 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model)이 이를 리디렉션하지 않는 한 계층에 대한 시스템 기본값으로 확인됩니다.197`model` 설정은 초기 선택이지 강제가 아닙니다. 세션이 시작될 때 활성화되는 모델을 설정하지만 사용자는 여전히 `/model`을 열고 Default를 선택할 수 있으며, 이는 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model)이 이를 리디렉션하지 않는 한 시스템의 [런타임 기본값](#default-model-setting)으로 확인됩니다.

196 198 

197모델 경험을 완전히 제어하려면 이러한 설정을 함께 사용합니다:199모델 경험을 완전히 제어하려면 이러한 설정을 함께 사용합니다:

198 200 


234 조직 모델 제한236 조직 모델 제한

235</h3>237</h3>

236 238 

237구성원이 Anthropic API를 통해 인증하고 설정 파일을 배포하지 않고 조직 전체 스위치를 원할 때 `availableModels` 대신 콘솔 토글을 사용합니다. 조직 관리자는 Claude 콘솔에서 개별 모델을 비활성화하여 구성원이 실행할 수 있는 모델을 제한합니다. 이 제한은 Claude Code가 인증할 때 계정의 자격과 함께 전달되며, 설정의 `availableModels` 목록과 별개이며, 서버는 세션이 생성될 때 동일한 제한을 독립적으로 적용합니다. Claude Code v2.1.187 이상이 필요합니다.239조직 관리자는 Claude 콘솔에서 개별 모델을 비활성화하여 구성원이 실행할 수 있는 모델을 제한합니다. 구성원이 Anthropic API를 통해 인증하고 설정 파일을 배포하지 않고 조직 전체 스위치를 원할 때 `availableModels` 대신 콘솔 토글을 사용합니다. 이 제한은 Claude Code가 인증할 때 계정의 자격과 함께 전달되며, 설정의 `availableModels` 목록과 별개이며, 서버는 세션이 생성될 때 동일한 제한을 독립적으로 적용합니다. Claude Code v2.1.187 이상이 필요합니다.

238 240 

239제한된 모델은 `/model` 선택기에서 숨겨집니다. `--model`, `ANTHROPIC_MODEL` 환경 변수 또는 `model` 설정으로 이름으로 선택하면 `Model "<name>" is restricted by your organization's settings. Using <model> instead.` 알림이 표시되고 세션은 허용된 모델에서 시작됩니다. 제한된 모델에 대해 `/model <name>`을 입력하면 `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.`로 거부되고 세션은 현재 모델을 유지합니다.241제한된 모델은 `/model` 선택기에서 숨겨집니다. `--model`, `ANTHROPIC_MODEL` 환경 변수 또는 `model` 설정으로 이름으로 선택하면 `Model "<name>" is restricted by your organization's settings. Using <model> instead.` 알림이 표시되고 세션은 허용된 모델에서 시작됩니다. 제한된 모델에 대해 `/model <name>`을 입력하면 `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.`로 거부되고 세션은 현재 모델을 유지합니다.

240 242 

241메커니즘은 구성됩니다: 모델은 `availableModels`에 의해 허용되고 조직에 의해 제한되지 않을 때만 선택 가능합니다. 조직 제한은 Anthropic API 및 [LLM 게이트웨이](/ko/llm-gateway) 배포의 세션에 전달됩니다. Bedrock, Vertex AI, Foundry 및 Claude Platform on AWS의 세션은 이를 수신하지 않으므로 대신 해당 제공자에서 `availableModels`을 사용합니다.243제한은 함께 적용됩니다: 모델은 `availableModels`에 의해 허용되고 조직에 의해 제한되지 않을 때만 선택 가능합니다. 조직 제한은 Anthropic API 및 [LLM 게이트웨이](/ko/llm-gateway) 배포의 세션에 전달됩니다. Bedrock, Vertex AI, Foundry 및 Claude Platform on AWS의 세션은 이를 수신하지 않으므로 대신 해당 제공자에서 `availableModels`을 사용합니다.

242 244 

243<h2 id="special-model-behavior">245<h2 id="special-model-behavior">

244 특수 모델 동작246 특수 모델 동작


252 254 

253* **Max, Team Premium, Enterprise 종량제 및 Anthropic API**: Opus 4.8로 기본값 설정255* **Max, Team Premium, Enterprise 종량제 및 Anthropic API**: Opus 4.8로 기본값 설정

254* **AWS의 Claude Platform**: Opus 4.7로 기본값 설정256* **AWS의 Claude Platform**: Opus 4.7로 기본값 설정

255* **Pro, Team Standard 및 Enterprise 구독 시트**: Sonnet 4.6으로 기본값 설정257* **Pro, Team Standard 및 Enterprise 구독 시트**: Sonnet 5로 기본값 설정

256* **Bedrock, Vertex 및 Foundry**: Sonnet 4.5로 기본값 설정258* **Bedrock, Vertex 및 Foundry**: Sonnet 4.5로 기본값 설정

257 259 

258Enterprise 종량제는 구독 시트가 아닌 사용량으로 청구되는 Enterprise 조직을 의미합니다.260Enterprise 종량제는 구독 시트가 아닌 사용량으로 청구되는 Enterprise 조직을 의미합니다.


296 298 

297```json theme={null}299```json theme={null}

298{300{

299 "fallbackModel": ["claude-sonnet-4-6", "claude-haiku-4-5"]301 "fallbackModel": ["claude-sonnet-5", "claude-haiku-4-5"]

300}302}

301```303```

302 304 


368사용 가능한 노력 수준은 모델에 따라 다릅니다. 여기에 나열되지 않은 모델은 노력을 지원하지 않습니다:370사용 가능한 노력 수준은 모델에 따라 다릅니다. 여기에 나열되지 않은 모델은 노력을 지원하지 않습니다:

369 371 

370| 모델 | 수준 |372| 모델 | 수준 |

371| :-------------------- | :-------------------------------------- |373| :---------------------------- | :-------------------------------------- |

372| Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |374| Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |

373| Opus 4.8 및 Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |375| Sonnet 5, Opus 4.8 및 Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

374| Opus 4.6 및 Sonnet 4.6 | `low`, `medium`, `high`, `max` |376| Opus 4.6 및 Sonnet 4.6 | `low`, `medium`, `high`, `max` |

375 377 

376활성 모델이 지원하지 않는 수준을 설정하면 Claude Code는 설정한 수준 이하의 가장 높은 지원 수준으로 폴백합니다. 예를 들어 `xhigh`는 Opus 4.6에서 `high`로 실행됩니다.378활성 모델이 지원하지 않는 수준을 설정하면 Claude Code는 설정한 수준 이하의 가장 높은 지원 수준으로 폴백합니다. 예를 들어 `xhigh`는 Opus 4.6에서 `high`로 실행됩니다.

377 379 

378기본 노력은 Fable 5, Opus 4.8, Opus 4.6 및 Sonnet 4.6에서 `high`이고 Opus 4.7에서 `xhigh`입니다.380기본 노력은 Fable 5, Sonnet 5, Opus 4.8, Opus 4.6 및 Sonnet 4.6에서 `high`이고 Opus 4.7에서 `xhigh`입니다.

379 381 

380Fable 5, Opus 4.8 또는 Opus 4.7을 처음 실행할 때 Claude Code는 이전에 다른 모델에 대해 다른 수준을 설정했더라도 해당 모델의 기본 노력을 적용합니다: Fable 5 및 Opus 4.8에서 `high`, Opus 4.7에서 `xhigh`. 전환 후 다른 수준을 선택하려면 `/effort`를 다시 실행하세요.382Fable 5, Opus 4.8 또는 Opus 4.7을 처음 실행할 때 Claude Code는 이전에 다른 모델에 대해 다른 수준을 설정했더라도 해당 모델의 기본 노력을 적용합니다: Fable 5 및 Opus 4.8에서 `high`, Opus 4.7에서 `xhigh`. 전환 후 다른 수준을 선택하려면 `/effort`를 다시 실행하세요.

381 383 


393| :---------- | :--------------------------------------------------------------------------------------- |395| :---------- | :--------------------------------------------------------------------------------------- |

394| `low` | 지능 민감도가 낮은 짧고 범위가 지정된 지연 시간 민감 작업을 위해 예약 |396| `low` | 지능 민감도가 낮은 짧고 범위가 지정된 지연 시간 민감 작업을 위해 예약 |

395| `medium` | 일부 지능을 절충할 수 있는 비용 민감 작업의 토큰 사용량 감소 |397| `medium` | 일부 지능을 절충할 수 있는 비용 민감 작업의 토큰 사용량 감소 |

396| `high` | 토큰 사용량과 지능의 균형을 맞춥니다. Fable 5, Opus 4.8, Opus 4.6 및 Sonnet 4.6의 기본값 |398| `high` | 토큰 사용량과 지능의 균형을 맞춥니다. Fable 5, Sonnet 5, Opus 4.8, Opus 4.6 및 Sonnet 4.6의 기본값 |

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

398| `max` | 까다로운 작업의 성능을 개선할 수 있지만 수익 감소를 보일 수 있으며 과도한 생각에 취약합니다. 광범위하게 채택하기 전에 테스트하세요 |400| `max` | 까다로운 작업의 성능을 개선할 수 있지만 수익 감소를 보일 수 있으며 과도한 생각에 취약합니다. 광범위하게 채택하기 전에 테스트하세요 |

399| `ultracode` | 각 실질적인 작업에 대해 `xhigh` 메시지별 추론으로 [동적 워크플로우](/ko/workflows)를 계획하는 Claude Code 설정입니다. 세션 전용 |401| `ultracode` | 각 실질적인 작업에 대해 `xhigh` 메시지별 추론으로 [동적 워크플로우](/ko/workflows)를 계획하는 Claude Code 설정입니다. 세션 전용 |


429 431 

430적응형 추론은 각 단계에서 사고를 선택 사항으로 만들므로 Claude는 일상적인 프롬프트에 더 빠르게 응답하고 이점을 얻는 단계를 위해 더 깊은 사고를 예약할 수 있습니다. Claude가 현재 수준이 생성하는 것보다 더 자주 또는 덜 자주 생각하기를 원하면 프롬프트 또는 `CLAUDE.md`에서 직접 말할 수 있습니다. 모델은 노력 설정 내에서 해당 지침에 응답합니다.432적응형 추론은 각 단계에서 사고를 선택 사항으로 만들므로 Claude는 일상적인 프롬프트에 더 빠르게 응답하고 이점을 얻는 단계를 위해 더 깊은 사고를 예약할 수 있습니다. Claude가 현재 수준이 생성하는 것보다 더 자주 또는 덜 자주 생각하기를 원하면 프롬프트 또는 `CLAUDE.md`에서 직접 말할 수 있습니다. 모델은 노력 설정 내에서 해당 지침에 응답합니다.

431 433 

432Opus 4.7 이상은 항상 적응형 추론을 사용합니다. Fable 5도 마찬가지입니다. 고정 사고 예산 모드 및 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING`은 이에 적용되지 않습니다.434Fable 5, Sonnet 5 및 Opus 4.7 이상은 항상 적응형 추론을 사용합니다. 고정 사고 예산 모드 및 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING`은 이에 적용되지 않습니다.

433 435 

434Opus 4.6 및 Sonnet 4.6에서 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1`을 설정하여 `MAX_THINKING_TOKENS`로 제어되는 이전의 고정 사고 예산으로 되돌릴 수 있습니다. [환경 변수](/ko/env-vars)를 참조하세요.436Opus 4.6 및 Sonnet 4.6에서 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1`을 설정하여 `MAX_THINKING_TOKENS`로 제어되는 이전의 고정 사고 예산으로 되돌릴 수 있습니다. [환경 변수](/ko/env-vars)를 참조하세요.

435 437 


453 확장 컨텍스트455 확장 컨텍스트

454</h3>456</h3>

455 457 

456Fable 5, Opus 4.6 이상 및 Sonnet 4.6은 대규모 코드베이스를 사용한 긴 세션을 위해 [100만 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/ko/build-with-claude/context-windows#1m-token-context-window)를 지원합니다.458Fable 5, Sonnet 5, Opus 4.6 이상 및 Sonnet 4.6은 대규모 코드베이스를 사용한 긴 세션을 위해 [100만 토큰 컨텍스트 윈도우](https://platform.claude.com/docs/ko/build-with-claude/context-windows#1m-token-context-window)를 지원합니다.

457 459 

458가용성은 모델 및 플랜에 따라 다릅니다. Max, Team 및 Enterprise 플랜에서 Opus는 추가 구성 없이 자동으로 1M 컨텍스트로 업그레이드됩니다. 이는 Team Standard 및 Team Premium 시트 모두에 적용됩니다. Anthropic API에서 Fable 5, Opus 4.8 및 Opus 4.7은 항상 1M 윈도우로 실행됩니다. 1M 컨텍스트를 사용하는 Sonnet은 자동 업그레이드의 일부가 아니며 Max를 포함한 모든 구독 플랜에서 [사용 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)이 필요합니다.460가용성은 모델 및 플랜에 따라 다릅니다. Anthropic API에서 Fable 5, Sonnet 5, Opus 4.8 및 Opus 4.7은 항상 1M 윈도우로 실행됩니다. Max, Team 및 Enterprise 플랜에서 Opus는 추가 구성 없이 자동으로 1M 컨텍스트로 업그레이드됩니다. 이는 Team Standard 및 Team Premium 시트 모두에 적용됩니다. 1M 컨텍스트를 사용하는 Sonnet 4.6은 자동 업그레이드의 일부가 아니며 Max를 포함한 모든 구독 플랜에서 [사용 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)이 필요합니다.

459 461 

460| 플랜 | 1M 컨텍스트를 사용하는 Opus | 1M 컨텍스트를 사용하는 Sonnet |462| 플랜 | 1M 컨텍스트를 사용하는 Opus | 1M 컨텍스트를 사용하는 Sonnet 4.6 |

461| ---------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |463| ---------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |

462| Max, Team 및 Enterprise | 구독에 포함됨 | [사용 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 필요 |464| Max, Team 및 Enterprise | 구독에 포함됨 | [사용 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 필요 |

463| Pro | [사용 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 필요 | [사용 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 필요 |465| Pro | [사용 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 필요 | [사용 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) 필요 |


480/model claude-opus-4-8[1m]482/model claude-opus-4-8[1m]

481```483```

482 484 

485<h4 id="sonnet-5-context-window">

486 Sonnet 5 컨텍스트 윈도우

487</h4>

488 

489Anthropic API에서 Sonnet 5는 항상 1M 컨텍스트 윈도우로 실행됩니다. 200K 변형이 없고, 선택할 `[1m]` 접미사도 없으며, 어떤 플랜에서도 사용 크레딧이 필요하지 않습니다. 세션은 윈도우가 가득 차기 전에 자동 압축되며, 기본적으로 약 967K 토큰에서 압축됩니다. 다른 임계값을 선택하려면 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/ko/env-vars)를 설정하세요.

490 

491두 가지 구성은 대신 윈도우를 200K로 책정하고 해당 경계에서 자동 압축합니다:

492 

493* **LLM 게이트웨이**: `ANTHROPIC_BASE_URL`이 [게이트웨이](/ko/llm-gateway)를 가리킬 때 Claude Code는 1M 지원을 확인할 수 없습니다. 전체 윈도우를 사용하려면 모델 선택기에서 Sonnet 5 (1M context)를 선택하세요. 이는 `sonnet[1m]`에 매핑됩니다.

494* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**: 컨텍스트를 제한해야 하는 배포를 위해 Sonnet 5 세션을 200K 윈도우를 가진 것으로 처리합니다.

495 

483<h2 id="checking-your-current-model">496<h2 id="checking-your-current-model">

484 현재 모델 확인497 현재 모델 확인

485</h2>498</h2>

486 499 

487현재 사용 중인 모델을 여러 방법으로 확인할 수 있습니다:500현재 사용 중인 모델을 가지 위치에서 확인할 수 있습니다:

488 501 

4891. [상태 줄](/ko/statusline)에서(구성된 경우)502* [상태 줄](/ko/statusline)에서(구성된 경우)

4902. `/status`에서, 계정 정보도 표시합니다.503* `/status`에서, 계정 정보도 표시합니다

491 504 

492<h2 id="add-a-custom-model-option">505<h2 id="add-a-custom-model-option">

493 사용자 정의 모델 옵션 추가506 사용자 정의 모델 옵션 추가


498이 예시는 게이트웨이 라우팅된 Opus 배포를 선택 가능하게 하기 위해 세 가지 변수를 모두 설정합니다:511이 예시는 게이트웨이 라우팅된 Opus 배포를 선택 가능하게 하기 위해 세 가지 변수를 모두 설정합니다:

499 512 

500```bash theme={null}513```bash theme={null}

501export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-4-7"514export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-4-8"

502export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"515export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"

503export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"516export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"

504```517```

505 518 

506사용자 정의 항목은 `/model` 선택기의 맨 아래에 나타납니다. `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` 및 `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION`은 선택 사항입니다. 생략하면 모델 ID가 이름으로 사용되고 설명은 기본값으로 `Custom model (<model-id>)`입니다.519사용자 정의 항목은 `/model` 선택기의 맨 아래에 나타납니다. `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` 및 `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION`은 선택 사항입니다. 생략하면 모델 ID가 이름으로 사용되고 설명은 기본값으로 `Custom model (<model-id>)`입니다.

507 520 

508Claude Code는 `ANTHROPIC_CUSTOM_MODEL_OPTION`에 설정된 모델 ID에 대한 유효성 검사를 건너뜁니다. 따라서 API 엔드포인트가 허용하는 모든 문자열을 사용할 수 있습니다. [`availableModels`](#restrict-model-selection)이 설정되어 있을 때는 사용자 정의 모델 ID를 허용 목록에도 포함시켜야 합니다. 사용자 정의 항목이 선택기에서 필터링되고 `--model` 선택이 다른 제외된 모델처럼 거부됩니다. `my-gateway/claude-opus-4-7`과 같이 패밀리 이름을 포함하는 사용자 정의 ID는 해당 패밀리의 특정 항목으로 계산되며 와일드카드를 비활성화하므로, 선택 가능하게 유지하려는 버전도 나열해야 합니다. [병합 동작](#merge-behavior)을 참조하십시오.521Claude Code는 `ANTHROPIC_CUSTOM_MODEL_OPTION`에 설정된 모델 ID에 대한 유효성 검사를 건너뜁니다. 따라서 API 엔드포인트가 허용하는 모든 문자열을 사용할 수 있습니다. [`availableModels`](#restrict-model-selection)이 설정되어 있을 때는 사용자 정의 모델 ID를 허용 목록에도 포함시켜야 합니다. 사용자 정의 항목이 선택기에서 필터링되고 `--model` 선택이 다른 제외된 모델처럼 거부됩니다. `my-gateway/claude-opus-4-8`과 같이 패밀리 이름을 포함하는 사용자 정의 ID는 해당 패밀리의 특정 항목으로 계산되며 와일드카드를 비활성화하므로, 선택 가능하게 유지하려는 버전도 나열해야 합니다. [병합 동작](#merge-behavior)을 참조하십시오.

509 522 

510<h2 id="environment-variables">523<h2 id="environment-variables">

511 환경 변수524 환경 변수

512</h2>525</h2>

513 526 

514다음 환경 변수를 사용할 수 있으며, 이는 별칭이 매핑되는 모델 이름을 제어하기 위해 전체 **모델 이름**(또는 API 제공자에 해당하는 이름)이어야 합니다.527다음 환경 변수를 사용할 수 있으며, 이는 별칭이 매핑되는 모델 이름을 제어하기 위해 전체 모델 이름(또는 API 제공자에 해당하는 식별자)이어야 합니다.

515 528 

516| 환경 변수 | 설명 |529| 환경 변수 | 설명 |

517| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |530| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


555 568 

556* Claude Code는 모델 ID를 제공자에게 보내기 전에 접미사를 제거합니다.569* Claude Code는 모델 ID를 제공자에게 보내기 전에 접미사를 제거합니다.

557* 기본 모델이 1M 컨텍스트를 [지원할 때만](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window) `[1m]`을 추가합니다.570* 기본 모델이 1M 컨텍스트를 [지원할 때만](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window) `[1m]`을 추가합니다.

558* 접미사는 모델별이 아닌 변수별로 읽혀집니다. Bedrock, Vertex 및 Foundry에서 한 변수의 `[1m]` 없는 모델 ID는 다른 변수가 접미사와 함께 동일한 모델을 설정하더라도 200K 컨텍스트를 사용합니다.571* 접미사는 모델별이 아닌 변수별로 읽혀집니다. Bedrock, Vertex 및 Foundry에서 한 변수의 `[1m]` 없는 모델 ID는 다른 변수가 접미사와 함께 동일한 모델을 설정하더라도 200K 컨텍스트를 사용합니다. Sonnet 5는 항상 이러한 제공자에서 1M 윈도우로 실행되며 접미사가 필요하지 않습니다.

559 572 

560<Note>573<Note>

561 `availableModels` 허용 목록은 타사 제공자를 사용할 때도 적용됩니다. [서버 관리 설정은 그곳에 전달되지 않습니다](/ko/server-managed-settings#platform-availability). 필터링은 `opus`와 같은 모델 별칭, `claude-opus-4-8`과 같은 버전 접두사 또는 전체 제공자 형식 모델 ID와 일치합니다. `us.anthropic.`과 같은 제공자별 접두사는 제거되지 않으므로 특정 모델을 허용하려면 선택기가 표시하는 것과 동일한 제공자 형식 ID를 나열하거나 [`modelOverrides`](#override-model-ids-per-version)를 통해 매핑합니다. 모든 `[1m]` 접미사는 허용 목록 항목과 요청된 모델 모두에서 제거되어 일치합니다.574 `availableModels` 허용 목록은 타사 제공자를 사용할 때도 적용됩니다. [MDM 또는 관리 설정 파일](/ko/settings#settings-files)을 통해 전달된 `availableModels` 허용 목록은 여전히 타사 제공자를 사용할 때 적용됩니다. [서버 관리 설정은 그곳에 전달되지 않습니다](/ko/server-managed-settings#platform-availability). 필터링은 `opus`와 같은 모델 별칭, `claude-opus-4-8`과 같은 버전 접두사 또는 전체 제공자 형식 모델 ID와 일치합니다. `us.anthropic.`과 같은 제공자별 접두사는 제거되지 않으므로 특정 모델을 허용하려면 선택기가 표시하는 것과 동일한 제공자 형식 ID를 나열하거나 [`modelOverrides`](#override-model-ids-per-version)를 통해 매핑합니다. 모든 `[1m]` 접미사는 허용 목록 항목과 요청된 모델 모두에서 제거되어 일치합니다.

562</Note>575</Note>

563 576 

564<h3 id="customize-pinned-model-display-and-capabilities">577<h3 id="customize-pinned-model-display-and-capabilities">

Details

93| `OTEL_METRIC_EXPORT_INTERVAL` | 내보내기 간격 (밀리초 단위, 기본값: 60000) | `5000`, `60000` |93| `OTEL_METRIC_EXPORT_INTERVAL` | 내보내기 간격 (밀리초 단위, 기본값: 60000) | `5000`, `60000` |

94| `OTEL_LOGS_EXPORT_INTERVAL` | 로그 내보내기 간격 (밀리초 단위, 기본값: 5000) | `1000`, `10000` |94| `OTEL_LOGS_EXPORT_INTERVAL` | 로그 내보내기 간격 (밀리초 단위, 기본값: 5000) | `1000`, `10000` |

95| `OTEL_LOG_USER_PROMPTS` | 사용자 프롬프트 콘텐츠 로깅 활성화 (기본값: 비활성화) | `1`로 활성화 |95| `OTEL_LOG_USER_PROMPTS` | 사용자 프롬프트 콘텐츠 로깅 활성화 (기본값: 비활성화) | `1`로 활성화 |

96| `OTEL_LOG_ASSISTANT_RESPONSES` | `assistant_response` 이벤트에서 어시스턴트 응답 텍스트 로깅 활성화 (기본값: 비활성화). 설정되지 않으면 `OTEL_LOG_USER_PROMPTS`의 값으로 폴백됩니다. {/* min-version: 2.1.193 */}Claude Code v2.1.193 이상 필요 | `1`로 활성화, `0`으로 수정된 상태 유지 |

96| `OTEL_LOG_TOOL_DETAILS` | 도구 이벤트 및 추적 스팬 속성에서 도구 매개변수 및 입력 인수 로깅 활성화: Bash 명령, MCP 서버 및 도구 이름, 스킬 이름 및 도구 입력. 또한 `user_prompt` 이벤트에서 사용자 정의, 플러그인 및 MCP 명령 이름을 활성화합니다 (기본값: 비활성화) | `1`로 활성화 |97| `OTEL_LOG_TOOL_DETAILS` | 도구 이벤트 및 추적 스팬 속성에서 도구 매개변수 및 입력 인수 로깅 활성화: Bash 명령, MCP 서버 및 도구 이름, 스킬 이름 및 도구 입력. 또한 `user_prompt` 이벤트에서 사용자 정의, 플러그인 및 MCP 명령 이름을 활성화합니다 (기본값: 비활성화) | `1`로 활성화 |

97| `OTEL_LOG_TOOL_CONTENT` | 스팬 이벤트에서 도구 입력 및 출력 콘텐츠 로깅 활성화 (기본값: 비활성화). [추적](#traces-beta)이 필요합니다. 콘텐츠는 60KB에서 잘립니다 | `1`로 활성화 |98| `OTEL_LOG_TOOL_CONTENT` | 스팬 이벤트에서 도구 입력 및 출력 콘텐츠 로깅 활성화 (기본값: 비활성화). [추적](#traces-beta)이 필요합니다. 콘텐츠는 60KB에서 잘립니다 | `1`로 활성화 |

98| `OTEL_LOG_RAW_API_BODIES` | 전체 Anthropic Messages API 요청 및 응답 JSON을 `api_request_body` / `api_response_body` 로그 이벤트로 내보냅니다 (기본값: 비활성화). 본문에는 전체 대화 기록이 포함됩니다. 이를 활성화하면 `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS` 및 `OTEL_LOG_TOOL_CONTENT`가 공개할 모든 것에 동의하는 것을 의미합니다 | `1`로 60KB에서 잘린 인라인 본문, 또는 `file:<dir>`로 디스크의 잘리지 않은 본문과 이벤트의 `body_ref` 포인터 |99| `OTEL_LOG_RAW_API_BODIES` | 전체 Anthropic Messages API 요청 및 응답 JSON을 `api_request_body` / `api_response_body` 로그 이벤트로 내보냅니다 (기본값: 비활성화). 본문에는 전체 대화 기록이 포함됩니다. 이를 활성화하면 `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS` 및 `OTEL_LOG_TOOL_CONTENT`가 공개할 모든 것에 동의하는 것을 의미합니다 | `1`로 60KB에서 잘린 인라인 본문, 또는 `file:<dir>`로 디스크의 잘리지 않은 본문과 이벤트의 `body_ref` 포인터 |


341각 사용자 정의 키는 모든 메트릭 시리즈의 레이블이 되므로 높은 카디널리티 값은 메트릭 백엔드의 저장소 비용을 증가시킵니다. 사용자 정의 속성을 리소스 블록에만 보내고 데이터포인트 레이블에서 생략하려면 `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES=false`를 설정합니다. [메트릭 카디널리티 제어](#metrics-cardinality-control)를 참조합니다.342각 사용자 정의 키는 모든 메트릭 시리즈의 레이블이 되므로 높은 카디널리티 값은 메트릭 백엔드의 저장소 비용을 증가시킵니다. 사용자 정의 속성을 리소스 블록에만 보내고 데이터포인트 레이블에서 생략하려면 `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES=false`를 설정합니다. [메트릭 카디널리티 제어](#metrics-cardinality-control)를 참조합니다.

342 343 

343<Warning>344<Warning>

344 **OTEL\_RESOURCE\_ATTRIBUTES에 대한 중요한 형식 요구 사항:**

345 

346 `OTEL_RESOURCE_ATTRIBUTES` 환경 변수는 쉼표로 구분된 key=value 쌍을 사용하며 엄격한 형식 요구 사항이 있습니다:345 `OTEL_RESOURCE_ATTRIBUTES` 환경 변수는 쉼표로 구분된 key=value 쌍을 사용하며 엄격한 형식 요구 사항이 있습니다:

347 346 

348 * **공백 허용 안 함**: 값에 공백이 포함될 수 없습니다. 예를 들어 `user.organizationName=My Company`는 유효하지 않습니다347 * **공백 허용 안 함**: 값에 공백이 포함될 수 없습니다. 예를 들어 `user.organizationName=My Company`는 유효하지 않습니다


350 * **허용된 문자**: 제어 문자, 공백, 큰따옴표, 쉼표, 세미콜론 및 백슬래시를 제외한 US-ASCII 문자만 허용됩니다349 * **허용된 문자**: 제어 문자, 공백, 큰따옴표, 쉼표, 세미콜론 및 백슬래시를 제외한 US-ASCII 문자만 허용됩니다

351 * **특수 문자**: 허용된 범위 외의 문자는 퍼센트 인코딩되어야 합니다350 * **특수 문자**: 허용된 범위 외의 문자는 퍼센트 인코딩되어야 합니다

352 351 

353 **예:**352 공백이 필요한 값의 경우 언더스코어 또는 camelCase를 대신 사용합니다. 다음 예제는 각 형식으로 `org.name`을 설정합니다:

354 353 

355 ```bash theme={null}354 ```bash theme={null}

356 # ❌ 유효하지 않음 - 공백 포함

357 export OTEL_RESOURCE_ATTRIBUTES="org.name=John's Organization"

358 

359 # ✅ 유효함 - 대신 언더스코어 또는 camelCase 사용

360 export OTEL_RESOURCE_ATTRIBUTES="org.name=Johns_Organization"355 export OTEL_RESOURCE_ATTRIBUTES="org.name=Johns_Organization"

361 export OTEL_RESOURCE_ATTRIBUTES="org.name=JohnsOrganization"356 export OTEL_RESOURCE_ATTRIBUTES="org.name=JohnsOrganization"

357 ```

362 358 

363 # 유효함 - 필요한 경우 특수 문자를 퍼센트 인코딩359 제외된 문자뿐만 아니라 모든 문자를 퍼센트 인코딩할 있습니다. 이 예제는 공백과 아포스트로피를 모두 인코딩합니다:

360 

361 ```bash theme={null}

364 export OTEL_RESOURCE_ATTRIBUTES="org.name=John%27s%20Organization"362 export OTEL_RESOURCE_ATTRIBUTES="org.name=John%27s%20Organization"

365 ```363 ```

366 364 

367 참고: 값을 따옴표로 감싸도 공백이 이스케이프되지 않습니다. 예를 들어 `org.name="My Company"`는 `My Company`가 아닌 리터럴 값 `"My Company"` (따옴표 포함)를 생성합니다.365 값을 따옴표로 감싸도 공백이 이스케이프되지 않습니다. 예를 들어 `org.name="My Company"`는 `My Company`가 아닌 리터럴 값 `"My Company"` (따옴표 포함)를 생성합니다.

368</Warning>366</Warning>

369 367 

370<h3 id="example-configurations">368<h3 id="example-configurations">


439| `terminal.type` | 터미널 유형, 예: `iTerm.app`, `vscode`, `cursor` 또는 `tmux` | 감지될 때 항상 포함됨 |437| `terminal.type` | 터미널 유형, 예: `iTerm.app`, `vscode`, `cursor` 또는 `tmux` | 감지될 때 항상 포함됨 |

440| `OTEL_RESOURCE_ATTRIBUTES`의 키 | 설정한 사용자 정의 속성, 예: `department` 또는 `team.id`. [다중 팀 조직 지원](#multi-team-organization-support)을 참조하세요 | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (기본값: true) |438| `OTEL_RESOURCE_ATTRIBUTES`의 키 | 설정한 사용자 정의 속성, 예: `department` 또는 `team.id`. [다중 팀 조직 지원](#multi-team-organization-support)을 참조하세요 | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (기본값: true) |

441 439 

440Claude Code가 [Claude 앱 게이트웨이](/ko/claude-apps-gateway)에 로그인되어 있으면 CLI는 게이트웨이 세션의 인증된 ID로 내보내기를 스탬프합니다: `user.id`는 익명 설치 식별자가 아닌 IdP 주체이고, `user.email`은 로그인한 이메일이며, `user.groups`는 쉼표로 구분된 문자열로 IdP 그룹 멤버십을 전달합니다. 각 내보내기는 또한 `identity.source: gateway-oidc`를 전달합니다. 게이트웨이 ID는 마지막에 적용되므로 `OTEL_RESOURCE_ATTRIBUTES`를 통해 설정된 `user.*` 및 `identity.*` 키는 게이트웨이 세션에서 무시됩니다.

441 

442이벤트는 추가로 다음 속성을 포함합니다. 이들은 무한 카디널리티를 야기할 수 있으므로 메트릭에 절대 첨부되지 않습니다:442이벤트는 추가로 다음 속성을 포함합니다. 이들은 무한 카디널리티를 야기할 수 있으므로 메트릭에 절대 첨부되지 않습니다:

443 443 

444* `prompt.id`: 사용자 프롬프트를 다음 프롬프트까지의 모든 후속 이벤트와 상관시키는 UUID입니다. [이벤트 상관 속성](#event-correlation-attributes)을 참조하세요.444* `prompt.id`: 사용자 프롬프트를 다음 프롬프트까지의 모든 후속 이벤트와 상관시키는 UUID입니다. [이벤트 상관 속성](#event-correlation-attributes)을 참조하세요.


488 488 

489* 모든 [표준 속성](#standard-attributes)489* 모든 [표준 속성](#standard-attributes)

490* `type`: (`"added"`, `"removed"`)490* `type`: (`"added"`, `"removed"`)

491* `model`: 변경을 수행한 모델의 모델 식별자 (예: "claude-sonnet-4-6"). {/* min-version: 2.1.172 */}Claude Code v2.1.172 이상 필요491* `model`: 변경을 수행한 모델의 모델 식별자 (예: "claude-sonnet-5")

492 492 

493<h4 id="pull-request-counter">493<h4 id="pull-request-counter">

494 풀 요청 카운터494 풀 요청 카운터


519**속성**:519**속성**:

520 520 

521* 모든 [표준 속성](#standard-attributes)521* 모든 [표준 속성](#standard-attributes)

522* `model`: 모델 식별자 (예: "claude-sonnet-4-6")522* `model`: 모델 식별자 (예: "claude-sonnet-5")

523* `query_source`: 요청을 발급한 하위 시스템의 범주. `"main"`, `"subagent"` 또는 `"auxiliary"` 중 하나523* `query_source`: 요청을 발급한 하위 시스템의 범주. `"main"`, `"subagent"` 또는 `"auxiliary"` 중 하나

524* `speed`: 요청이 빠른 모드를 사용했을 때 `"fast"`. 그 외에는 없음524* `speed`: 요청이 빠른 모드를 사용했을 때 `"fast"`. 그 외에는 없음

525* `effort`: 요청에 적용된 [노력 수준](/ko/model-config#adjust-effort-level): `"low"`, `"medium"`, `"high"`, `"xhigh"` 또는 `"max"`. 모델이 노력을 지원하지 않을 때는 없음525* `effort`: 요청에 적용된 [노력 수준](/ko/model-config#adjust-effort-level): `"low"`, `"medium"`, `"high"`, `"xhigh"` 또는 `"max"`. 모델이 노력을 지원하지 않을 때는 없음


540 540 

541* 모든 [표준 속성](#standard-attributes)541* 모든 [표준 속성](#standard-attributes)

542* `type`: (`"input"`, `"output"`, `"cacheRead"`, `"cacheCreation"`)542* `type`: (`"input"`, `"output"`, `"cacheRead"`, `"cacheCreation"`)

543* `model`: 모델 식별자 (예: "claude-sonnet-4-6")543* `model`: 모델 식별자 (예: "claude-sonnet-5")

544* `query_source`: 요청을 발급한 하위 시스템의 범주. `"main"`, `"subagent"` 또는 `"auxiliary"` 중 하나544* `query_source`: 요청을 발급한 하위 시스템의 범주. `"main"`, `"subagent"` 또는 `"auxiliary"` 중 하나

545* `speed`: 요청이 빠른 모드를 사용했을 때 `"fast"`. 그 외에는 없음545* `speed`: 요청이 빠른 모드를 사용했을 때 `"fast"`. 그 외에는 없음

546* `effort`: 요청에 적용된 [노력 수준](/ko/model-config#adjust-effort-level). [비용 카운터](#cost-counter)의 세부 정보를 참조하세요.546* `effort`: 요청에 적용된 [노력 수준](/ko/model-config#adjust-effort-level). [비용 카운터](#cost-counter)의 세부 정보를 참조하세요.


608* `event.timestamp`: ISO 8601 타임스탬프608* `event.timestamp`: ISO 8601 타임스탬프

609* `event.sequence`: 세션 내 이벤트 순서 지정을 위한 단조 증가 카운터609* `event.sequence`: 세션 내 이벤트 순서 지정을 위한 단조 증가 카운터

610* `prompt_length`: 프롬프트의 길이610* `prompt_length`: 프롬프트의 길이

611* `prompt`: 프롬프트 콘텐츠 (기본적으로 수정됨, `OTEL_LOG_USER_PROMPTS=1`로 활성화)611* `prompt`: 프롬프트 콘텐츠. 기본적으로 수정됨. `OTEL_LOG_USER_PROMPTS=1`로 설정하여 포함

612* `command_name`: 프롬프트가 명령을 호출할 때 명령 이름. `compact` 또는 `debug`와 같은 기본 제공 및 번들 명령 이름은 그대로 내보내집니다. `reset`과 같은 별칭은 정규 이름이 아닌 입력한 대로 내보냅니다. 사용자 정의, 플러그인 및 MCP 명령 이름은 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않으면 `custom` 또는 `mcp`로 축소됩니다612* `command_name`: 프롬프트가 명령을 호출할 때 명령 이름. `compact` 또는 `debug`와 같은 기본 제공 및 번들 명령 이름은 그대로 내보내집니다. `reset`과 같은 별칭은 정규 이름이 아닌 입력한 대로 내보냅니다. 사용자 정의, 플러그인 및 MCP 명령 이름은 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않으면 `custom` 또는 `mcp`로 축소됩니다

613* `command_source`: 명령이 있을 때 명령의 출처: `builtin`, `custom` 또는 `mcp`. 플러그인 제공 명령은 `custom`으로 보고합니다613* `command_source`: 명령이 있을 때 명령의 출처: `builtin`, `custom` 또는 `mcp`. 플러그인 제공 명령은 `custom`으로 보고합니다

614 614 

615<h4 id="assistant-response-event">

616 어시스턴트 응답 이벤트

617</h4>

618 

619각 API 요청이 모델의 텍스트 콘텐츠를 반환한 후 기록됩니다. 응답의 텍스트 블록만 포함됩니다. 사고 블록 및 도구 사용 블록은 제외됩니다. {/* min-version: 2.1.193 */}Claude Code v2.1.193 이상 필요.

620 

621**이벤트 이름**: `claude_code.assistant_response`

622 

623**속성**:

624 

625* 모든 [표준 속성](#standard-attributes)

626* `event.name`: `"assistant_response"`

627* `event.timestamp`: ISO 8601 타임스탬프

628* `event.sequence`: 세션 내 이벤트 순서 지정을 위한 단조 증가 카운터

629* `response_length`: 응답 텍스트의 길이 (문자)

630* `response`: 응답 텍스트 (60KB에서 잘림). 기본적으로 `<REDACTED>`로 수정됨. `OTEL_LOG_ASSISTANT_RESPONSES=1`로 설정하여 포함. `OTEL_LOG_ASSISTANT_RESPONSES`가 설정되지 않으면 `OTEL_LOG_USER_PROMPTS`가 대신 제어하므로 프롬프트 로깅이 켜져 있는 동안 응답을 수정된 상태로 유지하려면 `OTEL_LOG_ASSISTANT_RESPONSES=0`으로 설정합니다

631* `model`: 모델 식별자 (예: "claude-sonnet-4-6")

632* `request_id`: 응답의 `request-id` 헤더의 Anthropic API 요청 ID. API가 반환할 때만 표시됩니다

633* `query_source`: 요청을 발급한 하위 시스템, 예: `"repl_main_thread"`, `"compact"` 또는 하위 에이전트 이름

634 

615<h4 id="tool-result-event">635<h4 id="tool-result-event">

616 도구 결과 이벤트636 도구 결과 이벤트

617</h4>637</h4>


659* `event.name`: `"api_request"`679* `event.name`: `"api_request"`

660* `event.timestamp`: ISO 8601 타임스탬프680* `event.timestamp`: ISO 8601 타임스탬프

661* `event.sequence`: 세션 내 이벤트 순서 지정을 위한 단조 증가 카운터681* `event.sequence`: 세션 내 이벤트 순서 지정을 위한 단조 증가 카운터

662* `model`: 사용된 모델 (예: "claude-sonnet-4-6")682* `model`: 사용된 모델 (예: "claude-sonnet-5")

663* `cost_usd`: USD 단위의 예상 비용683* `cost_usd`: USD 단위의 예상 비용

664* `duration_ms`: 요청 지속 시간 (밀리초)684* `duration_ms`: 요청 지속 시간 (밀리초)

665* `input_tokens`: 입력 토큰 수685* `input_tokens`: 입력 토큰 수


686* `event.name`: `"api_error"`706* `event.name`: `"api_error"`

687* `event.timestamp`: ISO 8601 타임스탬프707* `event.timestamp`: ISO 8601 타임스탬프

688* `event.sequence`: 세션 내 이벤트 순서 지정을 위한 단조 증가 카운터708* `event.sequence`: 세션 내 이벤트 순서 지정을 위한 단조 증가 카운터

689* `model`: 사용된 모델 (예: "claude-sonnet-4-6")709* `model`: 사용된 모델 (예: "claude-sonnet-5")

690* `error`: 오류 메시지710* `error`: 오류 메시지

691* `status_code`: HTTP 상태 코드 (숫자). HTTP가 아닌 오류 (예: 연결 실패)의 경우 없음711* `status_code`: HTTP 상태 코드 (숫자). HTTP가 아닌 오류 (예: 연결 실패)의 경우 없음

692* `duration_ms`: 요청 지속 시간 (밀리초)712* `duration_ms`: 요청 지속 시간 (밀리초)


1193 속성 작업을 사용자에게 연결1213 속성 작업을 사용자에게 연결

1194</h3>1214</h3>

1195 1215 

1196각 이벤트의 [표준 속성](#standard-attributes)에는 인증된 사용자의 ID가 포함됩니다: Claude 계정으로 로그인할 때 `user.email`, `user.account_uuid`, `user.account_id` 및 `organization.id`, 그리고 설치 범위 `user.id` 및 세션별 `session.id`.1216각 이벤트의 [표준 속성](#standard-attributes)에는 인증된 사용자의 ID가 포함됩니다: Claude 계정으로 로그인할 때 `user.email`, `user.account_uuid`, `user.account_id` 및 `organization.id`, 그리고 설치 범위 `user.id` 및 세션별 `session.id`. `user.id`는 설치 범위 식별자이며, [Claude 앱 게이트웨이](/ko/claude-apps-gateway) 세션에서는 게이트웨이 발급 토큰의 IdP 주체입니다.

1197 1217 

1198MCP 도구 호출, Bash 명령 및 파일 편집은 따라서 세션을 시작한 개발자에게 귀속됩니다. Claude Code는 별도의 서비스 계정으로 작동하지 않습니다. 각 이벤트에 기록된 ID는 개발자 자신의 Claude 계정입니다.1218MCP 도구 호출, Bash 명령 및 파일 편집은 따라서 세션을 시작한 개발자에게 귀속됩니다. Claude Code는 별도의 서비스 계정으로 작동하지 않습니다. 각 이벤트에 기록된 ID는 개발자 자신의 Claude 계정이거나 [Claude 앱 게이트웨이](/ko/claude-apps-gateway) 세션의 개발자 IdP 신원입니다.

1199 1219 

1200Claude Code가 직접 API 키로 인증하거나 Bedrock, Vertex AI 또는 Microsoft Foundry에 대해 인증할 때 세션에 Claude 계정이 없으며 `user.id` 및 `session.id`만 채워집니다. 이러한 배포에서는 `OTEL_RESOURCE_ATTRIBUTES`를 사용하여 사용자 ID를 직접 첨부하고, [관리 설정](#administrator-configuration) 파일 또는 시작 래퍼를 통해 사용자별로 설정합니다:1220Claude Code가 직접 API 키로 인증하거나 Bedrock, Vertex AI 또는 Microsoft Foundry에 대해 인증할 때 세션에 Claude 계정이 없으며 `user.id` 및 `session.id`만 채워집니다. 이러한 배포에서는 `OTEL_RESOURCE_ATTRIBUTES`를 사용하여 사용자 ID를 직접 첨부하고, [관리 설정](#administrator-configuration) 파일 또는 시작 래퍼를 통해 사용자별로 설정합니다. Claude 앱 게이트웨이 세션은 이 중 어느 것도 필요하지 않습니다: CLI는 [표준 속성](#standard-attributes)에 설명된 대로 IdP 신원을 자동으로 스탬프합니다.

1201 1221 

1202```bash theme={null}1222```bash theme={null}

1203export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."1223export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."


1319* 원본 파일 콘텐츠 및 코드 스니펫은 메트릭 또는 이벤트에 포함되지 않습니다. 추적 스팬은 별도의 데이터 경로입니다: 아래의 `OTEL_LOG_TOOL_CONTENT` 항목을 참조하세요1339* 원본 파일 콘텐츠 및 코드 스니펫은 메트릭 또는 이벤트에 포함되지 않습니다. 추적 스팬은 별도의 데이터 경로입니다: 아래의 `OTEL_LOG_TOOL_CONTENT` 항목을 참조하세요

1320* OAuth를 통해 인증된 경우 `user.email`이 원격 측정 속성에 포함됩니다. 조직에서 이것이 우려 사항인 경우 원격 측정 백엔드와 함께 작업하여 이 필드를 필터링하거나 수정하세요1340* OAuth를 통해 인증된 경우 `user.email`이 원격 측정 속성에 포함됩니다. 조직에서 이것이 우려 사항인 경우 원격 측정 백엔드와 함께 작업하여 이 필드를 필터링하거나 수정하세요

1321* 사용자 프롬프트 콘텐츠는 기본적으로 수집되지 않습니다. 프롬프트 길이만 기록됩니다. 프롬프트 콘텐츠를 포함하려면 `OTEL_LOG_USER_PROMPTS=1`을 설정하세요1341* 사용자 프롬프트 콘텐츠는 기본적으로 수집되지 않습니다. 프롬프트 길이만 기록됩니다. 프롬프트 콘텐츠를 포함하려면 `OTEL_LOG_USER_PROMPTS=1`을 설정하세요

1342* 어시스턴트 응답 텍스트는 기본적으로 수집되지 않습니다. 응답 길이만 기록됩니다. 응답 텍스트를 포함하려면 `OTEL_LOG_ASSISTANT_RESPONSES=1`을 설정하세요. Claude Code의 모든 OpenTelemetry 데이터와 마찬가지로 응답 텍스트는 구성한 OTel 엔드포인트로만 전송되며 Anthropic으로는 전송되지 않습니다. 이 변수가 설정되지 않으면 `OTEL_LOG_USER_PROMPTS`가 폴백으로 사용되므로 프롬프트 콘텐츠는 원하지만 응답 콘텐츠는 원하지 않는 경우 `OTEL_LOG_ASSISTANT_RESPONSES=0`을 설정하세요

1322* 도구 입력 인수 및 매개변수는 기본적으로 기록되지 않습니다. 이를 포함하려면 `OTEL_LOG_TOOL_DETAILS=1`을 설정하세요. 이 데이터는 구성한 OTEL 엔드포인트로만 전송되며 Anthropic으로는 전송되지 않습니다. 인수에는 여전히 민감한 값이 포함될 수 있으므로 필요에 따라 이러한 속성을 필터링하거나 수정하도록 원격 측정 백엔드를 구성하세요. 활성화되면:1343* 도구 입력 인수 및 매개변수는 기본적으로 기록되지 않습니다. 이를 포함하려면 `OTEL_LOG_TOOL_DETAILS=1`을 설정하세요. 이 데이터는 구성한 OTEL 엔드포인트로만 전송되며 Anthropic으로는 전송되지 않습니다. 인수에는 여전히 민감한 값이 포함될 수 있으므로 필요에 따라 이러한 속성을 필터링하거나 수정하도록 원격 측정 백엔드를 구성하세요. 활성화되면:

1323 * `tool_result` 및 `tool_decision` 이벤트는 Bash 명령, MCP 서버 및 도구 이름, 스킬 이름이 포함된 `tool_parameters` 속성을 포함합니다. `full_command`와 같은 필드는 잘리지 않은 상태로 내보내집니다1344 * `tool_result` 및 `tool_decision` 이벤트는 Bash 명령, MCP 서버 및 도구 이름, 스킬 이름이 포함된 `tool_parameters` 속성을 포함합니다. `full_command`와 같은 필드는 잘리지 않은 상태로 내보내집니다

1324 * `tool_result` 이벤트는 추가로 파일 경로, URL, 검색 패턴 및 기타 인수가 포함된 `tool_input` 속성을 포함합니다. 512자를 초과하는 개별 값은 잘리고 전체는 약 4K 문자로 제한됩니다1345 * `tool_result` 이벤트는 추가로 파일 경로, URL, 검색 패턴 및 기타 인수가 포함된 `tool_input` 속성을 포함합니다. 512자를 초과하는 개별 값은 잘리고 전체는 약 4K 문자로 제한됩니다

Details

63 CA 인증서 저장소63 CA 인증서 저장소

64</h2>64</h2>

65 65 

66기본적으로 Claude Code는 번들로 제공되는 Mozilla CA 인증서와 운영 체제의 인증서 저장소를 모두 신뢰합니다. CrowdStrike Falcon 및 Zscaler와 같은 엔터프라이즈 TLS 검사 프록시는 루트 인증서가 OS 신뢰 저장소에 설치되어 있으면 추가 구성 없이 작동합니다.66기본적으로 Claude Code는 번들로 제공되는 Mozilla CA 인증서와 운영 체제의 인증서 저장소를 모두 신뢰합니다. OS 저장소를 읽으려면 `tls.getCACertificates`가 있는 런타임이 필요합니다. 네이티브 설치 프로그램은 항상 이를 포함하고 있으며, npm 설치는 Node 22.15 이상이 필요합니다. 이전 Node 버전에서는 번들로 제공되는 세트와 `NODE_EXTRA_CA_CERTS`만 적용됩니다. CrowdStrike Falcon 및 Zscaler와 같은 엔터프라이즈 TLS 검사 프록시는 루트 인증서가 OS 신뢰 저장소에 설치되어 있고 런타임이 이를 읽을 수 있을 때 추가 구성 없이 작동합니다.

67 67 

68`CLAUDE_CODE_CERT_STORE`는 쉼표로 구분된 소스 목록을 허용합니다. 인식되는 값은 Claude Code와 함께 제공되는 Mozilla CA 세트의 경우 `bundled`, 운영 체제 신뢰 저장소의 경우 `system`입니다. 기본값은 `bundled,system`입니다.68`CLAUDE_CODE_CERT_STORE`는 쉼표로 구분된 소스 목록을 허용합니다. 인식되는 값은 Claude Code와 함께 제공되는 Mozilla CA 세트의 경우 `bundled`, 운영 체제 신뢰 저장소의 경우 `system`입니다. 기본값은 `bundled,system`입니다.

69 69 


131 131 

132Claude Code는 기본적으로 선택적 운영 원격 분석을 전송하며, 환경 변수를 사용하여 이를 비활성화할 수 있습니다. 허용 목록을 최종 확정하기 전에 원격 분석을 비활성화하는 방법은 [원격 분석 서비스](/ko/data-usage#telemetry-services)를 참조하십시오.132Claude Code는 기본적으로 선택적 운영 원격 분석을 전송하며, 환경 변수를 사용하여 이를 비활성화할 수 있습니다. 허용 목록을 최종 확정하기 전에 원격 분석을 비활성화하는 방법은 [원격 분석 서비스](/ko/data-usage#telemetry-services)를 참조하십시오.

133 133 

134[Amazon Bedrock](/ko/amazon-bedrock), [Google Vertex AI](/ko/google-vertex-ai) 또는 [Microsoft Foundry](/ko/microsoft-foundry) 사용할 때 모델 트래픽 및 인증은 `api.anthropic.com`, `claude.ai` 또는 `platform.claude.com` 대신 공급자로 이동합니다. WebFetch 도구는 [설정](/ko/settings)에서 `skipWebFetchPreflight: true`를 설정하지 않는 한 [도메인 안전 검사](/ko/data-usage#webfetch-domain-safety-check)를 위해 여전히 `api.anthropic.com`을 호출합니다.134[Amazon Bedrock](/ko/amazon-bedrock), [Google Vertex AI](/ko/google-vertex-ai), [Microsoft Foundry](/ko/microsoft-foundry) 또는 로그인한 [Claude 앱 게이트웨이](/ko/claude-apps-gateway) 세션을 사용할 때 모델 트래픽 및 인증은 `api.anthropic.com`, `claude.ai` 또는 `platform.claude.com` 대신 공급자 또는 게이트웨이로 이동합니다. WebFetch 도구는 [설정](/ko/settings)에서 `skipWebFetchPreflight: true`를 설정하지 않는 한 [도메인 안전 검사](/ko/data-usage#webfetch-domain-safety-check)를 위해 여전히 `api.anthropic.com`을 호출합니다.

135 135 

136[웹의 Claude Code](/ko/claude-code-on-the-web) 및 [Code Review](/ko/code-review)는 Anthropic 관리 인프라에서 리포지토리에 연결합니다. GitHub Enterprise Cloud 조직이 IP 주소로 액세스를 제한하는 경우 [설치된 GitHub Apps에 대한 IP 허용 목록 상속 활성화](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps)를 수행하십시오. Claude GitHub App은 IP 범위를 등록하므로 이 설정을 활성화하면 수동 구성 없이 액세스할 수 있습니다. 대신 [범위를 허용 목록에 수동으로 추가](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address)하거나 다른 방화벽을 구성하려면 [Anthropic API IP 주소](https://platform.claude.com/docs/en/api/ip-addresses)를 참조하십시오.136[웹의 Claude Code](/ko/claude-code-on-the-web) 및 [Code Review](/ko/code-review)는 Anthropic 관리 인프라에서 리포지토리에 연결합니다. GitHub Enterprise Cloud 조직이 IP 주소로 액세스를 제한하는 경우 [설치된 GitHub Apps에 대한 IP 허용 목록 상속 활성화](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps)를 수행하십시오. Claude GitHub App은 IP 범위를 등록하므로 이 설정을 활성화하면 수동 구성 없이 액세스할 수 있습니다. 대신 [범위를 허용 목록에 수동으로 추가](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address)하거나 다른 방화벽을 구성하려면 [Anthropic API IP 주소](https://platform.claude.com/docs/en/api/ip-addresses)를 참조하십시오.

137 137 

Details

37 <Tab title="CLI">37 <Tab title="CLI">

38 **세션 중**: `Shift+Tab`을 눌러 `default` → `acceptEdits` → `plan`을 순환합니다. 현재 모드는 상태 표시줄에 나타납니다. 모든 모드가 기본 순환에 있는 것은 아닙니다:38 **세션 중**: `Shift+Tab`을 눌러 `default` → `acceptEdits` → `plan`을 순환합니다. 현재 모드는 상태 표시줄에 나타납니다. 모든 모드가 기본 순환에 있는 것은 아닙니다:

39 39 

40 * `auto`: 계정이 [자동 모드 요구 사항](#eliminate-prompts-with-auto-mode)을 충족할 때 나타나며, 자동 모드로 순환하면 수락할 때까지 또는 **아니요, 다시 묻지 마세요**를 선택하여 순환에서 자동을 제거할 때까지 옵트인 프롬프트가 표시됩니다40 * `auto`: 계정이 [자동 모드 요구 사항](#eliminate-prompts-with-auto-mode)을 충족할 때 나타나며, 자동 모드로 순환하면 확인 프롬프트 없이 모드를 전환합니다

41 * `bypassPermissions`: `--permission-mode bypassPermissions`, `--dangerously-skip-permissions` 또는 `--allow-dangerously-skip-permissions`로 시작한 후 나타나며, `--allow-` 변형은 활성화하지 않고 순환에 모드를 추가합니다41 * `bypassPermissions`: `--permission-mode bypassPermissions`, `--dangerously-skip-permissions` 또는 `--allow-dangerously-skip-permissions`로 시작한 후 나타나며, `--allow-` 변형은 활성화하지 않고 순환에 모드를 추가합니다

42 * `dontAsk`: 순환에 절대 나타나지 않습니다. `--permission-mode dontAsk`로 설정합니다42 * `dontAsk`: 순환에 절대 나타나지 않습니다. `--permission-mode dontAsk`로 설정합니다

43 43 


169```169```

170 170 

171<h2 id="eliminate-prompts-with-auto-mode">171<h2 id="eliminate-prompts-with-auto-mode">

172 자동 모드로 프롬프트 제거172 자동 모드로 권한 프롬프트 제거

173</h2>173</h2>

174 174 

175<Note>175<Note>


187자동 모드는 계정이 다음의 모든 요구 사항을 충족할 때만 사용 가능합니다:187자동 모드는 계정이 다음의 모든 요구 사항을 충족할 때만 사용 가능합니다:

188 188 

189* **플랜**: 모든 플랜.189* **플랜**: 모든 플랜.

190* **관리자**: Team 및 Enterprise에서, 관리자는 사용자가 켜기 전에 [Claude Code 관리자 설정](https://claude.ai/admin-settings/claude-code)에서 이를 활성화해야 합니다. 관리자는 [관리 설정](/ko/permissions#managed-settings)에서 `permissions.disableAutoMode`를 `"disable"`로 설정하여 이를 잠금할 수도 있습니다.190* **소유자**: Team 및 Enterprise에서, 소유자는 사용자가 켜기 전에 [Claude Code 관리자 설정](https://claude.ai/admin-settings/claude-code)에서 이를 활성화해야 합니다. 관리자는 [관리 설정](/ko/permissions#managed-settings)에서 `permissions.disableAutoMode`를 `"disable"`로 설정하여 이를 잠금할 수도 있습니다.

191* **모델**: Anthropic API에서 Claude Opus 4.6 이상 또는 Sonnet 4.6. Amazon Bedrock, Google Cloud Vertex AI, Microsoft Foundry에서는 Claude Opus 4.7 및 Opus 4.8만 해당합니다. Sonnet 4.5, Opus 4.5, Haiku, claude-3 모델을 포함한 이전 모델은 어떤 제공자에서도 지원되지 않습니다.191* **모델**: Anthropic API에서 Claude Opus 4.6 이상 또는 Sonnet 4.6 이상. Amazon Bedrock, Google Cloud Vertex AI, Microsoft Foundry, 그리고 로그인한 [Claude 앱 게이트웨이](/ko/claude-apps-gateway) 세션에서는 Claude Sonnet 5, Opus 4.7, 및 Opus 4.8만 해당합니다. Sonnet 4.5, Opus 4.5, Haiku, claude-3 모델을 포함한 이전 모델은 어떤 제공자에서도 지원되지 않습니다.

192* **제공자**: Anthropic API에서 기본적으로 사용 가능합니다. Amazon Bedrock, Google Cloud Vertex AI, Microsoft Foundry에서는 [`CLAUDE_CODE_ENABLE_AUTO_MODE`를 설정](#enable-auto-mode-on-bedrock-vertex-ai-or-foundry)할 때까지 자동 모드가 꺼져 있습니다.192* **제공자**: Anthropic API에서 기본적으로 사용 가능합니다. Amazon Bedrock, Google Cloud Vertex AI, Microsoft Foundry, 그리고 로그인한 Claude 앱 게이트웨이 세션에서는 [`CLAUDE_CODE_ENABLE_AUTO_MODE`를 설정](#enable-auto-mode-on-bedrock-vertex-ai-or-foundry)할 때까지 자동 모드가 꺼져 있습니다.

193 193 

194Claude Code가 자동 모드를 사용할 수 없다고 보고하면, 이러한 요구 사항 중 하나가 충족되지 않은 것입니다. 이는 일시적인 중단이 아닙니다. 모델을 이름으로 지정하고 자동 모드가 작업의 안전을 "결정할 수 없다"고 말하는 별도의 메시지는 일시적인 분류기 중단입니다. [오류 참조](/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action)를 참조합니다.194Claude Code가 자동 모드를 사용할 수 없다고 보고하면, 이러한 요구 사항 중 하나가 충족되지 않은 것입니다. 이는 일시적인 중단이 아닙니다. 모델을 이름으로 지정하고 자동 모드가 작업의 안전을 "결정할 수 없다"고 말하는 별도의 메시지는 일시적인 분류기 중단입니다. [오류 참조](/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action)를 참조합니다.

195 195 


199 Bedrock, Vertex AI, Foundry에서 자동 모드 활성화199 Bedrock, Vertex AI, Foundry에서 자동 모드 활성화

200</h3>200</h3>

201 201 

202[Amazon Bedrock](/ko/amazon-bedrock), [Google Cloud Vertex AI](/ko/google-vertex-ai), [Microsoft Foundry](/ko/microsoft-foundry)에서는 `CLAUDE_CODE_ENABLE_AUTO_MODE`가 `1`로 설정될 때까지 자동 모드가 `Shift+Tab` 사이클에 나타나지 않습니다. 변수는 Claude Code v2.1.158 이상에서 작동합니다. 이러한 제공자에서는 Claude Opus 4.7 및 Opus 4.8만 지원됩니다.202[Amazon Bedrock](/ko/amazon-bedrock), [Google Cloud Vertex AI](/ko/google-vertex-ai), [Microsoft Foundry](/ko/microsoft-foundry), 그리고 로그인한 [Claude 앱 게이트웨이](/ko/claude-apps-gateway) 세션에서는 `CLAUDE_CODE_ENABLE_AUTO_MODE`가 `1`로 설정될 때까지 자동 모드가 `Shift+Tab` 사이클에 나타나지 않습니다. 변수는 Claude Code v2.1.158 이상에서 작동합니다. 이러한 제공자에서는 Claude Sonnet 5, Opus 4.7, 및 Opus 4.8만 지원됩니다.

203 203 

204한 명의 개발자에게 이를 활성화하려면, `~/.claude/settings.json`의 `env` 블록에 변수를 추가합니다:204한 명의 개발자에게 이를 활성화하려면, `~/.claude/settings.json`의 `env` 블록에 변수를 추가합니다:

205 205 


217 217 

218개발자가 자동 모드를 활성화하지 못하도록 하려면, 관리 설정에서 `disableAutoMode`를 `"disable"`로 설정합니다. 이는 활성화 변수를 재정의합니다.218개발자가 자동 모드를 활성화하지 못하도록 하려면, 관리 설정에서 `disableAutoMode`를 `"disable"`로 설정합니다. 이는 활성화 변수를 재정의합니다.

219 219 

220[LLM 게이트웨이](/ko/llm-gateway)를 통해 `ANTHROPIC_BASE_URL`로 구성된 경우 연결하면, 게이트웨이가 요청을 Anthropic API를 통해 라우팅하기 때문에 자동 모드가 활성화 변수 없이 이미 도달 가능할 수 있습니다. `disableAutoMode` 설정은 해당 구성에서 동일한 방식으로 적용됩니다.220[LLM 게이트웨이](/ko/llm-gateway)를 통해 `ANTHROPIC_BASE_URL`로 구성된 경우 연결하면, 게이트웨이가 요청을 Anthropic API를 통해 라우팅하기 때문에 자동 모드가 활성화 변수 없이 이미 도달 가능할 수 있습니다. 이는 로그인한 [Claude 앱 게이트웨이](/ko/claude-apps-gateway) 세션에는 적용되지 않으며, 이는 자체 제공자 클래스이고 활성화 변수가 필요합니다. `disableAutoMode` 설정은 어느 구성에서든 동일한 방식으로 적용됩니다.

221 221 

222<h3 id="what-the-classifier-blocks-by-default">222<h3 id="what-the-classifier-blocks-by-default">

223 분류기가 기본적으로 차단하는 항목223 분류기가 기본적으로 차단하는 항목


239* `git commit --amend` (HEAD의 커밋이 이 세션에서 생성되지 않은 경우)239* `git commit --amend` (HEAD의 커밋이 이 세션에서 생성되지 않은 경우)

240* `terraform destroy`, `pulumi destroy`, `cdk destroy`, 또는 `terragrunt destroy`, 그리고 리소스를 삭제하는 계획 적용240* `terraform destroy`, `pulumi destroy`, `cdk destroy`, 또는 `terragrunt destroy`, 그리고 리소스를 삭제하는 계획 적용

241 241 

242Claude Code v2.1.195 이상은 기본적으로 더 많은 카테고리를 차단합니다. 여러 개는 민감한 원격 대상 및 보호된 IaC 범위와 같은 [환경](/ko/auto-mode-config#define-trusted-infrastructure) 항목에 따라 달라지며, 이를 구체적인 이름으로 좁힐 수 있습니다.

243 

244* 비밀 관리자에 쓰기, 또는 DNS 레코드 또는 TLS 인증서 변경

245* 인간이 승인하지 않은 풀 요청 병합, Claude의 자체 풀 요청 승인, 또는 CI 검사 비활성화

246* `atlantis apply` 또는 봇의 `/deploy` 또는 `/merge`와 같은 자동화에 대한 명령 자체인 댓글 게시

247* 프로덕션 기능 플래그 토글, 램핑, 또는 삭제

248* 보호된 IaC 범위에 인프라 변경 적용, 또는 클러스터 노드 드레이닝 및 제거

249* 레이블 선택기 또는 `--all`과 같이 다른 사용자의 작업을 포착하는 공유 컴퓨팅 클러스터에 대한 쓰기

250* DaemonSets 및 admission webhooks와 같이 모든 노드에서 실행되거나 클러스터 트래픽을 가로채는 Kubernetes 리소스 생성

251* 민감한 원격 대상으로의 대화형 셸 또는 포트 포워드

252* 로컬 서비스를 공개 인터넷에서 도달 가능하게 하는 터널 또는 역 셸 열기

253* 기록 또는 파일에 라이브 자격 증명 또는 토큰 인쇄

254* PII 또는 규제 데이터 위치 액세스, 또는 데이터를 외부로 복사

255* 패키지 설치를 내부 패키지 레지스트리 주위로 라우팅하여 공개 레지스트리로 이동

256* `--insecure`와 같이 안전 가드를 해제하는 플래그로 명령 실행

257* [Chrome의 Claude](/ko/chrome) 브라우저 작업으로 페이지 콘텐츠, 쿠키, 또는 자격 증명을 원본 외부로 전송할 수 있음

258 

242**기본적으로 허용됨**:259**기본적으로 허용됨**:

243 260 

244* 작업 디렉토리의 로컬 파일 작업261* 작업 디렉토리의 로컬 파일 작업


247* 읽기 전용 HTTP 요청264* 읽기 전용 HTTP 요청

248* 시작한 분기 또는 Claude가 생성한 분기로 푸시265* 시작한 분기 또는 Claude가 생성한 분기로 푸시

249 266 

267Claude Code v2.1.195 이상은 또한 기본적으로 다음을 허용합니다:

268 

269* 같은 세션에서 Claude가 이전에 생성한 정확한 작업 삭제

270* 작업의 일부로 보안 관련 코드, 구성, 위협 모델 읽기, 검토, 또는 쓰기

271* 같은 다중 에이전트 세션에서 함께 작업하는 에이전트 간의 메시지

272* [`environment`](/ko/auto-mode-config#define-trusted-infrastructure)에 나열한 신뢰할 수 있는 도메인, 버킷, 서비스로 데이터 전송. 이는 같은 인프라에 대한 파괴적이거나 자격 증명 작업이 아닌 데이터 흐름만 포함합니다

273* [Chrome의 Claude](/ko/chrome)를 신뢰할 수 있는 내부 도메인, localhost, 또는 이름을 지정한 URL로 탐색

274 

250샌드박스 네트워크 액세스 요청은 기본적으로 허용되는 대신 분류기를 통해 라우팅됩니다. `claude auto-mode defaults`를 실행하여 전체 규칙 목록을 확인합니다. 일상적인 작업이 차단되면, 관리자는 `autoMode.environment` 설정을 통해 신뢰할 수 있는 리포지토리, 버킷, 서비스를 추가할 수 있습니다: [자동 모드 구성](/ko/auto-mode-config)을 참조합니다.275샌드박스 네트워크 액세스 요청은 기본적으로 허용되는 대신 분류기를 통해 라우팅됩니다. `claude auto-mode defaults`를 실행하여 전체 규칙 목록을 확인합니다. 일상적인 작업이 차단되면, 관리자는 `autoMode.environment` 설정을 통해 신뢰할 수 있는 리포지토리, 버킷, 서비스를 추가할 수 있습니다: [자동 모드 구성](/ko/auto-mode-config)을 참조합니다.

251 276 

252<h3 id="boundaries-you-state-in-conversation">277<h3 id="boundaries-you-state-in-conversation">

permissions.md +30 −19

Details

24 권한 관리24 권한 관리

25</h2>25</h2>

26 26 

27`/permissions`를 사용하여 Claude Code의 도구 권한을 보고 관리할 수 있습니다. 이 UI는 모든 권한 규칙과 이들이 출처한 settings.json 파일을 나열합니다.27`/permissions`를 사용하여 Claude Code의 도구 권한을 보고 관리할 수 있습니다. 이 UI는 모든 권한 규칙과 이들이 출처한 `settings.json` 파일을 나열합니다.

28 28 

29* **Allow** 규칙을 사용하면 Claude Code가 수동 승인 없이 지정된 도구를 사용할 수 있습니다.29* **Allow** 규칙을 사용하면 Claude Code가 수동 승인 없이 지정된 도구를 사용할 수 있습니다.

30* **Ask** 규칙은 Claude Code가 지정된 도구를 사용하려고 할 때마다 확인을 요청합니다.30* **Ask** 규칙은 Claude Code가 지정된 도구를 사용하려고 할 때마다 확인을 요청합니다.

31* **Deny** 규칙은 Claude Code가 지정된 도구를 사용하지 못하도록 방지합니다.31* **Deny** 규칙은 Claude Code가 지정된 도구를 사용하지 못하도록 방지합니다.

32 32 

33규칙은 순서대로 평가됩니다: deny, ask, allow. 해당 순서의 첫 번째 일치 항목이 결과를 결정하며, 규칙 특이성은 순서를 변경하지 않습니다. `Bash(aws *)`와 같은 광범위한 deny 규칙은 `Bash(aws s3 ls)`와 같은 더 좁은 allow 규칙과도 일치하는 호출을 포함하여 모든 일치하는 호출을 차단하므로, deny 규칙은 허용 목록 예외를 포함할 수 없습니다. ask와 allow 사이에도 동일한 우선순위가 적용됩니다: 일치하는 ask 규칙은 동일한 호출과도 일치하는 더 구체적인 allow 규칙이 있을 때도 프롬프트를 표시합니다.33규칙은 순서대로 평가됩니다: deny, ask, allow. 해당 순서의 첫 번째 일치 항목이 결과를 결정하며, 규칙 특이성은 순서를 변경하지 않습니다.

34 

35`Bash(aws *)`와 같은 광범위한 deny 규칙은 `Bash(aws s3 ls)`와 같은 더 좁은 allow 규칙과도 일치하는 호출을 포함하여 모든 일치하는 호출을 차단하므로, deny 규칙은 허용 목록 예외를 포함할 수 없습니다. ask와 allow 사이에도 동일한 우선순위가 적용됩니다: 일치하는 ask 규칙은 동일한 호출과도 일치하는 더 구체적인 allow 규칙이 있을 때도 프롬프트를 표시합니다.

34 36 

35Deny 규칙은 도구 이름을 지정하는지 또는 도구 내의 패턴 범위를 지정하는지에 따라 다르게 작동합니다. `Bash`와 같은 단순 도구 이름은 도구를 Claude의 컨텍스트에서 완전히 제거하므로 Claude는 이를 볼 수 없습니다. `Bash(rm *)`와 같은 범위 지정 규칙은 도구를 사용 가능하게 유지하고 Claude가 시도할 때 일치하는 호출을 차단합니다.37Deny 규칙은 도구 이름을 지정하는지 또는 도구 내의 패턴 범위를 지정하는지에 따라 다르게 작동합니다. `Bash`와 같은 단순 도구 이름은 도구를 Claude의 컨텍스트에서 완전히 제거하므로 Claude는 이를 볼 수 없습니다. `Bash(rm *)`와 같은 범위 지정 규칙은 도구를 사용 가능하게 유지하고 Claude가 시도할 때 일치하는 호출을 차단합니다.

36 38 


54| `bypassPermissions` | 명시적 `ask` 규칙으로 강제되는 권한 프롬프트를 제외한 모든 권한 프롬프트를 건너뜁니다. 파일 시스템 루트 또는 홈 디렉토리 제거(예: `rm -rf /` 및 `rm -rf ~`)는 모델 오류에 대한 회로 차단기로 여전히 프롬프트합니다 |56| `bypassPermissions` | 명시적 `ask` 규칙으로 강제되는 권한 프롬프트를 제외한 모든 권한 프롬프트를 건너뜁니다. 파일 시스템 루트 또는 홈 디렉토리 제거(예: `rm -rf /` 및 `rm -rf ~`)는 모델 오류에 대한 회로 차단기로 여전히 프롬프트합니다 |

55 57 

56<Warning>58<Warning>

57 `bypassPermissions` 모드는 `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn`, `.mvn`에 대한 쓰기를 포함한 모든 권한 프롬프트를 건너뜁니다. 명시적 `ask` 규칙은 여전히 프롬프트를 강제하며, 파일 시스템 루트 또는 홈 디렉토리를 대상으로 하는 제거(예: `rm -rf /` 및 `rm -rf ~`)는 모델 오류에 대한 회로 차단기로 여전히 프롬프트합니다. 이 모드는 Claude Code가 손상을 일으킬 수 없는 컨테이너 또는 VM과 같은 격리된 환경에서만 사용합니다. 관리자는 [관리형 설정](#managed-settings)에서 `permissions.disableBypassPermissionsMode`를 `"disable"`로 설정하여 이 모드를 방지할 수 있습니다.59 `bypassPermissions` 모드는 `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn`, `.mvn`에 대한 쓰기를 포함한 모든 권한 프롬프트를 건너뜁니다. 명시적 `ask` 규칙은 여전히 프롬프트를 강제하며, 파일 시스템 루트 또는 홈 디렉토리를 대상으로 하는 제거(예: `rm -rf /` 및 `rm -rf ~`)는 모델 오류에 대한 회로 차단기로 여전히 프롬프트합니다. 이 모드는 Claude Code가 손상을 일으킬 수 없는 컨테이너 또는 VM과 같은 격리된 환경에서만 사용합니다.

58</Warning>60</Warning>

59 61 

60`bypassPermissions` 또는 `auto` 모드가 사용되는 것을 방지하려면 [설정 파일](/ko/settings#settings-files)에서 `permissions.disableBypassPermissionsMode` 또는 `permissions.disableAutoMode`를 `"disable"`로 설정합니다. 이들은 재정의될 수 없는 [관리형 설정](#managed-settings)에서 가장 유용합니다.62`bypassPermissions` 또는 `auto` 모드가 사용되는 것을 방지하려면 [설정 파일](/ko/settings#settings-files)에서 `permissions.disableBypassPermissionsMode` 또는 `permissions.disableAutoMode`를 `"disable"`로 설정합니다. 이들은 재정의될 수 없는 [관리형 설정](#managed-settings)에서 가장 유용합니다.


95 입력 매개변수로 일치97 입력 매개변수로 일치

96</h3>98</h3>

97 99 

98거부 및 요청 규칙은 `Tool(param:value)`를 사용하여 모든 도구의 최상위 입력 매개변수와 일치할 수 있습니다. 규칙은 Claude가 해당 매개변수가 정확한 값으로 설정된 도구를 호출할 때 일치합니다. 이 구문은 거부 및 요청 규칙용입니다. 한 매개변수 값에 대한 허용 규칙은 호출이 전반적으로 안전하다는 것을 확립하지 않으므로, 허용 규칙은 각 도구의 자체 지정자 구문을 계속 사용합니다. 이는 도구가 허용하는 모든 스칼라 매개변수에 대해 작동합니다:100거부 및 요청 규칙은 `Tool(param:value)`를 사용하여 모든 도구의 최상위 입력 매개변수와 일치할 수 있습니다. 규칙은 Claude가 해당 매개변수가 정확한 값으로 설정된 도구를 호출할 때 일치합니다. 한 매개변수 값에 대한 허용 규칙은 호출이 전반적으로 안전하다는 것을 확립하지 않으므로, 허용 규칙은 각 도구의 자체 지정자 구문을 계속 사용합니다. 이는 도구가 허용하는 모든 스칼라 매개변수에 대해 작동합니다:

99 101 

100| 규칙 | 일치 |102| 규칙 | 일치 |

101| :----------------------------- | :-------------------------- |103| :----------------------------- | :-------------------------- |


220 222 

221 * URL 앞의 옵션: `curl -X GET http://github.com/...`223 * URL 앞의 옵션: `curl -X GET http://github.com/...`

222 * 다른 프로토콜: `curl https://github.com/...`224 * 다른 프로토콜: `curl https://github.com/...`

223 * 리다이렉트: `curl -L http://bit.ly/xyz` (github로 리다이렉트)225 * 리다이렉트: `curl -L http://bit.ly/xyz` (GitHub로 리다이렉트)

224 * 변수: `URL=http://github.com && curl $URL`226 * 변수: `URL=http://github.com && curl $URL`

225 * 추가 공백: `curl http://github.com`227 * 추가 공백: `curl http://github.com`

226 228 


270Read 및 Edit 규칙은 모두 [gitignore](https://git-scm.com/docs/gitignore) 사양을 따르며 4가지 고유한 패턴 유형이 있습니다:272Read 및 Edit 규칙은 모두 [gitignore](https://git-scm.com/docs/gitignore) 사양을 따르며 4가지 고유한 패턴 유형이 있습니다:

271 273 

272| 패턴 | 의미 | 예시 | 일치 |274| 패턴 | 의미 | 예시 | 일치 |

273| ------------------ | -------------------- | -------------------------------- | ------------------------------ |275| ------------------ | ---------------- | -------------------------------- | ------------------------------ |

274| `//path` | 파일 시스템 루트의 **절대** 경로 | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |276| `//path` | 파일 시스템 루트의 절대 경로 | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |

275| `~/path` | **** 디렉토리의 경로 | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |277| `~/path` | 홈 디렉토리의 경로 | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |

276| `/path` | 프로젝트 루트에 **상대적인** 경로 | `Edit(/src/**/*.ts)` | `<project root>/src/**/*.ts` |278| `/path` | 프로젝트 루트에 상대적인 경로 | `Edit(/src/**/*.ts)` | `<project root>/src/**/*.ts` |

277| `path` 또는 `./path` | 현재 디렉토리에 **상대적인** 경로 | `Read(*.env)` | `<cwd>/*.env` |279| `path` 또는 `./path` | 현재 디렉토리에 상대적인 경로 | `Read(*.env)` | `<cwd>/*.env` |

278 280 

279<Warning>281<Warning>

280 `/Users/alice/file`과 같은 패턴은 절대 경로가 아닙니다. 프로젝트 루트에 상대적입니다. 절대 경로의 경우 `//Users/alice/file`을 사용합니다.282 `/Users/alice/file`과 같은 패턴은 절대 경로가 아닙니다. 프로젝트 루트에 상대적입니다. 절대 경로의 경우 `//Users/alice/file`을 사용합니다.


323 MCP325 MCP

324</h3>326</h3>

325 327 

326* `mcp__puppeteer`는 `puppeteer` 서버(Claude Code에서 구성된 이름)에서 제공하는 모든 도구와 일치합니다328MCP 규칙은 Claude Code에서 구성된 서버 이름을 사용하며, 선택적으로 해당 서버의 도구 이름이 뒤따릅니다.

327* `mcp__puppeteer__*` 와일드카드 구문은 `puppeteer` 서버의 모든 도구와도 일치합니다329 

330* `mcp__puppeteer`는 `puppeteer` 서버에서 제공하는 모든 도구와 일치합니다

331* `mcp__puppeteer__*`는 와일드카드 구문을 사용하며 `puppeteer` 서버의 모든 도구와도 일치합니다

328* `mcp__puppeteer__puppeteer_navigate`는 `puppeteer` 서버에서 제공하는 `puppeteer_navigate` 도구와 일치합니다332* `mcp__puppeteer__puppeteer_navigate`는 `puppeteer` 서버에서 제공하는 `puppeteer_navigate` 도구와 일치합니다

329 333 

330<h3 id="agent-subagents">334<h3 id="agent-subagents">


418 422 

419권한과 [샌드박싱](/ko/sandboxing)은 상호 보완적인 보안 계층입니다:423권한과 [샌드박싱](/ko/sandboxing)은 상호 보완적인 보안 계층입니다:

420 424 

421* **권한**은 Claude Code가 사용할 수 있는 도구와 액세스할 수 있는 파일 또는 도메인을 제어합니다. 모든 도구(Bash, Read, Edit, WebFetch, MCP 등)에 적용됩니다.425* **권한**은 Claude Code가 사용할 수 있는 도구와 액세스할 수 있는 파일 또는 도메인을 제어합니다. Bash, Read, Edit, WebFetch, MCP를 포함한 모든 도구에 적용됩니다.

422* **샌드박싱**은 Bash 도구의 파일 시스템 및 네트워크 액세스를 제한하는 OS 수준 적용을 제공합니다. Bash 명령 및 해당 자식 프로세스에만 적용됩니다.426* **샌드박싱**은 Bash 도구의 파일 시스템 및 네트워크 액세스를 제한하는 OS 수준 적용을 제공합니다. Bash 명령 및 해당 자식 프로세스에만 적용됩니다.

423 427 

424심층 방어를 위해 둘 다 사용합니다:428심층 방어를 위해 둘 다 사용합니다:


428* 샌드박스의 파일 시스템 제한은 [`sandbox.filesystem`](/ko/sandboxing) 설정을 Read 및 Edit deny 규칙과 결합합니다. 둘 다 최종 샌드박스 경계로 병합됩니다432* 샌드박스의 파일 시스템 제한은 [`sandbox.filesystem`](/ko/sandboxing) 설정을 Read 및 Edit deny 규칙과 결합합니다. 둘 다 최종 샌드박스 경계로 병합됩니다

429* 네트워크 제한은 WebFetch 권한 규칙을 샌드박스의 `allowedDomains` 및 `deniedDomains` 목록과 결합합니다433* 네트워크 제한은 WebFetch 권한 규칙을 샌드박스의 `allowedDomains` 및 `deniedDomains` 목록과 결합합니다

430 434 

431샌드박싱이 `autoAllowBashIfSandboxed: true`로 활성화되면(기본값), 권한에 `Bash` ask 규칙이 포함되어 있거나 [동등한 `Bash(*)` 형식](#match-all-uses-of-a-tool)이 포함되어 있어도 샌드박스된 Bash 명령은 프롬프트 없이 실행됩니다. 샌드박스 경계는 전체 도구 프롬프트를 대체합니다. `Bash(git push *)`와 같은 콘텐츠 범위 ask 규칙은 여전히 프롬프트를 강제하고, 명시적 deny 규칙은 여전히 적용되며, `/`, 홈 디렉터리 또는 기타 중요한 시스템 경로를 대상으로 하는 `rm` 또는 `rmdir` 명령은 여전히 프롬프트를 트리거합니다. 제외된 명령과 같이 샌드박스에서 실행되지 않는 명령은 일반적인 `Bash` ask 규칙을 따릅니다. [샌드박스 모드](/ko/sandboxing#sandbox-modes)를 참조하여 이 동작을 변경합니다.435샌드박싱이 `autoAllowBashIfSandboxed: true`로 활성화되면(기본값), 권한에 `Bash` ask 규칙이 포함되어 있거나 [동등한 `Bash(*)` 형식](#match-all-uses-of-a-tool)이 포함되어 있어도 샌드박스된 Bash 명령은 프롬프트 없이 실행됩니다. 샌드박스 경계는 전체 도구 프롬프트를 대체합니다. 다음 검사가 여전히 적용됩니다:

436 

437* `Bash(git push *)`와 같은 콘텐츠 범위 ask 규칙은 여전히 프롬프트를 강제합니다

438* 명시적 deny 규칙은 여전히 적용됩니다

439* `/`, 홈 디렉터리 또는 기타 중요한 시스템 경로를 대상으로 하는 `rm` 또는 `rmdir` 명령은 여전히 프롬프트를 트리거합니다

440 

441제외된 명령과 같이 샌드박스에서 실행되지 않는 명령은 일반적인 `Bash` ask 규칙을 따릅니다. [샌드박스 모드](/ko/sandboxing#sandbox-modes)를 참조하여 이 동작을 변경합니다.

432 442 

433<h2 id="managed-settings">443<h2 id="managed-settings">

434 관리형 설정444 관리형 설정

435</h2>445</h2>

436 446 

437Claude Code 구성에 대한 중앙 집중식 제어가 필요한 조직의 경우, 관리자는 사용자 또는 프로젝트 설정으로 재정의할 수 없는 관리형 설정을 배포할 수 있습니다. 이러한 정책 설정은 일반 설정 파일과 동일한 형식을 따르며 MDM/OS 수준 정책, 관리형 설정 파일 또는 [서버 관리형 설정](/ko/server-managed-settings) 통해 전달될 수 있습니다. 전달 메커니즘 및 파일 위치는 [설정 파일](/ko/settings#settings-files)을 참조합니다.447Claude Code 구성에 대한 중앙 집중식 제어가 필요한 조직의 경우, 관리자는 사용자 또는 프로젝트 설정으로 재정의할 수 없는 관리형 설정을 배포할 수 있습니다. 이러한 정책 설정은 일반 설정 파일과 동일한 형식을 따르며 MDM/OS 수준 정책, 관리형 설정 파일, [서버 관리형 설정](/ko/server-managed-settings) 또는 자체 호스팅 [Claude 앱 게이트웨이](/ko/claude-apps-gateway)를 통해 전달될 수 있습니다. 전달 메커니즘 및 파일 위치는 [설정 파일](/ko/settings#settings-files)을 참조합니다.

438 448 

439<h3 id="managed-only-settings">449<h3 id="managed-only-settings">

440 관리형 전용 설정450 관리형 전용 설정


443다음 설정은 관리형 설정에서만 읽혀집니다. 사용자 또는 프로젝트 설정 파일에 배치하면 효과가 없습니다.453다음 설정은 관리형 설정에서만 읽혀집니다. 사용자 또는 프로젝트 설정 파일에 배치하면 효과가 없습니다.

444 454 

445| 설정 | 설명 |455| 설정 | 설명 |

446| :--------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |456| :--------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

447| `allowAllClaudeAiMcps` | `true`일 때, claude.ai 커넥터는 배포된 `managed-mcp.json`과 함께 로드되며 그 배타적 제어에 의해 억제되지 않습니다. [관리형 MCP 구성](/ko/managed-mcp) 참조 |457| `allowAllClaudeAiMcps` | `true`일 때, claude.ai 커넥터는 배포된 `managed-mcp.json`과 함께 로드되며 그 배타적 제어에 의해 억제되지 않습니다. [관리형 MCP 구성](/ko/managed-mcp) 참조 |

448| `allowedChannelPlugins` | 메시지를 푸시할 수 있는 채널 플러그인의 허용 목록입니다. `channelsEnabled: true`가 필요할 때 기본 Anthropic 허용 목록을 대체합니다. [채널 플러그인이 실행될 수 있는 것을 제한합니다](/ko/channels#restrict-which-channel-plugins-can-run) 참조 |458| `allowedChannelPlugins` | 메시지를 푸시할 수 있는 채널 플러그인의 허용 목록입니다. `channelsEnabled: true`가 필요할 때 기본 Anthropic 허용 목록을 대체합니다. [채널 플러그인이 실행될 수 있는 것을 제한합니다](/ko/channels#restrict-which-channel-plugins-can-run) 참조 |

449| `allowManagedHooksOnly` | `true`일 때, 관리형 훅, SDK 훅 및 관리형 설정 `enabledPlugins`에서 강제 활성화된 플러그인의 훅만 로드됩니다. 사용자, 프로젝트 및 다른 모든 플러그인 훅은 차단됩니다 |459| `allowManagedHooksOnly` | `true`일 때, 관리형 훅, SDK 훅 및 관리형 설정 `enabledPlugins`에서 강제 활성화된 플러그인의 훅만 로드됩니다. 사용자, 프로젝트 및 다른 모든 플러그인 훅은 차단됩니다 |


451| `allowManagedPermissionRulesOnly` | `true`일 때, 사용자 및 프로젝트 설정이 `allow`, `ask` 또는 `deny` 권한 규칙을 정의하는 것을 방지합니다. 관리형 설정의 규칙만 적용됩니다. MCP 서버 허용 목록에는 영향을 주지 않습니다. 그 경우 `allowManagedMcpServersOnly`를 설정합니다 |461| `allowManagedPermissionRulesOnly` | `true`일 때, 사용자 및 프로젝트 설정이 `allow`, `ask` 또는 `deny` 권한 규칙을 정의하는 것을 방지합니다. 관리형 설정의 규칙만 적용됩니다. MCP 서버 허용 목록에는 영향을 주지 않습니다. 그 경우 `allowManagedMcpServersOnly`를 설정합니다 |

452| `blockedMarketplaces` | 마켓플레이스 소스의 차단 목록입니다. 차단된 소스는 다운로드 전에 확인되므로 파일 시스템에 닿지 않습니다. [관리형 마켓플레이스 제한](/ko/plugin-marketplaces#managed-marketplace-restrictions) 참조 |462| `blockedMarketplaces` | 마켓플레이스 소스의 차단 목록입니다. 차단된 소스는 다운로드 전에 확인되므로 파일 시스템에 닿지 않습니다. [관리형 마켓플레이스 제한](/ko/plugin-marketplaces#managed-marketplace-restrictions) 참조 |

453| `channelsEnabled` | 조직을 위한 [채널](/ko/channels)을 허용합니다. 각 플랜의 기본값은 [엔터프라이즈 제어](/ko/channels#enterprise-controls)를 참조합니다 |463| `channelsEnabled` | 조직을 위한 [채널](/ko/channels)을 허용합니다. 각 플랜의 기본값은 [엔터프라이즈 제어](/ko/channels#enterprise-controls)를 참조합니다 |

464| `disableSideloadFlags` | {/* min-version: 2.1.193 */}`--plugin-dir`, `--plugin-url`, `--agents` 및 `--mcp-config` CLI 플래그를 시작 시 거부합니다. 이것이 없으면 사용자는 이러한 플래그를 전달하여 단일 실행을 위해 `strictKnownMarketplaces`를 우회할 수 있습니다. [`disableSideloadFlags`](/ko/settings#available-settings) 참조. Claude Code v2.1.193 이상이 필요합니다 |

454| `forceRemoteSettingsRefresh` | `true`일 때, 원격 관리형 설정이 새로 가져올 때까지 CLI 시작을 차단하고 가져오기에 실패하면 종료합니다. [실패 폐쇄 적용](/ko/server-managed-settings#enforce-fail-closed-startup) 참조 |465| `forceRemoteSettingsRefresh` | `true`일 때, 원격 관리형 설정이 새로 가져올 때까지 CLI 시작을 차단하고 가져오기에 실패하면 종료합니다. [실패 폐쇄 적용](/ko/server-managed-settings#enforce-fail-closed-startup) 참조 |

455| `pluginTrustMessage` | 설치 전에 표시되는 플러그인 신뢰 경고에 추가되는 사용자 정의 메시지 |466| `pluginTrustMessage` | 설치 전에 표시되는 플러그인 신뢰 경고에 추가되는 사용자 정의 메시지 |

456| `sandbox.filesystem.allowManagedReadPathsOnly` | `true`일 때, 관리형 설정의 `filesystem.allowRead` 경로만 존중됩니다. `denyRead`는 여전히 모든 소스에서 병합됩니다 |467| `sandbox.filesystem.allowManagedReadPathsOnly` | `true`일 때, 관리형 설정의 `filesystem.allowRead` 경로만 존중됩니다. `denyRead`는 여전히 모든 소스에서 병합됩니다 |


462`disableBypassPermissionsMode`는 일반적으로 조직 정책을 적용하기 위해 관리형 설정에 배치되지만 모든 범위에서 작동합니다. 사용자는 자신의 설정에서 이를 설정하여 자신을 우회 모드에서 잠글 수 있습니다.473`disableBypassPermissionsMode`는 일반적으로 조직 정책을 적용하기 위해 관리형 설정에 배치되지만 모든 범위에서 작동합니다. 사용자는 자신의 설정에서 이를 설정하여 자신을 우회 모드에서 잠글 수 있습니다.

463 474 

464<Note>475<Note>

465 Team 및 Enterprise 플랜에서 관리자는 [Claude Code 관리자 설정](https://claude.ai/admin-settings/claude-code)에서 [Remote Control](/ko/remote-control) 및 [웹 세션](/ko/claude-code-on-the-web)을 조직 전체에서 활성화하거나 비활성화합니다. Remote Control은 [`disableRemoteControl`](/ko/settings#available-settings) 관리형 설정으로 장치별로 추가로 비활성화할 수 있습니다. 웹 세션에는 장치별 관리형 설정 키가 없습니다.476 Team 및 Enterprise 플랜에서 Owner는 [Claude Code 관리자 설정](https://claude.ai/admin-settings/claude-code)에서 [Remote Control](/ko/remote-control) 및 [웹 세션](/ko/claude-code-on-the-web)을 조직 전체에서 활성화하거나 비활성화합니다. Remote Control은 [`disableRemoteControl`](/ko/settings#available-settings) 설정으로 장치별로 추가로 비활성화할 수 있습니다. 웹 세션에는 장치별 관리형 설정 키가 없습니다.

466</Note>477</Note>

467 478 

468<h2 id="settings-precedence">479<h2 id="settings-precedence">


479 490 

480도구가 어느 수준에서든 거부되면 다른 수준은 이를 허용할 수 없습니다. 예를 들어, 관리형 설정 deny는 `--allowedTools`로 재정의할 수 없으며, `--disallowedTools`는 관리형 설정이 정의하는 것 이상의 제한을 추가할 수 있습니다.491도구가 어느 수준에서든 거부되면 다른 수준은 이를 허용할 수 없습니다. 예를 들어, 관리형 설정 deny는 `--allowedTools`로 재정의할 수 없으며, `--disallowedTools`는 관리형 설정이 정의하는 것 이상의 제한을 추가할 수 있습니다.

481 492 

482Embedding hosts는 [`parentSettingsBehavior`](/ko/settings#settings-precedence)가 `"merge"`로 설정되어 있을 SDK `managedSettings` 옵션을 통해 추가 관리형 정책을 제공할 있습니다. Embedder 값은 정책을 강화할 있지만 완화할 수는 없습니다.493설정 범위 전체에서도 동일하게 적용됩니다: 사용자 설정에서 권한을 허용하고 프로젝트 설정에서 거부하면, deny 규칙이 이를 차단합니다. 그 반대도 마찬가지입니다: 사용자 수준의 deny는 프로젝트 수준의 allow를 차단합니다. 왜냐하면 모든 범위의 deny 규칙이 allow 규칙보다 먼저 평가되기 때문입니다.

483 494 

484예를 들어, 사용자 설정에서 도구가 허용되고 프로젝트 설정에서 거부되면, deny 규칙이 이를 차단합니다. 반대도 마찬가지입니다: 사용자 수준의 deny는 프로젝트 수준의 allow를 차단합니다. 왜냐하면 모든 범위의 deny 규칙이 allow 규칙보다 먼저 평가되기 때문입니다.495Embedding hosts는 [`parentSettingsBehavior`](/ko/settings#settings-precedence)가 `"merge"`로 설정되어 있을 SDK `managedSettings` 옵션을 통해 추가 관리형 정책을 제공할 있습니다. Embedder 값은 정책을 강화할 있지만 완화할 수는 없습니다.

485 496 

486<h2 id="example-configurations">497<h2 id="example-configurations">

487 예시 구성498 예시 구성

Details

102 102 

103`{ "name": "secrets-vault", "version": "~2.1.0" }`을 선언하는 플러그인을 설치하면 Claude Code는 마켓플레이스의 태그를 나열하고, `secrets-vault--v`로 시작하는 태그로 필터링하고, `~2.1.0`을 만족하는 가장 높은 버전을 가져옵니다. 일치하는 태그가 없으면 종속 플러그인은 사용 가능한 버전을 나열하는 오류로 비활성화됩니다.103`{ "name": "secrets-vault", "version": "~2.1.0" }`을 선언하는 플러그인을 설치하면 Claude Code는 마켓플레이스의 태그를 나열하고, `secrets-vault--v`로 시작하는 태그로 필터링하고, `~2.1.0`을 만족하는 가장 높은 버전을 가져옵니다. 일치하는 태그가 없으면 종속 플러그인은 사용 가능한 버전을 나열하는 오류로 비활성화됩니다.

104 104 

105로컬 폴더 경로로 추가된 마켓플레이스는 폴더가 git 저장소일 때 동일한 방식으로 태그를 해결합니다. 이는 Claude Code v2.1.196 이상이 필요합니다. 두 가지 경우에 Claude Code는 폴더의 현재 콘텐츠에서 종속성을 설치합니다:

106 

107* 이전 버전은 로컬 폴더 마켓플레이스에서 태그를 읽지 않으므로 제약된 종속성은 해당 복사본이 범위를 만족할 때만 로드됩니다.

108* git 저장소가 아닌 로컬 폴더는 버전에 관계없이 태그가 없습니다.

109 

105해결된 태그의 semver는 `plugin.json`의 `version`과 별도로 기록되므로 제약 확인은 해당 커밋의 `plugin.json`에 오래된 값이 있더라도 실제로 가져온 태그를 사용합니다. 태그 해결 설치를 위한 캐시 디렉터리 이름에는 12자 커밋-SHA 접미사가 포함되므로 유지 관리자가 태그를 다른 커밋으로 강제 이동하면 다음 설치는 오래된 콘텐츠를 재사용하는 대신 새로운 캐시 디렉터리를 가져옵니다.110해결된 태그의 semver는 `plugin.json`의 `version`과 별도로 기록되므로 제약 확인은 해당 커밋의 `plugin.json`에 오래된 값이 있더라도 실제로 가져온 태그를 사용합니다. 태그 해결 설치를 위한 캐시 디렉터리 이름에는 12자 커밋-SHA 접미사가 포함되므로 유지 관리자가 태그를 다른 커밋으로 강제 이동하면 다음 설치는 오래된 콘텐츠를 재사용하는 대신 새로운 캐시 디렉터리를 가져옵니다.

106 111 

107<Note>112<Note>

Details

6 6 

7> Claude Code 확장 프로그램을 팀과 커뮤니티에 배포하기 위한 플러그인 마켓플레이스를 구축하고 호스팅합니다.7> Claude Code 확장 프로그램을 팀과 커뮤니티에 배포하기 위한 플러그인 마켓플레이스를 구축하고 호스팅합니다.

8 8 

9**플러그인 마켓플레이스**는 다른 사용자에게 플러그인을 배포할 수 있는 카탈로그입니다. 마켓플레이스는 중앙 집중식 검색, 버전 추적, 자동 업데이트 및 여러 소스 유형(git 저장소, 로컬 경로 등)을 지원합니다. 이 가이드에서는 팀이나 커뮤니티와 플러그인을 공유하기 위해 자신의 마켓플레이스를 만드는 방법을 보여줍니다.9**플러그인 마켓플레이스**는 다른 사용자에게 플러그인을 배포할 수 있는 카탈로그입니다. 마켓플레이스는 중앙 집중식 검색, 버전 추적, 자동 업데이트 및 git 저장소와 로컬 경로를 포함한 여러 소스 유형을 지원합니다. 이 가이드에서는 팀이나 커뮤니티와 플러그인을 공유하기 위해 자신의 마켓플레이스를 만드는 방법을 보여줍니다.

10 10 

11기존 마켓플레이스에서 플러그인을 설치하려고 하시나요? [미리 빌드된 플러그인 검색 및 설치](/ko/discover-plugins)를 참조하세요.11기존 마켓플레이스에서 플러그인을 설치하려고 하시나요? [미리 빌드된 플러그인 검색 및 설치](/ko/discover-plugins)를 참조하세요.

12 12 


17마켓플레이스를 생성하고 배포하는 과정은 다음과 같습니다:17마켓플레이스를 생성하고 배포하는 과정은 다음과 같습니다:

18 18 

191. **플러그인 생성**: skills, 에이전트, hooks, MCP 서버 또는 LSP 서버를 사용하여 하나 이상의 플러그인을 빌드합니다. 이 가이드에서는 배포할 플러그인이 이미 있다고 가정합니다. 플러그인 생성 방법에 대한 자세한 내용은 [플러그인 생성](/ko/plugins)을 참조하세요.191. **플러그인 생성**: skills, 에이전트, hooks, MCP 서버 또는 LSP 서버를 사용하여 하나 이상의 플러그인을 빌드합니다. 이 가이드에서는 배포할 플러그인이 이미 있다고 가정합니다. 플러그인 생성 방법에 대한 자세한 내용은 [플러그인 생성](/ko/plugins)을 참조하세요.

202. **마켓플레이스 파일 생성**: 플러그인을 나열하고 플러그인을 찾을 위치를 정의하는 `marketplace.json`을 정의합니다([마켓플레이스 파일 생성](#create-the-marketplace-file) 참조).202. **마켓플레이스 파일 생성**: 플러그인을 나열하고 플러그인을 찾을 위치를 정의하는 `marketplace.json`을 정의합니다. [마켓플레이스 파일 생성](#create-the-marketplace-file) 참조하세요.

213. **마켓플레이스 호스팅**: GitHub, GitLab 또는 다른 git 호스트에 푸시합니다([마켓플레이스 호스팅 및 배포](#host-and-distribute-marketplaces) 참조).213. **마켓플레이스 호스팅**: GitHub, GitLab 또는 다른 git 호스트에 푸시합니다. [마켓플레이스 호스팅 및 배포](#host-and-distribute-marketplaces) 참조하세요.

224. **사용자와 공유**: 사용자가 `/plugin marketplace add`로 마켓플레이스를 추가하고 개별 플러그인을 설치합니다([플러그인 검색 및 설치](/ko/discover-plugins) 참조).224. **사용자와 공유**: 사용자가 `/plugin marketplace add`로 마켓플레이스를 추가하고 개별 플러그인을 설치합니다. [플러그인 검색 및 설치](/ko/discover-plugins) 참조하세요.

23 23 

24마켓플레이스가 라이브 상태가 되면 저장소에 변경 사항을 푸시하여 업데이트할 수 있습니다. 사용자는 `/plugin marketplace update`로 로컬 복사본을 새로 고칩니다.24마켓플레이스가 라이브 상태가 되면 저장소에 변경 사항을 푸시하여 업데이트할 수 있습니다. 사용자는 `/plugin marketplace update`로 로컬 복사본을 새로 고칩니다.

25 25 


43 43 

44 ```markdown my-marketplace/plugins/quality-review-plugin/skills/quality-review/SKILL.md theme={null}44 ```markdown my-marketplace/plugins/quality-review-plugin/skills/quality-review/SKILL.md theme={null}

45 ---45 ---

46 description: 버그, 보안 성능에 대한 코드 검토46 description: Review code for bugs, security, and performance

47 disable-model-invocation: true

48 ---47 ---

49 48 

50 선택한 코드 또는 최근 변경 사항을 다음 항목에 대해 검토합니다:49 선택한 코드 또는 최근 변경 사항을 다음 항목에 대해 검토합니다:


63 ```json my-marketplace/plugins/quality-review-plugin/.claude-plugin/plugin.json theme={null}62 ```json my-marketplace/plugins/quality-review-plugin/.claude-plugin/plugin.json theme={null}

64 {63 {

65 "name": "quality-review-plugin",64 "name": "quality-review-plugin",

66 "description": "빠른 코드 리뷰를 위한 quality-review skill 추가",65 "description": "Adds a quality-review skill for quick code reviews",

67 "version": "1.0.0"66 "version": "1.0.0"

68 }67 }

69 ```68 ```


86 {85 {

87 "name": "quality-review-plugin",86 "name": "quality-review-plugin",

88 "source": "./plugins/quality-review-plugin",87 "source": "./plugins/quality-review-plugin",

89 "description": "빠른 코드 리뷰를 위한 quality-review skill 추가"88 "description": "Adds a quality-review skill for quick code reviews"

90 }89 }

91 ]90 ]

92 }91 }


125 124 

126저장소 루트에 `.claude-plugin/marketplace.json`을 생성합니다. 이 파일은 마켓플레이스의 이름, 소유자 정보 및 소스가 있는 플러그인 목록을 정의합니다.125저장소 루트에 `.claude-plugin/marketplace.json`을 생성합니다. 이 파일은 마켓플레이스의 이름, 소유자 정보 및 소스가 있는 플러그인 목록을 정의합니다.

127 126 

128각 플러그인 항목에는 최소한 `name`과 `source`(가져올 위치)가 필요합니다. 사용 가능한 모든 필드는 아래의 [전체 스키마](#marketplace-schema)를 참조하세요.127각 플러그인 항목에는 최소한 `name`과 `source`(Claude Code가 가져올 위치를 알려주는)가 필요합니다. 사용 가능한 모든 필드는 아래의 [전체 스키마](#marketplace-schema)를 참조하세요.

129 128 

130```json theme={null}129```json theme={null}

131{130{


188</h3>187</h3>

189 188 

190| 필드 | 유형 | 설명 |189| 필드 | 유형 | 설명 |

191| :------------------------------------ | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |190| :------------------------------------ | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

192| `$schema` | string | 편집기 자동 완성 및 유효성 검사를 위한 JSON Schema URL입니다. Claude Code는 로드 시 이 필드를 무시합니다. |191| `$schema` | string | 편집기 자동 완성 및 유효성 검사를 위한 JSON Schema URL입니다. Claude Code는 로드 시 이 필드를 무시합니다. |

193| `description` | string | 간단한 마켓플레이스 설명 |192| `description` | string | 간단한 마켓플레이스 설명 |

194| `version` | string | 마켓플레이스 매니페스트 버전 |193| `version` | string | 마켓플레이스 매니페스트 버전 |

195| `metadata.pluginRoot` | string | 상대 플러그인 소스 경로에 앞에 붙는 기본 디렉터리(예: `"./plugins"`를 사용하면 `"source": "./plugins/formatter"` 대신 `"source": "formatter"`를 작성할 수 있습니다) |194| `metadata.pluginRoot` | string | 상대 플러그인 소스 경로에 앞에 붙는 기본 디렉터리(예: `"./plugins"`를 사용하면 `"source": "./plugins/formatter"` 대신 `"source": "formatter"`를 작성할 수 있습니다) |

196| `allowCrossMarketplaceDependenciesOn` | array | 이 마켓플레이스의 플러그인이 의존할 수 있는 다른 마켓플레이스입니다. 여기에 나열되지 않은 마켓플레이스의 종속성은 설치 시 차단됩니다. [다른 마켓플레이스의 플러그인에 의존](/ko/plugin-dependencies#depend-on-a-plugin-from-another-marketplace)을 참조하세요. |195| `allowCrossMarketplaceDependenciesOn` | array | 이 마켓플레이스의 플러그인이 의존할 수 있는 다른 마켓플레이스입니다. 여기에 나열되지 않은 마켓플레이스의 종속성은 설치 시 차단됩니다. [다른 마켓플레이스의 플러그인에 의존](/ko/plugin-dependencies#depend-on-a-plugin-from-another-marketplace)을 참조하세요. |

196| `renames` | object | {/* min-version: 2.1.193 */}이전 플러그인 `name`을 현재 이름으로 매핑하거나, 플러그인이 제거된 경우 `null`로 매핑합니다. `plugins`의 항목을 이름 변경하거나 제거할 때 기존 사용자가 자동으로 마이그레이션되도록 합니다. [플러그인 이름 변경 또는 제거](#rename-or-remove-a-plugin)를 참조하세요. Claude Code v2.1.193 이상이 필요합니다. |

197 197 

198`description` 및 `version`은 이전 버전과의 호환성을 위해 `metadata` 아래에서도 허용됩니다.198`description` 및 `version`은 이전 버전과의 호환성을 위해 `metadata` 아래에서도 허용됩니다.

199 199 


251 251 

252플러그인 소스는 Claude Code에 마켓플레이스에 나열된 각 개별 플러그인을 가져올 위치를 알려줍니다. 이는 `marketplace.json`의 각 플러그인 항목의 `source` 필드에 설정됩니다.252플러그인 소스는 Claude Code에 마켓플레이스에 나열된 각 개별 플러그인을 가져올 위치를 알려줍니다. 이는 `marketplace.json`의 각 플러그인 항목의 `source` 필드에 설정됩니다.

253 253 

254플러그인이 로컬 머신에 복제되거나 복사되면 `~/.claude/plugins/cache`의 로컬 버전 관리 플러그인 캐시에 복사됩니다.254Claude Code가 플러그인을 로컬 머신에 복제하거나 다운로드한 후, 플러그인을 `~/.claude/plugins/cache`의 로컬 버전 관리 플러그인 캐시에 복사합니다.

255 255 

256| 소스 | 유형 | 필드 | 참고 |256| 소스 | 유형 | 필드 | 참고 |

257| ------------ | ----------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------ |257| ------------ | ----------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------ |


264<Note>264<Note>

265 **마켓플레이스 소스 vs 플러그인 소스**: 이는 다양한 것을 제어하는 다양한 개념입니다.265 **마켓플레이스 소스 vs 플러그인 소스**: 이는 다양한 것을 제어하는 다양한 개념입니다.

266 266 

267 * **마켓플레이스 소스** `marketplace.json` 카탈로그 자체를 가져올 위치. 사용자가 `/plugin marketplace add`를 실행하거나 `extraKnownMarketplaces` 설정에서 설정합니다. `ref`(분기/태그)를 지원하지만 `sha`는 지원하지 않습니다.267 * **마켓플레이스 소스**: `marketplace.json` 카탈로그 자체를 가져올 위치. 사용자가 `/plugin marketplace add`를 실행하거나 `extraKnownMarketplaces` 설정에서 설정합니다. `ref`(분기/태그)를 지원하지만 `sha`는 지원하지 않습니다.

268 * **플러그인 소스** 마켓플레이스에 나열된 개별 플러그인을 가져올 위치. `marketplace.json` 내의 각 플러그인 항목의 `source` 필드에 설정됩니다. `ref`(분기/태그)와 `sha`(정확한 커밋) 모두를 지원합니다.268 * **플러그인 소스**: 마켓플레이스에 나열된 개별 플러그인을 가져올 위치. `marketplace.json` 내의 각 플러그인 항목의 `source` 필드에 설정됩니다. `ref`(분기/태그)와 `sha`(정확한 커밋) 모두를 지원합니다.

269 269 

270 예를 들어, `acme-corp/plugin-catalog`에서 호스팅되는 마켓플레이스(마켓플레이스 소스)는 `acme-corp/code-formatter`에서 가져온 플러그인을 나열할 수 있습니다(플러그인 소스). 마켓플레이스 소스와 플러그인 소스는 다양한 저장소를 가리키며 독립적으로 고정됩니다.270 예를 들어, `acme-corp/plugin-catalog`에서 호스팅되는 마켓플레이스(마켓플레이스 소스)는 `acme-corp/code-formatter`에서 가져온 플러그인을 나열할 수 있습니다(플러그인 소스). 마켓플레이스 소스와 플러그인 소스는 다양한 저장소를 가리키며 독립적으로 고정됩니다.

271</Note>271</Note>

272 272 

273git 기반 소스 유형은 아래의 `github`, `url`, 및 `git-subdir`입니다. `ref`와 `sha`가 모두 설정되면 `sha`가 유효한 핀입니다. Claude Code는 고정된 커밋을 직접 가져오고 체크아웃합니다. GitHub, GitLab, Bitbucket을 포함한 대부분의 git 호스트에서 이는 분기 또는 태그가 업스트림에서 삭제되었더라도 커밋이 저장소에서 여전히 도달 가능한 한 설치가 성공함을 의미합니다. AWS CodeCommit과 같은 일부 서버는 SHA로 커밋을 가져오는 것을 지원하지 않습니다. 이러한 서버에서는 `ref`가 여전히 존재해야 하고 고정된 커밋이 이로부터 도달 가능해야 합니다.273아래의 git 기반 소스 유형은 `github`, `url`, 및 `git-subdir`입니다. `ref`와 `sha`가 모두 설정되면 `sha`가 유효한 핀입니다. Claude Code는 고정된 커밋을 직접 가져오고 체크아웃합니다.

274 

275GitHub, GitLab, Bitbucket을 포함한 대부분의 git 호스트에서 이는 분기 또는 태그가 업스트림에서 삭제되었더라도 커밋이 저장소에서 여전히 도달 가능한 한 설치가 성공함을 의미합니다. AWS CodeCommit과 같은 일부 서버는 SHA로 커밋을 가져오는 것을 지원하지 않습니다. 이러한 서버에서는 `ref`가 여전히 존재해야 하고 고정된 커밋이 이로부터 도달 가능해야 합니다.

274 276 

275<h3 id="relative-paths">277<h3 id="relative-paths">

276 상대 경로278 상대 경로


288경로는 마켓플레이스 루트(`.claude-plugin/`을 포함하는 디렉터리)에 상대적으로 해석됩니다. 위의 예에서 `./plugins/my-plugin`은 `marketplace.json`이 `<repo>/.claude-plugin/marketplace.json`에 있더라도 `<repo>/plugins/my-plugin`을 가리킵니다. 마켓플레이스 루트 외부로 나가기 위해 `../`를 사용하지 마세요.290경로는 마켓플레이스 루트(`.claude-plugin/`을 포함하는 디렉터리)에 상대적으로 해석됩니다. 위의 예에서 `./plugins/my-plugin`은 `marketplace.json`이 `<repo>/.claude-plugin/marketplace.json`에 있더라도 `<repo>/plugins/my-plugin`을 가리킵니다. 마켓플레이스 루트 외부로 나가기 위해 `../`를 사용하지 마세요.

289 291 

290<Note>292<Note>

291 상대 경로는 사용자가 Git(GitHub, GitLab 또는 git URL)을 통해 마켓플레이스를 추가할 때만 작동합니다. 사용자가 `marketplace.json` 파일에 대한 직접 URL을 통해 마켓플레이스를 추가하면 상대 경로가 올바르게 해석되지 않습니다. URL 기반 배포의 경우 GitHub, npm 또는 git URL 소스를 대신 사용합니다. 자세한 내용은 [문제 해결](#plugins-with-relative-paths-fail-in-url-based-marketplaces)을 참조하세요.293 상대 경로는 git 소스 또는 로컬 디렉터리에서 마켓플레이스를 추가할 작동하므로, `marketplace.json` 파일에 대한 직접 URL을 통해 마켓플레이스를 추가하면 상대 경로가 해석되지 않습니다. 왜냐하면 해당 파일만 다운로드되기 때문입니다. URL 기반 배포의 경우 GitHub, npm 또는 git URL 소스를 대신 사용합니다. 자세한 내용은 [문제 해결](#plugins-with-relative-paths-fail-in-url-based-marketplaces)을 참조하세요.

292</Note>294</Note>

293 295 

294<h3 id="github-repositories">296<h3 id="github-repositories">


547 GitHub에서 호스팅(권장)549 GitHub에서 호스팅(권장)

548</h3>550</h3>

549 551 

550GitHub는 가장 쉬운 배포 방법을 제공합니다:552GitHub는 마켓플레이스를 호스팅하고 배포하는 권장 방법입니다:

551 553 

5521. **저장소 생성**: 마켓플레이스를 위한 새 저장소 설정5541. **저장소 생성**: 마켓플레이스를 위한 새 저장소 설정

5532. **마켓플레이스 파일 추가**: 플러그인 정의와 함께 `.claude-plugin/marketplace.json` 생성5552. **마켓플레이스 파일 추가**: 플러그인 정의와 함께 `.claude-plugin/marketplace.json` 생성


596공유하기 전에 마켓플레이스를 로컬에서 테스트합니다:598공유하기 전에 마켓플레이스를 로컬에서 테스트합니다:

597 599 

598```shell theme={null}600```shell theme={null}

599/plugin marketplace add ./my-local-marketplace601/plugin marketplace add ./my-marketplace

600/plugin install test-plugin@my-local-marketplace602/plugin install quality-review-plugin@my-plugins

601```603```

602 604 

603추가 명령어의 전체 범위(GitHub, Git URL, 로컬 경로, 원격 URL)는 [마켓플레이스 추가](/ko/discover-plugins#add-marketplaces)를 참조하세요.605추가 명령어의 전체 범위(GitHub, Git URL, 로컬 경로, 원격 URL)는 [마켓플레이스 추가](/ko/discover-plugins#add-marketplaces)를 참조하세요.


680 관리되는 마켓플레이스 제한682 관리되는 마켓플레이스 제한

681</h3>683</h3>

682 684 

683플러그인 소스에 대한 엄격한 제어가 필요한 조직의 경우 관리자는 관리되는 설정에서 [`strictKnownMarketplaces`](/ko/settings#strictknownmarketplaces) 설정을 사용하여 사용자가 추가할 수 있는 플러그인 마켓플레이스를 제한할 수 있습니다.685플러그인 소스에 대한 엄격한 제어가 필요한 조직의 경우 관리자는 관리되는 설정에서 [`strictKnownMarketplaces`](/ko/settings#strictknownmarketplaces) 설정을 사용하여 사용자가 추가할 수 있는 플러그인 마켓플레이스를 제한할 수 있습니다. CLI 플래그를 거부하여 단일 실행을 위해 플러그인, 에이전트 및 MCP 서버를 사이드로드하려면 [`disableSideloadFlags`](/ko/settings#available-settings)와 쌍을 이룹니다.

684 686 

685`strictKnownMarketplaces`가 관리되는 설정에서 구성되면 제한 동작은 값에 따라 달라집니다:687`strictKnownMarketplaces`가 관리되는 설정에서 구성되면 제한 동작은 값에 따라 달라집니다:

686 688 


881 883 

882플러그인은 의존성에 대한 semver 범위를 제한하여 의존성 업데이트가 종속 플러그인을 손상시키지 않도록 할 수 있습니다. `{plugin-name}--v{version}` git 태그 규칙, 범위 구문 및 동일한 의존성에 대한 여러 제약 조건이 어떻게 결합되는지에 대해서는 [플러그인 의존성 버전 제한](/ko/plugin-dependencies)을 참조하세요.884플러그인은 의존성에 대한 semver 범위를 제한하여 의존성 업데이트가 종속 플러그인을 손상시키지 않도록 할 수 있습니다. `{plugin-name}--v{version}` git 태그 규칙, 범위 구문 및 동일한 의존성에 대한 여러 제약 조건이 어떻게 결합되는지에 대해서는 [플러그인 의존성 버전 제한](/ko/plugin-dependencies)을 참조하세요.

883 885 

886<h3 id="rename-or-remove-a-plugin">

887 플러그인 이름 바꾸기 또는 제거

888</h3>

889 

890플러그인의 `name`은 안정적인 식별자입니다. 사용자는 `enabledPlugins`, `pluginConfigs` 및 `/plugin install` 명령에서 이를 참조하므로 변경하면 모든 기존 설치가 손상됩니다. UI에 표시되는 레이블을 설치를 손상시키지 않고 변경하려면 [`displayName`](#optional-plugin-fields)을 설정하고 `name`을 변경하지 않은 상태로 유지합니다.

891 

892플러그인의 `name`을 변경하거나 `plugins` 배열에서 플러그인을 제거해야 하는 경우 최상위 `renames` 항목을 추가하여 기존 사용자가 `plugin-not-found` 오류를 보는 대신 마이그레이션하도록 합니다. 자동 마이그레이션에는 Claude Code v2.1.193 이상이 필요합니다. 각 이전 이름을 현재 이름으로 매핑하거나 플러그인이 더 이상 존재하지 않으면 `null`로 매핑합니다. 다음 예제는 `formatter`를 `code-formatter`로 이름을 바꾸고 `legacy-linter`가 제거되었음을 기록합니다:

893 

894```json theme={null}

895{

896 "name": "acme-tools",

897 "owner": { "name": "Acme" },

898 "plugins": [

899 { "name": "code-formatter", "source": "./plugins/code-formatter" }

900 ],

901 "renames": {

902 "formatter": "code-formatter",

903 "legacy-linter": null

904 }

905}

906```

907 

908사용자가 설정에 여전히 이전 이름이 있는 상태로 Claude Code를 시작하면 Claude Code는 `renames` 맵을 따릅니다:

909 

910* 항목이 새 이름을 가리키면 Claude Code는 플러그인을 새 이름으로 로드하고 `"acme-tools" 마켓플레이스에서 "code-formatter"로 이름이 바뀌었습니다`와 같은 한 줄 알림을 표시합니다. 그런 다음 `enabledPlugins` 및 `pluginConfigs` 모두에 대해 사용자, 프로젝트 및 로컬 설정 범위에서 이전 키를 새 키로 다시 작성하므로 알림이 한 번 나타납니다.

911* `null` 항목의 경우 Claude Code는 이전 키를 삭제하고 알림은 플러그인이 마켓플레이스에서 제거되었음을 보고합니다.

912* 이름이 바뀐 플러그인이 `github` 또는 `npm`과 같은 원격 소스를 사용하면 Claude Code는 이름 바꾸기 후 `plugin-cache-miss`를 보고하고 사용자는 새 이름으로 가져오기 위해 한 번 `/plugin install`을 실행해야 합니다.

913 

914`renames`를 추가 전용 기록으로 취급합니다. 모든 사용자가 마이그레이션했을 것으로 예상한 후에도 이전 항목을 제자리에 유지합니다. Claude Code는 체인을 따르므로 나중에 `code-formatter`를 `formatter-pro`로 이름을 바꾸면 첫 번째 항목을 편집하는 대신 두 번째 항목을 추가합니다. 여전히 원본 `formatter`가 활성화된 사용자는 두 항목을 모두 통해 `formatter-pro`로 해석됩니다.

915 

916맵을 편집한 후 `claude plugin validate .`를 실행합니다. 체인이 사이클을 형성하거나 `null` 또는 `plugins`에 나열된 이름으로 종료되지 않는 항목을 거부합니다.

917 

918<Note>

919 관리되는 설정 및 정책 설정은 Claude Code에 대해 읽기 전용이므로 거기에서 활성화된 플러그인은 자동으로 다시 작성될 수 없습니다. 이름이 바뀐 플러그인은 여전히 각 세션에서 로드되지만 관리자가 관리되는 설정 파일의 `enabledPlugins`을 새 이름으로 업데이트할 때까지 이름 바꾸기 알림이 반복됩니다. 동일한 사항이 `--add-dir`과 같은 다른 읽기 전용 소스를 통해 활성화된 플러그인에도 적용됩니다.

920</Note>

921 

922이전 버전의 Claude Code는 `renames` 필드를 무시하고 이전 이름에 대해 `plugin-not-found`를 보고합니다.

923 

884<h2 id="validation-and-testing">924<h2 id="validation-and-testing">

885 검증 및 테스트925 검증 및 테스트

886</h2>926</h2>


933 973 

934* `<source>`: GitHub `owner/repo` 단축형, git URL, `marketplace.json` 파일에 대한 원격 URL 또는 로컬 디렉터리 경로. 분기 또는 태그에 고정하려면 GitHub 단축형에 `@ref`를 추가하거나 git URL에 `#ref`를 추가합니다974* `<source>`: GitHub `owner/repo` 단축형, git URL, `marketplace.json` 파일에 대한 원격 URL 또는 로컬 디렉터리 경로. 분기 또는 태그에 고정하려면 GitHub 단축형에 `@ref`를 추가하거나 git URL에 `#ref`를 추가합니다

935 975 

976URL은 스킴을 포함해야 합니다. Claude Code v2.1.196부터 `gitlab.example.com/team/plugins`와 같이 스킴 없이 입력된 호스트는 잘못된 `owner/repo` 단축형으로 거부되며, 오류 메시지에서 `https://`를 추가하거나 로컬 경로의 경우 `./`를 사용하도록 지시합니다. 이전 버전에서는 이를 GitHub 저장소 경로로 잘못 읽고 GitHub 찾을 수 없음 오류로 클론 시간에 실패합니다.

977 

936**옵션:**978**옵션:**

937 979 

938| 옵션 | 설명 | 기본값 |980| 옵션 | 설명 | 기본값 |


1061 마켓플레이스 검증 오류1103 마켓플레이스 검증 오류

1062</h3>1104</h3>

1063 1105 

1064마켓플레이스 디렉터리에서 `claude plugin validate .` 또는 `/plugin validate .`를 실행하여 문제를 확인합니다. 마켓플레이스 디렉터리를 가리킬 때 검증자는 `marketplace.json`만 확인합니다: 스키마, 중복 플러그인 이름, 소스 경로 순회 참조된 `plugin.json` 대한 버전 불일치.1106마켓플레이스 디렉터리에서 `claude plugin validate .` 또는 `/plugin validate .`를 실행하여 문제를 확인합니다. 마켓플레이스 디렉터리를 가리킬 때 검증자는 `marketplace.json`에서 스키마 오류, 중복 플러그인 이름 소스 경로 순회를 확인합니다. `source`가 로컬 경로인 항목에 대해 해당 플러그인의 `plugin.json` 검증하고 항목의 `version`이 `plugin.json`의 버전과 일치하지 않을 때 경고합니다. 플러그인의 `plugin.json`에서 발견된 문제는 항목 인덱스 형식인 `plugins[2] plugin.json →`으로 접두사가 붙습니다.

1107 

1108Claude Code v2.1.196부터 항목별 통과는 다음을 포함합니다:

1109 

1110* `source`가 `.`인 플러그인 포함

1111* `marketplace.json`이 `.claude-plugin` 디렉터리 외부에 있을 때 실행되며, 파일 자체의 디렉터리에 대해 소스를 해석합니다

1112* 파일의 다른 부분에 스키마 오류가 있을 때도 각 항목의 문제를 보고합니다

1113 

1114이전 버전은 마켓플레이스 루트의 플러그인을 건너뛰고 `.claude-plugin/marketplace.json`에서만 내려갑니다.

1065 1115 

1066개별 플러그인의 `plugin.json` 및 해당 skill, agent, command 및 hook 파일을 검증하려면 플러그인 디렉터리 자체에 대해 명령을 실행합니다(예: `claude plugin validate ./plugins/my-plugin`). 일반적인 오류:1116개별 플러그인의 `plugin.json` 및 해당 skill, agent, command 및 hook 파일을 검증하려면 플러그인 디렉터리 자체에 대해 명령을 실행합니다(예: `claude plugin validate ./plugins/my-plugin`). 일반적인 오류:

1067 1117 


1078 1128 

1079* `Marketplace has no plugins defined`: `plugins` 배열에 최소한 하나의 플러그인 추가1129* `Marketplace has no plugins defined`: `plugins` 배열에 최소한 하나의 플러그인 추가

1080* `No marketplace description provided`: 사용자가 마켓플레이스를 이해하도록 돕기 위해 최상위 `description` 추가1130* `No marketplace description provided`: 사용자가 마켓플레이스를 이해하도록 돕기 위해 최상위 `description` 추가

1081* `Plugin name "x" is not kebab-case`: 플러그인 이름에 대문자, 공백 또는 특수 문자가 포함되어 있습니다. 소문자, 숫자 및 하이픈만 사용하도록 이름을 바꿉니다(예: `my-plugin`). Claude Code는 다른 형식을 허용하지만 Claude.ai 마켓플레이스 동기화는 이를 거부합니다.1131* `Plugin name "x" is not kebab-case`: 플러그인 이름에 대문자, 공백 또는 특수 문자가 포함되어 있습니다. 소문자, 숫자 및 하이픈만 사용하도록 이름을 바꿉니다(예: `my-plugin`). Claude Code는 다른 형식을 허용하지만 claude.ai 마켓플레이스 동기화는 이를 거부합니다.

1082 1132 

1083<h3 id="plugin-installation-failures">1133<h3 id="plugin-installation-failures">

1084 플러그인 설치 실패1134 플러그인 설치 실패

Details

477매니페스트를 포함하는 경우 `name`이 유일한 필수 필드입니다.477매니페스트를 포함하는 경우 `name`이 유일한 필수 필드입니다.

478 478 

479| 필드 | 타입 | 설명 | 예시 |479| 필드 | 타입 | 설명 | 예시 |

480| :----- | :----- | :------------------------- | :------------------- |480| :----- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------- |

481| `name` | string | 고유 식별자 (kebab-case, 공백 없음) | `"deployment-tools"` |481| `name` | string | 고유 식별자 (kebab-case, 공백 없음). [마켓플레이스 항목](/ko/plugin-marketplaces#plugin-entries)이 플러그인을 다른 이름으로 나열할 때 마켓플레이스 항목 이름이 `enabledPlugins` 키 및 `/plugin`이 사용하는 것입니다. | `"deployment-tools"` |

482 482 

483이 이름은 컴포넌트 네임스페이싱에 사용됩니다. 예를 들어 UI에서 이름이 `plugin-dev`인 플러그인의 agent `agent-creator`는 `plugin-dev:agent-creator`로 나타납니다.483이 이름은 컴포넌트 네임스페이싱에 사용됩니다. 예를 들어 UI에서 이름이 `plugin-dev`인 플러그인의 agent `agent-creator`는 `plugin-dev:agent-creator`로 나타납니다.

484 484 


533</h3>533</h3>

534 534 

535| 필드 | 타입 | 설명 | 예시 |535| 필드 | 타입 | 설명 | 예시 |

536| :---------------------- | :-------------------- | :-------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |536| :---------------------- | :-------------------- | :---------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |

537| `skills` | string\|array | `<name>/SKILL.md`를 포함하는 사용자 정의 skill 디렉토리 (기본 `skills/` 외에 추가) | `"./custom/skills/"` |537| `skills` | string\|array | `<name>/SKILL.md`를 포함하는 사용자 정의 skill 디렉토리 (기본 `skills/` 외에 추가). [경로 동작 규칙](#path-behavior-rules)에서 마켓플레이스 루트 예외를 참조하세요. | `"./custom/skills/"` |

538| `commands` | string\|array | 사용자 정의 평면 `.md` skill 파일 또는 디렉토리 (기본 `commands/` 대체) | `"./custom/cmd.md"` 또는 `["./cmd1.md"]` |538| `commands` | string\|array | 사용자 정의 평면 `.md` skill 파일 또는 디렉토리 (기본 `commands/` 대체) | `"./custom/cmd.md"` 또는 `["./cmd1.md"]` |

539| `agents` | string\|array | 사용자 정의 agent 파일 (기본 `agents/` 대체) | `"./custom/agents/reviewer.md"` |539| `agents` | string\|array | 사용자 정의 agent 파일 (기본 `agents/` 대체) | `"./custom/agents/reviewer.md"` |

540| `hooks` | string\|array\|object | Hook 구성 경로 또는 인라인 구성 | `"./my-extra-hooks.json"` |540| `hooks` | string\|array\|object | Hook 구성 경로 또는 인라인 구성 | `"./my-extra-hooks.json"` |


632사용자 정의 경로가 플러그인의 기본 디렉토리를 대체하는지 확장하는지는 필드에 따라 다릅니다:632사용자 정의 경로가 플러그인의 기본 디렉토리를 대체하는지 확장하는지는 필드에 따라 다릅니다:

633 633 

634* **기본값 대체**: `commands`, `agents`, `outputStyles`, `experimental.themes`, `experimental.monitors`. 예를 들어 매니페스트가 `commands`를 지정하면 기본 `commands/` 디렉토리는 스캔되지 않습니다. 기본값을 유지하고 더 많은 것을 추가하려면 명시적으로 나열하세요: `"commands": ["./commands/", "./extras/"]`634* **기본값 대체**: `commands`, `agents`, `outputStyles`, `experimental.themes`, `experimental.monitors`. 예를 들어 매니페스트가 `commands`를 지정하면 기본 `commands/` 디렉토리는 스캔되지 않습니다. 기본값을 유지하고 더 많은 것을 추가하려면 명시적으로 나열하세요: `"commands": ["./commands/", "./extras/"]`

635* **기본값에 추가**: `skills`. 기본 `skills/` 디렉토리는 항상 스캔되며, `skills`에 나열된 디렉토리는 함께 로드됩니다. 예외: [소스가 마켓플레이스 루트로 확인되는 마켓플레이스 항목](/ko/plugin-marketplaces#advanced-plugin-entries)의 경우 특정 서브디렉토리를 선언하면 스캔을 대체합니다.635* **기본값에 추가**: `skills`. 기본 `skills/` 디렉토리는 항상 스캔되며, `skills`에 나열된 디렉토리는 함께 로드됩니다. 예외: [소스가 마켓플레이스 루트로 확인되는 마켓플레이스 항목](/ko/plugin-marketplaces#advanced-plugin-entries)의 경우 특정 서브디렉토리를 선언하면 기본 `skills/` 스캔을 대체합니다.

636* **자체 병합 규칙**: [hooks](#hooks), [MCP servers](#mcp-servers) 및 [LSP servers](#lsp-servers). 각 섹션에서 여러 소스가 어떻게 결합되는지 참조하세요.636* **자체 병합 규칙**: [hooks](#hooks), [MCP servers](#mcp-servers) 및 [LSP servers](#lsp-servers). 각 섹션에서 여러 소스가 어떻게 결합되는지 참조하세요.

637 637 

638플러그인에 기본 폴더와 일치하는 매니페스트 키가 모두 있으면 Claude Code v2.1.140 이상은 `/doctor`, `claude plugin list` 및 `/plugin` 상세 보기에서 무시된 폴더에 플래그를 지정합니다. 플러그인은 여전히 매니페스트 경로를 사용하여 로드됩니다. 매니페스트 키가 기본 폴더를 가리킬 때는 경고가 표시되지 않습니다 (예: `"commands": ["./commands/deploy.md"]`). 이 경우 폴더가 명시적으로 처리되기 때문입니다.638플러그인에 기본 폴더와 일치하는 매니페스트 키가 모두 있으면 Claude Code v2.1.140 이상은 `/doctor`, `claude plugin list` 및 `/plugin` 상세 보기에서 무시된 폴더에 플래그를 지정합니다. 플러그인은 여전히 매니페스트 경로를 사용하여 로드됩니다. 매니페스트 키가 기본 폴더를 가리킬 때는 경고가 표시되지 않습니다 (예: `"commands": ["./commands/deploy.md"]`). 이 경우 폴더가 명시적으로 처리되기 때문입니다.

quickstart.md +1 −0

Details

106* [Claude Pro, Max, Team 또는 Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_login) (권장)106* [Claude Pro, Max, Team 또는 Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_login) (권장)

107* [Claude Console](https://console.anthropic.com/) (선불 크레딧이 있는 API 액세스). 처음 로그인할 때 비용 추적을 위해 Console에서 "Claude Code" 워크스페이스가 자동으로 생성됩니다.107* [Claude Console](https://console.anthropic.com/) (선불 크레딧이 있는 API 액세스). 처음 로그인할 때 비용 추적을 위해 Console에서 "Claude Code" 워크스페이스가 자동으로 생성됩니다.

108* [Amazon Bedrock, Google Vertex AI 또는 Microsoft Foundry](/ko/third-party-integrations) (엔터프라이즈 클라우드 제공자)108* [Amazon Bedrock, Google Vertex AI 또는 Microsoft Foundry](/ko/third-party-integrations) (엔터프라이즈 클라우드 제공자)

109* 조직에서 운영하는 자체 호스팅 [Claude 앱 게이트웨이](/ko/claude-apps-gateway): 관리자가 게이트웨이 URL을 미리 구성하고, `/login`을 입력하면 **Cloud gateway** 화면에서 직접 열려 기업 SSO로 로그인할 수 있습니다.

109 110 

110로그인하면 자격 증명이 저장되고 다시 로그인할 필요가 없습니다.111로그인하면 자격 증명이 저장되고 다시 로그인할 필요가 없습니다.

111 112 

Details

34 34 

35* **구독**: Pro, Max, Team 및 Enterprise 요금제에서 사용 가능합니다. API 키는 지원되지 않습니다. Team 및 Enterprise의 경우 Owner가 먼저 [Claude Code 관리자 설정](https://claude.ai/admin-settings/claude-code)에서 Remote Control 토글을 활성화해야 합니다.35* **구독**: Pro, Max, Team 및 Enterprise 요금제에서 사용 가능합니다. API 키는 지원되지 않습니다. Team 및 Enterprise의 경우 Owner가 먼저 [Claude Code 관리자 설정](https://claude.ai/admin-settings/claude-code)에서 Remote Control 토글을 활성화해야 합니다.

36* **인증**: `claude`를 실행하고 아직 로그인하지 않았다면 `/login`을 사용하여 claude.ai를 통해 로그인하세요.36* **인증**: `claude`를 실행하고 아직 로그인하지 않았다면 `/login`을 사용하여 claude.ai를 통해 로그인하세요.

37* **API 엔드포인트**: Amazon Bedrock, Google Vertex AI 또는 Microsoft Foundry에서는 사용할 수 없습니다. {/* min-version: 2.1.196 */}v2.1.196부터 [`ANTHROPIC_BASE_URL`](/ko/env-vars)이 `api.anthropic.com` 이외의 호스트(예: [LLM gateway](/ko/llm-gateway) 또는 프록시)를 가리킬 때도 Remote Control이 비활성화됩니다. Remote Control을 사용하려면 변수를 설정 해제하세요.

37* **작업 공간 신뢰**: 작업 공간 신뢰 대화를 수락하려면 프로젝트 디렉토리에서 최소한 한 번 `claude`를 실행하세요.38* **작업 공간 신뢰**: 작업 공간 신뢰 대화를 수락하려면 프로젝트 디렉토리에서 최소한 한 번 `claude`를 실행하세요.

38 39 

39<h2 id="start-a-remote-control-session">40<h2 id="start-a-remote-control-session">


148 모든 세션에 대해 Remote Control 활성화149 모든 세션에 대해 Remote Control 활성화

149</h3>150</h3>

150 151 

151기본적으로 Remote Control은 `claude remote-control`, `claude --remote-control` 또는 `/remote-control`을 명시적으로 실행할 때만 활성화됩니다. 모든 대화형 세션에 대해 자동으로 활성화하려면 Claude Code 내에서 `/config`를 실행하고 **모든 세션에 대해 Remote Control 활성화**를 `true`로 설정하세요. 비활성화하려면 `false`로 다시 설정하세요. Desktop 앱에서는 **설정 → Claude Code → 기본적으로 원격 제어 활성화**에서도 전환할 수 있습니다.152기본적으로 Remote Control은 `claude remote-control`, `claude --remote-control` 또는 `/remote-control`을 명시적으로 실행할 때만 활성화됩니다. 모든 대화형 세션에 대해 자동으로 활성화하려면 Claude Code 내에서 `/config`를 실행하고 **모든 세션에 대해 Remote Control 활성화**를 `true`로 설정하세요. 비활성화하려면 `false`로 설정하거나, 조직의 기본값을 따르려면 설정하지 않은 상태로 두세요. Desktop 앱에서는 **설정 → Claude Code → 기본적으로 원격 제어 활성화**에서도 전환할 수 있습니다.

152 153 

153이 설정이 켜져 있으면 각 대화형 Claude Code 프로세스는 하나의 원격 세션을 등록합니다. 여러 인스턴스를 실행하면 각각 자체 환경 및 세션을 가져옵니다. 단일 프로세스에서 여러 동시 세션을 실행하려면 [서버 모드](#start-a-remote-control-session)를 대신 사용하세요.154이 설정이 켜져 있으면 각 대화형 Claude Code 프로세스는 하나의 원격 세션을 등록합니다. 여러 인스턴스를 실행하면 각각 자체 환경 및 세션을 가져옵니다. 단일 프로세스에서 여러 동시 세션을 실행하려면 [서버 모드](#start-a-remote-control-session)를 대신 사용하세요.

154 155 


318 319 

319Claude Code가 Remote Control이 계정에 대해 활성화되어 있는지 확인하기 위해 기능 플래그 서비스에 도달할 수 없습니다. 일반적으로 오프라인 상태이거나 프록시가 요청을 차단하고 있기 때문입니다. 네트워크 액세스가 있으면 다시 시도하거나 `claude doctor`를 실행하여 세부 정보를 확인하세요. 관련 메시지인 "조직의 Remote Control 정책을 확인할 수 없습니다"는 동일한 원인과 동일한 해결책을 가집니다. 두 메시지 모두 v2.1.178에서 추가되었습니다.320Claude Code가 Remote Control이 계정에 대해 활성화되어 있는지 확인하기 위해 기능 플래그 서비스에 도달할 수 없습니다. 일반적으로 오프라인 상태이거나 프록시가 요청을 차단하고 있기 때문입니다. 네트워크 액세스가 있으면 다시 시도하거나 `claude doctor`를 실행하여 세부 정보를 확인하세요. 관련 메시지인 "조직의 Remote Control 정책을 확인할 수 없습니다"는 동일한 원인과 동일한 해결책을 가집니다. 두 메시지 모두 v2.1.178에서 추가되었습니다.

320 321 

322<h3 id="remote-control-is-only-available-when-using-claude-via-api-anthropic-com">

323 "Remote Control은 api.anthropic.com을 통해 Claude를 사용할 때만 사용 가능합니다"

324</h3>

325 

326세션이 Anthropic API와 직접 통신하지 않으므로 페어링할 claude.ai 백엔드가 없습니다. 이는 Amazon Bedrock, Google Vertex AI, Microsoft Foundry에서 발생합니다. {/* min-version: 2.1.196 */}v2.1.196부터는 [`ANTHROPIC_BASE_URL`](/ko/env-vars)이 `api.anthropic.com` 이외의 호스트(예: [LLM 게이트웨이](/ko/llm-gateway) 또는 프록시)를 가리킬 때도 발생하며, claude.ai로 로그인한 경우에도 마찬가지입니다. `ANTHROPIC_BASE_URL`을 설정 해제하고 세션을 다시 시작하여 Remote Control을 사용하세요.

327 

321<h3 id="remote-control-is-disabled-by-your-organization’s-policy">328<h3 id="remote-control-is-disabled-by-your-organization’s-policy">

322 "Remote Control은 조직의 정책에 의해 비활성화되었습니다"329 "Remote Control은 조직의 정책에 의해 비활성화되었습니다"

323</h3>330</h3>

Details

48| 프롬프트만 | `/loop check the deploy` | 프롬프트가 각 반복에서 [Claude가 선택한 간격](#let-claude-choose-the-interval)으로 실행됩니다 |48| 프롬프트만 | `/loop check the deploy` | 프롬프트가 각 반복에서 [Claude가 선택한 간격](#let-claude-choose-the-interval)으로 실행됩니다 |

49| 간격만 또는 아무것도 없음 | `/loop` | [내장 유지보수 프롬프트](#run-the-built-in-maintenance-prompt)가 실행되거나, 존재하는 경우 `loop.md`가 실행됩니다 |49| 간격만 또는 아무것도 없음 | `/loop` | [내장 유지보수 프롬프트](#run-the-built-in-maintenance-prompt)가 실행되거나, 존재하는 경우 `loop.md`가 실행됩니다 |

50 50 

51또한 다른 명령어를 프롬프트로 전달할 수 있습니다. 예를 들어 `/loop 20m /review-pr 1234`는 각 반복에서 저장된 스킬이나 명령어를 다시 실행합니다.51또한 스킬을 프롬프트로 전달할 수 있습니다. 예를 들어 `/loop 20m /review-pr 1234`는 각 반복에서 해당 스킬을 다시 실행합니다. {/* min-version: 2.1.196 */}v2.1.196부터 스케줄된 실행은 Claude가 [자체적으로 호출할 수 있도록 허용된](/ko/skills#control-who-invokes-a-skill) 스킬만 실행합니다. 다음은 Claude에 일반 텍스트로 전달되며 실행되지 않습니다.

52 

53* `/permissions`, `/model`, `/clear`와 같은 내장 명령어

54* [`disable-model-invocation: true`](/ko/skills#frontmatter-reference)로 표시된 스킬

55* [`skillOverrides`](/ko/skills#override-skill-visibility-from-settings) 설정이나 `Skill` [거부 규칙](/ko/skills#restrict-claude’s-skill-access)으로 Claude에서 제외된 스킬

56* [MCP 프롬프트](/ko/mcp#use-mcp-prompts-as-commands) (예: `/mcp__github__list_prs`); MCP 서버가 노출하는 스킬은 여전히 실행됩니다

52 57 

53<h3 id="run-on-a-fixed-interval">58<h3 id="run-on-a-fixed-interval">

54 고정 간격으로 실행하기59 고정 간격으로 실행하기


238 243 

239세션 범위 스케줄링에는 고유한 제약이 있습니다.244세션 범위 스케줄링에는 고유한 제약이 있습니다.

240 245 

241* 작업은 Claude Code가 실행 중이고 유휴 상태일 때만 실행됩니다. 터미널을 닫거나 세션을 종료하면 작업 실행이 중지됩니다.246* 작업은 Claude Code가 실행 중이고 유휴 상태일 때만 실행됩니다. 터미널을 닫거나 세션을 종료하면 작업 실행이 중지됩니다. [세션을 백그라운드로 전환](/ko/agent-view#from-inside-a-session)하면 `/loop` 작업이 백그라운드 세션으로 이동되어 터미널 없이 계속 실행됩니다.

242* 놓친 실행에 대한 추적 없음. 작업의 스케줄된 시간이 Claude가 오래 실행되는 요청에 바쁠 때 지나가면 Claude가 유휴 상태가 될 때 한 번 실행되며, 놓친 각 간격마다 한 번씩 실행되지 않습니다.247* 놓친 실행에 대한 추적 없음. 작업의 스케줄된 시간이 Claude가 오래 실행되는 요청에 바쁠 때 지나가면 Claude가 유휴 상태가 될 때 한 번 실행되며, 놓친 각 간격마다 한 번씩 실행되지 않습니다.

243* 새로운 대화를 시작하면 모든 세션 범위 작업이 지워집니다. `claude --resume` 또는 `claude --continue`로 재개하면 만료되지 않은 작업이 복원됩니다. 생성 후 7일 이내의 반복 작업, 스케줄된 시간이 아직 지나지 않은 일회성 작업입니다. 백그라운드 Bash 및 모니터 작업은 재개 시 복원되지 않습니다.248* 새로운 대화를 시작하면 모든 세션 범위 작업이 지워집니다. `claude --resume` 또는 `claude --continue`로 재개하면 만료되지 않은 작업이 복원됩니다. 생성 후 7일 이내의 반복 작업, 스케줄된 시간이 아직 지나지 않은 일회성 작업입니다. 백그라운드 Bash 및 모니터 작업은 재개 시 복원되지 않습니다.

244 249 

Details

153 153 

154서버 관리 설정과 [엔드포인트 관리 설정](/ko/settings#settings-files)은 모두 Claude Code [설정 계층](/ko/settings#settings-precedence)의 최상위 계층을 차지합니다. 명령줄 인수를 포함한 다른 설정 수준은 이를 재정의할 수 없습니다.154서버 관리 설정과 [엔드포인트 관리 설정](/ko/settings#settings-files)은 모두 Claude Code [설정 계층](/ko/settings#settings-precedence)의 최상위 계층을 차지합니다. 명령줄 인수를 포함한 다른 설정 수준은 이를 재정의할 수 없습니다.

155 155 

156관리 계층 내에서 비어있지 않은 구성을 전달하는 첫 번째 소스가 우선합니다. 서버 관리 설정이 먼저 확인되고, 그 다음 엔드포인트 관리 설정이 확인됩니다. 소스는 병합되지 않습니다. 서버 관리 설정이 어떤 키든 전달하면 엔드포인트 관리 설정은 완전히 무시됩니다. 서버 관리 설정이 아무것도 전달하지 않으면 엔드포인트 관리 설정이 적용됩니다.156관리 계층 내에서 구성된 [`policyHelper`](/ko/settings#compute-managed-settings-with-a-policy-helper)는 서버 관리 설정을 포함한 다른 모든 관리 소스보다 우선합니다. 이 도구의 출력은 실행을 위한 유일한 관리 구성이 됩니다. 그렇지 않으면 비어있지 않은 구성을 전달하는 첫 번째 소스가 우선합니다. 서버 관리 설정이 먼저 확인되고, 그 다음 엔드포인트 관리 설정이 확인됩니다. 소스는 병합되지 않습니다. 서버 관리 설정이 어떤 키든 전달하면 다른 엔드포인트 관리 설정은 완전히 무시됩니다. 한 가지 예외가 적용됩니다. 샌드박스 허용 목록 잠금과 같은 [교차 소스 잠금 키](/ko/settings#settings-precedence)의 작은 집합은 모든 관리자 제어 관리 소스가 이를 설정할 때 준수됩니다. 사용자 쓰기 가능 HKCU 레지스트리 계층은 제외됩니다. 서버 관리 설정이 아무것도 전달하지 않으면 엔드포인트 관리 설정이 적용됩니다.

157 157 

158엔드포인트 관리 plist 또는 레지스트리 정책으로 돌아가려는 의도로 관리 콘솔에서 서버 관리 구성을 지우는 경우, [캐시된 설정](#fetch-and-caching-behavior)이 다음 성공적인 가져오기까지 클라이언트 머신에 유지된다는 점을 주의하십시오. `/status`를 실행하여 어느 관리 소스가 활성화되어 있는지 확인합니다.158엔드포인트 관리 plist 또는 레지스트리 정책으로 돌아가려는 의도로 관리 콘솔에서 서버 관리 구성을 지우는 경우, [캐시된 설정](#fetch-and-caching-behavior)이 다음 성공적인 가져오기까지 클라이언트 머신에 유지된다는 점을 주의하십시오. `/status`를 실행하여 어느 관리 소스가 활성화되어 있는지 확인합니다.

159 159 


222* **셸 명령 설정**: 셸 명령을 실행하는 설정222* **셸 명령 설정**: 셸 명령을 실행하는 설정

223* **사용자 정의 환경 변수**: 알려진 안전 허용 목록에 없는 변수223* **사용자 정의 환경 변수**: 알려진 안전 허용 목록에 없는 변수

224* **Hook 구성**: 모든 hook 정의224* **Hook 구성**: 모든 hook 정의

225* **관리 CLAUDE.md 콘텐츠**: 관리 설정을 통해 전달된 `claudeMd` 값

225 226 

226이러한 설정이 있을 때 사용자는 구성되는 내용을 설명하는 보안 대화를 봅니다. 사용자는 진행하려면 승인해야 합니다. 사용자가 설정을 거부하면 Claude Code가 종료됩니다.227이러한 설정이 있을 때 사용자는 구성되는 내용을 설명하는 보안 대화를 봅니다. 사용자는 진행하려면 승인해야 합니다. 사용자가 설정을 거부하면 Claude Code가 종료됩니다.

227 228 


239* Google Vertex AI240* Google Vertex AI

240* Microsoft Foundry241* Microsoft Foundry

241* [Claude Platform on AWS](/ko/claude-platform-on-aws)242* [Claude Platform on AWS](/ko/claude-platform-on-aws)

242* `ANTHROPIC_BASE_URL` 또는 [LLM gateways](/ko/llm-gateway)를 통한 사용자 정의 API 엔드포인트243* `ANTHROPIC_BASE_URL` 또는 타사 [LLM gateways](/ko/llm-gateway)를 통한 사용자 정의 API 엔드포인트

244 

245Bedrock, Vertex AI 및 Foundry 배포의 경우, 자체 호스팅 [Claude apps gateway](/ko/claude-apps-gateway)는 동등한 원격 관리 설정 전달을 제공합니다. 게이트웨이에 로그인한 클라이언트는 `api.anthropic.com` 대신 게이트웨이에서 관리 설정을 가져옵니다. 시작 시 실패 의미론이 다릅니다. 게이트웨이에 도달할 수 없는 게이트웨이 클라이언트는 캐시된 설정으로 폴백하는 대신 오류로 종료되지만, 시간별 백그라운드 새로 고침은 두 채널 모두에서 실패 개방입니다.

243 246 

244<h2 id="audit-logging">247<h2 id="audit-logging">

245 감사 로깅248 감사 로깅


253 보안 고려사항256 보안 고려사항

254</h2>257</h2>

255 258 

256서버 관리 설정은 중앙 집중식 정책 적용을 제공하지만 클라이언트 측 제어로 작동합니다. 관리되지 않는 기기에서 관리자 또는 sudo 액세스 권한이 있는 사용자는 Claude Code 바이너리, 파일 시스템 또는 네트워크 구성을 수정할 있습니다.259서버 관리 설정은 중앙 집중식 정책 적용을 제공하지만 클라이언트 측 제어로 작동하며 보안 경계가 아닙니다. 관리되지 않는 기기에서 사용자는 이를 우회하기 위해 관리자 또는 sudo 액세스 권한이 필요하지 않습니다.

257 260 

258| 시나리오 | 동작 |261| 시나리오 | 동작 |

259| :-------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |262| :-------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

260| 사용자가 캐시된 설정 파일을 편집함 | 변조된 파일이 시작 시 적용되지만 다음 서버 가져오기에서 올바른 설정이 복원됩니다. |263| 사용자가 캐시된 설정 파일을 편집함 | 변조된 파일이 시작 시 적용되지만 다음 서버 가져오기에서 올바른 설정이 복원됩니다. |

261| 사용자가 캐시된 설정 파일을 삭제함 | 첫 시작 동작이 발생합니다. 설정이 비동기적으로 가져오지며 짧은 적용되지 않은 시간이 있습니다. |264| 사용자가 캐시된 설정 파일을 삭제함 | 첫 시작 동작이 발생합니다. 설정이 비동기적으로 가져오지며 짧은 적용되지 않은 시간이 있습니다. |

265| 사용자가 수정된 Claude Code 바이너리를 실행함 | 수정된 클라이언트를 실행할 수 있는 사용자는 모든 클라이언트 측 제어를 우회할 수 있습니다. |

266| 사용자가 이전 Claude Code 버전을 실행함 | 서버 관리 설정 이전의 버전은 이를 가져오거나 적용하지 않습니다. |

262| API를 사용할 수 없음 | 캐시된 설정이 있으면 적용되고, 그렇지 않으면 다음 성공적인 가져오기까지 관리 설정이 적용되지 않습니다. `forceRemoteSettingsRefresh: true`를 사용하면 CLI는 계속하는 대신 종료됩니다. [`claude auth` 부분 명령](#enforce-fail-closed-startup) 제외 |267| API를 사용할 수 없음 | 캐시된 설정이 있으면 적용되고, 그렇지 않으면 다음 성공적인 가져오기까지 관리 설정이 적용되지 않습니다. `forceRemoteSettingsRefresh: true`를 사용하면 CLI는 계속하는 대신 종료됩니다. [`claude auth` 부분 명령](#enforce-fail-closed-startup) 제외 |

263| 사용자가 다른 조직으로 인증함 | 관리 조직 외부의 계정에 대해 설정이 전달되지 않습니다. |268| 사용자가 다른 조직으로 인증함 | 관리 조직 외부의 계정에 대해 설정이 전달되지 않습니다. |

264| 사용자가 [타사 모델 공급자](#platform-availability)를 구성함 | 서버 관리 설정이 우회됩니다. 여기에는 `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_MANTLE`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, `CLAUDE_CODE_USE_ANTHROPIC_AWS` 설정 또는 기본이 아닌 `ANTHROPIC_BASE_URL` 설정이 포함됩니다. |269| 사용자가 [타사 모델 공급자](#platform-availability)를 구성함 | 서버 관리 설정이 우회됩니다. 여기에는 `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_MANTLE`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, `CLAUDE_CODE_USE_ANTHROPIC_AWS` 설정 또는 기본이 아닌 `ANTHROPIC_BASE_URL` 설정이 포함됩니다. |

270| 네트워크 트래픽이 가로채지거나 리디렉션됨 | 비활성화된 TLS 검증 또는 가로챈 트래픽은 클라이언트가 수신하는 설정을 변경할 수 있습니다. |

265 271 

266런타임 구성 변경을 감지하려면 [`ConfigChange` hooks](/ko/hooks#configchange)를 사용하여 수정 사항을 기록하거나 적용되기 전에 무단 변경을 차단합니다.272런타임 구성 변경을 감지하려면 [`ConfigChange` hooks](/ko/hooks#configchange)를 사용하여 수정 사항을 기록하거나 적용되기 전에 무단 변경을 차단합니다.

267 273 

268더 강력한 적용 보장을 위해 MDM 솔루션에 등록된 기기에서 [엔드포인트 관리 설정](/ko/settings#settings-files)을 사용합니다.274클라이언트가 제공하는 자격 증명으로 사용자가 액세스할 수 있는 조직을 제한하려면 Claude 도움말 센터의 [테넌트 제한으로 네트워크 수준 액세스 제어 적용](https://support.claude.com/en/articles/13198485-enforce-network-level-access-control-with-tenant-restrictions)을 참조하십시오. 더 강력한 적용 보장을 위해 MDM 솔루션에 등록된 기기에서 [엔드포인트 관리 설정](/ko/settings#settings-files)을 사용합니다.

269 275 

270<h2 id="see-also">276<h2 id="see-also">

271 참고 항목277 참고 항목

sessions.md +7 −1

Details

30 세션 선택기가 찾는 위치30 세션 선택기가 찾는 위치

31</h3>31</h3>

32 32 

33세션은 프로젝트 디렉토리별로 저장됩니다. 기본적으로 세션 선택기는 현재 worktree의 대화형 세션과 `/add-dir`로 현재 디렉토리를 추가한 다른 곳에서 시작된 세션을 표시합니다. {/* min-version: 2.1.169 */}v2.1.169부터 [`/cd`](/ko/commands)로 세션을 이동하면 새 디렉토리의 프로젝트 저장소로 재배치되므로 이후 해당 디렉토리의 선택기에 나타납니다. `Ctrl+W`를 사용하여 저장소의 모든 worktree로 확장하거나 `Ctrl+A`를 사용하여 이 머신의 모든 프로젝트로 확장합니다.33세션은 프로젝트 디렉토리별로 저장됩니다. 기본적으로 세션 선택기는 현재 worktree의 대화형 세션과 `/add-dir`로 현재 디렉토리를 추가한 다른 곳에서 시작된 세션을 표시합니다. `Ctrl+W`를 사용하여 저장소의 모든 worktree로 확장하거나 `Ctrl+A`를 사용하여 이 머신의 모든 프로젝트로 확장합니다.

34 

35{/* min-version: 2.1.169 */}v2.1.169부터 [`/cd`](/ko/commands)로 세션을 이동하면 새 디렉토리의 프로젝트 저장소로 재배치되므로 이후 해당 디렉토리의 선택기에 나타납니다. {/* min-version: 2.1.196 */}v2.1.196부터 이동된 세션은 충돌이나 강제 종료 후에도 이전 디렉토리의 선택기에서 제외된 상태로 유지됩니다. 이전 버전에서는 언더스코어와 같은 특수 문자가 포함된 이전 경로가 있을 때 깔끔하지 않은 종료 후 이전 디렉토리의 목록에 다시 나타날 수 있습니다.

34 36 

35같은 저장소의 다른 worktree에서 세션을 선택하면 그 위치에서 재개됩니다. 관련 없는 프로젝트에서 세션을 선택하면 `cd` 및 재개 명령을 클립보드에 복사합니다.37같은 저장소의 다른 worktree에서 세션을 선택하면 그 위치에서 재개됩니다. 관련 없는 프로젝트에서 세션을 선택하면 `cd` 및 재개 명령을 클립보드에 복사합니다.

36 38 


56 58 

57세션의 이름이 지정되면 `claude --resume <name>` 또는 `/resume <name>`으로 돌아갑니다. worktree 전체에서 이름 확인이 어떻게 작동하는지는 [세션 재개](#resume-a-session)를 참조합니다.59세션의 이름이 지정되면 `claude --resume <name>` 또는 `/resume <name>`으로 돌아갑니다. worktree 전체에서 이름 확인이 어떻게 작동하는지는 [세션 재개](#resume-a-session)를 참조합니다.

58 60 

61{/* min-version: 2.1.196 */}이름을 지정하지 않은 대화형 세션도 시작할 때 기본 표시 이름을 받습니다. Claude Code v2.1.196 이상이 필요합니다. 기본값은 작업 디렉토리의 이름과 두 문자 접미사를 결합합니다(예: `my-app-3f`). 이는 [에이전트 보기](/ko/agent-view) 및 `claude agents --json` 출력과 같은 실행 중인 세션의 목록에서 세션을 식별합니다.

62 

63기본값은 재개 핸들이 아닙니다: `claude --resume <name>`, `/resume <name>` 및 세션 선택기는 설정한 이름만 일치합니다. 세션의 이름을 지정하면 기본값이 바뀝니다.

64 

59<h2 id="use-the-session-picker">65<h2 id="use-the-session-picker">

60 세션 선택기 사용66 세션 선택기 사용

61</h2>67</h2>

settings.md +68 −62

Details

12 구성 범위12 구성 범위

13</h2>13</h2>

14 14 

15Claude Code는 **범위 시스템**을 사용하여 구성이 어디에 적용되고 누가 공유하는지 결정합니다. 범위를 이해하면 개인 사용, 팀 협업 또는 엔터프라이즈 배포를 위해 Claude Code를 구성하는 방법을 결정하는 데 도움이 됩니다.15Claude Code는 범위 시스템을 사용하여 구성이 어디에 적용되고 누가 공유하는지 결정합니다. 범위를 이해하면 개인 사용, 팀 협업 또는 엔터프라이즈 배포를 위해 Claude Code를 구성하는 방법을 결정하는 데 도움이 됩니다.

16 16 

17<h3 id="available-scopes">17<h3 id="available-scopes">

18 사용 가능한 범위18 사용 가능한 범위


59 59 

60동일한 설정이 여러 범위에서 구성되면 Claude Code는 우선순위 순서대로 적용합니다:60동일한 설정이 여러 범위에서 구성되면 Claude Code는 우선순위 순서대로 적용합니다:

61 61 

621. **Managed** (최고) - 아무것도 재정의할 수 없음621. **Managed** (최고): 아무것도 재정의할 수 없음

632. **명령줄 인수** - 임시 세션 재정의632. **명령줄 인수**: 임시 세션 재정의

643. **Local** - 프로젝트 및 사용자 설정 재정의643. **Local**: 프로젝트 및 사용자 설정 재정의

654. **Project** - 사용자 설정 재정의654. **Project**: 사용자 설정 재정의

665. **User** (최저) - 다른 것이 설정을 지정하지 않을 때 적용665. **User** (최저): 다른 것이 설정을 지정하지 않을 때 적용

67 67 

68예를 들어, 사용자 설정에서 `spinnerTipsEnabled`를 `true`로 설정하고 프로젝트 설정에서 `false`로 설정하면 프로젝트 값이 적용됩니다. 권한 규칙은 재정의하지 않고 범위 전체에서 병합되기 때문에 다르게 작동합니다. [설정 우선순위](#settings-precedence)를 참조하십시오.68예를 들어, 사용자 설정에서 `spinnerTipsEnabled`를 `true`로 설정하고 프로젝트 설정에서 `false`로 설정하면 프로젝트 값이 적용됩니다. 권한 규칙은 재정의하지 않고 범위 전체에서 병합되기 때문에 다르게 작동합니다. [설정 우선순위](#settings-precedence)를 참조하십시오.

69 69 


97 * 체크인되지 않은 설정을 위한 `.claude/settings.local.json`으로, 개인 설정 및 실험에 유용합니다. Claude Code는 `.claude/settings.local.json`이 생성될 때 git을 구성하여 이를 무시하도록 합니다. 파일을 직접 생성하는 경우 gitignore에 수동으로 추가합니다.97 * 체크인되지 않은 설정을 위한 `.claude/settings.local.json`으로, 개인 설정 및 실험에 유용합니다. Claude Code는 `.claude/settings.local.json`이 생성될 때 git을 구성하여 이를 무시하도록 합니다. 파일을 직접 생성하는 경우 gitignore에 수동으로 추가합니다.

98* **Managed 설정**: 중앙 집중식 제어가 필요한 조직의 경우 Claude Code는 managed 설정을 위한 여러 전달 메커니즘을 지원합니다. 모두 동일한 JSON 형식을 사용하며 사용자 또는 프로젝트 설정으로 재정의할 수 없습니다:98* **Managed 설정**: 중앙 집중식 제어가 필요한 조직의 경우 Claude Code는 managed 설정을 위한 여러 전달 메커니즘을 지원합니다. 모두 동일한 JSON 형식을 사용하며 사용자 또는 프로젝트 설정으로 재정의할 수 없습니다:

99 99 

100 * **서버 관리 설정**: Anthropic의 서버에서 Claude.ai 관리 콘솔을 통해 전달됩니다. [서버 관리 설정](/ko/server-managed-settings)을 참조하세요.100 * **서버 관리 설정**: Anthropic의 서버에서 Claude.ai 관리 콘솔을 통해 또는 자체 호스팅 [Claude apps gateway](/ko/claude-apps-gateway)에서 원격으로 전달됩니다. [서버 관리 설정](/ko/server-managed-settings)을 참조하세요.

101 * **MDM/OS 수준 정책**: macOS 및 Windows의 기본 장치 관리를 통해 전달됩니다:101 * **MDM/OS 수준 정책**: macOS 및 Windows의 기본 장치 관리를 통해 전달됩니다:

102 * macOS: `com.anthropic.claudecode` managed preferences domain. plist의 최상위 키는 `managed-settings.json`을 반영하며, 중첩된 설정은 딕셔너리이고 배열은 plist 배열입니다. Jamf, Iru (Kandji) 또는 유사한 MDM 도구의 구성 프로필을 통해 배포합니다.102 * macOS: `com.anthropic.claudecode` managed preferences domain. plist의 최상위 키는 `managed-settings.json`을 반영하며, 중첩된 설정은 딕셔너리이고 배열은 plist 배열입니다. Jamf, Iru (Kandji) 또는 유사한 MDM 도구의 구성 프로필을 통해 배포합니다.

103 * Windows: `HKLM\SOFTWARE\Policies\ClaudeCode` 레지스트리 키와 JSON을 포함하는 `Settings` 값 (REG\_SZ 또는 REG\_EXPAND\_SZ) (그룹 정책 또는 Intune을 통해 배포)103 * Windows: `HKLM\SOFTWARE\Policies\ClaudeCode` 레지스트리 키와 JSON을 포함하는 `Settings` 값 (REG\_SZ 또는 REG\_EXPAND\_SZ) (그룹 정책 또는 Intune을 통해 배포)


211`settings.json`은 여러 옵션을 지원합니다:211`settings.json`은 여러 옵션을 지원합니다:

212 212 

213| 키 | 설명 | 예제 |213| 키 | 설명 | 예제 |

214| :-------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------ |214| :-------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------ |

215| `advisorModel` | {/* min-version: 2.1.98 */}서버 측 [advisor 도구](/ko/advisor)를 위한 모델입니다. `"opus"`, `"sonnet"` 또는 `"fable"` ({/* min-version: 2.1.170 */}v2.1.170+)과 같은 모델 별칭 또는 전체 모델 ID를 허용합니다. `/advisor`를 실행할 때 자동으로 작성됩니다. Advisor를 비활성화하려면 설정 해제합니다. Claude Code v2.1.98 이상이 필요합니다 | `"opus"` |215| `advisorModel` | {/* min-version: 2.1.98 */}서버 측 [advisor 도구](/ko/advisor)를 위한 모델입니다. `"opus"`, `"sonnet"` 또는 `"fable"` ({/* min-version: 2.1.170 */}v2.1.170+)과 같은 모델 별칭 또는 전체 모델 ID를 허용합니다. `/advisor`를 실행할 때 자동으로 작성됩니다. Advisor를 비활성화하려면 설정 해제합니다. Claude Code v2.1.98 이상이 필요합니다 | `"opus"` |

216| `agent` | 메인 스레드를 명명된 subagent로 실행하고 `claude agents`에서 디스패치된 세션의 기본 에이전트를 설정합니다. 해당 subagent의 시스템 프롬프트, 도구 제한 및 모델을 적용합니다. [subagents 명시적으로 호출](/ko/sub-agents#invoke-subagents-explicitly)을 참조하세요 | `"code-reviewer"` |216| `agent` | 메인 스레드를 명명된 subagent로 실행하고 `claude agents`에서 디스패치된 세션의 기본 에이전트를 설정합니다. 해당 subagent의 시스템 프롬프트, 도구 제한 및 모델을 적용합니다. [subagents 명시적으로 호출](/ko/sub-agents#invoke-subagents-explicitly)을 참조하세요 | `"code-reviewer"` |

217| `agentPushNotifEnabled` | {/* min-version: 2.1.119 */}}[Remote Control](/ko/remote-control)이 연결되어 있을 때 Claude가 장시간 작업이 완료될 때와 같이 휴대폰에 사전 예방적 푸시 알림을 보낼 수 있도록 허용합니다. 기본값: `false`. `/config`에 **Claude가 결정할 때 푸시**로 표시됩니다. [모바일 푸시 알림](/ko/remote-control#mobile-push-notifications)을 참조하세요. Claude Code v2.1.119 이상이 필요합니다 | `true` |217| `agentPushNotifEnabled` | {/* min-version: 2.1.119 */}**기본값**: `false`. [Remote Control](/ko/remote-control)이 연결되어 있을 때 Claude가 장시간 작업이 완료될 때와 같이 휴대폰에 사전 예방적 푸시 알림을 보낼 수 있도록 허용합니다. `/config`에 **Claude가 결정할 때 푸시**로 표시됩니다. [모바일 푸시 알림](/ko/remote-control#mobile-push-notifications)을 참조하세요. Claude Code v2.1.119 이상이 필요합니다 | `true` |

218| `allowAllClaudeAiMcps` | (Managed 설정만) 배포된 `managed-mcp.json`과 함께 claude.ai 커넥터를 로드합니다. 그렇지 않으면 독점적 제어를 취하고 이를 억제합니다. [Managed MCP 구성](/ko/managed-mcp)을 참조하세요 | `true` |218| `allowAllClaudeAiMcps` | (Managed 설정만) 배포된 `managed-mcp.json`과 함께 claude.ai 커넥터를 로드합니다. 그렇지 않으면 독점적 제어를 취하고 이를 억제합니다. [Managed MCP 구성](/ko/managed-mcp)을 참조하세요 | `true` |

219| `allowedChannelPlugins` | (Managed 설정만) 메시지를 푸시할 수 있는 채널 플러그인의 허용 목록입니다. 설정되면 기본 Anthropic 허용 목록을 대체합니다. 정의되지 않음 = 기본값으로 폴백, 빈 배열 = 모든 채널 플러그인 차단. `channelsEnabled: true`가 필요합니다. [채널 플러그인 실행 제한](/ko/channels#restrict-which-channel-plugins-can-run)을 참조하세요 | `[{ "marketplace": "claude-plugins-official", "plugin": "telegram" }]` |219| `allowedChannelPlugins` | (Managed 설정만) 메시지를 푸시할 수 있는 채널 플러그인의 허용 목록입니다. 설정되면 기본 Anthropic 허용 목록을 대체합니다. 정의되지 않음 = 기본값으로 폴백, 빈 배열 = 모든 채널 플러그인 차단. `channelsEnabled: true`가 필요합니다. [채널 플러그인 실행 제한](/ko/channels#restrict-which-channel-plugins-can-run)을 참조하세요 | `[{ "marketplace": "claude-plugins-official", "plugin": "telegram" }]` |

220| `allowedHttpHookUrls` | HTTP hooks가 대상으로 할 수 있는 URL 패턴의 허용 목록입니다. `*`를 와일드카드로 지원합니다. 설정되면 일치하지 않는 URL을 가진 hooks는 차단됩니다. 정의되지 않음 = 제한 없음, 빈 배열 = 모든 HTTP hooks 차단. 배열은 설정 소스 전체에서 병합됩니다. [Hook 구성](#hook-configuration)을 참조하세요 | `["https://hooks.example.com/*"]` |220| `allowedHttpHookUrls` | HTTP hooks가 대상으로 할 수 있는 URL 패턴의 허용 목록입니다. `*`를 와일드카드로 지원합니다. 설정되면 일치하지 않는 URL을 가진 hooks는 차단됩니다. 정의되지 않음 = 제한 없음, 빈 배열 = 모든 HTTP hooks 차단. 배열은 설정 소스 전체에서 병합됩니다. [Hook 구성](#hook-configuration)을 참조하세요 | `["https://hooks.example.com/*"]` |


225| `alwaysThinkingEnabled` | 모든 세션에 대해 기본적으로 [확장 사고](/ko/model-config#extended-thinking)를 활성화합니다. 일반적으로 직접 편집하기보다는 `/config` 명령을 통해 구성됩니다. 사고를 강제로 끄려면 `env`에서 [`MAX_THINKING_TOKENS=0`](/ko/env-vars)을 설정합니다. 이는 Anthropic API에서 사고를 비활성화합니다. Fable 5는 제외되며, 이는 사고를 끌 수 없습니다. [제3자 공급자](/ko/third-party-integrations)에서 이는 `thinking` 매개변수를 생략하며, 적응형 추론 모델은 여전히 사고할 수 있습니다 | `true` |225| `alwaysThinkingEnabled` | 모든 세션에 대해 기본적으로 [확장 사고](/ko/model-config#extended-thinking)를 활성화합니다. 일반적으로 직접 편집하기보다는 `/config` 명령을 통해 구성됩니다. 사고를 강제로 끄려면 `env`에서 [`MAX_THINKING_TOKENS=0`](/ko/env-vars)을 설정합니다. 이는 Anthropic API에서 사고를 비활성화합니다. Fable 5는 제외되며, 이는 사고를 끌 수 없습니다. [제3자 공급자](/ko/third-party-integrations)에서 이는 `thinking` 매개변수를 생략하며, 적응형 추론 모델은 여전히 사고할 수 있습니다 | `true` |

226| `apiKeyHelper` | 시스템 셸 (`/bin/sh` on macOS and Linux, `cmd` on Windows)을 통해 실행될 사용자 정의 명령으로 인증 값을 생성합니다. 이 값은 모델 요청에 대해 `X-Api-Key` 및 `Authorization: Bearer` 헤더로 전송됩니다. [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/ko/env-vars)로 새로고침 간격을 설정합니다 | `/bin/generate_temp_api_key.sh` |226| `apiKeyHelper` | 시스템 셸 (`/bin/sh` on macOS and Linux, `cmd` on Windows)을 통해 실행될 사용자 정의 명령으로 인증 값을 생성합니다. 이 값은 모델 요청에 대해 `X-Api-Key` 및 `Authorization: Bearer` 헤더로 전송됩니다. [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/ko/env-vars)로 새로고침 간격을 설정합니다 | `/bin/generate_temp_api_key.sh` |

227| `attribution` | git 커밋 및 pull request에 대한 attribution을 사용자 정의합니다. [Attribution 설정](#attribution-settings)을 참조하세요 | `{"commit": "🤖 Generated with Claude Code", "pr": ""}` |227| `attribution` | git 커밋 및 pull request에 대한 attribution을 사용자 정의합니다. [Attribution 설정](#attribution-settings)을 참조하세요 | `{"commit": "🤖 Generated with Claude Code", "pr": ""}` |

228| `autoCompactEnabled` | {/* min-version: 2.1.119 */}컨텍스트가 한계에 접근할 때 자동으로 대화를 압축합니다. 기본값: `true`. `/config`에 **자동 압축**으로 표시됩니다. 환경 변수로 비활성화하려면 `env`에서 [`DISABLE_AUTO_COMPACT`](/ko/env-vars)를 설정합니다 | `false` |228| `autoCompactEnabled` | {/* min-version: 2.1.119 */}**기본값**: `true`. 컨텍스트가 한계에 접근할 때 자동으로 대화를 압축합니다. `/config`에 **자동 압축**으로 표시됩니다. 환경 변수로 비활성화하려면 `env`에서 [`DISABLE_AUTO_COMPACT`](/ko/env-vars)를 설정합니다 | `false` |

229| `autoMemoryDirectory` | [자동 메모리](/ko/memory#storage-location) 저장소를 위한 사용자 정의 디렉토리입니다. 절대 경로 또는 `~/` 접두사 경로를 허용합니다. 프로젝트 또는 local 설정에서 이는 작업 공간 신뢰 대화를 수락한 후에만 적용됩니다. 복제된 저장소가 이 파일을 제공할 수 있기 때문입니다 | `"~/my-memory-dir"` |229| `autoMemoryDirectory` | [자동 메모리](/ko/memory#storage-location) 저장소를 위한 사용자 정의 디렉토리입니다. 절대 경로 또는 `~/` 접두사 경로를 허용합니다. 프로젝트 또는 local 설정에서 이는 작업 공간 신뢰 대화를 수락한 후에만 적용됩니다. 복제된 저장소가 이 파일을 제공할 수 있기 때문입니다 | `"~/my-memory-dir"` |

230| `autoMemoryEnabled` | [자동 메모리](/ko/memory#enable-or-disable-auto-memory)를 활성화합니다. `false`일 때 Claude는 자동 메모리 디렉토리에서 읽거나 쓰지 않습니다. 기본값: `true`. 세션 중에 `/memory`로도 전환할 수 있습니다. 환경 변수로 비활성화하려면 `env`에서 [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/ko/env-vars)를 설정합니다 | `false` |230| `autoMemoryEnabled` | **기본값**: `true`. [자동 메모리](/ko/memory#enable-or-disable-auto-memory)를 활성화합니다. `false`일 때 Claude는 자동 메모리 디렉토리에서 읽거나 쓰지 않습니다. 세션 중에 `/memory`로도 전환할 수 있습니다. 환경 변수로 비활성화하려면 `env`에서 [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/ko/env-vars)를 설정합니다 | `false` |

231| `autoMode` | [자동 모드](/ko/permission-modes#eliminate-prompts-with-auto-mode) 분류기가 차단하고 허용하는 것을 사용자 정의합니다. `environment`, `allow`, `soft_deny` 및 `hard_deny` 배열의 산문 규칙을 포함합니다. 배열에 리터럴 문자열 `"$defaults"`를 포함하여 해당 위치에서 기본 제공 규칙을 상속합니다. [자동 모드 구성](/ko/auto-mode-config)을 참조하세요. 공유 프로젝트 설정에서는 읽지 않음 | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |231| `autoMode` | [자동 모드](/ko/permission-modes#eliminate-prompts-with-auto-mode) 분류기가 차단하고 허용하는 것을 사용자 정의합니다. `environment`, `allow`, `soft_deny` 및 `hard_deny` 배열의 산문 규칙을 포함합니다. 배열에 리터럴 문자열 `"$defaults"`를 포함하여 해당 위치에서 기본 제공 규칙을 상속합니다. [자동 모드 구성](/ko/auto-mode-config)을 참조하세요. 공유 프로젝트 설정에서는 읽지 않음 | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |

232| `autoScrollEnabled` | [fullscreen 렌더링](/ko/fullscreen)에서 새 출력을 대화의 맨 아래로 따릅니다. 기본값: `true`. `/config` **자동 스크롤**로 표시됩니다. 이것이 꺼져 있을 때도 권한 프롬프트는 여전히 보기로 스크롤됩니다 | `false` |232| `autoMode.classifyAllShell` | {/* min-version: 2.1.193 */}**기본값**: `false`. `true` 자동 모드가 활성화되어 있는 동안 모든 Bash 및 PowerShell 허용 규칙을 일시 중단하므로 모든 셸 명령이 임의 코드 실행 패턴과 일치하는 규칙뿐만 아니라 분류기를 통해 라우팅됩니다. [분류기를 통해 모든 명령 라우팅](/ko/auto-mode-config#route-all-shell-commands-through-the-classifier)을 참조하세요. Claude Code v2.1.193 이상이 필요합니다 | `true` |

233| `autoUpdatesChannel` | 업데이트를 따를 릴리스 채널입니다. 일반적으로 약 1주일 버전이고 주요 회귀가 있는 버전을 건너뛰는 `"stable"`을 사용하거나 가장 최근 릴리스인 `"latest"` (기본값)을 사용합니다. 자동 업데이트를 완전히 비활성화하려면 `env`에서 [`DISABLE_AUTOUPDATER`](/ko/setup#disable-auto-updates)를 설정합니다 | `"stable"` |233| `autoScrollEnabled` | **기본값**: `true`. [fullscreen 렌더링](/ko/fullscreen)에서 출력을 대화의 아래로 따릅니다. `/config` **자동 스크롤**로 표시됩니다. 이것이 꺼져 있을 때도 권한 프롬프트는 여전히 보기로 스크롤됩니다 | `false` |

234| `autoUpdatesChannel` | **기본값**: `"latest"`. 업데이트를 따를 릴리스 채널입니다. 일반적으로 약 1주일 된 버전이고 주요 회귀가 있는 버전을 건너뛰는 `"stable"`을 사용하거나 가장 최근 릴리스인 `"latest"`를 사용합니다. 자동 업데이트를 완전히 비활성화하려면 `env`에서 [`DISABLE_AUTOUPDATER`](/ko/setup#disable-auto-updates)를 설정합니다 | `"stable"` |

234| `availableModels` | 사용자가 메인 세션, [subagents](/ko/sub-agents), [skills](/ko/skills) 및 [advisor](/ko/advisor)를 위해 선택할 수 있는 모델을 제한합니다. `enforceAvailableModels`도 설정되지 않으면 기본 옵션에는 영향을 주지 않습니다. [모델 선택 제한](/ko/model-config#restrict-model-selection)을 참조하세요 | `["sonnet", "haiku"]` |235| `availableModels` | 사용자가 메인 세션, [subagents](/ko/sub-agents), [skills](/ko/skills) 및 [advisor](/ko/advisor)를 위해 선택할 수 있는 모델을 제한합니다. `enforceAvailableModels`도 설정되지 않으면 기본 옵션에는 영향을 주지 않습니다. [모델 선택 제한](/ko/model-config#restrict-model-selection)을 참조하세요 | `["sonnet", "haiku"]` |

235| `awaySummaryEnabled` | 몇 분 동안 터미널에서 떨어져 있다가 돌아올 때 한 줄 세션 요약을 표시합니다. 비활성화하려면 `false`로 설정하거나 `/config`에서 세션 요약을 끕니다. [`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/ko/env-vars)와 동일합니다 | `true` |236| `awaySummaryEnabled` | 몇 분 동안 터미널에서 떨어져 있다가 돌아올 때 한 줄 세션 요약을 표시합니다. 비활성화하려면 `false`로 설정하거나 `/config`에서 세션 요약을 끕니다. [`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/ko/env-vars)와 동일합니다 | `true` |

236| `awsAuthRefresh` | `.aws` 디렉토리를 수정하는 사용자 정의 스크립트 ([고급 자격 증명 구성](/ko/amazon-bedrock#advanced-credential-configuration) 참조) | `aws sso login --profile myprofile` |237| `awsAuthRefresh` | `.aws` 디렉토리를 수정하는 사용자 정의 스크립트 ([고급 자격 증명 구성](/ko/amazon-bedrock#advanced-credential-configuration) 참조) | `aws sso login --profile myprofile` |


240| `channelsEnabled` | (Managed 설정만) 조직을 위해 [channels](/ko/channels)를 허용합니다. Claude.ai Team 및 Enterprise 플랜에서 설정되지 않거나 `false`이면 채널이 차단됩니다. [Anthropic Console](/ko/authentication#claude-console-authentication) 계정이 API 키 인증을 사용하는 경우 조직이 managed 설정을 배포하지 않으면 기본적으로 채널이 허용되며, 이 경우 이 키를 `true`로 설정해야 합니다 | `true` |241| `channelsEnabled` | (Managed 설정만) 조직을 위해 [channels](/ko/channels)를 허용합니다. Claude.ai Team 및 Enterprise 플랜에서 설정되지 않거나 `false`이면 채널이 차단됩니다. [Anthropic Console](/ko/authentication#claude-console-authentication) 계정이 API 키 인증을 사용하는 경우 조직이 managed 설정을 배포하지 않으면 기본적으로 채널이 허용되며, 이 경우 이 키를 `true`로 설정해야 합니다 | `true` |

241| `claudeMd` | (Managed 설정만) 조직 관리 메모리로 주입된 CLAUDE.md 스타일 지침입니다. Managed 또는 정책 설정에서 설정된 경우에만 적용되며 사용자, 프로젝트 및 local 설정에서는 무시됩니다. [조직 전체 CLAUDE.md](/ko/memory#deploy-organization-wide-claude-md)를 참조하세요 | `"Always run make lint before committing."` |242| `claudeMd` | (Managed 설정만) 조직 관리 메모리로 주입된 CLAUDE.md 스타일 지침입니다. Managed 또는 정책 설정에서 설정된 경우에만 적용되며 사용자, 프로젝트 및 local 설정에서는 무시됩니다. [조직 전체 CLAUDE.md](/ko/memory#deploy-organization-wide-claude-md)를 참조하세요 | `"Always run make lint before committing."` |

242| `claudeMdExcludes` | [메모리](/ko/memory)를 로드할 때 건너뛸 `CLAUDE.md` 파일의 Glob 패턴 또는 절대 경로입니다. 패턴은 절대 파일 경로와 일치합니다. 사용자, 프로젝트 및 local 메모리에만 적용됩니다. managed 정책 파일은 제외할 수 없습니다 | `["**/vendor/**/CLAUDE.md"]` |243| `claudeMdExcludes` | [메모리](/ko/memory)를 로드할 때 건너뛸 `CLAUDE.md` 파일의 Glob 패턴 또는 절대 경로입니다. 패턴은 절대 파일 경로와 일치합니다. 사용자, 프로젝트 및 local 메모리에만 적용됩니다. managed 정책 파일은 제외할 수 없습니다 | `["**/vendor/**/CLAUDE.md"]` |

243| `cleanupPeriodDays` | 이 기간보다 오래된 세션 파일은 시작 시 삭제됩니다 (기본값: 30일, 최소 1). `0`으로 설정하면 검증 오류가 발생합니다. 또한 시작 시 [고아 subagent worktrees](/ko/worktrees#clean-up-worktrees)의 자동 제거에 대한 나이 기준을 제어합니다. 트랜스크립트 쓰기를 완전히 비활성화하려면 [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/ko/env-vars) 환경 변수를 설정하거나 비대화형 모드 (`-p`)에서 `--no-session-persistence` 플래그 또는 `persistSession: false` SDK 옵션을 사용합니다. | `20` |244| `cleanupPeriodDays` | **기본값**: `30`일, 최소 `1`. 이 기간보다 오래된 세션 파일은 시작 시 삭제됩니다. `0`으로 설정하면 검증 오류가 발생합니다. 또한 시작 시 [고아 subagent worktrees](/ko/worktrees#clean-up-worktrees)의 자동 제거에 대한 나이 기준을 제어합니다. 트랜스크립트 쓰기를 완전히 비활성화하려면 [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/ko/env-vars) 환경 변수를 설정하거나 비대화형 모드 (`-p`)에서 `--no-session-persistence` 플래그 또는 `persistSession: false` SDK 옵션을 사용합니다. | `20` |

244| `companyAnnouncements` | 시작 시 사용자에게 표시할 공지사항입니다. 여러 공지사항이 제공되면 무작위로 순환됩니다. | `["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]` |245| `companyAnnouncements` | 시작 시 사용자에게 표시할 공지사항입니다. 여러 공지사항이 제공되면 무작위로 순환됩니다. | `["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]` |

245| `defaultShell` | 입력 상자 `!` 명령의 기본 셸입니다. `"bash"` (기본값) 또는 `"powershell"`을 허용합니다. `"powershell"`을 설정하면 Windows에서 대화형 `!` 명령을 PowerShell을 통해 라우팅합니다. `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`이 필요합니다. [PowerShell 도구](/ko/tools-reference#powershell-tool)를 참조하세요 | `"powershell"` |246| `defaultShell` | **기본값**: `"bash"`, 또는 Bash를 사용할 수 없을 때 Windows에서 `"powershell"`. 입력 상자 `!` 명령의 기본 셸입니다. `"bash"` 또는 `"powershell"`을 허용합니다. `"powershell"`을 설정하면 Windows에서 대화형 `!` 명령을 PowerShell을 통해 라우팅합니다. `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`이 필요합니다. [PowerShell 도구](/ko/tools-reference#powershell-tool)를 참조하세요 | `"powershell"` |

246| `deniedMcpServers` | Managed 설정에서 설정되면 명시적으로 차단된 MCP 서버의 거부 목록입니다. Managed 서버를 포함한 모든 범위에 적용됩니다. 거부 목록이 허용 목록보다 우선합니다. [Managed MCP 구성](/ko/managed-mcp)을 참조하세요 | `[{ "serverName": "filesystem" }]` |247| `deniedMcpServers` | Managed 설정에서 설정되면 명시적으로 차단된 MCP 서버의 거부 목록입니다. Managed 서버를 포함한 모든 범위에 적용됩니다. 거부 목록이 허용 목록보다 우선합니다. [Managed MCP 구성](/ko/managed-mcp)을 참조하세요 | `[{ "serverName": "filesystem" }]` |

247| `disableAgentView` | [배경 에이전트 및 에이전트 보기](/ko/agent-view)를 끄려면 `true`로 설정합니다: `claude agents`, `--bg`, `/background` 및 온디맨드 감독자. 일반적으로 [managed 설정](/ko/permissions#managed-settings)에서 설정됩니다. `CLAUDE_CODE_DISABLE_AGENT_VIEW`를 `1`로 설정하는 것과 동일합니다 | `true` |248| `disableAgentView` | [배경 에이전트 및 에이전트 보기](/ko/agent-view)를 끄려면 `true`로 설정합니다: `claude agents`, `--bg`, `/background` 및 온디맨드 감독자. 일반적으로 [managed 설정](/ko/permissions#managed-settings)에서 설정됩니다. `CLAUDE_CODE_DISABLE_AGENT_VIEW`를 `1`로 설정하는 것과 동일합니다 | `true` |

248| `disableAllHooks` | 모든 [hooks](/ko/hooks) 및 사용자 정의 [상태 줄](/ko/statusline) 비활성화 | `true` |249| `disableAllHooks` | 모든 [hooks](/ko/hooks) 및 사용자 정의 [상태 줄](/ko/statusline) 비활성화 | `true` |


253| `disableDeepLinkRegistration` | Claude Code가 시작 시 운영 체제에 `claude-cli://` 프로토콜 핸들러를 등록하는 것을 방지하려면 `"disable"`로 설정합니다. [Deep links](/ko/deep-links)를 사용하면 외부 도구가 사전 채워진 프롬프트로 Claude Code 세션을 열 수 있습니다. 프로토콜 핸들러 등록이 제한되거나 별도로 관리되는 환경에서 유용합니다 | `"disable"` |254| `disableDeepLinkRegistration` | Claude Code가 시작 시 운영 체제에 `claude-cli://` 프로토콜 핸들러를 등록하는 것을 방지하려면 `"disable"`로 설정합니다. [Deep links](/ko/deep-links)를 사용하면 외부 도구가 사전 채워진 프롬프트로 Claude Code 세션을 열 수 있습니다. 프로토콜 핸들러 등록이 제한되거나 별도로 관리되는 환경에서 유용합니다 | `"disable"` |

254| `disabledMcpjsonServers` | `.mcp.json` 파일에서 거부할 특정 MCP 서버 목록 | `["filesystem"]` |255| `disabledMcpjsonServers` | `.mcp.json` 파일에서 거부할 특정 MCP 서버 목록 | `["filesystem"]` |

255| `disableRemoteControl` | {/* min-version: 2.1.128 */}[Remote Control](/ko/remote-control) 비활성화: `claude remote-control`, `--remote-control` 플래그, 자동 시작 및 세션 내 전환을 차단합니다. 일반적으로 장치별 MDM 적용을 위해 [managed 설정](/ko/permissions#managed-settings)에 배치되지만 모든 범위에서 작동합니다. Claude Code v2.1.128 이상이 필요합니다 | `true` |256| `disableRemoteControl` | {/* min-version: 2.1.128 */}[Remote Control](/ko/remote-control) 비활성화: `claude remote-control`, `--remote-control` 플래그, 자동 시작 및 세션 내 전환을 차단합니다. 일반적으로 장치별 MDM 적용을 위해 [managed 설정](/ko/permissions#managed-settings)에 배치되지만 모든 범위에서 작동합니다. Claude Code v2.1.128 이상이 필요합니다 | `true` |

257| `disableSideloadFlags` | {/* min-version: 2.1.193 */}(Managed 설정만) 시작 시 `--plugin-dir`, `--plugin-url`, `--agents` 및 `--mcp-config` CLI 플래그를 거부합니다. 사용자는 단일 실행을 위해 [`strictKnownMarketplaces`](#strictknownmarketplaces)를 우회하기 위해 이를 전달할 수 있습니다. 또한 현재 [Cowork](/ko/desktop) local 세션인 CLI를 내부적으로 생성하는 모든 표면에서 이러한 플래그를 거부합니다. 모든 서버가 in-process `type: "sdk"` 항목인 `--mcp-config`는 여전히 허용되므로 Agent SDK 및 VS Code 확장이 계속 작동합니다. `claude mcp add`, `.mcp.json` 또는 SDK `setMcpServers()`를 차단하지 않습니다. 서버별 MCP 제어를 위해 [`allowedMcpServers`](/ko/managed-mcp)와 쌍을 이룹니다. Claude Code v2.1.193 이상이 필요합니다 | `true` |

256| `disableSkillShellExecution` | [skills](/ko/skills) 및 사용자, 프로젝트, 플러그인 또는 추가 디렉토리 소스의 사용자 정의 명령에서 `` !`...` `` 및 ` ```! ` 블록에 대한 인라인 셸 실행을 비활성화합니다. 명령은 실행되는 대신 `[shell command execution disabled by policy]`로 대체됩니다. 번들 및 managed skills는 영향을 받지 않습니다. [managed 설정](/ko/permissions#managed-settings)에서 사용자가 재정의할 수 없을 때 가장 유용합니다 | `true` |258| `disableSkillShellExecution` | [skills](/ko/skills) 및 사용자, 프로젝트, 플러그인 또는 추가 디렉토리 소스의 사용자 정의 명령에서 `` !`...` `` 및 ` ```! ` 블록에 대한 인라인 셸 실행을 비활성화합니다. 명령은 실행되는 대신 `[shell command execution disabled by policy]`로 대체됩니다. 번들 및 managed skills는 영향을 받지 않습니다. [managed 설정](/ko/permissions#managed-settings)에서 사용자가 재정의할 수 없을 때 가장 유용합니다 | `true` |

257| `disableWorkflows` | [동적 워크플로우](/ko/workflows#turn-workflows-off) 및 번들 워크플로우 명령을 비활성화합니다. 기본값: `false`. `CLAUDE_CODE_DISABLE_WORKFLOWS`를 `1`로 설정하는 것과 동일합니다 | `true` |259| `disableWorkflows` | **기본값**: `false`. [동적 워크플로우](/ko/workflows#turn-workflows-off) 및 번들 워크플로우 명령을 비활성화합니다. `CLAUDE_CODE_DISABLE_WORKFLOWS`를 `1`로 설정하는 것과 동일합니다 | `true` |

258| `editorMode` | 입력 프롬프트의 키 바인딩 모드: `"normal"` 또는 `"vim"`. 기본값: `"normal"`. `/config`에 **편집기 모드**로 표시됩니다 | `"vim"` |260| `editorMode` | **기본값**: `"normal"`. 입력 프롬프트의 키 바인딩 모드: `"normal"` 또는 `"vim"`. `/config`에 **편집기 모드**로 표시됩니다 | `"vim"` |

259| `effortLevel` | [노력 수준](/ko/model-config#adjust-effort-level)을 세션 간에 유지합니다. `"low"`, `"medium"`, `"high"` 또는 `"xhigh"`를 허용합니다. `/effort`를 이러한 값 중 하나로 실행할 때 자동으로 작성됩니다. `--effort` 및 [`CLAUDE_CODE_EFFORT_LEVEL`](/ko/env-vars)은 한 세션에 대해 이를 재정의합니다. [노력 수준 조정](/ko/model-config#adjust-effort-level)에서 지원되는 모델을 참조하세요 | `"xhigh"` |261| `effortLevel` | [노력 수준](/ko/model-config#adjust-effort-level)을 세션 간에 유지합니다. `"low"`, `"medium"`, `"high"` 또는 `"xhigh"`를 허용합니다. `/effort`를 이러한 값 중 하나로 실행할 때 자동으로 작성됩니다. `--effort` 및 [`CLAUDE_CODE_EFFORT_LEVEL`](/ko/env-vars)은 한 세션에 대해 이를 재정의합니다. [노력 수준 조정](/ko/model-config#adjust-effort-level)에서 지원되는 모델을 참조하세요 | `"xhigh"` |

260| `enableAllProjectMcpServers` | 프로젝트 `.mcp.json` 파일에 정의된 모든 MCP 서버를 자동으로 승인합니다 | `true` |262| `enableAllProjectMcpServers` | 프로젝트 `.mcp.json` 파일에 정의된 모든 MCP 서버를 자동으로 승인합니다. {/* min-version: 2.1.196 */}v2.1.196부터 `claude mcp list` 및 `claude mcp get`은 [저장소에 체크인되지 않은 설정 파일](/ko/mcp#managing-your-servers)에서만 신뢰할 수 없는 폴더에서 이 키를 존중합니다 | `true` |

261| `enabledMcpjsonServers` | `.mcp.json` 파일에서 승인할 특정 MCP 서버 목록 | `["memory", "github"]` |263| `enableArtifact` | {/* min-version: 2.1.196 */}이 사용자에 대해 [Artifact](/ko/artifacts) 도구를 활성화하거나 비활성화합니다. 설정되지 않으면 기본값은 계정의 기능 [가용성](/ko/artifacts#availability)을 따릅니다. `/config`의 **Artifacts** 행이 키를 작성합니다. Managed `disableArtifact` 및 조직의 [관리자 설정](/ko/artifacts#manage-artifacts-for-your-organization)이 우선하며, 키는 프로젝트 및 local 설정 (`.claude/settings.json`, `.claude/settings.local.json`)에서 무시됩니다. 저장소가 이를 커밋할 수 있기 때문입니다. Claude Code v2.1.196 이상이 필요합니다 | `true` |

264| `enabledMcpjsonServers` | `.mcp.json` 파일에서 승인할 특정 MCP 서버 목록입니다. {/* min-version: 2.1.196 */}v2.1.196부터 `claude mcp list` 및 `claude mcp get`은 [저장소에 체크인되지 않은 설정 파일](/ko/mcp#managing-your-servers)에서만 신뢰할 수 없는 폴더에서 이 키를 존중합니다 | `["memory", "github"]` |

262| `enforceAvailableModels` | {/* min-version: 2.1.175 */}}`true`이고 `availableModels`가 managed 또는 정책 설정의 비어있지 않은 목록일 때 기본 모델도 허용 목록으로 제한됩니다. 기본 옵션이 허용 목록의 첫 번째 사용 가능한 항목으로 폴백됩니다. `availableModels`가 설정되지 않거나 비어있을 때는 영향을 주지 않습니다. [모델 선택 제한](/ko/model-config#restrict-model-selection)을 참조하세요. Claude Code v2.1.175 이상이 필요합니다 | `true` |265| `enforceAvailableModels` | {/* min-version: 2.1.175 */}}`true`이고 `availableModels`가 managed 또는 정책 설정의 비어있지 않은 목록일 때 기본 모델도 허용 목록으로 제한됩니다. 기본 옵션이 허용 목록의 첫 번째 사용 가능한 항목으로 폴백됩니다. `availableModels`가 설정되지 않거나 비어있을 때는 영향을 주지 않습니다. [모델 선택 제한](/ko/model-config#restrict-model-selection)을 참조하세요. Claude Code v2.1.175 이상이 필요합니다 | `true` |

263| `env` | 모든 세션에 적용될 환경 변수 및 Claude Code가 생성하는 하위 프로세스에 적용됩니다. {/* min-version: 2.1.143 */}v2.1.143부터 여기에 설정된 `NO_COLOR` 및 `FORCE_COLOR`는 하위 프로세스로 전달되지만 Claude Code 자체 인터페이스 색상은 변경하지 않습니다. Claude를 시작하기 전에 셸에서 이를 설정하여 인터페이스 색상을 변경합니다 | `{"FOO": "bar"}` |266| `env` | 모든 세션에 적용될 환경 변수 및 Claude Code가 생성하는 하위 프로세스에 적용됩니다. {/* min-version: 2.1.143 */}v2.1.143부터 여기에 설정된 `NO_COLOR` 및 `FORCE_COLOR`는 하위 프로세스로 전달되지만 Claude Code 자체 인터페이스 색상은 변경하지 않습니다. Claude를 시작하기 전에 셸에서 이를 설정하여 인터페이스 색상을 변경합니다. {/* min-version: 2.1.195 */}v2.1.195부터 Claude Code의 호스팅 환경이 설정하는 `CLAUDE_CODE_REMOTE` 및 `CLAUDE_CODE_ACCOUNT_UUID`와 같은 ID 변수는 여기에 설정되면 무시됩니다 | `{"FOO": "bar"}` |

264| `fallbackModel` | 기본 모델이 과부하이거나 사용할 수 없을 때 순서대로 시도할 폴백 모델입니다. Claude Code는 턴의 나머지 부분에 대해 체인의 다음 사용 가능한 모델로 전환하고 알림을 표시합니다. `"default"`는 기본 모델로 확장됩니다. 체인은 3개 모델로 제한되며 추가 항목은 무시됩니다. 대부분의 배열 설정과 달리 이 키는 설정 파일 전체에서 병합되지 않습니다: 이를 정의하는 최고 우선순위 파일이 전체 체인을 제공합니다. [`--fallback-model`](/ko/cli-reference#cli-flags) 플래그는 한 세션에 대해 이를 재정의합니다. [폴백 모델 체인](/ko/model-config#fallback-model-chains)을 참조하세요 | `["claude-sonnet-4-6", "claude-haiku-4-5"]` |267| `fallbackModel` | 기본 모델이 과부하이거나 사용할 수 없을 때 순서대로 시도할 폴백 모델입니다. Claude Code는 턴의 나머지 부분에 대해 체인의 다음 사용 가능한 모델로 전환하고 알림을 표시합니다. `"default"`는 기본 모델로 확장됩니다. 체인은 3개 모델로 제한되며 추가 항목은 무시됩니다. 대부분의 배열 설정과 달리 이 키는 설정 파일 전체에서 병합되지 않습니다: 이를 정의하는 최고 우선순위 파일이 전체 체인을 제공합니다. [`--fallback-model`](/ko/cli-reference#cli-flags) 플래그는 한 세션에 대해 이를 재정의합니다. [폴백 모델 체인](/ko/model-config#fallback-model-chains)을 참조하세요 | `["claude-sonnet-5", "claude-haiku-4-5"]` |

265| `fastModePerSessionOptIn` | `true`일 때 빠른 모드는 세션 간에 지속되지 않습니다. 각 세션은 빠른 모드가 꺼진 상태로 시작되며 사용자가 `/fast`로 활성화해야 합니다. 사용자의 빠른 모드 설정은 여전히 저장됩니다. [세션별 옵트인 필요](/ko/fast-mode#require-per-session-opt-in)를 참조하세요 | `true` |268| `fastModePerSessionOptIn` | `true`일 때 빠른 모드는 세션 간에 지속되지 않습니다. 각 세션은 빠른 모드가 꺼진 상태로 시작되며 사용자가 `/fast`로 활성화해야 합니다. 사용자의 빠른 모드 설정은 여전히 저장됩니다. [세션별 옵트인 필요](/ko/fast-mode#require-per-session-opt-in)를 참조하세요 | `true` |

266| `feedbackSurveyRate` | [세션 품질 설문조사](/ko/data-usage#session-quality-surveys)가 적격일 때 나타날 확률 (0–1). 완전히 억제하려면 `0`으로 설정하거나 `env`에서 [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/ko/env-vars)를 설정합니다. Bedrock, Vertex 또는 Foundry를 사용할 때 유용하며 기본 샘플 레이트가 적용되지 않습니다 | `0.05` |269| `feedbackSurveyRate` | [세션 품질 설문조사](/ko/data-usage#session-quality-surveys)가 적격일 때 나타날 확률 (0–1). 완전히 억제하려면 `0`으로 설정하거나 `env`에서 [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/ko/env-vars)를 설정합니다. Bedrock, Vertex 또는 Foundry를 사용할 때 유용하며 기본 샘플 레이트가 적용되지 않습니다 | `0.05` |

267| `fileCheckpointingEnabled` | {/* min-version: 2.1.119 */}각 편집 전에 파일을 스냅샷하여 [`/rewind`](/ko/checkpointing)가 이를 복원할 수 있도록 합니다. 기본값: `true`. `/config`에 \*\*코드 되감기 (체크포인트)\*\*로 표시됩니다. 환경 변수로 비활성화하려면 `env`에서 [`CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING`](/ko/env-vars)를 설정합니다 | `false` |270| `fileCheckpointingEnabled` | {/* min-version: 2.1.119 */}**기본값**: `true`. 각 편집 전에 파일을 스냅샷하여 [`/rewind`](/ko/checkpointing)가 이를 복원할 수 있도록 합니다. `/config`에 \*\*코드 되감기 (체크포인트)\*\*로 표시됩니다. 환경 변수로 비활성화하려면 `env`에서 [`CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING`](/ko/env-vars)를 설정합니다 | `false` |

268| `fileSuggestion` | `@` 파일 자동 완성을 위한 사용자 정의 스크립트를 구성합니다. [파일 제안 설정](#file-suggestion-settings)을 참조하세요 | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |271| `fileSuggestion` | `@` 파일 자동 완성을 위한 사용자 정의 스크립트를 구성합니다. [파일 제안 설정](#file-suggestion-settings)을 참조하세요 | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |

269| `footerLinksRegexes` | {/* min-version: 2.1.176 */}정규식이 턴 출력과 일치할 때 바닥글에 클릭 가능한 배지를 렌더링합니다. 각 항목에는 `pattern`, 명명된 캡처 그룹에서 채워진 `{name}` 자리 표시자가 있는 `url` 템플릿 및 선택적 `label`이 있습니다. 사용자, `--settings` 플래그 및 managed 설정에서만 읽습니다. [바닥글 링크 배지](#footer-link-badges)에서 URL 제약, 스키마 허용 목록 및 제한을 참조하세요. Claude Code v2.1.176 이상이 필요합니다 | `[{"type": "regex", "pattern": "\\b(?<key>PROJ-\\d+)\\b", "url": "https://issues.example.com/browse/{key}", "label": "{key}"}]` |272| `footerLinksRegexes` | {/* min-version: 2.1.176 */}정규식이 턴 출력과 일치할 때 바닥글에 클릭 가능한 배지를 렌더링합니다. 각 항목에는 `pattern`, 명명된 캡처 그룹에서 채워진 `{name}` 자리 표시자가 있는 `url` 템플릿 및 선택적 `label`이 있습니다. 사용자, `--settings` 플래그 및 managed 설정에서만 읽습니다. [바닥글 링크 배지](#footer-link-badges)에서 URL 제약, 스키마 허용 목록 및 제한을 참조하세요. Claude Code v2.1.176 이상이 필요합니다 | `[{"type": "regex", "pattern": "\\b(?<key>PROJ-\\d+)\\b", "url": "https://issues.example.com/browse/{key}", "label": "{key}"}]` |

270| `forceLoginMethod` | `claudeai`를 사용하여 Claude.ai 계정으로만 로그인을 제한하거나, `console`을 사용하여 Claude Console 계정으로만 제한합니다. Managed 설정에서 설정되면 `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper`로 인증된 세션은 시작 시 차단됩니다. 어느 값도 먼저 자사 OAuth 없이 만족할 수 없기 때문입니다. Bedrock, Vertex 및 Foundry와 같은 제3자 공급자 세션은 차단되지 않습니다: 이들은 Anthropic이 아닌 클라우드 공급자에 대해 인증합니다 | `claudeai` |273| `forceLoginMethod` | `claudeai`를 사용하여 Claude.ai 계정으로만 로그인을 제한하거나, `console`을 사용하여 Claude Console 계정으로만 제한하거나, `gateway`를 사용하여 클라우드 게이트웨이로만 제한합니다. [Claude apps gateway](/ko/claude-apps-gateway)를 참조하세요. Managed 설정에서 설정되면 `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper`로 인증된 세션은 시작 시 차단됩니다. 어느 값도 먼저 자사 OAuth 없이 만족할 수 없기 때문입니다. Bedrock, Vertex 및 Foundry와 같은 제3자 공급자 세션은 차단되지 않습니다: 이들은 Anthropic이 아닌 클라우드 공급자에 대해 인증합니다 | `claudeai` |

274| `forceLoginGatewayUrl` | `/login` 클라우드 게이트웨이 화면에서 게이트웨이 URL을 사전 채우고 잠급니다. 이 키 또는 `forceLoginMethod: "gateway"` 중 하나가 해당 화면을 표시합니다. URL이 채워지도록 둘 다 설정합니다. Managed 정책 계층에서만 적용됩니다. 사용자 및 프로젝트 설정에서는 무시됩니다. [Claude apps gateway](/ko/claude-apps-gateway#set-the-gateway-url)를 참조하세요 | `"https://claude-gateway.example.com"` |

271| `forceLoginOrgUUID` | 로그인이 특정 Anthropic 조직에 속하도록 요구합니다. 단일 UUID 문자열을 허용하며, 이는 로그인 중에 해당 조직을 사전 선택하거나, 나열된 조직이 사전 선택 없이 허용되는 UUID 배열을 허용합니다. Managed 설정에서 설정되면 인증된 계정이 나열된 조직에 속하지 않으면 로그인이 실패합니다. `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper`로 인증된 세션은 시작 시 차단됩니다. 조직 멤버십을 확인할 수 없기 때문입니다. Bedrock, Vertex 및 Foundry와 같은 제3자 공급자 세션은 차단되지 않습니다: 클라우드 IAM을 사용하여 사용할 수 있는 클라우드 계정을 제한합니다. 빈 배열은 실패하고 잘못된 구성 메시지로 로그인을 차단합니다 | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` 또는 `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |275| `forceLoginOrgUUID` | 로그인이 특정 Anthropic 조직에 속하도록 요구합니다. 단일 UUID 문자열을 허용하며, 이는 로그인 중에 해당 조직을 사전 선택하거나, 나열된 조직이 사전 선택 없이 허용되는 UUID 배열을 허용합니다. Managed 설정에서 설정되면 인증된 계정이 나열된 조직에 속하지 않으면 로그인이 실패합니다. `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper`로 인증된 세션은 시작 시 차단됩니다. 조직 멤버십을 확인할 수 없기 때문입니다. Bedrock, Vertex 및 Foundry와 같은 제3자 공급자 세션은 차단되지 않습니다: 클라우드 IAM을 사용하여 사용할 수 있는 클라우드 계정을 제한합니다. 빈 배열은 실패하고 잘못된 구성 메시지로 로그인을 차단합니다 | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` 또는 `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |

272| `forceRemoteSettingsRefresh` | (Managed 설정만) 원격 managed 설정이 서버에서 새로 가져올 때까지 CLI 시작을 차단합니다. 가져오기가 실패하면 캐시된 또는 설정 없이 계속하는 대신 CLI가 종료됩니다. 설정되지 않으면 시작이 원격 설정을 기다리지 않고 계속됩니다. [실패 폐쇄 적용](/ko/server-managed-settings#enforce-fail-closed-startup)을 참조하세요 | `true` |276| `forceRemoteSettingsRefresh` | (Managed 설정만) 원격 managed 설정이 서버에서 새로 가져올 때까지 CLI 시작을 차단합니다. 가져오기가 실패하면 캐시된 또는 설정 없이 계속하는 대신 CLI가 종료됩니다. 설정되지 않으면 시작이 원격 설정을 기다리지 않고 계속됩니다. [실패 폐쇄 적용](/ko/server-managed-settings#enforce-fail-closed-startup)을 참조하세요 | `true` |

273| `gcpAuthRefresh` | GCP Application Default Credentials가 만료되거나 로드할 수 없을 때 새로고침하는 사용자 정의 스크립트입니다. [고급 자격 증명 구성](/ko/google-vertex-ai#advanced-credential-configuration)을 참조하세요 | `gcloud auth application-default login` |277| `gcpAuthRefresh` | GCP Application Default Credentials가 만료되거나 로드할 수 없을 때 새로고침하는 사용자 정의 스크립트입니다. [고급 자격 증명 구성](/ko/google-vertex-ai#advanced-credential-configuration)을 참조하세요 | `gcloud auth application-default login` |

274| `hooks` | 라이프사이클 이벤트에서 실행할 사용자 정의 명령을 구성합니다. 형식은 [hooks 문서](/ko/hooks)를 참조하세요 | [hooks](/ko/hooks) 참조 |278| `hooks` | 라이프사이클 이벤트에서 실행할 사용자 정의 명령을 구성합니다. 형식은 [hooks 문서](/ko/hooks)를 참조하세요 | [hooks](/ko/hooks) 참조 |

275| `httpHookAllowedEnvVars` | HTTP hooks가 헤더에 보간할 수 있는 환경 변수 이름의 허용 목록입니다. 설정되면 각 hook의 유효한 `allowedEnvVars`는 이 설정과의 교집합입니다. 정의되지 않음 = 제한 없음. 배열은 설정 소스 전체에서 병합됩니다. [Hook 구성](#hook-configuration)을 참조하세요 | `["MY_TOKEN", "HOOK_SECRET"]` |279| `httpHookAllowedEnvVars` | HTTP hooks가 헤더에 보간할 수 있는 환경 변수 이름의 허용 목록입니다. 설정되면 각 hook의 유효한 `allowedEnvVars`는 이 설정과의 교집합입니다. 정의되지 않음 = 제한 없음. 배열은 설정 소스 전체에서 병합됩니다. [Hook 구성](#hook-configuration)을 참조하세요 | `["MY_TOKEN", "HOOK_SECRET"]` |

276| `includeGitInstructions` | Claude의 시스템 프롬프트에 기본 제공 커밋 및 PR 워크플로우 지침 및 git 상태 스냅샷을 포함합니다. 기본값: `true`. 예를 들어 자신의 git 워크플로우 skills을 사용할 때 이를 `false`로 설정하여 둘 다 제거합니다. `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` 환경 변수가 설정되면 이 설정보다 우선합니다 | `false` |280| `includeGitInstructions` | **기본값**: `true`. Claude의 시스템 프롬프트에 기본 제공 커밋 및 PR 워크플로우 지침 및 git 상태 스냅샷을 포함합니다. 예를 들어 자신의 git 워크플로우 skills을 사용할 때 이를 `false`로 설정하여 둘 다 제거합니다. `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` 환경 변수가 설정되면 이 설정보다 우선합니다 | `false` |

277| `inputNeededNotifEnabled` | {/* min-version: 2.1.119 */}}[Remote Control](/ko/remote-control)이 연결되어 있을 때 권한 프롬프트 또는 질문이 입력을 기다리고 있을 때 휴대폰에 푸시 알림을 보냅니다. 기본값: `false`. `/config`에 **작업이 필요할 때 푸시**로 표시됩니다. [모바일 푸시 알림](/ko/remote-control#mobile-push-notifications)을 참조하세요. Claude Code v2.1.119 이상이 필요합니다 | `true` |281| `inputNeededNotifEnabled` | {/* min-version: 2.1.119 */}}**기본값**: `false`. [Remote Control](/ko/remote-control)이 연결되어 있을 때 권한 프롬프트 또는 질문이 입력을 기다리고 있을 때 휴대폰에 푸시 알림을 보냅니다. `/config`에 **작업이 필요할 때 푸시**로 표시됩니다. [모바일 푸시 알림](/ko/remote-control#mobile-push-notifications)을 참조하세요. Claude Code v2.1.119 이상이 필요합니다 | `true` |

278| `language` | Claude의 선호 응답 언어를 구성합니다 (예: `"japanese"`, `"spanish"`, `"french"`). Claude는 기본적으로 이 언어로 응답합니다. 또한 [음성 받아쓰기](/ko/voice-dictation#change-the-dictation-language) 언어를 설정합니다. {/* min-version: 2.1.176 */}v2.1.176부터 설정되지 않으면 세션 제목이 대화의 언어와 일치합니다 | `"japanese"` |282| `language` | Claude의 선호 응답 언어를 구성합니다 (예: `"japanese"`, `"spanish"`, `"french"`). Claude는 기본적으로 이 언어로 응답합니다. 또한 [음성 받아쓰기](/ko/voice-dictation#change-the-dictation-language) 언어를 설정합니다. {/* min-version: 2.1.176 */}v2.1.176부터 설정되지 않으면 세션 제목이 대화의 언어와 일치합니다 | `"japanese"` |

279| `maxSkillDescriptionChars` | {/* min-version: 2.1.105 */}}Claude가 각 턴에 보는 [skill 목록](/ko/skills#skill-descriptions-are-cut-short)의 결합된 `description` 및 `when_to_use` 텍스트에 대한 skill별 문자 제한입니다. 기본값: `1536`. 이 길이보다 긴 텍스트는 잘립니다. 더 긴 설명을 유지하려면 높이고 턴당 더 많은 컨텍스트를 사용합니다. [`skillListingBudgetFraction`](#available-settings)에 맞추려면 낮춥니다. Claude Code v2.1.105 이상이 필요합니다 | `2048` |

280| `minimumVersion` | 배경 자동 업데이트 및 `claude update`가 이 버전 아래로 설치되는 것을 방지하는 하한입니다. `"latest"` 채널에서 `"stable"`로 전환할 때 `/config`를 통해 현재 버전에 머물기 또는 다운그레이드를 허용하라는 메시지가 표시됩니다. 머물기를 선택하면 이 값이 설정됩니다. 또한 [managed 설정](/ko/permissions#managed-settings)에서 조직 전체 최소값을 고정하는 데 유용합니다. 시작을 완전히 차단하는 하드 플로어는 `requiredMinimumVersion`을 참조하세요 | `"2.1.100"` |283| `minimumVersion` | 배경 자동 업데이트 및 `claude update`가 이 버전 아래로 설치되는 것을 방지하는 하한입니다. `"latest"` 채널에서 `"stable"`로 전환할 때 `/config`를 통해 현재 버전에 머물기 또는 다운그레이드를 허용하라는 메시지가 표시됩니다. 머물기를 선택하면 이 값이 설정됩니다. 또한 [managed 설정](/ko/permissions#managed-settings)에서 조직 전체 최소값을 고정하는 데 유용합니다. 시작을 완전히 차단하는 하드 플로어는 `requiredMinimumVersion`을 참조하세요 | `"2.1.100"` |

281| `model` | Claude Code에 사용할 기본 모델을 재정의합니다. `--model` 및 [`ANTHROPIC_MODEL`](/ko/model-config#environment-variables)은 한 세션에 대해 이를 재정의합니다 | `"claude-sonnet-4-6"` |284| `model` | Claude Code에 사용할 기본 모델을 재정의합니다. `--model` 및 [`ANTHROPIC_MODEL`](/ko/model-config#environment-variables)은 한 세션에 대해 이를 재정의합니다 | `"claude-sonnet-5"` |

282| `modelOverrides` | Anthropic 모델 ID를 Bedrock 추론 프로필 ARN과 같은 공급자 특정 모델 ID로 매핑합니다. 각 모델 선택기 항목은 공급자 API를 호출할 때 매핑된 값을 사용합니다. [버전별 모델 ID 재정의](/ko/model-config#override-model-ids-per-version)를 참조하세요 | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |285| `modelOverrides` | Anthropic 모델 ID를 Bedrock 추론 프로필 ARN과 같은 공급자 특정 모델 ID로 매핑합니다. 각 모델 선택기 항목은 공급자 API를 호출할 때 매핑된 값을 사용합니다. [버전별 모델 ID 재정의](/ko/model-config#override-model-ids-per-version)를 참조하세요 | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |

283| `otelHeadersHelper` | 동적 OpenTelemetry 헤더를 생성하는 스크립트입니다. 시작 시 및 주기적으로 실행됩니다. [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/ko/env-vars)로 새로고침 간격을 설정합니다. [동적 헤더](/ko/monitoring-usage#dynamic-headers)를 참조하세요 | `/bin/generate_otel_headers.sh` |286| `otelHeadersHelper` | 동적 OpenTelemetry 헤더를 생성하는 스크립트입니다. 시작 시 및 주기적으로 실행됩니다. [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/ko/env-vars)로 새로고침 간격을 설정합니다. [동적 헤더](/ko/monitoring-usage#dynamic-headers)를 참조하세요 | `/bin/generate_otel_headers.sh` |

284| `outputStyle` | 시스템 프롬프트를 조정하기 위한 출력 스타일을 구성합니다. [출력 스타일 문서](/ko/output-styles)를 참조하세요 | `"Explanatory"` |287| `outputStyle` | 시스템 프롬프트를 조정하기 위한 출력 스타일을 구성합니다. [출력 스타일 문서](/ko/output-styles)를 참조하세요 | `"Explanatory"` |

285| `parentSettingsBehavior` | {/* min-version: 2.1.133 */}}(Managed 설정만) Agent SDK 또는 IDE 확장과 같은 embedding host 프로세스에 의해 프로그래밍 방식으로 제공되는 managed 설정이 관리자 배포 managed 계층도 있을 때 적용되는지 여부를 제어합니다. `"first-wins"`: 부모 제공 설정이 삭제되고 관리자 계층만 적용됩니다. `"merge"`: 부모 제공 설정이 관리자 계층 아래에 적용되며, 정책을 강화할 수 있지만 완화할 수 없도록 필터링됩니다. 기본값: `"first-wins"`. 관리자 계층이 배포되지 않으면 영향을 주지 않습니다. Claude Code v2.1.133 이상이 필요합니다 | `"merge"` |288| `parentSettingsBehavior` | {/* min-version: 2.1.133 */}}(Managed 설정만) **기본값**: `"first-wins"`. Agent SDK 또는 IDE 확장과 같은 embedding host 프로세스에 의해 프로그래밍 방식으로 제공되는 managed 설정이 관리자 배포 managed 계층도 있을 때 적용되는지 여부를 제어합니다. `"first-wins"`: 부모 제공 설정이 삭제되고 관리자 계층만 적용됩니다. `"merge"`: 부모 제공 설정이 관리자 계층 아래에 적용되며, 정책을 강화할 수 있지만 완화할 수 없도록 필터링됩니다. 관리자 계층이 배포되지 않으면 영향을 주지 않습니다. Claude Code v2.1.133 이상이 필요합니다 | `"merge"` |

286| `permissions` | 권한의 구조는 아래 표를 참조하세요. | |289| `permissions` | 권한의 구조는 아래 표를 참조하세요. | |

287| `plansDirectory` | 계획 파일이 저장되는 위치를 사용자 정의합니다. 경로는 프로젝트 루트에 상대적입니다. 기본값: `~/.claude/plans` | `"./plans"` |290| `plansDirectory` | **기본값**: `~/.claude/plans`. 계획 파일이 저장되는 위치를 사용자 정의합니다. 경로는 프로젝트 루트에 상대적입니다. | `"./plans"` |

288| `pluginSuggestionMarketplaces` | (Managed 설정만) 플러그인이 상황별 설치 제안으로 나타날 수 있는 마켓플레이스 이름입니다. 제안은 각 플러그인의 마켓플레이스 항목의 `relevance` 선언에서 나옵니다. 이름은 마켓플레이스가 머신에 등록되고 등록된 소스가 managed 설정에서도 선언될 때만 적용됩니다. 해당 이름에 대한 `extraKnownMarketplaces` 항목으로 또는 `strictKnownMarketplaces`의 항목으로 선언됩니다. 허용 목록 이름 아래에 다른 소스에서 등록된 마켓플레이스는 무시됩니다. 공식 마켓플레이스는 소스 요구 사항에서 제외됩니다: 이름만 허용 목록에 있으면 충분합니다. 이름은 공식 Anthropic 소스에서만 등록될 수 있기 때문입니다. | `["acme-corp-plugins"]` |291| `pluginSuggestionMarketplaces` | (Managed 설정만) 플러그인이 상황별 설치 제안으로 나타날 수 있는 마켓플레이스 이름입니다. 제안은 각 플러그인의 마켓플레이스 항목의 `relevance` 선언에서 나옵니다. 이름은 마켓플레이스가 머신에 등록되고 등록된 소스가 managed 설정에서도 선언될 때만 적용됩니다. 해당 이름에 대한 `extraKnownMarketplaces` 항목으로 또는 `strictKnownMarketplaces`의 항목으로 선언됩니다. 허용 목록 이름 아래에 다른 소스에서 등록된 마켓플레이스는 무시됩니다. 공식 마켓플레이스는 소스 요구 사항에서 제외됩니다: 이름만 허용 목록에 있으면 충분합니다. 이름은 공식 Anthropic 소스에서만 등록될 수 있기 때문입니다. | `["acme-corp-plugins"]` |

289| `pluginTrustMessage` | (Managed 설정만) 설치 전에 표시되는 플러그인 신뢰 경고에 추가될 사용자 정의 메시지입니다. 이를 사용하여 조직 특정 컨텍스트를 추가합니다. 예를 들어 내부 마켓플레이스의 플러그인이 검증되었음을 확인합니다. | `"All plugins from our marketplace are approved by IT"` |292| `pluginTrustMessage` | (Managed 설정만) 설치 전에 표시되는 플러그인 신뢰 경고에 추가될 사용자 정의 메시지입니다. 이를 사용하여 조직 특정 컨텍스트를 추가합니다. 예를 들어 내부 마켓플레이스의 플러그인이 검증되었음을 확인합니다. | `"All plugins from our marketplace are approved by IT"` |

290| `policyHelper` | {/* min-version: 2.1.136 */}}관리자 배포 실행 파일로 시작 시 managed 설정을 동적으로 계산합니다. MDM 또는 시스템 `managed-settings.json` 파일에서만 적용됩니다. [정책 도우미로 managed 설정 계산](#compute-managed-settings-with-a-policy-helper)을 참조하세요. Claude Code v2.1.136 이상이 필요합니다 | `{"path": "/usr/local/bin/claude-policy"}` |293| `policyHelper` | {/* min-version: 2.1.136 */}}관리자 배포 실행 파일로 시작 시 managed 설정을 동적으로 계산합니다. MDM 또는 시스템 `managed-settings.json` 파일에서만 적용됩니다. [정책 도우미로 managed 설정 계산](#compute-managed-settings-with-a-policy-helper)을 참조하세요. Claude Code v2.1.136 이상이 필요합니다 | `{"path": "/usr/local/bin/claude-policy"}` |

291| `preferredNotifChannel` | 작업 완료 및 권한 프롬프트 알림 방법입니다. 기본값: `"auto"`. `"auto"`, `"terminal_bell"`, `"iterm2"`, `"iterm2_with_bell"`, `"kitty"`, `"ghostty"` 또는 `"notifications_disabled"`를 허용합니다. `"auto"`는 iTerm2, Ghostty 및 Kitty에서 데스크톱 알림을 보내고 다른 터미널에서는 아무것도 하지 않습니다. 모든 터미널에서 벨 문자를 울리려면 `"terminal_bell"`을 설정합니다. `/config`에 **알림**으로 표시됩니다. [터미널 벨 또는 알림 받기](/ko/terminal-config#get-a-terminal-bell-or-notification)를 참조하세요 | `"terminal_bell"` |294| `preferredNotifChannel` | **기본값**: `"auto"`. 작업 완료 및 권한 프롬프트 알림 방법입니다. `"auto"`, `"terminal_bell"`, `"iterm2"`, `"iterm2_with_bell"`, `"kitty"`, `"ghostty"` 또는 `"notifications_disabled"`를 허용합니다. `"auto"`는 iTerm2, Ghostty 및 Kitty에서 데스크톱 알림을 보내고 다른 터미널에서는 아무것도 하지 않습니다. 모든 터미널에서 벨 문자를 울리려면 `"terminal_bell"`을 설정합니다. `/config`에 **알림**으로 표시됩니다. [터미널 벨 또는 알림 받기](/ko/terminal-config#get-a-terminal-bell-or-notification)를 참조하세요 | `"terminal_bell"` |

292| `prefersReducedMotion` | 접근성을 위해 UI 애니메이션 (스피너, shimmer, flash 효과) 감소 또는 비활성화 | `true` |295| `prefersReducedMotion` | 접근성을 위해 UI 애니메이션 (스피너, shimmer, flash 효과) 감소 또는 비활성화 | `true` |

293| `prUrlTemplate` | PR 배지에 대한 URL 템플릿으로 바닥글 및 도구 결과 요약에 표시됩니다. `gh`에서 보고한 PR URL에서 `{host}`, `{owner}`, `{repo}`, `{number}` 및 `{url}`을 대체합니다. `github.com` 대신 내부 코드 검토 도구를 가리키도록 사용합니다. Claude의 산문에서 `#123` 자동 링크에는 영향을 주지 않습니다 | `"https://reviews.example.com/{owner}/{repo}/pull/{number}"` |296| `prUrlTemplate` | PR 배지에 대한 URL 템플릿으로 바닥글 및 도구 결과 요약에 표시됩니다. `gh`에서 보고한 PR URL에서 `{host}`, `{owner}`, `{repo}`, `{number}` 및 `{url}`을 대체합니다. `github.com` 대신 내부 코드 검토 도구를 가리키도록 사용합니다. Claude의 산문에서 `#123` 자동 링크에는 영향을 주지 않습니다 | `"https://reviews.example.com/{owner}/{repo}/pull/{number}"` |

294| `remoteControlAtStartup` | {/* min-version: 2.1.119 */}}각 대화형 세션이 시작될 때 [Remote Control](/ko/remote-control)을 자동으로 연결합니다. `/remote-control`을 기다리는 대신 `true`로 설정하여 항상 자동 연결하거나, `false`로 설정하여 절대 자동 연결하지 않거나, 조직의 기본값을 따르려면 설정 해제합니다. `/config`에 **모든 세션에 대해 Remote Control 활성화**로 표시됩니다. [모든 세션에 대해 Remote Control 활성화](/ko/remote-control#enable-remote-control-for-all-sessions)를 참조하세요 | `false` |297| `remoteControlAtStartup` | {/* min-version: 2.1.119 */}}각 대화형 세션이 시작될 때 [Remote Control](/ko/remote-control)을 자동으로 연결합니다. `/remote-control`을 기다리는 대신 `true`로 설정하여 항상 자동 연결하거나, `false`로 설정하여 절대 자동 연결하지 않거나, 조직의 기본값을 따르려면 설정 해제합니다. `/config`에 **모든 세션에 대해 Remote Control 활성화**로 표시됩니다. [모든 세션에 대해 Remote Control 활성화](/ko/remote-control#enable-remote-control-for-all-sessions)를 참조하세요 | `false` |

295| `requiredMaximumVersion` | Managed 설정만. 시작할 수 있는 최대 Claude Code 버전입니다. 실행 중인 버전이 더 최신이면 Claude Code는 시작 시 종료되고 사용자에게 조직의 승인된 방법을 통해 승인된 버전을 설치하도록 지시합니다. `claude install <version>`도 작동할 수 있습니다. 배경 자동 업데이트 및 `claude update`는 천장 위의 버전을 건너뜁니다. 범위 내 설치는 범위 내로 유지됩니다. `claude update`, `claude install` 및 `claude doctor`는 사용자가 복구할 수 있도록 천장 위에서 계속 작동합니다. 이 설정보다 먼저 나온 버전은 무시합니다 | `"2.1.150"` |298| `requiredMaximumVersion` | Managed 설정만. 시작할 수 있는 최대 Claude Code 버전입니다. 실행 중인 버전이 더 최신이면 Claude Code는 시작 시 종료되고 사용자에게 조직의 승인된 방법을 통해 승인된 버전을 설치하도록 지시합니다. `claude install <version>`도 작동할 수 있습니다. 배경 자동 업데이트 및 `claude update`는 천장 위의 버전을 건너뜁니다. 범위 내 설치는 범위 내로 유지됩니다. `claude update`, `claude install` 및 `claude doctor`는 사용자가 복구할 수 있도록 천장 위에서 계속 작동합니다. 이 설정보다 먼저 나온 버전은 무시합니다 | `"2.1.150"` |

296| `requiredMinimumVersion` | Managed 설정만. 시작하는 데 필요한 최소 Claude Code 버전입니다. 실행 중인 버전이 더 오래되면 Claude Code는 시작 시 종료되고 사용자에게 조직의 승인된 방법을 통해 업데이트하도록 지시합니다. `claude update`, `claude install` 및 `claude doctor`는 사용자가 복구할 수 있도록 바닥 아래에서 계속 작동합니다. 시작을 차단하지 않지만 다운그레이드를 방지하는 `minimumVersion`과 다릅니다. 이 설정보다 먼저 나온 버전은 무시합니다 | `"2.1.150"` |299| `requiredMinimumVersion` | Managed 설정만. 시작하는 데 필요한 최소 Claude Code 버전입니다. 실행 중인 버전이 더 오래되면 Claude Code는 시작 시 종료되고 사용자에게 조직의 승인된 방법을 통해 업데이트하도록 지시합니다. `claude update`, `claude install` 및 `claude doctor`는 사용자가 복구할 수 있도록 바닥 아래에서 계속 작동합니다. 시작을 차단하지 않지만 다운그레이드를 방지하는 `minimumVersion`과 다릅니다. 이 설정보다 먼저 나온 버전은 무시합니다 | `"2.1.150"` |

297| `respondToBashCommands` | {/* min-version: 2.1.186 */}}입력 상자 `!` 셸 명령이 실행된 후 Claude가 응답할지 여부입니다. 기본값: `true`. 응답 없이 명령 출력을 컨텍스트에 추가하려면 `false`로 설정합니다. [접두사 `!`를 사용한 셸 모드](/ko/interactive-mode#shell-mode-with-prefix)를 참조하세요. Claude Code v2.1.186 이상이 필요합니다 | `false` |300| `respectGitignore` | **기본값**: `true`. `@` 파일 선택기가 `.gitignore` 패턴을 존중할지 여부를 제어합니다. `true` `.gitignore` 패턴과 일치하는 파일은 제안에서 제외됩니다 | `false` |

298| `respectGitignore` | `@` 파일 선택기가 `.gitignore` 패턴을 존중할지 여부를 제어합니다. 기본값: `true`. `true` `.gitignore` 패턴과 일치하는 파일은 제안에서 제외됩니다 | `false` |301| `respondToBashCommands` | {/* min-version: 2.1.186 */}}**기본값**: `true`. 입력 상자 `!` 명령이 실행된 후 Claude가 응답할지 여부입니다. 응답 없이 명령 출력을 컨텍스트에 추가하려면 `false`로 설정합니다. [접두사 `!` 사용한 셸 모드](/ko/interactive-mode#shell-mode-with-prefix)를 참조하세요. Claude Code v2.1.186 이상이 필요합니다 | `false` |

299| `showClearContextOnPlanAccept` | 계획 수락 화면에서 "컨텍스트 지우기" 옵션을 표시합니다. 기본값: `false`. 옵션을 복원하려면 `true`로 설정합니다 | `true` |302| `showClearContextOnPlanAccept` | **기본값**: `false`. 계획 수락 화면에서 "컨텍스트 지우기" 옵션을 표시합니다. 옵션을 복원하려면 `true`로 설정합니다 | `true` |

300| `showThinkingSummaries` | 대화형 세션에서 [확장 사고](/ko/model-config#extended-thinking) 요약을 표시합니다. 기본값: `false`. 설정되지 않거나 `false`일 때 사고 블록은 API에 의해 편집되고 축소된 스텁으로 표시됩니다. 편집은 표시되는 내용만 변경하고 모델이 생성하는 내용은 변경하지 않습니다. 사고 지출을 줄이려면 [예산을 낮추거나 사고를 비활성화](/ko/model-config#extended-thinking)하세요. 이 설정은 비대화형 모드 (`-p`), Agent SDK 또는 VS Code와 같은 IDE 확장에서는 영향을 주지 않습니다 | `true` |303| `showThinkingSummaries` | **기본값**: `false`. 대화형 세션에서 [확장 사고](/ko/model-config#extended-thinking) 요약을 표시합니다. 설정되지 않거나 `false`일 때 사고 블록은 API에 의해 편집되고 축소된 스텁으로 표시됩니다. 편집은 표시되는 내용만 변경하고 모델이 생성하는 내용은 변경하지 않습니다. 사고 지출을 줄이려면 [예산을 낮추거나 사고를 비활성화](/ko/model-config#extended-thinking)하세요. 이 설정은 비대화형 모드 (`-p`), Agent SDK 또는 VS Code와 같은 IDE 확장에서는 영향을 주지 않습니다 | `true` |

301| `showTurnDuration` | 응답 후 턴 지속 시간 메시지를 표시합니다 (예: "Cooked for 1m 6s"). 기본값: `true`. `/config`에 **턴 지속 시간 표시**로 표시됩니다 | `false` |304| `showTurnDuration` | **기본값**: `true`. 응답 후 턴 지속 시간 메시지를 표시합니다 (예: "Cooked for 1m 6s"). `/config`에 **턴 지속 시간 표시**로 표시됩니다 | `false` |

302| `skillListingBudgetFraction` | {/* min-version: 2.1.105 */}}Claude가 각 턴에 보는 [skill 목록](/ko/skills#skill-descriptions-are-cut-short)을 위해 예약된 모델의 컨텍스트 윈도우의 분수입니다. 기본값: `0.01` (1%). 목록이 예산을 초과하면 가장 적게 사용되는 skills의 설명이 베어 이름으로 축소되어 Claude가 여전히 호출할 수 있지만 이유를 보지 못합니다. 더 많은 설명을 보이려면 높이고 턴당 더 많은 컨텍스트를 사용합니다. 더 많은 skills을 [`maxSkillDescriptionChars`](#available-settings) 아래에 맞추려면 낮춥니다. `/doctor`는 현재 잘림 수와 영향을 받는 skills를 표시합니다. Claude Code v2.1.105 이상이 필요합니다 | `0.02` |305| `skillListingBudgetFraction` | {/* min-version: 2.1.105 */}}**기본값**: `0.01` (1%). Claude가 각 턴에 보는 [skill 목록](/ko/skills#skill-descriptions-are-cut-short)을 위해 예약된 모델의 컨텍스트 윈도우의 분수입니다. 목록이 예산을 초과하면 가장 적게 사용되는 skills의 설명이 베어 이름으로 축소되어 Claude가 여전히 호출할 수 있지만 이유를 보지 못합니다. 더 많은 설명을 보이려면 높이고 턴당 더 많은 컨텍스트를 사용합니다. 더 많은 skills을 [`skillListingMaxDescChars`](#available-settings) 아래에 맞추려면 낮춥니다. `/doctor`는 현재 잘림 수와 영향을 받는 skills를 표시합니다. Claude Code v2.1.105 이상이 필요합니다 | `0.02` |

303| `skillOverrides` | {{/* min-version: 2.1.129 */}}skill 이름으로 키가 지정된 skill별 가시성 재정의입니다. 값은 `"on"`, `"name-only"`, `"user-invocable-only"` 또는 `"off"`입니다. SKILL.md를 편집하지 않고 skill을 숨기거나 축소할 있습니다. 플러그인 skills에는 적용되지 않으며, 이는 `/plugin`을 통해 관리됩니다. `/skills` 메뉴는 이를 `.claude/settings.local.json`에 작성합니다. [설정에서 skill 가시성 재정의](/ko/skills#override-skill-visibility-from-settings) 참조하세요. Claude Code v2.1.129 이상이 필요합니다 | `{"legacy-context": "name-only", "deploy": "off"}` |306| `skillListingMaxDescChars` | {/* min-version: 2.1.105 */}}**기본값**: `1536`. Claude가 턴에 보는 [skill 목록](/ko/skills#skill-descriptions-are-cut-short)의 결합된 `description` `when_to_use` 텍스트에 대한 skill별 문자 제한입니다. 길이보다 텍스트는 잘립니다. 설명을 유지하려면 높이고 턴당 많은 컨텍스트를 사용합니다. 많은 skills을 [`skillListingBudgetFraction`](#available-settings) 맞추려면 낮춥니다. Claude Code v2.1.105 이상이 필요합니다 | `2048` |

307| `skillOverrides` | {/* min-version: 2.1.129 */}}skill 이름으로 키가 지정된 skill별 가시성 재정의입니다. 값은 `"on"`, `"name-only"`, `"user-invocable-only"` 또는 `"off"`입니다. SKILL.md를 편집하지 않고 skill을 숨기거나 축소할 수 있습니다. 플러그인 skills에는 적용되지 않으며, 이는 `/plugin`을 통해 관리됩니다. `/skills` 메뉴는 이를 `.claude/settings.local.json`에 작성합니다. [설정에서 skill 가시성 재정의](/ko/skills#override-skill-visibility-from-settings)를 참조하세요. Claude Code v2.1.129 이상이 필요합니다 | `{"legacy-context": "name-only", "deploy": "off"}` |

304| `skipWebFetchPreflight` | [WebFetch 도메인 안전 검사](/ko/data-usage#webfetch-domain-safety-check)를 건너뜁니다. 이 검사는 각 요청된 호스트명을 가져오기 전에 `api.anthropic.com`으로 전송합니다. Bedrock, Vertex AI 또는 Foundry 배포와 같이 Anthropic으로의 트래픽을 차단하는 환경에서 `true`로 설정합니다. 건너뛰면 WebFetch는 차단 목록을 참조하지 않고 모든 URL을 시도합니다 | `true` |308| `skipWebFetchPreflight` | [WebFetch 도메인 안전 검사](/ko/data-usage#webfetch-domain-safety-check)를 건너뜁니다. 이 검사는 각 요청된 호스트명을 가져오기 전에 `api.anthropic.com`으로 전송합니다. Bedrock, Vertex AI 또는 Foundry 배포와 같이 Anthropic으로의 트래픽을 차단하는 환경에서 `true`로 설정합니다. 건너뛰면 WebFetch는 차단 목록을 참조하지 않고 모든 URL을 시도합니다 | `true` |

305| `spinnerTipsEnabled` | Claude가 작업 중일 때 스피너에 팁을 표시합니다. 기본값: `true`. 팁을 비활성화하려면 `false`로 설정합니다 | `false` |309| `spinnerTipsEnabled` | **기본값**: `true`. Claude가 작업 중일 때 스피너에 팁을 표시합니다. 팁을 비활성화하려면 `false`로 설정합니다 | `false` |

306| `spinnerTipsOverride` | 사용자 정의 문자열로 스피너 팁을 재정의합니다. `tips`: 팁 문자열 배열. `excludeDefault`: `true`이면 사용자 정의 팁만 표시하고, `false`이거나 없으면 사용자 정의 팁이 기본 제공 팁과 병합됩니다 | `{ "excludeDefault": true, "tips": ["Use our internal tool X"] }` |310| `spinnerTipsOverride` | 사용자 정의 문자열로 스피너 팁을 재정의합니다. `tips`: 팁 문자열 배열. `excludeDefault`: `true`이면 사용자 정의 팁만 표시하고, `false`이거나 없으면 사용자 정의 팁이 기본 제공 팁과 병합됩니다 | `{ "excludeDefault": true, "tips": ["Use our internal tool X"] }` |

307| `spinnerVerbs` | 스피너에 표시되는 작업 동사를 사용자 정의합니다. `mode`를 `"replace"`로 설정하여 동사만 사용하거나 `"append"`로 설정하여 기본값에 추가합니다 | `{"mode": "append", "verbs": ["Pondering", "Crafting"]}` |311| `spinnerVerbs` | 스피너에 표시되는 작업 동사를 사용자 정의합니다. `mode`를 `"replace"`로 설정하여 동사만 사용하거나 `"append"`로 설정하여 기본값에 추가합니다 | `{"mode": "append", "verbs": ["Pondering", "Crafting"]}` |

308| `sshConfigs` | [Desktop](/ko/desktop#pre-configure-ssh-connections-for-your-team) 환경 드롭다운에 표시할 SSH 연결입니다. 각 항목에는 `id`, `name` 및 `sshHost`가 필요하며, `sshPort`, `sshIdentityFile` 및 `startDirectory`는 선택 사항입니다. Managed 설정에서 설정되면 연결은 사용자에게 읽기 전용입니다. Managed 및 사용자 설정에서만 읽음 | `[{"id": "dev-vm", "name": "Dev VM", "sshHost": "user@dev.example.com"}]` |312| `sshConfigs` | [Desktop](/ko/desktop#pre-configure-ssh-connections-for-your-team) 환경 드롭다운에 표시할 SSH 연결입니다. 각 항목에는 `id`, `name` 및 `sshHost`가 필요하며, `sshPort`, `sshIdentityFile` 및 `startDirectory`는 선택 사항입니다. Managed 설정에서 설정되면 연결은 사용자에게 읽기 전용입니다. Managed 및 사용자 설정에서만 읽음 | `[{"id": "dev-vm", "name": "Dev VM", "sshHost": "user@dev.example.com"}]` |

309| `statusLine` | 컨텍스트를 표시하기 위한 사용자 정의 상태 줄을 구성합니다. [`statusLine` 문서](/ko/statusline)를 참조하세요 | `{"type": "command", "command": "~/.claude/statusline.sh"}` |313| `statusLine` | 컨텍스트를 표시하기 위한 사용자 정의 상태 줄을 구성합니다. 객체의 선택적 `padding`, `refreshInterval` 및 `hideVimModeIndicator` 필드는 간격, 주기적 재실행 및 프롬프트 아래의 기본 제공 vim 모드 표시기 숨김 여부를 제어합니다. [`statusLine` 문서](/ko/statusline#manually-configure-a-status-line)를 참조하세요 | `{"type": "command", "command": "~/.claude/statusline.sh"}` |

310| `strictKnownMarketplaces` | (Managed 설정만) 플러그인 마켓플레이스 소스의 허용 목록입니다. 정의되지 않음 = 제한 없음, 빈 배열 = 잠금. 마켓플레이스 추가 및 플러그인 설치, 업데이트, 새로고침 및 자동 업데이트에 적용되므로 정책이 설정되기 전에 추가된 마켓플레이스는 플러그인을 가져오는 데 사용할 수 없습니다. [Managed 마켓플레이스 제한](/ko/plugin-marketplaces#managed-marketplace-restrictions)을 참조하세요 | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |314| `strictKnownMarketplaces` | (Managed 설정만) 플러그인 마켓플레이스 소스의 허용 목록입니다. 정의되지 않음 = 제한 없음, 빈 배열 = 잠금. 마켓플레이스 추가 및 플러그인 설치, 업데이트, 새로고침 및 자동 업데이트에 적용되므로 정책이 설정되기 전에 추가된 마켓플레이스는 플러그인을 가져오는 데 사용할 수 없습니다. [Managed 마켓플레이스 제한](/ko/plugin-marketplaces#managed-marketplace-restrictions)을 참조하세요 | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |

311| `strictPluginOnlyCustomization` | (Managed 설정만) 플러그인 또는 managed 설정에서만 올 수 있도록 사용자 및 프로젝트 소스에서 skills, agents, hooks 및 MCP 서버를 차단합니다. `true`는 네 가지 모두를 잠그고, 배열은 명명된 것만 잠급니다. [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)을 참조하세요 | `["skills", "hooks"]` |315| `strictPluginOnlyCustomization` | (Managed 설정만) 플러그인 또는 managed 설정에서만 올 수 있도록 사용자 및 프로젝트 소스에서 skills, agents, hooks 및 MCP 서버를 차단합니다. `true`는 네 가지 모두를 잠그고, 배열은 명명된 것만 잠급니다. [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)을 참조하세요 | `["skills", "hooks"]` |

312| `syntaxHighlightingDisabled` | diffs, 코드 블록 및 파일 미리보기에서 구문 강조 비활성화 | `true` |316| `syntaxHighlightingDisabled` | diffs, 코드 블록 및 파일 미리보기에서 구문 강조 비활성화 | `true` |

313| `teammateMode` | [에이전트 팀](/ko/agent-teams) 팀원이 표시되는 방식입니다. 기본값: `in-process`. `in-process`, `auto` (tmux 또는 iTerm2에서 분할 창 선택, 그 외에는 in-process), `tmux` (tmux 또는 iTerm2를 사용하여 분할 창 선택, 터미널에서 감지됨) 또는 {/* min-version: 2.1.186 */}}`iterm2` (iTerm2 기본 분할 창 via `it2` CLI, v2.1.186에서 추가됨)를 허용합니다. 기본값은 v2.1.179에서 `auto`에서 변경되었습니다. `--teammate-mode`은 한 세션에 대해 이를 재정의합니다. [디스플레이 모드 선택](/ko/agent-teams#choose-a-display-mode)을 참조하세요 | `"auto"` |317| `teammateMode` | **기본값**: `in-process`. [에이전트 팀](/ko/agent-teams) 팀원이 표시되는 방식입니다. `in-process`, `auto` (tmux 또는 iTerm2에서 분할 창 선택, 그 외에는 in-process), `tmux` (tmux 또는 iTerm2를 사용하여 분할 창 선택, 터미널에서 감지됨) 또는 {/* min-version: 2.1.186 */}}`iterm2` (iTerm2 기본 분할 창 via `it2` CLI, v2.1.186에서 추가됨)를 허용합니다. 기본값은 v2.1.179에서 `auto`에서 변경되었습니다. `--teammate-mode`은 한 세션에 대해 이를 재정의합니다. [디스플레이 모드 선택](/ko/agent-teams#choose-a-display-mode)을 참조하세요 | `"auto"` |

314| `terminalProgressBarEnabled` | 지원되는 터미널에서 터미널 진행률 표시줄을 표시합니다: ConEmu, Ghostty 1.2.0+ 및 iTerm2 3.6.6+. 기본값: `true`. `/config`에 **터미널 진행률 표시줄**로 표시됩니다 | `false` |318| `terminalProgressBarEnabled` | **기본값**: `true`. 지원되는 터미널에서 터미널 진행률 표시줄을 표시합니다: ConEmu, Ghostty 1.2.0+ 및 iTerm2 3.6.6+. `/config`에 **터미널 진행률 표시줄**로 표시됩니다 | `false` |

315| `theme` | {{/* min-version: 2.1.119 */}}인터페이스의 색상 테마입니다. 기본값: `"dark"`. `"auto"`, `"dark"`, `"light"`, `"dark-daltonized"`, `"light-daltonized"`, `"dark-ansi"`, `"light-ansi"` 또는 `"custom:<slug>"` 또는 `"custom:<plugin-name>:<slug>"`과 같은 사용자 정의 테마 참조를 허용합니다. [사용자 정의 테마 만들기](/ko/terminal-config#create-a-custom-theme)를 참조하세요. `/config`에 **테마**로 표시됩니다 | `"dark"` |319| `theme` | {/* min-version: 2.1.119 */}}**기본값**: `"dark"`. 인터페이스의 색상 테마입니다. `"auto"`, `"dark"`, `"light"`, `"dark-daltonized"`, `"light-daltonized"`, `"dark-ansi"`, `"light-ansi"` 또는 `"custom:<slug>"` 또는 `"custom:<plugin-name>:<slug>"`과 같은 사용자 정의 테마 참조를 허용합니다. [사용자 정의 테마 만들기](/ko/terminal-config#create-a-custom-theme)를 참조하세요. `/config`에 **테마**로 표시됩니다 | `"dark"` |

316| `tui` | 터미널 UI 렌더러입니다. 깜박임 없는 [alt-screen 렌더러](/ko/fullscreen)가 있는 가상화된 스크롤백을 위해 `"fullscreen"`을 사용합니다. 클래식 메인 화면 렌더러를 위해 `"default"`를 사용합니다. `/tui`를 통해 설정합니다. [`CLAUDE_CODE_NO_FLICKER`](/ko/env-vars) 환경 변수도 설정할 수 있습니다. [에이전트 보기](/ko/agent-view)에서 열린 배경 세션은 이 설정과 관계없이 항상 fullscreen 렌더러를 사용합니다 | `"fullscreen"` |320| `tui` | 터미널 UI 렌더러입니다. 깜박임 없는 [alt-screen 렌더러](/ko/fullscreen)가 있는 가상화된 스크롤백을 위해 `"fullscreen"`을 사용합니다. 클래식 메인 화면 렌더러를 위해 `"default"`를 사용합니다. `/tui`를 통해 설정합니다. [`CLAUDE_CODE_NO_FLICKER`](/ko/env-vars) 환경 변수도 설정할 수 있습니다. [에이전트 보기](/ko/agent-view)에서 열린 배경 세션은 이 설정과 관계없이 항상 fullscreen 렌더러를 사용합니다 | `"fullscreen"` |

317| `ultracode` | 세션에 대해 [ultracode](/ko/workflows#let-claude-decide-with-ultracode)를 켭니다. 세션 전용이며 `settings.json`에서 읽지 않습니다. `/effort ultracode`, `--settings` 또는 Agent SDK 제어 요청을 통해 설정합니다 | `true` |321| `ultracode` | 세션에 대해 [ultracode](/ko/workflows#let-claude-decide-with-ultracode)를 켭니다. 세션 전용이며 `settings.json`에서 읽지 않습니다. `/effort ultracode`, `--settings` 또는 Agent SDK 제어 요청을 통해 설정합니다 | `true` |

318| `useAutoModeDuringPlan` | 자동 모드를 사용할 수 있을 때 계획 모드가 자동 모드 의미론을 사용할지 여부입니다. 기본값: `true`. 공유 프로젝트 설정에서는 읽지 않음. `/config`에 "계획 중 자동 모드 사용"으로 표시됨 | `false` |322| `useAutoModeDuringPlan` | **기본값**: `true`. 자동 모드를 사용할 수 있을 때 계획 모드가 자동 모드 의미론을 사용할지 여부입니다. 공유 프로젝트 설정에서는 읽지 않음. `/config`에 "계획 중 자동 모드 사용"으로 표시됨 | `false` |

319| `verbose` | {{/* min-version: 2.1.119 */}}잘린 요약 대신 전체 도구 출력을 표시합니다. 기본값: `false`. `/config`에 **상세 출력**으로 표시됩니다. `--verbose` 플래그는 한 세션에 대해 이를 재정의합니다 | `true` |323| `verbose` | {/* min-version: 2.1.119 */}}**기본값**: `false`. 잘린 요약 대신 전체 도구 출력을 표시합니다. `/config`에 **상세 출력**으로 표시됩니다. `--verbose` 플래그는 한 세션에 대해 이를 재정의합니다 | `true` |

320| `viewMode` | 시작 시 기본 트랜스크립트 보기 모드입니다. `"default"`, `"verbose"` 또는 `"focus"`를 허용합니다. 설정되면 sticky `/focus` 선택을 재정의합니다. `--verbose` 플래그는 한 세션에 대해 이를 재정의합니다 | `"verbose"` |324| `viewMode` | 시작 시 기본 트랜스크립트 보기 모드입니다. `"default"`, `"verbose"` 또는 `"focus"`를 허용합니다. 설정되면 sticky `/focus` 선택을 재정의합니다. `--verbose` 플래그는 한 세션에 대해 이를 재정의합니다 | `"verbose"` |

321| `voice` | [음성 받아쓰기](/ko/voice-dictation) 설정입니다. `enabled`는 받아쓰기를 켜고, `mode`는 `"hold"` 또는 `"tap"`을 선택하고, `autoSubmit`은 hold 모드에서 키 릴리스 시 프롬프트를 전송합니다. `/voice`를 실행할 때 자동으로 작성됩니다. Claude.ai 계정이 필요합니다 | `{ "enabled": true, "mode": "tap" }` |325| `voice` | [음성 받아쓰기](/ko/voice-dictation) 설정입니다. `enabled`는 받아쓰기를 켜고, `mode`는 `"hold"` 또는 `"tap"`을 선택하고, `autoSubmit`은 hold 모드에서 키 릴리스 시 프롬프트를 전송합니다. `/voice`를 실행할 때 자동으로 작성됩니다. Claude.ai 계정이 필요합니다 | `{ "enabled": true, "mode": "tap" }` |

322| `voiceEnabled` | `voice.enabled`에 대한 레거시 별칭입니다. `voice` 객체를 선호합니다 | `true` |326| `voiceEnabled` | `voice.enabled`에 대한 레거시 별칭입니다. `voice` 객체를 선호합니다 | `true` |

323| `wheelScrollAccelerationEnabled` | {{/* min-version: 2.1.174 */}}[fullscreen 렌더링](/ko/fullscreen#mouse-wheel-scrolling)에서 빠른 스크롤 중에 마우스 휠 스크롤 속도를 가속화합니다. 기본값: `true`. 휠 노치당 일정한 스크롤 속도를 원하면 `false`로 설정합니다. Claude Code v2.1.174 이상이 필요합니다 | `false` |327| `wheelScrollAccelerationEnabled` | {/* min-version: 2.1.174 */}}**기본값**: `true`. [fullscreen 렌더링](/ko/fullscreen#mouse-wheel-scrolling)에서 빠른 스크롤 중에 마우스 휠 스크롤 속도를 가속화합니다. 휠 노치당 일정한 스크롤 속도를 원하면 `false`로 설정합니다. Claude Code v2.1.174 이상이 필요합니다 | `false` |

324| `workflowKeywordTriggerEnabled` | {{/* min-version: 2.1.157 */}}프롬프트의 단어 `ultracode`이 [동적 워크플로우](/ko/workflows#ask-for-a-workflow-in-your-prompt)를 트리거할지 여부입니다. 기본값: `true`. 하나를 트리거하지 않고 단어를 입력하려면 `false`로 설정합니다. `ultracode` 노력 설정, `/workflows` 및 저장된 워크플로우 명령은 영향을 받지 않습니다. `/config`에 **Ultracode 키워드 트리거**로 표시됩니다. v2.1.157에서 추가됨; v2.1.160 이전에 트리거 키워드는 `workflow`였습니다 | `false` |328| `workflowKeywordTriggerEnabled` | {/* min-version: 2.1.157 */}}**기본값**: `true`. 프롬프트의 단어 `ultracode`이 [동적 워크플로우](/ko/workflows#ask-for-a-workflow-in-your-prompt)를 트리거할지 여부입니다. 하나를 트리거하지 않고 단어를 입력하려면 `false`로 설정합니다. `ultracode` 노력 설정, `/workflows` 및 저장된 워크플로우 명령은 영향을 받지 않습니다. `/config`에 **Ultracode 키워드 트리거**로 표시됩니다. v2.1.157에서 추가됨; v2.1.160 이전에 트리거 키워드는 `workflow`였습니다 | `false` |

325| `wslInheritsWindowsSettings` | (Windows managed 설정만) `true`일 때 WSL의 Claude Code는 `/etc/claude-code`에 추가하여 Windows 정책 체인에서 managed 설정을 읽으며 Windows 소스가 우선합니다. Windows 관리자가 작성해야 하는 HKLM 레지스트리 키 또는 `C:\Program Files\ClaudeCode\managed-settings.json`에서 설정된 경우에만 적용됩니다. HKCU 정책도 WSL에 적용되려면 플래그를 HKCU 자체에도 설정해야 합니다. 기본 Windows에는 영향을 주지 않습니다 | `true` |329| `wslInheritsWindowsSettings` | (Windows managed 설정만) `true`일 때 WSL의 Claude Code는 `/etc/claude-code`에 추가하여 Windows 정책 체인에서 managed 설정을 읽으며 Windows 소스가 우선합니다. Windows 관리자가 작성해야 하는 HKLM 레지스트리 키 또는 `C:\Program Files\ClaudeCode\managed-settings.json`에서 설정된 경우에만 적용됩니다. HKCU 정책도 WSL에 적용되려면 플래그를 HKCU 자체에도 설정해야 합니다. 기본 Windows에는 영향을 주지 않습니다 | `true` |

326 330 

327<h3 id="global-config-settings">331<h3 id="global-config-settings">


335</Note>339</Note>

336 340 

337| 키 | 설명 | 예제 |341| 키 | 설명 | 예제 |

338| :------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------- |342| :------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------- |

339| `autoConnectIde` | Claude Code가 외부 터미널에서 시작될 때 실행 중인 IDE에 자동으로 연결합니다. 기본값: `false`. VS Code 또는 JetBrains 터미널 외부에서 실행할 때 `/config`에 \*\*IDE에 자동 연결 (외부 터미널)\*\*로 표시됩니다. [`CLAUDE_CODE_AUTO_CONNECT_IDE`](/ko/env-vars) 환경 변수가 설정되면 이를 재정의합니다 | `true` |343| `autoConnectIde` | **기본값**: `false`. Claude Code가 외부 터미널에서 시작될 때 실행 중인 IDE에 자동으로 연결합니다. VS Code 또는 JetBrains 터미널 외부에서 실행할 때 `/config`에 \*\*IDE에 자동 연결 (외부 터미널)\*\*로 표시됩니다. [`CLAUDE_CODE_AUTO_CONNECT_IDE`](/ko/env-vars) 환경 변수가 설정되면 이를 재정의합니다 | `true` |

340| `autoInstallIdeExtension` | VS Code 터미널에서 실행할 때 Claude Code IDE 확장을 자동으로 설치합니다. 기본값: `true`. VS Code 또는 JetBrains 터미널 내에서 실행할 때 `/config`에 **IDE 확장 자동 설치**로 표시됩니다. [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/ko/env-vars) 환경 변수도 설정할 수 있습니다 | `false` |344| `autoInstallIdeExtension` | **기본값**: `true`. VS Code 터미널에서 실행할 때 Claude Code IDE 확장을 자동으로 설치합니다. VS Code 또는 JetBrains 터미널 내에서 실행할 때 `/config`에 **IDE 확장 자동 설치**로 표시됩니다. [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/ko/env-vars) 환경 변수도 설정할 수 있습니다 | `false` |

341| `externalEditorContext` | `Ctrl+G`로 외부 편집기를 열 때 Claude의 이전 응답을 `#` 주석 처리된 컨텍스트로 앞에 붙입니다. 기본값: `false`. `/config`에 **외부 편집기에 마지막 응답 표시**로 표시됩니다 | `true` |345| `externalEditorContext` | **기본값**: `false`. `Ctrl+G`로 외부 편집기를 열 때 Claude의 이전 응답을 `#` 주석 처리된 컨텍스트로 앞에 붙입니다. `/config`에 **외부 편집기에 마지막 응답 표시**로 표시됩니다 | `true` |

342| `teammateDefaultModel` | [에이전트 팀](/ko/agent-teams) 팀원을 위한 기본 모델로 spawn 프롬프트가 하나를 지정하지 않을 때 사용됩니다. `"sonnet"`과 같은 모델 별칭으로 설정하거나 lead의 현재 `/model` 선택을 상속하려면 `null`로 설정합니다. `/config`에 **기본 팀원 모델**로 표시됩니다 | `"sonnet"` |346| `teammateDefaultModel` | [에이전트 팀](/ko/agent-teams) 팀원을 위한 기본 모델로 spawn 프롬프트가 하나를 지정하지 않을 때 사용됩니다. `"sonnet"`과 같은 모델 별칭으로 설정하거나 lead의 현재 `/model` 선택을 상속하려면 `null`로 설정합니다. `/config`에 **기본 팀원 모델**로 표시됩니다 | `"sonnet"` |

343 347 

344<h3 id="worktree-settings">348<h3 id="worktree-settings">


348`--worktree`가 git worktrees를 생성하고 관리하는 방식을 구성합니다.352`--worktree`가 git worktrees를 생성하고 관리하는 방식을 구성합니다.

349 353 

350| 키 | 설명 | 예제 |354| 키 | 설명 | 예제 |

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

352| `worktree.baseRef` | 새 worktrees가 분기하는 ref입니다. `"fresh"` (기본값)은 깨끗한 트리와 일치하는 원격에 대해 `origin/<default-branch>`에서 분기합니다. `"head"`는 현재 local `HEAD`에서 분기하므로 푸시되지 않은 커밋 및 feature-branch 상태가 worktree에 있습니다. `--worktree`, `EnterWorktree` 도구 및 subagent 격리에 적용됩니다 | `"head"` |356| `worktree.baseRef` | 새 worktrees가 분기하는 ref입니다. `"fresh"` (기본값)은 깨끗한 트리와 일치하는 원격에 대해 `origin/<default-branch>`에서 분기합니다. `"head"`는 현재 local `HEAD`에서 분기하므로 푸시되지 않은 커밋 및 feature-branch 상태가 worktree에 있습니다. `--worktree`, `EnterWorktree` 도구 및 subagent 격리에 적용됩니다 | `"head"` |

353| `worktree.symlinkDirectories` | 각 worktree에서 중복을 피하기 위해 메인 저장소에서 symlink할 디렉토리입니다. 기본적으로 디렉토리는 symlink되지 않습니다 | `["node_modules", ".cache"]` |357| `worktree.symlinkDirectories` | 각 worktree에서 중복을 피하기 위해 메인 저장소에서 symlink할 디렉토리입니다. 기본적으로 디렉토리는 symlink되지 않습니다 | `["node_modules", ".cache"]` |

354| `worktree.sparsePaths` | git sparse-checkout을 통해 각 worktree에서 체크아웃할 디렉토리입니다. 나열된 경로만 디스크에 작성되므로 대규모 monorepos에서 더 빠릅니다 | `["packages/my-app", "shared/utils"]` |358| `worktree.sparsePaths` | git sparse-checkout을 통해 각 worktree에서 체크아웃할 디렉토리입니다. 나열된 경로만 디스크에 작성되므로 대규모 monorepos에서 더 빠릅니다 | `["packages/my-app", "shared/utils"]` |

355| `worktree.bgIsolation` | {{/* min-version: 2.1.143 */}}[배경 세션](/ko/agent-view#how-file-edits-are-isolated)의 격리 모드입니다. `"worktree"` (기본값)은 `EnterWorktree`가 호출될 때까지 메인 체크아웃에서 `Edit`/`Write`를 차단합니다. `"none"`은 배경 작업이 작업 복사본을 직접 편집하도록 허용합니다. Claude Code v2.1.143 이상이 필요합니다 | `"none"` |359| `worktree.bgIsolation` | {/* min-version: 2.1.143 */}}[배경 세션](/ko/agent-view#how-file-edits-are-isolated)의 격리 모드입니다. `"worktree"` (기본값)은 `EnterWorktree`가 호출될 때까지 메인 체크아웃에서 `Edit`/`Write`를 차단합니다. `"none"`은 배경 작업이 작업 복사본을 직접 편집하도록 허용합니다. Claude Code v2.1.143 이상이 필요합니다 | `"none"` |

356 360 

357worktrees에 `.env`와 같은 gitignored 파일을 복사하려면 설정 대신 프로젝트 루트의 [`.worktreeinclude` 파일](/ko/worktrees#copy-gitignored-files-into-worktrees)을 사용합니다.361worktrees에 `.env`와 같은 gitignored 파일을 복사하려면 설정 대신 프로젝트 루트의 [`.worktreeinclude` 파일](/ko/worktrees#copy-gitignored-files-into-worktrees)을 사용합니다.

358 362 


483**기본 커밋 attribution:**487**기본 커밋 attribution:**

484 488 

485```text theme={null}489```text theme={null}

486Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>490Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

487```491```

488 492 

489세션의 활성 모델을 반영하는 trailer의 모델 이름입니다.493세션의 활성 모델을 반영하는 trailer의 모델 이름입니다.


6561. **Managed 설정** ([서버 관리](/ko/server-managed-settings), [MDM/OS 수준 정책](#configuration-scopes) 또는 [managed 설정](#settings-files))6601. **Managed 설정** ([서버 관리](/ko/server-managed-settings), [MDM/OS 수준 정책](#configuration-scopes) 또는 [managed 설정](#settings-files))

657 * IT에서 서버 전달, MDM 구성 프로필, 레지스트리 정책 또는 managed 설정 파일을 통해 배포한 정책661 * IT에서 서버 전달, MDM 구성 프로필, 레지스트리 정책 또는 managed 설정 파일을 통해 배포한 정책

658 * 명령줄 인수를 포함한 다른 수준으로 재정의할 수 없음662 * 명령줄 인수를 포함한 다른 수준으로 재정의할 수 없음

659 * Managed 계층 내에서 우선순위는: 서버 관리 > MDM/OS 수준 정책 > 파일 기반 (`managed-settings.d/*.json` + `managed-settings.json`) > HKCU 레지스트리 (Windows만). 하나의 managed 소스만 사용되며 소스는 병합되지 않습니다. 파일 기반 계층 내에서 드롭인 파일과 기본 파일이 함께 병합됩니다.663 * Managed 계층 내에서 우선순위는: [`policyHelper`](#compute-managed-settings-with-a-policy-helper) 출력 (구성된 경우 유일한 managed 소스 사용) > 원격 (claude.ai [서버 관리](/ko/server-managed-settings) 또는 [Claude apps gateway](/ko/claude-apps-gateway) 전달) > MDM/OS 수준 정책 > 파일 기반 (`managed-settings.d/*.json` + `managed-settings.json`) > HKCU 레지스트리 (Windows만). 하나의 managed 소스만 사용되며 소스는 병합되지 않습니다. 파일 기반 계층 내에서 드롭인 파일과 기본 파일이 함께 병합됩니다.

660 * Agent SDK 또는 IDE 확장과 같은 embedding host는 SDK `managedSettings` 옵션을 통해 정책을 제공할 수 있습니다. 기본적으로 이는 관리자 배포 managed 계층이 있을 때 무시됩니다. 관리자는 [`parentSettingsBehavior`](#available-settings)를 `"merge"`로 설정하여 옵트인할 수 있습니다. embedder의 값은 필터링되므로 managed 정책을 강화할 수 있지만 완화할 수 없습니다.664 * Agent SDK 또는 IDE 확장과 같은 embedding host는 SDK `managedSettings` 옵션을 통해 정책을 제공할 수 있습니다. 기본적으로 이는 관리자 배포 managed 계층이 있을 때 무시됩니다: 서버 관리 설정, MDM 또는 OS 수준 정책, 또는 managed 설정 파일. 사용자 쓰기 가능 HKCU 레지스트리 폴백은 관리자 배포 소스로 계산되지 않습니다. 관리자는 [`parentSettingsBehavior`](#available-settings)를 `"merge"`로 설정하여 옵트인할 수 있습니다. embedder의 값은 필터링되므로 managed 정책을 강화할 수 있지만 완화할 수 없습니다.

661 665 

6622. **명령줄 인수**6662. **명령줄 인수**

663 * 특정 세션에 대한 임시 재정의. `--settings <file-or-json>`을 통해 전달된 JSON은 파일 기반 설정과 동일한 규칙을 사용하여 병합됩니다: 여기에 설정된 키는 local, project 또는 user 설정의 동일한 키를 재정의하고, 키를 생략하면 낮은 계층 값이 유지됩니다667 * 특정 세션에 대한 임시 재정의. `--settings <file-or-json>`을 통해 전달된 JSON은 파일 기반 설정과 동일한 규칙을 사용하여 병합됩니다: 여기에 설정된 키는 local, project 또는 user 설정의 동일한 키를 재정의하고, 키를 생략하면 낮은 계층 값이 유지됩니다


706 710 

707Claude Code의 내부 시스템 프롬프트는 게시되지 않습니다. 사용자 정의 지침을 추가하려면 `CLAUDE.md` 파일 또는 `--append-system-prompt` 플래그를 사용합니다.711Claude Code의 내부 시스템 프롬프트는 게시되지 않습니다. 사용자 정의 지침을 추가하려면 `CLAUDE.md` 파일 또는 `--append-system-prompt` 플래그를 사용합니다.

708 712 

709<h3 id="excluding-sensitive-files">713<h3 id="exclude-sensitive-files">

710 민감한 파일 제외714 민감한 파일 제외

711</h3>715</h3>

712 716 


786 프로젝트 설정은 사용자 설정보다 우선순위가 높으므로 `~/.claude/settings.json`에서 플러그인을 `false`로 설정해도 프로젝트의 `.claude/settings.json`이 활성화하는 플러그인은 비활성화되지 않습니다. 머신에서 프로젝트 활성화 플러그인을 거부하려면 대신 `.claude/settings.local.json`에서 `false`로 설정합니다.790 프로젝트 설정은 사용자 설정보다 우선순위가 높으므로 `~/.claude/settings.json`에서 플러그인을 `false`로 설정해도 프로젝트의 `.claude/settings.json`이 활성화하는 플러그인은 비활성화되지 않습니다. 머신에서 프로젝트 활성화 플러그인을 거부하려면 대신 `.claude/settings.local.json`에서 `false`로 설정합니다.

787 791 

788 Managed 설정으로 강제 활성화된 플러그인은 managed 설정이 local 설정을 재정의하므로 이 방식으로 비활성화할 수 없습니다.792 Managed 설정으로 강제 활성화된 플러그인은 managed 설정이 local 설정을 재정의하므로 이 방식으로 비활성화할 수 없습니다.

793 

794 Claude Code v2.1.195부터 GitHub 저장소 또는 npm 패키지와 같은 외부 소스의 플러그인을 프로젝트의 `.claude/settings.json`에서 활성화해도 다른 사람을 위해 설치되지 않습니다. 플러그인을 로드하는 모든 경로는 각 사용자에게 실행되기 전에 [플러그인을 설치하고 신뢰](/ko/discover-plugins#configure-team-marketplaces)하도록 요청합니다.

789</Note>795</Note>

790 796 

791**예제**:797**예제**:


909{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }915{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }

910```916```

911 917 

912필드: `repo` (필수), `ref` (선택: 분기/태그/SHA), `path` (선택: 하위 디렉토리)918필드: `repo` (필수), `ref` (선택: 분기 또는 태그), `path` (선택: 하위 디렉토리)

913 919 

9142. **Git 저장소**:9202. **Git 저장소**:

915 921 


919{ "source": "git", "url": "ssh://git@git.example.com/plugins.git", "ref": "v3.1", "path": "approved" }925{ "source": "git", "url": "ssh://git@git.example.com/plugins.git", "ref": "v3.1", "path": "approved" }

920```926```

921 927 

922필드: `url` (필수), `ref` (선택: 분기/태그/SHA), `path` (선택: 하위 디렉토리)928필드: `url` (필수), `ref` (선택: 분기 또는 태그), `path` (선택: 하위 디렉토리)

923 929 

9243. **URL 기반 마켓플레이스**:9303. **URL 기반 마켓플레이스**:

925 931 


1018}1024}

1019```1025```

1020 1026 

1021예제 - 모든 마켓플레이스 추가 비활성화:1027예제: 모든 마켓플레이스 추가 비활성화:

1022 1028 

1023```json theme={null}1029```json theme={null}

1024{1030{


1041 1047 

1042**정확한 일치 요구 사항**:1048**정확한 일치 요구 사항**:

1043 1049 

1044마켓플레이스 소스는 사용자의 추가가 허용되려면 **정확히** 일치해야 합니다. git 기반 소스 (`github` 및 `git`)의 경우 이는 모든 선택적 필드를 포함합니다:1050마켓플레이스 소스는 사용자의 추가가 허용되려면 정확히 일치해야 합니다. git 기반 소스 (`github` 및 `git`)의 경우 이는 모든 선택적 필드를 포함합니다:

1045 1051 

1046* `repo` 또는 `url`이 정확히 일치해야 합니다1052* `repo` 또는 `url`이 정확히 일치해야 합니다

1047* `ref` 필드가 정확히 일치해야 합니다 (또는 둘 다 정의되지 않음)1053* `ref` 필드가 정확히 일치해야 합니다 (또는 둘 다 정의되지 않음)

1048* `path` 필드가 정확히 일치해야 합니다 (또는 둘 다 정의되지 않음)1054* `path` 필드가 정확히 일치해야 합니다 (또는 둘 다 정의되지 않음)

1049 1055 

1050일치하지 **않는** 소스의 예:1056일치하지 않는 소스의 예:

1051 1057 

1052```json theme={null}1058```json theme={null}

1053// 이들은 다른 소스입니다:1059// 이들은 다른 소스입니다:


1152 1158 

1153Claude Code 버전이 인식하지 못하는 표면 이름은 설정 파일을 실패시키지 않고 무시되므로 모든 클라이언트가 업데이트되기 전에 새 표면 이름을 추가할 수 있습니다.1159Claude Code 버전이 인식하지 못하는 표면 이름은 설정 파일을 실패시키지 않고 무시되므로 모든 클라이언트가 업데이트되기 전에 새 표면 이름을 추가할 수 있습니다.

1154 1160 

1155<h3 id="managing-plugins">1161<h3 id="manage-plugins">

1156 플러그인 관리1162 플러그인 관리

1157</h3>1163</h3>

1158 1164 

setup.md +1 −1

Details

36</h2>36</h2>

37 37 

38<Tip>38<Tip>

39 그래픽 인터페이스를 선호하시나요? [Desktop 앱](/ko/desktop-quickstart)을 사용하면 터미널 없이 Claude Code를 사용할 수 있습니다. [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs) 또는 [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs)용으로 다운로드하세요.39 그래픽 인터페이스를 선호하시나요? [Desktop 앱](/ko/desktop-quickstart)을 사용하면 터미널 없이 Claude Code를 사용할 수 있습니다. [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs), [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) 또는 [Linux](https://claude.com/download?utm_source=claude_code\&utm_medium=docs)용으로 다운로드하세요.

40 40 

41 터미널이 처음이신가요? 단계별 지침은 [터미널 가이드](/ko/terminal-guide)를 참조하세요.41 터미널이 처음이신가요? 단계별 지침은 [터미널 가이드](/ko/terminal-guide)를 참조하세요.

42</Tip>42</Tip>

skills.md +9 −4

Details

245모든 필드는 선택적입니다. Claude가 skill을 언제 사용할지 알 수 있도록 `description`만 권장됩니다.245모든 필드는 선택적입니다. Claude가 skill을 언제 사용할지 알 수 있도록 `description`만 권장됩니다.

246 246 

247| 필드 | 필수 | 설명 |247| 필드 | 필수 | 설명 |

248| :------------------------- | :-- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |248| :------------------------- | :-- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

249| `name` | 아니오 | skill 목록에 표시되는 표시 이름입니다. 디렉토리 이름으로 기본값이 설정됩니다. skill을 호출하기 위해 입력하는 이름과 어떻게 다른지는 [skill이 명령어 이름을 얻는 방법](#how-a-skill-gets-its-command-name)을 참조하세요. |249| `name` | 아니오 | skill 목록에 표시되는 표시 이름입니다. 디렉토리 이름으로 기본값이 설정됩니다. skill을 호출하기 위해 입력하는 이름과 어떻게 다른지는 [skill이 명령어 이름을 얻는 방법](#how-a-skill-gets-its-command-name)을 참조하세요. |

250| `description` | 권장 | skill이 무엇을 하는지, 언제 사용할지. Claude는 이를 사용하여 skill을 자동으로 적용할 시기를 결정합니다. 생략하면 markdown 콘텐츠의 첫 번째 단락을 사용합니다. 주요 사용 사례를 앞에 배치합니다: 결합된 `description` 및 `when_to_use` 텍스트는 컨텍스트 사용을 줄이기 위해 skill 목록에서 1,536자로 잘립니다. |250| `description` | 권장 | skill이 무엇을 하는지, 언제 사용할지. Claude는 이를 사용하여 skill을 자동으로 적용할 시기를 결정합니다. 생략하면 markdown 콘텐츠의 첫 번째 단락을 사용합니다. 주요 사용 사례를 앞에 배치합니다: 결합된 `description` 및 `when_to_use` 텍스트는 컨텍스트 사용을 줄이기 위해 skill 목록에서 1,536자로 잘립니다. |

251| `when_to_use` | 아니오 | Claude가 skill을 호출해야 할 때에 대한 추가 컨텍스트(예: 트리거 구문 또는 예제 요청). skill 목록에서 `description`에 추가되며 1,536자 제한에 포함됩니다. |251| `when_to_use` | 아니오 | Claude가 skill을 호출해야 할 때에 대한 추가 컨텍스트(예: 트리거 구문 또는 예제 요청). skill 목록에서 `description`에 추가되며 1,536자 제한에 포함됩니다. |

252| `argument-hint` | 아니오 | 예상 인수를 나타내기 위해 자동 완성 중에 표시되는 힌트. 예: `[issue-number]` 또는 `[filename] [format]`. |252| `argument-hint` | 아니오 | 예상 인수를 나타내기 위해 자동 완성 중에 표시되는 힌트. 예: `[issue-number]` 또는 `[filename] [format]`. |

253| `arguments` | 아니오 | skill 콘텐츠에서 [`$name` 치환](#available-string-substitutions)을 위한 명명된 위치 인수. 공백으로 구분된 문자열 또는 YAML 목록을 허용합니다. 이름은 순서대로 인수 위치에 매핑됩니다. |253| `arguments` | 아니오 | skill 콘텐츠에서 [`$name` 치환](#available-string-substitutions)을 위한 명명된 위치 인수. 공백으로 구분된 문자열 또는 YAML 목록을 허용합니다. 이름은 순서대로 인수 위치에 매핑됩니다. |

254| `disable-model-invocation` | 아니오 | Claude가 이 skill을 자동으로 로드하는 것을 방지하려면 `true`로 설정합니다. `/name`으로 수동으로 트리거하려는 워크플로우에 사용합니다. 또한 skill이 [subagents에 미리 로드되는 것](/ko/sub-agents#preload-skills-into-subagents)을 방지합니다. 기본값: `false`. |254| `disable-model-invocation` | 아니오 | Claude가 이 skill을 자동으로 로드하는 것을 방지하려면 `true`로 설정합니다. `/name`으로 수동으로 트리거하려는 워크플로우에 사용합니다. 또한 skill이 [subagents에 미리 로드되는 것](/ko/sub-agents#preload-skills-into-subagents)을 방지합니다. v2.1.196부터는 [예약된 작업](/ko/scheduled-tasks)이 skill을 프롬프트로 하여 실행될 때 skill이 실행되는 것도 방지합니다. 기본값: `false`. |

255| `user-invocable` | 아니오 | `/` 메뉴에서 숨기려면 `false`로 설정합니다. 사용자가 직접 호출하지 않아야 하는 배경 지식에 사용합니다. 기본값: `true`. |255| `user-invocable` | 아니오 | `/` 메뉴에서 숨기려면 `false`로 설정합니다. 사용자가 직접 호출하지 않아야 하는 배경 지식에 사용합니다. 기본값: `true`. |

256| `allowed-tools` | 아니오 | 이 skill이 활성화되었을 때 Claude가 권한을 요청하지 않고 사용할 수 있는 도구. 공백 또는 쉼표로 구분된 문자열 또는 YAML 목록을 허용합니다. |256| `allowed-tools` | 아니오 | 이 skill이 활성화되었을 때 Claude가 권한을 요청하지 않고 사용할 수 있는 도구. 공백 또는 쉼표로 구분된 문자열 또는 YAML 목록을 허용합니다. |

257| `disallowed-tools` | 아니오 | 이 skill이 활성화되었을 때 Claude의 사용 가능한 도구 풀에서 제거되는 도구. `AskUserQuestion`과 같이 배경 루프에 대해 특정 도구를 호출하지 않아야 하는 자율 skills에 사용합니다. 공백 또는 쉼표로 구분된 문자열 또는 YAML 목록을 허용합니다. 다음 메시지를 보낼 때 제한이 해제됩니다. |257| `disallowed-tools` | 아니오 | 이 skill이 활성화되었을 때 Claude의 사용 가능한 도구 풀에서 제거되는 도구. `AskUserQuestion`과 같이 배경 루프에 대해 특정 도구를 호출하지 않아야 하는 자율 skills에 사용합니다. 공백 또는 쉼표로 구분된 문자열 또는 YAML 목록을 허용합니다. 다음 메시지를 보낼 때 제한이 해제됩니다. |


288Skills는 skill 콘텐츠의 동적 값에 대한 문자열 치환을 지원합니다:288Skills는 skill 콘텐츠의 동적 값에 대한 문자열 치환을 지원합니다:

289 289 

290| 변수 | 설명 |290| 변수 | 설명 |

291| :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |291| :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

292| `$ARGUMENTS` | skill을 호출할 때 전달된 모든 인수. `$ARGUMENTS`가 콘텐츠에 없으면 인수가 `ARGUMENTS: <value>`로 추가됩니다. |292| `$ARGUMENTS` | skill을 호출할 때 전달된 모든 인수. `$ARGUMENTS`가 콘텐츠에 없으면 인수가 `ARGUMENTS: <value>`로 추가됩니다. |

293| `$ARGUMENTS[N]` | 0 기반 인덱스로 특정 인수에 액세스합니다(예: `$ARGUMENTS[0]`은 첫 번째 인수). |293| `$ARGUMENTS[N]` | 0 기반 인덱스로 특정 인수에 액세스합니다(예: `$ARGUMENTS[0]`은 첫 번째 인수). |

294| `$N` | `$ARGUMENTS[N]`의 약자(예: `$0`은 첫 번째 인수, `$1`은 두 번째 인수). |294| `$N` | `$ARGUMENTS[N]`의 약자(예: `$0`은 첫 번째 인수, `$1`은 두 번째 인수). |


296| `${CLAUDE_SESSION_ID}` | 현재 세션 ID. 로깅, 세션별 파일 생성 또는 skill 출력을 세션과 연관시키는 데 유용합니다. |296| `${CLAUDE_SESSION_ID}` | 현재 세션 ID. 로깅, 세션별 파일 생성 또는 skill 출력을 세션과 연관시키는 데 유용합니다. |

297| `${CLAUDE_EFFORT}` | 현재 노력 수준: `low`, `medium`, `high`, `xhigh`, 또는 `max`. Ultracode는 별개의 수준이 아니며 `xhigh`로 보고됩니다. 이를 사용하여 활성 노력 설정에 맞게 skill 지침을 조정합니다. |297| `${CLAUDE_EFFORT}` | 현재 노력 수준: `low`, `medium`, `high`, `xhigh`, 또는 `max`. Ultracode는 별개의 수준이 아니며 `xhigh`로 보고됩니다. 이를 사용하여 활성 노력 설정에 맞게 skill 지침을 조정합니다. |

298| `${CLAUDE_SKILL_DIR}` | skill의 `SKILL.md` 파일을 포함하는 디렉토리. plugin skills의 경우, 이는 plugin 루트가 아닌 plugin 내의 skill 하위 디렉토리입니다. bash 주입 명령어에서 현재 작업 디렉토리와 관계없이 skill과 함께 번들된 스크립트 또는 파일을 참조하는 데 사용합니다. |298| `${CLAUDE_SKILL_DIR}` | skill의 `SKILL.md` 파일을 포함하는 디렉토리. plugin skills의 경우, 이는 plugin 루트가 아닌 plugin 내의 skill 하위 디렉토리입니다. bash 주입 명령어에서 현재 작업 디렉토리와 관계없이 skill과 함께 번들된 스크립트 또는 파일을 참조하는 데 사용합니다. |

299| `${CLAUDE_PROJECT_DIR}` | 프로젝트 루트 디렉토리. 이는 [hooks](/ko/hooks#reference-scripts-by-path)와 MCP 서버가 `CLAUDE_PROJECT_DIR`로 받는 것과 동일한 경로입니다. 프로젝트 로컬 스크립트 또는 파일(예: `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`)을 참조하는 데 사용하여 skill이 설치된 위치와 관계없이 사용합니다. |

300 

301`${CLAUDE_PROJECT_DIR}` 치환은 Claude Code v2.1.196 이상이 필요합니다. skill 본문과 [`allowed-tools`](#frontmatter-reference) frontmatter 모두에 적용되므로, `Bash(${CLAUDE_PROJECT_DIR}/scripts/lint.sh *)` 같은 권한 규칙은 skill 본문이 사용하는 것과 동일한 경로로 확인됩니다.

299 302 

300인덱싱된 인수는 shell 스타일 인용을 사용하므로 다중 단어 값을 따옴표로 감싸서 단일 인수로 전달합니다. 예를 들어, `/my-skill "hello world" second`는 `$0`을 `hello world`로, `$1`을 `second`로 확장합니다. `$ARGUMENTS` 플레이스홀더는 항상 입력한 전체 인수 문자열로 확장됩니다.303인덱싱된 인수는 shell 스타일 인용을 사용하므로 다중 단어 값을 따옴표로 감싸서 단일 인수로 전달합니다. 예를 들어, `/my-skill "hello world" second`는 `$0`을 `hello world`로, `$1`을 `second`로 확장합니다. `$ARGUMENTS` 플레이스홀더는 항상 입력한 전체 인수 문자열로 확장됩니다.

301 304 


899 902 

900Skill 설명은 Claude가 사용 가능한 항목을 알 수 있도록 컨텍스트에 로드됩니다. 모든 skill 이름은 항상 포함되지만, 많은 skills가 있으면 설명이 단축되어 문자 예산에 맞출 수 있으며, 이는 Claude가 요청과 일치하는 데 필요한 키워드를 제거할 수 있습니다. 예산은 모델의 컨텍스트 윈도우의 1%에서 확장됩니다. 예산이 초과되면, 가장 적게 호출하는 skills의 설명이 먼저 삭제되므로 실제로 사용하는 skills는 전체 텍스트를 유지합니다. `/doctor`를 실행하여 얼마나 많은 skill 설명이 단축되거나 삭제되었는지, 어떤 skills가 영향을 받는지 확인합니다.903Skill 설명은 Claude가 사용 가능한 항목을 알 수 있도록 컨텍스트에 로드됩니다. 모든 skill 이름은 항상 포함되지만, 많은 skills가 있으면 설명이 단축되어 문자 예산에 맞출 수 있으며, 이는 Claude가 요청과 일치하는 데 필요한 키워드를 제거할 수 있습니다. 예산은 모델의 컨텍스트 윈도우의 1%에서 확장됩니다. 예산이 초과되면, 가장 적게 호출하는 skills의 설명이 먼저 삭제되므로 실제로 사용하는 skills는 전체 텍스트를 유지합니다. `/doctor`를 실행하여 얼마나 많은 skill 설명이 단축되거나 삭제되었는지, 어떤 skills가 영향을 받는지 확인합니다.

901 904 

902예산을 높이려면 [`skillListingBudgetFraction`](/ko/settings#available-settings) 설정(예: `0.02` = 2%)을 설정하거나 `SLASH_COMMAND_TOOL_CHAR_BUDGET` 환경 변수를 고정 문자 수로 설정합니다. 다른 skills를 위해 예산을 확보하려면 [`skillOverrides`](#override-skill-visibility-from-settings)에서 낮은 우선순위 항목을 `"name-only"`로 설정하여 설명 없이 나열되도록 합니다. 또한 소스에서 `description` `when_to_use` 텍스트를 자를 수 있습니다: 주요 사용 사례를 먼저 배치합니다. 각 항목의 결합된 텍스트는 예산과 관계없이 1,536자로 제한되기 때문입니다. 제한은 [`maxSkillDescriptionChars`](/ko/settings#available-settings)로 구성할 수 있습니다.905v2.1.196부터 `/context` Skills 행은 예산이 적용된 후의 목록 크기를 보고하므로 모델이 수신하는 것과 일치합니다. 이전 버전은 모든 설명의 전체 텍스트를 계산했으므로 행이 예산 `/doctor`가 보고하는 값보다 값을 표시할 수 있습니다.

906 

907예산을 높이려면 [`skillListingBudgetFraction`](/ko/settings#available-settings) 설정(예: `0.02` = 2%)을 설정하거나 `SLASH_COMMAND_TOOL_CHAR_BUDGET` 환경 변수를 고정 문자 수로 설정합니다. 다른 skills를 위해 예산을 확보하려면 [`skillOverrides`](#override-skill-visibility-from-settings)에서 낮은 우선순위 항목을 `"name-only"`로 설정하여 설명 없이 나열되도록 합니다. 또한 소스에서 `description` 및 `when_to_use` 텍스트를 자를 수 있습니다: 주요 사용 사례를 먼저 배치합니다. 각 항목의 결합된 텍스트는 예산과 관계없이 1,536자로 제한되기 때문입니다. 이 제한은 [`skillListingMaxDescChars`](/ko/settings#available-settings)로 구성할 수 있습니다.

903 908 

904<h2 id="related-resources">909<h2 id="related-resources">

905 관련 리소스910 관련 리소스

statusline.md +4 −1

Details

171Claude Code는 stdin을 통해 스크립트에 다음 JSON 필드를 보냅니다:171Claude Code는 stdin을 통해 스크립트에 다음 JSON 필드를 보냅니다:

172 172 

173| 필드 | 설명 |173| 필드 | 설명 |

174| -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |174| -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

175| `model.id`, `model.display_name` | 현재 모델 식별자 및 표시 이름 |175| `model.id`, `model.display_name` | 현재 모델 식별자 및 표시 이름 |

176| `cwd`, `workspace.current_dir` | 현재 작업 디렉토리. 두 필드 모두 동일한 값을 포함합니다. `workspace.current_dir`은 `workspace.project_dir`과의 일관성을 위해 선호됩니다. |176| `cwd`, `workspace.current_dir` | 현재 작업 디렉토리. 두 필드 모두 동일한 값을 포함합니다. `workspace.current_dir`은 `workspace.project_dir`과의 일관성을 위해 선호됩니다. |

177| `workspace.project_dir` | Claude Code가 시작된 디렉토리로, 세션 중에 작업 디렉토리가 변경되면 `cwd`와 다를 수 있습니다 |177| `workspace.project_dir` | Claude Code가 시작된 디렉토리로, 세션 중에 작업 디렉토리가 변경되면 `cwd`와 다를 수 있습니다 |


194| `rate_limits.five_hour.resets_at`, `rate_limits.seven_day.resets_at` | 5시간 또는 7일 속도 제한 윈도우가 재설정되는 Unix epoch 초 |194| `rate_limits.five_hour.resets_at`, `rate_limits.seven_day.resets_at` | 5시간 또는 7일 속도 제한 윈도우가 재설정되는 Unix epoch 초 |

195| `session_id` | 고유 세션 식별자 |195| `session_id` | 고유 세션 식별자 |

196| `session_name` | `--name` 플래그 또는 `/rename`으로 설정된 사용자 정의 세션 이름. 사용자 정의 이름이 설정되지 않은 경우 없음 |196| `session_name` | `--name` 플래그 또는 `/rename`으로 설정된 사용자 정의 세션 이름. 사용자 정의 이름이 설정되지 않은 경우 없음 |

197| `prompt_id` | 현재 처리 중인 사용자 프롬프트를 식별하는 UUID. OpenTelemetry 이벤트의 [`prompt.id` 속성](/ko/monitoring-usage#event-correlation-attributes)과 일치합니다. 첫 번째 사용자 입력까지 없음. Claude Code v2.1.196 이상 필요 |

197| `transcript_path` | 대화 기록 파일의 경로 |198| `transcript_path` | 대화 기록 파일의 경로 |

198| `version` | Claude Code 버전 |199| `version` | Claude Code 버전 |

199| `output_style.name` | 현재 출력 스타일의 이름 |200| `output_style.name` | 현재 출력 스타일의 이름 |


215 "cwd": "/current/working/directory",216 "cwd": "/current/working/directory",

216 "session_id": "abc123...",217 "session_id": "abc123...",

217 "session_name": "my-session",218 "session_name": "my-session",

219 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",

218 "transcript_path": "/path/to/transcript.jsonl",220 "transcript_path": "/path/to/transcript.jsonl",

219 "model": {221 "model": {

220 "id": "claude-opus-4-8",222 "id": "claude-opus-4-8",


296 **없을 수 있는 필드** (JSON에 없음):298 **없을 수 있는 필드** (JSON에 없음):

297 299 

298 * `session_name`: `--name` 또는 `/rename`으로 사용자 정의 이름이 설정되었을 때만 나타남300 * `session_name`: `--name` 또는 `/rename`으로 사용자 정의 이름이 설정되었을 때만 나타남

301 * `prompt_id`: 첫 번째 사용자 입력 후에만 나타남

299 * `workspace.git_worktree`: 현재 디렉토리가 연결된 git worktree 내에 있을 때만 나타남302 * `workspace.git_worktree`: 현재 디렉토리가 연결된 git worktree 내에 있을 때만 나타남

300 * `workspace.repo`: git 저장소 내에 있고 `origin` 원격이 구성되어 있을 때만 나타남303 * `workspace.repo`: git 저장소 내에 있고 `origin` 원격이 구성되어 있을 때만 나타남

301 * `effort`: 현재 모델이 추론 노력 매개변수를 지원할 때만 나타남304 * `effort`: 현재 모델이 추론 노력 매개변수를 지원할 때만 나타남

sub-agents.md +29 −19

Details

77 </Tab>77 </Tab>

78</Tabs>78</Tabs>

79 79 

80내장 subagent는 항상 대화형 세션에 등록됩니다. 특정 내장 유형을 차단하려면 [특정 subagent 비활성화](#disable-specific-subagents)에 표시된 대로 `permissions.deny`에 추가하십시오. Claude가 어떤 subagent에도 위임하는 것을 방지하려면 [`permissions.deny`](/ko/permissions#tool-specific-permission-rules)를 사용하여 `Agent` 도구 자체를 거부하십시오. [비대화형 모드](/ko/headless) 및 [Agent SDK](/ko/agent-sdk/overview)에서는 [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/ko/env-vars)을 설정하여 모든 내장 유형을 제거하고 자신의 것만 제공하십시오.80내장 subagent는 항상 대화형 세션에 등록됩니다. 특정 내장 유형을 차단하려면:

81 

82* 특정 내장 유형을 차단하려면 [특정 subagent 비활성화](#disable-specific-subagents)에 표시된 대로 `permissions.deny`에 추가하십시오.

83* Claude가 어떤 subagent에도 위임하는 것을 방지하려면 [`permissions.deny`](/ko/permissions#tool-specific-permission-rules)를 사용하여 `Agent` 도구 자체를 거부하십시오.

84* [비대화형 모드](/ko/headless) 및 [Agent SDK](/ko/agent-sdk/overview)에서는 [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/ko/env-vars)을 설정하여 모든 내장 유형을 제거하고 자신의 것만 제공하십시오.

81 85 

82이러한 내장 subagent 외에도 사용자 정의 프롬프트, 도구 제한, 권한 모드, hooks 및 skills를 사용하여 자신의 subagent를 만들 수 있습니다. 다음 섹션에서는 시작하는 방법과 subagent를 사용자 정의하는 방법을 보여줍니다.86이러한 내장 subagent 외에도 사용자 정의 프롬프트, 도구 제한, 권한 모드, hooks 및 skills를 사용하여 자신의 subagent를 만들 수 있습니다. 다음 섹션에서는 시작하는 방법과 subagent를 사용자 정의하는 방법을 보여줍니다.

83 87 


93 <Step title="subagent 인터페이스 열기">97 <Step title="subagent 인터페이스 열기">

94 Claude Code에서 다음을 실행합니다:98 Claude Code에서 다음을 실행합니다:

95 99 

96 ```text theme={null}100 ```text wrap theme={null}

97 /agents101 /agents

98 ```102 ```

99 </Step>103 </Step>


105 <Step title="Claude로 생성">109 <Step title="Claude로 생성">

106 **Generate with Claude**를 선택합니다. 메시지가 표시되면 subagent를 설명합니다:110 **Generate with Claude**를 선택합니다. 메시지가 표시되면 subagent를 설명합니다:

107 111 

108 ```text theme={null}112 ```text wrap theme={null}

109 A code improvement agent that scans files and suggests improvements113 A code improvement agent that scans files and suggests improvements

110 for readability, performance, and best practices. It should explain114 for readability, performance, and best practices. It should explain

111 each issue, show the current code, and provide an improved version.115 each issue, show the current code, and provide an improved version.


133 <Step title="저장 및 시도">137 <Step title="저장 및 시도">

134 구성 요약을 검토합니다. `s` 또는 `Enter`를 눌러 저장하거나 `e`를 눌러 편집기에서 저장 및 편집합니다. Subagent는 즉시 사용 가능합니다. 시도해 봅니다:138 구성 요약을 검토합니다. `s` 또는 `Enter`를 눌러 저장하거나 `e`를 눌러 편집기에서 저장 및 편집합니다. Subagent는 즉시 사용 가능합니다. 시도해 봅니다:

135 139 

136 ```text theme={null}140 ```text wrap theme={null}

137 Use the code-improver agent to suggest improvements in this project141 Use the code-improver agent to suggest improvements in this project

138 ```142 ```

139 143 


185 189 

186**사용자 subagent** (`~/.claude/agents/`)는 모든 프로젝트에서 사용 가능한 개인 subagent입니다.190**사용자 subagent** (`~/.claude/agents/`)는 모든 프로젝트에서 사용 가능한 개인 subagent입니다.

187 191 

188Claude Code는 `.claude/agents/` 및 `~/.claude/agents/`를 재귀적으로 스캔하므로 `agents/review/` 또는 `agents/research/`와 같은 하위 폴더로 정의를 구성할 수 있습니다. 하위 디렉토리 경로는 subagent가 식별되거나 호출되는 방식에 영향을 주지 않습니다. 왜냐하면 ID는 `name` frontmatter 필드에서만 나오기 때문입니다. 전체 트리에서 `name` 값을 고유하게 유지합니다: 한 범위 내의 두 파일이 같은 이름을 선언하면 Claude Code는 경고 없이 하나를 유지하고 다른 하나를 버립니다.192Claude Code는 `.claude/agents/` 및 `~/.claude/agents/`를 재귀적으로 스캔하므로 `agents/review/` 또는 `agents/research/`와 같은 하위 폴더로 정의를 구성할 수 있습니다. 하위 디렉토리 경로는 subagent가 식별되거나 호출되는 방식에 영향을 주지 않습니다. 왜냐하면 ID는 `name` frontmatter 필드에서만 나오기 때문입니다. 전체 트리에서 `name` 값을 고유하게 유지합니다: 한 범위 내의 두 파일이 같은 이름을 선언하면 Claude Code는 하나만 로드합니다. {/* min-version: 2.1.196 */}v2.1.196부터 `/doctor`를 실행하면 동일한 범위의 중복 에이전트 이름을 보고하고 활성 정의를 표시합니다.

189 193 

190플러그인 `agents/` 디렉토리도 재귀적으로 스캔됩니다. 프로젝트 및 사용자 범위와 달리 플러그인의 `agents/` 디렉토리 내의 하위 폴더는 [범위가 지정된 식별자](#invoke-subagents-explicitly)의 일부가 됩니다: 플러그인 `my-plugin`의 `agents/review/security.md`에 있는 파일은 `my-plugin:review:security`로 등록됩니다.194플러그인 `agents/` 디렉토리도 재귀적으로 스캔됩니다. 프로젝트 및 사용자 범위와 달리 플러그인의 `agents/` 디렉토리 내의 하위 폴더는 [범위가 지정된 식별자](#invoke-subagents-explicitly)의 일부가 됩니다: 플러그인 `my-plugin`의 `agents/review/security.md`에 있는 파일은 `my-plugin:review:security`로 등록됩니다.

191 195 


299`model` 필드는 subagent가 사용하는 [AI 모델](/ko/model-config)을 제어합니다:303`model` 필드는 subagent가 사용하는 [AI 모델](/ko/model-config)을 제어합니다:

300 304 

301* **모델 별칭**: 사용 가능한 별칭 중 하나를 사용합니다: `sonnet`, `opus`, `haiku`, 또는 `fable`305* **모델 별칭**: 사용 가능한 별칭 중 하나를 사용합니다: `sonnet`, `opus`, `haiku`, 또는 `fable`

302* **전체 모델 ID**: `claude-opus-4-8` 또는 `claude-sonnet-4-6` 같은 전체 모델 ID를 사용합니다. `--model` 플래그와 동일한 값을 허용합니다306* **전체 모델 ID**: `claude-opus-4-8` 또는 `claude-sonnet-5` 같은 전체 모델 ID를 사용합니다. `--model` 플래그와 동일한 값을 허용합니다

303* **inherit**: 주 대화와 동일한 모델을 사용합니다307* **inherit**: 주 대화와 동일한 모델을 사용합니다

304* **생략됨**: 지정하지 않으면 기본값은 `inherit`입니다 (주 대화와 동일한 모델 사용)308* **생략됨**: 지정하지 않으면 기본값은 `inherit`입니다 (주 대화와 동일한 모델 사용)

305 309 


3103. Subagent 정의의 `model` frontmatter3143. Subagent 정의의 `model` frontmatter

3114. 주 대화의 모델3154. 주 대화의 모델

312 316 

317{/* min-version: 2.1.196 */}v2.1.196부터 `CLAUDE_CODE_SUBAGENT_MODEL`을 `inherit`로 설정하는 것은 설정하지 않은 것과 동일합니다: 해결은 호출별 `model` 매개변수로 계속되고 frontmatter로 계속됩니다. 이전 버전에서는 `inherit`이 subagent를 주 대화의 모델로 강제하고 이 두 소스를 모두 무시했습니다.

318 

313환경 변수, 호출별 매개변수, frontmatter 값은 조직의 [`availableModels`](/ko/model-config#restrict-model-selection) 허용 목록에 대해 확인됩니다. 제외된 모델로 해결되는 값은 사용되지 않으며 subagent는 상속된 모델에서 대신 실행됩니다.319환경 변수, 호출별 매개변수, frontmatter 값은 조직의 [`availableModels`](/ko/model-config#restrict-model-selection) 허용 목록에 대해 확인됩니다. 제외된 모델로 해결되는 값은 사용되지 않으며 subagent는 상속된 모델에서 대신 실행됩니다.

314 320 

315<h3 id="control-subagent-capabilities">321<h3 id="control-subagent-capabilities">


602 608 

603Subagent는 subagent의 라이프사이클 중에 실행되는 [hooks](/ko/hooks)를 정의할 수 있습니다. Hook을 구성하는 두 가지 방법이 있습니다:609Subagent는 subagent의 라이프사이클 중에 실행되는 [hooks](/ko/hooks)를 정의할 수 있습니다. Hook을 구성하는 두 가지 방법이 있습니다:

604 610 

6051. **Subagent의 frontmatter에서**: 해당 subagent가 활성화된 동안만 실행되는 hook 정의611* **Subagent의 frontmatter에서**: 해당 subagent가 활성화된 동안만 실행되는 hook 정의

6062. **`settings.json`에서**: Subagent가 시작되거나 중지될 때 주 세션에서 실행되는 hook 정의612* **`settings.json`에서**: Subagent가 시작되거나 중지될 때 주 세션에서 실행되는 hook 정의

607 613 

608<h4 id="hooks-in-subagent-frontmatter">614<h4 id="hooks-in-subagent-frontmatter">

609 Subagent frontmatter의 hook615 Subagent frontmatter의 hook


656| `SubagentStart` | 에이전트 유형 이름 | Subagent가 실행을 시작할 때 |662| `SubagentStart` | 에이전트 유형 이름 | Subagent가 실행을 시작할 때 |

657| `SubagentStop` | 에이전트 유형 이름 | Subagent가 완료될 때 |663| `SubagentStop` | 에이전트 유형 이름 | Subagent가 완료될 때 |

658 664 

659두 이벤트 모두 이름별로 특정 에이전트 유형을 대상으로 하는 matcher를 지원합니다. 예제는 `db-agent` subagent가 시작될 때만 설정 스크립트를 실행하고 모든 subagent가 중지될 정리 스크립트를 실행합니다:665두 이벤트 모두 이름별로 특정 에이전트 유형을 대상으로 하는 matcher를 지원합니다. Matcher 값은 프로젝트 수준 및 사용자 수준 subagent의 경우 에이전트의 frontmatter `name`이거나, [플러그인 subagent](/ko/plugins)의 경우 `my-plugin:db-agent` 같은 플러그인 범위 식별자입니다. 범위가 지정된 이름에는 콜론이 포함되므로 [고정되지 않은 정규식](/ko/hooks#matcher-patterns)으로 평가됩니다. `^my-plugin:db-agent$`와 같이 `^` 및 `$`로 고정하여 해당 에이전트만 일치시킵니다.

666 

667이 예제는 `db-agent` subagent가 시작될 때만 설정 스크립트를 실행하고 모든 subagent가 중지될 때 정리 스크립트를 실행합니다:

660 668 

661```json theme={null}669```json theme={null}

662{670{


680}688}

681```689```

682 690 

691하이픈이 있는 matcher (예: `db-agent`)는 Claude Code v2.1.195 이상에서 정확하게 일치합니다. 이전 버전에서는 고정되지 않은 정규식으로 평가되며 `prod-db-agent`와 같이 포함하는 모든 에이전트 유형에 대해서도 발생합니다. 이러한 버전에서는 `^db-agent$`로 고정합니다.

692 

683전체 hook 구성 형식은 [Hooks](/ko/hooks)를 참조하세요.693전체 hook 구성 형식은 [Hooks](/ko/hooks)를 참조하세요.

684 694 

685<h2 id="work-with-subagents">695<h2 id="work-with-subagents">


704 714 

705자연어의 경우 특별한 구문이 없습니다. Subagent 이름을 지정하면 Claude는 일반적으로 위임합니다:715자연어의 경우 특별한 구문이 없습니다. Subagent 이름을 지정하면 Claude는 일반적으로 위임합니다:

706 716 

707```text theme={null}717```text wrap theme={null}

708Use the test-runner subagent to fix failing tests718Use the test-runner subagent to fix failing tests

709Have the code-reviewer subagent look at my recent changes719Have the code-reviewer subagent look at my recent changes

710```720```

711 721 

712**Subagent를 @-mention합니다.** `@`를 입력하고 파일을 @-mention하는 것과 동일한 방식으로 typeahead에서 subagent를 선택합니다. 이렇게 하면 Claude가 선택하도록 하는 대신 특정 subagent가 실행되도록 보장합니다:722**Subagent를 @-mention합니다.** `@`를 입력하고 파일을 @-mention하는 것과 동일한 방식으로 typeahead에서 subagent를 선택합니다. 이렇게 하면 Claude가 선택하도록 하는 대신 특정 subagent가 실행되도록 보장합니다:

713 723 

714```text theme={null}724```text wrap theme={null}

715@"code-reviewer (agent)" look at the auth changes725@"code-reviewer (agent)" look at the auth changes

716```726```

717 727 


757 Subagent를 foreground 또는 background에서 실행767 Subagent를 foreground 또는 background에서 실행

758</h3>768</h3>

759 769 

760Subagent는 foreground (차단) 또는 background (동시)에서 실행할 수 있습니다:770Subagent는 foreground 또는 background에서 실행할 수 있습니다:

761 771 

762* **Foreground subagent**는 완료될 때까지 주 대화를 차단합니다. 권한 프롬프트는 발생하는 대로 사용자에게 전달됩니다.772* **Foreground subagent**는 완료될 때까지 주 대화를 차단합니다. 권한 프롬프트는 발생하는 대로 사용자에게 전달됩니다.

763* **Background subagent**는 계속 작업하는 동안 동시에 실행됩니다. {/* min-version: 2.1.186 */}v2.1.186부터 background subagent가 권한이 필요한 도구 호출에 도달하면 프롬프트가 주 세션에 표시되고 요청하는 subagent의 이름을 지정합니다. 승인하여 subagent를 계속하거나 Esc를 눌러 subagent를 중지하지 않고 해당 도구 호출을 거부합니다. v2.1.186 이전에는 background subagent가 프롬프트를 표시했을 모든 도구 호출을 자동으로 거부했습니다.773* **Background subagent**는 계속 작업하는 동안 동시에 실행됩니다. {/* min-version: 2.1.186 */}v2.1.186부터 background subagent가 권한이 필요한 도구 호출에 도달하면 프롬프트가 주 세션에 표시되고 요청하는 subagent의 이름을 지정합니다. 승인하여 subagent를 계속하거나 Esc를 눌러 subagent를 중지하지 않고 해당 도구 호출을 거부합니다. v2.1.186 이전에는 background subagent가 프롬프트를 표시했을 모든 도구 호출을 자동으로 거부했습니다.


781 791 

782Subagent의 가장 효과적인 사용 중 하나는 많은 양의 출력을 생성하는 작업을 격리하는 것입니다. 테스트 실행, 문서 가져오기 또는 로그 파일 처리는 상당한 컨텍스트를 소비할 수 있습니다. 이를 subagent에 위임하면 자세한 출력이 subagent의 컨텍스트에 유지되고 관련 요약만 주 대화로 반환됩니다.792Subagent의 가장 효과적인 사용 중 하나는 많은 양의 출력을 생성하는 작업을 격리하는 것입니다. 테스트 실행, 문서 가져오기 또는 로그 파일 처리는 상당한 컨텍스트를 소비할 수 있습니다. 이를 subagent에 위임하면 자세한 출력이 subagent의 컨텍스트에 유지되고 관련 요약만 주 대화로 반환됩니다.

783 793 

784```text theme={null}794```text wrap theme={null}

785Use a subagent to run the test suite and report only the failing tests with their error messages795Use a subagent to run the test suite and report only the failing tests with their error messages

786```796```

787 797 


791 801 

792독립적인 조사의 경우 여러 subagent를 생성하여 동시에 작동하도록 합니다:802독립적인 조사의 경우 여러 subagent를 생성하여 동시에 작동하도록 합니다:

793 803 

794```text theme={null}804```text wrap theme={null}

795Research the authentication, database, and API modules in parallel using separate subagents805Research the authentication, database, and API modules in parallel using separate subagents

796```806```

797 807 


809 819 

810다단계 워크플로우의 경우 Claude에 subagent를 순차적으로 사용하도록 요청합니다. 각 subagent는 작업을 완료하고 결과를 Claude에 반환하고, Claude는 관련 컨텍스트를 다음 subagent에 전달합니다.820다단계 워크플로우의 경우 Claude에 subagent를 순차적으로 사용하도록 요청합니다. 각 subagent는 작업을 완료하고 결과를 Claude에 반환하고, Claude는 관련 컨텍스트를 다음 subagent에 전달합니다.

811 821 

812```text theme={null}822```text wrap theme={null}

813Use the code-reviewer subagent to find performance issues, then use the optimizer subagent to fix them823Use the code-reviewer subagent to find performance issues, then use the optimizer subagent to fix them

814```824```

815 825 


820**주 대화**를 사용하는 경우:830**주 대화**를 사용하는 경우:

821 831 

822* 작업이 빈번한 왕복 또는 반복적인 개선이 필요한 경우832* 작업이 빈번한 왕복 또는 반복적인 개선이 필요한 경우

823* 여러 단계가 상당한 컨텍스트를 공유하는 경우 (계획 구현 테스트)833* 여러 단계가 상당한 컨텍스트를 공유하는 경우 (계획, 구현, 테스트)

824* 빠르고 대상이 지정된 변경을 수행하는 경우834* 빠르고 대상이 지정된 변경을 수행하는 경우

825* 지연시간이 중요한 경우. Subagent는 새로 시작하고 컨텍스트를 수집하는 데 시간이 걸릴 수 있습니다835* 지연시간이 중요한 경우. Subagent는 새로 시작하고 컨텍스트를 수집하는 데 시간이 걸릴 수 있습니다

826 836 


840 850 

841{/* min-version: 2.1.172 */}Claude Code v2.1.172부터 subagent는 자신의 subagent를 생성할 수 있습니다. 위임된 작업이 자체적으로 병렬 하위 작업으로 분할될 때 이를 사용합니다. 예를 들어 각 발견에 대해 검증자를 발송하는 검토자 subagent를 사용하면 중간 출력이 주 대화에 도달하지 않습니다. 최상위 subagent의 요약만 사용자에게 반환됩니다.851{/* min-version: 2.1.172 */}Claude Code v2.1.172부터 subagent는 자신의 subagent를 생성할 수 있습니다. 위임된 작업이 자체적으로 병렬 하위 작업으로 분할될 때 이를 사용합니다. 예를 들어 각 발견에 대해 검증자를 발송하는 검토자 subagent를 사용하면 중간 출력이 주 대화에 도달하지 않습니다. 최상위 subagent의 요약만 사용자에게 반환됩니다.

842 852 

843중첩된 subagent는 최상위 subagent와 동일한 방식으로 구성되며 동일한 [범위](#choose-the-subagent-scope)에서 해결됩니다. 프롬프트 입력 아래의 subagent 패널은 전체 트리를 표시합니다: 각 행은 하위 항목의 `(+N)` 개수를 표시하고, 행을 열면 해당 subagent의 직접 자식이 `main`으로 돌아가는 경로와 함께 표시됩니다. [`/agents`](#use-the-%2Fagents-command)의 Running 탭은 실행 중인 subagent를 평면 목록으로 나열합니다.853중첩된 subagent는 최상위 subagent와 동일한 방식으로 구성되며 동일한 [범위](#choose-the-subagent-scope)에서 해결됩니다. 프롬프트 입력 아래의 subagent 패널은 전체 트리를 표시합니다: 각 행은 하위 항목의 `(+N)` 개수를 표시하고, {/* min-version: 2.1.193 */}v2.1.193부터 행을 열면 해당 subagent의 형제 및 직접 자식이 `main`으로 돌아가는 경로와 함께 표시됩니다. [`/agents`](#use-the-%2Fagents-command)의 Running 탭은 실행 중인 subagent를 평면 목록으로 나열합니다.

844 854 

845깊이는 각 수준이 [foreground 또는 background](#run-subagents-in-foreground-or-background)에서 실행되는지 여부와 관계없이 주 대화 아래의 subagent 수준 수로 계산됩니다. 깊이 5의 subagent는 Agent 도구를 받지 않으며 추가로 생성할 수 없습니다. 제한은 고정되어 있으며 구성할 수 없습니다.855깊이는 각 수준이 [foreground 또는 background](#run-subagents-in-foreground-or-background)에서 실행되는지 여부와 관계없이 주 대화 아래의 subagent 수준 수로 계산됩니다. 깊이 5의 subagent는 Agent 도구를 받지 않으며 추가로 생성할 수 없습니다. 제한은 고정되어 있으며 구성할 수 없습니다.

846 856 


884 894 

885Subagent를 재개하려면 Claude에 이전 작업을 계속하도록 요청합니다:895Subagent를 재개하려면 Claude에 이전 작업을 계속하도록 요청합니다:

886 896 

887```text theme={null}897```text wrap theme={null}

888Use the code-reviewer subagent to review the authentication module898Use the code-reviewer subagent to review the authentication module

889[Agent completes]899[Agent completes]

890 900 


942 952 

943변수 설정 여부와 관계없이 `/fork` 다음에 지시문을 사용하여 포크를 직접 시작할 수 있습니다. Claude Code는 지시문의 첫 단어에서 포크의 이름을 지정합니다. 다음 예제는 주 세션에서 구현을 계속하는 동안 포크가 테스트 케이스를 작성하도록 포크합니다:953변수 설정 여부와 관계없이 `/fork` 다음에 지시문을 사용하여 포크를 직접 시작할 수 있습니다. Claude Code는 지시문의 첫 단어에서 포크의 이름을 지정합니다. 다음 예제는 주 세션에서 구현을 계속하는 동안 포크가 테스트 케이스를 작성하도록 포크합니다:

944 954 

945```text theme={null}955```text wrap theme={null}

946/fork draft unit tests for the parser changes so far956/fork draft unit tests for the parser changes so far

947```957```

948 958 

Details

196 196 

197* [Claude for Teams 또는 Enterprise](/ko/authentication#claude-for-teams-or-enterprise)197* [Claude for Teams 또는 Enterprise](/ko/authentication#claude-for-teams-or-enterprise)

198* [Anthropic Console](/ko/authentication#claude-console-authentication)198* [Anthropic Console](/ko/authentication#claude-console-authentication)

199* [Claude 앱 게이트웨이](/ko/claude-apps-gateway), Amazon Bedrock, Google Vertex AI, Microsoft Foundry 또는 Anthropic API 앞에 IdP 로그인을 추가하는 자체 호스팅 게이트웨이

199* [Amazon Bedrock](/ko/amazon-bedrock)200* [Amazon Bedrock](/ko/amazon-bedrock)

200* [Claude Platform on AWS](/ko/claude-platform-on-aws)201* [Claude Platform on AWS](/ko/claude-platform-on-aws)

201* [Google Vertex AI](/ko/google-vertex-ai)202* [Google Vertex AI](/ko/google-vertex-ai)

Details

11사용자 정의 도구를 추가하려면 [MCP 서버](/ko/mcp)를 연결합니다. Claude를 재사용 가능한 프롬프트 기반 워크플로우로 확장하려면 [skill](/ko/skills)을 작성합니다. 이는 새로운 도구 항목을 추가하는 대신 기존 `Skill` 도구를 통해 실행됩니다.11사용자 정의 도구를 추가하려면 [MCP 서버](/ko/mcp)를 연결합니다. Claude를 재사용 가능한 프롬프트 기반 워크플로우로 확장하려면 [skill](/ko/skills)을 작성합니다. 이는 새로운 도구 항목을 추가하는 대신 기존 `Skill` 도구를 통해 실행됩니다.

12 12 

13| 도구 | 설명 | 필요한 권한 |13| 도구 | 설명 | 필요한 권한 |

14| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |14| :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |

15| `Agent` | 작업을 처리하기 위해 자체 context window를 가진 [subagent](/ko/sub-agents)를 생성합니다. [Agent 도구 동작](#agent-tool-behavior) 참조 | 아니오 |15| `Agent` | 작업을 처리하기 위해 자체 context window를 가진 [subagent](/ko/sub-agents)를 생성합니다. [Agent 도구 동작](#agent-tool-behavior) 참조 | 아니오 |

16| `Artifact` | HTML 또는 Markdown 파일을 [artifact](/ko/artifacts)로 게시합니다: 조직 내에서 공유할 수 있는 claude.ai의 비공개 대화형 페이지입니다. {/* plan-availability: feature=artifacts plans=team,enterprise providers=anthropic */}Team 또는 Enterprise 플랜이 필요하며 `/login` 인증이 필요합니다. [가용성](/ko/artifacts#availability) 참조 | 예 |16| `Artifact` | HTML 또는 Markdown 파일을 [artifact](/ko/artifacts)로 게시합니다: 조직 내에서 공유할 수 있는 claude.ai의 비공개 대화형 페이지입니다. {/* plan-availability: feature=artifacts plans=team,enterprise providers=anthropic */}Team 또는 Enterprise 플랜이 필요하며 `/login` 인증이 필요합니다. [가용성](/ko/artifacts#availability) 참조 | 예 |

17| `AskUserQuestion` | 요구사항을 수집하거나 모호함을 명확히 하기 위해 객관식 질문을 합니다 | 아니오 |17| `AskUserQuestion` | 요구사항을 수집하거나 모호함을 명확히 하기 위해 객관식 질문을 합니다 | 아니오 |


28| `Grep` | 파일 내용에서 패턴을 검색합니다. [Grep 도구 동작](#grep-tool-behavior) 참조 | 아니오 |28| `Grep` | 파일 내용에서 패턴을 검색합니다. [Grep 도구 동작](#grep-tool-behavior) 참조 | 아니오 |

29| `ListMcpResourcesTool` | 연결된 [MCP 서버](/ko/mcp)에서 노출된 리소스를 나열합니다 | 아니오 |29| `ListMcpResourcesTool` | 연결된 [MCP 서버](/ko/mcp)에서 노출된 리소스를 나열합니다 | 아니오 |

30| `LSP` | 언어 서버를 통한 코드 인텔리전스: 정의로 이동, 참조 찾기, 타입 오류 및 경고 보고. [LSP 도구 동작](#lsp-tool-behavior) 참조 | 아니오 |30| `LSP` | 언어 서버를 통한 코드 인텔리전스: 정의로 이동, 참조 찾기, 타입 오류 및 경고 보고. [LSP 도구 동작](#lsp-tool-behavior) 참조 | 아니오 |

31| `Monitor` | 백그라운드에서 명령을 실행하고 각 출력 라인을 Claude에 다시 전달하므로, Claude는 로그 항목, 파일 변경 또는 대화 중 폴링된 상태에 반응할 수 있습니다. [Monitor 도구](#monitor-tool) 참조 | 예 |31| `Monitor` | 백그라운드에서 명령을 실행하고 각 출력 라인을 Claude에 다시 전달하므로, Claude는 로그 항목, 파일 변경 또는 대화 중 폴링된 상태에 반응할 수 있습니다. WebSocket을 열고 각 수신 메시지를 이벤트로 처리할 수도 있습니다. [Monitor 도구](#monitor-tool) 참조 | 예 |

32| `NotebookEdit` | Jupyter 노트북 셀을 수정합니다. [NotebookEdit 도구 동작](#notebookedit-tool-behavior) 참조 | 예 |32| `NotebookEdit` | Jupyter 노트북 셀을 수정합니다. [NotebookEdit 도구 동작](#notebookedit-tool-behavior) 참조 | 예 |

33| `PowerShell` | PowerShell 명령을 기본적으로 실행합니다. [PowerShell 도구](#powershell-tool) 참조 | 예 |33| `PowerShell` | PowerShell 명령을 기본적으로 실행합니다. [PowerShell 도구](#powershell-tool) 참조 | 예 |

34| `PushNotification` | 데스크톱 알림을 보내고, [Remote Control](/ko/remote-control)이 연결되었을 때 휴대폰 푸시를 보내므로, 장기 실행 작업 또는 [예약된 작업](/ko/scheduled-tasks)이 사용자가 자리를 떠났을 때 연락할 수 있습니다. {/* plan-availability: feature=push-notifications providers=anthropic */}푸시 전달은 Amazon Bedrock, Google Vertex AI 또는 Microsoft Foundry에서 접근할 수 없는 Anthropic 호스팅 인프라를 통해 실행됩니다 | 아니오 |34| `PushNotification` | 데스크톱 알림을 보내고, [Remote Control](/ko/remote-control)이 연결되었을 때 휴대폰 푸시를 보내므로, 장기 실행 작업 또는 [예약된 작업](/ko/scheduled-tasks)이 사용자가 자리를 떠났을 때 연락할 수 있습니다. {/* plan-availability: feature=push-notifications providers=anthropic */}푸시 전달은 Amazon Bedrock, Google Vertex AI 또는 Microsoft Foundry에서 접근할 수 없는 Anthropic 호스팅 인프라를 통해 실행됩니다 | 아니오 |

35| `Read` | 파일의 내용을 읽습니다. [Read 도구 동작](#read-tool-behavior) 참조 | 아니오 |35| `Read` | 파일의 내용을 읽습니다. [Read 도구 동작](#read-tool-behavior) 참조 | 아니오 |

36| `ReadMcpResourceTool` | URI로 특정 MCP 리소스를 읽습니다 | 아니오 |36| `ReadMcpResourceTool` | URI로 특정 MCP 리소스를 읽습니다 | 아니오 |

37| `RemoteTrigger` | claude.ai에서 [Routines](/ko/routines)를 생성, 업데이트, 실행 및 나열합니다. `/schedule` 명령을 지원합니다. {/* plan-availability: feature=routines plans=pro,max,team,enterprise providers=anthropic */}Routines는 claude.ai에 있으며 Pro, Max, Team 또는 Enterprise 플랜이 필요하므로, 이 도구는 Amazon Bedrock, Google Vertex AI 또는 Microsoft Foundry에서 접근할 수 없습니다 | 아니오 |37| `RemoteTrigger` | claude.ai에서 [Routines](/ko/routines)를 생성, 업데이트, 실행 및 나열합니다. `/schedule` 명령을 지원합니다. {/* plan-availability: feature=routines plans=pro,max,team,enterprise providers=anthropic */}Routines는 claude.ai에 있으며 Pro, Max, Team 또는 Enterprise 플랜이 필요하므로, 이 도구는 Amazon Bedrock, Google Vertex AI 또는 Microsoft Foundry에서 접근할 수 없습니다 | 아니오 |

38| `ReportFindings` | 코드 리뷰 결과를 구조화된 목록으로 보고하며, 각 결과마다 파일, 요약 및 실패 시나리오를 포함하므로 Claude Code가 텍스트로 인쇄하는 대신 렌더링할 수 있습니다. Claude는 활성 코드 리뷰 지침이 이를 수행하도록 지시할 때 호출합니다. {/* min-version: 2.1.196 */}Claude Code v2.1.196 이상이 필요합니다 | 아니오 |

38| `ScheduleWakeup` | [자체 속도 `/loop`](/ko/scheduled-tasks#let-claude-choose-the-interval)의 다음 반복을 다시 예약합니다. Claude는 각 반복이 끝날 때 이를 호출하여 다음 반복이 실행될 시간을 선택합니다(1분에서 1시간 사이). 사용자가 직접 호출하지는 않습니다. 대기 중인 wakeup은 [Stop hook input](/ko/hooks#stop-input)의 `session_crons`에 나타납니다. {/* plan-availability: feature=loop-dynamic providers=anthropic */}Amazon Bedrock, Google Vertex AI 또는 Microsoft Foundry에서는 사용할 수 없으며, 여기서 간격이 없는 `/loop` 프롬프트는 고정 일정으로 실행됩니다 | 아니오 |39| `ScheduleWakeup` | [자체 속도 `/loop`](/ko/scheduled-tasks#let-claude-choose-the-interval)의 다음 반복을 다시 예약합니다. Claude는 각 반복이 끝날 때 이를 호출하여 다음 반복이 실행될 시간을 선택합니다(1분에서 1시간 사이). 사용자가 직접 호출하지는 않습니다. 대기 중인 wakeup은 [Stop hook input](/ko/hooks#stop-input)의 `session_crons`에 나타납니다. {/* plan-availability: feature=loop-dynamic providers=anthropic */}Amazon Bedrock, Google Vertex AI 또는 Microsoft Foundry에서는 사용할 수 없으며, 여기서 간격이 없는 `/loop` 프롬프트는 고정 일정으로 실행됩니다 | 아니오 |

39| `SendMessage` | [agent team](/ko/agent-teams) 팀원에게 메시지를 보내거나, agent ID로 [subagent를 재개합니다](/ko/sub-agents#resume-subagents). 중지된 subagent는 백그라운드에서 자동으로 재개됩니다. 구조화된 팀 프로토콜 메시지는 agent team이 필요합니다 | 아니오 |40| `SendMessage` | [agent team](/ko/agent-teams) 팀원에게 메시지를 보내거나, agent ID로 [subagent를 재개합니다](/ko/sub-agents#resume-subagents). 중지된 subagent는 백그라운드에서 자동으로 재개됩니다. 구조화된 팀 프로토콜 메시지는 agent team이 필요합니다 | 아니오 |

41| `SendUserFile` | 선택적 캡션과 함께 세션에서 파일을 사용자에게 보내므로, 생성된 보고서, 다이어그램, 스크린샷 또는 빌드된 아티팩트가 트랜스크립트에서만 언급되는 대신 사용자의 기기에 도달합니다. {/* min-version: 2.1.196 */}v2.1.196부터 선택적 `display` 입력은 프레젠테이션을 제어합니다: `render`는 클라이언트에서 파일을 인라인으로 열고, `attach`는 다운로드 카드만 표시하며, 설정되지 않으면 클라이언트가 파일 타입에 따라 결정합니다. [Remote Control](/ko/remote-control) 클라이언트가 연결되었거나 세션이 [Claude Code on the web](/ko/claude-code-on-the-web)과 같은 관리형 클라우드 환경에서 실행될 때 사용 가능합니다. 전달은 Anthropic 호스팅 인프라를 통해 실행되므로, 이 도구는 Amazon Bedrock, Google Vertex AI 또는 Microsoft Foundry에서 사용할 수 없습니다 | 아니오 |

40| `ShareOnboardingGuide` | {/* plan-availability: feature=onboarding-guide-share plans=pro,max,team,enterprise providers=anthropic */}}`ONBOARDING.md`를 업로드하고 팀원이 Claude Code에서 열 수 있는 공유 링크를 반환합니다. 가이드가 작성된 후 `/team-onboarding`에서 호출됩니다. Pro, Max, Team 및 Enterprise 플랜의 claude.ai 구독자가 사용 가능합니다 | 예 |42| `ShareOnboardingGuide` | {/* plan-availability: feature=onboarding-guide-share plans=pro,max,team,enterprise providers=anthropic */}}`ONBOARDING.md`를 업로드하고 팀원이 Claude Code에서 열 수 있는 공유 링크를 반환합니다. 가이드가 작성된 후 `/team-onboarding`에서 호출됩니다. Pro, Max, Team 및 Enterprise 플랜의 claude.ai 구독자가 사용 가능합니다 | 예 |

41| `Skill` | 주 대화 내에서 [skill](/ko/skills#control-who-invokes-a-skill)을 실행합니다 | 예 |43| `Skill` | 주 대화 내에서 [skill](/ko/skills#control-who-invokes-a-skill)을 실행합니다 | 예 |

42| `TaskCreate` | 작업 목록에 새 작업을 생성합니다 | 아니오 |44| `TaskCreate` | 작업 목록에 새 작업을 생성합니다 | 아니오 |


206* PR 또는 CI 작업을 폴링하고 상태가 변경되면 보고208* PR 또는 CI 작업을 폴링하고 상태가 변경되면 보고

207* 파일 변경을 위해 디렉토리 감시209* 파일 변경을 위해 디렉토리 감시

208* 지정한 장기 실행 스크립트의 출력 추적210* 지정한 장기 실행 스크립트의 출력 추적

211* WebSocket 피드에 연결하고 각 메시지가 도착할 때 보고

209 212 

210Claude는 감시를 위한 작은 스크립트를 작성하고, 백그라운드에서 실행하며, 각 출력 라인이 도착할 때 수신합니다. 동일한 세션에서 계속 작업하고 Claude는 이벤트가 발생할 개입합니다. Claude에 취소하도록 요청하거나 세션을 종료하여 모니터를 중지합니다.213대부분의 감시의 경우, Claude는 작은 스크립트를 작성하고, 백그라운드에서 실행하며, 각 출력 라인이 도착할 때 수신합니다. 이미 이벤트를 푸시하는 서버의 경우, Claude는 스크립트를 실행하는 대신 [WebSocket](#websocket-source)을 있습니다.

211 214 

212Monitor는 [Bash와 동일한 권한 규칙](/ko/permissions#tool-specific-permission-rules)을 사용하므로, Bash에 대해 설정한 `allow` 및 `deny` 패턴이 여기에도 적용됩니다. Amazon Bedrock, Google Vertex AI 또는 Microsoft Foundry에서는 사용할 없습니다. `DISABLE_TELEMETRY` 또는 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정되었을 때도 사용할 없습니다.215동일한 세션에서 계속 작업하고 Claude는 이벤트가 발생할 개입합니다. Claude에 취소하도록 요청하거나 세션을 종료하여 모니터를 중지합니다.

216 

217Monitor가 명령을 실행할 때, [Bash와 동일한 권한 규칙](/ko/permissions#tool-specific-permission-rules)을 사용하므로, Bash에 대해 설정한 `allow` 및 `deny` 패턴이 여기에도 적용됩니다. [WebSocket 소스](#websocket-source)는 자체 승인 프롬프트를 가집니다.

218 

219이 도구는 Amazon Bedrock, Google Vertex AI 또는 Microsoft Foundry에서 사용할 수 없습니다. `DISABLE_TELEMETRY` 또는 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정되었을 때도 사용할 수 없습니다.

213 220 

214플러그인은 Claude에 시작하도록 요청하는 대신 플러그인이 활성화될 때 자동으로 시작되는 모니터를 선언할 수 있습니다. [플러그인 모니터](/ko/plugins-reference#monitors)를 참조합니다.221플러그인은 Claude에 시작하도록 요청하는 대신 플러그인이 활성화될 때 자동으로 시작되는 모니터를 선언할 수 있습니다. [플러그인 모니터](/ko/plugins-reference#monitors)를 참조합니다.

215 222 

223<h3 id="websocket-source">

224 WebSocket 소스

225</h3>

226 

227<Note>

228 WebSocket 소스는 Claude Code v2.1.195 이상이 필요합니다.

229</Note>

230 

231서버가 이미 WebSocket을 통해 이벤트를 푸시하는 경우, Claude는 폴링 스크립트를 작성하는 대신 직접 연결할 수 있습니다. 각 종류의 소켓 활동은 이벤트가 되거나 감시를 종료합니다:

232 

233* **텍스트 메시지**: 각각이 하나의 이벤트가 되며, 메시지가 여러 줄에 걸쳐 있어도 마찬가지입니다.

234* **바이너리 메시지**: 통과하지 않습니다. Claude는 `[binary frame, 512 bytes]`와 같은 자리 표시자 라인을 수신합니다.

235* **1 MiB보다 큰 메시지**: 감시가 종료되므로, 존재하는 경우 필터링된 피드를 구독합니다.

236* **소켓 종료**: 감시가 종료되고 Claude는 종료 코드를 수신합니다.

237 

238WebSocket 감시는 `command` 대신 `ws` 입력을 사용하며, 단일 Monitor 호출은 둘을 결합할 수 없습니다. `ws` 입력에는 두 개의 필드가 있습니다:

239 

240| 필드 | 필수 | 설명 |

241| :---------- | :-- | :-------------------------------------------------------------------------------------- |

242| `url` | 예 | 연결할 엔드포인트입니다. `ws://` 또는 `wss://` URL이어야 하며, 포함된 자격 증명이나 공백이 없어야 하고, ASCII 문자만 사용해야 합니다 |

243| `protocols` | 아니요 | 핸드셰이크 중에 제공할 WebSocket 하위 프로토콜 이름입니다. 각 항목은 유효한 하위 프로토콜 토큰이어야 하며, 목록에 중복이 포함될 수 없습니다 |

244 

245`timeout_ms` 및 `persistent` 입력은 명령에 대해 동일하게 작동합니다: `persistent`가 설정되지 않으면 감시가 마감일에 종료되고, `TaskStop`은 조기에 취소합니다.

246 

247WebSocket을 열면 승인을 위한 프롬프트가 표시되며, 프롬프트는 동일한 호스트에 대해 향후 프롬프트를 건너뛸 수 있는 옵션을 제공하지 않습니다.

248 

249Claude Code는 개인, 링크-로컬 또는 클라우드 메타데이터 주소를 가리키는 URL을 거부하며, 이는 해당 주소로 확인되는 호스트 이름을 포함합니다. 또한 `sandbox.network.deniedDomains`의 호스트를 거부하고, 관리 설정에서 [`allowManagedDomainsOnly`](/ko/settings#sandbox-settings)가 설정된 경우, 관리 허용 목록 외부의 모든 호스트를 거부합니다.

250 

216<h2 id="notebookedit-tool-behavior">251<h2 id="notebookedit-tool-behavior">

217 NotebookEdit 도구 동작252 NotebookEdit 도구 동작

218</h2>253</h2>


254Claude Code는 프로세스 범위에서만 `-ExecutionPolicy Bypass`를 사용하여 PowerShell을 생성하므로 `.ps1` 스크립트 및 모듈 가져오기는 머신의 정책을 변경하지 않고도 기본 Windows 설치에서 작동합니다. 프로세스 범위 바이패스는 그룹 정책 `MachinePolicy` 또는 `UserPolicy`를 재정의하지 않으므로 엔터프라이즈 잠금이 여전히 적용됩니다. 머신의 유효한 실행 정책을 대신 존중하려면 `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1`을 설정합니다.289Claude Code는 프로세스 범위에서만 `-ExecutionPolicy Bypass`를 사용하여 PowerShell을 생성하므로 `.ps1` 스크립트 및 모듈 가져오기는 머신의 정책을 변경하지 않고도 기본 Windows 설치에서 작동합니다. 프로세스 범위 바이패스는 그룹 정책 `MachinePolicy` 또는 `UserPolicy`를 재정의하지 않으므로 엔터프라이즈 잠금이 여전히 적용됩니다. 머신의 유효한 실행 정책을 대신 존중하려면 `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1`을 설정합니다.

255 290 

256<h3 id="shell-selection-in-settings-hooks-and-skills">291<h3 id="shell-selection-in-settings-hooks-and-skills">

257 설정, hookskill의 shell 선택292 설정, hooksskills의 shell 선택

258</h3>293</h3>

259 294 

260세 가지 추가 설정이 PowerShell이 사용되는 위치를 제어합니다:295세 가지 추가 설정이 PowerShell이 사용되는 위치를 제어합니다:

261 296 

262* [`settings.json`](/ko/settings#available-settings)의 `"defaultShell": "powershell"`: 대화형 `!` 명령을 PowerShell을 통해 라우팅합니다. PowerShell 도구가 활성화되어야 합니다.297* [`settings.json`](/ko/settings#available-settings)의 `"defaultShell": "powershell"`: 대화형 `!` 명령을 PowerShell을 통해 라우팅합니다. PowerShell 도구가 활성화되어야 합니다.

263* 개별 [command hook](/ko/hooks#command-hook-fields)의 `"shell": "powershell"`: 해당 hook을 PowerShell에서 실행합니다. Hook은 PowerShell을 직접 생성하므로 `CLAUDE_CODE_USE_POWERSHELL_TOOL`에 관계없이 작동합니다.298* 개별 [command hooks](/ko/hooks#command-hook-fields)의 `"shell": "powershell"`: 해당 hook을 PowerShell에서 실행합니다. Hooks는 PowerShell을 직접 생성하므로 `CLAUDE_CODE_USE_POWERSHELL_TOOL`에 관계없이 작동합니다.

264* [skill frontmatter](/ko/skills#frontmatter-reference)의 `shell: powershell`: `` !`command` `` 블록을 PowerShell에서 실행합니다. PowerShell 도구가 활성화되어야 합니다.299* [skill frontmatter](/ko/skills#frontmatter-reference)의 `shell: powershell`: `` !`command` `` 블록을 PowerShell에서 실행합니다. PowerShell 도구가 활성화되어야 합니다.

265 300 

266Bash 도구 섹션에서 설명한 동일한 주 세션 작업 디렉토리 재설정 동작이 PowerShell 명령에 적용되며, `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` 환경 변수도 포함됩니다.301Bash 도구 섹션에서 설명한 동일한 주 세션 작업 디렉토리 재설정 동작이 PowerShell 명령에 적용되며, `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` 환경 변수도 포함됩니다.

267 302 

303{/* min-version: 2.1.196 */}v2.1.196부터 PowerShell 도구는 Bash 도구의 검색 및 diff 종료 코드 처리와 일치합니다. `grep`, `egrep`, `fgrep` 및 `git grep`의 종료 코드 1은 일치하는 항목이 없음을 의미하고, `git diff`의 종료 코드 1은 차이가 존재함을 의미하므로 이러한 결과는 Claude에 명령 실패로 보고되지 않습니다.

304 

268<h3 id="preview-limitations">305<h3 id="preview-limitations">

269 미리보기 제한사항306 미리보기 제한사항

270</h3>307</h3>


284 321 

285Read는 일반 텍스트 이상의 여러 파일 타입을 처리합니다:322Read는 일반 텍스트 이상의 여러 파일 타입을 처리합니다:

286 323 

287* **이미지**: PNG, JPG 및 기타 이미지 형식은 원본 바이트가 아닌 Claude가 볼 수 있는 시각적 콘텐츠로 반환됩니다. Claude Code는 모델의 이미지 크기 제한에 맞도록 큰 이미지를 크기 조정하고 재압축하므로, Claude는 큰 스크린샷의 축소된 버전을 볼 수 있습니다. Claude가 큰 이미지에서 세밀한 픽셀 수준의 세부 정보를 놓치면, 예를 들어 ImageMagick을 통해 Bash로 관심 영역을 먼저 자르도록 요청합니다.324* **이미지**: PNG, JPG 및 기타 이미지 형식은 원본 바이트가 아닌 Claude가 볼 수 있는 시각적 콘텐츠로 반환됩니다. Claude Code는 모델의 이미지 크기 제한에 맞도록 큰 이미지를 크기 조정하고 재압축하므로, Claude는 큰 스크린샷의 축소된 버전을 볼 수 있습니다. v2.1.196부터, 크기 조정 후에도 여전히 500KB보다 큰 이미지는 픽셀 치수는 변경하지 않고 품질을 낮춘 JPEG로 다시 인코딩됩니다. Claude가 큰 이미지에서 세밀한 픽셀 수준의 세부 정보를 놓치면, 예를 들어 ImageMagick을 통해 Bash로 관심 영역을 먼저 자르도록 요청합니다.

288* **PDF**: Claude는 짧은 `.pdf` 파일을 전체적으로 읽습니다. 10페이지보다 긴 PDF의 경우, `"1-5"`와 같은 `pages` 매개변수로 범위에서 읽으며, 한 번에 최대 20페이지까지 읽습니다.325* **PDF**: Claude는 짧은 `.pdf` 파일을 전체적으로 읽습니다. 10페이지보다 긴 PDF의 경우, `"1-5"`와 같은 `pages` 매개변수로 범위에서 읽으며, 한 번에 최대 20페이지까지 읽습니다.

289* **Jupyter 노트북**: `.ipynb` 파일은 코드, markdown 및 시각화를 포함한 모든 셀과 해당 출력을 반환합니다.326* **Jupyter 노트북**: `.ipynb` 파일은 코드, markdown 및 시각화를 포함한 모든 셀과 해당 출력을 반환합니다.

290 327 

Details

45문제가 나열되지 않은 경우 아래의 진단 검사를 수행하여 원인을 좁혀보세요.45문제가 나열되지 않은 경우 아래의 진단 검사를 수행하여 원인을 좁혀보세요.

46 46 

47<Tip>47<Tip>

48 터미널을 완전히 건너뛰고 싶다면 [Claude Code Desktop 앱](/ko/desktop-quickstart)을 사용하여 그래픽 인터페이스를 통해 Claude Code를 설치하고 사용할 수 있습니다. [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs) 또는 [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs)용으로 다운로드하고 명령줄 설정 없이 코딩을 시작하세요.48 터미널을 완전히 건너뛰고 싶다면 [Claude Code Desktop 앱](/ko/desktop-quickstart)을 사용하여 그래픽 인터페이스를 통해 Claude Code를 설치하고 사용할 수 있습니다. [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs), [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) 또는 [Linux](https://claude.com/download?utm_source=claude_code\&utm_medium=docs)용으로 다운로드하고 명령줄 설정 없이 코딩을 시작하세요.

49</Tip>49</Tip>

50 50 

51<h2 id="run-diagnostic-checks">51<h2 id="run-diagnostic-checks">

Details

18 요구 사항18 요구 사항

19</h2>19</h2>

20 20 

21음성 받아쓰기는 기록된 오디오를 Anthropic의 서버로 스트리밍하여 전사합니다. 오디오는 로컬에서 처리되지 않습니다. 음성 텍스트 변환 서비스는 Claude.ai 계정으로 인증할 때만 사용 가능하며, Claude Code가 Anthropic API 키, Amazon Bedrock, Google Vertex AI 또는 Microsoft Foundry를 직접 사용하도록 구성된 경우에는 사용할 수 없습니다. 조직에서 HIPAA 규정 준수를 활성화한 경우에도 음성 받아쓰기를 사용할 수 없습니다. 전사는 Claude 메시지나 토큰을 소비하지 않으며 `/usage`에 표시된 한도에 포함되지 않습니다. Anthropic이 데이터를 처리하는 방법은 [데이터 사용](/ko/data-usage)을 참조하세요.21음성 받아쓰기는 기록된 오디오를 Anthropic의 서버로 스트리밍하여 전사합니다. 오디오는 로컬에서 처리되지 않습니다. 다음 모든 항목이 필요합니다:

22 22 

23음성 받아쓰기는 또한 로컬 마이크 접근이 필요하므로 [웹의 Claude Code](/ko/claude-code-on-the-web) 또는 SSH 세션과 같은 원격 환경에서는 작동하지 않습니다. WSL에서 음성 받아쓰기는 오디오 접근을 위해 WSLg가 필요하며, 이는 Windows 10 또는 11의 Microsoft Store에서 설치된 WSL2에 포함되어 있습니다. WSLg를 사용할 수 없는 경우(예: WSL1), 대신 기본 Windows에서 Claude Code를 실행하세요.23* **Claude.ai 계정**: 음성 텍스트 변환 서비스는 Claude.ai 계정으로 인증할 때만 사용 가능하며, Claude Code가 Anthropic API 키, Amazon Bedrock, Google Vertex AI 또는 Microsoft Foundry를 직접 사용하도록 구성된 경우에는 사용할 수 없습니다.

24* **HIPAA 규정 준수가 활성화되지 않은 조직**: 이 제한이 적용되면 `/voice`에 `Voice mode is disabled by your organization's policy`가 표시됩니다.

25* **로컬 마이크**: 음성 받아쓰기는 [웹의 Claude Code](/ko/claude-code-on-the-web) 또는 SSH 세션과 같은 원격 환경에서는 작동하지 않습니다.

26* **WSL에서 Claude Code를 실행하는 경우 WSLg**: WSLg는 Windows 10 또는 11의 Microsoft Store에서 설치된 WSL2에 포함되어 있습니다. WSLg를 사용할 수 없는 경우(예: WSL1), 대신 기본 Windows에서 Claude Code를 실행하세요.

27 

28전사는 Claude 메시지나 토큰을 소비하지 않으며 `/usage`에 표시된 한도에 포함되지 않습니다. Anthropic이 데이터를 처리하는 방법은 [데이터 사용](/ko/data-usage)을 참조하세요.

24 29 

25오디오 녹음은 macOS, Linux 및 Windows의 기본 제공 네이티브 모듈을 사용합니다. Linux에서 네이티브 모듈을 로드할 수 없으면 Claude Code는 ALSA utils의 `arecord` 또는 SoX의 `rec`으로 폴백합니다. 둘 다 사용할 수 없으면 `/voice`는 패키지 관리자에 대한 설치 명령을 출력합니다.30오디오 녹음은 macOS, Linux 및 Windows의 기본 제공 네이티브 모듈을 사용합니다. Linux에서 네이티브 모듈을 로드할 수 없으면 Claude Code는 ALSA utils의 `arecord` 또는 SoX의 `rec`으로 폴백합니다. 둘 다 사용할 수 없으면 `/voice`는 패키지 관리자에 대한 설치 명령을 출력합니다.

26 31 


91 96 

92탭 모드는 단일 키 누름으로 녹음을 전환합니다: 한 번 탭하여 시작하고, 말한 다음, 다시 탭하여 프롬프트를 전송합니다. 워밍업이 없으며 키를 누르고 있을 필요가 없습니다.97탭 모드는 단일 키 누름으로 녹음을 전환합니다: 한 번 탭하여 시작하고, 말한 다음, 다시 탭하여 프롬프트를 전송합니다. 워밍업이 없으며 키를 누르고 있을 필요가 없습니다.

93 98 

94`/voice tap`으로 탭 모드를 활성화합니다. 프롬프트 입력이 비어 있으면 `Space`를 탭하여 녹음을 시작합니다. 바닥글은 녹음 중에 실시간 파형을 표시합니다. `Space`를 다시 탭하여 중지합니다. Claude Code는 전사를 삽입하고 전사가 최소 3단어 이상이면 프롬프트를 자동으로 제출합니다. 더 짧은 전사는 삽입되지만 제출되지 않으므로 실수로 탭해도 단어가 전송되지 않습니다.99`/voice tap`으로 탭 모드를 활성화합니다. 프롬프트 입력이 비어 있으면 `Space`를 탭하여 녹음을 시작합니다. 바닥글은 녹음 중에 실시간 파형을 표시합니다. `Space`를 다시 탭하여 중지합니다.

100 

101Claude Code는 전사를 삽입하고 전사가 최소 3단어 이상이면 프롬프트를 자동으로 제출합니다. 더 짧은 전사는 삽입되지만 제출되지 않으므로 실수로 탭해도 단어가 전송되지 않습니다.

102 

1033단어 임계값은 공백 없이 작성된 언어의 단어를 계산합니다. v2.1.195 기준으로 일본어, 중국어, 태국어 전사는 개별 단어를 계산하므로 탭 모드와 `autoSubmit`이 있는 홀드 모드에서 자동으로 제출됩니다. 이전 버전은 공백이 없는 전사를 한 단어로 계산했으며 자동으로 제출하지 않았습니다.

95 104 

96첫 번째 탭은 프롬프트 입력이 비어 있을 때만 녹음을 시작하므로 메시지를 작성하는 동안 여전히 공백을 정상적으로 입력할 수 있습니다. 두 번째 탭은 입력 내용에 관계없이 녹음을 중지합니다. 녹음은 또한 15초의 침묵 또는 2분 총 시간 후 자동으로 중지됩니다.105첫 번째 탭은 프롬프트 입력이 비어 있을 때만 녹음을 시작하므로 메시지를 작성하는 동안 여전히 공백을 정상적으로 입력할 수 있습니다. 두 번째 탭은 입력 내용에 관계없이 녹음을 중지합니다. 녹음은 또한 15초의 침묵 또는 2분 총 시간 후 자동으로 중지됩니다.

97 106 


169음성 받아쓰기가 활성화되지 않거나 녹음되지 않을 때의 일반적인 문제:178음성 받아쓰기가 활성화되지 않거나 녹음되지 않을 때의 일반적인 문제:

170 179 

171* **`Voice mode requires a Claude.ai account`**: API 키 또는 타사 공급자로 인증되었습니다. `/login`을 실행하여 Claude.ai 계정으로 로그인하세요.180* **`Voice mode requires a Claude.ai account`**: API 키 또는 타사 공급자로 인증되었습니다. `/login`을 실행하여 Claude.ai 계정으로 로그인하세요.

181* **`Voice mode is disabled by your organization's policy`**: 조직의 규정 준수 구성이 음성 받아쓰기를 비활성화합니다. [요구 사항](#requirements)에 설명되어 있습니다. 조직 관리자에게 연락하여 조직에서 음성 받아쓰기를 사용할 수 있는지 확인하세요.

172* **`Microphone access is denied`**: 시스템 설정에서 터미널에 마이크 권한을 부여하세요. macOS에서는 시스템 설정 → 개인정보 보호 및 보안 → 마이크로 이동하여 터미널 앱을 활성화한 다음 `/voice`를 다시 실행하세요. Windows에서는 설정 → 개인정보 보호 및 보안 → 마이크로 이동하여 데스크톱 앱에 대한 마이크 접근을 켜세요. 그런 다음 `/voice`를 다시 실행하세요. 터미널이 macOS 설정에 나열되지 않으면 [macOS 마이크 설정에 나열되지 않은 터미널](#terminal-not-listed-in-macos-microphone-settings)을 참조하세요.182* **`Microphone access is denied`**: 시스템 설정에서 터미널에 마이크 권한을 부여하세요. macOS에서는 시스템 설정 → 개인정보 보호 및 보안 → 마이크로 이동하여 터미널 앱을 활성화한 다음 `/voice`를 다시 실행하세요. Windows에서는 설정 → 개인정보 보호 및 보안 → 마이크로 이동하여 데스크톱 앱에 대한 마이크 접근을 켜세요. 그런 다음 `/voice`를 다시 실행하세요. 터미널이 macOS 설정에 나열되지 않으면 [macOS 마이크 설정에 나열되지 않은 터미널](#terminal-not-listed-in-macos-microphone-settings)을 참조하세요.

173* **Linux에서 `No audio recording tool found`**: 네이티브 오디오 모듈을 로드할 수 없고 폴백이 설치되지 않았습니다. 오류 메시지에 표시된 명령으로 SoX를 설치하세요. 예: `sudo apt-get install sox`.183* **Linux에서 `No audio recording tool found`**: 네이티브 오디오 모듈을 로드할 수 없고 폴백이 설치되지 않았습니다. 오류 메시지에 표시된 명령으로 SoX를 설치하세요. 예: `sudo apt-get install sox`.

184* **`Voice mode requires a microphone, but SoX could not open an audio capture device`**: SoX가 설치되어 있지만 호스트에 오디오 캡처 장치가 없습니다. 예를 들어 헤드리스 서버 또는 컨테이너입니다. 마이크가 있는 머신에서 Claude Code를 실행하세요. {/* min-version: 2.1.195 */}v2.1.195부터 Linux의 Claude Code는 이 상황에서 이 메시지를 보고합니다. 이전 버전은 SoX가 이미 설치되어 있어도 설치하도록 요청했습니다.

174* **`Voice mode could not find a working audio recorder in WSL`**: WSLg는 ALSA 장치가 아닌 PulseAudio를 통해 오디오를 라우팅하므로 SoX는 PulseAudio 백엔드가 명시적으로 설치되어야 합니다. `sudo apt install sox libsox-fmt-pulse`를 실행하세요. `sox`만 설치하면 ALSA 백엔드가 함께 설치되는데, WSL에서는 `/dev/snd` 장치가 없기 때문에 녹음할 수 없습니다.185* **`Voice mode could not find a working audio recorder in WSL`**: WSLg는 ALSA 장치가 아닌 PulseAudio를 통해 오디오를 라우팅하므로 SoX는 PulseAudio 백엔드가 명시적으로 설치되어야 합니다. `sudo apt install sox libsox-fmt-pulse`를 실행하세요. `sox`만 설치하면 ALSA 백엔드가 함께 설치되는데, WSL에서는 `/dev/snd` 장치가 없기 때문에 녹음할 수 없습니다.

175* **`Voice input is failing repeatedly and has been paused`**: 음성 받아쓰기가 여러 번 시작 실패를 겪었고 하나가 성공할 때까지 새 세션 시도를 중단했습니다. 이는 일반적으로 이 호스트의 마이크 또는 오디오 스택이 오디오를 캡처할 수 없음을 의미합니다. 예를 들어 헤드리스 서버, 오디오 패스스루가 없는 원격 셸 또는 거부된 마이크 권한이 있습니다. 작동하는 입력 장치를 확인하고 위의 항목에서 근본 원인을 해결한 다음 음성을 다시 트리거하세요.186* **`Voice input is failing repeatedly and has been paused`**: 음성 받아쓰기가 여러 번 시작 실패를 겪었고 하나가 성공할 때까지 새 세션 시도를 중단했습니다. 이는 일반적으로 이 호스트의 마이크 또는 오디오 스택이 오디오를 캡처할 수 없음을 의미합니다. 예를 들어 헤드리스 서버, 오디오 패스스루가 없는 원격 셸 또는 거부된 마이크 권한이 있습니다. 작동하는 입력 장치를 확인하고 위의 항목에서 근본 원인을 해결한 다음 음성을 다시 트리거하세요.

176* **누르고 있기 모드에서 `Space`를 누르고 있어도 아무것도 일어나지 않음**: 누르고 있는 동안 프롬프트 입력을 봅니다. 공백이 계속 누적되면 음성 받아쓰기가 꺼져 있을 가능성이 높습니다. `/voice hold`를 실행하여 활성화하세요. 1\~2개의 공백만 나타나고 그 다음 아무것도 없으면 음성 받아쓰기는 켜져 있지만 누르고 있기 감지가 트리거되지 않습니다. 누르고 있기 감지는 터미널이 키 반복 이벤트를 보내야 하므로 OS 수준에서 키 반복이 비활성화되면 누르고 있는 키를 감지할 수 없습니다. 키 반복 요구 사항을 피하려면 `/voice tap`으로 탭 모드로 전환하세요.187* **누르고 있기 모드에서 `Space`를 누르고 있어도 아무것도 일어나지 않음**: 누르고 있는 동안 프롬프트 입력을 봅니다. 공백이 계속 누적되면 음성 받아쓰기가 꺼져 있을 가능성이 높습니다. `/voice hold`를 실행하여 활성화하세요. 1\~2개의 공백만 나타나고 그 다음 아무것도 없으면 음성 받아쓰기는 켜져 있지만 누르고 있기 감지가 트리거되지 않습니다. 누르고 있기 감지는 터미널이 키 반복 이벤트를 보내야 하므로 OS 수준에서 키 반복이 비활성화되면 누르고 있는 키를 감지할 수 없습니다. 키 반복 요구 사항을 피하려면 `/voice tap`으로 탭 모드로 전환하세요.

whats-new.md +16 −0

Details

8 8 

9주간 개발자 다이제스트는 업무 방식을 바꿀 가능성이 가장 높은 기능들을 강조합니다. 각 항목에는 실행 가능한 코드, 짧은 데모, 그리고 전체 문서로의 링크가 포함됩니다. 모든 버그 수정 및 사소한 개선 사항은 [changelog](/ko/changelog)를 참조하십시오.9주간 개발자 다이제스트는 업무 방식을 바꿀 가능성이 가장 높은 기능들을 강조합니다. 각 항목에는 실행 가능한 코드, 짧은 데모, 그리고 전체 문서로의 링크가 포함됩니다. 모든 버그 수정 및 사소한 개선 사항은 [changelog](/ko/changelog)를 참조하십시오.

10 10 

11<Update label="Week 26" description="2026년 6월 22–26일" tags={["v2.1.185–v2.1.193"]}>

12 **`claude mcp login`**: 대화형 `/mcp` 메뉴 대신 셸에서 구성된 MCP 서버를 인증하고, 나중에 `claude mcp logout`으로 저장된 자격 증명을 지웁니다.

13 

14 이번 주의 다른 기능들: **shell mode는 명령 출력에 응답합니다** (`! npm test`는 두 번째 프롬프트 없이 설명을 받습니다); \*\*`/rewind`\*\*는 `/clear`가 실행되기 전의 대화를 재개할 수 있습니다; 그리고 **background subagents**는 이제 자동 거부 대신 주 세션에서 권한 프롬프트를 표시합니다.

15 

16 [Week 26 다이제스트 읽기 →](/ko/whats-new/2026-w26)

17</Update>

18 

19<Update label="Week 25" description="2026년 6월 15–19일" tags={["v2.1.178–v2.1.183"]}>

20 **Artifacts**: 세션의 출력을 claude.ai의 라이브 공유 가능한 페이지로 변환하여 세션이 작업할 때 제자리에서 업데이트되며, 현재 Team 및 Enterprise 플랜에서 베타 버전으로 제공됩니다.

21 

22 이번 주의 다른 기능들: **deny 및 ask 규칙은 도구 매개변수와 일치합니다** `Tool(param:value)` 형식으로, 예를 들어 `Agent(model:opus)`; \*\*`/config key=value`\*\*는 프롬프트에서, `-p` 모드에서, 그리고 Remote Control에서 모든 설정을 지정합니다; 그리고 **auto mode는 로컬 작업을 버리도록 요청하지 않았을 때 파괴적인 git 명령을 차단합니다**.

23 

24 [Week 25 다이제스트 읽기 →](/ko/whats-new/2026-w25)

25</Update>

26 

11<Update label="Week 24" description="2026년 6월 8–12일" tags={["v2.1.166–v2.1.176"]}>27<Update label="Week 24" description="2026년 6월 8–12일" tags={["v2.1.166–v2.1.176"]}>

12 **`/cd`**: 프롬프트 캐시를 다시 구축하지 않고 대화 중간에 현재 세션을 새로운 작업 디렉토리로 이동합니다.28 **`/cd`**: 프롬프트 캐시를 다시 구축하지 않고 대화 중간에 현재 세션을 새로운 작업 디렉토리로 이동합니다.

13 29 

Details

73 <p className="digest-feature-try">관리형 설정에 하한을 추가하여 이전 클라이언트가 시작을 거부하도록 합니다:</p>73 <p className="digest-feature-try">관리형 설정에 하한을 추가하여 이전 클라이언트가 시작을 거부하도록 합니다:</p>

74 74 

75 ```json managed-settings.json theme={null}75 ```json managed-settings.json theme={null}

76 {

76 "requiredMinimumVersion": "2.1.163"77 "requiredMinimumVersion": "2.1.163"

78 }

77 ```79 ```

78 80 

79 <a className="digest-feature-link" href="/ko/docs/admin-setup#decide-what-to-enforce">적용할 항목 결정</a>81 <a className="digest-feature-link" href="/ko/docs/admin-setup#decide-what-to-enforce">적용할 항목 결정</a>

whats-new/2026-w25.md +90 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 25주차 · 2026년 6월 15–19일

6 

7> Artifacts를 사용하여 세션에서 라이브 공유 가능한 페이지를 게시하고, 거부 및 요청 규칙에서 도구 매개변수를 일치시키며, /config를 사용하여 프롬프트에서 모든 설정을 지정합니다.

8 

9<div className="digest-meta">

10 <span>릴리스 <a href="/ko/docs/changelog#2-1-178">v2.1.178 → v2.1.183</a></span>

11 <span>3가지 기능 · 6월 15–19</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Artifacts</span>

17 </div>

18 

19 <p className="digest-feature-lede">Artifact는 Claude Code가 세션에서 claude.ai의 비공개 URL로 게시하는 라이브 대화형 페이지이며, 세션이 계속 작동하면서 제자리에서 업데이트됩니다. 터미널 텍스트가 적절하지 않은 경우(예: 인라인으로 주석이 달린 diff가 있는 PR 안내 또는 세션 데이터로 구축된 대시보드)에 요청하십시오. Artifacts는 Team 및 Enterprise 플랜에서 베타 버전입니다.</p>

20 

21 <Frame>

22 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/1ylKDoQynT1UgfEK/images/whats-new/artifacts.mp4?fit=max&auto=format&n=1ylKDoQynT1UgfEK&q=85&s=7f5391559d2bc69989621b36322fcff1" data-path="images/whats-new/artifacts.mp4" />

23 </Frame>

24 

25 <p className="digest-feature-try">Claude에 페이지를 요청한 다음 게시 프롬프트를 승인하십시오:</p>

26 

27 ```text Claude Code theme={null}

28 > Make an artifact that walks through this PR with the diff annotated inline.

29 ```

30 

31 <a className="digest-feature-link" href="/ko/docs/artifacts#create-an-artifact">Artifact 생성</a>

32</div>

33 

34<div className="digest-feature">

35 <div className="digest-feature-header">

36 <span className="digest-feature-title">입력 매개변수로 일치</span>

37 <span className="digest-feature-pill">v2.1.178</span>

38 </div>

39 

40 <p className="digest-feature-lede">거부 및 요청 권한 규칙은 이제 <code>Tool(param:value)</code> 구문을 사용하여 도구의 입력 매개변수를 일치시킬 수 있습니다. 예를 들어, <code>Agent(model:opus)</code>는 Opus 모델 계층을 요청하는 서브에이전트 생성과 일치합니다. 값은 와일드카드로 `*`를 허용하므로 `Agent(isolation:*)`는 모든 명시적 격리 값과 일치합니다.</p>

41 

42 <p className="digest-feature-try"><code>settings.json</code>의 거부 목록에 매개변수 규칙을 추가하십시오:</p>

43 

44 ```json .claude/settings.json {3} theme={null}

45 {

46 "permissions": {

47 "deny": ["Agent(model:opus)"]

48 }

49 }

50 ```

51 

52 <a className="digest-feature-link" href="/ko/docs/permissions#match-by-input-parameter">입력 매개변수로 일치</a>

53</div>

54 

55<div className="digest-feature">

56 <div className="digest-feature-header">

57 <span className="digest-feature-title">프롬프트에서 모든 설정 지정</span>

58 <span className="digest-feature-pill">v2.1.181</span>

59 </div>

60 

61 <p className="digest-feature-lede"><code>key=value</code>를 <code>/config</code>에 전달하여 설정 인터페이스를 열지 않고 설정을 직접 변경합니다. 구문은 <code>-p</code> 플래그를 사용한 비대화형 모드 및 Remote Control에서도 작동합니다.</p>

62 

63 <p className="digest-feature-try">프롬프트에서 <code>thinking</code> 설정을 지정하십시오:</p>

64 

65 ```text Claude Code theme={null}

66 > /config thinking=false

67 ```

68 

69 <a className="digest-feature-link" href="/ko/docs/commands#all-commands">명령 참조</a>

70</div>

71 

72<div className="digest-wins">

73 <p className="digest-wins-title">기타 개선 사항</p>

74 

75 <div className="digest-wins-grid">

76 <div>Auto 모드는 이제 로컬 작업을 삭제하도록 요청하지 않았을 때 파괴적인 git 명령(`git reset --hard`, `git clean -fd`, `git stash drop`)을 차단하고, 특정 스택을 요청하지 않은 경우 <code>terraform destroy</code>를 차단합니다</div>

77 <div>새로운 <code>attribution.sessionUrl</code> 설정을 <code>false</code>로 설정하여 웹 및 Remote Control 세션의 커밋 및 PR에서 claude.ai 세션 링크를 생략합니다</div>

78 <div><code>/config</code> 인터페이스에서 Enter와 Space 모두 선택된 설정을 변경하고, Esc는 이제 되돌리는 대신 저장하고 닫습니다</div>

79 <div>새로운 <code>sandbox.allowAppleEvents</code> 옵트인 설정을 사용하면 샌드박스된 명령이 macOS에서 Apple Events를 보낼 수 있습니다</div>

80 <div><code>CLAUDE\_CLIENT\_PRESENCE\_FILE</code>을 마커 파일로 지정하여 기계에 있는 동안 모바일 푸시 알림을 억제합니다</div>

81 <div>긴 단락은 이제 첫 번째 줄 바꿈을 기다리는 대신 한 줄씩 스트리밍됩니다</div>

82 <div>API 연결이 생각 중에 끊어지면 이제 "Connection closed while thinking" 메시지를 표시하는 대신 자동으로 재시도합니다</div>

83 <div><code>CLAUDE\_CODE\_EXPERIMENTAL\_AGENT\_TEAMS=1</code>이 설정되면 모든 세션에 하나의 암시적 팀이 있으므로 Agent 도구의 <code>name</code> 매개변수를 사용하여 팀원을 직접 생성합니다</div>

84 <div>중첩된 <code>.claude/skills</code> 디렉토리의 Skills는 해당 파일에서 작업할 때 로드되며, 이름 충돌 시 중첩된 skill은 `<dir>:<name>`으로 표시되므로 둘 다 사용 가능합니다</div>

85 <div>사용자 정의 <code>ANTHROPIC\_BASE\_URL</code> 및 Foundry에서 프롬프트 캐싱이 읽지 않는 문제를 수정했습니다</div>

86 <div>네트워크 드라이브 및 클라우드 동기화 폴더에서 Write 및 Edit이 0바이트 또는 잘린 파일을 생성하는 문제를 수정했습니다</div>

87 </div>

88</div>

89 

90[v2.1.178–v2.1.183의 전체 변경 로그 →](/ko/changelog#2-1-178)

whats-new/2026-w26.md +66 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 26주차 · 2026년 6월 22–26일

6 

7> 셸에서 claude mcp login으로 MCP 서버를 인증하고, ! 접두사로 셸 모드 명령 출력에 응답을 받으며, /clear 이전 대화를 /rewind로 재개합니다.

8 

9<div className="digest-meta">

10 <span>릴리스 <a href="/ko/docs/changelog#2-1-185">v2.1.185 → v2.1.193</a></span>

11 <span>2가지 기능 · 6월 22–26</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">CLI에서 MCP 서버 인증</span>

17 <span className="digest-feature-pill">v2.1.186</span>

18 </div>

19 

20 <p className="digest-feature-lede">새로운 `claude mcp login <name>` 및 `claude mcp logout <name>` 명령어는 대화형 <code>/mcp</code> 메뉴 대신 셸에서 구성된 MCP 서버를 인증합니다. `claude mcp login`은 서버의 OAuth 흐름을 직접 실행하고, `claude mcp logout`은 저장된 자격 증명을 지웁니다.</p>

21 

22 <p className="digest-feature-try">세션을 열지 않고 구성된 서버에 대한 OAuth 흐름을 실행합니다:</p>

23 

24 ```bash terminal theme={null}

25 claude mcp login sentry

26 ```

27 

28 <a className="digest-feature-link" href="/ko/docs/mcp#authenticate-from-the-command-line">명령줄에서 인증</a>

29</div>

30 

31<div className="digest-feature">

32 <div className="digest-feature-header">

33 <span className="digest-feature-title">셸 모드가 명령 출력에 응답</span>

34 <span className="digest-feature-pill">v2.1.186</span>

35 </div>

36 

37 <p className="digest-feature-lede"><code>!</code> 접두사로 실행하는 명령어는 이제 출력이 트랜스크립트에 도착하면 Claude로부터 응답을 받으므로, <code>! npm test</code>를 실행하고 두 번째 프롬프트 없이 실패에 대한 설명을 얻을 수 있습니다. 응답 비용은 일반 프롬프트를 보내는 것과 동일합니다. 출력이 응답 없이 컨텍스트에 추가되는 이전 동작을 유지하려면 <code>settings.json</code>에서 <code>respondToBashCommands</code>를 <code>false</code>로 설정합니다.</p>

38 

39 <p className="digest-feature-try">명령을 실행하고 출력에 대한 응답을 받습니다:</p>

40 

41 ```text Claude Code theme={null}

42 > ! npm test

43 ```

44 

45 <a className="digest-feature-link" href="/ko/docs/interactive-mode#shell-mode-with-prefix">! 접두사가 있는 셸 모드</a>

46</div>

47 

48<div className="digest-wins">

49 <p className="digest-wins-title">기타 개선 사항</p>

50 

51 <div className="digest-wins-grid">

52 <div><code>/rewind</code>는 이제 <code>/clear</code>가 실행되기 전의 대화를 재개할 수 있습니다</div>

53 <div>새로운 <code>sandbox.credentials</code> 설정은 샌드박스 명령이 자격 증명 파일 및 비밀 환경 변수를 읽지 못하도록 차단합니다</div>

54 <div>조직에서 구성한 모델 제한이 이제 모델 선택기, `--model`, <code>/model</code>, 및 <code>ANTHROPIC\_MODEL</code>에 적용되며, 제한된 모델이 선택되면 "조직의 설정에 의해 제한됨" 메시지가 표시됩니다</div>

55 <div>새로운 <code>autoMode.classifyAllShell</code> 설정은 모든 Bash 및 PowerShell 명령을 자동 모드 분류기를 통해 라우팅하며, 거부 이유는 이제 트랜스크립트, 거부 토스트, 및 <code>/permissions</code>에 표시됩니다</div>

56 <div>새로운 <code>claude\_code.assistant\_response</code> OpenTelemetry 로그 이벤트는 모델의 응답 텍스트를 전달합니다. 이미 프롬프트 콘텐츠를 로깅하는 배포는 업그레이드 시 이를 수신하기 시작하므로, 프롬프트만 유지하려면 <code>OTEL\_LOG\_ASSISTANT\_RESPONSES=0</code>을 설정합니다</div>

57 <div>백그라운드 서브에이전트는 이제 자동 거부 대신 주 세션에서 권한 프롬프트를 표시합니다. 대화 상자는 어떤 에이전트가 요청하는지 표시하며, Esc는 해당 도구만 거부합니다</div>

58 <div><code>/install-github-app</code>은 이제 GitHub App만 설치하고 Actions 워크플로우 및 비밀 단계를 건너뛸 수 있습니다</div>

59 <div>샌드박스 네트워크 권한 대화 상자에서 허용하는 호스트는 모든 연결에서 다시 프롬프트하는 대신 세션의 나머지 기간 동안 기억됩니다</div>

60 <div>스트리밍 응답은 약 37% 적은 CPU를 사용하며, 터미널 출력 캐시로 인한 장기 세션 메모리 증가가 감소합니다</div>

61 <div>`/review <pr>`은 이제 <code>/code-review medium</code>과 동일한 검토 엔진을 사용합니다</div>

62 <div>Bash 모드 <code>!</code> 명령은 라이브 파일 경로 자동 완성을 받습니다</div>

63 </div>

64</div>

65 

66[v2.1.185–v2.1.193 전체 변경 로그 →](/ko/changelog#2-1-185)

workflows.md +2 −0

Details

68 68 

69 <Step title="보고서 읽기">69 <Step title="보고서 읽기">

70 실행이 완료되면 보고서가 세션에 들어갑니다. 각 주장이 나온 소스를 인용하며, 교차 검증을 통과하지 못한 주장은 이미 필터링되어 있습니다.70 실행이 완료되면 보고서가 세션에 들어갑니다. 각 주장이 나온 소스를 인용하며, 교차 검증을 통과하지 못한 주장은 이미 필터링되어 있습니다.

71 

72 {/* min-version: 2.1.196 */}v2.1.196부터 검증자 에이전트가 속도 제한이나 API 오류 이후와 같이 주장을 확인할 수 없을 때, 보고서는 그 주장을 반박된 것으로 계산하는 대신 검증되지 않은 것으로 나열합니다.

71 </Step>73 </Step>

72</Steps>74</Steps>

73 75