SpyBara
Go Premium

Documentation 2026-10-20 23:00 UTC to 2026-10-21 23:02 UTC

84 files changed +2,623 −1,694. View all changes and history on the product overview
2026
Fri 30 23:01 Thu 29 23:57 Wed 28 23:57 Tue 27 22:59 Mon 26 22:57 Sun 25 23:58 Sat 24 22:59 Fri 23 22:59 Thu 22 22:58 Wed 21 23:02 Tue 20 23:00 Mon 19 23:58 Sat 17 23:57 Fri 16 22:59 Thu 15 23:58 Wed 14 22:58 Tue 13 23:57 Sun 11 23:57 Sat 10 23:01 Fri 9 23:02 Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59

admin-setup.md +1 −1

Details

91| [권한 잠금](/docs/ko/permissions#managed-only-settings) | 관리되는 설정을 [권한 규칙의 유일한 설정 소스](/docs/ko/settings-reference#allowmanagedpermissionrulesonly)로 만듭니다. `--dangerously-skip-permissions` 비활성화 | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |91| [권한 잠금](/docs/ko/permissions#managed-only-settings) | 관리되는 설정을 [권한 규칙의 유일한 설정 소스](/docs/ko/settings-reference#allowmanagedpermissionrulesonly)로 만듭니다. `--dangerously-skip-permissions` 비활성화 | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |

92| [시작 권한 모드](/docs/ko/permission-modes#which-mode-a-session-starts-in) | 기본 제공 시작 권한 모드 대신 개발자의 터미널 세션이 시작되는 권한 모드를 선택하거나 자동 모드를 제거합니다. [권한 모드 전환](/docs/ko/permission-modes#switch-permission-modes)에서 VS Code 확장이 설정한 `defaultMode`를 읽을 때를 나열합니다 | `permissions.defaultMode`, `permissions.disableAutoMode` |92| [시작 권한 모드](/docs/ko/permission-modes#which-mode-a-session-starts-in) | 기본 제공 시작 권한 모드 대신 개발자의 터미널 세션이 시작되는 권한 모드를 선택하거나 자동 모드를 제거합니다. [권한 모드 전환](/docs/ko/permission-modes#switch-permission-modes)에서 VS Code 확장이 설정한 `defaultMode`를 읽을 때를 나열합니다 | `permissions.defaultMode`, `permissions.disableAutoMode` |

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

94| [관리되는 정책 CLAUDE.md](/docs/ko/memory#deploy-organization-wide-claude-md) | 모든 세션에서 로드되는 조직 전체 지침, 제외할 수 없음 | 관리되는 정책 경로의 파일 |94| [관리형 정책 CLAUDE.md](/docs/ko/memory#deploy-organization-wide-claude-md) | 클라이언트에서 강제하는 규칙이 아닌, Claude를 위한 조직 전체 행동 지침 | 관리형 정책 경로의 파일 |

95| [MCP 서버 제어](/docs/ko/managed-mcp) | 사용자가 추가하거나 연결할 수 있는 MCP 서버를 제한하고, 고정 집합을 배포하거나, 모든 사용자에게 자신의 서버와 함께 원격 서버를 제공합니다 | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers`, 또는 배포된 `managed-mcp.json` 파일 |95| [MCP 서버 제어](/docs/ko/managed-mcp) | 사용자가 추가하거나 연결할 수 있는 MCP 서버를 제한하고, 고정 집합을 배포하거나, 모든 사용자에게 자신의 서버와 함께 원격 서버를 제공합니다 | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers`, 또는 배포된 `managed-mcp.json` 파일 |

96| [플러그인 마켓플레이스 제어](/docs/ko/plugins/org#restrict-what-users-can-install) | 사용자가 추가하고 설치할 수 있는 마켓플레이스 소스를 제한하고, 단일 실행을 위해 플러그인, 에이전트 및 MCP 서버를 사이드로드하는 CLI 플래그를 거부하며, [`command` 플러그인 소스](/docs/ko/plugins/marketplace-reference#command-plugin-source)를 차단하고, 어떤 마켓플레이스의 플러그인을 제안할 수 있는지 허용 목록에 추가합니다 | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |96| [플러그인 마켓플레이스 제어](/docs/ko/plugins/org#restrict-what-users-can-install) | 사용자가 추가하고 설치할 수 있는 마켓플레이스 소스를 제한하고, 단일 실행을 위해 플러그인, 에이전트 및 MCP 서버를 사이드로드하는 CLI 플래그를 거부하며, [`command` 플러그인 소스](/docs/ko/plugins/marketplace-reference#command-plugin-source)를 차단하고, 어떤 마켓플레이스의 플러그인을 제안할 수 있는지 허용 목록에 추가합니다 | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |

97| [사용자 정의 잠금](/docs/ko/settings-reference#strictpluginonlycustomization) | skills, 에이전트, hooks 및 MCP 서버가 사용자 및 프로젝트 소스에서 오지 않도록 차단하여 플러그인 또는 관리되는 설정에서만 올 수 있도록 합니다. skills를 잠금하면 [개발자가 claude.ai에서 활성화하는 skills](/docs/ko/skills#where-synced-skills-load)도 동기화되지 않습니다 | `strictPluginOnlyCustomization` |97| [사용자 정의 잠금](/docs/ko/settings-reference#strictpluginonlycustomization) | skills, 에이전트, hooks 및 MCP 서버가 사용자 및 프로젝트 소스에서 오지 않도록 차단하여 플러그인 또는 관리되는 설정에서만 올 수 있도록 합니다. skills를 잠금하면 [개발자가 claude.ai에서 활성화하는 skills](/docs/ko/skills#where-synced-skills-load)도 동기화되지 않습니다 | `strictPluginOnlyCustomization` |

advisor.md +1 −1

Details

83 83 

84[백그라운드 세션](/docs/ko/agent-view)을 `--advisor`로 시작하고 이 중 하나가 적용되면 Claude Code는 종료하는 대신 조언자 없이 세션을 시작합니다.84[백그라운드 세션](/docs/ko/agent-view)을 `--advisor`로 시작하고 이 중 하나가 적용되면 Claude Code는 종료하는 대신 조언자 없이 세션을 시작합니다.

85 85 

86요청된 모델이 조언자로 작동할 수 있지만 세션의 주 모델보다 [순위가 낮은](#choose-an-advisor-model) 경우에도 Claude Code는 세션을 시작합니다. 백그라운드 세션이 아닌 경우에는 시작 시 해당 모델이 주 모델에 대해 `cannot advise`라는 경고도 표시합니다.86전달한 모델이 조언자로 작동할 수 있지만 [주 모델보다 순위가 낮은](#choose-an-advisor-model) 경우, 백그라운드 세션 여부와 관계없이 세션이 시작됩니다. 이 경우 주 모델은 조언자 없이 실행됩니다.

87 87 

88## 조언자 모델 선택88## 조언자 모델 선택

89 89 

Details

20 20 

21[`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos)의 애플리케이션은 이메일 클라이언트에서 다중 에이전트 연구 시스템에 이르기까지 로컬 개발을 위한 데모입니다. 구축 중인 것과 모양이 일치하는 데모를 복제하십시오.21[`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos)의 애플리케이션은 이메일 클라이언트에서 다중 에이전트 연구 시스템에 이르기까지 로컬 개발을 위한 데모입니다. 구축 중인 것과 모양이 일치하는 데모를 복제하십시오.

22 22 

23## 완성된 프로젝트 포크하기

24 

25Python SDK로 쇼핑 에이전트나 판매자 에이전트를 구축하려면 [Claude for commerce 참조 구현](https://platform.claude.com/docs/en/about-claude/use-case-guides/commerce-agents)에서 시작하십시오.

26 

23## Python 레시피 작업27## Python 레시피 작업

24 28 

25Claude Cookbook의 Agent SDK 시리즈는 각각 Python 노트북인 레시피의 시퀀스로, 간단한 연구 에이전트에서 정교한 다중 에이전트 시스템으로 진행됩니다. 각 노트북은 이전 노트북을 기반으로 하며 새로운 개념과 기능을 소개합니다. [원라이너 연구 에이전트](https://platform.claude.com/cookbook/claude-agent-sdk-00-the-one-liner-research-agent)로 시작하여 앞으로 진행하십시오.29Claude Cookbook의 Agent SDK 시리즈는 각각 Python 노트북인 레시피의 시퀀스로, 간단한 연구 에이전트에서 정교한 다중 에이전트 시스템으로 진행됩니다. 각 노트북은 이전 노트북을 기반으로 하며 새로운 개념과 기능을 소개합니다. [원라이너 연구 에이전트](https://platform.claude.com/cookbook/claude-agent-sdk-00-the-one-liner-research-agent)로 시작하여 앞으로 진행하십시오.

Details

638 638 

639* [`permission_prompt`](/docs/ko/hooks#notification): 권한 요청이 [`canUseTool` 콜백](/docs/ko/agent-sdk/user-input)에서 약 6초 동안 대기한 경우. TypeScript Agent SDK v0.3.233 이상 또는 Python Agent SDK v0.2.139 이상이 필요합니다639* [`permission_prompt`](/docs/ko/hooks#notification): 권한 요청이 [`canUseTool` 콜백](/docs/ko/agent-sdk/user-input)에서 약 6초 동안 대기한 경우. TypeScript Agent SDK v0.3.233 이상 또는 Python Agent SDK v0.2.139 이상이 필요합니다

640* `elicitation_complete` 및 `elicitation_response`: 사용자 프롬프트 elicitation 흐름용640* `elicitation_complete` 및 `elicitation_response`: 사용자 프롬프트 elicitation 흐름용

641* `plugin_notification`: [mod](/docs/ko/plugins/mods/api#show-something-without-starting-a-turn)가 `$.ui.notify`를 호출할 때

641 642 

642`idle_prompt`, `auth_success`, `elicitation_dialog`와 같은 다른 유형은 Claude Code가 SDK 세션에서 실행되지 않는 대화형 UI에서 발생시킵니다.643`idle_prompt`, `auth_success`, `elicitation_dialog`와 같은 다른 유형은 Claude Code가 SDK 세션에서 실행되지 않는 대화형 UI에서 발생시킵니다.

643 644 

agent-sdk/mcp.md +29 −11

Details

142 142 

143## 연결 타이밍143## 연결 타이밍

144 144 

145Claude Code는 `options.mcpServers`에 전달한 서버를 시작 시 등록하고, 첫 번째 턴 대기(있는 경우)가 해결되면 [init 메시지](#error-handling)를 내보냅니다. 각 `options.mcpServers` 서버가 첫 번째 턴을 지연시키는지 여부와 연결 시기는 해당 서버의 유형에 따라 달라집니다:145Claude Code는 세션이 시작될 때 MCP 서버 연결을 시작하고, 첫 번째 턴 대기(있는 경우)가 끝나면 [init 메시지](#error-handling)를 보냅니다. 첫 번째 턴이 서버를 얼마나 오래 기다리는지는 해당 서버를 구성한 위치에 따라 달라집니다. `permissionPromptToolName`을 설정하면, 구성 위치와 관계없이 첫 번째 턴은 항상 해당 도구의 서버를 `MCP_TIMEOUT`까지 기다립니다.

146 

147`options.mcpServers`에 있는 서버의 경우, 첫 번째 열에서 해당 서버의 유형을 찾아 첫 번째 턴이 얼마나 오래 기다리는지 확인합니다.

146 148 

147| 서버 유형 | 첫 번째 턴을 지연시킵니까? | 첫 번째 턴 대기 타임아웃 |149| 서버 유형 | 첫 번째 턴을 지연시킵니까? | 첫 번째 턴 대기 타임아웃 |

148| :- | :- | :- |150| :- | :- | :- |


150| 캐시된 도구 목록이 있는 원격 서버, Claude Code가 이전 연결에서 저장함 | 아니요; 캐시된 도구는 첫 번째 턴부터 사용 가능합니다 | 없음; 첫 번째 도구 호출 시 연결되며, 해당 지연된 연결에는 자체 타임아웃이 있습니다 |152| 캐시된 도구 목록이 있는 원격 서버, Claude Code가 이전 연결에서 저장함 | 아니요; 캐시된 도구는 첫 번째 턴부터 사용 가능합니다 | 없음; 첫 번째 도구 호출 시 연결되며, 해당 지연된 연결에는 자체 타임아웃이 있습니다 |

151| 인프로세스 [SDK 서버](#sdk-mcp-servers) | 예, 연결되고 도구를 나열할 때까지 | [`MCP_TIMEOUT`](/docs/ko/env-vars), 기본값 30초, 연결 시도당; 해당 기한에 연결이 실패합니다 |153| 인프로세스 [SDK 서버](#sdk-mcp-servers) | 예, 연결되고 도구를 나열할 때까지 | [`MCP_TIMEOUT`](/docs/ko/env-vars), 기본값 30초, 연결 시도당; 해당 기한에 연결이 실패합니다 |

152 154 

153[설정 파일](#from-a-config-file)(예: `.mcp.json`)이나 플러그인에서 로드된 서버는 일반적으로 init 메시지에서 `pending` 상태를 표시합니다. `options.mcpServers`가 stdio, HTTP 또는 SSE 서버를 포함할 때, 첫 번째 턴은 이러한 보류 중인 서버도 기다리며, `MCP_TIMEOUT`까지 대기합니다. `options.mcpServers`가 비어 있거나 SDK 서버만 포함할 때, 첫 번째 턴은 대신 최대 2초까지 대기합니다:155서버에 캐시된 도구 목록이 있는 것은 [MCP 검색 캐시](/docs/ko/mcp#server-status-detail)가 켜져 있을 때뿐입니다.

156 

157`.mcp.json`과 같은 [설정 파일](#from-a-config-file)이나 플러그인에서 온 서버는 init 메시지에서 여전히 `pending` 상태로 표시되는 경우가 많습니다. 첫 번째 턴이 이러한 서버를 얼마나 오래 기다리는지는 `options.mcpServers`와 도구 검색에 따라 달라집니다:

158 

159* **`options.mcpServers`에 stdio, HTTP 또는 SSE 서버가 포함된 경우**: 첫 번째 턴은 보류 중인 설정 파일 및 플러그인 서버도 `MCP_TIMEOUT`까지 기다립니다.

160* **그 외에, `ANTHROPIC_BASE_URL`이 [게이트웨이](/docs/ko/mcp#tool-search-through-a-gateway)를 가리키고 [`ENABLE_TOOL_SEARCH`](/docs/ko/mcp#configure-tool-search)가 설정되지 않은 경우**: 첫 번째 턴은 보류 중인 모든 설정 파일 및 플러그인 서버를 최대 2초까지 기다립니다.

161* **그 외에, [도구 검색](/docs/ko/agent-sdk/tool-search)이 켜져 있는 경우(기본값)**: 첫 번째 턴은 최대 2초까지 기다리며, [`alwaysLoad: true`](/docs/ko/mcp#exempt-a-server-from-deferral)를 설정했거나 사용자가 [지명한](#named-servers) 보류 중인 서버만 기다립니다. 나머지 서버는 백그라운드에서 계속 연결되며, 연결되면 Claude가 [해당 도구에 도달](/docs/ko/mcp#tool-availability)합니다.

162* **그 외에, 도구 검색이 꺼져 있는 경우**: 첫 번째 턴은 보류 중인 모든 설정 파일 및 플러그인 서버를 최대 2초까지 기다립니다. [`ENABLE_TOOL_SEARCH` 값 또는 모델](/docs/ko/agent-sdk/tool-search#configure-tool-search)이 도구 검색을 끄거나, 예를 들어 `disallowedTools`를 통해 `ToolSearch` 도구를 제외하면 도구 검색이 꺼집니다.

163 

164### 지명된 서버

165 

166서버를 지명하려면 `mcp__github__list_issues` 또는 `mcp__github__*`와 같은 해당 서버의 도구를 [`allowedTools`](#allow-mcp-tools)나 `settings` 옵션의 `permissions.allow` 규칙에 나열합니다. [`mcp_tool` 훅](/docs/ko/hooks#mcp-tool-hook-fields)을 프롬프트 제출, 도구 사용, 권한, 서브에이전트, 작업, elicitation 또는 worktree 이벤트에 구성하면 해당 훅이 호출하는 서버도 지명됩니다. v2.1.284 이전에는 서버를 지명해도 첫 번째 턴 대기에 영향을 주지 않았습니다.

167 

168### 첫 번째 턴 대기 직접 설정

169 

170첫 번째 턴 대기를 직접 선택하려면 [`env` 옵션](/docs/ko/agent-sdk/configuration#set-environment-variables)에 `CLAUDE_CODE_MCP_STARTUP_WAIT_MS`를 설정합니다(예: `CLAUDE_CODE_MCP_STARTUP_WAIT_MS: "5000"`). 그러면 첫 번째 턴은 도구 검색이 켜져 있는지 여부와 관계없이 보류 중인 설정 파일 및 플러그인 서버를 최대 해당 밀리초까지 기다립니다. 같은 제한이 `options.mcpServers`의 stdio, HTTP 및 SSE 서버에 대한 `MCP_TIMEOUT` 대기도 대체합니다.

154 171 

155* **[도구 검색](/docs/ko/agent-sdk/tool-search)(기본값)**: 대기는 [`alwaysLoad: true`](/docs/ko/mcp#exempt-a-server-from-deferral)로 구성된 여전히 보류 중인 서버를 포함하고 나머지는 포함하지 않습니다. 나머지는 백그라운드에서 계속 연결됩니다. [도구 가용성](/docs/ko/mcp#tool-availability)은 Claude가 연결된 후 해당 도구에 어떻게 도달하는지 설명합니다.172`0`을 포함하여 어떤 값을 설정하든 다음 세 가지 대기는 적용됩니다:

156* **도구 검색 없음**: 대기는 모든 보류 중인 서버를 포함합니다. [도구 검색 구성](/docs/ko/agent-sdk/tool-search#configure-tool-search)은 도구 검색을 끄는 방법을 다룹니다. 예를 들어 `disallowedTools`를 통해 세션에서 `ToolSearch` 도구를 제외하면, 세션도 도구 검색 없이 실행됩니다.

157 173 

158`permissionPromptToolName`을 설정하면, 첫 번째 턴은 모든 경우에 해당 도구의 서버도 기다리며, `MCP_TIMEOUT`까지 대기합니다.174* **`permissionPromptToolName` 서버**: `MCP_TIMEOUT`까지.

175* **인프로세스 [SDK 서버](#sdk-mcp-servers)**: 연결 시도당 `MCP_TIMEOUT`까지.

176* **아직 연결 중인 [지명된 서버](#named-servers)**: 최소 2초까지이므로, `2000` 미만의 값은 해당 대기를 줄이지 않습니다.

159 177 

160첫 번째 턴 대기를 직접 설정하려면, [`env` 옵션](/docs/ko/agent-sdk/configuration#set-environment-variables)에 `CLAUDE_CODE_MCP_STARTUP_WAIT_MS`를 추가합니다(예: `CLAUDE_CODE_MCP_STARTUP_WAIT_MS: "5000"`). 그러면 첫 번째 턴은 도구 검색 가용 여부와 관계없이 모든 보류 중인 서버를 기다리며 최대 그 많은 밀리초까지 대기합니다. 이 기한은 또한 `options.mcpServers`의 stdio, HTTP 및 SSE 서버에 대한 `MCP_TIMEOUT` 첫 번째 턴 대기를 대체합니다. `CLAUDE_CODE_MCP_STARTUP_WAIT_MS`는 Claude Code v2.1.274 이상이 필요합니다.178다른 모든 서버에 대한 대기를 건너뛰려면 변수를 `0`으로 설정합니다. 대기가 끝날 때 여전히 보류 중인 서버는 백그라운드에서 계속 연결됩니다. `CLAUDE_CODE_MCP_STARTUP_WAIT_MS`는 Claude Code v2.1.274 이상이 필요합니다.

161 179 

162대기가 끝날 때 여전히 보류 중인 서버는 백그라운드에서 계속 연결됩니다. 변수를 `0`으로 설정하여 대기를 건너뜁니다. `permissionPromptToolName` 서버는 값에 관계없이 자체 `MCP_TIMEOUT` 대기를 유지합니다.180### 시작 시 서버 대기

163 181 

164init 메시지가 전송되기 전에 첫 번째 턴 대기보다 별도의 이전 단계에서 시작 자체를 차단하려면:182다음 두 가지 설정은 Claude Code가 init 메시지를 보내기 전에 시작 자체를 대기시킵니다:

165 183 

166* [`MCP_CONNECTION_NONBLOCKING`](/docs/ko/env-vars)을 `0`으로 설정하여 전체 연결 배치에서 차단합니다. Claude Code는 기본적으로 해당 대기를 5초로 제한합니다. [`MCP_CONNECT_TIMEOUT_MS`](/docs/ko/env-vars) 환경 변수를 밀리초 단위로 조정하여 제한을 조정합니다. 해당 기한에 보류 중인 서버는 백그라운드에서 계속 연결됩니다.184* **[`MCP_CONNECTION_NONBLOCKING`](/docs/ko/env-vars)을 `0`으로 설정**: 시작 시 전체 연결 배치를 기본적으로 최대 5초까지 기다립니다. 이 상한을 변경하려면 [`MCP_CONNECT_TIMEOUT_MS`](/docs/ko/env-vars)를 밀리초 단위로 설정합니다. 상한에 도달했을 때 여전히 보류 중인 서버는 백그라운드에서 계속 연결됩니다.

167* 서버의 구성에서 `alwaysLoad: true`를 설정하여 해당 도구를 첫 번째 턴에서 전체 스키마로 사용 가능하게 하고, [도구 검색 지연에서 제외](/docs/ko/mcp#exempt-a-server-from-deferral)합니다. Claude Code는 시작 시 해당 서버의 도구를 기다리며, 같은 기한으로 제한되고, 다른 서버는 백그라운드에서 계속 연결됩니다. 캐시된 도구 목록이 있는 원격 서버는 위의 표에 따라 연결 없이 도구를 제공합니다.185* **서버 구성에 `alwaysLoad: true` 설정**: 시작 시 같은 상한까지 해당 서버의 도구를 기다리므로, 첫 번째 턴에서 해당 도구를 전체 스키마로 사용할 수 있으며 [도구 검색 지연에서 제외](/docs/ko/mcp#exempt-a-server-from-deferral)됩니다. 캐시된 도구 목록이 있는 원격 서버는 연결하거나 시작을 지연시키지 않고 도구를 제공합니다.

168 186 

169`init` 서브타입이 있는 `system` 메시지는 내보낼 때 각 서버의 상태를 보고합니다. 해당 상태를 읽으려면 [오류 처리](#error-handling)를 참조하세요.187init 메시지는 Claude Code가 이를 보내는 시점의 각 서버 상태를 보고합니다.

170 188 

171## MCP 도구 허용하기189## MCP 도구 허용하기

172 190 

Details

55 55 

56TypeScript SDK가 평가 순서를 자동 승인하도록 예상하는 구성에서 `canUseTool` 콜백을 전달하면 쿼리가 구성될 때 SDK는 Node.js 프로세스 경고를 한 번 내보냅니다. 경고의 코드는 `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`입니다. 두 가지 구성이 이를 트리거합니다.56TypeScript SDK가 평가 순서를 자동 승인하도록 예상하는 구성에서 `canUseTool` 콜백을 전달하면 쿼리가 구성될 때 SDK는 Node.js 프로세스 경고를 한 번 내보냅니다. 경고의 코드는 `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`입니다. 두 가지 구성이 이를 트리거합니다.

57 57 

58* `permissionMode: 'bypassPermissions'`는 [모드가 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves)을 제외하고 권한 모드 단계에 도달하는 모든 호출을 자동 승인합니다.58* `permissionMode: 'bypassPermissions'`는 [어떤 모드도 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves)을 제외하고 권한 모드 단계에 도달하는 모든 호출을 자동 승인합니다.

59* `"Read"`와 같은 각 단순 `allowedTools` 항목은 [모드가 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves) 및 [네트워크 경로에서의 읽기](/docs/ko/permissions#network-paths)를 제외하고 콜백이 참조되기 전에 전체 도구를 자동 승인합니다.59* `"Read"`와 같은 각 단순 `allowedTools` 항목은 [어떤 모드도 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves) 및 [네트워크 경로에서의 읽기](/docs/ko/permissions#network-paths)를 제외하고 콜백이 참조되기 전에 전체 도구를 자동 승인합니다.

60 60 

61`Bash(ls *)`와 같은 지정자가 있는 항목과 `acceptEdits` 모드는 이를 트리거하지 않으며, 설정 파일에서 오는 허용 규칙은 확인에 표시되지 않습니다.61`Bash(ls *)`와 같은 지정자가 있는 항목과 `acceptEdits` 모드는 이를 트리거하지 않으며, 설정 파일에서 오는 허용 규칙은 확인에 표시되지 않습니다.

62 62 


69 69 

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

71 71 

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

73 73 

74| 옵션 | 효과 |74| 옵션 | 효과 |

75| :- | :- |75| :- | :- |


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

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

80 80 

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

82 82 

83`Read` 및 `Edit`에 대한 범위 지정 규칙은 경로 패턴을 사용합니다. `Edit(path)` 규칙은 `Write` 및 `NotebookEdit`을 포함하여 파일을 쓰는 모든 기본 제공 도구를 관리합니다. `Write(path)` 규칙은 파일 권한 검사에 의해 일치되지 않습니다.83`Read` 및 `Edit`에 대한 범위 지정 규칙은 경로 패턴을 사용합니다. `Edit(path)` 규칙은 `Write` 및 `NotebookEdit`을 포함하여 파일을 쓰는 모든 기본 제공 도구를 관리합니다. `Write(path)` 규칙은 파일 권한 검사에 의해 일치되지 않습니다.

84 84 


101};101};

102```102```

103 103 

104나열된 도구는 [모드가 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves)과 [네트워크 경로에서의 읽기](/docs/ko/permissions#network-paths)를 제외하고 승인됩니다. 프롬프트를 표시할 다른 모든 호출은 대신 거부되지만, 설치한 [mod](/docs/ko/plugins/mods/overview)는 여전히 [그러한 호출 중 일부](/docs/ko/permissions#precedence-among-rules-hooks-and-mods)를 승인할 수 있습니다.104나열된 도구는 [어떤 모드도 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves)과 [네트워크 경로에서의 읽기](/docs/ko/permissions#network-paths)를 제외하고 승인됩니다. 프롬프트를 표시할 다른 모든 호출은 대신 거부되지만, 설치한 [mod](/docs/ko/plugins/mods/overview)는 여전히 [그러한 호출 중 일부](/docs/ko/permissions#precedence-among-rules-hooks-and-mods)를 승인할 수 있습니다.

105 105 

106`default` 모드에서 승인이 필요 없는 호출은 나열 여부와 관계없이 실행됩니다. 예를 들어 [읽기 전용 Bash 명령](/docs/ko/permissions#read-only-commands), 실행 전에 묻지 않는 `Agent`와 같은 도구, 작업 디렉터리 내의 파일 읽기 등입니다. 도구를 요청에서 완전히 제거하려면 `disallowedTools`에 단순 이름을 추가합니다.106`default` 모드에서 승인이 필요 없는 호출은 나열 여부와 관계없이 실행됩니다. 예를 들어 [읽기 전용 Bash 명령](/docs/ko/permissions#read-only-commands), 실행 전에 묻지 않는 `Agent`와 같은 도구, 작업 디렉터리 내의 파일 읽기 등입니다. 도구를 요청에서 완전히 제거하려면 `disallowedTools`에 단순 이름을 추가합니다.

107 107 

agent-sdk/python.md +113 −99

Details

872| 속성 | 타입 | 기본값 | 설명 |872| 속성 | 타입 | 기본값 | 설명 |

873| :- | :- | :- | :- |873| :- | :- | :- | :- |

874| `tools` | `list[str] \| ToolsPreset \| None` | `None` | 도구 구성. Claude Code의 기본 도구를 위해 `{"type": "preset", "preset": "claude_code"}` 사용 |874| `tools` | `list[str] \| ToolsPreset \| None` | `None` | 도구 구성. Claude Code의 기본 도구를 위해 `{"type": "preset", "preset": "claude_code"}` 사용 |

875| `allowed_tools` | `list[str]` | `[]` | 프롬프트 없이 자동 승인할 도구. 단, [네트워크 경로](/docs/ko/permissions#network-paths)에서의 읽기는 제외됩니다. 이것은 Claude를 이 도구로만 제한하지 않습니다. [작업 추적 도구](/docs/ko/agent-sdk/todo-tracking#model-availability) 중 하나를 여기에 명명하면 Claude Code도 세션을 옵트인합니다. 나열되지 않은 도구는 `permission_mode` 및 `can_use_tool`로 넘어갑니다. `disallowed_tools`를 사용하여 도구를 차단합니다. [권한](/docs/ko/agent-sdk/permissions#allow-and-deny-rules) 참조 |875| `allowed_tools` | `list[str]` | `[]` | 프롬프트 없이 자동 승인할 도구. 단, [네트워크 경로](/docs/ko/permissions#network-paths)에서의 읽기는 제외됩니다. 이것은 Claude를 이 도구로만 제한하지 않습니다. [작업 추적 도구](/docs/ko/agent-sdk/todo-tracking#model-availability) 중 하나를 여기에 지정하면 Claude Code는 해당 세션에서 작업 추적 도구도 활성화합니다. 나열되지 않은 도구는 `permission_mode` 및 `can_use_tool`로 넘어갑니다. `disallowed_tools`를 사용하여 도구를 차단합니다. [권한](/docs/ko/agent-sdk/permissions#allow-and-deny-rules) 참조 |

876| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptCustom \| SystemPromptFile \| None` | `None` | 시스템 프롬프트 구성. 사용자 정의 프롬프트의 경우 문자열을 전달하거나, Claude Code의 시스템 프롬프트를 위해 선택적 `"append"`와 함께 `{"type": "preset", "preset": "claude_code"}`를 사용하거나, 사용자 정의 프롬프트를 위해 `{"type": "custom", "prompt": "..."}` 형식으로 `"snapshot"`도 설정할 수 있거나, 디스크에서 큰 프롬프트를 로드하기 위해 `{"type": "file", "path": "..."}` 형식을 사용합니다. [`SystemPromptPreset`](#systempromptpreset), [`SystemPromptCustom`](#systempromptcustom) 및 [`SystemPromptFile`](#systempromptfile) 참조 |876| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptCustom \| SystemPromptFile \| None` | `None` | 시스템 프롬프트 구성. 사용자 정의 프롬프트의 경우 문자열을 전달하거나, Claude Code의 시스템 프롬프트를 위해 선택적 `"append"`와 함께 `{"type": "preset", "preset": "claude_code"}`를 사용하거나, 사용자 정의 프롬프트를 위해 `{"type": "custom", "prompt": "..."}` 형식으로 `"snapshot"`도 설정할 수 있거나, 디스크에서 큰 프롬프트를 로드하기 위해 `{"type": "file", "path": "..."}` 형식을 사용합니다. [`SystemPromptPreset`](#systempromptpreset), [`SystemPromptCustom`](#systempromptcustom) 및 [`SystemPromptFile`](#systempromptfile) 참조 |

877| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | MCP 서버 구성 또는 설정 파일 경로 |877| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | MCP 서버 구성 또는 설정 파일 경로 |

878| `strict_mcp_config` | `bool` | `False` | `True`일 때, `mcp_servers`에 전달된 서버만 사용하고 프로젝트 `.mcp.json`, 사용자 설정, 플러그인 제공 MCP 서버 및 [claude.ai 커넥터](/docs/ko/mcp#use-mcp-servers-from-claude-ai)를 무시합니다. CLI `--strict-mcp-config` 플래그에 매핑됩니다 |878| `strict_mcp_config` | `bool` | `False` | `True`일 때, `mcp_servers`에 전달된 서버만 사용하고 프로젝트 `.mcp.json`, 사용자 설정, 플러그인 제공 MCP 서버 및 [claude.ai 커넥터](/docs/ko/mcp#use-mcp-servers-from-claude-ai)를 무시합니다. CLI `--strict-mcp-config` 플래그에 매핑됩니다 |


1524 1524 

1525### `ContextUsageResponse`1525### `ContextUsageResponse`

1526 1526 

1527[`ClaudeSDKClient.get_context_usage()`](#methods)의 응답입니다. 이것은 Claude Code가 대화형 세션에서 `/context` 명령을 위해 렌더링하는 것과 동일한 페이로드이므로, 토큰 수 외에도 Claude Code가 `/context` 사용량 그리드를 그리는 데 사용하는 `color` 및 `gridRows`와 같은 표시 필드를 포함합니다.1527[`ClaudeSDKClient.get_context_usage()`](#methods)의 응답입니다. 응답에는 Claude Code가 대화형 세션에서 `/context` 명령을 위해 렌더링하는 페이로드가 포함됩니다. 이 페이로드는 토큰 수와 함께 Claude Code가 `/context` 사용량 그리드를 그리는 데 사용하는 `color` 및 `gridRows`와 같은 표시 필드를 포함합니다.

1528 1528 

1529Claude Code는 [토큰 계산](https://platform.claude.com/docs/en/build-with-claude/token-counting) API에 여러 요청을 보내 이 페이로드를 빌드합니다. 이 요청은 메시지 스트림에 나타나지 않으므로, 스트림을 읽는 비용 추적은 이를 보지 못합니다. Anthropic API에서 토큰 계산은 청구되지 않습니다.1529Claude Code는 [토큰 계산](https://platform.claude.com/docs/en/build-with-claude/token-counting) API에 여러 요청을 보내 이 페이로드를 빌드합니다. 이 요청은 메시지 스트림에 나타나지 않으므로, 스트림을 읽는 비용 추적은 이를 보지 못합니다. Anthropic API에서 토큰 계산은 청구되지 않습니다.

1530 1530 


1579 1579 

1580플러그인 생성 및 사용에 대한 완전한 정보는 [플러그인](/docs/ko/agent-sdk/plugins)을 참조하십시오.1580플러그인 생성 및 사용에 대한 완전한 정보는 [플러그인](/docs/ko/agent-sdk/plugins)을 참조하십시오.

1581 1581 

1582## 메시지 타입1582## 메시지 유형

1583 1583 

1584### `Message`1584### `Message`

1585 1585 

1586모든 가능한 메시지의 합집합 타입입니다.1586가능한 모든 메시지의 유니온 타입입니다.

1587 1587 

1588```python theme={null}1588```python theme={null}

1589Message = (1589Message = (


1613 1613 

1614| 필드 | 타입 | 설명 |1614| 필드 | 타입 | 설명 |

1615| :- | :- | :- |1615| :- | :- | :- |

1616| `content` | `str \| list[ContentBlock]` | 텍스트 또는 콘텐츠 블록으로서의 메시지 콘텐츠 |1616| `content` | `str \| list[ContentBlock]` | 텍스트 또는 콘텐츠 블록 형태의 메시지 콘텐츠 |

1617| `uuid` | `str \| None` | 고유 메시지 식별자 |1617| `uuid` | `str \| None` | 고유 메시지 식별자 |

1618| `parent_tool_use_id` | `str \| None` | 이 메시지가 도구 결과 응답인 경우 도구 사용 ID |1618| `parent_tool_use_id` | `str \| None` | 이 메시지가 도구 결과 응답인 경우의 도구 사용 ID |

1619| `tool_use_result` | `dict[str, Any] \| None` | 해당하는 경우 도구 결과 데이터 |1619| `tool_use_result` | `dict[str, Any] \| None` | 해당하는 경우 도구 결과 데이터 |

1620| `origin` | `MessageOrigin \| None` | 작업 알림 및 피어 메시지와 같은 주입된 턴에서 채워지는 이 메시지의 출처입니다. CLI가 이를 속성화하지 않았을 때 `None`입니다. Python Agent SDK 0.2.137 이상이 필요합니다 |1620| `origin` | `MessageOrigin \| None` | 이 메시지의 출처로, 작업 알림이나 피어 메시지 같은 주입된 턴에서 채워집니다. CLI가 출처를 지정하지 않은 경우 `None`입니다. Python Agent SDK 0.2.137 이상이 필요합니다 |

1621 1621 

1622SDK는 `tool_use_result`를 CLI에서 수정되지 않은 상태로 전달합니다. 결과에 `resource_link` 블록이 포함된 외부 MCP 서버의 도구의 경우, dict에는 TypeScript [`SDKMcpResourceLink`](/docs/ko/agent-sdk/typescript#sdkmcpresourcelink) 타입의 키를 가진 dict 목록을 보유하는 `resourceLinks` 키가 있습니다. Claude는 각 링크를 도구 결과의 텍스트 줄로 받습니다. 서버가 반환한 파일을 렌더링하려면 해당 텍스트를 구문 분석하는 대신 `resourceLinks`를 읽으십시오. `resourceLinks` 키는 Python Agent SDK 0.2.150 이상 및 Claude Code v2.1.257 이상이 필요합니다. 해당 SDK 버전과 함께 번들된 CLI는 Claude Code 요구 사항을 충족합니다.1622SDK는 `tool_use_result`를 CLI에서 수정 없이 그대로 전달합니다. 외부 MCP 서버의 도구 결과에 `resource_link` 블록이 포함된 경우, 이 dict에는 TypeScript [`SDKMcpResourceLink`](/docs/ko/agent-sdk/typescript#sdkmcpresourcelink) 타입의 키를 가진 dict 목록을 담은 `resourceLinks` 키가 있습니다. Claude는 각 링크를 도구 결과의 텍스트 한 줄로 받습니다. 서버가 반환한 파일을 렌더링하려면 해당 텍스트를 파싱하는 대신 `resourceLinks`를 읽으십시오. `resourceLinks` 키에는 Python Agent SDK 0.2.150 이상과 Claude Code v2.1.257 이상이 필요하며, 해당 SDK 버전에 번들된 CLI는 Claude Code 요구 사항을 충족합니다.

1623 1623 

1624CLI는 결과에 링크가 없을 때와 서브에이전트의 결과에서 키를 생략합니다. CLI는 결과당 최대 50개의 링크를 유지하고 목록이 직렬화된 JSON의 64 KiB에 도달하면 링크 추가를 중지합니다. [`tool()`](#tool)로 정의한 도구는 SDK가 CLI가 결과를 보기 전에 `resource_link` 블록을 텍스트로 평탄화하기 때문에 키를 생성하지 않습니다.1624결과에 링크가 없거나 서브에이전트의 결과인 경우 CLI는 이 키를 생략합니다. CLI는 결과당 최대 50개의 링크를 유지하며, 목록이 직렬화된 JSON 기준 64 KiB에 도달하면 링크 추가를 중단합니다. [`tool()`](#tool)로 프로세스 내에서 정의한 도구는 이 키를 생성하지 않습니다. SDK가 CLI에 결과가 전달되기 전에 해당 도구의 `resource_link` 블록을 텍스트로 평탄화하기 때문입니다.

1625 1625 

1626### `AssistantMessage`1626### `AssistantMessage`

1627 1627 

1628콘텐츠 블록이 있는 어시스턴트 응답 메시지입니다.1628콘텐츠 블록을 포함하는 어시스턴트 응답 메시지입니다.

1629 1629 

1630```python theme={null}1630```python theme={null}

1631@dataclass1631@dataclass


1643 1643 

1644| 필드 | 타입 | 설명 |1644| 필드 | 타입 | 설명 |

1645| :- | :- | :- |1645| :- | :- | :- |

1646| `content` | `list[ContentBlock]` | 응답의 콘텐츠 블록 목록 |1646| `content` | `list[ContentBlock]` | 응답에 포함된 콘텐츠 블록 목록 |

1647| `model` | `str` | 응답을 생성한 모델 |1647| `model` | `str` | 응답을 생성한 모델 |

1648| `parent_tool_use_id` | `str \| None` | 이것이 중첩된 응답인 경우 도구 사용 ID |1648| `parent_tool_use_id` | `str \| None` | 중첩된 응답인 경우의 도구 사용 ID |

1649| `error` | [`AssistantMessageError`](#assistantmessageerror) ` \| None` | 응답이 오류를 만난 경우 오류 타입 |1649| `error` | [`AssistantMessageError`](#assistantmessageerror) ` \| None` | 응답에서 오류가 발생한 경우의 오류 유형 |

1650| `usage` | `dict[str, Any] \| None` | 메시지별 토큰 사용량 ([`ResultMessage.usage`](#resultmessage)와 동일한 키) |1650| `usage` | `dict[str, Any] \| None` | 메시지별 토큰 사용량([`ResultMessage.usage`](#resultmessage)와 동일한 키) |

1651| `message_id` | `str \| None` | API 메시지 ID. 한 턴의 여러 메시지는 동일한 ID를 공유합니다 |1651| `message_id` | `str \| None` | API 메시지 ID. 하나의 턴에서 나온 여러 메시지는 동일한 ID를 공유합니다 |

1652| `stop_reason` | `str \| None` | API의 중지 이유 (예: `end_turn`, `tool_use`) |1652| `stop_reason` | `str \| None` | API의 중지 이유(예: `end_turn`, `tool_use`) |

1653| `session_id` | `str \| None` | 이 메시지가 속한 세션의 ID |1653| `session_id` | `str \| None` | 이 메시지가 속한 세션의 ID |

1654| `uuid` | `str \| None` | 세션 기록 내의 고유 메시지 식별자 |1654| `uuid` | `str \| None` | 세션 트랜스크립트 내의 고유 메시지 식별자 |

1655 1655 

1656### `AssistantMessageError`1656### `AssistantMessageError`

1657 1657 

1658어시스턴트 메시지의 가능한 오류 타입입니다.1658어시스턴트 메시지에서 발생할 수 있는 오류 유형입니다.

1659 1659 

1660```python theme={null}1660```python theme={null}

1661AssistantMessageError = Literal[1661AssistantMessageError = Literal[


1668]1668]

1669```1669```

1670 1670 

1671기본 CLI 프로세스는 이 Literal이 나열하지 않는 오류 타입을 발생시킬 수 있습니다 (예: `max_output_tokens`). SDK는 값을 수정되지 않은 상태로 전달하므로 이 목록 외의 문자열을 `unknown`처럼 처리하십시오. TypeScript [`SDKAssistantMessageError`](/docs/ko/agent-sdk/typescript#sdkassistantmessage) 타입은 CLI가 발생시킬 수 있는 전체 값 집합을 나열합니다.1671기반 CLI 프로세스는 `max_output_tokens`처럼 이 Literal에 나열되지 않은 오류 유형을 내보낼 수 있습니다. SDK는 값을 수정 없이 그대로 전달하므로, 이 목록에 없는 문자열은 `unknown`과 동일하게 처리하십시오. TypeScript [`SDKAssistantMessageError`](/docs/ko/agent-sdk/typescript#sdkassistantmessage) 타입에는 CLI가 내보낼 수 있는 전체 값 목록이 나와 있습니다.

1672 1672 

1673### `SystemMessage`1673### `SystemMessage`

1674 1674 

1675메타데이터가 있는 시스템 메시지입니다.1675메타데이터가 포함된 시스템 메시지입니다.

1676 1676 

1677```python theme={null}1677```python theme={null}

1678@dataclass1678@dataclass


1681 data: dict[str, Any]1681 data: dict[str, Any]

1682```1682```

1683 1683 

1684자체 데이터클래스가 없는 서브타입은 `SystemMessage`로 도착합니다. 턴 사이의 세션 상태를 추적하려면 [`CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS=1`](/docs/ko/env-vars#variables)을 설정하고 `subtype`이 `session_state_changed`인 각 메시지에서 `message.data["state"]`를 읽으십시오. [`SDKSessionStateChangedMessage`](/docs/ko/agent-sdk/typescript#sdksessionstatechangedmessage)에 전달될 수 있는 상태가 나열되어 있습니다. 이를 읽으려면 `receive_messages()`로 반복하십시오. `receive_response()`는 `ResultMessage`에서 중지되며, `session_state_changed` 메시지는 해당 결과 뒤에 올 수 있습니다.1684자체 dataclass가 없는 하위 유형은 `SystemMessage`로 도착합니다. 턴 사이의 세션 상태를 추적하려면 [`CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS=1`](/docs/ko/env-vars#variables)을 설정하고 `subtype`이 `session_state_changed`인 각 메시지에서 `message.data["state"]`를 읽으십시오. [`SDKSessionStateChangedMessage`](/docs/ko/agent-sdk/typescript#sdksessionstatechangedmessage)에는 이 메시지가 담을 수 있는 상태가 나와 있습니다. 이를 읽으려면 `receive_messages()`로 순회하십시오. `receive_response()`는 `ResultMessage`에서 멈추며, `session_state_changed` 메시지는 해당 결과 뒤에 올 수 있습니다.

1685 1685 

1686### `ResultMessage`1686### `ResultMessage`

1687 1687 

1688비용 및 사용량 정보가 있는 최종 결과 메시지입니다.1688비용 및 사용량 정보가 포함된 최종 결과 메시지입니다.

1689 1689 

1690```python theme={null}1690```python theme={null}

1691@dataclass1691@dataclass


1711 origin: MessageOrigin | None = None1711 origin: MessageOrigin | None = None

1712```1712```

1713 1713 

1714`subtype` 필드는 다른 필드가 채워지는지 결정합니다. 이는 `"success"`, `"error_during_execution"`, `"error_max_turns"`, `"error_max_budget_usd"` 또는 `"error_max_structured_output_retries"` 중 하나입니다. Python 데이터클래스는 모든 변형을 하나의 형태로 평탄화하므로 반환된 서브타입에 적용되지 않는 필드는 `None`입니다.1714`subtype` 필드에 따라 어떤 다른 필드가 채워질지 결정됩니다. 값은 `"success"`, `"error_during_execution"`, `"error_max_turns"`, `"error_max_budget_usd"`, `"error_max_structured_output_retries"` 중 하나입니다. Python dataclass는 모든 변형을 하나의 형태로 평탄화하므로, 반환된 하위 유형에 해당하지 않는 필드는 `None`입니다.

1715 1715 

1716대화가 오류로 끝날 때 여러 필드가 진단 세부 정보를 전달합니다:1716여러 필드가 대화 종료 방식에 대한 진단 정보를 담고 있습니다.

1717 1717 

1718* `is_error`: 대화가 오류 상태로 끝났을 때 `True`입니다. 항상 `error_*` 서브타입에서 `True`입니다. `subtype="success"`에서는 최종 모델 요청이 실패했을 때 `True`입니다. 즉, 에이전트 루프가 완료되었지만 마지막 API 호출이 오류를 반환했습니다.1718* `is_error`: 대화가 오류 상태로 종료된 경우 `True`입니다. `error_*` 하위 유형에서는 항상 `True`입니다. `subtype="success"`에서는 세 가지 경우에 `True`입니다. `stop_reason`을 확인하여 구분하십시오.

1719* `api_error_status`: 종료 API 오류의 HTTP 상태 코드입니다. 턴이 오류 없이 끝났을 때 `None`입니다. `subtype="success"`에서만 채워집니다.1719 * `"refusal"`: 모델이 응답을 거부했습니다. 거부 텍스트는 `result`에서 읽거나, `result`가 비어 있으면 직전 `AssistantMessage`에서 읽으십시오.

1720* `result`: `subtype="success"`에서 최종 어시스턴트 메시지의 텍스트이거나, `error_*` 서브타입에서 `None`입니다. `subtype="success"`이고 `is_error=True`일 때, 이는 사용 가능한 경우 API 오류 문자열을 보유하지만 비어 있을 수 있으므로 `api_error_status`와 이전 `AssistantMessage` 콘텐츠를 확인하십시오.1720 * `"tool_deferred_unavailable"`: 세션을 재개했을 때 [지연된 도구](/docs/ko/hooks#defer-a-tool-call-for-later)를 더 이상 사용할 수 없었습니다. 예를 들어 해당 MCP 서버가 연결되지 않은 경우입니다. 아래 두 경우에서, 재개 후 보내는 프롬프트는 재개와 함께 전달한 프롬프트와 동일하게 취급됩니다.

1721* `errors`: 최대 턴 메시지와 같은 루프 수준 오류 문자열입니다. `error_*` 서브타입에서만 채워집니다.1721 * 프롬프트 없음: 호출은 여전히 보류 중입니다. 도구를 사용할 수 있게 한 뒤 프롬프트 없이 다시 재개하면 해당 호출이 먼저 실행됩니다.

1722* `terminal_reason`: 쿼리 루프가 끝난 이유입니다 (예: `"completed"`, `"max_turns"`, `"api_error"`, `"aborted_streaming"` 또는 `"aborted_tools"`). `"aborted_streaming"` 또는 `"aborted_tools"` 값은 턴이 완료되기 전에 중단되었음을 의미합니다. 일반적인 원인은 [`interrupt()`](#claudesdkclient)와 `interrupt=True`를 사용하여 [`PermissionResultDeny`](#permissionresultdeny)를 반환하는 권한 콜백입니다. 이 필드가 도입되기 이전의 CLI 버전, 쿼리 루프를 우회하는 `/voice` 또는 `/usage`와 같은 로컬 명령의 결과, 또는 세션이 치명적으로 실패할 때 발생하는 합성 오류 결과에서는 `None`입니다. TypeScript SDK의 [`SDKResultMessage.terminal_reason`](/docs/ko/agent-sdk/typescript#sdkresultmessage)을 미러링하며, 이는 전체 값 집합을 나열합니다.1722 * 프롬프트 있음: Claude Code는 도구 결과 없이 프롬프트에 답하며, 지연된 호출은 사라집니다. 여전히 도구 호출이 필요하다면 새 프롬프트를 보내십시오.

1723* `origin`: 이 턴을 트리거한 사용자 메시지의 출처입니다. [스트리밍 입력 모드](/docs/ko/agent-sdk/streaming-vs-single-mode)에서 이를 확인하여 `origin`이 `None` 또는 `{"kind": "human"}`인 자신의 프롬프트 결과를 배경 작업 알림과 같은 주입된 턴의 결과와 구별하십시오. Python Agent SDK 0.2.137 이상이 필요합니다.1723 * 그 외의 값: 모델 응답 대신 Claude Code가 보고한 오류(예: API 오류)로 턴이 종료되었습니다. 원인은 `terminal_reason`에서, 메시지는 `result`에서, API가 HTTP 상태를 반환한 경우 해당 상태는 `api_error_status`에서 읽으십시오.

1724* `api_error_status`: 종료를 일으킨 API 오류의 HTTP 상태 코드입니다. 그러한 오류 없이 턴이 종료된 경우 `None`입니다. `subtype="success"`에서만 채워집니다.

1725* `result`: `subtype="success"`에서는 최종 어시스턴트 메시지의 텍스트이며, `error_*` 하위 유형에서는 `None`입니다. `subtype="success"`이고 `is_error=True`인 경우, 사용 가능하면 API 오류 문자열을 담지만 비어 있을 수도 있으므로 자세한 내용은 `api_error_status`와 직전 `AssistantMessage` 콘텐츠를 확인하십시오.

1726* `errors`: 최대 턴 메시지와 같은 루프 수준의 오류 문자열입니다. `error_*` 하위 유형에서만 채워집니다.

1727* `terminal_reason`: 쿼리 루프가 종료된 이유로, `"completed"`, `"max_turns"`, `"api_error"`, `"aborted_streaming"`, `"aborted_tools"` 등이 있습니다. `"aborted_streaming"` 또는 `"aborted_tools"` 값은 턴이 완료되기 전에 중단되었음을 의미합니다. 일반적인 원인은 [`interrupt()`](#claudesdkclient)와 `interrupt=True`로 [`PermissionResultDeny`](#permissionresultdeny)를 반환하는 권한 콜백입니다. 이 필드가 도입되기 전의 CLI 버전, 쿼리 루프를 거치지 않는 `/voice`나 `/usage` 같은 로컬 명령의 결과, 또는 세션이 치명적으로 실패했을 때 생성되는 합성 오류 결과에서는 `None`입니다. TypeScript SDK의 [`SDKResultMessage.terminal_reason`](/docs/ko/agent-sdk/typescript#sdkresultmessage)과 대응되며, 해당 문서에 전체 값 목록이 나와 있습니다.

1728* `origin`: 이 턴을 트리거한 사용자 메시지의 출처입니다. [스트리밍 입력 모드](/docs/ko/agent-sdk/streaming-vs-single-mode)에서 이 값을 확인하면 `origin`이 `None` 또는 `{"kind": "human"}`인 직접 보낸 프롬프트의 결과와, 백그라운드 작업 알림 같은 주입된 턴의 결과를 구분할 수 있습니다. Python Agent SDK 0.2.137 이상이 필요합니다.

1724 1729 

1725여러 백그라운드 작업이 비슷한 시점에 완료되면 Claude Code는 각 알림에 하나씩 턴을 사용하는 대신 하나의 턴에서 모든 알림에 응답할 수 있습니다. 이 경우에도 알림마다 하나의 `ResultMessage`를 순서대로 수신하며, 각각 `kind`가 `"task-notification"`인 `origin`을 가집니다. 마지막 것을 제외한 모든 결과는 `num_turns`가 `0`으로 설정되고 `result`가 비어 있으며, 마지막 결과가 모든 알림에 응답하는 턴을 전달합니다.1730여러 백그라운드 작업이 거의 동시에 완료되면, Claude Code는 각각 하나의 턴으로 답하는 대신 하나의 턴에서 여러 알림에 답할 수 있습니다. 이 경우에도 알림마다 하나의 `ResultMessage`를 순서대로 받으며, 각각의 `origin`은 `kind`가 `"task-notification"`입니다. 마지막을 제외한 모든 메시지는 `num_turns`가 `0`으로 설정되고 `result`가 비어 있으며, 마지막 메시지가 모든 알림에 답하는 턴을 담습니다.

1726 1731 

1727`usage` dict는 주 에이전트 루프만 포함하고 서브에이전트 및 기타 중첩되거나 보조적인 모델 호출을 제외합니다. [스트리밍 입력 모드](/docs/ko/agent-sdk/streaming-vs-single-mode)에서 값은 턴별입니다. 토큰 및 비용 회계의 경우 `model_usage`를 선호하십시오. `usage` dict는 존재할 때 다음 키를 포함합니다:1732`usage` dict는 메인 에이전트 루프만 포함하며, 서브에이전트 및 기타 중첩되거나 보조적인 모델 호출은 제외합니다. [스트리밍 입력 모드](/docs/ko/agent-sdk/streaming-vs-single-mode)에서는 값이 턴 단위입니다. 토큰 및 비용 집계에는 `model_usage`를 사용하는 것이 좋습니다. `usage` dict에는 다음 키가 있는 경우 포함됩니다.

1728 1733 

1729| 키 | 타입 | 설명 |1734| 키 | 타입 | 설명 |

1730| - | - | - |1735| - | - | - |

1731| `input_tokens` | `int` | 최상위 에이전트 루프에서 소비된 입력 토큰입니다. [서브에이전트 토큰은 포함되지 않습니다](/docs/ko/agent-sdk/cost-tracking#get-the-total-cost-of-a-query); 전체 트리 회계의 경우 `model_usage`를 사용하십시오. |1736| `input_tokens` | `int` | 최상위 에이전트 루프가 소비한 입력 토큰입니다. [서브에이전트 토큰은 포함되지 않습니다](/docs/ko/agent-sdk/cost-tracking#get-the-total-cost-of-a-query). 전체 트리 집계에는 `model_usage`를 사용하십시오. |

1732| `output_tokens` | `int` | 최상위 에이전트 루프에서 생성된 출력 토큰입니다. 서브에이전트 토큰은 포함되지 않습니다. |1737| `output_tokens` | `int` | 최상위 에이전트 루프가 생성한 출력 토큰입니다. 서브에이전트 토큰은 포함되지 않습니다. |

1733| `cache_creation_input_tokens` | `int` | 새 캐시 항목을 생성하는 데 사용된 토큰입니다. |1738| `cache_creation_input_tokens` | `int` | 새 캐시 항목을 생성하는 데 사용된 토큰입니다. |

1734| `cache_read_input_tokens` | `int` | 기존 캐시 항목에서 읽은 토큰입니다. |1739| `cache_read_input_tokens` | `int` | 기존 캐시 항목에서 읽은 토큰입니다. |

1735 1740 

1736`model_usage` dict는 모델 이름을 모델별 사용량에 매핑합니다. 이는 쿼리 파이프라인을 통해 수행된 모든 모델 호출을 포함합니다: 주 루프, 서브에이전트 및 압축 및 Workflow 에이전트와 같은 내부 호출입니다. 권한 분류기 및 토큰 계산 요청과 같은 해당 파이프라인 외부의 도우미 호출은 `model_usage`에서 제외됩니다. `model_usage`를 추정치로 취급하며, 청구 명세서가 아닙니다.1741`model_usage` dict는 모델 이름을 모델별 사용량에 매핑합니다. 메인 루프, 서브에이전트, 압축 및 Workflow 에이전트 같은 내부 호출 등 쿼리 파이프라인을 통해 이루어진 모든 모델 호출을 포함합니다. 권한 분류기 및 토큰 계산 요청처럼 해당 파이프라인 밖의 보조 호출은 `model_usage`에서 제외됩니다. `model_usage`는 청구 내역이 아닌 추정치로 취급하십시오.

1737 1742 

1738[스트리밍 입력 모드](/docs/ko/agent-sdk/streaming-vs-single-mode)에서 `model_usage`와 `total_cost_usd`는 턴 전체에 누적되므로 결과 전체를 합산하는 대신 최신 결과를 읽으십시오. 세션을 재설정하면 [세션의 이전 호출에서 복원된 합계](/docs/ko/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)도 계산됩니다. 재설정이 실행 합계에 미치는 영향은 [스트리밍 입력 모드에서 비용 추적](/docs/ko/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode)을 참조하고 0으로 설정된 결과는 [세션 충돌 후 합계 복구](/docs/ko/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)를 참조하십시오.1743[스트리밍 입력 모드](/docs/ko/agent-sdk/streaming-vs-single-mode)에서 `model_usage`와 `total_cost_usd`는 턴 전체에 걸쳐 누적되므로, 결과들을 합산하지 말고 최신 결과를 읽으십시오. 세션을 재개하는 호출은 [세션의 이전 호출에서 복원된 합계](/docs/ko/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)도 함께 집계합니다. 초기화에 대해서는 [스트리밍 입력 모드에서 비용 추적](/docs/ko/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode)을, 0으로 표시된 결과에 대해서는 [세션 충돌 후 합계 복구](/docs/ko/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)를 참조하십시오.

1739 1744 

1740`model_usage`의 각 값은 `from claude_agent_sdk.types import ModelUsage`를 통해 가져온 `ModelUsage` TypedDict입니다. 해당 키는 기본 CLI 프로세스에서 수정되지 않은 상태로 전달되는 값과 일치하는 TypeScript [`ModelUsage`](/docs/ko/agent-sdk/typescript#modelusage) 타입과 일치하므로 camelCase를 사용합니다:1745`model_usage`의 각 값은 `from claude_agent_sdk.types import ModelUsage`로 가져오는 `ModelUsage` TypedDict입니다. SDK가 기반 CLI 프로세스의 값을 수정 없이 그대로 전달하기 때문에 키는 camelCase를 사용하며, TypeScript [`ModelUsage`](/docs/ko/agent-sdk/typescript#modelusage) 타입과 일치합니다.

1741 1746 

1742| 키 | 타입 | 설명 |1747| 키 | 타입 | 설명 |

1743| - | - | - |1748| - | - | - |


1745| `outputTokens` | `int` | 이 모델의 출력 토큰입니다. |1750| `outputTokens` | `int` | 이 모델의 출력 토큰입니다. |

1746| `cacheReadInputTokens` | `int` | 이 모델의 캐시 읽기 토큰입니다. |1751| `cacheReadInputTokens` | `int` | 이 모델의 캐시 읽기 토큰입니다. |

1747| `cacheCreationInputTokens` | `int` | 이 모델의 캐시 생성 토큰입니다. |1752| `cacheCreationInputTokens` | `int` | 이 모델의 캐시 생성 토큰입니다. |

1748| `webSearchRequests` | `int` | 이 모델이 수행한 웹 검색 요청입니다. |1753| `webSearchRequests` | `int` | 이 모델이 수행한 웹 검색 요청 수입니다. |

1749| `thinkingTokens` | `int` | 이 모델이 생성한 사고 토큰이며, 이미 `outputTokens`에 계산되어 있습니다. 턴이 이를 기록하는 Claude Code 버전에서 실행될 때까지 없으며, TypedDict에 선언되지 않으므로 `.get()`으로 읽으십시오. Python Agent SDK 0.2.150 이상이 필요하며, 번들된 CLI가 이를 기록합니다. |1754| `thinkingTokens` | `int` | 이 모델이 생성한 사고 토큰으로, 이미 `outputTokens`에 포함되어 있습니다. 이를 기록하는 Claude Code 버전에서 턴이 실행되기 전까지는 존재하지 않으며 TypedDict에 선언되어 있지 않으므로 `.get()`으로 읽으십시오. 이를 기록하는 CLI가 번들된 Python Agent SDK 0.2.150 이상이 필요합니다. |

1750| `costUSD` | `float` | 이 모델의 추정 비용 (USD), 클라이언트 측 계산입니다. 청구 주의 사항은 [비용 및 사용량 추적](/docs/ko/agent-sdk/cost-tracking) 참조하십시오. |1755| `costUSD` | `float` | 클라이언트 측에서 계산한 이 모델의 예상 비용(USD)입니다. 청구 관련 주의 사항은 [비용 및 사용량 추적](/docs/ko/agent-sdk/cost-tracking)을 참조하십시오. |

1751| `contextWindow` | `int` | 이 모델의 컨텍스트 윈도우 크기입니다. |1756| `contextWindow` | `int` | 이 모델의 컨텍스트 윈도우 크기입니다. |

1752| `maxOutputTokens` | `int` | 이 모델의 최대 출력 토큰 제한입니다. |1757| `maxOutputTokens` | `int` | 이 모델의 최대 출력 토큰 한도입니다. |

1753| `canonicalModel` | `str` | 가격 조회에 사용된 정규 모델 ID입니다. 항목의 키로 쓰이는 원본 모델 문자열(예: 공급자별 ID 또는 별칭)과 다를 수 있습니다. 항상 존재하지는 않습니다. |1758| `canonicalModel` | `str` | 가격 조회에 사용된 정식 모델 ID입니다. 제공업체별 ID나 별칭처럼 항목의 키로 사용된 원시 모델 문자열과 다를 수 있습니다. 항상 존재하지는 않습니다. |

1754| `provider` | `str` | 이 모델을 제공한 API 공급자입니다 (예: `firstParty`, `bedrock`, `vertex`, `foundry`, `anthropicAws`, `mantle` 또는 `gateway`). 항상 존재하지는 않습니다. |1759| `provider` | `str` | 이 모델을 제공한 API 제공업체로, `firstParty`, `bedrock`, `vertex`, `foundry`, `anthropicAws`, `mantle`, `gateway` 등이 있습니다. 항상 존재하지는 않습니다. |

1755| `costBasis` | `str` | 이 모델의 최신 요청 가격을 책정한 가격표입니다: 정가의 경우 `list`, [`modelPricing`](/docs/ko/settings-reference#modelpricing) 테이블의 경우 `managed`, 둘 다 모델 ID와 일치하지 않는 경우 `unknown`입니다. 항상 존재하지는 않으며, TypedDict에 선언되지 않으므로 `.get()`으로 읽으십시오. Claude Code v2.1.246 이상이 필요합니다. |1760| `costBasis` | `str` | 이 모델의 최신 요청 가격을 책정한 가격표입니다. 정가는 `list`, [`modelPricing`](/docs/ko/settings-reference#modelpricing) 테이블은 `managed`, 둘 다 모델 ID와 일치하지 않으면 `unknown`입니다. 항상 존재하지는 않으며 TypedDict에 선언되어 있지 않으므로 `.get()`으로 읽으십시오. Claude Code v2.1.246 이상이 필요합니다. |

1756 1761 

1757### `StreamEvent`1762### `StreamEvent`

1758 1763 

1759스트리밍 중 부분 메시지 업데이트를 위한 스트림 이벤트입니다. `ClaudeAgentOptions`에서 `include_partial_messages=True`일 때만 수신됩니다. `from claude_agent_sdk.types import StreamEvent`를 통해 가져옵니다.1764스트리밍 중 부분 메시지 업데이트를 위한 스트림 이벤트입니다. `ClaudeAgentOptions`에서 `include_partial_messages=True`인 경우에만 수신됩니다. `from claude_agent_sdk.types import StreamEvent`로 가져옵니다.

1760 1765 

1761```python theme={null}1766```python theme={null}

1762@dataclass1767@dataclass


1769 1774 

1770| 필드 | 타입 | 설명 |1775| 필드 | 타입 | 설명 |

1771| :- | :- | :- |1776| :- | :- | :- |

1772| `uuid` | `str` | 이 이벤트의 고유 식별자입니다 |1777| `uuid` | `str` | 이 이벤트의 고유 식별자 |

1773| `session_id` | `str` | 세션 식별자입니다 |1778| `session_id` | `str` | 세션 식별자 |

1774| `event` | `dict[str, Any]` | 원본 Claude API 스트림 이벤트 데이터입니다 |1779| `event` | `dict[str, Any]` | 원시 Claude API 스트림 이벤트 데이터 |

1775| `parent_tool_use_id` | `str \| None` | 항상 `None`입니다. 스트림 이벤트는 주 세션에서만 발생합니다. 서브에이전트 속성의 경우 [`AssistantMessage`](#assistantmessage)와 같은 완전한 메시지를 사용하십시오 |1780| `parent_tool_use_id` | `str \| None` | 항상 `None`입니다. 스트림 이벤트는 메인 세션에서만 발생합니다. 서브에이전트 귀속 정보에는 [`AssistantMessage`](#assistantmessage) 같은 완전한 메시지를 사용하십시오 |

1776 1781 

1777### `RateLimitEvent`1782### `RateLimitEvent`

1778 1783 

1779속도 제한 상태가 변경될 때 발생합니다 (예: `"allowed"`에서 `"allowed_warning"`으로). 이를 사용하여 사용자에게 하드 제한에 도달하기 전에 경고하거나, 상태가 `"rejected"`일 때 백오프합니다.1784속도 제한 상태가 변경될 때(예: `"allowed"`에서 `"allowed_warning"`으로) 발생합니다. 사용자가 하드 리밋에 도달하기 전에 경고하거나, 상태가 `"rejected"`일 때 백오프하는 데 사용하십시오.

1780 1785 

1781```python theme={null}1786```python theme={null}

1782@dataclass1787@dataclass


1788 1793 

1789| 필드 | 타입 | 설명 |1794| 필드 | 타입 | 설명 |

1790| :- | :- | :- |1795| :- | :- | :- |

1791| `rate_limit_info` | [`RateLimitInfo`](#ratelimitinfo) | 현재 속도 제한 상태입니다 |1796| `rate_limit_info` | [`RateLimitInfo`](#ratelimitinfo) | 현재 속도 제한 상태 |

1792| `uuid` | `str` | 고유 이벤트 식별자입니다 |1797| `uuid` | `str` | 고유 이벤트 식별자 |

1793| `session_id` | `str` | 세션 식별자입니다 |1798| `session_id` | `str` | 세션 식별자 |

1794 1799 

1795### `RateLimitInfo`1800### `RateLimitInfo`

1796 1801 

1797[`RateLimitEvent`](#ratelimitevent)에 의해 전달되는 속도 제한 상태입니다.1802[`RateLimitEvent`](#ratelimitevent)가 전달하는 속도 제한 상태입니다.

1798 1803 

1799```python theme={null}1804```python theme={null}

1800RateLimitStatus = Literal["allowed", "allowed_warning", "rejected"]1805RateLimitStatus = Literal["allowed", "allowed_warning", "rejected"]


1817 1822 

1818| 필드 | 타입 | 설명 |1823| 필드 | 타입 | 설명 |

1819| :- | :- | :- |1824| :- | :- | :- |

1820| `status` | `RateLimitStatus` | 현재 상태입니다. `"allowed"`, `"allowed_warning"` 또는 `"rejected"` 중 하나입니다. `"allowed_warning"`은 제한에 접근 중을 의미합니다. `"rejected"`는 제한에 도달했음을 의미합니다 |1825| `status` | `RateLimitStatus` | 현재 상태로, `"allowed"`, `"allowed_warning"`, `"rejected"` 중 하나입니다. `"allowed_warning"`은 한도에 근접했음을, `"rejected"`는 한도에 도달했음을 의미합니다 |

1821| `resets_at` | `int \| None` | 속도 제한 윈도우가 재설정되는 Unix 타임스탬프입니다 |1826| `resets_at` | `int \| None` | 속도 제한 기간이 초기화되는 Unix 타임스탬프 |

1822| `rate_limit_type` | `RateLimitType \| None` | 어느 속도 제한 윈도우가 적용되는지입니다 |1827| `rate_limit_type` | `RateLimitType \| None` | 적용되는 속도 제한 기간 |

1823| `utilization` | `float \| None` | 소비된 속도 제한의 분수입니다 (0.0 \~ 1.0) |1828| `utilization` | `float \| None` | 소비된 속도 제한의 비율(0.0\~1.0) |

1824| `overage_status` | `RateLimitStatus \| None` | 해당하는 경우 종량제 초과 사용 상태입니다 |1829| `overage_status` | `RateLimitStatus \| None` | 해당하는 경우 종량제 초과 사용량의 상태 |

1825| `overage_resets_at` | `int \| None` | 초과 사용 윈도우가 재설정되는 Unix 타임스탬프입니다 |1830| `overage_resets_at` | `int \| None` | 초과 사용 기간이 초기화되는 Unix 타임스탬프 |

1826| `overage_disabled_reason` | `str \| None` | 상태가 `"rejected"`인 경우 초과 사용을 사용할 수 없는 이유입니다 |1831| `overage_disabled_reason` | `str \| None` | 상태가 `"rejected"`인 경우 초과 사용을 이용할 수 없는 이유 |

1827| `raw` | `dict[str, Any]` | 위에서 모델링되지 않은 필드를 포함한 CLI의 전체 원본 dict입니다 |1832| `raw` | `dict[str, Any]` | 위에서 모델링되지 않은 필드를 포함한 CLI의 전체 원시 dict |

1828 1833 

1829### `ConversationResetMessage`1834### `ConversationResetMessage`

1830 1835 

1831`/clear` 후와 같이 연결을 종료하지 않고 대화가 교체될 때 발생합니다. 재설정이 나중의 `ResultMessage` 객체에 대한 실행 합계에 어떻게 영향을 미치는지는 [스트리밍 입력 모드에서 비용 추적](/docs/ko/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode)을 참조하십시오. Python Agent SDK 0.2.137 이상이 필요합니다.1836`/clear` 이후처럼 연결을 종료하지 않고 대화가 교체될 때 발생합니다. 초기화가 이후 `ResultMessage` 객체의 누적 합계에 어떤 영향을 미치는지는 [스트리밍 입력 모드에서 비용 추적](/docs/ko/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode)을 참조하십시오. Python Agent SDK 0.2.137 이상이 필요합니다.

1832 1837 

1833```python theme={null}1838```python theme={null}

1834@dataclass1839@dataclass


1840 1845 

1841| 필드 | 타입 | 설명 |1846| 필드 | 타입 | 설명 |

1842| :- | :- | :- |1847| :- | :- | :- |

1843| `new_conversation_id` | `str` | 새로운 대화의 불투명 식별자입니다. 이후 메시지의 `session_id`가 아닙니다. 다음 메시지에서 읽으십시오 |1848| `new_conversation_id` | `str` | 새 대화의 불투명 식별자입니다. 이후 메시지의 `session_id`가 아니며, 해당 값은 다음 메시지에서 읽으십시오 |

1844| `uuid` | `str` | 고유 메시지 식별자 |1849| `uuid` | `str` | 고유 메시지 식별자 |

1845| `session_id` | `str` | 재설정된 세션의 ID입니다. 재설정 후의 메시지는 새로운 `session_id`를 전달합니다 |1850| `session_id` | `str` | 초기화된 세션의 ID입니다. 초기화 이후의 메시지에는 새 `session_id`가 담깁니다 |

1846 1851 

1847### `TaskStartedMessage`1852### `TaskStartedMessage`

1848 1853 

1849백그라운드 작업이 시작될 때 발생합니다. 백그라운드 작업은 주 턴 외부에서 추적되는 모든 것입니다: 백그라운드 Bash 명령, [Monitor](#monitor) 감시, Agent 도구를 통해 생성된 서브에이전트 또는 원격 에이전트입니다. `task_type` 필드가 어느 것인지 알려줍니다. 이 명명은 `Task`-to-`Agent` 도구 이름 변경과 무관합니다.1854백그라운드 작업이 시작될 때 발생합니다. 백그라운드 작업은 메인 턴 밖에서 추적되는 모든 것으로, 백그라운드로 실행된 Bash 명령, [Monitor](#monitor) 감시, Agent 도구로 생성된 서브에이전트, 원격 에이전트 등이 있습니다. `task_type` 필드로 어떤 종류인지 알 수 있습니다. 이 이름은 `Task`에서 `Agent`로의 도구 이름 변경과는 관련이 없습니다.

1850 1855 

1851```python theme={null}1856```python theme={null}

1852@dataclass1857@dataclass


1861 1866 

1862| 필드 | 타입 | 설명 |1867| 필드 | 타입 | 설명 |

1863| :- | :- | :- |1868| :- | :- | :- |

1864| `task_id` | `str` | 작업의 고유 식별자입니다 |1869| `task_id` | `str` | 작업의 고유 식별자 |

1865| `description` | `str` | 작업의 설명입니다 |1870| `description` | `str` | 작업 설명 |

1866| `uuid` | `str` | 고유 메시지 식별자입니다 |1871| `uuid` | `str` | 고유 메시지 식별자 |

1867| `session_id` | `str` | 세션 식별자입니다 |1872| `session_id` | `str` | 세션 식별자 |

1868| `tool_use_id` | `str \| None` | 관련 도구 사용 ID입니다 |1873| `tool_use_id` | `str \| None` | 연관된 도구 사용 ID |

1869| `task_type` | `str \| None` | 백그라운드 작업의 종류입니다: 백그라운드 Bash 및 Monitor 감시의 경우 `"local_bash"`, `"local_agent"` 또는 `"remote_agent"` |1874| `task_type` | `str \| None` | 백그라운드 작업의 종류: 백그라운드 Bash 및 Monitor 감시의 경우 `"local_bash"`, `"local_agent"`, 또는 `"remote_agent"` |

1870 1875 

1871### `TaskUsage`1876### `TaskUsage`

1872 1877 

1873백그라운드 작업의 토큰 및 타이밍 데이터입니다.1878백그라운드 작업의 토큰 및 시간 데이터입니다.

1874 1879 

1875```python theme={null}1880```python theme={null}

1876class TaskUsage(TypedDict):1881class TaskUsage(TypedDict):


1881 1886 

1882### `TaskProgressMessage`1887### `TaskProgressMessage`

1883 1888 

1884실행 중인 백그라운드 작업에 대한 진행 상황 업데이트로 주기적으로 발생합니다.1889실행 중인 백그라운드 작업의 진행 상황 업데이트와 함께 주기적으로 발생합니다.

1885 1890 

1886```python theme={null}1891```python theme={null}

1887@dataclass1892@dataclass


1897 1902 

1898| 필드 | 타입 | 설명 |1903| 필드 | 타입 | 설명 |

1899| :- | :- | :- |1904| :- | :- | :- |

1900| `task_id` | `str` | 작업의 고유 식별자입니다 |1905| `task_id` | `str` | 작업의 고유 식별자 |

1901| `description` | `str` | 현재 상태 설명입니다 |1906| `description` | `str` | 현재 상태 설명 |

1902| `usage` | `TaskUsage` | 지금까지 이 작업의 토큰 사용량입니다 |1907| `usage` | `TaskUsage` | 지금까지 이 작업의 토큰 사용량 |

1903| `uuid` | `str` | 고유 메시지 식별자입니다 |1908| `uuid` | `str` | 고유 메시지 식별자 |

1904| `session_id` | `str` | 세션 식별자입니다 |1909| `session_id` | `str` | 세션 식별자 |

1905| `tool_use_id` | `str \| None` | 관련 도구 사용 ID입니다 |1910| `tool_use_id` | `str \| None` | 연관된 도구 사용 ID |

1906| `last_tool_name` | `str \| None` | 작업이 마지막으로 사용한 도구의 이름입니다 |1911| `last_tool_name` | `str \| None` | 작업이 마지막으로 사용한 도구의 이름 |

1907 1912 

1908### `TaskNotificationMessage`1913### `TaskNotificationMessage`

1909 1914 

1910백그라운드 작업이 완료, 실패 또는 중지될 때 발생합니다. 백그라운드 작업에는 `run_in_background` Bash 명령, Monitor 감시 및 백그라운드 서브에이전트가 포함됩니다.1915백그라운드 작업이 완료, 실패 또는 중지될 때 발생합니다. 백그라운드 작업에는 `run_in_background` Bash 명령, Monitor 감시, 백그라운드 서브에이전트가 포함됩니다.

1911 1916 

1912```python theme={null}1917```python theme={null}

1913@dataclass1918@dataclass


1924 1929 

1925| 필드 | 타입 | 설명 |1930| 필드 | 타입 | 설명 |

1926| :- | :- | :- |1931| :- | :- | :- |

1927| `task_id` | `str` | 작업의 고유 식별자입니다 |1932| `task_id` | `str` | 작업의 고유 식별자 |

1928| `status` | `TaskNotificationStatus` | `"completed"`, `"failed"` 또는 `"stopped"` 중 하나입니다 |1933| `status` | `TaskNotificationStatus` | `"completed"`, `"failed"`, `"stopped"` 중 하나 |

1929| `output_file` | `str` | 작업 출력 파일의 경로입니다 |1934| `output_file` | `str` | 작업 출력 파일 경로 |

1930| `summary` | `str` | 작업 결과의 요약입니다 |1935| `summary` | `str` | 작업 결과 요약 |

1931| `uuid` | `str` | 고유 메시지 식별자입니다 |1936| `uuid` | `str` | 고유 메시지 식별자 |

1932| `session_id` | `str` | 세션 식별자입니다 |1937| `session_id` | `str` | 세션 식별자 |

1933| `tool_use_id` | `str \| None` | 관련 도구 사용 ID입니다 |1938| `tool_use_id` | `str \| None` | 연관된 도구 사용 ID |

1934| `usage` | `TaskUsage \| None` | 작업의 최종 토큰 사용량입니다 |1939| `usage` | `TaskUsage \| None` | 작업의 최종 토큰 사용량 |

1935 1940 

1936CLI가 [긴 MCP 도구 호출을 백그라운드로 이동](/docs/ko/mcp#automatic-backgrounding-of-long-tool-calls)할 때, 해당 호출의 도구 결과는 플레이스홀더만 보유하고 호출의 실제 결과는 이 메시지에 도착합니다. 그러한 호출에 대한 `"completed"` 알림에서 CLI는 도구가 참조로 반환한 파일을 나열하는 `resource_links` 키를 추가하며, [`UserMessage.tool_use_result`](#usermessage)의 `resourceLinks` 키와 동일한 항목 및 제한이 있습니다. `resource_links` 키는 Python Agent SDK 0.2.150 이상 및 Claude Code v2.1.257 이상이 필요합니다. 해당 SDK 버전과 함께 번들된 CLI는 Claude Code 요구 사항을 충족합니다.1941CLI가 [오래 걸리는 MCP 도구 호출을 백그라운드로 이동](/docs/ko/mcp#automatic-backgrounding-of-long-tool-calls)하면, 해당 호출의 도구 결과에는 자리 표시자만 담기고 호출의 실제 결과는 이 메시지로 도착합니다. 이러한 호출에 대한 `"completed"` 알림에서, CLI는 도구가 참조로 반환한 파일을 나열하는 `resource_links` 키를 추가하며, 항목과 제한은 [`UserMessage.tool_use_result`](#usermessage)의 `resourceLinks` 키와 동일합니다. `resource_links` 키에는 Python Agent SDK 0.2.150 이상과 Claude Code v2.1.257 이상이 필요하며, 해당 SDK 버전에 번들된 CLI는 Claude Code 요구 사항을 충족합니다.

1937 1942 

1938데이터클래스에는 `resource_links`에 대한 필드가 없습니다. 메시지가 [`SystemMessage`](#systemmessage)에서 상속하는 `data` dict에서 읽으십시오: `message.data.get("resource_links")`. `tool_use_id`로 알림을 호출과 일치시키십시오. CLI는 결과에 링크가 없을 때와 MCP 도구 호출이 아닌 작업의 알림에서 키를 생략합니다.1943dataclass에는 `resource_links`에 대한 필드가 없습니다. 메시지가 [`SystemMessage`](#systemmessage)로부터 상속한 `data` dict에서 `message.data.get("resource_links")`로 읽으십시오. `tool_use_id`로 알림과 호출을 매칭하십시오. 결과에 링크가 없었거나 MCP 도구 호출이 아닌 작업에 대한 알림인 경우 CLI는 이 키를 생략합니다.

1939 1944 

1940## 콘텐츠 블록 타입1945## 콘텐츠 블록 타입

1941 1946 


2062 errors: list[str] # an empty list when the result message reported none2067 errors: list[str] # an empty list when the result message reported none

2063 result: str | None2068 result: str | None

2064 api_error_status: int | None2069 api_error_status: int | None

2065 terminal_reason: str | None # "max_turns", "api_error", ...; check this before subtype2070 terminal_reason: str | None # "max_turns", "api_error", ...; check after data["stop_reason"], before subtype

2066 session_id: str | None2071 session_id: str | None

2067 data: dict[str, Any] # the raw result message payload2072 data: dict[str, Any] # the raw result message payload

2068```2073```

2069 2074 

2070실패를 구분하려면 `subtype` 전에 `terminal_reason`을 확인하십시오. API 오류와 같은 최종 요청이 실패하면 Claude Code는 `subtype` `"success"`를 보고하고 원인을 `terminal_reason`에 표시합니다(예: `"api_error"`). 설정한 제한(예: `max_turns` 또는 `max_budget_usd`)이 실행을 종료하면 `error_*` 서브타입을 보고합니다.2075실패를 구분하려면 먼저 `data["stop_reason"]`을 확인한 다음 `terminal_reason`, 그다음 `subtype`을 확인하십시오. 거부된 응답은 `stop_reason`이 `"refusal"`이며 일반적으로 `subtype`은 `"success"`입니다. 이 경우 `terminal_reason`만으로는 거부를 식별할 수 없으며 값이 `"completed"` 또는 `"api_error"`일 수 있습니다. 최종 요청이 실패하면 `subtype`은 `"success"`이고 원인은 `terminal_reason`에 표시됩니다(예: API 오류의 경우 `"api_error"`). 실행이 설정한 제한(예: `max_turns` 또는 `max_budget_usd`)에 도달하면 `error_*` 서브타입이 반환됩니다.

2071 2076 

2072### `CLIJSONDecodeError`2077### `CLIJSONDecodeError`

2073 2078 


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

2575 "model": "sonnet" | "opus" | "haiku" | "fable" | None, # 이 에이전트의 모델 재정의2580 "model": "sonnet" | "opus" | "haiku" | "fable" | None, # 이 에이전트의 모델 재정의

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

2577 "run_in_background": bool | None, # 에이전트는 기본적으로 백그라운드에서 실행됩니다. 동기적으로 실행하려면 False로 설정하십시오2582 "run_in_background": bool | None, # 생략 시 기본값: 메인 에이전트의 호출은 새 에이전트를 백그라운드에서 실행하고, 서브에이전트의 호출은 새 에이전트를 기다립니다

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

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

2580 "mode": "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan" | None, # 더 이상 사용되지 않음; 무시됨. 서브에이전트 상속 규칙이 서브에이전트의 권한 모드를 결정합니다2585 "mode": "acceptEdits" | "auto" | "bypassPermissions" | "default" | "dontAsk" | "plan" | None, # 더 이상 사용되지 않음; 무시됨. 서브에이전트 상속 규칙이 서브에이전트의 권한 모드를 결정합니다


2584 2589 

2585복잡한 다단계 작업을 자율적으로 처리하기 위해 새로운 에이전트를 시작합니다.2590복잡한 다단계 작업을 자율적으로 처리하기 위해 새로운 에이전트를 시작합니다.

2586 2591 

2592Claude가 `Agent` 호출에서 `run_in_background`를 생략하면, 기본적으로 메인 에이전트는 새 에이전트를 기다리지 않고 서브에이전트는 기다립니다:

2593 

2594* **메인 에이전트에서**: 새 에이전트는 백그라운드에서 실행되며, 결과에는 `status: "async_launched"`가 포함됩니다. 대신 메인 에이전트가 새 에이전트를 기다리도록 하려면 [Claude가 서브에이전트를 기다릴지 선택하기](/docs/ko/agent-sdk/subagents#choose-whether-claude-waits-for-subagents)를 참조하십시오.

2595* **서브에이전트 중 하나에서**: 호출한 서브에이전트가 [새 에이전트를 기다립니다](/docs/ko/sub-agents#let-subagents-spawn-their-own-subagents). 새 에이전트의 정의에서 [`background`](#agentdefinition)를 `True`로 설정하거나, `CLAUDE_CODE_FORK_SUBAGENT`를 `0`으로 설정하여 [포크 모드를 끄면](/docs/ko/sub-agents#turn-fork-mode-on-or-off) 새 에이전트가 대신 백그라운드에서 실행됩니다.

2596 

2597Python SDK v0.2.169 이전에는 서브에이전트가 시작한 에이전트도 기본적으로 백그라운드에서 실행되었습니다. 해당 릴리스는 Claude Code v2.1.302 이상을 번들로 포함하는 첫 번째 릴리스입니다.

2598 

2587**출력 (상태: `"completed"`):**2599**출력 (상태: `"completed"`):**

2588 2600 

2589```python theme={null}2601```python theme={null}


3519 "Claude Code CLI not found. Try reinstalling: pip install --force-reinstall claude-agent-sdk"3531 "Claude Code CLI not found. Try reinstalling: pip install --force-reinstall claude-agent-sdk"

3520 )3532 )

3521 # Catch ResultError before ProcessError, which it subclasses. Its message3533 # Catch ResultError before ProcessError, which it subclasses. Its message

3522 # carries the error text. A failed final request, such as an API error,3534 # carries the error text. A refusal and a failed final request both usually

3523 # arrives with subtype "success", so branch on terminal_reason first.3535 # arrive with subtype "success", so check stop_reason, then terminal_reason.

3524 except ResultError as e:3536 except ResultError as e:

3525 if e.terminal_reason == "api_error":3537 if e.data.get("stop_reason") == "refusal":

3538 print(f"Model declined to respond: {e}")

3539 elif e.terminal_reason == "api_error":

3526 print(f"API request failed: {e}")3540 print(f"API request failed: {e}")

3527 else:3541 else:

3528 print(f"Query ended with an error result ({e.terminal_reason or e.subtype}): {e}")3542 print(f"Query ended with an error result ({e.terminal_reason or e.subtype}): {e}")


3730>3744>

3731> `dangerouslyDisableSandbox: True`로 실행되는 명령은 전체 시스템 접근 권한이 있습니다. `can_use_tool` 핸들러가 이러한 요청을 신중하게 검증하는지 확인하십시오.3745> `dangerouslyDisableSandbox: True`로 실행되는 명령은 전체 시스템 접근 권한이 있습니다. `can_use_tool` 핸들러가 이러한 요청을 신중하게 검증하는지 확인하십시오.

3732>3746>

3733> `permission_mode`가 `bypassPermissions`로 설정되고 `allowUnsandboxedCommands`가 활성화되면, 모델은 [모드가 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves)을 제외하고 승인 프롬프트 없이 샌드박스 외부에서 명령을 자동으로 실행할 수 있습니다. 이 조합은 모델이 샌드박스 격리를 조용히 탈출할 수 있도록 효과적으로 허용합니다.3747> `permission_mode`가 `bypassPermissions`로 설정되고 `allowUnsandboxedCommands`가 활성화되면, 모델은 [어떤 모드도 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves)을 제외하고 승인 프롬프트 없이 샌드박스 외부에서 명령을 자동으로 실행할 수 있습니다. 이 조합은 모델이 샌드박스 격리를 조용히 탈출할 수 있도록 효과적으로 허용합니다.

3734 3748 

3735## 참고 항목3749## 참고 항목

3736 3750 

Details

318 318 

319## 알려진 제한 사항319## 알려진 제한 사항

320 320 

321* **구조화된 출력**: 부분 메시지가 활성화된 경우, JSON은 도구 호출의 검증되지 않은 `input_json_delta` 청크로 스트리밍되며, 검증된 결과만 최종 `ResultMessage.structured_output`에 도달합니다. 자세한 내용은 [구조화된 출력](/docs/ko/agent-sdk/structured-outputs)을 참조하십시오.321* **구조화된 출력**: 부분 메시지가 활성화된 경우, JSON은 도구 호출의 검증되지 않은 `input_json_delta` 청크로 스트리밍되며, 검증된 결과만 최종 `ResultMessage.structured_output`에 도달합니다. 해당 호출이 스트림에 어떻게 나타나는지는 [StructuredOutput 도구 호출 인식하기](/docs/ko/agent-sdk/structured-outputs#recognize-the-structuredoutput-tool-call)에서 설명합니다.

322 322 

323## 다음 단계323## 다음 단계

324 324 

Details

366asyncio.run(main())366asyncio.run(main())

367```367```

368 368 

369## StructuredOutput 도구 호출 인식하기

370 

371TypeScript에서 `outputFormat`을 설정하거나 Python에서 `output_format`을 설정하면, 메시지 스트림에 직접 정의한 적 없는 `StructuredOutput`이라는 이름의 도구 호출이 포함됩니다. Claude Code는 이 도구를 세션에 추가하며, 에이전트는 이 도구를 호출하여 답변을 반환합니다. [system init 메시지](/docs/ko/agent-sdk/typescript#sdksystemmessage)는 이 도구를 `tools` 배열에 나열하며, 각 호출은 두 개의 블록으로 전달됩니다.

372 

373* `StructuredOutput`이라는 이름의 `tool_use` 블록으로, 입력값은 에이전트가 스키마에 맞춰 생성한 객체입니다

374* `Structured output provided successfully`라는 내용의 `tool_result` 블록

375 

376해당 객체가 스키마와 일치하지 않으면 `tool_result`에는 대신 `is_error: true`가 포함되고 에이전트가 `StructuredOutput`을 다시 호출하므로, 하나의 쿼리에 대해 스트림에 여러 호출이 포함될 수 있습니다. 검증된 데이터는 `tool_use` 블록이 아닌 result 메시지의 `structured_output`에서 읽어야 하며, 모든 시도가 실패했을 때 받게 되는 결과는 [오류 처리](#error-handling)를 참조하세요.

377 

378애플리케이션에서 도구 호출을 표시하거나 로그에 기록하는 경우, 이 메커니즘이 에이전트가 선택한 단계처럼 보이지 않도록 `StructuredOutput`이라는 이름의 호출은 건너뛰세요. `tool_result` 블록에는 도구 이름이 없고 응답 대상 호출의 `tool_use_id`만 포함되므로, 이를 건너뛴 각 호출의 `id`와 대조하세요.

379 

369## 오류 처리380## 오류 처리

370 381 

371구조화된 출력 생성은 에이전트가 스키마와 일치하는 유효한 JSON을 생성할 수 없을 때 실패할 수 있습니다. 이는 일반적으로 스키마가 작업에 너무 복잡하거나, 작업 자체가 모호하거나, 에이전트가 검증 오류를 수정하려고 시도하는 동안 재시도 제한에 도달할 때 발생합니다. 또한 검증 실패 없이도 발생할 수 있습니다: [모델 폴백](/docs/ko/model-config#automatic-model-fallback)은 이미 완료된 출력을 스트림 중간에 취소할 수 있으며, 재시도가 이를 대체하지 않으면 실행이 동일한 오류로 종료됩니다. 스키마를 디버깅하기 전에 오류 결과 메시지의 `errors` 목록을 확인하여 두 가지 원인을 구분하십시오.382구조화된 출력 생성은 에이전트가 스키마와 일치하는 유효한 JSON을 생성할 수 없을 때 실패할 수 있습니다. 이는 일반적으로 스키마가 작업에 너무 복잡하거나, 작업 자체가 모호하거나, 에이전트가 검증 오류를 수정하려고 시도하는 동안 재시도 제한에 도달할 때 발생합니다. 또한 검증 실패 없이도 발생할 수 있습니다: [모델 폴백](/docs/ko/model-config#automatic-model-fallback)은 이미 완료된 출력을 스트림 중간에 취소할 수 있으며, 재시도가 이를 대체하지 않으면 실행이 동일한 오류로 종료됩니다. 스키마를 디버깅하기 전에 오류 결과 메시지의 `errors` 목록을 확인하여 두 가지 원인을 구분하십시오.

Details

147| `tools` | `string[]` | 아니오 | 허용된 도구 이름의 배열입니다. 생략하면 [서브에이전트에서 사용 가능한 모든 도구](/docs/ko/sub-agents#available-tools)를 상속합니다 |147| `tools` | `string[]` | 아니오 | 허용된 도구 이름의 배열입니다. 생략하면 [서브에이전트에서 사용 가능한 모든 도구](/docs/ko/sub-agents#available-tools)를 상속합니다 |

148| `disallowedTools` | `string[]` | 아니오 | 에이전트의 도구 집합에서 제거할 도구 이름의 배열입니다. MCP 서버 수준 패턴도 허용됩니다: `mcp__server` 또는 `mcp__server__*`는 해당 서버의 모든 도구를 제거하고, `mcp__*`는 모든 서버의 모든 MCP 도구를 제거합니다 |148| `disallowedTools` | `string[]` | 아니오 | 에이전트의 도구 집합에서 제거할 도구 이름의 배열입니다. MCP 서버 수준 패턴도 허용됩니다: `mcp__server` 또는 `mcp__server__*`는 해당 서버의 모든 도구를 제거하고, `mcp__*`는 모든 서버의 모든 MCP 도구를 제거합니다 |

149| `model` | `string` | 아니오 | 이 에이전트의 모델 재정의입니다. `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'` 같은 별칭 또는 전체 모델 ID를 허용합니다. `'inherit'`는 주 모델을 사용합니다. 생략하면 Claude Code는 [서브에이전트 모델 순서](/docs/ko/sub-agents#choose-a-model)에서 모델을 선택합니다 |149| `model` | `string` | 아니오 | 이 에이전트의 모델 재정의입니다. `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'` 같은 별칭 또는 전체 모델 ID를 허용합니다. `'inherit'`는 주 모델을 사용합니다. 생략하면 Claude Code는 [서브에이전트 모델 순서](/docs/ko/sub-agents#choose-a-model)에서 모델을 선택합니다 |

150| `skills` | `string[]` | 아니오 | 시작 시 에이전트의 컨텍스트에 미리 로드할 스킬 이름 목록입니다. 나열되지 않은 스킬은 Skill 도구를 통해 호출 가능합니다 |150| `skills` | `string[]` | 아니오 | 시작 시 에이전트의 컨텍스트에 미리 로드할 스킬 이름 목록입니다. 목록에서 최대 [처음 32개의 고유 이름](/docs/ko/sub-agents#preload-skills-into-subagents)까지만 미리 로드됩니다. 나열되지 않은 스킬은 Skill 도구를 통해 호출 가능합니다 |

151| `memory` | `'user' \| 'project' \| 'local'` | 아니오 | 이 에이전트의 메모리 소스 |151| `memory` | `'user' \| 'project' \| 'local'` | 아니오 | 이 에이전트의 메모리 소스 |

152| `mcpServers` | `(string \| object)[]` | 아니오 | 이 에이전트에서 사용 가능한 MCP 서버(이름 또는 인라인 구성으로) |152| `mcpServers` | `(string \| object)[]` | 아니오 | 이 에이전트에서 사용 가능한 MCP 서버(이름 또는 인라인 구성으로) |

153| `initialPrompt` | `string` | 아니오 | 이 에이전트가 주 스레드 에이전트로 실행될 때 첫 번째 사용자 턴으로 자동 제출됩니다. 에이전트가 서브에이전트로 호출될 때는 무시됩니다 |153| `initialPrompt` | `string` | 아니오 | 이 에이전트가 주 스레드 에이전트로 실행될 때 첫 번째 사용자 턴으로 자동 제출됩니다. 에이전트가 서브에이전트로 호출될 때는 무시됩니다 |


323 323 

324Claude는 Agent 도구를 통해 서브에이전트를 호출합니다. 서브에이전트가 호출되는 시점을 감지하려면 `name`이 `"Agent"`인 `tool_use` 블록을 확인하면 됩니다.324Claude는 Agent 도구를 통해 서브에이전트를 호출합니다. 서브에이전트가 호출되는 시점을 감지하려면 `name`이 `"Agent"`인 `tool_use` 블록을 확인하면 됩니다.

325 325 

326서브에이전트의 컨텍스트 내에서 생성된 메시지에는 `parent_tool_use_id` 필드가 포함됩니다. TypeScript에서는 서브에이전트가 생성하는 각 assistant 및 user 메시지에 [`agent_id`](/docs/ko/agent-sdk/typescript#sdkassistantmessage)도 포함되며, 이는 해당 서브에이전트의 [task 이벤트](/docs/ko/agent-sdk/typescript#sdktaskstartedmessage)의 `task_id`입니다. `agent_id`를 사용하려면 TypeScript Agent SDK v0.3.292 이상이 필요합니다.326서브에이전트의 컨텍스트 내에서 생성된 메시지에는 `parent_tool_use_id` 필드가 포함됩니다. TypeScript에서는 서브에이전트가 생성하는 각 assistant 및 user 메시지에 [`agent_id`](/docs/ko/agent-sdk/typescript#sdkassistantmessage)도 포함되며, 이는 해당 서브에이전트의 [task 이벤트](/docs/ko/agent-sdk/typescript#sdktaskstartedmessage)의 `task_id`입니다. [서브에이전트를 재개](#resume-subagents)해도 `agent_id`는 동일하게 유지됩니다. `agent_id`를 사용하려면 TypeScript Agent SDK v0.3.292 이상이 필요합니다.

327 327 

328> [!NOTE]328> [!NOTE]

329>329>

Details

660| `supportedModels()` | 표시 정보와 함께 사용 가능한 모델을 반환합니다 |660| `supportedModels()` | 표시 정보와 함께 사용 가능한 모델을 반환합니다 |

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

662| `mcpServerStatus()` | 연결된 MCP 서버의 상태를 [`McpServerStatus`](#mcpserverstatus)`[]`로 반환합니다 |662| `mcpServerStatus()` | 연결된 MCP 서버의 상태를 [`McpServerStatus`](#mcpserverstatus)`[]`로 반환합니다 |

663| `getContextUsage(opts?)` | 세션의 컨텍스트 윈도우 사용량을 카테고리, 스킬, 도구별로 분류한 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse)를 반환합니다. 기본 `detail`을 사용하면 대화형 세션에서 `/context`가 표시하는 것과 동일한 데이터이며, 메시지 스트림에 나타나지 않는 토큰 계산 API 요청으로 계산됩니다. [이러한 요청이 처리되는 방식](#sdkcontrolgetcontextusageresponse)을 참조하세요. [`detail` 옵션](#sdkcontrolgetcontextusageresponse)에는 Agent SDK v0.3.257 이상이 필요합니다 |663| `getContextUsage(opts?)` | 세션의 컨텍스트 윈도우 사용량을 카테고리, 스킬, 도구별로 분류한 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse)를 반환합니다. 기본 `detail`에서는 대화형 세션에서 `/context`가 보여 주는 데이터를 포함하며, 메시지 스트림에 나타나지 않는 토큰 계산 API 요청으로 계산됩니다. [이러한 요청이 처리되는 방식](#sdkcontrolgetcontextusageresponse)을 참조하세요. [`detail` 옵션](#sdkcontrolgetcontextusageresponse)에는 Agent SDK v0.3.257 이상이 필요합니다 |

664| `readFile(path, options?)` | 세션의 파일 시스템에서 파일을 읽습니다. Claude Code는 `cwd`를 기준으로 경로를 확인하며, 제공하는 파일은 [`readFile()`이 읽을 수 있는 파일](#what-readfile-can-read)에 나열되어 있습니다. 읽기 상한을 변경하려면 `{ maxBytes }`를 전달하고(기본값 1 MB, 최대 10 MB), 이미지와 같은 바이너리 파일에는 `{ encoding: 'base64' }`를 전달하세요. [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse)로 resolve되며, 권한 거부, 파일 없음 또는 전송 오류 시에는 `null`로 resolve됩니다. TypeScript SDK v0.2.121 이상이 필요합니다 |664| `readFile(path, options?)` | 세션의 파일 시스템에서 파일을 읽습니다. Claude Code는 `cwd`를 기준으로 경로를 확인하며, 제공하는 파일은 [`readFile()`이 읽을 수 있는 파일](#what-readfile-can-read)에 나열되어 있습니다. 읽기 상한을 변경하려면 `{ maxBytes }`를 전달하고(기본값 1 MB, 최대 10 MB), 이미지와 같은 바이너리 파일에는 `{ encoding: 'base64' }`를 전달하세요. [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse)로 resolve되며, 권한 거부, 파일 없음 또는 전송 오류 시에는 `null`로 resolve됩니다. TypeScript SDK v0.2.121 이상이 필요합니다 |

665| `reloadPlugins(options?)` | 디스크에서 플러그인을 다시 로드하여, 세션 중에 설치하거나 편집한 플러그인이 실행 중인 세션에 반영되도록 합니다. 세션의 명령, 서브에이전트, 플러그인, MCP 서버 상태를 나열하는 [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse)로 resolve됩니다. Agent SDK v0.2.85 이상이 필요합니다. [`holdOnCacheImpact` 옵션](#sdkcontrolreloadpluginsresponse)에는 Agent SDK v0.3.268 이상이 필요합니다 |665| `reloadPlugins(options?)` | 디스크에서 플러그인을 다시 로드하여, 세션 중에 설치하거나 편집한 플러그인이 실행 중인 세션에 반영되도록 합니다. 세션의 명령, 서브에이전트, 플러그인, MCP 서버 상태를 나열하는 [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse)로 resolve됩니다. Agent SDK v0.2.85 이상이 필요합니다. [`holdOnCacheImpact` 옵션](#sdkcontrolreloadpluginsresponse)에는 Agent SDK v0.3.268 이상이 필요합니다 |

666| `reloadSkills()` | 디스크에서 스킬을 다시 로드하여, 세션 중에 추가하거나 편집한 스킬을 실행 중인 세션에서 사용할 수 있게 합니다. 다시 로드한 후 사용 가능한 스킬을 나열하는 [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse)로 resolve됩니다. Agent SDK v0.3.163 이상이 필요합니다 |666| `reloadSkills()` | 디스크에서 스킬을 다시 로드하여, 세션 중에 추가하거나 편집한 스킬을 실행 중인 세션에서 사용할 수 있게 합니다. 다시 로드한 후 사용 가능한 스킬을 나열하는 [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse)로 resolve됩니다. Agent SDK v0.3.163 이상이 필요합니다 |


863 863 

864### `SDKControlGetContextUsageResponse`864### `SDKControlGetContextUsageResponse`

865 865 

866[`getContextUsage()`](#query-object)의 반환 타입입니다. 기본 `detail`을 사용하면 대화형 세션에서 Claude Code가 `/context` 명령에 대해 렌더링하는 것과 동일한 페이로드이므로, 토큰 수와 함께 Claude Code가 `/context` 사용량 그리드를 그리는 데 사용하는 `color` 및 `gridRows`와 같은 표시용 필드도 포함합니다.866[`getContextUsage()`](#query-object)의 반환 타입입니다. 기본 `detail`에서 응답에는 Claude Code가 대화형 세션의 `/context` 명령에 대해 렌더링하는 페이로드가 포함됩니다. 토큰 수와 함께, 이 페이로드에는 Claude Code가 `/context` 사용량 그리드를 그리는 데 사용하는 `color`, `gridRows`와 같은 표시 필드도 포함됩니다.

867 867 

868메서드의 선택적 `detail` 인수는 Claude Code가 각 카테고리를 계산하는 방식을 선택합니다. `detail` 인수에는 Agent SDK v0.3.257 이상이 필요합니다.868메서드의 선택적 `detail` 인수는 Claude Code가 각 카테고리를 계산하는 방식을 선택합니다. `detail` 인수에는 Agent SDK v0.3.257 이상이 필요합니다.

869 869 


872 872 

873메서드를 호출하는 대신 `/context`를 프롬프트로 보내면, Claude Code는 결과를 전달하는 assistant 메시지의 `context_usage` 필드에 [`SDKContextUsage`](#sdkcontextusage) 페이로드를 첨부합니다. 이 필드에는 Agent SDK v0.3.232 이상이 필요합니다.873메서드를 호출하는 대신 `/context`를 프롬프트로 보내면, Claude Code는 결과를 전달하는 assistant 메시지의 `context_usage` 필드에 [`SDKContextUsage`](#sdkcontextusage) 페이로드를 첨부합니다. 이 필드에는 Agent SDK v0.3.232 이상이 필요합니다.

874 874 

875`SDKControlGetContextUsageResponse`에서 `categories[].id`, `mcpInstructions`, 그리고 `agents` 및 `skills.skillFrontmatter` 항목의 `pluginId` 및 `path` 필드에는 Agent SDK v0.3.304 이상이 필요합니다.

876 

875```typescript theme={null}877```typescript theme={null}

876type SDKControlGetContextUsageResponse = {878type SDKControlGetContextUsageResponse = {

877 categories: {879 categories: {

880 id?:

881 | "system_prompt"

882 | "system_tools"

883 | "mcp_tools"

884 | "mcp_instructions"

885 | "mcp_tools_deferred"

886 | "system_tools_deferred"

887 | "custom_agents"

888 | "memory_files"

889 | "skills"

890 | "messages"

891 | "autocompact_buffer"

892 | "compact_buffer"

893 | "free_space";

878 name: string;894 name: string;

879 tokens: number;895 tokens: number;

880 color: string;896 color: string;


905 tokens: number;921 tokens: number;

906 isLoaded?: boolean;922 isLoaded?: boolean;

907 }[];923 }[];

924 mcpInstructions?: {

925 serverName: string;

926 tokens: number;

927 }[];

908 deferredBuiltinTools?: {928 deferredBuiltinTools?: {

909 name: string;929 name: string;

910 tokens: number;930 tokens: number;


921 agents: {941 agents: {

922 agentType: string;942 agentType: string;

923 source: string;943 source: string;

944 pluginId?: string;

945 path?: string;

924 tokens: number;946 tokens: number;

925 }[];947 }[];

926 slashCommands?: {948 slashCommands?: {


935 skillFrontmatter: {957 skillFrontmatter: {

936 name: string;958 name: string;

937 source: string;959 source: string;

960 pluginName?: string;

961 pluginId?: string;

962 path?: string;

938 tokens: number;963 tokens: number;

939 }[];964 }[];

940 };965 };


978 1003 

979Claude Code는 선택적 진단 필드인 `deferredBuiltinTools`, `systemTools`, `systemPromptSections`를 설정하지 않으므로, 타입에 선언되어 있더라도 이 필드들은 없을 것으로 예상하세요.1004Claude Code는 선택적 진단 필드인 `deferredBuiltinTools`, `systemTools`, `systemPromptSections`를 설정하지 않으므로, 타입에 선언되어 있더라도 이 필드들은 없을 것으로 예상하세요.

980 1005 

1006#### ID로 행 찾기, 서버의 지침 토큰, 항목의 플러그인 및 파일

1007 

1008MCP 서버 지침은 연결된 서버가 제공하고 Claude Code가 컨텍스트에 추가하는 사용 안내이며, `categories`의 `mcp_instructions` 행이 그 토큰을 계산합니다. 다음 [`getContextUsage()`](#query-object) 필드를 사용하여 `id`로 `categories` 행 하나를 골라내거나, `mcp_instructions` 토큰을 서버별로 나누거나, 에이전트 또는 스킬 항목의 출처인 플러그인과 파일을 찾으세요.

1009 

1010| 필드 | 위치 | 담고 있는 내용 |

1011| :- | :- | :- |

1012| `id` | 각 `categories` 행 | 행의 식별자로, `mcp_instructions`와 같이 [응답 타입](#sdkcontrolgetcontextusageresponse)에 나열된 값 중 하나입니다. 행 하나를 골라내려면 `id`로, 행을 그룹화하려면 `kind`로 일치시키세요. 이후 Claude Code 버전은 설치된 타입에 나열되지 않은 값을 보낼 수 있으므로, 인식하지 못하는 `id`는 없는 것으로 처리하세요 |

1013| `mcpInstructions` | 응답 | 지침을 제공하는 연결된 MCP 서버마다 `{ serverName, tokens }` 항목 하나, 또는 제공하는 서버가 없으면 빈 배열입니다. `tokens` 값은 합계가 `mcp_instructions` 행의 `tokens`가 되는 추정치입니다. `serverName`은 해당 서버에 대해 [`mcpServerStatus()`](#query-object)가 보고하는 `name`입니다 |

1014| `pluginId` | `agents` 및 `skills.skillFrontmatter` 항목 | 항목의 출처인 플러그인을 `name@marketplace` 형식의 ID로 명시하며, 플러그인에서 오지 않은 항목에는 없습니다. 플러그인이 마켓플레이스에서 오지 않은 경우 `@` 뒤의 부분은 대신 [그 출처](/docs/ko/plugins/loading#find-where-a-plugin-came-from)를 나타냅니다. 예를 들어 [`plugins`](#options) 옵션으로 로드한 플러그인은 `inline`입니다 |

1015| `path` | `agents` 및 `skills.skillFrontmatter` 항목 | Claude Code가 실행되는 머신에서 에이전트 또는 스킬을 정의하는 파일의 절대 경로입니다. [`agents`](#options) 옵션의 에이전트나 Claude Code에 기본 제공되는 스킬처럼 항목을 정의하는 파일이 없으면 이 필드는 없습니다 |

1016 

1017`id`로 일치시키는 예로, 다음 샘플은 `mcp_instructions` 행을 찾습니다.

1018 

1019```typescript theme={null}

1020// q is the Query object that query() returned

1021const usage = await q.getContextUsage();

1022// undefined if no connected server supplies instructions

1023const row = usage.categories.find((c) => c.id === "mcp_instructions");

1024```

1025 

981### `SDKControlReadFileResponse`1026### `SDKControlReadFileResponse`

982 1027 

983[`readFile()`](#query-object)의 반환 타입입니다.1028[`readFile()`](#query-object)의 반환 타입입니다.


2987 3032 

2988기본 제공 Claude Code 도구의 입력 스키마 문서입니다. 이 타입은 `@anthropic-ai/claude-agent-sdk/sdk-tools`에서 내보내지며 타입 안전 도구 상호작용에 사용할 수 있습니다.3033기본 제공 Claude Code 도구의 입력 스키마 문서입니다. 이 타입은 `@anthropic-ai/claude-agent-sdk/sdk-tools`에서 내보내지며 타입 안전 도구 상호작용에 사용할 수 있습니다.

2989 3034 

3035`StructuredOutput` 도구는 여기에 타입이 없습니다. Claude Code는 `outputFormat`에 전달한 스키마로부터 입력 스키마를 빌드하므로 내보낼 고정된 타입이 없습니다. 메시지 스트림에서 해당 호출이 어떻게 보이는지는 [StructuredOutput 도구 호출 인식하기](/docs/ko/agent-sdk/structured-outputs#recognize-the-structuredoutput-tool-call)를 참조하세요.

3036 

2990### `ToolInputSchemas`3037### `ToolInputSchemas`

2991 3038 

2992`@anthropic-ai/claude-agent-sdk/sdk-tools`에서 내보낸 도구 입력 타입의 합집합입니다. 멤버는 다음을 포함합니다:3039`@anthropic-ai/claude-agent-sdk/sdk-tools`에서 내보낸 도구 입력 타입의 합집합입니다. 멤버는 다음을 포함합니다:


5202* **호출이 이름을 지정하지 않는 서버**: [클라우드 세션](/docs/ko/claude-code-on-the-web) 외부에서 Claude Code는 이전 `setMcpServers()` 호출이 추가한 서버와 인프로세스 SDK 서버의 연결을 끊고 이를 `removed`에 나열합니다. 다른 서버는 계속 실행되며 `removed`에 나열되지 않습니다. 여기에는 [`mcpServers`](#options) 옵션의 stdio, HTTP 및 SSE 서버, 설정 파일의 서버, 플러그인 제공 서버가 포함됩니다.5249* **호출이 이름을 지정하지 않는 서버**: [클라우드 세션](/docs/ko/claude-code-on-the-web) 외부에서 Claude Code는 이전 `setMcpServers()` 호출이 추가한 서버와 인프로세스 SDK 서버의 연결을 끊고 이를 `removed`에 나열합니다. 다른 서버는 계속 실행되며 `removed`에 나열되지 않습니다. 여기에는 [`mcpServers`](#options) 옵션의 stdio, HTTP 및 SSE 서버, 설정 파일의 서버, 플러그인 제공 서버가 포함됩니다.

5203* **호출이 이름을 지정하는 서버**: Claude Code는 이전 `setMcpServers()` 호출이 추가한 stdio, HTTP 또는 SSE 서버를 해당 구성이 전달한 것과 다를 때만 교체합니다. 해당 이름으로 이미 등록된 인프로세스 SDK 서버는 그대로 유지되므로, 이를 교체하려면 한 호출에서 제외한 다음 호출에서 추가하세요.5250* **호출이 이름을 지정하는 서버**: Claude Code는 이전 `setMcpServers()` 호출이 추가한 stdio, HTTP 또는 SSE 서버를 해당 구성이 전달한 것과 다를 때만 교체합니다. 해당 이름으로 이미 등록된 인프로세스 SDK 서버는 그대로 유지되므로, 이를 교체하려면 한 호출에서 제외한 다음 호출에서 추가하세요.

5204* **CLI가 시작 시 시작한 기본 제공 서버**: 호출이 하나를 이름으로 지정하면, Claude Code는 해당 항목을 삭제하고 `errors`에서 보고합니다.5251* **CLI가 시작 시 시작한 기본 제공 서버**: 호출이 하나를 이름으로 지정하면, Claude Code는 해당 항목을 삭제하고 `errors`에서 보고합니다.

5252* **`.mcp.json`과 같은 MCP 설치 범위의 서버와 이름이 같은 stdio, HTTP 또는 SSE 서버**: 해당 이름에 대해 세션은 [설치 범위 서버](/docs/ko/mcp#mcp-installation-scopes)의 도구 대신 사용자의 서버 도구를 사용합니다. Claude Code v2.1.305 이전에는 앱이 [플러그인을 다시 로드](#query-object)할 때 Claude Code가 사용자의 서버 연결을 끊고 설치 범위 서버를 연결할 수 있었습니다.

5205 5253 

5206프로미스는 새로 추가된 stdio, HTTP 및 SSE 서버가 연결되거나 실패한 후 해결되므로, 연결된 서버의 도구는 다음 턴에서 사용 가능합니다.5254프로미스는 새로 추가된 stdio, HTTP 및 SSE 서버가 연결되거나 실패한 후 해결되므로, 연결된 서버의 도구는 다음 턴에서 사용 가능합니다.

5207 5255 

agent-teams.md +5 −3

Details

34| | Subagents | 에이전트 팀 |34| | Subagents | 에이전트 팀 |

35| :- | :- | :- |35| :- | :- | :- |

36| **컨텍스트** | 자신의 컨텍스트 윈도우; 결과는 호출자에게 반환됨 | 자신의 컨텍스트 윈도우; 완전히 독립적 |36| **컨텍스트** | 자신의 컨텍스트 윈도우; 결과는 호출자에게 반환됨 | 자신의 컨텍스트 윈도우; 완전히 독립적 |

37| **통신** | 호출자에게 결과를 반환합니다. Claude가 생성할 때 이름을 지정한 Subagents는 [서로 메시지를 전달](/docs/ko/sub-agents#what-loads-at-startup)할 수도 있습니다 | 팀원들이 서로 직접 메시지 전송 |37| **통신** | 호출자에게 결과를 반환합니다. Claude가 생성할 때 [이름을 지정한](/docs/ko/sub-agents#subagent-names) 서브에이전트는 [서로 메시지를 전달](/docs/ko/sub-agents#what-loads-at-startup)할 수도 있습니다 | 팀원들이 서로 직접 메시지 전송 |

38| **조율** | 메인 에이전트가 모든 작업 관리 | [Task 도구가 있는 에이전트](/docs/ko/tools-reference#task-tool-availability)의 경우 메시지와 공유 작업 목록을 통한 자체 조율 |38| **조율** | 메인 에이전트가 모든 작업 관리 | [Task 도구가 있는 에이전트](/docs/ko/tools-reference#task-tool-availability)의 경우 메시지와 공유 작업 목록을 통한 자체 조율 |

39| **최적 용도** | 결과만 중요한 집중된 작업 | 논의와 협업이 필요한 복잡한 작업 |39| **최적 용도** | 결과만 중요한 집중된 작업 | 논의와 협업이 필요한 복잡한 작업 |

40| **토큰 비용** | 낮음: 결과가 메인 컨텍스트로 요약됨 | 높음: 각 팀원이 별도의 Claude 인스턴스 |40| **토큰 비용** | 낮음: 결과가 메인 컨텍스트로 요약됨 | 높음: 각 팀원이 별도의 Claude 인스턴스 |


166Spawn an architect teammate to refactor the authentication module.166Spawn an architect teammate to refactor the authentication module.

167```167```

168 168 

169팀원이 계획을 마치면, 리더에게 계획 승인 요청을 보냅니다. Claude Code는 리더가 검토하지 않고도 요청이 도착하는 즉시 리더의 세션에서 계획을 승인합니다. 팀원의 편집 및 명령은 여전히 [Permissions](#permissions)에 설명된 권한 프롬프트를 거칩니다. 승인되면, 팀원은 plan mode를 종료하고 구현을 시작합니다.169해당 팀원이 계획을 마치면, 리더에게 계획 승인 요청을 보냅니다. 팀원이 생성된 이후 해당 팀원의 권한 모드를 변경하지 않았다면, Claude Code는 리더의 검토 없이 요청이 도착하는 즉시 계획을 승인합니다. 팀원의 편집 및 명령은 여전히 [Permissions](#permissions)에 설명된 권한 프롬프트를 거칩니다. 승인되면, 팀원은 플랜 모드를 종료하고 구현을 시작합니다.

170 

171실행 중인 in-process 팀원의 세션을 보는 동안 [`Shift+Tab`](/docs/ko/permission-modes#switch-permission-modes)을 눌러 해당 팀원을 플랜 모드로 전환하면, Claude Code가 승인하는 대신 리더가 해당 실행의 계획을 검토합니다. 사용자에게는 승인을 요청하지 않으며, 리더가 계획을 승인하거나 수정을 위해 되돌려 보냅니다.

170 172 

171### 팀원과 직접 대화하기173### 팀원과 직접 대화하기

172 174 


286 288 

287팀원들은 리더의 권한 모드로 시작하며, [`dontAsk` 모드](/docs/ko/permission-modes#allow-only-pre-approved-tools-with-dontask-mode) 제외하고, 이는 상속하지 않습니다. 리더가 `--dangerously-skip-permissions`로 실행되면, 모든 팀원도 그렇게 합니다. 생성 후, 개별 팀원의 권한 모드를 변경할 수 있지만, 생성 시 팀원별 권한 모드를 설정할 수 없습니다.289팀원들은 리더의 권한 모드로 시작하며, [`dontAsk` 모드](/docs/ko/permission-modes#allow-only-pre-approved-tools-with-dontask-mode) 제외하고, 이는 상속하지 않습니다. 리더가 `--dangerously-skip-permissions`로 실행되면, 모든 팀원도 그렇게 합니다. 생성 후, 개별 팀원의 권한 모드를 변경할 수 있지만, 생성 시 팀원별 권한 모드를 설정할 수 없습니다.

288 290 

289팀원 권한 프롬프트는 리더 세션에 나타나므로, 거기서 직접 승인합니다. [계획 승인](#have-teammates-plan-before-implementing)은 설계된 예외입니다: 리더 세션은 사용자에게 별도의 프롬프트 없이 팀원 계획 승인을 부여합니다.291팀원 권한 프롬프트는 리더 세션에 나타나므로, 거기서 직접 승인합니다. [팀원의 계획](#have-teammates-plan-before-implementing)은 직접 승인할 필요가 없습니다.

290 292 

291#### 에이전트 간 메시지293#### 에이전트 간 메시지

292 294 

agent-view.md +92 −34

Details

276 276 

277약 10초가 지나면 Claude Code는 더 이상 기다리지 않고 세션을 백그라운드로 보냅니다. 단, 다음과 같은 경우는 예외입니다:277약 10초가 지나면 Claude Code는 더 이상 기다리지 않고 세션을 백그라운드로 보냅니다. 단, 다음과 같은 경우는 예외입니다:

278 278 

279* **포그라운드 서브에이전트가 여전히 실행 중인 경우**: Claude Code는 Claude가 시작한 [포그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)의 작업이 이월되도록 계속 기다리며, `Still backgrounding after the current tool`을 표시합니다. 기다리지 않고 백그라운드로 보내려면 `←`를 다시 누릅니다. 이 경우 해당 서브에이전트가 처음부터 다시 시작됩니다.279* **포그라운드 서브에이전트가 아직 실행 중인 경우**: Claude Code는 Claude가 시작한 [포그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)의 작업이 이어지도록 계속 대기하며 `Still backgrounding after the current tool`을 표시합니다. 기다리지 않고 백그라운드로 전환하려면 `←`를 다시 누릅니다. 이 경우 해당 서브에이전트는 처음부터 다시 시작됩니다.

280* **권한 프롬프트 또는 질문이 답변을 기다리는 경우**: 권한 프롬프트나 Claude가 한 질문이 대기하는 동안 Claude Code는 계속 기다리며 `Still backgrounding after the current tool — a question is waiting for your answer.`를 표시합니다. 권한 프롬프트에서 **Yes**를 선택하는 것처럼 답변으로 턴이 계속되면 Claude Code는 현재 도구가 완료될 때 세션을 백그라운드로 보냅니다.280* **권한 프롬프트 또는 질문이 답변을 기다리는 경우**: 권한 프롬프트나 Claude가 한 질문이 대기하는 동안 Claude Code는 계속 기다리며 `Still backgrounding after the current tool — a question is waiting for your answer.`를 표시합니다. 권한 프롬프트에서 **Yes**를 선택하는 것처럼 답변으로 턴이 계속되면 Claude Code는 현재 도구가 완료될 때 세션을 백그라운드로 보냅니다.

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

282* **턴을 중지하는 경우**: Claude Code는 전환을 취소하고 `Backgrounding cancelled — the turn was stopped.`를 표시합니다. 예를 들어 [`Esc`로 Claude를 중단](/docs/ko/interactive-mode#general-controls)하거나, 메인 대화의 권한 프롬프트에서 [코멘트 없이](/docs/ko/permissions#add-a-comment-when-you-answer-a-permission-prompt) **No**를 선택하거나, 메인 대화에서 Claude가 한 질문에 `Esc`를 누르면 턴이 중지됩니다. 세션을 백그라운드로 보내려면 `←`를 다시 누릅니다.282* **턴을 중지하는 경우**: Claude Code는 전환을 취소하고 `Backgrounding cancelled — the turn was stopped.`를 표시합니다. 예를 들어 [`Esc`로 Claude를 중단](/docs/ko/interactive-mode#general-controls)하거나, 메인 대화의 권한 프롬프트에서 [코멘트 없이](/docs/ko/permissions#add-a-comment-when-you-answer-a-permission-prompt) **No**를 선택하거나, 메인 대화에서 Claude가 한 질문에 `Esc`를 누르면 턴이 중지됩니다. 세션을 백그라운드로 보내려면 `←`를 다시 누릅니다.

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

284 284 


288 288 

289`/config`에서 [`leftArrowOpensAgents`](/docs/ko/settings-reference#leftarrowopensagents) 설정으로 포그라운드 세션의 이 단축키를 끌 수 있습니다.289`/config`에서 [`leftArrowOpensAgents`](/docs/ko/settings-reference#leftarrowopensagents) 설정으로 포그라운드 세션의 이 단축키를 끌 수 있습니다.

290 290 

291##### 세션이 백그라운드로 이동할 때 전송된 프롬프트

292 

293세션이 백그라운드로 이동하는 순간 프롬프트나 `!` 셸 명령을 입력하면 중지되거나 전송되지 않은 채로 남습니다:

294 

295* **대화가 닫힐 때 전송된 경우**: 대화가 닫히고 에이전트 뷰가 열릴 때 응답 또는 명령이 중지됩니다

296* **그 순간 아직 [훅](/docs/ko/hooks)을 기다리는 경우**: 프롬프트가 전송되지 않으며, 화면에는 이를 알리는 표시가 없습니다. [`SessionStart` 훅](/docs/ko/hooks#sessionstart)이 아직 실행 중일 때 입력한 프롬프트도 이에 해당합니다

297 

298두 경우 모두 입력한 텍스트는 [프롬프트 기록](/docs/ko/interactive-mode#command-history)에 유지됩니다. 다시 전송하려면 백그라운드로 보낸 세션을 열고 프롬프트에서 `↑`를 눌러 텍스트를 다시 불러옵니다.

299 

291### 목록 구성300### 목록 구성

292 301 

293에이전트 뷰는 입력이 필요한 세션이 맨 위에 오도록 세션을 그룹화하며, `Ready for review`와 `Needs input`이 `Working`과 `Completed` 위에 있습니다. 이 그룹 이름은 위의 [상태](#read-session-state)와 일대일로 대응하지 않습니다: 세션에 검토가 필요하거나 검사가 실패한 열린 풀 리퀘스트가 있으면 `Ready for review`로 이동하고, `Completed`는 완료된 세션, 실패한 세션, 중지된 세션을 함께 모읍니다.302에이전트 뷰는 입력이 필요한 세션이 맨 위에 오도록 세션을 그룹화하며, `Ready for review`와 `Needs input`이 `Working`과 `Completed` 위에 있습니다. 이 그룹 이름은 위의 [상태](#read-session-state)와 일대일로 대응하지 않습니다: 세션에 검토가 필요하거나 검사가 실패한 열린 풀 리퀘스트가 있으면 `Ready for review`로 이동하고, `Completed`는 완료된 세션, 실패한 세션, 중지된 세션을 함께 모읍니다.


300* `Shift+↑` 또는 `Shift+↓`를 눌러 세션 순서 변경309* `Shift+↑` 또는 `Shift+↓`를 눌러 세션 순서 변경

301* `Ctrl+R`을 눌러 세션 이름 바꾸기310* `Ctrl+R`을 눌러 세션 이름 바꾸기

302* 그룹 헤더에서 `Enter`를 눌러 축소. 단, [필터](#filter-sessions)가 활성화된 동안에는 모든 그룹이 펼쳐진 상태로 유지됩니다311* 그룹 헤더에서 `Enter`를 눌러 축소. 단, [필터](#filter-sessions)가 활성화된 동안에는 모든 그룹이 펼쳐진 상태로 유지됩니다

312* `Ctrl+X`를 눌러 세션을 중지하고 2초 이내에 `Ctrl+X`를 다시 눌러 목록에서 삭제하거나, `Esc`를 눌러 삭제하지 않고 확인을 닫습니다. 두 번째 누름은 예를 들어 [백그라운드 서비스가 응답하지 않아](#agent-view-says-the-background-service-did-not-respond) 중지 시도가 실패할 때도 세션을 삭제합니다. 이 경우 확인은 2초 더 활성 상태로 유지되고, 삭제는 세션의 프로세스를 직접 종료합니다

303 313 

304세션을 목록에서 제거하려면 `Ctrl+X`를 눌러 중지하고 2초 이내에 `Ctrl+X`를 다시 눌러 삭제합니다. 그룹 헤더에서 `Ctrl+X`를 누르면 확인 후 해당 그룹의 모든 세션이 삭제됩니다.314그룹 헤더에서 `Ctrl+X`를 누르면 확인 후 해당 그룹의 모든 세션이 삭제됩니다. [세션 삭제가 제거하는 것](#what-deleting-a-session-removes)에서 다루는 유지되는 경우를 제외하고, 삭제하면 세션이 목록에서 제거됩니다. Claude가 세션을 위해 생성한 worktree는 삭제 방법과 worktree가 보유한 내용에 따라 제거, 유지 또는 제자리에 남겨집니다. 대화 트랜스크립트는 로컬 머신에 남아 있으며 `claude --resume`을 통해 사용할 수 있습니다.

305 315 

306두 번째 누름은 예를 들어 [백그라운드 서비스가 응답하지 않아](#agent-view-says-the-background-service-did-not-respond) 중지 시도가 실패할 때도 세션을 삭제합니다: 확인은 2초 더 활성 상태로 유지되고, 삭제는 세션의 프로세스를 직접 종료합니다. 삭제하지 않고 확인을 닫으려면 `Esc`를 누릅니다.316화면에 맞지 않는 완료된 세션은 `… N more` 행으로 접힙니다. `Completed` 그룹은 라이브 그룹 이후 남은 수직 공간을 채웁니다. 짧은 터미널에서는 헤더가 단일 요약 줄로 압축되므로 작업 중이거나 입력이 필요한 세션이 계속 표시됩니다.

307 317 

308[세션 삭제가 제거하는 것](#what-deleting-a-session-removes)에서 다루는 유지되는 경우를 제외하고, 삭제하면 세션이 목록에서 제거되고, Claude가 생성한 worktree는 삭제 방법과 worktree가 보유한 내용에 따라 제거, 유지 또는 제자리에 남겨집니다. 대화 트랜스크립트는 로컬 머신에 남아 있으며 `claude --resume`을 통해 사용할 수 있습니다.318#### 과거 세션 다시 가져오기

309 319 

310Claude Code v2.1.212 이상에서 세션을 다시 가져오려면 디스패치 입력에 `/resume`을 입력합니다. 피커가 열리며 에이전트 뷰를 연 저장소의 과거 세션이 최신순으로 표시되며, 목록에서 삭제한 세션을 포함합니다. 이미 행이 있는 세션은 나열되지 않습니다. `↑`/`↓`는 선택을 이동하고, `Enter`는 선택된 세션을 백그라운드 세션으로 재개하여 목록에 행으로 다시 추가하고, `Esc`는 피커를 닫습니다.320Claude Code v2.1.212 이상에서 세션을 다시 가져오려면 [디스패치 입력](#dispatch-an-agent-from-agent-view)에 `/resume`을 입력합니다. 피커가 열리며 에이전트 뷰를 연 저장소의 과거 세션이 최신순으로 표시되며, 목록에서 삭제한 세션을 포함합니다. 이미 행이 있는 세션은 나열되지 않습니다. `Enter`를 눌러 선택된 세션을 백그라운드 세션으로 재개하면 목록에 행으로 다시 추가됩니다.

311 321 

312피커는 인수 없는 `/resume`에만 열립니다. 대상이 지정되거나, 범위가 지정되거나, 제한된 재개는 피커로 처리할 수 없으므로 에이전트 뷰는 다음과 같은 경우 대신 `attach to a session to run it` 힌트를 표시합니다:322다음과 같은 경우 `/resume`은 `isn't available in agent view`와 함께 실패합니다:

313 323 

314* `/resume`이 id 또는 검색어를 지정하는 경우324* `/resume`이 id 또는 검색어를 지정하는 경우

315* 뷰가 `--cwd`로 범위가 지정된 경우325* 뷰가 `--cwd`로 범위가 지정된 경우

316* 뷰가 [`--safe-mode`](/docs/ko/cli-reference#cli-flags)로 시작된 경우326* 뷰가 [`--safe-mode`](/docs/ko/cli-reference#cli-flags)로 시작된 경우

317* 뷰가 `--permission-mode` 또는 `--settings`와 같은 플래그로 열린 경우327* 뷰가 `--permission-mode` 또는 `--settings`와 같은 플래그로 열린 경우

318 328 

319화면에 맞지 않는 완료된 세션은 `… N more` 행으로 접힙니다. `Completed` 그룹은 라이브 그룹 이후 남은 수직 공간을 채우며, 짧은 터미널에서는 헤더가 단일 요약 줄로 압축되므로 작업 중이거나 입력이 필요한 세션이 계속 표시됩니다.329`/resume` 뒤에 무언가를 입력했다면 그 부분 없이 다시 입력합니다. 이러한 플래그 중 하나를 사용했다면 셸에서 해당 플래그 없이 `claude agents`를 실행한 다음 `/resume`만 입력합니다.

320 330 

321### 세션 필터링331### 세션 필터링

322 332 


361| `Ctrl+X` | 세션 중지; 2초 이내에 다시 눌러 삭제 |371| `Ctrl+X` | 세션 중지; 2초 이내에 다시 눌러 삭제 |

362| `Shift+↑` / `Shift+↓` | 선택된 세션 순서 변경 |372| `Shift+↑` / `Shift+↓` | 선택된 세션 순서 변경 |

363| `Esc` | 엿보기 패널 닫기, 입력 지우기 또는 종료. `←`로 세션을 백그라운드로 보내 에이전트 뷰를 연 경우 최종 `Esc`는 종료 대신 해당 대화로 돌아갑니다. [vim 편집기 모드](/docs/ko/interactive-mode#vim-editor-mode)가 켜져 있으면 입력에서 `Esc`를 누르면 메인 프롬프트처럼 INSERT에서 NORMAL 모드로 전환되고 텍스트가 유지됩니다 |373| `Esc` | 엿보기 패널 닫기, 입력 지우기 또는 종료. `←`로 세션을 백그라운드로 보내 에이전트 뷰를 연 경우 최종 `Esc`는 종료 대신 해당 대화로 돌아갑니다. [vim 편집기 모드](/docs/ko/interactive-mode#vim-editor-mode)가 켜져 있으면 입력에서 `Esc`를 누르면 메인 프롬프트처럼 INSERT에서 NORMAL 모드로 전환되고 텍스트가 유지됩니다 |

364| `Ctrl+C` | 입력 지우기; 두 번 눌러 종료 |374| `Ctrl+C` | 입력 지우기; 두 번 눌러 종료. 화면의 텍스트가 선택된 동안에는 대신 선택을 해제하며, [선택 시 이미 복사된](/docs/ko/settings-reference#copyonselect) 경우가 아니면 먼저 복사합니다 |

365| `?` | 단축키 표시 |375| `?` | 단축키 표시 |

366 376 

367[`Agents` 컨텍스트](/docs/ko/keybindings#agents-actions)에 작업이 있는 단축키는 [`keybindings.json`](/docs/ko/keybindings)을 따릅니다. `Ctrl+G`도 `Chat` 컨텍스트의 `chat:externalEditor` 바인딩을 통해 마찬가지로 따릅니다.377[`Agents` 컨텍스트](/docs/ko/keybindings#agents-actions)에 작업이 있는 단축키는 [`keybindings.json`](/docs/ko/keybindings)을 따릅니다. `Ctrl+G`도 `Chat` 컨텍스트의 `chat:externalEditor` 바인딩을 통해 마찬가지로 따릅니다.


395 405 

396* `/exit` 및 `/quit`는 에이전트 뷰를 닫습니다406* `/exit` 및 `/quit`는 에이전트 뷰를 닫습니다

397* `/logout`은 로그아웃합니다407* `/logout`은 로그아웃합니다

398* `/model`은 [디스패치 모델](#set-the-model)을 설정합니다408* `/model`, `/effort`, `/fast`는 [다음에 디스패치하는 세션이 시작할 때 사용할 값](#set-the-model-effort-and-fast-mode)을 설정합니다. `/effort`와 `/fast`는 Claude Code v2.1.299 이상이 필요합니다.

399* `/login`은 세션에 연결하지 않고 다시 로그인할 수 있도록 로그인 대화 상자를 엽니다409* `/login`은 세션에 연결하지 않고 다시 로그인할 수 있도록 로그인 대화 상자를 엽니다

400* 인수 없는 `/resume` 또는 그 별칭 `/continue`는 저장소의 과거 세션 선택기를 열어 하나를 백그라운드 세션으로 [다시 가져옵니다](#organize-the-list). Claude Code v2.1.212 이상이 필요합니다410* 인수 없는 `/resume` 또는 그 별칭 `/continue`는 저장소의 과거 세션 선택기를 열어 하나를 백그라운드 세션으로 [다시 가져옵니다](#bring-back-a-past-session). Claude Code v2.1.212 이상이 필요합니다

401 411 

402스킬, 사용자 정의 명령, 그리고 `/init`과 같은 프롬프트 확장 기본 제공 명령은 새로운 백그라운드 세션에 첫 번째 프롬프트로 전송됩니다. 다른 기본 제공 명령은 대신 `attach to a session to run it` 힌트를 표시합니다. 입력한 모든 내용이 힌트 옆의 입력에 남아 있으므로 편집할 수 있습니다.412스킬, 사용자 정의 명령, 그리고 `/init`과 같은 프롬프트 확장 기본 제공 명령은 새로운 백그라운드 세션에 첫 번째 프롬프트로 전송됩니다. `isn't available in agent view` 힌트는 입력한 기본 제공 명령이 실행되지 않았음을 의미합니다. 이를 실행하려면 [세션에 연결](#attach-to-a-session)하여 그곳에서 입력합니다. 입력한 모든 내용이 힌트 옆의 입력에 남아 있으므로 편집할 수 있습니다.

403 413 

404반복되는 작업을 [스킬](/docs/ko/skills)로 패키징하면 프롬프트를 다시 입력하지 않고도 에이전트 뷰에서 동일한 워크플로를 반복적으로 시작할 수 있습니다.414반복되는 작업을 [스킬](/docs/ko/skills)로 패키징하면 프롬프트를 다시 입력하지 않고도 에이전트 뷰에서 동일한 워크플로를 반복적으로 시작할 수 있습니다.

405 415 


458 468 

459#### 백그라운드로 이동할 때 이어지는 것469#### 백그라운드로 이동할 때 이어지는 것

460 470 

461백그라운드로 이동하면 저장된 대화에서 재개하는 새 프로세스가 시작되며, 진행 중인 백그라운드 작업이 그 프로세스로 이동합니다. 실행 중인 백그라운드 셸 명령, 백그라운드로 보낸 서브에이전트, 동적 워크플로, [`/loop`](/docs/ko/scheduled-tasks)로 생성한 예약 작업, 그리고 Claude의 [아티팩트 댓글에 대한 자동 회신](/docs/ko/artifacts#let-claude-reply-to-comments-on-its-own)이 모두 이어져 그곳에서 계속 실행됩니다. 서브에이전트는 자신이 시작한 모든 것과 함께 이동하므로, 그 작업이 모두 이동할 수 있을 때만 이어집니다. 진행 중인 백그라운드 작업을 이어가는 대신 중지하려면 [`CLAUDE_DISABLE_ADOPT=1`](/docs/ko/env-vars#variables) 환경 변수를 설정합니다. 그러면 Claude Code는 백그라운드로 이동하기 전에 확인을 요청합니다.471백그라운드로 이동하면 저장된 대화에서 재개하는 새 프로세스가 시작되며, 진행 중인 백그라운드 작업이 그 프로세스로 이동합니다. 실행 중인 백그라운드 셸 명령, 백그라운드로 보낸 서브에이전트, 동적 워크플로, [`/loop`](/docs/ko/scheduled-tasks)로 생성한 예약 작업, 그리고 Claude의 [아티팩트 댓글에 대한 자동 회신](/docs/ko/artifacts#let-claude-reply-to-comments-on-its-own)이 모두 이어져 그곳에서 계속 실행됩니다. 서브에이전트는 자신이 시작한 모든 것과 함께 이동하므로, 그 작업이 모두 이동할 수 있을 때만 이어집니다.

462 472 

463[동적 워크플로](/docs/ko/workflows)에 아직 실행 중인 서브에이전트가 있으면, Claude Code는 백그라운드로 이동하기 전에 `Background this session?` 대화 상자로 묻고, 몇 개의 서브에이전트가 재시작되는지 알려줍니다. 먼저 완료되도록 하려면 `Stay`를 선택합니다. 확인하면 Claude Code는 백그라운드 세션에서 실행을 재생합니다. 아직 실행 중이던 서브에이전트는 처음부터 다시 시작되므로, 지금까지 사용한 토큰이 다시 소비됩니다. 완료된 서브에이전트 중 어떤 것이 저장된 결과를 반환하고 어떤 것이 다시 실행되는지는 [일시 중지 후 재개](/docs/ko/workflows#resume-after-a-pause)를 참조하세요.473[동적 워크플로](/docs/ko/workflows)에 아직 실행 중인 서브에이전트가 있으면, Claude Code는 백그라운드로 이동하기 전에 `Background this session?` 대화 상자로 묻고, 몇 개의 서브에이전트가 재시작되는지 알려줍니다. 먼저 완료되도록 하려면 `Stay`를 선택합니다. 확인하면 Claude Code는 백그라운드 세션에서 실행을 재생합니다. 아직 실행 중이던 서브에이전트는 처음부터 다시 시작되므로, 지금까지 사용한 토큰이 다시 소비됩니다. 완료된 서브에이전트 중 어떤 것이 저장된 결과를 반환하고 어떤 것이 다시 실행되는지는 [일시 중지 후 재개](/docs/ko/workflows#resume-after-a-pause)를 참조하세요.

464 474 


526 claude stop 7c5dcf5d stop this session536 claude stop 7c5dcf5d stop this session

527```537```

528 538 

539#### `--bg`가 포함된 프롬프트

540 

541`--bg` 또는 `--background`를 언급하는 프롬프트는 입력한 그대로 전달되며, 백그라운드 세션에 보내는 `--bg` 회신도 마찬가지입니다. 예를 들어 다음 명령은 백그라운드 세션 하나를 시작하며, 두 번째 `--bg`는 해당 프롬프트의 일부입니다:

542 

543```bash theme={null}

544claude --bg "find out why --bg sessions are slow to start on this machine"

545```

546 

547Claude Code는 플래그가 올 수 있는 위치, 즉 단독 `--` 구분자 앞이면서 다른 플래그가 값을 기대하는 위치가 아닌 곳에서만 인수 전체를 플래그로 읽습니다. `claude --bg "<prompt>"`처럼 플래그를 먼저 둡니다.

548 

549결합된 짧은 플래그가 연속된 뒤처럼 위치가 모호한 경우 Claude Code는 아무것도 시작하지 않습니다. 대신 [`Couldn't tell whether --bg is a flag or text here`](/docs/ko/errors#couldnt-tell-whether-bg-is-a-flag-or-text) 오류로 종료합니다.

550 

529#### 셸 명령 실행551#### 셸 명령 실행

530 552 

531Claude 세션 대신 셸 명령을 백그라운드 작업으로 실행하려면 `--exec`을 전달합니다. 다음 예제는 `pytest -x`를 백그라운드 작업으로 실행합니다:553Claude 세션 대신 셸 명령을 백그라운드 작업으로 실행하려면 `--exec`을 전달합니다. 다음 예제는 `pytest -x`를 백그라운드 작업으로 실행합니다:


626 648 

627어느 방법이든 완료된 다른 세션의 기록에 지정된 디렉터리는 유지됩니다.649어느 방법이든 완료된 다른 세션의 기록에 지정된 디렉터리는 유지됩니다.

628 650 

629### 모델 설정651### 모델, effort, 빠른 모드 설정

630 652 

631에이전트 뷰 헤더에 표시된 모델 이름은 디스패치 기본값입니다. 입력에서 시작하는 새 세션은 이 모델을 사용하며, 이 모델은 사용자 설정의 [`model` 설정](/docs/ko/settings-reference#model)에서 가져옵니다. [`/model` 선택기](/docs/ko/model-config)에서 모델을 선택하거나 설정을 직접 편집하여 지정합니다.653에이전트 뷰의 [디스패치 입력](#dispatch-an-agent-from-agent-view)에 `/model`, `/effort`, 또는 `/fast`를 입력하고 `Enter`를 누르면, 이후 디스패치하는 세션이 설정한 값으로 시작합니다. 이 선택은 해당 에이전트 뷰 창에만 유지되며 설정 파일에 저장되지 않습니다. `/effort`와 `/fast`는 Claude Code v2.1.299 이상이 필요하며, 뒤에 아무것도 입력하지 않은 `/model`도 마찬가지입니다.

632 654 

633에이전트 뷰 세션 전체에 대해 디스패치 기본값을 재정의하려면 에이전트 뷰를 열 때 `--model`을 전달합니다. [권한 모드, 모델, effort](#permission-mode-model-and-effort)를 참조하세요.655명령 뒤에 값을 지정하거나, 명령만 입력하여 목록에서 선택합니다:

634 656 

635에이전트 뷰 안에서 디스패치 기본값을 변경하려면 디스패치 입력에 `/model`과 모델 이름을 입력하고 `Enter`를 누릅니다. 헤더가 `(session)` 마커와 함께 해당 모델을 표시하도록 업데이트되며, 이후 디스패치하는 세션은 이 모델을 사용합니다. 재정의를 지우고 디스패치 기본값으로 돌아가려면 `/model default`를 입력합니다. 이 재정의는 현재 `claude agents` 실행이 끝날 때까지 유지되며 설정 파일에 기록되지 않습니다. 다음 예제는 한 세션을 Opus로, 다음 세션을 Sonnet으로 디스패치합니다:657* **모델**: `/model <name>`, 예: `/model opus`

658* **[effort 수준](/docs/ko/model-config#adjust-effort-level)**: `/effort`와 함께 `low`, `medium`, `high`, `xhigh`, 또는 `max`, 예: `/effort high`. [ultracode](/docs/ko/workflows#let-claude-decide-with-ultracode)로 세션을 시작하려면 대신 셸에서 [`claude agents --effort ultracode`](#dispatch-defaults)로 에이전트 뷰를 엽니다. 디스패치 입력은 `/effort ultracode`를 허용하지 않습니다

659* **빠른 모드**: `/fast on` 또는 `/fast off`. 세션은 빠른 모드를 [사용할 수 있고](/docs/ko/fast-mode#requirements) 해당 모델이 빠른 모드를 지원하는 경우에만 빠른 모드로 시작합니다. 지원하지 않는 모델에서는 세션이 빠른 모드가 꺼진 상태로 시작하므로, 먼저 `/model`로 [빠른 모드를 지원하는 모델](/docs/ko/fast-mode) 중 하나를 선택합니다. 새 세션에 빠른 모드가 적용되는지는 헤더가 아니라 입력 아래의 힌트에서 확인할 수 있습니다.

660 

661선택을 취소하려면 값으로 `default`를 지정합니다. 예: `/effort default`.

662 

663다음 예제는 한 세션을 Opus로, 다음 세션을 Sonnet으로 디스패치합니다:

636 664 

637```text theme={null}665```text theme={null}

638/model opus666/model opus


645 673 

646* 셸에서 `claude --bg`와 함께 `--model`을 전달합니다.674* 셸에서 `claude --bg`와 함께 `--model`을 전달합니다.

647* 실행 중인 세션에 연결하고 `/model`을 실행하여 전환합니다. 선택기에서 고르거나 `/model <name>`을 입력한 선택은, 선택기에서 `s`를 눌러 세션 전용으로 전환하지 않는 한 새 세션의 기본값으로 저장됩니다. 세션 전용 전환은 세션이 다시 생성되어도 유지됩니다.675* 실행 중인 세션에 연결하고 `/model`을 실행하여 전환합니다. 선택기에서 고르거나 `/model <name>`을 입력한 선택은, 선택기에서 `s`를 눌러 세션 전용으로 전환하지 않는 한 새 세션의 기본값으로 저장됩니다. 세션 전용 전환은 세션이 다시 생성되어도 유지됩니다.

648* frontmatter에 `model` 필드가 설정된 [서브에이전트](/docs/ko/sub-agents)를 디스패치합니다.676* frontmatter에 `model`을 설정한 [서브에이전트](/docs/ko/sub-agents)를, 프롬프트를 그 이름으로 시작하거나 `@name`을 언급하여 디스패치합니다. 디스패치 입력에서 한 `/model` 선택이 적용되는 동안에는 서브에이전트의 `model`이 사용되지 않으므로, 그곳에 `/model default`를 입력합니다. [`claude agents --model`](#dispatch-defaults)로 시작한 경우에도 서브에이전트의 모델이 사용되지 않으므로, 셸에서 `--model` 없이 `claude agents`를 실행합니다.

649 677 

650### 권한 모드, 모델, effort678### 권한 모드, 모델, effort

651 679 


666* `←` 또는 `/background`로 자신의 세션을 백그라운드로 보내는 경우694* `←` 또는 `/background`로 자신의 세션을 백그라운드로 보내는 경우

667* 현재 있는 디렉터리로 세션을 디스패치하는 경우695* 현재 있는 디렉터리로 세션을 디스패치하는 경우

668* 현재 있는 디렉터리에서 중지된 세션에 연결하거나 회신하여 깨우는 경우696* 현재 있는 디렉터리에서 중지된 세션에 연결하거나 회신하여 깨우는 경우

697* 현재 있는 디렉터리에서 [`claude respawn`](#manage-sessions-from-the-shell)으로 세션을 재시작하는 경우

669 698 

670Claude Code는 클라우드 제공자 앞에 있는 게이트웨이도 전달합니다. 디스패치하는 셸이 제공자를 선택하고 인증 우회 플래그와 함께 게이트웨이 엔드포인트를 내보내면, Claude Code는 `ANTHROPIC_BASE_URL`에 적용되는 조건에서 엔드포인트와 플래그 쌍을 `ANTHROPIC_CUSTOM_HEADERS`와 함께 세션에 전달합니다. 예를 들어 `CLAUDE_CODE_USE_VERTEX=1`을 `ANTHROPIC_VERTEX_BASE_URL` 및 `CLAUDE_CODE_SKIP_VERTEX_AUTH=1`과 함께 내보내면, Claude Code는 해당 엔드포인트와 플래그를 전달합니다.699Claude Code는 클라우드 제공자 앞에 있는 게이트웨이도 전달합니다. 디스패치하는 셸이 제공자를 선택하고 인증 우회 플래그와 함께 게이트웨이 엔드포인트를 내보내면, Claude Code는 `ANTHROPIC_BASE_URL`에 적용되는 조건에서 엔드포인트와 플래그 쌍을 `ANTHROPIC_CUSTOM_HEADERS`와 함께 세션에 전달합니다. 예를 들어 `CLAUDE_CODE_USE_VERTEX=1`을 `ANTHROPIC_VERTEX_BASE_URL` 및 `CLAUDE_CODE_SKIP_VERTEX_AUTH=1`과 함께 내보내면, Claude Code는 해당 엔드포인트와 플래그를 전달합니다.

671 700 


673 702 

674#### 권한 모드703#### 권한 모드

675 704 

676[권한 모드](/docs/ko/permissions)는 세션을 시작한 방식에 따라 다릅니다:705* **`/bg` 또는 `←`로 백그라운드로 보낸 경우**: Claude Code는 세션의 기존 [권한 모드](/docs/ko/permissions)를 유지하므로, `acceptEdits`나 `auto`로 전환한 세션은 분리 후에도 그 모드를 유지합니다

677 

678* **`/bg` 또는 `←`로 백그라운드로 보낸 경우**: Claude Code는 세션의 기존 권한 모드를 유지하므로, `acceptEdits`나 `auto`로 전환한 세션은 분리 후에도 그 모드를 유지합니다

679* **`←`로 연 에이전트 뷰에서 디스패치한 경우**: Claude Code는 새 세션의 권한 모드를 먼저 대상 디렉터리의 구성에서 가져오고, 그다음 원래 세션에서 가져옵니다

680* **셸에서 시작한 `claude agents` 또는 `claude --bg`로 디스패치한 경우**: [디스패치 기본값](#dispatch-defaults)과 함께 연 에이전트 뷰에서 디스패치한 경우가 아니면, 새 세션은 해당 디렉터리에서 새 `claude` 세션이 시작되는 방식대로 시작됩니다. [세션이 시작되는 권한 모드](/docs/ko/permission-modes#which-mode-a-session-starts-in)에 순서가 나와 있습니다706* **셸에서 시작한 `claude agents` 또는 `claude --bg`로 디스패치한 경우**: [디스패치 기본값](#dispatch-defaults)과 함께 연 에이전트 뷰에서 디스패치한 경우가 아니면, 새 세션은 해당 디렉터리에서 새 `claude` 세션이 시작되는 방식대로 시작됩니다. [세션이 시작되는 권한 모드](/docs/ko/permission-modes#which-mode-a-session-starts-in)에 순서가 나와 있습니다

681 707 

682`←`로 연 에이전트 뷰에서 디스패치한 세션의 경우, Claude Code는 다음 중 처음으로 적용되는 항목에서 권한 모드를 가져옵니다:708`←`로 연 에이전트 뷰에서 디스패치한 세션의 경우, Claude Code는 다음 중 처음으로 적용되는 항목에서 권한 모드를 가져옵니다:

683 709 

6841. 대상 디렉터리의 [`permissions.defaultMode`](/docs/ko/settings-reference#permissions-defaultmode). 출처에 관한 두 가지 규칙이 적용됩니다:7101. 대상 디렉터리의 [`permissions.defaultMode`](/docs/ko/settings-reference#permissions-defaultmode). `auto`와 `bypassPermissions`는 [관리형 설정, `--settings` 파일, 또는 `~/.claude/settings.json`에서만 적용됩니다](/docs/ko/settings-reference#permissions-defaultmode). Claude Code는 프로젝트의 `.claude/settings.json` 또는 `.claude/settings.local.json`에 있는 `defaultMode`가 원래 세션의 모드보다 더 허용적인 모드를 선택하면 이를 거부합니다.

685 * `auto`와 `bypassPermissions`는 [관리형 설정, `--settings` 파일, 또는 `~/.claude/settings.json`에서만 적용됩니다](/docs/ko/settings-reference#permissions-defaultmode).7112. 원래 세션의 권한 모드.

686 * Claude Code는 프로젝트의 `.claude/settings.json` 또는 `.claude/settings.local.json`에 있는 `defaultMode`가 원래 세션의 모드보다 더 허용적인 모드를 선택하면 이를 거부합니다.712 

6872. 원래 세션의 권한 모드. 해당 세션이 `bypassPermissions` 모드였다면, 새 세션은 대신 `Bypass permissions was requested at launch and ignored` 알림과 함께 Manual 모드로 시작될 수 있습니다. 이는 우회 면책 조항에 대한 사용자의 수락이 `.claude/settings.local.json` 또는 `--settings` 파일에만 있을 때 발생합니다. Manual 모드로 계속하거나, [해당 수락을 `~/.claude/settings.json`에 추가](/docs/ko/permission-modes#bypass-permissions-acceptance)합니다.713 해당 세션이 `bypassPermissions` 모드였다면, 새 세션은 대신 `Bypass permissions was requested at launch and ignored` 알림과 함께 Manual 모드로 시작될 수 있습니다. 이는 우회 면책 조항에 대한 사용자의 수락이 `.claude/settings.local.json` 또는 `--settings` 파일에만 있을 때 발생합니다. Manual 모드로 계속하거나, [해당 수락을 `~/.claude/settings.json`에 추가](/docs/ko/permission-modes#bypass-permissions-ignored-in-a-background-session)합니다.

688 714 

689Claude Code가 어떤 출처의 모드를 지나치게 허용적이라는 이유로 거부하면, 목록의 다음 출처가 결정합니다. 예를 들어 플랜 모드 세션에서 체크인된 설정이 `acceptEdits`를 요청하는 디렉터리로 디스패치하면, 새 세션은 플랜 모드로 시작합니다. 해당 `defaultMode`를 `~/.claude/settings.json`으로 옮기면 원래 세션의 권한 모드와 관계없이 적용됩니다.715Claude Code가 어떤 출처의 모드를 지나치게 허용적이라는 이유로 거부하면, 목록의 다음 출처가 결정합니다. 예를 들어 플랜 모드 세션에서 체크인된 설정이 `acceptEdits`를 요청하는 디렉터리로 디스패치하면, 새 세션은 플랜 모드로 시작합니다. 해당 `defaultMode`를 `~/.claude/settings.json`으로 옮기면 원래 세션의 권한 모드와 관계없이 적용됩니다.

690 716 


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

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

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

819* **감독자 자체가 중지됨**(예: 프로세스가 Claude Code 외부에서 종료된 경우): macOS 및 Linux에서 각 세션의 프로세스는 새 감독자가 다시 연결되기를 약 1분 동안 기다리며, 연결되지 않으면 중지됩니다. 세션을 계속 실행하려면 그 1분 이내에 셸에서 `claude agents`를 실행하여 새 감독자를 시작합니다. 1분이 먼저 지나면 세션은 중지되지만 저장된 대화는 디스크에 유지됩니다. [세션이 종료 후 실패 또는 중지로 표시됨](#sessions-show-as-failed-after-shutdown)에 설명된 대로 세션에 연결하거나 답변하면 저장된 대화에서 다시 시작됩니다.845* **감독자 자체가 중지됨**(예: 프로세스가 Claude Code 외부에서 종료된 경우): macOS 및 Linux에서는 약 1분 이내에 새 감독자가 연결되지 않으면 세션이 중지됩니다. 새 감독자를 시작하려면 셸에서 `claude agents`를 실행합니다. 1분이 지난 후에는 [감독자가 중지된 후에도 세션 계속 실행하기](#keep-sessions-running-after-the-supervisor-stops)를 참조하세요.

820 846 

821세션의 프로세스가 중지되거나 다시 시작될 때, Claude가 그 세션에서 시작한 백그라운드 셸 명령, 동적 워크플로, 백그라운드 서브에이전트는 다음 프로세스로 이월됩니다. 실행 중인 모니터와 서브에이전트가 시작한 셸 명령은 프로세스와 함께 중지됩니다. 세션을 삭제하면 이월된 모든 것이 중지됩니다. 대신 프로세스와 함께 모든 것을 중지하려면 [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/docs/ko/env-vars#variables)를 `1`로 설정합니다.847세션의 프로세스가 중지되거나 다시 시작될 때, Claude가 그 세션에서 시작한 백그라운드 셸 명령, 동적 워크플로, 백그라운드 서브에이전트는 다음 프로세스로 이월됩니다. 실행 중인 모니터와 서브에이전트가 시작한 셸 명령은 프로세스와 함께 중지됩니다. 세션을 삭제하면 이월된 모든 것이 중지됩니다. 대신 프로세스와 함께 모든 것을 중지하려면 [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/docs/ko/env-vars#variables)를 `1`로 설정합니다.

822 848 

823감독자와 세션은 대화형 세션과 동일한 저장된 자격 증명으로 인증합니다. 세션에 도달하는 설정 및 셸 변수(예: `PATH`)는 [설정 및 공급자](#settings-and-provider)를 참조하세요. 게이트웨이 엔드포인트는 [LLM 게이트웨이](#llm-gateway)를 참조하세요.849감독자와 세션은 대화형 세션과 동일한 저장된 자격 증명으로 인증합니다. 세션에 도달하는 설정 및 셸 변수(예: `PATH`)는 [설정 및 공급자](#settings-and-provider)를 참조하세요. 게이트웨이 엔드포인트는 [LLM 게이트웨이](#llm-gateway)를 참조하세요.

824 850 

851#### 감독자가 중지된 후에도 세션 계속 실행하기

852 

853에이전트 뷰가 종료될 때 다음 알림을 출력하면 실행 중인 [감독자](#the-supervisor-process)가 없는 것입니다:

854 

855```text theme={null}

856Background sessions still running will stop in about a minute. Run 'claude agents' to keep them.

857```

858 

859그 1분 이내에 셸에서 `claude agents`를 실행하여 새 감독자를 시작하고 세션을 계속 실행 상태로 유지합니다.

860 

8611분이 먼저 지나면 세션은 중지되지만 저장된 대화는 디스크에 유지됩니다. 저장된 대화에서 세션을 다시 시작하려면 [세션이 종료 후 실패 또는 중지로 표시됨](#sessions-show-as-failed-after-shutdown)에 설명된 대로 세션에 [연결](#attach-to-a-session)하거나 [답변](#peek-and-reply)합니다.

862 

825### 상태가 저장되는 위치863### 상태가 저장되는 위치

826 864 

827세션 상태는 Claude Code 구성 디렉토리 아래에 저장됩니다. [`CLAUDE_CONFIG_DIR`](/docs/ko/env-vars)을 설정하면 감독자는 `~/.claude` 대신 해당 디렉토리를 사용하고 자체 세션이 있는 별도의 인스턴스로 실행됩니다.865세션 상태는 Claude Code 구성 디렉토리 아래에 저장됩니다. [`CLAUDE_CONFIG_DIR`](/docs/ko/env-vars)을 설정하면 감독자는 `~/.claude` 대신 해당 디렉토리를 사용하고 자체 세션이 있는 별도의 인스턴스로 실행됩니다.


930claude daemon stop --any --keep-workers968claude daemon stop --any --keep-workers

931```969```

932 970 

933그런 다음 셸에서 `claude agents`를 실행하여 새로운 감독자를 시작합니다. 중지 후 [약 1분](#the-supervisor-process) 이내에 실행하면 새로운 감독자가 아직 실행 중인 세션에 다시 연결되며, 해당 세션의 작업은 중단 없이 계속됩니다. 그보다 오래 걸리면 macOS와 Linux에서는 그때까지 세션이 자체적으로 중지되며, 세션에 연결하거나 답변하면 저장된 대화에서 다시 시작됩니다. `--keep-workers` 없이는 명령이 백그라운드 세션도 종료합니다. `--any` 플래그를 사용하면 명령이 Claude Code가 요청 시 시작한 감독자를 중지합니다.971그런 다음 셸에서 `claude agents`를 실행하여 새로운 감독자를 시작합니다. macOS와 Linux에서는 이전 감독자가 종료된 후 약 1분 이내에 실행해야 하며, 그렇지 않으면 세션이 [감독자 없이 중지됩니다](#the-supervisor-process). `stopped`가 표시되었는데도 같은 오류가 다시 발생하고, macOS 또는 Linux에서 v2.1.300보다 오래된 Claude Code를 사용 중이라면 `claude update`를 실행한 후 두 명령을 다시 실행합니다.

934 

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

936 972 

937명령이 대신 기록된 프로세스를 감독자로 확인할 수 없다고 말하며 종료되면, 보고된 프로세스 ID를 확인합니다: 소유한 감독자인 경우 직접 중지한 후 `~/.claude/daemon.lock`을 삭제하여 다음 `claude agents`가 새로 시작하도록 합니다.973중지 명령이 대신 다음 네 가지 메시지 중 하나를 출력했다면 이전 프로세스는 중지되지 않은 것입니다. 셸에서 해당 행에 안내된 조치를 수행한 후 `claude agents`를 실행합니다:

938 974 

939Windows에서 감독자가 중지 요청에 응답하지 않으면, 명령이 프로세스 ID를 출력합니다. `taskkill /PID <pid>`로 해당 프로세스를 종료하여 복구를 완료합니다. `--keep-workers`를 전달했으면 백그라운드 세션은 여전히 보존됩니다.975| 메시지에 포함된 내용 | 플랫폼 | 조치 |

976| :- | :- | :- |

977| `could not be verified as the daemon, so it was not signalled` | 모두 | 해당 프로세스 ID를 가진 프로그램을 확인합니다. 사용자 본인의 감독자이면 중지하고, 다른 프로그램은 그대로 둡니다. 그런 다음 `~/.claude/daemon.lock`을 삭제합니다. |

978| `is still running after SIGKILL` | macOS, Linux | 프로세스가 종료될 때까지 기다립니다. 끝내 종료되지 않으면 컴퓨터를 재시작합니다. |

979| `was not sent SIGKILL` | macOS, Linux | 중지 명령을 다시 실행합니다. 프로세스가 남아 있으면 `ps -ww -o args= -p <pid>`로 확인합니다: `daemon`과 함께 시작된 Claude Code는 감독자이므로 `kill -9 <pid>`를 실행합니다. 그 외의 것은 그대로 두고, 이후 `claude agents`가 감독자를 시작할 수 없으면 `~/.claude/daemon.lock`을 삭제합니다. |

980| `supervisor (pid=<pid>) is still running` | Windows | `taskkill /PID <pid>`로 프로세스를 종료합니다 |

940 981 

941### `Could not resolve authentication method` 오류로 디스패치 실패982### `Could not resolve authentication method` 오류로 디스패치 실패

942 983 


950 991 

951원인 및 해결 방법의 전체 목록은 [오류 참조](/docs/ko/errors#could-not-resolve-authentication-method)를 참조합니다.992원인 및 해결 방법의 전체 목록은 [오류 참조](/docs/ko/errors#could-not-resolve-authentication-method)를 참조합니다.

952 993 

994### 백그라운드 세션에 `No LLM gateway`가 표시됨

995 

996백그라운드 세션에 [`No LLM gateway`](/docs/ko/errors#no-llm-gateway-opened-from-another-folder)가 표시되면, 해당 세션은 게이트웨이 `ANTHROPIC_BASE_URL`을 받지 못했으므로 요청이 실패합니다. 메시지에 표시된 폴더가 아닌 다른 디렉토리에서 세션을 디스패치하거나, 깨우거나, 재시작했기 때문에 Claude Code가 이를 전달하지 않은 것입니다.

997 

998예를 들어 [`@<repo>`](#dispatch-to-a-specific-directory)로 저장소에 디스패치하거나, 다른 디렉토리에서 `claude attach`를 실행하여 중지된 세션을 깨운 후 이 메시지가 표시됩니다. 세션에 게이트웨이를 제공하려면 게이트웨이가 설정된 위치에 맞는 해결 방법을 선택합니다:

999 

1000* **터미널에서 게이트웨이를 export한 경우**: 게이트웨이 변수를 export한 터미널에서 메시지에 표시된 폴더로 `cd`한 후 메시지의 [`claude respawn <id>`](#manage-sessions-from-the-shell) 명령을 실행합니다.

1001 * 게이트웨이는 [감독자](#the-supervisor-process) 자체가 같은 게이트웨이를 export한 셸에서 시작된 경우에만 세션에 전달됩니다. 그렇지 않은 경우 [`Could not resolve authentication method` 오류로 디스패치 실패](#dispatch-fails-with-could-not-resolve-authentication-method)에서 설명한 대로 respawn 명령을 실행한 터미널에서 감독자를 재시작한 후 해당 명령을 다시 실행합니다.

1002* **설정에서 게이트웨이를 지정하는 프로젝트에서 에이전트 뷰를 사용한 경우**: `ANTHROPIC_BASE_URL`과 해당 자격 증명을 [설정 파일의 `env` 블록](/docs/ko/llm-gateway-connect#set-in-a-settings-file)에 넣습니다. `~/.claude/settings.json` 또는 세션 자체 프로젝트의 `.claude/settings.local.json`을 사용하며, 두 파일 모두 respawn된 세션이 읽습니다. 그런 다음 아무 디렉토리에서나 셸에서 [`claude respawn <id>`](#manage-sessions-from-the-shell)를 실행하여 이 세션을 게이트웨이로 재시작합니다.

1003 

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

954 1005 

955macOS에서 백그라운드 세션 호스트는 자체 프로세스로 실행되며 터미널과 별도로 보호된 폴더에 대한 액세스를 요청합니다. 백그라운드 세션이 `~/Desktop`, `~/Documents`, `~/Downloads` 또는 다른 보호된 위치를 읽을 때 `Operation not permitted`를 보고하면, 시스템 설정의 개인정보 보호 및 보안 > 파일 및 폴더에서 액세스를 허용하거나 항목에 대해 전체 디스크 액세스를 활성화합니다.1006macOS에서 백그라운드 세션 호스트는 자체 프로세스로 실행되며 터미널과 별도로 보호된 폴더에 대한 액세스를 요청합니다. 백그라운드 세션이 `~/Desktop`, `~/Documents`, `~/Downloads` 또는 다른 보호된 위치를 읽을 때 `Operation not permitted`를 보고하면, 시스템 설정의 개인정보 보호 및 보안 > 파일 및 폴더에서 액세스를 허용하거나 항목에 대해 전체 디스크 액세스를 활성화합니다.


996 1047 

997| 버전 | 변경 사항 |1048| 버전 | 변경 사항 |

998| - | - |1049| - | - |

1050| v2.1.299 | [디스패치 입력의 `/effort` 및 `/fast`](#set-the-model-effort-and-fast-mode)는 다음에 디스패치하는 세션의 effort 수준과 빠른 모드를 설정합니다. 값 없이 입력한 `/model`, `/effort`, `/fast`는 선택기를 엽니다. |

1051| v2.1.299 | Claude Code는 단순 `--` 구분자 앞이면서 다른 플래그의 값 밖에 있을 때만 [`--bg`와 `--background`를 플래그로 읽으며](#from-your-shell), 모호한 위치에서는 추측하는 대신 거부합니다. 이 릴리스 이전에는 백그라운드 세션에 보내는 `--bg` 또는 `--background`라는 프롬프트나 회신이 플래그로 해석될 수 있었습니다. 이로 인해 텍스트를 전달하는 대신 새 백그라운드 세션이 반복해서 시작될 수 있었습니다. |

1052| v2.1.296 | [세션이 백그라운드로 이동하는 동안](#switch-sessions-without-leaving-the-terminal) 입력한 프롬프트나 `!` 셸 명령은 중지되거나 전송되지 않은 상태로 남으며, 그 텍스트는 프롬프트 기록에 유지됩니다. 이 릴리스 이전에는 응답이나 명령이 더 이상 볼 수 없는 곳에서 계속 실행되었으며, `←` 직후 보낸 프롬프트가 보이지 않는 곳에서 두 번 실행될 수 있었습니다. `SessionStart` 훅이 아직 실행 중일 때 입력한 프롬프트는 손실되었습니다. 전송되지도 않았고 프롬프트 기록에도 남지 않았습니다. |

1053| v2.1.295 | [연결된 백그라운드 세션](#attach-to-a-session)의 유휴 프롬프트에서 `Ctrl+C`는 [자체 페이스 `/loop`](/docs/ko/scheduled-tasks#let-claude-choose-the-interval)의 보류 중인 깨우기를 건드리지 않으므로, 두 번 누르면 분리되고 루프는 계속 실행됩니다. 해당 프롬프트에서 `Esc`는 [자체 페이스 루프를 중지](/docs/ko/scheduled-tasks#stop-a-loop)하고 `Pending wakeup cancelled` 알림을 표시합니다. 이 릴리스 이전에는 첫 번째 `Ctrl+C`가 아무런 알림 없이 자체 페이스 루프를 종료할 수 있었으며, `Esc`는 세션과 함께 백그라운드로 이동한 루프를 중지하지 않았습니다. |

1054| v2.1.295 | macOS 및 Linux에서 [감독자](#keep-sessions-running-after-the-supervisor-stops)가 실행 중이지 않을 때 `claude agents`가 종료되면 스스로 새 감독자를 시작하지 않습니다. 그러면 `claude agents`를 다시 실행하지 않는 한 실행 중인 세션은 약 1분 후에 중지되며, 에이전트 뷰는 종료하면서 이를 알리는 알림을 출력할 수 있습니다. 이 릴리스 이전에는 종료하는 `claude agents`가 새 감독자를 시작했습니다. |

1055| v2.1.295 | 네이티브 설치 프로그램을 사용하는 macOS에서 업데이트 후 함께 다시 시작되는 백그라운드 세션은 사용자가 부여한 [보호된 폴더 액세스](#background-sessions-can’t-read-desktop-documents-or-downloads-on-macos)를 보유한 동일한 Claude Code 항목으로 실행됩니다. 이 릴리스 이전에는 이러한 세션이 대신 바이너리 자체 경로로 실행될 수 있었습니다. macOS는 해당 경로를 별도 항목으로 나열하므로 업데이트 후 폴더 액세스 프롬프트가 다시 나타날 수 있었습니다. |

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

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

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


1048| v2.1.216 | `/fork`: [확인](#from-inside-a-session)은 한 줄이며, 복사본의 상태, 에이전트 뷰 행의 이름, `claude attach`의 세션 ID를 표시하며, 복사본이 주 작업 트리에서 실행되거나 열린 체크아웃을 편집할 때만 `runs in the origin tree` 또는 `edits this checkout`으로 끝납니다. 이름을 클릭하면 이 세션을 백그라운드로 이동하고 복사본의 세션에서 에이전트 뷰를 엽니다. 확인은 더 이상 복사본의 상속된 권한 모드를 다시 설명하지 않습니다. 이전 버전은 클릭 가능한 이름이 없는 여러 줄 확인을 출력했습니다. 입력 필요: `/install-github-app` 및 `/mcp` 설정 목록은 아무도 연결되지 않은 상태에서 실행될 때 세션을 `Needs input` 아래 표시하며 명령을 명시하는 행을 표시하고, 연결하고 명령을 다시 실행하면 계속됩니다. v2.1.208부터 v2.1.215까지는 해당 상태에서 완전히 거부되었습니다. `--agent` 복원: [백그라운드된 `--agent` 세션](#from-your-shell)을 재개하거나 다시 시작할 때 워크스페이스가 신뢰된 경우 에이전트의 시스템 프롬프트와 도구 제한을 복원하며, 세션 자신의 디렉터리에서 에이전트를 먼저 검색합니다. 에이전트가 더 이상 존재하지 않는 세션은 기본 도구 및 시스템 프롬프트로 계속되며 보이는 경고와 함께 열리고, 기본 에이전트로 조용히 되돌아가지 않습니다. `Ctrl+X`: 두 번 누르면 중지 시도가 실패해도 세션이 삭제되며, 실패한 중지가 보류 중인 삭제를 취소하지 않습니다. 또한 워커 프로세스가 죽은 삭제된 세션은 다음 새로 고침에서 다시 나타나지 않습니다. 워크트리 삭제: 워크트리 디렉터리가 git 저장소에 속하지 않는 세션은 삭제할 수 있습니다. 이 릴리스 이전에는 이러한 세션을 삭제하려는 모든 시도가 거부되었습니다. 이미 없는 디렉터리는 즉시 지워집니다. 에이전트 뷰 이중 누름은 다른 세션의 레코드도 이를 명시하지 않는 한 파일이 여전히 있는 디렉터리를 제거하며, 훅이 생성한 디렉터리에 대해서는 `WorktreeRemove` 훅을 실행합니다. `claude rm`은 파일이 남아 있을 때마다 이러한 디렉터리를 유지합니다. |1105| v2.1.216 | `/fork`: [확인](#from-inside-a-session)은 한 줄이며, 복사본의 상태, 에이전트 뷰 행의 이름, `claude attach`의 세션 ID를 표시하며, 복사본이 주 작업 트리에서 실행되거나 열린 체크아웃을 편집할 때만 `runs in the origin tree` 또는 `edits this checkout`으로 끝납니다. 이름을 클릭하면 이 세션을 백그라운드로 이동하고 복사본의 세션에서 에이전트 뷰를 엽니다. 확인은 더 이상 복사본의 상속된 권한 모드를 다시 설명하지 않습니다. 이전 버전은 클릭 가능한 이름이 없는 여러 줄 확인을 출력했습니다. 입력 필요: `/install-github-app` 및 `/mcp` 설정 목록은 아무도 연결되지 않은 상태에서 실행될 때 세션을 `Needs input` 아래 표시하며 명령을 명시하는 행을 표시하고, 연결하고 명령을 다시 실행하면 계속됩니다. v2.1.208부터 v2.1.215까지는 해당 상태에서 완전히 거부되었습니다. `--agent` 복원: [백그라운드된 `--agent` 세션](#from-your-shell)을 재개하거나 다시 시작할 때 워크스페이스가 신뢰된 경우 에이전트의 시스템 프롬프트와 도구 제한을 복원하며, 세션 자신의 디렉터리에서 에이전트를 먼저 검색합니다. 에이전트가 더 이상 존재하지 않는 세션은 기본 도구 및 시스템 프롬프트로 계속되며 보이는 경고와 함께 열리고, 기본 에이전트로 조용히 되돌아가지 않습니다. `Ctrl+X`: 두 번 누르면 중지 시도가 실패해도 세션이 삭제되며, 실패한 중지가 보류 중인 삭제를 취소하지 않습니다. 또한 워커 프로세스가 죽은 삭제된 세션은 다음 새로 고침에서 다시 나타나지 않습니다. 워크트리 삭제: 워크트리 디렉터리가 git 저장소에 속하지 않는 세션은 삭제할 수 있습니다. 이 릴리스 이전에는 이러한 세션을 삭제하려는 모든 시도가 거부되었습니다. 이미 없는 디렉터리는 즉시 지워집니다. 에이전트 뷰 이중 누름은 다른 세션의 레코드도 이를 명시하지 않는 한 파일이 여전히 있는 디렉터리를 제거하며, 훅이 생성한 디렉터리에 대해서는 `WorktreeRemove` 훅을 실행합니다. `claude rm`은 파일이 남아 있을 때마다 이러한 디렉터리를 유지합니다. |

1049| v2.1.214 | `←` 또는 `/background`로 백그라운드된 세션이 실행 중인 것이 없이 유휴 상태로 남겨지면 다른 유휴 세션처럼 프로세스가 중지되며, 프로세스와 백그라운드 서비스를 무한정 실행 상태로 유지하지 않습니다. 완료된 세션은 백그라운드 서비스가 유휴 상태가 된 후 `claude rm` 또는 에이전트 뷰에서 제거할 수 있으며, git 저장소가 아닌 디렉터리(예: 다중 저장소 워크스페이스 폴더)에서 디스패치된 후 워크트리로 들어간 세션은 워크트리 자체가 git 저장소에 속할 때 에이전트 뷰에서 삭제할 수 있습니다. 정리가 디스패치된 디렉터리 대신 워크트리에서 해결되기 때문입니다. 두 제거 모두 이전에는 모든 시도에서 거부되었습니다. 중지된 세션을 다시 열면 트랜스크립트 저장소의 폴더를 읽을 수 없을 때도 저장된 대화를 복원합니다. |1106| v2.1.214 | `←` 또는 `/background`로 백그라운드된 세션이 실행 중인 것이 없이 유휴 상태로 남겨지면 다른 유휴 세션처럼 프로세스가 중지되며, 프로세스와 백그라운드 서비스를 무한정 실행 상태로 유지하지 않습니다. 완료된 세션은 백그라운드 서비스가 유휴 상태가 된 후 `claude rm` 또는 에이전트 뷰에서 제거할 수 있으며, git 저장소가 아닌 디렉터리(예: 다중 저장소 워크스페이스 폴더)에서 디스패치된 후 워크트리로 들어간 세션은 워크트리 자체가 git 저장소에 속할 때 에이전트 뷰에서 삭제할 수 있습니다. 정리가 디스패치된 디렉터리 대신 워크트리에서 해결되기 때문입니다. 두 제거 모두 이전에는 모든 시도에서 거부되었습니다. 중지된 세션을 다시 열면 트랜스크립트 저장소의 폴더를 읽을 수 없을 때도 저장된 대화를 복원합니다. |

1050| v2.1.213 | `/install-github-app`, [`/mcp`](/docs/ko/mcp) 설정 목록, MCP 인증 작업은 터미널이 연결된 백그라운드 세션에서 작동하며, 아무도 연결되지 않았을 때만 거부되고, 연결하여 명령을 다시 실행하라는 메시지가 표시됩니다. v2.1.208부터 v2.1.212까지는 터미널이 연결되어 있어도 거부되었습니다. |1107| v2.1.213 | `/install-github-app`, [`/mcp`](/docs/ko/mcp) 설정 목록, MCP 인증 작업은 터미널이 연결된 백그라운드 세션에서 작동하며, 아무도 연결되지 않았을 때만 거부되고, 연결하여 명령을 다시 실행하라는 메시지가 표시됩니다. v2.1.208부터 v2.1.212까지는 터미널이 연결되어 있어도 거부되었습니다. |

1051| v2.1.212 | [대화형 세션의 `/fork`](#from-inside-a-session)는 대화를 자신의 행으로 나타나는 새로운 백그라운드 세션으로 복사하며, 이 세션은 원래 세션의 이름을 따르거나 이름 없는 세션의 프롬프트가 있는 포크의 경우 포크 프롬프트를 따라 이름이 지정되고, 원본은 계속 실행됩니다. `/fork`의 이전 포크된 서브에이전트 동작은 `/subtask`로 이동했습니다. [에이전트 뷰가 꺼져 있으면](#turn-off-agent-view) `/fork`는 포크된 서브에이전트 동작을 유지합니다. 첫 프롬프트를 기다리는 포커스된 행은 `space to send it a prompt`를 표시합니다. `Ctrl+J`는 확장 키 보고가 있는 터미널의 디스패치 입력에 줄바꿈을 삽입하며(이전에는 키 누름이 무시되었음), `?` 오버레이는 이 단축키를 나열합니다. 입력이 필요한 세션이 없는 상태에서 백그라운드 세션이 완료되면 대화형 세션의 `←` 바닥글 힌트는 잠깐 `N done`을 표시합니다. 에이전트 뷰에서 단순 `/resume`을 입력하면 에이전트 뷰를 연 저장소의 과거 세션 선택기가 열리며, 목록에서 삭제된 세션도 포함되고, 하나를 선택하면 백그라운드 세션으로 재개합니다. 이 릴리스 이전에는 `/resume`을 에이전트 뷰에서 사용할 수 없었으며 삭제된 세션은 `claude --resume` 또는 대화형 세션의 `/resume`으로만 도달할 수 있었습니다. 대상 지정, 범위 지정, 제한된 형식은 이전 버전이 모든 형식에 대해 표시한 `attach to a session to run it` 힌트를 유지합니다. 샌드박스 네트워크 호스트 프롬프트, MCP 입력 요청, 또는 관리형 설정 프롬프트를 기다리는 세션은 에이전트 뷰 및 `claude agents --json`에서 `Working` 대신 `Needs input`으로 표시되며, Claude의 질문은 `permission prompt` 대신 `waitingFor: input needed`를 보고합니다. 프로세스가 중지된 세션에 연결하면 원시 텍스트 대신 라이브 세션이 렌더링하는 방식으로 포맷된 트랜스크립트를 표시합니다. 트랜스크립트가 예상치 못한 위치에 있는 중지된 세션은 저장된 트랜스크립트의 최후의 수단 스캔을 통해 재개되며, 저장된 트랜스크립트가 없는 행을 열면 `Press enter again to restart this session fresh`를 표시하고, 두 번째 누름에서 새로 다시 시작합니다. v2.1.211은 에이전트 뷰에서 다시 시작할 방법 없이 거부를 표시했습니다. |1108| v2.1.212 | [대화형 세션의 `/fork`](#from-inside-a-session)는 원본이 계속 실행되는 동안 대화를 새로운 백그라운드 세션으로 복사합니다. `/fork`의 이전 포크된 서브에이전트 동작은 `/subtask`로 이동했습니다. [에이전트 뷰가 꺼져 있으면](#turn-off-agent-view) `/fork`는 포크된 서브에이전트 동작을 유지합니다. |

1109| v2.1.212 | [에이전트 뷰에서 단순 `/resume`을 입력하면](#bring-back-a-past-session) 에이전트 뷰를 연 저장소의 과거 세션 선택기가 열립니다. |

1052| v2.1.211 | 세션이 실행되는 디렉터리에서 연결하거나 회신하여 중지된 세션을 깨우면 새 디스패치와 같은 조건 아래 셸의 게이트웨이 `ANTHROPIC_BASE_URL`을 다시 전달하므로, 게이트웨이 `ANTHROPIC_AUTH_TOKEN`으로 인증된 세션은 `Not logged in`을 보고하는 대신 게이트웨이에서 재개됩니다. 첫 응답이 완료되기 전에 다른 대화에서 백그라운드된 중지된 세션에 연결하면 같은 세션 ID로 빈 대화를 조용히 시작하는 대신 `This session has no saved transcript`로 거부되며, 에이전트 뷰에서 같은 행을 열면 바닥글에 거부를 표시했습니다. Claude Code 외부에서 `←` 또는 `/background` 세션의 프로세스를 종료하면 감독자가 다시 시작하는 대신 중지됨으로 표시되고, 이미 디스크에 기록된 중지는 보낸 회신이 여전히 전달 대기 중이 아니면 준수되며, 충돌 후 다시 시작된 세션은 다시 시작되었다는 사실을 전달받고, 다시 시작된 `←` 또는 `/background` 세션은 약 1시간보다 오래된 중단된 응답을 재개하지 않습니다. 프롬프트에 레이블을 지정하는 대신 답변하거나 거부하는 세션 이름 지정 회신(예: 대부분 링크인 프롬프트의 경우)은 폐기되며 행은 프롬프트 텍스트에서 가져온 이름을 유지합니다. git이 더 이상 워크트리를 인식하지 않는 세션을 삭제하면 모든 시도가 거부되는 대신 성공하며, 워크트리 디렉터리를 디스크에 남기고 그 경로를 명시합니다. 거부된 삭제는 행이 조용히 다시 나타나는 대신 세션 행에 이유를 표시하며, 워크트리를 제거할 수 없을 때는 기본 git 오류도 포함합니다. |1110| v2.1.211 | 세션이 실행되는 디렉터리에서 연결하거나 회신하여 중지된 세션을 깨우면 새 디스패치와 같은 조건 아래 셸의 게이트웨이 `ANTHROPIC_BASE_URL`을 다시 전달하므로, 게이트웨이 `ANTHROPIC_AUTH_TOKEN`으로 인증된 세션은 `Not logged in`을 보고하는 대신 게이트웨이에서 재개됩니다. 첫 응답이 완료되기 전에 다른 대화에서 백그라운드된 중지된 세션에 연결하면 같은 세션 ID로 빈 대화를 조용히 시작하는 대신 `This session has no saved transcript`로 거부되며, 에이전트 뷰에서 같은 행을 열면 바닥글에 거부를 표시했습니다. Claude Code 외부에서 `←` 또는 `/background` 세션의 프로세스를 종료하면 감독자가 다시 시작하는 대신 중지됨으로 표시되고, 이미 디스크에 기록된 중지는 보낸 회신이 여전히 전달 대기 중이 아니면 준수되며, 충돌 후 다시 시작된 세션은 다시 시작되었다는 사실을 전달받고, 다시 시작된 `←` 또는 `/background` 세션은 약 1시간보다 오래된 중단된 응답을 재개하지 않습니다. 프롬프트에 레이블을 지정하는 대신 답변하거나 거부하는 세션 이름 지정 회신(예: 대부분 링크인 프롬프트의 경우)은 폐기되며 행은 프롬프트 텍스트에서 가져온 이름을 유지합니다. git이 더 이상 워크트리를 인식하지 않는 세션을 삭제하면 모든 시도가 거부되는 대신 성공하며, 워크트리 디렉터리를 디스크에 남기고 그 경로를 명시합니다. 거부된 삭제는 행이 조용히 다시 나타나는 대신 세션 행에 이유를 표시하며, 워크트리를 제거할 수 없을 때는 기본 git 오류도 포함합니다. |

1053| v2.1.210 | `claude attach`는 백그라운드 서비스가 시작되거나 다시 연결되는 동안 `job not found` 또는 `still starting` 오류로 실패하는 대신 기다리며, 연결 중에 완료된 세션을 종료됨으로 보고하고, 느린 연결 중에 만든 터미널 크기 조정을 연결이 완료될 때 적용합니다. 프롬프트 바닥글의 `←` 입력 필요 개수는 이전에 일반 `← for agents` 형식을 표시한 타사 제공자를 포함한 모든 제공자에 나타납니다. `←`로 세션을 백그라운드로 이동하면 Claude의 작업 목록을 삭제하지 않고 백그라운드 세션으로 가져갑니다. `←`를 누른 행은 선택이 이동한 후에도 굵고 흐리지 않은 이름을 유지합니다. `claude agents --effort`는 `ultracode`를 조용히 삭제하는 대신 허용합니다. |1111| v2.1.210 | `claude attach`는 백그라운드 서비스가 시작되거나 다시 연결되는 동안 `job not found` 또는 `still starting` 오류로 실패하는 대신 기다리며, 연결 중에 완료된 세션을 종료됨으로 보고하고, 느린 연결 중에 만든 터미널 크기 조정을 연결이 완료될 때 적용합니다. 프롬프트 바닥글의 `←` 입력 필요 개수는 이전에 일반 `← for agents` 형식을 표시한 타사 제공자를 포함한 모든 제공자에 나타납니다. `←`로 세션을 백그라운드로 이동하면 Claude의 작업 목록을 삭제하지 않고 백그라운드 세션으로 가져갑니다. `←`를 누른 행은 선택이 이동한 후에도 굵고 흐리지 않은 이름을 유지합니다. `claude agents --effort`는 `ultracode`를 조용히 삭제하는 대신 허용합니다. |

1054| v2.1.208 | 프로세스가 중지된 세션에 연결하면 프로세스가 시작되는 동안 `Session is starting` 메모만 표시하는 대신 트랜스크립트의 마지막 화면을 표시합니다. 백그라운드 서비스에 연결할 수 없거나 전송이 실패하여 전달할 수 없는 회신은 저장되었다가 프로세스가 다시 시작될 때 세션의 다음 프롬프트로 전송됩니다. 이 릴리스 이전에는 백그라운드 서비스에 연결할 수 없는 동안 손실된 회신이 폐기되었습니다. 자신의 바이너리가 업데이트로 교체된 프로세스는 Claude Code를 다시 시작할 때까지 실패하는 대신 설치된 `claude` 런처 또는 디스크의 최신 버전에서 감독자를 시작할 수 있습니다. 더 이전 버전을 실행하는 감독자는 더 최신 버전으로 시작된 유휴 세션을 자신의 더 이전 바이너리로 다시 시작하지 않습니다. 세션을 삭제하면 세션이 워크트리를 다른 브랜치로 이동한 후에도 워크트리가 제거되며, 워크트리에 어디에도 푸시되지 않은 커밋이 있거나 다른 세션이 이를 사용 중일 때 워크트리를 세션 행과 함께 유지하여 커밋을 삭제하거나 워크트리를 고아로 남기지 않습니다. `/install-github-app` 및 `/mcp` 설정 목록과 그 인증 작업은 백그라운드 세션에서 대안을 명시하는 메시지와 함께 거부됩니다. v2.1.208에서만 `/model` 선택기가 같은 방식으로 거부되었으며 입력된 `/model <name>`은 기본 모델도 저장하는 대신 해당 세션만 전환했습니다. |1112| v2.1.208 | 프로세스가 중지된 세션에 연결하면 프로세스가 시작되는 동안 `Session is starting` 메모만 표시하는 대신 트랜스크립트의 마지막 화면을 표시합니다. 백그라운드 서비스에 연결할 수 없거나 전송이 실패하여 전달할 수 없는 회신은 저장되었다가 프로세스가 다시 시작될 때 세션의 다음 프롬프트로 전송됩니다. 이 릴리스 이전에는 백그라운드 서비스에 연결할 수 없는 동안 손실된 회신이 폐기되었습니다. 자신의 바이너리가 업데이트로 교체된 프로세스는 Claude Code를 다시 시작할 때까지 실패하는 대신 설치된 `claude` 런처 또는 디스크의 최신 버전에서 감독자를 시작할 수 있습니다. 더 이전 버전을 실행하는 감독자는 더 최신 버전으로 시작된 유휴 세션을 자신의 더 이전 바이너리로 다시 시작하지 않습니다. 세션을 삭제하면 세션이 워크트리를 다른 브랜치로 이동한 후에도 워크트리가 제거되며, 워크트리에 어디에도 푸시되지 않은 커밋이 있거나 다른 세션이 이를 사용 중일 때 워크트리를 세션 행과 함께 유지하여 커밋을 삭제하거나 워크트리를 고아로 남기지 않습니다. `/install-github-app` 및 `/mcp` 설정 목록과 그 인증 작업은 백그라운드 세션에서 대안을 명시하는 메시지와 함께 거부됩니다. v2.1.208에서만 `/model` 선택기가 같은 방식으로 거부되었으며 입력된 `/model <name>`은 기본 모델도 저장하는 대신 해당 세션만 전환했습니다. |


1061| v2.1.199 | 메모리가 부족한 호스트에서 시작을 완료하기 전에 프로세스가 종료되는 백그라운드 세션은 단순히 종료 이유만 표시하는 대신 행 상태에 `possibly low memory — free some up and retry`를 표시합니다. `←` 또는 `/background`로 세션을 백그라운드로 이동하면 `/color`가 새 행으로 이어집니다. |1119| v2.1.199 | 메모리가 부족한 호스트에서 시작을 완료하기 전에 프로세스가 종료되는 백그라운드 세션은 단순히 종료 이유만 표시하는 대신 행 상태에 `possibly low memory — free some up and retry`를 표시합니다. `←` 또는 `/background`로 세션을 백그라운드로 이동하면 `/color`가 새 행으로 이어집니다. |

1062| v2.1.198 | 에이전트 뷰는 백그라운드 세션이 입력이 필요하거나, 완료되거나, 실패할 때 `preferredNotifChannel`을 통해 알림을 보내고 `agent_needs_input` 또는 `agent_completed` 유형으로 `Notification` 훅을 실행합니다. `claude attach <id>` 내의 `←` 및 `/exit`는 셸로 종료하는 대신 에이전트 뷰로 돌아갑니다. `Ctrl+Z`는 셸로 돌아갑니다. 작업을 워크트리에 격리한 백그라운드 세션은 완료될 때 먼저 묻는 대신 커밋하고, `main`이나 `master`가 아닌 자신의 격리된 브랜치를 푸시하며, 초안 풀 리퀘스트를 엽니다. `/login`은 에이전트 뷰에서 실행되고 로그인 대화 상자를 엽니다. `Background work is running` 종료 대화 상자는 `Move to background and exit`를 제공합니다. 종료 핸드오프는 백그라운드 서브에이전트도 포함하며, 이들은 실패로 보고되는 대신 다음 깨어날 때 트랜스크립트에서 재개됩니다. `claude --bg`는 `-p` 또는 `--print`와 결합되면 오류로 거부됩니다. 백그라운드 세션 호스트는 `connect: no route to host`로 실패하는 대신 첫 LAN 액세스 시 macOS 로컬 네트워크 권한을 요청합니다. |1120| v2.1.198 | 에이전트 뷰는 백그라운드 세션이 입력이 필요하거나, 완료되거나, 실패할 때 `preferredNotifChannel`을 통해 알림을 보내고 `agent_needs_input` 또는 `agent_completed` 유형으로 `Notification` 훅을 실행합니다. `claude attach <id>` 내의 `←` 및 `/exit`는 셸로 종료하는 대신 에이전트 뷰로 돌아갑니다. `Ctrl+Z`는 셸로 돌아갑니다. 작업을 워크트리에 격리한 백그라운드 세션은 완료될 때 먼저 묻는 대신 커밋하고, `main`이나 `master`가 아닌 자신의 격리된 브랜치를 푸시하며, 초안 풀 리퀘스트를 엽니다. `/login`은 에이전트 뷰에서 실행되고 로그인 대화 상자를 엽니다. `Background work is running` 종료 대화 상자는 `Move to background and exit`를 제공합니다. 종료 핸드오프는 백그라운드 서브에이전트도 포함하며, 이들은 실패로 보고되는 대신 다음 깨어날 때 트랜스크립트에서 재개됩니다. `claude --bg`는 `-p` 또는 `--print`와 결합되면 오류로 거부됩니다. 백그라운드 세션 호스트는 `connect: no route to host`로 실패하는 대신 첫 LAN 액세스 시 macOS 로컬 네트워크 권한을 요청합니다. |

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

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

1065| v2.1.191 | `claude --bg`에 서브에이전트와 일치하지 않는 `--agent` 이름을 지정하면 시작이 실패합니다: 세션은 기본 에이전트로 실행되는 대신 `--agent '<name>' not found` 오류로 즉시 종료됩니다. |1123| v2.1.191 | `claude --bg`에 서브에이전트와 일치하지 않는 `--agent` 이름을 지정하면 시작이 실패합니다: 세션은 기본 에이전트로 실행되는 대신 `--agent '<name>' not found` 오류로 즉시 종료됩니다. |

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

1067| v2.1.172 | 디스패치 입력의 `/model`이 세션 범위 디스패치 모델 재정의를 설정합니다. |1125| v2.1.172 | 디스패치 입력의 `/model`이 세션 범위 디스패치 모델 재정의를 설정합니다. |

artifacts.md +17 −6

Details

98* **`Enter`**: 현재 세션에 이미 첨부되어 있으면 브라우저에서 열고, 첨부되어 있지 않으면 첨부합니다. v2.1.216 이전에는 `Enter`를 누르면 브라우저에서 열렸습니다98* **`Enter`**: 현재 세션에 이미 첨부되어 있으면 브라우저에서 열고, 첨부되어 있지 않으면 첨부합니다. v2.1.216 이전에는 `Enter`를 누르면 브라우저에서 열렸습니다

99* **`o`**: 브라우저에서 엽니다99* **`o`**: 브라우저에서 엽니다

100* **`c`**: 링크를 복사합니다100* **`c`**: 링크를 복사합니다

101* **`d`**: [클라우드 세션](/docs/ko/claude-code-on-the-web) 외부에서 사용하며, 확인을 거친 후 소유한 아티팩트를 영구적으로 삭제합니다. 해당 링크는 본인을 포함한 모든 사람에게 더 이상 작동하지 않습니다

101 102 

102Claude Code는 claude.ai 계정에서 목록을 읽으므로 새 세션에서도 작동하며, 링크가 터미널에서 스크롤되어 사라진 후 `/clear`를 실행한 뒤에도 작동합니다.103Claude Code는 claude.ai 계정에서 목록을 읽으므로, 아티팩트의 링크가 터미널에서 스크롤되어 사라진 경우에도 `/artifacts`는 새 세션에서, 그리고 `/clear` 이후에도 작동합니다.

103 104 

104## 아티팩트 공유하기105## 아티팩트 공유하기

105 106 

106새로운 아티팩트는 처음에는 사용자에게만 표시됩니다. 공유하려면 브라우저에서 아티팩트를 열고 페이지 헤더의 **공유** 컨트롤을 사용하십시오. 헤더에는 [claude.ai/code/artifacts](https://claude.ai/code/artifacts)의 갤러리로 연결되는 링크도 있으며, 여기에는 사용자가 생성한 모든 아티팩트가 나열됩니다.107새로운 아티팩트는 처음에는 사용자에게만 표시됩니다. 공유하려면 브라우저에서 아티팩트를 열고 페이지 헤더의 **공유** 컨트롤을 사용하십시오. 헤더에는 [claude.ai/code/artifacts](https://claude.ai/code/artifacts)의 갤러리로 연결되는 링크도 있으며, 여기에는 사용자가 생성한 모든 아티팩트가 나열됩니다.

107 108 

108조직의 뷰어는 페이지를 게시한 사람을 볼 수 있습니다. 조직 내에서 공유된 아티팩트의 경우 사용자의 이름이 제목 메뉴에 표시되고, 공개 아티팩트의 경우 조직의 로그인한 뷰어를 위해 페이지 헤더에 표시됩니다. 로그인하지 않고 공개 링크를 열거나 조직 외부에서 열어본 뷰어는 사용자의 이름 대신 `콘텐츠는 사용자가 생성했으며 검증되지 않았습니다.` 레이블을 봅니다.109조직의 뷰어는 페이지를 게시한 사람을 볼 수 있습니다. 조직 내에서 공유된 아티팩트의 경우 사용자의 이름이 제목 메뉴에 표시되고, 공개 아티팩트의 경우 조직의 로그인한 뷰어를 위해 페이지 헤더에 표시됩니다. 로그인하지 않고 공개 링크를 열거나 조직 외부에서 열어본 뷰어는 사용자의 이름 대신 `Content is user-generated and unverified.` 레이블을 봅니다.

109 110 

110공유할 수 있는 대상은 사용자의 플랜에 따라 다릅니다.111공유할 수 있는 대상은 사용자의 플랜에 따라 다릅니다.

111 112 

112* **조직 내**: Team 및 Enterprise 플랜에서는 조직의 특정 사람 또는 모든 사람에게 액세스 권한을 부여할 수 있습니다. 뷰어는 페이지를 보기 위해 조직의 구성원으로 claude.ai에 로그인합니다.113* **조직 내**: Team 및 Enterprise 플랜에서는 조직의 특정 사람 또는 모든 사람에게 액세스 권한을 부여할 수 있습니다. 뷰어는 페이지를 보기 위해 조직의 구성원으로 claude.ai에 로그인합니다.

113* **공개**: 인터넷의 누구나 열 수 있는 링크를 공유하며, claude.ai 로그인이 필요하지 않습니다. Team 및 Enterprise 플랜에서는 공개 공유가 활성화될 때까지 비활성화되어 있으며, Owner가 [조직에 대해 공개 공유를 활성화](#control-public-sharing)해야 합니다.114* **공개**: 인터넷의 누구나 열 수 있는 링크를 공유하며, claude.ai 로그인이 필요하지 않습니다. Team 및 Enterprise 플랜에서는 공개 공유가 활성화될 때까지 비활성화되어 있으며, Owner가 [조직에 대해 공개 공유를 활성화](#control-public-sharing)해야 합니다.

114 115 

116### 특정 보기로 연결하기

117 

118페이지에 탭이나 섹션 같은 여러 보기가 있는 경우 그중 하나로 직접 연결할 수 있습니다. Claude에게 링크를 요청하십시오.

119 

120```text wrap theme={null}

121Give me a link to each tab of the deploy failures dashboard.

122```

123 

124각 링크는 `#overview`와 같이 끝에 앵커가 붙은 아티팩트 링크입니다.

125 

115### 다른 사람이 함께 편집하도록 허용하기126### 다른 사람이 함께 편집하도록 허용하기

116 127 

117공유한 사람들은 기본적으로 뷰어입니다. 즉, 사용자가 게시한 각 버전을 볼 수 있지만 페이지를 변경할 수 없습니다. Team 및 Enterprise 플랜에서는 누군가를 편집자로 만들 수도 있습니다. 공유 대화 상자에서 사람을 추가하고 역할을 **뷰어**에서 **편집자**로 전환합니다.128공유한 사람들은 기본적으로 뷰어입니다. 즉, 사용자가 게시한 각 버전을 볼 수 있지만 페이지를 변경할 수 없습니다. Team 및 Enterprise 플랜에서는 누군가를 편집자로 만들 수도 있습니다. 공유 대화 상자에서 사람을 추가하고 역할을 **뷰어**에서 **편집자**로 전환합니다.


424 435 

425| 메서드 | 엔드포인트 |436| 메서드 | 엔드포인트 |

426| :- | :- |437| :- | :- |

427| `GET` | `/v1/compliance/code/artifacts` |438| `GET` | `/v1/compliance/apps/code/artifacts` |

428| `GET` | `/v1/compliance/code/artifacts/{artifact_id}/versions/{version_id}` |439| `GET` | `/v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}` |

429| `DELETE` | `/v1/compliance/code/artifacts/{artifact_id}` |440| `DELETE` | `/v1/compliance/apps/code/artifacts/{artifact_id}` |

430 441 

431요청 및 응답 스키마는 [Compliance API 참조](https://docs.claude.com/en/api/compliance/code/artifacts)를 참조하십시오.442요청 및 응답 스키마는 [Compliance API 참조](https://platform.claude.com/docs/en/api/compliance/apps/code/artifacts)를 참조하십시오.

432 443 

433## 관련 리소스444## 관련 리소스

434 445 

Details

161 161 

162> [!NOTE]162> [!NOTE]

163>163>

164> `/auto-mode-setup`은 Pro, Max 또는 Team 플랜이 필요하며 Claude Code v2.1.228 이상이어야 합니다. 기본 Windows에서는 v2.1.233 이상이 필요합니다. [웹의 Claude Code](/docs/ko/claude-code-on-the-web)에서는 실행할 수 없습니다. 또한 [기능 플래그 가져오기](/docs/ko/env-vars#features-that-need-feature-flag-fetching)가 필요하므로 플래그 가져오기를 비활성화한 세션에서는 실행할 수 없습니다.164> `/auto-mode-setup`은 Pro, Max, Team 및 Enterprise 플랜과 Claude Console API 키에서 사용할 수 있습니다. Pro, Max 또는 Team 플랜에서는 v2.1.228 이상이 필요하며, 기본 Windows에서는 v2.1.233 이상이 필요합니다. Enterprise 플랜 또는 Claude Console API 키를 사용하는 경우 v2.1.283 이상이 필요합니다. 세션에 이 명령이 없으면 [`/auto-mode-setup`이 "Unknown command"를 반환하는 경우](#auto-mode-setup-returns-unknown-command)를 참조하세요.

165 165 

166### `/auto-mode-setup`이 읽는 항목166### `/auto-mode-setup`이 읽는 항목

167 167 


202 202 

203`/auto-mode-setup`은 [번들 스킬](/docs/ko/skills#bundled-skills)이 아닌 기본 제공 명령이므로 이 `skillOverrides` 항목은 여전히 적용되지만 [`disableBundledSkills`](/docs/ko/settings-reference#disablebundledskills)는 이를 비활성화하지 않습니다.203`/auto-mode-setup`은 [번들 스킬](/docs/ko/skills#bundled-skills)이 아닌 기본 제공 명령이므로 이 `skillOverrides` 항목은 여전히 적용되지만 [`disableBundledSkills`](/docs/ko/settings-reference#disablebundledskills)는 이를 비활성화하지 않습니다.

204 204 

205### `/auto-mode-setup`이 "Unknown command"를 반환하는 경우

206 

207Claude Code 프롬프트에 `/auto-mode-setup`을 입력했을 때 `Unknown command: /auto-mode-setup`이 출력되면 다음 원인을 확인합니다:

208 

209* **설치 또는 업그레이드 후 첫 세션**: 새 세션을 시작합니다. 새 세션에서도 명령이 여전히 없으면 [이후 세션도 이 명령 없이 시작되는 설정](/docs/ko/env-vars#first-session-after-an-install-or-upgrade)을 참조하세요.

210* **오래된 버전**: 셸에서 `claude --version`을 실행합니다. 버전이 [플랜의 최소 버전](#generate-environment-entries)보다 낮으면 [Claude Code를 업데이트](/docs/ko/setup#update-claude-code)합니다.

211* **텔레메트리 꺼짐, 서드파티 제공업체 또는 Claude 앱 게이트웨이**: v2.1.304 이전에는 [기능 플래그 가져오기가 꺼진 세션](/docs/ko/env-vars#features-that-need-feature-flag-fetching)에서 이 명령을 사용할 수 없습니다. 세션이 이에 해당하면 [Claude Code를 v2.1.304 이상으로 업데이트](/docs/ko/setup#update-claude-code)합니다.

212 

213[클라우드 세션](/docs/ko/claude-code-on-the-web)에서는 이 명령이 대신 `/auto-mode-setup isn't available in this environment.`를 출력합니다. 터미널의 대화형 세션에서 실행합니다.

214 

205## 차단 및 허용 규칙 재정의215## 차단 및 허용 규칙 재정의

206 216 

207세 개의 추가 필드를 사용하여 분류기의 기본 제공 규칙 목록을 바꿀 수 있습니다:217세 개의 추가 필드를 사용하여 분류기의 기본 제공 규칙 목록을 바꿀 수 있습니다:

Details

44 44 

45여기까지 요약을 선택하면 대화의 끝에 남겨지며 입력 필드는 비어 있습니다. 두 요약 옵션 중 하나를 사용하면 압축된 메시지가 있던 대화에 **Summarized conversation** 마커가 나타납니다.45여기까지 요약을 선택하면 대화의 끝에 남겨지며 입력 필드는 비어 있습니다. 두 요약 옵션 중 하나를 사용하면 압축된 메시지가 있던 대화에 **Summarized conversation** 마커가 나타납니다.

46 46 

47#### 다음 프롬프트 전에 종료하면 되돌린 메시지가 다시 나타날 수 있습니다

48 

49다시 나타난 메시지를 다시 제거하려면 세션에서 `/rewind`를 실행하고 같은 프롬프트를 선택한 다음 **대화 복원**을 선택합니다. Claude Code는 되돌린 대화를 다음 프롬프트와 함께 저장하므로 종료하기 전에 Claude에게 프롬프트를 보내세요. 복원한 파일은 되돌리기로 적용된 상태 그대로 유지됩니다.

50 

47#### 이전 세션의 지워진 대화로 되돌리기51#### 이전 세션의 지워진 대화로 되돌리기

48 52 

49동일한 Claude Code 프로세스에서 이전에 `/clear`를 실행한 경우 rewind 메뉴는 목록 맨 위에 `/resume <session-id> (이전 세션)`이라는 레이블이 지정된 추가 항목을 표시합니다. 이를 선택하여 `/clear`가 실행되기 전에 활성화되었던 대화를 재개합니다. 이 항목은 Claude Code를 종료하거나 다른 세션을 재개할 때까지 사용 가능합니다.53동일한 Claude Code 프로세스에서 이전에 `/clear`를 실행한 경우 rewind 메뉴는 목록 맨 위에 `/resume <session-id> (previous session)`이라는 레이블이 지정된 추가 항목을 표시합니다. 이를 선택하여 `/clear`가 실행되기 전에 활성화되었던 대화를 재개합니다. 이 항목은 Claude Code를 종료하거나 다른 세션을 재개할 때까지 사용 가능합니다.

50 54 

51#### 요약 안내55#### 요약 안내

52 56 

Details

827관례적으로 마지막에 나열되는 `match: {}` 캐치올은 기본 계층으로 처리됩니다. 다른 모든 정책은 자신이 설정하지 않은 키를 캐치올에서 상속하므로, 역할별 항목은 조직 기본값과 다른 부분만 나열하면 됩니다. 병합 규칙은 키 유형에 따라 다릅니다:827관례적으로 마지막에 나열되는 `match: {}` 캐치올은 기본 계층으로 처리됩니다. 다른 모든 정책은 자신이 설정하지 않은 키를 캐치올에서 상속하므로, 역할별 항목은 조직 기본값과 다른 부분만 나열하면 됩니다. 병합 규칙은 키 유형에 따라 다릅니다:

828 828 

829* **허용 목록**: `availableModels` 및 `permissions.allow`입니다. 특정 정책의 목록이 기본값의 목록을 완전히 대체합니다.829* **허용 목록**: `availableModels` 및 `permissions.allow`입니다. 특정 정책의 목록이 기본값의 목록을 완전히 대체합니다.

830* **거부 목록 및 훅 배열**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces` 및 모든 `hooks` 이벤트 유형 배열입니다. 이들은 기본값과 정책의 합집합을 취하므로, 조직 전체의 거부 규칙이나 감사 훅이 역할별 재정의로 인해 실수로 누락되지 않습니다.830* **거부 목록과 훅 배열**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces`, `deniedModels`, 그리고 모든 `hooks` 이벤트 유형 배열. 기본 정책과 해당 정책의 합집합을 취하므로, 조직 전체의 거부 규칙이나 감사 훅이 역할별 재정의로 인해 실수로 누락될 수 없습니다.

831* **레코드 유형 키**: `env`, `modelOverrides` 및 `skillOverrides`입니다. 이들은 얕게 병합되므로, 역할별 `env` 블록은 자신이 설정한 키를 재정의하고 나머지는 기본값에서 상속합니다.831* **레코드 유형 키**: `env`, `modelOverrides` 및 `skillOverrides`입니다. 이들은 얕게 병합되므로, 역할별 `env` 블록은 자신이 설정한 키를 재정의하고 나머지는 기본값에서 상속합니다.

832 832 

833`availableModels`는 `/v1/messages`에서 서버 측으로도 강제되므로, 거부된 모델은 클라이언트가 무엇을 보내든 `400`을 반환합니다. 빈 목록은 모든 모델을 거부합니다. 이 확인은 개발자가 모델을 선택하기 전에 세션이 시작되는 모델에도 적용되므로, [정책이 허용하는 모델로 세션을 시작](#start-sessions-on-a-model-the-policy-allows)하도록 설정하세요.833`availableModels`는 `/v1/messages`에서 서버 측으로도 강제되므로, 거부된 모델은 클라이언트가 무엇을 보내든 `400`을 반환합니다. 빈 목록은 모든 모델을 거부합니다. 이 확인은 개발자가 모델을 선택하기 전에 세션이 시작되는 모델에도 적용되므로, [정책이 허용하는 모델로 세션을 시작](#start-sessions-on-a-model-the-policy-allows)하도록 설정하세요.


973| 키 | 강제 주체 | 효과 |973| 키 | 강제 주체 | 효과 |

974| - | - | - |974| - | - | - |

975| `availableModels` | 게이트웨이 + CLI | 모델 허용 목록입니다. `/v1/messages`에서도 확인되므로 패치된 클라이언트도 이를 우회할 수 없습니다. |975| `availableModels` | 게이트웨이 + CLI | 모델 허용 목록입니다. `/v1/messages`에서도 확인되므로 패치된 클라이언트도 이를 우회할 수 없습니다. |

976| [`deniedModels`](/docs/ko/settings-reference#deniedmodels), [`availableModelsMatch`](/docs/ko/settings-reference#availablemodelsmatch) | 게이트웨이 + CLI | `availableModels`가 허용할 수 있는 [특정 모델 또는 버전을 차단](/docs/ko/model-config#block-specific-models-or-versions)합니다. 차단된 모델은 `/v1/messages`에서 `400`으로 거부되고 `/v1/models`에서 제외됩니다. 게이트웨이 자체 검사에는 게이트웨이 서버의 Claude Code v2.1.299 이상이 필요합니다. CLI 검사에는 클라이언트의 v2.1.283 이상이 필요하며, 이전 클라이언트는 두 키를 모두 무시합니다. |

976| `permissions.allow` / `.deny` | CLI | 도구 및 명령 규칙입니다. [권한](/docs/ko/permissions)을 참조하세요. |977| `permissions.allow` / `.deny` | CLI | 도구 및 명령 규칙입니다. [권한](/docs/ko/permissions)을 참조하세요. |

977| `permissions.disableBypassPermissionsMode` | CLI | 권한 프롬프트를 건너뛰는 모드인 [`bypassPermissions`](/docs/ko/permission-modes#skip-all-checks-with-bypasspermissions-mode)와 `--dangerously-skip-permissions` 플래그를 차단하려면 `disable`로 설정합니다 |978| `permissions.disableBypassPermissionsMode` | CLI | 권한 프롬프트를 건너뛰는 모드인 [`bypassPermissions`](/docs/ko/permission-modes#skip-all-checks-with-bypasspermissions-mode)와 `--dangerously-skip-permissions` 플래그를 차단하려면 `disable`로 설정합니다 |

978| `allowManagedPermissionRulesOnly` | CLI | `true`이면 관리형 설정이 권한 규칙의 유일한 설정 소스가 됩니다. [`allowManagedPermissionRulesOnly`](/docs/ko/settings-reference#allowmanagedpermissionrulesonly) 항목에 이때 Claude Code가 무시하는 모든 소스가 나열되어 있습니다. |979| `allowManagedPermissionRulesOnly` | CLI | `true`이면 관리형 설정이 권한 규칙의 유일한 설정 소스가 됩니다. [`allowManagedPermissionRulesOnly`](/docs/ko/settings-reference#allowmanagedpermissionrulesonly) 항목에 이때 Claude Code가 무시하는 모든 소스가 나열되어 있습니다. |


1045 1046 

1046게이트웨이는 부트스트랩 응답의 상당 부분을 매칭된 정책의 `cli` 또는 `code` 블록과 최상위 게이트웨이 구성에서 도출합니다.1047게이트웨이는 부트스트랩 응답의 상당 부분을 매칭된 정책의 `cli` 또는 `code` 블록과 최상위 게이트웨이 구성에서 도출합니다.

1047 1048 

1048* 모델 목록은 `availableModels`에서 도출합니다. 각 모델의 1M 컨텍스트 옵션은 [Claude Desktop의 확장 컨텍스트](#extended-context-in-claude-desktop)에서 다룹니다1049* `availableModels`에서 도출한 모델 목록. 정책이 [`deniedModels` 또는 `availableModelsMatch: exact`](#what-goes-in-cli)로 차단하는 모델은 목록에서 제외됩니다. 이 필터에는 게이트웨이 서버의 Claude Code v2.1.299 이상이 필요합니다. 각 모델의 1M 컨텍스트 옵션은 [Claude Desktop의 확장 컨텍스트](#extended-context-in-claude-desktop)에서 다룹니다

1049* 비활성화된 도구는 도구 이름만 있는 `permissions.deny` 항목에서 도출합니다. 정책의 `desktop` 블록에서 `disabledBuiltinTools`를 설정하면 게이트웨이는 해당 값과 도출된 목록의 합집합을 제공하므로, 이 방식으로 도구를 더 비활성화할 수는 있지만 `permissions.deny`로 비활성화한 도구를 다시 활성화할 수는 없습니다1050* 비활성화된 도구는 도구 이름만 있는 `permissions.deny` 항목에서 도출합니다. 정책의 `desktop` 블록에서 `disabledBuiltinTools`를 설정하면 게이트웨이는 해당 값과 도출된 목록의 합집합을 제공하므로, 이 방식으로 도구를 더 비활성화할 수는 있지만 `permissions.deny`로 비활성화한 도구를 다시 활성화할 수는 없습니다

1050* `sandbox.network.allowedDomains`에서 도출한 이그레스 허용 목록. 정책의 `desktop` 블록에 `coworkEgressAllowedHosts`를 설정하면 게이트웨이는 도출된 목록 대신 해당 값을 사용합니다. 게이트웨이가 제공하는 허용 목록에 `*`가 포함되어 있고 게이트웨이가 Claude Desktop의 [`allowedWorkspaceFolders`](https://claude.com/docs/third-party/claude-desktop/code#applied-as-managed-policy)를 함께 제공하지 않으면, Claude Desktop은 Code 탭에서 [Bash 샌드박스](/docs/ko/sandboxing)를 켜지 않습니다1051* `sandbox.network.allowedDomains`에서 도출한 이그레스 허용 목록. 정책의 `desktop` 블록에 `coworkEgressAllowedHosts`를 설정하면 게이트웨이는 도출된 목록 대신 해당 값을 사용합니다. 게이트웨이가 제공하는 허용 목록에 `*`가 포함되어 있고 게이트웨이가 Claude Desktop의 [`allowedWorkspaceFolders`](https://claude.com/docs/third-party/claude-desktop/code#applied-as-managed-policy)를 함께 제공하지 않으면, Claude Desktop은 Code 탭에서 [Bash 샌드박스](/docs/ko/sandboxing)를 켜지 않습니다

1051* 게이트웨이 자신을 가리키는 OTLP 엔드포인트와 로그인한 사용자의 ID 속성. 게이트웨이는 해당 엔드포인트에서 받은 내보내기를 `forward_to` 대상으로 중계합니다. [`telemetry.forward_to`](#telemetry)와 `listen.public_url`을 모두 설정한 경우 엔드포인트와 속성을 포함합니다.1052* 게이트웨이 자신을 가리키는 OTLP 엔드포인트와 로그인한 사용자의 ID 속성. 게이트웨이는 해당 엔드포인트에서 받은 내보내기를 `forward_to` 대상으로 중계합니다. [`telemetry.forward_to`](#telemetry)와 `listen.public_url`을 모두 설정한 경우 엔드포인트와 속성을 포함합니다.

Details

8 8 

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

10>10>

11> 클라우드 세션은 Pro, Max 및 Team 사용자, 그리고 프리미엄 시트 또는 Chat + Claude Code 시트가 있는 Enterprise 사용자를 위해 제공됩니다.11> 클라우드 세션은 Pro, Max 및 Team 요금제, 그리고 프리미엄 시트 또는 Chat + Claude Code 시트가 있는 Enterprise 사용자를 위해 제공됩니다. Enterprise 조직에서 [사용자 지정 역할](https://support.claude.com/en/articles/13930452)로 액세스를 관리하는 경우, 클라우드 세션 권한이 포함된 역할도 필요합니다. 해당 권한이 없다면 Owner에게 역할을 확인하고 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles)에서 추가하도록 요청하십시오.

12 12 

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

14 14 


264 264 

265* **`/model`, `/effort`, `/color`, 및 `/rename`**: 터미널 선택기 또는 슬라이더를 열지 않고 대신 인수로 값을 전달합니다(예: `/model sonnet`). 인수 형식은 각 명령의 [가용성 참고 사항](/docs/ko/commands#all-commands)을 따릅니다.265* **`/model`, `/effort`, `/color`, 및 `/rename`**: 터미널 선택기 또는 슬라이더를 열지 않고 대신 인수로 값을 전달합니다(예: `/model sonnet`). 인수 형식은 각 명령의 [가용성 참고 사항](/docs/ko/commands#all-commands)을 따릅니다.

266* **`/fast`**: 빠른 모드가 [계정에서 사용 가능](/docs/ko/fast-mode#requirements)할 때 세션에 대해 [빠른 모드](/docs/ko/fast-mode#use-fast-mode-in-cloud-sessions)를 전환합니다. 세션의 환경에서 Claude Code v2.1.271 이상이 필요합니다.266* **`/fast`**: 빠른 모드가 [계정에서 사용 가능](/docs/ko/fast-mode#requirements)할 때 세션에 대해 [빠른 모드](/docs/ko/fast-mode#use-fast-mode-in-cloud-sessions)를 전환합니다. 세션의 환경에서 Claude Code v2.1.271 이상이 필요합니다.

267* **`/config`**: 웹에서는 값을 설정하는 대신 Claude Code 설정 섹션을 열며, `key=value`를 포함한 명령 뒤의 텍스트는 무시됩니다. 클라우드 세션의 설정을 변경하려면 환경에 [환경 변수](/docs/ko/cloud-environments#set-environment-variables)를 설정하거나, 하나의 저장소가 있는 세션에서 해당 저장소의 `.claude/settings.json`에 키를 커밋하세요. [클라우드 세션의 설정](/docs/ko/settings#settings-in-cloud-sessions)에서 각 세션이 읽는 내용을 나열합니다.267* **`/config`**: 브라우저의 claude.ai/code에서는 값을 설정하는 대신 설정의 Claude Code 섹션을 열며, `key=value`를 포함한 명령 뒤의 텍스트는 무시됩니다. 클라우드 세션의 설정을 변경하려면 환경에 [환경 변수](/docs/ko/cloud-environments#set-environment-variables)를 설정하세요. [프로젝트](/docs/ko/claude-projects) 외부에서 하나의 저장소가 있는 세션에서는 대신 해당 저장소의 `.claude/settings.json`에 키를 커밋하세요. [클라우드 세션의 설정](/docs/ko/settings#settings-in-cloud-sessions)에서 각 세션이 읽는 내용을 나열합니다.

268 268 

269컨텍스트 관리 특히:269컨텍스트 관리 특히:

270 270 


278 278 

279대신 auto-compact window를 변경하려면 환경 변수에 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/ko/env-vars)를 설정하거나 변수가 설정되지 않은 세션에서 토큰 수와 함께 [`/autocompact`](/docs/ko/commands#all-commands)를 실행하세요.279대신 auto-compact window를 변경하려면 환경 변수에 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/ko/env-vars)를 설정하거나 변수가 설정되지 않은 세션에서 토큰 수와 함께 [`/autocompact`](/docs/ko/commands#all-commands)를 실행하세요.

280 280 

281[Subagents](/docs/ko/sub-agents)는 로컬과 동일한 방식으로 작동합니다. Claude는 Agent 도구로 이들을 생성하여 연구 또는 병렬 작업을 별도의 컨텍스트 윈도우로 오프로드하여 주 대화를 더 가볍게 유지할 수 있습니다. 저장소의 `.claude/agents/`에 정의된 Subagents는 자동으로 선택됩니다.281[서브에이전트](/docs/ko/sub-agents)는 로컬과 동일한 방식으로 작동합니다. Claude는 Agent 도구로 이들을 생성하여 연구 또는 병렬 작업을 별도의 컨텍스트 윈도우로 오프로드하여 주 대화를 더 가볍게 유지할 수 있습니다. [프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories)의 스레드 외부에서는 저장소의 `.claude/agents/`에 정의된 서브에이전트가 자동으로 로드됩니다.

282 282 

283[Agent teams](/docs/ko/agent-teams)는 기본적으로 꺼져 있지만 [환경 변수](/docs/ko/cloud-environments#set-environment-variables)에 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`을 추가하여 활성화할 수 있습니다.283[Agent teams](/docs/ko/agent-teams)는 기본적으로 꺼져 있지만 [환경 변수](/docs/ko/cloud-environments#set-environment-variables)에 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`을 추가하여 활성화할 수 있습니다.

284 284 


428[claude.ai/code](https://claude.ai/code)에서 세션을 다시 열면 새 VM이 프로비저닝됩니다.428[claude.ai/code](https://claude.ai/code)에서 세션을 다시 열면 새 VM이 프로비저닝됩니다.

429 429 

430* **복원됨**: 대화 기록430* **복원됨**: 대화 기록

431* **복원되지 않음**: VM이 회수될 때 실행 중이던 서브에이전트 및 셸 명령 같은 백그라운드 작업과 [자체 페이스 `/loop`](/docs/ko/scheduled-tasks#let-claude-choose-the-interval)의 대기 중인 재개 예약. 루프를 다시 시작하려면 `/loop`를 다시 실행합니다.431* **복원되지 않음**: VM이 회수될 때 아직 실행 중이거나 대기 중이던 백그라운드 작업으로, 다음이 포함됩니다.

432 * **셸 명령**: Claude Code가 어떤 명령이 중지되었는지 Claude에게 알려 줍니다. 여전히 필요한 명령을 다시 실행하도록 Claude에게 요청합니다.

433 * **서브에이전트**: Claude Code가 어떤 서브에이전트가 중지되었는지, 그리고 그중 어떤 서브에이전트를 처음부터 다시 시작하는 대신 [재개](/docs/ko/sub-agents#resume-subagents)할 수 있는지 Claude에게 알려 줍니다. 작업을 계속하도록 Claude에게 요청합니다.

434 * **세션 범위 예약 작업**: [세션에서 예약한](/docs/ko/scheduled-tasks) 작업과 다음 반복을 기다리던 `/loop`는 다시 연 세션으로 이어지지 않습니다. 작업을 다시 예약하도록 Claude에게 요청하거나, `/loop`를 다시 실행하여 루프를 다시 시작합니다.

432 435 

433## 제한 사항436## 제한 사항

434 437 

Details

175 175 

176| `~/.claude/` 아래 경로 | 내용 |176| `~/.claude/` 아래 경로 | 내용 |

177| - | - |177| - | - |

178| `history.jsonl` | 입력한 모든 프롬프트, 타임스탬프 및 프로젝트 경로 포함. 위쪽 화살표 회상, `Ctrl+R` 히스토리 검색 및 `!` 셸 명령 완성에 사용됩니다. [HIPAA 구성이 세션에 적용되는](/docs/ko/hipaa-setup#check-how-developers-sign-in-and-connect) 경우 각 스윕이 `cleanupPeriodDays`보다 오래된 항목을 제거합니다. |178| `history.jsonl` | 입력한 프롬프트, 타임스탬프 및 프로젝트 경로 포함. 위쪽 화살표 회상, `Ctrl+R` 히스토리 검색 및 `!` 셸 명령 완성에 사용됩니다. [HIPAA 구성이 세션에 적용되는](/docs/ko/hipaa-setup#check-how-developers-sign-in-and-connect) 경우 각 스윕이 `cleanupPeriodDays`보다 오래된 항목을 제거합니다. |

179| `stats-cache.json` | `/usage`에 표시된 집계된 토큰 및 비용 수 |179| `stats-cache.json` | `/usage`에 표시된 집계된 토큰 및 비용 수 |

180| `remote-settings.json` | [서버 관리 설정](/docs/ko/server-managed-settings)의 캐시된 복사본. 조직의 경우 또는 조직이 구성하지 않은 경우 `{}`. 세션이 [이를 가져올](/docs/ko/server-managed-settings#platform-availability) 때만 존재합니다. Claude Code는 시작 시 및 세션 중 매시간 업데이트를 확인합니다. Claude Code는 로그아웃할 때 삭제합니다. |180| `remote-settings.json` | [서버 관리 설정](/docs/ko/server-managed-settings)의 캐시된 복사본. 조직의 경우 또는 조직이 구성하지 않은 경우 `{}`. 세션이 [이를 가져올](/docs/ko/server-managed-settings#platform-availability) 때만 존재합니다. Claude Code는 시작 시 및 세션 중 매시간 업데이트를 확인합니다. Claude Code는 로그아웃할 때 삭제합니다. |

181| `cache/changelog.md` | Claude Code 변경 로그의 캐시된 복사본, `/release-notes`에 표시됨. 백그라운드에서 새로 고쳐집니다. |181| `cache/changelog.md` | Claude Code 변경 로그의 캐시된 복사본, `/release-notes`에 표시됨. 백그라운드에서 새로 고쳐집니다. |

claude-projects.md +18 −22

Details

52* **스레드**: 작업자입니다. 각각은 자신의 컨텍스트 윈도우를 가진 별도의 세션으로, 한 가지 작업을 수행하고 완료되면 대화에 보고합니다. 클라우드 스레드는 자신의 브랜치에서 작업하고 작업이 필요할 때 풀 리퀘스트를 엽니다.52* **스레드**: 작업자입니다. 각각은 자신의 컨텍스트 윈도우를 가진 별도의 세션으로, 한 가지 작업을 수행하고 완료되면 대화에 보고합니다. 클라우드 스레드는 자신의 브랜치에서 작업하고 작업이 필요할 때 풀 리퀘스트를 엽니다.

53* **모든 클라우드 스레드가 시작할 때 가지는 것**:53* **모든 클라우드 스레드가 시작할 때 가지는 것**:

54 * 프로젝트의 저장소와 파일, 그리고 [지침과 메모리](#give-a-project-standing-context)54 * 프로젝트의 저장소와 파일, 그리고 [지침과 메모리](#give-a-project-standing-context)

55 * [프로젝트의 각 저장소](#what-threads-pick-up-from-your-repositories)의 `CLAUDE.md`와 스킬, 그리고 하나의 저장소를 가진 프로젝트에서는 그 저장소의 권한 규칙과 훅도 포함55 * [프로젝트의 각 저장소](#what-threads-pick-up-from-your-repositories)에 있는 `CLAUDE.md`(단, 저장소의 스킬, `.claude/settings.json`, `.mcp.json`은 포함되지 않음)

56 * claude.ai 계정의 [커넥터](#get-skills-plugins-connectors-and-tools-into-threads)56 * claude.ai 계정의 [커넥터](#get-skills-plugins-connectors-and-tools-into-threads)

57 * 네트워크 액세스, 환경 변수, 네트워크 시크릿, 설치된 도구를 설정하는 [클라우드 환경](#choose-an-environment-for-threads)57 * 네트워크 액세스, 환경 변수, 네트워크 시크릿, 설치된 도구를 설정하는 [클라우드 환경](#choose-an-environment-for-threads)

58* **개요 창**: [모든 스레드를 한 번에 보고](#see-what-needs-you-in-overview) 어느 것이 사용자를 필요로 하는지 보는 곳입니다. 다른 탭은 추가한 파일과 스레드가 생성한 파일을 위한 **라이브러리**, 스레드가 열은 풀 리퀘스트를 위한 **풀 리퀘스트**, 프로젝트의 예약된 작업을 위한 **예약 작업**입니다.58* **개요 창**: [모든 스레드를 한 번에 보고](#see-what-needs-you-in-overview) 어느 것이 사용자를 필요로 하는지 보는 곳입니다. 다른 탭은 추가한 파일과 스레드가 생성한 파일을 위한 **라이브러리**, 스레드가 열은 풀 리퀘스트를 위한 **풀 리퀘스트**, 프로젝트의 예약된 작업을 위한 **예약 작업**입니다.


239 239 

240스레드는 스레드의 모델이 지원할 때 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서 실행되므로, 대부분의 도구 호출은 사용자에게 묻지 않고 실행됩니다. 스레드가 사용자의 승인이 필요할 때, 프롬프트는 해당 스레드 내부에 있고 스레드는 거기서 답변할 때까지 기다립니다. 프로젝트 대화에서 Claude에 진행하라고 말하는 것은 도달하지 않습니다.240스레드는 스레드의 모델이 지원할 때 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서 실행되므로, 대부분의 도구 호출은 사용자에게 묻지 않고 실행됩니다. 스레드가 사용자의 승인이 필요할 때, 프롬프트는 해당 스레드 내부에 있고 스레드는 거기서 답변할 때까지 기다립니다. 프로젝트 대화에서 Claude에 진행하라고 말하는 것은 도달하지 않습니다.

241 241 

242각 승인은 해당 프롬프트에 적용되며, 더 광범위한 옵션을 선택하면 해당 스레드의 나머지에 적용됩니다.242각 승인은 해당 프롬프트에 적용되며, 더 광범위한 옵션을 선택하면 해당 스레드의 나머지에 적용됩니다. 클라우드 스레드는 저장소의 `.claude/settings.json`에서 [권한 규칙](/docs/ko/permissions)을 읽지 않으므로, 자동 모드와 각 스레드 내에서 주는 승인에 의존합니다.

243 

244모든 스레드가 특정 명령을 묻지 않고 실행하도록 하거나 일부를 차단하려면, 저장소의 `.claude/settings.json`에 [권한 규칙](/docs/ko/permissions)을 추가합니다. 프로젝트의 클라우드 스레드가 이 규칙을 적용하는지 확인합니다.

245 

246* **저장소 하나**: 클라우드 스레드가 규칙을 적용합니다. [스레드가 저장소에서 선택하는 것](#what-threads-pick-up-from-your-repositories)을 참조합니다.

247* **여러 저장소, Anthropic 호스팅 환경**: 어떤 저장소의 권한 규칙도 클라우드 스레드에 도달하지 않으므로, 자동 모드와 각 스레드 내에서 주는 승인에 의존합니다.

248* **여러 저장소, 자체 호스팅 환경**: [어떤 저장소의 설정이 적용되는지](/docs/ko/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories)를 참조합니다.

249 243 

250### 자신의 컴퓨터에서 스레드 실행244### 자신의 컴퓨터에서 스레드 실행

251 245 


313 307 

314### 추가할 저장소 결정하기308### 추가할 저장소 결정하기

315 309 

316프로젝트에 추가하는 저장소는 코드, `CLAUDE.md`, 스킬을 포함한 모든 것이 모든 클라우드 스레드에 포함됩니다. 추가하지 않은 저장소도 여전히 접근 가능합니다: 클라우드 스레드는 작업에 필요할 때 자신에게 저장소를 추가할 수 있습니다. 대부분의 프로젝트는 둘 다 사용합니다:310프로젝트에 추가하는 저장소는 코드와 `CLAUDE.md`가 모든 클라우드 스레드에 포함되지만, [스킬, `.claude/settings.json`, `.mcp.json`은 포함되지 않습니다](#what-threads-pick-up-from-your-repositories). 추가하지 않은 저장소도 여전히 접근 가능합니다: 클라우드 스레드는 작업에 필요할 때 자신에게 저장소를 추가할 수 있습니다. 대부분의 프로젝트는 둘 다 사용합니다:

317 311 

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

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

320 314 

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

322 316 


335 329 

336### 저장소에서 스레드가 가져오는 것330### 저장소에서 스레드가 가져오는 것

337 331 

338각 클라우드 스레드는 프로젝트의 모든 저장소를 복제하고 모든 저장소에서 `CLAUDE.md`와 스킬을 로드합니다. 권한 규칙, 훅, `env`는 스레드가 시작하는 디렉토리의 `.claude/settings.json`에서만 옵니다.332클라우드 스레드는 프로젝트에 저장소가 하나이든 여러 개이든 각 저장소의 `CLAUDE.md` 지침은 로드하지만, 스킬, `.mcp.json` 서버, `.claude/settings.json`은 로드하지 않습니다.

339 333 

340| 각 저장소에서 | 한 저장소 | 여러 저장소 |334| 각 저장소에서 | 클라우드 스레드에서 |

341| :- | :- | :- |335| :- | :- |

342| `CLAUDE.md` | 스레드가 시작할 때 로드됨 | 스레드가 시작할 때 모든 저장소에서 로드됨 |336| 저장소 루트의 `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/` | 스레드가 시작할 때 모든 저장소에서 로드됨. 하위 디렉토리의 `CLAUDE.md` 파일과 [경로별 규칙](/docs/ko/memory#path-specific-rules)은 로드되지 않습니다 |

343| `.claude/` 아래의 스킬, 에이전트, 명령 | 로드됨 | 모든 저장소에서 로드됨 |337| `.claude/skills/` 아래의 스킬 | 로드되지 않음. 대신 [스킬, 플러그인, 커넥터, 도구를 스레드에 가져오기](#get-skills-plugins-connectors-and-tools-into-threads)에 설명된 대로 claude.ai 계정에서 스킬을 활성화하세요 |

344| `.claude/settings.json`에서 활성화된 플러그인 | 로드되지 않음. 대신 **프로젝트 설정 > 플러그인**에서 플러그인을 추가하세요 | 로드되지 않음. 대신 **프로젝트 설정 > 플러그인**에서 플러그인을 추가하세요 |338| `.claude/` 아래의 에이전트와 명령 | 로드되지 않음. 사용하려면 [자신의 컴퓨터에서 스레드를 실행하세요](#run-a-thread-on-your-own-computer) |

345| `.claude/settings.json`에서 정의된 권한 규칙, 훅, `env` | 스레드에 적용됩니다. 단, [클라우드 세션이 인정하지 않는](/docs/ko/cloud-environments#what-carries-over-from-your-setup) `env` 키는 제외됩니다 | Anthropic 호스팅 환경에서는 적용되지 않습니다. 자체 호스팅 환경의 경우 [어떤 저장소의 설정이 적용되는지](/docs/ko/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories)를 참조하세요 |339| `.mcp.json`의 MCP 서버 | 로드되지 않음. 대신 [스킬, 플러그인, 커넥터, 도구를 스레드에 가져오기](#get-skills-plugins-connectors-and-tools-into-threads)에 설명된 대로 claude.ai 계정의 커넥터를 사용하세요 |

346 340| `.claude/settings.json`에서 활성화된 플러그인 | 로드되지 않음. 대신 **프로젝트 설정 > 플러그인**에서 플러그인을 추가하세요 |

347여러 저장소가 있는 프로젝트에서는 프로젝트 지침에 상시 규칙을 넣고 [클라우드 환경](#choose-an-environment-for-threads)을 통해 스레드에 환경 변수를 제공하세요.341| `.claude/settings.json`의 권한 규칙 | 적용되지 않음. [승인을 기다리는 스레드 차단 해제하기](#unblock-a-thread-waiting-on-approval)에 설명된 대로 스레드 안에서 도구 호출을 승인하거나, [자신의 컴퓨터에서 스레드를 실행하세요](#run-a-thread-on-your-own-computer) |

342| `.claude/settings.json`의 훅 | 실행되지 않음. 훅을 사용하려면 [자신의 컴퓨터에서 스레드를 실행하세요](#run-a-thread-on-your-own-computer) |

343| `.claude/settings.json`의 `env` | 적용되지 않음. [클라우드 환경](#choose-an-environment-for-threads)에서 환경 변수를 설정하세요 |

348 344 

349### 스레드의 환경 선택하기345### 스레드의 환경 선택하기

350 346 


356 352 

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

358 354 

359* 스킬, 서브에이전트, 명령: 프로젝트에 추가한 저장소에 커밋합니다. 예를 들어 `.claude/skills/<skill-name>/SKILL.md`의 스킬입니다. 각 클라우드 스레드는 프로젝트의 모든 저장소를 복제하고 각 저장소에서 `.claude/skills/`, `.claude/agents/`, `.claude/commands/`를 로드하므로, 한 저장소에 커밋된 스킬은 모든 클라우드 스레드에서 사용 가능합니다. 클라우드 스레드는 또한 [claude.ai 계정에 대해 활성화한 스킬](/docs/ko/skills#skills-in-cowork-and-cloud-sessions)을 로드합니다.355* 스킬: claude.ai 계정에서 활성화하면 클라우드 스레드가 [거기서 활성화한 스킬](/docs/ko/skills#skills-in-cowork-and-cloud-sessions)을 로드합니다. 단, [자체 호스팅 환경의 일부 스레드](/docs/ko/self-hosted-environments-configuration#how-each-session’s-config-is-assembled)는 예외입니다. 저장소의 `.claude/skills/`에 커밋된 스킬은 클라우드 스레드에 로드되지 않습니다.

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

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

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

363 359 

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

Details

8 8 

9Claude Security 플러그인은 Claude Code 세션 내에서 코드베이스의 다중 에이전트 취약점 스캔을 실행합니다. Claude 에이전트 팀이 아키텍처를 매핑하고, 위협 모델을 구축하고, 취약점을 찾으며, 보고서를 작성하기 전에 모든 발견 사항을 독립적으로 검토합니다. 플러그인을 사용하여 전체 저장소를 스캔하거나 [변경 사항만 스캔](#scan-only-your-changes)할 수 있습니다. 예를 들어 브랜치의 diff, 풀 요청의 diff 또는 단일 커밋을 스캔한 후, 선택한 발견 사항을 검토하고 직접 적용할 수 있는 패치로 변환합니다.9Claude Security 플러그인은 Claude Code 세션 내에서 코드베이스의 다중 에이전트 취약점 스캔을 실행합니다. Claude 에이전트 팀이 아키텍처를 매핑하고, 위협 모델을 구축하고, 취약점을 찾으며, 보고서를 작성하기 전에 모든 발견 사항을 독립적으로 검토합니다. 플러그인을 사용하여 전체 저장소를 스캔하거나 [변경 사항만 스캔](#scan-only-your-changes)할 수 있습니다. 예를 들어 브랜치의 diff, 풀 요청의 diff 또는 단일 커밋을 스캔한 후, 선택한 발견 사항을 검토하고 직접 적용할 수 있는 패치로 변환합니다.

10 10 

11플러그인은 세션에서 로컬로 실행되며, [Claude Code에서 액세스할 수 있는 모든 모델을 사용](#models-and-providers)하고, 각 스캔은 [사용량](/docs/ko/costs)에 포함됩니다. 저장소를 모니터링하는 관리형 서비스를 원하거나 [Claude Mythos](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5)에서 스캔을 실행하려면 Enterprise 플랜에서 사용 가능한 [Claude Security](https://claude.com/product/claude-security) 제품을 참조하십시오. 플러그인은 GitLab 또는 Bitbucket에서 호스팅되는 저장소나 인바운드 연결을 허용하지 않는 네트워크의 저장소와 같이 관리형 제품이 도달할 수 없는 코드에 도달합니다.11플러그인은 세션에서 로컬로 실행되며, [Claude Code에서 액세스할 수 있는 모든 모델을 사용](#models-and-providers)하고, 각 스캔은 [사용량](/docs/ko/costs)에 포함됩니다. 저장소를 모니터링하는 관리형 서비스를 원하거나 [Claude Mythos](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5)에서 스캔을 실행하려면 Enterprise 플랜에서 사용 가능한 [Claude Security](https://claude.com/product/claude-security) 제품을 참조하십시오.

12 12 

13플러그인은 Claude Code에 이미 있는 검토 도구와도 다릅니다. [보안 지침 플러그인](/docs/ko/security-guidance)은 Claude가 코드를 작성할 때 검토하고, [`/security-review`](/docs/ko/commands#all-commands)는 브랜치에 대해 단일 패스를 실행하며, [Code Review](/docs/ko/code-review)는 풀 요청을 검토합니다. 계층이 어떻게 쌓이는지에 대해서는 [플러그인이 다른 보안 도구와 어떻게 맞는지](#how-the-plugin-fits-with-other-security-tools)를 참조하십시오.13플러그인은 Claude Code에 이미 있는 검토 도구와도 다릅니다. [보안 지침 플러그인](/docs/ko/security-guidance)은 Claude가 코드를 작성할 때 검토하고, [`/security-review`](/docs/ko/commands#all-commands)는 브랜치에 대해 단일 패스를 실행하며, [Code Review](/docs/ko/code-review)는 풀 요청을 검토합니다. 계층이 어떻게 쌓이는지에 대해서는 [플러그인이 다른 보안 도구와 어떻게 맞는지](#how-the-plugin-fits-with-other-security-tools)를 참조하십시오.

14 14 

Details

64| `--agent` | 현재 세션에 대한 에이전트를 지정합니다(`agent` 설정 재정의) | `claude --agent my-custom-agent` |64| `--agent` | 현재 세션에 대한 에이전트를 지정합니다(`agent` 설정 재정의) | `claude --agent my-custom-agent` |

65| `--agents` | JSON을 통해 사용자 정의 서브에이전트를 동적으로 정의합니다. [CLI 정의 서브에이전트에 대해 나열된 필드](/docs/ko/sub-agents#choose-the-subagent-scope)를 허용합니다. `--print`를 사용하면 값이 대신 JSON 객체를 보유하는 JSON 파일의 경로일 수 있습니다. 파일 형식에는 Claude Code v2.1.281 이상이 필요합니다. Claude Code는 시작 시 값을 검증하고 잘못된 값에서 종료합니다. 메시지 및 검증을 건너뛰는 플래그와 환경 변수는 [`Invalid --agents configuration`](/docs/ko/errors#invalid-agents-configuration)을 참조하세요. 검증에는 Claude Code v2.1.242 이상이 필요합니다 | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |65| `--agents` | JSON을 통해 사용자 정의 서브에이전트를 동적으로 정의합니다. [CLI 정의 서브에이전트에 대해 나열된 필드](/docs/ko/sub-agents#choose-the-subagent-scope)를 허용합니다. `--print`를 사용하면 값이 대신 JSON 객체를 보유하는 JSON 파일의 경로일 수 있습니다. 파일 형식에는 Claude Code v2.1.281 이상이 필요합니다. Claude Code는 시작 시 값을 검증하고 잘못된 값에서 종료합니다. 메시지 및 검증을 건너뛰는 플래그와 환경 변수는 [`Invalid --agents configuration`](/docs/ko/errors#invalid-agents-configuration)을 참조하세요. 검증에는 Claude Code v2.1.242 이상이 필요합니다 | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |

66| `--allow-dangerously-skip-permissions` | `Shift+Tab` 모드 사이클에 `bypassPermissions`를 추가하되 시작하지 않습니다. `plan`과 같은 다른 모드에서 시작하고 나중에 `bypassPermissions`로 전환할 수 있습니다. [권한 모드](/docs/ko/permission-modes#skip-all-checks-with-bypasspermissions-mode)를 참조하세요 | `claude --permission-mode plan --allow-dangerously-skip-permissions` |66| `--allow-dangerously-skip-permissions` | `Shift+Tab` 모드 사이클에 `bypassPermissions`를 추가하되 시작하지 않습니다. `plan`과 같은 다른 모드에서 시작하고 나중에 `bypassPermissions`로 전환할 수 있습니다. [권한 모드](/docs/ko/permission-modes#skip-all-checks-with-bypasspermissions-mode)를 참조하세요 | `claude --permission-mode plan --allow-dangerously-skip-permissions` |

67| `--allowedTools`, `--allowed-tools` | [네트워크 경로](/docs/ko/permissions#network-paths)에서의 읽기를 제외하고, 권한을 묻지 않고 실행되는 도구입니다. 패턴 매칭에 대해 [권한 규칙 구문](/docs/ko/settings-reference#permission-rule-syntax)을 참조하세요. 사용 가능한 도구를 제한하려면 대신 `--tools`를 사용하세요. [작업 추적 도구](/docs/ko/tools-reference#task-tool-availability) 중 하나를 여기에 이름 지으면 Claude Code도 세션을 옵트인합니다 | `"Bash(git log *)" "Bash(git diff *)" "Read"` |67| `--allowedTools`, `--allowed-tools` | [네트워크 경로](/docs/ko/permissions#network-paths)에서의 읽기를 제외하고, 권한을 묻지 않고 실행되는 도구입니다. 패턴 매칭에 대해 [권한 규칙 구문](/docs/ko/settings-reference#permission-rule-syntax)을 참조하세요. 사용 가능한 도구를 제한하려면 대신 `--tools`를 사용하세요. [작업 추적 도구](/docs/ko/tools-reference#task-tool-availability) 중 하나를 여기에 지정하면 Claude Code는 해당 세션에서 작업 추적 도구도 활성화합니다 | `"Bash(git log *)" "Bash(git diff *)" "Read"` |

68| `--append-subagent-system-prompt` | [포크된 서브에이전트](/docs/ko/sub-agents#fork-the-current-conversation)를 제외한 모든 [서브에이전트](/docs/ko/sub-agents)의 시스템 프롬프트 끝에 사용자 정의 텍스트를 추가합니다. 포크된 서브에이전트는 대화 자체의 프롬프트를 재사용합니다. 중첩된 서브에이전트를 포함합니다. `-p`를 사용한 비대화형 모드에서만 적용됩니다. Claude Code v2.1.205 이상이 필요합니다 | `claude -p --append-subagent-system-prompt "Cite file paths in every answer" "query"` |68| `--append-subagent-system-prompt` | [포크된 서브에이전트](/docs/ko/sub-agents#fork-the-current-conversation)를 제외한 모든 [서브에이전트](/docs/ko/sub-agents)의 시스템 프롬프트 끝에 사용자 정의 텍스트를 추가합니다. 포크된 서브에이전트는 대화 자체의 프롬프트를 재사용합니다. 중첩된 서브에이전트를 포함합니다. `-p`를 사용한 비대화형 모드에서만 적용됩니다. Claude Code v2.1.205 이상이 필요합니다 | `claude -p --append-subagent-system-prompt "Cite file paths in every answer" "query"` |

69| `--append-subagent-system-prompt-file` | 파일에서 텍스트를 로드하고 [서브에이전트](/docs/ko/sub-agents) 시스템 프롬프트에 추가합니다. 명령줄에 전달하기에 너무 긴 텍스트의 경우 `--append-subagent-system-prompt`의 대안입니다. 두 플래그를 결합할 수 없습니다. `-p`를 사용한 비대화형 모드에서만 적용됩니다. Claude Code v2.1.261 이상이 필요합니다 | `claude -p --append-subagent-system-prompt-file ./subagent-rules.txt "query"` |69| `--append-subagent-system-prompt-file` | 파일에서 텍스트를 로드하고 [서브에이전트](/docs/ko/sub-agents) 시스템 프롬프트에 추가합니다. 명령줄에 전달하기에 너무 긴 텍스트의 경우 `--append-subagent-system-prompt`의 대안입니다. 두 플래그를 결합할 수 없습니다. `-p`를 사용한 비대화형 모드에서만 적용됩니다. Claude Code v2.1.261 이상이 필요합니다 | `claude -p --append-subagent-system-prompt-file ./subagent-rules.txt "query"` |

70| `--append-system-prompt` | 기본 시스템 프롬프트 끝에 사용자 정의 텍스트를 추가합니다 | `claude --append-system-prompt "Always use TypeScript"` |70| `--append-system-prompt` | 기본 시스템 프롬프트 끝에 사용자 정의 텍스트를 추가합니다 | `claude --append-system-prompt "Always use TypeScript"` |


135| `--teleport` | 로컬 터미널에서 [클라우드 세션](/docs/ko/claude-code-on-the-web)을 재개합니다 | `claude --teleport` |135| `--teleport` | 로컬 터미널에서 [클라우드 세션](/docs/ko/claude-code-on-the-web)을 재개합니다 | `claude --teleport` |

136| `--teammate-mode` | [에이전트 팀](/docs/ko/agent-teams) 팀원이 표시되는 방식을 설정합니다: `in-process`(기본값), `auto`, `tmux` 또는 `iterm2`. 이 세션에 대해 [`teammateMode`](/docs/ko/settings-reference#teammatemode) 설정을 재정의합니다. [디스플레이 모드 선택](/docs/ko/agent-teams#choose-a-display-mode)을 참조하세요 | `claude --teammate-mode auto` |136| `--teammate-mode` | [에이전트 팀](/docs/ko/agent-teams) 팀원이 표시되는 방식을 설정합니다: `in-process`(기본값), `auto`, `tmux` 또는 `iterm2`. 이 세션에 대해 [`teammateMode`](/docs/ko/settings-reference#teammatemode) 설정을 재정의합니다. [디스플레이 모드 선택](/docs/ko/agent-teams#choose-a-display-mode)을 참조하세요 | `claude --teammate-mode auto` |

137| `--tmux` | 워크트리에 대한 tmux 세션을 만듭니다. `--worktree`가 필요합니다. 사용 가능할 때 iTerm2 네이티브 창을 사용합니다. 기존 tmux의 경우 `--tmux=classic`을 전달합니다 | `claude -w feature-auth --tmux` |137| `--tmux` | 워크트리에 대한 tmux 세션을 만듭니다. `--worktree`가 필요합니다. 사용 가능할 때 iTerm2 네이티브 창을 사용합니다. 기존 tmux의 경우 `--tmux=classic`을 전달합니다 | `claude -w feature-auth --tmux` |

138| `--tools` | Claude가 사용할 수 있는 기본 제공 도구를 제한합니다. 모두 비활성화하려면 `""`, 기본 집합의 경우 `"default"` 또는 `"Bash,Edit,Read"`와 같은 도구 이름을 사용합니다. macOS, Linux 및 WSL에서 기본 집합은 [Glob 도구 동작](/docs/ko/tools-reference#glob-tool-behavior)에 설명된 대로 `Glob` 및 `Grep`을 제외합니다. [작업 추적 도구](/docs/ko/tools-reference#task-tool-availability) 중 하나를 여기에 이름 지으면 Claude Code도 세션을 옵트인합니다. 플래그는 MCP 도구에 영향을 주지 않습니다. 이들도 거부하려면 `--disallowedTools "mcp__*"`를 사용합니다. [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)을 생략하는 목록은 제거하지 않습니다. `""`는 MCP 도구가 남아 있지 않을 때만 제거합니다 | `claude --tools "Bash,Edit,Read"` |138| `--tools` | Claude가 사용할 수 있는 기본 제공 도구를 제한합니다. 모두 비활성화하려면 `""`, 기본 집합의 경우 `"default"` 또는 `"Bash,Edit,Read"`와 같은 도구 이름을 사용합니다. macOS, Linux 및 WSL에서 기본 집합은 [Glob 도구 동작](/docs/ko/tools-reference#glob-tool-behavior)에 설명된 대로 `Glob` 및 `Grep`을 제외합니다. [작업 추적 도구](/docs/ko/tools-reference#task-tool-availability) 중 하나를 여기에 지정하면 Claude Code는 또한 해당 세션을 옵트인한 것으로 처리합니다. 플래그는 MCP 도구에 영향을 주지 않습니다. 이들도 거부하려면 `--disallowedTools "mcp__*"`를 사용합니다. [`EndConversation`](/docs/ko/tools-reference#endconversation-tool-behavior)을 생략하는 목록은 제거하지 않습니다. `""`는 MCP 도구가 남아 있지 않을 때만 제거합니다 | `claude --tools "Bash,Edit,Read"` |

139| `--verbose` | 자세한 로깅을 활성화하고 전체 턴별 출력을 표시합니다. 이 세션에 대해 [`viewMode`](/docs/ko/settings-reference#viewmode) 설정을 재정의합니다 | `claude --verbose` |139| `--verbose` | 자세한 로깅을 활성화하고 전체 턴별 출력을 표시합니다. 이 세션에 대해 [`viewMode`](/docs/ko/settings-reference#viewmode) 설정을 재정의합니다 | `claude --verbose` |

140| `--version`, `-v` | 버전 번호를 출력합니다 | `claude -v` |140| `--version`, `-v` | 버전 번호를 출력합니다 | `claude -v` |

141| `--worktree`, `-w` | Claude를 `<repo>/.claude/worktrees/<name>`의 격리된 [git 워크트리](/docs/ko/worktrees)에서 시작합니다. 이름을 지정하지 않으면 Claude Code가 생성합니다. `#<number>`, GitHub 풀 요청 URL 또는 GitLab 병합 요청 URL을 전달하여 [해당 PR 또는 MR을 `origin`에서 가져오고 워크트리를 분기합니다](/docs/ko/worktrees#branch-from-a-pull-request). GitLab 병합 요청에서 분기하려면 Claude Code v2.1.233 이상이 필요합니다 | `claude -w feature-auth` |141| `--worktree`, `-w` | Claude를 `<repo>/.claude/worktrees/<name>`의 격리된 [git 워크트리](/docs/ko/worktrees)에서 시작합니다. 이름을 지정하지 않으면 Claude Code가 생성합니다. `#<number>`, GitHub 풀 요청 URL 또는 GitLab 병합 요청 URL을 전달하여 [해당 PR 또는 MR을 `origin`에서 가져오고 워크트리를 분기합니다](/docs/ko/worktrees#branch-from-a-pull-request). GitLab 병합 요청에서 분기하려면 Claude Code v2.1.233 이상이 필요합니다 | `claude -w feature-auth` |

Details

164 164 

165### 환경 보관하기165### 환경 보관하기

166 166 

167본인 환경 중 하나를 보관하려면 편집용으로 열고 **Archive environment**를 선택한 다음 확인하십시오. 환경이 [조직과 공유된](#organization-shared-environments) 경우에는 Owner가 [관리자 설정](https://claude.ai/admin-settings)의 **Cloud environments** 페이지에서 보관하므로, 본인이 Owner가 아니라면 Owner에게 요청하십시오. 환경은 삭제할 수 없으며 보관만 가능합니다.167본인 환경 중 하나를 보관하려면 편집용으로 열고 **Archive environment**를 선택한 다음 확인하십시오. 환경이 [조직과 공유된](#organization-shared-environments) 경우에는 Owner가 [관리자 설정](https://claude.ai/admin-settings)의 **Cloud environments** 페이지에서 보관하므로, 본인이 Owner가 아니라면 Owner에게 요청하십시오.

168 168 

169보관은 실행 중인 세션이 아닌 새 세션에 영향을 줍니다.169보관은 실행 중인 세션이 아닌 새 세션에 영향을 줍니다.

170 170 


175 * **저장된 CLI 기본값**: 해당 환경이 저장된 [CLI 기본값](#select-an-environment-from-the-cli)이었다면, 목록에 Anthropic 호스팅 환경이 있을 경우 Claude Code는 CLI 클라우드 세션을 해당 환경에서 시작합니다. 그렇지 않으면 목록에서 [Remote Control 브리지 환경](#the-default-environment)이 아닌 첫 번째 환경에서 시작합니다.175 * **저장된 CLI 기본값**: 해당 환경이 저장된 [CLI 기본값](#select-an-environment-from-the-cli)이었다면, 목록에 Anthropic 호스팅 환경이 있을 경우 Claude Code는 CLI 클라우드 세션을 해당 환경에서 시작합니다. 그렇지 않으면 목록에서 [Remote Control 브리지 환경](#the-default-environment)이 아닌 첫 번째 환경에서 시작합니다.

176 * **명시적으로 구성된 경우**: [클라우드 예약 작업](/docs/ko/routines#environments-and-network-access)처럼 해당 환경이 명시적으로 구성된 항목은 그 환경에서 새 세션을 시작할 수 없습니다. 다른 환경을 지정하십시오.176 * **명시적으로 구성된 경우**: [클라우드 예약 작업](/docs/ko/routines#environments-and-network-access)처럼 해당 환경이 명시적으로 구성된 항목은 그 환경에서 새 세션을 시작할 수 없습니다. 다른 환경을 지정하십시오.

177 177 

178Anthropic 호스팅 환경이 더 이상 필요하지 않으면 보관하십시오. 환경 대화 상자와 **Cloud environments** 관리자 페이지 모두 Anthropic 호스팅 환경을 삭제하는 옵션을 제공하지 않습니다. 환경이 [자체 호스팅](/docs/ko/self-hosted-environments) 환경인 경우 Owner가 관리자 설정의 **Cloud environments** 페이지에서 삭제할 수 있습니다. 본인이 Owner가 아니라면 Owner에게 삭제를 요청하십시오.

179 

178### 조직 공유 환경180### 조직 공유 환경

179 181 

180Team 및 Enterprise 요금제에서는 Owner가 조직의 모든 구성원과 공유되는 클라우드 환경을 만들 수 있습니다. 동일한 역할이 [자체 호스팅 환경](/docs/ko/self-hosted-environments)을 포함하여 **Cloud environments** 관리자 페이지의 다른 모든 항목도 관리하며, Admin 역할은 이 페이지를 열 수 없습니다. 이 페이지를 열 수 있는 전체 역할 목록은 [서버 관리 설정 관리](/docs/ko/server-managed-settings#access-control)에 대한 목록과 동일합니다.182Team 및 Enterprise 요금제에서는 Owner가 조직의 모든 구성원과 공유되는 클라우드 환경을 만들 수 있습니다. 동일한 역할이 [자체 호스팅 환경](/docs/ko/self-hosted-environments)을 포함하여 **Cloud environments** 관리자 페이지의 다른 모든 항목도 관리하며, Admin 역할은 이 페이지를 열 수 없습니다. 이 페이지를 열 수 있는 전체 역할 목록은 [서버 관리 설정 관리](/docs/ko/server-managed-settings#access-control)에 대한 목록과 동일합니다.


275 277 

276### 설정에서 전달되는 항목278### 설정에서 전달되는 항목

277 279 

280> [!NOTE]

281>

282> 이 표의 저장소 구성 중 [프로젝트](/docs/ko/claude-projects)의 클라우드 스레드는 저장소 루트의 `CLAUDE.md`, `.claude/CLAUDE.md`, 그리고 [경로별 규칙](/docs/ko/memory#path-specific-rules)이 아닌 `.claude/rules/` 파일만 로드합니다. [스레드가 저장소에서 가져오는 항목](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories)을 참조하세요.

283 

278클라우드 세션은 저장소의 새로운 복제본에서 시작됩니다. 저장소에 커밋한 모든 항목을 사용할 수 있습니다. 자신의 머신에만 설치하거나 구성한 항목은 세션에서 사용할 수 없습니다. 조직의 정책은 [서버 관리형 설정](/docs/ko/server-managed-settings)을 통해 별도로 도착합니다.284클라우드 세션은 저장소의 새로운 복제본에서 시작됩니다. 저장소에 커밋한 모든 항목을 사용할 수 있습니다. 자신의 머신에만 설치하거나 구성한 항목은 세션에서 사용할 수 없습니다. 조직의 정책은 [서버 관리형 설정](/docs/ko/server-managed-settings)을 통해 별도로 도착합니다.

279 285 

280| | 클라우드 세션에서 사용 가능 | 이유 |286| | 클라우드 세션에서 사용 가능 | 이유 |


465 471 

466사용자 수준 `~/.claude/settings.json`에 SessionStart hook이 있으면 클라우드에서 이를 기대하지 마십시오. 사용자 수준 설정은 컴퓨터에 유지됩니다. 다른 hook이 실행되는지 여부는 세션이 실행되는 위치에 따라 다릅니다.472사용자 수준 `~/.claude/settings.json`에 SessionStart hook이 있으면 클라우드에서 이를 기대하지 마십시오. 사용자 수준 설정은 컴퓨터에 유지됩니다. 다른 hook이 실행되는지 여부는 세션이 실행되는 위치에 따라 다릅니다.

467 473 

468* **Anthropic 호스팅 환경**: Claude Code는 리포지토리의 hook과 조직의 [서버 관리 설정](/docs/ko/server-managed-settings)의 hook을 실행합니다. [Claude Tag](https://claude.com/docs/claude-tag/overview) 세션은 서버 관리 설정을 받지 않으므로 서버 관리 설정의 hook은 그곳에서 실행되지 않습니다.474* **Anthropic 호스팅 환경**: Claude Code는 조직의 [서버 관리형 설정](/docs/ko/server-managed-settings)의 훅을 실행하고, [프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories) 스레드 외부에서는 저장소의 훅도 실행합니다. [Claude Tag](https://claude.com/docs/claude-tag/overview) 세션은 서버 관리형 설정을 받지 않으므로 서버 관리형 설정의 훅은 그곳에서 실행되지 않습니다.

469* **[자체 호스팅 환경](/docs/ko/self-hosted-environments-configuration#permissions-and-tool-approval)**: Claude Code는 또한 운영자가 실행기 호스트의 `~/.claude/`에서 시드한 hook과 실행기 이미지의 관리 설정 파일의 hook을 실행합니다. 해당 파일이 [Claude Code가 적용하는 관리 소스](/docs/ko/managed-settings#how-claude-code-combines-managed-sources) 중 하나인 경우입니다.475* **[자체 호스팅 환경](/docs/ko/self-hosted-environments-configuration#permissions-and-tool-approval)**: Claude Code는 또한 운영자가 실행기 호스트의 `~/.claude/`에서 시드한 hook과 실행기 이미지의 관리 설정 파일의 hook을 실행합니다. 해당 파일이 [Claude Code가 적용하는 관리 소스](/docs/ko/managed-settings#how-claude-code-combines-managed-sources) 중 하나인 경우입니다.

470 476 

471### SessionStart hook으로 종속성 설치477### SessionStart hook으로 종속성 설치

472 478 

473클라우드 세션에서만 종속성을 설치하려면 SessionStart hook을 실행 위치를 확인하는 스크립트와 쌍으로 만듭니다.479[프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories) 외부의 클라우드 세션에서만 의존성을 설치하려면 SessionStart 훅을 실행 위치를 확인하는 스크립트와 쌍으로 만듭니다.

474 480 

475먼저 리포지토리의 `.claude/settings.json`에 SessionStart hook을 추가합니다. 이 구성은 Claude Code에 세션이 시작되거나 재개될 때마다 리포지토리에서 `scripts/install_pkgs.sh`를 실행하도록 지시합니다.481먼저 리포지토리의 `.claude/settings.json`에 SessionStart hook을 추가합니다. 이 구성은 Claude Code에 세션이 시작되거나 재개될 때마다 리포지토리에서 `scripts/install_pkgs.sh`를 실행하도록 지시합니다.

476 482 


532SessionStart hook은 다음 주의사항을 제외하고 클라우드에서 로컬과 동일하게 작동합니다.538SessionStart hook은 다음 주의사항을 제외하고 클라우드에서 로컬과 동일하게 작동합니다.

533 539 

534* **세션당 하나의 저장소**: Anthropic 호스팅 환경에서 여러 저장소가 있는 세션은 어떤 저장소의 `.claude/settings.json`에서도 훅을 로드하지 않으므로 그곳에 정의한 SessionStart 훅이 실행되지 않습니다. 이러한 세션의 의존성은 대신 [설정 스크립트](#setup-scripts)로 설치합니다. 자체 호스팅 환경의 경우 [어떤 저장소의 설정이 적용되는지](/docs/ko/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories)를 참조합니다.540* **세션당 하나의 저장소**: Anthropic 호스팅 환경에서 여러 저장소가 있는 세션은 어떤 저장소의 `.claude/settings.json`에서도 훅을 로드하지 않으므로 그곳에 정의한 SessionStart 훅이 실행되지 않습니다. 이러한 세션의 의존성은 대신 [설정 스크립트](#setup-scripts)로 설치합니다. 자체 호스팅 환경의 경우 [어떤 저장소의 설정이 적용되는지](/docs/ko/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories)를 참조합니다.

541* **프로젝트의 클라우드 스레드에서는 실행되지 않음**: [프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories)의 클라우드 스레드는 저장소 수와 관계없이 저장소의 `.claude/settings.json`에 있는 훅을 실행하지 않습니다. Anthropic 호스팅 환경에서는 [설정 스크립트](#setup-scripts)로 스레드의 의존성을 설치합니다. 자체 호스팅 환경에서는 대신 [실행기 호스트의 설정](/docs/ko/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories)에 있는 훅을 사용합니다.

535* **클라우드 전용 범위 없음**: hook은 로컬 및 클라우드 세션 모두에서 실행됩니다. 로컬 실행을 건너뛰려면 `CLAUDE_CODE_REMOTE` 환경 변수가 `true`가 아닌 한 조기에 종료합니다. [종속성 설치 스크립트](#install-dependencies-with-a-sessionstart-hook)가 수행하는 방식입니다.542* **클라우드 전용 범위 없음**: hook은 로컬 및 클라우드 세션 모두에서 실행됩니다. 로컬 실행을 건너뛰려면 `CLAUDE_CODE_REMOTE` 환경 변수가 `true`가 아닌 한 조기에 종료합니다. [종속성 설치 스크립트](#install-dependencies-with-a-sessionstart-hook)가 수행하는 방식입니다.

536* **네트워크 액세스 필요**: 설치 명령은 패키지 레지스트리에 도달해야 합니다. 환경이 **없음** 네트워크 액세스를 사용하면 이러한 hook이 실패합니다. **신뢰됨** 아래의 [기본 허용 목록](#default-allowed-domains)은 npm, PyPI, RubyGems 및 crates.io를 포함합니다.543* **네트워크 액세스 필요**: 설치 명령은 패키지 레지스트리에 도달해야 합니다. 환경이 **없음** 네트워크 액세스를 사용하면 이러한 hook이 실패합니다. **신뢰됨** 아래의 [기본 허용 목록](#default-allowed-domains)은 npm, PyPI, RubyGems 및 crates.io를 포함합니다.

537* **프록시 호환성**: Anthropic 호스팅 환경에서 모든 아웃바운드 트래픽은 [보안 프록시](#security-proxy)를 통과하고, 일부 패키지 관리자는 이와 올바르게 작동하지 않습니다. Bun은 알려진 예입니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments-deploy#default-deny-egress)에서 아웃바운드 트래픽은 대신 자신의 네트워크 경계를 통과합니다.544* **프록시 호환성**: Anthropic 호스팅 환경에서 모든 아웃바운드 트래픽은 [보안 프록시](#security-proxy)를 통과하고, 일부 패키지 관리자는 이와 올바르게 작동하지 않습니다. Bun은 알려진 예입니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments-deploy#default-deny-egress)에서 아웃바운드 트래픽은 대신 자신의 네트워크 경계를 통과합니다.

Details

92 92 

93`REVIEW.md`에는 리뷰 동작을 변경하는 지침만 두고, 일반적인 프로젝트 컨텍스트는 `CLAUDE.md`에 둡니다.93`REVIEW.md`에는 리뷰 동작을 변경하는 지침만 두고, 일반적인 프로젝트 컨텍스트는 `CLAUDE.md`에 둡니다.

94 94 

95### REVIEW\.md에 다른 파일 포함하기

96 

97리뷰 지침을 여러 파일로 나누고 루트 `REVIEW.md`로 가져올 수 있습니다. `REVIEW.md`가 길어지거나 이미 다른 파일에 리뷰 규칙을 관리하고 있을 때 이 방법을 사용합니다.

98 

99파일을 포함하려면 루트 `REVIEW.md`에 `@`와 파일 이름만 있는 줄을 추가합니다. Code Review는 해당 줄 자리에 파일 내용을 넣으므로, 그 내용은 `REVIEW.md`의 일부로 적용됩니다. 다음 예시에서 루트 파일은 자체 지침 하나를 제시한 다음 두 개의 규칙 파일을 포함합니다.

100 

101```markdown theme={null}

102# Review instructions

103 

104Report at most five Nits per review.

105 

106@review-security.md

107@review-api.md

108```

109 

110포함할 파일은 저장소 루트에 `REVIEW.md`와 나란히 저장합니다.

111 

112```text theme={null}

113your-repo/

114├── REVIEW.md

115├── review-security.md

116└── review-api.md

117```

118 

119Code Review는 보호된 브랜치에서 `REVIEW.md`를 읽을 때 파일을 포함하므로, [저장소에서 리뷰가 읽는 브랜치](#what-a-review-reads-for-each-branch-setup)를 확인합니다.

120 

121* **보호된 브랜치**: Code Review가 `@` 줄 자리에 포함된 파일을 넣습니다

122* **보호되지 않은 기본 브랜치**: `@` 줄은 `REVIEW.md`에 일반 텍스트로 남습니다. 풀 리퀘스트가 해당 줄이 지정하는 파일을 변경하면 그 줄은 제외됩니다.

123 

124리뷰가 포함된 파일을 적용하지 않으면 다음 항목을 각각 확인합니다.

125 

126* **위치**: 파일을 저장소 루트로 옮깁니다. `@docs/review-rules.md`처럼 하위 디렉터리를 가리키는 경로는 포함되지 않습니다.

127* **이름**: 대소문자를 포함하여 파일 이름을 정확히 일치시키고, 공백이 없는 이름을 사용합니다. 이름이 `REVIEW.md` 옆의 어떤 파일과도 일치하지 않는 줄은 `REVIEW.md`에 일반 텍스트로 남으며, check run은 이를 건너뛴 포함 항목으로 보고하지 않습니다.

128* **한 단계만**: 모든 파일을 루트 `REVIEW.md`에 나열합니다. 포함된 파일이나 하위 디렉터리 `REVIEW.md`에 있는 `@` 줄은 일반 텍스트로 남으며, 다른 파일에 대한 Markdown 링크는 포함으로 처리되지 않습니다.

129* **제한**: 서로 다른 파일은 최대 8개까지 포함하고, `REVIEW.md`와 포함된 파일의 합계를 150,000바이트 미만으로 유지합니다. 바이트 제한에 도달하게 되는 파일은 잘리지 않고 통째로 건너뜁니다. check run은 두 제한 중 하나로 인해 건너뛴 포함 줄의 수를 보고합니다.

130* **링크**: `REVIEW.md`와 포함된 파일 전체에서 Markdown 링크를 64개 이하로 유지합니다. `http`, `https`, `mailto` 주소 및 `#` 앵커에 대한 링크는 개수에 포함되지 않습니다. 이 제한을 넘으면 리뷰는 포함된 파일뿐 아니라 루트 `REVIEW.md` 전체를 건너뜁니다. 그러면 check run은 [지침이 적용되지 않았다고 알립니다](/docs/ko/code-review-troubleshooting#the-check-run-mentions-review-md).

131* **병합된 사본**: 포함할 파일을 [`REVIEW.md`를 읽는 브랜치](#which-branch-review-md-is-read-from)에 병합합니다. 리뷰는 두 파일을 모두 같은 커밋에서 읽으며, 풀 리퀘스트 자체의 변경 사항에서는 절대 읽지 않습니다.

132 

95### REVIEW\.md를 읽는 브랜치133### REVIEW\.md를 읽는 브랜치

96 134 

97Code Review는 풀 리퀘스트의 기본(base) 브랜치 또는 기본(default) 브랜치에서 `REVIEW.md`를 읽으며, 풀 리퀘스트 자체의 변경 사항에서는 절대 읽지 않습니다. 리뷰 동작을 변경하려면 `REVIEW.md` 변경 사항을 먼저 병합합니다.135Code Review는 풀 리퀘스트의 기본(base) 브랜치 또는 기본(default) 브랜치에서 `REVIEW.md`를 읽으며, 풀 리퀘스트 자체의 변경 사항에서는 절대 읽지 않습니다. 리뷰 동작을 변경하려면 `REVIEW.md` 변경 사항을 먼저 병합합니다.


117 155 

118| 브랜치 보호 | 읽는 사본 | 읽는 파일 |156| 브랜치 보호 | 읽는 사본 | 읽는 파일 |

119| :- | :- | :- |157| :- | :- | :- |

120| 기본 브랜치가 보호되어 있고, 풀 리퀘스트가 기본 브랜치 또는 ruleset으로 보호되지 않는 브랜치를 대상으로 함 | 기본 브랜치 | 루트 및 하위 디렉터리 파일 |158| 기본 브랜치가 보호되어 있고, 풀 리퀘스트가 기본 브랜치 또는 ruleset으로 보호되지 않는 브랜치를 대상으로 함 | 기본 브랜치 | 루트 파일, 루트 파일이 포함하는 파일, 하위 디렉터리 파일 |

121| 풀 리퀘스트가 ruleset으로 보호되는 다른 브랜치를 대상으로 함 | 해당 base 브랜치 | 루트 및 하위 디렉터리 파일 |159| 풀 리퀘스트가 ruleset으로 보호되는 다른 브랜치를 대상으로 함 | 해당 base 브랜치 | 루트 파일, 루트 파일이 포함하는 파일, 하위 디렉터리 파일 |

122| 기본 브랜치가 보호되어 있지 않고, base 브랜치에 어떤 종류의 보호 규칙도 없음 | 기본 브랜치 | 루트 파일 |160| 기본 브랜치가 보호되어 있지 않고, base 브랜치에 어떤 종류의 보호 규칙도 없음 | 기본 브랜치 | 루트 파일 |

123| Code Review가 보호 설정을 확인할 수 없음. 보호되지 않은 기본 브랜치와 클래식 규칙만 있는 base 브랜치의 조합도 여기에 포함됨 | 없음 | 없음 |161| Code Review가 보호 설정을 확인할 수 없음. 보호되지 않은 기본 브랜치와 클래식 규칙만 있는 base 브랜치의 조합도 여기에 포함됨 | 없음 | 없음 |

124 162 

Details

55 55 

56### 스크립트에서 결과 읽기56### 스크립트에서 결과 읽기

57 57 

58자체 CI에서 병합을 제어하거나 요약을 게시하려면 `gh`와 jq로 Details 텍스트의 마지막 줄을 파싱합니다. 해당 줄은 기계가 읽을 수 있는 주석입니다.58자체 CI에서 병합을 제어하거나 요약을 게시하려면 `gh`와 jq로 Details 텍스트의 마지막 줄을 파싱합니다. 해당 줄은 심각도별 개수를 JSON으로 담고 있는 HTML 주석입니다.

59 

60```text theme={null}

61<!-- bughunter-severity: {"nit":1,"normal":2,"pre_existing":0} -->

62```

63 

64그 위의 줄에는 풀 리퀘스트의 파일 이름이 포함될 수 있습니다. 텍스트를 자체 방식으로 파싱하는 경우, 아래 단계의 명령처럼 마지막 줄에서만 개수를 가져옵니다.

59 65 

60**1. 체크 실행 ID 찾기**66**1. 체크 실행 ID 찾기**

61 67 


67 73 

68**2. 심각도별 개수 읽기**74**2. 심각도별 개수 읽기**

69 75 

70`CHECK_RUN_ID`를 해당 ID로 바꿔 체크 실행에서 개수를 읽습니다.76Details 텍스트를 담고 있는 체크 실행의 `output.text` 필드에서 개수를 읽습니다. `CHECK_RUN_ID`를 해당 ID로 바꿉니다.

71 77 

72```bash theme={null}78```bash theme={null}

73gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \79gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID --jq '

74 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'80 (.output.text | split("\n") | last

81 | scan("^<!-- bughunter-severity: (.*) -->$")[0] | fromjson)?

82 // error("no severity line")'

75```83```

76 84 

77이 명령은 심각도별 개수를 담은 JSON 객체를 키의 알파벳순으로 출력합니다. 예를 들면 `{"nit": 1, "normal": 2, "pre_existing": 0}`입니다. 이 개수에는 스레드가 아직 열려 있는, 풀 리퀘스트의 이전 리뷰에서 나온 발견 사항도 포함됩니다.85이 명령은 심각도별 개수를 담은 JSON 객체를 키의 알파벳순으로 출력합니다. 예를 들면 `{"nit": 1, "normal": 2, "pre_existing": 0}`입니다. 이 개수에는 스레드가 아직 열려 있는, 풀 리퀘스트의 이전 리뷰에서 나온 발견 사항도 포함됩니다.


80 88 

81스크립트가 다음 경우를 처리하도록 합니다.89스크립트가 다음 경우를 처리하도록 합니다.

82 90 

83* **`normal`이 0보다 큰 경우**: 병합을 제어하려면 작업을 실패시킵니다. `normal` 키는 Important 발견 사항의 개수를 담고 있으므로, Claude가 병합 전에 수정할 가치가 있는 버그를 하나 이상 발견했다는 의미입니다.91* **`normal`이 0보다 큰 경우**: 병합을 제어하려면 작업을 실패시킵니다. `normal` 키는 Important 발견 사항의 개수를 담고 있으므로, Claude가 병합 전에 수정할 가치가 있는 버그를 하나 이상 발견했다는 의미입니다. 이 개수만 출력하려면 닫는 작은따옴표 앞에 `| .normal`을 추가합니다.

84* **해당 줄이 없는 경우**: 발견 사항이 0개인 것이 아니라 판정이 없는 것으로 처리합니다. 실패했거나, 시간 초과되었거나, 취소되었거나, 더 새로운 리뷰로 대체된 리뷰의 체크 실행에는 이 줄이 없으며, 일부 완료된 리뷰에도 없습니다.92* **해당 줄이 없는 경우**: 명령은 개수 대신 `no severity line`이 포함된 오류를 출력하고 0이 아닌 상태로 종료됩니다. 이를 발견 사항이 0개인 것이 아니라 판정이 없는 것으로 처리합니다. 실패했거나, 시간 초과되었거나, 취소되었거나, 더 새로운 리뷰로 대체된 리뷰의 체크 실행에는 이 줄이 없으며, 일부 완료된 리뷰에도 없습니다.

85 93 

86## 리뷰 요청하기94## 리뷰 요청하기

87 95 


99 107 

100| 명령 | 동작 | 사용 시점 |108| 명령 | 동작 | 사용 시점 |

101| :- | :- | :- |109| :- | :- | :- |

102| `@claude review` | 향후 푸시에 대해 PR을 구독하지 않고 단일 리뷰를 시작합니다 | Manual로 설정된 저장소의 풀 리퀘스트처럼 지금 한 번 리뷰를 받고 싶거나, 다른 모드에서 즉시 추가 리뷰를 받고 싶을 때 |110| `@claude review` | 향후 푸시에 대해 PR을 구독하지 않고 단일 리뷰를 시작합니다 | **Manual**로 설정된 저장소의 풀 리퀘스트처럼 지금 한 번 리뷰를 받고 싶거나, 다른 모드에서 즉시 추가 리뷰를 받고 싶을 때 |

103| `@claude review always` | 리뷰를 시작하고 이후 푸시로 트리거되는 리뷰에 PR을 구독합니다 | Manual로 설정된 저장소의 우선순위가 높은 PR처럼 이후 모든 푸시마다 새 리뷰를 시작하고 싶을 때 |111| `@claude review always` | 리뷰를 시작하고 이후 푸시로 트리거되는 리뷰에 PR을 구독합니다 | **Manual**로 설정된 저장소의 우선순위가 높은 PR처럼 이후 모든 푸시마다 새 리뷰를 시작하고 싶을 때 |

104| `@claude review once` | `@claude review`와 동일: 구독하지 않고 단일 리뷰를 시작합니다 | `@claude review`와 동일한 경우 |112| `@claude review once` | `@claude review`와 동일: 구독하지 않고 단일 리뷰를 시작합니다 | `@claude review`와 동일한 경우 |

113| `@claude review stop` | 푸시로 트리거되는 리뷰에 대한 PR의 구독을 종료하며, 리뷰를 시작하거나 이미 대기 중이거나 실행 중인 리뷰를 취소하지는 않습니다. Claude는 체크 실행 대신 댓글로 응답합니다. | **Manual** 또는 **Once after PR creation**으로 설정된 저장소에서 `@claude review always`로 PR을 구독했지만 더 이상 푸시할 때마다 리뷰를 시작하고 싶지 않을 때 |

114| `@claude review off` 또는 `@claude review pause` | `@claude review stop`과 동일 | `@claude review stop`과 동일한 경우 |

115 

116**After every push**로 설정된 저장소에서는 구독 여부와 관계없이 푸시하면 리뷰가 시작되므로 댓글로 리뷰를 중지할 수 없습니다. 해당 저장소에서 하나의 풀 리퀘스트에 대해 푸시로 리뷰가 시작되지 않도록 하려면 풀 리퀘스트를 [초안](#review-drafts-and-pull-requests-from-forks)으로 전환합니다. 다시 리뷰 준비 완료로 표시하면 리뷰가 시작됩니다.

105 117 

106이러한 명령으로 리뷰를 시작하려면 다음 조건을 모두 충족해야 합니다.118댓글 명령이 적용되려면 다음 조건을 모두 충족해야 합니다.

107 119 

108* diff 줄의 인라인 댓글이나 리뷰 본문이 아닌, 새로운 최상위 풀 리퀘스트 댓글로 게시해야 합니다. 이전 댓글을 편집하는 것은 인정되지 않습니다.120* diff 줄의 인라인 댓글이나 리뷰 본문이 아닌, 새로운 최상위 풀 리퀘스트 댓글로 게시해야 합니다. 이전 댓글을 편집하는 것은 인정되지 않습니다.

109* 명령을 댓글의 맨 앞에 두고, `always`는 명령의 나머지 부분과 같은 줄에 있어야 합니다. 대소문자는 상관없습니다.121* 전체 명령을 댓글 맨 앞의 한 줄에 작성합니다. 명령 뒤에는 다른 텍스트가 와도 됩니다. `always` 또는 `stop`의 철자가 틀렸거나 이후 줄에 있으면 Claude는 댓글을 일반 `@claude review`로 읽고 단일 리뷰를 시작합니다. 대소문자는 상관없습니다.

110* 저장소에 대한 write, maintain 또는 admin 권한이 필요합니다. Claude는 댓글을 작성한 각 사용자에 대해 GitHub에서 이를 확인하며, 봇의 댓글로는 리뷰가 시작되지 않습니다.122* 저장소에 대한 write, maintain 또는 admin 권한이 필요합니다. Claude는 댓글을 작성한 각 사용자에 대해 GitHub에서 이를 확인하며, 봇의 댓글로는 리뷰가 시작되지 않습니다.

111* 풀 리퀘스트가 열려 있어야 합니다.123* 풀 리퀘스트가 열려 있어야 합니다.

112 124 

113명령이 수락되면 풀 리퀘스트에 **Code review queued...** 제목의 **Claude Code Review** 체크 실행이 나타납니다. 리뷰가 시작되면 제목이 \*\*Code review in progress...\*\*로 바뀝니다. Claude가 댓글에 👀로 반응할 수도 있지만, 이 반응은 리뷰가 시작되지 않을 때도 나타날 수 있으므로 대신 체크 실행을 확인하세요.125리뷰를 시작하는 명령이 수락되면 풀 리퀘스트에 **Code review queued...** 제목의 **Claude Code Review** 체크 실행이 나타납니다. 리뷰가 시작되면 제목이 \*\*Code review in progress...\*\*로 바뀝니다. Claude가 댓글에 👀로 반응할 수도 있지만, 이 반응은 리뷰가 시작되지 않을 때도 나타날 수 있으므로 대신 체크 실행을 확인하세요.

114 126 

115풀 리퀘스트의 최신 커밋에서 이미 리뷰가 실행 중이면 새 요청으로 두 번째 리뷰가 시작되지 않습니다.127풀 리퀘스트의 최신 커밋에서 이미 리뷰가 실행 중이면 새 요청으로 두 번째 리뷰가 시작되지 않습니다.

116 128 

Details

66 66 

67## 체크 실행에 REVIEW\.md가 언급되는 경우67## 체크 실행에 REVIEW\.md가 언급되는 경우

68 68 

69체크 실행에 표시될 수 있는 `REVIEW.md` 관련 메시지 중 두 가지는 브랜치 보호와 관련이 있습니다.69다음은 체크 실행에 표시될 수 있는 `REVIEW.md` 관련 메시지 중 세 가지입니다.

70 70 

71* **"This review applied the repository's review instructions (REVIEW\.md) from its default branch, which is not protected against direct pushes."**: 리뷰가 루트 파일만 읽었습니다. 브랜치를 보호하면 무엇이 달라지는지는 [REVIEW.md를 읽는 브랜치](/docs/ko/code-review-customize#which-branch-review-md-is-read-from)를 참조하세요.71* **"This review applied the repository's review instructions (REVIEW\.md) from its default branch, which is not protected against direct pushes."**: 리뷰가 루트 파일만 읽었습니다. 브랜치를 보호하면 무엇이 달라지는지는 [REVIEW.md를 읽는 브랜치](/docs/ko/code-review-customize#which-branch-review-md-is-read-from)를 참조하세요.

72* **"were not applied to this review: branch protection could not be confirmed"**: 리뷰가 `REVIEW.md`를 전혀 읽지 않았습니다.72* **"were not applied to this review: branch protection could not be confirmed"**: 리뷰가 `REVIEW.md`를 전혀 읽지 않았습니다.

73* **"they link to a file this pull request modifies, or carry more links than the review checks"**: 리뷰가 루트 `REVIEW.md` 또는 메시지에 표시된 개수만큼의 하위 디렉터리 `REVIEW.md` 파일을 건너뛰었습니다. 건너뛴 파일에서 각 원인을 확인하세요. 루트 `REVIEW.md`의 경우 [포함된 파일](/docs/ko/code-review-customize#include-other-files-in-review-md)도 확인하세요.

74 * **링크가 너무 많은 경우**: Markdown 링크가 64개를 초과합니다. 링크를 [64개 이하](/docs/ko/code-review-customize#include-other-files-in-review-md)로 줄이세요.

75 * **리뷰가 파싱할 수 없는 링크가 있는 경우**: 형식이 잘못된 Markdown 링크가 있습니다. 해당 링크를 수정하거나 제거하세요.

76 * **변경된 파일에 대한 링크가 있는 경우**: 이 풀 리퀘스트가 변경하는 파일이나 폴더에 링크되어 있으며, 리뷰가 해당 링크가 있는 줄만 제외할 수 없었습니다. 규칙을 `REVIEW.md` 자체에 직접 작성하세요.

73 77 

74## 설정 문제78## 설정 문제

75 79 

commands.md +4 −4

Details

55| `/artifact-capabilities` | **[스킬](/docs/ko/skills#bundled-skills).** 게시된 [아티팩트](/docs/ko/artifacts)가 사용할 수 있는 런타임 기능(예: [커넥터 호출](/docs/ko/artifacts#pull-live-data-with-mcp-connectors), [파일 다운로드 제공](/docs/ko/artifacts#offer-a-file-download))에 대한 참조 자료를 로드하며, 여기에는 사용자 계정에서 사용 가능한 기능도 포함됩니다. Claude는 일반적으로 이러한 기능을 사용하는 페이지를 만들기 전에 스스로 이 자료를 로드합니다. [아티팩트](/docs/ko/artifacts#availability)를 사용할 수 있는 곳에서 사용 가능합니다 |55| `/artifact-capabilities` | **[스킬](/docs/ko/skills#bundled-skills).** 게시된 [아티팩트](/docs/ko/artifacts)가 사용할 수 있는 런타임 기능(예: [커넥터 호출](/docs/ko/artifacts#pull-live-data-with-mcp-connectors), [파일 다운로드 제공](/docs/ko/artifacts#offer-a-file-download))에 대한 참조 자료를 로드하며, 여기에는 사용자 계정에서 사용 가능한 기능도 포함됩니다. Claude는 일반적으로 이러한 기능을 사용하는 페이지를 만들기 전에 스스로 이 자료를 로드합니다. [아티팩트](/docs/ko/artifacts#availability)를 사용할 수 있는 곳에서 사용 가능합니다 |

56| `/artifact-diagramming` | **[스킬](/docs/ko/skills#bundled-skills).** Claude가 [아티팩트](/docs/ko/artifacts)에서 따를 다이어그램 작성 지침을 로드합니다. 다이어그램이 도움이 되는 경우, 무엇을 그려야 하는지, 밝은 테마와 어두운 테마 모두에서 읽기 쉬운 인라인 SVG를 작성하는 방법을 다룹니다. Claude Code v2.1.221 이상이 필요합니다 |56| `/artifact-diagramming` | **[스킬](/docs/ko/skills#bundled-skills).** Claude가 [아티팩트](/docs/ko/artifacts)에서 따를 다이어그램 작성 지침을 로드합니다. 다이어그램이 도움이 되는 경우, 무엇을 그려야 하는지, 밝은 테마와 어두운 테마 모두에서 읽기 쉬운 인라인 SVG를 작성하는 방법을 다룹니다. Claude Code v2.1.221 이상이 필요합니다 |

57| `/artifacts` | 사용자가 소유하거나 사용자와 공유된 [아티팩트](/docs/ko/artifacts#find-an-artifact-again)를 나열한 다음, 하나를 세션에 첨부하거나 브라우저에서 열거나 링크를 복사합니다. [아티팩트](/docs/ko/artifacts#availability)를 사용할 수 있는 곳에서 사용 가능합니다. Claude Code v2.1.208 이상이 필요하며, `Enter`로 첨부하려면 v2.1.216이 필요합니다 |57| `/artifacts` | 사용자가 소유하거나 사용자와 공유된 [아티팩트](/docs/ko/artifacts#find-an-artifact-again)를 나열한 다음, 하나를 세션에 첨부하거나 브라우저에서 열거나 링크를 복사합니다. [아티팩트](/docs/ko/artifacts#availability)를 사용할 수 있는 곳에서 사용 가능합니다. Claude Code v2.1.208 이상이 필요하며, `Enter`로 첨부하려면 v2.1.216이 필요합니다 |

58| `/auto-mode-setup` | 프로젝트와 최근 세션을 바탕으로 [`autoMode.environment` 항목 초안을 작성](/docs/ko/auto-mode-config#generate-environment-entries)한 다음, 초안을 검토하여 사용자 설정에 저장합니다. Pro, Max 또는 Team 플랜과 Claude Code v2.1.228 이상이 필요합니다. 네이티브 Windows에서는 v2.1.233 이상이 필요합니다 |58| `/auto-mode-setup` | 프로젝트와 최근 세션을 바탕으로 [`autoMode.environment` 항목 초안을 작성](/docs/ko/auto-mode-config#generate-environment-entries)한 다음, 초안을 검토하여 사용자 설정에 저장합니다. Pro, Max 또는 Team 플랜에서는 Claude Code v2.1.228 이상이 필요하며, 네이티브 Windows에서는 v2.1.233 이상이 필요합니다. Enterprise 플랜이나 Claude Console API 키를 사용하는 경우 v2.1.283 이상이 필요합니다. 명령이 표시되지 않으면 [`/auto-mode-setup`이 "Unknown command"를 반환하는 경우](/docs/ko/auto-mode-config#auto-mode-setup-returns-unknown-command)를 참조하세요 |

59| `/autocompact [auto\|<tokens>]` | 자동 압축 윈도우, 즉 Claude Code가 자동으로 압축하기 전까지 컨텍스트 윈도우가 얼마나 채워지는지를 설정합니다. `500k`와 같은 크기를 전달하거나, `auto`를 전달하여 모델에 맞게 조정된 윈도우로 되돌립니다. Claude Code는 값을 사용자 설정에 저장하고 현재 세션에 적용합니다. 허용되는 값과 이를 재정의하는 항목은 [자동 압축 윈도우 설정](/docs/ko/model-config#set-the-auto-compact-window)을 참조하세요. 인수 없이 실행하면 현재 윈도우를 보여주는 대화 상자가 열립니다. Claude Code v2.1.221 이상이 필요합니다 |59| `/autocompact [auto\|<tokens>]` | 자동 압축 윈도우, 즉 Claude Code가 자동으로 압축하기 전까지 컨텍스트 윈도우가 얼마나 채워지는지를 설정합니다. `500k`와 같은 크기를 전달하거나, `auto`를 전달하여 모델에 맞게 조정된 윈도우로 되돌립니다. Claude Code는 값을 사용자 설정에 저장하고 현재 세션에 적용합니다. 허용되는 값과 이를 재정의하는 항목은 [자동 압축 윈도우 설정](/docs/ko/model-config#set-the-auto-compact-window)을 참조하세요. 인수 없이 실행하면 현재 윈도우를 보여주는 대화 상자가 열립니다. Claude Code v2.1.221 이상이 필요합니다 |

60| `/autofix-pr [prompt]` | 현재 브랜치의 PR을 감시하다가 CI가 실패하거나 리뷰어가 코멘트를 남기면 수정 사항을 푸시하는 [클라우드 세션](/docs/ko/claude-code-on-the-web#auto-fix-pull-requests)을 생성합니다. `gh pr view`를 사용해 체크아웃된 브랜치에서 열린 PR을 감지하며, 다른 PR을 감시하려면 먼저 해당 브랜치를 체크아웃합니다. 기본적으로 클라우드 세션은 모든 CI 실패와 리뷰 코멘트를 수정하도록 지시받으며, 다른 지침을 주려면 프롬프트를 전달합니다(예: `/autofix-pr only fix lint and type errors`). `gh` CLI와 [클라우드 세션](/docs/ko/claude-code-on-the-web)에 대한 액세스 권한이 필요합니다 |60| `/autofix-pr [prompt]` | 현재 브랜치의 PR을 감시하다가 CI가 실패하거나 리뷰어가 코멘트를 남기면 수정 사항을 푸시하는 [클라우드 세션](/docs/ko/claude-code-on-the-web#auto-fix-pull-requests)을 생성합니다. `gh pr view`를 사용해 체크아웃된 브랜치에서 열린 PR을 감지하며, 다른 PR을 감시하려면 먼저 해당 브랜치를 체크아웃합니다. 기본적으로 클라우드 세션은 모든 CI 실패와 리뷰 코멘트를 수정하도록 지시받으며, 다른 지침을 주려면 프롬프트를 전달합니다(예: `/autofix-pr only fix lint and type errors`). `gh` CLI와 [클라우드 세션](/docs/ko/claude-code-on-the-web)에 대한 액세스 권한이 필요합니다 |

61| `/background [prompt]` | 현재 세션을 분리하여 [백그라운드 에이전트](/docs/ko/agent-view)로 실행하고 이 터미널을 비웁니다. 분리하기 전에 지침을 하나 더 보내려면 프롬프트를 전달합니다. `claude agents`로 세션을 모니터링합니다. 이 세션을 계속 실행하면서 대화를 새 백그라운드 세션에 복사하려면 `/fork`를 사용합니다. 별칭: `/bg` |61| `/background [prompt]` | 현재 세션을 분리하여 [백그라운드 에이전트](/docs/ko/agent-view)로 실행하고 이 터미널을 비웁니다. 분리하기 전에 지침을 하나 더 보내려면 프롬프트를 전달합니다. `claude agents`로 세션을 모니터링합니다. 이 세션을 계속 실행하면서 대화를 새 백그라운드 세션에 복사하려면 `/fork`를 사용합니다. 별칭: `/bg` |


65| `/bug [report]` | 버그를 보고하거나 대화를 공유합니다. 포함할 세션 기록의 양을 선택하고, 전송 전에 동의 화면에서 확인합니다. 퍼스트 파티 연결에서 Anthropic에 로그인한 경우 보고서는 Anthropic으로 전송됩니다. 서드 파티 제공업체를 사용하거나 Anthropic 자격 증명이 없는 경우, Claude Code는 사용자가 직접 전달할 수 있도록 보고서를 [`~/.claude/feedback-bundles/` 아래의 로컬 아카이브](/docs/ko/data-usage#telemetry-services)에 기록합니다. [VS Code 확장 프로그램](/docs/ko/vs-code#use-the-prompt-box)에서는 `/bug`가 대신 확장 프로그램 자체의 피드백 대화 상자를 엽니다. Claude Code v2.1.229 이상이 필요합니다. Claude가 응답하는 중에 실행하면 Claude Code가 즉시 대화 상자를 엽니다. v2.1.232 이전에는 Claude Code가 턴이 끝날 때까지 명령을 대기열에 두었습니다. 별칭: `/share`. v2.1.212 이전에는 `/bug`와 `/share`가 `/feedback`의 별칭이었습니다 |65| `/bug [report]` | 버그를 보고하거나 대화를 공유합니다. 포함할 세션 기록의 양을 선택하고, 전송 전에 동의 화면에서 확인합니다. 퍼스트 파티 연결에서 Anthropic에 로그인한 경우 보고서는 Anthropic으로 전송됩니다. 서드 파티 제공업체를 사용하거나 Anthropic 자격 증명이 없는 경우, Claude Code는 사용자가 직접 전달할 수 있도록 보고서를 [`~/.claude/feedback-bundles/` 아래의 로컬 아카이브](/docs/ko/data-usage#telemetry-services)에 기록합니다. [VS Code 확장 프로그램](/docs/ko/vs-code#use-the-prompt-box)에서는 `/bug`가 대신 확장 프로그램 자체의 피드백 대화 상자를 엽니다. Claude Code v2.1.229 이상이 필요합니다. Claude가 응답하는 중에 실행하면 Claude Code가 즉시 대화 상자를 엽니다. v2.1.232 이전에는 Claude Code가 턴이 끝날 때까지 명령을 대기열에 두었습니다. 별칭: `/share`. v2.1.212 이전에는 `/bug`와 `/share`가 `/feedback`의 별칭이었습니다 |

66| `/cd <path>` | 대화를 유지한 채 이 세션을 새 작업 디렉터리로 이동합니다. 경로의 일부를 입력하면 일치하는 디렉터리 제안이 표시되며, `Tab`을 눌러 제안을 수락합니다. 이동 즉시 Claude Code가 새 디렉터리에서 적용하는 항목과 `/cd`가 `/add-dir`와 어떻게 다른지는 [세션을 다른 디렉터리로 이동](/docs/ko/permissions#move-the-session-to-another-directory)을 참조하세요 |66| `/cd <path>` | 대화를 유지한 채 이 세션을 새 작업 디렉터리로 이동합니다. 경로의 일부를 입력하면 일치하는 디렉터리 제안이 표시되며, `Tab`을 눌러 제안을 수락합니다. 이동 즉시 Claude Code가 새 디렉터리에서 적용하는 항목과 `/cd`가 `/add-dir`와 어떻게 다른지는 [세션을 다른 디렉터리로 이동](/docs/ko/permissions#move-the-session-to-another-directory)을 참조하세요 |

67| `/chrome` | [Claude in Chrome](/docs/ko/chrome) 설정을 구성합니다 |67| `/chrome` | [Claude in Chrome](/docs/ko/chrome) 설정을 구성합니다 |

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

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

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

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


80| `/deep-research <question>` | **[워크플로](/docs/ko/workflows#bundled-workflows).** 질문에 대해 웹 검색을 분산 실행하고, 출처를 가져와 교차 확인한 후, 인용이 포함된 보고서를 종합합니다 |80| `/deep-research <question>` | **[워크플로](/docs/ko/workflows#bundled-workflows).** 질문에 대해 웹 검색을 분산 실행하고, 출처를 가져와 교차 확인한 후, 인용이 포함된 보고서를 종합합니다 |

81| `/design [brief]` | **[스킬](/docs/ko/skills#bundled-skills).** UI 목업, 화면 흐름, 랜딩 페이지 또는 포스터를 하나의 캔버스 위 아트보드로 초안 작성하여 Claude Design [아티팩트](/docs/ko/artifacts#draft-a-design-canvas)로 게시합니다(예: `/design a settings screen for a mobile banking app`). 데스크톱 브라우저에서 아트보드를 편집하면 편집 내용이 자동으로 저장됩니다. 각 아트보드를 PNG 또는 PDF로 내보낼 수 있습니다. Claude Code v2.1.265 이상, [아티팩트를 사용할 수 있는](/docs/ko/artifacts#availability) 세션, [Design 템플릿을 사용할 수 있는](/docs/ko/artifacts#start-from-a-slides-design-or-docs-template) 계정이 필요하며, 조직에서 해당 템플릿을 끈 경우 `/design`은 디자인 초안을 작성하지 않습니다. Anthropic API에서 사용할 수 있습니다. Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, Claude Platform on AWS에서는 아티팩트를 사용할 수 없으므로 이 명령도 사용할 수 없습니다 |81| `/design [brief]` | **[스킬](/docs/ko/skills#bundled-skills).** UI 목업, 화면 흐름, 랜딩 페이지 또는 포스터를 하나의 캔버스 위 아트보드로 초안 작성하여 Claude Design [아티팩트](/docs/ko/artifacts#draft-a-design-canvas)로 게시합니다(예: `/design a settings screen for a mobile banking app`). 데스크톱 브라우저에서 아트보드를 편집하면 편집 내용이 자동으로 저장됩니다. 각 아트보드를 PNG 또는 PDF로 내보낼 수 있습니다. Claude Code v2.1.265 이상, [아티팩트를 사용할 수 있는](/docs/ko/artifacts#availability) 세션, [Design 템플릿을 사용할 수 있는](/docs/ko/artifacts#start-from-a-slides-design-or-docs-template) 계정이 필요하며, 조직에서 해당 템플릿을 끈 경우 `/design`은 디자인 초안을 작성하지 않습니다. Anthropic API에서 사용할 수 있습니다. Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, Claude Platform on AWS에서는 아티팩트를 사용할 수 없으므로 이 명령도 사용할 수 없습니다 |

82| `/design consent`, `/design revoke` | Claude에게 [Claude Design](https://claude.ai/design)에 대한 액세스 권한을 부여하거나 철회합니다. Claude의 응답에서 `/design consent`를 실행하라고 요청하면 Claude Code 프롬프트에 직접 입력하세요 |82| `/design consent`, `/design revoke` | Claude에게 [Claude Design](https://claude.ai/design)에 대한 액세스 권한을 부여하거나 철회합니다. Claude의 응답에서 `/design consent`를 실행하라고 요청하면 Claude Code 프롬프트에 직접 입력하세요 |

83| `/design-login` | claude.ai 계정으로 `/design-sync`의 디자인 시스템 액세스를 승인합니다. `/design-sync` 또는 `/design consent`에서 안내할 때마다 `/design-login`으로 로그인하세요 |83| `/design-login` | claude.ai 계정으로 `/design-sync`의 디자인 시스템 액세스를 승인합니다. `/design-sync` 또는 `/design consent`에서 안내할 때마다 `/design-login`으로 로그인하세요. 이 로그인은 claude.ai/design의 독립형 Claude Design 사이트를 위한 것이며, 이 사이트는 2026.12.14.까지 종료됩니다. [독립형 Claude Design에서 Claude로 마이그레이션](https://support.claude.com/en/articles/17440474-migrate-from-standalone-claude-design-to-claude)을 참조하세요 |

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

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

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

87| `/doctor [prompt-audit [path]]` | **[스킬](/docs/ko/skills#bundled-skills).** 설치, 설정, 확장 기능, `CLAUDE.md` 문제를 진단하는 설정 점검을 실행하고, 사용자가 확인하면 Claude가 적용할 수정 사항을 제안합니다. 점검 범위를 확인하거나 대신 `prompt-audit`로 지침을 감사하려면 [`/doctor`로 설정 점검하기](/docs/ko/skills#check-your-setup-with-/doctor)를 참조하세요. `prompt-audit` 하위 명령은 Claude Code v2.1.283 이상이 필요합니다. 별칭: `/checkup` |87| `/doctor [prompt-audit [path]]` | **[스킬](/docs/ko/skills#bundled-skills).** 설치, 설정, 확장 기능, `CLAUDE.md` 문제를 진단하는 설정 점검을 실행하고, 사용자가 확인하면 Claude가 적용할 수정 사항을 제안합니다. 점검 범위를 확인하거나 대신 `prompt-audit`로 지침을 감사하려면 [`/doctor`로 설정 점검하기](/docs/ko/skills#check-your-setup-with-/doctor)를 참조하세요. `prompt-audit` 하위 명령은 Claude Code v2.1.283 이상이 필요합니다. 별칭: `/checkup` |

Details

379 379 

380`@` 참조가 메시지에 파일 내용과 디렉토리 목록을 포함하지 않도록 하려면 셸 또는 사용자 설정에서 [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](/docs/ko/env-vars#variables)을 설정하십시오. 그러면 Claude는 참조된 경로를 받으며, 파일 도구를 사용해 해당 경로를 읽으라는 안내도 함께 받습니다. 이 변수는 Claude Code v2.1.299 이상이 필요하며, Claude Code는 프로젝트 및 로컬 설정에서는 이 변수를 무시합니다.380`@` 참조가 메시지에 파일 내용과 디렉토리 목록을 포함하지 않도록 하려면 셸 또는 사용자 설정에서 [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](/docs/ko/env-vars#variables)을 설정하십시오. 그러면 Claude는 참조된 경로를 받으며, 파일 도구를 사용해 해당 경로를 읽으라는 안내도 함께 받습니다. 이 변수는 Claude Code v2.1.299 이상이 필요하며, Claude Code는 프로젝트 및 로컬 설정에서는 이 변수를 무시합니다.

381 381 

382Claude Code가 `@`로 참조한 파일을 포함할 때는 도구 호출을 하지 않으므로 [`PreToolUse` 훅](/docs/ko/hooks#pretooluse)이 실행되지 않습니다. Claude가 읽는 내용을 제어하기 위해 이러한 훅에 의존하고 있다면, 특정 경로를 차단하거나 `@` 참조가 파일을 포함하지 않도록 하십시오:

383 

384* **특정 경로 차단**: 해당 경로에 대한 [`Read` 거부 규칙](/docs/ko/permissions#read-and-edit)을 추가합니다. Claude Code는 규칙과 일치하는 파일을 포함하지 않습니다.

385* **`@` 참조가 파일을 포함하지 않도록 하기**: `CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`을 설정합니다. 이렇게 하면 훅이 검사하지 않는 경로에 대해서도 메시지의 `@` 파일 및 디렉토리 참조가 내용을 포함하지 않습니다. 그러면 Claude가 `Read` 같은 도구로 참조된 경로를 열기 전에 일치하는 훅이 실행됩니다.

386 

382***387***

383 388 

384### 일정에 따라 Claude 실행하기389### 일정에 따라 Claude 실행하기


392| [클라우드 예약 작업](/docs/ko/routines) | 클라우드, 기본적으로 Anthropic 관리 | 컴퓨터가 꺼져 있어도 실행되어야 하는 작업. 일정 외에도 API 호출 또는 GitHub 이벤트에 따라 트리거될 수 있습니다. [claude.ai/code/routines](https://claude.ai/code/routines)에서 구성합니다. |397| [클라우드 예약 작업](/docs/ko/routines) | 클라우드, 기본적으로 Anthropic 관리 | 컴퓨터가 꺼져 있어도 실행되어야 하는 작업. 일정 외에도 API 호출 또는 GitHub 이벤트에 따라 트리거될 수 있습니다. [claude.ai/code/routines](https://claude.ai/code/routines)에서 구성합니다. |

393| [데스크톱 예약 작업](/docs/ko/desktop-scheduled-tasks) | 데스크톱 앱을 통한 컴퓨터 | 로컬 파일, 도구 또는 커밋되지 않은 변경사항에 직접 액세스해야 하는 작업. |398| [데스크톱 예약 작업](/docs/ko/desktop-scheduled-tasks) | 데스크톱 앱을 통한 컴퓨터 | 로컬 파일, 도구 또는 커밋되지 않은 변경사항에 직접 액세스해야 하는 작업. |

394| [GitHub Actions](/docs/ko/github-actions) | CI 파이프라인 | 열린 PR 또는 cron 일정과 같은 저장소 이벤트와 연결된 작업. 워크플로우 구성과 함께 있어야 합니다. |399| [GitHub Actions](/docs/ko/github-actions) | CI 파이프라인 | 열린 PR 또는 cron 일정과 같은 저장소 이벤트와 연결된 작업. 워크플로우 구성과 함께 있어야 합니다. |

395| [`/loop`](/docs/ko/scheduled-tasks) | 현재 CLI 세션 | 세션이 열려 있는 동안 빠른 폴링. `--resume` 및 `--continue`는 만료되지 않은 것을 복원합니다. |400| [`/loop`](/docs/ko/scheduled-tasks) | 현재 CLI 세션 | 세션이 열려 있는 동안 빠른 폴링. `--resume` 및 `--continue`는 만료되지 않은 고정 간격 루프를 복원합니다. |

396 401 

397> [!TIP]402> [!TIP]

398>403>

399> 예약된 작업을 위한 프롬프트를 작성할 때 성공이 무엇인지, 결과를 어떻게 처리할지 명시적으로 설명하십시오. 작업이 자동으로 실행되므로 명확한 질문을 할 수 없습니다. 예를 들어: "Review open PRs labeled `needs-review`, leave inline comments on any issues, and post a summary in the `#eng-reviews` Slack channel."404> 예약된 작업을 위한 프롬프트를 작성할 때 성공이 무엇인지, 결과를 어떻게 처리할지 명시적으로 설명하십시오. 작업이 자동으로 실행되므로 명확화 질문을 할 수 없습니다. 예를 들어: "`needs-review` 레이블이 지정된 열린 PR을 검토하고, 발견한 문제에 인라인 댓글을 남기고, `#eng-reviews` Slack 채널에 요약을 게시하세요."

400 405 

401***406***

402 407 

costs.md +24 −5

Details

55 55 

56#### 요금제 사용량 분석56#### 요금제 사용량 분석

57 57 

58Pro, Max, Team 또는 Enterprise 요금제에서 `/usage`는 요금제 한도에 포함되는 항목의 분석도 표시합니다:58Pro, Max, Team 또는 Enterprise 요금제에서 `/usage`는 요금제 한도에 포함되는 항목의 분석과 권장 사항도 표시합니다:

59 59 

60* **Attribution**: skills, subagents, plugins 및 개별 MCP 서버에 귀속된 최근 사용량이며, 각각은 전체의 백분율로 표시됩니다. MCP 서버의 공유는 해당 도구 결과 중 하나를 사용한 요청만 계산합니다. v2.1.222 이전에는 MCP 서버에 대한 한 번의 호출 후 Claude Code는 모든 후속 요청을 해당 서버에 귀속시켜 공유를 과대 계산했습니다.60* **Attribution**: skills, subagents, plugins 및 개별 MCP 서버에 귀속된 최근 사용량이며, 각각은 전체의 백분율로 표시됩니다. MCP 서버의 공유는 해당 도구 결과 중 하나를 사용한 요청만 계산합니다. v2.1.222 이전에는 MCP 서버에 대한 한 번의 호출 후 Claude Code는 모든 후속 요청을 해당 서버에 귀속시켜 공유를 과대 계산했습니다.

61* **Behavior flags**: 최근 사용량의 10% 이상을 차지할 때 플래그되는 긴 컨텍스트 또는 캐시 미스와 같은 동작입니다.61* **Recommendations**: 사용량을 줄이는 변경 사항이며, 행마다 하나씩 표시됩니다. 각 행은 `25% Trim ~/code/api/CLAUDE.md · 49k tokens per request`와 같이 해당 권장 사항이 다루는 최근 사용량의 비율(최소 10%)로 시작합니다. Claude Code가 적용할 수 있는 권장 사항을 적용하도록 하려면 [수정 단축키로 권장 사항 적용](#apply-recommendations-with-the-fix-shortcut)을 참조하십시오.

62* **Loops**: 최근에 실행된 가장 무거운 [`/loop` 또는 기타 세션 범위 예약 작업](/docs/ko/scheduled-tasks)마다 하나의 행이며, 총 토큰 순으로 정렬되고 나머지 수가 함께 표시됩니다. Claude Code v2.1.242 이상이 필요합니다.62* **Loops**: 최근에 실행된 가장 무거운 [`/loop` 또는 기타 세션 범위 예약 작업](/docs/ko/scheduled-tasks)마다 하나의 행이며, 총 토큰 순으로 정렬되고 나머지 수가 함께 표시됩니다. Claude Code v2.1.242 이상이 필요합니다.

63 * **각 행이 보고하는 내용**: 작업이 실행되는 빈도, 실행된 횟수, 총 토큰 및 실행당 토큰, 마지막 실행 시간63 * **각 행이 보고하는 내용**: 작업이 실행되는 빈도, 실행된 횟수, 총 토큰 및 실행당 토큰, 마지막 실행 시간

64 * **중지 후 다시 생성한 루프**: Claude Code는 작업의 프롬프트를 키로 행을 구분하므로 중지하고 다시 생성한 루프는 한 행으로 유지됩니다64 * **중지 후 다시 생성한 루프**: Claude Code는 작업의 프롬프트를 키로 행을 구분하므로 중지하고 다시 생성한 루프는 한 행으로 유지됩니다

65 65 

66`d` 또는 `w`를 눌러 지난 24시간과 지난 7일 사이를 전환합니다. 수치는 근사치이며 이 기기의 로컬 세션 기록에서 계산되므로 다른 기기 또는 claude.ai의 사용량은 포함되지 않습니다.66`d` 또는 `w`를 눌러 지난 24시간과 지난 7일 사이를 전환합니다. 수치는 근사치이며 이 기기의 로컬 세션 기록에서 계산되므로 다른 기기 또는 claude.ai의 사용량은 포함되지 않습니다.

67 67 

68[VS Code 확장](/docs/ko/vs-code#check-account-and-usage)에서 귀속 공유 및 동작 플래그는 Loops 행 없이 Day 및 Week 토글이 있는 Account & usage 대화 상자에 나타납니다.68[VS Code 확장](/docs/ko/vs-code#check-account-and-usage)에서 귀속 공유 및 권장 사항은 Loops 행 없이 Day 및 Week 토글이 있는 Account & usage 대화 상자에 나타납니다.

69 

70#### 수정 단축키로 권장 사항 적용

71 

72`/usage` 하단에 `f to fix 2 of 3`과 같은 힌트가 표시되면 `f`를 눌러 Claude Code가 처리할 수 있는 권장 사항을 적용하도록 할 수 있습니다. `f` 단축키는 Claude Code v2.1.305 이상이 필요합니다.

73 

741. 진행 중인 턴이 끝난 후, Claude Code는 행에 `run` 없이 표시된 각 [`/effort`](/docs/ko/model-config#adjust-effort-level) 명령을 실행합니다.

752. 그런 다음 Claude는 처리할 수 있는 나머지 각 행에 대한 단계가 담긴 하나의 프롬프트를 받습니다. 이 프롬프트는 Claude에게 각 변경을 적용하기 전에 사용자에게 먼저 보여 주도록 요청합니다.

76 

77`f`를 눌렀을 때 각 행에서 어떤 일이 일어나는지 확인하려면 첫 번째 열에서 해당 행의 형태를 찾으십시오:

78 

79| 행 형태 | 예시 행 | `f`를 누를 때 |

80| :- | :- | :- |

81| 앞에 `run`이 없는 `/effort` 명령으로 끝남 | `40% Switch from max to high effort · /effort high` | Claude Code가 명령을 실행합니다 |

82| `run`과 명령으로 끝남 | `30% Compact before you step away · run /compact` | 이 행에 대해서는 아무 일도 일어나지 않습니다. Claude Code 프롬프트에서 직접 명령을 실행하십시오 |

83| 그 외의 형태로 끝남 | `25% Trim ~/code/api/CLAUDE.md · 49k tokens per request` | 이러한 행 중 일부에 대해서는 Claude가 프롬프트에서 단계를 받고, 나머지에 대해서는 아무 일도 일어나지 않습니다. Claude가 어떤 행에 대해 변경 사항을 보여 주지 않으면 해당 권장 사항을 직접 따르십시오 |

84 

85`f to fix 2 of 3`에서 첫 번째 숫자는 `f`를 눌렀을 때 Claude Code가 처리하는 행의 수이고, 두 번째 숫자는 표시된 행의 수입니다. `f to fix both`와 같이 `of`가 없는 힌트는 Claude Code가 표시된 모든 행을 처리한다는 의미입니다.

86 

87[Remote Control](/docs/ko/remote-control)이 연결되어 있는 동안에는 하단에 `f` 힌트가 표시되지 않습니다. `f`를 눌렀을 때 `Nothing was sent. Turn off Remote Control to use fixes.`와 함께 `/usage`가 닫히면 `/usage`가 열려 있는 동안 Remote Control이 연결된 것입니다. `f`를 다시 사용하려면 [Remote Control 연결을 해제](/docs/ko/remote-control#check-connection-status)한 다음 Claude Code 프롬프트에서 `/usage`를 실행하고 `f`를 다시 누르십시오.

69 88 

70#### 사용량 크레딧 지출 확인89#### 사용량 크레딧 지출 확인

71 90 


367몇 시간 동안 열려 있던 세션은 활동 수준보다 훨씬 더 많은 플랜 한도를 사용할 수 있으며, 일반적으로 다음 중 하나의 이유 때문입니다:386몇 시간 동안 열려 있던 세션은 활동 수준보다 훨씬 더 많은 플랜 한도를 사용할 수 있으며, 일반적으로 다음 중 하나의 이유 때문입니다:

368 387 

369* **긴 컨텍스트**: Claude Code는 모든 요청과 함께 전체 대화를 전송하며, Claude가 도구를 사용할 때마다 해당 도구 결과 배치를 포함하는 또 다른 요청을 전송합니다. [프롬프트 캐싱](/docs/ko/prompt-caching)을 사용하면 Claude Code는 해당 기록을 [캐시된 토큰 요금](https://platform.claude.com/docs/en/about-claude/pricing)으로 다시 읽으므로, 하루 종일 열려 있던 세션의 한 줄 질문도 전체 대화에 대한 사용량을 소비합니다. 컨텍스트를 작게 유지하는 방법은 [컨텍스트 사전에 관리하기](#manage-context-proactively)를 참조하세요388* **긴 컨텍스트**: Claude Code는 모든 요청과 함께 전체 대화를 전송하며, Claude가 도구를 사용할 때마다 해당 도구 결과 배치를 포함하는 또 다른 요청을 전송합니다. [프롬프트 캐싱](/docs/ko/prompt-caching)을 사용하면 Claude Code는 해당 기록을 [캐시된 토큰 요금](https://platform.claude.com/docs/en/about-claude/pricing)으로 다시 읽으므로, 하루 종일 열려 있던 세션의 한 줄 질문도 전체 대화에 대한 사용량을 소비합니다. 컨텍스트를 작게 유지하는 방법은 [컨텍스트 사전에 관리하기](#manage-context-proactively)를 참조하세요

370* **캐시 미스**: [캐시 수명](/docs/ko/prompt-caching#cache-lifetime)보다 긴 휴식 후의 첫 번째 메시지는 캐시를 놓치고 전체 컨텍스트를 다시 처리합니다. 수명은 구독 시 1시간이며 [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)을 사용하기 시작하면 5분으로 단축됩니다. API 키 또는 클라우드 제공자의 경우 기본값은 5분입니다. 사용량 크레딧을 사용하면서 1시간 수명을 유지하려면 [TTL을 직접 선택](/docs/ko/prompt-caching#choose-the-ttl-yourself)하세요389* **캐시 미스**: [캐시 수명](/docs/ko/prompt-caching#cache-lifetime)보다 긴 휴식 후의 첫 번째 메시지는 캐시를 놓치고 전체 컨텍스트를 다시 처리합니다. [요청에 적용되는 수명](/docs/ko/prompt-caching#which-ttl-each-request-gets)과 [수명을 설정하는 제어 방법](/docs/ko/prompt-caching#choose-the-ttl-yourself)을 참조하세요

371* **예약 작업**: [세션 범위 예약 작업](/docs/ko/scheduled-tasks)은 세션이 유휴 상태일 때도 해당 간격으로 실행되며, 매번 전체 컨텍스트를 전송합니다390* **예약 작업**: [세션 범위 예약 작업](/docs/ko/scheduled-tasks)은 세션이 유휴 상태일 때도 해당 간격으로 실행되며, 매번 전체 컨텍스트를 전송합니다

372* **세션 간 메시지**: Claude Code는 이 세션이 유휴 상태일 때 [다른 세션의 메시지](/docs/ko/cross-session-messaging)를 새로운 턴으로 전달하며, 매번 전체 컨텍스트를 전송합니다. 인바운드 메시지를 전달하지 않고 보류하려면 [`crossSessionInbound`](/docs/ko/settings-reference#crosssessioninbound)를 `hold`로 설정하세요391* **세션 간 메시지**: Claude Code는 이 세션이 유휴 상태일 때 [다른 세션의 메시지](/docs/ko/cross-session-messaging)를 새로운 턴으로 전달하며, 매번 전체 컨텍스트를 전송합니다. 인바운드 메시지를 전달하지 않고 보류하려면 [`crossSessionInbound`](/docs/ko/settings-reference#crosssessioninbound)를 `hold`로 설정하세요

373* **목표 체크인**: 백그라운드 작업이 활성 [목표](/docs/ko/goal)를 대기 상태로 유지하는 동안 Claude Code는 세션이 유휴 상태일 때도 [해당 작업을 확인하도록 Claude에 요청](/docs/ko/goal#background-work-defers-evaluation)하며, 전체 컨텍스트를 전송하는 새로운 턴을 시작합니다. Claude Code는 프롬프트 사이에 목표당 최대 3개의 유휴 체크인을 시작합니다. v2.1.246 이전에는 유휴 체크인이 무제한이었습니다. 체크인을 끄려면 [`CLAUDE_CODE_GOAL_CHECKIN_MINUTES`](/docs/ko/env-vars)를 `0`으로 설정하세요. 유휴 체크인에는 Claude Code v2.1.236 이상이 필요합니다392* **목표 체크인**: 백그라운드 작업이 활성 [목표](/docs/ko/goal)를 대기 상태로 유지하는 동안 Claude Code는 세션이 유휴 상태일 때도 [해당 작업을 확인하도록 Claude에 요청](/docs/ko/goal#background-work-defers-evaluation)하며, 전체 컨텍스트를 전송하는 새로운 턴을 시작합니다. Claude Code는 프롬프트 사이에 목표당 최대 3개의 유휴 체크인을 시작합니다. v2.1.246 이전에는 유휴 체크인이 무제한이었습니다. 체크인을 끄려면 [`CLAUDE_CODE_GOAL_CHECKIN_MINUTES`](/docs/ko/env-vars)를 `0`으로 설정하세요. 유휴 체크인에는 Claude Code v2.1.236 이상이 필요합니다


375* **에이전트 팀원**: 각 활성 [팀원](#agent-team-token-costs)은 종료될 때까지 계속 토큰을 소비합니다394* **에이전트 팀원**: 각 활성 [팀원](#agent-team-token-costs)은 종료될 때까지 계속 토큰을 소비합니다

376* **압축**: `/compact`는 요약하는 대화를 읽으므로 [큰 컨텍스트 압축](/docs/ko/prompt-caching#compacting-the-conversation)은 그 자체로 큰 요청입니다. 연속성 대신 새로운 시작을 원할 때 `/clear`는 비용이 들지 않습니다395* **압축**: `/compact`는 요약하는 대화를 읽으므로 [큰 컨텍스트 압축](/docs/ko/prompt-caching#compacting-the-conversation)은 그 자체로 큰 요청입니다. 연속성 대신 새로운 시작을 원할 때 `/clear`는 비용이 들지 않습니다

377 396 

378Pro, Max, Team 또는 Enterprise 플랜에서 `/usage` 분석은 긴 컨텍스트 또는 캐시 미스와 같이 최근 사용량의 10% 이상을 차지하는 동작에 플래그를 지정하며, 각각 이를 줄이기 위한 팁이 있습니다.397Pro, Max, Team 또는 Enterprise 플랜에서는 [`/usage` 분석](#plan-usage-breakdown)이 긴 컨텍스트 또는 캐시 미스와 같이 최근 사용량의 10% 이상을 차지하는 동작에 대해 변경 사항을 권장합니다.

379 398 

380## Claude Code 동작 변경 사항 이해하기399## Claude Code 동작 변경 사항 이해하기

381 400 

Details

184이 예는 한 Claude가 다른 Claude에게 작성한 메시지이며, 확장할 때 전체 텍스트로 읽습니다:184이 예는 한 Claude가 다른 Claude에게 작성한 메시지이며, 확장할 때 전체 텍스트로 읽습니다:

185 185 

186```text wrap theme={null}186```text wrap theme={null}

187스키마 마이그레이션 완료됨187Schema migration finished

188새 열은 tenant_id이며, main에 리베이싱하는 것이 안전합니다.188The new column is tenant_id, and rebasing on main is safe now.

189```189```

190 190 

191### 들어오는 메시지 제어191### 들어오는 메시지 제어


228* **기한 전**: 모드 또는 설정 변경이 메시지를 허용하면, Claude Code는 이를 전달합니다.228* **기한 전**: 모드 또는 설정 변경이 메시지를 허용하면, Claude Code는 이를 전달합니다.

229* **기한 후**: Claude Code는 메시지를 삭제하고 도달할 수 있는 발신자에게 만료로 보고합니다.229* **기한 후**: Claude Code는 메시지를 삭제하고 도달할 수 있는 발신자에게 만료로 보고합니다.

230 230 

231`dialogExpiry`를 `"never"`로 설정하여 기본값으로 보류된 메시지를 세션이 끝날 때까지 유지하십시오. 명시적 `hold` 설정으로 보류된 메시지는 만료되지 않습니다. Claude Code는 나중에 `accept`가 적용될 때만 전달합니다.231`dialogExpiry`를 `"never"`로 설정하여 기본값으로 보류된 메시지를 세션이 끝날 때까지 유지하십시오. 명시적 `hold` 설정으로 보류된 메시지는 만료되지 않습니다. Claude Code는 나중에 `accept`가 적용될 때 전달합니다.

232 232 

233`-p` 워커가 무인으로 메시지를 받도록 하려면, `--settings` 값에서 `crossSessionInbound`를 `accept`로 설정하여 시작하십시오. 사용자 설정의 `accept`도 작동하지만 실행하는 모든 세션에 적용됩니다.233`-p` 워커가 무인으로 메시지를 받도록 하려면, `--settings` 값에서 `crossSessionInbound`를 `accept`로 설정하여 시작하십시오. 사용자 설정의 `accept`도 작동하지만 실행하는 모든 세션에 적용됩니다.

234 234 

desktop.md +15 −8

Details

6 6 

7> Claude Code Desktop을 더 활용하기: Git 격리를 통한 병렬 세션, 드래그 앤 드롭 패널 레이아웃, 통합 터미널 및 파일 편집기, 사이드 채팅, 컴퓨터 사용, 휴대폰에서 Dispatch 세션 전송, 시각적 diff 검토, 앱 미리보기, PR 모니터링, 커넥터, 엔터프라이즈 구성.7> Claude Code Desktop을 더 활용하기: Git 격리를 통한 병렬 세션, 드래그 앤 드롭 패널 레이아웃, 통합 터미널 및 파일 편집기, 사이드 채팅, 컴퓨터 사용, 휴대폰에서 Dispatch 세션 전송, 시각적 diff 검토, 앱 미리보기, PR 모니터링, 커넥터, 엔터프라이즈 구성.

8 8 

9Claude Desktop 앱에는 세 개의 탭이 있습니다: 대화를 위한 **Chat**, [Dispatch 및 더 긴 에이전트 작업](https://claude.com/product/cowork)을 위한 **Cowork**, 소프트웨어 개발을 위한 **Code**입니다. 이 페이지는 Code 탭에 대한 참고 자료입니다.9Claude Desktop 앱에서 Claude Code는 **Code** 탭입니다. 앱에는 채팅과 함께, Dispatch 및 더 긴 에이전트 작업을 처리하는 [Cowork](https://claude.com/product/cowork)도 있습니다. 이 페이지는 Code 탭에 대한 참고 자료입니다.

10 10 

11> **[macOS용 다운로드](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)**11> **[macOS용 다운로드](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)**

12>12>


214 214 

215### 세션 세부 정보 보기215### 세션 세부 정보 보기

216 216 

217세션 세부 정보 패널은 채팅 옆에 표시되는 카드 모음으로, 세션이 실행되는 위치, 세션이 변경한 내용, 현재 실행 중인 항목을 보여줍니다. 이 패널은 세션을 시작한 후 채팅 영역이 충분히 넓을 때 나타납니다.217세션 세부 정보 패널은 채팅 옆에 표시되는 카드 모음으로, 세션이 실행되는 위치, 세션이 변경한 내용, 현재 실행 중인 항목, 컨텍스트 사용량을 보여줍니다. 이 패널은 세션을 시작한 후 채팅 영역이 충분히 넓을 때 나타납니다.

218 218 

219#### 세션 세부 정보 패널 숨기기 또는 표시하기219#### 세션 세부 정보 패널 숨기기 또는 표시하기

220 220 


298 298 

299### 사용량 확인하기299### 사용량 확인하기

300 300 

301모델 선택기 옆의 사용량 링을 클릭하여 현재 컨텍스트 윈도우 사용량과 기간에 대한 계획 사용량을 봅니다. 컨텍스트 사용량은 세션별입니다. 계획 사용량은 모든 Claude Code 사용 환경에서 공유됩니다.301이 세션의 컨텍스트 윈도우가 얼마나 찼는지 확인하려면 사용 중인 Code 탭 레이아웃을 찾습니다:

302 

303* **현재 레이아웃**: [세션 세부 정보 패널](#see-session-details)의 **Context** 카드 헤더에 백분율로 표시됩니다. 카드를 열면 무엇이 윈도우를 사용하고 있는지 범주별로 볼 수 있습니다.

304* **[이전 레이아웃](#check-which-layout-you-have)**: 모델 선택기 옆의 사용량 링을 클릭합니다. 팝오버에 컨텍스트 윈도우 사용량이 표시됩니다.

305 

306어느 레이아웃에서든 프롬프트 상자에 `/context`를 입력하면 이 세션의 컨텍스트 윈도우에 대한 범주별 분석이 채팅에 출력됩니다.

307 

308두 레이아웃 모두 모델 선택기 옆에 사용량 링이 있습니다. 이를 클릭하면 계획 사용량을 볼 수 있으며, 계획 사용량은 모든 Claude Code 사용 환경에서 공유됩니다.

302 309 

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

304 311 


398 405 

399> [!NOTE]406> [!NOTE]

400>407>

401> 세션 격리에는 [Git](https://git-scm.com/downloads)이 필요합니다. 대부분의 Mac에는 기본적으로 Git이 포함되어 있습니다. Terminal에서 `git --version`을 실행하여 확인합니다. 버전 번호가 출력되면 Git이 설치된 것입니다. Git 오류가 발생하면 [Cowork 탭](https://claude.com/product/cowork)에서 Claude에게 설정을 문제 해결하도록 요청하세요.408> 세션 격리에는 [Git](https://git-scm.com/downloads)이 필요합니다. 대부분의 Mac에는 기본적으로 Git이 포함되어 있습니다. Terminal에서 `git --version`을 실행하여 확인합니다. 버전 번호가 출력되면 Git이 설치된 것입니다. Git 오류가 발생하면 [Cowork](https://claude.com/product/cowork)에서 Claude에게 설정을 문제 해결하도록 요청하세요.

402 409 

403### 세션에 폴더 추가하기410### 세션에 폴더 추가하기

404 411 


462 469 

463Claude가 이 사용 환경을 통해 다른 세션에 메시지를 보낼 때 Claude Code는 보내는 세션의 제목과 다시 돌아가는 링크가 표시된 카드로 보여 주므로 항상 메시지가 어디서 왔는지 알 수 있습니다. 수신 세션이 작업 중이면 Claude Code는 메시지를 보류하고 Claude는 현재 작업이 완료되면 읽습니다. 수신 Claude는 회신할 수 있으며 Claude Code는 회신을 이 사용 환경을 통해 다시 전달합니다. Claude는 아카이브된 세션에 전달할 수 없으며 메시지가 전달되지 않을 때 알려줍니다.470Claude가 이 사용 환경을 통해 다른 세션에 메시지를 보낼 때 Claude Code는 보내는 세션의 제목과 다시 돌아가는 링크가 표시된 카드로 보여 주므로 항상 메시지가 어디서 왔는지 알 수 있습니다. 수신 세션이 작업 중이면 Claude Code는 메시지를 보류하고 Claude는 현재 작업이 완료되면 읽습니다. 수신 Claude는 회신할 수 있으며 Claude Code는 회신을 이 사용 환경을 통해 다시 전달합니다. Claude는 아카이브된 세션에 전달할 수 없으며 메시지가 전달되지 않을 때 알려줍니다.

464 471 

465Claude Code는 세션 간에 4가지 안전 동작을 적용합니다:472Claude Code는 세션 간에 3가지 안전 동작을 적용합니다:

466 473 

467* Claude가 세션을 아카이브하기 전에 승인 카드가 표시됩니다. 단, 자동 모드와 Bypass permissions 모드에서는 Claude가 승인 카드 없이 세션을 아카이브할 수 있습니다. 확인을 받으려면 Manual로 전환하세요.474* Claude가 세션을 아카이브하기 전에 승인 카드가 표시됩니다. 단, 자동 모드와 Bypass permissions 모드에서는 Claude가 승인 카드 없이 세션을 아카이브할 수 있습니다. 확인을 받으려면 Manual로 전환하세요.

468* 이 사용 환경을 통해 Claude는 예약 작업 실행과 같이 아무도 보고 있지 않은 세션에서 교차 세션 메시지를 보낼 수 없으며 그러한 세션으로 메시지를 전달할 수도 없습니다.

469* Claude Code는 수신 세션 자체에 [교차 세션 메시징](/docs/ko/cross-session-messaging#availability)이 없더라도 이 사용 환경의 각 메시지를 수신 세션의 [인바운드 컨트롤](/docs/ko/cross-session-messaging#control-inbound-messages)에 대해 확인합니다. 수신 세션에서 [`crossSessionInbound`](/docs/ko/settings-reference#crosssessioninbound)를 `refuse`로 설정하면 Claude Code는 이 사용 환경의 메시지를 삭제합니다. Claude Code는 거부를 Claude 데스크톱 앱에 보고합니다. v2.1.234 이전에는 Claude Code가 교차 세션 메시징이 없는 수신 세션으로 가는 이 사용 환경의 모든 메시지를 삭제했습니다.475* Claude Code는 수신 세션 자체에 [교차 세션 메시징](/docs/ko/cross-session-messaging#availability)이 없더라도 이 사용 환경의 각 메시지를 수신 세션의 [인바운드 컨트롤](/docs/ko/cross-session-messaging#control-inbound-messages)에 대해 확인합니다. 수신 세션에서 [`crossSessionInbound`](/docs/ko/settings-reference#crosssessioninbound)를 `refuse`로 설정하면 Claude Code는 이 사용 환경의 메시지를 삭제합니다. Claude Code는 거부를 Claude 데스크톱 앱에 보고합니다. v2.1.234 이전에는 Claude Code가 교차 세션 메시징이 없는 수신 세션으로 가는 이 사용 환경의 모든 메시지를 삭제했습니다.

470* Claude Code는 각 수신 메시지를 인용하고 보낸 세션에 귀속시키며, Claude는 메시지에 따라 행동할 때에도 여전히 수신 세션의 자체 권한 설정을 따릅니다.476* Claude Code는 각 수신 메시지를 인용하고 보낸 세션에 귀속시키며, Claude는 메시지에 따라 행동할 때에도 여전히 수신 세션의 자체 권한 설정을 따릅니다.

471 477 


514 520 

515### Dispatch에서 시작한 세션521### Dispatch에서 시작한 세션

516 522 

517[Dispatch](https://support.claude.com/en/articles/13947068)는 [Cowork](https://claude.com/product/cowork) 탭에 있는 Claude와의 지속적인 대화입니다. Dispatch에 작업을 메시지하면 처리 방법을 결정합니다.523[Dispatch](https://support.claude.com/en/articles/13947068)는 [Cowork](https://claude.com/product/cowork)에 있는 Claude와의 지속적인 대화입니다. Dispatch에 작업을 메시지하면 처리 방법을 결정합니다.

518 524 

519작업은 두 가지 방법으로 Code 세션이 될 수 있습니다: 직접 요청하는 경우 (예: "Claude Code 세션을 열고 로그인 버그를 수정하세요") 또는 Dispatch가 작업이 개발 작업이라고 결정하고 자동으로 하나를 생성하는 경우입니다. 일반적으로 Code로 라우팅되는 작업에는 버그 수정, 의존성 업데이트, 테스트 실행 또는 풀 리퀘스트 열기가 포함됩니다. 연구, 문서 편집, 스프레드시트 작업은 Cowork에 남아 있습니다.525작업은 두 가지 방법으로 Code 세션이 될 수 있습니다: 직접 요청하는 경우 (예: "Claude Code 세션을 열고 로그인 버그를 수정하세요") 또는 Dispatch가 작업이 개발 작업이라고 결정하고 자동으로 하나를 생성하는 경우입니다. 일반적으로 Code로 라우팅되는 작업에는 버그 수정, 의존성 업데이트, 테스트 실행 또는 풀 리퀘스트 열기가 포함됩니다. 연구, 문서 편집, 스프레드시트 작업은 Cowork에 남아 있습니다.

520 526 


528 534 

529## Claude Code 확장하기535## Claude Code 확장하기

530 536 

531외부 서비스를 연결하고, 재사용 가능한 워크플로우를 추가하고, Claude의 동작을 사용자 정의하고, 미리보기 서버를 구성합니다. 한 곳에서 커넥터, skills, 플러그인을 관리하려면 사이드바에서 **Customize**를 클릭합니다. Desktop 앱의 [Cowork](https://claude.com/product/cowork) 탭은 CLI의 `~/.claude` 디렉토리가 아닌 이 Customize 구성에서 skills, 플러그인, 커넥터를 가져오며, 이는 claude.ai 계정을 통해 동기화됩니다.537외부 서비스를 연결하고, 재사용 가능한 워크플로를 추가하고, Claude의 동작을 사용자 정의하고, 미리보기 서버를 구성합니다. 한 곳에서 커넥터, 스킬, 플러그인을 관리하려면 사이드바에서 **Customize**를 클릭합니다. Desktop 앱의 [Cowork](https://claude.com/product/cowork)는 CLI의 `~/.claude` 디렉터리가 아닌 이 Customize 구성에서 스킬, 플러그인, 커넥터를 가져오며, 이는 claude.ai 계정을 통해 동기화됩니다.

532 538 

533Claude Code는 또한 동일한 계정으로 로그인한 터미널 세션에서 claude.ai 계정에 대해 활성화된 skills 및 플러그인을 로드합니다. [claude.ai에서 동기화된 Skills](/docs/ko/skills#how-synced-skills-behave) 및 [claude.ai에서 동기화된 Plugins](/docs/ko/plugins/loading#synced-plugins)를 참조하세요.539Claude Code는 또한 동일한 계정으로 로그인한 터미널 세션에서 claude.ai 계정에 대해 활성화된 skills 및 플러그인을 로드합니다. [claude.ai에서 동기화된 Skills](/docs/ko/skills#how-synced-skills-behave) 및 [claude.ai에서 동기화된 Plugins](/docs/ko/plugins/loading#synced-plugins)를 참조하세요.

534 540 


1659*.livepreview.claude.ai1665*.livepreview.claude.ai

1660claude.com1666claude.com

1661platform.claude.com1667platform.claude.com

1668sso.claude.com

1662*.livepreview.claude.app1669*.livepreview.claude.app

1663*.claudeusercontent.com1670*.claudeusercontent.com

1664*.claudemcpcontent.com1671*.claudemcpcontent.com

Details

17* Debian 기반 배포판: Ubuntu 22.04 이상 또는 Debian 12 이상17* Debian 기반 배포판: Ubuntu 22.04 이상 또는 Debian 12 이상

18* x86\_64 또는 arm6418* x86\_64 또는 arm64

19 19 

20이러한 요구 사항을 충족하는 다른 Debian 기반 배포판도 작동할 수 있지만 공식적으로 테스트되지 않았습니다. Fedora 또는 Arch와 같이 Debian 기반이 아닌 배포판에서는 [CLI](/docs/ko/setup#system-requirements) 대신 실행하십시오. Windows에서 WSL 2로 작업하는 경우 Windows 데스크톱 앱을 설치하고 배포판 내에서 세션을 실행하십시오. [Claude Code Desktop in WSL](/docs/ko/desktop-wsl)을 참조하십시오.20이 요구 사항을 충족하는 다른 Debian 기반 배포판에서도 작동할 수 있지만 공식적으로 테스트되지는 않았습니다. Fedora나 Arch처럼 Debian 기반이 아닌 배포판에서는 데스크톱 앱 대신 [CLI](/docs/ko/setup#system-requirements)를 실행하십시오. WSL 2와 함께 Windows에서 작업하는 경우 Windows 데스크톱 앱을 설치하고 배포판 내부에서 세션을 실행하십시오. [WSL의 Claude Code Desktop](/docs/ko/desktop-wsl)을 참조하십시오.

21 21 

22### Cowork 요구 사항22### Cowork 요구 사항

23 23 

24Cowork는 [Dispatch 및 더 긴 에이전트 작업](https://claude.com/docs/cowork/overview)을 위한 데스크톱 탭입니다. Linux에서 Cowork는 데스크톱 앱이 QEMU 및 KVM으로 호스팅하는 가상 머신에서 이러한 작업을 실행합니다. Cowork를 사용하려면 머신에 다음이 필요합니다.24Cowork는 [Dispatch 및 장시간 에이전트 작업](https://claude.com/docs/cowork/overview)을 위한 데스크톱 앱의 구성 요소입니다. Linux에서 Cowork는 데스크톱 앱이 QEMU와 KVM으로 호스팅하는 가상 머신에서 이러한 작업을 실행합니다. Cowork를 사용하려면 머신에 다음이 필요합니다.

25 25 

26* **하드웨어 가상화**: 펌웨어 설정에서 켜져 있어야 합니다. 이것이 없으면 Cowork 탭에 "Cowork requires hardware virtualization (KVM)"이 표시됩니다.26* **하드웨어 가상화**: 펌웨어 설정에서 활성화되어 있어야 합니다. 활성화되어 있지 않으면 Cowork가 "Cowork requires hardware virtualization (KVM)"이라고 보고합니다.

27* **QEMU 및 UEFI 펌웨어**: x86\_64의 경우 `qemu-system-x86`, `ovmf`, `virtiofsd`, arm64의 경우 `qemu-system-arm`, `qemu-efi-aarch64`, `virtiofsd`. `apt install claude-desktop`은 기본적으로 권장 패키지로 설치합니다. `--no-install-recommends`로 설치했거나 권장 패키지를 건너뛰는 최소 이미지인 경우 Cowork 탭에 "Cowork requires QEMU"가 표시되고 실행할 `apt install` 명령이 표시됩니다. Ubuntu 22.04에는 `virtiofsd` 패키지가 없습니다. 앱은 거기서 번들된 복사본을 사용합니다.27* **QEMU 및 UEFI 펌웨어**: x86\_64에서는 `qemu-system-x86`, `ovmf`, `virtiofsd`, arm64에서는 `qemu-system-arm`, `qemu-efi-aarch64`, `virtiofsd`가 필요합니다. `apt install claude-desktop`은 기본적으로 이들을 권장 패키지로 설치합니다. `--no-install-recommends`로 설치했거나 시스템이 권장 패키지를 건너뛰는 최소 이미지인 경우, Cowork가 "Cowork requires QEMU"라고 보고하고 실행할 `apt install` 명령을 표시합니다. Ubuntu 22.04에는 `virtiofsd` 패키지가 없으므로 해당 환경에서는 앱이 번들로 포함된 사본을 사용합니다.

28* **`/dev/kvm`에 대한 액세스**: `sudo usermod -aG kvm $USER`로 사용자를 `kvm` 그룹에 추가한 다음 로그아웃했다가 다시 로그인하십시오. 일부 데스크톱 환경은 그룹 없이 로그인한 사용자에게 `/dev/kvm`에 대한 액세스를 부여하지만 Cowork는 `/dev/vhost-vsock`도 필요하며, 이는 `kvm` 그룹 멤버만 열 수 있습니다. `/dev/kvm`이 이미 작동하는 경우에도 그룹에 가입하십시오.28* **`/dev/kvm`에 대한 액세스**: `sudo usermod -aG kvm $USER`로 사용자를 `kvm` 그룹에 추가한 다음 로그아웃했다가 다시 로그인하십시오. 일부 데스크톱 환경은 그룹 없이도 로그인한 사용자에게 `/dev/kvm` 액세스 권한을 부여하지만, Cowork에는 `kvm` 그룹 구성원만 열 수 있는 `/dev/vhost-vsock`도 필요합니다. `/dev/kvm`이 이미 작동하더라도 그룹에 가입하십시오.

29 29 

30앱은 시작 시 이러한 요구 사항을 한 번 확인합니다. 패키지를 설치한 후 다시 시작하고 그룹에 가입한 후 로그아웃했다가 다시 로그인하십시오. `/dev/vhost-vsock`이 누락되었고 실행 중인 커널의 `/lib/modules` 아래에 모듈 디렉터리가 없으면 Cowork 탭에 커널이 Cowork에 필요한 가상화 지원을 포함하지 않으며 수동으로 추가할 수 없다고 보고합니다. 이 조합은 ChromeOS 및 컨테이너 기반 Linux 환경에서 일반적입니다.30앱은 실행 시 이러한 요구 사항을 한 번 확인합니다. 패키지를 설치한 후에는 앱을 다시 시작하고, 그룹에 가입한 후에는 로그아웃했다가 다시 로그인하십시오. `/dev/vhost-vsock`이 없고 실행 중인 커널에 `/lib/modules` 아래 모듈 디렉터리가 없는 경우, Cowork는 커널에 Cowork에 필요한 가상화 지원이 포함되어 있지 않으며 이를 수동으로 추가할 수 없다고 보고합니다. 이러한 조합은 ChromeOS와 컨테이너 기반 Linux 환경에서 흔히 발생합니다.

31 31 

32## 설치32## 설치

33 33 


71 71 

72애플리케이션 런처에서 **Claude**를 실행하거나 터미널에서 `claude-desktop`을 실행한 후 Anthropic 계정으로 로그인합니다.72애플리케이션 런처에서 **Claude**를 실행하거나 터미널에서 `claude-desktop`을 실행한 후 Anthropic 계정으로 로그인합니다.

73 73 

74Linux 앱은 macOS 및 Windows와 동일한 방식으로 로그인합니다: claude.ai 구독 또는 조직의 SSO를 통해 로그인합니다. Desktop은 Claude Console API 키를 직접 허용하지 않습니다. API 키 인증의 경우 [CLI](/docs/ko/quickstart)를 사용하세요. Desktop을 Google Cloud의 Agent Platform 또는 LLM 게이트웨이로 라우팅하는 엔터프라이즈 배포의 경우 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview) 및 [네트워크 구성](/docs/ko/network-config)을 참조하세요.74Linux 앱은 macOS 및 Windows와 동일한 방식으로 로그인합니다: claude.ai 구독 또는 조직의 SSO를 통해 로그인합니다. API 키 인증의 경우 [CLI](/docs/ko/quickstart)를 사용하세요. 대신 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 또는 LLM 게이트웨이와 함께 Desktop을 사용하려면 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)를 참조하세요. 이러한 배포에서 프록시 서버 및 사용자 지정 인증 기관을 설정하려면 [네트워크 구성](/docs/ko/network-config)을 참조하세요.

75 75 

76### 다운로드한 파일에서 설치76### 다운로드한 파일에서 설치

77 77 


153 153 

154### Cowork를 사용할 수 없음154### Cowork를 사용할 수 없음

155 155 

156Cowork 탭에 다음 메시지 중 하나가 표시되면 이름이 지정된 요구 사항을 수정한 후 앱을 다시 시작하십시오:156Cowork에 다음 메시지 중 하나가 표시되면 이름이 지정된 요구 사항을 수정한 후 앱을 다시 시작하십시오:

157 157 

158* **Cowork에 QEMU가 필요합니다**: 메시지에 나열된 [QEMU 및 UEFI 펌웨어 패키지](#cowork-requirements)를 설치하십시오.158* **Cowork에 QEMU가 필요합니다**: 메시지에 나열된 [QEMU 및 UEFI 펌웨어 패키지](#cowork-requirements)를 설치하십시오.

159* **Cowork에 하드웨어 가상화(KVM)가 필요합니다**: 펌웨어 설정에서 [하드웨어 가상화](#cowork-requirements)를 켜십시오.159* **Cowork에 하드웨어 가상화(KVM)가 필요합니다**: 펌웨어 설정에서 [하드웨어 가상화](#cowork-requirements)를 켜십시오.

Details

6 6 

7> Claude 데스크톱 앱을 설치하고, 코드 탭을 열고, 컴퓨터의 프로젝트 폴더에서 첫 번째 Claude Code 세션을 시작합니다.7> Claude 데스크톱 앱을 설치하고, 코드 탭을 열고, 컴퓨터의 프로젝트 폴더에서 첫 번째 Claude Code 세션을 시작합니다.

8 8 

9데스크톱 앱은 Claude Code를 그래픽 인터페이스와 함께 제공하므로, 컴퓨터의 폴더에 있는 코드에 대해 Claude에 작업을 요청하고 터미널을 사용하지 않고도 변경 사항을 검토할 수 있습니다. 이 페이지에서는 앱을 설치하고 **코드** 탭에서 첫 번째 세션을 시작하는 방법을 안내합니다. Claude Code는 [Pro, Max, Team 또는 Enterprise 구독](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing)이 필요합니다.9데스크톱 앱은 Claude Code를 그래픽 인터페이스와 함께 제공합니다. 컴퓨터의 폴더에 있는 코드에 대해 Claude에 작업을 요청하고, 터미널을 사용하지 않고도 변경 사항을 검토할 수 있습니다.

10 

11Claude Code는 앱 사이드바 상단의 **코드** 탭에 있습니다. 이 페이지에서는 앱을 설치하고 해당 탭에서 첫 번째 세션을 시작하는 방법을 안내합니다. Claude Code는 [Pro, Max, Team 또는 Enterprise 구독](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing)이 필요합니다.

10 12 

11> **[macOS용 다운로드](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)**13> **[macOS용 다운로드](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)**

12>14>


28>30>

29> * **이미 설정됨**: 코드 탭이 할 수 있는 모든 작업은 [Claude Code 데스크톱 사용](/docs/ko/desktop)을 참조하세요31> * **이미 설정됨**: 코드 탭이 할 수 있는 모든 작업은 [Claude Code 데스크톱 사용](/docs/ko/desktop)을 참조하세요

30> * **터미널에서 `claude` 사용 원함**: [CLI를 별도로 설치](/docs/ko/quickstart)하세요32> * **터미널에서 `claude` 사용 원함**: [CLI를 별도로 설치](/docs/ko/quickstart)하세요

31 33> * **Chat 또는 Cowork 사용**: [Claude 도움말 센터](https://support.claude.com/)를 참조하세요

32데스크톱 앱에는 세 개의 탭이 있습니다:34> * **데스크톱 앱 설치 또는 배포에 대한 추가 정보 필요**: [Claude 데스크톱 지원 문서](https://support.claude.com/en/collections/16163169-claude-desktop)를 참조하세요

33 

34* **Chat**: 파일 접근 권한이 없는 일반 대화로, claude.ai와 유사합니다.

35* **Cowork**: 사용자가 다른 작업을 하는 동안 독립적으로 작업을 수행하는 자율 백그라운드 에이전트입니다.

36* **Code**: 로컬 파일에 직접 접근할 수 있는 대화형 코딩 어시스턴트입니다. 권한 모드에 따라 Claude가 제안하는 각 변경 사항을 승인하거나 Claude가 변경 사항을 만든 후 검토합니다.

37 

38Chat과 Cowork는 [Claude 도움말 센터](https://support.claude.com/)에서 다루고 있으며, 데스크톱 앱 설치 및 배포는 [Claude 데스크톱 지원 문서](https://support.claude.com/en/collections/16163169-claude-desktop)에서 다룹니다. 이 페이지는 **코드** 탭에 중점을 둡니다.

39 35 

40## 설치36## 설치

41 37 


45 41 

46**2. Code 탭 열기**42**2. Code 탭 열기**

47 43 

48상단 중앙의 **Code** 탭을 클릭합니다. Code를 클릭할 때 업그레이드를 요청하는 메시지가 나타나면 먼저 [유료 요금제를 구독](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_upgrade)해야 합니다. 온라인 로그인을 요청하는 메시지가 나타나면 로그인을 완료하고 앱을 다시 시작합니다. 403 오류가 표시되면 [인증 문제 해결](/docs/ko/desktop#403-or-authentication-errors-in-the-code-tab)을 참조하세요.44사이드바 상단의 **Code** 탭을 클릭합니다. 탭에 아이콘만 표시되면 아이콘 위에 마우스를 올려 이름을 확인합니다. **Code**를 클릭한 후 프롬프트나 오류가 나타나면 해당하는 해결 방법을 따릅니다.

45 

46* **업그레이드 프롬프트**: 먼저 [유료 요금제를 구독](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_upgrade)해야 합니다

47* **온라인 로그인 프롬프트**: 로그인을 완료하고 앱을 다시 시작합니다

48* **403 오류**: [인증 문제 해결](/docs/ko/desktop#403-or-authentication-errors-in-the-code-tab)을 참조하세요

49 49 

50데스크톱 앱에는 Claude Code가 포함되어 있으므로 Code 탭을 사용하기 위해 Node.js나 CLI를 설치할 필요가 없습니다.50데스크톱 앱에는 Claude Code가 포함되어 있으므로 Code 탭을 사용하기 위해 Node.js나 CLI를 설치할 필요가 없습니다.

51 51 


87 87 

88프롬프트 상자 아래 행에서 [permission mode](/docs/ko/desktop#choose-a-permission-mode)를 확인하여 Claude가 승인을 기다리는지 확인합니다:88프롬프트 상자 아래 행에서 [permission mode](/docs/ko/desktop#choose-a-permission-mode)를 확인하여 Claude가 승인을 기다리는지 확인합니다:

89 89 

90* **Auto or Accept edits**: Claude가 파일 변경 사항을 적용하고 `+12 -1`과 같은 표시기가 나타나므로 diff 보기에서 검토할 수 있습니다.90* **Auto or Accept edits**: Claude가 파일 변경 사항을 적용하고 `+12 -1`과 같은 표시기가 나타나므로 [diff 보기](/docs/ko/desktop#review-changes-with-diff-view)에서 검토할 수 있습니다.

91* **Manual**: Claude는 각 변경 사항을 제안하고 적용하기 전에 승인을 기다립니다.91* **Manual**: Claude는 각 변경 사항을 제안하고 적용하기 전에 승인을 기다립니다.

92 92 

93Manual 모드에서는 다음을 볼 수 있습니다:93Manual 모드에서는 다음을 볼 수 있습니다:

94 94 

951. 각 파일에서 정확히 무엇이 변경될지 보여주는 [diff view](/docs/ko/desktop#review-changes-with-diff-view)951. 정확히 무엇이 변경될지 보여주는 diff

962. 각 변경 사항을 승인하거나 거부하는 Accept/Reject 버튼962. 각 변경 사항을 승인하거나 거부하는 버튼

973. Claude가 요청을 처리하는 동안 실시간 업데이트973. Claude가 요청을 처리하는 동안 실시간 업데이트

98 98 

99## 이제 어떻게 할까요?99## 이제 어떻게 할까요?

Details

28| 로컬 파일 접근 | 아니오 (새로운 클론) | 예 | 예 |28| 로컬 파일 접근 | 아니오 (새로운 클론) | 예 | 예 |

29| MCP 서버 | 작업별로 구성된 커넥터 | [구성 파일](/docs/ko/mcp) 및 커넥터 | 세션에서 상속 |29| MCP 서버 | 작업별로 구성된 커넥터 | [구성 파일](/docs/ko/mcp) 및 커넥터 | 세션에서 상속 |

30| 권한 프롬프트 | 아니오 (자동으로 실행) | 작업별로 구성 가능 | 세션에서 상속 |30| 권한 프롬프트 | 아니오 (자동으로 실행) | 작업별로 구성 가능 | 세션에서 상속 |

31| 사용자 정의 가능한 일정 | CLI의 `/schedule`을 통해 | 예 | 예 |31| 사용자 정의 가능한 일정 | 예 | 예 | 예 |

32| 최소 간격 | 1시간 | 1분 | 1분 |32| 최소 간격 | 1시간 | Claude가 설정하는 경우 1분, [양식에서는 1시간](/docs/ko/desktop-scheduled-tasks#schedule-options) | 1분 |

33 33 

34> [!TIP]34> [!TIP]

35>35>


61 61 

62**5. Only on this computer 켜기**62**5. Only on this computer 켜기**

63 63 

64지금은 **Trigger** 카드를 건너뛰고 그 아래의 **Advanced settings**를 펼칩니다. **General** 탭에서 **Only on this computer**를 켭니다. 이 옵션을 켜면 작업이 사용자의 컴퓨터에서 로컬 폴더를 대상으로 실행되며, **Trigger** 카드에는 [일정 옵션](#schedule-options)에 나열된 프리셋이 표시됩니다.64지금은 **Trigger** 카드를 건너뛰고 그 아래의 **Advanced settings**를 펼칩니다. **General** 탭에서 **Only on this computer**를 켭니다. 이 옵션을 켜면 작업이 사용자의 컴퓨터에서 로컬 폴더를 대상으로 실행됩니다.

65 65 

66스위치를 사용할 수 없는 경우 저장소나 GitHub 이벤트 또는 API 트리거를 지웁니다. 이러한 항목이 있으면 작업이 [클라우드 예약 작업](/docs/ko/routines)이 되기 때문입니다.66스위치를 사용할 수 없는 경우 저장소나 GitHub 이벤트 또는 API 트리거를 지웁니다. 이러한 항목이 있으면 작업이 [클라우드 예약 작업](/docs/ko/routines)이 되기 때문입니다.

67 67 


81 81 

82**Create**를 클릭합니다. 아직 폴더를 신뢰하지 않은 경우 Desktop이 이 시점에 폴더를 신뢰하도록 요청합니다. 작업의 세부 정보 페이지가 열립니다.82**Create**를 클릭합니다. 아직 폴더를 신뢰하지 않은 경우 Desktop이 이 시점에 폴더를 신뢰하도록 요청합니다. 작업의 세부 정보 페이지가 열립니다.

83 83 

84세부 정보 페이지에서 연필 아이콘을 클릭하면 [**Edit** 양식](#manage-scheduled-tasks)이 열립니다. 여기에서 Desktop이 지침을 바탕으로 채운 **Description**을 변경하거나, **Worktree**를 선택하거나, 일정을 **Manual**로 전환할 수 있습니다.84세부 정보 페이지에서 연필 아이콘을 클릭하면 [**Edit** 양식](#manage-scheduled-tasks)이 열립니다. 여기에서 Desktop이 지침을 바탕으로 채운 **Description**을 변경하거나, **Worktree**를 선택하거나, 일정을 **Manual** 또는 **Custom**으로 전환할 수 있습니다.

85 85 

86모든 세션에서 원하는 작업을 설명하여 작업을 만들 수도 있습니다. 예를 들어, "매일 아침 9시에 실행되는 일일 코드 리뷰 설정"은 반복 작업을 만듭니다. "내일 오후 3시에 배포 확인을 상기시켜 줘"와 같은 요청은 실행 후 스스로 비활성화되는 일회성 작업을 만듭니다.86모든 세션에서 원하는 작업을 설명하여 작업을 만들 수도 있습니다. 예를 들어, "매일 아침 9시에 실행되는 일일 코드 리뷰 설정"은 반복 작업을 만듭니다. "내일 오후 3시에 배포 확인을 상기시켜 줘"와 같은 요청은 실행 후 스스로 비활성화되는 일회성 작업을 만듭니다.

87 87 


95* **Description**: 설명을 입력합니다. 입력할 때까지 **Create**는 사용할 수 없습니다.95* **Description**: 설명을 입력합니다. 입력할 때까지 **Create**는 사용할 수 없습니다.

96* **지침 상자**: 작업이 실행될 때 Claude가 수행해야 할 작업을 입력합니다. 상자의 메뉴에서 권한 모드와 모델을 선택합니다.96* **지침 상자**: 작업이 실행될 때 Claude가 수행해야 할 작업을 입력합니다. 상자의 메뉴에서 권한 모드와 모델을 선택합니다.

97* **Working folder**: 작업이 실행될 폴더를 선택합니다. 폴더를 선택할 때까지 **Create**는 사용할 수 없습니다.97* **Working folder**: 작업이 실행될 폴더를 선택합니다. 폴더를 선택할 때까지 **Create**는 사용할 수 없습니다.

98* **Trigger**: 일정을 선택합니다. **Custom**은 cron 표현식을 사용합니다. 다른 프리셋은 [일정 옵션](#schedule-options)을 참조하세요.98* **Trigger**: 일정을 선택합니다. 프리셋은 [일정 옵션](#schedule-options)을 참조하세요.

99 99 

100**Create**를 클릭합니다. 작업의 세부 정보 페이지가 열립니다.100**Create**를 클릭합니다. 작업의 세부 정보 페이지가 열립니다.

101 101 

102## 예약 옵션102## 예약 옵션

103 103 

104**Advanced settings**에서 **Only on this computer**를 켜면 **Trigger** 카드에서 Hourly, Daily, Weekdays, Weekly를 선택할 수 있습니다. 작업의 [**Edit** 양식](#manage-scheduled-tasks)에서는 **Manual**도 선택할 수 있습니다.104**Advanced settings**에서 **Only on this computer**를 켜면 **Trigger** 카드에서 Hourly, Daily, Weekdays, Weekly를 선택할 수 있습니다. 이러한 작업에 **Manual** 또는 **Custom**을 사용하려면 작업을 만든 후 해당 작업의 [**Edit** 양식](#manage-scheduled-tasks)을 엽니다. 이 양식과 [상단에 **Only on this computer**가 있는 대화 상자](#dialog-with-only-on-this-computer-at-the-top)에서는 다음 여섯 가지 옵션을 제공합니다.

105 105 

106* **Hourly**: 매시간 실행됩니다.106* **Hourly**: 매시간 실행됩니다.

107* **Daily**: 매일 선택한 현지 시간에 실행됩니다.107* **Daily**: 매일 선택한 현지 시간에 실행됩니다.

108* **Weekdays**: Daily와 동일하지만 토요일과 일요일을 건너뜁니다.108* **Weekdays**: Daily와 동일하지만 토요일과 일요일을 건너뜁니다.

109* **Weekly**: 시간 선택기와 요일 선택기를 표시합니다.109* **Weekly**: 시간 선택기와 요일 선택기를 표시합니다.

110* **Manual**: 일정이 없으며, **Run now**를 클릭할 때만 실행됩니다. 요청 시 트리거하는 프롬프트를 저장하는 데 유용합니다.110* **Manual**: 일정이 없으며, **Run now**를 클릭할 때만 실행됩니다. 요청 시 트리거하는 프롬프트를 저장하는 데 유용합니다.

111* **Custom**: 직접 입력한 cron 표현식에 따라 실행되며, 이 표현식은 현지 시간 기준으로 평가됩니다. 예를 들어 `0 9 * * *`는 매일 오전 9시에 실행됩니다. 요일과 월의 이름은 허용되지 않으므로 숫자로 작성합니다. 일요일은 `7`이 아니라 `0`입니다. 양식은 한 시간에 한 번보다 자주 실행되는 표현식을 거부합니다.

111 112 

11215분마다, 매월 1일, 또는 특정 미래 시간의 일회성 실행과 같이 선택기가 제공하지 않는 간격의 경우, Desktop의 모든 세션에서 Claude에게 일정을 설정하도록 요청합니다. 일반 언어를 사용합니다. 예를 들어, "6시간마다 모든 테스트를 실행하는 작업을 예약해 줘"입니다.113Desktop의 모든 세션에서 Claude에게 일정을 설정하도록 요청할 수도 있습니다. Claude는 한 시간에 한 번이라는 제한을 받지 않으며, 미래의 특정 시간에 한 번만 실행되도록 설정할 수도 있습니다. 예를 들어 "30분마다 테스트 스위트를 실행해 줘" 또는 "다음 주 월요일 오전 9시에 금요일 이후 병합된 풀 리퀘스트를 요약해 줘"라고 요청합니다.

113 114 

114## 예약된 작업이 실행되는 방식115## 예약된 작업이 실행되는 방식

115 116 


121>122>

122> 컴퓨터가 꺼져 있어도 실행되어야 하거나 API 호출이나 GitHub 이벤트로 트리거되어야 하는 작업의 경우, 대신 [클라우드 예약 작업](/docs/ko/routines)을 만듭니다.123> 컴퓨터가 꺼져 있어도 실행되어야 하거나 API 호출이나 GitHub 이벤트로 트리거되어야 하는 작업의 경우, 대신 [클라우드 예약 작업](/docs/ko/routines)을 만듭니다.

123 124 

124로컬 작업이 실행되면 새 세션이 사이드바의 **Scheduled** 섹션 아래에 나타납니다. 이를 열어 Claude가 수행한 작업을 확인하고, 변경 사항을 검토하거나, 권한 프롬프트에 응답합니다. Claude는 사용자가 직접 시작한 세션과 동일하게 파일을 편집하고, 명령을 실행하고, 커밋을 만들고, 풀 리퀘스트를 열 수 있습니다.125### 실행의 세션 찾기

126 

127실행이 시작한 세션을 열려면 작업의 [세부 정보 페이지](#manage-scheduled-tasks)로 이동하여 **History** 목록에서 해당 실행의 행을 클릭합니다.

128 

129사이드바의 세션 목록에는 작업당 하나의 행이 있는 **Scheduled** 그룹도 표시될 수 있습니다. 작업의 최신 실행 세션을 열려면 해당 그룹에서 작업의 행을 클릭합니다. 그룹을 표시하려면 [사용 중인 레이아웃을 확인](/docs/ko/desktop#check-which-layout-you-have)합니다.

130 

131* **현재 레이아웃**: [**Group and sort** 메뉴](/docs/ko/desktop#organize-and-find-sessions)를 열고 **Show**를 선택한 다음 **Scheduled**를 선택합니다. 그룹은 접힌 상태로 시작하므로 제목을 클릭하여 펼칩니다. **Show**에는 작업 중 하나 이상이 **Active**일 때 **Scheduled**가 나열되며, 이는 작업의 세부 정보 페이지에 표시되는 **Status**입니다. 나열되지 않으면 그룹 표시 여부와 관계없이 작동하는 **History** 목록을 사용합니다.

132* **이전 레이아웃**: 별도로 켤 필요 없이 그룹이 세션 목록에 있습니다

133 

134어떤 방법으로 접근했든 실행의 세션에서 Claude가 수행한 작업을 확인하고, 변경 사항을 검토하고, 권한 프롬프트에 응답할 수 있습니다. Claude는 사용자가 직접 시작한 세션과 동일하게 파일을 편집하고, 명령을 실행하고, 커밋을 만들고, 풀 리퀘스트를 열 수 있습니다.

125 135 

126## 놓친 실행136## 놓친 실행

127 137 


131 141 

132## 예약된 작업에 대한 권한142## 예약된 작업에 대한 권한

133 143 

134각 작업에는 자신의 권한 모드가 있으며, 이는 작업을 만들거나 편집할 때 설정합니다. `~/.claude/settings.json`의 Allow 규칙도 예약된 작업 세션에 적용됩니다. 작업이 [Manual 모드](/docs/ko/desktop#choose-a-permission-mode)에서 실행되고 권한이 없는 도구를 실행해야 하는 경우, 승인할 때까지 실행이 정지됩니다. 세션은 사이드바에 열려 있으므로 나중에 답변할 수 있습니다.144각 작업에는 자신의 권한 모드가 있으며, 이는 작업을 만들거나 편집할 때 설정합니다. `~/.claude/settings.json`의 Allow 규칙도 예약된 작업 세션에 적용됩니다. 작업이 [Manual 모드](/docs/ko/desktop#choose-a-permission-mode)에서 실행되고 권한이 없는 도구를 실행해야 하는 경우, 승인할 때까지 실행이 정지됩니다. 승인하려면 [해당 실행의 세션을 찾아](#find-a-runs-session) 그곳에서 권한 프롬프트에 응답합니다.

135 145 

136정지를 방지하려면 작업을 만든 후 **Run now**를 클릭하고 권한 프롬프트를 확인한 다음 각 프롬프트에 대해 "always allow"를 선택합니다. 해당 작업의 향후 실행은 프롬프트 없이 동일한 도구를 자동으로 승인합니다. 작업의 세부 정보 페이지에서 이러한 승인을 검토하고 취소할 수 있습니다.146정지를 방지하려면 작업을 만든 후 **Run now**를 클릭하고 권한 프롬프트를 확인한 다음 각 프롬프트에 대해 "always allow"를 선택합니다. 해당 작업의 향후 실행은 프롬프트 없이 동일한 도구를 자동으로 승인합니다. 작업의 세부 정보 페이지에서 이러한 승인을 검토하고 취소할 수 있습니다.

137 147 


146* **Edit**: instructions, schedule, folder 또는 기타 설정을 변경합니다.156* **Edit**: instructions, schedule, folder 또는 기타 설정을 변경합니다.

147* **Review history**: 건너뛴 실행을 포함하여 모든 과거 실행을 확인합니다. 건너뛴 항목 위에 마우스를 올려 이유를 확인합니다: 컴퓨터가 절전 모드였거나, 이전 실행이 여전히 진행 중이거나, 다른 예약된 작업이 이미 실행 중입니다. **Show more**를 클릭하여 더 오래된 항목을 로드합니다.157* **Review history**: 건너뛴 실행을 포함하여 모든 과거 실행을 확인합니다. 건너뛴 항목 위에 마우스를 올려 이유를 확인합니다: 컴퓨터가 절전 모드였거나, 이전 실행이 여전히 진행 중이거나, 다른 예약된 작업이 이미 실행 중입니다. **Show more**를 클릭하여 더 오래된 항목을 로드합니다.

148* **Review allowed permissions**: **Always allowed** 패널에서 이 작업에 대해 저장된 도구 승인을 확인하고 취소합니다.158* **Review allowed permissions**: **Always allowed** 패널에서 이 작업에 대해 저장된 도구 승인을 확인하고 취소합니다.

149* **Delete**: 작업을 제거하고 생성한 모든 세션을 보관합니다. 확인 대화 상자에 **Also delete files on disk** 확인란이 나타납니다. 이를 확인하여 작업의 `SKILL.md` 파일과 `~/.claude/scheduled-tasks/`의 관련 데이터도 제거합니다.159* **Delete**: 작업을 제거합니다. 작업이 생성한 세션은 삭제되지 않고 [보관](/docs/ko/desktop#organize-and-find-sessions)됩니다. 작업의 `SKILL.md` 파일이 들어 있는 폴더는 디스크의 `~/.claude/scheduled-tasks/<task-name>/`에, 또는 [`CLAUDE_CONFIG_DIR`](/docs/ko/env-vars) 변수를 설정한 경우 그 아래의 `scheduled-tasks/<task-name>/`에 그대로 남습니다. 해당 폴더를 제거하려면 직접 삭제해야 합니다.

150 160 

151Desktop의 모든 세션에서 Claude에게 요청하여 작업을 나열, 만들, 편집 및 일시 중지할 수도 있습니다. 예를 들어, "내 dependency-audit 작업을 일시 중지해 줘" 또는 "내 예약된 작업을 보여 줘"입니다. 작업을 삭제하려면 세부 정보 페이지의 **Delete** 버튼을 사용합니다.161Desktop의 모든 세션에서 Claude에게 요청하여 작업을 나열, 만들, 편집 및 일시 중지할 수도 있습니다. 예를 들어, "내 dependency-audit 작업을 일시 중지해 줘" 또는 "내 예약된 작업을 보여 줘"입니다. 작업을 삭제하려면 세부 정보 페이지의 **Delete** 버튼을 사용합니다.

152 162 

env-vars.md +10 −19

Details

124> * `DISABLE_TELEMETRY`124> * `DISABLE_TELEMETRY`

125> * `DISABLE_ERROR_REPORTING`125> * `DISABLE_ERROR_REPORTING`

126> * `CLAUDE_CODE_TMUX_TRUECOLOR`126> * `CLAUDE_CODE_TMUX_TRUECOLOR`

127> * `FALLBACK_FOR_ALL_PRIMARY_MODELS`

128> * `IS_DEMO`127> * `IS_DEMO`

129>128>

130> 다른 한 변수는 자체 규칙을 따릅니다: `FORCE_HYPERLINK`는 숫자를 읽으므로 `0`만 이를 끕니다. 각 변수의 행에도 해당 변수의 규칙이 명시되어 있습니다.129> 다른 한 변수는 자체 규칙을 따릅니다: `FORCE_HYPERLINK`는 숫자를 읽으므로 `0`만 이를 끕니다. 각 변수의 행에도 해당 변수의 규칙이 명시되어 있습니다.


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

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

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

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

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

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

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


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

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

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

181| `API_TIMEOUT_MS` | 각 API 요청 시도가 응답 헤더를 받아야 하는 시간(밀리초)입니다(기본값: 600000, 즉 10분; 최대: 2147483647). 그 이후 스트리밍 응답이 실행되는 시간은 제한하지 않습니다. 양수 값을 설정하면 [비스트리밍 요청](/docs/ko/errors#streaming-response-ended-before-any-complete-data-was-received)의 각 시도가 이 시간 안에 완료되어야 합니다. 느린 네트워크에서 또는 프록시를 통해 라우팅할 때 요청이 시간 초과되면 이 값을 늘립니다 |180| `API_TIMEOUT_MS` | 각 API 요청 시도가 응답 헤더를 받아야 하는 시간(밀리초)입니다. 그 이후 스트리밍 응답이 실행되는 시간은 제한하지 않습니다. 기본값은 600000(10분)이며 최댓값은 2147483647입니다. 양수 값을 설정하면 [비스트리밍 요청](/docs/ko/errors#streaming-response-ended-before-any-complete-data-was-received)의 각 시도가 그 시간 안에 완료되어야 합니다. 느린 네트워크에서 또는 프록시를 통해 라우팅할 때 요청이 시간 초과되면 이 값을 늘립니다. 이 제한을 없애려면 `0`으로 설정하며, 이를 위해서는 Claude Code v2.1.305 이상이 필요합니다. `0`으로 설정해도 로컬 세션에서 비스트리밍 시도는 300초 후 시간 초과됩니다 |

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

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

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


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

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

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

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

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

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

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

193| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | 서브에이전트의 정체 타임아웃(밀리초)입니다. Claude Code v2.1.286 이상에서는 [워크플로 에이전트](/docs/ko/workflows#when-an-agent-stalls-and-restarts)에도 적용됩니다. 기본값은 `600000`(10분)이며, 스트림 워치독이 켜진 상태에서 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`를 높이면 [느리거나 정체된 API 응답 처리](/docs/ko/agent-sdk/typescript#handle-slow-or-stalled-api-responses)에 설명된 대로 기본값도 함께 높아집니다 |190| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | 서브에이전트의 정체 타임아웃(밀리초)입니다. Claude Code v2.1.286 이상에서는 [워크플로 에이전트](/docs/ko/workflows#when-an-agent-stalls-and-restarts)에도 적용됩니다. 기본값은 `600000`(10분)이며, 스트림 워치독이 켜진 상태에서 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`를 높이면 [느리거나 정체된 API 응답 처리](/docs/ko/agent-sdk/typescript#handle-slow-or-stalled-api-responses)에 설명된 대로 기본값도 함께 높아집니다 |


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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

302| `CLAUDE_CODE_FORCE_TERMINAL_IMAGES` | 터미널이 유니코드 플레이스홀더를 사용하여 kitty 그래픽 프로토콜 이미지를 그리지만 자동으로 감지되지 않을 때 [mod `Image` 요소](/docs/ko/plugins/mods/reference#elements)를 그림으로 그리려면 `1`로 설정합니다. [Claude Code가 감지하는 터미널](/docs/ko/plugins/mods/gallery#image-and-client)과 tmux나 screen 내부에서는 도움이 되지 않는 이유를 참조하세요 |298| `CLAUDE_CODE_FORCE_TERMINAL_IMAGES` | 터미널이 Unicode 플레이스홀더로 kitty graphics protocol 이미지를 그리는데도 `Image`의 흐리게 표시된 `alt` 텍스트가 계속 보이는 경우, `1`로 설정하면 [mod `Image` 요소](/docs/ko/plugins/mods/reference#elements)를 그림으로 그립니다. [`Image`를 그리는 터미널](/docs/ko/plugins/mods/gallery#image-and-client)과 tmux 또는 screen 내부에서 이 변수가 도움이 되지 않는 이유를 참조하세요 |

303| `CLAUDE_CODE_FORK_SUBAGENT` | 기본적으로 켜져 있으며 Claude가 스스로 [포크](/docs/ko/sub-agents#fork-the-current-conversation)를 시작할 수 있게 하는 포크 모드를 제어합니다. 포크 모드가 켜져 있는 동안 Claude는 로컬 머신의 대화형 터미널, VS Code 또는 데스크톱 세션에서 [서브에이전트를 기다릴](/docs/ko/sub-agents#run-subagents-in-foreground-or-background) 수 없습니다. 포크 모드를 끄려면 `0`으로 설정하십시오. 버전은 [포크 모드 끄기](/docs/ko/sub-agents#turn-fork-mode-on-or-off)를 참조하십시오 |299| `CLAUDE_CODE_FORK_SUBAGENT` | 기본적으로 켜져 있으며 Claude가 스스로 [포크](/docs/ko/sub-agents#fork-the-current-conversation)를 시작할 수 있게 하는 포크 모드를 제어합니다. 포크 모드가 켜져 있는 동안 Claude는 로컬 머신의 대화형 터미널, VS Code 또는 데스크톱 세션에서 [서브에이전트를 기다릴](/docs/ko/sub-agents#run-subagents-in-foreground-or-background) 수 없습니다. 포크 모드를 끄려면 `0`으로 설정하십시오. 버전은 [포크 모드 끄기](/docs/ko/sub-agents#turn-fork-mode-on-or-off)를 참조하십시오 |

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

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


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

320| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Claude Code가 모델에 보내는 MCP 도구 설명 및 MCP 서버 지침의 최대 길이(문자 수)입니다. 설정한 값은 두 가지 [기본 제한](/docs/ko/mcp#for-mcp-server-authors), 즉 4096과 Claude가 도구 검색을 통해 로드하는 도구 설명에 대한 16384를 모두 대체합니다. 숫자만으로 된 양의 정수를 허용합니다. 그 밖의 값은 무시되고 기본값이 적용됩니다. Claude Code v2.1.280 이상이 필요합니다 |316| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Claude Code가 모델에 보내는 MCP 도구 설명 및 MCP 서버 지침의 최대 길이(문자 수)입니다. 설정한 값은 두 가지 [기본 제한](/docs/ko/mcp#for-mcp-server-authors), 즉 4096과 Claude가 도구 검색을 통해 로드하는 도구 설명에 대한 16384를 모두 대체합니다. 숫자만으로 된 양의 정수를 허용합니다. 그 밖의 값은 무시되고 기본값이 적용됩니다. Claude Code v2.1.280 이상이 필요합니다 |

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

322| `CLAUDE_CODE_MAX_RETRIES` | 실패한 API 요청의 재시도 횟수를 재정의합니다(기본값: 10). v2.1.186부터 상한은 15입니다. v2.1.199부터 `CLAUDE_CODE_RETRY_WATCHDOG`가 기본값을 늘리고 상한을 제거합니다. 더 긴 장애를 기다려야 하는 무인 세션에는 대신 `CLAUDE_CODE_RETRY_WATCHDOG`를 설정합니다 |318| `CLAUDE_CODE_MAX_RETRIES` | 실패한 API 요청을 재시도하는 횟수를 재정의합니다(기본값: 10). `529` 과부하 오류에서는 재시도가 더 일찍 중단될 수 있습니다. 예를 들어 Opus 모델에서 API 키를 사용하는 경우 세 번째 `529`에서 중단되고 [Repeated 529 Overloaded errors](/docs/ko/errors#api-error-repeated-529-overloaded-errors)를 표시합니다. [대체 모델](/docs/ko/settings-reference#fallbackmodel)을 설정한 경우 Claude Code는 오류를 표시하는 대신 해당 모델로 전환합니다. v2.1.186부터 상한은 15입니다. v2.1.199부터는 `CLAUDE_CODE_RETRY_WATCHDOG`가 기본값을 높이고 상한을 제거합니다. 더 긴 장애 기간 동안 기다려야 하는 무인 세션에는 대신 `CLAUDE_CODE_RETRY_WATCHDOG`를 설정합니다 |

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

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

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

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

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

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

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

330| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | [비대화형](/docs/ko/headless) 세션의 첫 번째 턴이 아직 연결 중인 MCP 서버를 기다리는 시간(밀리초)으로, 기본 [첫 번째 턴 대기](/docs/ko/agent-sdk/mcp#connection-timing)를 대체합니다. 설정하면 대기는 보류 중인 모든 서버를 대상으로 하며, [자체 호스팅 환경](/docs/ko/self-hosted-environments-configuration#connection-timing)에서는 대기 시간만 변경합니다. `0`으로 설정하면 대기를 건너뜁니다. [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags) 서버는 값과 관계없이 자체 `MCP_TIMEOUT` 대기를 유지합니다. Claude Code v2.1.274 이상이 필요합니다 |325| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | [비대화형](/docs/ko/headless) 세션의 첫 번째 턴이 아직 연결 중인 MCP 서버를 기다리는 시간(밀리초)으로, 기본 [첫 턴 대기](/docs/ko/agent-sdk/mcp#connection-timing)를 대체합니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments-configuration#connection-timing)에서는 대기 시간의 길이만 변경합니다. 일부 서버는 값과 관계없이 자체 대기를 유지하며, [연결 타이밍](/docs/ko/agent-sdk/mcp#connection-timing)에 해당 서버가 나열되어 있습니다. `0`으로 설정하면 그 밖의 모든 서버에 대한 대기를 건너뜁니다. Claude Code v2.1.274 이상이 필요합니다 |

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

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

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


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

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

374| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | `CLAUDE_CODE_RETRY_WATCHDOG`가 설정된 경우 각 API 요청이 `429` 및 `529` 오류를 기다리며 보내는 최대 시간(밀리초)입니다. 이 시간이 지나면 다음 해당 오류에서 요청이 종료됩니다. 30분에 해당하는 `1800000`처럼 숫자로만 된 양의 정수를 지정합니다. 설정하지 않으면 대기 시간에 제한이 없습니다. Claude Code v2.1.295 이상이 필요합니다 |369| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | `CLAUDE_CODE_RETRY_WATCHDOG`가 설정된 경우 각 API 요청이 `429` 및 `529` 오류를 기다리며 보내는 최대 시간(밀리초)입니다. 이 시간이 지나면 다음 해당 오류에서 요청이 종료됩니다. 30분에 해당하는 `1800000`처럼 숫자로만 된 양의 정수를 지정합니다. 설정하지 않으면 대기 시간에 제한이 없습니다. Claude Code v2.1.295 이상이 필요합니다 |

370| `CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS` | `CLAUDE_CODE_RETRY_WATCHDOG`이 설정된 상태에서 요청이 [사용 한도](/docs/ko/errors#youve-hit-your-session-limit) 재설정을 기다리는 동안, 한도가 이미 해제되었는지 확인하는 최소 간격(밀리초)입니다. 확인 결과 한도가 해제되었으면 요청이 즉시 전송됩니다. 1분인 `60000`부터 3시간인 `10800000`까지의 정수를 숫자로만 입력합니다. 확인은 사용량 크레딧을 사용하지 않는 동안 claude.ai 구독의 세션 한도 또는 주간 한도에 대해서만 수행되며, `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정된 동안에는 수행되지 않습니다. 이 변수가 설정되지 않았거나 값이 해당 범위를 벗어나면 확인을 수행하지 않습니다. Claude Code v2.1.305 이상이 필요합니다 |

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

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

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


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

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

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

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

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

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

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

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

413| `CLAUDE_CODE_TRANSCRIPT_LOCAL_GC` | 긴 `-p` 또는 Agent SDK 세션의 [트랜스크립트 파일](/docs/ko/sessions#where-transcripts-are-stored)이 커지는 크기를 제한하려면 `1`로 설정합니다. 각 압축 후 파일이 5 MB보다 크면 Claude Code는 해당 압축 이전의 기록을 제거합니다. 세션을 재개하면 파일이 잘렸는지와 관계없이 같은 대화가 복원됩니다. 설정의 `env` 블록으로는 켤 수 없으므로 Claude Code를 시작하는 환경에서 설정합니다. Claude Code v2.1.287 이상이 필요합니다 |408| `CLAUDE_CODE_TRANSCRIPT_LOCAL_GC` | `1`로 설정하면 장시간 실행되는 `-p` 또는 Agent SDK 세션의 [트랜스크립트 파일](/docs/ko/sessions#where-transcripts-are-stored)이 커지는 크기를 제한합니다. 각 압축 후 파일이 5 MB보다 크면 Claude Code는 해당 압축 이전의 기록을 제거합니다. v2.1.296 이상에서는 해당 기록을 제거해도 파일이 10% 미만으로만 줄어드는 경우 파일을 그대로 유지합니다. 세션을 재개하면 파일이 잘렸는지 여부와 관계없이 동일한 대화가 복원됩니다. 설정의 `env` 블록으로는 이 기능을 켤 수 없으므로 Claude Code를 시작하는 환경에서 설정하세요. Claude Code v2.1.287 이상이 필요합니다 |

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

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

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

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

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

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

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

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

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


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

428| `CLAUDE_CODE_YOU_SHOULD_KNOW_DEBUG` | `1`로 설정하면 이 세션에서 [You should know mod](/docs/ko/interactive-mode#you-should-know-suggestions)가 수행한 마지막 세 번의 확인 각각에 대한 줄을 프롬프트 위에 표시합니다. 메모가 나타나지 않을 때 mod가 확인을 수행하고 있는지 확인하는 데 사용합니다. Claude Code v2.1.287 이상이 필요합니다 |422| `CLAUDE_CODE_YOU_SHOULD_KNOW_DEBUG` | `1`로 설정하면 이 세션에서 [You should know mod](/docs/ko/interactive-mode#you-should-know-suggestions)가 수행한 마지막 세 번의 확인 각각에 대한 줄을 프롬프트 위에 표시합니다. 메모가 나타나지 않을 때 mod가 확인을 수행하고 있는지 확인하는 데 사용합니다. Claude Code v2.1.287 이상이 필요합니다 |

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

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

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

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

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


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

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

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

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

469| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | deprecated. 대신 `ENABLE_PROMPT_CACHING_1H`를 사용하세요 |462| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | deprecated. 대신 `ENABLE_PROMPT_CACHING_1H`를 사용하세요 |

470| `ENABLE_TOOL_SEARCH` | [MCP 도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)을 제어합니다. 설정되지 않으면 Claude Code는 기본적으로 모든 MCP 도구를 지연 로드하며, `ANTHROPIC_BASE_URL`이 퍼스트파티가 아닌 호스트를 가리키는 경우에는 대신 미리 로드합니다. `true`는 그러한 호스트에서도 도구를 지연 로드 상태로 유지합니다. `auto`는 도구 정의가 컨텍스트의 10% 이내에 들어갈 때 미리 로드합니다. `auto:N`은 사용자 지정 임계값을 설정합니다(예: 5%의 경우 `auto:5`). `false`는 모든 도구를 미리 로드합니다. 이 값과 관계없이 모든 도구를 미리 로드하는 모델 및 배포에 대해서는 [도구 검색 구성](/docs/ko/mcp#configure-tool-search)을 참조하십시오 |463| `ENABLE_TOOL_SEARCH` | [MCP 도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)을 제어합니다. 설정하지 않거나 `true`이면 [도구 검색을 끈 상태로 유지하는 경우](/docs/ko/mcp#configure-tool-search)를 제외하고 MCP 도구를 지연 로드합니다. `auto`는 정의가 컨텍스트 윈도우의 10%에 도달하면 도구 검색을 켭니다. `auto:N`은 `auto:5`(5%)와 같이 사용자 지정 임계값을 설정합니다. `false`는 모든 도구를 미리 로드합니다. 게이트웨이가 도구 검색을 거부하는 경우 [LLM 게이트웨이를 통한 도구 검색](/docs/ko/mcp#tool-search-through-a-gateway)을 참조하십시오 |

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

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

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

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


572 564 

573가져오기가 꺼져 있으면 다음 작업을 할 수 없습니다.565가져오기가 꺼져 있으면 다음 작업을 할 수 없습니다.

574 566 

575* [`/auto-mode-setup`](/docs/ko/auto-mode-config#generate-environment-entries)을 실행하여 `autoMode.environment` 항목 초안 작성

576* `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 또는 `DISABLE_GROWTHBOOK`이 설정된 상태에서 [Remote Control](/docs/ko/remote-control) 사용. `DISABLE_TELEMETRY` 및 `DO_NOT_TRACK`에 대해서는 [Remote Control 요구 사항](/docs/ko/remote-control#requirements)을 참조하십시오567* `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 또는 `DISABLE_GROWTHBOOK`이 설정된 상태에서 [Remote Control](/docs/ko/remote-control) 사용. `DISABLE_TELEMETRY` 및 `DO_NOT_TRACK`에 대해서는 [Remote Control 요구 사항](/docs/ko/remote-control#requirements)을 참조하십시오

577* [Remote Control](/docs/ko/remote-control#requirements)을 사용할 수 없을 때 [이 머신 외부의 세션에 메시지 보내기](/docs/ko/cross-session-messaging#message-sessions-on-other-machines). 이 머신의 세션 간 메시지 전송은 가져오기가 꺼져 있어도 작동합니다568* [Remote Control](/docs/ko/remote-control#requirements)을 사용할 수 없을 때 [이 머신 외부의 세션에 메시지 보내기](/docs/ko/cross-session-messaging#message-sessions-on-other-machines). 이 머신의 세션 간 메시지 전송은 가져오기가 꺼져 있어도 작동합니다

578* [`claude import` 또는 `/import` 명령](/docs/ko/cli-reference#cli-commands) 실행569* [`claude import` 또는 `/import` 명령](/docs/ko/cli-reference#cli-commands) 실행

errors.md +564 −317

Details

83| `Your account does not have access to Claude. Please login again or contact your administrator.` | [인증](#oauth-token-revoked-or-expired) |83| `Your account does not have access to Claude. Please login again or contact your administrator.` | [인증](#oauth-token-revoked-or-expired) |

84| `API Error: 401 Invalid authentication credentials` | [인증](#api-error-401-invalid-authentication-credentials) |84| `API Error: 401 Invalid authentication credentials` | [인증](#api-error-401-invalid-authentication-credentials) |

85| `Login expired · Please run /login` | [인증](#login-expired) |85| `Login expired · Please run /login` | [인증](#login-expired) |

86| `The browser can't return the sign-in to Claude Code automatically` | [인증](#couldnt-start-the-local-sign-in-listener) |

87| `Couldn't start the local listener that receives the browser sign-in. Try again.` | [인증](#couldnt-start-the-local-sign-in-listener) |

86| `Failed to start OAuth callback server` | [인증](#failed-to-start-oauth-callback-server) |88| `Failed to start OAuth callback server` | [인증](#failed-to-start-oauth-callback-server) |

87| `Claude login not accepted · Run /login, then try again` | [인증](#claude-login-not-accepted) |89| `Claude login not accepted · Run /login, then try again` | [인증](#claude-login-not-accepted) |

88| `Artifacts need a claude.ai login` | [인증](#artifacts-need-a-claude-ai-login) |90| `Artifacts need a claude.ai login` | [인증](#artifacts-need-a-claude-ai-login) |


100| `claude.ai rejected the session token` / `session token rejected` | [인증](#claude-ai-rejected-the-session-token) |102| `claude.ai rejected the session token` / `session token rejected` | [인증](#claude-ai-rejected-the-session-token) |

101| `MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)` | [인증](#mcp-server-needs-you-to-sign-in-again) |103| `MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)` | [인증](#mcp-server-needs-you-to-sign-in-again) |

102| `rejected the credential from its headersHelper` / `rejected the Authorization header in its config` | [인증](#mcp-server-needs-you-to-sign-in-again) |104| `rejected the credential from its headersHelper` / `rejected the Authorization header in its config` | [인증](#mcp-server-needs-you-to-sign-in-again) |

105| `(check the helper, then start a new task or chat)` / `(update it, then start a new task or chat)` | [인증](#mcp-credential-rejected-in-cowork) |

103| `MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate` | [인증](#mcp-server-needs-you-to-sign-in-again) |106| `MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate` | [인증](#mcp-server-needs-you-to-sign-in-again) |

104| `MCP server "<name>" requires re-authorization (token expired)` | [인증](#mcp-server-needs-you-to-sign-in-again) |107| `MCP server "<name>" requires re-authorization (token expired)` | [인증](#mcp-server-needs-you-to-sign-in-again) |

105| `This server's URL is missing or not a valid URL, so sign-in can't start` | [인증](#mcp-server-url-is-missing-or-not-a-valid-url) |108| `This server's URL is missing or not a valid URL, so sign-in can't start` | [인증](#mcp-server-url-is-missing-or-not-a-valid-url) |


200| `Installation was killed before it could finish (exit code 137)` | [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install#installation-was-killed-before-it-could-finish) |203| `Installation was killed before it could finish (exit code 137)` | [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install#installation-was-killed-before-it-could-finish) |

201| `The connection dropped while downloading the update` | [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |204| `The connection dropped while downloading the update` | [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

202| `Download timed out: exceeded the total deadline` | [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |205| `Download timed out: exceeded the total deadline` | [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

206| `Release verification failed for Claude Code <version> (<reason>). The update was not installed.` | [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install#release-verification-failed) |

207| `Auto-update failed · Run claude doctor` | [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install#auto-update-failed) |

203| `--bg and --print conflict` | [명령줄 오류](#conflict-between-bg-and-print) |208| `--bg and --print conflict` | [명령줄 오류](#conflict-between-bg-and-print) |

204| `Couldn't tell whether --bg is a flag or text here, so nothing was started` | [명령줄 오류](#couldnt-tell-whether-bg-is-a-flag-or-text) |209| `Couldn't tell whether --bg is a flag or text here, so nothing was started` | [명령줄 오류](#couldnt-tell-whether-bg-is-a-flag-or-text) |

205| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [명령줄 오류](#conflict-between-a-system-prompt-flag-and-its-file-form) |210| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [명령줄 오류](#conflict-between-a-system-prompt-flag-and-its-file-form) |


270| `Custom output styles can't be selected over Remote Control or from a relayed message` | [명령줄 오류](#custom-output-styles-cant-be-selected-over-remote-control) |275| `Custom output styles can't be selected over Remote Control or from a relayed message` | [명령줄 오류](#custom-output-styles-cant-be-selected-over-remote-control) |

271| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [명령줄 오류](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |276| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [명령줄 오류](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |

272| `/recap only runs when you ask for it yourself in this session` | [명령줄 오류](#recap-only-runs-when-you-ask-for-it-yourself) |277| `/recap only runs when you ask for it yourself in this session` | [명령줄 오류](#recap-only-runs-when-you-ask-for-it-yourself) |

278| `/feedback is disabled by your organization's policy`, 또는 `/bug`나 `/share`에 대한 동일한 메시지 | [명령줄 오류](#feedback-is-disabled-by-your-organizations-policy) |

273| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [플러그인 오류](#plugin-eval-is-currently-in-early-access) |279| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [플러그인 오류](#plugin-eval-is-currently-in-early-access) |

274| `cannot be evaluated where sessions load it` | [eval로 플러그인 테스트](/docs/ko/plugin-evals#cannot-be-evaluated-where-sessions-load-it) |280| `cannot be evaluated where sessions load it` | [eval로 플러그인 테스트](/docs/ko/plugin-evals#cannot-be-evaluated-where-sessions-load-it) |

275| `Marketplace "<name>" is registered from an untrusted source` | [플러그인 오류](#marketplace-is-registered-from-an-untrusted-source) |281| `Marketplace "<name>" is registered from an untrusted source` | [플러그인 오류](#marketplace-is-registered-from-an-untrusted-source) |


289| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [플러그인 문제 해결](/docs/ko/plugins/troubleshooting#the-packages-it-lists-are-not-installed) |295| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [플러그인 문제 해결](/docs/ko/plugins/troubleshooting#the-packages-it-lists-are-not-installed) |

290| `does not load (...), so Claude Code ignores the whole file` | [플러그인 문제 해결](/docs/ko/plugins/troubleshooting#does-not-load-so-claude-code-ignores-the-whole-file) |296| `does not load (...), so Claude Code ignores the whole file` | [플러그인 문제 해결](/docs/ko/plugins/troubleshooting#does-not-load-so-claude-code-ignores-the-whole-file) |

291| `path escapes plugin directory` | [플러그인 오류](#path-escapes-plugin-directory) |297| `path escapes plugin directory` | [플러그인 오류](#path-escapes-plugin-directory) |

298| `Plugin not loaded: its manifest <path> was not read` | [플러그인 오류](#plugin-not-loaded-its-manifest-was-not-read) |

292| `path could not be checked` | [플러그인 오류](#path-could-not-be-checked) |299| `path could not be checked` | [플러그인 오류](#path-could-not-be-checked) |

293| `its marketplace entry path does not stay inside the marketplace directory` | [플러그인 오류](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |300| `its marketplace entry path does not stay inside the marketplace directory` | [플러그인 오류](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |

294| `Plugin source path refused` | [플러그인 오류](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |301| `Plugin source path refused` | [플러그인 오류](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |


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

305| `cannot contain null bytes (\0)` | [도구 오류](#path-cannot-contain-null-bytes) |312| `cannot contain null bytes (\0)` | [도구 오류](#path-cannot-contain-null-bytes) |

306| `Path contains null bytes` | [도구 오류](#path-cannot-contain-null-bytes) |313| `Path contains null bytes` | [도구 오류](#path-cannot-contain-null-bytes) |

314| `File is too large to read as an image (the limit is 128MB)` | [도구 오류](#file-is-too-large-to-read-as-an-image) |

315| `Cannot read this as an image: <path> is a pipe or a device` | [도구 오류](#file-is-too-large-to-read-as-an-image) |

307| `subagent_type is required: the general-purpose agent is not available in this session` | [도구 오류](#subagent-type-is-required) |316| `subagent_type is required: the general-purpose agent is not available in this session` | [도구 오류](#subagent-type-is-required) |

308| `Error: this write left the memory index at MEMORY.md at ..., over its ... read limit` | [도구 오류](#memory-index-is-over-its-read-limit) |317| `Error: this write left the memory index at MEMORY.md at ..., over its ... read limit` | [도구 오류](#memory-index-is-over-its-read-limit) |

309| `pkill: refusing to run` | [도구 오류](#pkill-pattern-matches-the-claude-code-process) |318| `pkill: refusing to run` | [도구 오류](#pkill-pattern-matches-the-claude-code-process) |

310| `Failed to write to <name>'s inbox — nothing was sent` | [도구 오류](#failed-to-write-to-a-teammate-inbox) |319| `Failed to write to <name>'s inbox — nothing was sent` | [도구 오류](#failed-to-write-to-a-teammate-inbox) |

311| `Failed to write the plan approval request to the lead's inbox — plan not submitted` | [도구 오류](#failed-to-write-to-a-teammate-inbox) |320| `Failed to write the plan approval request to the lead's inbox — plan not submitted` | [도구 오류](#failed-to-write-to-a-teammate-inbox) |

312| `Its agent definition was not restored: the folder its definition file came from is not trusted` | [도구 오류](#teammate-agent-definition-not-restored) |321| `Its agent definition was not restored: the folder its definition file came from is not trusted` | [도구 오류](#teammate-agent-definition-not-restored) |

322| `Only a teammate can approve a shutdown request` | [도구 오류](#only-a-teammate-can-approve-a-shutdown-request) |

313| `Message too large for cross-session delivery` | [도구 오류](#message-too-large-for-cross-session-delivery) |323| `Message too large for cross-session delivery` | [도구 오류](#message-too-large-for-cross-session-delivery) |

314| `Too many messages to this session just now` | [도구 오류](#too-many-messages-to-this-session-just-now) |324| `Too many messages to this session just now` | [도구 오류](#too-many-messages-to-this-session-just-now) |

315| `Cross-session message was dropped at the recipient session's inbox` | [도구 오류](#cross-session-message-dropped-at-the-inbox) |325| `Cross-session message was dropped at the recipient session's inbox` | [도구 오류](#cross-session-message-dropped-at-the-inbox) |


325| `Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT)` | [도구 오류](#disk-quota-or-temp-filesystem-is-full) |335| `Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT)` | [도구 오류](#disk-quota-or-temp-filesystem-is-full) |

326| `The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC)` | [도구 오류](#disk-quota-or-temp-filesystem-is-full) |336| `The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC)` | [도구 오류](#disk-quota-or-temp-filesystem-is-full) |

327| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [도구 오류](#disk-quota-or-temp-filesystem-is-full) |337| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [도구 오류](#disk-quota-or-temp-filesystem-is-full) |

338| `The command was not started: this computer's disk is full (ENOSPC)` / `(EDQUOT)` | [도구 오류](#disk-quota-or-temp-filesystem-is-full) |

328| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [도구 오류](#file-is-not-valid-utf-8) |339| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [도구 오류](#file-is-not-valid-utf-8) |

329| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [도구 오류](#the-source-file-is-not-valid-utf-8-text) |340| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [도구 오류](#the-source-file-is-not-valid-utf-8-text) |

330| `the source file has the replacement character U+FFFD` | [도구 오류](#the-source-file-is-not-valid-utf-8-text) |341| `the source file has the replacement character U+FFFD` | [도구 오류](#the-source-file-is-not-valid-utf-8-text) |

331| `Not published: that file is on a network share` | [도구 오류](#not-published-that-file-is-on-a-network-share) |342| `Not published: that file is on a network share` | [도구 오류](#not-published-that-file-is-on-a-network-share) |

343| `Not published: Claude sent the same content again after a newer version of the artifact turned it away` / `Not published: Claude sent its changes again over the same file after a newer version of the artifact turned them away` | [도구 오류](#not-published-a-newer-version-of-the-artifact-turned-it-away) |

332| `Reading a local file from outside this session's connected folders, or through a link, needs the approval card` | [도구 오류](#reading-a-local-file-from-outside-the-connected-folders) |344| `Reading a local file from outside this session's connected folders, or through a link, needs the approval card` | [도구 오류](#reading-a-local-file-from-outside-the-connected-folders) |

333| `cannot read file_path (...) — the file could not be examined, and no one can answer the approval card` | [도구 오류](#reading-a-local-file-from-outside-the-connected-folders) |345| `cannot read file_path (...) — the file could not be examined, and no one can answer the approval card` | [도구 오류](#reading-a-local-file-from-outside-the-connected-folders) |

334| `WebFetch cannot fetch localhost or other hostnames without a dot` | [도구 오류](#webfetch-cannot-fetch-localhost) |346| `WebFetch cannot fetch localhost or other hostnames without a dot` | [도구 오류](#webfetch-cannot-fetch-localhost) |


345| `Can't open — this session is running in another terminal` | [백그라운드 세션 오류](#this-session-is-running-in-another-terminal) |357| `Can't open — this session is running in another terminal` | [백그라운드 세션 오류](#this-session-is-running-in-another-terminal) |

346| `This conversation is already open in another running Claude session` | [백그라운드 세션 오류](#this-session-is-running-in-another-terminal) |358| `This conversation is already open in another running Claude session` | [백그라운드 세션 오류](#this-session-is-running-in-another-terminal) |

347| `This session's saved conversation is no longer on disk` | [백그라운드 세션 오류](#this-sessions-saved-conversation-is-no-longer-on-disk) |359| `This session's saved conversation is no longer on disk` | [백그라운드 세션 오류](#this-sessions-saved-conversation-is-no-longer-on-disk) |

348| `Bypass permissions was requested at launch and ignored` | [bypassPermissions 모드로 모든 검사 건너뛰기](/docs/ko/permission-modes#bypass-permissions-acceptance) |360| `Bypass permissions was requested at launch and ignored` | [백그라운드 세션에서 권한 우회가 무시됨](/docs/ko/permission-modes#bypass-permissions-ignored-in-a-background-session) |

349| `kept <id> — its worktree is still at <path>` | [백그라운드 세션 오류](#worktree-has-commits-that-are-not-pushed-anywhere) |361| `kept <id> — its worktree is still at <path>` | [백그라운드 세션 오류](#worktree-has-commits-that-are-not-pushed-anywhere) |

350| `kept <id> — <n> unpushed commits on <branch>` | [백그라운드 세션 오류](#worktree-has-commits-that-are-not-pushed-anywhere) |362| `kept <id> — <n> unpushed commits on <branch>` | [백그라운드 세션 오류](#worktree-has-commits-that-are-not-pushed-anywhere) |

351| `kept <id> — worktree has commits that are not pushed anywhere` | [백그라운드 세션 오류](#worktree-has-commits-that-are-not-pushed-anywhere) |363| `kept <id> — worktree has commits that are not pushed anywhere` | [백그라운드 세션 오류](#worktree-has-commits-that-are-not-pushed-anywhere) |


354| `Session <id> was stopped while the respawn was in flight` | [백그라운드 세션 오류](#session-was-stopped-while-the-respawn-was-in-flight) |366| `Session <id> was stopped while the respawn was in flight` | [백그라운드 세션 오류](#session-was-stopped-while-the-respawn-was-in-flight) |

355| `This session was running agent '<name>', which is no longer available` | [백그라운드 세션 오류](#session-agent-no-longer-available) |367| `This session was running agent '<name>', which is no longer available` | [백그라운드 세션 오류](#session-agent-no-longer-available) |

356| `This session restarted <time> after its next /loop wakeup was due, so that wakeup will not fire` | [백그라운드 세션 오류](#restarted-after-its-next-loop-wakeup-was-due) |368| `This session restarted <time> after its next /loop wakeup was due, so that wakeup will not fire` | [백그라운드 세션 오류](#restarted-after-its-next-loop-wakeup-was-due) |

369| `No LLM gateway: a gateway set in your shell isn't passed to a session opened from another folder` | [백그라운드 세션 오류](#no-llm-gateway-opened-from-another-folder) |

370| `No LLM gateway: opened from another folder · respawn from <folder>` | [백그라운드 세션 오류](#no-llm-gateway-opened-from-another-folder) |

357| `CLAUDE_CODE_PROCESS_WRAPPER: launcher ...` | [백그라운드 세션 오류](#claude_code_process_wrapper-launcher-errors) |371| `CLAUDE_CODE_PROCESS_WRAPPER: launcher ...` | [백그라운드 세션 오류](#claude_code_process_wrapper-launcher-errors) |

358| `EUNKNOWN: unknown error, uv_spawn` | [백그라운드 세션 오류](#eunknown-when-starting-a-background-session) |372| `EUNKNOWN: unknown error, uv_spawn` | [백그라운드 세션 오류](#eunknown-when-starting-a-background-session) |

359| `EACCES: permission denied, posix_spawn` | [백그라운드 세션 오류](#eacces-when-starting-a-background-session) |373| `EACCES: permission denied, posix_spawn` | [백그라운드 세션 오류](#eacces-when-starting-a-background-session) |


394| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [구성 경고](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |408| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [구성 경고](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |

395| `headersHelper not run — this workspace has no persisted trust` | [구성 경고](#headershelper-not-run) |409| `headersHelper not run — this workspace has no persisted trust` | [구성 경고](#headershelper-not-run) |

396| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [구성 경고](#malformed-tool-content-rule) |410| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [구성 경고](#malformed-tool-content-rule) |

411| `matches no tool · check for typos` / `matches no known tool — check for typos` | [구성 경고](#matches-no-tool) |

397| `... is not matched by file permission checks` | [구성 경고](#is-not-matched-by-file-permission-checks) |412| `... is not matched by file permission checks` | [구성 경고](#is-not-matched-by-file-permission-checks) |

413| `Write(<path>) never matches · use Edit(<path>)` / `Glob(<path>) never matches · use Read(<path>)` | [구성 경고](#is-not-matched-by-file-permission-checks) |

398| `... has a wildcard before the rest of the command` | [구성 경고](#has-a-wildcard-before-the-rest-of-the-command) |414| `... has a wildcard before the rest of the command` | [구성 경고](#has-a-wildcard-before-the-rest-of-the-command) |

415| `allows any option at its * · use an exact value` | [구성 경고](#has-a-wildcard-before-the-rest-of-the-command) |

399| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [구성 경고](#denying-bash-also-turns-off-the-powershell-tool) |416| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [구성 경고](#denying-bash-also-turns-off-the-powershell-tool) |

400| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [구성 경고](#the-200k-limit-isnt-enforced) |417| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [구성 경고](#the-200k-limit-isnt-enforced) |

418| `CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" reads as <N> tokens, so Claude Code treats it as the 100k minimum` | [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`의 값 및 경고](/docs/ko/model-config#claude_code_auto_compact_window-values) |

419| `CLAUDE_CODE_AUTO_COMPACT_WINDOW="<value>" is too large, so Claude Code treats it as the 1M maximum` | [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`의 값 및 경고](/docs/ko/model-config#claude_code_auto_compact_window-values) |

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

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

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

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


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

463| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/ko/env-vars) | 설정 안 됨 | CI 작업과 같은 무인 세션에서 `1`로 설정하면 `CLAUDE_CODE_MAX_RETRIES`회 시도 후 실패하는 대신 `429` 및 `529` 용량 오류를 무기한 재시도합니다. 표준 속도 요청이 지출 한도나 소진된 사용량 크레딧을 보고하는 `429`를 받으면, 일정에 따라 재설정되는 [게이트웨이 지출 한도](#spend-limit-reached)에서 온 것이라도 Claude Code는 즉시 실패합니다. v2.1.239 이전에는 워치독이 이를 무기한 재시도했습니다. 빠른 모드 요청에 대해서는 [속도 제한 처리](/docs/ko/fast-mode#handle-rate-limits)를 참조하세요. v2.1.199 이상에서는 서버 오류, 시간 초과, 끊어진 연결 등 다른 일시적인 오류의 기본 재시도 횟수도 약 3시간의 백오프에 해당하는 300으로 높이고, `CLAUDE_CODE_MAX_RETRIES`를 명시적으로 설정한 경우 15의 상한을 제거합니다. |483| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/ko/env-vars) | 설정 안 됨 | CI 작업과 같은 무인 세션에서 `1`로 설정하면 `CLAUDE_CODE_MAX_RETRIES`회 시도 후 실패하는 대신 `429` 및 `529` 용량 오류를 무기한 재시도합니다. 표준 속도 요청이 지출 한도나 소진된 사용량 크레딧을 보고하는 `429`를 받으면, 일정에 따라 재설정되는 [게이트웨이 지출 한도](#spend-limit-reached)에서 온 것이라도 Claude Code는 즉시 실패합니다. v2.1.239 이전에는 워치독이 이를 무기한 재시도했습니다. 빠른 모드 요청에 대해서는 [속도 제한 처리](/docs/ko/fast-mode#handle-rate-limits)를 참조하세요. v2.1.199 이상에서는 서버 오류, 시간 초과, 끊어진 연결 등 다른 일시적인 오류의 기본 재시도 횟수도 약 3시간의 백오프에 해당하는 300으로 높이고, `CLAUDE_CODE_MAX_RETRIES`를 명시적으로 설정한 경우 15의 상한을 제거합니다. |

464| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](/docs/ko/env-vars) | 설정 안 됨 | `CLAUDE_CODE_RETRY_WATCHDOG`이 설정된 경우 각 API 요청이 `429` 및 `529` 오류가 해소되기를 기다리는 최대 시간(밀리초)입니다. 설정하지 않으면 대기 시간에 제한이 없습니다. Claude Code v2.1.295 이상이 필요합니다. |484| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](/docs/ko/env-vars) | 설정 안 됨 | `CLAUDE_CODE_RETRY_WATCHDOG`이 설정된 경우 각 API 요청이 `429` 및 `529` 오류가 해소되기를 기다리는 최대 시간(밀리초)입니다. 설정하지 않으면 대기 시간에 제한이 없습니다. Claude Code v2.1.295 이상이 필요합니다. |

485| [`CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS`](/docs/ko/env-vars) | 설정 안 됨 | `CLAUDE_CODE_RETRY_WATCHDOG`이 설정된 상태에서 요청이 [사용 한도](#youve-hit-your-session-limit)가 재설정되기를 기다리는 동안, 해당 한도가 이미 해제되었는지 확인하는 검사 사이의 최소 간격(밀리초)입니다. 검사에서 한도가 해제된 것으로 확인되면 요청이 즉시 전송됩니다. `60000`에서 `10800000` 사이의 숫자만 입력하세요. 설정하지 않거나 해당 범위를 벗어나면 검사를 수행하지 않습니다. Claude Code가 이러한 검사를 건너뛰는 경우는 [환경 변수 참조](/docs/ko/env-vars)를 참조하세요. Claude Code v2.1.305 이상이 필요합니다. |

465| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/ko/env-vars) | 500 | API가 `529` 과부하 오류로 거부한 요청의 재시도 간 백오프 시작 지연 시간(밀리초)입니다. API가 용량 한계에 도달했을 때 재시도를 더 긴 기간에 걸쳐 분산하려면 최대 32000까지 값을 높이세요. `CLAUDE_CODE_RETRY_WATCHDOG`이 `1`로 설정되어 있거나 거부된 요청이 [빠른 모드](/docs/ko/fast-mode#handle-rate-limits)로 전송된 경우에는 효과가 없습니다. Claude Code v2.1.292 이상이 필요합니다. |486| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/ko/env-vars) | 500 | API가 `529` 과부하 오류로 거부한 요청의 재시도 간 백오프 시작 지연 시간(밀리초)입니다. API가 용량 한계에 도달했을 때 재시도를 더 긴 기간에 걸쳐 분산하려면 최대 32000까지 값을 높이세요. `CLAUDE_CODE_RETRY_WATCHDOG`이 `1`로 설정되어 있거나 거부된 요청이 [빠른 모드](/docs/ko/fast-mode#handle-rate-limits)로 전송된 경우에는 효과가 없습니다. Claude Code v2.1.292 이상이 필요합니다. |

466| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](/docs/ko/env-vars) | 32000 | API가 `529` 과부하 오류로 거부한 요청의 재시도 간 백오프 상한(밀리초)입니다. API가 용량 한계에 도달했을 때 이후 재시도 간격이 계속 벌어지도록 하려면 최대 64000까지 값을 높이세요. `CLAUDE_CODE_RETRY_WATCHDOG`이 `1`로 설정되어 있거나 거부된 요청이 [빠른 모드](/docs/ko/fast-mode#handle-rate-limits)로 전송된 경우에는 효과가 없습니다. Claude Code v2.1.296 이상이 필요합니다. |487| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](/docs/ko/env-vars) | 32000 | API가 `529` 과부하 오류로 거부한 요청의 재시도 간 백오프 상한(밀리초)입니다. API가 용량 한계에 도달했을 때 이후 재시도 간격이 계속 벌어지도록 하려면 최대 64000까지 값을 높이세요. `CLAUDE_CODE_RETRY_WATCHDOG`이 `1`로 설정되어 있거나 거부된 요청이 [빠른 모드](/docs/ko/fast-mode#handle-rate-limits)로 전송된 경우에는 효과가 없습니다. Claude Code v2.1.296 이상이 필요합니다. |

467| [`API_TIMEOUT_MS`](/docs/ko/env-vars) | 600000 | 각 요청 시도가 응답 헤더를 받기까지 주어지는 시간(밀리초)입니다. 그 이후 스트리밍 응답이 진행되는 시간은 제한하지 않습니다. 느린 네트워크나 프록시의 경우 값을 높이세요. 이 값이 첫 바이트 기한의 상한으로 사용되는 방식은 [No response from API](#no-response-from-api)를 참조하세요. |488| [`API_TIMEOUT_MS`](/docs/ko/env-vars) | 600000 | 각 요청 시도가 응답 헤더를 받기까지 주어지는 시간(밀리초)입니다. 그 이후 스트리밍 응답이 진행되는 시간은 제한하지 않습니다. 느린 네트워크나 프록시의 경우 값을 높이세요. 이 값이 첫 바이트 기한의 상한으로 사용되는 방식은 [No response from API](#no-response-from-api)를 참조하세요. |


490 511 

491* [status.claude.com](https://status.claude.com) 또는 메시지에 명시된 제공자 상태 페이지에서 활성 인시던트를 확인합니다512* [status.claude.com](https://status.claude.com) 또는 메시지에 명시된 제공자 상태 페이지에서 활성 인시던트를 확인합니다

492* 1분 기다린 후 메시지를 다시 보냅니다. 원본 메시지는 여전히 대화에 있으므로 긴 프롬프트의 경우 전체를 다시 붙여넣는 대신 `try again`을 입력할 수 있습니다.513* 1분 기다린 후 메시지를 다시 보냅니다. 원본 메시지는 여전히 대화에 있으므로 긴 프롬프트의 경우 전체를 다시 붙여넣는 대신 `try again`을 입력할 수 있습니다.

514* [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)이 [LLM 게이트웨이](/docs/ko/llm-gateway)를 가리키고 모든 요청이 이런 방식으로 실패하면 게이트웨이가 Claude Code가 기본적으로 보내는 도구 검색 필드를 거부하는지 확인합니다. 확인하려면 [LLM 게이트웨이를 통한 도구 검색](/docs/ko/mcp#tool-search-through-a-gateway)에 설명된 대로 `ENABLE_TOOL_SEARCH=false`를 설정한 후 다시 시도합니다. v2.1.304 이전에는 `ENABLE_TOOL_SEARCH`로 켜지 않는 한 게이트웨이 뒤에서 도구 검색이 꺼져 있었습니다.

493* 오류가 게시된 인시던트 없이 계속되면 `/feedback`을 실행하여 Anthropic이 요청 세부 정보로 조사할 수 있도록 합니다. 환경에서 `/feedback`을 사용할 수 없는 경우 [오류 보고](#report-an-error)를 참조하세요.515* 오류가 게시된 인시던트 없이 계속되면 `/feedback`을 실행하여 Anthropic이 요청 세부 정보로 조사할 수 있도록 합니다. 환경에서 `/feedback`을 사용할 수 없는 경우 [오류 보고](#report-an-error)를 참조하세요.

494 516 

495### API 오류: 반복된 529 오버로드 오류517### API 오류: 반복된 529 오버로드 오류


520Request timed out542Request timed out

521```543```

522 544 

523기본 요청 타임아웃은 10분입니다.545기본 요청 타임아웃은 10분입니다. [`API_TIMEOUT_MS`](/docs/ko/env-vars)를 `0`으로 설정하면 이 요청 타임아웃이 꺼집니다. [첫 바이트 마감 시간](#no-response-from-api)과 본문 유휴 타임아웃은 `0`으로 설정해도 꺼지지 않으므로, 스트리밍 요청은 여전히 [연결에 적용되는 타임아웃](/docs/ko/network-config#streaming-idle-watchdogs)에 따라 실행됩니다. 비스트리밍 시도는 로컬 세션에서 300초 제한을 유지하므로 여전히 이 메시지로 끝날 수 있습니다.

524 546 

525**수행할 작업:**547**수행할 작업:**

526 548 

549* 모든 요청이 이 메시지로 실패하고 `API_TIMEOUT_MS`를 `0`으로 설정한 경우 `claude --version`을 확인합니다. v2.1.305 이전 버전이면 Claude Code를 업데이트하거나 양수 값을 설정합니다.

527* 요청을 다시 시도합니다550* 요청을 다시 시도합니다

528* 느린 네트워크 또는 프록시가 원인인 경우 [자동 재시도](#automatic-retries)에 설명된 대로 `API_TIMEOUT_MS`를 높입니다551* 느린 네트워크 또는 프록시가 원인인 경우 [자동 재시도](#automatic-retries)에 설명된 대로 `API_TIMEOUT_MS`를 높입니다

529* 시간 초과가 빈번하고 네트워크가 정상인 경우 아래의 [네트워크 및 연결 오류](#network-and-connection-errors)를 참조하세요552* 시간 초과가 빈번하고 네트워크가 정상인 경우 아래의 [네트워크 및 연결 오류](#network-and-connection-errors)를 참조하세요


541* **첫 시도**: 1 이상으로 설정할 때 [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/ko/env-vars), 10초에서 30분 사이로 제한됩니다. 그렇지 않으면 Claude Code는 [스트리밍 유휴 감시자](/docs/ko/network-config#streaming-idle-watchdogs)에 나열된 바이트 수준 감시자 타임아웃을 사용하므로 해당 타임아웃을 변경하는 변수가 이 대기도 변경합니다. 어느 쪽이든 Claude Code는 요청 본문의 32KB마다 1초를 추가합니다.564* **첫 시도**: 1 이상으로 설정할 때 [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/ko/env-vars), 10초에서 30분 사이로 제한됩니다. 그렇지 않으면 Claude Code는 [스트리밍 유휴 감시자](/docs/ko/network-config#streaming-idle-watchdogs)에 나열된 바이트 수준 감시자 타임아웃을 사용하므로 해당 타임아웃을 변경하는 변수가 이 대기도 변경합니다. 어느 쪽이든 Claude Code는 요청 본문의 32KB마다 1초를 추가합니다.

542* **재시도**: `API_TIMEOUT_MS`보다 1초 적게, 기본값으로 거의 10분이므로 재시도가 응답을 생성이 완료될 때까지 보유하는 프록시 또는 게이트웨이를 초과할 수 있습니다. Amazon Bedrock에서 재시도는 첫 시도와 동일한 마감 시간을 사용하며 메시지는 두 가지 대신 하나의 기간을 표시합니다.565* **재시도**: `API_TIMEOUT_MS`보다 1초 적게, 기본값으로 거의 10분이므로 재시도가 응답을 생성이 완료될 때까지 보유하는 프록시 또는 게이트웨이를 초과할 수 있습니다. Amazon Bedrock에서 재시도는 첫 시도와 동일한 마감 시간을 사용하며 메시지는 두 가지 대신 하나의 기간을 표시합니다.

543 566 

567 Amazon Bedrock을 제외하고, `API_TIMEOUT_MS`를 `0`으로 설정하면 재시도는 10분에 32KB당 1초를 더한 시간 동안 대기하며, 첫 시도의 대기가 더 길면 첫 시도만큼 대기합니다.

568 

544어느 대기도 양수 `API_TIMEOUT_MS`보다 1초 적은 값을 초과하지 않으며, 11초 미만의 양수 `API_TIMEOUT_MS`는 마감 시간을 끕니다. 바이트 수준 감시자는 응답 헤더가 도착한 후에만 시작되므로 그 후 바이트 전송을 중지하는 응답은 이 마감 시간 대신 [정지된 스트림 규칙](#automatic-retries)을 따릅니다.569어느 대기도 양수 `API_TIMEOUT_MS`보다 1초 적은 값을 초과하지 않으며, 11초 미만의 양수 `API_TIMEOUT_MS`는 마감 시간을 끕니다. 바이트 수준 감시자는 응답 헤더가 도착한 후에만 시작되므로 그 후 바이트 전송을 중지하는 응답은 이 마감 시간 대신 [정지된 스트림 규칙](#automatic-retries)을 따릅니다.

545 570 

546**수행할 작업:**571**수행할 작업:**


845* `/status`를 실행하여 활성 자격 증명이 예상한 것인지 확인합니다. 환경에 남아 있는 `ANTHROPIC_API_KEY`로 인해 요청이 구독 대신 낮은 티어의 키를 통해 라우팅될 수 있습니다.870* `/status`를 실행하여 활성 자격 증명이 예상한 것인지 확인합니다. 환경에 남아 있는 `ANTHROPIC_API_KEY`로 인해 요청이 구독 대신 낮은 티어의 키를 통해 라우팅될 수 있습니다.

846* 제공업체 콘솔에서 활성 한도를 확인하고 필요한 경우 더 높은 티어를 요청합니다871* 제공업체 콘솔에서 활성 한도를 확인하고 필요한 경우 더 높은 티어를 요청합니다

847* Anthropic API 키의 경우 티어의 작동 방식과 워크스페이스별 상한을 설정하는 방법은 [속도 제한 참조](https://platform.claude.com/docs/en/api/rate-limits)를 확인하세요872* Anthropic API 키의 경우 티어의 작동 방식과 워크스페이스별 상한을 설정하는 방법은 [속도 제한 참조](https://platform.claude.com/docs/en/api/rate-limits)를 확인하세요

848* 동시성을 줄입니다. [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/docs/ko/env-vars)를 낮추거나, 여러 서브에이전트를 병렬로 실행하지 않거나, 대량 스크립트 실행 시 `/model`로 더 작은 모델로 전환합니다873* 동시성을 줄입니다. 여러 서브에이전트를 병렬로 실행하지 않거나, 대량 스크립트 실행 시 `/model`로 더 작은 모델로 전환합니다

849 874 

850### You've hit your monthly spend limit875### You've hit your monthly spend limit

851 876 


1267* `/status`에 로그인만 표시된다면 `/login`을 한 번 실행합니다. 자격 증명이 폐기된 경우 새 로그인이 이를 대체합니다.1292* `/status`에 로그인만 표시된다면 `/login`을 한 번 실행합니다. 자격 증명이 폐기된 경우 새 로그인이 이를 대체합니다.

1268* 같은 로그인 계정에 대해 같은 메시지가 다시 나타나면 계정이나 조직이 더 이상 활성 상태가 아닙니다. `/status`가 보고하는 계정과 조직을 확인하고, 조직 관리자에게 액세스 복원을 요청합니다.1293* 같은 로그인 계정에 대해 같은 메시지가 다시 나타나면 계정이나 조직이 더 이상 활성 상태가 아닙니다. `/status`가 보고하는 계정과 조직을 확인하고, 조직 관리자에게 액세스 복원을 요청합니다.

1269* [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)이 [LLM 게이트웨이](/docs/ko/llm-gateway)를 가리키는 경우, `401` 뒤의 텍스트는 Anthropic이 아닌 게이트웨이의 메시지이며 `/login`으로 바뀌지 않습니다. 대신 게이트웨이가 요구하는 자격 증명을 수정합니다.1294* [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)이 [LLM 게이트웨이](/docs/ko/llm-gateway)를 가리키는 경우, `401` 뒤의 텍스트는 Anthropic이 아닌 게이트웨이의 메시지이며 `/login`으로 바뀌지 않습니다. 대신 게이트웨이가 요구하는 자격 증명을 수정합니다.

1295* 게이트웨이에 필요한 자격 증명을 제공했는데도 모든 요청이 `401`로 실패한다면, Claude Code가 기본적으로 보내는 도구 검색 필드를 게이트웨이가 거부하고 있는지 확인합니다. 확인하려면 [LLM 게이트웨이를 통한 도구 검색](/docs/ko/mcp#tool-search-through-a-gateway)에 설명된 대로 `ENABLE_TOOL_SEARCH=false`를 설정한 다음 다시 시도합니다. v2.1.304 이전에는 `ENABLE_TOOL_SEARCH`로 켜지 않는 한 게이트웨이 뒤에서 도구 검색이 꺼져 있었습니다.

1270 1296 

1271### 로그인 만료1297### 로그인 만료

1272 1298 


1338* 다른 플랫폼에서는 `/login`을 다시 실행합니다1364* 다른 플랫폼에서는 `/login`을 다시 실행합니다

1339* 로그인이 여전히 저장되지 않으면, 키체인 잠금 해제 명령과 기타 자격 증명 저장소 복구 단계는 [로그인되지 않음 또는 토큰 만료](/docs/ko/troubleshoot-install#not-logged-in-or-token-expired)를 참조하십시오1365* 로그인이 여전히 저장되지 않으면, 키체인 잠금 해제 명령과 기타 자격 증명 저장소 복구 단계는 [로그인되지 않음 또는 토큰 만료](/docs/ko/troubleshoot-install#not-logged-in-or-token-expired)를 참조하십시오

1340 1366 

1341### OAuth 콜백 서버를 시작하지 못함1367### Couldn't start the local listener that receives the browser sign-in

1342 1368 

1343`/login`, `claude auth login` 또는 `claude setup-token`이 브라우저를 통해 로그인할 때, Claude Code는 브라우저가 로그인 결과를 돌려보낼 수 있도록 `127.0.0.1`에 수신 포트를 엽니다. 이 메시지는 Claude Code가 해당 포트를 열 수 없었다는 뜻이며, 브라우저 창이나 로그인 URL이 나타나기 전에 로그인이 중단됩니다.1369`/login`, `claude auth login` 또는 `claude setup-token`에서 표시되는 다음 메시지들은 모두 Claude Code가 브라우저가 로그인 결과를 반환하는 `127.0.0.1`의 포트를 열 수 없었다는 의미입니다.

1344 1370 

1345```text theme={null}1371`The browser can't return the sign-in to Claude Code automatically`로 시작하는 알림이 표시되면, 로그인은 해당 포트 없이 계속 진행됩니다. 브라우저는 열리지 않으며, 알림은 대신 로그인할 URL 위에 표시됩니다.

1346Failed to start OAuth callback server: Failed to start server. Is port 0 in use?1372 

1373```text wrap theme={null}

1374The browser can't return the sign-in to Claude Code automatically. After you sign in, paste the code shown.

1347```1375```

1348 1376 

1349메시지가 `Is port 0 in use?`로 끝나면 IPv4 루프백 주소 `127.0.0.1`에서 수신하려는 시도가 완전히 실패한 것입니다. 로그인 URL이 생성되기 전에 실패하므로 `Paste code here if prompted` 흐름을 해결 방법으로 사용할 수 없습니다.1377`Couldn't start the local listener`가 포함된 메시지가 표시되면 로그인이 중단된 것입니다. 예를 들어 `claude auth login`에 입력을 파이프로 전달하는 경우 이런 일이 발생합니다.

1378 

1379```text theme={null}

1380Couldn't start the local listener that receives the browser sign-in. Try again.

1381```

1350 1382 

1351**해결 방법:**1383**해결 방법:**

1352 1384 

1353* 로컬 수신기 없이 바로 로그인하려면: claude.ai 구독을 사용하는 경우 로그인이 작동하는 머신에서 [`claude setup-token`](/docs/ko/authentication#generate-a-long-lived-token)을 실행하고, 출력된 토큰을 이 머신에서 `CLAUDE_CODE_OAUTH_TOKEN`으로 설정합니다. 그렇지 않으면 `ANTHROPIC_API_KEY`를 [Claude Console](https://platform.claude.com/settings/keys)의 키로 설정합니다. Claude Code가 자격 증명 중에서 선택하는 방식은 [인증 우선순위](/docs/ko/authentication#authentication-precedence)에서 설명합니다.1385* **`The browser can't return the sign-in to Claude Code automatically`**: 먼저 수정할 것은 없습니다. 알림 아래에 표시된 URL을 브라우저에서 열고 로그인합니다. 그러면 브라우저에 코드가 표시됩니다. `Paste code here >` 프롬프트에서 Claude Code에 코드를 붙여 넣으면 로그인이 계속 진행됩니다.

1354* 대신 이 머신에서 브라우저 로그인을 사용하려면 Claude Code가 `127.0.0.1`에서 수신할 수 있어야 합니다. 샌드박스 안에서 실행되는 경우 샌드박스 정책이 로컬 포트 수신을 허용하는지 확인한 다음 `/login`을 다시 실행합니다. 수신할 수 있어야 하는데도 계속 실패하면 `/feedback`을 실행하여 보고서에 환경 세부 정보가 포함되도록 합니다.1386* **`Couldn't start the local listener that receives the browser sign-in`**: 같은 명령을 다시 실행합니다. 같은 방식으로 중단되면 브라우저 대신 토큰이나 API 키로 로그인합니다. 또는 `claude auth login`에 입력을 파이프로 전달했다면, 붙여 넣은 코드를 받을 수 있도록 터미널에서 실행합니다.

1387* **브라우저 대신 토큰이나 API 키로 로그인하려면**: claude.ai 구독을 사용한다면 로그인이 작동하는 머신에서 [`claude setup-token`](/docs/ko/authentication#generate-a-long-lived-token)을 실행합니다. 그런 다음 출력된 토큰을 이 머신에서 [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ko/env-vars) 환경 변수로 설정합니다. 그렇지 않다면 `ANTHROPIC_API_KEY` 환경 변수를 [Claude Console](https://platform.claude.com/settings/keys)의 키로 설정합니다. [인증 우선순위](/docs/ko/authentication#authentication-precedence)에서 Claude Code가 자격 증명 중 무엇을 선택하는지 설명합니다.

1388* **브라우저 자동 반환을 다시 사용하려면**: Claude Code가 `127.0.0.1`에서 수신 대기할 수 있어야 합니다. 샌드박스 안에서 실행 중이라면 샌드박스 정책이 로컬 포트 수신 대기를 허용하는지 확인한 다음 다시 로그인합니다. 수신 대기가 가능해야 하는 환경인데도 알림이 계속 표시된다면, 보고서에 환경 세부 정보가 포함되도록 `/feedback`을 실행합니다.

1389 

1390v2.1.305 이전에는 포트를 열 수 없으면 즉시 로그인이 중단되었고 로그인할 URL도 표시되지 않았습니다. 메시지는 예를 들어 `Failed to start OAuth callback server: Failed to start server. Is port 0 in use?`와 같았습니다. 해당 버전에서는 Claude Code를 업데이트하고 다시 로그인하거나, 브라우저 대신 토큰이나 API 키로 로그인하십시오.

1355 1391 

1356### Claude 로그인이 수락되지 않음1392### Claude 로그인이 수락되지 않음

1357 1393 


1513 1549 

1514서버가 구성된 위치에서 헤더 값을 업데이트한 다음 `/mcp`에서 다시 연결합니다.1550서버가 구성된 위치에서 헤더 값을 업데이트한 다음 `/mcp`에서 다시 연결합니다.

1515 1551 

1516v2.1.273 이전에는 만료된 로그인, `headersHelper`, `Authorization` 헤더의 경우 모두 `MCP server "<name>" requires re-authorization (token expired)`가 표시되었습니다.1552Claude Desktop 앱에서 사용자의 머신에서 실행되는 [Cowork](https://claude.com/docs/cowork/overview) 세션의 경우, 다음 메시지는 MCP 서버가 제공받은 자격 증명을 거부했다는 의미입니다. 메시지에 표시된 항목을 수정한 후 Cowork에서 새 작업이나 채팅을 시작합니다.

1553 

1554```text theme={null}

1555MCP server "<name>" rejected the credential from its headersHelper (check the helper, then start a new task or chat)

1556MCP server "<name>" rejected the Authorization header in its config (update it, then start a new task or chat)

1557```

1558 

1559* **`headersHelper` 자격 증명 거부**: 헬퍼가 서버에서 받아들이는 자격 증명을 반환하는지 확인한 후 Cowork에서 새 작업이나 채팅을 시작합니다

1560* **`Authorization` 헤더 거부**: 해당 서버 구성의 `headers` 아래에 있는 `Authorization` 값을 업데이트한 후 Cowork에서 새 작업이나 채팅을 시작합니다

1561 

1562v2.1.302 이전에는 Cowork 세션에서 `/mcp`를 사용할 수 없는데도 `run /mcp to reconnect` 어미가 대신 표시되었습니다. Cowork에서 이러한 어미가 표시되더라도 헬퍼를 확인하거나 헤더를 업데이트한 후 새 작업이나 채팅을 시작하십시오. v2.1.273 이전에는 로그인 만료, `headersHelper`, `Authorization` 헤더의 경우 모두 `MCP server "<name>" requires re-authorization (token expired)`가 표시되었습니다.

1517 1563 

1518서버는 범위 승인을 요청하기 위해 HTTP 403 `insufficient_scope`로 도구 호출을 거부할 수도 있으며, 때로는 토큰에 이미 포함된 범위를 요청하기도 합니다. 메시지에 해당 범위가 표시됩니다.1564서버는 범위 승인을 요청하기 위해 HTTP 403 `insufficient_scope`로 도구 호출을 거부할 수도 있으며, 때로는 토큰에 이미 포함된 범위를 요청하기도 합니다. 메시지에 해당 범위가 표시됩니다.

1519 1565 


1812* 동일한 셸에서 `curl -I https://api.anthropic.com`을 실행하여 API 호스트에 도달할 수 있는지 확인합니다. Windows PowerShell에서는 `curl.exe -I https://api.anthropic.com`을 사용하여 기본 제공 `Invoke-WebRequest` 별칭이 사용되지 않도록 합니다.1858* 동일한 셸에서 `curl -I https://api.anthropic.com`을 실행하여 API 호스트에 도달할 수 있는지 확인합니다. Windows PowerShell에서는 `curl.exe -I https://api.anthropic.com`을 사용하여 기본 제공 `Invoke-WebRequest` 별칭이 사용되지 않도록 합니다.

1813* 회사 프록시 뒤에 있는 경우, Claude Code를 시작하기 전에 `HTTPS_PROXY`를 설정하고 [네트워크 구성](/docs/ko/network-config)을 참조합니다.1859* 회사 프록시 뒤에 있는 경우, Claude Code를 시작하기 전에 `HTTPS_PROXY`를 설정하고 [네트워크 구성](/docs/ko/network-config)을 참조합니다.

1814* LLM 게이트웨이 또는 릴레이를 통해 라우팅하는 경우, [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)을 해당 주소로 설정합니다. 설정은 [Claude Code를 LLM 게이트웨이에 연결](/docs/ko/llm-gateway-connect)을 참조합니다.1860* LLM 게이트웨이 또는 릴레이를 통해 라우팅하는 경우, [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)을 해당 주소로 설정합니다. 설정은 [Claude Code를 LLM 게이트웨이에 연결](/docs/ko/llm-gateway-connect)을 참조합니다.

1861* `ANTHROPIC_BASE_URL`이 이미 게이트웨이를 가리키고 있는데 모든 요청이 `Connection dropped`로 끝나는 경우, Claude Code가 기본적으로 보내는 도구 검색 필드를 게이트웨이가 거부하고 있는지 확인합니다. 확인하려면 [LLM 게이트웨이를 통한 도구 검색](/docs/ko/mcp#tool-search-through-a-gateway)에 설명된 대로 `ENABLE_TOOL_SEARCH=false`를 설정한 다음 다시 시도합니다. v2.1.304 이전에는 `ENABLE_TOOL_SEARCH`로 켜지 않는 한 게이트웨이 뒤에서 도구 검색이 꺼져 있었습니다.

1815* 방화벽이 [네트워크 액세스 요구 사항](/docs/ko/network-config#network-access-requirements)에 나열된 호스트를 허용하는지 확인합니다.1862* 방화벽이 [네트워크 액세스 요구 사항](/docs/ko/network-config#network-access-requirements)에 나열된 호스트를 허용하는지 확인합니다.

1816* 간헐적 실패는 [자동으로 재시도](#automatic-retries)됩니다. 지속적인 실패는 로컬 네트워크 문제를 나타냅니다.1863* 간헐적 실패는 [자동으로 재시도](#automatic-retries)됩니다.

1817 1864 

1818`curl`이 성공하지만 Claude Code가 여전히 실패하는 경우, 원인은 일반적으로 네트워크 자체가 아니라 런타임과 네트워크 사이의 무언가입니다:1865`curl`이 성공하지만 Claude Code가 여전히 실패하는 경우, 원인은 일반적으로 네트워크 자체가 아니라 런타임과 네트워크 사이의 무언가입니다:

1819 1866 


2093 2140 

2094## 요청 오류2141## 요청 오류

2095 2142 

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

2097 2144 

2098### Prompt is too long2145### Prompt is too long

2099 2146 

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

2101 2148 

2102```text theme={null}2149```text theme={null}

2103Prompt is too long2150Prompt is too long

2104```2151```

2105 2152 

2106대화형 세션에서 Claude Code는 이 오류를 다음과 같이 표시합니다:2153대화형 세션에서 Claude Code는 이 오류를 다음과 같이 표시합니다.

2107 2154 

2108```text theme={null}2155```text theme={null}

2109Context limit reached · /compact or /clear to continue2156Context limit reached · /compact or /clear to continue

2110```2157```

2111 2158 

2112[`DISABLE_COMPACT`](/docs/ko/env-vars)가 설정된 경우에는 이 줄에 `/clear`만 표시됩니다. 아래의 압축 실패 형식과 같은 더 긴 오류 형식은 `Prompt is too long ·` 표현을 유지합니다. `-p` 출력 및 트랜스크립트에서 텍스트는 `Prompt is too long`으로 유지됩니다.2159[`DISABLE_COMPACT`](/docs/ko/env-vars)가 설정된 경우 이 줄에는 `/clear`만 표시됩니다. 아래의 압축 실패 형태와 같은 더 긴 형태의 오류는 `Prompt is too long ·` 문구를 유지합니다. `-p` 출력과 트랜스크립트에서는 텍스트가 `Prompt is too long`으로 유지됩니다.

2113 2160 

2114[사용자 설정](/docs/ko/settings-reference#autocompactenabled)에서 자동 압축을 끈 경우, 이 줄에 그 사실도 함께 표시됩니다:2161[사용자 설정](/docs/ko/settings-reference#autocompactenabled)에서 자동 압축을 끈 경우, 이 줄에 해당 내용도 표시됩니다.

2115 2162 

2116```text theme={null}2163```text theme={null}

2117Context limit reached · /compact or /clear to continue · auto-compact is off · /config to turn it on2164Context limit reached · /compact or /clear to continue · auto-compact is off · /config to turn it on

2118```2165```

2119 2166 

2120`/config`의 **자동 압축** 토글은 사용자 설정에 `autoCompactEnabled`를 씁니다. 이 힌트는 `/config` 변경이 적용될 때만 나타납니다. 예를 들어, [`DISABLE_AUTO_COMPACT`](/docs/ko/env-vars) 또는 [`DISABLE_COMPACT`](/docs/ko/env-vars)가 자동 압축을 끈 경우에는 나타나지 않습니다. 또한 프로젝트 또는 관리형 설정과 같은 더 높은 우선순위 범위가 `autoCompactEnabled`를 `false`로 설정한 경우에도 나타나지 않습니다. v2.1.235 이전에는 이 줄에 자동 압축 힌트가 없었습니다.2167`/config`의 **Auto-compact** 토글은 사용자 설정에 `autoCompactEnabled`를 기록합니다. 이 힌트는 `/config` 변경이 실제로 적용될 때만 표시됩니다. 예를 들어 [`DISABLE_AUTO_COMPACT`](/docs/ko/env-vars) 또는 [`DISABLE_COMPACT`](/docs/ko/env-vars)로 자동 압축이 꺼진 경우에는 표시되지 않습니다. 또한 프로젝트 설정이나 관리형 설정처럼 우선순위가 더 높은 범위에서 `autoCompactEnabled`를 `false`로 설정한 경우에도 표시되지 않습니다. v2.1.235 이전에는 이 줄에 자동 압축 힌트가 없었습니다.

2121 2168 

2122Amazon Bedrock은 이 조건을 `Input is too long for requested model.`로 보고하며, Claude Code는 이를 동일한 방식으로 처리합니다. v2.1.217 이전에는 Claude Code가 Bedrock 표현을 인식하지 못했으므로 자동 압축이 트리거되지 않았고 `/compact`는 동일한 오류로 실패했습니다.2169Amazon Bedrock은 이 상황을 `Input is too long for requested model.`로 보고하며, Claude Code는 이를 동일하게 처리합니다. v2.1.217 이전에는 Claude Code가 Bedrock 문구를 인식하지 못했기 때문에 자동 압축이 트리거되지 않았고 `/compact`도 같은 오류로 실패했습니다.

2123 2170 

2124[Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway-config#upstream-error-messages)는 클라우드 업스트림이 제공자의 자체 오류 형식으로 요청을 거부할 때 이 조건을 `capability_rejected: prompt_too_long`으로 보고합니다. Claude Code는 이 토큰을 `Prompt is too long`과 동일하게 처리합니다. v2.1.228 이전에는 Claude Code가 이 토큰을 인식하지 못했으므로 자동 압축이 트리거되지 않았습니다.2171[Claude apps gateway](/docs/ko/claude-apps-gateway-config#upstream-error-messages)는 클라우드 업스트림이 공급자 고유의 오류 형태로 요청을 거부할 때 이 상황을 `capability_rejected: prompt_too_long`으로 보고합니다. Claude Code는 이 토큰을 `Prompt is too long`과 동일하게 처리합니다. v2.1.228 이전에는 Claude Code가 이 토큰을 인식하지 못했기 때문에 자동 압축이 트리거되지 않았습니다.

2125 2172 

2126자동 압축이 이 턴에서 실행되었지만 사용할 수 없는 모델 또는 인증 실패와 같은 기본 오류로 실패한 경우, 메시지는 구분자 뒤에 해당 오류를 표시합니다:2173이번 턴에서 자동 압축이 실행되었지만 사용할 수 없는 모델이나 인증 실패와 같은 근본 오류로 실패한 경우, 메시지는 구분 기호 뒤에 해당 오류를 표시합니다.

2127 2174 

2128```text theme={null}2175```text theme={null}

2129Prompt is too long · automatic compaction failed: <the underlying error>2176Prompt is too long · automatic compaction failed: <the underlying error>

2130```2177```

2131 2178 

2132명명된 오류를 먼저 해결하십시오. 해결할 때까지 `/compact`는 동일한 오류로 실패합니다. v2.1.229 이전에는 실패한 자동 압축이 원인 없이 `Prompt is too long`을 표시했습니다.2179표시된 오류를 먼저 해결하십시오. 해결하기 전까지 `/compact`도 같은 오류로 실패합니다. v2.1.229 이전에는 자동 압축이 실패하면 원인 없이 `Prompt is too long`만 표시되었습니다.

2133 2180 

2134자동 압축이 이 오류에서 실행될 때, 일반적으로 가장 오래된 교환을 요약하고 가장 최신 교환을 유지합니다. 최후의 수단으로 Claude Code는 다르게 요약합니다:2181이 오류에 대해 자동 압축이 실행되면 일반적으로 가장 오래된 대화 교환을 요약하고 최신 교환은 유지합니다. 최후의 수단으로 Claude Code는 다르게 요약합니다.

2135 2182 

2136* 전체 교환을 요약할 수 없는 경우, Claude Code는 가장 최신 프롬프트를 그대로 유지하고 그 이전의 모든 것을 요약합니다.2183* 어떤 교환 전체도 요약할 수 없는 경우, Claude Code는 최신 프롬프트를 그대로 유지하고 그 이전의 모든 내용을 요약합니다.

2137* 이 경우, 대화가 프롬프트로 끝나지 않으면 Claude Code는 전체 대화를 대신 요약합니다.2184* 이 경우 대화가 사용자의 프롬프트로 끝나지 않으면, Claude Code는 대신 대화 전체를 요약합니다.

2138 2185 

2139이어서 전달할 내용에 모델 응답이 없고 사용자 자신의 텍스트가 약 1,000토큰 미만인 경우(예: 크기가 큰 붙여넣기 후에 보낸 짧은 재시도) Claude Code는 이 복구를 건너뜁니다. `/clear`를 실행하여 새로 시작하십시오. v2.1.269 이전에는 전체 교환을 요약할 수 없을 때마다 압축이 실패했으므로 이 상태의 세션은 매 턴마다 이 오류를 다시 만났습니다.2186이어서 전달할 내용에 모델 응답이 없고 사용자 자신의 텍스트가 약 1,000 토큰 미만인 경우(예: 너무 큰 붙여넣기 후 보낸 짧은 재시도), Claude Code는 이 복구를 건너뜁니다. 새로 시작하려면 `/clear`를 실행하십시오. v2.1.269 이전에는 교환 전체를 요약할 수 없을 때마다 압축이 실패했기 때문에, 그런 상태의 세션은 매 턴마다 이 오류가 다시 발생했습니다.

2140 2187 

2141단일 교환 대화에는 요약할 이전 턴이 없습니다. 이러한 대화에서 자동 압축이 실행되려 할 때, Claude Code는 시도를 건너뛰고 무엇이 요청을 채우고 있는지 설명합니다. API가 오류에서 토큰 수를 보고하지 않으면 메시지는 다음과 같습니다:2188단일 교환으로 이루어진 대화에는 요약할 이전 턴이 없습니다. 이런 대화에서 자동 압축이 실행될 상황이 되면, Claude Code는 시도를 건너뛰고 대신 요청을 채우는 내용이 무엇인지 설명합니다. API가 오류에 토큰 수를 보고하지 않는 경우 메시지는 다음과 같습니다.

2142 2189 

2143```text theme={null}2190```text theme={null}

2144Prompt is too long · this conversation is a single exchange and cannot be compacted — the request size comes mostly from system prompt, tool definitions, or attachments.2191Prompt is too long · this conversation is a single exchange and cannot be compacted — the request size comes mostly from system prompt, tool definitions, or attachments.

2145```2192```

2146 2193 

2147API가 오류에서 토큰 수를 보고하면 Claude Code는 이를 자체적으로 추정한 대화 크기와 비교하여 요청의 대부분이 무엇인지 알려줍니다: 대화 자체의 내용인지, 아니면 Claude Code가 함께 보내는 시스템 프롬프트, 도구 정의 및 첨부 내용인지입니다. 대화 자체의 내용이 요청의 대부분인 경우 메시지는 다음과 같습니다:2194API가 오류에 토큰 수를 보고하는 경우, Claude Code는 이를 대화 크기에 대한 자체 추정치와 비교하여 요청의 대부분이 대화 자체의 내용인지, 아니면 Claude Code가 함께 보내는 시스템 프롬프트, 도구 정의, 첨부 내용인지 판단합니다. 대화 자체의 내용이 요청의 대부분인 경우 메시지는 다음과 같습니다.

2148 2195 

2149```text theme={null}2196```text theme={null}

2150Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) and this conversation's own content is most of it. A single-exchange conversation cannot be compacted; start with less content (smaller files or pasted text).2197Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) and this conversation's own content is most of it. A single-exchange conversation cannot be compacted; start with less content (smaller files or pasted text).

2151```2198```

2152 2199 

2153요청의 대부분이 대화 외부에 있으면 메시지는 다음과 같습니다:2200요청의 대부분이 대화 외부에 있는 경우 메시지는 다음과 같습니다.

2154 2201 

2155```text theme={null}2202```text theme={null}

2156Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) but this conversation is only ~<conversation tokens> tokens — the rest is system prompt, tool definitions, and attachment content. A single-exchange conversation cannot be compacted; reduce attached files/tools or start with less context.2203Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) but this conversation is only ~<conversation tokens> tokens — the rest is system prompt, tool definitions, and attachment content. A single-exchange conversation cannot be compacted; reduce attached files/tools or start with less context.

2157```2204```

2158 2205 

2159v2.1.162 이전에는 Claude Code가 그래도 압축을 시도했고 실패했을 때 `Prompt is too long`만 표시했습니다.2206v2.1.162 이전에는 Claude Code가 그래도 압축을 시도했고, 실패하면 `Prompt is too long`만 표시했습니다.

2160 2207 

2161**할 일:**2208**해결 방법:**

2162 2209 

2163* `/compact`를 실행하여 이전 턴을 요약하고 공간을 확보하거나, `/clear`를 실행하여 새로 시작합니다. `/compact`가 `Not enough messages to compact.`로 응답하면 대화는 요약할 이전 내용이 없는 단일 교환이므로 공간은 해당 프롬프트와 Claude Code가 모든 요청과 함께 보내는 것으로 채워집니다: `/clear`를 실행하고 더 적은 붙여넣은 텍스트 또는 더 작은 첨부 파일로 다시 보내거나, 아래 단계를 사용하여 도구 정의 및 메모리 파일을 줄입니다.2210* `/compact`를 실행하여 이전 턴을 요약하고 공간을 확보하거나, `/clear`를 실행하여 새로 시작합니다. `/compact`가 `Not enough messages to compact.`로 응답하면 대화가 요약할 이전 내용이 없는 단일 교환이라는 뜻이므로, 공간은 그 하나의 프롬프트와 Claude Code가 모든 요청에 함께 보내는 내용이 차지하고 있습니다. `/clear`를 실행하고 붙여넣은 텍스트를 줄이거나 더 작은 첨부 파일로 다시 보내거나, 아래 단계에 따라 도구 정의와 메모리 파일을 줄이십시오

2164* `/context`를 실행하여 윈도우를 소비하는 것의 분석을 확인합니다: 시스템 프롬프트, 도구, 메모리 파일 및 메시지2211* `/context`를 실행하여 시스템 프롬프트, 도구, 메모리 파일, 메시지 등 윈도우를 차지하는 항목의 세부 내역을 확인합니다

2165* `/mcp disable <name>`으로 사용하지 않는 MCP 서버를 비활성화하여 컨텍스트에서 도구 정의를 제거합니다.2212* 사용하지 않는 MCP 서버를 `/mcp disable <name>`으로 비활성화하여 해당 도구 정의를 컨텍스트에서 제거합니다

2166* 큰 `CLAUDE.md` 메모리 파일을 정리하거나, 지시사항을 관련이 있을 때만 로드되는 [경로 범위 규칙](/docs/ko/memory#path-specific-rules)으로 이동합니다.2213* 큰 `CLAUDE.md` 메모리 파일을 정리하거나, 관련 있을 때만 로드되는 [경로 범위 규칙](/docs/ko/memory#path-specific-rules)으로 지침을 옮깁니다

2167* 자동 압축은 기본적으로 켜져 있으며 일반적으로 이 오류를 방지합니다. `/config`에서 또는 [`DISABLE_AUTO_COMPACT`](/docs/ko/env-vars)로 끈 경우 다시 켭니다. 끈 상태로 유지하면 윈도우가 채워지기 전에 `/compact`를 직접 실행합니다.2214* 자동 압축은 기본적으로 켜져 있으며 일반적으로 이 오류를 방지합니다. `/config` 또는 [`DISABLE_AUTO_COMPACT`](/docs/ko/env-vars)로 끈 경우 다시 켜십시오. 계속 꺼 두려면 윈도우가 가득 차기 전에 직접 `/compact`를 실행하십시오.

2168* 더 많은 토큰을 허용하는 모델에서 200K 토큰 근처에서 오류가 나타난다면, 한 가지 원인은 Claude Code가 인식하지 못하는 모델 ID입니다. Claude Code는 그런 ID에 대해 200K 윈도우를 가정하므로, 그 지점을 넘어 계속 작업하려면 [모델의 실제 컨텍스트 윈도우를 지정합니다](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id).2215* 더 많은 토큰을 허용하는 모델에서 200K 토큰 근처에서 오류가 발생한다면, Claude Code가 인식하지 못하는 모델 ID가 원인일 수 있습니다. Claude Code는 이런 ID에 대해 200K 윈도우를 가정하므로, 그 이상으로 계속 작업하려면 [모델의 실제 컨텍스트 윈도우를 지정](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id)하십시오.

2216* Claude가 대화를 압축하는 도중에 중지한 직후 오류가 나타났다면, 대화는 변경되지 않았으며 여전히 압축이 필요할 만큼 큽니다. `/compact`를 실행하고 메시지를 다시 보내세요. 오류가 재발하지 않도록 하려면 Claude Code를 v2.1.304 이상으로 [업데이트](/docs/ko/setup#update-claude-code)하세요. v2.1.304 이전에는 그 시점에 중지하면 턴이 이 오류로 끝날 수 있었습니다.

2169 2217 

2170[컨텍스트 윈도우 탐색](/docs/ko/context-window)에서 컨텍스트가 어떻게 채워지는지에 대한 대화형 보기를 참조하십시오.2218컨텍스트가 채워지는 방식을 대화형으로 확인하려면 [컨텍스트 윈도우 살펴보기](/docs/ko/context-window)를 참조하십시오.

2171 2219 

2172### 컨텍스트가 토큰 제한을 초과합니다2220### Context exceeds the token limit

2173 2221 

2174`/context`는 대화가 모델의 컨텍스트 윈도우를 초과했을 때 출력 상단에 이 경고를 표시합니다. 공간을 확보할 때까지 요청이 [`Prompt is too long`](#prompt-is-too-long)으로 실패합니다. 대화형 세션은 해당 오류를 `Context limit reached` 줄로 표시합니다.2222대화가 모델의 컨텍스트 윈도우를 넘어서 커진 경우 `/context`는 출력 상단에 이 경고를 표시합니다. 공간을 확보할 때까지 요청은 [`Prompt is too long`](#prompt-is-too-long)으로 실패합니다. 대화형 세션은 이 오류를 `Context limit reached` 줄로 표시합니다.

2175 2223 

2176```text theme={null}2224```text theme={null}

2177Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.2225Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.

2178```2226```

2179 2227 

2180초과한 제한이 1M 컨텍스트 모델의 200K 경계와 같은 압축 윈도우인 경우 경고는 다르게 표시됩니다. 압축 윈도우는 모델의 컨텍스트 윈도우보다 작을 수 있으므로 이를 넘는 요청도 여전히 성공할 수 있습니다.2228초과한 한도가 1M 컨텍스트 모델의 200K 경계와 같은 압축 윈도우인 경우 경고 문구가 달라집니다. 압축 윈도우는 모델의 컨텍스트 윈도우보다 작을 수 있으므로, 이를 넘은 요청도 여전히 성공할 수 있습니다.

2181 2229 

2182```text theme={null}2230```text theme={null}

2183Context is 94k tokens past the 200k-token compaction window — run /compact to reduce usage.2231Context is 94k tokens past the 200k-token compaction window — run /compact to reduce usage.

2184```2232```

2185 2233 

2186두 형식 모두 [`DISABLE_COMPACT`](/docs/ko/env-vars)를 설정한 경우 `/compact` 대신 `/clear`를 표시합니다.2234[`DISABLE_COMPACT`](/docs/ko/env-vars)를 설정한 경우 두 형태 모두 `/compact` 대신 `/clear`를 표시합니다.

2187 2235 

2188**할 일:**2236**해결 방법:**

2189 2237 

2190* 다중 턴 대화에서 `/compact`를 실행하여 이전 턴을 요약하고 공간을 확보합니다. 대신 새로 시작하려면 `/clear`를 실행합니다.2238* 여러 턴으로 이루어진 대화에서는 `/compact`를 실행하여 이전 턴을 요약하고 공간을 확보합니다. 대신 새로 시작하려면 `/clear`를 실행합니다

2191* 사용량을 줄이는 더 많은 방법은 [Prompt is too long](#prompt-is-too-long)을 참조하십시오.2239* 사용량을 줄이는 다른 방법은 [Prompt is too long](#prompt-is-too-long)을 참조하십시오

2192 2240 

2193v2.1.216 이전에는 `/context`가 100% 이상의 사용량을 표시했으며 그것이 의미하는 바 또는 복구 방법을 설명하는 경고 줄이 없었습니다.2241v2.1.216 이전에는 `/context`가 100%를 넘는 사용량을 표시하면서도 그 의미나 복구 방법을 설명하는 경고 줄을 표시하지 않았습니다.

2194 2242 

2195### Request too large2243### Request too large

2196 2244 

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

2198 2246 

2199```text theme={null}2247```text theme={null}

2200Request too large (max 32MB). Accumulated images and attachments in the conversation pushed the request over the limit. Run /compact, or double press esc to go back and remove attachments.2248Request too large (max 32MB). Accumulated images and attachments in the conversation pushed the request over the limit. Run /compact, or double press esc to go back and remove attachments.

2201```2249```

2202 2250 

2203요청이 Claude API로 직접 전송되었고 API 자체가 이를 거부한 경우, Claude Code는 대화를 측정하고 복구가 가능한지 여부에 따라 메시지를 표현합니다. 프록시, 게이트웨이 또는 클라우드 제공자를 통하는 경우에는 일반 메시지를 받습니다. 측정된 형식:2251요청이 Claude API로 직접 전송되었고 API 자체가 이를 거부한 경우, Claude Code는 대화를 측정하고 복구가 가능한지에 따라 메시지 문구를 정합니다. 프록시, 게이트웨이 또는 클라우드 공급자를 거치는 경우에는 일반 메시지가 표시됩니다. 측정된 형태는 다음과 같습니다.

2204 2252 

2205* `Request too large (max 32MB; 20.1MB of about 33.4MB is images or documents).`: 이미지 또는 문서가 요청을 제한 이상으로 밀어냈습니다. Claude Code는 이들을 제거하고 재시도합니다.2253* `Request too large (max 32MB; 20.1MB of about 33.4MB is images or documents).`: 이미지나 문서 때문에 요청이 한도를 초과했습니다. Claude Code는 이를 제거한 상태로 재시도합니다.

2206* `Request too large for the API's 32MB request limit`: 메시지만으로도 제한을 초과하므로 메시지는 `compacting cannot make it fit`이라고 말하고 Claude Code는 재시도하지 않습니다. [비대화형 모드](/docs/ko/headless)에서 메시지는 대신 입력을 줄이거나 새 세션을 시작하도록 안내합니다.2254* `Request too large for the API's 32MB request limit`: 메시지만으로도 한도를 초과하므로, 메시지에 `compacting cannot make it fit`이 표시되고 Claude Code는 재시도하지 않습니다. [비대화형 모드](/docs/ko/headless)에서는 대신 입력을 줄이거나 새 세션을 시작하라는 메시지가 표시됩니다.

2207 2255 

2208v2.1.212 이전에는 이미지가 충분히 누적된 대화가 `Request too large (max 32MB). Double press esc to go back and try with a smaller file.`로 매 턴마다 실패했습니다. v2.1.229 이전에는 Claude Code가 압축이 도움이 될 수 없을 때도 모든 거부에 대해 첨부 파일 조언을 표시했습니다.2256v2.1.212 이전에는 이미지가 충분히 누적된 대화가 매 턴마다 `Request too large (max 32MB). Double press esc to go back and try with a smaller file.`로 실패했습니다. v2.1.229 이전에는 압축으로 해결할 수 없는 경우에도 Claude Code가 모든 거부에 대해 첨부 파일 관련 안내를 표시했습니다.

2209 2257 

2210**할 일:**2258**해결 방법:**

2211 2259 

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

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

2214* 내용을 붙여넣는 대신 경로로 큰 파일을 참조하여 Claude가 청크 단위로 읽을 수 있도록 합니다.2262* 큰 파일은 내용을 붙여넣는 대신 경로로 참조하여 Claude가 나누어 읽을 수 있게 합니다

2215* 이미지의 경우 아래의 [Image was too large](#image-was-too-large)를 참조하십시오.2263* 이미지의 경우 아래의 [Image was too large](#image-was-too-large)를 참조하십시오

2216 2264 

2217### Image was too large2265### Image was too large

2218 2266 

2219붙여넣거나 첨부한 이미지가 API의 크기 또는 치수 제한을 초과합니다.2267붙여넣거나 첨부한 이미지가 API의 크기 또는 해상도 한도를 초과했습니다.

2220 2268 

2221```text theme={null}2269```text theme={null}

2222Image was too large. Double press esc to go back and try again with a smaller image.2270Image was too large. Double press esc to go back and try again with a smaller image.


2224API Error: an image in the conversation could not be processed and was removed.2272API Error: an image in the conversation could not be processed and was removed.

2225```2273```

2226 2274 

2227`could not be processed and was removed` 줄은 크기 또는 해상도 한도를 초과한 이미지처럼 API가 대화의 이미지를 거부했다는 의미입니다.2275`could not be processed and was removed` 줄은 API가 대화 내의 이미지(예: 크기 또는 해상도 한도를 초과한 이미지)를 거부했다는 뜻입니다.

2228 2276 

2229이러한 오류 중 하나가 계속 반복되면 Claude Code를 업데이트합니다. 이전 버전에서는 다음과 같은 이유로 이미지 오류가 반복될 수 있었습니다:2277이러한 오류 중 하나가 계속 발생하면 Claude Code를 업데이트하십시오. 이전 버전에서는 다음과 같은 이유로 이미지 오류가 반복될 수 있었습니다.

2230 2278 

2231* v2.1.299 이전에는 이미지가 많은 긴 대화에서 Claude Code가 한도를 초과한 이미지 대신 마지막으로 첨부한 이미지를 제거할 수 있었습니다. 그러면 `was removed` 줄이 매 턴마다 반복되었고 Claude는 새 이미지를 보지 못했습니다.2279* v2.1.299 이전에는 이미지가 많은 긴 대화에서 Claude Code가 한도를 초과한 이미지 대신 마지막으로 첨부한 이미지를 제거할 수 있었습니다. 그 결과 `was removed` 줄이 매 턴마다 반복되었고, Claude는 새 이미지를 볼 수 없었습니다.

2232* v2.1.299 이전에는 VS Code, Desktop 앱, Agent SDK에서 Claude가 작업하는 동안 첨부한 이미지에 다른 첨부 이미지와 같은 크기 조정이 적용되지 않았습니다. 이러한 이미지는 원본 크기 그대로 API에 전달되어 긴 대화에서 이미지 오류가 반복되었습니다.2280* v2.1.299 이전에는 VS Code, Desktop 앱, Agent SDK에서 Claude가 작업하는 동안 첨부한 이미지가 다른 첨부 이미지와 달리 크기 조정되지 않았습니다. 이 이미지는 원래 크기 그대로 API에 전달되어 긴 대화에서 이미지 오류가 반복되었습니다.

2233* v2.1.166 이전에는 붙여넣은 이미지가 대화에 남아 이후 모든 메시지에서 같은 오류가 반복될 수 있었습니다2281* v2.1.166 이전에는 붙여넣은 이미지가 대화에 남아 이후 모든 메시지에서 같은 오류가 반복될 수 있었습니다

2234 2282 

2235**할 일:**2283**해결 방법:**

2236 2284 

2237* 붙여넣기 전에 이미지 크기를 조정합니다. API는 단일 이미지의 경우 가장 긴 변 기준 최대 8000픽셀, 컨텍스트에 이미지가 20개를 초과할 때는 3000픽셀까지의 이미지를 허용합니다.2285* 붙여넣기 전에 이미지 크기를 줄입니다. API는 단일 이미지의 경우 긴 변 기준 최대 8000픽셀, 컨텍스트에 이미지가 20개를 초과하는 경우 최대 3000픽셀까지 허용합니다.

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

2239 2287 

2240### Unable to resize image2288### Unable to resize image

2241 2289 

2242Claude Code가 API로 보내기 전에 첨부된 이미지를 축소할 수 없었습니다.2290Claude Code가 첨부된 이미지를 API로 보내기 전에 축소하지 못했습니다.

2243 2291 

2244```text theme={null}2292```text theme={null}

2245Unable to resize image — image processing is unavailable and dimensions could not be read from the file header. Please convert the image to PNG, JPEG, GIF, or WebP.2293Unable to resize image — image processing is unavailable and dimensions could not be read from the file header. Please convert the image to PNG, JPEG, GIF, or WebP.


2251Unable to resize image — its pixels could not be decoded (the file may be damaged, or use an encoding Claude Code cannot read), and it is over the … API limit (… raw, … base64), so it cannot be sent. Re-save it as a PNG or JPEG and try again.2299Unable to resize image — its pixels could not be decoded (the file may be damaged, or use an encoding Claude Code cannot read), and it is over the … API limit (… raw, … base64), so it cannot be sent. Re-save it as a PNG or JPEG and try again.

2252```2300```

2253 2301 

2254Claude Code는 일반적으로 큰 이미지를 자동으로 크기 조정합니다. 이러한 오류는 이미지를 디코딩하거나 API 제한 내에 맞게 크기를 조정할 수 없음을 의미합니다.2302Claude Code는 일반적으로 큰 이미지의 크기를 자동으로 조정합니다. 이러한 오류는 이미지를 디코딩하거나 API 한도에 맞게 크기를 조정할 수 없었다는 뜻입니다.

2255 2303 

2256**할 일:**2304**해결 방법:**

2257 2305 

2258* 메시지가 이미지를 변환하도록 요청하면 PNG, JPEG, GIF 또는 WebP로 변환하고 다시 첨부합니다. Claude Code는 이미지를 디코딩하지 않고 파일 헤더에서 이러한 형식의 치수를 확인할 수 있습니다.2306* 메시지가 이미지 변환을 요청하면 PNG, JPEG, GIF 또는 WebP로 변환한 후 다시 첨부합니다. Claude Code는 이러한 형식의 경우 이미지를 디코딩하지 않고도 파일 헤더에서 해상도를 확인할 수 있습니다.

2259* 메시지가 치수 또는 크기 제한을 보고하면 해당 제한 아래로 이미지 크기를 조정하거나 다시 압축한 후 첨부합니다.2307* 메시지가 해상도 또는 크기 한도를 보고하면, 첨부하기 전에 이미지를 해당 한도 이하로 크기 조정하거나 다시 압축합니다.

2260* 메시지가 CMYK JPEG, 애니메이션 WebP 또는 손상된 파일 가능성과 같은 원인을 표시하면 메시지가 제안하는 형식으로 이미지를 다시 저장하고 첨부합니다.2308* 메시지가 CMYK JPEG, 애니메이션 WebP, 손상되었을 수 있는 파일과 같은 원인을 명시하면, 메시지가 제안하는 형식으로 이미지를 다시 저장한 후 다시 첨부합니다.

2261 2309 

2262### Request rejected as unprocessable by the model2310### Request rejected as unprocessable by the model

2263 2311 

2264API가 요청을 모델이 처리할 수 없는 요청으로 거부했습니다. 이 메시지는 API 자체의 메시지입니다.2312API가 모델이 처리할 수 없는 요청으로 판단하여 거부했습니다. 이 메시지는 API 자체의 메시지입니다.

2265 2313 

2266```text theme={null}2314```text theme={null}

2267API Error: 400 Request rejected as unprocessable by the model (too many or oversized images, or unsupported parameters)2315API Error: 400 Request rejected as unprocessable by the model (too many or oversized images, or unsupported parameters)

2268```2316```

2269 2317 

2270Claude Code는 거부된 요청에서 가장 오래된 이미지와 문서를 제거하고 다시 보낼 수 있습니다. v2.1.290 이전에는 Claude Code가 이 거부에 대해 이미지를 제거하지 않았으므로, 이미지가 수백 개 누적된 긴 세션은 매 턴마다 이 오류로 실패할 수 있었습니다.2318Claude Code는 거부된 요청에서 가장 오래된 이미지와 문서를 제거한 후 다시 보낼 수 있습니다. v2.1.290 이전에는 Claude Code가 이 거부에 대해 이미지를 제거하지 않았기 때문에, 이미지가 수백 개 누적된 긴 세션은 매 턴마다 이 오류로 실패할 수 있었습니다.

2271 2319 

2272**해결 방법:**2320**해결 방법:**

2273 2321 

2274* 이미지나 문서가 포함된 대화에서 이 메시지가 계속 표시되면 직접 제거하십시오. Esc를 두 번 눌러 해당 항목을 추가한 턴 이전으로 되돌아가거나, `/clear`를 실행하여 새로 시작합니다.2322* 이미지나 문서가 포함된 대화에서 이 메시지가 계속 나타나면 직접 제거하십시오. Esc를 두 번 눌러 해당 내용을 추가한 턴 이전으로 되돌아가거나, `/clear`를 실행하여 새로 시작합니다.

2275 2323 

2276### PDF 오류2324### PDF 오류

2277 2325 

2278첨부한 PDF를 처리할 수 없었습니다. 메시지는 여기에 비대화형 형식으로 표시됩니다. 대화형 세션에서는 대신 Esc를 두 번 누르고 다시 시도하도록 안내합니다.2326첨부한 PDF를 처리할 수 없었습니다. 여기에 표시된 메시지는 비대화형 형태이며, 대화형 세션에서는 대신 esc를 두 번 눌러 다시 시도하라는 안내가 표시됩니다.

2279 2327 

2280```text theme={null}2328```text theme={null}

2281PDF too large (max 100 pages, 20MB). Try reading the file a different way (e.g., extract text with pdftotext).2329PDF too large (max 100 pages, 20MB). Try reading the file a different way (e.g., extract text with pdftotext).


2283The PDF file was not valid. Try converting it to text first (e.g., pdftotext).2331The PDF file was not valid. Try converting it to text first (e.g., pdftotext).

2284```2332```

2285 2333 

2286**할 일:**2334**해결 방법:**

2287 2335 

2288* 크기가 큰 PDF의 경우 전체 파일을 첨부하는 대신 Read 도구로 페이지 범위를 읽도록 Claude에 요청하거나 `pdftotext`와 같은 도구로 텍스트를 추출하고 출력 파일을 경로로 참조합니다.2336* 크기가 큰 PDF의 경우 파일 전체를 첨부하는 대신 Claude에게 Read 도구로 페이지 범위를 읽도록 요청하거나, `pdftotext` 같은 도구로 텍스트를 추출한 후 출력 파일을 경로로 참조합니다

2289* 보호되거나 유효하지 않은 PDF의 경우 암호를 제거하거나 소스 애플리케이션에서 파일을 다시 내보낸 후 다시 시도합니다.2337* 보호되었거나 유효하지 않은 PDF의 경우 비밀번호를 제거하거나 원본 애플리케이션에서 파일을 다시 내보낸 후 다시 시도합니다

2290 2338 

2291Claude가 Read 도구로 PDF에서 페이지 범위를 읽을 때, 읽기가 다른 메시지로 실패할 수 있습니다:2339Claude가 Read 도구로 PDF의 페이지 범위를 읽을 때, 다른 메시지와 함께 읽기가 실패할 수 있습니다.

2292 2340 

2293```text theme={null}2341```text theme={null}

2294pdftoppm is not installed. Install poppler-utils (e.g. `brew install poppler` or `apt-get install poppler-utils`) to enable PDF page rendering.2342pdftoppm is not installed. Install poppler-utils (e.g. `brew install poppler` or `apt-get install poppler-utils`) to enable PDF page rendering.

2295```2343```

2296 2344 

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

2298 2346 

2299### Extra inputs are not permitted2347### Extra inputs are not permitted

2300 2348 

2301Claude Code와 API 사이의 프록시 또는 LLM 게이트웨이가 `anthropic-beta` 요청 헤더를 제거했으므로 API가 이 헤더에 의존하는 필드를 거부했습니다.2349요청을 받은 엔드포인트가 요청의 필드 중 하나를 허용하지 않는 입력으로 판단하여 거부했으며, 엔드포인트의 메시지에 해당 필드가 명시됩니다.

2302 2350 

2303```text theme={null}2351```text theme={null}

2304API Error: 400 ... Extra inputs are not permitted ... context_management2352API Error: 400 ... context_management: Extra inputs are not permitted

2305```2353```

2306 2354 

2307Claude Code는 `context_management`와 같은 베타 전용 필드를 이를 활성화하는 `anthropic-beta` 헤더와 함께 보냅니다. 게이트웨이가 본문은 전달하지만 헤더를 제거하면 API는 인식하지 못하는 필드를 보게 됩니다.2355Claude Code는 `context_management`나 도구 검색의 `defer_loading` 같은 베타 전용 필드를 이를 활성화하는 `anthropic-beta` 헤더와 함께 보냅니다. 게이트웨이가 본문은 전달하지만 헤더를 삭제하면, API는 인식하지 못하는 필드를 보게 됩니다. 게이트웨이가 Anthropic 형식의 본문을 스키마가 다른 업스트림으로 전달하면, 해당 업스트림이 그런 필드를 거부합니다. [베타 헤더와 본문 필드 쌍](/docs/ko/llm-gateway-protocol#beta-header-and-body-field-pairs)에서 두 경우를 모두 다룹니다.

2308 2356 

2309**할 일:**2357**해결 방법:**

2358 

2359* 메시지에 `context_management: Extra inputs are not permitted`가 포함되어 있으면 [Claude Code를 v2.1.304 이상으로 업데이트](/docs/ko/setup#update-claude-code)하십시오. 업데이트 후에는 Claude Code가 이 거부에 대해 해당 필드 없이 요청을 한 번 더 보냅니다. v2.1.304 이전에는 Claude Code가 이 거부에 대해 재시도하지 않았습니다.

2360* 메시지에 `defer_loading` 또는 `tool_reference`가 명시되어 있으면 Claude Code를 업데이트하거나 [도구 검색](/docs/ko/mcp#tool-search-through-a-gateway)을 끄십시오.

2361 * [Claude Code를 v2.1.305 이상으로 업데이트](/docs/ko/setup#update-claude-code)합니다. 그러면 Claude Code가 이 거부에 대해 도구 검색 필드 없이 요청을 한 번 더 보냅니다.

2362 * 업데이트할 수 없거나 업데이트 후에도 메시지가 계속 나타나면, 셸 또는 [설정 `env`](/docs/ko/settings-reference#env)에서 `ENABLE_TOOL_SEARCH=false`를 설정합니다. 설정 파일에서 이미 이 변수를 설정하고 있다면, 그 값이 [셸 export를 재정의할 수 있으므로](/docs/ko/settings-reference#how-env-values-interact-with-your-shell) 해당 파일에서 변경하십시오. 그러면 Claude Code는 MCP 도구를 미리 로드합니다.

2363* 게이트웨이가 헤더를 삭제하는 경우, `anthropic-beta` 헤더를 전달하도록 게이트웨이를 구성하십시오. 게이트웨이가 전달해야 하는 항목은 [기능 패스스루](/docs/ko/llm-gateway-protocol#feature-pass-through)를 참조하십시오.

2364* 대안으로, 실행하기 전에 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/ko/env-vars)을 설정하십시오. 정확한 범위는 [사전 출시 기능 비활성화](/docs/ko/llm-gateway-protocol#disable-pre-release-capabilities)에서 다룹니다.

2310 2365 

2311* `anthropic-beta` 헤더를 전달하도록 게이트웨이를 구성합니다. 게이트웨이가 전달해야 하는 것에 대해서는 [기능 통과](/docs/ko/llm-gateway-protocol#feature-pass-through)를 참조하십시오.2366v2.1.302 이전에는 게이트웨이가 관여하지 않아도 이 오류가 `diagnostics` 필드를 명시할 수 있었습니다. 이는 이미 Anthropic API를 사용한 세션이 재시작 없이 Amazon Bedrock 또는 Google Cloud's Agent Platform으로 전환될 때 발생했습니다. 예를 들어 열어 둔 세션은 다른 Claude Code 창에서 [`/setup-bedrock`](/docs/ko/commands)을 실행하면 Bedrock으로 전환됩니다. 해당 버전에서는 그 세션에서 `/clear`를 실행하거나 세션을 재시작하십시오.

2312* 폴백으로, 시작하기 전에 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/ko/env-vars)을 설정합니다. [사전 릴리스 기능 비활성화](/docs/ko/llm-gateway-protocol#disable-pre-release-capabilities)에서 정확한 범위를 다룹니다.

2313 2367 

2314### 도구 입력 스키마가 유효하지 않습니다2368### Tool input schema is invalid

2315 2369 

2316요청의 도구가 API의 JSON Schema 검증에 실패하는 `input_schema`를 선언했으므로 API가 전체 요청을 거부했습니다. `tools.` 뒤의 숫자는 요청의 도구 목록에서 실패한 도구의 위치이며 조회할 수 있는 이름이 아닙니다.2370요청에 포함된 도구가 API의 JSON Schema 검증을 통과하지 못하는 `input_schema`를 선언했기 때문에 API가 요청 전체를 거부했습니다. `tools.` 뒤의 숫자는 요청의 도구 목록에서 실패한 도구의 위치이며, 조회할 수 있는 이름이 아닙니다.

2317 2371 

2318```text theme={null}2372```text theme={null}

2319API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid2373API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid

2320API Error: 400 ... tools.N.custom.input_schema.properties: Property keys should match pattern '^[a-zA-Z0-9_.-]{1,64}$'2374API Error: 400 ... tools.N.custom.input_schema.properties: Property keys should match pattern '^[a-zA-Z0-9_.-]{1,64}$'

2321```2375```

2322 2376 

2323첫 번째 형식은 스키마가 유효한 JSON Schema draft 2020-12가 아님을 의미합니다. 두 번째는 최상위 속성 이름이 메시지가 인용하는 패턴과 일치하지 않음을 의미합니다.2377첫 번째 형태는 스키마가 유효한 JSON Schema draft 2020-12가 아니라는 뜻입니다. 두 번째 형태는 최상위 속성 이름이 메시지에 인용된 패턴과 일치하지 않는다는 뜻입니다.

2324 2378 

2325Claude Code는 서버의 도구를 로드할 때 [이 검증에 실패할 입력 스키마를 가진 MCP 도구를 제외](/docs/ko/mcp#tools-with-invalid-input-schemas)하므로, 요청에는 일반적으로 그러한 도구가 포함되지 않습니다.2379Claude Code는 서버의 도구를 로드할 때 [입력 스키마가 이 검증에 실패할 MCP 도구를 제외](/docs/ko/mcp#tools-with-invalid-input-schemas)하므로, 일반적으로 요청에 그런 도구가 포함되지 않습니다.

2326 2380 

2327[플래그 가져오기가 꺼진 배포](/docs/ko/env-vars#features-that-need-feature-flag-fetching)에서 또는 플래그가 한 번도 도착하지 않은 머신에서는 Claude Code가 거부될 도구를 서버의 로그에 기록하지만 그대로 보내므로 이 오류가 여전히 발생할 수 있습니다.2381[플래그 가져오기가 꺼진 배포](/docs/ko/env-vars#features-that-need-feature-flag-fetching)나 플래그를 한 번도 받지 못한 머신에서는 Claude Code가 어떤 도구가 거부될지를 서버 로그에 기록하지만 그래도 해당 도구를 보내므로, 이 오류가 여전히 발생할 수 있습니다.

2328 2382 

2329이 오류는 `$schema`에서 draft 2020-12 이외의 JSON Schema 방언을 선언하는 스키마를 가진 도구에서도 발생할 수 있습니다. Claude Code는 이러한 스키마를 JSON Schema 메타 스키마에 대해 확인하지 않지만 최상위 속성 이름 확인은 여전히 적용됩니다.2383스키마가 `$schema`에서 draft 2020-12 이외의 JSON Schema 방언을 선언한 도구에서도 이 오류가 발생할 수 있습니다. Claude Code는 이러한 스키마를 JSON Schema 메타 스키마와 대조하여 검사하지 않지만, 최상위 속성 이름 검사는 여전히 적용됩니다.

2330 2384 

2331v2.1.216 이전에는 어떤 배포에서도 제외 확인을 실행하지 않았습니다.2385v2.1.216 이전에는 어떤 배포에서도 제외 검사가 실행되지 않았습니다.

2332 2386 

2333**할 일:**2387**해결 방법:**

2334 2388 

2335* Claude Code 버전이 v2.1.216보다 이전이면 `claude update`를 실행합니다.2389* Claude Code 버전이 v2.1.216 이전이면 `claude update`를 실행합니다.

2336* 유효하지 않은 스키마를 선언하는 MCP 서버를 제거하거나 [비활성화](/docs/ko/mcp#disable-a-server-without-removing-it)합니다. 오류는 도구를 위치로만 표시합니다. v2.1.216 이상에서는 각 서버의 로그에서 입력 스키마가 거부될 도구를 표시하는 줄을 확인합니다. 그러한 도구를 표시하는 로그가 없으면 서버를 하나씩 비활성화합니다.2390* 유효하지 않은 스키마를 선언한 MCP 서버를 제거하거나 [비활성화](/docs/ko/mcp#disable-a-server-without-removing-it)합니다. 오류는 도구를 위치로만 표시합니다. v2.1.216 이상에서는 각 서버의 로그에서 입력 스키마가 거부될 도구를 명시하는 줄을 확인하십시오. 해당 도구를 명시하는 로그가 없으면 서버를 하나씩 비활성화해 보십시오.

2337* 서버를 유지 관리하는 경우 도구의 `input_schema`를 수정합니다. 스키마는 유효한 JSON Schema여야 하며 최상위 속성 이름은 1\~64자 길이여야 하고 ASCII 문자와 숫자, `_`, `.` 및 `-`만 사용해야 합니다. [유효하지 않은 입력 스키마를 가진 도구](/docs/ko/mcp#tools-with-invalid-input-schemas)를 참조하십시오.2391* 서버를 직접 관리한다면 도구의 `input_schema`를 수정하십시오. 스키마는 유효한 JSON Schema여야 하며, 최상위 속성 이름은 1\~64자 길이에 ASCII 문자와 숫자, `_`, `.`, `-`만 사용해야 합니다. [입력 스키마가 유효하지 않은 도구](/docs/ko/mcp#tools-with-invalid-input-schemas)를 참조하십시오.

2338 2392 

2339### MCP 도구 이름이 128자를 초과합니다2393### 128자를 초과하는 MCP 도구 이름

2340 2394 

2341MCP 서버가 `mcp__<server>__<tool>`과 같은 전체 이름이 API가 허용하는 128자보다 긴 도구를 나열합니다. Claude Code는 [해당 도구를 Claude에 보내는 도구에서 제외](/docs/ko/mcp#tools-with-names-longer-than-128-characters)하며, 서버의 다른 도구는 계속 작동합니다. 셸에서 `claude --debug`로 시작한 세션에서 Claude Code는 `~/.claude/debug/<session-id>.txt`의 디버그 로그에 다음 메시지를 기록합니다:2395MCP 서버가 `mcp__<server>__<tool>` 같은 전체 이름이 API가 허용하는 128자보다 긴 도구를 나열합니다. Claude Code는 [해당 도구를 Claude에게 보내는 도구 목록에서 제외](/docs/ko/mcp#tools-with-names-longer-than-128-characters)하며, 서버의 다른 도구는 계속 작동합니다. 셸에서 `claude --debug`로 시작한 세션에서는 Claude Code가 `~/.claude/debug/<session-id>.txt`의 디버그 로그에 다음 메시지를 기록합니다.

2342 2396 

2343```text theme={null}2397```text theme={null}

2344Tool "mcp__<server>__<tool>" is not sent to Claude: its name has <N> characters and the API accepts at most 1282398Tool "mcp__<server>__<tool>" is not sent to Claude: its name has <N> characters and the API accepts at most 128

2345```2399```

2346 2400 

2347**할 일:**2401**해결 방법:**

2348 2402 

2349* 서버를 유지 관리하는 경우 도구의 이름을 줄입니다.2403* 서버를 직접 관리한다면 도구 이름을 줄이십시오.

2350* 서버가 [MCP 구성](/docs/ko/mcp#mcp-installation-scopes)에 있는 경우 그곳에서 `analytics-database` 대신 `db`처럼 더 짧은 이름을 지정합니다. 그런 다음 [권한 규칙](/docs/ko/permissions#mcp) 및 [훅 matcher](/docs/ko/hooks#match-mcp-tools)처럼 이전 이름으로 서버나 해당 도구를 참조하는 항목을 업데이트합니다.2404* 서버가 [MCP 구성](/docs/ko/mcp#mcp-installation-scopes)에 있다면 그곳에서 `analytics-database` 대신 `db`처럼 더 짧은 이름을 지정하십시오. 그런 다음 [권한 규칙](/docs/ko/permissions#mcp)과 [훅 matcher](/docs/ko/hooks#match-mcp-tools)처럼 이전 이름으로 서버나 도구를 참조하는 항목을 업데이트하십시오.

2351* [플러그인이 서버를 번들로 포함](/docs/ko/mcp#plugin-provided-mcp-servers)하는 경우 도구의 전체 이름에는 플러그인 이름도 포함됩니다. 플러그인 유지 관리자에게 서버 또는 도구 이름을 줄이도록 요청합니다.2405* [플러그인이 서버를 번들로 포함](/docs/ko/mcp#plugin-provided-mcp-servers)하는 경우 도구의 전체 이름에 플러그인 이름도 포함됩니다. 플러그인 관리자에게 서버 또는 도구 이름을 줄여 달라고 요청하십시오.

2352 2406 

2353v2.1.292 이전에는 Claude Code가 그래도 도구를 보냈고, API는 이를 포함하는 모든 요청을 `API Error: 400 ... tools.N.custom.name: String should have at most 128 characters`로 거부했습니다.2407v2.1.292 이전에는 Claude Code가 그래도 도구를 보냈고, API는 해당 도구가 포함된 모든 요청을 `API Error: 400 ... tools.N.custom.name: String should have at most 128 characters`로 거부했습니다.

2354 2408 

2355### tool\_use.name이 200자를 초과합니다2409### 200자를 초과하는 tool\_use.name

2356 2410 

2357대화 기록의 도구 호출이 API가 요청에서 허용하는 200자보다 긴 이름을 포함합니다:2411대화 기록의 도구 호출이 API가 요청에서 허용하는 200자보다 긴 이름을 가지고 있습니다.

2358 2412 

2359```text theme={null}2413```text theme={null}

2360API Error: 400 ... tool_use.name: String should have at most 200 characters2414API Error: 400 ... tool_use.name: String should have at most 200 characters

2361```2415```

2362 2416 

2363Claude Code는 응답이 도착할 때와 저장된 대화를 로드할 때 이러한 이름을 200자로 자릅니다. 따라서 호출은 [`No such tool available`](#no-such-tool-available) 도구 오류로 실패하고 대화는 이 API 오류 없이 계속됩니다.2417Claude Code는 응답이 도착할 때와 저장된 대화를 로드할 때 이런 이름을 200자로 자르므로, 해당 호출은 [`No such tool available`](#no-such-tool-available) 도구 오류로 실패하고 대화는 이 API 오류 없이 계속됩니다.

2364 2418 

2365**할 일:**2419**해결 방법:**

2366 2420 

2367* `claude update`를 실행한 다음 대화를 재개합니다. 업데이트된 버전은 트랜스크립트를 로드할 때 과도하게 긴 이름을 복구하므로 막혔던 대화가 다시 작동합니다.2421* `claude update`를 실행한 후 대화를 재개합니다. 업데이트된 버전은 트랜스크립트를 로드할 때 너무 긴 이름을 복구하므로, 멈춰 있던 대화가 다시 작동합니다.

2368 2422 

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

2370 2424 

2371### There's an issue with the selected model2425### There's an issue with the selected model

2372 2426 

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

2374 2428 

2375```text theme={null}2429```text theme={null}

2376There's an issue with the selected model (claude-...). It may not exist or you may not have access to it. Run /model to pick a different model.2430There's an issue with the selected model (claude-...). It may not exist or you may not have access to it. Run /model to pick a different model.

2377```2431```

2378 2432 

2379**할 일:**2433**해결 방법:**

2380 2434 

2381* **대화형 CLI**: `/model`을 실행하여 계정에서 사용 가능한 모델 중에서 선택합니다.2435* **대화형 CLI**: `/model`을 실행하여 계정에서 사용할 수 있는 모델 중에서 선택합니다.

2382* **비대화형 모드(`-p`)**: 유효한 별칭 또는 ID로 `--model`을 전달하거나 [`ANTHROPIC_MODEL`](/docs/ko/env-vars)을 설정합니다. 이 사용 환경에서는 오류 텍스트에 `Run --model`이 표시됩니다.2436* **비대화형 모드(`-p`)**: 유효한 별칭이나 ID와 함께 `--model`을 전달하거나 [`ANTHROPIC_MODEL`](/docs/ko/env-vars)을 설정합니다. 이 사용 환경에서는 오류 텍스트에 `Run --model`이 표시됩니다.

2383* **Agent SDK**: 모델이 프로그래밍 방식으로 설정되므로 오류 텍스트는 힌트를 생략합니다. TypeScript에서 [`Options`의 `model`](/docs/ko/agent-sdk/typescript#options)을 설정하거나 Python에서 [`ClaudeAgentOptions(model=...)`](/docs/ko/agent-sdk/python#claudeagentoptions)을 설정하고, 구조화된 `model_not_found` 오류를 처리하여 자체 재시도 또는 모델 선택기를 표시합니다.2437* **Agent SDK**: 모델이 프로그래밍 방식으로 설정되므로 오류 텍스트에 힌트가 생략됩니다. TypeScript에서는 [`Options`의 `model`](/docs/ko/agent-sdk/typescript#options)을, Python에서는 [`ClaudeAgentOptions(model=...)`](/docs/ko/agent-sdk/python#claudeagentoptions)을 설정하고, 구조화된 `model_not_found` 오류를 처리하여 자체 재시도나 모델 선택기를 제공하십시오.

2384* 전체 버전 ID 대신 `sonnet` 또는 `opus`와 같은 별칭을 사용합니다. 별칭은 유지 관리되는 기본값으로 확인되므로 오래된 값이 되지 않습니다. [모델 구성](/docs/ko/model-config)을 참조하십시오.2438* 버전이 포함된 전체 ID 대신 `sonnet`이나 `opus` 같은 별칭을 사용하십시오. 별칭은 관리되는 기본값으로 해석되므로 오래되지 않습니다. [모델 구성](/docs/ko/model-config)을 참조하십시오.

2385* 잘못된 모델이 CLI에서 계속 다시 나타나면 어딘가에 오래된 ID가 설정되어 있습니다. [우선순위 순서](/docs/ko/model-config#setting-your-model)대로 모델을 설정할 수 있는 위치를 확인하고 오래된 값을 제거합니다.2439* CLI에서 잘못된 모델이 계속 다시 나타난다면 어딘가에 오래된 ID가 설정되어 있는 것입니다. 모델을 설정할 수 있는 위치를 [우선순위 순서](/docs/ko/model-config#setting-your-model)대로 확인하고 오래된 값을 제거하십시오.

2386* Claude Code는 만료된 claude.ai 로그인을 이 오류가 아닌 [로그인 만료됨](#login-expired)으로 보고합니다. v2.1.206 이전에는 더 이상 새로 고칠 수 없는 만료된 로그인으로 인해 모든 모델이 이 오류로 실패했습니다. 이전 버전에서 이를 보면 `/login`을 실행합니다.2440* Claude Code는 만료된 claude.ai 로그인을 이 오류가 아닌 [Login expired](#login-expired)로 보고합니다. v2.1.206 이전에는 더 이상 갱신할 수 없는 만료된 로그인이 모든 모델에서 이 오류로 실패했습니다. 이전 버전에서 이 현상이 나타나면 `/login`을 실행하십시오.

2387* Google Cloud의 Agent Platform 배포의 경우 [Google Cloud의 Agent Platform 문제 해결](/docs/ko/google-vertex-ai#troubleshooting)을 참조하십시오.2441* [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)이 [LLM 게이트웨이](/docs/ko/llm-gateway)를 가리키고 모든 모델이 이런 방식으로 실패한다면, 게이트웨이가 Claude Code가 기본적으로 보내는 도구 검색 필드를 거부하고 있는지 확인하세요. 확인하려면 [LLM 게이트웨이를 통한 도구 검색](/docs/ko/mcp#tool-search-through-a-gateway)에 설명된 대로 `ENABLE_TOOL_SEARCH=false`를 설정한 후 다시 시도하세요. v2.1.304 이전에는 `ENABLE_TOOL_SEARCH`로 켜지 않는 한 게이트웨이 뒤에서 도구 검색이 꺼져 있었습니다.

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

2388 2443 

2389### Model is not a recognized model id2444### Model is not a recognized model id

2390 2445 

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

2392 2447 

2393```text theme={null}2448```text theme={null}

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

2395```2450```

2396 2451 

2397이 예에서는 앱이 표시 이름 `Sonnet 5`를 보냈으며, 메시지는 이를 공백 없이 반복합니다. 뒤따르는 힌트는 가장 가깝게 일치하는 별칭 또는 모델 ID를 표시합니다. 충분히 가까운 것이 없으면 대신 `Run /model to see available models.`로 표시됩니다. [Desktop 앱](/docs/ko/desktop)이 시작하는 세션에서는 일치하는 항목이 없을 때의 힌트가 `Switch to a different model.`로 표시됩니다.2452이 예에서는 앱이 표시 이름 `Sonnet 5`를 보냈고, 메시지는 이를 공백 없이 반복합니다. 끝부분의 힌트는 가장 가깝게 일치하는 별칭이나 모델 ID를 표시합니다. 충분히 가까운 항목이 없으면 대신 `Run /model to see available models.`가 표시됩니다. [Desktop 앱](/docs/ko/desktop)이 시작한 세션에서는 일치 항목이 없을 때의 힌트가 `Switch to a different model.`로 표시됩니다.

2398 2453 

2399Anthropic API에서 Agent SDK 또는 앱을 통해 전환하는 경우, 표시 이름이나 빈 문자열처럼 모델 ID가 될 수 없는 문자열만 이 오류를 받습니다.2454Anthropic API에서 Agent SDK나 앱을 통해 전환할 때는 표시 이름이나 빈 문자열처럼 모델 ID가 될 수 없는 문자열만 이 오류가 발생합니다.

2400 2455 

2401Remote Control 장치에서 모델을 선택하면 Claude Code가 문자열을 로컬에서 확인합니다. 모델 별칭, Claude Code가 나열하거나 사용자가 구성한 모델, 또는 `claude-`로 시작하는 ID가 아닌 모든 문자열은 이 오류를 받으며, `claud-sonnet-5`와 같이 오타가 있는 ID도 포함됩니다. v2.1.260 이전에는 이 확인이 Remote Control 선택을 다루지 않았으므로 인식되지 않은 문자열이 적용되어 다음 요청에서 실패했습니다.2456Remote Control 기기에서 모델을 선택하면 Claude Code가 문자열을 로컬에서 검사합니다. 모델 별칭, Claude Code가 나열하거나 사용자가 구성한 모델, 또는 `claude-`로 시작하는 ID가 아닌 모든 문자열은 이 오류가 발생하며, `claud-sonnet-5` 같은 오타가 있는 ID도 포함됩니다. v2.1.260 이전에는 이 검사가 Remote Control 선택을 다루지 않았기 때문에, 인식되지 않은 문자열이 적용된 후 다음 요청에서 실패했습니다.

2402 2457 

2403**할 일:**2458**해결 방법:**

2404 2459 

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

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

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

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

2409 2464 

2410### Model not found2465### Model not found

2411 2466 

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

2413 2468 

2414```text theme={null}2469```text theme={null}

2415Model 'claude-opus-9' not found2470Model 'claude-opus-9' not found

2416```2471```

2417 2472 

2418제공자별 모델 ID를 사용하는 제공자에서는 메시지에 대체 모델의 제공자 ID를 표시하는 `Try '...' instead` 제안이 추가될 수 있습니다.2473공급자별 모델 ID를 사용하는 공급자에서는 메시지에 공급자의 대체 모델 ID를 명시하는 `Try '...' instead` 제안이 추가될 수 있습니다.

2419 2474 

2420**할 일:**2475**해결 방법:**

2421 2476 

2422* 인수 없이 `/model`을 실행하고 계정에서 사용 가능한 모델 중에서 선택하거나, 유지 관리되는 기본값으로 확인되는 `sonnet`과 같은 [모델 별칭](/docs/ko/model-config#model-aliases)을 사용합니다.2477* 인수 없이 `/model`을 실행하고 계정에서 사용할 수 있는 모델 중에서 선택하거나, 관리되는 기본값으로 해석되는 `sonnet` 같은 [모델 별칭](/docs/ko/model-config#model-aliases)을 사용합니다

2423* 전체 ID를 입력한 경우 제공자의 모델 카탈로그와 대조해 확인합니다. 새로 출시된 모델은 제공자나 리전에서 제공되기 전에 Anthropic API에서 먼저 사용 가능할 수 있습니다.2478* 전체 ID를 입력했다면 공급자의 모델 카탈로그와 대조하여 확인합니다. 새로 출시된 모델은 공급자나 리전에서 제공되기 전에 Anthropic API에서 먼저 사용 가능할 수 있습니다.

2424* Agent SDK에서 `setModel()`은 이 메시지로 실패하고 세션은 이전 모델에서 계속 실행됩니다. TypeScript SDK에서는 [`supportedModels()`](/docs/ko/agent-sdk/typescript#query-object)를 호출하여 전환할 수 있는 모델을 나열합니다.2479* Agent SDK에서는 `setModel()`이 이 메시지로 실패하고 세션은 이전 모델로 계속 실행됩니다. TypeScript SDK에서는 [`supportedModels()`](/docs/ko/agent-sdk/typescript#query-object)를 호출하여 전환할 수 있는 모델 목록을 확인하십시오.

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

2426 2481 

2427### Couldn't confirm model with the API2482### Couldn't confirm model with the API

2428 2483 

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

2430 2485 

2431```text theme={null}2486```text theme={null}

2432Couldn't confirm model "claude-sonnet-5" with the API. Try again, or run /model to see available models.2487Couldn't confirm model "claude-sonnet-5" with the API. Try again, or run /model to see available models.

2433```2488```

2434 2489 

2435[Desktop 앱](/docs/ko/desktop)이 시작하는 세션에서는 메시지가 `Try again.`에서 끝납니다.2490[Desktop 앱](/docs/ko/desktop)이 시작한 세션에서는 메시지가 `Try again.`에서 끝납니다.

2436 2491 

2437**할 일:**2492**해결 방법:**

2438 2493 

2439* 모델로 다시 전환합니다.2494* 모델로 다시 전환합니다

2440* 전환이 계속 실패하면 Claude Code가 API 엔드포인트에 연결할 수 있는지 확인합니다. [네트워크 및 연결 오류](#network-and-connection-errors)를 참조하십시오.2495* 전환이 계속 실패하면 Claude Code가 API 엔드포인트에 연결할 수 있는지 확인하십시오. [네트워크 및 연결 오류](#network-and-connection-errors)를 참조하십시오

2441 2496 

2442### 선택한 모델을 확인할 때 API 오류2497### 선택한 모델 확인 중 API 오류

2443 2498 

2444`/model <name>`으로 모델을 선택했거나 세션에 연결된 앱이 전환을 요청했습니다. Claude Code가 모델을 확인하기 위해 보내는 최소 요청을 API가 별도 항목이 없는 이유(예: 속도 제한 또는 서버 오류)로 거부했습니다. 세션은 현재 모델을 유지하며, 메시지 끝에 그 사실이 표시됩니다:2499`/model <name>`으로 모델을 선택했거나, 세션에 연결된 앱이 전환을 요청했습니다. API가 속도 제한이나 서버 오류처럼 별도 항목이 없는 이유로, Claude Code가 모델 확인을 위해 보내는 최소한의 요청을 거부했습니다. 세션은 현재 모델을 유지하며, 메시지 끝에 그 사실이 표시됩니다.

2445 2500 

2446```text theme={null}2501```text theme={null}

2447API error: 429 <the server's explanation> · model not changed2502API error: 429 <the server's explanation> · model not changed

2448```2503```

2449 2504 

2450메시지의 중간 부분은 HTTP 상태와 서버 자체의 설명입니다.2505메시지 중간 부분은 HTTP 상태와 서버 자체의 설명입니다.

2451 2506 

2452**할 일:**2507**해결 방법:**

2453 2508 

2454* 서버의 설명에 따라 조치합니다. 속도 제한 또는 5xx 상태의 경우 기다렸다가 모델을 다시 선택합니다.2509* 서버의 설명에 따라 조치합니다. 속도 제한이나 5xx 상태인 경우 잠시 기다린 후 모델을 다시 선택합니다

2455* 고유한 문구가 있는 거부는 [Model not found](#model-not-found) 및 [Model is restricted by your organization's settings](#model-is-restricted-by-your-organizations-settings)와 같은 주변 항목에서 다룹니다.2510* 고유한 문구가 있는 거부는 [Model not found](#model-not-found)와 [Model is restricted by your organization's settings](#model-is-restricted-by-your-organizations-settings) 같은 주변 항목에서 다룹니다

2456 2511 

2457### Claude Opus is not available with the Claude Pro plan2512### Claude Opus is not available with the Claude Pro plan

2458 2513 

2459활성 구독 플랜에 선택한 모델이 포함되지 않습니다.2514현재 구독 플랜에 선택한 모델이 포함되어 있지 않습니다.

2460 2515 

2461```text theme={null}2516```text theme={null}

2462Claude Opus is not available with the Claude Pro plan. If you have updated your subscription plan recently, run /logout and /login for the plan to take effect.2517Claude Opus is not available with the Claude Pro plan. If you have updated your subscription plan recently, run /logout and /login for the plan to take effect.

2463```2518```

2464 2519 

2465Claude Desktop 앱이 실행하는 세션에서는 메시지가 명령을 표시하는 대신 `sign out and sign in again`이라고 안내합니다.2520Claude Desktop 앱이 실행하는 세션에서는 메시지가 명령 이름 대신 `sign out and sign in again`이라고 안내합니다.

2466 2521 

2467**할 일:**2522**해결 방법:**

2468 2523 

2469* `/model`을 실행하고 플랜에 포함된 모델을 선택합니다.2524* `/model`을 실행하고 플랜에 포함된 모델을 선택합니다

2470* 최근에 플랜을 업그레이드했는데도 여전히 이 메시지가 표시되면 `/logout`을 실행한 다음 `/login`을 실행합니다. 저장된 토큰은 로그인 시점의 플랜을 반영하므로 claude.ai에서 업그레이드해도 다시 인증할 때까지 기존 세션에는 적용되지 않습니다.2525* 최근에 플랜을 업그레이드했는데도 이 메시지가 나타나면 `/logout`을 실행한 후 `/login`을 실행합니다. 저장된 토큰은 로그인 시점의 플랜을 반영하므로, claude.ai에서 업그레이드해도 다시 인증하기 전까지 기존 세션에는 적용되지 않습니다.

2471* 각 플랜에 포함된 모델에 대해서는 [claude.com/pricing](https://claude.com/pricing)을 참조하십시오.2526* 각 플랜에 포함된 모델은 [claude.com/pricing](https://claude.com/pricing)을 참조하십시오

2472 2527 

2473### Claude Code does not support this model2528### Claude Code does not support this model

2474 2529 

2475Claude Code 버전이 필요한 최소 버전보다 낮기 때문에 API가 400으로 요청을 거부했습니다. 선택한 모델이 더 최신 버전을 요구하거나(서버가 모델별로 확인), 조직의 정책이 이를 요구합니다. 400에는 오류 코드 `claude_code_version_too_old`가 포함되며, 메시지에 어떤 최소 버전이 적용되는지 표시됩니다.2530Claude Code 버전이 요구되는 최소 버전보다 낮아서 API가 400으로 요청을 거부했습니다. 선택한 모델이 서버가 모델별로 검사하는 더 새로운 버전을 요구하거나, 조직 정책이 특정 버전을 요구하는 경우입니다. 400에는 오류 코드 `claude_code_version_too_old`가 포함되며, 메시지에 어떤 최소 버전이 적용되는지 표시됩니다.

2476 2531 

2477```text theme={null}2532```text theme={null}

2478API Error: 400 Claude Code 2.1.219 does not support this model; version 2.1.255 or newer is required. Run 'claude update', or update the Claude desktop app, then try again.2533API Error: 400 Claude Code 2.1.219 does not support this model; version 2.1.255 or newer is required. Run 'claude update', or update the Claude desktop app, then try again.

2479```2534```

2480 2535 

2481조직 정책 문구는 다음과 같습니다:2536조직 정책 문구는 다음과 같습니다.

2482 2537 

2483```text theme={null}2538```text theme={null}

2484API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.2539API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.

2485```2540```

2486 2541 

2487API가 확인하는 버전은 요청을 보낸 Claude Code 바이너리가 보고하는 버전입니다.2542API가 검사하는 버전은 요청을 보낸 Claude Code 바이너리가 보고하는 버전입니다.

2488 2543 

2489**할 일:**2544**해결 방법:**

2490 2545 

2491해당 바이너리를 업데이트한 다음 새 세션을 시작합니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments-deploy#pin-the-version)을 제외하면 업데이트 방법은 바이너리의 출처에 따라 결정됩니다:2546해당 바이너리를 업데이트한 후 새 세션을 시작하십시오. [자체 호스팅 환경](/docs/ko/self-hosted-environments-deploy#pin-the-version)을 제외하면, 바이너리의 출처에 따라 업데이트 방법이 결정됩니다.

2492 2547 

2493| 요청을 보낸 바이너리 | 업데이트 방법 |2548| 요청을 보낸 바이너리 | 업데이트 방법 |

2494| :- | :- |2549| :- | :- |

2495| 설치한 Claude Code | `claude update` 실행 |2550| 직접 설치한 Claude Code | `claude update` 실행 |

2496| Claude Desktop 앱 | 앱 업데이트 |2551| Claude desktop 앱 | 앱 업데이트 |

2497| [VS Code 확장](/docs/ko/vs-code)에 번들로 포함된 바이너리 | 확장 업데이트 |2552| [VS Code 확장](/docs/ko/vs-code)에 번들로 포함된 바이너리 | 확장 업데이트 |

2498| Agent SDK 패키지에 번들로 포함된 바이너리 | [SDK 패키지 업그레이드](/docs/ko/agent-sdk/hosting#runtime-dependencies) 후 애플리케이션 다시 시작. [컴파일된 단일 파일 실행 파일](/docs/ko/agent-sdk/typescript#compile-to-a-single-executable)에서는 다시 빌드 |2553| Agent SDK 패키지에 번들로 포함된 바이너리 | [SDK 패키지를 업그레이드](/docs/ko/agent-sdk/hosting#runtime-dependencies)한 후 애플리케이션을 재시작합니다. [컴파일된 단일 파일 실행 파일](/docs/ko/agent-sdk/typescript#compile-to-a-single-executable)의 경우 다시 빌드합니다 |

2499 2554 

2500* [stable 릴리스 채널](/docs/ko/setup#configure-release-channel)에서 `claude update`를 실행하면 최신 stable 릴리스 이후로는 이동하지 않으며, 이 릴리스는 여전히 필요한 최소 버전보다 낮을 수 있습니다. latest 채널로 이동한 다음 다시 업데이트합니다. 조직이 [관리형 설정](/docs/ko/managed-settings)을 통해 채널이나 버전을 고정하는 경우 관리자에게 변경을 요청합니다.2555* [stable 릴리스 채널](/docs/ko/setup#configure-release-channel)에서 `claude update`를 실행하면 최신 stable 릴리스보다 더 새로운 버전으로 이동하지 않으며, 이 릴리스도 요구되는 최소 버전보다 낮을 수 있습니다. latest 채널로 이동한 후 다시 업데이트하십시오. 조직이 [관리형 설정](/docs/ko/managed-settings)으로 채널이나 버전을 고정한 경우 관리자에게 변경을 요청하십시오

2501* 모델별 문구의 경우 다른 모델로 전환하여 현재 세션에서 계속 작업할 수 있습니다: CLI에서 `/model`을 실행하거나, 스트리밍 입력 모드에서 TypeScript SDK의 `Query` 객체에서 [`setModel()`](/docs/ko/agent-sdk/typescript#query-object)을 호출하거나, Python SDK의 `ClaudeSDKClient`에서 [`set_model()`](/docs/ko/agent-sdk/python#claudesdkclient)을 호출합니다.2556* 모델별 문구의 경우 다른 모델로 전환하여 현재 세션에서 계속 작업할 수 있습니다. CLI에서는 `/model`을 실행하고, 스트리밍 입력 모드에서는 TypeScript SDK의 `Query` 객체에서 [`setModel()`](/docs/ko/agent-sdk/typescript#query-object)을, Python SDK의 `ClaudeSDKClient`에서 [`set_model()`](/docs/ko/agent-sdk/python#claudesdkclient)을 호출하십시오

2502* 조직 정책 문구의 경우 계속하기 전에 업데이트합니다.2557* 조직 정책 문구의 경우 계속하기 전에 업데이트하십시오

2503 2558 

2504### Model is restricted by your organization's settings2559### Model is restricted by your organization's settings

2505 2560 

2506조직 관리자가 claude.ai 관리자 콘솔에서 이 모델을 비활성화했거나, 관리형 설정이 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 허용 목록 또는 [`deniedModels`](/docs/ko/model-config#block-specific-models-or-versions) 목록을 통해 이 모델을 제외합니다. 이 알림은 `--model`, `ANTHROPIC_MODEL` 또는 `model` 설정이 제한된 모델을 지정했을 때 시작 시 나타나며, 세션이 대신 사용하는 모델을 표시합니다. 관리형 설정이 세션에서 사용할 수 있는 허용된 모델을 남기지 않는 경우 [관리형 설정이 기본 모델을 차단합니다](#managed-settings-block-the-default-model)를 참조하십시오. 대체 알림은 관리자가 claude.ai 관리자 콘솔에서 세션이 실행 중인 모델을 비활성화한 후 세션 도중에도 나타날 수 있습니다.2561조직 관리자가 claude.ai 관리 콘솔에서 이 모델을 비활성화했거나, 관리형 설정이 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 허용 목록이나 [`deniedModels`](/docs/ko/model-config#block-specific-models-or-versions) 목록으로 이 모델을 제외했습니다. 이 알림은 `--model`, `ANTHROPIC_MODEL` 또는 `model` 설정이 제한된 모델을 지정했을 때 시작 시 표시되며, 세션이 대신 사용하는 모델을 명시합니다. 관리형 설정으로 인해 세션이 사용할 수 있는 허용된 모델이 없는 경우 [관리형 설정이 기본 모델을 차단하는 경우](#managed-settings-block-the-default-model)를 참조하십시오. 관리자가 claude.ai 관리 콘솔에서 세션이 실행 중인 모델을 비활성화하면 세션 도중에도 대체 알림이 표시될 수 있습니다.

2507 2562 

2508```text theme={null}2563```text theme={null}

2509Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.2564Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.

2510```2565```

2511 2566 

2512제한된 모델에 대해 `/model <name>`을 입력하면 거부되고 세션은 현재 모델을 유지합니다. 관리자 콘솔에서 비활성화된 모델의 경우 거부 메시지는 `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.`입니다. 관리형 설정이 제외하는 모델의 경우 `Model '<name>' is not available. Your organization restricts model selection.`입니다.2567제한된 모델에 대해 `/model <name>`을 입력하면 거부되고 세션은 현재 모델을 유지합니다. 관리 콘솔에서 비활성화된 모델의 경우 거부 메시지는 `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.`입니다. 관리형 설정이 제외한 모델의 경우 `Model '<name>' is not available. Your organization restricts model selection.`입니다.

2513 2568 

2514알림 앞에 에이전트, 스킬 또는 명령 이름이 붙어 있으면 제한이 해당 [서브에이전트의 요청된 모델](/docs/ko/sub-agents#choose-a-model)에 적용되었음을 의미합니다: 서브에이전트는 대체 모델에서 실행되고 세션의 모델은 변경되지 않습니다. v2.1.223 이전에는 Claude Code가 Agent 도구로 시작된 서브에이전트에 대해서만 알림을 표시했습니다.2569에이전트, 스킬 또는 명령 이름이 앞에 붙은 알림은 제한이 해당 [서브에이전트가 요청한 모델](/docs/ko/sub-agents#choose-a-model)에 적용되었다는 뜻입니다. 서브에이전트는 대체된 모델에서 실행되고 세션의 모델은 변경되지 않습니다. v2.1.223 이전에는 Claude Code가 Agent 도구로 실행된 서브에이전트에 대해서만 이 알림을 표시했습니다.

2515 2570 

2516Claude Code는 모델 패밀리 별칭(`opus`, `sonnet`, `haiku`, `fable` 중 하나)을 최신 버전이 아닌 해당 패밀리에 대한 요청으로 취급합니다. Anthropic API 및 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)에서 제한된 패밀리 별칭은 조직의 설정이 허용하는 해당 패밀리의 최신 버전으로 확인되며, 대체 알림은 해당 버전을 표시합니다. Claude Code는 패밀리의 모든 버전이 제한된 경우에만 `/model <alias>`를 거부합니다. v2.1.205 이전에는 같은 패밀리의 이전 버전이 허용되더라도 패밀리 별칭이 최신 버전만을 기준으로 대체되거나 거부되었습니다.2571Claude Code는 `opus`, `sonnet`, `haiku`, `fable` 중 하나인 모델 패밀리 별칭을 최신 버전이 아닌 해당 패밀리에 대한 요청으로 처리합니다. Anthropic API와 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)에서는 제한된 패밀리 별칭이 조직 설정에서 허용하는 해당 패밀리의 최신 버전으로 해석되며, 대체 알림에 해당 버전이 표시됩니다. Claude Code는 패밀리의 모든 버전이 제한된 경우에만 `/model <alias>`를 거부합니다. v2.1.205 이전에는 같은 패밀리의 이전 버전이 허용되더라도 패밀리 별칭이 최신 버전만을 기준으로 대체되거나 거부되었습니다.

2517 2572 

2518**할 일:**2573**해결 방법:**

2519 2574 

2520* `/model`을 실행하여 조직이 허용하는 모델 중에서 선택합니다. 제한된 모델은 선택기에서 숨겨집니다.2575* `/model`을 실행하여 조직이 허용하는 모델 중에서 선택합니다. 제한된 모델은 선택기에 표시되지 않습니다.

2521* 제한된 모델이 `--model`, `ANTHROPIC_MODEL`, 설정 파일의 `model` 필드 또는 [서브에이전트](/docs/ko/sub-agents#choose-a-model), 스킬 또는 명령의 `model` frontmatter에 설정된 경우 해당 값을 제거하거나 업데이트하여 알림이 반복되지 않도록 합니다.2576* 제한된 모델이 `--model`, `ANTHROPIC_MODEL`, 설정 파일의 `model` 필드, 또는 [서브에이전트](/docs/ko/sub-agents#choose-a-model), 스킬, 명령의 `model` frontmatter에 설정되어 있다면, 알림이 반복되지 않도록 해당 값을 제거하거나 업데이트하십시오

2522* 제한된 모델에 액세스해야 하는 경우 조직 관리자에게 활성화를 요청합니다. [조직 모델 제한](/docs/ko/model-config#organization-model-restrictions)을 참조하십시오.2577* 제한된 모델에 액세스해야 한다면 조직 관리자에게 활성화를 요청하십시오. [조직 모델 제한](/docs/ko/model-config#organization-model-restrictions)을 참조하십시오.

2523 2578 

2524### Can't switch to the default model2579### Can't switch to the default model

2525 2580 

2526기본 모델을 선택했습니다. 예를 들어 `/model` 선택기에서 Default 행을 선택하거나 `/model default`를 입력했습니다. Claude Code가 전환을 거부했으므로 세션은 현재 모델을 유지합니다.2581`/model` 선택기에서 Default 행을 선택하거나 `/model default`를 입력하는 등의 방법으로 Default 모델을 선택했습니다. Claude Code가 전환을 거부했으므로 세션은 현재 모델을 유지합니다.

2527 2582 

2528```text theme={null}2583```text theme={null}

2529Can't switch to the default model: your organization's managed settings block it (claude-opus-4-6) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableModels".2584Can't switch to the default model: your organization's managed settings block it (claude-opus-4-6) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableModels".

2530```2585```

2531 2586 

2532콜론 뒤의 문구는 무엇이 전환을 차단했는지 나타냅니다:2587콜론 뒤의 문구는 전환을 차단한 원인을 나타냅니다.

2533 2588 

2534* **`your organization's managed settings block it ... in "deniedModels"`**: 관리형 거부 목록이 Default 옵션이 확인되는 모델을 차단합니다.2589* **`your organization's managed settings block it ... in "deniedModels"`**: 관리형 거부 목록이 Default 옵션이 해석되는 모델을 차단합니다

2535* **`your organization allows only the models listed in "availableModels"`**: [`availableModelsMatch`](/docs/ko/settings-reference#availablemodelsmatch)가 `"exact"`로 설정된 관리형 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 허용 목록이 Default 옵션이 확인되는 모델을 제외합니다.2590* **`your organization allows only the models listed in "availableModels"`**: [`availableModelsMatch`](/docs/ko/settings-reference#availablemodelsmatch)가 `"exact"`로 설정된 관리형 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 허용 목록에 Default 옵션이 해석되는 모델이 없습니다

2536* **`Claude Code couldn't read your organization's managed settings to check which models they allow`**: [관리형 설정](/docs/ko/managed-settings)을 읽을 수 없었고, Claude Code는 확인되지 않은 전환을 적용하는 대신 거부합니다.2591* **`Claude Code couldn't read your organization's managed settings to check which models they allow`**: [관리형 설정](/docs/ko/managed-settings)을 읽을 수 없어서, Claude Code가 확인 없이 전환을 적용하는 대신 거부했습니다

2537 2592 

2538**할 일:**2593**해결 방법:**

2539 2594 

2540* [`deniedModels`](/docs/ko/settings-reference#deniedmodels) 및 `availableModels` 문구의 경우 `/model`을 실행하고 조직이 허용하는 모델을 이름으로 선택합니다.2595* [`deniedModels`](/docs/ko/settings-reference#deniedmodels) 및 `availableModels` 문구의 경우 `/model`을 실행하고 조직이 허용하는 모델을 이름으로 선택합니다

2541* 관리자에게 메시지가 지정하는 관리형 설정을 업데이트하도록 요청합니다.2596* 관리자에게 메시지가 명시하는 관리형 설정을 업데이트해 달라고 요청합니다

2542* `couldn't read` 문구의 경우 Claude Code를 다시 시작합니다. 계속 발생하면 관리자에게 관리형 설정을 확인하도록 요청합니다.2597* `couldn't read` 문구의 경우 Claude Code를 재시작합니다. 계속 발생하면 관리자에게 관리형 설정을 확인해 달라고 요청하십시오

2543 2598 

2544이러한 관리형 설정에서 세션이 대신 `Claude Code can't start` 메시지와 함께 시작되지 않는 경우 [관리형 설정이 기본 모델을 차단합니다](#managed-settings-block-the-default-model)를 참조하십시오.2599이러한 관리형 설정에서 세션이 대신 `Claude Code can't start` 메시지와 함께 시작되지 않는 경우 [관리형 설정이 기본 모델을 차단하는 경우](#managed-settings-block-the-default-model)를 참조하십시오.

2545 2600 

2546### Model switch was blocked by a PreModelSwitch hook2601### Model switch was blocked by a PreModelSwitch hook

2547 2602 

2548[PreModelSwitch 훅](/docs/ko/hooks#premodelswitch)이 사용자 또는 클라이언트가 요청한 모델 전환을 승인하지 않았으므로 세션은 현재 모델을 유지합니다. 전환이 사용자가 입력한 명령이 아니라 [Agent SDK](/docs/ko/agent-sdk/overview) 호스트 또는 [Remote Control](/docs/ko/remote-control)에서 온 경우 메시지는 대상 모델을 표시하지 않고 `Model switch blocked by a PreModelSwitch hook`으로 표시됩니다.2603[PreModelSwitch 훅](/docs/ko/hooks#premodelswitch)이 사용자나 클라이언트가 요청한 모델 전환을 승인하지 않았으므로 세션은 현재 모델을 유지합니다. 직접 입력한 명령이 아니라 [Agent SDK](/docs/ko/agent-sdk/overview) 호스트나 [Remote Control](/docs/ko/remote-control)에서 전환이 요청된 경우, 메시지는 대상 모델을 명시하지 않고 `Model switch blocked by a PreModelSwitch hook`으로 표시됩니다.

2549 2604 

2550```text theme={null}2605```text theme={null}

2551Model switch to Opus 4.6 was blocked by a PreModelSwitch hook: Opus 4.6 is retired for this project. Use a newer model.2606Model switch to Opus 4.6 was blocked by a PreModelSwitch hook: Opus 4.6 is retired for this project. Use a newer model.

2552```2607```

2553 2608 

2554콜론 뒤의 이유는 무엇이 전환을 거부했는지 나타냅니다:2609콜론 뒤의 이유는 무엇이 전환을 거부했는지를 나타냅니다.

2555 2610 

2556* **훅이 작성한 이유**: PreModelSwitch 훅이 [전환을 거부하거나 확인을 요청](/docs/ko/hooks#premodelswitch-decision-control)할 때 해당 이유를 제공했습니다. 요청 내용을 해결하거나 훅이 허용하는 모델을 선택합니다.2611* **훅이 작성한 이유**: PreModelSwitch 훅이 [전환을 거부하거나 확인을 요청](/docs/ko/hooks#premodelswitch-decision-control)할 때 해당 이유를 제공했습니다. 요청 사항을 해결하거나 훅이 허용하는 모델을 선택하십시오.

2557* **`PreModelSwitch hook <name> did not respond before its timeout`**: [타임아웃](/docs/ko/hooks#timeouts) 전에 응답하지 않는 훅은 전환을 차단합니다. 멈춘 명령을 수정하거나 해당 훅의 `timeout`을 높인 다음 다시 전환합니다.2612* **`PreModelSwitch hook <name> did not respond before its timeout`**: [타임아웃](/docs/ko/hooks#timeouts) 전에 응답하지 않는 훅은 전환을 차단합니다. 멈춘 명령을 수정하거나 해당 훅의 `timeout`을 늘린 후 다시 전환하십시오.

2558* **`confirmation required, and this session cannot ask`**: 훅이 이유 없이 `ask`로 응답했으며, 제어 요청에는 확인 프롬프트를 표시할 방법이 없습니다. [`-p` 실행](/docs/ko/headless)의 `/model` 명령은 이유 뒤에 `(run /model interactively to confirm)`을 붙여 동일한 조건을 보고합니다. 대화형 세션에서 전환하거나 이 모델에 대한 훅의 결정을 변경합니다.2613* **`confirmation required, and this session cannot ask`**: 훅이 이유 없이 `ask`로 응답했으며, 제어 요청에는 확인 프롬프트를 표시할 방법이 없습니다. [`-p` 실행](/docs/ko/headless)의 `/model` 명령은 이유 뒤에 `(run /model interactively to confirm)`을 붙여 같은 상황을 보고합니다. 대화형 세션에서 전환하거나, 이 모델에 대한 훅의 결정을 변경하십시오.

2559* **`so organization-managed PreModelSwitch hooks could not be checked`**: Claude Code가 조직의 [관리형 플러그인](/docs/ko/settings-reference#enabledplugins)이 제공하는 PreModelSwitch 훅을 파악할 수 없었습니다. 예를 들어 관리형 플러그인이 로드되지 않은 경우입니다. 이러한 훅 중 하나가 전환을 차단할 수 있으므로 Claude Code는 확인되지 않은 전환을 적용하는 대신 거부합니다. 이유의 앞부분은 무엇이 실패했는지 나타냅니다. Claude Code는 모든 전환 시도마다 다시 확인하므로 이후 해소된 실패는 더 이상 차단하지 않습니다. 계속 실패하면 `claude --debug`를 실행하고 다시 전환하여 세부 정보를 캡처한 다음 플러그인을 수정하거나 관리자에게 수정을 요청합니다.2614* **`so organization-managed PreModelSwitch hooks could not be checked`**: 예를 들어 관리형 플러그인 로드가 실패하여, Claude Code가 조직의 [관리형 플러그인](/docs/ko/settings-reference#enabledplugins)이 제공하는 PreModelSwitch 훅을 확인할 수 없었습니다. 그 훅 중 하나가 전환을 차단할 수 있으므로, Claude Code는 확인 없이 전환을 적용하는 대신 거부합니다. 이유의 시작 부분에 무엇이 실패했는지 표시됩니다. Claude Code는 전환을 시도할 때마다 다시 확인하므로, 이미 해소된 실패는 더 이상 차단하지 않습니다. 계속 실패하면 `claude --debug`를 실행하고 다시 전환하여 세부 정보를 확인한 후, 플러그인을 수정하거나 관리자에게 수정을 요청하십시오.

2560* **`a PreModelSwitch hook failed before answering`** 또는 **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`**: 훅 실행이 판정 없이 끝났으며, Claude Code는 이를 승인으로 취급하지 않습니다. `claude --debug`를 실행하여 무엇이 실패했는지 확인한 다음 다시 전환합니다.2615* **`a PreModelSwitch hook failed before answering`** 또는 **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`**: 훅 실행이 판정 없이 종료되었으며, Claude Code는 이를 승인으로 처리하지 않습니다. `claude --debug`를 실행하여 무엇이 실패했는지 확인한 후 다시 전환하십시오.

2561 2616 

2562v2.1.260 이전에는 관리형 플러그인 거부 메시지가 `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`였습니다. Claude Code는 플러그인 로드를 한 번 재시도한 다음, 조직이 관리하는 플러그인이 없는 경우에도 세션의 이후 전환을 거부했습니다. 이러한 버전에서는 세션을 다시 시작하여 플러그인 로드를 다시 실행합니다.2617v2.1.260 이전에는 관리형 플러그인 거부 메시지가 `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`였습니다. Claude Code는 플러그인 로드를 한 번 재시도한 후, 조직이 관리하는 플러그인이 없는 경우에도 세션의 이후 전환을 거부했습니다. 해당 버전에서는 세션을 재시작하여 플러그인 로드를 다시 실행하십시오.

2563 2618 

2564### Couldn't save it as your default2619### Couldn't save it as your default

2565 2620 

2566모델을 기본값으로 저장하도록 선택했지만(예: `/model <name>` 또는 `/model` 선택기에서 `Enter`), Claude Code가 사용자 설정 파일 `~/.claude/settings.json`에 선택을 쓸 수 없었습니다. 전환 자체는 적용되었으므로 현재 세션은 선택한 모델에서 실행되지만 기본값은 변경되지 않으며 다음 세션은 이전 값으로 시작됩니다.2621`/model <name>` 또는 `/model` 선택기에서 `Enter`를 누르는 등의 방법으로 기본값으로 저장할 모델을 선택했지만, Claude Code가 사용자 설정 파일인 `~/.claude/settings.json`에 선택 내용을 기록할 수 없었습니다. 전환 자체는 적용되었으므로 현재 세션은 선택한 모델로 실행되지만, 기본값은 변경되지 않았으며 다음 세션은 이전 값으로 시작됩니다.

2567 2622 

2568```text theme={null}2623```text theme={null}

2569Set model to Fable 5.1 for this session only · couldn't save it as your default: ~/.claude/settings.json can't be written (EROFS)2624Set model to Fable 5.1 for this session only · couldn't save it as your default: ~/.claude/settings.json can't be written (EROFS)

2570```2625```

2571 2626 

2572파일 경로 뒤의 이유는 무엇이 실패했는지 나타냅니다:2627파일 경로 뒤의 이유는 무엇이 실패했는지를 나타냅니다.

2573 2628 

2574* **`can't be written (<code>)`**: 쓰기가 괄호 안의 운영 체제 오류 코드로 실패했습니다. 예를 들어 파일 또는 파일이 링크하는 대상이 쓰기를 거부하는 파일 시스템에 있을 때 `EROFS`가 표시됩니다. 파일을 쓰기 가능하게 만들고 다시 전환합니다. 다른 도구가 파일을 생성하는 경우 대신 해당 도구에서 `model` 키를 설정합니다. [Claude Code에서 만든 변경 사항이 새 세션에서 사라집니다](/docs/ko/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions)를 참조하십시오.2629* **`can't be written (<code>)`**: 괄호 안의 운영 체제 오류 코드와 함께 기록이 실패했습니다. 예를 들어 파일 또는 파일이 링크하는 대상이 쓰기를 거부하는 파일 시스템에 있는 경우 `EROFS`가 표시됩니다. 파일을 쓰기 가능하게 만든 후 다시 전환하십시오. 다른 도구가 파일을 생성하는 경우 대신 해당 도구에서 `model` 키를 설정하십시오. [Claude Code에서 변경한 내용이 새 세션에서 사라지는 경우](/docs/ko/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions)를 참조하십시오.

2575* **`isn't valid JSON`**: 디스크의 파일이 구문 분석되지 않으며, Claude Code는 다시 읽을 수 없는 내용을 덮어쓰지 않도록 파일을 그대로 둡니다. 구문 오류를 수정한 다음 다시 전환합니다. [손상된 설정 파일 수정](/docs/ko/settings#fix-a-broken-settings-file)을 참조하십시오.2630* **`isn't valid JSON`**: 디스크의 파일을 파싱할 수 없으며, Claude Code는 다시 읽을 수 없는 내용을 덮어쓰지 않고 그대로 둡니다. 구문 오류를 수정한 후 다시 전환하십시오. [손상된 설정 파일 수정](/docs/ko/settings#fix-a-broken-settings-file)을 참조하십시오.

2576 2631 

2577`couldn't confirm it was saved as your default (~/.claude/settings.json is still being written)`로 끝나는 알림은 3초가 지나도 쓰기가 완료되지 않았음을 의미합니다. 쓰기는 백그라운드에서 계속되므로 기본값이 여전히 저장될 수 있습니다. 다음 세션이 어떤 모델로 시작되는지 확인하거나 `/model <name>`을 다시 실행합니다.2632`couldn't confirm it was saved as your default (~/.claude/settings.json is still being written)`로 끝나는 알림은 3초가 지나도 기록이 완료되지 않았다는 뜻입니다. 기록은 백그라운드에서 계속되므로 기본값이 여전히 저장될 수 있습니다. 다음 세션이 어떤 모델로 시작되는지 확인하거나 `/model <name>`을 다시 실행하십시오.

2578 2633 

2579v2.1.265 이전에는 쓰기가 실패한 경우에도 알림이 모델이 `saved as your default for new sessions`되었다고 표시했습니다.2634v2.1.265 이전에는 기록이 실패한 경우에도 알림에 모델이 `saved as your default for new sessions`라고 표시되었습니다.

2580 2635 

2581### Advisor가 현재 메인 모델보다 성능이 낮습니다2636### Advisor is less capable than the current main model

2582 2637 

2583[advisor 모델](/docs/ko/advisor)이 세션의 메인 모델보다 순위가 낮으므로, Claude Code는 선택을 유지하지만 메인 모델의 요청에 advisor를 연결하지 않습니다.2638[advisor 모델](/docs/ko/advisor)의 순위가 세션의 메인 모델보다 낮으므로, Claude Code는 선택 내용을 유지하지만 advisor를 메인 모델의 요청에 연결하지 않습니다.

2584 2639 

2585```text theme={null}2640```text theme={null}

2586Advisor set to Opus 4.82641Advisor set to Opus 4.8

2587Note: Opus 4.8 is less capable than the current main model (Sonnet 5.5), so the advisor will not activate. Choose a more capable advisor, or switch to a smaller main model.2642Note: Opus 4.8 is less capable than the current main model (Sonnet 5.5), so the advisor will not activate. Choose a more capable advisor, or switch to a smaller main model.

2588```2643```

2589 2644 

2590다른 메시지도 동일한 조건을 보고합니다:2645다른 메시지도 같은 상황을 보고합니다.

2591 2646 

2592* 대화형 세션에서는 알림에 `Advisor will not activate on the main model (advisor is less capable); subagents may still use it and may use more tokens · /advisor`가 표시됩니다.2647* 대화형 세션에서는 `Advisor will not activate on the main model (advisor is less capable); subagents may still use it and may use more tokens · /advisor`라는 알림이 표시됩니다.

2593* `--advisor` 플래그로 시작할 때는 경고에 `"<advisor>" cannot advise "<main model>" (the advisor must be at least as capable as the main model). The advisor will not be used for the main model.`가 표시되며, 세션은 그대로 시작됩니다.2648* [비대화형 모드](/docs/ko/headless)에서 `--advisor` 플래그와 함께 실행하고 해당 실행이 [백그라운드 세션](/docs/ko/agent-view)이 아닌 경우, stderr에 경고가 출력되고 실행은 그대로 시작됩니다. 경고는 `"<advisor>" cannot advise "<main model>" (the advisor must be at least as capable as the main model). The advisor will not be used for the main model.`입니다. 대화형 세션은 이 경고를 [디버그 로그](#configuration-warnings)에만 기록합니다.

2594 2649 

2595**할 일:**2650**해결 방법:**

2596 2651 

2597* 더 높은 순위의 advisor 또는 더 낮은 순위의 메인 모델을 선택합니다. [advisor 모델 선택](/docs/ko/advisor#choose-an-advisor-model)에서 순위와 각 메인 모델에 허용되는 advisor 목록을 확인할 수 있습니다.2652* 순위가 더 높은 advisor나 순위가 더 낮은 메인 모델을 선택합니다. [advisor 모델 선택](/docs/ko/advisor#choose-an-advisor-model)에서 순위를 확인하고 각 메인 모델에 허용되는 advisor 목록을 볼 수 있습니다.

2598* advisor가 조언할 수 있는 모델을 사용하는 [서브에이전트](/docs/ko/sub-agents)가 계속 advisor를 사용하도록 하려면 advisor 설정을 그대로 둡니다.2653* advisor가 자문할 수 있는 모델의 [서브에이전트](/docs/ko/sub-agents)가 계속 advisor를 사용하도록 하려면 advisor 설정을 그대로 두십시오

2599 2654 

2600v2.1.287 이전에는 Claude Code가 여러 조합의 순위를 다르게 매겼습니다. Opus 4.7 또는 Opus 4.8 메인 모델에 Sonnet 5.5 advisor를 사용할 때 이 메모를 표시했지만, 이 조합은 이제 허용됩니다. 또한 Sonnet 5.5 메인 모델에 Opus 4.8 advisor를 사용하는 경우처럼 현재는 이 메모가 표시되는 일부 advisor를 연결했습니다.2655v2.1.287 이전에는 Claude Code가 여러 조합의 순위를 다르게 매겼습니다. Opus 4.7 또는 Opus 4.8 메인 모델과 Sonnet 5.5 advisor 조합에 대해 이 안내를 표시했지만, 현재는 이 조합을 허용합니다. 또한 Sonnet 5.5 메인 모델과 Opus 4.8 advisor처럼 현재는 이 안내를 표시하는 일부 advisor를 연결했습니다.

2601 2656 

2602### thinking.type.enabled is not supported for this model2657### thinking.type.enabled is not supported for this model

2603 2658 

2604Claude Code 버전이 선택한 모델의 최소 버전보다 오래되었습니다. CLI가 모델이 더 이상 허용하지 않는 사고 구성을 보냈습니다.2659Claude Code 버전이 선택한 모델에 필요한 최소 버전보다 오래되었습니다. CLI가 모델이 더 이상 허용하지 않는 사고 구성을 보냈습니다.

2605 2660 

2606```text theme={null}2661```text theme={null}

2607API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.2662API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.

2608```2663```

2609 2664 

2610**할 일:**2665**해결 방법:**

2611 2666 

2612* `claude update`를 실행하고 Claude Code를 다시 시작합니다. Opus 4.7은 v2.1.111 이상이 필요합니다. Opus 4.8은 v2.1.154 이상이 필요합니다. Sonnet 5는 v2.1.197 이상이 필요합니다. Opus 5는 v2.1.219 이상이 필요합니다. Opus 5.5는 v2.1.280 이상이 필요합니다. Sonnet 5.5는 v2.1.284 이상이 필요합니다.2667* `claude update`를 실행하고 Claude Code를 재시작합니다. Opus 4.7에는 v2.1.111 이상이 필요합니다. Opus 4.8에는 v2.1.154 이상이 필요합니다. Sonnet 5에는 v2.1.197 이상이 필요합니다. Opus 5에는 v2.1.219 이상이 필요합니다. Opus 5.5에는 v2.1.280 이상이 필요합니다. Sonnet 5.5에는 v2.1.284 이상이 필요합니다

2613* [stable 릴리스 채널](/docs/ko/setup#configure-release-channel)에서는 업데이트해도 최신 stable 릴리스 이후로는 이동하지 않으며, 이 릴리스는 여전히 이러한 버전보다 오래되었을 수 있습니다. latest 채널로 이동한 다음 업데이트합니다.2668* [stable 릴리스 채널](/docs/ko/setup#configure-release-channel)에서는 업데이트해도 최신 stable 릴리스보다 더 새로운 버전으로 이동하지 않으며, 이 릴리스도 위 버전보다 오래되었을 수 있습니다. latest 채널로 이동한 후 업데이트하십시오

2614* 업그레이드할 수 없으면 `/model`을 실행하고 대신 Opus 4.6 또는 Sonnet 4.6을 선택합니다.2669* 업그레이드할 수 없다면 `/model`을 실행하고 대신 Opus 4.6 또는 Sonnet 4.6을 선택합니다

2615* [Agent SDK](/docs/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 이상이 필요합니다. Opus 5는 TypeScript SDK v0.3.219 이상이 필요합니다. Opus 5.5는 TypeScript SDK v0.3.280 이상이 필요합니다. Sonnet 5.5는 TypeScript SDK v0.3.284 이상이 필요합니다.2670* [Agent SDK](/docs/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 이상이 필요합니다. Opus 5에는 TypeScript SDK v0.3.219 이상이 필요합니다. Opus 5.5에는 TypeScript SDK v0.3.280 이상이 필요합니다. Sonnet 5.5에는 TypeScript SDK v0.3.284 이상이 필요합니다

2616 2671 

2617### 사고가 꺼져 있으면 effort를 사용할 수 없습니다2672### 사고가 꺼진 상태에서는 effort를 사용할 수 없음

2618 2673 

2619[확장 사고](/docs/ko/model-config#extended-thinking)를 끄고 `high`보다 높은 [effort 수준](/docs/ko/model-config#adjust-effort-level)으로 실행했습니다. 모델이 해당 조합을 허용하지 않으므로 API가 요청을 거부했습니다.2674[확장 사고](/docs/ko/model-config#extended-thinking)를 끈 상태에서 `high`보다 높은 [effort 수준](/docs/ko/model-config#adjust-effort-level)으로 실행했습니다. 모델이 이 조합을 허용하지 않으므로 API가 요청을 거부했습니다.

2620 2675 

2621```text theme={null}2676```text theme={null}

2622API Error: Effort 'xhigh' isn't available with thinking turned off on this model · run /effort high to continue, or turn thinking back on (unset MAX_THINKING_TOKENS=0)2677API Error: Effort 'xhigh' isn't available with thinking turned off on this model · run /effort high to continue, or turn thinking back on (unset MAX_THINKING_TOKENS=0)

2623```2678```

2624 2679 

2625`·` 뒤의 힌트는 세션에 따라 다릅니다: 비대화형 세션에서는 `use --effort high (or the effortLevel setting)`로, Claude Desktop 앱이 실행하는 세션에서는 `you can lower effort to High`로 표시됩니다.2680`·` 뒤의 힌트는 세션에 따라 다릅니다. 비대화형 세션에서는 `use --effort high (or the effortLevel setting)`으로, Claude Desktop 앱이 실행하는 세션에서는 `you can lower effort to High`로 표시됩니다.

2626 2681 

2627**할 일:**2682**해결 방법:**

2628 2683 

2629* [effort 수준을 낮춰](/docs/ko/model-config#set-the-effort-level) `high` 이하로 설정합니다.2684* [effort 수준을](/docs/ko/model-config#set-the-effort-level) `high` 이하로 낮춥니다.

2630* 사고를 다시 켭니다. 예를 들어 [`MAX_THINKING_TOKENS`](/docs/ko/env-vars) 설정을 해제하거나 설정에서 [`"alwaysThinkingEnabled": false`](/docs/ko/settings-reference#alwaysthinkingenabled)를 제거합니다.2685* 예를 들어 [`MAX_THINKING_TOKENS`](/docs/ko/env-vars) 설정을 해제하거나 설정에서 [`"alwaysThinkingEnabled": false`](/docs/ko/settings-reference#alwaysthinkingenabled)를 제거하여 사고를 다시 켭니다.

2631 2686 

2632v2.1.242 이전에는 Claude Code가 API 자체의 메시지를 표시했습니다: `API Error: 400 output_config.effort 'xhigh' is not supported when thinking is disabled on this model. Use effort 'high' or below, or enable thinking.` v2.1.251 이전에는 Claude Code가 설정한 effort 수준으로 요청을 보냈으므로, 사고가 꺼져 있을 때 Opus 5는 `high`보다 높은 모든 요청을 거부했습니다. 이제 Claude Code는 Opus 5처럼 이 조합을 거부하는 것으로 알려진 모델에는 대신 effort `high`를 보냅니다.2687v2.1.242 이전에는 Claude Code가 API 자체의 메시지를 표시했습니다: `API Error: 400 output_config.effort 'xhigh' is not supported when thinking is disabled on this model. Use effort 'high' or below, or enable thinking.` v2.1.251 이전에는 Claude Code가 설정한 effort 수준 그대로 요청을 보냈기 때문에, 사고가 꺼진 상태에서 Opus 5는 `high`보다 높은 모든 요청을 거부했습니다. 이제 Claude Code는 Opus 5처럼 이 조합을 거부하는 것으로 알려진 모델에는 대신 effort `high`로 요청을 보냅니다.

2633 2688 

2634### 사고 예산이 출력 제한을 초과합니다2689### Thinking budget exceeds output limit

2635 2690 

2636구성된 확장 사고 예산이 최대 응답 길이를 초과하므로 실제 답변을 위한 공간이 남지 않습니다.2691구성된 확장 사고 예산이 최대 응답 길이를 초과하여 실제 답변을 위한 공간이 남아 있지 않습니다.

2637 2692 

2638```text theme={null}2693```text theme={null}

2639API Error: 400 ... max_tokens must be greater than thinking.budget_tokens2694API Error: 400 ... max_tokens must be greater than thinking.budget_tokens

2640```2695```

2641 2696 

2642**할 일:**2697**해결 방법:**

2643 2698 

2644* [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/ko/env-vars)를 사고 예산보다 높게 올립니다.2699* [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/ko/env-vars)를 사고 예산보다 높게 올립니다

2645* 예산이 출력 길이와 상호 작용하는 방식은 [확장 사고](/docs/ko/model-config#extended-thinking)를 참조하십시오.2700* 예산이 출력 길이와 어떻게 상호 작용하는지는 [확장 사고](/docs/ko/model-config#extended-thinking)를 참조하십시오

2646 2701 

2647### Response exceeded the output token maximum2702### Response exceeded the output token maximum

2648 2703 

2649Claude의 응답이 요청에서 허용한 최대 출력 토큰 수에 도달하여 그 지점에서 잘렸습니다:2704Claude의 응답이 요청에서 허용한 최대 출력 토큰 수에 도달하여 그 지점에서 잘렸습니다.

2650 2705 

2651```text theme={null}2706```text theme={null}

2652API Error: Claude's response exceeded the ... output token maximum. To configure this behavior, set the CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable.2707API Error: Claude's response exceeded the ... output token maximum. To configure this behavior, set the CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable.

2653API Error: Claude's response exceeded the 64000 output token maximum for a request sent without streaming. The CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable cannot raise this limit.2708API Error: Claude's response exceeded the 64000 output token maximum for a request sent without streaming. The CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable cannot raise this limit.

2654```2709```

2655 2710 

2656`a request sent without streaming`이 표시되는 형식은 스트리밍 요청이 실패하여 Claude Code가 스트리밍 없이 다시 보냈다는 의미이며, 이 경우 응답은 64,000 출력 토큰으로 제한됩니다. v2.1.299 이전에는 이렇게 다시 보낸 요청에서 응답이 잘리면 이 메시지 없이 응답이 완료된 것처럼 턴이 종료되었습니다.2711`a request sent without streaming`을 명시하는 형태는 스트리밍 요청이 실패하여 Claude Code가 스트리밍 없이 다시 보냈다는 뜻이며, 이 경우 응답은 64,000 출력 토큰으로 제한됩니다. v2.1.299 이전에는 이렇게 다시 보낸 요청에서 잘린 응답이 이 메시지 없이 응답이 완료된 것처럼 턴을 종료했습니다.

2657 2712 

2658**해결 방법:**2713**해결 방법:**

2659 2714 

2660* 응답이 잘리기 전에 Claude가 일부 텍스트를 작성했다면 대화형 세션에서 `continue`라고 답하여 나머지를 요청합니다. 해당 텍스트는 대화에 남아 있습니다.2715* 응답이 잘리기 전에 Claude가 일부 텍스트를 작성했다면, 대화형 세션에서 `continue`로 답하여 나머지를 요청합니다. 그 텍스트는 대화에 남아 있습니다.

2661* 메시지에 `CLAUDE_CODE_MAX_OUTPUT_TOKENS`를 설정하라고 표시되면, 값의 상한이 어떻게 적용되는지는 [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/ko/env-vars)를, 설정 위치는 [환경 변수 설정](/docs/ko/env-vars#set-environment-variables)을 참조하세요2716* 메시지가 `CLAUDE_CODE_MAX_OUTPUT_TOKENS`를 설정하라고 안내하면, 값의 상한은 [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/ko/env-vars)를, 설정 위치는 [환경 변수 설정](/docs/ko/env-vars#set-environment-variables)을 참조하십시오

2662* 각 응답을 한도 내로 유지하려면 응답당 파일 하나나 섹션 하나처럼 더 작은 단위로 출력을 요청합니다2717* 각 응답이 한도를 넘지 않도록 하려면, 응답당 파일 하나나 섹션 하나처럼 Claude에게 출력을 더 작은 단위로 요청하십시오

2663 2718 

2664### 도구 사용 또는 thinking 블록 불일치2719### Tool use or thinking block mismatch

2665 2720 

2666대화 기록이 일관성 없는 상태로 API에 도달했습니다.2721대화 기록이 일관되지 않은 상태로 API에 도달했습니다.

2667 2722 

2668```text theme={null}2723```text theme={null}

2669API Error: 400 due to tool use concurrency issues. Run /rewind to recover the conversation.2724API Error: 400 due to tool use concurrency issues. Run /rewind to recover the conversation.


2673API Error: 400 ... thinking blocks ... cannot be modified2728API Error: 400 ... thinking blocks ... cannot be modified

2674```2729```

2675 2730 

2676모든 변형은 동일한 의미입니다: 기록의 `tool_use`, `tool_result` 및 `thinking` 블록의 순서가 더 이상 API가 예상하는 것과 일치하지 않습니다.2731모든 변형은 같은 의미입니다. 기록에 있는 `tool_use`, `tool_result`, `thinking` 블록의 순서가 더 이상 API가 기대하는 것과 일치하지 않습니다.

2677 2732 

2678**할 일:**2733**해결 방법:**

2679 2734 

2680* Opus 4.7 또는 Opus 4.8을 사용하는 경우 먼저 `claude update`를 실행합니다. v2.1.156 이전 버전은 정상적인 도구 사용 중에 이 오류를 트리거할 수 있으며 `/rewind`로는 해결되지 않습니다.2735* Opus 4.7 또는 Opus 4.8을 사용 중이라면 먼저 `claude update`를 실행하십시오. v2.1.156 이전 버전은 일반적인 도구 사용 중에도 이 오류를 일으킬 수 있으며, `/rewind`로 해결되지 않습니다.

2681* `/rewind`를 실행하거나 Esc를 두 번 눌러 손상된 턴 이전의 체크포인트로 되돌아가 거기서 계속합니다. 체크포인트가 생성되고 복원되는 방식은 [체크포인트](/docs/ko/checkpointing)를 참조하십시오.2736* `/rewind`를 실행하거나 Esc를 두 번 눌러 손상된 턴 이전의 체크포인트로 되돌아간 후 그 지점부터 계속합니다. 체크포인트가 생성되고 복원되는 방식은 [체크포인트](/docs/ko/checkpointing)를 참조하십시오.

2682 2737 

2683### redacted\_thinking 블록의 유효하지 않은 데이터2738### Invalid data in redacted\_thinking block

2684 2739 

2685대화 기록의 이전 턴에 포함된 `redacted_thinking` 블록을 API가 허용할 수 없기 때문에 400으로 요청을 거부했습니다.2740대화 기록의 이전 턴에 포함된 `redacted_thinking` 블록을 API가 수락할 수 없어서 400으로 요청을 거부했습니다.

2686 2741 

2687```text theme={null}2742```text theme={null}

2688API Error: 400 ... Invalid `data` in `redacted_thinking` block2743API Error: 400 ... Invalid `data` in `redacted_thinking` block

2689```2744```

2690 2745 

2691Claude Code는 대화의 이전 사고를 요청에서 제외하고 한 번 재시도하므로 세션은 오류를 표시하지 않고 계속됩니다. v2.1.282 이전에는 Claude Code가 거부된 블록을 유지했고 이후의 모든 턴이 동일한 오류로 실패했습니다.2746Claude Code는 대화의 이전 사고를 요청에서 제외하고 한 번 재시도하므로, 세션은 오류를 표시하지 않고 계속됩니다. v2.1.282 이전에는 Claude Code가 거부된 블록을 유지했기 때문에 이후 모든 턴이 같은 오류로 실패했습니다.

2692 2747 

2693**할 일:**2748**해결 방법:**

2694 2749 

2695* v2.1.281 이하 버전을 사용 중이고 모든 턴이 이 오류로 실패하면 `claude update`를 실행하고 세션을 재개합니다.2750* v2.1.281 이하 버전에서 모든 턴이 이 오류로 실패한다면 `claude update`를 실행하고 세션을 재개합니다

2696* 오류가 지속되면 `/clear`를 실행하여 해당 블록이 포함되지 않은 대화를 시작합니다.2751* 오류가 계속되면 `/clear`를 실행하여 해당 블록이 없는 대화를 시작합니다

2697 2752 

2698### Unsupported tool content removed2753### Unsupported tool content removed

2699 2754 

2700Claude Code가 Anthropic API에 직접 연결된 상태에서 저장된 세션을 로드하거나 미리 볼 때, Anthropic API가 허용하지 않는 도구 내용을 제거하고 제거된 내용이 두 thinking 블록 사이에 있던 위치에 이 줄을 남깁니다:2755Claude Code가 Anthropic API에 직접 연결하여 저장된 세션을 로드하거나 미리 볼 때, Anthropic API가 허용하지 않는 도구 내용을 제거하고, 제거된 내용이 두 thinking 블록 사이에 있던 위치에 다음 줄을 남깁니다.

2701 2756 

2702```text theme={null}2757```text theme={null}

2703[Unsupported tool content removed]2758[Unsupported tool content removed]

2704```2759```

2705 2760 

2706이러한 내용은 Anthropic API가 아닌 다른 무언가가 API 형식으로 응답했을 때 세션 파일에 들어갑니다. 일반적으로 다른 제공자의 도구 호출을 변환하는, [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)로 설정된 타사 프록시입니다. Claude Code는 세션이 Anthropic API에 직접 연결된 경우에만 이를 제거하며, 세션이 프록시를 통하거나 다른 제공자에서 실행되는 경우에는 저장된 기록을 그대로 로드합니다. v2.1.246 이전에는 Claude Code가 도구 사용과 그 결과를 API로 다시 보냈고, 재개된 세션의 모든 턴이 `messages.1.content.0.server_tool_use.name: Input should be 'web_search', 'web_fetch', ...`와 같은 400 오류로 실패했습니다.2761이러한 내용은 Anthropic API 이외의 무언가가 API 형식으로 응답했을 때 세션 파일에 들어갑니다. 일반적으로 다른 공급자의 도구 호출을 변환하는, [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)로 설정된 서드파티 프록시가 원인입니다. Claude Code는 세션이 Anthropic API에 직접 연결된 경우에만 이를 제거하며, 세션이 프록시를 거치거나 다른 공급자에서 실행되는 경우에는 저장된 기록을 그대로 로드합니다. v2.1.246 이전에는 Claude Code가 도구 사용과 그 결과를 API로 다시 보냈기 때문에, 재개된 세션의 모든 턴이 `messages.1.content.0.server_tool_use.name: Input should be 'web_search', 'web_fetch', ...` 같은 400 오류로 실패했습니다.

2707 2762 

2708**할 일:**2763**해결 방법:**

2709 2764 

2710* 자리 표시자 줄이 표시될 때는 아무 조치도 필요하지 않습니다. 세션은 제거된 내용 없이 계속됩니다.2765* 자리 표시자 줄이 보이면 별도 조치가 필요하지 않습니다. 세션은 제거된 내용 없이 계속됩니다.

2711* 재개된 세션의 모든 턴이 대신 400 오류로 실패하면 `claude update`를 실행하고 세션을 다시 재개합니다. v2.1.246 이전 버전은 해당 내용을 제거하지 않습니다.2766* 대신 재개된 세션의 모든 턴이 400 오류로 실패한다면 `claude update`를 실행하고 세션을 다시 재개하십시오. v2.1.246 이전 버전은 해당 내용을 제거하지 않습니다.

2712 2767 

2713### role 'system' must precede an 'assistant' message2768### role 'system' must precede an 'assistant' message

2714 2769 

2715대화에서 API가 허용하지 않는 위치에 시스템 메시지가 있기 때문에 API가 400으로 요청을 거부했습니다:2770시스템 메시지가 대화에서 API가 허용하지 않는 위치에 있기 때문에 API가 400으로 요청을 거부했습니다.

2716 2771 

2717```text theme={null}2772```text theme={null}

2718API Error: 400 messages.6: role 'system' must precede an 'assistant' message or end the array; ...2773API Error: 400 messages.6: role 'system' must precede an 'assistant' message or end the array; ...

2719```2774```

2720 2775 

2721Claude Code는 일부 리마인더 및 첨부 텍스트를 대화 내부의 시스템 메시지로 보냅니다. API가 그중 하나의 위치를 거부하면 Claude Code는 해당 텍스트를 일반 사용자 메시지로 대신 보내 요청을 한 번 재시도합니다. `use the top-level 'system' parameter for the initial system prompt`와 같은 API의 유사한 배치 관련 문구도 동일한 복구가 적용됩니다.2776Claude Code는 일부 리마인더 및 첨부 텍스트를 대화 내의 시스템 메시지로 보냅니다. API가 그 위치를 거부하면, Claude Code는 해당 텍스트를 일반 사용자 메시지로 보내는 방식으로 요청을 한 번 재시도합니다. `use the top-level 'system' parameter for the initial system prompt` 같은 API의 유사한 위치 관련 문구도 같은 방식으로 복구됩니다.

2722 2777 

2723오류가 표시된다면 거부된 시스템 메시지는 Claude Code가 제거할 수 있는 것이 아닙니다. 이는 일반적으로 Claude Code와 API 사이의 프록시 또는 [LLM 게이트웨이](/docs/ko/llm-gateway)가 자체 시스템 메시지를 추가했음을 의미합니다.2778오류가 실제로 표시된다면, 거부된 시스템 메시지는 Claude Code가 제거할 수 있는 것이 아닙니다. 이는 보통 Claude Code와 API 사이의 프록시나 [LLM 게이트웨이](/docs/ko/llm-gateway)가 자체 시스템 메시지를 추가했다는 뜻입니다.

2724 2779 

2725**할 일:**2780**해결 방법:**

2726 2781 

2727* [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)로 구성된 프록시 또는 게이트웨이 뒤에서 오류가 매 턴마다 반복되면 프록시 없이 연결하여 원인을 확인하고, 해당 프록시를 운영하는 담당자에게 오류를 보고합니다.2782* [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)로 구성된 프록시나 게이트웨이 뒤에서 오류가 매 턴마다 반복된다면, 프록시 없이 연결하여 원인을 확인하고 해당 프록시 운영자에게 오류를 보고하십시오

2728* `/clear`를 실행하여 새 대화를 시작합니다. 거기서도 오류가 다시 발생하면 원인은 저장된 대화가 아닌 요청 경로에 있습니다.2783* `/clear`를 실행하여 새 대화를 시작합니다. 거기서도 오류가 다시 발생한다면, 원인은 저장된 대화가 아니라 요청 경로에 있습니다.

2729 2784 

2730v2.1.280 이전에는 Claude Code가 이 문구를 인식하지 못했으므로 거부된 시스템 메시지가 Claude Code 자체가 보낸 것일 때도 오류가 표시되었고, 대화의 이후 모든 턴이 동일한 방식으로 실패했습니다.2785v2.1.280 이전에는 Claude Code가 이 문구를 인식하지 못했기 때문에, 거부된 시스템 메시지가 Claude Code 자신이 보낸 것일 때도 오류가 표시되었고 대화의 이후 모든 턴이 같은 방식으로 실패했습니다.

2731 2786 

2732### search\_result 블록의 유효하지 않은 encrypted\_content2787### Invalid encrypted\_content in search\_result block

2733 2788 

2734대화 기록에 API가 해독할 수 없는 호스팅 웹 검색 내용이 포함되어 있기 때문에 API가 400으로 요청을 거부했습니다. 문구는 읽을 수 없는 필드를 나타냅니다:2789대화 기록에 API가 복호화할 수 없는 호스팅 웹 검색 내용이 포함되어 있어 API가 400으로 요청을 거부했습니다. 문구에는 읽을 수 없는 필드가 명시됩니다.

2735 2790 

2736```text theme={null}2791```text theme={null}

2737API Error: 400 ... Invalid `encrypted_content` in `search_result` block2792API Error: 400 ... Invalid `encrypted_content` in `search_result` block


2740API Error: 400 ... Invalid `encrypted_stdout` in `encrypted_code_execution_result` block2795API Error: 400 ... Invalid `encrypted_stdout` in `encrypted_code_execution_result` block

2741```2796```

2742 2797 

2743API의 호스팅 [웹 검색 도구](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool) 결과에는 API만 읽을 수 있는 암호화된 필드가 포함됩니다. `encrypted_stdout` 문구는 이러한 결과를 읽은 호스팅 코드 실행 프로그램의 출력을 가리키며, API는 이 출력도 암호화합니다. API는 다른 조직을 위해 생성된 내용처럼 해독할 수 없는 내용을 다시 보내는 요청을 거부합니다.2798API의 호스팅 [웹 검색 도구](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool) 결과에는 API만 읽을 수 있는 암호화된 필드가 포함됩니다. `encrypted_stdout` 문구는 이러한 결과를 읽은 호스팅 코드 실행 프로그램의 출력을 가리키며, API는 이 출력도 암호화합니다. API는 다른 조직을 위해 생성된 내용처럼 복호화할 수 없는 내용을 다시 보내는 요청을 거부합니다.

2744 2799 

2745Claude Code 자체의 [WebSearch 도구](/docs/ko/tools-reference#websearch-tool-behavior)는 검색 결과를 일반 텍스트로 기록하므로, 이러한 블록은 일반적으로 호스팅 웹 검색을 자체적으로 실행한 프록시 또는 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 대화에 들어옵니다.2800Claude Code 자체의 [WebSearch 도구](/docs/ko/tools-reference#websearch-tool-behavior)는 검색 결과를 일반 텍스트로 기록하므로, 이러한 블록은 보통 호스팅 웹 검색을 직접 실행한 프록시나 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 대화에 들어옵니다.

2746 2801 

2747세 가지 웹 검색 문구의 경우 Claude Code는 검색 호출, 결과 및 인용을 보내는 내용에서 제외하고 요청을 한 번 재시도하므로 세션은 오류를 표시하지 않고 계속됩니다. `encrypted_stdout` 문구에는 이러한 복구가 없으므로 해당 메시지는 여전히 표시됩니다. v2.1.282 이전에는 Claude Code가 거부된 웹 검색 블록도 유지했고, 이후의 모든 턴과 `/compact`가 동일한 방식으로 실패했습니다.2802세 가지 웹 검색 문구의 경우, Claude Code는 검색 호출, 결과, 인용을 전송 내용에서 제외하고 요청을 한 번 재시도하므로, 세션은 오류를 표시하지 않고 계속됩니다. `encrypted_stdout` 문구에는 이러한 복구가 없으므로 해당 메시지는 여전히 표시됩니다. v2.1.282 이전에는 Claude Code가 거부된 웹 검색 블록도 유지했기 때문에, 이후 모든 턴과 `/compact`가 같은 방식으로 실패했습니다.

2748 2803 

2749**할 일:**2804**해결 방법:**

2750 2805 

2751* v2.1.281 이하 버전을 사용 중이고 모든 턴이 웹 검색 문구 중 하나로 실패하면 `claude update`를 실행하고 세션을 재개합니다.2806* v2.1.281 이하 버전에서 모든 턴이 웹 검색 문구 중 하나로 실패한다면 `claude update`를 실행하고 세션을 재개합니다

2752* 오류가 지속되거나 메시지가 `encrypted_stdout`을 나타내면 `/rewind`를 실행하여 해당 내용을 추가한 턴 이전의 체크포인트로 되돌아가거나, `/clear`를 실행하여 해당 내용이 포함되지 않은 대화를 시작합니다.2807* 오류가 계속되거나 메시지에 `encrypted_stdout`이 명시된 경우, `/rewind`를 실행하여 해당 내용을 추가한 턴 이전의 체크포인트로 되돌아가거나, `/clear`를 실행하여 해당 내용이 없는 대화를 시작합니다

2753* 프록시 또는 게이트웨이 뒤에서 Claude Code를 실행하는 경우 해당 프록시나 게이트웨이를 운영하는 담당자에게 오류를 보고합니다.2808* 프록시나 게이트웨이 뒤에서 Claude Code를 실행한다면 해당 운영자에게 오류를 보고하십시오

2754 2809 

2755### 사용 정책 거부2810### Usage Policy refusal

2756 2811 

2757대화의 내용이 [사용 정책](https://www.anthropic.com/legal/aup) 확인을 트리거했기 때문에 API가 응답을 거부했습니다.2812대화의 내용이 [이용 정책](https://www.anthropic.com/legal/aup) 검사를 트리거하여 API가 응답을 거절했습니다.

2758 2813 

2759메시지에 `` Details: `[reasoning_extraction]` `` 줄이 포함되어 있으면 [안전 조치가 Claude의 추론에 대한 요청을 플래그했습니다](#safeguards-flagged-a-request-for-claudes-reasoning)를 참조하십시오.2814메시지에 `` Details: `[reasoning_extraction]` `` 줄이 포함되어 있다면 [세이프가드가 Claude의 추론에 대한 요청을 감지한 경우](#safeguards-flagged-a-request-for-claudes-reasoning)를 참조하십시오.

2760 2815 

2761메시지에는 거부가 잘못되었다고 생각되는 경우 지원팀에 제시할 수 있는 요청 ID 및 메시지 ID가 포함됩니다.2816메시지에는 거절이 잘못되었다고 판단될 때 지원팀에 전달할 수 있는 Request ID와 Message ID가 포함됩니다.

2762 2817 

2763```text theme={null}2818```text theme={null}

2764API Error: Opus 4.6 can't help with this. Start a new session to continue.2819API Error: Opus 4.6 can't help with this. Start a new session to continue.


2766Send feedback with /feedback or learn more: https://www.anthropic.com/legal/aup2821Send feedback with /feedback or learn more: https://www.anthropic.com/legal/aup

2767```2822```

2768 2823 

2769메시지는 거부한 모델을 표시하며, 기록된 모델이 없으면 `Claude`를 표시합니다.2824메시지에는 거절한 모델의 이름이 표시되며, 기록된 모델이 없으면 `Claude`가 표시됩니다.

2770 2825 

2771확인은 최신 프롬프트뿐 아니라 전체 대화를 평가하므로 같은 세션에서 새 메시지를 보내면 일반적으로 동일한 거부가 다시 트리거됩니다. 디스크의 트랜스크립트에 트리거한 내용이 여전히 포함되어 있으므로 종료한 후 `--continue` 또는 `--resume`으로 세션을 다시 열어도 마찬가지입니다. [Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai) 및 [Microsoft Foundry](/docs/ko/microsoft-foundry)에서는 이 메시지가 모델의 안전 조치가 사이버 보안 주제로 플래그한 요청도 다룹니다. [안전 조치가 사이버 보안 주제를 플래그했습니다](#safety-measures-flagged-a-cybersecurity-topic)를 참조하십시오.2826검사는 최신 프롬프트뿐만 아니라 대화 전체를 평가하므로, 같은 세션에서 새 메시지를 보내면 보통 같은 거절이 다시 트리거됩니다. 디스크의 트랜스크립트에 여전히 트리거한 내용이 남아 있으므로, 세션을 종료한 후 `--continue` 또는 `--resume`으로 다시 열어도 마찬가지입니다. [Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud's Agent Platform](/docs/ko/google-vertex-ai), [Microsoft Foundry](/docs/ko/microsoft-foundry)에서는 이 메시지가 모델의 안전 조치가 사이버 보안 주제로 감지한 요청에도 표시됩니다. [안전 조치가 사이버 보안 주제를 감지한 경우](#safety-measures-flagged-a-cybersecurity-topic)를 참조하십시오.

2772 2827 

2773v2.1.219 이전에는 메시지가 `Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your last message or start a new session for Claude Code to assist with a different task.`였습니다.2828v2.1.219 이전에는 메시지가 `Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your last message or start a new session for Claude Code to assist with a different task.`였습니다.

2774 2829 

2775**할 일:**2830**해결 방법:**

2776 2831 

2777* Esc를 두 번 누르거나 `/rewind`를 실행하여 거부를 트리거한 턴 이전의 체크포인트로 되돌아간 다음, 다르게 표현하거나 다른 접근 방식을 취합니다. [체크포인트](/docs/ko/checkpointing)를 참조하십시오.2832* Esc를 두 번 누르거나 `/rewind`를 실행하여 거절을 트리거한 턴 이전의 체크포인트로 되돌아간 후, 표현을 바꾸거나 다른 접근 방식을 사용합니다. [체크포인트](/docs/ko/checkpointing)를 참조하십시오.

2778* 어떤 턴이 원인인지 식별할 수 없으면 `/clear`를 실행하여 같은 프로젝트에서 새 대화를 시작합니다. 이전 대화는 디스크에 보존되며 `/resume`에서 계속 사용할 수 있습니다.2833* 어떤 턴이 원인인지 파악할 수 없다면 `/clear`를 실행하여 같은 프로젝트에서 새 대화를 시작합니다. 이전 대화는 디스크에 보존되며 `/resume`에서 계속 사용할 수 있습니다.

2779* 되감기를 사용할 수 없는 [비대화형 모드](/docs/ko/headless)(`-p`)에서는 `--continue` 없이 새 세션에서 다르게 표현한 프롬프트로 재시도합니다. 정책 확인은 모델에 따라 다르므로 `--model`로 다른 모델로 전환하면 경우에 따라 거부가 해결될 수도 있습니다.2834* 되감기를 사용할 수 없는 [비대화형 모드](/docs/ko/headless)(`-p`)에서는 `--continue` 없이 새 세션에서 표현을 바꾼 프롬프트로 재시도하십시오. 정책 검사는 모델마다 다르므로, 경우에 따라 `--model`로 다른 모델로 전환하면 거절이 해결될 수도 있습니다.

2780 2835 

2781### 안전 조치가 사이버 보안 주제를 플래그했습니다2836### 안전 조치가 사이버 보안 주제로 플래그 지정함

2782 2837 

2783모델의 안전 조치가 대화의 내용을 사이버 보안 주제로 플래그했습니다. 메시지는 요청을 플래그한 모델을 표시합니다:2838모델의 안전 조치가 대화 내용을 사이버 보안 주제로 플래그 지정했습니다. 메시지에는 요청을 플래그 지정한 모델의 이름이 표시됩니다.

2784 2839 

2785```text theme={null}2840```text theme={null}

2786API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude2841API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude

2787```2842```

2788 2843 

2789메시지에 `` Details: `[reasoning_extraction]` `` 줄이 포함되어 있으면 [안전 조치가 Claude의 추론에 대한 요청을 플래그했습니다](#safeguards-flagged-a-request-for-claudes-reasoning)를 참조하십시오.2844메시지에 `` Details: `[reasoning_extraction]` `` 줄이 포함되어 있다면 [안전 장치가 Claude의 추론을 요청하는 것으로 플래그 지정함](#safeguards-flagged-a-request-for-claudes-reasoning)을 참조하세요.

2790 2845 

2791이 메시지는 정당한 사이버 보안 작업에 대한 액세스를 부여하는 [사이버 검증 프로그램](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)으로 연결됩니다. [자동 모델 폴백](/docs/ko/model-config#automatic-model-fallback)이 적용되는 모델은 이 링크 없이 다른 메시지를 출력하며, Opus 5.5 및 Sonnet 5.5에서는 해당 메시지가 `<model>'s safeguards flagged this session`으로 시작합니다. 해당 섹션에서는 Claude Code가 대신 모델을 전환하는 경우도 다룹니다.2846이 메시지는 정당한 사이버 보안 작업에 대한 액세스 권한을 부여하는 [Cyber Verification Program](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)으로 연결됩니다. [자동 모델 폴백](/docs/ko/model-config#automatic-model-fallback)이 적용되는 모델은 이 링크 없이 다른 메시지를 출력하며, Opus 5.5와 Sonnet 5.5에서는 `<model>'s safeguards flagged this session`으로 시작합니다. 해당 섹션에서는 Claude Code가 대신 모델을 전환하는 경우도 다룹니다.

2792 2847 

2793[Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai) 및 [Microsoft Foundry](/docs/ko/microsoft-foundry)에서는 사이버 보안 플래그가 대신 [사용 정책 거부](#usage-policy-refusal) 메시지를 생성합니다.2848[Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud's Agent Platform](/docs/ko/google-vertex-ai), [Microsoft Foundry](/docs/ko/microsoft-foundry)에서는 사이버 보안 플래그가 지정되면 대신 [사용 정책 거부](#usage-policy-refusal) 메시지가 표시됩니다.

2794 2849 

2795**할 일:**2850**해결 방법:**

2796 2851 

2797* 작업에 이 내용이 필요하면 [사이버 검증 프로그램](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)을 통해 액세스를 신청합니다.2852* 작업에 이 콘텐츠가 필요한 경우 [Cyber Verification Program](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)을 통해 액세스를 신청합니다

2798* 요청이 사이버 보안 주제와 관련이 없었다면 `/feedback`을 실행하여 오탐을 보고합니다.2853* 요청이 사이버 보안 주제와 관련이 없었다면 `/feedback`을 실행하여 오탐을 보고합니다

2799* 같은 세션에서 계속 작업하려면 Esc를 두 번 누르거나 `/rewind`를 실행하여 플래그를 트리거한 턴 이전의 체크포인트로 되돌아간 다음 다른 접근 방식을 취합니다. [체크포인트](/docs/ko/checkpointing)를 참조하십시오.2854* 같은 세션에서 작업을 계속하려면 Esc를 두 번 누르거나 `/rewind`를 실행하여 플래그를 유발한 턴 이전의 체크포인트로 되돌아간 다음 다른 방식으로 접근합니다. [체크포인트](/docs/ko/checkpointing)를 참조하세요.

2800 2855 

2801표시된 메시지의 문구가 대신 다음 중 하나와 같다면, 이전 Claude Code 버전에서 발생한 동일한 플래그입니다.2856표시되는 메시지의 문구가 다음 중 하나와 같다면 이전 Claude Code 버전에서 표시되는 동일한 플래그입니다.

2802 2857 

2803* v2.1.219부터 v2.1.296까지는 메시지의 마지막 문장 앞에 `Apply to the Cyber Verification Program to reduce these interruptions.`가 포함될 수도 있었습니다2858* v2.1.219부터 v2.1.296까지는 메시지의 마지막 문장 앞에 `Apply to the Cyber Verification Program to reduce these interruptions.`가 포함될 수도 있었습니다

2804* v2.1.203부터 v2.1.218까지는 메시지가 `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:`였으며 뒤에 동일한 도움말 센터 링크가 이어졌습니다. 대화형 세션에서는 `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`이 이어졌습니다2859* v2.1.203부터 v2.1.218까지는 메시지가 `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:`였으며 그 뒤에 동일한 고객 센터 링크가 이어졌습니다. 대화형 세션에서는 `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`가 이어졌습니다

2805* v2.1.203 이전에는 메시지가 `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:`였으며 뒤에 예외 신청 양식 링크가 이어졌습니다2860* v2.1.203 이전에는 메시지가 `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:`였으며 그 뒤에 예외 신청 양식 링크가 이어졌습니다

2806 2861 

2807### 안전 조치가 Claude의 추론에 대한 요청을 플래그했습니다2862### 안전 장치가 Claude의 추론을 요청하는 것으로 플래그 지정함

2808 2863 

2809안전 조치가 요청을 모델의 내부 추론을 응답에서 재현하도록 요구하는 것으로 플래그했기 때문에 API가 요청을 거부했습니다. API는 이 [거부 범주](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback#refusal-response)를 `reasoning_extraction`이라고 부르며, 거부 메시지에는 다음 줄이 포함됩니다:2864안전 장치가 요청을 모델의 내부 추론을 응답에 재현하도록 요구하는 것으로 플래그 지정하여 API가 요청을 거부했습니다. API는 이 [거부 범주](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback#refusal-response)를 `reasoning_extraction`이라고 부르며, 거부 메시지에는 다음 줄이 포함됩니다.

2810 2865 

2811```text theme={null}2866```text theme={null}

2812Details: `[reasoning_extraction]`2867Details: `[reasoning_extraction]`


2814 2869 

2815v2.1.234 이전에는 거부 메시지에 `Details` 줄이 포함되지 않았습니다.2870v2.1.234 이전에는 거부 메시지에 `Details` 줄이 포함되지 않았습니다.

2816 2871 

2817**할 일:**2872**해결 방법:**

2818 2873 

2819* Claude에게 사고나 추론을 그대로 또는 고정된 형식으로 작성하도록 요구하는 지시를 제거하거나 다르게 표현합니다. 예를 들어 `<thinking>` 섹션, 스크래치패드 섹션 또는 JSON 출력의 `reasoning` 필드 등이 있습니다. 이러한 지시는 프롬프트에 있을 수도 있고, CLAUDE.md, 스킬, 서브에이전트 프롬프트, 출력 스타일 또는 MCP 도구 설명처럼 Claude Code가 함께 로드하는 사용자 지정 항목에 있을 수도 있습니다.2874* Claude에게 사고나 추론을 그대로 또는 고정된 형식으로 작성하도록 요청하는 지시(예: `<thinking>` 섹션, 스크래치패드 섹션, JSON 출력의 `reasoning` 필드)를 제거하거나 다르게 표현합니다. 이러한 지시는 프롬프트에 있을 수도 있고, CLAUDE.md, 스킬, 서브에이전트 프롬프트, 출력 스타일, MCP 도구 설명처럼 Claude Code가 함께 로드하는 사용자 지정 항목에 있을 수도 있습니다.

2820* 사용자 지정 항목이 원인인지 확인하려면 터미널에서 [`claude --safe-mode`](/docs/ko/cli-reference#cli-flags)를 실행하여 사용자 지정 항목이 비활성화된 세션을 시작한 다음 동일한 프롬프트를 보냅니다.2875* 사용자 지정 항목이 원인인지 확인하려면 터미널에서 [`claude --safe-mode`](/docs/ko/cli-reference#cli-flags)를 실행하여 사용자 지정 항목이 비활성화된 세션을 시작한 다음 같은 프롬프트를 보냅니다

2821* 사용자 지정 항목을 변경한 후에는 새 세션을 시작합니다.2876* 사용자 지정 항목을 변경한 후에는 새 세션을 시작합니다

2822* 이미 보낸 프롬프트를 다르게 표현하려면 [되감기 및 요약](/docs/ko/checkpointing#rewind-and-summarize)을 참조하십시오.2877* 이미 보낸 프롬프트를 다르게 표현하려면 [되감기 및 요약](/docs/ko/checkpointing#rewind-and-summarize)을 참조하세요

2823* Claude에게 답변을 설명하도록 요청하는 것은 여전히 가능합니다. 짧은 설명, 결과의 근거 또는 수행한 작업의 요약을 요청합니다. Claude의 사고 요약을 읽으려면 [`showThinkingSummaries`](/docs/ko/settings-reference#showthinkingsummaries)를 참조하십시오.2878* Claude에게 답변에 대한 설명을 요청하는 것은 여전히 가능합니다. 간단한 설명, 결과의 근거, 수행한 작업의 요약을 요청하세요. Claude의 사고 요약을 읽으려면 [`showThinkingSummaries`](/docs/ko/settings-reference#showthinkingsummaries)를 참조하세요.

2824* 더 많은 예시와 다르게 표현한 요청도 거부될 때의 조치는 [추론을 thinking 블록에 유지하기](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback#keep-reasoning-in-thinking-blocks)를 참조하십시오.2879* 더 많은 예시와 다르게 표현한 요청이 여전히 거부될 때의 해결 방법은 [추론을 thinking 블록에 유지하기](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback#keep-reasoning-in-thinking-blocks)를 참조하세요

2825 2880 

2826### Output blocked by content filtering policy2881### Output blocked by content filtering policy

2827 2882 

2828API의 출력 콘텐츠 필터가 Claude가 생성하던 응답을 중단했습니다. 메시지 텍스트는 API에서 제공됩니다:2883API의 출력 콘텐츠 필터가 Claude가 생성 중이던 응답을 중단했습니다. 메시지 텍스트는 API에서 제공됩니다.

2829 2884 

2830```text theme={null}2885```text theme={null}

2831API Error: Output blocked by content filtering policy2886API Error: Output blocked by content filtering policy

2832```2887```

2833 2888 

2834**할 일:**2889**해결 방법:**

2835 2890 

2836* 마지막 메시지를 다르게 표현하거나 다른 접근 방식을 취합니다.2891* 마지막 메시지를 다르게 표현하거나 다른 방식으로 접근합니다

2837* 차단을 트리거한 턴 이전의 체크포인트로 되돌아가려면 Esc를 두 번 누르거나 `/rewind`를 실행합니다. [체크포인트](/docs/ko/checkpointing)를 참조하십시오.2892* 차단을 유발한 턴 이전의 체크포인트로 되돌아가려면 Esc를 두 번 누르거나 `/rewind`를 실행합니다. [체크포인트](/docs/ko/checkpointing)를 참조하세요

2838 2893 

2839## 명령줄 오류2894## 명령줄 오류

2840 2895 


3362관련 메시지는 명령이 실행되기도 전에 발생합니다:3417관련 메시지는 명령이 실행되기도 전에 발생합니다:

3363 3418 

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

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

3366* `No shell command in <name> was run`: 파일의 `!` 명령 중 하나에 탭이나 줄 바꿈 이외의 원시 제어 문자가 포함되어 있어 어떤 명령도 실행되지 않습니다. [해당 문자를 찾아 제거하는 방법](#no-shell-command-was-run)을 참조하십시오3421* `No shell command in <name> was run`: 파일의 `!` 명령 중 하나에 탭이나 줄 바꿈 이외의 원시 제어 문자가 포함되어 있어 어떤 명령도 실행되지 않습니다. [해당 문자를 찾아 제거하는 방법](#no-shell-command-was-run)을 참조하십시오

3367 3422 

3368**해결 방법:**3423**해결 방법:**


3464Claude Code는 이 세션의 메뉴에 나열된 명령 이름이나 별칭 중 가장 가까운 것을 제안합니다. 가까운 것이 없으면 메시지는 이름 뒤에서 끝납니다. 원인은 대개 다음 중 하나입니다:3519Claude Code는 이 세션의 메뉴에 나열된 명령 이름이나 별칭 중 가장 가까운 것을 제안합니다. 가까운 것이 없으면 메시지는 이름 뒤에서 끝납니다. 원인은 대개 다음 중 하나입니다:

3465 3520 

3466* `/help`를 `/hepl`로 입력한 것 같은 오타. [명령 메뉴가 입력 내용과 일치시키는 방식](/docs/ko/commands#how-the-command-menu-matches-what-you-type)에서 제출 전에 가까운 항목을 선택하는 방법을 다룹니다3521* `/help`를 `/hepl`로 입력한 것 같은 오타. [명령 메뉴가 입력 내용과 일치시키는 방식](/docs/ko/commands#how-the-command-menu-matches-what-you-type)에서 제출 전에 가까운 항목을 선택하는 방법을 다룹니다

3467* 명령은 존재하지만 플랫폼, 플랜 또는 인증 방법 같은 요구 사항이 충족되지 않아 이 세션에서 사용할 수 없는 경우. [`/web-setup`](/docs/ko/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) 및 [`/schedule`](/docs/ko/routines#schedule-returns-unknown-command)의 문제 해결 항목에서 두 가지 일반적인 사례를 설명합니다. 일부 명령은 조직 정책에 의해 비활성화된 경우 [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)처럼 자체 메시지로 응답합니다3522* 명령은 존재하지만 플랫폼, 플랜, 인증 방법 등의 요구 사항이 충족되지 않아 이 세션에서 사용할 수 없습니다. [`/web-setup`](/docs/ko/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command), [`/schedule`](/docs/ko/routines#schedule-returns-unknown-command), [`/auto-mode-setup`](/docs/ko/auto-mode-config#auto-mode-setup-returns-unknown-command) 항목을 참조하세요. 일부 명령은 조직 정책에 의해 비활성화되었을 때 [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)처럼 자체 메시지로 응답합니다

3468* 이 세션에 설치되거나 연결되지 않은 [플러그인](/docs/ko/plugins/overview) 또는 [MCP 서버](/docs/ko/mcp#use-mcp-prompts-as-commands)의 명령3523* 이 세션에 설치되거나 연결되지 않은 [플러그인](/docs/ko/plugins/overview) 또는 [MCP 서버](/docs/ko/mcp#use-mcp-prompts-as-commands)의 명령

3469 3524 

3470Claude Code는 대화형 터미널 세션에서만 일치하지 않는 `/` 이름에 이런 방식으로 응답합니다. 그 밖의 모든 세션에서는 프롬프트를 일반 메시지로 Claude에 보내며, 명령이 실행되지 않았다는 메모와 세션에서 Claude가 실행할 수 있는 명령 목록을 함께 보냅니다. 이러한 세션은 다음과 같습니다:3525Claude Code는 대화형 터미널 세션에서만 일치하지 않는 `/` 이름에 이런 방식으로 응답합니다. 그 밖의 모든 세션에서는 프롬프트를 일반 메시지로 Claude에 보내며, 명령이 실행되지 않았다는 메모와 세션에서 Claude가 실행할 수 있는 명령 목록을 함께 보냅니다. 이러한 세션은 다음과 같습니다:


3513 3568 

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

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

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

3517 3572 

3518**해결 방법:**3573**해결 방법:**

3519 3574 


3856* 세션을 직접 열고 그곳에서 `/recap`을 실행합니다: 해당 터미널, [Desktop 앱](/docs/ko/desktop) 또는 [모바일 앱](/docs/ko/mobile), [claude.ai/code](https://claude.ai/code), 또는 [Remote Control](/docs/ko/remote-control)을 통해 실행할 수 있습니다3911* 세션을 직접 열고 그곳에서 `/recap`을 실행합니다: 해당 터미널, [Desktop 앱](/docs/ko/desktop) 또는 [모바일 앱](/docs/ko/mobile), [claude.ai/code](https://claude.ai/code), 또는 [Remote Control](/docs/ko/remote-control)을 통해 실행할 수 있습니다

3857* 클라우드 예약 작업이나 다른 프로그램이 보낸 경우 해당 프롬프트에서 `/recap`을 제거합니다3912* 클라우드 예약 작업이나 다른 프로그램이 보낸 경우 해당 프롬프트에서 `/recap`을 제거합니다

3858 3913 

3914### /feedback is disabled by your organization's policy

3915 

3916이 메시지는 조직의 정책이 Claude Code에서의 제품 피드백을 허용하지 않아 `/feedback`, `/bug`, `/share`가 피드백 대화 상자를 열지 않는다는 의미입니다. 메시지에는 Claude Code 프롬프트에 입력한 명령이 표시됩니다.

3917 

3918```text wrap theme={null}

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

3920```

3921 

3922메시지가 첫 문장만으로 표시될 수도 있습니다.

3923 

3924**해결 방법:**

3925 

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

3927 

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

3929 

3859## 플러그인 오류3930## 플러그인 오류

3860 3931 

3861이러한 오류는 [플러그인](/docs/ko/plugins/overview) 및 [마켓플레이스](/docs/ko/plugins/overview) 구성에서 발생합니다. 이 페이지의 메시지 중 하나를 생성하지 않는 플러그인 문제(예: 로드되지 않는 마켓플레이스 URL 또는 설치되지만 나타나지 않는 플러그인)의 경우 [플러그인 문제 해결](/docs/ko/plugins/troubleshooting)을 참조하십시오.3932이러한 오류는 [플러그인](/docs/ko/plugins/overview) 및 [마켓플레이스](/docs/ko/plugins/overview) 구성에서 발생합니다. 이 페이지의 메시지 중 하나를 생성하지 않는 플러그인 문제(예: 로드되지 않는 마켓플레이스 URL 또는 설치되지만 나타나지 않는 플러그인)의 경우 [플러그인 문제 해결](/docs/ko/plugins/troubleshooting)을 참조하십시오.


4001 4072 

4002### Path escapes plugin directory4073### Path escapes plugin directory

4003 4074 

4004플러그인 구성 요소 경로는 플러그인의 `plugin.json` 또는 [마켓플레이스 항목](/docs/ko/plugins/marketplace-reference#plugin-entries)에서 선언되며 플러그인의 자체 디렉터리 외부로 확인됩니다. Claude Code는 해당 경로를 삭제하고 플러그인의 나머지 부분을 로드합니다. 메시지의 구성 요소 이름(예: `commands` 또는 `hooks`)은 경로를 선언한 필드의 이름을 지정합니다.4075플러그인의 구성 요소 경로 중 하나가 플러그인 디렉터리 외부로 이어지거나 플러그인 내부에 있는지 확인할 수 없으므로 Claude Code는 해당 경로를 삭제하고 플러그인의 나머지 부분을 로드합니다. 플러그인이 `plugin.json` 또는 [마켓플레이스 항목](/docs/ko/plugins/marketplace-reference#plugin-entries)에서 선언한 경로의 경우 메시지의 구성 요소 이름(예: `commands` 또는 `hooks`)은 경로를 선언한 필드의 이름을 지정합니다.

4005 4076 

4006```text theme={null}4077```text theme={null}

4007commands path escapes plugin directory: ./../shared.md4078commands path escapes plugin directory: ./../shared.md


4015commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory4086commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory

4016```4087```

4017 4088 

4089마켓플레이스 플러그인 자체 파일 중 하나(예: `hooks/hooks.json`)의 전체 경로를 제공하는 메시지는 Claude Code가 해당 파일을 건너뛰었음을 의미합니다. 이는 Claude Code가 파일이 플러그인 내부에 있는지, 또는 [로컬 마켓플레이스](/docs/ko/plugins/loading#in-place-and-copied-plugins)의 플러그인의 경우 해당 마켓플레이스 내부에 있는지 확인할 수 없을 때 발생합니다. 메시지는 이러한 각 파일을 다음 구성 요소 이름으로 보고합니다:

4090 

4091* `hooks/hooks.json`: `hooks`

4092* `monitors/monitors.json`: `monitors`

4093* `settings.json`: `settings`

4094* 플러그인 루트의 `SKILL.md`: `skills`

4095 

4096예를 들어 이 메시지는 플러그인과 해당 로컬 마켓플레이스 모두의 외부로 확인되는 `hooks/hooks.json`에 대한 것입니다:

4097 

4098```text theme={null}

4099hooks path escapes plugin directory: /home/user/my-marketplace/my-plugin/hooks/hooks.json — it resolves to /home/user/dotfiles/hooks.json, outside the plugin directory and its marketplace directory

4100```

4101 

4018macOS 및 Linux에서 Claude Code는 경로가 플러그인 내부에 머물러 있을 때도 경로의 어디든지 백슬래시를 포함하는 구성 요소 경로를 거부합니다. 구성 요소 경로가 Windows 스타일 구분 기호를 사용하는 플러그인은 Windows에서 로드되고 다른 플랫폼에서 이 거부를 트리거합니다:4102macOS 및 Linux에서 Claude Code는 경로가 플러그인 내부에 머물러 있을 때도 경로의 어디든지 백슬래시를 포함하는 구성 요소 경로를 거부합니다. 구성 요소 경로가 Windows 스타일 구분 기호를 사용하는 플러그인은 Windows에서 로드되고 다른 플랫폼에서 이 거부를 트리거합니다:

4019 4103 

4020```text theme={null}4104```text theme={null}


4023 4107 

4024v2.1.251 이전에는 Claude Code가 마켓플레이스 항목에서 선언된 `commands` 경로를 플러그인 디렉터리 외부를 가리킬 때도 로드했습니다.4108v2.1.251 이전에는 Claude Code가 마켓플레이스 항목에서 선언된 `commands` 경로를 플러그인 디렉터리 외부를 가리킬 때도 로드했습니다.

4025 4109 

4026v2.1.257 이전에는 확인이 경로의 철자만 보았으며 심볼릭 링크가 이어지는 위치는 보지 않았습니다.4110v2.1.257 이전에는 플러그인이 선언한 경로에 대한 확인이 경로의 철자만 보았으며 심볼릭 링크가 이어지는 위치는 보지 않았습니다.

4027 4111 

4028**수행할 작업:**4112**수행할 작업:**

4029 4113 

4030* 참조된 파일을 플러그인 디렉터리 내부로 이동하고 `./` 상대 경로로 경로를 가리키십시오.4114* 플러그인을 설치했지만 유지 관리하지 않는 경우 메시지를 작성자에게 보고하십시오.

4031* 경로가 플러그인 외부의 파일에 대한 심볼릭 링크인 경우 심볼릭 링크를 파일의 복사본으로 바꾸십시오.4115* 플러그인이 선언한 경로의 경우 참조된 파일을 플러그인 디렉터리 내부로 이동하고 `./` 상대 경로로 경로를 가리키십시오.

4032* 메시지가 경로에 백슬래시가 포함되어 있다고 말하면 경로를 정방향 슬래시로 작성하십시오. 예를 들어 `./commands/deploy.md`4116* 경로 또는 플러그인 내부에서 그 위에 있는 폴더가 플러그인 외부로 이어지는 심볼릭 링크인 경우 심볼릭 링크를 그것이 가리키는 대상의 복사본으로 바꾸십시오.

4117* 메시지가 플러그인이 선언한 경로에 백슬래시가 포함되어 있다고 말하면 경로를 정방향 슬래시로 작성하십시오. 예를 들어 `./commands/deploy.md`

4118* 메시지가 `EACCES`로 끝나면 경로가 지정하는 파일 또는 폴더로 이어지는 모든 디렉터리에 대한 실행 권한을 복원하십시오. 경로 위의 디렉터리를 확인한 다음 도달하는 각 심볼릭 링크를 따라가 그것이 가리키는 위치로 이어지는 디렉터리를 확인하십시오. 다른 오류 코드의 경우 [확인할 수 없는 경로의 원인 및 단계](#path-could-not-be-checked)에서 찾아보십시오.

4033* 동일한 마켓플레이스의 다른 플러그인과 파일을 공유하려면 플러그인 디렉터리 내의 심볼릭 링크로 연결하고 [심볼릭 링크 규칙](/docs/ko/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)을 따르십시오.4119* 동일한 마켓플레이스의 다른 플러그인과 파일을 공유하려면 플러그인 디렉터리 내의 심볼릭 링크로 연결하고 [심볼릭 링크 규칙](/docs/ko/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)을 따르십시오.

4034 4120 

4121### Plugin not loaded: its manifest was not read

4122 

4123Claude Code는 `.claude-plugin/plugin.json`에 있는 마켓플레이스 플러그인의 [매니페스트](/docs/ko/plugins/manifest-reference)가 플러그인 내부에 있는지 확인할 수 없었으므로 해당 플러그인에서 아무것도 로드하지 않습니다. [로컬 마켓플레이스](/docs/ko/plugins/loading#in-place-and-copied-plugins)의 플러그인의 경우 Claude Code는 매니페스트가 해당 마켓플레이스 내부에 있는지도 확인할 수 없었습니다. 메시지는 `/plugin` **오류** 탭에 나타나며, 끝부분의 이유는 Claude Code가 발견한 내용을 알려 줍니다.

4124 

4125예를 들어 이 메시지는 `.claude-plugin` 폴더가 마켓플레이스 외부로 이어지는 심볼릭 링크인 로컬 마켓플레이스의 플러그인에 대한 것입니다:

4126 

4127```text theme={null}

4128Plugin not loaded: its manifest /home/user/my-marketplace/my-plugin/.claude-plugin/plugin.json was not read, because it resolves to /home/user/dotfiles/my-plugin/.claude-plugin/plugin.json, outside the plugin directory and its marketplace directory

4129```

4130 

4131**수행할 작업:**

4132 

4133* 이유가 `EACCES`로 끝나면 매니페스트로 이어지는 모든 디렉터리에 대한 실행 권한을 복원하십시오. 매니페스트 위의 디렉터리를 확인한 다음 도달하는 각 심볼릭 링크를 따라가 그것이 가리키는 위치로 이어지는 디렉터리를 확인하십시오. 다른 오류 코드의 경우 [확인할 수 없는 경로의 원인 및 단계](#path-could-not-be-checked)에서 찾아보십시오.

4134* 플러그인을 유지 관리하고 있으며 이유에 매니페스트가 확인되는 위치가 표시되어 있다면 `.claude-plugin` 폴더 또는 `plugin.json` 자체가 그 위치로 이어지는 심볼릭 링크입니다. 해당 링크를 그것이 가리키는 대상의 복사본으로 바꾸십시오.

4135* 플러그인을 설치했지만 유지 관리하지 않는 경우 메시지를 작성자에게 보고하십시오.

4136 

4035### Path could not be checked4137### Path could not be checked

4036 4138 

4037Claude Code는 플러그인 경로가 존재하는지 운영 체제에 물었고 "찾을 수 없음" 이외의 오류를 받았으므로 경로가 이름을 지정하는 것을 로드하지 않습니다. 플러그인의 얼마나 많은 부분이 로드되는지는 어느 경로가 실패했는지에 따라 다릅니다:4139Claude Code는 플러그인 경로가 존재하는지 운영 체제에 물었고 "찾을 수 없음" 이외의 오류를 받았으므로 경로가 이름을 지정하는 것을 로드하지 않습니다. 플러그인의 얼마나 많은 부분이 로드되는지는 어느 경로가 실패했는지에 따라 다릅니다:


4226 4328 

4227v2.1.281 이전에는 Read, Write, Edit 또는 NotebookEdit 경로의 null 바이트가 `Path contains null bytes`라는 이름의 오류로 전체 턴을 종료했으며 도구는 실행되지 않았습니다.4329v2.1.281 이전에는 Read, Write, Edit 또는 NotebookEdit 경로의 null 바이트가 `Path contains null bytes`라는 이름의 오류로 전체 턴을 종료했으며 도구는 실행되지 않았습니다.

4228 4330 

4331### File is too large to read as an image

4332 

4333Claude가 [Read 도구](/docs/ko/tools-reference#read-tool-behavior)로 파일을 이미지로 읽으려고 했지만, 파일이 Read가 이미지 파일에서 로드하는 최대 크기인 128MB보다 큽니다. 아무것도 읽히지 않았으며 Claude는 이 오류를 도구 결과로 받습니다:

4334 

4335```text wrap theme={null}

4336File is too large to read as an image (the limit is 128MB): <path>. If it is an image, resize it or export a smaller copy, then read that.

4337```

4338 

4339경로가 일반 파일이 아닌 파이프 또는 장치이면 Read는 128MB를 초과하는 데이터가 도착하는 즉시 중지하고 대신 이 오류를 반환합니다:

4340 

4341```text wrap theme={null}

4342Cannot read this as an image: <path> is a pipe or a device, not a regular file, and it sent more than 128MB without ending.

4343```

4344 

4345**할 일:**

4346 

4347* Claude가 `File is too large` 메시지에 따라 이미지 크기를 조정하거나 더 작은 사본을 읽었다면 아무것도 하지 않습니다.

4348* Claude가 오류에서 멈췄다면 예를 들어 더 낮은 해상도로 128MB 미만의 사본을 직접 내보내고 Claude가 해당 파일을 사용하도록 지정합니다.

4349* 경로가 파이프 또는 장치였다면 대신 일반 이미지 파일을 Claude에 지정합니다.

4350 

4229### subagent\_type is required4351### subagent\_type is required

4230 4352 

4231```text theme={null}4353```text theme={null}


4316* [디버그 로그](/docs/ko/debug-your-config)가 지정하는 폴더에서 `claude`를 실행하고 신뢰 대화를 수락합니다. 정의는 Claude Code가 팀원을 다시 복구할 때 다시 적용됩니다. 리드 세션을 다시 시작할 필요가 없습니다.4438* [디버그 로그](/docs/ko/debug-your-config)가 지정하는 폴더에서 `claude`를 실행하고 신뢰 대화를 수락합니다. 정의는 Claude Code가 팀원을 다시 복구할 때 다시 적용됩니다. 리드 세션을 다시 시작할 필요가 없습니다.

4317* 또는 `~/.claude.json`에서 `hasTrustDialogAccepted` 항목을 `true`로 설정합니다. 디버그 로그가 인쇄하는 정확한 `projects["<path>"]` 키를 사용합니다.4439* 또는 `~/.claude.json`에서 `hasTrustDialogAccepted` 항목을 `true`로 설정합니다. 디버그 로그가 인쇄하는 정확한 `projects["<path>"]` 키를 사용합니다.

4318 4440 

4441### Only a teammate can approve a shutdown request

4442 

4443Claude Code는 [에이전트 팀](/docs/ko/agent-teams) 종료 승인을 보낸 세션이 팀원으로 실행 중이 아니므로 해당 승인을 거부했습니다. 아무것도 전송되지 않았고 아무것도 종료되지 않았습니다. 거부는 전송 세션의 도구 결과에 나타납니다:

4444 

4445```text wrap theme={null}

4446Only a teammate can approve a shutdown request, and this session is not running as one. Nothing was sent. To shut down a teammate, send that teammate a shutdown_request message. The teammate is the one that approves it.

4447```

4448 

4449**할 일:**

4450 

4451* 리드 세션에서 거부가 나타났다면 먼저 팀원이 그 사이에 종료되었는지 확인합니다. 거부는 대신 `shutdown_request`를 보내라는 지시와 함께 Claude에 반환되며 턴이 계속됩니다. 대화형 리드 세션에서는 팀원이 종료 요청을 승인하면 `<name> has shut down.`이 표시됩니다.

4452* 팀원이 아직 실행 중이면 리드의 프롬프트에서 팀원을 종료하도록 요청합니다. 예를 들어 `Ask the researcher teammate to shut down`입니다. [팀원 종료](/docs/ko/agent-teams#shut-down-teammates)를 참조합니다.

4453* `claude --resume`으로 직접 재개한 이전 팀원이 이 거부를 받았다면 아무것도 전송되지 않았습니다. 해당 세션을 종료하려면 해당 세션의 프롬프트에서 `/exit`를 실행합니다.

4454 

4319### Message too large for cross-session delivery4455### Message too large for cross-session delivery

4320 4456 

4321Claude의 [교차 세션 메시지](/docs/ko/cross-session-messaging)가 이 머신의 다른 세션으로 너무 길어서 보낼 수 없었습니다. Claude Code가 거부했고 수신 세션이 아무것도 받지 못했습니다. 거부는 터미널의 배너가 아닌 전송 세션의 도구 결과에 나타납니다. 두 크기와 메시지를 맞추는 방법을 지정합니다:4457Claude의 [교차 세션 메시지](/docs/ko/cross-session-messaging)가 이 머신의 다른 세션으로 너무 길어서 보낼 수 없었습니다. Claude Code가 거부했고 수신 세션이 아무것도 받지 못했습니다. 거부는 터미널의 배너가 아닌 전송 세션의 도구 결과에 나타납니다. 두 크기와 메시지를 맞추는 방법을 지정합니다:


4449 4585 

4450### 디스크 할당량 또는 임시 파일 시스템이 가득 참4586### 디스크 할당량 또는 임시 파일 시스템이 가득 참

4451 4587 

4452Claude Code는 각 Bash 및 PowerShell 명령의 출력을 임시 디렉터리 아래의 파일에 저장합니다. 명령이 0이 아닌 코드로 종료되고 출력이 전혀 없으면 Claude Code는 해당 파일을 보유한 파일 시스템이 공간 또는 inode가 부족한지, 또는 디스크 할당량이 사용되었는지 확인합니다. 그렇다면 진단이 빈 출력 대신 명령의 결과에 나타납니다:4588Claude Code는 각 Bash 및 PowerShell 명령의 출력을 임시 디렉터리 아래의 파일에 저장합니다. 명령 결과에 나타나는 이러한 메시지는 해당 디렉터리를 보유한 파일 시스템 또는 그 파일 시스템에 대한 디스크 할당량이 가득 찼음을 의미합니다.

4589 

4590파일 시스템 또는 그에 대한 할당량이 가득 차서 Claude Code가 해당 파일을 만들 수 없으면 명령이 시작되지 않으며 결과는 다음과 같습니다:

4591 

4592```text wrap theme={null}

4593The command was not started: this computer's disk is full (ENOSPC), so the file that captures command output could not be created. Nothing ran. If this is the user's own computer, tell them before deleting anything to make room.

4594```

4595 

4596명령이 0이 아닌 코드로 종료되고 출력이 전혀 없으면 Claude Code는 출력 파일을 보유한 파일 시스템을 확인합니다. 해당 파일 시스템에 공간 또는 inode가 부족하거나 디스크 할당량이 모두 사용되었으면 진단이 명령 결과의 빈 출력을 대체합니다:

4453 4597 

4454```text wrap theme={null}4598```text wrap theme={null}

4455Your disk quota is full on the filesystem with Claude Code's temp directory /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks (EDQUOT), so any output this command printed was lost, and it may have failed because it could not write. Delete files you no longer need there, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another filesystem.4599Your disk quota is full on the filesystem with Claude Code's temp directory /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks (EDQUOT), so any output this command printed was lost, and it may have failed because it could not write. Delete files you no longer need there, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another filesystem.


4460* `Your disk quota is full ... (EDQUOT)`: 해당 파일 시스템에 대한 사용자 본인의 할당량이 사용되었습니다. 할당량은 파일 시스템이 여전히 여유 공간을 표시하는 동안 가득 찰 수 있습니다.4604* `Your disk quota is full ... (EDQUOT)`: 해당 파일 시스템에 대한 사용자 본인의 할당량이 사용되었습니다. 할당량은 파일 시스템이 여전히 여유 공간을 표시하는 동안 가득 찰 수 있습니다.

4461* `The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC)`: 파일 시스템 또는 할당량에 공간이 남지 않았습니다.4605* `The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC)`: 파일 시스템 또는 할당량에 공간이 남지 않았습니다.

4462* `Command output was lost: the temp filesystem at ... is full` 또는 `... is out of inodes`: 파일 시스템에 거의 여유 공간이 남지 않았거나 inode가 부족합니다.4606* `Command output was lost: the temp filesystem at ... is full` 또는 `... is out of inodes`: 파일 시스템에 거의 여유 공간이 남지 않았거나 inode가 부족합니다.

4607* `The command was not started: this computer's disk is full (ENOSPC)` 또는 `... (EDQUOT)`: 파일 시스템에 출력 파일을 위한 공간이 남지 않았거나, `EDQUOT`의 경우 해당 파일 시스템에 대한 사용자 본인의 할당량이 사용되었습니다.

4463 4608 

4464**할 일:**4609**할 일:**

4465 4610 

4466* Claude Code의 임시 디렉터리를 보유한 파일 시스템에서 더 이상 필요하지 않은 파일을 삭제합니다. `EDQUOT`의 경우 사용자 본인의 할당량에 포함되는 파일을 삭제합니다. `out of inodes`의 경우 각 파일이 크기에 관계없이 하나의 inode를 차지하므로 몇 개의 큰 파일이 아닌 많은 파일을 삭제합니다.4611* Claude Code의 임시 디렉터리를 보유한 파일 시스템에서 더 이상 필요하지 않은 파일을 삭제합니다. 메시지에 해당 디렉터리가 표시되지 않으면 [`CLAUDE_CODE_TMPDIR`](/docs/ko/env-vars) 참조에서 기본 위치를 확인합니다. `EDQUOT`의 경우 사용자 본인의 할당량에 포함되는 파일을 삭제합니다. `out of inodes`의 경우 각 파일이 크기에 관계없이 하나의 inode를 차지하므로 몇 개의 큰 파일이 아닌 많은 파일을 삭제합니다.

4467* 또는 [`CLAUDE_CODE_TMPDIR`](/docs/ko/env-vars)을 여유 공간이 있는 파일 시스템의 디렉터리로 설정하여 Claude Code를 다시 시작합니다.4612* 또는 [`CLAUDE_CODE_TMPDIR`](/docs/ko/env-vars)을 여유 공간이 있는 파일 시스템의 디렉터리로 설정하여 Claude Code를 다시 시작합니다.

4468* 그런 다음 Claude에 명령을 다시 실행하도록 합니다. 인쇄한 출력은 손실되었으며 잘리지 않았습니다.4613* 그런 다음 Claude에 명령을 다시 실행하도록 합니다.

4614 

4615v2.1.305 이전에는 디스크가 가득 차서 Claude Code가 시작할 수 없었던 명령이 운영 체제의 오류 텍스트만 반환했습니다. 해당 텍스트는 예를 들어 `ENOSPC: no space left on device, open <path>.output`였습니다.

4469 4616 

4470### File is not valid UTF-84617### File is not valid UTF-8

4471 4618 


4524* Windows에서 Claude가 공유에서 직접 게시할 수 있게 하려면 공유를 드라이브 문자에 매핑하고 Claude Code를 시작할 때 해당 드라이브를 전달합니다. 예를 들어 PowerShell에서 `net use Z: \\server\share`를 실행한 다음 `claude --add-dir Z:\`를 실행합니다. 그러면 Claude가 해당 드라이브의 파일을 게시할 수 있습니다. 세션 도중 `/add-dir`로 드라이브를 추가하는 것으로는 충분하지 않습니다.4671* Windows에서 Claude가 공유에서 직접 게시할 수 있게 하려면 공유를 드라이브 문자에 매핑하고 Claude Code를 시작할 때 해당 드라이브를 전달합니다. 예를 들어 PowerShell에서 `net use Z: \\server\share`를 실행한 다음 `claude --add-dir Z:\`를 실행합니다. 그러면 Claude가 해당 드라이브의 파일을 게시할 수 있습니다. 세션 도중 `/add-dir`로 드라이브를 추가하는 것으로는 충분하지 않습니다.

4525* macOS 또는 Linux에서는 `/mnt` 또는 `/Volumes` 아래와 같은 디렉터리에 공유를 마운트하고, 자동 마운트 경로 대신 해당 경로에서 게시합니다.4672* macOS 또는 Linux에서는 `/mnt` 또는 `/Volumes` 아래와 같은 디렉터리에 공유를 마운트하고, 자동 마운트 경로 대신 해당 경로에서 게시합니다.

4526 4673 

4674### Not published: Claude sent the same content again after a newer version of the artifact turned it away

4675 

4676Artifact 호출 아래에 표시되는 이 빨간색 줄은 Claude Code가 반복된 게시를 중지했음을 의미합니다: [아티팩트](/docs/ko/artifacts)는 업데이트되지 않았으며, Claude가 게시에 사용하는 파일에도 아무것도 쓰이지 않았습니다. Claude가 게시하지 않고 멈추지 않는 한 아무것도 할 필요가 없습니다.

4677 

4678세션 앞부분에서 Claude Code는 아티팩트에 더 새로운 버전이 있어서 게시를 거절했습니다. 예를 들어 [편집자](/docs/ko/artifacts#let-someone-edit-with-you)나 사용자의 다른 세션이 게시한 버전입니다. 줄의 끝부분은 Claude가 다음에 해야 할 일을 알려줍니다:

4679 

4680```text wrap theme={null}

4681Not published: Claude sent the same content again after a newer version of the artifact turned it away. Claude needs to work from that newer version first.

4682Not published: Claude sent the same content again after a newer version of the artifact turned it away. The artifact hasn't changed since, so publishing it once more should go through.

4683Not published: Claude sent its changes again over the same file after a newer version of the artifact turned them away. Claude needs to work from that newer version first.

4684Not published: Claude sent its changes again over the same file after a newer version of the artifact turned them away. The artifact hasn't changed since, so publishing once more should go through.

4685```

4686 

4687**할 일:**

4688 

4689* **`Claude needs to work from that newer version first`로 끝나는 경우**: Claude가 거기서 멈췄다면 아티팩트의 현재 버전을 가져와 변경 사항을 병합한 다음 다시 게시하도록 요청합니다.

4690* **`should go through`로 끝나는 경우**: Claude가 거기서 멈췄다면 다시 게시하도록 요청합니다.

4691 

4527### Cowork 세션에서 연결된 폴더 외부의 로컬 파일 읽기4692### Cowork 세션에서 연결된 폴더 외부의 로컬 파일 읽기

4528 4693 

4529Claude Desktop 앱에서 머신에서 실행 중인 [Cowork](https://claude.com/docs/cowork/overview) 세션에서 Claude가 [아티팩트](/docs/ko/artifacts)에 대한 로컬 파일의 이름을 지정했습니다. Claude Code가 파일이 세션의 연결된 폴더 내의 일반 파일인지 확인할 수 없습니다: 경로가 해당 폴더 외부에 있거나, 심볼릭 링크를 통과하거나, 나타나는 것과 다른 파일의 이름을 지정할 수 있는 방식으로 철자가 지정되었습니다. 그러한 파일을 읽으려면 승인이 필요하며, 승인 카드를 표시할 수 없는 세션(예: 모든 승인을 건너뛰도록 설정된 세션)에서 Claude Code는 읽기를 거부합니다.4694Claude Desktop 앱에서 머신에서 실행 중인 [Cowork](https://claude.com/docs/cowork/overview) 세션에서 Claude가 [아티팩트](/docs/ko/artifacts)에 대한 로컬 파일의 이름을 지정했습니다. Claude Code가 파일이 세션의 연결된 폴더 내의 일반 파일인지 확인할 수 없습니다: 경로가 해당 폴더 외부에 있거나, 심볼릭 링크를 통과하거나, 나타나는 것과 다른 파일의 이름을 지정할 수 있는 방식으로 철자가 지정되었습니다. 그러한 파일을 읽으려면 승인이 필요하며, 승인 카드를 표시할 수 없는 세션(예: 모든 승인을 건너뛰도록 설정된 세션)에서 Claude Code는 읽기를 거부합니다.


4816* 루프를 계속하려면 [세션에 답장](/docs/ko/agent-view#peek-and-reply)하여 `keep the loop running`과 같이 그렇게 말합니다. Claude는 답장과 함께 알림을 읽고 다음 깨우기를 예약할 수 있습니다.4981* 루프를 계속하려면 [세션에 답장](/docs/ko/agent-view#peek-and-reply)하여 `keep the loop running`과 같이 그렇게 말합니다. Claude는 답장과 함께 알림을 읽고 다음 깨우기를 예약할 수 있습니다.

4817* 루프를 더 이상 사용하지 않으려면 아무것도 하지 않습니다. 루프는 이미 중지되었습니다.4982* 루프를 더 이상 사용하지 않으려면 아무것도 하지 않습니다. 루프는 이미 중지되었습니다.

4818 4983 

4984### No LLM gateway: a gateway set in your shell isn't passed to a session opened from another folder

4985 

4986이 메시지를 표시하는 [백그라운드 세션](/docs/ko/agent-view)은 [LLM 게이트웨이](/docs/ko/llm-gateway)를 사용하지 않습니다. 게이트웨이 주소를 받지 못했으므로 요청이 실패합니다. 메시지는 Claude의 응답 대신 대화에 나타나며, 세션의 ID와 폴더가 채워져 있습니다:

4987 

4988```text wrap theme={null}

4989No LLM gateway: a gateway set in your shell isn't passed to a session opened from another folder. To fix, run `claude respawn abc12345` from ~/project in another terminal where your gateway is set, or set ANTHROPIC_BASE_URL and its API key or token in a settings file's env block.

4990```

4991 

4992세션에 연결되어 있는 동안 프롬프트 아래의 알림에는 짧은 형식인 `No LLM gateway: opened from another folder · respawn from ~/project`가 표시됩니다.

4993 

4994`ANTHROPIC_BASE_URL`이 게이트웨이로 설정된 상태에서 메시지가 명시하는 폴더가 아닌 다른 폴더에서 세션을 디스패치하거나, 깨우거나, 다시 시작했습니다. 셸에서 내보낸 게이트웨이가 백그라운드 세션에 전달되는 경우는 [LLM 게이트웨이](/docs/ko/agent-view#llm-gateway)를 참조하십시오.

4995 

4996**할 일:**

4997 

4998* **설정에서 게이트웨이를 지정하는 프로젝트에서 에이전트 뷰를 사용한 경우**: `ANTHROPIC_BASE_URL`과 해당 API 키 또는 토큰을 [설정 파일의 `env` 블록](/docs/ko/llm-gateway-connect#set-in-a-settings-file)에 넣습니다. `~/.claude/settings.json` 또는 세션 자체 프로젝트의 `.claude/settings.local.json`을 사용하십시오. 둘 다 다시 시작된 세션이 읽는 파일입니다. 그런 다음 아무 폴더에서나 셸에서 `claude respawn <id>`를 실행합니다.

4999* **터미널에서 게이트웨이를 내보낸 경우**: 게이트웨이 변수를 내보낸 터미널에서 메시지가 명시하는 폴더로 `cd`한 다음 메시지의 `claude respawn <id>` 명령을 실행합니다. 세션은 저장된 대화에서 다시 시작됩니다.

5000 * 게이트웨이는 [슈퍼바이저](/docs/ko/agent-view#the-supervisor-process) 자체가 같은 게이트웨이를 내보낸 셸에서 시작된 경우에만 세션에 전달됩니다. 그렇지 않은 경우 [`Could not resolve authentication method`로 디스패치가 실패하는 경우](/docs/ko/agent-view#dispatch-fails-with-could-not-resolve-authentication-method)에 설명된 대로 해당 터미널에서 슈퍼바이저를 다시 시작한 다음 respawn 명령을 다시 실행합니다.

5001 

5002v2.1.302 이전에는 이 상황의 백그라운드 세션이 폴더를 명시하지 않고 대신 [`Not logged in · Please run /login`](#not-logged-in)과 같은 로그인 오류를 표시했습니다.

5003 

4819### CLAUDE\_CODE\_PROCESS\_WRAPPER 런처 오류5004### CLAUDE\_CODE\_PROCESS\_WRAPPER 런처 오류

4820 5005 

4821[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/ko/corporate-launcher)가 설정되었으며 해당 값을 사용할 수 없으므로 Claude Code는 런처 없이 실행하는 대신 영향을 받는 프로세스를 시작하기를 거부합니다. 구성 문제는 변수 이름으로 시작하고 이유를 명시하는 메시지로 보고됩니다. 예를 들어:5006[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/ko/corporate-launcher)가 설정되었으며 해당 값을 사용할 수 없으므로 Claude Code는 런처 없이 실행하는 대신 영향을 받는 프로세스를 시작하기를 거부합니다. 구성 문제는 변수 이름으로 시작하고 이유를 명시하는 메시지로 보고됩니다. 예를 들어:


5094 5279 

5095## 구성 경고5280## 구성 경고

5096 5281 

5097Claude Code는 이러한 메시지 대부분을 대화가 아닌 stderr에 기록하며, 대부분 시작 시에 기록합니다. 메시지가 디버그 로그나 대화 보기의 시작 알림 같은 다른 곳에 나타나거나, 요청 시점의 [인식되지 않은 모델 진단 줄](#unrecognized-model-id-on-a-request)처럼 다른 시점에 나타나는 경우 해당 항목에 그렇게 명시되어 있습니다.5282대화형 세션에서 Claude Code가 시작 시 표시한 경고를 찾으려면 먼저 시작 배너 아래를 확인한 다음 디버그 로그를 확인하세요:

5283 

5284* **시작 배너 아래의 행**: [`⚠ Deny rule Bsh matches no tool · check for typos`](#matches-no-tool)처럼 [권한 규칙](/docs/ko/permissions)에 관한 일부 경고

5285* **디버그 로그**: Claude Code는 디버그 모드에서만 이 로그를 유지합니다. 로그의 경고를 읽으려면 셸에서 `claude --debug-file <path>`로 Claude Code를 시작한 다음 해당 경로의 파일을 여세요.

5286 

5287텍스트 출력을 사용하는 [비대화형 모드](/docs/ko/headless)에서는 [백그라운드 세션](/docs/ko/agent-view)이 아닌 경우 stderr에서 시작 경고를 확인하세요.

5288 

5289v2.1.305 이전에는 대화형 세션에서도 stderr를 확인하세요. 현재 배너 아래에 행으로 표시되는 권한 규칙 경고도 마찬가지입니다.

5098 5290 

5099### Claude Code가 복구 불가능한 인터페이스 오류 후 종료됨5291### Claude Code가 복구 불가능한 인터페이스 오류 후 종료됨

5100 5292 


5214 5406 

5215### 작업 디렉터리가 네트워크 경로임5407### 작업 디렉터리가 네트워크 경로임

5216 5408 

5217Claude Code는 네트워크 경로를 작업 디렉터리로 추가하지 않습니다. 네트워크 경로를 조회하면 경로에 지정된 호스트에 연결할 수 있으며, Windows에서는 이 연결로 호스트에 자격 증명이 전송될 수 있으므로 Claude Code는 조회하지 않고 경로를 거부합니다. 이러한 경로로 `/add-dir`을 실행하거나 시작 시 경고로 이 메시지가 표시됩니다. 시작 시 나타나면 Claude Code는 해당 디렉터리 없이 시작합니다.5409Claude Code는 네트워크 경로를 작업 디렉터리로 추가하지 않습니다. 네트워크 경로를 조회하면 경로에 지정된 호스트에 연결할 수 있으며, Windows에서는 이 연결로 호스트에 자격 증명이 전송될 수 있습니다. 따라서 Claude Code는 조회하지 않고 경로를 거부합니다.

5410 

5411네트워크 경로로 `/add-dir`을 실행하면 다음 메시지가 표시됩니다:

5218 5412 

5219```text theme={null}5413```text theme={null}

5220\\server\share is a network path, which cannot be added as a working directory. On Windows, map the share to a drive letter and pass it at launch with --add-dir (a drive letter added mid-session does not yet carry remote-read trust).5414\\server\share is a network path, which cannot be added as a working directory. On Windows, map the share to a drive letter and pass it at launch with --add-dir (a drive letter added mid-session does not yet carry remote-read trust).

5221```5415```

5222 5416 

5417대신 시작 시 `--add-dir` 또는 `permissions.additionalDirectories`로 네트워크 경로를 전달하면 Claude Code는 해당 디렉터리 없이 시작합니다. 대화형 세션에서는 메시지가 다른 [시작 경고](#configuration-warnings)와 함께 디버그 로그에 기록되므로 시작 시 메시지가 표시되지 않습니다.

5418 

5223Claude Code가 이 방식으로 거부하는 경로는 다음과 같습니다:5419Claude Code가 이 방식으로 거부하는 경로는 다음과 같습니다:

5224 5420 

5225* `\\server\share` 같은 UNC 공유5421* `\\server\share` 같은 UNC 공유


5465 5661 

5466v2.1.260 이전에는 Claude Code가 괄호가 짝이 맞지 않는 규칙을 `Mismatched parentheses`로 보고했습니다.5662v2.1.260 이전에는 Claude Code가 괄호가 짝이 맞지 않는 규칙을 `Mismatched parentheses`로 보고했습니다.

5467 5663 

5468### 파일 권한 검사와 일치하지 않음5664### Matches no tool · check for typos

5469 5665 

5470Claude Code는 [설정 파일](/docs/ko/settings#where-settings-live), [관리형 설정](/docs/ko/managed-settings), 또는 `--allowedTools`, `--disallowedTools`, `--settings` 플래그 값에서 경로가 포함된 `Write`, `NotebookEdit`, `MultiEdit`, 또는 `Glob` [권한 규칙](/docs/ko/permissions#read-and-edit)을 찾았습니다. Claude Code는 파일 권한을 `Edit` 및 `Read` 규칙에 대해서만 검사하므로, 다른 파일 도구를 명시하는 경로 규칙은 전혀 참조하지 않습니다. 규칙은 유지되며 다른 것은 변경되지 않습니다. 경고는 규칙, 괄호 안의 소스, 그리고 대신 작성할 규칙을 명시합니다:5666시작 배너 아래의 이 행은 Claude Code가 도구 이름을 인식하지 못하는 거부 또는 확인 [권한 규칙](/docs/ko/permissions)을 명시하며, 해당 규칙은 의도한 도구에 적용되지 않습니다. `Bsh`로 작성한 거부 규칙은 Bash에 적용되지 않으며, 도구의 표준 이름 대신 트랜스크립트에 표시되는 레이블을 사용한 규칙도 마찬가지입니다. 행은 작성한 그대로의 규칙을 반복해서 보여 줍니다:

5471 5667 

5472```text theme={null}5668```text theme={null}

5473Permission deny rule (.claude/settings.json): Write(docs/**) is not matched by file permission checks — only Edit(path) rules are. Use Edit(docs/**) instead (Edit rules cover all file-editing tools).5669⚠ Deny rule Bsh matches no tool · check for typos

5670```

5671 

5672텍스트 출력을 사용하는 [비대화형 모드](/docs/ko/headless)에서는 Claude Code가 대신 더 긴 형태의 경고를 stderr에 출력합니다:

5673 

5674```text theme={null}

5675Permission deny rule "Bsh" matches no known tool — check for typos.

5474```5676```

5475 5677 

5476**할 일:**5678**할 일:**

5477 5679 

5680* 규칙의 도구 이름을 수정하세요. 예를 들어 `Bsh` 대신 `Bash`를 사용합니다. 표준 이름은 [도구 참조](/docs/ko/tools-reference)에서 확인하세요.

5681* 규칙이 정의된 위치를 찾으려면 세션에서 `/permissions`를 실행하고 규칙을 선택하세요. 세부 정보에 `From project local settings`, 또는 `--disallowedTools` 값의 경우 `From CLI argument`처럼 규칙의 출처가 표시됩니다.

5682* 세부 정보가 `From enterprise managed settings`로 표시되면 사용자가 직접 해당 규칙을 변경할 수 없으므로 [관리형 설정](/docs/ko/managed-settings)을 유지 관리하는 담당자에게 해당 행을 전달하세요.

5683 

5684[백그라운드 세션](/docs/ko/agent-view)에서 또는 `--output-format json`이나 `stream-json`을 사용하는 경우, Claude Code는 경고를 stderr 대신 디버그 로그에 기록합니다. `--debug`로 실행하면 `~/.claude/debug/<session-id>.txt`에서 확인할 수 있습니다.

5685 

5686v2.1.305 이전에는 대화형 세션이 행을 표시하는 대신 시작 시 더 긴 형태의 경고를 stderr에 출력했습니다.

5687 

5688### 파일 권한 검사와 일치하지 않음

5689 

5690Claude Code는 [설정 파일](/docs/ko/settings#where-settings-live), [관리형 설정](/docs/ko/managed-settings), 또는 `--allowedTools`, `--disallowedTools`, `--settings` 플래그 값에서 경로가 포함된 `Write`, `NotebookEdit`, `MultiEdit`, 또는 `Glob` [권한 규칙](/docs/ko/permissions#read-and-edit)을 찾았습니다. Claude Code는 파일 권한을 `Edit` 및 `Read` 규칙에 대해서만 검사하므로, 다른 파일 도구를 명시하는 경로 규칙은 전혀 참조하지 않습니다. 규칙은 유지되며 다른 것은 변경되지 않습니다.

5691 

5692* **대화형 세션**: 전체 경고는 [디버그 로그](#configuration-warnings)에 기록되며, 이 형태의 거부 또는 확인 규칙은 시작 배너 아래에 다음 행으로도 표시됩니다:

5693 

5694 ```text theme={null}

5695 ⚠ Deny rule Write(docs/**) never matches · use Edit(docs/**)

5696 ```

5697 

5698 이 형태의 허용 규칙은 행이 표시되지 않습니다. 규칙이 정의된 위치를 찾으려면 세션에서 `/permissions`를 실행하고 규칙을 선택하세요.

5699* **텍스트 출력을 사용하는 [비대화형 모드](/docs/ko/headless)**: stderr의 전체 경고는 규칙, 괄호 안의 소스, 그리고 대신 작성할 규칙을 명시합니다:

5700 

5701 ```text theme={null}

5702 Permission deny rule (.claude/settings.json): Write(docs/**) is not matched by file permission checks — only Edit(path) rules are. Use Edit(docs/**) instead (Edit rules cover all file-editing tools).

5703 ```

5704* **[백그라운드 세션](/docs/ko/agent-view), 또는 `--output-format json`이나 `stream-json`**: 기계가 읽는 출력을 깨끗하게 유지하기 위해 전체 경고는 stderr 대신 디버그 로그에 기록됩니다. `--debug`로 실행하면 `~/.claude/debug/<session-id>.txt`에서 확인할 수 있습니다.

5705 

5706**할 일:**

5707 

5478* `Write(path)`, `NotebookEdit(path)`, 레거시 `MultiEdit(path)` 규칙을 `Edit(path)`로 바꾸세요. `Edit` 규칙은 모든 파일 편집 도구에 적용됩니다.5708* `Write(path)`, `NotebookEdit(path)`, 레거시 `MultiEdit(path)` 규칙을 `Edit(path)`로 바꾸세요. `Edit` 규칙은 모든 파일 편집 도구에 적용됩니다.

5479* Claude Code가 경고 없이 `Glob` 규칙을 수락하는 `--allowedTools`를 제외하고, `Glob(path)` 규칙을 `Read(path)`로 바꾸세요.5709* Claude Code가 경고 없이 `Glob` 규칙을 수락하는 `--allowedTools`를 제외하고, `Glob(path)` 규칙을 `Read(path)`로 바꾸세요.

5480* 경고가 괄호 안에 명시한 소스에서 규칙을 수정하세요: 설정 파일 경로, 또는 `--allowed-tools` 및 `--disallowed-tools`의 경우 플래그 자체입니다. 디스크에 존재하지 않는 `claude-settings-<hash>.json` 경로는 인라인 `--settings` 값을 나타냅니다. 해당 플래그에 전달하는 JSON을 수정하세요.5710* 전체 경고가 괄호 안에 명시한 소스에서 규칙을 수정하세요: 설정 파일 경로, 또는 `--allowed-tools` 및 `--disallowed-tools`의 경우 플래그 자체입니다. 디스크에 존재하지 않는 `claude-settings-<hash>.json` 경로는 인라인 `--settings` 값을 나타냅니다. 해당 플래그에 전달하는 JSON을 수정하세요.

5481* `Write` 또는 `Glob` 같은 도구 이름만 있는 규칙은 그대로 두세요. Claude Code는 이러한 규칙을 [도구 수준](/docs/ko/permissions#match-all-uses-of-a-tool)에서 일치시키며 경고하지 않습니다.5711* `Write` 또는 `Glob` 같은 도구 이름만 있는 규칙은 그대로 두세요. Claude Code는 이러한 규칙을 [도구 수준](/docs/ko/permissions#match-all-uses-of-a-tool)에서 일치시키며 경고하지 않습니다.

5482* 소스가 `managed policy settings`로 표시되면 사용자가 직접 해결할 수 없으므로 관리형 설정을 유지 관리하는 담당자에게 경고를 전달하세요.5712* 관리형 설정의 규칙인 경우 전체 경고의 괄호 안에 `managed policy settings`가 표시되고 `/permissions`의 규칙 세부 정보에 `From enterprise managed settings`가 표시됩니다. 사용자가 직접 해결할 수 없으므로 관리형 설정을 유지 관리하는 담당자에게 해당 경고를 전달하세요.

5483 5713 

5484[백그라운드 세션](/docs/ko/agent-view)에서 또는 `--output-format json`이나 `stream-json`을 사용하는 경우, Claude Code는 기계가 읽는 출력을 깨끗하게 유지하기 위해 경고를 stderr 대신 디버그 로그에 기록합니다. `--debug`로 실행하면 `~/.claude/debug/<session-id>.txt`에서 확인할 수 있습니다. v2.1.210 이전에는 Claude Code가 경고 없이 이러한 규칙을 수락했습니다.5714v2.1.210 이전에는 Claude Code가 경고 없이 이러한 규칙을 수락했습니다. v2.1.305 이전에는 대화형 세션이 전체 경고를 stderr에 출력했습니다.

5485 5715 

5486### 명령의 나머지 부분 앞에 와일드카드가 있음5716### 명령의 나머지 부분 앞에 와일드카드가 있음

5487 5717 

5488Claude Code는 [설정 파일](/docs/ko/settings#where-settings-live), [관리형 설정](/docs/ko/managed-settings), 또는 `--allowedTools`나 `--settings` 플래그 값에서 `Bash(git * main)` 또는 `Bash(git -C * status *)`처럼 `*`가 어떤 명령인지를 결정하는 뒤쪽 단어보다 앞에 오는 `Bash` 허용 규칙을 찾았습니다. `*`는 해당 위치에 삽입된 옵션을 포함한 모든 텍스트와 일치합니다. 예를 들어 `Bash(git * main)`은 `git -c core.fsmonitor=<script> diff main`도 승인하는데, 여기서 `-c`는 git이 명령에 지정된 프로그램을 실행하게 만듭니다. [와일드카드 패턴](/docs/ko/permissions#wildcard-patterns)에서 일치 규칙을 확인할 수 있습니다.5718Claude Code는 [설정 파일](/docs/ko/settings#where-settings-live), [관리형 설정](/docs/ko/managed-settings), 또는 `--allowedTools`나 `--settings` 플래그 값에서 `Bash(git * main)` 또는 `Bash(git -C * status *)`처럼 `*`가 어떤 명령인지를 결정하는 뒤쪽 단어보다 앞에 오는 `Bash` 허용 규칙을 찾았습니다. `*`는 해당 위치에 삽입된 옵션을 포함한 모든 텍스트와 일치합니다. 예를 들어 `Bash(git * main)`은 `git -c core.fsmonitor=<script> diff main`도 승인하는데, 여기서 `-c`는 git이 명령에 지정된 프로그램을 실행하게 만듭니다. [와일드카드 패턴](/docs/ko/permissions#wildcard-patterns)에서 일치 규칙을 확인할 수 있습니다.

5489 5719 

5490이 경고는 의도보다 넓은 와일드카드를 가진 규칙의 범위를 좁힐 수 있도록 하기 위한 것입니다. Claude Code는 규칙을 유지하며 일치 방식도 변경하지 않습니다. 경고는 규칙과 괄호 안의 소스를 명시합니다:5720이 경고는 의도보다 넓은 와일드카드를 가진 규칙의 범위를 좁힐 수 있도록 하기 위한 것입니다. Claude Code는 규칙을 유지하며 일치 방식도 변경하지 않습니다. 텍스트 출력을 사용하는 [비대화형 모드](/docs/ko/headless)에서는 stderr의 경고가 규칙과 괄호 안의 소스를 명시합니다:

5491 5721 

5492```text theme={null}5722```text theme={null}

5493Permission allow rule (.claude/settings.json): Bash(git -C * status *) has a wildcard before the rest of the command, so it also matches any options inserted at that position and approves them without a prompt. For git, options such as -c and --exec-path can run arbitrary commands. Replace that * with the exact value you mean, or only use * after the subcommand (for example Bash(git status *)).5723Permission allow rule (.claude/settings.json): Bash(git -C * status *) has a wildcard before the rest of the command, so it also matches any options inserted at that position and approves them without a prompt. For git, options such as -c and --exec-path can run arbitrary commands. Replace that * with the exact value you mean, or only use * after the subcommand (for example Bash(git status *)).

5494```5724```

5495 5725 

5726대화형 세션에서는 전체 경고가 [디버그 로그](#configuration-warnings)에 기록되며, 규칙은 시작 배너 아래에 다음 행으로 표시됩니다:

5727 

5728```text theme={null}

5729⚠ Allow rule Bash(git -C * status *) allows any option at its * · use an exact value

5730```

5731 

5732규칙이 정의된 위치를 찾으려면 세션에서 `/permissions`를 실행하고 규칙을 선택하세요.

5733 

5496**할 일:**5734**할 일:**

5497 5735 

5498* 하위 명령 앞의 `*`를 의도한 정확한 값으로 바꾸세요: `Bash(git * main)` 대신 `Bash(git checkout main)`.5736* 하위 명령 앞의 `*`를 의도한 정확한 값으로 바꾸세요: `Bash(git * main)` 대신 `Bash(git checkout main)`.

5499* 모든 `*`를 하위 명령 뒤로 옮기세요: `Bash(git -C * status *)` 대신 `Bash(git status *)`. 허용하려는 하위 명령마다 규칙을 하나씩 작성하세요.5737* 모든 `*`를 하위 명령 뒤로 옮기세요: `Bash(git -C * status *)` 대신 `Bash(git status *)`. 허용하려는 하위 명령마다 규칙을 하나씩 작성하세요.

5500* 경고가 괄호 안에 명시한 소스에서 규칙을 수정하세요: 설정 파일 경로 또는 `--allowed-tools` 플래그 자체입니다. 디스크에 존재하지 않는 `claude-settings-<hash>.json` 경로는 인라인 `--settings` 값을 나타냅니다. 해당 플래그에 전달하는 JSON을 수정하세요.5738* 전체 경고가 괄호 안에 명시한 소스에서 규칙을 수정하세요: 설정 파일 경로 또는 `--allowed-tools` 플래그 자체입니다. 디스크에 존재하지 않는 `claude-settings-<hash>.json` 경로는 인라인 `--settings` 값을 나타냅니다. 해당 플래그에 전달하는 JSON을 수정하세요.

5501* 소스가 `managed policy settings`로 표시되면 사용자가 직접 해결할 수 없으므로 관리형 설정을 유지 관리하는 담당자에게 경고를 전달하세요.5739* 관리형 설정의 규칙인 경우 전체 경고의 괄호 안에 `managed policy settings`가 표시되고 `/permissions`의 규칙 세부 정보에 `From enterprise managed settings`가 표시됩니다. 사용자가 직접 해결할 수 없으므로 관리형 설정을 유지 관리하는 담당자에게 해당 경고를 전달하세요.

5502 5740 

5503[백그라운드 세션](/docs/ko/agent-view)에서 또는 `--output-format json`이나 `stream-json`을 사용하는 경우, Claude Code는 기계가 읽는 출력을 깨끗하게 유지하기 위해 경고를 stderr 대신 디버그 로그에 기록합니다. `--debug`로 실행하면 `~/.claude/debug/<session-id>.txt`에서 확인할 수 있습니다. v2.1.246 이전에는 Claude Code가 경고 없이 이러한 규칙을 수락했습니다.5741[백그라운드 세션](/docs/ko/agent-view)에서 또는 `--output-format json`이나 `stream-json`을 사용하는 경우, Claude Code는 기계가 읽는 출력을 깨끗하게 유지하기 위해 경고를 stderr 대신 디버그 로그에 기록합니다. `--debug`로 실행하면 `~/.claude/debug/<session-id>.txt`에서 확인할 수 있습니다. v2.1.246 이전에는 Claude Code가 경고 없이 이러한 규칙을 수락했습니다.

5504 5742 

5743v2.1.305 이전에는 대화형 세션이 행을 표시하는 대신 전체 경고를 stderr에 출력했습니다.

5744 

5505### Bash를 거부하면 PowerShell 도구도 꺼짐5745### Bash를 거부하면 PowerShell 도구도 꺼짐

5506 5746 

5507예를 들어 `--disallowedTools Bash`를 사용하거나 설정 파일 중 하나에 `Bash` 또는 `Bash(*)`만 있는 [거부 규칙](/docs/ko/permissions#match-all-uses-of-a-tool)을 사용하여 Bash 도구 전체를 제거했습니다. Git Bash가 설치된 Windows에서는 [Bash를 거부하면 PowerShell 도구도 꺼지므로](/docs/ko/tools-reference#bash-deny-rules-also-turn-off-the-powershell-tool) 세션이 셸 도구 없이 시작됩니다. Claude Code는 시작 시 다음 경고를 출력합니다:5747예를 들어 `--disallowedTools Bash`를 사용하거나 설정 파일 중 하나에 `Bash` 또는 `Bash(*)`만 있는 [거부 규칙](/docs/ko/permissions#match-all-uses-of-a-tool)을 사용하여 Bash 도구 전체를 제거했습니다. Git Bash가 설치된 Windows에서는 [Bash를 거부하면 PowerShell 도구도 꺼지므로](/docs/ko/tools-reference#bash-deny-rules-also-turn-off-the-powershell-tool) 세션이 셸 도구 없이 시작됩니다.

5748 

5749텍스트 출력을 사용하는 [비대화형 모드](/docs/ko/headless)에서는 Claude Code가 시작 시 stderr에 이 경고를 출력하며, 대화형 세션에서는 [디버그 로그](#configuration-warnings)에만 기록합니다:

5508 5750 

5509```text theme={null}5751```text theme={null}

5510Denying Bash also turns off the PowerShell tool, so Claude has neither. To use PowerShell, set CLAUDE_CODE_USE_POWERSHELL_TOOL=1.5752Denying Bash also turns off the PowerShell tool, so Claude has neither. To use PowerShell, set CLAUDE_CODE_USE_POWERSHELL_TOOL=1.


5517 5759 

5518[백그라운드 세션](/docs/ko/agent-view)에서 또는 `--output-format json`이나 `stream-json`을 사용하는 경우, Claude Code는 경고를 stderr 대신 디버그 로그에 기록합니다. `--debug`로 실행하면 `~/.claude/debug/<session-id>.txt`에서 확인할 수 있습니다. v2.1.287 이전에는 Claude Code가 경고를 출력하지 않고 같은 방식으로 PowerShell 도구를 껐습니다.5760[백그라운드 세션](/docs/ko/agent-view)에서 또는 `--output-format json`이나 `stream-json`을 사용하는 경우, Claude Code는 경고를 stderr 대신 디버그 로그에 기록합니다. `--debug`로 실행하면 `~/.claude/debug/<session-id>.txt`에서 확인할 수 있습니다. v2.1.287 이전에는 Claude Code가 경고를 출력하지 않고 같은 방식으로 PowerShell 도구를 껐습니다.

5519 5761 

5762v2.1.305 이전에는 대화형 세션도 시작 시 경고를 stderr에 출력했습니다.

5763 

5520### crossSessionInbound는 accept, hold, refuse 중 하나여야 함5764### crossSessionInbound는 accept, hold, refuse 중 하나여야 함

5521 5765 

5522설정 파일이 [`crossSessionInbound`](/docs/ko/settings-reference#crosssessioninbound)를 오타 `"reject"`처럼 Claude Code가 인식하지 못하는 값으로 설정했습니다. 경고의 두 번째 문장은 어느 파일에 값이 있는지에 따라 다르며, 사용자, 프로젝트, 로컬 또는 `--settings` 파일에서는 다음과 같습니다:5766설정 파일이 [`crossSessionInbound`](/docs/ko/settings-reference#crosssessioninbound)를 오타 `"reject"`처럼 Claude Code가 인식하지 못하는 값으로 설정했습니다. 경고의 두 번째 문장은 어느 파일에 값이 있는지에 따라 다르며, 사용자, 프로젝트, 로컬 또는 `--settings` 파일에서는 다음과 같습니다:


5566* 메시지가 이 버전이 인식하지 못하는 모델 ID를 명시하면 `claude update`를 실행하세요. 해당 ID를 1M 컨텍스트 모델로 인식하는 버전은 추가 구성 없이 제한을 적용합니다.5810* 메시지가 이 버전이 인식하지 못하는 모델 ID를 명시하면 `claude update`를 실행하세요. 해당 ID를 1M 컨텍스트 모델로 인식하는 버전은 추가 구성 없이 제한을 적용합니다.

5567* 세션이 대신 모델의 전체 윈도우를 사용하기를 원하면 `CLAUDE_CODE_DISABLE_1M_CONTEXT`를 설정 해제하세요. 이 경고는 200K 제한이 적용되지 않는다는 사실만 알립니다.5811* 세션이 대신 모델의 전체 윈도우를 사용하기를 원하면 `CLAUDE_CODE_DISABLE_1M_CONTEXT`를 설정 해제하세요. 이 경고는 200K 제한이 적용되지 않는다는 사실만 알립니다.

5568 5812 

5569[백그라운드 세션](/docs/ko/agent-view)에서 또는 `--output-format json`이나 `stream-json`을 사용하는 경우, Claude Code는 경고를 stderr 대신 디버그 로그에 기록합니다.5813텍스트 출력을 사용하는 [비대화형 모드](/docs/ko/headless)에서는 이 경고가 stderr에 나타납니다. 대화형 세션, [백그라운드 세션](/docs/ko/agent-view), 또는 `--output-format json`이나 `stream-json`을 사용하는 경우에는 대신 디버그 로그에 기록됩니다. `--debug`로 실행하면 `~/.claude/debug/<session-id>.txt`에서 확인할 수 있습니다.

5814 

5815v2.1.305 이전에는 대화형 세션이 시작 시 경고를 stderr에 출력했습니다.

5570 5816 

5571### 요청에서 인식되지 않은 모델 ID5817### 요청에서 인식되지 않은 모델 ID

5572 5818 


5678오류가 여기에 나열되지 않았거나 제안된 해결 방법이 도움이 되지 않는 경우:5924오류가 여기에 나열되지 않았거나 제안된 해결 방법이 도움이 되지 않는 경우:

5679 5925 

5680* Claude Code 내에서 `/feedback`을 실행하여 기록 및 설명을 Anthropic에 전송하십시오. 이 명령은 미리 작성된 GitHub 이슈를 열 수 있는 옵션도 제공합니다. Anthropic에 전송하려면 [인증](/docs/ko/authentication)이 필요합니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 및 기타 타사 제공자에서 또는 Anthropic 자격 증명이 구성되지 않은 경우, `/feedback`은 대신 Anthropic 계정 담당자에게 보낼 수 있는 로컬 아카이브를 저장합니다.5926* Claude Code 내에서 `/feedback`을 실행하여 기록 및 설명을 Anthropic에 전송하십시오. 이 명령은 미리 작성된 GitHub 이슈를 열 수 있는 옵션도 제공합니다. Anthropic에 전송하려면 [인증](/docs/ko/authentication)이 필요합니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 및 기타 타사 제공자에서 또는 Anthropic 자격 증명이 구성되지 않은 경우, `/feedback`은 대신 Anthropic 계정 담당자에게 보낼 수 있는 로컬 아카이브를 저장합니다.

5927* `/feedback`이 조직의 정책에 의해 비활성화되었다고 응답하는 경우 [해당 메시지 항목](#feedback-is-disabled-by-your-organizations-policy)을 참조하십시오

5681* 셸에서 `claude doctor`를 실행하여 설치의 읽기 전용 진단을 수행하거나, Claude Code 내에서 `/doctor` 점검을 실행하여 설정 문제를 찾고 수정하십시오5928* 셸에서 `claude doctor`를 실행하여 설치의 읽기 전용 진단을 수행하거나, Claude Code 내에서 `/doctor` 점검을 실행하여 설정 문제를 찾고 수정하십시오

5682* [status.claude.com](https://status.claude.com)에서 활성 인시던트를 확인하십시오5929* [status.claude.com](https://status.claude.com)에서 활성 인시던트를 확인하십시오

5683* GitHub의 [기존 이슈](https://github.com/anthropics/claude-code/issues)를 검색하십시오5930* GitHub의 [기존 이슈](https://github.com/anthropics/claude-code/issues)를 검색하십시오

Details

34 34 

35이 중 일부는 제공자별 차이가 있습니다:35이 중 일부는 제공자별 차이가 있습니다:

36 36 

37* **MCP 서버**: [claude.ai의 커넥터](/docs/ko/mcp#use-mcp-servers-from-claude-ai)는 claude.ai 구독이 활성 인증 방법일 때만 로드됩니다. [도구 검색](/docs/ko/mcp#configure-tool-search)은 `ANTHROPIC_BASE_URL`이 비자사 호스트를 가리킬 때 기본적으로 꺼져 있으며, Google Cloud의 Agent Platform에서 Claude Opus 4.5, Claude Sonnet 4.5, Claude Haiku 4.5보다 이전 모델이나 Microsoft Foundry [Azure에서 호스팅되는 배포](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)에서는 지원되지 않습니다.37* **MCP 서버**: [claude.ai의 커넥터](/docs/ko/mcp#use-mcp-servers-from-claude-ai)는 claude.ai 구독이 활성 인증 방법일 때만 로드됩니다. [도구 검색](/docs/ko/mcp#configure-tool-search)은 Microsoft Foundry [Azure에서 호스팅되는 배포](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)에서는 지원되지 않습니다. Google Cloud의 Agent Platform에서는 Claude Opus 4.5, Claude Sonnet 4.5, Claude Haiku 4.5보다 이전 모델에서 도구 검색이 지원되지 않습니다.

38* **서브에이전트**: 주 대화가 Fable로 실행될 때, 기본 제공 [Explore 서브에이전트](/docs/ko/sub-agents#built-in-subagents)는 Claude 구독, Anthropic Console 계정 또는 `ANTHROPIC_BASE_URL`을 통해 연결되는 [LLM 게이트웨이](/docs/ko/llm-gateway)에서는 Opus로 실행됩니다. AWS의 Claude Platform을 포함한 다른 제공자에서는 Fable로 실행됩니다.38* **서브에이전트**: 주 대화가 Fable로 실행될 때, 기본 제공 [Explore 서브에이전트](/docs/ko/sub-agents#built-in-subagents)는 Claude 구독, Anthropic Console 계정 또는 `ANTHROPIC_BASE_URL`을 통해 연결되는 [LLM 게이트웨이](/docs/ko/llm-gateway)에서는 Opus로 실행됩니다. AWS의 Claude Platform을 포함한 다른 제공자에서는 Fable로 실행됩니다.

39* **[Commands](/docs/ko/commands#all-commands)**:39* **[Commands](/docs/ko/commands#all-commands)**:

40 * `/design-sync` 및 `/import`와 그 `claude import` 서브명령 형식은 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, AWS의 Claude Platform에서 사용할 수 없으며, [Claude apps gateway](/docs/ko/claude-apps-gateway#availability-and-limitations)를 통해서도 사용할 수 없습니다.40 * `/design-sync` 및 `/import`와 그 `claude import` 서브명령 형식은 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, AWS의 Claude Platform에서 사용할 수 없으며, [Claude apps gateway](/docs/ko/claude-apps-gateway#availability-and-limitations)를 통해서도 사용할 수 없습니다.


57* [Artifacts](/docs/ko/artifacts): Pro, Max, Team 및 Enterprise 플랜57* [Artifacts](/docs/ko/artifacts): Pro, Max, Team 및 Enterprise 플랜

58* [음성 받아쓰기](/docs/ko/voice-dictation)58* [음성 받아쓰기](/docs/ko/voice-dictation)

59 59 

60Desktop은 부분적인 예외입니다: [게이트웨이 라우팅은 앱에서 또는 관리자가 구성할 수 있으며](/docs/ko/llm-gateway-connect#desktop-app), Enterprise 배포는 [관리되는 설정](https://claude.com/docs/third-party/claude-desktop/configuration)을 통해 Desktop을 Google Cloud의 Agent Platform 또는 게이트웨이 제공자로 라우팅할 수 있으며, [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)는 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 또는 자체 호스팅 LLM 게이트웨이에서 Code 탭을 실행합니다. 이러한 기능의 플랜별 가용성은 [구독 플랜별 가용성](#availability-by-subscription-plan)을 참조하십시오.60Desktop은 부분적인 예외입니다: [게이트웨이 라우팅은 앱에서 또는 관리자가 구성할 수 있습니다](/docs/ko/llm-gateway-connect#desktop-app). 또한 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)는 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 또는 자체 호스팅 LLM 게이트웨이에서 Code 탭을 실행합니다. Anthropic Console API 키를 사용하여 [Claude API](https://claude.com/docs/third-party/claude-desktop/claude-api)에서도 Code 탭을 실행합니다. 이러한 기능의 플랜별 가용성은 [구독 플랜별 가용성](#availability-by-subscription-plan)을 참조하십시오.

61 61 

62### 제공자별로 다양한 CLI 기능62### 제공자별로 다양한 CLI 기능

63 63 


287 287 

288[제공자별로 다양한 CLI 기능](#cli-capabilities-that-vary-by-provider)의 모든 기능을 사용할 수 있습니다. 단, [빠른 모드](/docs/ko/fast-mode)는 [프로비저닝된 액세스](/docs/ko/fast-mode#enable-fast-mode-for-your-organization)가 필요합니다. claude.ai Team 또는 Enterprise 조직에서 구성한 [서버 관리 설정](/docs/ko/server-managed-settings)은 Console API 키로 인증하는 세션에는 적용되지 않습니다. 이러한 세션에도 적용하는 방법은 [플랫폼 가용성](/docs/ko/server-managed-settings#platform-availability)을 참조하십시오.288[제공자별로 다양한 CLI 기능](#cli-capabilities-that-vary-by-provider)의 모든 기능을 사용할 수 있습니다. 단, [빠른 모드](/docs/ko/fast-mode)는 [프로비저닝된 액세스](/docs/ko/fast-mode#enable-fast-mode-for-your-organization)가 필요합니다. claude.ai Team 또는 Enterprise 조직에서 구성한 [서버 관리 설정](/docs/ko/server-managed-settings)은 Console API 키로 인증하는 세션에는 적용되지 않습니다. 이러한 세션에도 적용하는 방법은 [플랫폼 가용성](/docs/ko/server-managed-settings#platform-availability)을 참조하십시오.

289 289 

290**부분 지원:**

291 

292* [Desktop](/docs/ko/desktop): [Claude API를 사용하는 Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/claude-api)를 통해

293 

290## 구독 플랜별 가용성294## 구독 플랜별 가용성

291 295 

292Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 또는 Anthropic Console API 키를 통해 인증하는 경우 이 섹션은 적용되지 않습니다. claude.ai 계정으로 로그인하면 플랜에 따라 아래 기능의 가용성이 결정됩니다.296Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 또는 Anthropic Console API 키를 통해 인증하는 경우 이 섹션은 적용되지 않습니다. claude.ai 계정으로 로그인하면 플랜에 따라 아래 기능의 가용성이 결정됩니다.

Details

148* **Subagent**는 Claude가 생성하는 워커이며, 각각 대화를 생성한 대화에 요약을 반환합니다148* **Subagent**는 Claude가 생성하는 워커이며, 각각 대화를 생성한 대화에 요약을 반환합니다

149* \*\*[Dynamic workflow](/docs/ko/workflows)\*\*는 Claude가 작성하는 스크립트로 백그라운드에서 많은 subagent를 실행하고 하나의 결과를 반환합니다149* \*\*[Dynamic workflow](/docs/ko/workflows)\*\*는 Claude가 작성하는 스크립트로 백그라운드에서 많은 subagent를 실행하고 하나의 결과를 반환합니다

150 150 

151**빠르고 집중된 워커가 필요할 때 subagent를 사용하세요:** 질문 조사, 주장 검증, 파일 검토. Subagent는 작업을 수행하고 요약을 반환하므로 주 대화가 깔끔하게 유지됩니다. Claude가 생성할 때 이름을 지정한 Subagent는 [서로 메시지를 보낼](/docs/ko/sub-agents#what-loads-at-startup) 수도 있습니다.151질문 조사, 주장 검증, 파일 리뷰처럼 빠르고 집중된 워커가 필요할 때 **서브에이전트를 사용하세요**. 서브에이전트가 작업을 수행하고 요약을 반환하므로 주 대화가 깔끔하게 유지됩니다. Claude가 생성할 때 [이름을 지정한](/docs/ko/sub-agents#subagent-names) 서브에이전트는 [서로 메시지를 보낼](/docs/ko/sub-agents#what-loads-at-startup) 수도 있습니다.

152 152 

153**작업이 [소수의 subagent를 초과](/docs/ko/workflows#when-to-use-a-workflow)하거나 결과를 보기 전에 교차 검증하려는 경우 dynamic workflow를 사용하세요**, 코드베이스 전체 감사, 대규모 마이그레이션, 여러 각도에서 작성된 계획 같은. 시작하려면 [프롬프트에서 워크플로우를 요청하세요](/docs/ko/workflows#ask-for-a-workflow-in-your-prompt).153**작업이 [소수의 subagent를 초과](/docs/ko/workflows#when-to-use-a-workflow)하거나 결과를 보기 전에 교차 검증하려는 경우 dynamic workflow를 사용하세요**, 코드베이스 전체 감사, 대규모 마이그레이션, 여러 각도에서 작성된 계획 같은. 시작하려면 [프롬프트에서 워크플로우를 요청하세요](/docs/ko/workflows#ask-for-a-workflow-in-your-prompt).

154 154 

fullscreen.md +1 −0

Details

32* [권한 모드](/docs/ko/permission-modes) 및 [노력 수준](/docs/ko/model-config#adjust-effort-level)32* [권한 모드](/docs/ko/permission-modes) 및 [노력 수준](/docs/ko/model-config#adjust-effort-level)

33* [`/model`](/docs/ko/model-config#setting-your-model)로 마지막으로 선택한 모델33* [`/model`](/docs/ko/model-config#setting-your-model)로 마지막으로 선택한 모델

34* [`--allowed-tools` 또는 `--disallowed-tools`](/docs/ko/cli-reference#cli-flags)로 전달한 규칙, 그리고 `--agent`, `--agents`, `--append-system-prompt`, 및 `--system-prompt-snapshot` 플래그34* [`--allowed-tools` 또는 `--disallowed-tools`](/docs/ko/cli-reference#cli-flags)로 전달한 규칙, 그리고 `--agent`, `--agents`, `--append-system-prompt`, 및 `--system-prompt-snapshot` 플래그

35* 시작 시 사용한 `--chrome` 또는 `--no-chrome` 플래그. 따라서 [Chrome 통합](/docs/ko/chrome)이 이 세션에서 선택한 대로 켜지거나 꺼진 상태로 유지됩니다

35 36 

36Claude Code는 다시 시작된 프로세스로 전달할 수 없는 제한이 세션에 있으면 다시 시작을 거부합니다. 전달할 수 없는 제한은 다음을 포함합니다:37Claude Code는 다시 시작된 프로세스로 전달할 수 없는 제한이 세션에 있으면 다시 시작을 거부합니다. 전달할 수 없는 제한은 다음을 포함합니다:

37 38 

hipaa-setup.md +1 −0

Details

93| :- | :- |93| :- | :- |

94| `api.anthropic.com` | Claude API 요청, 텔레메트리, 그리고 HIPAA 구성이 켜져 있음을 Claude Code에 알려주는 조직 정책 |94| `api.anthropic.com` | Claude API 요청, 텔레메트리, 그리고 HIPAA 구성이 켜져 있음을 Claude Code에 알려주는 조직 정책 |

95| `claude.ai`, `claude.com`, `platform.claude.com` | 로그인 및 토큰 갱신 |95| `claude.ai`, `claude.com`, `platform.claude.com` | 로그인 및 토큰 갱신 |

96| `sso.claude.com` | 조직에서 싱글 사인온을 사용하는 경우의 로그인 |

96| `downloads.claude.ai` | 네이티브 설치 프로그램 및 업데이트 |97| `downloads.claude.ai` | 네이티브 설치 프로그램 및 업데이트 |

97| `mcp-proxy.anthropic.com` | [claude.ai의 커넥터](/docs/ko/mcp#use-mcp-servers-from-claude-ai) |98| `mcp-proxy.anthropic.com` | [claude.ai의 커넥터](/docs/ko/mcp#use-mcp-servers-from-claude-ai) |

98 99 

hooks.md +12 −6

Details

294| `SessionStart` | 세션이 시작된 방식 | `startup`, `resume`, `clear`, `compact`, `fork` |294| `SessionStart` | 세션이 시작된 방식 | `startup`, `resume`, `clear`, `compact`, `fork` |

295| `Setup` | 설정을 트리거한 CLI 플래그 | `init`, `maintenance` |295| `Setup` | 설정을 트리거한 CLI 플래그 | `init`, `maintenance` |

296| `SessionEnd` | 세션이 종료된 이유 | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |296| `SessionEnd` | 세션이 종료된 이유 | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |

297| `Notification` | 알림 유형 | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled` |297| `Notification` | 알림 유형 | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled`, `plugin_notification` |

298| `SubagentStart` | 에이전트 유형 | `general-purpose`, `Explore`, `Plan`, 사용자 정의 에이전트 이름 또는 `^my-plugin:reviewer$`와 같은 플러그인 범위 이름 |298| `SubagentStart` | 에이전트 유형 | `general-purpose`, `Explore`, `Plan`, 사용자 정의 에이전트 이름 또는 `^my-plugin:reviewer$`와 같은 플러그인 범위 이름 |

299| `PreCompact`, `PostCompact` | 압축을 트리거한 항목 | `manual`, `auto` |299| `PreCompact`, `PostCompact` | 압축을 트리거한 항목 | `manual`, `auto` |

300| `PreModelSwitch`, `PostModelSwitch` | 세션이 전환되는 모델의 정규 이름([PreModelSwitch](#premodelswitch) 아래에 설명됨) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |300| `PreModelSwitch`, `PostModelSwitch` | 세션이 전환되는 모델의 정규 이름([PreModelSwitch](#premodelswitch) 아래에 설명됨) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |


1923 1923 

1924| 필드 | 설명 |1924| 필드 | 설명 |

1925| :- | :- |1925| :- | :- |

1926| `permissionDecision` | `"allow"`는 권한 프롬프트를 건너뜁니다. 단, [어떤 모드도 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves)과 [네트워크 경로에서의 읽기](/docs/ko/permissions#network-paths)는 예외입니다. `AskUserQuestion`과 `ExitPlanMode`에는 [`"allow"`와 함께 사용하는 `updatedInput`](#allow-with-updatedinput)이 필요합니다. 플랜 모드의 경우 [플랜 모드에서의 훅 승인](/docs/ko/permissions#hook-approvals-in-plan-mode)을 참조하세요. `"deny"`는 도구 호출을 막습니다. `"ask"`는 사용자에게 확인을 요청합니다. `"defer"`는 나중에 도구를 재개할 수 있도록 정상적으로 종료합니다. [거부 및 확인 규칙](/docs/ko/permissions#manage-permissions)은 훅이 무엇을 반환하든 여전히 평가됩니다 |1926| `permissionDecision` | `"allow"`는 권한 프롬프트를 건너뜁니다. 단, [어떤 모드도 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves)과 [네트워크 경로에서의 읽기](/docs/ko/permissions#network-paths)는 예외입니다. `AskUserQuestion`과 `ExitPlanMode`에는 [`"allow"`와 함께 `updatedInput`](#allow-with-updatedinput)이 필요합니다. 플랜 모드의 경우 [플랜 모드의 훅 승인](/docs/ko/permissions#hook-approvals-in-plan-mode)을 참조하십시오. `"deny"`는 도구 호출을 막습니다. `"ask"`는 사용자에게 확인을 요청합니다. `"defer"`는 나중에 도구를 재개할 수 있도록 턴을 종료하며, `-p` 플래그를 사용하는 [비대화형 모드](#defer-a-tool-call-for-later)가 필요합니다. [거부 및 확인 규칙](/docs/ko/permissions#manage-permissions)은 훅이 반환하는 내용과 관계없이 계속 평가됩니다 |

1927| `permissionDecisionReason` | `"ask"`의 경우 권한 프롬프트에서 사용자에게 표시됩니다. 아무도 해당 프롬프트에 답할 수 없는 `-p` 실행에서 Claude Code가 [호출을 거부](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)하면, Claude가 대신 도구 결과에서 이유를 읽습니다. `"deny"`의 경우 Claude에게 표시됩니다. `"allow"` 및 `"defer"`의 경우 [디버그 로그](#debug-hooks)에만 기록됩니다 |1927| `permissionDecisionReason` | `"ask"`의 경우 권한 프롬프트에서 사용자에게 표시됩니다. 아무도 해당 프롬프트에 답할 수 없는 `-p` 실행에서 Claude Code가 [호출을 거부](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)하면, Claude가 대신 도구 결과에서 이유를 읽습니다. `"deny"`의 경우 Claude에게 표시됩니다. `"allow"` 및 `"defer"`의 경우 [디버그 로그](#debug-hooks)에만 기록됩니다 |

1928| `updatedInput` | 실행 전에 도구의 입력 매개변수를 수정합니다. 전체 입력 객체를 대체하므로 수정된 필드와 함께 변경되지 않은 필드도 포함하십시오. Claude Code는 권한 규칙과 Bash 명령의 [자동 백그라운드 전환 적격성](/docs/ko/tools-reference#foreground-commands-that-move-to-the-background)을 Claude가 보낸 입력이 아닌 훅이 반환한 입력을 기준으로 평가합니다. 자동 승인하려면 `"allow"`와, 수정된 입력을 사용자에게 보여주려면 `"ask"`와 함께 사용하십시오. `"defer"`의 경우 무시됩니다 |1928| `updatedInput` | 실행 전에 도구의 입력 매개변수를 수정합니다. 전체 입력 객체를 대체하므로 수정된 필드와 함께 변경되지 않은 필드도 포함하십시오. Claude Code는 권한 규칙과 Bash 명령의 [자동 백그라운드 전환 적격성](/docs/ko/tools-reference#foreground-commands-that-move-to-the-background)을 Claude가 보낸 입력이 아닌 훅이 반환한 입력을 기준으로 평가합니다. 자동 승인하려면 `"allow"`와, 수정된 입력을 사용자에게 보여주려면 `"ask"`와 함께 사용하십시오. `"defer"`의 경우 무시됩니다 |

1929| `additionalContext` | 도구 결과와 함께 Claude의 컨텍스트에 추가되는 문자열입니다. `permissionDecision`이 `"defer"`일 때는 무시됩니다. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하십시오 |1929| `additionalContext` | 도구 결과와 함께 Claude의 컨텍스트에 추가되는 문자열입니다. `permissionDecision`이 `"defer"`일 때는 무시됩니다. [Claude를 위한 컨텍스트 추가](#add-context-for-claude)를 참조하십시오 |


1997`AskUserQuestion` 도구가 대표적인 사례입니다. Claude가 사용자에게 무언가를 묻고 싶지만 답할 터미널이 없는 경우입니다. `-p` 실행은 `--permission-prompt-tool`로 전달하는 MCP 도구 같은 [권한 호스트](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)가 있을 때만 `AskUserQuestion`을 제공하므로, 권한 호스트와 함께 실행을 시작하십시오. 왕복 과정은 다음과 같습니다.1997`AskUserQuestion` 도구가 대표적인 사례입니다. Claude가 사용자에게 무언가를 묻고 싶지만 답할 터미널이 없는 경우입니다. `-p` 실행은 `--permission-prompt-tool`로 전달하는 MCP 도구 같은 [권한 호스트](/docs/ko/headless#turn-off-permission-prompts-in-unattended-runs)가 있을 때만 `AskUserQuestion`을 제공하므로, 권한 호스트와 함께 실행을 시작하십시오. 왕복 과정은 다음과 같습니다.

1998 1998 

19991. Claude가 `AskUserQuestion`을 호출합니다. `PreToolUse` 훅이 발생합니다.19991. Claude가 `AskUserQuestion`을 호출합니다. `PreToolUse` 훅이 발생합니다.

20002. 훅이 `permissionDecision: "defer"`를 반환합니다. 도구는 실행되지 않습니다. 프로세스는 `stop_reason: "tool_deferred"`와 함께 종료되며, 대기 중인 도구 호출은 트랜스크립트에 보존됩니다.20002. 훅이 `permissionDecision: "defer"`를 반환합니다. 도구는 실행되지 않습니다. 턴은 `stop_reason: "tool_deferred"`가 포함된 결과와 함께 종료되며, 보류 중인 도구 호출은 트랜스크립트에 남습니다.

20013. 호출 프로세스가 SDK 결과에서 `deferred_tool_use`를 읽고, 자체 UI에 질문을 표시한 다음, 답변을 기다립니다.20013. 호출 프로세스가 SDK 결과에서 `deferred_tool_use`를 읽고, 자체 UI에 질문을 표시한 다음, 답변을 기다립니다.

20024. 호출 프로세스가 같은 권한 호스트로 `claude -p --resume <session-id>`를 실행합니다. 같은 도구 호출이 다시 `PreToolUse`를 발생시킵니다.20024. 호출 프로세스가 같은 권한 호스트로 `claude -p --resume <session-id>`를 실행합니다. 같은 도구 호출이 다시 `PreToolUse`를 발생시킵니다.

20035. 훅이 `updatedInput`에 답변을 담아 `permissionDecision: "allow"`를 반환합니다. 도구가 실행되고 Claude가 계속 진행합니다.20035. 훅이 `updatedInput`에 답변을 담아 `permissionDecision: "allow"`를 반환합니다. 도구가 실행되고 Claude가 계속 진행합니다.


2018}2018}

2019```2019```

2020 2020 

2021타임아웃이나 재시도 제한은 없습니다. 세션은 재개할 때까지 디스크에 남아 있으며, [보존 정리 규칙](/docs/ko/claude-directory#cleaned-up-automatically)에 따라 기본적으로 30일 후 세션 파일을 삭제하는 [`cleanupPeriodDays`](/docs/ko/settings-reference#cleanupperioddays) 보존 정리의 적용을 받습니다. 재개할 때 답변이 준비되지 않았으면 훅은 다시 `"defer"`를 반환할 수 있으며 프로세스는 같은 방식으로 종료됩니다. 호출 프로세스는 결국 훅에서 `"allow"` 또는 `"deny"`를 반환함으로써 루프를 끝낼 시점을 제어합니다.2021타임아웃이나 재시도 제한은 없습니다. 세션은 재개할 때까지 디스크에 남아 있으며, [정리 규칙](/docs/ko/claude-directory#cleaned-up-automatically)에 따라 기본적으로 30일 후 세션 파일을 삭제하는 [`cleanupPeriodDays`](/docs/ko/settings-reference#cleanupperioddays) 보존 정리의 적용을 받습니다.

2022 2022 

2023`"defer"`는 Claude가 턴에서 단일 도구 호출을 할 때만 작동합니다. Claude가 한 번에 여러 도구 호출을 하면 `"defer"`는 경고와 함께 무시되고 도구는 일반 권한 흐름을 통해 진행됩니다. 이 제약은 재개 시 하나의 도구만 다시 실행할 수 있기 때문에 존재합니다. 나머지를 미해결 상태로 두지 않고 묶음에서 하나의 호출만 지연할 방법이 없습니다.2023재개 시 지연된 도구를 더 이상 사용할 수 없으면, 재개의 첫 결과는 `stop_reason: "tool_deferred_unavailable"`과 `is_error: true`를 가지며 훅은 발생하지 않습니다. 이는 도구를 제공한 MCP 서버가 재개된 세션에 연결되어 있지 않을 때 발생합니다. 어떤 도구가 누락되었는지 식별할 수 있도록 `deferred_tool_use` 페이로드는 여전히 포함됩니다.

2024 

2025* **재개 시 또는 재개 후에 프롬프트를 보내지 않은 경우**, 호출은 여전히 보류 중입니다. 도구를 사용할 수 있는 상태로 다시 재개하면 그 호출이 먼저 실행됩니다.

2026* **재개 시 또는 재개 후에 프롬프트를 보낸 경우**, Claude Code는 도구 결과 없이 프롬프트에 답하고 지연된 호출을 버립니다. 여전히 호출이 필요하면 도구를 사용할 수 있게 된 후 새 프롬프트를 보냅니다.

2024 2027 

2025재개할 때 지연된 도구를 더 이상 사용할 수 없으면, 프로세스는 훅이 발생하기 전에 `stop_reason: "tool_deferred_unavailable"` 및 `is_error: true`와 함께 종료됩니다. 이는 도구를 제공한 MCP 서버가 재개된 세션에 연결되지 않은 경우에 발생합니다. `deferred_tool_use` 페이로드는 여전히 포함되므로 어떤 도구가 누락되었는지 식별할 수 있습니다.2028프롬프트 없이 재개할 때 기다리는 답변이 준비되지 않았다면 훅은 다시 `"defer"`를 반환할 수 있습니다. 프롬프트를 보냈는데 훅이 다시 지연하면 Claude Code는 프롬프트를 같은 방식으로 처리합니다. 즉, 도구 결과 없이 답하고 호출을 버립니다. 훅이 `"allow"` 또는 `"deny"`를 반환할 때까지 프롬프트 없이 재개하며, 이것이 호출 프로세스가 루프를 끊는 방법입니다.

2029 

2030`"defer"`는 Claude가 턴에서 단일 도구 호출을 할 때만 작동합니다. Claude가 한 번에 여러 도구 호출을 하면 `"defer"`는 경고와 함께 무시되고 도구는 일반 권한 흐름을 통해 진행됩니다. 이 제약은 재개 시 하나의 도구만 다시 실행할 수 있기 때문에 존재합니다. 나머지를 미해결 상태로 두지 않고 묶음에서 하나의 호출만 지연할 방법이 없습니다.

2026 2031 

2027> [!NOTE]2032> [!NOTE]

2028>2033>


2424| `quota_auto_resume_fired` | claude.ai 사용 한도로 일시 중지된 작업을 Claude Code가 계속하는 경우: 재설정 시점에, 또는 대기 중에 사용량 크레딧 추가, 플랜 업그레이드, 모델 전환 등 Claude Code에서 사용자가 한 작업으로 다시 사용할 수 있게 되면 더 일찍 계속합니다. 단, [모델 설정 예외](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset)가 적용됩니다 |2429| `quota_auto_resume_fired` | claude.ai 사용 한도로 일시 중지된 작업을 Claude Code가 계속하는 경우: 재설정 시점에, 또는 대기 중에 사용량 크레딧 추가, 플랜 업그레이드, 모델 전환 등 Claude Code에서 사용자가 한 작업으로 다시 사용할 수 있게 되면 더 일찍 계속합니다. 단, [모델 설정 예외](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset)가 적용됩니다 |

2425| `quota_auto_resume_stale` | 컴퓨터가 약 30분 이상 절전 상태인 동안 claude.ai 사용 한도가 재설정된 경우. Claude Code는 계속하지 않고 사용자가 `Enter`를 누를 때까지 기다립니다. 더 짧은 절전 후에는 계속 진행하며 대신 `quota_auto_resume_fired`를 발생시킵니다 |2430| `quota_auto_resume_stale` | 컴퓨터가 약 30분 이상 절전 상태인 동안 claude.ai 사용 한도가 재설정된 경우. Claude Code는 계속하지 않고 사용자가 `Enter`를 누를 때까지 기다립니다. 더 짧은 절전 후에는 계속 진행하며 대신 `quota_auto_resume_fired`를 발생시킵니다 |

2426| `quota_auto_resume_disabled` | Claude Code가 작업을 계속하지 않고 claude.ai 사용 한도 대기를 종료한 경우: Claude Code가 스스로 시작한 대기 중에 [`autoContinueAtUsageLimit`](/docs/ko/settings-reference#autocontinueatusagelimit)이 꺼졌거나 재설정 시점이 24시간 이상 뒤로 밀린 경우, 계속한 작업이 계속 한도에 도달한 경우, 또는 계속 진행이 모델에 도달하기 전에 차단된 경우입니다. 사용자가 `Esc` 또는 `Ctrl+C`를 누르거나 **Don't continue automatically**를 선택한 경우에는 발생하지 않습니다 |2431| `quota_auto_resume_disabled` | Claude Code가 작업을 계속하지 않고 claude.ai 사용 한도 대기를 종료한 경우: Claude Code가 스스로 시작한 대기 중에 [`autoContinueAtUsageLimit`](/docs/ko/settings-reference#autocontinueatusagelimit)이 꺼졌거나 재설정 시점이 24시간 이상 뒤로 밀린 경우, 계속한 작업이 계속 한도에 도달한 경우, 또는 계속 진행이 모델에 도달하기 전에 차단된 경우입니다. 사용자가 `Esc` 또는 `Ctrl+C`를 누르거나 **Don't continue automatically**를 선택한 경우에는 발생하지 않습니다 |

2432| `plugin_notification` | [mod](/docs/ko/plugins/mods/api#show-something-without-starting-a-turn)가 `$.ui.notify`로 알림을 발생시킨 경우. mod가 `title`을 설정하지 않으면 훅의 `title`은 mod의 이름입니다 |

2427 2433 

2428`quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled` 유형은 Claude Code v2.1.234 이상이 필요합니다.2434`quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled` 유형은 Claude Code v2.1.234 이상이 필요합니다.

2429 2435 

hooks-guide.md +4 −3

Details

193| `quota_auto_resume_fired` | Claude Code가 claude.ai 사용 제한으로 일시 중지된 작업을 계속합니다: 재설정 시 또는 Claude Code 중에 수행하는 작업(예: 사용 크레딧 추가, 플랜 업그레이드 또는 모델 전환)으로 인해 사용 가능한 사용량이 더 빨리 제공될 때, [모델 설정 예외](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset) 포함 |193| `quota_auto_resume_fired` | Claude Code가 claude.ai 사용 제한으로 일시 중지된 작업을 계속합니다: 재설정 시 또는 Claude Code 중에 수행하는 작업(예: 사용 크레딧 추가, 플랜 업그레이드 또는 모델 전환)으로 인해 사용 가능한 사용량이 더 빨리 제공될 때, [모델 설정 예외](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset) 포함 |

194| `quota_auto_resume_stale` | claude.ai 사용 제한이 컴퓨터가 약 30분 이상 절전 상태였을 때 재설정됩니다. Claude Code는 계속하지 않고 `Enter`를 누르기를 기다립니다. 더 짧은 절전 후에는 계속하고 대신 `quota_auto_resume_fired`를 발생시킵니다 |194| `quota_auto_resume_stale` | claude.ai 사용 제한이 컴퓨터가 약 30분 이상 절전 상태였을 때 재설정됩니다. Claude Code는 계속하지 않고 `Enter`를 누르기를 기다립니다. 더 짧은 절전 후에는 계속하고 대신 `quota_auto_resume_fired`를 발생시킵니다 |

195| `quota_auto_resume_disabled` | Claude Code가 작업을 계속하지 않고 claude.ai 사용 제한 대기를 종료합니다: [`autoContinueAtUsageLimit`](/docs/ko/settings-reference#autocontinueatusagelimit)이 꺼졌거나 Claude Code가 자체적으로 시작한 대기 중에 재설정이 24시간 이상 멀어졌거나, 계속된 작업이 계속 제한에 도달했거나, 계속이 모델에 도달하기 전에 차단되었습니다. `Esc` 또는 `Ctrl+C`를 누르거나 **자동으로 계속하지 않음**을 선택할 때는 발생하지 않습니다 |195| `quota_auto_resume_disabled` | Claude Code가 작업을 계속하지 않고 claude.ai 사용 제한 대기를 종료합니다: [`autoContinueAtUsageLimit`](/docs/ko/settings-reference#autocontinueatusagelimit)이 꺼졌거나 Claude Code가 자체적으로 시작한 대기 중에 재설정이 24시간 이상 멀어졌거나, 계속된 작업이 계속 제한에 도달했거나, 계속이 모델에 도달하기 전에 차단되었습니다. `Esc` 또는 `Ctrl+C`를 누르거나 **자동으로 계속하지 않음**을 선택할 때는 발생하지 않습니다 |

196| `plugin_notification` | [mod](/docs/ko/plugins/mods/api#show-something-without-starting-a-turn)가 `$.ui.notify`로 알림을 발생시킬 때. mod가 제목을 설정하지 않으면 훅의 `title`은 mod의 이름입니다 |

196 197 

197Claude Code는 터미널과 Agent SDK를 통해 권한 요청에 응답하는 Claude Desktop, VS Code 확장 및 기타 호스트에서 `permission_prompt`를 다르게 시간 지정합니다. 두 시간 지정 모두에 대해 [각 알림 유형이 발생하는 시점](/docs/ko/hooks#notification)을 참조하세요.198Claude Code는 터미널과 Agent SDK를 통해 권한 요청에 응답하는 Claude Desktop, VS Code 확장 및 기타 호스트에서 `permission_prompt`를 다르게 시간 지정합니다. 두 시간 지정 모두에 대해 [각 알림 유형이 발생하는 시점](/docs/ko/hooks#notification)을 참조하세요.

198 199 


393 394 

394`direnv allow`를 `.envrc`가 있는 각 디렉토리에서 한 번 실행하여 direnv가 이를 로드할 수 있도록 허용합니다. direnv 대신 devbox 또는 nix를 사용하는 경우 `direnv export bash` 대신 `devbox shellenv` 또는 `devbox global shellenv`를 사용하면 동일한 패턴이 작동합니다.395`direnv allow`를 `.envrc`가 있는 각 디렉토리에서 한 번 실행하여 direnv가 이를 로드할 수 있도록 허용합니다. direnv 대신 devbox 또는 nix를 사용하는 경우 `direnv export bash` 대신 `devbox shellenv` 또는 `devbox global shellenv`를 사용하면 동일한 패턴이 작동합니다.

395 396 

396모든 디렉토리 변경이 아닌 특정 파일에 반응하려면 `FileChanged`를 `matcher`와 함께 사용하여 감시할 파일 이름을 나열합니다 (파이프로 구분). 감시 목록을 구성하기 위해 이 값은 정규식으로 평가되지 않고 리터럴 파일 이름으로 분할됩니다. [FileChanged](/docs/ko/hooks#filechanged)를 참조하여 파일이 변경될 때 어떤 hook 그룹이 실행되는지 필터링하는 방법도 확인하세요. 이 예제는 작업 디렉토리에서 `.envrc` 및 `.env`를 감시합니다:397모든 디렉터리 변경이 아닌 특정 파일에 반응하려면 감시할 파일 이름을 `|`로 구분하여 나열한 `matcher`와 함께 `FileChanged`를 사용합니다. 감시 목록을 구성할 때 Claude Code는 이 값을 정규식으로 평가하지 않고 리터럴 파일 이름으로 분할합니다. 동일한 값이 파일 변경 시 실행되는 hook 그룹을 필터링하는 방식은 [FileChanged](/docs/ko/hooks#filechanged)를 참조하세요. 이 예제는 작업 디렉터리에서 `.envrc` 및 `.env`를 감시합니다:

397 398 

398```json theme={null}399```json theme={null}

399{400{


632 633 

633 플랜 모드에서 `"allow"`가 어떻게 동작하는지는 [플랜 모드의 hook 승인](/docs/ko/permissions#hook-approvals-in-plan-mode)을 참조하세요.634 플랜 모드에서 `"allow"`가 어떻게 동작하는지는 [플랜 모드의 hook 승인](/docs/ko/permissions#hook-approvals-in-plan-mode)을 참조하세요.

634 635 

635네 번째 값인 `"defer"`는 `-p` 플래그가 있는 [비대화형 모드](/docs/ko/headless)에서 사용 가능합니다. 도구 호출을 보존하여 프로세스를 종료하므로 Agent SDK 래퍼가 입력을 수집하고 재개할 수 있습니다. 참조의 [나중에 도구 호출 연기](/docs/ko/hooks#defer-a-tool-call-for-later)를 참조하세요.636네 번째 값인 `"defer"`는 `-p` 플래그가 있는 [비대화형 모드](/docs/ko/headless)에서 사용 가능합니다. 이 값을 반환하면 도구 호출을 보존한 채 턴이 종료되므로 Agent SDK 래퍼가 입력을 수집하고 재개할 수 있습니다. 참조의 [나중에 도구 호출 연기](/docs/ko/hooks#defer-a-tool-call-for-later)를 참조하세요.

636 637 

637`PreModelSwitch` hook은 동일한 `permissionDecision` 필드를 반환합니다: `"allow"`는 모델 전환을 진행하게 하고 `"deny"`는 이를 취소합니다. `"ask"`는 대화형 세션에서 `/model`을 실행할 때 전환을 확인하도록 합니다. 다른 곳에서는 Claude Code가 `"ask"`를 거부로 처리합니다. [PreModelSwitch 결정 제어](/docs/ko/hooks#premodelswitch-decision-control)를 참조하세요.638`PreModelSwitch` hook은 동일한 `permissionDecision` 필드를 반환합니다: `"allow"`는 모델 전환을 진행하게 하고 `"deny"`는 이를 취소합니다. `"ask"`는 대화형 세션에서 `/model`을 실행할 때 전환을 확인하도록 합니다. 다른 곳에서는 Claude Code가 `"ask"`를 거부로 처리합니다. [PreModelSwitch 결정 제어](/docs/ko/hooks#premodelswitch-decision-control)를 참조하세요.

638 639 


686| `SessionStart` | 세션이 시작된 방식 | `startup`, `resume`, `clear`, `compact`, `fork` |687| `SessionStart` | 세션이 시작된 방식 | `startup`, `resume`, `clear`, `compact`, `fork` |

687| `Setup` | 어떤 CLI 플래그가 설정을 트리거했는지 | `init`, `maintenance` |688| `Setup` | 어떤 CLI 플래그가 설정을 트리거했는지 | `init`, `maintenance` |

688| `SessionEnd` | 세션이 종료된 이유 | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |689| `SessionEnd` | 세션이 종료된 이유 | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |

689| `Notification` | 알림 유형 | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled` |690| `Notification` | 알림 유형 | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled`, `plugin_notification` |

690| `SubagentStart` | 에이전트 유형 | `general-purpose`, `Explore`, `Plan` 또는 사용자 정의 에이전트 이름 |691| `SubagentStart` | 에이전트 유형 | `general-purpose`, `Explore`, `Plan` 또는 사용자 정의 에이전트 이름 |

691| `PreCompact`, `PostCompact` | 압축을 트리거한 것 | `manual`, `auto` |692| `PreCompact`, `PostCompact` | 압축을 트리거한 것 | `manual`, `auto` |

692| `PreModelSwitch`, `PostModelSwitch` | 세션이 전환되는 모델의 정규 이름([PreModelSwitch](/docs/ko/hooks#premodelswitch) 아래에 설명됨) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |693| `PreModelSwitch`, `PostModelSwitch` | 세션이 전환되는 모델의 정규 이름([PreModelSwitch](/docs/ko/hooks#premodelswitch) 아래에 설명됨) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |

Details

18 18 

19| 단축키 | 설명 | 컨텍스트 |19| 단축키 | 설명 | 컨텍스트 |

20| :- | :- | :- |20| :- | :- | :- |

21| `Ctrl+C` | 중단 또는 입력 지우기 | 실행 중인 작업을 중단합니다. 실행 중인 작업이 없으면 첫 번째 누름은 프롬프트 입력을 지우고 두 번째 누름은 Claude Code를 종료합니다. 프롬프트가 아직 비어 있는 동안 `Up`을 누르면 지운 초안을 다시 불러올 수 있으며, 이를 위해서는 Claude Code v2.1.288 이상이 필요합니다 |21| `Ctrl+C` | 중단 또는 입력 지우기 | 실행 중인 작업을 중단합니다. 실행 중인 작업이 없으면 첫 번째 누름은 프롬프트 입력을 지우고 두 번째 누름은 Claude Code를 종료합니다. 지운 초안을 다시 불러오려면 [지운 초안 되살리기](#bring-back-a-cleared-draft)를 참조하세요 |

22| `Ctrl+X Ctrl+K` | 이 세션의 모든 실행 중인 [백그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)를 중지하고 나머지 세션에 대해 [아티팩트 자동 회신](/docs/ko/artifacts#let-claude-reply-to-comments-on-its-own)을 끕니다. 3초 이내에 두 번 누르면 확인됩니다. 백그라운드 서브에이전트의 권한 프롬프트가 열려 있는 동안에도 누를 수 있습니다 | 서브에이전트 제어 |22| `Ctrl+X Ctrl+K` | 이 세션의 모든 실행 중인 [백그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)를 중지하고 나머지 세션에 대해 [아티팩트 자동 회신](/docs/ko/artifacts#let-claude-reply-to-comments-on-its-own)을 끕니다. 3초 이내에 두 번 누르면 확인됩니다. 백그라운드 서브에이전트의 권한 프롬프트가 열려 있는 동안에도 누를 수 있습니다 | 서브에이전트 제어 |

23| `Ctrl+D` | Claude Code 세션 종료 | 첫 번째 누름은 확인 힌트를 표시하고 800ms 이내에 두 번째 누름은 종료합니다. 프롬프트에 텍스트가 있을 때 `Ctrl+D`는 커서 뒤의 문자를 삭제합니다 |23| `Ctrl+D` | Claude Code 세션 종료 | 첫 번째 누름은 확인 힌트를 표시하고 800ms 이내에 두 번째 누름은 종료합니다. 프롬프트에 텍스트가 있을 때 `Ctrl+D`는 커서 뒤의 문자를 삭제합니다 |

24| `Ctrl+G` 또는 `Ctrl+X Ctrl+E` | 기본 텍스트 편집기에서 열기 | 기본 텍스트 편집기에서 프롬프트 또는 사용자 정의 응답을 편집합니다. `Ctrl+X Ctrl+E`는 readline 기본 바인딩입니다. `/config`에서 **Show last response in external editor**를 켜면 Claude의 이전 회신을 `#`-주석 처리된 컨텍스트로 프롬프트 위에 추가합니다. Claude Code는 저장할 때 주석 블록을 제거합니다 |24| `Ctrl+G` 또는 `Ctrl+X Ctrl+E` | 기본 텍스트 편집기에서 열기 | 기본 텍스트 편집기에서 프롬프트 또는 사용자 정의 응답을 편집합니다. `Ctrl+X Ctrl+E`는 readline 기본 바인딩입니다. `/config`에서 **Show last response in external editor**를 켜면 Claude의 이전 회신을 `#`-주석 처리된 컨텍스트로 프롬프트 위에 추가합니다. Claude Code는 저장할 때 주석 블록을 제거합니다 |


262 262 

263`Ctrl+V`를 사용한 블록 단위 시각적 모드는 지원되지 않습니다.263`Ctrl+V`를 사용한 블록 단위 시각적 모드는 지원되지 않습니다.

264 264 

265### vim 모드에서 질문 취소

266 

267[Claude가 묻는 질문](/docs/ko/tools-reference#askuserquestion-tool-behavior)의 `Other` 행에 직접 답변을 입력하는 중에는 `Esc`를 두 번 눌러 질문을 취소합니다.

268 

269대신 키를 한 번 눌러 취소하려면 [질문을 취소할 다른 키를 바인딩](/docs/ko/keybindings#cancel-a-question-with-one-key-press)합니다.

270 

265## 명령어 기록271## 명령어 기록

266 272 

267Claude Code는 입력한 프롬프트의 기록을 유지하며, 위쪽 화살표 키를 통한 회상은 동일한 프로젝트의 이전 세션에서 프롬프트를 검색합니다:273Claude Code는 입력한 프롬프트의 기록을 유지하며, 위쪽 화살표 키를 통한 회상은 동일한 프로젝트의 이전 세션에서 프롬프트를 검색합니다:


272* 붙여넣은 텍스트가 포함된 프롬프트를 회상할 때, Claude Code는 재제출 시 전체 붙여넣은 콘텐츠를 다시 전송합니다. 콘텐츠가 이후 [자동으로 정리](/docs/ko/claude-directory#cleaned-up-automatically)된 경우, Claude Code는 문자 그대로의 `[Pasted text #N]` 문자열을 전송하지 않습니다. 프롬프트에 어떤 일이 발생하는지는 [대용량 콘텐츠 붙여넣기](/docs/ko/terminal-config#paste-large-content)를 참조하세요278* 붙여넣은 텍스트가 포함된 프롬프트를 회상할 때, Claude Code는 재제출 시 전체 붙여넣은 콘텐츠를 다시 전송합니다. 콘텐츠가 이후 [자동으로 정리](/docs/ko/claude-directory#cleaned-up-automatically)된 경우, Claude Code는 문자 그대로의 `[Pasted text #N]` 문자열을 전송하지 않습니다. 프롬프트에 어떤 일이 발생하는지는 [대용량 콘텐츠 붙여넣기](/docs/ko/terminal-config#paste-large-content)를 참조하세요

273* `!`를 사용한 기록 확장은 기본적으로 비활성화되어 있습니다279* `!`를 사용한 기록 확장은 기본적으로 비활성화되어 있습니다

274 280 

281### 지운 초안 되돌리기

282 

283`Ctrl+C`로 지운 초안을 되돌리려면, 지운 직후 또는 메시지나 명령을 보낸 후에 `Up`을 누릅니다:

284 

285* **초안을 지운 직후**: 프롬프트가 아직 비어 있는 동안 `Up`을 한 번 누릅니다. Claude Code v2.1.288 이상이 필요합니다.

286* **메시지나 명령을 보낸 후**: `Up`을 눌러 초안으로 되돌아갑니다. Claude Code는 현재 세션에서 가장 최근에 지운 초안 10개를 붙여넣은 텍스트 및 이미지와 함께 보관하며, 종료 시 이를 삭제합니다. Claude Code v2.1.292 이상이 필요합니다.

287 

275### Ctrl+R을 사용한 역방향 검색288### Ctrl+R을 사용한 역방향 검색

276 289 

277`Ctrl+R`을 눌러 명령어 기록을 대화형으로 검색합니다. [전체 화면 렌더링](/docs/ko/fullscreen)에서는 `Ctrl+R`이 검색 대화상자를 열어줍니다: 입력하여 필터링하고, `위쪽` 및 `아래쪽` 화살표를 눌러 일치 항목을 이동하며, `Ctrl+S`를 눌러 범위를 이 세션, 이 프로젝트, 모든 프로젝트를 통해 순환합니다. `Enter` 또는 `Tab`을 눌러 일치 항목을 프롬프트 입력에 배치하거나, `Esc`를 눌러 취소합니다. 아래 단계는 클래식 렌더러의 인라인 검색을 설명합니다:290`Ctrl+R`을 눌러 명령 기록을 대화형으로 검색합니다. [전체 화면 렌더링](/docs/ko/fullscreen)에서는 `Ctrl+R`이 검색 대화상자를 열어줍니다: 입력하여 필터링하고, `Up` 및 `Down`을 눌러 일치 항목을 이동하며, `Ctrl+S`를 눌러 범위를 이 세션, 이 프로젝트, 모든 프로젝트를 통해 순환합니다. `Enter` 또는 `Tab`을 눌러 일치 항목을 프롬프트 입력에 배치하거나, `Esc`를 눌러 취소합니다. 아래 단계는 클래식 렌더러의 인라인 검색을 설명합니다:

278 291 

2791. **검색 시작**: `Ctrl+R`을 눌러 역방향 기록 검색을 활성화합니다2921. **검색 시작**: `Ctrl+R`을 눌러 역방향 기록 검색을 활성화합니다

2802. **쿼리 입력**: 이전 명령어에서 검색할 텍스트를 입력합니다. 검색어는 일치하는 결과에서 강조 표시됩니다2932. **쿼리 입력**: 이전 명령어에서 검색할 텍스트를 입력합니다. 검색어는 일치하는 결과에서 강조 표시됩니다


386* [`/effort`](/docs/ko/model-config#adjust-effort-level): [캐시 경고](/docs/ko/prompt-caching#changing-effort-level)를 확인하면(Claude Code가 표시하는 경우), Claude Code는 해당 턴에서 다음 요청을 할 때 변경 사항을 적용합니다.399* [`/effort`](/docs/ko/model-config#adjust-effort-level): [캐시 경고](/docs/ko/prompt-caching#changing-effort-level)를 확인하면(Claude Code가 표시하는 경우), Claude Code는 해당 턴에서 다음 요청을 할 때 변경 사항을 적용합니다.

387* [`/fast`](/docs/ko/fast-mode#toggle-fast-mode): Claude Code는 턴이 시작될 때 활성화되어 있던 빠른 모드 설정을 유지하므로, 속도 변경은 다음 턴부터 적용됩니다. 현재 모델이 빠른 모드를 지원하지 않으면, 빠른 모드를 켜면 [모델도 전환](/docs/ko/prompt-caching#turning-on-fast-mode)되며, Claude Code는 해당 턴에서 다음 요청부터 새 모델을 사용합니다.400* [`/fast`](/docs/ko/fast-mode#toggle-fast-mode): Claude Code는 턴이 시작될 때 활성화되어 있던 빠른 모드 설정을 유지하므로, 속도 변경은 다음 턴부터 적용됩니다. 현재 모델이 빠른 모드를 지원하지 않으면, 빠른 모드를 켜면 [모델도 전환](/docs/ko/prompt-caching#turning-on-fast-mode)되며, Claude Code는 해당 턴에서 다음 요청부터 새 모델을 사용합니다.

388 401 

402### 메시지가 큐에 있는 상태에서 세션을 백그라운드로 전환

403 

404[`←`를 눌러](/docs/ko/agent-view#switch-sessions-without-leaving-the-terminal) 세션이 백그라운드로 이동하면, 큐에 추가한 메시지도 함께 이동합니다. Claude는 백그라운드에서 전송된 순서대로 메시지를 읽습니다.

405 

406명령과 `!` 셸 명령은 이동할 수 없으며, [IDE 선택 항목](/docs/ko/vs-code#the-built-in-ide-mcp-server)이 첨부된 메시지 등 일부 메시지도 이동할 수 없습니다. 이러한 항목 중 하나가 큐에 있는 동안 `←`를 누르면 세션은 포그라운드에 유지되고 `Cannot open agents`로 시작하는 알림이 표시됩니다. 세션을 백그라운드로 전환하려면 해당 항목을 큐에서 빼낸 다음 `←`를 다시 누르세요.

407 

408* **명령 및 `!` 셸 명령**: 턴이 끝날 때 실행될 때까지 기다리거나, [취소](#take-back-what-you-queued)한 후 입력 상자를 비웁니다. 다른 항목이 큐에 있는 동안에는 `!` 셸 명령을 취소할 수 없으므로 실행될 때까지 기다리세요.

409* **이동할 수 없는 메시지**: Claude가 메시지를 읽을 때까지 기다립니다.

410 

389### 큐에 추가한 항목 취소411### 큐에 추가한 항목 취소

390 412 

391입력 상자의 첫 번째 줄에서 `Up`을 눌러 큐에 추가된 메시지와 명령을 취소할 수 있습니다. Claude Code는 이들을 큐에서 제거하고 입력 상자에 넣습니다. 한 줄에 하나씩, 입력한 텍스트보다 앞에 배치됩니다. 텍스트를 편집하고 `Enter`를 눌러 하나의 항목으로 다시 큐에 추가하거나, 입력 상자를 비워 삭제할 수 있습니다.413입력 상자의 첫 번째 줄에서 `Up`을 눌러 큐에 추가된 메시지와 명령을 취소할 수 있습니다. Claude Code는 이들을 큐에서 제거하고 입력 상자에 넣습니다. 한 줄에 하나씩, 입력한 텍스트보다 앞에 배치됩니다. 텍스트를 편집하고 `Enter`를 눌러 하나의 항목으로 다시 큐에 추가하거나, 입력 상자를 비워 삭제할 수 있습니다.

keybindings.md +23 −0

Details

446| :- | :- | :- |446| :- | :- | :- |

447| `settings:search` | / | 검색 모드 입력 |447| `settings:search` | / | 검색 모드 입력 |

448| `settings:retry` | R | 오류 시 사용 데이터 로드 다시 시도 |448| `settings:retry` | R | 오류 시 사용 데이터 로드 다시 시도 |

449| `settings:fixUsage` | F | `/usage` 바닥글이 수정을 제안할 때, Claude Code가 적용할 수 있는 [`/usage` 권장 사항](/docs/ko/costs#apply-recommendations-with-the-fix-shortcut)을 세션에 보냅니다. v2.1.305 이상 필요 |

449| `select:accept` | Enter, Space | 선택한 설정을 변경하거나 해당 하위 메뉴 열기 |450| `select:accept` | Enter, Space | 선택한 설정을 변경하거나 해당 하위 메뉴 열기 |

450| `confirm:no` | Escape | 패널 닫기. 변경 사항이 이미 저장됨 |451| `confirm:no` | Escape | 패널 닫기. 변경 사항이 이미 저장됨 |

451 452 


688 689 

689Claude가 묻는 질문의 `Other` 행에서는 vim 모드일 때 Escape를 눌러도 질문이 바로 취소되지 않습니다. [화면 읽기 프로그램 모드](/docs/ko/accessibility)가 아닌 경우, 이 행은 포커스될 때마다 INSERT 모드로 시작합니다. `Other` 행에서 Escape를 누르면 행이 NORMAL 모드로 전환되거나 입력하던 vim 명령이 취소되며, 질문은 열린 상태로 유지됩니다. 질문을 취소하려면 NORMAL 모드에서 Escape를 한 번 더 누릅니다.690Claude가 묻는 질문의 `Other` 행에서는 vim 모드일 때 Escape를 눌러도 질문이 바로 취소되지 않습니다. [화면 읽기 프로그램 모드](/docs/ko/accessibility)가 아닌 경우, 이 행은 포커스될 때마다 INSERT 모드로 시작합니다. `Other` 행에서 Escape를 누르면 행이 NORMAL 모드로 전환되거나 입력하던 vim 명령이 취소되며, 질문은 열린 상태로 유지됩니다. 질문을 취소하려면 NORMAL 모드에서 Escape를 한 번 더 누릅니다.

690 691 

692### 키 한 번으로 질문 취소하기

693 

694vim 모드에서 키 한 번으로 질문을 취소하려면 `Select` 컨텍스트에서 다른 키를 `select:cancel`에 바인딩합니다. 이 방법은 옵션 하나를 선택하는 질문의 `Other` 행에서 사용할 수 있습니다. [화면 읽기 프로그램 모드](/docs/ko/accessibility)이거나 여러 옵션을 선택할 수 있는 질문에서는 바인딩된 키로 취소되지 않으므로 Escape로 취소합니다.

695 

696Ctrl 또는 Alt와 함께 누르는 키를 선택합니다. 단독 문자나 숫자는 바인딩에 전달되지 않고 대신 [`Other` 행으로 입력됩니다](#text-fields). 예를 들어 `Ctrl+Q`를 바인딩하려면 `~/.claude/keybindings.json`에 다음을 추가합니다:

697 

698```json theme={null}

699{

700 "bindings": [

701 {

702 "context": "Select",

703 "bindings": {

704 "ctrl+q": "select:cancel"

705 }

706 }

707 ]

708}

709```

710 

711파일을 저장한 후 옵션 하나를 선택하는 질문의 `Other` 행에서 `Ctrl+Q`를 누릅니다. 행이 INSERT 모드이든 NORMAL 모드이든 질문이 닫힙니다.

712 

691## 유효성 검사713## 유효성 검사

692 714 

693Claude Code는 키보드 단축키의 유효성을 검사하며, 다음과 같은 경우 디버그 로그에 경고를 기록합니다.715Claude Code는 키보드 단축키의 유효성을 검사하며, 다음과 같은 경우 디버그 로그에 경고를 기록합니다.

694 716 

695* 구문 분석 오류(잘못된 JSON 또는 구조)717* 구문 분석 오류(잘못된 JSON 또는 구조)

696* `ctl+k`와 같이 철자가 잘못된 수정자 키. Claude Code는 인식하지 못하는 부분을 제외하고 나머지 키 입력(이 예에서는 `k`)에 바인딩을 적용합니다.718* `ctl+k`와 같이 철자가 잘못된 수정자 키. Claude Code는 인식하지 못하는 부분을 제외하고 나머지 키 입력(이 예에서는 `k`)에 바인딩을 적용합니다.

719* `ctrl+ k`와 같이 키 문자열에서 `+` 옆에 공백이 있는 경우. Claude Code는 이 문자열을 `ctrl+` 다음에 `k`가 오는 [코드](#chords)로 읽습니다. `ctrl+` 단독과 일치하는 키 입력은 없으므로 이 바인딩은 절대 실행되지 않습니다. 공백을 제거하세요.

697* 잘못된 컨텍스트 이름720* 잘못된 컨텍스트 이름

698* 문자열도 `null`도 아닌 작업과 같은 잘못된 작업 값721* 문자열도 `null`도 아닌 작업과 같은 잘못된 작업 값

699* 등록된 작업 이름의 오타와 같은 알 수 없는 작업 이름. Claude Code는 해당 바인딩을 건너뛰고 그 키에 대한 기본 바인딩을 계속 적용합니다.722* 등록된 작업 이름의 오타와 같은 알 수 없는 작업 이름. Claude Code는 해당 바인딩을 건너뛰고 그 키에 대한 기본 바인딩을 계속 적용합니다.

large-codebases.md +33 −33

Details

83이미 체크인된 파일을 축소하려면 [`/doctor` 점검](/docs/ko/memory#my-claude-md-is-too-large)을 실행하십시오. 루트 `CLAUDE.md`는 모든 패키지에 적용되는 규칙을 보유합니다:83이미 체크인된 파일을 축소하려면 [`/doctor` 점검](/docs/ko/memory#my-claude-md-is-too-large)을 실행하십시오. 루트 `CLAUDE.md`는 모든 패키지에 적용되는 규칙을 보유합니다:

84 84 

85```markdown CLAUDE.md theme={null}85```markdown CLAUDE.md theme={null}

86모노레포 루트가 아닌 패키지 디렉토리에서 패키지 스크립트를 실행하십시오.86모노레포 루트가 아닌 패키지 디렉터리에서 패키지 스크립트를 실행하십시오.

87커밋 제목 앞에 패키지 이름을 붙이십시오. 예를 들어 `api: add rate limiting`.87커밋 제목 앞에 패키지 이름을 붙이십시오. 예를 들어 `api: add rate limiting`.

88packages/*/generated/ 아래의 파일을 편집하지 마십시오. 대신 패키지에서 `npm run codegen`을 실행하십시오.88packages/*/generated/ 아래의 파일을 편집하지 마십시오. 대신 패키지에서 `npm run codegen`을 실행하십시오.

89```89```


141* `"**/packages/legacy-*/**"`: 글로브와 일치하는 이름의 모든 패키지를 제외하며, 규칙 포함141* `"**/packages/legacy-*/**"`: 글로브와 일치하는 이름의 모든 패키지를 제외하며, 규칙 포함

142* `"/home/user/monorepo/legacy/CLAUDE.md"`: 절대 경로로 하나의 특정 파일을 제외142* `"/home/user/monorepo/legacy/CLAUDE.md"`: 절대 경로로 하나의 특정 파일을 제외

143 143 

144관리되는 정책 CLAUDE.md 파일은 제외할 수 없으므로 조직 전체 지침은 항상 적용됩니다. `claudeMdExcludes`를 모든 [설정 범위](/docs/ko/settings#where-settings-live): 사용자, 프로젝트, 로컬, 또는 관리됨에서 설정할 수 있습니다. 배열은 범위 전체에 병합되므로 팀은 프로젝트 수준 기본값을 설정하면서 개인은 로컬 재정의를 추가할 수 있습니다.144`claudeMdExcludes`는 모든 [설정 범위](/docs/ko/settings#where-settings-live): 사용자, 프로젝트, 로컬, 또는 관리됨에서 설정할 수 있습니다. 배열은 범위 전체에 병합되므로 팀은 프로젝트 수준 기본값을 설정하면서 개인은 로컬 재정의를 추가할 수 있습니다. 조직에서 [관리형 CLAUDE.md 파일](/docs/ko/memory#deploy-organization-wide-claude-md)을 배포하는 경우, 어떤 범위에서 패턴을 설정하든 해당 파일과 일치하는 패턴이 있어도 그 파일은 건너뛰지 않습니다.

145 145 

146전체 제외 문서는 [특정 CLAUDE.md 파일 제외](/docs/ko/memory#exclude-specific-claude-md-files)를 참조하십시오.146전체 제외 문서는 [특정 CLAUDE.md 파일 제외](/docs/ko/memory#exclude-specific-claude-md-files)를 참조하십시오.

147 147 


304 304 

305이 영역의 모든 사람이 필요로 하는 형제 디렉토리의 경우 `additionalDirectories`를 `.claude/settings.json`에 커밋하십시오. 개인 선택 또는 일회성 액세스의 경우 `.claude/settings.local.json`을 사용하거나 시작 시 `--add-dir`을 전달하십시오.305이 영역의 모든 사람이 필요로 하는 형제 디렉토리의 경우 `additionalDirectories`를 `.claude/settings.json`에 커밋하십시오. 개인 선택 또는 일회성 액세스의 경우 `.claude/settings.local.json`을 사용하거나 시작 시 `--add-dir`을 전달하십시오.

306 306 

307## 디렉토리별 스킬 추가307## 디렉터리별 스킬 추가

308 308 

309모든 하위 디렉토리는 자신의 스택으로 범위가 지정된 [스킬](/docs/ko/skills)을 정의할 수 있습니다. 스킬은 Claude가 관련성이 있다고 판단할 때 요청 시 로드되므로 API 특정 도구는 프론트엔드 작업 중에 컨텍스트를 소비하지 않습니다.309모든 하위 디렉터리는 자체 스택으로 범위가 지정된 [스킬](/docs/ko/skills)을 정의할 수 있습니다. 스킬은 Claude가 관련이 있다고 판단할 때 필요에 따라 로드되므로, API 전용 도구가 프런트엔드 작업 중에 컨텍스트를 소비하지 않습니다.

310 310 

311스킬은 디렉토리 내의 `.claude/skills/` 아래에 있습니다. 해당 영역의 코드와 함께 커밋하여 저장소를 복제하는 모든 사람이 이를 받도록 하십시오. 모노레포에서는 패키지당 하나의 스킬 세트가 될 수 있습니다. 대규모 단일 트리 코드베이스에서는 `src/db/.claude/skills/`와 같은 하위 시스템당 하나입니다.311스킬은 해당 디렉터리 내부의 `.claude/skills/` 아래에 위치합니다. 해당 영역의 코드와 함께 커밋하면 저장소를 클론하는 모든 사람이 스킬을 사용할 수 있습니다. 모노레포에서는 패키지마다 하나의 스킬 세트를 둘 수 있습니다. 대규모 단일 트리 코드베이스에서는 `src/db/.claude/skills/`와 같이 서브시스템마다 하나의 세트를 둡니다.

312 312 

313하위 디렉토리 내에 스킬 디렉토리를 생성하십시오:313하위 디렉터리 안에 스킬 디렉터리를 만듭니다:

314 314 

315```bash theme={null}315```bash theme={null}

316mkdir -p packages/api/.claude/skills/api-testing316mkdir -p packages/api/.claude/skills/api-testing

317```317```

318 318 

319그런 다음 해당 디렉토리 내에 `SKILL.md`를 작성하십시오. 여기서는 `packages/api/.claude/skills/api-testing/SKILL.md`. 이 예제는 Claude에게 API 패키지의 테스트 패턴을 가르칩니다:319그런 다음 해당 디렉터리 안에 `SKILL.md`를 작성합니다. 여기서는 `packages/api/.claude/skills/api-testing/SKILL.md`입니다. 이 예시는 Claude에게 API 패키지의 테스트 패턴을 알려줍니다:

320 320 

321```markdown packages/api/.claude/skills/api-testing/SKILL.md theme={null}321```markdown packages/api/.claude/skills/api-testing/SKILL.md theme={null}

322---322---

323name: api-testing323name: api-testing

324description: API 패키지의 테스트 패턴. packages/api/에서 테스트를 작성하거나 수정할 때 사용합니다.324description: Testing patterns for the API package. Use when writing or modifying tests in packages/api/.

325---325---

326 326 

327## 테스트 구조327## Test structure

328 328 

329테스트는 `src/__tests__/`에 있으며 `src/` 디렉토리 구조를 미러링합니다.329Tests are in `src/__tests__/` mirroring the `src/` directory structure.

330각 경로 파일에는 해당하는 `.test.ts` 파일이 있습니다.330Each route file has a corresponding `.test.ts` file.

331 331 

332## 테스트 실행332## Running tests

333 333 

334- 모든 테스트: `npm test`334- All tests: `npm test`

335- 단일 파일: `npm test -- src/__tests__/routes/users.test.ts`335- Single file: `npm test -- src/__tests__/routes/users.test.ts`

336- 감시 모드: `npm test -- --watch`336- Watch mode: `npm test -- --watch`

337 337 

338## 테스트 유틸리티338## Test utilities

339 339 

340- `src/__tests__/helpers/db.ts`: 데이터베이스 테스트를 위해 `setupTestDb()` 및 `teardownTestDb()` 제공340- `src/__tests__/helpers/db.ts`: provides `setupTestDb()` and `teardownTestDb()` for database tests

341- `src/__tests__/helpers/auth.ts`: 인증된 엔드포인트를 위해 `createTestUser()` 및 `getAuthToken()` 제공341- `src/__tests__/helpers/auth.ts`: provides `createTestUser()` and `getAuthToken()` for authenticated endpoints

342 342 

343## 패턴343## Patterns

344 344 

345- 원시 fetch가 아닌 HTTP 어설션에 `supertest` 사용345- Use `supertest` for HTTP assertions, not raw fetch

346- 항상 데이터베이스 테스트를 롤백하는 트랜잭션으로 래핑346- Always wrap database tests in a transaction that rolls back

347- `src/__tests__/mocks/`에서 외부 서비스 모킹347- Mock external services in `src/__tests__/mocks/`

348```348```

349 349 

350다른 하위 디렉토리는 같은 방식으로 다른 스킬을 보유합니다: `packages/web/.claude/skills/component-patterns/`는 테스트 대신 프론트엔드의 컴포넌트 규칙을 설명합니다. Claude가 `packages/api/`의 파일에서 작업할 때 api-testing 스킬을 로드합니다. `packages/web/`에서 작업할 때 component-patterns를 로드합니다. 어느 디렉토리의 스킬도 다른 디렉토리의 작업 중에 로드되지 않습니다.350다른 하위 디렉터리도 같은 방식으로 다른 스킬을 보유합니다. `packages/web/.claude/skills/component-patterns/`는 테스트 대신 프런트엔드의 컴포넌트 규칙을 설명합니다. Claude가 `packages/api/`의 파일에서 작업할 때는 api-testing 스킬을 로드합니다. `packages/web/`에서 작업할 때는 대신 component-patterns를 로드합니다. 어느 디렉터리의 스킬도 다른 디렉터리의 작업 중에는 로드되지 않습니다.

351 351 

352파일 패턴으로 배치 대신 스킬의 범위를 지정할 수도 있습니다. [`paths` 프론트매터 필드](/docs/ko/skills#frontmatter-reference)는 글로브 패턴을 사용하고, Claude는 일치하는 파일로 작업할 때만 자동으로 스킬을 로드합니다. 저장소 루트의 `.claude/skills/`에 있지만 `**/migrations/**`와 같이 어디든 나타나는 특정 파일에만 적용되는 데이터베이스 마이그레이션 스킬과 같은 스킬에 이를 사용하십시오.352배치 위치 대신 파일 패턴으로 스킬의 범위를 지정할 수도 있습니다. [`paths` frontmatter 필드](/docs/ko/skills#frontmatter-reference)는 glob 패턴을 받으며, Claude는 일치하는 파일로 작업할 때만 스킬을 자동으로 로드합니다. 저장소 루트의 `.claude/skills/`에 있지만 특정 파일에만 적용되는 스킬에 이 방법을 사용합니다. 예를 들어 `**/migrations/**`로 범위가 지정된 데이터베이스 마이그레이션 스킬이 있습니다.

353 353 

354스킬 생성 및 구성에 대한 자세한 내용은 [스킬](/docs/ko/skills)을 참조하십시오.354스킬 생성 및 구성에 대한 자세한 내용은 [스킬](/docs/ko/skills)을 참조하십시오.

355 355 

356### 스킬을 발견 가능하게 유지356### 스킬을 찾기 쉽게 유지하기

357 357 

358많은 디렉토리에 분산된 스킬로 Claude가 선택할 수 있는 목록이 커질 수 있습니다. Claude는 발견된 모든 스킬의 이름과 설명을 읽어 스킬을 선택하고, 선택된 스킬의 전체 콘텐츠만 컨텍스트에 로드됩니다. 이 섹션은 해당 목록을 작게 유지하는 방법을 다룹니다.358스킬이 여러 디렉터리에 분산되어 있으면 Claude가 선택할 목록이 커질 수 있습니다. Claude는 발견된 모든 스킬의 이름과 설명을 읽어 스킬을 고르며, 선택된 스킬의 전체 내용만 컨텍스트에 로드됩니다. 이 섹션에서는 그 목록을 작게 유지하는 방법을 다룹니다.

359 359 

360범위 내 스킬은 Claude를 시작하는 위치에 따라 다릅니다:360범위에 포함되는 스킬은 Claude를 시작하는 위치에 따라 달라집니다:

361 361 

362* **`packages/api/`와 같은 하위 디렉토리에서**: 해당 디렉토리의 스킬, 저장소 루트까지의 모든 상위 항목, 사용자 및 엔터프라이즈 수준362* **`packages/api/`와 같은 하위 디렉터리에서 시작하는 경우**: 해당 디렉터리, 저장소 루트까지의 모든 상위 디렉터리, 그리고 사용자 및 엔터프라이즈 수준의 스킬

363* **저장소 루트에서**: 세션 중에 Claude가 터치하는 모든 하위 디렉토리의 스킬. 수백 개로 누적될 수 있습니다.363* **저장소 루트에서 시작하는 경우**: 루트 스킬과 함께, Claude가 세션 중에 접근하는 모든 하위 디렉터리의 스킬이 로드되며, 이는 수백 개까지 누적될 수 있습니다

364* **[`--add-dir`](#grant-access-across-packages-or-repositories)으로 형제 추가 후**: 해당 형제의 스킬도 로드됩니다. `additionalDirectories` 설정은 파일 액세스만 부여하고 스킬을 로드하지 않습니다.364* **[`--add-dir`](#grant-access-across-packages-or-repositories)로 형제 디렉터리를 추가한 경우**: 해당 형제 디렉터리의 스킬도 로드됩니다. `additionalDirectories` 설정은 파일 접근 권한만 부여하며 스킬은 로드하지 않습니다

365 365 

366이름은 항상 로드되지만 [많은 스킬이 있을 때 일부 스킬의 설명이 완전히 손실될 수 있으며](/docs/ko/skills#skill-descriptions-are-cut-short) Claude가 스킬 적용 여부를 결정하는 데 사용하는 키워드를 제거할 수 있습니다. 설명을 짧게 유지하고 요청에 포함될 단어로 시작하십시오. 예를 들어 "`packages/api/`에서 테스트 작성 또는 수정".366이름은 항상 로드되지만, [스킬이 많을 경우 일부 스킬은 설명이 완전히 사라지며](/docs/ko/skills#skill-descriptions-are-cut-short), 이로 인해 Claude가 스킬의 적용 여부를 판단하는 데 사용하는 키워드가 제거될 수 있습니다. 설명은 짧게 유지하고, "`packages/api/`에서 테스트를 작성하거나 수정할 때"처럼 요청에 포함될 법한 단어로 시작하십시오.

367 367 

368많은 디렉토리가 공유하는 스킬(예: PR 규칙 또는 배포 체크리스트)의 경우 저장소 루트의 `.claude/skills/`에 배치하여 모든 시작 디렉토리에서 로드되도록 하십시오. 공유 스킬이 자신의 버전 기록이 필요하거나 저장소 전체에서 작동해야 하면 대신 [플러그인](/docs/ko/plugins/overview)으로 패키징하십시오. 플러그인 스킬은 `plugin-name:skill-name` 네임스페이스를 사용하므로 디렉토리별 스킬과 충돌하지 않습니다. 플랫폼 팀은 한 곳에서 버전 관리하고 업데이트할 수 있습니다.368PR 규칙이나 배포 체크리스트처럼 여러 디렉터리가 공유하는 스킬은 저장소 루트의 `.claude/skills/`에 배치하여 어느 시작 디렉터리에서든 로드되도록 합니다. 공유 스킬에 자체 버전 기록이 필요하거나 여러 저장소에서 작동해야 하는 경우에는 대신 [플러그인](/docs/ko/plugins/overview)으로 패키징합니다. 플러그인 스킬은 `plugin-name:skill-name` 네임스페이스를 사용하므로 디렉터리별 스킬과 충돌하지 않습니다. 플랫폼 팀은 한곳에서 이를 버전 관리하고 업데이트할 수 있습니다.

369 369 

370사용되지 않는 스킬을 찾으려면 OpenTelemetry [로그 내보내기](/docs/ko/monitoring-usage)를 활성화하고 `OTEL_LOG_TOOL_DETAILS=1`을 설정하여 스킬 이름이 수정되지 않고 그대로 기록되도록 하십시오. [`skill_activated` 이벤트](/docs/ko/monitoring-usage#skill-activated-event)는 `skill.name` 속성에 모든 호출을 기록하고, `invocation_trigger`는 명령, Claude, 또는 중첩된 스킬이 호출했는지 기록하여 통합하거나 폐기할 항목을 알려줍니다.370사용되지 않는 스킬을 찾으려면 OpenTelemetry [로그 내보내기](/docs/ko/monitoring-usage)를 활성화하고 `OTEL_LOG_TOOL_DETAILS=1`을 설정하여 스킬 이름이 가려지지 않고 그대로 기록되도록 합니다. [`skill_activated` 이벤트](/docs/ko/monitoring-usage#skill-activated-event)는 모든 호출을 `skill.name` 속성에 기록하고, `invocation_trigger`는 명령, Claude, 중첩된 스킬 중 무엇이 호출했는지를 기록하므로 어떤 스킬을 통합하거나 폐기할지 파악할 수 있습니다.

371 371 

372## 계층화가 확장을 멈출 때 규칙 중앙화372## 계층화가 확장을 멈출 때 규칙 중앙화

373 373 

Details

513| `Your apiKeyHelper script is failing` 또는 비대화형 모드에서 stderr의 `apiKeyHelper failed:` | [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 설정의 명령이 사용 가능한 키를 생성하지 않아서 요청이 자리 표시자 키를 전달합니다. | 명령을 직접 실행하여 실패 이유를 확인하고, 만료된 세션을 보고하면 자격 증명 제공자로 다시 인증합니다. [오류 참조](/docs/ko/errors#your-apikeyhelper-script-is-failing)를 참조하세요. |513| `Your apiKeyHelper script is failing` 또는 비대화형 모드에서 stderr의 `apiKeyHelper failed:` | [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 설정의 명령이 사용 가능한 키를 생성하지 않아서 요청이 자리 표시자 키를 전달합니다. | 명령을 직접 실행하여 실패 이유를 확인하고, 만료된 세션을 보고하면 자격 증명 제공자로 다시 인증합니다. [오류 참조](/docs/ko/errors#your-apikeyhelper-script-is-failing)를 참조하세요. |

514| 아무것도 주소에서 응답하지 않을 때 `Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)` 또는 호스트 이름이 확인되지 않을 때 `Can't reach the API server — check your internet or DNS (ENOTFOUND)`, 종종 Claude Code가 [백오프로 재시도](/docs/ko/errors#automatic-retries)하는 동안 조용한 일시 중지 후. 괄호의 코드는 다양합니다. [Unable to connect to API](/docs/ko/errors#unable-to-connect-to-api)는 코드 철자와 이전 표현을 다룹니다. | 기본 URL에서 아무것도 응답하지 않았습니다. 주소가 잘못되었거나 VPN 또는 방화벽이 게이트웨이로의 경로를 차단합니다. | 위의 [curl 테스트](#verify-the-connection)를 실행합니다. 동일한 원인으로 즉시 실패하고, 게이트웨이 팀과 URL 및 네트워크 경로를 확인합니다. |514| 아무것도 주소에서 응답하지 않을 때 `Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)` 또는 호스트 이름이 확인되지 않을 때 `Can't reach the API server — check your internet or DNS (ENOTFOUND)`, 종종 Claude Code가 [백오프로 재시도](/docs/ko/errors#automatic-retries)하는 동안 조용한 일시 중지 후. 괄호의 코드는 다양합니다. [Unable to connect to API](/docs/ko/errors#unable-to-connect-to-api)는 코드 철자와 이전 표현을 다룹니다. | 기본 URL에서 아무것도 응답하지 않았습니다. 주소가 잘못되었거나 VPN 또는 방화벽이 게이트웨이로의 경로를 차단합니다. | 위의 [curl 테스트](#verify-the-connection)를 실행합니다. 동일한 원인으로 즉시 실패하고, 게이트웨이 팀과 URL 및 네트워크 경로를 확인합니다. |

515| `API returned an empty or malformed response (HTTP 200)` | 게이트웨이 또는 중간 프록시가 비 API 응답(종종 HTML 오류 또는 로그인 페이지)을 반환했습니다. | 위의 [curl 요청](#verify-the-connection)으로 테스트합니다. Claude API 응답이 아닌 것으로 응답하는 게이트웨이 경로를 수정합니다. [오류 참조](/docs/ko/errors#api-returned-an-empty-or-malformed-response)는 메시지가 보고하는 세부 정보를 설명합니다. |515| `API returned an empty or malformed response (HTTP 200)` | 게이트웨이 또는 중간 프록시가 비 API 응답(종종 HTML 오류 또는 로그인 페이지)을 반환했습니다. | 위의 [curl 요청](#verify-the-connection)으로 테스트합니다. Claude API 응답이 아닌 것으로 응답하는 게이트웨이 경로를 수정합니다. [오류 참조](/docs/ko/errors#api-returned-an-empty-or-malformed-response)는 메시지가 보고하는 세부 정보를 설명합니다. |

516| `context_management`, `Extra inputs are not permitted` 또는 기타 인식되지 않는 필드를 명시하는 `400` 오류 | 게이트웨이는 요청을 Anthropic 형식 엔드포인트로 전달하는 업스트림으로 전달하고, Claude Code가 Anthropic에 전송하는 필드를 거부합니다. | `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`을 설정합니다. 이는 대부분의 사전 릴리스 필드를 억제합니다. [기능 통과](/docs/ko/llm-gateway-protocol#feature-pass-through)를 참조하세요. 일부 베타는 이 플래그로 제어되지 않습니다. 이들의 경우, 일치하는 `CLAUDE_CODE_USE_*` 제공자 변수를 설정하여 Claude Code가 해당 제공자가 허용하는 것만 전송하도록 합니다. |516| `context_management`, `Extra inputs are not permitted` 또는 기타 인식되지 않는 필드를 명시하는 `400` 오류 | 게이트웨이가 Claude Code가 Anthropic 형식 엔드포인트에 전송하는 필드를 거부하는 업스트림으로 요청을 전달합니다. | `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`을 설정합니다. 이는 대부분의 사전 릴리스 필드를 억제합니다. [기능 통과](/docs/ko/llm-gateway-protocol#feature-pass-through)를 참조하세요. 일부 베타는 이 플래그로 제어되지 않습니다. 이들의 경우, 일치하는 `CLAUDE_CODE_USE_*` 제공자 변수를 설정하여 Claude Code가 해당 제공자가 허용하는 것만 전송하도록 합니다. 메시지가 명시하는 필드에 따라 달라지는 단계는 [Extra inputs are not permitted](/docs/ko/errors#extra-inputs-are-not-permitted)를 참조하세요. |

517| `Input tag 'adaptive' found`와 같은 `thinking` 또는 `adaptive`를 명시하는 `400` 오류 | 업스트림 모델 빌드는 Claude Code가 Claude Opus 4.6, Claude Sonnet 4.6, Claude Haiku 5.5, Claude Fable 5 및 이후 모델에 대해 요청하는 적응형 추론을 허용하지 않습니다. | 게이트웨이의 업스트림을 업그레이드합니다. Opus 4.6 및 Sonnet 4.6에서는 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1`이 대신 작동합니다. [모델 구성](/docs/ko/model-config) 기능 변수는 `CLAUDE_CODE_USE_BEDROCK` 및 `CLAUDE_CODE_USE_VERTEX`와 같은 제공자 구성에만 적용되며, `ANTHROPIC_BASE_URL` 게이트웨이 뒤에는 적용되지 않습니다. |517| `Input tag 'adaptive' found`와 같은 `thinking` 또는 `adaptive`를 명시하는 `400` 오류 | 업스트림 모델 빌드는 Claude Code가 Claude Opus 4.6, Claude Sonnet 4.6, Claude Haiku 5.5, Claude Fable 5 및 이후 모델에 대해 요청하는 적응형 추론을 허용하지 않습니다. | 게이트웨이의 업스트림을 업그레이드합니다. Opus 4.6 및 Sonnet 4.6에서는 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1`이 대신 작동합니다. [모델 구성](/docs/ko/model-config) 기능 변수는 `CLAUDE_CODE_USE_BEDROCK` 및 `CLAUDE_CODE_USE_VERTEX`와 같은 제공자 구성에만 적용되며, `ANTHROPIC_BASE_URL` 게이트웨이 뒤에는 적용되지 않습니다. |

518| 게이트웨이 자체 단어로 컨텍스트 또는 토큰 제한을 명시하는 `400` 오류(예: `ContextWindowExceededError` 또는 `prompt token count of N exceeds the limit of M`) | 게이트웨이는 모델의 기본 윈도우보다 작은 컨텍스트를 적용하고 업스트림 오류를 다시 작성하므로, Claude Code는 이를 [너무 긴 오류](/docs/ko/errors#prompt-is-too-long)로 인식하지 않고 자동으로 compact하고 재시도하지 않습니다. | `/compact`를 실행하여 세션을 복구합니다. 이를 방지하려면 `CLAUDE_CODE_AUTO_COMPACT_WINDOW`를 게이트웨이의 제한으로 설정합니다. Claude Code는 값을 최소 100,000 토큰 이상, 최대 모델의 컨텍스트 윈도우 이하로 제한하므로, 100,000 미만의 게이트웨이 제한은 일치할 수 없고 `/compact`는 거기에서 복구로 남습니다. 또한 `CLAUDE_CODE_MAX_OUTPUT_TOKENS`를 게이트웨이 모델의 출력 제한 아래로 설정합니다. |518| 게이트웨이 자체 단어로 컨텍스트 또는 토큰 제한을 명시하는 `400` 오류(예: `ContextWindowExceededError` 또는 `prompt token count of N exceeds the limit of M`) | 게이트웨이는 모델의 기본 윈도우보다 작은 컨텍스트를 적용하고 업스트림 오류를 다시 작성하므로, Claude Code는 이를 [너무 긴 오류](/docs/ko/errors#prompt-is-too-long)로 인식하지 않고 자동으로 compact하고 재시도하지 않습니다. | `/compact`를 실행하여 세션을 복구합니다. 이를 방지하려면 `CLAUDE_CODE_AUTO_COMPACT_WINDOW`를 게이트웨이의 제한으로 설정합니다. Claude Code는 값을 최소 100,000 토큰 이상, 최대 모델의 컨텍스트 윈도우 이하로 제한하므로, 100,000 미만의 게이트웨이 제한은 일치할 수 없고 `/compact`는 거기에서 복구로 남습니다. 또한 `CLAUDE_CODE_MAX_OUTPUT_TOKENS`를 게이트웨이 모델의 출력 제한 아래로 설정합니다. |

519| `400` 오류가 Claude Code v2.1.265부터 v2.1.267까지의 모든 요청에서 도구의 입력 스키마 또는 `pattern`을 거부합니다. | 이러한 버전의 점진적 롤아웃에서 [Artifact 도구](/docs/ko/artifacts#availability) 스키마는 `\p{...}` Unicode 문자 클래스가 있는 정규식을 전달합니다. Anthropic API는 이를 허용하지만, 각 도구 스키마의 `pattern`을 자체 정규식 엔진으로 확인하는 게이트웨이 또는 업스트림은 전체 요청을 거부합니다. | v2.1.268 이상으로 업데이트합니다. 이는 정규식을 전송하지 않습니다. 영향을 받는 버전에서는 [artifacts를 끕니다](/docs/ko/artifacts#disable-artifacts). 이는 도구와 해당 스키마를 요청에서 제거합니다. |519| `400` 오류가 Claude Code v2.1.265부터 v2.1.267까지의 모든 요청에서 도구의 입력 스키마 또는 `pattern`을 거부합니다. | 이러한 버전의 점진적 롤아웃에서 [Artifact 도구](/docs/ko/artifacts#availability) 스키마는 `\p{...}` Unicode 문자 클래스가 있는 정규식을 전달합니다. Anthropic API는 이를 허용하지만, 각 도구 스키마의 `pattern`을 자체 정규식 엔진으로 확인하는 게이트웨이 또는 업스트림은 전체 요청을 거부합니다. | v2.1.268 이상으로 업데이트합니다. 이는 정규식을 전송하지 않습니다. 영향을 받는 버전에서는 [artifacts를 끕니다](/docs/ko/artifacts#disable-artifacts). 이는 도구와 해당 스키마를 요청에서 제거합니다. |

Details

100| :- | :- | :- | :- |100| :- | :- | :- | :- |

101| 기본적으로 요청의 모델 ID | Amazon Bedrock의 `us.anthropic.claude-opus-4-8`과 같은 제공자 형식 | `claude-opus-4-8`과 같은 Anthropic ID | Anthropic ID |101| 기본적으로 요청의 모델 ID | Amazon Bedrock의 `us.anthropic.claude-opus-4-8`과 같은 제공자 형식 | `claude-opus-4-8`과 같은 Anthropic ID | Anthropic ID |

102| 전송되는 `anthropic-beta` 값 | Amazon Bedrock 및 Agent Platform이 허용하는 부분 집합 | [기능 통과](#feature-pass-through)에 설명된 전체 집합, 개발자가 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](#disable-pre-release-capabilities)를 설정하지 않은 경우 | Amazon Bedrock 및 Agent Platform이 허용하는 부분 집합 |102| 전송되는 `anthropic-beta` 값 | Amazon Bedrock 및 Agent Platform이 허용하는 부분 집합 | [기능 통과](#feature-pass-through)에 설명된 전체 집합, 개발자가 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](#disable-pre-release-capabilities)를 설정하지 않은 경우 | Amazon Bedrock 및 Agent Platform이 허용하는 부분 집합 |

103| Claude Code가 인식하지 못하는 모델 ID(예: 게이트웨이 별칭)에 대한 요청 필드 | 적응형 추론이 아닌 고정 예산의 사고, 그리고 노력 또는 컨텍스트 관리 필드 없음 | Amazon Bedrock 또는 Agent Platform 업스트림이 거부할 수 있는 적응형 추론, 노력 및 컨텍스트 관리를 포함하여 현재 Claude 모델이 Claude API에서 허용하는 모든 것 | Amazon Bedrock 또는 Agent Platform 형식과 동일 |103| Claude Code가 인식하지 못하는 모델 ID(예: 게이트웨이 별칭)에 대한 요청 필드 | 적응형 추론이 아닌 고정 예산의 사고, 그리고 노력 또는 컨텍스트 관리 필드 없음. Claude Code는 여전히 [대화 중간 시스템 메시지](#feature-pass-through)를 전송함 | Amazon Bedrock 또는 Agent Platform 업스트림이 거부할 수 있는 적응형 추론, 노력 및 컨텍스트 관리를 포함하여 현재 Claude 모델이 Claude API에서 허용하는 모든 것 | Amazon Bedrock 또는 Agent Platform 형식과 동일 |

104| 개발자가 옵트인할 때 1시간 [프롬프트 캐시 TTL](/docs/ko/prompt-caching#choose-the-ttl-yourself) | `cache_control`의 `ttl` 필드를 통해 요청되며, 베타 값 없음 | `ttl` 필드와 `anthropic-beta`의 `extended-cache-ttl` 값을 통해 요청되며, 이를 전달해야 함 | Claude 앱 게이트웨이 [가용성 및 제한사항](/docs/ko/claude-apps-gateway#availability-and-limitations) 표 참조 |104| 개발자가 옵트인할 때 1시간 [프롬프트 캐시 TTL](/docs/ko/prompt-caching#choose-the-ttl-yourself) | `cache_control`의 `ttl` 필드를 통해 요청되며, 베타 값 없음 | `ttl` 필드와 `anthropic-beta`의 `extended-cache-ttl` 값을 통해 요청되며, 이를 전달해야 함 | Claude 앱 게이트웨이 [가용성 및 제한사항](/docs/ko/claude-apps-gateway#availability-and-limitations) 표 참조 |

105| `ANTHROPIC_DEFAULT_HAIKU_MODEL`이 하나를 고정하지 않는 한 [백그라운드 작업](/docs/ko/costs#background-token-usage)용 모델 | 기본 Sonnet 모델, 또는 하나가 선택되면 주 모델, [Amazon Bedrock](/docs/ko/amazon-bedrock#4-pin-model-versions) 및 [Agent Platform](/docs/ko/google-vertex-ai#5-pin-model-versions) 페이지에서 설명하는 대로 | 주 모델, 또는 `ANTHROPIC_API_KEY` 또는 `apiKeyHelper`가 Anthropic Console 키를 제공하고 `ANTHROPIC_AUTH_TOKEN`이 설정되지 않은 경우 기본 Haiku 모델 | 주 모델 |105| `ANTHROPIC_DEFAULT_HAIKU_MODEL`이 하나를 고정하지 않는 한 [백그라운드 작업](/docs/ko/costs#background-token-usage)용 모델 | 기본 Sonnet 모델, 또는 하나가 선택되면 주 모델, [Amazon Bedrock](/docs/ko/amazon-bedrock#4-pin-model-versions) 및 [Agent Platform](/docs/ko/google-vertex-ai#5-pin-model-versions) 페이지에서 설명하는 대로 | 주 모델, 또는 `ANTHROPIC_API_KEY` 또는 `apiKeyHelper`가 Anthropic Console 키를 제공하고 `ANTHROPIC_AUTH_TOKEN`이 설정되지 않은 경우 기본 Haiku 모델 | 주 모델 |

106 106 


207 207 

208Claude Code는 `ANTHROPIC_BASE_URL` 게이트웨이를 Anthropic 형식 엔드포인트로 취급하고 `api.anthropic.com`으로 전송하는 베타 헤더 및 요청 본문 필드를 전송합니다. 단, 직접 연결을 위해 예약된 작은 진단 및 기본값 집합은 제외합니다. 이 집합은 릴리스에 따라 다르므로 그 내용에 의존하지 마십시오.208Claude Code는 `ANTHROPIC_BASE_URL` 게이트웨이를 Anthropic 형식 엔드포인트로 취급하고 `api.anthropic.com`으로 전송하는 베타 헤더 및 요청 본문 필드를 전송합니다. 단, 직접 연결을 위해 예약된 작은 진단 및 기본값 집합은 제외합니다. 이 집합은 릴리스에 따라 다르므로 그 내용에 의존하지 마십시오.

209 209 

210기능을 추가하는 본문 필드는 베타 헤더와 쌍을 이루며, 쌍은 함께 이동합니다. 헤더를 제거하면서 본문을 통과시키거나, Anthropic 형식 본문을 다른 스키마의 업스트림으로 전달하는 게이트웨이는 하드 `400` 오류를 생성합니다. 두 절반이 함께 없을 때만 기능이 조용히 꺼집니다. 콘텐츠 검사를 위해 요청 본문을 다시 쓰거나 수정하는 게이트웨이는 제거하는 것과 같은 방식으로 쌍을 손상시키므로, 수정하지 않고 검사합니다. 표는 기능이 쌍에서 벗어나는 경우를 기록합니다.

211 

212세분화된 도구 스트리밍은 직접 연결 기본값 중 하나입니다. 요청이 사용자 정의 기본 URL을 통해 라우팅될 때마다 기본적으로 꺼져 있으며, 개발자가 [`CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1`](/docs/ko/env-vars)을 설정할 때 게이트웨이가 이를 수신합니다.210세분화된 도구 스트리밍은 직접 연결 기본값 중 하나입니다. 요청이 사용자 정의 기본 URL을 통해 라우팅될 때마다 기본적으로 꺼져 있으며, 개발자가 [`CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1`](/docs/ko/env-vars)을 설정할 때 게이트웨이가 이를 수신합니다.

213 211 

212### 베타 헤더 및 본문 필드 쌍

213 

214기능을 추가하는 본문 필드는 베타 헤더와 쌍을 이루며, 쌍은 함께 이동합니다. 헤더를 제거하면서 본문을 통과시키거나, Anthropic 형식 본문을 다른 스키마의 업스트림으로 전달하는 게이트웨이는 `400` 오류를 생성합니다. 두 절반이 함께 없을 때는 기능이 조용히 꺼집니다.

215 

216콘텐츠 검사를 위해 요청 본문을 다시 쓰거나 수정하는 게이트웨이는 제거하는 것과 같은 방식으로 쌍을 손상시키므로, 수정하지 않고 검사합니다. 표는 기능이 쌍에서 벗어나는 경우를 기록합니다.

217 

214| 기능 | 헤더 및 본문 쌍 | 손상될 때의 증상 | 해결 방법 |218| 기능 | 헤더 및 본문 쌍 | 손상될 때의 증상 | 해결 방법 |

215| :- | :- | :- | :- |219| :- | :- | :- | :- |

216| [적응형 추론](/docs/ko/model-config#adjust-effort-level) | 베타 헤더 없음. Claude Code는 Claude Opus 4.6, Claude Sonnet 4.6, Claude Haiku 5.5, Claude Fable 5 및 이후 모델에 대해 `thinking: {"type": "adaptive"}`를 전송하고, 게이트웨이 별칭과 같이 인식하지 못하는 모델 이름을 현재 모델로 취급하여 필드를 수신합니다. | 업스트림 모델 빌드가 이를 수락하지 않을 때 `thinking` 필드 또는 `adaptive` 태그의 이름을 지정하는 `400` | 업스트림을 업그레이드합니다. Opus 4.6 및 Sonnet 4.6에서 개발자는 대신 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1`을 설정할 수 있습니다. |220| [적응형 추론](/docs/ko/model-config#adjust-effort-level) | 베타 헤더 없음. Claude Code는 Claude Opus 4.6, Claude Sonnet 4.6, Claude Haiku 5.5, Claude Fable 5 및 이후 모델에 대해 `thinking: {"type": "adaptive"}`를 전송하고, 게이트웨이 별칭과 같이 인식하지 못하는 모델 이름을 현재 모델로 취급하여 필드를 수신합니다. | 업스트림 모델 빌드가 이를 수락하지 않을 때 `thinking` 필드 또는 `adaptive` 태그의 이름을 지정하는 `400` | 업스트림을 업그레이드합니다. Opus 4.6 및 Sonnet 4.6에서 개발자는 대신 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1`을 설정할 수 있습니다. |

217| [컨텍스트 관리](https://platform.claude.com/docs/en/build-with-claude/context-editing) | 컨텍스트 관리 베타 헤더는 `context_management` 본문 필드와 쌍을 이룹니다. | `Extra inputs are not permitted`를 포함한 `400`. 게이트웨이가 Anthropic 형식 요청을 수락하지만 Amazon Bedrock으로 전달할 때 일반적입니다. | 둘 다 전달하거나 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |221| [컨텍스트 관리](https://platform.claude.com/docs/en/build-with-claude/context-editing) | 컨텍스트 관리 베타 헤더는 `context_management` 본문 필드와 쌍을 이룹니다. | `Extra inputs are not permitted`를 포함한 `400`. 게이트웨이가 Anthropic 형식 요청을 수락하지만 Amazon Bedrock으로 전달할 때 일반적입니다. v2.1.304 이상에서는 Claude Code가 [해당 쌍 없이 자체적으로 재시도합니다](#automatic-retry-and-error-forwarding). | 둘 다 전달하거나 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

218| [확장 컨텍스트](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) 및 [인터리브된 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 베타 헤더만, 본문 필드 없음 | 헤더가 제거될 때 조용히 사용 불가능. 업스트림은 기능 요청을 보지 못합니다. | `anthropic-beta`를 그대로 전달합니다. |222| [확장 컨텍스트](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) 및 [인터리브된 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 베타 헤더만, 본문 필드 없음 | 헤더가 제거될 때 조용히 사용 불가능. 업스트림은 기능 요청을 보지 못합니다. | `anthropic-beta`를 그대로 전달합니다. |

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

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

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

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

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

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

223 229 


225 231 

226### 자동 재시도 및 오류 전달232### 자동 재시도 및 오류 전달

227 233 

228업스트림이 거부하는 것에 따라 Claude Code가 수행하는 작업이 달라집니다:234업스트림이 이러한 기능 중 하나를 거부하면, Claude Code는 거부된 부분을 제거하거나 변경하여 요청을 자체적으로 재시도할 수 있습니다:

229 235 

230* 업스트림이 `thinking` 필드, 중간 대화 시스템 메시지, 또는 해당 메시지의 `cache_control` 마커를 거부할 때, Claude Code는 요청을 재시도하고 거부된 기능을 나머지 대화에 대해 비활성화합니다.236* `400`이 `thinking.type` 값 `enabled` 또는 `adaptive`가 지원되지 않는다고 알리면, Claude Code는 다른 유형으로 한 번 재시도하고 `thinking` 필드는 유지합니다. 해당 모델에 대한 이후 요청은 Claude Code가 종료될 때까지 전환된 유형을 유지합니다. v2.1.121 이전에는 Claude Code가 재시도하지 않았으므로 [`thinking.type.enabled is not supported`](/docs/ko/errors#thinking-type-enabled-is-not-supported-for-this-model)가 개발자에게 도달했습니다.

237* 업스트림이 `messages` 내부의 `role: "system"` 항목을 거부하면, Claude Code는 해당 대화 중간 시스템 메시지 없이 한 번 재시도하고 그 텍스트를 대신 사용자 메시지에 담아 전달합니다. 대화의 이후 요청은 개발자가 `/clear`를 실행하거나 대화가 압축될 때까지 그 형태를 유지합니다.

238* 업스트림이 대화 중간 시스템 메시지의 `cache_control` 마커만 거부하면, Claude Code는 시스템 메시지를 유지하고 마커를 옮겨 한 번 재시도합니다. 해당 재시도와 Claude Code가 종료될 때까지의 이후 요청에서 마커는 `messages`에서 시스템 메시지가 아닌 마지막 항목에 붙습니다.

231* 업스트림이 [사고 서명](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)을 거부할 때, 블록이 `bound to a different conversation`이라는 `400`을 포함하여, Claude Code는 요청에서 이전 사고 블록을 제거하고, 재시도하며, 이후의 모든 요청에서 이들을 제외합니다. 새로운 응답은 여전히 사고를 포함합니다.239* 업스트림이 [사고 서명](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)을 거부할 때, 블록이 `bound to a different conversation`이라는 `400`을 포함하여, Claude Code는 요청에서 이전 사고 블록을 제거하고, 재시도하며, 이후의 모든 요청에서 이들을 제외합니다. 새로운 응답은 여전히 사고를 포함합니다.

232* 게이트웨이 또는 그 업스트림이 `tools`의 [어드바이저 도구](/docs/ko/advisor) 항목을 인식되지 않는 도구 유형으로 거부할 때, Claude Code는 해당 항목과 그 `anthropic-beta` 값 없이 요청을 한 번 재시도합니다. 이후 해당 기본 URL에 대한 요청은 Claude Code가 종료될 때까지 어드바이저를 제외하고, `/advisor`는 그 시간 동안 개발자에게 사용 불가능합니다. Claude Code는 `Input tag` 뒤에 도구 유형의 이름을 지정하는 `400` 또는 `422` 응답으로 이 거부를 인식합니다. 예를 들어 `Input tag 'advisor_20260301'`입니다. v2.1.280 이전에는 Claude Code가 이 거부를 재시도하지 않았습니다.240* 게이트웨이 또는 그 업스트림이 `tools`의 [어드바이저 도구](/docs/ko/advisor) 항목을 인식되지 않는 도구 유형으로 거부할 때, Claude Code는 해당 항목과 그 `anthropic-beta` 값 없이 요청을 한 번 재시도합니다. 이후 해당 기본 URL에 대한 요청은 Claude Code가 종료될 때까지 어드바이저를 제외하고, `/advisor`는 그 시간 동안 개발자에게 사용 불가능합니다. Claude Code는 `Input tag` 뒤에 도구 유형의 이름을 지정하는 `400` 또는 `422` 응답으로 이 거부를 인식합니다. 예를 들어 `Input tag 'advisor_20260301'`입니다. v2.1.280 이전에는 Claude Code가 이 거부를 재시도하지 않았습니다.

233* 업스트림이 `output_config.effort`를 거부할 때, Claude Code는 노력 없이 요청을 재시도하고 Claude Code가 종료될 때까지 해당 모델에 대한 이후 요청에서 이를 제외합니다. Claude Code는 메시지가 `Extra inputs are not permitted`와 함께 `output_config.effort`의 이름을 지정하거나, 모델이 노력 매개변수를 지원하지 않는다고 명시하는 `400`으로 이 거부를 인식합니다.241* 업스트림이 `output_config.effort`를 거부할 때, Claude Code는 노력 없이 요청을 재시도하고 Claude Code가 종료될 때까지 해당 모델에 대한 이후 요청에서 이를 제외합니다. Claude Code는 메시지가 `Extra inputs are not permitted`와 함께 `output_config.effort`의 이름을 지정하거나, 모델이 노력 매개변수를 지원하지 않는다고 명시하는 `400`으로 이 거부를 인식합니다.

234* Claude Code는 컨텍스트 관리 또는 도구 스키마 필드 거부를 재시도하지 않으므로, 해당 `400` 오류는 개발자에게 도달합니다.242* 업스트림이 `context_management` 필드 또는 그 `anthropic-beta` 값을 거부하면, 게이트웨이는 이들이 제외된 요청을 한 번 더 받습니다. 이후 요청에서 게이트웨이가 이들을 다시 받고 업스트림이 다시 거부하면, 같은 재시도가 이어집니다. Claude Code는 메시지로 이 거부를 인식합니다. 예를 들어 `context_management: Extra inputs are not permitted`를 포함하는 메시지입니다. v2.1.304 이전에는 Claude Code가 이 거부를 재시도하지 않았습니다.

243* 업스트림이 `strict`와 같이 `defer_loading` 이외의 베타 도구 필드를 거부하면, `400`이 개발자에게 도달합니다. 그 전에 게이트웨이는 [도구 검색 필드 없이](#retry-without-tool-search) 요청을 다시 받을 수 있습니다. 이러한 필드의 전송을 중지하려면 개발자가 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities)을 설정하도록 합니다.

235 244 

236`bound to a different conversation` 거부는 API의 [보존된 사고](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) 확인에서 나오며, `system`, `tools`, 또는 이전 `messages` 콘텐츠가 사고를 생성한 요청과 다를 때 실패합니다. 해당 콘텐츠를 다시 쓰는 게이트웨이는 거부 자체를 야기할 수 있습니다. [라이브러리, 프록시, 및 게이트웨이](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways)는 변경하지 않고 통과시켜야 할 것을 다룹니다.245`bound to a different conversation` 거부는 API의 [보존된 사고](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) 확인에서 나오며, `system`, `tools`, 또는 이전 `messages` 콘텐츠가 사고를 생성한 요청과 다를 때 실패합니다. 해당 콘텐츠를 다시 쓰는 게이트웨이는 거부 자체를 야기할 수 있습니다. [라이브러리, 프록시, 및 게이트웨이](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways)는 변경하지 않고 통과시켜야 할 것을 다룹니다.

237 246 

238재시도 로직은 업스트림의 오류 표현과 일치하므로 오류 응답 본문을 수정하지 않고 전달합니다. 업스트림 오류를 자체 봉투로 래핑하는 게이트웨이는 상태 코드를 유지하더라도 복구 경로를 손상시킵니다. 단, 봉투의 메시지가 안정적인 `capability_rejected:` 토큰을 포함하는 경우는 예외입니다. [Claude 앱 게이트웨이는 클라우드 제공자의 오류 표현을 위해 해당 토큰으로 대체합니다](/docs/ko/claude-apps-gateway-config#upstream-error-messages). 예를 들어 `capability_rejected: prompt_too_long`입니다.247이 재시도 로직의 대부분은 업스트림의 오류 표현과 일치하므로 오류 응답 본문을 수정하지 않고 전달합니다. 업스트림 오류를 자체 봉투로 래핑하는 게이트웨이는 상태 코드를 유지하더라도 복구 경로를 손상시킵니다. 단, 봉투의 메시지가 안정적인 `capability_rejected:` 토큰을 포함하는 경우는 예외입니다. [Claude 앱 게이트웨이는 클라우드 제공자의 오류 표현을 위해 해당 토큰으로 대체합니다](/docs/ko/claude-apps-gateway-config#upstream-error-messages). 예를 들어 `capability_rejected: prompt_too_long`입니다.

248 

249#### 도구 검색 없이 재시도

250 

251v2.1.305 이상에서는 [`defer_loading` 필드와 `tool_reference` 블록](/docs/ko/mcp#tool-search-through-a-gateway)을 포함한 요청이 Claude Code가 원인을 인식하지 못하는 `400` 또는 `422` 이후에 이들 없이 다시 도착할 수 있습니다. 재시도가 성공하면 이후 요청에서도 이들이 생략됩니다.

252 

253게이트웨이를 변경하지 않아도 개발자의 요청은 계속 작동하며, MCP 도구는 미리 로드됩니다. Claude Code는 나중에 도구 검색을 다시 시도하므로, 게이트웨이는 또 다른 거부된 요청과 그 재시도를 받을 수 있습니다. 모든 요청에서 이 필드를 제외하려면 개발자가 `ENABLE_TOOL_SEARCH=false`를 설정하도록 합니다. 도구 검색 자체를 위해서는 Claude Code는 게이트웨이가 `defer_loading` 필드와 `tool_reference` 블록을 해당 `anthropic-beta` 값과 함께 전달할 것으로 기대합니다.

239 254 

240### 사전 릴리스 기능 비활성화255### 사전 릴리스 기능 비활성화

241 256 


250이 변수가 모든 `anthropic-beta` 값을 제거하는 것은 아닙니다. 그대로 유지되는 항목은 다음과 같습니다:265이 변수가 모든 `anthropic-beta` 값을 제거하는 것은 아닙니다. 그대로 유지되는 항목은 다음과 같습니다:

251 266 

252* 클라우드 제공자도 수락하는 확장 컨텍스트, 인터리브된 사고, 및 노력에 대한 `anthropic-beta` 값267* 클라우드 제공자도 수락하는 확장 컨텍스트, 인터리브된 사고, 및 노력에 대한 `anthropic-beta` 값

253* `output_config.effort` 필드. 이를 거부하는 업스트림은 [자동 재시도 및 오류 전달](#automatic-retry-and-error-forwarding)에서 다룹니다.268* 최상위 `output_config.effort` 필드. 이를 거부하는 업스트림은 [자동 재시도 및 오류 전달](#automatic-retry-and-error-forwarding)에서 다룹니다.

254* 베타 헤더가 없는 적응형 추론 `thinking` 필드269* 베타 헤더가 없는 적응형 추론 `thinking` 필드

270* [대화 중간 시스템 메시지](#feature-pass-through)를 전달하는 `role: "system"` 항목

255* 구독 인증이 요구하는 OAuth `anthropic-beta` 값271* 구독 인증이 요구하는 OAuth `anthropic-beta` 값

256* 개발자가 [`ANTHROPIC_BETAS`](/docs/ko/env-vars) 또는 [`CLAUDE_CODE_EXTRA_BODY`](/docs/ko/env-vars)를 통해 직접 추가하는 헤더 값 및 본문 필드272* 개발자가 [`ANTHROPIC_BETAS`](/docs/ko/env-vars) 또는 [`CLAUDE_CODE_EXTRA_BODY`](/docs/ko/env-vars)를 통해 직접 추가하는 헤더 값 및 본문 필드

257 273 

Details

86 * **전체 VM 샌드박스에서**: Claude Desktop 관리 구성이 [`requireCoworkFullVmSandbox`](https://claude.com/docs/third-party/claude-desktop/configuration#requirecoworkfullvmsandbox)를 설정할 때, Claude Code는 디바이스의 MDM 정책과 관리되는 설정 파일이 없는 가상 머신 내에서 실행됩니다.86 * **전체 VM 샌드박스에서**: Claude Desktop 관리 구성이 [`requireCoworkFullVmSandbox`](https://claude.com/docs/third-party/claude-desktop/configuration#requirecoworkfullvmsandbox)를 설정할 때, Claude Code는 디바이스의 MDM 정책과 관리되는 설정 파일이 없는 가상 머신 내에서 실행됩니다.

87 * **원격 Cowork 세션**: 이들은 Anthropic 관리 VM에서 실행되며, Claude Code는 읽을 디바이스 정책이 없습니다.87 * **원격 Cowork 세션**: 이들은 Anthropic 관리 VM에서 실행되며, Claude Code는 읽을 디바이스 정책이 없습니다.

88 88 

89 세션이 실행되는 위치와 관계없이, claude.ai는 누군가 claude.ai에서 git 저장소의 마켓플레이스를 추가하거나 Cowork 탭의 **사용자 정의**에서 추가할 때 관리 콘솔의 [`strictKnownMarketplaces`](/docs/ko/settings-reference#strictknownmarketplaces) 및 [`blockedMarketplaces`](/docs/ko/settings-reference#blockedmarketplaces) 목록을 직접 적용합니다. [제한 사항이 작동하는 방식](/docs/ko/plugins/org#restrict-what-users-can-install)에서 해당 확인을 설명합니다. [표면 범위](/docs/ko/model-config#surface-coverage) 표는 Cowork를 다른 표면과 비교합니다.89 세션이 실행되는 위치와 관계없이, claude.ai는 누군가 claude.ai에서 git 저장소의 마켓플레이스를 추가하거나 Cowork의 **사용자 정의**에서 추가할 때 관리 콘솔의 [`strictKnownMarketplaces`](/docs/ko/settings-reference#strictknownmarketplaces) 및 [`blockedMarketplaces`](/docs/ko/settings-reference#blockedmarketplaces) 목록을 직접 적용합니다. [제한 사항이 작동하는 방식](/docs/ko/plugins/org#restrict-what-users-can-install)에서 해당 확인을 설명합니다. [사용 환경 범위](/docs/ko/model-config#surface-coverage) 표는 Cowork를 다른 사용 환경과 비교합니다.

90* **실행 중인 세션**: 대부분의 변경 사항은 [전달 메커니즘 표](#choose-a-delivery-mechanism)의 일정에 따라 재시작 없이 실행 중인 세션에 도달합니다.90* **실행 중인 세션**: 대부분의 변경 사항은 [전달 메커니즘 표](#choose-a-delivery-mechanism)의 일정에 따라 재시작 없이 실행 중인 세션에 도달합니다.

91 * [`forceRemoteSettingsRefresh`](/docs/ko/settings-reference#forceremotesettingsrefresh), [`requiredMinimumVersion`](/docs/ko/settings-reference#requiredminimumversion), 및 [일부 사용자 편집 가능 키](/docs/ko/settings#when-edits-take-effect)의 변경 사항은 다음 세션 시작 시 적용됩니다.91 * [`forceRemoteSettingsRefresh`](/docs/ko/settings-reference#forceremotesettingsrefresh), [`requiredMinimumVersion`](/docs/ko/settings-reference#requiredminimumversion), 및 [일부 사용자 편집 가능 키](/docs/ko/settings#when-edits-take-effect)의 변경 사항은 다음 세션 시작 시 적용됩니다.

92 * 새로운 또는 변경된 [`policyHelper`](/docs/ko/settings-reference#policyhelper) 항목은 다음 시작 시 적용됩니다. 서버 관리 설정이 해당 시작 시 도우미를 숨기면, 도우미는 가져오기가 해당 설정이 제거되었음을 보고하는 즉시 실행됩니다.92 * 새로운 또는 변경된 [`policyHelper`](/docs/ko/settings-reference#policyhelper) 항목은 다음 시작 시 적용됩니다. 서버 관리 설정이 해당 시작 시 도우미를 숨기면, 도우미는 가져오기가 해당 설정이 제거되었음을 보고하는 즉시 실행됩니다.

mcp.md +75 −51

Details

302요청이 백그라운드에서 아직 연결 중인 서버의 도구가 필요한 경우 Claude는 해당 서버가 연결될 때까지 기다립니다. 대기 방식은 구성에 따라 다릅니다:302요청이 백그라운드에서 아직 연결 중인 서버의 도구가 필요한 경우 Claude는 해당 서버가 연결될 때까지 기다립니다. 대기 방식은 구성에 따라 다릅니다:

303 303 

304* **[도구 검색](#scale-with-mcp-tool-search) 포함 (기본값)**: 대기는 `ToolSearch` 호출 내에서 발생합니다.304* **[도구 검색](#scale-with-mcp-tool-search) 포함 (기본값)**: 대기는 `ToolSearch` 호출 내에서 발생합니다.

305* **도구 검색 없음**: Claude는 대신 `WaitForMcpServers` 도구를 사용합니다. 도구 검색이 없는 구성에는 사용자 정의 `ANTHROPIC_BASE_URL`, `ENABLE_TOOL_SEARCH=false` 및 Google Cloud의 Agent Platform에서 Claude Opus 4.5, Claude Sonnet 4.5, Claude Haiku 4.5보다 이전 모델이 포함됩니다.305* **도구 검색 없음**: Claude는 대신 `WaitForMcpServers` 도구를 사용합니다. 도구 검색이 없는 구성에는 `ENABLE_TOOL_SEARCH=false` 및 Google Cloud의 Agent Platform에서 Claude Opus 4.5, Claude Sonnet 4.5, Claude Haiku 4.5보다 이전 모델이 포함됩니다. `ANTHROPIC_BASE_URL` 게이트웨이의 경우 [LLM 게이트웨이를 통한 도구 검색](#tool-search-through-a-gateway)을 참조하세요.

306* **Microsoft Foundry [Azure에서 호스팅되는 배포](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude Code는 배포의 서버 측 거부를 API를 통해서만 발견하므로 Claude는 `WaitForMcpServers`가 아닌 도구 검색 경로에서 시작합니다. Claude Code가 해당 배포를 [사전 로드](#scale-with-mcp-tool-search)로 전환한 후에는 연결을 완료한 서버의 도구가 Claude의 다음 요청에서 사용 가능해집니다.306* **Microsoft Foundry [Azure에서 호스팅되는 배포](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude Code는 배포의 서버 측 거부를 API를 통해서만 발견하므로 Claude는 `WaitForMcpServers`가 아닌 도구 검색 경로에서 시작합니다. Claude Code가 해당 배포를 [사전 로드](#scale-with-mcp-tool-search)로 전환한 후에는 연결을 완료한 서버의 도구가 Claude의 다음 요청에서 사용 가능해집니다.

307 307 

308도구 검색이 활성화되면 Claude가 작업 중일 때 서버가 연결을 완료하면 Claude Code는 같은 턴의 다음 요청에서 서버의 도구 이름을 Claude에 나열합니다. 그러면 Claude는 사용자의 다음 메시지를 기다리지 않고 해당 도구를 검색하고 호출할 수 있습니다.308도구 검색이 활성화되면 Claude가 작업 중일 때 서버가 연결을 완료하면 Claude Code는 같은 턴의 다음 요청에서 서버의 도구 이름을 Claude에 나열합니다. 그러면 Claude는 사용자의 다음 메시지를 기다리지 않고 해당 도구를 검색하고 호출할 수 있습니다.


509 509 

510플러그인 서버는 플러그인에서 온 것을 나타내는 표시기와 함께 `/mcp`에 나타납니다.510플러그인 서버는 플러그인에서 온 것을 나타내는 표시기와 함께 `/mcp`에 나타납니다.

511 511 

512플러그인의 stdio 서버의 경우, `claude mcp get`은 `Command: stdio`, 빈 `Args:` 줄, 그리고 각 환경 변수를 `NAME=[REDACTED]`로 인쇄합니다. 값은 자격 증명을 전달할 수 있기 때문에 숨겨집니다.512`claude mcp get`은 플러그인의 stdio 또는 WebSocket 서버에 구성된 값을 숨깁니다. 이 값에는 자격 증명이 포함될 수 있기 때문입니다:

513 

514* **stdio 서버**: `Command: stdio`, 빈 `Args:` 줄, 그리고 각 환경 변수를 `NAME=[REDACTED]`로 인쇄합니다

515* **WebSocket 서버**: `URL: ws`와 각 헤더를 `<name>: [REDACTED]`로 인쇄하며, `claude mcp list`는 URL 대신 `ws`를 표시합니다

516 

517플러그인이 구성한 내용을 확인하려면 [디스크에서 플러그인을 찾아](/docs/ko/plugins/loading#find-plugins-on-disk) 해당 `.mcp.json` 또는 `plugin.json`을 읽으세요.

513 518 

514**플러그인 MCP 도구 이름**:519**플러그인 MCP 도구 이름**:

515 520 


527 532 

528## MCP 설치 범위533## MCP 설치 범위

529 534 

530MCP 서버는 세 가지 범위에서 구성할 수 있습니다. 선택한 범위는 서버가 로드되는 프로젝트와 구성이 팀과 공유되는지 여부를 제어합니다. 관리자는 [관리형 구성](#managed-mcp-configuration)을 통해 모든 사용자를 위해 서버를 배포하거나 제공할 수도 있습니다.535MCP 서버는 세 가지 범위에서 구성할 수 있습니다. 선택한 범위에 따라 서버가 로드되는 프로젝트와 구성을 팀과 공유할지 여부가 결정됩니다. 관리자는 [관리형 구성](#managed-mcp-configuration)을 통해 모든 사용자에게 서버를 배포하거나 제공할 수도 있습니다.

531 536 

532| 범위 | 로드 위치 | 팀과 공유 | 저장 위치 |537| 범위 | 로드 위치 | 팀과 공유 | 저장 위치 |

533| - | - | - | - |538| - | - | - | - |

534| [로컬](#local-scope) | 현재 프로젝트만 | 아니오 | `~/.claude.json` |539| [로컬](#local-scope) | 현재 프로젝트만 | 아니요 | `~/.claude.json` |

535| [프로젝트](#project-scope) | 현재 프로젝트만 | 예, 버전 제어를 통해 | 프로젝트 루트의 `.mcp.json` |540| [프로젝트](#project-scope) | 현재 프로젝트만 | 예, 버전 관리를 통해 | 프로젝트 루트의 `.mcp.json` |

536| [사용자](#user-scope) | 모든 프로젝트 | 아니오 | `~/.claude.json` |541| [사용자](#user-scope) | 모든 프로젝트 | 아니요 | `~/.claude.json` |

537 542 

538### 로컬 범위543### 로컬 범위

539 544 

540로컬 범위는 기본값입니다. 로컬 범위 서버는 추가한 프로젝트에서만 로드되며 사용자에게만 비공개입니다. Claude Code는 해당 프로젝트의 경로 아래 `~/.claude.json`에 저장하므로 다른 프로젝트에는 동일한 서버가 나타나지 않습니다. 개인 개발 서버, 실험적 구성 또는 버전 제어에 포함하고 싶지 않은 자격 증명이 있는 서버에 로컬 범위를 사용하세요.545로컬 범위가 기본값입니다. 로컬 범위 서버는 해당 서버를 추가한 프로젝트에서만 로드되며 사용자 본인만 사용할 수 있습니다. Claude Code는 이 서버를 `~/.claude.json`의 해당 프로젝트 경로 아래에 저장하므로, 동일한 서버가 다른 프로젝트에는 나타나지 않습니다. 개인 개발 서버, 실험적 구성 또는 버전 관리에 포함하고 싶지 않은 자격 증명이 있는 서버에는 로컬 범위를 사용합니다.

541 546 

542> [!NOTE]547> [!NOTE]

543>548>

544> MCP 서버의 "로컬 범위"라는 용어는 일반 로컬 설정과 다릅니다. MCP 로컬 범위 서버는 `~/.claude.json` (홈 디렉토리)에 저장되고, 일반 로컬 설정은 `.claude/settings.local.json` (프로젝트 디렉토리)을 사용합니다. 설정 파일 위치에 대한 자세한 내용은 [설정](/docs/ko/settings#where-settings-live)을 참조하세요.549> MCP 서버의 "로컬 범위"라는 용어는 일반적인 로컬 설정과 다릅니다. MCP 로컬 범위 서버는 `~/.claude.json`(홈 디렉터리)에 저장되는 반면, 일반 로컬 설정은 `.claude/settings.local.json`(프로젝트 디렉터리)을 사용합니다. 설정 파일 위치에 대한 자세한 내용은 [설정](/docs/ko/settings#where-settings-live)을 참조하세요.

545 550 

546```bash theme={null}551```bash theme={null}

547# 로컬 범위 서버 추가 (기본값)552# Add a local-scoped server (default)

548claude mcp add --transport http stripe https://mcp.stripe.com553claude mcp add --transport http stripe https://mcp.stripe.com

549 554 

550# 명시적으로 로컬 범위 지정555# Explicitly specify local scope

551claude mcp add --transport http stripe --scope local https://mcp.stripe.com556claude mcp add --transport http stripe --scope local https://mcp.stripe.com

552```557```

553 558 

554명령은 `~/.claude.json` 내의 현재 프로젝트 항목에 서버를 작성합니다. 아래 예는 `/path/to/your/project`에서 실행할 때의 결과를 보여줍니다:559이 명령은 `~/.claude.json` 안의 현재 프로젝트 항목에 서버를 기록합니다. 아래 예시는 `/path/to/your/project`에서 명령을 실행했을 때의 결과를 보여 줍니다.

555 560 

556```json theme={null}561```json theme={null}

557{562{


570 575 

571### 프로젝트 범위576### 프로젝트 범위

572 577 

573프로젝트 범위 서버는 프로젝트 루트 디렉토리의 `.mcp.json` 파일에 구성을 저장하여 팀 협업을 가능하게 합니다. 프로젝트 범위 서버를 추가하면 Claude Code는 자동으로 이 파일을 생성하거나 적절한 구성 구조로 업데이트합니다. `.mcp.json`을 버전 제어에 체크인하여 팀의 모든 사람이 동일한 MCP 도구 및 서비스를 사용할 수 있도록 하세요.578프로젝트 범위 서버는 프로젝트 루트 디렉터리의 `.mcp.json` 파일에 구성을 저장하여 팀 협업을 가능하게 합니다. 프로젝트 범위 서버를 추가하면 Claude Code가 적절한 구성 구조로 이 파일을 자동으로 생성하거나 업데이트합니다. 팀의 모든 구성원이 동일한 MCP 도구와 서비스를 사용할 수 있도록 `.mcp.json`을 버전 관리에 체크인합니다.

574 579 

575```bash theme={null}580```bash theme={null}

576# 프로젝트 범위 서버 추가581# Add a project-scoped server

577claude mcp add --transport http shared-server --scope project https://example.com/mcp582claude mcp add --transport http shared-server --scope project https://example.com/mcp

578```583```

579 584 

580결과 `.mcp.json` 파일은 표준화된 형식을 따릅니다:585생성되는 `.mcp.json` 파일은 표준화된 형식을 따릅니다.

581 586 

582```json theme={null}587```json theme={null}

583{588{


590}595}

591```596```

592 597 

593보안상의 이유로 Claude Code는 대화형 세션에서 `.mcp.json` 파일의 프로젝트 범위 서버를 사용하기 전에 승인을 요청합니다. 이러한 승인 선택을 재설정하려면 `claude mcp reset-project-choices`를 실행하세요.598보안상의 이유로 Claude Code는 대화형 세션에서 `.mcp.json` 파일의 프로젝트 범위 서버를 사용하기 전에 승인을 요청합니다. 이러한 승인 선택을 초기화하려면 `claude mcp reset-project-choices`를 실행합니다.

594 599 

595`claude -p` 실행, [Agent SDK](/docs/ko/headless) 세션 및 [클라우드 세션](/docs/ko/claude-code-on-the-web)에서 Claude Code는 해당 프롬프트를 표시할 수 없습니다. 프로젝트 범위 서버를 묻지 않고 로드합니다. Claude Code는 또한 [`skipDangerousModePermissionPrompt`](/docs/ko/settings-reference#skipdangerousmodepermissionprompt)가 사용자 설정 또는 관리형 설정에 설정된 `bypassPermissions` 모드에서 시작한 세션에서 프롬프트를 건너뜁니다. 어쨌든 서버를 제외하려면:600`claude -p` 실행, [Agent SDK](/docs/ko/headless) 세션, [프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories) 외부의 [클라우드 세션](/docs/ko/claude-code-on-the-web)에서는 Claude Code가 해당 프롬프트를 표시할 수 없으므로 묻지 않고 프로젝트 범위 서버를 로드합니다. 또한 사용자 설정이나 관리형 설정에 [`skipDangerousModePermissionPrompt`](/docs/ko/settings-reference#skipdangerousmodepermissionprompt)가 설정된 상태에서 `bypassPermissions` 모드로 시작한 세션에서도 Claude Code는 프롬프트를 건너뜁니다. 그래도 서버를 제외하려면 다음을 수행합니다.

596 601 

597* [`disabledMcpjsonServers`](/docs/ko/settings-reference#disabledmcpjsonservers)에 추가하면 모든 권한 모드에서 차단됩니다.602* 서버를 [`disabledMcpjsonServers`](/docs/ko/settings-reference#disabledmcpjsonservers)에 추가합니다. 이렇게 하면 모든 권한 모드에서 해당 서버가 차단됩니다.

598* [`--setting-sources`](/docs/ko/cli-reference#cli-flags)를 사용하거나 SDK의 `settingSources` 옵션으로 프로젝트 설정을 완전히 제외합니다.603* [`--setting-sources`](/docs/ko/cli-reference#cli-flags) 또는 SDK의 `settingSources` 옵션으로 프로젝트 설정을 완전히 제외합니다.

599* [`--strict-mcp-config`](/docs/ko/cli-reference#cli-flags)로 세션을 시작합니다. Claude Code는 `--mcp-config`로 전달한 MCP 서버만 사용합니다. Claude Code가 로드하지 않는 프로젝트 범위 서버에 대한 승인 프롬프트를 건너뛰려면 Claude Code v2.1.246 이상이 필요합니다. v2.1.246 이전에는 엄격한 세션도 승인을 기다렸으므로 백그라운드 세션이 시작 시 대기했습니다. 관리형 MCP 파일에서 플래그가 수행하는 작업에 대해서는 [관리형-mcp.json을 사용한 독점 제어](/docs/ko/managed-mcp#exclusive-control-with-managed-mcp-json)를 참조하세요.604* [`--strict-mcp-config`](/docs/ko/cli-reference#cli-flags)로 세션을 시작합니다. 그러면 Claude Code는 `--mcp-config`로 전달한 MCP 서버만 사용합니다. Claude Code가 로드하지 않는 프로젝트 범위 서버에 대해 승인 프롬프트를 건너뛰려면 Claude Code v2.1.246 이상이 필요합니다. v2.1.246 이전에는 strict 세션에서도 해당 서버에 대한 승인을 기다렸기 때문에 백그라운드 세션이 시작 시 대기 상태로 남았습니다. 관리형 MCP 파일이 있을 때 이 플래그가 어떻게 동작하는지는 [managed-mcp.json을 통한 독점 제어](/docs/ko/managed-mcp#exclusive-control-with-managed-mcp-json)를 참조하세요.

600 605 

601[프로젝트 서버 승인 및 워크스페이스 신뢰](#project-server-approvals-and-workspace-trust)는 저장소에 커밋된 승인이 워크스페이스 신뢰와 상호 작용하는 방식을 다룹니다.606저장소에 커밋된 승인이 워크스페이스 신뢰와 어떻게 상호 작용하는지는 [프로젝트 서버 승인과 워크스페이스 신뢰](#project-server-approvals-and-workspace-trust)에서 다룹니다.

602 607 

603### 사용자 범위608### 사용자 범위

604 609 

605사용자 범위 서버는 `~/.claude.json`에 저장되며 교차 프로젝트 접근성을 제공하므로 컴퓨터의 모든 프로젝트에서 사용할 수 있으면서 사용자 계정에만 비공개입니다. 이 범위는 개인 유틸리티 서버, 개발 도구 또는 다양한 프로젝트에서 자주 사용하는 서비스에 적합합니다.610사용자 범위 서버는 `~/.claude.json`에 저장되며 프로젝트 간 접근성을 제공하므로, 사용자 계정에만 비공개로 유지되면서도 머신의 모든 프로젝트에서 사용할 수 있습니다. 이 범위는 개인 유틸리티 서버, 개발 도구 또는 여러 프로젝트에서 자주 사용하는 서비스에 적합합니다.

606 611 

607```bash theme={null}612```bash theme={null}

608# 사용자 서버 추가613# Add a user server

609claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic614claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic

610```615```

611 616 

612### 범위 계층 및 우선순위617### 범위 계층 구조와 우선순위

613 618 

614동일한 서버가 둘 이상의 위치에 정의되면 Claude Code는 가장 높은 우선순위 소스의 정의를 사용하여 한 번 연결합니다. 해당 소스의 전체 서버 항목이 사용되며, 필드는 범위 간에 병합되지 않습니다.619동일한 서버가 여러 곳에 정의되어 있으면 Claude Code는 우선순위가 가장 높은 소스의 정의를 사용하여 해당 서버에 한 번만 연결합니다. 해당 소스의 서버 항목 전체가 사용되며, 필드는 범위 간에 병합되지 않습니다.

615 620 

6161. 로컬 범위6211. 로컬 범위

6172. 프로젝트 범위6222. 프로젝트 범위


6194. [플러그인 제공 서버](/docs/ko/plugins/components#mcp-servers)6244. [플러그인 제공 서버](/docs/ko/plugins/components#mcp-servers)

6205. [claude.ai 커넥터](#use-mcp-servers-from-claude-ai)6255. [claude.ai 커넥터](#use-mcp-servers-from-claude-ai)

621 626 

622세 범위는 이름으로 중복을 일치시킵니다. 플러그인과 커넥터는 엔드포인트로 일치하므로 위의 서버와 동일한 URL 또는 명령을 가리키는 것은 중복으로 처리됩니다.627Claude Code는 세 가지 범위 간의 중복을 이름으로 판별합니다. 플러그인과 커넥터는 엔드포인트로 판별하므로, 위의 활성화된 서버와 동일한 URL 또는 명령을 가리키는 항목은 중복으로 간주됩니다.

623 628 

624두 URL 표기법은 스킴 또는 호스트의 문자 대소문자, 스킴의 기본 포트(예: `https`의 `:443`) 또는 후행 슬래시에서만 다를 때 동일한 엔드포인트로 간주됩니다. 다른 경로, 쿼리 문자열, userinfo 또는 기본이 아닌 포트는 두 서버를 구분합니다.629두 URL 표기가 스킴 또는 호스트의 대소문자, `https`의 `:443`과 같은 스킴의 기본 포트, 또는 후행 슬래시만 다른 경우 동일한 엔드포인트로 간주됩니다. 경로, 쿼리 문자열, userinfo 또는 기본값이 아닌 포트가 다르면 별개의 서버가 됩니다.

625 630 

626조직이 [`managedMcpServers`](/docs/ko/managed-mcp#provide-servers-through-managed-settings) 관리형 설정을 통해 제공하는 서버는 이 모든 것 위에 순위가 매겨지므로 이 중 하나가 중복되면 Claude Code는 조직의 정의를 연결합니다. Claude Code v2.1.259 이상이 필요합니다.631조직이 [`managedMcpServers`](/docs/ko/managed-mcp#provide-servers-through-managed-settings) 관리형 설정을 통해 제공하는 서버는 이들 모두보다 우선순위가 높으므로, 이 중 하나가 해당 서버와 중복되면 Claude Code는 조직의 정의로 연결합니다. Claude Code v2.1.259 이상이 필요합니다.

627 632 

628[Desktop 앱의 Code 탭](/docs/ko/desktop#mcp-servers-from-the-claude-desktop-chat-app)에서 로컬 세션을 열 때 `~/.claude.json` (사용자 범위)의 최상위 수준과 `.mcp.json`에 동일한 stdio 서버 이름이 있으면 Code 탭은 `~/.claude.json` 정의를 사용합니다.633`~/.claude.json`의 최상위(사용자 범위)와 `.mcp.json`에 동일한 이름의 stdio 서버가 있는 상태에서 [Desktop 앱의 Code 탭](/docs/ko/desktop#mcp-servers-from-the-claude-desktop-chat-app)으로 로컬 세션을 열면, Code 탭은 `~/.claude.json`의 정의를 사용합니다.

629 634 

630### `.mcp.json`의 환경 변수 확장635### `.mcp.json`의 환경 변수 확장

631 636 

632Claude Code는 `.mcp.json` 파일의 환경 변수 확장을 지원하므로 팀이 구성을 공유하면서 머신 특정 경로 및 API 키와 같은 민감한 값에 대한 유연성을 유지할 수 있습니다.637Claude Code는 `.mcp.json` 파일에서 환경 변수 확장을 지원하므로, 팀은 구성을 공유하면서도 머신별 경로와 API 키 같은 민감한 값에 대해 유연성을 유지할 수 있습니다.

633 638 

634#### 지원되는 구문639#### 지원되는 구문

635 640 

636* `${VAR}`: 환경 변수 `VAR`의 값으로 확장641* `${VAR}`: 환경 변수 `VAR`의 값으로 확장됩니다

637* `${VAR:-default}`: `VAR`이 설정되면 확장, 그렇지 않으면 `default` 사용642* `${VAR:-default}`: `VAR`이 설정되어 있으면 그 값으로 확장되고, 그렇지 않으면 `default`를 사용합니다

638 643 

639#### 확장 위치644#### 확장 위치

640 645 

641환경 변수는 다음에서 확장할 수 있습니다:646환경 변수는 다음 위치에서 확장할 수 있습니다.

642 647 

643* `command`: 서버 실행 파일 경로648* `command`: 서버 실행 파일 경로

644* `args`: 명령줄 인수649* `args`: 명령줄 인수


646* `url`: HTTP 서버 유형의 경우651* `url`: HTTP 서버 유형의 경우

647* `headers`: HTTP 서버 인증의 경우652* `headers`: HTTP 서버 인증의 경우

648 653 

649#### 변수 확장을 사용한 예654#### 변수 확장 예시

650 655 

651```json theme={null}656```json theme={null}

652{657{


664 669 

665#### 기본값이 없는 설정되지 않은 변수670#### 기본값이 없는 설정되지 않은 변수

666 671 

667참조된 환경 변수가 설정되지 않았고 기본값이 없으면 구성은 여전히 로드됩니다. Claude Code는 `claude mcp list` 출력에서 해당 서버에 대한 누락된 변수 경고를 보고하고 확장되지 않은 `${VAR}` 텍스트를 그대로 사용합니다. 변수를 설정하거나 `:-default` 폴백을 추가하여 서버가 의도한 값으로 시작하도록 하세요. 원격 서버의 `url` 및 `headers`에서 일부 자격 증명 변수는 [경고 없이 빈 값으로 읽힙니다](#credential-variables-that-read-as-empty).672참조된 환경 변수가 설정되어 있지 않고 기본값도 없는 경우에도 구성은 로드됩니다. Claude Code는 `claude mcp list` 출력에서 해당 서버에 대한 변수 누락 경고를 보고하고, 확장되지 않은 `${VAR}` 텍스트를 그대로 사용합니다. 서버가 의도한 값으로 시작되도록 변수를 설정하거나 `:-default` 폴백을 추가합니다. 원격 서버의 `url`과 `headers`에서는 일부 자격 증명 변수가 경고 없이 [빈 값으로 읽힙니다](#credential-variables-that-read-as-empty).

668 673 

669#### 빈 값으로 읽히는 자격 증명 변수674#### 빈 값으로 읽히는 자격 증명 변수

670 675 

671원격 서버의 `url` 및 `headers`에서 Claude Code는 환경의 자격 증명 변수를 확장하지 않고 빈 값으로 읽습니다. 이는 프로젝트의 `.mcp.json` 또는 플러그인이 Claude Code 또는 클라우드 공급자 자격 증명을 이름이 지정된 서버로 보내는 것을 방지합니다. `Bearer ${ANTHROPIC_AUTH_TOKEN}`을 작성하면 서버는 자격 증명 없이 `Bearer `를 수신하고 일반적으로 `401`로 요청을 거부합니다. Claude Code는 이를 실패한 연결로 보고합니다.676원격 서버의 `url`과 `headers`에서 Claude Code는 환경의 자격 증명 변수를 확장하지 않고 빈 값으로 읽습니다. 이렇게 하면 프로젝트의 `.mcp.json`이나 플러그인이 사용자의 Claude Code 또는 클라우드 제공업체 자격 증명을 그 안에 명시된 서버로 보내는 것을 방지할 수 있습니다. `Bearer ${ANTHROPIC_AUTH_TOKEN}`이라고 작성하면 서버는 자격 증명 없이 `Bearer `만 받게 되어 요청을 거부하며, 일반적으로 `401`을 반환합니다. Claude Code는 이를 연결 실패로 보고합니다.

672 677 

673포함된 이름은 다음과 같습니다:678해당되는 이름은 다음과 같습니다.

674 679 

675* Claude Code의 자체 자격 증명(예: `ANTHROPIC_API_KEY` 및 `ANTHROPIC_AUTH_TOKEN`)680* `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 등 Claude Code 자체의 자격 증명

676* 클라우드 공급자의 자격 증명(예: `AWS_BEARER_TOKEN_BEDROCK`)681* `AWS_BEARER_TOKEN_BEDROCK` 등 클라우드 제공업체의 자격 증명

677* 환경이 전달하는 기타 자격 증명(예: `HTTPS_PROXY` 및 `NPM_TOKEN`)682* `HTTPS_PROXY`, `NPM_TOKEN` 등 환경에 포함된 기타 자격 증명

678 683 

679포함된 이름은 변수를 설정했는지 여부와 관계없이 빈 값으로 읽히며, 이에 대한 `:-default` 폴백은 무시됩니다. `ANTHROPIC_BASE_URL`과 같은 공급자 기본 URL은 여전히 확장되므로 `"url": "${ANTHROPIC_BASE_URL}/mcp"`는 작동합니다. 단, URL의 값 자체에 사용자 이름 및 암호와 같은 자격 증명이 포함되지 않는 한입니다.684해당되는 이름은 변수 설정 여부와 관계없이 빈 값으로 읽히며, 여기에 지정한 `:-default` 폴백은 무시됩니다. `ANTHROPIC_BASE_URL`과 같은 제공업체 기본 URL은 계속 확장되므로 `"url": "${ANTHROPIC_BASE_URL}/mcp"`는 작동합니다. 단, URL 값 자체에 사용자 이름과 비밀번호 같은 자격 증명이 포함되어 있는 경우는 예외입니다.

680 685 

681`API_KEY`와 같이 이 집합 외부의 이름은 작성된 대로 확장됩니다. 서버에 포함된 자격 증명 중 하나를 제공하려면 이를 자신의 이름을 가진 변수에 복사하고 대신 해당 이름을 참조하세요.686`API_KEY`와 같이 이 집합에 속하지 않는 이름은 작성한 대로 확장됩니다. 해당되는 자격 증명 중 하나를 서버에 제공하려면 직접 정한 이름의 변수에 복사한 다음 그 이름을 참조합니다.

682 687 

683원격 서버의 `url` 또는 `headers`가 설정한 포함된 변수를 참조할 때 Claude Code는 디버그 로그 줄에 이름을 지정합니다. 줄을 읽으려면 `claude --debug-file /tmp/claude-debug.log`를 실행하고 해당 파일에서 `never expanded toward a remote server`를 검색하세요.688원격 서버의 `url` 또는 `headers`가 사용자가 설정한 해당 변수를 참조하면, Claude Code는 디버그 로그 줄에 그 이름을 기록합니다. 해당 줄을 확인하려면 `claude --debug-file /tmp/claude-debug.log`를 실행하고 해당 파일에서 `never expanded toward a remote server`를 검색합니다.

684 689 

685#### `/mcp` 및 CLI 출력에서 참조가 표시되는 방식690#### `/mcp` 및 CLI 출력에서 참조가 표시되는 방식

686 691 

687로컬, 프로젝트 또는 사용자 [범위](#mcp-installation-scopes)의 서버의 경우 다음 표면은 `${VAR}` 참조를 해결된 값이 아닌 이름으로 표시합니다:692로컬, 프로젝트 또는 사용자 [범위](#mcp-installation-scopes)의 서버에 대해 다음 사용 환경에서는 `${VAR}` 참조가 확인된 값이 아니라 이름으로 표시됩니다.

688 693 

689* 서버의 `/mcp` 상세 보기의 URL 또는 명령줄694* 서버의 `/mcp` 세부 정보 보기에 있는 URL 또는 명령줄

690* `claude mcp list` 및 `claude mcp get` 출력695* `claude mcp list` 및 `claude mcp get` 출력

691 696 

692`/mcp` 상세 보기는 Claude Code v2.1.268 이상에서 이러한 방식으로 참조를 표시합니다.697`/mcp` 세부 정보 보기는 Claude Code v2.1.268 이상에서 참조를 이 방식으로 표시합니다.

693 698 

694조직이 `managedMcpServers` 설정을 통해 제공하는 서버의 경우 이러한 표면은 [URL의 호스트만](/docs/ko/managed-mcp#what-users-can-see-and-change) 표시합니다.699조직이 `managedMcpServers` 설정을 통해 제공하는 서버의 경우, 이러한 사용 환경에는 [URL의 호스트만](/docs/ko/managed-mcp#what-users-can-see-and-change) 표시됩니다.

695 700 

696연결이 실패할 때 `claude mcp list`, `claude mcp get` 및 `/mcp`가 표시하는 내용을 확인하려면 [서버 상태 상세](#server-status-detail)를 참조하세요.701연결이 실패할 때 `claude mcp list`, `claude mcp get`, `/mcp`에 표시되는 내용을 확인하려면 [서버 상태 세부 정보](#server-status-detail)를 참조하세요.

697 702 

698## 실제 예703## 실제 예

699 704 


1483 1488 

1484### 도구 검색 구성1489### 도구 검색 구성

1485 1490 

1486도구 검색은 기본적으로 활성화됩니다. MCP 도구는 연기되고 필요에 따라 발견됩니다. Claude Code는 `ANTHROPIC_BASE_URL`이 비자사 호스트를 가리킬 때 이를 비활성화합니다. 대부분의 프록시가 `tool_reference` 블록을 전달하지 않기 때문입니다. 해당 폴백을 재정의하려면 `ENABLE_TOOL_SEARCH`를 명시적으로 설정하세요.1491도구 검색은 기본적으로 활성화됩니다. MCP 도구는 연기되고 필요에 따라 발견됩니다.

1487 1492 

1488[`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/ko/env-vars)를 설정하면 도구 검색이 꺼집니다. `ENABLE_TOOL_SEARCH`를 직접 설정하여 재정의할 수 없습니다. 조직은 Claude Code v2.1.227 이상에서 [관리형 설정](/docs/ko/managed-settings)을 통해 도구 검색을 계속 활성화할 수 있습니다. [HIPAA 구성을 받는](/docs/ko/hipaa-setup#check-how-developers-sign-in-and-connect) 세션에서는 도구 검색이 꺼지며, `ENABLE_TOOL_SEARCH`나 관리형 설정으로도 다시 켤 수 없습니다. [사전 릴리스 기능 비활성화](/docs/ko/llm-gateway-protocol#disable-pre-release-capabilities)는 재정의가 적용되는 위치와 변수가 제거하는 항목을 다룹니다.1493[`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/ko/env-vars)를 설정하면 도구 검색이 꺼집니다. `ENABLE_TOOL_SEARCH`를 직접 설정하여 재정의할 수 없습니다. 조직은 Claude Code v2.1.227 이상에서 [관리형 설정](/docs/ko/managed-settings)을 통해 도구 검색을 계속 활성화할 수 있습니다. [HIPAA 구성을 받는](/docs/ko/hipaa-setup#check-how-developers-sign-in-and-connect) 세션에서는 도구 검색이 꺼지며, `ENABLE_TOOL_SEARCH`나 관리형 설정으로도 다시 켤 수 없습니다. [사전 릴리스 기능 비활성화](/docs/ko/llm-gateway-protocol#disable-pre-release-capabilities)는 재정의가 적용되는 위치와 변수가 제거하는 항목을 다룹니다.

1489 1494 


1500 1505 

1501| 값 | 동작 |1506| 값 | 동작 |

1502| :- | :- |1507| :- | :- |

1503| (설정 안 함) | 모든 MCP 도구가 연기되고 필요에 따라 로드됩니다. Opus 4 및 Sonnet 4보다 이전 모델, Opus 4.5, Sonnet 4.5, Haiku 4.5보다 이전의 Google Cloud Agent Platform 모델, `ANTHROPIC_BASE_URL`이 비자사 호스트일 때, 또는 Azure에서 호스팅되는 Microsoft Foundry 배포에서는 미리 로드로 폴백됩니다 |1508| (설정 안 함) | 모든 MCP 도구가 연기되고 필요에 따라 로드됩니다. Opus 4 및 Sonnet 4보다 이전 모델, [이전 Agent Platform 모델](#configure-tool-search), Azure에서 호스팅되는 Microsoft Foundry 배포에서는 미리 로드됩니다 |

1504| `true` | `ANTHROPIC_BASE_URL`이 비자사 호스트일 때도 MCP 도구가 연기된 상태로 유지됩니다. 그 밖의 (설정 안 함) 폴백은 여전히 적용됩니다. Claude Code는 프록시를 통해 베타 헤더를 전송하며, `tool_reference` 블록을 지원하지 않는 프록시에서는 요청이 실패합니다 |1509| `true` | MCP 도구가 연기되며, (설정 안 함)과 동일한 폴백이 적용됩니다 |

1505| `auto` | 임계값 모드: Claude Code는 정의가 컨텍스트 윈도우의 10% 미만일 때 연기할 도구를 미리 로드하고, 정의가 10%에 도달하면 모두 연기합니다 |1510| `auto` | 임계값 모드. 원래 연기되었을 도구는 정의의 합계가 컨텍스트 윈도우의 10% 미만인 동안 미리 로드됩니다. 10% 이상이 되면 도구 검색이 켜지며, 이후 합계가 10% 미만으로 떨어지더라도 해당 도구는 [연기된 상태로 유지](#tools-that-stay-deferred-below-the-threshold)될 수 있습니다 |

1506| `auto:N` | 사용자 정의 백분율이 있는 임계값 모드. `N`은 0-100입니다. 예를 들어 5%의 경우 `auto:5` |1511| `auto:N` | 사용자 정의 백분율이 있는 임계값 모드. `N`은 0-100입니다. 예를 들어 5%의 경우 `auto:5` |

1507| `false` | 모든 MCP 도구가 미리 로드되고, 연기 없음 |1512| `false` | 모든 MCP 도구가 미리 로드되고, 연기 없음 |

1508 1513 


1526}1531}

1527```1532```

1528 1533 

1534`ToolSearch`를 거부하거나 [`--tools`](/docs/ko/cli-reference#cli-flags)에서 제외하면 MCP 도구가 대신 미리 로드되지만, 요청에는 여전히 자리 표시자 `defer_loading` 항목이 포함될 수 있습니다. 게이트웨이가 해당 항목을 거부하는 경우 [LLM 게이트웨이를 통한 도구 검색](#tool-search-through-a-gateway)을 참조하세요.

1535 

1536#### LLM 게이트웨이를 통한 도구 검색

1537 

1538> [!NOTE]

1539>

1540> 다음 경우는 다른 곳에서 다룹니다:

1541>

1542> * **`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`를 설정한 경우**: [도구 검색에 미치는 영향](#configure-tool-search)을 참조하세요

1543> * **`defer_loading` 또는 `tool_reference`가 언급된 오류로 요청이 실패한 경우**: [Extra inputs are not permitted](/docs/ko/errors#extra-inputs-are-not-permitted)를 참조하세요

1544 

1545`ANTHROPIC_BASE_URL`이 게이트웨이를 가리키는 경우에도 도구 검색은 기본적으로 켜져 있으므로, 요청에는 게이트웨이가 전달해야 할 `defer_loading` 도구 필드와 `tool_reference` 블록이 포함됩니다. 도구 검색이 켜져 있는 동안 MCP 도구는 [연기](#scale-with-mcp-tool-search)됩니다. 대신 모든 도구를 미리 로드하려면 셸 또는 [설정 `env`](/docs/ko/settings-reference#env)에서 `ENABLE_TOOL_SEARCH=false`를 설정하세요. v2.1.304 이전에는 `ENABLE_TOOL_SEARCH`가 `true`, `auto` 또는 `auto:N`이 아닌 한 게이트웨이 뒤에서 도구 검색이 꺼져 있었습니다.

1546 

1547v2.1.305 이상에서는 Claude Code가 원인을 인식하지 못하는 `400` 또는 `422` 이후에 [도구 검색 없이 요청을 재시도](/docs/ko/llm-gateway-protocol#retry-without-tool-search)할 수 있습니다. 재시도가 성공하면 화면에 아무것도 표시되지 않으며 별도로 조치할 필요가 없습니다. MCP 도구가 대신 미리 로드됩니다. Claude Code는 나중에 도구 검색을 다시 시도하며, 이때 거부되는 요청이 한 번 더 발생합니다. 이러한 요청을 건너뛰려면 `ENABLE_TOOL_SEARCH=false`를 설정하세요.

1548 

1549#### `ENABLE_TOOL_SEARCH=auto` 임계값 미만에서도 연기된 상태로 유지되는 도구

1550 

1551도구 정의의 합계가 `auto` 임계값 미만인데도 [`/context`](/docs/ko/commands#all-commands)가 도구를 `(deferred)` 또는 `(loaded on-demand)`로 표시한다면, 이 대화에서 도구 검색이 이미 켜졌고 켜진 상태로 유지된 것입니다. 합계는 나중에 줄어들 수 있으며, 예를 들어 세션을 재개한 후 MCP 서버가 다시 연결되는 동안 줄어들 수 있습니다. 별도로 조치할 필요는 없습니다. Claude는 작업에 필요할 때 해당 도구를 각각 로드합니다.

1552 

1529### 서버를 연기에서 제외1553### 서버를 연기에서 제외

1530 1554 

1531서버의 도구가 항상 검색 단계 없이 Claude에게 표시되어야 하는 경우, 해당 서버의 구성에서 `alwaysLoad`를 `true`로 설정하세요. 그러면 해당 서버의 도구가 `ENABLE_TOOL_SEARCH` 설정과 관계없이 컨텍스트에 로드됩니다. 각 미리 로드된 도구가 대화에 사용할 수 있는 컨텍스트를 소비하므로, Claude가 모든 턴에서 필요한 적은 수의 도구에 이를 사용하세요.1555서버의 도구가 항상 검색 단계 없이 Claude에게 표시되어야 하는 경우, 해당 서버의 구성에서 `alwaysLoad`를 `true`로 설정하세요. 그러면 해당 서버의 도구가 `ENABLE_TOOL_SEARCH` 설정과 관계없이 컨텍스트에 로드됩니다. 각 미리 로드된 도구가 대화에 사용할 수 있는 컨텍스트를 소비하므로, Claude가 모든 턴에서 필요한 적은 수의 도구에 이를 사용하세요.

Details

278* **Claude Code 데스크톱 앱**: [Connectors UI](/docs/ko/desktop#connect-external-tools)를 통해 서버를 추가합니다.278* **Claude Code 데스크톱 앱**: [Connectors UI](/docs/ko/desktop#connect-external-tools)를 통해 서버를 추가합니다.

279* **Claude Desktop 채팅 앱**: Claude Code와 별개의 앱입니다. `claude_desktop_config.json`에서 CLI로 서버를 복사하려면 macOS 또는 WSL에서 `claude mcp add-from-claude-desktop`을 실행합니다.279* **Claude Desktop 채팅 앱**: Claude Code와 별개의 앱입니다. `claude_desktop_config.json`에서 CLI로 서버를 복사하려면 macOS 또는 WSL에서 `claude mcp add-from-claude-desktop`을 실행합니다.

280* **VS Code**: [MCP를 사용하여 외부 도구에 연결하기](/docs/ko/vs-code#connect-to-external-tools-with-mcp)를 참조하세요.280* **VS Code**: [MCP를 사용하여 외부 도구에 연결하기](/docs/ko/vs-code#connect-to-external-tools-with-mcp)를 참조하세요.

281* **클라우드 세션**: 저장소에 `.mcp.json`을 커밋합니다. [.mcp.json 직접 편집하기](#edit-mcp-json-directly) 및 [설정에서 이월되는 항목](/docs/ko/cloud-environments#what-carries-over-from-your-setup)을 참조하세요.281* **클라우드 세션**: [프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories) 외부에서는 저장소에 `.mcp.json`을 커밋합니다. 저장소가 하나인 세션은 이 파일을 로드합니다. 프로젝트 내의 클라우드 스레드는 대신 claude.ai 커넥터를 사용합니다. [.mcp.json 직접 편집하기](#edit-mcp-json-directly) 및 [설정에서 이월되는 항목](/docs/ko/cloud-environments#what-carries-over-from-your-setup)을 참조하세요.

282* **Claude.ai**: [claude.ai/customize/connectors](https://claude.ai/customize/connectors)에서 추가한 커넥터는 해당 계정으로 로그인할 때 CLI에 자동으로 로드됩니다. [Claude.ai에서 MCP 서버 사용하기](/docs/ko/mcp#use-mcp-servers-from-claude-ai)를 참조하세요.282* **Claude.ai**: [claude.ai/customize/connectors](https://claude.ai/customize/connectors)에서 추가한 커넥터는 해당 계정으로 로그인할 때 CLI에 자동으로 로드됩니다. [Claude.ai에서 MCP 서버 사용하기](/docs/ko/mcp#use-mcp-servers-from-claude-ai)를 참조하세요.

283 283 

284## 문제 해결284## 문제 해결

memory.md +10 −5

Details

208 208 

209`paths` 필드가 없는 규칙은 무조건 로드되고 모든 파일에 적용됩니다. 경로 범위 규칙은 Claude가 일치하는 파일에 Read, Write 또는 Edit 도구를 사용할 때 로드됩니다. 또한 Claude가 단일 파일에 대한 `cat` 또는 `head`처럼 [읽기로 간주되는](/docs/ko/tools-reference#edit-tool-behavior) Bash 명령으로 일치하는 파일을 볼 때도 로드됩니다. 일치는 Claude가 프로젝트 디렉터리의 심볼릭 링크된 경로를 통해 파일에 도달할 때도 작동합니다(예: 심볼릭 링크된 체크아웃).209`paths` 필드가 없는 규칙은 무조건 로드되고 모든 파일에 적용됩니다. 경로 범위 규칙은 Claude가 일치하는 파일에 Read, Write 또는 Edit 도구를 사용할 때 로드됩니다. 또한 Claude가 단일 파일에 대한 `cat` 또는 `head`처럼 [읽기로 간주되는](/docs/ko/tools-reference#edit-tool-behavior) Bash 명령으로 일치하는 파일을 볼 때도 로드됩니다. 일치는 Claude가 프로젝트 디렉터리의 심볼릭 링크된 경로를 통해 파일에 도달할 때도 작동합니다(예: 심볼릭 링크된 체크아웃).

210 210 

211각 패턴은 규칙의 기준 디렉터리를 기준으로 합니다:

212 

213* **프로젝트 규칙**: 규칙의 `.claude` 폴더를 포함하는 디렉터리

214* **[사용자 수준 규칙](#user-level-rules)**: 세션의 [주 작업 디렉터리](/docs/ko/permissions#working-directories)

215 

216형제 git worktree의 파일에 대해 경로 범위 규칙이 로드되도록 하려면 해당 worktree에서 Claude Code를 시작하거나 [`/cd`로 세션을 그곳으로 이동](/docs/ko/permissions#move-the-session-to-another-directory)하십시오.

217 

211`paths` 필드에서 glob 패턴을 사용하여 확장자, 디렉터리 또는 조합으로 파일을 일치시키십시오:218`paths` 필드에서 glob 패턴을 사용하여 확장자, 디렉터리 또는 조합으로 파일을 일치시키십시오:

212 219 

213| 패턴 | 일치 |220| 패턴 | 일치 |


279 286 

280#### 조직 전체 CLAUDE.md 배포하기287#### 조직 전체 CLAUDE.md 배포하기

281 288 

282조직은 머신의 모든 사용자에게 적용되는 중앙 관리 CLAUDE.md를 배포할 수 있습니다. 이 파일은 개별 설정으로 제외될 수 없습니다.289조직은 머신의 모든 사용자에게 적용되는 중앙 관리 CLAUDE.md를 배포할 수 있습니다. 개발자는 `claudeMdExcludes` 설정으로 [다른 CLAUDE.md 파일을 제외](#exclude-specific-claude-md-files)할 수 있지만 이 파일은 제외할 수 없습니다. 개발자가 CLAUDE.md 로드를 완전히 끈 상태로 세션을 시작하면 해당 세션은 관리형 콘텐츠도 로드하지 않습니다. 이 파일은 지침용으로 사용하고, 규칙은 `permissions.deny`와 같은 [관리형 설정](/docs/ko/managed-settings)으로 강제하십시오.

283 290 

284**1. 관리형 정책 위치에 파일 만들기**291**1. 관리형 정책 위치에 파일 만들기**

285 292 


293 300 

294`claudeMd` 키를 사용하면 별도 파일을 배포하는 대신 관리형 CLAUDE.md 콘텐츠를 `managed-settings.json`에 직접 배치할 수 있습니다.301`claudeMd` 키를 사용하면 별도 파일을 배포하는 대신 관리형 CLAUDE.md 콘텐츠를 `managed-settings.json`에 직접 배치할 수 있습니다.

295 302 

296**범위**: 머신의 모든 Claude Code 세션, 모든 저장소에서. 저장소별 지침의 경우 프로젝트 CLAUDE.md를 대신 커밋하십시오.303**범위**: 머신의 모든 사용자, 모든 저장소에서. 저장소별 지침의 경우 프로젝트 CLAUDE.md를 대신 커밋하십시오.

297 304 

298**우선순위**: 관리형 CLAUDE.md 파일과 동일합니다. 사용자 및 프로젝트 CLAUDE.md 이전에 로드됩니다.305**우선순위**: 관리형 CLAUDE.md 파일과 동일합니다. 사용자 및 프로젝트 CLAUDE.md 이전에 로드됩니다.

299 306 


323 330 

324#### 특정 CLAUDE.md 파일 제외하기331#### 특정 CLAUDE.md 파일 제외하기

325 332 

326대규모 모노레포에서 상위 CLAUDE.md 파일에는 작업과 관련이 없는 지침이 포함될 수 있습니다. `claudeMdExcludes` 설정을 사용하면 경로 또는 glob 패턴으로 특정 파일을 건너뛸 수 있습니다.333대규모 모노레포에서 상위 CLAUDE.md 파일에는 작업과 관련이 없는 지침이 포함될 수 있습니다. `claudeMdExcludes` 설정을 사용하면 경로 또는 glob 패턴으로 특정 파일을 건너뛸 수 있습니다. [관리형 CLAUDE.md 파일](#deploy-organization-wide-claude-md)은 `claudeMdExcludes`로 제외할 수 없습니다.

327 334 

328이 예시는 상위 폴더의 최상위 CLAUDE.md 및 규칙 디렉터리를 제외합니다. `.claude/settings.local.json`에 추가하여 제외가 머신에 로컬로 유지되도록 하십시오:335이 예시는 상위 폴더의 최상위 CLAUDE.md 및 규칙 디렉터리를 제외합니다. `.claude/settings.local.json`에 추가하여 제외가 머신에 로컬로 유지되도록 하십시오:

329 336 


340 347 

341[심볼릭 링크](#share-rules-across-projects-with-symlinks)를 통해 도달하는 규칙 파일을 제외하려면, 파일 또는 해당 디렉터리가 링크인지 여부에 관계없이 두 경로 중 하나에 대해 패턴을 작성하십시오: `.claude/rules/` 아래의 파일 경로 또는 링크 대상. 두 경로 중 하나와 일치하는 패턴은 파일을 제외합니다. v2.1.239 이전에는 링크 대상과 일치하는 패턴만 파일을 제외했습니다.348[심볼릭 링크](#share-rules-across-projects-with-symlinks)를 통해 도달하는 규칙 파일을 제외하려면, 파일 또는 해당 디렉터리가 링크인지 여부에 관계없이 두 경로 중 하나에 대해 패턴을 작성하십시오: `.claude/rules/` 아래의 파일 경로 또는 링크 대상. 두 경로 중 하나와 일치하는 패턴은 파일을 제외합니다. v2.1.239 이전에는 링크 대상과 일치하는 패턴만 파일을 제외했습니다.

342 349 

343관리형 정책 CLAUDE.md 파일은 제외될 수 없습니다. 이는 개별 설정에 관계없이 조직 전체 지침이 항상 적용되도록 보장합니다.

344 

345## AGENTS.md350## AGENTS.md

346 351 

347Claude Code는 [`AGENTS.md`](/docs/ko/glossary#agents-md)를 프로젝트 지침으로 읽을 수 있으므로, 다른 코딩 에이전트를 위해 이미 설정된 저장소는 `CLAUDE.md`, 가져오기 또는 설정을 추가할 필요 없이 작동합니다. 이 표는 저장소의 지침 파일 조합에 따라 Claude가 기본적으로 읽는 내용을 보여줍니다:352Claude Code는 [`AGENTS.md`](/docs/ko/glossary#agents-md)를 프로젝트 지침으로 읽을 수 있으므로, 다른 코딩 에이전트를 위해 이미 설정된 저장소는 `CLAUDE.md`, 가져오기 또는 설정을 추가할 필요 없이 작동합니다. 이 표는 저장소의 지침 파일 조합에 따라 Claude가 기본적으로 읽는 내용을 보여줍니다:

model-config.md +6 −2

Details

441 441 

442조직은 두 가지 방법으로 [노력 수준](#adjust-effort-level)을 제한할 수 있습니다. Claude Enterprise 플랜에서는 조직 관리자가 역할별 노력 제한을 설정하며, 이는 아래에 설명되어 있습니다. 모든 플랜 및 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry를 포함한 모든 제공자에서 [`maxEffortLevel`](/docs/ko/settings-reference#maxeffortlevel) 관리 설정은 클라이언트에서 노력을 제한합니다. 모델에 둘 다 적용되는 경우 더 낮은 상한선이 적용됩니다.442조직은 두 가지 방법으로 [노력 수준](#adjust-effort-level)을 제한할 수 있습니다. Claude Enterprise 플랜에서는 조직 관리자가 역할별 노력 제한을 설정하며, 이는 아래에 설명되어 있습니다. 모든 플랜 및 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry를 포함한 모든 제공자에서 [`maxEffortLevel`](/docs/ko/settings-reference#maxeffortlevel) 관리 설정은 클라이언트에서 노력을 제한합니다. 모델에 둘 다 적용되는 경우 더 낮은 상한선이 적용됩니다.

443 443 

444Claude Enterprise 플랜의 조직 관리자는 각 사용자 정의 역할에 대해 모델별 최대 [노력 수준](#adjust-effort-level)을 설정할 수 있으며, 역할 수준의 [조직 모델 제한](#organization-model-restrictions)과 함께 설정할 수 있습니다. 상한선을 초과하는 수준은 `/effort` 선택기에서 제공되지 않으며, `--effort` 또는 `/effort`로 더 높은 수준을 지정하면 상한선에서 실행됩니다. 대화형 세션 및 일반 텍스트 `--print` 실행에서는 요청된 수준과 적용된 수준을 명시하는 경고가 표시되며, `json` 또는 `stream-json` 출력이거나 백그라운드 에이전트에서는 제한이 자동으로 적용됩니다. 상한선은 모델별이므로 모델을 전환하면 사용 가능한 수준이 변경될 수 있습니다. 여러 역할이 동일한 모델을 부여하는 경우 가장 제한이 적은 상한선이 적용됩니다. Claude Code v2.1.195 이상이 필요합니다.444Claude Enterprise 플랜의 조직 관리자는 역할 수준의 [조직 모델 제한](#organization-model-restrictions)과 함께 각 사용자 정의 역할에 대해 모델별 최대 [effort 수준](#adjust-effort-level)을 설정할 수 있습니다. Claude Code v2.1.195 이상이 필요합니다.

445 

446* 상한선을 초과하는 수준은 `/effort` 선택기에서 제공되지 않으며, `--effort` 또는 `/effort`로 더 높은 수준을 지정하면 대신 상한선에서 실행됩니다. 상한선보다 높은 `--effort`로 일반 텍스트 `--print` 실행을 시작하면 stderr에 요청된 수준과 적용된 수준을 명시하는 경고가 표시됩니다. 대화형 세션, `json` 또는 `stream-json` 출력, 백그라운드 에이전트에서는 해당 경고가 대신 [디버그 로그](/docs/ko/errors#configuration-warnings)에 기록됩니다.

447* 상한선은 모델별이므로 모델을 전환하면 사용 가능한 수준이 변경될 수 있습니다.

448* 여러 역할이 동일한 모델을 부여하는 경우 가장 제한이 적은 상한선이 적용됩니다.

445 449 

446노력 제한은 [조직 모델 제한](#organization-model-restrictions)과 함께 전달되며 동일한 세션에 도달합니다.450노력 제한은 [조직 모델 제한](#organization-model-restrictions)과 함께 전달되며 동일한 세션에 도달합니다.

447 451 


843* Claude Code가 공급자 또는 사용자 정의 철자를 인식하는 모델로 확인할 수 없고 ID에 `[1m]`이 포함되지 않으면 변수가 직접 적용되고 선제적 압축은 선언된 윈도우에서 계속됩니다.847* Claude Code가 공급자 또는 사용자 정의 철자를 인식하는 모델로 확인할 수 없고 ID에 `[1m]`이 포함되지 않으면 변수가 직접 적용되고 선제적 압축은 선언된 윈도우에서 계속됩니다.

844* Claude Code가 공급자 또는 사용자 정의 철자를 인식하는 모델로 확인할 수 없고 ID에 `[1m]`이 포함되면(대소문자 관계없이) Claude Code는 이에 대해 1M 윈도우를 가정하고 변수는 자체적으로 적용되지 않습니다. 선제적 압축을 유지하면서 윈도우를 수정하려면 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/ko/env-vars)도 설정합니다. 해당 변수가 설정되면 Claude Code는 ID를 `[1m]` 없는 동일한 철자처럼 크기를 조정하므로 `CLAUDE_CODE_MAX_CONTEXT_TOKENS`는 해당 태그 없는 철자에 적용될 때 적용됩니다.848* Claude Code가 공급자 또는 사용자 정의 철자를 인식하는 모델로 확인할 수 없고 ID에 `[1m]`이 포함되면(대소문자 관계없이) Claude Code는 이에 대해 1M 윈도우를 가정하고 변수는 자체적으로 적용되지 않습니다. 선제적 압축을 유지하면서 윈도우를 수정하려면 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/ko/env-vars)도 설정합니다. 해당 변수가 설정되면 Claude Code는 ID를 `[1m]` 없는 동일한 철자처럼 크기를 조정하므로 `CLAUDE_CODE_MAX_CONTEXT_TOKENS`는 해당 태그 없는 철자에 적용될 때 적용됩니다.

845 849 

846 선언된 윈도우가 200K 이상이면 Claude Code는 200K 제한이 적용되지 않음을 나타내는 [시작 경고](/docs/ko/errors#the-200k-limit-isnt-enforced)를 표시합니다. 경고는 이 구성에서 예상됩니다.850 선언된 윈도우가 200K를 초과하면 이 구성에서는 [200K 제한이 적용되지 않는다](/docs/ko/errors#the-200k-limit-isnt-enforced)는 경고가 표시되는 것이 정상입니다.

847* ID가 Claude Code가 인식하는 모델로 확인되거나 ID가 Claude Code가 제거할 접미사가 없는 베어 `claude-` 이름인 경우(대소문자 관계없이) 변수는 [`DISABLE_COMPACT`](/docs/ko/env-vars)도 설정할 때만 적용되며, 이는 모든 압축을 비활성화합니다.851* ID가 Claude Code가 인식하는 모델로 확인되거나 ID가 Claude Code가 제거할 접미사가 없는 베어 `claude-` 이름인 경우(대소문자 관계없이) 변수는 [`DISABLE_COMPACT`](/docs/ko/env-vars)도 설정할 때만 적용되며, 이는 모든 압축을 비활성화합니다.

848 852 

849 예를 들어 `anthropic/claude-opus-4-8`, `us.anthropic.claude-…-v1:0` 또는 날짜가 지정된 `claude-sonnet-4-5@20250929`와 같이 Claude Code가 알고 있는 Claude 모델 이름을 포함하는 ID는 해당 모델로 확인됩니다. 여기에는 `[1m]`도 포함하는 ID가 포함됩니다. Claude Code는 `CLAUDE_CODE_DISABLE_1M_CONTEXT`가 설정되어 있어도 `claude-opus-4-8[1m]`을 Opus 4.8로 확인합니다.853 예를 들어 `anthropic/claude-opus-4-8`, `us.anthropic.claude-…-v1:0` 또는 날짜가 지정된 `claude-sonnet-4-5@20250929`와 같이 Claude Code가 알고 있는 Claude 모델 이름을 포함하는 ID는 해당 모델로 확인됩니다. 여기에는 `[1m]`도 포함하는 ID가 포함됩니다. Claude Code는 `CLAUDE_CODE_DISABLE_1M_CONTEXT`가 설정되어 있어도 `claude-opus-4-8[1m]`을 Opus 4.8로 확인합니다.

Details

220| `claude.ai` | claude.ai 계정 인증 |220| `claude.ai` | claude.ai 계정 인증 |

221| `claude.com` | claude.ai 계정 로그인이 브라우저에서 `claude.com` 페이지를 열고, 이는 `claude.ai`로 리디렉션됩니다. 사전 승인된 WebFetch 문서 조회도 CLI에서 이 호스트에 도달합니다 |221| `claude.com` | claude.ai 계정 로그인이 브라우저에서 `claude.com` 페이지를 열고, 이는 `claude.ai`로 리디렉션됩니다. 사전 승인된 WebFetch 문서 조회도 CLI에서 이 호스트에 도달합니다 |

222| `platform.claude.com` | Anthropic Console 계정 인증. OAuth 토큰 교환, 새로 고침 및 취소도 claude.ai 계정의 경우 이 호스트로 이동하므로 Console 및 claude.ai 로그인 모두 필요합니다 |222| `platform.claude.com` | Anthropic Console 계정 인증. OAuth 토큰 교환, 새로 고침 및 취소도 claude.ai 계정의 경우 이 호스트로 이동하므로 Console 및 claude.ai 로그인 모두 필요합니다 |

223| `sso.claude.com` | SSO(Single Sign-On)를 사용하는 조직의 브라우저 로그인 흐름의 일부. 프록시가 이 호스트를 차단하면 해당 로그인이 실패할 수 있습니다 |

223| `mcp-proxy.anthropic.com` | [claude.ai의 MCP 커넥터](/docs/ko/mcp#use-mcp-servers-from-claude-ai), 조직 관리자가 구성하는 커넥터 포함. 커넥터 트래픽은 이 프록시를 통해 라우팅되며, claude.ai 인증 사용자의 경우 기본적으로 활성화됩니다. Claude Code가 커넥터를 가져오지 않도록 하려면 [`ENABLE_CLAUDEAI_MCP_SERVERS=false`](/docs/ko/env-vars)를 설정하거나 [`disableClaudeAiConnectors`](/docs/ko/settings-reference#disableclaudeaiconnectors) 설정을 사용하십시오 |224| `mcp-proxy.anthropic.com` | [claude.ai의 MCP 커넥터](/docs/ko/mcp#use-mcp-servers-from-claude-ai), 조직 관리자가 구성하는 커넥터 포함. 커넥터 트래픽은 이 프록시를 통해 라우팅되며, claude.ai 인증 사용자의 경우 기본적으로 활성화됩니다. Claude Code가 커넥터를 가져오지 않도록 하려면 [`ENABLE_CLAUDEAI_MCP_SERVERS=false`](/docs/ko/env-vars)를 설정하거나 [`disableClaudeAiConnectors`](/docs/ko/settings-reference#disableclaudeaiconnectors) 설정을 사용하십시오 |

224| `downloads.claude.ai` | 플러그인 실행 파일 다운로드, 네이티브 설치 프로그램, 네이티브 자동 업데이터 및 업데이트 버전 확인 |225| `downloads.claude.ai` | 플러그인 실행 파일 다운로드, 네이티브 설치 프로그램, 네이티브 자동 업데이터 및 업데이트 버전 확인 |

225| `storage.googleapis.com` | `/plugin`에 표시되는 플러그인 설치 횟수 및 메타데이터 |226| `storage.googleapis.com` | `/plugin`에 표시되는 플러그인 설치 횟수 및 메타데이터 |

overview.md +5 −5

Details

22 22 

23**macOS, Linux, WSL:**23**macOS, Linux, WSL:**

24 24 

25```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}25```bash theme={null}

26curl -fsSL https://claude.ai/install.sh | bash26curl -fsSL https://claude.ai/install.sh | bash

27```27```

28 28 


30 30 

31**Windows PowerShell:**31**Windows PowerShell:**

32 32 

33```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}33```powershell theme={null}

34irm https://claude.ai/install.ps1 | iex34irm https://claude.ai/install.ps1 | iex

35```35```

36 36 

37**Windows CMD:**37**Windows CMD:**

38 38 

39```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}39```batch theme={null}

40curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd40curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

41```41```

42 42 


54 54 

55**Homebrew**55**Homebrew**

56 56 

57```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}57```bash theme={null}

58brew install --cask claude-code58brew install --cask claude-code

59```59```

60 60 


66 66 

67**WinGet**67**WinGet**

68 68 

69```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}69```powershell theme={null}

70winget install Anthropic.ClaudeCode70winget install Anthropic.ClaudeCode

71```71```

72 72 

Details

172 172 

173자동 모드에서 시작한 세션을 담은 이 클립에서 상태 표시줄을 확인하세요. `Shift+Tab`을 누를 때마다 상태 표시줄이 `auto mode on`에서 `manual mode on`, `accept edits on`, `plan mode on`으로 바뀌었다가 다시 `auto mode on`으로 돌아옵니다.173자동 모드에서 시작한 세션을 담은 이 클립에서 상태 표시줄을 확인하세요. `Shift+Tab`을 누를 때마다 상태 표시줄이 `auto mode on`에서 `manual mode on`, `accept edits on`, `plan mode on`으로 바뀌었다가 다시 `auto mode on`으로 돌아옵니다.

174 174 

175<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/oa7CKjMeIChox26S/images/permission-modes-cycle-light.mp4?fit=max&auto=format&n=oa7CKjMeIChox26S&q=85&s=198ca90aeb2e3675b3d01b7d686aab0b" aria-label="Claude Code 프롬프트 아래의 상태 표시줄이 Shift+Tab을 누를 때마다 auto mode on, manual mode on, accept edits on, plan mode on으로 바뀐 다음 다시 auto mode on으로 돌아옵니다." />175<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/tA-x-5L2YsYSVdee/images/permission-modes-cycle-light.mp4?fit=max&auto=format&n=tA-x-5L2YsYSVdee&q=85&s=3927dd62d59b01efd81b3578f2a6f971" aria-label="Claude Code 프롬프트 아래의 상태 표시줄이 Shift+Tab을 누를 때마다 auto mode on, manual mode on, accept edits on, plan mode on으로 바뀐 다음 다시 auto mode on으로 돌아옵니다." />

176 176 

177모든 모드가 기본 순환에 포함되는 것은 아닙니다:177모든 모드가 기본 순환에 포함되는 것은 아닙니다:

178 178 


236* **Auto**: [auto mode를 사용할 수 있을 때](#eliminate-prompts-with-auto-mode) 나타납니다.236* **Auto**: [auto mode를 사용할 수 있을 때](#eliminate-prompts-with-auto-mode) 나타납니다.

237* **Bypass permissions**: Pro 및 Max 플랜에서 Desktop 설정의 **Allow bypass permissions mode** 토글이 필요합니다. Team 및 Enterprise 플랜에서는 조직 정책이 대신 제어합니다.237* **Bypass permissions**: Pro 및 Max 플랜에서 Desktop 설정의 **Allow bypass permissions mode** 토글이 필요합니다. Team 및 Enterprise 플랜에서는 조직 정책이 대신 제어합니다.

238 238 

239Cowork 탭은 이러한 모드를 사용하지 않습니다. Cowork는 자체 권한 모드를 가지며 별도로 활성화되고, Cowork 탭은 계정에 대해 기본값을 초과하는 모드가 활성화될 때까지 모드 선택기를 표시하지 않습니다. [Cowork 문서](https://claude.com/docs/cowork/overview)를 참조하세요.239Cowork는 이러한 모드를 사용하지 않습니다. Cowork는 별도로 활성화되는 자체 권한 모드를 가지며, 계정에 대해 기본값 이외의 모드가 활성화될 때까지 모드 선택기를 전혀 표시하지 않습니다. [Cowork 문서](https://claude.com/docs/cowork/overview)를 참조하세요.

240 240 

241데스크톱 관련 세부사항은 Desktop 가이드의 [권한 모드 선택](/docs/ko/desktop#choose-a-permission-mode)을 참조하세요.241데스크톱 관련 세부사항은 Desktop 가이드의 [권한 모드 선택](/docs/ko/desktop#choose-a-permission-mode)을 참조하세요.

242 242 


579>579>

580> `tool.check`를 처리하는 설치된 [mod](/docs/ko/plugins/mods/overview)도 작업을 승인할 수 있습니다. mod의 승인이 규칙과 훅을 통과하지 못하는 경우는 [훅으로 권한 확장](/docs/ko/permissions#precedence-among-rules-hooks-and-mods)을 참조하세요.580> `tool.check`를 처리하는 설치된 [mod](/docs/ko/plugins/mods/overview)도 작업을 승인할 수 있습니다. mod의 승인이 규칙과 훅을 통과하지 못하는 경우는 [훅으로 권한 확장](/docs/ko/permissions#precedence-among-rules-hooks-and-mods)을 참조하세요.

581>581>

582> VS Code 확장에서 [Chrome의 Claude](/docs/ko/chrome) 브라우저 작업이 승인되는 방식은 세션이 브라우저에 연결된 방식에 따라 다릅니다: [VS Code 세션의 권한 프롬프트](/docs/ko/chrome#permission-prompts-in-vs-code-sessions)를 참조하세요.582> VS Code 확장에서 [Chrome의 Claude](/docs/ko/chrome) 브라우저 작업이 승인되는 방식은 [VS Code 세션의 권한 프롬프트](/docs/ko/chrome#permission-prompts-in-vs-code-sessions)를 참조하세요.

583>583>

584> 자동 모드에 들어가면 임의의 코드 실행을 부여하는 광범위한 허용 규칙이 삭제됩니다:584> 자동 모드에 들어가면 임의의 코드 실행을 부여하는 광범위한 허용 규칙이 삭제됩니다:

585>585>


667* **수락하는 경우**: Claude Code는 `skipDangerousModePermissionPrompt`를 `~/.claude/settings.json`에서 `true`로 설정하므로 이후 세션은 대화상자를 건너뜁니다. 대화상자를 다시 보려면 해당 파일에서 키를 제거하거나 `false`로 설정하십시오. [`skipDangerousModePermissionPrompt` 참조](/docs/ko/settings-reference#skipdangerousmodepermissionprompt)는 사용자 또는 조직이 설정할 수 있는 다른 설정 파일을 나열합니다.667* **수락하는 경우**: Claude Code는 `skipDangerousModePermissionPrompt`를 `~/.claude/settings.json`에서 `true`로 설정하므로 이후 세션은 대화상자를 건너뜁니다. 대화상자를 다시 보려면 해당 파일에서 키를 제거하거나 `false`로 설정하십시오. [`skipDangerousModePermissionPrompt` 참조](/docs/ko/settings-reference#skipdangerousmodepermissionprompt)는 사용자 또는 조직이 설정할 수 있는 다른 설정 파일을 나열합니다.

668* **거부하는 경우**: Claude Code가 종료됩니다.668* **거부하는 경우**: Claude Code가 종료됩니다.

669 669 

670[비대화형 모드](/docs/ko/headless)에서는 대화상자가 표시되지 않습니다. [백그라운드 세션](/docs/ko/agent-view)은 수락 기록이 사용자 설정 또는 관리형 설정에 있을 때 이를 적용합니다:670[비대화형 모드](/docs/ko/headless)에서는 대화상자가 표시되지 않습니다.

671 

672[백그라운드 세션](/docs/ko/agent-view)은 수락 기록이 사용자 설정 또는 관리형 설정에 있을 때 이를 적용합니다:

673 

674* 수락 기록이 없으면 `claude --bg --permission-mode bypassPermissions`가 거부됩니다. 먼저 대화형 세션에서 대화상자를 수락하십시오.

675* `skipDangerousModePermissionPrompt`가 `.claude/settings.local.json`에만 설정되어 있으면, 백그라운드 세션은 [우회 요청을 무시한 채](#bypass-permissions-ignored-in-a-background-session) 시작됩니다:

671 676 

672* 수락 기록이 없으면, 대화형 세션에서 대화상자를 수락할 때까지 `claude --bg --permission-mode bypassPermissions`가 거부됩니다.

673* `skipDangerousModePermissionPrompt`가 `.claude/settings.local.json`에만 설정되어 있으면, 백그라운드 세션은 우회 요청을 무시한 채 시작되며 `Bypass permissions was requested at launch and ignored · if that was you, ~/.claude/settings.json needs "skipDangerousModePermissionPrompt": true` 알림을 고정 표시합니다. 해당 키를 `~/.claude/settings.json`에 추가한 다음 새 백그라운드 세션을 시작하십시오. 알림을 표시하는 세션은 계속 실행됩니다:

674 * `--allow-dangerously-skip-permissions`가 무시된 경우, `bypassPermissions`는 해당 세션의 `Shift+Tab` 순환에서 제외됩니다.677 * `--allow-dangerously-skip-permissions`가 무시된 경우, `bypassPermissions`는 해당 세션의 `Shift+Tab` 순환에서 제외됩니다.

675 * `--permission-mode bypassPermissions` 또는 `--dangerously-skip-permissions`가 무시된 경우, 세션은 대신 Manual 모드로 시작됩니다.678 * `--permission-mode bypassPermissions` 또는 `--dangerously-skip-permissions`가 무시된 경우, 세션은 대신 Manual 모드로 시작됩니다.

676 679 

680 `~/.claude/settings.json`에 `"skipDangerousModePermissionPrompt": true`를 추가한 다음 새 백그라운드 세션을 시작하십시오.

681 

677Linux 및 macOS에서, Claude Code는 root 또는 `sudo` 권한으로 실행할 때 `bypassPermissions` 모드에서 시작하기를 거부합니다:682Linux 및 macOS에서, Claude Code는 root 또는 `sudo` 권한으로 실행할 때 `bypassPermissions` 모드에서 시작하기를 거부합니다:

678 683 

679```text theme={null}684```text theme={null}


688>693>

689> `bypassPermissions`는 프롬프트 주입이나 의도하지 않은 작업에 대한 보호를 제공하지 않습니다. 훨씬 적은 권한 프롬프트로 백그라운드 안전 확인을 하려면 [자동 모드](#eliminate-prompts-with-auto-mode)를 대신 사용하십시오. 관리자는 [관리 설정](/docs/ko/managed-settings)에서 `permissions.disableBypassPermissionsMode`를 `"disable"`로 설정하여 이 모드를 차단할 수 있습니다.694> `bypassPermissions`는 프롬프트 주입이나 의도하지 않은 작업에 대한 보호를 제공하지 않습니다. 훨씬 적은 권한 프롬프트로 백그라운드 안전 확인을 하려면 [자동 모드](#eliminate-prompts-with-auto-mode)를 대신 사용하십시오. 관리자는 [관리 설정](/docs/ko/managed-settings)에서 `permissions.disableBypassPermissionsMode`를 `"disable"`로 설정하여 이 모드를 차단할 수 있습니다.

690 695 

696### 백그라운드 세션에서 무시된 권한 우회

697 

698이 알림은 [백그라운드 세션](/docs/ko/agent-view)이 사용자 설정 또는 관리형 설정에서 [권한 우회 경고](#bypass-permissions-acceptance)에 대한 수락 기록을 찾지 못해, 시작 시 요청된 우회를 무시했음을 의미합니다:

699 

700```text theme={null}

701Bypass permissions was requested at launch and ignored · if that was you, ~/.claude/settings.json needs "skipDangerousModePermissionPrompt": true

702```

703 

704`~/.claude/settings.json`에 `"skipDangerousModePermissionPrompt": true`를 추가한 다음 새 백그라운드 세션을 시작하십시오.

705 

706### `claude agents`가 대화형 세션에서는 건너뛰는 권한 우회 경고를 표시하는 경우

707 

708대화형 세션에서는 [권한 우회 경고](#bypass-permissions-acceptance)를 건너뛰는데 [`claude agents`](/docs/ko/agent-view#dispatch-defaults)가 이 경고를 표시한다면, `skipDangerousModePermissionPrompt`가 `.claude/settings.local.json` 또는 `--settings` 파일에 설정되어 있는지 확인하십시오. 대화형 세션은 해당 위치의 키를 경고 수락으로 간주하지만, `claude agents`는 그렇지 않습니다. 해당 위치에서 키를 찾았는지 여부와 관계없이, 경고를 수락하여 `claude agents`가 키를 찾는 위치인 `~/.claude/settings.json`에 키를 추가하십시오.

709 

691## 보호된 경로710## 보호된 경로

692 711 

693`bypassPermissions` 모드와 [bypass permissions를 사용할 수 있는](#skip-all-checks-with-bypasspermissions-mode) plan 모드의 대화형 터미널 세션을 제외하고는 특정 경로에 대한 쓰기는 자동으로 승인되지 않습니다. 이는 저장소 상태와 Claude의 자체 설정이 실수로 손상되는 것을 방지합니다.712`bypassPermissions` 모드와 [bypass permissions를 사용할 수 있는](#skip-all-checks-with-bypasspermissions-mode) plan 모드의 대화형 터미널 세션을 제외하고는 특정 경로에 대한 쓰기는 자동으로 승인되지 않습니다. 이는 저장소 상태와 Claude의 자체 설정이 실수로 손상되는 것을 방지합니다.

permissions.md +184 −161

Details

77| :- | :- |77| :- | :- |

78| `default` | 각 도구를 처음 사용할 때 권한을 요청합니다. CLI, VS Code 및 JetBrains 확장, 데스크톱 앱에서 Manual로 표시되며, Claude Code는 `manual`을 별칭으로 허용합니다 |78| `default` | 각 도구를 처음 사용할 때 권한을 요청합니다. CLI, VS Code 및 JetBrains 확장, 데스크톱 앱에서 Manual로 표시되며, Claude Code는 `manual`을 별칭으로 허용합니다 |

79| `acceptEdits` | 작업 디렉토리 또는 `additionalDirectories`의 경로에 대해 파일 편집 및 `mkdir`, `touch`, `mv`, `cp` 등의 일반적인 파일 시스템 명령을 자동으로 수락합니다 |79| `acceptEdits` | 작업 디렉토리 또는 `additionalDirectories`의 경로에 대해 파일 편집 및 `mkdir`, `touch`, `mv`, `cp` 등의 일반적인 파일 시스템 명령을 자동으로 수락합니다 |

80| `plan` | Claude는 파일을 읽고 읽기 전용 셸 명령을 실행하여 탐색하지만 소스 파일을 편집하지 않습니다. [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)를 사용할 수 있으며, 분류기 승인 명령도 실행됩니다. CLI 및 VS Code 확장에서 Plan으로 표시됩니다 |80| `plan` | Claude는 파일을 읽고 읽기 전용 셸 명령을 실행하여 탐색하지만 소스 파일을 편집하지 않습니다. [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)를 사용할 수 있는 경우 분류기 승인 명령도 실행됩니다. CLI 및 VS Code 확장에서 Plan으로 표시됩니다 |

81| `auto` | 루틴 프롬프트 없이 실행됩니다. 셸 명령 및 네트워크 요청과 같은 작업이 실행되기 전에 백그라운드 [분류기](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)가 요청과 일치하는지 확인합니다 |81| `auto` | 루틴 프롬프트 없이 실행됩니다. 셸 명령 및 네트워크 요청과 같은 작업이 실행되기 전에 백그라운드 [분류기](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)가 요청과 일치하는지 확인합니다 |

82| `dontAsk` | 그 외에 확인을 요청할 모든 호출을 자동으로 거부합니다. 다만 설치한 [mod](/docs/ko/plugins/mods/overview)는 이러한 호출 중 일부를 여전히 승인할 수 있습니다. 작업 디렉터리의 파일 읽기 및 승인이 필요 없는 기타 작업은 계속 실행되며, `/permissions` 또는 `permissions.allow` 규칙을 통해 사전 승인된 도구도 실행됩니다. `AskUserQuestion`, [`requiresUserInteraction`](/docs/ko/mcp#require-approval-for-a-specific-tool)으로 표시된 MCP 도구, [네트워크 경로에서의 읽기](#network-paths), 그리고 해당 설정이 Claude Code에 적용되는 세션에서 [조직이 `ask`로 설정한](/docs/ko/mcp#organization-controls-on-connector-tools) 커넥터 도구는 허용했더라도 거부됩니다 |82| `dontAsk` | 그 외에 확인을 요청할 모든 호출을 자동으로 거부합니다. 다만 설치한 [mod](/docs/ko/plugins/mods/overview)는 이러한 호출 중 일부를 여전히 승인할 수 있습니다. 작업 디렉터리의 파일 읽기 및 승인이 필요 없는 기타 작업은 계속 실행되며, `/permissions` 또는 `permissions.allow` 규칙을 통해 사전 승인된 도구도 실행됩니다. `AskUserQuestion`, [`requiresUserInteraction`](/docs/ko/mcp#require-approval-for-a-specific-tool)으로 표시된 MCP 도구, [네트워크 경로에서의 읽기](#network-paths), 그리고 해당 설정이 Claude Code에 적용되는 세션에서 [조직이 `ask`로 설정한](/docs/ko/mcp#organization-controls-on-connector-tools) 커넥터 도구는 허용했더라도 거부됩니다 |

83| `bypassPermissions` | 권한 프롬프트를 건너뜁니다. 단, [모든 모드가 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves)은 제외됩니다 |83| `bypassPermissions` | 권한 프롬프트를 건너뜁니다. 단, [모든 모드가 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves)은 제외됩니다 |


202}202}

203```203```

204 204 

205허용 규칙은 리터럴 `mcp__<server>__` 접두사 이후에만 도구 이름 glob을 허용합니다. 서버 세그먼트는 glob이 없어야 하므로 규칙이 구성한 특정 서버를 지정합니다. `mcp__puppeteer__*`는 `puppeteer` 서버의 모든 도구와 일치하며, `mcp__github__get_*`는 해당 `get_` 도구와 일치합니다. `"*"`, `"B*"`, 또는 `"mcp__*"`와 같은 고정되지 않은 허용 glob은 경고와 함께 건너뛰어지며 자동으로 승인되지 않습니다.205허용 규칙은 리터럴 `mcp__<server>__` 접두사 이후에만 도구 이름 glob을 허용합니다. 서버 세그먼트는 glob이 없어야 하므로 규칙이 구성한 특정 서버를 지정합니다. `mcp__puppeteer__*`는 `puppeteer` 서버의 모든 도구와 일치하며, `mcp__github__get_*`는 해당 `get_` 도구와 일치합니다. `"*"`, `"B*"`, 또는 `"mcp__*"`와 같은 고정되지 않은 허용 glob은 건너뛰어지며 아무것도 자동으로 승인하지 않습니다.

206 206 

207도구 이름이 알려진 도구와 일치하지 않는 거부 또는 요청 규칙은 오타를 포착하기 위해 시작 경고를 생성합니다. `_` 또는 `*`를 포함하는 도구 이름은 확인에서 제외됩니다. Claude Code가 제거한 도구의 이름(예: `TaskOutput`)도 확인에서 제외됩니다.207도구 이름이 알려진 도구와 일치하지 않는 거부 또는 확인 규칙은 오타를 포착하기 위해 [시작 경고](/docs/ko/errors#matches-no-tool)를 생성합니다. `_` 또는 `*`를 포함하는 도구 이름은 확인에서 제외됩니다. Claude Code가 제거한 도구의 이름(예: `TaskOutput`)도 확인에서 제외됩니다.

208 208 

209트랜스크립트 및 권한 대화 상자에서 도구에 대해 표시되는 레이블은 정규 이름과 다를 수 있습니다. 예를 들어, 트랜스크립트에서 `Stop Task`로 표시되는 도구의 정규 이름은 `TaskStop`입니다. 권한 규칙 및 [hook 매처](/docs/ko/hooks)는 레이블을 기준으로 일치시키지 않으므로, `Stop Task`로 작성된 규칙은 일치하지 않습니다. 거부 및 요청 규칙의 경우, 위의 시작 경고가 불일치를 포착합니다. [도구 참조](/docs/ko/tools-reference)에 나열된 정규 이름을 사용합니다.209트랜스크립트 및 권한 대화 상자에서 도구에 대해 표시되는 레이블은 정규 이름과 다를 수 있습니다. 예를 들어, 트랜스크립트에서 `Stop Task`로 표시되는 도구의 정규 이름은 `TaskStop`입니다. 권한 규칙 및 [hook 매처](/docs/ko/hooks)는 레이블을 기준으로 일치시키지 않으므로, `Stop Task`로 작성된 규칙은 일치하지 않습니다. 거부 및 요청 규칙의 경우, 위의 시작 경고가 불일치를 포착합니다. [도구 참조](/docs/ko/tools-reference)에 나열된 정규 이름을 사용합니다.

210 210 


212 212 

213### Bash213### Bash

214 214 

215Bash 규칙은 전체 명령 텍스트와 일치하며, `*`는 모든 텍스트를 나타냅니다. [와일드카드 패턴](#wildcard-patterns)은 각 규칙 형태가 일치하는 명령과 `*`를 어디에 배치할지 보여줍니다. 이 섹션의 나머지 부분은 Claude Code가 복합 명령과 래퍼를 어떻게 일치시키는지, 접두사 규칙이 승인할 수 없는 래퍼와 `find` 액션, 규칙이 일치하지 않는 것, 읽기 전용 명령 및 리다이렉션을 다룹니다.215Bash 규칙은 명령 텍스트 전체와 매칭되며, `*`는 임의의 텍스트를 나타냅니다. [와일드카드 패턴](#wildcard-patterns)에서 각 규칙 형태가 어떤 명령과 매칭되는지, 그리고 `*`를 어디에 두어야 하는지 확인할 수 있습니다. 이 섹션의 나머지 부분에서는 Claude Code가 복합 명령과 래퍼를 매칭하는 방식, 접두사 규칙으로 승인할 수 없는 래퍼와 `find` 액션, 규칙이 매칭하지 않는 대상, 읽기 전용 명령, 리디렉션을 다룹니다.

216 216 

217#### 복합 명령217#### 복합 명령

218 218 

219> [!TIP]219> [!TIP]

220>220>

221> Claude Code는 셸 연산자를 인식하므로 `Bash(safe-cmd *)`와 같은 규칙은 `safe-cmd && other-cmd` 명령을 실행할 권한을 부여하지 않습니다. 인식되는 명령 구분자는 `&&`, `||`, `;`, `|`, `|&`, `&` 및 줄바꿈입니다. 규칙은 각 서브명령과 독립적으로 일치해야 합니다.221> Claude Code는 셸 연산자를 인식하므로, `Bash(safe-cmd *)` 같은 규칙이 `safe-cmd && other-cmd` 명령을 실행할 권한을 부여하지는 않습니다. 인식되는 명령 구분자는 `&&`, `||`, `;`, `|`, `|&`, `&`, 그리고 줄바꿈입니다. 규칙은 각 하위 명령과 독립적으로 매칭되어야 합니다.

222 222 

223Deny 및 ask 규칙은 서브셸 내에 중첩된 명령, 명령 치환 또는 `for` 루프와 같은 제어 흐름 본문 내의 명령을 포함하여 일치하는 모든 서브명령에 적용됩니다. `Bash(git clean *)`과 같은 ask 규칙은 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서도 `cd /tmp && git clean -f` 또는 `echo "$(git clean -f)"`에 대해 여전히 프롬프트합니다.223거부 및 확인 규칙은 하위 명령 중 하나라도 매칭되면 적용되며, 서브셸, 명령 치환, 또는 `for` 루프와 같은 제어 흐름 본문 안에 중첩된 명령도 포함됩니다. `Bash(git clean *)` 같은 확인 규칙은 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서도 `cd /tmp && git clean -f`나 `echo "$(git clean -f)"`에 대해 여전히 확인을 요청합니다.

224 224 

225`&&` 또는 `||` 뒤에 아무것도 없을 때(예: `npm test &&`), Claude Code는 명령을 구문 분석 불가능한 것으로 취급하고 allow 규칙 일치를 위해 서브명령으로 분할하지 않으므로 `Bash(npm *)`과 같은 규칙은 이를 승인하지 않습니다.225`npm test &&`처럼 `&&`나 `||` 뒤에 아무것도 없으면, Claude Code는 해당 명령을 파싱할 수 없는 것으로 취급하여 허용 규칙 매칭을 위해 하위 명령으로 분할하지 않으므로, `Bash(npm *)` 같은 규칙으로는 승인되지 않습니다.

226 226 

227"예, 다시 묻지 않기"로 복합 명령을 승인하면 Claude Code는 전체 복합 문자열에 대한 단일 규칙이 아니라 승인이 필요한 각 서브명령에 대해 별도의 규칙을 저장합니다. 예를 들어, `git status && npm test`를 승인하면 `npm test`에 대한 규칙을 저장하므로 향후 `npm test` 호출은 `&&` 앞에 무엇이 있든 인식됩니다. 작업 디렉터리 외부의 디렉터리로 `cd`하는 것과 같은 서브명령은 해당 경로에 대한 자체 Read 규칙을 생성합니다. 단일 복합 명령에 대해 최대 5개의 규칙이 저장될 수 있습니다.227"Yes, and don't ask again"으로 복합 명령을 승인하면, Claude Code는 전체 복합 문자열에 대한 단일 규칙 대신 승인이 필요한 각 하위 명령에 대해 별도의 규칙을 저장합니다. 예를 들어 `git status && npm test`를 승인하면 `npm test`에 대한 규칙이 저장되므로, 이후 `npm test` 호출은 `&&` 앞에 무엇이 오든 인식됩니다. 작업 디렉터리 밖의 디렉터리로 이동하는 `cd` 같은 하위 명령은 해당 경로에 대한 자체 Read 규칙을 생성합니다. 하나의 복합 명령에 대해 최대 5개의 규칙이 저장될 수 있습니다.

228 228 

229#### 래퍼229#### 래퍼

230 230 

231Bash 규칙을 일치시키기 전에 Claude Code는 고정된 래퍼 집합을 제거하므로 `Bash(npm test *)`와 같은 규칙은 `timeout 30 npm test`도 일치합니다. 제거되는 래퍼는 `timeout`, `time`, `nice`, `nohup` 및 `stdbuf`이며, 셸 내장 `command` 및 `builtin`, 그리고 zsh의 `noglob`입니다. 각각은 인수를 실제 명령으로 실행합니다. 두 가지 관련 형식은 제거되지 않습니다: 명령을 실행하지 않고 조회하는 쿼리 형식 `command -v`, 그리고 zsh의 `nocorrect`입니다.231Bash 규칙을 매칭하기 전에 Claude Code는 고정된 래퍼 집합을 제거하므로, `Bash(npm test *)` 같은 규칙은 `timeout 30 npm test`와도 매칭됩니다. 제거되는 래퍼는 `timeout`, `time`, `nice`, `nohup`, `stdbuf`와 셸 내장 명령인 `command`, `builtin`, 그리고 zsh의 `noglob`입니다. 각각은 인수를 실제 명령으로 실행합니다. 관련된 두 가지 형태는 제거되지 않습니다. 명령을 실행하는 대신 조회하는 쿼리 형태 `command -v`와 zsh의 `nocorrect`입니다.

232 232 

233Claude Code는 또한 특정 알려진 안전 환경 변수의 선행 할당을 제거하므로 `Bash(npm test *)`는 `NODE_ENV=test npm test`와 일치합니다. Allow 규칙은 다른 변수의 할당을 넘어 일치하지 않습니다. Deny 또는 ask 규칙은 모든 선행 할당을 넘어 일치하므로 deny의 `Bash(rm *)`은 여전히 `FOO=bar rm -rf tmp/`와 일치합니다.233Claude Code는 또한 안전하다고 알려진 특정 환경 변수의 선행 할당을 제거하므로, `Bash(npm test *)`는 `NODE_ENV=test npm test`와 매칭됩니다. 허용 규칙은 그 밖의 다른 변수 할당을 건너뛰어 매칭되지 않습니다. 거부 또는 확인 규칙은 모든 선행 할당을 건너뛰어 매칭되므로, 거부 목록의 `Bash(rm *)`는 여전히 `FOO=bar rm -rf tmp/`와 매칭됩니다.

234 234 

235베어 `xargs`도 제거되므로 `Bash(grep *)`는 `xargs grep pattern`과 일치합니다. 제거는 `xargs`에 플래그가 없을 때만 적용됩니다: `xargs -n1 grep pattern`과 같은 호출은 `xargs` 명령으로 일치되므로 내부 명령에 대해 작성된 규칙은 이를 포함하지 않습니다.235플래그 없는 `xargs`도 제거되므로, `Bash(grep *)`는 `xargs grep pattern`과 매칭됩니다. 제거는 `xargs`에 플래그가 없을 때만 적용됩니다. `xargs -n1 grep pattern` 같은 호출은 `xargs` 명령으로 매칭되므로, 내부 명령을 위해 작성된 규칙은 이를 포함하지 않습니다.

236 236 

237이 래퍼 목록은 기본 제공되며 구성할 수 없습니다. `direnv exec`, `devbox run`, `mise exec`, `npx` 및 `docker exec`과 같은 개발 환경 러너는 목록에 없습니다. 이러한 도구는 인수를 명령으로 실행하므로 `Bash(devbox run *)`와 같은 규칙은 `devbox run rm -rf .`를 포함하여 `run` 뒤에 오는 모든 것과 일치합니다. 환경 러너 내에서 작업을 승인하려면 `Bash(devbox run npm test)`와 같이 러너와 내부 명령을 모두 포함하는 특정 규칙을 작성합니다. 허용하려는 각 내부 명령에 대해 하나의 규칙을 추가합니다.237이 래퍼 목록은 내장되어 있으며 구성할 수 없습니다. `direnv exec`, `devbox run`, `mise exec`, `npx`, `docker exec` 같은 개발 환경 실행기는 목록에 포함되어 있지 않습니다. 이러한 도구는 인수를 명령으로 실행하므로, `Bash(devbox run *)` 같은 규칙은 `devbox run rm -rf .`를 포함하여 `run` 뒤에 오는 모든 것과 매칭됩니다. 환경 실행기 안의 작업을 승인하려면 `Bash(devbox run npm test)`처럼 실행기와 내부 명령을 모두 포함하는 구체적인 규칙을 작성하십시오. 허용하려는 내부 명령마다 규칙을 하나씩 추가합니다.

238 238 

239#### Exec 래퍼와 `find` 액션239#### Exec 래퍼와 `find` 액션

240 240 

241`Bash(watch *)` 또는 `Bash(find *)`와 같은 접두사 규칙은 다음 명령을 자동 승인할 수 없으므로 Manual 모드에서 이러한 명령은 프롬프트합니다:241`Bash(watch *)`나 `Bash(find *)` 같은 접두사 규칙은 다음 명령을 자동 승인할 수 없으므로, Manual 모드에서는 확인을 요청합니다.

242 242 

243* **Exec 래퍼**: `watch`, `setsid`, `ionice` 및 `flock` 등243* **Exec 래퍼**: `watch`, `setsid`, `ionice`, `flock` 등

244* **`find`**: `-exec`, `-delete` 또는 `-fprint`와 같이 명령을 실행하거나, 파일을 삭제하거나, 파일을 쓰는 액션이 있는 경우, 또는 검색할 경로를 파일에서 가져오는 `-files0-from`이 있는 경우244* **`find`**: `-exec`, `-delete`, `-rm`, `-fprint`처럼 명령을 실행하거나, 파일을 삭제하거나, 파일을 쓰는 액션이 있는 경우, 또는 검색할 경로를 파일에서 가져오는 `-files0-from`이 있는 경우

245 245 

246`*`가 없는 특정 호출을 승인하려면 `Bash(find build -type f -delete)`와 같이 전체 명령 문자열에 대한 정확한 일치 규칙을 작성합니다.246`*`가 없는 특정 호출을 승인하려면 `Bash(find build -type f -delete)`처럼 전체 명령 문자열에 대한 정확히 일치하는 규칙을 작성하십시오.

247 247 

248`find . -name '*.tmp' -delete`처럼 명령에 `*`가 있으면 Claude Code는 규칙을 정확한 일치가 아닌 [와일드카드 패턴](#wildcard-patterns)으로 읽으므로 명령은 여전히 프롬프트합니다. 프롬프트할 때마다 승인하거나, 해당 명령에 대해 `"allow"`를 반환하는 [PreToolUse 훅](/docs/ko/hooks#pretooluse-decision-control)을 사용합니다.248`find . -name '*.tmp' -delete`처럼 명령에 `*`가 있으면, Claude Code는 규칙을 정확한 일치가 아닌 [와일드카드 패턴](#wildcard-patterns)으로 읽으므로 명령은 여전히 확인을 요청합니다. 확인을 요청할 때마다 승인하거나, 해당 명령에 대해 `"allow"`를 반환하는 [PreToolUse 훅](/docs/ko/hooks#pretooluse-decision-control)을 사용하십시오.

249 249 

250#### Bash 규칙이 일치하지 않는 것250#### Bash 규칙이 매칭하지 않는 것

251 251 

252Bash 규칙은 Claude Code가 [복합 명령](#compound-commands)을 분할하고 [래퍼](#process-wrappers)를 제거한 후 Claude가 작성한 명령 텍스트와 일치합니다. 다른 형식으로 호출된 동일한 프로그램과는 일치하지 않으므로 deny 또는 ask 규칙은 Claude가 일반적으로 생성하는 호출을 중지하며 프로그램 주변의 보안 경계가 아닙니다. 이러한 규칙은 `deny` 또는 `ask`에서 첫 번째 형식을 중지하고 다른 형식은 중지하지 않습니다:252Bash 규칙은 Claude Code가 [복합 명령](#compound-commands)을 분할하고 [래퍼](#process-wrappers)를 제거한 후, Claude가 작성한 명령 텍스트와 매칭됩니다. 같은 프로그램을 다른 형태로 호출한 경우에는 매칭되지 않으므로, 거부 또는 확인 규칙은 Claude가 일반적으로 생성하는 호출을 다룰 뿐 프로그램을 둘러싼 보안 경계가 아닙니다. `deny` 또는 `ask`에 있는 다음 규칙은 첫 번째 형태는 막지만 다른 형태는 막지 않습니다.

253 253 

254| 규칙 | 중지 | 중지하지 않음 |254| 규칙 | 막는 것 | 막지 않는 것 |

255| :- | :- | :- |255| :- | :- | :- |

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

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

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

259 259 

260마지막 열의 명령이 어떻게 처리될지는 다른 규칙과 권한 모드가 결정합니다.260마지막 열의 명령은 다른 규칙과 권한 모드에 따라 결정됩니다.

261 261 

262명령 텍스트에 의존하지 않는 파일 시스템 및 네트워크 적용을 위해 [샌드박싱](/docs/ko/sandboxing)을 사용합니다. 실행되기 전에 자신의 논리로 전체 명령 텍스트를 검사하려면 [PreToolUse 훅](#extend-permissions-with-hooks)을 사용합니다.262명령 텍스트에 의존하지 않는 파일 시스템 및 네트워크 적용을 원한다면 [샌드박싱](/docs/ko/sandboxing)을 사용하십시오. 실행 전에 자체 로직으로 전체 명령 텍스트를 검사하려면 [PreToolUse 훅](#extend-permissions-with-hooks)을 사용하십시오.

263 263 

264#### 읽기 전용 명령264#### 읽기 전용 명령

265 265 

266Claude Code는 기본 제공 Bash 명령 집합을 읽기 전용으로 인식하고, 작업 디렉터리 외부 경로에 대해 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/ko/settings-reference#permissions-blockreadsoutsideworkingdirectories)가 동작을 변경하는 경우를 제외하고 모든 모드에서 권한 프롬프트 없이 실행합니다. 집합에는 `ls`, `cat`, `echo`, `pwd`, `head`, `tail`, `grep`, `find`, `wc`, `which`, `diff`, `stat`, `du`, `cd` 및 `git`의 읽기 전용 형식이 포함됩니다. 집합은 구성할 수 없습니다. 이러한 명령 중 하나에 대해 프롬프트를 요구하려면 `ask` 또는 `deny` 규칙을 추가합니다. 자동 모드에서 이러한 명령은 또한 분류기의 검토를 기다릴 수 있습니다. [분류기가 작업을 평가하는 방법](/docs/ko/permission-modes#how-the-classifier-evaluates-actions)을 참조합니다.266Claude Code는 내장된 Bash 명령 집합을 읽기 전용으로 인식하며, 작업 디렉터리 밖의 경로에 대해 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/ko/settings-reference#permissions-blockreadsoutsideworkingdirectories)가 동작을 바꾸는 경우를 제외하고 모든 모드에서 권한 프롬프트 없이 실행합니다. 이 집합에는 `ls`, `cat`, `echo`, `pwd`, `head`, `tail`, `grep`, `find`, `wc`, `which`, `diff`, `stat`, `du`, `cd`, 그리고 `git`의 읽기 전용 형태가 포함됩니다. 이 집합은 구성할 수 없습니다. 이러한 명령 중 하나에 프롬프트를 요구하려면 해당 명령에 대한 `ask` 또는 `deny` 규칙을 추가하십시오. 자동 모드에서는 이러한 명령도 분류기의 검토를 기다릴 수 있습니다. [분류기가 작업을 평가하는 방법](/docs/ko/permission-modes#how-the-classifier-evaluates-actions)을 참조하십시오.

267 267 

268`ls > out.txt`와 같은 리다이렉트는 대상에 대한 확인을 추가합니다. [리다이렉션](#redirections)을 참조합니다.268`ls > out.txt` 같은 리디렉션은 대상에 대한 검사를 추가합니다. [리디렉션](#redirections)을 참조하십시오.

269 269 

270따옴표 없는 glob 패턴은 모든 플래그가 읽기 전용인 명령에 대해 허용되므로 `ls *.ts` 및 `wc -l src/*.py`는 프롬프트 없이 실행됩니다.270모든 플래그가 읽기 전용인 명령에는 따옴표 없는 glob 패턴이 허용되므로, `ls *.ts`와 `wc -l src/*.py`는 프롬프트 없이 실행됩니다.

271 271 

272Manual 모드에서 이 집합의 명령은 다음 경우에 여전히 프롬프트합니다:272Manual 모드에서 이 집합의 명령은 다음 경우에 여전히 확인을 요청합니다.

273 273 

274* **쓰기 가능한 플래그가 있는 명령의 따옴표 없는 glob**: `find`, `sort`, `sed` 및 `git`과 같이 쓰기 가능하거나 실행 가능한 플래그가 있는 명령은 glob이 `-delete`와 같은 플래그로 확장될 수 있으므로 따옴표 없는 glob이 있을 때 프롬프트합니다.274* **쓰기 가능한 플래그가 있는 명령의 따옴표 없는 glob**: `find`, `sort`, `sed`, `git`처럼 쓰기 또는 실행이 가능한 플래그가 있는 명령은 따옴표 없는 glob이 있으면 확인을 요청합니다. glob이 `-delete` 같은 플래그로 확장될 수 있기 때문입니다.

275* **다른 데몬을 가리키는 `docker`**: `docker`의 읽기 전용 형식은 `-H`, `--context` 또는 Podman의 `--url` 및 `--connection`과 같이 다른 데몬을 선택하는 플래그를 전달할 때 프롬프트합니다.275* **다른 데몬을 가리키는 `docker`**: `docker`의 읽기 전용 형태는 `-H`, `--context`, 또는 Podman의 `--url`과 `--connection`처럼 다른 데몬을 선택하는 플래그가 명령에 포함되어 있으면 확인을 요청합니다.

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

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

278* **Windows의 네트워크 경로**: `\\server\share\file`과 같은 네트워크(UNC) 경로를 포함하는 인수가 있는 명령은 네트워크 경로에 액세스하면 Windows 자격 증명을 이름이 지정된 호스트로 보낼 수 있으므로 프롬프트합니다. 동일한 확인이 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool) 명령에도 적용됩니다.278* **Windows의 네트워크 경로**: `\\server\share\file`처럼 인수에 네트워크(UNC) 경로가 포함된 명령은 확인을 요청합니다. 네트워크 경로에 접근하면 Windows 자격 증명이 해당 경로가 가리키는 호스트로 전송될 수 있기 때문입니다. 동일한 검사가 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool) 명령에도 적용됩니다.

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

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

281 281 

282작업 디렉터리 또는 [추가 디렉터리](#working-directories) 내의 경로로의 `cd`도 읽기 전용이며, `cd packages/api && ls`와 같은 복합 명령은 각 부분이 자체적으로 적격일 때 프롬프트 없이 실행됩니다. 이러한 조합은 각 부분이 읽기 전용이어도 프롬프트합니다:282작업 디렉터리 또는 [추가 디렉터리](#working-directories) 내부 경로로의 `cd`도 읽기 전용이며, `cd packages/api && ls` 같은 복합 명령은 각 부분이 개별적으로 조건을 충족하면 프롬프트 없이 실행됩니다. 다음 조합은 각 부분이 읽기 전용이더라도 확인을 요청합니다.

283 283 

284* **`cd`와 `git`**: `cd`가 다른 디렉터리로 변경될 때 프롬프트합니다. 새 디렉터리에서 `git`을 실행하면 해당 디렉터리의 훅을 실행할 수 있기 때문입니다. 대상이 현재 작업 디렉터리로 해결되는 `cd`는 작동하지 않으며 프롬프트를 트리거하지 않습니다.284* **`git`과 함께 쓰인 `cd`**: `cd`가 다른 디렉터리로 이동하면 확인을 요청합니다. 새 디렉터리에서 `git`을 실행하면 해당 디렉터리의 훅이 실행될 수 있기 때문입니다. 대상이 현재 작업 디렉터리로 해석되는 `cd`는 아무 동작도 하지 않으므로 프롬프트를 발생시키지 않습니다.

285* **`cd`와 리다이렉트**: Claude Code가 `cd` 실행 후 리다이렉트 대상이 해결되는 디렉터리를 결정할 수 없을 때 프롬프트합니다. 유일한 리다이렉트 대상이 `/dev/null`인 명령(예: `cd app; grep -r pattern . 2>/dev/null`)은 `/dev/null`이 작업 디렉터리에 의존하지 않으므로 프롬프트를 트리거하지 않습니다.285* **리디렉션과 함께 쓰인 `cd`**: `cd`가 실행된 후 리디렉션 대상이 어느 디렉터리를 기준으로 해석되는지 Claude Code가 판단할 수 없으면 확인을 요청합니다. `cd app; grep -r pattern . 2>/dev/null`처럼 유일한 리디렉션 대상이 `/dev/null`인 명령은 확인을 요청하지 않습니다. `/dev/null`은 작업 디렉터리에 의존하지 않기 때문입니다.

286 286 

287> [!WARNING]287> [!WARNING]

288>288>

289> 명령 인수를 제약하려고 시도하는 Bash 권한 패턴은 취약합니다. 예를 들어, `Bash(curl http://github.com/ *)`는 curl을 GitHub URL로 제한하려고 하지만 다음과 같은 변형과는 일치하지 않습니다:289> 명령 인수를 제한하려는 Bash 권한 패턴은 취약합니다. 예를 들어 `Bash(curl http://github.com/ *)`는 curl을 GitHub URL로 제한하려는 의도이지만, 다음과 같은 변형과는 매칭되지 않습니다.

290>290>

291> * URL 앞의 옵션: `curl -X GET http://github.com/...`291> * URL 앞의 옵션: `curl -X GET http://github.com/...`

292> * 다른 프로토콜: `curl https://github.com/...`292> * 다른 프로토콜: `curl https://github.com/...`

293> * 리다이렉트: `curl -L http://short.example.com/xyz` (GitHub로 리다이렉트)293> * 리디렉트: GitHub로 리디렉트되는 `curl -L http://short.example.com/xyz`

294> * 변수: `URL=http://github.com && curl $URL`294> * 변수: `URL=http://github.com && curl $URL`

295>295>

296> 더 안정적인 URL 필터링을 위해 다음을 고려합니다:296> 보다 신뢰할 수 있는 URL 필터링을 위해 다음을 고려하십시오.

297>297>

298> * **Bash 네트워크 도구 제한**: deny 규칙을 사용하여 `curl`, `wget` 및 유사한 명령을 차단한 다음 허용된 도메인에 대해 `WebFetch(domain:github.com)` 권한으로 WebFetch 도구를 사용합니다. deny 규칙은 경로로 호출하거나 `sh -c` 내부에서 호출한 동일한 프로그램과는 일치하지 않으므로 제한이 반드시 유지되어야 할 때는 [샌드박스 네트워크 허용 목록](/docs/ko/sandboxing#network-isolation)과 함께 사용합니다. [Bash 규칙이 일치하지 않는 것](#bash-rule-limits)을 참조합니다.298> * **Bash 네트워크 도구 제한**: 거부 규칙을 사용하여 `curl`, `wget` 및 유사한 명령을 차단한 다음, 허용된 도메인에 대해 `WebFetch(domain:github.com)` 권한으로 WebFetch 도구를 사용합니다. 거부 규칙은 경로로 호출되거나 `sh -c` 안에서 호출된 동일한 프로그램과는 매칭되지 않으므로, 제한이 반드시 유지되어야 한다면 [샌드박스 네트워크 허용 목록](/docs/ko/sandboxing#network-isolation)과 함께 사용하십시오. [Bash 규칙이 매칭하지 않는 것](#bash-rule-limits)을 참조하십시오.

299> * **PreToolUse 훅 사용**: Bash 명령의 URL을 검증하고 허용되지 않은 도메인을 차단하는 훅을 구현합니다.299> * **PreToolUse 훅 사용**: Bash 명령의 URL을 검증하고 허용되지 않은 도메인을 차단하는 훅을 구현합니다.

300> * **CLAUDE.md 지침 추가**: `CLAUDE.md`에서 허용된 curl 패턴을 설명합니다. 이는 Claude가 시도하는 것을 형성하지만 경계를 적용하지 않으므로 위의 옵션 중 하나와 함께 사용합니다.300> * **CLAUDE.md 지침 추가**: 허용되는 curl 패턴을 `CLAUDE.md`에 설명합니다. 이는 Claude가 시도하는 내용에 영향을 주지만 경계를 강제하지는 않으므로, 위의 옵션 중 하나와 함께 사용하십시오.

301>301>

302> WebFetch만 사용하는 것은 네트워크 액세스를 방지하지 않습니다. Bash가 허용되면 Claude는 여전히 `curl`, `wget` 또는 다른 도구를 사용하여 모든 URL에 도달할 수 있습니다.302> WebFetch만 사용해서는 네트워크 접근을 막을 수 없다는 점에 유의하십시오. Bash가 허용되어 있으면 Claude는 여전히 `curl`, `wget` 또는 다른 도구를 사용하여 모든 URL에 접근할 수 있습니다.

303 303 

304#### 리다이렉션304#### 리디렉션

305 305 

306명령이 출력 또는 입력을 리다이렉트할 때 Claude Code는 Claude가 해당 파일을 직접 작성하거나 읽은 것처럼 리다이렉트 대상을 파일 규칙에 대해 확인합니다:306명령이 출력이나 입력을 리디렉션하면, Claude Code는 Claude가 해당 파일을 직접 쓰거나 읽는 것처럼 리디렉션 대상을 파일 규칙과 대조하여 검사합니다.

307 307 

308* **출력 리다이렉트**: `> file`, `>> file` 또는 `2> file`의 경우 확인은 `Edit` allow 및 deny 규칙, [보호된 경로](/docs/ko/permission-modes#protected-paths) 및 [작업 디렉터리](#working-directories)를 포함합니다. `Bash(git commit *)`와 같은 규칙은 명령을 허용하며 대상은 허용하지 않습니다. `~`로 시작하거나 glob 문자를 포함하는 대상은 승인이 필요합니다.308* **출력 리디렉션**: `> file`, `>> file`, `2> file`의 경우, 검사는 `Edit` 허용 및 거부 규칙, [보호된 경로](/docs/ko/permission-modes#protected-paths), [작업 디렉터리](#working-directories)를 대상으로 합니다. `Bash(git commit *)` 같은 규칙은 대상이 아닌 명령을 허용합니다. `~`로 시작하거나 glob 문자를 포함하는 대상은 사용자의 승인이 필요합니다.

309* **입력 리다이렉트**: `< file`의 경우 확인은 `Read` allow 및 deny 규칙과 작업 디렉터리를 포함합니다. 작업 디렉터리 외부의 대상은 allow 규칙이 이를 포함하지 않는 한 승인이 필요합니다. glob 패턴을 포함하거나 동일한 명령의 `cd` 뒤에 오는 상대 경로는 allow 규칙이 이를 포함해도 승인이 필요합니다. Claude Code는 v2.1.257 이상에서 입력 대상을 확인합니다.309* **입력 리디렉션**: `< file`의 경우, 검사는 `Read` 허용 및 거부 규칙과 작업 디렉터리를 대상으로 합니다. 작업 디렉터리 밖의 대상은 허용 규칙이 이를 포함하지 않는 한 사용자의 승인이 필요하며, 허용 규칙이 포함하면 승인이 필요하지 않습니다. glob 패턴을 포함하는 대상, 또는 같은 명령에서 `cd` 뒤에 오는 상대 경로는 허용 규칙이 포함하더라도 사용자의 승인이 필요합니다. Claude Code는 v2.1.257 이상에서 입력 대상을 검사합니다.

310 310 

311파일이 없는 대상은 확인되지 않습니다: `/dev/null`, `2>&1` 및 `<&3`과 같은 파일 설명자 형식, 그리고 here-docs 및 here-strings입니다.311뒤에 파일이 없는 대상은 검사하지 않습니다. `/dev/null`, `2>&1`과 `<&3` 같은 파일 디스크립터 형태, 그리고 here-doc과 here-string이 이에 해당합니다.

312 312 

313Claude Code는 또한 `tee` 명령이 작성하는 파일을 확인하며, `make | tee build.log`와 같은 파이프라인에서도 확인합니다. 확인은 `Edit` allow 및 deny 규칙, [보호된 경로](/docs/ko/permission-modes#protected-paths) 및 [작업 디렉터리](#working-directories)를 포함합니다. `Bash(tee *)` 같은 allow 규칙은 작업 디렉터리 외부의 대상을 포함하지 않습니다. Claude Code는 v2.1.269 이상에서 `tee` 대상을 확인합니다.313Claude Code는 `make | tee build.log` 같은 파이프라인을 포함하여 `tee` 명령이 쓰는 파일도 검사합니다. 검사는 `Edit` 허용 및 거부 규칙, [보호된 경로](/docs/ko/permission-modes#protected-paths), [작업 디렉터리](#working-directories)를 대상으로 합니다. `Bash(tee *)` 같은 허용 규칙은 작업 디렉터리 밖의 대상을 포함하지 않습니다. Claude Code는 v2.1.269 이상에서 `tee` 대상을 검사합니다.

314 314 

315### PowerShell315### PowerShell

316 316 

317PowerShell 권한 규칙은 Bash 규칙과 동일한 형태를 사용합니다. `*`를 사용한 와일드카드는 어느 위치에나 일치하고, `:*` 접미사는 후행 ` *`와 동등하며, 베어 `PowerShell` 또는 `PowerShell(*)`는 모든 명령과 일치합니다. 이 구성은 `Get-ChildItem` 및 `git commit` 명령을 허용하면서 `Remove-Item`을 차단합니다:317PowerShell 권한 규칙은 Bash 규칙과 같은 형태를 사용합니다. `*` 와일드카드는 어느 위치에서든 매칭되고, `:*` 접미사는 끝의 ` *`와 동등하며, 단독 `PowerShell` 또는 `PowerShell(*)`은 모든 명령과 매칭됩니다. 다음 구성은 `Get-ChildItem`과 `git commit` 명령을 허용하고 `Remove-Item`은 차단합니다.

318 318 

319```json theme={null}319```json theme={null}

320{320{


330}330}

331```331```

332 332 

333일반적인 별칭은 일치하기 전에 정규화됩니다. cmdlet 이름에 대해 작성된 규칙은 해당 별칭과도 일치하므로 `PowerShell(Get-ChildItem *)`는 `gci`, `ls` 및 `dir`과도 일치합니다. 일치는 대소문자를 구분하지 않습니다.333일반적인 별칭은 매칭 전에 정규화됩니다. cmdlet 이름으로 작성된 규칙은 해당 별칭과도 매칭되므로, `PowerShell(Get-ChildItem *)`은 `gci`, `ls`, `dir`과도 매칭됩니다. 매칭은 대소문자를 구분하지 않습니다.

334 334 

335Claude Code는 PowerShell AST를 구문 분석하고 복합 명령의 각 명령을 독립적으로 확인합니다. 파이프라인 연산자 `|`, 문 구분자 `;` 및 PowerShell 7+ 이상의 체인 연산자 `&&` 및 `||`는 복합 명령을 서브명령으로 분할합니다. 복합 명령이 허용되려면 규칙이 모든 서브명령과 일치해야 합니다.335Claude Code는 PowerShell AST를 파싱하여 복합 명령의 각 명령을 독립적으로 검사합니다. 파이프라인 연산자 `|`, 문 구분자 `;`, 그리고 PowerShell 7 이상에서는 체인 연산자 `&&`와 `||`가 복합 명령을 하위 명령으로 분할합니다. 복합 명령이 허용되려면 규칙이 모든 하위 명령과 매칭되어야 합니다.

336 336 

337### Read 및 Edit337### Read 및 Edit

338 338 

339Claude의 파일 도구가 파일 또는 디렉터리를 읽는 것을 차단하려면 `Read(./.env)` 또는 `Read(./secrets/**)`와 같은 경로에 대해 `Read` deny 규칙을 추가합니다. [민감한 파일 제외](/docs/ko/settings-reference#exclude-sensitive-files)에는 붙여넣기 준비가 된 예제가 있습니다. 프로젝트에 `.claudeignore` 파일이 있더라도 아무런 효과가 없으므로 해당 항목을 `Read` deny 규칙으로 옮깁니다.339Claude의 파일 도구가 파일이나 디렉터리를 읽지 못하도록 차단하려면 `Read(./.env)`나 `Read(./secrets/**)`처럼 해당 경로에 대한 `Read` 거부 규칙을 추가하십시오. [민감한 파일 제외](/docs/ko/settings-reference#exclude-sensitive-files)에 바로 붙여 넣을 수 있는 예시가 있습니다. 프로젝트에 `.claudeignore` 파일이 있더라도 아무 효과가 없으므로, 해당 항목을 `Read` 거부 규칙으로 옮기십시오.

340 340 

341`Edit` 규칙은 파일을 편집하는 모든 기본 제공 도구에 적용됩니다. Claude는 Grep 및 Glob과 같이 파일을 읽는 모든 기본 제공 도구에 `Read` 규칙을 적용하기 위해 최선을 다합니다. 또한 프롬프트의 `@file` 언급 및 연결된 [IDE](/docs/ko/vs-code#the-built-in-ide-mcp-server)가 Claude와 공유하는 선택 및 열린 파일 컨텍스트에도 적용합니다.341`Edit` 규칙은 파일을 편집하는 모든 내장 도구에 적용됩니다. Claude는 `Read` 규칙을 Grep 및 Glob처럼 파일을 읽는 모든 내장 도구, 프롬프트의 `@file` 멘션, 그리고 연결된 [IDE](/docs/ko/vs-code#the-built-in-ide-mcp-server)가 Claude와 공유하는 선택 영역 및 열린 파일 컨텍스트에 최선의 노력으로 적용합니다.

342 342 

343`Read(path)` deny 규칙은 프롬프트에 붙여넣은 이미지 경로와 @로 언급한 디렉터리에도 적용됩니다:343`Read(path)` 거부 규칙은 프롬프트에 붙여 넣은 이미지 경로와 @-멘션한 디렉터리에도 적용됩니다.

344 344 

345* **이미지 경로**: 터미널에서 프롬프트에 이미지 경로를 붙여넣거나 이미지 파일을 끌어다 놓았을 때 규칙이 해당 경로와 일치하면 Claude Code는 이미지를 첨부하지 않습니다. 붙여넣은 내용에 다른 이미지가 없으면 경로는 텍스트로 프롬프트에 남습니다.345* **이미지 경로**: 터미널에서 이미지 경로를 프롬프트에 붙여 넣거나 이미지 파일을 끌어다 놓았을 때 규칙이 해당 경로와 매칭되면, Claude Code는 이미지를 첨부하지 않습니다. 붙여 넣은 내용에 다른 이미지가 없으면 경로는 프롬프트에 텍스트로 남습니다.

346* **디렉터리**: [Claude가 받는 목록](/docs/ko/common-workflows#reference-files-and-directories)에서 규칙과 일치하는 파일 및 디렉터리 이름이 제외됩니다.346* **디렉터리**: [Claude가 받는 목록](/docs/ko/common-workflows#reference-files-and-directories)에서 규칙과 매칭되는 파일 및 디렉터리 이름이 제외됩니다.

347 347 

348Claude Code는 v2.1.290 이상에서 붙여넣은 이미지 경로와 디렉터리 목록을 확인합니다.348Claude Code는 v2.1.290 이상에서 붙여 넣은 이미지 경로와 디렉터리 목록을 검사합니다.

349 349 

350`Read` deny 규칙은 동일한 경로에서 [Edit 및 Write 도구](/docs/ko/errors#file-is-covered-by-a-read-deny-rule)도 차단하며, 새 파일 생성도 포함됩니다. NotebookEdit은 포함되지 않으므로 도구가 변경할 수 없는 경로에 대해 `Edit` deny 규칙을 추가합니다. Write 도구의 경우 이 확인에는 Claude Code v2.1.228 이상이 필요합니다.350`Read` 거부 규칙은 동일한 경로에서 [Edit 및 Write 도구](/docs/ko/errors#file-is-covered-by-a-read-deny-rule)도 차단하며, 해당 위치에 새 파일을 만드는 것도 포함됩니다. NotebookEdit는 포함되지 않으므로, 어떤 도구도 변경해서는 안 되는 경로에는 `Edit` 거부 규칙을 추가하십시오. Write 도구에 대한 검사는 Claude Code v2.1.228 이상이 필요합니다.

351 351 

352Claude Code는 `Edit(path)` 및 `Read(path)` 규칙에 대해서만 파일 권한을 확인합니다. `Write`, `NotebookEdit`, `Glob` 또는 레거시 `MultiEdit` 도구에 대해 경로 규칙을 작성하면 Claude Code는 규칙을 수락하지만 절대 참조하지 않으며, `--allowedTools`에 전달된 `Glob` 규칙을 제외하고 [시작 시 경고](/docs/ko/errors#is-not-matched-by-file-permission-checks)합니다. `Write(docs/**)`, `NotebookEdit(docs/**)` 또는 `MultiEdit(docs/**)` 대신 `Edit(docs/**)`를 사용하고, `Glob(docs/**)` 대신 `Read(docs/**)`를 사용합니다. Claude Code는 `Write`에 대한 deny 규칙과 같이 경로가 없는 도구 이름 규칙에 대해서는 경고하지 않으며, 해당 규칙을 모든 곳에서 도구 수준으로 일치시킵니다.352Claude Code는 파일 권한을 `Edit(path)` 및 `Read(path)` 규칙에 대해서만 검사합니다. 대신 `Write`, `NotebookEdit`, `Glob` 또는 레거시 `MultiEdit` 도구에 대한 경로 규칙을 작성하면, Claude Code는 규칙을 받아들이지만 전혀 참조하지 않으며 [시작 시 경고](/docs/ko/errors#is-not-matched-by-file-permission-checks)합니다. 단, `--allowedTools`로 전달된 `Glob` 규칙은 예외입니다. `Write(docs/**)`, `NotebookEdit(docs/**)`, `MultiEdit(docs/**)` 대신 `Edit(docs/**)`를, `Glob(docs/**)` 대신 `Read(docs/**)`를 사용하십시오. `Write`에 대한 거부 규칙처럼 경로가 없는 도구 이름 규칙에 대해서는 Claude Code가 경고하지 않으며, 해당 규칙을 어디서나 도구 수준에서 매칭합니다.

353 353 

354> [!WARNING]354> [!WARNING]

355>355>

356> Read 및 Edit deny 규칙은 Claude의 기본 제공 파일 도구, Bash에서 Claude Code가 인식하는 `cat`, `head`, `tail`, `sed` 및 `tee`와 같은 파일 명령, 그리고 `> file` 및 `< file`과 같은 Bash [리다이렉션](#redirections)의 대상에 적용됩니다. 이들은 파일이 있는 디렉터리에서 실행한 `grep -r pattern .`처럼 파일 이름을 지정하지 않고 파일을 읽는 명령이나, 파일을 직접 여는 Python 또는 Node 스크립트처럼 파일을 간접적으로 읽거나 쓰는 임의의 서브프로세스에는 적용되지 않습니다. 경로에 대한 모든 프로세스의 액세스를 차단하는 OS 수준 적용을 위해 [샌드박스를 활성화합니다](/docs/ko/sandboxing).356> Read 및 Edit 거부 규칙은 Claude의 내장 파일 도구, `cat`, `head`, `tail`, `sed`, `tee`처럼 Claude Code가 Bash에서 인식하는 파일 명령, 그리고 `> file`과 `< file` 같은 Bash [리디렉션](#redirections)의 대상에 적용됩니다. 파일이 있는 디렉터리에서 실행한 `grep -r pattern .`처럼 파일 이름을 지정하지 않고 파일을 읽는 명령이나, 파일을 직접 여는 Python 또는 Node 스크립트처럼 간접적으로 파일을 읽거나 쓰는 임의의 하위 프로세스에는 적용되지 않습니다. 모든 프로세스가 특정 경로에 접근하지 못하도록 OS 수준에서 강제하려면 [샌드박스를 활성화](/docs/ko/sandboxing)하십시오.

357 357 

358Read 및 Edit 규칙은 모두 [gitignore](https://git-scm.com/docs/gitignore) 패턴 구문을 사용하며 4가지 고유한 패턴 유형이 있습니다. 단일 세그먼트 디렉터리 패턴의 경우 일치 깊이는 이 섹션의 뒷부분에서 설명하는 규칙 유형에도 따릅니다:358Read와 Edit 규칙은 모두 네 가지 패턴 유형이 있는 [gitignore](https://git-scm.com/docs/gitignore) 패턴 구문을 사용합니다. 단일 세그먼트 디렉터리 패턴의 경우, 매칭 깊이는 이 섹션 뒷부분에서 설명하는 규칙 유형에 따라서도 달라집니다.

359 359 

360| 패턴 | 의미 | 예시 | 일치 |360| 패턴 | 의미 | 예시 | 매칭 대상 |

361| - | - | - | - |361| - | - | - | - |

362| `//path` | 파일 시스템 루트의 절대 경로 | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |362| `//path` | 파일 시스템 루트로부터의 절대 경로 | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |

363| `~/path` | 홈 디렉터리의 경로 | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |363| `~/path` | 홈 디렉터리로부터의 경로 | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |

364| `/path` | 설정 소스에 상대적인 경로 | `Edit(/src/**/*.ts)` | 프로젝트 설정의 `<primary working directory>/src/**/*.ts` |364| `/path` | 설정 소스에 상대적인 경로 | `Edit(/src/**/*.ts)` | 프로젝트 설정에서 `<primary working directory>/src/**/*.ts` |

365| `path` 또는 `./path` | 현재 디렉터리에 상대적인 경로 | `Read(*.env)` | `<cwd>/*.env` |365| `path` 또는 `./path` | 현재 디렉터리에 상대적인 경로 | `Read(*.env)` | `<cwd>/*.env` |

366 366 

367> [!WARNING]367> [!WARNING]

368>368>

369> `/Users/alice/file`과 같은 패턴은 절대 경로가 아닙니다. 단일 선행 슬래시는 파일 시스템 루트가 아니라 설정 소스에 앵커됩니다. 절대 경로의 경우 `//Users/alice/file`을 사용합니다.369> `/Users/alice/file` 같은 패턴은 절대 경로가 아닙니다. 앞에 붙은 단일 슬래시는 파일 시스템 루트가 아니라 설정 소스를 기준으로 고정됩니다. 절대 경로에는 `//Users/alice/file`을 사용하십시오.

370 370 

371`/path` 패턴은 이를 정의하는 설정 소스와 연관된 디렉터리에 앵커되므로 동일한 규칙은 배치 위치에 따라 다른 위치와 일치합니다:371`/path` 패턴은 이를 정의한 설정 소스와 연관된 디렉터리를 기준으로 고정되므로, 같은 규칙이라도 어디에 두느냐에 따라 다른 위치와 매칭됩니다.

372 372 

373| 규칙 정의 위치 | `/path` 해석 |373| 규칙이 정의된 곳 | `/path`가 해석되는 위치 |

374| :- | :- |374| :- | :- |

375| `.claude/settings.json`의 프로젝트 설정 | `<primary working directory>/path` |375| `.claude/settings.json`의 프로젝트 설정 | `<primary working directory>/path` |

376| `.claude/settings.local.json`의 로컬 설정 | `<primary working directory>/path` |376| `.claude/settings.local.json`의 로컬 설정 | `<primary working directory>/path` |


378| `--settings <file>`로 전달된 파일 | `<directory of file>/path` |378| `--settings <file>`로 전달된 파일 | `<directory of file>/path` |

379| CLI 플래그 또는 세션 규칙 | `<primary working directory>/path` |379| CLI 플래그 또는 세션 규칙 | `<primary working directory>/path` |

380 380 

381`/permissions`을 통해 추가한 규칙은 저장한 설정 파일의 행을 따릅니다.381`/permissions`를 통해 추가한 규칙은 저장한 설정 파일에 해당하는 행을 따릅니다.

382 382 

383로컬 설정 규칙은 v2.1.211 이상에서 Claude Code가 [파일을 저장하는](#permission-system) 저장소 루트가 아닌 세션의 [기본 작업 디렉터리](#working-directories)에 앵커됩니다. 저장소 루트에서 시작된 세션에서 두 디렉터리는 동일합니다. [worktree](/docs/ko/worktrees) 세션에서 `Edit(/src/**)`와 같은 공유 규칙은 해당 worktree의 자체 `src/` 디렉터리와 일치합니다.383v2.1.211 이상에서 로컬 설정 규칙은 Claude Code가 [파일을 저장하는](#permission-system) 저장소 루트가 아니라 세션의 [기본 작업 디렉터리](#working-directories)를 기준으로 고정됩니다. 저장소 루트에서 시작한 세션에서는 두 디렉터리가 같습니다. [worktree](/docs/ko/worktrees) 세션에서는 `Edit(/src/**)` 같은 공유 규칙이 해당 워크트리 자체의 `src/` 디렉터리와 매칭됩니다.

384 384 

385사용자 설정의 `Read(/secrets/**)`와 같은 deny 규칙은 프로젝트의 `secrets` 디렉터리가 아니라 `~/.claude/secrets/**`를 차단합니다. 모든 프로젝트 내에서 적용되는 사용자 설정의 규칙을 작성하려면 `//` 절대 경로 또는 `~/` 홈 상대 경로를 대신 사용합니다.385사용자 설정의 `Read(/secrets/**)` 같은 거부 규칙은 프로젝트의 `secrets` 디렉터리가 아니라 `~/.claude/secrets/**`를 차단합니다. 모든 프로젝트 내부에 적용되는 규칙을 사용자 설정에 작성하려면 대신 `//` 절대 경로나 `~/` 홈 상대 경로를 사용하십시오.

386 386 

387Windows에서 경로는 일치하기 전에 POSIX 형식으로 정규화됩니다. `C:\Users\alice`는 `/c/Users/alice`가 되므로 `//c/**/.env`를 사용하여 해당 드라이브의 어디든 `.env` 파일과 일치시킵니다. 모든 드라이브에서 일치시키려면 `//**/.env`를 사용합니다.387Windows에서는 경로가 매칭 전에 POSIX 형식으로 정규화됩니다. `C:\Users\alice`는 `/c/Users/alice`가 되므로, 해당 드라이브 어디에 있든 `.env` 파일과 매칭하려면 `//c/**/.env`를 사용하십시오. 모든 드라이브에 걸쳐 매칭하려면 `//**/.env`를 사용하십시오.

388 388 

389예시:389예시:

390 390 

391* `Edit(/docs/**)`: `<primary working directory>/docs/`의 편집이며, `/docs/` 또는 `<primary working directory>/.claude/docs/`는 아님391* `Edit(/docs/**)`: `<primary working directory>/docs/`에서의 편집이며, `/docs/`나 `<primary working directory>/.claude/docs/`는 해당하지 않습니다

392* `Read(~/.zshrc)`: 홈 디렉터리의 `.zshrc` 읽기392* `Read(~/.zshrc)`: 홈 디렉터리의 `.zshrc`를 읽습니다

393* `Edit(//tmp/scratch.txt)`: 절대 경로 `/tmp/scratch.txt` 편집393* `Edit(//tmp/scratch.txt)`: 절대 경로 `/tmp/scratch.txt`를 편집합니다

394* `Read(src/**)`: allow 규칙으로 `<current-directory>/src/`에서만 읽기; deny 또는 ask 규칙으로 현재 디렉터리 아래 어느 깊이에서나 `src` 디렉터리와 일치394* `Read(src/**)`: 허용 규칙으로는 `<current-directory>/src/`에서만 읽고, 거부 또는 확인 규칙으로는 현재 디렉터리 아래 모든 깊이의 `src` 디렉터리와 매칭됩니다

395 395 

396규칙은 해당 앵커 아래의 파일만 일치합니다. 그 범위 내에서 일치 깊이는 패턴 형태와 단일 세그먼트 디렉터리 패턴의 경우 아래에서 설명하는 규칙 유형에 따라 달라집니다. 베어 파일명은 gitignore 의미론을 따르고 어느 깊이에서나 일치하므로 `Read(.env)` 및 `Read(**/.env)`는 동등합니다:396규칙은 고정 기준 아래의 파일과만 매칭됩니다. 그 범위 안에서 매칭 깊이는 패턴 형태에 따라, 그리고 단일 세그먼트 디렉터리 패턴의 경우 아래에서 설명하는 규칙 유형에 따라 달라집니다. 파일 이름만 있는 패턴은 gitignore 의미 체계를 따르며 모든 깊이에서 매칭되므로, `Read(.env)`와 `Read(**/.env)`는 동등합니다.

397 397 

398| Deny 규칙 | 차단 | 차단하지 않음 |398| 거부 규칙 | 차단 대상 | 차단하지 않는 대상 |

399| - | - | - |399| - | - | - |

400| `Read(.env)` 또는 `Read(**/.env)` | 현재 디렉터리 또는 그 아래의 모든 `.env` | 상위 디렉터리 또는 다른 프로젝트의 `.env` |400| `Read(.env)` 또는 `Read(**/.env)` | 현재 디렉터리 또는 그 아래의 모든 `.env` | 상위 디렉터리나 다른 프로젝트의 `.env` |

401| `Read(//**/.env)` | 파일 시스템의 어디든 모든 `.env` | 없음; 규칙은 파일 시스템 루트에 앵커됨 |401| `Read(//**/.env)` | 파일 시스템 어디에 있든 모든 `.env` | 없음. 규칙이 파일 시스템 루트에 고정되어 있습니다 |

402 402 

403`src/**`와 같은 단일 디렉터리 세그먼트를 가진 상대 패턴은 규칙 유형에 따라 다른 깊이에서 일치합니다:403`src/**`처럼 디렉터리 세그먼트가 하나인 상대 패턴은 규칙 유형에 따라 다른 깊이에서 매칭됩니다.

404 404 

405* **Allow 규칙**: `Edit(src/**)`는 `<cwd>/src` 및 그 아래의 파일만 일치합니다. 디렉터리 이름을 어느 깊이에서나 허용하려면 `Edit(**/src/**)`를 작성합니다.405* **허용 규칙**: `Edit(src/**)`는 `<cwd>/src`와 그 아래의 파일과만 매칭됩니다. 모든 깊이의 디렉터리 이름을 허용하려면 `Edit(**/src/**)`를 작성하십시오.

406* **Deny 및 ask 규칙**: `Read(secrets/**)`는 현재 디렉터리 아래 어느 깊이에서나 `secrets`라는 디렉터리와 일치하므로 규칙은 중첩된 복사본에도 적용됩니다.406* **거부 및 확인 규칙**: `Read(secrets/**)`는 현재 디렉터리 아래 모든 깊이에 있는 `secrets`라는 이름의 디렉터리와 매칭되므로, 규칙이 중첩된 사본에도 적용됩니다.

407 407 

408다른 모든 패턴 형태는 모든 규칙 유형에서 동일한 깊이에서 일치합니다: `Edit(/src/**)` 및 `Edit(src/components/**)`는 앵커된 위치에서만 일치하고, `Edit(**/src/**)`는 어느 깊이에서나 일치합니다.408그 밖의 모든 패턴 형태는 모든 규칙 유형에서 같은 깊이로 매칭됩니다. `Edit(/src/**)`와 `Edit(src/components/**)`는 고정된 위치에서만 매칭되고, `Edit(**/src/**)`는 모든 깊이에서 매칭됩니다.

409 409 

410다음 예제는 최상위 `src/` 디렉터리와 `vendor/` 아래의 중첩된 복사본이 있는 프로젝트에 대해 각 패턴 형태를 보여줍니다:410다음 예시는 최상위 `src/` 디렉터리와 `vendor/` 아래에 중첩된 사본이 있는 프로젝트에 각 패턴 형태를 적용한 결과를 보여 줍니다.

411 411 

412```text theme={null}412```text theme={null}

413<current-directory>/413<current-directory>/


419 └── lib.js419 └── lib.js

420```420```

421 421 

422| 규칙 | `src/app.ts` 일치 | `vendor/pkg/src/lib.js` 일치 |422| 규칙 | `src/app.ts`와 매칭 | `vendor/pkg/src/lib.js`와 매칭 |

423| :- | :- | :- |423| :- | :- | :- |

424| allow 규칙으로서의 `Edit(src/**)` | 예 | 아니오 |424| 허용 규칙으로서의 `Edit(src/**)` | 예 | 아니요 |

425| deny 또는 ask 규칙으로서의 `Edit(src/**)` | 예 | 예 |425| 거부 또는 확인 규칙으로서의 `Edit(src/**)` | 예 | 예 |

426| 모든 규칙 유형의 `Edit(/src/**)` | 예 | 아니오 |426| 모든 규칙 유형에서의 `Edit(/src/**)` | 예 | 아니요 |

427| 모든 규칙 유형의 `Edit(**/src/**)` | 예 | 예 |427| 모든 규칙 유형에서의 `Edit(**/src/**)` | 예 | 예 |

428 428 

429> [!NOTE]429> [!NOTE]

430>430>

431> gitignore 패턴에서 `*`는 단일 경로 세그먼트 내에서 일치하고 패턴의 어느 위치에나 나타날 수 있으며, `**`는 디렉터리 전체에서 일치합니다.431> gitignore 패턴에서 `*`는 단일 경로 세그먼트 내에서 매칭되며 패턴의 어느 위치에나 올 수 있고, `**`는 디렉터리를 가로질러 매칭됩니다.

432 432 

433"예, 다시 묻지 않기"로 파일 경로를 승인하면 Claude Code는 `[`, `]` 및 `*`와 같은 gitignore 패턴 문자를 해당 경로에서 이스케이프하므로 생성된 규칙은 승인한 리터럴 경로와만 일치합니다. 직접 작성한 규칙은 이스케이프되지 않습니다.433"Yes, and don't ask again"으로 파일 경로를 승인하면, Claude Code는 해당 경로의 `[`, `]`, `*` 같은 gitignore 패턴 문자를 이스케이프하므로, 생성된 규칙은 승인한 리터럴 경로와만 매칭됩니다. 직접 작성한 규칙은 이스케이프되지 않습니다.

434 434 

435경로에 괄호를 이스케이프할 필요는 없으므로 `Edit(./Finance (2024)/**)` 는 `Finance (2024)` 폴더와 일치합니다.435경로의 괄호는 이스케이프할 필요가 없으므로, `Edit(./Finance (2024)/**)`는 표기된 그대로 `Finance (2024)` 폴더와 매칭됩니다.

436 436 

437경로가 gitignore 패턴으로 사용할 수 없는 deny 또는 ask 규칙은 여전히 정확한 경로를 보호합니다. 사용할 수 없는 패턴을 가진 allow 규칙은 아무것도 승인하지 않습니다.437경로를 gitignore 패턴으로 사용할 수 없는 거부 또는 확인 규칙도 해당 정확한 경로는 여전히 보호합니다. 사용할 수 없는 패턴이 있는 허용 규칙은 아무것도 승인하지 않습니다.

438 438 

439deny 또는 ask 패턴이 `!`로 시작하는 것은 gitignore 부정입니다. 이는 이전에 나열된 `path` 또는 `./path` 규칙에서 일치하는 경로를 제거합니다. 하나의 설정 파일의 `deny` 목록에서 `Read(*.env)` 뒤에 `Read(!sample.env)`가 오면 `.env`로 끝나는 모든 파일을 어느 깊이에서나 차단하지만 `sample.env`라는 파일은 제외합니다. 먼저 나열된 `!` 규칙은 아무것도 제거하지 않습니다.439`!`로 시작하는 거부 또는 확인 패턴은 gitignore 부정입니다. 이 패턴은 앞에 나열된 `path` 또는 `./path` 규칙에서 자신과 매칭되는 경로를 제외합니다. 하나의 설정 파일의 `deny` 목록에서 `Read(*.env)` 뒤에 `Read(!sample.env)`가 오면, 이름이 `sample.env`인 파일을 제외하고 모든 깊이에서 이름이 `.env`로 끝나는 모든 파일이 차단됩니다. 처음에 나열된 `!` 규칙은 아무것도 제외하지 않습니다.

440 440 

441제거는 동일한 소스의 규칙에만 도달합니다. 프로젝트 설정 또는 `--disallowedTools`의 `Read(!.env)`는 관리형 설정 또는 다른 설정 파일의 `Read(./.env)` deny를 취소하지 않습니다.441제외는 같은 소스의 규칙에만 적용됩니다. 프로젝트 설정이나 `--disallowedTools`의 `Read(!.env)`는 관리형 설정이나 다른 설정 파일의 `Read(./.env)` 거부를 취소하지 않습니다.

442 442 

443두 가지 제한이 `!` 패턴이 제거할 수 있는 것을 좁힙니다:443`!` 패턴이 제외할 수 있는 범위는 두 가지 제한으로 좁혀집니다.

444 444 

445* Claude Code는 `!` 뒤에 `/`, `~/` 또는 `//`가 따라오더라도 `!` 패턴을 현재 디렉터리에 상대적으로 읽으므로 패턴은 이러한 접두사 중 하나로 앵커된 규칙에 도달할 수 없습니다. `Read(!~/notes/public/**)`는 `Read(~/notes/**)`에서 아무것도 제거하지 않습니다.445* Claude Code는 `!` 뒤에 `/`, `~/`, `//`가 오더라도 `!` 패턴을 현재 디렉터리를 기준으로 읽으므로, 이 패턴은 해당 접두사 중 하나로 고정된 규칙에 닿을 수 없습니다. `Read(!~/notes/public/**)`는 `Read(~/notes/**)`에서 아무것도 제외하지 않습니다.

446* 제거는 규칙이 전체적으로 차단하는 디렉터리 내의 파일을 다시 열 수 없습니다. `Read(secrets/**)` 및 `Read(!secrets/public/**)`를 사용하면 Claude Code는 여전히 `secrets/public`을 나머지 `secrets`와 함께 차단합니다.446* 제외로는 규칙이 전체를 차단하는 디렉터리 안의 파일을 다시 열 수 없습니다. `Read(secrets/**)`와 `Read(!secrets/public/**)`가 있으면, Claude Code는 `secrets`의 나머지 부분과 함께 `secrets/public`도 계속 차단합니다.

447 447 

448#### 심볼릭 링크448#### 심볼릭 링크

449 449 

450Claude가 요청한 파일 경로가 심볼릭 링크를 거칠 때 권한 확인은 두 경로를 포함합니다: Claude가 요청한 경로와 이것이 해결되는 파일입니다. 이는 macOS, Linux 및 Windows의 심볼릭 링크와 Windows의 디렉터리 접합에 적용됩니다.450Claude가 요청한 파일 경로가 심볼릭 링크를 거치는 경우, 권한 검사는 Claude가 요청한 경로와 그 경로가 해석되는 파일이라는 두 경로를 대상으로 합니다. 이는 macOS, Linux, Windows의 심볼릭 링크와 Windows의 디렉터리 정션에 적용됩니다.

451 451 

452##### 심볼릭 링크된 경로가 규칙과 일치하는 방법452##### 규칙이 심볼릭 링크 경로와 매칭되는 방식

453 453 

454Allow 및 deny 규칙은 요청된 경로와 이것이 해결되는 파일을 다르게 취급합니다:454허용 규칙과 거부 규칙은 요청된 경로와 그 경로가 해석되는 파일을 서로 다르게 취급합니다.

455 455 

456* **Allow 규칙**: 요청된 경로와 이것이 해결되는 파일이 모두 일치할 때만 적용됩니다. 허용된 디렉터리 내의 심볼릭 링크가 외부를 가리키면 규칙과 일치하지 않습니다.456* **허용 규칙**: 요청된 경로와 해석되는 파일이 모두 매칭될 때만 적용됩니다. 허용된 디렉터리 안에 있으면서 그 밖을 가리키는 심볼릭 링크를 통한 읽기는 규칙과 매칭되지 않습니다.

457* **Deny 규칙**: 요청된 경로 또는 이것이 해결되는 파일이 일치할 때 적용됩니다. 거부된 파일을 가리키는 심볼릭 링크는 자체적으로 거부됩니다. 예를 들어, `Read(./project/**)`가 허용되고 `Read(~/.ssh/**)`가 거부된 경우 `~/.ssh/id_rsa`를 가리키는 `./project/key`의 심볼릭 링크는 차단됩니다: 대상이 allow 규칙에 실패하고 deny 규칙과 일치합니다.457* **거부 규칙**: 요청된 경로 또는 해석되는 파일 중 하나라도 매칭되면 적용됩니다. 거부된 파일을 가리키는 심볼릭 링크는 그 자체로 거부됩니다. 예를 들어 `Read(./project/**)`가 허용되고 `Read(~/.ssh/**)`가 거부된 경우, `~/.ssh/id_rsa`를 가리키는 `./project/key`의 심볼릭 링크는 차단됩니다. 대상이 허용 규칙을 충족하지 못하고 거부 규칙과 매칭되기 때문입니다.

458 458 

459macOS 및 Linux에서 심볼릭 링크된 디렉터리를 통해 `//`, `~/` 또는 `/` 패턴으로 작성된 deny 또는 ask 규칙은 디렉터리의 실제 위치에도 적용됩니다. 예를 들어 macOS에서 `/etc`가 `/private/etc`로 해결되는 경우 `Read(//etc/**)`는 `/private/etc/hosts`도 차단합니다. v2.1.268 이전에는 심볼릭 링크된 디렉터리를 통해 작성된 deny 또는 ask 규칙이 실제 위치로 주어진 경로에 적용되지 않았습니다.459macOS와 Linux에서 `//`, `~/`, `/` 패턴으로 심볼릭 링크된 디렉터리를 통해 작성한 거부 또는 확인 규칙은 디렉터리의 실제 위치에도 적용됩니다. 예를 들어 `/etc`가 `/private/etc`로 해석되는 macOS에서는 `Read(//etc/**)`가 `/private/etc/hosts`도 차단합니다. v2.1.268 이전에는 심볼릭 링크된 디렉터리를 통해 작성한 거부 또는 확인 규칙이 실제 위치로 지정된 경로에 적용되지 않았습니다.

460 460 

461Grep 및 Glob은 `path` 인수가 해결되는 디렉터리를 검색합니다. Claude Code는 해당 디렉터리에 `Read` deny 규칙을 적용합니다.461Grep과 Glob은 `path` 인수가 해석되는 디렉터리를 검색합니다. Claude Code는 해당 디렉터리에 `Read` 거부 규칙을 적용합니다.

462 

463##### 심볼릭 링크를 통한 첨부

464 

465`Read` 거부 규칙은 다음 첨부도 포함하며, 각각을 지정된 경로 또는 해석되는 파일 중 하나와 매칭합니다. 규칙과 매칭되는 첨부는 Claude Code가 대화에서 제외합니다.

466 

467* **`@`-멘션**: 프롬프트에서 멘션한 파일 또는 디렉터리. 거부된 파일은 대화에 아무것도 남기지 않으며, [디렉터리 목록](#read-and-edit)에서는 규칙이 포함하는 이름이 제외됩니다.

468* **붙여 넣은 이미지**: 터미널에서 경로를 프롬프트에 붙여 넣거나 끌어다 놓은 이미지

469* **변경된 파일**: 디스크에서 변경된 후 Claude Code가 다시 읽는 파일

470* **IDE 컨텍스트**: 연결된 IDE가 공유하는 선택 영역 및 열린 파일 컨텍스트

471 

472[`permissions.blockReadsOutsideWorkingDirectories`](/docs/ko/settings-reference#permissions-blockreadsoutsideworkingdirectories)가 켜져 있거나 [`--restricted`](/docs/ko/cli-reference#cli-flags) 세션인 경우, 해당 설정이나 플래그가 Claude의 파일 읽기를 거부하는 경로에서 온 첨부도 제외됩니다.

473 

474`@`-멘션한 파일 대신 다음 줄이 표시되면, 예를 들어 심볼릭 링크가 루프를 형성하는 등의 이유로 Claude Code가 경로가 어디로 이어지는지 파악하지 못했다는 뜻입니다.

475 

476```text theme={null}

477Referenced <path> (not read: could not be examined)

478```

479 

480이 경우 Claude는 대신 파일 도구로 경로를 읽도록 안내받으며, Claude Code가 경로를 검사할 시간이 부족했을 뿐이라면 이 방법이 성공할 수 있습니다.

481 

482경로의 심볼릭 링크가 해석되지 않으면 해당 읽기도 [거부](/docs/ko/errors#refusing-after-a-symlink-changed)되므로, 디스크의 링크를 수정하거나 해석되는 경로로 파일을 `@`-멘션하십시오.

462 483 

463##### 심볼릭 링크를 통한 쓰기484##### 심볼릭 링크를 통한 쓰기

464 485 

465Claude가 편집하거나 쓰려고 하는 경로가 자체적으로 심볼릭 링크인 경우 Edit 및 Write 도구는 [쓰기를 거부하고 Claude를 링크의 대상으로 지시합니다](/docs/ko/errors#refusing-after-a-symlink-changed).486Claude가 편집하거나 쓰려는 경로 자체가 심볼릭 링크인 경우, Edit 및 Write 도구는 [쓰기를 거부하고 Claude에게 링크의 대상을 안내합니다](/docs/ko/errors#refusing-after-a-symlink-changed).

466 487 

467쓰기는 파일로의 경로에 있는 디렉터리가 심볼릭 링크이거나 Bash 또는 PowerShell 명령이 쓰기를 수행할 때 심볼릭 링크를 통과할 수 있습니다. 이러한 쓰기의 경우 쓰기가 해결되는 파일이 [작업 디렉터리](#working-directories) 및 [보호된 경로](/docs/ko/permission-modes#protected-paths)에 상대적으로 어디에 있는지에 따라 달라집니다:488파일로 가는 경로상의 디렉터리가 심볼릭 링크이거나 Bash 또는 PowerShell 명령이 쓰기를 수행하는 경우에는 쓰기가 여전히 심볼릭 링크를 통과할 수 있습니다. 이러한 쓰기의 결과는 쓰기가 해석되는 파일이 [작업 디렉터리](#working-directories) 및 [보호된 경로](/docs/ko/permission-modes#protected-paths)에 대해 어디에 있는지에 따라 달라집니다.

468 489 

469* **작업 디렉터리 외부로 해결**: 요청된 경로가 작업 디렉터리 내에 있고 이것이 해결되는 파일이 아닐 때 [`acceptEdits` 모드](/docs/ko/permission-modes#auto-approve-file-edits-with-acceptedits-mode)에서 쓰기가 자동 승인되지 않습니다. [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서 allow 규칙이 쓰기를 승인하지 않는 한 분류기가 결정하는 대신 프롬프트가 표시됩니다. 프롬프트는 쓰기가 해결되는 경로의 이름을 지정합니다.490* **작업 디렉터리 밖으로 해석되는 경우**: 요청된 경로는 작업 디렉터리 안에 있지만 해석되는 파일은 그렇지 않으면, [`acceptEdits` 모드](/docs/ko/permission-modes#auto-approve-file-edits-with-acceptedits-mode)에서 쓰기가 자동 승인되지 않습니다. [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서는 허용 규칙이 쓰기를 승인하지 않는 한, 분류기가 결정하는 대신 사용자에게 확인을 요청합니다. 프롬프트에는 쓰기가 해석되는 경로가 표시됩니다.

470* **요청된 경로가 이름을 지정하지 않는 보호된 경로로 해결**: [보호된 경로 테이블](/docs/ko/permission-modes#protected-paths)은 각 권한 모드에 대한 결과를 제공하지만, 테이블이 쓰기를 분류기로 라우팅하는 경우 이 쓰기는 대신 프롬프트합니다.491* **요청된 경로가 지정하지 않은 보호된 경로로 해석되는 경우**: [보호된 경로 표](/docs/ko/permission-modes#protected-paths)에 각 권한 모드별 결과가 나와 있습니다. 단, 표에서 쓰기를 분류기로 보내는 경우에는 이 쓰기가 대신 사용자에게 확인을 요청합니다.

471 492 

472##### 해결할 수 없거나 변경되는 경로493##### 해석할 수 없거나 변경되는 경로

473 494 

474Claude Code가 경로가 디스크의 어디로 이어지는지 결정할 수 없을 때(예: 경로의 심볼릭 링크가 루프를 형성하는 경우) Read, Edit 및 Write 도구는 [작업을 거부합니다](/docs/ko/errors#refusing-after-a-symlink-changed).495예를 들어 경로상의 심볼릭 링크가 루프를 형성하여 Claude Code가 경로가 디스크의 어디로 이어지는지 판단할 수 없으면, Read, Edit, Write 도구는 [작업을 거부합니다](/docs/ko/errors#refusing-after-a-symlink-changed).

475 496 

476도구가 승인된 파일을 열 때 [경로가 여전히 권한 확인이 승인한 위치로 해결되는지 확인합니다](/docs/ko/errors#refusing-after-a-symlink-changed).497이후 도구가 승인된 파일을 열 때, [경로가 여전히 권한 검사에서 승인된 위치로 해석되는지 확인합니다](/docs/ko/errors#refusing-after-a-symlink-changed).

477 498 

478#### 네트워크 경로499#### 네트워크 경로

479 500 

480Read, Grep, Glob과 같은 Claude의 파일 읽기 도구가 네트워크 경로에서 읽을 때 해당 읽기는 별도의 권한 확인을 거칩니다. 네트워크 경로는 다른 컴퓨터에 도달할 수 있는 경로로, Windows에서는 `\\server\share\file`과 같은 UNC 경로이고 macOS 및 Linux에서는 `/net/fileserver/notes.txt`와 같은 `/net` 자동 마운트 경로입니다. 이러한 경로를 조회하면 이름이 지정된 호스트에 접속할 수 있으며, Windows에서는 이 접속으로 자격 증명이 호스트에 전송될 수 있습니다. 셸 명령에는 별도의 확인이 있습니다: Manual 모드에서 인수에 UNC 경로가 포함된 읽기 전용 Bash 또는 PowerShell 명령은 [Windows에서 여전히 프롬프트합니다](#read-only-commands).501Read, Grep, Glob 같은 Claude의 파일 읽기 도구가 네트워크 경로에서 읽을 때, 해당 읽기에는 별도의 권한 검사가 적용됩니다. 네트워크 경로는 다른 컴퓨터에 접근할 수 있는 경로로, Windows에서는 `\\server\share\file` 같은 UNC 경로이고, macOS와 Linux에서는 `/net/fileserver/notes.txt` 같은 `/net` 자동 마운트 경로입니다. 이러한 경로를 조회하면 경로가 가리키는 호스트에 연결될 수 있으며, Windows에서는 그 연결로 자격 증명이 호스트에 전송될 수 있습니다. 셸 명령에는 별도의 검사가 있습니다. Manual 모드에서 인수에 UNC 경로가 포함된 읽기 전용 Bash 또는 PowerShell 명령은 [Windows에서 여전히 확인을 요청합니다](#read-only-commands).

481 502 

482Claude Code v2.1.292 이상에서는 다음 각 항목이 프롬프트를 그대로 유지합니다:503Claude Code v2.1.292 이상에서는 다음 각각이 프롬프트를 그대로 유지합니다.

483 504 

484* **Allow 규칙**: `Read`처럼 도구 전체에 대한 규칙을 포함하여 규칙이 읽기를 사전 승인하지 않습니다505* **허용 규칙**: `Read`처럼 도구 전체에 대한 규칙을 포함하여, 규칙이 읽기를 사전 승인하지 않습니다

485* **PreToolUse 훅**: `"allow"`를 반환하는 [훅](#extend-permissions-with-hooks)도 프롬프트를 건너뛰지 않습니다506* **PreToolUse 훅**: `"allow"`를 반환하는 [훅](#extend-permissions-with-hooks)이 프롬프트를 건너뛰지 않습니다

486* **자동 모드**: 프롬프트가 사용자에게 표시되며, [분류기](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)가 읽기를 결정하지 않습니다507* **자동 모드**: 프롬프트가 사용자에게 전달되며, [분류기](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)가 읽기를 결정하지 않습니다

487 508 

488`dontAsk` 모드에서는 Claude Code가 프롬프트하는 대신 읽기를 거부합니다. `bypassPermissions` 모드에서, 그리고 [권한 우회](/docs/ko/permission-modes#skip-all-checks-with-bypasspermissions-mode)를 사용할 수 있는 플랜 모드의 대화형 터미널 세션에서는 이 프롬프트 없이 읽기가 실행됩니다.509`dontAsk` 모드에서는 Claude Code가 확인을 요청하는 대신 읽기를 거부합니다. `bypassPermissions` 모드, 그리고 [권한 우회](/docs/ko/permission-modes#skip-all-checks-with-bypasspermissions-mode)를 사용할 수 있는 플랜 모드의 대화형 터미널 세션에서는 이 프롬프트 없이 읽기가 실행됩니다.

489 510 

490이 프롬프트 없이 네트워크 공유의 파일을 읽으려면 먼저 공유에 로컬 경로를 부여합니다:511이 프롬프트 없이 네트워크 공유의 파일을 읽으려면 먼저 공유에 로컬 경로를 부여하십시오.

491 512 

492* **Windows**: [작업 디렉터리](#working-directories)에서 설명한 대로 공유를 드라이브 문자에 매핑하고 Claude Code를 시작할 때 `--add-dir`로 해당 드라이브를 전달합니다513* **Windows**: [작업 디렉터리](#working-directories)에서 설명하는 대로 공유를 드라이브 문자에 매핑하고, Claude Code를 시작할 때 `--add-dir`로 해당 드라이브를 전달합니다. 나중에 `/add-dir`로 추가하거나 설정 파일의 `additionalDirectories`에 나열한 드라이브 아래의 읽기는 여전히 확인을 요청합니다. `Z:`에 매핑된 공유에 대한 프롬프트를 없애려면 PowerShell에서 `claude --add-dir Z:\`로 새 세션을 시작하십시오.

493* **macOS 및 Linux**: [Working directory is a network path](/docs/ko/errors#working-directory-is-a-network-path)에서 설명한 대로 `/mnt` 또는 `/Volumes` 아래의 디렉터리와 같은 로컬 경로에 공유를 마운트하고 그곳에서 파일을 읽습니다514* **macOS 및 Linux**: [Working directory is a network path](/docs/ko/errors#working-directory-is-a-network-path)에서 설명하는 대로 `/mnt`나 `/Volumes` 아래의 디렉터리 같은 로컬 경로에 공유를 마운트하고 그곳에서 파일을 읽습니다

494 515 

495### WebFetch516### WebFetch

496 517 

497WebFetch 규칙은 `domain:` 접두사를 사용하고 요청된 URL의 호스트명과 일치합니다. 일치는 대소문자를 구분하지 않으며, `*` 와일드카드를 지원하고, 규칙과 호스트명 모두에서 후행 `.`을 제거하므로 `example.com.`과 `example.com`은 동일하게 취급됩니다.518WebFetch 규칙은 `domain:` 접두사를 사용하며 요청된 URL의 호스트 이름과 매칭됩니다. 매칭은 대소문자를 구분하지 않고, `*` 와일드카드를 지원하며, 규칙과 호스트 이름 모두에서 끝의 `.`을 제거하므로 `example.com.`과 `example.com`은 동일하게 취급됩니다.

498 519 

499* `WebFetch(domain:example.com)`은 `example.com`으로의 요청과만 일치합니다. `api.example.com`과 같은 서브도메인도 포함하려면 `WebFetch(domain:*.example.com)` 규칙을 추가합니다520* `WebFetch(domain:example.com)`은 `example.com`에 대한 요청과만 매칭됩니다. `api.example.com` 같은 하위 도메인도 포함하려면 `WebFetch(domain:*.example.com)` 규칙을 추가하십시오

500* `WebFetch(domain:*.example.com)`은 `api.example.com` 또는 `a.b.example.com`과 같은 모든 깊이의 모든 서브도메인과 일치하지만 `example.com` 자체는 일치하지 않습니다521* `WebFetch(domain:*.example.com)`은 `api.example.com`이나 `a.b.example.com`처럼 모든 깊이의 하위 도메인과 매칭되지만, `example.com` 자체와는 매칭되지 않습니다

501* `WebFetch(domain:*)`는 모든 도메인과 일치합니다. 베어 `WebFetch` 규칙과는 다릅니다. [모든 fetch 허용 또는 거부](#allow-or-deny-every-fetch)를 참조합니다522* `WebFetch(domain:*)`은 모든 도메인과 매칭됩니다. 이는 단독 `WebFetch` 규칙과 같지 않습니다. [모든 가져오기 허용 또는 거부](#allow-or-deny-every-fetch)를 참조하십시오

502 523 

503선행 `*.` 또는 베어 `*`가 아닌 다른 위치에서 와일드카드는 두 점 사이의 텍스트와만 일치합니다. `WebFetch(domain:example.*)`는 `example.org`과 일치합니다. 여기서 `*`는 `org`가 되지만 `example.evil.com`과는 일치하지 않습니다. 여기서 `*`는 `evil.com`이 되어야 하고 점을 넘어야 합니다. 이는 후행 와일드카드가 공격자가 등록할 수 있는 도메인과 일치하는 것을 방지합니다.524앞에 오는 `*.`이나 단독 `*` 이외의 위치에서 와일드카드는 두 점 사이의 텍스트와만 매칭됩니다. `WebFetch(domain:example.*)`은 `*`가 `org`가 되는 `example.org`와는 매칭되지만, `*`가 `evil.com`이 되어 점을 넘어야 하는 `example.evil.com`과는 매칭되지 않습니다. 이를 통해 끝에 오는 와일드카드가 공격자가 등록할 수 있는 도메인과 매칭되는 것을 방지합니다.

504 525 

505`WebFetch` 규칙의 와일드카드는 fetch를 일치시키기 위해 Claude Code v2.1.172 이상이 필요합니다.526`WebFetch` 규칙의 와일드카드가 가져오기와 매칭되려면 Claude Code v2.1.172 이상이 필요합니다.

506 527 

507#### 모든 fetch 허용 또는 거부528#### 모든 가져오기 허용 또는 거부

508 529 

509베어 `WebFetch` 규칙은 `domain:` 부분이 없는 도구 이름입니다(예: `"deny": ["WebFetch"]`). 이것과 `WebFetch(domain:*)`는 모든 URL을 포함하지만 Claude Code는 이들을 다르게 적용하며, `domain:` 형식만 해당 도메인을 샌드박스의 [허용 또는 거부된 도메인 목록](/docs/ko/sandboxing#network-isolation)에 추가합니다. 해당 섹션은 샌드박스가 지원하는 와일드카드 형식과 베어 `*`를 추가한 버전을 나열합니다.530단독 `WebFetch` 규칙은 `"deny": ["WebFetch"]`처럼 `domain:` 부분 없이 도구 이름만 있는 규칙입니다. 이 규칙과 `WebFetch(domain:*)`은 모두 모든 URL을 포함하지만 Claude Code는 이 둘을 다르게 적용하며, `domain:` 형태만 샌드박스의 [허용 또는 거부 도메인 목록](/docs/ko/sandboxing#network-isolation)에도 해당 도메인을 추가합니다. 해당 섹션에는 샌드박스가 따르는 와일드카드 형태와 단독 `*`가 추가된 버전이 나와 있습니다.

510 531 

511각 행은 `allow` 목록과 `deny` 목록에서 규칙이 수행하는 작업을 보여줍니다:532각 행은 규칙이 `allow` 목록과 `deny` 목록에서 어떤 동작을 하는지 보여 줍니다.

512 533 

513| 규칙 | `allow`에서 | `deny`에서 |534| 규칙 | `allow`에 있을 때 | `deny`에 있을 때 |

514| :- | :- | :- |535| :- | :- | :- |

515| `WebFetch` | Claude는 프롬프트 없이 fetch합니다. 샌드박스된 명령이 도달할 수 있는 호스트를 변경하지 않습니다. | Claude Code는 `WebFetch` 도구를 제거하므로 Claude는 fetch할 수 없습니다. 샌드박스된 명령이 도달할 수 있는 호스트를 변경하지 않습니다. |536| `WebFetch` | Claude가 확인을 요청하지 않고 가져옵니다. 샌드박스 명령이 접근할 수 있는 호스트는 변경되지 않습니다. | Claude Code가 `WebFetch` 도구를 제거하므로 Claude는 가져오기를 전혀 할 수 없습니다. 샌드박스 명령이 접근할 수 있는 호스트는 변경되지 않습니다. |

516| `WebFetch(domain:*)` | Claude는 프롬프트 없이 fetch하고, 샌드박스된 명령은 모든 호스트에 도달할 수 있습니다. | Claude Code는 도구를 유지하고 각 fetch를 거부하며, 샌드박스된 명령은 어떤 호스트에도 도달할 수 없습니다. |537| `WebFetch(domain:*)` | Claude가 확인을 요청하지 않고 가져오며, 샌드박스 명령은 모든 호스트에 접근할 수 있습니다. | Claude Code는 도구를 유지하되 각 가져오기를 거부하며, 샌드박스 명령은 어떤 호스트에도 접근할 수 없습니다. |

517 538 

518두 형식은 또한 [아티팩트](/docs/ko/artifacts)의 읽기에서 다릅니다. 아티팩트는 Artifact 도구가 claude.ai에 게시하는 페이지입니다. 베어 `WebFetch` deny 또는 ask 규칙은 이러한 읽기에 적용되지 않습니다. `claude.ai` 또는 `*.claudeusercontent.com` 콘텐츠 호스트를 포함하는 `domain:` 규칙(예: `WebFetch(domain:claude.ai)` 또는 `WebFetch(domain:*)`)은 각 읽기를 거부하거나 이전에 프롬프트합니다. [`Artifact` 규칙](/docs/ko/artifacts#disable-artifacts)도 동일하게 수행합니다.539두 형태는 Artifact 도구가 claude.ai에 게시하는 페이지인 [아티팩트](/docs/ko/artifacts)의 읽기에서도 다릅니다. 단독 `WebFetch` 거부 또는 확인 규칙은 이러한 읽기에 적용되지 않습니다. `WebFetch(domain:claude.ai)`나 `WebFetch(domain:*)`처럼 `claude.ai` 또는 `*.claudeusercontent.com` 콘텐츠 호스트를 포함하는 `domain:` 규칙은 각 읽기를 거부하거나 읽기 전에 확인을 요청합니다. [`Artifact` 규칙](/docs/ko/artifacts#disable-artifacts)도 같은 동작을 합니다.

519 540 

520규칙이 읽기를 차단할 때 거부는 규칙의 이름을 지정합니다. v2.1.268 이전에는 베어 `WebFetch` deny 규칙이 모든 아티팩트 읽기를 차단했으며, 베어 ask 규칙은 각 읽기 이전에 프롬프트했습니다.541규칙이 읽기를 차단하면 거부 메시지에 해당 규칙이 표시됩니다. v2.1.268 이전에는 단독 `WebFetch` 거부 규칙이 모든 아티팩트 읽기를 차단했고, 단독 확인 규칙은 각 읽기 전에 확인을 요청했습니다.

521 542 

522Claude가 자유롭게 fetch하도록 하면서 샌드박스 허용 목록을 그대로 유지하려면 베어 형식을 사용합니다. 이 `settings.json`이 그렇게 합니다:543샌드박스 허용 목록을 그대로 유지하면서 Claude가 자유롭게 가져오도록 하려면 단독 형태를 사용하십시오. 다음 `settings.json`이 이를 수행합니다.

523 544 

524```json theme={null}545```json theme={null}

525{546{


529}550}

530```551```

531 552 

532Claude에게 페이지를 fetch하도록 요청하면 프롬프트 없이 fetch합니다. Claude에게 샌드박스 허용 목록 외부의 호스트에 대해 [샌드박스된](/docs/ko/sandboxing) `curl`을 실행하도록 요청하면, 베어 규칙이 호스트를 허용 목록에 추가하지 않았기 때문에 Claude Code는 여전히 해당 호스트에 대해 프롬프트합니다.553Claude에게 페이지를 가져오도록 요청하면 프롬프트 없이 가져옵니다. 샌드박스 허용 목록 밖의 호스트를 대상으로 [샌드박스](/docs/ko/sandboxing) `curl`을 실행하도록 요청하면, Claude Code는 여전히 해당 호스트에 대해 확인을 요청합니다. 단독 규칙은 호스트를 허용 목록에 추가하지 않았기 때문입니다.

533 554 

534[자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서는 대신 Claude가 분류기가 검토할 수 있도록 명령의 [명령별 허용 도메인](/docs/ko/sandboxing#per-command-allowed-domains-in-auto-mode)에 호스트를 지정합니다.555[자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서는 대신 Claude가 분류기가 검토할 수 있도록 명령의 [명령별 허용 도메인](/docs/ko/sandboxing#per-command-allowed-domains-in-auto-mode)에 호스트를 지정합니다.

535 556 

536### MCP557### MCP

537 558 

538MCP 서버의 모든 도구와 일치시키려면 `mcp__<server>__*`를 작성합니다. 하나의 도구와 일치시키려면 전체 이름인 `mcp__<server>__<tool>`을 작성합니다.559MCP 서버의 모든 도구와 매칭하려면 `mcp__<server>__*`를 작성하십시오. 하나의 도구와 매칭하려면 전체 이름인 `mcp__<server>__<tool>`을 작성하십시오.

560 

561* `mcp__puppeteer`는 `puppeteer` 서버가 제공하는 모든 도구와 매칭됩니다

562* `mcp__puppeteer__*`는 와일드카드 구문을 사용하며 역시 `puppeteer` 서버의 모든 도구와 매칭됩니다

563* `mcp__puppeteer__puppeteer_navigate`는 `puppeteer` 서버가 제공하는 `puppeteer_navigate` 도구와 매칭됩니다

539 564 

540* `mcp__puppeteer`는 `puppeteer` 서버에서 제공하는 모든 도구와 일치합니다565`<server>`에는 해당 서버의 도구 이름에 나타나는 방식 그대로 서버 이름을 작성하십시오. 다음 예시는 특수 문자가 있는 이름, 플러그인의 서버, 그리고 `__`를 포함하거나 `_`로 끝나는 이름에 대해 작성할 규칙을 보여 줍니다.

541* `mcp__puppeteer__*`는 와일드카드 구문을 사용하며 `puppeteer` 서버의 모든 도구와도 일치합니다

542* `mcp__puppeteer__puppeteer_navigate`는 `puppeteer` 서버에서 제공하는 `puppeteer_navigate` 도구와 일치합니다

543 566 

544`<server>`에는 해당 서버의 도구 이름에 나타나는 형태 그대로 서버 이름을 작성합니다. 다음 예시는 특수 문자가 포함된 이름, 플러그인의 서버, `__`를 포함하거나 `_`로 끝나는 이름에 대해 작성할 규칙을 보여줍니다:567* **`.`이나 공백 같은 문자가 있는 이름**: 해당 문자는 `_`가 되므로, `my.server`로 구성한 서버의 경우 `mcp__my_server__*`를 작성합니다

568* **플러그인이 제공하는 서버**: `<server>`는 [플러그인 범위 형태](/docs/ko/mcp#plugin-provided-mcp-servers)를 취하므로, `my-plugin`이라는 플러그인의 `database-tools` 서버의 경우 `mcp__plugin_my-plugin_database-tools__*`를 작성합니다

569* **`__`를 포함하거나 `_`로 끝나는 `<server>`**: 전체 이름으로 와일드카드 형태인 `mcp__<server>__*`를 작성합니다. `reports__v2`라는 서버의 경우 `mcp__reports__v2__*`를 작성합니다. 단독 `mcp__reports__v2`와 더 짧은 `mcp__reports`는 허용 규칙으로서 해당 서버의 도구와 매칭되지 않습니다. Claude Code가 둘 다 `reports`라는 서버에 대한 규칙으로 읽기 때문입니다.

545 570 

546* **`.` 또는 공백과 같은 문자가 포함된 이름**: 해당 문자는 `_`가 되므로 `my.server`로 구성한 서버의 경우 `mcp__my_server__*`를 작성합니다571 그러나 거부 또는 확인 규칙으로서는 이 두 이름이 각각 `reports__v2` 서버의 모든 도구도 포함합니다. `reports`라는 서버만 포함하려면 `mcp__reports__<tool>` 형태로 도구마다 규칙을 하나씩 작성하거나, 서버 중 하나의 이름을 변경하십시오.

547* **플러그인이 제공하는 서버**: `<server>`는 [플러그인 범위 형식](/docs/ko/mcp#plugin-provided-mcp-servers)을 사용하므로 `my-plugin`이라는 플러그인의 `database-tools` 서버의 경우 `mcp__plugin_my-plugin_database-tools__*`를 작성합니다

548* **`__`를 포함하거나 `_`로 끝나는 `<server>`**: 전체 이름으로 와일드카드 형식 `mcp__<server>__*`를 작성합니다. `reports__v2`라는 서버의 경우 `mcp__reports__v2__*`를 작성합니다. 베어 `mcp__reports__v2`와 더 짧은 `mcp__reports`는 allow 규칙으로서 해당 서버의 도구와 일치하지 않습니다. Claude Code가 둘 다 `reports`라는 서버에 대한 규칙으로 읽기 때문입니다

549 572 

550조직이 [claude.ai 커넥터](/docs/ko/mcp#organization-controls-on-connector-tools) 도구를 `ask`로 설정한 경우, 해당 설정이 세션의 Claude Code에 도달하면 해당 도구에 대한 allow 규칙은 적용되지 않습니다: Claude Code는 `auto` 및 `bypassPermissions` 모드에서도 모든 호출에 대해 프롬프트합니다. 절대 프롬프트하지 않는 `dontAsk` 모드에서는 Claude Code가 호출을 거부합니다. 커넥터에서 Claude Code가 자체적으로 가져오는 도구는 `mcp__claude_ai_<server>__<tool>`로 나타납니다.573조직에서 [claude.ai 커넥터](/docs/ko/mcp#organization-controls-on-connector-tools) 도구를 `ask`로 설정했고 그 설정이 세션의 Claude Code에 전달되는 경우, 해당 도구에 대한 허용 규칙은 적용되지 않습니다. Claude Code는 `auto` 및 `bypassPermissions` 모드에서도 모든 호출에 대해 확인을 요청합니다. 확인을 요청하지 않는 `dontAsk` 모드에서는 Claude Code가 대신 호출을 거부합니다. Claude Code가 직접 가져오는 커넥터의 도구는 `mcp__claude_ai_<server>__<tool>`로 표시됩니다.

551 574 

552Claude Desktop 앱의 [Cowork](https://claude.com/docs/cowork/overview) 세션에서 Claude는 기본 제공 `Bash` 도구 대신 Cowork의 `mcp__workspace__bash` 도구를 통해 셸 명령을 실행하고, Cowork는 마찬가지로 웹 fetch를 위해 `mcp__workspace__web_fetch`를 제공합니다. Claude Code는 또한 전체 `Bash` 또는 `WebFetch` 도구의 이름을 지정하는 deny 규칙을 이러한 Cowork 도구에 적용하므로 관리형 `Bash` deny 규칙은 Claude가 Cowork에서 셸 명령을 실행하는 것을 중지합니다. Claude Code가 이러한 호출을 차단할 때 메시지는 Cowork 도구의 이름을 지정합니다: `Permission to use mcp__workspace__bash has been denied.` Allow 규칙은 이월되지 않습니다: Claude Code는 절대 `Bash` allow 규칙을 `mcp__workspace__bash`에 적용하지 않습니다.575Claude Desktop 앱의 [Cowork](https://claude.com/docs/cowork/overview) 세션에서 Claude는 내장 `Bash` 도구 대신 Cowork의 `mcp__workspace__bash` 도구를 통해 셸 명령을 실행하며, Cowork는 마찬가지로 웹 가져오기를 위해 `mcp__workspace__web_fetch`를 제공합니다. Claude Code는 `Bash` 또는 `WebFetch` 도구 전체를 지정하는 거부 규칙을 이러한 Cowork 도구에도 적용하므로, 관리형 `Bash` 거부 규칙은 Claude가 Cowork에서 셸 명령을 실행하지 못하도록 막습니다. Claude Code가 이러한 호출을 차단하면 메시지에 Cowork 도구가 표시됩니다: `Permission to use mcp__workspace__bash has been denied.` 허용 규칙은 이어지지 않습니다. Claude Code는 `Bash` 허용 규칙을 `mcp__workspace__bash`에 절대 적용하지 않습니다.

553 576 

554### Agent (서브에이전트)577### Agent (서브에이전트)

555 578 

556`Agent(AgentName)` 규칙을 사용하여 Claude가 사용할 수 있는 [서브에이전트](/docs/ko/sub-agents)를 제어합니다:579`Agent(AgentName)` 규칙을 사용하여 Claude가 사용할 수 있는 [서브에이전트](/docs/ko/sub-agents)를 제어합니다.

557 580 

558* `Agent(Explore)`는 Explore 서브에이전트와 일치합니다581* `Agent(Explore)`는 Explore 서브에이전트와 매칭됩니다

559* `Agent(Plan)`은 Plan 서브에이전트와 일치합니다582* `Agent(Plan)`은 Plan 서브에이전트와 매칭됩니다

560* `Agent(my-custom-agent)`는 `my-custom-agent`라는 사용자 정의 서브에이전트와 일치합니다583* `Agent(my-custom-agent)`는 `my-custom-agent`라는 이름의 사용자 지정 서브에이전트와 매칭됩니다

561 584 

562이러한 규칙을 설정의 `deny` 배열에 추가하거나 `--disallowedTools` CLI 플래그를 사용하여 특정 에이전트를 비활성화합니다. Explore 에이전트를 비활성화하려면:585특정 에이전트를 비활성화하려면 설정의 `deny` 배열에 이러한 규칙을 추가하거나 `--disallowedTools` CLI 플래그를 사용하십시오. Explore 에이전트를 비활성화하려면 다음과 같이 합니다.

563 586 

564```json theme={null}587```json theme={null}

565{588{


571 594 

572### Cd595### Cd

573 596 

574`Cd` 규칙은 [`/cd` 명령](/docs/ko/commands)이 세션을 이동할 수 있는 디렉터리를 제어합니다. `Cd`는 모델 호출 가능 도구가 아닙니다: Claude는 이를 호출할 수 없으며 규칙은 사용자가 직접 `/cd`를 실행할 때만 적용됩니다.597`Cd` 규칙은 [`/cd` 명령](/docs/ko/commands)이 세션을 이동시킬 수 있는 디렉터리를 제어합니다. `Cd`는 모델이 호출할 수 있는 도구가 아닙니다. Claude는 이를 호출할 수 없으며, 규칙은 사용자가 직접 `/cd`를 실행할 때만 적용됩니다.

575 598 

576베어 `Cd` deny 규칙은 `/cd`를 완전히 비활성화합니다. `Cd(<path-pattern>)` deny 규칙은 일치하는 대상을 차단합니다. Deny 규칙은 대상의 모든 철자를 확인하며, 이것이 해결되는 각 심볼릭 링크 홉을 포함하므로 한 경로에 대해 작성된 규칙은 그것으로 해결되는 대상도 차단합니다.599단독 `Cd` 거부 규칙은 `/cd`를 완전히 비활성화합니다. `Cd(<path-pattern>)` 거부 규칙은 매칭되는 대상을 차단합니다. 거부 규칙은 대상이 거쳐 해석되는 각 심볼릭 링크 단계를 포함하여 대상의 모든 표기를 검사하므로, 한 경로에 대해 작성된 규칙은 그 경로로 해석되는 대상도 차단합니다.

577 600 

578`Cd` allow 규칙을 추가하면 `/cd`를 허용 목록 모드로 전환합니다: 해결된 대상 디렉터리는 allow 규칙 중 하나와 일치해야 하거나 `/cd`는 거부합니다. `Cd` 규칙이 구성되지 않으면 `/cd`는 기본 동작을 유지하고 익숙하지 않은 디렉터리를 신뢰하도록 프롬프트합니다.601`Cd` 허용 규칙을 하나라도 추가하면 `/cd`가 허용 목록 모드로 전환됩니다. 해석된 대상 디렉터리가 허용 규칙 중 하나와 매칭되어야 하며, 그렇지 않으면 `/cd`가 거부합니다. `Cd` 규칙이 구성되어 있지 않으면 `/cd`는 기본 동작을 유지하며 익숙하지 않은 디렉터리를 신뢰할지 확인을 요청합니다.

579 602 

580경로 패턴은 [Read 및 Edit 규칙](#read-and-edit)의 `//`, `~/` 및 `/` 앵커를 공유하지만 일치는 gitignore 스타일이 아닌 전체 디렉터리 경로에 앵커됩니다. `*`는 정확히 하나의 경로 세그먼트와 일치하고 `**`는 세그먼트 전체에서 일치합니다. 후행 `/**`는 또한 명명된 루트와 일치합니다.603경로 패턴은 [Read 및 Edit 규칙](#read-and-edit)의 `//`, `~/`, `/` 고정 기준을 공유하지만, 매칭은 gitignore 스타일이 아니라 디렉터리 경로 전체에 고정됩니다. `*`는 정확히 하나의 경로 세그먼트와 매칭되고 `**`는 세그먼트를 가로질러 매칭됩니다. 끝에 오는 `/**`는 지정된 루트와도 매칭됩니다.

581 604 

582| 규칙 | 일치 | 일치하지 않음 |605| 규칙 | 매칭 대상 | 매칭되지 않는 대상 |

583| - | - | - |606| - | - | - |

584| `Cd(~/code/*)` | `~/code/app` | `~/code/app/src`, `~/code` |607| `Cd(~/code/*)` | `~/code/app` | `~/code/app/src`, `~/code` |

585| `Cd(~/code/**)` | `~/code` 및 그 아래의 모든 디렉터리 | `~/code` 외부의 디렉터리 |608| `Cd(~/code/**)` | `~/code`와 그 아래의 모든 디렉터리 | `~/code` 밖의 디렉터리 |

586| `Cd(**/node_modules)` | 현재 디렉터리 아래 어느 깊이에서나 모든 `node_modules` 디렉터리 | `node_modules/pkg` |609| `Cd(**/node_modules)` | 현재 디렉터리 아래 모든 깊이의 `node_modules` 디렉터리 | `node_modules/pkg` |

587 610 

588## 훅으로 권한 확장611## 훅으로 권한 확장

589 612 


593 616 

594PreToolUse 훅 결정은 권한 규칙을 우회하지 않습니다. Claude Code는 PreToolUse 훅이 반환하는 값에 관계없이 deny 및 ask 규칙을 평가합니다. 일치하는 deny 규칙은 호출을 차단하고, 일치하는 ask 규칙은 훅이 `"allow"` 또는 `"ask"`를 반환했을 때도 여전히 프롬프트합니다. 이는 [권한 관리](#manage-permissions)에서 설명한 deny 우선 우선순위를 유지하며, 관리형 설정에서 설정한 deny 규칙을 포함합니다.617PreToolUse 훅 결정은 권한 규칙을 우회하지 않습니다. Claude Code는 PreToolUse 훅이 반환하는 값에 관계없이 deny 및 ask 규칙을 평가합니다. 일치하는 deny 규칙은 호출을 차단하고, 일치하는 ask 규칙은 훅이 `"allow"` 또는 `"ask"`를 반환했을 때도 여전히 프롬프트합니다. 이는 [권한 관리](#manage-permissions)에서 설명한 deny 우선 우선순위를 유지하며, 관리형 설정에서 설정한 deny 규칙을 포함합니다.

595 618 

596이 우선순위는 설정 파일의 훅과 플러그인의 `hooks/hooks.json`에 있는 훅을 포함합니다. 설치한 [mod](/docs/ko/plugins/mods/overview)가 [`tool.check`](/docs/ko/plugins/mods/events#approve-or-refuse-a-tool-call-before-the-user-is-asked) 이벤트를 처리하면, 권한 규칙과 `PreToolUse` 훅이 결정한 후에 응답합니다. 머신에 [관리형 설정](/docs/ko/settings#check-what-your-organization-enforces)이 있거나 Team 또는 Enterprise [`/login`](/docs/ko/authentication#authentication-precedence)이 세션의 자격 증명인 경우, mod가 호출을 승인해도 다음 결과는 기본적으로 그대로 유지됩니다:619이 우선순위는 설정 파일의 훅과 플러그인의 `hooks/hooks.json`에 있는 훅을 포함합니다. 설치한 [mod](/docs/ko/plugins/mods/overview)가 [`tool.check`](/docs/ko/plugins/mods/events#approve-or-refuse-a-tool-call-before-the-user-is-asked) 이벤트를 처리하면, `PreToolUse` 훅이 실행된 후에 응답합니다. 머신에 [관리형 설정](/docs/ko/settings#check-what-your-organization-enforces)이 있거나 Team 또는 Enterprise [`/login`](/docs/ko/authentication#authentication-precedence)이 세션의 자격 증명인 경우, mod가 호출을 승인해도 다음 결과는 기본적으로 그대로 유지됩니다:

597 620 

598* deny 규칙이 거부하는 호출은 계속 거부되며, 조직에서 이를 변경할 수 있습니다.621* deny 규칙이 거부하는 호출은 계속 거부되며, 조직에서 이를 변경할 수 있습니다.

599* ask 규칙이 확인을 요청할 호출은 여전히 확인을 요청합니다.622* ask 규칙이 확인을 요청할 호출은 여전히 확인을 요청합니다.

Details

211| `$.ui.status(text)` | 변경할 때까지 유지되는 프롬프트 아래의 한 줄입니다. `⚠ my-mod: checks: 3 passing`처럼 `⚠`와 mod 이름으로 시작합니다. |211| `$.ui.status(text)` | 변경할 때까지 유지되는 프롬프트 아래의 한 줄입니다. `⚠ my-mod: checks: 3 passing`처럼 `⚠`와 mod 이름으로 시작합니다. |

212| `$.ui.toast(text)` | mod 이름과 함께 표시되며 몇 초 후 사라지는 토스트 알림입니다. [전체 화면 렌더링](/docs/ko/fullscreen)에서는 오른쪽 상단의 상자로, 클래식 렌더러에서는 프롬프트 아래 오른쪽의 한 줄로 표시됩니다. |212| `$.ui.toast(text)` | mod 이름과 함께 표시되며 몇 초 후 사라지는 토스트 알림입니다. [전체 화면 렌더링](/docs/ko/fullscreen)에서는 오른쪽 상단의 상자로, 클래식 렌더러에서는 프롬프트 아래 오른쪽의 한 줄로 표시됩니다. |

213| `$.ui.log(text)` | Claude가 읽지 않는 트랜스크립트의 흐린 줄입니다. `● my-mod: build finished`처럼 `●`와 mod 이름으로 시작합니다. |213| `$.ui.log(text)` | Claude가 읽지 않는 트랜스크립트의 흐린 줄입니다. `● my-mod: build finished`처럼 `●`와 mod 이름으로 시작합니다. |

214| `$.ui.notify(text)` | Claude Code 외부에서 사용자의 터미널이 보내는 알림으로, 사용자의 [`preferredNotifChannel`](/docs/ko/settings-reference#preferrednotifchannel) 설정에 따른 방식으로 전송됩니다. 비어 있지 않은 `{ title }`을 전달하지 않으면 mod 이름이 제목이 되며, 전달하면 지정한 그대로 표시됩니다. |

215 

216`$.ui.notify`는 이 중 응답을 반환하는 유일한 호출입니다. 사용자의 채널이 터미널에 알림을 기록하면 `{ isSent: true, channel }`로 resolve됩니다. `channel`은 알림을 보낸 설정 값으로, `kitty`나 `terminal_bell` 등이 있습니다. `terminal_bell` 채널은 벨을 울리며 텍스트와 제목은 모두 표시하지 않습니다.

217 

218그 외의 경우 호출은 `{ isSent: false, reason }`으로 resolve됩니다.

219 

220| `reason` | 의미 |

221| :- | :- |

222| `disabled` | 사용자가 `preferredNotifChannel`을 `notifications_disabled`로 설정했습니다 |

223| `no-channel` | 설정이 `auto`이며 사용자의 터미널에 Claude Code가 보낼 수 있는 알림이 없습니다 |

224| `no-surface` | 세션에 터미널이 없습니다. `-p` 실행, Agent SDK, 데스크톱 앱, VS Code 확장 프로그램, 클라우드 세션이 이에 해당합니다. mod가 로드되는 중, 즉 세션이 시작되기 전에 수행한 호출과 Claude Code가 종료되는 중에 수행한 호출에 대한 응답이기도 합니다 |

225| `refused` | `ui.notify`에 대한 다른 mod의 훅이 Claude Code 대신 응답하고 알림을 보내지 않았습니다 |

226 

227`text`가 문자열이 아니거나, `ui.notify`에 대한 다른 mod의 훅이 `{ deny }`를 반환하거나, 터미널에 쓰기가 실패하면 호출은 resolve되지 않고 reject됩니다.

228 

229mod는 채널을 선택할 수 없으며, Claude Code는 mod가 알림을 보내는 빈도를 제한하지 않습니다. 사용자의 설정이 유일한 스위치입니다.

230 

231호출이 실행 중인 세션에 도달하면 사용자의 [`Notification` 훅](/docs/ko/hooks#notification)이 `plugin_notification` 유형으로 실행됩니다. 이 훅은 응답이 `disabled`인 경우에도, 그리고 응답이 `no-surface`인 터미널 없는 세션에서도 실행됩니다. 세션이 시작되기 전이나 Claude Code가 종료되는 중에 수행한 호출에 대해서는 훅이 실행되지 않습니다. mod가 `$.ui.notify`를 호출한 훅은 해당 실행에서 제외되므로, 알림을 보내는 `classic.Notification` 훅이 자신의 알림에 대해 다시 호출되지 않습니다.

232 

233터미널은 알림을 표시했는지 보고하지 않으므로, `isSent: true`는 알림이 전송되었다는 의미일 뿐 사용자가 보았다는 의미는 아닙니다.

234 

235다음 예제는 메인 대화의 턴이 중단 없이 끝나면 알림을 보내고, 텍스트가 포함된 알림이 전송되지 않은 경우 토스트로 폴백합니다. 사용자의 `Notification` 훅이 먼저 실행되어 시간이 걸릴 수 있으므로, 이벤트를 전달하기 전에 알림을 기다리지 않습니다.

236 

237```javascript theme={null}

238on('turn.complete', ($, e, next) => {

239 const isMainTurn = e.agentId === undefined && !e.isAborted

240 const fallBack = () => $.ui.toast('Turn finished')

241 if (isMainTurn) {

242 $.ui.notify('Turn finished').then(sent => {

243 const hasText = sent.isSent && sent.channel !== 'terminal_bell'

244 if (!hasText) fallBack()

245 }, fallBack)

246 }

247 return next(e)

248})

249```

214 250 

215[VS Code 확장 프로그램](/docs/ko/plugins/mods/interface#draw-in-the-vs-code-extension)에서는 상태줄과 토스트가 대신 프롬프트 상자 위에 표시되고, 로그 줄은 대화에 표시됩니다.251[VS Code 확장 프로그램](/docs/ko/plugins/mods/interface#draw-in-the-vs-code-extension)에서는 상태줄과 토스트가 대신 프롬프트 상자 위에 표시되고, 로그 줄은 대화에 표시됩니다.

216 252 

Details

181 181 

182#### 사용자에게 묻기 전에 도구 호출 승인 또는 거부하기182#### 사용자에게 묻기 전에 도구 호출 승인 또는 거부하기

183 183 

184도구 호출의 실행 가능 여부를 결정하려면 Claude Code가 그 결정을 내리는 이벤트인 [`tool.check`](/docs/ko/plugins/mods/reference#tools)를 처리합니다. 이 이벤트는 권한 규칙과 설정 훅이 결정을 내린 후에 발생하며, `next(e)`는 그 결정인 `allow`, `ask`, `deny` 중 하나로 resolve됩니다. 훅은 그 결정이나 다른 결정을 반환합니다. `e.input`에는 Bash의 `command`처럼 도구의 인수가 들어 있습니다.184도구 호출의 실행 가능 여부를 결정하려면 Claude Code가 그 결정을 내리는 이벤트인 [`tool.check`](/docs/ko/plugins/mods/reference#tools)를 처리합니다.

185 185 

186고정된 명령이나 경로에는 코드가 필요 없는 `Bash(npm test)` 같은 [권한 규칙](/docs/ko/permissions#permission-rule-syntax)을 사용합니다. 현재 Git 브랜치나 다른 훅이 기록한 값처럼 그 시점의 상태에 따라 결정이 달라지는 경우에 `tool.check`를 처리합니다.186고정된 명령이나 경로에는 코드가 필요 없는 `Bash(npm test)` 같은 [권한 규칙](/docs/ko/permissions#permission-rule-syntax)을 사용합니다. 현재 Git 브랜치나 다른 훅이 기록한 값처럼 그 시점의 상태에 따라 결정이 달라지는 경우에 `tool.check`를 처리합니다.

187 187 

188* **반환할 값**: 호출을 직접 결정하려면 `{ decision: 'allow' }`나 `{ decision: 'deny', reason }` 같은 자체 객체를 반환합니다. 결정을 그대로 두려면 `await next(e)`가 제공하는 값을 반환합니다.

189* **`await next(e)`가 제공하는 값**: Claude Code 자체의 결정으로, `decision`이 `allow`, `ask`, `deny` 중 하나인 객체입니다. `next(e)`가 실행되는 동안에는 권한 프롬프트가 표시되지 않습니다.

190* **인수**: `e.input`에는 Bash의 `command`처럼 도구의 인수가 들어 있습니다

191* **`tool.check`가 발생하는 시점**: [`PreToolUse` 훅](/docs/ko/hooks#pretooluse)이 실행된 후, 그리고 권한 프롬프트, [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)의 분류기 또는 [`PermissionRequest`](/docs/ko/hooks#permissionrequest) 훅보다 먼저 발생합니다

192 

188다음 훅은 현재 브랜치가 `main`일 때 `git push`를 거부합니다.193다음 훅은 현재 브랜치가 `main`일 때 `git push`를 거부합니다.

189 194 

190```javascript theme={null}195```javascript theme={null}

191on('tool.check', { tool: 'Bash' }, async ($, e, next) => {196on('tool.check', { tool: 'Bash' }, async ($, e, next) => {

192 // What the permission rules and settings hooks decided: 'allow', 'ask', or 'deny'197 // Claude Code's own decision

193 const decided = await next(e)198 const decided = await next(e)

194 if (!e.input.command.includes('git push')) return decided199 if (!e.input.command.includes('git push')) return decided

195 const branch = await $.process.run(['git', 'branch', '--show-current'])200 const branch = await $.process.run(['git', 'branch', '--show-current'])


209>214>

210> `tool.check` 훅은 `allow`나 `ask`를 반환할 수도 있습니다. [플랜 모드](/docs/ko/permissions#hook-approvals-in-plan-mode)에서 파일 편집처럼 읽기 전용이 아닌 호출의 경우, 훅은 `next(e)`가 반환하는 결정을 더 엄격하게 만들 수는 있지만 완화할 수는 없습니다. 훅의 `allow`로 대체할 수 없는 권한 규칙과 `PreToolUse` 훅 결정은 [훅으로 권한 확장하기](/docs/ko/permissions#precedence-among-rules-hooks-and-mods)를 참조하세요.215> `tool.check` 훅은 `allow`나 `ask`를 반환할 수도 있습니다. [플랜 모드](/docs/ko/permissions#hook-approvals-in-plan-mode)에서 파일 편집처럼 읽기 전용이 아닌 호출의 경우, 훅은 `next(e)`가 반환하는 결정을 더 엄격하게 만들 수는 있지만 완화할 수는 없습니다. 훅의 `allow`로 대체할 수 없는 권한 규칙과 `PreToolUse` 훅 결정은 [훅으로 권한 확장하기](/docs/ko/permissions#precedence-among-rules-hooks-and-mods)를 참조하세요.

211 216 

217#### 도구 호출이 읽기 전용인지 확인하기

218 

219[`tool.check`](#approve-or-refuse-a-tool-call-before-the-user-is-asked) 훅에서 도구가 호출을 읽기 전용으로 보고하면 `e.isReadOnly`는 `true`입니다. 그렇지 않으면 이 필드는 `false`가 아니라 아예 존재하지 않습니다. `e.isReadOnly`에는 Claude Code v2.1.304 이상이 필요합니다.

220 

221Read, Grep, Glob, WebSearch 같은 일부 도구는 모든 호출을 읽기 전용으로 보고합니다. Bash와 MCP 도구는 다음 경우에 호출을 읽기 전용으로 보고합니다.

222 

223* **Bash**: 명령이 Claude Code의 기본 제공 [읽기 전용 명령 검사](/docs/ko/permissions#read-only-commands)를 통과하는 경우

224* **MCP 도구**: 서버가 도구의 `readOnlyHint` 어노테이션을 `true`로 설정하는 경우

225 

226이 값은 도구 자체의 보고이므로, 이 필드만으로 호출을 승인해서는 안 됩니다. 예를 들어 WebFetch와 Agent 호출은 읽기 전용으로 보고되지만, [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior)는 URL을 요청하고 [Agent](/docs/ko/tools-reference#agent-tool-behavior)는 자체 도구를 실행하는 서브에이전트를 시작합니다.

227 

228다음 훅은 읽기 전용이 아니고 아직 거부되지 않은 모든 `mcp__github__` 호출에 대해 `ask`를 반환합니다.

229 

230```javascript theme={null}

231on('tool.check', { tool: /^mcp__github__/ }, async ($, e, next) => {

232 const decided = await next(e)

233 // Read-only calls and denied calls pass through unchanged

234 if (e.isReadOnly || decided.decision === 'deny') return decided

235 return { decision: 'ask', reason: 'This tool can change the GitHub repository' }

236})

237```

238 

239#### 호출의 읽기 전용 여부로 `tool.check` 훅 필터링하기

240 

241[`e.isReadOnly`](#check-whether-a-tool-call-is-read-only)를 기준으로 훅이 처리하는 호출을 제한하려면, 읽기 전용 호출에는 [matcher](#filter-which-events-a-hook-handles)를 사용하고 나머지에는 훅 본문을 사용합니다.

242 

243* **읽기 전용 호출만**: `on('tool.check', { tool: 'Bash', isReadOnly: true }, hook)`처럼 matcher에 `isReadOnly: true`를 추가합니다

244* **읽기 전용이 아닌 호출**: [`mcp__github__` 예제](#check-whether-a-tool-call-is-read-only)처럼 훅 본문에서 `e.isReadOnly`를 검사합니다. matcher에 `isReadOnly: false`를 넣으면 훅이 실행되지 않습니다.

245 

212### 프롬프트 다시 작성하거나 내용 추가하기246### 프롬프트 다시 작성하거나 내용 추가하기

213 247 

214`prompt.submit` 훅은 턴이 시작되기 전에 각 프롬프트를 확인하므로 텍스트를 다시 작성하거나 내용을 추가할 수 있습니다. `e.text`는 입력된 내용입니다.248`prompt.submit` 훅은 턴이 시작되기 전에 각 프롬프트를 확인하므로 텍스트를 다시 작성하거나 내용을 추가할 수 있습니다. `e.text`는 입력된 내용입니다.


312* **관리형 설정의 `PreToolUse` 훅**: 첫 번째 mod의 `tool.call` 훅보다 먼저 실행됩니다. 관리형 훅이 호출을 차단하면 해당 호출에 대해 어떤 mod의 `tool.call` 훅도 실행되지 않습니다.346* **관리형 설정의 `PreToolUse` 훅**: 첫 번째 mod의 `tool.call` 훅보다 먼저 실행됩니다. 관리형 훅이 호출을 차단하면 해당 호출에 대해 어떤 mod의 `tool.call` 훅도 실행되지 않습니다.

313* **그 밖의 모든 설정 파일과 플러그인의 `hooks/hooks.json`에 있는 `PreToolUse` 훅**: Claude Code 자체 동작의 일부로서 마지막 mod가 `next`를 호출한 후에 실행됩니다. `next`를 호출하지 않고 `tool.call`에 응답하는 mod는 이 훅의 실행을 막으며, `next`를 호출하는 mod는 반환되는 결과에서 이 훅의 결정을 확인할 수 있습니다.347* **그 밖의 모든 설정 파일과 플러그인의 `hooks/hooks.json`에 있는 `PreToolUse` 훅**: Claude Code 자체 동작의 일부로서 마지막 mod가 `next`를 호출한 후에 실행됩니다. `next`를 호출하지 않고 `tool.call`에 응답하는 mod는 이 훅의 실행을 막으며, `next`를 호출하는 mod는 반환되는 결과에서 이 훅의 결정을 확인할 수 있습니다.

314 348 

315[`tool.check`](#approve-or-refuse-a-tool-call-before-the-user-is-asked)는 권한 규칙과 두 그룹의 `PreToolUse` 훅이 모두 결정을 내린 후에 발생합니다. 이러한 결정 중 `tool.check` 훅의 `allow`가 대체할 수 없는 결정을 알아보려면 [훅으로 권한 확장하기](/docs/ko/permissions#precedence-among-rules-hooks-and-mods)를 참조하십시오.349[`tool.check`](#approve-or-refuse-a-tool-call-before-the-user-is-asked)는 `PreToolUse` 훅이 실행된 후에 발생합니다. `tool.check` 훅의 `allow`가 대체할 수 없는 권한 규칙과 `PreToolUse` 훅 결정을 알아보려면 [훅으로 권한 확장하기](/docs/ko/permissions#precedence-among-rules-hooks-and-mods)를 참조하십시오.

316 350 

317### 실패한 훅 처리하기351### 실패한 훅 처리하기

318 352 

Details

306| `closeOnEscape` | Esc로 pane을 닫도록 설정 |306| `closeOnEscape` | Esc로 pane을 닫도록 설정 |

307| `holdToasts` | 터미널에서 이 pane이 표시되는 동안 토스트를 보류합니다. [대화 상자 뒤에 토스트 보류하기](#hold-toasts-behind-a-dialog)를 참조하십시오. |307| `holdToasts` | 터미널에서 이 pane이 표시되는 동안 토스트를 보류합니다. [대화 상자 뒤에 토스트 보류하기](#hold-toasts-behind-a-dialog)를 참조하십시오. |

308| `rows` | pane이 프롬프트 위에 있을 때 요청할 높이. 기본값은 공간의 3분의 1입니다. |308| `rows` | pane이 프롬프트 위에 있을 때 요청할 높이. 기본값은 공간의 3분의 1입니다. |

309| `columns` | pane이 트랜스크립트 옆에 있을 때 요청할 너비 |309| `columns` | pane이 트랜스크립트 옆에 있을 때 요청할 너비로, 최대 터미널 너비의 45%입니다. 사용자가 이 세션 또는 이전 세션에서 트랜스크립트 옆의 pane 크기를 조정한 후에는 해당 위치의 pane이 대신 사용자가 설정한 너비로 열립니다. 이 너비에도 동일한 45% 제한이 적용됩니다. |

310 310 

311[VS Code 확장](#draw-in-the-vs-code-extension)은 `rows`와 `columns`를 무시하고 pane 크기를 자체적으로 정합니다.311[VS Code 확장](#draw-in-the-vs-code-extension)은 `rows`와 `columns`를 무시하고 pane 크기를 자체적으로 정합니다.

312 312 


537| Enter | 포커스된 `Button`을 누르거나, 포커스된 `Input`을 제출하거나, `Select`에서 항목을 고릅니다 |537| Enter | 포커스된 `Button`을 누르거나, 포커스된 `Input`을 제출하거나, `Select`에서 항목을 고릅니다 |

538| 버튼의 단축키 | 해당 버튼을 누릅니다. `Input`에 포커스가 있는 동안에는 출력 가능한 모든 키가 필드로 전달됩니다. |538| 버튼의 단축키 | 해당 버튼을 누릅니다. `Input`에 포커스가 있는 동안에는 출력 가능한 모든 키가 필드로 전달됩니다. |

539| Page Up, Page Down, Home 및 End | 창이나 밴드에 표시할 수 있는 것보다 많은 행이 있으면 창이나 밴드를 스크롤합니다 |539| Page Up, Page Down, Home 및 End | 창이나 밴드에 표시할 수 있는 것보다 많은 행이 있으면 창이나 밴드를 스크롤합니다 |

540| Ctrl+X 다음 화살표 키 | 창 크기를 조정합니다. Left 또는 Up은 창에 더 많은 공간을 주고, Right 또는 Down은 그 공간을 되돌려 줍니다. |540| Ctrl+X 다음 화살표 키 | 창 크기를 조정합니다. Left 또는 Up은 창에 더 많은 공간을 주고, Right 또는 Down은 그 공간을 되돌려 줍니다. 트랜스크립트 옆에 있는 창은 터미널 너비의 45%에서 더 이상 넓어지지 않습니다. |

541| Ctrl+X 다음 X | 창의 필드 중 하나에 포커스가 있는 동안에도 창을 닫습니다 |541| Ctrl+X 다음 X | 창의 필드 중 하나에 포커스가 있는 동안에도 창을 닫습니다 |

542| Esc | 키보드 포커스를 프롬프트로 되돌립니다. `closeOnEscape: true`를 지정하면 창도 닫습니다. |542| Esc | 키보드 포커스를 프롬프트로 되돌립니다. `closeOnEscape: true`를 지정하면 창도 닫습니다. |

543 543 

Details

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

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

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

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

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

61 61 

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


68 68 

69`tool.check`에서 `e.agentId`와 `e.ceiling`을 사용하려면 Claude Code v2.1.290 이상이 필요합니다.69`tool.check`에서 `e.agentId`와 `e.ceiling`을 사용하려면 Claude Code v2.1.290 이상이 필요합니다.

70 70 

71#### `tool.check`의 `e.isReadOnly` 필드

72 

73`tool.check` 훅에서 `e.isReadOnly`는 도구가 이 호출을 읽기 전용으로 보고할 때 `true`입니다. 그렇지 않으면 이 필드는 `false`가 아니라 아예 없습니다. 이 값은 도구 자체의 보고이므로, 이 필드만으로 호출을 승인하기 전에 [도구 호출이 읽기 전용인지 확인하기](/docs/ko/plugins/mods/events#check-whether-a-tool-call-is-read-only)를 먼저 읽어 보세요.

74 

75`tool.check`에서 `e.isReadOnly`를 사용하려면 Claude Code v2.1.304 이상이 필요합니다.

76 

71### 프롬프트와 Claude가 읽는 내용77### 프롬프트와 Claude가 읽는 내용

72 78 

73프롬프트 이벤트는 사용자가 입력하는 텍스트와, 시스템 프롬프트나 리마인더처럼 Claude Code가 자체적으로 Claude에 보내는 텍스트를 다룹니다.79프롬프트 이벤트는 사용자가 입력하는 텍스트와, 시스템 프롬프트나 리마인더처럼 Claude Code가 자체적으로 Claude에 보내는 텍스트를 다룹니다.


196| 네임스페이스 | 메서드 |202| 네임스페이스 | 메서드 |

197| :- | :- |203| :- | :- |

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

199| [`$.ui`](/docs/ko/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, `focus`, `scroll`, `toast`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit` |205| [`$.ui`](/docs/ko/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, `focus`, `scroll`, `toast`, `notify`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit` |

200| [`$.command`](/docs/ko/plugins/mods/api#add-a-command) | `register`, `run`, `list` |206| [`$.command`](/docs/ko/plugins/mods/api#add-a-command) | `register`, `run`, `list` |

201| [`$.tool`](/docs/ko/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |207| [`$.tool`](/docs/ko/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |

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


266| `Svg` | SVG 문서, 최대 131,072자 | | ✓ | ✓ |272| `Svg` | SVG 문서, 최대 131,072자 | | ✓ | ✓ |

267| [`Client`](/docs/ko/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ | |273| [`Client`](/docs/ko/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ | |

268| [`Raster`](/docs/ko/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, 최대 512의 `columns`, 최대 256의 `rows`, `cells`. [색상 셀 그리드 그리기](/docs/ko/plugins/mods/interface#draw-a-grid-of-colored-cells)를 참조하십시오. | ✓ | | |274| [`Raster`](/docs/ko/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, 최대 512의 `columns`, 최대 256의 `rows`, `cells`. [색상 셀 그리드 그리기](/docs/ko/plugins/mods/interface#draw-a-grid-of-colored-cells)를 참조하십시오. | ✓ | | |

269| `Image` | 최대 2 MiB의 PNG 또는 RGBA 바이트 또는 파일 경로, 각각 최대 255의 `columns` 및 `rows`, `alt` 텍스트. | ✓ | | |275| `Image` | 최대 2 MiB의 PNG 또는 RGBA 바이트 또는 파일 경로, 각각 최대 255의 `columns` 및 `rows`, `alt` 텍스트. [이를 그리는 터미널](/docs/ko/plugins/mods/gallery#image-and-client)을 참조하십시오. | ✓ | | |

270 276 

271`Button`에 대한 추가 규칙: `action`은 Claude Code 자체의 [키보드 단축키 액션](/docs/ko/keybindings) 중 하나를 지정하며, 해당 액션에 대한 사용자의 바인딩이 코드(chord) 또는 수정자 키 조합인 경우 그 바인딩으로 버튼이 눌립니다. 밴드에 있는 버튼의 숫자 `hotkey`는 사용자가 빈 프롬프트에 해당 숫자만 입력하고 잠시 멈출 때도 실행됩니다. 하나의 그리기에서 두 버튼이 동일한 `hotkey`를 지정하면 나중의 버튼이 이를 가져갑니다. `autoFocus`는 모든 컨트롤에서 `true`만 허용하므로, 이를 끄려면 해당 prop을 생략하십시오.277`Button`에 대한 추가 규칙: `action`은 Claude Code 자체의 [키보드 단축키 액션](/docs/ko/keybindings) 중 하나를 지정하며, 해당 액션에 대한 사용자의 바인딩이 코드(chord) 또는 수정자 키 조합인 경우 그 바인딩으로 버튼이 눌립니다. 밴드에 있는 버튼의 숫자 `hotkey`는 사용자가 빈 프롬프트에 해당 숫자만 입력하고 잠시 멈출 때도 실행됩니다. 하나의 그리기에서 두 버튼이 동일한 `hotkey`를 지정하면 나중의 버튼이 이를 가져갑니다. `autoFocus`는 모든 컨트롤에서 `true`만 허용하므로, 이를 끄려면 해당 prop을 생략하십시오.

272 278 

Details

187| `prompt.fill` | `() => ({ isFilled: true })` |187| `prompt.fill` | `() => ({ isFilled: true })` |

188| `$.prompt.read` | `() => ({ value: { text: '...', cursor: 0 } })` |188| `$.prompt.read` | `() => ({ value: { text: '...', cursor: 0 } })` |

189| `$.ui.copy` | `() => ({ value: { isCopied: true } })` |189| `$.ui.copy` | `() => ({ value: { isCopied: true } })` |

190| `$.ui.notify` | `() => ({ value: { isSent: true, channel: 'terminal_bell' } })`. 텍스트는 `e.text`이고 제목은 `e.title`입니다. |

190| `$.session.messages` | `() => ({ value: [{ role: 'assistant', text: '...', toolUses: [] }] })` |191| `$.session.messages` | `() => ({ value: [{ role: 'assistant', text: '...', toolUses: [] }] })` |

191| `$.session.id`, `$.agent.list` | `() => ({ value: 'abc123' })`, `() => ({ value: [] })` |192| `$.session.id`, `$.agent.list` | `() => ({ value: 'abc123' })`, `() => ({ value: [] })` |

192| `session.send` | `() => ({ isDelivered: true })`. mod가 `{ sessionId }`를 전달했더라도 `e.to`는 문자열로 전달됩니다. |193| `session.send` | `() => ({ isDelivered: true })`. mod가 `{ sessionId }`를 전달했더라도 `e.to`는 문자열로 전달됩니다. |

Details

830 830 

831* **`Failed to load hooks from <path>: <reason>`**: `hooks/hooks.json`이 유효한 JSON이 아니거나 훅 스키마가 실패합니다. 이유는 구문 분석 또는 유효성 검사 오류의 이름을 지정합니다. 파일을 수정합니다. 플러그인을 게시하기 전에 `hooks/hooks.json`의 JSON 구문 문제를 포착하려면 셸에서 `claude plugin validate <plugin-directory>`를 실행합니다.831* **`Failed to load hooks from <path>: <reason>`**: `hooks/hooks.json`이 유효한 JSON이 아니거나 훅 스키마가 실패합니다. 이유는 구문 분석 또는 유효성 검사 오류의 이름을 지정합니다. 파일을 수정합니다. 플러그인을 게시하기 전에 `hooks/hooks.json`의 JSON 구문 문제를 포착하려면 셸에서 `claude plugin validate <plugin-directory>`를 실행합니다.

832* **`hooks path not found: <path>`**: 매니페스트의 `hooks` 필드가 플러그인 루트에 상대적으로 해당 경로에 존재하지 않는 파일의 이름을 지정합니다. 경로를 수정하거나 파일을 추가합니다.832* **`hooks path not found: <path>`**: 매니페스트의 `hooks` 필드가 플러그인 루트에 상대적으로 해당 경로에 존재하지 않는 파일의 이름을 지정합니다. 경로를 수정하거나 파일을 추가합니다.

833* **`hooks path escapes plugin directory: <path>`**: [Path escapes plugin directory](/docs/ko/errors#path-escapes-plugin-directory)를 참조합니다.

833 834 

834#### 트랜스크립트의 `hook error` 공지835#### 트랜스크립트의 `hook error` 공지

835 836 


948 949 

949Claude Code는 `plugin.json` 또는 마켓플레이스 항목의 경로를 플러그인 루트에 대해 확인했고 거기에 아무것도 찾지 못했습니다. 메시지의 경로는 확인한 절대 경로이므로 디스크의 내용과 비교합니다. 경로를 수정하거나 디렉터리를 만든 다음 `/reload-plugins`를 실행합니다.950Claude Code는 `plugin.json` 또는 마켓플레이스 항목의 경로를 플러그인 루트에 대해 확인했고 거기에 아무것도 찾지 못했습니다. 메시지의 경로는 확인한 절대 경로이므로 디스크의 내용과 비교합니다. 경로를 수정하거나 디렉터리를 만든 다음 `/reload-plugins`를 실행합니다.

950 951 

952> [!NOTE]

953>

954> v2.1.299 이전에는 이 메시지가 시작 시 `synced[0]`과 같은 태그로 레이블이 지정된 행에 나타날 수 있었습니다. 해당 행은 [claude.ai에서 동기화된](/docs/ko/plugins/loading#synced-plugins) 플러그인을 위한 것입니다. 이 메시지는 머신의 다른 Claude Code 세션이 직전에 플러그인을 업데이트하고 파일을 이동했을 때 나타났습니다. 플러그인을 로드하려면 Claude Code를 다시 시작합니다. 이러한 이유로 메시지가 나타나지 않도록 하려면 v2.1.299 이상으로 업데이트합니다.

955 

951매니페스트의 경로는 플러그인 루트에 상대적이고 `./`로 시작합니다. 플러그인 루트 외부로 확인되는 경로는 대신 `<component> path escapes plugin directory`로 보고되고 삭제됩니다.956매니페스트의 경로는 플러그인 루트에 상대적이고 `./`로 시작합니다. 플러그인 루트 외부로 확인되는 경로는 대신 `<component> path escapes plugin directory`로 보고되고 삭제됩니다.

952 957 

953### `--plugin-dir` (마켓플레이스 루트에서 `plugins/` 아래의 플러그인을 로드하지 않음)958### `--plugin-dir` (마켓플레이스 루트에서 `plugins/` 아래의 플러그인을 로드하지 않음)

Details

55요청이 [LLM gateway](/docs/ko/llm-gateway), 사용자 정의 `ANTHROPIC_BASE_URL` 또는 [`ANTHROPIC_BEDROCK_BASE_URL`](/docs/ko/env-vars)과 같은 클라우드 제공자 기본 URL 재정의를 통과할 때, 캐시된 상태는 게이트웨이가 Claude Code가 보내는 [`cache_control` 마커](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#explicit-cache-breakpoints)를 어떻게 처리하는지에 따라 다릅니다:55요청이 [LLM gateway](/docs/ko/llm-gateway), 사용자 정의 `ANTHROPIC_BASE_URL` 또는 [`ANTHROPIC_BEDROCK_BASE_URL`](/docs/ko/env-vars)과 같은 클라우드 제공자 기본 URL 재정의를 통과할 때, 캐시된 상태는 게이트웨이가 Claude Code가 보내는 [`cache_control` 마커](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#explicit-cache-breakpoints)를 어떻게 처리하는지에 따라 다릅니다:

56 56 

57* **변경되지 않은 상태로 전달**: 블록과 대화가 제공자의 자체 엔드포인트와 동일한 방식으로 캐시됩니다.57* **변경되지 않은 상태로 전달**: 블록과 대화가 제공자의 자체 엔드포인트와 동일한 방식으로 캐시됩니다.

58* **`cache_control`을 명명하는 `400` 오류로 표시된 요청 거부**: Claude Code는 마커를 블록에서 마지막 대화 메시지로 이동하여 요청을 다시 보내고 대화의 나머지 부분에서 그대로 유지합니다. 블록은 캐시되지 않은 입력으로 청구됩니다. 대화는 캐시된 상태로 유지됩니다.58* **`cache_control`을 명명하는 `400` 오류로 표시된 요청 거부**: Claude Code는 마커를 블록에서 마지막 대화 메시지로 이동하여 요청을 다시 보내고, Claude Code가 종료될 때까지 그 상태를 유지합니다. 블록은 캐시되지 않은 입력으로 청구됩니다. 대화는 캐시된 상태로 유지됩니다.

59* **성공을 반환하면서 마커 제거**: 전체 대화 기록이 매 턴마다 캐시되지 않은 입력으로 청구됩니다. 블록 형식 시스템 콘텐츠를 일반 문자열로 변환하는 게이트웨이는 동일한 방식으로 마커를 삭제합니다.59* **성공을 반환하면서 마커 제거**: 전체 대화 기록이 매 턴마다 캐시되지 않은 입력으로 청구됩니다. 블록 형식 시스템 콘텐츠를 일반 문자열로 변환하는 게이트웨이는 동일한 방식으로 마커를 삭제합니다.

60 60 

61각 제공자가 저장하고 처리하는 것에 대해서는 [data usage](/docs/ko/data-usage)를 참조하세요. 캐시가 어디에 있든 항목은 비활성 기간 후에 만료되며, 아래의 [Cache lifetime](#cache-lifetime)에서 TTL과 연장 방법을 다룹니다.61각 제공자가 저장하고 처리하는 것에 대해서는 [data usage](/docs/ko/data-usage)를 참조하세요. 캐시가 어디에 있든 항목은 비활성 기간 후에 만료되며, 아래의 [Cache lifetime](#cache-lifetime)에서 TTL과 연장 방법을 다룹니다.


109도구 정의는 시스템 프롬프트 레이어에 있으므로 요청의 도구 정의 집합이 턴 사이에 변경되면 캐시가 무효화됩니다. [어드바이저 도구](/docs/ko/advisor)를 토글하는 것은 예외입니다. 그 정의는 캐시 중단점 이후에 있으므로 `/advisor`를 활성화하거나 비활성화해도 캐시된 접두사가 그대로 유지됩니다. [MCP 서버](/docs/ko/mcp) 변경이 이를 수행하는지 여부는 [도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)이 세션의 MCP 도구를 지연하는지에 따라 달라집니다. 지원되는 모델의 기본값입니다.109도구 정의는 시스템 프롬프트 레이어에 있으므로 요청의 도구 정의 집합이 턴 사이에 변경되면 캐시가 무효화됩니다. [어드바이저 도구](/docs/ko/advisor)를 토글하는 것은 예외입니다. 그 정의는 캐시 중단점 이후에 있으므로 `/advisor`를 활성화하거나 비활성화해도 캐시된 접두사가 그대로 유지됩니다. [MCP 서버](/docs/ko/mcp) 변경이 이를 수행하는지 여부는 [도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)이 세션의 MCP 도구를 지연하는지에 따라 달라집니다. 지원되는 모델의 기본값입니다.

110 110 

111* **도구 지연됨**: Claude Code는 대화의 첫 번째 요청에서 도구 목록을 유지하므로 세션 중간에 서버가 연결되거나 연결 해제되어도 이미 캐시된 것을 방해하지 않습니다. 첫 번째 요청 후 연결을 마치는 서버는 Claude가 필요에 따라 로드하는 지연된 정의로 해당 도구를 제공합니다.111* **도구 지연됨**: Claude Code는 대화의 첫 번째 요청에서 도구 목록을 유지하므로 세션 중간에 서버가 연결되거나 연결 해제되어도 이미 캐시된 것을 방해하지 않습니다. 첫 번째 요청 후 연결을 마치는 서버는 Claude가 필요에 따라 로드하는 지연된 정의로 해당 도구를 제공합니다.

112* **도구 사전 로드됨**: 정의를 추가하면 캐시가 무효화되며, 의도적으로 제거하는 것도 마찬가지입니다. 이는 도구 검색이 [`auto` 임계값 미만이거나, 비활성화되었거나, 사용할 수 없는](/docs/ko/mcp#configure-tool-search) 경우에 적용됩니다. 예를 들어 Opus 4.5, Sonnet 4.5, Haiku 4.5보다 이전의 Google Cloud의 Agent Platform 모델, 사용자 정의 `ANTHROPIC_BASE_URL` 게이트웨이, 또는 Claude Code가 배포에서 도구 검색을 거부한다는 것을 감지한 이후의 Microsoft Foundry [Azure에서 호스팅되는 배포](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)가 이에 해당합니다.112* **도구 사전 로드됨**: 정의를 추가하면 캐시가 무효화되며, 의도적으로 제거하는 것도 마찬가지입니다. 이는 도구 검색이 [꺼져 있거나 사용할 수 없는](/docs/ko/mcp#configure-tool-search) 경우에 적용되며, 예를 들면 다음과 같습니다.

113 * Opus 4.5, Sonnet 4.5, Haiku 4.5보다 이전의 Google Cloud의 Agent Platform 모델

114 * Claude Code가 배포에서 도구 검색을 거부한다는 것을 감지한 이후의 Microsoft Foundry [Azure에서 호스팅되는 배포](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)

113 115 

114도구 검색 없이 세션 중간 서버 변경이 캐시를 무효화하는지 여부는 변경된 내용에 따라 달라집니다. 각 변경에 대해 이 표는 캐시가 유지되는지 여부와 다음 요청에서 도구 정의에 어떤 일이 발생하는지를 나타냅니다.116도구 검색 없이 세션 중간 서버 변경이 캐시를 무효화하는지 여부는 변경된 내용에 따라 달라집니다. 각 변경에 대해 이 표는 캐시가 유지되는지 여부와 다음 요청에서 도구 정의에 어떤 일이 발생하는지를 나타냅니다.

115 117 


169 171 

170### 대화 압축172### 대화 압축

171 173 

172[압축](/docs/ko/context-window#what-survives-compaction)은 메시지 기록을 요약으로 바꿉니다. 설계상 이는 대화 레이어를 무효화합니다. 다음 요청에는 이전 것과 접두사를 공유하지 않는 새로운 더 짧은 기록이 있기 때문입니다. Claude Code는 대화가 [그렇지 않았다면 변경되었을 시스템 프롬프트를 유지하면서 재개된 경우](#resuming-a-session)가 아니라면 시스템 프롬프트 레이어를 재사용합니다. 그 경우 첫 번째 압축은 현재 프롬프트로 전환되고 해당 레이어는 한 번 다시 빌드됩니다. 디스크에서 프로젝트 컨텍스트를 다시 로드하며, 세션 시작 이후 CLAUDE.md 및 메모리가 변경되지 않은 경우에만 캐시 히트합니다.174[압축](/docs/ko/context-window#what-survives-compaction)은 메시지 기록을 요약으로 바꿉니다. 설계상 이는 대화 레이어를 무효화합니다. 다음 요청에는 이전 것과 접두사를 공유하지 않는 새로운 더 짧은 기록이 있기 때문입니다. 시스템 프롬프트 레이어와 프로젝트 컨텍스트 레이어는 캐시된 상태로 유지될 수 있습니다.

173 175 

174요약을 생성하기 위해 Claude Code는 대화와 같은 시스템 프롬프트, 도구, 기록을 가진 별도의 요청을 보내고 최종 사용자 메시지로 요약 지침을 추가합니다. 캐시가 따뜻한 동안 해당 요청은 캐시에서 접두사를 읽으므로 세션 중간 `/compact`는 컨텍스트 크기가 제안하는 것의 일부 비용이 들고 대부분의 시간을 요약 생성에 소비합니다.176* **시스템 프롬프트**: [재개된 대화](#resuming-a-session)가 현재는 오래된 시스템 프롬프트를 유지하고 있는 경우가 아니라면 다음 요청은 캐시에서 이 레이어를 읽습니다. 해당 대화가 처음 압축될 때 Claude Code는 이를 현재 프롬프트로 전환하며, 다음 요청은 이 레이어의 캐시를 한 번 다시 빌드합니다.

177* **프로젝트 컨텍스트**: Claude Code는 디스크에서 이 레이어를 다시 로드합니다. 다음 요청은 세션 시작 이후 CLAUDE.md 및 메모리가 변경되지 않은 경우에만 캐시에서 이 레이어를 읽습니다.

175 178 

176[캐시 수명](#cache-lifetime)보다 긴 휴식 후에는 읽을 캐시가 남아 있지 않으므로 요약 요청은 전체 기록을 캐시되지 않은 입력으로 다시 처리합니다. 이것이 [이전 세션을 재개](/docs/ko/sessions#resume-a-session)할 때 `/compact`의 비용이 가장 많이 드는 이유입니다. 따뜻한 경우와 차가운 경우 모두에서 압축 후 턴은 훨씬 더 짧은 요약에 대해서만 대화 캐시를 다시 빌드하므로 해당 턴이 느린 부분이 아닙니다.179요약을 생성하기 위해 Claude Code는 별도의 요청을 보냅니다. 이 요청은 대화의 시스템 프롬프트, 도구, 요약 대상 기록을 반복하며, 요약 지침으로 끝납니다. 캐시가 따뜻한 동안 해당 요청은 캐시에서 접두사를 읽습니다. 그러면 세션 중간 `/compact`는 컨텍스트 크기가 제안하는 것의 일부 비용만 들고 대부분의 시간을 요약 생성에 소비합니다.

180 

181[캐시 수명](#cache-lifetime)보다 긴 휴식 후에는 읽을 캐시가 남아 있지 않으므로 요약 요청은 해당 기록을 캐시되지 않은 입력으로 다시 처리합니다. 이것이 [이전 세션을 재개](/docs/ko/sessions#resume-a-session)할 때 `/compact`의 비용이 가장 많이 드는 이유입니다. 따뜻한 경우와 차가운 경우 모두에서 압축 후 턴은 훨씬 더 짧은 요약에 대해서만 대화 캐시를 다시 빌드하므로 해당 턴이 느린 부분이 아닙니다.

177 182 

178> [!TIP]183> [!TIP]

179>184>

Details

26Remote Control을 사용하기 전에 환경이 다음 조건을 충족하는지 확인하세요:26Remote Control을 사용하기 전에 환경이 다음 조건을 충족하는지 확인하세요:

27 27 

28* **구독**: Pro, Max, Team 및 Enterprise 요금제에서 사용 가능합니다. API 키는 지원되지 않습니다. Team 및 Enterprise의 경우 Owner가 먼저 [Claude Code 관리자 설정](https://claude.ai/admin-settings/claude-code)에서 Remote Control 토글을 활성화해야 합니다.28* **구독**: Pro, Max, Team 및 Enterprise 요금제에서 사용 가능합니다. API 키는 지원되지 않습니다. Team 및 Enterprise의 경우 Owner가 먼저 [Claude Code 관리자 설정](https://claude.ai/admin-settings/claude-code)에서 Remote Control 토글을 활성화해야 합니다.

29* **사용자 지정 역할**: Enterprise 조직에서 [사용자 지정 역할](https://support.claude.com/en/articles/13930452)로 액세스를 관리하는 경우, 역할에 클라우드 세션 권한과 **Claude Code remote control** 권한이 모두 부여되어 있어야 합니다. 둘 중 하나라도 없으면 Remote Control을 시작할 때 [`Remote Control is disabled by your organization's policy`](#remote-control-is-disabled-by-your-organizations-policy)가 표시됩니다. Owner에게 역할을 확인하고 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles)에서 누락된 권한을 추가해 달라고 요청하세요.

29* **인증**: `claude`를 실행하고 아직 로그인하지 않았다면 `/login`을 사용하여 claude.ai를 통해 로그인하세요. 적격 로그인이 없으면 `claude remote-control`은 오류로 종료되고, `claude --remote-control`은 여전히 대화형 세션을 시작하며 시작 직후 Remote Control 실패 알림을 표시합니다.30* **인증**: `claude`를 실행하고 아직 로그인하지 않았다면 `/login`을 사용하여 claude.ai를 통해 로그인하세요. 적격 로그인이 없으면 `claude remote-control`은 오류로 종료되고, `claude --remote-control`은 여전히 대화형 세션을 시작하며 시작 직후 Remote Control 실패 알림을 표시합니다.

30* **API 엔드포인트**: 다음 구성 중 어느 것도 사용할 수 없습니다:31* **API 엔드포인트**: 다음 구성 중 어느 것도 사용할 수 없습니다:

31 * Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry를 사용합니다.32 * Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry를 사용합니다.


33 * enterprise [Claude apps gateway](/docs/ko/claude-apps-gateway)를 통해 로그인합니다.34 * enterprise [Claude apps gateway](/docs/ko/claude-apps-gateway)를 통해 로그인합니다.

34* **기능 플래그 평가**: [환경 변수를 설정하여 기능 플래그 평가를 비활성화](/docs/ko/env-vars#features-that-need-feature-flag-fetching)하는 경우, Remote Control의 가용성은 어느 것을 설정했는지에 따라 달라집니다:35* **기능 플래그 평가**: [환경 변수를 설정하여 기능 플래그 평가를 비활성화](/docs/ko/env-vars#features-that-need-feature-flag-fetching)하는 경우, Remote Control의 가용성은 어느 것을 설정했는지에 따라 달라집니다:

35 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 또는 `DISABLE_GROWTHBOOK`을 설정하면 Remote Control을 사용할 수 없습니다. Remote Control을 사용하려면 셸 환경이나 [`settings.json` 파일](/docs/ko/settings-reference#all-settings)의 `env` 블록에서 변수가 설정된 곳 어디든 설정 해제하세요.36 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 또는 `DISABLE_GROWTHBOOK`을 설정하면 Remote Control을 사용할 수 없습니다. Remote Control을 사용하려면 셸 환경이나 [`settings.json` 파일](/docs/ko/settings-reference#all-settings)의 `env` 블록에서 변수가 설정된 곳 어디든 설정 해제하세요.

36 * 만약 `DISABLE_TELEMETRY` 또는 `DO_NOT_TRACK`만 설정하면, 조직에서 [신뢰할 수 있는 디바이스](#trusted-devices)를 요구하지 않는 한 Remote Control은 계속 사용 가능합니다. 요구하는 경우 Remote Control을 사용하려면 변수를 설정 해제하세요. 두 변수 중 하나를 설정한 상태에서 Remote Control을 사용하려면 Claude Code v2.1.283 이상이 필요합니다.37 * 만약 `DISABLE_TELEMETRY` 또는 `DO_NOT_TRACK`만 설정하면, 조직에서 [신뢰할 수 있는 디바이스](#trusted-devices)를 요구하지 않는 한 Remote Control은 계속 사용 가능합니다. 요구하는 경우 Remote Control을 사용하려면 변수를 설정 해제하세요. 두 변수 중 하나를 설정한 상태에서 Remote Control을 사용하려면 Claude Code v2.1.283 이상, Claude Desktop 앱에서는 v2.1.304 이상이 필요합니다.

37* **작업 공간 신뢰**: 아직 신뢰하지 않은 디렉토리에서 `claude remote-control`은 신뢰하면 어떤 기능이 활성화되는지 출력하고 시작하기 전에 `Trust <directory>? [y/N]`을 묻습니다. `y`로 답하면 선택 사항이 저장되지만, 홈 디렉토리에서는 신뢰가 절대 저장되지 않으며 매번 실행할 때마다 질문이 반복됩니다. 표준 입력 또는 출력이 터미널이 아닐 때, 명령은 질문할 수 없으며 [`Workspace not trusted`](/docs/ko/errors#workspace-not-trusted-when-starting-remote-control) 오류로 종료됩니다.38* **작업 공간 신뢰**: 아직 신뢰하지 않은 디렉토리에서 `claude remote-control`은 신뢰하면 어떤 기능이 활성화되는지 출력하고 시작하기 전에 `Trust <directory>? [y/N]`을 묻습니다. `y`로 답하면 선택 사항이 저장되지만, 홈 디렉토리에서는 신뢰가 절대 저장되지 않으며 매번 실행할 때마다 질문이 반복됩니다. 표준 입력 또는 출력이 터미널이 아닐 때, 명령은 질문할 수 없으며 [`Workspace not trusted`](/docs/ko/errors#workspace-not-trusted-when-starting-remote-control) 오류로 종료됩니다.

38 39 

39## Remote Control 세션 시작하기40## Remote Control 세션 시작하기


60| `--remote-control-session-name-prefix <prefix>` | 명시적인 이름이 설정되지 않았을 때 자동 생성되는 세션 이름의 접두사입니다. 기본값은 머신의 호스트 이름이며, `myhost-graceful-unicorn`과 같은 이름이 생성됩니다. `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX`를 설정해도 같은 효과를 얻을 수 있습니다. |61| `--remote-control-session-name-prefix <prefix>` | 명시적인 이름이 설정되지 않았을 때 자동 생성되는 세션 이름의 접두사입니다. 기본값은 머신의 호스트 이름이며, `myhost-graceful-unicorn`과 같은 이름이 생성됩니다. `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX`를 설정해도 같은 효과를 얻을 수 있습니다. |

61| `-c`, `--continue` | 새 세션을 만드는 대신, 이 디렉터리에서 마지막으로 실행된 서버가 시작할 때 사용한 세션을 다시 불러옵니다. [서버 중지 후 세션 재개하기](#resume-sessions-after-stopping-the-server)를 참조하세요. `--session-id`, `--spawn`, `--capacity`, `--create-session-in-dir`와 함께 사용할 수 없습니다. Claude Code v2.1.200 이상이 필요합니다. |62| `-c`, `--continue` | 새 세션을 만드는 대신, 이 디렉터리에서 마지막으로 실행된 서버가 시작할 때 사용한 세션을 다시 불러옵니다. [서버 중지 후 세션 재개하기](#resume-sessions-after-stopping-the-server)를 참조하세요. `--session-id`, `--spawn`, `--capacity`, `--create-session-in-dir`와 함께 사용할 수 없습니다. Claude Code v2.1.200 이상이 필요합니다. |

62| `--session-id <id>` | ID로 세션 하나를 다시 불러옵니다. [서버 중지 후 세션 재개하기](#resume-sessions-after-stopping-the-server)를 참조하세요. `--continue`, `--spawn`, `--capacity`, `--create-session-in-dir`와 함께 사용할 수 없습니다. Claude Code v2.1.200 이상이 필요합니다. |63| `--session-id <id>` | ID로 세션 하나를 다시 불러옵니다. [서버 중지 후 세션 재개하기](#resume-sessions-after-stopping-the-server)를 참조하세요. `--continue`, `--spawn`, `--capacity`, `--create-session-in-dir`와 함께 사용할 수 없습니다. Claude Code v2.1.200 이상이 필요합니다. |

63| `--spawn <mode>` | 서버가 세션을 생성하는 방식입니다. • `same-dir`(기본값): 모든 세션이 현재 작업 디렉터리를 공유하므로, 같은 파일을 편집하면 충돌이 발생할 수 있습니다. • `worktree`: 요청 시 생성되는 각 세션이 자체 [git worktree](/docs/ko/worktrees)를 갖습니다. git 저장소 또는 [`WorktreeCreate` 훅](/docs/ko/hooks#worktreecreate)이 필요합니다. • `session`: 단일 세션 모드입니다. 정확히 하나의 세션만 제공하고 추가 연결은 거부합니다. 시작 시에만 설정할 수 있습니다. 실행 중에 `w`를 누르면 `same-dir`와 `worktree` 간에 전환됩니다. |64| `--spawn <mode>` | 서버가 세션을 생성하는 방식입니다. • `same-dir`(저장된 모드가 없을 때의 기본값): 모든 세션이 현재 작업 디렉터리를 공유하므로, 같은 파일을 편집하면 충돌이 발생할 수 있습니다. • `worktree`: 요청 시 생성되는 각 세션이 자체 [git worktree](/docs/ko/worktrees)를 갖습니다. git 저장소 또는 [`WorktreeCreate` 훅](/docs/ko/hooks#worktreecreate)이 필요합니다. • `session`: 단일 세션 모드입니다. 정확히 하나의 세션만 제공하고 추가 연결은 거부합니다. 시작 시에만 설정할 수 있습니다. 실행 중에 `w`를 누르면 `same-dir`와 `worktree` 간에 전환됩니다. 전환한 모드는 [이 프로젝트의 기본값](#set-the-default-spawn-mode-for-a-project)이 됩니다. |

64| `--capacity <N>` | 최대 동시 세션 수입니다. 기본값은 32입니다. `--spawn=session`과 함께 사용할 수 없습니다. |65| `--capacity <N>` | 최대 동시 세션 수입니다. 기본값은 32입니다. `--spawn=session`과 함께 사용할 수 없습니다. |

65| `--[no-]create-session-in-dir` | 서버가 시작될 때 현재 디렉터리에 세션 하나를 미리 생성하여 즉시 입력할 수 있도록 합니다. `worktree` 모드에서는 이 세션이 현재 디렉터리에 유지되고, 요청 시 생성되는 세션은 격리된 워크트리를 갖습니다. 기본적으로 켜져 있습니다. `--no-create-session-in-dir`을 전달하여 세션 없이 시작하면, 서버를 중지할 때 Claude Code가 서버의 세션을 보관 처리하므로 [재개](#resume-sessions-after-stopping-the-server)할 세션이 남지 않습니다. |66| `--[no-]create-session-in-dir` | 서버가 시작될 때 현재 디렉터리에 세션 하나를 미리 생성하여 즉시 입력할 수 있도록 합니다. `worktree` 모드에서는 이 세션이 현재 디렉터리에 유지되고, 요청 시 생성되는 세션은 격리된 워크트리를 갖습니다. 기본적으로 켜져 있습니다. `--no-create-session-in-dir`을 전달하여 세션 없이 시작하면, 서버를 중지할 때 Claude Code가 서버의 세션을 보관 처리하므로 [재개](#resume-sessions-after-stopping-the-server)할 세션이 남지 않습니다. |

66| `--permission-mode <mode>` | 서버 세션의 시작 [권한 모드](/docs/ko/permission-modes)를 `acceptEdits` 등으로 설정합니다. `manual`을 `default`의 별칭으로 허용합니다. 인식할 수 없는 모드를 지정하면 시작 시 서버가 중지되고 유효한 모드 목록이 표시됩니다. |67| `--permission-mode <mode>` | 서버 세션의 시작 [권한 모드](/docs/ko/permission-modes)를 `acceptEdits` 등으로 설정합니다. `manual`을 `default`의 별칭으로 허용합니다. 인식할 수 없는 모드를 지정하면 시작 시 서버가 중지되고 유효한 모드 목록이 표시됩니다. |


203 204 

204`DISABLE_TELEMETRY` 또는 `DO_NOT_TRACK`만 설정된 경우, 세션은 조직의 관리자 기본값이나 Claude Code 자체 기본값을 통해 자동 연결되지 않습니다. `DISABLE_GROWTHBOOK`이나 LLM 게이트웨이 등 다른 요인으로 Remote Control을 사용할 수 없는 경우에는 대신 [요구 사항](#requirements)부터 확인하세요.205`DISABLE_TELEMETRY` 또는 `DO_NOT_TRACK`만 설정된 경우, 세션은 조직의 관리자 기본값이나 Claude Code 자체 기본값을 통해 자동 연결되지 않습니다. `DISABLE_GROWTHBOOK`이나 LLM 게이트웨이 등 다른 요인으로 Remote Control을 사용할 수 없는 경우에는 대신 [요구 사항](#requirements)부터 확인하세요.

205 206 

206`DISABLE_TELEMETRY` 또는 `DO_NOT_TRACK`만 설정된 상태에서 자동 연결을 켜려면 Claude Code v2.1.283 이상이 필요합니다. 자동 연결하려면 조직에서 [Trusted Devices](#trusted-devices)를 요구하는지 확인합니다.207`DISABLE_TELEMETRY` 또는 `DO_NOT_TRACK`만 설정된 상태에서 자동 연결을 켜기 전에, Claude Code 버전이 [이러한 변수에 대한 요구 사항](#requirements)을 충족하는지 확인합니다. 그런 다음 조직에서 [Trusted Devices](#trusted-devices)를 요구하는지 확인합니다.

207 208 

208* **요구하지 않는 경우**: `/config`에서 **Enable Remote Control for all sessions**를 `true`로 설정합니다.209* **요구하지 않는 경우**: `/config`에서 **Enable Remote Control for all sessions**를 `true`로 설정합니다.

209* **요구하는 경우**: `DISABLE_TELEMETRY` 또는 `DO_NOT_TRACK`이 설정되어 있는 동안에는 Remote Control을 사용할 수 없습니다. 두 변수 중 설정한 변수를 해제합니다. 그래도 세션이 자동 연결되지 않으면 `/config`에서 **Enable Remote Control for all sessions**를 `true`로 설정합니다.210* **요구하는 경우**: `DISABLE_TELEMETRY` 또는 `DO_NOT_TRACK`이 설정되어 있는 동안에는 Remote Control을 사용할 수 없습니다. 두 변수 중 설정한 변수를 해제합니다. 그래도 세션이 자동 연결되지 않으면 `/config`에서 **Enable Remote Control for all sessions**를 `true`로 설정합니다.


224 225 

225Remote Control이 켜져 있던 대화를 Claude Desktop 또는 IDE 확장 프로그램에서 재개하면, Claude Code는 세션 목록에 새 세션을 추가하는 대신 기존 claude.ai 세션에 다시 연결합니다.226Remote Control이 켜져 있던 대화를 Claude Desktop 또는 IDE 확장 프로그램에서 재개하면, Claude Code는 세션 목록에 새 세션을 추가하는 대신 기존 claude.ai 세션에 다시 연결합니다.

226 227 

228### 프로젝트의 기본 spawn 모드 설정하기

229 

230시작 시 `claude remote-control`이 `Spawn mode: <mode> (saved for this folder; press w to change)`를 출력하면, 서버는 이전에 이 프로젝트에 저장된 spawn 모드로 시작하는 것입니다.

231 

232저장된 모드는 사용자가 자신의 터미널에서 선택한 값에서 비롯됩니다. 해당 터미널에서 `claude remote-control`이 `Spawn mode for this project:`를 물었다면, Claude Code는 사용자가 답한 값(`same-dir`는 `1`, `worktree`는 `2`)을 저장했습니다. 실행 중에 `w`를 눌렀다면, `--spawn same-dir` 또는 `--spawn worktree`로 시작한 실행에서도 Claude Code는 전환한 모드를 저장했습니다.

233 

234* 서버가 `same-dir` 또는 `worktree` 모드로 실행되는 동안 서버의 터미널에서 `w`를 누르면 다른 모드로 전환됩니다. 전환하려면 git 저장소 또는 `WorktreeCreate` 훅이 필요합니다.

235* 한 번의 실행에만 다른 모드를 사용하려면 `--spawn <mode>`를 전달합니다.

236 

227## 연결 및 보안237## 연결 및 보안

228 238 

229로컬 Claude Code 세션은 아웃바운드 HTTPS 요청만 수행하며 컴퓨터에서 인바운드 포트를 열지 않습니다. Remote Control을 시작하면 Anthropic API에 등록되고 작업을 폴링합니다. 다른 기기에서 연결하면 서버는 웹 또는 모바일 클라이언트와 로컬 세션 간의 메시지를 스트리밍 연결을 통해 라우팅합니다.239로컬 Claude Code 세션은 아웃바운드 HTTPS 요청만 수행하며 컴퓨터에서 인바운드 포트를 열지 않습니다. Remote Control을 시작하면 Anthropic API에 등록되고 작업을 폴링합니다. 다른 기기에서 연결하면 서버는 웹 또는 모바일 클라이언트와 로컬 세션 간의 메시지를 스트리밍 연결을 통해 라우팅합니다.


426기능 플래그 평가를 비활성화하는 [환경 변수](/docs/ko/env-vars#features-that-need-feature-flag-fetching)가 설정되어 있으며, 전체 메시지는 Claude Code가 찾은 변수를 명시합니다. v2.1.154 이전 버전에서는 동일한 구성이 대신 "Remote Control is not yet enabled for your account"를 생성합니다. 수행할 작업은 메시지가 명시하는 변수에 따라 다릅니다:436기능 플래그 평가를 비활성화하는 [환경 변수](/docs/ko/env-vars#features-that-need-feature-flag-fetching)가 설정되어 있으며, 전체 메시지는 Claude Code가 찾은 변수를 명시합니다. v2.1.154 이전 버전에서는 동일한 구성이 대신 "Remote Control is not yet enabled for your account"를 생성합니다. 수행할 작업은 메시지가 명시하는 변수에 따라 다릅니다:

427 437 

428* **`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 또는 `DISABLE_GROWTHBOOK`**: 설정된 위치(셸 환경 또는 [`settings.json` 파일](/docs/ko/settings-reference#all-settings)의 `env` 블록)에서 변수를 설정 해제합니다.438* **`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 또는 `DISABLE_GROWTHBOOK`**: 설정된 위치(셸 환경 또는 [`settings.json` 파일](/docs/ko/settings-reference#all-settings)의 `env` 블록)에서 변수를 설정 해제합니다.

429* **`DISABLE_TELEMETRY` 또는 `DO_NOT_TRACK`**: Pro, Max, Team 또는 Enterprise 플랜에서 `DISABLE_GROWTHBOOK`이 설정 해제된 경우, 이러한 변수는 조직이 [Trusted Devices](#trusted-devices)를 요구하지 않는 한 Remote Control을 사용 가능하게 둡니다. 요구하는 경우, Remote Control을 사용하기 위해 설정된 위치에서 변수를 설정 해제합니다. v2.1.154부터 v2.1.282까지, 어느 변수든 이 메시지를 생성했으므로 Claude Code를 v2.1.283 이상으로 업데이트합니다.439* **`DISABLE_TELEMETRY` 또는 `DO_NOT_TRACK`**: Pro, Max, Team 또는 Enterprise 플랜에서 `DISABLE_GROWTHBOOK`이 설정 해제된 경우, 이러한 변수는 조직이 [Trusted Devices](#trusted-devices)를 요구하지 않는 한 Remote Control을 사용 가능하게 둡니다. 요구하는 경우, Remote Control을 사용하기 위해 설정된 위치에서 변수를 설정 해제합니다. v2.1.154부터 v2.1.282까지는 어느 변수든 설정되어 있으면 이 메시지가 표시되므로, Claude Code를 [이러한 변수에 대한 요구 사항](#requirements)을 충족하는 버전으로 업데이트합니다.

430 440 

431### "Remote Control is only available when using Claude via api.anthropic.com"441### "Remote Control is only available when using Claude via api.anthropic.com"

432 442 


441* **오류에 `disableRemoteControl`이 언급됨**: IT 관리자가 [관리형 설정](/docs/ko/managed-settings)을 통해 이 장치에서 Remote Control을 비활성화했으며, 조직 전체 토글 및 로그인 방식과 무관합니다.451* **오류에 `disableRemoteControl`이 언급됨**: IT 관리자가 [관리형 설정](/docs/ko/managed-settings)을 통해 이 장치에서 Remote Control을 비활성화했으며, 조직 전체 토글 및 로그인 방식과 무관합니다.

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

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

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

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

445 456 

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

routines.md +11 −10

Details

33 33 

34Team 및 Enterprise Owner는 [**Organization settings > Capabilities > Remote sessions**](https://claude.ai/admin-settings/capabilities)의 **Scheduled tasks (Was Routines)** 토글로 모든 구성원에 대해 예약 작업을 끌 수 있습니다. 토글이 꺼지면 기존 예약 작업의 실행이 중지되고 구성원은 새 예약 작업을 만들 수 없습니다.34Team 및 Enterprise Owner는 [**Organization settings > Capabilities > Remote sessions**](https://claude.ai/admin-settings/capabilities)의 **Scheduled tasks (Was Routines)** 토글로 모든 구성원에 대해 예약 작업을 끌 수 있습니다. 토글이 꺼지면 기존 예약 작업의 실행이 중지되고 구성원은 새 예약 작업을 만들 수 없습니다.

35 35 

36Enterprise 조직에서 [사용자 지정 역할](https://support.claude.com/en/articles/13930452)로 액세스를 관리하는 경우, 예약 작업 권한이 포함된 역할도 필요합니다. Owner는 [**Organization settings > Roles**](https://claude.ai/admin-settings/roles)에서 역할의 **Remote sessions** 섹션에 이 권한을 추가할 수 있습니다.

37 

36## 사용 사례 예시38## 사용 사례 예시

37 39 

38각 예시는 트리거 유형을 예약 작업에 적합한 작업 종류와 짝지어 보여줍니다. 무인으로 실행되고, 반복 가능하며, 명확한 결과와 연결된 작업입니다.40각 예시는 트리거 유형을 예약 작업에 적합한 작업 종류와 짝지어 보여줍니다. 무인으로 실행되고, 반복 가능하며, 명확한 결과와 연결된 작업입니다.


48 50 

49[claude.ai/code/routines](https://claude.ai/code/routines)의 웹에서, 데스크톱 앱에서, 또는 CLI에서 예약 작업을 만들 수 있습니다. 세 가지 사용 환경 모두 동일한 클라우드 계정에 저장되므로, 한 곳에서 만든 예약 작업이 다른 곳에도 즉시 나타납니다. 데스크톱 앱의 **Code** 탭에서 사이드바 또는 사이드바의 **More** 메뉴에 있는 **Scheduled**를 클릭한 다음 **New task**를 클릭하고 [웹에서 만들기](#create-from-the-web)의 단계를 이어서 진행합니다.51[claude.ai/code/routines](https://claude.ai/code/routines)의 웹에서, 데스크톱 앱에서, 또는 CLI에서 예약 작업을 만들 수 있습니다. 세 가지 사용 환경 모두 동일한 클라우드 계정에 저장되므로, 한 곳에서 만든 예약 작업이 다른 곳에도 즉시 나타납니다. 데스크톱 앱의 **Code** 탭에서 사이드바 또는 사이드바의 **More** 메뉴에 있는 **Scheduled**를 클릭한 다음 **New task**를 클릭하고 [웹에서 만들기](#create-from-the-web)의 단계를 이어서 진행합니다.

50 52 

51예약 작업은 전체 Claude Code 클라우드 세션으로 자율적으로 실행됩니다. 권한 모드는 선택하지 않습니다. 세션은 셸 명령을 실행하고, 복제된 저장소에 커밋된 [스킬](/docs/ko/skills)을 사용하며, 포함된 모든 커넥터를 호출합니다. 일부 [아티팩트 작업](#when-a-run-publishes-an-artifact-without-asking)을 제외하고는 모두 승인을 기다리지 않고 실행됩니다.53예약 작업은 전체 Claude Code 클라우드 세션으로 자율적으로 실행됩니다. 권한 모드는 선택하지 않습니다. 세션은 셸 명령을 실행하고, [스킬](/docs/ko/skills)을 사용하며, 포함된 모든 커넥터를 호출합니다. 일부 [아티팩트 작업](#when-a-run-publishes-an-artifact-without-asking)을 제외하고는 모두 승인을 기다리지 않고 실행됩니다. [프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories) 외부에서는 이러한 스킬에 복제된 저장소에 커밋된 스킬도 포함됩니다.

52 54 

53예약 작업이 도달할 수 있는 범위는 다음에 의해 결정됩니다.55예약 작업이 도달할 수 있는 범위는 다음에 의해 결정됩니다.

54 56 


116 118 

117**Create**를 클릭합니다. 대화 상자가 닫히고 새 작업의 세부 정보 페이지가 열립니다. 작업은 다음에 트리거 중 하나가 일치할 때 실행됩니다. 즉시 실행을 시작하려면 세부 정보 페이지에서 **Run now**를 클릭합니다.119**Create**를 클릭합니다. 대화 상자가 닫히고 새 작업의 세부 정보 페이지가 열립니다. 작업은 다음에 트리거 중 하나가 일치할 때 실행됩니다. 즉시 실행을 시작하려면 세부 정보 페이지에서 **Run now**를 클릭합니다.

118 120 

119각 실행은 다른 세션과 함께 새 세션을 만들며, 여기서 Claude가 수행한 작업을 확인하고, 변경 사항을 검토하고, 풀 리퀘스트를 만들 수 있습니다.121실행에서 수행된 작업을 확인하려면 세부 정보 페이지의 **History** 목록에서 해당 실행을 클릭합니다. 실행은 [전체 세션으로 열리며](#view-and-interact-with-runs) 실행마다 새 세션이 만들어집니다. 여기서 Claude가 수행한 작업을 확인하고, 변경 사항을 검토하고, 풀 리퀘스트를 만들 수 있습니다.

120 122 

121#### 기본 화면에 Repositories와 Environment가 있는 대화 상자123#### 기본 화면에 Repositories와 Environment가 있는 대화 상자

122 124 


135* **API 트리거**: [claude.ai/code/routines](https://claude.ai/code/routines)의 웹에서 작업을 편집합니다137* **API 트리거**: [claude.ai/code/routines](https://claude.ai/code/routines)의 웹에서 작업을 편집합니다

136* **[GitHub 트리거](#add-a-github-trigger)**: 웹에서 작업을 편집하거나 CLI에서 Claude에게 요청합니다. CLI에서 추가하려면 Claude Code v2.1.225 이상이 필요합니다138* **[GitHub 트리거](#add-a-github-trigger)**: 웹에서 작업을 편집하거나 CLI에서 Claude에게 요청합니다. CLI에서 추가하려면 Claude Code v2.1.225 이상이 필요합니다

137 139 

138API 호출이나 GitHub 이벤트로만 시작되는 작업처럼 일정 트리거가 없는 예약 작업에는 다음 실행 시간이 없습니다. Claude가 이러한 작업을 저장하거나 업데이트할 때 CLI는 다음 실행 시간을 표시하지 않습니다. v2.1.211 이전에는 CLI가 이러한 작업에 대해 1년의 다음 실행 시간을 보고했습니다.140API 호출이나 GitHub 이벤트로만 시작되는 작업처럼 일정 트리거가 없는 예약 작업에는 다음 실행 시간이 없습니다. Claude가 이러한 작업을 저장하거나 업데이트할 때 CLI는 다음 실행 시간을 표시하지 않습니다. v2.1.211 이전에는 CLI가 이러한 작업에 대해 서기 1년의 다음 실행 시간을 보고했습니다.

139 141 

140## 트리거 구성142## 트리거 구성

141 143 


147 149 

148일정 트리거는 반복 주기에 따라 작업을 실행하거나 특정 미래 시간에 한 번 실행합니다. 웹의 작업 생성 또는 편집 대화 상자에서 시간별, 일일, 주간과 같은 사전 설정 빈도를 선택합니다.150일정 트리거는 반복 주기에 따라 작업을 실행하거나 특정 미래 시간에 한 번 실행합니다. 웹의 작업 생성 또는 편집 대화 상자에서 시간별, 일일, 주간과 같은 사전 설정 빈도를 선택합니다.

149 151 

150* **시간대**: 시간은 로컬 시간대로 입력되며 자동으로 변환되므로, 클라우드 인프라가 어디에 있든 작업은 해당 현지 시각에 실행됩니다.

151* **정각 실행**: 9:00처럼 정확히 정각에 실행을 예약하면 몇 분 늦게 시작될 수 있습니다. 예약된 시간에 가깝게 시작하려면 정각에서 몇 분 지난 시간(예: 9:07)을 선택하십시오.152* **정각 실행**: 9:00처럼 정확히 정각에 실행을 예약하면 몇 분 늦게 시작될 수 있습니다. 예약된 시간에 가깝게 시작하려면 정각에서 몇 분 지난 시간(예: 9:07)을 선택하십시오.

152* **사용자 정의 간격**: 2시간마다와 같은 사용자 정의 간격의 경우 대화 상자에서 가장 가까운 사전 설정을 선택한 다음 CLI에서 `/schedule update`를 실행하여 특정 cron 표현식을 설정합니다. 최소 간격은 1시간이며, 더 자주 실행되는 표현식은 거부됩니다.153* **사용자 정의 간격**: 사전 설정에 없는 주기가 필요하면 작업을 만든 다음 [편집 대화 상자](#edit-and-control-scheduled-tasks)에서 **Custom**을 선택합니다. 그런 다음 2시간마다 실행하는 `0 */2 * * *`와 같은 cron 표현식을 입력합니다. CLI에서 설정하려면 [`/schedule update`](#manage-scheduled-tasks-from-the-cli)를 실행합니다. 1시간에 한 번보다 더 자주 실행되는 표현식은 거부됩니다.

154* **시간대**: 사전 설정 빈도를 선택할 때는 로컬 시간대로 시간을 입력합니다.

153 155 

154#### 일회성 실행 예약156#### 일회성 실행 예약

155 157 


159* 롤아웃이 완료된 후 정리 PR 열기161* 롤아웃이 완료된 후 정리 PR 열기

160* 업스트림 변경 사항이 배포된 후 후속 작업 시작하기162* 업스트림 변경 사항이 배포된 후 후속 작업 시작하기

161 163 

162작업이 실행된 후에는 스스로 꺼지고 웹 UI에 **Completed**로 표시됩니다. 다시 실행하려면 웹에서 작업의 편집 대화 상자를 열고(일회성 작업의 경우 **One-time**이 제공됨) 새 시간을 설정합니다.164작업이 실행된 후에는 스스로 꺼지고 웹 UI에 **Completed**로 표시됩니다. 다시 실행하려면 웹에서 작업의 [편집 대화 상자](#edit-and-control-scheduled-tasks)를 열고 대화 상자에 표시되는 레이블에 따라 **One-time** 또는 **Once**를 선택합니다. 그런 다음 로컬 시간대로 새 날짜와 시간을 설정하고 저장합니다.

163 165 

164CLI에서 자연어로 시간을 설명하여 일회성 실행을 만듭니다. Claude는 현재 시간을 기준으로 해당 문구를 해석하고 저장하기 전에 절대 타임스탬프를 확인합니다.166CLI에서 자연어로 시간을 설명하여 일회성 실행을 만듭니다. Claude는 현재 시간을 기준으로 해당 문구를 해석하고 저장하기 전에 절대 타임스탬프를 확인합니다.

165 167 


171/schedule in 2 weeks, open a cleanup PR that removes the feature flag173/schedule in 2 weeks, open a cleanup PR that removes the feature flag

172```174```

173 175 

174반복 일정과 동일한 로컬-UTC 변환이 일회성 타임스탬프에도 적용됩니다.

175 

176일회성 실행은 다른 예약 실행과 동일한 시간당 한도에 포함됩니다. 자세한 내용은 [사용량 및 한도](#usage-and-limits)를 참조하십시오.176일회성 실행은 다른 예약 실행과 동일한 시간당 한도에 포함됩니다. 자세한 내용은 [사용량 및 한도](#usage-and-limits)를 참조하십시오.

177 177 

178### API 트리거 추가178### API 트리거 추가


356커넥터는 계정의 [claude.ai 통합](/docs/ko/mcp#use-mcp-servers-from-claude-ai)입니다. CLI에서 `claude mcp add`로 로컬에 추가한 MCP 서버는 claude.ai 계정이 아닌 사용자의 머신에 저장되므로 커넥터 목록에 나타나지 않습니다. 예약 작업에서 이러한 서버 중 하나를 사용하려면 다음과 같이 합니다.356커넥터는 계정의 [claude.ai 통합](/docs/ko/mcp#use-mcp-servers-from-claude-ai)입니다. CLI에서 `claude mcp add`로 로컬에 추가한 MCP 서버는 claude.ai 계정이 아닌 사용자의 머신에 저장되므로 커넥터 목록에 나타나지 않습니다. 예약 작업에서 이러한 서버 중 하나를 사용하려면 다음과 같이 합니다.

357 357 

358* **커넥터로 추가**: [claude.ai/customize/connectors](https://claude.ai/customize/connectors)에서 커넥터로 추가합니다358* **커넥터로 추가**: [claude.ai/customize/connectors](https://claude.ai/customize/connectors)에서 커넥터로 추가합니다

359* **저장소에 포함**: 저장소가 하나인 예약 작업의 경우, 대신 커밋된 [`.mcp.json`](/docs/ko/mcp#project-scope)에 서버를 선언하여 복제된 저장소의 일부가 되도록 할 수 있습니다359* **저장소에 포함**: [프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories) 외부에 있는 저장소가 하나인 예약 작업의 경우, 대신 커밋된 [`.mcp.json`](/docs/ko/mcp#project-scope)에 서버를 선언할 수 있습니다. 프로젝트 내의 예약 작업은 `.mcp.json`을 로드하지 않으므로 서버를 커넥터로 추가하십시오

360 360 

361예약 작업을 만들면 현재 연결된 모든 커넥터가 기본적으로 포함됩니다. 실행 중에 Claude가 액세스할 수 있는 도구를 제한하려면 필요하지 않은 커넥터를 제거하십시오. 작업의 생성 또는 편집 대화 상자에서 직접 커넥터를 추가할 수도 있습니다.361예약 작업을 만들면 현재 연결된 모든 커넥터가 기본적으로 포함됩니다. 실행 중에 Claude가 액세스할 수 있는 도구를 제한하려면 필요하지 않은 커넥터를 제거하십시오. 작업의 생성 또는 편집 대화 상자에서 직접 커넥터를 추가할 수도 있습니다.

362 362 


452* 클라우드 세션 안에 있으며, 이 경우 `/schedule`을 제출하면 해당 환경에서는 명령을 사용할 수 없다는 응답이 표시됩니다. 대신 [웹 UI](https://claude.ai/code/routines)에서 예약 작업을 관리하십시오452* 클라우드 세션 안에 있으며, 이 경우 `/schedule`을 제출하면 해당 환경에서는 명령을 사용할 수 없다는 응답이 표시됩니다. 대신 [웹 UI](https://claude.ai/code/routines)에서 예약 작업을 관리하십시오

453* 조직의 정책이 예약 작업에 필요한 [클라우드 세션](/docs/ko/claude-code-on-the-web)을 비활성화합니다. 이 경우 `/schedule`을 제출하면 대신 [`Cloud sessions are disabled by your organization's policy`](/docs/ko/errors#cloud-sessions-are-disabled-by-your-organizations-policy)로 응답합니다. v2.1.268 이전에는 `Unknown command: /schedule`을 반환했습니다453* 조직의 정책이 예약 작업에 필요한 [클라우드 세션](/docs/ko/claude-code-on-the-web)을 비활성화합니다. 이 경우 `/schedule`을 제출하면 대신 [`Cloud sessions are disabled by your organization's policy`](/docs/ko/errors#cloud-sessions-are-disabled-by-your-organizations-policy)로 응답합니다. v2.1.268 이전에는 `Unknown command: /schedule`을 반환했습니다

454* Owner가 Team 또는 Enterprise 조직에 대해 [예약 작업을 껐습니다](#routines-are-disabled-by-your-organizations-policy). v2.1.227 이전에는 이 경우에도 명령이 계속 나타났으며, Claude가 작업을 만들거나 실행하려고 하면 claude.ai가 작업을 거부했습니다454* Owner가 Team 또는 Enterprise 조직에 대해 [예약 작업을 껐습니다](#routines-are-disabled-by-your-organizations-policy). v2.1.227 이전에는 이 경우에도 명령이 계속 나타났으며, Claude가 작업을 만들거나 실행하려고 하면 claude.ai가 작업을 거부했습니다

455* Enterprise 조직이 [사용자 지정 역할](https://support.claude.com/en/articles/13930452)로 액세스를 관리하고 있으며, 할당된 역할 중 어느 것에도 **Remote sessions** 아래의 예약 작업 권한이 포함되어 있지 않습니다. Owner에게 역할 중 하나에 해당 권한을 추가해 달라고 요청하십시오

455 456 

456조직의 정책이 예약 작업이나 클라우드 세션을 비활성화하지 않는 한, CLI 구성 방식과 관계없이 [claude.ai/code/routines](https://claude.ai/code/routines)에서 예약 작업을 만들고 관리할 수 있습니다.457원인이 CLI 로그인 방식이거나 클라우드 세션 안에 있는 것이라면, [claude.ai/code/routines](https://claude.ai/code/routines)에서 여전히 예약 작업을 만들고 관리할 수 있습니다. 이를 위해서는 Pro, Max, Team 또는 Enterprise 계정이 필요합니다. 조직에서 예약 작업이나 클라우드 세션이 꺼져 있거나 역할에 포함되어 있지 않으면 웹에서도 만들 수 없습니다.

457 458 

458### "Routines are disabled by your organization's policy"459### "Routines are disabled by your organization's policy"

459 460 

sandboxing.md +58 −44

Details

522 522 

523### 파일 시스템 격리523### 파일 시스템 격리

524 524 

525샌드박스가 적용된 Bash 도구는 파일 시스템 액세스를 특정 디렉터리로 제한합니다.525샌드박스된 Bash 도구는 파일 시스템 접근을 특정 디렉터리로 제한합니다.

526 526 

527* **기본 쓰기 동작**: 현재 작업 디렉터리와 그 하위 디렉터리, `--add-dir`, `/add-dir` 또는 [`permissions.additionalDirectories`](/docs/ko/settings-reference#permissions-additionaldirectories)로 추가한 모든 디렉터리, 그리고 `$TMPDIR`가 가리키는 사용자별 임시 디렉터리에 대한 읽기 및 쓰기 액세스527* **기본 쓰기 동작**: 현재 작업 디렉터리와 그 하위 디렉터리, `--add-dir`, `/add-dir` 또는 [`permissions.additionalDirectories`](/docs/ko/settings-reference#permissions-additionaldirectories)로 추가한 모든 디렉터리, 그리고 `$TMPDIR`이 가리키는 사용자별 임시 디렉터리에 대한 읽기 및 쓰기 접근

528* **기본 읽기 동작**: 거부된 특정 디렉터리를 제외한 컴퓨터 전체에 대한 읽기 액세스. 이 기본값에서는 자격 증명 파일도 읽을 수 있으므로, 명령이 읽지 않았으면 하는 [자격 증명을 보호](#protect-credentials)하십시오.528* **기본 읽기 동작**: 특정 거부된 디렉터리를 제외한 컴퓨터 전체에 대한 읽기 접근. 이 기본값에서도 자격 증명 파일을 읽을 수 있으므로, 명령이 읽지 않기를 원하는 [자격 증명을 보호](#protect-credentials)하십시오.

529* **읽기 차단**: [`permissions.blockReadsOutsideWorkingDirectories`](/docs/ko/settings-reference#permissions-blockreadsoutsideworkingdirectories)를 켜면 샌드박스가 적용된 명령은 [차단 시 샌드박스가 적용된 명령](/docs/ko/settings-reference#sandboxed-commands-under-the-block)에 나열된 경로를 제외하고 홈 디렉터리 및 사용자 파일을 보관하는 다른 디렉터리에 대한 읽기 액세스도 잃습니다. 해당 섹션에서는 차단의 이 부분이 적용되지 않는 경우도 설명합니다.529* **읽기 차단**: [`permissions.blockReadsOutsideWorkingDirectories`](/docs/ko/settings-reference#permissions-blockreadsoutsideworkingdirectories)를 켜면 샌드박스된 명령은 홈 디렉터리와 사용자 파일을 보관하는 기타 디렉터리에 대한 읽기 접근도 잃습니다. 단, [차단 상태의 샌드박스된 명령](/docs/ko/settings-reference#sandboxed-commands-under-the-block)에 나열된 경로는 예외입니다. 해당 섹션에서는 차단의 이 부분이 적용되지 않는 경우도 설명합니다.

530* **Git worktree**: 작업 디렉터리가 [연결된 git worktree](/docs/ko/worktrees)인 경우, 샌드박스는 `git commit` 같은 명령이 ref와 인덱스를 업데이트할 수 있도록 메인 저장소의 공유 `.git` 디렉터리에 대한 쓰기도 허용합니다. 해당 디렉터리 안의 `hooks/`와 `config`에 대한 쓰기는 계속 거부됩니다.530* **Git worktree**: 작업 디렉터리가 [연결된 git worktree](/docs/ko/worktrees)인 경우, 샌드박스는 `git commit` 같은 명령이 ref와 인덱스를 업데이트할 수 있도록 메인 저장소의 공유 `.git` 디렉터리에 대한 쓰기도 허용합니다. 해당 디렉터리 안의 `hooks/`와 `config`에 대한 쓰기는 계속 거부됩니다.

531 531 

532네트워크 격리는 유지하면서 파일 시스템 격리를 완전히 건너뛰려면 [`sandbox.filesystem.disabled`](#disable-filesystem-isolation)를 설정하십시오.532네트워크 격리는 유지하면서 파일 시스템 격리를 완전히 건너뛰려면 [`sandbox.filesystem.disabled`](#disable-filesystem-isolation)를 설정하십시오.

533 533 

534### 보호된 경로534### 보호된 경로

535 535 

536샌드박스가 적용된 명령이 쓸 수 있는 디렉터리 안에서도, 샌드박스는 Claude Code가 구성과 코드를 로드하는 파일에 대한 쓰기를 여전히 거부합니다. 이러한 파일을 편집할 수 있는 명령은 스스로 권한을 부여하거나, Claude Code가 샌드박스 외부에서 실행하는 훅 또는 MCP 서버를 추가할 수 있습니다. 권한 시스템에는 도구가 실행되기 전에 Claude Code가 승인하는 항목을 제어하는 자체 [보호된 경로](/docs/ko/permission-modes#protected-paths)가 있으며, 샌드박스의 목록은 이미 실행 중인 명령에 적용됩니다. 샌드박스의 목록은 네 가지 경로 그룹을 다룹니다.536샌드박스된 명령이 쓸 수 있는 디렉터리 안에서도, 샌드박스는 Claude Code가 구성과 코드를 로드하는 파일에 대한 쓰기를 여전히 거부합니다. 이러한 파일을 편집할 수 있는 명령은 스스로 권한을 부여하거나, Claude Code가 샌드박스 외부에서 실행하는 훅이나 MCP 서버를 추가할 수 있기 때문입니다. 권한 시스템에는 별도의 [보호된 경로](/docs/ko/permission-modes#protected-paths)가 있으며, 이는 도구가 실행되기 전에 Claude Code가 무엇을 승인할지를 제어합니다. 샌드박스의 목록은 이미 실행 중인 명령에 적용됩니다. 이 목록은 네 가지 경로 그룹을 다룹니다.

537 537 

538* **작업 디렉터리와 그 상위 디렉터리**: `.claude` 설정 파일, `.claude/skills`, `.claude/agents`, `.claude/commands`, `.claude/hooks` 디렉터리, `.mcp.json`, 그리고 `.claude/workflows`와 `.claude/scheduled_tasks.json`처럼 Claude Code가 자체적으로 실행하는 파일538* **작업 디렉터리와 그 상위 디렉터리**: `.claude` 설정 파일, `.claude/skills`, `.claude/agents`, `.claude/commands`, `.claude/hooks` 디렉터리, `.mcp.json`, 그리고 `.claude/workflows`와 `.claude/scheduled_tasks.json`처럼 Claude Code가 자체적으로 실행하는 파일

539* **작업 디렉터리에만 해당**: `.bashrc`와 `.zshrc` 같은 셸 시작 파일, `.gitconfig`, `.vscode` 및 `.idea` 디렉터리, 그리고 `.git` 안의 `hooks`와 `config`539* **작업 디렉터리에만 해당**: `.bashrc`와 `.zshrc` 같은 셸 시작 파일, `.gitconfig`, `.vscode`와 `.idea` 디렉터리, 그리고 `.git` 안의 `hooks`와 `config`

540* **작업 디렉터리를 bare git 저장소로 만들 수 있는 파일**: 최상위 수준의 `HEAD`, `objects`, `refs`, 그리고 옆에 `HEAD`가 있을 때 해당 위치의 기존 `config` 및 `hooks` 항목. `config`라는 이름의 파일은 `HEAD`가 없어도 거부됩니다. Linux와 WSL2에서는 샌드박스가 적용된 명령이 실행되는 동안 최상위 `HEAD` 파일이나 `objects` 또는 `refs` 디렉터리가 나타나면 샌드박스가 이를 삭제합니다540* **작업 디렉터리를 bare git 저장소로 바꿀 수 있는 파일**: 최상위 수준의 `HEAD`, `objects`, `refs`, 그리고 그 옆에 `HEAD`가 있을 때 해당 위치에 이미 존재하는 `config`와 `hooks` 항목. `config`라는 이름의 파일은 `HEAD`가 없어도 거부됩니다. Linux와 WSL2에서는 샌드박스된 명령이 실행되는 동안 나타나는 최상위 `HEAD` 파일이나 `objects` 또는 `refs` 디렉터리를 샌드박스가 삭제합니다

541* **`~/.claude` 또는 `CLAUDE_CONFIG_DIR`이 가리키는 디렉터리**: 해당 디렉터리 내용의 대부분, 그리고 `~/.claude.json`과 `.credentials.json` 자격 증명 저장소541* **`~/.claude` 또는 `CLAUDE_CONFIG_DIR`이 가리키는 디렉터리**: 해당 디렉터리 내용의 대부분, 그리고 `~/.claude.json`과 `.credentials.json` 자격 증명 저장소

542 542 

543세션 중에 보호된 설정 파일의 경로에 심볼릭 링크가 나타나면, 샌드박스는 다음 명령부터 해당 링크가 가리키는 파일에 대한 쓰기도 거부합니다.543세션 중에 보호된 설정 파일의 경로에 심볼릭 링크가 나타나면, 샌드박스는 다음 명령부터 해당 링크가 가리키는 파일에 대한 쓰기도 거부합니다.

544 544 

545이러한 경로 중 하나를 예외로 지정하는 방법은 없습니다. 해당 경로를 포함하는 `allowWrite` 항목이나 `Edit` 허용 규칙으로도 보호가 해제되지 않습니다. 보호를 끄는 유일한 방법은 [`filesystem.disabled`](#disable-filesystem-isolation)이며, 이는 모든 경로에 대해 파일 시스템 격리를 끕니다. 사용 중인 머신에서 이러한 경로 대부분이 어떻게 해석되는지 확인하려면 `/sandbox`를 실행하고 **Config** 탭을 여십시오. 이 탭에는 사용자 자신의 `denyWrite` 항목과 함께 **Denied within allowed** 아래에 해당 경로가 나열됩니다.545이러한 경로 중 하나를 예외로 지정하는 방법은 없습니다. 해당 경로를 포함하는 `allowWrite` 항목이나 `Edit` 허용 규칙으로는 보호가 해제되지 않습니다. 보호를 끄는 유일한 방법은 [`filesystem.disabled`](#disable-filesystem-isolation)이며, 이는 모든 경로에 대한 파일 시스템 격리를 끕니다. 사용자 컴퓨터에서 해석된 이러한 경로 대부분을 확인하려면 `/sandbox`를 실행하고 **Config** 탭을 여십시오. 이 탭에서는 **Denied within allowed** 아래에 사용자가 직접 지정한 `denyWrite` 항목과 함께 이러한 경로가 나열됩니다.

546 546 

547이러한 경로 중 하나에서 `git merge` 또는 `git checkout`이 `unable to unlink old`와 함께 실패하면 [`unable to unlink old`와 함께 git 명령이 실패하는 경우](#a-git-command-fails-with-unable-to-unlink-old)를 참조하십시오.547이러한 경로 중 하나에서 `git merge` 또는 `git checkout`이 `unable to unlink old`와 함께 실패하면 [git 명령이 `unable to unlink old`로 실패하는 경우](#a-git-command-fails-with-unable-to-unlink-old)를 참조하십시오.

548 

549#### 심볼릭 링크를 통과하는 거부된 경로

550 

551macOS에서 거부된 경로가 심볼릭 링크를 통과하는 경우(예: dotfiles 저장소로 연결된 링크인 `~/.claude`), 샌드박스는 해당 경로의 실제 위치도 거부합니다. 이는 샌드박스 자체의 거부와 사용자가 문자 그대로 지정한 `denyWrite` 및 `denyRead` 항목 모두에 적용됩니다.

548 552 

549### 네트워크 격리553### 네트워크 격리

550 554 

551샌드박스가 적용된 명령에는 네트워크로 가는 직접 경로가 없습니다.555샌드박스된 명령에는 네트워크로 향하는 직접 경로가 없습니다.

552 556 

553* **Linux 및 WSL2**: 명령은 네트워크에 연결되지 않은 별도의 네트워크 네임스페이스에서 실행됩니다557* **Linux 및 WSL2**: 명령은 사용자 네트워크와 연결되지 않은 별도의 네트워크 네임스페이스에서 실행됩니다

554* **macOS**: Seatbelt 샌드박스 프레임워크가 기본적으로 샌드박스 프록시로의 연결을 제외한 모든 연결을 차단합니다558* **macOS**: Seatbelt 샌드박스 프레임워크가 기본적으로 샌드박스 프록시로의 연결 외의 연결을 차단합니다

555 559 

556Claude Code는 샌드박스 외부의 사용자 머신에서 샌드박스 프록시를 실행하고, `HTTP_PROXY`, `HTTPS_PROXY`, `ALL_PROXY` 및 관련 환경 변수를 통해 명령을 프록시로 보냅니다. 프록시는 각 연결의 호스트 이름을 허용 및 거부된 도메인과 대조하여 확인합니다.560Claude Code는 샌드박스 외부인 사용자 컴퓨터에서 샌드박스 프록시를 실행하고, `HTTP_PROXY`, `HTTPS_PROXY`, `ALL_PROXY` 및 관련 환경 변수를 통해 명령이 이 프록시를 사용하도록 합니다. 프록시는 각 연결의 호스트 이름을 허용 및 거부된 도메인과 대조하여 확인합니다.

557 561 

558도구가 어디에 연결할 수 있는지는 프록시를 사용하는지 여부에 따라 달라집니다.562도구가 접근할 수 있는 대상은 해당 도구가 프록시를 사용하는지에 따라 달라집니다.

559 563 

560* **프록시 변수를 읽는 도구**: `curl`, `npm`, HTTPS를 통한 `git` 및 유사한 도구는 호스트가 허용되면 연결됩니다. 포트가 없는 `allowedDomains` 항목은 해당 호스트의 모든 포트를 허용합니다564* **프록시 변수를 읽는 도구**: `curl`, `npm`, HTTPS를 통한 `git` 및 유사한 도구는 호스트가 허용되면 연결됩니다. 포트가 없는 `allowedDomains` 항목은 해당 호스트의 모든 포트를 허용합니다

561* **프록시 변수를 무시하는 도구**: 일반 `ssh`, 대부분의 데이터베이스 드라이버 및 유사한 도구는 허용된 호스트에도 연결할 수 없습니다. [데이터베이스 클라이언트 또는 기타 비 HTTP 도구가 허용된 호스트에 연결하지 못하는 경우](#a-database-client-or-other-non-http-tool-fails-to-reach-an-allowed-host)를 참조하십시오565* **프록시 변수를 무시하는 도구**: 일반 `ssh`, 대부분의 데이터베이스 드라이버 및 유사한 도구는 허용된 호스트에도 연결할 수 없습니다. [데이터베이스 클라이언트 또는 기타 비 HTTP 도구가 허용된 호스트에 연결하지 못하는 경우](#a-database-client-or-other-non-http-tool-fails-to-reach-an-allowed-host)를 참조하십시오

562* **TCP가 아닌 모든 것**: UDP, QUIC을 통한 HTTP/3, `ping` 같은 ICMP 도구는 샌드박스를 벗어날 수 없습니다566* **TCP가 아닌 모든 것**: UDP, QUIC 기반 HTTP/3, `ping` 같은 ICMP 도구는 샌드박스를 벗어날 수 없습니다

563 567 

564다음 설정과 동작은 프록시가 어떤 호스트를 허용할지 제어합니다.568다음 설정과 동작은 프록시가 허용하는 호스트를 제어합니다.

565 569 

566* **도메인 제한**: 허용된 도메인은 처음에 비어 있습니다. [허용된 도메인 외부의 호스트](#hosts-outside-your-allowed-domains)에서 명령이 처음으로 새 도메인을 필요로 할 때 어떤 일이 발생하는지 설명합니다.570* **도메인 제한**: 허용된 도메인은 처음에 비어 있습니다. 명령이 처음으로 새 도메인을 필요로 할 때 어떤 일이 일어나는지는 [허용된 도메인 외부의 호스트](#hosts-outside-your-allowed-domains)에서 설명합니다.

567* **승인 선택**: 확인 요청 시 Yes를 선택하면 Claude Code는 현재 세션의 나머지 기간 동안 해당 호스트를 허용합니다. "Yes, and don't ask again"을 선택하면 Claude Code는 `WebFetch(domain:...)` 허용 규칙을 [로컬 설정](/docs/ko/permissions#permission-system)에 저장하므로, 이후 세션에서도 해당 호스트가 계속 허용됩니다. 샌드박스가 [관리자 필수](#repository-settings-under-an-admin-required-sandbox)인 동안에는 Claude Code가 규칙을 사용자 설정에 저장하며, 이 규칙은 모든 프로젝트에 적용됩니다.571* **승인 선택**: 프롬프트에서 Yes를 선택하면 Claude Code는 현재 세션의 나머지 기간 동안 해당 호스트를 허용합니다. "Yes, and don't ask again"을 선택하면 Claude Code는 `WebFetch(domain:...)` 허용 규칙을 [로컬 설정](/docs/ko/permissions#permission-system)에 저장하므로, 이후 세션에서도 해당 호스트가 계속 허용됩니다. 샌드박스가 [관리자 필수](#repository-settings-under-an-admin-required-sandbox)인 동안에는 Claude Code가 규칙을 사용자 설정에 저장하며, 이 규칙은 모든 프로젝트에 적용됩니다.

568* **사전 허용된 도메인**: [`allowedDomains`](/docs/ko/settings-reference#sandbox-network-alloweddomains)로 도메인을 사전 허용하면 프롬프트를 완전히 피할 수 있습니다. [권한 규칙](#permission-rules)에 설명된 대로 Claude Code는 `WebFetch(domain:...)` 허용 규칙의 도메인도 사전 허용합니다.572* **사전 허용된 도메인**: [`allowedDomains`](/docs/ko/settings-reference#sandbox-network-alloweddomains)로 도메인을 사전 허용하면 프롬프트를 완전히 피할 수 있습니다. [권한 규칙](#permission-rules)에 설명된 대로, Claude Code는 `WebFetch(domain:...)` 허용 규칙의 도메인도 사전 허용합니다.

569* **엄격한 허용 목록**: 사용자, 관리형 또는 CLI `--settings` 설정에서 [`strictAllowlist`](/docs/ko/settings-reference#sandbox-network-strictallowlist)를 `true`로 설정하면, Claude Code는 확인을 요청하는 대신 샌드박스가 적용된 명령의 허용 목록 외부 호스트에 대한 액세스를 거부합니다. 허용 목록은 `allowedDomains`와 `WebFetch(domain:...)` 허용 규칙의 도메인이며, `allowManagedDomainsOnly`가 설정된 경우에는 관리형 설정 항목만 해당됩니다. 저장소의 항목에 대해서는 [관리자 필수 샌드박스 없이 적용되는 잠금](#locks-that-apply-without-an-admin-required-sandbox)에서 설명합니다. Claude Code는 이를 샌드박스가 적용된 명령에만 적용하며, `WebFetch` 같은 프로세스 내 도구는 여전히 해당 [권한 규칙](#permission-rules)을 따릅니다. 저장소의 `.claude/settings.json` 또는 `.claude/settings.local.json`에서 설정하면 효과가 없습니다. Claude Code v2.1.219 이상이 필요합니다.573* **엄격한 허용 목록**: 사용자, 관리형 또는 CLI `--settings` 설정에서 [`strictAllowlist`](/docs/ko/settings-reference#sandbox-network-strictallowlist)를 `true`로 설정하면, Claude Code는 확인을 요청하는 대신 샌드박스된 명령이 허용 목록 외부의 호스트에 접근하는 것을 거부합니다. 허용 목록은 `allowedDomains`와 `WebFetch(domain:...)` 허용 규칙의 도메인을 합친 것이며, `allowManagedDomainsOnly`가 설정된 경우에는 관리형 설정 항목만 해당합니다. 저장소의 항목에 대해서는 [관리자 필수 샌드박스 없이 적용되는 잠금](#locks-that-apply-without-an-admin-required-sandbox)에서 설명합니다. Claude Code는 이 설정을 샌드박스된 명령에만 적용합니다. `WebFetch` 같은 프로세스 내 도구는 여전히 해당 [권한 규칙](#permission-rules)을 따릅니다. 저장소의 `.claude/settings.json` 또는 `.claude/settings.local.json`에서 설정하면 효과가 없습니다. Claude Code v2.1.219 이상이 필요합니다.

570* **관리형 잠금**: 관리형 설정에서 [`allowManagedDomainsOnly`](/docs/ko/settings-reference#sandbox-network-allowmanageddomainsonly)가 설정되면, 허용되지 않은 도메인은 확인을 요청하는 대신 자동으로 차단되며, 관리형 설정의 `allowedDomains`와 `WebFetch(domain:...)` 허용 규칙만 적용됩니다.574* **관리형 잠금**: 관리형 설정에서 [`allowManagedDomainsOnly`](/docs/ko/settings-reference#sandbox-network-allowmanageddomainsonly)가 설정된 경우, 허용되지 않은 도메인은 확인을 요청하는 대신 자동으로 차단되며, 관리형 설정의 `allowedDomains`와 `WebFetch(domain:...)` 허용 규칙만 적용됩니다.

571* **회사 프록시**: 네트워크에서 아웃바운드 트래픽이 회사 프록시를 거쳐야 하는 경우, [프록시 구성](/docs/ko/network-config#proxy-configuration)에 설명된 대로 `HTTPS_PROXY`, `HTTP_PROXY`, `NO_PROXY`를 설정하십시오. [백그라운드 에이전트](/docs/ko/network-config#set-network-variables-in-settings-not-the-shell)도 이를 받을 수 있도록 설정의 `env` 블록에 설정하거나, Claude Code를 실행하는 환경에서 설정합니다. Claude Code는 도메인 허용 목록을 적용한 다음, 허용된 연결을 해당 업스트림 프록시를 통해 터널링합니다. `http://` 및 `https://` 프록시 URL이 작동하며, 필요한 경우 URL에 기본 인증을 포함할 수 있습니다.575* **기업 프록시**: 네트워크에서 아웃바운드 트래픽이 기업 프록시를 거쳐야 하는 경우, [프록시 구성](/docs/ko/network-config#proxy-configuration)에 설명된 대로 `HTTPS_PROXY`, `HTTP_PROXY`, `NO_PROXY`를 설정하십시오. [백그라운드 에이전트](/docs/ko/network-config#set-network-variables-in-settings-not-the-shell)도 이를 받을 수 있도록 설정의 `env` 블록에 지정하거나, Claude Code를 실행하는 환경에 지정합니다. Claude Code는 도메인 허용 목록을 적용한 다음, 허용된 연결을 해당 업스트림 프록시를 통해 터널링합니다. `http://` 및 `https://` 프록시 URL이 작동하며, 필요한 경우 URL에 기본 인증을 포함할 수 있습니다.

572 576 

573`WebFetch(domain:...)` 규칙에서 샌드박스는 두 가지 와일드카드 형식을 인정합니다. `*.example.com`과 같은 앞쪽의 `*.`와 단독 `*`입니다. 단독 `*` 형식은 Claude Code v2.1.186 이상이 필요합니다. `WebFetch(domain:example.*)`처럼 다른 위치에 있는 와일드카드는 여전히 fetch와 일치하지만 샌드박스가 적용된 명령에는 영향을 주지 않습니다.577`WebFetch(domain:...)` 규칙에서 샌드박스는 두 가지 와일드카드 형식을 인식합니다. `*.example.com`처럼 앞에 오는 `*.`과 단독 `*`입니다. 단독 `*` 형식에는 Claude Code v2.1.186 이상이 필요합니다. `WebFetch(domain:example.*)`처럼 다른 위치에 있는 와일드카드는 여전히 fetch와 일치하지만 샌드박스된 명령에는 영향을 주지 않습니다.

574 578 

575> [!NOTE]579> [!NOTE]

576>580>

577> 내장 프록시는 요청된 호스트 이름을 기준으로 허용 목록을 적용하며, 기본적으로 TLS 트래픽을 종료하거나 검사하지 않습니다. 실험적 [`network.tlsTerminate`](/docs/ko/settings-reference#sandbox-network-tlsterminate) 설정은 내장 프록시가 TLS를 직접 종료하도록 하며, 이는 [`mask` 자격 증명 항목](#mask-credentials)에 필요합니다. 기본값의 영향에 대해서는 [보안 제한 사항](#security-limitations)을, 위협 모델에 TLS 검사가 필요한 경우 [사용자 지정 프록시 구성](#custom-proxy-configuration)을 참조하십시오.581> 기본 제공 프록시는 요청된 호스트 이름을 기준으로 허용 목록을 적용하며, 기본적으로 TLS 트래픽을 종료하거나 검사하지 않습니다. 실험적 설정인 [`network.tlsTerminate`](/docs/ko/settings-reference#sandbox-network-tlsterminate)를 사용하면 기본 제공 프록시가 직접 TLS를 종료하며, 이는 [`mask` 자격 증명 항목](#mask-credentials)에 필요합니다. 기본값의 영향에 대해서는 [보안 제한 사항](#security-limitations)을 참조하고, 위협 모델상 TLS 검사가 필요한 경우 [사용자 지정 프록시 구성](#custom-proxy-configuration)을 참조하십시오.

578 582 

579#### 허용된 도메인 외부의 호스트583#### 허용된 도메인 외부의 호스트

580 584 

581샌드박스가 적용된 명령이 허용된 도메인에 없는 호스트에 연결하면, 명령은 샌드박스 안에 머물며 결정을 기다립니다. 대화형 터미널 세션에서는 결정이 권한 모드에 따라 달라집니다.585샌드박스된 명령이 허용된 도메인에 없는 호스트에 연결하면, 명령은 샌드박스에 머문 채 결정을 기다립니다. 대화형 터미널 세션에서는 결정이 권한 모드에 따라 달라집니다.

582 586 

583| 권한 모드 | 연결에 일어나는 일 |587| 권한 모드 | 연결에 일어나는 일 |

584| :- | :- |588| :- | :- |

585| `bypassPermissions` 모드, 그리고 [권한 우회를 사용할 수 있는](/docs/ko/permission-modes#skip-all-checks-with-bypasspermissions-mode) 플랜 모드 | 프롬프트 없이 허용됨 |589| `bypassPermissions` 모드, 그리고 [권한 우회를 사용할 수 있는](/docs/ko/permission-modes#skip-all-checks-with-bypasspermissions-mode) 플랜 모드 | 프롬프트 없이 허용됨 |

586| 수동 모드, `acceptEdits` 모드, 그 외의 플랜 모드 | 프롬프트가 표시됨 |590| 수동 모드, `acceptEdits` 모드, 그 외의 플랜 모드 | 프롬프트가 표시됨 |

587| 자동 모드 | 명령이 [호스트를 나열](#per-command-allowed-domains-in-auto-mode)하고 분류기가 목록을 승인하지 않는 한 거부됨 |591| 자동 모드 | 명령이 [호스트를 나열](#per-command-allowed-domains-in-auto-mode)하고 분류기가 그 목록을 승인한 경우에만 허용되며, 그렇지 않으면 거부됨 |

588| `dontAsk` 모드 | 거부됨 |592| `dontAsk` 모드 | 거부됨 |

589 593 

590[`strictAllowlist`](/docs/ko/settings-reference#sandbox-network-strictallowlist) 또는 [`allowManagedDomainsOnly`](/docs/ko/settings-reference#sandbox-network-allowmanageddomainsonly)가 켜져 있으면, 내장 샌드박스 프록시는 모든 권한 모드에서 연결을 거부합니다. `bypassPermissions` 모드에서는 둘 중 하나가 켜져 있지 않는 한 허용된 도메인 외부의 호스트가 허용됩니다. 해당 모드에서 명령이 샌드박스를 벗어날 수 있는 경우는 [샌드박스 없이 재시도하는 탈출구](#the-unsandboxed-retry-escape-hatch)에서 설명합니다. [`deniedDomains`](/docs/ko/settings-reference#sandbox-network-denieddomains)에 있는 호스트로의 연결도 모든 권한 모드에서 거부됩니다.594[`strictAllowlist`](/docs/ko/settings-reference#sandbox-network-strictallowlist) 또는 [`allowManagedDomainsOnly`](/docs/ko/settings-reference#sandbox-network-allowmanageddomainsonly)가 켜져 있으면, 기본 제공 샌드박스 프록시는 모든 권한 모드에서 연결을 거부합니다. `bypassPermissions` 모드에서는 둘 중 하나가 켜져 있지 않는 한 허용된 도메인 외부의 호스트가 허용됩니다. 해당 모드에서 명령이 샌드박스를 벗어날 수 있는 경우는 [샌드박스 없이 재시도하는 탈출구](#the-unsandboxed-retry-escape-hatch)에서 설명합니다. [`deniedDomains`](/docs/ko/settings-reference#sandbox-network-denieddomains)에 있는 호스트로의 연결도 모든 권한 모드에서 거부됩니다.

591 595 

592#### 로컬 주소로 해석되는 호스트 이름596#### 로컬 주소로 해석되는 호스트 이름

593 597 

594호스트 이름이 허용 목록을 통과한 후, 샌드박스 프록시는 이를 해석하며 이름이 로컬 주소로만 해석되는 경우 연결을 거부합니다. 로컬 주소에는 `127.0.0.1` 같은 루프백 주소, `169.254.169.254` 클라우드 메타데이터 엔드포인트 같은 링크 로컬 주소, 그리고 사용자 자신의 머신에 할당된 주소가 포함됩니다. `localhost` 및 `*.localhost` 이름은 루프백으로 해석되도록 허용됩니다.598호스트 이름이 허용 목록을 통과한 후, 샌드박스 프록시는 이를 해석하고 해당 이름이 로컬 주소로만 해석되면 연결을 거부합니다. 로컬 주소에는 `127.0.0.1` 같은 루프백 주소, `169.254.169.254` 클라우드 메타데이터 엔드포인트 같은 링크 로컬 주소, 그리고 사용자 컴퓨터에 할당된 주소가 포함됩니다. `localhost`와 `*.localhost`라는 이름은 루프백으로 해석되는 것이 허용됩니다.

595 599 

596`10.0.0.0/8` 같은 사설 범위로 해석되는 허용된 인트라넷 호스트 이름은 연결됩니다. 이름이 거부된 주소로 해석되도록 허용하려면 `"127.0.0.1:8080"`처럼 해당 IP 주소를 `allowedDomains`에 추가하십시오.600`10.0.0.0/8` 같은 사설 범위로 해석되는 허용된 인트라넷 호스트 이름은 연결됩니다. 이름이 거부되는 주소로 해석되도록 허용하려면 `"127.0.0.1:8080"`처럼 해당 IP 주소를 `allowedDomains`에 추가하십시오.

597 601 

598이 검사는 호스트 이름에 적용됩니다. IP 주소로의 연결은 허용된 도메인과 권한 모드에 따라 결정됩니다. 프록시는 업스트림 회사 프록시를 통해 보내는 연결에 대해서도 검사를 건너뛰는데, 해당 프록시가 이름을 해석하기 때문입니다.602이 검사는 호스트 이름에 적용됩니다. IP 주소로의 연결은 허용된 도메인과 권한 모드에 따라 결정됩니다. 또한 프록시는 업스트림 기업 프록시를 통해 보내는 연결에 대해서는 이 검사를 건너뜁니다. 해당 프록시가 이름을 해석하기 때문입니다.

599 603 

600#### 자동 모드에서 명령별 허용 도메인604#### 자동 모드의 명령별 허용 도메인

601 605 

602샌드박싱이 켜진 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서는 Claude가 각 연결에 대해 네트워크 승인을 트리거하는 대신 명령 자체에 해당 명령이 필요로 하는 호스트를 명시합니다. 샌드박스에서 실행되는 각 Bash, PowerShell 또는 [Monitor](/docs/ko/tools-reference#monitor-tool) 명령은 샌드박스의 허용 목록 외의 호스트 목록을 가질 수 있습니다. `registry.npmjs.org` 같은 도메인, `*.pythonhosted.org` 같은 와일드카드, 또는 IP 주소이며, 각각 선택적으로 `:port`를 붙일 수 있습니다. 분류기는 명령과 함께 호스트를 검토합니다. Claude Code v2.1.271 이상이 필요합니다.606샌드박싱이 켜진 [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)에서는 Claude가 각 연결마다 네트워크 승인을 트리거하는 대신, 명령에 필요한 호스트를 명령 자체에 지정합니다. 샌드박스에서 실행되는 각 Bash, PowerShell 또는 [Monitor](/docs/ko/tools-reference#monitor-tool) 명령은 샌드박스 허용 목록 외의 호스트 목록을 포함할 수 있습니다. 이 목록에는 `registry.npmjs.org` 같은 도메인, `*.pythonhosted.org` 같은 와일드카드 또는 IP 주소를 지정할 수 있으며, 각각 선택적으로 `:port`를 붙일 수 있습니다. 분류기는 명령과 함께 호스트를 검토합니다. Claude Code v2.1.271 이상이 필요합니다.

603 607 

604승인된 목록은 해당 명령 하나에 대해서만, 명령이 실행되는 동안 해당 호스트를 엽니다. 세션의 허용된 호스트나 설정에는 아무것도 추가되지 않으며, 다음 명령은 자체 호스트를 명시합니다.608승인된 목록은 해당 명령 하나에 대해서만, 그 명령이 실행되는 동안 해당 호스트를 엽니다. 세션의 허용된 호스트나 설정에는 아무것도 추가되지 않으며, 다음 명령은 자체 호스트를 지정합니다.

605 609 

606호스트를 포함하는 명령은 권한 규칙이나 샌드박스의 [자동 허용 모드](#sandbox-modes)로 승인되는 대신 분류기로 전달됩니다. [확인 규칙](/docs/ko/permissions#manage-permissions)이 해당 명령에 대해 프롬프트를 강제하면, 터미널의 권한 대화 상자에 명령과 함께 호스트가 나열되며, 그곳에서 승인하면 둘 다 적용됩니다.610호스트를 포함하는 명령은 권한 규칙이나 샌드박스의 [자동 허용 모드](#sandbox-modes)에 의해 승인되는 대신 분류기로 전달됩니다. [확인 규칙](/docs/ko/permissions#manage-permissions)이 해당 명령에 대해 프롬프트를 강제하는 경우, 터미널의 권한 대화 상자는 명령 옆에 호스트를 나열하며, 그곳에서 승인하면 둘 다 승인됩니다.

607 611 

608명령별 목록은 샌드박스가 기본적으로 거부하는 범위만 넓힙니다. [`deniedDomains`](/docs/ko/settings-reference#sandbox-network-denieddomains) 항목은 여전히 차단합니다. [`strictAllowlist`](/docs/ko/settings-reference#sandbox-network-strictallowlist) 또는 [`allowManagedDomainsOnly`](/docs/ko/settings-reference#sandbox-network-allowmanageddomainsonly)가 허용 목록을 잠그면 Claude Code는 명령별 목록을 거부합니다.612명령별 목록은 샌드박스가 기본적으로 거부하는 대상만 넓힙니다. [`deniedDomains`](/docs/ko/settings-reference#sandbox-network-denieddomains) 항목은 여전히 차단됩니다. [`strictAllowlist`](/docs/ko/settings-reference#sandbox-network-strictallowlist) 또는 [`allowManagedDomainsOnly`](/docs/ko/settings-reference#sandbox-network-allowmanageddomainsonly)가 허용 목록을 잠그면 Claude Code는 명령별 목록을 거부합니다.

609 613 

610명령별 목록이 적용되는 동안 Claude Code는 승인된 명령이 나열하지 않은 호스트로의 연결을 프롬프트나 분류기 검사 없이 거부합니다. 거부 시 명령 결과에 해당 호스트가 명시되며, Claude는 해당 호스트를 추가하여 명령을 다시 실행합니다.614명령별 목록이 적용되는 동안, Claude Code는 승인된 어떤 명령에도 나열되지 않은 호스트로의 연결을 프롬프트나 분류기 검사 없이 거부합니다. 거부 시 명령의 결과에 해당 호스트가 표시되며, Claude는 호스트를 추가하여 명령을 다시 실행합니다.

611 615 

612#### 도메인 목록의 IPv6 주소616#### 도메인 목록의 IPv6 주소

613 617 

614`allowedDomains`, `deniedDomains` 또는 `WebFetch(domain:...)` 규칙에서 IPv6 주소를 일치시키려면 주소를 대괄호로 묶어 작성하십시오. `"[::1]"`은 모든 포트에서 해당 주소와 일치하고, `"[::1]:443"`은 포트 443에서만 일치합니다. 대괄호 형식은 Claude Code v2.1.229 이상이 필요합니다.618`allowedDomains`, `deniedDomains` 또는 `WebFetch(domain:...)` 규칙에서 IPv6 주소와 일치시키려면 주소를 대괄호로 묶어 작성하십시오. `"[::1]"`은 모든 포트에서 해당 주소와 일치하고, `"[::1]:443"`은 포트 443에서만 일치합니다. 대괄호 형식에는 Claude Code v2.1.229 이상이 필요합니다.

615 619 

616`::1:443` 같은 대괄호 없는 항목은 주소인지, 포트가 붙은 주소인지 모호합니다.620`::1:443` 같은 대괄호 없는 항목은 주소인지, 포트가 붙은 주소인지 모호합니다.

617 621 

618* **거부 목록**: Claude Code는 항목이 파싱되는 모든 해석을 거부하므로, 사용자가 의도한 해석이 무엇이든 차단됩니다. 파싱 가능한 해석이 없는 항목의 경우 Claude Code는 아무것도 차단하지 않습니다622* **거부 목록**: Claude Code는 항목이 해석될 수 있는 모든 방식을 거부하므로, 사용자가 의도한 방식이 무엇이든 차단됩니다. 해석 가능한 방식이 없는 항목의 경우 Claude Code는 아무것도 차단하지 않습니다

619* **허용 목록**: Claude Code는 사용자가 작성한 것보다 더 많이 허용하지 않습니다. 호스트와 포트 해석이 깔끔하게 파싱되면 모호한 항목을 그 해석으로 다시 작성하며, 허용 목록을 넓히는 대신 항목을 완전히 삭제할 수도 있습니다623* **허용 목록**: Claude Code는 작성된 것보다 더 많이 허용하지 않습니다. 모호한 항목이 호스트와 포트 형식으로 깔끔하게 해석되면 그 형식으로 다시 작성하며, 허용 목록을 넓히는 대신 항목을 완전히 제외할 수도 있습니다

620 624 

621모호한 항목을 찾으려면 터미널에서 `claude doctor`를 실행하고 `Sandbox network domain entries have unreliable spellings` 경고를 확인하십시오. 각 모호한 항목을 대괄호 형식으로 다시 작성하십시오.625모호한 항목을 찾으려면 터미널에서 `claude doctor`를 실행하고 `Sandbox network domain entries have unreliable spellings` 경고를 확인하십시오. 모호한 각 항목을 대괄호 형식으로 다시 작성하십시오.

622 626 

623### OS 수준 적용627### OS 수준 적용

624 628 

625샌드박스가 적용된 Bash 도구는 운영 체제 보안 기본 요소를 사용합니다.629샌드박스된 Bash 도구는 운영 체제 보안 기본 요소를 사용합니다.

626 630 

627* **macOS**: 샌드박스 적용에 Seatbelt를 사용합니다631* **macOS**: 샌드박스 적용에 Seatbelt를 사용합니다

628* **Linux**: 격리에 [bubblewrap](https://github.com/containers/bubblewrap)을 사용합니다632* **Linux**: 격리에 [bubblewrap](https://github.com/containers/bubblewrap)을 사용합니다

629* **WSL2**: Linux와 마찬가지로 bubblewrap을 사용합니다633* **WSL2**: Linux와 동일하게 bubblewrap을 사용합니다

630 634 

631[`@anthropic-ai/sandbox-runtime`](https://github.com/anthropics/sandbox-runtime) 패키지를 단독으로 실행하여 Claude Code 프로세스를 감쌀 수도 있습니다. [샌드박스 런타임](/docs/ko/sandbox-environments#sandbox-runtime)을 참조하십시오.635[`@anthropic-ai/sandbox-runtime`](https://github.com/anthropics/sandbox-runtime) 패키지를 단독으로 실행하여 Claude Code 프로세스를 감쌀 수도 있습니다. [샌드박스 런타임](/docs/ko/sandbox-environments#sandbox-runtime)을 참조하십시오.

632 636 


974✗ Sandbox settings not changed: /home/you/project/.claude/settings.local.json couldn't be updated (EACCES). Start Claude Code in a project folder you can write to.978✗ Sandbox settings not changed: /home/you/project/.claude/settings.local.json couldn't be updated (EACCES). Start Claude Code in a project folder you can write to.

975```979```

976 980 

977괄호 안의 이유가 `EACCES`, `EPERM` 또는 `EROFS`인 경우 쓰기 권한이 있는 프로젝트 폴더에서 Claude Code를 시작한 다음 해당 세션에서 `/sandbox`를 다시 실행합니다.981괄호 안의 이유가 `EACCES`, `EPERM` 또는 `EROFS`인 경우 쓰기 권한이 있는 프로젝트 폴더에서 Claude Code를 시작한 다음 해당 세션에서 `/sandbox`를 다시 실행합니다. 이유가 `Invalid JSON syntax in settings file`로 시작하는 경우 프로젝트의 `.claude/settings.local.json`에 있는 JSON을 수정한 다음 `/sandbox`를 다시 실행합니다.

982 

983쓰기 권한이 있는 프로젝트 폴더를 사용할 수 없는 경우 대신 사용자 설정에서 샌드박스를 켭니다. `~/.claude/settings.json`에 다음을 추가합니다.

984 

985```json theme={null}

986{

987 "sandbox": {

988 "enabled": true

989 }

990}

991```

978 992 

979이유가 `Invalid JSON syntax in settings file`로 시작하는 경우 프로젝트의 `.claude/settings.local.json`에 있는 JSON을 수정한 다음 `/sandbox`를 다시 실행합니다.993이렇게 하면 [자동 허용 모드](#sandbox-modes)가 켜집니다. 일반 권한 모드를 사용하려면 [`sandbox.autoAllowBashIfSandboxed`](/docs/ko/settings-reference#sandbox-autoallowbashifsandboxed)도 `false`로 설정합니다. 변경 사항은 실행 중인 세션에서 Claude가 다음 셸 명령을 실행할 때 적용되며, 이후 `/sandbox`의 **Mode** 탭에 적용 중인 모드가 표시됩니다.

980 994 

981## 제한 사항995## 제한 사항

982 996 

Details

30| 로컬 파일 접근 | 아니오 (새로운 클론) | 예 | 예 |30| 로컬 파일 접근 | 아니오 (새로운 클론) | 예 | 예 |

31| MCP 서버 | 작업별로 구성된 커넥터 | [구성 파일](/docs/ko/mcp) 및 커넥터 | 세션에서 상속 |31| MCP 서버 | 작업별로 구성된 커넥터 | [구성 파일](/docs/ko/mcp) 및 커넥터 | 세션에서 상속 |

32| 권한 프롬프트 | 아니오 (자동으로 실행) | 작업별로 구성 가능 | 세션에서 상속 |32| 권한 프롬프트 | 아니오 (자동으로 실행) | 작업별로 구성 가능 | 세션에서 상속 |

33| 사용자 정의 가능한 일정 | CLI의 `/schedule`을 통해 | 예 | 예 |33| 사용자 정의 가능한 일정 | 예 | 예 | 예 |

34| 최소 간격 | 1시간 | 1분 | 1분 |34| 최소 간격 | 1시간 | Claude가 설정하는 경우 1분, [양식에서는 1시간](/docs/ko/desktop-scheduled-tasks#schedule-options) | 1분 |

35 35 

36> [!TIP]36> [!TIP]

37>37>


124 124 

125### 루프 중지하기125### 루프 중지하기

126 126 

127[자기 속도 `/loop`](#let-claude-choose-the-interval)가 다음 반복을 기다리는 동안 중지하려면 `Esc`를 누르세요. 이는 보류 중인 웨이크업을 지우므로 루프가 다시 실행되지 않습니다. [Claude에게 직접 요청](#manage-scheduled-tasks)하여 스케줄한 작업은 `Esc`의 영향을 받지 않으며 삭제할 때까지 유지됩니다.127* **[자기 속도 루프](#let-claude-choose-the-interval)**: 루프가 다음 반복을 기다리는 동안 `Esc`를 눌러 중지합니다. Claude가 유휴 상태일 때 `Ctrl+C`로도 중지할 수 있지만, [연결된 백그라운드 세션](#detach-without-stopping-a-loop)에서는 예외입니다. `Pending wakeup cancelled` 알림이 루프가 다시 실행되지 않음을 확인해 줍니다.

128* **[고정 간격 루프](#run-on-a-fixed-interval)**: `/loop 5m`과 같은 루프를 중지하려면 `cancel the deploy check loop`처럼 Claude에게 취소를 요청하세요. `Esc`와 `Ctrl+C`로는 이 루프나 [Claude에게 직접 요청하여 스케줄한](#manage-scheduled-tasks) 작업을 중지할 수 없습니다. 취소하지 않은 루프는 [7일이 경과](#seven-day-expiry)하면 종료됩니다.

128 129 

129[자기 속도 모드](#let-claude-choose-the-interval)에서 Claude는 작업이 완료되면 루프를 직접 종료할 수도 있습니다. Claude는 `stop: true`로 [`ScheduleWakeup` 도구](/docs/ko/tools-reference)를 호출하여 보류 중인 웨이크업을 즉시 취소합니다. 반복이 재스케줄링이나 중지 없이 끝나면 Claude Code는 약 20분 후에 하나의 폴백 웨이크업을 스케줄하고 해당 반복이 재스케줄링하지 않으면 루프를 종료합니다.130[자기 속도 모드](#let-claude-choose-the-interval)에서 Claude는 작업이 완료되면 루프를 직접 종료할 수도 있습니다. Claude는 `stop: true`로 [`ScheduleWakeup` 도구](/docs/ko/tools-reference)를 호출하여 보류 중인 웨이크업을 즉시 취소합니다. 반복이 재스케줄링이나 중지 없이 끝나면 Claude Code는 약 20분 후에 하나의 폴백 웨이크업을 스케줄하고 해당 반복이 재스케줄링하지 않으면 루프를 종료합니다.

130 131 

131고정 간격의 루프는 [스케줄된 작업처럼 취소](#manage-scheduled-tasks)하거나 [7일이 경과](#seven-day-expiry)할 때까지 계속 실행됩니다.132#### 루프를 중지하지 않고 분리하기

133 

134[백그라운드 세션에 연결](/docs/ko/agent-view#attach-to-a-session)되어 있고 Claude가 유휴 상태일 때, 빈 프롬프트에서 `Ctrl+C`를 두 번 누르면 분리됩니다. 그곳에서 다음 반복을 기다리던 자기 속도 루프는 계속 실행되며, 해당 반복은 예정대로 시작됩니다. 대신 루프를 중지하려면 분리하기 전에 `Esc`를 누르세요. 루프를 중지하지 않고 `Ctrl+C`로 분리하려면 Claude Code v2.1.295 이상이 필요합니다.

132 135 

133## 일회성 알림 설정하기136## 일회성 알림 설정하기

134 137 


232 235 

233* 작업은 Claude Code가 실행 중이고 유휴 상태일 때만 실행됩니다. 터미널을 닫거나 세션을 종료하면 작업 실행이 중지됩니다. [세션을 백그라운드로 전환](/docs/ko/agent-view#from-inside-a-session)하면 `/loop` 작업이 백그라운드 세션으로 이동되어 터미널 없이 계속 실행됩니다.236* 작업은 Claude Code가 실행 중이고 유휴 상태일 때만 실행됩니다. 터미널을 닫거나 세션을 종료하면 작업 실행이 중지됩니다. [세션을 백그라운드로 전환](/docs/ko/agent-view#from-inside-a-session)하면 `/loop` 작업이 백그라운드 세션으로 이동되어 터미널 없이 계속 실행됩니다.

234* 놓친 실행에 대한 추적 없음. 작업의 스케줄된 시간이 Claude가 오래 실행되는 요청에 바쁠 때 지나가면 Claude가 유휴 상태가 될 때 한 번 실행되며, 놓친 각 간격마다 한 번씩 실행되지 않습니다.237* 놓친 실행에 대한 추적 없음. 작업의 스케줄된 시간이 Claude가 오래 실행되는 요청에 바쁠 때 지나가면 Claude가 유휴 상태가 될 때 한 번 실행되며, 놓친 각 간격마다 한 번씩 실행되지 않습니다.

235* `claude --resume` 또는 `claude --continue`로 세션을 재개할 때 Claude Code는 `CronCreate`로 스케줄된 작업을 복원합니다. 단, [만료된](#seven-day-expiry) 반복 작업과 스케줄된 시간이 이미 지난 일회성 작업은 제외됩니다. [자체 속도 `/loop`](#let-claude-choose-the-interval)는 복원되지 않으므로 다시 시작하려면 `/loop`를 다시 실행하십시오. 백그라운드 Bash 및 모니터 작업은 재개 시 복원되지 않습니다.238* [백그라운드 세션](/docs/ko/agent-view#from-inside-a-session)에서 [자체 속도 루프](#let-claude-choose-the-interval)는 충돌 이후처럼 세션 프로세스가 실행 중이지 않을 때 다음 깨우기 시점이 도래하면 중지됩니다. 프로세스가 다시 시작되면 트랜스크립트에 [깨우기가 실행되지 않는다는 알림](/docs/ko/errors#restarted-after-its-next-loop-wakeup-was-due)이 표시됩니다. 루프를 계속하려면 [세션에 답장](/docs/ko/agent-view#peek-and-reply)하여 Claude에게 계속 실행하도록 요청하십시오.

239* `claude --resume` 또는 `claude --continue`로 세션을 재개할 때 Claude Code는 `CronCreate`로 스케줄된 작업을 복원합니다. 단, [만료된](#seven-day-expiry) 반복 작업과 스케줄된 시간이 이미 지난 일회성 작업은 제외됩니다. [자체 속도 `/loop`](#let-claude-choose-the-interval)는 복원되지 않으므로 다시 시작하려면 `/loop`를 다시 실행하십시오.

240* 복원된 반복 작업은 세션이 실행되지 않는 동안 놓친 실행을 수행하지 않습니다. 다음 실행은 재개 후 처음 도래하는 실행이며, 해당 실행에는 [지터](#jitter)가 적용됩니다.

241* `claude --resume` 또는 `claude --continue`로 재개할 때 Claude Code는 세션이 종료될 때 실행 중이던 백그라운드 Bash 명령과 모니터를 다시 시작하지 않습니다. 여전히 필요한 경우 Claude에게 다시 시작하도록 요청하십시오.

236* [기능 플래그 가져오기가 비활성화된 경우](/docs/ko/env-vars#features-that-need-feature-flag-fetching), Claude Code는 세션 간에 유지하도록 요청한 작업을 프로젝트의 `.claude/scheduled_tasks.json` 파일에 저장합니다. `.claude` 디렉터리 또는 해당 파일이 심볼릭 링크인 경우 Claude Code는 작업을 스케줄하는 대신 오류를 반환합니다. 저장된 작업은 작업을 생성한 프로젝트 폴더에서만 실행됩니다. 파일을 새로운 worktree와 같은 다른 폴더로 복사하면 해당 세션에서 복사된 작업을 나열하지만 실행하지 않으므로 해당 폴더에서 작업을 다시 생성하십시오.242* [기능 플래그 가져오기가 비활성화된 경우](/docs/ko/env-vars#features-that-need-feature-flag-fetching), Claude Code는 세션 간에 유지하도록 요청한 작업을 프로젝트의 `.claude/scheduled_tasks.json` 파일에 저장합니다. `.claude` 디렉터리 또는 해당 파일이 심볼릭 링크인 경우 Claude Code는 작업을 스케줄하는 대신 오류를 반환합니다. 저장된 작업은 작업을 생성한 프로젝트 폴더에서만 실행됩니다. 파일을 새로운 worktree와 같은 다른 폴더로 복사하면 해당 세션에서 복사된 작업을 나열하지만 실행하지 않으므로 해당 폴더에서 작업을 다시 생성하십시오.

237 243 

238무인으로 실행해야 하는 cron 기반 자동화의 경우:244무인으로 실행해야 하는 cron 기반 자동화의 경우:

Details

281| `CLAUDE_RUNNER_ATTEMPT` | 로깅에 사용하는 세션별 카운터입니다. 재시도 횟수나 요청 수가 아닙니다. 사전 워밍 요청의 경우 `0`이지만, 세션에 대한 요청도 `0`을 가질 수 있습니다. |281| `CLAUDE_RUNNER_ATTEMPT` | 로깅에 사용하는 세션별 카운터입니다. 재시도 횟수나 요청 수가 아닙니다. 사전 워밍 요청의 경우 `0`이지만, 세션에 대한 요청도 `0`을 가질 수 있습니다. |

282| `CLAUDE_RUNNER_ORDER_SERVER_TIME` | 폴 응답의 HTTP `Date` 헤더에서 서버 시간입니다. 훅이 작업 지시서 JWT의 `exp`를 확인할 때 로컬 클록 대신 이 값과 비교하여 시간 차이를 허용합니다. 게이트웨이가 헤더를 생략한 경우 비어 있습니다. |282| `CLAUDE_RUNNER_ORDER_SERVER_TIME` | 폴 응답의 HTTP `Date` 헤더에서 서버 시간입니다. 훅이 작업 지시서 JWT의 `exp`를 확인할 때 로컬 클록 대신 이 값과 비교하여 시간 차이를 허용합니다. 게이트웨이가 헤더를 생략한 경우 비어 있습니다. |

283| `CLAUDE_RUNNER_POOL_ID` | 새 러너가 조인해야 하는 환경의 ID이며, `ccpool_...` 형식입니다. |283| `CLAUDE_RUNNER_POOL_ID` | 새 러너가 조인해야 하는 환경의 ID이며, `ccpool_...` 형식입니다. |

284| `CLAUDE_RUNNER_ACCOUNT_ID` | 세션을 대기열에 넣은 계정의 태그된 ID이며, 계정별 라우팅, 할당량 또는 차지백용입니다. 사용할 수 없을 때 비어 있으며, Claude Tag 채널 세션의 경우 항상 비어 있습니다. 이러한 세션은 계정이 대기열에 넣지 않습니다. |284| `CLAUDE_RUNNER_ACCOUNT_ID` | 세션을 대기열에 넣은 계정의 태그된 ID입니다. 계정별 라우팅, 할당량 또는 차지백에 사용하고 중복 제거 키로는 사용하지 마십시오. 사용할 수 없을 때 비어 있으며, Claude Tag 채널 세션의 경우 항상 비어 있습니다. 이러한 세션은 계정이 대기열에 넣지 않습니다. |

285| `CLAUDE_RUNNER_ACCOUNT_EMAIL` | 세션을 대기열에 넣은 계정의 이메일입니다. 사용할 수 없을 때 비어 있습니다. 이메일을 개인 식별 정보로 취급하고 로깅하지 마십시오. |285| `CLAUDE_RUNNER_ACCOUNT_EMAIL` | 세션을 대기열에 넣은 계정의 이메일입니다. 사용할 수 없을 때 비어 있습니다. 이메일을 개인 식별 정보로 취급하고 로깅하지 마십시오. |

286| `CLAUDE_RUNNER_PRIMARY_REPO_URL` | 세션의 첫 번째 git 소스의 URL이며, 해당 리포지토리가 사전 워밍된 러너로 라우팅하기 위한 것입니다. 세션에 git 소스가 없을 때 비어 있습니다. |286| `CLAUDE_RUNNER_PRIMARY_REPO_URL` | 세션의 첫 번째 git 소스의 URL이며, 해당 리포지토리가 사전 워밍된 러너로 라우팅하기 위한 것입니다. 세션에 git 소스가 없을 때 비어 있습니다. |

287| `CLAUDE_RUNNER_PRIMARY_REPO_REVISION` | 세션의 첫 번째 git 소스의 리비전입니다: 브랜치, SHA, 태그 또는 전체 참조 이름입니다. 지정되지 않은 경우 비어 있습니다. |287| `CLAUDE_RUNNER_PRIMARY_REPO_REVISION` | 세션의 첫 번째 git 소스의 리비전입니다: 브랜치, SHA, 태그 또는 전체 참조 이름입니다. 지정되지 않은 경우 비어 있습니다. |


306 * **종료 1, 또는 `--hook-timeout`이 끝날 때 여전히 실행 중**: 재시도 가능한 실패. 세션은 백오프되고 다시 제공됩니다.306 * **종료 1, 또는 `--hook-timeout`이 끝날 때 여전히 실행 중**: 재시도 가능한 실패. 세션은 백오프되고 다시 제공됩니다.

307 * **종료 2 이상**: 재시도 불가능한 실패. 사용자가 세션에 새 메시지를 보내거나 [Owner](/docs/ko/cloud-environments#organization-shared-environments)가 환경의 **Activity** 탭에서 해당 세션의 **Retry**를 선택할 때까지 세션은 다시 스폰되지 않습니다.307 * **종료 2 이상**: 재시도 불가능한 실패. 사용자가 세션에 새 메시지를 보내거나 [Owner](/docs/ko/cloud-environments#organization-shared-environments)가 환경의 **Activity** 탭에서 해당 세션의 **Retry**를 선택할 때까지 세션은 다시 스폰되지 않습니다.

308 308 

309 0이 아닌 종료 시 훅의 stderr 끝이 **Activity** 탭에 실패 이유로 표시되므로 실행 가능한 오류를 stderr에 작성하고 시크릿은 절대 작성하지 마십시오. 셸 훅에서는 [일시적인 실패를 재시도 가능한 상태로 유지하십시오](#keep-transient-failures-retryable-in-a-shell-hook).309 세션이 백오프되는 동안에는 **Activity** 탭에 스폰 오류 없이 **Queued**로 표시되므로, 오케스트레이터의 로그에서 훅의 출력을 확인하십시오. 차단되면 세션은 **Failed**로 표시됩니다. 세션을 확장하면 훅 stderr의 마지막 512자에서 가져온 스폰 오류를 확인할 수 있습니다. stderr에는 조치 가능한 오류를 작성하고 시크릿은 작성하지 마십시오. 셸 훅에서는 [일시적인 실패를 재시도 가능한 상태로 유지하십시오](#keep-transient-failures-retryable-in-a-shell-hook).

310 310 

311 사전 워밍 요청의 경우 실패할 세션이 없습니다: 오케스트레이터는 0이 아닌 종료를 로컬에만 로깅하고, 서버는 `--expected-spawn-seconds` 리스가 만료된 후 스폰을 재요청합니다.311 사전 워밍 요청의 경우 실패할 세션이 없습니다: 오케스트레이터는 0이 아닌 종료를 로컬에만 로깅하고, 서버는 `--expected-spawn-seconds` 리스가 만료된 후 스폰을 재요청합니다.

3124. **`--expected-spawn-seconds`를 최소한 스폰 요청부터 러너 등록까지의 p99 시간으로 설정합니다.** 오케스트레이터가 스폰 요청을 받은 시점부터 측정하고, 부팅 시간뿐 아니라 플랫폼에서 용량을 기다리는 시간도 포함하십시오. 이 값은 서버 측 리스이며 작업 지시서도 함께 만료되므로, 워크로드가 이보다 오래 걸리는 러너는 등록할 수 없습니다. 모든 오케스트레이터 복제본은 동일한 값을 사용해야 합니다.3124. **`--expected-spawn-seconds`를 최소한 스폰 요청부터 러너 등록까지의 p99 시간으로 설정합니다.** 오케스트레이터가 스폰 요청을 받은 시점부터 측정하고, 부팅 시간뿐 아니라 플랫폼에서 용량을 기다리는 시간도 포함하십시오. 이 값은 서버 측 리스이며 작업 지시서도 함께 만료되므로, 워크로드가 이보다 오래 걸리는 러너는 등록할 수 없습니다. 모든 오케스트레이터 복제본은 동일한 값을 사용해야 합니다.


327 327 

328러너가 종료되면 워크로드를 제거하십시오. 예를 들어 Kubernetes Job에 `ttlSecondsAfterFinished`를 설정하거나, VM의 시작 스크립트가 종료 후 VM을 삭제하도록 합니다.328러너가 종료되면 워크로드를 제거하십시오. 예를 들어 Kubernetes Job에 `ttlSecondsAfterFinished`를 설정하거나, VM의 시작 스크립트가 종료 후 VM을 삭제하도록 합니다.

329 329 

330#### 백그라운드 프로세스의 출력을 파일로 보내기

331 

332`spawn-runner` 훅이 백그라운드에서 실행 중인 프로세스를 남겨 두는 경우, 해당 프로세스의 출력을 훅의 사용자가 생성할 수 있는 파일로 보내십시오. 예를 들어 프로세스를 시작하는 명령에 `>> "$HOME/claude-runner.log" 2>&1`를 `&`보다 앞에 추가합니다. 다음 훅 줄은 리디렉션이 들어가는 위치를 보여 주며, `your-background-command`는 훅이 백그라운드로 실행하는 명령을 나타냅니다:

333 

334```bash theme={null}

335your-background-command >> "$HOME/claude-runner.log" 2>&1 &

336```

337 

338리디렉션이 없으면 프로세스는 훅의 stdout과 stderr에 씁니다:

339 

340* 훅이 종료되고 약 1초 후 오케스트레이터는 `exited, but a process it started still has the hook's stdout or stderr open`을 로그에 기록합니다. 그 줄 이후로는 해당 출력을 `[runner:hook:spawn-runner:after-exit jti=<order id>]` 아래에 최대 64KB까지 더 기록한 다음 나머지는 버립니다.

341* 오케스트레이터가 종료되면 프로세스가 그곳에 쓰는 작업은 실패합니다.

342 

343훅이 직접 시작하는 러너는 [환경 시크릿](/docs/ko/self-hosted-environments-deploy#harden-your-deployment)을 보유한 오케스트레이터 호스트에서 세션을 실행합니다.

344 

345v2.1.305 이전에는 훅이 시작한 프로세스가 훅의 stdout 또는 stderr를 열어 두고 있으면 이미 종료된 훅도 [`--hook-timeout`](/docs/ko/self-hosted-environments-reference#orchestrator-cli-flags)에 도달했으며, 다음과 같이 표시되었습니다:

346 

347* **Activity 탭**, 실패한 세션의 스폰 오류: `spawn-runner hook timed out after 60000ms` 또는 훅 stderr의 마지막 줄들.

348* **오케스트레이터 로그**: `timed out after 60000ms, sending SIGTERM to process tree`.

349 

330#### 셸 훅에서 일시적인 실패를 재시도 가능한 상태로 유지하기350#### 셸 훅에서 일시적인 실패를 재시도 가능한 상태로 유지하기

331 351 

332`set -e`를 사용하는 셸 훅에서는 재시도로 해결될 수 있었던 실패가 세션을 차단할 수 있습니다. 훅은 실패한 명령에서 멈추고 해당 명령 자체의 상태로 종료하며, 오케스트레이터는 그 상태에 종료 코드 계약을 적용합니다. 명령이 설치되지 않았을 때의 `127`이나 HTTP 오류 시 `curl --fail`이 반환하는 `22`처럼 많은 실패가 2 이상의 상태를 반환하므로, 첫 번째 실패에서 세션이 차단됩니다.352`set -e`를 사용하는 셸 훅에서는 재시도로 해결될 수 있었던 실패가 세션을 차단할 수 있습니다. 훅은 실패한 명령에서 멈추고 해당 명령 자체의 상태로 종료하며, 오케스트레이터는 그 상태에 종료 코드 계약을 적용합니다. 명령이 설치되지 않았을 때의 `127`이나 HTTP 오류 시 `curl --fail`이 반환하는 `22`처럼 많은 실패가 2 이상의 상태를 반환하므로, 첫 번째 실패에서 세션이 차단됩니다.


350 ```bash theme={null}370 ```bash theme={null}

351 trap 'rc=$?; your-cleanup-command || true; [ "$rc" -eq 0 ] || [ -n "${PERMANENT:-}" ] || exit 1' EXIT371 trap 'rc=$?; your-cleanup-command || true; [ "$rc" -eq 0 ] || [ -n "${PERMANENT:-}" ] || exit 1' EXIT

352 ```372 ```

353* **실패해도 되는 명령**: 훅이 이전에 `set -e`를 사용하지 않았다면, 이제 아무것도 찾지 못한 조회나 플랫폼이 거부하는 중복 제출처럼 0이 아닌 값을 반환하는 첫 번째 명령에서 멈춥니다. 훅이 결과에 따라 동작한다면 해당 명령을 `if`의 조건으로 만드십시오. 결과를 무시한다면 명령 뒤에 `|| true`를 붙이십시오.373* **실패해도 되는 명령**: 훅이 이전에 `set -e`를 사용하지 않았다면, 이제 아무것도 찾지 못한 조회처럼 0이 아닌 값을 반환하는 첫 번째 명령에서 멈춥니다. 훅이 결과에 따라 동작한다면 해당 명령을 `if`의 조건으로 만드십시오. 결과를 무시한다면 명령 뒤에 `|| true`를 붙이십시오.

374* **워크로드를 제출하는 명령**: 이 명령 뒤에는 `|| true`를 붙이지 마십시오. `|| true`를 붙이면 할당량 초과 등으로 플랫폼이 제출을 거부하더라도 훅이 0으로 종료하며, 세션은 시작되지 않은 러너를 계속 기다리게 됩니다.

375 

376 [훅의 첫 번째 규칙](#the-spawn-runner-hook)에 따라 워크로드 이름을 `CLAUDE_RUNNER_ORDER_ID`를 기준으로 지정하십시오. 그러면 이미 존재한다는 응답은 동일한 요청의 재전달이므로, 그 응답만 성공으로 처리하십시오. 그 밖의 응답은 stderr에 출력하고 종료 1로 종료하거나, 어떤 재시도로도 해결할 수 없다면 `permanent`를 호출하십시오. 다음 예시는 워크로드만 담은 `job.yaml`을 사용하여 `kubectl create`에 대해 이를 수행합니다:

377 

378 ```bash theme={null}

379 if ! out=$(kubectl create -f job.yaml 2>&1); then

380 case "$out" in

381 *AlreadyExists*) ;;

382 *) printf '%s\n' "${out:-kubectl create failed}" >&2; exit 1 ;;

383 esac

384 fi

385 ```

386 

387 그러면 오케스트레이터의 로그에 해당 메시지가 표시됩니다. 훅이 다른 객체도 생성한다면 각 객체의 이름을 주문 ID를 기준으로 지정하고, 각각에 별도의 명령을 사용하며, 이미 존재한다는 응답을 같은 방식으로 성공으로 처리하십시오. 시크릿을 담는 객체의 경우 명령의 출력 대신 고정된 메시지를 출력하십시오.

354 388 

355trap이 작동하는지 확인하려면 `trap` 줄 바로 아래에 `no-such-command`처럼 존재하지 않는 명령을 호출하는 줄을 추가하십시오. 셸에서 훅 파일을 실행하고 `echo $?`가 `1`을 출력하는지 확인한 다음 해당 줄을 제거하십시오.389trap이 작동하는지 확인하려면 `trap` 줄 바로 아래에 `no-such-command`처럼 존재하지 않는 명령을 호출하는 줄을 추가하십시오. 셸에서 훅 파일을 실행하고 `echo $?`가 `1`을 출력하는지 확인한 다음 해당 줄을 제거하십시오.

356 390 


457 491 

458* 표준 시스템 경로에 있는 엔터프라이즈 범위 [관리형 MCP 파일](/docs/ko/managed-mcp): Linux 러너 호스트에서는 `/etc/claude-code/managed-mcp.json`, macOS 호스트에서는 `/Library/Application Support/ClaudeCode/managed-mcp.json`입니다. 관리자가 나열한 서버만 로드할 수 있도록 잠긴 플릿에 사용합니다. 우선순위 규칙은 [managed-mcp.json을 통한 배타적 제어](/docs/ko/managed-mcp#exclusive-control-with-managed-mcp-json)를 참조하세요. 이 파일이 러너 호스트에 있으면 Claude Code는 claude.ai 커넥터를 포함하여 Anthropic의 컨트롤 플레인이 세션에 전달하는 MCP 서버를 건너뛰고, 세션 자식 프로세스의 stderr에 경고로 해당 서버 이름을 표시하며, 러너는 이를 `debug` 로그 수준으로 기록합니다. v2.1.229 이전에는 이러한 세션이 `You cannot dynamically configure MCP servers when an enterprise MCP config is present`와 함께 시작 시 종료되었습니다.492* 표준 시스템 경로에 있는 엔터프라이즈 범위 [관리형 MCP 파일](/docs/ko/managed-mcp): Linux 러너 호스트에서는 `/etc/claude-code/managed-mcp.json`, macOS 호스트에서는 `/Library/Application Support/ClaudeCode/managed-mcp.json`입니다. 관리자가 나열한 서버만 로드할 수 있도록 잠긴 플릿에 사용합니다. 우선순위 규칙은 [managed-mcp.json을 통한 배타적 제어](/docs/ko/managed-mcp#exclusive-control-with-managed-mcp-json)를 참조하세요. 이 파일이 러너 호스트에 있으면 Claude Code는 claude.ai 커넥터를 포함하여 Anthropic의 컨트롤 플레인이 세션에 전달하는 MCP 서버를 건너뛰고, 세션 자식 프로세스의 stderr에 경고로 해당 서버 이름을 표시하며, 러너는 이를 `debug` 로그 수준으로 기록합니다. v2.1.229 이전에는 이러한 세션이 `You cannot dynamically configure MCP servers when an enterprise MCP config is present`와 함께 시작 시 종료되었습니다.

459* 러너 호스트의 [관리형 설정](/docs/ko/managed-settings)에 있는 [`managedMcpServers`](/docs/ko/settings-reference#managedmcpservers) 키: 배타적 제어를 하지 않고 HTTP 및 SSE 서버를 제공하므로 다른 소스의 서버도 계속 로드됩니다. Claude Code v2.1.259 이상이 필요합니다.493* 러너 호스트의 [관리형 설정](/docs/ko/managed-settings)에 있는 [`managedMcpServers`](/docs/ko/settings-reference#managedmcpservers) 키: 배타적 제어를 하지 않고 HTTP 및 SSE 서버를 제공하므로 다른 소스의 서버도 계속 로드됩니다. Claude Code v2.1.259 이상이 필요합니다.

460* `<repo>/.mcp.json`: 프로젝트 범위입니다. 파일을 저장소에 커밋하면 해당 서버는 클라우드 세션에서 자동 승인됩니다. 여러 저장소가 있는 세션에서는 [최대 하나의 저장소 파일만 로드됩니다](#repository-settings-in-sessions-with-several-repositories).494* `<repo>/.mcp.json`: 프로젝트 범위입니다. [프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories) 스레드 외부에서는 파일을 저장소에 커밋하면 해당 서버가 클라우드 세션에서 자동 승인됩니다. 여러 저장소가 있는 세션에서는 [최대 하나의 저장소 파일만 로드됩니다](#repository-settings-in-sessions-with-several-repositories).

461* 래퍼 스크립트에서 지정하는 [`--mcp-config`](/docs/ko/cli-reference#cli-flags) 파일: `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --mcp-config /etc/claude/mcp.json`과 같이 `"$@"` 뒤에 플래그를 덧붙입니다. 세션 도중 세션에 전달된 서버가 업데이트될 때 이 파일의 서버가 계속 실행되도록 하려면, `exec`처럼 래퍼가 [전체 환경](#wrapper-scripts)을 자식 프로세스에 전달하도록 합니다. v2.1.299 이전에는 이 파일의 stdio, HTTP, SSE 서버가 해당 서버를 명시하지 않은 첫 번째 업데이트 시점에 종료되었습니다.495* 래퍼 스크립트에서 지정하는 [`--mcp-config`](/docs/ko/cli-reference#cli-flags) 파일: `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --mcp-config /etc/claude/mcp.json`과 같이 `"$@"` 뒤에 플래그를 덧붙입니다. 세션 도중 세션에 전달된 서버가 업데이트될 때 이 파일의 서버가 계속 실행되도록 하려면, `exec`처럼 래퍼가 [전체 환경](#wrapper-scripts)을 자식 프로세스에 전달하도록 합니다. v2.1.299 이전에는 이 파일의 stdio, HTTP, SSE 서버가 해당 서버를 명시하지 않은 첫 번째 업데이트 시점에 종료되었습니다.

462 496 

463조직에 커넥터 전달이 활성화되어 있으면 Anthropic의 컨트롤 플레인은 claude.ai에서 구성한 커넥터를 `api.anthropic.com`을 경유하는 서버 제공 MCP 구성을 통해 대화형으로 생성된 세션에 전달합니다. [CLI 디스패치](/docs/ko/self-hosted-environments-testing#run-the-test-loop)와 같이 프로그래밍 방식으로 생성된 세션은 커넥터 전달을 받지 않으므로, 이 섹션에 나열된 다른 소스를 통해 MCP 서버를 제공해야 합니다. 자식 프로세스의 OAuth 토큰에는 커넥터를 직접 가져오기 위한 범위가 포함되어 있지 않으므로 자식 프로세스는 직접 가져오기를 시도하지 않으며, 전달은 서버 주도로 이루어집니다.497조직에 커넥터 전달이 활성화되어 있으면 Anthropic의 컨트롤 플레인은 claude.ai에서 구성한 커넥터를 `api.anthropic.com`을 경유하는 서버 제공 MCP 구성을 통해 대화형으로 생성된 세션에 전달합니다. [CLI 디스패치](/docs/ko/self-hosted-environments-testing#run-the-test-loop)와 같이 프로그래밍 방식으로 생성된 세션은 커넥터 전달을 받지 않으므로, 이 섹션에 나열된 다른 소스를 통해 MCP 서버를 제공해야 합니다. 자식 프로세스의 OAuth 토큰에는 커넥터를 직접 가져오기 위한 범위가 포함되어 있지 않으므로 자식 프로세스는 직접 가져오기를 시도하지 않으며, 전달은 서버 주도로 이루어집니다.

464 498 

499> [!NOTE]

500>

501> 커넥터를 전달받은 세션에서는 호스트의 `.claude.json` 또는 저장소의 `.mcp.json`에 있는 같은 이름의 서버가 연결되지 않습니다. 둘 다 사용하려면 서버에 다른 이름을 지정합니다.

502 

465`settings.json`에는 MCP 서버 정의가 포함되지 않으며, 설정 스키마에 최상위 `mcpServers` 필드도 없습니다. 관리형 설정에서는 대신 [`managedMcpServers`](/docs/ko/settings-reference#managedmcpservers) 키로 서버를 제공합니다.503`settings.json`에는 MCP 서버 정의가 포함되지 않으며, 설정 스키마에 최상위 `mcpServers` 필드도 없습니다. 관리형 설정에서는 대신 [`managedMcpServers`](/docs/ko/settings-reference#managedmcpservers) 키로 서버를 제공합니다.

466 504 

467세션은 러너의 환경을 상속하므로, 러너에서 [`ENABLE_TOOL_SEARCH`](/docs/ko/mcp#scale-with-mcp-tool-search)를 설정하면 러너가 생성하는 모든 세션의 MCP 도구 검색을 제어할 수 있습니다. 값에 대해서는 MCP 페이지에서 다룹니다.505세션은 러너의 환경을 상속하므로, 러너에서 [`ENABLE_TOOL_SEARCH`](/docs/ko/mcp#scale-with-mcp-tool-search)를 설정하면 러너가 생성하는 모든 세션의 MCP 도구 검색을 제어할 수 있습니다. 값에 대해서는 MCP 페이지에서 다룹니다.


633 671 

634세션은 다음 설정 파일도 읽습니다.672세션은 다음 설정 파일도 읽습니다.

635 673 

636* **프로젝트 설정**: 저장소에 커밋된 `.claude/settings.json`이 사용자 수준 기준선 위에 계층으로 적용됩니다. 여러 저장소가 있는 세션에서는 [최대 하나의 저장소 파일만 적용됩니다](#repository-settings-in-sessions-with-several-repositories).674* **프로젝트 설정**: [프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories) 스레드 외부에서는 저장소에 커밋된 `.claude/settings.json`이 사용자 수준 기준선 위에 계층으로 적용됩니다. 여러 저장소가 있는 세션에서는 [최대 하나의 저장소 파일만 적용됩니다](#repository-settings-in-sessions-with-several-repositories).

637* **관리형 설정**: 세션은 러너 이미지의 표준 시스템 경로에서 [`managed-settings.json`](/docs/ko/settings#where-settings-live)을 읽습니다. 해당 키가 [서버 관리형 설정](/docs/ko/server-managed-settings)과 함께 적용되는지 여부는 [Claude Code가 관리형 소스를 결합하는 방식](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)을 참조하십시오.675* **관리형 설정**: 세션은 러너 이미지의 표준 시스템 경로에서 [`managed-settings.json`](/docs/ko/settings#where-settings-live)을 읽습니다. 해당 키가 [서버 관리형 설정](/docs/ko/server-managed-settings)과 함께 적용되는지 여부는 [Claude Code가 관리형 소스를 결합하는 방식](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)을 참조하십시오.

638 676 

639이러한 소스가 적용되는 순서는 [설정 우선순위](/docs/ko/settings#settings-precedence)를 참조하십시오.677이러한 소스가 적용되는 순서는 [설정 우선순위](/docs/ko/settings#settings-precedence)를 참조하십시오.


644* **작성 주체**: 컨트롤 플레인은 세션별 입력이나 서드 파티 입력이 아닌, 자체 배포의 고정된 상수로 스크립트를 채웁니다.682* **작성 주체**: 컨트롤 플레인은 세션별 입력이나 서드 파티 입력이 아닌, 자체 배포의 고정된 상수로 스크립트를 채웁니다.

645* **여전히 적용되는 제어**: `--settings`를 통해 전달된 훅은 관리형 계층이 아닌 일반적인 병합 훅 구성에 포함되므로, 관리형 설정이 여전히 적용됩니다. `disableAllHooks`는 이 훅을 비활성화하며, 이 훅은 [`allowManagedHooksOnly`](/docs/ko/settings-reference#allowmanagedhooksonly)가 계속 로드하는 범주에 속하지 않습니다.683* **여전히 적용되는 제어**: `--settings`를 통해 전달된 훅은 관리형 계층이 아닌 일반적인 병합 훅 구성에 포함되므로, 관리형 설정이 여전히 적용됩니다. `disableAllHooks`는 이 훅을 비활성화하며, 이 훅은 [`allowManagedHooksOnly`](/docs/ko/settings-reference#allowmanagedhooksonly)가 계속 로드하는 범주에 속하지 않습니다.

646 684 

647사람이 직접 세션을 시작하면 Claude Code는 [해당 claude.ai 계정에서 활성화된 스킬](/docs/ko/skills#skills-in-cowork-and-cloud-sessions)도 해당 세션의 설정 디렉터리에 다운로드합니다. [클라우드 예약 작업](/docs/ko/routines) 실행은 소유자의 스킬을 받지 않으며, [Bedrock 또는 Agent Platform으로 모델 요청을 보내는](#send-model-requests-to-bedrock-or-agent-platform) 세션은 스킬을 전혀 다운로드하지 않습니다. 이러한 세션에 필요한 스킬은 저장소의 `.claude/skills/`에 커밋하거나 러너 이미지에 추가하십시오.685사람이 직접 세션을 시작하면 Claude Code는 [해당 claude.ai 계정에서 활성화된 스킬](/docs/ko/skills#skills-in-cowork-and-cloud-sessions)도 해당 세션의 설정 디렉터리에 다운로드합니다. [클라우드 예약 작업](/docs/ko/routines) 실행은 소유자의 스킬을 받지 않으며, [Bedrock 또는 Agent Platform으로 모델 요청을 보내는](#send-model-requests-to-bedrock-or-agent-platform) 세션은 스킬을 전혀 다운로드하지 않습니다. 이러한 세션에 필요한 스킬은 러너 이미지에 추가하거나, [프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories) 외부에서는 저장소의 `.claude/skills/`에 커밋하십시오.

648 686 

649[Claude Tag](https://claude.com/docs/claude-tag/overview) 세션을 제외하고, 자체 호스팅 환경의 세션은 기본적으로 [자동 메모리](/docs/ko/memory#auto-memory)가 꺼진 상태로 실행됩니다. 세션 간에 유지되어야 하는 지침은 러너 이미지나 저장소의 `CLAUDE.md`를 사용하십시오.687[Claude Tag](https://claude.com/docs/claude-tag/overview) 세션을 제외하고, 자체 호스팅 환경의 세션은 기본적으로 [자동 메모리](/docs/ko/memory#auto-memory)가 꺼진 상태로 실행됩니다. 세션 간에 유지되어야 하는 지침은 러너 이미지나 저장소의 `CLAUDE.md`를 사용하십시오.

650 688 


652 690 

653### 여러 저장소가 있는 세션의 저장소 설정691### 여러 저장소가 있는 세션의 저장소 설정

654 692 

655여러 저장소가 있는 세션에서 Claude Code는 세션이 시작되는 디렉터리에서 프로젝트 설정을 읽으므로, 최대 하나의 저장소의 `.claude/settings.json`만 프로젝트 설정으로 적용됩니다. 다른 저장소의 파일에 정의된 훅은 실행되지 않고, 그 안의 거부 규칙은 적용되지 않으며, 해당 `env`도 설정되지 않습니다.693[프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories)의 스레드에서는 스레드가 어디에서 시작되든 어떤 저장소의 `.claude/settings.json`도 프로젝트 설정으로 적용되지 않으며, 어떤 저장소의 `.mcp.json`이나 스킬도 로드되지 않습니다. 이러한 스레드에 스킬을 제공하려면 러너 이미지에 추가하십시오.

694 

695여러 저장소가 있는 그 밖의 세션에서 Claude Code는 세션이 시작되는 디렉터리에서 프로젝트 설정을 읽으므로, 최대 하나의 저장소의 `.claude/settings.json`만 프로젝트 설정으로 적용됩니다. 다른 저장소의 파일에 정의된 훅은 실행되지 않고, 그 안의 거부 규칙은 적용되지 않으며, 해당 `env`도 설정되지 않습니다.

656 696 

657* **기본값인 `--capacity 1`과 기본 제공 체크아웃 사용 시**: 세션은 저장소 목록의 첫 번째 저장소에서 시작됩니다. 해당 저장소의 `.claude/settings.json`이 프로젝트 설정으로 적용되고 `.mcp.json`이 로드되며, 다른 저장소의 파일은 적용되거나 로드되지 않습니다.697* **기본값인 `--capacity 1`과 기본 제공 체크아웃 사용 시**: 세션은 저장소 목록의 첫 번째 저장소에서 시작됩니다. 해당 저장소의 `.claude/settings.json`이 프로젝트 설정으로 적용되고 `.mcp.json`이 로드되며, 다른 저장소의 파일은 적용되거나 로드되지 않습니다.

658* **1보다 큰 `--capacity` 또는 [`checkout` 훅](#checkout) 사용 시**: 세션은 체크아웃이 포함된 세션별 디렉터리에서 시작됩니다. 어떤 저장소의 `.claude/settings.json`도 프로젝트 설정으로 적용되지 않고, 어떤 저장소의 `.mcp.json`도 로드되지 않으며, 훅 명령의 [`$CLAUDE_PROJECT_DIR`](/docs/ko/hooks#reference-scripts-by-path)은 체크아웃이 아닌 해당 디렉터리가 됩니다.698* **1보다 큰 `--capacity` 또는 [`checkout` 훅](#checkout) 사용 시**: 세션은 체크아웃이 포함된 세션별 디렉터리에서 시작됩니다. 어떤 저장소의 `.claude/settings.json`도 프로젝트 설정으로 적용되지 않고, 어떤 저장소의 `.mcp.json`도 로드되지 않으며, 훅 명령의 [`$CLAUDE_PROJECT_DIR`](/docs/ko/hooks#reference-scripts-by-path)은 체크아웃이 아닌 해당 디렉터리가 됩니다.

659 699 

660각 저장소의 `CLAUDE.md`와 스킬은 세션이 어디에서 시작되든 로드됩니다. 러너는 모든 저장소를 [추가 디렉터리](/docs/ko/permissions#additional-directories-grant-file-access-not-configuration)로 Claude Code에 전달하므로, Claude Code는 각 저장소의 `.claude/settings.json`에서 `enabledPlugins` 및 `extraKnownMarketplaces` 키도 읽습니다.700각 저장소의 `CLAUDE.md`는 세션이 어디에서 시작되든 로드됩니다. 프로젝트 스레드 외부에서는 해당 저장소의 스킬도 로드됩니다. 러너는 모든 저장소를 [추가 디렉터리](/docs/ko/permissions#additional-directories-grant-file-access-not-configuration)로 Claude Code에 전달하므로, Claude Code는 각 저장소의 `.claude/settings.json`에서 `enabledPlugins` 및 `extraKnownMarketplaces` 키도 읽습니다.

661 701 

662모든 세션에서 훅을 실행하거나 권한 규칙을 적용하려면 러너 호스트의 `~/.claude/settings.json`에 넣으십시오. 러너는 세션이 어디에서 시작되든 [호스트 파일을 모든 세션으로 초기화합니다](#how-each-session’s-config-is-assembled). `Read` 또는 `Edit` 규칙의 경로는 `//` 절대 경로 또는 `~/` 홈 기준 상대 경로 [패턴](/docs/ko/permissions#read-and-edit)으로 작성하십시오. 다른 패턴은 설정 소스나 현재 디렉터리를 기준으로 고정되기 때문입니다.702모든 세션에서 훅을 실행하거나 권한 규칙을 적용하려면 러너 호스트의 `~/.claude/settings.json`에 넣으십시오. 러너는 세션이 어디에서 시작되든 [호스트 파일을 모든 세션으로 초기화합니다](#how-each-session’s-config-is-assembled). `Read` 또는 `Edit` 규칙의 경로는 `//` 절대 경로 또는 `~/` 홈 기준 상대 경로 [패턴](/docs/ko/permissions#read-and-edit)으로 작성하십시오. 다른 패턴은 설정 소스나 현재 디렉터리를 기준으로 고정되기 때문입니다.

663 703 

Details

46>46>

47> 조직에 [IP 허용 목록](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting)이 활성화되어 있으면 러너와 세션 컨테이너를 시작하기 전에 해당 공개 이그레스 주소를 허용 목록에 추가하세요. [온디맨드 러너](/docs/ko/self-hosted-environments-configuration#on-demand-runners)를 실행하는 경우 오케스트레이터 호스트의 주소도 추가하세요. 러너 또는 세션 트래픽에 대한 네트워크 제어로 허용 목록에 의존하지 마세요. 대신 자체 네트워크 경계에서 기본 거부 이그레스를 적용하세요.47> 조직에 [IP 허용 목록](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting)이 활성화되어 있으면 러너와 세션 컨테이너를 시작하기 전에 해당 공개 이그레스 주소를 허용 목록에 추가하세요. [온디맨드 러너](/docs/ko/self-hosted-environments-configuration#on-demand-runners)를 실행하는 경우 오케스트레이터 호스트의 주소도 추가하세요. 러너 또는 세션 트래픽에 대한 네트워크 제어로 허용 목록에 의존하지 마세요. 대신 자체 네트워크 경계에서 기본 거부 이그레스를 적용하세요.

48 48 

49## 네트워크 요구사항49## 네트워크 요구 사항

50 50 

51러너 및 생성하는 세션 자식은 아래 호스트에 아웃바운드 연결을 만듭니다. 세션 컨테이너 이그레스를 이러한 호스트 및 세션이 도달해야 하는 특정 내부 서비스로 제한하세요. [기본 거부 이그레스](#default-deny-egress)에서 방법과 이유를 다룹니다.51runner와 runner가 생성하는 세션 자식 프로세스는 아래 호스트로 아웃바운드 연결을 합니다. 세션 컨테이너의 egress를 이러한 호스트와 세션이 접근해야 하는 특정 내부 서비스로 제한하십시오. 방법과 이유는 [기본 거부 egress](#default-deny-egress)에서 다룹니다.

52 52 

53이러한 호스트는 항상 필요합니다:53다음 호스트는 항상 필요합니다.

54 54 

55| 호스트 | 포트 | 사용 목적 |55| 호스트 | 포트 | 용도 |

56| :- | :- | :- |56| :- | :- | :- |

57| `api.anthropic.com` | 443, HTTPS; [Anthropic 관리 git](#use-the-anthropic-git-proxy)의 경우 WSS | 러너 제어 평면 및 세션 스트리밍, 모델 추론, 기능 플래그, 제품 분석, [JWKS](/docs/ko/self-hosted-environments-identity) 키 가져오기, 커밋 서명, `--use-anthropic-git-proxy`가 설정되었을 때 Anthropic 관리 git |57| `api.anthropic.com` | 443, HTTPS; [Anthropic 관리 git](#use-the-anthropic-git-proxy)의 경우 WSS | runner 컨트롤 플레인 및 세션 스트리밍, 모델 추론, 기능 플래그, 제품 분석, [JWKS](/docs/ko/self-hosted-environments-identity) 키 가져오기, 커밋 서명, 그리고 `--use-anthropic-git-proxy`가 설정된 경우 Anthropic 관리 git |

58| `github.com` 또는 GitHub Enterprise 호스트와 같은 git 호스트 | 443 또는 22 | 러너의 세션이 사용하는 각 git 호스트에서 저장소 클론 및 푸시. [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy)를 사용하는 러너의 경우 [`github.com` 경로가 여전히 필요한 경우](#github-com-egress-with-the-anthropic-git-proxy)를 참조하세요. |58| `github.com` 또는 GitHub Enterprise 호스트 등 사용 중인 git 호스트 | 443 또는 22 | runner의 세션이 사용하는 각 git 호스트에서 저장소 클론 및 푸시. [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy)를 사용하는 runner의 경우 [`github.com` 경로가 여전히 필요한 경우](#github-com-egress-with-the-anthropic-git-proxy)를 참조하십시오. |

59 59 

60[`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy)를 사용하는 러너는 `github.com` git 트래픽을 `api.anthropic.com`을 통해 라우팅하므로 `github.com`에 대한 git 호스트 경로가 필요하지 않습니다. 다만 `--push-outcome-on-release`를 설정하거나 `post-session` 훅에서 푸시하는 경우에는 여전히 해당 경로가 필요합니다.60[`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy)를 사용하는 runner는 `github.com` git 트래픽을 `api.anthropic.com`을 통해 라우팅하므로 `github.com`에 대한 git 호스트 경로가 필요하지 않습니다. 단, `--push-outcome-on-release`를 설정하거나 `post-session` 훅에서 푸시하는 경우에는 여전히 해당 경로가 필요합니다.

61 61 

62이러한 호스트가 필요한지 여부는 구성에 따라 다릅니다:62다음 호스트의 필요 여부는 구성에 따라 다릅니다.

63 63 

64| 호스트 | 포트 | 필요한 경우 |64| 호스트 | 포트 | 필요한 경우 |

65| :- | :- | :- |65| :- | :- | :- |

66| `downloads.claude.ai` | 443 | 설치 시간에 네이티브 설치 프로그램으로 호스트에 Claude Code를 설치하거나 업데이트할 때; `install.sh` 스크립트 자체는 `claude.ai`에서 제공됩니다. 세션 런타임에는 세션이 공식 Anthropic 마켓플레이스에서 플러그인을 설치할 때만 필요합니다. |66| `downloads.claude.ai` | 443 | 설치 시 네이티브 설치 프로그램으로 호스트에 Claude Code를 설치하거나 업데이트할 때 필요합니다. `install.sh` 스크립트 자체는 `claude.ai`에서 제공됩니다. 세션 런타임에는 세션이 공식 Anthropic 마켓플레이스에서 플러그인을 설치할 때만 필요합니다. |

67| `storage.googleapis.com` | 443 | 세션 런타임에 `/plugin`에 표시되는 플러그인 설치 수 및 메타데이터의 경우. |67| `storage.googleapis.com` | 443 | 세션 런타임에 `/plugin`에 표시되는 플러그인 설치 횟수와 메타데이터를 위해 필요합니다. |

68| `code.claude.com` 및 `claude.com` | 443 | 내장 claude-code-guide 에이전트의 문서 조회 및 세션 중 사전 승인된 WebFetch 요청. 이러한 호스트를 차단하면 문서 조회에만 영향을 미칩니다. |68| `code.claude.com` 및 `claude.com` | 443 | 내장 claude-code-guide 에이전트의 문서 조회 및 세션 중 사전 승인된 WebFetch 요청에 사용됩니다. 이 호스트를 차단하면 문서 조회에만 영향을 미칩니다. |

69| `*.frame.claudeusercontent.com` | 443 | 조직의 세션에 [Artifact 도구](/docs/ko/artifacts#availability)를 사용할 수 있을 때만; 기본값은 계획에 따라 다르며, 가용성 테이블을 참조하세요. 러너에서 `CLAUDE_CODE_DISABLE_ARTIFACT=1`을 설정하여 조직 설정과 관계없이 도구를 비활성화된 상태로 유지하세요. |69| `*.frame.claudeusercontent.com` | 443 | 조직의 세션에서 [Artifact 도구](/docs/ko/artifacts#availability)를 사용할 수 있는 경우에만 필요합니다. 기본값은 해당 페이지의 가용성 표에 따라 플랜별로 다릅니다. 조직 설정과 관계없이 도구를 비활성화 상태로 유지하려면 runner에 `CLAUDE_CODE_DISABLE_ARTIFACT=1`을 설정하십시오. |

70| `registry.npmjs.org` | 443 | 세션이 플러그인을 설치할 때, npm 소스 플러그인 패키지를 가져오기 위해 및 플러그인의 Node.js 종속성을 설치할 때, 또는 `npx` 시작 MCP 서버가 실행될 때 |70| `registry.npmjs.org` | 443 | 세션이 플러그인을 설치할 때(npm 소스 플러그인 패키지를 가져오거나 플러그인의 Node.js 의존성을 설치하는 경우 모두) 또는 `npx`로 실행되는 MCP 서버가 동작할 때 필요합니다 |

71| `http-intake.logs.us5.datadoghq.com` | 443 | Anthropic 운영 메트릭. `CLAUDE_CODE_BYOC_ENABLE_DATADOG=1`이 설정되었을 때만; 자체 호스팅 환경에서는 기본적으로 꺼져 있습니다. |71| `http-intake.logs.us5.datadoghq.com` | 443 | Anthropic 운영 메트릭. `CLAUDE_CODE_BYOC_ENABLE_DATADOG=1`이 설정된 경우에만 필요하며, 셀프 호스팅 환경에서는 기본적으로 꺼져 있습니다. |

72| `browser-intake-us5-datadoghq.com` | 443 | Anthropic 오류 보고서 업로드, [오류 보고](/docs/ko/data-usage#telemetry-services)가 세션의 계정에 대해 활성화되었을 때만 전송됩니다. `DISABLE_ERROR_REPORTING=1` 또는 `DISABLE_TELEMETRY=1`로 억제됩니다. |72| `browser-intake-us5-datadoghq.com` | 443 | Anthropic 오류 보고서 업로드. 세션 계정에 대해 [오류 보고](/docs/ko/data-usage#telemetry-services)가 활성화된 경우에만 전송됩니다. `DISABLE_ERROR_REPORTING=1` 또는 `DISABLE_TELEMETRY=1`로 억제됩니다. |

73| `bedrock-runtime.us-east-1.amazonaws.com` 또는 `aiplatform.googleapis.com`과 같이 모델 요청, 모델 조회, 자격 증명 갱신에 사용되는 클라우드 제공업체의 엔드포인트 | 443 | 러너가 [Amazon Bedrock 또는 Google Cloud의 Agent Platform으로 모델 요청을 보내는](/docs/ko/self-hosted-environments-configuration#send-model-requests-to-bedrock-or-agent-platform) 경우에만 |73| `bedrock-runtime.us-east-1.amazonaws.com` 또는 `aiplatform.googleapis.com` 등 모델 요청, 모델 조회, 자격 증명 갱신을 위한 클라우드 공급자의 엔드포인트 | 443 | runner가 [Amazon Bedrock 또는 Google Cloud의 Agent Platform으로 모델 요청을 보내는](/docs/ko/self-hosted-environments-configuration#send-model-requests-to-bedrock-or-agent-platform) 경우에만 필요합니다 |

74 74 

75다음 호스트는 러너 또는 세션 트래픽에 대해 허용 목록에 추가할 필요가 없습니다:75다음 호스트는 runner 또는 세션 트래픽을 위해 허용 목록에 추가할 필요가 없습니다.

76 76 

77* **`statsig.anthropic.com`, `*.sentry.io`, `claude.ai`, `platform.claude.com`**: 이러한 호스트는 일부 이전 엔터프라이즈 네트워크 체크리스트에 나타나지만, 러너는 이에 도달하지 않습니다. 기능 플래그 가져오기는 `api.anthropic.com`으로 이동하고, 러너는 대화형 OAuth가 아닌 환경 시크릿으로 인증합니다.77* **`statsig.anthropic.com`, `*.sentry.io`, `claude.ai`, `platform.claude.com`**: 일부 이전 엔터프라이즈 네트워크 체크리스트에 이 호스트들이 나와 있지만, runner는 이 호스트에 접근하지 않습니다. 기능 플래그 가져오기는 `api.anthropic.com`으로 이루어지며, runner는 대화형 OAuth가 아닌 환경 시크릿으로 인증합니다.

78* **`mcp-proxy.anthropic.com`**: 자체 호스팅 세션은 이를 사용하지 않습니다. 조직에 커넥터 전달이 활성화된 경우 조직의 claude.ai 커넥터는 `api.anthropic.com`을 통해 세션에 도달합니다. [MCP 서버](/docs/ko/self-hosted-environments-configuration#mcp-servers)를 참조하세요.78* **`mcp-proxy.anthropic.com`**: 셀프 호스팅 세션은 이 호스트를 사용하지 않습니다. 조직에 커넥터 전달이 활성화되어 있으면 조직의 claude.ai 커넥터는 `api.anthropic.com`을 통해 세션에 도달합니다. [MCP 서버](/docs/ko/self-hosted-environments-configuration#mcp-servers)를 참조하십시오.

79 79 

80다음 호스트 측 흐름은 `claude.ai`에 도달하므로 세션 컨테이너 이그레스를 넓히는 대신 이그레스를 허용하는 호스트에서 실행하세요:80다음 호스트 측 흐름은 `claude.ai`에 접근하므로, 세션 컨테이너의 egress를 넓히는 대신 egress가 이를 허용하는 호스트에서 실행하십시오.

81 81 

82* **한 줄 설치 프로그램**: 설치 시간에 `claude.ai`에서 `install.sh`를 가져옵니다.82* **한 줄 설치 프로그램**: 설치 시 `claude.ai`에서 `install.sh`를 가져옵니다.

83* **대화형 `claude auth login`**: `claude.ai`, `claude.com`, `platform.claude.com`을 통해 로그인합니다. [안내 설정](/docs/ko/self-hosted-environments-quickstart#run-the-guided-setup), `doctor`의 로그인 모드, [CI 전달](/docs/ko/self-hosted-environments-testing#authenticate-from-ci)이 이를 사용합니다. 로그인에 사용하는 브라우저는 `hcaptcha.com`, `*.hcaptcha.com`, `challenges.cloudflare.com`에서 claude.ai 로그인 페이지의 브라우저 검사도 로드합니다.83* **대화형 `claude auth login`**: `claude.ai`, `claude.com`, `platform.claude.com`을 통해 로그인합니다. [안내형 설정](/docs/ko/self-hosted-environments-quickstart#run-the-guided-setup), `doctor`의 로그인 모드, [CI dispatch](/docs/ko/self-hosted-environments-testing#authenticate-from-ci)가 이를 사용합니다. 로그인에 사용하는 브라우저는 `hcaptcha.com`, `*.hcaptcha.com`, `challenges.cloudflare.com`에서 claude.ai 로그인 페이지의 브라우저 검사도 로드합니다. 조직에서 싱글 사인온을 사용하는 경우 해당 브라우저가 `sso.claude.com`을 거쳐 리디렉션될 수도 있습니다.

84 84 

85### 기본 거부 이그레스85### 기본 거부 egress

86 86 

87러너 및 세션 컨테이너를 [네트워크 요구사항 테이블](#network-requirements)의 호스트, git 호스트, 및 세션이 도달해야 하는 특정 내부 서비스로 제한되는 네트워크 세그먼트 또는 네임스페이스에 배포하세요. 제품은 이를 확인하거나 적용할 수 없으므로 모든 환경에서 자신의 네트워크 경계에 적용하세요. 세션 코드는 모델 지향이며 임의의 호스트에 대한 연결을 시도할 수 있습니다. 네트워크 계층에서 기본 거부 이그레스는 이러한 시도가 도달할 수 있는 위치를 제한합니다. 이는 권한 모드와 관계없이 적용됩니다: 기본 사전 승인 도구 세트에는 이미 `Bash`가 포함되어 있으므로 [자동 모드](/docs/ko/self-hosted-environments-configuration#permissions-and-tool-approval) 없이도 셸 이그레스가 프롬프트 없이 실행됩니다.87runner 및 세션 컨테이너는 아웃바운드 트래픽이 [네트워크 요구 사항 표](#network-requirements)의 호스트, 사용 중인 git 호스트, 그리고 세션이 접근해야 하는 특정 내부 서비스로 제한된 네트워크 세그먼트 또는 네임스페이스에 배포하십시오. 제품은 이를 검증하거나 강제할 수 없으므로, 모든 환경에서 자체 네트워크 경계에 이를 적용하십시오. 세션 코드는 모델이 지시하며 임의의 호스트에 연결을 시도할 수 있습니다. 네트워크 계층의 기본 거부 egress는 이러한 시도가 도달할 수 있는 범위를 제한합니다. 이는 권한 모드와 관계없이 적용됩니다. 기본 사전 승인 도구 세트에 이미 `Bash`가 포함되어 있으므로, [자동 모드](/docs/ko/self-hosted-environments-configuration#permissions-and-tool-approval)가 아니더라도 셸 egress는 프롬프트 없이 실행됩니다.

88 88 

89각 세션이 내보내는 원격 분석 및 이를 끄는 방법에 대한 자세한 내용은 [원격 분석](/docs/ko/self-hosted-environments-reference#telemetry)을 참조하세요.89각 세션이 내보내는 텔레메트리와 이를 끄는 방법에 대한 자세한 내용은 [텔레메트리](/docs/ko/self-hosted-environments-reference#telemetry)를 참조하십시오.

90 90 

91### 이그레스 프록시에 인증91### egress 프록시에 인증하기

92 92 

93일부 기업 이그레스 프록시는 모든 연결에 `Proxy-Authorization` 헤더를 요구합니다. 해당 헤더의 토큰은 종종 `HTTPS_PROXY`에 설정한 프록시 URL에 쓸 수 있을 정도로 빠르게 회전합니다. `HTTPS_PROXY` 또는 `HTTP_PROXY`를 평소대로 프록시의 URL로 설정한 다음 `--proxy-authorization-command` 또는 `--proxy-authorization-file`을 설정하여 러너에게 헤더 값을 읽을 위치를 알려주세요. 두 플래그 모두 Claude Code v2.1.238 이상이 필요합니다.93일부 기업용 egress 프록시는 모든 연결에 `Proxy-Authorization` 헤더를 요구합니다. 해당 헤더의 토큰은 교체 주기가 너무 빨라 `HTTPS_PROXY`에 설정하는 프록시 URL에 직접 기록할 수 없는 경우가 많습니다. 평소처럼 `HTTPS_PROXY` 또는 `HTTP_PROXY`를 프록시 URL로 설정한 다음, `--proxy-authorization-command` 또는 `--proxy-authorization-file`을 설정하여 runner가 헤더 값을 읽을 위치를 지정하십시오. 두 플래그 모두 Claude Code v2.1.238 이상이 필요합니다.

94 94 

95#### `Proxy-Authorization` 값이 어디에서 오는지 선택95#### `Proxy-Authorization` 값의 출처 선택

96 96 

97`Proxy-Authorization` 토큰을 생성하는 방법과 일치하는 플래그를 선택하세요:97`Proxy-Authorization` 토큰을 생성하는 방식에 맞는 플래그를 선택하십시오.

98 98 

99* **[`--proxy-authorization-command <command>`](/docs/ko/self-hosted-environments-reference#runner-cli-flags)**: 온디맨드로 생성하는 토큰의 경우 이를 선택하세요. 러너는 셸 명령을 실행하고 트리밍된 stdout을 헤더 값으로 사용합니다(예: `Bearer <token>`).99* **[`--proxy-authorization-command <command>`](/docs/ko/self-hosted-environments-reference#runner-cli-flags)**: 필요할 때 생성하는 토큰에 사용합니다. runner는 셸 명령을 실행하고, 앞뒤 공백을 제거한 stdout을 헤더 값으로 사용합니다(예: `Bearer <token>`).

100* **[`--proxy-authorization-file <path>`](/docs/ko/self-hosted-environments-reference#runner-cli-flags)**: 다른 프로세스가 제자리에서 회전하는 토큰의 경우 이를 선택하세요. 러너는 파일을 읽고 트리밍된 내용을 헤더 값으로 사용합니다.100* **[`--proxy-authorization-file <path>`](/docs/ko/self-hosted-environments-reference#runner-cli-flags)**: 다른 프로세스가 제자리에서 교체하는 토큰에 사용합니다. runner는 파일을 읽고, 앞뒤 공백을 제거한 내용을 헤더 값으로 사용합니다.

101 101 

102#### 러너가 시작을 거부하는 구성102#### runner가 시작을 거부하는 구성

103 103 

104각 플래그에는 [러너 CLI 플래그 참조](/docs/ko/self-hosted-environments-reference#runner-cli-flags)에 나열된 환경 변수 형식도 있습니다. 러너가 프록시 또는 제어 평면에 연결하기 전에 플래그 및 변수를 확인하고 세 가지 경우에 시작을 거부합니다:104각 플래그에는 환경 변수 형식도 있으며, [runner CLI 플래그 레퍼런스](/docs/ko/self-hosted-environments-reference#runner-cli-flags)에서 해당 플래그 옆에 나열되어 있습니다. runner는 프록시나 컨트롤 플레인에 접속하기 전에 플래그와 해당 환경 변수를 확인하며, 다음 세 가지 경우에 시작을 거부합니다.

105 105 

106* **두 플래그 모두 설정**: 한 플래그와 다른 플래그의 환경 변수를 설정하는 것은 둘 다 설정하는 것으로 계산됩니다.106* **두 플래그가 모두 설정된 경우**: 한 플래그와 다른 플래그의 환경 변수를 함께 설정해도 두 플래그를 모두 설정한 것으로 간주됩니다.

107* **프록시 URL 없음**: `HTTPS_PROXY` 또는 `HTTP_PROXY` 중 어느 것도 `http://` 또는 `https://` URL을 보유하지 않습니다. 러너는 대문자 또는 소문자로 두 변수를 읽으며 `ALL_PROXY`를 참조하지 않습니다.107* **프록시 URL이 없는 경우**: `HTTPS_PROXY`와 `HTTP_PROXY` 중 어느 것에도 `http://` 또는 `https://` URL이 없습니다. runner는 두 변수를 대문자와 소문자 모두로 읽으며, `ALL_PROXY`는 참조하지 않습니다.

108* **오케스트레이터 서브명령에 전달된 플래그**: `self-hosted-runner orchestrator`는 플래그 또는 환경 변수를 허용하지 않습니다. 대신 오케스트레이터가 시작하는 각 러너에 플래그를 전달하세요.108* **orchestrator 하위 명령에 플래그를 전달한 경우**: `self-hosted-runner orchestrator`는 이 플래그나 해당 환경 변수를 허용하지 않습니다. 대신 orchestrator가 시작하는 각 runner에 플래그를 전달하십시오.

109 109 

110#### 프록시 인증 플래그가 설정되어 있는 동안 러너가 변경하는 것110#### 프록시 인증 플래그가 설정되어 있을 때 runner가 변경하는 사항

111 111 

112플래그 중 하나가 설정되면 러너는 자신의 리스너를 시작하고 자신, 수명 주기 훅, 세션의 프록시 트래픽을 해당 리스너를 통해 보냅니다. 리스너는 프록시로 가는 길에 `Proxy-Authorization` 헤더를 추가합니다.112두 플래그 중 하나가 설정되면 runner는 자체 리스너를 시작하고, runner 자체, 수명 주기 훅, 세션의 프록시 트래픽을 해당 리스너를 통해 보냅니다. 리스너는 프록시로 가는 경로에서 `Proxy-Authorization` 헤더를 추가합니다.

113 113 

114* **리스너**: 리스너는 `127.0.0.1`의 포워드 프록시입니다. 러너는 제어 평면에 등록하기 전에 리스너를 시작하고 리스너를 시작할 수 없으면 시작 시 종료합니다.114* **리스너**: 리스너는 `127.0.0.1`의 포워드 프록시입니다. runner는 컨트롤 플레인에 등록하기 전에 리스너를 시작하며, 리스너를 시작할 수 없으면 시작 시 종료됩니다.

115* **프록시 변수**: 러너는 설정한 `HTTPS_PROXY` 및 `HTTP_PROXY` 중 어느 것이든 리스너를 가리키도록 다시 작성합니다. 그 다시 작성된 값은 러너 자체, 수명 주기 훅, 실행하는 모든 세션에 도달합니다.115* **프록시 변수**: runner는 설정된 `HTTPS_PROXY` 및 `HTTP_PROXY`를 리스너를 가리키도록 다시 씁니다. 다시 쓴 값은 runner 자체, 수명 주기 훅, runner가 실행하는 모든 세션에 전달됩니다.

116* **토큰 회전**: 회전된 토큰은 재시작 없이 적용됩니다. 리스너가 프록시에 열 때마다 러너는 명령을 실행하거나 파일을 다시 읽고 결과를 헤더로 추가합니다.116* **토큰 교체**: 교체된 토큰은 재시작 없이 적용됩니다. 리스너가 프록시로 여는 각 연결마다 runner는 명령을 다시 실행하거나 파일을 다시 읽고, 그 결과를 헤더로 추가합니다.

117* **세션 환경**: 세션은 리스너를 통해서만 프록시에 도달합니다. 각 세션의 환경에서 러너는 `ALL_PROXY`를 제거하고, 설정하지 않은 `HTTPS_PROXY` 또는 `HTTP_PROXY`의 모든 철자를 제거하고, `NO_PROXY`를 러너의 자신의 값으로 고정합니다.117* **세션 환경**: 세션은 리스너를 통해서만 프록시에 도달합니다. 각 세션의 환경에서 runner는 `ALL_PROXY`를 제거하고, 설정하지 않은 모든 표기의 `HTTPS_PROXY` 또는 `HTTP_PROXY`를 제거하며, `NO_PROXY`를 runner 자체의 값으로 고정합니다.

118* **로그**: 러너는 헤더 값을 기록하지 않습니다.118* **로그**: runner는 헤더 값을 로그에 기록하지 않습니다.

119 119 

120## git 구성120## git 구성

121 121 


654* **러너가 시작 시 `RegisterRunner failed:`와 TLS 인증서 오류와 함께 종료됨**: 오류는 예를 들어 `self signed certificate in certificate chain`일 수 있습니다. TLS 검사 프록시 뒤에 있는 경우처럼, 러너가 수신한 인증서의 인증 기관(CA)을 신뢰하지 않습니다. 러너의 환경에서 [`NODE_EXTRA_CA_CERTS`](/docs/ko/network-config#custom-ca-certificates)를 프록시의 루트 CA가 포함된 PEM 파일로 설정합니다.654* **러너가 시작 시 `RegisterRunner failed:`와 TLS 인증서 오류와 함께 종료됨**: 오류는 예를 들어 `self signed certificate in certificate chain`일 수 있습니다. TLS 검사 프록시 뒤에 있는 경우처럼, 러너가 수신한 인증서의 인증 기관(CA)을 신뢰하지 않습니다. 러너의 환경에서 [`NODE_EXTRA_CA_CERTS`](/docs/ko/network-config#custom-ca-certificates)를 프록시의 루트 CA가 포함된 PEM 파일로 설정합니다.

655 655 

656 세션은 이 값을 상속하므로 세션에 다시 설정할 필요는 없습니다. Git은 이 값을 읽지 않습니다. 해당 프록시를 통한 클론의 경우 [`GIT_SSL_CAINFO`](#trust-a-private-certificate-authority-with-anthropic-managed-git)도 설정합니다.656 세션은 이 값을 상속하므로 세션에 다시 설정할 필요는 없습니다. Git은 이 값을 읽지 않습니다. 해당 프록시를 통한 클론의 경우 [`GIT_SSL_CAINFO`](#trust-a-private-certificate-authority-with-anthropic-managed-git)도 설정합니다.

657* **시작 스크립트가 `Resource temporarily unavailable`을 포함하는 쓰기 오류를 출력하고 종료됨**: 스크립트가 자신이 시작하는 `claude self-hosted-runner` 또는 [오케스트레이터](/docs/ko/self-hosted-environments-configuration#on-demand-runners) 프로세스와 stdout 또는 stderr를 공유하고 있으며, 해당 프로세스가 그 공유 파이프나 소켓을 논블로킹 모드로 전환했습니다. 파이프가 가득 차면 스크립트의 쓰기가 대기하는 대신 이 운영 체제 오류와 함께 실패하며, `set -e`에서는 스크립트가 종료됩니다.

658 

659 오류를 없애려면 러너 또는 오케스트레이터의 출력을 스크립트의 사용자가 생성할 수 있는 파일로 보냅니다. 이를 시작하는 명령에서 백그라운드로 보내는 `&`가 있다면 그 앞에 `>> "$HOME/claude-runner.log" 2>&1`을 추가합니다.

660 

661 ```bash theme={null}

662 claude self-hosted-runner --environment-secret-file /etc/claude/environment-secret >> "$HOME/claude-runner.log" 2>&1

663 ```

664 

665 스크립트 자체의 출력은 이전과 같은 곳으로 가고, 러너가 stdout과 stderr에 쓰는 내용은 시작 오류를 포함하여 해당 파일로 갑니다. 러너가 stdout과 stderr에 계속 쓰는 동안 로그를 파일에 미러링하기만 하는 [`--log-file`](/docs/ko/self-hosted-environments-reference#runner-cli-flags)만 사용하지 말고 이 셸 리디렉션을 사용합니다. 이미 `--log-file`을 전달하고 있다면 리디렉션이 해당 파일이 받는 내용을 바꾸지 않으므로 그대로 유지합니다.

657* **오케스트레이터가 TLS 인증서 오류와 함께 `poll failed:`를 로그에 기록하고 계속 재시도함**: TLS 검사 프록시 뒤에 있는 경우처럼, 오케스트레이터가 수신한 인증서의 CA를 신뢰하지 않습니다. 오케스트레이터의 환경에서 [`NODE_EXTRA_CA_CERTS`](/docs/ko/network-config#custom-ca-certificates)를 프록시의 루트 CA가 포함된 PEM 파일로 설정합니다. `spawn-runner` 훅이 시작하는 러너에도 설정합니다.666* **오케스트레이터가 TLS 인증서 오류와 함께 `poll failed:`를 로그에 기록하고 계속 재시도함**: TLS 검사 프록시 뒤에 있는 경우처럼, 오케스트레이터가 수신한 인증서의 CA를 신뢰하지 않습니다. 오케스트레이터의 환경에서 [`NODE_EXTRA_CA_CERTS`](/docs/ko/network-config#custom-ca-certificates)를 프록시의 루트 CA가 포함된 PEM 파일로 설정합니다. `spawn-runner` 훅이 시작하는 러너에도 설정합니다.

658 667 

659 예를 들어 로그 줄은 `poll failed: self signed certificate in certificate chain — retrying in 1s`로 끝날 수 있으며, 콜론과 대시 사이에는 TLS 라이브러리의 문구가 들어갑니다. 수정 사항을 확인하려면 오케스트레이터의 [`/healthz`](/docs/ko/self-hosted-environments-reference#health-endpoint) 본문에서 `connected`가 `true`인지 확인합니다.668 예를 들어 로그 줄은 `poll failed: self signed certificate in certificate chain — retrying in 1s`로 끝날 수 있으며, 콜론과 대시 사이에는 TLS 라이브러리의 문구가 들어갑니다. 수정 사항을 확인하려면 오케스트레이터의 [`/healthz`](/docs/ko/self-hosted-environments-reference#health-endpoint) 본문에서 `connected`가 `true`인지 확인합니다.

Details

321* **OAuth 토큰**: [`claude setup-token`](/docs/ko/authentication#generate-a-long-lived-token)으로 토큰을 생성하고, Team 또는 Enterprise 조직에 대해 권한을 부여한 다음, 작업 환경에서 `CLAUDE_CODE_OAUTH_TOKEN`으로 설정합니다. `ANTHROPIC_API_KEY`처럼 토큰보다 [우선 적용되는](/docs/ko/authentication#authentication-precedence) 자격 증명은 해당 환경에서 제거합니다.321* **OAuth 토큰**: [`claude setup-token`](/docs/ko/authentication#generate-a-long-lived-token)으로 토큰을 생성하고, Team 또는 Enterprise 조직에 대해 권한을 부여한 다음, 작업 환경에서 `CLAUDE_CODE_OAUTH_TOKEN`으로 설정합니다. `ANTHROPIC_API_KEY`처럼 토큰보다 [우선 적용되는](/docs/ko/authentication#authentication-precedence) 자격 증명은 해당 환경에서 제거합니다.

322* **엔드포인트 관리 설정**: 작업을 실행하는 머신에 [관리형 설정 파일](/docs/ko/managed-settings#delivery-mechanisms)을 배포합니다.322* **엔드포인트 관리 설정**: 작업을 실행하는 머신에 [관리형 설정 파일](/docs/ko/managed-settings#delivery-mechanisms)을 배포합니다.

323 323 

324Claude Desktop 앱의 [Cowork](https://claude.com/docs/cowork/overview) 세션에서, Claude Code는 사용자가 Team 또는 Enterprise 계정으로 로그인할 때에도 claude.ai 관리 콘솔에서 서버 관리 설정을 가져오지 않습니다. [정책이 적용되는 위치와 시기](/docs/ko/managed-settings#where-and-when-a-policy-applies)는 어떤 정책이 사용자 머신의 Cowork 세션과 원격 Cowork 세션에 도달하는지 다룹니다. claude.ai는 Cowork 사용자가 claude.ai의 git 저장소에서 또는 Cowork 탭의 **사용자 정의**에서 마켓플레이스를 추가할 때 여전히 [`strictKnownMarketplaces`](/docs/ko/settings-reference#strictknownmarketplaces) 및 [`blockedMarketplaces`](/docs/ko/settings-reference#blockedmarketplaces) 목록을 적용합니다. [제한 사항이 작동하는 방식](/docs/ko/plugins/org#restrict-what-users-can-install)은 해당 확인을 설명합니다.324Claude Desktop 앱의 [Cowork](https://claude.com/docs/cowork/overview) 세션에서, Claude Code는 사용자가 Team 또는 Enterprise 계정으로 로그인할 때에도 claude.ai 관리 콘솔에서 서버 관리 설정을 가져오지 않습니다. [정책이 적용되는 위치와 시기](/docs/ko/managed-settings#where-and-when-a-policy-applies)는 어떤 정책이 사용자 머신의 Cowork 세션과 원격 Cowork 세션에 도달하는지 다룹니다. claude.ai는 Cowork 사용자가 claude.ai의 git 저장소에서 또는 Cowork의 **사용자 정의**에서 마켓플레이스를 추가할 때 여전히 [`strictKnownMarketplaces`](/docs/ko/settings-reference#strictknownmarketplaces) 및 [`blockedMarketplaces`](/docs/ko/settings-reference#blockedmarketplaces) 목록을 직접 적용합니다. [제한 사항이 작동하는 방식](/docs/ko/plugins/org#restrict-what-users-can-install)은 해당 확인을 설명합니다.

325 325 

326셸에서 `CLAUDE_CODE_USE_*` 공급자 변수 또는 기본값이 아닌 `ANTHROPIC_BASE_URL`을 내보내면, Claude Code는 세션에 대한 설정 가져오기를 건너뜁니다. [`claude doctor` 및 `/status`는 건너뛴 가져오기와 그 원인을 보고합니다](#verify-settings-delivery).326셸에서 `CLAUDE_CODE_USE_*` 공급자 변수 또는 기본값이 아닌 `ANTHROPIC_BASE_URL`을 내보내면, Claude Code는 세션에 대한 설정 가져오기를 건너뜁니다. [`claude doctor` 및 `/status`는 건너뛴 가져오기와 그 원인을 보고합니다](#verify-settings-delivery).

327 327 

settings.md +4 −2

Details

321 321 

322[클라우드 세션](/docs/ko/claude-code-on-the-web)은 [클라우드 환경](/docs/ko/cloud-environments)에서 저장소의 신선한 복제본에서 실행되며, 머신에서 실행되지 않습니다. 이는 어느 설정이 도달하는지 변경합니다:322[클라우드 세션](/docs/ko/claude-code-on-the-web)은 [클라우드 환경](/docs/ko/cloud-environments)에서 저장소의 신선한 복제본에서 실행되며, 머신에서 실행되지 않습니다. 이는 어느 설정이 도달하는지 변경합니다:

323 323 

324* **공유 프로젝트 설정** (`.claude/settings.json`): 한 저장소가 있는 세션에서 읽습니다. 파일이 복제본의 일부이고 세션이 그 안에서 시작되기 때문입니다. 해당 세션에 적용하려면 설정을 거기에 커밋합니다. Anthropic 호스팅 환경에서 여러 저장소가 있는 세션은 복제본 위에서 시작되고 각 저장소의 `.claude/settings.json`에서 `enabledPlugins` 및 `extraKnownMarketplaces` 키만 읽으며, 권한 규칙, 훅, `env` 또는 기타 키는 읽지 않습니다. 이 두 키가 선언하는 마켓플레이스와 플러그인은 여전히 [클라우드 세션에서 로드되지 않습니다](/docs/ko/cloud-environments#what-carries-over-from-your-setup). 자체 호스팅 환경의 경우 [어느 저장소의 설정이 적용되는지](/docs/ko/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories)를 참조하세요.324* **프로젝트의 클라우드 스레드**: [프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories)의 클라우드 스레드에서는 프로젝트에 저장소가 몇 개 있든 저장소의 `.claude/settings.json`에 있는 권한 규칙, 훅, `env`가 전혀 적용되지 않습니다. 대신 사용할 항목은 [스레드가 저장소에서 가져오는 항목](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories)에 나와 있습니다.

325* **공유 프로젝트 설정** (`.claude/settings.json`): 프로젝트 외부에서 저장소가 하나인 세션에서는 이 파일을 읽습니다. 파일이 복제본의 일부이고 세션이 그 안에서 시작되기 때문입니다. 해당 세션에 설정을 적용하려면 이 파일에 커밋합니다.

326* **여러 저장소가 있는 공유 프로젝트 설정**: Anthropic 호스팅 환경에서 여러 저장소가 있는 세션은 복제본 상위 디렉터리에서 시작되며, 각 저장소의 `.claude/settings.json`에서 `enabledPlugins` 및 `extraKnownMarketplaces` 키만 읽고 권한 규칙, 훅, `env` 또는 기타 키는 읽지 않습니다. 이 두 키가 선언하는 마켓플레이스와 플러그인도 [클라우드 세션에서는 로드되지 않습니다](/docs/ko/cloud-environments#what-carries-over-from-your-setup). 자체 호스팅 환경의 경우 [어느 저장소의 설정이 적용되는지](/docs/ko/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories)를 참조하세요.

325* **사용자 및 프로젝트 로컬 설정** (`~/.claude/settings.json` 및 `.claude/settings.local.json`): 읽지 않습니다. 둘 다 머신에 유지되고 로컬 파일은 복제본에 없습니다.327* **사용자 및 프로젝트 로컬 설정** (`~/.claude/settings.json` 및 `.claude/settings.local.json`): 읽지 않습니다. 둘 다 머신에 유지되고 로컬 파일은 복제본에 없습니다.

326* **관리되는 설정**: 장치의 `managed-settings.json` 파일이나 MDM 프로필은 클라우드 세션에 도달하지 않습니다. 조직의 [서버 관리 설정](/docs/ko/server-managed-settings)은 도달합니다. [표면 범위](/docs/ko/model-config#surface-coverage)는 어느 클라우드 세션이 이를 수신하는지 나열합니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments)도 실행기 이미지의 관리되는 설정 파일을 읽습니다. [Claude Code가 관리되는 소스를 결합하는 방식](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)은 해당 파일이 적용되는 시기를 설명합니다.328* **관리되는 설정**: 장치의 `managed-settings.json` 파일이나 MDM 프로필은 클라우드 세션에 도달하지 않습니다. 조직의 [서버 관리 설정](/docs/ko/server-managed-settings)은 도달합니다. [표면 범위](/docs/ko/model-config#surface-coverage)는 어느 클라우드 세션이 이를 수신하는지 나열합니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments)도 실행기 이미지의 관리되는 설정 파일을 읽습니다. [Claude Code가 관리되는 소스를 결합하는 방식](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)은 해당 파일이 적용되는 시기를 설명합니다.

327* **`/config`**: 브라우저에서 claude.ai/code에서 설정 값을 변경하는 대신 claude.ai 설정의 Claude Code 섹션을 엽니다. 클라우드 세션에 대해 설정을 변경하려면 환경에서 [환경 변수](/docs/ko/cloud-environments#set-environment-variables)를 설정하거나, 한 저장소가 있는 세션에서 해당 저장소의 `.claude/settings.json`에 키를 커밋합니다.329* **`/config`**: 브라우저의 claude.ai/code에서는 값을 변경하는 대신 claude.ai 설정의 Claude Code 섹션을 엽니다. 클라우드 세션의 설정을 변경하려면 환경에서 [환경 변수](/docs/ko/cloud-environments#set-environment-variables)를 설정합니다. 프로젝트 외부에서 저장소가 하나인 세션에서는 대신 해당 저장소의 `.claude/settings.json`에 키를 커밋할 수도 있습니다.

328 330 

329[설정에서 수행되는 것](/docs/ko/cloud-environments#what-carries-over-from-your-setup)은 나머지를 나열합니다: `CLAUDE.md`, skills, MCP servers, plugins, 및 credentials.331[설정에서 수행되는 것](/docs/ko/cloud-environments#what-carries-over-from-your-setup)은 나머지를 나열합니다: `CLAUDE.md`, skills, MCP servers, plugins, 및 credentials.

330 332 

Details

94 94 

95저장소에 커밋된 팀의 공유 설정으로, 이를 복제하는 모든 사람이 동일한 권한, 훅, 플러그인 마켓플레이스를 얻습니다. 저장소의 최상위에 `.claude/settings.json`에 이와 같은 파일을 저장하세요. 커밋하기 전에 알아야 할 사항:95저장소에 커밋된 팀의 공유 설정으로, 이를 복제하는 모든 사람이 동일한 권한, 훅, 플러그인 마켓플레이스를 얻습니다. 저장소의 최상위에 `.claude/settings.json`에 이와 같은 파일을 저장하세요. 커밋하기 전에 알아야 할 사항:

96 96 

97* **클라우드 세션도 이를 읽습니다.** [클라우드 세션](/docs/ko/settings#settings-in-cloud-sessions)은 저장소의 복제본에서 시작되므로 커밋된 파일이 거기에도 적용됩니다.97* **[프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories) 외부의 클라우드 세션도 이를 읽습니다.** 저장소가 하나인 [클라우드 세션](/docs/ko/settings#settings-in-cloud-sessions)은 복제본 내부에서 시작되므로 커밋된 파일이 거기에도 적용됩니다.

98* **원격 측정은 관리형 또는 개인 설정에 포함됩니다.** Claude Code는 저장소의 설정 파일에서 [OpenTelemetry 내보내기 변수](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)를 무시하며, 원격 측정을 끄는 일부 값은 제외합니다. 조직의 [관리형 설정](/docs/ko/monitoring-usage#administrator-configuration)에서 또는 각 사람의 `~/.claude/settings.json`에서 설정하세요.98* **원격 측정은 관리형 또는 개인 설정에 포함됩니다.** Claude Code는 저장소의 설정 파일에서 [OpenTelemetry 내보내기 변수](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)를 무시하며, 원격 측정을 끄는 일부 값은 제외합니다. 조직의 [관리형 설정](/docs/ko/monitoring-usage#administrator-configuration)에서 또는 각 사람의 `~/.claude/settings.json`에서 설정하세요.

99* **허용 규칙은 신뢰를 기다립니다.** 허용 규칙 및 `extraKnownMarketplaces` 항목은 각 사람이 [이 폴더 자체를 신뢰](/docs/ko/permissions#project-allow-rules-and-workspace-trust)한 후에 적용되며, 상위 폴더만이 아닙니다. 거부 및 요청 규칙은 신뢰 여부와 관계없이 모든 세션에 적용됩니다.99* **허용 규칙은 신뢰를 기다립니다.** 허용 규칙 및 `extraKnownMarketplaces` 항목은 각 사람이 [이 폴더 자체를 신뢰](/docs/ko/permissions#project-allow-rules-and-workspace-trust)한 후에 적용되며, 상위 폴더만이 아닙니다. 거부 및 요청 규칙은 신뢰 여부와 관계없이 모든 세션에 적용됩니다.

100* **훅은 저장소의 스크립트입니다.** 이 파일의 훅은 `.claude/hooks/block-rm.sh`를 실행합니다. [훅이 해결되는 방식](/docs/ko/hooks#how-a-hook-resolves)은 이를 작성하는 과정을 설명합니다.100* **훅은 저장소의 스크립트입니다.** 이 파일의 훅은 `.claude/hooks/block-rm.sh`를 실행합니다. [훅이 해결되는 방식](/docs/ko/hooks#how-a-hook-resolves)은 이를 작성하는 과정을 설명합니다.

settings-reference.md +230 −229

Details

14 14 

15아래의 모든 키는 해당 항목으로 연결됩니다. 범위는 [파일](/docs/ko/settings#settings-files-and-who-they-affect)을 나열합니다: `User`는 `~/.claude/settings.json`, `Project`는 `.claude/settings.json`, `Local`은 `.claude/settings.local.json`, `Managed`는 [조직이 배포하는 것](/docs/ko/managed-settings)입니다. `Any file`은 네 가지 모두를 의미하고, `Global config`는 [`~/.claude.json`](#global-config-settings)을 의미합니다.15아래의 모든 키는 해당 항목으로 연결됩니다. 범위는 [파일](/docs/ko/settings#settings-files-and-who-they-affect)을 나열합니다: `User`는 `~/.claude/settings.json`, `Project`는 `.claude/settings.json`, `Local`은 `.claude/settings.local.json`, `Managed`는 [조직이 배포하는 것](/docs/ko/managed-settings)입니다. `Any file`은 네 가지 모두를 의미하고, `Global config`는 [`~/.claude.json`](#global-config-settings)을 의미합니다.

16 16 

17| 키 | 설명 | 주제 | 범위 |17| Key | Description | Topic | Scope |

18| :- | :- | :- | :- |18| :- | :- | :- | :- |

19| [`advisorModel`](#advisormodel) | Claude가 [advisor 도구](/docs/ko/advisor)에 답할 때 사용할 모델 선택 | 모델 및 응답 | 모든 파일 |19| [`advisorModel`](#advisormodel) | Claude가 [advisor 도구](/docs/ko/advisor)에 답할 때 사용할 모델 선택 | 모델 및 응답 | 모든 파일 |

20| [`agent`](#agent) | 모든 세션을 명명된 [서브에이전트](/docs/ko/sub-agents)로 시작하고 프롬프트, 도구, 모델 포함 | 에이전트, 세션, 워크트리 | 모든 파일 |20| [`agent`](#agent) | 모든 세션을 명명된 [서브에이전트](/docs/ko/sub-agents)로 시작하고 프롬프트, 도구, 모델 포함 | 에이전트, 세션, 워크트리 | 모든 파일 |


725 725 

726### `showThinkingSummaries`726### `showThinkingSummaries`

727 727 

728대화형 세션에서 Claude의 [확장 사고](/docs/ko/model-config#extended-thinking) 요약을 확인합니다. `Ctrl+O`로 사고를 펼칠 때 전체 요약을 보려면 설정합니다. 설정하지 않았거나 `false`이면 Anthropic API가 thinking 블록을 편집하여 가리고 Claude Code는 접힌 스텁을 표시합니다. 서드파티 공급자는 가리지 않습니다.728대화형 세션에서 Claude의 [확장 사고](/docs/ko/model-config#extended-thinking) 요약을 확인합니다. `Ctrl+O`로 사고를 펼칠 때 전체 요약을 보려면 설정합니다. 설정하지 않았거나 `false`이면 Anthropic API가 thinking 블록을 편집하여 가리고 Claude Code는 접힌 스텁을 표시합니다.

729 729 

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

731* **유형**: Boolean731* **유형**: Boolean


1370* **`allowWrite` 및 `denyWrite`**: macOS에서는 와일드카드가 작동합니다. Linux 및 WSL2에서는 샌드박스가 구체적인 경로를 마운트하므로, Claude Code는 후행 `/**`가 제거된 후 `*`, `?` 또는 `[`를 포함하는 항목을 건너뛰며, 해당 항목은 효과가 없습니다. Claude Code는 `Edit` 권한 규칙의 경로를 이러한 목록에 추가하므로, 동일한 제한이 적용되며, `/sandbox`의 **구성** 탭은 와일드카드를 포함하는 `Edit` 및 `Read` 권한 규칙에 대해 경고합니다.1370* **`allowWrite` 및 `denyWrite`**: macOS에서는 와일드카드가 작동합니다. Linux 및 WSL2에서는 샌드박스가 구체적인 경로를 마운트하므로, Claude Code는 후행 `/**`가 제거된 후 `*`, `?` 또는 `[`를 포함하는 항목을 건너뛰며, 해당 항목은 효과가 없습니다. Claude Code는 `Edit` 권한 규칙의 경로를 이러한 목록에 추가하므로, 동일한 제한이 적용되며, `/sandbox`의 **구성** 탭은 와일드카드를 포함하는 `Edit` 및 `Read` 권한 규칙에 대해 경고합니다.

1371* **`denyRead` 및 `allowRead`**: 모든 플랫폼에서 와일드카드가 작동합니다. Linux 및 WSL2에서는 Claude Code가 읽기 항목을 일치하는 구체적인 경로로 확장하며, 쓰기 목록에 대해서는 이를 수행하지 않습니다.1371* **`denyRead` 및 `allowRead`**: 모든 플랫폼에서 와일드카드가 작동합니다. Linux 및 WSL2에서는 Claude Code가 읽기 항목을 일치하는 구체적인 경로로 확장하며, 쓰기 목록에 대해서는 이를 수행하지 않습니다.

1372 1372 

1373중괄호는 이름에서 일반 문자로 일치하므로, `~/data/{keys,tokens}`는 두 가지 대안이 아니라 이름이 문자 그대로 `{keys,tokens}`인 디렉터리를 다룹니다. `~/data/keys`와 `~/data/tokens`를 다루려면 각각을 별도의 항목으로 추가하십시오.

1374 

1373### `sandbox.filesystem.allowWrite`1375### `sandbox.filesystem.allowWrite`

1374 1376 

1375작업 디렉터리, 사용자별 임시 디렉터리, `--add-dir`, `/add-dir` 또는 `permissions.additionalDirectories`로 추가한 디렉터리 외에 샌드박스된 명령이 쓸 수 있는 경로를 추가합니다. `kubectl` 또는 빌드 도구와 같은 하위 프로세스가 프로젝트 외부에 쓰기를 필요로 할 때 사용하십시오.1377작업 디렉터리, 사용자별 임시 디렉터리, `--add-dir`, `/add-dir` 또는 `permissions.additionalDirectories`로 추가한 디렉터리 외에 샌드박스된 명령이 쓸 수 있는 경로를 추가합니다. `kubectl` 또는 빌드 도구와 같은 하위 프로세스가 프로젝트 외부에 쓰기를 필요로 할 때 사용하십시오.


2321 2323 

2322 프로젝트 및 로컬 설정에서 이 그룹을 무시하려면 Claude Code v2.1.282 이상이 필요합니다.2324 프로젝트 및 로컬 설정에서 이 그룹을 무시하려면 Claude Code v2.1.282 이상이 필요합니다.

2323 * Claude Code가 시작하거나 동기화하는 방식을 변경하는 변수, 예: `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` 및 `CLAUDE_CODE_PLUGIN_SEED_DIR`.2325 * Claude Code가 시작하거나 동기화하는 방식을 변경하는 변수, 예: `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` 및 `CLAUDE_CODE_PLUGIN_SEED_DIR`.

2324 * 응답하지 않은 대화 상자의 타이머를 설정하는 변수: [`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`, `CLAUDE_AFK_TIMEOUT_MS` 및 `CLAUDE_AFK_COUNTDOWN_MS`](/docs/ko/env-vars#variables).2326 * 응답하지 않은 대화 상자의 타이머를 설정하는 [`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`](/docs/ko/env-vars#variables).

2325 * 첨부 파일 처리를 끄는 [`CLAUDE_CODE_DISABLE_ATTACHMENTS`](/docs/ko/env-vars#variables).2327 * 첨부 파일 처리를 끄는 [`CLAUDE_CODE_DISABLE_ATTACHMENTS`](/docs/ko/env-vars#variables).

2326 * Claude Code가 파일 및 디렉토리의 `@` 멘션을 확장하지 않도록 하는 [`CLAUDE_CODE_DISABLE_FILE_MENTIONS`](/docs/ko/env-vars#variables).2328 * Claude Code가 파일 및 디렉토리의 `@` 멘션을 확장하지 않도록 하는 [`CLAUDE_CODE_DISABLE_FILE_MENTIONS`](/docs/ko/env-vars#variables).

2327 2329 


2461 2463 

2462## 인터페이스 및 터미널2464## 인터페이스 및 터미널

2463 2465 

2464Claude Code가 터미널에서 어떻게 보이고 동작하는지 변경합니다: 테마, 편집기 모드, 상태 줄, 스피너, 세션 내 알림, 접근성. [터미널 구성](/docs/ko/terminal-config)을 참조하세요.2466터미널에서 Claude Code가 보이고 동작하는 방식을 변경합니다: 테마, 편집기 모드, 상태줄, 스피너, 세션 내 알림, 접근성. [터미널 구성](/docs/ko/terminal-config)을 참조하세요.

2465 2467 

2466### `askUserQuestionTimeout`2468### `askUserQuestionTimeout`

2467 2469 

2468답변되지 않은 [`AskUserQuestion`](/docs/ko/tools-reference) 대화 상자가 유휴 시간 후 자동으로 계속되도록 하여 이미 선택한 옵션을 제출합니다. 자리를 비우고 사용자 없이 Claude가 계속 진행하기를 원할 때 설정하세요. 기본값으로는 질문이 답변될 때까지 대기합니다. 타이머가 일시 중지되거나 시작되지 않는 경우는 [질문 자동 계속 타임아웃](/docs/ko/tools-reference#question-auto-continue-timeout)을 참조하세요.2470응답하지 않은 [`AskUserQuestion`](/docs/ko/tools-reference) 대화 상자가 일정 시간 유휴 상태가 지나면 이미 선택한 옵션을 제출하고 자동으로 계속 진행되도록 합니다. 자리를 비운 동안 Claude가 사용자 없이 계속 진행하기를 원할 때 설정합니다. 기본값에서는 질문이 사용자가 응답할 때까지 대기합니다. 타이머가 일시 정지되거나 시작되지 않는 경우는 [질문 자동 계속 타임아웃](/docs/ko/tools-reference#question-auto-continue-timeout)을 참조하세요.

2469 2471 

2470* **범위**: [`사용자 또는 관리됨`](#scopes)2472* **범위**: [`사용자 또는 관리형`](#scopes)

2471* **유형**: 문자열, `"60s"`, `"5m"`, `"10m"` 또는 `"never"` 중 하나2473* **유형**: 문자열, `"60s"`, `"5m"`, `"10m"`, `"never"` 중 하나

2472* **기본값**: `"never"`2474* **기본값**: `"never"`

2473* **세션별 재정의**: [`CLAUDE_AFK_TIMEOUT_MS`](/docs/ko/env-vars)가 이 키보다 한 세션에 대해 우선합니다

2474 2475 

2475```json settings.json theme={null}2476```json settings.json theme={null}

2476{2477{


2478}2479}

2479```2480```

2480 2481 

2481`/config`에 **질문 자동 계속 타임아웃**으로 표시되며, 이 키를 사용자 설정에 씁니다. Claude Code는 관리형 설정이나 `--settings` 플래그가 키를 설정하는 동안 행을 숨깁니다.2482`/config`에 **Question auto-continue timeout**으로 표시되며, 이 키를 사용자 설정에 기록합니다. 관리형 설정이나 `--settings` 플래그가 키를 설정한 경우 Claude Code는 이 행을 숨깁니다.

2482 2483 

2483### `autoContinueAtUsageLimit`2484### `autoContinueAtUsageLimit`

2484 2485 

2485claude.ai 사용 제한이 세션을 중지한 후, 열린 세션에서 대기하고 재설정 후 작업을 자동으로 계속합니다. [자동 계속 끄기](/docs/ko/interactive-mode#turn-automatic-continue-off)를 참조하세요. Claude Code v2.1.234 이상이 필요합니다.2486claude.ai 사용 한도로 세션이 중단된 후, 열린 세션에서 대기하다가 한도가 재설정되면 작업을 자동으로 계속합니다. [자동 계속 끄기](/docs/ko/interactive-mode#turn-automatic-continue-off)를 참조하세요. Claude Code v2.1.234 이상이 필요합니다.

2486 2487 

2487* **범위**: [`사용자 또는 관리됨`](#scopes). 사용자 설정, `--settings` 및 관리 설정에서만 읽습니다. 이들 중 어느 것도 키를 설정하지 않으면, 키를 설정하는 프로젝트 또는 로컬 설정 파일이 무시되지 않고 기능을 끕니다.2488* **범위**: [`사용자 또는 관리형`](#scopes). 사용자 설정, `--settings`, 관리형 설정에서만 읽습니다. 이들 중 어느 것도 키를 설정하지 않은 경우, 키를 설정한 프로젝트 또는 로컬 설정 파일은 무시되지 않고 기능을 끕니다.

2488* **유형**: 부울2489* **유형**: Boolean

2489 * `true`: claude.ai 사용 제한이 세션을 중지한 후, Claude Code는 열린 세션에서 대기하고 재설정 후 작업을 자동으로 계속합니다2490 * `true`: claude.ai 사용 한도로 세션이 중단된 후, Claude Code는 열린 세션에서 대기하다가 한도가 재설정되면 작업을 자동으로 계속합니다

2490 * `false`: Claude Code는 자체적으로 대기를 시작하지 않습니다. 사용 제한 옵션 메뉴에서 [직접 대기를 시작](/docs/ko/interactive-mode#start-a-wait-yourself)할 수 있습니다2491 * `false`: Claude Code가 스스로 대기를 시작하지 않습니다. 사용 한도 옵션 메뉴에서 [직접 대기를 시작](/docs/ko/interactive-mode#start-a-wait-yourself)할 수는 있습니다

2491* **기본값**: `true`2492* **기본값**: `true`

2492 2493 

2493```json settings.json theme={null}2494```json settings.json theme={null}


2496}2497}

2497```2498```

2498 2499 

2499`/config`에 **사용 제한에서 자동으로 계속**으로 표시되며, 이 키를 사용자 설정에 씁니다. Claude Code는 관리 설정이나 `--settings` 플래그가 키를 설정하는 동안 행을 숨깁니다.2500`/config`에 **Continue automatically at usage limit**으로 표시되며, 이 키를 사용자 설정에 기록합니다. 관리형 설정이나 `--settings` 플래그가 키를 설정한 경우 Claude Code는 이 행을 숨깁니다.

2500 2501 

2501### `autoScrollEnabled`2502### `autoScrollEnabled`

2502 2503 

2503[전체 화면 렌더링](/docs/ko/fullscreen)에서 새 출력을 대화의 맨 아래로 따릅니다. 이를 끄면 Claude가 계속 작업하는 동안 스크롤한 위치에 머물러 있습니다. 권한 프롬프트는 여전히 보기로 스크롤됩니다.2504[전체 화면 렌더링](/docs/ko/fullscreen)에서 새 출력을 따라 대화 맨 아래로 이동합니다. 이 기능을 끄면 Claude가 계속 작업하는 동안 스크롤한 위치에 머무르며, 권한 프롬프트는 여전히 화면에 스크롤되어 표시됩니다.

2504 2505 

2505* **범위**: [`모든 파일`](#scopes)2506* **범위**: [`모든 파일`](#scopes)

2506* **유형**: 부울2507* **유형**: Boolean

2507 * `true`: 대화가 새 출력을 맨 아래로 따릅니다2508 * `true`: 대화가 새 출력을 따라 맨 아래로 이동합니다

2508 * `false`: Claude가 계속 작업하는 동안 스크롤한 위치에 머물러 있습니다. 권한 프롬프트는 여전히 기록 아래에 나타납니다2509 * `false`: Claude가 계속 작업하는 동안 스크롤한 위치에 머무르며, 권한 프롬프트는 여전히 트랜스크립트 아래에 표시됩니다

2509* **기본값**: `true`2510* **기본값**: `true`

2510 2511 

2511```json settings.json theme={null}2512```json settings.json theme={null}


2514}2515}

2515```2516```

2516 2517 

2517`/config`에 **자동 스크롤**로 표시되며, 전체 화면 렌더링이 켜져 있을 때 이 키를 사용자 설정에 씁니다.2518전체 화면 렌더링이 켜져 있을 때 `/config`에 **Auto-scroll**로 표시되며, 이 키를 사용자 설정에 기록합니다.

2518 2519 

2519### `axScreenReader`2520### `axScreenReader`

2520 2521 

2521화면 판독기 친화적 출력을 렌더링합니다: 장식 테두리나 애니메이션 없는 평면 텍스트. 화면 판독기 모드는 클래식 렌더러를 사용하므로 활성화되는 동안 `tui` 설정은 효과가 없습니다. 연결된 [백그라운드 세션](/docs/ko/agent-view)은 여전히 전체 화면으로 렌더링됩니다.2522화면 낭독기 친화적인 출력을 렌더링합니다: 장식용 테두리나 애니메이션이 없는 평면 텍스트입니다. 화면 낭독기 모드는 클래식 렌더러를 사용하므로 활성화된 동안 `tui` 설정은 효과가 없습니다. 연결된 [백그라운드 세션](/docs/ko/agent-view)은 여전히 전체 화면으로 렌더링됩니다.

2522 2523 

2523* **범위**: [`모든 파일`](#scopes)2524* **범위**: [`모든 파일`](#scopes)

2524* **유형**: 부울2525* **유형**: Boolean

2525 * `true`: Claude Code는 클래식 렌더러를 사용하여 장식 테두리나 애니메이션 없는 평면 텍스트를 렌더링합니다2526 * `true`: Claude Code가 클래식 렌더러를 사용하여 장식용 테두리나 애니메이션 없이 평면 텍스트를 렌더링합니다

2526 * `false`: Claude Code는 정상적으로 렌더링합니다2527 * `false`: Claude Code가 정상적으로 렌더링합니다

2527* **기본값**: 설정되지 않음, 따라서 화면 판독기 모드는 꺼져 있습니다2528* **기본값**: 설정되지 않음, 따라서 화면 낭독기 모드는 꺼져 있습니다

2528* **세션별 재정의**: [`--ax-screen-reader`](/docs/ko/cli-reference#cli-flags)가 [`CLAUDE_AX_SCREEN_READER`](/docs/ko/env-vars)보다 우선하며, 둘 다 한 세션에 대해 이 키보다 우선합니다2529* **세션별 재정의**: 한 세션에 대해 [`--ax-screen-reader`](/docs/ko/cli-reference#cli-flags)가 [`CLAUDE_AX_SCREEN_READER`](/docs/ko/env-vars)보다 우선하며, 둘 다 이 키보다 우선합니다

2529 2530 

2530```json settings.json theme={null}2531```json settings.json theme={null}

2531{2532{


2535 2536 

2536### `bashEditDiffEnabled`2537### `bashEditDiffEnabled`

2537 2538 

2538Claude Code가 Bash 명령이 Git 저장소에서 변경하는 파일을 기록할지 여부를 선택합니다. 기록하면 터미널에서 명령 후 diff를 보고, [PostToolUse Bash hooks](/docs/ko/hooks#bash)는 변경된 파일 목록을 받습니다.2539Bash 명령이 실행되는 동안 Git 저장소에서 어떤 파일이 변경되었는지 Claude Code가 기록할지 선택합니다. 기록하는 경우, 명령 실행 후 터미널에서 해당 파일의 diff를 볼 수 있으며, [PostToolUse Bash 훅](/docs/ko/hooks#bash)이 변경된 파일 목록을 받습니다.

2539 2540 

2540나열된 파일이 항상 명령이 변경한 파일인 것은 아닙니다. 명령이 실행되는 동안 다른 프로그램이나 다른 Bash 호출이 만든 변경 사항도 거기에 나타날 수 있습니다.2541목록에 있는 파일이 항상 해당 명령이 변경한 파일은 아닙니다. 명령이 실행되는 동안 다른 프로그램이나 다른 Bash 호출이 만든 변경도 목록에 나타날 수 있습니다.

2541 2542 

2542모든 권한 모드에서 기록하려면 키를 `true`로 설정합니다. Claude Code v2.1.269 이상이 필요합니다.2543모든 권한 모드에서 기록하려면 키를 `true`로 설정합니다. Claude Code v2.1.269 이상이 필요합니다.

2543 2544 

2544* **범위**: [`사용자 또는 관리됨`](#scopes). `true`는 사용자 설정, `--settings`로 전달된 JSON 또는 [관리 설정](/docs/ko/managed-settings)에서만 계산되므로, 저장소의 `.claude/settings.json` 또는 `.claude/settings.local.json`의 `true`는 기록을 켤 수 없습니다. 저장소 파일의 `false`는 [더 높은 우선순위](/docs/ko/settings#settings-precedence) 파일이 `true`를 설정하지 않으면 여전히 끕니다.2545* **범위**: [`사용자 또는 관리형`](#scopes). `true`는 사용자 설정, `--settings`로 전달된 JSON 또는 [관리형 설정](/docs/ko/managed-settings)에서만 유효하므로, 저장소의 `.claude/settings.json`이나 `.claude/settings.local.json`에 있는 `true`로는 기록을 켤 수 없습니다. 두 저장소 파일 중 하나에 있는 `false`는 [더 높은 우선순위](/docs/ko/settings#settings-precedence) 파일이 `true`를 설정하지 않는 한 여전히 기록을 끕니다.

2545* **유형**: 부울2546* **유형**: Boolean

2546* **기본값**: 설정되지 않음, 따라서 Claude Code는 자동 모드 및 `bypassPermissions` 모드에서 Claude가 Bash를 통해 파일을 편집하도록 지시할 때 변경 사항을 기록합니다2547* **기본값**: 설정되지 않음, 따라서 Claude Code는 자동 모드와 `bypassPermissions` 모드에서 Claude에게 Bash를 통해 파일을 편집하도록 지시할 때 변경 사항을 기록합니다

2547* **세션별 재정의**: [`CLAUDE_CODE_BASH_EDIT_DIFF`](/docs/ko/env-vars)가 한 세션에 대해 이 키보다 우선합니다2548* **세션별 재정의**: 한 세션에 대해 [`CLAUDE_CODE_BASH_EDIT_DIFF`](/docs/ko/env-vars)가 이 키보다 우선합니다

2548 2549 

2549```json settings.json theme={null}2550```json settings.json theme={null}

2550{2551{


2554 2555 

2555### `companyAnnouncements`2556### `companyAnnouncements`

2556 2557 

2557시작 시 조직의 공지사항을 사용자에게 표시합니다. 둘 이상을 나열하면 Claude Code는 각 세션마다 하나를 무작위로 선택합니다. 사람의 첫 실행 시 첫 번째 항목을 표시합니다.2558시작 시 조직의 공지 사항을 사용자에게 표시합니다. 두 개 이상 나열하면 Claude Code는 각 세션마다 하나를 무작위로 선택합니다. 사용자가 처음 실행할 때는 첫 번째 항목을 표시합니다.

2558 2559 

2559* **범위**: [`모든 파일`](#scopes)2560* **범위**: [`모든 파일`](#scopes)

2560* **유형**: 문자열 배열2561* **유형**: 문자열 배열

2561* **기본값**: 설정되지 않음, 따라서 공지사항이 표시되지 않습니다2562* **기본값**: 설정되지 않음, 따라서 공지 사항이 표시되지 않습니다

2562 2563 

2563```json settings.json theme={null}2564```json settings.json theme={null}

2564{2565{


2570 2571 

2571### `defaultShell`2572### `defaultShell`

2572 2573 

2573입력 상자에서 [`!` 접두사](/docs/ko/interactive-mode#shell-mode-with-prefix)로 입력하는 셸 명령, Claude Code가 직접 실행하고 세션에 추가하는 명령을 Bash 또는 PowerShell 중 어느 것이 실행할지 선택합니다.2574입력 상자에서 [`!` 접두사](/docs/ko/interactive-mode#shell-mode-with-prefix)로 입력하는 셸 명령, 즉 Claude Code가 직접 실행하고 세션에 추가하는 명령을 Bash와 PowerShell 중 무엇으로 실행할지 선택합니다.

2574 2575 

2575`"powershell"`은 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool)가 켜져 있을 때만 작동합니다. 이 도구는 Git Bash가 없는 Windows에서 기본적으로 켜져 있으며, Git Bash가 있는 Windows에서 claude.ai 및 Console 계정에 대해 켜져 있습니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 세션, macOS, Linux 및 WSL에서 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`을 설정하여 도구를 켭니다. 도구를 끄려면 해당 변수를 `0`으로 설정합니다.2576`"powershell"`은 [PowerShell 도구](/docs/ko/tools-reference#powershell-tool)가 켜져 있을 때만 작동합니다. 이 도구는 Git Bash가 없는 Windows에서, 그리고 claude.ai 및 Console 계정의 경우 Git Bash가 있는 Windows에서 기본적으로 켜져 있습니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 세션과 macOS, Linux, WSL에서는 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`을 설정하여 도구를 켭니다. 도구를 끄려면 해당 변수를 `0`으로 설정합니다.

2576 2577 

2577* **범위**: [`모든 파일`](#scopes)2578* **범위**: [`모든 파일`](#scopes)

2578* **유형**: 문자열, 다음 중 하나:2579* **유형**: 문자열, 다음 중 하나:

2579 * `"bash"`: Claude Code는 `!` 명령을 Bash에서 실행합니다2580 * `"bash"`: Claude Code가 `!` 명령을 Bash에서 실행합니다

2580 * `"powershell"`: Claude Code는 `!` 명령을 PowerShell에서 실행합니다2581 * `"powershell"`: Claude Code가 `!` 명령을 PowerShell에서 실행합니다

2581* **기본값**: `"bash"`, 또는 Bash를 사용할 수 없을 때 Windows에서 `"powershell"`2582* **기본값**: `"bash"`, Bash를 사용할 수 없는 Windows에서는 `"powershell"`

2582 2583 

2583```json settings.json theme={null}2584```json settings.json theme={null}

2584{2585{


2586}2587}

2587```2588```

2588 2589 

2589지정한 셸을 사용할 수 없으면 Claude Code는 다른 셸을 사용합니다: `"powershell"`은 PowerShell 도구가 꺼져 있을 때 Bash로 폴백하고, `"bash"`는 Bash가 설치되지 않았을 때 PowerShell로 폴백합니다.2590지정한 셸을 사용할 수 없으면 Claude Code는 다른 셸을 사용합니다: PowerShell 도구가 꺼져 있으면 `"powershell"`은 Bash로 대체되고, Bash가 설치되어 있지 않으면 `"bash"`는 PowerShell로 대체됩니다.

2590 2591 

2591### `dialogExpiry`2592### `dialogExpiry`

2592 2593 

2593Claude Code가 [원격 클라이언트](/docs/ko/remote-control#limitations)로 전달하는 대화 상자(예: Remote Control 또는 SDK 호스트)와 [보류 중인 교차 세션 메시지](/docs/ko/cross-session-messaging#control-inbound-messages)에 대한 승인 대화 상자의 기한을 설정합니다. Claude Code v2.1.236 이상에서는 동일한 기한이 터미널에 아무도 없을 수 있는 세션의 중간 세션 [Fable 사용 크레딧 동의 프롬프트](/docs/ko/model-config#fable-and-usage-credits)를 제한합니다. 기한 전에 답변이 도착하지 않으면 Claude Code는 대화 상자를 취소하고 기본 무조치로 계속합니다. Claude Code v2.1.224 이상이 필요합니다.2594Claude Code가 Remote Control이나 SDK 호스트 같은 [원격 클라이언트로 전달하는](/docs/ko/remote-control#limitations) 대화 상자와 [보류된 세션 간 메시지](/docs/ko/cross-session-messaging#control-inbound-messages)에 대한 승인 대화 상자의 기한을 설정합니다. Claude Code v2.1.236 이상에서는 터미널에 아무도 없을 수 있는 세션에서 세션 중간에 표시되는 [Fable 사용량 크레딧 동의 프롬프트](/docs/ko/model-config#fable-and-usage-credits)에도 같은 기한이 적용됩니다. 기한 전에 응답이 없으면 Claude Code는 대화 상자를 취소하고 아무 작업도 하지 않는 기본 동작으로 계속합니다. Claude Code v2.1.224 이상이 필요합니다.

2594 2595 

2595* **범위**: [`사용자 또는 관리됨`](#scopes)2596* **범위**: [`사용자 또는 관리형`](#scopes)

2596* **유형**: 문자열, `"60s"`, `"5m"`, `"10m"` 또는 기한을 비활성화하는 `"never"` 중 하나2597* **유형**: 문자열, `"60s"`, `"5m"`, `"10m"` 또는 기한을 비활성화하는 `"never"` 중 하나

2597* **기본값**: `"5m"`2598* **기본값**: `"5m"`

2598* **세션별 재정의**: [`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`](/docs/ko/env-vars)가 한 세션에 대해 이 키보다 우선합니다2599* **세션별 재정의**: 한 세션에 대해 [`CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS`](/docs/ko/env-vars)가 이 키보다 우선합니다

2599 2600 

2600```json settings.json theme={null}2601```json settings.json theme={null}

2601{2602{


2603}2604}

2604```2605```

2605 2606 

2606권한 프롬프트 및 [`AskUserQuestion`](/docs/ko/tools-reference#askuserquestion-tool-behavior) 질문은 자체 흐름을 사용하며 이 기한의 적용을 받지 않습니다. `/config`에 **대화 상자 만료**로 표시되며, 이 행은 Claude Code v2.1.232 이상이 필요하고, Claude Code는 관리 설정이나 `--settings` 플래그가 키를 설정하는 동안 행을 숨깁니다.2607권한 프롬프트와 [`AskUserQuestion`](/docs/ko/tools-reference#askuserquestion-tool-behavior) 질문은 자체 흐름을 사용하며 이 기한의 적용을 받지 않습니다. `/config`에 **Dialog expiry**로 표시되며, 이 키를 사용자 설정에 기록합니다. 이 행은 Claude Code v2.1.232 이상이 필요하며, 관리형 설정이나 `--settings` 플래그가 키를 설정한 경우 Claude Code는 이 행을 숨깁니다.

2607 2608 

2608### `editorMode`2609### `editorMode`

2609 2610 


2612* **범위**: [`모든 파일`](#scopes)2613* **범위**: [`모든 파일`](#scopes)

2613* **유형**: 문자열, 다음 중 하나:2614* **유형**: 문자열, 다음 중 하나:

2614 * `"normal"`: 프롬프트 입력의 표준 키 바인딩2615 * `"normal"`: 프롬프트 입력의 표준 키 바인딩

2615 * `"vim"`: NORMAL, INSERT 및 VISUAL 모드가 있는 vim 스타일 편집2616 * `"vim"`: NORMAL, INSERT, VISUAL 모드를 갖춘 vim 스타일 편집

2616* **기본값**: `"normal"`2617* **기본값**: `"normal"`

2617 2618 

2618```json settings.json theme={null}2619```json settings.json theme={null}


2621}2622}

2622```2623```

2623 2624 

2624`/config`에 **편집기 모드**로 표시되며, 이 키를 사용자 설정에 씁니다.2625`/config`에 **Editor mode**로 표시되며, 이 키를 사용자 설정에 기록합니다.

2625 2626 

2626### `emojiCompletionEnabled`2627### `emojiCompletionEnabled`

2627 2628 

2628프롬프트 입력에서 `:` 다음에 단축 코드를 입력할 때 이모지 제안을 표시하고, `:heart:`와 같은 완성된 단축 코드를 이모지로 바꿉니다. 둘 다 끄려면 `false`로 설정합니다.2629프롬프트 입력에서 `:`와 단축 코드를 입력하면 이모지 제안을 표시하고, `:heart:` 같은 완성된 단축 코드를 해당 이모지로 바꿉니다. 둘 다 끄려면 `false`로 설정합니다.

2629 2630 

2630* **범위**: [`모든 파일`](#scopes)2631* **범위**: [`모든 파일`](#scopes)

2631* **유형**: 부울2632* **유형**: Boolean

2632 * `true`: Claude Code는 `:` 후 이모지 제안을 표시하고 완성된 단축 코드를 이모지로 바꿉니다2633 * `true`: Claude Code가 `:` 뒤에 이모지 제안을 표시하고 완성된 단축 코드를 해당 이모지로 바꿉니다

2633 * `false`: Claude Code는 이모지를 제안하거나 단축 코드를 바꾸지 않습니다2634 * `false`: Claude Code가 이모지를 제안하지도, 단축 코드를 바꾸지도 않습니다

2634* **기본값**: `true`2635* **기본값**: `true`

2635 2636 

2636```json settings.json theme={null}2637```json settings.json theme={null}


2643 2644 

2644### `fileSuggestion`2645### `fileSuggestion`

2645 2646 

2646내장 파일 제안 대신 `@` 파일 경로 자동 완성을 제공하는 자신의 명령을 실행합니다. 내장 제안은 빠른 파일 시스템 순회를 사용합니다. 대규모 모노레포는 사전 구축된 파일 인덱스와 같은 프로젝트별 인덱싱으로 더 잘 작동할 수 있습니다.2647기본 제공 파일 제안 대신 직접 만든 명령을 실행하여 `@` 파일 경로 자동 완성을 제공합니다. 기본 제공 제안은 빠른 파일 시스템 탐색을 사용하며, 대규모 모노레포에서는 미리 빌드된 파일 인덱스 같은 프로젝트별 인덱싱이 더 효과적일 수 있습니다.

2647 2648 

2648* **범위**: [`모든 파일`](#scopes). [상태 줄 및 파일 제안 게이트](#status-line-and-file-suggestion-gates) 아래에서 Claude Code는 명령을 끄거나 관리 값만 실행하고 경고 없이 당신의 것을 건너뜁니다.2649* **범위**: [`모든 파일`](#scopes). [상태줄 및 파일 제안 게이트](#status-line-and-file-suggestion-gates)에 따라 Claude Code는 명령을 끄거나 관리형 값만 실행하며, 사용자의 명령은 경고 없이 건너뜁니다.

2649* **유형**: `type`(항상 `"command"`)과 실행할 셸 명령인 `command`를 포함하는 객체2650* **유형**: 항상 `"command"`인 `type`과 실행할 셸 명령인 `command`를 가진 객체

2650* **기본값**: 설정되지 않음, 따라서 Claude Code는 내장 파일 제안을 사용합니다2651* **기본값**: 설정되지 않음, 따라서 Claude Code는 기본 제공 파일 제안을 사용합니다

2651 2652 

2652```json settings.json theme={null}2653```json settings.json theme={null}

2653{2654{


2658}2659}

2659```2660```

2660 2661 

2661이를 저장한 후 프롬프트에서 `@` 다음에 경로의 일부를 입력합니다: 제안은 명령의 출력에서 나옵니다.2662저장한 후 프롬프트에 `@`와 경로의 일부를 입력하면 명령의 출력에서 제안이 표시됩니다.

2662 2663 

2663#### 명령 입력 및 출력2664#### 명령 입력 및 출력

2664 2665 

2665Claude Code는 [hooks](/docs/ko/hooks)와 동일한 환경 변수(예: `CLAUDE_PROJECT_DIR`)로 명령을 실행하고 5초 후 대기를 중지합니다. 명령은 지금까지 입력한 내용을 보유하는 `query` 필드가 있는 JSON을 stdin에서 받습니다:2666Claude Code는 `CLAUDE_PROJECT_DIR`를 포함하여 [훅](/docs/ko/hooks)과 동일한 환경 변수로 명령을 실행하며, 5초 후에는 대기를 중단합니다. 명령은 지금까지 입력한 내용을 담은 `query` 필드가 있는 JSON을 stdin으로 받습니다:

2666 2667 

2667```json theme={null}2668```json theme={null}

2668{"query": "src/comp"}2669{"query": "src/comp"}

2669```2670```

2670 2671 

2671stdout에 줄 바꿈으로 구분된 파일 경로를 인쇄합니다. Claude Code는 최대 15개를 표시합니다:2672줄바꿈으로 구분된 파일 경로를 stdout에 출력합니다. Claude Code는 최대 15개를 표시합니다:

2672 2673 

2673```text theme={null}2674```text theme={null}

2674src/components/Button.tsx2675src/components/Button.tsx


2676src/components/Form.tsx2677src/components/Form.tsx

2677```2678```

2678 2679 

2679다음 스크립트는 쿼리를 읽고 저장소 파일 인덱스에 전달합니다:2680다음 스크립트는 쿼리를 읽어 저장소 파일 인덱스에 전달합니다:

2680 2681 

2681```bash theme={null}2682```bash theme={null}

2682#!/bin/bash2683#!/bin/bash


2687 2688 

2688### `footerLinksRegexes`2689### `footerLinksRegexes`

2689 2690 

2690정규식이 턴 출력과 일치할 때 입력 상자 아래 바닥글에 클릭 가능한 배지를 렌더링합니다: 도구 결과(파일 내용 및 가져온 페이지 포함) 및 Claude의 자체 응답. 이를 사용하여 검토 도구 및 문제 추적기와 같은 프로젝트 CLI에서 인쇄한 ID를 세션 링크로 변환합니다.2691정규식이 턴 출력(파일 내용과 가져온 페이지를 포함한 도구 결과, Claude 자체의 응답)과 일치하면 입력 상자 아래 푸터에 클릭 가능한 추가 배지를 렌더링합니다. 리뷰 도구나 이슈 트래커 같은 프로젝트 CLI가 출력한 ID를 세션 링크로 바꾸는 데 사용합니다.

2691 2692 

2692* **범위**: [`사용자 또는 관리됨`](#scopes)2693* **범위**: [`사용자 또는 관리형`](#scopes)

2693* **유형**: 객체 배열, 각각 `type`을 `"regex"`로 설정, `pattern` 정규식, `url` 템플릿, 선택적 `label`을 포함합니다. `url` 및 `label`의 `{name}` 자리 표시자는 `pattern`의 명명된 캡처 그룹에서 채워집니다2694* **유형**: 객체 배열, 각 객체는 `"regex"`로 설정된 `type`, `pattern` 정규식, `url` 템플릿, 선택적 `label`을 가집니다. `url`과 `label`의 `{name}` 자리 표시자는 `pattern`의 명명된 캡처 그룹으로 채워집니다

2694* **기본값**: 설정되지 않음, 따라서 배지가 렌더링되지 않습니다2695* **기본값**: 설정되지 않음, 따라서 배지가 렌더링되지 않습니다

2695 2696 

2696이 예제는 `PROJ-1234`와 같은 문제 키와 일치하고 캡처된 키에서 각 링크를 구축합니다:2697이 예시는 `PROJ-1234` 같은 이슈 키와 일치시키고 캡처한 키로 각 링크를 만듭니다:

2697 2698 

2698```json settings.json theme={null}2699```json settings.json theme={null}

2699{2700{


2708}2709}

2709```2710```

2710 2711 

2711이것이 구성되면, `PROJ-1234`가 도구 결과 또는 Claude의 응답에 나타날 때, `PROJ-1234` 배지가 바닥글에 나타나 `https://issues.example.com/browse/PROJ-1234`로 연결됩니다.2712이렇게 구성하면 도구 결과나 Claude의 응답에 `PROJ-1234`가 나타날 때 `https://issues.example.com/browse/PROJ-1234`로 연결되는 `PROJ-1234` 배지가 푸터에 표시됩니다.

2712 2713 

2713#### 배지 제약2714#### 배지 제약 조건

2714 2715 

2715각 항목의 URL, 레이블 및 배지 수는 다음과 같이 제한됩니다:2716각 항목의 URL, 레이블, 배지 수는 다음과 같이 제한됩니다:

2716 2717 

2717| 제약 | 동작 |2718| 제약 조건 | 동작 |

2718| :- | :- |2719| :- | :- |

2719| URL 원본 | 캡처된 값은 URL 인코딩되고 구성된 URL은 템플릿의 리터럴 원본을 공유해야 합니다. 캡처는 경로 세그먼트 또는 쿼리 값을 채울 수 있지만 링크가 가리키는 위치를 변경할 수 없습니다 |2720| URL 출처 | 캡처된 값은 URL 인코딩되며, 생성된 URL은 템플릿의 리터럴 출처와 같아야 합니다. 캡처는 경로 세그먼트나 쿼리 값을 채울 수 있지만 링크가 가리키는 위치를 바꿀 수는 없습니다 |

2720| URL 길이 | 2048자보다 긴 구성된 URL은 삭제됩니다 |2721| URL 길이 | 2048자보다 긴 생성 URL은 삭제됩니다 |

2721| URL 스키마 | `https`, `http` 또는 인식된 편집기 또는 작업 공간 딥 링크 스키마여야 합니다: `vscode`, `vscode-insiders`, `cursor`, `windsurf`, `zed`, `jetbrains`, `idea`, `slack`, `linear`, `notion`, `figma` |2722| URL 스킴 | `https`, `http` 또는 인식되는 편집기나 워크스페이스 딥링크 스킴이어야 합니다: `vscode`, `vscode-insiders`, `cursor`, `windsurf`, `zed`, `jetbrains`, `idea`, `slack`, `linear`, `notion`, `figma` |

2722| 레이블 | 일치한 텍스트로 기본값이 지정되고 28개 표시 열로 잘립니다 |2723| 레이블 | 기본값은 일치한 텍스트이며 표시 열 28개로 잘립니다 |

2723| 배지 수 | 최대 5개의 배지가 렌더링됩니다. 가장 오래된 것은 최신 일치로 대체되고 `/clear`는 이를 제거합니다 |2724| 배지 수 | 최대 5개의 배지가 렌더링됩니다. 가장 오래된 배지는 새로 일치한 배지로 대체되며 `/clear`로 제거됩니다 |

2724 2725 

2725턴이 완료되면 Claude Code는 메인 스레드에서 각 항목의 `pattern` 정규식을 턴 출력과 일치시키므로 느린 정규식은 완료될 때까지 UI를 차단합니다. `(a+)+$`와 같은 중첩된 수량자는 특정 입력에 대해 지수적으로 오래 걸릴 수 있고 세션을 고정시킬 수 있으므로 각 `pattern`을 선형으로 유지하고 `+` 또는 `*`를 중첩하지 마세요.2726턴이 완료되면 Claude Code는 메인 스레드에서 각 항목의 `pattern` 정규식을 턴 출력과 대조하므로, 느린 정규식은 완료될 때까지 UI를 차단합니다. `(a+)+$` 같은 중첩된 수량자는 특정 입력에 대해 기하급수적으로 오래 걸려 세션을 멈추게 할 수 있으므로, 각 `pattern`을 선형으로 유지하고 `+`나 `*`를 중첩하지 마세요.

2726 2727 

2727바닥글 배지는 구성된 [사용자 정의 상태 줄](/docs/ko/statusline)과 함께 렌더링됩니다. 둘 다 서로를 대체하지 않습니다. 세션 데이터에서 자체 콘텐츠를 계산하는 스크립트 기반 행에는 상태 줄을 사용하고, 대화에서 ID를 스크립트 없이 링크로 변환하려면 바닥글 배지를 사용합니다.2728[사용자 지정 상태줄](/docs/ko/statusline)이 구성된 경우 푸터 배지는 그와 함께 렌더링되며, 어느 쪽도 다른 쪽을 대체하지 않습니다. 세션 데이터로 자체 내용을 계산하는 스크립트 기반 행에는 상태줄을 사용하고, 스크립트 없이 대화의 ID를 링크로 바꾸려면 푸터 배지를 사용합니다.

2728 2729 

2729### `keybindingFlavor`2730### `keybindingFlavor`

2730 2731 

2731> [!WARNING]2732> [!WARNING]

2732>2733>

2733> v2.1.261 이후 더 이상 사용되지 않으며 효과가 없습니다. 프롬프트의 단어 편집 키는 항상 [readline 규칙](/docs/ko/interactive-mode#make-ctrl-w-delete-back-to-whitespace)을 따릅니다(Bash처럼). Claude Code는 여전히 `keybindingFlavor`를 허용하므로 이를 설정하는 설정 파일은 유효합니다.2734> v2.1.261부터 deprecated되었으며 효과가 없습니다. 프롬프트의 단어 편집 키는 Bash에서처럼 항상 [readline 규칙을 따릅니다](/docs/ko/interactive-mode#make-ctrl-w-delete-back-to-whitespace). Claude Code는 여전히 `keybindingFlavor`를 허용하므로 이를 설정한 설정 파일은 계속 유효합니다.

2734 2735 

2735v2.1.238부터 v2.1.260까지, 이를 `"readline"`으로 설정하면 `Ctrl+W`가 이전 단어만이 아니라 이전 공백으로 돌아가 삭제합니다.2736v2.1.238부터 v2.1.260까지는 `"readline"`으로 설정하면 `Ctrl+W`가 이전 단어만이 아니라 이전 공백까지 삭제했습니다.

2736 2737 

2737* **범위**: [`모든 파일`](#scopes)2738* **범위**: [`모든 파일`](#scopes)

2738* **유형**: 문자열, `"classic"` 또는 `"readline"`2739* **유형**: 문자열, `"classic"` 또는 `"readline"`


2740 2741 

2741### `maxProseWidth`2742### `maxProseWidth`

2742 2743 

2743Claude의 응답에서 산문의 너비를 제한하여 넓은 터미널에서 줄이 읽기 쉽게 유지되도록 합니다. 단락, 제목, 목록 및 인용문은 이 많은 열 내에서 줄 바꿈되고, 표 및 코드 블록은 전체 터미널 너비를 유지합니다. Claude Code v2.1.282 이상이 필요합니다.2744넓은 터미널에서도 줄을 읽기 쉽게 유지하도록 Claude 응답의 본문 너비를 제한합니다. 단락, 제목, 목록, 인용구는 이 열 수 안에서 줄바꿈되며, 표와 코드 블록은 터미널 전체 너비를 유지합니다. Claude Code v2.1.282 이상이 필요합니다.

2744 2745 

2745* **범위**: [`모든 파일`](#scopes)2746* **범위**: [`모든 파일`](#scopes)

2746* **유형**: 터미널 열 수, 정수, 최소 `40`. Claude Code는 다른 값을 무시합니다2747* **유형**: 터미널 열 수, 정수, 최솟값 `40`. Claude Code는 그 외의 값을 무시합니다

2747* **기본값**: 설정되지 않음, 따라서 산문은 터미널 가장자리에서 줄 바꿈됩니다2748* **기본값**: 설정되지 않음, 따라서 본문은 터미널 가장자리에서 줄바꿈됩니다

2748 2749 

2749```json settings.json theme={null}2750```json settings.json theme={null}

2750{2751{


2754 2755 

2755### `prefersReducedMotion`2756### `prefersReducedMotion`

2756 2757 

2757스피너, 반짝임 및 플래시 효과와 같은 인터페이스 애니메이션을 줄이거나 끕니다. `/config`에 **동작 감소**로 표시됩니다.2758스피너, 시머, 플래시 효과 같은 인터페이스 애니메이션을 줄이거나 끕니다. `/config`에 **Reduce motion**으로 표시됩니다.

2758 2759 

2759* **범위**: [`모든 파일`](#scopes)2760* **범위**: [`모든 파일`](#scopes)

2760* **유형**: 부울2761* **유형**: Boolean

2761 * `true`: Claude Code는 스피너, 반짝임 및 플래시 효과와 같은 인터페이스 애니메이션을 줄이거나 끕니다2762 * `true`: Claude Code가 스피너, 시머, 플래시 효과 같은 인터페이스 애니메이션을 줄이거나 끕니다

2762 * `false`: 설정되지 않은 것과 동일합니다. Claude Code는 애니메이션을 표시합니다2763 * `false`: 설정되지 않은 것과 같으며, Claude Code가 애니메이션을 표시합니다

2763* **기본값**: `false`2764* **기본값**: `false`

2764 2765 

2765```json settings.json theme={null}2766```json settings.json theme={null}


2770 2771 

2771### `promptSuggestionEnabled`2772### `promptSuggestionEnabled`

2772 2773 

2773[프롬프트 제안](/docs/ko/interactive-mode#prompt-suggestions)을 표시하거나 숨깁니다. 프롬프트 입력에 나타나는 회색 예측입니다. `false`로 설정하거나 `/config`에서 **프롬프트 제안**을 끄면 숨깁니다.2774프롬프트 입력에 나타나는 회색 예측인 [프롬프트 제안](/docs/ko/interactive-mode#prompt-suggestions)을 표시하거나 숨깁니다. 숨기려면 `false`로 설정하거나 `/config`에서 **Prompt suggestions**를 끕니다.

2774 2775 

2775* **범위**: [`모든 파일`](#scopes)2776* **범위**: [`모든 파일`](#scopes)

2776* **유형**: 부울2777* **유형**: Boolean

2777 * `true`: 프롬프트 입력에서 프롬프트 제안을 봅니다2778 * `true`: 프롬프트 입력에 프롬프트 제안이 표시됩니다

2778 * `false`: Claude Code는 프롬프트 제안을 숨깁니다2779 * `false`: Claude Code가 프롬프트 제안을 숨깁니다

2779* **기본값**: `true`2780* **기본값**: `true`

2780* **세션별 재정의**: [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](/docs/ko/env-vars)이 한 세션에 대해 이 키보다 우선합니다2781* **세션별 재정의**: 한 세션에 대해 [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](/docs/ko/env-vars)이 이 키보다 우선합니다

2781 2782 

2782```json settings.json theme={null}2783```json settings.json theme={null}

2783{2784{


2785}2786}

2786```2787```

2787 2788 

2788프롬프트 제안에는 원격 분석이 켜진 claude.ai 또는 Console 계정이 필요합니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry에서 또는 [`DISABLE_TELEMETRY`](/docs/ko/env-vars)와 같이 원격 분석이 꺼져 있으면 이 키는 효과가 없고 `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=1`만 이를 켭니다.2789프롬프트 제안에는 텔레메트리가 켜진 claude.ai 또는 Console 계정이 필요합니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry에서, 또는 [`DISABLE_TELEMETRY`](/docs/ko/env-vars) 등으로 텔레메트리가 꺼진 경우에는 이 키가 효과가 없으며 `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=1`만 제안을 켭니다.

2789 2790 

2790### `respectGitignore`2791### `respectGitignore`

2791 2792 

2792`@` 파일 선택기가 `.gitignore` 패턴과 일치하는 파일을 제외할지 여부를 제어합니다. `/config`에 **파일 선택기에서 .gitignore 존중**으로 표시됩니다.2793`@` 파일 선택기가 `.gitignore` 패턴과 일치하는 파일을 제외할지 제어합니다. `/config`에 **Respect .gitignore in file picker**로 표시됩니다.

2793 2794 

2794* **범위**: [`모든 파일`](#scopes). 설정 파일이 이를 설정하지 않으면 Claude Code는 `/config` 토글이 쓰는 `~/.claude.json`의 `respectGitignore`로 폴백합니다.2795* **범위**: [`모든 파일`](#scopes). 어떤 설정 파일도 이를 설정하지 않으면 Claude Code는 `/config` 토글이 기록하는 `~/.claude.json`의 `respectGitignore`로 대체합니다.

2795* **유형**: 부울2796* **유형**: Boolean

2796 * `true`: `@` 파일 선택기는 `.gitignore` 패턴과 일치하는 파일을 제외합니다2797 * `true`: `@` 파일 선택기가 `.gitignore` 패턴과 일치하는 파일을 제외합니다

2797 * `false`: `@` 파일 선택기는 `.gitignore` 패턴과 일치하는 파일을 포함합니다2798 * `false`: `@` 파일 선택기가 `.gitignore` 패턴과 일치하는 파일을 포함합니다

2798* **기본값**: `true`2799* **기본값**: `true`

2799 2800 

2800```json settings.json theme={null}2801```json settings.json theme={null}


2805 2806 

2806### `respondToBashCommands`2807### `respondToBashCommands`

2807 2808 

2808입력 상자에서 [`!` 접두사](/docs/ko/interactive-mode#shell-mode-with-prefix)로 셸 명령을 실행한 후 Claude가 응답할지 여부를 선택합니다. 기본적으로 Claude Code는 명령의 출력을 대화에 추가하고 Claude가 이에 응답합니다. 이 키를 `false`로 설정하면 응답 없이 출력을 컨텍스트에 추가하므로 여러 명령을 실행하고 함께 질문할 수 있습니다.2809입력 상자에서 [`!` 접두사](/docs/ko/interactive-mode#shell-mode-with-prefix)로 셸 명령을 실행한 후 Claude가 응답할지 선택합니다. 기본적으로 Claude Code는 명령의 출력을 대화에 추가하고 Claude가 이에 응답합니다. 이 키를 `false`로 설정하면 응답 없이 출력을 컨텍스트에 추가하므로, 여러 명령을 실행한 뒤 한꺼번에 질문할 수 있습니다.

2809 2810 

2810* **범위**: [`모든 파일`](#scopes)2811* **범위**: [`모든 파일`](#scopes)

2811* **유형**: 부울2812* **유형**: Boolean

2812 * `true`: Claude Code는 명령의 출력을 대화에 추가하고 Claude가 이에 응답합니다2813 * `true`: Claude Code가 명령의 출력을 대화에 추가하고 Claude가 이에 응답합니다

2813 * `false`: Claude Code는 응답 없이 출력을 컨텍스트에 추가합니다2814 * `false`: Claude Code가 응답 없이 출력을 컨텍스트에 추가합니다

2814* **기본값**: `true`2815* **기본값**: `true`

2815 2816 

2816```json settings.json theme={null}2817```json settings.json theme={null}


2819}2820}

2820```2821```

2821 2822 

2822[셸 모드와 `!` 접두사](/docs/ko/interactive-mode#shell-mode-with-prefix)를 참조하세요.2823[`!` 접두사를 사용한 셸 모드](/docs/ko/interactive-mode#shell-mode-with-prefix)를 참조하세요.

2823 2824 

2824### `showClearContextOnPlanAccept`2825### `showClearContextOnPlanAccept`

2825 2826 

2826Claude가 [계획 모드](/docs/ko/permission-modes#review-and-approve-a-plan)에서 계획을 완료하면 승인 메뉴를 표시합니다. 계획은 많은 컨텍스트를 사용할 수 있으므로 이 키는 해당 메뉴에 첫 번째 옵션인 \*\*예, 컨텍스트를 지우고 …\*\*을 추가하여 계획을 승인하고, 대화 컨텍스트를 지우고, 계획만으로 구현을 시작합니다. 레이블의 나머지는 세션이 계속되는 권한 모드의 이름을 지정하고 계획이 사용한 컨텍스트의 양을 표시합니다.2827Claude가 [플랜 모드](/docs/ko/permission-modes#review-and-approve-a-plan)에서 플랜을 완료하면 승인 메뉴를 표시합니다. 계획 수립에는 많은 컨텍스트가 사용될 수 있으므로, 이 키는 해당 메뉴에 \*\*Yes, clear context and …\*\*라는 첫 번째 옵션을 추가합니다. 이 옵션은 플랜을 승인하고, 대화 컨텍스트를 지우고, 플랜만으로 구현을 시작합니다. 레이블의 나머지 부분은 세션이 계속될 권한 모드를 나타내며, 계획 수립에 컨텍스트가 얼마나 사용되었는지 보여 줍니다.

2827 2828 

2828* **범위**: [`모든 파일`](#scopes)2829* **범위**: [`모든 파일`](#scopes)

2829* **유형**: 부울2830* **유형**: Boolean

2830 * `true`: 계획 승인 메뉴는 계획을 승인하고 대화 컨텍스트를 지우는 첫 번째 옵션인 \*\*예, 컨텍스트를 지우고 …\*\*을 가집니다2831 * `true`: 플랜 승인 메뉴에 플랜을 승인하고 대화 컨텍스트를 지우는 첫 번째 옵션 \*\*Yes, clear context and …\*\*가 추가됩니다

2831 * `false`: 계획 승인 메뉴는 컨텍스트 지우기 옵션을 표시하지 않습니다2832 * `false`: 플랜 승인 메뉴에 컨텍스트 지우기 옵션이 표시되지 않습니다

2832* **기본값**: `false`2833* **기본값**: `false`

2833 2834 

2834```json settings.json theme={null}2835```json settings.json theme={null}


2839 2840 

2840### `showTurnDuration`2841### `showTurnDuration`

2841 2842 

2842각 응답 후 턴 지속 시간 메시지를 표시하거나 숨깁니다(예: "Cooked for 1m 6s · done 6:05 PM"). "done" 후의 시계는 턴이 완료된 시간을 표시합니다. [`timeFormat`](#timeformat) 및 [`timeZone`](#timezone)은 형식과 영역을 제어합니다. `/config`에 **턴 지속 시간 표시**로 표시됩니다.2843각 응답 후에 "Cooked for 1m 6s · done 6:05 PM" 같은 턴 소요 시간 메시지를 표시하거나 숨깁니다. "done" 뒤의 시각은 턴이 끝난 시점을 나타내며, [`timeFormat`](#timeformat)과 [`timeZone`](#timezone)이 형식과 시간대를 제어합니다. `/config`에 **Show turn duration**으로 표시됩니다.

2843 2844 

2844* **범위**: [`모든 파일`](#scopes). 설정 파일이 이를 설정하지 않으면 이전 버전의 `~/.claude.json`의 값이 적용됩니다.2845* **범위**: [`모든 파일`](#scopes). 어떤 설정 파일도 이를 설정하지 않으면 이전 버전에서 기록된 `~/.claude.json`의 값이 적용됩니다.

2845* **유형**: 부울2846* **유형**: Boolean

2846 * `true`: 각 응답 후 턴 지속 시간 메시지를 봅니다2847 * `true`: 각 응답 후에 턴 소요 시간 메시지가 표시됩니다

2847 * `false`: Claude Code는 턴 지속 시간 메시지를 숨깁니다2848 * `false`: Claude Code가 턴 소요 시간 메시지를 숨깁니다

2848* **기본값**: `true`2849* **기본값**: `true`

2849 2850 

2850```json settings.json theme={null}2851```json settings.json theme={null}


2855 2856 

2856### `spellcheck`2857### `spellcheck`

2857 2858 

2858입력하면서 프롬프트 입력에서 잘못된 단어에 밑줄을 그으세요. 설치한 맞춤법 검사기를 사용합니다. Claude Code는 입력 상자의 텍스트만 확인합니다. [입력하면서 맞춤법 확인](/docs/ko/interactive-mode#check-spelling-as-you-type)은 aspell, hunspell 또는 ispell을 설치하고 검사기가 다루는 내용을 다룹니다. Claude Code v2.1.235 이상이 필요합니다.2859직접 설치한 맞춤법 검사기를 사용하여 입력하는 동안 프롬프트 입력에서 철자가 틀린 단어에 밑줄을 표시합니다. Claude Code는 입력 상자의 텍스트만 검사합니다. aspell, hunspell, ispell 설치 방법과 검사기가 검사하는 범위는 [입력하는 동안 맞춤법 검사](/docs/ko/interactive-mode#check-spelling-as-you-type)에서 다룹니다. Claude Code v2.1.235 이상이 필요합니다.

2859 2860 

2860* **범위**: [`사용자 또는 관리됨`](#scopes). 이를 설정하는 가장 높은 계층의 블록이 전체적으로 적용됩니다.2861* **범위**: [`사용자 또는 관리형`](#scopes). 이를 설정한 가장 높은 계층의 블록이 전체로 적용됩니다.

2861* **유형**: `enabled`(부울), `checker`(`"aspell"`, `"hunspell"`, `"ispell"` 또는 `"auto"`), `language`(문자열, 검사기의 사전 이름으로 전달됨), `color`(문자열, 터미널 색상 이름, `#rrggbb`, `rgb(r,g,b)`, `ansi256(n)` 또는 `ansi:<name>`)를 포함하는 객체2862* **유형**: `enabled`(Boolean), `checker`(`"aspell"`, `"hunspell"`, `"ispell"` 또는 `"auto"`), `language`(문자열, 사전 이름으로 검사기에 전달됨), `color`(문자열, 터미널 색상 이름, `#rrggbb`, `rgb(r,g,b)`, `ansi256(n)` 또는 `ansi:<name>`)를 가진 객체

2862* **기본값**: 설정되지 않음, 따라서 맞춤법 검사는 꺼져 있습니다. `checker`는 `"auto"`로 기본값이 지정되며, `PATH`에서 찾은 첫 번째입니다. `language`는 검사기 자체의 사전으로 기본값이 지정됩니다. `color`는 테마의 오류 색상으로 기본값이 지정됩니다2863* **기본값**: 설정되지 않음, 따라서 맞춤법 검사는 꺼져 있습니다. `checker`의 기본값은 `PATH`에서 처음 발견된 세 검사기 중 하나인 `"auto"`이며, `language`의 기본값은 검사기 자체의 사전이고, `color`의 기본값은 테마의 오류 색상입니다

2863 2864 

2864```json settings.json theme={null}2865```json settings.json theme={null}

2865{2866{


2869 2870 

2870### `spinnerTipsEnabled`2871### `spinnerTipsEnabled`

2871 2872 

2872Claude가 작업하는 동안 스피너 줄은 "Use Plan Mode to prepare for a complex request before making changes. Press Shift+Tab twice to enable."과 같은 Claude Code 기능에 대한 짧은 팁을 회전합니다. 이 키를 `false`로 설정하면 숨깁니다. `/config`에 **팁 표시**로 표시됩니다.2873Claude가 작업하는 동안 스피너 줄에는 "Use Plan Mode to prepare for a complex request before making changes. Press Shift+Tab twice to enable." 같은 Claude Code 기능에 대한 짧은 팁이 순환 표시됩니다. 숨기려면 이 키를 `false`로 설정합니다. `/config`에 **Show tips**로 표시됩니다.

2873 2874 

2874* **범위**: [`모든 파일`](#scopes)2875* **범위**: [`모든 파일`](#scopes)

2875* **유형**: 부울2876* **유형**: Boolean

2876 * `true`: Claude가 작업하는 동안 스피너에서 팁을 봅니다2877 * `true`: Claude가 작업하는 동안 스피너에 팁이 표시됩니다

2877 * `false`: Claude Code는 스피너 팁을 숨깁니다2878 * `false`: Claude Code가 스피너 팁을 숨깁니다

2878* **기본값**: `true`2879* **기본값**: `true`

2879 2880 

2880```json settings.json theme={null}2881```json settings.json theme={null}


2885 2886 

2886### `spinnerTipsOverride`2887### `spinnerTipsOverride`

2887 2888 

2888Claude Code가 Claude가 작업하는 동안 표시하는 [스피너 팁](#spinnertipsenabled)에 자신의 팁을 추가하거나 내장 팁을 당신의 것으로 바꿉니다. Claude Code는 당신의 팁을 내장 팁과 동일한 회전에 넣습니다.2889Claude가 작업하는 동안 Claude Code가 표시하는 [스피너 팁](#spinnertipsenabled)에 직접 만든 팁을 추가하거나, 기본 제공 팁을 직접 만든 팁으로 대체합니다. Claude Code는 사용자의 팁을 기본 제공 팁과 같은 순환에 넣습니다.

2889 2890 

2890[`spinnerTipsEnabled`](#spinnertipsenabled)을 `false`로 설정하면 Claude Code는 모든 팁(당신의 것 포함)을 숨깁니다.2891[`spinnerTipsEnabled`](#spinnertipsenabled)를 `false`로 설정하면 Claude Code는 사용자의 팁을 포함한 모든 팁을 숨깁니다.

2891 2892 

2892* **범위**: [`모든 파일`](#scopes). Claude Code는 팁 객체, `tipsFile`, `label` 및 `excludeDefault`를 사용자 설정, `--settings` 플래그 및 관리 설정에서 존중합니다. 프로젝트 및 로컬 설정에서는 평문 문자열 팁만 읽습니다.2893* **범위**: [`모든 파일`](#scopes). Claude Code는 사용자 설정, `--settings` 플래그, 관리형 설정의 팁 객체, `tipsFile`, `label`, `excludeDefault`를 적용합니다. 프로젝트 및 로컬 설정에서는 일반 문자열 팁만 읽습니다.

2893* **유형**: `tips`, `tipsFile`, `label` 및 `excludeDefault` 필드를 포함하는 객체, 각각 선택 사항2894* **유형**: 각각 선택 사항인 `tips`, `tipsFile`, `label`, `excludeDefault` 필드를 가진 객체

2894* **기본값**: 설정되지 않음, 따라서 Claude Code는 내장 팁만 표시합니다2895* **기본값**: 설정되지 않음, 따라서 Claude Code는 기본 제공 팁만 표시합니다

2895 2896 

2896팁 객체, `tipsFile`, `label` 및 범위 줄의 규칙(프로젝트 및 로컬 설정이 평문 문자열만 기여)에는 Claude Code v2.1.247 이상이 필요합니다.2897팁 객체, `tipsFile`, `label`, 그리고 프로젝트 및 로컬 설정은 일반 문자열만 제공한다는 범위 항목의 규칙에는 Claude Code v2.1.247 이상이 필요합니다.

2897 2898 

2898각 `tips` 항목은 평문 문자열 또는 다음 필드를 포함하는 객체입니다:2899각 `tips` 항목은 일반 문자열이거나 다음 필드를 가진 객체입니다:

2899 2900 

2900| 필드 | 필수 | 설명 |2901| 필드 | 필수 | 설명 |

2901| :- | :- | :- |2902| :- | :- | :- |

2902| `id` | 예 | 최대 64개의 문자, 숫자, `.`, `_` 또는 `-`. Claude Code는 팁의 표시 기록을 이것으로 키합니다. 동일한 id를 가진 두 항목 중 Claude Code는 첫 번째를 사용합니다 |2903| `id` | 예 | 최대 64자의 문자, 숫자, `.`, `_` 또는 `-`. Claude Code는 이를 기준으로 팁의 표시 기록을 저장하므로, 목록 순서를 바꿔도 팁의 쿨다운이 유지됩니다. 같은 id를 가진 두 항목 중에서는 Claude Code가 첫 번째를 사용합니다 |

2903| `text` | 예 | 팁, 최대 500자의 한 줄. Claude Code는 ANSI 이스케이프 및 제어 문자를 제거하고 공백을 축소합니다 |2904| `text` | 예 | 팁 내용, 최대 500자의 한 줄. Claude Code는 ANSI 이스케이프와 제어 문자를 제거하고 공백을 축약합니다 |

2904| `cooldownSessions` | 아니오 | Claude Code가 팁을 다시 표시하기 전에 대기하는 세션, `0`에서 `1000`, 기본값 `0` |2905| `cooldownSessions` | 아니요 | Claude Code가 팁을 다시 표시하기 전에 기다리는 세션 수, `0`부터 `1000`까지, 기본값 `0` |

2905| `priority` | 아니오 | 동일하게 오래 표시되지 않은 팁 중 순서, 더 높음, `-10`에서 `10`, 기본값 `0` |2906| `priority` | 아니요 | 같은 기간 동안 표시되지 않은 팁 사이의 순서, 높을수록 먼저, `-10`부터 `10`까지, 기본값 `0` |

2906 2907 

2907Claude Code는 평문 문자열을 해당 기본값과 위치 기반 id를 가진 팁으로 읽으므로 목록을 다시 정렬하면 표시 기록이 재설정됩니다. 팁에 `id`를 제공하여 편집 전체에서 기록을 유지합니다.2908Claude Code는 일반 문자열을 위의 기본값과 위치 기반 id를 가진 팁으로 읽으므로, 목록 순서를 바꾸면 표시 기록이 초기화됩니다. 편집 후에도 기록을 유지하려면 팁에 `id`를 지정하세요.

2908 2909 

2909Claude Code는 `tips` 및 `tipsFile` 전체에서 최대 200개의 팁을 읽고 설정 파일을 거부하는 대신 디버그 경고와 함께 잘못된 항목을 삭제합니다.2910Claude Code는 `tips`와 `tipsFile`을 합쳐 최대 200개의 팁을 읽으며, 잘못된 항목은 설정 파일을 거부하는 대신 디버그 경고와 함께 삭제합니다.

2910 2911 

2911나머지 필드를 사용하여 팁 파일의 이름을 지정하고, 접두사를 설정하고, 내장 팁을 숨깁니다:2912나머지 필드를 사용하여 팁 파일을 지정하고, 접두사를 설정하고, 기본 제공 팁을 숨깁니다:

2912 2913 

2913* `tipsFile`: 동일한 항목의 배열을 보유하는 로컬 JSON 파일에 대한 절대 또는 `~/` 경로, 또는 `tips` 배열을 포함하는 객체, 최대 256 KB. Claude Code는 프로세스당 한 번 파일을 읽으므로 다음 시작 시 편집 내용을 로드합니다. [서버 관리 설정](/docs/ko/server-managed-settings)을 통해 설정할 수 없습니다. 인라인 `tips`를 배포하거나 온디스크 `managed-settings.json`에 경로를 배포합니다.2914* `tipsFile`: 같은 항목의 배열 또는 `tips` 배열을 가진 객체를 담은 로컬 JSON 파일의 절대 경로 또는 `~/` 경로, 최대 256 KB. Claude Code는 프로세스당 한 번 파일을 읽으므로 편집 내용은 다음 시작 시 로드됩니다. [서버 관리형 설정](/docs/ko/server-managed-settings)으로는 설정할 수 없으므로, 그곳에는 인라인 `tips`를 배포하거나 디스크상의 `managed-settings.json`에 경로를 배포하세요.

2914* `label`: Claude Code가 사용자, `--settings` 및 관리 설정의 팁 앞에 표시하는 접두사, 최대 40자. 기본값은 `Tip`이며, 내장 팁과 동일한 접두사이고, 프로젝트 및 로컬 설정의 팁은 항상 이를 사용합니다.2915* `label`: 사용자, `--settings`, 관리형 설정의 팁 앞에 Claude Code가 표시하는 접두사, 최대 40자. 기본값은 기본 제공 팁과 같은 접두사인 `Tip`이며, 프로젝트 및 로컬 설정의 팁은 항상 이 접두사를 사용합니다.

2915* `excludeDefault`: 내장 팁을 숨기고 당신의 것만 표시하려면 `true`로 설정합니다. Claude Code가 예를 들어 `tipsFile`이 존재하지 않거나 모든 항목이 유효하지 않기 때문에 당신의 팁을 로드할 수 없으면 빈 스피너 대신 내장 회전을 유지합니다.2916* `excludeDefault`: 기본 제공 팁을 숨기고 사용자의 팁만 표시하려면 `true`로 설정합니다. 예를 들어 `tipsFile`이 존재하지 않거나 모든 항목이 잘못되어 Claude Code가 사용자의 팁을 하나도 로드할 수 없는 경우, 빈 스피너 대신 기본 제공 순환을 유지합니다.

2916 2917 

2917둘 이상의 설정 파일이 키를 설정하면 Claude Code는 모든 팁을 표시하고 각각에 대해 이를 설정하는 관리 설정, `--settings` 플래그 및 사용자 설정 중 가장 높은 우선순위 것에서 `tipsFile`, `label` 및 `excludeDefault`를 가져옵니다.2918둘 이상의 설정 파일이 키를 설정하면 Claude Code는 모든 파일의 팁을 표시하며, `tipsFile`, `label`, `excludeDefault`는 관리형 설정, `--settings` 플래그, 사용자 설정 중 각각을 설정한 가장 높은 우선순위의 것에서 가져옵니다.

2918 2919 

2919이 예제는 사용자 설정에 있으며 `Acme tip` 접두사 아래 회전에 평문 문자열 팁과 객체 팁을 추가합니다:2920사용자 설정에 있는 이 예시는 `Acme tip` 접두사로 일반 문자열 팁과 객체 팁을 순환에 추가합니다:

2920 2921 

2921```json settings.json theme={null}2922```json settings.json theme={null}

2922{2923{


2935}2936}

2936```2937```

2937 2938 

2938예제의 각 필드는 Claude Code가 팁을 표시하는 방식의 한 가지를 변경합니다:2939예시의 각 필드는 Claude Code가 팁을 표시하는 방식의 한 가지를 바꿉니다:

2939 2940 

2940* `label`: Claude Code는 두 팁을 `Tip: ...` 대신 `Acme tip: ...`로 표시합니다.2941* `label`: Claude Code가 두 팁을 `Tip: ...` 대신 `Acme tip: ...`으로 표시합니다.

2941* 평문 문자열: Claude Code는 기본값을 제공하므로 다음 세션에서 다시 나타날 수 있습니다.2942* 일반 문자열: Claude Code가 기본값을 부여하므로 바로 다음 세션에서 다시 나타날 수 있습니다.

2942* `id`: Claude Code는 두 번째 팁의 표시 기록을 `gateway-errors`로 키합니다. 따라서 팁을 추가하거나 다시 정렬한 후에도 쿨다운이 적용됩니다.2943* `id`: Claude Code가 두 번째 팁의 표시 기록을 `gateway-errors` 기준으로 저장하므로, 팁을 추가하거나 순서를 바꾼 후에도 쿨다운이 계속 적용됩니다.

2943* `cooldownSessions`: Claude Code가 `gateway-errors` 팁을 표시한 후 5개 세션이 지날 때까지 해당 팁을 다시 표시하지 않습니다.2944* `cooldownSessions`: Claude Code가 `gateway-errors` 팁을 표시한 후, 5세션이 지날 때까지 해당 팁을 다시 표시하지 않습니다.

2944* `priority`: `gateway-errors` 팁과 다른 팁이 동일한 수의 세션 동안 표시되지 않았을 때(예: 둘 다 아직 표시되지 않았을 때) Claude Code는 `gateway-errors`를 먼저 표시합니다. 평문 문자열은 기본 우선순위인 `0`을 가집니다.2945* `priority`: `gateway-errors` 팁과 다른 팁이 같은 세션 수 동안 표시되지 않았을 때, 예를 들어 둘 다 아직 표시되지 않았을 때 Claude Code는 `gateway-errors`를 먼저 표시합니다. 일반 문자열의 우선순위는 기본값인 `0`입니다.

2945 2946 

2946Claude가 작업하는 동안 Claude Code는 당신의 팁을 스피너에 당신의 접두사(예: `Acme tip: Run /review before opening a PR`)와 함께 표시합니다.2947Claude가 작업하는 동안 Claude Code는 `Acme tip: Run /review before opening a PR`처럼 사용자의 접두사와 함께 스피너에 팁을 표시합니다.

2947 2948 

2948### `spinnerVerbs`2949### `spinnerVerbs`

2949 2950 

2950턴이 진행 중인 동안 스피너는 "Accomplishing", "Architecting" 또는 "Baking"과 같은 회전 동사를 표시합니다. 이 키를 사용하여 해당 회전에 자신의 동사를 추가하거나 내장 목록을 당신의 것으로 바꿉니다.2951턴이 진행되는 동안 스피너에는 "Accomplishing", "Architecting", "Baking" 같은 동사가 순환 표시됩니다. 이 키를 사용하여 해당 순환에 직접 만든 동사를 추가하거나 기본 제공 목록을 직접 만든 목록으로 대체합니다.

2951 2952 

2952* **범위**: [`모든 파일`](#scopes)2953* **범위**: [`모든 파일`](#scopes)

2953* **유형**: `verbs` 문자열 배열과 `mode`를 포함하는 객체, 다음 중 하나:2954* **유형**: 문자열 배열인 `verbs`와 다음 중 하나인 `mode`를 가진 객체:

2954 * `"append"`: Claude Code는 당신의 동사를 내장 집합에 추가합니다2955 * `"append"`: Claude Code가 기본 제공 세트에 사용자의 동사를 추가합니다

2955 * `"replace"`: Claude Code는 당신의 동사만 표시합니다2956 * `"replace"`: Claude Code가 사용자의 동사만 표시합니다

2956* **기본값**: 설정되지 않음, 따라서 Claude Code는 내장 동사를 사용합니다2957* **기본값**: 설정되지 않음, 따라서 Claude Code는 기본 제공 동사를 사용합니다

2957 2958 

2958이 예제는 내장 집합에 두 개의 동사를 추가합니다:2959이 예시는 기본 제공 세트에 두 개의 동사를 추가합니다:

2959 2960 

2960```json settings.json theme={null}2961```json settings.json theme={null}

2961{2962{


2966}2967}

2967```2968```

2968 2969 

2969`"replace"` 모드에서 빈 `verbs` 배열을 사용하면 Claude Code는 내장 동사를 유지합니다.2970`"replace"` 모드에서 `verbs` 배열이 비어 있으면 Claude Code는 기본 제공 동사를 유지합니다.

2970 2971 

2971### `statusLine`2972### `statusLine`

2972 2973 

2973프롬프트 아래에 [상태 줄](/docs/ko/statusline)을 렌더링하는 자신의 명령을 실행합니다. 모델, 비용 또는 git 분기와 같은 컨텍스트를 포함합니다. 선택적 필드는 간격을 조정하고, 정기적인 재실행을 추가하고, 스크립트가 `vim.mode` 자체를 렌더링할 때 내장 vim 모드 표시기를 숨깁니다.2974직접 만든 명령을 실행하여 모델, 비용, git 브랜치 같은 컨텍스트와 함께 프롬프트 아래에 [상태줄](/docs/ko/statusline)을 렌더링합니다. 선택적 필드로 간격을 조정하고, 주기적 재실행을 추가하고, 스크립트가 직접 `vim.mode`를 렌더링할 때 기본 제공 vim 모드 표시기를 숨길 수 있습니다.

2974 2975 

2975* **범위**: [`모든 파일`](#scopes). [`allowManagedHooksOnly`](#allowmanagedhooksonly)가 켜져 있거나 [`disableAllHooks`](#disableallhooks)가 관리 설정 외부에서 설정되면 관리 설정 값만 실행됩니다.2976* **범위**: [`모든 파일`](#scopes). [`allowManagedHooksOnly`](#allowmanagedhooksonly)가 켜져 있거나 [`disableAllHooks`](#disableallhooks)가 관리형 설정 외부에서 설정된 경우, 관리형 설정 값만 실행됩니다.

2976* **유형**: `type`을 `"command"`로 설정하고 `command` 문자열을 포함하는 객체, 그리고 선택적 `padding`(문자 수), `refreshInterval`(초 단위, 최소 `1`), `hideVimModeIndicator`(부울)2977* **유형**: `"command"`로 설정된 `type`과 `command` 문자열, 그리고 선택적으로 문자 수인 `padding`, 초 단위이며 최솟값이 `1`인 `refreshInterval`, Boolean인 `hideVimModeIndicator`를 가진 객체

2977* **기본값**: 설정되지 않음, 따라서 상태 줄이 없습니다2978* **기본값**: 설정되지 않음, 따라서 상태줄이 없습니다

2978 2979 

2979이 예제는 모델 이름과 컨텍스트 사용을 인쇄하고 2자의 수평 간격을 추가합니다:2980이 예시는 모델 이름과 컨텍스트 사용량을 출력하고 가로 간격 2자를 추가합니다:

2980 2981 

2981```json settings.json theme={null}2982```json settings.json theme={null}

2982{2983{


2988}2989}

2989```2990```

2990 2991 

2991예제에는 [`jq`](https://jqlang.org/)가 설치되어 있어야 하고 셸에서 실행됩니다. PowerShell 및 Git Bash 동등물은 [Windows 구성](/docs/ko/statusline#windows-configuration)을 참조하세요. 전체 설정은 [상태 줄 수동 구성](/docs/ko/statusline#manually-configure-a-status-line)을 참조하세요.2992이 예시는 [`jq`](https://jqlang.org/)가 설치되어 있어야 하며 셸에서 실행됩니다. PowerShell 및 Git Bash에 해당하는 예시는 [Windows 구성](/docs/ko/statusline#windows-configuration)을, 전체 설정은 [상태줄 수동 구성](/docs/ko/statusline#manually-configure-a-status-line)을 참조하세요.

2992 2993 

2993### `subagentStatusLine`2994### `subagentStatusLine`

2994 2995 

2995Claude가 [서브에이전트](/docs/ko/sub-agents)를 실행할 때 Claude Code는 프롬프트 아래의 작업 표시에 나열합니다. 서브에이전트당 한 행씩 `name · description · token count`를 표시합니다. 이 키를 사용하면 자신의 명령을 실행하여 해당 행을 다시 쓸 수 있습니다. 예를 들어 각 서브에이전트의 컨텍스트 사용을 백분율로 표시합니다. 각 새로 고침에서 Claude Code는 표시되는 행을 stdin의 하나의 JSON 객체로 보냅니다. `tasks` 배열은 각 서브에이전트의 `id`, `name`, `status`, `model`, `tokenCount` 등을 포함하고, 당신이 `{"id", "content"}` 줄로 다시 쓰는 각 `id`에 대한 행을 바꿉니다. 당신이 다시 쓰지 않은 행은 기본 렌더링을 유지합니다.2996Claude가 [서브에이전트](/docs/ko/sub-agents)를 실행하면 Claude Code는 프롬프트 아래의 작업 표시에 서브에이전트당 한 행씩 `name · description · token count`를 보여 주며 나열합니다. 이 키를 사용하면 직접 만든 명령을 실행하여 해당 행을 다시 작성할 수 있으며, 예를 들어 각 서브에이전트의 컨텍스트 사용량을 백분율로 표시할 수 있습니다. 새로 고칠 때마다 Claude Code는 표시되는 행을 각 서브에이전트의 `id`, `name`, `status`, `model`, `tokenCount` 등을 담은 `tasks` 배열과 함께 하나의 JSON 객체로 stdin에 보내고, `{"id", "content"}` 줄로 다시 작성한 각 `id`의 행을 대체합니다. 다시 작성하지 않은 행은 기본 렌더링을 유지합니다.

2996 2997 

2997* **범위**: [`모든 파일`](#scopes). [`allowManagedHooksOnly`](#allowmanagedhooksonly)가 켜져 있거나 [`disableAllHooks`](#disableallhooks)가 관리 설정 외부에서 설정되면 관리 설정 값만 실행됩니다.2998* **범위**: [`모든 파일`](#scopes). [`allowManagedHooksOnly`](#allowmanagedhooksonly)가 켜져 있거나 [`disableAllHooks`](#disableallhooks)가 관리형 설정 외부에서 설정된 경우, 관리형 설정 값만 실행됩니다.

2998* **유형**: `type`을 `"command"`로 설정하고 `command` 문자열을 포함하는 객체2999* **유형**: `"command"`로 설정된 `type`과 `command` 문자열을 가진 객체

2999* **기본값**: 설정되지 않음, 따라서 Claude Code는 기본 행을 렌더링합니다3000* **기본값**: 설정되지 않음, 따라서 Claude Code는 기본 행을 렌더링합니다

3000 3001 

3001```json settings.json theme={null}3002```json settings.json theme={null}


3007}3008}

3008```3009```

3009 3010 

3010[서브에이전트 상태 줄](/docs/ko/statusline#subagent-status-lines)을 참조하세요.3011[서브에이전트 상태줄](/docs/ko/statusline#subagent-status-lines)을 참조하세요.

3011 3012 

3012### `syntaxHighlightingDisabled`3013### `syntaxHighlightingDisabled`

3013 3014 

3014Claude Code는 터미널에 표시하는 diff, 코드 블록 및 파일 미리보기에서 내장 강조 표시기를 사용하여 언어별로 코드를 색칠합니다. 플러그인이나 언어 서버는 관련이 없습니다. 이 키를 `true`로 설정하면 평문으로 표시합니다. 예를 들어 색상이 터미널 테마와 충돌하거나 화면 판독기를 느리게 합니다.3015Claude Code는 기본 제공 하이라이터로 터미널에 표시하는 diff, 코드 블록, 파일 미리 보기의 코드를 언어별로 색상 처리하며, 플러그인이나 언어 서버는 관여하지 않습니다. 예를 들어 색상이 터미널 테마와 충돌하거나 화면 낭독기를 느리게 하는 경우, 이 키를 `true`로 설정하여 일반 텍스트로 표시합니다.

3015 3016 

3016* **범위**: [`모든 파일`](#scopes)3017* **범위**: [`모든 파일`](#scopes)

3017* **유형**: 부울3018* **유형**: Boolean

3018 * `true`: Claude Code는 diff, 코드 블록 및 파일 미리보기에서 구문 강조 표시를 끕니다3019 * `true`: Claude Code가 diff, 코드 블록, 파일 미리 보기에서 구문 강조를 끕니다

3019 * `false`: Claude Code는 구문을 강조 표시합니다3020 * `false`: Claude Code가 구문을 강조합니다

3020* **기본값**: `false`3021* **기본값**: `false`

3021 3022 

3022```json settings.json theme={null}3023```json settings.json theme={null}


3027 3028 

3028### `terminalProgressBarEnabled`3029### `terminalProgressBarEnabled`

3029 3030 

3030일부 터미널은 실행 중인 프로그램에 대해 탭이나 작업 표시줄에 진행 표시기를 표시할 수 있습니다. Claude가 작업하는 동안 Claude Code는 진행 중 상태를 터미널에 보고하므로 다른 탭이나 창에서 세션이 여전히 바쁜지 확인할 수 있습니다. 표시기는 [백그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background) 또는 [동적 워크플로우](/docs/ko/workflows)가 여전히 실행 중인 동안 턴이 끝난 후에도 표시 상태를 유지하고, 세션이 유휴 상태가 되면 지워집니다.3031일부 터미널은 그 안에서 실행 중인 프로그램에 대해 탭이나 작업 표시줄에 진행률 표시기를 보여 줄 수 있습니다. Claude가 작업하는 동안 Claude Code는 터미널에 진행 중 상태를 보고하므로, 다른 탭이나 창에서도 세션이 아직 작업 중인지 확인할 수 있습니다. [백그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)나 [동적 워크플로](/docs/ko/workflows)가 아직 실행 중이면 턴이 끝난 후에도 표시기가 계속 보이며, 세션이 유휴 상태가 되면 사라집니다.

3031 3032 

3032Claude Code는 표시기를 지원하는 터미널에서만 보고합니다: ConEmu, Ghostty 1.2.0 이상, iTerm2 3.6.6 이상. 이 키를 `false`로 설정하면 Claude Code가 보고하지 않도록 중지합니다. `/config`에 **터미널 진행 표시줄**로 표시됩니다.3033Claude Code는 표시기를 지원하는 터미널에서만 이를 보고합니다: ConEmu, Ghostty 1.2.0 이상, iTerm2 3.6.6 이상. Claude Code가 보고하지 않도록 하려면 이 키를 `false`로 설정합니다. `/config`에 **Terminal progress bar**로 표시됩니다.

3033 3034 

3034* **범위**: [`모든 파일`](#scopes). 설정 파일이 이를 설정하지 않으면 이전 버전의 `~/.claude.json`의 값이 적용됩니다.3035* **범위**: [`모든 파일`](#scopes). 어떤 설정 파일도 이를 설정하지 않으면 이전 버전에서 기록된 `~/.claude.json`의 값이 적용됩니다.

3035* **유형**: 부울3036* **유형**: Boolean

3036 * `true`: 지원하는 터미널에서 터미널 진행 표시줄을 봅니다3037 * `true`: 지원하는 터미널에서 터미널 진행률 표시줄이 표시됩니다

3037 * `false`: Claude Code는 터미널 진행 표시줄을 숨깁니다3038 * `false`: Claude Code가 터미널 진행률 표시줄을 숨깁니다

3038* **기본값**: `true`3039* **기본값**: `true`

3039 3040 

3040```json settings.json theme={null}3041```json settings.json theme={null}


3045 3046 

3046### `terminalTitleFromRename`3047### `terminalTitleFromRename`

3047 3048 

3048Claude Code는 터미널 탭의 제목을 설정합니다. 기본적으로 대화에서 생성한 제목을 사용하고, `/rename` 또는 `--name`으로 세션에 [이름](/docs/ko/sessions#name-your-sessions)을 지정하면 탭에 해당 이름이 대신 표시됩니다. 이 키를 `false`로 설정하면 세션 이름을 지정한 후에도 탭에 생성된 제목을 유지합니다. 이름 자체는 여전히 적용되므로 `/resume <name>`과 세션 선택기가 이를 찾습니다.3049Claude Code는 터미널 탭의 제목을 설정합니다. 기본적으로 대화에서 생성한 제목을 사용하며, `/rename`이나 `--name`으로 세션에 [이름](/docs/ko/sessions#name-your-sessions)을 지정하면 탭에 해당 이름이 대신 표시됩니다. 세션 이름을 지정한 후에도 탭에 생성된 제목을 유지하려면 이 키를 `false`로 설정합니다. 이름 자체는 여전히 적용되므로 `/resume <name>`과 세션 선택기에서 세션을 찾을 수 있습니다.

3049 3050 

3050* **범위**: [`모든 파일`](#scopes)3051* **범위**: [`모든 파일`](#scopes)

3051* **유형**: 부울3052* **유형**: Boolean

3052 * `true`: 터미널 탭 제목은 설정한 세션 이름을 표시합니다3053 * `true`: 터미널 탭 제목에 설정한 세션 이름이 표시됩니다

3053 * `false`: 탭은 Claude Code가 대화에서 생성한 제목을 유지합니다3054 * `false`: 탭이 Claude Code가 대화에서 생성한 제목을 유지합니다

3054* **기본값**: `true`3055* **기본값**: `true`

3055 3056 

3056```json settings.json theme={null}3057```json settings.json theme={null}


3059}3060}

3060```3061```

3061 3062 

3062Claude Code가 터미널 제목을 전혀 업데이트하지 않도록 하려면 [`CLAUDE_CODE_DISABLE_TERMINAL_TITLE`](/docs/ko/env-vars)을 `1`로 설정합니다.3063Claude Code가 터미널 제목을 전혀 업데이트하지 않도록 하려면 대신 [`CLAUDE_CODE_DISABLE_TERMINAL_TITLE`](/docs/ko/env-vars)을 `1`로 설정합니다.

3063 3064 

3064### `theme`3065### `theme`

3065 3066 

3066인터페이스의 색 테마를 선택합니다. `/config`에 **테마**로 표시됩니다.3067인터페이스의 색상 테마를 선택합니다. `/config`에 **Theme**로 표시됩니다.

3067 3068 

3068* **범위**: [`모든 파일`](#scopes). 설정 파일이 이를 설정하지 않으면 이전 버전의 `~/.claude.json`의 값이 적용됩니다.3069* **범위**: [`모든 파일`](#scopes). 어떤 설정 파일도 이를 설정하지 않으면 이전 버전에서 기록된 `~/.claude.json`의 값이 적용됩니다.

3069* **유형**: 문자열, 다음 중 하나:3070* **유형**: 문자열, 다음 중 하나:

3070 * `"auto"`: 터미널의 밝은 또는 어두운 배경과 일치합니다3071 * `"auto"`: 터미널의 밝은 배경 또는 어두운 배경에 맞춥니다

3071 * `"dark"`: 어두운 테마3072 * `"dark"`: 어두운 테마

3072 * `"light"`: 밝은 테마3073 * `"light"`: 밝은 테마

3073 * `"dark-daltonized"`: 색맹 친화적 색상이 있는 어두운 테마3074 * `"dark-daltonized"`: 색각 이상자 친화적인 색상의 어두운 테마

3074 * `"light-daltonized"`: 색맹 친화적 색상이 있는 밝은 테마3075 * `"light-daltonized"`: 색각 이상자 친화적인 색상의 밝은 테마

3075 * `"dark-ansi"`: 터미널의 ANSI 색상 팔레트만 사용하는 어두운 테마3076 * `"dark-ansi"`: 터미널의 ANSI 색상 팔레트만 사용하는 어두운 테마

3076 * `"light-ansi"`: 터미널의 ANSI 색상 팔레트만 사용하는 밝은 테마3077 * `"light-ansi"`: 터미널의 ANSI 색상 팔레트만 사용하는 밝은 테마

3077 * `"custom:<slug>"` 또는 `"custom:<plugin-name>:<slug>"`: `~/.claude/themes/` 또는 플러그인의 사용자 정의 테마3078 * `"custom:<slug>"` 또는 `"custom:<plugin-name>:<slug>"`: `~/.claude/themes/` 또는 플러그인의 사용자 지정 테마

3078* **기본값**: `"dark"`3079* **기본값**: `"dark"`

3079 3080 

3080```json settings.json theme={null}3081```json settings.json theme={null}


3083}3084}

3084```3085```

3085 3086 

3086[사용자 정의 테마 만들기](/docs/ko/terminal-config#create-a-custom-theme)를 참조하세요.3087[사용자 지정 테마 만들기](/docs/ko/terminal-config#create-a-custom-theme)를 참조하세요.

3087 3088 

3088### `timeFormat`3089### `timeFormat`

3089 3090 

3090Claude Code가 인터페이스에 표시하는 시간을 작성하는 방식을 선택합니다. 예를 들어 각 턴 지속 시간 메시지의 끝에 있는 `done 6:05 PM` 및 [기록 뷰어](/docs/ko/interactive-mode#transcript-viewer)의 타임스탬프입니다. 사전 설정을 선택하려면 `/config`를 실행하고 **시간 형식**을 설정합니다. Claude Code v2.1.257 이상이 필요합니다.3091각 턴 소요 시간 메시지 끝의 `done 6:05 PM`이나 [트랜스크립트 뷰어](/docs/ko/interactive-mode#transcript-viewer)의 타임스탬프처럼 Claude Code가 인터페이스에 표시하는 시각의 형식을 선택합니다. 프리셋을 선택하려면 `/config`를 실행하고 **Time format**을 설정합니다. Claude Code v2.1.257 이상이 필요합니다.

3091 3092 

3092* **범위**: [`모든 파일`](#scopes)3093* **범위**: [`모든 파일`](#scopes)

3093* **유형**: 문자열, 다음 중 하나:3094* **유형**: 문자열, 다음 중 하나:

3094 * `"auto"`: 설정되지 않은 것과 동일합니다. 각 시간은 내장 형식을 유지하며, 턴 지속 시간 메시지에서 로캘을 따릅니다3095 * `"auto"`: 설정되지 않은 것과 같으며, 각 시각은 기본 제공 형식을 유지하고 턴 소요 시간 메시지에서는 로캘을 따릅니다

3095 * `"12-hour"`: 12시간 시계3096 * `"12-hour"`: 12시간제

3096 * `"24-hour"`: 24시간 시계3097 * `"24-hour"`: 24시간제

3097 * `"24-hour-utc"`: `18:05Z`와 같이 분 후 `Z`가 있는 UTC의 24시간 시계입니다. Claude Code는 이 사전 설정에 대해 [`timeZone`](#timezone)을 무시합니다3098 * `"24-hour-utc"`: `18:05Z`처럼 분 뒤에 `Z`가 붙는 UTC 24시간제. 이 프리셋에서는 Claude Code가 [`timeZone`](#timezone)을 무시합니다

3098 * `"%H:%M"`과 같은 strftime 패턴: Claude Code는 패턴으로 각 시간을 씁니다. `%`를 포함하는 모든 값은 패턴이고, 사전 설정 외부의 다른 값은 `"auto"`로 계산됩니다3099 * `"%H:%M"` 같은 strftime 패턴: Claude Code가 패턴으로 각 시각을 작성합니다. `%`를 포함하는 값은 모두 패턴이며, 프리셋 외의 다른 값은 `"auto"`로 간주됩니다

3099* **기본값**: `"auto"`3100* **기본값**: `"auto"`

3100 3101 

3101```json settings.json theme={null}3102```json settings.json theme={null}


3104}3105}

3105```3106```

3106 3107 

3107`/config`는 사전 설정만 제공하므로 strftime 패턴을 사용하려면 설정 파일에 키를 추가합니다. 이 예제는 각 시간을 2자리 24시간 시계로 표시합니다:3108`/config`는 프리셋만 제공하므로 strftime 패턴을 사용하려면 설정 파일에 키를 추가합니다. 이 예시는 각 시각을 두 자리 24시간제로 표시합니다:

3108 3109 

3109```json settings.json theme={null}3110```json settings.json theme={null}

3110{3111{


3112}3113}

3113```3114```

3114 3115 

3115턴 지속 시간 메시지 및 기록 뷰어는 `18:05`와 같은 시간을 표시합니다. 기록 뷰어에서 패턴은 전체 타임스탬프이므로 날짜를 원할 때 날짜 지시문을 추가합니다. 이 예제는 시계 앞에 날짜를 넣습니다:3116그러면 턴 소요 시간 메시지와 트랜스크립트 뷰어에 `18:05` 같은 시각이 표시됩니다. 트랜스크립트 뷰어에서는 패턴이 타임스탬프 전체이므로, 날짜를 표시하려면 날짜 지시자를 추가합니다. 이 예시는 시각 앞에 날짜를 붙입니다:

3116 3117 

3117```json settings.json theme={null}3118```json settings.json theme={null}

3118{3119{


3120}3121}

3121```3122```

3122 3123 

3123동일한 표면은 `2026-09-01 18:05`와 같은 시간을 표시합니다.3124그러면 같은 위치에 `2026-09-01 18:05` 같은 시각이 표시됩니다.

3124 3125 

3125### `timeZone`3126### `timeZone`

3126 3127 

3127시스템이 아닌 다른 시간대에서 인터페이스의 시간을 표시합니다. [IANA 시간대 이름](https://www.iana.org/time-zones)(예: `"UTC"` 또는 `"Europe/Dublin"`)으로 설정합니다. [`timeFormat`](#timeformat)이 제어하는 시간은 이 영역에 표시됩니다. `timeFormat`이 `"24-hour-utc"`이면 시간은 UTC로 유지되고 Claude Code는 이 키를 무시합니다. `/config`에는 이 키에 대한 행이 없으므로 설정 파일에서 설정합니다. Claude Code v2.1.257 이상이 필요합니다.3128인터페이스의 시각을 시스템 시간대가 아닌 다른 시간대로 표시합니다. `"UTC"`나 `"Europe/Dublin"` 같은 [IANA 시간대 이름](https://www.iana.org/time-zones)으로 설정합니다. 그러면 [`timeFormat`](#timeformat)이 제어하는 시각이 이 시간대로 표시됩니다. `timeFormat`이 `"24-hour-utc"`이면 시각은 UTC로 유지되며 Claude Code는 이 키를 무시합니다. `/config`에는 이 키에 대한 행이 없으므로 설정 파일에서 설정합니다. Claude Code v2.1.257 이상이 필요합니다.

3128 3129 

3129* **범위**: [`모든 파일`](#scopes)3130* **범위**: [`모든 파일`](#scopes)

3130* **유형**: 문자열, IANA 시간대 이름. Claude Code가 이름을 인식하지 못하면 시스템 시간대를 사용합니다3131* **유형**: 문자열, IANA 시간대 이름. Claude Code가 이름을 인식하지 못하면 시스템 시간대를 사용합니다

3131* **기본값**: 설정되지 않음, 따라서 시간은 시스템 시간대에 표시됩니다3132* **기본값**: 설정되지 않음, 따라서 시각은 시스템 시간대로 표시됩니다

3132 3133 

3133```json settings.json theme={null}3134```json settings.json theme={null}

3134{3135{


3138 3139 

3139### `tui`3140### `tui`

3140 3141 

3141터미널 UI 렌더러를 선택합니다. 깜박임 없는 [alt-screen 렌더러](/docs/ko/fullscreen)를 가상화된 스크롤백과 함께 사용하려면 `"fullscreen"`을 사용하거나, 클래식 메인 화면 렌더러를 사용하려면 `"default"`를 사용합니다. `/tui fullscreen` 또는 `/tui default`를 실행하면 이 키가 당신을 위해 작성됩니다.3142터미널 UI 렌더러를 선택합니다. 가상화된 스크롤백을 갖춘 깜박임 없는 [대체 화면 렌더러](/docs/ko/fullscreen)에는 `"fullscreen"`을, 클래식 메인 화면 렌더러에는 `"default"`를 사용합니다. `/tui fullscreen` 또는 `/tui default`를 실행하면 이 키가 자동으로 기록됩니다.

3142 3143 

3143* **범위**: [`모든 파일`](#scopes)3144* **범위**: [`모든 파일`](#scopes)

3144* **유형**: 문자열, 다음 중 하나:3145* **유형**: 문자열, 다음 중 하나:

3145 * `"default"`: 클래식 메인 화면 렌더러3146 * `"default"`: 클래식 메인 화면 렌더러

3146 * `"fullscreen"`: 가상화된 스크롤백이 있는 깜박임 없는 alt-screen 렌더러3147 * `"fullscreen"`: 가상화된 스크롤백을 갖춘 깜박임 없는 대체 화면 렌더러

3147* **기본값**: 설정되지 않음, 따라서 Claude Code는 [당신을 위해 렌더러를 선택합니다](/docs/ko/fullscreen#fullscreen-by-default)3148* **기본값**: 설정되지 않음, 따라서 Claude Code가 [렌더러를 자동으로 선택합니다](/docs/ko/fullscreen#fullscreen-by-default)

3148* **세션별 재정의**: [`CLAUDE_CODE_NO_FLICKER`](/docs/ko/env-vars) 및 [`CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN`](/docs/ko/env-vars)이 한 세션에 대해 이 키보다 우선합니다: `CLAUDE_CODE_NO_FLICKER=1`은 전체 화면을 켜고, `CLAUDE_CODE_NO_FLICKER=0` 또는 `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1`은 끕니다. 둘 다 설정되면 Claude Code는 끕니다3149* **세션별 재정의**: 한 세션에 대해 [`CLAUDE_CODE_NO_FLICKER`](/docs/ko/env-vars)와 [`CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN`](/docs/ko/env-vars)이 이 키보다 우선합니다. `CLAUDE_CODE_NO_FLICKER=1`은 전체 화면을 켜고, `CLAUDE_CODE_NO_FLICKER=0` 또는 `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1`은 끕니다. 둘 다 설정되면 Claude Code는 전체 화면을 끕니다

3149 3150 

3150```json settings.json theme={null}3151```json settings.json theme={null}

3151{3152{


3153}3154}

3154```3155```

3155 3156 

3156tmux `-CC` 아래 또는 Windows로의 SSH를 통해 Claude Code는 `CLAUDE_CODE_NO_FLICKER=1`을 설정하지 않으면 클래식 렌더러를 유지합니다. [에이전트 뷰](/docs/ko/agent-view)에서 열린 백그라운드 세션은 이 설정과 관계없이 항상 전체 화면 렌더러를 사용합니다.3157tmux `-CC` 환경이나 Windows로의 SSH 연결에서는 `CLAUDE_CODE_NO_FLICKER=1`을 설정하지 않는 한 Claude Code가 클래식 렌더러를 유지합니다. [에이전트 뷰](/docs/ko/agent-view)에서 연 백그라운드 세션은 이 설정과 관계없이 항상 전체 화면 렌더러를 사용합니다.

3157 3158 

3158### `verbose`3159### `verbose`

3159 3160 

3160기본적으로 기록은 각 도구 호출을 짧은 요약(예: Claude가 실행한 명령 및 출력의 줄 수)으로 축소하고, 세부 정보를 원할 때 `Ctrl+O`를 눌러 전체 기록을 확장된 보기로 전환합니다. 이 키를 `true`로 설정하면 모든 도구 호출의 전체 입력 및 출력을 발생할 때 인라인으로 표시합니다. 이는 hook, MCP 서버 또는 긴 셸 명령을 디버깅할 때 유용합니다. `/config`에 **자세한 출력**으로 표시됩니다.3161기본적으로 트랜스크립트는 각 도구 호출을 Claude가 실행한 명령과 출력 줄 수 같은 짧은 요약으로 접으며, 자세한 내용을 보려면 `Ctrl+O`를 눌러 트랜스크립트 전체를 확장 보기로 전환합니다. 모든 도구 호출의 전체 입력과 출력을 발생하는 즉시 인라인으로 표시하려면 이 키를 `true`로 설정합니다. 훅, MCP 서버 또는 긴 셸 명령을 디버깅할 때 유용합니다. `/config`에 **Verbose output**으로 표시됩니다.

3161 3162 

3162* **범위**: [`모든 파일`](#scopes). 설정 파일이 이를 설정하지 않으면 이전 버전의 `~/.claude.json`의 값이 적용됩니다.3163* **범위**: [`모든 파일`](#scopes). 어떤 설정 파일도 이를 설정하지 않으면 이전 버전에서 기록된 `~/.claude.json`의 값이 적용됩니다.

3163* **유형**: 부울3164* **유형**: Boolean

3164 * `true`: 전체 도구 출력을 봅니다3165 * `true`: 전체 도구 출력이 표시됩니다

3165 * `false`: 도구 출력의 잘린 요약을 봅니다3166 * `false`: 도구 출력의 잘린 요약이 표시됩니다

3166* **기본값**: `false`3167* **기본값**: `false`

3167* **세션별 재정의**: [`--verbose`](/docs/ko/cli-reference#cli-flags)가 한 세션에 대해 이 키보다 우선합니다3168* **세션별 재정의**: 한 세션에 대해 [`--verbose`](/docs/ko/cli-reference#cli-flags)가 이 키보다 우선합니다

3168 3169 

3169```json settings.json theme={null}3170```json settings.json theme={null}

3170{3171{


3172}3173}

3173```3174```

3174 3175 

3175[`viewMode`](#viewmode) 값 또는 고정 `/focus` 선택이 매 세션마다 이 키를 재정의합니다.3176[`viewMode`](#viewmode) 값이나 유지되는 `/focus` 선택은 매 세션마다 이 키를 재정의합니다.

3176 3177 

3177### `viewMode`3178### `viewMode`

3178 3179 

3179Claude Code가 시작하는 기록 보기를 설정합니다: `"default"`, `"verbose"` 또는 `"focus"`. 설정되면 고정 `/focus` 선택 및 [`verbose`](#verbose) 설정을 모두 재정의합니다.3180Claude Code가 시작할 때의 트랜스크립트 보기를 설정합니다: `"default"`, `"verbose"` 또는 `"focus"`. 설정하면 유지되는 `/focus` 선택과 [`verbose`](#verbose) 설정을 모두 재정의합니다.

3180 3181 

3181* **범위**: [`모든 파일`](#scopes)3182* **범위**: [`모든 파일`](#scopes)

3182* **유형**: 문자열, 다음 중 하나:3183* **유형**: 문자열, 다음 중 하나:

3183 * `"default"`: 잘린 도구 출력이 있는 일반 기록3184 * `"default"`: 잘린 도구 출력을 포함한 일반 트랜스크립트

3184 * `"verbose"`: 전체 도구 출력이 있는 기록3185 * `"verbose"`: 전체 도구 출력을 포함한 트랜스크립트

3185 * `"focus"`: 마지막 프롬프트만, 편집 diffstat이 있는 도구 호출의 한 줄 요약, 최종 응답. 포커스 보기에는 [전체 화면 렌더러](#tui)가 필요합니다3186 * `"focus"`: 마지막 프롬프트, 편집 diffstat을 포함한 도구 호출의 한 줄 요약, 최종 응답만 표시합니다. 포커스 보기에는 [전체 화면 렌더러](#tui)가 필요합니다

3186* **기본값**: 설정되지 않음, 따라서 `verbose` 설정 및 마지막 `/focus` 선택이 적용됩니다3187* **기본값**: 설정되지 않음, 따라서 `verbose` 설정과 마지막 `/focus` 선택이 적용됩니다

3187* **세션별 재정의**: [`--verbose`](/docs/ko/cli-reference#cli-flags)가 한 세션에 대해 이 키보다 우선합니다3188* **세션별 재정의**: 한 세션에 대해 [`--verbose`](/docs/ko/cli-reference#cli-flags)가 이 키보다 우선합니다

3188 3189 

3189```json settings.json theme={null}3190```json settings.json theme={null}

3190{3191{


3194 3195 

3195### `vimInsertModeRemaps`3196### `vimInsertModeRemaps`

3196 3197 

3197[vim 편집기 모드](/docs/ko/interactive-mode#vim-editor-mode)에서 두 키로 이루어진 INSERT 모드 시퀀스를 Escape로 매핑합니다. 각 키는 순서대로 입력하는 정확히 두 개의 인쇄 가능한 문자이며, `"<Esc>"`만 유일하게 지원되는 대상입니다. Claude Code는 다른 항목을 무시합니다.3198[vim 편집기 모드](/docs/ko/interactive-mode#vim-editor-mode)에서 두 키로 된 INSERT 모드 시퀀스를 Escape에 매핑합니다. 각 키는 순서대로 입력하는 정확히 두 개의 인쇄 가능한 문자이며, `"<Esc>"`가 지원되는 유일한 대상입니다. Claude Code는 다른 항목을 무시합니다.

3198 3199 

3199* **범위**: [`사용자 또는 관리됨`](#scopes). 저장소는 키 입력을 다시 매핑할 수 없습니다.3200* **범위**: [`사용자 또는 관리형`](#scopes). 저장소가 사용자의 키 입력을 다시 매핑할 수 없습니다.

3200* **유형**: 두 문자 시퀀스를 `"<Esc>"`로 매핑하는 객체3201* **유형**: 두 문자 시퀀스를 `"<Esc>"`에 매핑하는 객체

3201* **기본값**: 설정되지 않음3202* **기본값**: 설정되지 않음

3202 3203 

3203```json settings.json theme={null}3204```json settings.json theme={null}


3212 3213 

3213### `voice`3214### `voice`

3214 3215 

3215[음성 받아쓰기](/docs/ko/voice-dictation)를 켜고 받아쓰기 키의 동작 방식을 선택합니다. Claude Code는 `/voice`를 실행할 때 이 객체를 당신을 위해 씁니다.3216[음성 받아쓰기](/docs/ko/voice-dictation)를 켜고 받아쓰기 키의 동작 방식을 선택합니다. `/voice`를 실행하면 Claude Code가 이 객체를 자동으로 기록합니다.

3216 3217 

3217* **범위**: [`모든 파일`](#scopes)3218* **범위**: [`모든 파일`](#scopes)

3218* **유형**: `enabled`(부울), `autoSubmit`(보류 모드에만 적용되는 부울), `mode`(다음 중 하나)를 포함하는 객체:3219* **유형**: Boolean인 `enabled`, 홀드 모드에서만 적용되는 Boolean인 `autoSubmit`, 그리고 다음 중 하나인 `mode`를 가진 객체:

3219 * `"hold"`: 말하는 동안 받아쓰기 키를 누르고 있다가 놓으면 중지합니다3220 * `"hold"`: 말하는 동안 받아쓰기 키를 누르고 있다가 놓으면 중지됩니다

3220 * `"tap"`: 키를 한 번 눌러 녹음을 시작하고 다시 눌러 보냅니다3221 * `"tap"`: 키를 한 번 탭하면 녹음이 시작되고 다시 탭하면 전송됩니다

3221* **기본값**: 설정되지 않음, 따라서 받아쓰기는 꺼져 있습니다. `enabled`가 `true`이고 `mode`가 설정되지 않으면 Claude Code는 `"hold"`를 사용합니다3222* **기본값**: 설정되지 않음, 따라서 받아쓰기는 꺼져 있습니다. `enabled`가 `true`이고 `mode`가 설정되지 않은 경우 Claude Code는 `"hold"`를 사용합니다

3222 3223 

3223이 예제는 받아쓰기를 켜고 키를 한 번 눌러 녹음을 시작하고 다시 눌러 보내도록 합니다:3224이 예시는 받아쓰기를 켜고, 키를 한 번 탭하면 녹음이 시작되고 다시 탭하면 전송되도록 합니다:

3224 3225 

3225```json settings.json theme={null}3226```json settings.json theme={null}

3226{3227{


3231}3232}

3232```3233```

3233 3234 

3234`autoSubmit`은 보류 모드에서 키를 놓을 때 프롬프트를 보냅니다. 음성 받아쓰기에는 claude.ai 계정이 필요합니다.3235`autoSubmit`은 홀드 모드에서 키를 놓을 때 프롬프트를 전송합니다. 음성 받아쓰기에는 claude.ai 계정이 필요합니다.

3235 3236 

3236### `voiceEnabled`3237### `voiceEnabled`

3237 3238 

3238> [!WARNING]3239> [!WARNING]

3239>3240>

3240> v2.1.92 이후 더 이상 사용되지 않으며, [`voice`](#voice) 객체가 이를 대체했습니다. Claude Code는 여전히 이를 읽으므로 이전 설정 파일은 계속 작동하지만 새 구성은 `voice.enabled`를 설정해야 합니다.3241> [`voice`](#voice) 객체가 이를 대체한 v2.1.92부터 deprecated되었습니다. 이전 설정 파일이 계속 작동하도록 Claude Code는 여전히 이 키를 읽지만, 새 구성에서는 `voice.enabled`를 설정해야 합니다.

3241 3242 

3242이전 `voice` 객체를 사용하는 단일 부울 형식으로 음성 받아쓰기를 켭니다. 둘 다 설정되면 `voice.enabled`가 적용됩니다.3243`voice` 객체 이전에 사용되던 단일 Boolean 형식으로 음성 받아쓰기를 켭니다. 둘 다 설정된 경우 `voice.enabled`가 적용됩니다.

3243 3244 

3244* **범위**: [`모든 파일`](#scopes)3245* **범위**: [`모든 파일`](#scopes)

3245* **유형**: 부울3246* **유형**: Boolean

3246 * `true`: claude.ai 계정으로 로그인했고 조직의 정책이 음성을 허용할 때 음성 받아쓰기가 켜져 있습니다. `voice.enabled`가 설정되지 않으면3247 * `true`: claude.ai 계정으로 로그인되어 있고 조직의 정책이 음성을 허용하면 음성 받아쓰기가 켜집니다. 단, `voice.enabled`가 설정된 경우에는 그 값이 적용됩니다

3247 * `false`: 음성 받아쓰기는 꺼져 있습니다. `voice.enabled`가 설정되지 않으면3248 * `false`: 음성 받아쓰기가 꺼집니다. 단, `voice.enabled`가 설정된 경우에는 그 값이 적용됩니다

3248* **기본값**: 설정되지 않음3249* **기본값**: 설정되지 않음

3249 3250 

3250```json settings.json theme={null}3251```json settings.json theme={null}


3255 3256 

3256### `wheelScrollAccelerationEnabled`3257### `wheelScrollAccelerationEnabled`

3257 3258 

3258[전체 화면 렌더링](/docs/ko/fullscreen#mouse-wheel-scrolling)에서 빠른 스크롤 중 마우스 휠 스크롤 속도를 가속화합니다. 휠 노치당 일정한 스크롤 속도를 원하면 `false`로 설정합니다.3259[전체 화면 렌더링](/docs/ko/fullscreen#mouse-wheel-scrolling)에서 빠르게 스크롤할 때 마우스 휠 스크롤 속도를 가속합니다. 휠 한 칸당 일정한 스크롤 속도를 원하면 `false`로 설정합니다.

3259 3260 

3260* **범위**: [`모든 파일`](#scopes)3261* **범위**: [`모든 파일`](#scopes)

3261* **유형**: 부울3262* **유형**: Boolean

3262 * `true`: Claude Code는 빠른 스크롤 중 마우스 휠 스크롤 속도를 가속화합니다3263 * `true`: Claude Code가 빠르게 스크롤할 때 마우스 휠 스크롤 속도를 가속합니다

3263 * `false`: Claude Code는 휠 노치당 일정한 속도로 스크롤합니다3264 * `false`: Claude Code가 휠 한 칸당 일정한 속도로 스크롤합니다

3264* **기본값**: `true`3265* **기본값**: `true`

3265 3266 

3266```json settings.json theme={null}3267```json settings.json theme={null}


4854 4855 

4855### `preferredNotifChannel`4856### `preferredNotifChannel`

4856 4857 

4857작업이 완료되거나 권한 프롬프트가 대기 중일 때 Claude Code가 사용자에게 알리는 방식을 선택합니다. `/config`에서 **로컬 알림**으로 표시됩니다.4858작업이 완료되거나 권한 프롬프트가 대기 중일 때 Claude Code가 사용자에게 알리는 방식을 선택합니다. [mod의 알림](/docs/ko/plugins/mods/api#show-something-without-starting-a-turn)도 같은 설정을 사용합니다. `/config`에서 **로컬 알림**으로 표시됩니다.

4858 4859 

4859* **범위**: [`Any file`](#scopes). Claude Code는 이전 버전에서 `~/.claude.json`에 남겨진 값도 읽습니다.4860* **범위**: [`Any file`](#scopes). Claude Code는 이전 버전에서 `~/.claude.json`에 남겨진 값도 읽습니다.

4860* **유형**: 문자열, 다음 중 하나:4861* **유형**: 문자열, 다음 중 하나:

setup.md +1 −1

Details

200 200 

201Claude Code는 시작 시 및 실행 중에 주기적으로 업데이트를 확인합니다. 업데이트는 백그라운드에서 다운로드 및 설치되며 다음 번에 Claude Code를 시작할 때 적용됩니다.201Claude Code는 시작 시 및 실행 중에 주기적으로 업데이트를 확인합니다. 업데이트는 백그라운드에서 다운로드 및 설치되며 다음 번에 Claude Code를 시작할 때 적용됩니다.

202 202 

203`claude doctor`를 실행하여 가장 최근 업데이트 시도의 결과를 확인하세요.203셸에서 `claude doctor`를 실행하면 Claude Code가 기록한 마지막 업데이트 시도의 결과를 확인할 수 있습니다. 네이티브 설치에서 실패한 시도가 보고되면 다음에 수행할 작업은 [세션 푸터의 `Auto-update failed`](/docs/ko/troubleshoot-install#auto-update-failed)를 참조하세요.

204 204 

205macOS 및 Linux에서 네이티브 설치 프로그램은 `~/.local/bin/claude`의 런처를 `~/.local/share/claude/versions/`로의 심볼릭 링크로 관리합니다. 해당 런처를 자신의 스크립트 또는 심볼릭 링크로 바꾸면 자동 업데이트 및 `claude update`는 이를 제자리에 그대로 둡니다. 새 버전은 여전히 `versions/` 디렉터리 아래에 설치되며 런처가 실행할 버전을 결정합니다.205macOS 및 Linux에서 네이티브 설치 프로그램은 `~/.local/bin/claude`의 런처를 `~/.local/share/claude/versions/`로의 심볼릭 링크로 관리합니다. 해당 런처를 자신의 스크립트 또는 심볼릭 링크로 바꾸면 자동 업데이트 및 `claude update`는 이를 제자리에 그대로 둡니다. 새 버전은 여전히 `versions/` 디렉터리 아래에 설치되며 런처가 실행할 버전을 결정합니다.

206 206 

skills.md +10 −7

Details

42* **확장 기능**: 컨텍스트 비용 대비 사용되지 않는 스킬, MCP 서버, 플러그인, 그리고 느린 [훅](/docs/ko/hooks)42* **확장 기능**: 컨텍스트 비용 대비 사용되지 않는 스킬, MCP 서버, 플러그인, 그리고 느린 [훅](/docs/ko/hooks)

43* **`CLAUDE.md` 파일**: 체크인된 파일과 중복되는 로컬 `CLAUDE.md` 파일, 체크인된 [`CLAUDE.md` 내용 중 Claude가 코드베이스에서 도출할 수 있는 내용](/docs/ko/memory#my-claude-md-is-too-large), 그리고 항상 로드되는 나머지 지침. Claude는 이 지침을 필요할 때 로드되는 스킬과 중첩된 `CLAUDE.md` 파일로 옮기도록 제안합니다43* **`CLAUDE.md` 파일**: 체크인된 파일과 중복되는 로컬 `CLAUDE.md` 파일, 체크인된 [`CLAUDE.md` 내용 중 Claude가 코드베이스에서 도출할 수 있는 내용](/docs/ko/memory#my-claude-md-is-too-large), 그리고 항상 로드되는 나머지 지침. Claude는 이 지침을 필요할 때 로드되는 스킬과 중첩된 `CLAUDE.md` 파일로 옮기도록 제안합니다

44* **권한**: [자동 모드](/docs/ko/permissions#permission-modes)를 기본 권한 모드로 설정하고, 자주 거부하는 읽기 전용 명령을 [사전 승인](/docs/ko/permissions)하도록 제안44* **권한**: [자동 모드](/docs/ko/permissions#permission-modes)를 기본 권한 모드로 설정하고, 자주 거부하는 읽기 전용 명령을 [사전 승인](/docs/ko/permissions)하도록 제안

45* **사용량**: Pro, Max, Team 또는 Enterprise 플랜에서 최근 7일간 측정한 플랜 사용량을 줄이기 위해 [`/usage`가 권장하는 변경 사항](/docs/ko/costs#plan-usage-breakdown). Claude는 직접 적용할 수 있는 변경 사항은 제안하고, 나머지는 사용자가 실행할 명령과 같은 조언으로 보고합니다. 사용량 점검은 Claude Code v2.1.305 이상이 필요하며, [Remote Control](/docs/ko/remote-control)이 연결되어 있는 동안에는 `/doctor`에서 제외됩니다.

45 46 

46세션을 시작하지 않고 읽기 전용 설치 진단을 수행하려면 대신 터미널에서 `claude doctor`를 실행합니다.47세션을 시작하지 않고 읽기 전용 설치 진단을 수행하려면 대신 터미널에서 `claude doctor`를 실행합니다.

47 48 


83| :- | :- | :- |84| :- | :- | :- |

84| `migrate` | 기존 Claude API 코드를 최신 모델에 맞게 업데이트 | v2.1.221 이전 |85| `migrate` | 기존 Claude API 코드를 최신 모델에 맞게 업데이트 | v2.1.221 이전 |

85| `upgrade` | 프로젝트의 Anthropic SDK 의존성을 메이저 버전 간에 이전(현재는 Python `anthropic` 패키지를 0.x에서 1.x로) | v2.1.236 이상 |86| `upgrade` | 프로젝트의 Anthropic SDK 의존성을 메이저 버전 간에 이전(현재는 Python `anthropic` 패키지를 0.x에서 1.x로) | v2.1.236 이상 |

87| `api-version` | Claude API 코드를 최신 [API 버전](https://platform.claude.com/docs/en/api/versioning)에 맞게 업데이트한 다음 요청을 해당 버전으로 전환 | v2.1.307 이상 |

86| `managed-agents-onboard` | 새 Managed Agent 생성 과정을 단계별로 안내 | v2.1.221 이전 |88| `managed-agents-onboard` | 새 Managed Agent 생성 과정을 단계별로 안내 | v2.1.221 이전 |

87| `managed-agents-onboard <url>` | [Managed Agents 문서](https://platform.claude.com/docs/en/managed-agents/overview)의 페이지 등 해당 URL의 페이지에 설명된 Managed Agent를 구축 | v2.1.290 이상 |89| `managed-agents-onboard <url>` | [Managed Agents 문서](https://platform.claude.com/docs/en/managed-agents/overview)의 페이지 등 해당 URL의 페이지에 설명된 Managed Agent를 구축 | v2.1.290 이상 |

88| `managed-agents-onboard <quickstart-name>` | `deep-researcher` 등 Console의 빠른 시작 템플릿 중 하나를 구축. 템플릿 이름이 아닌 단어 하나를 입력하면 Claude가 유효한 이름 목록을 표시 | v2.1.290 이상 |90| `managed-agents-onboard <quickstart-name>` | `deep-researcher` 등 Console의 빠른 시작 템플릿 중 하나를 구축. 템플릿 이름이 아닌 단어 하나를 입력하면 Claude가 유효한 이름 목록을 표시 | v2.1.290 이상 |


155| :- | :- | :- |157| :- | :- | :- |

156| Enterprise | [관리형 설정 디렉터리](/docs/ko/managed-settings#delivery-mechanisms)의 `.claude/skills/<skill-name>/SKILL.md` | 조직이 배포한 머신의 모든 사용자 |158| Enterprise | [관리형 설정 디렉터리](/docs/ko/managed-settings#delivery-mechanisms)의 `.claude/skills/<skill-name>/SKILL.md` | 조직이 배포한 머신의 모든 사용자 |

157| Personal | `~/.claude/skills/<skill-name>/SKILL.md` | 이 머신의 모든 프로젝트, 단 [Cowork 또는 클라우드 세션](#skills-in-cowork-and-cloud-sessions)은 제외 |159| Personal | `~/.claude/skills/<skill-name>/SKILL.md` | 이 머신의 모든 프로젝트, 단 [Cowork 또는 클라우드 세션](#skills-in-cowork-and-cloud-sessions)은 제외 |

158| Project | `.claude/skills/<skill-name>/SKILL.md` | 이 저장소의 세션. 커밋하면 팀도 사용할 수 있습니다 |160| Project | `.claude/skills/<skill-name>/SKILL.md` | 이 저장소의 세션, 단 [프로젝트의 클라우드 스레드](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories)는 제외. 커밋하면 팀도 사용할 수 있습니다 |

159| Nested | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | `<subdir>`에서 시작되거나 그 아래에서 시작된 세션. `<subdir>` 위에서 시작된 세션은 Claude가 그곳의 파일에서 작업할 때 스킬을 로드합니다. [모노레포 및 하위 디렉터리](#discovery-from-parent-and-nested-directories) 참조 |161| Nested | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | `<subdir>`에서 시작되거나 그 아래에서 시작된 세션, 단 프로젝트의 클라우드 스레드는 제외. 해당 스레드 외부에서는 `<subdir>` 위에서 시작된 세션이 Claude가 그곳의 파일에서 작업할 때 스킬을 로드합니다. [모노레포 및 하위 디렉터리](#discovery-from-parent-and-nested-directories) 참조 |

160| Additional directory | `--add-dir`로 전달한 디렉터리의 `.claude/skills/<skill-name>/SKILL.md` | 해당 세션. [프로젝트 외부의 디렉터리](#skills-from-additional-directories) 참조 |162| Additional directory | `--add-dir`로 전달한 디렉터리의 `.claude/skills/<skill-name>/SKILL.md` | 해당 세션. [프로젝트 외부의 디렉터리](#skills-from-additional-directories) 참조 |

161| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | [플러그인](/docs/ko/plugins/overview)이 활성화된 모든 위치에서 `/plugin-name:skill-name`으로 |163| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | [플러그인](/docs/ko/plugins/overview)이 활성화된 모든 위치에서 `/plugin-name:skill-name`으로 |

162| claude.ai account | claude.ai 계정에 대해 활성화된 스킬 | Cowork 세션, 클라우드 세션, 그리고 해당 계정으로 로그인한 터미널 세션. [claude.ai에서 동기화된 스킬](#how-synced-skills-behave) 참조 |164| claude.ai account | claude.ai 계정에 대해 활성화된 스킬 | Cowork 세션, 클라우드 세션, 그리고 해당 계정으로 로그인한 터미널 세션. [claude.ai에서 동기화된 스킬](#how-synced-skills-behave) 참조 |


207 209 

208### Cowork 및 클라우드 세션에서 스킬 사용210### Cowork 및 클라우드 세션에서 스킬 사용

209 211 

210[Cowork](https://claude.com/product/cowork) 세션 및 [클라우드 세션](/docs/ko/cloud-environments#what-carries-over-from-your-setup)([클라우드 예약 작업](/docs/ko/routines) 포함)은 머신의 `~/.claude/skills/`를 읽지 않습니다. 대화형 및 예약된 Cowork 세션 모두 claude.ai 계정에 대해 활성화된 스킬을 로드하며, 세션 시작 시 동기화됩니다. Desktop 앱 사이드바의 **Customize**에서 또는 claude.ai의 스킬 설정에서 관리합니다. 클라우드 세션은 추가로 복제된 저장소의 `.claude/skills/`에 커밋된 프로젝트 스킬을 로드합니다.212[Cowork](https://claude.com/product/cowork) 세션 및 [클라우드 세션](/docs/ko/cloud-environments#what-carries-over-from-your-setup)([클라우드 예약 작업](/docs/ko/routines) 포함)은 머신의 `~/.claude/skills/`를 읽지 않습니다. 대화형 및 예약된 Cowork 세션 모두 claude.ai 계정에 대해 활성화된 스킬을 로드하며, 세션 시작 시 동기화됩니다. Desktop 앱 사이드바의 **Customize**에서 또는 claude.ai의 스킬 설정에서 관리합니다.

211 213 

212스킬이 머신의 `~/.claude/skills/`에만 존재하면 [클라우드 예약 작업](/docs/ko/routines)이 호출할 때 Claude Code는 스킬을 찾을 수 없다고 보고합니다. 각 실행이 새로운 클라우드 세션으로 시작되기 때문입니다. 이러한 세션에서 개인 스킬을 사용 가능하게 하려면:214스킬이 머신의 `~/.claude/skills/`에만 존재하면 [클라우드 예약 작업](/docs/ko/routines)이 호출할 때 Claude Code는 스킬을 찾을 수 없다고 보고합니다. 각 실행이 새로운 클라우드 세션으로 시작되기 때문입니다. 이러한 세션에서 개인 스킬을 사용 가능하게 하려면:

213 215 

214* Cowork 및 클라우드 세션의 경우 claude.ai 계정에 대해 스킬을 활성화합니다. [자체 호스팅 환경의 일부 세션](/docs/ko/self-hosted-environments-configuration#how-each-session’s-config-is-assembled)은 계정의 스킬을 로드하지 않습니다.216* Cowork 세션, 클라우드 세션 및 [프로젝트](/docs/ko/claude-projects#what-threads-pick-up-from-your-repositories)의 클라우드 스레드의 경우 claude.ai 계정에 대해 스킬을 활성화합니다. 프로젝트의 클라우드 스레드에서는 저장소의 `.claude/skills/`에 커밋된 스킬을 사용할 수 없습니다. [자체 호스팅 환경의 일부 세션](/docs/ko/self-hosted-environments-configuration#how-each-session’s-config-is-assembled)은 계정의 스킬을 로드하지 않습니다.

215* 클라우드 세션의 경우 대신 저장소의 `.claude/skills/`에 스킬을 커밋할 수 있습니다. 저장소의 `.claude/settings.json`에 선언된 플러그인과 사용자 설정에서만 활성화된 플러그인은 [클라우드 세션에서 로드되지 않습니다](/docs/ko/cloud-environments#what-carries-over-from-your-setup).217* 프로젝트 스레드 외의 클라우드 세션의 경우 대신 저장소의 `.claude/skills/`에 스킬을 커밋할 수 있습니다. 저장소의 `.claude/settings.json`에 선언된 플러그인과 사용자 설정에서만 활성화된 플러그인은 [클라우드 세션에서 로드되지 않습니다](/docs/ko/cloud-environments#what-carries-over-from-your-setup).

216 218 

217[Desktop 예약 작업](/docs/ko/desktop-scheduled-tasks)은 머신에서 로컬로 실행되므로 `~/.claude/skills/`를 로드합니다.219[Desktop 예약 작업](/docs/ko/desktop-scheduled-tasks)은 머신에서 로컬로 실행되므로 `~/.claude/skills/`를 로드합니다.

218 220 


398| `agent` | 아니요 | `context: fork`가 설정되었을 때 사용할 서브에이전트 유형입니다. |400| `agent` | 아니요 | `context: fork`가 설정되었을 때 사용할 서브에이전트 유형입니다. |

399| `background` | 아니요 | `context: fork`에만 적용됩니다. [백그라운드에서 실행](#run-skills-in-a-subagent)하는 대신 스킬을 호출한 턴에서 포크된 서브에이전트의 결과를 기다리려면 `false`로 설정합니다. 기본값: `true`. Claude Code v2.1.218 이상이 필요합니다. |401| `background` | 아니요 | `context: fork`에만 적용됩니다. [백그라운드에서 실행](#run-skills-in-a-subagent)하는 대신 스킬을 호출한 턴에서 포크된 서브에이전트의 결과를 기다리려면 `false`로 설정합니다. 기본값: `true`. Claude Code v2.1.218 이상이 필요합니다. |

400| `hooks` | 아니요 | Claude Code가 스킬을 호출할 때 등록하고 세션의 나머지 부분 동안 계속 실행되는 훅입니다. 구성 형식 및 `once` 옵션은 [스킬 및 에이전트의 훅](/docs/ko/hooks#hooks-in-skills-and-agents)을 참조하세요. |402| `hooks` | 아니요 | Claude Code가 스킬을 호출할 때 등록하고 세션의 나머지 부분 동안 계속 실행되는 훅입니다. 구성 형식 및 `once` 옵션은 [스킬 및 에이전트의 훅](/docs/ko/hooks#hooks-in-skills-and-agents)을 참조하세요. |

401| `paths` | 아니요 | 이 스킬이 활성화되는 시기를 제한하는 Glob 패턴입니다. 쉼표로 구분된 문자열 또는 YAML 목록을 허용합니다. 설정되면 Claude는 패턴과 일치하는 파일로 작업할 때만 스킬을 자동으로 로드합니다. [경로별 규칙](/docs/ko/memory#path-specific-rules)과 동일한 형식을 사용합니다. |403| `paths` | 아니요 | 이 스킬이 활성화되는 시기를 제한하는 Glob 패턴입니다. 쉼표로 구분된 문자열 또는 YAML 목록을 허용합니다. 설정되면 Claude는 패턴과 일치하는 파일로 작업할 때만 스킬을 자동으로 로드합니다. 패턴은 Claude의 현재 작업 디렉터리를 기준으로 하며, 해당 디렉터리 외부의 파일은 일치하지 않습니다. [경로별 규칙](/docs/ko/memory#path-specific-rules)과 동일한 glob 형식을 사용합니다. |

402| `shell` | 아니요 | 이 스킬에서 `` !`command` `` 및 ` ```! ` 블록에 사용할 셸입니다. `bash`(기본값) 또는 `powershell`을 허용합니다. `powershell`을 설정하면 [PowerShell 도구](/ko/tools-reference#powershell-tool)가 활성화되었을 때 PowerShell을 통해 인라인 셸 명령을 실행합니다. Git Bash가 없는 Windows에서는 기본적으로 켜져 있고, Git Bash가 있는 claude.ai 및 Console 계정에서는 기본적으로 켜져 있으며, Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 세션 및 macOS, Linux, WSL에서는 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`이 필요합니다. 도구를 끄려면 `0`으로 설정합니다. |404| `shell` | 아니요 | 이 스킬에서 `` !`command` `` 및 ` ```! ` 블록에 사용할 셸입니다. `bash`(기본값) 또는 `powershell`을 허용합니다. `powershell`을 설정하면 [PowerShell 도구](/ko/tools-reference#powershell-tool)가 활성화되었을 때 PowerShell을 통해 인라인 셸 명령을 실행합니다. Git Bash가 없는 Windows에서는 기본적으로 켜져 있고, Git Bash가 있는 claude.ai 및 Console 계정에서는 기본적으로 켜져 있으며, Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 세션 및 macOS, Linux, WSL에서는 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`이 필요합니다. 도구를 끄려면 `0`으로 설정합니다. |

403| `metadata` | 아니요 | 자격 또는 카탈로그 필드와 같은 자신의 키-값 데이터를 위한 자유 형식 YAML 맵으로, `SKILL.md`에서 자신의 도구로 읽습니다. Claude Code는 해당 콘텐츠에 대해 작동하지 않으며 맵이 아닌 값을 삭제합니다. `paths`와 같은 frontmatter 필드 이름을 키로 재사용하지 마세요. |405| `metadata` | 아니요 | 자격 또는 카탈로그 필드와 같은 자신의 키-값 데이터를 위한 자유 형식 YAML 맵으로, `SKILL.md`에서 자신의 도구로 읽습니다. Claude Code는 해당 콘텐츠에 대해 작동하지 않으며 맵이 아닌 값을 삭제합니다. `paths`와 같은 frontmatter 필드 이름을 키로 재사용하지 마세요. |

404| `license` | 아니요 | 스킬을 다루는 라이선스입니다. [Agent Skills](https://agentskills.io) 사양의 일부입니다. [Claude Code 외부에서 스킬 frontmatter 사용](#using-skill-frontmatter-outside-claude-code)을 참조하세요. Claude Code는 필드를 허용하지만 작동하지 않습니다. |406| `license` | 아니요 | 스킬을 다루는 라이선스입니다. [Agent Skills](https://agentskills.io) 사양의 일부입니다. [Claude Code 외부에서 스킬 frontmatter 사용](#using-skill-frontmatter-outside-claude-code)을 참조하세요. Claude Code는 필드를 허용하지만 작동하지 않습니다. |


755어떤 명령이 예외를 받는지는 셸에 따라 다릅니다:757어떤 명령이 예외를 받는지는 셸에 따라 다릅니다:

756 758 

757* 기본 `bash` 셸: [출력 제한](/docs/ko/tools-reference#output-limits) 아래에 나열된 명령759* 기본 `bash` 셸: [출력 제한](/docs/ko/tools-reference#output-limits) 아래에 나열된 명령

758* `shell: powershell`, PowerShell 도구가 활성화된 경우: `grep` 및 `git diff`를 포함하지만 `find` 또는 `diff`는 포함하지 않는 [다른 집합](/docs/ko/tools-reference#shell-selection-in-settings-hooks-and-skills)760* `shell: powershell`, PowerShell 도구가 활성화된 경우: `grep` 및 `git diff`를 포함하지만 `find` 또는 `diff`는 포함하지 않는 [다른 집합](/docs/ko/tools-reference#exit-code-1-from-searches-and-git-diff-in-powershell)

759 761 

760기본 `bash` 셸을 사용하면 0이 아닌 종료를 예상하는 다른 명령에 `|| true`를 추가합니다. 문제를 찾을 때 1을 종료하는 검사 스크립트가 한 예입니다.762기본 `bash` 셸을 사용하면 0이 아닌 종료를 예상하는 다른 명령에 `|| true`를 추가합니다. 문제를 찾을 때 1을 종료하는 검사 스크립트가 한 예입니다.

761 763 


11773. 설명과 더 가깝게 일치하도록 요청을 다시 표현해 보세요11793. 설명과 더 가깝게 일치하도록 요청을 다시 표현해 보세요

11784. 스킬이 사용자 호출 가능한 경우 `/skill-name`으로 직접 호출하세요11804. 스킬이 사용자 호출 가능한 경우 `/skill-name`으로 직접 호출하세요

11795. `/skill-name`도 인식되지 않으면 Claude Code가 [스킬 이름을 거부했는지](#characters-a-skill-name-cant-hold) 확인하세요11815. `/skill-name`도 인식되지 않으면 Claude Code가 [스킬 이름을 거부했는지](#characters-a-skill-name-cant-hold) 확인하세요

11826. 스킬이 `paths`를 설정하는 경우 Claude가 읽거나 편집하거나 쓰는 파일이 Claude의 현재 작업 디렉터리 안에 있는지 확인하세요. 스킬은 그 외부에 있는 파일에 대해서는 활성화되지 않습니다. 예를 들어 형제 git worktree에 있는 파일은 `/add-dir`로 추가했더라도 활성화되지 않습니다. 해당 파일에 대해 스킬이 활성화되도록 하려면 해당 worktree에서 Claude Code를 시작하거나 [`/cd`로 세션을 그곳으로 옮기세요](/docs/ko/permissions#move-the-session-to-another-directory).

1180 1183 

1181frontmatter YAML이 잘못된 형식이면 Claude Code는 스킬 본문을 빈 메타데이터로 로드하므로 `/skill-name`은 여전히 작동하지만 Claude는 일치시킬 `description`이 없습니다. `--debug`로 실행하여 파싱 오류를 확인하세요.1184frontmatter YAML이 잘못된 형식이면 Claude Code는 스킬 본문을 빈 메타데이터로 로드하므로 `/skill-name`은 여전히 작동하지만 Claude는 일치시킬 `description`이 없습니다. `--debug`로 실행하여 파싱 오류를 확인하세요.

1182 1185 

sub-agents.md +376 −353

Details

149 149 

150## 서브에이전트 구성150## 서브에이전트 구성

151 151 

152서브에이전트의 파일 위치는 누가 이를 사용할 수 있는지를 결정하며, 프론트매터는 이것이 무엇을 할 수 있는지를 결정합니다. 이 섹션에서는 서브에이전트 파일이 어디에 있는지, 그리고 지원하는 모든 필드를 다룹니다.152서브에이전트 파일의 위치는 누가 해당 서브에이전트를 사용할 수 있는지를 결정하고, frontmatter는 서브에이전트가 무엇을 할 수 있는지를 결정합니다. 이 섹션에서는 서브에이전트 파일이 저장되는 위치와 지원되는 모든 필드를 다룹니다.

153 153 

154### 서브에이전트 범위 선택154### 서브에이전트 범위 선택

155 155 

156범위에 따라 서브에이전트 파일을 다른 위치에 저장합니다. 여러 서브에이전트가 같은 이름을 공유할 때, Claude Code는 우선순위가 높은 위치의 서브에이전트를 사용합니다.156범위에 따라 서브에이전트 파일을 서로 다른 위치에 저장합니다. 여러 서브에이전트가 같은 이름을 공유하는 경우 Claude Code는 우선순위가 더 높은 위치의 서브에이전트를 사용합니다.

157 157 

158| 위치 | 범위 | 우선순위 | 생성 방법 |158| 위치 | 범위 | 우선순위 | 생성 방법 |

159| :- | :- | :- | :- |159| :- | :- | :- | :- |

160| 관리 설정 | 조직 전체 | 1 (최고) | [관리 설정](/docs/ko/settings)을 통해 배포 |160| 관리형 설정 | 조직 전체 | 1 (최상위) | [관리형 설정](/docs/ko/settings)을 통해 배포 |

161| `--agents` CLI 플래그 | 현재 세션 | 2 | Claude Code 시작 시 JSON 전달 |161| `--agents` CLI 플래그 | 현재 세션 | 2 | Claude Code 실행 시 JSON 전달 |

162| `.claude/agents/` | 현재 프로젝트 | 3 | Claude에 요청하거나 파일을 수동으로 생성 |162| `.claude/agents/` | 현재 프로젝트 | 3 | Claude에게 요청하거나 파일을 직접 생성 |

163| `~/.claude/agents/` | 모든 프로젝트 | 4 | Claude에 요청하거나 파일을 수동으로 생성 |163| `~/.claude/agents/` | 모든 프로젝트 | 4 | Claude에게 요청하거나 파일을 직접 생성 |

164| 플러그인의 `agents/` 디렉토리 | 플러그인이 활성화된 위치 | 5 (최저) | [플러그인](/docs/ko/plugins/overview)과 함께 설치 |164| 플러그인의 `agents/` 디렉터리 | 플러그인이 활성화된 곳 | 5 (최하위) | [플러그인](/docs/ko/plugins/overview)과 함께 설치 |

165 165 

166**프로젝트 서브에이전트** (`.claude/agents/`)는 코드베이스에 특정한 서브에이전트에 이상적입니다. 버전 관리에 체크인하여 팀이 협력적으로 사용하고 개선할 수 있습니다.166**프로젝트 서브에이전트**(`.claude/agents/`)는 특정 코드베이스에 특화된 서브에이전트에 적합합니다. 버전 관리에 체크인하면 팀이 함께 사용하고 개선할 수 있습니다.

167 167 

168프로젝트 서브에이전트는 현재 작업 디렉토리에서 위로 걸어가며 발견되므로, 거기서 저장소 루트까지의 모든 `.claude/agents/`가 스캔됩니다. 이러한 중첩된 디렉토리 중 하나 이상이 같은 `name`을 정의할 때, Claude Code는 작업 디렉토리에 가장 가까운 정의를 사용합니다.168프로젝트 서브에이전트는 현재 작업 디렉터리에서 위쪽으로 올라가며 탐색되므로, 그 지점과 저장소 루트 사이에 있는 모든 `.claude/agents/`가 검색됩니다. 이러한 중첩 디렉터리 중 둘 이상이 같은 `name`을 정의하는 경우 Claude Code는 작업 디렉터리에 가장 가까운 정의를 사용합니다.

169 169 

170`--add-dir` 또는 `/add-dir`으로 디렉토리를 추가할 때, Claude Code는 프로젝트 서브에이전트와 함께 해당 `.claude/agents/` 폴더도 로드합니다. 어떤 다른 구성 유형이 `--add-dir`에서 로드되는지는 [추가 디렉토리](/docs/ko/permissions#additional-directories-grant-file-access-not-configuration)를 참조하세요. `--add-dir` 없이 프로젝트 간에 서브에이전트를 공유하려면 `~/.claude/agents/`를 사용하거나 [플러그인](/docs/ko/plugins/overview)을 사용하세요.170`--add-dir` 또는 `/add-dir`로 디렉터리를 추가하면 Claude Code는 프로젝트 서브에이전트와 함께 해당 디렉터리의 `.claude/agents/` 폴더도 로드합니다. `--add-dir`에서 어떤 다른 구성 유형이 로드되는지는 [추가 디렉터리](/docs/ko/permissions#additional-directories-grant-file-access-not-configuration)를 참조하세요. `--add-dir` 없이 여러 프로젝트에서 서브에이전트를 공유하려면 `~/.claude/agents/` 또는 [플러그인](/docs/ko/plugins/overview)을 사용하세요.

171 171 

172**사용자 서브에이전트** (`~/.claude/agents/`)는 모든 프로젝트에서 사용 가능한 개인 서브에이전트입니다.172**사용자 서브에이전트**(`~/.claude/agents/`)는 모든 프로젝트에서 사용할 수 있는 개인 서브에이전트입니다.

173 173 

174Claude Code는 `.claude/agents/`와 `~/.claude/agents/`를 재귀적으로 스캔하므로, `agents/review/` 또는 `agents/research/`와 같은 하위 폴더로 정의를 구성할 수 있습니다. 서브디렉토리 경로는 서브에이전트가 식별되거나 호출되는 방식에 영향을 주지 않습니다. 왜냐하면 신원은 `name` 프론트매터 필드에서만 나오기 때문입니다.174Claude Code는 `.claude/agents/`와 `~/.claude/agents/`를 재귀적으로 검색하므로 `agents/review/` 또는 `agents/research/`와 같은 하위 폴더로 정의를 정리할 수 있습니다. 서브에이전트의 식별은 오직 `name` frontmatter 필드로만 이루어지므로, 하위 디렉터리 경로는 서브에이전트가 식별되거나 호출되는 방식에 영향을 주지 않습니다.

175 175 

176전체 트리에서 `name` 값을 고유하게 유지하세요. 같은 `.claude/agents/` 디렉터리 내의 두 파일(하위 폴더 포함)이 같은 이름을 선언하면, Claude Code는 문서화된 우선순위가 아닌 파일시스템 읽기 순서로 선택된 하나만 로드합니다. 중첩된 프로젝트 디렉터리 전체에서는 위에서 설명한 대로 작업 디렉터리에 가장 가까운 정의가 우선합니다. [`/doctor`](/docs/ko/commands#all-commands) 설정 점검은 같은 디렉터리에서 이름을 공유하는 파일을 보고하고 하나를 제외한 모두의 이름을 바꾸거나 제거할 것을 제안합니다.176`name` 값은 전체 트리에서 고유하게 유지하세요. 같은 `.claude/agents/` 디렉터리(하위 폴더 포함) 아래의 두 파일이 같은 이름을 선언하면 Claude Code는 그중 하나만 로드하며, 이는 문서화된 우선순위가 아니라 파일 시스템 읽기 순서에 따라 선택됩니다. 중첩된 프로젝트 디렉터리 간에는 위에서 설명한 것처럼 작업 디렉터리에 가장 가까운 정의가 우선합니다. [`/doctor`](/docs/ko/commands#all-commands) 설정 점검은 같은 디렉터리에서 이름을 공유하는 파일을 보고하고, 하나만 남기고 나머지의 이름을 바꾸거나 제거할 것을 제안합니다.

177 177 

178플러그인 `agents/` 디렉토리도 재귀적으로 스캔됩니다. 프로젝트 및 사용자 범위와 달리, 플러그인의 `agents/` 디렉토리 내의 하위 폴더는 [범위가 지정된 식별자](#invoke-subagents-explicitly)의 일부가 됩니다. `my-plugin`의 `agents/review/security.md`에 있는 파일은 `my-plugin:review:security`로 등록됩니다.178플러그인 `agents/` 디렉터리도 재귀적으로 검색됩니다. 프로젝트 및 사용자 범위와 달리, 플러그인의 `agents/` 디렉터리 안의 하위 폴더는 [범위 지정 식별자](#invoke-subagents-explicitly)의 일부가 됩니다. 플러그인 `my-plugin`의 `agents/review/security.md` 파일은 `my-plugin:review:security`로 등록됩니다.

179 179 

180**CLI 정의 서브에이전트**는 Claude Code를 시작할 때 JSON으로 전달됩니다. 이들은 해당 세션에만 존재하며 디스크에 저장되지 않으므로, 빠른 테스트나 자동화 스크립트에 유용합니다. 단일 `--agents` 호출에서 여러 서브에이전트를 정의할 수 있습니다:180**CLI 정의 서브에이전트**는 Claude Code 실행 시 JSON으로 전달됩니다. 해당 세션에만 존재하고 디스크에 저장되지 않으므로 빠른 테스트나 자동화 스크립트에 유용합니다. 단일 `--agents` 호출로 여러 서브에이전트를 정의할 수 있습니다.

181 181 

182**macOS, Linux, WSL**182**macOS, Linux, WSL**

183 183 


215'@215'@

216```216```

217 217 

218[비대화형 모드](/docs/ko/headless)에서, `--agents`는 명령줄에 전달하기에 너무 큰 정의를 보유하는 JSON 파일의 경로도 허용합니다. 예를 들어, `claude -p --agents ./agents.json "Review my changes"`는 해당 파일에서 정의를 읽습니다. 대화형 세션에서 Claude Code는 파일 경로를 거부합니다. 파일 형식은 Claude Code v2.1.281 이상이 필요합니다.218[비대화형 모드](/docs/ko/headless)에서는 명령줄로 전달하기에 너무 큰 정의를 위해 `--agents`가 동일한 객체를 담은 JSON 파일의 경로도 받습니다. 예를 들어 `claude -p --agents ./agents.json "Review my changes"`는 해당 파일에서 정의를 읽습니다. 대화형 세션에서는 Claude Code가 파일 경로를 거부합니다. 파일 형식을 사용하려면 Claude Code v2.1.281 이상이 필요합니다.

219 219 

220JSON의 각 최상위 키는 에이전트의 이름이며, 그 값은 해당 에이전트의 정의입니다. 이름을 `-`로 시작하지 마세요. 정의는 다음 필드를 사용합니다:220JSON의 각 최상위 키는 에이전트의 이름이고, 그 값은 해당 에이전트의 정의입니다. 이름을 `-`로 시작하지 마세요. 정의는 다음 필드를 받습니다.

221 221 

222* **`prompt`**: 에이전트의 시스템 프롬프트. 파일 기반 서브에이전트의 마크다운 본문과 동등합니다. `prompt`는 비어 있을 수 있습니다. `--agent`로 세션의 에이전트로 빈 `prompt`와 `memory` 필드가 없는 에이전트를 선택하면, 세션의 시스템 프롬프트는 변경되지 않습니다. 빈 `prompt`는 Claude Code v2.1.281 이상이 필요합니다.222* **`prompt`**: 에이전트의 시스템 프롬프트로, 파일 기반 서브에이전트의 markdown 본문에 해당합니다. `prompt`는 비어 있을 수 있습니다. `prompt`가 비어 있고 `memory` 필드가 없는 에이전트를 `--agent`로 세션의 에이전트로 선택하면 세션의 시스템 프롬프트는 변경되지 않습니다. 빈 `prompt`를 사용하려면 Claude Code v2.1.281 이상이 필요합니다.

223* **[frontmatter 필드](#supported-frontmatter-fields)**: `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `autoCompactWindow`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd`, 및 `isolation`.223* **[Frontmatter 필드](#supported-frontmatter-fields)**: `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `autoCompactWindow`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd`, `isolation`.

224* **무시되는 필드**: `color`과 `experimental`은 여기서 허용되지 않으며 거부되지 않고 무시됩니다.224* **무시되는 필드**: `color`와 `experimental`은 여기서 허용되지 않으며, 거부되는 대신 무시됩니다.

225 225 

226Claude Code가 로드할 수 없는 값으로 수행하는 작업, 그리고 해당 확인을 건너뛰는 플래그 및 환경 변수는 [`Invalid --agents configuration`](/docs/ko/errors#invalid-agents-configuration)을 참조하세요.226Claude Code가 로드할 수 없는 값을 어떻게 처리하는지, 그리고 해당 검사를 건너뛰는 플래그와 환경 변수에 대해서는 [`Invalid --agents configuration`](/docs/ko/errors#invalid-agents-configuration)을 참조하세요.

227 227 

228**관리 서브에이전트**는 조직 관리자가 배포합니다. [관리 설정 디렉토리](/docs/ko/managed-settings#delivery-mechanisms) 내의 `.claude/agents/`에 마크다운 파일을 배치하고, 프로젝트 및 사용자 서브에이전트와 동일한 프론트매터 형식을 사용합니다. 관리 정의는 같은 이름의 프로젝트 및 사용자 서브에이전트보다 우선합니다.228**관리형 서브에이전트**는 조직 관리자가 배포합니다. [관리형 설정 디렉터리](/docs/ko/managed-settings#delivery-mechanisms) 안의 `.claude/agents/`에 markdown 파일을 배치하며, 프로젝트 및 사용자 서브에이전트와 동일한 frontmatter 형식을 사용합니다. 관리형 정의는 같은 이름의 프로젝트 및 사용자 서브에이전트보다 우선합니다.

229 229 

230**플러그인 서브에이전트**는 설치한 [플러그인](/docs/ko/plugins/overview)에서 나옵니다. 사용자 정의 서브에이전트와 함께 자동으로 로드되며 범위가 지정된 이름 아래의 @-멘션 자동완성에 나타납니다. 플러그인 서브에이전트 생성에 대한 자세한 내용은 [플러그인 구성 요소 참조](/docs/ko/plugins/components#agents)를 참조하세요.230**플러그인 서브에이전트**는 설치한 [플러그인](/docs/ko/plugins/overview)에서 제공됩니다. 사용자 정의 서브에이전트와 함께 자동으로 로드되며, @-멘션 자동 완성에 범위 지정 이름으로 표시됩니다. 플러그인 서브에이전트 생성에 대한 자세한 내용은 [플러그인 구성 요소 참조](/docs/ko/plugins/components#agents)를 참조하세요.

231 231 

232> [!NOTE]232> [!NOTE]

233>233>

234> 보안상의 이유로, 플러그인 서브에이전트는 `hooks`, `mcpServers`, 또는 `permissionMode` frontmatter 필드를 지원하지 않습니다. 이러한 필드는 플러그인에서 에이전트를 로드할 때 무시됩니다. 필요한 경우 에이전트 파일을 `.claude/agents/` 또는 `~/.claude/agents/`로 복사하세요. `settings.json` 또는 `settings.local.json`의 [`permissions.allow`](/docs/ko/settings-reference#permissions-allow)에 규칙을 추가할 수도 있지만, 이러한 규칙은 플러그인 서브에이전트에만 적용되지 않고 전체 세션에 적용됩니다.234> 보안상의 이유로 플러그인 서브에이전트는 `hooks`, `mcpServers`, `permissionMode` frontmatter 필드를 지원하지 않습니다. 플러그인에서 에이전트를 로드할 때 이러한 필드는 무시됩니다. 이 필드가 필요하다면 에이전트 파일을 `.claude/agents/` 또는 `~/.claude/agents/`에 복사하세요. `settings.json` 또는 `settings.local.json`의 [`permissions.allow`](/docs/ko/settings-reference#permissions-allow)에 규칙을 추가할 수도 있지만, 이러한 규칙은 플러그인 서브에이전트뿐만 아니라 세션 전체에 적용됩니다.

235>235>

236> 플러그인 작성자라면 대신 훅은 플러그인의 [`hooks/hooks.json`](/docs/ko/plugins/components#hooks)에, MCP 서버는 플러그인의 [`.mcp.json`](/docs/ko/plugins/components#mcp-servers)에 포함하여 배포하세요. 이들은 서브에이전트 내부에서만이 아니라 플러그인이 활성화될 때마다 적용됩니다.236> 플러그인 작성자라면 대신 훅은 플러그인의 [`hooks/hooks.json`](/docs/ko/plugins/components#hooks)에, MCP 서버는 플러그인의 [`.mcp.json`](/docs/ko/plugins/components#mcp-servers)에 포함하여 배포하세요. 이들은 서브에이전트 내부에서만이 아니라 플러그인이 활성화되어 있을 때마다 적용됩니다.

237 237 

238서브에이전트 정의를 [에이전트 팀](/docs/ko/agent-teams) 팀원으로 재사용할 수도 있습니다. Claude에게 팀원 생성을 요청할 때 서브에이전트 유형을 지정하면, Claude Code가 해당 정의의 일부를 팀원에게 적용합니다. 각 표시 모드에서 어떤 범위와 어떤 부분이 적용되는지는 [팀원에 서브에이전트 정의 사용](/docs/ko/agent-teams#use-subagent-definitions-for-teammates)에서 설명합니다.238서브에이전트 정의를 [에이전트 팀](/docs/ko/agent-teams) 팀원으로 재사용할 수도 있습니다. Claude에게 팀원 생성을 요청할 때 서브에이전트 유형을 지정하면 Claude Code가 해당 정의의 일부를 팀원에게 적용합니다. 각 표시 모드에서 어떤 범위와 어떤 부분이 적용되는지는 [팀원에 서브에이전트 정의 사용](/docs/ko/agent-teams#use-subagent-definitions-for-teammates)에 설명되어 있습니다.

239 239 

240### 서브에이전트 파일 작성240### 서브에이전트 파일 작성

241 241 

242서브에이전트 파일은 구성을 위한 YAML 프론트매터를 사용하고, 그 뒤에 마크다운의 시스템 프롬프트가 옵니다:242서브에이전트 파일은 구성을 위한 YAML frontmatter와 그 뒤에 오는 Markdown 형식의 시스템 프롬프트로 이루어집니다.

243 243 

244> [!NOTE]244> [!NOTE]

245>245>

246> Claude Code는 `~/.claude/agents/`와 `.claude/agents/`를 감시합니다. 디스크에서 서브에이전트 파일을 추가하거나 편집하거나, Claude에 작성을 요청하면, Claude Code는 몇 초 내에 변경을 감지하고 다음 위임은 재시작 없이 업데이트된 정의를 사용합니다.246> Claude Code는 `~/.claude/agents/`와 `.claude/agents/`를 감시합니다. 디스크에서 서브에이전트 파일을 추가하거나 편집하거나 Claude에게 작성을 요청하면, Claude Code는 몇 초 안에 변경을 감지하고 다음 위임부터 업데이트된 정의를 사용하므로 재시작할 필요가 없습니다.

247>247>

248> 세 가지 경우는 여전히 재시작이 필요합니다:248> 다만 다음 세 가지 경우에는 여전히 재시작이 필요합니다.

249>249>

250> * 감시자는 세션이 시작될 때 존재했던 디렉토리만 다루므로, 새 `agents` 디렉토리에서 범위의 첫 번째 에이전트 파일을 생성한 후 재시작하여 로드하세요.250> * 감시기는 세션이 시작될 때 존재했던 디렉터리만 대상으로 하므로, 새 `agents` 디렉터리에 해당 범위의 첫 에이전트 파일을 만든 후에는 재시작해야 로드됩니다.

251> * Claude Code는 `--add-dir` 또는 `/add-dir`으로 추가된 디렉토리 내의 `.claude/agents/`를 감시하지 않으므로, 거기서 서브에이전트를 추가하거나 편집한 후 재시작하여 변경을 로드하세요.251> * Claude Code는 `--add-dir` 또는 `/add-dir`로 추가된 디렉터리 내부의 `.claude/agents/`를 감시하지 않으므로, 그곳에서 서브에이전트를 추가하거나 편집한 후에는 재시작해야 변경 사항이 로드됩니다.

252> * `--disable-slash-commands`로 시작된 세션은 이러한 디렉토리를 전혀 감시하지 않습니다.252> * `--disable-slash-commands`로 시작한 세션은 이러한 디렉터리를 전혀 감시하지 않습니다.

253 253 

254```markdown .claude/agents/code-reviewer.md theme={null}254```markdown .claude/agents/code-reviewer.md theme={null}

255---255---


263specific, actionable feedback on quality, security, and best practices.263specific, actionable feedback on quality, security, and best practices.

264```264```

265 265 

266프론트매터는 서브에이전트의 메타데이터와 구성을 정의합니다. 본문은 서브에이전트의 동작을 안내하는 시스템 프롬프트가 됩니다. 서브에이전트는 이 시스템 프롬프트와 작업 디렉토리와 같은 기본 환경 세부 정보만 받으며, Claude Code 시스템 프롬프트는 받지 않습니다.266frontmatter는 서브에이전트의 메타데이터와 구성을 정의합니다. 본문은 서브에이전트의 동작을 안내하는 시스템 프롬프트가 됩니다. 서브에이전트는 Claude Code 시스템 프롬프트가 아니라 이 시스템 프롬프트와 작업 디렉터리 같은 기본 환경 정보만 받습니다.

267 267 

268[비대화형 모드](/docs/ko/headless)에서, [`--append-subagent-system-prompt`](/docs/ko/cli-reference#cli-flags)를 전달하여 모든 서브에이전트의 시스템 프롬프트 끝에 텍스트를 추가합니다(중첩된 서브에이전트 포함, [포크된 서브에이전트](#fork-the-current-conversation) 제외. 포크된 서브에이전트는 대화의 자체 프롬프트를 재사용합니다). Claude Code v2.1.205 이상이 필요합니다. 텍스트가 너무 길어서 명령줄에 전달할 수 없으면, 파일에 저장하고 `--append-subagent-system-prompt-file`로 경로를 전달하세요. 파일 플래그는 Claude Code v2.1.261 이상이 필요합니다.268[비대화형 모드](/docs/ko/headless)에서 [`--append-subagent-system-prompt`](/docs/ko/cli-reference#cli-flags)를 전달하면 중첩된 서브에이전트를 포함한 모든 서브에이전트의 시스템 프롬프트 끝에 텍스트가 추가됩니다. 단, 대화 자체의 프롬프트를 재사용하는 [포크된 서브에이전트](#fork-the-current-conversation)는 제외됩니다. Claude Code v2.1.205 이상이 필요합니다. 텍스트가 너무 길어 명령줄로 전달할 수 없다면 파일로 저장한 뒤 대신 `--append-subagent-system-prompt-file`로 경로를 전달하세요. 파일 플래그를 사용하려면 Claude Code v2.1.261 이상이 필요합니다.

269 269 

270서브에이전트는 주 대화의 현재 작업 디렉토리에서 시작합니다. 서브에이전트 내에서 `cd` 명령은 Bash 또는 PowerShell 도구 호출 간에 지속되지 않으며 주 대화의 작업 디렉토리에 영향을 주지 않습니다. 서브에이전트에 저장소의 격리된 복사본을 제공하려면 [`isolation: worktree`](#supported-frontmatter-fields)를 설정하세요.270서브에이전트는 메인 대화의 현재 작업 디렉터리에서 시작합니다. 서브에이전트 내에서 `cd` 명령은 Bash 또는 PowerShell 도구 호출 간에 유지되지 않으며 메인 대화의 작업 디렉터리에 영향을 주지 않습니다. 대신 서브에이전트에 저장소의 격리된 복사본을 제공하려면 [`isolation: worktree`](#supported-frontmatter-fields)를 설정하세요.

271 271 

272`isolation: worktree`를 가진 서브에이전트는 해당 worktree 내에서 Bash 및 PowerShell 명령을 실행합니다. 작업 디렉터리가 주 체크아웃으로 확인되는 명령(예: worktree 디렉터리가 서브에이전트 실행 중에 제거된 경우)은 오류로 실패합니다.272`isolation: worktree`가 설정된 서브에이전트는 Bash 및 PowerShell 명령을 자신의 워크트리 안에서 실행합니다. 예를 들어 서브에이전트가 실행되는 동안 워크트리 디렉터리가 제거되어 작업 디렉터리가 메인 체크아웃으로 해석되는 명령은 오류와 함께 실패합니다.

273 273 

274이 작업 디렉터리 확인은 Claude Code를 시작한 디렉터리를 포함하는 전체 저장소를 다룹니다. 세션이 자체 링크된 [worktree](/docs/ko/worktrees)에서 실행될 때, 확인은 해당 worktree가 링크된 주 체크아웃도 다룹니다.274이 작업 디렉터리 검사는 Claude Code를 실행한 디렉터리를 포함하는 저장소 전체를 대상으로 합니다. 세션이 자체적으로 연결된 [worktree](/docs/ko/worktrees)에서 실행되는 경우, 검사는 해당 워크트리가 연결된 메인 체크아웃도 대상으로 합니다.

275 275 

276Bash 명령의 경우, Claude Code는 두 가지 방식으로 명령 자체도 확인합니다:276Bash 명령의 경우 Claude Code는 명령 자체도 두 가지 방식으로 검사합니다.

277 277 

278* git을 주 체크아웃으로 리디렉션하는 명령을 차단합니다.278* git을 메인 체크아웃으로 리디렉션하는 명령을 차단합니다.

279* 명령 텍스트에서 명령이 실행하는 모든 git이 worktree 내에 머물러 있음을 확인할 수 없을 때 명령을 거부합니다(예: 명령 이름이 런타임에 계산될 때).279* 예를 들어 명령 이름이 런타임에 계산되는 경우처럼, 명령이 실행하는 git이 워크트리 안에 머무는지를 명령 텍스트로 확인할 수 없으면 해당 명령을 거부합니다.

280 280 

281리디렉션 벡터와 형태 규칙은 [Claude Code가 격리를 적용하는 방법](/docs/ko/worktrees#how-claude-code-enforces-isolation) 아래에 나열되어 있습니다. PowerShell 명령은 작업 디렉토리 확인만 받습니다.281리디렉션 벡터와 형태 규칙은 [Claude Code가 격리를 적용하는 방식](/docs/ko/worktrees#how-claude-code-enforces-isolation)에 나와 있습니다. PowerShell 명령에는 작업 디렉터리 검사만 적용됩니다.

282 282 

283[모니터](/docs/ko/tools-reference#monitor-tool) 명령은 Bash 명령과 동일한 작업 디렉토리 및 명령 내용 확인을 거칩니다.283[Monitor](/docs/ko/tools-reference#monitor-tool) 명령은 Bash 명령과 동일한 작업 디렉터리 및 명령 내용 검사를 거칩니다.

284 284 

285주 대화 자체가 worktree에서 격리되어 실행될 때, Claude Code는 동일한 확인을 세션과 생성하는 모든 서브에이전트에 적용합니다(`isolation: worktree` 없는 서브에이전트 포함). [Claude Code가 격리를 적용하는 방법](/docs/ko/worktrees#how-claude-code-enforces-isolation)을 참조하세요.285메인 대화 자체가 워크트리에서 격리되어 실행되는 경우, Claude Code는 `isolation: worktree`가 없는 서브에이전트를 포함하여 세션과 세션이 생성하는 모든 서브에이전트에 동일한 검사를 적용합니다. [Claude Code가 격리를 적용하는 방식](/docs/ko/worktrees#how-claude-code-enforces-isolation)을 참조하세요.

286 286 

287### 프론트매터 참조287### Frontmatter 참조

288 288 

289서브에이전트를 YAML [프론트매터](/docs/ko/glossary#frontmatter)로 구성합니다. 파일 상단의 `---` 마커 사이에 프론트매터를 배치하고, 닫는 `---` 뒤에 마크다운으로 시스템 프롬프트를 작성하세요. `name`과 `description`만 필수입니다.289파일 상단의 `---` 표시 사이에 YAML [frontmatter](/docs/ko/glossary#frontmatter)로 서브에이전트를 구성하고, 닫는 `---` 뒤에 Markdown으로 시스템 프롬프트를 작성합니다. `name`과 `description`만 필수입니다.

290 290 

291다중 단어 필드 이름은 `maxTurns`와 `disallowedTools`와 같이 camelCase를 사용하며, 표와 정확히 일치해야 합니다. Claude Code는 인식하지 못하는 필드를 오류 보고 없이 무시합니다.291여러 단어로 된 필드 이름은 `maxTurns`, `disallowedTools`처럼 camelCase를 사용하며 표와 정확히 일치해야 합니다. Claude Code는 인식하지 못하는 필드를 오류 보고 없이 무시합니다.

292 292 

293* 로드된 서브에이전트에서 철자가 틀린 필드를 찾으려면 셸에서 [`claude --debug`](/docs/ko/cli-reference#cli-flags)를 실행하고 `~/.claude/debug/<session-id>.txt`의 디버그 로그에서 `does not recognize or apply`를 검색하세요. 디버그 로그는 서브에이전트 파일에서 Claude Code가 인식하지 못하는 최상위 필드를 최대 5개까지 표시하며, 지원되는 필드와 비슷한 경우 의도했을 가능성이 높은 이름도 함께 표시합니다. Claude Code v2.1.296 이상이 필요합니다.293* 로드된 서브에이전트에서 철자가 잘못된 필드를 찾으려면 셸에서 [`claude --debug`](/docs/ko/cli-reference#cli-flags)를 실행하고 `~/.claude/debug/<session-id>.txt`의 디버그 로그에서 `does not recognize or apply`를 검색하세요. 디버그 로그는 서브에이전트 파일에서 Claude Code가 인식하지 못하는 최상위 필드를 최대 5개까지 알려 주며, 지원되는 필드와 비슷한 경우 의도했을 가능성이 높은 이름도 함께 표시합니다. Claude Code v2.1.296 이상이 필요합니다.

294* 서브에이전트 파일이 로드되지 않은 이유를 알아보려면 [Claude Code가 건너뛰는 서브에이전트 파일](#subagent-files-claude-code-skips)을 참조하세요.294* 서브에이전트 파일이 로드되지 않은 이유를 알아보려면 [Claude Code가 건너뛰는 서브에이전트 파일](#subagent-files-claude-code-skips)을 참조하세요.

295 295 

296| 필드 | 필수 | 설명 |296| 필드 | 필수 | 설명 |

297| :- | :- | :- |297| :- | :- | :- |

298| `name` | 예 | `code-reviewer` 또는 `reviewer-v2`와 같은 최대 256자의 고유 식별자. [훅](/docs/ko/hooks#subagentstart)은 이 값을 `agent_type`으로 받습니다. 파일 이름이 일치할 필요는 없습니다. 이름은 `:`를 포함할 수 없습니다. `:`는 `my-plugin:reviewer`와 같은 [플러그인 범위 식별자](/docs/ko/plugins/overview)에 예약되어 있습니다 |298| `name` | 예 | `code-reviewer` 또는 `reviewer-v2`처럼 최대 256자의 고유 식별자입니다. [훅](/docs/ko/hooks#subagentstart)은 이 값을 `agent_type`으로 받습니다. 파일 이름과 일치할 필요는 없습니다. 이름에는 `:`를 포함할 수 없으며, 이는 `my-plugin:reviewer`와 같은 [플러그인 범위 식별자](/docs/ko/plugins/overview)용으로 예약되어 있습니다 |

299| `description` | 예 | Claude가 이 서브에이전트에 위임해야 할 때 |299| `description` | 예 | Claude가 이 서브에이전트에 위임해야 하는 시점 |

300| `tools` | 아니오 | 서브에이전트가 사용할 수 있는 [도구](#available-tools). `Read, Grep, Bash`와 같은 쉼표로 구분된 문자열 또는 YAML 목록입니다. 생략하면 서브에이전트가 사용 가능한 모든 도구를 상속합니다. 목록의 항목이 도구로 확인되지 않으면, 서브에이전트는 일반적으로 항목을 이름 지정하는 오류로 [시작에 실패](/docs/ko/errors#agent-would-be-spawned-with-zero-tools)합니다. 스킬을 컨텍스트에 미리 로드하려면 여기에 `Skill`을 나열하는 대신 `skills` 필드를 사용하세요 |300| `tools` | 아니요 | 서브에이전트가 사용할 수 있는 [도구](#available-tools)로, `Read, Grep, Bash`와 같은 쉼표로 구분된 문자열 또는 YAML 목록입니다. 생략하면 서브에이전트에서 사용 가능한 모든 도구를 상속합니다. 목록의 어떤 항목도 도구로 해석되지 않으면 서브에이전트는 보통 해당 항목을 명시한 오류와 함께 [실행에 실패](/docs/ko/errors#agent-would-be-spawned-with-zero-tools)합니다. Skills를 컨텍스트에 미리 로드하려면 여기에 `Skill`을 나열하는 대신 `skills` 필드를 사용하세요 |

301| `disallowedTools` | 아니오 | 거부할 도구. 상속되거나 지정된 목록에서 제거됩니다. `tools`와 동일한 형식입니다. `Bash(git push *)`와 같은 지정자가 있는 항목은 여전히 [전체 도구를 제거합니다](#restrict-which-tools-a-subagent-can-use) |301| `disallowedTools` | 아니요 | 거부할 도구로, 상속되거나 지정된 목록에서 제거됩니다. 형식은 `tools`와 같습니다. `Bash(git push *)`처럼 지정자가 있는 항목도 여전히 [도구 전체를 제거](#restrict-which-tools-a-subagent-can-use)합니다 |

302| `model` | 아니오 | 사용할 [모델](#choose-a-model): `sonnet`, `opus`, `haiku`, `fable`, `claude-opus-5-5`와 같은 전체 모델 ID, 또는 `inherit`. 생략하면 Claude Code는 [서브에이전트 모델 순서](#choose-a-model)에서 모델을 선택합니다 |302| `model` | 아니요 | 사용할 [모델](#choose-a-model): `sonnet`, `opus`, `haiku`, `fable`, `claude-opus-5-5`와 같은 전체 모델 ID 또는 `inherit`. 생략하면 Claude Code가 [서브에이전트 모델 순서](#choose-a-model)에 따라 모델을 선택합니다 |

303| `permissionMode` | 아니오 | [권한 모드](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan`, 또는 `default`의 별칭인 `manual`. [플러그인 서브에이전트](#choose-the-subagent-scope)에서 무시됩니다 |303| `permissionMode` | 아니요 | [권한 모드](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan` 또는 `default`의 별칭인 `manual`. [플러그인 서브에이전트](#choose-the-subagent-scope)에서는 무시됩니다 |

304| `maxTurns` | 아니오 | 서브에이전트가 중지되기 전의 최대 에이전트 턴 수입니다. 서브에이전트가 한계에 도달하면, Claude Code는 부분으로 표시된 출력을 반환하고, Claude는 [재개](#resume-subagents)하여 계속할 수 있습니다. 부분 표시는 Claude Code v2.1.246 이상이 필요합니다 |304| `maxTurns` | 아니요 | 서브에이전트가 중지되기 전까지의 최대 에이전트 턴 수입니다. 서브에이전트가 한도에 도달하면 Claude Code는 출력을 부분 결과로 표시하여 반환하며, Claude는 계속 진행하기 위해 [서브에이전트를 재개](#resume-subagents)할 수 있습니다. 부분 결과 표시는 Claude Code v2.1.246 이상이 필요합니다 |

305| `autoCompactWindow` | 아니오 | 이 서브에이전트의 [자동 압축 윈도우](#subagent-auto-compact-window)를 `100000`에서 `1000000` 사이의 토큰 수로 낮춥니다. Claude Code v2.1.296 이상이 필요합니다 |305| `autoCompactWindow` | 아니요 | 이 서브에이전트의 [자동 압축 윈도우](#subagent-auto-compact-window)를 `100000`에서 `1000000` 사이의 토큰 수로 낮춥니다. Claude Code v2.1.296 이상이 필요합니다 |

306| `skills` | 아니오 | 시작 시 서브에이전트의 컨텍스트에 미리 로드할 [스킬](/docs/ko/skills). 설명만이 아닌 전체 스킬 내용이 주입됩니다. 서브에이전트는 여전히 스킬 도구를 통해 나열되지 않은 프로젝트, 사용자, 및 플러그인 스킬을 호출할 수 있습니다 |306| `skills` | 아니요 | 시작 시 서브에이전트의 컨텍스트에 미리 로드할 [스킬](/docs/ko/skills)입니다. 설명만이 아니라 스킬의 전체 내용이 주입됩니다. 서브에이전트는 여전히 Skill 도구를 통해 나열되지 않은 프로젝트, 사용자, 플러그인 스킬을 호출할 수 있습니다 |

307| `mcpServers` | 아니오 | 이 서브에이전트가 사용할 수 있는 [MCP 서버](/docs/ko/mcp). 각 항목은 이미 구성된 서버를 참조하는 서버 이름(예: `"slack"`) 또는 서버 이름을 키로 하고 전체 [MCP 서버 구성](/docs/ko/mcp#installing-mcp-servers)을 값으로 하는 인라인 정의입니다. [플러그인 서브에이전트](#choose-the-subagent-scope)에서 무시됩니다 |307| `mcpServers` | 아니요 | 이 서브에이전트가 사용할 수 있는 [MCP 서버](/docs/ko/mcp)입니다. 각 항목은 이미 구성된 서버를 참조하는 서버 이름(예: `"slack"`)이거나, 서버 이름을 키로 하고 전체 [MCP 서버 구성](/docs/ko/mcp#installing-mcp-servers)을 값으로 하는 인라인 정의입니다. [플러그인 서브에이전트](#choose-the-subagent-scope)에서는 무시됩니다 |

308| `hooks` | 아니오 | 이 서브에이전트로 범위가 지정된 [라이프사이클 훅](#define-hooks-for-subagents). [플러그인 서브에이전트](#choose-the-subagent-scope)에서 무시됩니다 |308| `hooks` | 아니요 | 이 서브에이전트로 범위가 지정된 [라이프사이클 훅](#define-hooks-for-subagents)입니다. [플러그인 서브에이전트](#choose-the-subagent-scope)에서는 무시됩니다 |

309| `memory` | 아니오 | [지속적 메모리 범위](#enable-persistent-memory): `user`, `project`, 또는 `local`. 세션 간 학습을 활성화합니다 |309| `memory` | 아니요 | [영구 메모리 범위](#enable-persistent-memory): `user`, `project` 또는 `local`. 세션 간 학습을 가능하게 합니다 |

310| `background` | 아니오 | Claude가 이 서브에이전트를 기다리도록 요청할 때도 백그라운드에 유지하려면 `true`로 설정하세요. 기본적으로 Claude가 주 대화에서 생성하는 서브에이전트는 이미 [백그라운드에서 시작됩니다](#run-subagents-in-foreground-or-background) |310| `background` | 아니요 | Claude가 이 서브에이전트를 기다리도록 요청하더라도 백그라운드에 유지하려면 `true`로 설정합니다. 기본적으로 Claude가 메인 대화에서 생성하는 서브에이전트는 이미 [백그라운드에서 시작](#run-subagents-in-foreground-or-background)합니다 |

311| `omitClaudeMd` | 아니오 | 이 서브에이전트를 [초기 컨텍스트](#what-loads-at-startup)에 사용자, 프로젝트, 및 로컬 CLAUDE.md 파일 없이 시작하려면 `true`로 설정하세요. [관리형 정책 파일](/docs/ko/memory#how-claude-md-files-load)은 여전히 로드되지만, [관리형 서브에이전트](#choose-the-subagent-scope)는 예외입니다. 위임 프롬프트에서 필요한 모든 것을 가져오는 서브에이전트에 사용하세요. 에이전트가 `--agent` 또는 `agent` 설정을 통해 주 세션 에이전트로 실행될 때는 무시됩니다. Claude Code v2.1.271 이상이 필요합니다 |311| `omitClaudeMd` | 아니요 | 이 서브에이전트를 [초기 컨텍스트](#what-loads-at-startup)에 사용자, 프로젝트, 로컬 CLAUDE.md 파일 없이 시작하려면 `true`로 설정합니다. [관리형 정책 파일](/docs/ko/memory#how-claude-md-files-load)은 [관리형 서브에이전트](#choose-the-subagent-scope)를 제외하고 여전히 로드됩니다. 위임 프롬프트에서 필요한 모든 것을 받는 서브에이전트에 사용하세요. 에이전트가 `--agent` 또는 `agent` 설정을 통해 메인 세션 에이전트로 실행될 때는 무시됩니다. Claude Code v2.1.271 이상이 필요합니다 |

312| `effort` | 아니오 | 이 서브에이전트가 활성화되어 있을 때의 effort 수준입니다. 세션 effort 수준을 재정의하지만, [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/ko/env-vars#variables) 환경 변수는 재정의하지 않습니다. 옵션: `low`, `medium`, `high`, `xhigh`, `max`. 사용 가능한 수준은 모델에 따라 다릅니다. [effort 수준 선택](#choose-an-effort-level)을 참조하세요 |312| `effort` | 아니요 | 이 서브에이전트가 활성화되어 있을 때의 effort 수준입니다. 세션 effort 수준을 재정의하지만 [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/ko/env-vars#variables) 환경 변수는 재정의하지 않습니다. 옵션: `low`, `medium`, `high`, `xhigh`, `max`. 사용 가능한 수준은 모델에 따라 다릅니다. [effort 수준 선택](#choose-an-effort-level)을 참조하세요 |

313| `isolation` | 아니오 | 서브에이전트를 임시 [git worktree](/docs/ko/worktrees)에서 실행하려면 `worktree`로 설정하여 저장소의 격리된 복사본을 제공합니다. 기본적으로 부모 세션의 `HEAD`가 아닌 [기본 분기](/docs/ko/worktrees#choose-the-base-branch)에서 분기됩니다. worktree는 서브에이전트가 변경을 하지 않으면 자동으로 정리됩니다 |313| `isolation` | 아니요 | 서브에이전트를 임시 [git worktree](/docs/ko/worktrees)에서 실행하려면 `worktree`로 설정합니다. 이렇게 하면 부모 세션의 `HEAD`가 아니라 기본적으로 [기본 브랜치](/docs/ko/worktrees#choose-the-base-branch)에서 분기된 저장소의 격리된 복사본이 제공됩니다. 서브에이전트가 변경 사항을 만들지 않으면 워크트리는 자동으로 정리됩니다 |

314| `color` | 아니오 | 작업 목록 및 기록에서 서브에이전트의 표시 색상입니다. `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, 또는 `cyan`을 허용합니다 |314| `color` | 아니요 | 작업 목록과 트랜스크립트에서 서브에이전트의 표시 색상입니다. `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`을 허용합니다 |

315| `initialPrompt` | 아니오 | 이 에이전트가 주 세션 에이전트로 실행될 때(`--agent` 또는 `agent` 설정을 통해) 첫 번째 사용자 턴으로 자동 제출됩니다. [명령](/docs/ko/commands)과 [스킬](/docs/ko/skills)이 처리됩니다. 사용자 제공 프롬프트에 앞에 붙습니다. [플러그인 서브에이전트](#choose-the-subagent-scope)에서 무시됩니다 |315| `initialPrompt` | 아니요 | 이 에이전트가 메인 세션 에이전트로 실행될 때(`--agent` 또는 `agent` 설정을 통해) 첫 번째 사용자 턴으로 자동 제출됩니다. [명령](/docs/ko/commands)과 [스킬](/docs/ko/skills)이 처리됩니다. 사용자가 제공한 프롬프트 앞에 추가됩니다. [플러그인 서브에이전트](#choose-the-subagent-scope)에서는 무시됩니다 |

316| `experimental` | 아니오 | 실험적 옵션의 맵입니다. `cacheTtl` 키를 `5m` 또는 `1h`로 설정하여 이 서브에이전트의 요청에 대한 [프롬프트 캐시 수명](/docs/ko/prompt-caching#choose-the-ttl-yourself)을 선택합니다. 이 값은 [캐시 수명 우선순위](/docs/ko/prompt-caching#choose-the-ttl-yourself)에서 frontmatter가 차지하는 위치에 적용됩니다. Claude Code는 다른 값을 무시하고, Claude 구독이 사용 크레딧을 사용 중일 때 `1h`를 무시하며, 서브에이전트 파일에서만 필드를 읽습니다. Claude Code v2.1.248 이상이 필요합니다 |316| `experimental` | 아니요 | 실험적 옵션의 맵입니다. `cacheTtl` 키를 `5m` 또는 `1h`로 설정하면 이 서브에이전트의 요청에 대한 [프롬프트 캐시 수명](/docs/ko/prompt-caching#choose-the-ttl-yourself)을 [캐시 수명 우선순위](/docs/ko/prompt-caching#choose-the-ttl-yourself)에서 frontmatter의 위치로 선택할 수 있습니다. Claude Code는 다른 값을 무시하고, Claude 구독이 사용량 크레딧을 사용 중인 동안에는 `1h`를 무시하며, 이 필드는 서브에이전트 파일에서만 읽습니다. Claude Code v2.1.248 이상이 필요합니다 |

317 317 

318`cacheTtl`을 프론트매터의 최상위 수준이 아닌 `experimental` 맵 내에 작성하세요.318`cacheTtl`은 frontmatter의 최상위가 아니라 `experimental` 맵 안에 작성하세요.

319 319 

320```yaml theme={null}320```yaml theme={null}

321---321---


328 328 

329#### Claude Code가 건너뛰는 서브에이전트 파일329#### Claude Code가 건너뛰는 서브에이전트 파일

330 330 

331Claude Code는 프로젝트, 사용자, 또는 관리 `agents` 디렉토리의 파일, 또는 `--add-dir`으로 추가한 디렉토리 아래의 파일을 세션에서 보고하지 않고 건너뜁니다. 프론트매터에 다음 문제가 있을 때:331프로젝트, 사용자 또는 관리형 `agents` 디렉터리에 있거나 `--add-dir`로 추가한 디렉터리 아래의 `agents` 디렉터리에 있는 파일의 frontmatter에 다음 문제 중 하나가 있으면, Claude Code는 세션에서 이를 보고하지 않고 해당 파일을 건너뜁니다.

332 332 

333* **`name` 없음**: Claude Code는 파일을 에이전트 옆에 보관된 문서로 취급합니다.333* **`name` 없음**: Claude Code는 해당 파일을 에이전트 옆에 보관된 문서로 취급합니다.

334* **파일의 첫 번째 줄이 아닌 여는 `---`**: Claude Code는 파일을 프론트매터가 없는 것으로 읽고 문서로 취급합니다.334* **여는 `---`가 파일의 첫 줄이 아님**: Claude Code는 해당 파일에 frontmatter가 없는 것으로 읽고 문서로 취급합니다.

335* **`-`로 시작하거나, `:`를 포함하거나, 256자보다 긴 `name`**: Claude Code는 파일을 건너뛰고 디버그 로그에 오류를 기록합니다.335* **`name`이 `-`로 시작하거나, `:`를 포함하거나, 256자를 초과함**: Claude Code는 파일을 건너뛰고 디버그 로그에 오류를 기록합니다.

336* **`name`이지만 `description` 없음**: Claude Code는 파일을 건너뛰고 이유를 디버그 로그에 씁니다.336* **`name`은 있지만 `description`이 없음**: Claude Code는 파일을 건너뛰고 디버그 로그에 이유를 기록합니다.

337* **파싱되지 않는 YAML**: Claude Code는 파일에서 필드를 읽지 않고, 건너뛰고, 파싱 오류를 디버그 로그에 씁니다.337* **YAML을 파싱할 수 없음**: Claude Code는 파일에서 어떤 필드도 읽지 않고 건너뛰며 디버그 로그에 파싱 오류를 기록합니다.

338 338 

339디버그 로그를 보려면 `--debug`로 Claude Code를 실행하세요.339디버그 로그를 보려면 `--debug`와 함께 Claude Code를 실행하세요.

340 340 

341[플러그인 서브에이전트](/docs/ko/plugins/components#agents)의 프론트매터에 `name`이 없거나 파싱되지 않으면 여전히 파일 이름 아래에 로드됩니다.341frontmatter에 `name`이 없거나 파싱되지 않는 [플러그인 서브에이전트](/docs/ko/plugins/components#agents)는 파일 이름으로 여전히 로드됩니다.

342 342 

343##### 세션 전에 `agents` 디렉토리 확인343##### 세션 전에 `agents` 디렉터리 확인

344 344 

345프론트매터가 파싱되지 않는 `agents` 디렉토리의 파일을 찾으려면, 예를 들어 `.claude/agents` 또는 `~/.claude/agents`에 대해 `claude plugin validate`를 실행하세요. Claude Code는 [이름을 지정한 디렉토리만](/docs/ko/plugins/cli-reference#validate-a-directory) 확인하고, 프론트매터가 파싱되지만 `name`이 없는 파일은 플래그하지 않습니다. Claude Code v2.1.233 이상이 필요합니다.345`agents` 디렉터리에서 frontmatter가 파싱되지 않는 파일을 찾으려면 `.claude/agents` 또는 `~/.claude/agents`와 같은 디렉터리를 대상으로 `claude plugin validate`를 실행하세요. Claude Code는 [지정한 디렉터리](/docs/ko/plugins/cli-reference#validate-a-directory)만 검사하며, frontmatter는 파싱되지만 `name`이 없는 파일은 표시하지 않습니다. Claude Code v2.1.233 이상이 필요합니다.

346 346 

347### 모델 선택347### 모델 선택

348 348 

349`model` 필드는 서브에이전트가 사용하는 모델을 제어합니다:349`model` 필드는 서브에이전트가 사용할 모델을 제어합니다.

350 350 

351* **모델 별칭**: 사용 가능한 별칭 중 하나를 사용합니다: `sonnet`, `opus`, `haiku`, 또는 `fable`351* **모델 별칭**: 사용 가능한 별칭 중 하나를 사용합니다: `sonnet`, `opus`, `haiku` 또는 `fable`

352* **전체 모델 ID**: `claude-opus-5-5` 또는 `claude-sonnet-5`와 같은 전체 모델 ID를 사용합니다. `--model` 플래그와 동일한 값을 허용합니다352* **전체 모델 ID**: `claude-opus-5-5` 또는 `claude-sonnet-5`와 같은 전체 모델 ID를 사용합니다. `--model` 플래그와 동일한 값을 허용합니다

353* **inherit**: 주 대화와 동일한 모델을 사용합니다353* **inherit**: 메인 대화와 동일한 모델을 사용합니다

354 354 

355Claude가 서브에이전트를 호출할 때, 해당 특정 호출에 대해 `model` 매개변수를 전달할 수도 있습니다. Claude Code는 이 순서로 서브에이전트의 모델을 확인합니다:355Claude가 서브에이전트를 호출할 때 해당 호출에 대해 `model` 매개변수를 전달할 수도 있습니다. Claude Code는 다음 순서로 서브에이전트의 모델을 결정합니다.

356 356 

3571. 호출별 `model` 매개변수3571. 호출별 `model` 매개변수

3582. 서브에이전트 정의의 `model` 프론트매터. `inherit`는 주 대화의 모델을 선택합니다3582. 서브에이전트 정의의 `model` frontmatter. 여기서 `inherit`는 메인 대화의 모델을 선택합니다

3593. [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/ko/model-config#environment-variables) 환경 변수. 모델 별칭 또는 모델 ID로 설정할 때3593. 모델 별칭이나 모델 ID로 설정한 경우 [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/ko/model-config#environment-variables) 환경 변수

3604. 주 대화의 모델3604. 메인 대화의 모델

361 361 

362설치된 [mod](/docs/ko/plugins/mods/overview)가 자체 [`agent.spawn`](/docs/ko/plugins/mods/reference#subagents) 훅에서 모델을 설정하면, Claude Code는 호출별 매개변수 대신 해당 모델을 사용합니다.362설치된 [mod](/docs/ko/plugins/mods/overview)가 [`agent.spawn`](/docs/ko/plugins/mods/reference#subagents) 훅에서 모델을 설정하면 Claude Code는 호출별 매개변수 대신 해당 모델을 사용합니다.

363 363 

364두 가지 경우에, 호출별 매개변수 또는 프론트매터의 `opus`와 같은 패밀리 별칭은 [별칭이 가리키는 버전](/docs/ko/model-config#model-aliases) 대신 주 대화의 모델로 확인됩니다:364다음 두 경우에는 호출별 매개변수나 frontmatter의 `opus`와 같은 계열 별칭이 [별칭이 가리키는 버전](/docs/ko/model-config#model-aliases) 대신 메인 대화의 모델로 해석됩니다.

365 365 

366* **주 대화의 모델이 해당 패밀리에 속함**: 서브에이전트는 주 대화의 정확한 모델(모든 `[1m]` 접미사 포함)에서 실행되므로 주 대화와 동일한 [확장 컨텍스트](/docs/ko/model-config#extended-context) 윈도우를 얻습니다.366* **메인 대화의 모델이 해당 계열에 속하는 경우**: 서브에이전트는 `[1m]` 접미사를 포함하여 메인 대화와 정확히 동일한 모델에서 실행되므로 메인 대화와 동일한 [확장 컨텍스트](/docs/ko/model-config#extended-context) 윈도우를 얻습니다.

367* **Claude Code가 [Anthropic API 이외의 공급자](/docs/ko/third-party-integrations)에서 주 대화의 모델 패밀리를 알 수 없음**: 이는 Claude Code가 지원 모델로 확인하지 않은 Amazon Bedrock의 [애플리케이션 추론 프로필 ARN](/docs/ko/amazon-bedrock#iam-configuration)에서 발생할 수 있습니다. 이 경우는 `opus` 별칭만 다루며, [`ANTHROPIC_DEFAULT_OPUS_MODEL`](/docs/ko/model-config#environment-variables)을 설정할 때는 적용되지 않습니다. `opus`는 설정한 모델로 확인되기 때문입니다.367* **[Anthropic API 이외의 제공자](/docs/ko/third-party-integrations)에서 Claude Code가 메인 대화의 모델 계열을 알 수 없는 경우**: Claude Code가 기반 모델로 해석하지 못한 Amazon Bedrock의 [애플리케이션 추론 프로필 ARN](/docs/ko/amazon-bedrock#iam-configuration)에서 이런 일이 발생할 수 있습니다. 이 경우는 `opus` 별칭에만 해당하며, [`ANTHROPIC_DEFAULT_OPUS_MODEL`](/docs/ko/model-config#environment-variables)을 설정한 경우에는 `opus`가 설정한 모델로 해석되므로 적용되지 않습니다.

368 368 

369`CLAUDE_CODE_SUBAGENT_MODEL`의 별칭은 주 대화의 패밀리를 가리키는 경우에도 항상 별칭이 가리키는 버전으로 확인됩니다. 이 변수를 `inherit`로 설정하는 것은 설정하지 않은 것과 같습니다.369`CLAUDE_CODE_SUBAGENT_MODEL`의 별칭은 메인 대화의 계열을 가리키더라도 항상 별칭이 가리키는 버전으로 해석됩니다. 이 변수를 `inherit`로 설정하는 것은 설정하지 않은 것과 같습니다.

370 370 

371`CLAUDE_CODE_SUBAGENT_MODEL`을 자체로 설정하는 것은 기본 제공 Explore 및 Plan 서브에이전트가 실행되는 모델을 변경하지 않습니다. 변경하려면 [모든 서브에이전트를 한 모델에서 실행](#run-every-subagent-on-one-model)을 참조하세요.371`CLAUDE_CODE_SUBAGENT_MODEL`만 설정해서는 기본 제공 Explore 및 Plan 서브에이전트가 실행되는 모델이 바뀌지 않습니다. 이를 바꾸려면 [모든 서브에이전트를 하나의 모델에서 실행](#run-every-subagent-on-one-model)을 참조하세요.

372 372 

373v2.1.251 이전에는 `CLAUDE_CODE_SUBAGENT_MODEL`이 이 순서에서 가장 먼저 적용되어 호출별 매개변수와 frontmatter(`model: inherit` 포함)를 모두 재정의했습니다.373v2.1.251 이전에는 `CLAUDE_CODE_SUBAGENT_MODEL`이 이 순서에서 가장 먼저 왔으며, `model: inherit`를 포함하여 호출별 매개변수와 frontmatter를 모두 재정의했습니다.

374 374 

375Claude Code는 호출별 매개변수, 프론트매터, 및 환경 변수 값을 조직의 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 허용 목록에 대해 확인합니다. 차단된 값의 경우 다른 모델로 대체합니다:375Claude Code는 호출별 매개변수, frontmatter, 환경 변수 값을 조직의 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 허용 목록과 대조하여 확인합니다. 차단된 값에 대해서는 다른 모델로 대체합니다.

376 376 

377* 차단된 값이 `opus`와 같은 패밀리 별칭일 때, Claude Code는 허용 목록이 허용하는 해당 패밀리의 최신 버전에서 서브에이전트를 실행합니다. `/model`과 동일한 [대체 규칙 및 공급자 범위](/docs/ko/model-config#restrict-model-selection)를 따릅니다. v2.1.222 이전에는 Claude Code가 차단된 패밀리 별칭에 대해서도 상속된 모델에서 서브에이전트를 실행했습니다.377* 차단된 값이 `opus`와 같은 계열 별칭인 경우, Claude Code는 `/model`과 동일한 [대체 규칙 및 제공자 범위](/docs/ko/model-config#restrict-model-selection)에 따라 허용 목록이 허용하는 해당 계열의 최신 버전에서 서브에이전트를 실행합니다. v2.1.222 이전에는 차단된 계열 별칭에 대해서도 Claude Code가 상속된 모델에서 서브에이전트를 실행했습니다.

378* 다른 차단된 값의 경우, 해당 대체가 작동하지 않는 공급자에서 또는 허용 목록이 패밀리의 버전을 허용하지 않을 때, Claude Code는 상속된 모델에서 서브에이전트를 실행합니다. `CLAUDE_CODE_SUBAGENT_MODEL`을 설정하면, Claude Code는 이러한 동일한 규칙에 따라 먼저 해당 모델을 시도합니다.378* 그 밖의 차단된 값이거나, 해당 대체가 작동하지 않는 제공자이거나, 허용 목록이 해당 계열의 어떤 버전도 허용하지 않는 경우, Claude Code는 대신 상속된 모델에서 서브에이전트를 실행합니다. `CLAUDE_CODE_SUBAGENT_MODEL`을 설정한 경우 Claude Code는 동일한 규칙에 따라 해당 모델을 먼저 시도합니다.

379 379 

380대화형 세션에서, Claude Code는 두 대체 중 하나에 대해 요청된 모델과 서브에이전트가 실행되는 모델을 이름 지정하는 경고를 표시합니다.380대화형 세션에서 Claude Code는 두 가지 대체 모두에 대해 요청된 모델과 서브에이전트가 실행되는 모델을 명시한 경고를 표시합니다.

381 381 

382서브에이전트가 실행 중인 모델을 확인하려면 [`/tasks`](/docs/ko/commands)를 실행하세요. Claude Code는 서브에이전트의 행에 모델을 표시하며, 해당 서브에이전트에 설정된 [effort 수준](/docs/ko/model-config#adjust-effort-level)이 있으면 함께 표시합니다. Claude Code v2.1.242 이상이 필요합니다.382서브에이전트가 어떤 모델에서 실행 중인지 확인하려면 [`/tasks`](/docs/ko/commands)를 실행하세요. Claude Code는 서브에이전트 행에 모델을 표시하고, 해당 서브에이전트에 설정된 [effort 수준](/docs/ko/model-config#adjust-effort-level)이 있으면 함께 표시합니다. Claude Code v2.1.242 이상이 필요합니다.

383 383 

384호출별 `model` 매개변수는 서브에이전트가 [재개되거나 후속 메시지를 받을](#resume-subagents) 때도 적용되므로 서브에이전트는 해당 모델에 머물러 있습니다.384호출별 `model` 매개변수는 서브에이전트가 [재개되거나 후속 메시지를 받을](#resume-subagents) 때도 적용되므로 서브에이전트는 해당 모델에 계속 머무릅니다.

385 385 

386v2.1.198부터, 서브에이전트는 주 대화의 [확장 사고](/docs/ko/model-config#extended-thinking) 구성도 상속합니다. 세션에서 사고가 켜져 있으면 서브에이전트에서도 켜져 있고, 꺼져 있으면 꺼져 있습니다. 서브에이전트별 사고 설정은 없습니다. v2.1.198 이전에는 서브에이전트가 주 대화의 설정과 관계없이 확장 사고가 비활성화된 상태로 실행되었습니다.386v2.1.198부터 서브에이전트는 메인 대화의 [확장 사고](/docs/ko/model-config#extended-thinking) 구성도 상속합니다. 세션에서 사고가 켜져 있으면 서브에이전트에서도 켜져 있고, 꺼져 있으면 꺼진 상태로 유지됩니다. 서브에이전트별 사고 설정은 없습니다. v2.1.198 이전에는 메인 대화의 설정과 관계없이 서브에이전트가 확장 사고가 비활성화된 상태로 실행되었습니다.

387 387 

388#### 모든 서브에이전트를 한 모델에서 실행388#### 모든 서브에이전트를 하나의 모델에서 실행

389 389 

390`CLAUDE_CODE_SUBAGENT_MODEL`은 기본값이므로 서브에이전트의 정의 또는 Claude가 전달하는 모델은 여전히 우선합니다. 모든 서브에이전트에 한 모델을 적용하려면, [팀원](/docs/ko/agent-teams#specify-teammates-and-models) 및 [워크플로우 에이전트](/docs/ko/workflows)도 `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`를 `1`로 설정하세요. Claude Code v2.1.257 이상이 필요합니다.390`CLAUDE_CODE_SUBAGENT_MODEL`은 기본값이므로 서브에이전트의 정의나 Claude가 전달하는 모델이 여전히 이보다 우선합니다. 모든 서브에이전트, [팀원](/docs/ko/agent-teams#specify-teammates-and-models), [워크플로 에이전트](/docs/ko/workflows)에 하나의 모델을 적용하려면 `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`도 `1`로 설정하세요. Claude Code v2.1.257 이상이 필요합니다.

391 391 

392* 두 변수를 모두 설정하면, 서브에이전트는 `CLAUDE_CODE_SUBAGENT_MODEL`의 모델에서 실행됩니다.392* 두 변수를 모두 설정하면 서브에이전트는 `CLAUDE_CODE_SUBAGENT_MODEL`의 모델에서 실행됩니다.

393* `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`만 설정하면, 서브에이전트는 주 대화의 모델에서 실행됩니다. 단, 기본 제공 Explore 서브에이전트는 [기본 제공 서브에이전트에 나열된 해당 모델](#built-in-subagents)에서 실행됩니다.393* `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`만 설정하면 서브에이전트는 메인 대화의 모델에서 실행됩니다. 단, 기본 제공 Explore 서브에이전트는 [기본 제공 서브에이전트에 나열된 모델](#built-in-subagents)에서 실행됩니다.

394 394 

395예를 들어, 모든 서브에이전트를 Haiku에서 실행하려면 [설정 파일](/docs/ko/settings)의 `env` 블록에서 두 변수를 설정하세요:395예를 들어 모든 서브에이전트를 Haiku에서 실행하려면 [설정 파일](/docs/ko/settings)의 `env` 블록에 두 변수를 모두 설정합니다.

396 396 

397```json theme={null}397```json theme={null}

398{398{


403}403}

404```404```

405 405 

406설정이 적용되었는지 확인하려면 서브에이전트가 실행 중일 때 [`/tasks`](/docs/ko/commands)를 실행하세요. 서브에이전트의 행은 실행 중인 모델을 표시합니다.406설정이 적용되었는지 확인하려면 서브에이전트가 실행되는 동안 [`/tasks`](/docs/ko/commands)를 실행하세요. 서브에이전트 행에 실행 중인 모델이 표시됩니다.

407 407 

408`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`가 [켜져](/docs/ko/env-vars) 있는 동안 Claude Code는 서브에이전트 정의의 `model` 필드를 무시하며, Claude는 서브에이전트를 시작할 때 모델을 전달할 수 없습니다. 다음 서브에이전트는 여전히 주 대화의 모델에서 실행됩니다:408`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`가 [켜져 있는](/docs/ko/env-vars) 동안 Claude Code는 서브에이전트 정의의 `model` 필드를 무시하며, Claude는 서브에이전트를 시작할 때 모델을 전달할 수 없습니다. 다음 서브에이전트는 여전히 메인 대화의 모델에서 실행됩니다.

409 409 

410* [포크](#fork-the-current-conversation)410* [포크](#fork-the-current-conversation)

411* `model: inherit`를 가진 [서브에이전트에서 실행되는 스킬](/docs/ko/skills#run-skills-in-a-subagent)411* `model: inherit`가 설정된 [서브에이전트에서 실행되는 스킬](/docs/ko/skills#run-skills-in-a-subagent)

412 412 

413### effort 수준 선택413### effort 수준 선택

414 414 

415서브에이전트를 자체 [effort 수준](/docs/ko/model-config#adjust-effort-level)으로 실행하려면 정의에서 [`effort`](#supported-frontmatter-fields) 필드를 설정하세요.415서브에이전트를 자체 [effort 수준](/docs/ko/model-config#adjust-effort-level)으로 실행하려면 정의에서 [`effort`](#supported-frontmatter-fields) 필드를 설정하세요.

416 416 

417Claude에게 포크가 아닌 서브에이전트를 특정 effort 수준으로 실행하도록 요청하면, Claude는 해당 호출에 대해 `effort` 매개변수를 전달할 수도 있습니다. 이 매개변수는 `effort` 필드를 재정의하며 서브에이전트가 [재개](#resume-subagents)될 때도 유지됩니다. [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/ko/env-vars#variables) 환경 변수는 두 가지 모두보다 우선합니다. 호출별 매개변수는 Claude Code v2.1.292 이상이 필요합니다.417Claude에게 포크가 아닌 서브에이전트를 특정 effort 수준으로 실행하도록 요청하면, Claude는 해당 호출에 대해 `effort` 매개변수를 전달할 수도 있습니다. 이 매개변수는 `effort` 필드를 재정의하며 서브에이전트가 [재개](#resume-subagents)될 때도 유지됩니다. [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/ko/env-vars#variables) 환경 변수는 둘 다보다 우선합니다. 호출별 매개변수는 Claude Code v2.1.292 이상이 필요합니다.

418 418 

419### 서브에이전트 기능 제어419### 서브에이전트 기능 제어

420 420 

421도구 접근, 권한 모드, 및 조건부 규칙을 통해 서브에이전트가 할 수 있는 일을 제어할 수 있습니다.421도구 접근, 권한 모드, 조건부 규칙을 통해 서브에이전트가 할 수 있는 작업을 제어할 수 있습니다.

422 422 

423#### 사용 가능한 도구423#### 사용 가능한 도구

424 424 

425서브에이전트는 주 대화에서 사용 가능한 [기본 제공 도구](/docs/ko/tools-reference)와 MCP 도구를 상속하며, 두 필터로 좁혀집니다. 첫 번째는 모든 서브에이전트에서 짧은 도구 목록을 제거하고, 두 번째는 [백그라운드](#run-subagents-in-foreground-or-background)에서 실행되는 서브에이전트(기본값)의 기본 제공 도구 세트를 줄입니다. macOS, Linux, 및 WSL에서, 주 대화가 이들을 가지지 않을 때 서브에이전트는 Glob 및 Grep 도구를 받을 수도 있습니다. [Glob 도구 동작](/docs/ko/tools-reference#glob-tool-behavior) 아래에서 설명합니다. [포크](#fork-the-current-conversation)는 두 필터를 건너뛰고 주 대화의 정확한 도구 풀을 받습니다. 첫 번째 필터는 `tools` 필드에 나열되어 있어도 이러한 도구를 제거합니다:425서브에이전트는 메인 대화에서 사용 가능한 [기본 제공 도구](/docs/ko/tools-reference)와 MCP 도구를 상속하며, 두 가지 필터로 범위가 좁혀집니다. 첫 번째 필터는 모든 서브에이전트에서 짧은 목록의 도구를 제거하고, 두 번째 필터는 기본값인 [백그라운드](#run-subagents-in-foreground-or-background)에서 실행되는 서브에이전트의 기본 제공 도구 세트를 줄입니다. macOS, Linux, WSL에서는 [Glob 도구 동작](/docs/ko/tools-reference#glob-tool-behavior)에 설명된 대로 메인 대화에 Glob 및 Grep 도구가 없더라도 서브에이전트가 이를 받을 수 있습니다. [포크](#fork-the-current-conversation)는 두 필터를 모두 건너뛰고 메인 대화와 정확히 동일한 도구 풀을 받습니다. 첫 번째 필터는 `tools` 필드에 나열되어 있더라도 다음 도구를 제거합니다.

426 426 

427* `Agent`. 서브에이전트가 [깊이 한계](#let-subagents-spawn-their-own-subagents)에 있을 때. [포크](#fork-the-current-conversation)에서 도구는 나열된 상태로 유지되지만 생성 대신 오류를 반환합니다427* 서브에이전트가 [깊이 제한](#let-subagents-spawn-their-own-subagents)에 도달한 경우의 `Agent`. [포크](#fork-the-current-conversation)에서는 도구가 목록에 남아 있지만 생성하는 대신 오류를 반환합니다

428* `AskUserQuestion`428* `AskUserQuestion`

429* `EndConversation`. 주 대화만 종료할 수 있습니다. [EndConversation 도구 동작](/docs/ko/tools-reference#endconversation-tool-behavior)을 참조하세요429* 메인 대화만 종료할 수 있는 `EndConversation`. [EndConversation 도구 동작](/docs/ko/tools-reference#endconversation-tool-behavior)을 참조하세요

430* `EnterPlanMode`430* `EnterPlanMode`

431* `ExitPlanMode`. 서브에이전트의 [`permissionMode`](#permission-modes)가 `plan`이 아닌 한431* 서브에이전트의 [`permissionMode`](#permission-modes)가 `plan`이 아닌 경우의 `ExitPlanMode`

432* `ScheduleWakeup`432* `ScheduleWakeup`

433* `WaitForMcpServers`433* `WaitForMcpServers`

434* `Workflow`434* `Workflow`

435 435 

436두 번째 필터는 백그라운드에서 실행되는 서브에이전트에 적용됩니다. `Agent`와 `ExitPlanMode`를 제외하고(이들은 서브에이전트가 실행되는 곳 어디든 첫 번째 필터의 조건을 따릅니다), 백그라운드 서브에이전트는 모든 MCP 도구를 유지하지만 이러한 기본 제공 도구만 유지합니다: `Read`, `Grep`, `Glob`, `LSP`, `Bash`, `PowerShell`, `Edit`, `Write`, `NotebookEdit`, `WebFetch`, `WebSearch`, `TodoWrite`, `Skill`, `ToolSearch`, `EnterWorktree`, `ExitWorktree`, `Monitor`, `TaskStop`, `SendMessage`, 및 `Artifact`. [`SubagentHandback`](/docs/ko/tools-reference)을 통해 보고하는 서브에이전트는 이 도구도 유지합니다. Claude Code는 상속되었든 `tools` 필드에 나열되었든 백그라운드 서브에이전트에서 다른 모든 기본 제공 도구를 제거하므로, 같은 정의라도 포그라운드와 백그라운드에서 서로 다른 도구로 해석될 수 있습니다. 제거는 `tools` 목록을 [아무 도구로도 해석되지 않는](/docs/ko/errors#agent-would-be-spawned-with-zero-tools) 상태로 남기지 않으면 오류를 보고하지 않습니다.436두 번째 필터는 백그라운드에서 실행되는 서브에이전트에 적용됩니다. 서브에이전트가 어디서 실행되든 첫 번째 필터의 조건을 따르는 `Agent`와 `ExitPlanMode`를 제외하면, 백그라운드 서브에이전트는 모든 MCP 도구를 유지하지만 기본 제공 도구는 `Read`, `Grep`, `Glob`, `LSP`, `Bash`, `PowerShell`, `Edit`, `Write`, `NotebookEdit`, `WebFetch`, `WebSearch`, `TodoWrite`, `Skill`, `ToolSearch`, `EnterWorktree`, `ExitWorktree`, `Monitor`, `TaskStop`, `SendMessage`, `Artifact`만 유지하며, 이를 통해 보고하는 서브에이전트의 경우 [`SubagentHandback`](/docs/ko/tools-reference)도 유지합니다. Claude Code는 상속되었든 `tools` 필드에 나열되었든 그 밖의 모든 기본 제공 도구를 백그라운드 서브에이전트에서 제거하므로, 같은 정의라도 포그라운드와 백그라운드에서 서로 다른 도구로 해석될 수 있습니다. 이 제거로 인해 `tools` 목록이 [아무것도 해석되지 않는](/docs/ko/errors#agent-would-be-spawned-with-zero-tools) 상태가 되지 않는 한 오류는 보고되지 않습니다.

437 437 

438v2.1.280 이전에는 백그라운드 서브에이전트가 `LSP`를 사용할 수 없었습니다.438v2.1.280 이전에는 백그라운드 서브에이전트가 `LSP`를 사용할 수 없었습니다.

439 439 

440[`ListAgents`](/docs/ko/cross-session-messaging)는 다른 기본 제공 도구처럼 이러한 필터를 따릅니다. 포그라운드 서브에이전트는 세션에서 세션 간 메시징이 활성화된 경우 이를 상속하고, 백그라운드 서브에이전트는 유지하지 않습니다.440[`ListAgents`](/docs/ko/cross-session-messaging)는 다른 기본 제공 도구와 마찬가지로 이러한 필터를 따릅니다. 세션 간 메시징이 활성화된 세션에서 포그라운드 서브에이전트는 이를 상속하지만, 백그라운드 서브에이전트는 이를 유지하지 않습니다.

441 441 

442[에이전트 팀](/docs/ko/agent-teams)의 팀원은 추가로 작업 도구와 cron 도구를 유지합니다: `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, `CronCreate`, `CronDelete`, 및 `CronList`.442[에이전트 팀](/docs/ko/agent-teams)의 팀원은 추가로 작업 도구와 cron 도구를 유지합니다: `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, `CronCreate`, `CronDelete`, `CronList`.

443 443 

444[작업 도구가 없는 세션](/docs/ko/tools-reference#task-tool-availability)에서, Claude Code는 서브에이전트가 다른 모델을 실행하더라도 서브에이전트에 작업 도구를 제공하지 않습니다. 프로세스 내 팀원은 세션을 따르는 동일한 방식이며, [분할 창](/docs/ko/agent-teams#choose-a-display-mode)에서 자신의 팀원은 별도의 Claude Code 프로세스로 실행되므로 자신의 모델이 결정합니다.444[Task 도구가 없는 세션](/docs/ko/tools-reference#task-tool-availability)에서는 서브에이전트가 다른 모델을 실행하더라도 Claude Code가 서브에이전트에도 작업 도구를 제공하지 않습니다. 인프로세스 팀원도 같은 방식으로 세션을 따르지만, 자체 [분할 창](/docs/ko/agent-teams#choose-a-display-mode)의 팀원은 별도의 Claude Code 프로세스로 실행되므로 자체 모델이 결정합니다.

445 445 

446#### 서브에이전트가 사용할 수 있는 도구 제한446#### 서브에이전트가 사용할 수 있는 도구 제한

447 447 

448도구를 제한하려면 `tools` 필드를 허용 목록으로 또는 `disallowedTools` 필드를 거부 목록으로 사용하세요. 둘 다 설정되면, `disallowedTools`가 먼저 적용되고, `tools`는 남은 풀을 기준으로 확인됩니다. 둘 다에 나열된 도구는 제거됩니다.448도구를 제한하려면 `tools` 필드를 허용 목록으로, 또는 `disallowedTools` 필드를 거부 목록으로 사용하세요. 둘 다 설정된 경우 `disallowedTools`가 먼저 적용된 다음, 남은 풀을 대상으로 `tools`가 해석됩니다. 두 곳 모두에 나열된 도구는 제거됩니다.

449 449 

450이 예제는 `tools`를 사용하여 Read, Grep, Glob, 및 Bash만 허용합니다. 서브에이전트는 파일을 편집하거나, 파일을 작성하거나, MCP 도구를 사용할 수 없습니다:450이 예시는 `tools`를 사용하여 Read, Grep, Glob, Bash만 허용합니다. 서브에이전트는 파일을 편집하거나 작성할 수 없고 MCP 도구도 사용할 수 없습니다.

451 451 

452```yaml theme={null}452```yaml theme={null}

453---453---


457---457---

458```458```

459 459 

460이 예제는 `disallowedTools`를 사용하여 Write와 Edit를 제외한 서브에이전트의 도구 풀을 상속합니다. 서브에이전트는 Bash, MCP 도구, 및 풀의 나머지를 유지합니다:460이 예시는 `disallowedTools`를 사용하여 Write와 Edit를 제외한 서브에이전트의 도구 풀을 상속합니다. 서브에이전트는 Bash, MCP 도구 및 풀의 나머지 도구를 유지합니다.

461 461 

462```yaml theme={null}462```yaml theme={null}

463---463---


467---467---

468```468```

469 469 

470`tools` 목록의 어떤 항목도 도구로 확인되지 않을 때(예: 모든 항목의 철자가 틀렸거나 서브에이전트가 사용할 수 없는 도구를 지정할 때), Claude Code는 일반적으로 서브에이전트 시작을 거부하고 Agent 도구는 확인되지 않은 항목을 명시하는 오류를 반환합니다. 메시지와 각 항목을 수정하는 방법은 [Agent would be spawned with zero tools](/docs/ko/errors#agent-would-be-spawned-with-zero-tools)를 참조하세요.470예를 들어 모든 항목의 철자가 잘못되었거나 서브에이전트에서 사용할 수 없는 도구를 지정하여 `tools` 목록의 어떤 항목도 도구로 해석되지 않으면, Claude Code는 보통 서브에이전트 실행을 거부하고 Agent 도구는 해석되지 않은 항목을 명시한 오류를 반환합니다. 메시지와 각 항목을 수정하는 방법은 [Agent would be spawned with zero tools](/docs/ko/errors#agent-would-be-spawned-with-zero-tools)를 참조하세요.

471 471 

472`tools` 및 `disallowedTools` 필드는 MCP 서버 전체에 대한 항목도 허용합니다:472`tools` 및 `disallowedTools` 필드는 MCP 서버 전체에 대한 항목도 받습니다.

473 473 

474| 목표 | 필드 | 항목 예시 |474| 목표 | 필드 | 예시 항목 |

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

476| 한 서버의 모든 도구를 서브에이전트에 부여 | `tools` | `mcp__github__*` |476| 서브에이전트에 하나의 서버의 모든 도구 제공 | `tools` | `mcp__github__*` |

477| 한 서버의 도구를 제외 | `disallowedTools` | `mcp__github` 또는 `mcp__github__*` |477| 하나의 서버의 도구 제외 | `disallowedTools` | `mcp__github` 또는 `mcp__github__*` |

478| 모든 서버의 모든 MCP 도구를 제외 | `disallowedTools` | `mcp__*` |478| 모든 서버의 모든 MCP 도구 제외 | `disallowedTools` | `mcp__*` |

479 479 

480이 예제는 `github` MCP 서버의 모든 도구를 제거하면서 다른 서버의 도구와 서브에이전트 풀의 기본 제공 도구는 유지합니다:480이 예시는 서브에이전트의 풀에서 다른 서버의 도구와 기본 제공 도구는 유지하면서 `github` MCP 서버의 모든 도구를 제거합니다.

481 481 

482```yaml theme={null}482```yaml theme={null}

483---483---


487---487---

488```488```

489 489 

490`Bash(git push *)`와 같은 지정자가 있는 `disallowedTools` 항목은 여전히 서브에이전트에서 전체 도구를 제거하며, 일치하는 명령만 제거하지 않습니다. Bash를 유지하고 특정 명령을 차단하려면, 설정의 `permissions.deny`에 `Bash(git push *)`와 같은 [Bash 거부 규칙](/docs/ko/permissions#bash)을 추가하세요. 규칙은 주 대화와 서브에이전트에 적용됩니다.490`Bash(git push *)`처럼 지정자가 있는 `disallowedTools` 항목도 일치하는 명령만이 아니라 서브에이전트에서 도구 전체를 제거합니다. Bash를 유지하면서 특정 명령을 차단하려면 설정의 `permissions.deny`에 `Bash(git push *)`와 같은 [Bash 거부 규칙](/docs/ko/permissions#bash)을 추가하세요. 이 규칙은 메인 대화와 서브에이전트 모두에 적용됩니다.

491 

492##### 이중 밑줄이 포함된 MCP 서버 이름

493 

494`reports__v2`처럼 이름에 `__`가 포함된 MCP 서버의 도구를 서브에이전트가 하나도 받지 못한다면 서브에이전트의 `mcp__` 항목을 확인하세요.

495 

496* **`tools`의 경우**: `mcp__reports__v2__*`처럼 `mcp__` 뒤에 [서버의 전체 이름](/docs/ko/permissions#mcp)과 `__*`를 작성합니다. 끝의 `__*`가 없으면 `mcp__reports__v2`는 해당 서버의 어떤 도구와도 일치하지 않습니다.

497* **`disallowedTools`의 경우**: `reports`라는 이름의 서버를 제외하는 항목인 `mcp__reports` 또는 `mcp__reports__*`가 있는지 확인합니다. 두 항목 중 하나라도 있으면 `reports__v2` 도구 이름도 `mcp__reports__`로 시작하기 때문에 서브에이전트는 모든 `reports__v2` 도구도 잃게 됩니다. `reports` 서버의 도구만 제외하려면 대신 `mcp__reports__run_query`처럼 하나씩 나열하세요.

491 498 

492#### 생성할 수 있는 서브에이전트 제한499#### 생성할 수 있는 서브에이전트 제한

493 500 

494에이전트가 `claude --agent`로 주 스레드로 실행될 때, Agent 도구를 사용하여 서브에이전트를 생성할 수 있습니다. 생성할 수 있는 서브에이전트 유형을 제한하려면 `tools` 필드에서 `Agent(agent_type)` 구문을 사용하세요.501에이전트가 `claude --agent`로 메인 스레드로 실행되면 Agent 도구를 사용하여 서브에이전트를 생성할 수 있습니다. 생성할 수 있는 서브에이전트 유형을 제한하려면 `tools` 필드에 `Agent(agent_type)` 구문을 사용하세요.

495 502 

496> [!NOTE]503> [!NOTE]

497>504>

498> 버전 2.1.63에서 Task 도구는 Agent로 이름이 바뀌었습니다. 설정 및 에이전트 정의의 기존 `Task(...)` 참조는 여전히 별칭으로 작동합니다.505> 버전 2.1.63에서 Task 도구의 이름이 Agent로 변경되었습니다. 설정과 에이전트 정의의 기존 `Task(...)` 참조는 별칭으로 계속 작동합니다.

499 506 

500```yaml theme={null}507```yaml theme={null}

501---508---


505---512---

506```513```

507 514 

508이것은 허용 목록입니다. `worker`와 `researcher` 서브에이전트만 생성할 수 있습니다. 에이전트가 다른 유형을 생성하려고 하면 요청이 실패하고 에이전트는 프롬프트에서 허용된 유형만 봅니다. 특정 에이전트를 차단하면서 다른 모든 에이전트를 허용하려면 [`permissions.deny`](#disable-specific-subagents)를 대신 사용하세요.515이는 허용 목록이므로 `worker`와 `researcher` 서브에이전트만 생성할 수 있습니다. 에이전트가 다른 유형을 생성하려고 하면 요청이 실패하며, 에이전트는 프롬프트에서 허용된 유형만 보게 됩니다. 다른 모든 에이전트를 허용하면서 특정 에이전트만 차단하려면 대신 [`permissions.deny`](#disable-specific-subagents)를 사용하세요.

509 516 

510제한 없이 모든 서브에이전트 생성을 허용하려면 괄호 없이 `Agent`를 사용하세요:517제한 없이 모든 서브에이전트 생성을 허용하려면 괄호 없이 `Agent`를 사용하세요.

511 518 

512```yaml theme={null}519```yaml theme={null}

513tools: Agent, Read, Bash520tools: Agent, Read, Bash

514```521```

515 522 

516`tools` 목록에서 `Agent`를 완전히 생략하면, 에이전트는 Agent 도구로 서브에이전트를 생성할 수 없습니다.523`tools` 목록에서 `Agent`를 완전히 생략하면 에이전트는 Agent 도구로 어떤 서브에이전트도 생성할 수 없습니다.

517 524 

518`Agent(agent_type)` 허용 목록 구문은 `claude --agent`로 주 스레드로 실행되는 에이전트에만 적용됩니다. 서브에이전트 정의에서 `tools`에 `Agent`를 나열하면 해당 서브에이전트가 [깊이 한계](#let-subagents-spawn-their-own-subagents)가 허용하는 동안 자신의 서브에이전트를 생성할 수 있지만, 괄호 내의 모든 유형 목록은 무시됩니다.525`Agent(agent_type)` 허용 목록 구문은 `claude --agent`로 메인 스레드로 실행되는 에이전트에만 적용됩니다. 서브에이전트 정의에서 `tools`에 `Agent`를 나열하면 [깊이 제한](#let-subagents-spawn-their-own-subagents)이 허용하는 한 해당 서브에이전트가 자체 서브에이전트를 생성할 수 있지만, 괄호 안의 유형 목록은 무시됩니다.

519 526 

520#### MCP 서버를 서브에이전트로 범위 지정527#### 서브에이전트로 MCP 서버 범위 지정

521 528 

522`mcpServers` 필드를 사용하여 주 대화에서 사용할 수 없는 [MCP](/docs/ko/mcp) 서버에 대한 접근을 서브에이전트에 제공합니다. 여기에 정의된 인라인 서버는 서브에이전트가 시작될 때 연결되며, [에이전트 파일의 폴더에 대한 신뢰 규칙](#inline-server-trust)의 적용을 받고, 완료될 때 연결이 끊깁니다. 문자열 참조는 부모 세션의 연결을 공유합니다.529`mcpServers` 필드를 사용하면 메인 대화에서 사용할 수 없는 [MCP](/docs/ko/mcp) 서버에 서브에이전트가 접근하도록 할 수 있습니다. 여기서 정의한 인라인 서버는 [에이전트 파일 폴더에 대한 신뢰 규칙](#inline-server-trust)에 따라 서브에이전트가 시작될 때 연결되고 완료될 때 연결이 해제됩니다. 문자열 참조는 부모 세션의 연결을 공유합니다.

523 530 

524> [!NOTE]531> [!NOTE]

525>532>

526> `mcpServers` 필드는 에이전트 파일이 실행될 수 있는 두 컨텍스트에 적용됩니다:533> `mcpServers` 필드는 에이전트 파일이 실행될 수 있는 두 가지 컨텍스트 모두에 적용됩니다.

527>534>

528> * Agent 도구 또는 @-멘션을 통해 생성된 서브에이전트535> * Agent 도구나 @-멘션을 통해 생성되는 서브에이전트로서

529> * [`--agent`](#invoke-subagents-explicitly) 또는 `agent` 설정으로 시작된 주 세션536> * [`--agent`](#invoke-subagents-explicitly) 또는 `agent` 설정으로 실행되는 메인 세션으로서

530>537>

531> 에이전트가 주 세션일 때, 인라인 서버 정의는 [`.mcp.json`](/docs/ko/mcp)과 설정 파일의 서버와 함께 시작 시 연결되며, [에이전트 파일의 폴더에 대한 신뢰 규칙](#inline-server-trust)과 동일합니다. `/mcp`에서, 이전에 사용한 원격(HTTP 또는 SSE) 서버는 [`cached` 상태](/docs/ko/mcp#managing-your-servers) 대신 표시될 수 있습니다. Claude Code는 Claude가 처음 도구 중 하나를 호출할 때 연결합니다.538> 에이전트가 메인 세션인 경우, 인라인 서버 정의는 동일한 [에이전트 파일 폴더에 대한 신뢰 규칙](#inline-server-trust)에 따라 [`.mcp.json`](/docs/ko/mcp) 및 설정 파일의 서버와 함께 시작 시 연결됩니다. `/mcp`에서 이전에 사용한 원격(HTTP 또는 SSE) 서버는 대신 [`cached` 상태](/docs/ko/mcp#managing-your-servers)로 표시될 수 있으며, Claude Code는 Claude가 해당 서버의 도구 중 하나를 처음 호출할 때 연결합니다.

532 539 

533목록의 각 항목은 인라인 서버 정의 또는 세션에서 이미 구성된 MCP 서버를 참조하는 문자열입니다:540목록의 각 항목은 인라인 서버 정의이거나 세션에 이미 구성된 MCP 서버를 참조하는 문자열입니다.

534 541 

535```yaml theme={null}542```yaml theme={null}

536---543---


549Use the Playwright tools to navigate, screenshot, and interact with pages.556Use the Playwright tools to navigate, screenshot, and interact with pages.

550```557```

551 558 

552인라인 정의는 `.mcp.json` 서버 항목과 동일한 스키마를 사용하며, 서버 이름으로 키 지정되고, `stdio`, `http`, `sse`, 및 `ws` 유형을 지원합니다.559인라인 정의는 서버 이름을 키로 하는 `.mcp.json` 서버 항목과 동일한 스키마를 사용하며, `stdio`, `http`, `sse`, `ws` 유형을 지원합니다.

553 560 

554MCP 서버를 주 대화에서 완전히 제외하고 도구 설명이 컨텍스트를 소비하는 것을 피하려면, `.mcp.json`이 아닌 여기에 인라인으로 정의하세요. 서브에이전트는 도구를 얻습니다. 부모 대화는 그렇지 않습니다.561MCP 서버를 메인 대화에서 완전히 배제하고 해당 도구 설명이 그곳의 컨텍스트를 소비하지 않도록 하려면 `.mcp.json`이 아니라 여기에서 인라인으로 정의하세요. 서브에이전트는 도구를 받지만 부모 대화는 받지 않습니다.

555 562 

556주 세션에 적용되는 MCP 제한은 서브에이전트 frontmatter에 선언된 서버에도 적용됩니다:563메인 세션에 적용되는 MCP 제한은 서브에이전트 frontmatter에 선언된 서버에도 적용됩니다.

557 564 

558* [`--strict-mcp-config`](/docs/ko/cli-reference) 및 [`--bare`](/docs/ko/cli-reference)565* [`--strict-mcp-config`](/docs/ko/cli-reference) 및 [`--bare`](/docs/ko/cli-reference)

559* [엔터프라이즈 관리형 MCP 구성](/docs/ko/managed-mcp)566* [엔터프라이즈 관리형 MCP 구성](/docs/ko/managed-mcp)

560* [`allowedMcpServers` 및 `deniedMcpServers` 정책](/docs/ko/managed-mcp#policy-based-control-with-allowlists-and-denylists)567* [`allowedMcpServers` 및 `deniedMcpServers` 정책](/docs/ko/managed-mcp#policy-based-control-with-allowlists-and-denylists)

561 568 

562이 중 하나가 서버를 차단하면, Claude Code는 해당 서버를 건너뛰고 차단된 서버를 명시하는 경고를 표시합니다.569이 중 하나가 서버를 차단하면 Claude Code는 해당 서버를 건너뛰고 차단된 서버를 명시한 경고를 표시합니다.

563 570 

564관리형 설정 제한은 정의 방식과 관계없이 모든 서브에이전트에 적용됩니다. `--strict-mcp-config`는 `--agents` 또는 SDK `agents` 옵션을 통해 인라인으로 전달하는 서버는 필터링하지 않습니다. 이들은 명시적인 호출자 입력이기 때문입니다.571관리형 설정 제한은 정의 방식과 관계없이 모든 서브에이전트에 적용됩니다. `--strict-mcp-config`는 `--agents` 또는 SDK `agents` 옵션을 통해 인라인으로 전달한 서버는 명시적인 호출자 입력이므로 필터링하지 않습니다.

565 572 

566#### 인라인 MCP 서버에 필요한 신뢰573#### 인라인 MCP 서버에 필요한 신뢰

567 574 

568Claude Code는 프로젝트의 `.claude/agents/` 디렉터리 또는 `--add-dir` 디렉터리의 `.claude/agents/`에 있는 에이전트 파일의 [인라인 MCP 서버](#scope-mcp-servers-to-a-subagent)를, [에이전트 파일이 있는 폴더를 신뢰](/docs/ko/permissions#what-runs-before-you-trust-a-folder)한 후에만 로드합니다. v2.1.238 이전에는 Claude Code가 신뢰를 확인하지 않고 이러한 서버를 로드했습니다.575Claude Code는 프로젝트의 `.claude/agents/` 디렉터리 또는 `--add-dir` 디렉터리의 `.claude/agents/`에 있는 에이전트 파일의 [인라인 MCP 서버](#scope-mcp-servers-to-a-subagent)를 [에이전트 파일이 있는 폴더를 신뢰](/docs/ko/permissions#what-runs-before-you-trust-a-folder)한 후에만 로드합니다. v2.1.238 이전에는 Claude Code가 신뢰를 확인하지 않고 이러한 서버를 로드했습니다.

569 576 

570* **신뢰하지 않는 것**: 부모 폴더의 신뢰, 및 `-p` 또는 SDK 세션이 [설정 파일의 훅](/docs/ko/permissions#what-runs-before-you-trust-a-folder)에 대해 얻는 자동 신뢰577* **인정되지 않는 신뢰**: 부모 폴더의 신뢰, 그리고 `-p` 또는 SDK 세션이 [설정 파일의 훅](/docs/ko/permissions#what-runs-before-you-trust-a-folder)에 대해 받는 자동 신뢰

571* **그때까지**: Claude Code는 해당 에이전트 파일의 모든 인라인 서버를 건너뛰고 `~/.claude.json`에 대한 정확한 `projects["<path>"].hasTrustDialogAccepted` 키를 디버그 로그에 씁니다578* **신뢰하기 전까지**: Claude Code는 해당 에이전트 파일의 모든 인라인 서버를 건너뛰고, `~/.claude.json`에 대한 정확한 `projects["<path>"].hasTrustDialogAccepted` 키를 디버그 로그에 기록합니다

572* **`--add-dir` 디렉터리**: 신뢰된 워크스페이스의 저장소 외부에 있는 디렉터리는 자체 신뢰 항목이 필요합니다. 해당 디렉터리의 `.claude/agents/` 파일은 워크스페이스의 신뢰를 상속하지 않기 때문입니다579* **`--add-dir` 디렉터리**: 신뢰된 워크스페이스의 저장소 외부에 있는 디렉터리는 해당 `.claude/agents/` 파일이 워크스페이스의 신뢰를 상속하지 않으므로 자체 신뢰 항목이 필요합니다

573 580 

574Claude Code는 에이전트 파일이 나온 폴더에 대한 신뢰를 확인하지 않고 두 종류의 서버를 로드합니다:581Claude Code는 다음 두 종류의 서버를 에이전트 파일이 있는 폴더에 대한 신뢰를 확인하지 않고 로드합니다.

575 582 

576* 이미 구성한 서버를 참조하는 이름583* 이미 구성한 서버를 참조하는 이름

577* `~/.claude/agents/`의 에이전트 파일, `--agents` 또는 SDK `agents` 옵션으로 전달하는 파일, 또는 관리 설정이 제공하는 파일의 인라인 서버584* `~/.claude/agents/`의 에이전트 파일, `--agents` 또는 SDK `agents` 옵션으로 전달한 에이전트 파일, 또는 관리형 설정이 제공하는 에이전트 파일에 있는 인라인 서버

578 585 

579#### 권한 모드586#### 권한 모드

580 587 

581`permissionMode`를 설정하여 서브에이전트가 실행되는 권한 모드를 선택합니다. 모드의 구성 값을 사용하므로 수동 모드는 `default`입니다. 설정하지 않으면, 서브에이전트는 주 대화의 [권한 모드](/docs/ko/permission-modes)를 상속합니다.588`permissionMode`를 설정하여 서브에이전트가 실행될 권한 모드를 선택합니다. 모드의 구성 값을 사용하므로 Manual 모드는 `default`입니다. 설정하지 않으면 서브에이전트는 메인 대화의 [권한 모드](/docs/ko/permission-modes)를 상속합니다.

582 589 

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

584 591 

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

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

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

588 * `auto`를 설정했지만 서브에이전트에서 [자동 모드를 사용할 수 없는](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode) 경우. 예를 들어 설정 파일이 [`disableAutoMode`](/docs/ko/settings-reference#disableautomode)를 설정했거나 서브에이전트의 모델이 자동 모드를 지원하지 않는 경우입니다.595 * 사용자가 `auto`를 설정했지만, 설정 파일이 [`disableAutoMode`](/docs/ko/settings-reference#disableautomode)를 설정했거나 서브에이전트의 모델이 자동 모드를 지원하지 않는 경우처럼 서브에이전트가 [자동 모드를 사용할 수 없는](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode) 경우.

589 596 

590`permissionMode`는 이러한 값을 허용하며, `manual`을 `default`의 별칭으로 허용합니다:597`permissionMode`는 다음 값과 `default`의 별칭인 `manual`을 허용합니다.

591 598 

592| 모드 | 동작 |599| 모드 | 동작 |

593| :- | :- |600| :- | :- |

594| `default` | 수동 모드: 권한 프롬프트 |601| `default` | Manual 모드: 권한을 요청합니다 |

595| `acceptEdits` | 자동 수락 파일 편집 및 작업 디렉토리 또는 `additionalDirectories`의 경로에 대한 일반적인 파일시스템 명령 |602| `acceptEdits` | 작업 디렉터리 또는 `additionalDirectories`의 경로에 대한 파일 편집과 일반적인 파일 시스템 명령을 자동으로 수락합니다 |

596| `auto` | [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode): 백그라운드 분류자가 명령 및 보호된 디렉토리 쓰기를 검토합니다 |603| `auto` | [자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode): 백그라운드 분류기가 명령과 보호된 디렉터리 쓰기를 검토합니다 |

597| `dontAsk` | 확인을 요청하게 될 호출을 자동 거부하지만, 설치한 [mod](/docs/ko/plugins/mods/overview)는 [그중 일부 호출](/docs/ko/permissions#precedence-among-rules-hooks-and-mods)을 여전히 승인할 수 있습니다. 명시적으로 허용된 도구는 여전히 작동합니다. `AskUserQuestion`, [`requiresUserInteraction`](/docs/ko/mcp#require-approval-for-a-specific-tool)으로 표시된 MCP 도구, [네트워크 경로에서의 읽기](/docs/ko/permissions#network-paths), 그리고 해당 설정이 Claude Code에 전달되는 세션에서 [조직이 `ask`로 설정한](/docs/ko/mcp#organization-controls-on-connector-tools) 커넥터 도구는 허용했더라도 거부됩니다 |604| `dontAsk` | 확인을 요청하게 될 호출을 자동으로 거부합니다. 단, 설치한 [mod](/docs/ko/plugins/mods/overview)가 [그러한 호출 중 일부](/docs/ko/permissions#precedence-among-rules-hooks-and-mods)를 여전히 승인할 수 있습니다. 명시적으로 허용된 도구는 계속 작동합니다. `AskUserQuestion`, [`requiresUserInteraction`](/docs/ko/mcp#require-approval-for-a-specific-tool)으로 표시된 MCP 도구, [네트워크 경로에서의 읽기](/docs/ko/permissions#network-paths), 그리고 해당 설정이 Claude Code에 적용되는 세션에서 [조직이 `ask`로 설정한](/docs/ko/mcp#organization-controls-on-connector-tools) 커넥터 도구는 허용했더라도 거부됩니다 |

598| `bypassPermissions` | [권한 프롬프트 건너뛰기](/docs/ko/permission-modes#skip-all-checks-with-bypasspermissions-mode). 서브에이전트는 주 대화도 이 모드에 있을 때만 이 모드에서 실행됩니다 |605| `bypassPermissions` | [권한 프롬프트를 건너뜁니다](/docs/ko/permission-modes#skip-all-checks-with-bypasspermissions-mode). 서브에이전트는 메인 대화가 이 모드일 때만 이 모드로 실행됩니다 |

599| `plan` | 계획 모드(읽기 전용 탐색) |606| `plan` | 플랜 모드(읽기 전용 탐색) |

600 607 

601#### 서브에이전트에 스킬 미리 로드608#### 서브에이전트에 스킬 미리 로드

602 609 

603`skills` 필드를 사용하여 시작 시 서브에이전트의 컨텍스트에 스킬 내용을 주입합니다. 이는 실행 중에 스킬을 발견하고 로드하도록 요구하지 않고 서브에이전트에 도메인 지식을 제공합니다.610`skills` 필드를 사용하여 시작 시 서브에이전트의 컨텍스트에 스킬 내용을 주입합니다. 이렇게 하면 서브에이전트가 실행 중에 스킬을 찾아 로드할 필요 없이 도메인 지식을 얻을 수 있습니다.

604 611 

605```yaml theme={null}612```yaml theme={null}

606---613---


614Implement API endpoints. Follow the conventions and patterns from the preloaded skills.621Implement API endpoints. Follow the conventions and patterns from the preloaded skills.

615```622```

616 623 

617나열된 각 스킬의 전체 내용은 목록의 처음 32개 고유 이름까지 시작 시 서브에이전트의 컨텍스트에 주입됩니다. 이 필드는 서브에이전트가 접근할 수 있는 스킬이 아니라 미리 로드할 스킬을 제어합니다. 이 필드가 없어도 서브에이전트는 실행 중에 Skill 도구를 통해 프로젝트, 사용자, 및 플러그인 스킬을 발견하고 호출할 수 있습니다. 서브에이전트가 스킬을 아예 호출하지 못하도록 하려면, [`tools`](#available-tools) 목록에서 `Skill`을 생략하거나 `disallowedTools`에 추가하세요.624나열된 각 스킬의 전체 내용은 목록에서 처음 32개의 고유한 이름까지 시작 시 서브에이전트의 컨텍스트에 주입됩니다. 이 필드는 서브에이전트가 접근할 수 있는 스킬이 아니라 미리 로드되는 스킬을 제어합니다. 이 필드가 없어도 서브에이전트는 실행 중에 Skill 도구를 통해 프로젝트, 사용자, 플러그인 스킬을 찾아 호출할 수 있습니다. 서브에이전트가 스킬을 아예 호출하지 못하게 하려면 [`tools`](#available-tools) 목록에서 `Skill`을 생략하거나 `disallowedTools`에 추가하세요.

618 625 

619[`disable-model-invocation: true`](/docs/ko/skills#control-who-invokes-a-skill)를 설정한 스킬은 미리 로드할 수 없습니다. 미리 로드는 Claude가 호출할 수 있는 스킬 세트에서 가져오기 때문입니다. 여기에는 Claude가 스스로 실행할 수 없는 번들 `/verify` 스킬도 포함됩니다.626미리 로드는 Claude가 호출할 수 있는 것과 동일한 스킬 집합에서 가져오므로 [`disable-model-invocation: true`](/docs/ko/skills#control-who-invokes-a-skill)를 설정한 스킬은 미리 로드할 수 없습니다. 여기에는 Claude가 스스로 실행할 수 없는 번들 `/verify` 스킬도 포함됩니다.

620 627 

621나열된 스킬이 누락되거나 비활성화되면(예: 조직의 정책에 의해), Claude Code는 건너뛰고 디버그 로그에 경고를 기록합니다.628나열된 스킬이 누락되었거나 조직의 정책 등으로 비활성화된 경우, Claude Code는 해당 스킬을 건너뛰고 디버그 로그에 경고를 기록합니다.

622 629 

623> [!NOTE]630> [!NOTE]

624>631>

625> 이것은 [서브에이전트에서 스킬 실행](/docs/ko/skills#run-skills-in-a-subagent)의 역입니다. 서브에이전트의 `skills`를 사용하면, 서브에이전트가 시스템 프롬프트를 제어하고 스킬 내용을 로드합니다. 스킬의 `context: fork`를 사용하면, 스킬 내용이 지정한 에이전트에 주입됩니다. 두 경우 모두 서브에이전트는 대화 기록 없이 시작됩니다.632> 이는 [서브에이전트에서 스킬 실행](/docs/ko/skills#run-skills-in-a-subagent)의 반대입니다. 서브에이전트에서 `skills`를 사용하면 서브에이전트가 시스템 프롬프트를 제어하고 스킬 내용을 로드합니다. 스킬에서 `context: fork`를 사용하면 스킬 내용이 지정한 에이전트에 주입됩니다. 두 경우 모두 서브에이전트는 대화 기록 없이 시작합니다.

626 633 

627#### 지속적 메모리 활성화634#### 영구 메모리 활성화

628 635 

629`memory` 필드는 서브에이전트에 대화 간에 지속되는 지속적 디렉토리를 제공합니다. 서브에이전트는 이 디렉토리를 사용하여 시간이 지남에 따라 지식을 구축합니다. 예를 들어 코드베이스 패턴, 디버깅 통찰력, 및 아키텍처 결정입니다.636`memory` 필드는 서브에이전트에 대화가 끝나도 유지되는 영구 디렉터리를 제공합니다. 서브에이전트는 이 디렉터리를 사용하여 코드베이스 패턴, 디버깅 인사이트, 아키텍처 결정과 같은 지식을 시간이 지나면서 축적합니다.

630 637 

631```yaml theme={null}638```yaml theme={null}

632---639---


639patterns, conventions, and recurring issues you discover.646patterns, conventions, and recurring issues you discover.

640```647```

641 648 

642메모리가 얼마나 광범위하게 적용되어야 하는지에 따라 범위를 선택합니다:649메모리를 얼마나 넓게 적용할지에 따라 범위를 선택하세요.

643 650 

644| 범위 | 위치 | 사용 시기 |651| 범위 | 위치 | 사용 시점 |

645| :- | :- | :- |652| :- | :- | :- |

646| `user` | `~/.claude/agent-memory/<name-of-agent>/` | 서브에이전트가 모든 프로젝트에서 학습을 기억해야 할 때 |653| `user` | `~/.claude/agent-memory/<name-of-agent>/` | 서브에이전트가 모든 프로젝트에 걸쳐 학습 내용을 기억해야 하는 경우 |

647| `project` | `.claude/agent-memory/<name-of-agent>/` | 서브에이전트의 지식이 프로젝트 특정이고 버전 관리를 통해 공유 가능할 때 |654| `project` | `.claude/agent-memory/<name-of-agent>/` | 서브에이전트의 지식이 프로젝트에 특화되어 있고 버전 관리를 통해 공유할 수 있는 경우 |

648| `local` | `.claude/agent-memory-local/<name-of-agent>/` | 서브에이전트의 지식이 프로젝트 특정이지만 버전 관리에 체크인되지 않아야 할 때 |655| `local` | `.claude/agent-memory-local/<name-of-agent>/` | 서브에이전트의 지식이 프로젝트에 특화되어 있지만 버전 관리에 체크인하면 안 되는 경우 |

649 656 

650서브에이전트 메모리는 [자동 메모리](/docs/ko/memory#auto-memory)의 일부입니다. `autoMemoryEnabled` 설정 또는 `CLAUDE_CODE_DISABLE_AUTO_MEMORY`로 자동 메모리를 끄면, `memory` 필드는 효과가 없고 서브에이전트는 메모리 지침 또는 아래에서 설명한 메모리 도구 접근 없이 시작됩니다.657서브에이전트 메모리는 [자동 메모리](/docs/ko/memory#auto-memory)의 일부입니다. `autoMemoryEnabled` 설정이나 `CLAUDE_CODE_DISABLE_AUTO_MEMORY`로 자동 메모리를 끄면 `memory` 필드는 효과가 없으며, 서브에이전트는 아래에 설명된 메모리 지침이나 메모리 도구 접근 없이 실행됩니다.

651 658 

652메모리가 활성화되면:659메모리가 활성화되면:

653 660 

654* 서브에이전트의 시스템 프롬프트는 메모리 디렉토리에 읽고 쓰기 위한 지침을 포함합니다.661* 서브에이전트의 시스템 프롬프트에 메모리 디렉터리를 읽고 쓰는 방법에 대한 지침이 포함됩니다.

655* 서브에이전트의 시스템 프롬프트는 또한 메모리 디렉토리의 `MEMORY.md`의 첫 200줄 또는 25KB(둘 중 먼저 오는 것)를 포함하며, 초과하면 `MEMORY.md`를 큐레이션하기 위한 지침을 포함합니다.662* 서브에이전트의 시스템 프롬프트에는 메모리 디렉터리에 있는 `MEMORY.md`의 처음 200줄 또는 25KB 중 먼저 도달하는 분량도 포함되며, 이 한도를 초과하면 `MEMORY.md`를 정리하라는 지침이 함께 포함됩니다.

656* Read, Write, 및 Edit 도구는 자동으로 활성화되어 서브에이전트가 메모리 파일을 관리할 수 있습니다.663* 서브에이전트가 메모리 파일을 관리할 수 있도록 Read, Write, Edit 도구가 자동으로 활성화됩니다.

657 664 

658##### 지속적 메모리 팁665##### 영구 메모리 팁

659 666 

660* `project`는 권장되는 기본 범위입니다. 서브에이전트 지식을 버전 관리를 통해 공유 가능하게 만듭니다.667* `project`가 권장되는 기본 범위입니다. 서브에이전트의 지식을 버전 관리를 통해 공유할 수 있게 합니다.

661* 서브에이전트에 작업을 시작하기 전에 메모리를 확인하도록 요청하세요: "이 PR을 검토하고 이전에 본 패턴에 대해 메모리를 확인하세요."668* 작업을 시작하기 전에 메모리를 참조하도록 서브에이전트에게 요청하세요: "이 PR을 검토하고, 이전에 본 패턴이 있는지 메모리를 확인해 줘."

662* 작업을 완료한 후 메모리를 업데이트하도록 서브에이전트에 요청하세요: "이제 완료했으니, 배운 것을 메모리에 저장하세요." 시간이 지남에 따라 이는 서브에이전트를 더 효과적으로 만드는 지식 기반을 구축합니다.669* 작업을 완료한 후 메모리를 업데이트하도록 서브에이전트에게 요청하세요: "이제 끝났으니 배운 내용을 메모리에 저장해 줘." 시간이 지나면 서브에이전트를 더 효과적으로 만드는 지식 베이스가 구축됩니다.

663* 메모리 지침을 서브에이전트의 마크다운 파일에 직접 포함하여 자신의 지식 기반을 적극적으로 유지하도록 합니다:670* 서브에이전트가 자체 지식 베이스를 능동적으로 유지하도록 서브에이전트의 markdown 파일에 메모리 지침을 직접 포함하세요.

664 671 

665 ```markdown theme={null}672 ```markdown theme={null}

666 Update your agent memory as you discover codepaths, patterns, library673 Update your agent memory as you discover codepaths, patterns, library


671 678 

672#### 훅을 사용한 조건부 규칙679#### 훅을 사용한 조건부 규칙

673 680 

674도구 사용을 더 동적으로 제어하려면 `PreToolUse` 훅을 사용하여 실행 전에 작업을 검증합니다. 도구의 일부 작업을 허용하면서 다른 작업을 차단해야 할 때 유용합니다.681도구 사용을 보다 동적으로 제어하려면 `PreToolUse` 훅을 사용하여 작업이 실행되기 전에 검증하세요. 이는 도구의 일부 작업은 허용하면서 다른 작업은 차단해야 할 때 유용합니다.

675 682 

676이 예제는 읽기 전용 데이터베이스 쿼리만 허용하는 서브에이전트를 생성합니다. `PreToolUse` 훅은 각 Bash 명령이 실행되기 전에 `command`에 지정된 스크립트를 실행합니다:683이 예시는 읽기 전용 데이터베이스 쿼리만 허용하는 서브에이전트를 만듭니다. `PreToolUse` 훅은 각 Bash 명령이 실행되기 전에 `command`에 지정된 스크립트를 실행합니다.

677 684 

678```yaml theme={null}685```yaml theme={null}

679---686---


689---696---

690```697```

691 698 

692Claude Code는 [훅 입력을 JSON으로](/docs/ko/hooks#pretooluse-input) stdin을 통해 훅 명령에 전달합니다. 검증 스크립트는 이 JSON을 읽고, Bash 명령을 추출하고, [코드 2로 종료](/docs/ko/hooks#exit-code-2-behavior-per-event)하여 쓰기 작업을 차단합니다:699Claude Code는 stdin을 통해 훅 명령에 [훅 입력을 JSON으로 전달](/docs/ko/hooks#pretooluse-input)합니다. 검증 스크립트는 이 JSON을 읽고 Bash 명령을 추출한 다음, 쓰기 작업을 차단하기 위해 [종료 코드 2로 종료](/docs/ko/hooks#exit-code-2-behavior-per-event)합니다.

693 700 

694```bash theme={null}701```bash theme={null}

695#!/bin/bash702#!/bin/bash


707exit 0714exit 0

708```715```

709 716 

710macOS 및 Linux에서 스크립트를 실행 가능하게 만들거나, 훅이 실패하고 아무것도 차단하지 않습니다:717macOS와 Linux에서는 스크립트를 실행 가능하게 만드세요. 그렇지 않으면 훅이 아무것도 차단하지 못하고 실패합니다.

711 718 

712```bash theme={null}719```bash theme={null}

713chmod +x ./scripts/validate-readonly-query.sh720chmod +x ./scripts/validate-readonly-query.sh

714```721```

715 722 

716규칙을 테스트하려면 서브에이전트에 `UPDATE` 문을 실행하도록 요청하세요. 스크립트는 코드 2로 종료되고, Claude Code는 명령을 차단하고, 서브에이전트는 `Blocked: Only SELECT queries are allowed` 메시지를 봅니다.723규칙을 테스트하려면 서브에이전트에게 `UPDATE` 문을 실행하도록 요청하세요. 스크립트가 종료 코드 2로 종료되고, Claude Code가 명령을 차단하며, 서브에이전트에게 `Blocked: Only SELECT queries are allowed` 메시지가 표시됩니다.

717 724 

718[훅 입력](/docs/ko/hooks#pretooluse-input)에 대한 전체 입력 스키마와 [종료 코드](/docs/ko/hooks#exit-code-output)를 참조하여 종료 코드가 동작에 미치는 영향을 확인하세요. Windows에서 PowerShell로 훅 스크립트를 작성하고 [PowerShell에서 훅 실행](/docs/ko/hooks#windows-powershell-tool)에 표시된 대로 훅 항목에 `shell: powershell`을 추가하세요.725전체 입력 스키마는 [훅 입력](/docs/ko/hooks#pretooluse-input)을, 종료 코드가 동작에 미치는 영향은 [종료 코드](/docs/ko/hooks#exit-code-output)를 참조하세요. Windows에서는 [PowerShell에서 훅 실행](/docs/ko/hooks#windows-powershell-tool)에 나온 대로 훅 스크립트를 PowerShell로 작성하고 훅 항목에 `shell: powershell`을 추가하세요.

719 726 

720#### 특정 서브에이전트 비활성화727#### 특정 서브에이전트 비활성화

721 728 

722[설정](/docs/ko/settings-reference#permission-settings)의 `deny` 배열에 추가하여 Claude가 특정 서브에이전트를 사용하지 못하도록 할 수 있습니다. `Agent(subagent-name)` 형식을 사용합니다. 여기서 `subagent-name`은 서브에이전트의 name 필드와 일치합니다.729[설정](/docs/ko/settings-reference#permission-settings)의 `deny` 배열에 특정 서브에이전트를 추가하여 Claude가 해당 서브에이전트를 사용하지 못하게 할 수 있습니다. `Agent(subagent-name)` 형식을 사용하며, 여기서 `subagent-name`은 서브에이전트의 name 필드와 일치합니다.

723 730 

724```json theme={null}731```json theme={null}

725{732{


729}736}

730```737```

731 738 

732이는 기본 제공 및 사용자 정의 서브에이전트 모두에 작동합니다. `--disallowedTools` CLI 플래그를 사용할 수도 있습니다:739이는 기본 제공 서브에이전트와 사용자 정의 서브에이전트 모두에 작동합니다. `--disallowedTools` CLI 플래그를 사용할 수도 있습니다.

733 740 

734```bash theme={null}741```bash theme={null}

735claude --disallowedTools "Agent(Explore)"742claude --disallowedTools "Agent(Explore)"

736```743```

737 744 

738[권한 문서](/docs/ko/permissions#tool-specific-permission-rules)에서 권한 규칙에 대한 자세한 내용을 참조하세요.745권한 규칙에 대한 자세한 내용은 [권한 문서](/docs/ko/permissions#tool-specific-permission-rules)를 참조하세요.

739 746 

740### 서브에이전트에 대한 훅 정의747### 서브에이전트용 훅 정의

741 748 

742서브에이전트는 서브에이전트의 라이프사이클 중에 실행되는 [훅](/docs/ko/hooks)을 정의할 수 있습니다. 훅을 구성하는 두 가지 방법이 있습니다:749서브에이전트는 서브에이전트의 라이프사이클 동안 실행되는 [훅](/docs/ko/hooks)을 정의할 수 있습니다. 훅을 구성하는 방법은 두 가지입니다.

743 750 

744* **서브에이전트의 프론트매터에서**: 해당 서브에이전트가 활성화된 동안만 실행되는 훅을 정의합니다751* **서브에이전트의 frontmatter에서**: 해당 서브에이전트가 활성화되어 있는 동안에만 실행되는 훅을 정의합니다

745* **`settings.json`에서**: 서브에이전트 내에서도 발생하는 세션 전체 훅을 정의합니다. `PreToolUse`와 `PostToolUse`와 같은 도구 이벤트는 주 대화에서와 동일한 방식으로 서브에이전트의 도구 호출에 대해 발생하고, `SubagentStart`와 `SubagentStop`은 서브에이전트가 시작되거나 완료될 때 발생합니다752* **`settings.json`에서**: 서브에이전트 내부에서도 실행되는 세션 전체 훅을 정의합니다. `PreToolUse` 및 `PostToolUse`와 같은 도구 이벤트는 메인 대화에서와 같은 방식으로 서브에이전트의 도구 호출에 대해 실행되며, `SubagentStart` 및 `SubagentStop`은 서브에이전트가 시작하거나 완료될 때 실행됩니다

746 753 

747[설정 파일, 관리 정책 설정, 및 플러그인](/docs/ko/hooks#hook-locations)의 훅은 모두 서브에이전트 내에서 적용되므로, `settings.json`의 `PreToolUse` 훅은 서브에이전트가 사용하는 모든 도구 전에도 실행됩니다.754[설정 파일, 관리형 정책 설정, 플러그인](/docs/ko/hooks#hook-locations)의 훅은 모두 서브에이전트 내부에 적용되므로, `settings.json`의 `PreToolUse` 훅은 서브에이전트가 사용하는 모든 도구 이전에도 실행됩니다.

748 755 

749#### 서브에이전트 프론트매터의 훅756#### 서브에이전트 frontmatter의 훅

750 757 

751서브에이전트의 마크다운 파일에 직접 훅을 정의합니다. 이러한 훅은 해당 특정 서브에이전트가 활성화된 동안만 실행되고 완료될 때 정리됩니다.758서브에이전트의 markdown 파일에서 직접 훅을 정의합니다. 이러한 훅은 해당 서브에이전트가 활성화되어 있는 동안에만 실행되며 완료되면 정리됩니다.

752 759 

753> [!NOTE]760> [!NOTE]

754>761>

755> 프론트매터 훅은 에이전트가 Agent 도구 또는 @-멘션을 통해 서브에이전트로 생성될 때, 그리고 에이전트가 [`--agent`](#invoke-subagents-explicitly) 또는 `agent` 설정을 통해 주 세션으로 실행될 때 발생합니다. 주 세션 경우에는 [`settings.json`](/docs/ko/hooks)에 정의된 모든 훅과 함께 실행됩니다.762> frontmatter 훅은 에이전트가 Agent 도구나 @-멘션을 통해 서브에이전트로 생성될 때, 그리고 에이전트가 [`--agent`](#invoke-subagents-explicitly) 또는 `agent` 설정을 통해 메인 세션으로 실행될 때 실행됩니다. 메인 세션의 경우 [`settings.json`](/docs/ko/hooks)에 정의된 훅과 함께 실행됩니다.

756 763 

757프로젝트 수준 서브에이전트의 프론트매터 훅이 실행되도록 하려면, 에이전트 파일이 포함된 폴더에 대한 [작업 공간 신뢰 대화](/docs/ko/permissions#project-allow-rules-and-workspace-trust)를 수락하세요. `~/.claude/agents/`의 사용자 수준 서브에이전트의 훅과 `--agents`로 전달하는 정의의 훅은 이 단계 없이 실행됩니다. `--add-dir`로 신뢰된 작업 공간의 저장소 외부에서 폴더를 추가한 경우, 해당 폴더를 별도로 신뢰하세요. `.claude/agents/` 훅은 작업 공간의 신뢰를 상속하지 않습니다.764프로젝트 수준 서브에이전트의 frontmatter 훅을 실행하려면 에이전트 파일이 있는 폴더에 대해 [워크스페이스 신뢰 대화 상자](/docs/ko/permissions#project-allow-rules-and-workspace-trust)를 수락하세요. `~/.claude/agents/`의 사용자 수준 서브에이전트와 `--agents`로 전달한 정의의 훅은 이 단계 없이 실행됩니다. 신뢰된 워크스페이스의 저장소 외부에서 `--add-dir`로 폴더를 추가한 경우 해당 폴더를 별도로 신뢰하세요. 해당 폴더의 `.claude/agents/` 훅은 워크스페이스의 승인을 상속하지 않습니다.

758 765 

759폴더를 신뢰할 때까지, 서브에이전트는 여전히 실행되지만 Claude Code는 프론트매터 훅을 건너뛰고 폴더를 신뢰하는 방법을 설명하는 오류를 디버그 로그에 기록합니다. 이는 설정 파일의 훅에 대한 규칙보다 더 엄격합니다. 부모 폴더를 신뢰하는 것으로는 충분하지 않으며, `-p` 세션은 신뢰된 것으로 계산되지 않습니다. [폴더를 신뢰하기 전에 실행되는 것](/docs/ko/permissions#what-runs-before-you-trust-a-folder)은 두 가지를 비교합니다. v2.1.218 이전에는 신뢰하지 않은 폴더(비대화형 세션 포함)에서 프론트매터 훅을 실행할 수 있었습니다.766폴더를 신뢰하기 전까지 서브에이전트는 계속 실행되지만, Claude Code는 frontmatter 훅을 건너뛰고 폴더를 신뢰하는 방법을 설명하는 오류를 디버그 로그에 기록합니다. 이는 설정 파일의 훅에 대한 규칙보다 엄격한 규칙입니다. 부모 폴더를 신뢰하는 것만으로는 충분하지 않으며, `-p` 세션은 신뢰된 것으로 간주되지 않습니다. [폴더를 신뢰하기 전에 실행되는 항목](/docs/ko/permissions#what-runs-before-you-trust-a-folder)에서 두 규칙을 비교합니다. v2.1.218 이전에는 비대화형 세션을 포함하여 신뢰하지 않은 폴더에서도 frontmatter 훅이 실행될 수 있었습니다.

760 767 

761모든 [훅 이벤트](/docs/ko/hooks#hook-events)가 지원됩니다. 서브에이전트에 가장 일반적인 이벤트는:768모든 [훅 이벤트](/docs/ko/hooks#hook-events)가 지원됩니다. 서브에이전트에서 가장 일반적인 이벤트는 다음과 같습니다.

762 769 

763| 이벤트 | 매처 입력 | 발생 시기 |770| 이벤트 | Matcher 입력 | 실행 시점 |

764| :- | :- | :- |771| :- | :- | :- |

765| `PreToolUse` | 도구 이름 | 서브에이전트가 도구를 사용하기 전 |772| `PreToolUse` | 도구 이름 | 서브에이전트가 도구를 사용하기 전 |

766| `PostToolUse` | 도구 이름 | 서브에이전트가 도구를 사용한 후 |773| `PostToolUse` | 도구 이름 | 서브에이전트가 도구를 사용한 후 |

767| `Stop` | (없음) | 서브에이전트가 완료될 때(런타임에 `SubagentStop`으로 변환됨) |774| `Stop` | (없음) | 서브에이전트가 완료될 때(런타임에 `SubagentStop`으로 변환됨) |

768 775 

769이 예제는 `PreToolUse` 훅으로 Bash 명령을 검증하고 `PostToolUse`로 파일 편집 후 린터를 실행합니다:776이 예시는 `PreToolUse` 훅으로 Bash 명령을 검증하고 `PostToolUse`로 파일 편집 후 린터를 실행합니다.

770 777 

771```yaml theme={null}778```yaml theme={null}

772---779---


786---793---

787```794```

788 795 

789에이전트가 서브에이전트로 호출될 때, 프론트매터의 `Stop` 훅은 자동으로 `SubagentStop` 이벤트로 변환됩니다.796에이전트가 서브에이전트로 호출되면 frontmatter의 `Stop` 훅은 자동으로 `SubagentStop` 이벤트로 변환됩니다.

790 797 

791#### 서브에이전트 이벤트에 대한 프로젝트 수준 훅798#### 서브에이전트 이벤트에 대한 프로젝트 수준 훅

792 799 

793주 세션에서 서브에이전트 라이프사이클 이벤트에 응답하는 `settings.json`의 훅을 구성합니다.800메인 세션에서 서브에이전트 라이프사이클 이벤트에 응답하는 훅을 `settings.json`에 구성합니다.

794 801 

795| 이벤트 | 매처 입력 | 발생 시기 |802| 이벤트 | Matcher 입력 | 실행 시점 |

796| :- | :- | :- |803| :- | :- | :- |

797| `SubagentStart` | 에이전트 유형 이름 | 서브에이전트가 실행을 시작할 때 |804| `SubagentStart` | 에이전트 유형 이름 | 서브에이전트가 실행을 시작할 때 |

798| `SubagentStop` | 에이전트 유형 이름 | 서브에이전트가 완료될 때 |805| `SubagentStop` | 에이전트 유형 이름 | 서브에이전트가 완료될 때 |

799 806 

800두 이벤트 모두 이름으로 특정 에이전트 유형을 대상으로 하는 매처를 지원합니다. 매처 값은 프로젝트 수준 및 사용자 수준 서브에이전트의 프론트매터 `name`이거나, [플러그인 서브에이전트](/docs/ko/plugins/components#agents)의 `my-plugin:db-agent`와 같은 플러그인 범위 식별자입니다. 범위가 지정된 이름은 콜론을 포함하므로 [고정되지 않은 정규식](/docs/ko/hooks#matcher-patterns)으로 평가됩니다. `^my-plugin:db-agent$`와 같이 `^`와 `$`로 고정하여 해당 에이전트만 일치시킵니다.807두 이벤트 모두 이름으로 특정 에이전트 유형을 대상으로 하는 matcher를 지원합니다. matcher 값은 프로젝트 수준 및 사용자 수준 서브에이전트의 경우 에이전트의 frontmatter `name`이고, [플러그인 서브에이전트](/docs/ko/plugins/components#agents)의 경우 `my-plugin:db-agent`와 같은 플러그인 범위 식별자입니다. 범위 지정 이름에는 콜론이 포함되므로 [고정되지 않은 정규식](/docs/ko/hooks#matcher-patterns)으로 평가됩니다. 해당 에이전트만 일치시키려면 `^my-plugin:db-agent$`처럼 `^`와 `$`로 고정하세요.

801 808 

802이 예제는 `db-agent` 서브에이전트가 시작될 때만 설정 스크립트를 실행하고 모든 서브에이전트가 중지될 때 정리 스크립트를 실행합니다:809이 예시는 `db-agent` 서브에이전트가 시작될 때만 설정 스크립트를 실행하고, 어떤 서브에이전트든 중지될 때 정리 스크립트를 실행합니다.

803 810 

804```json theme={null}811```json theme={null}

805{812{


823}830}

824```831```

825 832 

826[훅](/docs/ko/hooks)에서 전체 훅 구성 형식을 참조하세요.833전체 훅 구성 형식은 [훅](/docs/ko/hooks)을 참조하세요.

827 834 

828## 서브에이전트로 작업하기835## 서브에이전트 사용하기

829 836 

830### 자동 위임 이해하기837### 자동 위임 이해하기

831 838 

832Claude는 요청의 작업 설명, 서브에이전트 구성의 `description` 필드, 현재 컨텍스트를 기반으로 작업을 자동으로 위임합니다. 사전 예방적 위임을 장려하려면 서브에이전트의 설명 필드에 "use proactively"와 같은 문구를 포함하십시오.839Claude는 요청의 작업 설명, 서브에이전트 구성의 `description` 필드, 현재 컨텍스트를 바탕으로 작업을 자동으로 위임합니다. 능동적인 위임을 유도하려면 서브에이전트의 description 필드에 "use proactively"와 같은 문구를 포함합니다.

833 840 

834설명은 간결하게 유지하십시오. Claude Code는 서브에이전트의 결합된 설명이 [15,000토큰 제한](/docs/ko/errors#agent-descriptions-are-over-the-15000-token-limit)을 초과할 때 시작 경고를 표시하며, 모든 서브에이전트를 계속 로드합니다.841설명은 간결하게 유지해야 합니다. 서브에이전트 설명의 합계가 [15,000 토큰 한도](/docs/ko/errors#agent-descriptions-are-over-the-15000-token-limit)를 넘으면 Claude Code는 시작 시 경고를 표시하지만, 모든 서브에이전트를 여전히 로드합니다.

835 842 

836서브에이전트가 [플러그인](/docs/ko/plugins/overview)에 포함되어 있다면, 한 번에 하나씩 확인하는 대신 현실적인 프롬프트에서 Claude가 얼마나 안정적으로 위임하는지 측정할 수 있습니다. [`claude plugin eval`](/docs/ko/plugin-evals)은 플러그인 포함 여부와 관계없이 각 프롬프트를 실행하고 결과를 점수 매깁니다.843서브에이전트가 [플러그인](/docs/ko/plugins/overview)에 포함되어 제공되는 경우, 하나씩 확인하는 대신 현실적인 프롬프트 전반에서 Claude가 얼마나 안정적으로 해당 서브에이전트에 위임하는지 측정할 수 있습니다. [`claude plugin eval`](/docs/ko/plugin-evals)은 각 프롬프트를 플러그인이 있을 때와 없을 때 실행하고 결과에 점수를 매깁니다.

837 844 

838### 서브에이전트 명시적으로 호출하기845### 서브에이전트 명시적으로 호출하기

839 846 

840자동 위임이 충분하지 않을 때, 서브에이전트를 직접 요청할 수 있습니다. 일회성 제안에서 세션 전체 기본값으로 확대되는 세 가지 패턴이 있습니다.847자동 위임만으로 충분하지 않을 때는 서브에이전트를 직접 요청할 수 있습니다. 일회성 제안부터 세션 전체 기본값까지 단계적으로 강해지는 세 가지 패턴이 있습니다.

841 848 

842* **자연어**: 프롬프트에서 서브에이전트의 이름을 지정하면 Claude가 위임 여부를 결정합니다.849* **자연어**: 프롬프트에서 서브에이전트 이름을 언급하면 Claude가 위임 여부를 결정합니다

843* **@-멘션**: 서브에이전트가 한 작업에 대해 실행되도록 보장합니다.850* **@-멘션**: 하나의 작업에 대해 해당 서브에이전트가 실행되도록 보장합니다

844* **세션 전체**: `--agent` 플래그 또는 `agent` 설정을 통해 전체 세션이 해당 서브에이전트로 실행됩니다.851* **세션 전체**: `--agent` 플래그 또는 `agent` 설정을 통해 세션 전체가 해당 서브에이전트로 실행됩니다

845 852 

846자연어의 경우 특별한 구문이 없습니다. 서브에이전트의 이름을 지정하면 Claude가 일반적으로 위임합니다.853자연어의 경우 특별한 구문이 없습니다. 서브에이전트 이름을 언급하면 Claude가 일반적으로 위임합니다.

847 854 

848```text wrap theme={null}855```text wrap theme={null}

849Use the test-runner subagent to fix failing tests856Use the test-runner subagent to fix failing tests

850Have the code-reviewer subagent look at my recent changes857Have the code-reviewer subagent look at my recent changes

851```858```

852 859 

853**서브에이전트를 @-멘션하세요.** `@`를 입력하고 파일을 @-멘션하는 것과 같은 방식으로 타입어헤드에서 서브에이전트를 선택합니다. 이렇게 하면 Claude에게 선택을 맡기지 않고 특정 서브에이전트가 실행되도록 보장합니다.860**서브에이전트를 @-멘션하기.** 파일을 @-멘션하는 것과 같은 방식으로 `@`를 입력하고 자동 완성 목록에서 서브에이전트를 선택합니다. 이렇게 하면 선택을 Claude에게 맡기지 않고 특정 서브에이전트가 실행되도록 보장할 수 있습니다.

854 861 

855```text wrap theme={null}862```text wrap theme={null}

856@"code-reviewer (agent)" look at the auth changes863@"code-reviewer (agent)" look at the auth changes

857```864```

858 865 

859전체 메시지는 여전히 Claude로 이동하며, Claude는 요청한 내용을 기반으로 서브에이전트의 작업 프롬프트를 작성합니다. @-멘션은 Claude가 호출하는 서브에이전트를 제어하며, 수신하는 프롬프트는 제어하지 않습니다.866전체 메시지는 여전히 Claude에게 전달되며, Claude는 요청한 내용을 바탕으로 서브에이전트의 작업 프롬프트를 작성합니다. @-멘션은 Claude가 어떤 서브에이전트를 호출할지를 제어할 뿐, 서브에이전트가 어떤 프롬프트를 받을지를 제어하지는 않습니다.

860 867 

861활성화된 [플러그인](/docs/ko/plugins/overview)에서 제공하는 서브에이전트는 `my-plugin:code-reviewer` 또는 플러그인이 [에이전트를 하위 폴더로 구성](#choose-the-subagent-scope)할 때 `my-plugin:review:security`와 같은 범위가 지정된 이름으로 타입어헤드에 나타납니다. 세션에서 현재 실행 중인 명명된 백그라운드 서브에이전트도 타입어헤드에 나타나며, 이름 옆에 상태를 표시합니다.868활성화된 [플러그인](/docs/ko/plugins/overview)이 제공하는 서브에이전트는 `my-plugin:code-reviewer`와 같은 범위가 지정된 이름으로 자동 완성 목록에 표시되며, 플러그인이 [에이전트를 하위 폴더로 구성](#choose-the-subagent-scope)한 경우에는 `my-plugin:review:security`와 같이 표시됩니다. 세션에서 현재 실행 중인 이름이 지정된 백그라운드 서브에이전트도 이름 옆에 상태와 함께 자동 완성 목록에 표시됩니다.

862 869 

863피커를 사용하지 않고 멘션을 수동으로 입력할 수도 있습니다. 로컬 서브에이전트의 경우 `@agent-<name>`, 플러그인 서브에이전트의 경우 `@agent-` 다음에 범위가 지정된 이름(예: `@agent-my-plugin:code-reviewer`)을 입력합니다. 이 형식을 입력하는 동안 타입어헤드는 에이전트가 아닌 파일 일치를 표시합니다. 에이전트 멘션은 제출할 때 여전히 해결됩니다.870선택기를 사용하지 않고 멘션을 직접 입력할 수도 있습니다. 로컬 서브에이전트는 `@agent-<name>`, 플러그인 서브에이전트는 `@agent-` 뒤에 범위가 지정된 이름을 붙입니다(예: `@agent-my-plugin:code-reviewer`). 이 형식을 입력하는 동안 자동 완성 목록에는 에이전트가 아닌 파일 일치 항목이 표시됩니다. 그래도 제출하면 에이전트 멘션은 정상적으로 처리됩니다.

864 871 

865**전체 세션을 서브에이전트로 실행하세요.** [`--agent <name>`](/docs/ko/cli-reference)을 전달하여 메인 스레드 자체가 해당 서브에이전트의 도구 제한 및 모델을 갖는 세션을 시작합니다.872**세션 전체를 서브에이전트로 실행하기.** [`--agent <name>`](/docs/ko/cli-reference)을 전달하면 메인 스레드 자체가 해당 서브에이전트의 도구 제한과 모델을 사용하는 세션을 시작합니다.

866 873 

867```bash theme={null}874```bash theme={null}

868claude --agent code-reviewer875claude --agent code-reviewer

869```876```

870 877 

871에이전트의 [프롬프트가 비어 있지 않으면](#choose-the-subagent-scope), 사용자 정의 서브에이전트의 시스템 프롬프트는 [`--system-prompt`](/docs/ko/cli-reference)와 같은 방식으로 기본 Claude Code 시스템 프롬프트를 완전히 대체합니다. `CLAUDE.md` 파일 및 프로젝트 메모리는 에이전트의 정의가 [`omitClaudeMd`](#supported-frontmatter-fields)를 설정하더라도 일반 메시지 흐름을 통해 계속 로드됩니다. 자체 프롬프트가 있는 사용자 정의 에이전트로 `-p`를 사용해 세션을 실행하면 [git 상태 스냅샷](/docs/ko/settings-reference#includegitinstructions) 없이 시작됩니다.878에이전트의 [프롬프트가 비어 있지](#choose-the-subagent-scope) 않는 한, 사용자 지정 서브에이전트의 시스템 프롬프트는 [`--system-prompt`](/docs/ko/cli-reference)와 같은 방식으로 기본 Claude Code 시스템 프롬프트를 완전히 대체합니다. 에이전트 정의에서 [`omitClaudeMd`](#supported-frontmatter-fields)를 설정한 경우에도 `CLAUDE.md` 파일과 프로젝트 메모리는 일반 메시지 흐름을 통해 여전히 로드됩니다. 자체 프롬프트가 있는 사용자 지정 에이전트로 `-p`를 사용해 세션을 실행하면 [git 상태 스냅샷](/docs/ko/settings-reference#includegitinstructions) 없이 시작됩니다.

872 879 

873에이전트 이름은 시작 헤더에 `@<name>`으로 나타나므로 활성화되었는지 확인할 수 있습니다.880에이전트 이름은 시작 헤더에 `@<name>`으로 표시되므로 활성화 여부를 확인할 수 있습니다.

874 881 

875이는 기본 제공 및 사용자 정의 서브에이전트에서 작동하며, 세션을 재개할 때 선택이 유지됩니다. Claude Code는 대화를 재개할 때 에이전트의 도구 제한 및 모델을 복원합니다. 재개할 때 에이전트가 더 이상 존재하지 않으면 세션은 기본 도구로 계속되며 [에이전트의 이름을 지정하는 경고](/docs/ko/errors#session-agent-no-longer-available)를 표시합니다. 두 경우 모두 시스템 프롬프트는 [재개된 대화에서 시스템 프롬프트 플래그](/docs/ko/cli-reference#system-prompt-flags-in-resumed-conversations)를 참조하십시오.882이 기능은 기본 제공 서브에이전트와 사용자 지정 서브에이전트 모두에서 작동하며, 세션을 재개할 때도 선택이 유지됩니다. Claude Code는 대화와 함께 에이전트의 도구 제한과 모델을 복원합니다. 재개할 때 에이전트가 더 이상 존재하지 않으면 세션은 기본 도구로 계속되며 [해당 에이전트 이름을 명시한 경고](/docs/ko/errors#session-agent-no-longer-available)가 표시됩니다. 두 경우의 시스템 프롬프트에 대해서는 [재개된 대화의 시스템 프롬프트 플래그](/docs/ko/cli-reference#system-prompt-flags-in-resumed-conversations)를 참조하세요.

876 883 

877플러그인에서 제공하는 서브에이전트의 경우 에이전트 이름만 전달하면 Claude Code가 찾습니다.884플러그인이 제공하는 서브에이전트의 경우 에이전트 이름만 전달해도 Claude Code가 찾아냅니다.

878 885 

879```bash theme={null}886```bash theme={null}

880claude --agent security-reviewer887claude --agent security-reviewer

881```888```

882 889 

883여러 플러그인이 같은 이름의 에이전트를 제공하는 경우 범위가 지정된 이름을 전달하여 구분합니다.890여러 플러그인이 같은 이름의 에이전트를 제공하는 경우 범위가 지정된 이름을 전달해 구분합니다.

884 891 

885```bash theme={null}892```bash theme={null}

886claude --agent my-plugin:security-reviewer893claude --agent my-plugin:security-reviewer

887```894```

888 895 

889플러그인이 에이전트를 `agents/` 디렉터리의 하위 폴더에 배치하는 경우 범위가 지정된 이름에 하위 폴더를 포함합니다(예: `claude --agent my-plugin:review:security`).896플러그인이 에이전트를 `agents/` 디렉터리의 하위 폴더에 두는 경우 범위가 지정된 이름에 하위 폴더를 포함합니다(예: `claude --agent my-plugin:review:security`).

890 897 

891프로젝트의 모든 세션에 대한 기본값으로 설정하려면 `.claude/settings.json`에서 `agent`를 설정합니다.898프로젝트의 모든 세션에서 기본값으로 사용하려면 `.claude/settings.json`에서 `agent`를 설정합니다.

892 899 

893```json theme={null}900```json theme={null}

894{901{


896}903}

897```904```

898 905 

899둘 다 있으면 CLI 플래그가 설정을 재정의합니다.906둘 다 있는 경우 CLI 플래그가 설정을 재정의합니다.

900 907 

901### 서브에이전트를 포그라운드 또는 백그라운드에서 실행하기908### 서브에이전트를 포그라운드 또는 백그라운드에서 실행하기

902 909 

903서브에이전트는 포그라운드 또는 백그라운드에서 실행할 수 있습니다.910서브에이전트는 포그라운드 또는 백그라운드에서 실행할 수 있습니다.

904 911 

905* **포그라운드 서브에이전트**는 완료될 때까지 메인 대화를 차단합니다. 권한 프롬프트는 나타나는 대로 전달됩니다.912* **포그라운드 서브에이전트**는 완료될 때까지 메인 대화를 차단합니다. 권한 프롬프트는 발생하는 즉시 사용자에게 전달됩니다.

906* **백그라운드 서브에이전트**는 계속 작업하는 동안 동시에 실행됩니다. 백그라운드 서브에이전트가 권한이 필요한 도구 호출에 도달하면 Claude Code는 메인 세션에서 프롬프트를 표시하고 요청하는 서브에이전트의 이름을 지정합니다. 승인하여 서브에이전트를 계속하거나 Esc를 눌러 해당 도구 호출 하나를 거부하되 서브에이전트는 중지하지 않습니다.913* **백그라운드 서브에이전트**는 사용자가 작업을 계속하는 동안 동시에 실행됩니다. 백그라운드 서브에이전트가 권한이 필요한 도구 호출에 도달하면 Claude Code는 메인 세션에 프롬프트를 표시하고 요청하는 서브에이전트의 이름을 알려 줍니다. 승인하면 서브에이전트가 계속 진행하고, Esc를 누르면 서브에이전트를 중지하지 않고 해당 도구 호출 하나만 거부합니다.

907 914 

908#### 백그라운드에서 실행되는 서브에이전트915#### 백그라운드에서 실행되는 서브에이전트

909 916 

910아무것도 구성하지 않은 경우, Claude가 메인 대화에서 생성하는 서브에이전트는 백그라운드에서 시작됩니다.917아무것도 구성하지 않은 경우, Claude가 메인 대화에서 생성하는 서브에이전트는 백그라운드에서 시작됩니다.

911 918 

912* **`claude -p` 및 Agent SDK**: Claude는 자체 판단에 따라 또는 사용자가 요청할 때 기다릴 수 있습니다.919* **`claude -p` 및 Agent SDK**: Claude는 자체 판단에 따라 또는 사용자가 요청할 때 대기할 수 있습니다.

913* **로컬 머신의 대화형 터미널 세션, VS Code 및 데스크톱 앱 세션**: Claude가 서브에이전트를 기다리도록 하려면 [기본적으로 켜져 있는](#turn-fork-mode-on-or-off) [포크 모드를 끄십시오](#let-claude-wait-for-a-subagent).920* **로컬 머신의 대화형 터미널 세션, VS Code 및 데스크톱 앱 세션**: Claude가 서브에이전트를 기다리도록 하려면 [기본적으로 켜져 있는](#turn-fork-mode-on-or-off) [포크 모드를 끕니다](#let-claude-wait-for-a-subagent).

914 921 

915`context: fork`를 가진 스킬의 경우 Claude Code는 포크 모드가 켜져 있는지 여부와 관계없이 [서브에이전트에서 스킬 실행](/docs/ko/skills#run-skills-in-a-subagent)의 규칙을 따릅니다.922`context: fork`가 있는 스킬의 경우, Claude Code는 포크 모드 여부와 관계없이 [서브에이전트에서 스킬 실행하기](/docs/ko/skills#run-skills-in-a-subagent)의 규칙을 따릅니다.

916 923 

917#### Claude가 서브에이전트를 기다리도록 하기924#### Claude가 서브에이전트를 기다리게 하기

918 925 

9191. `CLAUDE_CODE_FORK_SUBAGENT`를 `0`으로 설정하여 [포크 모드](#turn-fork-mode-on-or-off)를 끕니다. 예를 들어 [`settings.json`](/docs/ko/settings)에서 다음과 같이 설정합니다.9261. `CLAUDE_CODE_FORK_SUBAGENT`를 `0`으로 설정해 [포크 모드](#turn-fork-mode-on-or-off)를 끕니다. 예를 들어 [`settings.json`](/docs/ko/settings)에서 다음과 같이 설정합니다.

920 927 

921 ```json theme={null}928 ```json theme={null}

922 {929 {


928 935 

9292. 셸에서 `claude`를 다시 실행하거나 새 VS Code 대화를 엽니다.9362. 셸에서 `claude`를 다시 실행하거나 새 VS Code 대화를 엽니다.

930 937 

9313. 결과가 먼저 필요할 때 Claude에 기다리도록 요청합니다. 예: "run the reviewer subagent and wait for its report".9383. 결과가 먼저 필요할 때 Claude에게 기다리라고 요청합니다. 예: "run the reviewer subagent and wait for its report".

932 939 

933Claude가 기다리는 동안 계속 작업하려면 터미널에서 **Ctrl+B**를 누르거나 VS Code에서 [**Run in background**](/docs/ko/vs-code#move-a-running-command-or-subagent-to-the-background)를 클릭합니다.940Claude가 기다리는 동안 작업을 계속하려면 터미널에서 **Ctrl+B**를 누르거나 VS Code에서 [**Run in background**](/docs/ko/vs-code#move-a-running-command-or-subagent-to-the-background)를 클릭합니다.

934 941 

935포크 모드를 끄는 대신 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/ko/env-vars) 환경 변수를 `1`로 설정하면 Claude는 모든 서브에이전트를 기다리며 **Ctrl+B**를 포함한 백그라운드 작업이 꺼집니다.942포크 모드를 끄는 대신 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/ko/env-vars) 환경 변수를 `1`로 설정하면, Claude는 모든 서브에이전트를 기다리고 **Ctrl+B**를 포함한 백그라운드 작업이 꺼집니다.

936 943 

937#### 백그라운드 서브에이전트의 도구, 권한 및 결과944#### 백그라운드 서브에이전트의 도구, 권한 및 결과

938 945 

939백그라운드 서브에이전트는 대화 포크 및 [재개된](#resume-subagents) 포그라운드 서브에이전트를 제외하고 포그라운드 서브에이전트보다 [더 작은 기본 제공 도구 세트](#available-tools)로 실행됩니다.946백그라운드 서브에이전트는 대화 포크와 [재개된](#resume-subagents) 포그라운드 서브에이전트를 제외하고, 포그라운드 서브에이전트보다 [더 작은 기본 제공 도구 세트](#available-tools)로 실행됩니다.

940 947 

941백그라운드 서브에이전트는 메인 세션에서 모든 권한 프롬프트를 표시합니다. 해당 도구 호출 하나를 초과하여 지속되는 선택(예: 세션의 나머지 기간 동안 지속되는 권한 부여)으로 프롬프트 중 하나에 답하면 Claude Code는 메인 대화를 포함한 전체 세션에 답변을 적용합니다.948백그라운드 서브에이전트는 모든 권한 프롬프트를 메인 세션에 표시합니다. 세션의 나머지 기간 동안 유지되는 허용처럼 해당 도구 호출 하나를 넘어 지속되는 선택으로 이러한 프롬프트에 응답하면, Claude Code는 메인 대화를 포함한 세션 전체에 그 응답을 적용합니다.

942 949 

943백그라운드 서브에이전트는 백그라운드 [Bash 또는 PowerShell 명령](/docs/ko/tools-reference#background-commands)을 [해당 턴의 끝을 넘어 실행](/docs/ko/interactive-mode#how-backgrounding-works)할 수 있습니다. 해당 명령이 끝나면 Claude Code는 서브에이전트에 알림을 보냅니다.950백그라운드 서브에이전트는 백그라운드 [Bash 또는 PowerShell 명령](/docs/ko/tools-reference#background-commands)을 [자신의 턴이 끝난 뒤에도 실행 중인 상태로](/docs/ko/interactive-mode#how-backgrounding-works) 남겨 둘 수 있습니다. 해당 명령이 끝나면 Claude Code가 서브에이전트에게 알림을 보냅니다.

944 951 

945백그라운드 서브에이전트의 결과는 나중 턴의 완료 알림으로 Claude에 도달합니다. Claude는 해당 알림을 기다린 후 서브에이전트의 결과를 보고하며, 먼저 진행 상황을 묻는 경우 서브에이전트가 여전히 실행 중임을 보고합니다.952백그라운드 서브에이전트의 결과는 이후 턴에서 완료 알림으로 Claude에게 전달됩니다. Claude는 서브에이전트의 결과를 보고하기 전에 해당 알림을 기다리며, 그 전에 진행 상황을 물으면 서브에이전트가 아직 실행 중이라고 보고합니다.

946 953 

947#### 패널 및 작업 목록의 완료된 서브에이전트954#### 패널과 작업 목록의 완료된 서브에이전트

948 955 

949Claude Code는 서브에이전트가 끝난 방식에 따라 두 가지 방법 중 하나로 프롬프트 입력 아래의 서브에이전트 패널에서 백그라운드 서브에이전트의 행을 지웁니다.956Claude Code는 서브에이전트가 종료된 방식에 따라 두 가지 방법 중 하나로 프롬프트 입력 아래 서브에이전트 패널에서 백그라운드 서브에이전트의 행을 지웁니다.

950 957 

951* 서브에이전트가 성공적으로 완료되면 Claude Code는 행을 즉시 제거하고 [화면 읽기 모드](/docs/ko/accessibility)를 제외하고 30초 동안 바닥글에 `/tasks to see subagents`를 표시합니다. 이 30초 동안 [`/tasks`](/docs/ko/commands)를 실행하고 서브에이전트에서 `Enter`를 눌러 해당 트랜스크립트를 엽니다. v2.1.232 이전에는 Claude Code가 실패한 행과 같이 서브에이전트가 완료된 후 30초 동안 행을 유지했으며 바닥글 힌트를 표시하지 않았습니다.958* 서브에이전트가 성공적으로 완료되면 Claude Code는 해당 행을 즉시 제거하고, [스크린 리더 모드](/docs/ko/accessibility)를 제외하면 푸터에 30초 동안 `/tasks to see subagents`를 표시합니다. 이 30초 동안 [`/tasks`](/docs/ko/commands)를 실행하고 서브에이전트에서 `Enter`를 누르면 트랜스크립트를 열 수 있습니다. v2.1.232 이전에는 Claude Code가 실패한 서브에이전트와 마찬가지로 완료 후 30초 동안 행을 유지했으며 푸터 힌트를 표시하지 않았습니다.

952* 서브에이전트가 실패하거나 중지하면 Claude Code는 행을 30초 동안 유지합니다. 행을 더 빨리 지우려면 선택하고 `x`를 누릅니다.959* 서브에이전트가 실패하거나 사용자가 중지하면 Claude Code는 해당 행을 30초 동안 유지합니다. 행을 더 빨리 지우려면 행을 선택하고 `x`를 누릅니다.

953 960 

954완료된 백그라운드 서브에이전트는 [`/tasks`](/docs/ko/commands)에 나열된 상태로 유지되며, 완료로 표시되고 실행 중인 작업 아래에 정렬되며 바닥글 힌트와 동일한 30초 동안 유지됩니다. 세부 정보 보기는 서브에이전트가 완료될 때 열린 상태로 유지됩니다. 실패하거나 중지한 서브에이전트는 목록을 떠납니다. v2.1.208 이전에는 완료된 서브에이전트가 완료되는 순간 목록을 떠났고 세부 정보 보기가 닫혔습니다.961완료된 백그라운드 서브에이전트는 푸터 힌트와 같은 30초 동안 [`/tasks`](/docs/ko/commands)에 완료로 표시된 채 실행 중인 작업 아래에 정렬되어 남아 있습니다. 서브에이전트가 완료되어도 상세 보기는 열린 상태로 유지됩니다. 실패하거나 사용자가 중지한 서브에이전트는 목록에서 사라집니다. v2.1.208 이전에는 완료된 서브에이전트가 완료되는 즉시 목록에서 사라지고 상세 보기도 닫혔습니다.

955 962 

956### 서브에이전트 이름963### 서브에이전트 이름

957 964 

958Claude는 Agent 도구 호출에서 `name` 매개변수를 전달하여 서브에이전트에 이름을 지정할 수 있으며, 먼저 묻지 않고 자체적으로 이름을 지정할 수 있습니다. 이름은 서브에이전트를 주소 지정 가능하게 만듭니다. Claude는 완료 후 [이름으로 메시지를 보내거나 재개](#resume-subagents)할 수 있습니다.965[에이전트 팀](/docs/ko/agent-teams#enable-agent-teams)을 활성화한 상태로 세션을 시작하면, Claude는 Agent 도구 호출에 `name` 매개변수를 전달해 서브에이전트에 이름을 지정할 수 있습니다. 사용자에게 먼저 묻지 않고 스스로 그렇게 할 수도 있습니다. 이름을 지정하면 서브에이전트를 지칭할 수 있게 되어, 서브에이전트가 완료된 후 Claude가 [이름으로 메시지를 보내거나 재개](#resume-subagents)할 수 있습니다.

959 966 

960[에이전트 팀](/docs/ko/agent-teams)이 활성화된 대화형 세션에서 Claude가 메인 대화에서 `name`으로 생성하는 서브에이전트는 호출이 [포크](#fork-the-current-conversation)이거나 호출 자체에서 `isolation`을 전달하지 않으면 팀원으로 시작합니다. 서브에이전트의 frontmatter의 `isolation` 값은 이를 방지하지 않으며 팀원은 메인 세션의 작업 디렉터리에서 실행됩니다. [Claude가 에이전트 팀을 시작하는 방법](/docs/ko/agent-teams#how-claude-starts-agent-teams)을 참조하십시오.967[에이전트 팀](/docs/ko/agent-teams)이 활성화된 대화형 세션에서 Claude가 메인 대화에서 `name`과 함께 생성하는 서브에이전트는 팀원으로 시작됩니다. 단, 해당 호출이 [포크](#fork-the-current-conversation)인 경우나 호출 자체에 `isolation`을 전달하는 경우는 예외이며, 이 두 경우에는 팀원으로 시작되지 않습니다. 서브에이전트의 frontmatter에 있는 `isolation` 값으로는 팀원으로 시작되는 것을 막을 수 없으며, 이때 팀원은 메인 세션의 작업 디렉터리에서 실행됩니다. [Claude가 에이전트 팀을 시작하는 방법](/docs/ko/agent-teams#how-claude-starts-agent-teams)을 참조하세요.

961 968 

962### 서브에이전트의 API 오류969### 서브에이전트의 API 오류

963 970 

964무언가가 [서브에이전트의 응답을 스트림 중간에 중단](/docs/ko/errors#the-response-above-may-be-incomplete)하고 부분 응답에 텍스트가 포함되지만 도구 호출이 없으면 Claude Code는 실행을 종료하지 않고 서브에이전트에 계속하도록 프롬프트합니다. 이는 대화형 세션에서도 발생합니다. 실행은 이러한 연속이 소진될 때만 오류에서 종료됩니다.971[서브에이전트의 응답이 스트리밍 도중 중단되고](/docs/ko/errors#the-response-above-may-be-incomplete) 부분 응답에 텍스트는 있지만 도구 호출이 없는 경우, Claude Code는 실행을 종료하는 대신 서브에이전트에게 계속하도록 요청합니다. 이는 대화형 세션에서도 마찬가지입니다. 이러한 계속 요청을 모두 소진한 경우에만 실행이 오류로 종료됩니다.

965 972 

966API 오류(예: 사용 한도 또는 반복된 서버 오류)로 인해 실행이 종료되는 서브에이전트는 해당 실패를 Claude에 다시 보고합니다. Claude가 수신하는 내용은 서브에이전트가 실행된 위치에 따라 다릅니다.973사용 한도나 반복되는 서버 오류와 같은 API 오류로 실행이 종료된 서브에이전트는 그 실패를 Claude에게 보고합니다. Claude가 받는 내용은 서브에이전트가 실행된 위치에 따라 다릅니다.

967 974 

968* **포그라운드**: 속도 제한, 과부하 또는 서버 오류가 이미 텍스트 출력을 생성한 서브에이전트를 중단하면 Agent 도구는 서브에이전트가 중단되었고 작업을 완료하지 못했다는 메모와 함께 해당 부분 출력을 반환합니다. 아무것도 생성하지 않았거나 유일한 출력이 도구 호출인 서브에이전트는 [`Agent terminated early due to an API error`](/docs/ko/errors#agent-terminated-early-due-to-an-api-error)로 실패하며 오류 세부 정보가 뒤따릅니다.975* **포그라운드**: 속도 제한, 과부하 또는 서버 오류로 이미 텍스트 출력을 생성한 서브에이전트가 중단되면, Agent 도구는 서브에이전트가 중단되어 작업을 완료하지 못했다는 메모와 함께 해당 부분 출력을 반환합니다. 아무것도 생성하지 않았거나 출력이 도구 호출뿐인 서브에이전트는 [`Agent terminated early due to an API error`](/docs/ko/errors#agent-terminated-early-due-to-an-api-error)와 그 뒤의 오류 세부 정보와 함께 실패합니다.

969* **백그라운드**: 서브에이전트는 실패로 표시되며 Claude가 종료될 때 수신하는 메시지는 API 오류의 이름을 지정하고 서브에이전트의 마지막 출력을 포함하므로 부분 작업이 손실되지 않습니다.976* **백그라운드**: 서브에이전트는 실패로 표시되며, 종료 시 Claude가 받는 메시지에는 API 오류 이름과 서브에이전트의 마지막 출력이 포함되므로 부분 작업이 손실되지 않습니다.

977 

978서브에이전트의 보고서가 다음 줄로 시작하면, 해당 서브에이전트는 폴백 모델로 작업을 마친 것입니다.

979 

980```text theme={null}

981⚠ This agent switched to <model> because its earlier model could not be used.

982```

970 983 

971[폴백 모델 체인](/docs/ko/model-config#fallback-model-chains)을 구성하고 서브에이전트가 체인이 다루는 실패(예: 모델을 사용할 수 없음)를 만나면 Claude Code는 서브에이전트를 요청을 수락하는 체인의 첫 번째 모델로 전환합니다. 서브에이전트는 오류에서 종료되지 않고 계속 작동합니다.984[폴백 모델 체인](/docs/ko/model-config#fallback-model-chains)을 구성했고 서브에이전트가 모델을 사용할 수 없는 경우와 같이 체인이 처리하는 실패를 만나면, Claude Code는 서브에이전트를 체인에서 요청을 수락하는 첫 번째 모델로 전환합니다. 서브에이전트는 오류로 종료되지 않고 작업을 계속합니다.

972 985 

973기본 API 오류가 해결되면 Claude에 작업을 다시 시도하거나 [서브에이전트를 재개](#resume-subagents)하도록 요청합니다.986근본적인 API 오류가 해소되면 Claude에게 작업을 재시도하거나 [서브에이전트를 재개](#resume-subagents)하도록 요청합니다.

974 987 

975### 서브에이전트 출력 스캔988### 서브에이전트 출력 검사

976 989 

977Claude Code는 Claude가 읽기 전에 각 서브에이전트의 최종 보고서를 스캔합니다. 서브에이전트는 파일, 웹 페이지 또는 검토하지 않은 명령 출력을 읽었을 수 있으며 이러한 소스의 텍스트는 메인 대화를 대상으로 하는 지시사항을 전달할 수 있습니다. 스캔은 아무것도 제거하거나 다시 표현하지 않습니다. 보고서에서 알 수 있는 두 가지 종류의 변경을 만듭니다.990Claude Code는 Claude가 읽기 전에 각 서브에이전트의 최종 보고서를 검사합니다. 서브에이전트는 사용자가 검토한 적 없는 파일, 웹 페이지 또는 명령 출력을 읽었을 수 있으며, 이러한 출처의 텍스트에는 메인 대화를 겨냥한 지시가 포함되어 있을 수 있습니다. 검사는 어떤 내용도 제거하거나 바꿔 쓰지 않으며, 보고서에서 확인할 수 있는 두 가지 종류의 변경만 수행합니다.

978 991 

979* **백슬래시 삽입**: 스캔은 `<system-reminder>` 태그 또는 `Human:` 또는 `Assistant:`로 시작하는 줄과 같이 Claude Code 자체의 출력을 모방하는 텍스트에 백슬래시를 삽입하므로 모방이 대화의 일부로 잘못 인식되지 않고 일반 텍스트로 읽힙니다.992* **백슬래시 삽입**: `<system-reminder>` 태그나 `Human:` 또는 `Assistant:`로 시작하는 줄처럼 Claude Code 자체 출력을 모방하는 텍스트에 백슬래시를 삽입하여, 모방된 텍스트가 대화의 일부로 오인되지 않고 일반 텍스트로 읽히게 합니다.

980* **마커 줄**: 스캔은 `<system-reminder>`와 같은 태그를 모방하거나 `bypassPermissions` 또는 `--dangerously-skip-permissions`와 같은 권한 설정을 언급할 때 `[harness: subagent output matched instruction-shaped pattern(s):`로 시작하는 줄을 앞에 붙입니다. 권한 설정 언급은 마커 줄을 받지만 텍스트 자체는 작성된 대로 유지됩니다.993* **마커 줄**: 보고서가 `<system-reminder>` 같은 태그를 모방하거나 `bypassPermissions` 또는 `--dangerously-skip-permissions`와 같은 권한 설정을 언급하면 `[harness: subagent output matched instruction-shaped pattern(s):`로 시작하는 줄을 앞에 추가합니다. 권한 설정 언급에는 마커 줄이 추가되지만 텍스트 자체는 작성된 그대로 유지됩니다.

981 994 

982스캔은 콘텐츠가 악의적인지 판단하지 않으며 보고서의 지시사항이 할 수 있는 일을 변경하지 않습니다. 보고서로 인해 Claude가 수행하는 도구 호출은 여전히 세션의 [권한 확인](/docs/ko/permissions) 및 [샌드박싱](/docs/ko/sandboxing)을 거칩니다. [서브에이전트가 도달할 수 있는 것을 제한](#control-subagent-capabilities)하는 것의 대체물이 아닙니다.995검사는 콘텐츠가 악의적인지 판단하지 않으며, 보고서 속 지시가 할 수 있는 일을 바꾸지도 않습니다. 보고서로 인해 Claude가 수행하는 도구 호출은 여전히 세션의 [권한 검사](/docs/ko/permissions)와 [샌드박싱](/docs/ko/sandboxing)을 거칩니다. 검사가 [서브에이전트가 접근할 수 있는 범위를 제한하는 것](#control-subagent-capabilities)을 대체하지는 않습니다.

983 996 

984Claude의 결과로 반환되는 보고서는 서브에이전트 출력으로 표시하는 헤더 아래에도 도착합니다. 헤더는 보고서 내의 지시사항 또는 승인 주장이 서브에이전트의 말이며 사용자로부터 권한을 갖지 않음을 나타냅니다.997서브에이전트의 결과로 Claude에게 반환되는 보고서에는 서브에이전트 출력임을 나타내는 헤더도 붙습니다. 이 헤더는 보고서 안의 지시나 승인 주장이 서브에이전트의 말이며 사용자로부터 받은 권한이 없음을 명시합니다.

985 998 

986[백그라운드 서브에이전트의 보고서](#run-subagents-in-foreground-or-background)는 자동화된 이벤트로 표시되는 완료 알림 내에 도착하며 사용자로부터의 메시지가 아닙니다.999[백그라운드 서브에이전트의 보고서](#run-subagents-in-foreground-or-background)는 완료 알림 안에 담겨 도착하며, 이 알림은 사용자의 메시지가 아닌 자동화된 이벤트로 표시됩니다.

987 1000 

988### 일반적인 패턴1001### 일반적인 패턴

989 1002 

990#### 대용량 작업 격리1003#### 대량 출력 작업 격리하기

991 1004 

992서브에이전트의 가장 효과적인 사용 중 하나는 대량의 출력을 생성하는 작업을 격리하는 것입니다. 테스트 실행, 문서 가져오기 또는 로그 파일 처리는 상당한 컨텍스트를 소비할 수 있습니다. 이를 서브에이전트에 위임하면 자세한 출력은 서브에이전트의 컨텍스트에 유지되고 관련 요약만 메인 대화로 반환됩니다.1005서브에이전트의 가장 효과적인 용도 중 하나는 대량의 출력을 생성하는 작업을 격리하는 것입니다. 테스트 실행, 문서 가져오기, 로그 파일 처리는 상당한 컨텍스트를 소비할 수 있습니다. 이러한 작업을 서브에이전트에 위임하면 장황한 출력은 서브에이전트의 컨텍스트에 머물고 관련 요약만 메인 대화로 돌아옵니다.

993 1006 

994```text wrap theme={null}1007```text wrap theme={null}

995Use a subagent to run the test suite and report only the failing tests with their error messages1008Use a subagent to run the test suite and report only the failing tests with their error messages

996```1009```

997 1010 

998#### 병렬 연구 실행1011#### 병렬 조사 실행하기

999 1012 

1000독립적인 조사의 경우 여러 서브에이전트를 생성하여 동시에 작업하도록 합니다.1013독립적인 조사의 경우 여러 서브에이전트를 생성해 동시에 작업하도록 합니다.

1001 1014 

1002```text wrap theme={null}1015```text wrap theme={null}

1003Research the authentication, database, and API modules in parallel using separate subagents1016Research the authentication, database, and API modules in parallel using separate subagents

1004```1017```

1005 1018 

1006각 서브에이전트는 자신의 영역을 독립적으로 탐색한 다음 Claude가 결과를 종합합니다. 이는 연구 경로가 서로 의존하지 않을 때 가장 잘 작동합니다.1019각 서브에이전트가 자기 영역을 독립적으로 탐색하면 Claude가 결과를 종합합니다. 이 방법은 조사 경로가 서로 의존하지 않을 때 가장 효과적입니다.

1007 1020 

1008> [!WARNING]1021> [!WARNING]

1009>1022>

1010> 서브에이전트가 완료되면 해당 결과가 메인 대화로 반환됩니다. 각각 자세한 결과를 반환하는 많은 서브에이전트를 실행하면 상당한 컨텍스트를 소비할 수 있으며 각 서브에이전트는 실행되는 동안 자신의 토큰을 소비합니다.1023> 서브에이전트가 완료되면 결과가 메인 대화로 돌아옵니다. 각각 상세한 결과를 반환하는 서브에이전트를 많이 실행하면 상당한 컨텍스트를 소비할 수 있으며, 각 서브에이전트는 실행되는 동안 자체적으로 토큰을 사용합니다.

1011 1024 

1012병렬로 계속 실행되어야 하거나 하나의 컨텍스트 윈도우에 맞지 않는 작업의 경우 [별도의 세션](/docs/ko/agents)에서 실행하고 Claude가 [세션 간에 결과를 전달](/docs/ko/cross-session-messaging)하도록 합니다.1025계속 병렬로 실행되어야 하거나 하나의 컨텍스트 윈도우에 담기지 않는 작업은 [별도의 세션](/docs/ko/agents)에서 실행하고 Claude가 [세션 간에 결과를 전달](/docs/ko/cross-session-messaging)하도록 합니다.

1013 1026 

1014#### 서브에이전트 연결1027#### 서브에이전트 연결하기

1015 1028 

1016다단계 워크플로의 경우 Claude에 서브에이전트를 순차적으로 사용하도록 요청합니다. 각 서브에이전트는 작업을 완료하고 결과를 Claude로 반환하며, Claude는 관련 컨텍스트를 다음 서브에이전트로 전달합니다.1029여러 단계로 이루어진 워크플로의 경우 Claude에게 서브에이전트를 순서대로 사용하도록 요청합니다. 각 서브에이전트는 작업을 완료하고 결과를 Claude에게 반환하며, Claude는 관련 컨텍스트를 다음 서브에이전트에 전달합니다.

1017 1030 

1018```text wrap theme={null}1031```text wrap theme={null}

1019Use the code-reviewer subagent to find performance issues, then use the optimizer subagent to fix them1032Use the code-reviewer subagent to find performance issues, then use the optimizer subagent to fix them

1020```1033```

1021 1034 

1022### 서브에이전트와 메인 대화 중 선택1035### 서브에이전트와 메인 대화 중 선택하기

1023 1036 

1024**메인 대화**를 사용하는 경우:1037다음과 같은 경우 **메인 대화**를 사용합니다.

1025 1038 

1026* 작업에 빈번한 왕복 또는 반복적 개선이 필요합니다.1039* 작업에 잦은 주고받기나 반복적인 개선이 필요한 경우

1027* 계획, 구현 및 테스트와 같이 여러 단계가 상당한 컨텍스트를 공유합니다.1040* 계획, 구현, 테스트처럼 여러 단계가 상당한 컨텍스트를 공유하는 경우

1028* 빠르고 대상이 지정된 변경을 수행하고 있습니다.1041* 빠르고 목표가 명확한 변경을 하는 경우

1029* 지연 시간이 중요합니다. [포크](#fork-the-current-conversation)가 아닌 서브에이전트는 새로 시작하며 컨텍스트를 수집하는 데 시간이 걸릴 수 있습니다.1042* 지연 시간이 중요한 경우. [포크](#fork-the-current-conversation)가 아닌 서브에이전트는 새로 시작하므로 컨텍스트를 수집하는 데 시간이 필요할 수 있습니다

1030 1043 

1031**서브에이전트**를 사용하는 경우:1044다음과 같은 경우 **서브에이전트**를 사용합니다.

1032 1045 

1033* 작업이 메인 컨텍스트에 필요하지 않은 자세한 출력을 생성합니다.1046* 작업이 메인 컨텍스트에 필요하지 않은 장황한 출력을 생성하는 경우

1034* 특정 도구 제한 또는 권한을 적용하려고 합니다.1047* 특정 도구 제한이나 권한을 강제하려는 경우

1035* 작업이 자체 포함되어 있으며 요약을 반환할 수 있습니다.1048* 작업이 독립적이며 요약을 반환할 수 있는 경우

1036 1049 

1037메인 대화 컨텍스트가 아닌 격리된 서브에이전트 컨텍스트에서 실행되는 재사용 가능한 프롬프트 또는 워크플로를 원할 때 [스킬](/docs/ko/skills)을 대신 고려하십시오.1050격리된 서브에이전트 컨텍스트가 아닌 메인 대화 컨텍스트에서 실행되는 재사용 가능한 프롬프트나 워크플로가 필요하다면 대신 [스킬](/docs/ko/skills)을 고려하세요.

1038 1051 

1039대화에 이미 있는 것에 대한 질문의 경우 서브에이전트 대신 [`/btw`](/docs/ko/interactive-mode#side-questions-with-%2Fbtw)를 사용하십시오. 전체 컨텍스트를 보지만 도구 액세스가 없으며 답변이 기록에 추가되지 않습니다.1052대화에 이미 있는 내용에 대한 질문이라면 서브에이전트 대신 [`/btw`](/docs/ko/interactive-mode#side-questions-with-%2Fbtw)를 사용합니다. 전체 컨텍스트를 볼 수 있지만 도구에는 접근할 수 없으며, 답변은 기록에 추가되지 않습니다.

1040 1053 

1041### 서브에이전트가 자신의 서브에이전트를 생성하도록 허용1054### 서브에이전트가 자체 서브에이전트를 생성하게 하기

1042 1055 

1043기본적으로 서브에이전트는 메인 대화 아래로 최대 3개 계층까지 자신의 서브에이전트를 생성할 수 있습니다. 깊이 제한에서 Claude Code는 [포크](#fork-the-current-conversation)를 제외한 모든 서브에이전트에서 `Agent` 도구를 보류하므로 제한에 있는 서브에이전트는 위임된 작업을 자체적으로 수행하고 하나의 요약을 반환합니다. 제한에 있는 포크는 상속된 도구 목록에서 `Agent`를 유지하지만 도구는 생성하는 대신 오류를 반환합니다.1056기본적으로 서브에이전트는 메인 대화 아래 세 계층까지 자체 서브에이전트를 생성할 수 있습니다. 깊이 한도에 도달하면 Claude Code는 [포크](#fork-the-current-conversation)를 제외한 모든 서브에이전트에서 `Agent` 도구를 제공하지 않으므로, 한도에 있는 서브에이전트는 위임받은 작업을 직접 수행하고 하나의 요약을 반환합니다. 한도에 있는 포크는 상속받은 도구 목록에 `Agent`를 유지하지만, 이 도구는 서브에이전트를 생성하는 대신 오류를 반환합니다.

1044 1057 

1045중첩된 서브에이전트는 자체적으로 병렬 부작업으로 분할되는 위임된 작업에 적합합니다. 예를 들어 검토자 서브에이전트가 발견 사항당 검증자를 발송합니다. 기본적으로 생성하는 서브에이전트는 각 중첩된 서브에이전트의 보고서를 기다립니다.1058중첩된 서브에이전트는 각 결과마다 검증자를 보내는 리뷰어 서브에이전트처럼, 위임받은 작업 자체가 병렬 하위 작업으로 나뉘는 경우에 적합합니다. 기본적으로 생성하는 서브에이전트는 각 중첩된 서브에이전트의 보고서를 기다립니다.

1046 1059 

1047* **대화형 터미널 세션**: 백그라운드 서브에이전트를 시작하는 서브에이전트는 완료하기 전에 그 결과를 기다리므로 최상위 서브에이전트의 요약만 사용자에게 반환됩니다.1060* **대화형 터미널 세션**: 백그라운드 서브에이전트를 시작한 서브에이전트는 완료되기 전에 그 결과를 기다리므로, 최상위 서브에이전트의 요약만 사용자에게 돌아옵니다.

1048* **`claude -p` 및 Agent SDK**: [포크 모드](#turn-fork-mode-on-or-off)가 켜져 있는 동안 생성하는 서브에이전트는 기다립니다. 포크 모드를 끄면 중첩된 서브에이전트는 대신 [백그라운드](#run-subagents-in-foreground-or-background)에서 시작됩니다. 생성하는 서브에이전트는 백그라운드 중첩 서브에이전트를 기다리지 않으며, 중첩 서브에이전트가 생성한 서브에이전트보다 오래 실행되면 메인 대화로 보고합니다.1061* **`claude -p` 및 Agent SDK**: [포크 모드](#turn-fork-mode-on-or-off)가 켜져 있는 동안에는 생성하는 서브에이전트가 기다립니다. 포크 모드를 끄면 중첩된 서브에이전트는 대신 [백그라운드](#run-subagents-in-foreground-or-background)에서 시작됩니다. 생성하는 서브에이전트는 백그라운드 중첩 서브에이전트를 기다리지 않으며, 중첩 서브에이전트가 생성한 서브에이전트보다 오래 실행되면 메인 대화에 보고합니다.

1049 1062 

1050제한을 변경하려면 [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/ko/env-vars)를 메인 대화 아래에 원하는 서브에이전트 계층 수로 설정합니다. 예를 들어 [`settings.json`](/docs/ko/settings)의 이 항목은 중첩을 2개 계층으로 제한합니다.1063한도를 변경하려면 [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/ko/env-vars)를 메인 대화 아래에 두려는 서브에이전트 계층 수로 설정합니다. 예를 들어 [`settings.json`](/docs/ko/settings)의 다음 항목은 중첩을 두 계층으로 제한합니다.

1051 1064 

1052```json theme={null}1065```json theme={null}

1053{1066{


1057}1070}

1058```1071```

1059 1072 

1060이 값을 사용하면 서브에이전트는 자신의 두 번째 계층으로 위임할 수 있으며 해당 두 번째 계층은 더 이상 위임할 수 없습니다. `1`로 설정하여 중첩을 끕니다.1073이 값을 사용하면 서브에이전트가 자체 두 번째 계층에 위임할 수 있으며, 두 번째 계층은 더 이상 위임할 수 없습니다. 중첩을 끄려면 `1`로 설정합니다.

1061 1074 

1062중첩된 서브에이전트는 최상위 서브에이전트와 같은 방식으로 구성되며 동일한 [범위](#choose-the-subagent-scope)에서 해결됩니다. 읽기 전용으로 유지되어야 하는 검토자와 같이 하나의 서브에이전트가 중첩이 켜져 있는 동안 생성되지 않도록 하려면 [`tools`](#available-tools) 목록에서 `Agent`를 생략하거나 `disallowedTools`에 추가합니다.1075중첩된 서브에이전트는 최상위 서브에이전트와 같은 방식으로 구성되며 같은 [범위](#choose-the-subagent-scope)에서 확인됩니다. 중첩이 켜져 있는 동안 읽기 전용으로 유지해야 하는 리뷰어처럼 특정 서브에이전트가 생성하지 못하게 하려면, 해당 서브에이전트의 [`tools`](#available-tools) 목록에서 `Agent`를 빼거나 `disallowedTools`에 추가합니다.

1063 1076 

1064터미널에서 Claude Code는 중첩된 서브에이전트를 프롬프트 입력 아래의 서브에이전트 패널에 트리로 표시하고 패널에서 여전히 자손이 있는 각 행을 `(+N)` 개수로 표시합니다. 행을 열어 해당 서브에이전트의 형제 및 직계 자식을 `main`으로 돌아가는 경로와 함께 봅니다.1077터미널에서 Claude Code는 프롬프트 입력 아래 서브에이전트 패널에 중첩된 서브에이전트를 트리로 표시하며, 패널에 아직 하위 항목이 있는 각 행에는 그 수를 나타내는 `(+N)`을 표시합니다. 행을 열면 해당 서브에이전트의 형제 항목과 직속 하위 항목이 `main`으로 돌아가는 경로와 함께 표시됩니다.

1065 1078 

1066> [!NOTE]1079> [!NOTE]

1067>1080>

1068> 이전 버전은 다른 기본값을 사용했습니다.1081> 이전 버전은 다른 기본값을 사용했습니다.

1069>1082>

1070> * **v2.1.172부터 v2.1.216까지**: 서브에이전트는 기본적으로 중첩될 수 있으며 최대 5개 계층 깊이까지 가능했으며 제한을 변경할 수 없었습니다.1083> * **v2.1.172부터 v2.1.216까지**: 서브에이전트는 기본적으로 최대 다섯 계층까지 중첩할 수 있었으며, 한도를 변경할 수 없었습니다.

1071> * **v2.1.217부터 v2.1.218까지**: 제한이 기본값 1로 설정되어 있어 높이지 않으면 서브에이전트가 자신의 것을 생성할 수 없었습니다. v2.1.219는 기본값을 3으로 올렸습니다.1084> * **v2.1.217부터 v2.1.218까지**: 한도의 기본값이 1이었으므로 한도를 높이지 않으면 서브에이전트가 자체 서브에이전트를 생성할 수 없었습니다. v2.1.219에서 기본값이 3으로 높아졌습니다.

1072 1085 

1073### 동시 서브에이전트 제한1086### 동시 서브에이전트 한도

1074 1087 

1075두 제한이 서브에이전트 사용을 제어하며 각각 자신의 변수를 가집니다. 이 제한은 Claude가 너무 많은 서브에이전트가 실행되는 동안 더 많은 서브에이전트를 생성하지 못하도록 하며 [깊이 제한](#let-subagents-spawn-their-own-subagents)은 서브에이전트가 얼마나 깊게 중첩되는지를 제한합니다. 세션 동안 Claude가 생성할 수 있는 서브에이전트의 총 개수에는 제한이 없습니다.1088두 가지 한도가 서브에이전트 사용을 제어하며, 각각 자체 변수를 가집니다. 이 한도는 너무 많은 서브에이전트가 실행 중일 때 Claude가 더 생성하지 못하게 하고, [깊이 한도](#let-subagents-spawn-their-own-subagents)는 서브에이전트가 중첩될 수 있는 깊이를 제한합니다. 세션 동안 Claude가 생성할 수 있는 서브에이전트의 총수에는 한도가 없습니다.

1076 1089 

1077기본적으로 20개의 서브에이전트가 세션에서 실행 중일 때 Agent 도구로 다른 서브에이전트를 생성하려고 하면 `Concurrent subagent limit reached`로 실패하며 오류는 Claude에 재시도하지 않도록 알립니다. 실행 중인 개수가 제한 아래로 떨어지면 생성이 다시 성공합니다. 제한을 변경하려면 [`CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS`](/docs/ko/env-vars)를 양의 정수로 설정합니다. [ultracode](/docs/ko/model-config#adjust-effort-level)가 활성화된 세션은 면제됩니다. 제한이 적용되지 않습니다. Claude Code v2.1.217 이상이 필요합니다.1090기본적으로 세션에서 20개의 서브에이전트가 실행 중이면 Agent 도구로 다른 서브에이전트를 생성하려는 시도는 `Concurrent subagent limit reached`와 함께 실패하며, 오류는 Claude에게 재시도하지 말라고 알립니다. 실행 중인 수가 한도 아래로 떨어지면 다시 생성할 수 있습니다. 한도를 변경하려면 [`CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS`](/docs/ko/env-vars)를 임의의 양의 정수로 설정합니다. [ultracode](/docs/ko/model-config#adjust-effort-level)가 활성화된 세션은 예외이며, 해당 세션에서는 한도가 적용되지 않습니다. Claude Code v2.1.217 이상이 필요합니다.

1078 1091 

1079제한은 Claude가 Agent 도구로 생성하는 서브에이전트만 차단하지만 다른 실행은 동일한 슬롯을 차지합니다.1092이 한도는 Claude가 Agent 도구로 생성하는 서브에이전트만 차단하지만, 다른 실행도 같은 슬롯을 차지합니다.

1080 1093 

1081* [`/subtask`](#fork-the-current-conversation)로 시작하는 세션 내 포크는 실행되는 동안 슬롯을 차지하며 제한에 의해 차단되지 않습니다.1094* [`/subtask`](#fork-the-current-conversation)로 시작하는 세션 내 포크는 실행되는 동안 슬롯을 차지하며, 한도에 의해 차단되지 않습니다.

1082* [서브에이전트를 재개](#resume-subagents)하면 이미 완료된 서브에이전트는 제한을 확인하지 않고 새 슬롯을 차지하므로 재개는 실행 중인 개수를 제한을 초과하여 밀어낼 수 있습니다.1095* 이미 완료된 [서브에이전트를 재개](#resume-subagents)하면 한도를 확인하지 않고 새 슬롯을 차지하므로, 재개로 인해 실행 중인 수가 한도를 넘을 수 있습니다.

1083 1096 

1084[워크플로](/docs/ko/workflows) 에이전트 및 [에이전트 팀](/docs/ko/agent-teams) 팀원과 같은 다른 기능이 실행하는 에이전트는 대신 자신의 제한을 따릅니다.1097[워크플로](/docs/ko/workflows) 에이전트나 [에이전트 팀](/docs/ko/agent-teams) 팀원처럼 다른 기능이 실행하는 에이전트는 대신 자체 한도를 따릅니다.

1085 1098 

1086### 서브에이전트 컨텍스트 관리1099### 서브에이전트 컨텍스트 관리하기

1087 1100 

1088#### 시작 시 로드되는 것1101#### 시작 시 로드되는 항목

1089 1102 

1090각 서브에이전트는 새로운 격리된 컨텍스트 윈도우로 시작합니다. 대화 기록, 이미 호출한 스킬 또는 Claude가 이미 읽은 파일을 보지 못합니다. Claude는 작업을 요약하는 위임 메시지를 작성하고 서브에이전트는 거기에서 작동합니다. 예외는 부모 대화를 상속하는 [포크](#fork-the-current-conversation)입니다.1103각 서브에이전트는 새롭고 격리된 컨텍스트 윈도우로 시작합니다. 대화 기록, 이미 호출한 스킬, Claude가 이미 읽은 파일을 보지 못합니다. Claude가 작업을 요약하는 위임 메시지를 작성하면 서브에이전트는 그 메시지에서 작업을 시작합니다. 예외는 [포크](#fork-the-current-conversation)로, 새로 시작하는 대신 부모 대화를 상속합니다.

1091 1104 

1092비포크 서브에이전트의 초기 컨텍스트에는 다음이 포함됩니다.1105포크가 아닌 서브에이전트의 초기 컨텍스트에는 다음이 포함됩니다.

1093 1106 

1094* **시스템 프롬프트**: 에이전트 자신의 프롬프트 및 Claude Code가 추가하는 환경 세부 정보이며 Claude Code 시스템 프롬프트는 아닙니다. 사용자 정의 서브에이전트는 [마크다운 본문](#write-subagent-files) 또는 `prompt` 필드에서 정의합니다. 기본 제공 에이전트는 미리 정의된 프롬프트를 가집니다.1107* **시스템 프롬프트**: Claude Code 시스템 프롬프트가 아닌, 에이전트 자체 프롬프트와 Claude Code가 덧붙이는 환경 세부 정보입니다. 사용자 지정 서브에이전트는 [markdown 본문](#write-subagent-files) 또는 `prompt` 필드에 정의합니다. 기본 제공 에이전트에는 미리 정의된 프롬프트가 있습니다.

1095* **작업 메시지**: Claude가 작업을 넘길 때 작성하는 위임 프롬프트입니다.1108* **작업 메시지**: Claude가 작업을 넘길 때 작성하는 위임 프롬프트입니다.

1096* **CLAUDE.md 파일**: 메인 대화가 로드하는 [CLAUDE.md 계층 구조](/docs/ko/memory#how-claude-md-files-load)의 모든 수준(`~/.claude/CLAUDE.md`, 프로젝트 규칙, `CLAUDE.local.md`, 관리되는 정책 파일 및 프로젝트 지시사항으로 로드된 모든 [`AGENTS.md` 파일](/docs/ko/memory#agents-md) 포함). 기본 제공 Explore 및 Plan 에이전트는 이를 건너뜁니다. 정의가 [`omitClaudeMd`](#supported-frontmatter-fields)를 설정하는 서브에이전트는 관리되는 정책 파일만 로드하거나 정의가 [관리형 설정](#choose-the-subagent-scope)에서 올 때 아무것도 로드하지 않습니다.1109* **CLAUDE.md 파일**: `~/.claude/CLAUDE.md`, 프로젝트 규칙, `CLAUDE.local.md`, 관리형 정책 파일, 프로젝트 지침으로 로드되는 모든 [`AGENTS.md` 파일](/docs/ko/memory#agents-md)을 포함해, 메인 대화가 로드하는 [CLAUDE.md 계층](/docs/ko/memory#how-claude-md-files-load)의 모든 수준입니다. 기본 제공 Explore 및 Plan 에이전트는 이를 건너뜁니다. 정의에서 [`omitClaudeMd`](#supported-frontmatter-fields)를 설정한 서브에이전트는 관리형 정책 파일만 로드하며, 정의가 [관리형 설정](#choose-the-subagent-scope)에서 온 경우에는 아무것도 로드하지 않습니다.

1097* **Git 상태**: 서브에이전트가 시작할 때 Claude Code가 저장소에서 읽는 스냅샷입니다. 해당 저장소의 [자체 worktree](/docs/ko/worktrees#isolate-subagents-with-worktrees)에 있는 서브에이전트의 경우 스냅샷은 워크트리의 브랜치, 상태 및 최근 커밋을 보여줍니다. Git 저장소 외부에서는 없으며 스냅샷이 꺼져 있을 때도 없습니다. [`includeGitInstructions`](/docs/ko/settings-reference#includegitinstructions)를 참조하십시오. Explore 및 Plan은 관계없이 건너뜁니다.1110* **Git 상태**: 서브에이전트가 시작될 때 Claude Code가 저장소에서 읽는 스냅샷입니다. 해당 저장소의 [자체 worktree](/docs/ko/worktrees#isolate-subagents-with-worktrees)에 있는 서브에이전트의 경우 스냅샷에는 워크트리의 브랜치, 상태, 최근 커밋이 표시됩니다. Git 저장소 밖에 있거나 스냅샷이 꺼져 있으면 포함되지 않습니다. [`includeGitInstructions`](/docs/ko/settings-reference#includegitinstructions)를 참조하세요. Explore와 Plan은 어떤 경우에도 이를 건너뜁니다.

1098* **미리 로드된 스킬**: 에이전트의 [`skills` 필드](#preload-skills-into-subagents)에 명명된 모든 스킬의 전체 콘텐츠입니다. 기본 제공 에이전트는 스킬을 미리 로드하지 않습니다.1111* **미리 로드된 스킬**: 에이전트의 [`skills` 필드](#preload-skills-into-subagents)에 지정된 모든 스킬의 전체 내용입니다. 기본 제공 에이전트는 스킬을 미리 로드하지 않습니다.

1099* **형제 명단**: `main` 및 세션의 다른 모든 명명된 에이전트를 나열하는 [시스템 리마인더](/docs/ko/glossary#system-reminder)이며 각각은 [`SendMessage`](#resume-subagents)의 유효한 `to` 값입니다. 명단은 서브에이전트의 도구에 `SendMessage`가 포함되고 적어도 하나의 다른 에이전트가 이름을 가질 때만 나타나며, Claude가 생성할 때 이름을 지정했는지 또는 [에이전트 팀](/docs/ko/agent-teams) 팀원으로 실행되는지 여부와 관계없이 나타납니다. 이는 서브에이전트가 시작할 때 찍은 스냅샷이므로 나중에 명명된 에이전트는 나타나지 않습니다.1112* **형제 목록**: `main`과 세션의 다른 모든 이름이 지정된 에이전트를 나열하는 [시스템 리마인더](/docs/ko/glossary#system-reminder)로, 각각 [`SendMessage`](#resume-subagents)의 유효한 `to` 값입니다. 이 목록은 서브에이전트의 도구에 `SendMessage`가 포함되어 있고, Claude가 생성할 때 이름을 지정했든 [에이전트 팀](/docs/ko/agent-teams) 팀원으로 실행되든 다른 에이전트 중 하나 이상에 이름이 있을 때만 표시됩니다. 서브에이전트가 시작될 때 찍은 스냅샷이므로 이후에 이름이 지정된 에이전트는 표시되지 않습니다.

1100 1113 

1101사용자, 프로젝트 및 로컬 CLAUDE.md 파일 없이 자신의 서브에이전트 중 하나를 시작하려면 frontmatter 또는 `--agents` JSON에서 [`omitClaudeMd: true`](#supported-frontmatter-fields)를 설정합니다. Explore, Plan 및 `omitClaudeMd`가 설정된 서브에이전트의 경우, 서브에이전트가 하위 디렉터리의 파일로 작업할 때 해당 하위 디렉터리의 `CLAUDE.md` 및 일치하는 [경로 범위 규칙](/docs/ko/memory#path-specific-rules)은 여전히 [로드](/docs/ko/memory#how-claude-md-files-load)됩니다.1114사용자, 프로젝트, 로컬 CLAUDE.md 파일 없이 자체 서브에이전트를 시작하려면 해당 서브에이전트의 frontmatter 또는 `--agents` JSON에서 [`omitClaudeMd: true`](#supported-frontmatter-fields)를 설정합니다. Explore, Plan, `omitClaudeMd`가 설정된 서브에이전트의 경우, 서브에이전트가 하위 디렉터리의 파일로 작업할 때 해당 하위 디렉터리의 `CLAUDE.md`와 일치하는 [경로 범위 규칙](/docs/ko/memory#path-specific-rules)은 여전히 [로드](/docs/ko/memory#how-claude-md-files-load)됩니다.

1102 1115 

1103메인 대화는 이러한 서브에이전트의 결과를 읽을 때 여전히 전체 CLAUDE.md를 가지므로 대부분의 규칙이 서브에이전트 자체에 도달할 필요가 없습니다. 규칙이 필요한 경우(예: "`vendor/` 디렉터리 무시") 위임할 때 Claude에 제공하는 프롬프트에서 다시 명시합니다.1116메인 대화는 이러한 서브에이전트의 결과를 읽을 때 여전히 전체 CLAUDE.md를 가지고 있으므로, 대부분의 규칙은 서브에이전트 자체에 전달될 필요가 없습니다. "`vendor/` 디렉터리 무시"처럼 반드시 전달되어야 하는 규칙이 있다면, 위임할 때 Claude에게 주는 프롬프트에 다시 명시합니다.

1104 1117 

1105서브에이전트가 git 상태를 받는 것을 변경할 수 없습니다. Explore 및 Plan만 건너뜁니다.1118어떤 서브에이전트가 git 상태를 받을지는 변경할 수 없습니다. Explore와 Plan만 이를 건너뜁니다.

1106 1119 

1107일부 메인 대화 상태는 비포크 서브에이전트에 도달하지 않습니다.1120일부 메인 대화 상태는 포크가 아닌 서브에이전트에 전달되지 않습니다.

1108 1121 

1109* **출력 스타일**: 서브에이전트는 자신의 시스템 프롬프트를 실행하므로 [포크](#fork-the-current-conversation)를 제외하고 [출력 스타일](/docs/ko/output-styles)이 응답을 형성하지 않습니다.1122* **출력 스타일**: 서브에이전트는 자체 시스템 프롬프트로 실행되므로, [포크](#fork-the-current-conversation)를 제외하면 [출력 스타일](/docs/ko/output-styles)이 서브에이전트의 응답에 영향을 주지 않습니다.

1110* **자동 메모리**: 메인 대화의 [자동 메모리](/docs/ko/memory#auto-memory)는 로드되지 않습니다. 서브에이전트에 자신의 지속적인 메모리를 제공하려면 [`memory` 필드](#enable-persistent-memory)를 사용합니다.1123* **자동 메모리**: 메인 대화의 [자동 메모리](/docs/ko/memory#auto-memory)는 로드되지 않습니다. 서브에이전트에 자체 영구 메모리를 제공하려면 [`memory` 필드](#enable-persistent-memory)를 사용합니다.

1111* **컨텍스트 윈도우 크기**: 서브에이전트의 컨텍스트 윈도우는 부모의 것이 아닌 자신의 모델에 의해 크기가 조정됩니다. 더 작은 윈도우를 가진 모델로 위임하면 해당 서브에이전트에 더 작은 윈도우가 제공됩니다.1124* **컨텍스트 윈도우 크기**: 서브에이전트의 컨텍스트 윈도우 크기는 부모가 아닌 자체 모델에 따라 결정됩니다. 더 작은 윈도우를 가진 모델에 위임하면 해당 서브에이전트는 더 작은 윈도우를 갖게 됩니다.

1112 1125 

1113#### 서브에이전트 재개1126#### 서브에이전트 재개하기

1114 1127 

1115각 서브에이전트 호출은 이전 호출을 계속하는 것이 아니라 새 인스턴스를 만듭니다. 처음부터 시작하는 대신 기존 서브에이전트의 작업을 계속하려면 Claude에 재개하도록 요청합니다.1128서브에이전트를 호출할 때마다 이전 인스턴스를 이어가는 대신 새 인스턴스가 생성됩니다. 처음부터 다시 시작하지 않고 기존 서브에이전트의 작업을 이어가려면 Claude에게 재개하도록 요청합니다.

1116 1129 

1117재개된 서브에이전트는 모든 이전 도구 호출, 결과 및 추론을 포함한 전체 대화 기록을 유지합니다. 서브에이전트가 [자신의 백그라운드 서브에이전트](#let-subagents-spawn-their-own-subagents)를 생성한 경우 해당 기록에는 실행 중에 전달한 결과가 포함됩니다. 서브에이전트는 처음부터 시작하지 않고 정확히 중단한 위치에서 계속합니다.1130재개된 서브에이전트는 이전의 모든 도구 호출, 결과, 추론을 포함한 전체 대화 기록을 유지합니다. 서브에이전트가 [자체 백그라운드 서브에이전트](#let-subagents-spawn-their-own-subagents)를 생성한 경우, 그 기록에는 실행 중에 해당 서브에이전트들이 전달한 결과가 포함됩니다. v2.1.304 이전에는 완료 직후 Claude가 메시지를 보내거나 재개한 서브에이전트가 가장 최근 작업을 잊어버릴 수 있었습니다.

1118 1131 

1119* 서브에이전트가 완료되면 Claude는 에이전트 ID를 받습니다.1132* 서브에이전트가 완료되면 Claude는 해당 에이전트 ID를 받습니다.

1120* 기본 제공 Explore 및 Plan 에이전트는 일회성이며 에이전트 ID를 반환하지 않으므로 Claude는 재개할 수 없습니다. 작업을 계속해야 할 때 `general-purpose` 또는 사용자 정의 서브에이전트를 사용합니다.1133* 기본 제공 Explore 및 Plan 에이전트는 일회성이며 에이전트 ID를 반환하지 않으므로 Claude가 재개할 수 없습니다. 작업을 이어가야 하는 경우 `general-purpose` 또는 사용자 지정 서브에이전트를 사용합니다.

1121* 서브에이전트가 [`maxTurns`](#supported-frontmatter-fields) 제한에서 중지되면 Claude Code는 반환된 출력을 부분으로 표시하며, Claude는 서브에이전트를 재개하여 작업을 계속할 수 있습니다.1134* 서브에이전트가 [`maxTurns`](#supported-frontmatter-fields) 한도에서 중지되면 Claude Code는 반환된 출력을 부분 출력으로 표시하며, Claude는 서브에이전트를 재개해 작업을 이어갈 수 있습니다.

1122 1135 

1123Claude는 에이전트의 ID 또는 이름을 `to` 필드로 하여 `SendMessage` 도구를 사용하여 재개합니다. `SendMessage`는 [에이전트 팀](/docs/ko/agent-teams)이 활성화되어야 하지 않습니다. `shutdown_request` 및 `plan_approval_response`와 같은 구조화된 팀 프로토콜 메시지만 필요합니다. 서브에이전트 및 팀원 외에도 교차 세션 메시징이 활성화된 세션에서 Claude는 동일한 도구를 사용하여 [다른 Claude Code 세션](/docs/ko/cross-session-messaging)에 메시지를 보낼 수 있으며 이 컴퓨터 또는 [그 이상](/docs/ko/cross-session-messaging#message-sessions-on-other-machines)에 있습니다.1136Claude는 에이전트의 ID나 이름을 `to` 필드로 사용해 `SendMessage` 도구로 에이전트를 재개합니다. `SendMessage`는 [에이전트 팀](/docs/ko/agent-teams)이 활성화되어 있지 않아도 사용할 수 있으며, `shutdown_request` 및 `plan_approval_response`와 같은 구조화된 팀 프로토콜 메시지만 에이전트 팀을 필요로 합니다. 서브에이전트와 팀원 외에도, 세션 간 메시징이 활성화된 세션에서는 Claude가 같은 도구를 사용해 이 머신이나 [다른 머신](/docs/ko/cross-session-messaging#message-sessions-on-other-machines)에 있는 [다른 Claude Code 세션](/docs/ko/cross-session-messaging)에 메시지를 보낼 수 있습니다.

1124 1137 

1125서브에이전트를 재개하려면 Claude에 이전 작업을 계속하도록 요청합니다.1138서브에이전트를 재개하려면 Claude에게 이전 작업을 이어가도록 요청합니다.

1126 1139 

1127```text wrap theme={null}1140```text wrap theme={null}

1128Use the code-reviewer subagent to review the authentication module1141Use the code-reviewer subagent to review the authentication module


1132[Claude resumes the subagent with full context from previous conversation]1145[Claude resumes the subagent with full context from previous conversation]

1133```1146```

1134 1147 

1135Claude가 완료된 서브에이전트에 `SendMessage` 도구로 메시지를 보낼 때 서브에이전트는 새 `Agent` 호출 없이 백그라운드에서 재개됩니다. 동일한 사항이 Claude가 `TaskStop` 도구로 중지한 서브에이전트에도 적용되며 중지된 실행이 종료된 후입니다. 재개된 실행은 [서브에이전트가 처음 실행된 위치에서 도구 세트](#run-subagents-in-foreground-or-background)를 유지하고 원본 실행이 워밍한 [프롬프트 캐시](/docs/ko/prompt-caching#subagents-and-the-cache)를 계속 읽을 수 있습니다.1148Claude가 `SendMessage` 도구로 완료된 서브에이전트에 메시지를 보내면, 서브에이전트는 새 `Agent` 호출 없이 백그라운드에서 재개됩니다. Claude가 `TaskStop` 도구로 중지한 서브에이전트도 중지된 실행이 종료된 후에는 마찬가지입니다. 재개된 실행은 [서브에이전트가 처음 실행되었을 때의 도구 세트](#run-subagents-in-foreground-or-background)를 유지하며, [원래 실행이 준비해 둔 프롬프트 캐시](/docs/ko/prompt-caching#subagents-and-the-cache)를 계속 읽을 수 있습니다.

1136 1149 

1137`SendMessage` 도구를 가진 서브에이전트는 해당 메시지도 보낼 수 있습니다. 대화형 세션에서 재개된 에이전트는 메인 대화가 아닌 재개한 서브에이전트에 다시 보고합니다. 해당 서브에이전트는 자신의 작업을 완료하기 전에 결과를 기다립니다. 서브에이전트가 자신이 보고하는 에이전트(예: 자신의 시작자)에 메시지를 보낼 때 Claude Code는 결과를 리디렉션하지 않고 해당 에이전트를 재개합니다.1150`SendMessage` 도구가 있는 서브에이전트도 이러한 메시지를 보낼 수 있습니다. 대화형 세션에서는 재개된 에이전트가 메인 대화가 아닌, 자신을 재개한 서브에이전트에게 결과를 보고합니다. 해당 서브에이전트는 자신의 작업을 마치기 전에 결과를 기다립니다. 서브에이전트가 자신을 시작한 에이전트처럼 자신이 보고하는 대상 에이전트에 메시지를 보내면, Claude Code는 결과를 다른 곳으로 돌리지 않고 해당 에이전트를 재개합니다.

1138 1151 

1139`/tasks`에서 `x`로 또는 SDK `stop_task` 요청으로 직접 중지한 서브에이전트는 자동으로 재개되지 않습니다. Claude가 메시지를 보내면 메시지가 거부되고 Claude에 에이전트가 취소되었다는 사실이 전달됩니다.1152`/tasks`에서 `x`를 누르거나 SDK `stop_task` 요청으로 사용자가 직접 중지한 서브에이전트는 자동으로 재개되지 않습니다. Claude가 메시지를 보내면 메시지가 거부되고 Claude에게 에이전트가 취소되었다고 알려집니다.

1140 1153 

1141[해당 서브에이전트의 행이 여전히 서브에이전트 패널에 있는 동안](#run-subagents-in-foreground-or-background) 해당 트랜스크립트에 입력하여 직접 재개할 수 있습니다. 그 후 Claude의 메시지는 다시 자동으로 재개할 수 있습니다.1154[해당 서브에이전트의 행이 서브에이전트 패널에 아직 남아 있는](#run-subagents-in-foreground-or-background) 동안에는 트랜스크립트에 입력해 직접 재개할 수 있습니다. 그 후에는 Claude의 메시지로 다시 자동 재개될 수 있습니다.

1142 1155 

1143재개는 동일한 ID 아래에서 에이전트의 새 실행을 시작하므로 이미 실패했거나 완료된 서브에이전트는 작업 목록 및 Agent SDK의 작업 이벤트에서 다시 실행 중으로 표시됩니다.1156재개하면 같은 ID로 에이전트의 새 실행이 시작되므로, 이미 실패했거나 완료된 서브에이전트가 작업 목록과 Agent SDK의 작업 이벤트에서 다시 실행 중으로 표시됩니다.

1144 1157 

1145`SendMessage`는 이름이 여전히 대화에서 이전에 도달한 동일한 에이전트를 참조하는지 확인합니다. 더 새로운 에이전트가 이름을 가져간 경우(예: 이름을 재사용한 재생성된 백그라운드 에이전트) Claude Code는 잘못된 에이전트로 전달하지 않고 전송을 거부하며 오류는 이름이 현재 도달하는 에이전트를 보고하므로 Claude가 재대상화할 수 있습니다. 여전히 실행 중인 이전 에이전트에 도달하려면 Claude는 생성할 때 받은 에이전트 ID로 주소를 지정합니다. 확인은 현재 대화로 범위가 지정되고 `/clear`에서 재설정됩니다.1158`SendMessage`는 이름이 대화 앞부분에서 도달했던 에이전트를 여전히 가리키는지 확인합니다. 이름을 재사용한 재생성된 백그라운드 에이전트처럼 새로운 에이전트가 그 이름을 차지한 경우, Claude Code는 잘못된 에이전트에 전달하지 않고 전송을 거부하며, 오류에는 해당 이름이 현재 어느 에이전트에 도달하는지가 표시되어 Claude가 대상을 다시 지정할 수 있습니다. 이전 에이전트가 아직 실행 중일 때 그 에이전트에 도달하려면, Claude는 해당 에이전트를 생성할 때 받은 에이전트 ID로 지칭합니다. 이 확인은 현재 대화 범위에서만 적용되며 `/clear` 시 초기화됩니다.

1146 1159 

1147서브에이전트는 자신을 시작한 에이전트로부터의 메시지를 일반 작업 방향으로 취급하며 작업 중 과정 수정을 포함하고 자신의 권한 설정 내에서 작동합니다. 두 제한은 메시지를 보낸 사람과 관계없이 유지됩니다. 어떤 에이전트의 메시지도 보류 중인 권한 프롬프트에 대한 승인으로 계산되지 않으며 어떤 에이전트 메시지도 서브에이전트의 권한 설정, `CLAUDE.md` 또는 구성을 변경할 수 없습니다. 권한 시스템 또는 자신의 메시지만 승인을 부여할 수 있습니다.1160서브에이전트는 작업 도중의 방향 수정을 포함해, 자신을 시작한 에이전트의 메시지를 일반적인 작업 지시로 취급하며 자체 권한 설정 내에서 이에 따라 행동합니다. 메시지를 누가 보냈든 두 가지 제한은 항상 유지됩니다. 어떤 에이전트의 메시지도 대기 중인 권한 프롬프트에 대한 사용자의 승인으로 간주되지 않으며, 어떤 에이전트 메시지도 서브에이전트의 권한 설정, `CLAUDE.md` 또는 구성을 변경할 수 없습니다. 승인은 권한 시스템이나 사용자 자신의 메시지로만 부여할 수 있습니다.

1148 1161 

1149명시적으로 참조하려면 Claude에 에이전트 ID를 요청할 수도 있으며 `~/.claude/projects/{project}/{sessionId}/subagents/`의 트랜스크립트 파일에서 ID를 찾을 수 있습니다. 각 트랜스크립트는 `agent-{agentId}.jsonl`로 저장됩니다.1162에이전트 ID를 명시적으로 참조하려면 Claude에게 ID를 물어보거나, `~/.claude/projects/{project}/{sessionId}/subagents/`의 트랜스크립트 파일에서 ID를 찾을 수도 있습니다. 각 트랜스크립트는 `agent-{agentId}.jsonl`로 저장됩니다.

1150 1163 

1151서브에이전트 트랜스크립트는 메인 대화와 독립적으로 유지됩니다.1164서브에이전트 트랜스크립트는 메인 대화와 독립적으로 유지됩니다.

1152 1165 

1153* **메인 대화 압축**: 메인 대화가 압축될 때 서브에이전트 트랜스크립트는 영향을 받지 않습니다. 별도의 파일에 저장됩니다.1166* **메인 대화 압축**: 메인 대화가 압축되어도 서브에이전트 트랜스크립트는 영향을 받지 않습니다. 별도의 파일에 저장되기 때문입니다.

1154* **세션 지속성**: 서브에이전트 트랜스크립트는 세션 내에서 유지됩니다. Claude Code를 다시 시작하여 동일한 세션을 재개하면 [서브에이전트를 재개](#resume-subagents)할 수 있습니다.1167* **세션 지속성**: 서브에이전트 트랜스크립트는 해당 세션 내에서 유지됩니다. Claude Code를 다시 시작한 후 같은 세션을 재개하면 [서브에이전트를 재개](#resume-subagents)할 수 있습니다.

1155* **자동 정리**: Claude Code는 `cleanupPeriodDays` 보존 기간(기본값 30일) 후 서브에이전트 트랜스크립트를 삭제하며 [보존 스윕 규칙](/docs/ko/claude-directory#cleaned-up-automatically)을 따릅니다.1168* **자동 정리**: Claude Code는 [보존 정리 규칙](/docs/ko/claude-directory#cleaned-up-automatically)에 따라 `cleanupPeriodDays` 보존 기간(기본값 30일)이 지나면 서브에이전트 트랜스크립트를 삭제합니다.

1169 

1170##### 다시 시작한 후 이름으로 서브에이전트에 메시지 보내기

1171 

1172> [!NOTE]

1173>

1174> 팀원으로 시작된 서브에이전트의 경우 대신 [에이전트 팀 제한 사항](/docs/ko/agent-teams#limitations)을 참조하세요.

1175 

1176Claude Code를 다시 시작하고 세션을 재개한 후 Claude가 이름으로 서브에이전트에 메시지를 보낼 수 없다면, 대신 서브에이전트의 에이전트 ID를 Claude에게 알려 줍니다. 마지막 [압축](/docs/ko/context-window#what-survives-compaction) 이후 Claude가 메인 대화에서 지정한 이름은 다시 시작한 후에도 유지됩니다. 그 압축 이전의 이름은 유지되지 않습니다. 이름에 해당하는 ID를 찾으려면 `~/.claude/projects/{project}/{sessionId}/subagents/`의 `agent-{agentId}.meta.json` 파일에서 해당 이름을 찾습니다.

1177 

1178ID로 메시지를 한 번 보내면, 새로운 에이전트가 그 이름을 차지하지 않은 한 서브에이전트의 이름이 다시 작동합니다. v2.1.299 이전에는 다시 시작한 후 어떤 이름도 유지되지 않았으며, 에이전트 ID가 여전히 작동하는 경우에도 이름으로 보낸 메시지는 거부되었습니다.

1156 1179 

1157#### 자동 압축1180#### 자동 압축

1158 1181 

1159서브에이전트는 자동 압축을 지원합니다. 압축은 서브에이전트 자체의 컨텍스트 윈도우가 채워짐에 따라 트리거되며, `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`는 서브에이전트에도 적용됩니다. 재정의가 적용되는 시기는 [환경 변수](/docs/ko/env-vars)를 참조하십시오.1182서브에이전트는 자동 압축을 지원합니다. 압축은 서브에이전트 자체의 컨텍스트 윈도우가 차면서 트리거되며, `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`는 서브에이전트에도 적용됩니다. 재정의가 적용되는 시점은 [환경 변수](/docs/ko/env-vars)를 참조하세요.

1160 1183 

1161압축 이벤트는 서브에이전트 트랜스크립트 파일에 기록됩니다.1184압축 이벤트는 서브에이전트 트랜스크립트 파일에 기록됩니다.

1162 1185 


1171}1194}

1172```1195```

1173 1196 

1174`preTokens` 값은 압축이 발생하기 전에 사용된 토큰 수를 보여줍니다.1197`preTokens` 값은 압축이 발생하기 전에 사용된 토큰 수를 나타냅니다.

1175 1198 

1176##### 단일 서브에이전트의 자동 압축 윈도우 설정1199##### 하나의 서브에이전트에 대한 자동 압축 윈도우 설정하기

1177 1200 

1178서브에이전트 하나가 평소보다 일찍 압축되도록 하려면 해당 서브에이전트의 [frontmatter](#supported-frontmatter-fields)에서 `autoCompactWindow`를 `100000`에서 `1000000` 사이의 토큰 수로 설정합니다. [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/ko/env-vars#variables)를 설정하면 서브에이전트는 대신 해당 변수의 윈도우를 사용하며 이 필드는 효과가 없습니다. 단, Claude Code가 [변수의 값을 무시](/docs/ko/model-config#claude_code_auto_compact_window-values)하는 경우는 예외입니다. Claude Code v2.1.296 이상이 필요합니다.1201하나의 서브에이전트가 평소보다 일찍 압축되도록 하려면 해당 서브에이전트의 [frontmatter](#supported-frontmatter-fields)에서 `autoCompactWindow`를 `100000`부터 `1000000`까지의 토큰 수로 설정합니다. [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/ko/env-vars#variables)를 설정한 경우, Claude Code가 [해당 변수의 값을 무시](/docs/ko/model-config#claude_code_auto_compact_window-values)하지 않는 한 서브에이전트는 대신 그 변수의 윈도우를 사용하고 이 필드는 효과가 없습니다. Claude Code v2.1.296 이상이 필요합니다.

1179 1202 

1180다음 frontmatter는 긴 로그 파일을 읽는 서브에이전트의 `autoCompactWindow`를 200,000토큰으로 설정합니다.1203다음 frontmatter는 긴 로그 파일을 읽는 서브에이전트의 `autoCompactWindow`를 200,000 토큰으로 설정합니다.

1181 1204 

1182```yaml theme={null}1205```yaml theme={null}

1183---1206---


1187---1210---

1188```1211```

1189 1212 

1190값은 `200000`과 같은 일반 정수로 작성하십시오. frontmatter에서 Claude Code는 `200k`를 200으로 읽으며, 이는 허용 범위를 벗어나기 때문입니다. 이 경우 서브에이전트는 여전히 로드되며 필드가 없는 것처럼 압축됩니다. Claude Code가 값을 무시했는지 확인하려면 셸에서 `claude --debug`를 실행하고 [디버그 로그](#supported-frontmatter-fields)에서 `invalid autoCompactWindow`를 검색하십시오.1213값은 `200000`과 같은 일반 정수로 작성해야 합니다. frontmatter에서 Claude Code는 `200k`를 200으로 읽으며, 이는 허용 범위를 벗어납니다. 이 경우에도 서브에이전트는 필드가 없는 것처럼 로드되고 압축됩니다. Claude Code가 값을 무시했는지 확인하려면 셸에서 `claude --debug`를 실행하고 [디버그 로그](#supported-frontmatter-fields)에서 `invalid autoCompactWindow`를 검색합니다.

1191 1214 

1192값이 범위 내에 있는데도 변화가 보이지 않으면 다음 원인을 확인하십시오.1215값이 범위 안에 있는데도 변화가 없다면 다음 원인을 확인합니다.

1193 1216 

1194* **값이 서브에이전트가 원래 상속할 [자동 압축 윈도우](/docs/ko/model-config#context-window-and-auto-compaction)보다 작지 않음**: 더 일찍 압축하려면 해당 윈도우보다 작은 값을 설정하십시오.1217* **값이 서브에이전트가 원래 상속할 [자동 압축 윈도우](/docs/ko/model-config#context-window-and-auto-compaction)보다 작지 않은 경우**: 더 일찍 압축하려면 해당 윈도우보다 작은 값을 설정합니다.

1195* **`--agent` 또는 `agent` 설정으로 전체 세션을 이 서브에이전트로 실행함**: 이 경우 필드는 효과가 없습니다. 세션의 윈도우를 설정하려면 [자동 압축 윈도우 설정](/docs/ko/model-config#set-the-auto-compact-window)을 참조하십시오.1218* **`--agent` 또는 `agent` 설정으로 세션 전체를 이 서브에이전트로 실행하는 경우**: 이때는 필드가 효과가 없습니다. 세션의 윈도우를 설정하려면 [자동 압축 윈도우 설정하기](/docs/ko/model-config#set-the-auto-compact-window)를 참조하세요.

1196 1219 

1197## 현재 대화 포크1220## 현재 대화 포크

1198 1221 

Details

476 476 

477PowerShell 명령은 [PowerShell 명령의 지속 변수](/docs/ko/hooks#persisted-variables-in-powershell-commands)에 설명된 조건에 따라 훅이 `CLAUDE_ENV_FILE`을 통해 유지하는 변수도 수신합니다. Claude Code v2.1.296 이상이 필요합니다.477PowerShell 명령은 [PowerShell 명령의 지속 변수](/docs/ko/hooks#persisted-variables-in-powershell-commands)에 설명된 조건에 따라 훅이 `CLAUDE_ENV_FILE`을 통해 유지하는 변수도 수신합니다. Claude Code v2.1.296 이상이 필요합니다.

478 478 

479`grep`, `rg`, `egrep`, `fgrep`, `findstr` 및 `git grep`의 종료 코드 1은 일치하는 항목이 없음을 의미합니다. `git diff`의 종료 코드 1은 변경 사항이 존재함을 의미합니다. 두 결과 모두 Claude에 명령 실패로 보고되지 않습니다. `robocopy`의 경우, 종료 코드 0부터 7까지는 복사된 파일 또는 감지된 추가 파일과 같은 정보 결과입니다. 종료 코드 8 이상은 실패로 계산됩니다.479### PowerShell에서 검색 및 `git diff`의 종료 코드 1

480 

481Claude가 PowerShell 도구에서 실행한 `grep` 또는 `rg` 검색이 아무것도 일치하지 않을 때 `Error: Exit code 1`이 표시되더라도 검색이 실패한 것은 아닙니다. 별도로 조치할 필요가 없습니다. 이 오류는 검색이 더 긴 명령의 일부일 때 나타날 수 있습니다. 예를 들어 `rg`가 코드 1로 종료되면 `rg foo | Out-Null`은 오류를 표시하지만 `rg foo`는 표시하지 않습니다.

482 

483PowerShell 도구는 `grep`, `rg`, `egrep`, `fgrep`, `findstr`, `git grep` 및 `git diff`의 종료 코드 1을 정상적인 결과로 간주할 수 있습니다. 검색 명령은 일치하는 항목이 없음을 알리기 위해 종료 코드 1을 사용합니다. `git diff`에서 종료 코드 1은 파일이 다르다는 것을 의미합니다. Claude가 실행할 때 오류를 표시하는 명령은 `shell: powershell`이 지정된 스킬에서 [실패한 것으로 간주됩니다](/docs/ko/skills#when-an-injected-command-fails).

480 484 

481### Windows 인코딩 및 종료 코드485### Windows 인코딩 및 종료 코드

482 486 


484* Claude Code는 기본 명령의 표준 입력으로 파이프된 텍스트를 UTF-8로 인코딩합니다.488* Claude Code는 기본 명령의 표준 입력으로 파이프된 텍스트를 UTF-8로 인코딩합니다.

485* Claude Code는 ANSI 이스케이프 시퀀스 없이 오류 출력을 캡처합니다.489* Claude Code는 ANSI 이스케이프 시퀀스 없이 오류 출력을 캡처합니다.

486* 자식 프로세스가 표준 입력을 대기하는 명령은 행(hang)되는 대신 파일 끝을 수신합니다.490* 자식 프로세스가 표준 입력을 대기하는 명령은 행(hang)되는 대신 파일 끝을 수신합니다.

487* `where.exe`의 종료 코드 1은 일치하는 항목이 없음을 의미하고, `fc.exe` 및 `diff.exe`에서는 파일이 다름을 의미하므로, 명령이 출력을 생성할 때 Claude Code는 해당 종료 코드를 명령 오류가 아닌 유효한 부정적 답변으로 취급합니다. Claude Code는 여전히 `where.exe /Q` 또는 `$null`로의 리디렉션과 같은 침묵된 형식을 종료 코드 1에서 실패로 보고합니다.491* `where.exe`가 일치하는 항목을 찾지 못하거나 `fc.exe` 또는 `diff.exe`가 파일이 다르다는 것을 발견하면, 명령이 실패하지 않았더라도 결과에 `Error: Exit code 1`이 표시될 수 있습니다. 별도로 조치할 필요가 없습니다.

492* `robocopy`의 종료 코드 1부터 7까지가 오류로 표시되더라도 복사가 실패한 것은 아니며 별도로 조치할 필요가 없습니다. `robocopy`는 복사된 파일과 같은 결과를 알리기 위해 코드 0부터 7까지로 종료하며, 실패할 때는 8 이상으로 종료합니다.

488 493 

489### 미리보기 제한 사항494### 미리보기 제한 사항

490 495 


504* **이미지**: PNG, JPEG, GIF 및 WebP 파일은 원본 바이트가 아닌 Claude가 볼 수 있는 시각적 콘텐츠로 반환됩니다. Claude Code는 모델의 이미지 크기 제한에 맞추기 위해 큰 이미지를 전송 전에 크기 조정하고 재압축하므로, Claude는 큰 스크린샷의 축소된 버전을 볼 수 있습니다.509* **이미지**: PNG, JPEG, GIF 및 WebP 파일은 원본 바이트가 아닌 Claude가 볼 수 있는 시각적 콘텐츠로 반환됩니다. Claude Code는 모델의 이미지 크기 제한에 맞추기 위해 큰 이미지를 전송 전에 크기 조정하고 재압축하므로, Claude는 큰 스크린샷의 축소된 버전을 볼 수 있습니다.

505 510 

506 Claude가 큰 이미지에서 세밀한 픽셀 수준의 세부 정보를 놓친 경우, 예를 들어 Bash를 통해 ImageMagick으로 관심 영역을 자른 다음 잘라낸 이미지를 읽도록 요청하십시오.511 Claude가 큰 이미지에서 세밀한 픽셀 수준의 세부 정보를 놓친 경우, 예를 들어 Bash를 통해 ImageMagick으로 관심 영역을 자른 다음 잘라낸 이미지를 읽도록 요청하십시오.

512 

513 Read는 128 MB보다 큰 이미지 파일을 거부하며, 이미지 크기를 조정하거나 더 작은 사본을 내보낸 다음 그 사본을 읽도록 Claude에게 안내하는 오류를 반환합니다. Claude가 그렇게 하지 않고 오류에서 멈추는 경우 [File is too large to read as an image](/docs/ko/errors#file-is-too-large-to-read-as-an-image)를 참조하십시오.

507* **PDF**: Claude는 짧은 `.pdf` 파일을 전체적으로 읽습니다. 10페이지보다 긴 PDF의 경우, `pages` 매개변수(예: `"1-5"`)를 사용하여 범위로 읽으며, 한 번에 최대 20페이지까지 읽습니다. 페이지 범위 읽기는 poppler-utils의 `pdftoppm`으로 페이지를 렌더링하므로, macOS에서는 `brew install poppler`로, Debian 및 Ubuntu에서는 `apt-get install poppler-utils`로 설치하십시오. Windows 및 기타 플랫폼에서는 `pdftoppm`을 `PATH`에 배치하는 poppler 빌드를 설치하십시오. 이것이 없으면 페이지 범위 읽기가 `pdftoppm is not installed` 오류로 실패합니다.514* **PDF**: Claude는 짧은 `.pdf` 파일을 전체적으로 읽습니다. 10페이지보다 긴 PDF의 경우, `pages` 매개변수(예: `"1-5"`)를 사용하여 범위로 읽으며, 한 번에 최대 20페이지까지 읽습니다. 페이지 범위 읽기는 poppler-utils의 `pdftoppm`으로 페이지를 렌더링하므로, macOS에서는 `brew install poppler`로, Debian 및 Ubuntu에서는 `apt-get install poppler-utils`로 설치하십시오. Windows 및 기타 플랫폼에서는 `pdftoppm`을 `PATH`에 배치하는 poppler 빌드를 설치하십시오. 이것이 없으면 페이지 범위 읽기가 `pdftoppm is not installed` 오류로 실패합니다.

508* **Jupyter 노트북**: `.ipynb` 파일은 코드, 마크다운 및 시각화를 포함한 모든 셀과 해당 출력을 반환합니다. 셀의 크기가 256 KB를 초과하거나 [토큰 제한](#large-files)을 초과하는 노트북은 대신 오류를 반환합니다. Claude Code는 100MB를 초과하는 노트북 파일을 읽기를 거부합니다. 오류는 Claude에게 셀 슬라이스와 같은 노트북의 일부를 읽는 방법을 알려주며, 셸 명령을 사용합니다.515* **Jupyter 노트북**: `.ipynb` 파일은 코드, 마크다운 및 시각화를 포함한 모든 셀과 해당 출력을 반환합니다. 셀의 크기가 256 KB를 초과하거나 [토큰 제한](#large-files)을 초과하는 노트북은 대신 오류를 반환합니다. Claude Code는 100MB를 초과하는 노트북 파일을 읽기를 거부합니다. 오류는 Claude에게 셀 슬라이스와 같은 노트북의 일부를 읽는 방법을 알려주며, 셸 명령을 사용합니다.

509 516 


558 565 

559Claude Code는 전사본을 찾을 수 있도록 로컬 초안에 작업 디렉토리를 유지하며, 디렉토리를 전송하지 않습니다.566Claude Code는 전사본을 찾을 수 있도록 로컬 초안에 작업 디렉토리를 유지하며, 디렉토리를 전송하지 않습니다.

560 567 

561[Zero Data Retention이 적용된 조직](/docs/ko/zero-data-retention#features-disabled-under-zdr)과 [HIPAA 구성](/docs/ko/hipaa-setup)이 적용된 조직에서는 Claude Code가 `/feedback`과 마찬가지로 도구를 제외합니다. Zero Data Retention이 적용된 조직의 세션에서 여전히 도구를 제공하는 경우, 초안은 머신에 남아 있으며 전송은 `Feedback collection is not available for organizations with custom data retention policies.` 오류로 실패합니다.568[Zero Data Retention이 적용된 조직](/docs/ko/zero-data-retention#features-disabled-under-zdr)과 [HIPAA 구성](/docs/ko/hipaa-setup)이 적용된 조직에서는 Claude Code가 세션에서 SendFeedback 도구를 제외합니다. Zero Data Retention이 적용된 조직의 세션에서 여전히 도구를 제공하는 경우, 초안은 머신에 남아 있으며 전송은 `Feedback collection is not available for organizations with custom data retention policies.` 오류로 실패합니다.

562 569 

563### 초안 삭제 또는 유지570### 초안 삭제 또는 유지

564 571 


665* **다시 채워질 때까지 기다리기**: Claude Code v2.1.290 이상에서는 대화형 터미널 세션의 제한이 시간당 약 100회 호출씩 다시 채워집니다. 속도를 변경하려면 [`CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR`](/docs/ko/env-vars#variables)를 `50`과 같은 시간당 호출 수로 설정합니다.672* **다시 채워질 때까지 기다리기**: Claude Code v2.1.290 이상에서는 대화형 터미널 세션의 제한이 시간당 약 100회 호출씩 다시 채워집니다. 속도를 변경하려면 [`CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR`](/docs/ko/env-vars#variables)를 `50`과 같은 시간당 호출 수로 설정합니다.

666* **새 대화 시작하기**: Claude Code 프롬프트에서 [`/clear`](/docs/ko/commands#all-commands)를 실행해도 개수가 재설정됩니다. 실행 중인 워크플로와 같이 여전히 서브에이전트를 생성할 수 있는 작업이 초기화 후에도 남아 있으면 개수가 대신 이월됩니다.673* **새 대화 시작하기**: Claude Code 프롬프트에서 [`/clear`](/docs/ko/commands#all-commands)를 실행해도 개수가 재설정됩니다. 실행 중인 워크플로와 같이 여전히 서브에이전트를 생성할 수 있는 작업이 초기화 후에도 남아 있으면 개수가 대신 이월됩니다.

667 674 

675`-p`를 사용하는 [비대화형 모드](/docs/ko/headless)와 [Agent SDK](/docs/ko/agent-sdk/overview)에서는 제한이 세션 단위가 아니라 턴 단위로 적용됩니다. 턴은 사용자가 메시지를 보낸 시점부터 Claude가 응답을 마칠 때까지 지속됩니다. 그 이후 다음 메시지를 보내거나 새 `claude -p` 실행을 시작하면 제한이 재설정되며, [`--continue` 또는 `--resume`](/docs/ko/headless#continue-conversations)을 사용하는 경우에도 마찬가지입니다. 더 많은 검색이 필요하면 [`CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION`](/docs/ko/env-vars#variables)을 높이거나 [`CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR`](/docs/ko/env-vars#variables)로 재충전 속도를 설정합니다.

676 

668## Write 도구 동작677## Write 도구 동작

669 678 

670Write 도구는 새 파일을 생성하거나 기존 파일을 제공된 전체 콘텐츠로 덮어씁니다. 추가하거나 병합하지 않습니다. 또한 Write는 [UTF-8이 아닌 파일](#non-utf-8-files)에 설명된 대로 바이트가 디코딩되지 않는 기존 파일도 덮어쓰며, 새 콘텐츠를 UTF-8로 저장합니다.679Write 도구는 새 파일을 생성하거나 기존 파일을 제공된 전체 콘텐츠로 덮어씁니다. 추가하거나 병합하지 않습니다. 또한 Write는 [UTF-8이 아닌 파일](#non-utf-8-files)에 설명된 대로 바이트가 디코딩되지 않는 기존 파일도 덮어쓰며, 새 콘텐츠를 UTF-8로 저장합니다.

Details

31| `CRYPT_E_NO_REVOCATION_CHECK` 또는 `CRYPT_E_REVOCATION_OFFLINE` | [차단된 인증서 해지 확인 우회](#tls-or-ssl-connection-errors) |31| `CRYPT_E_NO_REVOCATION_CHECK` 또는 `CRYPT_E_REVOCATION_OFFLINE` | [차단된 인증서 해지 확인 우회](#tls-or-ssl-connection-errors) |

32| `Failed to fetch version` 또는 다운로드 서버에 도달할 수 없음 | [네트워크 및 프록시 설정 확인](#check-network-connectivity) |32| `Failed to fetch version` 또는 다운로드 서버에 도달할 수 없음 | [네트워크 및 프록시 설정 확인](#check-network-connectivity) |

33| `The connection dropped while downloading the update` 또는 `Download timed out: exceeded the total deadline` | [업데이트 다시 실행 또는 프록시 설정](#the-connection-dropped-while-downloading-the-update) |33| `The connection dropped while downloading the update` 또는 `Download timed out: exceeded the total deadline` | [업데이트 다시 실행 또는 프록시 설정](#the-connection-dropped-while-downloading-the-update) |

34| `Release verification failed for Claude Code` | [`claude update` 또는 `claude install` 다시 실행](#release-verification-failed) |

35| 세션 하단에 빨간색으로 `Auto-update failed · Run claude doctor` 표시 | [셸에서 `claude update` 실행](#auto-update-failed) |

34| `irm is not recognized` 또는 `The token '&&' is not a valid statement separator` | [셸에 맞는 명령 사용](#wrong-install-command-on-windows) |36| `irm is not recognized` 또는 `The token '&&' is not a valid statement separator` | [셸에 맞는 명령 사용](#wrong-install-command-on-windows) |

35| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [Homebrew 업데이트](#homebrew-cask-unavailable-or-outdated) |37| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [Homebrew 업데이트](#homebrew-cask-unavailable-or-outdated) |

36| `Cask 'claude-code@latest' is not installed` | [설치한 cask 업그레이드](#cask-is-not-installed) |38| `Cask 'claude-code@latest' is not installed` | [설치한 cask 업그레이드](#cask-is-not-installed) |


631* 회사 프록시가 계속 전송을 닫는 경우 네트워크 팀에 `downloads.claude.ai`로부터의 전체 다운로드를 허용하도록 요청합니다. [네트워크 액세스 요구 사항](/docs/ko/network-config#network-access-requirements)을 참조하세요.633* 회사 프록시가 계속 전송을 닫는 경우 네트워크 팀에 `downloads.claude.ai`로부터의 전체 다운로드를 허용하도록 요청합니다. [네트워크 액세스 요구 사항](/docs/ko/network-config#network-access-requirements)을 참조하세요.

632* 셸에서 `claude doctor`를 실행하여 설치 진단을 확인합니다634* 셸에서 `claude doctor`를 실행하여 설치 진단을 확인합니다

633 635 

636### Release verification failed for Claude Code

637 

638`claude update` 또는 `claude install`에서 표시되는 이 메시지는 Claude Code가 설치하려던 릴리스가 정품인지 확인할 수 없어 아무것도 설치하지 않았음을 의미합니다. 이미 설치된 버전은 계속 작동합니다.

639 

640```text theme={null}

641Release verification failed for Claude Code <version> (<reason>). The update was not installed.

642```

643 

644메시지의 괄호 안 값에 해당하는 조치를 취합니다.

645 

646* **`sidecar_fetch_`로 시작하는 값**: 셸에서 같은 명령을 다시 실행합니다. `claude update`는 `Successfully updated from`으로 시작하는 줄을 출력하면 성공한 것이고, `claude install`은 `Claude Code successfully installed!`를 출력하면 성공한 것입니다.

647* **그 외의 값**: 나중에 같은 명령을 다시 시도합니다

648 

649어떤 값이든 메시지가 반복되면 전체 메시지를 포함하여 [문제를 보고](#still-stuck)하세요.

650 

651### 세션 푸터의 `Auto-update failed · Run claude doctor`

652 

653이 빨간색 줄은 Claude Code가 백그라운드에서 자체 업데이트를 시도했지만 업데이트가 설치되지 않았음을 의미합니다. 아무 조치 없이 계속 작업할 수 있습니다.

654 

655이 줄은 `claude doctor`를 안내하지만, 해당 명령의 `Last update attempt: failed (install_failed)` 줄은 날짜만 표시하고 원인은 알려 주지 않습니다. 업데이트를 완료하거나 실패 원인을 확인하려면 대신 셸에서 `claude update`를 실행합니다. 해당 설치도 실패하면 `claude update`가 출력하는 오류를 [오류 찾기](#find-your-error)에서 찾아봅니다.

656 

634### Windows에서 잘못된 설치 명령657### Windows에서 잘못된 설치 명령

635 658 

636`'irm' is not recognized`, `The token '&&' is not a valid statement separator`, `A parameter cannot be found that matches parameter name 'fsSL'` 또는 `'bash' is not recognized as the name of a cmdlet`이 표시되면 다른 셸 또는 운영 체제의 설치 명령을 복사했습니다. 명령이 아무것도 설치하지 않고 스크립트의 텍스트를 출력하면 일부만 실행했습니다.659`'irm' is not recognized`, `The token '&&' is not a valid statement separator`, `A parameter cannot be found that matches parameter name 'fsSL'` 또는 `'bash' is not recognized as the name of a cmdlet`이 표시되면 다른 셸 또는 운영 체제의 설치 명령을 복사했습니다. 명령이 아무것도 설치하지 않고 스크립트의 텍스트를 출력하면 일부만 실행했습니다.

Details

12| :- | :- |12| :- | :- |

13| `command not found`, 설치 실패, PATH 문제, `EACCES`, TLS 오류 | [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install) |13| `command not found`, 설치 실패, PATH 문제, `EACCES`, TLS 오류 | [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install) |

14| `The connection dropped while downloading the update` 또는 `aborted`로 업데이트 또는 설치 다운로드 실패 | [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |14| `The connection dropped while downloading the update` 또는 `aborted`로 업데이트 또는 설치 다운로드 실패 | [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

15| `Release verification failed for Claude Code`로 업데이트 또는 설치 실패 | [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install#release-verification-failed) |

16| 세션 하단에 빨간색으로 `Auto-update failed · Run claude doctor`가 표시됨 | [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install#auto-update-failed) |

15| 로그인 루프, OAuth 오류, `403 Forbidden`, "organization disabled", Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry 자격 증명 | [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install#login-and-authentication) |17| 로그인 루프, OAuth 오류, `403 Forbidden`, "organization disabled", Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry 자격 증명 | [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install#login-and-authentication) |

16| 설정이 적용되지 않음, hooks가 실행되지 않음, MCP 서버가 로드되지 않음 | [구성 디버깅](/docs/ko/debug-your-config) |18| 설정이 적용되지 않음, hooks가 실행되지 않음, MCP 서버가 로드되지 않음 | [구성 디버깅](/docs/ko/debug-your-config) |

17| 세션이 자동 모드에서 시작되었거나 Claude가 묻지 않고 파일을 편집하고 명령을 실행함 | [세션이 시작되는 모드](/docs/ko/permission-modes#which-mode-a-session-starts-in) |19| 세션이 자동 모드에서 시작되었거나 Claude가 묻지 않고 파일을 편집하고 명령을 실행함 | [세션이 시작되는 모드](/docs/ko/permission-modes#which-mode-a-session-starts-in) |

vs-code.md +16 −3

Details

174* **북마크**: 응답 위에 마우스를 올리고 **Bookmark response**를 클릭하여 저장하거나, 저장된 응답에서 **Remove bookmark**를 클릭하여 제거합니다.174* **북마크**: 응답 위에 마우스를 올리고 **Bookmark response**를 클릭하여 저장하거나, 저장된 응답에서 **Remove bookmark**를 클릭하여 제거합니다.

175 175 

176 저장된 응답을 검토하려면 Bookmarks 패널을 엽니다. Claude Code 패널 상단의 북마크 아이콘을 클릭하거나, 명령 메뉴의 Context 섹션에서 **Bookmarks**를 선택하거나, `/bookmarks`를 입력하면 됩니다. Claude Code v2.1.286 이상이 필요합니다.176 저장된 응답을 검토하려면 Bookmarks 패널을 엽니다. Claude Code 패널 상단의 북마크 아이콘을 클릭하거나, 명령 메뉴의 Context 섹션에서 **Bookmarks**를 선택하거나, `/bookmarks`를 입력하면 됩니다. Claude Code v2.1.286 이상이 필요합니다.

177* **Claude가 보내는 파일**: 세션이 [Remote Control](/docs/ko/remote-control#start-a-remote-control-session)에 연결되어 있고 Claude가 [`SendUserFile` 도구](/docs/ko/tools-reference)로 파일을 보내면, 대화에 **Sent report.md, chart.png** 같은 행이 표시됩니다. 파일 이름을 클릭하면 편집기에서 열립니다.177* **Claude가 보내는 파일**: 세션이 [Remote Control](/docs/ko/remote-control#start-a-remote-control-session)에 연결되어 있고 Claude가 [`SendUserFile` 도구](/docs/ko/tools-reference)로 파일을 보내면, 대화에 **Sent report.md, chart.png** 같은 행이 표시됩니다. 파일 이름을 클릭하면 편집기에서 열립니다. 이 행은 Focus view에서도 계속 표시됩니다. Claude Code v2.1.295 이상이 필요합니다.

178 

179 파일 경로가 네트워크 호스트를 가리키는 경우, 해당 파일은 `\\server\share\report.md`처럼 클릭할 수 없는 전체 경로로 표시됩니다. 파일을 열면 해당 호스트에 연결하게 되고, Windows에서는 [사용자의 Windows 자격 증명이 해당 호스트로 전송될 수 있기](/docs/ko/permissions#read-only-commands) 때문에 Claude Code는 해당 파일을 링크하지 않습니다.

178* **컨텍스트 표시기**: 프롬프트 상자에 Claude의 컨텍스트 윈도우를 얼마나 사용하고 있는지 표시됩니다. Claude는 필요할 때 자동으로 압축하며, `/compact`를 수동으로 실행할 수도 있습니다.180* **컨텍스트 표시기**: 프롬프트 상자에 Claude의 컨텍스트 윈도우를 얼마나 사용하고 있는지 표시됩니다. Claude는 필요할 때 자동으로 압축하며, `/compact`를 수동으로 실행할 수도 있습니다.

179* **프롬프트 캐시 시계**: 컨텍스트 표시기 옆의 시계 아이콘은 대화의 [프롬프트 캐시](/docs/ko/prompt-caching)가 만료되기까지 남은 시간을 추정합니다. 캐시의 5분 또는 1시간 [수명](/docs/ko/prompt-caching#cache-lifetime)부터 카운트다운하며, 캐시를 사용하는 각 응답마다 카운트다운이 다시 시작됩니다. 압축을 제외하면 [캐시를 무효화하는 작업](/docs/ko/prompt-caching#actions-that-invalidate-the-cache)은 시계를 재설정하지 않으므로, 모델을 전환한 후에도 남은 시간(분)이 계속 표시될 수 있습니다.181* **프롬프트 캐시 시계**: 컨텍스트 표시기 옆의 시계 아이콘은 대화의 [프롬프트 캐시](/docs/ko/prompt-caching)가 만료되기까지 남은 시간을 추정합니다. 캐시의 5분 또는 1시간 [수명](/docs/ko/prompt-caching#cache-lifetime)부터 카운트다운하며, 캐시를 사용하는 각 응답마다 카운트다운이 다시 시작됩니다. 압축을 제외하면 [캐시를 무효화하는 작업](/docs/ko/prompt-caching#actions-that-invalidate-the-cache)은 시계를 재설정하지 않으므로, 모델을 전환한 후에도 남은 시간(분)이 계속 표시될 수 있습니다.

180 * 카운트다운이 끝나기 전까지 아이콘에는 **12m**처럼 남은 시간(분)이 표시됩니다.182 * 카운트다운이 끝나기 전까지 아이콘에는 **12m**처럼 남은 시간(분)이 표시됩니다.


252 254 

253* **세션 제목**: 새 세션은 첫 메시지를 기반으로 AI가 생성한 제목을 받습니다.255* **세션 제목**: 새 세션은 첫 메시지를 기반으로 AI가 생성한 제목을 받습니다.

254* **이름 변경 및 보관**: 세션 위에 마우스를 올리면 이러한 작업이 나타납니다. 이름을 변경하여 설명적인 제목을 부여하거나, 보관하여 목록 하단의 **Archived sessions** 그룹으로 이동합니다.256* **이름 변경 및 보관**: 세션 위에 마우스를 올리면 이러한 작업이 나타납니다. 이름을 변경하여 설명적인 제목을 부여하거나, 보관하여 목록 하단의 **Archived sessions** 그룹으로 이동합니다.

257* **[`claudeProcessWrapper`](#extension-settings)가 설정된 경우 누락된 대화**: 확장 프로그램을 버전 2.1.304 이상으로 업데이트합니다. 그러면 누락되었던 대화와 함께 이 워크스페이스에서 `claude -p` 또는 [Agent SDK](/docs/ko/agent-sdk/overview)가 시작한 세션도 목록에 포함됩니다.

255 258 

256대화가 터미널의 `claude`나 다른 VS Code 창 같은 다른 Claude Code 프로세스에서 열려 있으면, 프롬프트 상자 대신 다음 알림이 나타납니다.259대화가 터미널의 `claude`나 다른 VS Code 창 같은 다른 Claude Code 프로세스에서 열려 있으면, 프롬프트 상자 대신 다음 알림이 나타납니다.

257 260 


308 311 

309* **claude.ai 플랜**: 현재 세션 및 주간 같은 플랜 한도에 대한 사용량 막대가 표시됩니다. 각 막대는 한도가 재설정되기까지 남은 시간을 보여줍니다.312* **claude.ai 플랜**: 현재 세션 및 주간 같은 플랜 한도에 대한 사용량 막대가 표시됩니다. 각 막대는 한도가 재설정되기까지 남은 시간을 보여줍니다.

310 313 

311 대화 상자는 플랜 한도에 영향을 주는 요인도 분석합니다. 캐시 미스, 긴 컨텍스트, 서브에이전트를 많이 사용하거나 병렬성이 높은 세션처럼 최근 사용량의 10% 이상을 차지하는 동작을 표시합니다. 표시된 각 동작에는 이를 줄이기 위한 팁이 함께 제공됩니다. 기여도 표는 각 스킬, 서브에이전트, 플러그인, MCP 서버에서 발생한 사용량을 보여줍니다.314 대화 상자는 플랜 한도에 영향을 주는 요인도 분석합니다.

315 

316 * **Recommendations**: 사용량을 줄이는 변경 사항으로, 행마다 하나씩 표시되며 `Trim ~/code/api/CLAUDE.md · 49k tokens per request`처럼 해당 변경 사항이 다루는 최근 사용량의 비율이 함께 나타납니다

317 * **Fix 버튼**: Claude Code가 적용할 수 있는 권장 사항을 적용하게 하려면 그 아래에 있는 **Fix both** 같은 버튼을 클릭합니다. 버튼이 어떤 행에 작용하는지와 이후 세션에서 어떤 일이 일어나는지 알아보려면 [수정 단축키로 권장 사항 적용하기](/docs/ko/costs#apply-recommendations-with-the-fix-shortcut)를 참조하세요. Claude Code v2.1.305 이상이 필요합니다.

318 

319 [Remote Control](/docs/ko/remote-control)이 연결되어 있는 동안에는 버튼이 표시되지 않습니다. Remote Control이 연결된 후 `The usage fix wasn’t fully sent. Open usage and try again.`이라는 경고가 나타나면, 다시 시도하기 전에 [Remote Control 연결을 해제](/docs/ko/remote-control#check-connection-status)하세요.

320 * **Attribution**: 각 스킬, 서브에이전트, 플러그인, MCP 서버에서 발생한 사용량을 보여주는 표

312 321 

313 Day 및 Week 토글을 사용하여 지난 24시간과 지난 7일 간에 전환합니다. 수치는 근사치이며 이 머신의 로컬 세션에서 계산되므로, 다른 기기나 claude.ai의 사용량은 포함되지 않습니다.322 Day 및 Week 토글을 사용하여 지난 24시간과 지난 7일 간에 전환합니다. 수치는 근사치이며 이 머신의 로컬 세션에서 계산되므로, 다른 기기나 claude.ai의 사용량은 포함되지 않습니다.

314* **기타 로그인**: [서드파티 제공업체](#use-third-party-providers)를 사용하거나 API 키를 사용하는 경우처럼 플랜 한도가 로그인에 적용되지 않으면, Usage 섹션에 대신 세션 자체의 비용과 토큰 사용량이 표시됩니다. CLI의 `/usage`는 [Session 블록](/docs/ko/costs#track-your-costs)에 동일한 합계를 표시합니다. 활동 표시줄의 세션 목록도 **Account & usage** 헤더 아래에 활성 세션의 합계를 표시합니다. Claude Code v2.1.277 이상이 필요합니다.323* **기타 로그인**: [서드파티 제공업체](#use-third-party-providers)를 사용하거나 API 키를 사용하는 경우처럼 플랜 한도가 로그인에 적용되지 않으면, Usage 섹션에 대신 세션 자체의 비용과 토큰 사용량이 표시됩니다. CLI의 `/usage`는 [Session 블록](/docs/ko/costs#track-your-costs)에 동일한 합계를 표시합니다. 활동 표시줄의 세션 목록도 **Account & usage** 헤더 아래에 활성 세션의 합계를 표시합니다. Claude Code v2.1.277 이상이 필요합니다.


573 582 

574백그라운드 셸 명령 또는 명령을 실행하는 [모니터](/docs/ko/tools-reference#monitor-tool)의 경우, 카드에는 명령의 최신 출력도 표시되며 명령이 실행되는 동안 출력이 새로 고쳐집니다.583백그라운드 셸 명령 또는 명령을 실행하는 [모니터](/docs/ko/tools-reference#monitor-tool)의 경우, 카드에는 명령의 최신 출력도 표시되며 명령이 실행되는 동안 출력이 새로 고쳐집니다.

575 584 

585#### 백그라운드 서브에이전트의 도구 호출 보기

586 

587서브에이전트가 도구 호출 없이 상태줄 하나로만 표시되는 경우, 프롬프트 상자에 `/tasks`를 입력하여 [에이전트 맵](#use-the-prompt-box)을 열고 그곳에서 해당 서브에이전트를 클릭합니다. 이 서브에이전트는 [백그라운드에서 실행 중](#the-run-in-background-action-is-missing-under-a-subagent)이며, 해당 카드에는 서브에이전트의 도구 호출과 트랜스크립트를 여는 버튼이 표시됩니다.

588 

576## VS Code 명령 및 단축키589## VS Code 명령 및 단축키

577 590 

578Command Palette를 열려면 Mac에서는 `Cmd+Shift+P`, Windows/Linux에서는 `Ctrl+Shift+P`를 누릅니다. 여기에 "Claude Code"를 입력하면 Claude Code 확장 프로그램에서 사용할 수 있는 모든 VS Code 명령을 확인할 수 있습니다.591Command Palette를 열려면 Mac에서는 `Cmd+Shift+P`, Windows/Linux에서는 `Ctrl+Shift+P`를 누릅니다. 여기에 "Claude Code"를 입력하면 Claude Code 확장 프로그램에서 사용할 수 있는 모든 VS Code 명령을 확인할 수 있습니다.


726 739 

727* **Claude의 응답**: 확장 프로그램은 각 응답이 완료되었을 때 한 번 안내하며, 텍스트가 스트리밍되는 동안에는 안내하지 않습니다. 스크린 리더는 코드 블록을 줄 수 요약으로 읽고, 링크는 레이블로 읽으며, 표는 셀 단위로 읽습니다. 전체 응답은 트랜스크립트에서 계속 읽을 수 있습니다.740* **Claude의 응답**: 확장 프로그램은 각 응답이 완료되었을 때 한 번 안내하며, 텍스트가 스트리밍되는 동안에는 안내하지 않습니다. 스크린 리더는 코드 블록을 줄 수 요약으로 읽고, 링크는 레이블로 읽으며, 표는 셀 단위로 읽습니다. 전체 응답은 트랜스크립트에서 계속 읽을 수 있습니다.

728* **권한 요청 및 질문**: 확장 프로그램은 권한 프롬프트가 나타날 때 Claude가 사용하려는 도구의 이름과 함께 요청을 안내합니다. Claude가 사용자에게 질문할 때와 Claude가 계획을 마치고 사용자의 검토를 기다릴 때도 같은 방식으로 안내합니다.741* **권한 요청 및 질문**: 확장 프로그램은 권한 프롬프트가 나타날 때 Claude가 사용하려는 도구의 이름과 함께 요청을 안내합니다. Claude가 사용자에게 질문할 때와 Claude가 계획을 마치고 사용자의 검토를 기다릴 때도 같은 방식으로 안내합니다.

729* **상태 변경**: 확장 프로그램은 Claude가 작업을 시작할 때, Claude가 사용자의 입력을 받을 준비가 되었을 때, Claude Code가 대화 압축을 시작할 때 안내합니다.742* **상태 변경**: 확장 프로그램은 Claude가 작업을 시작할 때, Claude가 사용자의 입력을 받을 준비가 되었을 때, Claude Code가 대화 압축을 시작할 때 안내합니다. 세션의 [SessionStart](/docs/ko/hooks#sessionstart) 훅이 아직 실행 중일 때 프롬프트를 보내면 스크린 리더는 "Running start-up hooks."라고도 안내합니다.

730* **대기 중인 메시지**: Claude가 작업하는 동안 메시지를 보내면 확장 프로그램은 해당 메시지에 대해 "Message queued."라고 안내합니다.743* **대기 중인 메시지**: Claude가 작업하는 동안 메시지를 보내면 확장 프로그램은 해당 메시지에 대해 "Message queued."라고 안내합니다.

731* **오류 및 모델 프롬프트**: 확장 프로그램은 대화 중 발생한 오류를 안내하며, [사용량 크레딧 동의 프롬프트](/docs/ko/model-config#fable-and-usage-credits) 또는 [플래그된 요청 프롬프트](/docs/ko/model-config#ask-before-switching)가 나타날 때도 안내합니다.744* **오류 및 모델 프롬프트**: 확장 프로그램은 대화 중 발생한 오류를 안내하며, [사용량 크레딧 동의 프롬프트](/docs/ko/model-config#fable-and-usage-credits) 또는 [플래그된 요청 프롬프트](/docs/ko/model-config#ask-before-switching)가 나타날 때도 안내합니다.

732 745 

workflows.md +66 −64

Details

363 363 

364## 실행 관리364## 실행 관리

365 365 

366실행이 시작되면 `/workflows` 보기에서 또는 입력 상자 아래의 작업 패널에서 진행 상황 줄을 확장하여 관리합니다.366실행이 시작되면 `/workflows` 보기에서, 또는 입력 상자 아래 작업 패널에서 해당 실행의 진행 줄을 펼쳐 관리할 수 있습니다.

367 367 

368실행을 중지하면 해당 에이전트의 프로세스가 계속 실행되는 동안 작업 패널에 유지됩니다. 다시 중지하면 Claude Code가 해당 프로세스에 다시 신호를 보냅니다.368실행을 중지하면 해당 실행의 에이전트 프로세스가 아직 실행 중인 동안에는 작업 패널에 계속 남아 있습니다. 다시 중지하면 Claude Code가 해당 프로세스에 다시 신호를 보냅니다.

369 369 

370### 일시 중지 후 재개370### 일시 중지 후 재개

371 371 

372`/workflows`에서 일시 중지된 실행을 재개하려면 선택하고 `p`를 누릅니다. 중지한 실행의 경우 Claude에게 같은 스크립트로 워크플로우를 다시 시작하도록 요청합니다. 중지된 실행의 에이전트가 아직 종료되지 않았으면 Claude Code는 재시작을 거부하므로 해당 에이전트의 두 번째 복사본이 함께 실행될 수 없습니다.372일시 중지된 실행은 `/workflows`에서 선택한 후 `p`를 눌러 재개합니다. 중지한 실행의 경우 Claude에게 같은 스크립트로 워크플로를 다시 시작하도록 요청합니다. 중지된 실행의 에이전트가 아직 종료되지 않았다면 Claude Code는 해당 에이전트가 종료될 때까지 재시작을 거부하므로, 같은 에이전트의 두 번째 사본이 함께 실행될 수 없습니다.

373 373 

374#### 다시 실행되는 에이전트374#### 다시 실행되는 에이전트

375 375 

376Claude Code는 에이전트가 시작된 순서대로 실행을 재생하며, 각 에이전트는 저장된 결과를 반환하거나 다시 실행합니다:376Claude Code는 에이전트가 시작되는 순서대로 실행을 재생하며, 각 에이전트는 저장된 결과를 반환하거나 다시 실행됩니다.

377 377 

378* **완료됨**: 저장된 결과를 반환합니다. 스크립트를 편집했거나 이전 에이전트가 다른 것을 반환했기 때문에 프롬프트가 이전 실행과 다른 첫 번째 에이전트는 다시 실행되며, 완료된 에이전트도 포함하여 그 이후의 모든 에이전트도 실행됩니다.378* **완료됨**: 저장된 결과를 반환합니다. 스크립트를 편집했거나 앞선 에이전트가 다른 결과를 반환하여 프롬프트가 이전 실행과 달라진 첫 번째 에이전트는 다시 실행되며, 그 뒤의 모든 에이전트도 완료된 에이전트를 포함하여 다시 실행됩니다.

379* **중지했을 때 여전히 실행 중**: 다시 시작합니다. 전체 실행을 중지해도 어떤 에이전트도 실패한 것으로 간주되지 않습니다.

380* **실패함**: 다시 실행되며, 완료된 에이전트도 포함하여 그 이후에 시작된 모든 에이전트도 실행됩니다. [`/workflows`](#watch-the-run)에서 선택하고 `x`를 눌러 단일 에이전트만 중지하면 실패한 것으로 간주됩니다.

381 379 

382마지막 경우는 이미 완료된 팬아웃 작업을 다시 실행하는 중간의 실패를 의미합니다. 스크립트가 A, B, C, D를 순서대로 시작하고 B가 실패하면 재시작하면 A는 캐시에서 반환되고 B, C, D는 다시 실행됩니다.380 v2.1.305 이전에는 `pipeline()` 항목이나 `parallel()` 작업이 각각 둘 이상의 에이전트를 실행한 스크립트를 편집하지 않고 다시 시작할 때도 완료된 에이전트가 다시 실행될 수 있었습니다. 새 실행에서 이러한 재실행을 막으려면 Claude Code를 업데이트하세요.

381* **중지 시점에 실행 중이었음**: 처음부터 다시 시작합니다. 전체 실행을 중지해도 어떤 에이전트도 실패한 것으로 간주되지 않습니다.

382* **실패함**: 다시 실행되며, 스크립트가 그 뒤에 시작하는 모든 에이전트도 완료된 에이전트를 포함하여 다시 실행됩니다. [`/workflows`](#watch-the-run)에서 에이전트 하나를 선택하고 `x`를 눌러 해당 에이전트만 중지하면 실패로 간주됩니다.

383 383 

384A, B, C, D를 시작하던 스크립트를 A, C, B, D를 시작하도록 편집하면, 이전 실행에서는 B가 두 번째로 시작되었지만 이제는 C가 두 번째로 시작됩니다. 재시작 시 A는 캐시에서 반환되고 C, B, D는 다시 실행됩니다.384마지막 경우는 팬아웃 도중에 실패가 발생하면 이미 완료된 작업까지 다시 실행된다는 의미입니다. 스크립트가 A, B, C, D를 순서대로 시작하고 B가 실패하면, 다시 시작할 때 A는 캐시에서 반환되고 B, C, D는 다시 실행됩니다.

385 

386A, B, C, D를 시작하던 스크립트를 A, C, B, D 순서로 시작하도록 편집하면, 두 번째로 시작하는 에이전트는 이전 실행에서 B였던 자리에 이제 C가 됩니다. 다시 시작하면 A는 캐시에서 반환되고 C, B, D는 다시 실행됩니다.

385 387 

386#### 세션을 떠난 후 재개388#### 세션을 떠난 후 재개

387 389 

388같은 Claude Code 세션 내에서 실행을 재개할 수 있습니다. 세션을 떠날 때 실행 중인 워크플로우에 어떤 일이 발생하는지는 어떻게 떠나는지에 따라 달라집니다:390실행은 같은 Claude Code 세션 안에서 재개할 수 있습니다. 세션을 떠날 때 실행 중인 워크플로에 어떤 일이 일어나는지는 세션을 떠나는 방식에 따라 다릅니다.

389 391 

390* [세션을 백그라운드로 전환](/docs/ko/agent-view#what-carries-over-when-you-background)하면 Claude Code는 백그라운드 세션에서 같은 방식으로 실행을 재생하고 계속합니다.392* [세션을 백그라운드로 보내면](/docs/ko/agent-view#what-carries-over-when-you-background) Claude Code가 백그라운드 세션에서 같은 방식으로 실행을 재생하고 계속 진행합니다.

391* [에이전트 보기가 켜져 있는](/docs/ko/agent-view#from-inside-a-session) 동안 Claude Code를 종료하면 종료 대화상자에서 `Move to background and exit`를 제공하며, 이는 같은 방식으로 실행을 이월합니다. 대신 `Exit and stop tasks`를 선택하거나 옵션이 제공되지 않으면 실행은 세션과 함께 중지됩니다. Claude Code는 `~/.claude/projects/`의 해당 세션 디렉토리 아래에 실행의 저장된 결과를 유지하므로 `claude --resume`으로 재개한 세션은 Claude에게 워크플로우를 다시 시작하도록 요청할 때 이를 재생할 수 있으며, 새로 시작한 세션은 재생할 것이 없어서 워크플로우를 처음부터 시작합니다.393* 워크플로가 실행 중이고 [agent view가 켜져 있는](/docs/ko/agent-view#from-inside-a-session) 상태에서 Claude Code를 종료하면, 종료 대화 상자에 `Move to background and exit` 옵션이 표시되며 이 옵션은 같은 방식으로 실행을 이어 갑니다. 대신 `Exit and stop tasks`를 선택하거나 해당 옵션이 표시되지 않으면 실행은 세션과 함께 중지됩니다. Claude Code는 실행의 저장된 결과를 `~/.claude/projects/` 아래 해당 세션 디렉터리에 보관하므로, `claude --resume`으로 재개한 세션에서 Claude에게 워크플로를 다시 시작하도록 요청하면 저장된 결과를 재생할 수 있습니다. 새로 시작한 세션에서는 Claude가 다시 시작할 이전 실행이 없으므로 워크플로를 새 실행으로 처음부터 시작합니다.

392 394 

393[클라우드 세션](/docs/ko/claude-code-on-the-web)에서 Claude Code는 또한 세션의 대화 기록과 함께 실행의 결과를 저장하며, 이는 세션의 VM이 회수될 때 생존합니다. [이러한 세션을 다시 열고](/docs/ko/claude-code-on-the-web#environment-expired) Claude에게 워크플로우를 다시 시작하도록 요청하면 완료된 에이전트는 여전히 저장된 결과를 반환합니다.395[클라우드 세션](/docs/ko/claude-code-on-the-web)에서는 Claude Code가 실행 결과를 세션의 대화 기록과 함께 저장하며, 이 기록은 세션의 VM이 회수된 후에도 유지됩니다. [이러한 세션을 다시 열고](/docs/ko/claude-code-on-the-web#environment-expired) Claude에게 워크플로를 다시 시작하도록 요청하면, 완료된 에이전트는 여전히 저장된 결과를 반환합니다.

394 396 

395로컬 및 클라우드 세션 모두에서 Claude가 이전 실행을 다시 시작하고 Claude Code가 해당 실행의 저장된 결과를 전혀 찾을 수 없으면 재시작은 실행을 처음부터 시작하는 대신 `nothing to resume` 오류로 실패합니다. Claude에게 워크플로우를 새 실행으로 처음부터 시작하도록 요청합니다.397로컬 세션과 클라우드 세션 모두에서, Claude가 이전 실행을 다시 시작할 때 Claude Code가 해당 실행의 저장된 결과를 전혀 찾을 수 없으면, 실행을 자동으로 처음부터 시작하는 대신 `nothing to resume` 오류와 함께 재시작이 실패합니다. 이 경우 Claude에게 워크플로를 새 실행으로 처음부터 시작하도록 요청하세요.

396 398 

397### 사용량 제한에 도달했을 때399### 실행이 사용 한도에 도달한 경우

398 400 

399에이전트가 claude.ai [사용량 제한](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset)에 도달하면 실행이 해당 에이전트를 실패시키는 대신 일시 중지됩니다: 제한에 도달한 에이전트는 재설정을 기다리고 새로운 에이전트는 시작되지 않습니다. 제한이 재설정된 직후 대기 중인 에이전트가 다시 실행되고 실행이 자동으로 계속됩니다. Claude Code v2.1.271 이상이 필요합니다. 이전 버전에서는 영향을 받는 에이전트가 실패합니다.401에이전트가 claude.ai [사용 한도](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset)에 도달하면 해당 에이전트를 실패 처리하는 대신 실행이 일시 중지됩니다. 한도에 도달한 에이전트는 한도가 재설정될 때까지 대기하며, 새 에이전트는 시작되지 않습니다. 한도가 재설정되고 잠시 후 대기 중이던 에이전트가 다시 실행되고 실행이 자동으로 계속됩니다. Claude Code v2.1.271 이상이 필요하며, 이전 버전에서는 영향을 받은 에이전트가 실패합니다.

400 402 

401실행이 대기하는 동안 작업 패널의 진행 상황 줄과 [`/workflows`](#watch-the-run) 헤더는 제한이 재설정될 때를 표시합니다.403실행이 대기하는 동안 작업 패널의 진행 줄과 [`/workflows`](#watch-the-run) 헤더에 한도가 재설정되는 시점이 표시됩니다.

402 404 

403실행은 다음 모든 조건이 충족될 때만 일시 중지됩니다. 하나라도 충족되지 않으면 영향을 받는 에이전트가 실패합니다:405실행은 다음 조건이 모두 충족될 때만 일시 중지되며, 하나라도 충족되지 않으면 영향을 받은 에이전트가 대신 실패합니다.

404 406 

405* 세션이 대화형이고 claude.ai 구독으로 로그인되어 있습니다. `claude -p`를 사용한 [비대화형 모드](/docs/ko/headless), [Agent SDK](/docs/ko/agent-sdk/overview), [백그라운드 세션](/docs/ko/agent-view), [Remote Control](/docs/ko/remote-control) 또는 [에이전트 팀](/docs/ko/agent-teams) 팀원 세션에서는 실행이 일시 중지되지 않습니다.407* 세션이 대화형이며 claude.ai 구독으로 로그인되어 있습니다. `claude -p`를 사용하는 [비대화형 모드](/docs/ko/headless)나 [Agent SDK](/docs/ko/agent-sdk/overview), [백그라운드 세션](/docs/ko/agent-view), [Remote Control](/docs/ko/remote-control) 또는 [에이전트 팀](/docs/ko/agent-teams) 팀원 세션에서는 실행이 일시 중지되지 않습니다.

406* [`autoContinueAtUsageLimit`](/docs/ko/settings-reference#autocontinueatusagelimit)이 켜져 있으며, 이는 세션 자체가 [사용량 제한을 기다릴 수 있도록](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset) 하는 동일한 설정입니다. 대기 중에 이를 끄면 대기가 종료되고 대기 중인 에이전트가 실패합니다.408* [`autoContinueAtUsageLimit`](/docs/ko/settings-reference#autocontinueatusagelimit)가 켜져 있습니다. 이는 세션 자체가 [사용 한도가 재설정될 때까지 대기](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset)하도록 하는 것과 같은 설정입니다. 대기 중에 이 설정을 끄면 대기가 종료되고 대기 중이던 에이전트가 실패합니다.

407* 제한이 24시간 이내에 재설정됩니다. 주간 제한은 더 멀리 재설정될 수 있습니다.409* 한도가 24시간 이내에 재설정됩니다. 주간 한도는 그보다 더 늦게 재설정될 수 있습니다.

408* 실행이 아직 두 번 대기하지 않았습니다. 세 번째로 제한에 도달하면 에이전트가 실패합니다.410* 실행이 이미 두 번 대기하지 않았습니다. 세 번째로 한도에 도달하면 에이전트가 실패합니다.

409 411 

410### 에이전트가 멈추고 다시 시작될 때412### 에이전트가 멈추고 다시 시작되는 경우

411 413 

412출력이 충분히 오랫동안 도착하지 않는 에이전트는 같은 프롬프트로 처음부터 다시 시작합니다. [`/workflows`](#watch-the-run)에서 해당 에이전트의 이름에 `(retry 1)` 접미사가 붙고 세부 정보에 `attempt 2 (stalled)`가 표시됩니다. 재시작은 자동으로 이루어지므로 별도로 조치할 필요가 없습니다.414출력이 충분히 오랫동안 도착하지 않는 에이전트는 같은 프롬프트로 처음부터 다시 시작합니다. [`/workflows`](#watch-the-run)에서 해당 에이전트 이름에 `(retry 1)` 접미사가 붙고, 세부 정보에 `attempt 2 (stalled)`가 표시됩니다. 재시작은 자동으로 이루어지므로 별도로 조치할 필요가 없습니다.

413 415 

414새 시도는 멈춘 시도의 트랜스크립트 없이 시작됩니다. 멈춘 시도가 이미 변경한 파일은 변경된 상태로 유지되며, 해당 시도가 사용한 토큰은 실행의 총계에 그대로 남습니다. 정체 기간은 Claude Code가 시도를 종료하기 전에 에이전트의 출력을 기다리는 시간입니다. 에이전트가 자체 도구 호출이나 [사용 한도 재설정](#when-a-run-hits-your-usage-limit)을 기다리는 데 보내는 시간은 정체 기간에 포함되지 않습니다.416새 시도는 멈춘 시도의 트랜스크립트 없이 시작됩니다. 멈춘 시도가 이미 변경한 파일은 변경된 상태로 유지되며, 해당 시도가 사용한 토큰은 실행의 총계에 그대로 포함됩니다. 멈춤 기간은 Claude Code가 시도를 종료하기 전에 에이전트의 출력을 기다리는 시간입니다. 에이전트가 자체 도구 호출이나 [사용 한도 재설정](#when-a-run-hits-your-usage-limit)을 기다리는 시간은 멈춤 기간에 포함되지 않습니다.

415 417 

416에이전트는 `r`로 요청한 재시작을 포함하여 최대 다섯 번까지 다시 시작합니다. 여섯 번째 시도도 멈추면 `agent()` 호출이 실패하며, 오류의 시작 부분에 그 이유가 표시됩니다:418에이전트는 `r`로 요청한 재시작을 포함하여 최대 다섯 번까지 다시 시작합니다. 여섯 번째 시도도 멈추면 `agent()` 호출이 실패하며, 오류의 시작 부분에 그 이유가 표시됩니다.

417 419 

418* `agent stalled on all 6 attempts`: 모든 시도가 정체 기간 내내 출력 없이 지나갔습니다. 에이전트의 작업 특성상 그만큼 오래 출력이 없는 경우 정체 기간을 늘립니다420* `agent stalled on all 6 attempts`: 모든 시도가 기간 전체 동안 출력 없이 지나갔습니다. 에이전트의 작업 특성상 그만큼 오래 출력이 없다면 기간을 늘리세요

419* `agent lost its reply on all 6 attempts`: 모든 시도의 응답 스트림이 멈췄고 Claude Code가 기다리기를 포기했습니다. [스트리밍 유휴 감시](/docs/ko/network-config#streaming-idle-watchdogs)가 먼저 응답을 종료했으므로 정체 기간을 늘려도 도움이 되지 않으며, 해당 감시의 타임아웃은 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 설정합니다421* `agent lost its reply on all 6 attempts`: 모든 시도의 응답 스트림이 멈췄고 Claude Code가 대기를 포기했습니다. [스트리밍 유휴 감시기](/docs/ko/network-config#streaming-idle-watchdogs)가 먼저 응답을 종료했으므로 멈춤 기간을 늘려도 도움이 되지 않으며, 해당 감시기의 타임아웃은 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 설정합니다

420* `agent abandoned after 6 attempts`: 시도들이 서로 다른 방식으로 종료되었으며, 오류에 순서대로 나열됩니다422* `agent abandoned after 6 attempts`: 시도들이 서로 다른 방식으로 종료되었으며, 오류에 그 방식이 순서대로 나열됩니다

421 423 

422정체 기간이 끝나기 전에 에이전트가 출력을 생성할 시간을 더 주려면:424기간이 끝나기 전에 에이전트가 출력을 생성할 시간을 더 주려면 다음과 같이 합니다.

423 425 

424* **단일 에이전트**: 해당 에이전트의 `agent()` 호출에 `stallMs`를 밀리초 단위로 전달합니다. 예를 들어 30분의 경우 `agent(prompt, { stallMs: 1800000 })`입니다426* **에이전트 하나**: 해당 `agent()` 호출에 밀리초 단위로 `stallMs`를 전달합니다. 예를 들어 30분이면 `agent(prompt, { stallMs: 1800000 })`입니다

425* **모든 에이전트**: [`CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`](/docs/ko/env-vars#variables)를 설정합니다. 이 값은 워크플로 외부의 서브에이전트에도 적용됩니다427* **모든 에이전트**: [`CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`](/docs/ko/env-vars#variables)를 설정합니다. 이 값은 워크플로 외부의 서브에이전트에도 적용됩니다

426 428 

427실패 후 실행이 계속되는지는 스크립트가 에이전트를 호출한 방식에 따라 달라집니다:429실패 후 실행이 계속되는지는 스크립트가 에이전트를 호출한 방식에 따라 다릅니다.

428 430 

429* **[`parallel()` 또는 `pipeline()`](#what-the-saved-script-looks-like) 내부**: 에이전트의 결과 대신 `null`로 실행이 계속됩니다431* **[`parallel()` 또는 `pipeline()`](#what-the-saved-script-looks-like) 내부**: 에이전트의 결과 자리에 `null`이 들어간 채로 실행이 계속됩니다

430* **직접 await한 경우**: 실행이 오류와 함께 종료됩니다432* **직접 await한 경우**: 오류와 함께 실행이 종료됩니다

431 433 

432다시 시도하려면 Claude에게 워크플로를 다시 시작하도록 요청합니다. 무엇이 다시 실행되는지는 [일시 중지 후 재개](#resume-after-a-pause)에서 다룹니다.434다시 시도하려면 Claude에게 워크플로를 다시 시작하도록 요청하세요. 다시 실행되는 항목은 [일시 중지 후 재개](#resume-after-a-pause)에서 설명합니다.

433 435 

434### 비용436### 비용

435 437 

436워크플로우는 많은 에이전트를 생성하므로 단일 실행은 대화에서 같은 작업을 수행하는 것보다 의미 있게 더 많은 토큰을 사용할 수 있습니다. 실행은 요금제의 사용량 및 속도 제한에 포함됩니다.438워크플로는 많은 에이전트를 생성하므로, 한 번의 실행이 같은 작업을 대화로 처리하는 것보다 상당히 많은 토큰을 사용할 수 있습니다. 실행은 플랜의 사용량 및 속도 제한에 포함됩니다.

437 439 

438대규모 작업에 커밋하기 전에 지출을 측정하려면 먼저 작은 부분에서 워크플로우를 실행합니다: 전체 저장소 대신 한 디렉토리, 또는 광범위한 질문 대신 좁은 질문입니다. `/workflows` 보기는 실행이 진행되면서 각 에이전트의 토큰 사용량을 표시하며, 완료된 작업을 잃지 않고 언제든지 실행을 중지할 수 있습니다. [일시 중지 후 재개](#resume-after-a-pause)는 중지된 실행이 유지하는 것을 다룹니다. 런타임의 [에이전트 상한](#behavior-and-limits)은 단일 실행이 생성할 수 있는 에이전트 수를 제한하여 폭주 스크립트의 비용을 제한합니다. 실행을 더 적은 에이전트로 유지하려면 `small` [크기 지침](#set-a-size-guideline)을 선택합니다.440대규모 작업에 착수하기 전에 비용을 가늠하려면 먼저 작은 범위에서 워크플로를 실행해 보세요. 예를 들어 저장소 전체 대신 디렉터리 하나를, 광범위한 질문 대신 범위가 좁은 질문을 사용합니다. `/workflows` 보기에는 실행이 진행되는 동안 각 에이전트의 토큰 사용량이 표시되며, 언제든지 그곳에서 실행을 중지할 수 있고 대개 완료된 작업은 손실되지 않습니다. 중지된 실행에서 유지되는 항목은 [일시 중지 후 재개](#resume-after-a-pause)에서 설명합니다. 런타임의 [에이전트 상한](#behavior-and-limits)은 단일 실행이 생성할 수 있는 에이전트 수를 제한하므로, 통제를 벗어난 스크립트의 비용에도 상한이 생깁니다. 더 적은 에이전트로 실행하려면 `small` [규모 가이드라인](#set-a-size-guideline)을 선택하세요.

439 441 

440Claude Code는 또한 비정상적으로 커지는 실행에 플래그를 지정합니다. 워크플로우가 25개 이상의 에이전트를 예약하거나 예상 토큰 총계가 150만을 초과하면 입력 상자 아래의 작업 패널에서 진행 상황 줄에 `Large workflow` 경고가 표시됩니다. 경고는 실행을 중지할 수 있는 [`/workflows`](#watch-the-run)를 가리킵니다.442Claude Code는 비정상적으로 커지는 실행도 표시합니다. 워크플로가 25개를 초과하는 에이전트를 예약하거나 예상 토큰 총계가 150만 개를 넘으면, 입력 상자 아래 작업 패널의 진행 줄에 `Large workflow` 경고가 표시됩니다. 이 경고는 실행을 중지할 수 있는 [`/workflows`](#watch-the-run)로 안내합니다.

441 443 

442경고는 권고사항입니다: 실행을 일시 중지하거나 제한하지 않습니다. 경고를 볼 때 두 가지 설정이 변경됩니다:444이 경고는 권고일 뿐이며 실행을 일시 중지하거나 제한하지 않습니다. 경고가 표시되는 시점은 두 가지 설정에 따라 달라집니다.

443 445 

444* [크기 지침](#set-a-size-guideline)을 직접 선택하면 지침의 에이전트 수가 25개 에이전트 임계값을 대체합니다. 기본 제공 기본 지침은 임계값을 25로 유지합니다.446* [규모 가이드라인](#set-a-size-guideline)을 직접 선택하면 해당 가이드라인의 에이전트 수가 25개 임계값을 대체합니다. 기본 제공 기본 가이드라인에서는 임계값이 25개로 유지됩니다.

445* [ultracode](#let-claude-decide-with-ultracode)가 켜진 세션은 경고를 표시하지 않습니다. ultracode를 켜는 것이 이미 대규모 실행에 동의했기 때문입니다.447* [ultracode](#let-claude-decide-with-ultracode)가 켜진 세션에서는 경고가 표시되지 않습니다. ultracode를 켜는 것 자체가 대규모 실행에 동의하는 것이기 때문입니다.

446 448 

447Claude Code는 각 워크플로우 에이전트의 모델을 [서브에이전트에 사용하는 것과 같은 순서](/docs/ko/sub-agents#choose-a-model)로 선택합니다. 스크립트가 단계에 대해 이름을 지정하는 모델은 해당 순서에서 호출별 모델로 계산됩니다. 다른 것이 하나를 할당하지 않으면 에이전트는 세션의 모델에서 실행됩니다.449Claude Code는 [서브에이전트에 사용하는 것과 같은 순서](/docs/ko/sub-agents#choose-a-model)로 각 워크플로 에이전트의 모델을 선택합니다. 스크립트가 단계에 지정한 모델은 이 순서에서 호출별 모델로 간주됩니다. 다른 방식으로 모델이 지정되지 않으면 에이전트는 세션의 모델로 실행됩니다.

448 450 

449모델 비용을 제어하려면:451모델 비용을 제어하려면 다음과 같이 합니다.

450 452 

451* 일상적인 작업을 위해 일반적으로 더 작은 모델로 전환하는 경우 대규모 실행 전에 `/model`을 확인합니다453* 일상적인 작업에 주로 더 작은 모델로 전환해 사용한다면 대규모 실행 전에 `/model`을 확인합니다

452* 작업을 설명할 때 Claude에게 가장 강력한 것이 필요하지 않은 단계에 더 작은 모델을 사용하도록 요청합니다454* 작업을 설명할 때 가장 강력한 모델이 필요하지 않은 단계에는 더 작은 모델을 사용하도록 Claude에게 요청합니다

453 455 

454조직의 [`availableModels` 허용 목록](/docs/ko/model-config#restrict-model-selection)이 스크립트가 에이전트에 대해 요청하는 모델을 차단하면 해당 에이전트는 대신 대체 모델에서 실행되며, [서브에이전트와 같은 대체 규칙](/docs/ko/sub-agents#choose-a-model)을 따릅니다.456조직의 [`availableModels` 허용 목록](/docs/ko/model-config#restrict-model-selection)이 스크립트가 에이전트에 요청한 모델을 차단하면, 해당 에이전트는 [서브에이전트와 같은 대체 규칙](/docs/ko/sub-agents#choose-a-model)에 따라 대체된 모델로 실행됩니다.

455 457 

456### 크기 지침 설정458### 규모 가이드라인 설정

457 459 

458크기 지침은 Claude가 동적 워크플로를 작성할 때 목표로 하는 에이전트 수를 알려줍니다. Claude Code는 지침을 상한이 아닌 조언으로 Claude에 보내므로 다른 규모를 요구하는 프롬프트는 여전히 이를 재정의합니다.460규모 가이드라인은 Claude가 동적 워크플로를 작성할 때 목표로 삼을 에이전트 수를 알려 줍니다. Claude Code는 이 가이드라인을 상한이 아닌 조언으로 Claude에 전달하므로, 다른 규모를 요구하는 프롬프트는 여전히 이를 재정의합니다.

459 461 

460각 값은 에이전트 수에 매핑됩니다:462각 값은 다음 에이전트 수에 대응합니다.

461 463 

462| 값 | Claude가 목표로 하는 에이전트 수 |464| 값 | Claude가 목표로 하는 에이전트 수 |

463| :- | :- |465| :- | :- |

464| `unrestricted` | 지침 없음: Claude가 작업에 맞게 워크플로우 크기를 조정합니다 |466| `unrestricted` | 가이드라인 없음: Claude가 작업에 맞게 워크플로 규모를 정합니다 |

465| `small` | 5개 미만의 에이전트 |467| `small` | 5개 미만의 에이전트 |

466| `medium` | 10개 미만의 에이전트 |468| `medium` | 10개 미만의 에이전트 |

467| `large` | 50개 미만의 에이전트 |469| `large` | 50개 미만의 에이전트 |

468 470 

469기본값은 `medium`이거나 Claude Code v2.1.271 이상에서 Pro 요금제로 로그인한 경우 `small`입니다. 값을 선택할 때까지 `/config` 행은 값을 기본값으로 표시하고 워크플로우의 `Running in background` 줄은 크기를 이름 지정합니다. Claude Code v2.1.219 이상이 필요합니다. 이전 버전은 `unrestricted`를 기본값으로 합니다.471기본값은 `medium`이며, Claude Code v2.1.271 이상에서 Pro 플랜으로 로그인한 경우에는 `small`입니다. 값을 선택하기 전까지는 `/config` 행에 해당 값이 기본값으로 표시되며, 워크플로의 `Running in background` 줄에 현재 적용 중인 규모가 표시됩니다. Claude Code v2.1.219 이상이 필요하며, 이전 버전의 기본값은 `unrestricted`입니다.

470 472 

471지침을 변경하려면 `/config`에서 동적 워크플로우 크기 설정에 대한 값을 선택하거나 `/config workflowSizeGuideline=small`을 실행합니다. v2.1.219 이상에서는 모든 설정 파일에서 [`workflowSizeGuideline` 키](/docs/ko/settings-reference#workflowsizeguideline)를 설정할 수도 있습니다. 해당 값은 `/config`보다 우선하며 Claude Code는 설정 파일이 하나를 제공하는 동안 `/config` 행을 숨깁니다.473가이드라인을 변경하려면 `/config`에서 Dynamic workflow size 설정의 값을 선택하거나 `/config workflowSizeGuideline=small`을 실행합니다. v2.1.219 이상에서는 모든 설정 파일에서 [`workflowSizeGuideline` 키](/docs/ko/settings-reference#workflowsizeguideline)를 설정할 수도 있습니다. 이 값은 `/config`보다 우선하며, 설정 파일에서 값을 제공하는 동안 Claude Code는 `/config` 행을 숨깁니다.

472 474 

473변경 사항은 다음 프롬프트에서 적용됩니다. [런타임 에이전트 상한](#behavior-and-limits)은 설정에 관계없이 여전히 적용됩니다.475변경 사항은 다음 프롬프트부터 적용됩니다. 설정과 관계없이 [런타임 에이전트 상한](#behavior-and-limits)은 계속 적용됩니다.

474 476 

475### 워크플로우 끄기477### 워크플로 끄기

476 478 

477워크플로우는 CLI, Desktop 앱, IDE 확장, `claude -p`를 사용한 [비대화형 모드](/docs/ko/headless), [Agent SDK](/docs/ko/agent-sdk/overview)에서 사용 가능합니다. 같은 비활성화 설정이 모든 표면에 적용됩니다.479워크플로는 CLI, Desktop 앱, IDE 확장 프로그램, `claude -p`를 사용하는 [비대화형 모드](/docs/ko/headless), [Agent SDK](/docs/ko/agent-sdk/overview)에서 사용할 수 있습니다. 모든 사용 환경에 같은 비활성화 설정이 적용됩니다.

478 480 

479자신을 위해 워크플로우를 끄려면:481본인에 대해 워크플로를 끄려면 다음과 같이 합니다.

480 482 

481* `/config`에서 동적 워크플로우를 끕니다. 세션 간에 지속됩니다.483* `/config`에서 Dynamic workflows를 끕니다. 세션 간에 유지됩니다.

482* `~/.claude/settings.json`에서 `"disableWorkflows": true`를 설정합니다. 세션 간에 지속됩니다.484* `~/.claude/settings.json`에 `"disableWorkflows": true`를 설정합니다. 세션 간에 유지됩니다.

483* `CLAUDE_CODE_DISABLE_WORKFLOWS=1`을 설정합니다. 시작 시 읽으므로 설정한 곳 어디든 적용됩니다.485* `CLAUDE_CODE_DISABLE_WORKFLOWS=1`을 설정합니다. 시작 시 읽히므로 설정한 모든 곳에 적용됩니다.

484 486 

485전체 조직을 위해 워크플로우를 끄려면 [관리 설정](/docs/ko/server-managed-settings)에서 `"disableWorkflows": true`를 설정하거나 [Claude Code 관리 설정](https://claude.ai/admin-settings/claude-code) 페이지의 토글을 사용합니다.487조직 전체에 대해 워크플로를 끄려면 [관리형 설정](/docs/ko/server-managed-settings)에 `"disableWorkflows": true`를 설정하거나 [Claude Code 관리자 설정](https://claude.ai/admin-settings/claude-code) 페이지의 토글을 사용합니다.

486 488 

487워크플로가 비활성화되면:489워크플로가 비활성화되면 다음과 같이 됩니다.

488 490 

489* `/workflows`, 워크플로 명령, `/workflow-authoring` 스킬을 사용할 수 없습니다491* `/workflows`, 워크플로 명령, `/workflow-authoring` 스킬을 사용할 수 없습니다

490* `ultracode` 키워드가 더 이상 실행을 트리거하지 않으며, **Ultracode** 토글이 `/effort`에서 제거됩니다492* `ultracode` 키워드가 더 이상 실행을 트리거하지 않으며, `/effort`에서 **Ultracode** 토글이 제거됩니다

491 493 

492이미 진행 중인 실행은 계속 진행됩니다.494이미 진행 중이던 실행은 계속됩니다.

493 495 

494워크플로우를 끄면 [ultracode](#let-claude-decide-with-ultracode)도 사용할 수 없게 됩니다. ultracode만 제외하는 관리 설정은 없습니다: [사용 가능한](/docs/ko/model-config#when-ultracode-is-available) 곳이면 사용자는 `/effort ultracode`로 켤 수 있습니다. [노력 상한](/docs/ko/model-config#organization-effort-limits)은 ultracode가 켜진 세션이 실행하는 노력 수준을 낮추지만 ultracode를 끄지는 않습니다.496워크플로를 끄면 [ultracode](#let-claude-decide-with-ultracode)도 사용할 수 없게 됩니다. ultracode만 단독으로 막는 관리형 설정은 없습니다. ultracode를 [사용할 수 있는](/docs/ko/model-config#when-ultracode-is-available) 곳이라면 어디서든 사용자가 `/effort ultracode`로 켤 수 있습니다. [effort 상한](/docs/ko/model-config#organization-effort-limits)은 ultracode가 켜진 세션이 실행되는 effort 수준을 낮추지만, ultracode를 끄지는 않습니다.

495 497 

496## 관련 리소스498## 관련 리소스

497 499 

worktrees.md +1 −0

Details

58 58 

59* **Worktree가 깨끗함**: 이름 없는 세션의 경우 Claude는 worktree와 해당 브랜치를 자동으로 제거합니다. [이름이 지정된](/docs/ko/sessions#name-your-sessions) 세션은 나중을 위해 worktree를 유지할 수 있도록 먼저 프롬프트를 표시합니다.59* **Worktree가 깨끗함**: 이름 없는 세션의 경우 Claude는 worktree와 해당 브랜치를 자동으로 제거합니다. [이름이 지정된](/docs/ko/sessions#name-your-sessions) 세션은 나중을 위해 worktree를 유지할 수 있도록 먼저 프롬프트를 표시합니다.

60* **Worktree에 작업이 있음**: Claude는 worktree를 유지하거나 제거할지 묻습니다. 유지하면 디렉토리와 브랜치가 보존됩니다. 나중에 돌아오려면 Claude Code가 종료 시 출력하는 `claude --worktree <name> --resume` 명령을 실행합니다. 제거하면 worktree 디렉토리와 해당 브랜치가 삭제되며, 그 안의 모든 작업도 함께 삭제됩니다60* **Worktree에 작업이 있음**: Claude는 worktree를 유지하거나 제거할지 묻습니다. 유지하면 디렉토리와 브랜치가 보존됩니다. 나중에 돌아오려면 Claude Code가 종료 시 출력하는 `claude --worktree <name> --resume` 명령을 실행합니다. 제거하면 worktree 디렉토리와 해당 브랜치가 삭제되며, 그 안의 모든 작업도 함께 삭제됩니다

61* **다른 브랜치가 체크아웃되어 있음**: worktree가 자체 브랜치가 아닌 다른 브랜치에 있고 그 브랜치에 worktree의 시작 커밋 이후의 커밋이 있는 경우, Claude는 worktree를 유지하거나 제거할지 묻습니다. 어느 쪽을 선택하든 해당 다른 브랜치와 그 커밋은 유지됩니다. 제거하면 worktree 디렉토리와 worktree 자체의 브랜치, 즉 Claude가 worktree와 함께 생성한 브랜치가 삭제됩니다

61* **Worktree의 상태를 확인할 수 없음**: Claude Code가 worktree의 변경 사항을 계산할 수 없거나 서브모듈 체크아웃을 검사할 수 없을 때, worktree를 자동으로 제거하지 않고 프롬프트를 표시합니다. 프롬프트는 확인할 수 없었던 항목을 명시합니다.62* **Worktree의 상태를 확인할 수 없음**: Claude Code가 worktree의 변경 사항을 계산할 수 없거나 서브모듈 체크아웃을 검사할 수 없을 때, worktree를 자동으로 제거하지 않고 프롬프트를 표시합니다. 프롬프트는 확인할 수 없었던 항목을 명시합니다.

62 63 

63`-p`를 사용한 비대화형 실행에는 종료 프롬프트가 없으므로 Claude는 해당 worktree를 정리하지 않으며, Claude Code는 생성 시 각 worktree에 대해 가져온 잠금을 유지합니다. 나중 세션의 [stale-lock sweep](#clean-up-subagent-and-background-session-worktrees)이 이를 해제할 때까지 유지됩니다. 하나를 제거하려면 `git worktree remove`를 실행합니다. git이 worktree가 잠겨 있다고 거부하면 먼저 `git worktree unlock`을 실행합니다.64`-p`를 사용한 비대화형 실행에는 종료 프롬프트가 없으므로 Claude는 해당 worktree를 정리하지 않으며, Claude Code는 생성 시 각 worktree에 대해 가져온 잠금을 유지합니다. 나중 세션의 [stale-lock sweep](#clean-up-subagent-and-background-session-worktrees)이 이를 해제할 때까지 유지됩니다. 하나를 제거하려면 `git worktree remove`를 실행합니다. git이 worktree가 잠겨 있다고 거부하면 먼저 `git worktree unlock`을 실행합니다.