SpyBara
Go Premium

Documentation 2026-09-24 22:57 UTC to 2026-09-25 23:58 UTC

103 files changed +8,305 −5,909. View all changes and history on the product overview
2026
Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02

admin-setup.md +3 −3

Details

94관리 설정은 도구, 샌드박스 실행, MCP 서버 및 플러그인 소스 제한, 실행되는 hooks 제어를 잠글 수 있습니다. 각 행은 이를 구동하는 설정 키가 있는 제어 표면입니다.94관리 설정은 도구, 샌드박스 실행, MCP 서버 및 플러그인 소스 제한, 실행되는 hooks 제어를 잠글 수 있습니다. 각 행은 이를 구동하는 설정 키가 있는 제어 표면입니다.

95 95 

96| 제어 | 기능 | 주요 설정 |96| 제어 | 기능 | 주요 설정 |

97| :------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |97| :------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |

98| [Permission rules](/docs/ko/permissions) | 특정 도구 및 명령 허용, 요청 또는 거부 | `permissions.allow`, `permissions.deny` |98| [Permission rules](/docs/ko/permissions) | 특정 도구 및 명령 허용, 요청 또는 거부 | `permissions.allow`, `permissions.deny` |

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

100| [Starting permission mode](/docs/ko/permission-modes#which-mode-a-session-starts-in) | 기본 제공 시작 권한 모드 대신 개발자의 터미널 세션이 시작되는 권한 모드를 선택하거나 자동 모드를 제거합니다. VS Code 확장은 Pro, Max 및 Team 플랜에서만 설정한 `defaultMode`를 읽습니다. [Switch permission modes](/docs/ko/permission-modes#switch-permission-modes)는 확장이 읽는 내용을 나열합니다 | `permissions.defaultMode`, `permissions.disableAutoMode` |100| [Starting permission mode](/docs/ko/permission-modes#which-mode-a-session-starts-in) | 기본 제공 시작 권한 모드 대신 개발자의 터미널 세션이 시작되는 권한 모드를 선택하거나 자동 모드를 제거합니다. VS Code 확장은 Pro, Max 및 Team 플랜에서만 설정한 `defaultMode`를 읽습니다. [Switch permission modes](/docs/ko/permission-modes#switch-permission-modes)는 확장이 읽는 내용을 나열합니다 | `permissions.defaultMode`, `permissions.disableAutoMode` |

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

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

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

104| [Plugin marketplace control](/docs/ko/plugin-marketplaces#managed-marketplace-restrictions) | 사용자가 추가하고 설치할 수 있는 마켓플레이스 소스 제한, 단일 실행을 위해 플러그인, 에이전트 및 MCP 서버를 사이드로드하는 CLI 플래그 거부, [`command` 플러그인 소스](/docs/ko/plugin-marketplaces#command-sources) 차단, 마켓플레이스의 플러그인을 제안할 수 있는 항목 허용 목록 | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |104| [Plugin marketplace control](/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` |

105| [Customization lockdown](/docs/ko/settings-reference#strictpluginonlycustomization) | skills, agents, hooks 및 MCP 서버를 사용자 및 프로젝트 소스에서 차단하여 플러그인 또는 관리 설정에서만 제공되도록 함. skills를 잠그면 [개발자가 claude.ai에서 활성화하는 skills](/docs/ko/skills#where-synced-skills-load)가 동기화되는 것도 중지됩니다 | `strictPluginOnlyCustomization` |105| [Customization lockdown](/docs/ko/settings-reference#strictpluginonlycustomization) | skills, agents, hooks 및 MCP 서버를 사용자 및 프로젝트 소스에서 차단하여 플러그인 또는 관리 설정에서만 제공되도록 함. skills를 잠그면 [개발자가 claude.ai에서 활성화하는 skills](/docs/ko/skills#where-synced-skills-load)가 동기화되는 것도 중지됩니다 | `strictPluginOnlyCustomization` |

106| [Disable claude.ai sync](/docs/ko/settings-reference#syncclaudeaiskills) | Claude Code가 개발자가 claude.ai에서 활성화하는 [skills](/docs/ko/skills#how-synced-skills-behave) 및 [plugins](/docs/ko/plugins-reference#synced-plugins)를 로드하는 것을 중지합니다. 조직에서 claude.ai의 Skills를 비활성화하면 Claude Code는 둘 다 동기화를 중지하며, v2.1.273 이상에서는 이미 동기화된 항목도 제거합니다. Skills를 비활성화하지 않고 둘 중 하나를 중지하려면 관리 설정에서 해당 키를 `false`로 설정합니다 | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |106| [Disable claude.ai sync](/docs/ko/settings-reference#syncclaudeaiskills) | Claude Code가 개발자가 claude.ai에서 활성화하는 [skills](/docs/ko/skills#how-synced-skills-behave) 및 [plugins](/docs/ko/plugins/loading#synced-plugins)를 로드하는 것을 중지합니다. 조직에서 claude.ai의 Skills를 비활성화하면 Claude Code는 둘 다 동기화를 중지하며, v2.1.273 이상에서는 이미 동기화된 항목도 제거합니다. Skills를 비활성화하지 않고 둘 중 하나를 중지하려면 관리 설정에서 해당 키를 `false`로 설정합니다 | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |

107| [Hook restrictions](/docs/ko/settings-reference#allowmanagedhooksonly) | 실행되는 hooks 제한 및 HTTP hook URL 제한; [allowManagedHooksOnly에서 실행되는 항목](/docs/ko/settings-reference#what-runs-under-allowmanagedhooksonly)에서 전체 효과 목록을 참조하세요 | `allowManagedHooksOnly`, `allowedHttpHookUrls` |107| [Hook restrictions](/docs/ko/settings-reference#allowmanagedhooksonly) | 실행되는 hooks 제한 및 HTTP hook URL 제한; [allowManagedHooksOnly에서 실행되는 항목](/docs/ko/settings-reference#what-runs-under-allowmanagedhooksonly)에서 전체 효과 목록을 참조하세요 | `allowManagedHooksOnly`, `allowedHttpHookUrls` |

108| [Login enforcement](/docs/ko/settings-reference#forceloginmethod) | 특정 방법 또는 Anthropic 조직으로 로그인 제한합니다. 방법 제한은 VS Code 확장, Agent SDK, `claude setup-token` 및 `/install-github-app`에 적용되며, 터미널의 대화형 로그인 화면은 `/login` 또는 처음 실행 온보딩으로 도달하며 방법을 미리 선택하지만 시행하지는 않습니다. Claude Code는 터미널, VS Code 확장 및 Agent SDK의 claude.ai 계정 로그인에 대해 조직을 확인하며, Claude Console 로그인 또는 [gateway](/docs/ko/claude-apps-gateway) 로그인에 대해서는 확인하지 않습니다. v2.1.212 이전에는 터미널 로그인만 두 키를 모두 적용했습니다. 설정되면 `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper`로 인증된 세션은 시작 시 차단됩니다. 클라우드 공급자 세션은 영향을 받지 않습니다 | `forceLoginMethod`, `forceLoginOrgUUID` |108| [Login enforcement](/docs/ko/settings-reference#forceloginmethod) | 특정 방법 또는 Anthropic 조직으로 로그인 제한합니다. 방법 제한은 VS Code 확장, Agent SDK, `claude setup-token` 및 `/install-github-app`에 적용되며, 터미널의 대화형 로그인 화면은 `/login` 또는 처음 실행 온보딩으로 도달하며 방법을 미리 선택하지만 시행하지는 않습니다. Claude Code는 터미널, VS Code 확장 및 Agent SDK의 claude.ai 계정 로그인에 대해 조직을 확인하며, Claude Console 로그인 또는 [gateway](/docs/ko/claude-apps-gateway) 로그인에 대해서는 확인하지 않습니다. v2.1.212 이전에는 터미널 로그인만 두 키를 모두 적용했습니다. 설정되면 `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper`로 인증된 세션은 시작 시 차단됩니다. 클라우드 공급자 세션은 영향을 받지 않습니다 | `forceLoginMethod`, `forceLoginOrgUUID` |

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

Details

281 권한 무시 모드(`bypassPermissions`)281 권한 무시 모드(`bypassPermissions`)

282</h4>282</h4>

283 283 

284아래 나열된 경우를 제외하고 프롬프트 없이 도구 사용을 자동 승인합니다. 훅은 여전히 실행되며 필요한 경우 작업을 차단할 수 있습니다.284아래 나열된 경우를 제외하고 프롬프트 없이 도구 사용을 자동 승인합니다. 훅은 여전히 실행되며 필요한 경우 작업을 차단할 수 있습니다. Linux 및 macOS에서 Claude Code는 [인식된 샌드박스](/docs/ko/permission-modes#skip-all-checks-with-bypasspermissions-mode) 외부에서 root 또는 `sudo` 상태로 이 모드에서 시작하기를 거부하며, 첫 번째 턴 전에 쿼리가 실패합니다.

285 285 

286<Warning>286<Warning>

287 극도의 주의를 기울여 사용하세요. Claude는 이 모드에서 전체 시스템 액세스 권한을 가집니다. 모든 가능한 작업을 신뢰하는 제어된 환경에서만 사용하세요.287 극도의 주의를 기울여 사용하세요. Claude는 이 모드에서 전체 시스템 액세스 권한을 가집니다. 모든 가능한 작업을 신뢰하는 제어된 환경에서만 사용하세요.

Details

13* **Hooks**: 도구 사용 및 기타 이벤트에 응답하는 이벤트 핸들러13* **Hooks**: 도구 사용 및 기타 이벤트에 응답하는 이벤트 핸들러

14* **MCP servers**: Model Context Protocol을 통한 외부 도구 통합14* **MCP servers**: Model Context Protocol을 통한 외부 도구 통합

15 15 

16플러그인 구조 및 플러그인 생성 방법에 대한 완전한 정보는 [플러그인](/docs/ko/plugins)을 참조하십시오.16플러그인 구조 및 플러그인 생성 방법에 대한 완전한 정보는 [플러그인](/docs/ko/plugins/overview)을 참조하십시오.

17 17 

18<h2 id="loading-plugins">18<h2 id="loading-plugins">

19 플러그인 로드19 플러그인 로드


21 21 

22옵션 구성에서 로컬 파일 시스템 경로를 제공하여 플러그인을 로드합니다. `type` 필드는 `"local"`이어야 하며, 이는 SDK가 허용하는 유일한 값입니다. SDK는 다양한 위치에서 여러 플러그인을 로드하는 것을 지원합니다.22옵션 구성에서 로컬 파일 시스템 경로를 제공하여 플러그인을 로드합니다. `type` 필드는 `"local"`이어야 하며, 이는 SDK가 허용하는 유일한 값입니다. SDK는 다양한 위치에서 여러 플러그인을 로드하는 것을 지원합니다.

23 23 

24[마켓플레이스](/docs/ko/plugin-marketplaces)를 통해 배포되거나 원격 저장소에서 플러그인을 사용하려면 먼저 다운로드한 후 로컬 디렉터리 경로를 제공합니다. 플러그인이 필요한 디렉터리 레이아웃은 아래의 [플러그인 구조 참조](#plugin-structure-reference)를 참조하십시오.24[마켓플레이스](/docs/ko/plugins/overview)를 통해 배포되거나 원격 저장소에서 플러그인을 사용하려면 먼저 다운로드한 후 로컬 디렉터리 경로를 제공합니다. 플러그인이 필요한 디렉터리 레이아웃은 아래의 [플러그인 구조 참조](#plugin-structure-reference)를 참조하십시오.

25 25 

26<CodeGroup>26<CodeGroup>

27 ```typescript TypeScript theme={null}27 ```typescript TypeScript theme={null}


138 ```138 ```

139</CodeGroup>139</CodeGroup>

140 140 

141<h2 id="using-plugin-skills">141<h2 id="use-plugin-skills">

142 플러그인 스킬 사용142 플러그인 스킬 사용

143</h2>143</h2>

144 144 


352 참고 항목352 참고 항목

353</h2>353</h2>

354 354 

355* [플러그인](/docs/ko/plugins) - 완전한 플러그인 개발 가이드355* [플러그인](/docs/ko/plugins/overview) - 완전한 플러그인 개발 가이드

356* [플러그인 참조](/docs/ko/plugins-reference) - 기술 사양356* [플러그인 참조](/docs/ko/plugins/manifest-reference) - 기술 사양

357* [명령어](/docs/ko/agent-sdk/skills#dispatch-commands-by-name) - SDK에서 명령어 디스패치357* [명령어](/docs/ko/agent-sdk/skills#dispatch-commands-by-name) - SDK에서 명령어 디스패치

358* [서브에이전트](/docs/ko/agent-sdk/subagents) - 전문화된 에이전트 작업358* [서브에이전트](/docs/ko/agent-sdk/subagents) - 전문화된 에이전트 작업

359* [스킬](/docs/ko/agent-sdk/skills) - Agent Skills 사용359* [스킬](/docs/ko/agent-sdk/skills) - Agent Skills 사용

Details

917| `cli_path` | `str \| Path \| None` | `None` | Claude Code CLI 실행 파일의 사용자 정의 경로 |917| `cli_path` | `str \| Path \| None` | `None` | Claude Code CLI 실행 파일의 사용자 정의 경로 |

918| `settings` | `str \| None` | `None` | 설정 파일 경로 또는 인라인 JSON 문자열 |918| `settings` | `str \| None` | `None` | 설정 파일 경로 또는 인라인 JSON 문자열 |

919| `add_dirs` | `list[str \| Path]` | `[]` | Claude가 접근할 수 있는 추가 디렉토리. SDK는 각 항목을 Claude Code에 `--add-dir`로 전달하므로, `project` 설정 소스를 사용하면 Claude Code도 [디렉토리의 스킬, 명령 및 서브에이전트를 로드합니다](/docs/ko/permissions#additional-directories-grant-file-access-not-configuration) |919| `add_dirs` | `list[str \| Path]` | `[]` | Claude가 접근할 수 있는 추가 디렉토리. SDK는 각 항목을 Claude Code에 `--add-dir`로 전달하므로, `project` 설정 소스를 사용하면 Claude Code도 [디렉토리의 스킬, 명령 및 서브에이전트를 로드합니다](/docs/ko/permissions#additional-directories-grant-file-access-not-configuration) |

920| `env` | `dict[str, str]` | `{}` | 상속된 프로세스 환경 위에 병합된 환경 변수. 기본 CLI가 읽는 변수는 [환경 변수](/docs/ko/env-vars) 참조. 시간 초과 관련 변수는 [느리거나 정지된 API 응답 처리](#handle-slow-or-stalled-api-responses) 참조 |920| `env` | `dict[str, str]` | `{}` | 상속된 프로세스 환경 위에 병합된 환경 변수. 기본 CLI가 읽는 변수는 [환경 변수](/docs/ko/env-vars) 참조. 시간 초과 관련 변수는 [느리거나 정지된 API 응답 처리](#handle-slow-or-stalled-api-responses) 참조. `CLAUDE_AGENT_SDK_CLIENT_APP`을 설정하여 User-Agent 헤더에서 앱을 식별합니다 |

921| `extra_args` | `dict[str, str \| None]` | `{}` | CLI에 직접 전달할 추가 CLI 인수 |921| `extra_args` | `dict[str, str \| None]` | `{}` | CLI에 직접 전달할 추가 CLI 인수 |

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

923| `debug_stderr` | `Any` | `sys.stderr` | *Deprecated* - 디버그 출력을 위한 파일 유사 객체. 대신 `stderr` 콜백 사용 |923| `debug_stderr` | `Any` | `sys.stderr` | *Deprecated* - SDK는 이 값을 무시합니다. CLI stderr 출력을 위해 `stderr` 콜백 사용 |

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

925| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | 도구 권한 콜백. [권한 흐름](/docs/ko/agent-sdk/permissions#how-permissions-are-evaluated)이 프롬프트로 넘어갈 때만 호출됩니다. `allowed_tools`, 허용 규칙 또는 `permission_mode`로 자동 승인된 호출에 대해서는 호출되지 않습니다. 허용 규칙이 일치하더라도 [모든 모드가 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves)에 도달합니다. [`CanUseTool`](#canusetool)에서 자세한 내용 참조 |925| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | 도구 권한 콜백. [권한 흐름](/docs/ko/agent-sdk/permissions#how-permissions-are-evaluated)이 프롬프트로 넘어갈 때만 호출됩니다. `allowed_tools`, 허용 규칙 또는 `permission_mode`로 자동 승인된 호출에 대해서는 호출되지 않습니다. 허용 규칙이 일치하더라도 [모든 모드가 자동 승인하지 않는 작업](/docs/ko/permission-modes#actions-no-mode-auto-approves)에 도달합니다. [`CanUseTool`](#canusetool)에서 자세한 내용 참조 |

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

927| `user` | `str \| None` | `None` | 사용자 식별자 |927| `user` | `str \| None` | `None` | POSIX 플랫폼에서 Claude Code 서브프로세스가 실행되는 OS 사용자 계정. Claude Code는 부모 프로세스의 환경 (예: `HOME`)을 유지하고 `cwd`에서 실행됩니다 |

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

929| `include_hook_events` | `bool` | `False` | 메시지 스트림에 hook 라이프사이클 이벤트를 `HookEventMessage` 객체로 포함 |929| `include_hook_events` | `bool` | `False` | 메시지 스트림에 hook 라이프사이클 이벤트를 `HookEventMessage` 객체로 포함 |

930| `forward_subagent_text` | `bool` | `False` | 메시지 스트림에서 서브에이전트 텍스트 및 생각 블록을 전달합니다. 이 옵션 없이 Claude Code는 서브에이전트 `tool_use` 및 `tool_result` 블록을 내보내지만 텍스트 또는 생각은 내보내지 않습니다. Python Agent SDK 0.2.140 이상 필요 |930| `forward_subagent_text` | `bool` | `False` | 메시지 스트림에서 서브에이전트 텍스트 및 생각 블록을 전달합니다. 이 옵션 없이 Claude Code는 서브에이전트 `tool_use` 및 `tool_result` 블록을 내보내지만 텍스트 또는 생각은 내보내지 않습니다. Python Agent SDK 0.2.140 이상 필요 |


1885```1885```

1886 1886 

1887| 필드 | 타입 | 설명 |1887| 필드 | 타입 | 설명 |

1888| :------------------------ | :------------------------ | :---------------------------------------------------------------------------- |1888| :------------------------ | :------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------- |

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

1890| `resets_at` | `int \| None` | 속도 제한 윈도우가 재설정되는 Unix 타임스탬프입니다 |1890| `resets_at` | `int \| None` | 속도 제한 윈도우가 재설정되는 Unix 타임스탬프입니다 |

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

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

Details

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

276 276 

277<Note>277<Note>

278 `Not logged in` 또는 `Invalid API key`와 같은 인증 오류가 표시되면 에이전트를 실행하는 셸에서 `ANTHROPIC_API_KEY` 환경 변수를 설정했는지 확인합니다. SDK는 `.env` 파일을 자동으로 로드하지 않습니다. 자세한 내용은 [전체 문제 해결 가이드](/docs/ko/troubleshooting)를 참조합니다.278 `Not logged in` 또는 `Invalid API key`와 같은 인증 오류가 표시되면 에이전트를 실행하는 셸에서 `ANTHROPIC_API_KEY` 환경 변수를 설정했는지 확인합니다. SDK는 `.env` 파일을 자동으로 로드하지 않습니다.

279 

280 이러한 인증 오류 및 기타 인증 오류의 원인과 해결 방법은 오류 참조의 [인증 오류](/docs/ko/errors#authentication-errors)를 참조합니다.

279</Note>281</Note>

280 282 

281<h3 id="try-other-prompts">283<h3 id="try-other-prompts">


385* **[MCP 서버](/docs/ko/agent-sdk/mcp)**: 데이터베이스, 브라우저, API 및 기타 외부 시스템에 연결합니다387* **[MCP 서버](/docs/ko/agent-sdk/mcp)**: 데이터베이스, 브라우저, API 및 기타 외부 시스템에 연결합니다

386* **[호스팅](/docs/ko/agent-sdk/hosting)**: Docker, 클라우드 및 CI/CD에 에이전트를 배포합니다388* **[호스팅](/docs/ko/agent-sdk/hosting)**: Docker, 클라우드 및 CI/CD에 에이전트를 배포합니다

387* **[예제 에이전트](https://github.com/anthropics/claude-agent-sdk-demos)**: 완전한 예제를 참조합니다: 이메일 어시스턴트, 연구 에이전트 등389* **[예제 에이전트](https://github.com/anthropics/claude-agent-sdk-demos)**: 완전한 예제를 참조합니다: 이메일 어시스턴트, 연구 에이전트 등

388* **[문제 해결](/docs/ko/agent-sdk/troubleshooting)**: 표시되는 정확한 메시지로 Agent SDK 오류를 수정합니다390* **[문제 해결](/docs/ko/agent-sdk/troubleshooting)**: CLI가 시작되지 않거나 종료되거나 구조화된 출력 없이 결과가 도착할 때 오류를 수정합니다

Details

4 4 

5# Agent SDK 문제 해결5# Agent SDK 문제 해결

6 6 

7> 정확한 오류 메시지로 Agent SDK 오류를 수정합니다. TypeScript 및 Python SDK의 각 오류에 대한 원인과 해결 방법을 제공합니다.7> Claude Code CLI가 시작되지 않거나, CLI 프로세스가 종료되거나, 구조화된 출력 없이 성공적인 결과가 도착할 때 Agent SDK 오류를 수정합니다.

8 8 

9이 페이지의 항목들은 표시되는 오류를 기준으로 정렬되어 있습니다. 각 항목은 원인과 해결 방법을 설명합니다.9이 페이지는 CLI 시작, CLI 프로세스 종료 및 구조화된 출력의 Agent SDK 오류를 다룹니다. 이 페이지의 항목들은 표시되는 오류를 기준으로 정렬되어 있습니다. 각 항목은 원인과 해결 방법을 설명합니다.

10 

11기능과 관련된 증상(예: hook이 실행되지 않거나 skill이 사용되지 않음)은 해당 기능의 페이지에 문제 해결 섹션이 있습니다. 표는 각 증상을 다루는 섹션 또는 페이지를 나열합니다:

12 

13| 증상 | 이동 |

14| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------- |

15| Skills를 찾을 수 없음, skill이 사용되지 않음, `Invalid skill name` 오류 | [Skills 문제 해결](/docs/ko/agent-sdk/skills#troubleshooting) |

16| MCP 서버가 `failed` 상태를 표시, 도구가 호출되지 않음, 연결 시간 초과, 최대 허용 토큰을 초과하는 도구 출력 | [MCP 문제 해결](/docs/ko/agent-sdk/mcp#troubleshooting) |

17| Plugin이 로드되지 않음, plugin skills이 나타나지 않음 | [Plugins 문제 해결](/docs/ko/agent-sdk/plugins#troubleshooting) |

18| Claude가 subagents로 위임하지 않음, 파일 시스템 기반 agents가 로드되지 않음 | [Subagents 문제 해결](/docs/ko/agent-sdk/subagents#troubleshooting) |

19| Checkpointing 옵션이 인식되지 않음, UUID 없는 사용자 메시지, `No file checkpoint found`, `File rewinding is not enabled`, `ProcessTransport is not ready for writing` | [File checkpointing 문제 해결](/docs/ko/agent-sdk/file-checkpointing#troubleshooting) |

20| Hook이 실행되지 않음, matcher가 예상대로 필터링하지 않음, hook 시간 초과, 도구가 예기치 않게 차단됨, 수정된 입력이 적용되지 않음, Python에서 session hooks를 사용할 수 없음, subagent 권한 프롬프트가 증가함, subagents와의 재귀적 hook 루프, `systemMessage`가 출력에 나타나지 않음 | [일반적인 문제 해결](/docs/ko/agent-sdk/hooks#fix-common-issues) (hooks 페이지) |

21| 사용자의 머신에서 작동하는 agent가 배포된 서비스 또는 컨테이너에서 실패함 | [배포 실패 문제 해결](/docs/ko/agent-sdk/hosting#troubleshoot-deployment-failures) |

22| `Not logged in`, `Invalid API key`, `API Error`, `429`, `There's an issue with the selected model` | [오류 참조](/docs/ko/errors#find-your-error) |

23| `CLINotFoundError`, `CLIConnectionError`, `ProcessError`, `Claude Code process exited with code N`, `Claude Code returned an error result`, `structured_output`이 `None`임 | 이 페이지의 [CLI 시작](#cli-startup), [CLI 프로세스 종료](#cli-process-exit) 및 [구조화된 출력](#structured-outputs) |

10 24 

11<h2 id="cli-startup">25<h2 id="cli-startup">

12 CLI 시작26 CLI 시작

agent-teams.md +1 −1

Details

118 118 

119기본값은 `"in-process"`입니다. `"auto"`를 설정하여 이미 tmux 세션 내에서 실행 중이거나 터미널이 `it2` CLI가 설치된 iTerm2인 경우 분할 창을 활성화하고, 그렇지 않으면 in-process로 폴백합니다. `"tmux"` 설정은 분할 창 모드를 활성화하고 터미널에 따라 tmux 또는 iTerm2를 사용할지 자동으로 감지합니다.119기본값은 `"in-process"`입니다. `"auto"`를 설정하여 이미 tmux 세션 내에서 실행 중이거나 터미널이 `it2` CLI가 설치된 iTerm2인 경우 분할 창을 활성화하고, 그렇지 않으면 in-process로 폴백합니다. `"tmux"` 설정은 분할 창 모드를 활성화하고 터미널에 따라 tmux 또는 iTerm2를 사용할지 자동으로 감지합니다.

120 120 

121v2.1.186부터는 `"iterm2"`를 설정하여 iTerm2 네이티브 분할 창을 명시적으로 사용합니다. 이 모드는 [`it2` CLI](https://github.com/mkusaka/it2)가 필요하며 `it2`가 누락된 경우 설치 명령과 함께 오류를 표시합니다. 터미널이 iTerm2이고 tmux를 폴백으로 사용할 수 있을 때 `"auto"` 또는 `"tmux"` 아래에 `it2`를 설치하거나 tmux로 전환할 것을 제안하는 설정 프롬프트가 나타납니다.121`"iterm2"`를 설정하여 iTerm2 네이티브 분할 창을 명시적으로 사용합니다. 이 모드는 [`it2` CLI](https://github.com/mkusaka/it2)가 필요하며 `it2`가 누락된 경우 설치 명령과 함께 오류를 표시합니다. 터미널이 iTerm2이고 tmux를 폴백으로 사용할 수 있을 때 `"auto"` 또는 `"tmux"` 아래에 `it2`를 설치하거나 tmux로 전환할 것을 제안하는 설정 프롬프트가 나타납니다.

122 122 

123기본값을 재정의하려면 `~/.claude/settings.json`에서 [`teammateMode`](/docs/ko/settings-reference#teammatemode)를 설정합니다:123기본값을 재정의하려면 `~/.claude/settings.json`에서 [`teammateMode`](/docs/ko/settings-reference#teammatemode)를 설정합니다:

124 124 

agents.md +1 −1

Details

22 22 

23* [Worktrees](/docs/ko/worktrees)는 각 세션에 별도의 git 체크아웃을 제공하므로 병렬 세션이 동일한 파일을 편집하지 않습니다. 직접 실행하는 세션에 사용하세요. 에이전트 뷰에서 디스패치된 세션은 [파일을 편집하기 전에 자신의 worktree로 이동](/docs/ko/agent-view#how-file-edits-are-isolated)하고, 생성하는 서브에이전트도 각각 하나씩 얻을 수 있습니다.23* [Worktrees](/docs/ko/worktrees)는 각 세션에 별도의 git 체크아웃을 제공하므로 병렬 세션이 동일한 파일을 편집하지 않습니다. 직접 실행하는 세션에 사용하세요. 에이전트 뷰에서 디스패치된 세션은 [파일을 편집하기 전에 자신의 worktree로 이동](/docs/ko/agent-view#how-file-edits-are-isolated)하고, 생성하는 서브에이전트도 각각 하나씩 얻을 수 있습니다.

24* [크로스 세션 메시징](/docs/ko/cross-session-messaging)을 통해 Claude는 이 머신의 다른 Claude Code 세션, 다른 머신의 세션, 또는 [웹의 Claude Code](/docs/ko/claude-code-on-the-web)의 세션을 나열하고 메시지를 보낼 수 있으므로, 직접 실행하는 세션들이 결과와 상태를 서로 전달할 수 있습니다.24* [크로스 세션 메시징](/docs/ko/cross-session-messaging)을 통해 Claude는 이 머신의 다른 Claude Code 세션, 다른 머신의 세션, 또는 [웹의 Claude Code](/docs/ko/claude-code-on-the-web)의 세션을 나열하고 메시지를 보낼 수 있으므로, 직접 실행하는 세션들이 결과와 상태를 서로 전달할 수 있습니다.

25* [`/batch`](/docs/ko/commands)는 Claude가 하나의 큰 변경을 5\~30개의 worktree 격리 서브에이전트로 분할하여 각각 pull request를 열도록 하는 [스킬](/docs/ko/skills)입니다. 이는 서브에이전트와 worktree의 패키지된 사용이지, 별도의 조율 스타일이 아닙니다.25* [`/batch`](/docs/ko/commands)는 Claude가 하나의 큰 변경을 5\~30개의 worktree 격리 서브에이전트로 분할하는 [스킬](/docs/ko/skills)입니다. 이는 서브에이전트와 worktree의 패키지된 사용이지, 별도의 조율 스타일이 아닙니다.

26 26 

27다른 몇 가지 기능은 각 단계를 직접 운영하지 않고 Claude를 실행하지만, 에이전트 간 작업 분할과는 다른 문제를 해결합니다:27다른 몇 가지 기능은 각 단계를 직접 운영하지 않고 Claude를 실행하지만, 에이전트 간 작업 분할과는 다른 문제를 해결합니다:

28 28 

Details

519 Mantle 엔드포인트 사용519 Mantle 엔드포인트 사용

520</h2>520</h2>

521 521 

522Mantle은 Bedrock Invoke API 대신 기본 Anthropic API 형태를 통해 Claude 모델을 제공하는 Amazon Bedrock 엔드포인트입니다. 이는 동일한 [AWS 자격 증명](#2-configure-aws-credentials), [IAM 권한](#iam-configuration) 및 [`awsAuthRefresh` 구성](#advanced-credential-configuration)을 사용합니다.522Mantle은 Bedrock Invoke API 대신 기본 Anthropic API 형태를 통해 Claude 모델을 제공하는 Amazon Bedrock 엔드포인트입니다. 이는 동일한 [AWS 자격 증명](#2-configure-aws-credentials) 및 [`awsAuthRefresh` 구성](#advanced-credential-configuration)을 사용합니다.

523 

524Mantle은 `bedrock-mantle:` 접두사 아래에 자체 IAM 작업을 가지고 있으므로 [IAM 구성](#iam-configuration)의 `bedrock:` 작업은 이를 포함하지 않습니다. IAM 자격 증명에 추론을 위한 `bedrock-mantle:CreateInference` 및 토큰 계산을 위한 `bedrock-mantle:CountTokens`를 부여하십시오. AWS 설명서의 [추론 요청 만들기](https://docs.aws.amazon.com/bedrock/latest/userguide/inference.html) 및 [토큰 계산](https://docs.aws.amazon.com/bedrock/latest/userguide/count-tokens.html)과 모든 Mantle 작업에 대한 [서비스 권한 부여 참조](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrockpoweredbyawsmantle.html)를 참조하십시오.

523 525 

524<h3 id="enable-mantle">526<h3 id="enable-mantle">

525 Mantle 활성화527 Mantle 활성화


671 673 

672`CLAUDE_CODE_USE_MANTLE`을 설정한 후 `/status`에 `Amazon Bedrock (Mantle)`이 표시되지 않으면 변수가 프로세스에 도달하지 않습니다. Claude Code를 시작한 셸에서 내보내졌는지 확인하거나 [설정 파일](/docs/ko/settings)의 `env` 블록에 설정하십시오.674`CLAUDE_CODE_USE_MANTLE`을 설정한 후 `/status`에 `Amazon Bedrock (Mantle)`이 표시되지 않으면 변수가 프로세스에 도달하지 않습니다. Claude Code를 시작한 셸에서 내보내졌는지 확인하거나 [설정 파일](/docs/ko/settings)의 `env` 블록에 설정하십시오.

673 675 

674유효한 자격 증명이 있는 Mantle 엔드포인트의 `403`은 AWS 계정이 요청한 모델에 대한 액세스 권한을 부여받지 않았음을 의미합니다. 액세스를 요청하려면 AWS 계정 팀에 문의하십시오.676Mantle 엔드포인트의 `403`이 의미하는 바는 오류가 IAM 작업을 이름으로 지정하는지 여부에 따라 다릅니다.

677 

678* 오류가 `bedrock-mantle:` 작업을 이름으로 지정하면 IAM 자격에 해당 작업을 부여하십시오.

679* 오류가 작업을 이름으로 지정하지 않고 자격 증명이 유효하면 AWS 계정이 요청한 모델에 대한 액세스 권한을 부여받지 않았습니다. 액세스를 요청하려면 AWS 계정 팀에 문의하십시오.

675 680 

676모델 ID를 이름으로 지정하는 `400`은 해당 모델이 Mantle에서 제공되지 않음을 의미합니다. Mantle은 표준 Amazon Bedrock 카탈로그와 별개의 자체 모델 라인업을 가지고 있으므로 `us.anthropic.claude-sonnet-4-6`과 같은 추론 프로필 ID는 작동하지 않습니다. Mantle 형식 ID를 사용하거나 [두 엔드포인트를 모두 활성화](#run-mantle-alongside-the-invoke-api)하여 Claude Code가 각 요청을 모델을 사용할 수 있는 엔드포인트로 라우팅하도록 하십시오.681모델 ID를 이름으로 지정하는 `400`은 해당 모델이 Mantle에서 제공되지 않음을 의미합니다. Mantle은 표준 Amazon Bedrock 카탈로그와 별개의 자체 모델 라인업을 가지고 있으므로 `us.anthropic.claude-sonnet-4-6`과 같은 추론 프로필 ID는 작동하지 않습니다. Mantle 형식 ID를 사용하거나 [두 엔드포인트를 모두 활성화](#run-mantle-alongside-the-invoke-api)하여 Claude Code가 각 요청을 모델을 사용할 수 있는 엔드포인트로 라우팅하도록 하십시오.

677 682 

Details

334 `/plugin`을 실행하여 마켓플레이스를 탐색하십시오. Plugins는 구성 없이 skills, tools, integrations를 추가합니다.334 `/plugin`을 실행하여 마켓플레이스를 탐색하십시오. Plugins는 구성 없이 skills, tools, integrations를 추가합니다.

335</Tip>335</Tip>

336 336 

337[Plugins](/docs/ko/plugins)는 커뮤니티 및 Anthropic의 마켓플레이스에서 설치 가능한 단일 단위로 skills, hooks, subagents, MCP 서버를 번들로 제공합니다. 타입이 지정된 언어로 작업하면 [코드 인텔리전스 plugin](/docs/ko/discover-plugins#code-intelligence)을 설치하여 Claude에게 정확한 기호 탐색 및 편집 후 자동 오류 감지를 제공하십시오.337[Plugins](/docs/ko/plugins/overview)는 커뮤니티 및 Anthropic의 마켓플레이스에서 설치 가능한 단일 단위로 skills, hooks, subagents, MCP 서버를 번들로 제공합니다. 타입이 지정된 언어로 작업하면 [코드 인텔리전스 plugin](/docs/ko/plugins/code-intelligence)을 설치하여 Claude에게 정확한 기호 탐색 및 편집 후 자동 오류 감지를 제공하십시오.

338 338 

339skills, subagents, hooks, MCP 중에서 선택하는 방법에 대한 지침은 [Claude Code 확장](/docs/ko/features-overview#match-features-to-your-goal)을 참조하십시오.339skills, subagents, hooks, MCP 중에서 선택하는 방법에 대한 지침은 [Claude Code 확장](/docs/ko/features-overview#match-features-to-your-goal)을 참조하십시오.

340 340 


541 각각에 대해 `claude -p`를 호출하는 루프를 통해 작업을 분배하십시오. 배치 작업의 경우 `--allowedTools`를 사용하여 권한을 범위 지정하십시오.541 각각에 대해 `claude -p`를 호출하는 루프를 통해 작업을 분배하십시오. 배치 작업의 경우 `--allowedTools`를 사용하여 권한을 범위 지정하십시오.

542</Tip>542</Tip>

543 543 

544대규모 마이그레이션 또는 분석의 경우 많은 병렬 Claude 호출 전체에 작업을 분배할 수 있습니다. git 저장소에서 [`/batch <instruction>`](/docs/ko/commands#all-commands)을 실행하여 Claude가 5\~30개의 subagent 전체에 변경을 분할하도록 합니다. 각 subagent는 자신의 worktree에서 작업하고 pull request를 엽니다. 대신 자신의 스크립트에서 fan-out을 구동하려면 `claude -p`를 통해 루프하십시오:544대규모 마이그레이션 또는 분석의 경우 많은 병렬 Claude 호출 전체에 작업을 분배할 수 있습니다. [`/batch <instruction>`](/docs/ko/commands#all-commands)을 실행하여 Claude가 5\~30개의 subagent 전체에 변경을 분할하도록 합니다. 각 subagent는 자신의 worktree에서 작업합니다. 대신 자신의 스크립트에서 fan-out을 구동하려면 `claude -p`를 통해 루프하십시오:

545 545 

546<Steps>546<Steps>

547 <Step title="작업 목록 생성">547 <Step title="작업 목록 생성">


572 auto mode로 자율적으로 실행하기572 auto mode로 자율적으로 실행하기

573</h3>573</h3>

574 574 

575중단 없는 실행과 백그라운드 안전 검사를 위해 [auto mode](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)를 사용하십시오. 분류기 모델이 명령을 실행하기 전에 검토하여 범위 확대, 알 수 없는 인프라, 적대적 콘텐츠 기반 작업을 차단하면서 일상적인 작업이 프롬프트 없이 진행되도록 합니다.575<Tip>

576 중단 없는 실행과 백그라운드 안전 검사를 위해 [auto mode](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)를 사용하십시오. 분류기 모델이 명령을 실행하기 전에 검토하여 범위 확대, 알 수 없는 인프라, 적대적 콘텐츠 기반 작업을 차단하면서 일상적인 작업이 프롬프트 없이 진행되도록 합니다.

577</Tip>

576 578 

577```bash theme={null}579```bash theme={null}

578claude --permission-mode auto -p "fix all lint errors"580claude --permission-mode auto -p "fix all lint errors"

channels.md +9 −7

Details

45 설치가 실패하면 Claude Code가 보고하는 메시지와 일치시킵니다:45 설치가 실패하면 Claude Code가 보고하는 메시지와 일치시킵니다:

46 46 

47 * `Marketplace "claude-plugins-official" not found`: `/plugin marketplace add anthropics/claude-plugins-official`로 마켓플레이스를 추가한 다음 설치를 다시 시도합니다.47 * `Marketplace "claude-plugins-official" not found`: `/plugin marketplace add anthropics/claude-plugins-official`로 마켓플레이스를 추가한 다음 설치를 다시 시도합니다.

48 * 플러그인이 [마켓플레이스에서 찾을 수 없음](/docs/ko/discover-plugins#install-plugins): 플러그인 이름을 확인합니다.48 * 플러그인이 [마켓플레이스에서 찾을 수 없음](/docs/ko/plugins/install#install-a-plugin): 플러그인 이름을 확인합니다.

49 49 

50 설치에서 설치 범위를 요청할 때 사용자 범위 옵션을 선택하여 플러그인이 모든 프로젝트에서 사용 가능하도록 합니다. 설치 요약을 확인합니다. `Run /reload-plugins to activate.`를 보고하면 [플러그인 변경 사항을 다시 시작하지 않고 적용](/docs/ko/discover-plugins#apply-plugin-changes-without-restarting)을 참조하여 플러그인의 구성 명령을 사용 가능하게 합니다.50 설치에서 설치 범위를 요청할 때 사용자 범위 옵션을 선택하여 플러그인이 모든 프로젝트에서 사용 가능하도록 합니다. 설치 요약을 확인합니다. `Run /reload-plugins to activate.`를 보고하면 [플러그인 변경 사항을 다시 시작하지 않고 적용](/docs/ko/plugins/cli-reference#reload-plugins)을 참조하여 플러그인의 구성 명령을 사용 가능하게 합니다.

51 </Step>51 </Step>

52 52 

53 <Step title="토큰 구성">53 <Step title="토큰 구성">


123 설치가 실패하면 Claude Code가 보고하는 메시지와 일치시킵니다:123 설치가 실패하면 Claude Code가 보고하는 메시지와 일치시킵니다:

124 124 

125 * `Marketplace "claude-plugins-official" not found`: `/plugin marketplace add anthropics/claude-plugins-official`로 마켓플레이스를 추가한 다음 설치를 다시 시도합니다.125 * `Marketplace "claude-plugins-official" not found`: `/plugin marketplace add anthropics/claude-plugins-official`로 마켓플레이스를 추가한 다음 설치를 다시 시도합니다.

126 * 플러그인이 [마켓플레이스에서 찾을 수 없음](/docs/ko/discover-plugins#install-plugins): 플러그인 이름을 확인합니다.126 * 플러그인이 [마켓플레이스에서 찾을 수 없음](/docs/ko/plugins/install#install-a-plugin): 플러그인 이름을 확인합니다.

127 127 

128 설치에서 설치 범위를 요청할 때 사용자 범위 옵션을 선택하여 플러그인이 모든 프로젝트에서 사용 가능하도록 합니다. 설치 요약을 확인합니다. `Run /reload-plugins to activate.`를 보고하면 [플러그인 변경 사항을 다시 시작하지 않고 적용](/docs/ko/discover-plugins#apply-plugin-changes-without-restarting)을 참조하여 플러그인의 구성 명령을 사용 가능하게 합니다.128 설치에서 설치 범위를 요청할 때 사용자 범위 옵션을 선택하여 플러그인이 모든 프로젝트에서 사용 가능하도록 합니다. 설치 요약을 확인합니다. `Run /reload-plugins to activate.`를 보고하면 [플러그인 변경 사항을 다시 시작하지 않고 적용](/docs/ko/plugins/cli-reference#reload-plugins)을 참조하여 플러그인의 구성 명령을 사용 가능하게 합니다.

129 </Step>129 </Step>

130 130 

131 <Step title="토큰 구성">131 <Step title="토큰 구성">


188 설치가 실패하면 Claude Code가 보고하는 메시지와 일치시킵니다:188 설치가 실패하면 Claude Code가 보고하는 메시지와 일치시킵니다:

189 189 

190 * `Marketplace "claude-plugins-official" not found`: `/plugin marketplace add anthropics/claude-plugins-official`로 마켓플레이스를 추가한 다음 설치를 다시 시도합니다.190 * `Marketplace "claude-plugins-official" not found`: `/plugin marketplace add anthropics/claude-plugins-official`로 마켓플레이스를 추가한 다음 설치를 다시 시도합니다.

191 * 플러그인이 [마켓플레이스에서 찾을 수 없음](/docs/ko/discover-plugins#install-plugins): 플러그인 이름을 확인합니다.191 * 플러그인이 [마켓플레이스에서 찾을 수 없음](/docs/ko/plugins/install#install-a-plugin): 플러그인 이름을 확인합니다.

192 192 

193 설치에서 설치 범위를 요청할 때 사용자 범위 옵션을 선택하여 플러그인이 모든 프로젝트에서 사용 가능하도록 합니다. 설치 요약에서 `Run /reload-plugins to activate.`를 보고하면 다음 단계에서 다시 시작하면 플러그인을 선택하므로 건너뛸 수 있습니다.193 설치에서 설치 범위를 요청할 때 사용자 범위 옵션을 선택하여 플러그인이 모든 프로젝트에서 사용 가능하도록 합니다.

194 

195 설치 요약에서 `Run /reload-plugins to activate.`를 보고하면 다음 단계에서 다시 시작하면 플러그인을 선택하므로 건너뛸 수 있습니다.

194 </Step>196 </Step>

195 197 

196 <Step title="채널이 활성화된 상태로 다시 시작">198 <Step title="채널이 활성화된 상태로 다시 시작">


245 설치가 실패하면 Claude Code가 보고하는 메시지와 일치시킵니다:247 설치가 실패하면 Claude Code가 보고하는 메시지와 일치시킵니다:

246 248 

247 * `Marketplace "claude-plugins-official" not found`: `/plugin marketplace add anthropics/claude-plugins-official`로 마켓플레이스를 추가한 다음 설치를 다시 시도합니다.249 * `Marketplace "claude-plugins-official" not found`: `/plugin marketplace add anthropics/claude-plugins-official`로 마켓플레이스를 추가한 다음 설치를 다시 시도합니다.

248 * 플러그인이 [마켓플레이스에서 찾을 수 없음](/docs/ko/discover-plugins#install-plugins): 플러그인 이름을 확인합니다.250 * 플러그인이 [마켓플레이스에서 찾을 수 없음](/docs/ko/plugins/install#install-a-plugin): 플러그인 이름을 확인합니다.

249 251 

250 설치에서 설치 범위를 요청할 때 사용자 범위 옵션을 선택하여 플러그인이 모든 프로젝트에서 사용 가능하도록 합니다.252 설치에서 설치 범위를 요청할 때 사용자 범위 옵션을 선택하여 플러그인이 모든 프로젝트에서 사용 가능하도록 합니다.

251 253 

Details

191claude --dangerously-load-development-channels server:webhook191claude --dangerously-load-development-channels server:webhook

192```192```

193 193 

194우회는 항목별입니다. 이 플래그를 `--channels`와 결합하면 우회가 `--channels` 항목으로 확장되지 않습니다. 연구 미리보기 중에 승인된 허용 목록은 Anthropic에서 큐레이션되므로 채널은 구축 및 테스트하는 동안 개발 플래그에 남아 있습니다.194우회는 항목별입니다. 이 플래그를 `--channels`와 결합하면 우회가 `--channels` 항목으로 확장되지 않습니다. 연구 미리보기 중에 승인된 허용 목록에 채널이 없으므로 구축 및 테스트하는 동안 개발 플래그에 남아 있습니다.

195 195 

196<Note>196<Note>

197 이 플래그는 허용 목록만 건너뜁니다. `channelsEnabled` 조직 정책은 여전히 적용됩니다. 신뢰할 수 없는 소스의 채널을 실행하는 데 사용하지 마세요.197 이 플래그는 허용 목록만 건너뜁니다. `channelsEnabled` 조직 정책은 여전히 적용됩니다. 신뢰할 수 없는 소스의 채널을 실행하는 데 사용하지 마세요.


802 플러그인으로 패키징802 플러그인으로 패키징

803</h2>803</h2>

804 804 

805채널을 설치 가능하고 공유 가능하게 하려면 [플러그인](/docs/ko/plugins)으로 래핑하고 [마켓플레이스](/docs/ko/plugin-marketplaces)에 게시합니다. 사용자는 `/plugin install`로 설치한 다음 `--channels plugin:<name>@<marketplace>`로 세션별로 활성화합니다.805채널을 설치 가능하고 공유 가능하게 하려면 [플러그인](/docs/ko/plugins/overview)으로 래핑하고 [마켓플레이스](/docs/ko/plugins/overview)에 게시합니다. 사용자는 `/plugin install`로 설치한 다음 `--channels plugin:<name>@<marketplace>`로 세션별로 활성화합니다.

806 806 

807자신의 마켓플레이스에 게시된 채널은 [승인된 허용 목록](/docs/ko/channels#supported-channels)에 없으므로 여전히 `--dangerously-load-development-channels`를 실행해야 합니다. 기본 허용 목록은 `claude-plugins-official`의 채널 플러그인이며, Anthropic이 재량에 따라 관리합니다. [인앱 제출 양식](/docs/ko/plugins#submit-your-plugin-to-the-community-marketplace)은 플러그인을 커뮤니티 마켓플레이스에 추가하며, 이는 채널 허용 목록에 없습니다.807자신의 마켓플레이스에 게시된 채널은 [승인된 허용 목록](/docs/ko/channels#supported-channels)에 없으므로 여전히 `--dangerously-load-development-channels`를 실행해야 합니다. 기본 허용 목록은 `claude-plugins-official`의 채널 플러그인입니다. [인앱 제출 양식](/docs/ko/plugins/publish#submit-to-the-community-marketplace)은 플러그인을 커뮤니티 마켓플레이스에 추가하며, 이는 채널 허용 목록에 없습니다.

808 808 

809Anthropic 파트너 담당자와 함께 작업 중인 경우 공식 마켓플레이스 목록을 조정하기 위해 연락합니다. Team 및 Enterprise 계획에서 관리자는 대신 조직의 자신의 [`allowedChannelPlugins`](/docs/ko/channels#restrict-which-channel-plugins-can-run) 목록에 플러그인을 포함할 수 있으며, 이는 기본 Anthropic 허용 목록을 대체합니다.809Anthropic 파트너 담당자와 함께 작업 중인 경우 공식 마켓플레이스 목록을 조정하기 위해 연락합니다. Team 및 Enterprise 계획에서 관리자는 대신 조직의 자신의 [`allowedChannelPlugins`](/docs/ko/channels#restrict-which-channel-plugins-can-run) 목록에 플러그인을 포함할 수 있으며, 이는 기본 Anthropic 허용 목록을 대체합니다.

810 810 


815* [채널](/docs/ko/channels)을 설치하고 Telegram, Discord, iMessage 또는 fakechat 데모를 사용하며 팀 또는 엔터프라이즈 조직에 대해 채널을 활성화합니다815* [채널](/docs/ko/channels)을 설치하고 Telegram, Discord, iMessage 또는 fakechat 데모를 사용하며 팀 또는 엔터프라이즈 조직에 대해 채널을 활성화합니다

816* [작동하는 채널 구현](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins)은 페어링 흐름, 회신 도구 및 파일 첨부가 있는 완전한 서버 코드입니다816* [작동하는 채널 구현](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins)은 페어링 흐름, 회신 도구 및 파일 첨부가 있는 완전한 서버 코드입니다

817* [MCP](/docs/ko/mcp)는 채널 서버가 구현하는 기본 프로토콜입니다817* [MCP](/docs/ko/mcp)는 채널 서버가 구현하는 기본 프로토콜입니다

818* [플러그인](/docs/ko/plugins)을 사용하여 채널을 패키징하면 사용자가 `/plugin install`로 설치할 수 있습니다818* [플러그인](/docs/ko/plugins/overview)을 사용하여 채널을 패키징하면 사용자가 `/plugin install`로 설치할 수 있습니다

Details

54 이전 세션의 지워진 대화로 되돌리기54 이전 세션의 지워진 대화로 되돌리기

55</h4>55</h4>

56 56 

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

58 58 

59<h4 id="guide-a-summary">59<h4 id="guide-a-summary">

60 요약 안내60 요약 안내

Details

448 잠금이 다루지 않는 설정448 잠금이 다루지 않는 설정

449</h4>449</h4>

450 450 

451네 개의 부모 제공 설정은 다섯 개의 잠금이 모두 설정되어도 필터를 통과합니다. 기본 첫 번째 우승 설정에서, 부모를 차단하는 관리 값은 가장 높은 우선순위 관리 소스의 값입니다. [MCP 서버 잠금](#lock-behavior-across-sources)이 켜져 있는 동안 `allowedMcpServers` 제외. `managedSourcesBehavior` 병합 옵트인에서, [Claude Code가 관리 소스를 결합하는 방법](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)은 대신 어느 소스의 값이 적용되는지 말합니다.451여섯 개의 부모 제공 설정은 다섯 개의 잠금이 모두 설정되어도 필터를 통과합니다. 기본 첫 번째 우승 설정에서, 부모를 차단하는 관리 값은 가장 높은 우선순위 관리 소스의 값입니다. [MCP 서버 잠금](#lock-behavior-across-sources)이 켜져 있는 동안 `allowedMcpServers` 제외. `managedSourcesBehavior` 병합 옵트인에서, [Claude Code가 관리 소스를 결합하는 방법](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)은 대신 어느 소스의 값이 적용되는지 말합니다.

452 452 

453* **`forceLoginOrgUUID`**: 가장 높은 우선순위 관리 소스가 조직 UUID를 설정하지 않을 때 Claude Code는 부모 제공 값을 준수합니다. 게이트웨이 로그인은 이 키를 확인하지 않으므로, 첫 번째 당사자 Anthropic 로그인도 사용하는 플릿에만 중요합니다. 가장 높은 우선순위 관리 소스의 조직 UUID는 부모의 값을 차단하며 Claude Code가 적용하는 값이므로, 거기에 `forceLoginOrgUUID`를 설정하세요.453* **`forceLoginOrgUUID`**: 가장 높은 우선순위 관리 소스가 조직 UUID를 설정하지 않을 때 Claude Code는 부모 제공 값을 준수합니다. 게이트웨이 로그인은 이 키를 확인하지 않으므로, 첫 번째 당사자 Anthropic 로그인도 사용하는 플릿에만 중요합니다. 가장 높은 우선순위 관리 소스의 조직 UUID는 부모의 값을 차단하며 Claude Code가 적용하는 값이므로, 거기에 `forceLoginOrgUUID`를 설정하세요.

454* **`allowedMcpServers`**: 가장 높은 우선순위 관리 소스가 허용 목록을 설정하지 않을 때 Claude Code는 부모 제공 허용 목록을 준수하며, `allowManagedMcpServersOnly`는 이를 차단하지 않습니다. 잠금은 우승 목록을 관리 값으로 적용하기 때문입니다. 가장 높은 우선순위 관리 소스의 목록은 부모의 목록을 차단하며 Claude Code가 적용하는 목록이므로, 잠금 옆에 거기에 `allowedMcpServers`를 설정하세요. v2.1.223 이전에는, 모든 관리 소스의 어느 키에 대한 값이든 부모의 값을 차단했습니다.454* **`allowedMcpServers`**: 가장 높은 우선순위 관리 소스가 허용 목록을 설정하지 않을 때 Claude Code는 부모 제공 허용 목록을 준수하며, `allowManagedMcpServersOnly`는 이를 차단하지 않습니다. 잠금은 우승 목록을 관리 값으로 적용하기 때문입니다. 가장 높은 우선순위 관리 소스의 목록은 부모의 목록을 차단하며 Claude Code가 적용하는 목록이므로, 잠금 옆에 거기에 `allowedMcpServers`를 설정하세요. v2.1.223 이전에는, 모든 관리 소스의 어느 키에 대한 값이든 부모의 값을 차단했습니다.

455* **`availableModels`**: Claude Code는 우승 관리 소스가 모델 목록을 설정하지 않을 때 부모 제공 모델 목록을 준수합니다. 플릿이 모델을 제한하면, 우승 소스에 `availableModels`를 설정하세요.455* **`availableModels`**: Claude Code는 우승 관리 소스가 모델 목록을 설정하지 않을 때 부모 제공 모델 목록을 준수합니다. 플릿이 모델을 제한하면, 우승 소스에 `availableModels`를 설정하세요.

456* **`strictKnownMarketplaces`**: Claude Code는 우승 관리 소스가 플러그인 마켓플레이스 허용 목록을 설정하지 않을 때 부모 제공 플러그인 마켓플레이스 허용 목록을 준수합니다. 플릿이 마켓플레이스를 제한하면, 우승 소스에 `strictKnownMarketplaces`를 설정하세요. Claude Code v2.1.282 이상이 필요합니다.

457* **`blockedMarketplaces`**: 부모 제공 마켓플레이스 차단 목록은 통과하고 관리 소스가 설정한 모든 차단 목록에 추가됩니다. 차단 목록은 더 제한할 수만 있기 때문입니다. Claude Code v2.1.282 이상이 필요합니다.

456* **`strictPluginOnlyCustomization`**: 이 키는 모든 잠금과 관계없이 필터를 통과하며, Claude Code가 개발자의 자신의 사용자 정의(보호 hooks 포함)를 무시하도록 합니다. 이를 차단하는 잠금이 없습니다.458* **`strictPluginOnlyCustomization`**: 이 키는 모든 잠금과 관계없이 필터를 통과하며, Claude Code가 개발자의 자신의 사용자 정의(보호 hooks 포함)를 무시하도록 합니다. 이를 차단하는 잠금이 없습니다.

457 459 

458<h3 id="connect-claude-desktop">460<h3 id="connect-claude-desktop">

Details

18 파일 구조18 파일 구조

19</h2>19</h2>

20 20 

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

22 22 

23**필수 섹션:**23**필수 섹션:**

24 24 

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

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

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

28* [`store`](#store): 장치 권한 부여 및 속도 제한 카운터용 PostgreSQL28* [`store`](#store): 디바이스 권한 부여 및 속도 제한 카운터용 PostgreSQL

29* [`upstreams`](#upstreams): 추론이 가는 위치, Anthropic, Amazon Bedrock, Claude Platform on AWS, Google Cloud의 Agent Platform 또는 Microsoft Foundry 여부29* [`upstreams`](#upstreams): 추론이 이동하는 위치, Anthropic, Amazon Bedrock, AWS의 Claude Platform, Google Cloud의 Agent Platform 또는 Microsoft Foundry 여부

30 30 

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

32 32 

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

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

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

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

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

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

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

40* [`load_test_mode`](#load_test_mode): 모델 공급자를 호출하지 않고 게이트웨이 부하 테스트

40 41 

41<h2 id="secret-expansion">42<h2 id="secret-expansion">

42 비밀 확장43 비밀 확장


1027 1028 

1028그러한 프론트 엔드 뒤에서 먼저 [`listen.trusted_proxies`](#listen)를 설정하여 gateway가 실제 클라이언트 주소를 보도록 하고 gateway와 그 앞의 모든 것을 공개 인터넷에서 도달할 수 없도록 유지하세요.1029그러한 프론트 엔드 뒤에서 먼저 [`listen.trusted_proxies`](#listen)를 설정하여 gateway가 실제 클라이언트 주소를 보도록 하고 gateway와 그 앞의 모든 것을 공개 인터넷에서 도달할 수 없도록 유지하세요.

1029 1030 

1031<h3 id="load_test_mode">

1032 `load_test_mode`

1033</h3>

1034 

1035`load_test_mode` 블록을 사용하면 모델 공급자를 호출하지 않고 gateway를 부하 테스트할 수 있습니다. 켜져 있는 동안 gateway는 각 공급자 요청을 평소대로 빌드하고 서명하며, 보내지 않고 버리고, 정상적인 응답 경로를 통해 통조림 회신을 다시 스트리밍합니다. 회신은 통조림임을 말하는 문장으로 시작하는 채우기 텍스트입니다.

1036 

1037v2.1.283 이상이 필요합니다. 이전 버전은 키가 설정되면 시작을 거부하므로 모든 복제본을 업그레이드한 후 블록을 추가하고 롤백하기 전에 제거하세요.

1038 

1039아래 예제는 기본값으로 모드를 켜며, 약 10초에 걸쳐 스트리밍되는 750개 출력 토큰의 회신입니다:

1040 

1041```yaml theme={null}

1042load_test_mode:

1043 enabled: true

1044 reply_tokens: 750 # roughly how many tokens of text each canned reply carries

1045 reply_seconds: 9.5 # how long a streamed reply takes

1046```

1047 

1048| 필드 | 필수 | 설명 |

1049| --------------- | --- | ------------------------------------------------------------------------------------------------ |

1050| `enabled` | 예 | `true`는 모드를 켭니다. `false`는 모드를 끈 상태로 파일에 숫자를 유지합니다. 블록이 없으면 gateway는 시작을 거부합니다. |

1051| `reply_tokens` | 아니요 | 기본값 `750`입니다. 각 통조림 회신이 전달하는 텍스트의 토큰 수(대략), 1에서 100000 사이의 정수입니다. |

1052| `reply_seconds` | 아니요 | 기본값 `9.5`입니다. 스트리밍된 회신이 걸리는 시간(0에서 600 사이). `0`은 전체 회신을 한 번에 보냅니다. 비스트리밍 요청에 대한 회신은 항상 한 번에 옵니다. |

1053 

1054이 모드의 부하 테스트는 gateway, Postgres 및 gateway 앞의 모든 것을 포함합니다. 공급자의 한도, 속도 또는 네트워크 경로는 포함하지 않습니다.

1055 

1056모드가 켜져 있는 동안 요청은 최대 7자리의 정수를 보유하는 `x-load-test-user` 헤더를 전달할 수 있으며, gateway는 각 숫자를 요청과 함께 온 개발자의 이메일 및 그룹을 가진 별도의 개발자로 계산합니다. 부하 테스트 배포에 자체 빈 데이터베이스를 제공하세요. gateway는 모드가 켜져 있고 개발자가 이미 무언가를 지출한 데이터베이스에 대해 시작을 거부합니다.

1057 

1058<Warning>

1059 개발자가 사용하는 gateway에 대해 이를 켜지 마세요. 모든 요청은 통조림 회신을 받고 모델은 호출되지 않습니다. gateway는 부팅 시 `load_test_mode is on` 경고를 기록하고 모드가 켜져 있는 동안 각 `inference` [감사 이벤트](/docs/ko/claude-apps-gateway-deploy#logs)를 `load_test: true`로 표시합니다.

1060</Warning>

1061 

1030<h2 id="complete-example">1062<h2 id="complete-example">

1031 완전한 예제1063 완전한 예제

1032</h2>1064</h2>


1098# enforcement:1130# enforcement:

1099# fail_closed_on_error: false1131# fail_closed_on_error: false

1100 1132 

1133# 모델 제공자를 호출하지 않고 이 배포를 부하 테스트합니다. 개발자가 사용하는

1134# 게이트웨이에서는 절대 사용하지 마십시오. 모든 요청이 미리 정해진 응답을 받습니다.

1135# load_test_mode:

1136# enabled: true

1137# # reply_tokens: 750

1138# # reply_seconds: 9.5

1139 

1101# 계약 요금으로 미터링하고 USD 정가 대신 사용합니다. admin: 또는 managed: 정책이 필요합니다.1140# 계약 요금으로 미터링하고 USD 정가 대신 사용합니다. admin: 또는 managed: 정책이 필요합니다.

1102# managed:를 사용하면 동일한 요금이 로그인한 클라이언트로도 이동합니다.1141# managed:를 사용하면 동일한 요금이 로그인한 클라이언트로도 이동합니다.

1103# 아래 요금은 자리 표시자이며 실제 계약 가격이 아닙니다.1142# 아래 요금은 자리 표시자이며 실제 계약 가격이 아닙니다.

Details

219* **[지출 제한 적용](/docs/ko/claude-apps-gateway-spend-limits#postgres-availability)**: 중단 중에 기본적으로 열린 상태로 실패하므로 추론이 계속 흐릅니다. 차단하는 것을 선호하면 닫힌 상태로 뒤집으세요219* **[지출 제한 적용](/docs/ko/claude-apps-gateway-spend-limits#postgres-availability)**: 중단 중에 기본적으로 열린 상태로 실패하므로 추론이 계속 흐릅니다. 차단하는 것을 선호하면 닫힌 상태로 뒤집으세요

220* **준비**: `/readyz`는 중단 중에 준비되지 않음을 보고하므로, 준비에 대한 트래픽을 게이트하는 오케스트레이터는 Postgres가 복구될 때까지 모든 복제본을 한 번에 로테이션에서 제거합니다. 해당 토폴로지에서 게이트웨이가 여전히 제공할 수 있는 추론을 포함한 모든 트래픽은 로드 밸런서에서 실패합니다. `/healthz`의 생존 프로브는 계속 통과하므로 복제본은 다시 시작되지 않습니다. 로그인한 개발자가 저장소 중단을 통해 계속 작동하도록 하려면 준비 프로브를 `/healthz`로 지정하세요. 비용은 새로운 로그인이 여전히 준비됨을 보고하는 복제본에 대해 실패한다는 것입니다.220* **준비**: `/readyz`는 중단 중에 준비되지 않음을 보고하므로, 준비에 대한 트래픽을 게이트하는 오케스트레이터는 Postgres가 복구될 때까지 모든 복제본을 한 번에 로테이션에서 제거합니다. 해당 토폴로지에서 게이트웨이가 여전히 제공할 수 있는 추론을 포함한 모든 트래픽은 로드 밸런서에서 실패합니다. `/healthz`의 생존 프로브는 계속 통과하므로 복제본은 다시 시작되지 않습니다. 로그인한 개발자가 저장소 중단을 통해 계속 작동하도록 하려면 준비 프로브를 `/healthz`로 지정하세요. 비용은 새로운 로그인이 여전히 준비됨을 보고하는 복제본에 대해 실패한다는 것입니다.

221 221 

222IdP가 다운되면, 기존 세션은 `ttl_hours`까지 작동하고, 새로운 로그인 및 새로고침은 실패합니다. IdP가 자주 유지보수 창을 가지면 더 긴 `ttl_hours`를 설정하세요.222IdP가 다운되면, 기존 세션은 `ttl_hours`까지 작동하고, 새로운 로그인은 실패하며, 세션 새로고침은 다시 시도 답변을 받고 IdP가 돌아오면 한 번 진행됩니다. IdP가 자주 유지보수 창을 가지면 더 긴 `ttl_hours`를 설정하세요.

223 223 

224<h3 id="jwt-secret-rotation">224<h3 id="jwt-secret-rotation">

225 JWT 시크릿 로테이션225 JWT 시크릿 로테이션

Details

218텔레포트는 세션을 재개하기 전에 이러한 요구 사항을 확인합니다. 요구 사항이 충족되지 않으면 오류가 표시되거나 문제를 해결하라는 메시지가 표시됩니다.218텔레포트는 세션을 재개하기 전에 이러한 요구 사항을 확인합니다. 요구 사항이 충족되지 않으면 오류가 표시되거나 문제를 해결하라는 메시지가 표시됩니다.

219 219 

220| 요구 사항 | 세부 정보 |220| 요구 사항 | 세부 정보 |

221| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |221| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

222| Clean git state | 작업 디렉토리에 커밋되지 않은 변경 사항이 없어야 합니다. 텔레포트가 필요한 경우 변경 사항을 stash하라는 메시지를 표시합니다. |222| Clean git state | 작업 디렉토리에 커밋되지 않은 변경 사항이 없어야 합니다. 텔레포트가 필요한 경우 변경 사항을 stash하라는 메시지를 표시합니다. |

223| 올바른 저장소 | fork가 아닌 동일한 저장소의 체크아웃에서 `--teleport`를 실행해야 합니다. 다른 저장소의 체크아웃에서 실행하면 Claude Code는 세션의 저장소와 체크아웃 모두의 이름을 지정하는 오류를 표시합니다. Claude Code가 `git@work:owner/repo.git`과 같은 SSH 호스트 별칭으로 원격을 호스트 이름으로 구문 분석할 수 없으면 확인을 요청하고 원격의 소유자 및 저장소 이름이 세션의 저장소와 일치할 때 체크아웃을 수락합니다. |223| 올바른 저장소 | fork가 아닌 동일한 저장소의 체크아웃에서 `--teleport`를 실행해야 합니다. 다른 저장소의 체크아웃에서 실행하면 Claude Code는 세션의 저장소와 체크아웃의 저장소 모두의 이름을 지정하는 오류를 표시합니다. v2.1.219 이전에는 오류가 체크아웃의 저장소 이름을 지정하지 않았습니다. Claude Code가 `git@work:owner/repo.git`과 같은 SSH 호스트 별칭으로 원격을 호스트 이름으로 구문 분석할 수 없으면 확인을 요청하고 원격의 소유자 및 저장소 이름이 세션의 저장소와 일치할 때 체크아웃을 수락합니다. |

224| 분기 사용 가능 | 클라우드 세션의 분기가 원격으로 푸시되어야 합니다. 텔레포트가 자동으로 가져와 체크아웃합니다. |224| 분기 사용 가능 | 클라우드 세션의 분기가 원격으로 푸시되어야 합니다. 텔레포트가 자동으로 가져와 체크아웃합니다. |

225| 동일한 계정 | 클라우드 세션에서 사용한 동일한 claude.ai 계정으로 인증되어야 합니다. |225| 동일한 계정 | 클라우드 세션에서 사용한 동일한 claude.ai 계정으로 인증되어야 합니다. |

226 226 


282 282 

283각 세션은 추가 및 제거된 줄을 표시하는 diff 표시기를 표시합니다(예: `+42 -18`). 이를 선택하여 diff 보기를 열고, 특정 줄에 인라인 주석을 남기고, 다음 메시지로 Claude에 보내세요.283각 세션은 추가 및 제거된 줄을 표시하는 diff 표시기를 표시합니다(예: `+42 -18`). 이를 선택하여 diff 보기를 열고, 특정 줄에 인라인 주석을 남기고, 다음 메시지로 Claude에 보내세요.

284 284 

285diff 보기는 따로 선택하지 않으면 세션의 변경 사항을 해당 기본 분기와 비교합니다. 저장소의 다른 분기와 비교하려면 **Compare against**를 선택하고 분기를 하나 고르세요.

286 

285Claude Code는 이러한 diffs(Claude가 편집할 때 표시되는 파일별 diffs 포함)를 raw git blob 콘텐츠에서 계산하므로 저장소에 구성된 diff 드라이버 및 `textconv` 필터는 적용되지 않습니다. 세션의 자체 체크아웃 중 하나가 아닌 저장소의 파일(예: 세션 중에 워크스페이스 내에 복제된 파일)의 경우 파일별 diff는 git 비교가 아니라 Claude의 편집 자체를 표시합니다.287Claude Code는 이러한 diffs(Claude가 편집할 때 표시되는 파일별 diffs 포함)를 raw git blob 콘텐츠에서 계산하므로 저장소에 구성된 diff 드라이버 및 `textconv` 필터는 적용되지 않습니다. 세션의 자체 체크아웃 중 하나가 아닌 저장소의 파일(예: 세션 중에 워크스페이스 내에 복제된 파일)의 경우 파일별 diff는 git 비교가 아니라 Claude의 편집 자체를 표시합니다.

286 288 

287PR 생성을 포함한 전체 안내는 [검토 및 반복](/docs/ko/web-quickstart#review-and-iterate)을 참조하세요. Claude가 PR을 모니터링하여 CI 실패 및 검토 주석에 자동으로 응답하도록 하려면 [Pull request 자동 수정](#auto-fix-pull-requests)을 참조하세요.289PR 생성을 포함한 전체 안내는 [검토 및 반복](/docs/ko/web-quickstart#review-and-iterate)을 참조하세요. Claude가 PR을 모니터링하여 CI 실패 및 검토 주석에 자동으로 응답하도록 하려면 [Pull request 자동 수정](#auto-fix-pull-requests)을 참조하세요.

Details

1451탐색기는 작성하고 편집하는 파일을 다룹니다. 관련된 몇 가지 파일은 다른 위치에 있습니다.1451탐색기는 작성하고 편집하는 파일을 다룹니다. 관련된 몇 가지 파일은 다른 위치에 있습니다.

1452 1452 

1453| 파일 | 위치 | 목적 |1453| 파일 | 위치 | 목적 |

1454| ----------------------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1454| ----------------------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1455| `managed-settings.json` | 시스템 수준, OS에 따라 다름 | 재정의할 수 없는 엔터프라이즈 강제 설정입니다. [좁은 예외](/docs/ko/settings#security-keys-where-the-stricter-value-applies)를 제외하고는 재정의할 수 없습니다. [파일을 저장할 위치](/docs/ko/managed-settings#deploy-a-managed-settings-file) 및 [Claude Code가 사용하는 관리되는 소스](/docs/ko/managed-settings#precedence-within-the-managed-tier)를 참조하세요. |1455| `managed-settings.json` | 시스템 수준, OS에 따라 다름 | 재정의할 수 없는 엔터프라이즈 강제 설정입니다. [좁은 예외](/docs/ko/settings#security-keys-where-the-stricter-value-applies)를 제외하고는 재정의할 수 없습니다. [파일을 저장할 위치](/docs/ko/managed-settings#deploy-a-managed-settings-file) 및 [Claude Code가 사용하는 관리되는 소스](/docs/ko/managed-settings#precedence-within-the-managed-tier)를 참조하세요. |

1456| `CLAUDE.local.md` | 프로젝트 루트 | 이 프로젝트에 대한 개인 기본 설정으로, CLAUDE.md와 함께 로드됩니다. 수동으로 생성하고 `.gitignore`에 추가합니다. |1456| `CLAUDE.local.md` | 프로젝트 루트 | 이 프로젝트에 대한 개인 기본 설정으로, CLAUDE.md와 함께 로드됩니다. 수동으로 생성하고 `.gitignore`에 추가합니다. |

1457| `AGENTS.md` | 프로젝트 루트, `.claude/`, 또는 모든 디렉터리 | AI 코딩 에이전트를 위해 작성하는 프로젝트 지침입니다. Claude Code는 [이를 로드](/docs/ko/memory#agents-md)할 수 있으며, `CLAUDE.md`와 함께 로드할 수도 있습니다. |1457| `AGENTS.md` | 프로젝트 루트, `.claude/`, 또는 모든 디렉터리 | AI 코딩 에이전트를 위해 작성하는 프로젝트 지침입니다. Claude Code는 [이를 로드](/docs/ko/memory#agents-md)할 수 있으며, `CLAUDE.md`와 함께 로드할 수도 있습니다. |

1458| 설치된 플러그인 | `~/.claude/plugins` | 복제된 마켓플레이스, 설치된 플러그인 버전, `installed_plugins.json` 설치 기록, 플러그인별 데이터로, `claude plugin` 명령으로 관리됩니다. [claude.ai 계정에서 동기화된](/docs/ko/plugins-reference#synced-plugins) 플러그인은 `~/.claude/plugins/synced/`로 다운로드됩니다. 마켓플레이스 [`command` 소스](/docs/ko/plugin-marketplaces#command-sources)에서 링크 모드로 설치된 플러그인의 경우, Claude Code는 복사본 대신 여기에 링크를 저장하고, 플러그인의 파일은 명령이 출력하는 디렉터리에 남아 있습니다. `command` 소스는 Claude Code v2.1.229 이상이 필요합니다. 로컬 디렉터리 마켓플레이스에서 상대 경로로 나열된 플러그인도 캐시 복사본이 아닌 소스 디렉터리에서 [제자리에 로드](/docs/ko/plugins-reference#plugin-caching-and-file-resolution)됩니다. [플러그인 캐싱](/docs/ko/plugins-reference#plugin-caching-and-file-resolution)에서 고아 버전이 정리되는 방식을 참조하세요. |1458| 설치된 플러그인 | `~/.claude/plugins` | 복제된 마켓플레이스, 설치된 플러그인 버전, `installed_plugins.json` 설치 기록, 플러그인별 데이터로, `claude plugin` 명령으로 관리됩니다. [claude.ai 계정에서 동기화된](/docs/ko/plugins/loading#synced-plugins) 플러그인은 `~/.claude/plugins/synced/`로 다운로드됩니다. 마켓플레이스 [`command` 소스](/docs/ko/plugins/marketplace-reference#command-plugin-source)에서 링크 모드로 설치된 플러그인의 경우, Claude Code는 복사본 대신 여기에 링크를 저장하고, 플러그인의 파일은 명령이 출력하는 디렉터리에 남아 있습니다. `command` 소스는 Claude Code v2.1.229 이상이 필요합니다. 로컬 디렉터리 마켓플레이스에서 상대 경로로 나열된 플러그인도 캐시 복사본이 아닌 소스 디렉터리에서 [제자리에 로드](/docs/ko/plugins/loading#find-plugins-on-disk)됩니다. [플러그인 캐싱](/docs/ko/plugins/loading#find-plugins-on-disk)에서 고아 버전이 정리되는 방식을 참조하세요. |

1459 1459 

1460`~/.claude`는 또한 작업할 때 Claude Code가 작성하는 데이터를 보유합니다. 트랜스크립트, 프롬프트 기록, 파일 스냅샷, 캐시, 로그입니다. 아래의 [애플리케이션 데이터](#application-data)를 참조하세요.1460`~/.claude`는 또한 작업할 때 Claude Code가 작성하는 데이터를 보유합니다. 트랜스크립트, 프롬프트 기록, 파일 스냅샷, 캐시, 로그입니다. 아래의 [애플리케이션 데이터](#application-data)를 참조하세요.

1461 1461 


1529| `output-styles/*.md` | `name`, `description`, `keep-coding-instructions`, `force-for-plugin` | [Output style 프론트매터](/docs/ko/output-styles#frontmatter) |1529| `output-styles/*.md` | `name`, `description`, `keep-coding-instructions`, `force-for-plugin` | [Output style 프론트매터](/docs/ko/output-styles#frontmatter) |

1530| `rules/*.md` | `paths` | [Rule 프론트매터](/docs/ko/memory#rules-frontmatter-reference) |1530| `rules/*.md` | `paths` | [Rule 프론트매터](/docs/ko/memory#rules-frontmatter-reference) |

1531 1531 

1532[플러그인](/docs/ko/plugins-reference#plugin-agent-frontmatter)에서 제공되는 Agents는 subagent 필드의 부분 집합을 준수합니다.1532[플러그인](/docs/ko/plugins/components#agents)에서 제공되는 Agents는 subagent 필드의 부분 집합을 준수합니다.

1533 1533 

1534<h2 id="troubleshoot-configuration">1534<h2 id="troubleshoot-configuration">

1535 설정 문제 해결1535 설정 문제 해결


1568| `feedback-bundles/` | `/feedback`에 의해 작성된 수정된 트랜스크립트 아카이브. 타사 제공자에게 또는 Anthropic 자격증명이 구성되지 않았을 때 Anthropic 계정 팀에 보내기 위해 |1568| `feedback-bundles/` | `/feedback`에 의해 작성된 수정된 트랜스크립트 아카이브. 타사 제공자에게 또는 Anthropic 자격증명이 구성되지 않았을 때 Anthropic 계정 팀에 보내기 위해 |

1569| `feedback/drafts/` | 대기 중인 [Claude 작성 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior). `/feedback`에서 검토 대기 중입니다. `cleanupPeriodDays` 또는 30일 후 스윕됨. 큐가 10개 초안 제한에 도달하면 Claude Code는 가장 오래된 초안을 삭제하여 공간을 확보합니다. |1569| `feedback/drafts/` | 대기 중인 [Claude 작성 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior). `/feedback`에서 검토 대기 중입니다. `cleanupPeriodDays` 또는 30일 후 스윕됨. 큐가 10개 초안 제한에 도달하면 Claude Code는 가장 오래된 초안을 삭제하여 공간을 확보합니다. |

1570| `usage-data/` | `report.html` 및 [`/insights`](/docs/ko/costs#analyze-your-usage-patterns)에 의해 작성된 타임스탬프 보고서 복사본, 그리고 이를 구축하는 데 사용되는 캐시된 세션별 분석 데이터 |1570| `usage-data/` | `report.html` 및 [`/insights`](/docs/ko/costs#analyze-your-usage-patterns)에 의해 작성된 타임스탬프 보고서 복사본, 그리고 이를 구축하는 데 사용되는 캐시된 세션별 분석 데이터 |

1571| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/ko/skills#how-synced-skills-behave) 및 [plugins](/docs/ko/plugins-reference#synced-plugins). claude.ai 동기화가 제거한 것. 예를 들어 claude.ai에서 하나를 끄거나 동기화를 중지한 후. 파일은 스윕이 삭제할 때까지 복구할 수 있도록 여기에 남아 있습니다 |1571| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/ko/skills#how-synced-skills-behave) 및 [plugins](/docs/ko/plugins/loading#synced-plugins). claude.ai 동기화가 제거한 것. 예를 들어 claude.ai에서 하나를 끄거나 동기화를 중지한 후. 파일은 스윕이 삭제할 때까지 복구할 수 있도록 여기에 남아 있습니다 |

1572| `todos/`, `statsig/`, `logs/` | 이전 버전의 레거시 디렉토리입니다. 더 이상 작성되지 않습니다. 스윕은 내용을 제거한 다음 빈 디렉토리를 제거합니다. |1572| `todos/`, `statsig/`, `logs/` | 이전 버전의 레거시 디렉토리입니다. 더 이상 작성되지 않습니다. 스윕은 내용을 제거한 다음 빈 디렉토리를 제거합니다. |

1573 1573 

1574`sessions/`의 세션 파일, 자동 메모리, Claude Desktop 및 Cowork 트랜스크립트는 각각 자체 보존 규칙을 따릅니다:1574`sessions/`의 세션 파일, 자동 메모리, Claude Desktop 및 Cowork 트랜스크립트는 각각 자체 보존 규칙을 따릅니다:


1678위의 [애플리케이션 데이터 경로](#state-files-to-keep)를 제외한 모든 경로를 직접 삭제할 수도 있습니다. 새 세션은 영향을 받지 않습니다. 아래 표는 과거 세션에서 손실되는 것을 보여줍니다.1678위의 [애플리케이션 데이터 경로](#state-files-to-keep)를 제외한 모든 경로를 직접 삭제할 수도 있습니다. 새 세션은 영향을 받지 않습니다. 아래 표는 과거 세션에서 손실되는 것을 보여줍니다.

1679 1679 

1680| 삭제 | 손실되는 것 |1680| 삭제 | 손실되는 것 |

1681| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |1681| -------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |

1682| `~/.claude/projects/` | 과거 세션의 재개, 계속 및 되감기, 그리고 모든 프로젝트의 자동 메모리 |1682| `~/.claude/projects/` | 과거 세션의 재개, 계속 및 되감기, 그리고 모든 프로젝트의 자동 메모리 |

1683| `~/.claude/history.jsonl` | 위쪽 화살표 프롬프트 회상, `Ctrl+R` 히스토리 검색 및 `!` 셸 명령 완성 |1683| `~/.claude/history.jsonl` | 위쪽 화살표 프롬프트 회상, `Ctrl+R` 히스토리 검색 및 `!` 셸 명령 완성 |

1684| `~/.claude/paste-cache/` | 회상된 프롬프트의 붙여넣은 텍스트. [대형 콘텐츠 붙여넣기](/docs/ko/terminal-config#paste-large-content) 참조 |1684| `~/.claude/paste-cache/` | 회상된 프롬프트의 붙여넣은 텍스트. [대형 콘텐츠 붙여넣기](/docs/ko/terminal-config#paste-large-content) 참조 |


1692| `~/.claude/cache/changelog.md` | 없음. 백그라운드에서 새로 고쳐집니다. |1692| `~/.claude/cache/changelog.md` | 없음. 백그라운드에서 새로 고쳐집니다. |

1693| `~/.claude/policy-limits.json` | 없음. 자동으로 새로 고쳐집니다. |1693| `~/.claude/policy-limits.json` | 없음. 자동으로 새로 고쳐집니다. |

1694| `~/.claude/tasks/` | 재개된 세션이 선택할 작업 목록 |1694| `~/.claude/tasks/` | 재개된 세션이 선택할 작업 목록 |

1695| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | [동기화된 skills](/docs/ko/skills#how-synced-skills-behave) 및 [동기화된 plugins](/docs/ko/plugins-reference#synced-plugins)를 복구할 기회. Claude Code가 제거한 것 |1695| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | [동기화된 skills](/docs/ko/skills#how-synced-skills-behave) 및 [동기화된 plugins](/docs/ko/plugins/loading#synced-plugins)를 복구할 기회. Claude Code가 제거한 것 |

1696| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | 사용자 대면 없음 |1696| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | 사용자 대면 없음 |

1697| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/`, `~/.claude/image-cache/` | 없음. 현재 버전에서 작성되지 않는 레거시 디렉토리. |1697| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/`, `~/.claude/image-cache/` | 없음. 현재 버전에서 작성되지 않는 레거시 디렉토리. |

1698 1698 

Details

242 242 

243Claude Code는 또한 기존 AWS 자격 증명을 검증할 수 없을 때 시작 시 이 명령을 실행하고 로그인이 완료될 때까지 `Authentication` 패널에 명령의 출력을 표시합니다.243Claude Code는 또한 기존 AWS 자격 증명을 검증할 수 없을 때 시작 시 이 명령을 실행하고 로그인이 완료될 때까지 `Authentication` 패널에 명령의 출력을 표시합니다.

244 244 

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

246 246 

247**옵션 B: 워크스페이스 API 키**247**옵션 B: 워크스페이스 API 키**

248 248 

claude-projects.md +46 −44

Details

10 프로젝트는 Pro 및 Max 플랜에서 공개 베타 상태이며 [클라우드 세션](/docs/ko/claude-code-on-the-web)을 사용했으며 claude.ai 채팅 또는 Cowork에 기존 프로젝트가 없는 계정부터 시작하여 점진적으로 출시되고 있습니다. 아직 Team 또는 Enterprise 플랜에서는 사용할 수 없습니다. [claude.ai/code](https://claude.ai/code)의 사이드바 또는 [데스크톱 앱](/docs/ko/desktop)의 Code 탭에 **프로젝트**가 나타나지 않으면 출시가 계정에 아직 도달하지 않았으며 [대기 목록에 참여](https://claude.com/form/projects)할 수 있습니다. [병렬로 에이전트 실행](/docs/ko/agents)에서 그 동안 사용할 수 있는 것을 나열합니다.10 프로젝트는 Pro 및 Max 플랜에서 공개 베타 상태이며 [클라우드 세션](/docs/ko/claude-code-on-the-web)을 사용했으며 claude.ai 채팅 또는 Cowork에 기존 프로젝트가 없는 계정부터 시작하여 점진적으로 출시되고 있습니다. 아직 Team 또는 Enterprise 플랜에서는 사용할 수 없습니다. [claude.ai/code](https://claude.ai/code)의 사이드바 또는 [데스크톱 앱](/docs/ko/desktop)의 Code 탭에 **프로젝트**가 나타나지 않으면 출시가 계정에 아직 도달하지 않았으며 [대기 목록에 참여](https://claude.com/form/projects)할 수 있습니다. [병렬로 에이전트 실행](/docs/ko/agents)에서 그 동안 사용할 수 있는 것을 나열합니다.

11</Note>11</Note>

12 12 

13프로젝트는 Claude가 관련된 작업 흐름을 조율하는 하나의 진행 중인 대화입니다. 사용자가 수행해야 할 작업을 알려주면 Claude는 각 작업에 대한 스레드를 시작합니다. 각 스레드는 [클라우드 세션](/docs/ko/claude-code-on-the-web)입니다. Claude Code가 사용자의 머신이 아닌 클라우드에서 실행됩니다. 스레드는 병렬로 실행되며 노트북을 닫은 후에도 계속 진행되며, 휴대폰에서 스레드를 확인하고 조율할 수 있습니다.13프로젝트는 Claude가 관련된 작업 흐름을 조율하는 하나의 진행 중인 대화입니다. 사용자가 수행해야 할 작업을 알려주면 Claude는 각 작업에 대한 스레드를 시작합니다.

14 

15각 스레드는 보통 [클라우드 세션](/docs/ko/claude-code-on-the-web)입니다. Claude Code가 사용자의 머신이 아닌 클라우드에서 실행됩니다. 작업에 컴퓨터에만 있는 것이 필요한 경우 Claude에게 [원격 제어](/docs/ko/remote-control)를 통해 해당 스레드를 컴퓨터에서 실행하도록 요청할 수 있습니다. 스레드는 병렬로 실행되며 휴대폰에서 스레드를 확인하고 조율할 수 있습니다. 클라우드 스레드는 노트북을 닫은 후에도 계속 진행됩니다.

14 16 

15프로젝트가 없으면 여러 세션을 실행하는 것은 직접 조율해야 합니다. 각 세션이 수행할 작업을 결정하고, 각 세션의 시작 부분에서 동일한 배경을 반복하고, 어느 것이 완료되었거나 답변이 필요한지 확인하기 위해 다시 확인합니다. 프로젝트를 사용하면 대신:17프로젝트가 없으면 여러 세션을 실행하는 것은 직접 조율해야 합니다. 각 세션이 수행할 작업을 결정하고, 각 세션의 시작 부분에서 동일한 배경을 반복하고, 어느 것이 완료되었거나 답변이 필요한지 확인하기 위해 다시 확인합니다. 프로젝트를 사용하면 대신:

16 18 

17* **한 곳으로 작업 전송**: 버그 보고서, 스택 추적 또는 작업 목록을 대화에 붙여넣으면 Claude가 각 작업에 대한 스레드를 시작하거나 이미 해당 영역에서 작업 중인 스레드로 전달하고 빠른 질문에 즉시 답변합니다.19* **한 곳으로 작업 전송**: 버그 보고서, 스택 추적 또는 작업 목록을 대화에 붙여넣으면 Claude가 각 작업에 대한 스레드를 시작하거나 이미 해당 영역에서 작업 중인 스레드로 전달하고 빠른 질문에 즉시 답변합니다.

18* **컨텍스트를 한 번 설정**: 모든 새 스레드는 프로젝트의 저장소, 지침 및 메모리로 시작하므로 대상 분기와 같이 한 번 명시한 규칙이 모든 스레드에 도달합니다.20* **컨텍스트를 한 번 설정**: 모든 새 스레드는 프로젝트의 지침으로 시작하므로 대상 분기와 같이 한 번 명시한 규칙이 모든 스레드에 도달합니다.

19* **떠났다가 완료된 작업으로 돌아오기**: 한 시간 후 또는 다음 아침에 돌아오면 **개요** 창에 어느 스레드가 완료되었는지, 어느 풀 요청이 검토 준비가 되었는지, 어느 스레드가 사용자의 답변을 기다리고 있는지 표시됩니다.21* **떠났다가 완료된 작업으로 돌아오기**: 한 시간 후 또는 다음 아침에 돌아오면 **개요** 창에 어느 스레드가 완료되었는지, 어느 풀 요청이 검토 준비가 되었는지, 어느 스레드가 사용자의 답변을 기다리고 있는지 표시됩니다.

20 22 

21이미 프로젝트가 실행하기를 원하는 작업을 알고 있다면 [프로젝트 생성](#create-a-project)으로 바로 이동하세요.23이미 프로젝트가 실행하기를 원하는 작업을 알고 있다면 [프로젝트 생성](#create-a-project)으로 바로 이동하세요.


37 다른 것이 더 잘 맞을 때39 다른 것이 더 잘 맞을 때

38</h3>40</h3>

39 41 

40스레드는 GitHub 저장소와 프로젝트에 업로드한 파일, 폴더 및 Google Drive 폴더에서 작동하며, 머신에만 존재하는 파일이나 도구에서는 작동하지 않습니다. 다음 경우에는 다른 것이 더 잘 맞습니다:42Cloud 스레드는 GitHub 저장소와 프로젝트에 업로드한 파일, 폴더 및 Google Drive 폴더에서 작동하며, 머신에만 존재하는 파일이나 도구에서는 작동하지 않습니다. 작업에 머신이 필요하면 [Remote Control](/docs/ko/remote-control)을 통해 Claude에게 해당 스레드를 머신에서 실행하도록 요청하세요. [Limitations](#limitations)에서 필요한 것을 나열합니다. 다음 경우에는 다른 것이 더 잘 맞습니다:

41 43 

42* **세션에 맞는 하나의 작업**: "불안정한 로그인 테스트를 수정합니다." [클라우드 세션](/docs/ko/claude-code-on-the-web)을 직접 시작하세요.44* **세션에 맞는 하나의 작업**: "불안정한 로그인 테스트를 수정합니다." [클라우드 세션](/docs/ko/claude-code-on-the-web)을 직접 시작하세요.

43* **머신만 도달할 수 있는 도구 또는 서비스가 필요한 작업**: 로컬 데이터베이스, 디바이스 에뮬레이터, VPN 뒤의 API입니다. 로컬 세션을 사용하거나 [에이전트 보기](/docs/ko/agent-view)를 사용하여 여러 개를 동시에 실행하세요. 작업에 로컬 파일만 필요하면 대신 프로젝트에 업로드하세요.45* **모든 작업이 머신이 필요한 작업**: 로컬 데이터베이스, 디바이스 에뮬레이터, 또는 VPN 뒤의 API입니다. 로컬 세션을 사용하거나, [agent view](/docs/ko/agent-view)를 사용하여 여러 개를 동시에 실행하세요. 작업에 로컬 파일만 필요하면 대신 프로젝트에 업로드하세요.

44* **대화 없이 일정에 따라 반복되는 하나의 작업**: "매주 월요일 종속성 보고서를 게시합니다." 자체적으로 [루틴](/docs/ko/routines)을 생성하세요.46* **대화 없이 일정에 따라 반복되는 하나의 작업**: "매주 월요일 종속성 보고서를 게시합니다." 자체적으로 [루틴](/docs/ko/routines)을 생성하세요.

45* **여러 사람이 Claude에게 작업을 제공하고 Slack 채널에서 함께 조율**: [Claude Tag](https://claude.com/docs/claude-tag/overview)를 참조하세요.47* **여러 사람이 Claude에게 작업을 제공하고 Slack 채널에서 함께 조율**: [Claude Tag](https://claude.com/docs/claude-tag/overview)를 참조하세요.

46 48 


53프로젝트는 Claude와의 하나의 조율 대화와 그것이 작업을 수행하기 위해 시작하는 스레드입니다. 이것이 그 부분들입니다:55프로젝트는 Claude와의 하나의 조율 대화와 그것이 작업을 수행하기 위해 시작하는 스레드입니다. 이것이 그 부분들입니다:

54 56 

55* **프로젝트 대화**: Claude가 조율자 역할을 하는 하나의 장기 실행 세션입니다. 사용자가 보내는 것을 받아서 무엇이 스레드가 될지 결정하고 시작한 모든 스레드를 추적합니다. 스레드가 보고하는 것을 보지만 스레드가 취하는 모든 단계를 보지는 않습니다.57* **프로젝트 대화**: Claude가 조율자 역할을 하는 하나의 장기 실행 세션입니다. 사용자가 보내는 것을 받아서 무엇이 스레드가 될지 결정하고 시작한 모든 스레드를 추적합니다. 스레드가 보고하는 것을 보지만 스레드가 취하는 모든 단계를 보지는 않습니다.

56* **스레드**: 작업자입니다. 각각은 자신의 컨텍스트 윈도우를 가진 별도의 [클라우드 세션](/docs/ko/claude-code-on-the-web)으로, 자신의 브랜치에서 한 가지 작업을 수행하고, 작업이 필요할 때 풀 리퀘스트를 열고, 완료되면 대화에 보고합니다.58* **스레드**: 작업자입니다. 각각은 자신의 컨텍스트 윈도우를 가진 별도의 세션으로, 한 가지 작업을 수행하고 완료되면 대화에 보고합니다. 클라우드 스레드는 자신의 브랜치에서 작업하고 작업이 필요할 때 풀 리퀘스트를 엽니다.

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

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

59 * [프로젝트의 각 저장소](#what-threads-pick-up-from-your-repositories)의 `CLAUDE.md`와 스킬, 그리고 하나의 저장소를 가진 프로젝트에서는 그 저장소의 권한 규칙과 훅도 포함61 * [프로젝트의 각 저장소](#what-threads-pick-up-from-your-repositories)의 `CLAUDE.md`와 스킬, 그리고 하나의 저장소를 가진 프로젝트에서는 그 저장소의 권한 규칙과 훅도 포함

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

61 * 네트워크 액세스, 환경 변수, API 자격 증명, 설치된 도구를 설정하는 [클라우드 환경](#choose-an-environment-for-threads)63 * 네트워크 액세스, 환경 변수, API 자격 증명, 설치된 도구를 설정하는 [클라우드 환경](#choose-an-environment-for-threads)

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

63 65 

64스레드는 자신의 머신에 있는 Claude Code 설정에서 아무것도 선택하지 않습니다. [스레드에 스킬, 플러그인, 커넥터, 도구 가져오기](#get-skills-plugins-connectors-and-tools-into-threads)는 그들이 다른 방법으로 누락될 것들을 어떻게 제공하는지 다룹니다.66클라우드 스레드는 자신의 머신에 있는 Claude Code 설정에서 아무것도 선택하지 않습니다. [스레드에 스킬, 플러그인, 커넥터, 도구 가져오기](#get-skills-plugins-connectors-and-tools-into-threads)는 그들이 다른 방법으로 누락될 것들을 어떻게 제공하는지 다룹니다.

65 67 

66대화를 통해 사용자에서 작업을 수행하는 스레드까지 이러한 부분들이 어떻게 연결되는지, **개요**가 그들의 상태를 추적하는 방식입니다:68대화를 통해 사용자에서 작업을 수행하는 스레드까지 이러한 부분들이 어떻게 연결되는지, **개요**가 그들의 상태를 추적하는 방식입니다:

67 69 

68<Frame>70<Frame>

69 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=dbf446f69f0bbdb9961d21af207cb93b" className="dark:hidden" alt="프로젝트의 다이어그램입니다. 사용자가 프로젝트 대화에 작성하면 Claude가 답변하거나 스레드를 시작합니다. 각 스레드는 자신의 브랜치와 풀 리퀘스트에서 작업하는 클라우드 세션입니다. 개요 창은 검토 준비 완료, 사용자 대기 중, 작업 중 등의 상태별로 스레드를 나열합니다." width="600" height="250" data-path="images/claude-projects-overview.svg" />71 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=dbf446f69f0bbdb9961d21af207cb93b" className="dark:hidden" alt="프로젝트의 다이어그램입니다. 사용자가 프로젝트 대화에 작성하면 Claude가 답변하거나 스레드를 시작합니다. 각 클라우드 스레드는 자신의 브랜치에서 작업하고 작업이 필요할 때 풀 리퀘스트를 엽니다. 개요 창은 검토 준비 완료, 사용자 대기 중, 작업 중 등의 상태별로 스레드를 나열합니다." width="600" height="250" data-path="images/claude-projects-overview.svg" />

70 72 

71 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview-dark.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=549a5ba9fea8433729babc37a1f6e9c8" className="hidden dark:block" alt="프로젝트의 다이어그램입니다. 사용자가 프로젝트 대화에 작성하면 Claude가 답변하거나 스레드를 시작합니다. 각 스레드는 자신의 브랜치와 풀 리퀘스트에서 작업하는 클라우드 세션입니다. 개요 창은 검토 준비 완료, 사용자 대기 중, 작업 중 등의 상태별로 스레드를 나열합니다." width="600" height="250" data-path="images/claude-projects-overview-dark.svg" />73 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview-dark.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=549a5ba9fea8433729babc37a1f6e9c8" className="hidden dark:block" alt="프로젝트의 다이어그램입니다. 사용자가 프로젝트 대화에 작성하면 Claude가 답변하거나 스레드를 시작합니다. 각 클라우드 스레드는 자신의 브랜치에서 작업하고 작업이 필요할 때 풀 리퀘스트를 엽니다. 개요 창은 검토 준비 완료, 사용자 대기 중, 작업 중 등의 상태별로 스레드를 나열합니다." width="600" height="250" data-path="images/claude-projects-overview-dark.svg" />

72</Frame>74</Frame>

73 75 

74<h2 id="create-a-project">76<h2 id="create-a-project">


89프로젝트를 만들기 전에 플랜, GitHub 설정 및 작업이 도달해야 할 사항을 확인하세요:91프로젝트를 만들기 전에 플랜, GitHub 설정 및 작업이 도달해야 할 사항을 확인하세요:

90 92 

91* **플랜**: Pro 또는 Max를 사용 중이며 사이드바에 **프로젝트**가 표시됩니다.93* **플랜**: Pro 또는 Max를 사용 중이며 사이드바에 **프로젝트**가 표시됩니다.

92* **GitHub(프로젝트가 코드에서 작업할 경우)**: 코드가 GitHub Enterprise Server, GitLab 또는 Bitbucket이 아닌 github.com에 있고, 연결된 GitHub 계정이 코드에 대한 푸시 액세스 권한을 가지고 있으며, Claude GitHub App이 설치되어 있습니다. [`/web-setup`](/docs/ko/web-quickstart#connect-from-your-terminal)으로 GitHub를 연결한 경우, 해당 토큰을 사용하면 다른 클라우드 세션이 리포지토리에 도달할 수 있지만 Claude GitHub App이 필요한 프로젝트 스레드에는 충분하지 않습니다. [GitHub 액세스 설정하기](#set-up-github-access)에 단계가 나와 있습니다.94* **GitHub(프로젝트가 코드에서 작업할 경우)**: 코드가 GitHub Enterprise Server, GitLab 또는 Bitbucket이 아닌 github.com에 있고, 연결된 GitHub 계정이 코드에 대한 푸시 액세스 권한을 가지고 있으며, Claude GitHub App이 설치되어 있습니다. [`/web-setup`](/docs/ko/web-quickstart#connect-from-your-terminal)으로 GitHub를 연결한 경우, 해당 토큰을 사용하면 다른 클라우드 세션이 리포지토리에 도달할 수 있지만 Claude GitHub App이 필요한 프로젝트의 클라우드 스레드에는 충분하지 않습니다. [GitHub 액세스 설정하기](#set-up-github-access)에 단계가 나와 있습니다.

93* **네트워크, 자격 증명 및 도구**: 이들은 프로젝트의 [클라우드 환경](#choose-an-environment-for-threads)에서 제공됩니다. 기본 환경은 이미 [일반적인 패키지 레지스트리](/docs/ko/cloud-environments#default-allowed-domains)에 도달하므로, 작업이 다른 도메인, 시크릿 또는 사전 설치되지 않은 도구가 필요한 경우에만 확인하세요. 작업이 MCP 서버가 필요한 경우, [claude.ai 커넥터](https://claude.ai/customize/connectors)에서 연결된 것으로 표시되는지 확인하세요.95* **네트워크, 자격 증명 및 도구**: 클라우드 스레드의 경우, 이들은 프로젝트의 [클라우드 환경](#choose-an-environment-for-threads)에서 제공됩니다. 기본 환경은 이미 [일반적인 패키지 레지스트리](/docs/ko/cloud-environments#default-allowed-domains)에 도달하므로, 작업이 다른 도메인, 시크릿 또는 사전 설치되지 않은 도구가 필요한 경우에만 확인하세요. 작업이 MCP 서버가 필요한 경우, [claude.ai 커넥터](https://claude.ai/customize/connectors)에서 연결된 것으로 표시되는지 확인하세요.

94 96 

95<h3 id="start-a-new-project-from-scratch">97<h3 id="start-a-new-project-from-scratch">

96 처음부터 새 프로젝트 시작하기98 처음부터 새 프로젝트 시작하기


279 프로젝트에 상황 맥락 제공하기281 프로젝트에 상황 맥락 제공하기

280</h2>282</h2>

281 283 

282프로젝트 메모리, 프로젝트 지침, 그리고 프로젝트의 저장소, 파일, 환경은 스레드 전체에서 맥락을 유지합니다. 각 항목을 한 번 설정하면 모든 새로운 스레드에 적용됩니다.284프로젝트 메모리, 프로젝트 지침, 그리고 프로젝트의 저장소, 파일, 환경은 스레드 전체에서 맥락을 유지합니다. 각 항목을 한 번 설정하면 됩니다.

283 285 

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

285| :---------- | :----------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- |287| :---------- | :-------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- |

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

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

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

289 291 

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

291 293 

292<h3 id="write-project-instructions">294<h3 id="write-project-instructions">

293 프로젝트 지침 작성하기295 프로젝트 지침 작성하기


312- 내 승인 없이 병합하거나, 강제 푸시하거나, CI 구성을 변경하지 마세요.314- 내 승인 없이 병합하거나, 강제 푸시하거나, CI 구성을 변경하지 마세요.

313```315```

314 316 

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

316 318 

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

318 추가할 저장소 결정하기320 추가할 저장소 결정하기

319</h3>321</h3>

320 322 

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

322 324 

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

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

325 327 

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

327 329 

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

329 331 

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

331 333 

332<h3 id="what-threads-pick-up-from-your-repositories">334<h3 id="what-threads-pick-up-from-your-repositories">

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

334</h3>336</h3>

335 337 

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

337 339 

338| 각 저장소에서 | 한 저장소 | 여러 저장소 |340| 각 저장소에서 | 한 저장소 | 여러 저장소 |

339| :-------------------------------------------- | :--------------------------------------------------------------------------------------------------------- | :------------------------------------------- |341| :-------------------------------------------- | :--------------------------------------------------------------------------------------------------------- | :------------------------------------------- |


348 스레드의 환경 선택하기350 스레드의 환경 선택하기

349</h3>351</h3>

350 352 

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

352 354 

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

354 356 

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

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

357</h3>359</h3>

358 360 

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

360 362 

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

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

363* 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)은 클라우드 세션의 규칙과 커넥터를 끄는 설정을 나열합니다.365* 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)은 클라우드 세션의 규칙과 커넥터를 끄는 설정을 나열합니다.

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

365 367 

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

367 369 

368<h2 id="project-settings-reference">370<h2 id="project-settings-reference">

369 프로젝트 설정 참조371 프로젝트 설정 참조


434 프로젝트가 다른 Claude Code 기능과 어떻게 연결되는지436 프로젝트가 다른 Claude Code 기능과 어떻게 연결되는지

435</h2>437</h2>

436 438 

437여러 Claude Code 기능을 통해 한 번에 둘 이상의 세션이 작동할 수 있으므로, 병렬로 작업을 실행하는 것 자체가 프로젝트의 목적은 아닙니다. 프로젝트에서는 Claude가 사용자 대신 세션을 시작하고 추적하며, 각 세션은 동일한 저장소, 지침 및 메모리에서 시작되고, 작업은 지속되는 동안 클라우드에 저장됩니다. 다음은 각 인접 기능이 프로젝트와 어떻게 연결되는지 보여줍니다:439여러 Claude Code 기능을 통해 한 번에 둘 이상의 세션이 작동할 수 있으므로, 병렬로 작업을 실행하는 것 자체가 프로젝트의 목적은 아닙니다. 프로젝트에서는 Claude가 세션을 시작하고 추적하며, 각 세션은 동일한 지시사항에서 시작합니다. 각 인접 기능이 프로젝트와 어떻게 연결되는지는 다음과 같습니다:

438 440 

439* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview)는 Team 및 Enterprise 플랜의 팀 Slack 채널에 있는 Claude입니다. 채널의 누구나 작업을 할당할 수 있고, 채널의 모든 사람이 이를 보고 조정할 수 있으며, 관리자가 해당 채널을 위해 설정한 연결을 사용합니다. 프로젝트는 사용자만의 것입니다: 사용자만 작업을 할당하거나 스레드를 볼 수 있고, 사용자 자신의 GitHub 액세스 및 커넥터를 사용하며, Pro 및 Max에서 사용 가능합니다. [Claude Tag가 Cowork 및 Claude Code와 어떻게 다른지](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code)에서 나란히 비교한 내용을 확인할 수 있습니다.441* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview)는 Team 및 Enterprise 플랜의 팀 Slack 채널에 있는 Claude입니다. 채널의 누구나 작업을 할당할 수 있고, 채널의 모든 사람이 이를 보고 조정할 수 있으며, 관리자가 해당 채널을 위해 설정한 연결을 사용합니다. 프로젝트는 개인 전용입니다: 사용자만 작업을 할당하거나 스레드를 볼 수 있으며, 자신의 GitHub 액세스 및 커넥터를 사용하고, Pro 및 Max에서 사용 가능합니다. [Claude Tag가 Cowork 및 Claude Code와 어떻게 다른지](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code)에서 나란히 비교한 내용을 확인할 수 있습니다.

440* **클라우드 세션**: 모든 스레드는 Claude가 시작하고 추적하는 [클라우드 세션](/docs/ko/claude-code-on-the-web)입니다. 사용자가 직접 시작한 클라우드 세션은 [**프로젝트로 계속하기** 또는 **프로젝트로 이동**](#start-from-an-existing-cloud-session)을 통해 프로젝트가 되거나 프로젝트에 피드될 수 있습니다.442* **클라우드 세션**: 모든 스레드는 Claude에게 머신에서 실행하도록 요청하지 않는 한 [클라우드 세션](/docs/ko/claude-code-on-the-web)입니다. 어느 쪽이든 Claude가 세션을 시작하고 추적합니다. 직접 시작한 클라우드 세션은 [**프로젝트로 계속하기** 또는 **프로젝트로 이동**](#start-from-an-existing-cloud-session)을 통해 프로젝트가 되거나 프로젝트에 피드될 수 있습니다.

441* **루틴**: 프로젝트에서 예약된 작업을 요청하면, Claude는 해당 프로젝트의 스레드로 실행되고 **루틴** 탭에 표시되는 [루틴](/docs/ko/routines)을 생성합니다. 프로젝트 외부에서 생성한 루틴은 계속 독립적으로 작동합니다.443* **루틴**: 프로젝트에서 예약된 작업을 요청하면 Claude는 해당 프로젝트의 스레드로 실행되고 **루틴** 탭에 표시되는 [루틴](/docs/ko/routines)을 생성합니다. 프로젝트 외부에서 생성한 루틴은 계속 독립적으로 작동합니다.

442* **로컬 세션 및 에이전트 뷰**: 터미널, IDE 또는 데스크톱 앱의 로컬 환경에서 실행되는 세션은 사용자의 머신에서 실행되며 프로젝트의 일부가 될 수 없습니다. [에이전트 뷰](/docs/ko/agent-view)는 여러 로컬 세션을 추적하기 위한 화면이며, 조정자가 없습니다.444* **로컬 세션 및 에이전트 뷰**: 터미널, IDE 또는 데스크톱 앱의 로컬 환경에서 직접 시작한 세션은 프로젝트에 추가할 수 없습니다. 프로젝트는 [원격 제어](/docs/ko/remote-control)를 통해 스레드를 실행하여 머신에만 도달합니다. [에이전트 뷰](/docs/ko/agent-view)는 직접 시작한 여러 로컬 세션을 추적하기 위한 화면이며, 조정자가 없습니다.

443* **Worktrees**: [worktree](/docs/ko/worktrees)는 각 로컬 세션에 저장소의 자체 작업 복사본을 제공하므로 머신의 병렬 세션이 서로 덮어쓰지 않습니다. 스레드는 이를 필요로 하지 않습니다: 각 스레드는 저장소를 자체 클라우드 샌드박스에 복제하고 자체 브랜치에서 작동합니다.445* **Worktrees**: [worktree](/docs/ko/worktrees)는 각 로컬 세션에 리포지토리의 자체 작업 복사본을 제공하므로 머신의 병렬 세션이 서로 덮어쓰지 않습니다. 클라우드 스레드는 이를 필요로 하지 않습니다: 각 스레드는 리포지토리를 자체 클라우드 샌드박스에 복제하고 자체 브랜치에서 작동합니다.

444* **에이전트 팀**: [에이전트 팀](/docs/ko/agent-teams)은 머신 또는 클라우드 세션 내에서 단일 작업을 위해 팀원 세션을 시작하고 해당 작업으로 끝나는 하나의 세션입니다.446* **에이전트 팀**: [에이전트 팀](/docs/ko/agent-teams)은 머신 또는 클라우드 세션 내에서 단일 작업을 위해 팀원 세션을 시작하고 해당 작업으로 끝나는 하나의 세션입니다.

445* **claude.ai 채팅 및 Cowork의 프로젝트**: 스레드나 조정자 없이 대화 및 참조 파일을 그룹화하는 [이전 프로젝트 경험](https://support.claude.com/en/articles/9517075-what-are-projects)입니다. 이러한 프로젝트는 재설계된 경험이 도달할 때까지 현재대로 계속 작동합니다.447* **claude.ai 채팅 및 Cowork의 프로젝트**: 스레드나 조정자 없이 대화 및 참조 파일을 그룹화하는 [이전 프로젝트 경험](https://support.claude.com/en/articles/9517075-what-are-projects)입니다. 이러한 프로젝트는 재설계된 경험이 도달할 때까지 현재대로 계속 작동합니다.

446 448 

447[병렬로 에이전트 실행](/docs/ko/agents)에서 이러한 옵션을 나란히 비교합니다.449[에이전트를 병렬로 실행](/docs/ko/agents)에서 이러한 옵션을 나란히 비교합니다.

448 450 

449<h2 id="limitations">451<h2 id="limitations">

450 제한 사항452 제한 사항

451</h2>453</h2>

452 454 

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

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

455* 로컬 세션은 프로젝트의 일부가 될 수 없습니다.457* 자신의 머신에서 직접 시작한 세션을 프로젝트에 추가할 수 없습니다. 프로젝트가 머신에서 스레드를 실행하도록 하려면, [Remote Control](/docs/ko/remote-control#requirements)을 통해 작업해야 할 폴더를 연결합니다: Claude 데스크톱 앱의 **설정 > Claude Code**에서 Remote Control을 켜거나, 폴더에서 `claude remote-control`을 실행하고 실행 상태로 유지합니다. 해당 머신에는 Claude Code v2.1.280 이상이 필요합니다. 또한 claude.ai 설정에서 **신뢰할 수 있는 기기 필요**가 켜져 있으면 프로젝트가 머신에서 스레드를 실행할 수 없습니다.

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

457* 프로젝트는 한 사용자에게 속합니다. 프로젝트 또는 스레드를 다른 사용자와 공유할 수 없으며, 스레드 기록에는 다른 클라우드 세션이 가진 공유 옵션이 없습니다. 베타 중에는 프로젝트에 대한 조직 수준 제어가 없습니다.459* 프로젝트는 한 사용자에게 속합니다. 프로젝트 또는 스레드를 다른 사용자와 공유할 수 없으며, 스레드 기록에는 다른 클라우드 세션이 가진 공유 옵션이 없습니다. 베타 중에는 프로젝트에 대한 조직 수준 제어가 없습니다.

458* 스레드는 시작한 하나의 프로젝트에 속합니다. 스레드를 다른 프로젝트로 이동하거나 복사할 수 없으며, 독립적으로 이동할 수 없습니다. [**Move to project**](#start-from-an-existing-cloud-session)는 다른 방향으로만 이동합니다: 클라우드 세션의 작업을 프로젝트로 가져옵니다.460* 스레드는 시작한 하나의 프로젝트에 속합니다. 스레드를 다른 프로젝트로 이동하거나 복사할 수 없으며, 독립적으로 이동할 수 없습니다. [**Move to project**](#start-from-an-existing-cloud-session)는 다른 방향으로만 이동합니다: 클라우드 세션의 작업을 프로젝트로 가져옵니다.

459 461 


467 스레드가 멈춘 것처럼 보임469 스레드가 멈춘 것처럼 보임

468</h3>470</h3>

469 471 

470Claude는 스레드가 수행하는 각 단계를 게시하지 않으므로, 프로젝트 대화에서 실행 중이지만 새 메시지가 없는 것으로 표시되는 스레드는 일반적으로 여전히 작동 중입니다. 새 스레드는 Claude가 시작하기 전에 [클라우드 환경](/docs/ko/cloud-environments)을 프로비저닝하므로, 첫 번째 업데이트에는 시간이 걸립니다. 스레드를 열어 트랜스크립트를 읽으십시오. 스레드가 권한 프롬프트를 기다리고 있으면 거기서 답변하십시오.472Claude는 스레드가 수행하는 각 단계를 게시하지 않으므로, 프로젝트 대화에서 실행 중이지만 새 메시지가 없는 것으로 표시되는 스레드는 일반적으로 여전히 작동 중입니다. 새 클라우드 스레드는 Claude가 시작하기 전에 [클라우드 환경](/docs/ko/cloud-environments)을 프로비저닝하므로, 첫 번째 업데이트에는 시간이 걸립니다. 스레드를 열어 트랜스크립트를 읽으십시오. 스레드가 권한 프롬프트를 기다리고 있으면 거기서 답변하십시오.

471 473 

472<h3 id="threads-guessed-or-stalled-instead-of-asking">474<h3 id="threads-guessed-or-stalled-instead-of-asking">

473 스레드가 묻지 않고 추측하거나 정체됨475 스레드가 묻지 않고 추측하거나 정체됨


489 저장소 액세스 오류491 저장소 액세스 오류

490</h3>492</h3>

491 493 

492세 가지 메시지는 스레드 또는 프로젝트가 해당 저장소 중 하나에 도달할 수 없음을 의미합니다. 프로젝트 스레드는 다른 클라우드 세션이 동일한 저장소를 문제 없이 복제하는 경우에도 [GitHub 필수 조건](#check-the-prerequisites)이 필요합니다.494세 가지 메시지는 스레드 또는 프로젝트가 해당 저장소 중 하나에 도달할 수 없음을 의미합니다. 프로젝트의 클라우드 스레드는 다른 클라우드 세션이 동일한 저장소를 문제 없이 복제하는 경우에도 [GitHub 필수 조건](#check-the-prerequisites)이 필요합니다.

493 495 

494* **"세션을 시작할 수 없음 — Claude가 이 프로젝트의 저장소에 대한 GitHub 액세스 권한이 없음"**, 스레드가 시작되기 전에 보고됨. Claude GitHub 앱이 해당 저장소에 설치되지 않았거나, 일시 중단되었거나, 연결한 GitHub 계정에 연결되지 않았을 때입니다.496* **"세션을 시작할 수 없음 — Claude가 이 프로젝트의 저장소에 대한 GitHub 액세스 권한이 없음"**, 스레드가 시작되기 전에 보고됨. Claude GitHub 앱이 해당 저장소에 설치되지 않았거나, 일시 중단되었거나, 연결한 GitHub 계정에 연결되지 않았을 때입니다.

495* **"저장소에 액세스할 수 없음"**, 스레드가 복제에 실패할 때 보고됨: GitHub가 복제를 거부했거나, 저장소를 프로젝트가 가진 이름으로 찾을 수 없거나, 스레드가 시작하도록 요청받은 분기가 존재하지 않습니다.497* **"저장소에 액세스할 수 없음"**, 스레드가 복제에 실패할 때 보고됨: GitHub가 복제를 거부했거나, 저장소를 프로젝트가 가진 이름으로 찾을 수 없거나, 스레드가 시작하도록 요청받은 분기가 존재하지 않습니다.


531 관련 리소스533 관련 리소스

532</h2>534</h2>

533 535 

534* [클라우드에서 Claude Code 사용](/docs/ko/claude-code-on-the-web): 각 스레드 뒤의 클라우드 세션이 어떻게 작동하는지, GitHub 액세스 옵션 및 풀 요청의 자동 수정 포함536* [클라우드에서 Claude Code 사용](/docs/ko/claude-code-on-the-web): 각 클라우드 스레드 뒤의 클라우드 세션이 어떻게 작동하는지, GitHub 액세스 옵션 및 풀 요청의 자동 수정 포함

535* [클라우드 환경 구성](/docs/ko/cloud-environments): 스레드가 네트워크에서 도달할 수 있는 것을 변경하고, 환경 변수 및 API 자격 증명을 제공하고, 설정 스크립트로 도구를 설치합니다537* [클라우드 환경 구성](/docs/ko/cloud-environments): 클라우드 스레드가 네트워크에서 도달할 수 있는 것을 변경하고, 환경 변수 및 API 자격 증명을 제공하고, 설정 스크립트로 도구를 설치합니다

536* [루틴으로 작업 자동화](/docs/ko/routines): 일정, 트리거 및 루틴 관리, 프로젝트에서 Claude가 생성하는 것 포함538* [루틴으로 작업 자동화](/docs/ko/routines): 일정, 트리거 및 루틴 관리, 프로젝트에서 Claude가 생성하는 것 포함

537* [에이전트 보기로 여러 에이전트 관리](/docs/ko/agent-view): 작업이 머신만 도달할 수 있는 도구 또는 서비스가 필요할 때 머신에서 여러 세션을 실행하고 추적합니다539* [에이전트 보기로 여러 에이전트 관리](/docs/ko/agent-view): 작업이 머신만 도달할 수 있는 도구 또는 서비스가 필요할 때 머신에서 여러 세션을 실행하고 추적합니다

538* [Projects redesigned: from folder to conversation](https://claude.com/blog/projects-redesigned): 출시 공지, 프로젝트를 Claude와의 대화로 만드는 생각 포함540* [Projects redesigned: from folder to conversation](https://claude.com/blog/projects-redesigned): 출시 공지, 프로젝트를 Claude와의 대화로 만드는 생각 포함

Details

27 플러그인 설치27 플러그인 설치

28</h2>28</h2>

29 29 

30Claude Code 세션에서 [공식 Anthropic 마켓플레이스](/docs/ko/discover-plugins#official-anthropic-marketplace)에서 설치합니다.30Claude Code 세션에서 [공식 Anthropic 마켓플레이스](/docs/ko/plugins/anthropic-marketplaces)에서 설치합니다:

31 31 

32```text theme={null}32```text theme={null}

33/plugin install claude-security@claude-plugins-official33/plugin install claude-security@claude-plugins-official

34```34```

35 35 

36명령은 플러그인의 세부 정보를 열며, 여기서 [설치 범위](/docs/ko/discover-plugins#install-plugins)를 선택하여 설치를 시작합니다.36명령은 플러그인의 세부 정보를 열며, 여기서 [설치 범위](/docs/ko/plugins/install#install-a-plugin)를 선택하여 설치를 시작합니다.

37 37 

38설치가 실패하면 Claude Code가 보고하는 메시지에 따라 수정 방법이 달라집니다.38설치가 실패하면 Claude Code가 보고하는 메시지에 따라 수정 방법이 달라집니다:

39 39 

40* `Marketplace "claude-plugins-official" not found`를 보고하면 `/plugin marketplace add anthropics/claude-plugins-official`로 마켓플레이스를 추가한 후 설치를 다시 시도하세요.40* `Marketplace "claude-plugins-official" not found`를 보고하면 `/plugin marketplace add anthropics/claude-plugins-official`로 마켓플레이스를 추가한 후 설치를 다시 시도하세요.

41* [마켓플레이스에서 플러그인을 찾을 수 없다](/docs/ko/discover-plugins#install-plugins)고 보고하면 플러그인 이름에 오타가 없는지 확인하세요.41* [마켓플레이스에서 플러그인을 찾을 수 없다](/docs/ko/plugins/install#install-a-plugin)고 보고하면 플러그인 이름에 오타가 없는지 확인하세요.

42 42 

43설치 요약을 확인하세요. `Run /reload-plugins to activate.`를 보고하면 [재시작 없이 플러그인 변경 사항 적용](/docs/ko/discover-plugins#apply-plugin-changes-without-restarting)을 참조하여 현재 세션에서 플러그인을 활성화하세요.43설치 요약을 확인하세요. `Run /reload-plugins to activate.`를 보고하면 [재시작 없이 플러그인 변경 사항 적용](/docs/ko/plugins/cli-reference#reload-plugins)을 참조하여 현재 세션에서 플러그인을 활성화하세요.

44 44 

45플러그인이 활성화되면 [코드베이스 스캔 및 수정](#scan-and-fix-your-codebase)을 시작할 준비가 되었습니다.45플러그인이 활성화되면 [코드베이스 스캔 및 수정](#scan-and-fix-your-codebase)을 시작할 준비가 되었습니다.

46 46 


168* [Code Review](/docs/ko/code-review): PR 시간 다중 에이전트 검토를 설정합니다.168* [Code Review](/docs/ko/code-review): PR 시간 다중 에이전트 검토를 설정합니다.

169* [Claude Security](https://claude.com/product/claude-security): 연결된 저장소를 모니터링하는 관리형 서비스169* [Claude Security](https://claude.com/product/claude-security): 연결된 저장소를 모니터링하는 관리형 서비스

170* [Claude Code 보안](/docs/ko/security): Claude Code가 신뢰, 권한 및 보안 조치에 어떻게 접근하는지170* [Claude Code 보안](/docs/ko/security): Claude Code가 신뢰, 권한 및 보안 조치에 어떻게 접근하는지

171* [플러그인 발견 및 설치](/docs/ko/discover-plugins#official-anthropic-marketplace): 다른 공식 플러그인 찾아보기171* [플러그인 설치 및 관리](/docs/ko/plugins/install): 공식 마켓플레이스에서 다른 플러그인을 찾아 설치합니다.

claude-tag.md +0 −11 deleted

File Deleted View Diff

1> ## Documentation Index

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

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

4 

5# Claude Tag

6 

7> Claude Tag를 사용하여 팀의 Slack 채널에 Claude를 가져오고 claude.com에서 설정 및 사용 설명서를 찾습니다.

8 

9[Claude Tag](https://claude.com/product/tag)는 조직의 공유 ID로 관리자가 구성한 액세스 권한으로 팀의 채널에서 `@Claude`를 실행하는 Slack 통합입니다. 채널의 누구나 스레드에 `@Claude`를 태그하고 작업을 할당할 수 있습니다. claude.com의 [Claude Tag 설명서](https://claude.com/docs/claude-tag/overview)를 읽고 설정하여 사용을 시작합니다.

10 

11Claude Tag는 Team 및 Enterprise 플랜에서 사용 가능하며, 각 세션이 개별 사용자의 계정으로 실행되는 이전의 [Claude Code in Slack](/docs/ko/slack)과는 다릅니다. Claude Tag를 사용할 수 없는 Pro 및 Max 플랜에서는 Claude Code in Slack이 설정 경로로 유지됩니다.

Details

37| `claude import [source]` | 다른 코딩 에이전트의 구성을 Claude Code로 가져오기 위해 [`/import`](/docs/ko/commands#all-commands)를 실행하는 대화형 세션을 시작합니다. 명령어와 동일한 `--dry-run` 및 `--yes` 옵션을 허용합니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 또는 AWS의 Claude Platform에서는 사용할 수 없습니다. [기능 플래그 가져오기](/docs/ko/env-vars#features-that-need-feature-flag-fetching)를 끄면 사용할 수 없습니다. Claude Code v2.1.213 이상이 필요합니다 | `claude import codex --dry-run` |37| `claude import [source]` | 다른 코딩 에이전트의 구성을 Claude Code로 가져오기 위해 [`/import`](/docs/ko/commands#all-commands)를 실행하는 대화형 세션을 시작합니다. 명령어와 동일한 `--dry-run` 및 `--yes` 옵션을 허용합니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 또는 AWS의 Claude Platform에서는 사용할 수 없습니다. [기능 플래그 가져오기](/docs/ko/env-vars#features-that-need-feature-flag-fetching)를 끄면 사용할 수 없습니다. Claude Code v2.1.213 이상이 필요합니다 | `claude import codex --dry-run` |

38| `claude logs <id>` | [백그라운드 세션](/docs/ko/agent-view#manage-sessions-from-the-shell)의 최근 출력을 인쇄합니다 | `claude logs 7c5dcf5d` |38| `claude logs <id>` | [백그라운드 세션](/docs/ko/agent-view#manage-sessions-from-the-shell)의 최근 출력을 인쇄합니다 | `claude logs 7c5dcf5d` |

39| `claude mcp` | Model Context Protocol (MCP) 서버 구성 | [Claude Code MCP 문서](/docs/ko/mcp) 참조 |39| `claude mcp` | Model Context Protocol (MCP) 서버 구성 | [Claude Code MCP 문서](/docs/ko/mcp) 참조 |

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

41| `claude mcp logout <name>` | MCP 서버에 대해 저장된 OAuth 자격 증명을 지웁니다. Claude Code v2.1.186 이상이 필요합니다 | `claude mcp logout sentry` |41| `claude mcp logout <name>` | MCP 서버에 대해 저장된 OAuth 자격 증명을 지웁니다 | `claude mcp logout sentry` |

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

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

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

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


67| `--agents` | JSON을 통해 사용자 정의 서브에이전트를 동적으로 정의합니다. [CLI 정의 서브에이전트에 대해 나열된 필드](/docs/ko/sub-agents#choose-the-subagent-scope)를 허용합니다. Claude Code는 시작 시 JSON을 검증하고 잘못된 값에서 종료합니다. 메시지 및 검증을 건너뛰는 플래그와 환경 변수는 [`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"}}'` |67| `--agents` | JSON을 통해 사용자 정의 서브에이전트를 동적으로 정의합니다. [CLI 정의 서브에이전트에 대해 나열된 필드](/docs/ko/sub-agents#choose-the-subagent-scope)를 허용합니다. Claude Code는 시작 시 JSON을 검증하고 잘못된 값에서 종료합니다. 메시지 및 검증을 건너뛰는 플래그와 환경 변수는 [`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"}}'` |

68| `--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` |68| `--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` |

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

70| `--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"` |70| `--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"` |

71| `--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"` |71| `--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"` |

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

73| `--append-system-prompt-file` | 파일에서 추가 시스템 프롬프트 텍스트를 로드하고 기본 프롬프트에 추가합니다 | `claude --append-system-prompt-file ./extra-rules.txt` |73| `--append-system-prompt-file` | 파일에서 추가 시스템 프롬프트 텍스트를 로드하고 기본 프롬프트에 추가합니다 | `claude --append-system-prompt-file ./extra-rules.txt` |

74| `--autocompact <auto\|tokens>` | 저장된 설정을 변경하지 않고 이 세션에 대해 [auto-compact 윈도우](/docs/ko/model-config#set-the-auto-compact-window)를 설정합니다. `/autocompact`와 동일한 값을 허용합니다. 해당 섹션에서 값 형식과 플래그를 재정의하는 것을 다룹니다. Claude Code v2.1.221 이상이 필요합니다 | `claude --autocompact 500k` |74| `--autocompact <auto\|tokens>` | 저장된 설정을 변경하지 않고 이 세션에 대해 [auto-compact 윈도우](/docs/ko/model-config#set-the-auto-compact-window)를 설정합니다. `/autocompact`와 동일한 값을 허용합니다. 해당 섹션에서 값 형식과 플래그를 재정의하는 것을 다룹니다. Claude Code v2.1.221 이상이 필요합니다 | `claude --autocompact 500k` |

75| `--ax-screen-reader` | 스크린 리더 친화적 출력을 렌더링합니다: 장식 테두리나 애니메이션 없는 평면 텍스트입니다. 클래식 렌더러를 강제하므로 [`tui`](/docs/ko/settings-reference#tui) 설정은 효과가 없습니다. 연결된 [백그라운드 세션](/docs/ko/agent-view)은 여전히 전체 화면으로 렌더링됩니다. [`CLAUDE_AX_SCREEN_READER`](/docs/ko/env-vars) 및 [`axScreenReader`](/docs/ko/settings-reference#axscreenreader) 설정보다 우선합니다. Claude Code v2.1.181 이상이 필요합니다 | `claude --ax-screen-reader` |75| `--ax-screen-reader` | 스크린 리더 친화적 출력을 렌더링합니다: 장식 테두리나 애니메이션 없는 평면 텍스트입니다. 클래식 렌더러를 강제하므로 [`tui`](/docs/ko/settings-reference#tui) 설정은 효과가 없습니다. 연결된 [백그라운드 세션](/docs/ko/agent-view)은 여전히 전체 화면으로 렌더링됩니다. [`CLAUDE_AX_SCREEN_READER`](/docs/ko/env-vars) 및 [`axScreenReader`](/docs/ko/settings-reference#axscreenreader) 설정보다 우선합니다. Claude Code v2.1.181 이상이 필요합니다 | `claude --ax-screen-reader` |

76| `--bare` | 최소 모드: 훅, 스킬, 사용자 정의 명령, 서브에이전트, 플러그인, MCP 서버, 자동 메모리 및 CLAUDE.md의 자동 검색을 건너뜁니다. 스크립트된 호출이 더 빠르게 시작됩니다. `--add-dir`로 전달하는 디렉터리의 스킬은 여전히 로드됩니다. Claude는 Bash, 파일 읽기 및 파일 편집 도구에 액세스할 수 있습니다. [`CLAUDE_CODE_SIMPLE`](/docs/ko/env-vars)을 설정합니다. [베어 모드](/docs/ko/headless#start-faster-with-bare-mode)를 참조하세요 | `claude --bare -p "query"` |76| `--bare` | 최소 모드: 훅, 스킬, 사용자 정의 명령, 서브에이전트, 설치된 플러그인, MCP 서버, 자동 메모리 및 CLAUDE.md의 자동 검색을 건너뜁니다. 스크립트된 호출이 더 빠르게 시작됩니다. `--add-dir`로 전달하는 디렉터리의 스킬은 여전히 로드됩니다. Claude는 Bash, 파일 읽기 및 파일 편집 도구에 액세스할 수 있습니다. [`CLAUDE_CODE_SIMPLE`](/docs/ko/env-vars)을 설정합니다. [베어 모드](/docs/ko/headless#start-faster-with-bare-mode)를 참조하세요 | `claude --bare -p "query"` |

77| `--betas` | API 요청에 포함할 베타 헤더입니다(API 키 사용자만 해당) | `claude --betas interleaved-thinking` |77| `--betas` | API 요청에 포함할 베타 헤더입니다(API 키 사용자만 해당) | `claude --betas interleaved-thinking` |

78| `--bg`, `--background` | 세션을 [백그라운드 에이전트](/docs/ko/agent-view)로 시작하고 즉시 반환합니다. 세션 ID 및 관리 명령을 인쇄합니다. `--exec`와 결합하여 Claude 세션 대신 셸 명령을 백그라운드 작업으로 실행하거나, `--agent`와 결합하여 특정 서브에이전트를 실행합니다. `-p`/`--print`와 결합할 수 없습니다. [오류 참조](/docs/ko/errors#command-line-errors)를 참조하세요 | `claude --bg "investigate the flaky test"` |78| `--bg`, `--background` | 세션을 [백그라운드 에이전트](/docs/ko/agent-view)로 시작하고 즉시 반환합니다. 세션 ID 및 관리 명령을 인쇄합니다. `--exec`와 결합하여 Claude 세션 대신 셸 명령을 백그라운드 작업으로 실행하거나, `--agent`와 결합하여 특정 서브에이전트를 실행합니다. `-p`/`--print`와 결합할 수 없습니다. [오류 참조](/docs/ko/errors#command-line-errors)를 참조하세요 | `claude --bg "investigate the flaky test"` |

79| `--channels` | (연구 미리보기) Claude가 이 세션에서 수신해야 하는 [채널](/docs/ko/channels) 알림이 있는 MCP 서버입니다. `plugin:<name>@<marketplace>` 항목의 공백으로 구분된 목록입니다. claude.ai 또는 Console API 키를 통한 Anthropic 인증이 필요합니다 | `claude --channels plugin:my-notifier@my-marketplace` |79| `--channels` | (연구 미리보기) Claude가 이 세션에서 수신해야 하는 [채널](/docs/ko/channels) 알림이 있는 MCP 서버입니다. `plugin:<name>@<marketplace>` 항목의 공백으로 구분된 목록입니다. claude.ai 또는 Console API 키를 통한 Anthropic 인증이 필요합니다 | `claude --channels plugin:my-notifier@my-marketplace` |


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

115| `--permission-prompt-tool` | 비대화형 모드에서 권한 프롬프트를 처리할 MCP 도구를 지정합니다. Claude Code는 첫 번째 턴을 실행하기 전에 해당 도구의 MCP 서버가 연결될 때까지 기다립니다. [`MCP_TIMEOUT`](/docs/ko/env-vars) 시작 시간 초과(기본값 30초)까지입니다. <br /><br />프롬프트 도구는 [사용자 상호 작용이 필요한 것으로 표시된](/docs/ko/mcp#require-approval-for-a-specific-tool) MCP 도구를 승인할 수 없습니다. Claude Code는 하나에 대한 `allow` 결과를 거부로 변환합니다. 이 제한에는 Claude Code v2.1.199 이상이 필요합니다 | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |115| `--permission-prompt-tool` | 비대화형 모드에서 권한 프롬프트를 처리할 MCP 도구를 지정합니다. Claude Code는 첫 번째 턴을 실행하기 전에 해당 도구의 MCP 서버가 연결될 때까지 기다립니다. [`MCP_TIMEOUT`](/docs/ko/env-vars) 시작 시간 초과(기본값 30초)까지입니다. <br /><br />프롬프트 도구는 [사용자 상호 작용이 필요한 것으로 표시된](/docs/ko/mcp#require-approval-for-a-specific-tool) MCP 도구를 승인할 수 없습니다. Claude Code는 하나에 대한 `allow` 결과를 거부로 변환합니다. 이 제한에는 Claude Code v2.1.199 이상이 필요합니다 | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |

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

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

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

119| `--print`, `-p` | 대화형 모드 없이 응답을 인쇄합니다([프로그래밍 방식 사용에 대한 Agent SDK 문서](/docs/ko/agent-sdk/overview) 참조) | `claude -p "query"` |119| `--print`, `-p` | 대화형 모드 없이 응답을 인쇄합니다([프로그래밍 방식 사용에 대한 Agent SDK 문서](/docs/ko/agent-sdk/overview) 참조) | `claude -p "query"` |

120| `--prompt-suggestions` | 각 턴 후에 예측된 다음 사용자 프롬프트를 사용하여 `prompt_suggestion` 메시지를 내보냅니다. 매우 짧은 대화는 없을 수 있습니다. `--print`, `--output-format stream-json` 및 `--verbose`가 필요합니다. [프롬프트 제안](/docs/ko/interactive-mode#prompt-suggestions)을 참조하세요 | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |120| `--prompt-suggestions` | 각 턴 후에 예측된 다음 사용자 프롬프트를 사용하여 `prompt_suggestion` 메시지를 내보냅니다. 매우 짧은 대화는 없을 수 있습니다. `--print`, `--output-format stream-json` 및 `--verbose`가 필요합니다. [프롬프트 제안](/docs/ko/interactive-mode#prompt-suggestions)을 참조하세요 | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |


134| `--system-prompt-file` | 파일에서 시스템 프롬프트를 로드하여 기본 프롬프트를 바꿉니다 | `claude --system-prompt-file ./custom-prompt.txt` |134| `--system-prompt-file` | 파일에서 시스템 프롬프트를 로드하여 기본 프롬프트를 바꿉니다 | `claude --system-prompt-file ./custom-prompt.txt` |

135| `--system-prompt-snapshot` | `off`를 전달하여 [대화의 첫 번째 요청에 기록된 프롬프트](#system-prompt-flags-in-resumed-conversations)를 재사용하는 대신 모든 요청에서 시스템 프롬프트를 다시 빌드합니다. 예를 들어 `--continue` 실행 간에 `--append-system-prompt` 텍스트를 반복할 때입니다. Claude Code v2.1.257 이상이 필요합니다 | `claude --system-prompt-snapshot off` |135| `--system-prompt-snapshot` | `off`를 전달하여 [대화의 첫 번째 요청에 기록된 프롬프트](#system-prompt-flags-in-resumed-conversations)를 재사용하는 대신 모든 요청에서 시스템 프롬프트를 다시 빌드합니다. 예를 들어 `--continue` 실행 간에 `--append-system-prompt` 텍스트를 반복할 때입니다. Claude Code v2.1.257 이상이 필요합니다 | `claude --system-prompt-snapshot off` |

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

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

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

139| `--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| `--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"` |

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

Details

300| 리포지토리의 `.mcp.json` MCP 서버 | 예, 하나의 리포지토리가 있는 세션에서 | 복제본의 일부이며 세션의 작업 디렉토리에서 찾습니다 |300| 리포지토리의 `.mcp.json` MCP 서버 | 예, 하나의 리포지토리가 있는 세션에서 | 복제본의 일부이며 세션의 작업 디렉토리에서 찾습니다 |

301| 리포지토리의 `.claude/rules/` | 예 | 복제본의 일부 |301| 리포지토리의 `.claude/rules/` | 예 | 복제본의 일부 |

302| 리포지토리의 `.claude/skills/`, `.claude/agents/`, `.claude/commands/` | 예 | 복제본의 일부 |302| 리포지토리의 `.claude/skills/`, `.claude/agents/`, `.claude/commands/` | 예 | 복제본의 일부 |

303| 리포지토리의 `.claude/settings.json`에 선언된 플러그인 및 마켓플레이스 | 아니오 | 클라우드 세션은 리포지토리가 [`enabledPlugins`](/docs/ko/settings-reference#enabledplugins) 아래에서 켜는 플러그인을 설치하지 않으며, [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces) 아래에 나열하는 마켓플레이스의 플러그인도 포함됩니다. 대신 claude.ai 계정에 대해 플러그인을 활성화하여 Claude Code가 [동기화된 플러그인](/docs/ko/plugins-reference#synced-plugins)으로 로드하도록 합니다 |303| 리포지토리의 `.claude/settings.json`에 선언된 플러그인 및 마켓플레이스 | 아니오 | 클라우드 세션은 리포지토리가 [`enabledPlugins`](/docs/ko/settings-reference#enabledplugins) 아래에서 켜는 플러그인을 설치하지 않으며, [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces) 아래에 나열하는 마켓플레이스의 플러그인도 포함됩니다 |

304| 조직의 [서버 관리 설정](/docs/ko/server-managed-settings) | 예 | 세션이 시작될 때 Anthropic의 서버에서 가져옵니다. 클라우드 세션에서 `availableModels`이 적용되는 방식은 [표면 범위](/docs/ko/model-config#surface-coverage)를 참조하세요. MDM 또는 관리 설정 파일을 통해 장치에 배포된 설정은 세션이 Anthropic 관리 VM에서 실행되기 때문에 적용되지 않습니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments)에서 세션은 [Claude Code가 관리 소스를 결합하는 방식](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)에 따라 러너 이미지의 관리 설정 파일도 읽습니다 |304| 조직의 [서버 관리 설정](/docs/ko/server-managed-settings) | 예 | 세션이 시작될 때 Anthropic의 서버에서 가져옵니다. 클라우드 세션에서 `availableModels`이 적용되는 방식은 [표면 범위](/docs/ko/model-config#surface-coverage)를 참조하세요. MDM 또는 관리 설정 파일을 통해 장치에 배포된 설정은 세션이 Anthropic 관리 VM에서 실행되기 때문에 적용되지 않습니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments)에서 세션은 [Claude Code가 관리 소스를 결합하는 방식](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)에 따라 러너 이미지의 관리 설정 파일도 읽습니다 |

305| 사용자 `~/.claude/CLAUDE.md` | 아니오 | 리포지토리가 아닌 머신에 있습니다 |305| 사용자 `~/.claude/CLAUDE.md` | 아니오 | 리포지토리가 아닌 머신에 있습니다 |

306| 사용자 `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` | 아니오 | 리포지토리가 아닌 머신에 있습니다. 대신 리포지토리의 `.claude/` 디렉토리에 커밋합니다. 클라우드 세션은 claude.ai에서 활성화한 기술을 자동으로 로드합니다 |306| 사용자 `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` | 아니오 | 리포지토리가 아닌 머신에 있습니다. 대신 리포지토리의 `.claude/` 디렉토리에 커밋합니다. 클라우드 세션은 claude.ai에서 활성화한 기술을 자동으로 로드합니다 |

307| 사용자 설정에서만 활성화된 플러그인 | 아니오 | 사용자 범위 `enabledPlugins`은 머신의 `~/.claude/settings.json`에 있습니다. 대신 claude.ai 계정에 대해 활성화하여 Claude Code가 [동기화된 플러그인](/docs/ko/plugins-reference#synced-plugins)으로 로드하도록 합니다 |307| 사용자 설정에서만 활성화된 플러그인 | 아니오 | 사용자 범위 `enabledPlugins`은 머신의 `~/.claude/settings.json`에 있습니다 |

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

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

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

commands.md +4 −4

Details

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

62| `/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)에 대한 액세스가 필요합니다. |62| `/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)에 대한 액세스가 필요합니다. |

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

64| `/batch <instruction>` | **[스킬](/docs/ko/skills#bundled-skills).** 코드베이스 전체에서 대규모 변경을 병렬로 조율합니다. 코드베이스를 연구하고, 작업을 5\~30개의 독립적인 단위로 분해하고, 계획을 제시합니다. 승인되면 격리된 [git 워크트리](/docs/ko/worktrees)에서 단위당 하나의 [백그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)를 생성합니다. 각 서브에이전트는 해당 단위를 구현하고, 테스트를 실행하고, 풀 요청을 엽니다. git 저장소가 필요합니다. 예: `/batch migrate src/ from JavaScript to TypeScript` |64| `/batch <instruction>` | **[스킬](/docs/ko/skills#bundled-skills).** 코드베이스 전체에서 대규모 변경을 병렬로 조율합니다. 코드베이스를 연구하고, 작업을 5\~30개의 독립적인 단위로 분해하고, 계획을 제시합니다. 승인되면 격리된 [워크트리](/docs/ko/worktrees)에서 단위당 하나의 [백그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)를 생성합니다. 각 서브에이전트는 해당 단위를 구현하고, 테스트를 실행하고, 변경 사항을 게시합니다. git 저장소 또는 [워크트리를 생성하는 `WorktreeCreate` 훅](/docs/ko/worktrees#non-git-version-control)이 필요합니다. git 저장소 외부에서 `/batch`는 Claude Code v2.1.281 이상이 필요합니다. 예: `/batch migrate src/ from JavaScript to TypeScript` |

65| `/branch [name]` | 현재 대화의 이 지점에서 분기를 생성하여 대화를 잃지 않고 다른 방향을 시도할 수 있습니다. 분기로 전환하고 원본을 보존합니다. `/resume`으로 원본으로 돌아갈 수 있습니다. 분기로 전환하는 대신 별도의 [백그라운드 세션](/docs/ko/agent-view)으로 복사본을 실행하려면 `/fork`를 사용합니다. 이 대화로 보고하는 [서브에이전트](/docs/ko/sub-agents)에 부작업을 넘기려면 `/subtask`를 사용합니다. |65| `/branch [name]` | 현재 대화의 이 지점에서 분기를 생성하여 대화를 잃지 않고 다른 방향을 시도할 수 있습니다. 분기로 전환하고 원본을 보존합니다. `/resume`으로 원본으로 돌아갈 수 있습니다. 분기로 전환하는 대신 별도의 [백그라운드 세션](/docs/ko/agent-view)으로 복사본을 실행하려면 `/fork`를 사용합니다. 이 대화로 보고하는 [서브에이전트](/docs/ko/sub-agents)에 부작업을 넘기려면 `/subtask`를 사용합니다. |

66| `/btw [question]` | 대화에 추가하지 않고 현재 세션에 대한 [부가 질문](/docs/ko/interactive-mode#side-questions-with-%2Fbtw)을 합니다. 질문 없이 `/btw`를 실행하면 Claude Code가 가장 최근의 부가 질문을 표시하여 이전 답변을 검색할 수 있습니다. 아직 질문하지 않았으면 Claude Code가 사용 라인을 출력합니다. v2.1.212 이전에는 `/btw`에 질문이 필요했습니다. |66| `/btw [question]` | 대화에 추가하지 않고 현재 세션에 대한 [부가 질문](/docs/ko/interactive-mode#side-questions-with-%2Fbtw)을 합니다. 질문 없이 `/btw`를 실행하면 Claude Code가 가장 최근의 부가 질문을 표시하여 이전 답변을 검색할 수 있습니다. 아직 질문하지 않았으면 Claude Code가 사용 라인을 출력합니다. v2.1.212 이전에는 `/btw`에 질문이 필요했습니다. |

67| `/bug [report]` | 버그를 보고하거나 대화를 공유합니다. 포함할 세션 기록의 양을 선택하고 무엇이든 전송되기 전에 동의 화면에서 확인합니다. Anthropic에 첫 번째 당사자 연결로 로그인하면 보고서가 Anthropic으로 이동합니다. 타사 제공자 또는 Anthropic 자격 증명 없이 Claude Code는 보고서를 [`~/.claude/feedback-bundles/`](/docs/ko/data-usage#telemetry-services) 아래의 [로컬 아카이브](/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`의 별칭이었습니다. |67| `/bug [report]` | 버그를 보고하거나 대화를 공유합니다. 포함할 세션 기록의 양을 선택하고 무엇이든 전송되기 전에 동의 화면에서 확인합니다. Anthropic에 첫 번째 당사자 연결로 로그인하면 보고서가 Anthropic으로 이동합니다. 타사 제공자 또는 Anthropic 자격 증명 없이 Claude Code는 보고서를 [`~/.claude/feedback-bundles/`](/docs/ko/data-usage#telemetry-services) 아래의 [로컬 아카이브](/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`의 별칭이었습니다. |

68| `/cd <path>` | 이 세션을 새 작업 디렉토리로 이동하여 대화를 유지합니다. 부분 경로를 입력하여 일치하는 디렉토리 제안을 확인하고, `Tab`을 눌러 하나를 수락합니다. 제안은 Claude Code v2.1.206 이상이 필요합니다. Claude Code가 새 디렉토리로 이동할 때 즉시 적용하는 항목과 `/cd`가 `/add-dir`과 어떻게 다른지는 [세션을 다른 디렉토리로 이동](/docs/ko/permissions#move-the-session-to-another-directory)을 참조하십시오. |68| `/cd <path>` | 이 세션을 새 작업 디렉토리로 이동하여 대화를 유지합니다. 부분 경로를 입력하여 일치하는 디렉토리 제안을 확인하고, `Tab`을 눌러 하나를 수락합니다. 제안은 Claude Code v2.1.206 이상이 필요합니다. Claude Code가 새 디렉토리로 이동할 때 즉시 적용하는 항목과 `/cd`가 `/add-dir`과 어떻게 다른지는 [세션을 다른 디렉토리로 이동](/docs/ko/permissions#move-the-session-to-another-directory)을 참조하십시오. |

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

70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[스킬](/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`를 가져올 때도 자동으로 활성화됩니다. `migrate`를 실행하여 기존 Claude API 코드를 최신 모델로 업데이트합니다. 프로젝트의 Anthropic SDK 종속성을 주요 버전 간에 이동하려면 `upgrade`를 실행합니다. 현재 Python `anthropic` 패키지를 0.x에서 1.x로 이동합니다. 새 Managed Agent를 생성하는 연습을 위해 `managed-agents-onboard`를 실행합니다. 프롬프트, 스킬 및 도구 설명에서 이전 모델용으로 작성된 지침을 플래그하고 diff로 수정 사항을 제안하려면 `prompt-audit`를 실행합니다. 프로젝트의 Claude API 지출이 어디로 가는지 프로파일링하고 프롬프트 캐싱, 불필요한 입력 및 출력 토큰 제거, 배치 처리, 노력 및 모델 선택과 같은 옵션에서 절감을 제안하려면 `cost-optimize`를 실행합니다. 한 번에 한 가지 변경씩 진행합니다. Claude 기반 앱에 대한 평가 세트를 구축하려면 `build-eval`을 실행하고, 기존 평가에 대해 앱을 반복적으로 개선하려면 `hillclimb`를 실행합니다. `prompt-audit` 하위 명령어는 Claude Code v2.1.221 이상이 필요하고, `upgrade`는 v2.1.236 이상이 필요하며, `cost-optimize`는 v2.1.247 이상이 필요하고, `build-eval` 및 `hillclimb`는 v2.1.259 이상이 필요합니다. |70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[스킬](/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`를 가져올 때도 자동으로 활성화됩니다. `migrate`를 실행하여 기존 Claude API 코드를 최신 모델로 업데이트합니다. 프로젝트의 Anthropic SDK 종속성을 주요 버전 간에 이동하려면 `upgrade`를 실행합니다. 현재 Python `anthropic` 패키지를 0.x에서 1.x로 이동합니다. 새 Managed Agent를 생성하는 연습을 위해 `managed-agents-onboard`를 실행합니다. 프롬프트, 스킬 및 도구 설명에서 이전 모델용으로 작성된 지침을 플래그하고 diff로 수정 사항을 제안하려면 `prompt-audit`를 실행합니다. 프로젝트의 Claude API 지출이 어디로 가는지 프로파일링하고 프롬프트 캐싱, 불필요한 입력 및 출력 토큰 제거, 배치 처리, 노력 및 모델 선택과 같은 옵션에서 절감을 제안하려면 `cost-optimize`를 실행합니다. 한 번에 한 가지 변경씩 진행합니다. Claude 기반 앱에 대한 평가 세트를 구축하려면 `build-eval`을 실행하고, 기존 평가에 대해 앱을 반복적으로 개선하려면 `hillclimb`를 실행합니다. `prompt-audit` 하위 명령어는 Claude Code v2.1.221 이상이 필요하고, `upgrade`는 v2.1.236 이상이 필요하며, `cost-optimize`는 v2.1.247 이상이 필요하고, `build-eval` 및 `hillclimb`는 v2.1.259 이상이 필요합니다. |

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

72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[스킬](/docs/ko/skills#bundled-skills).** 현재 diff 또는 전달한 PR 번호, 분기 또는 경로를 정확성 버그에 대해 검토합니다. 모델 및 노력 수준에 따라 검토는 정리 기회도 포함합니다. `--fix`를 전달하여 결과를 적용하고, `--comment`를 전달하여 GitHub PR 또는 GitLab 병합 요청에 게시하거나, `ultra`를 전달하여 깊은 [클라우드 검토](/docs/ko/ultrareview)를 실행합니다. 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 이상이 필요합니다. 노력 수준, 대상 지정 및 `/simplify`와의 관계는 [로컬에서 diff 검토](/docs/ko/code-review#review-a-diff-locally)를 참조하십시오. 별칭: `/review` |72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[스킬](/docs/ko/skills#bundled-skills).** 현재 diff 또는 전달한 PR 번호, 분기 또는 경로를 정확성 버그에 대해 검토합니다. 모델 및 노력 수준에 따라 검토는 정리 기회도 포함합니다. `--fix`를 전달하여 결과를 적용하고, `--comment`를 전달하여 GitHub PR 또는 GitLab 병합 요청에 게시하거나, `ultra`를 전달하여 깊은 [클라우드 검토](/docs/ko/ultrareview)를 실행합니다. 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 이상이 필요합니다. 노력 수준, 대상 지정 및 `/simplify`와의 관계는 [로컬에서 diff 검토](/docs/ko/code-review#review-a-diff-locally)를 참조하십시오. 별칭: `/review` |

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

74| `/compact [instructions]` | 지금까지의 대화를 요약하여 컨텍스트를 확보합니다. 선택적으로 요약에 대한 포커스 지침을 전달합니다. [압축이 규칙, 스킬 및 메모리 파일을 처리하는 방법](/docs/ko/context-window#what-survives-compaction)을 참조하십시오. |74| `/compact [instructions]` | 지금까지의 대화를 요약하여 컨텍스트를 확보합니다. 선택적으로 요약에 대한 포커스 지침을 전달합니다. [압축이 규칙, 스킬 및 메모리 파일을 처리하는 방법](/docs/ko/context-window#what-survives-compaction)을 참조하십시오. |


116| `/passes` | 친구들과 Claude Code의 무료 주를 공유합니다. 계정이 적격인 경우에만 표시됩니다. |116| `/passes` | 친구들과 Claude Code의 무료 주를 공유합니다. 계정이 적격인 경우에만 표시됩니다. |

117| `/permissions` | 도구 권한에 대한 허용, 요청 및 거부 규칙을 관리합니다. 범위별로 규칙을 보고, 규칙을 추가 또는 제거하고, 작업 디렉토리를 관리하고, [최근 자동 모드 거부](/docs/ko/auto-mode-config#review-denials)를 검토할 수 있는 대화형 대화를 엽니다. 대화의 **자동 모드** 탭에서 [자동 모드 분류기 규칙](/docs/ko/auto-mode-config#edit-rules-from-permissions)을 보고 편집할 수도 있습니다. Claude가 응답하는 동안 실행하면 Claude Code가 대화를 즉시 열고 Claude의 같은 턴의 다음 도구 호출부터 변경 사항을 적용합니다. v2.1.234 이전에는 Claude Code가 턴이 끝날 때까지 명령어를 대기열에 넣었습니다. 별칭: `/allowed-tools` |117| `/permissions` | 도구 권한에 대한 허용, 요청 및 거부 규칙을 관리합니다. 범위별로 규칙을 보고, 규칙을 추가 또는 제거하고, 작업 디렉토리를 관리하고, [최근 자동 모드 거부](/docs/ko/auto-mode-config#review-denials)를 검토할 수 있는 대화형 대화를 엽니다. 대화의 **자동 모드** 탭에서 [자동 모드 분류기 규칙](/docs/ko/auto-mode-config#edit-rules-from-permissions)을 보고 편집할 수도 있습니다. Claude가 응답하는 동안 실행하면 Claude Code가 대화를 즉시 열고 Claude의 같은 턴의 다음 도구 호출부터 변경 사항을 적용합니다. v2.1.234 이전에는 Claude Code가 턴이 끝날 때까지 명령어를 대기열에 넣었습니다. 별칭: `/allowed-tools` |

118| `/plan [description]` | 프롬프트에서 직접 계획 모드로 들어갑니다. 선택적 설명을 전달하여 계획 모드로 들어가고 즉시 해당 작업으로 시작합니다(예: `/plan fix the auth bug`). |118| `/plan [description]` | 프롬프트에서 직접 계획 모드로 들어갑니다. 선택적 설명을 전달하여 계획 모드로 들어가고 즉시 해당 작업으로 시작합니다(예: `/plan fix the auth bug`). |

119| `/plugin [subcommand]` | Claude Code [플러그인](/docs/ko/plugins)을 관리합니다. 인수 없이 실행하여 플러그인 메뉴를 열거나 `list`, `install`, `enable` 또는 `disable`과 같은 하위 명령어를 전달하여 직접 작동합니다. Claude Code는 설치 중에 플러그인을 활성화할 수 있습니다. [설치 요약](/docs/ko/discover-plugins#install-plugins)은 활성화했는지 또는 `/reload-plugins`를 실행해야 하는지 알려줍니다. |119| `/plugin [subcommand]` | Claude Code [플러그인](/docs/ko/plugins/overview)을 관리합니다. 인수 없이 실행하여 플러그인 메뉴를 열거나 `list`, `install`, `enable` 또는 `disable`과 같은 하위 명령어를 전달하여 직접 작동합니다. Claude Code는 설치 중에 플러그인을 활성화할 수 있습니다. [설치 요약](/docs/ko/plugins/install#install-a-plugin)은 활성화했는지 또는 `/reload-plugins`를 실행해야 하는지 알려줍니다. |

120| `/powerup` | 애니메이션 데모가 있는 빠른 대화형 수업을 통해 Claude Code 기능을 발견합니다. |120| `/powerup` | 애니메이션 데모가 있는 빠른 대화형 수업을 통해 Claude Code 기능을 발견합니다. |

121| `/pr-comments [PR]` | v2.1.91에서 제거됨. 대신 Claude에 직접 풀 요청 댓글을 보도록 요청합니다. 이전 버전에서는 GitHub 풀 요청에서 댓글을 가져오고 표시합니다. 현재 분기에 대한 PR을 자동으로 감지하거나 PR URL 또는 번호를 전달합니다. `gh` CLI가 필요합니다. |121| `/pr-comments [PR]` | v2.1.91에서 제거됨. 대신 Claude에 직접 풀 요청 댓글을 보도록 요청합니다. 이전 버전에서는 GitHub 풀 요청에서 댓글을 가져오고 표시합니다. 현재 분기에 대한 PR을 자동으로 감지하거나 PR URL 또는 번호를 전달합니다. `gh` CLI가 필요합니다. |

122| `/privacy-settings` | 개인 정보 보호 설정을 보고 업데이트합니다. Pro 및 Max 플랜 구독자만 사용 가능합니다. |122| `/privacy-settings` | 개인 정보 보호 설정을 보고 업데이트합니다. Pro 및 Max 플랜 구독자만 사용 가능합니다. |


124| `/rate-limit-options` | claude.ai 사용 한도가 요청을 차단할 때 계속 작업하는 방법을 표시합니다. 한도가 재설정될 때 [자동으로 계속](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset)하고, [사용 크레딧](/docs/ko/costs#add-usage-credits-to-your-subscription)을 추가하거나 플랜을 업그레이드합니다. Claude Code는 자신의 터미널에서 한도에 도달할 때 이 메뉴를 자동으로 열 수도 있습니다. [자동 계속 끄기](/docs/ko/interactive-mode#turn-automatic-continue-off)를 참조하십시오. claude.ai 구독이 필요합니다. 명령 메뉴에 나타나지 않습니다. 전체를 입력하십시오. 대기 및 계속 행은 Claude Code v2.1.234 이상이 필요합니다. |124| `/rate-limit-options` | claude.ai 사용 한도가 요청을 차단할 때 계속 작업하는 방법을 표시합니다. 한도가 재설정될 때 [자동으로 계속](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset)하고, [사용 크레딧](/docs/ko/costs#add-usage-credits-to-your-subscription)을 추가하거나 플랜을 업그레이드합니다. Claude Code는 자신의 터미널에서 한도에 도달할 때 이 메뉴를 자동으로 열 수도 있습니다. [자동 계속 끄기](/docs/ko/interactive-mode#turn-automatic-continue-off)를 참조하십시오. claude.ai 구독이 필요합니다. 명령 메뉴에 나타나지 않습니다. 전체를 입력하십시오. 대기 및 계속 행은 Claude Code v2.1.234 이상이 필요합니다. |

125| `/recap` | 현재 세션의 한 줄 요약을 요청 시 생성합니다. 떠난 후 나타나는 자동 요약은 [세션 요약](/docs/ko/interactive-mode#session-recap)을 참조하십시오. |125| `/recap` | 현재 세션의 한 줄 요약을 요청 시 생성합니다. 떠난 후 나타나는 자동 요약은 [세션 요약](/docs/ko/interactive-mode#session-recap)을 참조하십시오. |

126| `/release-notes` | 대화형 버전 선택기에서 변경 로그를 봅니다. 특정 버전을 선택하여 릴리스 노트를 보거나 모든 버전을 표시하도록 선택합니다. 노트는 Claude가 보는 대화에 들어가지 않고 기록에 나타납니다. |126| `/release-notes` | 대화형 버전 선택기에서 변경 로그를 봅니다. 특정 버전을 선택하여 릴리스 노트를 보거나 모든 버전을 표시하도록 선택합니다. 노트는 Claude가 보는 대화에 들어가지 않고 기록에 나타납니다. |

127| `/reload-plugins [--force]` | 모든 활성 [플러그인](/docs/ko/plugins)을 다시 로드하여 보류 중인 변경 사항을 적용하고 다시 시작하지 않습니다. 각 다시 로드된 구성 요소의 개수를 보고하고 로드 오류를 플래그합니다. 다시 로드가 로드된 MCP 도구를 변경하고 프롬프트 캐시를 무효화할 때 명령어가 경고하고 `--force`를 전달하지 않으면 건너뜁니다. 비대화형 모드(`-p`), Agent SDK 및 데스크톱 앱에서도 사용 가능합니다. 세션에 직접 입력된 입력에서만 실행되고 플러그인 MCP 서버 변경을 적용하지 않습니다. Claude Code v2.1.260 이상이 필요합니다. [플러그인 변경 사항을 다시 시작하지 않고 적용](/docs/ko/discover-plugins#apply-plugin-changes-without-restarting)을 참조하십시오. |127| `/reload-plugins [--force]` | 모든 활성 [플러그인](/docs/ko/plugins/overview)을 다시 로드하여 보류 중인 변경 사항을 적용하고 다시 시작하지 않습니다. 각 다시 로드된 구성 요소의 개수를 보고하고 로드 오류를 플래그합니다. 다시 로드가 로드된 MCP 도구를 변경하고 프롬프트 캐시를 무효화할 때 명령어가 경고하고 `--force`를 전달하지 않으면 건너뜁니다. 비대화형 모드(`-p`), Agent SDK 및 데스크톱 앱에서도 사용 가능합니다. 세션에 직접 입력된 입력에서만 실행되고 플러그인 MCP 서버 변경을 적용하지 않습니다. Claude Code v2.1.260 이상이 필요합니다. [플러그인 변경 사항을 다시 시작하지 않고 적용](/docs/ko/plugins/cli-reference#reload-plugins)을 참조하십시오. |

128| `/reload-skills` | [스킬](/docs/ko/skills) 및 명령어 디렉토리를 다시 스캔하여 세션 중에 디스크에서 추가되거나 변경된 스킬을 다시 시작하지 않고 사용 가능하게 합니다. 사용 가능한 스킬 수와 추가되거나 제거된 스킬 수를 보고합니다. |128| `/reload-skills` | [스킬](/docs/ko/skills) 및 명령어 디렉토리를 다시 스캔하여 세션 중에 디스크에서 추가되거나 변경된 스킬을 다시 시작하지 않고 사용 가능하게 합니다. 사용 가능한 스킬 수와 추가되거나 제거된 스킬 수를 보고합니다. |

129| `/remote-control` | 이 세션을 claude.ai에서 [원격 제어](/docs/ko/remote-control)에 사용 가능하게 합니다. 로그아웃 상태에서 실행하면 원격 제어에 claude.ai 구독이 필요하고 로그인 방법을 알려줍니다. v2.1.206 이전에는 `Unknown command: /remote-control`을 보고했습니다. 별칭: `/rc` |129| `/remote-control` | 이 세션을 claude.ai에서 [원격 제어](/docs/ko/remote-control)에 사용 가능하게 합니다. 로그아웃 상태에서 실행하면 원격 제어에 claude.ai 구독이 필요하고 로그인 방법을 알려줍니다. v2.1.206 이전에는 `Unknown command: /remote-control`을 보고했습니다. 별칭: `/rc` |

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

Details

110 110 

111 * 찾고 있는 것에 대해 구체적으로 설명하기111 * 찾고 있는 것에 대해 구체적으로 설명하기

112 * 프로젝트의 도메인 언어 사용하기112 * 프로젝트의 도메인 언어 사용하기

113 * 언어에 대한 [코드 인텔리전스 플러그인](/docs/ko/discover-plugins#code-intelligence)을 설치하여 Claude에게 정확한 "정의로 이동" 및 "참조 찾기" 네비게이션 제공하기113 * 언어에 대한 [코드 인텔리전스 플러그인](/docs/ko/plugins/code-intelligence)을 설치하여 Claude에게 정확한 "정의로 이동" 및 "참조 찾기" 네비게이션 제공하기

114</Tip>114</Tip>

115 115 

116***116***

costs.md +1 −1

Details

290 타입 언어를 위한 코드 인텔리전스 플러그인 설치290 타입 언어를 위한 코드 인텔리전스 플러그인 설치

291</h3>291</h3>

292 292 

293[코드 인텔리전스 플러그인](/docs/ko/discover-plugins#code-intelligence)은 Claude에게 텍스트 기반 검색 대신 정확한 기호 탐색을 제공하여 낯선 코드를 탐색할 때 불필요한 파일 읽기를 줄입니다. 단일 "정의로 이동" 호출은 grep 다음에 여러 후보 파일을 읽는 것을 대체합니다. 설치된 언어 서버는 편집 후 자동으로 타입 오류를 보고하므로 Claude는 컴파일러를 실행하지 않고도 실수를 포착합니다.293[코드 인텔리전스 플러그인](/docs/ko/plugins/code-intelligence)은 Claude에게 텍스트 기반 검색 대신 정확한 기호 탐색을 제공하여 낯선 코드를 탐색할 때 불필요한 파일 읽기를 줄입니다. 단일 "정의로 이동" 호출은 grep 다음에 여러 후보 파일을 읽는 것을 대체합니다. 설치된 언어 서버는 편집 후 자동으로 타입 오류를 보고하므로 Claude는 컴파일러를 실행하지 않고도 실수를 포착합니다.

294 294 

295<h3 id="offload-processing-to-hooks-and-skills">295<h3 id="offload-processing-to-hooks-and-skills">

296 hooks 및 skills로 처리 오프로드296 hooks 및 skills로 처리 오프로드

Details

109| 훅이 절대 실행되지 않음 | `matcher`가 문자열 대신 JSON 배열입니다 | 여러 도구를 일치시키기 위해 `\|`를 사용하는 단일 문자열을 사용합니다(예: `"Edit\|Write"`). [매처 패턴](/docs/ko/hooks#matcher-patterns)을 참조합니다. |109| 훅이 절대 실행되지 않음 | `matcher`가 문자열 대신 JSON 배열입니다 | 여러 도구를 일치시키기 위해 `\|`를 사용하는 단일 문자열을 사용합니다(예: `"Edit\|Write"`). [매처 패턴](/docs/ko/hooks#matcher-patterns)을 참조합니다. |

110| 훅이 절대 실행되지 않음 | `matcher`가 v2.1.191 이전 버전에서 구분 기호로 `,`를 사용합니다 | Claude Code v2.1.191 이상은 `,`를 `\|`와 같은 목록 구분 기호로 처리합니다. 이전 버전은 쉼표를 리터럴 문자로 평가하므로 `"Edit,Write"`는 아무것도 일치하지 않습니다. 대신 `\|`를 사용하거나 Claude Code를 업그레이드합니다. |110| 훅이 절대 실행되지 않음 | `matcher`가 v2.1.191 이전 버전에서 구분 기호로 `,`를 사용합니다 | Claude Code v2.1.191 이상은 `,`를 `\|`와 같은 목록 구분 기호로 처리합니다. 이전 버전은 쉼표를 리터럴 문자로 평가하므로 `"Edit,Write"`는 아무것도 일치하지 않습니다. 대신 `\|`를 사용하거나 Claude Code를 업그레이드합니다. |

111| 훅이 절대 실행되지 않음 | `matcher` 값이 소문자입니다(예: `"bash"`) | 일치는 대소문자를 구분합니다. 도구 이름은 대문자입니다: `Bash`, `Edit`, `Write`, `Read`. |111| 훅이 절대 실행되지 않음 | `matcher` 값이 소문자입니다(예: `"bash"`) | 일치는 대소문자를 구분합니다. 도구 이름은 대문자입니다: `Bash`, `Edit`, `Write`, `Read`. |

112| 훅이 절대 실행되지 않음 | 훅이 `settings.json` 대신 독립 실행형 파일에 정의되어 있습니다 | 프로젝트 또는 사용자 구성에 대한 독립 실행형 훅 파일이 없습니다. `settings.json`의 `"hooks"` 키 아래에 훅을 정의합니다. [플러그인](/docs/ko/plugins-reference#hooks)만 별도의 `hooks/hooks.json`을 로드합니다. [훅 구성](/docs/ko/hooks)을 참조합니다. |112| 훅이 절대 실행되지 않음 | 훅이 `settings.json` 대신 독립 실행형 파일에 정의되어 있습니다 | 프로젝트 또는 사용자 구성에 대한 독립 실행형 훅 파일이 없습니다. `settings.json`의 `"hooks"` 키 아래에 훅을 정의합니다. [플러그인](/docs/ko/plugins/components#hooks)만 별도의 `hooks/hooks.json`을 로드합니다. [훅 구성](/docs/ko/hooks)을 참조합니다. |

113| 전역으로 설정된 권한, 훅 또는 env가 무시됩니다 | 구성이 `~/.claude.json`에 추가되었습니다 | `~/.claude.json`은 앱 상태 및 UI 토글을 보유합니다. `permissions`, `hooks` 및 `env`는 `~/.claude/settings.json`에 속합니다. 이는 두 개의 다른 파일입니다. |113| 전역으로 설정된 권한, 훅 또는 env가 무시됩니다 | 구성이 `~/.claude.json`에 추가되었습니다 | `~/.claude.json`은 앱 상태 및 UI 토글을 보유합니다. `permissions`, `hooks` 및 `env`는 `~/.claude/settings.json`에 속합니다. 이는 두 개의 다른 파일입니다. |

114| `settings.json` 값이 무시되는 것처럼 보입니다 | 동일한 키가 `settings.local.json`에 설정되어 있습니다 | `settings.local.json`은 `settings.json`을 재정의하고, 둘 다 `~/.claude/settings.json`을 재정의합니다. [설정 우선순위](/docs/ko/settings#settings-precedence)를 참조합니다. |114| `settings.json` 값이 무시되는 것처럼 보입니다 | 동일한 키가 `settings.local.json`에 설정되어 있습니다 | `settings.local.json`은 `settings.json`을 재정의하고, 둘 다 `~/.claude/settings.json`을 재정의합니다. [설정 우선순위](/docs/ko/settings#settings-precedence)를 참조합니다. |

115| 스킬이 `/skills`에 나타나지 않습니다 | 스킬 파일이 폴더 대신 `.claude/skills/name.md`에 있습니다 | 내부에 `SKILL.md`가 있는 폴더를 사용합니다: `.claude/skills/name/SKILL.md`. |115| 스킬이 `/skills`에 나타나지 않습니다 | 스킬 파일이 폴더 대신 `.claude/skills/name.md`에 있습니다 | 내부에 `SKILL.md`가 있는 폴더를 사용합니다: `.claude/skills/name/SKILL.md`. |

desktop.md +6 −6

Details

472 472 

473외부 서비스를 연결하고, 재사용 가능한 워크플로우를 추가하고, Claude의 동작을 사용자 정의하고, 미리보기 서버를 구성합니다. 한 곳에서 커넥터, skills, 플러그인을 관리하려면 사이드바에서 **Customize**를 클릭합니다. Desktop 앱의 [Cowork](https://claude.com/product/cowork) 탭은 CLI의 `~/.claude` 디렉토리가 아닌 이 Customize 구성에서 skills, 플러그인, 커넥터를 가져오며, 이는 claude.ai 계정을 통해 동기화됩니다.473외부 서비스를 연결하고, 재사용 가능한 워크플로우를 추가하고, Claude의 동작을 사용자 정의하고, 미리보기 서버를 구성합니다. 한 곳에서 커넥터, skills, 플러그인을 관리하려면 사이드바에서 **Customize**를 클릭합니다. Desktop 앱의 [Cowork](https://claude.com/product/cowork) 탭은 CLI의 `~/.claude` 디렉토리가 아닌 이 Customize 구성에서 skills, 플러그인, 커넥터를 가져오며, 이는 claude.ai 계정을 통해 동기화됩니다.

474 474 

475Claude Code는 또한 동일한 계정으로 로그인한 터미널 세션에서 claude.ai 계정에 대해 활성화된 skills 및 플러그인을 로드합니다. [claude.ai에서 동기화된 Skills](/docs/ko/skills#how-synced-skills-behave) 및 [claude.ai에서 동기화된 Plugins](/docs/ko/plugins-reference#synced-plugins)를 참조하세요.475Claude Code는 또한 동일한 계정으로 로그인한 터미널 세션에서 claude.ai 계정에 대해 활성화된 skills 및 플러그인을 로드합니다. [claude.ai에서 동기화된 Skills](/docs/ko/skills#how-synced-skills-behave) 및 [claude.ai에서 동기화된 Plugins](/docs/ko/plugins/loading#synced-plugins)를 참조하세요.

476 476 

477<h3 id="connect-external-tools">477<h3 id="connect-external-tools">

478 외부 도구 연결하기478 외부 도구 연결하기


490 skills 사용하기490 skills 사용하기

491</h3>491</h3>

492 492 

493[Skills](/docs/ko/skills)는 Claude가 할 수 있는 것을 확장합니다. Claude는 관련이 있을 때 자동으로 로드하거나 직접 호출할 수 있습니다: 프롬프트 상자에서 `/`를 입력하거나 **+** 버튼을 클릭하고 **Slash commands**를 선택하여 사용 가능한 것을 찾아봅니다. 여기에는 [내장 명령](/docs/ko/commands), [사용자 정의 skills](/docs/ko/skills#create-your-first-skill), 코드베이스의 프로젝트 skills, [설치된 플러그인](/docs/ko/plugins)의 skills가 포함됩니다. 하나를 선택하면 입력 필드에 강조 표시됩니다. 그 후 작업을 입력하고 평소대로 보냅니다.493[Skills](/docs/ko/skills)는 Claude가 할 수 있는 것을 확장합니다. Claude는 관련이 있을 때 자동으로 로드하거나 직접 호출할 수 있습니다: 프롬프트 상자에서 `/`를 입력하거나 **+** 버튼을 클릭하고 **Slash commands**를 선택하여 사용 가능한 것을 찾아봅니다. 여기에는 [내장 명령](/docs/ko/commands), [사용자 정의 skills](/docs/ko/skills#create-your-first-skill), 코드베이스의 프로젝트 skills, [설치된 플러그인](/docs/ko/plugins/install)의 skills가 포함됩니다. 하나를 선택하면 입력 필드에 강조 표시됩니다. 그 후 작업을 입력하고 평소대로 보냅니다.

494 494 

495Claude가 작업 중일 때 다른 메시지와 동일하게 명령을 보낼 수 있으며, 턴이 완료되면 세션이 유휴 상태로 돌아갑니다. v2.1.206 이전에는 턴 중에 보낸 명령이 세션을 실행 중으로 표시된 상태로 남길 수 있었고 그 후에 보낸 메시지는 전달되지 않았습니다.495Claude가 작업 중일 때 다른 메시지와 동일하게 명령을 보낼 수 있으며, 턴이 완료되면 세션이 유휴 상태로 돌아갑니다. v2.1.206 이전에는 턴 중에 보낸 명령이 세션을 실행 중으로 표시된 상태로 남길 수 있었고 그 후에 보낸 메시지는 전달되지 않았습니다.

496 496 


502 플러그인 설치하기502 플러그인 설치하기

503</h3>503</h3>

504 504 

505[Plugins](/docs/ko/plugins)는 Claude Code에 skills, agents, hooks, MCP servers, LSP 구성을 추가하는 재사용 가능한 패키지입니다. 터미널을 사용하지 않고 데스크톱 앱에서 플러그인을 설치할 수 있습니다.505[Plugins](/docs/ko/plugins/overview)는 Claude Code에 skills, agents, hooks, MCP servers, LSP 구성을 추가하는 재사용 가능한 패키지입니다. 터미널을 사용하지 않고 데스크톱 앱에서 플러그인을 설치할 수 있습니다.

506 506 

507로컬 및 [SSH](#ssh-sessions) 세션의 경우 프롬프트 상자 옆의 **+** 버튼을 클릭하고 **Plugins**를 선택하여 설치된 플러그인과 해당 skills를 봅니다. 플러그인을 추가하려면 서브메뉴에서 **Add plugin**을 선택하여 플러그인 브라우저를 열면 공식 Anthropic marketplace를 포함한 구성된 [marketplaces](/docs/ko/plugin-marketplaces)의 사용 가능한 플러그인이 표시됩니다. **Manage plugins**를 선택하여 플러그인을 활성화, 비활성화 또는 제거합니다.507로컬 및 [SSH](#ssh-sessions) 세션의 경우 프롬프트 상자 옆의 **+** 버튼을 클릭하고 **Plugins**를 선택하여 설치된 플러그인과 해당 skills를 봅니다. 플러그인을 추가하려면 서브메뉴에서 **Add plugin**을 선택하여 플러그인 브라우저를 열면 공식 Anthropic marketplace를 포함한 구성된 [marketplaces](/docs/ko/plugins/overview)의 사용 가능한 플러그인이 표시됩니다. **Manage plugins**를 선택하여 플러그인을 활성화, 비활성화 또는 제거합니다.

508 508 

509플러그인은 사용자 계정, 특정 프로젝트 또는 로컬 전용으로 범위를 지정할 수 있습니다. 조직이 플러그인을 중앙에서 관리하는 경우 해당 플러그인은 CLI에서와 동일한 방식으로 데스크톱 세션에서 사용 가능합니다.509플러그인은 사용자 계정, 특정 프로젝트 또는 로컬 전용으로 범위를 지정할 수 있습니다. 조직이 플러그인을 중앙에서 관리하는 경우 해당 플러그인은 CLI에서와 동일한 방식으로 데스크톱 세션에서 사용 가능합니다.

510 510 

511플러그인 브라우저는 클라우드 세션에서 사용할 수 없으며, 데스크톱 앱에서 설치한 플러그인은 클라우드 세션에서 사용할 수 없습니다. 클라우드 세션도 저장소의 `.claude/settings.json`에서 선언하는 플러그인을 설치하지 않습니다. [설정에서 가져오는 것](/docs/ko/cloud-environments#what-carries-over-from-your-setup)에서 설명합니다. 클라우드 세션에서 플러그인을 사용하려면 claude.ai 계정에 대해 활성화하여 Claude Code가 [동기화된 플러그인](/docs/ko/plugins-reference#synced-plugins)으로 로드하도록 합니다. 플러그인은 WSL 세션에서 사용할 수 없습니다. 자신의 플러그인을 만드는 것을 포함한 전체 플러그인 참조는 [plugins](/docs/ko/plugins)를 참조하세요.511플러그인 브라우저는 클라우드 세션에서 사용할 수 없으며, 데스크톱 앱에서 설치한 플러그인은 클라우드 세션에서 사용할 수 없습니다. 클라우드 세션도 저장소의 `.claude/settings.json`에서 선언하는 플러그인을 설치하지 않습니다. [설정에서 가져오는 것](/docs/ko/cloud-environments#what-carries-over-from-your-setup)에서 설명합니다. 플러그인은 WSL 세션에서 사용할 수 없습니다. 자신의 플러그인을 만드는 것을 포함한 전체 플러그인 참조는 [plugins](/docs/ko/plugins/overview)를 참조하세요.

512 512 

513<h3 id="configure-preview-servers">513<h3 id="configure-preview-servers">

514 미리보기 서버 구성하기514 미리보기 서버 구성하기


1023| 권한 모드 | `dontAsk`를 포함한 모든 모드 | Manual, Accept edits, Plan, Auto. Bypass permissions는 모드 선택기에서 활성화된 후 나타납니다: Pro 및 Max 플랜에서는 Settings 토글을 통해, Team 및 Enterprise 플랜에서는 조직 정책을 통해 |1023| 권한 모드 | `dontAsk`를 포함한 모든 모드 | Manual, Accept edits, Plan, Auto. Bypass permissions는 모드 선택기에서 활성화된 후 나타납니다: Pro 및 Max 플랜에서는 Settings 토글을 통해, Team 및 Enterprise 플랜에서는 조직 정책을 통해 |

1024| [Third-party providers](/docs/ko/third-party-integrations) | Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry | Anthropic의 API (기본값). 게이트웨이 라우팅의 경우 [데스크톱 앱을 게이트웨이에 연결](/docs/ko/llm-gateway-connect#desktop-app)을 참조하세요. Code 탭을 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 또는 자체 호스팅 LLM 게이트웨이에서 실행하려면 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)를 참조하세요. |1024| [Third-party providers](/docs/ko/third-party-integrations) | Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry | Anthropic의 API (기본값). 게이트웨이 라우팅의 경우 [데스크톱 앱을 게이트웨이에 연결](/docs/ko/llm-gateway-connect#desktop-app)을 참조하세요. Code 탭을 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 또는 자체 호스팅 LLM 게이트웨이에서 실행하려면 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)를 참조하세요. |

1025| [MCP servers](/docs/ko/mcp) | 설정 파일에 구성 | 로컬 및 SSH 세션의 Connectors UI 또는 설정 파일 |1025| [MCP servers](/docs/ko/mcp) | 설정 파일에 구성 | 로컬 및 SSH 세션의 Connectors UI 또는 설정 파일 |

1026| [Plugins](/docs/ko/plugins) | `/plugin` 명령 | 플러그인 관리자 UI |1026| [Plugins](/docs/ko/plugins/overview) | `/plugin` 명령 | 플러그인 관리자 UI |

1027| @mention 파일 | 텍스트 기반 | 자동 완성 포함; 로컬 및 SSH 세션만 |1027| @mention 파일 | 텍스트 기반 | 자동 완성 포함; 로컬 및 SSH 세션만 |

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

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

discover-plugins.md +0 −651 deleted

File Deleted View Diff

1> ## Documentation Index

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

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

4 

5# 마켓플레이스를 통해 미리 빌드된 플러그인 발견 및 설치

6 

7> 마켓플레이스에서 플러그인을 찾아 설치하여 Claude Code를 새로운 skills, agents 및 기능으로 확장합니다.

8 

9플러그인은 Claude Code를 skills, agents, hooks 및 MCP servers로 확장합니다. 플러그인 마켓플레이스는 직접 빌드하지 않고도 이러한 확장 기능을 발견하고 설치할 수 있도록 도와주는 카탈로그입니다.

10 

11또한 claude.ai에서 플러그인을 활성화할 수 있으며, 자신을 위해 또는 조직을 통해 활성화할 수 있습니다. Claude Code는 [claude.ai에서 동기화된 플러그인](/docs/ko/plugins-reference#synced-plugins)에서 설명하는 대로 마켓플레이스 설치 없이 이러한 플러그인을 세션으로 동기화합니다.

12 

13자신의 마켓플레이스를 만들고 배포하려고 하시나요? [플러그인 마켓플레이스 만들기 및 배포](/docs/ko/plugin-marketplaces)를 참조하세요.

14 

15<h2 id="how-marketplaces-work">

16 마켓플레이스 작동 방식

17</h2>

18 

19마켓플레이스는 다른 사람이 만들어 공유한 플러그인의 카탈로그입니다. 마켓플레이스를 사용하는 것은 두 단계의 프로세스입니다:

20 

21<Steps>

22 <Step title="마켓플레이스 추가">

23 이는 카탈로그를 Claude Code에 등록하여 사용 가능한 항목을 검색할 수 있도록 합니다. 아직 플러그인이 설치되지 않습니다.

24 </Step>

25 

26 <Step title="개별 플러그인 설치">

27 카탈로그를 검색하고 원하는 플러그인을 설치합니다.

28 </Step>

29</Steps>

30 

31<h2 id="official-anthropic-marketplace">

32 공식 Anthropic 마켓플레이스

33</h2>

34 

35Claude Code는 처음 대화형으로 시작할 때 공식 Anthropic 마켓플레이스(`claude-plugins-official`)를 자동으로 추가합니다. Claude Code가 마켓플레이스를 추가할 수 없는 경우(예: 네트워크가 다운로드를 차단하거나 [마켓플레이스 정책](/docs/ko/plugin-marketplaces#managed-marketplace-restrictions)이 이전 시도를 차단한 경우) `/plugin marketplace add anthropics/claude-plugins-official`을 사용하여 직접 추가하십시오.

36 

37사용 가능한 항목을 찾아보려면 `/plugin`을 실행하고 **Discover** 탭으로 이동하거나 [claude.com/plugins](https://claude.com/plugins)에서 카탈로그를 확인하십시오.

38 

39공식 마켓플레이스에서 플러그인을 설치하려면 `/plugin install <name>@claude-plugins-official`을 사용하십시오. 예를 들어 GitHub 통합을 설치하려면:

40 

41```shell theme={null}

42/plugin install github@claude-plugins-official

43```

44 

45`/plugin`은 터미널 CLI에서 대화형 패널을 엽니다. Claude가 이 환경에서 `/plugin`을 사용할 수 없다고 응답하면 플러그인을 다른 방식으로 설치하십시오:

46 

47* **Claude 데스크톱 앱**: [플러그인 브라우저](/docs/ko/desktop#install-plugins)를 사용하십시오.

48* **VS Code 확장**: [**플러그인 관리** 대화상자](/docs/ko/vs-code#manage-plugins)에서 설치하십시오.

49* **클라우드 세션**: 플러그인을 claude.ai 계정에 대해 활성화하여 Claude Code가 [동기화된 플러그인](/docs/ko/plugins-reference#synced-plugins)으로 로드하도록 하십시오.

50 

51설치가 실패하면 Claude Code가 보고한 메시지와 일치하는지 확인하십시오:

52 

53* `Marketplace "claude-plugins-official" not found`: `/plugin marketplace add anthropics/claude-plugins-official`을 사용하여 마켓플레이스를 추가한 후 설치를 다시 시도하십시오.

54* 플러그인이 [마켓플레이스에서 찾을 수 없음](#install-plugins): 플러그인 이름을 확인하십시오.

55 

56<Note>

57 공식 마켓플레이스는 Anthropic에서 큐레이션하며, 포함 여부는 Anthropic의 재량입니다. 앱 내 제출 양식은 플러그인을 [커뮤니티 마켓플레이스](#community-marketplace)에 추가하며, 공식 마켓플레이스에는 추가하지 않습니다. 플러그인을 독립적으로 배포하려면 [자신의 마켓플레이스를 만들고](/docs/ko/plugin-marketplaces) 사용자와 공유하십시오.

58</Note>

59 

60공식 마켓플레이스에는 여러 카테고리의 플러그인이 포함되어 있습니다:

61 

62<h3 id="code-intelligence">

63 코드 인텔리전스

64</h3>

65 

66코드 인텔리전스 플러그인은 Claude Code의 기본 제공 LSP 도구를 활성화하여 Claude가 정의로 이동하고, 참조를 찾고, 편집 직후 유형 오류를 볼 수 있도록 합니다. 이러한 플러그인은 [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) 연결을 구성하며, 이는 VS Code의 코드 인텔리전스를 지원하는 동일한 기술입니다. [클라우드 세션](/docs/ko/claude-code-on-the-web)에서 Claude Code는 플러그인 언어 서버를 시작하지 않으므로 Claude는 그곳에서 LSP 도구를 얻지 못합니다.

67 

68이러한 플러그인을 사용하기 전에 아래 표에서 언어 서버 바이너리를 설치하십시오. 플러그인이 설치해주지 않습니다. 이미 언어 서버가 설치되어 있으면 프로젝트를 열 때 Claude가 해당 플러그인을 설치하도록 요청할 수 있습니다.

69 

70| 언어 | 플러그인 | 필수 바이너리 |

71| :--------- | :------------------ | :--------------------------- |

72| C/C++ | `clangd-lsp` | `clangd` |

73| C# | `csharp-lsp` | `csharp-ls` |

74| Go | `gopls-lsp` | `gopls` |

75| Java | `jdtls-lsp` | `jdtls` |

76| Kotlin | `kotlin-lsp` | `kotlin-language-server` |

77| Lua | `lua-lsp` | `lua-language-server` |

78| PHP | `php-lsp` | `intelephense` |

79| Python | `pyright-lsp` | `pyright-langserver` |

80| Rust | `rust-analyzer-lsp` | `rust-analyzer` |

81| Swift | `swift-lsp` | `sourcekit-lsp` |

82| TypeScript | `typescript-lsp` | `typescript-language-server` |

83 

84또한 다른 언어를 위해 [자신의 LSP 플러그인을 만들 수](/docs/ko/plugins-reference#lsp-servers) 있습니다.

85 

86<Note>

87 플러그인을 설치한 후 `/plugin` 오류 탭에서 `Executable not found in $PATH`를 보면 해당 플러그인에 대해 [코드 인텔리전스](#code-intelligence) 표에 나열된 바이너리를 설치하십시오.

88</Note>

89 

90<h4 id="what-claude-gains-from-code-intelligence-plugins">

91 코드 인텔리전스 플러그인이 Claude에 제공하는 기능

92</h4>

93 

94코드 인텔리전스 플러그인이 설치되고 해당 언어 서버 바이너리를 사용할 수 있으면 Claude는 두 가지 기능을 얻습니다:

95 

96* **자동 진단**: Claude가 파일을 편집할 때마다 언어 서버가 오류 및 경고를 다시 보고하므로 Claude는 컴파일러나 린터를 실행하지 않고도 유형 오류, 누락된 가져오기 및 구문 문제를 봅니다. Claude가 오류를 도입하면 같은 차례에 이를 알아차리고 수정합니다.

97* **코드 네비게이션**: Claude는 언어 서버를 사용하여 정의로 이동하고, 참조를 찾고, 호버 시 유형 정보를 얻고, 기호를 나열하고, 구현을 찾고, 호출 계층을 추적할 수 있습니다. 이러한 작업은 grep 기반 검색보다 더 정확한 네비게이션을 Claude에 제공하지만, 가용성은 언어 및 환경에 따라 다를 수 있습니다.

98 

99플러그인을 설치하는 것 외에 진단을 구성할 필요가 없습니다. 직접 읽으려면 Claude Code가 **Found 3 new diagnostic issues in 2 files**와 같은 표시기를 표시할 때 **Ctrl+O**를 누르십시오.

100 

101문제가 발생하면 [코드 인텔리전스 문제 해결](#code-intelligence-issues)을 참조하십시오.

102 

103<h3 id="external-integrations">

104 외부 통합

105</h3>

106 

107이러한 플러그인은 사전 구성된 [MCP 서버](/docs/ko/mcp)를 번들로 제공하므로 수동 설정 없이 Claude를 외부 서비스에 연결할 수 있습니다:

108 

109* **소스 제어**: `github`, `gitlab`

110* **프로젝트 관리**: `atlassian` (Jira/Confluence), `asana`, `linear`, `notion`

111* **디자인**: `figma`

112* **인프라**: `vercel`, `firebase`, `supabase`

113* **커뮤니케이션**: `slack`

114* **모니터링**: `sentry`

115 

116<h3 id="automatic-security-review">

117 자동 보안 검토

118</h3>

119 

120`security-guidance` 플러그인은 Claude가 수행하는 각 변경 사항을 일반적인 취약점에 대해 검토하고 Claude에 같은 세션에서 발견한 항목을 수정하도록 지시합니다. 검사 내용 및 프로젝트별 규칙을 추가하는 방법은 [Claude가 코드를 작성할 때 보안 문제 포착](/docs/ko/security-guidance)을 참조하십시오.

121 

122<h3 id="development-workflows">

123 개발 워크플로우

124</h3>

125 

126일반적인 개발 작업을 위한 기술 및 에이전트를 추가하는 플러그인:

127 

128* **commit-commands**: 커밋, 푸시 및 PR 생성을 포함한 Git 커밋 워크플로우

129* **pr-review-toolkit**: 풀 요청 검토를 위한 특화된 에이전트

130* **agent-sdk-dev**: Claude Agent SDK로 빌드하기 위한 도구

131* **plugin-dev**: 자신의 플러그인을 만들기 위한 도구 모음

132 

133<h3 id="output-styles">

134 출력 스타일

135</h3>

136 

137Claude가 응답하는 방식을 사용자 정의하십시오:

138 

139* **explanatory-output-style**: 구현 선택에 대한 교육적 통찰력

140* **learning-output-style**: 기술 구축을 위한 대화형 학습 모드

141 

142<h2 id="community-marketplace">

143 커뮤니티 마켓플레이스

144</h2>

145 

146[`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community)의 커뮤니티 마켓플레이스는 Anthropic의 자동화된 검증 및 안전 심사를 통과한 타사 플러그인을 호스팅합니다. 각 플러그인은 카탈로그의 특정 커밋 SHA에 고정됩니다. 공식 마켓플레이스와 달리 수동으로 추가해야 합니다:

147 

148```shell theme={null}

149/plugin marketplace add anthropics/claude-plugins-community

150```

151 

152그런 다음 `claude-community` 마켓플레이스 이름을 사용하여 플러그인을 설치합니다:

153 

154```shell theme={null}

155/plugin install <plugin-name>@claude-community

156```

157 

158자신의 플러그인을 커뮤니티 마켓플레이스에 제출하려면 플러그인 생성 가이드의 [Submit your plugin to the community marketplace](/docs/ko/plugins#submit-your-plugin-to-the-community-marketplace)를 참조하세요.

159 

160<h2 id="try-it-add-the-demo-marketplace">

161 시도해보기: 데모 마켓플레이스 추가

162</h2>

163 

164Anthropic은 플러그인 시스템으로 가능한 것들을 보여주는 예제 플러그인이 포함된 [데모 플러그인 마켓플레이스](https://github.com/anthropics/claude-code/tree/main/plugins)(`claude-code-plugins`)를 유지 관리합니다. 공식 마켓플레이스와 달리 이 마켓플레이스는 수동으로 추가해야 합니다.

165 

166<Steps>

167 <Step title="마켓플레이스 추가">

168 Claude Code 내에서 `anthropics/claude-code` 마켓플레이스에 대해 `plugin marketplace add` 명령을 실행합니다:

169 

170 ```shell theme={null}

171 /plugin marketplace add anthropics/claude-code

172 ```

173 

174 이 명령은 마켓플레이스 카탈로그를 다운로드하고 해당 플러그인을 사용 가능하게 만듭니다.

175 </Step>

176 

177 <Step title="사용 가능한 플러그인 찾아보기">

178 `/plugin`을 실행하여 플러그인 관리자를 엽니다. 이는 **Tab**을 사용하여 순환할 수 있는 탭 인터페이스를 열거나 뒤로 이동하려면 **Shift+Tab**을 사용합니다:

179 

180 * **Discover**: 모든 마켓플레이스에서 사용 가능한 플러그인 찾아보기

181 * **Installed**: 설치된 플러그인 보기 및 관리

182 * **Marketplaces**: 추가한 마켓플레이스 추가, 제거 또는 업데이트

183 * **Errors**: 플러그인 로딩 오류 보기

184 * **Stats**: [`/skill-doctor`를 사용할 수 있는 세션에서 각 스킬의 컨텍스트 비용과 사용 빈도 확인](/docs/ko/skills#find-unused-skills)

185 

186 방금 추가한 마켓플레이스의 플러그인을 보려면 **Discover** 탭으로 이동합니다. 관리자가 [`pluginSuggestionMarketplaces`](/docs/ko/settings-reference#pluginsuggestionmarketplaces) 관리 설정을 통해 마켓플레이스를 허용 목록에 추가한 경우, 현재 작업 디렉토리와 관련이 있는 것으로 표시된 플러그인은 **suggested for this directory** 레이블과 함께 맨 위에 고정됩니다.

187 </Step>

188 

189 <Step title="플러그인 설치">

190 플러그인을 선택하여 세부 정보를 봅니다. 세부 정보 창에는 플러그인에 포함된 내용과 비용이 표시됩니다:

191 

192 * 플러그인이 매 턴마다 [컨텍스트 윈도우](/docs/ko/features-overview#understand-context-costs)에 추가할 토큰 수를 볼 수 있는 **Context cost** 예상치

193 * 플러그인의 **Last updated** 날짜

194 * 플러그인의 명령, 에이전트, 스킬, 훅 및 MCP와 LSP 서버를 나열하는 **Will install** 섹션으로, 설치 전에 정확히 무엇이 추가되는지 검토할 수 있습니다

195 

196 모든 플러그인이 이러한 필드 뒤의 데이터를 제공하는 것은 아닙니다. 로컬 또는 사용자 정의 마켓플레이스의 플러그인의 경우 **Context cost** 및 **Last updated** 행이 표시되지 않을 수 있으며, **Will install** 섹션에 **Components will be discovered at installation** 대신 표시될 수 있습니다.

197 

198 설치 범위를 선택합니다:

199 

200 * **User scope**: 모든 프로젝트에서 자신을 위해 설치

201 * **Project scope**: 이 저장소의 모든 협력자를 위해 설치

202 * **Local scope**: 이 저장소에서만 자신을 위해 설치

203 

204 예를 들어 **commit-commands**를 선택합니다. 이는 git 워크플로우 스킬을 추가하는 플러그인이며, 사용자 범위로 설치합니다.

205 

206 명령줄에서 설치를 시작할 수도 있습니다:

207 

208 ```shell theme={null}

209 /plugin install commit-commands@claude-code-plugins

210 ```

211 

212 범위에 대해 자세히 알아보려면 [설정 파일](/docs/ko/settings#where-settings-live)을 참조하세요.

213 </Step>

214 

215 <Step title="새 플러그인 사용">

216 설치 요약에서 `Run /reload-plugins to activate.`를 보고하면 Claude Code가 해당 재로드를 자동으로 실행합니다. 재로드 시 다음 메시지가 대화를 다시 읽을 것이라는 경고가 표시되면 `/reload-plugins --force`를 실행하여 플러그인을 활성화합니다.

217 

218 플러그인 스킬은 플러그인 이름으로 네임스페이스되므로 **commit-commands**는 `/commit-commands:commit`과 같은 스킬을 제공합니다.

219 

220 파일을 변경하고 다음을 실행하여 시도해봅니다:

221 

222 ```shell theme={null}

223 /commit-commands:commit

224 ```

225 

226 이는 변경 사항을 스테이징하고, 커밋 메시지를 생성하며, 커밋을 만듭니다.

227 

228 각 플러그인은 다르게 작동합니다. **Discover** 탭에서 플러그인의 세부 정보를 확인하여 제공하는 명령 및 스킬을 보거나, 사용 지침을 위해 해당 홈페이지를 방문하세요.

229 </Step>

230</Steps>

231 

232<h2 id="add-marketplaces">

233 마켓플레이스 추가

234</h2>

235 

236`/plugin marketplace add` 명령을 사용하여 다양한 소스에서 마켓플레이스를 추가합니다.

237 

238<Tip>

239 **단축키**: `/plugin marketplace` 대신 `/plugin market`을 사용할 수 있으며, `remove` 대신 `rm`을 사용할 수 있습니다.

240</Tip>

241 

242* **GitHub 저장소**: `owner/repo` 형식입니다. 예를 들어 `anthropics/claude-code`

243* **Git URL**: GitLab, Bitbucket 및 자체 호스팅 서버를 포함한 모든 git 저장소 URL

244* **로컬 경로**: 디렉터리 또는 `marketplace.json` 파일에 대한 직접 경로

245* **원격 URL**: 호스팅된 `marketplace.json` 파일에 대한 직접 URL

246* **claude.ai**: claude.ai에서 호스팅되는 마켓플레이스로, 조직의 플러그인 라이브러리와 같이 소스가 아닌 [**마켓플레이스** 탭 또는 셸에서 이름으로 추가](#add-from-claude-ai)하는 계정용 마켓플레이스입니다.

247 

248<h3 id="add-from-github">

249 GitHub에서 추가

250</h3>

251 

252`.claude-plugin/marketplace.json` 파일을 포함하는 GitHub 저장소를 `owner/repo` 형식을 사용하여 추가합니다. 여기서 `owner`는 GitHub 사용자 이름 또는 조직이고 `repo`는 저장소 이름입니다.

253 

254예를 들어 `anthropics/claude-code`는 `anthropics`가 소유한 `claude-code` 저장소를 나타냅니다:

255 

256```shell theme={null}

257/plugin marketplace add anthropics/claude-code

258```

259 

260<h3 id="add-from-other-git-hosts">

261 다른 Git 호스트에서 추가

262</h3>

263 

264전체 URL을 제공하여 git 마켓플레이스 저장소를 추가합니다. `https://` URL의 경우 `.git` 접미사를 포함할지 여부는 호스트에 따라 다릅니다:

265 

266* **`github.com` 및 `gitlab.com`**: Claude Code는 `.git` 접미사가 있거나 없는 저장소 URL을 인식하고 복제합니다. 접미사 없이 `gitlab.com` URL을 추가하려면 Claude Code v2.1.232 이상이 필요합니다. v2.1.232 이전에는 Claude Code가 이를 호스팅된 `marketplace.json` 파일에 대한 직접 링크로 취급했습니다.

267* **Azure DevOps**: 접미사를 생략합니다. Claude Code는 경로에 `/_git/`이 포함된 모든 URL을 복제합니다. `/_git/` 경로에 `.git`을 추가하면 복제가 실패합니다.

268* **자체 관리 GitLab 서버를 포함한 다른 모든 호스트**: Claude Code가 URL을 호스팅된 `marketplace.json` 파일에 대한 직접 링크로 취급하지 않고 저장소를 복제하도록 `.git` 접미사를 포함합니다. AWS CodeCommit과 같이 복제 URL에 접미사가 없는 호스트의 경우 대신 [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces)의 git 항목으로 마켓플레이스를 추가합니다. Claude Code는 URL이 `.git`으로 끝나는지 여부와 관계없이 git 항목을 복제합니다.

269 

270Claude Code는 `https://gitlab.com/group/subgroup/project`와 같이 중첩된 하위 그룹이 있는 `gitlab.com` URL도 복제합니다.

271 

272`https://` 접두사를 포함합니다. Claude Code v2.1.196 이상은 `gitlab.com/company/plugins.git`과 같이 접두사 없이 입력된 호스트를 잘못된 GitHub `owner/repo` 단축형으로 거부하며, 오류 메시지에 접두사를 추가하도록 지시합니다. 이전 버전은 이를 GitHub 저장소 경로로 잘못 읽고 복제 시간에 실패합니다.

273 

274HTTPS 사용:

275 

276```shell theme={null}

277/plugin marketplace add https://gitlab.com/company/plugins.git

278```

279 

280SSH 사용:

281 

282```shell theme={null}

283/plugin marketplace add git@gitlab.com:company/plugins.git

284```

285 

286Claude Code는 SSH 주소가 `.git`으로 끝나는지 여부와 관계없이 복제합니다.

287 

288특정 분기 또는 태그를 추가하려면 `#` 뒤에 ref를 추가합니다:

289 

290```shell theme={null}

291/plugin marketplace add https://gitlab.com/company/plugins.git#v1.0.0

292```

293 

294<h3 id="add-from-local-paths">

295 로컬 경로에서 추가

296</h3>

297 

298`.claude-plugin/marketplace.json` 파일을 포함하는 로컬 디렉터리를 추가합니다:

299 

300```shell theme={null}

301/plugin marketplace add ./my-marketplace

302```

303 

304`marketplace.json` 파일에 대한 직접 경로를 추가할 수도 있습니다:

305 

306```shell theme={null}

307/plugin marketplace add ./path/to/marketplace.json

308```

309 

310<h3 id="add-from-remote-urls">

311 원격 URL에서 추가

312</h3>

313 

314URL을 통해 원격 `marketplace.json` 파일을 추가합니다:

315 

316```shell theme={null}

317/plugin marketplace add https://example.com/marketplace.json

318```

319 

320<Note>

321 URL 기반 마켓플레이스는 Git 기반 마켓플레이스에 비해 몇 가지 제한 사항이 있습니다. URL 기반 마켓플레이스에서 플러그인 설치가 실패하면 [문제 해결](/docs/ko/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)을 참조하십시오.

322</Note>

323 

324<h3 id="add-from-claude-ai">

325 claude.ai에서 추가

326</h3>

327 

328[플러그인이 claude.ai 계정에서 동기화되는](/docs/ko/plugins-reference#synced-plugins) 터미널 세션에서 claude.ai는 조직의 플러그인 라이브러리 및 자신의 claude.ai 업로드와 같은 마켓플레이스를 나열할 수도 있습니다. `claude plugin marketplace list`는 `From claude.ai:` 섹션에 이들을 출력하고, `/plugin` **마켓플레이스** 탭에 이들을 나열합니다. 추가하려면 여기서 하나를 선택합니다. claude.ai에서 마켓플레이스를 추가하려면 Claude Code v2.1.273 이상이 필요합니다.

329 

330셸에서 추가하려면 `--claudeai` 플래그와 목록에 표시된 이름으로 `claude plugin marketplace add`를 실행합니다:

331 

332```bash theme={null}

333claude plugin marketplace add --claudeai claudeai-organization-library

334```

335 

336Claude Code는 마켓플레이스를 claude.ai가 나열한 이름에서 파생된 `claudeai-`로 시작하는 로컬 이름으로 등록합니다. "Organization library"로 나열된 마켓플레이스는 `claudeai-organization-library`로 등록됩니다. 예를 들어 `claude plugin install <plugin>@claudeai-organization-library`를 사용하여 해당 이름으로 플러그인을 설치합니다.

337 

338로그아웃하거나 다른 계정으로 로그인하면 마켓플레이스는 구성된 상태로 유지되지만 플러그인을 표시하지 않으며, 이미 설치한 플러그인은 계속 로드됩니다.

339 

340`From claude.ai:` 섹션은 claude.ai를 통해 공유되는 git 기반 마켓플레이스도 나열할 수 있습니다. 일반 `marketplace add` 명령을 사용하여 이들을 추가하고, 목록이 출력하는 소스를 사용합니다.

341 

342<h2 id="install-plugins">

343 플러그인 설치

344</h2>

345 

346마켓플레이스를 추가한 후 플러그인을 이름으로 설치할 수 있습니다. 아직 추가하지 않은 마켓플레이스의 경우 대신 [한 명령어로 추가 및 설치](#add-a-marketplace-and-install-in-one-command)할 수 있습니다.

347 

348이름으로 설치하려면:

349 

350```shell theme={null}

351/plugin install plugin-name@marketplace-name

352```

353 

354이 명령어는 플러그인의 세부 정보를 열며, 여기서 [설치 범위](/docs/ko/settings#where-settings-live)를 선택합니다. `/plugin`을 실행하고 **Discover** 탭으로 이동한 후 플러그인에서 **Enter**를 누를 때도 동일한 선택지가 표시됩니다:

355 

356* **사용자 범위**: 모든 프로젝트에서 자신을 위해 설치

357* **프로젝트 범위**: 이 저장소의 모든 협력자를 위해 설치(`.claude/settings.json`에 추가)

358* **로컬 범위**: 이 저장소에서만 자신을 위해 설치(협력자와 공유되지 않음)

359 

360대화형 단계 없이 설치하려면 [`claude plugin install`](/docs/ko/plugins-reference#plugin-install) 셸 명령어를 사용하세요. 이 명령어는 `--scope`를 전달하지 않으면 사용자 범위로 설치됩니다. [`command` 소스](/docs/ko/plugin-marketplaces#how-users-accept-the-command)가 있는 플러그인의 경우 `--yes`를 전달하여 표시되는 명령어를 수락합니다.

361 

362**관리됨** 범위의 플러그인도 볼 수 있습니다. 이러한 플러그인은 관리자가 [관리 설정](/docs/ko/managed-settings)을 통해 설치하며 수정할 수 없습니다.

363 

364Claude Code는 마켓플레이스 카탈로그의 로컬 복사본에서 플러그인을 찾습니다. 플러그인의 이름 지정 방식에 따라 Claude Code가 해당 복사본을 먼저 새로 고칠지 여부가 결정됩니다:

365 

366* **마켓플레이스 이름 포함**: `plugin-name@marketplace-name`을 설치할 때, 세션에서 또는 `claude plugin install`을 사용하여 설치하면 Claude Code는 조회 전에 해당 마켓플레이스를 새로 고칩니다. Claude Code는 마켓플레이스에 대해 [자동 업데이트](#configure-auto-updates)를 비활성화했거나 `DISABLE_AUTOUPDATER`를 설정한 경우에도 새로 고침을 실행합니다. v2.1.232 이전에는 Claude Code가 조회 전에 마켓플레이스를 새로 고치지 않았습니다. Claude Code는 다음의 경우 이 새로 고침을 건너뜁니다:

367 * 마켓플레이스가 [GitHub, 다른 Git 호스트, 원격 URL에서 추가](#add-marketplaces)되지 않았거나 [Claude.ai에서 추가](#add-from-claude-ai)되지 않은 경우.

368 * [시드 디렉토리](/docs/ko/plugin-marketplaces#pre-populate-plugins-for-containers)가 마켓플레이스를 제공하는 경우.

369 * Claude Code가 지난 30초 이내에 마켓플레이스를 새로 고친 경우.

370 * [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ko/env-vars)을 설정한 경우.

371 * [관리 설정](/docs/ko/plugin-marketplaces#managed-marketplace-restrictions)이 마켓플레이스를 차단하는 경우. 이 경우 Claude Code도 설치를 거부합니다.

372* **플러그인 이름만**: 세션에서 `/plugin install plugin-name`을 실행할 때, Claude Code는 [백그라운드에서도 업데이트](#configure-auto-updates)하는 마켓플레이스만 새로 고치며, 조회가 실패한 후에만 새로 고칩니다. `claude plugin install plugin-name`을 실행할 때, Claude Code는 새로 고침 없이 캐시된 카탈로그를 읽습니다. 마지막 새로 고침 후에 게시된 플러그인을 설치하려면 세션에서 `/plugin marketplace update <marketplace-name>`을 실행하거나 셸에서 [`claude plugin marketplace update <marketplace-name>`](/docs/ko/plugin-marketplaces#plugin-marketplace-update)을 실행한 후 설치를 다시 시도하세요.

373 

374명명된 설치 전 새로 고침이 실패하면(예: 오프라인 상태인 경우) Claude Code는 캐시된 카탈로그에서 플러그인을 조회합니다. `claude plugin install`은 성공 메시지에서 `marketplace not refreshed`를 보고하며, `/plugin install`은 플러그인의 세부 정보 위에 또는 찾을 수 없음 메시지에서 실패를 표시합니다.

375 

376`/plugin` 인터페이스에서 설치할 때, 설치 요약은 플러그인이 현재 세션에서 활성화되어 있는지 여부를 알려줍니다:

377 

378* `Plugin is now active.`: Claude Code가 설치의 일부로 플러그인을 활성화했습니다.

379* `Run /reload-plugins to activate.`: 플러그인이 아직 활성화되지 않았습니다. 활성화하면 [프롬프트 캐시가 무효화](/docs/ko/prompt-caching#enabling-or-disabling-a-plugin)되거나 활성화 시도가 실패했기 때문입니다. Claude Code가 `/reload-plugins`을 실행합니다. 해당 다시 로드가 프롬프트 캐시에 대한 경고를 표시하면 [플러그인을 어쨌든 활성화](#apply-plugin-changes-without-restarting)하려면 `/reload-plugins --force`를 실행하세요.

380* 플러그인이 로드되지 않으면 요약에서 실패를 보고하며 `/plugin` **Errors** 탭에서 세부 정보를 표시합니다.

381 

382v2.1.221 이전에는 `/reload-plugins`을 실행하거나 다시 시작할 때까지 현재 세션에서 설치가 적용되지 않았습니다.

383 

384`claude plugin install` 셸 명령어는 세션에서 실행되지 않으므로 Claude Code는 다음 번에 Claude Code를 시작할 때 또는 이미 열려 있는 세션에서 `/reload-plugins`을 실행할 때 설치하는 플러그인을 로드합니다.

385 

386<Warning>

387 플러그인을 설치하기 전에 신뢰할 수 있는지 확인하세요. Anthropic은 플러그인에 포함된 MCP 서버, 파일 또는 기타 소프트웨어를 제어하지 않으며 의도한 대로 작동하는지 확인할 수 없습니다. 자세한 내용은 각 플러그인의 홈페이지를 확인하세요.

388</Warning>

389 

390<h3 id="add-a-marketplace-and-install-in-one-command">

391 한 명령어로 마켓플레이스 추가 및 설치

392</h3>

393 

394아직 추가하지 않은 마켓플레이스에서 플러그인을 설치하려면 `--marketplace`로 마켓플레이스 소스를 지정하세요. Claude Code v2.1.275 이상이 필요합니다.

395 

396```shell theme={null}

397/plugin install quality-review-plugin --marketplace your-org/plugins

398```

399 

400소스는 [GitHub `owner/repo`, git URL 또는 로컬 경로](#add-marketplaces)와 같이 `/plugin marketplace add`와 동일한 형식을 사용합니다. 단, 공백을 포함할 수 없습니다. 플러그인 이름을 `@marketplace` 접미사 없이 그대로 입력하세요.

401 

402Claude Code는 해결된 소스를 표시하고 추가하기 전에 확인을 요청합니다. 거절하면 설치가 취소되고 아무것도 추가되지 않습니다. 마켓플레이스가 추가되면 플러그인의 세부 정보가 열리고 [설치 범위](/docs/ko/settings#where-settings-live)를 선택합니다. 소스가 이미 추가한 마켓플레이스와 일치하면 Claude Code는 확인을 건너뛰고 해당 마켓플레이스에서 플러그인의 세부 정보를 엽니다.

403 

404<h2 id="manage-installed-plugins">

405 설치된 플러그인 관리

406</h2>

407 

408`/plugin`을 실행하고 **Installed** 탭으로 이동하여 플러그인을 보고, 활성화하고, 비활성화하거나, 제거합니다. 목록은 범위별로 그룹화되고 문제가 먼저 표시되도록 정렬됩니다: 로드 오류 또는 해결되지 않은 종속성이 있는 플러그인이 맨 위에 나타나고, 그 다음 즐겨찾기가 나타나며, 비활성화된 플러그인은 맨 아래의 축소된 헤더 뒤에 접혀 있습니다.

409 

410목록에서 다음을 수행할 수 있습니다:

411 

412* `f`를 눌러 선택한 플러그인을 즐겨찾기에 추가하거나 제거

413* 입력하여 플러그인 이름 또는 설명으로 필터링

414* Enter를 눌러 플러그인의 세부 정보 보기를 열고 활성화, 비활성화 또는 제거

415 

416Claude Code는 또한 **Installed** 탭에서 [claude.ai 계정에서 동기화된 플러그인](/docs/ko/plugins-reference#synced-plugins)을 나열하며, `synced`를 소스로 표시합니다. 조직에서 필수로 표시하지 않은 경우 거기서 활성화하거나 비활성화할 수 있습니다. 하나를 제거하려면 claude.ai에서 끕니다. 동기화된 플러그인은 Claude Code v2.1.273 이상의 터미널 세션에 나타납니다.

417 

418프로젝트의 `.claude/settings.json`이 활성화하는 플러그인을 제거하면 Claude Code는 어느 범위를 의도했는지 묻습니다: 자신만 비활성화하면 `.claude/settings.local.json`에 재정의를 작성하고 프로젝트에 플러그인을 설치된 상태로 두거나, 모두를 위해 제거하면 공유 `.claude/settings.json`에서 제거합니다.

419 

420세부 정보 보기는 플러그인이 제공하는 구성 요소를 표시합니다: commands, skills, agents, hooks, MCP servers 및 LSP servers. 동일한 인벤토리는 `claude plugin details` 명령어로 명령줄에서도 사용할 수 있습니다.

421 

422Claude Code는 또한 마켓플레이스에서 직접 설치했지만 최소 2주 동안 그리고 최소 10개 세션에 걸쳐 사용하지 않은 플러그인을 **Installed** 탭의 **Not used recently** 헤더 아래에 나열합니다. 세부 정보 보기는 각 플러그인에 대한 **Last used** 줄을 표시합니다. 이를 사용하여 더 이상 사용하지 않지만 여전히 시작 및 컨텍스트 비용을 추가하는 플러그인을 찾은 다음 비활성화하거나 제거합니다.

423 

424두 가지 종류의 플러그인은 사용하지 않는 것으로 나열되지 않습니다:

425 

426* 조직에서 관리하거나 `--plugin-dir`로 로드하는 플러그인

427* theme, output style, monitor 또는 workflow를 제공하는 플러그인. 이들은 추적할 호출 없이 값을 제공하기 때문입니다

428 

429**Not used recently** 헤더와 **Last used** 줄은 조직이 [`strictKnownMarketplaces`](/docs/ko/settings-reference#strictknownmarketplaces)로 마켓플레이스를 제한할 때 모두 숨겨집니다.

430 

431플러그인의 [language server](/docs/ko/plugins#add-lsp-servers-to-your-plugin)는 진단을 제공하거나 코드 네비게이션 요청에 응답할 때 사용된 것으로 계산되므로, 서버가 세션에서 활성화된 LSP 플러그인은 사용하지 않는 것으로 나열되지 않습니다. v2.1.203 이전에는 language server 활동을 사용으로 계산할 수 없었으므로, LSP server를 제공하는 플러그인은 theme 및 output style 플러그인과 동일한 방식으로 그룹에서 제외되었습니다.

432 

433첫 번째 세션은 language server 활동을 계산하는 버전에서 아직 사용 기록을 기록하지 않은 각 LSP 플러그인의 사용 기록을 재설정하므로, Claude Code는 서버 활동이 추적되기 전에 기록된 데이터를 기반으로 이전에 설치한 플러그인을 사용하지 않는 것으로 판단하지 않습니다.

434 

435종속성을 선언하는 플러그인을 설치하면 설치 출력에 함께 자동 설치된 종속성이 나열됩니다.

436 

437직접 명령어로 플러그인을 관리할 수도 있습니다:

438 

439* `/plugin disable`, `/plugin enable` 또는 `/plugin uninstall`을 실행하면 Claude Code는 플러그인 패널을 열어 변경 사항을 적용하고 열린 상태로 둡니다. 다른 명령어를 입력하기 전에 **Esc**를 눌러 패널을 닫습니다. [재시작 없이 플러그인 변경 사항 적용](#apply-plugin-changes-without-restarting)에서 변경 사항이 세션에서 언제 적용되는지 설명합니다.

440* 스크립팅의 경우 `claude plugin` 셸 명령어를 대신 사용하면 패널을 열지 않습니다.

441 

442메뉴를 열지 않고 설치된 플러그인을 나열합니다:

443 

444```shell theme={null}

445/plugin list

446```

447 

448`--enabled` 또는 `--disabled`를 전달하여 해당 상태의 플러그인만 표시합니다.

449 

450플러그인을 제거하지 않고 비활성화합니다:

451 

452```shell theme={null}

453/plugin disable plugin-name@marketplace-name

454```

455 

456비활성화된 플러그인을 다시 활성화합니다:

457 

458```shell theme={null}

459/plugin enable plugin-name@marketplace-name

460```

461 

462이 식별자에서 `plugin-name`은 [마켓플레이스 항목](/docs/ko/plugin-marketplaces#plugin-entries)의 플러그인 `name`이며, 플러그인 자체의 `plugin.json`의 `name`과 다를 수 있습니다.

463 

464Claude Code v2.1.195부터 `/plugin` 인터페이스의 **Enable** 및 **Disable**은 두 이름이 다른 플러그인에 대해 작동하며, `/plugin enable` 및 `/plugin disable`은 두 이름 중 하나를 허용합니다. 이전 버전에서 이러한 플러그인을 비활성화하면 Claude Code는 `already disabled`를 보고하고 활성화된 상태로 둡니다.

465 

466플러그인을 완전히 제거합니다:

467 

468```shell theme={null}

469/plugin uninstall plugin-name@marketplace-name

470```

471 

472`--scope` 옵션을 사용하면 CLI 명령어로 특정 범위를 대상으로 할 수 있습니다:

473 

474```shell theme={null}

475claude plugin install formatter@your-org --scope project

476claude plugin uninstall formatter@your-org --scope project

477```

478 

479<h3 id="apply-plugin-changes-without-restarting">

480 재시작 없이 플러그인 변경 사항 적용

481</h3>

482 

483`/plugin` 메뉴를 닫으면 Claude Code는 플러그인 설치, 활성화, 비활성화 및 제거와 같이 메뉴에서 수행한 변경 사항을 적용하기 위해 `/reload-plugins`를 실행합니다. 재로드가 [프롬프트 캐시를 무효화](/docs/ko/prompt-caching#enabling-or-disabling-a-plugin)할 경우 경고하고 변경 사항을 대기 중인 상태로 두며, 대신 `/reload-plugins --force`를 실행하여 적용합니다. Claude가 메뉴를 닫을 때 여전히 응답 중이면 응답이 완료된 후 재로드가 실행됩니다.

484 

485메뉴 외부에서 발생하는 플러그인 변경 사항의 경우 `/reload-plugins`를 직접 실행합니다. 이러한 변경 사항에는 다음이 포함됩니다:

486 

487* 다른 터미널에서 실행한 `claude plugin` 명령어

488* 개발 중에 [`--plugin-dir`](/docs/ko/plugins#test-your-plugins-locally)로 로드한 플러그인 편집

489* 재로드하도록 요청하는 플러그인 [자동 업데이트](#configure-auto-updates) 알림

490* [claude.ai 계정에서 동기화](/docs/ko/plugins-reference#synced-plugins)하여 플러그인을 추가, 업데이트 또는 제거했으며 재로드하도록 요청하는 알림을 표시

491* 적용하면 프롬프트 캐시를 무효화할 [`--plugin-dir` 폴더](/docs/ko/plugins#test-your-plugins-locally)의 변경 사항

492 

493v2.1.268 이전에는 메뉴에서 활성화, 비활성화 또는 제거한 플러그인과 설치 중에 활성화되지 않은 설치가 `/reload-plugins`를 실행할 때까지 대기 중인 상태로 유지되었습니다.

494 

495`/reload-plugins`는 또한 데스크톱 앱, Agent SDK 및 `-p`를 사용한 [non-interactive mode](/docs/ko/headless)와 같이 대화형 터미널이 없는 세션에서도 실행됩니다. Claude Code v2.1.260 이상이 필요합니다. 이러한 세션에서는 두 가지 제한이 적용됩니다:

496 

497* 명령어는 `-p` 프롬프트 또는 데스크톱 앱의 프롬프트 상자와 같이 세션에 직접 입력할 때만 실행됩니다. [Remote Control](/docs/ko/remote-control) 또는 중계된 채팅 메시지와 같이 원격 연결을 통해 전송하면 명령어는 아무것도 다시 로드하지 않고 거부합니다.

498* 재로드는 플러그인 MCP servers를 연결하거나 연결 해제하지 않습니다. 이러한 변경 사항은 다음 세션에서 적용됩니다.

499 

500Claude Code는 모든 활성 플러그인을 다시 로드하고 플러그인, skills, agents, hooks, 플러그인 MCP servers 및 플러그인 LSP servers의 개수를 표시하며, 대화형 터미널이 없는 세션에서는 플러그인 MCP server 개수를 생략합니다. skills 개수에서 Claude Code는 플러그인이 제공하는 모든 skill을 포함합니다: `commands/` 항목과 `SKILL.md` skills 모두입니다. v2.1.246 이전에는 Claude Code는 `commands/` 항목만 계산했으므로 플러그인의 `SKILL.md` skills를 다시 로드할 수 있었지만 여전히 요약에서 `0 skills`를 보고했습니다.

501 

502재로드는 다음 요청에서 토큰 비용이 발생합니다: 새로 로드된 구성 요소는 대화에 추가된 콘텐츠에서 자신을 알리고, 기존 기록은 여전히 프롬프트 캐시에서 읽습니다. MCP servers를 제공하는 플러그인은 [tool search](/docs/ko/mcp#scale-with-mcp-tool-search)에 의해 도구가 지연되지 않을 때 더 많은 비용이 발생합니다: 변경으로 인해 캐시가 무효화되고 다음 요청이 전체 대화를 다시 읽습니다. [플러그인 활성화 또는 비활성화](/docs/ko/prompt-caching#enabling-or-disabling-a-plugin)에서 자세한 내용을 참조하세요.

503 

504<h2 id="manage-marketplaces">

505 마켓플레이스 관리

506</h2>

507 

508대화형 `/plugin` 인터페이스 또는 CLI 명령어를 통해 마켓플레이스를 관리할 수 있습니다.

509 

510<h3 id="use-the-interactive-interface">

511 대화형 인터페이스 사용

512</h3>

513 

514`/plugin`을 실행하고 **Marketplaces** 탭으로 이동하여:

515 

516* 소스 및 상태와 함께 추가된 모든 마켓플레이스 보기

517* 새 마켓플레이스 추가

518* 마켓플레이스 목록을 업데이트하여 최신 플러그인 가져오기

519* 더 이상 필요하지 않은 마켓플레이스 제거

520 

521<h3 id="use-cli-commands">

522 CLI 명령어 사용

523</h3>

524 

525직접 명령어로 마켓플레이스를 관리할 수도 있습니다.

526 

527구성된 모든 마켓플레이스 나열:

528 

529```shell theme={null}

530/plugin marketplace list

531```

532 

533마켓플레이스에서 플러그인 목록 새로 고침:

534 

535```shell theme={null}

536/plugin marketplace update marketplace-name

537```

538 

539마켓플레이스 제거:

540 

541```shell theme={null}

542/plugin marketplace remove marketplace-name

543```

544 

545<Warning>

546 마켓플레이스를 제거하면 해당 마켓플레이스에서 설치한 모든 플러그인이 제거됩니다.

547</Warning>

548 

549<h3 id="configure-auto-updates">

550 자동 업데이트 구성

551</h3>

552 

553Claude Code는 시작 후 백그라운드에서 마켓플레이스 및 설치된 플러그인을 자동으로 업데이트할 수 있습니다. 마켓플레이스에 대해 자동 업데이트가 활성화되면 Claude Code는 마켓플레이스 데이터를 새로 고치고 설치된 플러그인을 디스크의 최신 버전으로 업데이트합니다.

554 

555Claude Code는 세션 시작 후 마켓플레이스 및 플러그인 업데이트를 확인하며, 최대 10분의 무작위 지연이 있으므로 실행 중인 세션은 시작 시 로드된 버전을 계속 사용합니다. 플러그인이 업데이트된 경우 `/reload-plugins`를 실행하도록 요청하는 알림이 표시되거나 다음 시작 시 새 버전이 로드됩니다.

556 

557자동 업데이트는 또한 마켓플레이스 항목이 `headersHelper`를 선언하는 플러그인을 제외합니다: Claude Code는 [해당 경로에서 명령어를 실행하거나 아카이브를 다운로드하지 않습니다](/docs/ko/plugin-marketplaces#installs-and-updates-that-refuse-the-command-instead-of-asking). 해당 섹션에서는 Claude Code가 플러그인을 `/plugin` Errors 탭에 나열하는 시기를 설명하므로 자신의 보기에서 업데이트할 수 있습니다.

558 

559Claude Code는 [`command` 소스](/docs/ko/plugin-marketplaces#command-sources)가 있는 플러그인을 마켓플레이스 자동 업데이트 설정 및 `DISABLE_AUTOUPDATER`와는 별도의 일정에 따라 업데이트합니다. 대신 [세션당 한 번 명령어를 다시 실행](/docs/ko/plugin-marketplaces#when-claude-code-re-runs-the-command)하고 [해시](/docs/ko/plugins-reference#version-management)가 변경된 경우 출력을 새 플러그인 버전으로 설치합니다.

560 

561UI를 통해 개별 마켓플레이스에 대한 자동 업데이트를 전환합니다:

562 

5631. `/plugin`을 실행하여 플러그인 관리자 열기

5642. **Marketplaces** 선택

5653. 목록에서 마켓플레이스 선택

5664. **자동 업데이트 활성화** 또는 **자동 업데이트 비활성화** 선택

567 

568`claude-plugins-official`, 대부분의 다른 공식 Anthropic 마켓플레이스, 및 [claude.ai에서 추가된 마켓플레이스](#add-from-claude-ai)는 기본적으로 자동 업데이트가 활성화되어 있습니다. 타사 및 로컬 개발 마켓플레이스는 기본적으로 자동 업데이트가 비활성화되어 있습니다.

569 

570관리자는 관리되는 설정에서 각 [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces) 항목에 `"autoUpdate": true`를 설정하여 각 사용자가 전환하도록 요구하지 않고 조직 마켓플레이스에 대한 자동 업데이트를 활성화할 수 있습니다.

571 

572Claude Code 및 마켓플레이스에서 가져온 플러그인에 대한 자동 업데이트를 비활성화하려면 `DISABLE_AUTOUPDATER` 환경 변수를 설정합니다. [`command` 소스](/docs/ko/plugin-marketplaces#command-sources)가 있는 플러그인은 자신의 세션당 한 번 재해석을 따릅니다. 자세한 내용은 [자동 업데이트](/docs/ko/setup#auto-updates)를 참조하세요.

573 

574Claude Code 자동 업데이트를 비활성화하면서 플러그인 자동 업데이트를 활성화된 상태로 유지하려면 `DISABLE_AUTOUPDATER`와 함께 `FORCE_AUTOUPDATE_PLUGINS=1`을 설정합니다:

575 

576```bash theme={null}

577export DISABLE_AUTOUPDATER=1

578export FORCE_AUTOUPDATE_PLUGINS=1

579```

580 

581<h2 id="configure-team-marketplaces">

582 팀 마켓플레이스 구성

583</h2>

584 

585팀 관리자는 `.claude/settings.json`에 마켓플레이스 구성을 추가하여 프로젝트에 대한 자동 마켓플레이스 설치를 설정할 수 있습니다. 팀 멤버가 [저장소 폴더를 신뢰](/docs/ko/permissions#what-runs-before-you-trust-a-folder)하면 Claude Code는 추가 프롬프트 없이 이러한 마켓플레이스를 추가합니다.

586 

587Claude Code v2.1.195부터 마켓플레이스를 추가해도 플러그인을 로드하는 모든 경로에서 외부 소스에서 제공되는 플러그인이 설치되지 않습니다. 프로젝트의 `.claude/settings.json`만으로 활성화되고 GitHub 저장소 또는 npm 패키지와 같은 외부 소스에서 제공되는 플러그인은 팀 멤버가 설치할 때까지 로드되지 않습니다. 그때까지 Claude Code는 플러그인이 설치되지 않았다고 보고하고 실행할 `claude plugin install` 명령을 표시합니다.

588 

589프로젝트의 `.claude/settings.json`에 `extraKnownMarketplaces`를 추가합니다:

590 

591```json theme={null}

592{

593 "extraKnownMarketplaces": {

594 "my-team-tools": {

595 "source": {

596 "source": "github",

597 "repo": "your-org/claude-plugins"

598 }

599 }

600 }

601}

602```

603 

604`extraKnownMarketplaces` 및 `enabledPlugins`를 포함한 전체 구성 옵션은 [플러그인 설정](/docs/ko/settings-reference#plugin-settings)을 참조하세요.

605 

606<h2 id="security">

607 보안

608</h2>

609 

610플러그인 및 마켓플레이스는 사용자 권한으로 머신에서 임의의 코드를 실행할 수 있는 매우 신뢰할 수 있는 구성 요소입니다. 신뢰할 수 있는 소스에서만 플러그인을 설치하고 마켓플레이스를 추가합니다. 조직은 [관리되는 마켓플레이스 제한](/docs/ko/plugin-marketplaces#managed-marketplace-restrictions)을 사용하여 사용자가 추가할 수 있는 마켓플레이스를 제한할 수 있습니다.

611 

612<h2 id="troubleshooting">

613 문제 해결

614</h2>

615 

616<h3 id="/plugin-command-not-recognized">

617 /plugin 명령어를 인식하지 못함

618</h3>

619 

620"알 수 없는 명령어" 또는 `/plugin` 명령어가 나타나지 않으면:

621 

6221. **버전 확인**: `claude --version`을 실행하여 설치된 항목을 확인합니다.

6232. **Claude Code 업데이트**:

624 * **Homebrew**: `brew upgrade claude-code`, 또는 해당 cask를 설치한 경우 `brew upgrade claude-code@latest`

625 * **npm**: `npm install -g @anthropic-ai/claude-code@latest`

626 * **네이티브 설치 프로그램**: [설정](/docs/ko/setup)에서 설치 명령어를 다시 실행합니다.

6273. **Claude Code 재시작**: 업데이트 후 터미널을 재시작하고 `claude`를 다시 실행합니다.

628 

629<h3 id="common-issues">

630 일반적인 문제

631</h3>

632 

633플러그인 skills가 나타나지 않으면 `rm -rf ~/.claude/plugins/cache`로 캐시를 지우고, Claude Code를 재시작한 후 플러그인을 다시 설치합니다.

634 

635자세한 문제 해결 및 솔루션은 마켓플레이스 가이드의 [문제 해결](/docs/ko/plugin-marketplaces#troubleshooting)을 참조하세요. 디버깅 도구는 [디버깅 및 개발 도구](/docs/ko/plugins-reference#debugging-and-development-tools)를 참조하세요.

636 

637<h3 id="code-intelligence-issues">

638 코드 인텔리전스 문제

639</h3>

640 

641* **언어 서버가 시작되지 않음**: 바이너리가 설치되어 있고 `$PATH`에서 사용 가능한지 확인합니다. `/plugin` Errors 탭에서 세부 정보를 확인합니다.

642* **높은 메모리 사용량**: `rust-analyzer` 및 `pyright`와 같은 언어 서버는 대규모 프로젝트에서 상당한 메모리를 소비할 수 있습니다. 메모리 문제가 발생하면 `/plugin disable <plugin-name>`으로 플러그인을 비활성화하고 대신 Claude의 기본 제공 검색 도구를 사용합니다.

643* **모노레포에서 거짓 양성 진단**: 작업 공간이 올바르게 구성되지 않으면 언어 서버가 내부 패키지에 대해 해결되지 않은 import 오류를 보고할 수 있습니다. 이는 Claude의 코드 편집 능력에 영향을 주지 않습니다.

644 

645<h2 id="next-steps">

646 다음 단계

647</h2>

648 

649* **자신의 플러그인 빌드**: [플러그인](/docs/ko/plugins)을 참조하여 skills, agents 및 hooks를 만듭니다.

650* **마켓플레이스 만들기**: [플러그인 마켓플레이스 만들기](/docs/ko/plugin-marketplaces)를 참조하여 팀 또는 커뮤니티에 플러그인을 배포합니다.

651* **기술 참조**: [플러그인 참조](/docs/ko/plugins-reference)를 참조하여 완전한 사양을 확인합니다.

env-vars.md +339 −337

Details

114 114 

115설정 파일에서 변수를 설정할 수 있지만 제거할 수는 없습니다. 제어하지 않는 셸 프로필에서 내보낸 `CLAUDE_CODE_USE_VERTEX`와 같이 설정 해제할 수 없는 변수를 재정의하려면, `env` 블록에서 빈 문자열로 설정하십시오: `"CLAUDE_CODE_USE_VERTEX": ""`. Claude Code는 빈 값을 공급자 선택을 위해 설정 해제된 것으로 취급합니다. 하위 프로세스는 여전히 빈 값을 상속합니다.115설정 파일에서 변수를 설정할 수 있지만 제거할 수는 없습니다. 제어하지 않는 셸 프로필에서 내보낸 `CLAUDE_CODE_USE_VERTEX`와 같이 설정 해제할 수 없는 변수를 재정의하려면, `env` 블록에서 빈 문자열로 설정하십시오: `"CLAUDE_CODE_USE_VERTEX": ""`. Claude Code는 빈 값을 공급자 선택을 위해 설정 해제된 것으로 취급합니다. 하위 프로세스는 여전히 빈 값을 상속합니다.

116 116 

117설정 파일 간에 `env` 값은 [설정 우선순위](/docs/ko/settings#settings-precedence)를 따르므로, 관리되는 설정 항목이 사용자 또는 프로젝트 설정의 동일한 변수를 재정의합니다.117설정 파일 간에 `env` 값은 [설정 우선순위](/docs/ko/settings#settings-precedence)를 따르므로, 관리되는 설정 항목이 사용자 또는 프로젝트 설정의 동일한 변수를 재정의합니다. 프로젝트 및 로컬 설정은 `CLAUDE_CONFIG_DIR` 및 OpenTelemetry 내보내기 변수와 같은 일부 변수를 설정할 수 없습니다. [`env`에서 Claude Code가 무시하는 변수](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)는 이들을 나열하며, 여전히 적용되는 OpenTelemetry 끄기 값도 나열합니다.

118 118 

119환경 변수가 CLI 플래그 및 세션 내 명령과 상호 작용하는 방식은 기능마다 다릅니다: `--model`과 `/model`은 `ANTHROPIC_MODEL`을 재정의하고, `CLAUDE_CODE_EFFORT_LEVEL`은 `--effort`와 `/effort`를 재정의합니다. 변수가 다른 구성 소스와 상호 작용할 때, [변수](#variables) 목록의 해당 행은 우선순위를 나타내거나 이를 문서화하는 페이지로 연결됩니다.119환경 변수가 CLI 플래그 및 세션 내 명령과 상호 작용하는 방식은 기능마다 다릅니다: `--model`과 `/model`은 `ANTHROPIC_MODEL`을 재정의하고, `CLAUDE_CODE_EFFORT_LEVEL`은 `--effort`와 `/effort`를 재정의합니다. 변수가 다른 구성 소스와 상호 작용할 때, [변수](#variables) 목록의 해당 행은 우선순위를 나타내거나 이를 문서화하는 페이지로 연결됩니다.

120 120 


124 변수124 변수

125</h2>125</h2>

126 126 

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

128 128 

129<Note>129<Note>

130 동작을 켜거나 끄는 변수의 경우, `1` 또는 `true`를 설정하여 켜고 `0` 또는 `false`를 설정하여 끕니다. 대소문자는 상관없습니다.130 동작을 켜거나 끄는 변수의 경우, `1` 또는 `true`를 설정하여 켜고 `0` 또는 `false`를 설정하여 끕니다. 대소문자는 상관없습니다.


138 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`138 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`

139 * `IS_DEMO`139 * `IS_DEMO`

140 140 

141 다른 하나의 변수는 자체 규칙을 가집니다: `FORCE_HYPERLINK`는 숫자를 읽으므로 `0`만 끕니다. 각 변수의 행도 자체 규칙을 명시합니다.141 다른 하나의 변수는 자체 규칙을 가집니다: `FORCE_HYPERLINK`는 숫자를 읽으므로 `0`만 끕니다. 각 변수의 행에도 자체 규칙이 명시되어 있습니다.

142</Note>142</Note>

143 143 

144| 변수 | 목적 |144| 변수 | 목적 |

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | `fable` 별칭이 확인되는 모델 ID이며, Claude Code가 타사 제공자에서 [자동 모델 폴백](/docs/ko/model-config#automatic-model-fallback)을 위해 Fable 모델로 인식하는 ID입니다. [모델 구성](/docs/ko/model-config#environment-variables)을 참조하세요 |162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | `fable` 별칭이 확인되는 모델 ID이며, Claude Code가 타사 공급자에서 [자동 모델 폴백](/docs/ko/model-config#automatic-model-fallback)을 위해 Fable 모델로 인식하는 ID입니다. [모델 구성](/docs/ko/model-config#environment-variables)을 참조하세요 |

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

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

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

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

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

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

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

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

171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | `opus` 별칭이 확인되는 모델 ID이며, Plan Mode가 활성화되어 있을 때 `opusplan`이 사용하는 ID입니다. [모델 구성](/docs/ko/model-config#environment-variables)을 참조하세요 |171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | `opus` 별칭이 확인되는 모델 ID이며, Plan Mode가 활성화되어 있을 때 `opusplan`이 사용하는 ID입니다. [모델 구성](/docs/ko/model-config#environment-variables)을 참조하세요 |

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

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

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

175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | `sonnet` 별칭이 확인되는 모델 ID이며, Plan Mode가 활성화되지 않았을 때 `opusplan`이 사용하는 ID입니다. [모델 구성](/docs/ko/model-config#environment-variables)을 참조하세요 |175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | `sonnet` 별칭이 확인되는 모델 ID이며, Plan Mode가 활성화되지 않았을 때 `opusplan`이 사용하는 ID입니다. [모델 구성](/docs/ko/model-config#environment-variables)을 참조하세요 |

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

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

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

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

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

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

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

183| `ANTHROPIC_FOUNDRY_RESOURCE` | Microsoft Foundry 리소스 이름입니다(예: `my-resource`). `ANTHROPIC_FOUNDRY_BASE_URL`이 설정되지 않은 경우 필수입니다([Microsoft Foundry](/docs/ko/microsoft-foundry) 참조) |183| `ANTHROPIC_FOUNDRY_RESOURCE` | Microsoft Foundry 리소스 이름입니다(예: `my-resource`). `ANTHROPIC_FOUNDRY_BASE_URL`이 설정되지 않은 경우 필수입니다([Microsoft Foundry](/docs/ko/microsoft-foundry) 참조) |

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

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

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

187| `ANTHROPIC_SMALL_FAST_MODEL` | \[더 이상 사용되지 않음] [백그라운드 작업용 Haiku 클래스 모델](/docs/ko/costs)의 이름입니다 |187| `ANTHROPIC_SMALL_FAST_MODEL` | \[더 이상 사용되지 않음] [배경 작업용 Haiku 클래스 모델](/docs/ko/costs)의 이름입니다 |

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

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

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

191| `ANTHROPIC_WORKSPACE_ID` | [워크로드 ID 페더레이션](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)의 워크스페이스 ID입니다. 페더레이션 규칙이 둘 이상의 워크스페이스로 범위가 지정된 경우 설정하여 토큰 교환이 어느 워크스페이스를 대상으로 할지 알 수 있도록 합니다 |191| `ANTHROPIC_WORKSPACE_ID` | [워크로드 ID 페더레이션](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)의 워크스페이스 ID입니다. 페더레이션 규칙이 둘 이상의 워크스페이스로 범위가 지정된 경우 설정하여 토큰 교환이 어느 워크스페이스를 대상으로 할지 알 수 있도록 합니다 |

192| `API_FORCE_IDLE_TIMEOUT` | 바이트가 도착하지 않을 때 스트리밍 모델 응답을 중단하는 5분 본문 유휴 타임아웃을 재정의합니다. 느린 [게이트웨이](/docs/ko/llm-gateway) 또는 로컬 모델이 청크 사이에 5분 이상 일시 중지되는 경우 `0`으로 설정하여 타임아웃을 끕니다. 또는 모든 제공자에 대해 켜두려면 `1`로 설정합니다. 설정하지 않으면 타임아웃이 직접 Anthropic API 및 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 이외의 제공자에서 활성화됩니다. [스트림 감시견](/docs/ko/network-config#streaming-idle-watchdogs)은 독립적으로 실행되며 여기서 `0`을 설정해도 긴 침묵을 중단합니다 |192| `API_FORCE_IDLE_TIMEOUT` | 스트리밍 모델 응답이 도착하는 바이트가 없을 때 중단하는 5분 본문 유휴 타임아웃을 재정의합니다. 느린 [게이트웨이](/docs/ko/llm-gateway) 또는 로컬 모델이 청크 사이에 5분 이상 일시 중지되는 경우 `0`으로 설정하여 타임아웃을 끕니다. 또는 모든 공급자에 대해 켜려면 `1`로 설정합니다. 설정하지 않으면 직접 Anthropic API 및 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 이외의 공급자에서 타임아웃이 활성화됩니다. [스트림 감시견](/docs/ko/network-config#streaming-idle-watchdogs)은 독립적으로 실행되며 여기서 `0`을 설정해도 긴 침묵을 중단합니다 |

193| `API_TIMEOUT_MS` | API 요청의 타임아웃(밀리초)(기본값: 600000 또는 10분, 최대값: 2147483647). 느린 네트워크에서 요청이 타임아웃되거나 프록시를 통해 라우팅할 때 이를 증가시킵니다. 최대값 이상의 값은 기본 타이머를 오버플로우하여 요청이 즉시 실패합니다 |193| `API_TIMEOUT_MS` | API 요청의 타임아웃(밀리초 단위)(기본값: 600000, 또는 10분; 최대: 2147483647)입니다. 느린 네트워크에서 요청이 타임아웃되거나 프록시를 통해 라우팅할 때 이를 증가시킵니다. 최대값을 초과하는 값은 기본 타이머를 오버플로우하여 요청이 즉시 실패합니다 |

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

195| `BASH_DEFAULT_TIMEOUT_MS` | 장시간 실행되는 bash 명령의 기본 타임아웃입니다(기본값: 120000 또는 2분) |195| `BASH_DEFAULT_TIMEOUT_MS` | 장시간 실행되는 bash 명령의 기본 타임아웃입니다(기본값: 120000, 또는 2분) |

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

197| `BASH_MAX_TIMEOUT_MS` | 모델이 장시간 실행되는 bash 명령에 대해 설정할 수 있는 최대 타임아웃입니다(기본값: 600000 또는 10분). 유효한 상한은 이것과 `BASH_DEFAULT_TIMEOUT_MS` 중 더 큰 값입니다 |197| `BASH_MAX_TIMEOUT_MS` | 모델이 장시간 실행되는 bash 명령에 대해 설정할 수 있는 최대 타임아웃입니다(기본값: 600000, 또는 10분). 유효한 상한은 이것과 `BASH_DEFAULT_TIMEOUT_MS` 중 더 큰 값입니다 |

198| `BETA_TRACING_ENDPOINT` | [상세 베타 추적](/docs/ko/monitoring-usage#traces-beta)용 OTLP 엔드포인트입니다: `ENABLE_BETA_TRACING_DETAILED=1`을 사용하면 로그와 추적이 구성된 내보내기 대신 여기로 이동합니다. 셸, 사용자 설정 또는 관리 설정에서 설정하세요. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |198| `BETA_TRACING_ENDPOINT` | [상세 베타 추적](/docs/ko/monitoring-usage#traces-beta)용 OTLP 엔드포인트입니다. `ENABLE_BETA_TRACING_DETAILED=1`을 사용하면 로그와 추적이 구성된 내보내기 대신 여기로 이동합니다. 셸, 사용자 설정 또는 관리 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |

199| `CCR_FORCE_BUNDLE` | [`claude --cloud`](/docs/ko/claude-code-on-the-web#send-local-repositories-without-github)가 원격에서 복제하는 대신 로컬 리포지토리를 번들로 묶고 업로드하도록 강제하려면 `1`로 설정하세요 |199| `CCR_FORCE_BUNDLE` | [`claude --cloud`](/docs/ko/claude-code-on-the-web#send-local-repositories-without-github)가 원격에서 복제하는 대신 로컬 리포지토리를 번들로 묶고 업로드하도록 강제하려면 `1`로 설정합니다 |

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

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

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

203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | 모든 기본 제공 [서브에이전트](/docs/ko/sub-agents) 유형(예: Explore 및 Plan)을 비활성화하려면 `1`로 설정하세요. 비대화형 모드(`-p` 플래그)에만 적용됩니다. SDK 사용자가 백지 상태를 원할 때 유용합니다. 이는 또한 `general-purpose`를 제거합니다. 이는 Agent 도구 호출이 `subagent_type`을 생략할 때 Claude Code가 실행하는 서브에이전트입니다. 그러한 호출은 [`subagent_type is required`](/docs/ko/errors#subagent-type-is-required)로 실패합니다 |203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | 모든 기본 제공 [서브에이전트](/docs/ko/sub-agents) 유형(예: Explore 및 Plan)을 비활성화하려면 `1`로 설정합니다. 비대화형 모드(`-p` 플래그)에만 적용됩니다. SDK 사용자가 백지 상태를 원할 때 유용합니다. 이는 또한 `general-purpose`를 제거합니다. 이는 Agent 도구 호출이 `subagent_type`을 생략할 때 Claude Code가 실행하는 서브에이전트입니다. 그러한 호출은 [`subagent_type is required`](/docs/ko/errors#subagent-type-is-required)로 실패합니다 |

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

205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | 서브에이전트의 밀리초 단위 정지 타임아웃입니다. 기본값 `600000`(10분). `CLAUDE_STREAM_IDLE_TIMEOUT_MS`를 스트림 감시견이 켜져 있을 때 올리면 기본값이 함께 올라갑니다. [느리거나 정지된 API 응답 처리](/docs/ko/agent-sdk/typescript#handle-slow-or-stalled-api-responses)에서 설명합니다. 타이머는 각 스트리밍 진행 이벤트에서 재설정됩니다. 창 내에 진행이 도착하지 않으면 Claude Code가 서브에이전트를 중단하고 정지를 부모에 보고합니다 |205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | 서브에이전트의 정지 타임아웃(밀리초 단위)입니다. 기본값 `600000`(10분); `CLAUDE_STREAM_IDLE_TIMEOUT_MS`를 스트림 감시견이 켜져 있는 동안 올리면 기본값이 함께 올라갑니다. [느리거나 정지된 API 응답 처리](/docs/ko/agent-sdk/typescript#handle-slow-or-stalled-api-responses)에서 설명합니다. 타이머는 각 스트리밍 진행 이벤트에서 재설정됩니다. 창 내에 진행이 도착하지 않으면 Claude Code가 서브에이전트를 중단하고 정지를 부모에 보고합니다 |

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

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

208| `CLAUDE_AX_PREPARK_MS` | [화면 판독기 모드](/docs/ko/accessibility#what-your-screen-reader-hears)에서 Claude Code가 커서를 줄의 시작에 두고 새 줄이나 변경된 줄을 쓰기 전에 대기하는 밀리초입니다. 기본값 `50`. 즉시 쓰려면 `0`으로 설정하세요. Claude Code는 대기를 `5000`으로 제한합니다. Claude Code v2.1.233 이상이 필요합니다 |208| `CLAUDE_AX_PREPARK_MS` | [화면 판독기 모드](/docs/ko/accessibility#what-your-screen-reader-hears)에서 Claude Code가 커서를 줄의 시작 부분에 두고 새 줄이나 변경된 줄을 쓰기 전에 대기하는 밀리초 수입니다. 기본값 `50`. 즉시 쓰려면 `0`으로 설정합니다. Claude Code는 대기를 `5000`으로 제한합니다. Claude Code v2.1.233 이상이 필요합니다 |

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

210| `CLAUDE_AX_STARTUP_QUIET_MS` | [화면 판독기 모드](/docs/ko/accessibility)에서 시작 확인 줄 이후 첫 번째 인터페이스 렌더링을 Claude Code가 유지하는 밀리초입니다. 화면 판독기가 새 출력이 중단되기 전에 줄을 완전히 말할 수 있도록 합니다. 기본값 `3000`. 즉시 렌더링하려면 `0`으로 설정하세요. Claude Code는 보류를 `600000`(10분)으로 제한합니다. 첫 번째 키 입력이 보류를 조기에 종료합니다. Claude Code v2.1.217 이상이 필요합니다 |210| `CLAUDE_AX_STARTUP_QUIET_MS` | [화면 판독기 모드](/docs/ko/accessibility)에서 Claude Code가 시작 확인 줄 후 첫 번째 인터페이스 렌더링을 유지하는 밀리초 수입니다. 새 출력이 이를 중단하기 전에 화면 판독기가 줄을 완전히 말할 수 있도록 합니다. 기본값 `3000`. 즉시 렌더링하려면 `0`으로 설정합니다. Claude Code는 보류를 `600000`(10분)으로 제한합니다. 첫 번째 키 입력이 보류를 조기에 종료합니다. Claude Code v2.1.217 이상이 필요합니다 |

211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | 주 세션의 각 Bash 또는 PowerShell 명령 후 원래 작업 디렉토리로 돌아갑니다 |211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | 주 세션의 각 Bash 또는 PowerShell 명령 후 원래 작업 디렉토리로 돌아갑니다 |

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

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

214| `CLAUDE_CODE_ACCESSIBILITY` | 기본 터미널 커서를 표시하고 반전된 텍스트 커서 표시기를 비활성화하려면 `1`로 설정하세요. macOS Zoom 같은 화면 확대기가 커서 위치를 추적할 수 있습니다 |214| `CLAUDE_CODE_ACCESSIBILITY` | 기본 터미널 커서를 표시하고 반전된 텍스트 커서 표시기를 비활성화하려면 `1`로 설정합니다. macOS Zoom 같은 화면 확대기가 커서 위치를 추적할 수 있습니다 |

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

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

217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Claude Code가 모델 ID를 노력 가능으로 인식하지 않더라도 모든 요청과 함께 [노력](/docs/ko/model-config#adjust-effort-level) 매개변수를 전송하려면 `1`로 설정하세요. [LLM 게이트웨이](/docs/ko/llm-gateway) 또는 사용자 정의 식별자로 모델을 제공하는 타사 제공자를 통해 라우팅할 때 사용합니다. Claude 3 모델, Sonnet 4.0 및 4.5, Opus 4.0 및 4.1, Haiku 4.5를 포함하여 API에서 노력 매개변수를 거부하는 모델은 요청이 실패하지 않도록 제외됩니다 |217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | [노력](/docs/ko/model-config#adjust-effort-level) 매개변수를 Claude Code가 모델 ID를 노력 가능으로 인식하지 않더라도 모든 요청과 함께 전송하려면 `1`로 설정합니다. [LLM 게이트웨이](/docs/ko/llm-gateway) 또는 사용자 정의 식별자로 모델을 제공하는 타사 공급자를 통해 라우팅할 때 사용합니다. Claude 3 모델, Sonnet 4.0 및 4.5, Opus 4.0 및 4.1, Haiku 4.5를 포함하여 API에서 노력 매개변수를 거부하는 모델은 요청이 실패하지 않도록 제외됩니다 |

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

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

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

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

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

223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | `CLAUDE_AUTO_BACKGROUND_TASKS`가 활성화되면 Claude에 여전히 실행 중인 [백그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)를 확인하도록 상기시키는 간격(초)입니다. `1`에서 `86400`까지의 일반 정수만 허용합니다. 다른 값이나 표기법은 설정 해제로 읽힙니다. 설정하지 않으면 체크인 알림이 없습니다. Claude Code v2.1.248 이상이 필요합니다 |223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | `CLAUDE_AUTO_BACKGROUND_TASKS`가 활성화되면 Claude에 [백그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)가 여전히 실행 중인지 확인하도록 상기시키는 간격(초 단위)입니다. `1`에서 `86400` 사이의 일반 정수만 허용합니다. 다른 값이나 표기법은 설정 해제로 읽힙니다. 설정하지 않으면 체크인 알림이 없습니다. Claude Code v2.1.248 이상이 필요합니다 |

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

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

226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Claude Code가 서버에 [자동 모드 작업을 검토](/docs/ko/permission-modes#server-side-classifier-review)하도록 요청할지 여부를 제어합니다. 설정하지 않으면 Claude Code는 Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 및 Claude Platform on AWS에서 서버에 요청하고 `ANTHROPIC_BASE_URL`이 LLM 게이트웨이 또는 프록시를 가리킬 때 요청합니다. Claude Code의 자체 분류기 요청을 대신 사용하려면 `0`으로 설정하세요. Anthropic API에 대한 직접 연결에서는 읽지 않습니다. Claude Code v2.1.271 이상이 필요합니다. 기본적으로 서버에 요청하려면 v2.1.278 이상이 필요합니다 |226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Claude Code가 서버에 [자동 모드 작업을 검토](/docs/ko/permission-modes#server-side-classifier-review)하도록 요청할지 여부를 제어합니다. Claude Code의 자체 분류기 요청을 대신 사용하려면 `0`으로 설정합니다. Anthropic API에 대한 직접 연결에서는 v2.1.281 이상이 필요합니다. 연결된 섹션은 변수가 설정 해제되었을 때 서버를 요청하는 세션과 어느 버전부터인지를 나열합니다. Claude Code v2.1.271 이상이 필요합니다 |

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

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

229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | 백그라운드 작업이 여전히 실행 중인 경우에도 비대화형 세션이 모든 턴 끝에서 유휴 상태를 호스트에 보고하도록 하려면 `0`으로 설정하세요. 기본적으로 세션은 백그라운드 에이전트 또는 [워크플로우](/docs/ko/workflows) 실행 같은 백그라운드 작업이 여전히 활성화되어 있는 동안 턴 끝을 지나 실행 상태를 계속 보고합니다. 이는 세션 목록을 보는 호스트가 Claude가 작업 중간에 입력을 기다리고 있다고 발표하는 것을 방지합니다. 백그라운드 셸 명령(예: 개발 서버)은 실행 상태를 유지하지 않습니다. 실행 상태 기본값 및 `0` 옵트아웃은 Claude Code v2.1.269 이상이 필요합니다. 이전 버전에서는 `1`을 설정하여 실행 상태를 유지하세요 |229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | 백그라운드 작업이 여전히 실행 중인 동안에도 비대화형 세션이 모든 턴 끝에서 호스트에 유휴 상태를 보고하도록 하려면 `0`으로 설정합니다. 기본적으로 세션은 백그라운드 에이전트나 [워크플로우](/docs/ko/workflows) 실행 같은 백그라운드 작업이 여전히 활성화되어 있는 동안 턴 끝을 지나 실행 상태를 계속 보고합니다. 이는 세션 목록 같은 상태를 감시하는 호스트가 Claude가 작업 중간에 입력을 기다리고 있다고 발표하는 것을 방지합니다. 백그라운드 셸 명령 같은 개발 서버는 실행 상태를 유지하지 않습니다. 실행 상태 기본값과 `0` 옵트아웃에는 Claude Code v2.1.269 이상이 필요합니다. 이전 버전에서는 `1`을 설정하여 실행 상태를 유지하고 변수를 설정 해제하는 것이 유일한 방법이었습니다 |

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

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

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

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

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

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

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

237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | v2.1.186에서 제거되었으며 이제 작동하지 않습니다. 이전에는 스트리밍 API 요청의 연결, TLS 및 응답 헤더 단계에 대한 별도의 타임아웃을 설정했습니다. 요청당 타임아웃은 `API_TIMEOUT_MS`를 사용하세요. 스트리밍 요청의 응답 헤더 단계는 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`를 참조하세요 |237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | v2.1.186에서 제거되었으며 이제 작동하지 않습니다. 이전에는 스트리밍 API 요청의 연결, TLS, 응답 헤더 단계에 대해 별도의 타임아웃을 설정했습니다. 요청당 타임아웃에는 `API_TIMEOUT_MS`를 사용하세요. 스트리밍 요청의 응답 헤더 단계에는 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`를 참조하세요 |

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

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

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

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

242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Claude Code가 [관리 설정](/docs/ko/managed-settings#precedence-within-the-managed-tier) `env` 블록을 관리 소스 전체에서 키별로 병합하지 않도록 하려면 `1`로 설정하세요. v2.1.223 이전처럼 최고 우선순위 소스의 전체 `env` 블록만 적용됩니다. Claude Code를 시작하는 환경에서 설정하세요. Claude Code는 설정 파일 `env` 블록을 통해 전달된 복사본을 무시합니다. Claude Code v2.1.223 이상이 필요합니다 |242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Claude Code가 [관리 설정](/docs/ko/managed-settings#precedence-within-the-managed-tier) `env` 블록을 키별로 병합하지 않도록 하려면 `1`로 설정합니다. v2.1.223 이전처럼 최고 우선순위 소스의 전체 `env` 블록만 적용됩니다. Claude Code를 시작하는 환경에서 설정합니다. Claude Code는 설정 `env` 블록을 통해 전달된 복사본을 무시합니다. Claude Code v2.1.223 이상이 필요합니다 |

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

244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | [백그라운드 에이전트 및 에이전트 보기](/docs/ko/agent-view)를 끄려면 `1`로 설정하세요: `claude agents`, `--bg`, `/background` 및 온디맨드 감독자. [`disableAgentView`](/docs/ko/settings-reference#disableagentview) 설정과 동일합니다 |244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | [백그라운드 에이전트 및 에이전트 보기](/docs/ko/agent-view)를 끄려면 `1`로 설정합니다. `claude agents`, `--bg`, `/background`, 온디맨드 감독자를 사용할 수 없게 됩니다. [`disableAgentView`](/docs/ko/settings-reference#disableagentview) 설정과 동일합니다 |

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

246| `CLAUDE_CODE_DISABLE_ARTIFACT` | [아티팩트](/docs/ko/artifacts) 도구를 끄려면 `1`로 설정하세요. 이는 세션 출력을 claude.ai의 비공개 웹 페이지로 게시합니다. 설정하면 설정 파일이 도구를 다시 켤 수 없습니다. 설정 파일에서 도구를 끄려면 [`enableArtifact`](/docs/ko/settings-reference#enableartifact)를 `false`로 설정하세요. 더 이상 사용되지 않는 [`disableArtifact`](/docs/ko/settings-reference#disableartifact) 키도 도구를 끕니다 |246| `CLAUDE_CODE_DISABLE_ARTIFACT` | [아티팩트](/docs/ko/artifacts) 도구를 끄려면 `1`로 설정합니다. 이는 claude.ai에서 세션 출력을 비공개 웹 페이지로 게시합니다. 설정하면 설정 파일이 도구를 다시 켤 수 없습니다. 설정 파일에서 도구를 끄려면 [`enableArtifact`](/docs/ko/settings-reference#enableartifact)를 `false`로 설정하세요. 더 이상 사용되지 않는 [`disableArtifact`](/docs/ko/settings-reference#disableartifact) 키도 도구를 끕니다 |

247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 첨부 파일 처리를 비활성화하려면 `1`로 설정하세요. `@` 구문이 있는 파일 언급은 파일 내용으로 확장되지 않고 일반 텍스트로 전송됩니다 |247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 첨부 파일 처리를 비활성화하려면 `1`로 설정합니다. `@` 구문이 있는 파일 언급은 파일 내용으로 확장되지 않고 일반 텍스트로 전송됩니다 |

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

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

250| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Claude Code가 [Amazon Bedrock](/docs/ko/amazon-bedrock) 스트리밍 응답을 누락되거나 빈 `Content-Type` 헤더가 있는 Amazon Bedrock의 이진 이벤트 스트림으로 처리하지 않도록 하려면 `1`로 설정하세요. 기본적으로 Claude Code는 게이트웨이가 그렇지 않으면 수정되지 않은 응답에서 헤더를 삭제했다고 가정하므로 본문을 디코딩하고 스트리밍이 계속 작동합니다. 게이트웨이가 스트림을 서버 전송 이벤트로 다시 내보내는 경우에만 설정하세요. Claude Code는 헤더 없는 본문을 서버 전송 이벤트로 읽습니다. Claude Code v2.1.239 이상이 필요합니다 |250| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Claude Code가 [Amazon Bedrock](/docs/ko/amazon-bedrock) 스트리밍 응답을 누락되거나 빈 `Content-Type` 헤더가 있는 Amazon Bedrock의 이진 이벤트 스트림으로 처리하지 않도록 하려면 `1`로 설정합니다. 기본적으로 Claude Code는 게이트웨이가 그렇지 않으면 수정되지 않은 응답에서 헤더를 삭제했다고 가정하므로 본문을 디코드하고 스트리밍이 계속 작동합니다. 게이트웨이가 스트림을 서버 전송 이벤트로 다시 내보내는 경우에만 설정합니다. Claude Code는 헤더 없는 본문을 서버 전송 이벤트로 읽습니다. Claude Code v2.1.239 이상이 필요합니다 |

251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | [Amazon Bedrock](/docs/ko/amazon-bedrock) 스트리밍 응답이 `application/vnd.amazon.eventstream` 콘텐츠 유형을 전달하는지 확인하는 것을 건너뛰려면 `1`로 설정하세요. 이 변수가 없으면 응답이 다른 콘텐츠 유형을 전달할 때 Claude Code는 해당 유형을 명명하는 오류로 요청을 실패합니다. 이는 [게이트웨이 또는 프록시가 응답을 변환](/docs/ko/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)하고 있음을 의미합니다. 이 변수를 설정하는 대신 게이트웨이를 구성하여 `Content-Type` 헤더와 본문을 수정되지 않은 상태로 전달하세요. Claude Code v2.1.208 이상이 필요합니다 |251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | [Amazon Bedrock](/docs/ko/amazon-bedrock) 스트리밍 응답이 `application/vnd.amazon.eventstream` 콘텐츠 유형을 전달하는지 확인하는 검사를 건너뛰려면 `1`로 설정합니다. 이 변수가 없으면 응답이 다른 콘텐츠 유형을 전달할 때 Claude Code는 해당 유형을 명명하는 오류로 요청을 실패합니다. 이는 [게이트웨이 또는 프록시가 응답을 변환](/docs/ko/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)하고 있음을 의미합니다. 이 변수를 설정하는 대신 게이트웨이를 구성하여 `Content-Type` 헤더와 본문을 수정되지 않은 상태로 전달합니다. Claude Code v2.1.208 이상이 필요합니다 |

252| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | [백그라운드 세션](/docs/ko/agent-view)의 실행 중인 백그라운드 셸 명령, 동적 워크플로우, 및 v2.1.198부터 백그라운드 서브에이전트가 [감독자](/docs/ko/agent-view#the-supervisor-process)가 해당 세션의 프로세스를 중지, 재시작 또는 업데이트할 때 다음 프로세스로 전달되지 않도록 하려면 `1`로 설정하세요. 이 전달에만 영향을 줍니다: `←` 또는 [`/background`](/docs/ko/agent-view#from-inside-a-session)로 세션을 백그라운드 처리하면 여전히 진행 중인 작업을 전달하고, `CLAUDE_DISABLE_ADOPT`는 둘 다 끕니다. Claude Code v2.1.196 이상이 필요합니다 |252| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | [백그라운드 세션](/docs/ko/agent-view)의 실행 중인 백그라운드 셸 명령, 동적 워크플로우, v2.1.198부터 백그라운드 서브에이전트가 [감독자](/docs/ko/agent-view#the-supervisor-process)가 중지, 재시작 또는 해당 세션의 프로세스를 업데이트할 때 중지되도록 하려면 `1`로 설정합니다. 이 핸드오프에만 영향을 줍니다. `←` 또는 [`/background`](/docs/ko/agent-view#from-inside-a-session)로 세션을 백그라운드 처리하면 여전히 진행 중인 작업을 전달하고, `CLAUDE_DISABLE_ADOPT`는 둘 다 끕니다. Claude Code v2.1.196 이상이 필요합니다 |

253| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | 운영 체제가 메모리 압력을 보고할 때 Claude Code가 [백그라운드 셸 명령](/docs/ko/interactive-mode#background-bash-commands)을 종료하지 않도록 하려면 `1`로 설정하세요. 기본적으로 macOS 및 Linux에서 Claude Code는 세션이 30분 동안 유휴 상태이고 턴이나 서브에이전트가 실행 중이 아닐 때 메모리 압력 신호에서 주 세션에서 시작된 백그라운드 셸을 종료합니다. Windows에는 메모리 압력 신호가 없으므로 이 변수는 효과가 없습니다. Claude Code v2.1.193 이상이 필요합니다 |253| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | 메모리 압박 상태에서 [백그라운드 셸 명령](/docs/ko/interactive-mode#background-bash-commands)을 종료하지 않도록 Claude Code를 중지하려면 `1`로 설정합니다. 기본적으로 macOS 및 Linux에서 운영 체제가 중요한 메모리 압박을 보고하고 세션이 30분 동안 유휴 상태이며 턴이나 서브에이전트가 실행 중이 아닐 때 Claude Code가 백그라운드 셸을 종료합니다. Windows에는 메모리 압박 신호가 없으므로 이 변수는 효과가 없습니다. Claude Code v2.1.193 이상이 필요합니다 |

254| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Claude Code에 포함된 [기술](/docs/ko/skills) 및 워크플로우를 비활성화하려면 `1`로 설정하세요: 번들 기술 및 워크플로우는 완전히 제거되고, `/init` 같은 기본 제공 명령은 입력 가능하지만 모델에서 숨겨집니다. `/doctor`는 기본 제공 명령처럼 입력 가능합니다. `DISABLE_DOCTOR_COMMAND`로 숨기세요. 플러그인, `.claude/skills/` 및 `.claude/commands/`의 기술은 영향을 받지 않습니다. [`disableBundledSkills`](/docs/ko/settings-reference#disablebundledskills) 설정과 동일합니다 |254| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Claude Code에 포함된 [기술](/docs/ko/skills) 및 워크플로우를 비활성화하려면 `1`로 설정합니다. 번들 기술 및 워크플로우는 완전히 제거되지만 `/init` 같은 기본 제공 명령은 입력 가능하지만 모델에서 숨겨집니다. `/doctor`는 기본 제공 명령처럼 입력 가능합니다. `DISABLE_DOCTOR_COMMAND`로 숨깁니다. 플러그인, `.claude/skills/`, `.claude/commands/`의 기술은 영향을 받지 않습니다. [`disableBundledSkills`](/docs/ko/settings-reference#disablebundledskills) 설정과 동일합니다 |

255| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Chrome 섹션의 시스템 프롬프트 및 `/claude-in-chrome` [번들 기술](/docs/ko/skills#bundled-skills)을 생략하면서 [Claude in Chrome](/docs/ko/chrome) 브라우저 도구를 사용 가능하게 유지하려면 `1`로 설정하세요. Claude Code를 포함하고 자체 브라우저 지침을 제공하는 호스트용입니다. Claude Code v2.1.257 이상이 필요합니다 |255| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | [Chrome의 Claude](/docs/ko/chrome) 브라우저 도구를 사용 가능하게 유지하면서 시스템 프롬프트의 Chrome 섹션과 `/claude-in-chrome` [번들 기술](/docs/ko/skills#bundled-skills)을 생략하려면 `1`로 설정합니다. Claude Code를 포함하고 자체 브라우저 지침을 제공하는 호스트용입니다. Claude Code v2.1.257 이상이 필요합니다 |

256| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | 사용자, 프로젝트 및 자동 메모리 파일을 포함한 CLAUDE.md 메모리 파일을 컨텍스트에 로드하지 않으려면 `1`로 설정하세요 |256| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | 사용자, 프로젝트, 자동 메모리 파일을 포함한 CLAUDE.md 메모리 파일 로드를 방지하려면 `1`로 설정합니다 |

257| `CLAUDE_CODE_DISABLE_CRON` | [예약된 작업](/docs/ko/scheduled-tasks)을 비활성화하려면 `1`로 설정하세요. `/loop` 기술 및 cron 도구를 사용할 수 없게 되고 이미 예약된 작업은 세션 중간에 실행 중인 작업을 포함하여 실행을 중지합니다 |257| `CLAUDE_CODE_DISABLE_CRON` | [예약된 작업](/docs/ko/scheduled-tasks)을 비활성화하려면 `1`로 설정합니다. `/loop` 기술 및 cron 도구를 사용할 수 없게 되고 이미 예약된 작업은 실행을 중지합니다. 세션 중간에 이미 실행 중인 작업을 포함합니다 |

258| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Anthropic 특정 `anthropic-beta` 요청 헤더 및 베타 도구 스키마 필드(예: `defer_loading` 및 `eager_input_streaming`)를 API 요청에서 제거하려면 `1`로 설정하세요. 프록시 게이트웨이가 "Unexpected value(s) for the `anthropic-beta` header" 또는 "Extra inputs are not permitted" 같은 오류로 요청을 거부할 때 사용합니다. 표준 필드(`name`, `description`, `input_schema`, `cache_control`)는 유지됩니다. [MCP 도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)은 비활성화되고 모든 MCP 도구는 `ENABLE_TOOL_SEARCH`를 설정해도 미리 로드됩니다. Claude Code v2.1.227 이상에서 [관리 설정](/docs/ko/managed-settings)은 도구 검색을 켜두고 있을 수 있습니다. [사전 릴리스 기능 비활성화](/docs/ko/llm-gateway-protocol#disable-pre-release-capabilities)에서 재정의가 적용되는 위치를 확인하세요 |258| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Anthropic 특정 `anthropic-beta` 요청 헤더 및 베타 도구 스키마 필드(예: `defer_loading` 및 `eager_input_streaming`)를 API 요청에서 제거하려면 `1`로 설정합니다. 프록시 게이트웨이가 "Unexpected value(s) for the `anthropic-beta` header" 또는 "Extra inputs are not permitted" 같은 오류로 요청을 거부할 때 사용합니다. 표준 필드(`name`, `description`, `input_schema`, `cache_control`)는 유지됩니다. [MCP 도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)은 비활성화되고 모든 MCP 도구는 미리 로드됩니다. 도구 검색이 설정되어 있어도 마찬가지입니다. Claude Code v2.1.227 이상에서는 [관리 설정](/docs/ko/managed-settings)이 도구 검색을 켜진 상태로 유지할 수 있습니다. [사전 릴리스 기능 비활성화](/docs/ko/llm-gateway-protocol#disable-pre-release-capabilities)는 재정의가 적용되는 위치를 다룹니다 |

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

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

261| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | "Claude가 어떻게 하고 있나요?" 세션 품질 설문조사를 비활성화하려면 `1`로 설정하세요. `DISABLE_TELEMETRY`, `DO_NOT_TRACK` 또는 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정되면 설문조사도 비활성화됩니다. `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`이 다시 옵트인하지 않는 한. 완전히 비활성화하는 대신 샘플 레이트를 설정하려면 [`feedbackSurveyRate`](/docs/ko/settings-reference#feedbacksurveyrate) 설정을 사용하세요. [세션 품질 설문조사](/docs/ko/data-usage#session-quality-surveys)를 참조하세요 |261| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | "Claude가 어떻게 하고 있나요?" 세션 품질 설문조사를 비활성화하려면 `1`로 설정합니다. `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, 또는 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정되면 설문조사도 비활성화됩니다. `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`이 다시 옵트인하지 않는 한입니다. 완전히 비활성화하는 대신 샘플 속도를 설정하려면 [`feedbackSurveyRate`](/docs/ko/settings-reference#feedbacksurveyrate) 설정을 사용합니다. [세션 품질 설문조사](/docs/ko/data-usage#session-quality-surveys)를 참조하세요 |

262| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | 파일 [체크포인팅](/docs/ko/checkpointing)을 비활성화하려면 `1`로 설정하세요. `/rewind` 명령이 코드 변경을 복원할 수 없습니다. [`fileCheckpointingEnabled`](/docs/ko/settings-reference#filecheckpointingenabled) 설정을 재정의합니다 |262| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | 파일 [체크포인팅](/docs/ko/checkpointing)을 비활성화하려면 `1`로 설정합니다. `/rewind` 명령이 코드 변경을 복원할 수 없습니다. [`fileCheckpointingEnabled`](/docs/ko/settings-reference#filecheckpointingenabled) 설정을 재정의합니다 |

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

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

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

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

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

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

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

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

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

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

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

274| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 대화 컨텍스트를 기반으로 자동 터미널 제목 업데이트를 비활성화하려면 `1`로 설정하세요. 또한 [세션 제목을 생성하는](/docs/ko/sessions#name-your-sessions) 백그라운드 소형/빠른 모델 요청을 건너뜁니다 |274| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 대화 컨텍스트를 기반으로 자동 터미널 제목 업데이트를 비활성화하려면 `1`로 설정합니다. 또한 [세션 제목을 생성](/docs/ko/sessions#name-your-sessions)하는 백그라운드 소형/빠른 모델 요청을 건너뜁니다 |

275| `CLAUDE_CODE_DISABLE_THINKING` | API 요청에서 `thinking` 매개변수를 완전히 생략하려면 `1`로 설정하세요. 이는 매개변수를 거부하는 프록시 및 게이트웨이의 호환성 옵션입니다. 기본적으로 생각하는 모델에서 매개변수를 생략하면 모델이 여전히 생각할 수 있습니다. Anthropic API에서 [확장 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)를 명시적으로 비활성화하려면 `MAX_THINKING_TOKENS=0`을 대신 사용하세요. 어느 변수도 Opus 5.5 또는 Fable 모델에서 사고를 끄지 않습니다. 이들은 사고를 끌 수 없습니다. [타사 제공자](/docs/ko/third-party-integrations)에서 `MAX_THINKING_TOKENS=0`은 마찬가지로 매개변수를 생략하므로 두 변수는 동일하게 작동합니다 |275| `CLAUDE_CODE_DISABLE_THINKING` | API 요청에서 `thinking` 매개변수를 완전히 생략하려면 `1`로 설정합니다. 이는 매개변수를 거부하는 프록시 및 게이트웨이를 위한 호환성 옵션입니다. 기본적으로 생각하는 모델에서 매개변수를 생략하면 모델이 여전히 생각할 수 있습니다. Anthropic API에서 [확장 사고](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)를 명시적으로 비활성화하려면 `MAX_THINKING_TOKENS=0`을 대신 사용합니다. 어느 변수도 Opus 5.5 또는 Fable 모델에서 사고를 끄지 않습니다. 이들은 사고를 끌 수 없습니다. [타사 공급자](/docs/ko/third-party-integrations)에서 `MAX_THINKING_TOKENS=0`은 마찬가지로 매개변수를 생략하므로 두 변수는 동일하게 작동합니다 |

276| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Claude Code가 모델 ID를 인식하지 못할 때(예: [LLM 게이트웨이](/docs/ko/llm-gateway) 별칭) 사전 [자동 압축](/docs/ko/costs#reduce-token-usage)을 건너뛰려면 `1`로 설정하세요. 이 변수가 없으면 Claude Code는 ID에 대해 가정하는 컨텍스트 창에서 압축합니다. `CLAUDE_CODE_MAX_CONTEXT_TOKENS`은 가정된 창을 대신 수정할 수 있습니다. [게이트웨이 또는 사용자 정의 모델 ID의 창 수정](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id)에서 각 변수가 적용되는 시기를 참조하세요. Claude Code v2.1.223 이상이 필요합니다 |276| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Claude Code가 모델 ID를 인식하지 못할 때(예: [LLM 게이트웨이](/docs/ko/llm-gateway) 별칭) 사전 [자동 압축](/docs/ko/costs#reduce-token-usage)을 건너뛰려면 `1`로 설정합니다. 이 변수가 없으면 Claude Code는 ID에 대해 가정하는 컨텍스트 창에서 압축합니다. `CLAUDE_CODE_MAX_CONTEXT_TOKENS`은 대신 가정된 창을 수정할 수 있습니다. [게이트웨이 또는 사용자 정의 모델 ID에 대한 창 수정](/docs/ko/model-config#correct-the-window-for-a-gateway-or-custom-model-id)에서 각 변수가 적용되는 시기를 참조하세요. Claude Code v2.1.223 이상이 필요합니다 |

277| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | [전체 화면 렌더링](/docs/ko/fullscreen)에서 가상 스크롤을 비활성화하고 대화 기록의 모든 메시지를 렌더링하려면 `1`로 설정하세요. 전체 화면 모드에서 스크롤이 메시지가 나타나야 할 위치에 빈 영역을 표시하면 이를 사용하세요 |277| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | [전체 화면 렌더링](/docs/ko/fullscreen)에서 가상 스크롤을 비활성화하고 대화 기록의 모든 메시지를 렌더링하려면 `1`로 설정합니다. 전체 화면 모드에서 스크롤이 메시지가 나타나야 할 위치에 빈 영역을 표시할 때 이를 사용합니다 |

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

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

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

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

282| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | [세션 요약](/docs/ko/interactive-mode#session-recap) 가용성을 재정의합니다. `/config` 토글과 관계없이 요약을 강제로 끄려면 `0`으로 설정하세요. [`awaySummaryEnabled`](/docs/ko/settings-reference#awaysummaryenabled)가 `false`일 때 요약을 강제로 켜려면 `1`로 설정하세요. 설정 및 `/config` 토글보다 우선합니다 |282| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | [세션 요약](/docs/ko/interactive-mode#session-recap) 가용성을 재정의합니다. `/config` 토글에 관계없이 요약을 강제로 끄려면 `0`으로 설정합니다. [`awaySummaryEnabled`](/docs/ko/settings-reference#awaysummaryenabled)가 `false`일 때 요약을 강제로 켜려면 `1`로 설정합니다. 설정 및 `/config` 토글보다 우선합니다 |

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

284| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Anthropic 바운드 비필수 트래픽이 차단될 때 "Claude가 어떻게 하고 있나요?" 세션 품질 설문조사를 자신의 [OpenTelemetry 수집기](/docs/ko/monitoring-usage)로 라우팅하려면 `1`로 설정하세요. 설문조사 등급은 구성된 수집기에 OTEL 이벤트로만 내보내집니다. 이 모드에서는 설문조사 데이터가 Anthropic으로 전송되지 않습니다. `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` 또는 `DO_NOT_TRACK`이 설정되면 적용되고, 그렇지 않으면 효과가 없습니다. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` 및 조직 제품 피드백 정책이 우선합니다 |284| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Anthropic 바운드 비필수 트래픽이 차단될 때 "Claude가 어떻게 하고 있나요?" 세션 품질 설문조사를 자신의 [OpenTelemetry 수집기](/docs/ko/monitoring-usage)로 라우팅하려면 `1`로 설정합니다. 설문조사 등급은 구성된 수집기에 OTEL 이벤트로만 내보내집니다. 이 모드에서는 설문조사 데이터가 Anthropic으로 전송되지 않습니다. `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY`, 또는 `DO_NOT_TRACK`이 설정되었을 때 적용되며, 그렇지 않으면 효과가 없습니다. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` 및 조직 제품 피드백 정책이 우선합니다 |

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

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

287| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | v2.1.142에서 제거되었습니다. [빠른 모드](/docs/ko/fast-mode) 기본값이 Opus 4.6에서 Opus 4.7로 이동했을 때입니다 |287| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | v2.1.142에서 제거되었습니다. [빠른 모드](/docs/ko/fast-mode) 기본값이 Opus 4.6에서 Opus 4.7로 이동했을 때입니다 |

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

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

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

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

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

293| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | [에이전트 팀](/docs/ko/agent-teams)을 활성화하려면 `1`로 설정하세요. 에이전트 팀은 실험적이며 기본적으로 비활성화됩니다 |293| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | [에이전트 팀](/docs/ko/agent-teams)을 활성화하려면 `1`로 설정합니다. 에이전트 팀은 실험적이며 기본적으로 비활성화됩니다 |

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

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

296| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | 다른 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에서는 효과가 없습니다. 이는 이를 재정의하는 중첩 세션 감지가 제거되었을 때입니다 |296| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | 다른 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에서는 효과가 없습니다. 이는 제거된 중첩 세션 감지입니다 |

297| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 터미널이 지원하지만 SSH를 통해 `TERM_PROGRAM`이 전달되지 않은 경우처럼 자동 감지되지 않을 때 Claude의 응답에서 `~~text~~`에 대한 취소선 렌더링을 강제하려면 `1`로 설정하세요. 이것이 없으면 감지되지 않은 터미널은 취소선으로 렌더링하는 대신 리터럴 `~~` 마커를 표시합니다. Claude Code v2.1.186 이상이 필요합니다 |297| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 터미널이 지원하지만 SSH를 통해 `TERM_PROGRAM`이 전달되지 않는 경우처럼 자동 감지되지 않을 때 Claude의 응답에서 `~~text~~`에 대한 취소선 렌더링을 강제하려면 `1`로 설정합니다. 이것이 없으면 감지되지 않은 터미널은 취소선으로 렌더링하는 대신 리터럴 `~~` 마커를 표시합니다. Claude Code v2.1.186 이상이 필요합니다 |

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

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

300| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | `claude -p --output-format stream-json` 출력에서 [서브에이전트](/docs/ko/sub-agents) 텍스트 및 사고 블록을 내보내려면 `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) 텍스트 및 사고 블록을 내보내려면 `1`로 설정합니다. [`--forward-subagent-text`](/docs/ko/cli-reference#cli-flags) 플래그와 동일한 동작입니다. 하네스가 `claude`를 호출하고 플래그 자체를 전달할 수 없을 때 변수를 사용합니다. 플래그와 달리 비대화형 모드에서 stream-json 출력 외부에서 오류로 종료되지만 변수는 무시되므로 중첩된 호출이 프로세스 전체에 설정되었을 때 계속 작동합니다. Claude Code v2.1.211 이상이 필요합니다 |

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

302| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY`가 켜는 [게이트웨이 모델 검색](/docs/ko/llm-gateway-protocol#model-discovery) 요청의 타임아웃(밀리초)(기본값: `3000`). 게이트웨이가 시작 시 `/v1/models`에 응답하는 데 3초 이상 필요할 때 올리세요. 일반 숫자만 사용합니다. `0`, 음수 값 및 다른 표기법은 기본값을 유지합니다. Claude Code v2.1.269 이상이 필요합니다 |302| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY`가 켜는 [게이트웨이 모델 검색](/docs/ko/llm-gateway-protocol#model-discovery) 요청의 타임아웃(밀리초 단위)입니다(기본값: `3000`). 게이트웨이가 시작 시 `/v1/models`에 응답하는 데 3초 이상 필요할 때 이를 올립니다. 일반 숫자만 허용합니다. `0`, 음수 값, 기타 표기법은 기본값을 유지합니다. Claude Code v2.1.269 이상이 필요합니다 |

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

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

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

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

307| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | 백그라운드 작업이 활성 목표를 대기 상태로 유지할 수 있는 시간(분)입니다. Claude Code가 [이를 확인하도록 요청](/docs/ko/goal#background-work-defers-evaluation)하기 전입니다. 기본값 `30`. 체크인을 끄려면 `0`으로 설정하세요. 일반 숫자로 전체 분을 제공합니다. 최대 `10080`(1주). Claude Code는 다른 값을 설정 해제로 취급하고 기본값을 사용합니다. Claude Code v2.1.234 이상이 필요합니다 |307| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | 백그라운드 작업이 활성 목표를 대기 상태로 유지할 수 있는 시간(분 단위)입니다. Claude Code가 [이를 확인하도록 요청](/docs/ko/goal#background-work-defers-evaluation)하기 전입니다. 기본값 `30`. 체크인을 끄려면 `0`으로 설정합니다. 일반 숫자로 전체 분을 제공합니다. 최대 `10080`(1주). Claude Code는 다른 값을 설정 해제로 취급하고 기본값을 사용합니다. Claude Code v2.1.234 이상이 필요합니다 |

308| `CLAUDE_CODE_HIDE_CWD` | 시작 로고에서 작업 디렉토리를 숨기려면 `1`로 설정하세요. 경로가 OS 사용자 이름을 노출하는 화면 공유 또는 녹화에 유용합니다 |308| `CLAUDE_CODE_HIDE_CWD` | 시작 로고에서 작업 디렉토리를 숨기려면 `1`로 설정합니다. 경로가 OS 사용자 이름을 노출하는 화면 공유 또는 녹화에 유용합니다 |

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

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

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

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

313| `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`을 통해 컨텍스트 창이 이름의 기본 제공 크기와 일치하지 않는 모델로 라우팅할 때 사용합니다 |313| `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`을 통해 컨텍스트 창이 기본 제공 크기와 일치하지 않는 모델로 라우팅할 때 사용합니다 |

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

315| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 대부분의 요청에 대한 최대 출력 토큰 수를 설정합니다. 기본값 및 상한은 모델에 따라 다릅니다. [최대 출력 토큰](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison)을 참조하세요. Claude Code는 인식하지 못하는 모델 ID(예: 게이트웨이 특정 이름)에 대해 기본값 32000을 사용하고 모델의 상한 이상의 값을 상한으로 낮춥니다. 이 값을 증가시키면 [자동 압축](/docs/ko/costs#reduce-token-usage)이 트리거되기 전에 사용 가능한 유효 컨텍스트 창이 감소합니다 |315| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 대부분의 요청에 대한 최대 출력 토큰 수를 설정합니다. 기본값 및 상한은 모델에 따라 다릅니다. [최대 출력 토큰](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison)을 참조하세요. Claude Code는 인식하지 못하는 모델 ID(예: 게이트웨이 특정 이름)에 대해 32000으로 기본값을 설정하고 모델의 상한을 초과하는 값을 상한으로 낮춥니다. 이 값을 증가시키면 [자동 압축](/docs/ko/costs#reduce-token-usage)이 트리거되기 전에 사용 가능한 유효 컨텍스트 창이 감소합니다 |

316| `CLAUDE_CODE_MAX_RETRIES` | 실패한 API 요청을 재시도할 횟수를 재정의합니다(기본값: 10). v2.1.186부터 15로 제한됩니다. v2.1.199부터 `CLAUDE_CODE_RETRY_WATCHDOG`이 기본값을 올리고 상한을 제거합니다. 더 오래 중단되지 않은 세션이 더 긴 중단을 기다려야 할 때 `CLAUDE_CODE_RETRY_WATCHDOG`을 대신 설정하세요 |316| `CLAUDE_CODE_MAX_RETRIES` | 실패한 API 요청을 재시도할 횟수를 재정의합니다(기본값: 10). v2.1.186부터 15로 제한됩니다. v2.1.199부터 `CLAUDE_CODE_RETRY_WATCHDOG`이 기본값을 올리고 상한을 제거합니다. 더 긴 중단을 기다려야 하는 무인 세션의 경우 대신 `CLAUDE_CODE_RETRY_WATCHDOG`을 설정합니다 |

317| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | v2.1.224에서 제거되었으며 이제 작동하지 않습니다. 이전에는 한 세션에서 Agent 도구로 Claude가 생성할 수 있는 [서브에이전트](/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)은 여전히 적용됩니다 |317| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | v2.1.224에서 제거되었으며 이제 작동하지 않습니다. 이전에는 한 세션에서 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)은 여전히 적용됩니다 |

318| `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 이상이 필요합니다 |318| `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 이상이 필요합니다 |

319| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 읽기 전용 도구 및 서브에이전트가 병렬로 실행할 수 있는 최대 수입니다(기본값: 10). 더 높은 값은 병렬 처리를 증가시키지만 더 많은 리소스를 소비합니다 |319| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 병렬로 실행할 수 있는 읽기 전용 도구 및 서브에이전트의 최대 수입니다(기본값: 10). 더 높은 값은 병렬 처리를 증가시키지만 더 많은 리소스를 소비합니다 |

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

321| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | 한 세션이 만들 수 있는 [WebSearch](/docs/ko/tools-reference#websearch-tool-behavior) 호출의 총 수에 대한 상한입니다(기본값: 200). Claude가 상한에 도달하면 추가 WebSearch 호출은 이미 수집한 정보로 계속하도록 지시하는 알림을 반환합니다. 상한 없이 양의 정수를 허용합니다. 다른 것은 무시되고 기본값이 적용되므로 상한을 올릴 수 있지만 끌 수 없습니다. Claude Code v2.1.212 이상이 필요합니다 |321| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | 한 세션이 만들 수 있는 [WebSearch](/docs/ko/tools-reference#websearch-tool-behavior) 호출의 총 수에 대한 상한입니다(기본값: 200). Claude가 상한에 도달하면 추가 WebSearch 호출은 이미 수집한 정보로 계속하도록 지시하는 알림을 반환합니다. 상한이 없는 양의 정수를 허용합니다. 다른 것은 무시되고 기본값이 적용되므로 상한을 올릴 수 있지만 끌 수 없습니다. Claude Code v2.1.212 이상이 필요합니다 |

322| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | stdio MCP 서버를 안전한 기본 환경과 서버의 구성된 `env`만으로 생성하려면 `1`로 설정하세요. 셸 환경을 상속하지 않습니다 |322| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | stdio MCP 서버를 셸 환경을 상속하는 대신 안전한 기본 환경과 서버의 구성된 `env`만으로 생성하려면 `1`로 설정합니다 |

323| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | 여전히 실행 중인 MCP 도구 호출이 [백그라운드 작업으로 이동](/docs/ko/mcp#automatic-backgrounding-of-long-tool-calls)하기 전의 경과 시간(밀리초)(기본값: 120000 또는 2분). 자동 백그라운드 처리를 끄려면 `0`으로 설정하세요. Claude Code v2.1.212 이상이 필요합니다 |323| `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_STARTUP_WAIT_MS` | [비대화형](/docs/ko/headless) 세션의 첫 번째 턴이 여전히 연결 중인 MCP 서버를 기다리는 시간(밀리초)입니다. 기본 [첫 번째 턴 대기](/docs/ko/agent-sdk/mcp#connection-timing) 대신입니다. 설정하면 대기가 모든 보류 중인 서버를 포함합니다. 대기를 건너뛰려면 `0`으로 설정하세요. [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags) 서버는 값과 관계없이 자체 `MCP_TIMEOUT` 대기를 유지합니다. Claude Code v2.1.274 이상이 필요합니다 |324| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | [비대화형](/docs/ko/headless) 세션의 첫 번째 턴이 여전히 연결 중인 MCP 서버를 기다리는 시간(밀리초 단위)입니다. 기본 [첫 번째 턴 대기](/docs/ko/agent-sdk/mcp#connection-timing) 대신입니다. 설정하면 대기가 모든 보류 중인 서버를 포함합니다. 대기를 건너뛰려면 `0`으로 설정합니다. [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags) 서버는 값에 관계없이 자체 `MCP_TIMEOUT` 대기를 유지합니다. Claude Code v2.1.274 이상이 필요합니다 |

325| `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 서버가 유휴 타임아웃에서 제외되었습니다 |325| `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_MESSAGING_SOCKET` | Claude Code에서 설정됨. 사용자가 설정하지 않음: [수신함 소켓](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)을 바인드하는 세션에서 Claude Code는 소켓을 바인드할 때 해당 소켓의 경로를 훅 및 Bash 명령으로 내보냅니다. 메시징이 켜진 상태로 시작하는 세션에서 Claude Code는 훅이 실행되기 전에 소켓을 바인드합니다. 머신의 다른 세션이 이 경로로 메시지를 전달합니다. 각 세션은 부모에서 상속된 것이 아니라 자신의 소켓을 내보내고, 도착하는 메시지는 세션의 [인바운드 제어](/docs/ko/cross-session-messaging#control-inbound-messages)를 통과합니다. 설정 `env` 블록은 이를 설정할 수 없습니다. Claude Code v2.1.224 이상이 필요합니다 |326| `CLAUDE_CODE_MESSAGING_SOCKET` | Claude Code에서 설정합니다. 사용자가 설정하지 않습니다. [수신함 소켓](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)을 바인드하는 세션에서 Claude Code는 훅 및 Bash 명령에 해당 소켓의 경로를 내보냅니다. 메시징이 켜진 상태로 시작하는 세션에서 Claude Code는 훅이 실행되기 전에 소켓을 바인드합니다. 머신의 다른 세션이 이 경로로 메시지를 전달합니다. 각 세션은 부모에서 상속된 것이 아닌 자신의 소켓을 내보내고, 도착하는 메시지는 세션의 [인바운드 제어](/docs/ko/cross-session-messaging#control-inbound-messages)를 통과합니다. 설정 `env` 블록은 이를 설정할 수 없습니다. Claude Code v2.1.224 이상이 필요합니다 |

327| `CLAUDE_CODE_MESSAGING_TOKEN` | Claude Code에서 설정됨. 사용자가 설정하지 않음: [수신함 소켓](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)을 바인드하는 세션에서 Claude Code는 이 세션별 토큰을 훅 및 Bash 명령과 함께 내보냅니다. 소켓에 게시하는 스크립트는 `{"type":"auth","token":"<token>"}` 첫 번째 줄로 세션에 속함을 증명할 수 있습니다. 기본 Windows에서 Claude Code는 이 줄을 요구하고 유효한 줄로 열지 않는 모든 연결을 닫습니다. [자신의 자식 규칙](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)은 Claude Code가 토큰을 참조할 때를 말합니다. 각 세션은 부모 세션에서 상속된 것이 아니라 자신의 토큰을 내보냅니다. 설정 `env` 블록은 이를 설정할 수 없습니다. Claude Code v2.1.228 이상이 필요합니다 |327| `CLAUDE_CODE_MESSAGING_TOKEN` | Claude Code에서 설정합니다. 사용자가 설정하지 않습니다. [수신함 소켓](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)을 바인드하는 세션에서 Claude Code는 `CLAUDE_CODE_MESSAGING_SOCKET`과 함께 훅 및 Bash 명령에 이 세션별 토큰을 내보냅니다. 소켓에 게시하는 스크립트는 `{"type":"auth","token":"<token>"}` 첫 번째 줄로 전송하여 세션에 속함을 증명할 수 있습니다. 기본 Windows에서 Claude Code는 이 줄을 요구하고 유효한 줄로 열지 않는 모든 연결을 닫습니다. [자신의 자식 규칙](/docs/ko/cross-session-messaging#the-sessions-inbox-socket)은 Claude Code가 토큰을 참조하는 시기를 설명합니다. 각 세션은 부모 세션에서 상속된 것이 아닌 자신의 토큰을 내보냅니다. 설정 `env` 블록은 이를 설정할 수 없습니다. Claude Code v2.1.228 이상이 필요합니다 |

328| `CLAUDE_CODE_NATIVE_CURSOR` | 입력 캐럿에서 터미널의 자체 커서를 표시하려면 `1`로 설정하세요. 그려진 블록 대신입니다. 커서는 터미널의 깜박임, 모양 및 포커스 설정을 존중합니다 |328| `CLAUDE_CODE_NATIVE_CURSOR` | 그려진 블록 대신 입력 캐럿에서 터미널의 자체 커서를 표시하려면 `1`로 설정합니다. 커서는 터미널의 깜박임, 모양, 포커스 설정을 존중합니다 |

329| `CLAUDE_CODE_NEW_INIT` | `/init`이 대화형 설정 흐름을 실행하도록 하려면 `1`로 설정하세요. 흐름은 CLAUDE.md, 기술 및 훅을 포함하여 생성할 파일을 묻습니다. 코드베이스를 탐색하고 작성하기 전입니다. 이 변수가 없으면 `/init`은 프롬프트 없이 CLAUDE.md를 자동으로 생성합니다 |329| `CLAUDE_CODE_NEW_INIT` | `/init`이 대화형 설정 흐름을 실행하도록 하려면 `1`로 설정합니다. 흐름은 CLAUDE.md, 기술, 훅을 포함한 생성할 파일을 묻고 코드베이스를 탐색한 후 작성합니다. 이 변수가 없으면 `/init`은 프롬프트 없이 CLAUDE.md를 자동으로 생성합니다 |

330| `CLAUDE_CODE_NONBLOCKING_STDOUT` | 두 번째 비차단 파일 설명자를 통해 터미널 출력을 작성하려면 `1`로 설정하세요. 일시 중지된 tmux 제어 모드 창이나 정지된 SSH 연결 같은 읽기를 중지하는 터미널이 Claude Code를 세션 중간에 동결할 수 없습니다. macOS, Linux 및 WSL에서 stdout이 터미널일 때 적용됩니다. Claude Code v2.1.261 이상이 필요합니다 |330| `CLAUDE_CODE_NONBLOCKING_STDOUT` | 두 번째 비차단 파일 디스크립터를 통해 터미널 출력을 작성하려면 `1`로 설정합니다. 일시 중지된 tmux 제어 모드 창이나 정지된 SSH 연결 같이 읽기를 중지하는 터미널이 Claude Code를 세션 중간에 동결할 수 없습니다. macOS, Linux, WSL에서 stdout이 터미널일 때 적용됩니다. Claude Code v2.1.261 이상이 필요합니다 |

331| `CLAUDE_CODE_NO_FLICKER` | [전체 화면 렌더링](/docs/ko/fullscreen)을 활성화하려면 `1`로 설정하세요. 깜박임을 줄이고 긴 대화에서 메모리를 평평하게 유지하는 연구 미리보기입니다. [`tui`](/docs/ko/settings-reference#tui) 설정을 재정의합니다. `/tui fullscreen`으로도 전환할 수 있습니다 |331| `CLAUDE_CODE_NO_FLICKER` | [전체 화면 렌더링](/docs/ko/fullscreen)을 활성화하려면 `1`로 설정합니다. 이는 깜박임을 줄이고 긴 대화에서 메모리를 평평하게 유지하는 연구 미리보기입니다. [`tui`](/docs/ko/settings-reference#tui) 설정을 재정의합니다. `/tui fullscreen`으로도 전환할 수 있습니다 |

332| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Claude.ai 인증용 OAuth 새로 고침 토큰입니다. 설정하면 `claude auth login`이 브라우저를 열지 않고 이 토큰을 직접 교환합니다. `CLAUDE_CODE_OAUTH_SCOPES`가 필요합니다. 자동화된 환경에서 인증을 프로비저닝하는 데 유용합니다 |332| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Claude.ai 인증용 OAuth 새로 고침 토큰입니다. 설정하면 `claude auth login`이 브라우저를 열지 않고 이 토큰을 직접 교환합니다. `CLAUDE_CODE_OAUTH_SCOPES`가 필요합니다. 자동화된 환경에서 인증을 프로비저닝하는 데 유용합니다 |

333| `CLAUDE_CODE_OAUTH_SCOPES` | 새로 고침 토큰이 발급된 공백으로 구분된 OAuth 범위입니다(예: `"user:profile user:inference user:sessions:claude_code"`). `CLAUDE_CODE_OAUTH_REFRESH_TOKEN`이 설정된 경우 필수입니다 |333| `CLAUDE_CODE_OAUTH_SCOPES` | 새로 고침 토큰이 발급된 공백으로 구분된 OAuth 범위입니다. 예: `"user:profile user:inference user:sessions:claude_code"`. `CLAUDE_CODE_OAUTH_REFRESH_TOKEN`이 설정되었을 때 필수입니다 |

334| `CLAUDE_CODE_OAUTH_TOKEN` | claude.ai 인증용 OAuth 액세스 토큰입니다. SDK 및 자동화된 환경에서 `/login`의 대안입니다. 키체인 저장 자격 증명보다 우선합니다. [`claude setup-token`](/docs/ko/authentication#generate-a-long-lived-token)으로 생성하세요. [`/login`](/docs/ko/authentication#authentication-precedence)을 실행하지 않으면 Claude Code는 전체 세션에 대해 설정한 토큰을 사용합니다. 만료된 토큰을 교체하려면 새 토큰을 생성하고 다시 시작하세요 |334| `CLAUDE_CODE_OAUTH_TOKEN` | claude.ai 인증용 OAuth 액세스 토큰입니다. SDK 및 자동화된 환경에서 `/login`의 대안입니다. 키체인 저장 자격 증명보다 우선합니다. [`claude setup-token`](/docs/ko/authentication#generate-a-long-lived-token)으로 생성합니다. [`/login`](/docs/ko/authentication#authentication-precedence)을 실행하지 않으면 Claude Code는 전체 세션에 대해 설정한 토큰을 사용합니다. 만료된 토큰을 교체하려면 새 토큰을 생성하고 다시 시작합니다 |

335| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | v2.1.160에서 제거되었으며 이제 작동하지 않습니다. 이전에는 [빠른 모드](/docs/ko/fast-mode)를 현재 기본값 대신 Claude Opus 4.6으로 고정했습니다. Opus 4.6은 더 이상 빠른 모드를 지원하지 않습니다 |335| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | v2.1.160에서 제거되었으며 이제 작동하지 않습니다. 이전에는 [빠른 모드](/docs/ko/fast-mode)를 현재 기본값 대신 Claude Opus 4.6으로 고정했습니다. Opus 4.6은 더 이상 빠른 모드를 지원하지 않습니다 |

336| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | 콘텐츠 베어링 OpenTelemetry 속성(모델 응답, 도구 콘텐츠, 시스템 프롬프트, 원본 API 본문)의 최대 길이입니다. 잘림 마커 포함. UTF-16 코드 단위(기본값: 61440, 즉 60KB). 원격 분석 백엔드가 64KB보다 큰 속성 값을 허용하는 경우에만 올리거나, 원격 분석 볼륨을 줄이려면 낮추세요. Claude Code v2.1.214 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |336| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | 콘텐츠 보유 OpenTelemetry 속성(모델 응답, 도구 콘텐츠, 시스템 프롬프트, 원본 API 본문)의 최대 길이입니다. 자르기 마커 포함(기본값: 61440, 즉 60KB). 원격 분석 백엔드가 64KB보다 큰 속성 값을 허용하는 경우에만 올립니다. 또는 원격 분석 볼륨을 줄이려면 낮춥니다. Claude Code v2.1.214 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

337| `CLAUDE_CODE_OTEL_DIAG_STDERR` | OpenTelemetry 내보내기 진단 오류를 stderr에 작성하려면 `1`로 설정하세요. 기본적으로 이러한 오류는 `--debug`에서만 나타나므로 Prometheus 포트 충돌 같은 잘못 구성된 내보내기는 그렇지 않으면 조용히 실패합니다. Claude Code v2.1.179 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |337| `CLAUDE_CODE_OTEL_DIAG_STDERR` | OpenTelemetry 내보내기 진단 오류를 stderr에 작성하려면 `1`로 설정합니다. 기본적으로 이러한 오류는 `--debug`에서만 나타나므로 Prometheus 포트 충돌 같은 잘못 구성된 내보내기는 그렇지 않으면 조용히 실패합니다. Claude Code v2.1.179 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

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

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

340| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | 종료 시 OpenTelemetry 내보내기가 완료되기 위한 타임아웃(밀리초)(기본값: 2000). 종료 시 메트릭이 삭제되면 증가시키세요. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |340| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | 종료 시 OpenTelemetry 내보내기가 완료되기 위한 타임아웃(밀리초 단위)(기본값: 2000). 메트릭이 종료 시 삭제되면 증가시킵니다. [모니터링](/docs/ko/monitoring-usage)을 참조하세요 |

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

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

343| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 플러그인 루트 디렉토리를 재정의합니다. 이름에도 불구하고 이는 캐시 자체가 아니라 부모 디렉토리를 설정합니다: 마켓플레이스 및 플러그인 캐시는 이 경로 아래의 하위 디렉토리에 있습니다. 기본값은 `~/.claude/plugins`입니다 |343| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 플러그인 루트 디렉토리를 재정의합니다. 이름에도 불구하고 이는 캐시 자체가 아닌 부모 디렉토리를 설정합니다. 마켓플레이스 및 플러그인 캐시는 이 경로 아래의 하위 디렉토리에 있습니다. 기본값은 `~/.claude/plugins`입니다 |

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

345| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | 플러그인을 설치하거나 업데이트할 때 git 작업의 타임아웃(밀리초)(기본값: 120000). 큰 리포지토리나 느린 네트워크 연결의 경우 이 값을 증가시키세요. [Git 작업 타임아웃](/docs/ko/plugin-marketplaces#git-operations-time-out)을 참조하세요 |345| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | 플러그인 마켓플레이스를 복제하거나 새로 고치기 위한 타임아웃(밀리초 단위)(기본값: 120000). 큰 리포지토리 또는 느린 네트워크 연결의 경우 이 값을 증가시킵니다. [Git 복제 시간 초과](/docs/ko/plugins/troubleshooting#git-clone-timed-out-after-120s)를 참조하세요 |

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

347| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | GitHub `owner/repo` 단축 소스를 SSH 대신 HTTPS를 통해 복제하려면 `1`로 설정하세요. 플러그인 설치 및 업데이트, `/plugin marketplace add` 및 `update`에 적용됩니다. CI 러너, 컨테이너 또는 `github.com`에 대해 구성된 SSH 키가 없는 모든 환경에 유용합니다 |347| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | GitHub `owner/repo` 단축 소스를 SSH 대신 HTTPS를 통해 복제하려면 `1`로 설정합니다. 플러그인 설치 및 업데이트, `/plugin marketplace add` 및 `update`에 적용됩니다. CI 러너, 컨테이너, 또는 `github.com`에 대해 구성된 SSH 키가 없는 환경에 유용합니다 |

348| `CLAUDE_CODE_PLUGIN_SEED_DIR` | 하나 이상의 읽기 전용 플러그인 시드 디렉토리의 경로입니다. Unix에서는 `:`로 구분되고 Windows에서는 `;`로 구분됩니다. 사전 채워진 플러그인 디렉토리를 컨테이너 이미지에 번들로 묶는 데 사용합니다. Claude Code는 시작 시 이러한 디렉토리에서 마켓플레이스를 등록하고 다시 복제하지 않고 사전 캐시된 플러그인을 사용합니다. [컨테이너용 플러그인 사전 채우기](/docs/ko/plugin-marketplaces#pre-populate-plugins-for-containers)를 참조하세요 |348| `CLAUDE_CODE_PLUGIN_SEED_DIR` | 하나 이상의 읽기 전용 플러그인 시드 디렉토리의 경로입니다. Unix에서는 `:`로, Windows에서는 `;`로 구분합니다. 사전 채워진 플러그인 디렉토리를 컨테이너 이미지에 번들로 묶는 데 사용합니다. Claude Code는 시작 시 이러한 디렉토리에서 마켓플레이스를 등록하고 재복제 없이 사전 캐시된 플러그인을 사용합니다. [컨테이너 및 CI에 대한 플러그인 사전 채우기](/docs/ko/plugins/org#seed-containers-and-ci)를 참조하세요 |

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

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

351| `CLAUDE_CODE_PROCESS_WRAPPER` | Claude Code가 자신의 바이너리에서 시작하는 프로세스(예: [에이전트 보기](/docs/ko/agent-view) 세션을 호스팅하는 백그라운드 서비스)를 `/opt/corp/launcher` 같은 argv 접두사로 지정된 회사 런처를 통해 시작합니다. 사용자 또는 [관리 설정](/docs/ko/managed-settings)의 `env` 블록에서 설정하세요. 프로젝트 및 로컬 설정은 이를 설정할 수 없습니다. [`processWrapper` 설정](/docs/ko/settings-reference#processwrapper)과 동일합니다. Claude Code v2.1.210 이상이 필요합니다. 이 변수는 둘 다 설정되면 우선합니다. VS Code 확장은 자신의 `claudeProcessWrapper` 설정을 통해 자신의 런처를 구성합니다. Windows에서는 무시됩니다. [회사 런처 뒤에서 Claude Code 실행](/docs/ko/corporate-launcher)에서 값 형식, 런처가 포함하는 것 및 런처가 만족해야 하는 계약을 참조하세요. Claude Code v2.1.208 이상이 필요합니다 |351| `CLAUDE_CODE_PROCESS_WRAPPER` | Claude Code가 자신의 바이너리에서 시작하는 프로세스(예: [에이전트 보기](/docs/ko/agent-view) 세션을 호스팅하는 백그라운드 서비스)를 `/opt/corp/launcher` 같은 argv 접두사로 제공되는 기업 런처를 통해 시작합니다. 사용자 또는 [관리 설정](/docs/ko/managed-settings)의 `env` 블록에서 설정합니다. 프로젝트 및 로컬 설정은 이를 설정할 수 없습니다. [`processWrapper` 설정](/docs/ko/settings-reference#processwrapper)과 동일합니다. Claude Code v2.1.210 이상이 필요합니다. 둘 다 설정되면 이 변수가 우선합니다. VS Code 확장은 `claudeProcessWrapper` 설정을 통해 자신의 런처를 별도로 구성합니다. Windows에서는 무시됩니다. [기업 런처 뒤에서 Claude Code 실행](/docs/ko/corporate-launcher)에서 값 형식, 런처가 포함하는 것, 런처가 만족해야 하는 계약을 참조하세요. Claude Code v2.1.208 이상이 필요합니다 |

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

353| `CLAUDE_CODE_PROMPT_CACHE_TTL` | `5m` 또는 `1h`로 설정합니다. Claude Code가 허용하는 유일한 값입니다. 주 대화에 대한 [프롬프트 캐시 TTL](/docs/ko/prompt-caching#cache-lifetime)을 선택합니다: 대화형, `-p` 및 SDK 턴, 그리고 이들과 함께 인라인으로 실행되는 도우미입니다. `promptCacheTtl` 설정 및 `ENABLE_PROMPT_CACHING_1H`보다 우선합니다. `FORCE_PROMPT_CACHING_5M`이 이를 재정의합니다. API는 1시간 캐시 쓰기를 더 높은 요금으로 청구합니다. Claude Code v2.1.242 이상이 필요합니다 |353| `CLAUDE_CODE_PROMPT_CACHE_TTL` | `5m` 또는 `1h`로 설정합니다. Claude Code가 허용하는 유일한 값입니다. 주 대화의 [프롬프트 캐시 TTL](/docs/ko/prompt-caching#cache-lifetime)을 선택합니다. 대화형, `-p`, SDK 턴, 그리고 이들과 함께 인라인으로 실행되는 도우미입니다. `promptCacheTtl` 설정 및 `ENABLE_PROMPT_CACHING_1H`보다 우선합니다. `FORCE_PROMPT_CACHING_5M`이 이를 재정의합니다. API는 1시간 캐시 쓰기를 더 높은 속도로 청구합니다. Claude Code v2.1.242 이상이 필요합니다 |

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

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

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

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

358| `CLAUDE_CODE_REMOTE_SESSION_ID` | [클라우드 세션](/docs/ko/claude-code-on-the-web)에서 현재 세션의 ID로 자동으로 설정됩니다. 세션 대화 기록으로 다시 연결하는 링크를 구성하려면 이를 읽으세요. [세션으로 출력 다시 연결](/docs/ko/cloud-environments#link-output-back-to-the-session)을 참조하세요 |358| `CLAUDE_CODE_REMOTE_SESSION_ID` | [클라우드 세션](/docs/ko/claude-code-on-the-web)에서 현재 세션의 ID로 자동으로 설정됩니다. 세션 대화 기록으로 다시 연결하는 링크를 구성하려면 읽습니다. [출력을 세션으로 다시 연결](/docs/ko/cloud-environments#link-output-back-to-the-session)을 참조하세요 |

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

360| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 이전 세션이 턴 중간에 끝난 경우 자동으로 재개하려면 `1`로 설정하세요. SDK 모드에서 사용되므로 모델이 SDK가 프롬프트를 다시 전송하도록 요구하지 않고 계속됩니다. 이를 끄려면 변수를 설정 해제하거나 `0`으로 설정하세요. v2.1.221 이전에는 Claude Code가 `0` 및 다른 거짓 값을 무시했으므로 비대화형 모드에서 재개를 트리거했고 변수를 설정 해제하는 것이 끄는 유일한 방법이었습니다 |360| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 이전 세션이 턴 중간에 끝난 경우 자동으로 재개하려면 `1`로 설정합니다. SDK 모드에서 사용되므로 모델이 SDK가 프롬프트를 다시 전송할 필요 없이 계속됩니다. 이를 끄려면 변수를 설정 해제하거나 `0`으로 설정합니다. v2.1.221 이전에는 Claude Code가 `0` 및 기타 거짓 값을 무시했으므로 비대화형 모드에서 `0`을 설정하면 여전히 재개를 트리거했고 변수를 설정 해제하는 것이 유일한 방법이었습니다 |

361| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | 턴 중간에 끝난 세션이 재개 시 자동으로 계속되기 위한 마지막 대화 기록 메시지의 최대 나이(밀리초)입니다. 마지막 메시지가 이 경계보다 오래되면 Claude Code는 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 자동 재개 및 주입된 `CLAUDE_CODE_RESUME_PROMPT` 계속 메시지를 모두 건너뜁니다. 세션은 유휴 상태로 시작되므로 명시적으로 계속합니다. 설정 해제 또는 `0`은 경계가 없음을 의미합니다. 단, API 오류로 마지막 요청이 실패한 턴은 해당 오류가 6시간 미만일 때만 재개됩니다. 양수 값은 모든 턴을 경계합니다. 음수 또는 숫자가 아닌 값은 1시간 경계를 적용합니다. 장시간 실행되는 에이전트의 스폰 스크립트는 이를 설정하여 오래된 대화 기록에 대한 재시작이 오래된 프롬프트를 다시 실행하지 않도록 할 수 있습니다. Claude Code는 충돌한 [에이전트 보기](/docs/ko/agent-view) 세션을 재시작할 때 대화를 상속한 대화형 세션에서 1시간 경계를 자신이 설정합니다. Claude Code v2.1.211 이상이 필요합니다 |361| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | 턴 중간에 끝난 세션이 재개 시 자동으로 계속되기 위한 마지막 대화 기록 메시지의 최대 나이(밀리초 단위)입니다. 마지막 메시지가 이 한계보다 오래되면 Claude Code는 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 자동 재개 및 `CLAUDE_CODE_RESUME_PROMPT` 계속 메시지를 건너뜁니다. 세션은 유휴 상태로 시작되므로 명시적으로 계속됩니다. 설정 해제 또는 `0`은 한계가 없음을 의미합니다. 단, 마지막 요청이 API 오류로 실패한 턴은 해당 오류가 6시간 미만일 때만 재개됩니다. 양수 값은 해당 오류를 포함한 모든 턴을 한계합니다. 음수 또는 숫자가 아닌 값은 1시간 한계를 적용합니다. 장시간 실행되는 에이전트의 스폰 스크립트는 이를 설정하여 오래된 대화 기록에 대한 재시작이 오래된 프롬프트를 다시 실행하지 않도록 할 수 있습니다. Claude Code는 충돌한 [에이전트 보기](/docs/ko/agent-view) 세션을 재시작할 때 대화형 세션에서 상속된 대화를 다시 시작할 때 1시간 한계를 자신이 설정합니다. Claude Code v2.1.211 이상이 필요합니다 |

362| `CLAUDE_CODE_RESUME_PROMPT` | 턴 중간에 끝난 세션을 재개할 때 주입되는 계속 메시지를 재정의합니다. 기본값은 `Continue from where you left off.`입니다. 장시간 실행되는 에이전트의 스폰 스크립트는 이를 더 지시적인 부팅 메시지로 설정할 수 있습니다. 빈 문자열은 기본값을 사용합니다 |362| `CLAUDE_CODE_RESUME_PROMPT` | `CLAUDE_CODE_RESUME_INTERRUPTED_TURN`이 프롬프트를 다시 전송하는 대신 중단된 턴을 계속할 때 Claude에 전송하는 계속 메시지를 재정의합니다. 또는 `-p`로 [지연된 도구 호출](/docs/ko/hooks#defer-a-tool-call-for-later)을 재개할 때입니다. 기본값은 `Continue from where you left off.`입니다. 빈 문자열은 기본값을 사용합니다 |

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

364| `CLAUDE_CODE_SAFE_MODE` | 안전 모드로 시작하려면 `1`로 설정하세요: CLAUDE.md, 기술, 플러그인, 훅, MCP 서버, 사용자 정의 명령 및 에이전트, 출력 스타일, 워크플로우, 사용자 정의 테마, 사용자 정의 키 바인딩, 상태 줄 및 파일 제안 명령, LSP 서버 및 자동 메모리는 로드되지 않습니다. 손상된 구성 문제 해결용입니다. 관리 설정 정책은 여전히 적용됩니다. 정책 구성 훅, 상태 줄 및 파일 제안 명령 포함. 관리 플러그인, 관리 기술, 관리 CLAUDE.md 및 정책 구성 MCP 서버는 로드되지 않습니다. [`--safe-mode`](/docs/ko/cli-reference#cli-flags) 전달과 동일합니다. 직접 생성된 자식 프로세스는 변수를 상속합니다 |364| `CLAUDE_CODE_SAFE_MODE` | 안전 모드로 시작하려면 `1`로 설정합니다. CLAUDE.md, 기술, 플러그인, 훅, MCP 서버, 사용자 정의 명령 및 에이전트, 출력 스타일, 워크플로우, 사용자 정의 테마, 사용자 정의 키 바인딩, 상태 줄 및 파일 제안 명령, LSP 서버, 자동 메모리는 로드되지 않습니다. 손상된 구성 문제 해결용입니다. 관리 설정 정책은 여전히 적용됩니다. 정책 구성 훅, 상태 줄, 파일 제안 명령 포함; 관리 플러그인, 관리 기술, 관리 CLAUDE.md, 정책 구성 MCP 서버는 로드되지 않습니다. [`--safe-mode`](/docs/ko/cli-reference#cli-flags) 전달과 동일합니다. 직접 생성된 자식 프로세스는 변수를 상속합니다 |

365| `CLAUDE_CODE_SCRIPT_CAPS` | `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`이 설정되었을 때 특정 스크립트를 세션당 호출할 수 있는 횟수를 제한하는 JSON 객체입니다. 키는 명령 텍스트에 대해 일치하는 부분 문자열입니다. 값은 정수 호출 제한입니다. 예를 들어 `{"deploy.sh": 2}`는 `deploy.sh`를 최대 2번 호출할 수 있습니다. 일치는 부분 문자열 기반이므로 `./scripts/deploy.sh $(evil)` 같은 셸 확장 트릭도 상한에 대해 계산됩니다. `xargs` 또는 `find -exec`을 통한 런타임 팬아웃은 감지되지 않습니다. 이는 심층 방어 제어입니다 |365| `CLAUDE_CODE_SCRIPT_CAPS` | `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`이 설정되었을 때 특정 스크립트가 세션당 호출될 수 있는 횟수를 제한하는 JSON 객체입니다. 키는 명령 텍스트에 대해 일치하는 부분 문자열입니다. 값은 정수 호출 제한입니다. 예: `{"deploy.sh": 2}`는 `deploy.sh`를 최대 2번 호출할 수 있습니다. 일치는 부분 문자열 기반이므로 `./scripts/deploy.sh $(evil)` 같은 셸 확장 트릭도 상한에 대해 계산됩니다. `xargs` 또는 `find -exec`을 통한 런타임 팬아웃은 감지되지 않습니다. 이는 심층 방어 제어입니다 |

366| `CLAUDE_CODE_SCROLL_SPEED` | [전체 화면 렌더링](/docs/ko/fullscreen#mouse-wheel-scrolling)에서 마우스 휠 스크롤 승수를 설정합니다. `0.5` 같은 1 미만의 분수 값을 포함하여 20까지의 양수 값을 허용합니다. 가속 트랙패드 및 휠 스크롤을 이미 증폭하는 터미널에서 느린 속도를 낼 수 있습니다. 터미널이 증폭 없이 노치당 하나의 휠 이벤트를 보내면 `3`으로 설정하여 `vim`과 일치시킵니다. JetBrains IDE 터미널에서는 무시됩니다. Claude Code는 자신의 스크롤 처리를 사용합니다 |366| `CLAUDE_CODE_SCROLL_SPEED` | [전체 화면 렌더링](/docs/ko/fullscreen#mouse-wheel-scrolling)에서 마우스 휠 스크롤 배수를 설정합니다. 20까지의 양수 값을 허용합니다. `0.5` 같은 1 미만의 소수 값을 포함합니다. 이미 휠 이벤트를 증폭하는 터미널에서 가속 트랙패드 및 휠 스크롤을 느리게 하려면 `0.5`로 설정합니다. 터미널이 증폭 없이 노치당 하나의 휠 이벤트를 보내면 `3`으로 설정하여 `vim`과 일치합니다. JetBrains IDE 터미널에서는 무시됩니다. Claude Code는 자신의 스크롤 처리를 사용합니다 |

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

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

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

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

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

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

373| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | 모든 모델에서 더 짧은 시스템 프롬프트 및 축약된 도구 설명을 사용하려면 `1`로 설정하세요. 실험 또는 서버 구성이 그렇지 않으면 활성화하더라도 옵트아웃하려면 `0`, `false`, `no` 또는 `off`로 설정하세요. 전체 도구 집합, 훅, MCP 서버 및 CLAUDE.md 검색은 활성화된 상태로 유지됩니다 |373| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | 모든 모델에서 더 짧은 시스템 프롬프트 및 축약된 도구 설명을 사용하려면 `1`로 설정합니다. 실험 또는 서버 구성이 그렇지 않으면 활성화할 때에도 `0`, `false`, `no`, 또는 `off`로 설정하여 옵트아웃합니다. 전체 도구 집합, 훅, MCP 서버, CLAUDE.md 검색은 활성화된 상태로 유지됩니다 |

374| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)에 대한 클라이언트 측 인증을 건너뛰세요. 게이트웨이가 요청에 자신이 서명하는 경우 |374| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)에 대한 클라이언트 측 인증을 건너뛰려면 설정합니다. 게이트웨이가 자신이 요청에 서명하는 경우 |

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

376| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Amazon Bedrock에 대한 AWS 인증을 건너뛰세요(예: LLM 게이트웨이 사용 시) |376| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Amazon Bedrock에 대한 AWS 인증을 건너뛰려면 설정합니다(예: LLM 게이트웨이 사용 시) |

377| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | [빠른 모드](/docs/ko/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 가용성 확인이 실패하면 사용 가능한 것으로 취급하려면 `1`로 설정하세요. 네트워크가 확인의 직접 요청을 `api.anthropic.com`으로 차단하는 경우입니다. Claude Code는 여전히 "조직에서 비활성화됨" 응답을 존중합니다 |377| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | 실패한 [빠른 모드](/docs/ko/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 가용성 검사를 사용 가능한 것으로 취급하려면 `1`로 설정합니다. 네트워크가 검사의 직접 요청을 `api.anthropic.com`으로 차단하는 경우입니다. Claude Code는 여전히 "조직에서 비활성화됨" 응답을 존중합니다 |

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

379| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Microsoft Foundry에 대한 Azure 인증을 건너뛰세요. 프록시 또는 게이트웨이가 자신의 `Authorization` 헤더를 주입하는 경우입니다. Claude Code는 Azure 자격 증명 없이 요청을 전송하고 제공한 `Authorization` 헤더를 유지합니다(예: `ANTHROPIC_CUSTOM_HEADERS`를 통해). `ANTHROPIC_FOUNDRY_API_KEY` 또는 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`이 설정되면 무시됩니다. v2.1.203 이전에는 이 변수가 API 키도 설정되지 않으면 Microsoft Foundry 클라이언트가 요청을 전송할 수 없게 남겨두었습니다 |379| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Microsoft Foundry에 대한 Azure 인증을 건너뛰려면 설정합니다. 프록시 또는 게이트웨이가 자신의 `Authorization` 헤더를 주입하는 경우입니다. Claude Code는 Azure 자격 증명 없이 요청을 전송하고 제공한 `Authorization` 헤더를 유지합니다. 예: `ANTHROPIC_CUSTOM_HEADERS`를 통해. `ANTHROPIC_FOUNDRY_API_KEY` 또는 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`이 설정되었을 때는 무시됩니다. v2.1.203 이전에는 이 변수가 API 키도 설정되지 않으면 Microsoft Foundry 클라이언트가 요청을 전송할 수 없게 했습니다 |

380| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Amazon Bedrock Mantle에 대한 AWS 인증을 건너뛰세요(예: LLM 게이트웨이 사용 시) |380| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Amazon Bedrock Mantle에 대한 AWS 인증을 건너뛰려면 설정합니다(예: LLM 게이트웨이 사용 시) |

381| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | 프롬프트 기록 및 세션 대화 기록을 디스크에 작성하지 않으려면 `1`로 설정하세요. 이 변수로 시작된 세션은 `--resume`, `--continue` 또는 위쪽 화살표 기록에 나타나지 않습니다. 임시 스크립트 세션에 유용합니다 |381| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | 프롬프트 기록 및 세션 대화 기록을 디스크에 작성하지 않으려면 `1`로 설정합니다. 이 변수로 시작된 세션은 `--resume`, `--continue`, 위쪽 화살표 기록에 나타나지 않습니다. 임시 스크립트 세션에 유용합니다 |

382| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Google Cloud의 Agent Platform에 대한 Google 인증을 건너뛰세요(예: LLM 게이트웨이 사용 시) |382| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Google Cloud의 Agent Platform에 대한 Google 인증을 건너뛰려면 설정합니다(예: LLM 게이트웨이 사용 시) |

383| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | `--output-format stream-json`으로 시작된 세션이 [Claude Code가 시작을 거부한 이유를 명명하는 결과 메시지](/docs/ko/agent-sdk/typescript#startup_failure_reason)를 작성하도록 하려면 `1`로 설정하세요. 그렇지 않으면 stderr만으로 끝나는 시작 실패의 경우입니다. Claude Code v2.1.274 이상이 필요합니다 |383| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | `--output-format stream-json`으로 시작된 세션이 [Claude Code가 시작을 거부한 이유를 명명하는 결과 메시지](/docs/ko/agent-sdk/typescript#startup_failure_reason)를 작성하도록 하려면 `1`로 설정합니다. 그렇지 않으면 stderr만으로 끝나는 시작 실패의 경우입니다. Claude Code v2.1.274 이상이 필요합니다 |

384| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | [Stop](/docs/ko/hooks#stop) 또는 [SubagentStop](/docs/ko/hooks#subagentstop) 훅이 Claude Code가 어쨌든 턴을 끝내기 전에 턴이 끝나는 것을 차단할 수 있는 최대 연속 횟수입니다(기본값: 8). 훅이 정당하게 더 많은 반복이 필요하면 `0`으로 설정하여 상한을 비활성화하세요. 이를 올리세요 |384| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | [Stop](/docs/ko/hooks#stop) 또는 [SubagentStop](/docs/ko/hooks#subagentstop) 훅이 Claude Code가 어쨌든 턴을 끝내기 전에 턴이 끝나는 것을 차단할 수 있는 최대 연속 횟수입니다(기본값: 8). 상한을 비활성화하려면 `0`으로 설정합니다. 훅이 합법적으로 더 많은 반복이 필요하면 이를 올립니다 |

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

386| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | 서브에이전트, 팀원 및 워크플로우 에이전트에 하나의 모델을 강제하려면 `1`로 설정하세요. [모든 서브에이전트를 하나의 모델에서 실행](/docs/ko/sub-agents#run-every-subagent-on-one-model)은 그 모델이 무엇인지 말합니다. Claude Code v2.1.257 이상이 필요합니다 |386| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | 서브에이전트, 팀원, 워크플로우 에이전트에 하나의 모델을 강제하려면 `1`로 설정합니다. [모든 서브에이전트를 하나의 모델에서 실행](/docs/ko/sub-agents#run-every-subagent-on-one-model)은 그것이 무엇인지 말합니다. Claude Code v2.1.257 이상이 필요합니다 |

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

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

389| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 비대화형 모드(`-p` 플래그)에서 플러그인 설치가 완료될 때까지 기다리려면 `1`로 설정하세요. 첫 번째 쿼리 전입니다. 이것이 없으면 플러그인이 백그라운드에 설치되고 첫 번째 턴에서 사용할 수 없을 수 있습니다. `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS`와 결합하여 대기를 경계하세요 |389| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 비대화형 모드(`-p` 플래그)에서 첫 번째 쿼리 전에 플러그인 설치가 완료될 때까지 기다리려면 `1`로 설정합니다. 이것이 없으면 플러그인이 백그라운드에 설치되고 첫 번째 턴에서 사용할 수 없을 수 있습니다. `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS`와 결합하여 대기를 한계합니다 |

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

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

392| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | 앱이 [Agent SDK](/docs/ko/agent-sdk/typescript#query-object)에 구축되었을 때 기술을 다시 로드할 때 기술 재동기화의 타임아웃(밀리초)(기본값: 30000). 초과되면 재로드는 도착한 기술로 계속되고 나머지 다운로드는 백그라운드에서 완료됩니다 |392| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | 앱이 [Agent SDK](/docs/ko/agent-sdk/typescript#query-object)에 구축되었을 때 세션 중간에 기술을 다시 로드할 때 기술 재동기화의 타임아웃(밀리초 단위)입니다(기본값: 30000). 초과되면 재로드는 도착한 기술로 계속되고 나머지 다운로드는 백그라운드에서 완료됩니다 |

393| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | `CLAUDE_CODE_SYNC_SKILLS`이 설정되었을 때 첫 번째 쿼리가 초기 기술 목록을 기다리는 타임아웃(밀리초)(기본값: 5000). 초과되면 첫 번째 쿼리는 도착한 기술로 실행됩니다. 다운로드는 어느 쪽이든 백그라운드에서 완료되고 Claude는 기술을 호출할 때 기술의 다운로드를 기다립니다 |393| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | `CLAUDE_CODE_SYNC_SKILLS`이 설정되었을 때 첫 번째 쿼리가 초기 기술 목록을 기다리는 타임아웃(밀리초 단위)입니다(기본값: 5000). 초과되면 첫 번째 쿼리는 도착한 기술로 실행됩니다. 다운로드는 어느 쪽이든 백그라운드에서 완료되고 Claude는 기술을 호출할 때 해당 기술의 다운로드를 기다립니다 |

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

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

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

397| `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`을 변경되지 않은 상태로 상속합니다. Claude Code의 자신의 임시 파일은 항상 재정의를 사용합니다. 셸, 사용자 설정 또는 관리 설정에서 설정하세요. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |397| `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`을 상속합니다. Claude Code의 자체 임시 파일은 항상 재정의를 사용합니다. 셸, 사용자 설정 또는 관리 설정에서 설정합니다. [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서는 무시됩니다 |

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

399| `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 이상이 필요합니다 |399| `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 이상이 필요합니다 |

400| `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 이상이 필요합니다 |400| `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 이상이 필요합니다 |

401| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Claude Code가 [원격 제어](/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` 또는 음수 값은 기한을 비활성화합니다 |401| `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` 또는 음수는 기한을 비활성화합니다 |

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

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

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

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

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

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

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

409| `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 이상이 필요합니다 |409| `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 이상이 필요합니다 |

410| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior)가 페이지 다운로드를 기다리는 최대 시간(밀리초)입니다. 따라가는 모든 리디렉션 포함입니다. 그 시간까지 다운로드가 완료되지 않으면 기한 오류로 실패합니다. 기본값은 `300000`(5분)입니다. 제한을 제거하려면 `0`으로 설정하세요. 일반 숫자만 사용합니다. 소수 또는 다른 표기법은 기본값을 유지합니다. Claude Code v2.1.268 이상이 필요합니다 |410| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | [WebFetch](/docs/ko/tools-reference#webfetch-tool-behavior)가 페이지 다운로드를 기다리는 상한(밀리초 단위)입니다. 따라가는 리다이렉트 포함입니다. 그때까지 완료되지 않은 다운로드는 기한 오류로 실패합니다. 기본값은 `300000`(5분)입니다. 제한을 제거하려면 `0`으로 설정합니다. 일반 숫자만 허용합니다. 소수 또는 기타 표기법은 기본값을 유지합니다. Claude Code v2.1.268 이상이 필요합니다 |

411| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | 단일 [워크플로우](/docs/ko/workflows) 실행이 한 번에 실행하는 에이전트 수입니다. `1`에서 `256`까지입니다. 기본적으로 실행은 한 번에 최대 16개의 에이전트를 실행합니다. Claude Code가 더 적은 CPU를 사용할 수 있으면 더 적습니다. 대기 중인 `agent()` 호출은 빈 슬롯을 기다립니다. 실행 중인 각 에이전트의 대화 기록은 Claude Code의 메모리에 남아 있으므로 더 높은 값은 메모리 사용을 증가시킵니다. 일반 숫자만 사용합니다. 범위를 벗어난 값 및 다른 표기법은 기본값을 유지합니다. Claude Code v2.1.269 이상이 필요합니다 |411| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | 단일 [워크플로우](/docs/ko/workflows) 실행이 한 번에 실행하는 에이전트 수입니다. `1`에서 `256` 사이입니다. 기본적으로 실행은 한 번에 최대 16개 에이전트를 실행합니다. Claude Code가 더 적은 CPU를 사용할 수 있으면 더 적습니다. 대기 중인 `agent()` 호출은 빈 슬롯을 기다립니다. 각 실행 중인 에이전트의 대화 기록은 Claude Code의 메모리에 남아 있으므로 더 높은 값은 메모리 사용을 올립니다. 일반 숫자만 허용합니다. 범위를 벗어난 값 및 기타 표기법은 기본값을 유지합니다. Claude Code v2.1.269 이상이 필요합니다 |

412| `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 이상이 필요합니다 |412| `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 이상이 필요합니다 |

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

414| `CLAUDE_DISABLE_ADOPT` | `←`를 누르거나 [`/background`](/docs/ko/agent-view#from-inside-a-session)로 세션을 백그라운드 처리할 때 진행 중인 백그라운드 작업을 전달하는 대신 중지하려면 `1`로 설정하세요. Claude Code는 백그라운드 처리 전에 확인하도록 요청한 다음 그렇지 않으면 전달될 작업을 중지합니다. Claude Code v2.1.195 이상이 필요합니다 |414| `CLAUDE_DISABLE_ADOPT` | `←`를 누르거나 [`/background`](/docs/ko/agent-view#from-inside-a-session)로 세션을 백그라운드 처리할 때 진행 중인 백그라운드 작업을 전달하는 대신 중지하려면 `1`로 설정합니다. Claude Code는 백그라운드 처리 전에 확인하도록 요청한 후 그렇지 않으면 이월될 작업을 중지합니다. Claude Code v2.1.195 이상이 필요합니다 |

415| `CLAUDE_EFFORT` | 서브프로세스가 시작될 때 적용되는 [노력 수준](/docs/ko/model-config#adjust-effort-level)으로 Bash 도구 서브프로세스 및 훅 명령에서 자동으로 설정됩니다: `low`, `medium`, `high`, `xhigh` 또는 `max`. Ultracode는 별개의 수준이 아니며 `xhigh`로 보고됩니다. [훅](/docs/ko/hooks)의 `effort.level` 필드와 일치합니다. 현재 모델이 노력 매개변수를 지원할 때만 설정됩니다 |415| `CLAUDE_EFFORT` | 서브프로세스가 시작될 때 적용되는 [노력 수준](/docs/ko/model-config#adjust-effort-level)으로 Bash 도구 서브프로세스 및 훅 명령에서 자동으로 설정됩니다. `low`, `medium`, `high`, `xhigh`, 또는 `max`. Ultracode는 별개의 수준이 아니며 `xhigh`로 보고됩니다. [훅](/docs/ko/hooks)에 전달된 `effort.level` 필드와 일치합니다. 현재 모델이 노력 매개변수를 지원할 때만 설정됩니다 |

416| `CLAUDE_ENABLE_BYTE_WATCHDOG` | 바이트 수준 스트리밍 유휴 감시견을 강제로 활성화하려면 `1`로 설정하거나, 강제로 비활성화하려면 `0`으로 설정하세요. `0`은 또한 [첫 번째 바이트 기한](/docs/ko/network-config#streaming-idle-watchdogs)을 감시견이 실행되는 연결에서 끕니다. 설정하지 않으면 감시견은 직접 Anthropic API 및 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 연결에서 기본적으로 활성화되고, `ANTHROPIC_BASE_URL` 또는 `ANTHROPIC_AWS_BASE_URL`을 통해 도달한 [게이트웨이](/docs/ko/gateways) 연결의 스트리밍 응답에서 활성화됩니다. v2.1.222 이전에는 이러한 게이트웨이 연결에서 실행되지 않았으므로 이벤트 수준 감시견이 keep-alive ping이 도착하는 동안에도 정지를 보고할 수 있었습니다. 타임아웃 및 타이머가 상호 작용하는 방식은 [스트리밍 유휴 감시견](/docs/ko/network-config#streaming-idle-watchdogs)을 참조하세요 |416| `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)을 참조하세요 |

417| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Amazon Bedrock `vnd.amazon.eventstream` 응답에서 바이트 수준 스트리밍 유휴 감시견을 활성화하려면 `1`로 설정하세요. 이는 또한 Bedrock 스트리밍 요청에서 [첫 번째 바이트 기한](/docs/ko/network-config#streaming-idle-watchdogs)을 활성화합니다. 기본적으로 꺼져 있습니다. `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 타임아웃을 구성하세요 |417| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Amazon Bedrock `vnd.amazon.eventstream` 응답에서 바이트 수준 스트리밍 유휴 감시견을 활성화하려면 `1`로 설정합니다. 이는 또한 Bedrock 스트리밍 요청에서 [첫 바이트 기한](/docs/ko/network-config#streaming-idle-watchdogs)을 활성화합니다. 기본적으로 꺼져 있습니다. `CLAUDE_STREAM_IDLE_TIMEOUT_MS`로 타임아웃을 구성합니다 |

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

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

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

421| `CLAUDE_PID` | Claude Code는 이를 생성하는 서브프로세스에서 자신의 프로세스 ID로 설정합니다: Bash 및 PowerShell 도구 명령 및 훅 명령. Linux에서 Bash 도구의 셸 통합은 이를 사용하여 Claude Code 프로세스 자체와 일치하는 `pkill` 패턴을 거부합니다. [오류 참조](/docs/ko/errors#pkill-pattern-matches-the-claude-code-process)를 참조하세요. 자신의 스크립트에서 읽어 부모 Claude Code 프로세스를 의도적으로 식별하거나 신호합니다. Claude Code v2.1.214 이상이 필요합니다 |421| `CLAUDE_PID` | Claude Code는 이를 생성하는 서브프로세스에서 자신의 프로세스 ID로 설정합니다. Bash 및 PowerShell 도구 명령 및 훅 명령입니다. Linux에서 Bash 도구의 셸 통합은 이를 사용하여 Claude Code 프로세스 자체와 일치하는 `pkill` 패턴을 거부합니다. [오류 참조](/docs/ko/errors#pkill-pattern-matches-the-claude-code-process)를 참조하세요. 자신의 스크립트에서 읽어 부모 Claude Code 프로세스를 의도적으로 식별하거나 신호합니다. Claude Code v2.1.214 이상이 필요합니다 |

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

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

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

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

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

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

428| `DISABLE_AUTO_COMPACT` | 컨텍스트 제한에 접근할 때 자동 압축을 비활성화하려면 `1`로 설정하세요. 수동 `/compact` 명령은 사용 가능하게 유지됩니다. 압축이 발생할 때를 명시적으로 제어하려는 경우 사용합니다. [`autoCompactEnabled`](/docs/ko/settings-reference#autocompactenabled) 설정을 재정의합니다 |428| `DISABLE_AUTO_COMPACT` | 컨텍스트 제한에 접근할 때 자동 압축을 비활성화하려면 `1`로 설정합니다. 수동 `/compact` 명령은 사용 가능하게 유지됩니다. 압축이 발생할 때를 명시적으로 제어하려고 할 때 사용합니다. [`autoCompactEnabled`](/docs/ko/settings-reference#autocompactenabled) 설정을 재정의합니다 |

429| `DISABLE_COMPACT` | 모든 압축을 비활성화하려면 `1`로 설정하세요: 자동 압축 및 수동 `/compact` 명령 모두 |429| `DISABLE_COMPACT` | 모든 압축을 비활성화하려면 `1`로 설정합니다. 자동 압축 및 수동 `/compact` 명령 모두입니다 |

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

431| `DISABLE_DOCTOR_COMMAND` | [`/doctor`](/docs/ko/commands#all-commands) 설정 점검 기술 및 `/checkup` 별칭을 숨기려면 `1`로 설정하세요. 사용자가 세션에서 설정 진단을 실행하지 않아야 하는 관리 배포에 유용합니다. `claude doctor` 터미널 명령에는 영향을 주지 않습니다. v2.1.205 이전에는 이 변수가 `/doctor` 진단 화면 명령을 숨겼습니다 |431| `DISABLE_DOCTOR_COMMAND` | [`/doctor`](/docs/ko/commands#all-commands) 설정 점검 기술 및 `/checkup` 별칭을 숨기려면 `1`로 설정합니다. 사용자가 세션에서 설정 진단을 실행하지 않아야 하는 관리 배포에 유용합니다. `claude doctor` 터미널 명령에는 영향을 주지 않습니다. v2.1.205 이전에는 이 변수가 `/doctor` 진단 화면 명령을 숨겼습니다 |

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

433| `DISABLE_EXTRA_USAGE_COMMAND` | 사용자가 속도 제한을 초과하여 추가 사용을 구매할 수 있는 `/usage-credits` 명령을 숨기려면 `1`로 설정하세요 |433| `DISABLE_EXTRA_USAGE_COMMAND` | 사용자가 속도 제한을 초과하여 추가 사용을 구매할 수 있는 `/usage-credits` 명령을 숨기려면 `1`로 설정합니다 |

434| `DISABLE_FEEDBACK_COMMAND` | `/feedback` 명령 및 [Claude 작성 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior)을 비활성화하려면 `1`로 설정하세요. 또한 `/bug` 및 `/share`를 비활성화합니다. 이들은 동일한 경로를 통해 보고합니다. v2.1.212 이전에는 `/feedback`의 별칭이었으므로 명령은 모든 이름으로 비활성화되었습니다. 더 이상 사용되지 않는 이름 `DISABLE_BUG_COMMAND`도 허용됩니다 |434| `DISABLE_FEEDBACK_COMMAND` | `/feedback` 명령 및 [Claude 작성 피드백](/docs/ko/tools-reference#sendfeedback-tool-behavior)을 비활성화하려면 `1`로 설정합니다. 또한 동일한 경로를 통해 보고하는 `/bug` 및 `/share`를 비활성화합니다. v2.1.212 이전에는 `/feedback`의 별칭이었으므로 명령은 모든 이름으로 비활성화되었습니다. 더 이상 사용되지 않는 이름 `DISABLE_BUG_COMMAND`도 허용됩니다 |

435| `DISABLE_GROWTHBOOK` | GrowthBook 기능 플래그 가져오기를 비활성화하고 모든 플래그에 대해 코드 기본값을 사용하려면 `1` 또는 `true`로 설정하세요. 이는 [원격 제어](/docs/ko/remote-control#requirements) 및 기타 [#features-that-need-feature-flag-fetching](/docs/ko/env-vars#features-that-need-feature-flag-fetching)을 사용할 수 없게 합니다. `0` 또는 `false`로 설정하면 가져오기가 켜진 상태로 유지됩니다. 원격 분석 이벤트 로깅은 `DISABLE_TELEMETRY`도 설정되지 않으면 켜진 상태로 유지됩니다 |435| `DISABLE_GROWTHBOOK` | GrowthBook 기능 플래그 가져오기를 비활성화하고 모든 플래그에 대해 코드 기본값을 사용하려면 `1` 또는 `true`로 설정합니다. 이는 [Remote Control](/docs/ko/remote-control#requirements) 및 기타 [기능 플래그 가져오기가 필요한 기능](#features-that-need-feature-flag-fetching)을 사용할 수 없게 합니다. `0` 또는 `false`로 설정하면 가져오기가 켜진 상태로 유지됩니다. 원격 분석 이벤트 로깅은 `DISABLE_TELEMETRY`도 설정되지 않으면 켜진 상태로 유지됩니다 |

436| `DISABLE_INSTALLATION_CHECKS` | 설치 경고를 비활성화하려면 `1`로 설정하세요. 설치 위치를 수동으로 관리할 때만 사용하세요. 표준 설치의 문제를 마스킹할 수 있습니다 |436| `DISABLE_INSTALLATION_CHECKS` | 설치 경고를 비활성화하려면 `1`로 설정합니다. 설치 위치를 수동으로 관리할 때만 사용합니다. 표준 설치의 문제를 마스킹할 수 있습니다 |

437| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | `/install-github-app` 명령을 숨기려면 `1`로 설정하세요. 타사 제공자(Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry)를 사용할 때 이미 숨겨져 있습니다 |437| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | `/install-github-app` 명령을 숨기려면 `1`로 설정합니다. 타사 공급자(Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry)를 사용할 때 이미 숨겨져 있습니다 |

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

439| `DISABLE_LOGIN_COMMAND` | `/login` 명령을 숨기려면 `1`로 설정하세요. 인증이 API 키 또는 `apiKeyHelper`를 통해 외부에서 처리될 때 유용합니다 |439| `DISABLE_LOGIN_COMMAND` | `/login` 명령을 숨기려면 `1`로 설정합니다. 인증이 API 키 또는 `apiKeyHelper`를 통해 외부에서 처리될 때 유용합니다 |

440| `DISABLE_LOGOUT_COMMAND` | `/logout` 명령을 숨기려면 `1`로 설정하세요 |440| `DISABLE_LOGOUT_COMMAND` | `/logout` 명령을 숨기려면 `1`로 설정합니다 |

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

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

443| `DISABLE_PROMPT_CACHING_HAIKU` | Haiku 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정하세요 |443| `DISABLE_PROMPT_CACHING_HAIKU` | Haiku 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |

444| `DISABLE_PROMPT_CACHING_OPUS` | Opus 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정하세요 |444| `DISABLE_PROMPT_CACHING_OPUS` | Opus 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |

445| `DISABLE_PROMPT_CACHING_SONNET` | Sonnet 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정하세요 |445| `DISABLE_PROMPT_CACHING_SONNET` | Sonnet 모델에 대해 프롬프트 캐싱을 비활성화하려면 `1`로 설정합니다 |

446| `DISABLE_TELEMETRY` | 원격 분석을 옵트아웃하려면 `1` 같은 비어있지 않은 값으로 설정하세요. **`0` 또는 `false`로 설정하면 여전히 옵트아웃합니다**. 대부분의 온/오프 변수와 달리 변수를 설정 해제하여 원격 분석을 다시 켜세요. 원격 분석 이벤트는 코드, 파일 경로 또는 bash 명령 같은 사용자 데이터를 포함하지 않습니다. 또한 `DISABLE_GROWTHBOOK`과 동일한 효과로 기능 플래그 가져오기를 비활성화합니다. 이는 [원격 제어](/docs/ko/remote-control#requirements) 및 기타 [#features-that-need-feature-flag-fetching](/docs/ko/env-vars#features-that-need-feature-flag-fetching)을 사용할 수 없게 합니다. [조직의 원격 분석 끄기](/docs/ko/managed-settings#turn-telemetry-off-for-your-organization)를 참조하세요 |446| `DISABLE_TELEMETRY` | 원격 분석을 옵트아웃하려면 `1` 같은 비어있지 않은 값으로 설정합니다. **`0` 또는 `false`로 설정하면 여전히 옵트아웃합니다**. 대부분의 온/오프 변수와 달리 변수를 설정 해제하여 원격 분석을 다시 켭니다. 원격 분석 이벤트는 코드, 파일 경로, bash 명령 같은 사용자 데이터를 포함하지 않습니다. 또한 `DISABLE_GROWTHBOOK`과 동일한 효과로 기능 플래그 가져오기를 비활성화합니다. 이는 [Remote Control](/docs/ko/remote-control#requirements) 및 기타 [기능 플래그 가져오기가 필요한 기능](#features-that-need-feature-flag-fetching)을 사용할 수 없게 합니다. [조직의 원격 분석 끄기](/docs/ko/managed-settings#turn-telemetry-off-for-your-organization)를 참조하세요 |

447| `DISABLE_UPDATES` | 수동 `claude update` 및 `claude install`을 포함한 모든 업데이트를 차단하려면 `1`로 설정하세요. `DISABLE_AUTOUPDATER`보다 더 엄격합니다. 자신의 채널을 통해 Claude Code를 배포하고 사용자가 자체 업데이트하지 않아야 할 때 사용합니다 |447| `DISABLE_UPDATES` | 수동 `claude update` 및 `claude install`을 포함한 모든 업데이트를 차단하려면 `1`로 설정합니다. `DISABLE_AUTOUPDATER`보다 더 엄격합니다. 자신의 채널을 통해 Claude Code를 배포하고 사용자가 자동 업데이트하지 않아야 할 때 사용합니다 |

448| `DISABLE_UPGRADE_COMMAND` | `/upgrade` 명령을 숨기려면 `1`로 설정하세요 |448| `DISABLE_UPGRADE_COMMAND` | `/upgrade` 명령을 숨기려면 `1`로 설정합니다 |

449| `DO_NOT_TRACK` | `DISABLE_TELEMETRY`와 동일한 효과로 원격 분석을 옵트아웃하려면 `1`로 설정하세요. 이는 [원격 제어](/docs/ko/remote-control#requirements) 및 기타 [#features-that-need-feature-flag-fetching](/docs/ko/env-vars#features-that-need-feature-flag-fetching)을 사용할 수 없게 합니다. Claude Code는 이 변수를 표준 부울로 읽으므로 `0`은 원격 분석을 켜두고 많은 개발자 CLI에서 인식하는 교차 도구 규칙을 존중합니다 |449| `DO_NOT_TRACK` | `DISABLE_TELEMETRY`와 동일한 효과로 원격 분석을 옵트아웃하려면 `1`로 설정합니다. [Remote Control](/docs/ko/remote-control#requirements) 및 기타 [기능 플래그 가져오기가 필요한 기능](#features-that-need-feature-flag-fetching)을 사용할 수 없게 합니다. Claude Code는 이 변수를 표준 부울로 읽으므로 `0`은 원격 분석을 켜진 상태로 유지하고, 많은 개발자 CLI에서 인식하는 교차 도구 규칙을 존중합니다 |

450| `ENABLE_BETA_TRACING_DETAILED` | `BETA_TRACING_ENDPOINT`와 함께 `1`로 설정하여 [상세 베타 추적](/docs/ko/monitoring-usage#traces-beta)을 켜세요. 콘텐츠 베어링 스팬 속성 및 `claude_code.hook` 스팬을 추가합니다. 대화형 CLI 세션은 또한 조직이 베타에 대해 허용 목록에 있어야 합니다. 두 변수 모두 [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서 무시됩니다 |450| `ENABLE_BETA_TRACING_DETAILED` | `BETA_TRACING_ENDPOINT`와 함께 [상세 베타 추적](/docs/ko/monitoring-usage#traces-beta)을 켜려면 `1`로 설정합니다. 콘텐츠 보유 스팬 속성 및 `claude_code.hook` 스팬을 추가합니다. 대화형 CLI 세션은 또한 조직이 베타에 대해 허용 목록에 있어야 합니다. 두 변수 모두 [프로젝트 및 로컬 설정](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)에서 무시됩니다 |

451| `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)를 대신 설정하세요 |451| `ENABLE_CLAUDEAI_MCP_SERVERS` | 로그인한 사용자에 대해 기본적으로 활성화된 [claude.ai MCP 서버](/docs/ko/mcp#use-mcp-servers-from-claude-ai) 가져오기를 중지하려면 `false`로 설정합니다. 프로젝트 또는 조직별로 비활성화하려면 설정 대신 [`disableClaudeAiConnectors`](/docs/ko/settings-reference#disableclaudeaiconnectors)를 설정합니다 |

452| `ENABLE_PROMPT_CACHING_1H` | 기본 5분 대신 1시간 [프롬프트 캐시 TTL](/docs/ko/prompt-caching#cache-lifetime)을 요청하려면 `1`로 설정하세요. API 키, [Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud의 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`을 사용하세요. 이들은 이 변수보다 우선합니다 |452| `ENABLE_PROMPT_CACHING_1H` | 기본 5분 대신 1시간 [프롬프트 캐시 TTL](/docs/ko/prompt-caching#cache-lifetime)을 요청하려면 `1`로 설정합니다. API 키, [Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud의 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`을 사용합니다. 이들은 이 변수보다 우선합니다 |

453| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | 더 이상 사용되지 않음. 대신 `ENABLE_PROMPT_CACHING_1H`을 사용하세요 |453| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | 더 이상 사용되지 않습니다. 대신 `ENABLE_PROMPT_CACHING_1H`을 사용합니다 |

454| `ENABLE_TOOL_SEARCH` | [MCP 도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)을 제어합니다. 설정하지 않으면 Claude Code는 기본적으로 모든 MCP 도구를 연기합니다. 그러나 Claude 4.5 세대보다 이전인 Google Cloud의 Agent Platform 모델, Azure에서 호스팅되는 Microsoft Foundry 배포 및 `ANTHROPIC_BASE_URL`이 비자사 호스트를 가리킬 때는 미리 로드합니다. `true`는 항상 연기하고 베타 헤더를 전송합니다. 단, 동일한 Agent Platform 모델 및 Microsoft Foundry 배포에서는 제외됩니다. 요청이 `tool_reference`를 지원하지 않는 프록시에서 실패합니다. `auto`는 도구 정의가 컨텍스트의 10% 내에 맞을 때 미리 로드합니다. `auto:N`은 사용자 정의 임계값을 설정합니다(예: `auto:5` 5%). `false`는 모든 도구를 미리 로드합니다. 자신이 설정한 값은 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`가 설정되면 무시됩니다. v2.1.221 이전에는 Claude Code가 설정을 `true`로 설정하지 않으면 Google Cloud의 Agent Platform의 모든 모델에 대해 도구 검색을 비활성화했습니다 |454| `ENABLE_TOOL_SEARCH` | [MCP 도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)을 제어합니다. 설정 해제되면 Claude Code는 기본적으로 모든 MCP 도구를 연기합니다. 그래도 Google Cloud의 Agent Platform 모델(Claude 4.5 세대보다 이전), Azure에서 호스팅되는 Microsoft Foundry 배포, `ANTHROPIC_BASE_URL`이 비자사 호스트를 가리킬 때 미리 로드합니다. `true`는 항상 연기하고 베타 헤더를 전송합니다. 단, 해당 Agent Platform 모델 및 Microsoft Foundry 배포는 제외됩니다. 요청이 `tool_reference`를 지원하지 않는 프록시에서 실패합니다. `auto`는 도구 정의가 컨텍스트의 10% 이내에 맞을 때 미리 로드합니다. `auto:N`은 사용자 정의 임계값을 설정합니다. 예: `auto:5`(5%). `false`는 모든 도구를 미리 로드합니다. 자신이 설정한 값은 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`가 설정되었을 때 무시됩니다. v2.1.221 이전에는 Claude Code가 이 변수를 `true`로 설정하지 않으면 Google Cloud의 Agent Platform의 모든 모델에 대해 도구 검색을 비활성화했습니다 |

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

456| `FORCE_AUTOUPDATE_PLUGINS` | 주 자동 업데이터가 `DISABLE_AUTOUPDATER`를 통해 비활성화되었더라도 플러그인 자동 업데이트를 강제하려면 `1`로 설정하세요 |456| `FORCE_AUTOUPDATE_PLUGINS` | 주 자동 업데이터가 `DISABLE_AUTOUPDATER`를 통해 비활성화되었을 때에도 플러그인 자동 업데이트를 강제하려면 `1`로 설정합니다 |

457| `FORCE_HYPERLINK` | 터미널이 지원하지만 자동 감지되지 않을 때 클릭 가능한 OSC 8 하이퍼링크를 활성화하려면 `1`로 설정하거나, 비활성화하려면 `0`으로 설정하세요. 설정하지 않으면 Claude Code는 터미널 지원을 감지할 때만 하이퍼링크를 활성화합니다. Claude Code는 이 값을 부울이 아닌 숫자로 구문 분석하므로 `false`, `no` 또는 `off` 같은 값은 하이퍼링크를 비활성화하는 대신 활성화합니다. 바닥글 [PR 또는 병합 요청 배지](/docs/ko/interactive-mode#pr-review-status)는 Claude Code가 터미널 지원을 감지할 수 없을 때(예: SSH를 통해)에도 하이퍼링크로 렌더링됩니다. 배지를 일반 텍스트로 렌더링하려면 `0`으로 설정하세요 |457| `FORCE_HYPERLINK` | 터미널이 지원하지만 자동 감지되지 않을 때 클릭 가능한 OSC 8 하이퍼링크를 활성화하려면 `1`로 설정하거나, 비활성화하려면 `0`으로 설정합니다. 설정 해제되면 Claude Code는 터미널 지원을 감지할 때만 하이퍼링크를 활성화합니다. Claude Code는 이 값을 부울이 아닌 숫자로 구문 분석하므로 `false`, `no`, 또는 `off` 같은 값은 하이퍼링크를 비활성화하는 대신 활성화합니다. 바닥글 [PR 또는 병합 요청 배지](/docs/ko/interactive-mode#pr-review-status)는 Claude Code가 터미널 지원을 감지할 수 없을 때(예: SSH를 통해)에도 하이퍼링크로 렌더링됩니다. 배지를 일반 텍스트로 렌더링하려면 `0`으로 설정합니다 |

458| `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` 설정을 재정의합니다 |458| `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` 설정을 재정의합니다 |

459| `HTTP_PROXY` | 네트워크 연결을 위한 HTTP 프록시 서버를 지정합니다 |459| `HTTP_PROXY` | 네트워크 연결을 위한 HTTP 프록시 서버를 지정합니다 |

460| `HTTPS_PROXY` | 네트워크 연결을 위한 HTTPS 프록시 서버를 지정합니다 |460| `HTTPS_PROXY` | 네트워크 연결을 위한 HTTPS 프록시 서버를 지정합니다 |

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

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

463| `MAX_STRUCTURED_OUTPUT_RETRIES` | 비대화형 모드에서 [`--json-schema`](/docs/ko/cli-reference#cli-flags)에 대해 모델의 응답이 유효성 검사에 실패할 때 Claude Code가 허용하는 시도 횟수입니다. `-p` 플래그 사용. 그 이후 유효한 출력이 없으면 실행이 실패합니다. [워크플로우](/docs/ko/workflows) 서브에이전트의 구조화된 출력이 유효성 검사에 실패할 때도 동일한 상한이 적용됩니다. 기본값 5(첫 번째 시도 및 4번의 재시도) |463| `MAX_STRUCTURED_OUTPUT_RETRIES` | 비대화형 모드(`-p` 플래그)에서 [`--json-schema`](/docs/ko/cli-reference#cli-flags)에 대한 유효성 검사에 실패한 모델 응답에 대해 Claude Code가 허용하는 시도 횟수입니다. 그 이후 유효한 출력이 없으면 실행이 실패합니다. [워크플로우](/docs/ko/workflows) 서브에이전트의 구조화된 출력이 유효성 검사에 실패할 때도 동일한 상한이 적용됩니다. 기본값 5(첫 시도 + 4회 재시도) |

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

465| `MCP_CLIENT_SECRET` | [사전 구성된 자격 증명](/docs/ko/mcp#use-pre-configured-oauth-credentials)이 필요한 MCP 서버의 OAuth 클라이언트 비밀입니다. `--client-secret`으로 서버를 추가할 때 대화형 프롬프트를 피합니다 |465| `MCP_CLIENT_SECRET` | [사전 구성된 자격 증명](/docs/ko/mcp#use-pre-configured-oauth-credentials)이 필요한 MCP 서버의 OAuth 클라이언트 비밀입니다. `--client-secret`으로 서버를 추가할 때 대화형 프롬프트를 피합니다 |

466| `MCP_CONNECTION_NONBLOCKING` | MCP 서버가 첫 번째 쿼리 전에 연결될 때까지 시작이 대기하는지 여부를 제어합니다. MCP 시작은 기본적으로 비차단입니다: 서버는 백그라운드에서 연결되고 도구는 완료되면 사용 가능해집니다. 첫 번째 쿼리 전에 서버가 연결될 때까지 기다리려면 `0`으로 설정하세요. [`alwaysLoad: true`](/docs/ko/mcp#exempt-a-server-from-deferral)로 구성된 서버는 어쨌든 시작을 기다리게 합니다. 단, [검색 캐시](/docs/ko/mcp#server-status-detail)에서 제공되는 경우는 제외됩니다. 도구가 첫 번째 프롬프트가 구축될 때 존재해야 하기 때문입니다. 비대화형 모드(`-p`)에서 `--input-format stream-json` 없이 Claude Code는 첫 번째 턴 전에 여전히 보류 중인 서버를 기다립니다. 이 변수와 관계없이. [`--mcp-config`](/docs/ko/cli-reference#cli-flags)를 명시적으로 전달하면 대기에 더 긴 기한이 있습니다. 캐시된 서버 예외는 해당 플래그 항목을 참조하세요 |466| `MCP_CONNECTION_NONBLOCKING` | MCP 서버가 첫 번째 쿼리 전에 연결될 때까지 시작이 대기하는지 여부를 제어합니다. MCP 시작은 기본적으로 비차단입니다. 서버는 백그라운드에서 연결하고 완료되면 도구를 사용할 수 있게 됩니다. 첫 번째 쿼리 전에 서버가 연결될 때까지 Claude Code가 대기하도록 하려면 `0`으로 설정합니다. [`alwaysLoad: true`](/docs/ko/mcp#exempt-a-server-from-deferral)로 구성된 서버는 [검색 캐시](/docs/ko/mcp#server-status-detail)에서 제공되는 경우를 제외하고 여전히 시작이 대기하도록 합니다. 첫 프롬프트가 구축될 때 도구가 있어야 하기 때문입니다. 비대화형 모드(`-p`)에서 `--input-format stream-json` 없이 Claude Code는 여전히 첫 번째 턴 전에 보류 중인 서버를 기다립니다. 이 변수에 관계없이입니다. [`--mcp-config`](/docs/ko/cli-reference#cli-flags)를 명시적으로 전달하면 대기에 더 긴 기한이 있습니다. 캐시된 서버 예외는 해당 플래그 항목을 참조하세요 |

467| `MCP_CONNECT_TIMEOUT_MS` | 차단 MCP 시작이 도구 목록을 스냅샷하기 전에 연결 배치를 기다리는 시간(밀리초)(기본값: 5000). `MCP_CONNECTION_NONBLOCKING=0` 또는 [`alwaysLoad: true`](/docs/ko/mcp#exempt-a-server-from-deferral)로 표시된 서버에 적용됩니다. 서버는 기한에서 여전히 보류 중이면 백그라운드에서 계속 연결됩니다. `MCP_TIMEOUT`과는 다릅니다. 이는 개별 서버의 연결 시도를 경계합니다 |467| `MCP_CONNECT_TIMEOUT_MS` | 차단 MCP 시작이 도구 목록을 스냅샷하기 전에 연결 배치를 기다리는 시간(밀리초 단위)입니다(기본값: 5000). [`alwaysLoad: true`](/docs/ko/mcp#exempt-a-server-from-deferral)로 표시된 서버에 적용됩니다. 서버는 기한에서 보류 중인 상태로 백그라운드에서 계속 연결됩니다. `MCP_TIMEOUT`과는 다릅니다. 이는 개별 서버의 연결 시도를 한계합니다 |

468| `MCP_DISCOVERY_CACHE` | [MCP 검색 캐시](/docs/ko/mcp#server-status-detail)를 켜거나 끕니다. 캐시가 켜져 있으면 이전에 사용한 원격 HTTP 또는 SSE 서버가 [`cached` 상태](/docs/ko/mcp#server-status-detail)를 표시할 수 있고 Claude Code는 시작 시 대신 첫 번째 도구 호출에서 연결합니다. 캐시는 기본적으로 꺼져 있습니다. 점진적 롤아웃이 계정에 대해 활성화하지 않으면. 켜려면 `1`로 설정하거나, 롤아웃이 활성화했더라도 꺼두려면 `0`으로 설정하세요. v2.1.238 이전에는 캐시가 기본적으로 켜져 있었습니다. `cached` 상태는 Claude Code v2.1.221 이상이 필요합니다 |468| `MCP_DISCOVERY_CACHE` | [MCP 검색 캐시](/docs/ko/mcp#server-status-detail)를 켜거나 끕니다. 캐시가 켜져 있으면 이전에 사용한 원격 HTTP 또는 SSE 서버가 [`cached` 상태](/docs/ko/mcp#server-status-detail)를 표시할 수 있고, Claude Code는 시작 시 대신 첫 번째 도구 호출에서 연결합니다. 캐시는 기본적으로 꺼져 있습니다. 점진적 롤아웃이 계정에 대해 활성화하지 않으면입니다. 롤아웃이 활성화했을 때에도 켜려면 `1`로 설정하거나, 꺼진 상태로 유지하려면 `0`으로 설정합니다. v2.1.238 이전에는 캐시가 기본적으로 켜져 있었습니다. `cached` 상태에는 Claude Code v2.1.221 이상이 필요합니다 |

469| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | [검색 캐시](/docs/ko/mcp#server-status-detail) 항목의 최대 나이(초)(기본값: 14400 또는 4시간). 항목이 그보다 오래된 시작에서 Claude Code는 항목을 버리고 시작 시 서버를 연결합니다. 캐시가 꺼져 있을 때처럼. Claude Code는 값을 7일로 제한합니다. v2.1.238 이전에는 기본값이 86400(24시간)이었고 Claude Code는 값을 제한하지 않았습니다 |469| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | [검색 캐시](/docs/ko/mcp#server-status-detail) 항목의 최대 나이(초 단위)입니다 (기본값: 14400, 또는 4시간). 항목이 그보다 오래된 시작에서 Claude Code는 이를 버리고 시작 시 서버를 연결합니다. 캐시가 꺼져 있을 때처럼입니다. Claude Code는 값을 7일로 제한합니다. v2.1.238 이전에는 기본값이 86400(24시간)이었고 Claude Code는 값을 제한하지 않았습니다 |

470| `MCP_DISCOVERY_CACHE_STRIKES` | [검색 캐시](/docs/ko/mcp#server-status-detail) 항목이 `MCP_DISCOVERY_CACHE_TTL_S`보다 오래된 시작에서 Claude Code는 백그라운드에서 새로 고칩니다. 이 변수는 연속으로 새로 고침이 실패할 수 있는 횟수를 설정합니다. 그 후 Claude Code는 항목을 버리고 다음 시작에서 서버를 연결합니다(기본값: 1). 네트워크 연결이 가끔 끊어지면 올리세요. 하나의 실패한 새로 고침이 항목을 버리지 않도록. Claude Code v2.1.238 이상이 필요합니다 |470| `MCP_DISCOVERY_CACHE_STRIKES` | [검색 캐시](/docs/ko/mcp#server-status-detail) 항목이 `MCP_DISCOVERY_CACHE_TTL_S`보다 오래된 시작에서 Claude Code는 백그라운드에서 새로 고칩니다. 이 변수는 새로 고침이 연속으로 실패할 수 있는 횟수를 설정합니다. 그 후 Claude Code는 항목을 버리고 다음 시작에서 서버를 연결합니다(기본값: 1). 네트워크 연결이 가끔 끊어지면 이를 올립니다. 하나의 실패한 새로 고침이 항목을 버리지 않도록 합니다. Claude Code v2.1.238 이상이 필요합니다 |

471| `MCP_DISCOVERY_CACHE_TTL_S` | Claude Code가 새로 고침 없이 [검색 캐시](/docs/ko/mcp#server-status-detail) 항목을 사용하는 시간(초)(기본값: 900). 항목이 그보다 오래된 시작에서 Claude Code는 여전히 사용하지만 백그라운드에서 새로 고칩니다. 항목이 `MCP_DISCOVERY_CACHE_MAX_STALE_S`보다 오래되면 Claude Code는 버립니다. Claude Code는 값을 `MCP_DISCOVERY_CACHE_MAX_STALE_S`로 제한합니다. 기본값 4시간입니다. v2.1.238 이전에는 Claude Code가 값을 제한하지 않았습니다 |471| `MCP_DISCOVERY_CACHE_TTL_S` | Claude Code가 새로 고침 없이 [검색 캐시](/docs/ko/mcp#server-status-detail) 항목을 사용하는 시간(초 단위)입니다(기본값: 900). 항목이 그보다 오래된 시작에서 Claude Code는 여전히 사용하지만 백그라운드에서 새로 고칩니다. 항목이 `MCP_DISCOVERY_CACHE_MAX_STALE_S`보다 오래되면 Claude Code는 버립니다. Claude Code는 값을 `MCP_DISCOVERY_CACHE_MAX_STALE_S`로 제한합니다. 기본값은 4시간입니다. v2.1.238 이전에는 Claude Code가 값을 제한하지 않았습니다 |

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

473| `MCP_PROTOCOL_NEGOTIATION` | [v2 MCP 클라이언트 런타임](/docs/ko/mcp#mcp-client-runtimes)에서만 Claude Code가 MCP 프로토콜 개정 2026-07-28에 대해 서버를 조사하는지 여부입니다. HTTP, claude.ai 커넥터 및 stdio 서버를 조사하려면 `auto`로 설정하세요. 프로브에 응답하지 않는 서버는 이전 프로토콜에서 연결됩니다. SSE 및 WebSocket 서버는 항상 그렇게 합니다. 모든 서버에 대한 프로브를 건너뛰려면 `legacy`로 설정하세요. 변수가 없으면 Claude Code는 HTTP 서버를 조사하고 [기능 플래그를 가져오는](#features-that-need-feature-flag-fetching) 세션에서 claude.ai 커넥터 서버도 조사합니다. 다른 값은 디버그 로그의 경고로 무시됩니다. Claude Code v2.1.221 이상이 필요합니다 |473| `MCP_PROTOCOL_NEGOTIATION` | [v2 MCP 클라이언트 런타임](/docs/ko/mcp#mcp-client-runtimes)에서만 Claude Code가 MCP 프로토콜 개정 2026-07-28에 대해 서버를 조사하는지 여부입니다. HTTP, claude.ai 커넥터, stdio 서버를 조사하려면 `auto`로 설정합니다. 조사에 응답하지 않는 서버는 이전 프로토콜에서 연결합니다. SSE 및 WebSocket 서버는 항상 그렇게 합니다. 모든 서버에 대해 조사를 건너뛰려면 `legacy`로 설정합니다. 변수가 없으면 Claude Code는 HTTP 서버를 조사하고, [기능 플래그를 가져오는](#features-that-need-feature-flag-fetching) 세션에서 claude.ai 커넥터 서버도 조사합니다. 다른 값은 디버그 로그의 경고로 무시됩니다. Claude Code v2.1.221 이상이 필요합니다 |

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

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

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

477| `MCP_TIMEOUT` | MCP 서버 시작의 타임아웃(밀리초)(기본값: 30000 또는 30초) |477| `MCP_TIMEOUT` | MCP 서버 시작의 타임아웃(밀리초 단위)(기본값: 30000, 또는 30초) |

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

479| `NO_PROXY` | 프록시를 우회하여 요청이 직접 발급될 도메인 및 IP의 목록입니다 |479| `NO_PROXY` | 프록시를 우회하여 요청이 직접 발급될 도메인 및 IP의 목록입니다 |

480| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | 속성 값 길이에 대한 표준 OpenTelemetry SDK 제한입니다. Claude Code는 콘텐츠 베어링 원격 분석 속성을 이것과 `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`의 더 작은 값으로 제한합니다. 잘림 마커가 SDK 제한 내에 유지됩니다. Claude Code는 `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` 및 `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` 변형을 동일하게 읽고 설정된 가장 작은 값이 모든 신호에 적용됩니다. Claude Code v2.1.214 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage#common-configuration-variables)을 참조하세요 |480| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | 속성 값 길이의 표준 OpenTelemetry SDK 제한입니다. Claude Code는 콘텐츠 보유 원격 분석 속성을 이것과 `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`의 더 작은 값으로 제한합니다. 자르기 마커는 SDK 제한 내에 유지됩니다. Claude Code는 `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` 및 `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` 변형을 동일한 방식으로 읽고, 설정된 가장 작은 값이 모든 신호에 적용됩니다. Claude Code v2.1.214 이상이 필요합니다. [모니터링](/docs/ko/monitoring-usage#common-configuration-variables)을 참조하세요 |

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

496| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Google Cloud의 Agent Platform을 사용할 때 Claude 3.5 Haiku의 리전을 재정의합니다 |496| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Google Cloud의 Agent Platform을 사용할 때 Claude 3.5 Haiku의 영역을 재정의합니다 |

497| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Google Cloud의 Agent Platform을 사용할 때 Claude 3.5 Sonnet의 리전을 재정의합니다 |497| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Google Cloud의 Agent Platform을 사용할 때 Claude 3.5 Sonnet의 영역을 재정의합니다 |

498| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Google Cloud의 Agent Platform을 사용할 때 Claude 3.7 Sonnet의 리전을 재정의합니다 |498| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Google Cloud의 Agent Platform을 사용할 때 Claude 3.7 Sonnet의 영역을 재정의합니다 |

499| `VERTEX_REGION_CLAUDE_4_0_OPUS` | Google Cloud의 Agent Platform을 사용할 때 Claude 4.0 Opus의 리전을 재정의합니다 |499| `VERTEX_REGION_CLAUDE_4_0_OPUS` | Google Cloud의 Agent Platform을 사용할 때 Claude 4.0 Opus의 영역을 재정의합니다 |

500| `VERTEX_REGION_CLAUDE_4_0_SONNET` | Google Cloud의 Agent Platform을 사용할 때 Claude 4.0 Sonnet의 리전을 재정의합니다 |500| `VERTEX_REGION_CLAUDE_4_0_SONNET` | Google Cloud의 Agent Platform을 사용할 때 Claude 4.0 Sonnet의 영역을 재정의합니다 |

501| `VERTEX_REGION_CLAUDE_4_1_OPUS` | Google Cloud의 Agent Platform을 사용할 때 Claude 4.1 Opus의 리전을 재정의합니다 |501| `VERTEX_REGION_CLAUDE_4_1_OPUS` | Google Cloud의 Agent Platform을 사용할 때 Claude 4.1 Opus의 영역을 재정의합니다 |

502| `VERTEX_REGION_CLAUDE_4_5_OPUS` | Google Cloud의 Agent Platform을 사용할 때 Claude Opus 4.5의 리전을 재정의합니다 |502| `VERTEX_REGION_CLAUDE_4_5_OPUS` | Google Cloud의 Agent Platform을 사용할 때 Claude Opus 4.5의 영역을 재정의합니다 |

503| `VERTEX_REGION_CLAUDE_4_5_SONNET` | Google Cloud의 Agent Platform을 사용할 때 Claude Sonnet 4.5의 리전을 재정의합니다 |503| `VERTEX_REGION_CLAUDE_4_5_SONNET` | Google Cloud의 Agent Platform을 사용할 때 Claude Sonnet 4.5의 영역을 재정의합니다 |

504| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Google Cloud의 Agent Platform을 사용할 때 Claude Opus 4.6의 리전을 재정의합니다 |504| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Google Cloud의 Agent Platform을 사용할 때 Claude Opus 4.6의 영역을 재정의합니다 |

505| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Google Cloud의 Agent Platform을 사용할 때 Claude Sonnet 4.6의 리전을 재정의합니다 |505| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Google Cloud의 Agent Platform을 사용할 때 Claude Sonnet 4.6의 영역을 재정의합니다 |

506| `VERTEX_REGION_CLAUDE_4_7_OPUS` | Google Cloud의 Agent Platform을 사용할 때 Claude Opus 4.7의 리전을 재정의합니다 |506| `VERTEX_REGION_CLAUDE_4_7_OPUS` | Google Cloud의 Agent Platform을 사용할 때 Claude Opus 4.7의 영역을 재정의합니다 |

507| `VERTEX_REGION_CLAUDE_4_8_OPUS` | Google Cloud의 Agent Platform을 사용할 때 Claude Opus 4.8의 리전을 재정의합니다 |507| `VERTEX_REGION_CLAUDE_4_8_OPUS` | Google Cloud의 Agent Platform을 사용할 때 Claude Opus 4.8의 영역을 재정의합니다 |

508| `VERTEX_REGION_CLAUDE_5_5_OPUS` | Google Cloud의 Agent Platform을 사용할 때 Claude Opus 5.5의 리전을 재정의합니다. v2.1.280에서 추가됨 |508| `VERTEX_REGION_CLAUDE_5_5_OPUS` | Google Cloud의 Agent Platform을 사용할 때 Claude Opus 5.5의 영역을 재정의합니다. v2.1.280에서 추가되었습니다 |

509| `VERTEX_REGION_CLAUDE_5_OPUS` | Google Cloud의 Agent Platform을 사용할 때 Claude Opus 5의 리전을 재정의합니다. v2.1.219에서 추가됨 |509| `VERTEX_REGION_CLAUDE_5_OPUS` | Google Cloud의 Agent Platform을 사용할 때 Claude Opus 5의 영역을 재정의합니다. v2.1.219에서 추가되었습니다 |

510| `VERTEX_REGION_CLAUDE_5_SONNET` | Google Cloud의 Agent Platform을 사용할 때 Claude Sonnet 5의 리전을 재정의합니다. v2.1.197에서 추가됨 |510| `VERTEX_REGION_CLAUDE_5_SONNET` | Google Cloud의 Agent Platform을 사용할 때 Claude Sonnet 5의 영역을 재정의합니다. v2.1.197에서 추가되었습니다 |

511| `VERTEX_REGION_CLAUDE_FABLE_5` | Google Cloud의 Agent Platform을 사용할 때 Claude Fable 5의 리전을 재정의합니다. v2.1.170에서 추가됨 |511| `VERTEX_REGION_CLAUDE_FABLE_5` | Google Cloud의 Agent Platform을 사용할 때 Claude Fable 5의 영역을 재정의합니다. v2.1.170에서 추가되었습니다 |

512| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Google Cloud의 Agent Platform을 사용할 때 Claude Fable 5.1의 리전을 재정의합니다. v2.1.257에서 추가됨 |512| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Google Cloud의 Agent Platform을 사용할 때 Claude Fable 5.1의 영역을 재정의합니다. v2.1.257에서 추가되었습니다 |

513| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Google Cloud의 Agent Platform을 사용할 때 Claude Haiku 4.5의 리전을 재정의합니다 |513| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Google Cloud의 Agent Platform을 사용할 때 Claude Haiku 4.5의 영역을 재정의합니다 |

514 514 

515표준 OpenTelemetry 내보내기 변수(`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` 및 신호 특정 변형)도 지원됩니다. 구성 세부 정보는 [모니터링](/docs/ko/monitoring-usage)을 참조하세요.515표준 OpenTelemetry 내보내기 변수(`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES`, 신호 특정 변형)도 지원됩니다. 구성 세부 정보는 [모니터링](/docs/ko/monitoring-usage)을 참조하세요.

516 

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

516 518 

517<h2 id="features-that-need-feature-flag-fetching">519<h2 id="features-that-need-feature-flag-fetching">

518 기능 플래그 가져오기가 필요한 기능520 기능 플래그 가져오기가 필요한 기능


533* [이 머신 외의 세션에 메시지를 보낼 수 없습니다](/docs/ko/cross-session-messaging#message-sessions-on-other-machines). 이 머신의 세션 간 메시징은 가져오기가 비활성화된 상태에서 작동합니다535* [이 머신 외의 세션에 메시지를 보낼 수 없습니다](/docs/ko/cross-session-messaging#message-sessions-on-other-machines). 이 머신의 세션 간 메시징은 가져오기가 비활성화된 상태에서 작동합니다

534* [`claude import` 또는 `/import` 명령](/docs/ko/cli-reference#cli-commands)을 실행할 수 없습니다536* [`claude import` 또는 `/import` 명령](/docs/ko/cli-reference#cli-commands)을 실행할 수 없습니다

535* [`/skill-doctor`](/docs/ko/skills#find-unused-skills)를 실행하거나 `/plugin` **Stats** 탭에서 해당 보고서를 열 수 없습니다537* [`/skill-doctor`](/docs/ko/skills#find-unused-skills)를 실행하거나 `/plugin` **Stats** 탭에서 해당 보고서를 열 수 없습니다

536* claude.ai 계정에 대해 활성화된 [기술](/docs/ko/skills#where-synced-skills-load) 및 [플러그인](/docs/ko/plugins-reference#synced-plugins)을 터미널 세션에 동기화할 수 없습니다538* claude.ai 계정에 대해 활성화된 [기술](/docs/ko/skills#where-synced-skills-load) 및 [플러그인](/docs/ko/plugins/loading#synced-plugins)을 터미널 세션에 동기화할 수 없습니다

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

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

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

errors.md +143 −14

Details

36| `Auto mode could not evaluate this action and is blocking it for safety` | [서버 오류](#auto-mode-cannot-determine-the-safety-of-an-action) |36| `Auto mode could not evaluate this action and is blocking it for safety` | [서버 오류](#auto-mode-cannot-determine-the-safety-of-an-action) |

37| `Auto mode classifier transcript exceeded context window` | [서버 오류](#auto-mode-cannot-determine-the-safety-of-an-action) |37| `Auto mode classifier transcript exceeded context window` | [서버 오류](#auto-mode-cannot-determine-the-safety-of-an-action) |

38| `Agent aborted: auto mode classifier request refused by the safety safeguard` | [서버 오류](#auto-mode-cannot-determine-the-safety-of-an-action) |38| `Agent aborted: auto mode classifier request refused by the safety safeguard` | [서버 오류](#auto-mode-cannot-determine-the-safety-of-an-action) |

39| `The server-side auto mode classifier gave no verdict` | [서버 오류](#the-server-returned-no-safety-verdict) |

40| `Auto mode is unavailable — the server returned no safety verdict for the last 10 responses` | [서버 오류](#the-server-returned-no-safety-verdict) |

39| `Agent terminated early due to an API error` | [서버 오류](#agent-terminated-early-due-to-an-api-error) |41| `Agent terminated early due to an API error` | [서버 오류](#agent-terminated-early-due-to-an-api-error) |

40| `You've hit your session limit` / `You've hit your weekly limit` / `You've hit your Opus limit` / `You've hit your Sonnet limit` | [사용 제한](#youve-hit-your-session-limit) |42| `You've hit your session limit` / `You've hit your weekly limit` / `You've hit your Opus limit` / `You've hit your Sonnet limit` | [사용 제한](#youve-hit-your-session-limit) |

41| `Usage credits required for 1M context` | [사용 제한](#usage-credits-required-for-1m-context) |43| `Usage credits required for 1M context` | [사용 제한](#usage-credits-required-for-1m-context) |


154| `API Error: 400 orphaned tool_result in conversation history` | [요청 오류](#tool-use-or-thinking-block-mismatch) |156| `API Error: 400 orphaned tool_result in conversation history` | [요청 오류](#tool-use-or-thinking-block-mismatch) |

155| `API Error: 400 duplicate tool_use ID in conversation history` | [요청 오류](#tool-use-or-thinking-block-mismatch) |157| `API Error: 400 duplicate tool_use ID in conversation history` | [요청 오류](#tool-use-or-thinking-block-mismatch) |

156| `[Unsupported tool content removed]` | [요청 오류](#unsupported-tool-content-removed) |158| `[Unsupported tool content removed]` | [요청 오류](#unsupported-tool-content-removed) |

159| `role 'system' must precede an 'assistant' message` | [요청 오류](#role-system-must-precede-an-assistant-message) |

160| `Invalid encrypted_content in search_result block` / `Invalid encrypted_index in text block` / `Failed to decrypt web search result content` | [요청 오류](#invalid-encrypted-content-in-search-result-block) |

157| `server_tool_use.name: Input should be` on every turn of a resumed session | [요청 오류](#unsupported-tool-content-removed) |161| `server_tool_use.name: Input should be` on every turn of a resumed session | [요청 오류](#unsupported-tool-content-removed) |

158| `<model> can't help with this. Start a new session to continue` | [요청 오류](#usage-policy-refusal) |162| `<model> can't help with this. Start a new session to continue` | [요청 오류](#usage-policy-refusal) |

159| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [요청 오류](#usage-policy-refusal) |163| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [요청 오류](#usage-policy-refusal) |


171| `Error: Invalid --agents configuration:` | [명령줄 오류](#invalid-agents-configuration) |175| `Error: Invalid --agents configuration:` | [명령줄 오류](#invalid-agents-configuration) |

172| `Error: Settings file exceeds the 2MiB limit` | [명령줄 오류](#settings-file-exceeds-the-2mib-limit) |176| `Error: Settings file exceeds the 2MiB limit` | [명령줄 오류](#settings-file-exceeds-the-2mib-limit) |

173| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [명령줄 오류](#the-current-directory-no-longer-exists) |177| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [명령줄 오류](#the-current-directory-no-longer-exists) |

178| `Temp directory <dir> ... Refusing to use it` / `ENOSPC: no space left on device, mkdir '<dir>'` | [명령줄 오류](#temp-directory-refused-or-cannot-be-created) |

174| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [명령줄 오류](#directory-couldnt-be-resolved-to-a-real-location) |179| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [명령줄 오류](#directory-couldnt-be-resolved-to-a-real-location) |

175| `Error: Workspace not trusted` when starting Remote Control | [명령줄 오류](#workspace-not-trusted-when-starting-remote-control) |180| `Error: Workspace not trusted` when starting Remote Control | [명령줄 오류](#workspace-not-trusted-when-starting-remote-control) |

176| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [명령줄 오류](#not-carried-over-to-the-sessions-remote-control-starts) |181| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [명령줄 오류](#not-carried-over-to-the-sessions-remote-control-starts) |


214| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [플러그인 오류](#plugin-eval-is-currently-in-early-access) |219| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [플러그인 오류](#plugin-eval-is-currently-in-early-access) |

215| `Marketplace "<name>" is registered from an untrusted source` | [플러그인 오류](#marketplace-is-registered-from-an-untrusted-source) |220| `Marketplace "<name>" is registered from an untrusted source` | [플러그인 오류](#marketplace-is-registered-from-an-untrusted-source) |

216| `Marketplace "<name>" is already added from a different source` | [플러그인 오류](#marketplace-is-already-added-from-a-different-source) |221| `Marketplace "<name>" is already added from a different source` | [플러그인 오류](#marketplace-is-already-added-from-a-different-source) |

222| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [플러그인 오류](#marketplace-name-is-another-spelling-of-a-reserved-name) |

217| `references ${user_config.*} in a shell-form command` | [플러그인 오류](#plugin-command-references-user-config) |223| `references ${user_config.*} in a shell-form command` | [플러그인 오류](#plugin-command-references-user-config) |

218| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [플러그인 오류](#plugin-command-references-user-config) |224| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [플러그인 오류](#plugin-command-references-user-config) |

219| `headersHelper for MCP server '<name>' references ${user_config.*}` | [플러그인 오류](#plugin-command-references-user-config) |225| `headersHelper for MCP server '<name>' references ${user_config.*}` | [플러그인 오류](#plugin-command-references-user-config) |


566* 대화형 세션에서 나타나는 프롬프트에서 작업을 승인하거나 거부합니다572* 대화형 세션에서 나타나는 프롬프트에서 작업을 승인하거나 거부합니다

567* 대화형 세션에서 `/compact`를 실행하여 대화 크기를 줄여 후속 작업이 분류자 윈도우에 맞도록 합니다573* 대화형 세션에서 `/compact`를 실행하여 대화 크기를 줄여 후속 작업이 분류자 윈도우에 맞도록 합니다

568 574 

575<h3 id="the-server-returned-no-safety-verdict">

576 서버가 안전 판정을 반환하지 않음

577</h3>

578 

579[서버 측 분류자 검토](/docs/ko/permission-modes#server-side-classifier-review) 하에서 자동 모드는 서버가 판정을 제공하지 않을 때 작업을 거부합니다. 거부는 Claude Code가 하나를 결정할 수 있을 때 괄호에 범주를 명시합니다. 예를 들어 `(timed out)`:

580 

581```text theme={null}

582The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.

583```

584 

585메시지의 나머지 부분은 Claude에게 한 번의 재시도가 도움이 될 수 있는지 알려줍니다. 이러한 거부 중 일부 전에 Claude Code는 대기하므로 Claude의 다음 시도가 즉시 따르지 않습니다. 대화형 세션에서 대기 중에 스피너는 `Auto mode check unavailable`을 카운트다운과 함께 표시하며, `Esc`를 누르면 턴이 중단됩니다.

586 

58710개 응답이 연속으로 판정이 없은 후 자동 모드는 턴을 중지합니다:

588 

589```text theme={null}

590Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode.

591```

592 

593중지 메시지는 각 세션 종류에서 다른 위치에 나타납니다:

594 

595* 대화형 세션에서 메시지는 대화 기록에 경고로 나타나고 턴이 끝납니다

596* [비대화형](/docs/ko/headless) `-p` 실행에서 실행이 끝나고 실행 오류를 보고합니다. 기본 텍스트 출력을 사용하면 메시지가 stderr에 인쇄됩니다.

597* [하위 에이전트](/docs/ko/sub-agents)가 한도에 도달했을 때 하위 에이전트는 완료 전에 중지되고 Claude는 자동 모드가 중지했다는 메모와 함께 생성한 것을 받습니다

598 

599**수행할 작업:**

600 

601* 다른 메시지를 보내 Claude가 다시 시도하도록 합니다. 응답 수 계산이 다시 시작됩니다.

602* 중지가 반복되고 요청이 [LLM 게이트웨이 또는 프록시](/docs/ko/llm-gateway)를 통과하면 스트리밍 응답을 자르거나 다시 쓰는지 확인합니다. [서버 측 분류자 검토](/docs/ko/permission-modes#server-side-classifier-review)는 어떤 게이트웨이 동작이 거부를 유발하는지 말하며, [게이트웨이 호환성 가이드](/docs/ko/llm-gateway-protocol#feature-pass-through)는 변경되지 않은 상태로 통과할 내용을 나열합니다.

603* Claude Code를 시작하기 전에 `CLAUDE_CODE_AUTO_MODE_SERVER=0`을 설정하여 대신 자체 분류자 요청을 사용합니다. v2.1.281 이전에는 Claude Code가 Anthropic API에 대한 직접 연결에서 변수를 읽지 않았습니다.

604* 대신 작업을 직접 승인하려면 [자동 모드를 전환](/docs/ko/permission-modes#switch-permission-modes)합니다

605 

606v2.1.280 이전에는 Claude Code가 판정이 없는 응답의 각 작업을 즉시 거부했고 턴을 중지하지 않았습니다.

607 

569<h3 id="agent-terminated-early-due-to-an-api-error">608<h3 id="agent-terminated-early-due-to-an-api-error">

570 API 오류로 인해 에이전트가 조기에 종료됨609 API 오류로 인해 에이전트가 조기에 종료됨

571</h3>610</h3>


2391* 자리 표시자 줄을 볼 때 아무것도 필요하지 않습니다. 세션은 제거된 내용 없이 계속됩니다.2430* 자리 표시자 줄을 볼 때 아무것도 필요하지 않습니다. 세션은 제거된 내용 없이 계속됩니다.

2392* 재개된 세션의 모든 턴이 대신 400 오류로 실패하면 `claude update`를 실행하고 세션을 다시 재개합니다. v2.1.246 이전 버전은 내용을 제거하지 않습니다.2431* 재개된 세션의 모든 턴이 대신 400 오류로 실패하면 `claude update`를 실행하고 세션을 다시 재개합니다. v2.1.246 이전 버전은 내용을 제거하지 않습니다.

2393 2432 

2433<h3 id="role-system-must-precede-an-assistant-message">

2434 role 'system' must precede an 'assistant' message

2435</h3>

2436 

2437API가 대화에서 수락하지 않는 위치에 시스템 메시지가 있기 때문에 400으로 요청을 거부했습니다:

2438 

2439```text theme={null}

2440API Error: 400 messages.6: role 'system' must precede an 'assistant' message or end the array; ...

2441```

2442 

2443Claude Code는 일부 미리 알림 및 첨부 텍스트를 대화 내 시스템 메시지로 보냅니다. API가 하나의 위치를 거부하면 Claude Code는 요청을 한 번 다시 시도하고 해당 텍스트를 일반 사용자 메시지로 대신 보냅니다. `top-level 'system' parameter for the initial system prompt` 사용과 같은 API의 형제 배치 표현은 동일한 복구를 받습니다.

2444 

2445오류가 나타나면 거부된 시스템 메시지는 Claude Code가 제거할 수 있는 것이 아닙니다. 이는 일반적으로 Claude Code와 API 사이의 프록시 또는 [LLM 게이트웨이](/docs/ko/llm-gateway)가 시스템 메시지를 추가했거나 대화를 재정렬했음을 의미합니다.

2446 

2447**할 일:**

2448 

2449* `/clear`를 실행하여 새 대화를 시작합니다. 오류가 거기서도 돌아오면 원인은 저장된 대화가 아닌 요청 경로에 있습니다.

2450* [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)을 통해 구성된 프록시 또는 게이트웨이 뒤에서 오류가 모든 턴에서 반복되면 프록시 없이 연결하여 원인을 확인하고 오류를 운영하는 사람에게 보고합니다

2451 

2452v2.1.280 이전에는 Claude Code가 이 표현을 인식하지 못했으므로 거부된 시스템 메시지가 Claude Code 자체가 보낸 것일 때도 오류가 나타났고 대화의 모든 이후 턴이 동일한 방식으로 실패했습니다.

2453 

2454<h3 id="invalid-encrypted-content-in-search-result-block">

2455 Invalid encrypted\_content in search\_result block

2456</h3>

2457 

2458API가 대화 기록이 해독할 수 없는 호스팅된 웹 검색 내용을 보유하고 있기 때문에 400으로 요청을 거부했습니다. 표현은 읽을 수 없는 필드를 이름으로 지정합니다:

2459 

2460```text theme={null}

2461API Error: 400 messages.21.content.0: Invalid `encrypted_content` in `search_result` block

2462API Error: 400 messages.21.content.3.citations.0: Invalid `encrypted_index` in `text` block

2463API Error: 400 Failed to decrypt web search result content

2464```

2465 

2466API의 호스팅된 [웹 검색 도구](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool)의 결과는 API만 읽을 수 있는 암호화된 필드를 전달합니다. API는 다른 조직을 위해 생성된 내용과 같이 해독할 수 없는 내용을 재생하는 요청을 거부합니다.

2467 

2468Claude Code의 자체 [WebSearch 도구](/docs/ko/tools-reference#websearch-tool-behavior)는 검색 결과를 일반 텍스트로 기록하므로 이러한 블록은 일반적으로 호스팅된 웹 검색을 자체적으로 실행한 프록시 또는 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 대화에 도달합니다.

2469 

2470거부된 블록은 대화 기록에 남아 있으므로 모든 이후 턴과 `/compact`는 동일한 방식으로 실패합니다.

2471 

2472**할 일:**

2473 

2474* `/clear`를 실행하거나 새 세션을 시작합니다. 새 대화는 거부된 블록을 전달하지 않습니다

2475* Claude Code를 프록시 또는 게이트웨이 뒤에서 실행하면 오류를 운영하는 사람에게 보고합니다

2476 

2394<h3 id="usage-policy-refusal">2477<h3 id="usage-policy-refusal">

2395 사용 정책 거부2478 사용 정책 거부

2396</h3>2479</h3>


2627* 디렉토리가 같은 경로에서 다시 생성되었으면 셸이 여전히 삭제된 디렉토리를 보유하고 있습니다. `cd "$PWD"`를 실행하거나 디렉토리를 나갔다가 다시 들어간 후 `claude`를 실행하세요.2710* 디렉토리가 같은 경로에서 다시 생성되었으면 셸이 여전히 삭제된 디렉토리를 보유하고 있습니다. `cd "$PWD"`를 실행하거나 디렉토리를 나갔다가 다시 들어간 후 `claude`를 실행하세요.

2628* macOS에서 `EPERM`의 경우 Cmd+Q로 터미널 앱을 종료하고 다시 열어서 해당 폴더로 돌아가 `claude`를 실행하세요. 해당 폴더의 `ls`가 여전히 실패하면 **System Settings > Privacy & Security > Files and Folders**를 열고 터미널 앱에 대한 폴더를 켠 후 터미널을 다시 열어세요.2711* macOS에서 `EPERM`의 경우 Cmd+Q로 터미널 앱을 종료하고 다시 열어서 해당 폴더로 돌아가 `claude`를 실행하세요. 해당 폴더의 `ls`가 여전히 실패하면 **System Settings > Privacy & Security > Files and Folders**를 열고 터미널 앱에 대한 폴더를 켠 후 터미널을 다시 열어세요.

2629 2712 

2713<h3 id="temp-directory-refused-or-cannot-be-created">

2714 임시 디렉토리가 거부되었거나 생성할 수 없음

2715</h3>

2716 

2717macOS 및 Linux에서 Claude Code는 시작 시 개인 임시 디렉토리를 생성합니다. 시스템 임시 디렉토리 또는 [`CLAUDE_CODE_TMPDIR`](/docs/ko/env-vars) 재정의 아래의 `claude-<uid>`입니다. 디렉토리를 생성할 수 없거나 해당 경로의 항목이 안전 확인에 실패하면 Claude Code는 실패를 stderr에 인쇄하고 세션을 시작하는 대신 코드 1로 종료됩니다:

2718 

2719```text wrap theme={null}

2720ENOSPC: no space left on device, mkdir '/tmp/claude-501'

2721 

2722Temp directory /tmp/claude-501 is not a directory (may be an attacker-planted symlink). Refusing to use it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

2723 

2724Temp directory /tmp/claude-501 is owned by uid 502, expected 501. Refusing to use it — another user may have pre-created it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

2725 

2726Temp directory /tmp/claude-501 is not readable (its mode may have been altered, or a path component denies search). Refusing to use it — restore its permissions (chmod 0700) or remove it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

2727```

2728 

2729**해야 할 일:**

2730 

2731* `ENOSPC`의 경우 임시 디렉토리를 보유한 볼륨의 디스크 공간을 확보하세요.

2732* `Refusing to use it` 형식의 경우 링크가 가리키는 것이 아닌 이름 지정된 항목 자체를 제거하고 Claude Code를 다시 시작하세요. `owned by uid` 형식의 경우 관리자 또는 해당 사용자만 제거할 수 있습니다.

2733* `is not readable`의 경우 이름 지정된 디렉토리에서 `chmod 0700`을 실행하거나 제거한 후 다시 시작하세요.

2734* 이러한 경우 중 하나에서 [`CLAUDE_CODE_TMPDIR`](/docs/ko/env-vars)을 제어하는 디렉토리로 설정하고 Claude Code를 시작하세요. 거부된 경로는 그대로 두세요.

2735 

2630<h3 id="directory-couldnt-be-resolved-to-a-real-location">2736<h3 id="directory-couldnt-be-resolved-to-a-real-location">

2631 디렉토리를 실제 위치로 확인할 수 없음2737 디렉토리를 실제 위치로 확인할 수 없음

2632</h3>2738</h3>


3282 플러그인 오류3388 플러그인 오류

3283</h2>3389</h2>

3284 3390 

3285이러한 오류는 [플러그인](/docs/ko/plugins) 및 [마켓플레이스](/docs/ko/plugin-marketplaces) 구성에서 발생합니다. 이 페이지의 메시지 중 하나를 생성하지 않는 플러그인 문제(예: 로드되지 않는 마켓플레이스 URL 또는 설치되지만 나타나지 않는 플러그인)의 경우 [플러그인 문제 해결](/docs/ko/discover-plugins#troubleshooting)을 참조하십시오.3391이러한 오류는 [플러그인](/docs/ko/plugins/overview) 및 [마켓플레이스](/docs/ko/plugins/overview) 구성에서 발생합니다. 이 페이지의 메시지 중 하나를 생성하지 않는 플러그인 문제(예: 로드되지 않는 마켓플레이스 URL 또는 설치되지만 나타나지 않는 플러그인)의 경우 [플러그인 문제 해결](/docs/ko/plugins/troubleshooting)을 참조하십시오.

3286 3392 

3287<h3 id="plugin-eval-is-currently-in-early-access">3393<h3 id="plugin-eval-is-currently-in-early-access">

3288 plugin eval is currently in early access3394 plugin eval is currently in early access


3309 Marketplace is registered from an untrusted source3415 Marketplace is registered from an untrusted source

3310</h3>3416</h3>

3311 3417 

3312마켓플레이스가 [공식 Anthropic 마켓플레이스용으로 예약된](/docs/ko/plugin-marketplaces#marketplace-schema) 이름으로 등록되어 있지만 등록된 소스가 `anthropics` GitHub 저장소가 아닙니다. Claude Code는 마켓플레이스를 로드하거나 새로 고칠 때마다 예약된 이름을 다시 확인하므로 마켓플레이스와 여기서 설치된 플러그인이 로드되지 않습니다. v2.1.205 이전에는 마켓플레이스가 추가될 때만 이름이 확인되었으므로 이름이 예약되기 전에 등록된 항목이 계속 로드되었습니다.3418마켓플레이스가 [공식 Anthropic 마켓플레이스용으로 예약된](/docs/ko/plugins/marketplace-reference#marketplace-file) 이름으로 등록되어 있지만 등록된 소스가 `anthropics` GitHub 저장소가 아닙니다. Claude Code는 마켓플레이스를 로드하거나 새로 고칠 때마다 예약된 이름을 다시 확인하므로 마켓플레이스와 여기서 설치된 플러그인이 로드되지 않습니다. v2.1.205 이전에는 마켓플레이스가 추가될 때만 이름이 확인되었으므로 이름이 예약되기 전에 등록된 항목이 계속 로드되었습니다.

3313 3419 

3314```text theme={null}3420```text theme={null}

3315Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.3421Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.


3321 3427 

3322* 마켓플레이스가 이미 등록된 경우 `claude plugin marketplace remove <name>`을 실행한 다음 공식 `github.com/anthropics` 저장소에서 다시 추가하십시오.3428* 마켓플레이스가 이미 등록된 경우 `claude plugin marketplace remove <name>`을 실행한 다음 공식 `github.com/anthropics` 저장소에서 다시 추가하십시오.

3323* 이름이 예약되기 전에 이름을 사용한 타사 마켓플레이스를 게시하는 경우 이름을 바꾸고 사용자에게 소스에서 다시 추가하도록 요청하십시오.3429* 이름이 예약되기 전에 이름을 사용한 타사 마켓플레이스를 게시하는 경우 이름을 바꾸고 사용자에게 소스에서 다시 추가하도록 요청하십시오.

3324* [마켓플레이스 스키마](/docs/ko/plugin-marketplaces#marketplace-schema)에서 예약된 이름 목록을 참조하십시오.3430* [마켓플레이스 스키마](/docs/ko/plugins/marketplace-reference#marketplace-file)에서 예약된 이름 목록을 참조하십시오.

3431 

3432<h3 id="marketplace-name-is-another-spelling-of-a-reserved-name">

3433 Marketplace name is another spelling of a reserved name

3434</h3>

3435 

3436마켓플레이스의 이름 자체는 예약된 이름이 아니지만 Claude Code는 이를 예약된 이름의 다른 철자로 취급합니다. [예약된 이름](/docs/ko/plugins/marketplace-reference#reserved-name-spellings)은 어떤 철자가 예약된 이름으로 간주되는지 나열합니다. Claude Code는 마켓플레이스를 추가할 때 이러한 이름을 거부합니다:

3437 

3438```text theme={null}

3439Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.

3440```

3441 

3442마켓플레이스가 이미 이러한 이름으로 등록된 경우 해당 항목이 로드되지 않으며 `/plugin`, `claude plugin install` 및 `claude plugin update`는 경고합니다:

3443 

3444```text wrap theme={null}

3445known_marketplaces.json has an entry named "claude.code.plugins", another spelling of the reserved marketplace name "claude-code-plugins", so it is ignored. Remove it with: claude plugin marketplace remove claude.code.plugins

3446```

3447 

3448이름에 셸 인용이 필요한 경우 추가 시간 거부는 `This marketplace's name is another spelling of "<reserved>", a reserved marketplace name. It is not exactly the reserved name it appears to be.`로 읽습니다.

3449 

3450**수행할 작업:**

3451 

3452* 마켓플레이스의 이름을 예약된 이름의 철자를 지정하지 않는 이름으로 바꾸고 다시 추가하십시오.

3453* 무시된 항목 경고의 경우 제공하는 `claude plugin marketplace remove` 명령을 실행하거나 `~/.claude/plugins/known_marketplaces.json`에서 항목을 제거하십시오.

3325 3454 

3326<h3 id="marketplace-is-already-added-from-a-different-source">3455<h3 id="marketplace-is-already-added-from-a-different-source">

3327 Marketplace is already added from a different source3456 Marketplace is already added from a different source

3328</h3>3457</h3>

3329 3458 

3330[`/plugin install <plugin> --marketplace <source>`](/docs/ko/discover-plugins#add-a-marketplace-and-install-in-one-command)를 통해 마켓플레이스 추가를 확인했으며 해당 소스에서 Claude Code가 가져온 카탈로그가 이미 다른 소스에서 추가한 마켓플레이스와 동일한 이름으로 지정합니다. Claude Code는 기존 마켓플레이스를 유지하고 이를 대체하지 않으므로 플러그인이 설치되지 않습니다.3459[`/plugin install <plugin> --marketplace <source>`](/docs/ko/plugins/install#add-a-marketplace-and-install-in-one-command)를 통해 마켓플레이스 추가를 확인했으며 해당 소스에서 Claude Code가 가져온 카탈로그가 이미 다른 소스에서 추가한 마켓플레이스와 동일한 이름으로 지정합니다. Claude Code는 기존 마켓플레이스를 유지하고 이를 대체하지 않으므로 플러그인이 설치되지 않습니다.

3331 3460 

3332```text theme={null}3461```text theme={null}

3333Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.3462Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.


3342 Plugin command references user\_config in a shell command3471 Plugin command references user\_config in a shell command

3343</h3>3472</h3>

3344 3473 

3345플러그인 훅, [모니터](/docs/ko/plugins-reference#monitors) 또는 MCP [`headersHelper`](/docs/ko/mcp#use-dynamic-headers-for-custom-authentication) 명령이 `${user_config.KEY}` [플러그인 옵션](/docs/ko/plugins-reference#user-configuration)을 참조하며 대체된 문자열이 셸에 전달됩니다. 구성된 값에 `$(...)`, 백틱 또는 `;`이 포함되면 여기서 코드로 실행되므로 Claude Code는 값을 대체하는 대신 구성 요소를 시작하기를 거부합니다. 확인은 명령 템플릿에서 실행되므로 아직 값이 구성되지 않았을 때도 오류가 나타납니다. v2.1.207 이전에는 값이 셸 명령으로 대체되었습니다.3474플러그인 훅, [모니터](/docs/ko/plugins/components#monitors) 또는 MCP [`headersHelper`](/docs/ko/mcp#use-dynamic-headers-for-custom-authentication) 명령이 `${user_config.KEY}` [플러그인 옵션](/docs/ko/plugins/manifest-reference#user-configuration)을 참조하며 대체된 문자열이 셸에 전달됩니다. 구성된 값에 `$(...)`, 백틱 또는 `;`이 포함되면 여기서 코드로 실행되므로 Claude Code는 값을 대체하는 대신 구성 요소를 시작하기를 거부합니다. 확인은 명령 템플릿에서 실행되므로 아직 값이 구성되지 않았을 때도 오류가 나타납니다. v2.1.207 이전에는 값이 셸 명령으로 대체되었습니다.

3346 3475 

3347표현은 어느 표면이 옵션을 참조했는지에 따라 다릅니다. 셸 형식 훅은 다음을 보고합니다:3476표현은 어느 표면이 옵션을 참조했는지에 따라 다릅니다. 셸 형식 훅은 다음을 보고합니다:

3348 3477 


3372 Plugin archive integrity check failed3501 Plugin archive integrity check failed

3373</h3>3502</h3>

3374 3503 

3375플러그인의 마켓플레이스 항목이 `sha256` 핀이 있는 [`archive` 소스](/docs/ko/plugin-marketplaces#zip-archives)를 사용하며 다운로드된 파일의 다이제스트가 핀과 일치하지 않습니다. Claude Code는 설치를 거부하므로 플러그인 캐시에서 아무것도 변경되지 않습니다. 불일치에는 세 가지 가능한 원인이 있습니다:3504플러그인의 마켓플레이스 항목이 `sha256` 핀이 있는 [`archive` 소스](/docs/ko/plugins/marketplace-reference#archive-plugin-source)를 사용하며 다운로드된 파일의 다이제스트가 핀과 일치하지 않습니다. Claude Code는 설치를 거부하므로 플러그인 캐시에서 아무것도 변경되지 않습니다. 불일치에는 세 가지 가능한 원인이 있습니다:

3376 3505 

3377* 작성자가 핀을 계산한 후 URL의 파일이 변경됨3506* 작성자가 핀을 계산한 후 URL의 파일이 변경됨

3378* 작성자가 마켓플레이스 항목에 잘못된 다이제스트를 입력함3507* 작성자가 마켓플레이스 항목에 잘못된 다이제스트를 입력함


3392 Path escapes plugin directory3521 Path escapes plugin directory

3393</h3>3522</h3>

3394 3523 

3395플러그인 구성 요소 경로는 플러그인의 `plugin.json` 또는 [마켓플레이스 항목](/docs/ko/plugin-marketplaces#plugin-entries)에서 선언되며 플러그인의 자체 디렉터리 외부로 확인됩니다. Claude Code는 해당 경로를 삭제하고 플러그인의 나머지 부분을 로드합니다. 메시지의 구성 요소 이름(예: `commands` 또는 `hooks`)은 경로를 선언한 필드의 이름을 지정합니다.3524플러그인 구성 요소 경로는 플러그인의 `plugin.json` 또는 [마켓플레이스 항목](/docs/ko/plugins/marketplace-reference#plugin-entries)에서 선언되며 플러그인의 자체 디렉터리 외부로 확인됩니다. Claude Code는 해당 경로를 삭제하고 플러그인의 나머지 부분을 로드합니다. 메시지의 구성 요소 이름(예: `commands` 또는 `hooks`)은 경로를 선언한 필드의 이름을 지정합니다.

3396 3525 

3397```text theme={null}3526```text theme={null}

3398commands path escapes plugin directory: ./../shared.md3527commands path escapes plugin directory: ./../shared.md


3400 3529 

3401`claude plugin` 명령 출력에서 동일한 오류는 `Path escapes plugin directory: ./../shared.md (commands)`로 읽습니다.3530`claude plugin` 명령 출력에서 동일한 오류는 `Path escapes plugin directory: ./../shared.md (commands)`로 읽습니다.

3402 3531 

3403Claude Code는 `../shared-utils`와 같이 플러그인 외부를 가리키는 경로와 [마켓플레이스 심볼릭 링크 규칙](/docs/ko/plugins-reference#share-files-within-a-marketplace-with-symlinks)이 허용하지 않는 플러그인 외부로 이어지는 심볼릭 링크를 모두 거부합니다. 심볼릭 링크의 경우 메시지는 경로가 확인되는 위치도 표시합니다:3532Claude Code는 `../shared-utils`와 같이 플러그인 외부를 가리키는 경로와 [마켓플레이스 심볼릭 링크 규칙](/docs/ko/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)이 허용하지 않는 플러그인 외부로 이어지는 심볼릭 링크를 모두 거부합니다. 심볼릭 링크의 경우 메시지는 경로가 확인되는 위치도 표시합니다:

3404 3533 

3405```text theme={null}3534```text theme={null}

3406commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory3535commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory


3421* 참조된 파일을 플러그인 디렉터리 내부로 이동하고 `./` 상대 경로로 경로를 가리키십시오.3550* 참조된 파일을 플러그인 디렉터리 내부로 이동하고 `./` 상대 경로로 경로를 가리키십시오.

3422* 경로가 플러그인 외부의 파일에 대한 심볼릭 링크인 경우 심볼릭 링크를 파일의 복사본으로 바꾸십시오.3551* 경로가 플러그인 외부의 파일에 대한 심볼릭 링크인 경우 심볼릭 링크를 파일의 복사본으로 바꾸십시오.

3423* 메시지가 경로에 백슬래시가 포함되어 있다고 말하면 경로를 정방향 슬래시로 작성하십시오. 예를 들어 `./commands/deploy.md`3552* 메시지가 경로에 백슬래시가 포함되어 있다고 말하면 경로를 정방향 슬래시로 작성하십시오. 예를 들어 `./commands/deploy.md`

3424* 동일한 마켓플레이스의 다른 플러그인과 파일을 공유하려면 플러그인 디렉터리 내의 심볼릭 링크로 연결하고 [심볼릭 링크 규칙](/docs/ko/plugins-reference#share-files-within-a-marketplace-with-symlinks)을 따르십시오.3553* 동일한 마켓플레이스의 다른 플러그인과 파일을 공유하려면 플러그인 디렉터리 내의 심볼릭 링크로 연결하고 [심볼릭 링크 규칙](/docs/ko/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)을 따르십시오.

3425 3554 

3426<h3 id="path-could-not-be-checked">3555<h3 id="path-could-not-be-checked">

3427 Path could not be checked3556 Path could not be checked


3429 3558 

3430Claude Code는 플러그인 경로가 존재하는지 운영 체제에 물었고 "찾을 수 없음" 이외의 오류를 받았으므로 경로가 이름을 지정하는 것을 로드하지 않습니다. 플러그인의 얼마나 많은 부분이 로드되는지는 어느 경로가 실패했는지에 따라 다릅니다:3559Claude Code는 플러그인 경로가 존재하는지 운영 체제에 물었고 "찾을 수 없음" 이외의 오류를 받았으므로 경로가 이름을 지정하는 것을 로드하지 않습니다. 플러그인의 얼마나 많은 부분이 로드되는지는 어느 경로가 실패했는지에 따라 다릅니다:

3431 3560 

3432* 플러그인의 [기본 구성 요소 위치](/docs/ko/plugins-reference#file-locations-reference) 중 하나(예: `skills/` 폴더, `monitors/monitors.json` 파일 또는 [플러그인 루트의 `SKILL.md`](/docs/ko/plugins-reference#skills)): 플러그인의 다른 구성 요소는 여전히 로드됨3561* 플러그인의 [기본 구성 요소 위치](/docs/ko/plugins/manifest-reference#standard-layout) 중 하나(예: `skills/` 폴더, `monitors/monitors.json` 파일 또는 [플러그인 루트의 `SKILL.md`](/docs/ko/plugins/components#skills)): 플러그인의 다른 구성 요소는 여전히 로드됨

3433* 플러그인의 자체 디렉터리: 해당 플러그인에서 아무것도 로드되지 않음3562* 플러그인의 자체 디렉터리: 해당 플러그인에서 아무것도 로드되지 않음

3434 3563 

3435전혀 존재하지 않는 경로에 대해서는 이 오류가 표시되지 않습니다. `/plugin`에서 오류는 플러그인 아래에 나타나고 경로와 운영 체제가 반환한 코드의 이름을 지정합니다:3564전혀 존재하지 않는 경로에 대해서는 이 오류가 표시되지 않습니다. `/plugin`에서 오류는 플러그인 아래에 나타나고 경로와 운영 체제가 반환한 코드의 이름을 지정합니다:


3459 Marketplace entry path does not stay inside the marketplace directory3588 Marketplace entry path does not stay inside the marketplace directory

3460</h3>3589</h3>

3461 3590 

3462플러그인의 [마켓플레이스 항목](/docs/ko/plugin-marketplaces#plugin-entries)이 Claude Code가 마켓플레이스의 자체 디렉터리 내부의 위치로 확인할 수 없는 소스 경로를 선언하므로 플러그인이 설치되거나 로드되지 않습니다. 거부는 다음을 포함합니다:3591플러그인의 [마켓플레이스 항목](/docs/ko/plugins/marketplace-reference#plugin-entries)이 Claude Code가 마켓플레이스의 자체 디렉터리 내부의 위치로 확인할 수 없는 소스 경로를 선언하므로 플러그인이 설치되거나 로드되지 않습니다. 거부는 다음을 포함합니다:

3463 3592 

3464* 절대 경로, `..`로 마켓플레이스를 벗어나거나 네트워크 경로처럼 철자된 항목 경로3593* 절대 경로, `..`로 마켓플레이스를 벗어나거나 네트워크 경로처럼 철자된 항목 경로

3465* macOS 및 Linux에서 선행 `./` 이후 어디든지 백슬래시를 포함하는 항목 경로3594* macOS 및 Linux에서 선행 `./` 이후 어디든지 백슬래시를 포함하는 항목 경로

3466* git 또는 URL과 같은 원격 소스에서 가져온 마켓플레이스의 항목이 마켓플레이스 디렉터리 외부로 확인되는 심볼릭 링크를 통해 대상에 도달함3595* git 또는 URL과 같은 원격 소스에서 가져온 마켓플레이스의 항목이 마켓플레이스 디렉터리 외부로 확인되는 심볼릭 링크를 통해 대상에 도달함

3467* 마켓플레이스의 `marketplace.json`에 대한 직접 URL에서 추가된 마켓플레이스의 상대 항목: Claude Code는 해당 파일만 다운로드하므로 경로가 이름을 지정할 로컬 플러그인 파일이 없습니다. [URL 기반 마켓플레이스에서 상대 경로가 있는 플러그인 실패](/docs/ko/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)를 참조하십시오.3596* 마켓플레이스의 `marketplace.json`에 대한 직접 URL에서 추가된 마켓플레이스의 상대 항목: Claude Code는 해당 파일만 다운로드하므로 경로가 이름을 지정할 로컬 플러그인 파일이 없습니다. [URL 기반 마켓플레이스에서 상대 경로가 있는 플러그인 실패](/docs/ko/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)를 참조하십시오.

3468 3597 

3469`claude plugin install`은 다음과 같이 거부를 보고합니다:3598`claude plugin install`은 다음과 같이 거부를 보고합니다:

3470 3599 


3481**수행할 작업:**3610**수행할 작업:**

3482 3611 

3483* 마켓플레이스를 유지하는 경우 항목의 `source`를 `./plugins/my-plugin`과 같은 일반 상대 경로로 작성하고 이를 통과하는 모든 심볼릭 링크가 마켓플레이스 디렉터리 내부를 가리키도록 하십시오.3612* 마켓플레이스를 유지하는 경우 항목의 `source`를 `./plugins/my-plugin`과 같은 일반 상대 경로로 작성하고 이를 통과하는 모든 심볼릭 링크가 마켓플레이스 디렉터리 내부를 가리키도록 하십시오.

3484* 마켓플레이스를 직접 URL에서 추가한 경우 상대 항목을 확인할 수 없습니다. 마켓플레이스 작성자에게 [다른 플러그인 소스](/docs/ko/plugin-marketplaces#plugin-sources)를 사용하도록 요청하거나 git 저장소에서 마켓플레이스를 추가하십시오.3613* 마켓플레이스를 직접 URL에서 추가한 경우 상대 항목을 확인할 수 없습니다. 마켓플레이스 작성자에게 [다른 플러그인 소스](/docs/ko/plugins/marketplace-reference#plugin-sources)를 사용하도록 요청하거나 git 저장소에서 마켓플레이스를 추가하십시오.

3485 3614 

3486<h3 id="failed-to-load-marketplace-configuration">3615<h3 id="failed-to-load-marketplace-configuration">

3487 Failed to load marketplace configuration3616 Failed to load marketplace configuration


3511 Plugin is required by your organization3640 Plugin is required by your organization

3512</h3>3641</h3>

3513 3642 

3514`claude plugin disable`을 실행했거나 `/plugin` **설치됨** 탭을 사용하여 조직이 필수로 표시한 [claude.ai에서 동기화된](/docs/ko/plugins-reference#synced-plugins) 플러그인을 비활성화하려고 했습니다:3643`claude plugin disable`을 실행했거나 `/plugin` **설치됨** 탭을 사용하여 조직이 필수로 표시한 [claude.ai에서 동기화된](/docs/ko/plugins/loading#synced-plugins) 플러그인을 비활성화하려고 했습니다:

3515 3644 

3516```text theme={null}3645```text theme={null}

3517Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.3646Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.

Details

32* [CLI](/docs/ko/quickstart) 및 [Agent SDK](/docs/ko/agent-sdk/overview)32* [CLI](/docs/ko/quickstart) 및 [Agent SDK](/docs/ko/agent-sdk/overview)

33* [VS Code](/docs/ko/vs-code) 및 [JetBrains](/docs/ko/jetbrains) 확장33* [VS Code](/docs/ko/vs-code) 및 [JetBrains](/docs/ko/jetbrains) 확장

34* [Subagents](/docs/ko/sub-agents), [hooks](/docs/ko/hooks-guide), [commands](/docs/ko/commands), [skills](/docs/ko/skills)34* [Subagents](/docs/ko/sub-agents), [hooks](/docs/ko/hooks-guide), [commands](/docs/ko/commands), [skills](/docs/ko/skills)

35* [CLAUDE.md memory](/docs/ko/memory), [plugins](/docs/ko/plugins), [MCP servers](/docs/ko/mcp)35* [CLAUDE.md memory](/docs/ko/memory), [plugins](/docs/ko/plugins/overview), [MCP servers](/docs/ko/mcp)

36* [Checkpoints](/docs/ko/checkpointing), [sandboxing](/docs/ko/sandboxing), [Workflows](/docs/ko/workflows)36* [Checkpoints](/docs/ko/checkpointing), [sandboxing](/docs/ko/sandboxing), [Workflows](/docs/ko/workflows)

37* [OpenTelemetry metrics](/docs/ko/monitoring-usage) 및 [관리되는 설정 파일](/docs/ko/managed-settings#delivery-mechanisms)37* [OpenTelemetry metrics](/docs/ko/monitoring-usage) 및 [관리되는 설정 파일](/docs/ko/managed-settings#delivery-mechanisms)

38 38 

Details

29* \*\*[Dynamic workflows](/docs/ko/workflows)\*\*는 Claude가 작성한 스크립트에서 많은 subagents를 실행하고 하나의 결과를 반환합니다.29* \*\*[Dynamic workflows](/docs/ko/workflows)\*\*는 Claude가 작성한 스크립트에서 많은 subagents를 실행하고 하나의 결과를 반환합니다.

30* \*\*[Cross-session messaging](/docs/ko/cross-session-messaging)\*\*을 통해 Claude는 한 세션에서 다른 세션으로 메시지를 전달할 수 있습니다.30* \*\*[Cross-session messaging](/docs/ko/cross-session-messaging)\*\*을 통해 Claude는 한 세션에서 다른 세션으로 메시지를 전달할 수 있습니다.

31* \*\*[Hooks](/docs/ko/hooks-guide)\*\*는 Claude Code가 라이프사이클 이벤트에 도달할 때 스크립트, HTTP 요청, MCP 도구 호출, 프롬프트 또는 subagent를 실행합니다.31* \*\*[Hooks](/docs/ko/hooks-guide)\*\*는 Claude Code가 라이프사이클 이벤트에 도달할 때 스크립트, HTTP 요청, MCP 도구 호출, 프롬프트 또는 subagent를 실행합니다.

32* **[Plugins](/docs/ko/plugins)** 및 \*\*[marketplaces](/docs/ko/plugin-marketplaces)\*\*는 이러한 기능을 패키징하고 배포합니다.32* **[Plugins](/docs/ko/plugins/overview)** 및 \*\*[marketplaces](/docs/ko/plugins/overview)\*\*는 이러한 기능을 패키징하고 배포합니다.

33 33 

34[Skills](/docs/ko/skills)는 가장 유연한 확장입니다. Skill은 지식, 워크플로우 또는 지침을 포함하는 마크다운 파일입니다. `/deploy`와 같은 명령으로 skill을 호출하거나, Claude가 관련이 있을 때 자동으로 로드할 수 있습니다. Skill은 현재 대화에서 실행되거나 subagents를 통해 격리된 컨텍스트에서 실행될 수 있습니다.34[Skills](/docs/ko/skills)는 가장 유연한 확장입니다. Skill은 지식, 워크플로우 또는 지침을 포함하는 마크다운 파일입니다. `/deploy`와 같은 명령으로 skill을 호출하거나, Claude가 관련이 있을 때 자동으로 로드할 수 있습니다. Skill은 현재 대화에서 실행되거나 subagents를 통해 격리된 컨텍스트에서 실행될 수 있습니다.

35 35 


52| **Hook** | 이벤트로 트리거되는 스크립트, HTTP 요청, MCP 도구 호출, 프롬프트 또는 subagent | 일치하는 모든 이벤트에서 실행되어야 하는 자동화 | 모든 파일 편집 후 ESLint 실행 |52| **Hook** | 이벤트로 트리거되는 스크립트, HTTP 요청, MCP 도구 호출, 프롬프트 또는 subagent | 일치하는 모든 이벤트에서 실행되어야 하는 자동화 | 모든 파일 편집 후 ESLint 실행 |

53| **[Artifact](/docs/ko/artifacts)** | 세션 출력을 비공개 대화형 웹 페이지로 게시 | 터미널 텍스트가 아닌 시각적으로 보거나 공유하려는 출력 | Claude가 조사할 때 업데이트되는 인시던트 타임라인 |53| **[Artifact](/docs/ko/artifacts)** | 세션 출력을 비공개 대화형 웹 페이지로 게시 | 터미널 텍스트가 아닌 시각적으로 보거나 공유하려는 출력 | Claude가 조사할 때 업데이트되는 인시던트 타임라인 |

54 54 

55\*\*[Plugins](/docs/ko/plugins)\*\*는 패키징 계층입니다. 플러그인은 skill, hook, subagent, MCP 서버를 단일 설치 가능한 단위로 번들합니다. 플러그인 skill은 네임스페이스됩니다(`/my-plugin:review` 같은). 여러 플러그인이 공존할 수 있습니다. 여러 저장소에서 동일한 설정을 재사용하거나 \*\*[마켓플레이스](/docs/ko/plugin-marketplaces)\*\*를 통해 다른 사용자에게 배포하려면 플러그인을 사용하세요.55\*\*[Plugins](/docs/ko/plugins/overview)\*\*는 패키징 계층입니다. 플러그인은 skill, hook, subagent, MCP 서버를 단일 설치 가능한 단위로 번들합니다. 플러그인 skill은 네임스페이스됩니다(`/my-plugin:review` 같은). 여러 플러그인이 공존할 수 있습니다. 여러 저장소에서 동일한 설정을 재사용하거나 \*\*[마켓플레이스](/docs/ko/plugins/overview)\*\*를 통해 다른 사용자에게 배포하려면 플러그인을 사용하세요.

56 56 

57<h3 id="build-your-setup-over-time">57<h3 id="build-your-setup-over-time">

58 시간에 따라 설정 구축하기58 시간에 따라 설정 구축하기


61모든 것을 미리 구성할 필요는 없습니다. 각 기능에는 인식 가능한 트리거가 있으며, 대부분의 팀은 대략 이 순서로 추가합니다:61모든 것을 미리 구성할 필요는 없습니다. 각 기능에는 인식 가능한 트리거가 있으며, 대부분의 팀은 대략 이 순서로 추가합니다:

62 62 

63| 트리거 | 추가 |63| 트리거 | 추가 |

64| :------------------------------------------------ | :------------------------------------------------------------- |64| :------------------------------------------------ | :----------------------------------------------------- |

65| Claude가 규칙이나 명령을 두 번 잘못 실행 | [CLAUDE.md](/docs/ko/memory)에 추가 |65| Claude가 규칙이나 명령을 두 번 잘못 실행 | [CLAUDE.md](/docs/ko/memory)에 추가 |

66| 계속해서 Claude에게 더 짧게, 더 많이 설명하거나, 동일한 형식으로 답변하도록 요청 | [출력 스타일](/docs/ko/output-styles) 설정 |66| 계속해서 Claude에게 더 짧게, 더 많이 설명하거나, 동일한 형식으로 답변하도록 요청 | [출력 스타일](/docs/ko/output-styles) 설정 |

67| 작업을 시작하기 위해 동일한 프롬프트를 계속 입력 | 사용자가 호출 가능한 [skill](/docs/ko/skills)로 저장 |67| 작업을 시작하기 위해 동일한 프롬프트를 계속 입력 | 사용자가 호출 가능한 [skill](/docs/ko/skills)로 저장 |

68| 동일한 플레이북이나 다단계 절차를 세 번째로 채팅에 붙여넣기 | [skill](/docs/ko/skills)로 캡처 |68| 동일한 플레이북이나 다단계 절차를 세 번째로 채팅에 붙여넣기 | [skill](/docs/ko/skills)로 캡처 |

69| Claude가 볼 수 없는 브라우저 탭에서 계속 데이터 복사 | 해당 시스템을 [MCP 서버](/docs/ko/mcp)로 연결 |69| Claude가 볼 수 없는 브라우저 탭에서 계속 데이터 복사 | 해당 시스템을 [MCP 서버](/docs/ko/mcp)로 연결 |

70| Claude가 기호가 정의되거나 사용되는 위치를 찾기 위해 많은 파일 읽기 | 언어용 [코드 인텔리전스 플러그인](/docs/ko/discover-plugins#code-intelligence) 설치 |70| Claude가 기호가 정의되거나 사용되는 위치를 찾기 위해 많은 파일 읽기 | 언어용 [코드 인텔리전스 플러그인](/docs/ko/plugins/code-intelligence)을 설치 |

71| 부작용 작업이 다시 참조하지 않을 출력으로 대화를 채우기 | [subagent](/docs/ko/sub-agents)를 통해 라우팅 |71| 부작용 작업이 다시 참조하지 않을 출력으로 대화를 채우기 | [subagent](/docs/ko/sub-agents)를 통해 라우팅 |

72| 요청하지 않고 매번 무언가가 발생하기를 원함 | [hook](/docs/ko/hooks-guide) 작성 |72| 요청하지 않고 매번 무언가가 발생하기를 원함 | [hook](/docs/ko/hooks-guide) 작성 |

73| 두 번째 저장소에 동일한 설정이 필요 | [플러그인](/docs/ko/plugins)으로 패키징 |73| 두 번째 저장소에 동일한 설정이 필요 | [플러그인](/docs/ko/plugins/overview)으로 패키징 |

74 74 

75동일한 트리거는 이미 있는 것을 업데이트할 시점을 알려줍니다. 반복된 실수나 반복되는 검토 의견은 채팅의 일회성 수정이 아닌 CLAUDE.md 편집입니다. 손으로 계속 조정하는 워크플로우는 다른 수정이 필요한 skill입니다.75동일한 트리거는 이미 있는 것을 업데이트할 시점을 알려줍니다. 반복된 실수나 반복되는 검토 의견은 채팅의 일회성 수정이 아닌 CLAUDE.md 편집입니다. 손으로 계속 조정하는 워크플로우는 다른 수정이 필요한 skill입니다.

76 76 


207기능은 여러 수준에서 정의할 수 있습니다: 사용자 전체, 프로젝트별, 플러그인을 통해, 또는 관리 정책을 통해. CLAUDE.md 파일을 하위 디렉토리에 중첩하거나 monorepo의 특정 패키지에 skill을 배치할 수도 있습니다. 동일한 기능이 여러 수준에 존재할 때, 다음과 같이 계층화됩니다:207기능은 여러 수준에서 정의할 수 있습니다: 사용자 전체, 프로젝트별, 플러그인을 통해, 또는 관리 정책을 통해. CLAUDE.md 파일을 하위 디렉토리에 중첩하거나 monorepo의 특정 패키지에 skill을 배치할 수도 있습니다. 동일한 기능이 여러 수준에 존재할 때, 다음과 같이 계층화됩니다:

208 208 

209* **CLAUDE.md 파일**은 가산적입니다: 모든 수준의 콘텐츠가 동시에 Claude의 컨텍스트에 기여합니다. 작업 디렉토리 및 위의 파일은 시작 시 로드됩니다. 하위 디렉토리는 작업할 때 로드됩니다. 지침이 충돌할 때, Claude는 판단을 사용하여 조정합니다. [CLAUDE.md 파일이 로드되는 방식](/docs/ko/memory#how-claude-md-files-load)을 참조하세요.209* **CLAUDE.md 파일**은 가산적입니다: 모든 수준의 콘텐츠가 동시에 Claude의 컨텍스트에 기여합니다. 작업 디렉토리 및 위의 파일은 시작 시 로드됩니다. 하위 디렉토리는 작업할 때 로드됩니다. 지침이 충돌할 때, Claude는 판단을 사용하여 조정합니다. [CLAUDE.md 파일이 로드되는 방식](/docs/ko/memory#how-claude-md-files-load)을 참조하세요.

210* **Skill과 subagent**는 이름으로 재정의됩니다: 동일한 이름이 여러 수준에 존재할 때, 우선순위에 따라 하나의 정의가 승리합니다(skill의 경우 관리 > 사용자 > 프로젝트; subagent의 경우 관리 > CLI 플래그 > 프로젝트 > 사용자 > 플러그인). 플러그인 skill은 [네임스페이스됩니다](/docs/ko/plugins#add-skills-to-your-plugin) 충돌을 피하기 위해. [Skill 발견](/docs/ko/skills#resolve-skills-that-share-a-name) 및 [Subagent 범위](/docs/ko/sub-agents#choose-the-subagent-scope)를 참조하세요.210* **Skill과 subagent**는 이름으로 재정의됩니다: 동일한 이름이 여러 수준에 존재할 때, 우선순위에 따라 하나의 정의가 승리합니다(skill의 경우 관리 > 사용자 > 프로젝트; subagent의 경우 관리 > CLI 플래그 > 프로젝트 > 사용자 > 플러그인). 플러그인 skill은 [네임스페이스됩니다](/docs/ko/plugins/components#skills) 충돌을 피하기 위해. [Skill 발견](/docs/ko/skills#resolve-skills-that-share-a-name) 및 [Subagent 범위](/docs/ko/sub-agents#choose-the-subagent-scope)를 참조하세요.

211* **MCP 서버**는 이름으로 재정의됩니다: 로컬 > 프로젝트 > 사용자. [MCP 범위](/docs/ko/mcp#scope-hierarchy-and-precedence)를 참조하세요.211* **MCP 서버**는 이름으로 재정의됩니다: 로컬 > 프로젝트 > 사용자. [MCP 범위](/docs/ko/mcp#scope-hierarchy-and-precedence)를 참조하세요.

212* **Hook**은 병합됩니다: 등록된 모든 hook은 소스와 관계없이 일치하는 이벤트에 대해 실행됩니다. [Hook](/docs/ko/hooks)을 참조하세요.212* **Hook**은 병합됩니다: 등록된 모든 hook은 소스와 관계없이 일치하는 이벤트에 대해 실행됩니다. [Hook](/docs/ko/hooks)을 참조하세요.

213 213 


304 304 

305 **컨텍스트 비용:** 낮음. 기호 조회는 종종 광범위한 파일 읽기를 대체하므로, 순 컨텍스트 사용이 감소할 수 있습니다.305 **컨텍스트 비용:** 낮음. 기호 조회는 종종 광범위한 파일 읽기를 대체하므로, 순 컨텍스트 사용이 감소할 수 있습니다.

306 306 

307 <Tip>LSP 도구는 언어에 대한 [code intelligence 플러그인](/docs/ko/discover-plugins#code-intelligence)을 설치할 때까지 비활성화됩니다.</Tip>307 <Tip>LSP 도구는 언어에 대한 [code intelligence 플러그인](/docs/ko/plugins/code-intelligence)을 설치할 때까지 비활성화됩니다.</Tip>

308 </Tab>308 </Tab>

309 309 

310 <Tab title="Subagents">310 <Tab title="Subagents">


370 Hook으로 작업 자동화370 Hook으로 작업 자동화

371 </Card>371 </Card>

372 372 

373 <Card title="Plugins" icon="puzzle-piece" href="/docs/ko/plugins">373 <Card title="Plugins" icon="puzzle-piece" href="/docs/ko/plugins/overview">

374 기능 세트 번들 및 공유374 기능 세트 번들 및 공유

375 </Card>375 </Card>

376 376 

377 <Card title="Marketplaces" icon="store" href="/docs/ko/plugin-marketplaces">377 <Card title="Marketplaces" icon="store" href="/docs/ko/plugins/create-marketplace">

378 플러그인 컬렉션 호스트 및 배포378 플러그인 컬렉션 호스트 및 배포

379 </Card>379 </Card>

380</CardGroup>380</CardGroup>

fullscreen.md +2 −1

Details

100 100 

101* **프롬프트 입력 필드를 클릭**하여 입력 중인 텍스트의 어디든지 커서를 위치시킵니다.101* **프롬프트 입력 필드를 클릭**하여 입력 중인 텍스트의 어디든지 커서를 위치시킵니다.

102* **`/` 명령어 또는 `@` 파일 목록의 제안을 클릭**하여 수락합니다. 마우스를 가져가면 커서 아래의 행이 강조됩니다.102* **`/` 명령어 또는 `@` 파일 목록의 제안을 클릭**하여 수락합니다. 마우스를 가져가면 커서 아래의 행이 강조됩니다.

103* **선택 메뉴의 옵션을 클릭**하여 선택합니다. 이는 권한 프롬프트, `/model`, `/config` 및 옵션 목록을 표시하는 기타 대화상자를 포함합니다. 마우스를 가져가면 커서 아래의 행에 포인터가 표시됩니다. Claude Code v2.1.187 이상이 필요합니다.103* **선택 메뉴의 옵션을 클릭**하여 선택합니다. 이는 권한 프롬프트, `/model`, `/config` 및 옵션 목록을 표시하는 기타 대화상자를 포함합니다. 마우스를 가져가면 커서 아래의 행에 포인터가 표시됩니다.

104* **다중 선택 메뉴의 옵션을 클릭**하여 토글하고, 제출 버튼을 클릭하여 선택 사항을 확인합니다. 다중 선택 질문의 `기타` 행과 같은 자유 텍스트 행을 클릭하면 입력 필드에 포커스가 이동하여 답변을 입력할 수 있습니다. Claude Code v2.1.208 이상이 필요합니다.104* **다중 선택 메뉴의 옵션을 클릭**하여 토글하고, 제출 버튼을 클릭하여 선택 사항을 확인합니다. 다중 선택 질문의 `기타` 행과 같은 자유 텍스트 행을 클릭하면 입력 필드에 포커스가 이동하여 답변을 입력할 수 있습니다. Claude Code v2.1.208 이상이 필요합니다.

105* **`/config` 패널에서 설정의 값을 클릭**하여 변경하고, 마우스 휠로 설정 목록을 스크롤합니다. Claude Code v2.1.271 이상이 필요합니다.105* **`/config` 패널에서 설정의 값을 클릭**하여 변경하고, 마우스 휠로 설정 목록을 스크롤합니다. Claude Code v2.1.271 이상이 필요합니다.

106* **선택 또는 다중 선택 메뉴를 마우스 휠로 스크롤**하여 한 번에 표시되는 것보다 더 많은 옵션이 있을 때(예: 짧은 터미널 창의 `/model` 목록), 휠이 포인터가 옵션 위에 있을 때 목록을 스크롤합니다. Claude Code v2.1.280 이상이 필요합니다.

106* **축소된 도구 결과를 클릭**하여 확장하고 전체 출력을 봅니다. 다시 클릭하면 축소됩니다. 도구 호출과 그 결과가 함께 확장됩니다. 더 표시할 내용이 있는 메시지만 클릭 가능합니다.107* **축소된 도구 결과를 클릭**하여 확장하고 전체 출력을 봅니다. 다시 클릭하면 축소됩니다. 도구 호출과 그 결과가 함께 확장됩니다. 더 표시할 내용이 있는 메시지만 클릭 가능합니다.

107 * 클릭하면 `!` 셸 명령어의 출력도 확장되며, 이는 이전의 잘린 결과이거나 명령어 실행 중인 라이브 진행 행입니다. Claude Code v2.1.257 이상이 필요합니다.108 * 클릭하면 `!` 셸 명령어의 출력도 확장되며, 이는 이전의 잘린 결과이거나 명령어 실행 중인 라이브 진행 행입니다. Claude Code v2.1.257 이상이 필요합니다.

108* **macOS에서 `Cmd`를 누르거나, Linux 및 Windows에서 `Ctrl`을 누르고 URL 또는 파일 경로를 클릭**하여 엽니다. 일반 `http://` 및 `https://` URL은 브라우저에서 열리고, Edit 또는 Write 후에 인쇄된 것과 같은 도구 출력의 파일 경로는 기본 애플리케이션에서 열립니다. 수정자 없이 일반 클릭하면 링크가 열리지 않으며, 이는 기본 터미널 동작과 일치합니다.109* **macOS에서 `Cmd`를 누르거나, Linux 및 Windows에서 `Ctrl`을 누르고 URL 또는 파일 경로를 클릭**하여 엽니다. 일반 `http://` 및 `https://` URL은 브라우저에서 열리고, Edit 또는 Write 후에 인쇄된 것과 같은 도구 출력의 파일 경로는 기본 애플리케이션에서 열립니다. 수정자 없이 일반 클릭하면 링크가 열리지 않으며, 이는 기본 터미널 동작과 일치합니다.

Details

50* `/install-github-app`을 다시 실행합니다. 저장소에 이미 `claude.yml`이 있으면 **최신 버전으로 워크플로우 파일 업데이트**를 선택합니다. Claude Code가 새 브랜치에 워크플로우 파일의 새 복사본을 푸시하고 첫 설치와 동일하게 풀 리퀘스트를 엽니다.50* `/install-github-app`을 다시 실행합니다. 저장소에 이미 `claude.yml`이 있으면 **최신 버전으로 워크플로우 파일 업데이트**를 선택합니다. Claude Code가 새 브랜치에 워크플로우 파일의 새 복사본을 푸시하고 첫 설치와 동일하게 풀 리퀘스트를 엽니다.

51* [리뷰 워크플로우 예제](#run-a-skill)에서 `--comment` 인수와 `claude_args` 줄을 직접 체크인된 파일에 추가합니다. 이렇게 하면 파일에 대해 수행한 다른 편집 사항이 유지됩니다.51* [리뷰 워크플로우 예제](#run-a-skill)에서 `--comment` 인수와 `claude_args` 줄을 직접 체크인된 파일에 추가합니다. 이렇게 하면 파일에 대해 수행한 다른 편집 사항이 유지됩니다.

52 52 

53GitHub App을 설치한 후 Claude Code가 GitHub Actions 설정을 계속할지 여부를 묻습니다. **지금 건너뛰기**를 선택하여 GitHub App만 설치된 상태로 중지합니다. 나중에 `/install-github-app`을 다시 실행하여 워크플로우 및 시크릿 단계를 완료합니다. v2.1.187 이전에는 Claude Code가 워크플로우 선택으로 바로 진행했습니다.53GitHub App을 설치한 후 Claude Code가 GitHub Actions 설정을 계속할지 여부를 묻습니다. **지금 건너뛰기**를 선택하여 GitHub App만 설치된 상태로 중지합니다. 나중에 `/install-github-app`을 다시 실행하여 워크플로우 및 시크릿 단계를 완료합니다.

54 54 

55<Note>55<Note>

56 * GitHub App을 설치하면 여러 권한을 부여합니다. 전체 집합은 [GitHub App 권한](#github-app-permissions)을 참조하십시오56 * GitHub App을 설치하면 여러 권한을 부여합니다. 전체 집합은 [GitHub App 권한](#github-app-permissions)을 참조하십시오


131 GitHub App 권한131 GitHub App 권한

132</h3>132</h3>

133 133 

134[Claude GitHub App](https://github.com/apps/claude)은 Claude Code GitHub Action, [Code Review](/docs/ko/code-review) 및 Claude Code on the web의 [풀 리퀘스트 자동 수정](/docs/ko/claude-code-on-the-web#auto-fix-pull-requests)을 포함하여 GitHub와 통합되는 모든 Claude 기능에서 공유됩니다. GitHub App은 모든 기능을 포함하는 단일 권한 집합을 가지므로 집합에는 Claude Code GitHub Action이 사용하지 않는 일부 권한이 포함됩니다.134[Claude GitHub App](https://github.com/apps/claude)은 Claude Code GitHub Action, [Code Review](/docs/ko/code-review) 및 클라우드 세션의 [풀 리퀘스트 자동 수정](/docs/ko/claude-code-on-the-web#auto-fix-pull-requests)을 포함하여 GitHub와 통합되는 모든 Claude 기능에서 공유됩니다. GitHub App은 모든 기능을 포함하는 단일 권한 집합을 가지므로 집합에는 Claude Code GitHub Action이 사용하지 않는 일부 권한이 포함됩니다.

135 135 

136앱을 설치하면 다음 권한을 부여합니다:136앱을 설치하면 다음 권한을 부여합니다:

137 137 


237`prompt` 입력은 일반 텍스트뿐만 아니라 [스킬](/docs/ko/skills) 호출도 허용합니다:237`prompt` 입력은 일반 텍스트뿐만 아니라 [스킬](/docs/ko/skills) 호출도 허용합니다:

238 238 

239* 저장소의 `.claude/skills/` 디렉토리에 있는 스킬의 경우 `anthropics/claude-code-action` 단계 전에 `actions/checkout`을 실행하여 스킬 파일을 러너에서 사용할 수 있게 한 후 `/skill-name`을 `prompt`로 전달합니다.239* 저장소의 `.claude/skills/` 디렉토리에 있는 스킬의 경우 `anthropics/claude-code-action` 단계 전에 `actions/checkout`을 실행하여 스킬 파일을 러너에서 사용할 수 있게 한 후 `/skill-name`을 `prompt`로 전달합니다.

240* [플러그인](/docs/ko/plugins)에 패키징된 스킬의 경우 `plugin_marketplaces` 및 `plugins` 입력으로 플러그인을 설치한 후 네임스페이스가 지정된 `/plugin-name:skill-name`을 `prompt`로 전달합니다. `plugins` 입력은 `plugin-name@marketplace-name`을 사용합니다. 마켓플레이스 이름은 저장소 URL이 아닌 마켓플레이스 자체의 매니페스트에서 나옵니다.240* [플러그인](/docs/ko/plugins/overview)에 패키징된 스킬의 경우 `plugin_marketplaces` 및 `plugins` 입력으로 플러그인을 설치한 후 네임스페이스가 지정된 `/plugin-name:skill-name`을 `prompt`로 전달합니다. `plugins` 입력은 `plugin-name@marketplace-name`을 사용합니다. 마켓플레이스 이름은 저장소 URL이 아닌 마켓플레이스 자체의 매니페스트에서 나옵니다.

241 241 

242다음 워크플로우는 `code-review` 플러그인을 설치하고 풀 리퀘스트가 열리거나, 업데이트되거나, 다시 열리거나, 리뷰 준비로 표시될 때 해당 스킬을 실행합니다. 빠른 설정의 리뷰 워크플로우와 동일한 플러그인을 실행합니다. 프롬프트, 모델 및 트리거를 직접 제어하려는 경우 이와 같은 워크플로우를 사용합니다. 워크플로우 파일을 유지하지 않고 자동 리뷰의 경우 [Code Review](/docs/ko/code-review)를 참조하십시오. 공개 저장소에서 GitHub는 포크 풀 리퀘스트로 트리거된 실행에서 시크릿을 보류하므로 리뷰는 동일한 저장소의 브랜치에서 풀 리퀘스트에서만 실행됩니다.242다음 워크플로우는 `code-review` 플러그인을 설치하고 풀 리퀘스트가 열리거나, 업데이트되거나, 다시 열리거나, 리뷰 준비로 표시될 때 해당 스킬을 실행합니다. 빠른 설정의 리뷰 워크플로우와 동일한 플러그인을 실행합니다. 프롬프트, 모델 및 트리거를 직접 제어하려는 경우 이와 같은 워크플로우를 사용합니다. 워크플로우 파일을 유지하지 않고 자동 리뷰의 경우 [Code Review](/docs/ko/code-review)를 참조하십시오. 공개 저장소에서 GitHub는 포크 풀 리퀘스트로 트리거된 실행에서 시크릿을 보류하므로 리뷰는 동일한 저장소의 브랜치에서 풀 리퀘스트에서만 실행됩니다.

243 243 

Details

68매니페스트는 GitHub App을 다음 권한 및 웹훅 이벤트로 구성하며, 이들은 함께 클라우드 세션, 코드 검토, Claude Security, 플러그인 마켓플레이스 및 기여도 메트릭을 포함합니다:68매니페스트는 GitHub App을 다음 권한 및 웹훅 이벤트로 구성하며, 이들은 함께 클라우드 세션, 코드 검토, Claude Security, 플러그인 마켓플레이스 및 기여도 메트릭을 포함합니다:

69 69 

70| 권한 | 액세스 | 사용 목적 |70| 권한 | 액세스 | 사용 목적 |

71| :------------------- | :------ | :----------------------------------------------------------------------------------------------------------------- |71| :------------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------ |

72| Contents | 읽기 및 쓰기 | 저장소 복제 및 분기 푸시 |72| Contents | 읽기 및 쓰기 | 저장소 복제 및 분기 푸시 |

73| Pull requests | 읽기 및 쓰기 | PR 생성 및 검토 의견 게시 |73| Pull requests | 읽기 및 쓰기 | PR 생성 및 검토 의견 게시 |

74| Issues | 읽기 및 쓰기 | 문제 언급에 응답 |74| Issues | 읽기 및 쓰기 | 문제 언급에 응답 |

75| Checks | 읽기 및 쓰기 | 코드 검토 확인 실행 게시 |75| Checks | 읽기 및 쓰기 | 코드 검토 확인 실행 게시 |

76| Actions | 읽기 | 자동 수정을 위한 CI 상태 읽기 |76| Actions | 읽기 | 자동 수정을 위한 CI 상태 읽기 |

77| Commit statuses | 읽기 | 확인 실행 대신 커밋 상태를 보고하는 공급자로부터 CI 상태 읽기 |77| Commit statuses | 읽기 | 확인 실행 대신 커밋 상태를 보고하는 공급자로부터 CI 상태 읽기 |

78| Repository hooks | 읽기 및 쓰기 | [조직 설정 > 플러그인](https://claude.ai/admin-settings/plugins)에서 마켓플레이스에 대해 **자동으로 동기화**가 켜져 있을 때 플러그인 마켓플레이스 저장소에 웹훅 생성 |78| Repository hooks | 읽기 및 쓰기 | [**조직 설정 > 플러그인 & 스킬**](https://claude.ai/admin-settings/skills?tab=marketplaces)에서 마켓플레이스에 대해 **자동으로 동기화**가 켜져 있을 때 플러그인 마켓플레이스 저장소에 웹훅 생성 |

79| Metadata | 읽기 | 모든 앱에 GitHub에서 필요 |79| Metadata | 읽기 | 모든 앱에 GitHub에서 필요 |

80| Organization members | 읽기 | github.com의 Claude GitHub App과 일치하며, 이를 사용하여 설치를 연결할 때 연결하는 사용자의 조직 역할을 확인 |80| Organization members | 읽기 | github.com의 Claude GitHub App과 일치하며, 이를 사용하여 설치를 연결할 때 연결하는 사용자의 조직 역할을 확인 |

81 81 


160 160 

161Claude Code는 git을 비대화형으로 실행하며 머신의 `known_hosts` 파일에 없는 호스트에 대한 SSH 연결을 거부합니다. git 자격 증명 도우미가 있는 HTTPS URL은 `known_hosts` 요구 사항을 피합니다.161Claude Code는 git을 비대화형으로 실행하며 머신의 `known_hosts` 파일에 없는 호스트에 대한 SSH 연결을 거부합니다. git 자격 증명 도우미가 있는 HTTPS URL은 `known_hosts` 요구 사항을 피합니다.

162 162 

163마켓플레이스 구축에 대한 전체 가이드는 [플러그인 마켓플레이스 만들기 및 배포](/docs/ko/plugin-marketplaces)를 참조합니다.163마켓플레이스 구축에 대한 전체 가이드는 [플러그인 마켓플레이스 만들기 및 배포](/docs/ko/plugins/create-marketplace)를 참조합니다.

164 164 

165<h3 id="pre-register-ghes-marketplaces-with-managed-settings">165<h3 id="pre-register-ghes-marketplaces-with-managed-settings">

166 관리되는 설정으로 GHES 마켓플레이스 사전 등록166 관리되는 설정으로 GHES 마켓플레이스 사전 등록


262 262 

263* [웹에서 Claude Code](/docs/ko/claude-code-on-the-web): 클라우드 인프라에서 Claude Code 세션 실행263* [웹에서 Claude Code](/docs/ko/claude-code-on-the-web): 클라우드 인프라에서 Claude Code 세션 실행

264* [코드 리뷰](/docs/ko/code-review): 자동화된 PR 리뷰264* [코드 리뷰](/docs/ko/code-review): 자동화된 PR 리뷰

265* [플러그인 마켓플레이스](/docs/ko/plugin-marketplaces): 플러그인 카탈로그 구축 및 배포265* [플러그인 마켓플레이스](/docs/ko/plugins/host-marketplace): 플러그인 카탈로그 구축 및 배포

266* [분석](/docs/ko/analytics): 사용량 및 기여도 메트릭 추적266* [분석](/docs/ko/analytics): 사용량 및 기여도 메트릭 추적

267* [관리되는 설정](/docs/ko/settings): 조직 전체 정책 구성267* [관리되는 설정](/docs/ko/settings): 조직 전체 정책 구성

268* [네트워크 구성](/docs/ko/network-config): 방화벽 및 IP 허용 목록 요구 사항268* [네트워크 구성](/docs/ko/network-config): 방화벽 및 IP 허용 목록 요구 사항

glossary.md +3 −3

Details

84 Bare mode84 Bare mode

85</h3>85</h3>

86 86 

87`--bare`를 사용하면 Claude Code는 `--add-dir`으로 전달하는 디렉터리의 스킬을 제외하고 훅, 스킬, 사용자 정의 명령, 서브에이전트, 플러그인, MCP 서버, auto memory 또는 CLAUDE.md를 로드하지 않고 시작합니다. CI 및 스크립트된 호출에 권장되며, 모든 머신에서 동일한 결과가 필요한 경우에 사용합니다.87`--bare`를 사용하면 Claude Code는 `--add-dir`으로 전달하는 디렉터리의 스킬을 제외하고 훅, 스킬, 사용자 정의 명령, 서브에이전트, 설치된 플러그인, MCP 서버, auto memory 또는 CLAUDE.md를 로드하지 않고 시작합니다. CI 및 스크립트된 호출에 권장되며, 모든 머신에서 동일한 결과가 필요한 경우에 사용합니다.

88 88 

89자세히 알아보기: [bare mode로 더 빠르게 시작](/docs/ko/headless#start-faster-with-bare-mode)89자세히 알아보기: [bare mode로 더 빠르게 시작](/docs/ko/headless#start-faster-with-bare-mode)

90 90 


332 Plugin332 Plugin

333</h3>333</h3>

334 334 

335스킬, 훅, 서브에이전트 및 MCP 서버의 번들이며, 단일 설치 가능한 단위로 패키징됩니다. 플러그인 스킬은 `plugin-name:skill-name`으로 네임스페이스되므로 여러 플러그인이 공존합니다. [마켓플레이스](/docs/ko/plugin-marketplaces)를 통해 팀 전체에 플러그인을 배포합니다.335스킬, 훅, 서브에이전트 및 MCP 서버의 번들이며, 단일 설치 가능한 단위로 패키징됩니다. 플러그인 스킬은 `plugin-name:skill-name`으로 네임스페이스되므로 여러 플러그인이 공존합니다. [마켓플레이스](/docs/ko/plugins/overview)를 통해 팀 전체에 플러그인을 배포합니다.

336 336 

337자세히 알아보기: [플러그인](/docs/ko/plugins)337자세히 알아보기: [플러그인](/docs/ko/plugins/overview)

338 338 

339<h3 id="project-trust">339<h3 id="project-trust">

340 Project trust340 Project trust

headless.md +1 −1

Details

38 베어 모드로 더 빠르게 시작하기38 베어 모드로 더 빠르게 시작하기

39</h3>39</h3>

40 40 

41`--bare`를 추가하여 hooks, skills, 사용자 정의 명령, [서브에이전트](/docs/ko/sub-agents), plugins, MCP 서버, 자동 메모리 및 CLAUDE.md의 자동 검색을 건너뛰어 시작 시간을 단축합니다. 이를 사용하지 않으면 `claude -p`는 대화형 세션과 동일한 [컨텍스트](/docs/ko/how-claude-code-works#the-context-window)를 로드하며, 작업 디렉토리 또는 `~/.claude`에 구성된 모든 항목을 포함합니다.41`--bare`를 추가하여 hooks, skills, 사용자 정의 명령, [서브에이전트](/docs/ko/sub-agents), 설치된 플러그인, MCP 서버, 자동 메모리 및 CLAUDE.md의 자동 검색을 건너뛰어 시작 시간을 단축합니다. 이를 사용하지 않으면 `claude -p`는 대화형 세션과 동일한 [컨텍스트](/docs/ko/how-claude-code-works#the-context-window)를 로드하며, 작업 디렉토리 또는 `~/.claude`에 구성된 모든 항목을 포함합니다.

42 42 

43베어 모드는 모든 머신에서 동일한 결과가 필요한 CI 및 스크립트에 유용합니다. 팀원의 `~/.claude`에 있는 hook이나 프로젝트의 `.mcp.json`에 있는 MCP 서버는 베어 모드가 이들을 읽지 않기 때문에 실행되지 않습니다. `--add-dir`로 지정한 디렉토리는 부분적인 예외입니다: 베어 모드는 해당 `.claude/skills/` 폴더에서 skills를 로드하지만 여전히 해당 `.claude/commands/` 및 `.claude/agents/` 폴더를 건너뜁니다. [추가 디렉토리의 Skills](/docs/ko/skills#skills-from-additional-directories)는 로드되는 항목과 로드되지 않는 항목을 다룹니다.43베어 모드는 모든 머신에서 동일한 결과가 필요한 CI 및 스크립트에 유용합니다. 팀원의 `~/.claude`에 있는 hook이나 프로젝트의 `.mcp.json`에 있는 MCP 서버는 베어 모드가 이들을 읽지 않기 때문에 실행되지 않습니다. `--add-dir`로 지정한 디렉토리는 부분적인 예외입니다: 베어 모드는 해당 `.claude/skills/` 폴더에서 skills를 로드하지만 여전히 해당 `.claude/commands/` 및 `.claude/agents/` 폴더를 건너뜁니다. [추가 디렉토리의 Skills](/docs/ko/skills#skills-from-additional-directories)는 로드되는 항목과 로드되지 않는 항목을 다룹니다.

44 44 

hooks-guide.md +2 −2

Details

10 10 

11판단이 필요한 결정의 경우 결정론적 규칙이 아닌 경우, [프롬프트 기반 hooks](#prompt-based-hooks) 또는 [에이전트 기반 hooks](#agent-based-hooks)를 사용할 수도 있습니다. 이들은 Claude 모델을 사용하여 조건을 평가합니다.11판단이 필요한 결정의 경우 결정론적 규칙이 아닌 경우, [프롬프트 기반 hooks](#prompt-based-hooks) 또는 [에이전트 기반 hooks](#agent-based-hooks)를 사용할 수도 있습니다. 이들은 Claude 모델을 사용하여 조건을 평가합니다.

12 12 

13Claude Code를 확장하는 다른 방법은 [skills](/docs/ko/skills)를 참조하여 Claude에 추가 지침과 실행 가능한 명령을 제공하고, [subagents](/docs/ko/sub-agents)를 사용하여 격리된 컨텍스트에서 작업을 실행하며, [plugins](/docs/ko/plugins)를 사용하여 프로젝트 전체에서 공유할 확장을 패키징합니다.13Claude Code를 확장하는 다른 방법은 [skills](/docs/ko/skills)를 참조하여 Claude에 추가 지침과 실행 가능한 명령을 제공하고, [subagents](/docs/ko/sub-agents)를 사용하여 격리된 컨텍스트에서 작업을 실행하며, [plugins](/docs/ko/plugins/overview)를 사용하여 프로젝트 전체에서 공유할 확장을 패키징합니다.

14 14 

15<Tip>15<Tip>

16 이 가이드는 일반적인 사용 사례와 시작 방법을 다룹니다. 전체 이벤트 스키마, JSON 입출력 형식 및 비동기 hooks 및 MCP 도구 hooks와 같은 고급 기능은 [Hooks 참조](/docs/ko/hooks)를 참조하세요.16 이 가이드는 일반적인 사용 사례와 시작 방법을 다룹니다. 전체 이벤트 스키마, JSON 입출력 형식 및 비동기 hooks 및 MCP 도구 hooks와 같은 고급 기능은 [Hooks 참조](/docs/ko/hooks)를 참조하세요.


710}710}

711```711```

712 712 

713`"Edit|Write"` matcher는 Claude가 `Edit` 또는 `Write` 도구를 사용할 때만 발생하고 `Bash`, `Read` 또는 다른 도구를 사용할 때는 발생하지 않습니다. Claude Code v2.1.191 이상에서는 쉼표도 같은 방식으로 대안을 구분하므로 `"Edit, Write"`는 동등합니다. [Matcher 패턴](/docs/ko/hooks#matcher-patterns)을 참조하여 일반 이름과 정규식이 평가되는 방식을 확인하세요.713`"Edit|Write"` matcher는 Claude가 `Edit` 또는 `Write` 도구를 사용할 때만 발생하고 `Bash`, `Read` 또는 다른 도구를 사용할 때는 발생하지 않습니다. 쉼표도 같은 방식으로 대안을 구분하므로 `"Edit, Write"`는 동등합니다. [Matcher 패턴](/docs/ko/hooks#matcher-patterns)을 참조하여 일반 이름과 정규식이 평가되는 방식을 확인하세요.

714 714 

715<Note>715<Note>

716 Claude는 또한 셸 명령을 실행하여 파일을 생성하거나 수정할 수 있습니다. Hook이 규정 준수 스캔 또는 감사 로깅과 같이 모든 파일 변경을 확인해야 하는 경우 턴당 한 번 작업 트리를 스캔하는 [`Stop`](/docs/ko/hooks#stop) hook을 추가합니다. 호출당 범위를 대신 원하면 `Bash|PowerShell`도 일치시키고 스크립트가 `git status --porcelain`으로 수정되고 추적되지 않은 파일을 나열하도록 합니다. [PowerShell hook 입력 섹션](/docs/ko/hooks#powershell)은 `Bash`만 일치시키는 것이 충분하지 않은 이유를 설명합니다. 특정 파일이 디스크에서 변경될 때 hook을 실행하려면 무엇이 작성했든 [FileChanged](/docs/ko/hooks#filechanged) hook을 사용합니다.716 Claude는 또한 셸 명령을 실행하여 파일을 생성하거나 수정할 수 있습니다. Hook이 규정 준수 스캔 또는 감사 로깅과 같이 모든 파일 변경을 확인해야 하는 경우 턴당 한 번 작업 트리를 스캔하는 [`Stop`](/docs/ko/hooks#stop) hook을 추가합니다. 호출당 범위를 대신 원하면 `Bash|PowerShell`도 일치시키고 스크립트가 `git status --porcelain`으로 수정되고 추적되지 않은 파일을 나열하도록 합니다. [PowerShell hook 입력 섹션](/docs/ko/hooks#powershell)은 `Bash`만 일치시키는 것이 충분하지 않은 이유를 설명합니다. 특정 파일이 디스크에서 변경될 때 hook을 실행하려면 무엇이 작성했든 [FileChanged](/docs/ko/hooks#filechanged) hook을 사용합니다.

Details

45내장 도구는 일반적으로 다섯 가지 범주로 나뉘며, 각각은 다른 종류의 에이전시를 나타냅니다.45내장 도구는 일반적으로 다섯 가지 범주로 나뉘며, 각각은 다른 종류의 에이전시를 나타냅니다.

46 46 

47| 범주 | Claude가 할 수 있는 것 |47| 범주 | Claude가 할 수 있는 것 |

48| ------------ | ---------------------------------------------------------------------------------------------- |48| ------------ | ------------------------------------------------------------------------------------- |

49| **파일 작업** | 파일 읽기, 코드 편집, 새 파일 생성, 이름 변경 및 재구성 |49| **파일 작업** | 파일 읽기, 코드 편집, 새 파일 생성, 이름 변경 및 재구성 |

50| **검색** | 패턴으로 파일 찾기, 정규식으로 콘텐츠 검색, 코드베이스 탐색 |50| **검색** | 패턴으로 파일 찾기, 정규식으로 콘텐츠 검색, 코드베이스 탐색 |

51| **실행** | 셸 명령 실행, 서버 시작, 테스트 실행, git 사용 |51| **실행** | 셸 명령 실행, 서버 시작, 테스트 실행, git 사용 |

52| **웹** | 웹 검색, 문서 가져오기, 오류 메시지 조회 |52| **웹** | 웹 검색, 문서 가져오기, 오류 메시지 조회 |

53| **코드 인텔리전스** | 편집 후 타입 오류 및 경고 확인, 정의로 이동, 참조 찾기 ([코드 인텔리전스 플러그인](/docs/ko/discover-plugins#code-intelligence) 필요) |53| **코드 인텔리전스** | 편집 후 타입 오류 및 경고 확인, 정의로 이동, 참조 찾기 ([코드 인텔리전스 플러그인](/docs/ko/plugins/code-intelligence) 필요) |

54 54 

55이것이 주요 기능입니다. Claude는 또한 subagents를 생성하고, 질문을 하고, 다른 오케스트레이션 작업을 위한 도구를 가지고 있습니다. 전체 목록은 [Claude가 사용할 수 있는 도구](/docs/ko/tools-reference)를 참조하세요.55이것이 주요 기능입니다. Claude는 또한 subagents를 생성하고, 질문을 하고, 다른 오케스트레이션 작업을 위한 도구를 가지고 있습니다. 전체 목록은 [Claude가 사용할 수 있는 도구](/docs/ko/tools-reference)를 참조하세요.

56 56 

Details

21</h3>21</h3>

22 22 

23| 단축키 | 설명 | 컨텍스트 |23| 단축키 | 설명 | 컨텍스트 |

24| :-------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |24| :-------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

25| `Ctrl+C` | 중단 또는 입력 지우기 | 실행 중인 작업을 중단합니다. 실행 중인 작업이 없으면 첫 번째 누름은 프롬프트 입력을 지우고 두 번째 누름은 Claude Code를 종료합니다 |25| `Ctrl+C` | 중단 또는 입력 지우기 | 실행 중인 작업을 중단합니다. 실행 중인 작업이 없으면 첫 번째 누름은 프롬프트 입력을 지우고 두 번째 누름은 Claude Code를 종료합니다 |

26| `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초 이내에 두 번 누르면 확인됩니다 | 서브에이전트 제어 |26| `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초 이내에 두 번 누르면 확인됩니다 | 서브에이전트 제어 |

27| `Ctrl+D` | Claude Code 세션 종료 | 첫 번째 누름은 확인 힌트를 표시하고 800ms 이내에 두 번째 누름은 종료합니다. 프롬프트에 텍스트가 있을 때 `Ctrl+D`는 커서 뒤의 문자를 삭제합니다 |27| `Ctrl+D` | Claude Code 세션 종료 | 첫 번째 누름은 확인 힌트를 표시하고 800ms 이내에 두 번째 누름은 종료합니다. 프롬프트에 텍스트가 있을 때 `Ctrl+D`는 커서 뒤의 문자를 삭제합니다 |


32| `Ctrl+V` 또는 `Cmd+V` (iTerm2) 또는 `Alt+V` (Windows 및 WSL) | 클립보드에서 이미지 붙여넣기 | 커서에 `[Image #N]` 칩을 삽입하여 프롬프트에서 위치별로 참조할 수 있습니다. WSL에서는 `Ctrl+V`와 `Alt+V` 모두 바인딩되어 있습니다. 터미널이 `Ctrl+V`를 가로채면 `Alt+V`를 사용하세요 |32| `Ctrl+V` 또는 `Cmd+V` (iTerm2) 또는 `Alt+V` (Windows 및 WSL) | 클립보드에서 이미지 붙여넣기 | 커서에 `[Image #N]` 칩을 삽입하여 프롬프트에서 위치별로 참조할 수 있습니다. WSL에서는 `Ctrl+V`와 `Alt+V` 모두 바인딩되어 있습니다. 터미널이 `Ctrl+V`를 가로채면 `Alt+V`를 사용하세요 |

33| `Ctrl+B` | 백그라운드 실행 작업 | Bash 명령 및 에이전트를 백그라운드로 실행합니다. Tmux 사용자는 두 번 누르세요 |33| `Ctrl+B` | 백그라운드 실행 작업 | Bash 명령 및 에이전트를 백그라운드로 실행합니다. Tmux 사용자는 두 번 누르세요 |

34| `Ctrl+T` | Claude의 작업 체크리스트 전환 | 상태 영역에서 [Claude의 할 일 체크리스트](#task-list)를 표시하거나 숨깁니다. 이것은 백그라운드 작업 보기가 아닙니다. 실행 중인 셸 및 서브에이전트를 보려면 [`/tasks`](/docs/ko/commands)를 사용하세요 |34| `Ctrl+T` | Claude의 작업 체크리스트 전환 | 상태 영역에서 [Claude의 할 일 체크리스트](#task-list)를 표시하거나 숨깁니다. 이것은 백그라운드 작업 보기가 아닙니다. 실행 중인 셸 및 서브에이전트를 보려면 [`/tasks`](/docs/ko/commands)를 사용하세요 |

35| `Ctrl+S` | 프롬프트 숨기기 또는 복원 | 입력에 텍스트가 있으면 숨기고 프롬프트를 지웁니다. 빈 프롬프트에서 다시 누르면 숨겨진 텍스트, 커서 위치 및 붙여넣은 콘텐츠를 복원합니다 |35| `Ctrl+S` | 프롬프트 숨기기 또는 복원 | 입력에 텍스트가 있으면 숨기고 프롬프트를 지웁니다. 빈 프롬프트에서 다시 누르면 숨겨진 텍스트, 커서 위치, 붙여넣은 콘텐츠 및 입력 모드를 복원하므로 숨겨진 `!` [셸 명령](#shell-mode-with-prefix)은 셸 모드로 돌아옵니다 |

36| `Ctrl+Z` | Claude Code 일시 중단 | Unix만 해당. 프로세스를 셸로 일시 중단합니다. `fg`를 실행하여 재개합니다 |36| `Ctrl+Z` | Claude Code 일시 중단 | Unix만 해당. 프로세스를 셸로 일시 중단합니다. `fg`를 실행하여 재개합니다 |

37| `Left/Right arrows` | 대화 상자 탭 순환 | 권한 대화 상자 및 메뉴의 탭 사이를 탐색합니다 |37| `Left/Right arrows` | 대화 상자 탭 순환 | 권한 대화 상자 및 메뉴의 탭 사이를 탐색합니다 |

38| `Tab` | 자동 완성 제안 수락 또는 권한 답변에 주석 추가 | 자동 완성 제안이 프롬프트 입력에 표시되는 동안 선택된 제안을 수락합니다. 대부분의 권한 프롬프트에서 **Yes** 또는 **No**에 포커스가 있으면 해당 옵션에 주석 필드를 열고 다시 누르면 필드를 닫습니다. [권한 프롬프트에 답할 때 주석 추가](/docs/ko/permissions#add-a-comment-when-you-answer-a-permission-prompt)를 참조하세요 |38| `Tab` | 자동 완성 제안 수락 또는 권한 답변에 주석 추가 | 자동 완성 제안이 프롬프트 입력에 표시되는 동안 선택된 제안을 수락합니다. 대부분의 권한 프롬프트에서 **Yes** 또는 **No**에 포커스가 있으면 해당 옵션에 주석 필드를 열고 다시 누르면 필드를 닫습니다. [권한 프롬프트에 답할 때 주석 추가](/docs/ko/permissions#add-a-comment-when-you-answer-a-permission-prompt)를 참조하세요 |

39| `Up/Down arrows` 또는 `Ctrl+P`/`Ctrl+N` | 커서 이동 또는 명령 기록 탐색 | 입력이 래핑되거나 여러 줄인지 여부에 관계없이 한 줄 이상의 시각적 행에 걸쳐 있으면 먼저 프롬프트 내에서 커서를 이동합니다. 커서가 첫 번째 또는 마지막 시각적 행에 있으면 다시 누르면 명령 기록을 탐색합니다. 메시지가 대기 중이면 첫 번째 행에서 `Up`은 대신 [대기 중인 메시지를 되돌립니다](#take-back-what-you-queued) |39| `Up/Down arrows` 또는 `Ctrl+P`/`Ctrl+N` | 커서 이동 또는 명령 기록 탐색 | 입력이 래핑되거나 여러 줄인지 여부에 관계없이 한 줄 이상의 시각적 행에 걸쳐 있으면 먼저 프롬프트 내에서 커서를 이동합니다. 커서가 첫 번째 또는 마지막 시각적 행에 있으면 다시 누르면 명령 기록을 탐색합니다. 메시지가 대기 중이면 첫 번째 행에서 `Up`은 대신 [대기 중인 메시지를 되돌립니다](#take-back-what-you-queued) |

40| `Esc` | Claude 중단 또는 대화 상자 닫기 | 현재 응답 또는 도구 호출을 중간에 중지하여 리디렉션할 수 있습니다. Claude는 지금까지 수행한 작업을 유지합니다. [메시지가 대기 중](#queue-messages-while-claude-works)이면 Claude Code는 이어서 그 메시지를 보냅니다. 대화 상자가 열려 있으면 `Esc`는 대화 상자를 닫습니다. 권한 프롬프트에서 `Esc`는 [**No** 주석 없음](/docs/ko/permissions#add-a-comment-when-you-answer-a-permission-prompt)과 동일하게 작업을 거부합니다 |40| `Esc` | Claude 중단 또는 대화 상자 닫기 | 현재 응답 또는 도구 호출을 중간에 중지하여 리디렉션할 수 있습니다. Claude는 지금까지 수행한 작업을 유지합니다. [메시지가 대기 중](#queue-messages-while-claude-works)이면 Claude Code는 이어서 그 메시지를 보냅니다. 대화 상자가 열려 있으면 `Esc`는 대화 상자를 닫습니다. 권한 프롬프트에서 `Esc`는 [**No** 주석 없음](/docs/ko/permissions#add-a-comment-when-you-answer-a-permission-prompt)과 동일하게 작업을 거부합니다 |

41| `Esc` + `Esc` | 입력 초안 지우기 또는 되감기 | 프롬프트 입력에 텍스트가 있으면 이중 `Esc`는 이를 지우고 초안을 기록에 저장하여 `Up`이 이를 회상할 수 있습니다. 입력이 비어 있으면 이중 `Esc`는 [되감기 메뉴](/docs/ko/checkpointing)를 열어 이전 지점에서 코드 및 대화를 복원하거나 요약합니다 |41| `Esc` + `Esc` | 입력 초안 지우기 또는 되감기 | 프롬프트 입력에 텍스트가 있으면 이중 `Esc`는 이를 지우고 초안을 기록에 저장하여 `Up`이 이를 회상할 수 있습니다. 입력이 비어 있으면 이중 `Esc`는 [되감기 메뉴](/docs/ko/checkpointing)를 열어 이전 지점에서 코드 및 대화를 복원하거나 요약합니다 |

42| `Ctrl+Enter` 또는 `Ctrl+X Ctrl+S` | 대기 중인 메시지 지금 보내기 | 현재 턴을 중단하여 [대기 중인 메시지](#queue-messages-while-claude-works)와 초안이 턴이 끝날 때가 아니라 지금 바로 나갑니다. [셸 모드](#shell-mode-with-prefix)에서 키는 중단하지 않고 명령을 대기열에 넣습니다. 확장 키를 보고하지 않는 터미널에서 `Ctrl+Enter`는 일반 `Enter`로 도착합니다. `Ctrl+X Ctrl+S`는 모든 터미널에서 작동합니다. Claude Code v2.1.275 이상 필요 |42| `Ctrl+Enter` 또는 `Ctrl+X Ctrl+S` | 대기 중인 메시지 지금 보내기 | [대기 중인 메시지](#queue-messages-while-claude-works)와 초안을 지금 바로 보냅니다. [Claude Code가 대기 중인 메시지를 보낼 때](#when-claude-code-sends-what-you-queued)는 Claude가 작업 중인 턴에 어떤 일이 발생하는지 설명합니다. [셸 모드](#shell-mode-with-prefix)에서 키는 명령만 대기열에 넣습니다. 확장 키를 보고하지 않는 터미널에서 `Ctrl+Enter`는 일반 `Enter`로 도착합니다. `Ctrl+X Ctrl+S`는 모든 터미널에서 작동합니다. Claude Code v2.1.275 이상 필요 |

43| `Shift+Tab` 또는 Node 또는 Bun 런타임이 VT 입력 모드를 활성화하지 않을 때 Windows의 `Alt+M` | 권한 모드 순환 | `default` (모드 표시기에서 Manual로 표시됨), `acceptEdits`, `plan` 및 사용 가능할 때 `bypassPermissions` 및 `auto`를 순환합니다. `auto`에서 첫 번째 누름은 `default`로 전환합니다. [권한 모드](/docs/ko/permission-modes)를 참조하세요. 파일 권한 프롬프트에서 동일한 키는 열린 [주석 필드](/docs/ko/permissions#add-a-comment-when-you-answer-a-permission-prompt)를 닫습니다. 필드가 열려 있지 않으면 프롬프트가 나머지 세션에 대해 작업을 허용하는 옵션을 선택합니다 |43| `Shift+Tab` 또는 Node 또는 Bun 런타임이 VT 입력 모드를 활성화하지 않을 때 Windows의 `Alt+M` | 권한 모드 순환 | `default` (모드 표시기에서 Manual로 표시됨), `acceptEdits`, `plan` 및 사용 가능할 때 `bypassPermissions` 및 `auto`를 순환합니다. `auto`에서 첫 번째 누름은 `default`로 전환합니다. [권한 모드](/docs/ko/permission-modes)를 참조하세요. 파일 권한 프롬프트에서 동일한 키는 열린 [주석 필드](/docs/ko/permissions#add-a-comment-when-you-answer-a-permission-prompt)를 닫습니다. 필드가 열려 있지 않으면 프롬프트가 나머지 세션에 대해 작업을 허용하는 옵션을 선택합니다 |

44| `Option+P` (macOS) 또는 `Alt+P` (Windows/Linux) | 모델 전환 | 프롬프트를 지우지 않고 모델을 전환합니다 |44| `Option+P` (macOS) 또는 `Alt+P` (Windows/Linux) | 모델 전환 | 프롬프트를 지우지 않고 모델을 전환합니다 |

45| `Option+T` (macOS) 또는 `Alt+T` (Windows/Linux) | 확장 사고 전환 | 확장 사고 모드를 활성화하거나 비활성화합니다. Opus 5.5 또는 Fable 모델에는 영향을 주지 않으며, 이들은 항상 확장 사고를 사용합니다. Option을 Meta로 구성하지 않고도 macOS에서 작동합니다 |45| `Option+T` (macOS) 또는 `Alt+T` (Windows/Linux) | 확장 사고 전환 | 확장 사고 모드를 활성화하거나 비활성화합니다. Opus 5.5 또는 Fable 모델에는 영향을 주지 않으며, 이들은 항상 확장 사고를 사용합니다. Option을 Meta로 구성하지 않고도 macOS에서 작동합니다 |


136 명령어136 명령어

137</h2>137</h2>

138 138 

139Claude Code에서 `/`를 입력하면 사용 가능한 명령어를 확인할 수 있습니다. 또는 `/` 다음에 문자를 입력하여 필터링할 수 있습니다. `/` 메뉴에는 기본 제공 명령어, 번들로 제공되는 사용자 작성 [skills](/docs/ko/skills), [plugins](/docs/ko/plugins) 및 [MCP servers](/docs/ko/mcp#use-mcp-prompts-as-commands)에서 제공하는 명령어가 나열됩니다. 일부 기본 제공 명령어는 플랫폼이나 요금제에 따라 달라지므로 모든 사용자에게 표시되지 않으며, [일부 사용 가능한 명령어는 설계상 메뉴에서 숨겨져 있으며](/docs/ko/commands#how-the-command-menu-matches-what-you-type) 전체 이름을 입력할 때 실행됩니다.139Claude Code에서 `/`를 입력하면 사용 가능한 명령어를 확인할 수 있습니다. 또는 `/` 다음에 문자를 입력하여 필터링할 수 있습니다. `/` 메뉴에는 기본 제공 명령어, 번들로 제공되는 사용자 작성 [skills](/docs/ko/skills), [plugins](/docs/ko/plugins/overview) 및 [MCP servers](/docs/ko/mcp#use-mcp-prompts-as-commands)에서 제공하는 명령어가 나열됩니다. 일부 기본 제공 명령어는 플랫폼이나 요금제에 따라 달라지므로 모든 사용자에게 표시되지 않으며, [일부 사용 가능한 명령어는 설계상 메뉴에서 숨겨져 있으며](/docs/ko/commands#how-the-command-menu-matches-what-you-type) 전체 이름을 입력할 때 실행됩니다.

140 140 

141[전체 화면 렌더링](/docs/ko/fullscreen#use-the-mouse)에서 `/` 명령어와 `@` 파일 제안 목록도 마우스에 응답합니다. 행 위에 마우스를 올리면 강조 표시되고 클릭하면 선택됩니다.141[전체 화면 렌더링](/docs/ko/fullscreen#use-the-mouse)에서 `/` 명령어와 `@` 파일 제안 목록도 마우스에 응답합니다. 행 위에 마우스를 올리면 강조 표시되고 클릭하면 선택됩니다.

142 142 


408* 메시지: Claude가 도구 호출을 실행 중인 동안 메시지를 큐에 추가하면, Claude Code는 해당 도구 호출이 완료되는 즉시 같은 턴 내에서 Claude에게 메시지를 전달합니다. 턴이 끝났을 때 메시지가 여전히 큐에 있으면, Claude Code는 다른 키 입력 없이 입력한 순서대로 메시지를 전송합니다.408* 메시지: Claude가 도구 호출을 실행 중인 동안 메시지를 큐에 추가하면, Claude Code는 해당 도구 호출이 완료되는 즉시 같은 턴 내에서 Claude에게 메시지를 전달합니다. 턴이 끝났을 때 메시지가 여전히 큐에 있으면, Claude Code는 다른 키 입력 없이 입력한 순서대로 메시지를 전송합니다.

409* 명령 및 셸 명령: Claude Code는 턴이 끝날 때까지 이들을 보관했다가 한 번에 하나씩 실행하며, 큐에 추가한 순서를 유지합니다.409* 명령 및 셸 명령: Claude Code는 턴이 끝날 때까지 이들을 보관했다가 한 번에 하나씩 실행하며, 큐에 추가한 순서를 유지합니다.

410 410 

411큐에 추가한 항목을 턴이 끝날 때까지 기다리지 않고 전송하려면 `Ctrl+Enter`를 누르세요. Claude Code는 턴을 중단하고, 큐에 추가된 메시지가 즉시 전송되며, 입력한 초안이 있으면 그 뒤에 큐에 추가됩니다. [셸 모드](#shell-mode-with-prefix)에서는 이 키가 턴을 중단하지 않고 명령을 큐에 추가합니다. Claude Code v2.1.275 이상이 필요합니다.411큐에 추가한 항목을 기다리지 않고 전송하려면 `Ctrl+Enter`를 누르세요. 큐에 추가된 메시지가 즉시 전송되며, 입력한 초안이 있으면 그 뒤에 큐에 추가됩니다. Claude Code v2.1.275 이상이 필요합니다.

412 412 

413확장 키를 보고하지 않는 터미널에서는 `Ctrl+Enter`가 일반 `Enter`로 인식되어 초안을 큐에 추가합니다. `Ctrl+X Ctrl+S`는 모든 터미널에서 작동합니다. 두 키 모두 [`chat:sendNow` 작업](/docs/ko/keybindings#chat-actions)의 바인딩입니다.413큐에 추가된 `!` 셸 명령이 메시지보다 앞에 있으면, 이 키는 턴을 중단합니다. 그 외의 경우에는 키를 누를 때 Claude가 수행 중인 작업에 따라 다릅니다.

414 

415* [백그라운드](#background-bash-commands)로 이동할 수 있는 셸 명령, 서브에이전트 또는 기타 작업을 실행 중: 해당 작업이 백그라운드로 이동하고 계속 실행되며, Claude는 같은 턴에서 메시지를 읽습니다.

416* 응답만 작성 중이거나 백그라운드로 이동할 수 없는 작업을 실행 중: Claude Code는 턴을 중단하고 메시지를 다음으로 전송합니다. v2.1.281 이전에는 두 경우 모두에서 키가 턴을 중단했습니다.

417 

418[셸 모드](#shell-mode-with-prefix)에서는 이 키가 명령을 큐에 추가합니다. 확장 키를 보고하지 않는 터미널에서는 `Ctrl+Enter`가 일반 `Enter`로 인식되어 초안을 큐에 추가합니다. `Ctrl+X Ctrl+S`는 모든 터미널에서 작동합니다. 두 키 모두 [`chat:sendNow` 작업](/docs/ko/keybindings#chat-actions)의 바인딩입니다.

414 419 

415`Esc`를 눌러 초안을 제출하지 않고 턴을 중단할 수 있습니다. Claude Code는 큐에 추가한 항목을 유지하고 즉시 전송합니다.420`Esc`를 눌러 초안을 제출하지 않고 턴을 중단할 수 있습니다. Claude Code는 큐에 추가한 항목을 유지하고 즉시 전송합니다.

416 421 

keybindings.md +18 −2

Details

112`Chat` 컨텍스트에서 사용 가능한 작업:112`Chat` 컨텍스트에서 사용 가능한 작업:

113 113 

114| 작업 | 기본값 | 설명 |114| 작업 | 기본값 | 설명 |

115| :-------------------- | :----------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |115| :-------------------- | :----------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

116| `chat:cancel` | Escape | 현재 입력 취소 |116| `chat:cancel` | Escape | 현재 입력 취소 |

117| `chat:clearInput` | Ctrl+L | 입력과 대화를 유지하면서 전체 화면을 다시 그리기 강제합니다 |117| `chat:clearInput` | Ctrl+L | 입력과 대화를 유지하면서 전체 화면을 다시 그리기 강제합니다 |

118| `chat:clearScreen` | Cmd+K | `chat:clearInput`과 동일합니다. [대화 지우기](/docs/ko/fullscreen#clear-the-conversation)에서 Cmd+K가 iTerm2 및 Terminal.app에서 어떻게 작동하는지 확인하세요 |118| `chat:clearScreen` | Cmd+K | `chat:clearInput`과 동일합니다. [대화 지우기](/docs/ko/fullscreen#clear-the-conversation)에서 Cmd+K가 iTerm2 및 Terminal.app에서 어떻게 작동하는지 확인하세요 |


123| `chat:thinkingToggle` | Meta+T | 확장 사고 전환 |123| `chat:thinkingToggle` | Meta+T | 확장 사고 전환 |

124| `chat:submit` | Enter | 메시지 제출 |124| `chat:submit` | Enter | 메시지 제출 |

125| `chat:queueSubmit` | Ctrl+X Enter | 메시지를 제출하고 대기 표시: Claude가 작업 중일 때 Claude Code [이를 대기열에 넣고](/docs/ko/interactive-mode#queue-messages-while-claude-works) 턴을 중단하지 않습니다. `chat:submit`과 달리 자동 완성 제안이 열려 있어도 초안을 제출합니다. v2.1.247 이상 필요 |125| `chat:queueSubmit` | Ctrl+X Enter | 메시지를 제출하고 대기 표시: Claude가 작업 중일 때 Claude Code [이를 대기열에 넣고](/docs/ko/interactive-mode#queue-messages-while-claude-works) 턴을 중단하지 않습니다. `chat:submit`과 달리 자동 완성 제안이 열려 있어도 초안을 제출합니다. v2.1.247 이상 필요 |

126| `chat:sendNow` | Ctrl+Enter, Ctrl+X Ctrl+S | 실행 중인 턴을 중단하여 [대기 중인 메시지](/docs/ko/interactive-mode#queue-messages-while-claude-works)와 초안이 즉시 전송됩니다. 실행 중인 것이 없으면 초안을 제출하고 [셸 모드](/docs/ko/interactive-mode#shell-mode-with-prefix)에서는 중단하지 않고 명령을 대기열에 넣습니다. 확장 키를 보고하지 않는 터미널은 `Ctrl+Enter`를 일반 `Enter`로 전달하므로 `Ctrl+X Ctrl+S`는 모든 터미널에서 작동하는 바인딩입니다. v2.1.275 이상 필요 |126| `chat:sendNow` | Ctrl+Enter, Ctrl+X Ctrl+S | [대기 중인 메시지](/docs/ko/interactive-mode#queue-messages-while-claude-works)와 초안을 즉시 보냅니다. [Claude Code가 대기 중인 메시지를 보낼 때](/docs/ko/interactive-mode#when-claude-code-sends-what-you-queued)에서 Claude가 작업 중인 턴에 어떤 일이 발생하는지 설명합니다. 실행 중인 것이 없으면 초안을 제출하고 [셸 모드](/docs/ko/interactive-mode#shell-mode-with-prefix)에서는 명령을 대기열에만 넣습니다. 확장 키를 보고하지 않는 터미널은 `Ctrl+Enter`를 일반 `Enter`로 전달하므로 `Ctrl+X Ctrl+S`는 모든 터미널에서 작동하는 바인딩입니다. v2.1.275 이상 필요 |

127| `chat:newline` | Ctrl+J | 제출하지 않고 줄 바꿈 삽입 |127| `chat:newline` | Ctrl+J | 제출하지 않고 줄 바꿈 삽입 |

128| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | 마지막 작업 실행 취소 |128| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | 마지막 작업 실행 취소 |

129| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | 외부 편집기에서 열기. [에이전트 보기 디스패치 입력](/docs/ko/agent-view#keyboard-shortcuts)도 이 작업의 단일 키 바인딩을 따릅니다 |129| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | 외부 편집기에서 열기. [에이전트 보기 디스패치 입력](/docs/ko/agent-view#keyboard-shortcuts)도 이 작업의 단일 키 바인딩을 따릅니다 |


184}184}

185```185```

186 186 

187이러한 바인딩을 사용하면 [텍스트 필드](#text-fields)에 포커스가 있을 때 `y` 및 `n`은 여전히 문자로 입력됩니다.

188 

187v2.1.280 이전에는 `y`도 `confirm:yes`에, `n`도 `confirm:no`에 기본적으로 바인딩되었습니다. v2.1.280 이전에 `/keybindings`로 `keybindings.json`을 생성한 경우 파일에 두 바인딩이 모두 나열되며 해당 두 줄을 삭제할 때까지 유효합니다.189v2.1.280 이전에는 `y`도 `confirm:yes`에, `n`도 `confirm:no`에 기본적으로 바인딩되었습니다. v2.1.280 이전에 `/keybindings`로 `keybindings.json`을 생성한 경우 파일에 두 바인딩이 모두 나열되며 해당 두 줄을 삭제할 때까지 유효합니다.

188 190 

189<h3 id="permission-actions">191<h3 id="permission-actions">


634| Ctrl+A | GNU screen 접두사 |636| Ctrl+A | GNU screen 접두사 |

635| Ctrl+Z | Unix 프로세스 일시 중단(SIGTSTP) |637| Ctrl+Z | Unix 프로세스 일시 중단(SIGTSTP) |

636 638 

639<h2 id="text-fields">

640 텍스트 필드

641</h2>

642 

643맨 글자, 숫자 또는 스페이스를 바인딩하면, 대화 상자나 패널 내의 텍스트 필드에서 여전히 해당 문자를 입력할 수 있습니다. 이러한 필드 중 하나는 Claude가 질문하는 `Other` 답변입니다. 필드에 포커스가 있는 동안, Ctrl, Alt 또는 Cmd 없이 누르는 인쇄 가능한 키는 필드로 이동하며, Claude Code는 바인딩과 일치시키지 않습니다.

644 

645이러한 키는 필드에 포커스가 있는 동안에도 바인딩을 실행합니다:

646 

647* Enter, Escape, Tab 및 화살표 키와 같이 문자를 입력하지 않는 키

648* Ctrl, Alt 또는 Cmd와 함께 누르는 모든 키

649* 이미 진행 중인 [코드](#chords)의 두 번째 키 입력

650 

651주 프롬프트에서 Claude Code는 모든 키를 `Chat`과 같은 활성 컨텍스트와 비교하고, 바인딩이 키를 가져가지 않을 때만 키를 입력합니다.

652 

637<h2 id="vim-mode-interaction">653<h2 id="vim-mode-interaction">

638 Vim 모드 상호 작용654 Vim 모드 상호 작용

639</h2>655</h2>

Details

202 코드 인텔리전스로 파일 읽기 줄이기202 코드 인텔리전스로 파일 읽기 줄이기

203</h3>203</h3>

204 204 

205대규모 코드베이스에서 기호가 정의되거나 사용되는 위치를 찾는 것은 많은 파일 읽기와 grep 호출이 필요할 수 있습니다. [코드 인텔리전스 플러그인](/docs/ko/discover-plugins#code-intelligence)은 Claude를 언어 서버에 연결하여 트리를 스캔하는 대신 정의로 이동하고, 참조를 찾고, 타입 오류를 직접 표시할 수 있습니다.205대규모 코드베이스에서 기호가 정의되거나 사용되는 위치를 찾는 것은 많은 파일 읽기와 grep 호출이 필요할 수 있습니다. [코드 인텔리전스 플러그인](/docs/ko/plugins/code-intelligence)은 Claude를 언어 서버에 연결하여 트리를 스캔하는 대신 정의로 이동하고, 참조를 찾고, 타입 오류를 직접 표시할 수 있습니다.

206 206 

207공식 마켓플레이스에는 TypeScript, Python, Go, Rust 및 기타 일반적인 언어용 플러그인이 있습니다. Claude Code 세션 내에서 아래 명령을 실행하여 TypeScript 플러그인을 설치합니다:207공식 마켓플레이스에는 TypeScript, Python, Go, Rust 및 기타 일반적인 언어용 플러그인이 있습니다. Claude Code 세션 내에서 아래 명령을 실행하여 TypeScript 플러그인을 설치합니다:

208 208 


213설치가 실패하면 Claude Code가 보고하는 메시지와 일치하는지 확인합니다:213설치가 실패하면 Claude Code가 보고하는 메시지와 일치하는지 확인합니다:

214 214 

215* `Marketplace "claude-plugins-official" not found`: `/plugin marketplace add anthropics/claude-plugins-official`로 마켓플레이스를 추가한 후 설치를 다시 시도합니다.215* `Marketplace "claude-plugins-official" not found`: `/plugin marketplace add anthropics/claude-plugins-official`로 마켓플레이스를 추가한 후 설치를 다시 시도합니다.

216* 플러그인이 [마켓플레이스에서 찾을 수 없음](/docs/ko/discover-plugins#install-plugins): 플러그인 이름을 확인합니다.216* 플러그인이 [마켓플레이스에서 찾을 수 없음](/docs/ko/plugins/install#install-a-plugin): 플러그인 이름을 확인합니다.

217 217 

218본인만 설치하는 대신 저장소의 모든 사람을 위해 플러그인을 활성화하려면, [`enabledPlugins` 프로젝트 설정](/docs/ko/settings-reference#plugin-settings)에 추가합니다.218본인만 설치하는 대신 저장소의 모든 사람을 위해 플러그인을 활성화하려면, [`enabledPlugins` 프로젝트 설정](/docs/ko/settings-reference#plugin-settings)에 추가합니다.

219 219 

220코드 인텔리전스 플러그인은 각 개발자의 머신에 언어의 언어 서버 바이너리가 필요합니다. [각 언어가 필요로 하는 바이너리](/docs/ko/discover-plugins#code-intelligence)를 참조하세요. 공식 마켓플레이스에서 설치하려면 마켓플레이스가 호스팅되는 GitHub에 대한 네트워크 액세스가 필요합니다. 제한된 네트워크에서는 대신 [내부 Git 호스트 또는 로컬 경로에서 마켓플레이스를 추가](/docs/ko/discover-plugins#add-from-other-git-hosts)합니다.220코드 인텔리전스 플러그인은 각 개발자의 머신에 언어의 언어 서버 바이너리가 필요합니다. [각 언어가 필요로 하는 바이너리](/docs/ko/plugins/code-intelligence)를 참조하세요. 공식 마켓플레이스에서 설치하려면 마켓플레이스가 호스팅되는 GitHub에 대한 네트워크 액세스가 필요합니다. 제한된 네트워크에서는 대신 [내부 Git 호스트 또는 로컬 경로에서 마켓플레이스를 추가](/docs/ko/plugins/install#add-a-marketplace)합니다.

221 221 

222이는 `claudeMdExcludes`와 위의 `Read` 거부 규칙과 잘 어울립니다. 이들은 관련 없는 콘텐츠를 컨텍스트에서 제외하고, 코드 인텔리전스는 Claude가 정의를 찾기 위해 남은 내용을 읽어야 하는 것을 방지합니다.222이는 `claudeMdExcludes`와 위의 `Read` 거부 규칙과 잘 어울립니다. 이들은 관련 없는 콘텐츠를 컨텍스트에서 제외하고, 코드 인텔리전스는 Claude가 정의를 찾기 위해 남은 내용을 읽어야 하는 것을 방지합니다.

223 223 


395 395 

396이름은 항상 로드되지만 [많은 스킬이 있을 때 일부 스킬의 설명이 완전히 손실될 수 있으며](/docs/ko/skills#skill-descriptions-are-cut-short) Claude가 스킬 적용 여부를 결정하는 데 사용하는 키워드를 제거할 수 있습니다. 설명을 짧게 유지하고 요청에 포함될 단어로 시작하십시오. 예를 들어 "`packages/api/`에서 테스트 작성 또는 수정".396이름은 항상 로드되지만 [많은 스킬이 있을 때 일부 스킬의 설명이 완전히 손실될 수 있으며](/docs/ko/skills#skill-descriptions-are-cut-short) Claude가 스킬 적용 여부를 결정하는 데 사용하는 키워드를 제거할 수 있습니다. 설명을 짧게 유지하고 요청에 포함될 단어로 시작하십시오. 예를 들어 "`packages/api/`에서 테스트 작성 또는 수정".

397 397 

398많은 디렉토리가 공유하는 스킬(예: PR 규칙 또는 배포 체크리스트)의 경우 저장소 루트의 `.claude/skills/`에 배치하여 모든 시작 디렉토리에서 로드되도록 하십시오. 공유 스킬이 자신의 버전 기록이 필요하거나 저장소 전체에서 작동해야 하면 대신 [플러그인](/docs/ko/plugins)으로 패키징하십시오. 플러그인 스킬은 `plugin-name:skill-name` 네임스페이스를 사용하므로 디렉토리별 스킬과 충돌하지 않습니다. 플랫폼 팀은 한 곳에서 버전 관리하고 업데이트할 수 있습니다.398많은 디렉토리가 공유하는 스킬(예: PR 규칙 또는 배포 체크리스트)의 경우 저장소 루트의 `.claude/skills/`에 배치하여 모든 시작 디렉토리에서 로드되도록 하십시오. 공유 스킬이 자신의 버전 기록이 필요하거나 저장소 전체에서 작동해야 하면 대신 [플러그인](/docs/ko/plugins/overview)으로 패키징하십시오. 플러그인 스킬은 `plugin-name:skill-name` 네임스페이스를 사용하므로 디렉토리별 스킬과 충돌하지 않습니다. 플랫폼 팀은 한 곳에서 버전 관리하고 업데이트할 수 있습니다.

399 399 

400사용되지 않는 스킬을 찾으려면 OpenTelemetry [로그 내보내기](/docs/ko/monitoring-usage)를 활성화하고 `OTEL_LOG_TOOL_DETAILS=1`을 설정하여 스킬 이름이 수정되지 않고 그대로 기록되도록 하십시오. [`skill_activated` 이벤트](/docs/ko/monitoring-usage#skill-activated-event)는 `skill.name` 속성에 모든 호출을 기록하고, `invocation_trigger`는 명령, Claude, 또는 중첩된 스킬이 호출했는지 기록하여 통합하거나 폐기할 항목을 알려줍니다.400사용되지 않는 스킬을 찾으려면 OpenTelemetry [로그 내보내기](/docs/ko/monitoring-usage)를 활성화하고 `OTEL_LOG_TOOL_DETAILS=1`을 설정하여 스킬 이름이 수정되지 않고 그대로 기록되도록 하십시오. [`skill_activated` 이벤트](/docs/ko/monitoring-usage#skill-activated-event)는 `skill.name` 속성에 모든 호출을 기록하고, `invocation_trigger`는 명령, Claude, 또는 중첩된 스킬이 호출했는지 기록하여 통합하거나 폐기할 항목을 알려줍니다.

401 401 


408항상 로드되는 CLAUDE.md에서 규칙 및 참조 콘텐츠를 작업과 관련이 있을 때만 로드되는 메커니즘으로 이동하십시오:408항상 로드되는 CLAUDE.md에서 규칙 및 참조 콘텐츠를 작업과 관련이 있을 때만 로드되는 메커니즘으로 이동하십시오:

409 409 

410* [Skills](/docs/ko/skills): Claude가 작업과 관련이 있을 때만 로드하는 참조 자료410* [Skills](/docs/ko/skills): Claude가 작업과 관련이 있을 때만 로드하는 참조 자료

411* [Plugins](/docs/ko/plugins): 플랫폼 팀이 중앙에서 소유하는 스킬, 훅, 명령의 버전 관리 번들411* [Plugins](/docs/ko/plugins/overview): 플랫폼 팀이 중앙에서 소유하는 스킬, 훅, 명령의 버전 관리 번들

412* [MCP servers](/docs/ko/mcp): 조직이 이미 저장소에 대한 코드 검색 또는 RAG 인덱스를 실행하면 MCP 도구로 노출하여 Claude가 파일을 직접 읽는 대신 쿼리하도록 합니다.412* [MCP servers](/docs/ko/mcp): 조직이 이미 저장소에 대한 코드 검색 또는 RAG 인덱스를 실행하면 MCP 도구로 노출하여 Claude가 파일을 직접 읽는 대신 쿼리하도록 합니다.

413 413 

414플랫폼 팀이 이를 중앙에서 적용하는 방법은 [server-managed or endpoint-managed settings](/docs/ko/server-managed-settings#choose-between-server-managed-and-endpoint-managed-settings)을 참조하십시오.414플랫폼 팀이 이를 중앙에서 적용하는 방법은 [server-managed or endpoint-managed settings](/docs/ko/server-managed-settings#choose-between-server-managed-and-endpoint-managed-settings)을 참조하십시오.

managed-mcp.md +1 −1

Details

41| **제한 없음** | 사용자가 아무것이나 추가 | 관리 MCP 구성을 배포하지 않음 |41| **제한 없음** | 사용자가 아무것이나 추가 | 관리 MCP 구성을 배포하지 않음 |

42 42 

43<Note>43<Note>

44 Claude Code에는 사용자가 검색하고 설치할 수 있는 기본 제공 MCP 서버 레지스트리가 없습니다. 승인된 카탈로그 패턴의 경우, 승인된 목록과 해당 `claude mcp add` 명령을 사용자가 찾을 수 있는 위치(예: 내부 위키)에서 공유하거나, [관리 플러그인 마켓플레이스](/docs/ko/plugin-marketplaces#managed-marketplace-restrictions)를 통해 플러그인으로 서버를 배포하여 사용자가 `/plugin`에서 검색하고 설치할 수 있도록 합니다.44 Claude Code에는 사용자가 검색하고 설치할 수 있는 기본 제공 MCP 서버 레지스트리가 없습니다. 승인된 카탈로그 패턴의 경우, 승인된 목록과 해당 `claude mcp add` 명령을 사용자가 찾을 수 있는 위치(예: 내부 위키)에서 공유하거나, [관리 플러그인 마켓플레이스](/docs/ko/plugins/org#restrict-what-users-can-install)를 통해 플러그인으로 서버를 배포하여 사용자가 `/plugin`에서 검색하고 설치할 수 있도록 합니다.

45</Note>45</Note>

46 46 

47<h2 id="exclusive-control-with-managed-mcp-json">47<h2 id="exclusive-control-with-managed-mcp-json">

Details

95 * **전체 VM 샌드박스에서**: Claude Desktop 관리 구성이 [`requireCoworkFullVmSandbox`](https://claude.com/docs/third-party/claude-desktop/configuration#requirecoworkfullvmsandbox)를 설정할 때, Claude Code는 디바이스의 MDM 정책과 관리되는 설정 파일이 없는 가상 머신 내에서 실행됩니다.95 * **전체 VM 샌드박스에서**: Claude Desktop 관리 구성이 [`requireCoworkFullVmSandbox`](https://claude.com/docs/third-party/claude-desktop/configuration#requirecoworkfullvmsandbox)를 설정할 때, Claude Code는 디바이스의 MDM 정책과 관리되는 설정 파일이 없는 가상 머신 내에서 실행됩니다.

96 * **원격 Cowork 세션**: 이들은 Anthropic 관리 VM에서 실행되며, Claude Code는 읽을 디바이스 정책이 없습니다.96 * **원격 Cowork 세션**: 이들은 Anthropic 관리 VM에서 실행되며, Claude Code는 읽을 디바이스 정책이 없습니다.

97 97 

98 세션이 실행되는 위치와 관계없이, claude.ai는 누군가 claude.ai에서 git 저장소의 마켓플레이스를 추가하거나 Cowork 탭의 **사용자 정의**에서 추가할 때 관리 콘솔의 [`strictKnownMarketplaces`](/docs/ko/settings-reference#strictknownmarketplaces) 및 [`blockedMarketplaces`](/docs/ko/settings-reference#blockedmarketplaces) 목록을 자체적으로 적용합니다. [제한이 작동하는 방식](/docs/ko/plugin-marketplaces#how-restrictions-work)에서 해당 확인을 설명합니다. [표면 범위](/docs/ko/model-config#surface-coverage) 표는 Cowork를 다른 표면과 비교합니다.98 세션이 실행되는 위치와 관계없이, 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를 다른 표면과 비교합니다.

99* **실행 중인 세션**: 대부분의 변경 사항은 재시작 없이 [전달 메커니즘 표](#choose-a-delivery-mechanism)의 일정에 따라 실행 중인 세션에 도달합니다.99* **실행 중인 세션**: 대부분의 변경 사항은 재시작 없이 [전달 메커니즘 표](#choose-a-delivery-mechanism)의 일정에 따라 실행 중인 세션에 도달합니다.

100 * [`forceRemoteSettingsRefresh`](/docs/ko/settings-reference#forceremotesettingsrefresh), [`requiredMinimumVersion`](/docs/ko/settings-reference#requiredminimumversion) 및 [일부 사용자 편집 가능 키](/docs/ko/settings#when-edits-take-effect)에 대한 변경 사항은 다음 세션 시작 시 적용됩니다.100 * [`forceRemoteSettingsRefresh`](/docs/ko/settings-reference#forceremotesettingsrefresh), [`requiredMinimumVersion`](/docs/ko/settings-reference#requiredminimumversion) 및 [일부 사용자 편집 가능 키](/docs/ko/settings#when-edits-take-effect)에 대한 변경 사항은 다음 세션 시작 시 적용됩니다.

101 * 새로운 또는 변경된 [`policyHelper`](/docs/ko/settings-reference#policyhelper) 항목은 다음 시작 시 적용됩니다. 서버 관리 설정이 해당 시작 시 도우미를 숨기면, 도우미는 가져오기가 해당 설정이 제거되었음을 보고하는 즉시 실행됩니다.101 * 새로운 또는 변경된 [`policyHelper`](/docs/ko/settings-reference#policyhelper) 항목은 다음 시작 시 적용됩니다. 서버 관리 설정이 해당 시작 시 도우미를 숨기면, 도우미는 가져오기가 해당 설정이 제거되었음을 보고하는 즉시 실행됩니다.


256 256 

257 Claude Code v2.1.273 이상에서 `allowManagedMcpServersOnly`가 켜져 있는 동안, 하나를 설정하는 가장 높은 순위의 관리 소스의 `allowedMcpServers` 목록이 적용되고 부모의 값을 차단합니다([교차 소스 키](#keys-read-from-every-admin-source)로). 부모의 목록은 관리 소스가 하나를 설정하지 않을 때만 적용됩니다. [`managedSourcesBehavior`](/docs/ko/settings-reference#managedsourcesbehavior) 항목은 `"merge"` 아래에서 각 키를 제공하는 소스를 설명합니다. v2.1.223 이전에는 모든 관리 소스의 값이 부모의 값을 차단했습니다.257 Claude Code v2.1.273 이상에서 `allowManagedMcpServersOnly`가 켜져 있는 동안, 하나를 설정하는 가장 높은 순위의 관리 소스의 `allowedMcpServers` 목록이 적용되고 부모의 값을 차단합니다([교차 소스 키](#keys-read-from-every-admin-source)로). 부모의 목록은 관리 소스가 하나를 설정하지 않을 때만 적용됩니다. [`managedSourcesBehavior`](/docs/ko/settings-reference#managedsourcesbehavior) 항목은 `"merge"` 아래에서 각 키를 제공하는 소스를 설명합니다. v2.1.223 이전에는 모든 관리 소스의 값이 부모의 값을 차단했습니다.

258* `availableModels`의 경우 Claude Code는 적용하는 관리되는 설정의 값을 적용하고 부모 제공 목록을 차단합니다.258* `availableModels`의 경우 Claude Code는 적용하는 관리되는 설정의 값을 적용하고 부모 제공 목록을 차단합니다.

259* `strictKnownMarketplaces`의 경우 Claude Code는 마찬가지로 적용하는 관리되는 설정의 목록을 적용하고 부모 제공 목록을 차단합니다. 부모의 목록은 적용된 관리 소스가 하나를 설정하지 않을 때만 적용됩니다. Claude Code v2.1.282 이상이 필요합니다.

260* 부모 제공 `blockedMarketplaces`는 관리 소스가 설정하는 모든 거부 목록에 추가로 적용됩니다. Claude Code v2.1.282 이상이 필요합니다.

259 261 

260<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">262<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">

261 관리되는 규칙만 적용될 때 Cowork 폴더 액세스 유지263 관리되는 규칙만 적용될 때 Cowork 폴더 액세스 유지


361일부 적용 키는 유효하지 않을 때 삭제되지 않습니다. Claude Code는 값이 수정될 때까지 더 엄격한 폴백을 적용합니다. 표는 각 키에 대해 적용되는 내용을 보여줍니다:363일부 적용 키는 유효하지 않을 때 삭제되지 않습니다. Claude Code는 값이 수정될 때까지 더 엄격한 폴백을 적용합니다. 표는 각 키에 대해 적용되는 내용을 보여줍니다:

362 364 

363| 필드 | 존재하지만 유효하지 않을 때의 동작 |365| 필드 | 존재하지만 유효하지 않을 때의 동작 |

364| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |366| :---------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

365| `allowedMcpServers` | 값이 수정될 때까지 빈 허용 목록으로 적용되므로, 사용자가 추가하는 MCP 서버는 허용되지 않습니다. 조직이 [`managedMcpServers`](/docs/ko/settings-reference#managedmcpservers)를 통해 전달하는 서버는 여전히 로드되고, `managed-mcp.json` 서버는 [서버 평가 방법](/docs/ko/managed-mcp#how-a-server-is-evaluated)에 따라 로드됩니다. 개별 유효하지 않은 항목은 제거되고 유효한 부분 집합이 적용됩니다. |367| `allowedMcpServers` | 값이 수정될 때까지 빈 허용 목록으로 적용되므로, 사용자가 추가하는 MCP 서버는 허용되지 않습니다. 조직이 [`managedMcpServers`](/docs/ko/settings-reference#managedmcpservers)를 통해 전달하는 서버는 여전히 로드되고, `managed-mcp.json` 서버는 [서버 평가 방법](/docs/ko/managed-mcp#how-a-server-is-evaluated)에 따라 로드됩니다. 개별 유효하지 않은 항목은 제거되고 유효한 부분 집합이 적용됩니다. |

366| `allowedHttpHookUrls` | Claude Code는 값을 수정할 때까지 빈 관리형 [허용 목록](/docs/ko/settings-reference#allowedhttphookurls)을 적용하므로, HTTP 훅은 다른 설정 파일이 해당 URL을 나열하는 경우에만 실행됩니다. 개별 항목만 유효하지 않으면, Claude Code는 해당 항목을 제거하고 나머지를 적용합니다. |368| `allowedHttpHookUrls` | Claude Code는 값을 수정할 때까지 빈 관리형 [허용 목록](/docs/ko/settings-reference#allowedhttphookurls)을 적용하므로, HTTP 훅은 다른 설정 파일이 해당 URL을 나열하는 경우에만 실행됩니다. 개별 항목만 유효하지 않으면, Claude Code는 해당 항목을 제거하고 나머지를 적용합니다. |

367| `httpHookAllowedEnvVars` | Claude Code는 값을 수정할 때까지 빈 관리형 [허용 목록](/docs/ko/settings-reference#httphookallowedenvvars)을 적용하므로, 헤더 변수는 다른 설정 파일이 이름을 지정하는 경우에만 보간됩니다. 개별 항목만 유효하지 않으면, Claude Code는 해당 항목을 제거하고 나머지를 적용합니다. |369| `httpHookAllowedEnvVars` | Claude Code는 값을 수정할 때까지 빈 관리형 [허용 목록](/docs/ko/settings-reference#httphookallowedenvvars)을 적용하므로, 헤더 변수는 다른 설정 파일이 이름을 지정하는 경우에만 보간됩니다. 개별 항목만 유효하지 않으면, Claude Code는 해당 항목을 제거하고 나머지를 적용합니다. |

368| `allowedChannelPlugins` | 값을 수정할 때까지 빈 허용 목록을 적용하므로, `--channels`에 전달된 채널 플러그인은 허용되지 않습니다. 개별 항목만 유효하지 않으면, 해당 항목을 제거하고 나머지를 적용합니다. |370| `allowedChannelPlugins` | 값을 수정할 때까지 빈 허용 목록을 적용하므로, `--channels`에 전달된 채널 플러그인은 허용되지 않습니다. 개별 항목만 유효하지 않으면, 해당 항목을 제거하고 나머지를 적용합니다. |

369| `strictKnownMarketplaces` | 값이 수정될 때까지 빈 허용 목록으로 적용되므로, [마켓플레이스 소스](/docs/ko/plugin-marketplaces#managed-marketplace-restrictions)는 허용되지 않습니다. 유효하지 않거나 적용할 수 없는 개별 항목(예: 컴파일되지 않는 `hostPattern` 정규식)은 제거되고 유효한 부분 집합이 적용됩니다. |371| `strictKnownMarketplaces` | 값이 수정될 때까지 빈 허용 목록으로 적용되므로, [마켓플레이스 소스](/docs/ko/plugins/org#restrict-what-users-can-install)는 허용되지 않습니다. 유효하지 않거나 적용할 수 없는 개별 항목(예: 컴파일되지 않는 `hostPattern` 정규식)은 제거되고 유효한 부분 집합이 적용됩니다. |

370| `allowManagedHooksOnly` | 수정될 때까지 `true`로 처리됩니다: [훅 제한](/docs/ko/settings-reference#allowmanagedhooksonly)이 적용되고, `disableCommandPluginSources`가 명시적으로 `false`가 아닌 한, 명령 소스 플러그인은 비활성화됩니다. |372| `allowManagedHooksOnly` | 수정될 때까지 `true`로 처리됩니다: [훅 제한](/docs/ko/settings-reference#allowmanagedhooksonly)이 적용되고, `disableCommandPluginSources`가 명시적으로 `false`가 아닌 한, 명령 소스 플러그인은 비활성화됩니다. |

371| `allowManagedMcpServersOnly` | `true`로 처리됩니다. |373| `allowManagedMcpServersOnly` | `true`로 처리됩니다. |

372| `disableCommandPluginSources` | `true`로 처리되므로, 명령 소스 플러그인은 값이 수정될 때까지 비활성화된 상태로 유지됩니다. |374| `disableCommandPluginSources` | `true`로 처리되므로, 명령 소스 플러그인은 값이 수정될 때까지 비활성화된 상태로 유지됩니다. |


378| `gatewayInternalNetworks` | 유효하지 않은 값이 머신의 최상위 관리형 소스에서 오는 경우, `/login`은 값이 수정될 때까지 해당 머신의 모든 새로운 [클라우드 게이트웨이](/docs/ko/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) 로그인을 거부합니다. |380| `gatewayInternalNetworks` | 유효하지 않은 값이 머신의 최상위 관리형 소스에서 오는 경우, `/login`은 값이 수정될 때까지 해당 머신의 모든 새로운 [클라우드 게이트웨이](/docs/ko/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) 로그인을 거부합니다. |

379| `crossSessionInbound` | 가장 제한적인 값인 `refuse`로 처리되므로, 인바운드 [크로스 세션 메시지](/docs/ko/cross-session-messaging#control-inbound-messages)는 값이 수정될 때까지 거부됩니다. 개발자는 [경고](/docs/ko/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse)를 봅니다. |381| `crossSessionInbound` | 가장 제한적인 값인 `refuse`로 처리되므로, 인바운드 [크로스 세션 메시지](/docs/ko/cross-session-messaging#control-inbound-messages)는 값이 수정될 때까지 거부됩니다. 개발자는 [경고](/docs/ko/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse)를 봅니다. |

380| `deniedMcpServers` | 개별 유효하지 않은 항목은 제거되고 유효한 부분 집합이 적용됩니다. 완전히 유효하지 않은 값은 경고와 함께 삭제됩니다. 모든 서버를 거부하면 정책이 이름을 지정하지 않은 서버를 차단하기 때문입니다. |382| `deniedMcpServers` | 개별 유효하지 않은 항목은 제거되고 유효한 부분 집합이 적용됩니다. 완전히 유효하지 않은 값은 경고와 함께 삭제됩니다. 모든 서버를 거부하면 정책이 이름을 지정하지 않은 서버를 차단하기 때문입니다. |

381| `blockedMarketplaces` | 개별 유효하지 않은 항목은 제거되고 유효한 부분 집합이 적용됩니다. 구문 분석되지만 절대 일치할 수 없는 항목(예: 컴파일되지 않는 `hostPattern` 정규식)은 경고와 함께 유지됩니다. 값이 수정될 때까지 아무것도 차단하지 않지만, [마켓플레이스 제한](/docs/ko/plugin-marketplaces#managed-marketplace-restrictions)은 활성 상태로 유지됩니다. 완전히 유효하지 않은 값은 경고와 함께 삭제됩니다. 모든 마켓플레이스를 차단하면 정책이 이름을 지정하지 않은 소스를 차단하기 때문입니다. |383| `blockedMarketplaces` | 개별 유효하지 않은 항목은 제거되고 유효한 부분 집합이 적용됩니다. 구문 분석되지만 절대 일치할 수 없는 항목(예: 컴파일되지 않는 `hostPattern` 정규식)은 경고와 함께 유지됩니다. 값이 수정될 때까지 아무것도 차단하지 않지만, [마켓플레이스 제한](/docs/ko/plugins/org#restrict-what-users-can-install)은 활성 상태로 유지됩니다. 완전히 유효하지 않은 값은 경고와 함께 삭제됩니다. 모든 마켓플레이스를 차단하면 정책이 이름을 지정하지 않은 소스를 차단하기 때문입니다. |

382| `sandbox.credentials` | 복구 가능한 유효하지 않은 항목은 경고와 함께 `mode: "deny"`로 저하되고, 복구 불가능한 항목은 제거되며, 유효한 항목은 계속 적용됩니다. [관리형 설정의 유효하지 않은 자격 증명 항목](/docs/ko/settings-reference#invalid-credential-entries-in-managed-settings) 참조 |384| `sandbox.credentials` | 복구 가능한 유효하지 않은 항목은 경고와 함께 `mode: "deny"`로 저하되고, 복구 불가능한 항목은 제거되며, 유효한 항목은 계속 적용됩니다. [관리형 설정의 유효하지 않은 자격 증명 항목](/docs/ko/settings-reference#invalid-credential-entries-in-managed-settings) 참조 |

383 385 

384`allowedHttpHookUrls` 및 `httpHookAllowedEnvVars`는 설정 파일 전체에서 병합되므로, 사용자, 프로젝트 또는 로컬 설정의 항목은 관리형 목록이 비어 있는 동안에도 계속 적용됩니다.386`allowedHttpHookUrls` 및 `httpHookAllowedEnvVars`는 설정 파일 전체에서 병합되므로, 사용자, 프로젝트 또는 로컬 설정의 항목은 관리형 목록이 비어 있는 동안에도 계속 적용됩니다.


402이 표는 권한, 플러그인 및 전달 제어를 다룹니다. 여기에 나열되지 않은 키의 경우, [설정 참조](/docs/ko/settings-reference#all-settings) 인덱스의 범위 열에 관리형 전용 여부가 표시됩니다. 그곳의 나머지 관리형 전용 키에는 게이트웨이 로그인 URL, 버전, 브라우저, 모바일 시뮬레이터, SSH 호스트, Desktop 로컬 세션, 샌드박스 바이너리 경로, 모델 가격 책정 및 CLAUDE.md 제어가 포함됩니다.404이 표는 권한, 플러그인 및 전달 제어를 다룹니다. 여기에 나열되지 않은 키의 경우, [설정 참조](/docs/ko/settings-reference#all-settings) 인덱스의 범위 열에 관리형 전용 여부가 표시됩니다. 그곳의 나머지 관리형 전용 키에는 게이트웨이 로그인 URL, 버전, 브라우저, 모바일 시뮬레이터, SSH 호스트, Desktop 로컬 세션, 샌드박스 바이너리 경로, 모델 가격 책정 및 CLAUDE.md 제어가 포함됩니다.

403 405 

404| 설정 | 설명 |406| 설정 | 설명 |

405| :-------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |407| :-------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

406| [`allowAllClaudeAiMcps`](/docs/ko/settings-reference#allowallclaudeaimcps) | Claude Code가 자체적으로 가져오는 claude.ai 커넥터를 배포된 `managed-mcp.json`과 함께 로드합니다. 이는 커넥터를 억제하는 대신 추가로 로드합니다 |408| [`allowAllClaudeAiMcps`](/docs/ko/settings-reference#allowallclaudeaimcps) | Claude Code가 자체적으로 가져오는 claude.ai 커넥터를 배포된 `managed-mcp.json`과 함께 로드합니다. 이는 커넥터를 억제하는 대신 추가로 로드합니다 |

407| [`allowedChannelPlugins`](/docs/ko/settings-reference#allowedchannelplugins) | 메시지를 푸시할 수 있는 채널 플러그인의 허용 목록입니다. 설정되면 기본 Anthropic 허용 목록을 대체합니다. `channelsEnabled: true`가 필요합니다. [실행할 수 있는 채널 플러그인 제한](/docs/ko/channels#restrict-which-channel-plugins-can-run)을 참조하세요 |409| [`allowedChannelPlugins`](/docs/ko/settings-reference#allowedchannelplugins) | 메시지를 푸시할 수 있는 채널 플러그인의 허용 목록입니다. 설정되면 기본 Anthropic 허용 목록을 대체합니다. `channelsEnabled: true`가 필요합니다. [실행할 수 있는 채널 플러그인 제한](/docs/ko/channels#restrict-which-channel-plugins-can-run)을 참조하세요 |

408| [`allowManagedHooksOnly`](/docs/ko/settings-reference#allowmanagedhooksonly) | `true`일 때 실행되는 훅을 제한합니다. [allowManagedHooksOnly에서 실행되는 항목](/docs/ko/settings-reference#what-runs-under-allowmanagedhooksonly)에서 전체 효과 목록을 참조하세요 |410| [`allowManagedHooksOnly`](/docs/ko/settings-reference#allowmanagedhooksonly) | `true`일 때 실행되는 훅을 제한합니다. [allowManagedHooksOnly에서 실행되는 항목](/docs/ko/settings-reference#what-runs-under-allowmanagedhooksonly)에서 전체 효과 목록을 참조하세요 |

409| [`allowManagedMcpServersOnly`](/docs/ko/settings-reference#allowmanagedmcpserversonly) | `true`일 때 관리형 설정의 `allowedMcpServers`만 적용됩니다. `deniedMcpServers`는 여전히 모든 소스에서 병합됩니다. 이를 설정할 수 있는 관리형 소스는 [모든 관리자 소스에서 읽는 키](#keys-read-from-every-admin-source)를 참조하고, [관리형 MCP 구성](/docs/ko/managed-mcp)을 참조하세요 |411| [`allowManagedMcpServersOnly`](/docs/ko/settings-reference#allowmanagedmcpserversonly) | `true`일 때 관리형 설정의 `allowedMcpServers`만 적용됩니다. `deniedMcpServers`는 여전히 모든 소스에서 병합됩니다. 이를 설정할 수 있는 관리형 소스는 [모든 관리자 소스에서 읽는 키](#keys-read-from-every-admin-source)를 참조하고, [관리형 MCP 구성](/docs/ko/managed-mcp)을 참조하세요 |

410| [`allowManagedPermissionRulesOnly`](/docs/ko/settings-reference#allowmanagedpermissionrulesonly) | 관리형 설정을 권한 규칙의 유일한 설정 소스로 만듭니다. 항목은 무시하는 모든 소스를 나열합니다 |412| [`allowManagedPermissionRulesOnly`](/docs/ko/settings-reference#allowmanagedpermissionrulesonly) | 관리형 설정을 권한 규칙의 유일한 설정 소스로 만듭니다. 항목은 무시하는 모든 소스를 나열합니다 |

411| [`blockedMarketplaces`](/docs/ko/settings-reference#blockedmarketplaces) | 마켓플레이스 소스의 차단 목록입니다. 차단된 소스는 다운로드 전에 확인되므로 파일 시스템에 절대 닿지 않습니다. [관리형 마켓플레이스 제한](/docs/ko/plugin-marketplaces#managed-marketplace-restrictions)을 참조하세요 |413| [`blockedMarketplaces`](/docs/ko/settings-reference#blockedmarketplaces) | 마켓플레이스 소스의 차단 목록입니다. 차단된 소스는 다운로드 전에 확인되므로 파일 시스템에 절대 닿지 않습니다. [관리형 마켓플레이스 제한](/docs/ko/plugins/org#restrict-what-users-can-install)을 참조하세요 |

412| [`channelsEnabled`](/docs/ko/settings-reference#channelsenabled) | 조직에 대해 [채널](/docs/ko/channels)을 허용합니다. 각 플랜의 기본값은 [엔터프라이즈 제어](/docs/ko/channels#enterprise-controls)를 참조하세요 |414| [`channelsEnabled`](/docs/ko/settings-reference#channelsenabled) | 조직에 대해 [채널](/docs/ko/channels)을 허용합니다. 각 플랜의 기본값은 [엔터프라이즈 제어](/docs/ko/channels#enterprise-controls)를 참조하세요 |

413| [`disableCommandPluginSources`](/docs/ko/settings-reference#disablecommandpluginsources) | `true`일 때 [`command` 플러그인 소스](/docs/ko/plugin-marketplaces#command-sources)를 완전히 차단하므로 마켓플레이스에서 선언한 명령이 실행되지 않습니다. 또한 마켓플레이스 [`headersHelper` 명령](/docs/ko/plugin-marketplaces#authenticate-archive-downloads)을 차단합니다. 단, 관리형 설정 자체에서 선언한 마켓플레이스는 제외됩니다. 설정되지 않으면 `allowManagedHooksOnly`를 따릅니다. Claude Code v2.1.229 이상이 필요하며, `headersHelper` 차단은 v2.1.238 이상이 필요합니다 |415| [`disableCommandPluginSources`](/docs/ko/settings-reference#disablecommandpluginsources) | `true`일 때 [`command` 플러그인 소스](/docs/ko/plugins/marketplace-reference#command-plugin-source)를 완전히 차단하므로 마켓플레이스에서 선언한 명령이 실행되지 않습니다. 또한 마켓플레이스 [`headersHelper` 명령](/docs/ko/plugins/host-marketplace#authenticate-archive-downloads)을 차단합니다. 단, 관리형 설정 자체에서 선언한 마켓플레이스는 제외됩니다. 설정되지 않으면 `allowManagedHooksOnly`를 따릅니다. Claude Code v2.1.229 이상이 필요하며, `headersHelper` 차단은 v2.1.238 이상이 필요합니다 |

414| [`disableSideloadFlags`](/docs/ko/settings-reference#disablesideloadflags) | 시작 시 `--plugin-dir`, `--plugin-url`, `--agents` 및 `--mcp-config` 플래그를 거부합니다. 클라우드 세션에서 Claude Code는 `--mcp-config`를 통해 서버가 전달한 MCP 서버를 삭제합니다. 단, 인프로세스 `type: "sdk"` 항목은 제외하고 세션을 시작합니다. Claude Code v2.1.193 이상이 필요합니다 |416| [`disableSideloadFlags`](/docs/ko/settings-reference#disablesideloadflags) | 시작 시 `--plugin-dir`, `--plugin-url`, `--agents` 및 `--mcp-config` 플래그를 거부합니다. 클라우드 세션에서 Claude Code는 `--mcp-config`를 통해 서버가 전달한 MCP 서버를 삭제합니다. 단, 인프로세스 `type: "sdk"` 항목은 제외하고 세션을 시작합니다. Claude Code v2.1.193 이상이 필요합니다 |

415| [`forceRemoteSettingsRefresh`](/docs/ko/settings-reference#forceremotesettingsrefresh) | `true`일 때 원격 관리형 설정이 새로 가져올 때까지 CLI 시작을 차단하고 가져오기가 실패하면 종료합니다. [실패 폐쇄 적용](/docs/ko/server-managed-settings#enforce-fail-closed-startup)을 참조하세요 |417| [`forceRemoteSettingsRefresh`](/docs/ko/settings-reference#forceremotesettingsrefresh) | `true`일 때 원격 관리형 설정이 새로 가져올 때까지 CLI 시작을 차단하고 가져오기가 실패하면 종료합니다. [실패 폐쇄 적용](/docs/ko/server-managed-settings#enforce-fail-closed-startup)을 참조하세요 |

416| [`managedMcpServers`](/docs/ko/settings-reference#managedmcpservers) | 모든 사용자에게 자신의 서버와 함께 제공되는 원격 MCP 서버입니다. 이는 서버를 제공하며 아무것도 잠금하지 않습니다. [관리형 설정을 통해 서버 제공](/docs/ko/managed-mcp#provide-servers-through-managed-settings)을 참조하세요. Claude Code v2.1.259 이상이 필요합니다 |418| [`managedMcpServers`](/docs/ko/settings-reference#managedmcpservers) | 모든 사용자에게 자신의 서버와 함께 제공되는 원격 MCP 서버입니다. 이는 서버를 제공하며 아무것도 잠금하지 않습니다. [관리형 설정을 통해 서버 제공](/docs/ko/managed-mcp#provide-servers-through-managed-settings)을 참조하세요. Claude Code v2.1.259 이상이 필요합니다 |


421| [`policyHelper`](/docs/ko/settings-reference#policyhelper) | 시작 시 관리형 설정을 계산하는 실행 파일입니다. [정책 도우미로 관리형 설정 계산](/docs/ko/settings-reference#policyhelper)을 참조하세요 |423| [`policyHelper`](/docs/ko/settings-reference#policyhelper) | 시작 시 관리형 설정을 계산하는 실행 파일입니다. [정책 도우미로 관리형 설정 계산](/docs/ko/settings-reference#policyhelper)을 참조하세요 |

422| [`sandbox.filesystem.allowManagedReadPathsOnly`](/docs/ko/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | `true`일 때 관리형 설정의 `filesystem.allowRead` 경로만 적용됩니다. `denyRead`는 여전히 모든 소스에서 병합됩니다 |424| [`sandbox.filesystem.allowManagedReadPathsOnly`](/docs/ko/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | `true`일 때 관리형 설정의 `filesystem.allowRead` 경로만 적용됩니다. `denyRead`는 여전히 모든 소스에서 병합됩니다 |

423| [`sandbox.network.allowManagedDomainsOnly`](/docs/ko/settings-reference#sandbox-network-allowmanageddomainsonly) | 관리형 `allowedDomains` 및 `WebFetch(domain:...)` 허용 규칙만 준수합니다. 다른 도메인을 프롬프트 없이 차단합니다 |425| [`sandbox.network.allowManagedDomainsOnly`](/docs/ko/settings-reference#sandbox-network-allowmanageddomainsonly) | 관리형 `allowedDomains` 및 `WebFetch(domain:...)` 허용 규칙만 준수합니다. 다른 도메인을 프롬프트 없이 차단합니다 |

424| [`strictKnownMarketplaces`](/docs/ko/settings-reference#strictknownmarketplaces) | 사용자가 추가하고 플러그인을 설치할 수 있는 플러그인 마켓플레이스 소스를 제어합니다. [관리형 마켓플레이스 제한](/docs/ko/plugin-marketplaces#managed-marketplace-restrictions)을 참조하세요 |426| [`strictKnownMarketplaces`](/docs/ko/settings-reference#strictknownmarketplaces) | 사용자가 추가하고 플러그인을 설치할 수 있는 플러그인 마켓플레이스 소스를 제어합니다. [관리형 마켓플레이스 제한](/docs/ko/plugins/org#restrict-what-users-can-install)을 참조하세요 |

425| [`strictPluginOnlyCustomization`](/docs/ko/settings-reference#strictpluginonlycustomization) | 사용자 및 프로젝트 소스의 스킬, 에이전트, 훅 및 MCP 서버를 차단합니다. `true`는 네 가지 모두를 잠금하고, 배열은 어느 것을 잠금할지 지정합니다 |427| [`strictPluginOnlyCustomization`](/docs/ko/settings-reference#strictpluginonlycustomization) | 사용자 및 프로젝트 소스의 스킬, 에이전트, 훅 및 MCP 서버를 차단합니다. `true`는 네 가지 모두를 잠금하고, 배열은 어느 것을 잠금할지 지정합니다 |

426| [`wslInheritsWindowsSettings`](/docs/ko/settings-reference#wslinheritswindowssettings) | HKLM 레지스트리 또는 `C:\Program Files\ClaudeCode` 아래의 파일에 설정되면 WSL이 Windows 정책 체인을 읽고, 해당 디렉터리 아래의 관리형 설정 파일 또는 드롭인이 [정책 키](#how-claude-code-combines-managed-sources)를 전달하지 않을 때만 `/etc/claude-code`를 읽습니다. 항목은 순서를 제공합니다 |428| [`wslInheritsWindowsSettings`](/docs/ko/settings-reference#wslinheritswindowssettings) | HKLM 레지스트리 또는 `C:\Program Files\ClaudeCode` 아래의 파일에 설정되면 WSL이 Windows 정책 체인을 읽고, 해당 디렉터리 아래의 관리형 설정 파일 또는 드롭인이 [정책 키](#how-claude-code-combines-managed-sources)를 전달하지 않을 때만 `/etc/claude-code`를 읽습니다. 항목은 순서를 제공합니다 |

427 429 

mcp.md +16 −16

Details

50 설치가 실패하면 Claude Code가 보고하는 메시지와 일치하는지 확인하세요:50 설치가 실패하면 Claude Code가 보고하는 메시지와 일치하는지 확인하세요:

51 51 

52 * `Marketplace "claude-plugins-official" not found`: `/plugin marketplace add anthropics/claude-plugins-official`로 마켓플레이스를 추가한 다음 설치를 다시 시도하세요.52 * `Marketplace "claude-plugins-official" not found`: `/plugin marketplace add anthropics/claude-plugins-official`로 마켓플레이스를 추가한 다음 설치를 다시 시도하세요.

53 * 플러그인이 [마켓플레이스에서 찾을 수 없음](/docs/ko/discover-plugins#install-plugins): 플러그인 이름을 확인하세요.53 * 플러그인이 [마켓플레이스에서 찾을 수 없음](/docs/ko/plugins/install#install-a-plugin): 플러그인 이름을 확인하세요.

54 54 

55 설치 요약에서 `Run /reload-plugins to activate.`를 보고하면 Claude Code가 해당 리로드를 실행합니다. 리로드에서 다음 메시지가 대화를 다시 읽을 것이라고 경고하면 `/reload-plugins --force`를 실행하세요.55 설치 요약에서 `Run /reload-plugins to activate.`를 보고하면 Claude Code가 해당 리로드를 실행합니다. 리로드에서 다음 메시지가 대화를 다시 읽을 것이라고 경고하면 `/reload-plugins --force`를 실행하세요.

56 </Step>56 </Step>


293 서버 상태 세부 정보293 서버 상태 세부 정보

294</h4>294</h4>

295 295 

296`/mcp`에서 (서버의 메뉴 포함) 및 [`/plugin`](/docs/ko/plugins) 관리자에서, 이전에 사용한 원격 HTTP 또는 SSE 서버는 `cached 2h ago · connects on first use · 5 tools`와 같은 `cached` 상태를 표시할 수 있습니다. Claude Code는 이전 세션에서 저장된 검색 캐시에서 서버의 도구 목록을 로드했으며, Claude Code는 Claude가 서버의 도구 중 하나를 처음 호출할 때 서버에 연결합니다. 도구는 첫 번째 메시지부터 사용 가능하므로 아무것도 할 필요가 없습니다. 검색 캐시 및 `cached` 상태에는 Claude Code v2.1.221 이상이 필요합니다.296`/mcp`에서 (서버의 메뉴 포함) 및 [`/plugin`](/docs/ko/plugins/install) 관리자에서, 이전에 사용한 원격 HTTP 또는 SSE 서버는 `cached 2h ago · connects on first use · 5 tools`와 같은 `cached` 상태를 표시할 수 있습니다. Claude Code는 이전 세션에서 저장된 검색 캐시에서 서버의 도구 목록을 로드했으며, Claude Code는 Claude가 서버의 도구 중 하나를 처음 호출할 때 서버에 연결합니다. 도구는 첫 번째 메시지부터 사용 가능하므로 아무것도 할 필요가 없습니다. 검색 캐시 및 `cached` 상태에는 Claude Code v2.1.221 이상이 필요합니다.

297 297 

298검색 캐시는 기본적으로 꺼져 있으며, 점진적 롤아웃이 계정에 대해 활성화하지 않는 한 꺼져 있습니다. [`MCP_DISCOVERY_CACHE=1`](/docs/ko/env-vars)을 설정하여 켜거나, 롤아웃이 활성화했을 때도 꺼진 상태로 유지하려면 `0`으로 설정하세요. v2.1.238 이전에는 캐시가 기본적으로 켜져 있었습니다.298검색 캐시는 기본적으로 꺼져 있으며, 점진적 롤아웃이 계정에 대해 활성화하지 않는 한 꺼져 있습니다. [`MCP_DISCOVERY_CACHE=1`](/docs/ko/env-vars)을 설정하여 켜거나, 롤아웃이 활성화했을 때도 꺼진 상태로 유지하려면 `0`으로 설정하세요. v2.1.238 이전에는 캐시가 기본적으로 켜져 있었습니다.

299 299 


312* 로컬, 프로젝트, 사용자 [범위](#mcp-installation-scopes) 또는 관리되는 MCP 구성의 서버의 경우, 원점은 해당 구성에 작성된 호스트를 표시하므로 호스트의 `${VAR}` 참조는 메시지에서 확장되지 않습니다.312* 로컬, 프로젝트, 사용자 [범위](#mcp-installation-scopes) 또는 관리되는 MCP 구성의 서버의 경우, 원점은 해당 구성에 작성된 호스트를 표시하므로 호스트의 `${VAR}` 참조는 메시지에서 확장되지 않습니다.

313* 상태 또는 오류 코드가 없는 실패의 경우 Claude Code는 원점 없이 오류 텍스트를 표시합니다.313* 상태 또는 오류 코드가 없는 실패의 경우 Claude Code는 원점 없이 오류 텍스트를 표시합니다.

314 314 

315URL이 비어 있는 원격 서버의 구성은 `/mcp`, `claude mcp list` 및 [`/plugin`](/docs/ko/plugins) 관리자에서 `not configured`로 표시되며, Claude Code는 연결을 시도하지 않습니다. 플러그인은 나중에 구성할 커넥터에 대한 자리 표시자 항목을 포함할 수 있으므로 Claude Code가 오류 또는 설정 문제로 보고하지 않습니다. `/mcp`의 서버 세부 정보 보기에는 `No URL configured for this server`가 표시됩니다. 연결하려면 항목의 `url`을 설정하세요. v2.1.208 이전에는 Claude Code가 빈 `url`을 재연결 프롬프트와 함께 구성 문제로 보고했습니다.315URL이 비어 있는 원격 서버의 구성은 `/mcp`, `claude mcp list` 및 [`/plugin`](/docs/ko/plugins/install) 관리자에서 `not configured`로 표시되며, Claude Code는 연결을 시도하지 않습니다. 플러그인은 나중에 구성할 커넥터에 대한 자리 표시자 항목을 포함할 수 있으므로 Claude Code가 오류 또는 설정 문제로 보고하지 않습니다. `/mcp`의 서버 세부 정보 보기에는 `No URL configured for this server`가 표시됩니다. 연결하려면 항목의 `url`을 설정하세요. v2.1.208 이전에는 Claude Code가 빈 `url`을 재연결 프롬프트와 함께 구성 문제로 보고했습니다.

316 316 

317<h4 id="configuration-warnings">317<h4 id="configuration-warnings">

318 구성 경고318 구성 경고


466 466 

467서버당 최소 1000의 `timeout`은 또한 아래에 설명된 유휴 시간 초과의 하한으로 작동합니다: Claude Code는 서버당 `timeout`보다 더 빨리 유휴 상태로 인해 해당 서버의 도구 호출을 중단하지 않습니다. Claude Code v2.1.203 이상이 필요합니다.467서버당 최소 1000의 `timeout`은 또한 아래에 설명된 유휴 시간 초과의 하한으로 작동합니다: Claude Code는 서버당 `timeout`보다 더 빨리 유휴 상태로 인해 해당 서버의 도구 호출을 중단하지 않습니다. Claude Code v2.1.203 이상이 필요합니다.

468 468 

469MCP 서버에 대한 도구 호출이 유휴 윈도우 동안 응답 및 진행 알림을 보내지 않으면 월클록 제한을 기다리는 대신 오류로 중단됩니다. 유휴 시간 초과에는 Claude Code v2.1.187 이상이 필요합니다. IDE 서버 및 SDK 인프로세스 서버를 제외한 모든 서버 유형에 적용됩니다. 유휴 윈도우는 HTTP, SSE, WebSocket 및 [claude.ai 커넥터](#use-mcp-servers-from-claude-ai) 서버의 경우 기본값 5분, stdio 서버의 경우 30분입니다. v2.1.203 이전에는 stdio 서버가 유휴 시간 초과에서 제외되었습니다.469MCP 서버에 대한 도구 호출이 유휴 윈도우 동안 응답 및 진행 알림을 보내지 않으면 월클록 제한을 기다리는 대신 오류로 중단됩니다. IDE 서버 및 SDK 인프로세스 서버를 제외한 모든 서버 유형에 적용됩니다. 유휴 윈도우는 HTTP, SSE, WebSocket 및 [claude.ai 커넥터](#use-mcp-servers-from-claude-ai) 서버의 경우 기본값 5분, stdio 서버의 경우 30분입니다. v2.1.203 이전에는 stdio 서버가 유휴 시간 초과에서 제외되었습니다.

470 470 

471[`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/ko/env-vars) 환경 변수를 밀리초 단위로 설정하여 유휴 윈도우를 변경하거나, `0`으로 설정하여 확인을 비활성화하세요.471[`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/ko/env-vars) 환경 변수를 밀리초 단위로 설정하여 유휴 윈도우를 변경하거나, `0`으로 설정하여 확인을 비활성화하세요.

472 472 


494 플러그인 제공 MCP 서버494 플러그인 제공 MCP 서버

495</h3>495</h3>

496 496 

497[플러그인](/docs/ko/plugins)은 MCP 서버를 번들로 제공할 수 있으며, 플러그인을 활성화하면 도구 및 통합을 제공합니다. 플러그인 MCP 서버는 사용자 구성 서버와 동일하게 작동합니다.497[플러그인](/docs/ko/plugins/overview)은 MCP 서버를 번들로 제공할 수 있으며, 플러그인을 활성화하면 도구 및 통합을 제공합니다. 플러그인 MCP 서버는 사용자 구성 서버와 동일하게 작동합니다.

498 498 

499**플러그인 MCP 서버의 작동 방식**:499**플러그인 MCP 서버의 작동 방식**:

500 500 


539 539 

540* **자동 라이프사이클**: 서버는 다음 지점에서 연결 및 연결 해제됩니다:540* **자동 라이프사이클**: 서버는 다음 지점에서 연결 및 연결 해제됩니다:

541 * 세션 시작 시 Claude Code는 활성화된 플러그인의 서버를 자동으로 연결합니다. `/mcp`에서 이전에 사용한 원격 (HTTP 또는 SSE) 플러그인 서버는 [`cached` 상태](#server-status-detail)를 대신 표시할 수 있습니다. Claude Code는 Claude가 도구 중 하나를 처음 호출할 때 연결합니다.541 * 세션 시작 시 Claude Code는 활성화된 플러그인의 서버를 자동으로 연결합니다. `/mcp`에서 이전에 사용한 원격 (HTTP 또는 SSE) 플러그인 서버는 [`cached` 상태](#server-status-detail)를 대신 표시할 수 있습니다. Claude Code는 Claude가 도구 중 하나를 처음 호출할 때 연결합니다.

542 * 세션 중에 플러그인을 활성화하거나 비활성화하면 Claude Code는 변경이 적용될 때 MCP 서버를 연결하거나 연결 해제합니다. [플러그인 변경 사항을 다시 시작하지 않고 적용](/docs/ko/discover-plugins#apply-plugin-changes-without-restarting)은 그 시기를 설명합니다. 대화형 터미널이 없는 세션에서 `/reload-plugins`는 플러그인 MCP 서버를 연결하거나 연결 해제하지 않습니다. 이 변경 사항은 다음 세션에서 적용됩니다.542 * 세션 중에 플러그인을 활성화하거나 비활성화하면 Claude Code는 변경이 적용될 때 MCP 서버를 연결하거나 연결 해제합니다. [플러그인 변경 사항을 다시 시작하지 않고 적용](/docs/ko/plugins/cli-reference#reload-plugins)은 그 시기를 설명합니다. 대화형 터미널이 없는 세션에서 `/reload-plugins`는 플러그인 MCP 서버를 연결하거나 연결 해제하지 않습니다. 이 변경 사항은 다음 세션에서 적용됩니다.

543 * 다시 로드할 때 Claude Code는 구성이 변경되지 않은 플러그인 서버의 라이브 연결을 유지하고, 이름을 지정하지 않고 [Agent SDK에서 세션의 MCP 서버 목록을 바꿀 때](/docs/ko/agent-sdk/typescript#mcpsetserversresult) 동일하게 수행합니다.543 * 다시 로드할 때 Claude Code는 구성이 변경되지 않은 플러그인 서버의 라이브 연결을 유지하고, 이름을 지정하지 않고 [Agent SDK에서 세션의 MCP 서버 목록을 바꿀 때](/docs/ko/agent-sdk/typescript#mcpsetserversresult) 동일하게 수행합니다.

544 * v2.1.246 이상에서 [`/cd`로 세션을 이동](/docs/ko/permissions#move-the-session-to-another-directory)할 때 Claude Code는 새 디렉터리의 설정이 활성화하는 플러그인의 서버를 연결하고 더 이상 활성화되지 않는 플러그인의 서버를 연결 해제합니다. 이동 후 `/reload-plugins`를 실행할 필요가 없습니다.544 * v2.1.246 이상에서 [`/cd`로 세션을 이동](/docs/ko/permissions#move-the-session-to-another-directory)할 때 Claude Code는 새 디렉터리의 설정이 활성화하는 플러그인의 서버를 연결하고 더 이상 활성화되지 않는 플러그인의 서버를 연결 해제합니다. 이동 후 `/reload-plugins`를 실행할 필요가 없습니다.

545 * [웹 세션](/docs/ko/claude-code-on-the-web)에서 아직 연결되지 않은 플러그인 서버에 대한 MCP 호출 (예: 유휴 세션이 깨어난 직후)은 서버를 요청 시 시작하고 연결을 기다립니다.545 * [웹 세션](/docs/ko/claude-code-on-the-web)에서 아직 연결되지 않은 플러그인 서버에 대한 MCP 호출 (예: 유휴 세션이 깨어난 직후)은 서버를 요청 시 시작하고 연결을 기다립니다.

546* **경로 자리 표시자**: `${CLAUDE_PLUGIN_ROOT}`는 플러그인의 설치 디렉터리로 확인되고, `${CLAUDE_PLUGIN_DATA}`는 [지속적인 상태](/docs/ko/plugins-reference#persistent-data-directory) 디렉터리로 확인되며, `${CLAUDE_PROJECT_DIR}`은 안정적인 프로젝트 루트로 확인됩니다. 대체는 다음에 적용됩니다:546* **경로 자리 표시자**: `${CLAUDE_PLUGIN_ROOT}`는 플러그인의 설치 디렉터리로 확인되고, `${CLAUDE_PLUGIN_DATA}`는 [지속적인 상태](/docs/ko/plugins/components#path-variables-and-persistent-data) 디렉터리로 확인되며, `${CLAUDE_PROJECT_DIR}`은 안정적인 프로젝트 루트로 확인됩니다. 대체는 다음에 적용됩니다:

547 * `stdio` 서버: `command`, `args`, `env`547 * `stdio` 서버: `command`, `args`, `env`

548 * `http`, `sse` 및 `ws` 서버: `url`, `headers` 및 `headersHelper`. v2.1.195 이전에는 `headersHelper`가 자리 표시자를 리터럴 문자열로 전달했습니다.548 * `http`, `sse` 및 `ws` 서버: `url`, `headers` 및 `headersHelper`. v2.1.195 이전에는 `headersHelper`가 자리 표시자를 리터럴 문자열로 전달했습니다.

549* **사용자 환경 액세스**: 수동으로 구성된 서버와 동일한 환경 변수에 액세스549* **사용자 환경 액세스**: 수동으로 구성된 서버와 동일한 환경 변수에 액세스


563 563 

564서버 자체는 `plugin:<plugin-name>:<server-name>` (예: `plugin:my-plugin:database-tools`)과 같은 범위 지정 이름으로 등록됩니다. 구성된 서버 이름이 예상되는 위치 (예: [`mcp_tool` hook의 `server` 필드](/docs/ko/hooks#mcp-tool-hook-fields))에서 해당 이름을 사용하세요.564서버 자체는 `plugin:<plugin-name>:<server-name>` (예: `plugin:my-plugin:database-tools`)과 같은 범위 지정 이름으로 등록됩니다. 구성된 서버 이름이 예상되는 위치 (예: [`mcp_tool` hook의 `server` 필드](/docs/ko/hooks#mcp-tool-hook-fields))에서 해당 이름을 사용하세요.

565 565 

566플러그인과 함께 MCP 서버를 번들로 제공하는 방법에 대한 자세한 내용은 [플러그인 구성 요소 참조](/docs/ko/plugins-reference#mcp-servers)를 참조하세요.566플러그인과 함께 MCP 서버를 번들로 제공하는 방법에 대한 자세한 내용은 [플러그인 구성 요소 참조](/docs/ko/plugins/components#mcp-servers)를 참조하세요.

567 567 

568<h2 id="mcp-installation-scopes">568<h2 id="mcp-installation-scopes">

569 MCP 설치 범위569 MCP 설치 범위


6661. 로컬 범위6661. 로컬 범위

6672. 프로젝트 범위6672. 프로젝트 범위

6683. 사용자 범위6683. 사용자 범위

6694. [플러그인 제공 서버](/docs/ko/plugins)6694. [플러그인 제공 서버](/docs/ko/plugins/components#mcp-servers)

6705. [claude.ai 커넥터](#use-mcp-servers-from-claude-ai)6705. [claude.ai 커넥터](#use-mcp-servers-from-claude-ai)

671 671 

672세 범위는 이름으로 중복을 일치시킵니다. 플러그인과 커넥터는 엔드포인트로 일치하므로 위의 서버와 동일한 URL 또는 명령을 가리키는 것은 중복으로 처리됩니다.672세 범위는 이름으로 중복을 일치시킵니다. 플러그인과 커넥터는 엔드포인트로 일치하므로 위의 서버와 동일한 URL 또는 명령을 가리키는 것은 중복으로 처리됩니다.


876 명령줄에서 인증876 명령줄에서 인증

877</h3>877</h3>

878 878 

879v2.1.186부터 `claude mcp login <name>`은 구성된 서버의 OAuth 흐름을 셸에서 직접 실행하므로 세션 내에서 `/mcp` 패널을 열 필요가 없습니다.879`claude mcp login <name>` 명령은 구성된 서버의 OAuth 흐름을 셸에서 직접 실행하므로 세션 내에서 `/mcp` 패널을 열 필요가 없습니다.

880 880 

881```bash theme={null}881```bash theme={null}

882claude mcp login sentry882claude mcp login sentry


884 884 

885나중에 저장된 자격 증명을 지우려면 `claude mcp logout <name>`을 실행합니다.885나중에 저장된 자격 증명을 지우려면 `claude mcp logout <name>`을 실행합니다.

886 886 

887v2.1.191부터 명령은 SSH 세션 중이거나 디스플레이 서버가 없는 Linux와 같이 로컬 브라우저를 사용할 수 없는 경우를 감지하고 브라우저를 열려고 시도하는 대신 인증 URL을 출력합니다. 로컬 머신에서 URL을 열고 브라우저의 주소 표시줄에서 전체 리디렉션 URL을 프롬프트에 다시 붙여넣습니다. 명령은 붙여넣기 단계를 위해 대화형 터미널이 필요하므로 `ssh -t`로 연결합니다. 로컬 브라우저가 감지되었을 때도 URL 프롬프트를 강제하려면 `--no-browser`를 전달합니다.887`claude mcp login`은 SSH 세션 중이거나 디스플레이 서버가 없는 Linux와 같이 로컬 브라우저를 사용할 수 없는 경우를 감지하고 브라우저를 열려고 시도하는 대신 인증 URL을 출력합니다. 로컬 머신에서 URL을 열고 브라우저의 주소 표시줄에서 전체 리디렉션 URL을 프롬프트에 다시 붙여넣습니다. 명령은 붙여넣기 단계를 위해 대화형 터미널이 필요하므로 `ssh -t`로 연결합니다. 로컬 브라우저가 감지되었을 때도 URL 프롬프트를 강제하려면 `--no-browser`를 전달합니다.

888 888 

889```bash theme={null}889```bash theme={null}

890claude mcp login sentry --no-browser890claude mcp login sentry --no-browser


1085Claude Code는 헬퍼를 실행할 때 다음 환경 변수를 설정합니다:1085Claude Code는 헬퍼를 실행할 때 다음 환경 변수를 설정합니다:

1086 1086 

1087| 변수 | 값 |1087| 변수 | 값 |

1088| :---------------------------- | :------------------------------------------------------------------------- |1088| :---------------------------- | :-------------------------------------------------------------------------- |

1089| `CLAUDE_CODE_MCP_SERVER_NAME` | MCP 서버의 이름 |1089| `CLAUDE_CODE_MCP_SERVER_NAME` | MCP 서버의 이름 |

1090| `CLAUDE_CODE_MCP_SERVER_URL` | MCP 서버의 URL |1090| `CLAUDE_CODE_MCP_SERVER_URL` | MCP 서버의 URL |

1091| `CLAUDE_PLUGIN_ROOT` | 플러그인의 루트 디렉토리. [플러그인](/docs/ko/plugins-reference#mcp-servers)이 서버를 제공할 때만 설정됩니다 |1091| `CLAUDE_PLUGIN_ROOT` | 플러그인의 루트 디렉토리. [플러그인](/docs/ko/plugins/components#mcp-servers)이 서버를 제공할 때만 설정됩니다 |

1092 1092 

1093이를 사용하여 여러 MCP 서버를 제공하는 단일 헬퍼 스크립트를 작성합니다.1093이를 사용하여 여러 MCP 서버를 제공하는 단일 헬퍼 스크립트를 작성합니다.

1094 1094 

1095플러그인 제공 `headersHelper`는 명령이 셸을 통해 실행되기 때문에 플러그인의 [`${user_config.*}`](/docs/ko/plugins-reference#user-configuration) 값을 참조할 수 없습니다. Claude Code는 서버를 [오류](/docs/ko/errors#plugin-command-references-user-config)와 함께 잘못 구성된 것으로 보고하고 값을 대체하지 않습니다. `${user_config.KEY}`를 셸 구문 분석되지 않는 서버의 `headers` 필드에 넣거나 헬퍼 스크립트가 구성 파일에서 값을 읽도록 합니다. v2.1.207 이전에는 `headersHelper`가 `${user_config.*}` 값을 대체했습니다.1095플러그인 제공 `headersHelper`는 명령이 셸을 통해 실행되기 때문에 플러그인의 [`${user_config.*}`](/docs/ko/plugins/manifest-reference#user-configuration) 값을 참조할 수 없습니다. Claude Code는 서버를 [오류](/docs/ko/errors#plugin-command-references-user-config)와 함께 잘못 구성된 것으로 보고하고 값을 대체하지 않습니다. `${user_config.KEY}`를 셸 구문 분석되지 않는 서버의 `headers` 필드에 넣거나 헬퍼 스크립트가 구성 파일에서 값을 읽도록 합니다. v2.1.207 이전에는 `headersHelper`가 `${user_config.*}` 값을 대체했습니다.

1096 1096 

1097<h4 id="where-the-helper-runs">1097<h4 id="where-the-helper-runs">

1098 헬퍼가 실행되는 위치1098 헬퍼가 실행되는 위치


1102 1102 

1103| 서버를 구성한 위치 | 작업 디렉토리 |1103| 서버를 구성한 위치 | 작업 디렉토리 |

1104| :--------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------- |1104| :--------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------- |

1105| [플러그인](/docs/ko/plugins-reference#mcp-servers) | 플러그인의 루트 디렉토리. Claude Code v2.1.195 이상이 필요합니다 |1105| [플러그인](/docs/ko/plugins/components#mcp-servers) | 플러그인의 루트 디렉토리. Claude Code v2.1.195 이상이 필요합니다 |

1106| 프로젝트 `.mcp.json` 또는 [로컬 범위](#local-scope) 서버 | 서버가 선언된 프로젝트 디렉토리 |1106| 프로젝트 `.mcp.json` 또는 [로컬 범위](#local-scope) 서버 | 서버가 선언된 프로젝트 디렉토리 |

1107| 프로젝트의 에이전트 파일, SDK의 `mcpServers` 옵션 또는 `setMcpServers()` 메서드의 서버, 또는 [`--mcp-config`](/docs/ko/cli-reference) | 세션의 [기본 작업 디렉토리](/docs/ko/permissions#working-directories) |1107| 프로젝트의 에이전트 파일, SDK의 `mcpServers` 옵션 또는 `setMcpServers()` 메서드의 서버, 또는 [`--mcp-config`](/docs/ko/cli-reference) | 세션의 [기본 작업 디렉토리](/docs/ko/permissions#working-directories) |

1108| [사용자 범위](#user-scope), [관리형 MCP](/docs/ko/managed-mcp), [claude.ai 커넥터](#use-mcp-servers-from-claude-ai), 또는 프로젝트 외부의 에이전트 파일 (`--add-dir` 디렉토리 포함) | 구성 디렉토리 `~/.claude` (또는 [`CLAUDE_CONFIG_DIR`](/docs/ko/env-vars)을 설정한 경우) |1108| [사용자 범위](#user-scope), [관리형 MCP](/docs/ko/managed-mcp), [claude.ai 커넥터](#use-mcp-servers-from-claude-ai), 또는 프로젝트 외부의 에이전트 파일 (`--add-dir` 디렉토리 포함) | 구성 디렉토리 `~/.claude` (또는 [`CLAUDE_CONFIG_DIR`](/docs/ko/env-vars)을 설정한 경우) |


1235 </Step>1235 </Step>

1236</Steps>1236</Steps>

1237 1237 

1238조직이 claude.ai에서 인증을 관리할 때 Claude Code는 커넥터를 `/mcp`와 [`/plugin`](/docs/ko/plugins) 관리자에서 `managed`로 표시합니다. Managed 상태는 Claude Code가 커넥터에 연결하는 방식이나 조직의 [도구 제어](#organization-controls-on-connector-tools)를 적용하는 방식을 변경하지 않습니다.1238조직이 claude.ai에서 인증을 관리할 때 Claude Code는 커넥터를 `/mcp`와 [`/plugin`](/docs/ko/plugins/install) 관리자에서 `managed`로 표시합니다. Managed 상태는 Claude Code가 커넥터에 연결하는 방식이나 조직의 [도구 제어](#organization-controls-on-connector-tools)를 적용하는 방식을 변경하지 않습니다.

1239 1239 

1240한 번도 로그인하지 않은 커넥터는 claude.ai 섹션의 끝에 있는 `Show unused connectors` 행 뒤에 축소되므로 조직에서 제공한 목록이 패널을 채우지 않습니다. 행을 선택하여 확장합니다. 이전에 로그인한 커넥터는 현재 재인증이 필요한 경우에도 계속 표시됩니다.1240한 번도 로그인하지 않은 커넥터는 claude.ai 섹션의 끝에 있는 `Show unused connectors` 행 뒤에 축소되므로 조직에서 제공한 목록이 패널을 채우지 않습니다. 행을 선택하여 확장합니다. 이전에 로그인한 커넥터는 현재 재인증이 필요한 경우에도 계속 표시됩니다.

1241 1241 

Details

64}64}

65```65```

66 66 

67Claude Code는 저장소의 `.claude/settings.json` 및 `.claude/settings.local.json`에서 [OpenTelemetry 내보내기 변수](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)를 무시하므로 저장소는 이를 사용하여 원격 측정을 켜거나, 이동 위치를 선택하거나, 콘텐츠를 캡처할 수 없습니다. 관리 설정에서 설정하거나 각 개발자가 자신의 셸 또는 `~/.claude/settings.json`에서 설정하세요. 저장소는 `OTEL_LOGS_EXPORTER`와 같은 내보내기 선택기를 `none`으로 설정하여 신호를 끌 수 있습니다. 단, 관리 설정, `--settings` 파일 또는 Claude Code를 시작하는 환경이 해당 변수를 설정하지 않는 경우에만 가능합니다.

68 

67Claude Code는 `OTEL_*` 환경 변수를 Bash 도구, 훅, MCP 서버 및 언어 서버를 포함하여 생성하는 하위 프로세스에 전달하지 않습니다. Bash 도구를 통해 실행하는 OpenTelemetry 계측 애플리케이션은 Claude Code의 내보내기 엔드포인트 또는 헤더를 상속하지 않으므로 해당 애플리케이션이 자신의 원격 측정을 내보내야 하는 경우 명령에서 직접 이러한 변수를 설정합니다.69Claude Code는 `OTEL_*` 환경 변수를 Bash 도구, 훅, MCP 서버 및 언어 서버를 포함하여 생성하는 하위 프로세스에 전달하지 않습니다. Bash 도구를 통해 실행하는 OpenTelemetry 계측 애플리케이션은 Claude Code의 내보내기 엔드포인트 또는 헤더를 상속하지 않으므로 해당 애플리케이션이 자신의 원격 측정을 내보내야 하는 경우 명령에서 직접 이러한 변수를 설정합니다.

68 70 

69<h3 id="how-managed-settings-lock-the-otlp-destination">71<h3 id="how-managed-settings-lock-the-otlp-destination">


101 일반적인 구성 변수103 일반적인 구성 변수

102</h3>104</h3>

103 105 

104이러한 변수는 모든 배포에 대한 내보내기, 엔드포인트 및 내보내기 동작을 구성합니다. `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`와 같은 신호별 엔드포인트 또는 프로토콜 변수를 설정하면 Claude Code는 해당 신호에 대해 일반 변수 대신 이를 사용합니다. `OTEL_EXPORTER_OTLP_METRICS_HEADERS`와 같은 신호별 헤더 변수를 설정하면 Claude Code는 해당 신호에 대해 일반 `OTEL_EXPORTER_OTLP_HEADERS`와 병합합니다. 관리되는 설정이 있는 머신에서는 [관리되는 설정이 OTLP 대상을 잠그는 방법](#how-managed-settings-lock-the-otlp-destination)을 참조하여 Claude Code가 제거하는 항목을 확인합니다.106이러한 변수는 모든 배포에 대한 내보내기, 엔드포인트 및 내보내기 동작을 구성합니다.

107 

108`OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`와 같은 신호별 엔드포인트 또는 프로토콜 변수를 설정하면 Claude Code는 해당 신호에 대해 일반 변수 대신 이를 사용합니다. `OTEL_EXPORTER_OTLP_METRICS_HEADERS`와 같은 신호별 헤더 변수를 설정하면 Claude Code는 해당 신호에 대해 일반 `OTEL_EXPORTER_OTLP_HEADERS`와 병합합니다.

109 

110관리되는 설정이 있는 머신에서는 [관리되는 설정이 OTLP 대상을 잠그는 방법](#how-managed-settings-lock-the-otlp-destination)을 참조하여 Claude Code가 제거하는 항목을 확인합니다.

105 111 

106| 환경 변수 | 설명 | 예제 값 |112| 환경 변수 | 설명 | 예제 값 |

107| --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |113| --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |


651* `query_source`: 요청을 발급한 하위 시스템의 범주. `"main"`, `"subagent"`, 또는 `"auxiliary"` 중 하나입니다.657* `query_source`: 요청을 발급한 하위 시스템의 범주. `"main"`, `"subagent"`, 또는 `"auxiliary"` 중 하나입니다.

652* `speed`: 요청이 빠른 모드를 사용했을 때 `"fast"`. 그 외에는 없습니다.658* `speed`: 요청이 빠른 모드를 사용했을 때 `"fast"`. 그 외에는 없습니다.

653* `effort`: 요청에 적용된 [노력 수준](/docs/ko/model-config#adjust-effort-level): `"low"`, `"medium"`, `"high"`, `"xhigh"`, 또는 `"max"`. Claude Code가 노력 수준을 보내지 않을 때(예: 노력을 지원하지 않는 모델)는 없습니다.659* `effort`: 요청에 적용된 [노력 수준](/docs/ko/model-config#adjust-effort-level): `"low"`, `"medium"`, `"high"`, `"xhigh"`, 또는 `"max"`. Claude Code가 노력 수준을 보내지 않을 때(예: 노력을 지원하지 않는 모델)는 없습니다.

654* `agent.name`: 요청을 발급한 하위 에이전트 유형. 기본 제공 에이전트 이름과 공식 마켓플레이스 플러그인의 에이전트는 그대로 나타납니다. 다른 사용자 정의 에이전트 이름은 `"custom"`으로 대체됩니다. 요청이 명명된 하위 에이전트 유형에 의해 발급되지 않았을 때는 없습니다.660* `agent.name`: 요청을 발급한 하위 에이전트 유형. 기본 제공 에이전트 이름과 공식 마켓플레이스 플러그인의 에이전트는 그대로 나타납니다. 다른 사용자 정의 에이전트 이름은 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않은 경우 `"custom"`으로 대체됩니다. 요청이 명명된 하위 에이전트 유형에 의해 발급되지 않았을 때는 없습니다.

655* `skill.name`: 요청에 대해 활성화된 스킬(Skill 도구, `/` 명령, 또는 생성된 하위 에이전트에 의해 상속됨으로 설정됨). 기본 제공, 번들, 사용자 정의, 및 공식 마켓플레이스 플러그인 스킬 이름은 그대로 나타납니다. 타사 플러그인 스킬 이름은 `"third-party"`로 대체됩니다. 활성 스킬이 없을 때는 없습니다.661* `skill.name`: 요청에 대해 활성화된 스킬(Skill 도구, `/` 명령, 또는 생성된 하위 에이전트에 의해 상속됨으로 설정됨). 기본 제공, 번들, 사용자 정의, 및 공식 마켓플레이스 플러그인 스킬 이름은 그대로 나타납니다. 타사 플러그인 스킬 이름은 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않은 경우 `"third-party"`로 대체됩니다. 활성 스킬이 없을 때는 없습니다.

656* `plugin.name`: 활성 스킬 또는 하위 에이전트를 제공하는 플러그인의 소유자. 공식 마켓플레이스 플러그인 이름은 그대로 나타납니다. 타사 플러그인 이름은 `"third-party"`로 대체됩니다. 스킬과 하위 에이전트 모두 소유 플러그인이 없을 때는 없습니다.662* `plugin.name`: 활성 스킬 또는 하위 에이전트를 제공하는 플러그인의 소유자. 공식 마켓플레이스 플러그인 이름은 그대로 나타납니다. 타사 플러그인 이름은 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않은 경우 `"third-party"`로 대체됩니다. 스킬과 하위 에이전트 모두 소유 플러그인이 없을 때는 없습니다.

657* `marketplace.name`: 소유 플러그인이 설치된 마켓플레이스. 공식 마켓플레이스 플러그인에만 내보냅니다. 그 외에는 없습니다.663* `marketplace.name`: 소유 플러그인이 설치된 마켓플레이스. 공식 마켓플레이스 플러그인에만 내보냅니다. 그 외에는 없습니다.

658* `mcp_server.name`: 이 요청이 소비한 도구 결과의 MCP 서버. 기본 제공, claude.ai 프록시, 및 공식 레지스트리 서버 이름은 그대로 나타납니다. 사용자 구성 서버 이름은 `"custom"`으로 대체됩니다. 요청이 MCP 도구 결과를 소비하지 않았을 때는 없습니다. v2.1.222 이전에는 Claude Code가 MCP 도구 호출 후 모든 요청에 이 속성을 설정했으며, 도구 결과를 소비한 요청에만 설정하지 않았으므로 이를 집계하는 대시보드는 업그레이드 후 단계 감소를 보여줍니다.664* `mcp_server.name`: 이 요청이 소비한 도구 결과의 MCP 서버. 기본 제공, claude.ai 프록시, 및 공식 레지스트리 서버 이름은 그대로 나타납니다. 사용자 구성 서버 이름은 `OTEL_LOG_TOOL_DETAILS=1`이 설정되지 않은 경우 `"custom"`으로 대체됩니다. 요청이 MCP 도구 결과를 소비하지 않았을 때는 없습니다. v2.1.222 이전에는 Claude Code가 MCP 도구 호출 후 모든 요청에 이 속성을 설정했으며, 도구 결과를 소비한 요청에만 설정하지 않았으므로 이를 집계하는 대시보드는 업그레이드 후 단계 감소를 보여줍니다.

659* `mcp_tool.name`: 이 요청이 소비한 도구 결과의 MCP 도구(삭제 및 버전 동작은 `mcp_server.name`과 동일). 요청이 MCP 도구 결과를 소비하지 않았을 때는 없습니다.665* `mcp_tool.name`: 이 요청이 소비한 도구 결과의 MCP 도구(삭제 및 버전 동작은 `mcp_server.name`과 동일). 요청이 MCP 도구 결과를 소비하지 않았을 때는 없습니다.

660 666 

661<h4 id="token-counter">667<h4 id="token-counter">


1090* `plugin.version`: 플러그인 매니페스트의 버전. 이름이 삭제되지 않고 매니페스트가 버전을 선언할 때만 포함됩니다.1096* `plugin.version`: 플러그인 매니페스트의 버전. 이름이 삭제되지 않고 매니페스트가 버전을 선언할 때만 포함됩니다.

1091* `plugin.scope`: 플러그인의 출처 범주: `"official"`, `"community"`, `"org"`, `"user-local"`, 또는 `"default-bundle"`1097* `plugin.scope`: 플러그인의 출처 범주: `"official"`, `"community"`, `"org"`, `"user-local"`, 또는 `"default-bundle"`

1092* `enabled_via`: 플러그인이 활성화되게 된 방식: `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"`, 또는 `"user-install"`.&#x20;1098* `enabled_via`: 플러그인이 활성화되게 된 방식: `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"`, 또는 `"user-install"`.&#x20;

1093 `"admin-install"` 값은 플러그인이 [**조직 설정 > 플러그인**](https://claude.ai/admin-settings/plugins)에서 조직에 필수 또는 자동 설치로 설정되어 있음을 의미합니다. v2.1.246 이전에는 Claude Code가 이러한 플러그인을 `"user-install"` 또는 `"seed-mount"`로 보고했습니다.1099 `"admin-install"` 값은 플러그인이 [**조직 설정 > 플러그인 & 스킬**](https://claude.ai/admin-settings/skills?tab=inventory)에서 조직에 필수 또는 자동 설치로 설정되어 있음을 의미합니다. v2.1.246 이전에는 Claude Code가 이러한 플러그인을 `"user-install"` 또는 `"seed-mount"`로 보고했습니다.

1094* `plugin_id_hash`: 플러그인 이름과 마켓플레이스의 결정적 해시(구성된 내보내기로만 전송됨). 이름을 기록하지 않고 플릿 전체에서 로드된 서로 다른 타사 플러그인을 계산할 수 있습니다. [claude.ai에서 동기화된 플러그인](/docs/ko/plugins-reference#synced-plugins)의 경우 Claude Code는 플러그인 이름을 claude.ai가 플러그인에 대해 보고하는 마켓플레이스 이름 또는 그 외의 경우 `synced`와 함께 해시합니다. v2.1.246 이전에는 Claude Code가 해시에서 claude.ai가 보고하는 마켓플레이스 이름을 사용하지 않았습니다.1100* `plugin_id_hash`: 플러그인 이름과 마켓플레이스의 결정적 해시(구성된 내보내기로만 전송됨). 이름을 기록하지 않고 플릿 전체에서 로드된 서로 다른 타사 플러그인을 계산할 수 있습니다. [claude.ai에서 동기화된 플러그인](/docs/ko/plugins/loading#synced-plugins)의 경우 Claude Code는 플러그인 이름을 claude.ai가 플러그인에 대해 보고하는 마켓플레이스 이름 또는 그 외의 경우 `synced`와 함께 해시합니다. v2.1.246 이전에는 Claude Code가 해시에서 claude.ai가 보고하는 마켓플레이스 이름을 사용하지 않았습니다.

1095* `has_hooks`: 플러그인이 훅을 제공하는지 여부1101* `has_hooks`: 플러그인이 훅을 제공하는지 여부

1096* `has_mcp`: 플러그인이 MCP 서버를 제공하는지 여부1102* `has_mcp`: 플러그인이 MCP 서버를 제공하는지 여부

1097* `host_owned_mcp`: SDK 호스트가 이 플러그인의 MCP 연결을 관리하고 Claude Code가 플러그인의 MCP 서버 구성 읽기를 건너뛸 때 `true`, 그 외에는 `false`. Claude Code v2.1.172 이상 필요1103* `host_owned_mcp`: SDK 호스트가 이 플러그인의 MCP 연결을 관리하고 Claude Code가 플러그인의 MCP 서버 구성 읽기를 건너뛸 때 `true`, 그 외에는 `false`. Claude Code v2.1.172 이상 필요

Details

245| `registry.npmjs.org` | 플러그인 설치(npm 소스 플러그인 패키지 가져오기 및 플러그인의 Node.js 패키지 종속성 설치), `npx` 실행 MCP 서버 및 Claude Code 자체의 npm 및 bun 설치를 위한 패키지 레지스트리 |245| `registry.npmjs.org` | 플러그인 설치(npm 소스 플러그인 패키지 가져오기 및 플러그인의 Node.js 패키지 종속성 설치), `npx` 실행 MCP 서버 및 Claude Code 자체의 npm 및 bun 설치를 위한 패키지 레지스트리 |

246| `bridge.claudeusercontent.com` | [Chrome의 Claude](/docs/ko/chrome) 확장 프로그램 WebSocket 브리지 |246| `bridge.claudeusercontent.com` | [Chrome의 Claude](/docs/ko/chrome) 확장 프로그램 WebSocket 브리지 |

247| `*.frame.claudeusercontent.com` | [Artifact](/docs/ko/artifacts) 콘텐츠 읽기. CLI는 Claude가 Artifact를 열 때 이 호스트에서 Artifact의 파일을 가져오며, Artifact 도구가 계정에 [사용 가능](/docs/ko/artifacts#availability)할 때만 가져옵니다. 도구를 끄고 이 요구사항을 제거하려면 [`"enableArtifact": false`](/docs/ko/settings-reference#enableartifact) 또는 [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/ko/env-vars)을 설정하십시오. Claude Code는 더 이상 사용되지 않는 [`disableArtifact`](/docs/ko/settings-reference#disableartifact) 설정도 준수합니다. 이러한 설정이 상호 작용하는 방식은 [Artifact 비활성화](/docs/ko/artifacts#disable-artifacts)를 참조하십시오 |247| `*.frame.claudeusercontent.com` | [Artifact](/docs/ko/artifacts) 콘텐츠 읽기. CLI는 Claude가 Artifact를 열 때 이 호스트에서 Artifact의 파일을 가져오며, Artifact 도구가 계정에 [사용 가능](/docs/ko/artifacts#availability)할 때만 가져옵니다. 도구를 끄고 이 요구사항을 제거하려면 [`"enableArtifact": false`](/docs/ko/settings-reference#enableartifact) 또는 [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/ko/env-vars)을 설정하십시오. Claude Code는 더 이상 사용되지 않는 [`disableArtifact`](/docs/ko/settings-reference#disableartifact) 설정도 준수합니다. 이러한 설정이 상호 작용하는 방식은 [Artifact 비활성화](/docs/ko/artifacts#disable-artifacts)를 참조하십시오 |

248| `github.com` | GitHub 호스팅 [플러그인 마켓플레이스](/docs/ko/plugin-marketplaces) 및 플러그인 복제, 공식 Anthropic 마켓플레이스 포함, HTTPS 또는 SSH를 통해. GitHub `owner/repo` 소스를 HTTPS를 통해서만 복제하려면 [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/ko/env-vars)을 설정하십시오 |248| `github.com` | GitHub 호스팅 [플러그인 마켓플레이스](/docs/ko/plugins/overview) 및 플러그인 복제, 공식 Anthropic 마켓플레이스 포함, HTTPS 또는 SSH를 통해. GitHub `owner/repo` 소스를 HTTPS를 통해서만 복제하려면 [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/ko/env-vars)을 설정하십시오 |

249| `raw.githubusercontent.com` | [`/release-notes`](/docs/ko/commands)에 대한 변경 로그 피드. 대화형 세션에서 Claude Code는 캐시된 변경 로그가 실행 중인 버전을 아직 다루지 않을 때(예: 업데이트 후 첫 시작) 시작 시 백그라운드에서도 가져옵니다. 비대화형 및 클라우드 세션은 절대 가져오지 않습니다 |249| `raw.githubusercontent.com` | [`/release-notes`](/docs/ko/commands)에 대한 변경 로그 피드. 대화형 세션에서 Claude Code는 캐시된 변경 로그가 실행 중인 버전을 아직 다루지 않을 때(예: 업데이트 후 첫 시작) 시작 시 백그라운드에서도 가져옵니다. 비대화형 및 클라우드 세션은 절대 가져오지 않습니다 |

250| `*-review.googlesource.com` | `googlesource.com` 체크아웃에서 Gerrit 변경 조회. Claude Desktop Code 탭 세션이 `origin`이 `googlesource.com` 호스트인 [신뢰할 수 있는](/docs/ko/permissions#project-allow-rules-and-workspace-trust) 체크아웃에서 시작되거나 재개될 때, Claude Code는 HEAD의 `Change-Id`와 일치하는 열린 변경에 대해 해당 호스트의 `-review` 서버에 익명으로 한 번 요청합니다. 다른 세션 유형은 조회를 건너뛰며, 다른 Gerrit 호스트는 연결되지 않습니다. 선택 사항: [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ko/env-vars)으로 비활성화 |250| `*-review.googlesource.com` | `googlesource.com` 체크아웃에서 Gerrit 변경 조회. Claude Desktop Code 탭 세션이 `origin`이 `googlesource.com` 호스트인 [신뢰할 수 있는](/docs/ko/permissions#project-allow-rules-and-workspace-trust) 체크아웃에서 시작되거나 재개될 때, Claude Code는 HEAD의 `Change-Id`와 일치하는 열린 변경에 대해 해당 호스트의 `-review` 서버에 익명으로 한 번 요청합니다. 다른 세션 유형은 조회를 건너뛰며, 다른 Gerrit 호스트는 연결되지 않습니다. 선택 사항: [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ko/env-vars)으로 비활성화 |

251| `http-intake.logs.us5.datadoghq.com` | 운영 원격 분석 이벤트, CLI가 Anthropic API를 직접 사용할 때만 전송되며, Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry의 경우는 절대 전송되지 않습니다. 선택 사항: [`DISABLE_TELEMETRY`](/docs/ko/data-usage#telemetry-services) 또는 `DO_NOT_TRACK`으로 비활성화 |251| `http-intake.logs.us5.datadoghq.com` | 운영 원격 분석 이벤트, CLI가 Anthropic API를 직접 사용할 때만 전송되며, Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry의 경우는 절대 전송되지 않습니다. 선택 사항: [`DISABLE_TELEMETRY`](/docs/ko/data-usage#telemetry-services) 또는 `DO_NOT_TRACK`으로 비활성화 |

Details

171 </Step>171 </Step>

172</Steps>172</Steps>

173 173 

174[플러그인](/docs/ko/plugins-reference)도 `output-styles/` 디렉토리에 출력 스타일을 포함할 수 있습니다.174[플러그인](/docs/ko/plugins/manifest-reference)도 `output-styles/` 디렉토리에 출력 스타일을 포함할 수 있습니다.

175 175 

176<h3 id="frontmatter">176<h3 id="frontmatter">

177 Frontmatter 참조177 Frontmatter 참조


228 228 

229* [Settings](/docs/ko/settings): `outputStyle` 필드가 있는 위치 및 설정 우선순위 작동 방식229* [Settings](/docs/ko/settings): `outputStyle` 필드가 있는 위치 및 설정 우선순위 작동 방식

230* [Permission modes](/docs/ko/permission-modes): Proactive 스타일이 자동 모드와 어떻게 비교되는지230* [Permission modes](/docs/ko/permission-modes): Proactive 스타일이 자동 모드와 어떻게 비교되는지

231* [Plugins](/docs/ko/plugins): skills, hooks, agents와 함께 출력 스타일을 패키징하고 배포합니다231* [Plugins](/docs/ko/plugins/overview): skills, hooks, agents와 함께 출력 스타일을 패키징하고 배포합니다

232* [Debug your configuration](/docs/ko/debug-your-config): 출력 스타일이 적용되지 않는 이유를 진단합니다232* [Debug your configuration](/docs/ko/debug-your-config): 출력 스타일이 적용되지 않는 이유를 진단합니다

permission-modes.md +106 −95

Details

287 자동 모드로 권한 프롬프트 제거287 자동 모드로 권한 프롬프트 제거

288</h2>288</h2>

289 289 

290자동 모드를 사용하면 Claude가 일상적인 권한 프롬프트 없이 실행될 수 있습니다. 별도의 분류기 모델이 실행 전에 작업을 검토하여 요청을 초과하는 모든 것, 인식되지 않은 인프라를 대상으로 하는 것, 또는 Claude가 읽은 악의적인 콘텐츠로 인해 발생한 것으로 보이는 것을 차단합니다. 명시적 [요청 규칙](/docs/ko/permissions#manage-permissions)은 여전히 프롬프트를 강제합니다.290자동 모드를 사용하면 Claude가 일상적인 권한 프롬프트 없이 실행됩니다. 별도의 분류기 모델이 실행 전에 작업을 검토하여 요청을 초과하거나 인식되지 않은 인프라를 대상으로 하거나 Claude가 읽은 악의적인 콘텐츠로 인해 발생한 것으로 보이는 모든 것을 차단합니다. 명시적인 [요청 규칙](/docs/ko/permissions#manage-permissions)은 여전히 프롬프트를 강제합니다.

291 291 

292Pro, Max, Team 플랜에서 자동 모드는 [기본 제공 시작 권한 모드](#which-mode-a-session-starts-in)입니다.292Pro, Max, Team 플랜에서 자동 모드는 [세션이 시작되는 기본 권한 모드](#which-mode-a-session-starts-in)입니다.

293 293 

294분류기는 또한 Claude가 [`SendMessage`](/docs/ko/tools-reference)를 사용하여 다른 에이전트에 보내는 각 메시지를 검토합니다. 일반 텍스트이든 구조화된 [에이전트 팀](/docs/ko/agent-teams) 메시지이든, Claude Code가 전달하기 전에 검토합니다. 자동 모드와 [분류기가 명령을 검토하는 계획 모드](#analyze-before-you-edit-with-plan-mode) 모두에서 검토합니다. 전송 검토에는 Claude Code v2.1.222 이상이 필요합니다.294분류기는 또한 Claude가 [`SendMessage`](/docs/ko/tools-reference)를 사용하여 다른 에이전트에 보내는 각 메시지를 검토합니다. 일반 텍스트이든 구조화된 [에이전트 팀](/docs/ko/agent-teams) 메시지이든, Claude Code가 전달하기 전에 자동 모드와 [분류기가 명령을 검토하는 동안 계획 모드](#analyze-before-you-edit-with-plan-mode) 모두에서 검토합니다. 전송 검토에는 Claude Code v2.1.222 이상이 필요합니다.

295 295 

296분류기는 또한 `rm` 및 `rmdir` 제거를 검토하고 승인하거나 차단합니다. 이는 `rm -rf /` 및 `rm -rf ~`와 같은 [중요 경로](#critical-paths)를 대상으로 합니다. 제거가 명령 또는 프로세스 치환 내부에 있을 때도 포함됩니다.296분류기는 또한 `rm` 및 `rmdir` 제거를 검토하고 승인하거나 차단합니다. 이는 `rm -rf /` 및 `rm -rf ~`와 같은 [중요 경로](#critical-paths)를 대상으로 하며, 제거가 명령 또는 프로세스 치환 내부에 있을 때도 포함됩니다.

297 297 

298자동 모드는 또한 Claude가 명확한 질문을 위해 멈추지 않고 계속 작업하도록 권장합니다. 다만 Claude는 프롬프트나 스킬이 명시적으로 이를 요구할 때는 여전히 질문합니다. 더 강한 자율 동작을 원하면서도 여전히 프롬프트를 받으려면 [사전 예방적 출력 스타일](/docs/ko/output-styles)을 설정하세요.298자동 모드는 또한 Claude가 명확한 질문을 위해 멈추지 않고 계속 작업하도록 권장하지만, Claude는 여전히 프롬프트나 스킬이 명시적으로 이를 요구할 때 질문합니다. 더 강력한 자율 동작을 원하면서도 여전히 프롬프트를 표시하는 모드를 원한다면 [사전 예방적 출력 스타일](/docs/ko/output-styles)을 설정하세요.

299 299 

300<Warning>300<Warning>

301 자동 모드는 권한 프롬프트를 줄이지만 안전을 보장하지 않습니다. 일반적인 방향을 신뢰하는 작업에 사용하세요. 민감한 작업에 대한 검토 대체물로 사용하지 마세요.301 자동 모드는 권한 프롬프트를 줄이지만 안전을 보장하지 않습니다. 일반적인 방향을 신뢰하는 작업에 사용하고, 민감한 작업에 대한 검토 대체물로 사용하지 마세요.

302</Warning>302</Warning>

303 303 

304자동 모드는 계정이 다음 요구 사항을 모두 충족할 때만 사용 가능합니다:304자동 모드는 계정이 다음 모든 요구 사항을 충족할 때만 사용 가능합니다:

305 305 

306* **플랜**: 모든 플랜.306* **플랜**: 모든 플랜.

307* **조직**: Team 및 Enterprise에서 자동 모드는 기본적으로 사용 가능합니다. 관리자는 [관리 설정](/docs/ko/managed-settings)에서 `permissions.disableAutoMode`를 `"disable"`로 설정하여 조직에 대해 자동 모드를 끌 수 있습니다.307* **조직**: Team 및 Enterprise에서 자동 모드는 기본적으로 사용 가능합니다. 관리자는 [관리 설정](/docs/ko/managed-settings)에서 `permissions.disableAutoMode`를 `"disable"`로 설정하여 조직에 대해 자동 모드를 끌 수 있습니다.

308* **모델**: Anthropic API 및 [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws)에서 Claude Opus 4.6 이상, Sonnet 4.6 이상, 또는 [Fable 모델](/docs/ko/model-config#work-with-fable). Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, 그리고 로그인한 [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway) 세션에서는 Claude Sonnet 5, Opus 4.7 이상, 그리고 Fable 모델만 해당합니다. Sonnet 4.5, Opus 4.5, Haiku, claude-3 모델을 포함한 이전 모델은 어떤 제공자에서도 지원되지 않습니다.308* **모델**: Anthropic API 및 [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws)에서 Claude Opus 4.6 이상, Sonnet 4.6 이상, 또는 [Fable 모델](/docs/ko/model-config#work-with-fable). Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, 그리고 로그인한 [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway) 세션에서는 Claude Sonnet 5, Opus 4.7 이상, 그리고 Fable 모델만 지원됩니다. Sonnet 4.5, Opus 4.5, Haiku, claude-3 모델을 포함한 이전 모델은 어떤 제공자에서도 지원되지 않습니다.

309* **제공자**: Anthropic API, AWS의 Claude Platform, Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, 그리고 로그인한 Claude 앱 게이트웨이 세션에서 기본적으로 사용 가능합니다.309* **제공자**: Anthropic API, AWS의 Claude Platform, Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, 그리고 로그인한 Claude 앱 게이트웨이 세션에서 기본적으로 사용 가능합니다.

310 310 

311Claude Code가 자동 모드를 사용할 수 없다고 보고하면 먼저 이러한 요구 사항을 확인하고 설정 파일이 [`disableAutoMode`](/docs/ko/settings-reference#disableautomode)를 설정하는지 확인하세요. Anthropic이 서버 측에서 자동 모드를 끄거나 서버가 계정에 대해 자동 모드를 거부했을 수 있습니다. 두 답변 중 하나를 받은 세션은 세션이 끝날 때까지 자동 모드를 끈 상태로 유지하므로 나중에 새 세션을 시작하세요.311Claude Code가 자동 모드를 사용할 수 없다고 보고하면 먼저 이러한 요구 사항을 확인하고 설정 파일이 [`disableAutoMode`](/docs/ko/settings-reference#disableautomode)를 설정하는지 확인하세요. Anthropic이 서버 측에서 자동 모드를 끄거나 서버가 계정에 대해 자동 모드를 거부했을 수도 있습니다. 두 답변 중 하나를 받은 세션은 세션이 끝날 때까지 자동 모드를 끈 상태로 유지하므로 나중에 새 세션을 시작하세요.

312 312 

313모델 이름을 지정하고 자동 모드가 작업의 안전성을 "결정할 수 없다"고 말하는 별도의 메시지는 분류기 요청이 실패했음을 의미합니다. 이 실패는 일반적으로 일시적이지만 Amazon Bedrock에서는 계정이 명명된 모델을 호출할 수 있을 때까지 반복될 수 있습니다. 원인 및 해결 방법은 [오류 참조](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action)를 참조하세요.313모델 이름을 지정하고 자동 모드가 작업의 안전성을 "결정할 수 없다"고 말하는 별도의 메시지는 분류기 요청이 실패했음을 의미합니다. 이 실패는 일반적으로 일시적이지만 Amazon Bedrock에서는 계정이 명명된 모델을 호출할 수 있을 때까지 반복될 수 있습니다. 원인과 해결 방법은 [오류 참조](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action)를 참조하세요.

314 314 

315[설정](/docs/ko/settings-reference#all-settings)에서 `defaultMode: "auto"`를 설정했는데 터미널 세션이 오류 없이 수동 모드로 시작되면 설정이 `.claude/settings.json` 또는 `.claude/settings.local.json`에 있을 가능성이 높습니다. `auto`는 이 파일에서 적용되지 않습니다. `~/.claude/settings.json`으로 이동하세요. VS Code 확장이 시작한 대화의 경우 [권한 모드 전환](#switch-permission-modes) 대신 확장의 자체 목록을 확인하세요.315[설정](/docs/ko/settings-reference#all-settings)에서 `defaultMode: "auto"`를 설정했는데 터미널 세션이 오류 없이 수동 모드로 시작되면 설정이 `.claude/settings.json` 또는 `.claude/settings.local.json`에 있을 가능성이 높습니다. `auto`는 이러한 파일에서 적용되지 않습니다. `~/.claude/settings.json`으로 이동하세요. VS Code 확장이 시작한 대화의 경우 [권한 모드 전환](#switch-permission-modes) 대신 확장의 자체 목록을 확인하세요.

316 316 

317<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">317<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">

318 Bedrock, Agent Platform 또는 Foundry의 자동 모드318 Bedrock, Agent Platform 또는 Foundry의 자동 모드

319</h3>319</h3>

320 320 

321[Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai), [Microsoft Foundry](/docs/ko/microsoft-foundry), 그리고 로그인한 [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway) 세션에서 자동 모드는 기본적으로 `Shift+Tab` 사이클에 나타납니다. 사이클에 나타나는 것이 세션이 시작되는 권한 모드를 변경하지는 않습니다. 이 제공자들에서 터미널 세션은 [`defaultMode`](/docs/ko/settings-reference#permissions-defaultmode)에서 시작합니다. 이는 변경하지 않으면 수동이고, [VS Code 확장](/docs/ko/vs-code)의 대화는 `claudeCode.initialPermissionMode` 또는 확장에서 선택한 모드가 설정하지 않으면 수동으로 시작합니다. 이 제공자들에서는 Claude Sonnet 5, Opus 4.7 이상, 그리고 Fable 모델만 지원됩니다.321[Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai), [Microsoft Foundry](/docs/ko/microsoft-foundry), 그리고 로그인한 [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway) 세션에서 자동 모드는 기본적으로 `Shift+Tab` 사이클에 나타납니다. 사이클에 나타나는 것이 세션이 시작되는 권한 모드를 변경하지는 않습니다. 이러한 제공자에서 터미널 세션은 [`defaultMode`](/docs/ko/settings-reference#permissions-defaultmode)로 시작하며, 이는 변경하지 않으면 수동이고, [VS Code 확장](/docs/ko/vs-code)의 대화는 `claudeCode.initialPermissionMode` 또는 확장에서 선택한 모드가 설정하지 않으면 수동으로 시작됩니다. 이러한 제공자에서는 Claude Sonnet 5, Opus 4.7 이상, 그리고 Fable 모델만 지원됩니다.

322 322 

323자동 모드를 기본 시작 권한 모드로 만들려면 사용자 또는 관리 설정에서 `"permissions": {"defaultMode": "auto"}`를 설정하세요. VS Code 확장이 시작한 세션에서는 모드 표시기에서 **자동**을 선택하세요. [권한 모드 전환](#switch-permission-modes)은 해당 선택을 무엇이 능가하는지 다룹니다.323자동 모드를 기본 시작 권한 모드로 만들려면 사용자 또는 관리 설정에서 `"permissions": {"defaultMode": "auto"}`를 설정하세요. VS Code 확장이 시작한 세션에서는 모드 표시기에서 **자동**을 선택하세요. [권한 모드 전환](#switch-permission-modes)은 해당 선택을 능가하는 것을 다룹니다.

324 324 

325[`/doctor`](/docs/ko/commands#all-commands) 점검은 Anthropic API에서와 동일한 방식으로 이 제공자들에서 사용자 설정 기본값을 제안합니다.325[`/doctor`](/docs/ko/commands#all-commands) 점검은 Anthropic API와 동일한 방식으로 이러한 제공자에서 사용자 설정 기본값을 제안합니다.

326 326 

327개발자가 자동 모드를 사용하지 못하도록 하려면 [관리 설정](/docs/ko/managed-settings)에서 `disableAutoMode`를 `"disable"`로 설정하세요. 이는 `Shift+Tab` 사이클에서 `auto`를 제거하고, `--permission-mode auto`로 시작한 세션은 수동으로 시작합니다. 이미 자동 모드로 실행 중인 세션은 설정이 [관리자 배포 소스](/docs/ko/managed-settings#which-managed-source-claude-code-uses)에서 해당 세션에 도달할 때 자동 모드를 떠나고 `auto mode disabled by settings`를 표시합니다. v2.1.251 이전에는 실행 중인 세션이 끝날 때까지 자동 모드를 유지했습니다.327개발자가 자동 모드를 사용하지 못하도록 하려면 [관리 설정](/docs/ko/managed-settings)에서 `disableAutoMode`를 `"disable"`로 설정하세요. 이는 `Shift+Tab` 사이클에서 `auto`를 제거하고, `--permission-mode auto`로 시작한 세션은 수동으로 시작됩니다. 이미 자동 모드로 실행 중인 세션은 설정이 [관리자 배포 소스](/docs/ko/managed-settings#which-managed-source-claude-code-uses)에서 해당 세션에 도달할 때 자동 모드를 떠나고 `auto mode disabled by settings`를 표시합니다. v2.1.251 이전에는 실행 중인 세션이 끝날 때까지 자동 모드를 유지했습니다.

328 328 

329v2.1.158부터 v2.1.206까지 자동 모드는 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`을 설정할 때까지 이 제공자들에서 꺼져 있었고, Claude Code는 변수도 설정되지 않으면 이 제공자들에서 `defaultMode: "auto"`를 무시했습니다. 변수는 호환성을 위해 여전히 허용되며 v2.1.207 이후로는 효과가 없습니다.329v2.1.158부터 v2.1.206까지 자동 모드는 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`을 설정할 때까지 이러한 제공자에서 꺼져 있었고, Claude Code는 변수도 설정되지 않으면 이러한 제공자에서 `defaultMode: "auto"`를 무시했습니다. 변수는 호환성을 위해 여전히 허용되며 v2.1.207 이후로는 효과가 없습니다.

330 330 

331<h3 id="server-side-classifier-review">331<h3 id="server-side-classifier-review">

332 서버 측 분류기 검토332 서버 측 분류기 검토

333</h3>333</h3>

334 334 

335Enterprise 플랜 및 Claude API를 사용하는 계정, [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws), Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry에서, 그리고 `ANTHROPIC_BASE_URL`을 [LLM 게이트웨이 또는 프록시](/docs/ko/llm-gateway)로 지정할 때마다 자동 모드의 Claude Code는 서버에 [분류기로 이동하는 작업](#how-the-classifier-evaluates-actions)을 세션의 모델 요청의 일부로 검토하도록 요청합니다. 서버가 이를 검토하는 경우 해당 판정이 이러한 작업을 결정합니다. 서버가 검토하지 않는 경우 (일반적으로 LLM 게이트웨이 또는 프록시가 트래픽을 방해하기 때문이거나 플랫폼, 지역 또는 자격 증명이 아직 서버 측 검사를 갖지 않았기 때문) Claude Code는 자체 분류기 요청으로 폴백하고, 해당 폴백이 세션의 나머지 동안 유지되면 이를 요청이 청구되는 계정에서 [분류기 요청 요금에 대한 공지](/docs/ko/auto-mode-classifier-billing)를 표시합니다. 서버에 요청하는 것을 건너뛰고 항상 Claude Code의 자체 분류기 요청을 사용하려면 [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/ko/env-vars)을 설정하세요. 변수는 Anthropic API에 대한 직접 연결에서 읽혀지지 않습니다. `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`을 설정하고 `CLAUDE_CODE_AUTO_MODE_SERVER`를 설정하지 않으면 Claude Code도 서버에 요청하는 것을 중지합니다.335자동 모드에서 Claude Code는 서버에 [결정 순서](#how-the-classifier-evaluates-actions)가 검토를 위해 보내는 작업을 확인하도록 요청할 수 있습니다. 이는 세션의 모델 요청의 일부로 자체 분류기 요청을 보내는 대신 수행됩니다. 이러한 세션은 다음을 요청합니다:

336 336 

337기본적으로 서버에 요청하려면 Claude Code v2.1.278 이상이 필요합니다.337* **Anthropic API에 대한 직접 연결**: 대화형 터미널 세션에서 모든 claude.ai 플랜 및 Claude API를 사용하는 계정에서 Anthropic이 롤아웃할 때. Pro, Max, Team 플랜에서 Claude Code v2.1.271 이상이 필요하고, Enterprise 플랜 및 Claude API 계정에서 v2.1.278 이상이 필요합니다. v2.1.282부터 [기능 플래그를 가져오지 않는](/docs/ko/env-vars#features-that-need-feature-flag-fetching) 세션(예: 원격 분석을 끈 경우)은 모든 종류의 세션에서 기본적으로 서버에 요청합니다.

338* **클라우드 제공자, LLM 게이트웨이 또는 프록시**: [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws), Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry에서, 그리고 `ANTHROPIC_BASE_URL`을 [LLM 게이트웨이 또는 프록시](/docs/ko/llm-gateway)로 가리킬 때마다, 플랜에 관계없이. 기본적으로 요청하려면 Claude Code v2.1.278 이상이 필요합니다.

339* **로그인한 [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway) 세션**: Claude Code v2.1.280 이상이 필요합니다

340 

341서버가 작업을 검토하는 경우 해당 판정이 결정합니다. 두 가지 다른 결과가 가능합니다:

342 

343* **서버가 세션을 검토하지 않음**: 응답이 검토 결과 없이 완료되거나 서버가 이 세션을 검토하지 않는다고 답합니다. 가장 일반적인 원인은 검토 요청이나 결과를 삭제하는 LLM 게이트웨이 또는 프록시이며, 아직 서버 측 검사가 없는 플랫폼, 지역 또는 자격 증명입니다. Claude Code는 자체 분류기 요청으로 폴백합니다. 이 폴백이 세션의 나머지 기간 동안 유지되면 [분류기 요청 요금에 대한 알림](/docs/ko/auto-mode-classifier-billing)을 표시합니다. 이러한 요청이 청구되는 계정에서.

344* **서버가 작업에 대한 판정을 제공하지 않음**: Claude Code는 검토되지 않은 상태로 실행하는 대신 작업을 거부합니다. 모든 연결에서 이는 응답이 검토 결과가 도착하기 전에 끝나거나 결과가 Claude Code가 읽을 수 없는 형식으로 도착할 때 발생합니다. 응답을 단축하거나 결과를 다시 작성하는 LLM 게이트웨이 또는 프록시가 둘 다 발생할 수 있습니다. Anthropic API에 대한 직접 연결에서는 서버의 작업 검사가 실패할 때도 발생합니다(예: 시간 초과). [서버가 안전 판정을 반환하지 않음](/docs/ko/errors#the-server-returned-no-safety-verdict)은 거부 메시지, 거부가 반복될 때 발생하는 일, 그리고 해결 방법을 다룹니다.

345 

346서버에 요청하는 것을 건너뛰고 항상 Claude Code의 자체 분류기 요청을 사용하려면 [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/ko/env-vars)을 설정하세요. Anthropic API에 대한 직접 연결에서 변수에는 Claude Code v2.1.281 이상이 필요합니다. 거기서 `1`로 설정하면 아직 서버 검토가 없는 세션(예: `-p` 또는 Agent SDK 세션)에서 서버 검토를 켭니다. `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`도 설정하지 않은 경우. `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`을 설정하고 `CLAUDE_CODE_AUTO_MODE_SERVER`를 설정하지 않으면 Claude Code도 서버에 요청하는 것을 중지합니다.

338 347 

339<h3 id="what-the-classifier-blocks-by-default">348<h3 id="what-the-classifier-blocks-by-default">

340 분류기가 기본적으로 차단하는 것349 분류기가 기본적으로 차단하는 것

341</h3>350</h3>

342 351 

343분류기는 작업 디렉토리와 세션이 시작될 때 구성된 원격을 신뢰합니다. 세션 중에 `git remote add` 또는 `git remote set-url`로 추가되거나 재지정된 원격은 신뢰되지 않으며, [신뢰할 수 있는 인프라를 구성](/docs/ko/auto-mode-config)할 때까지 다른 모든 것은 외부로 취급됩니다. v2.1.200 이전에는 세션 중에 추가된 원격도 신뢰되었습니다.352분류기는 작업 디렉토리와 세션이 시작될 때 구성된 원격을 신뢰합니다. 세션 중에 `git remote add` 또는 `git remote set-url`로 추가되거나 다시 가리킨 원격은 신뢰되지 않으며, [신뢰할 수 있는 인프라를 구성](/docs/ko/auto-mode-config)할 때까지 다른 모든 것은 외부로 취급됩니다. v2.1.200 이전에는 세션 중에 추가된 원격도 신뢰되었습니다.

344 353 

345**기본적으로 차단됨**:354**기본적으로 차단됨**:

346 355 


352* 공유 인프라 수정361* 공유 인프라 수정

353* 세션 전에 존재했던 파일을 돌이킬 수 없게 파괴362* 세션 전에 존재했던 파일을 돌이킬 수 없게 파괴

354* 강제 푸시363* 강제 푸시

355* 실행될 때 리포지토리 외부로 비밀 또는 민감한 데이터를 보내거나 배포가 노출하는 것을 확대할 변경 사항을 커밋하거나 푸시합니다. 이는 비밀을 아직 받지 않는 대상에 전달하는 CI 워크플로우 또는 배포 구성, 비밀 저장소를 읽고 데이터를 보내는 스크립트 또는 설정 단계, 그리고 배포가 게시하는 것을 확대하는 구성 변경(예: 레지스트리, 가시성, 아티팩트 또는 소스맵 설정)을 포함합니다. 검사는 모든 분기에 적용되고, 리포지토리가 공개인 경우에도 적용되며, 변경이 착지할 때 발생합니다. 파이프라인을 트리거하는지 여부와 관계없이 실행 효과를 명명하면 지워집니다. 커밋 또는 푸시만 명명하는 것이 아닙니다. v2.1.211 이전에는 이 검사가 기본 분기로 범위가 지정되었습니다. 거기로의 푸시는 민감한 콘텐츠, 요청한 것과 비교하여 숨겨지거나 잘못 설명된 변경 사항, 리포지토리 외부에서 이식된 콘텐츠, 또는 요청한 검토를 우회하는 콘텐츠를 전달할 때 차단되었습니다.364* 실행될 때 비밀이나 민감한 데이터를 리포지토리 외부로 보내거나 배포가 노출하는 것을 확대할 변경 사항을 커밋하거나 푸시합니다. 이는 비밀을 아직 받지 않는 대상으로 전달하는 CI 워크플로우 또는 배포 구성, 비밀 저장소를 읽고 데이터를 보내는 스크립트 또는 설정 단계, 그리고 배포가 게시하는 것을 확대하는 구성 변경(예: 레지스트리, 가시성, 아티팩트 또는 소스맵 설정)을 포함합니다. 검사는 모든 분기에 적용되고, 리포지토리가 공개인 경우에도 적용되며, 커밋이나 푸시가 파이프라인을 트리거하는지 여부에 관계없이 커밋하거나 푸시할 때 발생합니다. 이를 해제하려면 커밋이나 푸시만이 아니라 실행 효과를 명명해야 합니다. v2.1.211 이전에는 이 검사가 기본 분기로 범위가 지정되었습니다. 거기로의 푸시는 민감한 콘텐츠, 요청한 것과 비교하여 숨겨지거나 잘못 설명된 변경 사항, 리포지토리 외부에서 이식된 콘텐츠, 또는 요청한 검토를 우회하는 콘텐츠를 전달할 때 차단되었습니다.

356* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop`, 또는 `git stash clear`. 분류기는 이것이 커밋되지 않은 변경 사항을 버릴 것으로 가정합니다.365* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop`, 또는 `git stash clear`. 분류기는 이것이 커밋되지 않은 변경 사항을 삭제할 것으로 가정합니다.

357* `git commit --amend` (HEAD의 커밋이 이 세션에서 생성되지 않은 경우)366* 커밋이 이 세션에서 생성되지 않았을 때 `git commit --amend`

358* v2.1.198부터 `git commit --amend` (HEAD의 커밋이 이미 푸시된 경우). 메시지 전용 리워드는 차단되지 않습니다. `--amend -m` (새로 스테이징된 것이 없음), Claude가 이 세션 중에 생성한 커밋에서367* v2.1.198부터 커밋이 이미 푸시되었을 때 `git commit --amend`. 메시지 전용 단어 변경은 차단되지 않습니다: 새로 스테이징된 것이 없는 `--amend -m`. Claude가 이 세션 중에 생성한 커밋에서

359* `terraform destroy`, `pulumi destroy`, `cdk destroy`, 또는 `terragrunt destroy`, 그리고 리소스를 파괴하는 계획 적용368* `terraform destroy`, `pulumi destroy`, `cdk destroy`, 또는 `terragrunt destroy`, 그리고 리소스를 파괴하는 계획 적용

360 369 

361Claude Code v2.1.195 이상은 기본적으로 더 많은 범주를 차단합니다. 여러 개는 [환경](/docs/ko/auto-mode-config#define-trusted-infrastructure) 항목에 따라 다릅니다. 예를 들어 민감한 원격 대상 및 보호된 IaC 범위. 이를 구체적인 이름으로 좁힐 수 있습니다.370Claude Code v2.1.195 이상은 기본적으로 더 많은 범주를 차단합니다. 여러 개는 민감한 원격 대상 및 보호된 IaC 범위와 같은 [환경](/docs/ko/auto-mode-config#define-trusted-infrastructure) 항목에 따라 달라지며, 이를 구체적인 이름으로 좁힐 수 있습니다.

362 371 

363* 비밀 관리자에 쓰기, 또는 DNS 레코드 또는 TLS 인증서 변경372* 비밀 관리자에 쓰기, 또는 DNS 레코드 또는 TLS 인증서 변경

364* 인간이 승인하지 않은 풀 요청 병합, Claude의 자체 풀 요청 승인, 또는 CI 검사 비활성화373* 인간이 승인하지 않은 풀 요청 병합, Claude의 자체 풀 요청 승인, 또는 CI 검사 비활성화

365* `atlantis apply` 또는 봇의 `/deploy` 또는 `/merge`와 같은 자동화에 대한 명령 자체인 댓글 게시374* `atlantis apply` 또는 봇의 `/deploy` 또는 `/merge`와 같은 자동화에 대한 명령 자체인 댓글 게시

366* 프로덕션 기능 플래그 토글, 램핑 또는 삭제375* 프로덕션 기능 플래그 토글, 램프 또는 삭제

367* 보호된 IaC 범위에 인프라 변경 사항 적용, 또는 클러스터 노드 드레이닝 및 제거376* 보호된 IaC 범위에 인프라 변경 사항 적용, 또는 클러스터 노드 드레이닝 및 제거

368* 레이블 선택기 또는 `--all`과 같이 다른 사용자의 작업을 포착하는 공유 컴퓨팅 클러스터에 대한 쓰기377* 레이블 선택기 또는 `--all`과 같이 다른 사용자의 작업을 포착하는 명명된 리소스를 초과하는 공유 컴퓨팅 클러스터에 대한 쓰기

369* 모든 노드에서 실행되거나 클러스터 트래픽을 가로채는 Kubernetes 리소스 생성 (예: DaemonSets 및 admission webhooks)378* 모든 노드에서 실행되거나 클러스터 트래픽을 가로채는 Kubernetes 리소스 생성(예: DaemonSets 및 승인 웹훅)

370* 민감한 원격 대상으로의 대화형 셸 또는 포트 포워드379* 민감한 원격 대상으로의 대화형 셸 또는 포트 포워드

371* 로컬 서비스를 공개 인터넷에서 도달 가능하게 하는 터널 또는 역셸 열기380* 로컬 서비스를 공개 인터넷에서 도달 가능하게 하는 터널 또는 역셸 열기

372* 라이브 자격 증명 또는 토큰을 트랜스크립트 또는 파일에 인쇄381* 라이브 자격 증명 또는 토큰을 기록 또는 파일에 인쇄

373* [환경](/docs/ko/auto-mode-config#define-trusted-infrastructure)에서 민감한 데이터 위치로 나열된 위치에 액세스하거나 그곳에서 데이터 복사. v2.1.198부터 이는 또한 한 위치에서 항목이 제외하는 대상으로 데이터를 보내는 것을 차단합니다.382* [환경](/docs/ko/auto-mode-config#define-trusted-infrastructure)에서 민감한 데이터 위치로 나열된 위치에 액세스하거나 해당 위치에서 데이터 복사. v2.1.198부터 이는 또한 한 위치에서 항목이 제외하는 대상으로 데이터를 보내는 것을 차단합니다.

374* 내부 패키지 레지스트리를 공개 레지스트리로 우회하는 패키지 설치 라우팅. v2.1.198부터 이는 또한 대화에서 Claude에게 내부 레지스트리 또는 미러가 존재한다고 말했을 때 적용됩니다. 환경에만 나열된 경우가 아닙니다.383* 내부 패키지 레지스트리를 공개 레지스트리로 우회하는 패키지 설치 라우팅. v2.1.198부터 이는 또한 환경에 나열되지 않은 경우에도 대화에서 Claude에게 내부 레지스트리 또는 미러가 존재한다고 말했을 때 적용됩니다.

375* `--insecure`와 같은 안전 가드를 해제하는 플래그로 명령 실행384* `--insecure`와 같은 안전 가드를 해제하는 플래그로 명령 실행

376* `--dangerously-skip-permissions` 또는 `--no-sandbox`로 시작된 것과 같이 인간 승인 또는 샌드박스 없이 실행되는 자율 에이전트 루프 시작. v2.1.198부터 이는 또한 `--yes-always`로 시작된 러너와 같이 격리 및 작업별 승인이 비활성화된 상태로 제3자 에이전트 또는 평가 하네스를 실행하는 것을 포함합니다.385* `--dangerously-skip-permissions` 또는 `--no-sandbox`로 시작된 것과 같이 인간 승인이나 샌드박스 없이 실행되는 자율 에이전트 루프 시작. v2.1.198부터 이는 또한 `--yes-always`로 시작된 러너와 같이 격리 및 작업별 승인이 비활성화된 상태로 제3자 에이전트 또는 평가 하네스를 실행하는 것을 포함합니다.

377* [Chrome의 Claude](/docs/ko/chrome) 브라우저 작업 (페이지 콘텐츠, 쿠키 또는 자격 증명을 출처 외부로 보낼 수 있음)386* [Chrome의 Claude](/docs/ko/chrome) 브라우저 작업으로 페이지 콘텐츠, 쿠키 또는 자격 증명을 출처 외부로 보낼 수 있음

378 387 

379Claude Code v2.1.198 이상은 또한 기본적으로 다음을 차단합니다:388Claude Code v2.1.198 이상은 또한 기본적으로 다음을 차단합니다:

380 389 

381* 특정 명명된 경로가 아닌 와일드카드, glob 또는 나이 필터로 `/tmp`, `$TMPDIR` 또는 다른 공유 스크래치 또는 캐시 디렉토리의 파일 삭제390* 와일드카드, 글로브 또는 나이 필터가 아닌 특정 명명된 경로로 `/tmp`, `$TMPDIR` 또는 다른 공유 스크래치 또는 캐시 디렉토리의 파일 삭제

382* 자신의 메시지가 해당 수신자에게 이러한 세부 정보를 승인하지 않았을 때 다른 사람 또는 공유 시스템으로 전송, 업로드, 게시 또는 작성된 콘텐츠에 민감한 세부 정보 포함. PR 및 이슈 본문, 커밋 메시지, 그리고 댓글은 리포지토리가 신뢰 경계 외부이거나 공개일 때 이러한 종류의 아웃바운드 콘텐츠로 계산됩니다. 조직의 자체 공개 리포지토리 포함. 내부 파일 경로, 코드명, API 응답 데이터 (예: 이메일 또는 계정 식별자), 그리고 인프라 식별자는 민감한 세부 정보로 계산됩니다. PR, 이슈, 그리고 커밋 메시지 범위 지정은 Claude Code v2.1.200 이상이 필요합니다. PR 또는 이슈 본문의 API 응답의 라이브 개인 데이터 (예: 이메일 주소, 계정 또는 조직 식별자, 또는 사용 메트릭)는 리포지토리의 가시성 또는 신뢰 경계와 관계없이 해당 세부 정보와 수신자를 명명해야 합니다. 이 검사는 Claude Code v2.1.203 이상이 필요합니다.391* 자신의 메시지가 해당 수신자에게 이러한 세부 정보를 승인하지 않았을 때 전송, 업로드, 게시 또는 다른 사람이나 공유 시스템에 작성된 콘텐츠에 민감한 세부 정보 포함. PR 및 이슈 본문, 커밋 메시지, 그리고 댓글은 리포지토리가 신뢰 경계 외부이거나 공개일 때 이러한 종류의 아웃바운드 콘텐츠로 계산됩니다. 조직의 자체 공개 리포지토리 포함; 내부 파일 경로, 코드명, 이메일 또는 계정 식별자와 같은 라이브 API 응답 데이터, 그리고 인프라 식별자는 민감한 세부 정보로 계산됩니다. PR, 이슈, 그리고 커밋 메시지 범위 지정에는 Claude Code v2.1.200 이상이 필요합니다. PR 또는 이슈 본문의 API 응답의 라이브 개인 데이터(예: 이메일 주소, 계정 또는 조직 식별자, 또는 사용 메트릭)에는 리포지토리의 가시성이나 신뢰 경계에 관계없이 해당 세부 정보와 수신자를 명명해야 합니다. 이 검사에는 Claude Code v2.1.203 이상이 필요합니다.

383* Claude Code의 자체 tmux 창으로 키스트로크를 보내 자체 인터페이스를 구동합니다. 분류기는 이를 Claude가 자체 권한 또는 감시를 변경하는 것으로 취급합니다.392* Claude Code의 자체 tmux 창으로 키스트로크를 보내 자체 인터페이스를 구동합니다. 분류기는 이를 Claude가 자체 권한이나 감시를 변경하는 것으로 취급합니다.

384 393 

385Claude Code v2.1.200 이상은 또한 기본적으로 다음을 차단합니다:394Claude Code v2.1.200 이상은 또한 기본적으로 다음을 차단합니다:

386 395 

387* 인증, 액세스 제어, 입력 검증 또는 샌드박싱과 같은 보안 동작을 보호하는 테스트 또는 어설션 주석 처리, 삭제 또는 강제 통과396* 인증, 액세스 제어, 입력 검증 또는 샌드박싱과 같은 보안 동작을 보호하는 테스트 또는 어설션을 주석 처리, 삭제 또는 강제 통과

388* Claude가 세션에서 생성하지 않은 상태 저장 리소스 삭제 또는 해체 (더 구체적인 삭제 규칙이 적용되지 않고 해당 리소스를 명명하지 않은 경우)397* 세션에서 Claude가 생성하지 않은 상태 저장 리소스 삭제 또는 해제. 더 구체적인 삭제 규칙이 적용되지 않고 해당 리소스를 명명하지 않았을 때

389* API 기본 URL, 프록시 엔드포인트, 웹훅 수신자 또는 레지스트리 미러를 작업에 맞지 않는 제3자 호스트로 재지정 (`.env.example`과 같은 예제 파일 포함)398* API 기본 URL, 프록시 엔드포인트, 웹훅 수신자 또는 레지스트리 미러를 작업에 맞지 않는 제3자 호스트로 다시 가리키기. `.env.example`과 같은 예제 파일 포함

390* `git remote set-url` 또는 `git remote add`로 푸시가 가는 위치 변경 (새 원격을 명명하지 않은 경우)399* `git remote set-url` 또는 `git remote add`로 푸시가 가는 위치 변경. 새 원격을 명명하지 않은 경우

391* 공개로 알려진 리포지토리로 비밀 또는 개인 또는 신뢰할 수 있는 데이터 푸시, 또는 해당 리포지토리의 자체 작업의 일부가 아닌 기밀 자료 푸시. dotfiles 리포지토리의 자체 주제는 개인 또는 신뢰할 수 있는 데이터의 유일한 예외이며, 개인 리포지토리에서 공개 표면에 도달하는 콘텐츠는 동일한 방식으로 차단됩니다. 두 개선 모두 Claude Code v2.1.203 이상이 필요합니다. v2.1.203 이전에는 개인 데이터가 기밀 자료와 함께 그룹화되었고 해당 리포지토리의 자체 작업의 일부가 아닐 때만 차단되었습니다. 리포지토리의 가시성이 확립되지 않으면 분류기는 그것만으로 차단하지 않습니다. 대신 다른 규칙에 대해 콘텐츠를 판단합니다.400* 공개로 알려진 리포지토리로 비밀이나 개인 또는 신뢰할 수 있는 데이터 푸시, 또는 해당 리포지토리의 자체 작업의 일부가 아닌 기밀 자료를 거기로 푸시. 닷파일 리포지토리의 자체 주제는 개인 또는 신뢰할 수 있는 데이터의 유일한 예외이며, 개인 리포지토리에서 공개 표면에 도달하는 콘텐츠는 동일한 방식으로 차단됩니다. 두 개선 모두 Claude Code v2.1.203 이상이 필요합니다. v2.1.203 이전에는 개인 데이터가 기밀 자료와 함께 그룹화되었고 해당 리포지토리의 자체 작업의 일부가 아닐 때만 차단되었습니다. 리포지토리의 가시성이 확립되지 않으면 분류기는 그것만으로 차단하지 않습니다. 대신 다른 규칙에 대해 콘텐츠를 판단합니다.

392* 다른 리포지토리 또는 조직에 대한 풀 요청 열기, `gh repo fork`로 포킹, 또는 제3자 리포지토리로 푸시 (외부 대상을 명명하지 않은 경우)401* 다른 리포지토리 또는 조직에 대한 풀 요청 열기, `gh repo fork`로 포킹, 또는 제3자 리포지토리로 푸시. 해당 외부 대상을 명명하지 않은 경우

393 402 

394Claude Code v2.1.203 이상은 또한 기본적으로 다음을 차단합니다:403Claude Code v2.1.203 이상은 또한 기본적으로 다음을 차단합니다:

395 404 

396* 민감한 로컬 저장소의 콘텐츠, 또는 이름, 경로 또는 유형이 민감한 것으로 표시하는 파일의 콘텐츠가 커밋, 푸시, PR 또는 이슈 텍스트, gist 또는 붙여넣기, 또는 패키지 게시에 진입 (소스와 대상을 모두 명명하지 않은 경우). 세션 트랜스크립트 및 대화 로그, SSH 키, 클라우드 자격 증명, 브라우저 프로필, 셸 히스토리와 같은 자격 증명 및 구성 점 폴더, 그리고 사용자 데이터 내보내기는 모두 계산되며, 리포지토리가 개인이어도 지워지지 않습니다.405* 민감한 로컬 저장소의 콘텐츠, 또는 이름, 경로 또는 유형이 민감한 것으로 표시하는 파일의 콘텐츠가 커밋, 푸시, PR 또는 이슈 텍스트, gist 또는 붙여넣기, 또는 패키지 게시에 들어가기. 소스와 대상을 모두 명명하지 않은 경우. 세션 기록 및 대화 로그, SSH 키, 클라우드 자격 증명, 브라우저 프로필, 셸 기록과 같은 자격 증명 및 구성 점 폴더, 그리고 사용자 데이터 내보내기 모두 계산됩니다. 리포지토리가 개인이어도 이를 해제하지 않습니다.

397 406 

398Claude Code v2.1.205 이상은 또한 기본적으로 다음을 차단합니다:407Claude Code v2.1.205 이상은 또한 기본적으로 다음을 차단합니다:

399 408 

400* Claude Code 세션 트랜스크립트, `~/.claude/projects/` 또는 구성된 구성 디렉토리 아래의 `.jsonl` 히스토리 파일에 쓰기 (직접 또는 셸 명령을 통해). 규칙은 또한 Claude Code가 자체 검사를 위해 각 트랜스크립트 항목에 추가하는 메타데이터 라인을 포함합니다. 트랜스크립트 읽기는 차단되지 않습니다.409* Claude Code 세션 기록, `~/.claude/projects/` 또는 구성된 구성 디렉토리 아래의 `.jsonl` 기록 파일에 쓰기. 셸 명령을 통해 직접 또는 간접적으로. 규칙은 또한 Claude Code가 자체 검사를 위해 각 기록 항목에 추가하는 메타데이터 줄을 포함합니다. 기록 읽기는 차단되지 않습니다.

401* `rm -rf "$VAR"` 또는 `Remove-Item -Recurse -Force $dir`과 같은 재귀적 강제 삭제. 대상이 분류기가 보는 대화의 어디에도 할당되지 않은 셸 변수 또는 그것에 루트된 glob입니다. 값은 이전 명령 출력에서만 나왔으며, 분류기는 절대 받지 않으므로 분류기는 삭제 대상을 다른 삭제 규칙에 대해 확인할 수 없습니다. 블록은 삭제되는 정확한 경로를 명명하거나 Claude가 명령에 작성된 해결된 리터럴 경로로 삭제를 다시 실행할 때 지워집니다. 분류기가 해결할 수 있는 대상의 삭제는 영향을 받지 않습니다. 베어 `*` 또는 `/*` 또는 `\*`로 끝나는 `Remove-Item` 대상은 분류기에 도달하지 않습니다. Claude Code는 [이를 직접 거부합니다](#remove-item-in-powershell).410* 대화에서 분류기가 보는 어디에도 할당되지 않은 셸 변수 또는 글로브가 루트인 재귀적 강제 삭제(예: `rm -rf "$VAR"` 또는 `Remove-Item -Recurse -Force $dir`). 값은 이전 명령 출력에서만 나왔으며, 분류기는 절대 받지 않으므로 분류기는 삭제 대상을 다른 삭제 규칙에 대해 확인할 수 없습니다. 삭제되는 정확한 경로를 명명하거나 Claude가 해결된 리터럴 경로가 명령에 작성된 상태로 삭제를 다시 실행할 때 블록이 해제됩니다. 분류기가 대상을 해결할 수 있는 삭제는 영향을 받지 않습니다. 베어 `*` 또는 `/*` 또는 `\*`로 끝나는 `Remove-Item` 대상은 분류기에 도달하지 않습니다: Claude Code는 [이를 직접 거부합니다](#remove-item-in-powershell).

402 411 

403Claude Code v2.1.257 이상은 또한 기본적으로 다음을 차단합니다:412Claude Code v2.1.257 이상은 또한 기본적으로 다음을 차단합니다:

404 413 

405* `169.254.169.254`와 같은 클라우드 인스턴스 메타데이터 엔드포인트에서 자격 증명 요청, 또는 머신의 자체 서비스 계정 또는 노드 ID로 클라우드, 클러스터 또는 레지스트리 호출을 명시적으로 인증414* `169.254.169.254`와 같은 클라우드 인스턴스 메타데이터 엔드포인트에서 자격 증명 요청, 또는 머신의 자체 서비스 계정 또는 노드 ID로 클라우드, 클러스터 또는 레지스트리 호출을 명시적으로 인증

406* 직접 요청이 아닌 다른 경로로 공개 호스트에 도달 (예: 터널, 역셸, 또는 외부를 가리키도록 다시 작성된 리졸버 또는 프록시 구성)415* 직접 요청이 아닌 다른 경로로 공개 호스트에 도달(예: 터널, 역셸, 또는 외부를 가리키도록 다시 작성된 리졸버 또는 프록시 구성)

407* 호스트가 아닌 작업에 속하는 자격 증명 읽기 (예: 노드 인증서 또는 노드의 컨테이너 레지스트리 인증)416* 호스트가 아닌 작업에 속하는 자격 증명 읽기(예: 노드 인증서 또는 노드의 컨테이너 레지스트리 인증)

408* Claude가 시작하지 않은 형제 컨테이너, 포드 또는 VM에 연결 또는 스캔, 또는 그 아래의 노드417* Claude가 시작하지 않은 형제 컨테이너, 포드 또는 VM에 연결 또는 스캔, 또는 아래의 노드

409 418 

410Claude Code가 이 중 하나를 허용하도록 의도된 곳에서 실행되면 `autoMode.environment`의 [호스트 격리 항목](/docs/ko/auto-mode-config#define-trusted-infrastructure)에서 해당 설정을 설명하세요.419Claude Code가 이 중 하나를 허용하도록 의도된 곳에서 실행되면 `autoMode.environment`의 [호스트 포함 항목](/docs/ko/auto-mode-config#define-trusted-infrastructure)에서 해당 설정을 설명하세요.

411 420 

412Claude Code v2.1.261 이상은 또한 기본적으로 다음을 차단합니다:421Claude Code v2.1.261 이상은 또한 기본적으로 다음을 차단합니다:

413 422 

414* 메시지, PR 또는 이슈 텍스트, 문서 또는 링크가 열리거나 가져올 다른 곳에 공개 붙여넣기, 다이어그램 또는 데이터 공유 서비스에 대한 링크 게시 또는 작성 (URL 자체가 공유되는 콘텐츠를 전달할 때). 해당 서비스를 명명하지 않은 경우.423* 메시지, PR 또는 이슈 텍스트, 문서 또는 링크가 열리거나 가져올 다른 곳에서 공개 붙여넣기, 다이어그램 또는 데이터 공유 서비스로의 링크 게시 또는 작성. URL 자체가 공유되는 콘텐츠를 전달할 때. 해당 서비스를 명명하지 않은 경우

415 424 

416**기본적으로 허용됨**:425**기본적으로 허용됨**:

417 426 


419* 잠금 파일 또는 매니페스트에 선언된 종속성 설치428* 잠금 파일 또는 매니페스트에 선언된 종속성 설치

420* `.env` 읽기 및 자격 증명을 일치하는 API로 전송429* `.env` 읽기 및 자격 증명을 일치하는 API로 전송

421* 읽기 전용 HTTP 요청430* 읽기 전용 HTTP 요청

422* 작업 중인 리포지토리의 모든 분기로 푸시 (기본 분기 포함). 이름이 배포 또는 게시 대상으로 표시하는 비기본 분기 (예: `production` 또는 `gh-pages`)는 포함되지 않습니다. 분류기는 자체 조건에서 거기로의 푸시를 판단합니다. 푸시의 콘텐츠는 여전히 다른 규칙에 대해 검사되고, [`permissions.deny` 규칙](/docs/ko/permissions#manage-permissions)은 여전히 모든 모드에서 [작성된 대로](/docs/ko/permissions#bash-rule-limits) 푸시 명령을 차단할 수 있으며, 원격의 자체 분기 보호는 여전히 적용됩니다. v2.1.211 이전에는 시작한 분기, Claude가 생성한 분기, 그리고 기본 분기로의 일상적인 푸시만 기본적으로 허용되었고, v2.1.203 이전에는 기본 분기로의 모든 직접 푸시가 차단되었습니다.431* 작업 중인 리포지토리의 모든 분기로 푸시. 기본 분기 포함. 이름이 배포 또는 게시 대상으로 표시하는 비기본 분기(예: `production` 또는 `gh-pages`)는 포함되지 않습니다: 분류기는 거기로의 푸시를 자체 조건에 따라 판단합니다. 푸시의 콘텐츠는 여전히 다른 규칙에 대해 확인되고, [`permissions.deny` 규칙](/docs/ko/permissions#manage-permissions)은 여전히 모든 모드에서 [작성된 대로](/docs/ko/permissions#bash-rule-limits) 푸시 명령을 차단할 수 있으며, 원격의 자체 분기 보호는 여전히 적용됩니다. v2.1.211 이전에는 시작한 분기, Claude가 생성한 분기, 그리고 기본 분기로의 일상적인 푸시만 기본적으로 허용되었으며, v2.1.203 이전에는 기본 분기로의 모든 직접 푸시가 차단되었습니다.

423 432 

424Claude Code v2.1.195 이상은 또한 기본적으로 다음을 허용합니다:433Claude Code v2.1.195 이상은 또한 기본적으로 다음을 허용합니다:

425 434 

426* 같은 세션에서 Claude가 이전에 생성한 정확한 작업 삭제435* 같은 세션에서 Claude가 이전에 생성한 정확한 작업 삭제

427* 작업의 일부로 보안 관련 코드, 구성 및 위협 모델 읽기, 검토 또는 작성436* 작업의 일부로 보안 관련 코드, 구성 및 위협 모델 읽기, 검토 또는 작성

428* 같은 다중 에이전트 세션에서 함께 작업하는 에이전트 간의 메시지437* 같은 다중 에이전트 세션에서 함께 작업하는 에이전트 간의 메시지

429* [`environment`](/docs/ko/auto-mode-config#define-trusted-infrastructure)에 나열한 신뢰할 수 있는 도메인, 버킷 및 서비스로 데이터 전송. 이는 데이터 흐름만 포함하며, 동일한 인프라에 대한 파괴적 또는 자격 증명 작업은 포함하지 않습니다.438* [`environment`](/docs/ko/auto-mode-config#define-trusted-infrastructure)에 나열한 신뢰할 수 있는 도메인, 버킷 및 서비스로 데이터 전송. 이는 동일한 인프라에 대한 파괴적이거나 자격 증명 작업이 아닌 데이터 흐름만 포함합니다.

430* [Chrome의 Claude](/docs/ko/chrome) (신뢰할 수 있는 내부 도메인, localhost 또는 명명한 URL로의 탐색)439* [Chrome의 Claude](/docs/ko/chrome) 신뢰할 수 있는 내부 도메인, localhost 또는 명명한 URL로의 탐색

431 440 

432샌드박스 명령은 기본적으로 네트워크 액세스를 받지 않습니다. Claude는 명령이 필요로 하는 호스트를 명령 자체에 명명하고, 분류기는 명령과 함께 이를 검토하며, 승인된 목록은 해당 명령만을 위해 이러한 호스트를 엽니다. [명령별 허용 도메인](/docs/ko/sandboxing#per-command-allowed-domains-in-auto-mode)은 목록이 열 수 있는 것과 명령이 나열되지 않은 호스트에 도달할 때 어떤 일이 발생하는지를 다룹니다.441샌드박스된 명령은 기본적으로 네트워크 액세스를 받지 않습니다. Claude는 명령이 필요한 호스트를 명령 자체에 명명하고, 분류기는 명령과 함께 이를 검토하며, 승인된 목록은 해당 명령만을 위해 이러한 호스트를 엽니다. [명령별 허용 도메인](/docs/ko/sandboxing#per-command-allowed-domains-in-auto-mode)은 목록이 열 수 있는 것과 열 수 없는 것, 그리고 명령이 나열되지 않은 호스트에 도달할 때 발생하는 일을 다룹니다.

433 442 

434`claude auto-mode defaults`를 실행하여 전체 규칙 목록을 JSON으로 인쇄하세요. 일상적인 작업이 차단되면 관리자는 `autoMode.environment` 설정을 통해 신뢰할 수 있는 리포지토리, 버킷 및 서비스를 추가할 수 있습니다. [자동 모드 구성](/docs/ko/auto-mode-config)을 참조하세요.443`claude auto-mode defaults`를 실행하여 전체 규칙 목록을 JSON으로 인쇄하세요. 일상적인 작업이 차단되면 관리자는 `autoMode.environment` 설정을 통해 신뢰할 수 있는 리포지토리, 버킷 및 서비스를 추가할 수 있습니다: [자동 모드 구성](/docs/ko/auto-mode-config)을 참조하세요.

435 444 

436작업 디렉토리의 모든 분기로 푸시 및 요청과 일치하는 풀 요청 생성은 프롬프트 없이 실행됩니다. 단, 푸시 또는 풀 요청이 [차단 목록](#what-the-classifier-blocks-by-default) (예: 리포지토리를 떠나는 비밀 또는 민감한 데이터, 또는 다른 리포지토리 또는 조직을 대상으로 하는 풀 요청)에 해당하지 않는 경우입니다. 자동 모드에 머물면서 이 명령 전에 인간 체크포인트를 요구하려면 `permissions.ask` 규칙을 추가하세요. 이는 명령 [작성된 대로](/docs/ko/permissions#bash-rule-limits)와 일치합니다. [일반적인 경계](/docs/ko/auto-mode-config#common-boundaries)를 참조하세요.445작업 중인 리포지토리의 모든 분기로 푸시하고 요청과 일치하는 풀 요청을 생성하는 것은 프롬프트 없이 실행됩니다. 푸시 또는 풀 요청이 [차단 목록](#what-the-classifier-blocks-by-default)에 해당하지 않는 한(예: 리포지토리를 떠나는 비밀이나 민감한 데이터, 또는 다른 리포지토리 또는 조직을 대상으로 하는 풀 요청). 자동 모드에 머물면서 이러한 명령 전에 인간 체크포인트를 요구하려면 `permissions.ask` 규칙을 추가하세요. 이는 명령 [작성된 대로](/docs/ko/permissions#bash-rule-limits)와 일치합니다: [일반적인 경계](/docs/ko/auto-mode-config#common-boundaries)를 참조하세요.

437 446 

438<h3 id="first-read-outside-the-working-directories">447<h3 id="first-read-outside-the-working-directories">

439 작업 디렉토리 외부의 첫 번째 읽기448 작업 디렉토리 외부의 첫 번째 읽기

440</h3>449</h3>

441 450 

442[`permissions.blockReadsOutsideWorkingDirectories`](/docs/ko/settings-reference#permissions-blockreadsoutsideworkingdirectories)가 꺼져 있는 동안 파일 읽기는 자동 모드에서 프롬프트 없이 실행됩니다. [작업 디렉토리](/docs/ko/permissions#working-directories) 외부의 경로를 포함합니다. Claude가 Read, Grep 또는 Glob 도구를 처음 사용할 때 그 외부의 경로에서 Claude Code는 해당 읽기를 계속 허용할지 여부를 묻습니다.451[`permissions.blockReadsOutsideWorkingDirectories`](/docs/ko/settings-reference#permissions-blockreadsoutsideworkingdirectories)가 꺼져 있는 동안 파일 읽기는 자동 모드에서 프롬프트 없이 실행됩니다. [작업 디렉토리](/docs/ko/permissions#working-directories) 외부의 경로에서도 포함. Claude가 처음으로 Read, Grep 또는 Glob 도구를 작업 디렉토리 외부의 경로에서 사용할 때 Claude Code는 이러한 읽기를 계속 허용할지 여부를 묻습니다.

443 452 

444프롬프트는 비대화형 `-p` 실행 또는 백그라운드 세션에 나타나지 않습니다. 거기서 읽기는 이전처럼 실행됩니다.453프롬프트는 비대화형 `-p` 실행이나 백그라운드 세션에 나타나지 않습니다. 거기서의 읽기는 이전과 같이 실행됩니다.

445 454 

446답변이 무엇이든 Claude는 계속 작업합니다:455답변에 관계없이 Claude는 계속 작업합니다:

447 456 

448* **계속 허용**: 읽기가 실행되고, 작업 디렉토리 외부의 이후 읽기는 이전처럼 실행되며, Claude Code는 프롬프트가 다시 나타나지 않도록 답변을 기록합니다.457* **계속 허용**: 읽기가 실행되고, 작업 디렉토리 외부의 이후 읽기는 이전과 같이 실행되며, Claude Code는 프롬프트가 다시 나타나지 않도록 답변을 기록합니다.

449* **지금부터 차단**: 읽기가 거부되고, Claude Code는 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/ko/settings-reference#permissions-blockreadsoutsideworkingdirectories)를 사용자 설정에서 `true`로 설정합니다. 이는 파일 도구가 모든 이후 세션 및 모든 권한 모드에서 이러한 읽기를 거부하게 합니다. 나중에 Claude가 이러한 경로를 읽도록 하려면 `/add-dir`로 디렉토리를 추가하거나 설정을 제거하세요.458* **지금부터 차단**: 읽기가 거부되고, Claude Code는 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/ko/settings-reference#permissions-blockreadsoutsideworkingdirectories)를 사용자 설정에서 `true`로 설정합니다. 이는 파일 도구가 모든 이후 세션 및 모든 권한 모드에서 이러한 읽기를 거부하게 합니다. 나중에 Claude가 이러한 경로를 읽도록 하려면 `/add-dir`로 디렉토리를 추가하거나 설정을 제거하세요.

450* **다음에 다시 묻기**: 읽기가 거부되고, 작업 디렉토리 외부의 다음 읽기가 다시 프롬프트합니다.459* **다음에 다시 묻기**: 읽기가 거부되고, 작업 디렉토리 외부의 다음 읽기는 다시 프롬프트합니다.

451 460 

452<h3 id="boundaries-you-state-in-conversation">461<h3 id="boundaries-you-state-in-conversation">

453 대화에서 명시한 경계462 대화에서 명시한 경계

454</h3>463</h3>

455 464 

456분류기는 대화에서 명시한 경계를 블록 신호로 취급합니다. "푸시하지 마" 또는 "배포하기 전에 검토할 때까지 기다려"라고 Claude에게 말하면 분류기는 기본 규칙이 허용하더라도 일치하는 작업을 차단합니다. 경계는 이후 메시지에서 해제할 때까지 유효합니다. Claude의 자체 판단이 조건이 충족되었다는 것은 이를 해제하지 않습니다.465분류기는 대화에서 명시한 경계를 차단 신호로 취급합니다. "푸시하지 마" 또는 "배포하기 전에 검토할 때까지 기다려"라고 Claude에게 말하면 분류기는 기본 규칙이 허용하더라도 일치하는 작업을 차단합니다. 경계는 이후 메시지에서 해제할 때까지 유효합니다. Claude의 자체 판단이 조건이 충족되었다는 것은 이를 해제하지 않습니다.

457 466 

458경계는 규칙으로 저장되지 않습니다. 분류기는 각 검사에서 트랜스크립트에서 다시 읽으므로 [컨텍스트 압축](/docs/ko/costs#reduce-token-usage)이 경계를 명시한 메시지를 제거하면 경계가 손실될 수 있습니다. 하드 보장을 위해 [거부 규칙](/docs/ko/permissions#permission-rule-syntax)을 대신 추가하세요.467경계는 규칙으로 저장되지 않습니다. 분류기는 각 검사에서 기록을 다시 읽으므로 [컨텍스트 압축](/docs/ko/costs#reduce-token-usage)이 경계를 명시한 메시지를 제거하면 경계가 손실될 수 있습니다. 확실한 보장을 위해 [거부 규칙](/docs/ko/permissions#permission-rule-syntax)을 대신 추가하세요.

459 468 

460<h3 id="approvals-you-state-in-conversation">469<h3 id="approvals-you-state-in-conversation">

461 승인 명시470 대화에서 명시한 승인

462</h3>471</h3>

463 472 

464차단된 작업이 허용된다고 Claude에게 말하면 분류기는 이를 승인으로 읽고 블록을 지울 수 있습니다. 어떻게 표현했는지에 따라 작업이 실행되는지, 그리고 승인이 얼마나 멀리 도달하는지가 결정됩니다:473Claude에게 차단된 작업이 허용된다고 말하면 분류기는 이를 승인으로 읽고 차단을 해제할 수 있습니다. 표현 방식이 작업 실행 여부와 승인이 도달하는 범위를 결정합니다:

465 474 

466* **작업과 그 세부 사항을 명명하세요**: 메시지는 작업과 그것을 위험하게 만드는 구체적인 것 (예: 강제 푸시의 분기)을 명명해야 합니다. 동사만 명명하는 것은 아무것도 지우지 않으므로 "강제 푸시할 수 있습니다"는 블록을 제자리에 두고 있습니다.475* **작업과 세부 사항 명명**: 메시지는 작업과 위험하게 만드는 특정 사항(예: 강제 푸시의 분기)을 명명해야 합니다. 동사만 명명하는 것은 아무것도 해제하지 않으므로 "강제 푸시할 수 있습니다"는 차단을 제자리에 두고 있습니다.

467* **한 작업을 포함하도록 예상하세요**: 승인은 명명한 파괴적 작업을 포함하므로 나중의 작업은 승인을 상시로 부여하지 않으면 다시 차단됩니다. 일상적인 패턴을 한 번에 하나씩 승인하는 것을 중지하려면 [`autoMode.allow`](/docs/ko/auto-mode-config#override-the-block-and-allow-rules)에 추가하세요.476* **한 작업을 포함하도록 예상**: 승인은 명명한 파괴적 작업을 포함하므로 이후 작업은 승인을 부여하지 않으면 다시 차단됩니다. 일상적인 패턴을 한 번에 하나씩 승인하는 것을 중지하려면 [`autoMode.allow`](/docs/ko/auto-mode-config#override-the-block-and-allow-rules)에 추가하세요.

468* **일부 블록은 제자리에 유지됩니다**: [분류기의 우선 순위 순서](/docs/ko/auto-mode-config#override-the-block-and-allow-rules)는 승인이 도달할 수 있는 블록을 설정합니다. 이를 실행할 수 없는 단계를 실행하려면 [자동 모드를 떠나](#switch-permission-modes) 권한 프롬프트에 답하세요.477* **일부 차단은 제자리에 유지됨**: [분류기의 우선 순위 순서](/docs/ko/auto-mode-config#override-the-block-and-allow-rules)는 승인이 도달할 수 있는 차단을 설정합니다. 이를 실행할 수 없는 단계를 실행하려면 [자동 모드를 떠나고](#switch-permission-modes) 권한 프롬프트에 답하세요.

469 478 

470<h3 id="when-auto-mode-falls-back">479<h3 id="when-auto-mode-falls-back">

471 자동 모드가 폴백할 때480 자동 모드가 폴백할 때

472</h3>481</h3>

473 482 

474자동 모드가 세션의 작업을 승인할 수 없을 때 어떤 일이 발생하는지는 경우에 따라 다릅니다:483자동 모드가 세션의 작업을 승인할 수 없을 때 발생하는 일은 경우에 따라 다릅니다:

475 484 

476* **차단된 작업**: Claude Code는 알림을 표시하고 `/permissions` 아래 **최근 거부됨** 탭에 작업을 나열합니다. 여기서 `r`을 눌러 수동 승인으로 다시 시도할 수 있습니다. 분류기가 [작업에 대한 판정을 생성하지 않을 때](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action) (자동 모드와 별개의 안전 검사가 분류기의 자체 요청을 거부했거나 응답이 파싱되지 않았기 때문에) Claude Code는 알림 또는 **최근 거부됨** 항목 없이 작업을 거부합니다.485* **차단된 작업**: Claude Code는 알림을 표시하고 `/permissions` 아래 **최근 거부됨** 탭에 작업을 나열합니다. 여기서 `r`을 눌러 수동 승인으로 다시 시도할 수 있습니다. 분류기가 [작업에 대한 판정을 생성하지 않을 때](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action). 자동 모드와 별개인 안전 검사가 분류기의 자체 요청을 거부했거나 응답이 구문 분석되지 않았기 때문에 Claude Code는 알림이나 **최근 거부됨** 항목 없이 작업을 거부합니다.

477* **반복된 차단**: 분류기가 작업을 연속으로 3번 또는 총 20번 차단하면 자동 모드가 일시 중지되고 Claude Code는 프롬프트를 재개합니다. 프롬프트된 작업을 승인하면 자동 모드가 재개됩니다. 이 임계값은 구성할 수 없습니다. 허용된 작업은 연속 카운터를 재설정하는 반면 총 카운터는 세션 동안 지속되고 자체 한계가 폴백을 트리거할 때만 재설정됩니다. Claude Code는 [자동 모드와 별개의 안전 검사가 분류기의 요청을 거부할 때](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action) 거부를 어느 임계값에도 계산하지 않습니다. 연결된 항목은 Claude Code가 이러한 거부를 처리하는 방법을 다룹니다.486* **반복된 차단**: 분류기가 작업을 연속으로 3번 또는 총 20번 차단하면 자동 모드가 일시 중지되고 Claude Code는 프롬프트를 다시 시작합니다. 프롬프트된 작업을 승인하면 자동 모드가 재개됩니다. 이러한 임계값은 구성할 수 없습니다. 허용된 작업은 연속 카운터를 재설정하는 반면 총 카운터는 세션에 대해 유지되고 자체 제한이 폴백을 트리거할 때만 재설정됩니다. Claude Code는 [자동 모드와 별개인 안전 검사가 분류기의 요청을 거부할 때](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action) 거부를 어느 임계값에도 계산하지 않습니다. 연결된 항목은 Claude Code가 이러한 거부를 처리하는 방법을 다룹니다.

478* **프롬프트할 수 없는 세션**: [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags) 없는 [비대화형](/docs/ko/headless) `-p` 실행은 폴백할 프롬프트가 없습니다. 반복된 차단이 임계값에 도달하면 작업이 실행되지 않고 Claude는 계속 작업합니다. [자동 모드와 별개의 안전 검사가 분류기의 요청을 거부할 때](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action)도 동일하게 적용됩니다. Claude Code는 어느 경우든 실행을 중지하지 않습니다.487* **프롬프트할 수 없는 세션**: [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags) 없는 [비대화형](/docs/ko/headless) `-p` 실행은 폴백할 프롬프트가 없습니다. 반복된 차단이 임계값에 도달하면 작업이 실행되지 않고 Claude는 계속 작업합니다. [자동 모드와 별개인 안전 검사가 분류기의 요청을 거부할 때](/docs/ko/errors#auto-mode-cannot-determine-the-safety-of-an-action)도 동일하게 적용됩니다. Claude Code는 어느 경우든 실행을 중지하지 않습니다.

479* **검사 중 모드 전환**: 분류기 검사가 보류 중일 때 권한 모드를 전환하면 Claude Code는 새 모드가 요청하지 않았을 판정을 버립니다. 대신 승인을 위해 프롬프트되거나 [`dontAsk` 모드](#allow-only-pre-approved-tools-with-dontask-mode)에서 작업이 자동 거부됩니다.488* **서버에서 판정 없음**: [서버 측 분류기 검토](#server-side-classifier-review) 아래에서 Claude Code는 서버가 판정을 제공하지 않는 작업을 거부하고, 연속으로 판정이 없는 10개의 응답 후 턴을 중지합니다. [서버가 안전 판정을 반환하지 않음](/docs/ko/errors#the-server-returned-no-safety-verdict)을 참조하세요.

489* **검사 중 모드 전환**: 분류기 검사가 보류 중일 때 권한 모드를 전환하면 Claude Code는 새 모드가 요청하지 않았을 판정을 버립니다. 대신 승인을 위해 프롬프트되거나 작업이 [`dontAsk` 모드](#allow-only-pre-approved-tools-with-dontask-mode)에서 자동 거부됩니다.

480 490 

481반복된 차단은 일반적으로 분류기가 인프라에 대한 컨텍스트를 놓치고 있음을 의미합니다. `/feedback`을 사용하여 거짓 양성을 보고하거나 관리자가 [신뢰할 수 있는 인프라를 구성](/docs/ko/auto-mode-config)하도록 하세요.491반복된 차단은 일반적으로 분류기가 인프라에 대한 컨텍스트를 놓치고 있음을 의미합니다. `/feedback`을 사용하여 거짓 양성을 보고하거나 관리자가 [신뢰할 수 있는 인프라를 구성](/docs/ko/auto-mode-config)하도록 하세요.

482 492 


484 494 

485<AccordionGroup>495<AccordionGroup>

486 <Accordion title="분류기가 작업을 평가하는 방법">496 <Accordion title="분류기가 작업을 평가하는 방법">

487 각 작업은 고정된 결정 순서를 거칩니다. 첫 번째 일치하는 단계가 승리합니다:497 각 작업은 고정된 결정 순서를 거칩니다. 첫 번째 일치 단계가 승리합니다:

488 498 

489 1. [허용, 요청 또는 거부 규칙](/docs/ko/permissions#manage-permissions)과 일치하는 작업은 즉시 해결됩니다. 이러한 예외가 있습니다:499 1. [허용, 요청 또는 거부 규칙](/docs/ko/permissions#manage-permissions)과 일치하는 작업은 다음 예외를 제외하고 즉시 해결됩니다:

490 * [보호된 경로](#protected-paths)에 대한 쓰기는 허용 규칙이 일치할 때도 분류기로 라우팅됩니다, 그리고 Claude Code v2.1.218 이상에서 [중요 경로](#critical-paths)를 대상으로 하는 `rm` 및 `rmdir` 제거도 마찬가지입니다.500 * [보호된 경로](#protected-paths)에 대한 쓰기는 허용 규칙이 일치할 때도 분류기로 라우팅됩니다. `rm` 및 `rmdir` 제거가 Claude Code v2.1.218 이상에서 [중요 경로](#critical-paths)를 대상으로 하는 경우도 마찬가지입니다.

491 * [`requiresUserInteraction`](/docs/ko/mcp#require-approval-for-a-specific-tool)으로 표시된 MCP 도구는 허용 규칙이 일치할 때도 직접 프롬프트하고, 조직이 [세션에서 해당 설정에 도달하는 경우](/docs/ko/mcp#organization-controls-on-connector-tools) `ask`로 설정한 커넥터 도구도 마찬가지입니다.501 * [`requiresUserInteraction`](/docs/ko/mcp#require-approval-for-a-specific-tool)으로 표시된 MCP 도구는 허용 규칙이 일치할 때도 직접 프롬프트합니다. 조직이 [요청으로 설정한](/docs/ko/mcp#organization-controls-on-connector-tools) 커넥터 도구도 해당 설정이 Claude Code에 도달하는 세션에서 마찬가지입니다.

492 * 명령의 콘텐츠에서 일치하는 요청 규칙 (예: `Bash(git push *)`)은 권한 프롬프트로 폴백합니다.502 * [명령별 허용 도메인](/docs/ko/sandboxing#per-command-allowed-domains-in-auto-mode)을 전달하는 셸 명령도 허용 규칙이 일치할 때 분류기로 라우팅됩니다. 규칙이 명령을 승인하기 때문입니다. 호스트가 아닙니다.

493 * [명령별 허용 도메인](/docs/ko/sandboxing#per-command-allowed-domains-in-auto-mode)을 전달하는 셸 명령도 허용 규칙이 명령을 승인하더라도 분류기로 라우팅됩니다. 규칙은 명령을 승인하지만 호스트는 승인하지 않기 때문입니다.503 * `Bash(git push *)`와 같은 명령의 콘텐츠에 일치하는 규칙을 요청하면 권한 프롬프트로 폴백합니다.

494 2. 읽기 전용 작업 및 작업 디렉토리의 파일 편집은 자동 승인됩니다. 단, [보호된 경로](#protected-paths)에 대한 쓰기 및 [작업 디렉토리 외부의 첫 번째 읽기](#first-read-outside-the-working-directories)는 제외됩니다. 이는 프롬프트합니다.504 2. 읽기 전용 작업 및 작업 디렉토리의 파일 편집은 자동 승인됩니다. [보호된 경로](#protected-paths) 및 [작업 디렉토리 외부의 첫 번째 읽기](#first-read-outside-the-working-directories)에 대한 쓰기는 제외됩니다. 이는 프롬프트합니다.

495 3. 다른 모든 것은 분류기로 이동합니다. 단계 1에서 직접 프롬프트하는 커넥터 도구 및 `requiresUserInteraction` MCP 도구는 분류기에 도달하지 않으므로 조직 필수 승인도 동의 단계도 자동 승인되지 않습니다.505 * [서버 측 분류기 검토](#server-side-classifier-review)가 있는 세션에서 읽기 전용 및 [샌드박스된](/docs/ko/sandboxing#sandbox-modes) 셸 명령은 해당 검토를 기다리고 플래그가 지정되면 차단됩니다.

496 4. 분류기가 차단하면 Claude는 이유를 받고 대안을 시도합니다. 대부분의 세션에서 이유는 분류기가 일치한 규칙 (예: `[Data Exfiltration]`)을 명명하며, 작성된 설명을 제공하지 않습니다. [거부 검토](/docs/ko/auto-mode-config#review-denials)를 참조하세요.506 3. 다른 모든 것은 분류기로 이동합니다. 단계 1에서 직접 프롬프트하는 커넥터 도구 및 `requiresUserInteraction` MCP 도구는 분류기에 도달하지 않으므로 조직 필수 승인이나 동의 단계도 자동 승인되지 않습니다.

507 4. 분류기가 차단하면 Claude는 이유를 받고 대안을 시도합니다. 대부분의 세션에서 이유는 분류기가 일치한 규칙(예: `[Data Exfiltration]`)을 명명하며, 서면 설명을 제공하지 않습니다. [거부 검토](/docs/ko/auto-mode-config#review-denials)를 참조하세요.

497 508 

498 자동 모드에 진입할 때 임의의 코드 실행을 부여하는 광범위한 허용 규칙이 삭제됩니다:509 자동 모드에 들어가면 임의의 코드 실행을 부여하는 광범위한 허용 규칙이 삭제됩니다:

499 510 

500 * 무조건 `Bash(*)` 또는 `PowerShell(*)`511 * 무조건 `Bash(*)` 또는 `PowerShell(*)`

501 * `Bash(python*)`과 같은 와일드카드 인터프리터512 * `Bash(python*)`과 같은 와일드카드 인터프리터

502 * 패키지 관리자 실행 명령513 * 패키지 관리자 실행 명령

503 * `Agent` 허용 규칙514 * `Agent` 허용 규칙

504 * [`Monitor`](/docs/ko/tools-reference#monitor-tool) 허용 규칙 (Claude Code는 Monitor 명령을 셸을 통해 실행하기 때문)515 * [`Monitor`](/docs/ko/tools-reference#monitor-tool) 허용 규칙. Claude Code는 Monitor 명령을 셸을 통해 실행하기 때문입니다.

505 516 

506 `Bash(npm test)`와 같은 좁은 규칙은 유효합니다. Claude Code는 자동 모드를 떠날 때 삭제된 규칙을 복원합니다. v2.1.236 이전에는 Claude Code가 자동 모드에서 `Monitor` 허용 규칙을 유효하게 두었으므로 전체 도구와 일치하는 규칙이 분류기 검토 없이 Monitor 명령을 승인했습니다.517 `Bash(npm test)`와 같은 좁은 규칙은 유효합니다. Claude Code는 자동 모드를 떠날 때 삭제된 규칙을 복원합니다. v2.1.236 이전에는 Claude Code가 자동 모드에서 `Monitor` 허용 규칙을 유효하게 두었으므로 전체 도구와 일치하는 규칙이 분류기 검토 없이 Monitor 명령을 승인했습니다.

507 518 

508 Claude Code는 또한 커밋되지 않은 작업을 버릴 `git reset --hard` 또는 `rm -rf`와 같은 명령 전에 `git status`를 자체적으로 실행하고 분류기에 스테이징된, 수정된 또는 추적되지 않은 작업이 있는지 표시합니다. Claude Code는 리포지토리의 git 구성이 `status.showUntrackedFiles=no`를 설정할 때도 해당 검사에서 추적되지 않은 파일을 보고합니다.519 Claude Code는 또한 `git reset --hard` 또는 `rm -rf`와 같이 커밋되지 않은 작업을 삭제할 명령 전에 `git status`를 자체적으로 실행하고 분류기에 스테이징된, 수정된 또는 추적되지 않은 작업이 있는지 표시합니다. Claude Code는 리포지토리의 git 구성이 `status.showUntrackedFiles=no`를 설정할 때도 해당 검사에서 추적되지 않은 파일을 보고합니다.

509 520 

510 Claude Code 자체가 보내는 분류기 요청에서 분류기는 사용자 메시지, 파일 읽기 및 검색과 같은 읽기 전용 조회 이외의 도구 호출, 그리고 CLAUDE.md 콘텐츠를 봅니다. 도구 결과는 제거되므로 파일 또는 웹 페이지의 악의적인 콘텐츠는 분류기를 직접 조작할 수 없습니다. 호출의 결과에 [PostToolUse 훅의 `classifierContext` 필드](/docs/ko/hooks#annotate-a-result-for-the-auto-mode-classifier)로 주석을 달 수 있으며, 분류기는 이를 애플리케이션 제공 컨텍스트로 읽습니다. 필드는 Claude Code v2.1.236 이상이 필요합니다.521 Claude Code 자체가 보낸 분류기 요청에서 분류기는 사용자 메시지, 파일 읽기 및 검색과 같은 읽기 전용 조회 이외의 도구 호출, 그리고 CLAUDE.md 콘텐츠를 봅니다. 도구 결과는 이러한 요청에서 제거되므로 파일이나 웹 페이지의 악의적인 콘텐츠는 분류기를 직접 조작할 수 없습니다.

511 522 

512 별도의 서버 측 프로브는 들어오는 도구 결과를 스캔하고 Claude가 읽기 전에 의심스러운 콘텐츠에 플래그를 지정합니다. 이 계층들이 함께 작동하는 방식에 대한 자세한 내용은 [자동 모드 발표](https://claude.com/blog/auto-mode) 및 [엔지니어링 심층 분석](https://www.anthropic.com/engineering/claude-code-auto-mode)을 참조하세요.523 [PostToolUse 훅의 `classifierContext` 필드](/docs/ko/hooks#annotate-a-result-for-the-auto-mode-classifier)로 호출의 결과에 주석을 달 수 있습니다. 분류기는 이를 애플리케이션 제공 컨텍스트로 읽습니다. 필드에는 Claude Code v2.1.236 이상이 필요합니다.

524 

525 별도의 서버 측 프로브는 들어오는 도구 결과를 스캔하고 Claude가 읽기 전에 의심스러운 콘텐츠에 플래그를 지정합니다. 이러한 계층이 함께 작동하는 방식에 대한 자세한 내용은 [자동 모드 발표](https://claude.com/blog/auto-mode) 및 [엔지니어링 심층 분석](https://www.anthropic.com/engineering/claude-code-auto-mode)을 참조하세요.

513 </Accordion>526 </Accordion>

514 527 

515 <Accordion title="자동 모드가 서브에이전트를 처리하는 방법">528 <Accordion title="자동 모드가 서브에이전트를 처리하는 방법">

516 분류기는 [서브에이전트](/docs/ko/sub-agents) 작업을 세 지점에서 검사합니다:529 분류기는 [서브에이전트](/docs/ko/sub-agents) 작업을 세 지점에서 확인합니다:

517 530 

518 1. 서브에이전트가 시작되기 전에 위임된 작업 설명이 평가되므로 위험해 보이는 작업은 생성 시점에 차단됩니다.531 1. 서브에이전트가 시작되기 전에 위임된 작업 설명이 평가되므로 위험해 보이는 작업은 생성 시간에 차단됩니다.

519 2. 서브에이전트가 실행되는 동안 각 작업은 부모 세션과 동일한 규칙으로 분류기를 통과하며, 서브에이전트의 frontmatter의 모든 `permissionMode`는 무시됩니다.532 2. 서브에이전트가 실행되는 동안 각 작업은 부모 세션과 동일한 규칙으로 분류기를 거치며, 서브에이전트의 frontmatter의 모든 `permissionMode`는 무시됩니다.

520 3. 서브에이전트가 완료되면 분류기는 작업과 최종 보고서를 검토한 후 부모가 보고서를 읽습니다. 분류기가 서브에이전트의 작업 또는 보고서에 플래그를 지정하거나 별도의 API 안전 검사가 검토를 거부하면 보고서는 여전히 전달되며 보안 경고가 앞에 붙습니다. 분류기를 사용할 수 없는 경우 보고서는 서브에이전트의 작업을 검증한 후 작업하도록 하는 메모와 함께 도착합니다.533 3. 서브에이전트가 완료되면 분류기는 부모가 보고서를 읽기 전에 서브에이전트의 작업과 최종 보고서를 검토합니다. 분류기가 서브에이전트의 작업이나 보고서에 플래그를 지정하거나 별도의 API 안전 검사가 검토를 거부하면 보고서는 여전히 전달되며 보안 경고가 앞에 붙습니다. 분류기를 검토할 수 없으면 보고서는 서브에이전트의 작업을 확인한 후 작업하도록 주의하는 메모와 함께 도착합니다.

521 </Accordion>534 </Accordion>

522 535 

523 <Accordion title="비용 및 지연">536 <Accordion title="비용 및 지연">

524 분류기는 기본적으로 `/model` 선택이 아닌 Claude Sonnet 5에서 실행됩니다. Anthropic이 서버 측에서 구성하는 분류기 모델이 해당 기본값보다 우선합니다. 세션의 모델이 Claude Sonnet 4.6이거나 [`availableModels`](/docs/ko/model-config#restrict-model-selection)이 Sonnet 5를 제외할 때 분류기는 세션의 모델에서 실행되거나, 세션이 [Fable 모델](/docs/ko/model-config#work-with-fable)에서 실행될 때 Opus 모델에서 실행됩니다. Anthropic API 이외의 제공자에서 해당 Opus 폴백은 제공자의 기본 Opus 모델입니다.537 분류기는 기본적으로 `/model` 선택이 아닌 Claude Sonnet 5에서 실행됩니다. Anthropic이 서버 측에서 구성하는 분류기 모델이 해당 기본값보다 우선합니다. 세션의 모델이 Claude Sonnet 4.6이거나 [`availableModels`](/docs/ko/model-config#restrict-model-selection)이 Sonnet 5를 제외할 때 분류기는 세션의 모델 대신 실행되거나 세션이 [Fable 모델](/docs/ko/model-config#work-with-fable)에서 실행될 때 Opus 모델에서 실행됩니다. Anthropic API 이외의 제공자에서 해당 Opus 폴백은 제공자의 기본 Opus 모델입니다.

525 

526 세션의 첫 번째 자동 모드 요청은 Sonnet 5 기본값을 검증합니다. 요청이 성공하면 Sonnet 5는 세션의 분류기 모델로 유지되고, 모델을 사용할 수 없어서 실패하면 세션은 폴백을 대신 사용합니다. 해당 검증이 정착한 후 분류기의 모델은 세션 동안 변경되지 않습니다.

527 538 

528 Enterprise 플랜 및 Claude API, [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws), Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry를 사용하는 계정에서 분류기 호출은 토큰 사용량에 계산됩니다. 각 검사는 트랜스크립트의 일부와 보류 중인 작업을 보내며 실행 전에 왕복을 추가합니다. 읽기 및 보호된 경로 외부의 작업 디렉토리 편집은 분류기를 건너뛰므로 오버헤드는 주로 셸 명령 및 네트워크 작업에서 발생합니다. 서버가 세션의 모델 요청의 일부로 작업을 검토하는 경우 계산할 별도의 분류기 호출이 없습니다. [서버 측 분류기 검토](#server-side-classifier-review)를 참조하세요.539 Enterprise 플랜 및 Claude API를 사용하는 계정, [AWS의 Claude Platform](/docs/ko/claude-platform-on-aws), Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry에서 분류기 호출은 토큰 사용량에 계산됩니다. 각 검사는 기록의 일부와 보류 중인 작업을 보내며 실행 전에 왕복을 추가합니다. 읽기 및 보호된 경로 외부의 작업 디렉토리 편집은 분류기를 건너뛰므로 오버헤드는 주로 셸 명령 및 네트워크 작업에서 나옵니다. 서버가 세션의 모델 요청의 일부로 작업을 검토하는 경우 계산할 별도의 분류기 호출이 없습니다. [서버 측 분류기 검토](#server-side-classifier-review)를 참조하세요.

529 540 

530 샌드박스 네트워크 액세스는 명령별 분류기 요청을 추가하지 않습니다. 분류기는 [명령이 명명하는 호스트](/docs/ko/sandboxing#per-command-allowed-domains-in-auto-mode)를 명령과 함께 판단하고, Claude Code는 각 연결을 승인된 목록에 대해 분류기를 다시 호출하지 않고 검사합니다.541 샌드박스된 네트워크 액세스는 명령별 분류기 요청을 추가하지 않습니다. 분류기는 [명령이 명명하는 호스트](/docs/ko/sandboxing#per-command-allowed-domains-in-auto-mode)를 명령과 함께 한 번의 검토로 판단하고, Claude Code는 분류기를 다시 호출하지 않고 승인된 목록에 대해 각 연결을 확인합니다.

531 </Accordion>542 </Accordion>

532</AccordionGroup>543</AccordionGroup>

533 544 

permissions.md +5 −5

Details

278 읽기 전용 명령278 읽기 전용 명령

279</h4>279</h4>

280 280 

281Claude 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` 규칙을 추가합니다.281Claude 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)을 참조합니다.

282 282 

283`ls > out.txt`와 같은 리다이렉트는 대상에 대한 확인을 추가합니다. [리다이렉션](#redirections)을 참조합니다.283`ls > out.txt`와 같은 리다이렉트는 대상에 대한 확인을 추가합니다. [리다이렉션](#redirections)을 참조합니다.

284 284 


603 603 

604* 권한 규칙 및 [hooks](/docs/ko/hooks)를 포함한 프로젝트 설정604* 권한 규칙 및 [hooks](/docs/ko/hooks)를 포함한 프로젝트 설정

605* [`.mcp.json` 서버](/docs/ko/mcp#project-scope)(시작 시와 동일한 [서버 승인](/docs/ko/mcp#project-server-approvals-and-workspace-trust) 및 [로컬 범위](/docs/ko/mcp#local-scope) MCP 서버의 적용을 받음)605* [`.mcp.json` 서버](/docs/ko/mcp#project-scope)(시작 시와 동일한 [서버 승인](/docs/ko/mcp#project-server-approvals-and-workspace-trust) 및 [로컬 범위](/docs/ko/mcp#local-scope) MCP 서버의 적용을 받음)

606* 설정이 활성화하는 [plugins](/docs/ko/plugins), [skills](/docs/ko/skills#discovery-from-parent-and-nested-directories) 및 [subagents](/docs/ko/sub-agents)606* 설정이 활성화하는 [plugins](/docs/ko/plugins/overview), [skills](/docs/ko/skills#discovery-from-parent-and-nested-directories) 및 [subagents](/docs/ko/sub-agents)

607* 이전 디렉토리의 설정에서 환경 변수 위에 적용되는 [`env`](/docs/ko/settings-reference#env) 값(이전 디렉토리의 설정은 계속 적용됨)607* 이전 디렉토리의 설정에서 환경 변수 위에 적용되는 [`env`](/docs/ko/settings-reference#env) 값(이전 디렉토리의 설정은 계속 적용됨)

608 608 

609Claude Code는 또한 이전 디렉토리의 프로젝트 및 [로컬 범위](/docs/ko/mcp#local-scope) MCP 서버와 이동 후 더 이상 활성화되지 않는 [plugins](/docs/ko/mcp#plugin-provided-mcp-servers)의 서버를 연결 해제합니다. 이전 디렉토리의 설정 대신 새 디렉토리의 설정에서 [추가 디렉토리](#working-directories)를 가져오고, `--add-dir` 또는 `/add-dir`으로 추가한 디렉토리를 유지합니다. 이동이 활성화하는 Hooks는 여전히 [`${CLAUDE_PROJECT_DIR}`](/docs/ko/hooks#reference-scripts-by-path)를 세션이 시작된 프로젝트 루트로 설정하여 수신합니다.609Claude Code는 또한 이전 디렉토리의 프로젝트 및 [로컬 범위](/docs/ko/mcp#local-scope) MCP 서버와 이동 후 더 이상 활성화되지 않는 [plugins](/docs/ko/mcp#plugin-provided-mcp-servers)의 서버를 연결 해제합니다. 이전 디렉토리의 설정 대신 새 디렉토리의 설정에서 [추가 디렉토리](#working-directories)를 가져오고, `--add-dir` 또는 `/add-dir`으로 추가한 디렉토리를 유지합니다. 이동이 활성화하는 Hooks는 여전히 [`${CLAUDE_PROJECT_DIR}`](/docs/ko/hooks#reference-scripts-by-path)를 세션이 시작된 프로젝트 루트로 설정하여 수신합니다.


639프로젝트 전체에서 해당 구성을 공유하려면 다음 방법 중 하나를 사용합니다:639프로젝트 전체에서 해당 구성을 공유하려면 다음 방법 중 하나를 사용합니다:

640 640 

641* **사용자 수준 구성**: `~/.claude/agents/`, `~/.claude/output-styles/` 또는 `~/.claude/settings.json`에 파일을 배치하여 모든 프로젝트에서 사용 가능하게 합니다641* **사용자 수준 구성**: `~/.claude/agents/`, `~/.claude/output-styles/` 또는 `~/.claude/settings.json`에 파일을 배치하여 모든 프로젝트에서 사용 가능하게 합니다

642* **Plugins**: 팀이 설치할 수 있는 [plugin](/docs/ko/plugins)으로 구성을 패키징하고 배포합니다642* **Plugins**: 팀이 설치할 수 있는 [plugin](/docs/ko/plugins/overview)으로 구성을 패키징하고 배포합니다

643* **구성 디렉토리에서 시작**: 원하는 `.claude/` 구성이 포함된 디렉토리에서 Claude Code를 실행합니다643* **구성 디렉토리에서 시작**: 원하는 `.claude/` 구성이 포함된 디렉토리에서 Claude Code를 실행합니다

644 644 

645<h2 id="how-permissions-interact-with-sandboxing">645<h2 id="how-permissions-interact-with-sandboxing">


727각 행은 저장소가 제공할 수 있는 한 종류의 콘텐츠입니다. 열은 폴더 자체를 신뢰하지 않은 두 가지 상황입니다: 상위 폴더만 신뢰했거나, 신뢰 대화상자를 절대 표시하지 않는 `claude -p` 또는 SDK를 실행했습니다. 상위 폴더 열은 [중첩된 저장소](#project-allow-rules-and-workspace-trust) 내부에는 적용되지 않습니다: 대화형 세션에서 Claude Code는 신뢰 대화상자를 표시하며, `claude -p` 또는 SDK 실행은 `claude -p` 열을 따릅니다.727각 행은 저장소가 제공할 수 있는 한 종류의 콘텐츠입니다. 열은 폴더 자체를 신뢰하지 않은 두 가지 상황입니다: 상위 폴더만 신뢰했거나, 신뢰 대화상자를 절대 표시하지 않는 `claude -p` 또는 SDK를 실행했습니다. 상위 폴더 열은 [중첩된 저장소](#project-allow-rules-and-workspace-trust) 내부에는 적용되지 않습니다: 대화형 세션에서 Claude Code는 신뢰 대화상자를 표시하며, `claude -p` 또는 SDK 실행은 `claude -p` 열을 따릅니다.

728 728 

729| 저장소가 제공하는 것 | 상위 폴더만 신뢰한 경우 | `claude -p` 또는 SDK, 폴더를 신뢰하지 않은 경우 |729| 저장소가 제공하는 것 | 상위 폴더만 신뢰한 경우 | `claude -p` 또는 SDK, 폴더를 신뢰하지 않은 경우 |

730| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------- |730| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------- |

731| 설정 파일의 [Hooks](/docs/ko/hooks), [`env`](/docs/ko/settings-reference#env) 블록 및 [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper)와 같은 도우미 명령, 그리고 프로젝트 스킬의 [hooks](/docs/ko/hooks#hooks-in-skills-and-agents) 및 [`allowed-tools`](/docs/ko/skills#pre-approve-tools-for-a-skill) | 사용됨 | 사용됨. 워크스페이스 신뢰는 어떤 세션에서도 스킬의 `allowed-tools`를 제한하지 않습니다 |731| 설정 파일의 [Hooks](/docs/ko/hooks), [`env`](/docs/ko/settings-reference#env) 블록 및 [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper)와 같은 도우미 명령, 그리고 프로젝트 스킬의 [hooks](/docs/ko/hooks#hooks-in-skills-and-agents) 및 [`allowed-tools`](/docs/ko/skills#pre-approve-tools-for-a-skill) | 사용됨 | 사용됨. 워크스페이스 신뢰는 어떤 세션에서도 스킬의 `allowed-tools`를 제한하지 않습니다 |

732| `.claude/settings.json`의 `permissions.allow` 규칙 및 `additionalDirectories` | 신뢰 대화상자를 수락할 때까지 사용되지 않으며, 대화상자는 다시 나타나 이를 나열합니다 | 사용되지 않습니다. Claude Code는 [`this workspace has not been trusted`](/docs/ko/errors#workspace-has-not-been-trusted) 경고를 stderr에 출력합니다 |732| `.claude/settings.json`의 `permissions.allow` 규칙 및 `additionalDirectories` | 신뢰 대화상자를 수락할 때까지 사용되지 않으며, 대화상자는 다시 나타나 이를 나열합니다 | 사용되지 않습니다. Claude Code는 [`this workspace has not been trusted`](/docs/ko/errors#workspace-has-not-been-trusted) 경고를 stderr에 출력합니다 |

733| 프로젝트 [subagent](/docs/ko/sub-agents#hooks-in-subagent-frontmatter)의 Frontmatter hooks, 프로젝트 [`@skills-dir` plugin](/docs/ko/plugins-reference#skills-directory-plugins), 그리고 저장소 또는 `--add-dir` 디렉터리의 [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces) 항목 | 사용되지 않으며, 대화상자가 제공되지 않습니다 | 사용되지 않습니다 |733| 프로젝트 [subagent](/docs/ko/sub-agents#hooks-in-subagent-frontmatter)의 Frontmatter hooks, 프로젝트 [`@skills-dir` plugin](/docs/ko/plugins/loading#plugins-shared-through-a-repository), 그리고 저장소 또는 `--add-dir` 디렉터리의 [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces) 항목 | 사용되지 않으며, 대화상자가 제공되지 않습니다 | 사용되지 않습니다 |

734| 저장소 또는 `--add-dir` 디렉터리의 subagent frontmatter에 있는 인라인 [`mcpServers`](/docs/ko/sub-agents#scope-mcp-servers-to-a-subagent). v2.1.238 이전에는 Claude Code가 두 상황 모두에서 이러한 서버를 로드했습니다 | 사용되지 않으며, 대화상자가 제공되지 않습니다 | 사용되지 않습니다 |734| 저장소 또는 `--add-dir` 디렉터리의 subagent frontmatter에 있는 인라인 [`mcpServers`](/docs/ko/sub-agents#scope-mcp-servers-to-a-subagent). v2.1.238 이전에는 Claude Code가 두 상황 모두에서 이러한 서버를 로드했습니다 | 사용되지 않으며, 대화상자가 제공되지 않습니다 | 사용되지 않습니다 |

735| `.mcp.json`의 서버, 저장소가 [자체 설정에서 승인](/docs/ko/mcp#project-server-approvals-and-workspace-trust)하는 서버 포함 | Claude Code는 연결하기 전에 묻습니다. 저장소의 자체 승인은 계산되지 않습니다 | 승인 여부와 관계없이 묻지 않고 연결됩니다. SDK는 `settingSources`에 프로젝트 설정이 포함될 때만 로드합니다. 같은 폴더의 `claude mcp list`는 여전히 그러한 서버를 보류 중으로 보고합니다 |735| `.mcp.json`의 서버, 저장소가 [자체 설정에서 승인](/docs/ko/mcp#project-server-approvals-and-workspace-trust)하는 서버 포함 | Claude Code는 연결하기 전에 묻습니다. 저장소의 자체 승인은 계산되지 않습니다 | 승인 여부와 관계없이 묻지 않고 연결됩니다. SDK는 `settingSources`에 프로젝트 설정이 포함될 때만 로드합니다. 같은 폴더의 `claude mcp list`는 여전히 그러한 서버를 보류 중으로 보고합니다 |

736| `.mcp.json`의 서버에 있는 [`headersHelper`](/docs/ko/mcp#trust-a-folder-before-its-headershelper-runs). v2.1.238 이전에는 Claude Code가 두 상황 모두에서 도우미를 실행했습니다 | 신뢰 대화상자를 수락할 때까지 실행되지 않으며, 대화상자는 도우미가 선언된 위치를 다시 이름으로 지정합니다. Claude Code는 그때까지 정적 `headers`만으로 서버를 연결합니다 | 실행되지 않습니다. Claude Code는 정적 `headers`만으로 서버를 연결하고 서버당 [`headersHelper not run`](/docs/ko/errors#headershelper-not-run) 줄을 stderr에 출력합니다 |736| `.mcp.json`의 서버에 있는 [`headersHelper`](/docs/ko/mcp#trust-a-folder-before-its-headershelper-runs). v2.1.238 이전에는 Claude Code가 두 상황 모두에서 도우미를 실행했습니다 | 신뢰 대화상자를 수락할 때까지 실행되지 않으며, 대화상자는 도우미가 선언된 위치를 다시 이름으로 지정합니다. Claude Code는 그때까지 정적 `headers`만으로 서버를 연결합니다 | 실행되지 않습니다. Claude Code는 정적 `headers`만으로 서버를 연결하고 서버당 [`headersHelper not run`](/docs/ko/errors#headershelper-not-run) 줄을 stderr에 출력합니다 |

platforms.md +3 −3

Details

34통합을 통해 Claude는 코드베이스 외부의 서비스와 작업할 수 있습니다.34통합을 통해 Claude는 코드베이스 외부의 서비스와 작업할 수 있습니다.

35 35 

36| 통합 | 기능 | 사용 용도 |36| 통합 | 기능 | 사용 용도 |

37| :----------------------------------- | :-------------------------------------------- | :----------------------------------------------- |37| :----------------------------------------------- | :-------------------------------------------- | :----------------------------------------------- |

38| [Chrome](/docs/ko/chrome) | 로그인된 세션으로 브라우저를 제어합니다 | 웹 앱 테스트, 양식 작성, API 없이 사이트 자동화 |38| [Chrome](/docs/ko/chrome) | 로그인된 세션으로 브라우저를 제어합니다 | 웹 앱 테스트, 양식 작성, API 없이 사이트 자동화 |

39| [GitHub Actions](/docs/ko/github-actions) | CI 파이프라인에서 Claude를 실행합니다 | 자동화된 PR 검토, 이슈 분류, 예약된 유지보수 |39| [GitHub Actions](/docs/ko/github-actions) | CI 파이프라인에서 Claude를 실행합니다 | 자동화된 PR 검토, 이슈 분류, 예약된 유지보수 |

40| [GitLab CI/CD](/docs/ko/gitlab-ci-cd) | GitHub Actions와 동일하지만 GitLab용입니다 | GitLab의 CI 기반 자동화 |40| [GitLab CI/CD](/docs/ko/gitlab-ci-cd) | GitHub Actions와 동일하지만 GitLab용입니다 | GitLab의 CI 기반 자동화 |

41| [Code Review](/docs/ko/code-review) | 모든 PR을 자동으로 검토합니다 | 인간 검토 전에 버그 포착 |41| [Code Review](/docs/ko/code-review) | 모든 PR을 자동으로 검토합니다 | 인간 검토 전에 버그 포착 |

42| [Slack](/docs/ko/slack) | 채널의 `@Claude` 멘션에 응답합니다 | 팀 채팅에서 버그 보고를 풀 요청으로 변환 |42| [Slack](/docs/ko/slack) | 채널의 `@Claude` 멘션에 응답합니다 | 팀 채팅에서 버그 보고를 풀 요청으로 변환 |

43| [Claude Tag](/docs/ko/claude-tag) | 관리자가 구성한 액세스 권한으로 조직의 공유 ID로 `@Claude`를 실행합니다 | Team 및 Enterprise 플랜에서 사용자별 Slack 세션 대신 공유 팀 액세스 |43| [Claude Tag](https://claude.com/docs/claude-tag) | 관리자가 구성한 액세스 권한으로 조직의 공유 ID로 `@Claude`를 실행합니다 | Team 및 Enterprise 플랜에서 사용자별 Slack 세션 대신 공유 팀 액세스 |

44 44 

45여기에 나열되지 않은 통합의 경우, [MCP 서버](/docs/ko/mcp) 및 [커넥터](/docs/ko/desktop#connect-external-tools)를 사용하면 거의 모든 것을 연결할 수 있습니다. Linear, Notion, Google Drive 또는 자체 내부 API입니다.45여기에 나열되지 않은 통합의 경우, [MCP 서버](/docs/ko/mcp) 및 [커넥터](/docs/ko/desktop#connect-external-tools)를 사용하면 거의 모든 것을 연결할 수 있습니다. Linear, Notion, Google Drive 또는 자체 내부 API입니다.

46 46 


87* [GitLab CI/CD](/docs/ko/gitlab-ci-cd): GitLab용 동일한 기능87* [GitLab CI/CD](/docs/ko/gitlab-ci-cd): GitLab용 동일한 기능

88* [Code Review](/docs/ko/code-review): 모든 풀 요청에 대한 자동 검토88* [Code Review](/docs/ko/code-review): 모든 풀 요청에 대한 자동 검토

89* [Slack](/docs/ko/slack): 팀 채팅에서 작업을 보내고 PR을 받습니다89* [Slack](/docs/ko/slack): 팀 채팅에서 작업을 보내고 PR을 받습니다

90* [Claude Tag](/docs/ko/claude-tag): Team 및 Enterprise 플랜에서 조직의 공유 ID로 `@Claude`를 실행합니다90* [Claude Tag](https://claude.com/docs/claude-tag): Team 및 Enterprise 플랜에서 조직의 공유 ID로 `@Claude`를 실행합니다

91 91 

92<h3 id="remote-access">92<h3 id="remote-access">

93 원격 액세스93 원격 액세스

plugin-dependencies.md +0 −267 deleted

File Deleted View Diff

1> ## Documentation Index

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

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

4 

5# 플러그인 종속성 버전 제약

6 

7> 플러그인 종속성에 대한 버전 제약을 선언하고 선별된 플러그인 세트를 하나의 설치 뒤에 번들로 제공합니다.

8 

9플러그인은 `plugin.json` 또는 마켓플레이스 항목에 나열하여 다른 플러그인에 종속될 수 있습니다. 기본적으로 종속성은 최신 사용 가능 버전을 추적하므로 업스트림 릴리스가 경고 없이 플러그인의 종속성을 변경할 수 있습니다. 버전 제약을 사용하면 이동하기로 선택할 때까지 테스트된 버전 범위에서 종속성을 유지할 수 있습니다.

10 

11종속성을 선언하는 플러그인을 설치하면 Claude Code가 자동으로 종속성을 해결하고 설치합니다. 단, 마켓플레이스 항목에 [`command` 소스](/docs/ko/plugin-marketplaces#how-users-accept-the-command) 또는 [`headersHelper`](/docs/ko/plugin-marketplaces#how-users-accept-a-headershelper-command)가 있는 종속성은 먼저 직접 설치해야 합니다. 나중에 `/reload-plugins`, 종속 플러그인의 마켓플레이스 자동 업데이트, 종속 플러그인에서 `claude plugin install`을 다시 실행, 그리고 `claude plugin marketplace add`는 각각 같은 규칙에 따라 아직 설치되지 않은 선언된 종속성을 설치합니다. 하나가 미해결 상태로 유지되면 [종속성 오류 해결](#resolve-dependency-errors)을 참조하세요.

12 

13이 가이드는 `plugin.json`에서 종속성을 선언하는 플러그인 작성자와 릴리스에 태그를 지정하는 마켓플레이스 유지 관리자를 위한 것입니다. 여기서 종속성은 다른 플러그인입니다. 플러그인 자체가 사용하는 npm 및 Bun 패키지는 [Node.js 패키지 종속성](/docs/ko/plugins-reference#node-js-package-dependencies)을 참조하세요. 종속성이 있는 플러그인을 설치하려면 [플러그인 검색 및 설치](/docs/ko/discover-plugins)를 참조하세요. 전체 매니페스트 스키마는 [플러그인 참조](/docs/ko/plugins-reference)를 참조하세요.

14 

15<h2 id="why-constrain-dependency-versions">

16 종속성 버전을 제약하는 이유

17</h2>

18 

19두 팀이 플러그인을 게시하는 내부 마켓플레이스를 생각해 봅시다. 플랫폼 팀은 비밀 백엔드를 래핑하는 MCP 서버인 `secrets-vault`를 유지 관리합니다. 배포 팀은 배포 중에 자격 증명을 가져오기 위해 `secrets-vault`를 호출하는 `deploy-kit`을 유지 관리합니다.

20 

21`deploy-kit`은 `secrets-vault` v2.1.0에 대해 테스트됩니다. 버전 제약이 없으면 플랫폼 팀이 MCP 도구의 이름을 바꾸는 릴리스에 태그를 지정할 때마다 자동 업데이트가 모든 엔지니어의 `secrets-vault`를 새 버전으로 이동하고 `deploy-kit`이 중단됩니다.

22 

23버전 제약을 사용하면 `deploy-kit`은 `~2.1.0` 범위에서 `secrets-vault`가 필요함을 선언합니다. `deploy-kit`이 설치된 엔지니어는 가장 높은 일치하는 `2.1.x` 패치에 머물러 있습니다. 배포 팀은 더 넓은 제약이 있는 새로운 `deploy-kit` 버전을 게시하여 자신의 일정에 따라 업그레이드합니다.

24 

25<h2 id="declare-a-dependency-with-a-version-constraint">

26 버전 제약으로 종속성 선언

27</h2>

28 

29플러그인의 `.claude-plugin/plugin.json`의 `dependencies` 배열에 종속성을 나열합니다.

30 

31다음 매니페스트는 하나의 버전 없는 종속성과 하나의 제약된 종속성을 선언합니다:

32 

33```json .claude-plugin/plugin.json theme={null}

34{

35 "name": "deploy-kit",

36 "version": "3.1.0",

37 "dependencies": [

38 "audit-logger",

39 { "name": "secrets-vault", "version": "~2.1.0" }

40 ]

41}

42```

43 

44항목은 `deploy-kit` 매니페스트의 `"audit-logger"`처럼 플러그인 이름만 있는 문자열일 수 있으며, 이는 해당 플러그인의 마켓플레이스가 제공하는 모든 버전에 종속됩니다. 더 많은 제어를 위해 다음 필드가 있는 객체를 사용합니다:

45 

46| 필드 | 유형 | 설명 |

47| :------------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

48| `name` | string | 플러그인 이름입니다. 선언 플러그인과 동일한 마켓플레이스 내에서 해결됩니다. 필수입니다. |

49| `version` | string | `~2.1.0`, `^2.0`, `>=1.4` 또는 `=2.1.0`과 같은 [semver 범위](https://github.com/npm/node-semver#ranges)입니다. 종속성은 이 범위를 만족하는 가장 높은 태그된 버전에서 가져옵니다. |

50| `marketplace` | string | `name`을 해결할 다른 마켓플레이스입니다. 교차 마켓플레이스 종속성은 대상 마켓플레이스가 루트 마켓플레이스의 `marketplace.json`에서 [`allowCrossMarketplaceDependenciesOn`](#depend-on-a-plugin-from-another-marketplace)에 나열되지 않는 한 차단됩니다. |

51 

52`2.0.0-beta.1`과 같은 사전 릴리스 버전은 `^2.0.0-0`과 같은 사전 릴리스 접미사로 옵트인하지 않는 한 제외됩니다.

53 

54<h2 id="bundle-plugins-for-a-team">

55 팀을 위한 플러그인 번들

56</h2>

57 

58필수 `name` 외에도 플러그인 매니페스트는 `dependencies` 배열만으로 구성될 수 있습니다. 이를 설치하면 모든 종속성이 함께 설치되므로, 이는 하나의 설치 뒤에 큐레이션된 플러그인 세트를 패키징하는 방법입니다.

59 

60예를 들어 플랫폼 팀은 내부 마켓플레이스에 역할별 번들을 게시하여 엔지니어가 각 도구를 별도로 설치하는 대신 하나의 `claude plugin install` 명령을 실행하도록 할 수 있습니다:

61 

62```json .claude-plugin/plugin.json theme={null}

63{

64 "name": "backend-standard",

65 "version": "1.0.0",

66 "description": "Standard plugin set for backend engineers",

67 "dependencies": [

68 "secrets-vault",

69 "deploy-kit",

70 { "name": "db-migrate", "version": "^3.0" },

71 "oncall-runbook"

72 ]

73}

74```

75 

76`backend-standard`를 설치하면 네 가지 종속성이 모두 해결되고 설치됩니다.

77 

78나중에 표준 세트에 도구를 추가하려면 추가 종속성과 함께 새로운 `backend-standard` 버전을 게시합니다. 마켓플레이스가 [자동 업데이트](/docs/ko/discover-plugins#configure-auto-updates)되지 않으면 엔지니어는 다음 두 가지 방법 중 하나로 새 버전을 받습니다:

79 

80* `/plugin`에서 마켓플레이스의 자동 업데이트를 활성화합니다. 다음 자동 업데이트에서 번들이 새 버전으로 이동하고 추가되는 모든 종속성이 설치됩니다.

81* `claude plugin update backend-standard`를 실행한 후 `/reload-plugins`를 실행하여 새로 추가된 종속성을 설치합니다.

82 

83조직 전체에 번들을 배포하려면 [관리 설정](/docs/ko/settings-reference#enabledplugins)의 `enabledPlugins`에 번들 플러그인을 추가합니다.

84 

85<h2 id="depend-on-a-plugin-from-another-marketplace">

86 다른 마켓플레이스의 플러그인에 종속

87</h2>

88 

89기본적으로 Claude Code는 플러그인을 선언하는 플러그인과 다른 마켓플레이스에 있는 종속성을 자동 설치하기를 거부합니다. 이는 한 마켓플레이스가 검토하지 않은 소스의 플러그인을 자동으로 가져오는 것을 방지합니다.

90 

91이를 허용하려면 루트 마켓플레이스의 유지 관리자가 대상 마켓플레이스 이름을 `marketplace.json`의 `allowCrossMarketplaceDependenciesOn`에 추가합니다. 루트 마켓플레이스는 사용자가 설치하는 플러그인을 호스팅하는 마켓플레이스이며, 해당 허용 목록만 참조되므로 신뢰가 중간 마켓플레이스를 통해 연결되지 않습니다.

92 

93다음 `marketplace.json`은 `deploy-kit`이 `acme-shared`의 플러그인에 종속되도록 허용합니다:

94 

95```json .claude-plugin/marketplace.json theme={null}

96{

97 "name": "acme-tools",

98 "owner": { "name": "Acme" },

99 "allowCrossMarketplaceDependenciesOn": ["acme-shared"],

100 "plugins": [

101 {

102 "name": "deploy-kit",

103 "source": "./deploy-kit",

104 "dependencies": [

105 { "name": "audit-logger", "marketplace": "acme-shared" }

106 ]

107 }

108 ]

109}

110```

111 

112필드가 없거나 대상 마켓플레이스를 포함하지 않으면 설정할 필드의 이름을 지정하는 `cross-marketplace` 오류로 설치가 실패합니다. 사용자는 여전히 종속성을 수동으로 먼저 설치할 수 있으며, 이는 허용 목록을 변경하지 않고 제약을 만족합니다.

113 

114<h2 id="test-a-plugin-and-its-dependency-locally">

115 플러그인과 그 종속성을 로컬에서 테스트하기

116</h2>

117 

118플러그인을 개발하고 동시에 그 플러그인이 의존하는 플러그인도 개발하는 경우, `--plugin-dir`을 사용하여 둘 다 로드합니다:

119 

120```bash theme={null}

121claude --plugin-dir ./my-dependency --plugin-dir ./my-plugin

122```

123 

124종속성의 로컬 복사본은 항목이 마켓플레이스를 지정하는 경우에도 플러그인의 종속성 항목을 만족하므로, 마켓플레이스에서 종속성을 설치할 필요가 없습니다. Claude Code는 로컬 복사본에 대해 [버전 제약](#declare-a-dependency-with-a-version-constraint)을 확인하지 않으므로, 로컬 `plugin.json`에는 `version`이 필요하지 않습니다. v2.1.242 이전에는 마켓플레이스를 지정하는 종속성 항목이 로컬 복사본과 일치하지 않았으며, Claude Code는 로드 시 플러그인을 비활성화했습니다.

125 

126두 플러그인이 하나의 상위 폴더에 있는 경우, 해당 폴더를 `--plugin-dir`에 한 번만 전달할 수 있습니다. 폴더 자체가 플러그인이 아닌 경우, Claude Code는 `.claude-plugin/plugin.json`을 가진 각 하위 폴더를 로드합니다. Claude Code v2.1.265 이상이 필요합니다.

127 

128마켓플레이스에서 종속성을 설치하지 않은 경우, 로컬 복사본이 사라지면 플러그인 로드가 중지됩니다:

129 

130* **로컬 복사본을 비활성화한 경우**: Claude Code는 다음 플러그인 로드 시 플러그인을 비활성화합니다. 마켓플레이스를 지정하는 종속성 항목의 경우, Claude Code는 `Dependency "<name>@inline" is disabled — enable it or remove the dependency`를 보고합니다. 단순 이름 항목의 경우, 종속성을 단순 이름으로 보고합니다. `<name>@inline`은 Claude Code가 모든 `--plugin-dir` 및 `--plugin-url` 플러그인을 식별하는 방식입니다.

131* **종속성의 `--plugin-dir` 플래그 없이 세션을 시작한 경우**: Claude Code는 종속성이 설치되지 않았다고 보고합니다. 플래그를 다시 전달하거나 마켓플레이스에서 종속성을 설치합니다.

132 

133<h2 id="tag-plugin-releases-for-version-resolution">

134 버전 해석을 위한 태그 플러그인 릴리스

135</h2>

136 

137Claude Code는 의존성을 호스팅하는 저장소의 git 태그에 대해 버전 제약을 해석합니다. `github`, `url`, `git-subdir` [플러그인 소스](/docs/ko/plugin-marketplaces#plugin-sources)의 경우 플러그인 자체 저장소이거나, 마켓플레이스가 상대 경로로 참조하는 플러그인의 경우 마켓플레이스 저장소입니다. Claude Code가 의존성의 사용 가능한 버전을 찾으려면 업스트림 플러그인의 릴리스가 특정 명명 규칙을 사용하여 태그되어야 합니다.

138 

139각 릴리스를 `{plugin-name}--v{version}`으로 태그하십시오. 여기서 `{version}`은 해당 커밋의 `plugin.json`에 있는 `version` 필드와 일치합니다. 플러그인 디렉터리에서 다음을 실행하십시오:

140 

141```bash theme={null}

142claude plugin tag --push

143```

144 

145`claude plugin tag` 명령은 플러그인의 매니페스트와 포함된 마켓플레이스 항목에서 태그 이름을 파생합니다. 태그를 생성하기 전에 플러그인 내용을 검증하고, `plugin.json`과 마켓플레이스 항목이 버전에 동의하는지 확인하고, 플러그인 디렉터리 아래의 깨끗한 작업 트리를 요구하며, 태그가 이미 존재하면 거부합니다.

146 

147* `--push`는 태그를 `origin` 원격으로 푸시하므로 저장소에 구성된 `origin` 원격이 필요합니다. `--remote`를 전달하여 다른 원격으로 푸시하십시오.

148* 푸시가 실패하면 태그는 여전히 로컬로 생성되고 명령은 오류와 함께 종료됩니다.

149* `--push`를 사용하면 성공적인 실행은 `Created tag secrets-vault--v2.1.0` 및 `Pushed to origin`으로 끝나며, 마지막 줄은 푸시한 원격의 이름을 지정합니다. `--push` 없이는 명령이 대신 실행할 `git push` 명령을 인쇄합니다.

150* `--dry-run`은 생성하지 않고 태그될 내용을 인쇄합니다.

151 

152`git tag secrets-vault--v2.1.0`을 직접 실행하는 것은 `plugin.json`과 마켓플레이스 항목을 직접 동기화 상태로 유지하면 동등합니다.

153 

154플러그인 이름 접두사를 사용하면 하나의 마켓플레이스 저장소가 독립적인 버전 라인을 가진 여러 플러그인을 호스팅할 수 있습니다. `--v` 구분자는 전체 플러그인 이름에 대한 접두사 일치로 파싱되므로 하이픈을 포함하는 플러그인 이름이 올바르게 처리됩니다.

155 

156`{ "name": "secrets-vault", "version": "~2.1.0" }`을 선언하는 플러그인을 설치할 때 Claude Code는 `secrets-vault`를 호스팅하는 저장소의 태그를 나열하고, `secrets-vault--v`로 시작하는 태그로 필터링하고, `~2.1.0`을 만족하는 최고 버전을 가져옵니다. 플러그인 자체 저장소의 태그가 범위를 만족하지 않으면 설치는 `Dependency "secrets-vault@acme-tools" has no git tag satisfying ~2.1.0`으로 실패하며, 이는 의존성을 마켓플레이스와 함께 이름 지정합니다. 일치하는 태그가 없는 상대 경로 플러그인의 경우 Claude Code는 마켓플레이스의 현재 복사본을 대신 설치하고 플러그인이 로드될 때 제약을 확인합니다.

157 

158마켓플레이스가 상대 경로로 참조하는 플러그인의 경우, 로컬 폴더 경로로 추가된 마켓플레이스는 폴더가 git 저장소일 때 동일한 방식으로 태그를 해석합니다. 이는 Claude Code v2.1.196 이상이 필요합니다. 두 가지 경우에 Claude Code는 폴더의 현재 내용에서 의존성을 설치합니다:

159 

160* 이전 버전은 로컬 폴더 마켓플레이스에서 태그를 읽지 않으므로 제약된 의존성은 해당 복사본이 범위를 만족할 때만 로드됩니다.

161* git 저장소가 아닌 로컬 폴더는 버전에 관계없이 태그가 없습니다.

162 

163해석된 태그의 semver는 `plugin.json`의 `version`과 별도로 기록되므로 제약 확인은 `plugin.json`이 해당 커밋에서 오래된 값을 가지고 있더라도 실제로 가져온 태그를 사용합니다. 태그 해석 설치의 캐시 디렉터리 이름에는 12자 커밋-SHA 접미사가 포함되므로 유지 관리자가 태그를 다른 커밋으로 강제 이동하면 다음 설치는 오래된 내용을 재사용하는 대신 새로운 캐시 디렉터리를 가져옵니다.

164 

165<Note>

166 `npm`, `archive`, 또는 `command` [플러그인 소스](/docs/ko/plugin-marketplaces#plugin-sources)를 가진 의존성의 경우, 태그 기반 해석이 git 지원 소스에만 적용되므로 제약이 어떤 버전을 가져올지 제어하지 않습니다. 제약은 여전히 로드 시간에 확인되며, 설치된 버전이 제약을 만족하지 않으면 종속 플러그인은 `dependency-version-unsatisfied`로 비활성화됩니다. `command` 소스의 경우 Claude Code는 의존성의 `plugin.json`에서 버전을 확인하고 콘텐츠 해시 접미사를 무시합니다. `plugin.json`이 버전을 설정하지 않는 의존성은 제약을 만족하지 않으므로 제약하기 전에 버전을 설정하십시오.

167 

168 Claude Code는 `command` 소스를 가진 의존성을 직접 설치하지 않으므로 사용자는 [먼저 설치합니다](/docs/ko/plugin-marketplaces#how-users-accept-the-command). Claude Code는 의존성의 마켓플레이스 항목에서 `headersHelper`를 실행하지 않으므로 사용자는 [먼저 해당 플러그인을 설치합니다](/docs/ko/plugin-marketplaces#how-users-accept-a-headershelper-command).

169</Note>

170 

171<h2 id="how-constraints-interact">

172 제약이 상호 작용하는 방식

173</h2>

174 

175여러 설치된 플러그인이 동일한 종속성을 제약하면 Claude Code는 해당 범위를 교차하고 모든 범위를 만족하는 가장 높은 버전으로 종속성을 해결합니다. 아래 표는 일반적인 조합이 어떻게 해결되는지 보여줍니다.

176 

177| 플러그인 A 필요 | 플러그인 B 필요 | 결과 |

178| :-------- | :-------- | :------------------------------------------------------------ |

179| `^2.0` | `>=2.1` | `2.1.0` 이상의 가장 높은 `2.x` 태그에서 하나의 설치입니다. 두 플러그인 모두 로드됩니다. |

180| `~2.1` | `~3.0` | 플러그인 B 설치가 `range-conflict`로 실패합니다. 플러그인 A와 종속성은 그대로 유지됩니다. |

181| `=2.1.0` | none | 종속성은 `2.1.0`에 머물러 있습니다. 플러그인 A가 설치된 동안 자동 업데이트는 최신 버전을 건너뜁니다. |

182 

183자동 업데이트는 마켓플레이스의 최신 버전이 아닌 모든 설치된 플러그인의 범위를 만족하는 가장 높은 git 태그에서 제약된 종속성을 가져오므로, 종속성은 허용된 범위 내에서 계속 업데이트를 받습니다. 모든 범위를 만족하는 태그가 없으면 자동 업데이트는 해당 종속성을 건너뛰고 `/plugin` 오류 탭에서 건너뛴 내용을 나열하며 제약 플러그인의 이름을 지정합니다.

184 

185종속성을 제약하는 마지막 플러그인을 제거하면 종속성은 더 이상 유지되지 않으며 다음 업데이트에서 마켓플레이스 항목 추적을 재개합니다.

186 

187<h2 id="enable-or-disable-a-plugin-with-dependencies">

188 플러그인 종속성 활성화 또는 비활성화

189</h2>

190 

191이 섹션은 마켓플레이스에서 설치한 플러그인을 다룹니다. `--plugin-dir`로 로드한 복사본의 경우 [플러그인 및 해당 종속성을 로컬에서 테스트](#test-a-plugin-and-its-dependency-locally)를 참조하십시오.

192 

193플러그인을 활성화하면 이에 종속된 플러그인도 활성화되며, 다른 활성화된 플러그인이 여전히 필요로 하면 플러그인을 비활성화할 수 없습니다.

194 

195플러그인을 활성화하면 Claude Code는 동일한 범위에서 해당 종속성도 활성화합니다. 종속성에 자체 종속성이 있으면 Claude Code는 이들도 활성화합니다. 성공 메시지는 명명한 플러그인과 함께 활성화된 다른 항목을 나열합니다. 종속성을 활성화할 수 없으면 명령이 거부되고 무엇이 차단하고 있는지, 어떻게 해결할지 알려줍니다:

196 

197| 조건 | 결과 |

198| :--------------------------------------- | :--------------------------------------------------------- |

199| 종속성이 설치되지 않음 | 활성화가 실패하고 누락된 각 종속성에 대해 `claude plugin install` 명령을 인쇄합니다. |

200| 종속성이 조직의 플러그인 정책에 의해 차단됨 | 활성화가 실패하고 차단된 종속성의 이름을 지정합니다. |

201| 종속성이 대상 범위보다 우선 순위가 높은 범위에서 `false`로 설정됨 | 활성화가 실패합니다. 해당 범위에서 종속성을 활성화하거나 `--scope`를 전달하여 거기에 쓰기합니다. |

202| 모든 종속성이 설치되고 허용됨 | 활성화가 성공하고 대상 범위에서 아직 활성화되지 않은 플러그인과 각 종속성에 대해 `true`를 씁니다. |

203 

204이는 종속성이 매니페스트에서 [`defaultEnabled: false`](/docs/ko/plugins-reference#default-enablement)를 설정하는 경우에도 적용됩니다. Claude Code는 이에 대해 명시적 `true`를 쓰기 때문입니다. 설치 시에도 동일하게 적용됩니다. 활성화된 플러그인을 만족시키기 위해 가져온 종속성은 자체 기본값에 관계없이 `true`로 설치됩니다.

205 

206플러그인을 비활성화하면 다른 활성화된 플러그인이 여전히 이에 종속되면 Claude Code가 거부합니다. 오류는 이에 종속된 플러그인의 이름을 지정하고 올바른 순서로 비활성화하는 연쇄 명령을 제공하며, 요청한 것으로 끝납니다.

207 

208예를 들어 `deploy-kit`이 `secrets-vault`에 종속되면 `secrets-vault`만 비활성화하면 다음과 유사한 출력으로 실패합니다:

209 

210```text theme={null}

211secrets-vault is still required by deploy-kit. Disable that plugin first, or

212disable everything together: claude plugin disable deploy-kit@acme-tools && claude plugin disable secrets-vault@acme-tools

213```

214 

215오류에서 연쇄 명령을 복사하여 한 단계에서 전체 집합을 비활성화합니다.

216 

217<h2 id="remove-orphaned-auto-installed-dependencies">

218 고아 자동 설치 종속성 제거

219</h2>

220 

221자동 설치된 종속성은 이를 설치한 플러그인이 제거된 후에도 디스크에 남아 있으며, 종속 플러그인을 다시 설치하거나 종속성을 직접 계속 사용하려는 경우를 대비합니다. 이를 정리하려면 `claude plugin prune`을 실행하여 더 이상 설치된 플러그인이 필요로 하지 않는 자동 설치된 종속성을 나열하고 확인 프롬프트 후 제거합니다.

222 

223```bash theme={null}

224claude plugin prune

225```

226 

227제거 대상이 없으면 명령은 `Nothing to prune`을 이유와 함께 출력하고 종료합니다. 이는 새로 설치한 경우의 예상된 출력이며 오류가 아닙니다.

228 

229기본적으로 prune은 사용자 범위에서 작동하며 제거하기 전에 확인을 요청합니다:

230 

231* `--scope project` 또는 `--scope local`은 다른 범위를 대상으로 합니다.

232* `--dry-run`은 아무것도 변경하지 않고 제거될 항목을 나열합니다.

233* `-y`는 확인 프롬프트를 건너뜁니다. stdin 또는 stdout이 터미널이 아닐 때 prune은 고아를 나열하고 `-y`를 전달하지 않는 한 제거하지 않고 종료합니다.

234 

235제거의 일부로 prune하려면 `claude plugin uninstall`에 `--prune`을 전달합니다. 명명된 플러그인을 제거한 후 Claude Code는 이제 고아가 된 자동 설치된 종속성을 검사하고 제거합니다. 직접 설치한 플러그인은 절대 prune되지 않으며, 다른 플러그인의 `dependencies` 배열을 통해 자동으로 설치된 플러그인만 prune됩니다.

236 

237동일한 확인 동작이 적용됩니다. stdin 또는 stdout이 터미널이 아닐 때 제거는 여전히 완료되지만 prune 단계는 고아를 나열하고 `-y`를 전달하지 않는 한 제거하지 않습니다.

238 

239예를 들어 `deploy-kit`을 제거하고 이를 남기는 종속성을 정리하려면:

240 

241```bash theme={null}

242claude plugin uninstall deploy-kit --prune

243```

244 

245<h2 id="resolve-dependency-errors">

246 종속성 오류 해결

247</h2>

248 

249종속성 문제는 `claude plugin list` 및 `/plugin` 인터페이스에 표시되며, 이 표의 리터럴 코드가 아닌 설명적 오류 메시지로 나타납니다. Claude Code는 오류를 해결할 때까지 영향을 받는 플러그인을 비활성화합니다. 아래 표에는 가장 일반적인 오류와 해결 방법이 나열되어 있습니다.

250 

251| 오류 | 의미 | 해결 방법 |

252| :------------------------------- | :-------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

253| `dependency-unsatisfied` | 선언된 종속성이 설치되지 않았거나 설치되었지만 비활성화되어 있습니다. | 오류 메시지에 표시된 `claude plugin install` 명령을 실행합니다. 종속성의 마켓플레이스가 아직 구성되지 않은 경우 `claude plugin marketplace add`로 추가하면 Claude Code가 종속성을 자동으로 해결합니다. 종속성이 비활성화된 경우 활성화합니다. |

254| `range-conflict` | 종속성의 버전 요구 사항을 결합할 수 없습니다. 오류 메시지는 원인의 이름을 지정합니다: 모든 범위를 만족하는 버전이 없거나, 범위가 유효한 semver 구문이 아니거나, 결합된 범위가 너무 복잡하여 교차할 수 없습니다. | 충돌하는 플러그인 중 하나를 제거하거나 업데이트하고, 유효하지 않은 `version` 문자열을 수정하고, 긴 `\|\|` 체인을 단순화하거나, 업스트림 작성자에게 제약을 넓히도록 요청합니다. |

255| `dependency-version-unsatisfied` | 설치된 종속성의 버전이 이 플러그인의 선언된 범위를 벗어났습니다. | `claude plugin install <dependency>@<marketplace>`를 실행하여 모든 현재 제약에 대해 종속성을 다시 해결합니다. |

256| `no-matching-tag` | 종속성의 저장소에 범위를 만족하는 `{name}--v*` 태그가 없습니다. | 업스트림이 위의 규칙을 사용하여 릴리스에 태그를 지정했는지 확인하거나 범위를 완화합니다. |

257 

258이러한 오류를 프로그래밍 방식으로 확인하려면 `claude plugin list --json`을 실행합니다. 문제가 있는 플러그인에는 이를 나열하는 `errors` 필드가 포함됩니다. 정상적으로 로드된 플러그인은 이 필드를 생략합니다.

259 

260<h2 id="see-also">

261 참고 항목

262</h2>

263 

264* [플러그인 생성](/docs/ko/plugins): 기술, 에이전트 및 훅으로 플러그인 빌드

265* [플러그인 마켓플레이스 생성 및 배포](/docs/ko/plugin-marketplaces): 팀을 위한 플러그인 호스팅

266* [플러그인 참조](/docs/ko/plugins-reference#plugin-manifest-schema): 전체 `plugin.json` 스키마

267* [버전 관리](/docs/ko/plugins-reference#version-management): 플러그인의 자체 버전이 어떻게 해결되고 캐시 키로 사용되는지

plugin-evals.md +62 −25

Details

6 6 

7> Claude Code 플러그인에 대한 eval 케이스를 작성하고, claude plugin eval로 실행하며, 결과를 채점하고, 플러그인 없는 기준선과 비교하고, CI에서 점수를 기준으로 게이트합니다.7> Claude Code 플러그인에 대한 eval 케이스를 작성하고, claude plugin eval로 실행하며, 결과를 채점하고, 플러그인 없는 기준선과 비교하고, CI에서 점수를 기준으로 게이트합니다.

8 8 

9`claude plugin eval`은 [플러그인](/docs/ko/plugins)을 테스트 케이스 모음에 대해 실행하고 결과를 채점합니다. 각 케이스는 현실적인 프롬프트와 하나 이상의 채점자로 구성됩니다. 채점자는 Claude가 생성한 내용에 대한 통과/실패 확인입니다. 예를 들어 응답에 대한 정규식, 특정 도구가 호출되었는지 여부, 또는 두 번째 모델이 응답을 판단하는 루브릭입니다.9`claude plugin eval` 셸 명령은 [플러그인](/docs/ko/plugins/overview)을 테스트 케이스 모음에 대해 실행하고 결과를 채점합니다. 각 케이스는 현실적인 프롬프트와 하나 이상의 채점자로 구성됩니다. 채점자는 Claude가 생성한 내용에 대한 통과/실패 확인입니다. 예를 들어 응답에 대한 정규식, 특정 도구가 호출되었는지 여부, 또는 두 번째 모델이 응답을 판단하는 루브릭입니다.

10 10 

11모음을 직접 작성할 필요는 없습니다. `claude plugin eval init`은 플러그인에 대해 질문하고, 케이스와 채점자를 제안하고, 시도하고, 파일을 작성합니다. 이미 열려 있는 세션에서 Claude에게 동일한 작업을 수행하도록 요청할 수도 있습니다.11모음을 직접 작성할 필요는 없습니다. `claude plugin eval init`은 플러그인에 대해 질문하고, 케이스와 채점자를 제안하고, 시도하고, 파일을 작성합니다. 이미 열려 있는 세션에서 Claude에게 동일한 작업을 수행하도록 요청할 수도 있습니다.

12 12 

13evals를 사용하여 플러그인이 Claude를 올바른 결과로 얼마나 안정적으로 유도하는지 측정하고, 플러그인을 변경하거나 새로운 모델이 출시될 때 회귀를 포착하고, 플러그인이 플러그인 없는 경우와 비교하여 무엇을 기여하는지 확인합니다.13evals를 사용하여:

14 14 

15이 페이지는 작동하는 플러그인을 가지고 있고 그 동작을 테스트하려는 플러그인 및 스킬 작성자와 CI에서 플러그인 변경을 게이트하는 팀을 위한 것입니다. 케이스 형식은 [스킬 생성자 플러그인](/docs/ko/skills#run-evals-with-skill-creator)이 사용하는 `evals/evals.json` 파일과 별개입니다. 플러그인을 만들려면 [플러그인 만들기](/docs/ko/plugins)를 참조하고, 플러그인의 동작이 아닌 구문 및 스키마 오류를 확인하려면 [`claude plugin validate`](/docs/ko/plugins-reference#plugin-validate)를 사용합니다.15* 플러그인이 Claude를 올바른 결과로 얼마나 안정적으로 유도하는지 측정합니다

16* 플러그인을 변경하거나 새로운 모델이 출시될 때 회귀를 포착합니다

17* 플러그인이 플러그인 없는 경우와 비교하여 무엇을 기여하는지 확인합니다

18 

19이 페이지는 작동하는 플러그인을 가지고 있고 그 동작을 테스트하려는 플러그인 및 스킬 작성자와 CI에서 플러그인 변경을 게이트하는 팀을 위한 것입니다. 케이스 형식은 [스킬 생성자 플러그인](/docs/ko/skills#run-evals-with-skill-creator)이 사용하는 `evals/evals.json` 파일과 별개입니다. 플러그인을 만들려면 [플러그인 만들기](/docs/ko/plugins/create)를 참조하고, 플러그인의 동작이 아닌 구문 및 스키마 오류를 확인하려면 [`claude plugin validate`](/docs/ko/plugins/cli-reference#plugin-validate)를 사용합니다.

16 20 

17<Note>21<Note>

18 모든 eval 실행과 모든 판사 채점자는 계정에 대한 실제 모델 호출이며, 플랜의 사용량 또는 API 청구에 계산되므로 먼저 [요구사항](#requirements)을 확인합니다. 그런 다음 [첫 번째 eval 모음 만들기](#create-your-first-eval-suite)를 진행하거나, 이미 있는 경우 [CI에서 evals 실행](#run-evals-in-ci)으로 이동합니다.22 모든 eval 실행과 모든 판사 채점자는 계정에 대한 실제 모델 호출이며, 플랜의 사용량 또는 API 청구에 계산되므로 먼저 [요구사항](#requirements)을 확인합니다. 그런 다음 [첫 번째 eval 모음 만들기](#create-your-first-eval-suite)를 진행하거나, 이미 있는 경우 [CI에서 evals 실행](#run-evals-in-ci)으로 이동합니다.


25플러그인 evals를 실행하려면 다음이 필요합니다.29플러그인 evals를 실행하려면 다음이 필요합니다.

26 30 

27* Claude Code v2.1.269 이상. `claude --version`으로 확인하고 `claude update`로 업그레이드합니다.31* Claude Code v2.1.269 이상. `claude --version`으로 확인하고 `claude update`로 업그레이드합니다.

28* `plugin.json` 또는 `.claude-plugin/plugin.json` 매니페스트가 있는 플러그인 디렉토리, 또는 [스킬 디렉토리 플러그인](/docs/ko/plugins-reference#skills-directory-plugins).32* `plugin.json` 또는 `.claude-plugin/plugin.json` 매니페스트가 있는 플러그인 디렉토리, 또는 [스킬 디렉토리 플러그인](/docs/ko/plugins/loading#plugins-shared-through-a-repository).

29* 일반적인 Claude Code 세션에서 사용하는 동일한 인증 및 모델 공급자. Eval 실행, 판사 채점 채점자, `claude plugin eval init`은 자격 증명으로 모델을 호출하므로 플랜의 사용량 제한 또는 API 청구에 계산됩니다. 명령이 비용을 보고할 때, 그 수치는 해당 호출의 [정가 추정](/docs/ko/costs)입니다.33* 일반적인 Claude Code 세션에서 사용하는 동일한 인증 및 모델 공급자. Eval 실행, 판사 채점 채점자, `claude plugin eval init`은 자격 증명으로 모델을 호출하므로 플랜의 사용량 제한 또는 API 청구에 계산됩니다. 명령이 비용을 보고할 때, 그 수치는 해당 호출의 [정가 추정](/docs/ko/costs)입니다.

30 34 

31<h2 id="how-an-eval-run-works">35<h2 id="how-an-eval-run-works">


50 플러그인 없는 기준선54 플러그인 없는 기준선

51</h3>55</h3>

52 56 

53높은 점수 자체만으로는 플러그인이 도움이 되었는지 알려주지 않습니다. Claude가 플러그인 없이도 동일하게 잘 수행할 수 있기 때문입니다. 둘을 분리하기 위해 각 케이스의 실행은 기본적으로 플러그인이 로드되지 않은 상태에서 반복되며, 두 점수 `WITH`와 `W/OUT`을 얻습니다. 그들의 차이 `Δ`는 플러그인이 기여한 것입니다. 케이스가 플러그인 있음과 없음 모두에서 1.0을 점수하면, 플러그인이 통과하게 한 것이 아닙니다. 두 실행 세트를 with-arm과 without-arm이라고 합니다. [플러그인 없는 기준선과 비교](#compare-against-a-no-plugin-baseline)는 두 arm에서 채점자가 어떻게 채점되는지, 그리고 기준선을 끄는 방법을 다룹니다.57높은 점수 자체만으로는 플러그인이 도움이 되었는지 알려주지 않습니다. Claude가 플러그인 없이도 동일하게 잘 수행할 수 있기 때문입니다. 둘을 분리하기 위해 각 케이스의 실행은 기본적으로 플러그인이 로드되지 않은 상태에서 반복되며, 두 점수 `WITH`와 `W/OUT`을 얻습니다. 그들의 차이 `Δ`는 플러그인이 기여한 것입니다. 케이스가 플러그인 있음과 없음 모두에서 1.0을 점수하면, 플러그인이 통과하게 한 것이 아닙니다.

58 

59두 실행 세트를 with-arm과 without-arm이라고 합니다. [플러그인 없는 기준선과 비교](#compare-against-a-no-plugin-baseline)는 두 arm에서 채점자가 어떻게 채점되는지, 그리고 기준선을 끄는 방법을 다룹니다.

54 60 

55<h2 id="create-your-first-eval-suite">61<h2 id="create-your-first-eval-suite">

56 첫 번째 eval 모음 만들기62 첫 번째 eval 모음 만들기


184FAIL if <what a wrong or missing response looks like>.190FAIL if <what a wrong or missing response looks like>.

185```191```

186 192 

187그런 다음 스킬이 답변을 생성했는지 확인하는 두 번째 채점자를 추가합니다. `evals/first-case/graders/skill-fired.md`를 만들고, `your-skill-name`을 스킬의 `SKILL.md`에서 `name`으로 바꿉니다.193그런 다음 스킬이 답변을 생성했는지 확인하는 두 번째 채점자를 추가합니다. `evals/first-case/graders/skill-fired.md`를 만들고, `your-skill-name`을 `skills/` 아래의 스킬 디렉토리 이름으로 바꿉니다. 이것은 Claude가 호출하는 이름입니다.

188 194 

189```markdown theme={null}195```markdown theme={null}

190---196---


202 prompt.md에서 실행 제한 및 도구 설정208 prompt.md에서 실행 제한 및 도구 설정

203</h3>209</h3>

204 210 

205`prompt.md` frontmatter에서 케이스의 `max_turns`, `timeout_seconds`, `model`, `tags` 및 사용할 수 있는 `allowed_tools`를 설정합니다. [prompt.md frontmatter](#prompt-md-fields) 참조는 모든 필드와 기본값을 나열합니다. Claude는 작성한 대로 본문을 정확히 받습니다. 그 안의 `@path` 언급은 파일 첨부로 확장되지 않으므로 Claude가 파일을 읽어야 하면 `allowed_tools`에서 도구를 부여합니다.211`prompt.md` frontmatter에서 케이스의 `max_turns`, `timeout_seconds`, `model`, `tags` 및 사용할 수 있는 `allowed_tools`를 설정합니다. [prompt.md frontmatter](#prompt-md-fields) 참조는 모든 필드와 기본값을 나열합니다.

212 

213Claude는 작성한 대로 본문을 정확히 받습니다. 그 안의 `@path` 언급은 파일 첨부로 확장되지 않으므로 Claude가 파일을 읽어야 하면 `allowed_tools`에서 도구를 부여합니다.

206 214 

207<h3 id="grade-the-result">215<h3 id="grade-the-result">

208 채점자 선택 및 가중치216 채점자 선택 및 가중치


234두 arm 실행에서 일부 채점자는 `scored: false`로 보고됩니다. "스킬이 호출되었습니다"와 같은 확인은 플러그인 없이는 절대 통과할 수 없으므로 계산하면 without-arm이 0으로 향하고 `Δ`를 부풀립니다. 두 arm을 비교 가능하게 유지하기 위해 Claude Code는 두 arm에서 이러한 채점자를 점수에서 제외하고 with-arm에서 통과/실패 표시기로만 보고합니다. 여기에는 다음이 포함됩니다.242두 arm 실행에서 일부 채점자는 `scored: false`로 보고됩니다. "스킬이 호출되었습니다"와 같은 확인은 플러그인 없이는 절대 통과할 수 없으므로 계산하면 without-arm이 0으로 향하고 `Δ`를 부풀립니다. 두 arm을 비교 가능하게 유지하기 위해 Claude Code는 두 arm에서 이러한 채점자를 점수에서 제외하고 with-arm에서 통과/실패 표시기로만 보고합니다. 여기에는 다음이 포함됩니다.

235 243 

236* `tool`이 `Skill`인 모든 `tool_used` 채점자244* `tool`이 `Skill`인 모든 `tool_used` 채점자

245* `target: mock_calls`를 가진 모든 `regex` 채점자 및 `focus: mock_calls`를 가진 모든 `llm` 채점자. 각 [모의 서버](#mock-mcp-servers)가 플러그인이 선언하는 것일 때

237* `arm: with-only`로 표시한 모든 채점자246* `arm: with-only`로 표시한 모든 채점자

238 247 

239케이스의 모든 채점자가 이 중 하나인 경우, 점수할 것이 남지 않으므로 대신 정상적으로 채점됩니다. 채점자에 `arm: both`를 설정하여 `min: 0` 및 `max: 0`으로 "스킬을 호출하지 않아야 함" 확인을 원할 때 두 arm에서 채점하도록 강제합니다. `--ablation none` 아래에서는 아무것도 제외되지 않으므로 동일한 모음이 두 모드에서 다른 절대 점수를 생성할 수 있습니다.248세 가지 설정이 해당 제외를 변경합니다.

249 

250* **모든 채점자 제외**: 케이스의 모든 채점자가 제외된 집합에 있으면, 점수할 것이 남지 않으므로 대신 정상적으로 채점됩니다.

251* **`arm: both`**: 채점자에 `arm: both`를 설정하여 관계없이 두 arm에서 채점하도록 강제합니다. 이것은 `min: 0` 및 `max: 0`으로 "스킬을 호출하지 않아야 함" 확인을 원할 때 필요합니다.

252* **`--ablation none`**: `--ablation none` 아래에서는 아무것도 제외되지 않으므로 동일한 모음이 두 모드에서 다른 절대 점수를 생성할 수 있습니다.

240 253 

241<h3 id="use-a-different-eval-directory">254<h3 id="use-a-different-eval-directory">

242 다른 eval 디렉토리 사용255 다른 eval 디렉토리 사용


261 274 

262각 실행은 빈 작업 공간에서 시작됩니다. 케이스가 프롬프트 이상이 필요할 때 `prompt.md` 옆에 `context` 블록이 있는 `case.yaml`을 추가합니다.275각 실행은 빈 작업 공간에서 시작됩니다. 케이스가 프롬프트 이상이 필요할 때 `prompt.md` 옆에 `context` 블록이 있는 `case.yaml`을 추가합니다.

263 276 

264고정 파일 또는 git 저장소를 먼저 만들려면 케이스 디렉토리에 Bash 스크립트를 작성하고 `context.scaffold_script`에서 이름을 지정합니다. 스크립트는 에이전트의 샌드박스 외부에서 사용자로 실행되며 `--scaffold`를 전달할 때만 실행되므로 해당 플래그는 사용자 또는 조직이 작성한 모음에만 전달합니다. 이전 대화를 계속하려면 기록을 `.jsonl` 파일로 저장하고 `context.history_file`에서 이름을 지정합니다. 그러면 케이스의 프롬프트가 다음 사용자 턴이 됩니다. Claude가 실행 중에 케이스의 고정 디렉토리를 읽도록 하려면 `context.add_dirs`에 나열합니다.277* **고정 파일 또는 git 저장소**: 케이스 디렉토리에 Bash 스크립트를 작성하고 `context.scaffold_script`에서 이름을 지정합니다. 스크립트는 에이전트의 샌드박스 외부에서 사용자로 실행되며 `--scaffold`를 전달할 때만 실행되므로 해당 플래그는 사용자 또는 조직이 작성한 모음에만 전달합니다.

278* **이전 대화를 계속하려면**: 기록을 `.jsonl` 파일로 저장하고 `context.history_file`에서 이름을 지정합니다. 그러면 케이스의 프롬프트가 다음 사용자 턴이 됩니다.

279* **Claude가 실행 중에 읽을 수 있는 고정 디렉토리**: `context.add_dirs`에 나열합니다.

265 280 

266`case.yaml`은 또한 `schema_version: "1.1"` 및 `name`이 필요합니다. [case.yaml 필드](#case-yaml-fields) 참조에는 전체 목록이 있습니다.281`case.yaml`은 또한 `schema_version: "1.1"` 및 `name`이 필요합니다. [case.yaml 필드](#case-yaml-fields) 참조에는 전체 목록이 있습니다.

267 282 


280 MCP 서버 모의295 MCP 서버 모의

281</h3>296</h3>

282 297 

283뒤에 있는 실제 서비스 없이 MCP 도구를 호출하는 스킬이 있는 플러그인을 평가할 수 있습니다. 전체 모음에 대해 `evals/mocks/<server>/<tool>.md` 아래에 도구당 하나의 Markdown 파일을 넣거나, 하나의 케이스에 대해 케이스의 자체 `mocks/` 디렉토리 아래에 넣습니다. 여기서 `<server>`는 플러그인의 [MCP 구성](/docs/ko/plugins-reference#mcp-servers)에서 서버의 이름입니다.298뒤에 있는 실제 서비스 없이 MCP 도구를 호출하는 스킬이 있는 플러그인을 평가할 수 있습니다. 전체 모음에 대해 `evals/mocks/<server>/<tool>.md` 아래에 도구당 하나의 Markdown 파일을 넣거나, 하나의 케이스에 대해 케이스의 자체 `mocks/` 디렉토리 아래에 넣습니다. 여기서 `<server>`는 플러그인의 [MCP 구성](/docs/ko/plugins/components#mcp-servers)에서 서버의 이름입니다.

284 299 

285실행은 요청하지 않는 한 플러그인의 실제 MCP 서버를 시작하지 않습니다. Claude Code는 각 서버의 자체 이름 아래에 대체를 등록합니다. 모의 파일이 있는 도구는 그것에서 답변하고 `--allow-tools` 부여 없이 허용되며, 모의 파일이 없는 도구는 Claude에서 사용할 수 없습니다. 모의가 전혀 없는 서버는 케이스의 `mocked:` 진행 라인에 `plugin_<plugin>_<server>[not started: no mock]`으로 나타납니다.300실행은 요청하지 않는 한 플러그인의 실제 MCP 서버를 시작하지 않습니다. Claude Code는 각 서버의 자체 이름 아래에 대체를 등록합니다. 모의 파일이 있는 도구는 그것에서 답변하고 `--allow-tools` 부여 없이 허용되며, 모의 파일이 없는 도구는 Claude에서 사용할 수 없습니다. 모의가 전혀 없는 서버는 케이스의 `mocked:` 진행 라인에 `plugin_<plugin>_<server>[not started: no mock]`으로 나타납니다.

286 301 


296Created issue #4821: {{input.title}}311Created issue #4821: {{input.title}}

297```312```

298 313 

299`{{input.<field>}}`로 호출의 입력에서 필드를 삽입하고, `{{file:fixtures/{input.<field>}.json}}`으로 모의 옆의 고정 파일의 내용을 삽입합니다. `expect:` 블록은 입력을 보호합니다. 호출이 위반하면 실행이 점수 0으로 중단되고 이유를 기록합니다. 따라서 케이스는 플러그인이 서버에 요청한 것을 주장할 수 있습니다. 본문을 도구 오류로 반환하려면 `error: true`를 설정하거나, 본문의 지침에서 서버로 답변하도록 작은 모델을 가지려면 `type: agent`를 설정합니다. [모의 파일 참조](#mock-files)는 모든 키와 `_server.md` 및 `_tools.json` 파일을 나열합니다.314모의 파일의 본문과 frontmatter는 이러한 옵션을 허용합니다.

315 

316* **대체**: `{{input.<field>}}`로 호출의 입력에서 필드를 삽입하고, `{{file:fixtures/{input.<field>}.json}}`으로 모의 옆의 고정 파일의 내용을 삽입합니다.

317* **`expect:`**: `expect:` 블록은 입력을 보호합니다. 호출이 위반하면 실행이 점수 0으로 중단되고 이유를 기록합니다. 따라서 케이스는 플러그인이 서버에 요청한 것을 주장할 수 있습니다.

318* **`error: true`**: 본문을 도구 오류로 반환하려면 `error: true`를 설정합니다.

319* **`type: agent`**: 본문의 지침에서 서버로 답변하도록 작은 모델을 가지려면 `type: agent`를 설정합니다.

320 

321[모의 파일 참조](#mock-files)는 모든 키와 `_server.md` 및 `_tools.json` 파일을 나열합니다.

300 322 

301호출 자체를 채점하려면 채점자를 `target: mock_calls`로 지정합니다.323호출 자체를 채점하려면 채점자를 `target: mock_calls`로 지정합니다.

302 324 


330| `.`과 같은 플러그인의 루트 디렉토리 | 해당 플러그인이 로드된 eval 디렉토리 아래의 모든 케이스 |352| `.`과 같은 플러그인의 루트 디렉토리 | 해당 플러그인이 로드된 eval 디렉토리 아래의 모든 케이스 |

331| 단일 `prompt.md` 또는 `case.yaml` 파일 | 해당 케이스, 포함하는 플러그인이 로드됨 |353| 단일 `prompt.md` 또는 `case.yaml` 파일 | 해당 케이스, 포함하는 플러그인이 로드됨 |

332| 설치된 플러그인 이름, `name` 또는 `name@marketplace` | 설치된 복사본의 eval 디렉토리의 케이스, 설치된 복사본이 로드됨. 결과는 현재 디렉토리의 `./evals/results/` 또는 `--eval-dir`이 있는 `./<dir>/results/`에 기록됨 |354| 설치된 플러그인 이름, `name` 또는 `name@marketplace` | 설치된 복사본의 eval 디렉토리의 케이스, 설치된 복사본이 로드됨. 결과는 현재 디렉토리의 `./evals/results/` 또는 `--eval-dir`이 있는 `./<dir>/results/`에 기록됨 |

333| `name@skills-dir` | [skills-directory 플러그인](/docs/ko/plugins-reference#skills-directory-plugins)의 경우 동일 |355| `name@skills-dir` | [skills-directory 플러그인](/docs/ko/plugins/loading#plugins-shared-through-a-repository)의 경우 동일 |

334| 생략됨 | 현재 디렉토리를 경로로 |356| 생략됨 | 현재 디렉토리를 경로로 |

335 357 

336케이스 이름으로 필터링하려면 `--case <glob>`을 추가하고 주어진 태그 중 하나를 가진 케이스를 유지하려면 `--tag <tag>`을 추가합니다. target을 `--tag`, `--allow-tools` 및 `--json` 앞에 놓습니다. 처음 두 개는 목록을 사용하고 `--json`은 선택적 경로를 사용하므로 각각 뒤에 오는 target을 자신의 값으로 읽습니다.358케이스 이름으로 필터링하려면 `--case <glob>`을 추가하고 주어진 태그 중 하나를 가진 케이스를 유지하려면 `--tag <tag>`을 추가합니다. target을 `--tag`, `--allow-tools` 및 `--json` 앞에 놓습니다. 처음 두 개는 목록을 사용하고 `--json`은 선택적 경로를 사용하므로 각각 뒤에 오는 target을 자신의 값으로 읽습니다.


341 363 

342실행은 권한을 요청하기 위해 중단되지 않습니다. 부여하지 않은 권한이 필요한 기본 제공 도구(예: `Bash`, `Write`, `Edit`, `WebFetch` 및 `WebSearch`)는 세션에서 제거되므로 Claude가 전혀 호출할 수 없습니다.364실행은 권한을 요청하기 위해 중단되지 않습니다. 부여하지 않은 권한이 필요한 기본 제공 도구(예: `Bash`, `Write`, `Edit`, `WebFetch` 및 `WebSearch`)는 세션에서 제거되므로 Claude가 전혀 호출할 수 없습니다.

343 365 

344허용 목록은 케이스가 `allowed_tools`에 나열한 읽기 전용 도구(`Read`, `Glob`, `Grep`, `NotebookRead`, `Skill`, `Agent`, `TodoWrite` 및 작업 도구 `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, `TaskStop`)이며, `--allow-tools`로 부여하는 모든 것이 실행의 모든 케이스에 적용됩니다. 케이스가 `Bash`, `Write`, `Edit`, `WebFetch` 또는 `WebSearch`를 사용하도록 하려면 직접 부여합니다:366실행은 케이스가 `allowed_tools`에 나열한 읽기 전용 도구(`Read`, `Glob`, `Grep`, `NotebookRead`, `Skill`, `AskUserQuestion`, `Agent`, `TodoWrite` 및 작업 도구 `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, `TaskStop`)만 허용하며, `--allow-tools`로 부여하는 모든 것이 실행의 모든 케이스에 적용됩니다. 케이스가 `Bash`, `Write`, `Edit`, `WebFetch` 또는 `WebSearch`를 사용하도록 하려면 직접 부여합니다:

345 367 

346```bash theme={null}368```bash theme={null}

347claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"369claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"

348```370```

349 371 

350케이스가 부여하지 않은 도구를 요청했을 때 실행은 stderr에 `not granted`로 나열합니다. [mocked](#mock-mcp-servers) MCP 서버의 도구는 권한이 필요하지 않습니다. 실제 플러그인 MCP 서버의 도구는 `--allow-real-servers` 또는 `--mocks off`로 시작된 서버와 `--allow-tools "mcp__plugin_my-plugin_github__*"`와 같은 이름으로 부여된 권한이 모두 필요합니다. 플러그인의 MCP 도구는 `mcp__plugin_<plugin>_<server>__<tool>`로 명명됩니다.372케이스가 부여하지 않은 도구를 요청했을 때 진행 출력은 이를 `not granted`로 나열합니다. [mocked](#mock-mcp-servers) MCP 서버의 도구는 권한이 필요하지 않습니다. 실제 플러그인 MCP 서버의 도구는 `--allow-real-servers` 또는 `--mocks off`로 시작된 서버와 `--allow-tools "mcp__plugin_my-plugin_github__*"`와 같은 이름으로 부여된 권한이 모두 필요합니다. 플러그인의 MCP 도구는 `mcp__plugin_<plugin>_<server>__<tool>`로 명명됩니다.

351 373 

352어떤 형태로든 `Bash`를 부여하면 모든 명령이 Claude Code의 [OS 수준 샌드박스](/docs/ko/sandboxing) 아래에서 실행됩니다. 쓰기는 실행의 작업 공간으로 제한되고, 홈 디렉토리와 Claude Code 구성은 읽을 수 없으며, 네트워크 액세스는 `--allow-tools "WebFetch(domain:example.com)"`으로 부여한 도메인으로 제한됩니다. 샌드박스 백엔드가 없는 머신에서 Bash 또는 PowerShell을 부여하면 Claude Code는 제한되지 않은 상태로 실행하지 않고 각 실행을 거부하며, 케이스는 실행 오류를 표시하고 일반적으로 0점을 받습니다. 기본 Windows에는 백엔드가 없으므로 WSL2 아래에서 셸 부여 스위트를 실행합니다. Linux에서는 먼저 `bubblewrap`과 `socat`을 설치합니다. [샌드박싱 필수 조건](/docs/ko/sandboxing)을 참조합니다.374어떤 형태로든 `Bash`를 부여하면 모든 명령이 Claude Code의 [OS 수준 샌드박스](/docs/ko/sandboxing) 아래에서 실행됩니다. 쓰기는 실행의 작업 공간으로 제한되고, 홈 디렉토리와 Claude Code 구성은 읽을 수 없으며, 네트워크 액세스는 `--allow-tools "WebFetch(domain:example.com)"`으로 부여한 도메인으로 제한됩니다. 샌드박스 백엔드가 없는 머신에서 Bash 또는 PowerShell을 부여하면 Claude Code는 제한되지 않은 상태로 실행하지 않고 각 실행을 거부하며, 케이스는 실행 오류를 표시하고 일반적으로 0점을 받습니다. 기본 Windows에는 백엔드가 없으므로 WSL2 아래에서 셸 부여 스위트를 실행합니다. Linux에서는 먼저 `bubblewrap`과 `socat`을 설치합니다. [샌드박싱 필수 조건](/docs/ko/sandboxing)을 참조합니다.

353 375 


406 428 

407HTML 보고서를 작성하거나 게시하는 문제는 종료 코드를 변경하지 않습니다. 케이스가 낮은 점수를 받은 이유를 보려면 `--json` 없이 로컬에서 실행하여 실행당 진행 및 채점자 줄이 인쇄되도록 합니다.429HTML 보고서를 작성하거나 게시하는 문제는 종료 코드를 변경하지 않습니다. 케이스가 낮은 점수를 받은 이유를 보려면 `--json` 없이 로컬에서 실행하여 실행당 진행 및 채점자 줄이 인쇄되도록 합니다.

408 430 

409CI 러너는 Claude Code 설치 및 [환경의 자격 증명](/docs/ko/authentication)(예: `ANTHROPIC_API_KEY`)이 필요합니다. `--trust-plugin` 없이 Claude Code가 이미 신뢰하지 않는 체크아웃 디렉토리가 있는 작업은 터미널이 없을 때 종료 1로 거부되거나 러너가 하나를 할당할 때 프롬프트에서 대기합니다. `claude plugin eval init`은 질문을 하기 위해 터미널이 필요합니다. CI에서 `claude plugin eval init --bare <name>`을 실행하여 빈 템플릿을 가져옵니다.431CI 러너는 또한 다음이 필요합니다:

432 

433* **설치 및 자격 증명**: CI 러너는 Claude Code 설치 및 [환경의 자격 증명](/docs/ko/authentication)(예: `ANTHROPIC_API_KEY`)이 필요합니다.

434* **신뢰**: `--trust-plugin` 없이 Claude Code가 이미 신뢰하지 않는 체크아웃 디렉토리가 있는 작업은 [첫 실행 신뢰 프롬프트](#security)가 필요하며, 요청할 수 없는 실행은 종료 1로 거부됩니다.

435* **CI의 `init`**: `claude plugin eval init`은 질문을 하기 위해 터미널이 필요합니다. CI에서 `claude plugin eval init --bare <name>`을 실행하여 빈 템플릿을 가져옵니다.

410 436 

411비용을 예측 가능하게 유지하려면 빠른 모든 변경 스위트에 판사를 호출하지 않는 채점자만 제공하고, `Δ`가 필요하지 않은 경우 `--ablation none`을 사용하며, `partial: true` 문서와 `skippedPaidGraders`가 있는 실행을 차트하는 모든 추세에서 제외합니다.437비용을 예측 가능하게 유지하려면 빠른 모든 변경 스위트에 판사를 호출하지 않는 채점자만 제공하고, `Δ`가 필요하지 않은 경우 `--ablation none`을 사용하며, `partial: true` 문서와 `skippedPaidGraders`가 있는 실행을 차트하는 모든 추세에서 제외합니다.

412 438 


467 플러그인 디렉토리 신뢰493 플러그인 디렉토리 신뢰

468</h3>494</h3>

469 495 

470처음으로 디렉토리에 대해 `claude plugin eval`을 실행할 때 Claude Code는 `Trust this plugin directory?`를 묻습니다. 이미 대화형 `claude` 세션에서 신뢰 프롬프트를 수락하지 않은 경우입니다. git 저장소 내에서 예로 답하면 전체 저장소를 신뢰합니다. 대화형 세션도 마찬가지입니다. stdin 또는 stdout이 터미널이 아니거나 `--json` 아래에서 실행은 물을 수 없고 종료 1로 거부됩니다. `--trust-plugin`을 전달하여 신뢰를 직접 주장합니다. 머신에서 직접 실행할 플러그인에만 해당합니다. 경로가 아닌 이름으로 지정하는 대상(설치된 플러그인 또는 스킬 디렉토리 플러그인)은 프롬프트를 건너뜁니다.496처음으로 디렉토리에 대해 `claude plugin eval`을 실행할 때 Claude Code는 `Trust this plugin directory?`를 묻습니다. 이미 대화형 `claude` 세션에서 신뢰 프롬프트를 수락하지 않은 경우입니다. git 저장소 내에서 예로 답하면 전체 저장소를 신뢰합니다. 대화형 세션도 마찬가지입니다. stdin 또는 stdout이 터미널이 아니거나 `--json` 아래에서 또는 `CI` 환경 변수가 `true`와 같은 참 값으로 설정되어 있을 때 실행은 물을 수 없고 종료 1로 거부됩니다. `--trust-plugin`을 전달하여 신뢰를 직접 주장합니다. 머신에서 직접 실행할 플러그인에만 해당합니다. 경로가 아닌 이름으로 지정하는 대상(설치된 플러그인 또는 스킬 디렉토리 플러그인)은 프롬프트를 건너뜁니다.

497 

498플러그인과 모음의 일부는 해당 실행을 위해 플래그를 전달할 때만 실행됩니다.

499 

500* 케이스의 [`scaffold_script`](#add-setup-or-history-with-case-yaml)는 `--scaffold`로

501* [읽기 전용 세트 이상의 도구](#grant-tools)는 `--allow-tools`로

502* 플러그인의 [실제 MCP 서버](#mock-mcp-servers)는 `--allow-real-servers` 또는 `--mocks off`로

503 

504케이스의 `allowed_tools` 및 스킬의 자체 `allowed-tools` frontmatter는 어느 것도 확대할 수 없습니다.

471 505 

472플러그인과 모음의 일부는 해당 실행을 위해 플래그를 전달할 때만 실행됩니다. 케이스의 [`scaffold_script`](#add-setup-or-history-with-case-yaml)는 `--scaffold`로, [읽기 전용 세트 이상의 도구](#grant-tools)는 `--allow-tools`로, 플러그인의 [실제 MCP 서버](#mock-mcp-servers)는 `--allow-real-servers` 또는 `--mocks off`로. 케이스의 `allowed_tools` 및 스킬의 자체 `allowed-tools` frontmatter는 어느 것도 확대할 수 없습니다. 플러그인이 작성하지 않은 훅을 제공하거나 실제 MCP 서버를 시작할 때 채점자가 읽는 파일을 건드릴 수 있으므로 컨테이너 또는 CI 러너와 같은 격리된 환경에서 실행하지 않는 한 점수를 권고로 취급합니다. 훅과 서버는 에이전트의 샌드박스 외부에서 실행됩니다.506플러그인이 작성하지 않은 훅을 제공하거나 실제 MCP 서버를 시작할 때 채점자가 읽는 파일을 건드릴 수 있으므로 컨테이너 또는 CI 러너와 같은 격리된 환경에서 실행하지 않는 한 점수를 권고로 취급합니다. 훅과 서버는 에이전트의 샌드박스 외부에서 실행됩니다.

473 507 

474<h3 id="how-runs-are-isolated">508<h3 id="how-runs-are-isolated">

475 실행이 격리되는 방식509 실행이 격리되는 방식


556`graders/` 아래의 모든 채점자 파일은 frontmatter에서 이 키를 가져가고, 유형에 대한 옵션도 가져갑니다. 채점자의 이름은 `.md` 없는 파일 이름입니다.590`graders/` 아래의 모든 채점자 파일은 frontmatter에서 이 키를 가져가고, 유형에 대한 옵션도 가져갑니다. 채점자의 이름은 `.md` 없는 파일 이름입니다.

557 591 

558| 키 | 기본값 | 목적 |592| 키 | 기본값 | 목적 |

559| :------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------- |593| :------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------- |

560| `type` | 필수 | [채점자 유형](#grader-types) 중 하나 |594| `type` | 필수 | [채점자 유형](#grader-types) 중 하나 |

561| `weight` | `1` | 실행의 점수에서 상대 가중치. 모든 양수 |595| `weight` | `1` | 실행의 점수에서 상대 가중치. 모든 양수 |

562| `arm` | 설정 안 됨 | `with-only`는 [두 arm 실행](#compare-against-a-no-plugin-baseline)에서 채점에서 채점자를 제외합니다. `both`는 `tool_used: Skill` 채점자를 두 arm에서 채점하도록 강제합니다. |596| `arm` | 설정 안 됨 | `with-only`는 [두 arm 실행](#compare-against-a-no-plugin-baseline)에서 채점에서 채점자를 제외합니다. `both`는 Claude Code가 다른 경우 제외할 채점자를 두 arm에서 채점하도록 강제합니다. |

563 597 

564<h4 id="what-a-grader-can-look-at">598<h4 id="what-a-grader-can-look-at">

565 채점자가 볼 수 있는 것599 채점자가 볼 수 있는 것


632 "is not a trusted plugin directory, and this run cannot stop to ask you about it"666 "is not a trusted plugin directory, and this run cannot stop to ask you about it"

633</h3>667</h3>

634 668 

635이는 Claude Code가 아직 신뢰하지 않는 디렉토리에 대한 첫 번째 실행이며, stdin 또는 stdout이 터미널이 아니거나 `--json`을 전달했기 때문에 물어볼 수 없습니다. 터미널에서 `claude plugin eval <dir>`을 한 번 실행하고 프롬프트에 답하거나, 플러그인의 코드와 스위트를 신뢰한다면 `--trust-plugin`을 전달하세요. [실행이 접근할 수 있는 것](#security)을 참조하세요.669이는 Claude Code가 아직 신뢰하지 않는 디렉토리에 대한 첫 번째 실행이며, stdin 또는 stdout이 터미널이 아니거나 `--json`을 전달했거나 `CI` 환경 변수가 `true`와 같은 참 값으로 설정되어 있기 때문에 물어볼 수 없습니다. 터미널에서 `claude plugin eval <dir>`을 한 번 실행하고 프롬프트에 답하거나, 플러그인의 코드와 스위트를 신뢰한다면 `--trust-plugin`을 전달하세요. [실행이 접근할 수 있는 것](#security)을 참조하세요.

636 670 

637<h3 id="no-eval-cases-found">671<h3 id="no-eval-cases-found">

638 "No eval cases found"672 "No eval cases found"


644 기준선 팔이 플러그인을 표시하지 않거나 델타가 0입니다678 기준선 팔이 플러그인을 표시하지 않거나 델타가 0입니다

645</h3>679</h3>

646 680 

647요약에 `W/OUT` 열이 없거나 케이스가 "ablation requested but no plugin resolved"로 실패하면 케이스에 대해 플러그인을 찾을 수 없습니다. 케이스에 `plugins: ["../.."]`을 추가하여 케이스 디렉토리에서 플러그인 디렉토리로의 경로를 제공하세요.681기준선에 `W/OUT` 열이 없거나 케이스가 "ablation requested but no plugin resolved"로 실패하면 케이스에 대해 플러그인을 찾을 수 없습니다. 케이스에 `plugins: ["../.."]`을 추가하여 케이스 디렉토리에서 플러그인 디렉토리로의 경로를 제공하세요.

648 682 

649플러그인이 로드되었고 `Δ`가 여전히 `tool_used: Skill` 그레이더가 실패하는 상태에서 0에 가깝다면, 이는 보통 실제 발견을 의미하며, 스킬의 `description`이 프롬프트의 표현에 트리거되지 않음을 의미합니다. 설명을 조정하고 동일한 스위트를 다시 실행하세요.683플러그인이 로드되었고 `Δ`가 여전히 `tool_used: Skill` 그레이더가 실패하는 상태에서 0에 가깝다면, 이는 보통 실제 발견을 의미하며, 스킬의 `description`이 프롬프트의 표현에 트리거되지 않음을 의미합니다. 설명을 조정하고 동일한 스위트를 다시 실행하세요.

650 684 


668 추적에 대한 정규식이 볼 수 있는 텍스트와 일치하지 않습니다702 추적에 대한 정규식이 볼 수 있는 텍스트와 일치하지 않습니다

669</h3>703</h3>

670 704 

671기본 `target`은 추적이 아니라 `last_message`입니다. `target` 추적을 수행할 때, 줄당 JSON이므로 따옴표는 `\"`로 나타납니다. 정규식은 JavaScript 구문을 사용하므로 `(?i)`를 작성하는 대신 `flags`에 `i`를 넣으세요.705* **잘못된 대상**: 기본 `target`은 추적이 아니라 `last_message`입니다.

706* **JSON 이스케이핑**: `target` 추적을 수행할 때, 줄당 JSON이므로 따옴표는 `\"`로 나타납니다.

707* **정규식 구문**: 정규식은 JavaScript 구문을 사용하므로 `(?i)`를 작성하는 대신 `flags`에 `i`를 넣으세요.

672 708 

673<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">709<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">

674 도구가 거부되거나, MCP 도구가 누락되거나, Bash가 실행되지 않습니다710 도구가 거부되거나, MCP 도구가 누락되거나, Bash가 실행되지 않습니다


710 참고 항목746 참고 항목

711</h2>747</h2>

712 748 

713* [플러그인 만들기](/docs/ko/plugins): 테스트 중인 플러그인을 만들고 개발 중에 `--plugin-dir`으로 로드합니다.749* [플러그인 만들기](/docs/ko/plugins/create): 테스트 중인 플러그인을 만들고 개발 중에 `--plugin-dir`으로 로드합니다

714* [플러그인 참조](/docs/ko/plugins-reference#plugin-eval): `plugin eval` 및 `plugin eval init` 명령 항목 및 매니페스트의 `experimental.evals` 키750* [플러그인 명령어 참조](/docs/ko/plugins/cli-reference#plugin-eval): `plugin eval` 및 `plugin eval init` 명령어 항목입니다. 매니페스트의 [`experimental.evals`](/docs/ko/plugins/manifest-reference#fields) 키는 매니페스트 참조에 있습니다

715* [스킬](/docs/ko/skills): 스킬의 설명이 Claude가 호출할 때를 결정하는 방식. 스킬이 트리거되는지 확인하는 케이스가 측정하는 것입니다.751* [스킬](/docs/ko/skills): 스킬의 설명이 Claude가 호출할 때를 결정하는 방식. 스킬이 트리거되는지 확인하는 케이스가 측정하는 것입니다.

716* [샌드박싱](/docs/ko/sandboxing): 실행에 Bash를 부여할 때 적용되는 OS 수준 샌드박스752* [샌드박싱](/docs/ko/sandboxing): 실행에 Bash를 부여할 때 적용되는 OS 수준 샌드박스

717* [플러그인 마켓플레이스 만들기 및 배포](/docs/ko/plugin-marketplaces): 모음이 통과한 후 플러그인을 게시합니다.753* [플러그인 게시](/docs/ko/plugins/publish): 플러그인의 모음이 통과한 후 플러그인을 게시합니다

754* [플러그인 비용 및 사용량 측정](/docs/ko/plugins/measure): 플러그인이 각 세션의 컨텍스트에 추가하는 것과 사람들이 여전히 사용하는지 여부입니다

plugin-hints.md +0 −172 deleted

File Deleted View Diff

1> ## Documentation Index

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

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

4 

5# CLI에서 플러그인 추천하기

6 

7> CLI에서 한 줄 마커를 내보내어 Claude Code가 사용자에게 공식 플러그인 설치를 권유하도록 합니다.

8 

9CLI 또는 SDK를 유지 관리하고 공식 Anthropic 마켓플레이스에 플러그인이 있다면, 도구가 Claude Code 사용자에게 해당 플러그인을 설치하도록 권유할 수 있습니다. CLI는 Claude Code 내부에서 실행 중임을 감지할 때 stderr에 한 줄 마커를 작성합니다. Claude Code는 마커를 읽고 출력에서 제거한 후 사용자에게 일회성 설치 프롬프트를 표시합니다.

10 

11이 프로토콜은 추가 명령이 필요하지 않으며 Claude Code 외부에서 사용자를 위해 CLI가 출력하는 내용을 변경하지 않습니다.

12 

13이 페이지는 CLI 및 SDK 유지 관리자를 위한 것입니다. 플러그인 설치를 찾고 있다면 [플러그인 발견 및 설치](/docs/ko/discover-plugins)를 참조하세요.

14 

15<h2 id="how-it-works">

16 작동 방식

17</h2>

18 

19Claude Code는 Bash 및 PowerShell 도구를 통해 실행하는 모든 명령과 [hook](/docs/ko/hooks) 명령에 대해 [`CLAUDECODE`](/docs/ko/env-vars) 환경 변수를 `1`로 설정합니다. v2.1.172부터는 해당 동일한 서브프로세스에서 [`CLAUDE_CODE_CHILD_SESSION`](/docs/ko/env-vars)도 `1`로 설정합니다. CLI가 이러한 변수 중 하나를 감지하면 자체 종료 `<claude-code-hint />` 태그를 stderr에 작성합니다. hook 명령에서 힌트 태그는 제거되고 무시됩니다. Bash 및 PowerShell 도구 출력만 설치 프롬프트를 트리거합니다.

20 

21Claude Code가 명령 출력을 받으면 다음을 수행합니다:

22 

231. 힌트 줄을 스캔하고 출력이 모델에 도달하기 전에 제거합니다

242. 힌트가 공식 Anthropic 마켓플레이스의 플러그인을 대상으로 하는지 확인합니다

253. 플러그인이 이미 설치되지 않았으며 이전에 프롬프트되지 않았는지 확인합니다

264. 힌트를 내보낸 명령의 이름을 지정하는 설치 프롬프트를 사용자에게 표시합니다

27 

28Claude Code는 플러그인을 자동으로 설치하지 않습니다. 사용자가 항상 확인합니다.

29 

30<h2 id="emit-the-hint">

31 힌트 내보내기

32</h2>

33 

34힌트 프롬프트는 공식 Anthropic 마켓플레이스에 나열된 플러그인에 대해서만 실행됩니다. 통합을 배포하기 전에 [플러그인을 공식 마켓플레이스에 등록하기](#get-your-plugin-into-the-official-marketplace)를 참조하세요.

35 

36환경 변수에서 내보내기를 제어하여 마커가 일반 사용자가 CLI를 직접 실행할 때 나타나지 않도록 한 다음, 태그를 stderr에 자체 줄로 작성합니다. 확인할 변수를 선택합니다:

37 

38* `CLAUDECODE`: 모든 Claude Code 버전에서 설정되므로 가장 많은 세션에 도달합니다. Claude Code가 시작하는 tmux 세션 및 stdio MCP 서버 서브프로세스에서도 설정되며, IDE 확장 프로그램은 일반 사용자가 CLI를 직접 실행할 수 있는 통합 터미널에서 설정합니다.

39* `CLAUDE_CODE_CHILD_SESSION`: 도구 호출, 훅 명령 및 [상태 줄](/docs/ko/statusline) 명령과 같이 Claude Code 자체가 생성하는 서브프로세스에서만 설정되므로 태그가 일반적으로 사용자 터미널에 도달하지 않습니다. tmux 서버와 같이 세션 내에서 시작된 장기 실행 프로세스는 변수를 캡처하므로 해당 프로세스에서 나중에 시작된 셸은 여전히 원본 태그를 표시합니다.

40 

41다음 예제는 최대 도달 범위를 위해 `CLAUDECODE`에서 제어하고 공식 마켓플레이스의 `example-cli`라는 플러그인에 대한 힌트를 내보냅니다:

42 

43<CodeGroup>

44 ```javascript Node.js theme={null}

45 if (process.env.CLAUDECODE) {

46 process.stderr.write(

47 '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />\n',

48 )

49 }

50 ```

51 

52 ```python Python theme={null}

53 import os, sys

54 

55 if os.environ.get("CLAUDECODE"):

56 print(

57 '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />',

58 file=sys.stderr,

59 )

60 ```

61 

62 ```go Go theme={null}

63 if os.Getenv("CLAUDECODE") != "" {

64 fmt.Fprintln(os.Stderr,

65 `<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />`)

66 }

67 ```

68 

69 ```shell Shell theme={null}

70 if [ -n "$CLAUDECODE" ]; then

71 printf '%s\n' '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />' >&2

72 fi

73 ```

74</CodeGroup>

75 

76공식 마켓플레이스에서 플러그인의 이름으로 `example-cli`를 바꿉니다.

77 

78<h2 id="choose-where-to-emit">

79 내보낼 위치 선택

80</h2>

81 

82힌트를 내보낼 코드 경로를 제어합니다. Claude Code는 플러그인별로 중복 제거하므로 모든 호출에서 내보내는 것은 단점이 없습니다. 잘 작동하는 접점은 다음과 같습니다:

83 

84| 배치 | 작동하는 이유 |

85| :-------------- | :--------------------------------------- |

86| `--help` 출력 | Claude는 종종 익숙하지 않은 CLI를 탐색할 때 도움말을 실행합니다 |

87| 알 수 없는 하위 명령 오류 | Claude가 인터페이스에 대해 혼동하는 순간에 도달합니다 |

88| 로그인 또는 인증 성공 | 사용자가 이미 설정 마음가짐에 있습니다 |

89| 첫 실행 환영 메시지 | 자연스러운 온보딩 순간입니다 |

90 

91<h2 id="what-the-user-sees">

92 사용자가 보는 것

93</h2>

94 

95힌트가 모든 검사를 통과하면 Claude Code는 다음과 같은 프롬프트를 표시합니다:

96 

97```text theme={null}

98─────────────────────────────────────────────────────────────

99 플러그인 추천

100 

101 example-cli 명령이 플러그인 설치를 제안합니다.

102 

103 플러그인: example-cli

104 마켓플레이스: claude-plugins-official

105 example-cli 배포를 위한 공식 통합

106 

107 설치하시겠습니까?

108 ❯ 1. 예, example-cli 설치

109 2. 아니오

110 3. 아니오, 플러그인 설치 힌트를 다시 표시하지 않기

111 

112─────────────────────────────────────────────────────────────

113```

114 

115프롬프트는 힌트를 생성한 명령의 이름을 지정하므로 사용자가 도구와 권장하는 플러그인 간의 불일치를 발견할 수 있습니다. 사용자가 30초 이내에 응답하지 않으면 Claude Code는 프롬프트를 **아니오**로 해제합니다.

116 

117프롬프트 빈도는 제한되며, 일부 세션에서는 프롬프트가 표시되지 않습니다:

118 

119* **플러그인당 한 번**: 프롬프트가 표시된 후 Claude Code는 플러그인을 기록하고 사용자의 답변에 관계없이 다시 프롬프트하지 않습니다.

120* **세션당 한 번**: 머신의 모든 CLI에서 Claude Code 세션당 최대 하나의 힌트 프롬프트가 나타납니다.

121* **주 대화형 세션만**: Claude Code는 사용자가 입력하는 터미널 세션에서만 프롬프트를 표시합니다. Claude Code는 [서브에이전트](/docs/ko/sub-agents)가 실행하는 명령에 대해서는 프롬프트하지 않으며, 사용자가 `-p` 플래그를 사용하여 [비대화형 모드](/docs/ko/headless)에서 Claude Code를 실행하거나 [Agent SDK](/docs/ko/agent-sdk/overview)를 통해 실행할 때도 프롬프트하지 않습니다. Claude Code는 이 모든 경우에 명령 출력에서 힌트 줄을 제거합니다.

122* **원격 측정 거부**: 분석이 비활성화된 세션에서는 힌트 프롬프트가 표시되지 않습니다. 여기에는 `DISABLE_TELEMETRY` 또는 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정된 세션과 Amazon Bedrock 또는 Google Cloud의 Agent Platform과 같은 타사 제공자의 세션이 포함되며, 여기서 [자동 원격 측정 거부](/docs/ko/data-usage#default-behaviors-by-api-provider)가 적용됩니다.

123 

124**예**를 선택하면 플러그인이 사용자 범위로 설치됩니다. **아니오, 플러그인 설치 힌트를 다시 표시하지 않기**를 선택하면 사용자에 대한 모든 향후 힌트 프롬프트가 비활성화됩니다.

125 

126<h2 id="hint-format">

127 힌트 형식

128</h2>

129 

130힌트는 세 개의 필수 속성이 있는 자체 종료 태그입니다.

131 

132```text theme={null}

133<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />

134```

135 

136| 속성 | 필수 | 설명 |

137| :------ | :- | :------------------------------ |

138| `v` | 예 | 프로토콜 버전. `1`은 유일하게 지원되는 값입니다 |

139| `type` | 예 | 힌트 종류. `plugin`은 유일하게 지원되는 값입니다 |

140| `value` | 예 | `name@marketplace` 형식의 플러그인 식별자 |

141 

142속성 값은 큰따옴표로 인용하거나 인용하지 않을 수 있습니다. 인용하지 않은 값은 공백을 포함할 수 없습니다. 이스케이프 시퀀스는 지원되지 않습니다.

143 

144<h2 id="requirements">

145 요구 사항

146</h2>

147 

148Claude Code는 힌트에 대해 조치를 취하기 전에 두 가지 조건을 적용합니다. 두 검사 중 하나라도 실패한 힌트는 삭제됩니다:

149 

150* **자체 줄**: 태그는 자체 줄을 차지해야 합니다. 예를 들어 로그 문 내부에 줄 중간에 포함된 태그는 무시됩니다. 줄의 선행 및 후행 공백은 허용됩니다.

151* **공식 마켓플레이스**: `value`는 `claude-plugins-official`과 같은 Anthropic 제어 마켓플레이스의 플러그인을 참조해야 합니다. 다른 마켓플레이스를 가리키는 힌트는 자동으로 삭제됩니다.

152 

153힌트 줄은 버전 또는 유형이 인식되지 않을 때도 항상 모델에 도달하기 전에 출력에서 제거되므로 마커는 토큰 사용량에 계산되지 않습니다.

154 

155나머지 지침은 권장되지만 적용되지 않습니다. Claude Code는 CLI가 이를 따르는지 관찰할 수 없습니다:

156 

157* **stderr에 작성**: stderr는 `example-cli deploy | jq`와 같은 셸 파이프라인에서 태그를 제외합니다. Claude Code는 두 스트림을 모두 스캔하므로 stdout도 작동합니다.

158* **환경 변수에서 제어**: `CLAUDECODE` 또는 `CLAUDE_CODE_CHILD_SESSION`이 설정된 경우에만 내보냅니다. 두 변수의 차이점은 [힌트 내보내기](#emit-the-hint)를 참조하세요.

159 

160<h2 id="get-your-plugin-into-the-official-marketplace">

161 공식 마켓플레이스에 플러그인 추가

162</h2>

163 

164힌트 프로토콜은 공식 Anthropic 마켓플레이스 `claude-plugins-official`에 나열된 플러그인에 대해서만 적용됩니다. Anthropic은 자신의 재량에 따라 해당 마켓플레이스를 큐레이션하며, 앱 내 제출 양식은 플러그인을 [커뮤니티 마켓플레이스](/docs/ko/plugins#submit-your-plugin-to-the-community-marketplace)에 추가합니다. 힌트 프로토콜은 이를 확인하지 않습니다. Anthropic 파트너 담당자와 함께 작업 중인 경우 그들에게 연락하여 공식 마켓플레이스 목록을 조정하세요.

165 

166<h2 id="see-also">

167 참고 항목

168</h2>

169 

170* [플러그인 만들기](/docs/ko/plugins): CLI가 권장하는 플러그인 빌드

171* [플러그인 마켓플레이스 만들기 및 배포](/docs/ko/plugin-marketplaces): 공식 마켓플레이스 외부에서 플러그인 호스팅

172* [환경 변수](/docs/ko/env-vars): `CLAUDECODE` 및 관련 변수에 대한 전체 참조

plugin-marketplaces.md +0 −1688 deleted

File Deleted View Diff

1> ## Documentation Index

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

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

4 

5# 플러그인 마켓플레이스 생성 및 배포

6 

7> Claude Code 확장 프로그램을 팀과 커뮤니티에 배포하기 위한 플러그인 마켓플레이스를 구축하고 호스팅합니다.

8 

9**플러그인 마켓플레이스**는 다른 사용자에게 플러그인을 배포할 수 있는 카탈로그입니다. 마켓플레이스는 중앙 집중식 검색, 버전 추적, 자동 업데이트 및 git 저장소와 로컬 경로를 포함한 여러 소스 유형을 지원합니다. 이 가이드에서는 팀이나 커뮤니티와 플러그인을 공유하기 위해 자신의 마켓플레이스를 만드는 방법을 보여줍니다.

10 

11기존 마켓플레이스에서 플러그인을 설치하려고 하시나요? [미리 빌드된 플러그인 검색 및 설치](/docs/ko/discover-plugins)를 참조하세요.

12 

13<h2 id="overview">

14 개요

15</h2>

16 

17마켓플레이스를 생성하고 배포하는 과정은 다음과 같습니다:

18 

191. **플러그인 생성**: skills, 에이전트, hooks, MCP 서버 또는 LSP 서버를 사용하여 하나 이상의 플러그인을 빌드합니다. 이 가이드에서는 배포할 플러그인이 이미 있다고 가정합니다. 플러그인 생성 방법에 대한 자세한 내용은 [플러그인 생성](/docs/ko/plugins)을 참조하세요.

202. **마켓플레이스 파일 생성**: 플러그인을 나열하고 플러그인을 찾을 위치를 정의하는 `marketplace.json`을 정의합니다. [마켓플레이스 파일 생성](#create-the-marketplace-file)을 참조하세요.

213. **마켓플레이스 호스팅**: GitHub, GitLab 또는 다른 git 호스트에 푸시합니다. [마켓플레이스 호스팅 및 배포](#host-and-distribute-marketplaces)를 참조하세요.

224. **사용자와 공유**: 사용자가 `/plugin marketplace add`로 마켓플레이스를 추가하고 개별 플러그인을 설치합니다. [플러그인 검색 및 설치](/docs/ko/discover-plugins)를 참조하세요.

23 

24마켓플레이스가 라이브 상태가 되면 저장소에 변경 사항을 푸시하여 업데이트할 수 있습니다. 사용자는 `/plugin marketplace update`로 로컬 복사본을 새로 고칩니다.

25 

26<h2 id="walkthrough-create-a-local-marketplace">

27 연습: 로컬 마켓플레이스 생성

28</h2>

29 

30이 예제에서는 하나의 플러그인으로 마켓플레이스를 생성합니다: 코드 리뷰를 위한 `quality-review` skill입니다. 디렉터리 구조를 생성하고, skill을 추가하고, 플러그인 매니페스트와 마켓플레이스 카탈로그를 생성한 다음, 설치하고 테스트합니다.

31 

32<Steps>

33 <Step title="디렉터리 구조 생성">

34 ```bash theme={null}

35 mkdir -p my-marketplace/.claude-plugin

36 mkdir -p my-marketplace/plugins/quality-review-plugin/.claude-plugin

37 mkdir -p my-marketplace/plugins/quality-review-plugin/skills/quality-review

38 ```

39 </Step>

40 

41 <Step title="skill 생성">

42 `quality-review` skill이 수행하는 작업을 정의하는 `SKILL.md` 파일을 생성합니다.

43 

44 ```markdown my-marketplace/plugins/quality-review-plugin/skills/quality-review/SKILL.md theme={null}

45 ---

46 description: Review code for bugs, security, and performance

47 ---

48 

49 선택한 코드 또는 최근 변경 사항을 다음 항목에 대해 검토합니다:

50 - 잠재적 버그 또는 엣지 케이스

51 - 보안 문제

52 - 성능 문제

53 - 가독성 개선

54 

55 간결하고 실행 가능한 내용을 제공합니다.

56 ```

57 </Step>

58 

59 <Step title="플러그인 매니페스트 생성">

60 플러그인을 설명하는 `plugin.json` 파일을 생성합니다. 매니페스트는 `.claude-plugin/` 디렉터리에 위치합니다.

61 

62 ```json my-marketplace/plugins/quality-review-plugin/.claude-plugin/plugin.json theme={null}

63 {

64 "name": "quality-review-plugin",

65 "description": "Adds a quality-review skill for quick code reviews",

66 "version": "1.0.0",

67 "author": {

68 "name": "Your Name"

69 }

70 }

71 ```

72 

73 <Note>

74 `version`을 설정하면 사용자는 이 필드를 변경할 때만 업데이트를 받으므로, 모든 릴리스에서 이를 증가시킵니다. [`command` source](#command-sources)가 있는 플러그인은 이 필드로 고정되지 않습니다. [로컬 디렉터리에서 추가된 마켓플레이스에서 제자리에 로드](/docs/ko/plugins-reference#plugin-caching-and-file-resolution)되는 플러그인도 마찬가지입니다. `version`을 생략하면, 버전은 [버전 관리](/docs/ko/plugins-reference#version-management)의 다음 source에서 나옵니다.

75 </Note>

76 </Step>

77 

78 <Step title="마켓플레이스 파일 생성">

79 플러그인을 나열하는 마켓플레이스 카탈로그를 생성합니다.

80 

81 ```json my-marketplace/.claude-plugin/marketplace.json theme={null}

82 {

83 "name": "my-plugins",

84 "owner": {

85 "name": "Your Name"

86 },

87 "plugins": [

88 {

89 "name": "quality-review-plugin",

90 "source": "./plugins/quality-review-plugin",

91 "description": "Adds a quality-review skill for quick code reviews"

92 }

93 ]

94 }

95 ```

96 </Step>

97 

98 <Step title="추가 및 설치">

99 `my-marketplace`를 포함하는 디렉터리에서 Claude Code를 시작하고 다음 명령을 실행합니다. install 명령은 설치 범위를 선택하여 설치를 확인하는 플러그인 세부 정보 보기를 엽니다. 설치 요약을 확인합니다: `Run /reload-plugins to activate.`를 보고하면 [플러그인 변경 사항을 다시 시작하지 않고 적용](/docs/ko/discover-plugins#apply-plugin-changes-without-restarting)을 참조하세요.

100 

101 ```shell theme={null}

102 /plugin marketplace add ./my-marketplace

103 /plugin install quality-review-plugin@my-plugins

104 ```

105 </Step>

106 

107 <Step title="시도해보기">

108 편집기에서 일부 코드를 선택하고 새 skill을 실행합니다. 플러그인 skill은 플러그인 이름으로 네임스페이스됩니다.

109 

110 ```shell theme={null}

111 /quality-review-plugin:quality-review

112 ```

113 </Step>

114</Steps>

115 

116플러그인이 수행할 수 있는 작업(hooks, 에이전트, MCP 서버 및 LSP 서버 포함)에 대해 자세히 알아보려면 [플러그인](/docs/ko/plugins)을 참조하세요.

117 

118<Note>

119 **플러그인 설치 방법**: 사용자가 플러그인을 설치하면 Claude Code는 플러그인 디렉터리를 캐시 위치에 복사합니다. 플러그인이 제자리에 로드되지 않는 한 말입니다. link mode의 [`command` source](#copy-mode-and-link-mode)는 제자리에 로드되며, [로컬 디렉터리에서 추가된 마켓플레이스의 상대 경로 source](#relative-paths)도 마찬가지입니다. 복사된 플러그인은 `../shared-utils`와 같은 경로를 사용하여 디렉터리 외부의 파일을 참조할 수 없습니다. 왜냐하면 해당 파일이 복사되지 않기 때문입니다.

120 

121 플러그인 간에 파일을 공유해야 하는 경우 symlink를 사용합니다. 자세한 내용은 [플러그인 캐싱 및 파일 해석](/docs/ko/plugins-reference#plugin-caching-and-file-resolution)을 참조하세요.

122</Note>

123 

124<h2 id="create-the-marketplace-file">

125 마켓플레이스 파일 생성

126</h2>

127 

128저장소 루트에 `.claude-plugin/marketplace.json`을 생성합니다. 이 파일은 마켓플레이스의 이름, 소유자 정보 및 소스가 있는 플러그인 목록을 정의합니다.

129 

130각 플러그인 항목에는 최소한 `name`과 `source`(Claude Code가 가져올 위치를 알려주는)가 필요합니다. 사용 가능한 모든 필드는 아래의 [전체 스키마](#marketplace-schema)를 참조하세요.

131 

132```json theme={null}

133{

134 "name": "company-tools",

135 "owner": {

136 "name": "DevTools Team",

137 "email": "devtools@example.com"

138 },

139 "plugins": [

140 {

141 "name": "code-formatter",

142 "source": "./plugins/formatter",

143 "description": "저장 시 자동 코드 포맷팅",

144 "version": "2.1.0",

145 "author": {

146 "name": "DevTools Team"

147 }

148 },

149 {

150 "name": "deployment-tools",

151 "source": {

152 "source": "github",

153 "repo": "company/deploy-plugin"

154 },

155 "description": "배포 자동화 도구"

156 }

157 ]

158}

159```

160 

161<h2 id="marketplace-schema">

162 마켓플레이스 스키마

163</h2>

164 

165<h3 id="required-fields">

166 필수 필드

167</h3>

168 

169| 필드 | 유형 | 설명 | 예제 |

170| :-------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------- |

171| `name` | string | kebab-case의 마켓플레이스 식별자(공백, 제어 문자 또는 양방향 서식 문자 없음). 이는 공개 대면입니다: 사용자는 플러그인을 설치할 때 이를 봅니다(예: `/plugin install my-tool@your-marketplace`). 각 사용자는 이름당 하나의 마켓플레이스만 등록할 수 있습니다: 동일한 이름으로 두 번째 마켓플레이스를 추가하면 Claude Code가 첫 번째를 대체합니다. 하나의 마켓플레이스 이름 아래에 여러 플러그인을 게시하려면 [단일 `marketplace.json`](#create-the-marketplace-file)에 모두 나열하세요. | `"acme-tools"` |

172| `owner` | object | 마켓플레이스 유지 관리자 정보. [소유자 필드](#owner-fields) 참조 | |

173| `plugins` | array | 사용 가능한 플러그인 목록 | [플러그인 항목](#plugin-entries) 참조 |

174 

175<Note>

176 **예약된 이름**: 다음 마켓플레이스 이름은 공식 Anthropic 사용을 위해 예약되어 있으며 타사 마켓플레이스에서 사용할 수 없습니다: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `claude-plugins-community`, `claude-community`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `knowledge-work-plugins`, `life-sciences`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins`, `claude-tag-plugins`, `healthcare`. 공식 마켓플레이스를 사칭하는 이름(예: `official-claude-plugins` 또는 `anthropic-plugins-v2`)도 차단됩니다. 이러한 이름을 예약하면 타사 마켓플레이스가 자신을 Anthropic 게시 소스로 제시하는 것을 방지합니다.

177 

178 Claude Code는 마켓플레이스를 추가할 때뿐만 아니라 마켓플레이스를 로드할 때마다 예약된 이름을 다시 확인합니다. 이름이 예약되기 전에 이러한 이름 중 하나로 등록된 마켓플레이스는 로드를 중지하고 [신뢰할 수 없는 소스에서 등록됨](/docs/ko/errors#marketplace-is-registered-from-an-untrusted-source)을 보고합니다. 해당 마켓플레이스를 제거하고 공식 Anthropic 소스에서 다시 추가하세요. 새로 예약된 이름의 영향을 받는 타사 마켓플레이스는 다른 이름으로 다시 추가하는 즉시 다시 로드됩니다. v2.1.205 이전에는 `first-party-plugins` 및 `healthcare`가 예약되지 않았으며, 예약된 이름으로 이미 등록된 마켓플레이스는 계속 로드되었습니다. v2.1.265 이전에는 `claude-tag-plugins`이 예약되지 않았습니다.

179 

180 마켓플레이스의 이름을 `npm`, `pip`, `uv`, `cargo`, `github`, 또는 `gh`로 지정할 수도 없습니다(대소문자 구분 없음). 이 확인은 Claude Code v2.1.275 이상이 필요합니다.

181</Note>

182 

183<h3 id="owner-fields">

184 소유자 필드

185</h3>

186 

187| 필드 | 유형 | 필수 | 설명 |

188| :------ | :----- | :-- | :------------------------- |

189| `name` | string | 예 | 유지 관리자 또는 팀의 이름 |

190| `email` | string | 아니오 | 유지 관리자의 연락처 이메일 |

191| `url` | string | 아니오 | 웹사이트, GitHub 프로필 또는 조직 URL |

192 

193<h3 id="optional-fields">

194 선택적 필드

195</h3>

196 

197| 필드 | 유형 | 설명 |

198| :------------------------------------ | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

199| `$schema` | string | 편집기 자동 완성 및 유효성 검사를 위한 JSON Schema URL입니다. Claude Code는 로드 시 이 필드를 무시합니다. |

200| `description` | string | 간단한 마켓플레이스 설명 |

201| `version` | string | 마켓플레이스 매니페스트 버전 |

202| `metadata.pluginRoot` | string | Claude Code가 베어 플러그인 소스 이름을 확인하는 디렉터리입니다. [상대 경로](#relative-paths)를 참조하세요. Claude Code v2.1.239 이상이 필요합니다. |

203| `allowCrossMarketplaceDependenciesOn` | array | 이 마켓플레이스의 플러그인이 의존할 수 있는 다른 마켓플레이스입니다. 여기에 나열되지 않은 마켓플레이스의 종속성은 설치 시 차단됩니다. [다른 마켓플레이스의 플러그인에 의존](/docs/ko/plugin-dependencies#depend-on-a-plugin-from-another-marketplace)을 참조하세요. |

204| `renames` | object | 이전 플러그인 `name`을 현재 이름으로 매핑하거나, 플러그인이 제거된 경우 `null`로 매핑합니다. `plugins`의 항목을 이름 변경하거나 제거할 때 기존 사용자가 자동으로 마이그레이션되도록 합니다. [플러그인 이름 변경 또는 제거](#rename-or-remove-a-plugin)를 참조하세요. Claude Code v2.1.193 이상이 필요합니다. |

205 

206`description` 및 `version`은 이전 버전과의 호환성을 위해 `metadata` 아래에서도 허용됩니다.

207 

208<h2 id="plugin-entries">

209 플러그인 항목

210</h2>

211 

212`plugins` 배열의 각 플러그인 항목은 플러그인과 플러그인을 찾을 위치를 설명합니다. [플러그인 매니페스트 스키마](/docs/ko/plugins-reference#plugin-manifest-schema)의 모든 필드(예: `description`, `version`, `author`, `commands`, `hooks` 등)와 이러한 마켓플레이스 특정 필드를 포함할 수 있습니다: `source`, `category`, `tags`, `strict`, `relevance`, `headers`, 및 `headersHelper`.

213 

214<h3 id="required-fields-2">

215 필수 필드

216</h3>

217 

218| 필드 | 유형 | 설명 |

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

220| `name` | string | kebab-case의 플러그인 식별자(공백, 제어 문자 또는 양방향 서식 문자 없음). 이는 공개 대면입니다: 사용자는 설치할 때 이를 봅니다(예: `/plugin install my-plugin@marketplace`). |

221| `source` | string\|object | 플러그인을 가져올 위치([아래 플러그인 소스](#plugin-sources) 참조) |

222 

223<h3 id="optional-plugin-fields">

224 선택적 플러그인 필드

225</h3>

226 

227**표준 메타데이터 필드:**

228 

229| 필드 | 유형 | 설명 |

230| :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

231| `displayName` | string | UI 표면에 표시되는 사람이 읽을 수 있는 이름입니다. 항목과 플러그인의 `plugin.json` 모두 설정하지 않으면 사용자는 플러그인의 `name`을 봅니다. 공백과 모든 대소문자를 포함할 수 있습니다. 네임스페이싱이나 조회에 사용되지 않습니다. |

232| `description` | string | 간단한 플러그인 설명 |

233| `version` | string | 플러그인 버전. 설정된 경우(여기 또는 `plugin.json`에서), 플러그인은 이 문자열로 고정되며 사용자는 변경될 때만 업데이트를 받습니다. [`command` 소스](#command-sources)가 있는 플러그인은 두 필드 모두에 의해 고정되지 않습니다. 마켓플레이스에서 로컬 디렉터리로 추가된 [제자리에 로드된](/docs/ko/plugins-reference#plugin-caching-and-file-resolution) 플러그인도 마찬가지입니다. 두 위치 모두에 설정되지 않은 경우, 버전은 [버전 관리](/docs/ko/plugins-reference#version-management)의 다음 소스에서 나옵니다. |

234| `author` | object | 플러그인 작성자 정보(`name` 필수; `email` 및 `url` 선택) |

235| `homepage` | string | 플러그인 홈페이지 또는 문서 URL |

236| `repository` | string | 소스 코드 저장소 URL |

237| `license` | string | SPDX 라이선스 식별자(예: MIT, Apache-2.0) |

238| `keywords` | array | 플러그인 검색 및 분류를 위한 태그 |

239| `metadata` | object | 자격 또는 카탈로그 데이터와 같은 자신의 필드를 위한 자유 형식 객체입니다. Claude Code는 이를 읽지 않습니다. v2.1.222 이전에는 `claude plugin validate`가 키를 인식되지 않은 필드로 보고했습니다. |

240| `category` | string | 조직을 위한 플러그인 카테고리 |

241| `tags` | array | 검색 가능성을 위한 태그 |

242| `strict` | boolean | `plugin.json`이 구성 요소 정의의 권한인지 여부를 제어합니다(기본값: true). 아래의 [Strict 모드](#strict-mode)를 참조하세요. |

243| `relevance` | object | Claude Code가 사용자에게 이 플러그인을 제안할 시기를 알려주는 신호입니다. 관리자가 관리 설정에서 허용 목록에 추가한 마켓플레이스에만 적용됩니다. [조직을 위한 플러그인 권장](/docs/ko/plugin-relevance)을 참조하세요. |

244| `defaultEnabled` | boolean | 플러그인이 설치 후 활성화되는지 여부(기본값: true). 사용자가 옵트인할 때까지 플러그인을 비활성화된 상태로 설치하려면 `false`로 설정합니다. 플러그인의 `plugin.json`에 있는 동일한 필드보다 우선합니다. [기본 활성화](/docs/ko/plugins-reference#default-enablement)를 참조하세요. |

245 

246항목과 플러그인의 자체 `plugin.json` 모두 표시 필드 `displayName`, `description`, `author`, `homepage`, `repository`, `license`, 및 `keywords`를 설정할 수 있습니다. 플러그인 목록 및 세부 정보에서 설치 전후:

247 

248* 항목에 설정한 필드의 경우, 사용자는 `plugin.json`이 다른 값을 설정하더라도 항목의 값을 봅니다.

249* 항목이 설정하지 않은 필드의 경우, 사용자는 `plugin.json` 값을 봅니다.

250 

251설치 전에 Claude Code는 `plugin.json`을 [상대 경로 소스](#relative-paths)가 있는 항목에 대해서만 읽을 수 있으며, 이 항목의 플러그인 파일은 마켓플레이스 내부에 있습니다. 다른 소스 유형이 있는 항목의 경우, 사용자는 플러그인을 설치할 때까지 항목의 자체 필드만 봅니다.

252 

253**구성 요소 구성 필드:**

254 

255| 필드 | 유형 | 설명 |

256| :----------- | :------------- | :-------------------------------------------- |

257| `skills` | string\|array | `<name>/SKILL.md`를 포함하는 skill 디렉터리의 사용자 정의 경로 |

258| `commands` | string\|array | 평면 `.md` skill 파일 또는 디렉터리의 사용자 정의 경로 |

259| `agents` | string\|array | 에이전트 파일의 사용자 정의 경로 |

260| `hooks` | string\|object | 사용자 정의 hooks 구성 또는 hooks 파일 경로 |

261| `mcpServers` | string\|object | MCP 서버 구성 또는 MCP 구성 경로 |

262| `lspServers` | string\|object | LSP 서버 구성 또는 LSP 구성 경로 |

263 

264**아카이브 인증 필드:**

265 

266항목에 자격 증명이 필요한 서버의 [`archive` 소스](#zip-archives)가 있을 때 이를 설정합니다.

267 

268| 필드 | 유형 | 설명 |

269| :-------------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

270| `headers` | object | Claude Code가 이 항목의 아카이브를 다운로드할 때 보내는 HTTP 헤더입니다. 동일한 이름의 마켓플레이스 헤더를 재정의합니다. Claude Code v2.1.238 이상이 필요합니다. |

271| `headersHelper` | string | 만료되는 자격 증명에 대해 이 항목의 아카이브 다운로드를 위한 HTTP 헤더를 하나의 JSON 객체로 인쇄하는 명령입니다. [아카이브 다운로드 인증](#authenticate-archive-downloads)을 참조하세요. 항목은 또한 [`"strict": false`](#strict-mode)를 설정해야 합니다. Claude Code v2.1.238 이상이 필요합니다. |

272 

273<h2 id="plugin-sources">

274 플러그인 소스

275</h2>

276 

277플러그인 소스는 Claude Code에 마켓플레이스에 나열된 각 개별 플러그인을 가져올 위치를 알려줍니다. 이는 `marketplace.json`의 각 플러그인 항목의 `source` 필드에 설정됩니다.

278 

279Claude Code는 설치된 각 플러그인을 `~/.claude/plugins/cache`의 로컬 버전 관리 플러그인 캐시에 복사합니다. 단, 플러그인이 제자리에서 로드되는 경우는 제외됩니다. [링크 모드의 `command` 소스](#copy-mode-and-link-mode)는 제자리에서 로드되며, [상대 경로 소스](#relative-paths)도 로컬 디렉터리에서 추가된 마켓플레이스에서 제자리에 로드됩니다. Claude Code는 또한 [플러그인의 적격 Node.js 패키지 종속성](/docs/ko/plugins-reference#node-js-package-dependencies)을 캐시된 복사본에 설치합니다. [플러그인 캐싱 및 파일 해석](/docs/ko/plugins-reference#plugin-caching-and-file-resolution)을 참조하여 로컬 디렉터리 마켓플레이스에서 제자리에 로드된 플러그인이 편집 내용을 선택하는 방법을 알아보세요.

280 

281| 소스 | 유형 | 필드 | 참고 |

282| ------------ | ----------------------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

283| 상대 경로 | `string` (예: `"./my-plugin"`) | 없음 | 마켓플레이스 저장소 내의 로컬 디렉터리. `./`로 시작해야 합니다. [`metadata.pluginRoot`](#relative-paths) 아래에 bare name을 작성하지 않는 한. Claude Code는 `.claude-plugin/` 디렉터리가 아닌 마켓플레이스 루트에 상대적으로 경로를 해석합니다 |

284| `github` | object | `repo`, `ref?`, `sha?` | |

285| `url` | object | `url`, `ref?`, `sha?` | Git URL 소스 |

286| `git-subdir` | object | `url`, `path`, `ref?`, `sha?` | git 저장소 내의 하위 디렉터리. 모노레포의 대역폭을 최소화하기 위해 희소하게 복제합니다 |

287| `npm` | object | `package`, `version?`, `registry?` | npm 패키지. npm 클라이언트로 가져오고 설치 스크립트를 실행하지 않고 압축 해제됩니다 |

288| `archive` | object | `url`, `sha256?` | HTTPS를 통해 다운로드된 Zip 아카이브. 사용자의 머신에 git 또는 npm 없이 작동합니다. Claude Code v2.1.224 이상 필요 |

289| `command` | object | `command`, `timeout?`, `mode?` | 로컬 명령어를 실행하여 생성된 플러그인 디렉터리. 변경 사항을 선택하기 위해 세션당 한 번 다시 실행됩니다. Claude Code v2.1.229 이상 필요 |

290 

291<Note>

292 **마켓플레이스 소스 vs 플러그인 소스**: 이는 다양한 것을 제어하는 다양한 개념입니다.

293 

294 * **마켓플레이스 소스**: `marketplace.json` 카탈로그 자체를 가져올 위치. 사용자가 `/plugin marketplace add`를 실행하거나 `extraKnownMarketplaces` 설정에서 설정합니다. Git 기반 마켓플레이스 소스는 `ref`(분기/태그)를 지원하지만 `sha`는 지원하지 않습니다.

295 * **플러그인 소스**: 마켓플레이스에 나열된 개별 플러그인을 가져올 위치. `marketplace.json` 내의 각 플러그인 항목의 `source` 필드에 설정됩니다. Git 기반 플러그인 소스는 `ref`(분기/태그)와 `sha`(정확한 커밋) 모두를 지원합니다.

296 

297 예를 들어, `acme-corp/plugin-catalog`에서 호스팅되는 마켓플레이스(마켓플레이스 소스)는 `acme-corp/code-formatter`에서 가져온 플러그인을 나열할 수 있습니다(플러그인 소스). 마켓플레이스 소스와 플러그인 소스는 다양한 저장소를 가리키며 독립적으로 고정됩니다.

298</Note>

299 

300아래의 git 기반 소스 유형은 `github`, `url`, 및 `git-subdir`입니다. `ref`와 `sha`가 모두 설정되면 `sha`가 유효한 핀입니다. Claude Code는 고정된 커밋을 직접 가져오고 체크아웃합니다.

301 

302GitHub, GitLab, Bitbucket을 포함한 대부분의 git 호스트에서 이는 분기 또는 태그가 업스트림에서 삭제되었더라도 커밋이 저장소에서 여전히 도달 가능한 한 설치가 성공함을 의미합니다. AWS CodeCommit과 같은 일부 서버는 SHA로 커밋을 가져오는 것을 지원하지 않습니다. 이러한 서버에서는 `ref`가 여전히 존재해야 하고 고정된 커밋이 이로부터 도달 가능해야 합니다.

303 

304**조직 설정 > 플러그인**을 통해 플러그인을 배포하는 경우 일부 소스 유형만 허용됩니다. [조직 설정을 통해 배포](#distribute-through-organization-settings)를 참조하세요.

305 

306<h3 id="relative-paths">

307 상대 경로

308</h3>

309 

310동일한 저장소의 플러그인의 경우 `./`로 시작하는 경로를 사용합니다:

311 

312```json theme={null}

313{

314 "name": "my-plugin",

315 "source": "./plugins/my-plugin"

316}

317```

318 

319경로는 마켓플레이스 루트(`.claude-plugin/`을 포함하는 디렉터리)에 상대적으로 해석됩니다. 위의 예에서 `./plugins/my-plugin`은 `marketplace.json`이 `<repo>/.claude-plugin/marketplace.json`에 있더라도 `<repo>/plugins/my-plugin`을 가리킵니다. 마켓플레이스 루트 외부로 나가기 위해 `../`를 사용하지 마세요. macOS 및 Linux에서 Claude Code는 선행 `./` 이후 어디든 백슬래시가 있는 항목 경로를 거부하므로 모든 플랫폼에서 구분 기호를 `/`로 작성합니다.

320 

321bare name은 `/`가 없는 단일 디렉터리 이름입니다(예: `"formatter"`). `./` 경로 대신 bare name을 작성하려면 [`metadata.pluginRoot`](#optional-fields)를 이들이 해석되는 디렉터리로 설정합니다. `"pluginRoot": "./plugins"`를 사용하면 Claude Code는 `"source": "formatter"`를 `./plugins/formatter`로 해석합니다. Claude Code v2.1.239 이상 필요합니다.

322 

323`metadata.pluginRoot`는 그 자체로 마켓플레이스 내의 상대 경로여야 합니다. Claude Code는 이미 `./`로 시작하는 소스에 대해 이를 무시합니다. `/`를 포함하는 소스(예: `team-a/formatter`)는 bare name이 아니며 `metadata.pluginRoot`가 설정되어 있더라도 여전히 `./` 접두사가 필요합니다.

324 

325<Note>

326 Claude Code는 마켓플레이스의 로컬 복사본에 대해 상대 경로를 해석하므로 사용자가 git 소스 또는 로컬 디렉터리에서 마켓플레이스를 추가할 때 작동합니다. 사용자가 `marketplace.json` 파일에 대한 직접 URL을 통해 마켓플레이스를 추가하면 상대 경로가 해석되지 않습니다. Claude Code는 해당 파일만 다운로드하기 때문입니다. URL 기반 배포의 경우 대신 다른 [플러그인 소스](#plugin-sources)를 사용합니다. 자세한 내용은 [문제 해결](#plugins-with-relative-paths-fail-in-url-based-marketplaces)을 참조하세요.

327</Note>

328 

329<h3 id="github-repositories">

330 GitHub 저장소

331</h3>

332 

333```json theme={null}

334{

335 "name": "github-plugin",

336 "source": {

337 "source": "github",

338 "repo": "owner/plugin-repo"

339 }

340}

341```

342 

343특정 분기, 태그 또는 커밋에 고정할 수 있습니다:

344 

345```json theme={null}

346{

347 "name": "github-plugin",

348 "source": {

349 "source": "github",

350 "repo": "owner/plugin-repo",

351 "ref": "v2.0.0",

352 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

353 }

354}

355```

356 

357| 필드 | 유형 | 설명 |

358| :----- | :----- | :------------------------------------ |

359| `repo` | string | 필수. `owner/repo` 형식의 GitHub 저장소 |

360| `ref` | string | 선택. Git 분기 또는 태그(저장소 기본 분기로 기본값) |

361| `sha` | string | 선택. 정확한 버전에 고정하기 위한 전체 40자 git 커밋 SHA |

362 

363<h3 id="git-repositories">

364 Git 저장소

365</h3>

366 

367```json theme={null}

368{

369 "name": "git-plugin",

370 "source": {

371 "source": "url",

372 "url": "https://gitlab.com/team/plugin.git"

373 }

374}

375```

376 

377특정 분기, 태그 또는 커밋에 고정할 수 있습니다:

378 

379```json theme={null}

380{

381 "name": "git-plugin",

382 "source": {

383 "source": "url",

384 "url": "https://gitlab.com/team/plugin.git",

385 "ref": "main",

386 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

387 }

388}

389```

390 

391| 필드 | 유형 | 설명 |

392| :---- | :----- | :-------------------------------------------------------------------------------------------------------------- |

393| `url` | string | 필수. 전체 git 저장소 URL(`https://` 또는 `git@`). `.git` 접미사는 선택 사항이므로 Azure DevOps 및 AWS CodeCommit URL(접미사 없음)이 작동합니다 |

394| `ref` | string | 선택. Git 분기 또는 태그(저장소 기본 분기로 기본값) |

395| `sha` | string | 선택. 정확한 버전에 고정하기 위한 전체 40자 git 커밋 SHA |

396 

397<h3 id="git-subdirectories">

398 Git 하위 디렉터리

399</h3>

400 

401`git-subdir`을 사용하여 git 저장소의 하위 디렉터리 내에 있는 플러그인을 가리킵니다. Claude Code는 희소하고 부분적인 복제를 사용하여 하위 디렉터리만 가져오므로 대규모 모노레포의 대역폭을 최소화합니다.

402 

403```json theme={null}

404{

405 "name": "my-plugin",

406 "source": {

407 "source": "git-subdir",

408 "url": "https://github.com/acme-corp/monorepo.git",

409 "path": "tools/claude-plugin"

410 }

411}

412```

413 

414특정 분기, 태그 또는 커밋에 고정할 수 있습니다:

415 

416```json theme={null}

417{

418 "name": "my-plugin",

419 "source": {

420 "source": "git-subdir",

421 "url": "https://github.com/acme-corp/monorepo.git",

422 "path": "tools/claude-plugin",

423 "ref": "v2.0.0",

424 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

425 }

426}

427```

428 

429`url` 필드는 GitHub 단축형(`owner/repo`) 또는 SSH URL(`git@github.com:owner/repo.git`)도 허용합니다.

430 

431| 필드 | 유형 | 설명 |

432| :----- | :----- | :----------------------------------------------------------- |

433| `url` | string | 필수. Git 저장소 URL, GitHub `owner/repo` 단축형 또는 SSH URL |

434| `path` | string | 필수. 플러그인을 포함하는 저장소 내의 하위 디렉터리 경로(예: `"tools/claude-plugin"`) |

435| `ref` | string | 선택. Git 분기 또는 태그(저장소 기본 분기로 기본값) |

436| `sha` | string | 선택. 정확한 버전에 고정하기 위한 전체 40자 git 커밋 SHA |

437 

438<h3 id="npm-packages">

439 npm 패키지

440</h3>

441 

442npm 소스는 공개 npm 레지스트리 또는 팀이 호스팅하는 개인 레지스트리의 모든 패키지를 지정할 수 있습니다. Claude Code는 npm 클라이언트로 패키지를 해석하고 tarball을 다운로드한 후 플러그인 캐시에 압축 해제합니다.

443 

444패키지의 설치 스크립트(예: `preinstall` 또는 `postinstall`)는 절대 실행되지 않으며 종속성은 가져오기 중에 설치되지 않습니다.

445 

446패키지가 `package.json` 옆에 지원되는 lockfile을 제공하면 Claude Code는 스크립트가 비활성화된 상태에서 별도의 단계로 해당 [Node.js 패키지 종속성](/docs/ko/plugins-reference#node-js-package-dependencies)을 설치합니다. 그렇지 않으면 플러그인이 필요한 모든 것이 이미 빌드된 상태로 게시합니다. 다른 패키지가 필요한 MCP 서버는 `npx`를 통해 시작할 수 있으며, 이는 첫 실행 시 설치합니다.

447 

448```json theme={null}

449{

450 "name": "my-npm-plugin",

451 "source": {

452 "source": "npm",

453 "package": "@acme/claude-plugin"

454 }

455}

456```

457 

458특정 버전에 고정하려면 `version` 필드를 추가합니다:

459 

460```json theme={null}

461{

462 "name": "my-npm-plugin",

463 "source": {

464 "source": "npm",

465 "package": "@acme/claude-plugin",

466 "version": "2.1.0"

467 }

468}

469```

470 

471개인 또는 내부 레지스트리에서 설치하려면 `registry` 필드를 추가합니다:

472 

473```json theme={null}

474{

475 "name": "my-npm-plugin",

476 "source": {

477 "source": "npm",

478 "package": "@acme/claude-plugin",

479 "version": "^2.0.0",

480 "registry": "https://npm.example.com"

481 }

482}

483```

484 

485| 필드 | 유형 | 설명 |

486| :--------- | :----- | :------------------------------------------------------------ |

487| `package` | string | 필수. 패키지 이름 또는 범위 지정 패키지(예: `@org/plugin`) |

488| `version` | string | 선택. 버전 또는 버전 범위(예: `2.1.0`, `^2.0.0`, `~1.5.0`) |

489| `registry` | string | 선택. 사용자 정의 npm 레지스트리 URL. 시스템 npm 레지스트리(일반적으로 npmjs.org)로 기본값 |

490 

491<h3 id="zip-archives">

492 Zip 아카이브

493</h3>

494 

495`archive`를 사용하여 Claude Code가 HTTPS를 통해 다운로드하는 zip 파일로 플러그인을 배포합니다. 따라서 사용자의 머신에 git 또는 npm 없이 설치가 작동합니다. S3 버킷, Artifactory 일반 저장소 또는 nginx와 같은 정적 파일 서버 또는 아티팩트 저장소에서 파일을 호스팅합니다. Claude Code v2.1.224 이상 필요합니다. v2.1.120부터 v2.1.223까지의 버전에서는 플러그인 설치가 `This plugin uses a source type your Claude Code version does not support. Update Claude Code and try again.`으로 실패합니다. 더 오래된 버전에서는 `archive` 항목을 포함하는 마켓플레이스가 완전히 로드되지 않습니다.

496 

497이 항목은 아티팩트 서버의 zip 파일에서 플러그인을 설치합니다:

498 

499```json theme={null}

500{

501 "name": "my-plugin",

502 "source": {

503 "source": "archive",

504 "url": "https://artifacts.example.com/claude-plugins/my-plugin-2.1.0.zip"

505 }

506}

507```

508 

509zip을 빌드할 때 플러그인의 내용을 직접 압축하거나 플러그인 폴더 자체를 압축할 수 있습니다. Claude Code는 아카이브의 맨 위에서 `.claude-plugin/`을 찾은 다음 단일 최상위 폴더 내에서 찾으므로 두 레이아웃 모두 설치됩니다:

510 

511```text theme={null}

512my-plugin.zip my-plugin.zip

513├── .claude-plugin/ └── my-plugin/

514│ └── plugin.json ├── .claude-plugin/

515└── commands/ │ └── plugin.json

516 └── commands/

517```

518 

519Claude Code는 한 폴더보다 더 깊게 찾지 않으므로 더 아래에 중첩된 플러그인은 설치되지 않습니다. Claude Code는 256 MiB보다 큰 아카이브를 거부합니다.

520 

521정확한 파일을 고정하려면 아카이브의 다이제스트와 함께 `sha256` 필드를 추가합니다:

522 

523```json theme={null}

524{

525 "name": "my-plugin",

526 "source": {

527 "source": "archive",

528 "url": "https://artifacts.example.com/claude-plugins/my-plugin-2.1.0.zip",

529 "sha256": "6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1"

530 }

531}

532```

533 

534다운로드된 파일이 핀과 일치하지 않으면 Claude Code는 설치를 거부하고 [`Plugin archive integrity check failed`](/docs/ko/errors#plugin-archive-integrity-check-failed)를 보고합니다.

535 

536아카이브 소스는 다음 필드를 허용합니다:

537 

538| 필드 | 유형 | 설명 |

539| :------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- |

540| `url` | string | 필수. zip 아카이브의 HTTPS URL. Claude Code는 `http://` URL과 loopback, link-local 및 cloud-metadata 호스트를 거부합니다. 모든 리디렉션 홉은 동일한 규칙을 만족해야 하거나 Claude Code는 다운로드를 거부합니다 |

541| `sha256` | string | 선택. 아카이브의 SHA-256 다이제스트(64개의 16진 문자, 대문자 또는 소문자). Claude Code는 모든 다운로드를 이에 대해 검증하고 불일치 시 설치를 거부합니다 |

542 

543`sha256` 다이제스트는 `plugin.json` 또는 마켓플레이스 항목이 버전을 선언하지 않을 때 플러그인의 버전으로도 작동합니다. [버전 관리](/docs/ko/plugins-reference#version-management)를 참조하세요. `version`을 선언하면 해당 버전 문자열이 업데이트 신호이므로 zip과 다이제스트를 변경한 후 버전도 범프하거나 사용자는 캐시된 복사본을 유지합니다.

544 

545<h4 id="authenticate-archive-downloads">

546 아카이브 다운로드 인증

547</h4>

548 

549개인 레지스트리에서의 다운로드와 같은 아카이브 다운로드를 인증하려면 Claude Code가 이를 통해 보내는 HTTP 헤더를 설정합니다. [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces) 항목과 같이 마켓플레이스를 등록한 `url` 소스에서 `headers`를 설정합니다. Claude Code v2.1.238 이상에서는 플러그인의 항목에서 `source` 옆에 설정할 수 있습니다.

550 

551`headers`에 넣을 값이 단기간인 경우(예: 레지스트리가 요청 시 발행하는 토큰) 대신 같은 위치에 `headersHelper` 명령어를 설정합니다. Claude Code는 명령어를 실행하고 인쇄하는 JSON 객체를 해당 위치의 헤더로 보냅니다. Claude Code v2.1.238 이상 필요합니다.

552 

553선택한 위치는 어느 다운로드가 헤더를 받고 Claude Code가 명령어를 실행할 때를 결정합니다:

554 

555| 위치 | 헤더를 받는 다운로드 | Claude Code가 `headersHelper` 설정을 실행할 때 |

556| :-------------- | :----------------------------------------------- | :--------------------------------------------------------------------------------------------------------- |

557| 마켓플레이스 `url` 소스 | 마켓플레이스 URL의 원본에서의 아카이브 다운로드. 즉, 동일한 스킴, 호스트 및 포트 | 마켓플레이스의 `marketplace.json`을 가져올 때마다 그리고 해당 원본에서 아카이브를 다운로드할 때마다. Claude Code는 한 번의 실행 출력을 최대 60초 동안 재사용합니다 |

558| 플러그인 항목 | 해당 항목의 다운로드만 | 사용자가 해당 플러그인 하나를 설치하거나 업데이트하고 [명령어를 수락](#how-users-accept-a-headershelper-command)할 때만 |

559 

560두 위치 모두 동일한 이름의 헤더를 설정하면 Claude Code는 항목의 값을 보냅니다. 한 위치 내에서 명령어가 인쇄하는 헤더는 동일한 이름의 `headers`에 나열된 헤더를 재정의합니다.

561 

562<h5 id="add-a-headershelper-to-a-plugin-entry">

563 플러그인 항목에 headersHelper 추가

564</h5>

565 

566이 항목은 `source` 옆에 `headersHelper`를 설정합니다. 또한 `"strict": false`를 설정하며, Claude Code는 `headersHelper`를 설정하는 `marketplace.json` 항목에 이를 요구합니다. [`"strict": false`](#strict-mode)를 사용하면 마켓플레이스 항목이 플러그인의 전체 정의이므로 사용자는 명령어를 수락하기 전에 플러그인에 포함된 내용을 검토할 수 있습니다:

567 

568```json theme={null}

569{

570 "name": "my-plugin",

571 "description": "Formatting commands for internal services",

572 "strict": false,

573 "commands": "./commands",

574 "source": {

575 "source": "archive",

576 "url": "https://registry.example.com/plugins/my-plugin-2.1.0.zip"

577 },

578 "headersHelper": "/opt/bin/mint-registry-token.sh"

579}

580```

581 

582항목을 확인하려면 `claude plugin install my-plugin@your-marketplace`를 실행합니다. Claude Code는 명령어와 아카이브 URL을 표시하고 수락 후 zip을 다운로드합니다.

583 

584v2.1.238 이전에는 Claude Code가 항목의 아카이브를 `headers` 또는 `headersHelper` 없이 다운로드했으므로 이들에 의존하는 설치가 `HTTP 401 while downloading plugin archive from`으로 실패했으며, 그 뒤에 URL이 있고 레지스트리의 상태 코드가 401 대신 있었습니다.

585 

586<h4 id="write-the-headershelper-command">

587 headersHelper 명령어 작성

588</h4>

589 

590마켓플레이스의 `url` 소스 또는 플러그인 항목에 `headersHelper`를 설정하든 명령어를 다음 요구 사항을 충족하도록 작성합니다:

591 

592* **명령어 텍스트**: 최대 500자의 인쇄 가능한 ASCII. 4개 이상의 공백이 연속되지 않음.

593* **출력**: stdout에 헤더 이름과 문자열 값의 JSON 객체 하나를 인쇄한 후 10초 내에 종료 코드 0으로 종료합니다.

594* **셸 및 작업 디렉터리**: Claude Code는 구성 디렉터리(`~/.claude` 또는 [`CLAUDE_CONFIG_DIR`](/docs/ko/env-vars#variables))에서 `sh` 또는 Windows의 `cmd.exe`를 통해 명령어를 실행합니다. 상대 경로가 해당 디렉터리에 대해 해석되므로 절대 경로 또는 `PATH`의 명령어를 제공합니다. 사용자의 프로젝트가 아닙니다.

595* **Claude Code가 제거하는 변수**: `marketplace.json` 항목 또는 프로젝트의 `.claude/settings.json` 또는 `.claude/settings.local.json`에 설정된 명령어의 환경에서 Claude Code는 `TOKEN`, `SECRET`, `KEY` 또는 `AUTH`와 같은 단어를 포함하는 이름의 모든 변수를 제거합니다. `ANTHROPIC_API_KEY` 포함. Claude Code는 사용자 설정, `--settings` 파일 또는 관리 설정에 설정된 명령어에 이 제거를 적용하지 않습니다.

596* **Claude Code가 설정하는 변수**: `url` 소스의 명령어에 대해 `CLAUDE_CODE_MARKETPLACE_URL` 및 `CLAUDE_CODE_MARKETPLACE_NAME`. 항목의 명령어에 대해 `CLAUDE_CODE_PLUGIN_NAME` 및 `CLAUDE_CODE_PLUGIN_ARCHIVE_URL`. `CLAUDE_CODE_MARKETPLACE_NAME`은 사용자가 URL로 마켓플레이스를 추가한 후 첫 번째 가져오기에서 설정되지 않습니다. 해당 가져오기가 이름을 제공하기 때문입니다.

597 

598bearer 토큰을 발행하는 명령어는 다음과 같은 객체를 인쇄합니다:

599 

600```json theme={null}

601{"Authorization": "Bearer eyJhbGciOiJSUzI1NiJ9"}

602```

603 

604<h4 id="when-claude-code-skips-a-headershelper-command-or-drops-its-output">

605 Claude Code가 headersHelper 명령어를 건너뛰거나 출력을 삭제할 때

606</h4>

607 

608Claude Code는 `headersHelper` 명령어를 실행하지 않거나 `headers` 또는 명령어의 출력에서 온 헤더를 삭제합니다. 이러한 상황에서:

609 

610* **명령어 실패**: 명령어가 0이 아닌 코드로 종료되거나 10초를 초과하거나 JSON 객체 이외의 것을 인쇄하면 Claude Code는 명령어를 실행한 가져오기 또는 다운로드를 수행하지 않습니다.

611* **마켓플레이스 URL이 `https://`로 시작하지 않음**: Claude Code는 해당 `url` 소스의 명령어를 실행하지 않고 `headers` 필드에 나열된 헤더만 보냅니다.

612* **리디렉션이 원본을 벗어남**: 다운로드가 아카이브 URL의 원본에서 리디렉션될 때 Claude Code는 마켓플레이스 `url` 소스와 플러그인 항목의 `headers` 값과 명령어 출력을 삭제합니다.

613* **항목이 라우팅 또는 ID 헤더를 설정함**: Claude Code는 항목의 `headers` 및 명령어 출력에서 `Host`, `Cookie` 및 `X-Forwarded-*`와 같은 요청 라우팅 및 클라이언트 ID 이름을 삭제하고 `Authorization`과 같은 인증 이름을 유지합니다. Claude Code는 모든 `marketplace.json` 항목을 이 방식으로 필터링하고 [인라인 설정 항목](/docs/ko/settings-reference#extraknownmarketplaces)은 어느 파일이 이를 선언하는지에 따라 다릅니다.

614* **`--add-dir` 디렉터리의 설정에 설정된 명령어**: Claude Code는 이를 무시합니다. `url` 소스 및 [인라인 플러그인 항목](/docs/ko/settings-reference#extraknownmarketplaces) 모두에서 그리고 해당 파일의 `headers`만 보냅니다.

615* **관리 설정이 명령어를 차단함**: [`disableCommandPluginSources`](/docs/ko/settings-reference#disablecommandpluginsources)를 `true`로 설정하면 `headersHelper` 명령어를 차단하고 [`allowManagedHooksOnly`](/docs/ko/settings-reference#allowmanagedhooksonly)도 `disableCommandPluginSources`가 명시적으로 `false`가 아닌 한 이들을 차단합니다. 두 차단 중 하나에서 Claude Code는 여전히 관리 설정 자체가 선언하는 마켓플레이스에 대해 명령어를 실행합니다.

616 

617<h4 id="how-users-accept-a-headershelper-command">

618 사용자가 headersHelper 명령어를 수락하는 방법

619</h4>

620 

621사용자는 플러그인 항목의 명령어를 설치하거나 업데이트할 때마다 해당 플러그인 하나를 설치하거나 업데이트할 때마다 수락합니다. `/plugin`의 플러그인 자신의 보기에서 또는 `claude plugin install` 또는 `claude plugin update`를 사용합니다. Claude Code는 명령어와 아카이브 URL을 표시하고 사용자가 수락한 후에만 명령어를 실행합니다.

622 

623비대화형 셸에서 [`--yes`](/docs/ko/plugins-reference#plugin-install)를 전달하여 수락합니다. 이전 `--json` 실행이 표시한 명령어만 수락하려면 실행이 보고한 `sha256`과 함께 [`--accept-command`](/docs/ko/plugins-reference#plugin-install)를 전달합니다.

624 

625Claude Code는 표시한 명령어만 실행합니다. 표시한 아카이브 URL의 경우. 항목의 명령어 또는 아카이브 URL이 그 사이에 변경되면 Claude Code는 설치 또는 업데이트를 거부합니다. 쿼리 문자열만의 변경은 계산되지 않습니다.

626 

627<h5 id="installs-and-updates-that-refuse-the-command-instead-of-asking">

628 명령어를 거부하는 대신 요청하지 않는 설치 및 업데이트

629</h5>

630 

631다른 작업에서 Claude Code는 항목의 명령어를 실행하거나 아카이브를 다운로드하지 않으므로 플러그인은 설치된 버전에 유지되거나 설치되지 않은 상태로 유지됩니다. 사용자가 보는 것은 작업에 따라 다릅니다:

632 

633* **여러 플러그인을 한 번에 설치하거나 플러그인 제안에서 또는 다른 플러그인의 종속성으로**: Claude Code는 명령어가 있는 플러그인을 거부하고 사용자를 `/plugin`의 해당 플러그인 자신의 보기로 가리킵니다. 대량 설치의 다른 플러그인은 여전히 설치됩니다. 거부된 플러그인에 의존하는 플러그인은 사용자가 거부된 플러그인을 설치할 때까지 설치되지 않습니다.

634* **백그라운드 자동 업데이트 또는 아카이브가 다운로드되지 않은 플러그인의 세션 시작**: Claude Code는 `/plugin` 오류 탭에 플러그인을 나열하므로 사용자는 수동으로 설치하거나 업데이트해야 합니다. 설치된 버전을 찾는 자동 업데이트는 아무것도 나열하지 않습니다.

635 

636<h5 id="when-a-marketplace-url-source’s-command-runs">

637 마켓플레이스 `url` 소스의 명령어가 실행될 때

638</h5>

639 

640마켓플레이스 `url` 소스의 `headersHelper`는 마켓플레이스가 게시하는 카탈로그가 아닌 설정 파일(예: [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces) 항목)에 선언되므로 Claude Code는 각 설치 또는 업데이트에서 사용자에게 수락을 요청하지 않습니다. 이를 선언하는 설정 파일은 Claude Code가 실행할 때를 결정합니다:

641 

642| 설정 파일 | Claude Code가 명령어를 실행할 때 |

643| :------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- |

644| 사용자 설정, `--settings` 파일 또는 머신의 관리 설정 파일 | 백그라운드 마켓플레이스 새로 고침을 포함하여 요청하지 않고 |

645| 프로젝트의 `.claude/settings.json` 또는 `.claude/settings.local.json` | 사용자가 해당 폴더 자체에 대한 [작업 공간 신뢰 대화](/docs/ko/permissions#what-runs-before-you-trust-a-folder)를 수락한 후에만. `-p` 또는 SDK 세션은 이를 수락하는 것으로 계산되지 않으며 부모 폴더에 부여된 신뢰도 계산되지 않습니다 |

646| 서버 관리 설정 | 사용자가 [보안 승인 대화](/docs/ko/server-managed-settings#security-approval-dialogs)에서 전달된 설정을 승인한 후에만 |

647 

648`-p` 또는 SDK 세션에서 Claude Code는 보안 승인 대화를 표시할 수 없습니다. 다른 전달된 설정을 적용하지만 마켓플레이스 가져오기 및 명령어가 필요한 아카이브 다운로드는 사용자가 대화형 세션에서 승인할 때까지 실패합니다.

649 

650이러한 파일 중 하나의 [인라인 플러그인 항목](/docs/ko/settings-reference#extraknownmarketplaces)의 경우 Claude Code는 해당 파일의 마켓플레이스 수준 명령어와 동일한 폴더 신뢰 또는 설정 승인을 요구하며 사용자는 각 설치 또는 업데이트에서 항목의 명령어를 수락합니다.

651 

652<h3 id="command-sources">

653 명령어 소스

654</h3>

655 

656로컬로 설치된 도구가 플러그인 디렉터리를 생성할 때 `command`를 사용합니다. 예를 들어 현재 선택된 도구 체인에 대해 플러그인을 렌더링하는 IDE. Claude Code는 사용자가 플러그인을 설치할 때 명령어를 실행하고 백그라운드에서 세션당 한 번 다시 실행하므로 사용자는 도구의 변경된 출력을 다시 설치하지 않고 선택합니다. Claude Code v2.1.229 이상 필요합니다. v2.1.120부터 v2.1.228까지에서는 플러그인 설치가 `This plugin uses a source type your Claude Code version does not support. Update Claude Code and try again.`으로 실패하고 더 오래된 버전에서는 전체 마켓플레이스가 로드되지 않습니다.

657 

658이 항목은 도구가 인쇄하는 모든 디렉터리에서 플러그인을 설치합니다:

659 

660```json theme={null}

661{

662 "name": "my-plugin",

663 "source": {

664 "source": "command",

665 "command": "my-tool claude-plugin-path"

666 }

667}

668```

669 

670Claude Code는 사용자의 홈 디렉터리에서 플랫폼 셸(macOS 및 Linux의 `sh` 또는 Windows의 `cmd.exe`)을 통해 명령어를 실행합니다. 명령어는 stdout에 정확히 한 줄을 인쇄하고 코드 0으로 종료해야 합니다. 해당 줄은 명령어가 종료될 때까지 완전한 플러그인을 포함하는 디렉터리의 절대 경로이며 경로는 실행 간에 변경될 수 있습니다.

671 

672Claude Code는 `timeout` 초보다 오래 실행되는 명령어를 중지하고 설치 또는 업데이트가 실패합니다. Claude Code는 또한 이러한 경우에 인쇄된 경로를 거부하고 설치 또는 업데이트가 동일한 방식으로 실패합니다:

673 

674* 디렉터리의 최상위 수준에 플러그인 콘텐츠가 없습니다. 예를 들어 `.claude-plugin/` 디렉터리 또는 `skills/`, `commands/`, `agents/` 또는 `hooks/` 디렉터리

675* 디렉터리는 Claude Code가 시작된 디렉터리 또는 그 부모 중 하나입니다

676* Windows에서 경로는 UNC 경로입니다

677 

678명령어 소스는 다음 필드를 허용합니다:

679 

680| 필드 | 유형 | 설명 |

681| :-------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------- |

682| `command` | string | 필수. 플러그인 디렉터리의 절대 경로를 stdout의 단일 줄로 인쇄하고 0으로 종료하는 셸 명령어. 인쇄 가능한 ASCII여야 하며 최대 500자이고 4개 이상의 공백이 연속되지 않아야 하므로 사용자는 수락하도록 요청받는 전체 명령어를 검토할 수 있습니다 |

683| `timeout` | number | 선택. 명령어를 포기하기 전에 대기할 전체 초 수(기본값: 60, 최대값: 600) |

684| `mode` | string | 선택. `"copy"`(기본값)는 인쇄된 디렉터리를 플러그인 캐시에 복사합니다. `"link"`는 인쇄된 디렉터리를 제자리에서 사용합니다. [복사 모드 및 링크 모드](#copy-mode-and-link-mode)를 참조하세요 |

685 

686<h4 id="copy-mode-and-link-mode">

687 복사 모드 및 링크 모드

688</h4>

689 

690기본 `"mode": "copy"`를 사용하면 Claude Code는 인쇄된 디렉터리를 버전 관리 플러그인 캐시에 복사하고 디렉터리 내용의 해시에서 [플러그인 버전](/docs/ko/plugins-reference#version-management)을 파생합니다. 도구는 명령어가 종료된 후 디렉터리를 삭제하거나 다시 쓸 수 있으며 동일한 내용을 생성하는 다시 실행은 최신 상태로 계산됩니다. Claude Code는 256 MiB보다 크거나 20,000개 이상의 항목을 포함하는 디렉터리 설치를 거부합니다.

691 

692렌더링된 SDK 내보내기와 같이 복사되지 않아야 하는 대규모 플러그인 디렉터리에 대해 `"mode": "link"`를 설정합니다. Claude Code는 인쇄된 디렉터리의 각 최상위 항목에 대한 링크로 플러그인의 캐시 항목을 채우고 제자리에서 파일을 사용하므로 아무것도 복사되지 않고 파일 내용이 해시되지 않으며 크기 제한이 적용되지 않습니다. 최상위 항목이 인쇄된 디렉터리 외부를 가리키는 심볼릭 링크인 경우 설치가 실패합니다. Claude Code는 또한 링크 모드 플러그인에 대해 [Node.js 패키지 종속성 설치](/docs/ko/plugins-reference#node-js-package-dependencies)를 건너뛰므로 플러그인이 필요한 모든 `node_modules`을 이미 포함하는 디렉터리를 인쇄합니다.

693 

694플러그인이 설치된 상태로 유지되는 동안 인쇄된 디렉터리를 제자리에 유지합니다. Claude Code는 모든 시작 시 해당 링크를 통해 플러그인을 로드하기 때문입니다. Claude Code는 파일 내부가 아닌 인쇄된 디렉터리의 실제 경로 및 최상위 항목에서 [플러그인 버전](/docs/ko/plugins-reference#version-management)을 파생합니다. 따라서 새 콘텐츠를 신호하려면 다른 경로를 인쇄합니다. 인쇄된 디렉터리 또는 그 아래 어디서나 시작된 세션에서 Claude Code는 플러그인을 로드하지 않습니다.

695 

696Claude Code는 Windows에서 링크 모드를 지원하지 않으며 거기에 링크 모드 플러그인 설치를 거부합니다. 대신 `"mode": "copy"`를 선언합니다.

697 

698<h4 id="how-users-accept-the-command">

699 사용자가 명령어를 수락하는 방법

700</h4>

701 

702Claude Code는 사용자의 머신에서 명령어를 실행하므로 모든 실행을 사용자의 명시적 수락에 바인딩합니다:

703 

704* 사용자가 `/plugin`의 세부 정보 화면에서 플러그인을 설치하거나 대화형 터미널에서 `claude plugin install` 또는 `claude plugin update`를 사용하여 설치하거나 업데이트할 때 Claude Code는 먼저 정확한 명령어 문자열을 표시하고 해당 설치에 대해 수락된 명령어를 기록합니다. 동일한 명령어의 수락으로 진행할 수 있는 `claude plugin update`는 아무것도 표시하지 않습니다.

705* 비대화형 셸(예: 프로비저닝 스크립트)에서 `claude plugin install` 또는 `claude plugin update`에 `--yes`를 전달하여 인쇄하는 명령어를 수락합니다. 이전 `--json` 실행이 표시한 명령어만 수락하려면 실행이 보고한 `sha256`과 함께 [`--accept-command`](/docs/ko/plugins-reference#plugin-install)를 전달합니다.

706* 다른 모든 경로는 사용자가 이미 수락한 명령어만 실행합니다. 여기에는 `/plugin`에서 시작된 업데이트 및 [Claude Code가 명령어를 다시 실행할 때](#when-claude-code-re-runs-the-command)에 설명된 백그라운드 실행이 포함됩니다. 아무것도 수락되지 않으면 Claude Code는 명령어 실행을 거부하고 사용자에게 검토 방법을 알려줍니다. Claude Code는 다른 플러그인의 종속성으로 명령어 소스 플러그인을 설치하지 않으므로 사용자는 먼저 설치합니다.

707* 항목의 `command`를 변경하거나 `mode`를 전환하면 사용자는 이미 가진 버전을 유지하고 Claude Code는 명령어 다시 실행을 중지합니다. 대화형 세션에서 `/plugin` 오류 탭은 사용자가 `claude plugin update <plugin>@<marketplace>`를 실행하여 검토하고 수락할 때까지 새 명령어를 표시합니다.

708 

709관리자는 관리 설정 [`disableCommandPluginSources`](/docs/ko/settings-reference#disablecommandpluginsources)를 사용하여 조직 전체에서 명령어 소스를 차단할 수 있습니다. 조직이 [`allowManagedHooksOnly`](/docs/ko/settings-reference#allowmanagedhooksonly)를 설정하면 Claude Code는 기본적으로 명령어 소스를 차단합니다.

710 

711<h4 id="when-claude-code-re-runs-the-command">

712 Claude Code가 명령어를 다시 실행할 때

713</h4>

714 

715인쇄된 디렉터리는 명령어가 실행된 시점의 도구 상태를 반영하므로 Claude Code는 다음 시간에 명령어를 다시 실행합니다:

716 

717* 사용자가 플러그인을 설치하거나 업데이트할 때마다

718* 활성화된 각 명령어 소스 플러그인에 대해 세션당 한 번. 백그라운드에서 세션이 시작된 직후. 이 실행은 마켓플레이스 자동 업데이트를 거치지 않으므로 마켓플레이스의 [자동 업데이트 설정](/docs/ko/discover-plugins#configure-auto-updates)에 따라 다르지 않습니다

719* 시작 또는 `/reload-plugins`에서 활성화된 플러그인의 설치된 버전이 플러그인 캐시에서 누락된 경우

720 

721사용자가 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ko/env-vars)를 설정하면 Claude Code는 두 백그라운드 실행을 건너뜁니다. 명시적 설치 및 업데이트는 여전히 해당 변수 집합으로 명령어를 실행합니다.

722 

723명령어의 해시된 출력이 변경되면 Claude Code는 결과를 새 버전으로 설치하고 실행 중인 대화형 세션에서 다시 로드합니다. [`/reload-plugins`가 전환하는 동일한 구성 요소](/docs/ko/plugins-reference#environment-variables)를 전환합니다. 사용자는 플러그인이 다시 로드되었다는 알림을 봅니다. 제자리에서 다시 로드하면 세션의 프롬프트 캐시가 무효화되면 Claude Code는 대신 사용자에게 `/reload-plugins`를 실행하도록 요청합니다. 이는 [캐시 비용에 대해 경고하고 `--force`로 다시 실행할 때 적용됩니다](/docs/ko/prompt-caching#enabling-or-disabling-a-plugin).

724 

725<h3 id="advanced-plugin-entries">

726 고급 플러그인 항목

727</h3>

728 

729이 예제는 명령어, 에이전트, hooks 및 MCP 서버의 사용자 정의 경로를 포함하여 많은 선택적 필드를 사용하는 플러그인 항목을 보여줍니다:

730 

731```json theme={null}

732{

733 "name": "enterprise-tools",

734 "source": {

735 "source": "github",

736 "repo": "company/enterprise-plugin"

737 },

738 "description": "Enterprise workflow automation tools",

739 "version": "2.1.0",

740 "author": {

741 "name": "Enterprise Team",

742 "email": "enterprise@example.com"

743 },

744 "homepage": "https://docs.example.com/plugins/enterprise-tools",

745 "repository": "https://github.com/company/enterprise-plugin",

746 "license": "MIT",

747 "keywords": ["enterprise", "workflow", "automation"],

748 "category": "productivity",

749 "commands": [

750 "./commands/core/",

751 "./commands/enterprise/",

752 "./commands/experimental/preview.md"

753 ],

754 "agents": ["./agents/security-reviewer.md", "./agents/compliance-checker.md"],

755 "hooks": {

756 "PostToolUse": [

757 {

758 "matcher": "Write|Edit",

759 "hooks": [

760 {

761 "type": "command",

762 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/validate.sh"

763 }

764 ]

765 }

766 ]

767 },

768 "mcpServers": {

769 "enterprise-db": {

770 "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",

771 "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"]

772 }

773 },

774 "strict": false

775}

776```

777 

778주목할 주요 사항:

779 

780* **`commands` 및 `agents`**: 여러 디렉터리 또는 개별 파일을 지정할 수 있습니다. 경로는 플러그인 루트에 상대적이며 그 내에 유지되어야 합니다.

781 * Claude Code는 `./../shared.md`와 같이 플러그인 디렉터리 외부로 해석되는 경로를 [`path escapes plugin directory`](/docs/ko/errors#path-escapes-plugin-directory) 오류로 거부하고 여전히 해당 구성 요소 없이 플러그인을 로드합니다

782* **`${CLAUDE_PLUGIN_ROOT}`**: hook 명령어 및 MCP 서버 구성에서 이 변수를 사용하여 플러그인의 설치 디렉터리 내의 파일을 참조합니다.

783 * 서버 유형별로 어느 구성 필드가 이를 대체하는지에 대한 [대체 테이블](/docs/ko/plugins-reference#environment-variables)을 참조하세요

784 * 플러그인 업데이트를 통해 유지되어야 하는 종속성 또는 상태의 경우 [`${CLAUDE_PLUGIN_DATA}`](/docs/ko/plugins-reference#persistent-data-directory)를 대신 사용합니다

785* **`strict: false`**: 이것이 false로 설정되어 있으므로 플러그인은 자신의 `plugin.json`이 필요하지 않습니다. 마켓플레이스 항목이 모든 것을 정의합니다. 아래의 [Strict 모드](#strict-mode)를 참조하세요.

786 

787기본적으로 플러그인의 skills는 해당 `source` 아래의 `skills/` 디렉터리에서 로드됩니다. `skills` 필드에 나열된 경로는 해당 스캔에 추가됩니다:

788 

789```json theme={null}

790"skills": ["./skills/", "./extra-skills/"]

791```

792 

793여러 플러그인 항목이 마켓플레이스 루트(`source: "./"`)에서 하나의 `skills/` 폴더를 공유할 때 각 항목이 자신의 skills만 로드하도록 특정 하위 디렉터리를 대신 나열합니다:

794 

795```json theme={null}

796"source": "./",

797"skills": ["./skills/code-review", "./skills/docs"]

798```

799 

800마켓플레이스 루트 `source`를 사용하면 나열된 경로가 해당 항목의 완전한 집합이 되며, 공유된 `skills/` 폴더의 다른 디렉터리는 로드되지 않습니다. `./skills/` 자체 또는 플러그인 루트를 나열하면 전체 스캔이 유지됩니다. 나열된 경로 중 어느 것도 존재하지 않으면 기본 스캔이 대신 실행됩니다.

801 

802<h3 id="strict-mode">

803 Strict 모드

804</h3>

805 

806`strict` 필드는 `plugin.json`이 구성 요소 정의(skills, 에이전트, hooks, MCP 서버, 출력 스타일)의 권한인지 여부를 제어합니다.

807 

808| 값 | 동작 |

809| :---------- | :---------------------------------------------------------------------------------- |

810| `true`(기본값) | `plugin.json`이 권한입니다. 마켓플레이스 항목은 추가 구성 요소로 이를 보완할 수 있으며 두 소스가 병합됩니다. |

811| `false` | 마켓플레이스 항목이 전체 정의입니다. 플러그인에 구성 요소를 선언하는 `plugin.json`도 있으면 충돌이 발생하고 플러그인이 로드되지 않습니다. |

812 

813**각 모드를 사용할 때:**

814 

815* **`strict: true`**: 플러그인은 자신의 `plugin.json`을 가지고 있으며 자신의 구성 요소를 관리합니다. 마켓플레이스 항목은 맨 위에 추가 skills 또는 hooks를 추가할 수 있습니다. 이것이 기본값이며 대부분의 플러그인에서 작동합니다.

816* **`strict: false`**: 마켓플레이스 운영자가 완전한 제어를 원합니다. 플러그인 저장소는 원본 파일을 제공하고 마켓플레이스 항목은 이러한 파일 중 어느 것이 skills, 에이전트, hooks 등으로 노출되는지 정의합니다. 마켓플레이스가 플러그인 작성자의 의도와 다르게 플러그인의 구성 요소를 재구성하거나 큐레이션할 때 유용합니다.

817 

818<h2 id="host-and-distribute-marketplaces">

819 마켓플레이스 호스팅 및 배포

820</h2>

821 

822사용자가 git 저장소에서 호스팅되는 마켓플레이스를 추가하거나 이를 나열하는 git 기반 플러그인을 설치할 때 Claude Code는 해당 마켓플레이스 또는 플러그인 저장소를 사용자의 머신에 복제합니다. 복제는 [Git LFS](https://git-lfs.com) 콘텐츠를 다운로드하지 않으므로 LFS 추적 파일은 포인터 파일로 도착합니다. 플러그인이 필요한 파일을 LFS 외부에 유지하세요.

823 

824<h3 id="host-on-github-recommended">

825 GitHub에서 호스팅(권장)

826</h3>

827 

828GitHub는 마켓플레이스를 호스팅하고 배포하는 권장 방법입니다:

829 

8301. **저장소 생성**: 마켓플레이스를 위한 새 저장소 설정

8312. **마켓플레이스 파일 추가**: 플러그인 정의와 함께 `.claude-plugin/marketplace.json` 생성

8323. **팀과 공유**: 사용자가 `/plugin marketplace add owner/repo`로 마켓플레이스를 추가합니다

833 

834**이점**: 기본 제공 버전 제어, 문제 추적 및 팀 협업 기능.

835 

836<h3 id="host-on-other-git-services">

837 다른 git 서비스에서 호스팅

838</h3>

839 

840GitLab, Bitbucket 및 자체 호스팅 서버와 같은 모든 git 호스팅 서비스가 작동합니다. 사용자는 전체 저장소 URL로 추가합니다:

841 

842```shell theme={null}

843/plugin marketplace add https://gitlab.com/company/plugins.git

844```

845 

846<h3 id="private-repositories">

847 개인 저장소

848</h3>

849 

850Claude Code는 개인 저장소에서 플러그인 설치를 지원합니다. [**조직 설정 > 플러그인**](https://claude.ai/admin-settings/plugins)을 통해 마켓플레이스를 배포하는 경우 git 자격 증명이 관련되지 않습니다. 조직 동기화는 조직의 GitHub 또는 GitLab 연결을 통해 claude.ai에서 마켓플레이스 저장소를 읽습니다. 개인 플러그인 소스가 될 수 있는 항목은 [조직 설정을 통해 배포](#distribute-through-organization-settings)를 참조하세요.

851 

852<h4 id="commands-you-run">

853 실행하는 명령어

854</h4>

855 

856`/plugin marketplace add`, `/plugin install`, `/plugin update` 또는 `/plugin marketplace update`를 실행할 때 Claude Code는 기존 git 자격 증명 도우미를 사용하므로 `gh auth login`, macOS Keychain 또는 `git-credential-store`를 통한 HTTPS 액세스는 터미널에서와 동일하게 작동합니다. SSH 액세스는 호스트가 이미 `known_hosts` 파일에 있고 키가 `ssh-agent`에 로드되어 있는 한 작동합니다. Claude Code는 호스트 지문 및 키 암호에 대한 대화형 SSH 프롬프트를 억제하기 때문입니다. GitHub `owner/repo` 단축 소스는 기본적으로 SSH를 통해 복제합니다. 대신 HTTPS를 통해 복제하려면 [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/ko/env-vars#variables)을 설정합니다.

857 

858<h4 id="background-auto-updates">

859 백그라운드 자동 업데이트

860</h4>

861 

862백그라운드 새로고침은 마켓플레이스의 원격에서 새 커밋을 확인할 때 구성된 git 자격 증명 도우미를 사용합니다. 실행하는 명령어와 동일합니다. SSH 원격의 경우 `ssh-agent`에 로드된 키가 확인을 인증합니다. Claude Code는 확인을 비대화형으로 실행합니다. git의 터미널 프롬프트 및 askpass 프로그램을 끄고 자격 증명 도우미에 프롬프트하지 않도록 지시합니다. 확인이 HTTPS를 통해 개인 저장소에 인증할 수 있는지 여부는 도우미에 따라 다릅니다:

863 

864* 프롬프트 없이 저장된 자격 증명을 제공할 수 있는 도우미는 확인을 인증합니다. Git Credential Manager, macOS Keychain 도우미 및 `git-credential-store`는 호스트에 대한 자격 증명을 보유하면 이런 식으로 작동합니다.

865* 프롬프트가 필요한 도우미는 백그라운드에서 응답할 수 없습니다. 업데이트가 조용히 실패하고 기존 체크아웃이 제자리에 유지되므로 플러그인은 마지막 동기화된 상태에서 계속 작동합니다. `/plugin marketplace update <name>`을 실행하여 자격 증명으로 마켓플레이스를 새로고칩니다.

866 

867확인이 체크아웃이 최신 상태임을 발견하면 Claude Code는 그대로 둡니다. 확인이 새 커밋을 발견하거나 원격에 도달하거나 인증할 수 없어서 실패하면 Claude Code는 마켓플레이스를 다시 복제하고 새 복제본으로 교체합니다. 해당 복제가 실패하면 기존 체크아웃이 제자리에 유지됩니다. 다시 복제는 [대규모 저장소에서 시간 초과](#git-operations-time-out)될 수 있습니다.

868 

869두 가지 설정이 개인 마켓플레이스를 예측 가능하게 작동하게 합니다:

870 

871* `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1`을 설정하여 백그라운드 확인이 원격에 도달하거나 인증할 수 없을 때 다시 복제를 시도하지 않고 기존 체크아웃을 유지합니다. 플러그인은 마지막 동기화된 상태에서 계속 작동하며 `/plugin marketplace update`를 사용한 수동 업데이트는 여전히 자격 증명으로 인증합니다.

872* git 자격 증명 도우미를 구성합니다. 예를 들어 GitHub의 경우 `gh auth setup-git`을 사용하여 백그라운드 확인과 다시 복제가 프롬프트 없이 인증할 수 있습니다.

873 

874`GITHUB_TOKEN`과 같은 공급자 토큰을 환경에서 설정하는 것만으로는 백그라운드 인증을 활성화하지 않습니다. 토큰은 구성된 자격 증명 도우미(예: `GH_TOKEN` 및 `GITHUB_TOKEN`을 읽는 `gh` CLI의 도우미)를 통해서만 적용됩니다.

875 

876<Note>

877 CI/CD 환경에서는 개인 저장소에서 플러그인을 설치하기 전에 git 자격 증명 도우미를 구성합니다. GitHub Actions에서 마켓플레이스 저장소에 대한 읽기 액세스 권한이 있는 토큰을 `GH_TOKEN`으로 내보낸 다음 `gh auth setup-git`을 실행합니다. 기본 워크플로우 토큰은 워크플로우 자신의 저장소에만 액세스할 수 있으므로 다른 저장소의 개인 마켓플레이스는 개인 액세스 토큰 또는 앱 토큰이 필요합니다.

878</Note>

879 

880<h3 id="distribute-through-organization-settings">

881 조직 설정을 통해 배포

882</h3>

883 

884Team 또는 Enterprise 플랜에서 [**조직 설정 > 플러그인**](https://claude.ai/admin-settings/plugins)을 통해 플러그인을 배포하는 경우 다음 소스 규칙이 적용됩니다:

885 

886* github.com 및 gitlab.com에서 마켓플레이스 저장소는 개인 또는 내부여야 합니다. 조직 동기화는 호스트와 일치하는 연결을 통해 저장소를 읽습니다:

887 * **github.com**: Claude GitHub App

888 * **GitHub Enterprise Server 호스트**: 조직의 [GitHub Enterprise App](/docs/ko/github-enterprise-server#admin-setup)

889 * **gitlab.com 또는 자체 관리 GitLab 인스턴스**: 조직의 [GitLab 구성](#sync-a-gitlab-hosted-marketplace)의 해당 호스트에 대한 액세스 토큰

890* 각 플러그인 소스는 `github`, `url` 또는 `git-subdir` 유형이거나 `./`로 시작하는 [상대 경로](#relative-paths)여야 합니다. `metadata.pluginRoot` 아래에 bare name으로 플러그인을 나열하면 조직 동기화가 이를 지원되지 않는 소스로 거부하므로 경로를 명시적으로 작성합니다(예: `./plugins/deploy-tools`).

891* 플러그인 소스는 세 가지 경우에 개인일 수 있습니다:

892 * 마켓플레이스 저장소의 소유자를 공유하는 github.com 소스

893 * GHE App이 저장소에 설치된 조직의 GitHub Enterprise 호스트의 소스

894 * 마켓플레이스 저장소와 동일한 GitLab 호스트의 `url` 또는 `git-subdir` 소스. gitlab.com에서 소스는 마켓플레이스 저장소와 동일한 최상위 그룹 또는 사용자 네임스페이스 아래에 있어야 합니다.

895* 다른 모든 플러그인 소스는 github.com, gitlab.com 또는 bitbucket.org의 공개 저장소여야 하며, 조직 동기화는 자격 증명 없이 가져옵니다. 조직 동기화는 이러한 규칙이 적용되지 않는 호스트의 플러그인 소스를 거부합니다.

896 

897관리 워크플로우는 [조직을 위한 플러그인 관리](https://support.claude.com/en/articles/13837433)를 참조하세요.

898 

899개인 플러그인을 포함하려면 플러그인 폴더를 마켓플레이스 저장소 내에 배치하고 [상대 경로](#relative-paths)로 참조합니다. 조직 동기화는 배포 중에 각 플러그인을 패키징하므로 사용자는 별도의 소스 저장소에 액세스할 필요가 없습니다.

900 

901예를 들어 이 `marketplace.json` 플러그인 항목은 마켓플레이스 저장소의 `plugins/deploy-tools`에 커밋한 플러그인을 참조합니다:

902 

903```json theme={null}

904{

905 "name": "deploy-tools",

906 "source": "./plugins/deploy-tools"

907}

908```

909 

910<h4 id="sync-a-gitlab-hosted-marketplace">

911 GitLab 호스팅 마켓플레이스 동기화

912</h4>

913 

914gitlab.com 또는 자체 관리 GitLab 인스턴스에서 마켓플레이스를 동기화하려면 [Owner](/docs/ko/server-managed-settings#access-control)가 먼저 [**조직 설정 > Claude Code**](https://claude.ai/admin-settings/claude-code)에서 해당 호스트에 대한 GitLab 구성을 추가합니다. GitLab 구성은 공개 베타 상태이며 플러그인 마켓플레이스 동기화에만 적용됩니다. 하나를 추가해도 [웹의 Claude Code](/docs/ko/claude-code-on-the-web#limitations)에서 GitLab 저장소를 사용할 수 없습니다. 설정 단계는 [조직을 위한 플러그인 관리](https://support.claude.com/en/articles/13837433)를 참조하세요.

915 

916마켓플레이스를 추가할 때 프로젝트의 HTTPS URL(예: `https://gitlab.example.com/platform/claude-plugins`)을 입력합니다. 중첩된 하위 그룹의 프로젝트가 작동합니다. 조직 동기화는 프로젝트의 기본 분기를 읽습니다. **자동으로 동기화**를 켜면 기본 분기에 대한 푸시만 동기화를 시작합니다.

917 

918<h4 id="keep-executables-out-of-the-top-level-bin-directory">

919 최상위 bin 디렉터리에서 실행 파일 제외

920</h4>

921 

922조직 설정을 통해 배포하는 모든 플러그인에 최상위 `bin/` 디렉터리를 포함하지 마세요. claude.ai는 마켓플레이스 동기화 또는 직접 업로드를 통해 플러그인이 도착하는지 여부에 관계없이 하나를 가진 플러그인을 거부합니다:

923 

924* **마켓플레이스 동기화**: 조직 동기화는 해당 플러그인을 거부하고 나머지 마켓플레이스를 동기화합니다. 오류 메시지는 `Plugin contains a top-level bin/ directory`로 시작합니다.

925* **직접 업로드**: [**조직 설정 > 플러그인**](https://claude.ai/admin-settings/plugins)에서 플러그인을 업로드하는 경우 claude.ai는 동일한 메시지로 업로드를 거부합니다.

926 

927실행 파일을 `scripts/`와 같은 다른 디렉터리에 유지하고 [skills, hooks 또는 MCP 서버 구성](/docs/ko/plugins-reference#environment-variables)에서 `${CLAUDE_PLUGIN_ROOT}/scripts/<name>`으로 참조합니다.

928 

929<h3 id="require-marketplaces-for-your-team">

930 팀을 위한 마켓플레이스 필수

931</h3>

932 

933프로젝트 폴더를 [신뢰](/docs/ko/permissions#what-runs-before-you-trust-a-folder)할 때 Claude Code가 팀 구성원을 위해 마켓플레이스를 추가하도록 저장소를 구성할 수 있습니다. 별도의 프롬프트 없이 마켓플레이스를 `.claude/settings.json`에 추가합니다:

934 

935```json theme={null}

936{

937 "extraKnownMarketplaces": {

938 "company-tools": {

939 "source": {

940 "source": "github",

941 "repo": "your-org/claude-plugins"

942 }

943 }

944 }

945}

946```

947 

948기본적으로 활성화해야 하는 플러그인을 지정할 수도 있습니다:

949 

950```json theme={null}

951{

952 "enabledPlugins": {

953 "code-formatter@company-tools": true,

954 "deployment-tools@company-tools": true

955 }

956}

957```

958 

959전체 구성 옵션은 [플러그인 설정](/docs/ko/settings-reference#plugin-settings)을 참조하세요.

960 

961<Note>

962 로컬 `directory` 또는 `file` 소스를 상대 경로와 함께 사용하는 경우 경로는 저장소의 주 체크아웃에 대해 해석됩니다. git worktree에서 Claude Code를 실행할 때 경로는 여전히 주 체크아웃을 가리키므로 모든 worktree가 동일한 마켓플레이스 위치를 공유합니다. 마켓플레이스 상태는 프로젝트당이 아니라 사용자당 한 번 `~/.claude/plugins/known_marketplaces.json`에 저장됩니다.

963</Note>

964 

965<h3 id="pre-populate-plugins-for-containers">

966 컨테이너에 대한 플러그인 사전 채우기

967</h3>

968 

969컨테이너 이미지 및 CI 환경의 경우 빌드 시간에 플러그인 디렉터리를 사전 채우므로 Claude Code가 런타임에 아무것도 복제하지 않고도 마켓플레이스 및 플러그인이 이미 사용 가능한 상태로 시작됩니다. `CLAUDE_CODE_PLUGIN_SEED_DIR` 환경 변수를 이 디렉터리를 가리키도록 설정합니다.

970 

971여러 시드 디렉터리를 계층화하려면 Unix에서는 `:`로, Windows에서는 `;`로 경로를 구분합니다. Claude Code는 각 디렉터리를 순서대로 검색하고 주어진 마켓플레이스 또는 플러그인 캐시를 포함하는 첫 번째 시드를 사용합니다.

972 

973시드 디렉터리는 `~/.claude/plugins`의 구조를 미러링합니다:

974 

975```

976$CLAUDE_CODE_PLUGIN_SEED_DIR/

977 known_marketplaces.json

978 marketplaces/<name>/...

979 cache/<marketplace>/<plugin>/<version>/...

980```

981 

982시드 디렉터리를 구축하려면 이미지 빌드 중에 Claude Code를 한 번 실행하고, 필요한 플러그인을 설치한 다음, 결과 `~/.claude/plugins` 디렉터리를 이미지에 복사하고 `CLAUDE_CODE_PLUGIN_SEED_DIR`을 가리킵니다.

983 

984복사 단계를 건너뛰려면 빌드 중에 `CLAUDE_CODE_PLUGIN_CACHE_DIR`을 대상 시드 경로로 설정하여 플러그인이 직접 설치되도록 합니다:

985 

986```bash theme={null}

987CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin marketplace add your-org/plugins

988CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin install my-tool@your-plugins

989```

990 

991그런 다음 런타임 환경에서 `CLAUDE_CODE_PLUGIN_SEED_DIR=/opt/claude-seed`를 설정하여 Claude Code가 시작 시 시드에서 읽도록 합니다.

992 

993시작 시 Claude Code는 시드의 `known_marketplaces.json`에서 찾은 마켓플레이스를 기본 구성에 등록하고 `cache/` 아래에서 찾은 플러그인 캐시를 다시 복제하지 않고 사용합니다. 이는 대화형 모드와 `-p` 플래그를 사용한 비대화형 모드 모두에서 작동합니다.

994 

995동작 세부 정보:

996 

997* **읽기 전용**: Claude Code는 시드 디렉터리에 절대 쓰지 않습니다.

998* **자동 업데이트 비활성화**: 시드 마켓플레이스는 자동 업데이트되지 않습니다.

999* **시드 항목이 우선합니다**: 시드에서 선언된 마켓플레이스는 각 시작 시 사용자 구성의 일치하는 항목을 덮어씁니다. 시드 플러그인을 거부하려면 마켓플레이스를 제거하는 대신 `/plugin disable`을 사용합니다.

1000* **경로 해석**: Claude Code는 시드의 JSON 내에 저장된 경로를 신뢰하지 않고 런타임에 `$CLAUDE_CODE_PLUGIN_SEED_DIR/marketplaces/<name>/`을 탐색하여 마켓플레이스 콘텐츠를 찾습니다. 이는 시드가 빌드된 위치와 다른 경로에 마운트된 경우에도 시드가 올바르게 작동함을 의미합니다.

1001* **변경 차단**: 시드 관리 마켓플레이스에 대해 `/plugin marketplace remove` 또는 `/plugin marketplace update`를 실행하면 시드 이미지를 업데이트하도록 관리자에게 문의하라는 지침과 함께 실패합니다.

1002* **설정과 구성**: `extraKnownMarketplaces` 또는 `enabledPlugins`이 시드에 이미 존재하는 마켓플레이스를 선언하면 Claude Code는 복제하는 대신 시드 복사본을 사용합니다.

1003 

1004<h3 id="managed-marketplace-restrictions">

1005 관리되는 마켓플레이스 제한

1006</h3>

1007 

1008플러그인 소스에 대한 엄격한 제어가 필요한 조직의 경우 관리자는 관리되는 설정에서 [`strictKnownMarketplaces`](/docs/ko/settings-reference#strictknownmarketplaces) 설정을 사용하여 사용자가 추가할 수 있는 플러그인 마켓플레이스를 제한할 수 있습니다. 단일 실행을 위해 플러그인, 에이전트 및 MCP 서버를 사이드로드하는 CLI 플래그를 거부하려면 [`disableSideloadFlags`](/docs/ko/settings-reference#disablesideloadflags)와 쌍을 이룹니다. 컨텍스트 설치 제안으로 나타날 수 있는 마켓플레이스의 플러그인을 허용 목록으로 지정하려면 [`pluginSuggestionMarketplaces`](/docs/ko/settings-reference#pluginsuggestionmarketplaces)를 설정합니다.

1009 

1010`strictKnownMarketplaces`는 플러그인이 오는 마켓플레이스와 일치하므로 사용자는 여전히 허용된 마켓플레이스에서 [`command` 소스](#command-sources)를 가진 플러그인을 설치할 수 있습니다. 명령 소스도 차단하려면 [`disableCommandPluginSources`](/docs/ko/settings-reference#disablecommandpluginsources)를 설정합니다.

1011 

1012`strictKnownMarketplaces`가 관리되는 설정에서 구성되면 제한 동작은 값에 따라 달라집니다:

1013 

1014| 값 | 동작 |

1015| ------------ | ---------------------------------------------------- |

1016| 정의되지 않음(기본값) | 제한 없음. 사용자는 모든 마켓플레이스를 추가할 수 있습니다 |

1017| 빈 배열 `[]` | 완전한 잠금. 공식 Anthropic 마켓플레이스를 포함한 모든 마켓플레이스 소스를 차단합니다 |

1018| 소스 목록 | 허용 목록 적용. 사용자는 항목과 일치하는 마켓플레이스만 추가할 수 있습니다 |

1019 

1020<h4 id="common-configurations">

1021 일반적인 구성

1022</h4>

1023 

1024공식 Anthropic 마켓플레이스를 포함한 모든 마켓플레이스 추가 비활성화:

1025 

1026```json theme={null}

1027{

1028 "strictKnownMarketplaces": []

1029}

1030```

1031 

1032Claude Code는 [claude.ai에서 동기화된](/docs/ko/plugins-reference#synced-plugins) 플러그인을 마켓플레이스가 아닌 계정에서 다운로드하므로 이 잠금은 이를 포함하지 않습니다. 이를 중지하려면 관리되는 설정에서 [`syncClaudeAiPlugins`](/docs/ko/settings-reference#syncclaudeaiplugins)를 `false`로 설정하거나 claude.ai에서 조직의 Skills를 끕니다.

1033 

1034공식 Anthropic 마켓플레이스만 허용합니다. 단일 저장소 항목에 대한 일치는 정확하므로 이 항목은 동일한 저장소의 `ref` 또는 `path` 변형을 포함하지 않습니다:

1035 

1036```json theme={null}

1037{

1038 "strictKnownMarketplaces": [

1039 {

1040 "source": "github",

1041 "repo": "anthropics/claude-plugins-official"

1042 }

1043 ]

1044}

1045```

1046 

1047이 항목을 사용하면 Claude Code는 이미 등록된 공식 마켓플레이스를 사용 가능하게 유지하고 새 머신에서 Claude Code를 처음 대화형으로 시작할 때 마켓플레이스를 자동으로 등록합니다.

1048 

1049자동 등록은 모든 머신을 포함하지 않습니다. 가장 일반적으로 누락되는 경우:

1050 

1051* 머신의 첫 번째 대화형 시작 전에 실행되는 비대화형 환경.

1052* 마켓플레이스를 차단한 정책(예: 빈 배열 잠금)에서 Claude Code가 이미 대화형으로 실행된 머신. Claude Code는 차단된 시도를 기록하고 정책이 변경된 후 다시 시도하지 않습니다.

1053 

1054이러한 머신에서 동일한 `managed-settings.json`의 [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces)에 마켓플레이스를 추가하여 Claude Code가 자동으로 등록하도록 하거나 `claude plugin marketplace add anthropics/claude-plugins-official`을 실행합니다.

1055 

1056특정 마켓플레이스만 허용:

1057 

1058```json theme={null}

1059{

1060 "strictKnownMarketplaces": [

1061 {

1062 "source": "github",

1063 "repo": "acme-corp/approved-plugins"

1064 },

1065 {

1066 "source": "github",

1067 "repo": "acme-corp/security-tools",

1068 "ref": "v2.0"

1069 },

1070 {

1071 "source": "url",

1072 "url": "https://plugins.example.com/marketplace.json"

1073 }

1074 ]

1075}

1076```

1077 

1078[owner-wildcard](/docs/ko/settings-reference#owner-wildcards) 항목을 사용하여 GitHub 조직 아래의 모든 마켓플레이스 저장소를 허용합니다. Owner 와일드카드는 Claude Code v2.1.223 이상이 필요합니다.

1079 

1080```json theme={null}

1081{

1082 "strictKnownMarketplaces": [

1083 {

1084 "source": "github",

1085 "repo": "acme-corp/*"

1086 }

1087 ]

1088}

1089```

1090 

1091호스트에 대한 정규식 패턴 일치를 사용하여 내부 git 서버의 모든 마켓플레이스 허용. 이는 [GitHub Enterprise Server](/docs/ko/github-enterprise-server#plugin-marketplaces-on-ghes) 또는 자체 호스팅 GitLab 인스턴스에 권장되는 방법입니다:

1092 

1093```json theme={null}

1094{

1095 "strictKnownMarketplaces": [

1096 {

1097 "source": "hostPattern",

1098 "hostPattern": "^github\\.example\\.com$"

1099 }

1100 ]

1101}

1102```

1103 

1104경로에 대한 정규식 패턴 일치를 사용하여 특정 디렉터리의 파일 시스템 기반 마켓플레이스 허용:

1105 

1106```json theme={null}

1107{

1108 "strictKnownMarketplaces": [

1109 {

1110 "source": "pathPattern",

1111 "pathPattern": "^/opt/approved/"

1112 }

1113 ]

1114}

1115```

1116 

1117`pathPattern`으로 모든 파일 시스템 경로를 허용하면서 `hostPattern`으로 네트워크 소스를 제어하려면 `".*"`를 `pathPattern`으로 사용합니다.

1118 

1119<Note>

1120 `strictKnownMarketplaces`는 사용자가 추가할 수 있는 것을 제한하지만 자체적으로 마켓플레이스를 등록하지는 않습니다. 허용된 마켓플레이스를 자동으로 등록하려면 동일한 `managed-settings.json`에서 [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces)에 추가합니다.

1121 

1122 공식 Anthropic 마켓플레이스는 Claude Code가 자체적으로 등록하는 유일한 마켓플레이스이며 허용 목록이 이를 허용할 때만 등록합니다. 자동 등록은 비대화형 환경 및 이전 정책이 이를 차단한 머신과 같은 일부 머신도 누락합니다. 이러한 머신을 포함하려면 공식 마켓플레이스를 `extraKnownMarketplaces`에도 추가합니다. 두 설정을 나란히 보려면 [`strictKnownMarketplaces` 참조](/docs/ko/settings-reference#strictknownmarketplaces)를 참조하세요.

1123</Note>

1124 

1125<h4 id="how-restrictions-work">

1126 제한 작동 방식

1127</h4>

1128 

1129제한은 네트워크 또는 파일 시스템 작업이 발생하기 전에 확인됩니다. 확인은 마켓플레이스 추가 및 플러그인 설치, 업데이트, 새로고침 및 자동 업데이트 시 실행됩니다. 마켓플레이스가 정책 구성 전에 추가되었고 해당 소스가 더 이상 허용 목록과 일치하지 않으면 Claude Code는 해당 마켓플레이스에서 플러그인을 설치하거나 업데이트하기를 거부합니다. 동일한 적용이 `blockedMarketplaces`에도 적용됩니다.

1130 

1131두 목록이 적용되는 위치는 설정 위치에 따라 다릅니다:

1132 

1133* **Claude.ai 관리 콘솔**: Claude Code는 [서버 관리 설정을 읽는](/docs/ko/managed-settings#where-and-when-a-policy-applies) 세션에서 두 목록을 모두 적용합니다. claude.ai는 또한 조직의 누군가가 claude.ai에서 git 저장소의 새 마켓플레이스를 추가하거나 Claude Desktop 앱의 Code 탭 외부에서 **사용자 정의**에서 추가할 때 이를 확인합니다. 이는 구성원이 자신의 계정을 위해 추가한 마켓플레이스와 [**조직 설정 > 플러그인**](https://claude.ai/admin-settings/plugins) 아래의 전체 조직을 위해 추가된 마켓플레이스를 포함합니다. claude.ai는 허용 목록이 허용하지 않거나 차단 목록이 명명하는 저장소를 거부합니다. 목록을 설정하기 전에 두 위치 중 하나에서 추가된 마켓플레이스를 다시 확인하지 않으며 업로드된 플러그인을 확인하지 않습니다.

1134* **관리 설정 파일, OS 수준 정책 또는 기타 관리 소스**: Claude Code는 해당 소스를 읽는 위치에서 두 목록을 모두 적용합니다. claude.ai는 이를 읽지 않습니다.

1135 

1136GitHub 소유자 아래의 모든 마켓플레이스 저장소를 차단하려면 `blockedMarketplaces` 항목에서 owner-wildcard 형식을 사용합니다: `{ "source": "github", "repo": "untrusted-org/*" }`. Claude Code v2.1.223 이상이 필요합니다. 일치 규칙(차단 목록과 허용 목록 간에 다름)은 [Owner 와일드카드](/docs/ko/settings-reference#owner-wildcards)를 참조하세요.

1137 

1138사용자가 Claude Code가 [복제하는 `https://` 저장소 URL](/docs/ko/discover-plugins#add-from-other-git-hosts)(예: 단순 `github.com` 또는 `gitlab.com` 저장소 URL)을 추가할 때 Claude Code는 `blockedMarketplaces`의 `url` 항목에 대해서도 확인합니다. Claude Code는 항목이 동일한 URL을 명명하면 추가를 차단합니다. 해당 비교에서 Claude Code는 `.git` 접미사 및 사용자가 `#` 뒤에 추가하는 모든 ref를 무시합니다. Claude Code v2.1.232 이상이 필요합니다. v2.1.232 이전에는 Claude Code가 호스팅된 `marketplace.json` 파일로 가져온 URL에 대해서만 `url` 항목과 일치했습니다.

1139 

1140허용 목록은 owner-wildcard `github` 항목을 제외하고 대부분의 소스 유형에 대해 정확한 일치를 사용합니다. 마켓플레이스가 허용되려면 지정된 모든 필드가 일치해야 합니다:

1141 

1142* GitHub 소스의 경우: `repo`는 필수이며 단일 저장소를 명명하거나 owner-wildcard 형식 `owner/*`를 사용하여 해당 소유자 아래의 모든 저장소를 포함합니다. 와일드카드 항목이 일치하는 방식(대소문자 규칙 포함)은 [Owner 와일드카드](/docs/ko/settings-reference#owner-wildcards)를 참조하세요. 단일 저장소 항목의 경우 `ref`는 정확히 일치하거나 마켓플레이스 소스 및 허용 목록 항목 모두에서 없어야 하며 동일한 규칙이 `path`에 적용됩니다

1143* URL 소스의 경우: 전체 URL이 정확히 일치해야 합니다

1144* `hostPattern` 소스의 경우: 마켓플레이스 호스트가 정규식 패턴과 일치합니다

1145* `pathPattern` 소스의 경우: 마켓플레이스의 파일 시스템 경로가 정규식 패턴과 일치합니다

1146 

1147허용 목록의 정확한 일치는 후행 슬래시, `.git` 접미사 또는 `ssh://` 및 `https://` 체계만 다른 URL을 다른 값으로 취급합니다. 조직의 마켓플레이스를 둘 이상의 URL 형식으로 복제할 수 있는 경우 `https://`, `ssh://` 및 `user@host:path` 형식이 모두 일치하도록 리터럴 URL보다 `hostPattern` 항목을 선호합니다.

1148 

1149[claude.ai에서 호스팅되는 마켓플레이스](/docs/ko/discover-plugins#add-from-claude-ai)는 호스트로 일치합니다: `claude.ai`와 일치하는 `hostPattern` 항목은 `strictKnownMarketplaces` 및 `blockedMarketplaces`에서 이를 관리합니다. 허용 목록에서 이러한 항목은 구성원의 개인 claude.ai 업로드를 허용하지 않습니다. Claude Code v2.1.273 이상이 필요합니다.

1150 

1151`strictKnownMarketplaces`는 [관리되는 설정](/docs/ko/managed-settings)에서 설정되므로 개별 사용자 및 프로젝트 구성은 이러한 제한을 재정의할 수 없습니다.

1152 

1153전체 구성 세부 정보(지원되는 모든 소스 유형 및 `extraKnownMarketplaces`와의 비교 포함)는 [strictKnownMarketplaces 참조](/docs/ko/settings-reference#strictknownmarketplaces)를 참조하세요.

1154 

1155<h3 id="version-resolution-and-release-channels">

1156 버전 해석 및 릴리스 채널

1157</h3>

1158 

1159플러그인 버전은 캐시 경로 및 업데이트 감지를 결정합니다. 해석된 버전이 사용자가 이미 가지고 있는 것과 일치하면 `/plugin update` 및 자동 업데이트는 플러그인을 건너뜁니다. git 기반 소스의 경우 `version`을 생략하면 Claude Code는 소스의 해석된 커밋 SHA를 사용하므로 사용자는 해당 커밋이 변경될 때마다 업데이트를 받습니다. 이는 내부 또는 활발하게 개발 중인 플러그인에 대한 가장 간단한 설정입니다. 전체 해석 순서(예: `archive` 소스 포함)는 [버전 관리](/docs/ko/plugins-reference#version-management)를 참조하세요.

1160 

1161<Warning>

1162 `version`을 설정하면 [`command`](#command-sources)를 제외한 모든 소스 유형에 대해 플러그인이 고정됩니다. 이 경우 버전은 항상 명령이 생성한 것의 해시를 포함합니다. 마켓플레이스에서 로드된 플러그인도 [제자리에서](/docs/ko/plugins-reference#plugin-caching-and-file-resolution) 로드되지 않습니다. `plugin.json`에서 `"version": "1.0.0"`을 선언하고 해당 문자열을 변경하지 않고 새 커밋을 푸시하면 기존 사용자는 캐시된 복사본을 유지합니다. Claude Code가 동일한 버전을 보고 캐시된 복사본을 유지하기 때문입니다. 모든 릴리스에서 필드를 범프하거나 해석된 버전으로 폴백하도록 생략합니다.

1163 

1164 `plugin.json` 및 마켓플레이스 항목 모두에서 `version`을 설정하지 마세요. `plugin.json` 값이 항상 자동으로 우선하므로 오래된 매니페스트 버전이 `marketplace.json`에서 설정한 버전을 숨길 수 있습니다.

1165</Warning>

1166 

1167<h4 id="set-up-release-channels">

1168 릴리스 채널 설정

1169</h4>

1170 

1171플러그인에 대한 "stable" 및 "latest" 릴리스 채널을 지원하려면 동일한 저장소의 다양한 refs 또는 SHA를 가리키는 두 개의 마켓플레이스를 설정할 수 있습니다. 그런 다음 관리되는 설정을 통해 각 사용자 그룹에 자신의 마켓플레이스를 제공할 수 있습니다:

1172 

1173* 각 그룹의 장치에 별도의 [엔드포인트 관리 설정](/docs/ko/managed-settings#delivery-mechanisms)(예: 관리 설정 파일 또는 MDM 프로필)을 배포합니다. [Claude Code가 관리되는 소스를 결합하는 방식](/docs/ko/managed-settings#precedence-within-the-managed-tier)은 그룹별 파일 또는 프로필이 마켓플레이스를 읽는 장치에도 적용되는지 여부를 나타냅니다.

1174* 그룹당 하나의 [Claude 앱 게이트웨이 정책](/docs/ko/claude-apps-gateway-config#managed)을 정의합니다. 게이트웨이는 일치 규칙이 사용자에게 맞는 첫 번째 정책을 적용하므로 각 사용자가 자신의 그룹 정책에 도달하도록 정책을 정렬합니다. 그룹 정책의 `extraKnownMarketplaces`는 catch-all 정책의 맵과 병합하지 않고 대체하므로 그룹이 필요한 모든 마켓플레이스를 그룹의 정책에 나열합니다.

1175 

1176관리 콘솔의 서버 관리 설정은 [조직의 모든 사용자에게 적용](/docs/ko/server-managed-settings#current-limitations)되므로 그룹별 할당을 수행할 수 없습니다.

1177 

1178<Warning>

1179 각 채널은 다른 버전으로 해석되어야 합니다. 명시적 버전을 사용하는 경우 `plugin.json`은 각 고정된 ref에서 다른 `version`을 선언해야 합니다. `version`을 생략하면 서로 다른 커밋 SHA가 이미 채널을 구분합니다. 두 refs가 동일한 버전 문자열로 해석되면 Claude Code는 이들을 동일한 것으로 취급하고 업데이트를 건너뜁니다.

1180</Warning>

1181 

1182<h5 id="example">

1183 예제

1184</h5>

1185 

1186```json theme={null}

1187{

1188 "name": "stable-tools",

1189 "plugins": [

1190 {

1191 "name": "code-formatter",

1192 "source": {

1193 "source": "github",

1194 "repo": "acme-corp/code-formatter",

1195 "ref": "stable"

1196 }

1197 }

1198 ]

1199}

1200```

1201 

1202```json theme={null}

1203{

1204 "name": "latest-tools",

1205 "plugins": [

1206 {

1207 "name": "code-formatter",

1208 "source": {

1209 "source": "github",

1210 "repo": "acme-corp/code-formatter",

1211 "ref": "latest"

1212 }

1213 }

1214 ]

1215}

1216```

1217 

1218<h5 id="assign-channels-to-user-groups">

1219 사용자 그룹에 채널 할당

1220</h5>

1221 

1222[릴리스 채널 설정](#set-up-release-channels) 아래에 설명된 그룹별 엔드포인트 관리 설정 또는 게이트웨이 정책을 통해 각 마켓플레이스를 적절한 사용자 그룹에 할당합니다. 예를 들어 stable 그룹은 다음을 받습니다:

1223 

1224```json theme={null}

1225{

1226 "extraKnownMarketplaces": {

1227 "stable-tools": {

1228 "source": {

1229 "source": "github",

1230 "repo": "acme-corp/stable-tools"

1231 }

1232 }

1233 }

1234}

1235```

1236 

1237early-access 그룹은 대신 `latest-tools`를 받습니다:

1238 

1239```json theme={null}

1240{

1241 "extraKnownMarketplaces": {

1242 "latest-tools": {

1243 "source": {

1244 "source": "github",

1245 "repo": "acme-corp/latest-tools"

1246 }

1247 }

1248 }

1249}

1250```

1251 

1252<h4 id="pin-dependency-versions">

1253 의존성 버전 고정

1254</h4>

1255 

1256플러그인은 의존성에 대한 semver 범위를 제한하여 의존성 업데이트가 종속 플러그인을 손상시키지 않도록 할 수 있습니다. `{plugin-name}--v{version}` git 태그 규칙, 범위 구문 및 동일한 의존성에 대한 여러 제약 조건이 어떻게 결합되는지에 대해서는 [플러그인 의존성 버전 제한](/docs/ko/plugin-dependencies)을 참조하세요.

1257 

1258<h3 id="rename-or-remove-a-plugin">

1259 플러그인 이름 바꾸기 또는 제거

1260</h3>

1261 

1262플러그인의 `name`은 안정적인 식별자입니다. 사용자는 `enabledPlugins`, `pluginConfigs` 및 `/plugin install` 명령에서 이를 참조하므로 변경하면 모든 기존 설치가 손상됩니다. UI에 표시되는 레이블을 설치를 손상시키지 않고 변경하려면 [`displayName`](#optional-plugin-fields)을 설정하고 `name`을 변경하지 않은 상태로 유지합니다.

1263 

1264플러그인의 `name`을 변경하거나 `plugins` 배열에서 플러그인을 제거해야 하는 경우 최상위 `renames` 항목을 추가하여 기존 사용자가 `plugin-not-found` 오류를 보는 대신 마이그레이션하도록 합니다. 자동 마이그레이션에는 Claude Code v2.1.193 이상이 필요합니다. 각 이전 이름을 현재 이름으로 매핑하거나 플러그인이 더 이상 존재하지 않으면 `null`로 매핑합니다. 다음 예제는 `formatter`를 `code-formatter`로 이름을 바꾸고 `legacy-linter`가 제거되었음을 기록합니다:

1265 

1266```json theme={null}

1267{

1268 "name": "acme-tools",

1269 "owner": { "name": "Acme" },

1270 "plugins": [

1271 { "name": "code-formatter", "source": "./plugins/code-formatter" }

1272 ],

1273 "renames": {

1274 "formatter": "code-formatter",

1275 "legacy-linter": null

1276 }

1277}

1278```

1279 

1280사용자가 설정에 여전히 이전 이름이 있는 상태로 Claude Code를 시작하면 Claude Code는 `renames` 맵을 따릅니다:

1281 

1282* 항목이 새 이름을 가리키면 Claude Code는 플러그인을 새 이름으로 로드하고 `"acme-tools" 마켓플레이스에서 "code-formatter"로 이름이 바뀌었습니다`와 같은 한 줄 알림을 표시합니다. 그런 다음 `enabledPlugins` 및 `pluginConfigs` 모두에 대해 사용자, 프로젝트 및 로컬 설정 범위에서 이전 키를 새 키로 다시 작성하므로 알림이 한 번 나타납니다.

1283* `null` 항목의 경우 Claude Code는 이전 키를 삭제하고 알림은 플러그인이 마켓플레이스에서 제거되었음을 보고합니다.

1284* 이름이 바뀐 플러그인이 `github` 또는 `npm`과 같은 원격 소스를 사용하면 Claude Code는 이름 바꾸기 후 `plugin-cache-miss`를 보고하고 사용자는 새 이름으로 가져오기 위해 한 번 `/plugin install`을 실행해야 합니다.

1285 

1286`renames`를 추가 전용 기록으로 취급합니다. 모든 사용자가 마이그레이션했을 것으로 예상한 후에도 이전 항목을 제자리에 유지합니다. Claude Code는 체인을 따르므로 나중에 `code-formatter`를 `formatter-pro`로 이름을 바꾸면 첫 번째 항목을 편집하는 대신 두 번째 항목을 추가합니다. 여전히 원본 `formatter`가 활성화된 사용자는 두 항목을 모두 통해 `formatter-pro`로 해석됩니다.

1287 

1288맵을 편집한 후 `claude plugin validate .`를 실행합니다. 체인이 사이클을 형성하거나 `null` 또는 `plugins`에 나열된 이름으로 종료되지 않는 항목을 거부합니다.

1289 

1290<Note>

1291 관리되는 설정 및 정책 설정은 Claude Code에 대해 읽기 전용이므로 거기에서 활성화된 플러그인은 자동으로 다시 작성될 수 없습니다. 이름이 바뀐 플러그인은 여전히 각 세션에서 로드되지만 관리자가 관리되는 설정 파일의 `enabledPlugins`을 새 이름으로 업데이트할 때까지 이름 바꾸기 알림이 반복됩니다. 동일한 사항이 `--add-dir`과 같은 다른 읽기 전용 소스를 통해 활성화된 플러그인에도 적용됩니다.

1292</Note>

1293 

1294이전 버전의 Claude Code는 `renames` 필드를 무시하고 이전 이름에 대해 `plugin-not-found`를 보고합니다.

1295 

1296<h2 id="validation-and-testing">

1297 검증 및 테스트

1298</h2>

1299 

1300마켓플레이스를 공유하기 전에 테스트합니다. 검증은 파일 구조를 확인합니다. 플러그인이 현실적인 프롬프트에서 Claude의 동작을 변경하는지 테스트하려면 새 버전을 게시하기 전에 [`claude plugin eval`](/docs/ko/plugin-evals)을 사용하여 평가 스위트를 실행합니다.

1301 

1302마켓플레이스 디렉토리에서 JSON 구문을 검증합니다:

1303 

1304```bash theme={null}

1305claude plugin validate .

1306```

1307 

1308또는 Claude Code 내에서:

1309 

1310```shell theme={null}

1311/plugin validate .

1312```

1313 

1314테스트를 위해 마켓플레이스를 추가합니다:

1315 

1316```shell theme={null}

1317/plugin marketplace add ./path/to/marketplace

1318```

1319 

1320모든 것이 작동하는지 확인하기 위해 테스트 플러그인을 설치합니다:

1321 

1322```shell theme={null}

1323/plugin install test-plugin@marketplace-name

1324```

1325 

1326전체 플러그인 테스트 워크플로우는 [플러그인을 로컬에서 테스트](/docs/ko/plugins#test-your-plugins-locally)를 참조하세요. 기술적 문제 해결은 [플러그인 참조](/docs/ko/plugins-reference)를 참조하세요.

1327 

1328<h2 id="manage-marketplaces-from-the-cli">

1329 CLI에서 마켓플레이스 관리

1330</h2>

1331 

1332Claude Code는 스크립팅 및 자동화를 위한 비대화형 `claude plugin marketplace` 하위 명령어를 제공합니다. 이는 대화형 세션 내에서 사용 가능한 `/plugin marketplace` 명령어와 동일합니다.

1333 

1334<h3 id="plugin-marketplace-add">

1335 플러그인 마켓플레이스 추가

1336</h3>

1337 

1338GitHub 저장소, git URL, 원격 URL 또는 로컬 경로에서 마켓플레이스를 추가합니다.

1339 

1340```bash theme={null}

1341claude plugin marketplace add <source> [options]

1342```

1343 

1344**인수:**

1345 

1346* `<source>`: GitHub `owner/repo` 단축형, git URL, `marketplace.json` 파일에 대한 원격 URL 또는 로컬 디렉터리 경로. 분기 또는 태그에 고정하려면 GitHub 단축형에 `@ref`를 추가하거나 git URL에 `#ref`를 추가합니다

1347 

1348URL은 스킴을 포함해야 합니다. Claude Code v2.1.196부터 `gitlab.example.com/team/plugins`와 같이 스킴 없이 입력된 호스트는 잘못된 `owner/repo` 단축형으로 거부되며, 오류 메시지에서 `https://`를 추가하거나 로컬 경로의 경우 `./`를 사용하도록 지시합니다. 이전 버전에서는 이를 GitHub 저장소 경로로 잘못 읽고 GitHub 찾을 수 없음 오류로 클론 시간에 실패합니다.

1349 

1350**옵션:**

1351 

1352| 옵션 | 설명 | 기본값 |

1353| :-------------------- | :------------------------------------------------------------------------------------------------------------------- | :----- |

1354| `--scope <scope>` | 마켓플레이스를 선언할 위치: `user`, `project` 또는 `local`. [플러그인 설치 범위](/docs/ko/plugins-reference#plugin-installation-scopes) 참조 | `user` |

1355| `--sparse <paths...>` | git sparse-checkout을 통해 특정 디렉터리로 체크아웃 제한. 모노레포에 유용 | |

1356| `--claudeai` | 인수를 소스 대신 [claude.ai에서 호스팅되는 마켓플레이스](/docs/ko/discover-plugins#add-from-claude-ai)의 이름으로 읽습니다. Claude Code v2.1.273 이상 필요 | |

1357 

1358GitHub에서 `owner/repo` 단축형을 사용하여 마켓플레이스 추가:

1359 

1360```bash theme={null}

1361claude plugin marketplace add acme-corp/claude-plugins

1362```

1363 

1364`@ref`를 사용하여 특정 분기 또는 태그에 고정:

1365 

1366```bash theme={null}

1367claude plugin marketplace add acme-corp/claude-plugins@v2.0

1368```

1369 

1370비 GitHub 호스트의 git URL에서 추가:

1371 

1372```bash theme={null}

1373claude plugin marketplace add https://gitlab.example.com/team/plugins.git

1374```

1375 

1376`marketplace.json` 파일을 직접 제공하는 원격 URL에서 추가:

1377 

1378```bash theme={null}

1379claude plugin marketplace add https://example.com/marketplace.json

1380```

1381 

1382테스트를 위해 로컬 디렉터리에서 추가:

1383 

1384```bash theme={null}

1385claude plugin marketplace add ./my-marketplace

1386```

1387 

1388마켓플레이스를 프로젝트 범위에서 선언하여 `.claude/settings.json`을 통해 팀과 공유:

1389 

1390```bash theme={null}

1391claude plugin marketplace add acme-corp/claude-plugins --scope project

1392```

1393 

1394모노레포의 경우 플러그인 콘텐츠를 포함하는 디렉터리로 체크아웃 제한:

1395 

1396```bash theme={null}

1397claude plugin marketplace add acme-corp/monorepo --sparse .claude-plugin plugins

1398```

1399 

1400`claude plugin marketplace list`의 `From claude.ai:` 섹션에 인쇄된 이름으로 [claude.ai에서 호스팅되는 마켓플레이스](/docs/ko/discover-plugins#add-from-claude-ai) 추가:

1401 

1402```bash theme={null}

1403claude plugin marketplace add --claudeai claudeai-organization-library

1404```

1405 

1406`--claudeai`를 사용하면 명령어는 `--scope`와 `--sparse`를 거부합니다. 마켓플레이스는 계정에 대해 호스팅되며 설정 파일에 선언되지 않으므로 프로젝트의 `.claude/settings.json`을 통해 공유할 수 없습니다.

1407 

1408<h3 id="plugin-marketplace-list">

1409 플러그인 마켓플레이스 목록

1410</h3>

1411 

1412구성된 모든 마켓플레이스를 나열합니다.

1413 

1414```bash theme={null}

1415claude plugin marketplace list [options]

1416```

1417 

1418**옵션:**

1419 

1420| 옵션 | 설명 |

1421| :------- | :-------- |

1422| `--json` | JSON으로 출력 |

1423 

1424`--json`을 사용하면 각 항목에는 `name`, `source`, 마켓플레이스가 저장된 로컬 캐시 경로가 있는 `installLocation` 필드 및 소스별 필드가 포함됩니다: GitHub 소스의 경우 `repo`, git 및 URL 소스의 경우 `url`, 로컬 소스의 경우 `path`. GitHub 및 git 소스는 마켓플레이스가 고정된 분기 또는 태그로 추가된 경우 `ref` 필드도 포함합니다.

1425 

1426추가된 [claude.ai 마켓플레이스](/docs/ko/discover-plugins#add-from-claude-ai)는 로컬 클론이 없으므로 해당 항목은 `installLocation` 대신 claude.ai 식별자인 `marketplaceId`와 `organizationUuid`를 포함합니다.

1427 

1428[플러그인이 claude.ai 계정에서 동기화되는](/docs/ko/plugins-reference#synced-plugins) 터미널 세션에서 텍스트 목록은 추가한 마켓플레이스 이상으로 계정에 대해 claude.ai가 나열하는 항목의 이름을 지정하는 `From claude.ai:` 섹션으로 끝납니다. 그 중 하나를 추가하려면 [claude.ai에서 추가](/docs/ko/discover-plugins#add-from-claude-ai)를 참조하세요. `--json` 출력은 구성된 마켓플레이스만 포함하고 해당 섹션을 제외합니다. Claude Code v2.1.273 이상 필요합니다.

1429 

1430<h3 id="plugin-marketplace-remove">

1431 플러그인 마켓플레이스 제거

1432</h3>

1433 

1434구성된 마켓플레이스를 제거합니다. 별칭 `rm`도 허용됩니다.

1435 

1436```bash theme={null}

1437claude plugin marketplace remove <name> [options]

1438```

1439 

1440**인수:**

1441 

1442* `<name>`: `claude plugin marketplace list`에 표시된 마켓플레이스 이름을 제거합니다. 이는 `add`에 전달한 소스가 아니라 `marketplace.json`의 `name`입니다

1443 

1444**옵션:**

1445 

1446| 옵션 | 설명 | 기본값 |

1447| :---------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |

1448| `--scope <scope>` | 제거를 단일 설정 범위로 제한: `user`, `project` 또는 `local`. [플러그인 설치 범위](/docs/ko/plugins-reference#plugin-installation-scopes) 참조. 생략하면 모든 편집 가능한 범위에서 선언이 제거됩니다. 지정하면 해당 범위의 선언만 제거되고, 마켓플레이스가 다른 범위에서 여전히 선언된 경우 공유 상태, 캐시 및 설치된 플러그인 데이터는 유지됩니다 | (모든 범위) |

1449 

1450<Warning>

1451 마켓플레이스를 마지막 남은 범위에서 제거하면 해당 마켓플레이스에서 설치한 모든 플러그인도 제거됩니다. 설치된 플러그인을 잃지 않고 마켓플레이스를 새로 고치려면 `claude plugin marketplace update`를 대신 사용합니다.

1452</Warning>

1453 

1454<h3 id="plugin-marketplace-update">

1455 플러그인 마켓플레이스 업데이트

1456</h3>

1457 

1458소스에서 마켓플레이스를 새로 고쳐 새 플러그인 및 버전 변경을 검색합니다. 분기 또는 태그 `ref`로 추가된 마켓플레이스는 저장소의 기본 분기가 아니라 해당 ref의 최신 커밋으로 업데이트됩니다.

1459 

1460```bash theme={null}

1461claude plugin marketplace update [name]

1462```

1463 

1464**인수:**

1465 

1466* `[name]`: `claude plugin marketplace list`에 표시된 마켓플레이스 이름을 업데이트합니다. 생략하면 모든 마켓플레이스를 업데이트합니다

1467 

1468`remove`와 `update` 모두 시드 관리 마켓플레이스에 대해 실행할 때 실패합니다. 이는 읽기 전용입니다. 모든 마켓플레이스를 업데이트할 때 시드 관리 항목은 건너뛰고 다른 마켓플레이스는 여전히 업데이트됩니다. 시드 제공 플러그인을 변경하려면 관리자에게 시드 이미지를 업데이트하도록 요청합니다. [컨테이너에 대한 플러그인 사전 채우기](#pre-populate-plugins-for-containers)를 참조하세요.

1469 

1470<h2 id="troubleshooting">

1471 문제 해결

1472</h2>

1473 

1474<h3 id="marketplace-not-loading">

1475 마켓플레이스가 로드되지 않음

1476</h3>

1477 

1478**증상**: 마켓플레이스를 추가할 수 없거나 플러그인을 볼 수 없습니다

1479 

1480**해결책**:

1481 

1482* 마켓플레이스 URL이 액세스 가능한지 확인합니다

1483* `.claude-plugin/marketplace.json`이 지정된 경로에 있는지 확인합니다

1484* `claude plugin validate .` 또는 `/plugin validate .`를 사용하여 JSON 구문이 유효한지 확인합니다. skill, agent 및 command frontmatter를 확인하려면 [매니페스트 없이 플러그인 또는 디렉터리 검증](#validate-a-plugin-or-a-directory-without-a-manifest)을 참조하세요

1485* 개인 저장소의 경우 액세스 권한이 있는지 확인합니다

1486 

1487<h3 id="marketplace-validation-errors">

1488 마켓플레이스 검증 오류

1489</h3>

1490 

1491마켓플레이스 디렉터리에서 `claude plugin validate .` 또는 `/plugin validate .`를 실행하여 문제를 확인합니다. 마켓플레이스 디렉터리를 가리킬 때 검증자는 `marketplace.json`에서 스키마 오류, 중복 플러그인 이름 및 소스 경로 순회를 확인합니다. `source`가 로컬 경로인 각 항목에 대해 해당 플러그인의 `plugin.json`도 검증하고 항목의 `version`이 `plugin.json`의 버전과 일치하지 않을 때 경고합니다. 플러그인의 `plugin.json`에서 발견된 문제는 항목 인덱스 형식인 `plugins[2] plugin.json →`으로 접두사가 붙습니다.

1492 

1493Claude Code v2.1.196부터 항목별 통과는 다음을 포함합니다:

1494 

1495* `source`가 `.`인 플러그인 포함

1496* `marketplace.json`이 `.claude-plugin` 디렉터리 외부에 있을 때 실행되며, 파일 자체의 디렉터리에 대해 소스를 해석합니다

1497* 파일의 다른 부분에 스키마 오류가 있을 때도 각 항목의 문제를 보고합니다

1498 

1499이전 버전은 마켓플레이스 루트의 플러그인을 건너뛰고 `.claude-plugin/marketplace.json`에서만 내려갑니다.

1500 

1501마켓플레이스 디렉터리에서 Claude Code는 플러그인의 skill, agent, command 또는 hook 파일을 열지 않습니다. 이러한 파일의 오류를 찾으려면 [매니페스트 없이 플러그인 또는 디렉터리 검증](#validate-a-plugin-or-a-directory-without-a-manifest)을 참조하세요. 아래 표는 마켓플레이스 디렉터리에서 가장 일반적인 오류와 각각의 원인 및 해결책을 나열합니다:

1502 

1503| 오류 | 원인 | 해결책 |

1504| :------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------ |

1505| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | 이름을 지정한 디렉터리에 `.claude-plugin/marketplace.json` 또는 `plugin.json`이 없고, 확인할 skill, agent 또는 command 파일이 없습니다 | 마켓플레이스 루트에서 실행하거나 필수 필드를 사용하여 `.claude-plugin/marketplace.json`을 생성합니다 |

1506| `Invalid JSON syntax: Unexpected token...` | marketplace.json의 JSON 구문 오류 | 누락된 쉼표, 추가 쉼표 또는 인용되지 않은 문자열 확인 |

1507| `Duplicate plugin name "x" found in marketplace` | 두 플러그인이 동일한 이름을 공유합니다 | 각 플러그인에 고유한 `name` 값 지정 |

1508| `plugins[0].source: Path contains ".."` | 소스 경로에 `..` 포함 | 마켓플레이스 루트에 상대적인 경로를 `..` 없이 사용합니다. [상대 경로](#relative-paths) 참조 |

1509| `Marketplace name cannot contain control or bidirectional-formatting characters` | 마켓플레이스 `name`에 이스케이프 또는 줄 바꿈과 같은 유니코드 양방향 형식 문자 또는 제어 문자가 포함되어 있습니다 | 이름에서 문자를 제거합니다. v2.1.247 이전에는 이러한 문자가 `Marketplace name impersonates an official Anthropic/Claude marketplace` 오류를 생성했습니다 |

1510| `Plugin name cannot contain control or bidirectional-formatting characters` | 플러그인 `name`에 유니코드 양방향 형식 문자 또는 이스케이프 또는 줄 바꿈과 같은 제어 문자가 포함되어 있습니다 | 이름에서 문자를 제거합니다. v2.1.247 이전에는 Claude Code가 이 검사를 실행하지 않았습니다 |

1511 

1512**경고**(차단하지 않음):

1513 

1514* `Marketplace has no plugins defined`: `plugins` 배열에 최소한 하나의 플러그인 추가

1515* `No marketplace description provided`: 사용자가 마켓플레이스를 이해하도록 돕기 위해 최상위 `description` 추가

1516* `Plugin name "x" is not kebab-case`: 소문자, 숫자 및 하이픈만 사용하도록 이름을 바꿉니다(예: `my-plugin`). Claude Code는 다른 형식을 허용하지만 claude.ai 마켓플레이스 동기화는 이를 거부합니다.

1517* `Marketplace name "x" is reserved in Claude Desktop`: 마켓플레이스의 이름이 `org`, `org-provisioned` 또는 `unknown`입니다(모든 대소문자). Claude Code는 이러한 이름을 허용하지만 Claude Desktop의 관리형 마켓플레이스 동기화는 전체 마켓플레이스를 거부합니다. 마켓플레이스의 이름을 바꿉니다. v2.1.221 이전에는 `claude plugin validate`가 이 검사를 실행하지 않았습니다.

1518* `Marketplace name "x" is not accepted by Claude Desktop` 또는 `Plugin name "x" is not accepted by Claude Desktop`: Claude Desktop은 문자 또는 숫자로 시작하는 최대 128자의 이름을 허용하며 문자, 숫자, `.`, `_` 및 `-`로 구성됩니다. Claude Code는 다른 형식을 허용하지만 Claude Desktop의 관리형 마켓플레이스 동기화는 이름 검사에 실패한 마켓플레이스를 거부하고 이름이 실패한 플러그인 항목을 자동으로 삭제합니다. 마켓플레이스 또는 플러그인의 이름을 바꿉니다. v2.1.221 이전에는 `claude plugin validate`가 이러한 검사를 실행하지 않았습니다.

1519 

1520<h4 id="validate-a-plugin-or-a-directory-without-a-manifest">

1521 매니페스트 없이 플러그인 또는 디렉터리 검증

1522</h4>

1523 

1524frontmatter가 구문 분석되지 않는 skill, agent 및 command 파일을 찾으려면 `claude plugin validate`를 실행하고 이들을 보유한 디렉터리의 이름을 지정합니다. Claude Code는 이름을 지정한 디렉터리 외부를 보지 않습니다. `plugin.json`이 있는 플러그인에 대한 한 번의 실행을 제외한 모든 실행에는 Claude Code v2.1.233 이상이 필요합니다.

1525 

1526<h5 id="pick-the-directory-to-name">

1527 이름을 지정할 디렉터리 선택

1528</h5>

1529 

1530Claude Code는 이름을 지정한 디렉터리에 따라 다른 파일을 확인합니다. 첫 번째 열에서 확인하려는 항목을 찾고 해당 행의 명령을 실행합니다:

1531 

1532| 확인 대상 | 실행 | Claude Code가 확인하는 항목 |

1533| :------------------------------------------------------------ | :---------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------- |

1534| `plugin.json`이 있는 플러그인 | `claude plugin validate ./plugins/my-plugin` | `plugin.json`, `hooks/hooks.json` 및 플러그인 루트의 `skills`, `agents` 및 `commands` 디렉터리 |

1535| 아직 `plugin.json`이 없는 플러그인과 같은 skill, agent 또는 command의 한 디렉터리 | `claude plugin validate .claude/skills`, `~/.claude/agents` 또는 `./my-plugin/agents` | 해당 디렉터리의 모든 skill, agent 또는 command 파일 |

1536| skill이 루트 `SKILL.md`인 폴더 | `claude plugin validate ./skills`를 실행하고 폴더를 보유한 `skills` 디렉터리의 이름을 지정합니다 | 각 폴더의 루트 `SKILL.md`. 보유 디렉터리의 이름은 `skills`여야 합니다. `plugins/`와 같은 다른 이름의 폴더는 루트 `SKILL.md`를 확인하는 실행이 없습니다 |

1537| 프로젝트의 세 디렉터리 한 번에 | `claude plugin validate .claude` 또는 `.claude-plugin/` 매니페스트가 없을 때 프로젝트 루트 | `.claude/skills`, `.claude/agents` 및 `.claude/commands` |

1538| 사용자 수준 디렉터리 | `claude plugin validate ~/.claude` | `~/.claude/skills`, `~/.claude/agents` 및 `~/.claude/commands` |

1539 

1540<h5 id="check-a-plugin-whose-skill-is-its-root-skill-md">

1541 skill이 루트 `SKILL.md`인 플러그인 확인

1542</h5>

1543 

1544플러그인 디렉터리에 대해 `claude plugin validate`를 실행하면 Claude Code는 플러그인 루트의 `SKILL.md`를 확인하지 않습니다. 플러그인이 `skills`라는 이름의 디렉터리에 있을 때 명령을 두 번 실행합니다:

1545 

1546* 플러그인의 루트 `SKILL.md`를 확인하려면 해당 `skills` 디렉터리의 이름을 지정합니다.

1547* 나머지를 확인하려면 플러그인 디렉터리의 이름을 지정합니다.

1548 

1549플러그인이 `plugins/`와 같은 다른 이름 아래에 있을 때 `skills` 디렉터리 실행을 사용할 수 없으며 루트 `SKILL.md`를 확인하는 실행이 없습니다.

1550 

1551<h5 id="check-files-behind-symlinks">

1552 symlink 뒤의 파일 확인

1553</h5>

1554 

1555`claude plugin validate`를 실행하면 Claude Code는 이름을 지정한 디렉터리 내의 symlink를 따르지 않습니다. 링크가 있는 위치에 따라 수행하는 작업이 달라집니다:

1556 

1557* **플러그인 또는 `.claude` 루트 아래의 연결된 `skills`, `agents` 또는 `commands` 디렉터리**: Claude Code는 그 안의 아무것도 읽지 않았다고 경고합니다.

1558* **`skills`, `agents` 또는 `commands` 디렉터리 내의 연결된 항목**: Claude Code는 이를 건너뛰고 디렉터리별로 건너뛴 항목 수를 경고합니다.

1559* **이름을 지정한 `skills`, `agents` 또는 `commands` 디렉터리 자체가 symlink이거나 그 부모 `.claude` 디렉터리가 symlink인 경우**: Claude Code는 오류를 보고하고 그 안의 아무것도 확인하지 않습니다. 대신 실제 디렉터리의 이름을 지정합니다.

1560 

1561두 가지 skill 경우에 실행은 경고와 함께 통과합니다. 연결된 파일을 확인하려면 다시 실행하고 이들을 직접 보유한 디렉터리의 이름을 지정합니다:

1562 

1563* **`skills` 디렉터리가 [형제 플러그인의 skill에 연결된](/docs/ko/plugins-reference#share-files-within-a-marketplace-with-symlinks) 플러그인**: 형제 플러그인의 디렉터리의 이름을 지정합니다.

1564* **`~/.claude/skills` 또는 `.claude/skills`의 [symlinked skill 항목](/docs/ko/skills#where-skills-live)**: Claude Code는 세션에서 항목을 따릅니다. 이를 확인하려면 실제 폴더를 보유한 `skills`라는 디렉터리의 이름을 지정합니다.

1565 

1566<h5 id="read-the-validation-results">

1567 검증 결과 읽기

1568</h5>

1569 

1570깨끗한 실행은 `Validation passed`로 끝납니다.

1571 

1572`No manifest found in directory`는 Claude Code가 거기에서 `plugin.json` 또는 `marketplace.json`을 찾지 못했고 그 아래에서 조사하는 디렉터리에 skill, agent 또는 command 파일이 없음을 의미합니다. 대신 파일을 보유한 `skills`, `agents` 또는 `commands` 디렉터리의 이름을 지정합니다.

1573 

1574Claude Code가 이러한 실행에서 보고하는 두 가지 오류와 각각의 해결책:

1575 

1576* `YAML frontmatter failed to parse: ...`: skill, agent 또는 command 파일의 frontmatter 블록에서 YAML을 수정합니다. 이를 수행할 때까지 세션은 파일에서 frontmatter 필드를 읽지 않습니다

1577* `Invalid JSON syntax: ...` on `hooks/hooks.json`: JSON 구문을 수정합니다. 이를 수행할 때까지 세션은 해당 파일의 hook 없이 플러그인을 로드합니다. Claude Code는 플러그인 실행에서만 이 오류를 보고합니다

1578 

1579플러그인 실행에서 Claude Code는 플러그인 루트의 `CLAUDE.md`에 대해서도 경고합니다. `plugin.json`의 [component path fields](/docs/ko/plugins-reference#component-path-fields)를 통해 설정한 경로의 경우 Claude Code는 각 경로가 존재하는지 확인하지만 거기의 파일을 읽지 않습니다.

1580 

1581<h3 id="plugin-installation-failures">

1582 플러그인 설치 실패

1583</h3>

1584 

1585**증상**: 마켓플레이스가 나타나지만 플러그인 설치가 실패합니다

1586 

1587**해결책**:

1588 

1589* 플러그인 소스 URL이 액세스 가능한지 확인합니다

1590* 플러그인 디렉터리에 필수 파일이 포함되어 있는지 확인합니다

1591* GitHub 소스의 경우 저장소가 공개이거나 액세스 권한이 있는지 확인합니다

1592* 플러그인 소스를 수동으로 복제/다운로드하여 테스트합니다

1593* 소스가 `ref`와 `sha`를 모두 고정하는 경우 삭제된 업스트림 분기 또는 태그는 대부분의 git 호스트(GitHub, GitLab 및 Bitbucket 포함)에서 설치를 차단하지 않습니다. AWS CodeCommit과 같이 SHA로 커밋을 가져오기를 지원하지 않는 서버에서는 `ref`가 여전히 존재해야 하고 고정된 커밋이 이로부터 도달 가능해야 합니다. 설치가 계속 실패하면 고정된 커밋이 저장소에 여전히 존재하는지 확인합니다

1594 

1595<h3 id="private-repository-authentication-fails">

1596 개인 저장소 인증 실패

1597</h3>

1598 

1599**증상**: 개인 저장소에서 플러그인을 설치할 때 인증 오류

1600 

1601**해결책**:

1602 

1603수동 설치 및 업데이트의 경우:

1604 

1605* git 공급자로 인증되었는지 확인합니다(예: GitHub의 경우 `gh auth status` 실행).

1606* 자격 증명 도우미가 구성되었는지 확인합니다: `git config --global credential.helper`

1607* `git ls-remote <marketplace-url>`을 실행하여 git이 자체적으로 인증할 수 있는지 테스트합니다. git이 사용자 이름 또는 암호를 요청하면 먼저 자격 증명을 저장합니다: GitHub over HTTPS의 경우 `gh auth setup-git`을 실행하고, SSH 원격의 경우 `ssh-agent`에 키를 로드합니다

1608 

1609백그라운드 자동 업데이트의 경우:

1610 

1611* 백그라운드 새로 고침은 구성된 git 자격 증명 도우미를 사용하지만 절대 프롬프트하지 않으므로 도우미는 저장된 자격 증명으로 응답할 수 있어야 합니다. `ssh-agent`에 로드된 키가 있는 SSH 원격도 인증합니다

1612* 도우미가 프롬프트해야 하면 백그라운드 업데이트가 조용히 실패하고 기존 체크아웃이 제자리에 유지됩니다. 먼저 도우미에 로그인하여 호스트에 대한 자격 증명을 보유하도록 합니다. GitHub의 경우 `gh auth login`을 실행한 다음 `gh auth setup-git`을 실행합니다

1613* 확인이 새 커밋을 찾거나 원격에 도달하거나 인증할 수 없으면 Claude Code는 동일한 자격 증명으로 마켓플레이스를 다시 복제합니다. 다시 복제는 대규모 저장소에서 시간 초과될 수 있습니다

1614* `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1`을 설정하여 백그라운드 확인이 원격에 도달하거나 인증할 수 없을 때 기존 체크아웃을 유지합니다

1615* 대규모 저장소에서 다시 복제 시간이 초과되면 [`CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`](#git-operations-time-out)를 사용하여 제한을 늘립니다

1616* 또는 자격 증명을 사용하는 `/plugin marketplace update <name>`으로 개인 마켓플레이스를 수동으로 업데이트합니다

1617 

1618v2.1.280 이전에는 백그라운드 확인이 자격 증명 도우미 없이 실행되었고 HTTPS를 통해 개인 저장소에 인증할 수 없었습니다.

1619 

1620<h3 id="marketplace-updates-fail-in-offline-environments">

1621 마켓플레이스 업데이트가 오프라인 환경에서 실패합니다

1622</h3>

1623 

1624**증상**: 오프라인 또는 에어갭 환경에서 백그라운드 마켓플레이스 새로 고침이 원격에 도달할 수 없고 Claude Code가 성공할 수 없는 다시 복제를 반복적으로 시도합니다.

1625 

1626**원인**: 백그라운드 새로 고침은 마켓플레이스의 원격에서 새 커밋을 확인하고, 확인이 원격에 도달할 수 없으면 Claude Code는 마켓플레이스를 다시 복제하려고 시도합니다. 오프라인에서 복제는 동일한 방식으로 실패하고 기존 체크아웃은 제자리에 유지됩니다. v2.1.274 이전에는 새로 고침이 기존 체크아웃에서 `git pull`을 실행했고, pull이 실패하면 체크아웃을 옆으로 이동하여 다시 복제했으며, 그 후 최선의 노력으로 복원했습니다.

1627 

1628새로 고침은 시작 후 백그라운드에서 실행되므로 시작을 지연시키지 않습니다. 각 세션은 여전히 실패한 시도를 반복하고, 각 git 작업은 [120초 시간 초과](#git-operations-time-out)를 기다릴 수 있습니다.

1629 

1630**해결책**: `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1`을 설정하여 확인이 원격에 도달할 수 없을 때 다시 복제 시도를 건너뛰고 기존 체크아웃을 계속 사용합니다:

1631 

1632```bash theme={null}

1633export CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1

1634```

1635 

1636완전히 오프라인 배포의 경우 저장소에 절대 도달할 수 없으므로 대신 [`CLAUDE_CODE_PLUGIN_SEED_DIR`](#pre-populate-plugins-for-containers)을 사용하여 빌드 시간에 플러그인 디렉터리를 사전 채웁니다.

1637 

1638<h3 id="git-operations-time-out">

1639 Git 작업 시간 초과

1640</h3>

1641 

1642**증상**: 플러그인 설치 또는 마켓플레이스 업데이트가 `Git clone timed out after 120s`와 같은 시간 초과 오류로 실패합니다.

1643 

1644**원인**: Claude Code는 플러그인 저장소 복제 및 마켓플레이스 업데이트를 포함한 모든 git 작업에 120초 시간 초과를 사용합니다. 대규모 저장소 또는 느린 네트워크 연결이 이 제한을 초과할 수 있습니다.

1645 

1646**해결책**: `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` 환경 변수를 사용하여 시간 초과를 늘립니다. 값은 밀리초 단위입니다:

1647 

1648```bash theme={null}

1649export CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS=300000 # 5분

1650```

1651 

1652<h3 id="plugins-with-relative-paths-fail-in-url-based-marketplaces">

1653 상대 경로가 있는 플러그인이 URL 기반 마켓플레이스에서 실패합니다

1654</h3>

1655 

1656**증상**: URL을 통해 마켓플레이스를 추가했습니다(예: `https://example.com/marketplace.json`). 하지만 `"./plugins/my-plugin"`과 같은 상대 경로 소스가 있는 플러그인이 `its marketplace entry path does not stay inside the marketplace directory` 오류로 설치되지 않습니다. 이미 설치된 플러그인이 `Plugin source path refused` 오류로 로드되지 않습니다. 두 메시지 모두 [오류 참조 항목](/docs/ko/errors#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory)이 있습니다.

1657 

1658**원인**: URL 기반 마켓플레이스를 추가하면 `marketplace.json` 파일 자체만 다운로드됩니다. Claude Code는 해당 서버에서 플러그인 파일을 상대 경로로 가져오지 않습니다. 마켓플레이스 항목의 상대 경로는 다운로드되지 않은 원격 서버의 파일을 참조합니다.

1659 

1660**해결책**:

1661 

1662* **외부 소스 사용**: 플러그인 항목을 상대 경로 이외의 [플러그인 소스](#plugin-sources)로 변경합니다:

1663 ```json theme={null}

1664 { "name": "my-plugin", "source": { "source": "github", "repo": "owner/repo" } }

1665 ```

1666* **Git 기반 마켓플레이스 사용**: 마켓플레이스를 Git 저장소에서 호스팅하고 git URL로 추가합니다. Git 기반 마켓플레이스는 전체 저장소를 복제하므로 상대 경로가 올바르게 작동합니다.

1667 

1668<h3 id="files-not-found-after-installation">

1669 설치 후 파일을 찾을 수 없음

1670</h3>

1671 

1672**증상**: 플러그인이 설치되지만 파일 참조가 실패합니다. 특히 플러그인 디렉터리 외부의 파일

1673 

1674**원인**: Claude Code는 플러그인을 제자리에 로드하지 않는 한 캐시 디렉터리에 복사합니다. [`command` source in link mode](#copy-mode-and-link-mode)는 제자리에 로드되고, [상대 경로 소스](#relative-paths)도 마켓플레이스에서 로컬 디렉터리로 추가된 경우 제자리에 로드됩니다. 복사된 플러그인의 디렉터리 외부의 파일을 참조하는 경로(예: `../shared-utils`)는 해당 파일이 복사되지 않기 때문에 작동하지 않습니다.

1675 

1676**해결책**: symlink 및 디렉터리 재구성을 포함한 해결 방법은 [플러그인 캐싱 및 파일 해석](/docs/ko/plugins-reference#plugin-caching-and-file-resolution)을 참조하세요.

1677 

1678추가 디버깅 도구 및 일반적인 문제는 [디버깅 및 개발 도구](/docs/ko/plugins-reference#debugging-and-development-tools)를 참조하세요.

1679 

1680<h2 id="see-also">

1681 참고 항목

1682</h2>

1683 

1684* [미리 빌드된 플러그인 검색 및 설치](/docs/ko/discover-plugins) - 기존 마켓플레이스에서 플러그인 설치

1685* [플러그인](/docs/ko/plugins) - 자신의 플러그인 생성

1686* [플러그인 참조](/docs/ko/plugins-reference) - 완전한 기술 사양 및 스키마

1687* [플러그인 설정](/docs/ko/settings-reference#plugin-settings) - 플러그인 구성 옵션

1688* [strictKnownMarketplaces 참조](/docs/ko/settings-reference#strictknownmarketplaces) - 관리되는 마켓플레이스 제한

plugin-relevance.md +0 −188 deleted

File Deleted View Diff

1> ## Documentation Index

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

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

4 

5# 조직을 위한 플러그인 추천

6 

7> 마켓플레이스 플러그인 항목에 관련성 블록을 추가하여 사용자의 작업이 일치할 때 Claude Code가 플러그인을 제안하도록 합니다.

8 

9조직의 플러그인 마켓플레이스를 운영하는 경우, 사용자가 작업 중인 내용을 기반으로 Claude Code가 특정 플러그인을 제안하도록 할 수 있습니다. `marketplace.json`의 플러그인 항목에 `relevance` 블록을 추가한 다음 관리 설정에서 마켓플레이스를 허용 목록에 추가합니다. 사용자의 세션이 선언된 신호 중 하나와 일치하면 Claude Code가 해당 플러그인에 대한 설치 제안을 표시합니다.

10 

11마켓플레이스에서 선언한 제안은 [관리 설정](/docs/ko/managed-settings)을 통해 마켓플레이스별로 선택 사항입니다. 관리자가 공식 Anthropic 마켓플레이스를 포함하여 허용 목록에 추가할 때까지 마켓플레이스의 `relevance` 선언이 제안을 생성하지 않습니다. Claude Code에는 이 허용 목록과 무관한 기본 제안 하나가 포함되어 있습니다. 이 팁과 모든 마켓플레이스에서 선언한 팁은 [`spinnerTipsEnabled`](/docs/ko/settings-reference#spinnertipsenabled)가 `false`로 설정되면 비활성화됩니다.

12 

13이 페이지는 마켓플레이스 운영자 및 엔터프라이즈 관리자를 위한 것입니다. 플러그인을 설치하려는 경우 [플러그인 발견 및 설치](/docs/ko/discover-plugins)를 참조하세요.

14 

15<h2 id="how-it-works">

16 작동 방식

17</h2>

18 

19`marketplace.json`의 각 플러그인 항목은 `relevance` 객체를 포함할 수 있습니다. 이 객체는 주제와 하나 이상의 신호를 지정합니다. 신호는 Claude Code가 현재 세션에 대해 테스트하는 패턴입니다. 예를 들어 작업 디렉터리 또는 Claude가 읽은 파일입니다.

20 

21신호 일치는 사용자의 컴퓨터에서 로컬로 발생합니다. 일치는 네트워크 트래픽을 추가하지 않으며 어떤 신호가 일치했는지 또는 해당 값을 Anthropic이나 마켓플레이스 운영자에게 보고하지 않습니다.

22 

23신호가 일치하고 플러그인이 아직 설치되지 않은 경우 Claude Code는 플러그인을 세 곳에 표시합니다.

24 

25* **스피너 팁**: Claude가 응답하는 동안 스피너 아래에 `/plugin install` 명령과 함께 "Working with *topic*? Install the *plugin* plugin" 메시지가 나타납니다.

26* **세션 시작 제안**: `cwd` 신호가 작업 디렉터리와 일치하면 첫 번째 턴 전에 한 줄의 `plugin suggestion: <name>@<marketplace> · /plugin` 알림이 나타납니다.

27* **`/plugin` 발견 탭**: 플러그인이 발견 목록의 맨 위에 고정되며 "suggested for this directory" 또는 "suggested for stripe commands"와 같은 주석이 표시됩니다.

28 

29스피너 팁과 세션 시작 알림은 스피너 팁 시스템의 일부입니다. Claude Code는 설정 파일 전체에서 `spinnerTipsEnabled`가 `false`로 확인되거나 [`spinnerTipsOverride`](/docs/ko/settings-reference#spinnertipsoverride) 키의 사용자, `--settings` 및 관리 설정 전체에서 `excludeDefault`가 `true`로 확인되고 해당 키가 최소한 하나의 팁 또는 `tipsFile`을 구성할 때 둘 다 비활성화합니다.

30 

31발견 탭 핀은 팁 설정과 무관합니다.

32 

33Claude Code는 플러그인을 자동으로 설치하지 않습니다. 사용자가 항상 확인합니다.

34 

35<h2 id="add-relevance-to-a-plugin-entry">

36 플러그인 항목에 관련성 추가

37</h2>

38 

39`marketplace.json`의 플러그인 항목에 `relevance` 객체를 추가합니다. 다음 예제는 Claude가 `.tf` 파일을 읽거나 Claude가 `terraform`을 실행할 때 `terraform-helpers` 플러그인이 관련이 있음을 선언합니다.

40 

41```json theme={null}

42{

43 "name": "acme-corp-plugins",

44 "owner": { "name": "Acme Platform Team" },

45 "plugins": [

46 {

47 "name": "terraform-helpers",

48 "source": "./plugins/terraform-helpers",

49 "description": "Acme conventions and helpers for Terraform",

50 "relevance": {

51 "topic": "Terraform",

52 "signals": {

53 "cli": ["terraform"],

54 "filesRead": ["**/*.tf"]

55 }

56 }

57 }

58 ]

59}

60```

61 

62`relevance` 블록이 있지만 일치하는 신호가 없는 플러그인은 다른 마켓플레이스 항목처럼 작동합니다. 발견 목록에 정상 위치에 나타나며 스피너 팁으로 표시되지 않습니다.

63 

64<h2 id="field-reference">

65 필드 참조

66</h2>

67 

68<h3 id="relevance">

69 `relevance`

70</h3>

71 

72| 필드 | 유형 | 설명 |

73| :-------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

74| `topic` | string | 선택 사항입니다. 스피너 팁에서 "Working with *topic*?"를 채우는 구문입니다. 종종 제품 이름입니다. 예를 들어 `Stripe`입니다. 플러그인 이름이 주제로 자연스럽게 읽히지 않을 때 `design`과 같은 도메인을 사용합니다. 기본값은 각 하이픈 세그먼트가 대문자로 표기된 플러그인 이름입니다. 세션 시작 알림은 이 값을 사용하지 않습니다. 최대 64자입니다. |

75| `signals` | object | 플러그인이 관련이 있는 시기를 결정하는 매처입니다. 플러그인이 제안 가능하려면 최소 하나의 신호가 필요합니다. 아래 표를 참조하세요. |

76 

77<h3 id="relevance-signals">

78 `relevance.signals`

79</h3>

80 

81| 필드 | 유형 | 설명 |

82| :------------- | :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

83| `cwd` | array of strings | 세션의 작업 디렉터리에 대해 일치하는 Glob 패턴입니다. 절대 경로로 일치하며, git 저장소 내에 있을 때 저장소 루트에 상대적인 경로로 일치합니다. 정방향 슬래시로 정규화되고 대소문자를 구분하지 않습니다. 모든 패턴은 디렉터리 자체 및 그 아래의 모든 항목과 일치하므로 `infra`, `infra/`, 및 `infra/**`는 동일하게 작동합니다. 이것은 첫 번째 턴 전에 세션 시작 시 일치할 수 있는 유일한 신호입니다. 최대 10개 패턴, 각각 256자입니다. |

84| `cli` | array of strings | Claude가 이 세션에서 실행한 셸 명령의 명령 이름입니다. 예를 들어 `["stripe"]`입니다. 모든 플랫폼에 적용됩니다. Windows에서 PowerShell 또는 Git Bash를 통해 실행된 명령은 동일한 방식으로 기록됩니다. Claude Code는 셸 도구 호출당 하나의 명령 이름을 기록합니다. 선행 환경 변수 할당 및 `sudo` 이후의 첫 번째 토큰입니다. 복합 명령은 선행 명령만 기여하므로 `cd infra && terraform plan`은 `cd`를 기록하며 `terraform`은 기록하지 않습니다. 정확한 일치입니다. 최대 10개 항목, 각각 64자입니다. |

85| `hosts` | array of strings | 이 세션의 Bash 명령에서 `http://` 또는 `https://` URL에서 본 호스트 이름입니다. 예를 들어 `["api.stripe.com"]`입니다. 스키마, 포트 또는 경로 없이 베어 소문자 호스트 이름만 해당합니다. 정확한 대소문자를 구분하지 않는 일치입니다. 최대 20개 항목, 각각 128자입니다. |

86| `filesRead` | array of strings | Claude가 이 세션에서 읽은 파일의 경로에 대해 일치하는 Glob 패턴입니다. 예를 들어 `["**/*.tf"]`입니다. 정방향 슬래시로 정규화되고 대소문자를 구분하지 않습니다. 최대 10개 패턴, 각각 256자입니다. |

87| `manifestDeps` | array of objects | Claude가 이 세션에서 읽은 패키지 매니페스트에 선언된 종속성입니다. 각 항목은 `{ "file": "...", "pattern": "..." }`이며, 여기서 `file`은 세션 상태에 기록된 매니페스트 파일의 경로(일반적으로 절대 경로)에 대해 일치하는 정규식이고 `pattern`은 해당 파일의 내용에 대해 일치하는 정규식입니다. 절대 경로와 일치하지 않는 시작 앵커 패턴이므로 `file`을 끝에 앵커합니다. 예를 들어 JSON 이스케이프 형식의 `[/\\\\]package\\.json$`입니다. 경로는 이 신호에 대해 구분자로 정규화되지 않으므로 Windows 경로는 백슬래시를 사용합니다. 512 KB보다 큰 매니페스트 파일은 건너뜁니다. 두 값 모두 최대 256자의 JavaScript `RegExp` 소스 문자열입니다. `file`은 대소문자를 구분하지 않게 일치합니다. `pattern`은 대소문자를 구분합니다. 최대 10개 항목입니다. |

88 

89`cli`, `hosts`, `filesRead`, 및 `manifestDeps` 신호는 세션 기록이 필요하므로 스피너 팁과 발견 탭에서만 일치할 수 있습니다.

90 

91`filesRead` 및 `manifestDeps` 신호는 세션의 기록된 파일 상태를 테스트합니다. 여기에는 Claude가 작성하거나 편집한 파일과 자동 로드된 `CLAUDE.md` 메모리 파일도 포함됩니다. 이 두 신호의 경우 Claude Code는 자신의 [구성 디렉터리](/docs/ko/claude-directory) 및 임시 디렉터리 아래의 경로를 건너뜁니다.

92 

93다음 예제는 `manifestDeps`를 사용하여 Claude가 `stripe`에 의존하는 `package.json`을 읽은 후 Stripe 플러그인을 제안합니다. `file` 패턴은 `[/\\\\]`를 사용하므로 정방향 슬래시와 백슬래시 경로 구분자 모두와 일치하며 `\\.`는 점이 리터럴임을 의미합니다. JSON에서 정규식의 각 백슬래시는 두 번 작성됩니다.

94 

95```json theme={null}

96{

97 "name": "stripe-helpers",

98 "source": "./plugins/stripe-helpers",

99 "relevance": {

100 "topic": "Stripe",

101 "signals": {

102 "manifestDeps": [

103 {

104 "file": "[/\\\\]package\\.json$",

105 "pattern": "\"stripe\"\\s*:"

106 }

107 ]

108 }

109 }

110}

111```

112 

113<Note>

114 Claude Code는 로드 시 `relevance` 및 `relevance.signals` 아래의 알 수 없는 필드를 무시하므로 이전 클라이언트는 마켓플레이스를 계속 로드합니다.

115</Note>

116 

117<h2 id="enable-suggestions-in-managed-settings">

118 관리 설정에서 제안 활성화

119</h2>

120 

121`marketplace.json`에서 `relevance`를 선언하는 것만으로는 충분하지 않습니다. 관리자는 제안이 사용자에게 나타나기 전에 [관리 설정](/docs/ko/managed-settings)에서 마켓플레이스를 허용 목록에 추가해야 합니다.

122 

123마켓플레이스 이름을 `pluginSuggestionMarketplaces`에 추가합니다. 공식 Anthropic 마켓플레이스 이외의 마켓플레이스의 경우 동일한 관리 설정에서 마켓플레이스 소스를 선언합니다. 이는 해당 이름의 `extraKnownMarketplaces` 항목 또는 `strictKnownMarketplaces`의 항목으로 선언합니다. 허용 목록에 추가된 이름은 마켓플레이스가 다른 소스에서 등록된 경우 무시됩니다. 이는 관련 없는 소스가 허용 목록에 추가된 이름으로 등록되어 조직 전체에서 플러그인이 제안되는 것을 방지합니다.

124 

125다음 `managed-settings.json`은 GitHub 저장소에서 조직 마켓플레이스를 등록하고 제안을 활성화합니다.

126 

127```json theme={null}

128{

129 "extraKnownMarketplaces": {

130 "acme-corp-plugins": {

131 "source": {

132 "source": "github",

133 "repo": "acme-corp/claude-plugins"

134 }

135 }

136 },

137 "pluginSuggestionMarketplaces": ["acme-corp-plugins"]

138}

139```

140 

141공식 마켓플레이스는 소스 선언 요구 사항에서 제외됩니다. 이름은 공식 Anthropic 소스에서만 등록할 수 있기 때문입니다. 이름만 허용 목록에 추가하는 것으로 충분합니다.

142 

143```json theme={null}

144{

145 "pluginSuggestionMarketplaces": ["claude-plugins-official"]

146}

147```

148 

149<h2 id="what-the-user-sees">

150 사용자가 보는 것

151</h2>

152 

153신호가 세션 중에 일치하면 스피너 팁은 다음과 같이 읽습니다.

154 

155```text theme={null}

156Working with Terraform? Install the terraform-helpers plugin:

157/plugin install terraform-helpers@acme-corp-plugins

158```

159 

160세션 시작 시 일치하는 `cwd` 신호는 한 줄의 알림을 표시합니다.

161 

162```text theme={null}

163plugin suggestion: terraform-helpers@acme-corp-plugins · /plugin

164```

165 

166주어진 플러그인의 제안은 스피너 팁과 세션 시작 알림을 합쳐서 최대 3개 세션마다 한 번씩 나타나며, 플러그인이 설치되면 둘 다 반복되지 않습니다. 세션 시작 알림은 제안이 두 번 표시된 후 나타나지 않습니다.

167 

168`/plugin` 발견 탭에서 플러그인은 다른 결과 위에 고정되며 `suggested for this directory` 또는 `suggested for terraform commands`와 같이 일치하는 신호의 이름을 지정하는 주석이 표시됩니다. 발견 탭은 주어진 플러그인을 한 번 고정합니다. 이후 방문은 정상 순서로 나열합니다.

169 

170<h2 id="validate-your-marketplace">

171 마켓플레이스 검증

172</h2>

173 

174마켓플레이스 디렉터리에 대해 `claude plugin validate`를 실행하여 게시하기 전에 `relevance` 블록을 확인합니다.

175 

176```

177claude plugin validate ./my-marketplace

178```

179 

180검증자는 `relevance` 및 `relevance.signals` 아래의 알 수 없는 키를 경고로 보고하고, 객체가 아닌 `relevance` 값을 플래그하며, 스키마, 포트 또는 경로를 포함하는 `signals.hosts` 항목을 거부합니다.

181 

182<h2 id="see-also">

183 참고 항목

184</h2>

185 

186* [플러그인 마켓플레이스 생성 및 배포](/docs/ko/plugin-marketplaces): 플러그인을 호스팅하는 마켓플레이스를 구축합니다.

187* [CLI에서 플러그인 추천](/docs/ko/plugin-hints): Claude Code의 세션 신호 대신 자신의 CLI에서 사용자에게 메시지를 표시합니다.

188* [모든 설정](/docs/ko/settings-reference#pluginsuggestionmarketplaces): `pluginSuggestionMarketplaces` 및 `extraKnownMarketplaces`

plugins.md +0 −527 deleted

File Deleted View Diff

1> ## Documentation Index

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

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

4 

5# 플러그인 만들기

6 

7> skills, agents, hooks, MCP servers를 사용하여 Claude Code를 확장하는 사용자 정의 플러그인을 만듭니다.

8 

9플러그인을 사용하면 프로젝트와 팀 전체에서 공유할 수 있는 사용자 정의 기능으로 Claude Code를 확장할 수 있습니다. 이 가이드에서는 skills, agents, hooks, MCP servers를 사용하여 자신의 플러그인을 만드는 방법을 다룹니다.

10 

11기존 플러그인을 설치하려고 하시나요? [플러그인 발견 및 설치](/docs/ko/discover-plugins)를 참조하세요. 완전한 기술 사양은 [플러그인 참조](/docs/ko/plugins-reference)를 참조하세요.

12 

13<h2 id="when-to-use-plugins-vs-standalone-configuration">

14 플러그인 대 독립 실행형 구성 사용 시기

15</h2>

16 

17Claude Code는 사용자 정의 skills, agents, hooks를 추가하는 두 가지 방법을 지원합니다:

18 

19| 접근 방식 | Skill 이름 | 최적 용도 |

20| :---------------------------------------------------------------------------------------- | :------------------- | :-------------------------------------- |

21| **독립 실행형** (`.claude/` 디렉토리) | `/hello` | 개인 워크플로우, 프로젝트별 사용자 정의, 빠른 실험 |

22| **플러그인** (skills, agents, hooks를 포함하거나 `.claude-plugin/plugin.json` 매니페스트가 있는 자체 포함 디렉토리) | `/plugin-name:hello` | 팀원과 공유, 커뮤니티에 배포, 버전 관리 릴리스, 프로젝트 간 재사용 |

23 

24<Tip>

25 빠른 반복을 위해 `.claude/`의 독립 실행형 구성으로 시작한 다음, 공유할 준비가 되면 [기존 구성을 플러그인으로 변환](#convert-existing-configurations-to-plugins)하세요.

26</Tip>

27 

28<h2 id="quickstart">

29 빠른 시작

30</h2>

31 

32이 빠른 시작은 사용자 정의 skill을 사용하여 플러그인을 만드는 과정을 안내합니다. 매니페스트(플러그인을 정의하는 구성 파일)를 만들고, skill을 추가하고, `--plugin-dir` 플래그를 사용하여 로컬에서 테스트합니다.

33 

34<h3 id="prerequisites">

35 필수 조건

36</h3>

37 

38* Claude Code [설치 및 인증](/docs/ko/quickstart#step-1-install-claude-code)

39 

40<h3 id="create-your-first-plugin">

41 첫 번째 플러그인 만들기

42</h3>

43 

44<Steps>

45 <Step title="플러그인 디렉토리 만들기">

46 모든 플러그인은 skills, agents 또는 hooks를 포함하는 자체 디렉토리에 있으며, 선택적으로 `.claude-plugin/plugin.json` 매니페스트와 함께 있습니다. 이 빠른 시작에서는 `--plugin-dir`을 사용하여 테스트 단계에서 Claude Code가 디렉토리를 가리키기 때문에 위치는 중요하지 않습니다. 스크래치 폴더나 프로젝트 디렉토리와 같이 편리한 곳 어디든 만들 수 있습니다:

47 

48 ```bash theme={null}

49 mkdir my-first-plugin

50 ```

51 

52 나머지 단계는 상위 디렉토리에서 실행되며 `my-first-plugin/...`과 같은 경로를 상대 경로로 참조합니다.

53 </Step>

54 

55 <Step title="플러그인 매니페스트 만들기">

56 `.claude-plugin/plugin.json`의 매니페스트 파일은 플러그인의 정체성을 정의합니다: 이름, 설명, 버전. Claude Code는 이 메타데이터를 사용하여 플러그인 관리자에서 플러그인을 표시합니다.

57 

58 플러그인 폴더 내에 `.claude-plugin` 디렉토리를 만듭니다:

59 

60 ```bash theme={null}

61 mkdir my-first-plugin/.claude-plugin

62 ```

63 

64 그런 다음 다음 내용으로 `my-first-plugin/.claude-plugin/plugin.json`을 만듭니다:

65 

66 ```json my-first-plugin/.claude-plugin/plugin.json theme={null}

67 {

68 "name": "my-first-plugin",

69 "description": "A greeting plugin to learn the basics",

70 "version": "1.0.0",

71 "author": {

72 "name": "Your Name"

73 }

74 }

75 ```

76 

77 | 필드 | 목적 |

78 | :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

79 | `name` | 고유 식별자 및 skill 네임스페이스. Skills는 이것으로 접두사가 붙습니다 (예: `/my-first-plugin:hello`). |

80 | `description` | 플러그인을 검색하거나 설치할 때 플러그인 관리자에 표시됩니다. |

81 | `version` | 선택 사항. 설정된 경우 사용자는 이 필드를 변경할 때만 업데이트를 받습니다. [`command` source](/docs/ko/plugin-marketplaces#command-sources) 또는 [제자리에 로드된](/docs/ko/plugins-reference#plugin-caching-and-file-resolution) 플러그인 제외; [버전 관리](/docs/ko/plugins-reference#version-management)를 참조하세요. 생략되면 [버전 관리](/docs/ko/plugins-reference#version-management)의 다음 소스에서 버전이 제공됩니다. |

82 | `author` | 선택 사항. 속성에 유용합니다. |

83 

84 `homepage`, `repository`, `license`와 같은 추가 필드는 [전체 매니페스트 스키마](/docs/ko/plugins-reference#plugin-manifest-schema)를 참조하세요.

85 </Step>

86 

87 <Step title="Skill 추가">

88 Skills는 `skills/` 디렉토리에 있습니다. 각 skill은 `SKILL.md` 파일을 포함하는 폴더입니다. 폴더 이름은 skill 이름이 되며, 플러그인의 네임스페이스가 접두사로 붙습니다 (`my-first-plugin`이라는 플러그인의 `hello/`는 `/my-first-plugin:hello`를 만듭니다).

89 

90 플러그인 폴더에 skill 디렉토리를 만듭니다:

91 

92 ```bash theme={null}

93 mkdir -p my-first-plugin/skills/hello

94 ```

95 

96 그런 다음 다음 내용으로 `my-first-plugin/skills/hello/SKILL.md`를 만듭니다:

97 

98 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}

99 ---

100 description: Greet the user with a friendly message

101 disable-model-invocation: true

102 ---

103 

104 Greet the user warmly and ask how you can help them today.

105 ```

106 </Step>

107 

108 <Step title="플러그인 테스트">

109 `--plugin-dir` 플래그를 사용하여 Claude Code를 실행하여 플러그인을 로드합니다:

110 

111 ```bash theme={null}

112 claude --plugin-dir ./my-first-plugin

113 ```

114 

115 Claude Code가 시작되면 새 skill을 시도해보세요:

116 

117 ```shell theme={null}

118 /my-first-plugin:hello

119 ```

120 

121 Claude가 인사말로 응답하는 것을 볼 수 있습니다. `/help`를 실행하고 **사용자 정의 명령** 탭을 열어 플러그인 네임스페이스 아래에 나열된 skill을 확인하세요.

122 

123 <Note>

124 **네임스페이싱이 필요한 이유?** 플러그인 skills는 항상 네임스페이스가 지정됩니다 (예: `/my-first-plugin:hello`). 여러 플러그인이 동일한 이름의 skills를 가질 때 충돌을 방지합니다.

125 

126 네임스페이스 접두사를 변경하려면 `plugin.json`의 `name` 필드를 업데이트하세요.

127 </Note>

128 </Step>

129 

130 <Step title="Skill 인수 추가">

131 사용자 입력을 수락하여 skill을 동적으로 만듭니다. `$ARGUMENTS` 자리 표시자는 사용자가 skill 이름 뒤에 제공하는 모든 텍스트를 캡처합니다.

132 

133 `SKILL.md` 파일을 업데이트합니다:

134 

135 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}

136 ---

137 description: Greet the user with a personalized message

138 ---

139 

140 # Hello Skill

141 

142 Greet the user named "$ARGUMENTS" warmly and ask how you can help them today. Make the greeting personal and encouraging.

143 ```

144 

145 `/reload-plugins`를 실행하여 변경 사항을 적용한 다음 이름으로 skill을 시도해보세요:

146 

147 ```shell theme={null}

148 /my-first-plugin:hello Alex

149 ```

150 

151 Claude가 이름으로 인사할 것입니다. skills에 인수를 전달하는 방법에 대한 자세한 내용은 [Skills](/docs/ko/skills#pass-arguments-to-skills)를 참조하세요.

152 </Step>

153</Steps>

154 

155<Tip>

156 `--plugin-dir` 플래그는 개발 및 테스트에 유용합니다. 플러그인을 다른 사람과 공유할 준비가 되면 [플러그인 마켓플레이스 만들기 및 배포](/docs/ko/plugin-marketplaces)를 참조하세요.

157</Tip>

158 

159<h2 id="develop-a-plugin-in-your-skills-directory">

160 기술 디렉토리에서 플러그인 개발

161</h2>

162 

163매번 시작할 때 `--plugin-dir`을 전달하는 대신 기술 디렉토리에 플러그인을 유지하고 Claude Code가 자동으로 로드하도록 할 수 있습니다. `claude plugin init`이 스캐폴딩합니다:

164 

165```bash theme={null}

166claude plugin init my-tool

167```

168 

169이는 `.claude-plugin/plugin.json` 매니페스트와 시작 `SKILL.md`를 포함하는 `~/.claude/skills/my-tool/`을 만듭니다. 다음 세션에서는 마켓플레이스나 설치 단계 없이 `my-tool@skills-dir`로 로드됩니다.

170 

171자동 로드 규칙, 개인 대 프로젝트 범위, 작업 공간 신뢰 요구 사항, 업데이트 또는 제거 방법은 [기술 디렉토리 플러그인](/docs/ko/plugins-reference#skills-directory-plugins)을 참조하세요.

172 

173<h2 id="plugin-structure-overview">

174 플러그인 구조 개요

175</h2>

176 

177skill을 사용하여 플러그인을 만들었지만, 플러그인에는 훨씬 더 많은 것이 포함될 수 있습니다: 사용자 정의 agents, hooks, MCP servers, LSP servers, 백그라운드 모니터.

178 

179<Warning>

180 **일반적인 실수**: `commands/`, `agents/`, `skills/`, `hooks/`를 `.claude-plugin/` 디렉토리 내에 넣지 마세요. `.claude-plugin/` 내에는 `plugin.json`만 들어갑니다. 다른 모든 디렉토리는 플러그인 루트 수준에 있어야 합니다.

181 

182 플러그인 루트는 개별 플러그인의 자체 디렉토리입니다(예: [빠른 시작](#quickstart)의 `my-first-plugin/`). 절대 `~/.claude/`가 아닙니다. 예를 들어, Claude Code는 `~/.claude/.mcp.json`에 배치된 `.mcp.json`을 읽지 않습니다.

183</Warning>

184 

185| 디렉토리 | 위치 | 목적 |

186| :---------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

187| `.claude-plugin/` | 플러그인 루트 | `plugin.json` 매니페스트를 포함합니다 (구성 요소가 기본 위치를 사용하는 경우 선택 사항) |

188| `skills/` | 플러그인 루트 | `<name>/SKILL.md` 디렉토리로서의 Skills |

189| `commands/` | 플러그인 루트 | Markdown 파일로서의 Skills. 새 플러그인의 경우 `skills/`를 사용하세요 |

190| `agents/` | 플러그인 루트 | 사용자 정의 agent 정의 |

191| `hooks/` | 플러그인 루트 | `hooks.json`의 이벤트 핸들러 |

192| `.mcp.json` | 플러그인 루트 | MCP server 구성 |

193| `.lsp.json` | 플러그인 루트 | 코드 인텔리전스를 위한 LSP server 구성 |

194| `monitors/` | 플러그인 루트 | `monitors.json`의 백그라운드 모니터 구성 |

195| `bin/` | 플러그인 루트 | 플러그인이 활성화된 동안 Bash tool의 `PATH`에 추가되는 실행 파일. 플러그인을 [claude.ai 조직 설정을 통해 배포](/docs/ko/plugin-marketplaces#keep-executables-out-of-the-top-level-bin-directory)하는 경우 이 디렉토리를 포함할 수 없습니다 |

196| `settings.json` | 플러그인 루트 | 플러그인이 활성화될 때 적용되는 기본 [설정](/docs/ko/settings) |

197 

198정확히 하나의 skill을 제공하는 플러그인은 `skills/` 디렉토리를 만드는 대신 `SKILL.md`를 플러그인 루트에 직접 배치할 수 있습니다. Claude Code는 이를 단일 skill로 로드하고 frontmatter `name` 필드를 호출 이름으로 사용합니다. 플러그인이 하나 이상의 skill로 성장할 수 있는 경우 `skills/` 레이아웃을 사용하세요.

199 

200<h2 id="develop-more-complex-plugins">

201 더 복잡한 플러그인 개발

202</h2>

203 

204기본 플러그인에 익숙해지면 더 정교한 확장 기능을 만들 수 있습니다.

205 

206<h3 id="add-skills-to-your-plugin">

207 플러그인에 Skills 추가

208</h3>

209 

210플러그인은 Claude의 기능을 확장하기 위해 [Agent Skills](/docs/ko/skills)를 포함할 수 있습니다. Skills는 모델 호출입니다: Claude는 작업 컨텍스트에 따라 자동으로 사용합니다.

211 

212플러그인 루트에 `SKILL.md` 파일을 포함하는 Skill 폴더가 있는 `skills/` 디렉토리를 추가합니다:

213 

214```text theme={null}

215my-plugin/

216├── .claude-plugin/

217│ └── plugin.json

218└── skills/

219 └── code-review/

220 └── SKILL.md

221```

222 

223각 `SKILL.md`는 YAML 프론트매터와 지침을 포함합니다. Claude가 skill을 언제 사용할지 알 수 있도록 `description`을 포함하세요:

224 

225```yaml theme={null}

226description: Reviews code for best practices and potential issues. Use when reviewing code, checking PRs, or analyzing code quality.

227 

228When reviewing code, check for:

2291. Code organization and structure

2302. Error handling

2313. Security concerns

2324. Test coverage

233```

234 

235플러그인을 설치한 후 설치 요약을 확인합니다: `Run /reload-plugins to activate.`를 보고하면 [플러그인 변경 사항을 다시 시작하지 않고 적용](/docs/ko/discover-plugins#apply-plugin-changes-without-restarting)을 참조하여 현재 세션에서 Skills를 로드합니다. 점진적 공개 및 도구 제한을 포함한 완전한 Skill 작성 지침은 [Agent Skills](/docs/ko/skills)를 참조하세요.

236 

237<h3 id="add-lsp-servers-to-your-plugin">

238 플러그인에 LSP servers 추가

239</h3>

240 

241<Tip>

242 TypeScript, Python, Rust와 같은 일반적인 언어의 경우 공식 마켓플레이스에서 미리 빌드된 LSP 플러그인을 설치하세요. 이미 다루어진 언어가 아닌 언어에 대한 지원이 필요한 경우에만 사용자 정의 LSP 플러그인을 만드세요.

243</Tip>

244 

245LSP (Language Server Protocol) 플러그인은 Claude에 실시간 코드 인텔리전스를 제공합니다. 아직 공식 LSP 플러그인이 없는 언어를 지원해야 하는 경우 플러그인에 `.lsp.json` 파일을 추가하여 자신의 플러그인을 만들 수 있습니다:

246 

247```json .lsp.json theme={null}

248{

249 "go": {

250 "command": "gopls",

251 "args": ["serve"],

252 "extensionToLanguage": {

253 ".go": "go"

254 }

255 }

256}

257```

258 

259플러그인을 설치하는 사용자는 자신의 머신에 언어 server 바이너리를 설치해야 합니다.

260 

261서버가 시작되는지 확인하려면 플러그인이 활성화된 상태에서 Claude Code를 시작하고 `/plugin` Errors 탭을 확인합니다: 시작에 실패한 언어 server는 바이너리가 설치되지 않았을 때 `Executable not found in $PATH`와 같은 오류와 함께 나타납니다. 잘못된 구성이 있는 항목은 건너뛰어집니다. 이유를 확인하려면 `claude --debug`를 실행하세요.

262 

263완전한 LSP 구성 옵션은 [LSP servers](/docs/ko/plugins-reference#lsp-servers)를 참조하세요.

264 

265<h3 id="add-background-monitors-to-your-plugin">

266 플러그인에 백그라운드 모니터 추가

267</h3>

268 

269백그라운드 모니터를 사용하면 플러그인이 로그, 파일 또는 외부 상태를 백그라운드에서 감시하고 이벤트가 도착할 때 Claude에 알릴 수 있습니다. Claude Code는 플러그인이 활성화될 때 각 모니터를 자동으로 시작하므로 Claude에 감시를 시작하도록 지시할 필요가 없습니다.

270 

271플러그인 루트에 `monitors/monitors.json` 파일을 추가하고 모니터 항목의 배열을 포함합니다:

272 

273```json monitors/monitors.json theme={null}

274[

275 {

276 "name": "error-log",

277 "command": "tail -F ./logs/error.log",

278 "description": "Application error log"

279 }

280]

281```

282 

283`command`의 각 stdout 줄은 세션 중에 Claude에 알림으로 전달됩니다. `when` 트리거 및 변수 대체를 포함한 전체 스키마는 [Monitors](/docs/ko/plugins-reference#monitors)를 참조하세요.

284 

285<h3 id="ship-default-settings-with-your-plugin">

286 플러그인과 함께 기본 설정 제공

287</h3>

288 

289플러그인은 플러그인 루트에 `settings.json` 파일을 포함하여 플러그인이 활성화될 때 기본 구성을 적용할 수 있습니다. 현재 `agent` 및 `subagentStatusLine` 키만 지원됩니다.

290 

291`agent`를 설정하면 플러그인의 [사용자 정의 agents](/docs/ko/sub-agents) 중 하나를 주 스레드로 활성화하여 시스템 프롬프트, 도구 제한, 모델을 적용합니다. 이를 통해 플러그인은 활성화될 때 Claude Code의 동작 방식을 기본적으로 변경할 수 있습니다.

292 

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

294{

295 "agent": "security-reviewer"

296}

297```

298 

299이 예제는 플러그인의 `agents/` 디렉토리에 정의된 `security-reviewer` agent를 활성화합니다. `settings.json`의 설정은 `plugin.json`에 선언된 `settings`보다 우선합니다. 알 수 없는 키는 자동으로 무시됩니다.

300 

301<h3 id="organize-complex-plugins">

302 복잡한 플러그인 구성

303</h3>

304 

305많은 구성 요소가 있는 플러그인의 경우 기능별로 디렉토리 구조를 구성합니다. 완전한 디렉토리 레이아웃 및 구성 패턴은 [플러그인 디렉토리 구조](/docs/ko/plugins-reference#plugin-directory-structure)를 참조하세요.

306 

307<h3 id="test-your-plugins-locally">

308 플러그인을 로컬에서 테스트

309</h3>

310 

311개발 중에 플러그인을 테스트하려면 `--plugin-dir` 플래그를 사용합니다. 이는 설치를 요구하지 않고 플러그인을 직접 로드합니다.

312 

313```bash theme={null}

314claude --plugin-dir ./my-plugin

315```

316 

317플래그는 플러그인 디렉토리의 `.zip` 아카이브도 허용합니다.

318 

319```bash theme={null}

320claude --plugin-dir ./my-plugin.zip

321```

322 

323`--plugin-dir` 플러그인이 설치된 마켓플레이스 플러그인과 동일한 이름을 가진 경우 로컬 복사본이 해당 세션에 우선합니다. 이를 통해 먼저 제거하지 않고도 이미 설치한 플러그인의 변경 사항을 테스트할 수 있습니다. 관리 설정에 의해 강제로 활성화되거나 비활성화된 플러그인은 유일한 예외이며 `--plugin-dir`로 재정의할 수 없습니다.

324 

325플러그인을 변경할 때 `/reload-plugins`를 실행하여 다시 시작하지 않고 업데이트를 적용합니다. 이는 플러그인, skills, agents, hooks, 플러그인 MCP servers, 플러그인 LSP servers를 다시 로드합니다. 대화형 터미널이 없는 세션에서 플러그인 MCP server 변경 사항은 [다음 세션을 기다립니다](/docs/ko/discover-plugins#apply-plugin-changes-without-restarting). 플러그인 구성 요소를 테스트합니다:

326 

327* `/plugin-name:skill-name`으로 skills를 시도해보세요

328* agents가 `/context`의 Custom Agents 아래에 나타나는지 확인하거나 범위가 지정된 이름으로 @-mention하세요

329* 각 hook이 일치하는 이벤트를 트리거합니다(예: 파일을 편집하도록 Claude에 요청하여 `PostToolUse` hook을 트리거하고 그 효과를 확인합니다). Claude Code는 일치한 hooks, 종료 코드, 출력을 [debug log](/docs/ko/hooks#debug-hooks)에 기록합니다.

330 

331<Tip>

332 플래그를 여러 번 지정하여 한 번에 여러 플러그인을 로드할 수 있습니다:

333 

334 ```bash theme={null}

335 claude --plugin-dir ./plugin-one --plugin-dir ./plugin-two

336 ```

337 

338 플러그인과 그것이 의존하는 플러그인을 함께 테스트하려면 [플러그인과 그 종속성을 로컬에서 테스트](/docs/ko/plugin-dependencies#test-a-plugin-and-its-dependency-locally)를 참조하세요.

339</Tip>

340 

341플래그를 추가할 수 없는 세션에서 플러그인을 로드하려면 대신 [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ko/env-vars#variables) 환경 변수에 절대 경로를 나열하세요. Claude Code는 각 경로를 `--plugin-dir` 경로로 로드합니다. 이러한 플러그인은 `--plugin-dir`로 전달하는 플러그인에 추가로 로드됩니다. [프로젝트 및 로컬 설정은 이 변수를 설정할 수 없습니다](/docs/ko/settings-reference#variables-claude-code-ignores-in-env). `CLAUDE_CODE_PLUGIN_DIRS`는 Claude Code v2.1.280 이상이 필요합니다.

342 

343`--plugin-dir`로 플러그인을 시도하면 작동할 수 있음을 알 수 있습니다. Claude가 실제로 얼마나 자주 도달하고 올바른 결과를 얻는지 알아보려면 [`claude plugin eval`](/docs/ko/plugin-evals)을 사용하여 테스트 프롬프트 세트에 대해 실행하세요. 각 프롬프트는 플러그인이 로드된 상태와 로드되지 않은 상태에서 여러 번 실행되므로 플러그인이 기여하는 바를 확인하고 변경하거나 새 모델이 출시될 때 회귀를 포착할 수 있습니다.

344 

345한 곳에서 여러 플러그인을 로드하려면 플러그인을 보유한 폴더를 전달합니다(예: `--plugin-dir ./plugins`). 플러그인 폴더를 로드하려면 Claude Code v2.1.265 이상이 필요합니다. Claude Code는 폴더의 최상위 수준을 읽어 어떤 플러그인을 로드할지 결정하며, 대화형 세션에서는 나중에 변경 사항을 위해 폴더를 감시합니다:

346 

347* **로드되는 항목**: 폴더에 최상위 수준의 매니페스트 또는 플러그인 구성 요소가 없으면 Claude Code는 이를 플러그인 폴더로 취급합니다. `.claude-plugin/plugin.json` 매니페스트가 있는 각 즉시 하위 폴더는 별도의 플러그인으로 로드됩니다. Claude Code는 오류를 보고하지 않고 매니페스트가 없는 플러그인을 포함하여 폴더의 다른 모든 항목을 건너뜁니다.

348* **대화형 세션 중 변경 사항**: 추가하는 하위 폴더는 매니페스트가 준비되면 새 플러그인으로 로드되며, 하위 폴더를 제거하면 해당 플러그인이 언로드됩니다. Claude Code는 각 변경에 대해 세션에 줄을 출력합니다. 변경 사항을 중간 대화에 적용하면 [프롬프트 캐시가 무효화](/docs/ko/prompt-caching#enabling-or-disabling-a-plugin)될 경우 Claude Code는 이를 보류하고 줄에서 `/reload-plugins`를 실행하도록 말합니다.

349 

350URL에서 호스팅되는 `.zip` 아카이브로 이미 패키징된 플러그인을 테스트하려면(예: CI 빌드 아티팩트) 대신 `--plugin-url`을 사용하세요. Claude Code는 시작 시 아카이브를 가져오고 해당 세션에만 로드합니다. Claude Code가 아카이브를 가져올 수 없거나 아카이브가 유효하지 않으면 플러그인 없이 시작하고 `/plugin` 관리자의 **Errors** 탭에서 검토할 수 있는 플러그인 로드 오류를 기록합니다. 모든 플러그인 소스에 대해 동일한 [신뢰 고려 사항](/docs/ko/discover-plugins#security)이 적용됩니다: 이 플래그를 제어하거나 신뢰하는 아카이브에만 지정하세요.

351 

352여러 플러그인을 로드하려면 각 URL에 대해 플래그를 반복합니다:

353 

354```bash theme={null}

355claude --plugin-url https://example.com/my-plugin.zip --plugin-url https://example.com/other.zip

356```

357 

358또는 공백으로 구분된 URL을 하나의 따옴표로 묶인 인수로 전달합니다:

359 

360```bash theme={null}

361claude --plugin-url "https://example.com/my-plugin.zip https://example.com/other.zip"

362```

363 

364<h3 id="debug-plugin-issues">

365 플러그인 문제 디버깅

366</h3>

367 

368플러그인이 예상대로 작동하지 않는 경우:

369 

3701. **구조 확인**: 디렉토리가 `.claude-plugin/` 내부가 아닌 플러그인 루트에 있는지 확인하세요

3712. **구성 요소를 개별적으로 테스트**: 각 skill, agent, hook을 별도로 확인하세요

3723. **검증 및 디버깅 도구 사용**: CLI 명령 및 문제 해결 기법은 [디버깅 및 개발 도구](/docs/ko/plugins-reference#debugging-and-development-tools)를 참조하세요

373 

374<h3 id="share-your-plugins">

375 플러그인 공유

376</h3>

377 

378플러그인을 공유할 준비가 되면:

379 

3801. **문서 추가**: 설치 및 사용 지침이 포함된 `README.md`를 포함하세요

3812. **버전 관리 전략 선택**: 명시적 `version`을 설정할지 또는 [버전 관리](/docs/ko/plugins-reference#version-management)에 설명된 폴백에 의존할지 결정하세요.

3823. **마켓플레이스 만들기 또는 사용**: [플러그인 마켓플레이스](/docs/ko/plugin-marketplaces)를 통해 배포하여 설치하세요

3834. **다른 사람과 테스트**: 더 광범위한 배포 전에 팀원이 플러그인을 테스트하도록 하세요

384 

385플러그인이 마켓플레이스에 있으면 다른 사람들이 [플러그인 발견 및 설치](/docs/ko/discover-plugins)의 지침을 사용하여 설치할 수 있습니다. 플러그인을 팀 내부로만 유지하려면 [비공개 저장소](/docs/ko/plugin-marketplaces#private-repositories)에서 마켓플레이스를 호스팅하세요.

386 

387<h3 id="submit-your-plugin-to-the-community-marketplace">

388 플러그인을 커뮤니티 마켓플레이스에 제출

389</h3>

390 

391Anthropic은 Claude Code 플러그인을 위한 두 개의 공개 마켓플레이스를 유지합니다:

392 

393* **`claude-plugins-official`**: Anthropic에서 유지 관리하는 엄선된 플러그인 세트입니다. Claude Code를 처음 대화형으로 시작할 때 자동으로 등록됩니다. 첫 번째 시작 전에 Claude Code를 비대화형으로 실행하거나 [마켓플레이스 정책](/docs/ko/plugin-marketplaces#managed-marketplace-restrictions)이 이전 시도를 차단한 경우 `claude plugin marketplace add anthropics/claude-plugins-official`로 직접 등록하세요.

394* **`claude-community`**: 검토 후 타사 제출이 도착하는 공개 커뮤니티 마켓플레이스입니다. 사용자는 `/plugin marketplace add anthropics/claude-plugins-community`로 추가하고 `@claude-community`로 설치합니다.

395 

396커뮤니티 마켓플레이스 검토를 위해 플러그인을 제출하려면 다음 앱 내 양식 중 하나를 사용하세요:

397 

398* **claude.ai**: [claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)

399* **Console**: [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)

400 

401claude.ai 양식은 Team 또는 Enterprise 조직과 디렉토리 관리 액세스가 필요합니다. 조직 소유자는 기본적으로 이 액세스 권한을 가집니다. Team 또는 Enterprise 조직에 속하지 않은 개별 작성자는 대신 Console 양식을 사용할 수 있습니다.

402 

403제출하기 전에 로컬에서 `claude plugin validate ./your-plugin`을 실행하세요. 플러그인 디렉토리의 경로로 `./your-plugin`을 바꾸세요. 검토 파이프라인은 모든 제출에 대해 동일한 검사를 실행하며, 자동화된 안전 검사도 함께 수행합니다. 검증이 통과하면 Claude Code는 `✔ Validation passed` 또는 경고가 있는 경우 `✔ Validation passed with warnings`를 출력합니다. 경고는 검증을 실패하지 않습니다. `--strict`를 추가하여 경고를 오류로 취급하세요.

404 

405승인된 플러그인은 [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) 카탈로그의 특정 커밋 SHA에 고정되며, CI는 저장소에 새 커밋을 푸시할 때 자동으로 핀을 업데이트합니다. 공개 카탈로그는 검토 파이프라인에서 매일 밤 동기화되므로 승인과 플러그인이 `marketplace.json`에 나타나는 사이에 지연이 있을 수 있습니다. 플러그인이 설치 가능한지 확인하려면 [커뮤니티 카탈로그](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json)에서 이름을 검색하세요.

406 

407공식 마켓플레이스인 `claude-plugins-official`은 별도로 엄선됩니다. Anthropic은 자신의 재량에 따라 포함할 플러그인을 결정합니다. 신청 절차가 없으며, 제출 양식은 플러그인을 공식 마켓플레이스에 추가하지 않습니다.

408 

409Anthropic이 플러그인을 공식 마켓플레이스에 나열하면 CLI에서 Claude Code 사용자에게 설치를 권장할 수 있습니다. [CLI에서 플러그인 권장](/docs/ko/plugin-hints)을 참조하세요.

410 

411<h2 id="convert-existing-configurations-to-plugins">

412 기존 구성을 플러그인으로 변환

413</h2>

414 

415`.claude/` 디렉토리에 이미 skills 또는 hooks가 있는 경우 더 쉬운 공유 및 배포를 위해 플러그인으로 변환할 수 있습니다.

416 

417<h3 id="migration-steps">

418 마이그레이션 단계

419</h3>

420 

421<Steps>

422 <Step title="플러그인 구조 만들기">

423 프로젝트 루트에 새 플러그인 디렉토리를 만듭니다. 기존 `.claude/` 폴더와 함께 배치하여 다음 단계의 상대 `cp` 경로가 올바르게 해석되도록 합니다:

424 

425 ```bash theme={null}

426 mkdir -p my-plugin/.claude-plugin

427 ```

428 

429 `my-plugin/.claude-plugin/plugin.json`에 매니페스트 파일을 만듭니다:

430 

431 ```json my-plugin/.claude-plugin/plugin.json theme={null}

432 {

433 "name": "my-plugin",

434 "description": "Migrated from standalone configuration",

435 "version": "1.0.0"

436 }

437 ```

438 </Step>

439 

440 <Step title="기존 파일 복사">

441 각 구성 디렉토리를 플러그인 루트에 복사합니다. 세 개 모두를 가지고 있지 않을 수 있습니다. 디렉토리가 없으면 `cp`는 `No such file or directory`를 출력하고 아무것도 복사하지 않으므로 해당 명령을 건너뛰거나 오류를 무시합니다.

442 

443 ```bash theme={null}

444 cp -r .claude/commands my-plugin/

445 

446 cp -r .claude/agents my-plugin/

447 

448 cp -r .claude/skills my-plugin/

449 ```

450 

451 플러그인에는 이제 `.claude/` 아래에 있던 디렉토리의 복사본이 포함됩니다. `ls my-plugin`을 실행하여 확인합니다. 복사한 각 디렉토리가 표시되어야 합니다.

452 </Step>

453 

454 <Step title="Hooks 마이그레이션">

455 설정에 hooks가 있는 경우 hooks 디렉토리를 만듭니다:

456 

457 ```bash theme={null}

458 mkdir my-plugin/hooks

459 ```

460 

461 `my-plugin/hooks/hooks.json`을 hooks 구성으로 만듭니다. `.claude/settings.json` 또는 `settings.local.json`에서 `hooks` 객체를 복사합니다. 형식이 동일하기 때문입니다. 명령은 stdin에서 JSON으로 hook 입력을 받으므로 `jq`를 사용하여 파일 경로를 추출합니다:

462 

463 ```json my-plugin/hooks/hooks.json theme={null}

464 {

465 "hooks": {

466 "PostToolUse": [

467 {

468 "matcher": "Write|Edit",

469 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]

470 }

471 ]

472 }

473 }

474 ```

475 </Step>

476 

477 <Step title="마이그레이션된 플러그인 테스트">

478 플러그인을 로드하여 모든 것이 작동하는지 확인합니다:

479 

480 ```bash theme={null}

481 claude --plugin-dir ./my-plugin

482 ```

483 

484 각 구성 요소를 테스트합니다. 명령을 실행하고, agents가 `/context`에 나타나는지 확인하고, 각 hook이 일치하는 이벤트를 트리거하여 그 효과를 확인합니다. Claude Code는 어떤 hooks가 일치했는지와 어떻게 종료되었는지를 [디버그 로그](/docs/ko/hooks#debug-hooks)에 기록합니다.

485 </Step>

486</Steps>

487 

488<h3 id="what-changes-when-migrating">

489 마이그레이션 시 변경되는 사항

490</h3>

491 

492| 독립 실행형 (`.claude/`) | 플러그인 |

493| :---------------------- | :-------------------------- |

494| 한 프로젝트에서만 사용 가능 | 마켓플레이스를 통해 공유 가능 |

495| `.claude/commands/`의 파일 | `plugin-name/commands/`의 파일 |

496| `settings.json`의 Hooks | `hooks/hooks.json`의 Hooks |

497| 공유하려면 수동으로 복사해야 함 | `/plugin install`로 설치 |

498 

499<Note>

500 마이그레이션 후 중복을 피하기 위해 `.claude/`에서 원본 파일을 제거합니다. 프로젝트 및 사용자 `.claude/agents/` 정의는 같은 이름의 플러그인 agents를 재정의하므로, 원본이 제거되면 플러그인 버전만 적용됩니다. 플러그인 skills는 `/plugin-name:skill-name`으로 네임스페이스되므로, 원본 `/skill-name`과 플러그인 복사본이 모두 사용 가능하게 유지되며 하나가 다른 하나를 재정의하지 않습니다.

501</Note>

502 

503<h2 id="next-steps">

504 다음 단계

505</h2>

506 

507이제 Claude Code의 플러그인 시스템을 이해했으므로 다양한 목표에 대한 제안된 경로는 다음과 같습니다:

508 

509<h3 id="for-plugin-users">

510 플러그인 사용자의 경우

511</h3>

512 

513* [플러그인 발견 및 설치](/docs/ko/discover-plugins): 마켓플레이스를 검색하고 플러그인을 설치합니다

514* [팀 마켓플레이스 구성](/docs/ko/discover-plugins#configure-team-marketplaces): 팀을 위한 저장소 수준 플러그인을 설정합니다

515 

516<h3 id="for-plugin-developers">

517 플러그인 개발자의 경우

518</h3>

519 

520* [evals를 사용하여 플러그인 테스트](/docs/ko/plugin-evals): 플러그인이 변경하는 내용을 측정하고 CI에서 이를 제어합니다

521* [마켓플레이스 만들기 및 배포](/docs/ko/plugin-marketplaces): 플러그인을 패키징하고 공유합니다

522* [플러그인 참조](/docs/ko/plugins-reference): 완전한 기술 사양

523* 특정 플러그인 구성 요소에 대해 더 깊이 있게 살펴보세요:

524 * [Skills](/docs/ko/skills): skill 개발 세부 사항

525 * [Subagents](/docs/ko/sub-agents): agent 구성 및 기능

526 * [Hooks](/docs/ko/hooks): 이벤트 처리 및 자동화

527 * [MCP](/docs/ko/mcp): 외부 도구 통합

plugins-reference.md +0 −1645 deleted

File Deleted View Diff

1> ## Documentation Index

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

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

4 

5# 플러그인 참조

6 

7> 스키마, CLI 명령어, 컴포넌트 사양을 포함한 Claude Code 플러그인 시스템의 완전한 기술 참조입니다.

8 

9<Tip>

10 플러그인을 설치하려고 하시나요? [플러그인 발견 및 설치](/docs/ko/discover-plugins)를 참조하십시오. 플러그인 생성에 대해서는 [플러그인](/docs/ko/plugins)을 참조하십시오. 플러그인 배포에 대해서는 [플러그인 마켓플레이스](/docs/ko/plugin-marketplaces)를 참조하십시오.

11</Tip>

12 

13**플러그인**은 Claude Code를 사용자 정의 기능으로 확장하는 자체 포함된 컴포넌트 디렉토리입니다. 플러그인 컴포넌트에는 skills, agents, hooks, MCP servers, LSP servers, 및 monitors가 포함됩니다.

14 

15<h2 id="plugin-components-reference">

16 플러그인 컴포넌트 참조

17</h2>

18 

19<h3 id="skills">

20 스킬

21</h3>

22 

23플러그인은 Claude Code에 스킬을 추가하여 사용자나 Claude가 호출할 수 있는 `/name` 바로가기를 생성합니다.

24 

25**위치**: 플러그인 루트의 `skills/` 또는 `commands/` 디렉토리, 또는 플러그인 루트의 단일 `SKILL.md` 파일

26 

27**파일 형식**: 스킬은 `SKILL.md`가 있는 디렉토리이고, 명령어는 간단한 마크다운 파일입니다.

28 

29**스킬 구조**:

30 

31```text theme={null}

32skills/

33├── pdf-processor/

34│ ├── SKILL.md

35│ ├── reference.md (선택사항)

36│ └── scripts/ (선택사항)

37└── code-reviewer/

38 └── SKILL.md

39```

40 

41스킬과 명령어는 플러그인이 설치될 때 자동으로 발견됩니다.

42 

43플러그인에 `skills/` 디렉토리가 없고 `skills` 매니페스트 필드가 없으면, 플러그인 루트의 `SKILL.md`가 단일 스킬로 로드됩니다. 프론트매터 `name` 필드를 설정하여 스킬의 호출 이름을 제어합니다. 이 필드가 없으면 Claude Code는 설치 디렉토리 이름으로 폴백됩니다. [캐시에 복사된](#plugin-caching-and-file-resolution) 플러그인의 경우 해당 이름은 매번 업데이트할 때마다 변경되는 버전 문자열입니다. 둘 이상의 스킬을 제공하는 플러그인의 경우 위에 표시된 `skills/` 디렉토리 레이아웃을 사용합니다.

44 

45플러그인 스킬과 명령어에서 `disable-model-invocation`과 같은 부울 프론트매터 필드는 `true` 및 `false` 외에도 `yes`, `no`, `on`, `off`, `1`, `0`을 모든 문자 케이스로 허용합니다. v2.1.218 이전에는 Claude Code가 `true`와 `false`만 인식했습니다.

46 

47전체 세부 정보는 [스킬](/docs/ko/skills)을 참조하십시오.

48 

49<h3 id="agents">

50 에이전트

51</h3>

52 

53플러그인은 Claude가 적절할 때 자동으로 호출할 수 있는 특정 작업을 위한 특화된 서브에이전트를 제공할 수 있습니다.

54 

55**위치**: 플러그인 루트의 `agents/` 디렉토리

56 

57**파일 형식**: 에이전트 기능을 설명하는 마크다운 파일

58 

59**에이전트 구조**:

60 

61```markdown theme={null}

62name: agent-name

63description: 이 에이전트가 전문으로 하는 분야와 Claude가 언제 호출해야 하는지

64model: sonnet

65effort: medium

66maxTurns: 20

67disallowedTools: Write, Edit

68 

69에이전트의 역할, 전문성, 동작을 설명하는 상세한 시스템 프롬프트입니다.

70```

71 

72<h4 id="plugin-agent-frontmatter">

73 플러그인 에이전트 프론트매터

74</h4>

75 

76플러그인 에이전트 파일은 [서브에이전트 파일과 동일한 프론트매터 필드](/docs/ko/sub-agents#supported-frontmatter-fields)를 사용하지만, Claude Code는 플러그인에서 제공되는 에이전트의 경우 일부만 인정합니다:

77 

78* **지원됨**: `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color`, 및 `experimental`. 유일한 유효한 `isolation` 값은 `"worktree"`입니다.

79* **보안상의 이유로 지원되지 않음**: `hooks`, `mcpServers`, 및 `permissionMode`. Claude Code는 플러그인에서 에이전트를 로드할 때 이들을 무시합니다. 이들을 사용하려면 에이전트 파일을 `.claude/agents/` 또는 `~/.claude/agents/`로 복사합니다.

80* **지원되지 않음**: `initialPrompt`.

81 

82플러그인 에이전트 파일을 `agents/`의 하위 폴더에 배치할 수 있습니다. Claude Code는 [이들을 재귀적으로 로드](/docs/ko/sub-agents#choose-the-subagent-scope)하고 플러그인 이름, 각 하위 폴더 이름, 파일 이름을 콜론으로 결합하여 에이전트의 범위가 지정된 이름을 형성합니다. 예를 들어, `my-plugin`이라는 플러그인의 `agents/review/security.md`는 `my-plugin:review:security`로 로드됩니다. 두 가지 설정이 해당 이름을 변경합니다:

83 

84* 프론트매터 `name`: 파일 이름만 바꾸므로, `agents/review/security.md`의 `name: audit`은 `my-plugin:review:audit`으로 로드됩니다.

85* 매니페스트 [`agents`](#component-path-fields) 필드: 여기에 나열한 파일은 하위 폴더 이름 없이 로드되므로, `"agents": "./custom/review/security.md"`는 `my-plugin:security`로 로드됩니다.

86 

87Claude Code는 프론트매터에 `name`이 없거나 파싱되지 않는 경우에도 플러그인 에이전트를 로드합니다:

88 

89* `name` 없음: Claude Code는 파일 이름으로 에이전트를 명명하므로, `my-plugin`이라는 플러그인의 `agents/reviewer.md`는 `my-plugin:reviewer`로 로드됩니다.

90* 파싱되지 않는 프론트매터: Claude Code는 파일 이름으로 에이전트를 명명하고, 설명으로 `Agent from my-plugin plugin`을 사용하며, 파일의 모든 필드를 무시합니다.

91 

92반대로 Claude Code는 프론트매터에 `name`이 없거나 파싱되지 않는 프로젝트, 사용자 또는 관리 에이전트 파일을 건너뜁니다.

93 

94프론트매터가 파싱되지 않는 플러그인의 기본 `agents/` 디렉토리에서 파일을 찾으려면 `claude plugin validate`를 실행합니다. 전달하는 경로는 플러그인에 매니페스트가 있는지 여부에 따라 다르며, 두 예제 모두 `./my-plugin`을 플러그인 디렉토리로 사용합니다:

95 

96* 매니페스트가 있는 플러그인: `claude plugin validate ./my-plugin`

97* 매니페스트가 없는 플러그인: `claude plugin validate ./my-plugin/agents`. Claude Code v2.1.233 이상이 필요합니다.

98 

99에이전트는 플러그인이 활성화되면 `my-plugin:code-reviewer`와 같은 범위가 지정된 이름으로 [@-mention 자동완성](/docs/ko/sub-agents#invoke-subagents-explicitly)에 나타납니다.

100 

101전체 세부 정보는 [서브에이전트](/docs/ko/sub-agents)를 참조하십시오.

102 

103<h3 id="hooks">

104 훅

105</h3>

106 

107플러그인은 Claude Code 이벤트에 자동으로 응답하는 이벤트 핸들러를 제공할 수 있습니다.

108 

109**위치**: 플러그인 루트의 `hooks/hooks.json`, 또는 plugin.json에 인라인

110 

111**형식**: 이벤트 매처와 작업이 있는 JSON 구성

112 

113`hooks/hooks.json`은 JSON Schema URL을 명명하는 최상위 `$schema` 키를 포함할 수 있으며, 이는 편집기 자동완성 및 검증을 위한 것입니다. Claude Code는 로드 시 키를 무시합니다.

114 

115**훅 구성**:

116 

117```json theme={null}

118{

119 "hooks": {

120 "PostToolUse": [

121 {

122 "matcher": "Write|Edit",

123 "hooks": [

124 {

125 "type": "command",

126 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/format-code.sh"

127 }

128 ]

129 }

130 ]

131 }

132}

133```

134 

135플러그인 훅은 [사용자 정의 훅](/docs/ko/hooks)과 동일한 라이프사이클 이벤트에 응답합니다:

136 

137| 이벤트 | 발생 시점 |

138| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- |

139| `SessionStart` | 세션이 시작되거나 재개될 때 |

140| `Setup` | `--init-only`로 Claude Code를 시작하거나, `-p` 모드에서 `--init` 또는 `--maintenance`로 시작할 때. CI 또는 스크립트에서 일회성 준비를 위함 |

141| `UserPromptSubmit` | 프롬프트를 제출할 때, Claude가 처리하기 전 |

142| `UserPromptExpansion` | 사용자가 입력한 명령이 프롬프트로 확장될 때, Claude에 도달하기 전. 확장을 차단할 수 있음 |

143| `PreToolUse` | 도구 호출이 실행되기 전. 차단할 수 있음 |

144| `PermissionRequest` | 도구 호출이 권한 결정이 필요할 때 |

145| `PermissionDenied` | 자동 모드가 도구 호출을 거부할 때, 분류기 판정이 없는 거부 포함. JSON `hookSpecificOutput.retry: true`를 사용하여 모델이 거부된 도구 호출을 재시도할 수 있음을 알립니다. Claude Code는 분류기가 판정을 내리지 않았을 때 `retry`를 무시합니다 |

146| `PostToolUse` | 도구 호출이 성공한 후 |

147| `PostToolUseFailure` | 도구 호출이 실패한 후 |

148| `PostToolBatch` | 병렬 도구 호출의 전체 배치가 해결된 후, 다음 모델 호출 전 |

149| `Notification` | Claude Code가 알림을 보낼 때 |

150| `MessageDisplay` | 어시스턴트 메시지 텍스트가 표시되는 동안 |

151| `SubagentStart` | 서브에이전트가 생성될 때 |

152| `SubagentStop` | 서브에이전트가 완료될 때 |

153| `TaskCreated` | `TaskCreate`를 통해 작업이 생성될 때 |

154| `TaskCompleted` | 작업이 완료로 표시될 때 |

155| `Stop` | Claude가 응답을 마칠 때 |

156| `StopFailure` | API 오류로 인해 턴이 종료될 때 |

157| `TeammateIdle` | [에이전트 팀](/docs/ko/agent-teams) 팀원이 유휴 상태가 될 때 |

158| `InstructionsLoaded` | CLAUDE.md 또는 `.claude/rules/*.md` 파일이 컨텍스트에 로드될 때. 세션 시작 시 및 세션 중에 파일이 지연 로드될 때 발생 |

159| `ConfigChange` | 세션 중에 구성 파일이 변경될 때 |

160| `CwdChanged` | 작업 디렉토리가 변경될 때, 예를 들어 Claude가 `cd` 명령을 실행할 때. direnv와 같은 도구를 사용한 반응형 환경 관리에 유용 |

161| `DirectoryAdded` | 작업 디렉토리가 세션 중에 `/add-dir` 또는 SDK `register_repo_root` 제어 요청을 통해 추가될 때 |

162| `FileChanged` | 감시 중인 파일이 디스크에서 변경될 때. `matcher` 필드는 감시할 파일명을 지정합니다 |

163| `WorktreeCreate` | 워크트리가 `--worktree`, `isolation: "worktree"`를 통해 생성되거나 백그라운드 세션을 위해 생성될 때. 기본 git 동작을 대체합니다 |

164| `WorktreeRemove` | 워크트리가 세션 종료 시, 서브에이전트가 완료될 때, 또는 백그라운드 세션을 삭제할 때 제거될 때 |

165| `PreCompact` | 컨텍스트 압축 전 |

166| `PostCompact` | 컨텍스트 압축이 완료된 후 |

167| `PreModelSwitch` | Claude Code가 사용자 또는 클라이언트가 요청한 모델 전환을 적용하기 전. 전환을 차단할 수 있음 |

168| `PostModelSwitch` | 세션의 모델이 변경된 후, Claude Code가 자체적으로 수행하는 변경(예: 세션을 재개할 때 모델 복원) 포함 |

169| `Elicitation` | MCP 서버가 도구 호출 중에 사용자 입력을 요청할 때 |

170| `ElicitationResult` | 사용자가 MCP 유도에 응답한 후, 응답이 서버로 다시 전송되기 전 |

171| `SessionEnd` | 세션이 종료될 때 |

172 

173**훅 유형**:

174 

175* `command`: 셸 명령어 또는 스크립트 실행

176* `http`: 이벤트 JSON을 URL로 POST 요청으로 전송

177* `mcp_tool`: 구성된 [MCP 서버](/docs/ko/mcp)에서 도구 호출

178* `prompt`: LLM으로 프롬프트 평가 (컨텍스트에 `$ARGUMENTS` 플레이스홀더 사용)

179* `agent`: 복잡한 검증 작업을 위해 도구가 있는 에이전트 검증자 실행

180 

181플러그인의 자체 [번들 MCP 서버](#mcp-servers)를 대상으로 하는 훅은 범위가 지정된 이름을 사용해야 합니다. 도구 매처와 `if` 필드는 범위가 지정된 도구 이름 `mcp__plugin_<plugin-name>_<server-name>__<tool>`을 사용하고, `mcp_tool` 훅의 `server` 필드는 `plugin:<plugin-name>:<server-name>`을 사용합니다. 베어 서버 키에 대해 작성된 매처는 절대 실행되지 않습니다. [MCP 도구 일치](/docs/ko/hooks#match-mcp-tools) 및 [플러그인 제공 MCP 서버](/docs/ko/mcp#plugin-provided-mcp-servers)를 참조하십시오.

182 

183<h3 id="mcp-servers">

184 MCP 서버

185</h3>

186 

187플러그인은 Claude Code를 외부 도구 및 서비스와 연결하기 위해 Model Context Protocol (MCP) 서버를 번들로 제공할 수 있습니다.

188 

189**위치**: 플러그인 루트의 `.mcp.json`, 또는 plugin.json에 인라인

190 

191**형식**: 표준 MCP 서버 구성

192 

193**MCP 서버 구성**:

194 

195```json theme={null}

196{

197 "mcpServers": {

198 "plugin-database": {

199 "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",

200 "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],

201 "env": {

202 "DB_PATH": "${CLAUDE_PLUGIN_ROOT}/data"

203 }

204 },

205 "plugin-api-client": {

206 "command": "npx",

207 "args": ["@company/mcp-server", "--plugin-mode"]

208 }

209 }

210}

211```

212 

213**통합 동작**:

214 

215* 플러그인 MCP 서버는 플러그인이 활성화될 때 자동으로 시작됩니다.

216* 서버는 Claude의 도구 키트에 표준 MCP 도구로 나타납니다.

217* 플러그인 서버는 사용자 MCP 서버와 독립적으로 구성할 수 있습니다.

218* 세션 중에 [`/reload-plugins`](/docs/ko/discover-plugins#apply-plugin-changes-without-restarting)를 실행하면, Claude Code는 구성이 변경되지 않은 서버의 라이브 연결을 유지합니다.

219 

220<h3 id="lsp-servers">

221 LSP 서버

222</h3>

223 

224<Tip>

225 LSP 플러그인을 사용하려고 하시나요? 공식 마켓플레이스에서 설치하십시오: `/plugin` 발견 탭에서 "lsp"를 검색하십시오. 이 섹션은 공식 마켓플레이스에서 다루지 않는 언어에 대한 LSP 플러그인을 만드는 방법을 설명합니다.

226</Tip>

227 

228플러그인은 [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) (LSP) 서버를 제공하여 Claude가 코드베이스에서 작업할 때 [실시간 코드 인텔리전스](/docs/ko/discover-plugins#code-intelligence)를 제공할 수 있습니다.

229 

230**위치**: 플러그인 루트의 `.lsp.json`, 또는 `plugin.json`에 인라인

231 

232**형식**: 언어 서버 이름을 해당 구성에 매핑하는 JSON 구성

233 

234**`.lsp.json` 파일 형식**:

235 

236```json theme={null}

237{

238 "go": {

239 "command": "gopls",

240 "args": ["serve"],

241 "extensionToLanguage": {

242 ".go": "go"

243 }

244 }

245}

246```

247 

248**`plugin.json`에 인라인**:

249 

250```json theme={null}

251{

252 "name": "my-plugin",

253 "lspServers": {

254 "go": {

255 "command": "gopls",

256 "args": ["serve"],

257 "extensionToLanguage": {

258 ".go": "go"

259 }

260 }

261 }

262}

263```

264 

265**필수 필드:**

266 

267| 필드 | 설명 |

268| :-------------------- | :------------------------- |

269| `command` | 실행할 LSP 바이너리 (PATH에 있어야 함) |

270| `extensionToLanguage` | 파일 확장자를 언어 식별자에 매핑 |

271 

272**선택사항 필드:**

273 

274| 필드 | 설명 |

275| :---------------------- | :------------------------------------------------------------------------------------------------------------------ |

276| `args` | LSP 서버의 명령줄 인수 |

277| `transport` | 통신 전송: `stdio` (기본값) 또는 `socket`. Claude Code는 `socket`을 허용하지만 모든 서버를 stdio를 통해 실행하므로 stdout 프로토콜 규칙이 모든 서버에 적용됩니다. |

278| `env` | 서버 시작 시 설정할 환경 변수 |

279| `initializationOptions` | 초기화 중에 서버에 전달되는 옵션 |

280| `settings` | `workspace/didChangeConfiguration`을 통해 전달되는 설정 |

281| `workspaceFolder` | 서버의 작업 공간 폴더 경로 |

282| `startupTimeout` | 서버 시작을 기다릴 최대 시간 (밀리초) |

283| `shutdownTimeout` | 정상 종료를 기다릴 최대 시간 (밀리초). 시간 초과가 경과하면 Claude Code는 서버 프로세스를 종료합니다. 설정하지 않으면 시간 초과가 적용되지 않습니다. |

284| `restartOnCrash` | 서버 충돌 후 다시 시작할지 여부. 기본값은 `true`입니다. 충돌한 서버를 다시 시작하지 않고 중지된 상태로 두려면 `false`로 설정합니다. |

285| `maxRestarts` | 포기하기 전 최대 재시작 시도 횟수 |

286| `diagnostics` | 편집 후 진단을 Claude의 컨텍스트에 푸시할지 여부 (기본값 `true`). 코드 네비게이션은 유지하되 자동 진단 주입을 억제하려면 `false`로 설정합니다. |

287 

288`restartOnCrash` 및 `shutdownTimeout`은 Claude Code v2.1.205 이상이 필요합니다. v2.1.205 이전에는 구성 스키마가 두 옵션을 모두 허용했지만 둘 중 하나를 설정하면 Claude Code가 시작 시 해당 LSP 서버를 완전히 건너뛰었으며, 이유는 `claude --debug` 출력에서만 볼 수 있었습니다.

289 

290**동일한 확장자에 대한 여러 서버**: 둘 이상의 활성화된 LSP 서버가 `extensionToLanguage`에서 동일한 파일 확장자를 선언할 때, 서버가 하나의 플러그인에서 오든 다른 플러그인에서 오든, 먼저 등록된 서버가 해당 확장자의 파일을 처리하고 다른 서버는 시작되지 않습니다. `/plugin` 인터페이스는 활성 서버인 플러그인의 이름을 지정하는 경고를 표시합니다.

291 

292**초기화에 실패한 서버**: Claude Code는 `command` 또는 `extensionToLanguage`가 누락된 것처럼 구성이 유효하지 않은 서버를 건너뛰고, 다른 구성된 서버는 여전히 시작됩니다. `claude --debug`를 실행하여 서버가 건너뛰어진 이유를 확인합니다.

293 

294건너뛴 서버는 파일 확장자를 요청하지 않으므로, 동일한 확장자를 선언하는 다른 유효한 서버(같은 플러그인 또는 다른 플러그인에서)가 여전히 해당 파일을 처리합니다.

295 

296**로그 출력을 stderr로 보내기, stdout이 아님**: Claude Code는 서버의 stdout을 프로토콜 메시지로만 읽고, 메시지 헤더는 최대 64 KiB, 메시지 본문은 최대 32 MiB를 허용합니다. Claude Code는 한계를 초과하거나 stdout에 비프로토콜 출력을 작성하는 서버를 연결 해제하고, 연결 해제를 `restartOnCrash` 및 `maxRestarts`에 대한 충돌로 계산합니다. `--debug`로 실행하면 Claude Code는 원인을 명명하는 오류를 디버그 로그에 작성합니다.

297 

298<Warning>

299 **언어 서버 바이너리를 별도로 설치해야 합니다.** LSP 플러그인은 Claude Code가 언어 서버에 연결하는 방법을 구성하지만, 서버 자체는 포함하지 않습니다. `/plugin` 오류 탭에서 `Executable not found in $PATH`를 보면, 언어에 필요한 바이너리를 설치합니다.

300</Warning>

301 

302**사용 가능한 LSP 플러그인:**

303 

304| 플러그인 | 언어 서버 | 설치 명령어 |

305| :------------------ | :------------------------- | :------------------------------------------------------------------------------ |

306| `pyright-lsp` | Pyright (Python) | `pip install pyright` 또는 `npm install -g pyright` |

307| `typescript-lsp` | TypeScript Language Server | `npm install -g typescript-language-server typescript` |

308| `rust-analyzer-lsp` | rust-analyzer | [rust-analyzer 설치 참조](https://rust-analyzer.github.io/manual.html#installation) |

309 

310먼저 언어 서버를 설치한 다음 마켓플레이스에서 플러그인을 설치합니다.

311 

312<h3 id="monitors">

313 모니터

314</h3>

315 

316플러그인은 Claude Code가 플러그인이 활성화될 때 자동으로 시작하는 백그라운드 모니터를 선언할 수 있습니다. 각 모니터는 세션 동안 셸 명령어를 실행하고 모든 stdout 라인을 Claude에 알림으로 전달하므로, Claude는 자신이 시작하도록 요청받지 않고도 로그 항목, 상태 변경 또는 폴링된 이벤트에 반응할 수 있습니다.

317 

318플러그인 모니터는 [모니터 도구](/docs/ko/tools-reference#monitor-tool)와 동일한 메커니즘을 사용하고 가용성 제약을 공유합니다. 이들은 대화형 CLI 세션에서만 실행되고, [훅](#hooks)과 동일한 신뢰 수준에서 샌드박스 없이 실행되며, 모니터 도구를 사용할 수 없는 호스트에서는 건너뜁니다.

319 

320**위치**: 플러그인 루트의 `monitors/monitors.json`, 또는 plugin.json에 인라인

321 

322**형식**: 모니터 항목의 JSON 배열

323 

324다음 `monitors/monitors.json`은 배포 상태 엔드포인트와 로컬 오류 로그를 감시합니다:

325 

326```json theme={null}

327[

328 {

329 "name": "deploy-status",

330 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/poll-deploy.sh",

331 "description": "배포 상태 변경"

332 },

333 {

334 "name": "error-log",

335 "command": "tail -F ./logs/error.log",

336 "description": "애플리케이션 오류 로그",

337 "when": "on-skill-invoke:debug"

338 }

339]

340```

341 

342모니터를 인라인으로 선언하려면 `plugin.json`에서 `experimental.monitors`를 동일한 배열로 설정합니다. 기본이 아닌 경로에서 로드하려면 `experimental.monitors`를 `"./config/monitors.json"`과 같은 상대 경로 문자열로 설정합니다. 모니터는 [실험적 컴포넌트](#experimental-components)입니다.

343 

344**필수 필드:**

345 

346| 필드 | 설명 |

347| :------------ | :------------------------------------------------------------ |

348| `name` | 플러그인 내에서 고유한 식별자. 플러그인이 다시 로드되거나 스킬이 다시 호출될 때 중복 프로세스를 방지합니다. |

349| `command` | 세션 작업 디렉토리에서 지속적인 백그라운드 프로세스로 실행되는 셸 명령어 |

350| `description` | 감시 중인 항목의 간단한 요약. 작업 패널 및 알림 요약에 표시됩니다. |

351 

352**선택사항 필드:**

353 

354| 필드 | 설명 |

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

356| `when` | 모니터가 시작될 때를 제어합니다. `"always"`는 세션 시작 및 플러그인 다시 로드 시 시작하며 기본값입니다. `"on-skill-invoke:<skill-name>"`은 이 플러그인의 명명된 스킬이 처음 디스패치될 때 시작합니다. |

357 

358`command` 값은 [경로 대체](#environment-variables) `${CLAUDE_PLUGIN_ROOT}`, `${CLAUDE_PLUGIN_DATA}`, `${CLAUDE_PROJECT_DIR}` 및 환경의 모든 `${ENV_VAR}`을 지원합니다. 스크립트가 플러그인의 자체 디렉토리에서 실행되어야 하면 명령어 앞에 `cd "${CLAUDE_PLUGIN_ROOT}" && `를 붙입니다.

359 

360모니터 `command`는 [`${user_config.*}`](#user-configuration) 값을 참조할 수 없습니다. 명령어는 셸을 통해 실행되므로 Claude Code는 값을 대체하는 대신 [오류](/docs/ko/errors#plugin-command-references-user-config)로 모니터를 거부합니다. 모니터 프로세스는 `CLAUDE_PLUGIN_OPTION_<KEY>` 환경 변수를 받지 않으므로, 모니터 스크립트가 자신이 소유한 구성 파일에서 값을 읽도록 합니다.

361 

362세션 중에 플러그인을 비활성화하면, Claude Code는 이미 실행 중인 모니터를 중지하지 않습니다. 세션이 끝날 때 중지됩니다.

363 

364<h3 id="themes">

365 테마

366</h3>

367 

368플러그인은 `/theme`에 기본 제공 사전 설정 및 사용자의 로컬 테마와 함께 나타나는 색상 테마를 제공할 수 있습니다. 테마는 `themes/` 디렉토리의 JSON 파일로, `base` 사전 설정과 색상 토큰의 스파스 `overrides` 맵이 있습니다. 테마는 [실험적 컴포넌트](#experimental-components)입니다.

369 

370```json theme={null}

371{

372 "name": "Dracula",

373 "base": "dark",

374 "overrides": {

375 "claude": "#bd93f9",

376 "error": "#ff5555",

377 "success": "#50fa7b"

378 }

379}

380```

381 

382사용자가 플러그인 테마를 선택하면, Claude Code는 `custom:<plugin-name>:<slug>`을 해당 구성에 저장합니다. 플러그인 테마는 읽기 전용입니다: 사용자가 `/theme`에서 하나를 `Ctrl+E`로 누르면, Claude Code는 이를 `~/.claude/themes/`로 복사하여 사용자가 복사본을 편집할 수 있도록 합니다.

383 

384***

385 

386<h2 id="plugin-installation-scopes">

387 플러그인 설치 범위

388</h2>

389 

390플러그인을 설치할 때 플러그인이 사용 가능한 위치와 다른 사용자가 사용할 수 있는지를 결정하는 **범위**를 선택합니다:

391 

392| 범위 | 설정 파일 | 사용 사례 |

393| :-------- | :------------------------------ | :--------------------------------------------- |

394| `user` | `~/.claude/settings.json` | 모든 프로젝트에서 사용 가능한 개인 플러그인(기본값) |

395| `project` | `.claude/settings.json` | 버전 관리를 통해 공유되는 팀 플러그인 |

396| `local` | `.claude/settings.local.json` | 프로젝트별 플러그인, Claude Code가 설정을 저장할 때 gitignored됨 |

397| `managed` | [관리되는 설정](/docs/ko/managed-settings) | 관리되는 플러그인(읽기 전용, 업데이트만 가능) |

398 

399플러그인은 다른 Claude Code 구성과 동일한 범위 시스템을 사용합니다. 설치 지침 및 범위 플래그는 [플러그인 설치](/docs/ko/discover-plugins#install-plugins)를 참조하십시오. 범위에 대한 완전한 설명은 [구성 범위](/docs/ko/settings#where-settings-live)를 참조하십시오.

400 

401***

402 

403<h2 id="skills-directory-plugins">

404 스킬 디렉토리 플러그인

405</h2>

406 

407스킬 디렉토리 아래의 모든 폴더가 `.claude-plugin/plugin.json` 매니페스트를 포함하면 다음 세션에서 `<name>@skills-dir`이라는 이름의 플러그인으로 로드되며, 마켓플레이스나 설치 단계가 없습니다. [`plugin init`](#plugin-init)으로 스캐폴드를 생성할 수 있습니다. 복사된 마켓플레이스 설치와 달리, 플러그인은 플러그인 캐시로 복사되지 않고 제자리에서 발견됩니다.

408 

409스킬 디렉토리 트리는 세 가지 서로 다른 것을 지원합니다:

410 

411| 보유한 것 | 설명 |

412| :-------------------------------------------- | :--------------------------------------------------- |

413| 매니페스트가 없는 `<skills-dir>/foo/SKILL.md` | `foo`라는 이름의 일반 [스킬](/docs/ko/skills) |

414| `<skills-dir>/foo/.claude-plugin/plugin.json` | 자체 스킬, 에이전트, 훅 등을 번들로 제공할 수 있는 플러그인 `foo@skills-dir` |

415| `<plugin>/skills/bar/SKILL.md` | 플러그인 내에 패키징된 스킬 `bar` |

416 

417<h3 id="choose-where-the-plugin-loads-from">

418 플러그인이 로드되는 위치 선택

419</h3>

420 

421| 스킬 디렉토리 | 범위 | 로드 |

422| :---------------------- | :--- | :------------------------------------------------------------------------------------------ |

423| `~/.claude/skills/` | 개인 | 위치가 사용자 것이므로 모든 프로젝트에서 로드 |

424| `<cwd>/.claude/skills/` | 프로젝트 | 해당 폴더에 대한 워크스페이스 [신뢰 대화상자](/docs/ko/permissions#what-runs-before-you-trust-a-folder)를 수락한 후에만 로드 |

425 

426프로젝트 범위 플러그인은 저장소에 체크인되며 이를 복제하는 모든 협력자에게 도달합니다. 해당 콘텐츠가 사용자가 아닌 저장소에서 오기 때문에, `.claude/settings.json`의 프로젝트 허용 규칙을 관리하는 것과 동일한 신뢰 게이트 이후에만 로드되므로, 상위 폴더를 신뢰하거나 `-p`로 실행하는 것만으로는 충분하지 않으며, 코드를 실행하는 구성 요소는 추가로 제한됩니다:

427 

428* 선언하는 MCP 서버는 프로젝트 `.mcp.json`과 동일한 [서버별 승인](/docs/ko/mcp)을 거칩니다

429* LSP 서버는 워크스페이스를 신뢰한 후에만 시작됩니다

430* [백그라운드 모니터](#monitors)는 로드되지 않습니다

431 

432개인 범위 플러그인에는 이러한 제한이 없습니다.

433 

434<Warning>

435 프로젝트 범위 `@skills-dir` 플러그인은 세션의 [기본 작업 디렉토리](/docs/ko/permissions#working-directories)의 `.claude/skills/`에서만 로드됩니다. 일반 스킬 및 명령처럼 [저장소 루트까지 올라가지](/docs/ko/skills#discovery-from-parent-and-nested-directories) 않으므로, 하위 디렉토리에서 시작하면 저장소 루트에 있는 플러그인을 놓칩니다. 저장소 루트에서 시작하거나, [v2.1.246 이상에서 `/cd`로 세션을 이동](/docs/ko/permissions#move-the-session-to-another-directory)하십시오.

436</Warning>

437 

438<h3 id="edit-reload-and-disable-a-skills-directory-plugin">

439 스킬 디렉토리 플러그인 편집, 다시 로드 및 비활성화

440</h3>

441 

442스킬의 `SKILL.md`에 대한 변경 사항은 현재 세션에서 즉시 적용됩니다. `hooks/`, `.mcp.json`, `agents/`, `output-styles/` 등 플러그인의 다른 구성 요소에 대한 변경 사항은 적용되지 않습니다. `/reload-plugins`를 실행하거나 Claude Code를 다시 시작하여 이를 적용하십시오. [라이브 변경 감지](/docs/ko/skills#live-change-detection)를 참조하십시오.

443 

444스킬 디렉토리 플러그인 로드를 중지하려면 해당 폴더를 삭제하거나 이름으로 비활성화하십시오. 마켓플레이스에서 아무것도 설치되지 않았으므로 `uninstall` 단계가 없습니다.

445 

446```bash theme={null}

447claude plugin disable my-tool@skills-dir

448```

449 

450***

451 

452<h2 id="synced-plugins">

453 claude.ai에서 동기화된 플러그인

454</h2>

455 

456Claude Code는 조직이 구성원을 위해 활성화하는 플러그인을 포함하여 claude.ai 계정에 대해 활성화된 플러그인을 마켓플레이스에서 설치하는 플러그인과 함께 로드합니다. 각 플러그인을 `~/.claude/plugins/synced/`로 다운로드하고 마켓플레이스 및 설치 기록 없이 `<name>@synced`로 로드합니다. 동기화된 플러그인은 설치한 마켓플레이스 플러그인과 동일한 신뢰도로 실행됩니다. 해당 skills, agents, hooks, MCP servers, LSP servers가 모두 로드됩니다.

457 

458Claude Code가 이러한 플러그인을 동기화하는 위치는 세션에 따라 다릅니다:

459 

460* [Cowork](https://claude.com/product/cowork) 및 [클라우드 세션](/docs/ko/cloud-environments#what-carries-over-from-your-setup)에서 Claude Code는 세션이 시작될 때 세션의 자체 환경으로 플러그인을 다운로드합니다. v2.1.239 이전에는 Claude Code가 이러한 플러그인을 `<name>@inline`으로 로드했으며, 이는 `--plugin-dir` 플러그인이 사용하는 ID입니다.

461* claude.ai 계정으로 로그인하는 터미널 세션에서 Claude Code는 시작할 때마다 계정을 한 번 확인한 다음 새로운 플러그인과 업데이트된 플러그인을 다운로드하고 사용자 또는 조직이 비활성화한 플러그인을 모두 백그라운드에서 제거합니다. 터미널 세션에서의 동기화에는 Claude Code v2.1.273 이상이 필요합니다.

462 

463시작 확인은 백그라운드에서 실행되므로 세션이 시작된 후에 완료될 수 있습니다. 대화형 세션에서 동기화된 플러그인을 추가, 업데이트 또는 제거할 때 Claude Code는 `Plugins changed. Run /reload-plugins to activate.`를 표시합니다. [`/reload-plugins`](/docs/ko/discover-plugins#apply-plugin-changes-without-restarting)를 실행하여 해당 세션에서 변경 사항을 로드하거나 다음에 Claude Code를 시작할 때까지 기다립니다. claude.ai에서 세션이 실행 중인 동안 플러그인을 활성화하면 Claude Code는 다음에 시작할 때 플러그인을 다운로드합니다.

464 

465터미널 세션의 플러그인 동기화는 [claude.ai에서 동기화된 skills](/docs/ko/skills#where-synced-skills-load)와 동일한 로그인 조건에서 실행됩니다. 또한 Claude Code가 계정의 플러그인에 액세스할 수 있도록 하는 로그인이 필요합니다.

466 

467이전 버전의 Claude Code에서의 로그인은 Claude Code가 백그라운드에서 해당 로그인을 갱신할 때(몇 시간 이내) 또는 `/login`을 다시 실행하면 즉시 플러그인 액세스를 선택합니다. 플러그인 동기화는 그 이후 Claude Code를 시작할 때 시작됩니다.

468 

469`claude plugin list`는 `Synced from claude.ai` 제목 아래에 동기화된 플러그인을 표시하고, `/plugin` **Installed** 탭은 `synced`를 소스로 하여 나열합니다. `claude plugin list`가 출력하는 `<name>@synced` ID로 동기화된 플러그인을 관리합니다:

470 

471* **하나 끄기**: `claude plugin disable <name>@synced`를 실행하거나 `/plugin` **Installed** 탭에서 비활성화합니다. Claude Code는 선택을 사용자 수준 [`enabledPlugins`](/docs/ko/settings-reference#enabledplugins)에 `"<name>@synced": false`로 저장합니다. 플러그인을 다시 켜려면 `claude plugin enable <name>@synced`를 실행합니다.

472* **모든 곳에서 하나 제외하기**: [claude.ai 계정에서 플러그인을 끕니다](/docs/ko/desktop#extend-claude-code). 모든 환경에서 하나의 프로젝트에서 플러그인을 제외하려면 해당 프로젝트의 커밋된 `.claude/settings.json`의 `enabledPlugins` 아래에 `"<name>@synced": false`를 설정합니다.

473* **claude.ai에서 플러그인 자체 관리**: `claude plugin install`, `update`, `uninstall`은 동기화된 플러그인에 적용되지 않습니다. Claude Code는 다음 동기화에서 플러그인의 업데이트를 다운로드합니다. 플러그인을 제거하려면 claude.ai 계정에서 플러그인을 끄고 Claude Code는 다음 동기화에서 플러그인을 제거합니다.

474* **머신에서 동기화 중지**: 사용자 설정에서 [`syncClaudeAiPlugins`](/docs/ko/settings-reference#syncclaudeaiplugins)를 `false`로 설정합니다. Claude Code는 다운로드를 중지하고 다음에 시작할 때 이미 동기화한 플러그인을 `~/.claude/plugins/.trash/`로 이동하고 더 이상 로드하지 않습니다. 조직은 [관리 설정](/docs/ko/managed-settings)에서 동일한 키를 설정하거나 claude.ai에서 Skills를 끌 수 있으며, 이는 플러그인 동기화도 중지합니다.

475 

476조직이 claude.ai에서 필수로 표시한 플러그인은 끌 수 없습니다. Claude Code는 이전에 비활성화했더라도 플러그인을 로드하고, `claude plugin disable`은 `Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.`로 거부합니다. `claude plugin list`에서 이러한 플러그인은 `required by your org`로 표시됩니다.

477 

478다른 소스의 활성화된 플러그인이 동기화된 플러그인의 이름과 일치하면 Claude Code는 해당 플러그인을 로드하고 동기화된 복사본을 로드되지 않은 것으로 보고합니다. 다른 소스에는 마켓플레이스 설치, [skills-directory 플러그인](#skills-directory-plugins), `--plugin-dir` 플러그인, Claude Code에 내장된 플러그인이 포함됩니다. claude.ai 복사본을 대신 사용하려면 자신의 복사본을 비활성화합니다. v2.1.239 이전에는 Claude Code가 같은 이름의 마켓플레이스 설치 대신 동기화된 복사본을 로드했습니다.

479 

480***

481 

482<h2 id="plugin-manifest-schema">

483 플러그인 매니페스트 스키마

484</h2>

485 

486`.claude-plugin/plugin.json` 파일은 플러그인의 메타데이터와 구성을 정의합니다.

487 

488매니페스트는 선택 사항입니다. 생략하면 Claude Code는 [기본 위치](#file-locations-reference)에서 구성 요소를 자동으로 검색하고 디렉터리 이름에서 플러그인 이름을 파생합니다. 메타데이터를 제공하거나 사용자 정의 구성 요소 경로가 필요한 경우 매니페스트를 사용합니다.

489 

490<h3 id="complete-schema">

491 완전한 스키마

492</h3>

493 

494```json theme={null}

495{

496 "name": "plugin-name",

497 "displayName": "Plugin Name",

498 "version": "1.2.0",

499 "description": "Brief plugin description",

500 "author": {

501 "name": "Author Name",

502 "email": "author@example.com",

503 "url": "https://github.com/author"

504 },

505 "homepage": "https://docs.example.com/plugin",

506 "repository": "https://github.com/author/plugin",

507 "license": "MIT",

508 "keywords": ["keyword1", "keyword2"],

509 "metadata": { "catalogId": "cat-123", "tier": "pro" },

510 "skills": "./custom/skills/",

511 "commands": ["./custom/commands/special.md"],

512 "agents": ["./custom/agents/reviewer.md"],

513 "hooks": "./config/hooks.json",

514 "mcpServers": "./mcp-config.json",

515 "outputStyles": "./styles/",

516 "lspServers": "./.lsp.json",

517 "experimental": {

518 "themes": "./themes/",

519 "monitors": "./monitors.json",

520 "evals": "quality/evals"

521 },

522 "dependencies": [

523 "helper-lib",

524 { "name": "secrets-vault", "version": "~2.1.0" }

525 ]

526}

527```

528 

529<h3 id="required-fields">

530 필수 필드

531</h3>

532 

533매니페스트를 포함하는 경우 `name`이 유일한 필수 필드입니다.

534 

535| 필드 | 유형 | 설명 | 예시 |

536| :----- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------- |

537| `name` | string | 공백, 제어 문자 또는 양방향 형식 문자가 없는 케밥 케이스의 고유 식별자입니다. [마켓플레이스 항목](/docs/ko/plugin-marketplaces#plugin-entries)이 플러그인을 다른 이름으로 나열할 때 마켓플레이스 항목 이름이 `enabledPlugins` 키와 `/plugin`에서 사용하는 이름입니다 | `"deployment-tools"` |

538 

539이 이름은 구성 요소 네임스페이싱에 사용됩니다. 예를 들어 UI에서 이름이 `plugin-dev`인 플러그인의 에이전트 `agent-creator`는 `plugin-dev:agent-creator`로 표시됩니다.

540 

541<h3 id="unrecognized-fields">

542 인식되지 않는 필드

543</h3>

544 

545Claude Code는 인식하지 못하는 최상위 필드를 무시합니다. 다른 에코시스템의 메타데이터를 `plugin.json`에 유지할 수 있으며 플러그인은 여전히 로드됩니다. 이를 통해 VS Code 또는 Cursor 확장 매니페스트, npm `package.json` 또는 MCPB/DXT 번들 매니페스트로도 작동하는 하나의 매니페스트를 유지하는 것이 실용적입니다.

546 

547`claude plugin validate`는 인식되지 않는 필드를 오류가 아닌 경고로 보고합니다. 필드가 인식된 필드와 한두 글자 차이나면 경고에서 의도된 이름을 제안합니다. 인식되지 않는 필드 경고만 있는 플러그인은 여전히 검증을 통과하고 런타임에 로드됩니다.

548 

549Claude Code가 값의 유형이 잘못된 인식된 필드를 처리하는 방식은 필드에 따라 다릅니다.

550 

551* **대부분의 필드**: 플러그인이 로드되지 않습니다. 예를 들어 `keywords` 값이 배열 대신 문자열인 경우 로드 오류이며 `claude plugin validate`는 이를 오류로 보고합니다.

552* **`experimental` 및 `metadata`**: Claude Code는 비객체 값을 무시하고 `claude plugin validate`는 경고를 보고합니다.

553 

554`--strict`를 전달하여 경고를 오류로 처리합니다. CI에서 이를 사용하여 게시하기 전에 필드 이름 오타나 다른 도구의 매니페스트에서 남은 필드를 포착합니다. 플러그인은 런타임에 로드되지만 말입니다.

555 

556```bash theme={null}

557claude plugin validate ./my-plugin --strict

558```

559 

560<h3 id="metadata-fields">

561 메타데이터 필드

562</h3>

563 

564| 필드 | 유형 | 설명 | 예시 |

565| :--------------- | :------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |

566| `$schema` | string | 편집기 자동 완성 및 검증을 위한 JSON Schema URL입니다. Claude Code는 로드 시간에 이 필드를 무시합니다. | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |

567| `displayName` | string | `/plugin` 선택기 및 기타 UI 표면에 표시되는 사람이 읽을 수 있는 이름입니다. 마켓플레이스 설치 플러그인의 경우 [마켓플레이스 항목](/docs/ko/plugin-marketplaces#optional-plugin-fields)의 `displayName`이 이 값보다 우선합니다. 두 위치 모두에서 표시 이름이 설정되지 않으면 사용자는 `name`을 봅니다. `name`과 달리 공백과 모든 대소문자를 포함할 수 있습니다. 네임스페이싱이나 조회에 사용되지 않습니다. | `"Deployment Tools"` |

568| `version` | string | 선택 사항입니다. 의미 있는 버전입니다. 이를 설정하면 플러그인이 해당 버전 문자열로 고정되므로 사용자는 이를 범프할 때만 업데이트를 받습니다. [`command` 소스](/docs/ko/plugin-marketplaces#command-sources) 또는 [로드된 플러그인](#plugin-caching-and-file-resolution) 제외; [버전 관리](#version-management)를 참조합니다. 마켓플레이스 항목에도 설정된 경우 `plugin.json`이 우선합니다. 생략하면 버전은 [버전 관리](#version-management)의 다음 소스에서 옵니다. | `"2.1.0"` |

569| `description` | string | 플러그인 목적에 대한 간단한 설명 | `"Deployment automation tools"` |

570| `author` | object | 작성자 정보 | `{"name": "Dev Team", "email": "dev@company.com"}` |

571| `homepage` | string | 문서 URL | `"https://docs.example.com"` |

572| `repository` | string | 소스 코드 URL | `"https://github.com/user/plugin"` |

573| `license` | string | 라이선스 식별자 | `"MIT"`, `"Apache-2.0"` |

574| `keywords` | array | 검색 태그 | `["deployment", "ci-cd"]` |

575| `metadata` | object | 자격 또는 카탈로그 필드와 같은 자신의 데이터를 위한 자유 형식 객체입니다. Claude Code는 이를 읽지 않으므로 값이 플러그인 동작에 영향을 주지 않습니다. Claude Code는 비객체 값을 무시하고 `claude plugin validate`는 이를 경고로 보고합니다. v2.1.222 이전에는 Claude Code가 키를 [인식되지 않는 필드](#unrecognized-fields)로 처리했습니다. | `{"catalogId": "cat-123"}` |

576| `defaultEnabled` | boolean | 사용자가 설정하지 않았을 때 플러그인이 활성화된 상태로 시작되는지 여부입니다. 기본값은 `true`입니다. [기본 활성화](#default-enablement)를 참조합니다. | `false` |

577 

578<h3 id="default-enablement">

579 기본 활성화

580</h3>

581 

582`plugin.json`에서 `defaultEnabled: false`를 설정하여 비활성화된 상태로 설치되는 플러그인을 배포합니다. 사용자는 `claude plugin enable <plugin>` 또는 `/plugin` 인터페이스로 이를 켭니다. 외부 서비스에 연결하는 것과 같이 사용자가 옵트인해야 하는 비용이나 범위를 추가하는 플러그인에 이를 사용합니다.

583 

584`defaultEnabled`는 다른 것이 플러그인의 상태를 결정하지 않았을 때의 폴백입니다. 사용자의 설정과 종속성 요구 사항이 이를 우선합니다.

585 

586* **사용자의 설정**: 모든 설정 범위에서 플러그인의 `enabledPlugins` 항목입니다. 작성되면 플러그인 업데이트 및 재설치 전체에서 지속되므로 나중 릴리스에서 `defaultEnabled`를 변경해도 기존 사용자를 뒤집지 않습니다.

587* **종속성 요구 사항**: 플러그인이 활성화된 다른 플러그인에 의해 필요할 때 Claude Code는 설치 또는 활성화 시간에 이에 대해 `true`를 작성합니다. 이는 명시적 설정을 제공하므로 자신의 기본값은 더 이상 적용되지 않습니다. [종속성이 있는 플러그인 활성화 또는 비활성화](/docs/ko/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies)를 참조합니다.

588 

589동일한 필드가 플러그인의 마켓플레이스 항목에 나타날 수 있으며, 여기서 `plugin.json`의 값보다 우선합니다. [선택적 플러그인 필드](/docs/ko/plugin-marketplaces#optional-plugin-fields)를 참조합니다.

590 

591<h3 id="component-path-fields">

592 구성 요소 경로 필드

593</h3>

594 

595| 필드 | 유형 | 설명 | 예시 |

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

597| `skills` | string\|array | `<name>/SKILL.md`를 포함하는 사용자 정의 스킬 디렉터리입니다. 기본 `skills/` 스캔에 추가됩니다. 마켓플레이스 루트 예외에 대해 [경로 동작 규칙](#path-behavior-rules)을 참조합니다 | `"./custom/skills/"` |

598| `commands` | string\|array | 사용자 정의 플랫 `.md` 스킬 파일 또는 디렉터리입니다(기본 `commands/` 대체) | `"./custom/cmd.md"` 또는 `["./cmd1.md"]` |

599| `agents` | string\|array | 사용자 정의 에이전트 파일입니다(기본 `agents/` 대체) | `"./custom/agents/reviewer.md"` |

600| `workflows` | string\|array | 사용자 정의 [워크플로우](/docs/ko/workflows) 스크립트 파일 또는 디렉터리입니다(기본 `workflows/` 대체) | `"./custom/workflows/"` |

601| `hooks` | string\|array\|object | 훅 구성 경로 또는 인라인 구성 | `"./my-extra-hooks.json"` |

602| `mcpServers` | string\|array\|object | MCP 구성 경로 또는 인라인 구성 | `"./my-extra-mcp-config.json"` |

603| `outputStyles` | string\|array | 사용자 정의 출력 스타일 파일/디렉터리입니다(기본 `output-styles/` 대체) | `"./styles/"` |

604| `lspServers` | string\|array\|object | 코드 인텔리전스(정의로 이동, 참조 찾기 등)를 위한 [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) 구성 | `"./.lsp.json"` |

605| `experimental.themes` | string\|array | 색상 테마 파일/디렉터리입니다(기본 `themes/` 대체). [테마](#themes)를 참조합니다 | `"./themes/"` |

606| `experimental.monitors` | string\|array | 플러그인이 활성화될 때 자동으로 시작되는 백그라운드 [Monitor](/docs/ko/tools-reference#monitor-tool) 구성입니다. [모니터](#monitors)를 참조합니다 | `"./monitors.json"` |

607| `experimental.evals` | string\|array | 플러그인의 [eval 사례](/docs/ko/plugin-evals#use-a-different-eval-directory)를 보유하는 플러그인 루트 아래의 디렉터리입니다. 기본값이 `evals/`가 아닐 때입니다. `claude plugin eval --eval-dir`이 이를 재정의합니다 | `"quality/evals"` |

608| `userConfig` | object | 활성화 시간에 사용자에게 프롬프트되는 사용자 구성 가능한 값입니다. [사용자 구성](#user-configuration)을 참조합니다 | |

609| `channels` | array | 메시지 주입을 위한 채널 선언입니다(Telegram, Slack, Discord 스타일). [채널](#channels)을 참조합니다 | |

610| `dependencies` | array | 이 플러그인이 필요로 하는 다른 플러그인입니다. 선택적으로 semver 버전 제약 조건이 있습니다. [플러그인 종속성 버전 제약](/docs/ko/plugin-dependencies)을 참조합니다 | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |

611 

612<h3 id="experimental-components">

613 실험적 구성 요소

614</h3>

615 

616`experimental` 키 아래의 구성 요소인 `themes` 및 `monitors`는 안정화되는 동안 릴리스 간에 변경될 수 있는 매니페스트 스키마를 가집니다. 이를 선언하는 위치는 별도의 마이그레이션입니다. 최상위 수준은 여전히 작동하고 `claude plugin validate`는 경고하며 향후 릴리스는 `experimental.*`를 요구할 것입니다.

617 

618<h3 id="user-configuration">

619 사용자 구성

620</h3>

621 

622`userConfig` 필드는 플러그인이 활성화될 때 Claude Code가 사용자에게 프롬프트하는 값을 선언합니다. 사용자가 `settings.json`을 수동으로 편집하도록 요구하는 대신 이를 사용합니다.

623 

624```json theme={null}

625{

626 "userConfig": {

627 "api_endpoint": {

628 "type": "string",

629 "title": "API endpoint",

630 "description": "Your team's API endpoint"

631 },

632 "api_token": {

633 "type": "string",

634 "title": "API token",

635 "description": "API authentication token",

636 "sensitive": true

637 }

638 }

639}

640```

641 

642키는 유효한 식별자여야 합니다. 각 옵션은 다음 필드를 지원합니다.

643 

644| 필드 | 필수 | 설명 |

645| :------------ | :-- | :---------------------------------------------------------------------------------------------------------------------------------------------- |

646| `type` | 예 | `string`, `number`, `boolean`, `directory` 또는 `file` 중 하나 |

647| `title` | 예 | 구성 대화 상자에 표시되는 레이블 |

648| `description` | 예 | 필드 아래에 표시되는 도움말 텍스트 |

649| `sensitive` | 아니오 | `true`인 경우 입력을 마스크하고 `settings.json` 대신 보안 저장소에 값을 저장합니다 |

650| `required` | 아니오 | `true`인 경우 필드가 비어 있을 때 검증이 실패합니다 |

651| `default` | 아니오 | 사용자가 아무것도 제공하지 않을 때 사용되는 값 |

652| `options` | 아니오 | `string` 유형의 경우 필드가 허용하는 값입니다. `/config`에서 선택기로 표시됩니다. [필드를 고정 옵션으로 제한](#limit-a-field-to-fixed-options)을 참조합니다. Claude Code v2.1.271 이상이 필요합니다 |

653| `multiple` | 아니오 | `string` 유형의 경우 문자열 배열을 허용합니다 |

654| `min` / `max` | 아니오 | `number` 유형의 경계 |

655 

656`sensitive` 필드 및 `multiple` 목록을 제외하고 각 활성화된 플러그인의 각 필드는 `/config` 패널에 행으로도 나타납니다. 행에는 Claude Code v2.1.269 이상이 필요합니다.

657 

658각 값은 MCP 및 LSP 서버 구성과 훅 명령에서 `${user_config.KEY}`로 대체할 수 있습니다. 민감하지 않은 값은 스킬 및 에이전트 콘텐츠에서도 대체할 수 있습니다. 모든 값은 훅 프로세스로 `CLAUDE_PLUGIN_OPTION_<KEY>` 환경 변수로 내보내집니다. 여기서 `<KEY>`는 대문자로 된 옵션 키입니다.

659 

660셸에서 실행되는 필드는 `${user_config.*}`를 거부합니다. 구성된 값을 셸 명령에 대체하면 셸이 해당 값이 포함하는 모든 것을 실행할 수 있으므로 구성 요소는 [오류](/docs/ko/errors#plugin-command-references-user-config)로 실패합니다. 각 거부된 필드에는 값을 전달하는 대체 방법이 있습니다.

661 

662| 거부된 필드 | 값을 전달하는 방법 |

663| :--------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------- |

664| 셸 형식 훅 명령 | [exec 형식](/docs/ko/hooks#exec-form-and-shell-form)을 `args`와 함께 사용하거나 훅의 환경에서 `CLAUDE_PLUGIN_OPTION_<KEY>`를 읽습니다 |

665| [Monitor](#monitors) 명령 | 스크립트의 구성 파일에서 값을 읽습니다 |

666| MCP [`headersHelper`](/docs/ko/mcp#use-dynamic-headers-for-custom-authentication) | 스크립트의 구성 파일에서 값을 읽습니다 |

667 

668v2.1.207 이전에는 이러한 필드가 `${user_config.KEY}` 값을 대체했습니다. 이에 의존하는 플러그인을 업데이트합니다.

669 

670민감하지 않은 값은 사용자 `settings.json`의 [`pluginConfigs`](/docs/ko/settings-reference#pluginconfigs) 키 아래 `pluginConfigs[<plugin-id>].options`로 저장됩니다.

671 

672macOS에서 Claude Code는 민감한 값을 macOS Keychain에 저장하고 Keychain이 쓰기를 거부할 때 `~/.claude/.credentials.json`으로 폴백합니다. 지원되는 키체인이 없는 플랫폼에서는 `~/.claude/.credentials.json`에 저장합니다. 키체인 저장소는 OAuth 토큰과 공유되며 약 2 KB의 총 제한이 있으므로 민감한 값을 작게 유지합니다.

673 

674Claude Code는 세 가지 설정 소스에서만 모든 `pluginConfigs` 값을 읽습니다.

675 

676* **사용자 설정**: `~/.claude/settings.json`, 활성화 시간 프롬프트가 작성하는 파일

677* **`--settings`**: CLI 플래그 또는 SDK 인라인 설정

678* **관리되는 설정**: [조직 제어 정책](/docs/ko/permissions#managed-settings)

679 

680둘 이상의 소스가 동일한 키를 설정할 때 관리되는 설정이 가장 우선하고, 그다음 `--settings`, 그다음 사용자 설정 순입니다. 이 목록에서 제거할 수 있는 유일한 소스는 사용자 설정입니다. `user` 없이 [`--setting-sources`](/docs/ko/cli-reference#cli-flags)를 전달하면 Claude Code는 이를 건너뜁니다. 관리되는 설정과 `--settings`는 무엇을 전달하든 그대로 유지됩니다. SDK의 [`settingSources`](/docs/ko/agent-sdk/claude-code-features#what-settingsources-does-not-control) 옵션은 동일한 목록을 설정합니다.

681 

682프로젝트의 `.claude/settings.json` 또는 `.claude/settings.local.json`의 항목은 무시됩니다. 두 파일 모두 작업 공간에 있으므로 복제된 저장소가 거기에 값을 제공할 수 있으며 이러한 값은 플러그인 훅 명령, MCP 서버 구성, LSP 명령 및 모니터 명령으로 흐릅니다. v2.1.207 이전에는 이러한 항목이 읽혔습니다. 제한은 `pluginConfigs`에만 해당됩니다. [`enabledPlugins`](/docs/ko/settings-reference#enabledplugins)는 여전히 프로젝트 및 로컬 설정을 준수합니다.

683 

684<h4 id="limit-a-field-to-fixed-options">

685 필드를 고정 옵션으로 제한

686</h4>

687 

688`userConfig` 필드에 `options`를 설정하여 사용자가 고정 목록에서 값을 선택하도록 합니다.

689 

690`tone` 필드를 세 가지 옵션으로 제한하려면 `options`에 나열하고 `default`를 그 중 하나로 설정합니다.

691 

692```json theme={null}

693{

694 "userConfig": {

695 "tone": {

696 "type": "string",

697 "title": "Tone",

698 "description": "Voice for generated replies",

699 "options": ["neutral", "warm", "formal"],

700 "default": "neutral"

701 }

702 }

703}

704```

705 

706모든 필드에 `options`를 선언하면 Claude Code v2.1.271 이전 버전의 사용자는 플러그인을 로드할 수 없습니다.

707 

708필드에 `options`를 설정할 때 다음 규칙을 따릅니다.

709 

710* `type`을 `string`으로 설정합니다

711* `multiple` 또는 `sensitive`을 `true`로 설정하지 않습니다

712* `default`를 옵션 중 하나로 설정합니다

713* `default`를 설정하지 않으면 `required`를 `true`로 설정합니다

714* 최소 하나의 옵션을 나열하고 각각 1\~64자 길이입니다

715* 옵션을 공백으로 시작하거나 끝내지 않습니다

716* 옵션에서 제어 문자, 보이지 않는 문자, 텍스트 방향을 변경하는 문자 또는 일반 공백 이외의 공백을 사용하지 않습니다

717* 다른 대소문자로 된 경우에도 동일한 옵션을 두 번 나열하지 않습니다

718 

719이러한 규칙 중 하나라도 위반하면 플러그인이 로드되지 않습니다. `claude plugin validate`를 실행하여 어느 필드가 어느 규칙을 위반하는지 확인합니다.

720 

721<h3 id="channels">

722 채널

723</h3>

724 

725`channels` 필드를 사용하면 플러그인이 하나 이상의 메시지 채널을 선언하여 대화에 콘텐츠를 주입할 수 있습니다. 각 채널은 플러그인이 제공하는 MCP 서버에 바인딩됩니다.

726 

727```json theme={null}

728{

729 "channels": [

730 {

731 "server": "telegram",

732 "userConfig": {

733 "bot_token": {

734 "type": "string",

735 "title": "Bot token",

736 "description": "Telegram bot token",

737 "sensitive": true

738 },

739 "owner_id": {

740 "type": "string",

741 "title": "Owner ID",

742 "description": "Your Telegram user ID"

743 }

744 }

745 }

746 ]

747}

748```

749 

750`server` 필드는 필수이며 플러그인의 `mcpServers`의 키와 일치해야 합니다. 선택적 채널별 `userConfig`는 최상위 필드와 동일한 스키마를 사용하여 플러그인이 플러그인이 활성화될 때 봇 토큰 또는 소유자 ID를 프롬프트할 수 있습니다.

751 

752<h3 id="path-behavior-rules">

753 경로 동작 규칙

754</h3>

755 

756사용자 정의 경로가 플러그인의 기본 디렉터리를 대체하는지 확장하는지는 필드에 따라 다릅니다.

757 

758* **기본값 대체**: `commands`, `agents`, `workflows`, `outputStyles`, `experimental.themes`, `experimental.monitors`. 예를 들어 매니페스트가 `commands`를 지정할 때 기본 `commands/` 디렉터리는 스캔되지 않습니다. 기본값을 유지하고 더 추가하려면 명시적으로 나열합니다. `"commands": ["./commands/", "./extras/"]`

759* **기본값에 추가**: `skills`. 기본 `skills/` 디렉터리는 항상 스캔되고 `skills`에 나열된 디렉터리는 함께 로드됩니다. 예외: [소스가 마켓플레이스 루트로 확인되는 마켓플레이스 항목](/docs/ko/plugin-marketplaces#advanced-plugin-entries)의 경우 특정 하위 디렉터리를 선언하면 기본 `skills/` 스캔을 대체합니다

760* **자신의 병합 규칙**: [훅](#hooks), [MCP 서버](#mcp-servers) 및 [LSP 서버](#lsp-servers). 여러 소스가 결합되는 방식에 대해 각 섹션을 참조합니다

761 

762플러그인에 기본 폴더와 일치하는 매니페스트 키가 모두 있을 때 Claude Code는 `claude plugin list` 및 `/plugin` 세부 정보 보기에서 무시된 폴더에 대해 경고합니다. 플러그인은 여전히 매니페스트 경로를 사용하여 로드됩니다. Claude Code는 매니페스트 키가 기본 폴더를 가리킬 때 경고하지 않습니다. 예를 들어 `"commands": ["./commands/deploy.md"]`는 폴더를 명시적으로 이름 지정하기 때문입니다.

763 

764모든 경로 필드의 경우:

765 

766* 모든 경로는 플러그인 루트에 상대적이어야 하고 `./`로 시작해야 합니다. 단, `skills` 필드는 `"."`도 허용합니다

767 * `"."`과 `"./"`는 모두 플러그인 루트 자체를 나타냅니다

768 * v2.1.221 이전에는 `"."`이 매니페스트 검증에 실패했고 플러그인이 로드되지 않았으므로 이전 버전을 지원하려면 `"./"`를 사용합니다

769* 사용자 정의 경로의 구성 요소는 동일한 명명 및 네임스페이싱 규칙을 사용합니다. 에이전트 파일은 제외됩니다. [에이전트](#agents)를 참조하여 에이전트 이름이 어떻게 작동하는지 알아봅니다

770* 여러 경로를 배열로 지정할 수 있습니다

771* 스킬 경로는 `SKILL.md`를 직접 포함하는 디렉터리를 가리킬 수 있습니다. 예를 들어 플러그인 루트의 경우 `"skills": ["."]`

772 * Claude Code는 `SKILL.md`의 프론트매터 `name` 필드에서 스킬의 호출 이름을 가져오므로 설치 디렉터리의 이름이 무엇이든 이름은 안정적으로 유지됩니다

773 * 프론트매터에 `name`이 설정되지 않으면 Claude Code는 디렉터리 기본 이름으로 폴백합니다

774 

775루트에 `SKILL.md`가 있고 `skills/` 하위 디렉터리가 없으며 `skills` 매니페스트 필드가 없는 플러그인은 자동으로 단일 스킬 플러그인으로 로드됩니다. 이 레이아웃에 대해 `plugin.json`에서 `"skills": ["./"]`를 설정할 필요가 없습니다.

776 

777**경로 예시**:

778 

779```json theme={null}

780{

781 "commands": [

782 "./specialized/deploy.md",

783 "./utilities/batch-process.md"

784 ],

785 "agents": [

786 "./custom-agents/reviewer.md",

787 "./custom-agents/tester.md"

788 ]

789}

790```

791 

792<h3 id="environment-variables">

793 환경 변수

794</h3>

795 

796Claude Code는 경로를 참조하기 위한 세 가지 변수를 제공합니다.

797 

798| 변수 | 확인 대상 | 사용 목적 |

799| :---------------------- | :----------------------------------------------------------------- | :------------------------------------------------------ |

800| `${CLAUDE_PLUGIN_ROOT}` | 플러그인의 설치 디렉터리의 절대 경로 | 플러그인과 함께 번들된 스크립트, 바이너리 및 구성 파일 |

801| `${CLAUDE_PLUGIN_DATA}` | 플러그인 업데이트를 유지하고 첫 참조 시 생성되는 [지속적 디렉터리](#persistent-data-directory) | `node_modules` 또는 Python 가상 환경과 같은 설치된 종속성, 생성된 코드 및 캐시 |

802| `${CLAUDE_PROJECT_DIR}` | 프로젝트 루트 | 프로젝트 로컬 스크립트 및 구성 파일 |

803 

804세 가지 모두 훅 프로세스 및 MCP 및 LSP 서버 하위 프로세스로 환경 변수로 내보내집니다. 어느 필드가 인라인으로 대체하는지는 플러그인 구성 요소에 따라 다릅니다.

805 

806| 플러그인 구성 요소 | 자리 표시자가 확인되는 필드 |

807| :------------------------- | :------------------------------------------ |

808| 스킬 및 에이전트 콘텐츠 | 자리 표시자가 나타나는 모든 곳 |

809| 훅 및 모니터 명령 | 자리 표시자가 나타나는 모든 곳 |

810| MCP `stdio` 서버 | `command`, `args`, `env` |

811| MCP `http`, `sse`, `ws` 서버 | `url`, `headers`, `headersHelper` |

812| LSP 서버 | `command`, `args`, `env`, `workspaceFolder` |

813 

814훅 명령에서 [exec 형식](/docs/ko/hooks#exec-form-and-shell-form)을 `args`와 함께 사용하여 각 경로가 따옴표 없이 하나의 인수로 전달되도록 합니다. 셸 형식 훅 및 모니터 명령에서 변수를 큰따옴표로 래핑합니다. 예: `"${CLAUDE_PROJECT_DIR}/scripts/server.sh"`. 이 셸 형식 훅은 플러그인과 함께 번들된 스크립트를 실행합니다.

815 

816```json theme={null}

817{

818 "hooks": {

819 "PostToolUse": [

820 {

821 "hooks": [

822 {

823 "type": "command",

824 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/process.sh"

825 }

826 ]

827 }

828 ]

829 }

830}

831```

832 

833`${CLAUDE_PLUGIN_ROOT}`는 플러그인이 업데이트될 때 변경됩니다. 이전 버전의 디렉터리는 업데이트 후 일정 기간 동안 디스크에 남아 있지만 이를 임시로 취급하고 거기에 상태를 작성하지 마십시오. 정리 의미론에 대해 [플러그인 캐싱](#plugin-caching-and-file-resolution)을 참조합니다.

834 

835플러그인이 세션 중간에 업데이트될 때 훅 명령, 모니터, MCP 서버 및 LSP 서버는 이전 버전의 경로를 계속 사용합니다. `/reload-plugins`를 실행하여 훅, MCP 서버 및 LSP 서버를 새 경로로 전환합니다. 모니터는 세션 재시작이 필요합니다. 대화형 터미널이 없는 세션에서 다시 로드는 플러그인 MCP 서버를 다음 세션까지 이전 경로에 남겨 둡니다.

836 

837`command` 소스가 있는 플러그인의 경우 Claude Code는 [플러그인 자체를 다시 로드할 수 있습니다](/docs/ko/plugin-marketplaces#when-claude-code-re-runs-the-command).

838 

839MCP 서버는 또한 `roots/list` 요청을 호출하여 런타임에 세션의 작업 디렉터리를 읽을 수 있습니다. [`roots/list`가 반환하는 것과 Claude Code가 서버에 변경을 알리는 시기](/docs/ko/mcp#option-3-add-a-local-stdio-server)를 참조합니다.

840 

841<h4 id="persistent-data-directory">

842 지속적 데이터 디렉터리

843</h4>

844 

845`${CLAUDE_PLUGIN_DATA}` 디렉터리는 `~/.claude/plugins/data/{id}/`로 확인됩니다. 여기서 `{id}`는 `a-z`, `A-Z`, `0-9`, `_` 및 `-` 외부의 문자가 `-`로 대체된 플러그인 식별자입니다. `formatter@my-marketplace`로 설치된 플러그인의 경우 디렉터리는 `~/.claude/plugins/data/formatter-my-marketplace/`입니다.

846 

847일반적인 사용은 언어 종속성을 한 번 설치하고 세션 및 플러그인 업데이트 전체에서 재사용하는 것입니다. Python 종속성, Yarn 또는 pnpm으로 잠긴 종속성 및 수명 주기 스크립트를 실행해야 하는 패키지에 이를 사용합니다. 마켓플레이스 설치 플러그인의 경우 전혀 필요하지 않을 수 있습니다. Claude Code는 플러그인을 캐시할 때 적격 [Node.js 패키지 종속성](#node-js-package-dependencies)을 자동으로 설치합니다.

848 

849데이터 디렉터리는 단일 플러그인 버전보다 오래 지속되므로 디렉터리 존재 여부만으로는 업데이트가 플러그인의 종속성 매니페스트를 변경하는 시기를 감지할 수 없습니다. 권장 패턴은 번들된 매니페스트를 데이터 디렉터리의 복사본과 비교하고 다를 때 재설치합니다.

850 

851이 `SessionStart` 훅은 첫 실행 시 `node_modules`를 설치하고 플러그인 업데이트가 변경된 `package.json`을 포함할 때마다 다시 설치합니다.

852 

853```json theme={null}

854{

855 "hooks": {

856 "SessionStart": [

857 {

858 "hooks": [

859 {

860 "type": "command",

861 "command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (cd \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" . && npm install) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""

862 }

863 ]

864 }

865 ]

866 }

867}

868```

869 

870`diff`는 저장된 복사본이 누락되거나 번들된 복사본과 다를 때 0이 아닌 값으로 종료되어 첫 실행과 종속성 변경 업데이트를 모두 다룹니다. `npm install`이 실패하면 후행 `rm`은 복사된 매니페스트를 제거하여 다음 세션이 재시도합니다.

871 

872`${CLAUDE_PLUGIN_ROOT}`에 번들된 스크립트는 지속된 `node_modules`에 대해 실행할 수 있습니다.

873 

874```json theme={null}

875{

876 "mcpServers": {

877 "routines": {

878 "command": "node",

879 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],

880 "env": {

881 "NODE_PATH": "${CLAUDE_PLUGIN_DATA}/node_modules"

882 }

883 }

884 }

885}

886```

887 

888데이터 디렉터리는 마지막 범위에서 플러그인을 제거할 때 자동으로 삭제됩니다. `/plugin` 인터페이스는 디렉터리 크기를 표시하고 삭제하기 전에 프롬프트합니다. CLI는 기본적으로 삭제합니다. [`--keep-data`](#plugin-uninstall)를 전달하여 보존합니다.

889 

890***

891 

892<h2 id="plugin-caching-and-file-resolution">

893 플러그인 캐싱 및 파일 해석

894</h2>

895 

896플러그인은 다음 세 가지 방법 중 하나로 지정됩니다:

897 

898* `claude --plugin-dir` 또는 `claude --plugin-url`을 통해 세션 기간 동안 지정합니다.

899* 마켓플레이스를 통해 설치하여 향후 세션에서 사용합니다.

900* claude.ai 계정을 통해 `~/.claude/plugins/synced/`로 [동기화](#synced-plugins)됩니다.

901 

902보안 및 검증 목적으로 Claude Code는 마켓플레이스 플러그인을 사용자의 로컬 **플러그인 캐시**(`~/.claude/plugins/cache`)로 복사합니다. 단, 플러그인이 제자리에 로드되는 경우는 예외입니다. [링크 모드의 `command` 소스](/docs/ko/plugin-marketplaces#copy-mode-and-link-mode)는 캐시 항목의 링크를 통해 제자리에 로드됩니다. 로컬 디렉토리에서 추가된 마켓플레이스의 [상대 경로 소스](/docs/ko/plugin-marketplaces#relative-paths)는 마켓플레이스 폴더에서 제자리에 로드됩니다.

903 

904로컬 디렉토리 마켓플레이스에서 제자리에 로드된 플러그인의 경우, 소스 디렉토리에 대한 편집 사항은 다음 세션 시작 또는 `/reload-plugins`에서 적용됩니다. 버전 범프가 필요하지 않습니다. 플러그인의 hook 프로세스와 MCP 및 LSP 서버는 소스 디렉토리를 가리키는 `CLAUDE_PLUGIN_ROOT`를 받습니다. Claude Code는 플러그인의 [Node.js 패키지 종속성](#node-js-package-dependencies)을 소스 디렉토리에 설치하지 않습니다. 이를 직접 설치하거나 [영구 데이터 디렉토리](#persistent-data-directory)의 hook에서 설치하세요.

905 

906복사된 플러그인의 경우, 설치된 각 버전은 캐시의 별도 디렉토리이며, 마켓플레이스 및 플러그인별로 그룹화되고 해석된 버전으로 명명되며, 플러그인의 파일과 [Node.js 패키지 종속성](#node-js-package-dependencies)의 자체 복사본을 포함합니다. [릴리스 태그](/docs/ko/plugin-dependencies#tag-plugin-releases-for-version-resolution)에서 해석된 종속성은 커밋-SHA 접미사가 있는 디렉토리 이름을 가집니다.

907 

908플러그인을 업데이트하거나 제거할 때 Claude Code는 이전 버전 디렉토리를 고아 상태로 표시하고 대략 14일 후 백그라운드 스윕에서 제거합니다. 유예 기간을 통해 이미 이전 버전을 로드한 동시 Claude Code 세션이 오류 없이 계속 실행될 수 있습니다. Claude Code는 최소한 하나의 플러그인이 설치되어 있는 동안에만 스윕을 실행합니다. 마지막 플러그인을 제거한 후 고아 디렉토리는 플러그인을 다시 설치할 때까지 디스크에 남아 있습니다.

909 

910Claude Code는 더 이상 디렉토리나 심볼릭 링크를 포함하지 않는 경우에만 캐시에서 플러그인 또는 마켓플레이스 폴더를 제거합니다. 개발 체크아웃을 캐시에 플러그인의 버전 항목으로 심볼릭 링크하면 Claude Code는 링크를 고아 상태로 표시하지 않으며 링크나 이를 포함하는 폴더를 제거하지 않습니다. Claude Code는 또한 링크된 체크아웃 내부에 버전 추적 파일을 작성하지 않습니다.

911 

912Claude의 Glob 및 Grep 도구는 검색 중에 고아 버전 디렉토리를 건너뛰므로 파일 결과에는 오래된 플러그인 코드가 포함되지 않습니다.

913 

914<h3 id="node-js-package-dependencies">

915 Node.js 패키지 종속성

916</h3>

917 

918Claude Code가 플러그인을 캐시로 복사할 때 플러그인의 Node.js 패키지 종속성도 여기에 설치하므로 플러그인의 hooks 및 MCP 서버가 이를 로드할 수 있습니다. 이 섹션은 플러그인이 자체 `package.json`에서 선언하는 npm 및 Bun 패키지를 다룹니다. 다른 플러그인에 종속된 플러그인의 경우 [플러그인 종속성 버전](/docs/ko/plugin-dependencies)을 참조하세요.

919 

920Claude Code는 복사된 버전 디렉토리 내에서 설치를 실행합니다. 플러그인을 설치할 때, Claude Code가 플러그인을 새 버전으로 업데이트할 때, 그리고 새 머신에서와 같이 활성화된 플러그인이 아직 캐시되지 않은 경우 세션 시작 시에 실행됩니다. 설치는 플러그인의 루트 디렉토리에 `package.json`과 지원되는 lockfile이 모두 포함된 경우에만 실행됩니다:

921 

922| Lockfile | 명령 |

923| :------------------------------------------- | :----------------------------------------------- |

924| `bun.lock` 또는 `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |

925| `npm-shrinkwrap.json` 또는 `package-lock.json` | `npm ci --ignore-scripts` |

926 

927플러그인에 이러한 lockfile 중 두 개 이상이 포함된 경우 Claude Code는 첫 번째 일치를 사용하며, 다음 순서로 확인합니다: `bun.lock`, `bun.lockb`, `npm-shrinkwrap.json`, `package-lock.json`.

928 

929Claude Code는 두 가지 경우에 설치를 건너뜁니다. 각각 자체 해결 방법이 있습니다:

930 

931* 플러그인이 `yarn.lock` 또는 `pnpm-lock.yaml`만 제공하는 경우 npm lockfile로 바꾸세요.

932* bun lockfile 옆에 `bunfig.toml`이 있는 경우 `bunfig.toml`을 제거하거나 bun lockfile을 npm lockfile로 바꾸세요.

933 

934가장 광범위한 도달을 위해 npm lockfile을 제공하세요. Claude Code는 사용자의 PATH에서 일치하는 lockfile의 패키지 관리자를 실행하며 lockfile이 누락된 경우 다른 lockfile로 폴백하지 않습니다. npm 소스를 통해 배포된 플러그인의 경우 `npm-shrinkwrap.json`을 사용하세요. npm은 게시된 패키지에서 `package-lock.json`을 제외합니다.

935 

936Claude Code는 이 종속성 설치를 제한하여 설치 중에 플러그인 또는 해당 패키지의 코드가 실행되지 않도록 하고 실행 시간을 제한합니다:

937 

938* **고정된 해석:** Bun 및 npm은 lockfile이 고정한 것을 정확히 설치하며, `package.json`과 lockfile이 불일치할 때 버전을 다시 해석하는 대신 실패합니다.

939* **라이프사이클 스크립트 없음:** `--ignore-scripts`는 `preinstall`, `install`, 및 `postinstall` 스크립트가 실행되지 않도록 하므로 이러한 스크립트에서 네이티브 모듈을 빌드하는 종속성은 다운로드되지만 이 설치 중에는 컴파일되지 않습니다.

940* **60초 타임아웃:** Claude Code는 더 오래 실행되는 설치를 중지하고 실패로 처리합니다.

941 

942Claude Code는 이 종속성 설치 전에 npm 소스 플러그인을 가져오며, 패키지의 자체 설치 스크립트는 가져오기 중에 실행되지 않습니다. [npm 패키지](/docs/ko/plugin-marketplaces#npm-packages)를 참조하세요.

943 

944실패하거나 건너뛴 설치는 플러그인을 차단하지 않습니다. 설치가 실패하거나 Claude Code가 yarn 또는 pnpm lockfile을 건너뛸 때 또는 `bunfig.toml`이 있는 경우 이유를 [디버그 출력](#debugging-commands)에 경고로 기록합니다. `package.json`이 있고 lockfile이 없는 플러그인은 로그 항목 없이 건너뜁니다. 시간 초과된 설치는 캐시된 복사본에 부분적인 `node_modules` 트리를 남길 수 있습니다.

945 

946자동 설치를 끌 수 없습니다. 설정이나 환경 변수로 비활성화할 수 없습니다. 제한된 네트워크에서는 [네트워크 액세스 요구 사항](/docs/ko/network-config#network-access-requirements)을 참조하여 허용할 호스트를 확인하세요.

947 

948자동 설치가 제공할 수 없는 종속성(예: 라이프사이클 스크립트를 빌드해야 하는 패키지, Python 종속성, 또는 Yarn 또는 pnpm으로 잠긴 플러그인)의 경우 [영구 데이터 디렉토리](#persistent-data-directory)의 hook에서 설치하세요.

949 

950<h3 id="path-traversal-limitations">

951 경로 순회 제한

952</h3>

953 

954Claude Code는 플러그인이 자체 디렉토리 외부의 파일을 참조하도록 허용하지 않습니다. `plugin.json`에서 선언되거나 [마켓플레이스 항목](/docs/ko/plugin-marketplaces#plugin-entries)에서 선언된 플러그인 루트 외부로 해석되는 구성 요소 경로를 거부합니다. 여기에는 `../shared-utils`와 같이 작성된 플러그인 외부를 가리키는 경로와 [마켓플레이스 내 링크](#share-files-within-a-marketplace-with-symlinks)를 제외한 플러그인 외부로 이어지는 심볼릭 링크가 포함됩니다.

955 

956macOS 및 Linux에서 Claude Code는 경로가 플러그인 내부에 남아 있더라도 경로의 어디든 백슬래시를 포함하는 구성 요소 경로도 거부합니다. 백슬래시 경로로 선언된 구성 요소는 따라서 Windows에서만 로드됩니다. `./commands/deploy.md`와 같이 정방향 슬래시를 사용하여 구성 요소 경로를 작성하세요.

957 

958Claude Code가 경로를 거부하면 [`path escapes plugin directory`](/docs/ko/errors#path-escapes-plugin-directory) 오류를 보고하고 해당 구성 요소 없이 플러그인을 로드합니다.

959 

960Claude Code는 플러그인을 설치할 때 플러그인 디렉토리 외부의 파일을 캐시로 복사하지 않으므로 복사된 플러그인 내부의 스크립트가 플러그인 루트 위의 경로를 읽을 때 해당 파일을 찾지 못합니다.

961 

962<h3 id="share-files-within-a-marketplace-with-symlinks">

963 심볼릭 링크를 사용하여 마켓플레이스 내에서 파일 공유

964</h3>

965 

966플러그인이 동일한 마켓플레이스의 다른 부분과 파일을 공유해야 하는 경우 플러그인 디렉토리 내에 심볼릭 링크를 만들 수 있습니다. 플러그인이 캐시로 복사될 때 심볼릭 링크가 처리되는 방식은 해당 대상이 해석되는 위치에 따라 달라집니다:

967 

968* **플러그인의 자체 디렉토리 내:** 심볼릭 링크는 캐시에서 상대 심볼릭 링크로 유지되므로 런타임에 복사된 대상으로 계속 해석됩니다.

969* **동일한 마켓플레이스 내의 다른 곳:** 심볼릭 링크는 역참조됩니다. 대상의 콘텐츠는 그 자리에 캐시로 복사됩니다. 이를 통해 메타 플러그인의 `skills/` 디렉토리가 마켓플레이스의 다른 플러그인에서 정의한 skills에 링크할 수 있습니다.

970* **마켓플레이스 외부:** 심볼릭 링크는 보안상 건너뜁니다. 이는 플러그인이 시스템 경로와 같은 임의의 호스트 파일을 캐시로 가져오는 것을 방지합니다.

971 

972`--plugin-dir`으로 설치된 플러그인, 로컬 경로에서 설치된 플러그인, 또는 [복사 모드의 `command` 소스](/docs/ko/plugin-marketplaces#copy-mode-and-link-mode)에서 설치된 플러그인의 경우 플러그인의 자체 디렉토리 내에서 해석되는 심볼릭 링크만 유지됩니다. 다른 모든 링크는 건너뜁니다.

973 

974다음 명령은 마켓플레이스 플러그인 내부에서 형제 플러그인에서 정의한 공유 skill로의 링크를 만듭니다. Windows에서는 상승된 명령 프롬프트에서 `mklink /D`를 사용하거나 개발자 모드를 활성화하세요:

975 

976```bash theme={null}

977ln -s ../../shared-plugin/skills/foo ./skills/foo

978```

979 

980***

981 

982<h2 id="plugin-directory-structure">

983 플러그인 디렉토리 구조

984</h2>

985 

986<h3 id="standard-plugin-layout">

987 표준 플러그인 레이아웃

988</h3>

989 

990완전한 플러그인은 다음과 같은 구조를 따릅니다:

991 

992```text theme={null}

993enterprise-plugin/

994├── .claude-plugin/ # 메타데이터 디렉토리 (선택사항)

995│ └── plugin.json # 플러그인 매니페스트

996├── skills/ # Skills

997│ ├── code-reviewer/

998│ │ └── SKILL.md

999│ └── pdf-processor/

1000│ ├── SKILL.md

1001│ └── scripts/

1002├── commands/ # Skills as flat .md files

1003│ ├── status.md

1004│ └── logs.md

1005├── agents/ # Subagent 정의

1006│ ├── security-reviewer.md

1007│ ├── performance-tester.md

1008│ ├── compliance-checker.md

1009│ └── review/ # 여기의 Agents는 enterprise-plugin:review:<name>으로 로드됩니다

1010│ └── accessibility.md

1011├── workflows/ # 워크플로우 스크립트

1012│ └── release-audit.js

1013├── output-styles/ # 출력 스타일 정의

1014│ └── terse.md

1015├── themes/ # 색상 테마 정의

1016│ └── dracula.json

1017├── monitors/ # 백그라운드 모니터 구성

1018│ └── monitors.json

1019├── hooks/ # Hook 구성

1020│ ├── hooks.json # 주요 hook 구성

1021│ └── security-hooks.json # 추가 hooks

1022├── bin/ # 플러그인 실행 파일이 PATH에 추가됨

1023│ └── my-tool # Bash 도구에서 명령어로 호출 가능

1024├── settings.json # 플러그인의 기본 설정

1025├── .mcp.json # MCP 서버 정의

1026├── .lsp.json # LSP 서버 구성

1027├── scripts/ # Hook 및 유틸리티 스크립트

1028│ ├── security-scan.sh

1029│ ├── format-code.py

1030│ └── deploy.js

1031├── LICENSE # 라이선스 파일

1032└── CHANGELOG.md # 버전 히스토리

1033```

1034 

1035<Warning>

1036 `.claude-plugin/` 디렉토리에는 `plugin.json` 파일이 포함됩니다. 다른 모든 디렉토리(commands/, agents/, skills/, workflows/, output-styles/, themes/, monitors/, hooks/)는 `.claude-plugin/` 내부가 아닌 플러그인 루트에 있어야 합니다.

1037</Warning>

1038 

1039플러그인 루트의 `CLAUDE.md` 파일은 프로젝트 컨텍스트로 로드되지 않습니다. 플러그인은 CLAUDE.md가 아닌 skills, agents, hooks를 통해 컨텍스트를 제공합니다. Claude의 컨텍스트에 로드되는 지침을 제공하려면 [skill](#skills)에 배치하십시오.

1040 

1041<h3 id="file-locations-reference">

1042 파일 위치 참조

1043</h3>

1044 

1045| 구성 요소 | 기본 위치 | 목적 |

1046| :------------ | :--------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1047| **매니페스트** | `.claude-plugin/plugin.json` | 플러그인 메타데이터 및 구성 (선택사항) |

1048| **Skills** | `skills/` | `<name>/SKILL.md` 구조의 Skills |

1049| **Commands** | `commands/` | Markdown 파일로서의 Skills. 새 플러그인의 경우 `skills/` 사용 |

1050| **Agents** | `agents/` | Subagent Markdown 파일. 하위 폴더는 [agent 이름](#agents)의 일부입니다 |

1051| **Workflows** | `workflows/` | [Workflow](/docs/ko/workflows) 스크립트 파일 |

1052| **출력 스타일** | `output-styles/` | 출력 스타일 정의 |

1053| **테마** | `themes/` | 색상 테마 정의 |

1054| **Hooks** | `hooks/hooks.json` | Hook 구성 |

1055| **MCP 서버** | `.mcp.json` | MCP 서버 정의 |

1056| **LSP 서버** | `.lsp.json` | 언어 서버 구성 |

1057| **모니터** | `monitors/monitors.json` | 백그라운드 모니터 구성 |

1058| **실행 파일** | `bin/` | Bash 도구의 `PATH`에 추가되고 플러그인이 활성화된 동안 명령어로 호출 가능한 실행 파일. [Claude.ai 조직 설정을 통해 배포하는 플러그인에는 이 디렉토리를 포함할 수 없습니다](/docs/ko/plugin-marketplaces#keep-executables-out-of-the-top-level-bin-directory) |

1059| **설정** | `settings.json` | 플러그인이 활성화될 때 적용되는 기본 구성. [`agent`](/docs/ko/sub-agents) 및 [`subagentStatusLine`](/docs/ko/statusline#subagent-status-lines) 키만 지원됩니다 |

1060 

1061***

1062 

1063<h2 id="cli-commands-reference">

1064 CLI 명령어 참조

1065</h2>

1066 

1067Claude Code는 비대화형 플러그인 관리를 위한 CLI 명령어를 제공하며, 스크립팅 및 자동화에 유용합니다.

1068 

1069<h3 id="plugin-init">

1070 plugin init

1071</h3>

1072 

1073`~/.claude/skills/<name>/`에 새 플러그인을 스캐폴드합니다. 다음 Claude Code 세션에서 `<name>@skills-dir`로 자동으로 로드되며 `/plugin` 및 `claude plugin list`에 설치 단계 없이 나타납니다.

1074 

1075[Skills-directory plugins](#skills-directory-plugins)에서 범위 및 신뢰 요구사항을 참조하십시오.

1076 

1077```bash theme={null}

1078claude plugin init <name> [options]

1079```

1080 

1081명령어는 다음 인수를 사용합니다:

1082 

1083* `<name>`: 플러그인 이름입니다. 스킬 네임스페이스 및 `~/.claude/skills/` 아래의 디렉터리 이름이 되므로 공백이나 경로 구분자를 포함할 수 없습니다.

1084 

1085명령어는 다음 옵션을 허용합니다:

1086 

1087| 옵션 | 설명 | 기본값 |

1088| :----------------------- | :-------------------------------------------------------------------------------------------- | :---------------------- |

1089| `--description <text>` | 매니페스트 설명 | |

1090| `--author <name>` | 작성자 이름 | `git config user.name` |

1091| `--author-email <email>` | 작성자 이메일 | `git config user.email` |

1092| `--with <components...>` | 컴포넌트 폴더도 스캐폴드합니다. 유효한 값: `skills`, `agents`, `hooks`, `mcp`, `lsp`, `output-style`, `channel` | |

1093| `-f, --force` | 대상의 기존 `.claude-plugin/`을 덮어씁니다 | |

1094| `-h, --help` | 명령어에 대한 도움말을 표시합니다 | |

1095 

1096`claude plugin new`는 이 명령어의 별칭입니다.

1097 

1098각 `--with` 값은 해당 컴포넌트에 대한 스타터 파일을 추가하며, 편집할 준비가 되어 있습니다:

1099 

1100| 컴포넌트 | 스캐폴드되는 항목 |

1101| :------------- | :-------------------------------------------------------------------------------------- |

1102| `skills` | 기본 스킬과 함께 추가 네임스페이스 `<name>:example` 스킬 |

1103| `agents` | `agents/` 서브에이전트 정의 |

1104| `hooks` | 샘플 이벤트 핸들러가 포함된 `hooks/hooks.json` |

1105| `mcp` | HTTP 및 stdio 서버 예제가 포함된 `.mcp.json` |

1106| `lsp` | `.lsp.json` 언어 서버 예제 |

1107| `output-style` | 플러그인이 활성화된 동안 자동으로 적용되는 `output-styles/<name>.md` |

1108| `channel` | MCP 기반 [channel](/docs/ko/channels): stdio 서버(`server.ts`), 해당 `.mcp.json`, 및 `package.json` |

1109 

1110스캐폴드된 플러그인은 마켓플레이스가 아닌 `@skills-dir` 소스를 사용합니다. 관리자는 `strictKnownMarketplaces`를 사용하거나 [관리 설정](/docs/ko/plugin-marketplaces#managed-marketplace-restrictions)의 `blockedMarketplaces`에 `{"source": "skills-dir"}`을 추가하여 이 소스를 차단할 수 있습니다. 차단되면 `plugin init`은 작성하기 전에 실패합니다.

1111 

1112다음 예제는 일반적인 호출을 보여줍니다:

1113 

1114```bash theme={null}

1115# 최소 플러그인 스캐폴드

1116claude plugin init my-helper

1117 

1118# 스킬 및 훅 폴더를 포함하여 스캐폴드

1119claude plugin init my-helper --with skills hooks

1120 

1121# 기존 스캐폴드 덮어쓰기

1122claude plugin init my-helper --force

1123```

1124 

1125<h3 id="plugin-install">

1126 plugin install

1127</h3>

1128 

1129사용 가능한 마켓플레이스에서 플러그인을 설치합니다.

1130 

1131```bash theme={null}

1132claude plugin install <plugin> [options]

1133```

1134 

1135명령어는 다음 인수를 사용합니다:

1136 

1137* `<plugin>`: 플러그인 이름 또는 특정 마켓플레이스의 경우 `plugin-name@marketplace-name`

1138 

1139명령어는 다음 옵션을 허용합니다:

1140 

1141| 옵션 | 설명 | 기본값 |

1142| :-------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |

1143| `-s, --scope <scope>` | 설치 범위: `user`, `project`, 또는 `local` | `user` |

1144| `--config <key=value>` | 플러그인의 매니페스트에 선언된 [`userConfig`](#user-configuration) 옵션을 설정합니다. 여러 옵션을 설정하려면 플래그를 반복합니다 | |

1145| `-y, --yes` | 확인 프롬프트 없이 플러그인의 마켓플레이스가 선언한 명령어를 수락합니다: [`command` source](/docs/ko/plugin-marketplaces#command-sources)를 사용하는 플러그인을 생성하는 명령어 또는 아카이브 다운로드를 인증하는 [`headersHelper`](/docs/ko/plugin-marketplaces#authenticate-archive-downloads). `headersHelper`를 수락하려면 Claude Code v2.1.238 이상이 필요합니다. Claude Code는 여전히 명령어를 먼저 인쇄합니다. stdin 또는 stdout이 TTY가 아닐 때 필수입니다. Claude Code 세션 내에서는 효과가 없으므로 자신의 터미널에서 명령어를 실행하십시오 | |

1146| `--accept-command <sha256>` | 이전 [`--json` 실행](#plugin-json-result)이 `shownCommand`에서 보고한 `sha256`을 가진 마켓플레이스 선언 명령어를 `-y` 대신 수락합니다. 수락은 정확히 그 명령어, 플러그인, 및 마켓플레이스 카탈로그에 대해 계산됩니다. 실행의 자체 마켓플레이스 새로고침을 포함하여 명령어가 표시된 이후 이들 중 하나라도 변경되면, Claude Code는 다이제스트를 수락하지 않고 명령어를 다시 표시합니다. `-y`와 결합할 수 없습니다. Claude Code 세션 내에서는 효과가 없으므로 자신의 터미널에서 명령어를 실행하십시오. Claude Code v2.1.271 이상 필요 | |

1147| `--json` | 스크립트에서 사용하기 위해 stdout의 마지막 줄에 하나의 JSON 객체로 결과를 인쇄합니다. [JSON 결과 형식](#plugin-json-result)을 참조하십시오. Claude Code v2.1.268 이상 필요 | |

1148| `-h, --help` | 명령어에 대한 도움말을 표시합니다 | |

1149 

1150범위는 설치된 플러그인이 추가되는 설정 파일을 결정합니다. 예를 들어 `--scope project`는 .claude/settings.json의 `enabledPlugins`에 작성하여 프로젝트 저장소를 복제하는 모든 사람이 플러그인을 사용할 수 있도록 합니다.

1151 

1152<span id="plugin-json-result" />`--json`을 사용하면 stdout의 마지막 줄은 하나의 JSON 객체입니다. Claude Code가 마켓플레이스가 선언한 명령어를 앞에 인쇄하기 때문에 해당 줄만 파싱하십시오. 세 개의 필드는 항상 존재합니다:

1153 

1154* `command`: 실행된 서브명령어(예: `install`)

1155* `outcome`: `ok` 또는 `failed`

1156* `message`: 결과에 대한 사람이 읽을 수 있는 설명

1157 

1158`pluginId`, `scope`, `failureCode`와 같은 다른 필드는 적용될 때만 나타납니다. `plugin uninstall`, `plugin update`, `plugin enable`, `plugin disable`의 `--json` 옵션은 해당 서브명령어의 자체 필드를 가진 동일한 객체를 인쇄합니다. 잘못된 `--scope`와 같은 사용 오류는 결과 줄을 인쇄하지 않고 stderr의 이유와 함께 1로 종료됩니다.

1159 

1160실행이 마켓플레이스 선언 명령어를 표시하고 실행하지 않으면, `failed` 결과는 또한 표시된 명령어, 해당 명령어가 속한 플러그인, 및 명령어의 `sha256`을 포함하는 필드를 가진 `shownCommand` 객체를 포함합니다. 정확히 그 명령어를 수락하려면 그 `sha256`을 `--accept-command`로 하여 다시 실행하십시오. Claude Code v2.1.271 이상 필요합니다.

1161 

1162`shownCommand.acceptCommandMatched`가 `false`이면, 전달한 다이제스트가 현재 표시된 명령어와 일치하지 않습니다. 그 명령어를 사람에게 표시한 후 해당 `sha256`을 전달하십시오.

1163 

1164다음 예제는 일반적인 호출을 보여줍니다:

1165 

1166```bash theme={null}

1167# 사용자 범위에 설치(기본값)

1168claude plugin install formatter@my-marketplace

1169 

1170# 프로젝트 범위에 설치(팀과 공유)

1171claude plugin install formatter@my-marketplace --scope project

1172 

1173# 로컬 범위에 설치(팀과 공유하지 않음)

1174claude plugin install formatter@my-marketplace --scope local

1175```

1176 

1177<h3 id="plugin-uninstall">

1178 plugin uninstall

1179</h3>

1180 

1181설치된 플러그인을 제거합니다.

1182 

1183```bash theme={null}

1184claude plugin uninstall <plugin> [options]

1185```

1186 

1187명령어는 다음 인수를 사용합니다:

1188 

1189* `<plugin>`: 플러그인 이름 또는 `plugin-name@marketplace-name`

1190 

1191명령어는 다음 옵션을 허용합니다:

1192 

1193| 옵션 | 설명 | 기본값 |

1194| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |

1195| `-s, --scope <scope>` | 범위에서 제거: `user`, `project`, 또는 `local` | `user` |

1196| `--keep-data` | 플러그인의 [persistent data directory](#persistent-data-directory)를 보존합니다 | |

1197| `--prune` | 다른 플러그인이 필요하지 않은 자동 설치된 종속성도 제거합니다. [plugin prune](#plugin-prune) 참조 | |

1198| `-y, --yes` | `--prune` 확인 프롬프트를 건너뜁니다. stdin 또는 stdout이 TTY가 아닐 때 필수입니다 | |

1199| `--json` | stdout의 마지막 줄에 하나의 JSON 객체로 결과를 인쇄합니다. [`plugin install --json`](#plugin-json-result)과 동일한 형식입니다. `--prune`과 결합할 수 없습니다. Claude Code v2.1.268 이상 필요 | |

1200| `-h, --help` | 명령어에 대한 도움말을 표시합니다 | |

1201 

1202`claude plugin remove` 및 `claude plugin rm`은 이 명령어의 별칭입니다.

1203 

1204기본적으로 마지막 남은 범위에서 제거하면 플러그인의 `${CLAUDE_PLUGIN_DATA}` 디렉터리도 삭제됩니다. `--keep-data`를 사용하여 보존하십시오. 예를 들어 새 버전 테스트 후 재설치할 때입니다.

1205 

1206<Note>

1207 다른 마켓플레이스의 설치된 플러그인이 이름을 공유할 때, `plugin-name@marketplace-name` 형식은 명명된 마켓플레이스의 플러그인만 제거합니다. v2.1.212 이전에는 정규화된 형식이 다른 마켓플레이스의 동일한 이름의 플러그인과 일치하여 제거할 수 있었습니다.

1208</Note>

1209 

1210<h3 id="plugin-prune">

1211 plugin prune

1212</h3>

1213 

1214더 이상 설치된 플러그인이 필요하지 않은 자동 설치된 플러그인 종속성을 제거합니다. Claude Code가 다른 플러그인의 [`dependencies`](/docs/ko/plugin-dependencies) 필드를 충족하기 위해 가져온 종속성이 제거됩니다. 직접 설치한 플러그인은 절대 건드리지 않습니다.

1215 

1216```bash theme={null}

1217claude plugin prune [options]

1218```

1219 

1220명령어는 다음 옵션을 허용합니다:

1221 

1222| 옵션 | 설명 | 기본값 |

1223| :-------------------- | :----------------------------------------------- | :----- |

1224| `-s, --scope <scope>` | 범위에서 정리: `user`, `project`, 또는 `local` | `user` |

1225| `--dry-run` | 제거하지 않고 제거될 항목을 나열합니다 | |

1226| `-y, --yes` | 확인 프롬프트를 건너뜁니다. stdin 또는 stdout이 TTY가 아닐 때 필수입니다 | |

1227| `-h, --help` | 명령어에 대한 도움말을 표시합니다 | |

1228 

1229`claude plugin autoremove`는 이 명령어의 별칭입니다.

1230 

1231명령어는 고아 종속성을 나열하고 제거하기 전에 확인을 요청합니다. 플러그인을 제거하고 한 단계에서 종속성을 정리하려면 `claude plugin uninstall <plugin> --prune`을 실행하십시오.

1232 

1233<h3 id="plugin-enable">

1234 plugin enable

1235</h3>

1236 

1237비활성화된 플러그인을 활성화합니다. 대상이 마켓플레이스에서 설치되고 [dependencies](/docs/ko/plugin-dependencies)를 선언할 때, Claude Code는 동일한 범위에서 이들을 전이적으로 활성화합니다. 명령어는 [Enable or disable a plugin with dependencies](/docs/ko/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies)가 나열하는 조건에서 실패합니다.

1238 

1239```bash theme={null}

1240claude plugin enable <plugin> [options]

1241```

1242 

1243명령어는 다음 인수를 사용합니다:

1244 

1245* `<plugin>`: 플러그인 이름, `plugin-name@marketplace-name`, 또는 [synced plugin](#synced-plugins)의 경우 `plugin-name@synced`

1246 

1247명령어는 다음 옵션을 허용합니다:

1248 

1249| 옵션 | 설명 | 기본값 |

1250| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------- | :---- |

1251| `-s, --scope <scope>` | 활성화할 범위: `user`, `project`, 또는 `local`. 생략하면 Claude Code는 플러그인이 설치된 범위를 감지합니다 | 자동 감지 |

1252| `--json` | stdout의 마지막 줄에 하나의 JSON 객체로 결과를 인쇄합니다. [`plugin install --json`](#plugin-json-result)과 동일한 형식입니다. Claude Code v2.1.268 이상 필요 | |

1253| `-h, --help` | 명령어에 대한 도움말을 표시합니다 | |

1254 

1255<h3 id="plugin-disable">

1256 plugin disable

1257</h3>

1258 

1259플러그인을 제거하지 않고 비활성화합니다.

1260 

1261대상이 마켓플레이스에서 설치될 때, 다른 활성화된 플러그인이 이에 [의존](/docs/ko/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies)하면 명령어가 실패합니다. 오류 메시지에는 이에 의존하는 모든 플러그인을 먼저 비활성화하는 연결된 명령어가 포함됩니다.

1262 

1263조직에서 필요로 하는 [synced plugin](#synced-plugins)의 경우 명령어가 실패하고 아무것도 저장하지 않습니다.

1264 

1265```bash theme={null}

1266claude plugin disable [plugin] [options]

1267```

1268 

1269명령어는 다음 인수를 사용합니다:

1270 

1271* `[plugin]`: 플러그인 이름, `plugin-name@marketplace-name`, 또는 [synced plugin](#synced-plugins)의 경우 `plugin-name@synced`. `--all`을 사용할 때 선택 사항입니다.

1272 

1273명령어는 다음 옵션을 허용합니다:

1274 

1275| 옵션 | 설명 | 기본값 |

1276| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------- | :---- |

1277| `-a, --all` | 모든 활성화된 플러그인을 비활성화합니다. `--scope`와 결합할 수 없습니다 | |

1278| `-s, --scope <scope>` | 비활성화할 범위: `user`, `project`, 또는 `local`. 생략하면 Claude Code는 플러그인이 설치된 범위를 감지합니다 | 자동 감지 |

1279| `--json` | stdout의 마지막 줄에 하나의 JSON 객체로 결과를 인쇄합니다. [`plugin install --json`](#plugin-json-result)과 동일한 형식입니다. Claude Code v2.1.268 이상 필요 | |

1280| `-h, --help` | 명령어에 대한 도움말을 표시합니다 | |

1281 

1282<h3 id="plugin-update">

1283 plugin update

1284</h3>

1285 

1286플러그인을 최신 버전으로 업데이트합니다.

1287 

1288```bash theme={null}

1289claude plugin update <plugin> [options]

1290```

1291 

1292명령어는 다음 인수를 사용합니다:

1293 

1294* `<plugin>`: 플러그인 이름 또는 `plugin-name@marketplace-name`

1295 

1296명령어는 다음 옵션을 허용합니다:

1297 

1298| 옵션 | 설명 | 기본값 |

1299| :-------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |

1300| `-s, --scope <scope>` | 업데이트할 범위: `user`, `project`, `local`, 또는 `managed` | `user` |

1301| `-y, --yes` | 확인 프롬프트 없이 플러그인의 마켓플레이스가 선언한 명령어를 수락합니다: [`command` source](/docs/ko/plugin-marketplaces#command-sources)를 사용하는 플러그인을 생성하는 명령어 또는 아카이브 다운로드를 인증하는 [`headersHelper`](/docs/ko/plugin-marketplaces#authenticate-archive-downloads). `headersHelper`를 수락하려면 Claude Code v2.1.238 이상이 필요합니다. Claude Code는 여전히 명령어를 먼저 인쇄합니다. stdin 또는 stdout이 TTY가 아닐 때 필수입니다. Claude Code 세션 내에서는 효과가 없으므로 자신의 터미널에서 명령어를 실행하십시오 | |

1302| `--accept-command <sha256>` | 이전 [`--json` 실행](#plugin-json-result)이 `shownCommand`에서 보고한 `sha256`을 가진 마켓플레이스 선언 명령어를 `-y` 대신 수락합니다. 수락은 정확히 그 명령어, 플러그인, 및 마켓플레이스 카탈로그에 대해 계산됩니다. 실행의 자체 마켓플레이스 새로고침을 포함하여 명령어가 표시된 이후 이들 중 하나라도 변경되면, Claude Code는 다이제스트를 수락하지 않고 명령어를 다시 표시합니다. `-y`와 결합할 수 없습니다. Claude Code 세션 내에서는 효과가 없으므로 자신의 터미널에서 명령어를 실행하십시오. Claude Code v2.1.271 이상 필요 | |

1303| `--json` | stdout의 마지막 줄에 하나의 JSON 객체로 결과를 인쇄합니다. [`plugin install --json`](#plugin-json-result)과 동일한 형식입니다. Claude Code v2.1.268 이상 필요 | |

1304| `-h, --help` | 명령어에 대한 도움말을 표시합니다 | |

1305 

1306<Note>

1307 Claude Code는 설치된 플러그인에 대해 베어 플러그인 이름을 확인합니다. 다른 마켓플레이스의 설치된 플러그인이 이름을 공유할 때, Claude Code는 업데이트를 거부하고 대신 실행할 정규화된 `plugin-name@marketplace-name` 명령어를 나열합니다. v2.1.246 이전에는 Claude Code가 정규화된 형식만 수락하고 베어 이름을 찾을 수 없는 것으로 거부했습니다.

1308</Note>

1309 

1310***

1311 

1312<h3 id="plugin-list">

1313 plugin list

1314</h3>

1315 

1316설치된 플러그인을 버전, 소스 마켓플레이스 및 활성화 상태와 함께 나열합니다.

1317 

1318```bash theme={null}

1319claude plugin list [options]

1320```

1321 

1322명령어는 다음 옵션을 허용합니다:

1323 

1324| 옵션 | 설명 | 기본값 |

1325| :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-- |

1326| `--json` | JSON으로 출력합니다. 로드 문제 또는 작성 경고가 있는 플러그인 행은 `errors` 또는 `notes` 문자열 배열을 포함합니다. Claude Code v2.1.268 이상에서 병렬 `errorDetails` 및 `noteDetails` 배열은 각 항목의 진단 `type` 및 플러그인, 마켓플레이스, 서버 또는 파일과 같이 참조하는 이름을 제공합니다 | |

1327| `--available` | 마켓플레이스의 사용 가능한 플러그인을 포함합니다. `--json` 필요 | |

1328| `-h, --help` | 명령어에 대한 도움말을 표시합니다 | |

1329 

1330대화형 세션 내에서 `/plugin list`는 유사한 목록을 인라인으로 인쇄하지만, 마켓플레이스 설치 플러그인만 포함합니다:

1331 

1332* 스킬 디렉터리에서 로드된 플러그인은 `/plugin` 인터페이스 및 `claude plugin list`에 나타나지만 인라인 `/plugin list` 출력에는 나타나지 않습니다.

1333* [claude.ai에서 동기화된 플러그인](#synced-plugins)은 Claude Code v2.1.239 이상에서 `claude plugin list`에 나타나며 `/plugin` 인터페이스에도 나타나지만, 인라인 `/plugin list` 출력에는 나타나지 않습니다.

1334* `--plugin-dir` 또는 `--plugin-url`로 세션에 로드된 플러그인은 `/plugin` 인터페이스에 나타나며, `claude --plugin-dir <dir> plugin list`와 같이 동일한 플래그가 서브명령어 앞에 올 때만 `claude plugin list`에 나타납니다. 플래그만이 해당 위치를 지정하므로, Claude Code가 고정 디렉터리를 스캔하는 동기화된 플러그인 및 스킬 디렉터리 플러그인과 달리, 베어 `claude plugin list`는 이들을 찾을 수 없습니다.

1335 

1336대화형 형식은 `--enabled` 또는 `--disabled`를 수락하여 해당 상태의 플러그인만 표시하고, `ls`를 `list`의 약자로 수락합니다.

1337 

1338<h3 id="plugin-details">

1339 plugin details

1340</h3>

1341 

1342플러그인의 컴포넌트 인벤토리 및 예상 토큰 비용을 표시합니다. 출력은 플러그인이 기여하는 모든 컴포넌트를 Skills, Agents, Hooks, MCP servers, 및 LSP servers로 그룹화하여 나열하며, 각 세션에 추가하는 토큰 수의 추정치를 포함합니다. Skills 그룹에는 `skills/` 및 `commands/` 항목이 모두 포함됩니다.

1343 

1344```bash theme={null}

1345claude plugin details <name>

1346```

1347 

1348명령어는 다음 인수를 사용합니다:

1349 

1350* `<name>`: 플러그인 이름 또는 `plugin-name@marketplace-name`

1351 

1352명령어는 다음 옵션을 허용합니다:

1353 

1354| 옵션 | 설명 | 기본값 |

1355| :----------- | :----------------- | :-- |

1356| `-h, --help` | 명령어에 대한 도움말을 표시합니다 | |

1357 

1358출력은 각 컴포넌트에 대해 두 개의 비용 수치를 표시합니다:

1359 

1360* **Always-on:** 스킬 설명, 에이전트 설명, 명령어 이름과 같은 플러그인의 목록 텍스트에 의해 모든 세션에 추가되는 토큰입니다. 어떤 컴포넌트도 실행되지 않는지 여부와 관계없이 추가됩니다.

1361* **On-invoke:** 컴포넌트가 실행될 때 비용이 드는 토큰입니다. 일반적인 세션이 컴포넌트의 부분 집합만 호출하기 때문에 플러그인 전체가 아닌 컴포넌트당 표시됩니다.

1362 

1363이 예제는 두 개의 스킬이 있는 플러그인의 출력 모양을 보여줍니다:

1364 

1365```

1366dependency-guard 1.2.0

1367 Dependency analysis for Claude Code sessions

1368 Source: dependency-guard@example-marketplace

1369 

1370Component inventory

1371 Skills (2) scan-dependencies, review-changes

1372 Agents (0)

1373 Hooks (1) SessionStart (harness-only — no model context cost)

1374 MCP servers (0)

1375 LSP servers (0)

1376 

1377Projected token cost

1378 Always-on: ~180 tok added to every session

1379 

1380Per-component (rounded)

1381 component always-on on-invoke

1382 scan-dependencies ~100 ~2400

1383 review-changes ~80 ~1800

1384 

1385 On-invoke cost is paid each time a skill or agent fires.

1386 Token counts are estimates and may differ from actual usage.

1387```

1388 

1389always-on 합계는 활성 모델에 대한 `count_tokens` API를 통해 계산됩니다. 컴포넌트별 숫자는 해당 합계에서 비례적으로 확장됩니다. API에 도달할 수 없으면 명령어는 문자 기반 추정으로 폴백합니다.

1390 

1391<h3 id="plugin-validate">

1392 plugin validate

1393</h3>

1394 

1395플러그인 또는 마켓플레이스를 게시하기 전에 구문 및 스키마 오류를 확인합니다.

1396 

1397명령어는 유효성 검사가 통과하면 0으로, 실패하면 1로, 경로를 읽을 수 없는 경우와 같이 유효성 검사 실행 자체가 실패하면 2로 종료됩니다.

1398 

1399```bash theme={null}

1400claude plugin validate <path> [options]

1401```

1402 

1403명령어는 다음 인수를 사용합니다:

1404 

1405* `<path>`: 플러그인 디렉터리 또는 마켓플레이스 디렉터리의 경로입니다. 플러그인 실행이 포함하는 파일에 대해서는 [Validate a plugin or a directory without a manifest](/docs/ko/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest)를 참조하십시오.

1406 

1407명령어는 다음 옵션을 허용합니다:

1408 

1409| 옵션 | 설명 | 기본값 |

1410| :----------- | :-------------------------------------------------------------------------------------------------------- | :-- |

1411| `--strict` | 경고를 오류로 취급하고 경고에서 1로 종료합니다. CI에서 사용하여 [unrecognized fields](#unrecognized-fields)와 같이 런타임이 허용하는 문제를 포착합니다 | |

1412| `--json` | 유효성 검사 보고서를 동일한 종료 코드를 가진 하나의 JSON 객체로 출력합니다. Claude Code v2.1.259 이상 필요 | |

1413| `-h, --help` | 명령어에 대한 도움말을 표시합니다 | |

1414 

1415`--json`을 사용하면 Claude Code는 보고서를 stdout에 다음 최상위 필드를 가진 하나의 JSON 객체로 작성합니다:

1416 

1417* `success`: 종료 코드가 제공하는 동일한 판정

1418* `strict`: 실행이 경고를 오류로 취급했는지 여부

1419* `target`: Claude Code가 유효성을 검사한 확인된 경로

1420* `manifest`: 매니페스트 자체의 결과 또는 [run without a manifest](/docs/ko/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest)의 경우 `null`

1421* `contents`: 파일별 결과, 각각 `file`을 명명하고 `errors`, `warnings`, 및 `notes` 배열을 포함합니다

1422 

1423종료 2에서 명령어는 stdout에 아무것도 작성하지 않습니다. 오류 메시지는 stderr로 이동합니다.

1424 

1425대화형 세션 내에서 `/plugin validate <path>`는 동일한 검사를 인라인으로 실행합니다.

1426 

1427<h3 id="plugin-eval">

1428 plugin eval

1429</h3>

1430 

1431플러그인의 [eval cases](/docs/ko/plugin-evals)를 실행하고 점수가 매겨진 결과를 보고합니다. Claude Code v2.1.269 이상 필요합니다. 각 경우는 프롬프트와 채점자입니다. Claude Code는 대상 플러그인만 로드된 격리된 세션에서 여러 번 실행하며, 기본적으로 플러그인 없이도 실행하므로 보고서는 차이를 보여줍니다. 경우 형식, 채점자, 결과 및 CI 사용에 대해서는 [Test plugins with evals](/docs/ko/plugin-evals)를 참조하십시오.

1432 

1433```bash theme={null}

1434claude plugin eval [target] [options]

1435```

1436 

1437선택적 `target`은 플러그인 디렉터리, 단일 `prompt.md` 또는 `case.yaml` 파일, `name` 또는 `name@marketplace`로 설치된 플러그인, 또는 `name@skills-dir`이며, 기본값은 현재 디렉터리입니다. `--tag`, `--allow-tools`, `--json` 앞에 배치합니다.

1438 

1439이 표는 대부분의 실행이 사용하는 옵션을 나열합니다. `claude plugin eval --help`를 실행하여 `--case`, `--tag`, `--output-dir`, `--report`, `--allow-real-servers`, `--keep-temp`, `--verbose`를 포함한 전체 집합을 확인하십시오.

1440 

1441| 옵션 | 설명 | 기본값 |

1442| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------- |

1443| `--runs <n>` | 팔당 경우당 실행 | 각 경우의 `runs`, 그렇지 않으면 3 |

1444| `-j, --concurrency <n>` | 동시에 실행할 에이전트 세션, 1\~8. 속도 제한을 공유합니다 | `1` |

1445| `--model <model>` | 테스트 중인 에이전트의 모델 | 각 경우의 `model`, 그렇지 않으면 `ANTHROPIC_MODEL`이 설정되면, 그렇지 않으면 Claude Code의 기본값 |

1446| `--judge-model <model>` | `llm` 및 `baseline` 채점자의 모델 | 작은 빠른 모델 |

1447| `--ablation <mode>` | `none` 또는 `with-without`. [Compare against a no-plugin baseline](/docs/ko/plugin-evals#compare-against-a-no-plugin-baseline) 참조 | 플러그인이 확인되면 `with-without`, 그렇지 않으면 `none` |

1448| `--threshold <0..1>` | 어떤 경우든 이 아래로 점수가 매겨지면 1로 종료 | `1.0` |

1449| `--max-cost-usd <usd>` | 지출이 이에 도달하면 다음 실행 전에 중지하고, 2로 종료하고, 부분 결과를 보고합니다 | 상한 없음 |

1450| `--allow-tools <tools...>` | 읽기 전용 집합 이상의 도구를 부여합니다(예: `Bash`, `Write`, `Edit`, 또는 `"mcp__plugin_<plugin>_<server>__*"`). [Grant tools](/docs/ko/plugin-evals#grant-tools) 참조 | |

1451| `--scaffold` | 각 경우의 [`scaffold_script`](/docs/ko/plugin-evals#add-setup-or-history-with-case-yaml) 실행 | 꺼짐 |

1452| `--trust-plugin` | 첫 실행 신뢰 프롬프트를 건너뜁니다(CI용). [What a run can access](/docs/ko/plugin-evals#security) 참조 | 꺼짐 |

1453| `--mocks <mode>` | `record` 또는 `off`. [Mock MCP servers](/docs/ko/plugin-evals#mock-mcp-servers) 참조 | `record` |

1454| `--eval-dir <dir>` | 경우를 보유하는 플러그인 아래의 디렉터리 | 매니페스트의 `experimental.evals`, 그렇지 않으면 `evals` |

1455| `--json [path]` | [result document](/docs/ko/plugin-evals#json-result)를 stdout으로 인쇄하거나 `.json` 경로에 작성합니다 | |

1456| `--no-publish` | HTML 보고서를 로컬로 유지합니다 | |

1457| `-h, --help` | 명령어에 대한 도움말을 표시합니다 | |

1458 

1459명령어는 모든 경우가 임계값을 충족하면 0으로, 실패한 경우, 로드 오류 또는 신뢰할 수 없는 플러그인 디렉터리에서 1로, 부분 실행에서 2로, 중단되면 130으로, 종료되면 143으로 종료됩니다. [Run evals in CI](/docs/ko/plugin-evals#run-evals-in-ci)를 참조하십시오.

1460 

1461<h3 id="plugin-eval-init">

1462 plugin eval init

1463</h3>

1464 

1465현재 디렉터리의 플러그인에 대한 eval 스위트를 생성합니다. Claude Code v2.1.269 이상 필요합니다. 터미널에서 이것은 플러그인을 읽고, 경우와 채점자를 제안하고, 파일럿하고, 파일을 작성하는 작성 인터뷰를 시작합니다. `--bare`를 사용하거나 터미널 없이 대신 빈 단일 경우 템플릿을 작성합니다. 대화형 Claude Code 세션 내에서 실행하면 해당 세션이 따를 인터뷰 지침을 인쇄합니다. [Create your first eval suite](/docs/ko/plugin-evals#create-your-first-eval-suite)를 참조하십시오.

1466 

1467```bash theme={null}

1468claude plugin eval init [name] [options]

1469```

1470 

1471선택적 `name`은 경우 이름입니다: 인터뷰는 필요하지 않지만 `--bare` 및 터미널 없는 템플릿 경로는 필요합니다. 이러한 옵션을 수락합니다:

1472 

1473| 옵션 | 설명 | 기본값 |

1474| :------------------ | :------------------------------------------------------------------- | :------------------------------------------- |

1475| `--bare` | `<name>`에 대해 빈 `prompt.md` 및 `graders/criteria.md`를 작성합니다(인터뷰 실행 대신) | |

1476| `-i, --interactive` | 인터뷰를 요구합니다. 템플릿을 작성하는 대신 터미널 없이 실패합니다 | |

1477| `--eval-dir <dir>` | 경우를 작성할 현재 디렉터리 아래의 디렉터리 | 매니페스트의 `experimental.evals`, 그렇지 않으면 `evals` |

1478| `-h, --help` | 명령어에 대한 도움말을 표시합니다 | |

1479 

1480<h3 id="plugin-tag">

1481 plugin tag

1482</h3>

1483 

1484플러그인에 대한 릴리스 git 태그를 생성합니다. 기본적으로 명령어는 현재 디렉터리의 플러그인에 태그를 지정합니다. 다른 곳의 플러그인에 태그를 지정하려면 경로를 전달합니다. [Tag plugin releases](/docs/ko/plugin-dependencies#tag-plugin-releases-for-version-resolution)를 참조하십시오.

1485 

1486```bash theme={null}

1487claude plugin tag [path] [options]

1488```

1489 

1490명령어는 다음 인수를 사용합니다:

1491 

1492* `[path]`: 플러그인 디렉터리의 경로입니다. 기본값은 현재 디렉터리입니다.

1493 

1494명령어는 다음 옵션을 허용합니다:

1495 

1496| 옵션 | 설명 | 기본값 |

1497| :-------------------- | :------------------------------------ | :------- |

1498| `--push` | 태그를 생성한 후 원격으로 푸시합니다 | |

1499| `--dry-run` | 태그를 생성하지 않고 태그될 항목을 인쇄합니다 | |

1500| `-f, --force` | 작업 트리가 더티하거나 태그가 이미 존재하더라도 태그를 생성합니다 | |

1501| `-m, --message <msg>` | 태그 주석 메시지입니다. 버전의 자리 표시자로 `%s`를 사용합니다 | |

1502| `--remote <name>` | `--push`로 푸시할 원격입니다 | `origin` |

1503| `-h, --help` | 명령어에 대한 도움말을 표시합니다 | |

1504 

1505***

1506 

1507<h2 id="debugging-and-development-tools">

1508 디버깅 및 개발 도구

1509</h2>

1510 

1511<h3 id="debugging-commands">

1512 디버깅 명령어

1513</h3>

1514 

1515`claude --debug`를 사용하여 플러그인 로딩 세부 정보를 확인합니다:

1516 

1517다음을 표시합니다:

1518 

1519* 로드되는 플러그인

1520* 플러그인 매니페스트의 오류

1521* Skill, agent, hook 등록

1522* MCP 서버 초기화

1523 

1524<h3 id="common-issues">

1525 일반적인 문제

1526</h3>

1527 

1528| 문제 | 원인 | 해결 방법 |

1529| :---------------------------------- | :------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1530| 플러그인이 로드되지 않음 | 잘못된 `plugin.json` | `claude plugin validate ./my-plugin` 또는 `/plugin validate ./my-plugin`을 실행합니다. 여기서 `./my-plugin`은 플러그인 디렉토리이며, `plugin.json`, `hooks/hooks.json`, 플러그인의 기본 디렉토리에 있는 skills, agents, commands의 frontmatter에서 구문 및 스키마 오류를 확인합니다. 실행 범위에 대해서는 [플러그인 또는 매니페스트 없는 디렉토리 검증](/docs/ko/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest)을 참조하십시오 |

1531| Skills가 나타나지 않음 | 잘못된 디렉토리 구조 | `skills/` 또는 `commands/`가 플러그인 루트에 있는지 확인하고, `.claude-plugin/` 내부에 있지 않은지 확인합니다 |

1532| Hooks가 실행되지 않음 | 스크립트가 실행 가능하지 않음 | `chmod +x script.sh`를 실행합니다 |

1533| MCP 서버 실패 | `${CLAUDE_PLUGIN_ROOT}` 누락 | 모든 플러그인 경로에 변수를 사용합니다 |

1534| 경로 오류 | 절대 경로 사용됨 | 경로를 상대 경로로 변경하고 `./`로 시작합니다. [경로 동작 규칙](#path-behavior-rules)을 참조하십시오. 이는 `skills` 필드의 `"."` 예외를 다룹니다 |

1535| LSP `Executable not found in $PATH` | 언어 서버가 설치되지 않음 | 바이너리를 설치합니다 (예: `npm install -g typescript-language-server typescript`) |

1536 

1537<h3 id="example-error-messages">

1538 예제 오류 메시지

1539</h3>

1540 

1541**매니페스트 검증 오류**:

1542 

1543* `Invalid JSON syntax: Unexpected token } in JSON at position 142`: 누락된 쉼표, 추가 쉼표 또는 따옴표 없는 문자열이 있는지 확인합니다

1544* `Plugin <name> has an invalid manifest file at .claude-plugin/plugin.json. Validation errors: name: Invalid input: expected string, received undefined`: 필수 필드가 누락되었습니다

1545* `Plugin <name> has a corrupt manifest file at .claude-plugin/plugin.json. JSON parse error: ...`: JSON 구문 오류입니다. v2.1.246 이전에는 Claude Code가 UTF-8로 저장되고 선행 바이트 순서 표시(BOM)가 있는 `plugin.json`에 대해서도 이 오류를 생성했습니다. JSON이 다른 방식으로는 유효했더라도 말입니다.

1546 

1547**플러그인 로딩 오류**:

1548 

1549* `Warning: No commands found in plugin my-plugin custom directory: ./cmds. Expected .md files or SKILL.md in subdirectories.`: 명령 경로가 존재하지만 유효한 명령 파일이 포함되지 않습니다

1550* `Plugin directory not found at path: ./plugins/my-plugin. Check that the marketplace entry has the correct path.`: marketplace.json의 `source` 경로가 존재하지 않는 디렉토리를 가리킵니다

1551* `Plugin my-plugin has conflicting manifests: both plugin.json and marketplace entry specify components.`: 중복 구성 요소 정의를 제거하거나 marketplace 항목에서 `strict: false`를 제거합니다

1552 

1553<h3 id="hook-troubleshooting">

1554 Hook 문제 해결

1555</h3>

1556 

1557**Hook 스크립트가 실행되지 않음**:

1558 

15591. 스크립트가 실행 가능한지 확인합니다: `chmod +x ./scripts/your-script.sh`

15602. shebang 줄을 확인합니다: 첫 번째 줄은 `#!/bin/bash` 또는 `#!/usr/bin/env bash`여야 합니다

15613. 경로가 `${CLAUDE_PLUGIN_ROOT}`를 사용하는지 확인합니다: `"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/your-script.sh"`

15624. 스크립트를 수동으로 테스트합니다: `./scripts/your-script.sh`

1563 

1564**Hook이 예상 이벤트에서 트리거되지 않음**:

1565 

15661. 이벤트 이름이 올바른지 확인합니다 (대소문자 구분): `postToolUse`가 아닌 `PostToolUse`

15672. matcher 패턴이 도구와 일치하는지 확인합니다: 파일 작업의 경우 `"matcher": "Write|Edit"`

15683. hook 유형이 유효한지 확인합니다: `command`, `http`, `mcp_tool`, `prompt`, 또는 `agent`

1569 

1570<h3 id="mcp-server-troubleshooting">

1571 MCP 서버 문제 해결

1572</h3>

1573 

1574**서버가 시작되지 않음**:

1575 

15761. 명령이 존재하고 실행 가능한지 확인합니다

15772. 모든 경로가 `${CLAUDE_PLUGIN_ROOT}` 변수를 사용하는지 확인합니다

15783. MCP 서버 로그를 확인합니다: `claude --debug`는 초기화 오류를 표시합니다

15794. Claude Code 외부에서 서버를 수동으로 테스트합니다

1580 

1581**서버 도구가 나타나지 않음**:

1582 

15831. 서버가 `.mcp.json` 또는 `plugin.json`에서 올바르게 구성되었는지 확인합니다

15842. 서버가 MCP 프로토콜을 올바르게 구현하는지 확인합니다

15853. 디버그 출력에서 연결 시간 초과를 확인합니다

1586 

1587<h3 id="directory-structure-mistakes">

1588 디렉토리 구조 오류

1589</h3>

1590 

1591**증상**: 플러그인이 로드되지만 구성 요소(skills, agents, hooks)가 누락되었습니다.

1592 

1593**올바른 구조**: 구성 요소는 플러그인 루트에 있어야 하며, `.claude-plugin/` 내부에 있지 않아야 합니다. `plugin.json`만 `.claude-plugin/`에 속합니다.

1594 

1595**디버그 체크리스트**:

1596 

15971. `claude --debug`를 실행하고 "loading plugin" 메시지를 찾습니다

15982. 각 구성 요소 디렉토리가 디버그 출력에 나열되어 있는지 확인합니다

15993. 파일 권한이 플러그인 파일 읽기를 허용하는지 확인합니다

1600 

1601***

1602 

1603<h2 id="distribution-and-versioning-reference">

1604 배포 및 버전 관리 참고자료

1605</h2>

1606 

1607<h3 id="version-management">

1608 버전 관리

1609</h3>

1610 

1611Claude Code는 플러그인의 버전을 캐시 키로 사용하여 업데이트 가능 여부를 결정합니다. `/plugin update`를 실행하거나 자동 업데이트가 실행될 때, Claude Code는 현재 버전을 계산하고 이미 설치된 버전과 일치하면 업데이트를 건너뜁니다. [로컬 디렉터리 마켓플레이스에서 제자리에 로드](#plugin-caching-and-file-resolution)된 플러그인은 버전 문자열이 무엇이든 상관없이 매 세션 시작 시 현재 소스 파일을 로드합니다.

1612 

1613`command` 외의 모든 소스 유형에 대해 Claude Code는 다음 중 설정된 첫 번째 항목에서 버전을 확인합니다:

1614 

16151. 플러그인의 `plugin.json`에 있는 `version` 필드

16162. `marketplace.json`의 플러그인 마켓플레이스 항목에 있는 `version` 필드

16173. git 호스팅 마켓플레이스의 `github`, `url`, `git-subdir`, 상대 경로 소스에 대한 플러그인 소스의 git 커밋 SHA

16184. [`archive` 소스](/docs/ko/plugin-marketplaces#zip-archives)의 경우 SHA-256 다이제스트: 마켓플레이스 항목의 `sha256` 핀 또는 핀을 설정하지 않았을 때 다운로드된 파일의 다이제스트입니다. Claude Code는 이를 처음 12자로 단축합니다.

16195. `npm` 소스 또는 git 저장소 내에 있지 않은 로컬 디렉터리의 경우 `unknown`

1620 

1621[`command` 소스](/docs/ko/plugin-marketplaces#command-sources)의 경우 Claude Code는 항상 명령이 생성한 내용에서 버전을 파생합니다: 자체적으로 12자 콘텐츠 해시이거나, 하나가 설정되어 있을 때 `<version>-<hash>` 형식으로 `plugin.json` 버전에 추가됩니다. Claude Code는 command 소스에 대해 마켓플레이스 항목의 `version` 필드를 무시합니다. 해시된 출력이 변경되는 명령은 작성된 버전 문자열이 동일하게 유지되더라도 새 버전을 생성합니다. [링크 모드](/docs/ko/plugin-marketplaces#copy-mode-and-link-mode)에서 해시는 인쇄된 디렉터리의 실제 경로와 파일 콘텐츠가 아닌 최상위 항목을 포함합니다.

1622 

1623이러한 소스 유형의 경우 플러그인을 버전 관리하는 세 가지 방법이 있습니다:

1624 

1625| 접근 방식 | 방법 | 업데이트 동작 | 최적 사용 |

1626| :------------ | :--------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------- |

1627| **명시적 버전** | `plugin.json`에서 `"version": "2.1.0"`을 설정합니다. | 사용자는 이 필드를 업데이트할 때만 업데이트를 받습니다. 이를 업데이트하지 않고 새 커밋을 푸시하면 효과가 없으며, `/plugin update`는 "이미 최신 버전입니다"를 보고합니다. [제자리에 로드](#plugin-caching-and-file-resolution)된 플러그인의 경우 새 콘텐츠가 어쨌든 로드됩니다. | 안정적인 릴리스 주기를 가진 게시된 플러그인 |

1628| **커밋-SHA 버전** | `plugin.json`과 마켓플레이스 항목 모두에서 `version`을 생략합니다. | 사용자는 소스의 확인된 커밋이 변경될 때마다 업데이트를 받습니다. | 활발한 개발 중인 내부 또는 팀 플러그인 |

1629| **다이제스트 버전** | [`archive` 소스](/docs/ko/plugin-marketplaces#zip-archives)를 사용하고 `plugin.json`과 마켓플레이스 항목 모두에서 `version`을 생략합니다. | `sha256` 핀을 사용하면 사용자는 핀을 변경할 때 업데이트를 받습니다. 핀이 없으면 사용자는 호스팅된 zip 파일의 바이트가 변경될 때마다 업데이트를 받습니다. | 정적 서버 또는 아티팩트 저장소에 zip 파일로 게시된 플러그인 |

1630 

1631명시적 버전을 사용하는 경우 [의미 있는 버전 관리](https://semver.org)(`MAJOR.MINOR.PATCH`)를 따릅니다: 주요 변경 사항의 경우 MAJOR를 업데이트하고, 새 기능의 경우 MINOR를 업데이트하고, 버그 수정의 경우 PATCH를 업데이트합니다. `CHANGELOG.md`에서 변경 사항을 문서화합니다.

1632 

1633***

1634 

1635<h2 id="see-also">

1636 참고 항목

1637</h2>

1638 

1639* [플러그인](/docs/ko/plugins) - 튜토리얼 및 실제 사용

1640* [플러그인 마켓플레이스](/docs/ko/plugin-marketplaces) - 마켓플레이스 생성 및 관리

1641* [Skills](/docs/ko/skills) - Skill 개발 세부 정보

1642* [Subagents](/docs/ko/sub-agents) - Agent 구성 및 기능

1643* [Hooks](/docs/ko/hooks) - 이벤트 처리 및 자동화

1644* [MCP](/docs/ko/mcp) - 외부 도구 통합

1645* [설정](/docs/ko/settings) - 플러그인의 구성 옵션

Details

1> ## Documentation Index

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

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

4 

5# Anthropic의 마켓플레이스

6 

7> Claude Code를 위한 Anthropic의 공식, 커뮤니티, 데모 플러그인 마켓플레이스: 이름, 저장소, 각각을 추가하는 방법, 플러그인을 찾아보는 위치.

8 

9Anthropic은 Claude Code를 위한 세 가지 범용 플러그인 마켓플레이스를 발행합니다: [공식](https://github.com/anthropics/claude-plugins-official), [커뮤니티](https://github.com/anthropics/claude-plugins-community), [데모](https://github.com/anthropics/claude-code). 각각은 자신의 GitHub 저장소에 있는 플러그인 카탈로그입니다. Claude Code 세션에서 이 중 하나에서 플러그인을 설치할 때, `/plugin install commit-commands@claude-plugins-official`처럼 `@` 뒤에 마켓플레이스 이름을 입력합니다.

10 

11이 페이지를 사용하여 세 가지 마켓플레이스를 구분하고 공식 마켓플레이스에 특정 플러그인이 있는지 확인할 수 있는 위치를 찾습니다.

12 

13<Note>

14 다음 경우는 다른 페이지에서 다룹니다:

15 

16 * **플러그인 설치 방법**: [플러그인 설치](/docs/ko/plugins/install) 참조

17 * **설치 실패**: [플러그인 문제 해결](/docs/ko/plugins/troubleshooting) 참조

18</Note>

19 

20필요한 페이지 부분으로 이동합니다:

21 

22* 저장소, 마켓플레이스 이름, 각각을 얻는 방법으로 세 가지 마켓플레이스를 구분하려면 [Anthropic의 마켓플레이스](#anthropic%E2%80%99s-marketplaces)를 참조합니다.

23* 공식 마켓플레이스에서 플러그인을 찾으려면 [공식 마켓플레이스에서 플러그인 찾기](#find-plugins-in-the-official-marketplace)를 참조합니다.

24 

25<h2 id="anthropic’s-marketplaces">

26 Anthropic의 마켓플레이스

27</h2>

28 

29마켓플레이스는 저장소가 `.claude-plugin/marketplace.json` 파일에 정의하는 플러그인 카탈로그입니다. 공식, 커뮤니티, 데모 마켓플레이스는 각각 자신의 GitHub 저장소에서 제공됩니다. Anthropic은 또한 `anthropics/skills` 및 `anthropics/knowledge-work-plugins`와 같은 주제별 마켓플레이스를 발행하며, Claude Code 세션에서 `/plugin marketplace add <owner>/<repo>`로 추가합니다.

30 

31이 표는 각 마켓플레이스의 저장소와 마켓플레이스 이름을 제공하며, 이는 해당 마켓플레이스에서 플러그인을 설치할 때 `@` 뒤에 입력하는 것입니다. 커뮤니티 마켓플레이스의 이름은 저장소 이름이 아닌 `claude-community`입니다.

32 

33| | 공식 | 커뮤니티 | 데모 |

34| :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------- |

35| 저장소 | [`anthropics/claude-plugins-official`](https://github.com/anthropics/claude-plugins-official) | [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) | [`anthropics/claude-code`](https://github.com/anthropics/claude-code/tree/main/plugins) |

36| 마켓플레이스 이름 | `claude-plugins-official` | `claude-community` | `claude-code-plugins` |

37| 포함 내용 | Anthropic이 유지 관리하는 플러그인, 파트너 및 기타 작성자의 플러그인 | 작성자가 Anthropic에 제출한 타사 플러그인 | 플러그인이 포함할 수 있는 것을 보여주는 작은 예제 플러그인 세트 |

38| 얻는 방법 | Claude Code는 [관리 정책](/docs/ko/plugins/org#allow-the-official-marketplace-and-your-own)이나 `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`이 차단하지 않는 한 대화형 터미널 세션을 처음 시작할 때 추가합니다. 누락된 경우 [마켓플레이스 `claude-plugins-official` 찾을 수 없음](/docs/ko/plugins/troubleshooting#marketplace-claude-plugins-official-not-found) 참조 | Claude Code 세션에서 `/plugin marketplace add anthropics/claude-plugins-community`로 추가합니다 | Claude Code 세션에서 `/plugin marketplace add anthropics/claude-code`로 추가합니다 |

39 

40플러그인을 작성했고 다른 사람들이 설치하도록 하려면 [플러그인 발행](/docs/ko/plugins/publish)을 참조하십시오. 이는 자신의 마켓플레이스와 커뮤니티 마켓플레이스에 제출하는 것을 다룹니다.

41 

42<h3 id="the-demo-marketplace-in-anthropics/claude-code">

43 `anthropics/claude-code`의 데모 마켓플레이스

44</h3>

45 

46튜토리얼이나 이전 지침 세트에서 `/plugin marketplace add anthropics/claude-code`를 실행하도록 말하면, 이는 `claude-code-plugins`라는 데모 마켓플레이스를 추가합니다. 이는 Claude Code가 이미 추가한 공식 마켓플레이스가 아닙니다.

47 

48데모 마켓플레이스의 플러그인 대부분은 같은 이름으로 공식 마켓플레이스에도 있습니다. 예를 들어, `code-review`, `feature-dev`, `commit-commands`, `security-guidance`는 둘 다에 있습니다. 두 개의 복사본이 설치되지 않도록 `claude-plugins-official`에서 이들을 설치합니다.

49 

50<h2 id="find-plugins-in-the-official-marketplace">

51 공식 마켓플레이스에서 플러그인 찾기

52</h2>

53 

54공식 마켓플레이스인 `claude-plugins-official`은 Claude Code가 추가하는 것입니다. 나열된 대부분의 내용은 Anthropic이 아닌 파트너 및 기타 작성자에게서 제공됩니다: 도구 공급업체는 Claude Code를 자신의 서비스에 연결하는 플러그인을 발행하고, Anthropic은 `commit-commands`, `code-review`, `feature-dev` 및 [언어 서버 플러그인](/docs/ko/plugins/code-intelligence)과 같은 더 작은 자신의 세트를 유지 관리합니다. 카탈로그는 자주 변경되므로 이 페이지에는 나열되지 않습니다.

55 

56포함된 내용을 보려면 Claude Code 세션에서 `/plugin`의 **발견** 탭을 사용하십시오. 이를 검색하거나 웹에서 [Claude 마켓플레이스](https://claude.com/marketplace/plugins)를 찾아볼 수 있습니다.

57 

58<h2 id="browse-and-install-from-anthropic’s-marketplaces">

59 Anthropic의 마켓플레이스에서 찾아보기 및 설치

60</h2>

61 

62Claude Code, 웹 또는 GitHub에서 Anthropic의 마켓플레이스에서 플러그인을 검색할 수 있습니다:

63 

64* **Claude Code에서 찾아보기**: 대화형 세션에서 `/plugin`을 실행합니다. **발견** 탭에는 추가한 마켓플레이스의 플러그인이 나열됩니다.

65* **Claude Code에서 이름으로**: 세션에서 `/plugin install <name>`을 실행하면, 추가한 마켓플레이스에서 이름을 조회합니다. 플러그인이 그 중 하나에 있으면 세부 정보가 `/plugin` 패널에서 열리고, [설치 범위](/docs/ko/plugins/install#install-a-plugin)를 선택하고 확인할 때까지 아무것도 설치되지 않습니다. 없으면 `Plugin "<name>" not found in any marketplace`가 표시됩니다.

66* **웹에서**: [Claude 마켓플레이스](https://claude.com/marketplace/plugins)에서 전체 카탈로그를 검색하면, 설치 수를 표시하고 일부 플러그인을 **Anthropic 검증됨**으로 표시합니다.

67* **GitHub에서**: [`anthropics/claude-plugins-official`](https://github.com/anthropics/claude-plugins-official)과 같은 마켓플레이스의 저장소에서 `.claude-plugin/marketplace.json`을 엽니다. 해당 파일이 카탈로그 자체입니다.

68 

69데스크톱 앱에서 또는 스크립트에서 설치하거나 클라우드 세션이 로드하는 것을 보려면 [플러그인 설치](/docs/ko/plugins/install)를 참조합니다.

70 

71<h3 id="add-the-community-or-demo-marketplace">

72 커뮤니티 또는 데모 마켓플레이스 추가

73</h3>

74 

75커뮤니티 및 데모 마켓플레이스는 Claude Code 세션에서 추가할 때까지 등록되지 않습니다:

76 

77* **커뮤니티**: `/plugin marketplace add anthropics/claude-plugins-community`를 실행한 다음 `@claude-community` 접미사로 설치합니다.

78* **데모**: `/plugin marketplace add anthropics/claude-code`를 실행한 다음 `@claude-code-plugins` 접미사로 설치합니다.

79 

80`claude-plugins-official`이 `/plugin`의 **마켓플레이스** 탭에 없으면 `/plugin marketplace add anthropics/claude-plugins-official`로 같은 방식으로 추가합니다.

81 

82`not found` 오류 및 추가되지 않는 마켓플레이스는 [플러그인 문제 해결](/docs/ko/plugins/troubleshooting#install-a-plugin)을 참조합니다.

83 

84<h2 id="third-party-marketplaces">

85 타사 마켓플레이스

86</h2>

87 

88많은 인기 있는 플러그인은 Anthropic 마켓플레이스에 없습니다. 이들은 저자의 자체 마켓플레이스에 있으며, 보통 루트에 `.claude-plugin/marketplace.json`이 있는 GitHub 저장소입니다.

89 

90Anthropic은 타사 마켓플레이스를 검토하지 않으므로, 마켓플레이스를 추가하기 전에 [플러그인 보안 및 신뢰](/docs/ko/plugins/security)를 읽으십시오.

91 

92타사 마켓플레이스를 사용하려면 Claude Code 세션에서 `/plugin marketplace add <owner>/<repo>`를 사용하여 저장소를 추가한 다음, `/plugin install <plugin>@<marketplace-name>`으로 설치하십시오. 마켓플레이스 이름은 해당 `marketplace.json`의 `name` 필드이며, Claude Code는 마켓플레이스를 추가한 후 이를 출력합니다.

93 

94마켓플레이스를 추가하는 다른 방법은 [마켓플레이스 추가](/docs/ko/plugins/install#add-a-marketplace)를 참조하십시오.

95 

96<h2 id="next-steps">

97 다음 단계

98</h2>

99 

100* [플러그인 설치 및 관리](/docs/ko/plugins/install): 이 마켓플레이스 중 하나에서 플러그인을 설치하고 범위를 선택합니다

101* [플러그인 보안 및 신뢰](/docs/ko/plugins/security): 플러그인이 컴퓨터에서 할 수 있는 것과 설치하기 전에 검토하는 방법

102* [코드 인텔리전스 플러그인](/docs/ko/plugins/code-intelligence): 공식 마켓플레이스의 언어 서버 플러그인 중 하나를 설치합니다

103* [마켓플레이스 만들기](/docs/ko/plugins/create-marketplace): Anthropic의 마켓플레이스와 함께 자신의 마켓플레이스를 실행합니다

plugins/cli-hints.md +136 −0 created

Details

1> ## Documentation Index

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

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

4 

5# CLI에서 플러그인 추천하기

6 

7> CLI 또는 SDK에서 claude-code-hint 태그를 내보내 Claude Code 사용자에게 공식 마켓플레이스 플러그인 설치를 유도합니다.

8 

9CLI 또는 SDK를 유지 관리하는 경우, 도구가 Claude Code 사용자에게 플러그인 설치를 유도할 수 있습니다. CLI가 Claude Code 내부에서 실행 중임을 감지하면, 한 줄의 `<claude-code-hint />` 태그를 stderr에 작성합니다. Claude Code는 모델이 출력을 보기 전에 Bash 및 PowerShell 도구 출력에서 해당 줄을 제거한 후, 사용자에게 일회성 설치 프롬프트를 표시합니다.

10 

11이 페이지는 플러그인이 `claude-plugins-official` 또는 Anthropic의 [공식 마켓플레이스 이름](/docs/ko/plugins/security#official-marketplace-names) 중 하나인 다른 마켓플레이스에 나열된 경우에만 적용됩니다. 커뮤니티 마켓플레이스인 `claude-community`는 해당하지 않습니다.

12 

13<Note>

14 플러그인을 게시하려면 [플러그인 게시 및 배포](/docs/ko/plugins/publish)를 참조하세요.

15</Note>

16 

17<h2 id="emit-the-hint">

18 힌트 내보내기

19</h2>

20 

21`CLAUDECODE` 또는 `CLAUDE_CODE_CHILD_SESSION`이 설정된 경우에만 태그를 내보내므로, 사용자가 CLI를 직접 실행할 때는 나타나지 않습니다.

22 

23Claude Code는 Bash 및 PowerShell 도구를 통해 실행하는 명령과 훅 명령에서 `CLAUDECODE=1`을 설정합니다. v2.1.172 이상에서는 `CLAUDE_CODE_CHILD_SESSION=1`도 설정합니다. 변수는 이를 전달하는 프로세스가 다릅니다:

24 

25* **`CLAUDECODE`**: 모든 Claude Code 버전에서 설정됩니다. IDE 확장 프로그램도 통합 터미널에서 설정하므로, `CLAUDECODE`만으로 게이트하면 사용자가 해당 터미널 중 하나에서 CLI를 직접 실행할 때도 태그가 내보내집니다.

26* **`CLAUDE_CODE_CHILD_SESSION`**: Claude Code 자체가 시작하는 서브프로세스에서만 설정됩니다. v2.1.172 이상이 필요한 경우 사용하세요.

27 

28[환경 변수 참조](/docs/ko/env-vars)에 세부 정보가 있습니다.

29 

30다음 예제는 가장 광범위한 도달을 위해 `CLAUDECODE`로 게이트하고 공식 마켓플레이스의 `example-cli`라는 플러그인에 대한 힌트를 내보냅니다:

31 

32<CodeGroup>

33 ```javascript Node.js theme={null}

34 if (process.env.CLAUDECODE) {

35 process.stderr.write(

36 '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />\n',

37 )

38 }

39 ```

40 

41 ```python Python theme={null}

42 import os, sys

43 

44 if os.environ.get("CLAUDECODE"):

45 print(

46 '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />',

47 file=sys.stderr,

48 )

49 ```

50 

51 ```go Go theme={null}

52 if os.Getenv("CLAUDECODE") != "" {

53 fmt.Fprintln(os.Stderr,

54 `<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />`)

55 }

56 ```

57 

58 ```shell Shell theme={null}

59 if [ -n "$CLAUDECODE" ]; then

60 printf '%s\n' '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />' >&2

61 fi

62 ```

63</CodeGroup>

64 

65공식 마켓플레이스에서 플러그인의 이름으로 `example-cli`를 바꾸세요.

66 

67Claude Code가 각 플러그인에 대해 한 번씩 프롬프트하므로 모든 호출에서 힌트를 내보낼 수 있습니다.

68 

69내보내기를 확인하려면 터미널에서 `CLAUDECODE=1 example-cli`를 실행하고 태그 줄이 stderr에 나타나는지 확인한 후, 변수 없이 `example-cli`를 실행하고 추가 항목이 인쇄되지 않는지 확인하세요.

70 

71<h2 id="hint-format">

72 힌트 형식

73</h2>

74 

75태그는 자체 줄을 차지해야 합니다. Claude Code는 줄 중간에 포함된 태그를 무시합니다.

76 

77태그는 세 가지 속성을 사용하며, 모두 필수입니다:

78 

79| 속성 | 설명 |

80| :------ | :------------------------------- |

81| `v` | 프로토콜 버전. `1`이 유일하게 지원되는 값입니다. |

82| `type` | 힌트 종류. `plugin`이 유일하게 지원되는 값입니다. |

83| `value` | `name@marketplace` 형식의 플러그인 식별자 |

84 

85값은 큰따옴표로 묶거나 따옴표 없이 사용할 수 있습니다. 따옴표 없는 값은 공백을 포함할 수 없습니다.

86 

87Claude Code는 `v` 또는 `type`이 인식되지 않을 때도 줄을 출력에서 제거합니다.

88 

89<h2 id="check-when-the-prompt-appears">

90 프롬프트가 나타나는 시기 확인

91</h2>

92 

93프롬프트는 대화형 터미널 세션에서만 나타납니다. `claude -p` 실행, 서브에이전트 실행, 훅 명령 출력에서는 태그가 제거되고 프롬프트가 표시되지 않습니다. 다음 확인 사항도 모두 통과해야 합니다:

94 

95* **공식 및 설치 가능**: `value`가 Claude Code가 공식 마켓플레이스의 로컬 복사본에서 찾은 플러그인을 지정하고, 아직 설치되지 않았으며, 정책이 차단하지 않습니다.

96* **분석 켜짐**: Claude Code의 분석이 꺼진 세션(예: `DISABLE_TELEMETRY`, `DO_NOT_TRACK` 또는 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정된 세션)이나 Amazon Bedrock과 같은 타사 제공자의 세션에서는 프롬프트가 표시되지 않습니다. 여기서 [자동 원격 분석 옵트아웃](/docs/ko/data-usage#default-behaviors-by-api-provider)이 적용됩니다.

97* **빈도 제한**: 세션당 한 번의 프롬프트, 사용자의 답변과 관계없이 플러그인당 한 번의 프롬프트, 그리고 해당 머신에서 100개의 플러그인에 대해 프롬프트가 표시된 후에는 없습니다.

98* **꺼지지 않음**: 사용자가 **아니오, 플러그인 설치 힌트를 다시 표시하지 않기**를 선택하지 않았습니다.

99* **로컬, 참석 세션**: 세션의 작업 공간이 클라우드나 원격 머신이 아닌 로컬이고, 세션이 무인으로 실행되지 않습니다. 예를 들어 `--cloud`로 시작된 세션, 원격 제어를 제공하는 세션, 또는 에이전트 팀 팀원은 프롬프트를 표시하지 않습니다.

100 

101<h2 id="preview-what-the-user-sees">

102 사용자가 보는 내용 미리보기

103</h2>

104 

105[프롬프트가 나타나는 시기 확인](#check-when-the-prompt-appears)의 확인 사항이 통과하면, Claude Code는 다음과 같은 **플러그인 추천** 대화 상자를 표시합니다:

106 

107```text theme={null}

108─────────────────────────────────────────────────────────────

109 Plugin recommendation

110 

111 The example-cli command suggests installing a plugin.

112 

113 Plugin: example-cli

114 Marketplace: claude-plugins-official

115 Description: Official integration for example-cli deployments

116 

117 Would you like to install it?

118 ❯ 1. Yes, install

119 2. No

120 3. No, and don't show plugin installation hints again

121 

122─────────────────────────────────────────────────────────────

123```

124 

125대화 상자는 Claude가 실행한 셸 명령의 첫 번째 단어를 지정하므로 사용자가 불일치를 발견할 수 있습니다. 각 답변은 하나의 효과를 가집니다:

126 

127* **예, 설치**: [사용자 범위](/docs/ko/plugins/install)에서 플러그인을 설치합니다.

128* **아니오, 플러그인 설치 힌트를 다시 표시하지 않기**: 해당 사용자에 대한 향후 힌트 프롬프트를 끕니다.

129* **30초 동안 답변 없음**: **아니오**로 계산됩니다.

130 

131<h2 id="next-steps">

132 다음 단계

133</h2>

134 

135* [플러그인 게시 및 배포](/docs/ko/plugins/publish): 힌트가 필요한 공식 마켓플레이스를 포함한 각 마켓플레이스로의 경로

136* [플러그인 명령 참조](/docs/ko/plugins/cli-reference#plugin-install): 세션 외부에서 동일한 플러그인을 설치하는 셸 명령

plugins/cli-reference.md +843 −0 created

Details

1> ## Documentation Index

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

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

4 

5# 플러그인 명령어 참조

6 

7> claude 플러그인 셸 명령어, 세션 내 /plugin 및 /reload-plugins, 그리고 한 세션 동안 플러그인을 로드하는 플래그에 대한 완전한 참조입니다.

8 

9플러그인 명령어는 셸이나 스크립트에서 `claude plugin`으로 실행하거나, Claude Code 세션 내에서 `/plugin` 및 `/reload-plugins`로 실행합니다. 이 참조는 각 명령어의 플래그, 기본값, 출력 및 종료 코드와 함께 한 세션 동안 플러그인을 로드하는 두 가지 플래그를 제공합니다.

10 

11빌드에서 `claude plugin --help`를 실행하여 버전에 어떤 하위 명령어가 있는지 확인하세요.

12 

13<Note>

14 다음 경우는 다른 페이지에서 다룹니다:

15 

16 * **단계 설치 및 관리, 그리고 `/plugin`이 실행되는 위치**: [플러그인 설치 및 관리](/docs/ko/plugins/install) 참조

17 * **명령어가 디스크에서 변경하는 내용 및 어떤 범위가 우선순위를 갖는지**: [플러그인 로딩 참조](/docs/ko/plugins/loading) 참조

18 * **오류 메시지의 의미**: [플러그인 문제 해결](/docs/ko/plugins/troubleshooting) 참조

19</Note>

20 

21<h2 id="claude-plugin-commands">

22 claude plugin 명령어

23</h2>

24 

25셸이나 스크립트에서 Claude Code 세션 외부에서 `claude plugin <subcommand>`를 실행합니다. 이러한 하위 명령어는 [`/plugin`](#plugin-in-a-session) 패널을 열지 않고 플러그인을 설치하고 관리합니다.

26 

27`claude plugins`는 `claude plugin`의 별칭입니다.

28 

29모든 하위 명령어는 다음 종료 코드, 플러그인 인수 및 범위 값을 공유합니다:

30 

31* **종료 코드**: 성공 시 `0`, 실패 시 `1`. `validate`는 예상치 못한 오류에 대해 종료 `2`를 추가하고, `eval`은 [해당 섹션](#plugin-eval)에 나열된 코드를 추가합니다.

32* **플러그인 인수**: `<plugin>` 인수는 플러그인 `name` 또는 `name@marketplace`입니다. 두 마켓플레이스가 같은 이름을 제공할 때는 정규화된 형식을 사용하세요.

33* **범위**: `--scope`는 `user`, `project` 또는 `local`을 사용하며, 명령어가 쓰는 설정 파일의 이름을 지정합니다. `update`는 `managed`도 사용합니다.

34 

35<h3 id="plugin-init">

36 plugin init

37</h3>

38 

39`~/.claude/skills/<name>/`에서 새 플러그인을 스캐폴드합니다. 다음 세션에서 설치 단계 없이 `<name>@skills-dir`로 로드됩니다.

40 

41`new`는 `init`의 별칭입니다.

42 

43이 명령어로 시작하는 생성, 테스트 및 편집 워크플로우는 [플러그인 생성](/docs/ko/plugins/create)을 참조하세요.

44 

45```bash theme={null}

46claude plugin init <name> [options]

47```

48 

49`<name>`은 `~/.claude/skills/` 아래의 디렉토리 이름이 되고 플러그인의 매니페스트에서 `name`이 됩니다.

50 

51명령어에는 다른 위치에 대한 플래그가 없습니다. 대신 프로젝트 내에서 스캐폴드하려면 [플러그인 생성](/docs/ko/plugins/create)을 참조하세요.

52 

53| 플래그 | 설명 |

54| :----------------------- | :----------------------------------------------------------------------------------------- |

55| `--description <text>` | 매니페스트 설명 |

56| `--author <name>` | 작성자 이름. 기본값은 `git config user.name` |

57| `--author-email <email>` | 작성자 이메일. 기본값은 `git config user.email` |

58| `--with <components...>` | `skills`, `agents`, `hooks`, `mcp`, `lsp`, `output-style` 또는 `channel`에 대한 스타터 파일도 스캐폴드합니다 |

59| `-f, --force` | 대상의 기존 `.claude-plugin/`을 덮어씁니다 |

60 

61스킬 및 훅 파일 스타터를 사용하여 플러그인을 스캐폴드합니다:

62 

63```bash theme={null}

64claude plugin init my-helper --with skills hooks

65```

66 

67Claude Code는 작성한 내용을 검증하고 `Created plugin "my-helper" at ~/.claude/skills/my-helper`를 출력한 후 로드되는 id와 이를 끄는 `claude plugin disable` 명령어를 출력합니다.

68 

69Claude Code는 안전하게 스캐폴드할 수 없을 때 `1`로 종료하고 메시지는 이유를 명시합니다. 다음은 일반적인 이유입니다:

70 

71* 알 수 없는 `--with` 값

72* `--force` 없이 대상에 기존 스캐폴드가 있음

73* skills-directory 플러그인을 차단하는 관리되는 설정

74 

75<h3 id="plugin-install">

76 plugin install

77</h3>

78 

79추가한 마켓플레이스에서 플러그인을 설치합니다. `i`는 `install`의 별칭입니다.

80 

81```bash theme={null}

82claude plugin install <plugin> [options]

83```

84 

85대부분의 플러그인은 프롬프트 없이 설치됩니다. 마켓플레이스 항목이 [설치를 위해 명령어를 실행](/docs/ko/plugins/host-marketplace)하거나 [다운로드를 위해 `headersHelper`를 설정](/docs/ko/plugins/host-marketplace#how-users-accept-a-headershelper-command)하는 플러그인의 경우, Claude Code는 먼저 명령어를 출력하고 `Run this command now? [y/N]`을 묻습니다.

86 

87| 플래그 | 설명 |

88| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

89| `-s, --scope <scope>` | 설치 범위: `user`, `project` 또는 `local`. 기본값은 `user` |

90| `--config <key=value>` | 플러그인의 매니페스트가 선언하는 [`userConfig`](/docs/ko/plugins/manifest-reference) 옵션을 설정합니다. 각 옵션에 대해 플래그를 반복합니다. Claude Code v2.1.147 이상 필요 |

91| `-y, --yes` | `Run this command now?` 프롬프트 없이 표시된 설치 명령어를 수락합니다. Bash 도구나 훅과 같이 Claude Code 세션 내에서 명령어가 실행될 때는 무시됩니다. Claude Code v2.1.229 이상 필요 |

92| `--accept-command <sha256>` | 이전 [`--json` 실행](#plugin-json-result)이 `shownCommand`에서 보고한 `sha256`을 가진 표시된 설치 명령어를 수락합니다. `-y` 대신 사용합니다. `-y`와 결합할 수 없습니다. [표시된 설치 명령어 수락](#accept-a-displayed-install-command)을 참조하세요. Claude Code v2.1.271 이상 필요 |

93| `--json` | 스크립트에서 사용하기 위해 stdout의 마지막 줄에 하나의 JSON 객체로 결과를 출력합니다. [JSON 결과 형식](#plugin-json-result)을 참조하세요. Claude Code v2.1.268 이상 필요 |

94 

95자신의 터미널에서 `-y`를 전달하여 프롬프트 없이 표시된 명령어를 수락합니다. TTY가 없을 때와 Claude가 명령어를 실행할 때 어떤 일이 발생하는지 다음과 같습니다:

96 

97* **stdin 또는 stdout이 TTY가 아니고 `-y` 또는 `--accept-command`를 전달하지 않음**: 설치가 거부됩니다. 출력은 명령어가 표시되었을 뿐이라고 말하고 종료 코드는 `1`입니다

98* **Claude가 Bash 도구를 통해 명령어를 실행**: `-y`는 무시됩니다. 대신 자신의 터미널에서 명령어를 실행하세요

99 

100프로젝트를 복제하는 모든 사람을 위해 플러그인을 설치합니다:

101 

102```bash theme={null}

103claude plugin install formatter@my-marketplace --scope project

104```

105 

106Claude Code는 `Successfully installed plugin: formatter@my-marketplace (scope: project)`를 출력합니다. 새로운 것이 설치되지 않으면 출력은 이유를 설명합니다:

107 

108* **해당 범위에 이미 설치됨**: 출력은 `Plugin "formatter@my-marketplace" is already installed (scope: project)`이고 종료 코드는 `0`입니다

109* **명령어 소스 프롬프트를 거부함**: 출력은 `Aborted.`이고 종료 코드는 `1`입니다

110* **`headersHelper` 프롬프트를 거부하거나 TTY 없이 확인할 수 없음**: 출력은 `Aborted — the command was not run.`이고 종료 코드는 `1`입니다

111 

112<h4 id="plugin-json-result">

113 JSON 결과 형식

114</h4>

115 

116`plugin install`에 `--json`을 전달하면 stdout의 마지막 줄은 하나의 JSON 객체입니다. 마켓플레이스가 선언한 명령어가 앞에 출력될 수 있으므로 해당 줄만 파싱하세요.

117 

118세 가지 필드는 항상 존재합니다:

119 

120* `command`: 실행된 하위 명령어(예: `install`)

121* `outcome`: `ok` 또는 `failed`

122* `message`: 결과에 대한 사람이 읽을 수 있는 설명

123 

124`pluginId`, `scope` 및 `failureCode`와 같은 다른 필드는 적용될 때만 나타납니다.

125 

126`plugin uninstall`, `plugin update`, `plugin enable` 및 `plugin disable`의 `--json` 옵션은 해당 하위 명령어의 자체 필드를 포함한 동일한 객체를 출력합니다.

127 

128사용 오류(예: 잘못된 `--scope`)는 결과 줄을 출력하지 않고 stderr의 이유와 함께 `1`로 종료합니다.

129 

130<h4 id="accept-a-displayed-install-command">

131 표시된 설치 명령어 수락

132</h4>

133 

134`--json` 실행이 마켓플레이스에서 선언한 명령어를 표시하고 실행하지 않으면 `failed` 결과는 `shownCommand` 객체도 포함합니다. 해당 필드에는 표시된 명령어, 속한 플러그인 및 명령어의 `sha256`이 포함됩니다.

135 

136정확히 그 명령어를 수락하려면 자신의 터미널에서 해당 `sha256`을 `--accept-command`로 다시 실행하세요. 플래그는 Claude Code 세션 내에서 효과가 없기 때문입니다. Claude Code v2.1.271 이상 필요합니다.

137 

138`sha256`은 정확히 그 명령어, 플러그인 및 마켓플레이스 카탈로그에 대한 수락으로 계산됩니다. 명령어가 표시된 이후 이들 중 하나라도 변경되면 Claude Code는 `sha256`을 수락하지 않고 명령어를 다시 표시합니다. 실행 자체의 마켓플레이스 새로고침이 가져오는 변경도 그러한 변경으로 계산됩니다.

139 

140`shownCommand.acceptCommandMatched`가 `false`이면 전달한 `sha256`이 현재 표시된 명령어와 일치하지 않습니다. 해당 명령어를 검토한 후 해당 `sha256`으로 다시 실행하세요.

141 

142<h3 id="plugin-uninstall">

143 plugin uninstall

144</h3>

145 

146설치된 플러그인을 한 범위에서 제거합니다. `remove` 및 `rm`은 `uninstall`의 별칭입니다.

147 

148```bash theme={null}

149claude plugin uninstall <plugin> [options]

150```

151 

152| 플래그 | 설명 |

153| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- |

154| `-s, --scope <scope>` | 범위에서 제거: `user`, `project` 또는 `local`. 기본값은 `user` |

155| `--keep-data` | 플러그인의 지속적 데이터 디렉토리 `~/.claude/plugins/data/<id>/`를 보존합니다 |

156| `--prune` | 남은 플러그인이 필요하지 않은 자동 설치된 [종속성](/docs/ko/plugins/dependencies)도 제거합니다 |

157| `-y, --yes` | `--prune` 확인 프롬프트를 건너뜁니다. stdin 또는 stdout이 TTY가 아닐 때 `--prune`과 함께 필요합니다 |

158| `--json` | stdout의 마지막 줄에 하나의 JSON 객체로 결과를 출력합니다. [`plugin install --json`](#plugin-json-result)과 동일한 형식입니다. `--prune`과 결합할 수 없습니다. Claude Code v2.1.268 이상 필요 |

159 

160프로젝트 범위에서 플러그인을 제거합니다:

161 

162```bash theme={null}

163claude plugin uninstall formatter@my-marketplace --scope project

164```

165 

166Claude Code는 `Successfully uninstalled plugin: formatter (scope: project)`를 출력합니다. 플러그인이 해당 범위에 설치되지 않으면 명령어는 `Failed to uninstall plugin "formatter@my-marketplace":`로 시작하는 줄을 출력하고 `1`로 종료합니다.

167 

168<h3 id="plugin-enable">

169 plugin enable

170</h3>

171 

172비활성화된 플러그인을 활성화합니다. [claude.ai에서 동기화된 플러그인](/docs/ko/plugins/loading#synced-plugins)의 경우 `<name>@synced`를 플러그인으로 전달합니다.

173 

174```bash theme={null}

175claude plugin enable <plugin> [options]

176```

177 

178| 플래그 | 설명 |

179| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------- |

180| `-s, --scope <scope>` | 활성화할 범위: `user`, `project` 또는 `local`. 생략하면 자동 감지됩니다 |

181| `--json` | stdout의 마지막 줄에 하나의 JSON 객체로 결과를 출력합니다. [`plugin install --json`](#plugin-json-result)과 동일한 형식입니다. Claude Code v2.1.268 이상 필요 |

182 

183`--scope` 없이 명령어는 local, project, user 순서로 설정 파일을 확인하고 플러그인을 언급하는 첫 번째 범위를 사용합니다.

184 

185플러그인이 선언되지 않은 `--scope`를 전달하면 명령어는 재정의를 쓰거나 실패합니다:

186 

187* **선언하는 범위보다 [우선순위를 갖는](/docs/ko/plugins/loading) 범위**: Claude Code는 전달한 범위에서 재정의를 씁니다. 예를 들어 `claude plugin disable formatter --scope local`은 프로젝트에서 활성화된 플러그인을 당신만 끕니다

188* **다른 범위**: 명령어는 `Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.`로 실패합니다

189 

190플러그인이 해결된 범위에서 이미 활성화되어 있으면 명령어는 `Plugin "formatter" is already enabled`를 출력하고 `1`로 종료합니다. `--json`을 사용하면 결과는 `"failureCode": "already_in_goal_state"`와 `"alreadyInGoalState": true`를 가지므로 스크립트는 그 경우를 성공으로 처리할 수 있습니다.

191 

192플러그인이 [종속성](/docs/ko/plugins/dependencies)을 선언하면 Claude Code는 이들도 활성화합니다. 명령어는 다음 경우에 실패합니다:

193 

194* **종속성이 설치되지 않음**: 활성화가 실패하고 누락된 각 종속성에 대해 `claude plugin install` 명령어를 출력합니다

195* **종속성이 조직의 플러그인 정책에 의해 차단됨**: 활성화가 실패하고 차단된 종속성의 이름을 지정합니다

196* **종속성이 대상 범위보다 높은 우선순위를 가진 범위에서 `false`로 설정됨**: 활성화가 실패합니다. 해당 범위에서 종속성을 활성화하거나 `--scope`를 전달하여 거기에 쓰세요

197 

198선언된 곳 어디든 플러그인을 다시 활성화합니다:

199 

200```bash theme={null}

201claude plugin enable formatter

202```

203 

204Claude Code는 `Successfully enabled plugin: formatter (scope: project)`를 출력하고 감지된 범위의 이름을 지정합니다.

205 

206<h3 id="plugin-disable">

207 plugin disable

208</h3>

209 

210플러그인을 제거하지 않고 비활성화합니다. [claude.ai에서 동기화된 플러그인](/docs/ko/plugins/loading#synced-plugins)의 경우 `<name>@synced`를 플러그인으로 전달합니다.

211 

212```bash theme={null}

213claude plugin disable [plugin] [options]

214```

215 

216| 플래그 | 설명 |

217| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------- |

218| `-a, --all` | 활성화된 모든 플러그인을 비활성화합니다. 플러그인 이름이나 `--scope`와 결합할 수 없습니다 |

219| `-s, --scope <scope>` | 비활성화할 범위: `user`, `project` 또는 `local`. 생략하면 자동 감지됩니다 |

220| `--json` | stdout의 마지막 줄에 하나의 JSON 객체로 결과를 출력합니다. [`plugin install --json`](#plugin-json-result)과 동일한 형식입니다. Claude Code v2.1.268 이상 필요 |

221 

222`--scope` 없이 범위는 [`plugin enable`](#plugin-enable)과 동일한 local, project, user 순서로 자동 감지됩니다.

223 

224플러그인 이름이나 `--all`을 전달하지 않으면 Claude Code는 `Please specify a plugin name or use --all to disable all plugins`를 출력하고 `1`로 종료합니다. 이미 비활성화된 플러그인을 비활성화하면 `Plugin "formatter" is already disabled`를 출력하고 `1`로 종료합니다. [`plugin enable`](#plugin-enable)이 이미 활성화된 플러그인에 대해 하는 것처럼 말입니다.

225 

226명령어는 여전히 필요한 플러그인에 대해 실패합니다:

227 

228* **다른 활성화된 플러그인이 [이에 종속](/docs/ko/plugins/dependencies)됨**: 명령어는 실패하고 먼저 비활성화할 종속성의 이름을 지정합니다

229* **조직이 동기화된 플러그인으로 이를 요구함**: 명령어는 실패하고 아무것도 저장하지 않습니다

230 

231한 플러그인을 비활성화합니다:

232 

233```bash theme={null}

234claude plugin disable formatter

235```

236 

237Claude Code는 `Successfully disabled plugin: formatter (scope: project)`를 출력합니다.

238 

239<h3 id="plugin-update">

240 plugin update

241</h3>

242 

243플러그인을 마켓플레이스가 제공하는 최신 버전으로 업데이트합니다. 새 버전은 다음 세션에 로드되거나 실행 중인 세션에서 `/reload-plugins`를 실행한 후 로드됩니다.

244 

245```bash theme={null}

246claude plugin update <plugin> [options]

247```

248 

249| 플래그 | 설명 |

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

251| `-s, --scope <scope>` | 업데이트할 범위: `user`, `project`, `local` 또는 `managed`. 기본값은 플러그인이 설치된 범위입니다 |

252| `-y, --yes` | [명령어 소스](/docs/ko/plugins/host-marketplace) 플러그인에서 변경된 설치 명령어를 프롬프트 없이 수락합니다. stdin 또는 stdout이 TTY가 아닐 때 필요합니다. `--accept-command`를 전달하지 않는 한 필요합니다. Claude Code v2.1.229 이상 필요 |

253| `--accept-command <sha256>` | 이전 [`--json` 실행](#plugin-json-result)이 `shownCommand`에서 보고한 `sha256`을 가진 마켓플레이스에서 선언한 명령어를 수락합니다. `-y` 대신 사용합니다. `-y`와 결합할 수 없습니다. Claude Code v2.1.271 이상 필요 |

254| `--json` | stdout의 마지막 줄에 하나의 JSON 객체로 결과를 출력합니다. [`plugin install --json`](#plugin-json-result)과 동일한 형식입니다. Claude Code v2.1.268 이상 필요 |

255 

256`managed`는 업데이트할 수 있지만 설치할 수 없는 유일한 범위입니다. 관리자가 설치한 플러그인의 경우 [조직을 위한 플러그인 관리](/docs/ko/plugins/org)를 참조하세요.

257 

258플러그인을 업데이트합니다:

259 

260```bash theme={null}

261claude plugin update formatter@my-marketplace

262```

263 

264Claude Code는 `Checking for updates for plugin "formatter@my-marketplace"…`를 출력한 후 결과를 출력합니다. 더 새로운 것이 없으면 `formatter is already at the latest version (1.0.0).`를 출력하고 `0`으로 종료합니다.

265 

266설치된 플러그인과 일치하는 베어 플러그인 이름을 전달할 수 있습니다. 다른 마켓플레이스의 설치된 플러그인이 이름을 공유하면 명령어는 업데이트를 거부하고 실행할 정규화된 `plugin-name@marketplace-name` 명령어를 나열합니다. 베어 이름으로 업데이트하려면 Claude Code v2.1.246 이상이 필요합니다.

267 

268<h3 id="plugin-list">

269 plugin list

270</h3>

271 

272설치된 플러그인을 버전, 범위 및 상태와 함께 나열합니다.

273 

274```bash theme={null}

275claude plugin list [options]

276```

277 

278| 플래그 | 설명 |

279| :------------ | :------------------------------------------------------ |

280| `--json` | 목록을 JSON으로 출력합니다 |

281| `--available` | 설치하지 않은 마켓플레이스가 제공하는 플러그인도 나열합니다. `--json` 없이는 효과가 없습니다 |

282 

283Claude Code는 각 플러그인이 로드되는 방식에 따라 사람이 읽을 수 있는 출력을 그룹화합니다:

284 

285* **`Installed plugins:`**: 마켓플레이스에서 설치한 플러그인

286* **`Session-only plugins (--plugin-dir / --plugin-url):`**: 같은 명령어에서 이러한 플래그로 로드된 플러그인(예: `claude --plugin-dir ./my-plugin plugin list`)

287* **`Skills-directory plugins (.claude/skills/*):`**: Claude Code가 skills 디렉토리에서 찾은 플러그인

288* **`Synced from claude.ai`**: [claude.ai 계정에서 동기화된 플러그인](/docs/ko/plugins/loading#synced-plugins)

289 

290어떤 그룹에도 아무것도 없으면 Claude Code는 ``No plugins installed. Use `claude plugin install` to install a plugin.``를 출력합니다.

291 

292<h4 id="json-output">

293 JSON 출력

294</h4>

295 

296`--json`을 사용하면 Claude Code는 설치당 하나의 객체를 포함하는 배열을 출력합니다. 각 객체는 아래 필드를 포함합니다. `id`, `version`, `scope`, `enabled` 및 `installPath`는 항상 존재하고 다른 필드는 적용될 때만 나타납니다.

297 

298| 필드 | 유형 | 설명 |

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

300| `id` | string | 설치의 경우 `name@marketplace`, 세션 전용 플러그인의 경우 `name@inline`, skills-directory 플러그인의 경우 `name@skills-dir`, claude.ai에서 동기화된 플러그인의 경우 `name@synced` |

301| `version` | string | 마켓플레이스 설치의 경우 [Claude Code가 설치 시 계산한](/docs/ko/plugins/loading#versions-and-updates) 버전입니다. 세션 전용, skills-directory 또는 동기화된 플러그인의 경우 매니페스트의 `version` 또는 선언하지 않을 때 `unknown` |

302| `scope` | string | 설치의 경우 `user`, `project`, `local` 또는 `managed`; skills-directory 플러그인의 경우 `user` 또는 `project`; 세션 전용 플러그인의 경우 `session`; claude.ai에서 동기화된 플러그인의 경우 `synced` |

303| `enabled` | boolean | 병합된 설정에서 플러그인이 활성화되어 있는지 여부 |

304| `installPath` | string | 플러그인이 로드되는 디렉토리 |

305| `installedAt` | string | 설치의 ISO 타임스탬프입니다. 마켓플레이스 설치만 해당 |

306| `lastUpdated` | string | 마지막 업데이트의 ISO 타임스탬프입니다. 마켓플레이스 설치만 해당 |

307| `projectPath` | string | 설치가 속한 프로젝트입니다. `project` 및 `local` 범위만 해당 |

308| `mcpServers` | object | 마켓플레이스에서 설치한 플러그인이 있을 때 플러그인의 MCP 서버 정의 |

309| `errors` | array of strings | 플러그인이 로드되지 않았을 때 오류를 로드합니다 |

310| `notes` | array of strings | 로드되고 작동하는 플러그인에 대한 작성 경고 |

311| `errorDetails` | array of objects | 각 `errors` 항목당 하나의 객체로 진단 `type`과 플러그인, 마켓플레이스, 서버 또는 파일과 같이 참조하는 이름을 제공합니다. Claude Code v2.1.268 이상 필요 |

312| `noteDetails` | array of objects | 각 `notes` 항목에 대한 동일한 세부 객체입니다. Claude Code v2.1.268 이상 필요 |

313 

314`--json --available`을 사용하면 Claude Code는 배열 대신 하나의 객체를 출력합니다. 해당 `installed` 필드는 설치된 플러그인 객체의 배열을 보유하고 `available` 필드는 아래 필드를 포함하는 설치되지 않은 마켓플레이스 플러그인당 하나의 객체를 보유합니다.

315 

316| 필드 | 유형 | 설명 |

317| :---------------- | :--------------- | :-------------------------------------------------------------------------------- |

318| `pluginId` | string | `name@marketplace` |

319| `name` | string | 마켓플레이스의 플러그인 이름 |

320| `marketplaceName` | string | 이를 제공하는 마켓플레이스 |

321| `source` | string or object | 마켓플레이스 항목의 [source](/docs/ko/plugins/marketplace-reference): 상대 경로의 경우 문자열, 그 외의 경우 객체 |

322| `description` | string | 항목의 설명(있을 때) |

323| `version` | string | 항목의 버전(선언할 때) |

324| `installCount` | number | 설치 수(Claude Code가 플러그인에 대해 가지고 있을 때) |

325 

326<h3 id="plugin-details">

327 plugin details

328</h3>

329 

330플러그인의 구성 요소 인벤토리 및 예상 토큰 비용을 표시합니다.

331 

332플러그인은 로드되어야 합니다: 설치되거나, skills 디렉토리에서 찾거나, 같은 명령어에서 `--plugin-dir` 또는 `--plugin-url`로 전달됩니다. `<name>`은 플러그인 `name` 또는 `name@marketplace`입니다.

333 

334```bash theme={null}

335claude plugin details <name>

336```

337 

338명령어는 `--help` 이외의 플래그를 사용하지 않습니다.

339 

340설치된 플러그인이 기여하는 것을 표시합니다:

341 

342```bash theme={null}

343claude plugin details formatter

344```

345 

346Claude Code는 플러그인의 이름, 버전, 설명 및 소스를 출력한 후 다음 섹션을 출력합니다:

347 

348* **`Component inventory`**: 플러그인의 skills, agents, hooks, MCP 서버 및 LSP 서버

349* **`Projected token cost`**: 플러그인이 모든 세션에 추가하는 항상 켜진 토큰

350* **`Per-component (rounded)`**: 각 skill, agent 및 명령어에 대한 항상 켜진 및 호출 시 추정치입니다. 플러그인에 없을 때 생략됩니다

351 

352두 비용 수치가 의미하는 바는 [플러그인 비용 및 사용량 측정](/docs/ko/plugins/measure)을 참조하세요.

353 

354로드되지 않은 플러그인의 경우 Claude Code는 ``Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.``를 출력하고 `1`로 종료합니다.

355 

356<h3 id="plugin-prune">

357 plugin prune

358</h3>

359 

360설치된 플러그인이 더 이상 필요하지 않은 자동 설치된 [종속성](/docs/ko/plugins/dependencies)을 제거합니다. 명령어는 직접 설치한 플러그인을 절대 제거하지 않습니다. `autoremove`는 `prune`의 별칭입니다.

361 

362```bash theme={null}

363claude plugin prune [options]

364```

365 

366| 플래그 | 설명 |

367| :-------------------- | :------------------------------------------------- |

368| `-s, --scope <scope>` | 범위에서 정리: `user`, `project` 또는 `local`. 기본값은 `user` |

369| `--dry-run` | 제거하지 않고 제거될 항목을 나열합니다 |

370| `-y, --yes` | 확인 프롬프트를 건너뜁니다. stdin 또는 stdout이 TTY가 아닐 때 필요합니다 |

371 

372정리가 제거할 항목을 미리 봅니다:

373 

374```bash theme={null}

375claude plugin prune --dry-run

376```

377 

378Claude Code는 고아 종속성을 나열하고 `(dry run — nothing removed)`로 끝냅니다. 제거할 것이 없으면 `Nothing to prune`으로 시작하는 줄을 출력합니다.

379 

380`--dry-run` 없이 명령어는 프롬프트에서 확인하거나 `-y`를 전달한 후에만 고아 종속성을 제거합니다.

381 

382프롬프트에서 어떻게 답하든 종료 코드는 `0`입니다.

383 

384`prune`이 하는 일은 터미널이 연결되어 있는지와 `-y`를 전달하는지에 따라 다릅니다:

385 

386| 터미널 및 플래그 | 어떤 일이 발생하는지 |

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

388| 대화형 터미널, `-y` 없음 | 고아 종속성을 나열하고 `Remove? [y/N]`을 묻습니다 |

389| 모든 터미널, `-y` | 제거하고 `Removed N auto-installed plugins: <names>`를 출력합니다 |

390| TTY가 아닌 stdin 또는 stdout, `-y` 없음 | 목록을 출력하고 ``Not a TTY — run `claude plugin prune -y` to remove.``를 출력하고 아무것도 제거하지 않습니다 |

391 

392<h3 id="plugin-eval">

393 plugin eval

394</h3>

395 

396플러그인의 [eval 케이스](/docs/ko/plugin-evals)를 실행하고 점수가 매겨진 결과를 보고합니다. Claude Code v2.1.269 이상 필요합니다.

397 

398각 케이스는 프롬프트와 채점자입니다. Claude Code는 대상 플러그인만 로드된 격리된 세션에서 여러 번 실행하고 기본적으로 플러그인 없이도 실행하므로 보고서는 차이를 보여줍니다.

399 

400케이스 형식, 채점자, 결과 및 CI 사용법은 [evals로 플러그인 테스트](/docs/ko/plugin-evals)를 참조하세요.

401 

402```bash theme={null}

403claude plugin eval [target] [options]

404```

405 

406선택적 `target`은 기본값이 현재 디렉토리이고 다음 형식 중 하나를 사용합니다:

407 

408* 플러그인 디렉토리

409* 단일 `prompt.md` 또는 `case.yaml` 파일

410* `name` 또는 `name@marketplace`로 설치된 플러그인

411* `name@skills-dir`

412 

413`--tag`, `--allow-tools` 및 `--json` 앞에 대상을 배치합니다. 이러한 각 옵션은 뒤따르는 단어를 값으로 사용하므로 이들 중 하나 뒤에 작성된 대상은 태그, 도구 이름 또는 대상 대신 JSON 출력 경로로 읽힙니다.

414 

415이 표는 대부분의 실행이 사용하는 옵션을 나열합니다. `--case`, `--tag`, `--output-dir`, `--report`, `--allow-real-servers`, `--keep-temp` 및 `--verbose`를 포함한 전체 집합에 대해 `claude plugin eval --help`를 실행하세요.

416 

417| 옵션 | 설명 | 기본값 |

418| :------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------- |

419| `--runs <n>` | 각 [arm](/docs/ko/plugin-evals#compare-against-a-no-plugin-baseline)의 케이스당 실행 | 각 케이스의 `runs`, 그렇지 않으면 3 |

420| `-j, --concurrency <n>` | 한 번에 실행할 에이전트 세션, 1\~8. 속도 제한을 공유합니다 | `1` |

421| `--model <model>` | 테스트 중인 에이전트의 모델 | 각 케이스의 `model`, 그렇지 않으면 `ANTHROPIC_MODEL`이 설정되어 있으면, 그렇지 않으면 Claude Code의 기본값 |

422| `--judge-model <model>` | `llm` 및 `baseline` 채점자의 모델 | 작은 빠른 모델 |

423| `--ablation <mode>` | `none` 또는 `with-without`. [플러그인 없는 기준선과 비교](/docs/ko/plugin-evals#compare-against-a-no-plugin-baseline)를 참조하세요 | 플러그인이 해결될 때 `with-without`, 그렇지 않으면 `none` |

424| `--threshold <0..1>` | 케이스가 이 아래로 점수를 받으면 1로 종료 | `1.0` |

425| `--max-cost-usd <usd>` | 지출이 이에 도달하면 다음 실행 전에 중지하고 2로 종료하고 부분 결과를 보고합니다 | 제한 없음 |

426| `--allow-tools <tools...>` | `Bash`, `Write`, `Edit` 또는 `"mcp__plugin_<plugin>_<server>__*"`와 같은 읽기 전용 집합 이상의 도구를 부여합니다. [도구 부여](/docs/ko/plugin-evals#grant-tools)를 참조하세요 | |

427| `--scaffold` | 각 케이스의 [`scaffold_script`](/docs/ko/plugin-evals#add-setup-or-history-with-case-yaml)를 실행합니다 | 꺼짐 |

428| `--trust-plugin` | 첫 실행 신뢰 프롬프트를 건너뜁니다(CI용). [실행이 액세스할 수 있는 것](/docs/ko/plugin-evals#security)을 참조하세요 | 꺼짐 |

429| `--mocks <mode>` | `record` 또는 `off`. [Mock MCP 서버](/docs/ko/plugin-evals#mock-mcp-servers)를 참조하세요 | `record` |

430| `--eval-dir <dir>` | 케이스를 보유하는 플러그인 아래의 디렉토리 | 매니페스트의 `experimental.evals`, 그렇지 않으면 `evals` |

431| `--json [path]` | [결과 문서](/docs/ko/plugin-evals#json-result)를 stdout으로 출력하거나 `.json` 경로에 씁니다 | |

432| `--no-publish` | HTML 보고서를 로컬로 유지합니다 | |

433 

434종료 코드는 실행이 어떻게 끝났는지 보고합니다. 파이프라인에서 이에 대해 조치하려면 [CI에서 evals 실행](/docs/ko/plugin-evals#run-evals-in-ci)을 참조하세요.

435 

436| 종료 코드 | 의미 |

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

438| `0` | 모든 케이스가 임계값을 충족합니다 |

439| `1` | 실패한 케이스, 로드 오류 또는 신뢰할 수 없는 플러그인 디렉토리 |

440| `2` | 부분 실행 |

441| `130` | 중단됨 |

442| `143` | 종료됨 |

443 

444<h3 id="plugin-eval-init">

445 plugin eval init

446</h3>

447 

448현재 디렉토리의 플러그인에 대한 eval 스위트를 만듭니다. Claude Code v2.1.269 이상 필요합니다. [첫 번째 eval 스위트 생성](/docs/ko/plugin-evals#create-your-first-eval-suite)을 참조하세요.

449 

450```bash theme={null}

451claude plugin eval init [name] [options]

452```

453 

454터미널에서 명령어는 작성 인터뷰를 위해 대화형 Claude Code 세션을 엽니다. 인터뷰에서 Claude는 다음을 수행합니다:

455 

4561. 플러그인을 읽습니다

4572. 잘 해야 할 일을 묻습니다

4583. 케이스와 채점자를 제안합니다

4594. 케이스 파일을 씁니다

4605. 케이스를 실행하고 채점자가 당신이 하는 방식으로 점수를 매기는지 확인하기 위해 당신과 함께 등급을 검토합니다

461 

462`--bare`를 사용하거나 터미널이 없으면 명령어는 대신 빈 단일 케이스 템플릿을 씁니다. Claude가 Claude Code 세션 내에서 명령어를 실행하면 명령어는 해당 세션이 따를 인터뷰 지침을 출력합니다.

463 

464선택적 `name`은 케이스 이름입니다. `--bare`를 사용하거나 터미널이 없을 때 필요합니다. 명령어가 해당 케이스에 대한 빈 템플릿을 쓰기 때문입니다. 인터뷰는 하나가 필요하지 않습니다.

465 

466명령어는 다음 옵션을 수락합니다:

467 

468| 옵션 | 설명 | 기본값 |

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

470| `--bare` | 인터뷰를 실행하는 대신 `<name>`에 대한 빈 `prompt.md` 및 `graders/criteria.md`를 씁니다 | |

471| `-i, --interactive` | 인터뷰를 요구합니다. 템플릿을 쓰는 대신 터미널이 없으면 실패합니다 | |

472| `--eval-dir <dir>` | 케이스를 쓸 현재 디렉토리 아래의 디렉토리 | 매니페스트의 `experimental.evals`, 그렇지 않으면 `evals` |

473 

474<h3 id="plugin-tag">

475 plugin tag

476</h3>

477 

478플러그인 릴리스에 대해 `<name>--v<version>`이라는 주석이 달린 git 태그를 만듭니다. 태그 지정 전에 명령어는 플러그인의 `plugin.json`과 이를 나열하는 마켓플레이스 항목이 버전에 동의하는지 확인합니다.

479 

480릴리스를 태그할 때는 [플러그인 게시](/docs/ko/plugins/publish)를 참조하세요.

481 

482```bash theme={null}

483claude plugin tag [path] [options]

484```

485 

486`[path]`는 플러그인 디렉토리이며 기본값은 현재 디렉토리입니다. 명령어는 플러그인을 나열하는 `.claude-plugin/marketplace.json`에 대해 해당 디렉토리에서 위로 걸어가서 마켓플레이스 항목을 찾습니다.

487 

488| 플래그 | 설명 |

489| :-------------------- | :----------------------------------------------------- |

490| `--push` | 태그를 생성한 후 `--remote`로 푸시합니다 |

491| `--dry-run` | 태그를 생성하지 않고 태그 지정될 항목을 출력합니다 |

492| `-f, --force` | 더티 작업 트리 및 태그 이미 존재 확인을 건너뜁니다 |

493| `-m, --message <msg>` | 태그 주석 메시지입니다. `%s`는 버전을 나타냅니다. 기본값은 `<name> <version>` |

494| `--remote <name>` | `--push`로 푸시할 원격입니다. 기본값은 `origin` |

495 

496마켓플레이스 체크아웃의 플러그인에 대한 태그를 미리 봅니다:

497 

498```bash theme={null}

499claude plugin tag plugins/formatter --dry-run

500```

501 

502Claude Code는 계획을 출력합니다:

503 

504* 플러그인 이름

505* 버전 및 어느 파일에서 왔는지

506* 일치하는 마켓플레이스 항목(있을 때)

507* 태그 이름

508* 실행할 `git tag` 및 `git push` 명령어

509 

510`--dry-run` 없이 Claude Code는 `Created tag formatter--v1.0.0`을 출력하고 `Pushed to origin` 또는 직접 실행할 푸시 명령어를 출력합니다. 푸시가 실패하면 태그는 여전히 로컬로 생성되고 명령어는 오류로 종료됩니다.

511 

512명령어는 안전하게 태그 지정할 수 없을 때 `1`로 종료하고 이유를 출력합니다. 일반적인 이유는:

513 

514* `plugin.json` 또는 마켓플레이스 항목에 `version` 없음

515* 태그가 이미 존재함

516* 작업 트리가 더티함

517 

518<h3 id="plugin-validate">

519 plugin validate

520</h3>

521 

522플러그인 매니페스트, 마켓플레이스 매니페스트 또는 디렉토리의 skills, agents 및 명령어를 검증하고 CI 작업이 조치할 수 있는 코드로 종료합니다. 생성, 테스트 및 편집 워크플로우는 [플러그인 생성](/docs/ko/plugins/create)을 참조하세요. 검증자가 각 매니페스트에서 확인하는 내용은 [플러그인 매니페스트 참조](/docs/ko/plugins/manifest-reference) 및 [마켓플레이스 참조](/docs/ko/plugins/marketplace-reference)를 참조하세요.

523 

524```bash theme={null}

525claude plugin validate <path> [options]

526```

527 

528| 플래그 | 설명 |

529| :--------- | :--------------------------------------------------------------------------------------- |

530| `--strict` | 경고를 오류로 취급하므로 런타임이 허용하는 인식되지 않은 필드 및 누락된 메타데이터가 실행을 실패하게 합니다. Claude Code v2.1.145 이상 필요 |

531| `--json` | 검증 보고서를 동일한 종료 코드를 포함하는 하나의 JSON 객체로 출력합니다. Claude Code v2.1.259 이상 필요 |

532 

533커밋하기 전에 플러그인을 검증합니다:

534 

535```bash theme={null}

536claude plugin validate ./my-plugin --strict

537```

538 

539<h4 id="validate-a-directory">

540 디렉토리 검증

541</h4>

542 

543`<path>`는 매니페스트 파일 또는 디렉토리입니다. 디렉토리가 주어지면 Claude Code는 거기서 찾은 것으로 검증할 항목을 선택합니다:

544 

545* `.claude-plugin/marketplace.json`(존재할 때)

546* 그렇지 않으면 `.claude-plugin/plugin.json`

547* 그렇지 않으면 구성 요소 파일(디렉토리 이름으로 선택). 매니페스트 없이 구성 요소 파일을 검증하려면 Claude Code v2.1.233 이상이 필요합니다:

548 * `skills`, `agents` 또는 `commands`라는 디렉토리: 그 안의 파일

549 * `.claude`라는 디렉토리: 그 안의 `skills`, `agents` 및 `commands` 디렉토리

550 * 다른 디렉토리: 해당 `.claude` 아래의 세 디렉토리

551 

552Claude Code는 이름을 지정한 디렉토리 내의 심볼릭 링크를 따르지 않습니다. 링크가 있는 위치에 따라 어떤 일이 발생하는지:

553 

554* **플러그인 또는 `.claude` 루트 아래의 연결된 `skills`, `agents` 또는 `commands` 디렉토리**: Claude Code는 그 안의 아무것도 읽지 않았다고 경고합니다.

555* **`skills`, `agents` 또는 `commands` 디렉토리 내의 연결된 항목**: Claude Code는 이를 건너뛰고 경고하며 디렉토리당 세션이 로드할 건너뛴 항목 수를 경고합니다.

556* **이름을 지정한 `skills`, `agents` 또는 `commands` 디렉토리 자체가 심볼릭 링크이거나 해당 부모 `.claude` 디렉토리가 심볼릭 링크**: Claude Code는 오류를 보고하고 그 안의 아무것도 확인하지 않습니다. 대신 실제 디렉토리의 이름을 지정하세요.

557 

558몇 가지 파일은 검증 실행으로 읽지 않습니다:

559 

560* **플러그인 루트의 `SKILL.md`**: 플러그인 디렉토리에 대해 `claude plugin validate`를 실행하면 Claude Code는 플러그인 루트의 `SKILL.md`를 확인하지 않습니다

561* **플러그인 루트의 `CLAUDE.md`**: 플러그인 실행에서 Claude Code는 플러그인 루트의 `CLAUDE.md`에 대해서도 경고합니다

562* **마켓플레이스 실행의 플러그인 파일**: 마켓플레이스 디렉토리에서 Claude Code는 플러그인의 skill, agent, command 또는 hook 파일을 열지 않습니다. 이러한 파일의 오류를 찾으려면 각 플러그인 디렉토리를 검증하세요

563 

564<h4 id="output-and-exit-codes">

565 출력 및 종료 코드

566</h4>

567 

568Claude Code는 검증한 파일, 경로가 있는 오류 및 경고, 그리고 판정 줄을 출력합니다. 종료 코드는 판정을 따릅니다:

569 

570| 종료 코드 | 판정 줄 | 의미 |

571| :---- | :------------------------------------------------------------------------------ | :-------------------------------------- |

572| `0` | `Validation passed` 또는 `Validation passed with warnings` | 매니페스트가 로드됩니다. `--strict`를 사용하면 경고도 없습니다 |

573| `1` | `Validation failed` 또는 `Validation failed (--strict treats warnings as errors)` | 오류 또는 `--strict` 아래의 경고 |

574| `2` | `Unexpected error during validation: <reason>` | 검증자 자체가 실패했습니다(예: 읽을 수 없는 경로) |

575 

576`--json`을 사용하면 Claude Code는 보고서를 stdout에 다음 최상위 필드를 포함하는 하나의 JSON 객체로 씁니다:

577 

578* `success`: 종료 코드가 제공하는 동일한 판정

579* `strict`: 실행이 경고를 오류로 취급했는지 여부

580* `target`: Claude Code가 검증한 해결된 경로

581* `manifest`: 매니페스트의 자체 결과 또는 매니페스트 없는 실행의 경우 `null`

582* `contents`: 파일당 결과로 `file`의 이름을 지정하고 `errors`, `warnings` 및 `notes` 배열을 포함합니다

583 

584종료 `2`에서 명령어는 stdout에 아무것도 쓰지 않습니다. 오류 메시지는 stderr로 이동합니다.

585 

586<h2 id="claude-plugin-marketplace-commands">

587 claude plugin marketplace 명령어

588</h2>

589 

590셸에서 `claude plugin marketplace <subcommand>`를 실행하여 플러그인을 설치하는 마켓플레이스를 추가, 나열, 새로고침 및 제거합니다.

591 

592* **종료 코드**: 이러한 하위 명령어는 플러그인 명령어의 [종료 코드 규칙](#claude-plugin-commands)을 따릅니다

593* **범위**: 해당 `--scope` 플래그에는 `-s` 짧은 형식이 없습니다

594 

595마켓플레이스가 무엇이고 Claude Code가 이를 캐시하는 방법은 [플러그인 로딩 참조](/docs/ko/plugins/loading)를 참조하세요.

596 

597<h3 id="plugin-marketplace-add">

598 plugin marketplace add

599</h3>

600 

601GitHub 저장소, git URL, 호스팅된 `marketplace.json` 또는 로컬 경로에서 마켓플레이스를 추가하고 설정 파일에 선언합니다.

602 

603추가한 후 Claude Code는 설치된 플러그인이 누락된 [종속성](/docs/ko/plugins/dependencies)을 설치합니다.

604 

605```bash theme={null}

606claude plugin marketplace add <source> [options]

607```

608 

609| 플래그 | 설명 |

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

611| `--scope <scope>` | 마켓플레이스를 선언할 설정 파일: `user`, `project` 또는 `local`. 기본값은 `user` |

612| `--sparse <paths...>` | monorepos의 경우 git 체크아웃을 이러한 디렉토리로 제한합니다. `github` 및 `git` 소스만 해당 |

613| `--claudeai` | 인수를 소스 대신 [claude.ai에서 호스팅되는 마켓플레이스](/docs/ko/plugins/install#add-from-claude-ai)의 이름으로 읽습니다. Claude Code v2.1.273 이상 필요 |

614 

615`<source>`는 아래 표의 형식 중 하나를 사용하고 해당 형식은 소스 유형과 Claude Code가 마켓플레이스를 가져오는 방식을 결정합니다. 결과 소스 객체는 [마켓플레이스 참조](/docs/ko/plugins/marketplace-reference)를 참조하세요.

616 

617| 입력 | 소스 유형 | Claude Code가 가져오는 방식 |

618| :------------------------------------------------------------------------ | :---------- | :-------------------------------------------------------------------- |

619| `owner/repo`, `owner/repo#ref` 또는 `owner/repo@ref` | `github` | GitHub 저장소를 복제하고 주어진 경우 `ref`로 고정합니다. 소유자와 저장소는 GitHub 명명 규칙을 따라야 합니다 |

620| `user@host:path[.git][#ref]` | `git` | SSH를 통해 복제합니다 |

621| `https://example.com/repo.git[#ref]` 또는 `/_git/`를 포함하는 URL | `git` | Azure DevOps URL을 포함하여 HTTPS를 통해 복제합니다 |

622| `https://github.com/owner/repo` 또는 `https://gitlab.com/namespace/project` | `git` | `.git`을 추가한 후 HTTPS를 통해 복제합니다 |

623| `.git`이 없는 자체 호스팅 git 호스트를 포함한 다른 `http://` 또는 `https://` URL | `url` | URL을 `marketplace.json`으로 가져옵니다. 대신 저장소를 복제하려면 `.git`을 추가하세요 |

624| `./path`, `../path`, `/path` 또는 `~/path`에서 디렉토리로 | `directory` | 디렉토리를 제자리에서 읽습니다. Windows에서 `.\`, `..\` 및 `C:\` 형식도 작동합니다 |

625| 동일한 경로 형식(`.json` 파일로) | `file` | 파일을 제자리에서 읽습니다 |

626 

627복제 URL이 `.git` 접미사를 포함하지 않는 호스트(예: AWS CodeCommit)의 경우 마켓플레이스를 [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces)의 git 항목으로 추가하세요. Claude Code는 URL이 `.git`으로 끝나는지 여부에 관계없이 git 항목을 복제합니다.

628 

629Claude Code는 `https://gitlab.com/group/subgroup/project`와 같은 중첩된 하위 그룹이 있는 `gitlab.com` URL도 복제합니다.

630 

631마켓플레이스를 추가하고 프로젝트와 공유합니다:

632 

633```bash theme={null}

634claude plugin marketplace add your-org/your-marketplace --scope project

635```

636 

637Claude Code는 `Successfully added marketplace: your-marketplace (declared in project settings)`를 출력하고 마켓플레이스의 자체 매니페스트에서 `name`을 사용합니다. 반복 추가 또는 잘못된 소스는 대신 다음 결과 중 하나를 출력합니다:

638 

639* **마켓플레이스가 이미 디스크에 있음**: 출력은 `Marketplace 'your-marketplace' already on disk — declared in project settings`이고 종료 코드는 `0`입니다

640* **인식되지 않은 소스**: 출력은 `Invalid marketplace source format. Try: owner/repo, https://..., or ./path`이고 종료 코드는 `1`입니다

641* **`gitlab.example.com/team/plugins`와 같은 베어 호스트**: 추가는 잘못된 `owner/repo` 약자로 실패하고 메시지는 `https://`를 추가하거나 로컬 경로를 사용하도록 알려줍니다

642 

643[claude.ai에서 호스팅되는 마켓플레이스](/docs/ko/plugins/install#add-from-claude-ai)를 `claude plugin marketplace list`의 `From claude.ai:` 섹션에 출력된 이름으로 추가합니다:

644 

645```bash theme={null}

646claude plugin marketplace add --claudeai claudeai-organization-library

647```

648 

649`--claudeai`를 사용하면 명령어는 `--scope` 및 `--sparse`를 거부합니다. 마켓플레이스는 계정에 대해 호스팅되고 설정 파일에 선언되지 않으므로 프로젝트의 `.claude/settings.json`을 통해 공유할 수 없습니다.

650 

651<h3 id="plugin-marketplace-list">

652 plugin marketplace list

653</h3>

654 

655추가한 모든 마켓플레이스를 소스와 함께 나열합니다.

656 

657```bash theme={null}

658claude plugin marketplace list [options]

659```

660 

661| 플래그 | 설명 |

662| :------- | :--------------- |

663| `--json` | 목록을 JSON으로 출력합니다 |

664 

665Claude Code는 `Configured marketplaces:`를 출력하고 마켓플레이스당 하나의 `Source:` 줄을 출력하거나 `No marketplaces configured`를 출력합니다.

666 

667`--json`을 사용하면 Claude Code는 마켓플레이스당 하나의 객체를 포함하는 배열을 출력하고 아래 필드를 포함합니다. 모든 필드는 문자열입니다.

668 

669| 필드 | 설명 |

670| :---------------- | :-------------------------------------------------------- |

671| `name` | 마켓플레이스의 이름 |

672| `source` | `github`, `git`, `url`, `directory`, `file` 또는 `claudeai` |

673| `repo` | `owner/repo`. `github` 소스만 해당 |

674| `url` | 복제 또는 가져오기 URL입니다. `git` 및 `url` 소스만 해당 |

675| `path` | 로컬 경로입니다. `directory` 및 `file` 소스만 해당 |

676| `ref` | 고정된 분기 또는 태그입니다. `github` 및 `git` 소스, 고정된 경우만 해당 |

677| `installLocation` | Claude Code가 마켓플레이스를 캐시한 위치 |

678 

679추가된 [claude.ai 마켓플레이스](/docs/ko/plugins/install#add-from-claude-ai)에는 로컬 복제본이 없으므로 해당 항목은 `installLocation` 대신 claude.ai 식별자 `marketplaceId` 및 `organizationUuid`를 포함합니다. 또한 기록된 경우 `scope`와 `status`를 포함합니다.

680 

681터미널 세션이 [claude.ai 계정에서 플러그인을 동기화](/docs/ko/plugins/loading#synced-plugins)하면 텍스트 목록은 `From claude.ai:` 섹션으로 끝납니다. 해당 섹션은 claude.ai가 추가하지 않은 계정에 대해 나열하는 마켓플레이스의 이름을 지정합니다(git 기반 및 호스팅). Claude Code v2.1.273 이상 필요합니다.

682 

683해당 섹션에서 마켓플레이스를 추가하려면 [claude.ai에서 마켓플레이스 추가](/docs/ko/plugins/install#add-from-claude-ai)를 참조하세요.

684 

685`--json` 출력은 구성된 마켓플레이스만 다루고 섹션을 제외합니다.

686 

687<h3 id="plugin-marketplace-remove">

688 plugin marketplace remove

689</h3>

690 

691설정에서 마켓플레이스의 선언을 제거합니다. `rm`은 `remove`의 별칭입니다.

692 

693<Warning>

694 마켓플레이스를 선언하는 마지막 범위에서 제거하면 Claude Code는 캐시도 삭제하고 설치한 모든 플러그인을 제거합니다. `--scope` 없이 명령어는 모든 범위에서 선언을 제거합니다. 플러그인을 잃지 않고 마켓플레이스를 새로고침하려면 `plugin marketplace update`를 대신 실행하세요.

695</Warning>

696 

697```bash theme={null}

698claude plugin marketplace remove <name> [options]

699```

700 

701`<name>`은 전달한 소스가 아니라 `plugin marketplace list`가 표시하는 마켓플레이스 이름입니다.

702 

703| 플래그 | 설명 |

704| :---------------- | :-------------------------------------------------------------------------------- |

705| `--scope <scope>` | 한 설정 범위에서 선언을 제거합니다: `user`, `project` 또는 `local`. 없으면 Claude Code는 모든 범위에서 제거합니다 |

706 

707모든 범위에서 마켓플레이스를 제거합니다:

708 

709```bash theme={null}

710claude plugin marketplace remove your-marketplace

711```

712 

713Claude Code는 `Successfully removed marketplace: your-marketplace`를 출력하고 범위를 지정할 때 `(from project settings)`를 추가합니다. 마켓플레이스를 선언하지 않는 설정 파일로 범위를 지정하면 명령어는 `Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.`로 실패합니다.

714 

715<h3 id="plugin-marketplace-update">

716 plugin marketplace update

717</h3>

718 

719한 마켓플레이스 또는 모든 마켓플레이스를 소스에서 새로고침하여 새 플러그인 및 버전을 가져옵니다. 분기 또는 태그 `ref`로 추가된 마켓플레이스는 저장소의 기본 분기가 아니라 해당 ref의 최신 커밋으로 업데이트됩니다.

720 

721```bash theme={null}

722claude plugin marketplace update [name]

723```

724 

725명령어는 `--help` 이외의 플래그를 사용하지 않습니다.

726 

727한 마켓플레이스를 새로고침합니다:

728 

729```bash theme={null}

730claude plugin marketplace update your-marketplace

731```

732 

733Claude Code는 `Successfully updated marketplace: your-marketplace`를 출력합니다. 이름을 생략하면 `Successfully updated 2 marketplaces`와 같은 수를 출력합니다. 추가된 마켓플레이스가 없으면 `No marketplaces configured`를 출력하고 `0`으로 종료합니다.

734 

735<h2 id="plugin-in-a-session">

736 세션의 /plugin

737</h2>

738 

739대화형 세션 내에서 `/plugin`은 플러그인 패널을 엽니다. 각 하위 명령어는 패널을 탭에서 열고 거기서 작업을 실행하거나 결과를 인라인으로 출력합니다. `/plugins` 및 `/marketplace`는 `/plugin`의 별칭입니다.

740 

741이러한 명령어는 대화형 터미널 세션에서만 실행할 수 있습니다. `claude -p`와 같은 비대화형 실행에서 Claude Code는 `/plugin`이 이 환경에서 사용 가능하지 않다고 회신합니다.

742 

743어떤 표면에 `/plugin`이 있는지, 이를 설치하지 않고 설치하는 방법, 각 패널 탭이 표시하는 것은 [플러그인 설치 및 관리](/docs/ko/plugins/install)를 참조하세요.

744 

745`<plugin>`은 플러그인 `name` 또는 `name@marketplace`입니다.

746 

747아래 표는 모든 세션 형식을 나열합니다. 셸 하위 명령어 `init`, `update`, `details`, `prune`, `eval` 및 `eval init`에는 세션 형식이 없습니다.

748 

749| 명령어 | 별칭 | 어떤 일을 하는지 |

750| :-------------------------------------------------- | :--------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

751| `/plugin` | | **Discover** 탭에서 패널을 엽니다. `/plugin` 뒤의 인식되지 않은 첫 단어는 동일하게 합니다 |

752| `/plugin help` | `/plugin --help`, `/plugin -h` | `/plugin` 하위 명령어의 사용 목록을 표시합니다 |

753| `/plugin list [--enabled\|--disabled]` | `ls` | 마켓플레이스에서 설치한 플러그인을 버전, 범위 및 상태와 함께 인라인으로 출력합니다. 필터 플래그는 해당 상태만 표시합니다. 활성화 상태가 아직 적용되지 않은 플러그인은 `— run /reload-plugins to apply`로 표시됩니다. Claude Code v2.1.163 이상 필요 |

754| `/plugin install` | `i` | **Discover** 탭을 엽니다 |

755| `/plugin install <plugin>` | `i` | **Discover** 탭에서 플러그인의 세부 정보를 엽니다. `name@marketplace`를 사용하면 해당 마켓플레이스의 목록에서 엽니다 |

756| `/plugin install <plugin> --marketplace <source>` | `i` | 아직 추가하지 않은 경우 `<source>`에서 마켓플레이스를 추가하고 먼저 확인을 요청한 후 플러그인의 세부 정보를 엽니다. [마켓플레이스 추가 및 한 명령어로 설치](/docs/ko/plugins/install#add-a-marketplace-and-install-in-one-command)를 참조하세요. Claude Code v2.1.275 이상 필요 |

757| `/plugin manage` | | **Installed** 탭을 엽니다 |

758| `/plugin stats` | | [`/skill-doctor`](/docs/ko/skills#find-unused-skills)를 사용할 수 있는 세션에서 **Stats** 탭을 엽니다. 다른 곳에서는 **Discover** 탭에서 패널을 엽니다 |

759| `/plugin enable <plugin>` | | **Installed** 탭에서 플러그인을 열고 활성화합니다 |

760| `/plugin disable <plugin>` | | **Installed** 탭에서 플러그인을 열고 비활성화합니다 |

761| `/plugin uninstall <plugin>` | | **Installed** 탭에서 플러그인을 열고 제거합니다 |

762| `/plugin configure <plugin>` | `config` | 플러그인의 [`userConfig`](/docs/ko/plugins/manifest-reference) 대화 상자를 열거나 플러그인이 선언하지 않음을 보고합니다. Claude Code v2.1.147 이상 필요 |

763| `/plugin validate <path>` | | `claude plugin validate`와 동일한 보고서를 인라인으로 출력합니다 |

764| `/plugin tag [path] [--push] [--dry-run] [--force]` | | `claude plugin tag`가 하는 것처럼 릴리스 태그를 만듭니다. `--push`, `--dry-run` 및 `--force` 또는 `-f`를 수락합니다. 다른 플래그나 추가 인수를 사용하면 Claude Code는 대신 사용법을 출력합니다 |

765| `/plugin marketplace` | `market` | 보이는 것이 없습니다. `add`, `list`, `update` 또는 `remove`를 전달합니다 |

766| `/plugin marketplace add [source]` | `market add` | 소스를 사용하면 추가하고 결과를 보고합니다. 없으면 **Add marketplace** 입력을 엽니다 |

767| `/plugin marketplace list` | `market list` | 마켓플레이스 이름을 인라인으로 출력합니다 |

768| `/plugin marketplace update [name]` | `market update` | **Marketplaces** 탭을 엽니다. 이름을 사용하면 거기서 해당 마켓플레이스를 새로고침합니다 |

769| `/plugin marketplace remove [name]` | `market remove`, `market rm`, `marketplace rm` | **Marketplaces** 탭을 엽니다. 이름을 사용하면 거기서 해당 마켓플레이스를 제거합니다 |

770 

771`/plugin enable`, `disable`, `uninstall` 또는 `configure`에서 현재 프로젝트에 설치되지 않은 플러그인의 이름을 지정하면 Claude Code는 조치하는 대신 `Plugin "<plugin>" is not installed in this project`를 출력합니다.

772 

773<h2 id="reload-plugins">

774 /reload-plugins

775</h2>

776 

777실행 중인 세션을 다시 시작하지 않고 보류 중인 플러그인 변경 사항을 적용합니다. 보류 중인 변경 사항은 세션이 시작된 이후 설치, 업데이트, 활성화, 비활성화 또는 디스크에서 편집한 플러그인입니다.

778 

779보류 중인 변경 사항으로 `/plugin` 패널을 닫으면 Claude Code는 자동으로 `/reload-plugins`를 실행합니다. 다른 터미널에서 실행한 `claude plugin` 명령어와 같이 패널 외부에서 발생하는 플러그인 변경 사항 후에 직접 실행하세요.

780 

781```text theme={null}

782/reload-plugins [--force]

783```

784 

785| 플래그 | 설명 |

786| :-------- | :--------------------------------------------------- |

787| `--force` | 프롬프트 캐시를 무효화할 때에도 다시 로드를 적용합니다. 대시 없이 `force`도 작동합니다 |

788 

789<h3 id="reload-summary">

790 다시 로드 요약

791</h3>

792 

793Claude Code는 모든 활성 플러그인을 다시 로드하고 하나의 요약 줄 `Reloaded: N plugins · N skills · N agents · N hooks · N plugin MCP servers · N plugin LSP servers`를 출력하고 대화형 터미널이 없는 세션에서 플러그인 MCP 서버 수를 생략합니다. 플러그인이 실패하면 요약은 `N errors during load. Run /plugin for details.`를 추가합니다.

794 

795skills 수는 플러그인이 제공하는 모든 skill을 포함합니다. 즉, `commands/` 항목과 `SKILL.md` skills 모두입니다. agents 수는 플러그인에서 오지 않은 것을 포함하여 세션에 로드된 agents의 수입니다.

796 

797다시 로드된 플러그인의 [종속성](/docs/ko/plugins/dependencies)이 누락되면 Claude Code는 이들을 설치하고 다시 로드하고 요약에 `(+ N dependencies: <names>) resolved`를 추가합니다.

798 

799<h3 id="reloads-that-change-mcp-tools">

800 MCP 도구를 변경하는 다시 로드

801</h3>

802 

803다시 로드가 플러그인 MCP 서버 또는 `LSP` 도구를 추가하거나 제거할 때 그 변경이 [프롬프트 캐시](/docs/ko/prompt-caching#enabling-or-disabling-a-plugin)를 무효화할 것이면 Claude Code는 다시 로드를 적용하지 않습니다. `This reload changes MCP tools (<server>) — your next message will re-read the whole conversation instead of using the cache. Run /reload-plugins --force to apply.`와 같은 줄을 출력합니다. `--force`를 전달하여 어쨌든 적용하세요.

804 

805<h3 id="sessions-without-an-interactive-terminal">

806 대화형 터미널이 없는 세션

807</h3>

808 

809`/reload-plugins`는 데스크톱 앱, Agent SDK 및 [`-p`를 사용한 비대화형 모드](/docs/ko/headless)와 같이 대화형 터미널이 없는 세션에서도 실행됩니다. Claude Code v2.1.260 이상 필요합니다.

810 

811이러한 세션에서 명령어는 `-p` 프롬프트 또는 데스크톱 앱의 프롬프트 상자와 같이 세션에 직접 입력할 때만 실행됩니다. [Remote Control](/docs/ko/remote-control) 또는 Slack에서 중계된 메시지와 같이 다른 방식으로 도착하면 명령어는 `/reload-plugins isn't available over a remote connection in this session.`을 회신하고 아무것도 다시 로드하지 않습니다.

812 

813이러한 세션의 다시 로드는 플러그인 MCP 서버를 연결하거나 연결 해제하지 않습니다. 이러한 변경 사항은 다음 세션에서 적용됩니다.

814 

815<h2 id="flags-that-load-a-plugin-for-one-session">

816 한 세션 동안 플러그인을 로드하는 플래그

817</h2>

818 

819두 `claude` 플래그는 설치하지 않고 한 세션 동안만 플러그인을 로드합니다. 둘 다 반복 가능합니다.

820 

821플러그인 작성자는 이들을 사용하여 게시하기 전에 플러그인을 테스트합니다. 로드-편집-다시 로드 워크플로우는 [마켓플레이스 없이 개발](/docs/ko/plugins/create#develop-without-a-marketplace)을 참조하세요.

822 

823| 플래그 | 설명 | 예 |

824| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------- |

825| `--plugin-dir <path>` | 디렉토리 또는 그 디렉토리의 `.zip` 아카이브에서 플러그인을 로드합니다. 플러그인 폴더는 `.claude-plugin/plugin.json`을 보유하는 각 자식 폴더를 로드합니다. 각 플래그는 하나의 경로를 사용합니다 | `claude --plugin-dir ./my-plugin --plugin-dir ./other.zip` |

826| `--plugin-url <url>` | URL에서 플러그인 `.zip` 아카이브를 가져옵니다. 플래그를 반복하거나 하나의 인용된 값에서 여러 URL을 공백으로 구분하여 전달합니다 | `claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"` |

827 

828이러한 플래그가 로드하는 플러그인은 세션 전용 플러그인입니다. `claude plugin list`는 `<name>@inline`으로 범위 `session`으로 표시하지만 같은 플래그가 하위 명령어 앞에 올 때만 표시합니다. 예를 들어 `claude --plugin-dir ./my-plugin plugin list`를 실행합니다.

829 

830세션 전용 플러그인이 설치된 플러그인과 이름을 공유하면 Claude Code는 해당 세션에 대해 세션 전용 복사본을 로드하고 설치된 것을 건너뜁니다. `claude plugin disable <name>@inline`으로 세션 전용 복사본을 비활성화했거나 관리되는 설정이 해당 플러그인 이름을 잠그면 설치된 복사본이 대신 로드됩니다. 우선순위는 [플러그인 로딩 참조](/docs/ko/plugins/loading)를 참조하세요.

831 

832관리자는 [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ko/env-vars#variables) 변수에 명명된 폴더와 함께 두 플래그를 거부할 수 있습니다. 관리되는 [`disableSideloadFlags`](/docs/ko/settings-reference#disablesideloadflags) 설정을 사용합니다. Claude Code는 플래그가 조직의 관리되는 설정에 의해 비활성화되었다고 출력하고 시작하지 않고 `1`로 종료합니다.

833 

834Agent SDK에서 [`plugins`](/docs/ko/agent-sdk/plugins) 옵션은 `--plugin-dir`과 동등합니다.

835 

836<h2 id="next-steps">

837 다음 단계

838</h2>

839 

840* [플러그인 설치 및 관리](/docs/ko/plugins/install): 단계와 동일한 작업으로 각 단계에서 보는 것

841* [플러그인 로딩 참조](/docs/ko/plugins/loading): 각 명령어가 디스크에서 변경하는 것과 어떤 범위가 적용되는지

842* [플러그인 문제 해결](/docs/ko/plugins/troubleshooting): 설치, 마켓플레이스, 로드 및 검증 오류 메시지와 해당 수정 사항

843* [플러그인 매니페스트 참조](/docs/ko/plugins/manifest-reference): `claude plugin validate`가 확인하는 필드

plugins/code-intelligence.md +156 −0 created

Details

1> ## Documentation Index

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

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

4 

5# 코드 인텔리전스 플러그인

6 

7> 언어 서버 플러그인을 설치하여 Claude가 편집 후 타입 오류를 확인하고 기호로 코드를 탐색하며, LSP 플러그인 권장 대화상자에 응답합니다.

8 

9코드 인텔리전스 플러그인은 Claude에게 편집기가 가진 라이브 진단 및 정의로 이동 기능을 제공하므로, Claude가 자신의 편집으로 인한 타입 오류 및 누락된 임포트를 빌드를 실행하기 전에 포착하고, 텍스트 검색 대신 기호로 정의 및 참조를 찾을 수 있습니다.

10 

11각 플러그인은 Language Server Protocol(LSP)을 통해 Claude Code를 한 언어의 언어 서버에 연결합니다. 플러그인은 Anthropic의 공식 마켓플레이스에서 설치하고 언어 서버 바이너리는 컴퓨터에 설치합니다.

12 

13<Note>

14 코드 인텔리전스 플러그인은 터미널 세션에서 작동합니다. [클라우드 세션](/docs/ko/claude-code-on-the-web)에서는 Claude Code가 플러그인 언어 서버를 시작하지 않으므로 Claude는 진단 또는 코드 탐색을 받지 않습니다. 자신의 언어 서버 플러그인을 작성하거나 플러그인이 없는 언어 서버를 연결하려면 [플러그인 컴포넌트의 LSP 서버](/docs/ko/plugins/components#lsp-servers)를 참조하세요.

15</Note>

16 

17시작하려면 [코드 인텔리전스 플러그인 설치](#install-a-code-intelligence-plugin) 아래의 표에서 언어를 찾으세요. 해당 표의 플러그인은 Anthropic의 [공식 플러그인 마켓플레이스](/docs/ko/plugins/anthropic-marketplaces)에서 제공됩니다.

18 

19이미 **LSP 플러그인 권장** 대화상자를 본 경우, [권장 대화상자 수락 또는 거부](#accept-or-dismiss-the-recommendation-dialog)에서 각 선택이 무엇을 하는지 확인하세요.

20 

21<h2 id="install-a-code-intelligence-plugin">

22 코드 인텔리전스 플러그인 설치

23</h2>

24 

25코드 인텔리전스 플러그인은 Claude Code에 언어 서버를 시작하는 명령과 처리하는 파일 확장자를 알려줍니다. 언어 서버는 포함하지 않습니다. 먼저 언어 서버 바이너리를 설치한 다음 플러그인을 설치하고 서버가 시작되는지 확인하세요.

26 

27<Steps>

28 <Step title="언어 서버 바이너리 설치">

29 아래 표에서 언어를 찾아 해당 행의 바이너리를 설치하세요. 언어가 나열되지 않은 경우 [공식 플러그인 없이 언어 추가](#add-a-language-without-an-official-plugin)를 참조하세요.

30 

31 | 언어 | 플러그인 | 바이너리 |

32 | :---------------------- | :--------------------------------------------------------------------------------------------------------------- | :--------------------------- |

33 | C/C++ | [`clangd-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/clangd-lsp) | `clangd` |

34 | C# | [`csharp-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/csharp-lsp) | `csharp-ls` |

35 | Go | [`gopls-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/gopls-lsp) | `gopls` |

36 | Java | [`jdtls-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/jdtls-lsp) | `jdtls` |

37 | Kotlin | [`kotlin-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/kotlin-lsp) | `kotlin-lsp` |

38 | Liquid | [`liquid-lsp`](https://github.com/Shopify/liquid-skills/tree/main/plugins/liquid-lsp) | `shopify`, Shopify CLI에서 |

39 | Lua | [`lua-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/lua-lsp) | `lua-language-server` |

40 | PHP | [`php-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/php-lsp) | `intelephense` |

41 | Python | [`pyright-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/pyright-lsp) | `pyright-langserver` |

42 | Ruby | [`ruby-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/ruby-lsp) | `ruby-lsp` |

43 | Rust | [`rust-analyzer-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/rust-analyzer-lsp) | `rust-analyzer` |

44 | Swift | [`swift-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/swift-lsp) | `sourcekit-lsp` |

45 | TypeScript 및 JavaScript | [`typescript-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/typescript-lsp) | `typescript-language-server` |

46 

47 Anthropic은 `liquid-lsp`를 제외한 표의 모든 플러그인을 유지 관리하며, `liquid-lsp`는 Shopify가 유지 관리하고 공식 마켓플레이스에 나열합니다.

48 

49 바이너리를 설치하는 명령을 찾으려면 표의 플러그인 링크를 따라 README로 이동하세요. TypeScript의 경우 해당 명령은 `npm install -g typescript-language-server typescript`입니다.

50 

51 바이너리를 설치한 후 `claude`를 시작하는 셸의 `PATH`에 있는지 확인하세요. 예를 들어 `which typescript-language-server` 또는 PowerShell에서 `Get-Command typescript-language-server`를 사용합니다.

52 </Step>

53 

54 <Step title="플러그인 설치">

55 1단계 표에서 언어에 대해 나열된 플러그인을 설치하려면 Claude Code 세션에서 `/plugin install`을 실행하고 `typescript-lsp`를 해당 플러그인의 이름으로 바꾸세요:

56 

57 ```

58 /plugin install typescript-lsp@claude-plugins-official

59 ```

60 

61 확인 메시지는 플러그인이 지금 활성화되었는지 또는 `/reload-plugins`가 필요한지 여부를 나타냅니다. 설치가 `Marketplace "claude-plugins-official" not found`로 실패하면 [해당 오류에 대한 문제 해결 항목](/docs/ko/plugins/troubleshooting#marketplace-claude-plugins-official-not-found)을 참조하세요. 플러그인이 설치되는 위치를 제어하거나 Claude Code 내부 대신 셸에서 설치를 실행하려면 [플러그인 설치](/docs/ko/plugins/install)를 참조하세요.

62 </Step>

63 

64 <Step title="서버 시작 확인">

65 언어 서버는 Claude가 플러그인의 확장자 중 하나를 가진 파일을 편집할 때 처음 시작됩니다. 작동하는 것을 보려면 Claude에게 해당 언어의 파일에 타입 오류를 도입한 다음 수정하도록 요청하세요. 그런 다음 대화에서 진단 라인을 확인하세요:

66 

67 * **진단 라인이 나타남**: 오류를 도입한 편집 아래에 `Found N new diagnostic issues in M files (ctrl+o to expand)`는 서버가 시작되었음을 의미합니다.

68 * **진단 라인이 나타나지 않음**: `/plugin`을 실행하고 **Errors** 탭을 엽니다. `Executable not found in $PATH: "<binary>"`를 읽는 행은 설치할 바이너리의 이름을 지정합니다. 탭에 그러한 행이 없으면 [코드 인텔리전스 문제 해결](#troubleshoot-code-intelligence)을 참조하세요.

69 

70 누락된 바이너리를 설치한 후 Claude Code는 Claude가 다음에 일치하는 파일을 편집할 때 다시 시도합니다. 바이너리를 `claude`를 시작한 셸의 `PATH`에 없는 디렉토리에 설치한 경우 해당 디렉토리가 있는 셸에서 새 세션을 시작하세요.

71 </Step>

72</Steps>

73 

74<h2 id="see-what-claude-gains">

75 Claude가 얻는 것 확인

76</h2>

77 

78언어 서버가 실행 중이면 Claude는 진단 및 코드 탐색을 얻습니다:

79 

80* **편집 후 진단**: Claude가 서버가 처리하는 파일을 편집하거나 쓸 때마다 Claude는 서버가 보고하는 오류 및 경고를 받습니다. 컴파일러를 실행하지 않고도 도입한 타입 오류, 누락된 임포트 또는 구문 오류를 봅니다.

81* **코드 탐색**: Claude는 텍스트를 검색하는 대신 서버를 통해 기호를 조회하는 `LSP` 도구를 얻습니다. 도구는 읽기 전용입니다. Claude가 도구로 조회할 수 있는 것과 권한이 어떻게 적용되는지는 [LSP 도구 동작](/docs/ko/tools-reference#lsp-tool-behavior)을 참조하세요.

82 

83<h3 id="read-the-diagnostics-yourself">

84 진단을 직접 읽기

85</h3>

86 

87Claude가 서버가 처리하는 파일을 편집한 후 대화는 `Found N new diagnostic issues` 요약만 표시합니다. 문제 자체를 읽으려면 **Ctrl+O**를 누르세요.

88 

89<h2 id="accept-or-dismiss-the-recommendation-dialog">

90 권장 대화상자 수락 또는 거부

91</h2>

92 

93언어 서버 바이너리가 이미 `PATH`에 있고 이를 사용하는 플러그인이 설치되지 않은 경우 Claude Code는 **LSP 플러그인 권장** 대화상자에서 플러그인을 설치하도록 제안합니다.

94 

95<h3 id="when-the-recommendation-dialog-appears">

96 권장 대화상자가 나타나는 경우

97</h3>

98 

99**LSP 플러그인 권장** 대화상자는 Claude가 파일을 편집한 후 나타날 수 있습니다. 이러한 조건은 나타나는지 여부와 제공하는 플러그인을 결정합니다:

100 

101* **플러그인이 파일과 일치**: 추가한 마켓플레이스 중 하나 또는 Claude Code가 등록한 공식 마켓플레이스가 해당 파일의 확장자에 대한 코드 인텔리전스 플러그인을 나열하고 플러그인의 바이너리가 설치됩니다.

102* **공식 우선**: 둘 이상의 마켓플레이스가 확장자에 대한 플러그인을 제공할 때 대화상자는 공식 마켓플레이스의 플러그인을 제공합니다.

103* **세션당 한 번**: 대화상자는 세션에서 최대 한 번 나타나며 Claude가 편집하는 첫 번째 일치하는 파일에 대해 나타납니다.

104* **클라우드 세션의 경우 아님**: [`claude --cloud`](/docs/ko/claude-code-on-the-web#from-terminal-to-cloud)로 시작한 것과 같은 클라우드 세션에 터미널이 연결되어 있을 때 대화상자는 나타나지 않습니다.

105 

106<h3 id="respond-to-the-recommendation-dialog">

107 권장 대화상자에 응답

108</h3>

109 

110**LSP 플러그인 권장** 대화상자는 플러그인의 이름을 지정하고 다음 선택을 제공합니다:

111 

112* **예, 설치**: Claude Code는 사용자 계정에 플러그인을 설치하고 `<plugin> installed · restart to apply`를 인쇄합니다. 새 세션을 시작하여 서버를 로드하세요.

113* **아니요, 나중에**: 대화상자가 닫히고 나중 세션에서 플러그인을 다시 제공할 수 있습니다. **Esc**를 누르면 동일합니다.

114* **이 플러그인은 절대 안 됨**: 대화상자는 해당 플러그인에 대해 나타나지 않으며 다른 플러그인에 대해서는 계속 나타납니다.

115* **모든 LSP 권장 사항 비활성화**: 대화상자는 모든 언어에 대해 나타나지 않습니다.

116 

117옵션을 선택하지 않으면 Claude Code는 30초 후 닫고 무시된 것으로 계산합니다. 개수는 세션 전체에서 유지됩니다. 5개의 무시된 대화상자 후 Claude Code는 플러그인 권장을 중지하며, 이는 **모든 LSP 권장 사항 비활성화**를 선택한 것과 동일합니다.

118 

119<h3 id="turn-recommendations-back-on">

120 권장 사항 다시 켜기

121</h3>

122 

123**LSP 플러그인 권장** 대화상자는 **모든 LSP 권장 사항 비활성화**를 선택하거나 5번 무시한 후 나타나지 않습니다.

124 

125* **비활성화 또는 5번 무시됨**: 어느 경우든 다시 켜려면 Claude Code의 자체 구성 파일인 `~/.claude.json`에서 `lspRecommendationDisabled` 및 `lspRecommendationIgnoredCount` 키를 제거하세요.

126* **이 플러그인은 절대 안 됨**: **이 플러그인은 절대 안 됨**을 선택했고 해당 플러그인을 다시 제공받으려면 같은 파일의 `lspRecommendationNeverPlugins` 목록에서 해당 `name@marketplace` id를 제거하세요.

127 

128<h2 id="troubleshoot-code-intelligence">

129 코드 인텔리전스 문제 해결

130</h2>

131 

132플러그인 문제 해결 페이지는 [언어 서버가 시작되지 않음, 메모리를 너무 많이 사용하거나 잘못된 진단을 보고함](/docs/ko/plugins/troubleshooting#language-server-doesnt-start) 아래의 코드 인텔리전스 플러그인에 특정한 증상을 다룹니다:

133 

134* **언어 서버가 시작되지 않음**: `/plugin`의 **Errors** 탭에서 `Executable not found in $PATH`를 보거나 Claude가 해당 언어에 대한 진단을 보고하지 않습니다.

135* **높은 메모리 사용**: 서버가 프로젝트를 인덱싱하는 동안 메모리 사용이 증가합니다.

136* **모노레포의 거짓 양성 진단**: 진단은 임포트를 해결되지 않은 것으로 보고하지만 실제로는 해결됩니다.

137 

138<h2 id="add-a-language-without-an-official-plugin">

139 공식 플러그인 없이 언어 추가

140</h2>

141 

142언어가 [공식 플러그인 표](#install-a-code-intelligence-plugin)에 없으면 여전히 언어 서버를 연결할 수 있습니다.

143 

1441. 서버 명령과 처리하는 파일 확장자의 이름을 지정하는 `.lsp.json` 파일로 플러그인을 작성하세요.

1452. 그런 다음 [`--plugin-dir`](/docs/ko/plugins/cli-reference#flags-that-load-a-plugin-for-one-session)을 사용하여 플러그인을 로드하거나 마켓플레이스에 게시하세요.

146 

147파일의 필드 및 작동 예제는 [플러그인 컴포넌트의 LSP 서버](/docs/ko/plugins/components#lsp-servers)를 참조하세요.

148 

149<h2 id="next-steps">

150 다음 단계

151</h2>

152 

153* [플러그인 컴포넌트의 LSP 서버](/docs/ko/plugins/components#lsp-servers): 공식 플러그인이 없는 언어 서버의 `.lsp.json` 작성

154* [플러그인 설치 및 관리](/docs/ko/plugins/install): 범위, 업데이트 및 제거

155* [플러그인 문제 해결](/docs/ko/plugins/troubleshooting): 이 페이지의 언어 서버 관련 항목을 넘어선 로드 오류

156* [공식 마켓플레이스에서 플러그인 찾기](/docs/ko/plugins/anthropic-marketplaces#find-plugins-in-the-official-marketplace): 공식 마켓플레이스의 나머지를 찾아볼 수 있는 위치

plugins/components.md +1130 −0 created

Details

1> ## Documentation Index

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

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

4 

5# 플러그인에 컴포넌트 추가하기

6 

7> Claude Code 플러그인에 skills, hooks, MCP 서버 및 다른 모든 컴포넌트 유형을 추가하고, 각각에 대해 검증하는 예제를 포함합니다.

8 

9export const Piece = ({id, children}) => <div className="pe-piece" data-piece={id}>{children}</div>;

10 

11export const PluginExplorer = ({children}) => {

12 const PIECES = [{

13 id: 'manifest',

14 name: 'Manifest',

15 path: '.claude-plugin/plugin.json',

16 required: "Required by Anthropic's directory",

17 lines: [{

18 depth: 0,

19 kind: 'folder',

20 text: '.claude-plugin/'

21 }, {

22 depth: 1,

23 kind: 'file',

24 text: 'plugin.json'

25 }],

26 href: '/en/plugins/manifest-reference#manifest-file',

27 linkText: 'Go to the manifest reference'

28 }, {

29 id: 'skills',

30 name: 'Skills',

31 path: 'skills/review/SKILL.md',

32 lines: [{

33 depth: 0,

34 kind: 'folder',

35 text: 'skills/'

36 }, {

37 depth: 1,

38 kind: 'folder',

39 text: 'review/'

40 }, {

41 depth: 2,

42 kind: 'file',

43 text: 'SKILL.md'

44 }],

45 href: '/en/plugins/components#skills',

46 linkText: 'Go to the Skills section'

47 }, {

48 id: 'commands',

49 name: 'Commands',

50 path: 'commands/about.md',

51 lines: [{

52 depth: 0,

53 kind: 'folder',

54 text: 'commands/'

55 }, {

56 depth: 1,

57 kind: 'file',

58 text: 'about.md'

59 }],

60 href: '/en/plugins/components#commands',

61 linkText: 'Go to the Commands section'

62 }, {

63 id: 'agents',

64 name: 'Agents',

65 path: 'agents/security-reviewer.md',

66 lines: [{

67 depth: 0,

68 kind: 'folder',

69 text: 'agents/'

70 }, {

71 depth: 1,

72 kind: 'file',

73 text: 'security-reviewer.md'

74 }],

75 href: '/en/plugins/components#agents',

76 linkText: 'Go to the Agents section'

77 }, {

78 id: 'hooks',

79 name: 'Hooks',

80 path: 'hooks/hooks.json',

81 lines: [{

82 depth: 0,

83 kind: 'folder',

84 text: 'hooks/'

85 }, {

86 depth: 1,

87 kind: 'file',

88 text: 'hooks.json'

89 }],

90 href: '/en/plugins/components#hooks',

91 linkText: 'Go to the Hooks section'

92 }, {

93 id: 'monitors',

94 name: 'Monitors',

95 path: 'monitors/monitors.json',

96 lines: [{

97 depth: 0,

98 kind: 'folder',

99 text: 'monitors/'

100 }, {

101 depth: 1,

102 kind: 'file',

103 text: 'monitors.json'

104 }],

105 href: '/en/plugins/components#monitors',

106 linkText: 'Go to the Monitors section'

107 }, {

108 id: 'output-styles',

109 name: 'Output styles',

110 path: 'output-styles/terse.md',

111 lines: [{

112 depth: 0,

113 kind: 'folder',

114 text: 'output-styles/'

115 }, {

116 depth: 1,

117 kind: 'file',

118 text: 'terse.md'

119 }],

120 href: '/en/plugins/components#themes-and-output-styles',

121 linkText: 'Go to the Themes and output styles section'

122 }, {

123 id: 'themes',

124 name: 'Themes',

125 path: 'themes/dracula.json',

126 lines: [{

127 depth: 0,

128 kind: 'folder',

129 text: 'themes/'

130 }, {

131 depth: 1,

132 kind: 'file',

133 text: 'dracula.json'

134 }],

135 href: '/en/plugins/components#themes-and-output-styles',

136 linkText: 'Go to the Themes and output styles section'

137 }, {

138 id: 'workflows',

139 name: 'Workflows',

140 path: 'workflows/audit-routes.js',

141 lines: [{

142 depth: 0,

143 kind: 'folder',

144 text: 'workflows/'

145 }, {

146 depth: 1,

147 kind: 'file',

148 text: 'audit-routes.js'

149 }],

150 href: '/en/workflows#distribute-a-workflow-in-a-plugin',

151 linkText: 'Go to Distribute a workflow in a plugin'

152 }, {

153 id: 'bin',

154 name: 'Executables',

155 path: 'bin/hello-plugin',

156 lines: [{

157 depth: 0,

158 kind: 'folder',

159 text: 'bin/'

160 }, {

161 depth: 1,

162 kind: 'file',

163 text: 'hello-plugin'

164 }],

165 href: '/en/plugins/components#executables',

166 linkText: 'Go to the Executables section'

167 }, {

168 id: 'scripts',

169 name: 'Scripts',

170 path: 'scripts/format.sh',

171 lines: [{

172 depth: 0,

173 kind: 'folder',

174 text: 'scripts/'

175 }, {

176 depth: 1,

177 kind: 'file',

178 text: 'format.sh'

179 }],

180 href: '/en/plugins/components#hooks',

181 linkText: 'Go to the Hooks section'

182 }, {

183 id: 'settings',

184 name: 'Default settings',

185 path: 'settings.json',

186 lines: [{

187 depth: 0,

188 kind: 'file',

189 text: 'settings.json'

190 }],

191 href: '/en/plugins/components#default-settings',

192 linkText: 'Go to the Default settings section'

193 }, {

194 id: 'mcp',

195 name: 'MCP servers',

196 path: '.mcp.json',

197 lines: [{

198 depth: 0,

199 kind: 'file',

200 text: '.mcp.json'

201 }],

202 href: '/en/plugins/components#mcp-servers',

203 linkText: 'Go to the MCP servers section'

204 }, {

205 id: 'lsp',

206 name: 'LSP servers',

207 path: '.lsp.json',

208 lines: [{

209 depth: 0,

210 kind: 'file',

211 text: '.lsp.json'

212 }],

213 href: '/en/plugins/components#lsp-servers',

214 linkText: 'Go to the LSP servers section'

215 }];

216 const [selectedId, setSelectedId] = useState('manifest');

217 const [isFullscreen, setIsFullscreen] = useState(false);

218 const rootRef = useRef(null);

219 useEffect(() => {

220 const onFsChange = () => setIsFullscreen(!!document.fullscreenElement);

221 document.addEventListener('fullscreenchange', onFsChange);

222 return () => document.removeEventListener('fullscreenchange', onFsChange);

223 }, []);

224 const toggleFullscreen = () => {

225 if (!rootRef.current) return;

226 if (document.fullscreenElement) document.exitFullscreen(); else rootRef.current.requestFullscreen().catch(() => {});

227 };

228 const selected = PIECES.find(p => p.id === selectedId) || PIECES[0];

229 const onTreeKeyDown = e => {

230 const keys = ['ArrowDown', 'ArrowUp', 'Home', 'End'];

231 if (keys.indexOf(e.key) === -1) return;

232 const i = PIECES.findIndex(p => p.id === selectedId);

233 let next = i;

234 if (e.key === 'ArrowDown') next = Math.min(PIECES.length - 1, i + 1);

235 if (e.key === 'ArrowUp') next = Math.max(0, i - 1);

236 if (e.key === 'Home') next = 0;

237 if (e.key === 'End') next = PIECES.length - 1;

238 e.preventDefault();

239 if (next === i) return;

240 const id = PIECES[next].id;

241 setSelectedId(id);

242 const el = document.getElementById('pe-node-' + id);

243 if (el) el.focus();

244 };

245 const FolderIcon = () => <svg className="pe-icon" width="15" height="15" viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinejoin="round" aria-hidden="true">

246 <path d="M1.5 4.5a1 1 0 0 1 1-1h3.2l1.3 1.5h6a1 1 0 0 1 1 1V12a1 1 0 0 1-1 1h-10.5a1 1 0 0 1-1-1z" />

247 </svg>;

248 const FileIcon = () => <svg className="pe-icon" width="15" height="15" viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinejoin="round" aria-hidden="true">

249 <path d="M4 1.5h5.5L13 5v9.5H4z" />

250 <path d="M9.5 1.5V5H13" />

251 </svg>;

252 return <div ref={rootRef} className={isFullscreen ? 'pe-root pe-fullscreen not-prose' : 'pe-root not-prose'} data-selected={selected.id}>

253 <style>{`

254 .pe-root {

255 --pe-mono: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);

256 --pe-accent: #D97757;

257 --pe-accent-text: #A8502F;

258 --pe-accent-bg: rgba(217,119,87,0.10);

259 --pe-bg: #FFFFFF;

260 --pe-surface: #FAFAF7;

261 --pe-hover: #F0EEE6;

262 --pe-border: #E8E6DC;

263 --pe-text: #141413;

264 --pe-text-2: #3D3D3A;

265 --pe-text-3: #5E5D59;

266 font-family: inherit;

267 background: var(--pe-bg);

268 color: var(--pe-text);

269 border: 1px solid var(--pe-border);

270 border-radius: 12px;

271 margin: 1.5rem 0;

272 overflow: hidden;

273 box-sizing: border-box;

274 }

275 .dark .pe-root {

276 --pe-accent-text: #EBA98F;

277 --pe-accent-bg: rgba(217,119,87,0.18);

278 --pe-bg: #1A1918;

279 --pe-surface: #232221;

280 --pe-hover: #2E2D2B;

281 --pe-border: #3A3936;

282 --pe-text: #F1EFE9;

283 --pe-text-2: #D6D4CA;

284 --pe-text-3: #B8B5AD;

285 }

286 .pe-root *, .pe-root *::before, .pe-root *::after { box-sizing: border-box; }

287 .pe-head { display: flex; align-items: flex-start; gap: 12px; padding: 18px 24px 16px; border-bottom: 1px solid var(--pe-border); }

288 .pe-head-text { flex: 1; min-width: 0; }

289 .pe-fs-btn { flex-shrink: 0; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--pe-border); border-radius: 6px; background: var(--pe-surface); color: var(--pe-text-2); font-size: 15px; line-height: 1; cursor: pointer; }

290 .pe-fs-btn:hover { background: var(--pe-hover); }

291 .pe-fs-btn:focus-visible { outline: 2px solid var(--pe-accent); outline-offset: 2px; }

292 .pe-fullscreen { border-radius: 0; height: 100vh; display: flex; flex-direction: column; overflow: auto; }

293 .pe-fullscreen .pe-body { flex: 1; }

294 .pe-title { font-size: 19px; font-weight: 600; line-height: 1.3; color: var(--pe-text); margin: 0; }

295 .pe-sub { font-size: 15px; line-height: 1.5; color: var(--pe-text-3); margin: 4px 0 0; }

296 .pe-sub code { font-family: var(--pe-mono); font-size: 0.88em; padding: 1px 5px; border-radius: 4px; background: var(--pe-surface); border: 1px solid var(--pe-border); }

297 .pe-body { display: flex; align-items: stretch; }

298 .pe-tree-pane { width: 270px; flex-shrink: 0; background: var(--pe-surface); border-right: 1px solid var(--pe-border); padding: 16px 0 12px; }

299 .pe-panel { flex: 1; min-width: 0; padding: 16px 24px 24px; }

300 .pe-caption { font-size: 13px; font-weight: 600; color: var(--pe-text-3); margin: 0 0 10px; }

301 .pe-tree-pane .pe-caption { padding: 0 16px; }

302 .pe-rootline { display: flex; align-items: center; gap: 7px; padding: 3px 16px; font-family: var(--pe-mono); font-size: 13.5px; color: var(--pe-text-3); }

303 .pe-node {

304 display: block; width: 100%; margin: 0; padding: 3px 16px 3px 30px; text-align: left; cursor: pointer;

305 background: transparent; color: var(--pe-text-2);

306 border: none; border-left: 3px solid transparent;

307 font-family: var(--pe-mono); font-size: 13.5px; line-height: 1.4;

308 }

309 .pe-node:hover { background: var(--pe-hover); }

310 .pe-node:focus-visible { outline: 2px solid var(--pe-accent); outline-offset: -2px; }

311 .pe-node[aria-pressed="true"] { background: var(--pe-accent-bg); border-left-color: var(--pe-accent); color: var(--pe-accent-text); font-weight: 600; }

312 .pe-line { display: flex; align-items: center; gap: 7px; padding: 2px 0; }

313 .pe-line-tree { flex-wrap: wrap; }

314 .pe-line-tree .pe-req { flex-basis: 100%; margin: 2px 0 0 22px; white-space: normal; width: fit-content; max-width: calc(100% - 22px); }

315 .pe-line span { overflow-wrap: anywhere; }

316 .pe-piece { display: none; font-size: 16px; line-height: 1.6; color: var(--pe-text-2); }

317 .pe-root[data-selected="manifest"] .pe-piece[data-piece="manifest"],

318 .pe-root[data-selected="skills"] .pe-piece[data-piece="skills"],

319 .pe-root[data-selected="commands"] .pe-piece[data-piece="commands"],

320 .pe-root[data-selected="agents"] .pe-piece[data-piece="agents"],

321 .pe-root[data-selected="hooks"] .pe-piece[data-piece="hooks"],

322 .pe-root[data-selected="monitors"] .pe-piece[data-piece="monitors"],

323 .pe-root[data-selected="output-styles"] .pe-piece[data-piece="output-styles"],

324 .pe-root[data-selected="themes"] .pe-piece[data-piece="themes"],

325 .pe-root[data-selected="workflows"] .pe-piece[data-piece="workflows"],

326 .pe-root[data-selected="bin"] .pe-piece[data-piece="bin"],

327 .pe-root[data-selected="scripts"] .pe-piece[data-piece="scripts"],

328 .pe-root[data-selected="settings"] .pe-piece[data-piece="settings"],

329 .pe-root[data-selected="mcp"] .pe-piece[data-piece="mcp"],

330 .pe-root[data-selected="lsp"] .pe-piece[data-piece="lsp"] { display: block; }

331 .pe-piece p { margin: 0 0 10px; }

332 .pe-piece p:last-child { margin-bottom: 0; }

333 .pe-piece code { font-family: var(--pe-mono); font-size: 0.88em; padding: 1px 5px; border-radius: 4px; background: var(--pe-surface); border: 1px solid var(--pe-border); }

334 .pe-piece .code-block { margin: 12px 0 0; }

335 .pe-piece pre code { padding: 0; border: none; background: none; }

336 .pe-piece a { color: var(--pe-accent-text); }

337 .pe-line-compact { display: none; }

338 .pe-icon { flex-shrink: 0; }

339 .pe-req { margin-left: 8px; padding: 0 6px; border-radius: 999px; font-size: 11px; line-height: 18px; letter-spacing: .02em; color: var(--pe-accent-text); border: 1px solid var(--pe-border); background: var(--pe-surface); white-space: nowrap; font-weight: 500; vertical-align: middle; }

340 .pe-name { font-size: 22px; font-weight: 600; line-height: 1.25; letter-spacing: -0.2px; color: var(--pe-text); margin: 0; }

341 .pe-path { font-family: var(--pe-mono); font-size: 13.5px; color: var(--pe-accent-text); margin: 4px 0 0; overflow-wrap: anywhere; }

342 .pe-block { margin: 20px 0 0; }

343 .pe-link {

344 display: inline-block; margin: 24px 0 0; padding: 8px 14px; border-radius: 8px;

345 font-size: 14.5px; font-weight: 600; text-decoration: none;

346 color: var(--pe-accent-text); background: var(--pe-accent-bg); border: 1px solid var(--pe-accent);

347 }

348 .pe-link:hover { filter: brightness(0.97); }

349 .pe-link:focus-visible { outline: 2px solid var(--pe-accent); outline-offset: 2px; }

350 @media (max-width: 700px) {

351 .pe-head { padding: 16px 16px 14px; }

352 .pe-body { flex-direction: column; }

353 .pe-tree-pane { width: 100%; border-right: none; border-bottom: 1px solid var(--pe-border); }

354 .pe-line-tree { display: none; }

355 .pe-line-compact { display: flex; }

356 .pe-panel { padding: 16px 16px 20px; }

357 }

358 `}</style>

359 

360 <div className="pe-head">

361 <div className="pe-head-text">

362 <div className="pe-title">What goes in a plugin</div>

363 <div className="pe-sub">This example plugin, <code>my-plugin</code>, has one of every kind of component, each in its default location. Select a file or folder to read what it’s for and see what goes in it.</div>

364 </div>

365 <button type="button" className="pe-fs-btn" onClick={toggleFullscreen} aria-label={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'} title={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'}>

366 {isFullscreen ? '⤡' : '⛶'}

367 </button>

368 </div>

369 

370 <div className="pe-body">

371 <div className="pe-tree-pane">

372 <div className="pe-caption" id="pe-tree-caption">Plugin directory</div>

373 <div role="group" aria-labelledby="pe-tree-caption" onKeyDown={onTreeKeyDown}>

374 <div className="pe-rootline"><FolderIcon /><span>my-plugin/</span></div>

375 {PIECES.map(p => <button key={p.id} id={'pe-node-' + p.id} type="button" className="pe-node" aria-pressed={p.id === selected.id} aria-label={p.name + ', ' + p.path} onClick={() => setSelectedId(p.id)}>

376 {p.lines.map((line, i) => <span key={i} className="pe-line pe-line-tree" style={{

377 paddingLeft: line.depth * 18 + 'px'

378 }}>

379 {line.kind === 'folder' ? <FolderIcon /> : <FileIcon />}

380 <span>{line.text}</span>

381 {p.required && i === p.lines.length - 1 ? <span className="pe-req">{p.required}</span> : null}

382 </span>)}

383 <span className="pe-line pe-line-compact">

384 <FileIcon />

385 <span>{p.path}</span>

386 {p.required ? <span className="pe-req">{p.required}</span> : null}

387 </span>

388 </button>)}

389 </div>

390 </div>

391 

392 <div className="pe-panel" role="region" aria-labelledby="pe-panel-caption" aria-live="polite" aria-atomic="true">

393 <div className="pe-caption" id="pe-panel-caption">Selected piece</div>

394 <div className="pe-name">{selected.name}{selected.required ? <span className="pe-req">{selected.required}</span> : null}</div>

395 <div className="pe-path">{selected.path}</div>

396 

397 <div className="pe-block">{children}</div>

398 

399 <a className="pe-link" href={selected.href}>{selected.linkText}</a>

400 </div>

401 </div>

402 </div>;

403};

404 

405Claude Code 플러그인은 skills, agents, hooks, MCP 서버와 같은 컴포넌트로 구성됩니다. 각 컴포넌트는 플러그인의 기본 폴더, `.claude-plugin/plugin.json`의 선택적 manifest 키(해당 폴더를 대체하거나 추가함), 그리고 사용자가 보는 이름을 가집니다. 각 키의 전체 필드 테이블은 [manifest 참조](/docs/ko/plugins/manifest-reference#fields)를 참조하십시오.

406 

407이 페이지를 사용하여 이미 로드되는 플러그인에 컴포넌트를 추가합니다.

408 

409컴포넌트를 추가한 후, 실행 중인 세션에서 `/reload-plugins`를 실행하거나 새 세션을 시작하여 Claude Code가 이를 로드하도록 합니다. 로드하기 전에 컴포넌트의 파일을 확인하려면 플러그인 디렉토리에서 셸에서 [`claude plugin validate .`](/docs/ko/plugins/cli-reference#plugin-validate)를 실행합니다.

410 

411<Note>

412 다음 경우는 다른 페이지에서 다룹니다:

413 

414 * **첫 번째 플러그인 구축**: [플러그인 생성](/docs/ko/plugins/create)으로 시작합니다

415 * **다른 사람의 플러그인 설치**: [플러그인 설치](/docs/ko/plugins/install)를 참조합니다

416 * **플러그인의 사용자가 claude.ai 또는 Cowork에 있음**: 다른 컴포넌트 세트가 로드됩니다. [claude.ai 및 Cowork의 플러그인](https://claude.com/docs/plugins/overview)을 참조합니다

417</Note>

418 

419<h2 id="explore-the-plugin-directory">

420 플러그인 디렉토리 탐색

421</h2>

422 

423탐색기는 기본 위치에 모든 종류의 컴포넌트 하나씩을 가진 예제 플러그인 `my-plugin`을 보여줍니다:

424 

425* review skill과 `about` 명령

426* security-review 서브에이전트

427* Claude가 파일을 편집한 후 파일을 포맷하는 hook, 그리고 이를 호출하는 `scripts/` 폴더

428* 로그 모니터

429* 출력 스타일과 색상 테마

430* route-audit 워크플로우

431* `hello-plugin` 실행 파일

432* 기본 설정

433* 로컬 MCP 서버와 Go 언어 서버

434 

435각 파일은 유용하기보다는 형태를 보여주기 위한 형식의 최소 유효 예제입니다: 실제 skill이나 agent는 전체 지침을 포함하고 종종 지원 파일을 가지며, 실제 hook이나 모니터는 실제 작업을 수행합니다. 탐색기 이후의 섹션은 예제로 동일한 파일을 사용하고 더 완전한 파일로 연결됩니다. 파일이나 폴더를 선택하여 그것이 무엇인지 읽고, 그 안에 무엇이 들어가는지 보고, 그것을 다루는 섹션을 찾습니다.

436 

437<PluginExplorer>

438 <Piece id="manifest">

439 [manifest](/docs/ko/plugins/manifest-reference)는 플러그인의 `.claude-plugin/` 디렉토리에 있는 `plugin.json` 파일입니다. 플러그인의 메타데이터와 Claude Code가 사용자에게 프롬프트하는 `userConfig` 값을 포함합니다. `name`만 필수입니다. 이 파일에서 `description`은 사용자가 `/plugin`에서 플러그인에 대해 보는 텍스트이고, `version`은 변경할 때까지 사용자를 해당 버전에 유지합니다:

440 

441 ```json theme={null}

442 {

443 "name": "my-plugin",

444 "version": "1.0.0",

445 "description": "Review, formatting, and database tools for this team"

446 }

447 ```

448 </Piece>

449 

450 <Piece id="skills">

451 [skill](/docs/ko/skills)은 `SKILL.md` 파일입니다. 각 skill을 `skills/` 아래의 자신의 디렉토리에 저장합니다. Claude는 모든 skill의 `description`을 읽고, 사용자가 요청하는 것이 이를 일치할 때(예: 여기서 pull request를 검토하도록 Claude에 요청), Claude는 skill의 지침을 로드하고 따릅니다. 사용자는 또한 `/my-plugin:review`로 직접 실행할 수 있습니다:

452 

453 ```markdown theme={null}

454 ---

455 description: Reviews a pull request for style and test coverage. Use when asked to review code.

456 ---

457 

458 Review the changed files. Report style problems first, then missing tests.

459 ```

460 </Piece>

461 

462 <Piece id="commands">

463 명령은 사용자가 이름으로 실행하는 단일 Markdown 파일입니다. 명령은 이전 형식입니다: skill은 같은 방식으로 이름으로 실행되고 자신의 디렉토리에 지원 파일을 포함할 수도 있으므로, 새로운 것은 skill로 작성하고 이미 가진 파일에 대해 `commands/`를 유지합니다. 이 파일은 `/my-plugin:about`이 되고 skill과 동일한 frontmatter를 사용합니다:

464 

465 ```markdown theme={null}

466 ---

467 description: Summarize the repository

468 ---

469 

470 Summarize what this repository does in three sentences.

471 ```

472 </Piece>

473 

474 <Piece id="agents">

475 [서브에이전트](/docs/ko/sub-agents)는 자신의 지침과 자신의 컨텍스트 윈도우를 가진 별도의 어시스턴트로, Claude가 작업을 위임하고 결과를 다시 받을 수 있습니다. `agents/` 아래의 각 Markdown 파일은 하나를 정의합니다: frontmatter는 이를 이름 지정하고 사용 시기를 말하고, 본문은 시스템 프롬프트입니다. 이 파일은 `my-plugin:security-reviewer`로 이름 지정되고, 사용자는 `@agent-my-plugin:security-reviewer`로 호출할 수 있습니다:

476 

477 ```markdown theme={null}

478 ---

479 name: security-reviewer

480 description: Reviews code changes for security issues. Use after edits to authentication or input handling.

481 model: sonnet

482 ---

483 

484 You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.

485 ```

486 </Piece>

487 

488 <Piece id="hooks">

489 [hook](/docs/ko/hooks-guide)은 Claude Code의 라이프사이클의 한 지점(예: 모든 파일 편집 후)에서 자동으로 무언가를 실행합니다: 셸 명령, HTTP 요청, MCP 도구 호출, 모델에 대한 프롬프트, 또는 서브에이전트. 플러그인의 hooks를 플러그인 루트의 `hooks/hooks.json`에 저장합니다. 이 파일은 Claude가 파일을 쓰거나 편집한 후 플러그인의 `scripts/format.sh`를 실행합니다:

490 

491 ```json theme={null}

492 {

493 "hooks": {

494 "PostToolUse": [

495 {

496 "matcher": "Write|Edit",

497 "hooks": [

498 {

499 "type": "command",

500 "command": "\"${CLAUDE_PLUGIN_ROOT}/scripts/format.sh\""

501 }

502 ]

503 }

504 ]

505 }

506 }

507 ```

508 </Piece>

509 

510 <Piece id="monitors">

511 모니터는 Claude Code가 세션 시작 시 백그라운드에서 시작하고 끝날 때까지 계속 실행하는 셸 명령으로, [Monitor 도구](/docs/ko/tools-reference#monitor-tool)를 사용합니다. 이것이 인쇄하는 것은 Claude에 알림으로 도달합니다. `when` 필드는 대신 명명된 skill이 처음 실행될 때 시작할 수 있습니다. 이 파일은 오류 로그를 추적합니다:

512 

513 ```json theme={null}

514 [

515 {

516 "name": "error-log",

517 "command": "tail -F ./logs/error.log",

518 "description": "Application error log"

519 }

520 ]

521 ```

522 </Piece>

523 

524 <Piece id="output-styles">

525 플러그인은 [출력 스타일](/docs/ko/output-styles)을 포함할 수 있으며, 이는 Claude가 응답을 포맷하고 표현하는 방식을 변경합니다. 각 출력 스타일을 `output-styles/<name>.md`로 저장합니다. 이 파일은 `/output-style`에 `my-plugin:terse`로 나타납니다:

526 

527 ```markdown theme={null}

528 ---

529 name: terse

530 description: Answer in as few words as possible

531 keep-coding-instructions: true

532 ---

533 

534 Keep every reply short. Skip preambles and summaries.

535 ```

536 </Piece>

537 

538 <Piece id="themes">

539 플러그인은 Claude Code 인터페이스의 [색상 테마](/docs/ko/terminal-config#create-a-custom-theme)를 포함할 수 있습니다. 각 테마를 `themes/<slug>.json`으로 저장합니다. 이 파일은 `/theme`에 `Dracula`로 나타나고, `my-plugin`에서 표시됩니다:

540 

541 ```json theme={null}

542 {

543 "name": "Dracula",

544 "base": "dark",

545 "overrides": {

546 "claude": "#bd93f9",

547 "error": "#ff5555"

548 }

549 }

550 ```

551 </Piece>

552 

553 <Piece id="workflows">

554 `workflows/` 폴더는 [워크플로우](/docs/ko/workflows) `.js` 파일을 보유합니다: `meta` 블록, 그 다음 여러 서브에이전트를 조율하는 스크립트 본문. 이 파일은 `/my-plugin:audit-routes`로 실행됩니다:

555 

556 ```javascript theme={null}

557 export const meta = {

558 name: 'audit-routes',

559 description: 'Audit every route handler for missing auth checks',

560 }

561 

562 const found = await agent('List every .ts file under src/routes/.', {

563 schema: { type: 'object', required: ['files'], properties: { files: { type: 'array', items: { type: 'string' } } } },

564 })

565 

566 const audits = await pipeline(found.files, file =>

567 agent(`Audit ${file} for missing authentication checks.`, { label: file }),

568 )

569 

570 return audits.filter(Boolean)

571 ```

572 </Piece>

573 

574 <Piece id="bin">

575 `bin/`은 플러그인이 명령줄 도구를 제공하는 방법입니다. 플러그인이 활성화되어 있는 동안, Claude Code는 이 폴더를 실행하는 셸의 `PATH`에 넣으므로, Claude 또는 skill의 지침이 사용자가 아무것도 설치하지 않고도 이름으로 도구를 실행할 수 있습니다. 이 [실행 파일](#executables)이 있으면, `hello-plugin`은 Claude가 실행할 수 있는 명령입니다:

576 

577 ```bash theme={null}

578 #!/bin/bash

579 echo "hello from my-plugin"

580 ```

581 </Piece>

582 

583 <Piece id="scripts">

584 `hooks/hooks.json`의 hook은 스크립트를 실행하고, 이 폴더는 예제가 이를 유지하는 곳입니다. `scripts/` 이름은 관례이지 Claude Code가 찾는 것이 아닙니다: hook은 파일을 경로로 가리킵니다, `${CLAUDE_PLUGIN_ROOT}/scripts/format.sh`. 포매터 스크립트는 다음과 같을 수 있습니다:

585 

586 ```bash theme={null}

587 #!/bin/bash

588 npx prettier --write .

589 ```

590 </Piece>

591 

592 <Piece id="settings">

593 플러그인 루트의 `settings.json`은 플러그인이 활성화되어 있는 동안 적용되는 [설정](/docs/ko/settings-reference)을 보유하므로, 플러그인은 세션의 동작 방식을 변경할 수 있고 컴포넌트만 추가하는 것이 아닙니다. 플러그인에서 효과를 발휘하는 두 개의 키만 있습니다, [`agent`](/docs/ko/settings-reference#agent)와 [`subagentStatusLine`](/docs/ko/settings-reference#subagentstatusline); 다른 모든 키는 삭제됩니다. [기본 설정](#default-settings)을 참조합니다.

594 

595 이 파일은 `agent`를 설정하여, 세션의 주 스레드를 플러그인의 자신의 `security-reviewer` 에이전트로 실행하므로, 해당 에이전트의 시스템 프롬프트, 도구 제한, 모델이 전체 세션에 적용됩니다:

596 

597 ```json theme={null}

598 {

599 "agent": "security-reviewer"

600 }

601 ```

602 </Piece>

603 

604 <Piece id="mcp">

605 [MCP 서버](/docs/ko/mcp)는 Claude에 외부 시스템의 도구를 제공합니다. 플러그인 루트의 `.mcp.json`에서 선언합니다. 이 파일은 플러그인 내부의 스크립트에서 로컬 서버를 시작하고, `/mcp`에 `plugin:my-plugin:db`로 나타납니다:

606 

607 ```json theme={null}

608 {

609 "mcpServers": {

610 "db": {

611 "command": "node",

612 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"]

613 }

614 }

615 }

616 ```

617 </Piece>

618 

619 <Piece id="lsp">

620 LSP 서버는 Claude에 언어에 대한 [진단 및 코드 네비게이션](/docs/ko/plugins/code-intelligence)을 제공합니다. 플러그인 루트의 `.lsp.json`에서 서버를 선언합니다. 이 파일은 `.go` 파일에 대해 Go 언어 서버를 연결합니다:

621 

622 ```json theme={null}

623 {

624 "gopls": {

625 "command": "gopls",

626 "args": ["serve"],

627 "extensionToLanguage": {

628 ".go": "go"

629 }

630 }

631 }

632 ```

633 </Piece>

634</PluginExplorer>

635 

636<h2 id="add-each-kind-of-component">

637 각 종류의 컴포넌트 추가

638</h2>

639 

640아래의 각 섹션은 한 종류의 컴포넌트를 다룹니다: 플러그인에서 파일이 어디로 가는지, 검증하는 예제, 플러그인이 로드된 후 사용자가 보는 것, 기본 위치를 변경하는 manifest 키. 플러그인이 필요한 것들을 추가합니다; 아무것도 필수가 아닙니다.

641 

642<h3 id="skills">

643 Skills

644</h3>

645 

646[skill](/docs/ko/skills)은 설명이 작업과 일치할 때 Claude가 로드할 수 있는 `SKILL.md` 파일입니다. 사용자는 또한 명령으로 실행할 수 있습니다. 각 skill을 `skills/` 아래의 자신의 디렉토리에 저장합니다:

647 

648```text theme={null}

649my-plugin/

650├── .claude-plugin/

651│ └── plugin.json

652└── skills/

653 └── review/

654 └── SKILL.md

655```

656 

657`SKILL.md`에 `description`을 제공하여 Claude가 언제 사용할지 알 수 있도록 합니다:

658 

659```markdown skills/review/SKILL.md theme={null}

660---

661description: Reviews a pull request for style and test coverage. Use when asked to review code.

662---

663 

664Review the changed files. Report style problems first, then missing tests.

665```

666 

667플러그인을 로드한 후, `/my-plugin:review`는 skill을 실행합니다. 명령 이름과 누가 호출할 수 있는지는 다음 규칙을 따릅니다:

668 

669* **명령 이름**: `/<plugin>:<directory>`, 따라서 `my-plugin`의 `skills/review/SKILL.md`는 `/my-plugin:review`입니다. frontmatter에서 `name`을 설정하면, 마지막 세그먼트를 대체하고 플러그인 접두사는 유지됩니다. [skill이 명령 이름을 얻는 방법](/docs/ko/skills#how-a-skill-gets-its-command-name)을 참조합니다

670* **누가 호출하는가**: Claude, 사용자, 또는 둘 다, frontmatter로 제어됩니다. [skill 호출을 제어하는 사람](/docs/ko/skills#control-who-invokes-a-skill)을 참조합니다

671 

672기본 `skills/` 디렉토리 외부에 skills를 배치할 수도 있습니다:

673 

674* **추가 디렉토리**: `skills` manifest 키에 나열합니다. 이들은 `commands`와 `agents`와 달리 기본 `skills/` 스캔을 대체하지 않고 추가합니다

675* **플러그인 루트의 단일 skill**: `skills/` 디렉토리가 없고 `skills` manifest 키가 없으면, 플러그인 루트의 `SKILL.md`는 하나의 skill로 로드됩니다. frontmatter에서 `name`을 설정합니다, 그렇지 않으면 마켓플레이스 설치가 플러그인 이름이 아닌 [캐시 디렉토리](/docs/ko/plugins/loading#find-plugins-on-disk) 이름으로 skill을 이름 지정합니다

676 

677플러그인에 지침을 포함하려면, 이를 skill로 작성합니다. Claude Code는 플러그인 루트의 `CLAUDE.md`를 로드하지 않으며, `claude plugin validate`는 `CLAUDE.md at the plugin root is not loaded as project context` 경고를 표시합니다.

678 

679frontmatter 필드 및 지원 파일의 경우, [Skills](/docs/ko/skills)를 참조합니다.

680 

681<h3 id="commands">

682 명령

683</h3>

684 

685명령은 사용자가 이름으로 실행하는 단일 Markdown 파일입니다(예: `/my-plugin:about`).

686 

687<Note>

688 명령은 이전 형식이며, [skills](#skills)는 새로운 작업을 위해 이를 대체합니다. skill은 같은 방식으로 이름으로 실행되고, 디렉토리에 지원 파일을 포함할 수도 있습니다. `.claude/commands/`에서 이동하는 파일에 대해 `commands/`를 유지합니다.

689</Note>

690 

691`commands/<file>.md`에 명령을 저장하면 `/<plugin>:<file>`이 됩니다. 서브디렉토리는 세그먼트를 추가하므로, `commands/db/migrate.md`는 `/my-plugin:db:migrate`입니다.

692 

693명령 파일은 skills와 동일한 frontmatter를 사용합니다.

694 

695<h4 id="define-commands-in-the-manifest">

696 manifest에서 명령 정의

697</h4>

698 

699명령 파일을 `commands/` 이외의 다른 곳에 유지하거나, 별도의 Markdown 파일 없이 `plugin.json` 내부에 짧은 명령을 정의하려는 경우에만 필요합니다. `commands` manifest 키를 설정하면, Claude Code는 `commands/`를 스캔하는 대신 이를 읽습니다. 키는 경로, 경로 배열, 또는 각 명령 이름을 `source` 파일 또는 인라인 `content`로 매핑하는 객체를 사용합니다.

700 

701이 manifest는 `/my-plugin:about`을 인라인으로 정의하며, Markdown 파일이 없습니다:

702 

703```json .claude-plugin/plugin.json theme={null}

704{

705 "name": "my-plugin",

706 "commands": {

707 "about": {

708 "content": "Summarize what this repository does in three sentences.",

709 "description": "Summarize the repository"

710 }

711 }

712}

713```

714 

715플러그인을 로드하고 세션에서 `/my-plugin:about`을 실행하여 로드되었는지 확인합니다.

716 

717전체 키 구문의 경우, [`commands`](/docs/ko/plugins/manifest-reference#commands)를 참조합니다.

718 

719<h3 id="agents">

720 Agents

721</h3>

722 

723[서브에이전트](/docs/ko/sub-agents)는 자신의 지침과 컨텍스트 윈도우를 가진 별도의 어시스턴트로, Claude가 작업을 위임할 수 있습니다. `agents/` 아래의 각 Markdown 파일은 하나를 정의합니다:

724 

725```markdown agents/security-reviewer.md theme={null}

726---

727name: security-reviewer

728description: Reviews code changes for security issues. Use after edits to authentication or input handling.

729model: sonnet

730---

731 

732You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.

733```

734 

735이 에이전트는 `my-plugin:security-reviewer`로 이름 지정되고, 사용자는 `@agent-my-plugin:security-reviewer`로 [명시적으로 호출](/docs/ko/sub-agents#invoke-subagents-explicitly)할 수 있습니다. 이름 형식은 `<plugin>:<name>`이며, `<name>`은 frontmatter에서 오거나 없을 때 파일 이름에서 옵니다.

736 

737`agents` manifest 키는 `agents/` 스캔을 대체합니다.

738 

739<h4 id="organize-agents-in-subfolders">

740 agents의 서브폴더에서 agents 구성

741</h4>

742 

743플러그인 agent 파일을 `agents/`의 서브폴더에 넣을 수 있습니다. Claude Code는 [재귀적으로 로드](/docs/ko/sub-agents#choose-the-subagent-scope)하고 플러그인 이름, 각 서브폴더 이름, 파일 이름을 콜론으로 결합하여 에이전트의 범위 지정 이름을 형성합니다. 예를 들어, `my-plugin`이라는 플러그인의 `agents/review/security.md`는 `my-plugin:review:security`로 로드됩니다. 두 가지 설정이 해당 이름을 변경합니다:

744 

745* Frontmatter `name`: 파일 이름만 대체하므로, `agents/review/security.md`의 `name: audit`은 `my-plugin:review:audit`로 로드됩니다

746* Manifest [`agents`](/docs/ko/plugins/manifest-reference#fields) 필드: 거기에 나열한 파일은 서브폴더 이름 없이 로드되므로, `"agents": "./custom/review/security.md"`는 `my-plugin:security`로 로드됩니다

747 

748<h4 id="frontmatter-fields-in-plugin-agents">

749 플러그인 agents의 Frontmatter 필드

750</h4>

751 

752플러그인 agent의 frontmatter는 다음 규칙을 따릅니다:

753 

754* **지원되는 필드**: `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color`, 그리고 `experimental`의 `cacheTtl` 키. 유일한 유효한 `isolation` 값은 `"worktree"`입니다. 각각이 무엇을 하는지는 [지원되는 frontmatter 필드](/docs/ko/sub-agents#supported-frontmatter-fields)를 참조합니다

755* **무시되는 필드**: `permissionMode`, `hooks`, `mcpServers`, `initialPrompt`. agent 파일은 자신의 hooks나 MCP 서버를 추가할 수 없으므로, 이들을 플러그인 [hooks](#hooks)와 [MCP 서버](#mcp-servers)로 추가합니다

756* **파싱되지 않는 Frontmatter**: agent는 여전히 모든 필드가 무시된 상태로 로드됩니다. 파일 이름으로 이름 지정되고, 설명은 `Agent from my-plugin plugin`을 읽습니다. 셸에서 [`claude plugin validate`](/docs/ko/plugins/cli-reference#plugin-validate)를 실행하여 이러한 파일을 찾습니다

757 

758각 필드가 무엇을 하는지와 우선순위 규칙의 경우, [Subagents](/docs/ko/sub-agents#supported-frontmatter-fields)를 참조합니다.

759 

760<h3 id="hooks">

761 Hooks

762</h3>

763 

764[hook](/docs/ko/hooks-guide)은 Claude Code의 라이프사이클의 한 지점(예: 모든 파일 편집 후)에서 자동으로 무언가를 실행합니다: 셸 명령, HTTP 요청, MCP 도구 호출, 모델에 대한 프롬프트, 또는 서브에이전트. 플러그인의 hooks를 플러그인 루트의 `hooks/hooks.json`에 저장하고, 최상위 `"hooks"` 키 아래에, `settings.json`의 `hooks` 객체와 동일한 형태로 저장합니다. 이를 통해 기존 설정 hook을 변경 없이 복사할 수 있습니다.

765 

766이 hook은 모든 `Write` 또는 `Edit` 후에 번들된 스크립트를 실행합니다:

767 

768```json hooks/hooks.json theme={null}

769{

770 "hooks": {

771 "PostToolUse": [

772 {

773 "matcher": "Write|Edit",

774 "hooks": [

775 {

776 "type": "command",

777 "command": "\"${CLAUDE_PLUGIN_ROOT}/scripts/format.sh\""

778 }

779 ]

780 }

781 ]

782 }

783}

784```

785 

786`scripts/format.sh`에 스크립트를 저장하고 실행 가능하게 만듭니다.

787 

788플러그인을 로드하고 Claude에 파일을 편집하도록 요청합니다. 종료 코드 0인 `PostToolUse` hook은 트랜스크립트에 아무것도 표시하지 않으므로, [디버그 로깅](/docs/ko/hooks#debug-hooks)으로 또는 스크립트 자체가 변경하는 것으로 실행되었는지 확인합니다.

789 

790`hooks/hooks.json`과 `hooks` manifest 키의 Hooks는 모두 로드됩니다. 모든 이벤트와 그 페이로드의 경우, [Hook 이벤트](/docs/ko/hooks#hook-events)를 참조합니다.

791 

792<h4 id="when-plugin-hooks-fire">

793 플러그인 hooks가 발생할 때

794</h4>

795 

796플러그인의 hooks는 플러그인의 skills나 명령 중 하나가 사용될 때까지 기다리지 않습니다. Claude Code는 세션이 플러그인을 로드할 때 이들을 등록하고, 그 이후로 이벤트에서 발생합니다. hook이 실행되는 시기를 제한하려면, `matcher`를 좁힙니다.

797 

798hook이 발생하지 않으면, [발생하지 않는 hooks](/docs/ko/plugins/troubleshooting#failed-to-load-hooks-from-and-hooks-that-dont-fire)를 참조합니다.

799 

800<h4 id="environment-quoting-and-matching-mcp-tools">

801 환경, 인용, MCP 도구 일치

802</h4>

803 

804hook의 환경, `${CLAUDE_PLUGIN_ROOT}`의 인용, 플러그인의 자신의 MCP 도구에 대한 매처는 다음과 같이 작동합니다:

805 

806* **환경**: 모든 hook 프로세스는 환경에서 `CLAUDE_PLUGIN_ROOT`와 `CLAUDE_PLUGIN_DATA`를 받고, 각 [사용자 구성](#user-configuration) 값에 대해 `CLAUDE_PLUGIN_OPTION_<KEY>`를 받으므로, 스크립트는 거기서 이들을 읽을 수 있습니다

807* **인용**: `command`에 `args`가 없으면, 셸을 통해 실행되므로, `${CLAUDE_PLUGIN_ROOT}` 경로를 큰따옴표로 감싸십시오, [Hooks](#hooks) 아래의 `hooks/hooks.json` 예제처럼, 확장된 경로를 하나의 셸 단어로 유지하려면. `args`를 대신 전달하면, 각 요소는 셸 없이 하나의 인수로 전달되고 인용이 필요하지 않습니다. [exec 형식과 셸 형식](/docs/ko/hooks#exec-form-and-shell-form)을 참조합니다

808* **플러그인의 자신의 MCP 도구 일치**: 이 플러그인이 선언하는 [MCP 서버](#mcp-servers)의 도구는 `mcp__plugin_<plugin>_<server>__<tool>`로 이름 지정되므로, 매처에 전체 이름을 작성합니다. 서버 이름만의 매처는 발생하지 않습니다. [MCP 도구 일치](/docs/ko/hooks#match-mcp-tools)를 참조합니다

809 

810<h3 id="mcp-servers">

811 MCP 서버

812</h3>

813 

814MCP 서버는 Claude에 외부 시스템의 도구를 제공합니다. 플러그인 루트의 `.mcp.json`에서 선언하고, [프로젝트 `.mcp.json`](/docs/ko/mcp#project-scope)과 동일한 형태로 선언합니다. 이 `.mcp.json`은 `db`라는 하나의 서버를 선언합니다:

815 

816```json .mcp.json theme={null}

817{

818 "mcpServers": {

819 "db": {

820 "command": "node",

821 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"]

822 }

823 }

824}

825```

826 

827`mcpServers` 래퍼를 생략하고 `db`를 파일의 최상위 수준에 넣을 수도 있습니다.

828 

829플러그인을 로드하고 `/mcp`를 실행하여 서버가 `plugin:my-plugin:db`로 나타나는지 확인합니다.

830 

831`claude plugin validate`는 `.mcp.json`을 확인하고 Claude Code가 로드 시간에 삭제할 서버 항목을 오류로 보고합니다. Claude Code v2.1.281 이상이 필요합니다.

832 

833잘못된 항목이 로드 시간에 나타나는 위치의 경우, [시작하지 않는 MCP 서버](/docs/ko/plugins/troubleshooting#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start)를 참조합니다.

834 

835`mcpServers` manifest 키는 인라인 서버 맵, JSON 파일 경로, 또는 이들의 배열을 사용합니다. manifest 서버가 `.mcp.json`의 것과 동일한 이름을 가지면, manifest 서버가 이를 대체합니다.

836 

837<h4 id="reach-users-on-claude-ai-and-cowork">

838 claude.ai 및 Cowork의 사용자에게 도달

839</h4>

840 

841`db` 서버 아래의 [MCP 서버](#mcp-servers)와 같은 로컬 stdio 서버는 Claude Code에서 실행되고 Claude Desktop 앱에서 머신에서 실행되는 Cowork 세션에서 실행되지만, claude.ai에서는 실행되지 않습니다. 거기에도 사용자에게 도달하려면, `https://` URL로 원격 서버를 참조하십시오, 이는 claude.ai와 Cowork이 사용자에게 커넥터로 제공합니다.

842 

843<h4 id="server-names-tool-names-and-reloads">

844 서버 이름, 도구 이름, 재로드

845</h4>

846 

847서버의 이름, 변수 대체, 재로드 동작은 다음 규칙을 따릅니다:

848 

849* **서버 이름**: `plugin:<plugin>:<server>`, 따라서 `my-plugin`의 `db` 서버는 `/mcp`에서 `plugin:my-plugin:db`입니다. [`mcp_tool` hook](/docs/ko/hooks#mcp-tool-hook-fields)에서 서버를 이름 지정할 때 동일한 형식을 사용합니다

850* **도구 이름**: `mcp__plugin_<plugin>_<server>__<tool>`, 따라서 해당 `db` 서버의 `query` 도구는 `mcp__plugin_my-plugin_db__query`입니다. 이것은 [권한 규칙](/docs/ko/permissions)과 [hook 매처](#hooks)에서 사용할 이름입니다

851* **대체**: `${CLAUDE_PLUGIN_ROOT}`와 다른 [경로 변수](#path-variables-and-persistent-data)는 `command`, `args`, `env`에서 대체됩니다. `args`에서는 각 요소가 하나의 인수로 전달되므로 인용이 필요하지 않습니다

852* **재로드**: 사용자가 `/reload-plugins`를 실행하고 [재로드가 적용](/docs/ko/plugins/cli-reference#reloads-that-change-mcp-tools)되면, 구성이 변경되지 않은 서버는 연결을 유지합니다. 구성이 변경된 서버는 재연결되고, 제거한 서버는 연결을 끊습니다

853 

854<h4 id="include-a-packaged-mcpb-server">

855 패키지된 MCPB 서버 포함

856</h4>

857 

858`mcpServers` 키는 또한 [MCPB 파일](https://github.com/modelcontextprotocol/mcpb)로 패키지된 서버를 수용하며, 확장자는 `.mcpb` 또는 이전 `.dxt`입니다. 키를 파일로 가리키십시오, 플러그인 내부의 경로 또는 `https://` URL:

859 

860```json .claude-plugin/plugin.json theme={null}

861{

862 "name": "my-plugin",

863 "mcpServers": "./servers/db.mcpb"

864}

865```

866 

867서버는 번들의 manifest에서 `name`을 가져옵니다.

868 

869전송 및 인증의 경우, [MCP](/docs/ko/mcp#plugin-provided-mcp-servers)를 참조합니다.

870 

871<h3 id="lsp-servers">

872 LSP 서버

873</h3>

874 

875LSP 서버는 Claude에 언어에 대한 진단 및 코드 네비게이션을 제공합니다. [공식 코드 인텔리전스 플러그인](/docs/ko/plugins/code-intelligence)이 이미 언어를 다루면, 하나을 작성하는 대신 설치합니다. 그렇지 않으면 플러그인 루트의 `.lsp.json`에서 서버를 선언합니다:

876 

877```json .lsp.json theme={null}

878{

879 "gopls": {

880 "command": "gopls",

881 "args": ["serve"],

882 "extensionToLanguage": {

883 ".go": "go"

884 }

885 }

886}

887```

888 

889파일은 각 서버 이름을 직접 구성에 매핑하며, 맵 주위에 래퍼 객체가 없습니다. `command`는 바이너리의 이름이고, 인수는 `args`에 있습니다. `extensionToLanguage`는 최소한 하나의 확장이 필요하며, 각각은 `.`로 시작합니다.

890 

891`claude plugin validate`는 이 파일을 읽지 않습니다. 항목이 유효하지 않으면, 전체 파일은 로드 시 건너뛰고 `Invalid LSP server config for ".lsp.json"`이 `/plugin` **Errors** 탭에 나타납니다.

892 

893플러그인은 연결을 구성하지만 서버 바이너리를 설치하지 않으며, 각 파일 확장자는 하나의 서버를 가집니다:

894 

895* **누락된 바이너리**: Claude Code는 사용자의 `PATH`에서 이름으로 `command`를 시작합니다. 바이너리가 없으면, 서버는 시작하지 못하고 `claude --debug`는 `LSP server <name> failed to start`를 로깅합니다

896* **확장자 충돌**: 두 개의 활성화된 서버가 동일한 확장자를 주장하면, 처음 등록된 것이 해당 파일을 처리하고 다른 것은 이들에 대해 사용되지 않습니다, 서버가 하나의 플러그인에서 오든 두 개에서 오든. `/plugin` **Errors** 탭은 경고 `LSP server "<name>" is not used for <ext> files`를 표시합니다

897 

898`lspServers` manifest 키는 동일한 맵을 인라인으로, JSON 파일 경로로, 또는 이들의 배열로 사용하며, 서버는 `.lsp.json`의 것에 추가됩니다. manifest 서버가 `.lsp.json`의 것과 동일한 이름을 가지면, manifest 서버가 이를 대체합니다.

899 

900`transport`, 타임아웃, 재시작, 다른 필드의 경우, [`lspServers`](/docs/ko/plugins/manifest-reference#lspservers)를 참조합니다.

901 

902로그 출력을 stdout이 아닌 stderr로 보냅니다. Claude Code는 서버의 stdout을 프로토콜 메시지로만 읽고, 메시지 헤더는 최대 64 KiB, 메시지 본문은 최대 32 MiB를 수용합니다.

903 

904Claude Code는 어느 한계를 초과하거나 stdout에 비프로토콜 출력을 작성하는 서버를 연결 해제하고, `restartOnCrash`와 `maxRestarts`에 대해 연결 해제를 충돌로 계산합니다. `--debug`로 실행하면, Claude Code는 원인을 이름 지정하는 오류를 디버그 로그에 작성합니다.

905 

906<h3 id="executables">

907 실행 파일

908</h3>

909 

910플러그인 루트의 `bin/` 파일은 플러그인이 활성화되어 있는 동안 Bash 도구의 셸의 `PATH`에 있으므로, Claude는 이들을 베어 명령으로 실행할 수 있습니다. 실행 가능한 스크립트를 추가합니다:

911 

912```bash bin/hello-plugin theme={null}

913#!/bin/bash

914echo "hello from my-plugin"

915```

916 

917`chmod +x bin/hello-plugin`으로 실행 가능하게 만들고 플러그인을 로드합니다. Claude에 `hello-plugin`을 실행하도록 요청하면, Bash 도구 결과는 스크립트의 출력을 표시합니다.

918 

919플러그인 `bin/` 디렉토리는 사용자의 자신의 `PATH` 항목 뒤에 오므로, 플러그인은 `git`, `ls`, 또는 다른 시스템 명령을 섀도우할 수 없습니다.

920 

921claude.ai와 Cowork은 최상위 `bin/` 디렉토리를 가진 플러그인을 설치하지 않습니다, [claude.ai 조직 설정을 통해 배포](/docs/ko/plugins/host-marketplace#distribute-through-organization-settings)하는 것을 포함합니다.

922 

923<h3 id="default-settings">

924 기본 설정

925</h3>

926 

927플러그인이 활성화되어 있는 동안 적용되는 기본값을 설정하려면, 플러그인 루트에 `settings.json`을 추가하거나, 동일한 객체를 `settings` manifest 키에 인라인으로 넣습니다. 두 개의 키가 효과를 발휘합니다, `agent`와 `subagentStatusLine`, 다른 모든 키는 삭제됩니다.

928 

929플러그인의 자신의 agents 중 하나를 주 스레드로 실행하도록 `agent`를 설정합니다:

930 

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

932{

933 "agent": "security-reviewer"

934}

935```

936 

937플러그인을 로드하고 세션을 시작합니다. Claude는 주 대화에서 `security-reviewer` 에이전트의 시스템 프롬프트와 모델로 응답합니다.

938 

939키가 제어하는 모든 것의 경우, [`agent` 설정](/docs/ko/settings-reference#agent)을 참조합니다.

940 

941동일한 키가 하나 이상의 위치에서 설정되면, 이 규칙들이 어느 값이 적용되는지 결정합니다:

942 

943* **파일이 manifest보다 우선**: 둘 다 존재하고 `settings.json`이 최소한 하나의 지원되는 키를 설정하면, `settings.json`이 적용되고 manifest의 `settings`는 무시됩니다

944* **사용자 설정이 플러그인 기본값보다 우선**: 설정 소스 전체에서, 플러그인 기본값은 가장 낮은 계층이므로, 사용자의 자신의 `agent`는 `~/.claude/settings.json`에서 당신의 것을 재정의합니다

945* **두 개의 플러그인이 동일한 키를 설정**: 마지막에 로드된 플러그인의 값이 적용되고, `claude --debug`는 `overrides setting`을 로깅합니다

946 

947`subagentStatusLine` 형태의 경우, [서브에이전트 상태 라인](/docs/ko/statusline#subagent-status-lines)을 참조합니다.

948 

949<h3 id="themes-and-output-styles">

950 테마 및 출력 스타일

951</h3>

952 

953플러그인은 색상 테마와 출력 스타일을 포함할 수 있습니다. 둘 다 사용자의 자신의 것과 동일한 선택기에 나타납니다. 둘 중 하나의 경우, manifest 키를 설정하면 폴더 스캔을 대체합니다.

954 

955| 컴포넌트 | 다음으로 저장 | 형식 | 다음에 나타남 | Manifest 키 |

956| :----- | :------------------------ | :------------------------------------------------------------------------------------------------------- | :----------------------------------- | :-------------------- |

957| 테마 | `themes/<slug>.json` | 사용자가 `~/.claude/themes/`에 작성하는 [사용자 정의 테마 파일](/docs/ko/terminal-config#create-a-custom-theme) 형식 | `/theme`, 파일의 `name` 아래 | `experimental.themes` |

958| 출력 스타일 | `output-styles/<name>.md` | [사용자 정의 출력 스타일](/docs/ko/output-styles#create-a-custom-output-style) 형식, `name`과 `description` frontmatter 포함 | `/output-style`, `<plugin>:<name>`으로 | `outputStyles` |

959 

960플러그인 테마는 읽기 전용이므로, 사용자가 `/theme`에서 하나를 편집하면, 편집은 자신의 테마 디렉토리에 복사본으로 저장됩니다.

961 

962이 테마는 어두운 사전 설정에서 프롬프트 악센트와 오류 텍스트를 다시 칠합니다:

963 

964```json themes/dracula.json theme={null}

965{

966 "name": "Dracula",

967 "base": "dark",

968 "overrides": {

969 "claude": "#bd93f9",

970 "error": "#ff5555"

971 }

972}

973```

974 

975<h3 id="channels">

976 채널

977</h3>

978 

979[채널](/docs/ko/channels)은 채팅 앱과 같은 외부 시스템이 메시지를 세션으로 보낼 수 있게 합니다. 플러그인에서, 채널은 MCP 서버 중 하나와 이를 바인딩하고 자신의 구성을 프롬프트할 수 있는 `channels` 항목입니다. 이 manifest는 채널을 `telegram` 서버에 바인딩하고 봇 토큰을 요청합니다:

980 

981```json .claude-plugin/plugin.json theme={null}

982{

983 "name": "my-plugin",

984 "mcpServers": {

985 "telegram": {

986 "command": "node",

987 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],

988 "env": { "BOT_TOKEN": "${user_config.bot_token}" }

989 }

990 },

991 "channels": [

992 {

993 "server": "telegram",

994 "userConfig": {

995 "bot_token": {

996 "type": "string",

997 "title": "Bot token",

998 "description": "Telegram bot token",

999 "sensitive": true

1000 }

1001 }

1002 }

1003 ]

1004}

1005```

1006 

1007`server`는 `mcpServers`의 키와 일치해야 합니다. 채널별 `userConfig`는 [최상위 `userConfig` 키](#user-configuration)와 동일한 형태를 사용합니다.

1008 

1009서버가 구현해야 하는 것과 사용자가 채널 플러그인을 활성화하는 방법의 경우, 채널 참조의 [플러그인으로 패키지](/docs/ko/channels-reference#package-as-a-plugin)를 참조합니다. 필드 테이블의 경우, [`channels`](/docs/ko/plugins/manifest-reference#channels)를 참조합니다.

1010 

1011<h3 id="monitors">

1012 모니터

1013</h3>

1014 

1015모니터는 전체 세션 동안 백그라운드에서 실행되는 셸 명령입니다. 이것이 인쇄하는 것은 Claude에 알림으로 도달하므로, Claude는 보도록 요청받지 않고도 로그나 상태 변경에 반응할 수 있습니다. 항목을 `monitors/monitors.json`에 저장합니다:

1016 

1017```json monitors/monitors.json theme={null}

1018[

1019 {

1020 "name": "error-log",

1021 "command": "tail -F ./logs/error.log",

1022 "description": "Application error log"

1023 }

1024]

1025```

1026 

1027명령은 셸에서 실행되고, 세션이 시작된 작업 디렉토리에서 실행됩니다.

1028 

1029모니터의 명령은 시작 위치와 참조할 수 있는 것에서 제한됩니다:

1030 

1031* **대화형 세션만**: 플러그인 모니터는 대화형 세션에서 시작되고 `-p` 플래그를 사용한 비대화형 모드에서는 시작되지 않습니다. 또한 [Monitor 도구](/docs/ko/tools-reference#monitor-tool)가 사용 가능한 곳에서만 시작됩니다

1032* **사용자 구성 없음**: `command`는 [경로 변수](#path-variables-and-persistent-data)와 환경의 `${ENV_VAR}`을 가져오지만, `${user_config.*}`는 절대 가져오지 않습니다. 하나을 참조하는 모니터는 시작되지 않으며, 모니터 프로세스는 `CLAUDE_PLUGIN_OPTION_<KEY>`도 받지 않습니다

1033* **세션 중 비활성화**: 세션 중에 플러그인을 비활성화하면, Claude Code는 이미 실행 중인 모니터를 중지하지 않습니다. 세션이 끝날 때 중지됩니다

1034 

1035`experimental.monitors` manifest 키는 동일한 배열을 인라인으로 또는 JSON 파일 경로로 사용하고, `monitors/monitors.json` 대신 읽습니다.

1036 

1037`when` 트리거 및 다른 필드의 경우, [`monitors`](/docs/ko/plugins/manifest-reference#monitors)를 참조합니다.

1038 

1039<h2 id="user-configuration">

1040 사용자에게 구성 값을 요청합니다

1041</h2>

1042 

1043플러그인이 사용자로부터 필요로 하는 값을 `userConfig` manifest 키에서 선언하여, 사용자가 `settings.json`을 자신들이 편집하지 않도록 합니다. 각 옵션은 `title`을 레이블로 하고 `description`을 아래에 가진 대화 상자에 나타납니다.

1044 

1045토큰이나 비밀번호의 경우 `"sensitive": true`를 설정합니다. 대화 상자는 입력을 마스크하고, 값은 `settings.json`이 아닌 보안 저장소에 저장됩니다.

1046 

1047이 manifest는 엔드포인트와 토큰을 요청합니다:

1048 

1049```json .claude-plugin/plugin.json theme={null}

1050{

1051 "name": "my-plugin",

1052 "userConfig": {

1053 "api_url": {

1054 "type": "string",

1055 "title": "API URL",

1056 "description": "Base URL of your team's API"

1057 },

1058 "api_token": {

1059 "type": "string",

1060 "title": "API token",

1061 "description": "Token for your team's API",

1062 "sensitive": true

1063 }

1064 }

1065}

1066```

1067 

1068<h3 id="when-the-configuration-dialog-appears">

1069 구성 대화 상자가 나타날 때

1070</h3>

1071 

1072대화 상자는 대화형 `/plugin` 인터페이스에서만 나타납니다. 사용자가 다음 중 하나를 수행할 때 아직 설정되지 않은 옵션에 대해 열립니다:

1073 

1074* `/plugin`에서 플러그인을 설치합니다

1075* 세션 내에서 `/plugin install <plugin>@<marketplace>`를 실행합니다

1076* `/plugin`의 **Installed** 탭에서 플러그인을 활성화합니다

1077 

1078언제든지 동일한 대화 상자를 열려면, 사용자는 `/plugin configure <plugin>@<marketplace>`를 실행합니다.

1079 

1080`claude plugin install` 셸 명령은 `userConfig` 값을 프롬프트하지 않습니다. 셸에서 값을 설정하려면, 각각을 `--config KEY=VALUE`로 전달합니다. 옵션이 설정되지 않으면, 명령은 `userConfig options not yet set` 라인을 인쇄하여 둘 다 설정하는 방법을 이름 지정합니다. [The `userConfig` dialog never appears](/docs/ko/plugins/troubleshooting#the-userconfig-dialog-never-appears)는 라인을 인용합니다.

1081 

1082옵션 필드, 각 값이 저장되는 위치, 컴포넌트가 저장된 값을 참조하는 방법, `${user_config.*}`를 거부하는 필드의 경우, [사용자 구성](/docs/ko/plugins/manifest-reference#user-configuration)을 참조합니다.

1083 

1084<h2 id="path-variables-and-persistent-data">

1085 플러그인 경로 참조 및 데이터 저장

1086</h2>

1087 

1088플러그인이 어디에 설치될지 모르므로, 고정 경로보다는 이 변수를 통해 파일과 데이터를 참조합니다. 이들은 skill, 명령, agent 콘텐츠에서, hook과 모니터 명령에서, MCP와 LSP 서버 구성에서 대체됩니다. 또한 hook, MCP, LSP 프로세스로 내보내집니다:

1089 

1090* **`${CLAUDE_PLUGIN_ROOT}`**: 플러그인의 설치 디렉토리. 각 버전은 자신의 [캐시 디렉토리](/docs/ko/plugins/loading#find-plugins-on-disk)를 가지므로, 플러그인이 업데이트될 때 경로가 변경됩니다. 거기에 상태를 작성하지 마십시오

1091* **`${CLAUDE_PLUGIN_DATA}`**: 업데이트를 생존하는 디렉토리, `node_modules`, 가상 환경, 캐시용. `~/.claude/plugins/data/<id>/`로 해석되고 처음 참조될 때 생성됩니다

1092* **`${CLAUDE_PROJECT_DIR}`**: 프로젝트 루트, hooks가 받는 동일한 값

1093 

1094데이터 디렉토리 경로에서, `<id>`는 문자, 숫자, `_`, `-` 이외의 모든 문자가 `-`로 대체된 플러그인 식별자이므로, `my-plugin@my-marketplace`는 `my-plugin-my-marketplace`가 됩니다.

1095 

1096Windows에서, 대체된 경로는 셸이 백슬래시를 이스케이프로 읽지 않도록 전진 슬래시를 사용합니다.

1097 

1098<h3 id="install-dependencies-into-the-data-directory">

1099 데이터 디렉토리에 종속성 설치

1100</h3>

1101 

1102마켓플레이스 설치 플러그인의 경우, Claude Code는 플러그인을 캐시할 때 적격 [Node.js 패키지 종속성](/docs/ko/plugins/loading#node-js-package-dependencies)을 자동으로 설치하므로, 자신이 설치할 필요가 없을 수 있습니다. 할 때, 이 `SessionStart` hook은 첫 실행 시 `${CLAUDE_PLUGIN_DATA}`에 `node_modules`를 설치하고 업데이트가 `package.json`을 변경한 후 다시 설치합니다:

1103 

1104```json hooks/hooks.json theme={null}

1105{

1106 "hooks": {

1107 "SessionStart": [

1108 {

1109 "hooks": [

1110 {

1111 "type": "command",

1112 "command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (cd \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" . && npm install) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""

1113 }

1114 ]

1115 }

1116 ]

1117 }

1118}

1119```

1120 

1121첫 번째 세션 후, `~/.claude/plugins/data/<id>/node_modules`이 존재합니다. MCP 서버는 그 다음 `NODE_PATH`를 `${CLAUDE_PLUGIN_DATA}/node_modules`로 설정할 수 있습니다. 어느 필드가 어느 변수를 대체하는지의 경우, [환경 변수](/docs/ko/plugins/manifest-reference#environment-variables)를 참조합니다.

1122 

1123<h2 id="next-steps">

1124 다음 단계

1125</h2>

1126 

1127* [플러그인 manifest 참조](/docs/ko/plugins/manifest-reference): `plugin.json` 필드, 경로 규칙, 표준 레이아웃

1128* [evals로 플러그인 테스트](/docs/ko/plugin-evals): 추가한 컴포넌트가 Claude의 동작을 의도한 방식으로 변경하는지 확인합니다

1129* [플러그인 게시 및 배포](/docs/ko/plugins/publish): 플러그인을 버전 지정하고 마켓플레이스에 넣습니다

1130* [플러그인 문제 해결](/docs/ko/plugins/troubleshooting): 컴포넌트가 로드되지 않거나 hook이 발생하지 않을 때 수행할 작업

plugins/create.md +424 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Claude Code 플러그인 만들기

6 

7> 빈 디렉토리에서 첫 번째 Claude Code 플러그인을 만들고, 마켓플레이스 없이 테스트하며, 기존 .claude/ 설정을 변환합니다.

8 

9플러그인은 스킬, 에이전트, 훅 및 MCP 서버의 디렉토리이며, 플러그인의 이름을 지정하는 `plugin.json` 파일(매니페스트)을 포함합니다. Claude Code는 디렉토리를 하나의 단위로 로드하므로 팀원과 공유하거나, 여러 프로젝트에 설치하거나, 마켓플레이스에 게시할 수 있습니다.

10 

11이 페이지는 자신의 플러그인을 작성하는 사람들을 위한 것입니다.

12 

13<Note>

14 다음 경우는 다른 페이지에서 다룹니다:

15 

16 * **다른 사람의 플러그인 설치**: [플러그인 설치](/docs/ko/plugins/install) 참조

17 * **플러그인이 필요한지 확실하지 않음**: 개요의 [플러그인이 필요한지 결정](/docs/ko/plugins/overview#decide-whether-you-need-a-plugin) 참조

18 * **플러그인의 사용자가 claude.ai 또는 Cowork에 있음**: 동일한 폴더가 다른 구성 요소 부분 집합으로 설치됩니다. [claude.ai 및 Cowork의 플러그인](https://claude.com/docs/plugins/overview) 참조

19</Note>

20 

21이미 가지고 있는 것과 일치하는 섹션에서 시작하세요:

22 

23* **아직 아무것도 없음**: [첫 번째 플러그인 만들기](#create-your-first-plugin)를 따른 다음 [마켓플레이스 없이 개발](#develop-without-a-marketplace) 및 [테스트 및 디버그](#test-and-debug)를 따릅니다.

24* **`.claude/` 아래에 파일이 이미 있음**: 레이아웃을 배우기 위해 첫 번째 플러그인 연습을 한 번 수행한 다음 [기존 `.claude/` 설정 변환](#convert-an-existing-claude-setup)을 따릅니다.

25 

26<h2 id="decide-when-to-use-a-plugin">

27 플러그인을 사용할 시기 결정

28</h2>

29 

30스킬, 에이전트, 훅 및 MCP 서버는 모두 프로젝트 또는 홈 디렉토리에서 독립적으로 작동합니다. 하나의 프로젝트에만 제공하거나 자신만 사용하는 동안 독립 실행형 설정을 유지하세요. 팀원과 설정을 공유하거나, 여러 프로젝트에 설치하거나, 버전이 지정된 릴리스를 게시하려는 경우 플러그인을 만드세요.

31 

32독립 실행형 스킬, 에이전트, 훅 및 MCP 구성을 플러그인으로 이동할 때 해당 위치와 이름이 변경됩니다:

33 

34* **파일이 가는 위치**: 플러그인 루트라고 하는 플러그인의 자체 디렉토리 아래에 `skills/`, `agents/`, `hooks/hooks.json` 및 `.mcp.json`으로 저장됩니다.

35* **이름 지정 방식**: 플러그인 스킬 및 에이전트는 플러그인 이름을 접두사로 가져옵니다(예: `/my-plugin:hello`). 따라서 두 플러그인이 각각 `hello` 스킬을 제공할 수 있으며 충돌하지 않습니다.

36 

37기존 설정을 플러그인으로 이동하려면 [기존 `.claude/` 설정 변환](#convert-an-existing-claude-setup)을 참조하세요.

38 

39<h2 id="create-your-first-plugin">

40 첫 번째 플러그인 만들기

41</h2>

42 

43이 연습에서는 유일한 구성 요소가 하나의 스킬(인사말)인 플러그인을 만들고 `--plugin-dir`으로 실행합니다. 이는 설치하지 않고 한 세션 동안 플러그인을 로드합니다. 플러그인은 스킬, 에이전트, 훅 및 MCP 서버와 같은 [구성 요소](/docs/ko/plugins/components)의 모든 조합을 보유할 수 있으며, 어느 것도 필요하지 않습니다. 하나의 스킬은 레이아웃을 보여주는 가장 작은 예제입니다.

44 

45Claude Code [설치 및 로그인](/docs/ko/quickstart#step-1-install-claude-code)이 필요합니다.

46 

47플러그인을 보관할 디렉토리(예: `~/projects`)에서 터미널을 열고 이 단계의 명령을 실행하세요. 플러그인을 어디든 보관할 수 있습니다. 세션을 시작할 때 Claude Code에 경로를 전달하기 때문입니다.

48 

49<Steps>

50 <Step title="플러그인 디렉토리 만들기">

51 플러그인 디렉토리를 만들고, 매니페스트를 보관할 `.claude-plugin/` 폴더를 그 안에 만듭니다:

52 

53 ```bash theme={null}

54 mkdir -p my-first-plugin/.claude-plugin

55 ```

56 </Step>

57 

58 <Step title="매니페스트 작성">

59 [매니페스트](/docs/ko/plugins/manifest-reference)는 Claude Code에 플러그인의 이름을 알려주고 설명하는 `plugin.json`이라는 JSON 파일입니다. 이것을 `my-first-plugin/.claude-plugin/plugin.json`으로 저장하세요:

60 

61 ```json my-first-plugin/.claude-plugin/plugin.json theme={null}

62 {

63 "name": "my-first-plugin",

64 "description": "A greeting plugin to learn the basics",

65 "version": "1.0.0",

66 "author": {

67 "name": "Your Name"

68 }

69 }

70 ```

71 

72 네 필드는 다음을 수행합니다:

73 

74 * **`name`**: 필수입니다. 플러그인을 식별하고 플러그인이 제공하는 모든 스킬 및 에이전트의 접두사가 됩니다. 공백을 포함하지 마세요.

75 * **`description`**: 사용자가 `/plugin`에서 플러그인에 대해 보는 텍스트입니다.

76 * **`version`**: 선택 사항입니다. 설정하면 사용자가 변경할 때까지 해당 버전에 유지됩니다. [새 버전 릴리스](/docs/ko/plugins/host-marketplace#release-a-new-version)는 설정하거나 생략할 시기를 설명합니다.

77 * **`author`**: 누구에게 크레딧을 줄지입니다. 그 안에 `name`은 필수입니다. `email` 및 `url`은 선택 사항입니다.

78 

79 다른 모든 필드는 [매니페스트 참조](/docs/ko/plugins/manifest-reference#fields)에 있습니다.

80 

81 `.claude-plugin/` 안에는 `plugin.json`만 들어갑니다. 다음에 추가할 스킬은 `my-first-plugin/` 아래에 직접 들어가며, 해당 폴더 옆에 있습니다.

82 </Step>

83 

84 <Step title="스킬 추가">

85 이 플러그인의 유일한 구성 요소는 스킬입니다. 각 스킬은 `SKILL.md` 파일을 포함하는 `skills/` 아래의 디렉토리입니다. 스킬의 디렉토리를 만듭니다:

86 

87 ```bash theme={null}

88 mkdir -p my-first-plugin/skills/hello

89 ```

90 

91 그런 다음 다음 내용으로 `my-first-plugin/skills/hello/SKILL.md`를 만듭니다:

92 

93 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}

94 ---

95 name: hello

96 description: Greet the user with a friendly message

97 disable-model-invocation: true

98 ---

99 

100 Greet the user warmly and ask how you can help them today.

101 ```

102 

103 `disable-model-invocation: true` 줄은 Claude가 스킬을 자동으로 실행하지 않음을 의미하므로 사용자만 트리거합니다. Claude가 자동으로 실행하려는 스킬에서 해당 줄을 제거하세요. 스킬의 명령은 플러그인 이름과 스킬의 이름을 결합하므로 이것을 `/my-first-plugin:hello`로 실행합니다. 다른 프론트매터 필드는 [스킬 프론트매터 참조](/docs/ko/skills#frontmatter-reference)를 참조하세요.

104 </Step>

105 

106 <Step title="플러그인 검증">

107 아무것도 실행하기 전에 매니페스트와 스킬의 프론트매터를 확인하세요:

108 

109 ```bash theme={null}

110 claude plugin validate ./my-first-plugin

111 ```

112 

113 명령은 확인한 매니페스트 경로와 `✔ Validation passed`를 출력합니다. 대신 `✘ Validation failed`를 출력하면, 그 결과 줄 위의 각 줄은 수정할 필드의 이름을 지정합니다. [`claude plugin validate` 보고 오류](/docs/ko/plugins/troubleshooting#claude-plugin-validate-reports-errors) 아래에서 각 메시지를 찾아보세요.

114 </Step>

115 

116 <Step title="플러그인으로 Claude Code 실행">

117 플러그인이 로드된 세션을 시작합니다:

118 

119 ```bash theme={null}

120 claude --plugin-dir ./my-first-plugin

121 ```

122 

123 Claude Code가 시작되면 스킬을 실행합니다:

124 

125 ```text theme={null}

126 /my-first-plugin:hello

127 ```

128 

129 Claude가 인사말로 응답합니다.

130 </Step>

131</Steps>

132 

133플러그인은 `--plugin-dir`으로 시작하는 세션에서만 로드됩니다. 플래그 없이 계속 작업하거나 `.zip` 빌드를 테스트하려면 [마켓플레이스 없이 개발](#develop-without-a-marketplace)을 참조하세요.

134 

135<h3 id="share-the-plugin">

136 플러그인 공유

137</h3>

138 

139[첫 번째 플러그인 만들기](#create-your-first-plugin)로 만든 플러그인은 컴퓨터에만 존재합니다. 다른 사람들이 사용할 준비가 되면 세 가지 방법으로 전달할 수 있습니다:

140 

141* **몇 사람에게 직접 보내기**: 플러그인의 디렉토리 또는 `.zip`을 제공하면 아무것도 게시할 필요가 없습니다. [마켓플레이스 없이 플러그인 공유](/docs/ko/plugins/publish#share-a-plugin-without-a-marketplace)를 참조하세요.

142* **자신의 마켓플레이스에 나열**: 팀원이 마켓플레이스를 한 번 추가하고 이름으로 플러그인을 설치하면 업데이트를 받습니다. [자신의 마켓플레이스를 통해 게시](/docs/ko/plugins/publish#publish-through-your-own-marketplace)를 참조하세요.

143* **Anthropic의 커뮤니티 마켓플레이스에 제출**: 나열되면 해당 마켓플레이스를 추가하는 모든 사람이 설치할 수 있습니다. [커뮤니티 마켓플레이스에 제출](/docs/ko/plugins/publish#submit-to-the-community-marketplace)을 참조하세요.

144 

145<h3 id="plugin-layout">

146 플러그인 레이아웃

147</h3>

148 

149스킬, 에이전트, 훅 및 MCP 서버와 같은 각 종류의 [구성 요소](/docs/ko/plugins/components)는 플러그인 루트(즉, `--plugin-dir`에 전달하는 디렉토리) 아래의 고정 디렉토리에 들어갑니다. 사용하는 디렉토리만 추가하세요. 완전한 플러그인 디렉토리를 클릭하고 각 파일이 무엇을 하는지 읽으려면 [플러그인 탐색기](/docs/ko/plugins/components#explore-the-plugin-directory)를 열어보세요.

150 

151표는 대부분의 플러그인이 시작하는 디렉토리를 나열하며, [전체 레이아웃](/docs/ko/plugins/manifest-reference#standard-layout)은 나머지를 나열합니다.

152 

153| 위치 | 내용 |

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

155| `.claude-plugin/plugin.json` | 매니페스트입니다. `--plugin-dir`으로 플러그인을 로드하고 매니페스트가 없으면 Claude Code는 디렉토리 이름으로 플러그인의 이름을 지정합니다 |

156| `skills/` | 스킬당 하나의 `<name>/SKILL.md` 디렉토리 |

157| `commands/` | 평면 마크다운 파일, 스킬의 이전 형식입니다. 새 플러그인에는 `skills/`를 사용하세요 |

158| `agents/` | 서브에이전트당 하나의 마크다운 파일 |

159| `hooks/hooks.json` | 훅 구성: 최상위 `"hooks"` 키이며 값은 설정 파일의 `hooks`와 동일한 형태입니다 |

160| `.mcp.json` | MCP 서버 정의 |

161 

162<Warning>

163 `.claude-plugin/` 안에는 `plugin.json`만 들어갑니다. 거기에 저장된 구성 요소는 로드되지 않습니다.

164 

165 플러그인 루트는 플러그인의 자체 디렉토리이며, `~/.claude/` 자체가 아닙니다. `~/.claude/.mcp.json`에 저장된 `.mcp.json`은 로드되지 않습니다.

166</Warning>

167 

168<h2 id="develop-without-a-marketplace">

169 마켓플레이스 없이 개발

170</h2>

171 

172작성 중인 플러그인을 실행하기 위해 [마켓플레이스](/docs/ko/plugins/overview#get-plugins-from-a-marketplace)가 필요하지 않습니다. 대신 디스크 또는 URL에서 직접 로드하세요:

173 

174* [`--plugin-dir`](#load-a-directory-or-archive-for-one-session): 한 세션 동안 디렉토리 또는 `.zip` 아카이브를 로드합니다.

175* [`--plugin-url`](#fetch-an-archive-from-a-url-for-one-session): 한 세션 동안 URL에서 `.zip` 아카이브를 가져옵니다.

176* [`claude plugin init`](#scaffold-a-plugin-that-loads-every-session): `~/.claude/skills/` 아래에 모든 세션에서 로드되는 플러그인을 스캐폴드합니다.

177 

178다른 방식으로 로드된 두 플러그인이 이름을 공유하면 [이름 충돌](/docs/ko/plugins/loading#name-conflicts)을 참조하여 Claude Code가 어느 것을 유지하는지 확인하세요.

179 

180<h3 id="load-a-directory-or-archive-for-one-session">

181 한 세션 동안 플러그인 로드

182</h3>

183 

184세 가지 방법으로 단일 세션 동안 플러그인을 로드할 수 있습니다: `--plugin-dir`으로 디스크의 디렉토리 또는 `.zip` 아카이브에서, `--plugin-url`로 URL에서, 또는 플래그를 추가할 수 없을 때 환경 변수에서. 각 플러그인은 해당 세션에만 로드되며, 설정에 아무것도 기록되지 않습니다. 세션 중에 플러그인의 파일을 편집하면 `/reload-plugins`를 실행하여 변경 사항을 로드합니다.

185 

186<h4 id="from-a-directory-or-zip">

187 디렉토리 또는 `.zip`에서

188</h4>

189 

190셸에서 `claude`를 시작할 때 `--plugin-dir`을 플러그인의 루트 디렉토리 또는 그 `.zip` 아카이브와 함께 전달합니다. 여러 플러그인을 로드하려면 플래그를 반복합니다:

191 

192```bash theme={null}

193claude --plugin-dir ./my-first-plugin --plugin-dir ./other-plugin.zip

194```

195 

196<h4 id="load-a-folder-of-plugins">

197 플러그인 폴더에서

198</h4>

199 

200한 곳에서 여러 플러그인을 로드하려면 `--plugin-dir ./plugins`와 같이 플러그인을 보관하는 폴더를 전달합니다. 플러그인 폴더를 로드하려면 Claude Code v2.1.265 이상이 필요합니다.

201 

202폴더에 `.claude-plugin/` 디렉토리가 없고 최상위 수준에 플러그인 구성 요소가 없으면 Claude Code는 이를 플러그인 폴더로 취급합니다. `.claude-plugin/plugin.json` 매니페스트가 있는 각 직접 하위 폴더는 별도의 플러그인으로 로드됩니다. 폴더의 다른 모든 것은 매니페스트가 없는 하위 폴더를 포함하여 오류 없이 건너뜁니다. 폴더의 플러그인이 로드되지 않으면 하위 폴더에 `.claude-plugin/plugin.json`이 있는지 확인하세요.

203 

204대화형 세션에서 시작 후 폴더의 플러그인을 추가 및 제거할 수도 있습니다:

205 

206* 추가하는 하위 폴더는 매니페스트가 존재하면 새 플러그인으로 로드됩니다.

207* 하위 폴더를 제거하면 해당 플러그인이 언로드됩니다.

208 

209이러한 각 변경에 대해 세션에 메시지가 나타납니다. 중간 대화 중에 플러그인을 로드하거나 언로드하면 [프롬프트 캐시](/docs/ko/prompt-caching#enabling-or-disabling-a-plugin)가 무효화되면 변경이 대신 보류되고 메시지는 적용하려면 `/reload-plugins`를 실행하도록 알려줍니다.

210 

211<h4 id="fetch-an-archive-from-a-url-for-one-session">

212 URL에서

213</h4>

214 

215셸에서 `claude`를 시작할 때 `--plugin-url`을 `.zip` 아카이브의 주소(예: CI가 게시하는 빌드 아티팩트)와 함께 전달합니다:

216 

217```bash theme={null}

218claude --plugin-url https://example.com/my-first-plugin.zip

219```

220 

221Claude Code는 시작 시 아카이브를 다운로드합니다. 여러 개를 로드하려면 플래그를 반복하거나 URL을 공백으로 구분하여 하나의 인용된 인수로 전달합니다.

222 

223플래그는 제어하거나 신뢰하는 아카이브에만 가리킵니다.

224 

225Claude Code가 아카이브를 가져올 수 없거나 아카이브가 유효하지 않으면 플러그인 없이 시작되고 `/plugin` 관리자의 **Errors** 탭에서 검토할 수 있는 플러그인 로드 오류를 기록합니다.

226 

227<h4 id="from-an-environment-variable">

228 환경 변수에서

229</h4>

230 

231`--plugin-dir` 플래그를 추가할 수 없는 세션에서 플러그인을 로드하려면 [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ko/env-vars#variables) 환경 변수에 절대 경로를 나열하세요. Claude Code는 각 경로를 `--plugin-dir` 경로로 로드합니다. 이 플러그인은 `--plugin-dir`으로 전달하는 모든 플러그인에 추가로 로드됩니다. [프로젝트 및 로컬 설정은 이 변수를 설정할 수 없습니다](/docs/ko/settings-reference#variables-claude-code-ignores-in-env). `CLAUDE_CODE_PLUGIN_DIRS`는 Claude Code v2.1.280 이상이 필요합니다.

232 

233관리되는 설정은 `--plugin-dir` 및 `CLAUDE_CODE_PLUGIN_DIRS`를 끌 수 있습니다. [한 세션 동안 플러그인을 로드하는 플래그](/docs/ko/plugins/cli-reference#flags-that-load-a-plugin-for-one-session)를 참조하세요. 플러그인과 그것이 의존하는 플러그인을 함께 테스트하려면 [플러그인 및 해당 종속성을 로컬로 테스트](/docs/ko/plugins/dependencies#test-a-plugin-and-its-dependency-locally)를 참조하세요.

234 

235<h3 id="scaffold-a-plugin-that-loads-every-session">

236 모든 세션에서 플러그인 로드

237</h3>

238 

239개인 스킬 디렉토리는 `~/.claude/skills/`입니다. Claude Code는 `.claude-plugin/plugin.json`을 포함하는 모든 폴더를 플래그 없이 설치 단계 없이 모든 세션에서 플러그인으로 로드합니다. `claude plugin init`은 이러한 플러그인 중 하나를 스캐폴드합니다.

240 

241<h4 id="scaffold-the-plugin-with-claude-plugin-init">

242 `claude plugin init`으로 플러그인 스캐폴드

243</h4>

244 

245`claude plugin init`은 `~/.claude/skills/` 아래에 스타터 플러그인을 작성합니다. Claude Code v2.1.157 이상이 필요합니다. 셸에서 하나를 스캐폴드합니다:

246 

247```bash theme={null}

248claude plugin init my-tool

249```

250 

251명령은 `.claude-plugin/plugin.json` 및 루트 `SKILL.md`와 함께 `~/.claude/skills/my-tool/`을 만듭니다. `✔ Created plugin "my-tool" at ~/.claude/skills/my-tool`을 출력한 다음 `It will auto-load next session as my-tool@skills-dir. Run /reload-plugins to load it now.`를 출력합니다.

252 

253`claude plugin init`이 `skills/` 아래에 스킬을 스캐폴드하도록 `--with skills`를 전달합니다. 다른 `--with` 값은 [플러그인 명령 참조](/docs/ko/plugins/cli-reference#plugin-init)에 있습니다.

254 

255<h4 id="skill-names-in-a-scaffolded-plugin">

256 스캐폴드된 플러그인의 스킬 이름

257</h4>

258 

259`~/.claude/skills/my-tool/SKILL.md`의 루트 스킬도 개인 스킬이므로 `/my-tool:my-tool`이 아닌 `/my-tool`로 호출합니다. 플러그인 내 `skills/` 아래에 추가하는 스킬은 `/my-tool:example`과 같은 플러그인 이름 접두사를 가집니다.

260 

261<h4 id="stop-loading-the-plugin">

262 플러그인 로드 중지

263</h4>

264 

265스캐폴드된 플러그인 로드를 중지하려면 해당 디렉토리를 삭제하거나 셸에서 `claude plugin disable my-tool@skills-dir`을 실행하세요. `my-tool@skills-dir` 이름은 `claude plugin init`이 출력했습니다. ID `my-tool@skills-dir`에서 `skills-dir`은 플러그인이 마켓플레이스가 아닌 스킬 디렉토리에서 로드되기 때문에 마켓플레이스 이름이 있을 위치에 서 있습니다.

266 

267<h4 id="load-a-plugin-for-everyone-in-one-repository">

268 저장소를 통해 플러그인 공유

269</h4>

270 

271`claude plugin init`은 플러그인을 개인 스킬 디렉토리 `~/.claude/skills/`에 작성하므로 모든 프로젝트에서 로드됩니다. 한 저장소의 모든 사람이 플러그인을 로드하도록 하려면 `.claude-plugin/plugin.json`을 포함하여 `<project>/.claude/skills/<name>/`에서 동일한 레이아웃을 직접 만드세요. Claude Code가 로드하는 조건은 [저장소를 통해 공유된 플러그인](/docs/ko/plugins/loading#plugins-shared-through-a-repository)을 참조하세요.

272 

273<h2 id="test-and-debug">

274 테스트 및 디버그

275</h2>

276 

277플러그인의 변경 사항이 표시되지 않으면 순서대로 이 확인을 진행하세요. 각각은 Claude Code가 플러그인으로 무엇을 했는지 알려줍니다:

278 

2791. 셸에서 `claude plugin validate <path>`를 실행합니다. 모든 스킬, 에이전트 및 명령 파일의 매니페스트 및 프론트매터를 확인하고 `Validation passed`에서 종료 코드 `0`으로 종료합니다. 경고에서도 실패하려면 `--strict`를 추가합니다. 종료 코드 및 디렉토리 처리는 [플러그인 명령 참조](/docs/ko/plugins/cli-reference#plugin-validate)에 있습니다.

2802. 실행 중인 세션에서 `/reload-plugins`를 실행하여 디스크에서 만든 편집을 적용합니다. 개수가 있는 하나의 `Reloaded:` 줄을 출력합니다. 그런 다음 `/plugin-name:skill` 명령을 입력하거나 `/plugin` **Installed** 탭에서 플러그인을 찾아 스킬이 로드되었는지 확인합니다.

2813. 동일한 세션에서 `/plugin`을 실행합니다. **Installed** 탭은 플러그인을 나열하고, 플러그인의 세부 정보에서 Claude Code가 찾은 구성 요소를 나열합니다. **Errors** 탭은 로드되지 않은 것과 이유(예: 매니페스트의 존재하지 않는 경로)를 나열합니다.

2824. 셸로 돌아가서 `claude plugin list`를 실행합니다. 세션 전용 및 스킬 디렉토리 플러그인을 자체 섹션에 `Status: ✔ loaded` 또는 로드 오류와 함께 출력합니다. 개발 중인 플러그인을 포함하려면 `plugin list` 전에 `--plugin-dir`을 경로와 함께 전달합니다.

283 

284MCP 서버를 확인하려면 세션에서 `/mcp`를 실행하여 서버의 상태를 확인합니다. 서버가 정상이면 `/mcp`는 연결됨으로 나열합니다. 그렇지 않으면 [시작되지 않는 MCP 서버](/docs/ko/plugins/troubleshooting#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start)를 참조하세요.

285 

286훅을 확인하려면 일치하는 이벤트를 트리거합니다. 예를 들어 Claude에 파일을 편집하도록 요청하여 `PostToolUse` 훅을 트리거합니다. 그런 다음 [디버그 로그](/docs/ko/hooks#debug-hooks)를 읽으세요. 이는 일치한 훅, 종료 코드 및 출력을 보여줍니다.

287 

288다음 섹션은 개발 중에 가장 가능성이 높은 실패를 다루며, [문제 해결 페이지](/docs/ko/plugins/troubleshooting#build-a-plugin)에는 각각에 대한 전체 항목이 있습니다.

289 

290<h3 id="a-component-path-isn’t-found">

291 구성 요소 경로를 찾을 수 없음

292</h3>

293 

294`/plugin`의 **Errors** 탭은 `<component> path not found: <path>`를 표시합니다(예: `commands path not found`). 매니페스트의 구성 요소 경로(예: `commands`, `skills`, `agents` 또는 `hooks`)가 아무것도 가리키지 않습니다. 경로를 수정하거나 디렉토리를 만든 다음 세션에서 `/reload-plugins`를 실행합니다. [`commands path not found`](/docs/ko/plugins/troubleshooting#commands-path-not-found)를 참조하세요.

295 

296<h3 id="plugin-dir-at-a-marketplace-root-doesn’t-load-the-plugins-under-plugins/">

297 `--plugin-dir`이 마켓플레이스 루트에서 `plugins/` 아래의 플러그인을 로드하지 않음

298</h3>

299 

300`--plugin-dir`은 `.claude-plugin/plugin.json` 및 `skills/`와 같은 구성 요소 디렉토리를 포함하는 플러그인의 루트 디렉토리를 사용합니다. 대신 마켓플레이스 루트를 가리키면 Claude Code는 `marketplace.json`을 읽지 않으므로 `plugins/` 아래의 플러그인이 로드되지 않으며 오류가 표시되지 않습니다. 플래그를 하나의 플러그인 폴더에 가리키거나 마켓플레이스를 추가합니다. [문제 해결 항목](/docs/ko/plugins/troubleshooting#plugin-dir-loads-a-plugin-with-no-components)을 참조하세요.

301 

302<h3 id="the-plugin-loads-but-its-skills-are-missing">

303 플러그인이 로드되지만 스킬이 누락됨

304</h3>

305 

306`skills/` 디렉토리가 `.claude-plugin/` 내부에 있거나 매니페스트의 `skills` 항목이 파일을 가리킵니다. `skills/`를 플러그인 루트로 이동하고, 각 `skills` 항목이 `SKILL.md`를 포함하는 디렉토리를 가리키도록 하고, 세션에서 `/reload-plugins`를 실행합니다. [플러그인이 로드되지만 스킬이 누락됨](/docs/ko/plugins/troubleshooting#plugin-loads-but-its-skills-are-missing)을 참조하세요.

307 

308<h3 id="the-userconfig-dialog-never-appears">

309 `userConfig` 대화 상자가 나타나지 않음

310</h3>

311 

312플러그인의 [`userConfig`](/docs/ko/plugins/components#user-configuration) 옵션에 대한 대화 상자는 세션에서 `/plugin`을 통해 설치하는 부분입니다. `--plugin-dir`으로 로드하면 표시되지 않으며, `claude plugin install`도 셸에서 표시되지 않습니다. 플러그인이 로드되면 세션에서 `/plugin configure <plugin-name>`을 실행하여 열어보세요. [`userConfig` 대화 상자가 나타나지 않음](/docs/ko/plugins/troubleshooting#the-userconfig-dialog-never-appears)을 참조하세요.

313 

314<h3 id="check-that-the-plugin-changes-claude’s-behavior">

315 플러그인이 Claude의 동작을 변경하는지 확인

316</h3>

317 

318오류 없이 로드되는 플러그인도 의도한 방식으로 Claude를 조종하지 못할 수 있습니다. 셸에서 실행하는 `claude plugin eval`은 플러그인 있음과 없음으로 테스트 사례를 실행하고 차이를 점수 매깁니다. [플러그인으로 evals 테스트](/docs/ko/plugin-evals)를 참조하고 [첫 번째 eval 스위트 만들기](/docs/ko/plugin-evals#create-your-first-eval-suite)부터 시작합니다.

319 

320<h2 id="convert-an-existing-claude-setup">

321 기존 `.claude/` 설정 변환

322</h2>

323 

324프로젝트의 `.claude/` 디렉토리 아래에 스킬, 에이전트 또는 훅이 이미 있으면 다시 작성하지 않고 플러그인으로 이동할 수 있습니다.

325 

326`.claude/`를 포함하는 디렉토리인 프로젝트 루트에서 이 단계의 명령을 실행합니다. `cp` 경로가 상대적이기 때문입니다.

327 

328<Steps>

329 <Step title="플러그인 구조 만들기">

330 플러그인 디렉토리와 `.claude-plugin/` 폴더를 `.claude/` 옆에 만듭니다. 나중에 플러그인을 어디든 이동할 수 있습니다.

331 

332 ```bash theme={null}

333 mkdir -p my-plugin/.claude-plugin

334 ```

335 

336 `my-plugin/.claude-plugin/plugin.json`을 만듭니다:

337 

338 ```json my-plugin/.claude-plugin/plugin.json theme={null}

339 {

340 "name": "my-plugin",

341 "description": "Migrated from standalone configuration",

342 "version": "1.0.0"

343 }

344 ```

345 </Step>

346 

347 <Step title="기존 파일 복사">

348 가지고 있는 각 구성 디렉토리를 플러그인 루트로 복사하고 없는 디렉토리의 명령을 건너뜁니다.

349 

350 ```bash theme={null}

351 cp -r .claude/commands my-plugin/

352 ```

353 

354 ```bash theme={null}

355 cp -r .claude/agents my-plugin/

356 ```

357 

358 ```bash theme={null}

359 cp -r .claude/skills my-plugin/

360 ```

361 

362 `ls -a my-plugin`을 실행하여 복사한 각 디렉토리가 `.claude-plugin` 옆에 나타나는지 확인합니다.

363 </Step>

364 

365 <Step title="훅 이동">

366 `.claude/settings.json` 또는 `.claude/settings.local.json`에 훅이 있으면 훅 디렉토리를 만듭니다:

367 

368 ```bash theme={null}

369 mkdir -p my-plugin/hooks

370 ```

371 

372 `my-plugin/hooks/hooks.json`을 만들고 설정 파일에서 `hooks` 객체를 복사합니다. 형식은 동일합니다.

373 

374 이 예제는 Claude가 작성하거나 편집하는 각 파일에서 린터를 실행하는 하나의 훅이 있는 형태를 보여줍니다. 예제를 자신의 `hooks` 객체로 바꾸세요.

375 

376 ```json my-plugin/hooks/hooks.json theme={null}

377 {

378 "hooks": {

379 "PostToolUse": [

380 {

381 "matcher": "Write|Edit",

382 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]

383 }

384 ]

385 }

386 }

387 ```

388 </Step>

389 

390 <Step title="마이그레이션된 플러그인 테스트">

391 한 세션 동안 플러그인을 로드합니다:

392 

393 ```bash theme={null}

394 claude --plugin-dir ./my-plugin

395 ```

396 

397 새 이름으로 각 구성 요소를 확인합니다:

398 

399 * **스킬**: `/deploy`였던 스킬에 대해 `/my-plugin:deploy`를 실행합니다.

400 * **서브에이전트**: `reviewer`였던 에이전트에 대해 Claude에 `my-plugin:reviewer` 에이전트를 사용하도록 요청합니다.

401 * **훅**: 각 훅이 일치하는 이벤트를 트리거합니다.

402 

403 뭔가 누락되면 [테스트 및 디버그](#test-and-debug)를 진행합니다.

404 </Step>

405</Steps>

406 

407원본이 여전히 `.claude/` 아래에 있는 동안 플러그인의 복사본과 함께 로드된 상태로 유지됩니다:

408 

409* **스킬 및 에이전트**: 두 세트는 충돌하지 않습니다. 플러그인의 스킬 및 에이전트는 `my-plugin:` 접두사를 가지기 때문입니다. `/deploy` 및 `/my-plugin:deploy` 모두 작동하며, Claude는 `reviewer` 및 `my-plugin:reviewer`를 두 개의 서브에이전트로 봅니다.

410* **훅**: 훅에는 접두사가 없으므로 설정 파일과 `hooks/hooks.json` 모두에 있는 훅은 이벤트가 발생할 때마다 두 번 실행됩니다.

411 

412플러그인이 작동하는지 확인한 후 `.claude/`에서 원본을 삭제하고 설정 파일에서 `hooks` 객체를 제거합니다.

413 

414<h2 id="next-steps">

415 다음 단계

416</h2>

417 

418* [플러그인 구성 요소](/docs/ko/plugins/components): 에이전트, 훅, MCP 서버, LSP 서버 및 사용자 구성을 플러그인에 추가합니다

419* [플러그인으로 evals 테스트](/docs/ko/plugin-evals): eval 사례를 작성하고 `claude plugin eval`로 실행하여 플러그인이 Claude의 동작을 얼마나 안정적으로 안내하는지 확인합니다

420* [플러그인 게시](/docs/ko/plugins/publish): 버전을 지정하고, 마켓플레이스에 넣고, 커뮤니티 마켓플레이스에 제출합니다

421* [claude.ai 및 Cowork의 플러그인](https://claude.com/docs/plugins/overview): 동일한 플러그인 폴더가 claude.ai 및 Cowork에 설치됩니다. 일부 구성 요소는 Claude Code 전용입니다

422* [플러그인 매니페스트 참조](/docs/ko/plugins/manifest-reference): 모든 `plugin.json` 필드, 경로 규칙 및 디렉토리

423* [스킬](/docs/ko/skills): 플러그인이 제공하는 스킬을 작성합니다

424* [Anthropic의 claude-code 저장소의 플러그인](https://github.com/anthropics/claude-code/tree/main/plugins): `feature-dev` 및 `code-review`와 같은 이 페이지의 레이아웃의 완전한 작업 예제

plugins/create-marketplace.md +251 −0 created

Details

1> ## Documentation Index

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

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

4 

5# 마켓플레이스 만들기

6 

7> marketplace.json 파일에서 플러그인 마켓플레이스를 구축하고 호스팅하기 전에 로컬에서 테스트합니다.

8 

9플러그인 마켓플레이스는 플러그인을 나열하고 각 플러그인을 가져올 위치를 지정하는 `.claude-plugin/marketplace.json` 파일이 있는 디렉터리 또는 저장소입니다. 디렉터리를 git 호스트에 푸시하면 액세스 권한이 있는 모든 사용자가 한 명령으로 Claude Code에 등록하고 카탈로그에서 플러그인을 설치할 수 있습니다.

10 

11팀이나 조직과 같이 선택한 그룹이 플러그인을 설치하고 제어하는 카탈로그에서 계속 업데이트를 받도록 하려면 자신의 마켓플레이스를 만듭니다. 저장소는 비공개일 수 있으며, 원하는 만큼 많은 플러그인을 나열할 수 있으며, 관리자는 [모든 머신에서 이를 요구](/docs/ko/plugins/org)할 수 있습니다.

12 

13<Note>

14 다음 경우는 다른 페이지에서 다룹니다:

15 

16 * **한 플러그인을 몇 명과 공유**: 플러그인의 디렉터리 또는 `.zip` 파일을 보냅니다. [마켓플레이스 없이 플러그인 공유](/docs/ko/plugins/publish#share-a-plugin-without-a-marketplace)를 참조하세요.

17 * **모든 사람에게 플러그인 제공**: Anthropic의 커뮤니티 마켓플레이스에 제출합니다. [커뮤니티 마켓플레이스에 제출](/docs/ko/plugins/publish#submit-to-the-community-marketplace)을 참조하세요.

18 * **플러그인을 직접 사용**: `--plugin-dir`로 로드하거나 skills 디렉터리에 저장합니다. [마켓플레이스 없이 개발](/docs/ko/plugins/create#develop-without-a-marketplace)을 참조하세요.

19</Note>

20 

21[마켓플레이스 만들기](#create-a-marketplace)로 시작하여 자신의 머신에서 마켓플레이스를 구축하고 플러그인을 설치한 다음, [더 많은 플러그인 항목을 추가](#add-plugin-entries)합니다.

22 

23<h2 id="create-a-marketplace">

24 마켓플레이스 만들기

25</h2>

26 

27다음 단계는 머신에서 마켓플레이스를 만들고, 플러그인을 추가하고, Claude Code에 등록하고, 마켓플레이스에서 플러그인을 설치합니다. 이것이 전체 루프이며, 마켓플레이스를 호스팅한 후 사용자가 거치는 루프와 동일합니다. `my-marketplace/`를 만들려는 디렉터리에서 셸의 모든 명령을 실행합니다.

28 

29나열할 플러그인이 필요합니다. 예제는 [첫 번째 플러그인 만들기](/docs/ko/plugins/create#create-your-first-plugin)의 `my-first-plugin`을 사용합니다. 이는 `/my-first-plugin:hello`로 실행하는 하나의 skill이 있는 플러그인입니다. 아직 플러그인이 없으면 먼저 빌드합니다. 대신 자신의 플러그인을 사용하려면 단계에서 `my-first-plugin`이라고 하는 곳마다 해당 디렉터리와 `name`을 대체합니다. 플러그인 디렉터리에 포함될 수 있는 내용은 [플러그인 디렉터리 탐색기](/docs/ko/plugins/components#explore-the-plugin-directory)를 참조하세요.

30 

31<Steps>

32 <Step title="마켓플레이스 디렉터리 설정">

33 마켓플레이스는 `.claude-plugin/marketplace.json` 파일이 있는 디렉터리이며, 나열하는 플러그인도 포함합니다. 마켓플레이스 디렉터리와 `.claude-plugin/` 폴더를 만든 다음 플러그인을 `plugins/` 아래에 복사합니다:

34 

35 ```bash theme={null}

36 mkdir -p my-marketplace/.claude-plugin my-marketplace/plugins

37 cp -r my-first-plugin my-marketplace/plugins/

38 ```

39 

40 플러그인이 현재 위치에서 유효한지 확인하여 나중의 오류가 마켓플레이스가 아닌 플러그인에 대한 것이 아닌지 확인합니다:

41 

42 ```bash theme={null}

43 claude plugin validate ./my-marketplace/plugins/my-first-plugin

44 ```

45 

46 출력의 마지막 줄은 `✔ Validation passed`입니다.

47 </Step>

48 

49 <Step title="마켓플레이스 파일 만들기">

50 `marketplace.json`을 `my-marketplace/.claude-plugin/marketplace.json`에 저장합니다. 파일에는 `name`, `owner`, `plugins` 배열이 필요합니다.

51 

52 `plugins`의 각 객체는 플러그인 항목이며 `name`과 `source`가 필요합니다. 항목의 `source`를 마켓플레이스 루트에서의 경로로 작성합니다. 루트는 `.claude-plugin/`을 포함하는 디렉터리인 `my-marketplace/`입니다.

53 

54 ```json my-marketplace/.claude-plugin/marketplace.json theme={null}

55 {

56 "name": "my-marketplace",

57 "description": "Plugins for my team",

58 "owner": {

59 "name": "Your Name"

60 },

61 "plugins": [

62 {

63 "name": "my-first-plugin",

64 "source": "./plugins/my-first-plugin",

65 "description": "A greeting plugin to learn the basics"

66 }

67 ]

68 }

69 ```

70 </Step>

71 

72 <Step title="마켓플레이스 검증">

73 마켓플레이스 디렉터리에서 `claude plugin validate`를 실행하여 JSON 구문, 필수 필드, `.claude-plugin/marketplace.json`의 각 플러그인 항목을 확인합니다.

74 

75 ```bash theme={null}

76 claude plugin validate ./my-marketplace

77 ```

78 

79 2단계에서 작성한 파일의 경우 출력의 마지막 줄은 `✔ Validation passed`입니다.

80 </Step>

81 

82 <Step title="마켓플레이스 추가 및 플러그인 설치">

83 디렉터리를 마켓플레이스로 등록합니다.

84 

85 ```bash theme={null}

86 claude plugin marketplace add ./my-marketplace

87 ```

88 

89 명령은 `✔ Successfully added marketplace: my-marketplace (declared in user settings)`를 출력합니다. 이는 마켓플레이스가 사용자 설정 파일에 기록되었음을 의미합니다.

90 

91 플러그인을 설치합니다. 설치 ID는 항목의 `name`, `@`, 마켓플레이스 `name`입니다.

92 

93 ```bash theme={null}

94 claude plugin install my-first-plugin@my-marketplace

95 ```

96 

97 명령은 `✔ Successfully installed plugin: my-first-plugin@my-marketplace (scope: user)`를 출력합니다.

98 

99 세션 내에서 `/plugin marketplace add ./my-marketplace`는 마켓플레이스를 동일한 방식으로 등록합니다. `/plugin install my-first-plugin@my-marketplace`는 플러그인의 세부 정보를 `/plugin` 패널에서 열며, 여기서 플러그인을 설치합니다. 해당 흐름은 [플러그인 설치 및 관리](/docs/ko/plugins/install)를 참조하세요.

100 </Step>

101 

102 <Step title="플러그인이 로드되었는지 확인">

103 설치된 플러그인을 나열합니다.

104 

105 ```bash theme={null}

106 claude plugin list

107 ```

108 

109 출력은 `Status: ✔ enabled`와 함께 `my-first-plugin@my-marketplace`를 나열합니다.

110 

111 플러그인이 로드한 내용을 보려면 세부 정보를 표시합니다.

112 

113 ```bash theme={null}

114 claude plugin details my-first-plugin

115 ```

116 

117 `Component inventory` 섹션은 `Skills (1) hello`를 읽습니다.

118 

119 skill을 실행하려면 세션을 시작하고 `/my-first-plugin:hello`를 입력합니다. Claude가 인사합니다. 명령은 플러그인의 이름을 접두사로 가지며, 모든 플러그인 skill의 이름도 마찬가지입니다.

120 </Step>

121</Steps>

122 

123<h2 id="add-plugin-entries">

124 플러그인 항목 추가

125</h2>

126 

127배포하는 모든 플러그인은 `marketplace.json`의 `plugins` 배열의 하나의 객체입니다. 두 번째 플러그인을 추가하려면 두 번째 객체를 추가합니다. 이 필드는 대부분의 항목을 다룹니다:

128 

129* `name`: 설치할 때 `@` 앞에 입력하는 식별자입니다. 공백을 포함할 수 없습니다.

130* `source`: Claude Code가 플러그인을 가져오는 위치입니다. [연습](#create-a-marketplace)에서처럼 마켓플레이스 디렉터리 내의 플러그인에 대해 상대 경로 문자열을 작성하거나, 외부의 플러그인에 대해 소스 객체를 작성합니다. [플러그인 소스 선택](#choose-a-plugin-source)을 참조하세요.

131* `description`: 사용자가 `/plugin`에서 마켓플레이스를 탐색할 때 플러그인 옆에 표시되는 줄입니다.

132 

133전체 필드 목록은 [플러그인 항목](/docs/ko/plugins/marketplace-reference#plugin-entries)을 참조하세요.

134 

135항목은 또한 모든 [`plugin.json`](/docs/ko/plugins/manifest-reference) 필드를 설정할 수 있습니다. 항목의 `plugin.json` 필드가 자신의 `plugin.json`을 가진 플러그인에 적용되는 경우는 [항목 및 plugin.json](/docs/ko/plugins/marketplace-reference#entry-and-plugin-json)을 참조하세요.

136 

137<h2 id="rules-for-plugin-entries">

138 플러그인 항목 규칙

139</h2>

140 

141새 마켓플레이스에서 대부분의 설치 실패는 잘못된 디렉터리에서 작성된 상대 경로 또는 플러그인의 `plugin.json`의 `name`과 다른 항목 이름으로 인해 발생합니다.

142 

143<h3 id="write-relative-paths-from-the-marketplace-root">

144 마켓플레이스 루트에서 상대 경로 작성

145</h3>

146 

147마켓플레이스 루트는 `.claude-plugin/`을 포함하는 디렉터리입니다. [연습](#create-a-marketplace)에서는 `my-marketplace/`이므로 항목의 `source`는 `"./plugins/my-first-plugin"`입니다. 경로는 `.claude-plugin/` 내부에서 시작하지 않으므로 `..`를 사용하여 나가지 마세요.

148 

149`..`가 있는 경로와 누락된 디렉터리에 대한 경로는 다른 명령에서 실패합니다:

150 

151* **`..`가 있는 경로**: `claude plugin validate`는 항목을 유효하지 않은 것으로 보고합니다. 메시지는 `Path contains "..": ./../plugins/my-first-plugin`으로 시작합니다.

152* **존재하지 않는 디렉터리에 대한 경로**: `claude plugin validate`는 통과합니다. `claude plugin install`은 `Source path does not exist: <path>`로 실패하며, `<path>`는 Claude Code가 확인한 절대 위치입니다.

153 

154<h3 id="keep-the-entry-name-and-the-manifest-name-the-same">

155 항목 이름과 매니페스트 이름을 동일하게 유지

156</h3>

157 

158마켓플레이스 플러그인은 `marketplace.json`의 항목 `name`과 자신의 `plugin.json`의 `name`을 가지며, 이를 매니페스트 이름이라고 합니다. 각 이름은 다른 위치에 나타납니다:

159 

160* **항목 이름**: 설치 ID인 `<entry-name>@<marketplace>`입니다. 사용자가 설치하기 위해 입력하는 것, `claude plugin list`가 표시하는 것, Claude Code가 설정 파일의 [`enabledPlugins`](/docs/ko/settings-reference#enabledplugins) 아래에 작성하는 키입니다.

161* **매니페스트 이름**: 플러그인의 skill의 접두사이며, `claude plugin details`가 사용하는 이름입니다.

162 

163두 이름이 다르고 누군가 매니페스트 이름으로 설치할 때 Claude Code는 `Plugin "<manifest-name>" not found in marketplace "<marketplace>"`를 보고합니다. 두 이름을 동일하게 유지합니다. Claude Code가 두 이름을 사용하는 방법에 대한 자세한 내용은 [플러그인 로딩 참조](/docs/ko/plugins/loading#find-where-a-plugin-came-from)를 참조하세요.

164 

165<h2 id="choose-a-plugin-source">

166 플러그인 소스 선택

167</h2>

168 

169`marketplace.json`의 각 플러그인 항목에는 Claude Code에 해당 플러그인을 가져올 위치를 알려주는 `source`가 있습니다. 플러그인의 파일이 저장된 위치에 따라 소스를 선택합니다. 표는 대부분의 마켓플레이스 소유자가 사용하는 소스를 나열합니다.

170 

171| 소스 | 사용 시기 | 최소 `source` 값 |

172| :----------- | :------------------------------ | :---------------------------------------------------------------------------------------- |

173| 상대 경로 | 플러그인의 파일이 마켓플레이스 디렉터리 내부에 있음 | `"./plugins/my-first-plugin"` |

174| `github` | 플러그인이 자신의 GitHub 저장소임 | `{ "source": "github", "repo": "your-org/my-first-plugin" }` |

175| `git-subdir` | 플러그인이 모노레포와 같은 다른 저장소의 하위 디렉터리임 | `{ "source": "git-subdir", "url": "your-org/monorepo", "path": "tools/my-first-plugin" }` |

176 

177`git-subdir` 소스에서 `url`은 git URL 또는 `owner/repo` GitHub 약식을 사용합니다.

178 

179플러그인은 또한 다음 소스 유형 중 하나에서 올 수 있습니다:

180 

181* `url`: 모든 호스트의 git 저장소 URL

182* `archive`: HTTPS를 통해 다운로드한 zip 파일

183* `npm`: npm 패키지

184* `command`: 플러그인이 설치된 머신에서 명령을 실행하여 생성된 디렉터리

185 

186모든 소스 유형의 필드, 그리고 git 기반 소스를 `ref` 또는 `sha`에 고정하는 방법은 [플러그인 소스](/docs/ko/plugins/marketplace-reference#plugin-sources)를 참조하세요.

187 

188<h2 id="validate-and-test">

189 검증 및 테스트

190</h2>

191 

192플러그인을 추가할 때마다 편집 후 셸에서 `claude plugin validate ./my-marketplace`를 실행하고, 공유하기 전에 자신의 머신에서 마켓플레이스에서 설치합니다. 검증과 설치는 다른 문제를 포착합니다.

193 

194<h3 id="problems-that-validation-reports">

195 검증이 보고하는 문제

196</h3>

197 

198`claude plugin validate`는 마켓플레이스 디렉터리 내의 파일만 읽습니다. 다음을 보고합니다:

199 

200* JSON 구문 오류, `json: Invalid JSON syntax: <reason>`로

201* `owner: Invalid input`과 같은 필수 필드 누락

202* 공백, 비ASCII 문자, 또는 `claude-official`과 같은 공식 Anthropic 마켓플레이스를 모방하는 형식의 마켓플레이스 이름

203* `..`를 포함하는 상대 `source`

204* 최상위 또는 플러그인 항목의 알 수 없는 필드, 경고로

205* 상대 경로 플러그인의 `plugin.json`의 문제, `plugins[N] plugin.json → <field>: <message>`로

206 

207`validate`가 인쇄할 수 있는 모든 메시지는 [검증 메시지](/docs/ko/plugins/marketplace-reference#validation-messages)를 참조하세요. 플래그 및 종료 코드는 [`plugin validate`](/docs/ko/plugins/cli-reference#plugin-validate)를 참조하세요.

208 

209<h3 id="problems-that-surface-when-you-add-or-install">

210 마켓플레이스를 추가하거나 설치할 때 나타나는 문제

211</h3>

212 

213`claude plugin validate`가 보고하지 않는 문제는 마켓플레이스를 추가하거나 설치할 때 나타납니다:

214 

215* **마켓플레이스를 추가할 때**: 정확한 [공식 마켓플레이스 이름](/docs/ko/plugins/marketplace-reference#reserved-names), 예를 들어 `claude-plugins-official`은 검증을 통과합니다. 이러한 이름 중 하나로 마켓플레이스를 추가할 때 Claude Code는 `The name '<name>' is reserved for official Anthropic marketplaces`로 시작하는 메시지로 거부합니다.

216* **플러그인을 설치할 때**:

217 * Claude Code는 플러그인을 설치할 때 먼저 `github`, `git-subdir` 또는 다른 원격 소스를 가져오므로 잘못된 `repo` 또는 `path`가 그때 나타납니다.

218 * 존재하지 않는 디렉터리의 상대 `source`도 `Source path does not exist: <path>`로 설치에서 실패합니다.

219 

220<h3 id="test-an-edit-to-a-plugin">

221 플러그인 편집 테스트

222</h3>

223 

224[연습](#create-a-marketplace)에서 상대 경로 `source`가 있는 로컬 디렉터리에서 `my-marketplace`를 추가했습니다. 이 설정으로 Claude Code는 `my-marketplace/plugins/`에서 플러그인의 파일을 직접 읽습니다. 편집은 다음 세션 시작 또는 세션에서 `/reload-plugins`를 실행할 때 적용되며, 플러그인의 `version`에는 변경이 없습니다.

225 

226호스팅된 마켓플레이스에서 설치하는 사람들은 대신 플러그인 캐시에 복사본을 받습니다. 새 버전을 받는 방법은 [사용자를 최신 상태로 유지](/docs/ko/plugins/host-marketplace#keep-users-up-to-date)를 참조하세요.

227 

228<h3 id="remove-the-marketplace-to-start-over">

229 마켓플레이스를 제거하여 다시 시작

230</h3>

231 

232모든 것을 제거하고 다시 시작하려면 셸에서 `claude plugin marketplace remove my-marketplace`를 실행합니다. 명령은 마켓플레이스와 해당 플러그인을 제거합니다.

233 

234<h2 id="host-your-marketplace">

235 마켓플레이스 호스팅

236</h2>

237 

238[마켓플레이스 만들기](#create-a-marketplace)에서처럼 자신의 머신에서 마켓플레이스에서 플러그인을 설치할 수 있으면 마켓플레이스 디렉터리를 git 호스트에 푸시합니다.

239 

240팀원들은 GitHub 저장소의 경우 셸에서 `claude plugin marketplace add <owner>/<repo>`를 실행하거나 저장소 URL과 함께 동일한 명령을 실행합니다. 그런 다음 [연습](#create-a-marketplace)에서처럼 이름으로 플러그인을 설치합니다.

241 

242비공개 저장소 액세스, 업데이트, 버전 관리, 항목 이름 변경 또는 제거는 [마켓플레이스 호스팅 및 유지](/docs/ko/plugins/host-marketplace)를 참조하세요.

243 

244<h2 id="next-steps">

245 다음 단계

246</h2>

247 

248* [마켓플레이스 호스팅 및 유지](/docs/ko/plugins/host-marketplace): 호스트를 선택하고, 사용자를 최신 상태로 유지하고, 플러그인을 안전하게 이름 변경 또는 제거합니다

249* [마켓플레이스 참조](/docs/ko/plugins/marketplace-reference): `marketplace.json` 필드 및 소스 유형

250* [조직을 위한 플러그인 관리](/docs/ko/plugins/org): 모든 머신에서 마켓플레이스 및 해당 플러그인을 요구합니다

251* [관련성별로 플러그인 제안](/docs/ko/plugins/relevance): 세션이 일치할 때 Claude Code가 마켓플레이스에서 플러그인을 제안하도록 합니다

plugins/dependencies.md +245 −0 created

Details

1> ## Documentation Index

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

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

4 

5# 플러그인 의존성

6 

7> 플러그인이 의존하는 플러그인을 선언하고, ^1.2와 같은 버전 범위를 사용하며, Claude Code가 이를 설치, 해결 및 정리하는 방법을 알아봅니다.

8 

9플러그인 의존성은 플러그인이 의존하는 다른 플러그인입니다. 예를 들어 MCP 서버나 스킬을 호출하는 플러그인입니다. 각 의존성은 버전 제약을 선언하지 않는 한 마켓플레이스에서 제공하는 최신 버전을 추적합니다. 버전 제약은 `^2.0` 또는 `~2.1.0`과 같은 의미 있는 버전 범위이며, 이는 테스트한 범위입니다.

10 

11이 페이지는 `plugin.json`에서 의존성을 선언하는 플러그인 작성자와 릴리스에 태그를 지정하는 마켓플레이스 유지 관리자를 위한 것입니다.

12 

13<Note>

14 다음 경우는 다른 페이지에서 다룹니다:

15 

16 * **의존성이 있는 플러그인 설치**: [설치된 플러그인 관리](/docs/ko/plugins/install#manage-installed-plugins)를 참조하세요.

17 * **의존성 오류 읽기**: [의존성 오류](/docs/ko/plugins/troubleshooting#dependency-errors)를 참조하세요.

18 * **플러그인 자체 코드가 필요로 하는 npm 및 Bun 패키지 선언**: [Node.js 패키지 의존성](/docs/ko/plugins/loading#node-js-package-dependencies)을 참조하세요.

19</Note>

20 

21제약을 추가하려면 [버전 제약으로 의존성 선언](#declare-a-dependency-with-a-version-constraint)에서 시작하세요. 다른 플러그인이 의존하는 플러그인을 유지 관리하는 경우 [릴리스에 태그를 지정](#tag-plugin-releases-for-version-resolution)하여 해당 제약이 해결될 수 있도록 하세요.

22 

23<h2 id="declare-dependencies">

24 의존성 선언

25</h2>

26 

27<span id="decide-whether-to-constrain-dependency-versions" />버전 제약이 없으면 의존성은 사용자가 다음에 업데이트할 때마다 마켓플레이스에서 게시하는 각 새 릴리스로 이동합니다. 해당 릴리스가 플러그인이 호출하는 MCP 도구의 이름을 바꾸면 업데이트하는 모든 사용자에 대해 플러그인이 중단됩니다.

28 

29git 기반 소스의 의존성에 `~2.1.0`과 같은 제약이 있으면 플러그인이 설치된 사용자는 의존성의 `2.1.x` 패치를 계속 받고 `2.2`로 이동하지 않습니다. 자신의 일정에 따라 업그레이드하려면 최신 릴리스에 대해 테스트한 후 더 넓은 제약으로 플러그인의 새 버전을 게시하세요.

30 

31<h3 id="declare-a-dependency-with-a-version-constraint">

32 버전 제약으로 의존성 선언

33</h3>

34 

35플러그인의 `.claude-plugin/plugin.json`의 `dependencies` 배열에 의존성을 나열합니다. 다음 매니페스트는 버전이 지정되지 않은 의존성 하나와 제약이 있는 의존성 하나를 선언합니다:

36 

37```json .claude-plugin/plugin.json theme={null}

38{

39 "name": "deploy-kit",

40 "version": "3.1.0",

41 "dependencies": [

42 "audit-logger",

43 { "name": "secrets-vault", "version": "~2.1.0" }

44 ]

45}

46```

47 

48항목은 문자열일 수 있습니다: 이 매니페스트의 `"audit-logger"`와 같은 플러그인 이름만 또는 `"name@marketplace"`로 다른 마켓플레이스에서 해결합니다. 단순 문자열을 사용하면 플러그인은 해당 플러그인의 마켓플레이스에서 제공하는 모든 버전에 의존합니다.

49 

50버전 제약을 설정하려면 다음 필드가 있는 객체를 사용합니다. 각 필드는 문자열입니다:

51 

52| 필드 | 설명 |

53| :------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

54| `name` | 의존성의 플러그인 이름으로, 마켓플레이스 항목에 표시되는 대로입니다. Claude Code는 `marketplace`를 설정하지 않는 한 선언 플러그인과 동일한 마켓플레이스에서 조회합니다. 필수입니다. |

55| `version` | `~2.1.0`, `^2.0`, `>=1.4` 또는 `=2.1.0`과 같은 [의미 있는 버전 범위](https://github.com/npm/node-semver#ranges)입니다. 의존성은 이 범위를 만족하는 최고 git 태그에 설치되므로 의존성의 유지 관리자는 [릴리스에 태그를 지정](#tag-plugin-releases-for-version-resolution)해야 합니다. |

56| `marketplace` | `name`을 해결할 다른 마켓플레이스입니다. 허용 목록은 [다른 마켓플레이스에서 플러그인에 의존](#depend-on-a-plugin-from-another-marketplace)에 설명된 교차 마켓플레이스 의존성을 제어합니다. |

57 

58범위는 `^2.0.0-0`과 같은 사전 릴리스 접미사로 옵트인하지 않는 한 `2.0.0-beta.1`과 같은 사전 릴리스 버전과 일치하지 않습니다.

59 

60<h3 id="bundle-plugins-for-a-team">

61 팀을 위해 플러그인 번들

62</h3>

63 

64엔지니어가 한 명령으로 선별된 플러그인 세트를 설치하도록 하려면 매니페스트에 `name`과 `dependencies` 배열이 포함된 플러그인을 게시합니다. 플러그인 매니페스트는 `name`만 필요하므로 이는 유효한 플러그인이며, 설치하면 모든 의존성이 설치됩니다.

65 

66예를 들어 플랫폼 팀은 내부 마켓플레이스에서 역할별 번들을 게시할 수 있으므로 엔지니어는 각 플러그인을 별도로 설치하는 대신 하나의 `claude plugin install`을 실행합니다:

67 

68```json .claude-plugin/plugin.json theme={null}

69{

70 "name": "backend-standard",

71 "version": "1.0.0",

72 "description": "Standard plugin set for backend engineers",

73 "dependencies": [

74 "secrets-vault",

75 "deploy-kit",

76 { "name": "db-migrate", "version": "^3.0" },

77 "oncall-runbook"

78 ]

79}

80```

81 

82나중에 표준 세트에 플러그인을 추가하려면 추가 의존성으로 새 `backend-standard` 버전을 게시합니다. 마켓플레이스가 [기본적으로 자동 업데이트하지 않을 때](/docs/ko/plugins/loading#which-marketplaces-and-plugins-auto-update) 엔지니어는 마켓플레이스에 대해 자동 업데이트를 켜거나 수동으로 업데이트합니다:

83 

84* **마켓플레이스에 대해 자동 업데이트 켜기**: 다음 자동 업데이트는 번들을 새 버전으로 이동하고 추가하는 모든 의존성을 설치합니다.

85* **수동으로 업데이트**: 셸에서 `claude plugin update backend-standard`를 실행한 후 열린 세션에서 `/reload-plugins`를 실행하여 새로 추가된 의존성을 설치합니다.

86 

87엔지니어 측 단계는 [플러그인 업데이트 유지](/docs/ko/plugins/install#keep-plugins-updated)를 참조하세요.

88 

89번들을 조직의 모든 사람에게 배포하려면 관리자가 관리 설정의 `enabledPlugins`에 추가합니다. [플러그인 사전 설치 및 필수화](/docs/ko/plugins/org#pre-install-and-require-plugins)를 참조하세요.

90 

91<h3 id="depend-on-a-plugin-from-another-marketplace">

92 다른 마켓플레이스에서 플러그인에 의존

93</h3>

94 

95기본적으로 Claude Code는 사용자가 이미 해당 의존성을 설치하고 동일한 범위에서 활성화하지 않는 한 선언 플러그인과 다른 마켓플레이스에서 의존성을 설치하지 않습니다. 이 기본값은 한 마켓플레이스가 사용자가 검토하지 않은 소스에서 플러그인을 자동으로 설치하는 것을 방지합니다.

96 

97설치를 허용하려면 대상 마켓플레이스의 이름을 루트 마켓플레이스의 `marketplace.json`의 `allowCrossMarketplaceDependenciesOn`에 추가합니다. 루트 마켓플레이스는 사용자가 설치하는 플러그인을 호스팅하는 마켓플레이스입니다. 루트 마켓플레이스의 허용 목록만 적용됩니다.

98 

99다음 `marketplace.json`은 `deploy-kit`이 `your-shared-marketplace`에서 플러그인에 의존하도록 허용합니다:

100 

101```json .claude-plugin/marketplace.json theme={null}

102{

103 "name": "your-marketplace",

104 "owner": { "name": "Your Org" },

105 "allowCrossMarketplaceDependenciesOn": ["your-shared-marketplace"],

106 "plugins": [

107 {

108 "name": "deploy-kit",

109 "source": "./deploy-kit",

110 "dependencies": [

111 { "name": "audit-logger", "marketplace": "your-shared-marketplace" }

112 ]

113 }

114 ]

115}

116```

117 

118`allowCrossMarketplaceDependenciesOn`이 누락되었거나 대상 마켓플레이스를 포함하지 않으면 Claude Code는 의존성을 설치하지 않습니다. 의존성이 마켓플레이스 항목에 선언되면 설치 자체가 `Dependency "audit-logger@your-shared-marketplace" (required by deploy-kit@your-marketplace) is in marketplace "your-shared-marketplace", which is not in the allowlist`로 시작하는 메시지로 거부되고 설정할 필드의 이름을 지정합니다. `plugin.json`에 선언되면 설치는 의존성 없이 완료되고 플러그인은 로드되지 않습니다.

119 

120허용 목록 확인은 이미 활성화된 의존성에는 적용되지 않습니다. 사용자가 먼저 `your-shared-marketplace`에서 `audit-logger`를 자신의 범위에서 설치하면 `deploy-kit`은 허용 목록을 변경하지 않고 설치됩니다.

121 

122<h3 id="test-a-plugin-and-its-dependency-locally">

123 플러그인 및 해당 의존성을 로컬로 테스트

124</h3>

125 

126플러그인과 의존하는 플러그인을 동시에 개발하는 경우 셸에서 Claude Code를 시작하고 [`--plugin-dir`](/docs/ko/plugins/cli-reference#flags-that-load-a-plugin-for-one-session)로 둘 다 로드합니다:

127 

128```bash theme={null}

129claude --plugin-dir ./my-dependency --plugin-dir ./my-plugin

130```

131 

132의존성의 로컬 복사본은 플러그인의 의존성 항목을 만족하므로 마켓플레이스에서 의존성을 설치할 필요가 없습니다.

133 

134* **`version` 필요 없음**: 로컬 `plugin.json`은 [버전 제약](#declare-a-dependency-with-a-version-constraint)이 로컬 복사본에 대해 확인되지 않으므로 `version`도 필요하지 않습니다.

135* **마켓플레이스의 이름을 지정하는 항목**: 마켓플레이스의 이름을 지정하는 항목도 Claude Code v2.1.242 이상에서 로컬 복사본과 일치합니다.

136 

137마켓플레이스에서 의존성을 설치할 때까지 로컬 복사본이 비활성화되거나 없을 때마다 플러그인이 로드되지 않습니다:

138 

139* **로컬 복사본을 비활성화했습니다**: 플러그인은 다음 플러그인 로드에서 비활성화되고 오류는 `is disabled — enable it or remove the dependency`로 끝납니다. 오류가 의존성을 `<name>@inline`으로 이름 지으면 해당 식별자는 `--plugin-dir` 복사본을 나타냅니다.

140* **의존성의 `--plugin-dir` 플래그 없이 세션을 시작했습니다**: 오류는 의존성이 설치되지 않았다고 보고합니다. 플래그를 다시 전달하거나 마켓플레이스에서 의존성을 설치합니다.

141 

142두 플러그인이 하나의 부모 폴더에 있으면 해당 폴더를 `--plugin-dir`에 한 번 전달할 수 있습니다. 폴더 자체가 플러그인이 아니면 Claude Code는 `.claude-plugin/plugin.json`이 있는 각 자식 폴더를 로드합니다. Claude Code v2.1.265 이상이 필요합니다.

143 

144<h2 id="tag-plugin-releases-for-version-resolution">

145 다른 사용자가 의존하는 플러그인 릴리스하기

146</h2>

147 

148버전 제약이 있는 다른 플러그인이 의존하는 플러그인을 유지 관리하는 경우, 해당 제약이 해결될 수 있도록 릴리스에 태그를 지정합니다. 제약은 플러그인을 호스팅하는 저장소의 git 태그에 대해 해결됩니다. 플러그인의 [플러그인 소스](/docs/ko/plugins/marketplace-reference#plugin-sources)가 `marketplace.json`에서 가리키는 저장소에 태그를 지정합니다:

149 

150* **`github`, `url`, 또는 `git-subdir` 소스**: 플러그인 자체 저장소이므로 플러그인 작성자가 태그를 생성합니다

151* **`./plugins/secrets-vault`와 같은 상대 경로**: 마켓플레이스 저장소이므로 마켓플레이스 유지 관리자가 태그를 생성합니다

152 

153<h3 id="create-a-release-tag">

154 릴리스 태그 생성

155</h3>

156 

157각 릴리스에 `<plugin-name>--v<version>` 형식으로 태그를 지정합니다. 여기서 `<version>`은 해당 커밋의 `plugin.json`에 있는 `version` 필드와 일치합니다. plugin-name 접두사를 사용하면 하나의 마켓플레이스 저장소에서 독립적인 버전 기록을 가진 여러 플러그인을 호스팅할 수 있습니다.

158 

159플러그인 디렉터리에서 `origin` 원격이 푸시된 태그를 수신하도록 구성되어 있을 때, [`claude plugin tag`](/docs/ko/plugins/cli-reference#plugin-tag)를 사용하여 태그를 생성합니다:

160 

161```bash theme={null}

162claude plugin tag --push

163```

164 

165이 명령은 플러그인의 매니페스트에서 태그 이름을 빌드합니다. 태그를 생성하기 전에 다음 검사를 실행합니다:

166 

167* 플러그인 유효성 검사

168* 플러그인 디렉터리가 마켓플레이스 체크아웃 내부에 있을 때 `plugin.json`과 마켓플레이스 항목이 버전에 대해 동의하는지 확인

169* 플러그인 디렉터리 아래의 깨끗한 작업 트리 필요

170* 태그가 이미 존재하면 거부

171 

172성공적인 실행은 `Created tag secrets-vault--v2.1.0`을 출력합니다. `--push`를 사용하면 `Pushed to origin`도 출력합니다. `--push` 없이는 직접 실행할 `git push` 명령을 출력합니다.

173 

174`--dry-run`을 전달하여 아무것도 생성하지 않고 계획을 확인합니다.

175 

176[`claude plugin tag` 참조](/docs/ko/plugins/cli-reference#plugin-tag)에 나머지 플래그가 나열되어 있습니다.

177 

178`plugin.json`의 `version`과 마켓플레이스 항목의 버전을 직접 동기화된 상태로 유지하는 한, `git tag secrets-vault--v2.1.0`을 직접 실행할 수도 있습니다.

179 

180<h3 id="constrain-a-dependency-that-has-a-non-git-source">

181 비 git 소스를 가진 종속성 제약

182</h3>

183 

184태그 기반 해결은 git 기반 소스에만 적용됩니다. `npm`, `archive`, 또는 `command` [플러그인 소스](/docs/ko/plugins/marketplace-reference#plugin-sources)를 가진 종속성의 경우, 제약은 어떤 버전을 가져올지 제어하지 않습니다. 플러그인이 로드될 때 여전히 확인되며, 설치된 버전이 제약을 만족하지 않으면 종속 플러그인이 비활성화됩니다.

185 

186`npm`, `archive`, 및 `command` 소스의 경우, 확인되는 버전은 종속성의 `plugin.json`에 있는 `version`입니다. 해당 종속성을 제약하기 전에 여기에 버전을 설정합니다. 버전을 설정하지 않는 `plugin.json`은 어떤 제약도 만족하지 않기 때문입니다.

187 

188Claude Code는 `command` 소스를 가진 종속성을 직접 설치하지 않으므로 사용자가 [먼저 설치합니다](/docs/ko/plugins/marketplace-reference#command-plugin-source). 또한 종속성의 [`headersHelper`](/docs/ko/plugins/host-marketplace#authenticate-archive-downloads)를 실행하지 않으므로 사용자도 마켓플레이스 항목이 하나를 설정한 종속성을 플러그인을 설치하기 전에 설치합니다.

189 

190`claude plugin install` 외에도 이러한 작업은 선언된 모든 누락된 종속성을 설치하며, `command` 및 `headersHelper` 제한이 이들에도 적용됩니다:

191 

192* `/reload-plugins`

193* 종속 플러그인의 마켓플레이스 자동 업데이트

194* 종속 플러그인에서 `claude plugin install` 다시 실행

195* `claude plugin marketplace add`

196 

197<h2 id="how-dependencies-behave-for-your-users">

198 사용자를 위해 의존성이 어떻게 작동하는지

199</h2>

200 

201이 섹션은 플러그인이 다른 플러그인과 함께 설치되면 Claude Code가 선언한 제약을 해결, 확인 및 결합하는 방법을 설명합니다.

202 

203<h3 id="how-a-constraint-resolves-against-tags">

204 제약이 태그에 대해 어떻게 해결되는지

205</h3>

206 

207사용자가 `{ "name": "secrets-vault", "version": "~2.1.0" }`을 선언하는 플러그인을 설치하면 의존성은 `secrets-vault`를 호스팅하는 저장소에서 `~2.1.0`을 만족하는 최고 `secrets-vault--v` 태그에서 설치됩니다. 범위를 만족하는 태그가 없으면 설치는 실패하거나 마켓플레이스의 현재 복사본을 사용합니다:

208 

209* **자체 저장소가 있는 플러그인**: 설치는 `Dependency "secrets-vault@your-marketplace" has no git tag satisfying`을 포함하는 메시지로 실패합니다.

210* **상대 경로로 참조되는 플러그인**: 설치는 대신 마켓플레이스의 현재 복사본을 사용하고 플러그인이 로드될 때 제약이 확인됩니다. 해당 복사본이 범위를 벗어나면 종속 플러그인은 비활성화된 상태로 유지되고 `claude plugin list`는 `Requires "secrets-vault@your-marketplace" ~2.1.0, installed 3.0.0`을 표시합니다.

211 

212마켓플레이스가 상대 경로로 참조하는 플러그인의 경우 로컬 폴더 경로로 추가한 마켓플레이스도 폴더가 git 저장소일 때 해당 폴더의 git 태그에 대해 제약을 해결합니다. Claude Code v2.1.196 이상이 필요합니다. git 저장소가 아닌 로컬 폴더에는 태그가 없으므로 Claude Code는 대신 폴더의 현재 내용에서 의존성을 설치합니다.

213 

214<h3 id="confirm-the-resolved-version">

215 해결된 버전 확인

216</h3>

217 

218제약이 해결된 버전을 확인하려면 셸에서 `claude plugin list`를 실행합니다. 태그 해결 의존성은 `2.1.0-8713c5b11005`와 같은 12자 커밋 접미사로 버전을 표시합니다.

219 

220제약 확인은 `plugin.json`의 `version`이 뒤처져 있더라도 태그의 버전을 사용합니다.

221 

222태그를 다른 커밋으로 강제 이동하면 다음 설치는 오래된 캐시된 복사본을 재사용하는 대신 해당 커밋의 내용을 가져옵니다. 플러그인의 버전이 캐시 키가 되는 방법은 [버전 및 업데이트](/docs/ko/plugins/loading#versions-and-updates)를 참조하세요.

223 

224<h3 id="combine-constraints-from-several-plugins">

225 여러 플러그인의 제약 결합

226</h3>

227 

228여러 설치된 플러그인이 동일한 의존성을 제약하면 의존성은 모든 범위를 만족하는 최고 버전으로 해결됩니다. 일반적인 조합은 다음과 같이 해결됩니다:

229 

230| 플러그인 A 필요 | 플러그인 B 필요 | 결과 |

231| :-------- | :-------- | :------------------------------------------------------------------------------------ |

232| `^2.0` | `>=2.1` | 최고 `2.x` 태그에서 `2.1.0` 이상에서 한 번 설치합니다. 두 플러그인 모두 로드됩니다. |

233| `~2.1` | `~3.0` | 플러그인 B 설치가 `has conflicting version requirements` 메시지로 실패합니다. 플러그인 A와 의존성은 그대로 유지됩니다. |

234| `=2.1.0` | 없음 | 의존성은 `2.1.0`에 유지됩니다. 플러그인 A가 설치된 동안 자동 업데이트는 최신 버전을 건너뜁니다. |

235 

236자동 업데이트는 마켓플레이스의 최신 버전이 아니라 모든 설치된 플러그인의 범위를 만족하는 최고 git 태그에서 제약된 의존성을 가져옵니다. 설치된 플러그인의 범위가 겹치지 않으면 자동 업데이트는 해당 의존성을 현재 버전에 유지하고 `/plugin` **오류** 탭은 제약 플러그인의 이름을 지정하는 항목을 표시합니다. 범위가 겹치지만 범위에 태그가 없으면 자동 업데이트는 마켓플레이스의 현재 복사본을 가져오고 해당 복사본의 `version`이 설치된 플러그인의 범위를 벗어나면 업데이트를 건너뜁니다.

237 

238사용자가 의존성을 제약하는 마지막 플러그인을 제거하면 의존성은 더 이상 버전 범위로 제약되지 않으며 다음 업데이트에서 마켓플레이스 항목 추적을 재개합니다.

239 

240<h2 id="see-also">

241 참고 항목

242</h2>

243 

244* [`claude plugin prune`](/docs/ko/plugins/cli-reference#plugin-prune): 플러그인이 더 이상 필요하지 않은 자동 설치 의존성 제거

245* [마켓플레이스 호스팅](/docs/ko/plugins/host-marketplace): 릴리스 채널 및 다른 플러그인 권장

plugins/host-marketplace.md +458 −0 created

Details

1> ## Documentation Index

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

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

4 

5# 마켓플레이스 호스팅 및 유지 관리

6 

7> 사용자가 접근할 수 있는 플러그인 마켓플레이스를 게시하고, 비공개 마켓플레이스에 대한 액세스를 부여하며, 설치를 중단하지 않고 업데이트 및 이름 변경을 릴리스합니다.

8 

9마켓플레이스를 호스팅한다는 것은 `marketplace.json` 카탈로그를 다른 사람들이 `/plugin marketplace add`로 추가할 수 있고, 플러그인을 설치할 수 있으며, 푸시 후에도 계속해서 변경 사항을 받을 수 있는 위치에 배치하는 것을 의미합니다.

10 

11이 페이지는 마켓플레이스를 운영하는 사람을 위한 것입니다.

12 

13<Note>

14 다음 경우는 다른 페이지에서 다룹니다:

15 

16 * **카탈로그 파일을 아직 작성하지 않았습니다**: [마켓플레이스 생성](/docs/ko/plugins/create-marketplace)으로 시작하세요

17 * **조직의 머신 전체에서 마켓플레이스를 요구, 제한 또는 사전 설치하는 관리자입니다**: [조직을 위한 플러그인 관리](/docs/ko/plugins/org)를 읽으세요

18</Note>

19 

20[마켓플레이스 호스팅](#host-your-marketplace)으로 시작하여 호스트와 사용자가 실행할 명령을 선택하세요. 첫 번째 릴리스 전에 [사용자를 최신 상태로 유지](#keep-users-up-to-date)를 읽으세요. 플러그인의 `name`을 변경하기 전에 [플러그인 이름 변경 또는 제거](#rename-or-remove-a-plugin)를 읽으세요.

21 

22<h2 id="host-your-marketplace">

23 마켓플레이스 호스팅

24</h2>

25 

26GitHub, 다른 git 호스트, 호스팅된 `marketplace.json` URL 또는 공유 파일 시스템의 디렉터리에서 마켓플레이스를 호스팅할 수 있습니다. 사용자에게 호스트에 대한 추가 명령과 머신에 필요한 것을 알려주세요:

27 

28| 호스트 | Claude Code 세션에서 사용자가 실행 | 사용자가 필요한 것 |

29| :-------------------------------------------------------- | :--------------------------------------------------------------------- | :------------------------------------------------------------------------------------------ |

30| GitHub | `/plugin marketplace add your-org/your-marketplace` | `git`, 비공개 저장소의 경우 [비공개 마켓플레이스에 대한 액세스 부여](#grant-access-to-a-private-marketplace)에 설명된 액세스 |

31| GitLab, Bitbucket, GitHub Enterprise Server 또는 다른 git 호스트 | `/plugin marketplace add https://gitlab.example.com/team/plugins.git` | `git`, 머신에서 호스트에 대한 액세스. `owner/repo` 약식은 항상 github.com을 의미하므로 전체 URL을 보내세요 |

32| 호스팅된 `marketplace.json` URL | `/plugin marketplace add https://plugins.example.com/marketplace.json` | URL에 대한 HTTPS 액세스. 사용자는 카탈로그 자체에 `git`이 필요하지 않습니다 |

33| 공유 파일 시스템의 디렉터리 | `/plugin marketplace add /Volumes/shared/claude-plugins` | 경로에 대한 읽기 액세스 |

34 

35GitHub 또는 git URL 마켓플레이스의 분기 또는 태그를 고정하려면 사용자에게 `#<ref>`를 추가하도록 지시하세요(예: `your-org/your-marketplace#stable`). [플러그인 명령 참조](/docs/ko/plugins/cli-reference#plugin-marketplace-add)는 명령이 허용하는 모든 형식을 나열합니다.

36 

37성공적인 추가는 `Successfully added marketplace: your-marketplace`를 출력합니다. Claude Code는 저장소 이름이 아닌 `marketplace.json`의 `name` 필드에서 해당 이름을 가져옵니다.

38 

39그러면 사용자는 마켓플레이스의 `name`과 항목의 `name`으로 플러그인을 설치합니다(예: `/plugin install code-formatter@your-marketplace`).

40 

41<h3 id="register-the-marketplace-for-everyone-in-a-repository">

42 저장소의 모든 사람을 위해 마켓플레이스 등록

43</h3>

44 

45마켓플레이스를 한 저장소에서 작업하는 모든 사람과 공유하려면 셸에서 `claude plugin marketplace add your-org/your-marketplace --scope project`를 한 번 실행하고 작성하는 `.claude/settings.json`을 커밋하세요. Claude Code는 [폴더를 신뢰](/docs/ko/plugins/org#require-plugins-per-repository)하는 각 팀원을 위해 마켓플레이스를 등록합니다.

46 

47<h3 id="avoid-relative-path-entries-in-a-url-hosted-marketplace">

48 URL 호스팅 마켓플레이스에서 상대 경로 항목 피하기

49</h3>

50 

51사용자가 마켓플레이스를 베어 `marketplace.json` URL로 추가할 때 Claude Code는 해당 파일만 다운로드합니다. `plugins` 배열의 항목 중 `source`가 `./plugins/formatter`와 같은 상대 경로인 경우 설치 시 [`its marketplace entry path does not stay inside the marketplace directory`](/docs/ko/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)로 실패합니다. 모든 항목에 `github` 저장소 또는 `archive` URL과 같이 자체적으로 가져올 수 있는 소스를 제공하거나, Claude Code가 전체 트리를 복제할 수 있도록 마켓플레이스를 git 저장소에서 호스팅하세요.

52 

53<h3 id="edit-plugins-in-place-on-a-shared-directory">

54 공유 디렉터리에서 플러그인을 제자리에서 편집

55</h3>

56 

57사용자가 공유 디렉터리에서 마켓플레이스를 추가할 때 Claude Code는 상대 경로 소스를 가진 플러그인을 복사하는 대신 해당 디렉터리에서 직접 읽습니다. 사용자는 다음 세션을 시작하거나 `/reload-plugins`를 실행할 때 업데이트 단계나 버전 범프 없이 편집 내용을 봅니다.

58 

59<h3 id="keep-plugin-files-out-of-git-lfs">

60 플러그인 파일을 Git LFS에서 제외

61</h3>

62 

63플러그인이 필요한 파일을 [Git LFS](https://git-lfs.com)에서 제외하세요. 사용자가 git 저장소에서 호스팅되는 마켓플레이스를 추가하거나 나열된 git 기반 플러그인을 설치할 때 Claude Code는 해당 마켓플레이스 또는 플러그인 저장소를 머신에 복제합니다. 복제는 LFS 콘텐츠를 다운로드하지 않으므로 LFS 추적 파일은 포인터 파일로 도착합니다.

64 

65<h3 id="share-files-within-a-marketplace-with-symlinks">

66 심볼릭 링크로 마켓플레이스 내 파일 공유

67</h3>

68 

69플러그인과 동일한 마켓플레이스의 다른 부분 간에 파일을 공유하려면 플러그인 디렉터리 내에 심볼릭 링크를 만드세요. Claude Code가 플러그인을 캐시에 복사할 때 대상이 해결되는 위치에 따라 각 심볼릭 링크를 처리합니다:

70 

71* **플러그인 자체 디렉터리 내**: 심볼릭 링크는 캐시에서 상대 심볼릭 링크로 유지되므로 런타임에 복사된 대상으로 계속 해결됩니다.

72* **동일한 마켓플레이스 내 다른 곳**: 심볼릭 링크가 역참조됩니다. 대상의 콘텐츠가 캐시에 복사됩니다. 이를 통해 메타 플러그인의 `skills/` 디렉터리가 마켓플레이스의 다른 플러그인으로 정의된 스킬에 연결될 수 있습니다.

73* **마켓플레이스 외부**: 심볼릭 링크는 보안상 건너뜁니다.

74 

75로컬 경로에서 설치된 플러그인 또는 `mode`가 기본값 `copy`인 [`command` 소스](/docs/ko/plugins/marketplace-reference#command-plugin-source)의 경우 Claude Code는 플러그인 자체 디렉터리 내에서 해결되는 심볼릭 링크만 유지하고 다른 모든 것을 건너뜁니다.

76 

77다음 명령은 마켓플레이스 플러그인 내부에서 형제 플러그인으로 정의된 공유 스킬에 대한 링크를 만듭니다. Windows에서는 상승된 명령 프롬프트에서 `mklink /D`를 사용하거나 개발자 모드를 활성화하세요:

78 

79```bash theme={null}

80ln -s ../../shared-plugin/skills/foo ./skills/foo

81```

82 

83<h2 id="distribute-through-organization-settings">

84 조직 설정을 통해 배포

85</h2>

86 

87Team 또는 Enterprise 플랜에서는 사용자가 직접 추가하는 위치에서 호스팅하는 대신 claude.ai의 [**조직 설정 > 플러그인 및 스킬**](https://claude.ai/admin-settings/skills?tab=inventory)을 통해 마켓플레이스를 배포할 수도 있습니다. 조직 동기화는 claude.ai의 조직의 GitHub 또는 GitLab 연결을 통해 저장소를 읽으므로 사용자의 git 자격 증명이 관련되지 않습니다.

88 

89조직 동기화는 `/plugin marketplace add`보다 저장소에 대해 더 엄격합니다:

90 

91* **마켓플레이스 저장소**: github.com 및 gitlab.com에서 비공개 또는 내부여야 합니다

92* **플러그인 소스**: 각 플러그인 소스는 `github`, `url` 또는 `git-subdir` 유형이거나 `./`로 시작하는 [상대 경로](/docs/ko/plugins/marketplace-reference#relative-path-plugin-source)여야 합니다

93* **최상위 `bin/` 디렉터리**: claude.ai는 이를 가진 플러그인을 거부하고 마켓플레이스의 나머지를 동기화합니다. 오류 메시지는 `Plugin contains a top-level bin/ directory`로 시작합니다. 실행 파일을 `scripts/`와 같은 다른 디렉터리에 유지하고 훅 또는 MCP 서버 구성에서 `${CLAUDE_PLUGIN_ROOT}/scripts/<name>`으로 참조하세요

94 

95관리자 워크플로우는 [조직을 위한 플러그인 관리](https://support.claude.com/en/articles/13837433)를 참조하세요.

96 

97<h2 id="grant-access-to-a-private-marketplace">

98 비공개 마켓플레이스에 대한 액세스 부여

99</h2>

100 

101사용자가 마켓플레이스를 추가, 설치 또는 업데이트할 때 Claude Code는 머신에서 `git`을 실행하며 대화형 프롬프트를 끄고 해당 머신이 이미 보유한 자격 증명에 의존합니다. Claude Code는 자체 git 토큰이 없으며 `marketplace.json`에는 토큰 필드가 없습니다.

102 

103보내는 추가 명령의 형식으로 복제가 SSH 또는 HTTPS를 통해 실행되는지 선택합니다:

104 

105* **GitHub `owner/repo`**: Claude Code는 `ssh -T git@github.com`을 프로브하고 프로브가 성공하면 SSH를 통해 복제합니다. 프로브가 실패하거나 SSH 복제 자체가 실패하면 HTTPS를 통해 복제합니다. GitHub SSH 키가 없는 머신의 사용자는 `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`을 설정하여 프로브를 건너뛰고 HTTPS를 통해 복제할 수 있습니다.

106* **`git@host:path.git`**: SSH.

107* **`https://example.com/repo.git`**: HTTPS.

108 

109각 프로토콜이 머신에서 필요한 것을 사용자에게 알려주세요:

110 

111* **SSH**: 키는 암호 프롬프트 없이 작동해야 합니다(예: `ssh-agent`에 로드됨). 호스트는 이미 `known_hosts`에 있어야 합니다.

112* **HTTPS**: Claude Code는 사용자의 git 자격 증명 도우미를 활성화 상태로 두지만 프롬프트를 금지합니다. 도우미가 이미 저장한 자격 증명은 작동합니다. 요청해야 하는 자격 증명은 실패합니다. GitHub에서 `gh auth login` 다음 `gh auth setup-git`을 실행하면 자격 증명이 저장됩니다.

113 

114GitHub Enterprise Server 호스트의 경우 사용자는 머신에서 해당 호스트에 대한 git 액세스가 필요합니다. [GHES의 플러그인 마켓플레이스](/docs/ko/github-enterprise-server#plugin-marketplaces-on-ghes)에서 각 Claude Code 표면이 GHES 호스팅 마켓플레이스에 도달하는 데 필요한 것을 참조하세요.

115 

116대신 claude.ai의 **조직 설정 > 플러그인 및 스킬**을 통해 배포하는 경우 사용자의 git 자격 증명이 관련되지 않습니다. 비공개일 수 있는 플러그인 소스는 [조직 설정을 통해 배포](#distribute-through-organization-settings)를 참조하세요.

117 

118<h3 id="serve-users-who-have-no-git-host-account">

119 git 호스트 계정이 없는 사용자 제공

120</h3>

121 

122git 호스트 계정이 없는 사용자는 `marketplace.json` URL로 또는 공유 디렉터리에서 마켓플레이스를 추가할 수 있지만 항목 소스에도 도달할 수 있는 플러그인만 설치할 수 있습니다. 비공개 `github` 저장소를 가리키는 항목은 Claude Code가 git 호스팅 마켓플레이스에 사용하는 것과 동일한 비대화형 `git`으로 가져오기 때문에 설치 시 여전히 실패합니다.

123 

124이러한 항목 소스는 git 계정이 필요하지 않습니다:

125 

126* **`archive`**: HTTPS를 통해 다운로드된 zip. 사용자는 `git`이나 계정이 필요하지 않으며 URL에 대한 네트워크 액세스만 필요합니다. Claude Code v2.1.224 이상이 필요합니다. 각 아카이브를 `sha256`으로 고정하여 Claude Code가 변경된 다운로드를 거부하도록 합니다. 다운로드와 함께 자격 증명을 보내려면 [아카이브 다운로드 인증](#authenticate-archive-downloads)을 참조하세요.

127* **공개 git 저장소**: Claude Code는 항목이 `https://` URL을 제공할 때 자격 증명 없이 HTTPS를 통해 공개 `url` 또는 `git-subdir` 소스를 복제합니다. `github` 소스 또는 `owner/repo`로 작성된 `git-subdir` 소스의 경우 GitHub SSH 키가 없는 사용자는 `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`을 설정합니다.

128 

129한 네트워크의 팀의 경우 공유 파일 시스템의 `directory` 마켓플레이스도 git 계정 없이 작동합니다. 사용자는 경로에 대한 읽기 액세스만 필요합니다.

130 

131<h3 id="what-background-auto-update-does-with-credentials">

132 백그라운드 자동 업데이트가 자격 증명으로 수행하는 작업

133</h3>

134 

135백그라운드 자동 업데이트는 세션 시작 후 Claude Code의 마켓플레이스 및 설치된 플러그인의 무인 새로 고침입니다. [사용자를 최신 상태로 유지](#keep-users-up-to-date)에서 다루는 대로 사용자 또는 관리자가 켤 때까지 마켓플레이스에 대해 꺼져 있습니다.

136 

137비공개 마켓플레이스에 대해 켜져 있을 때 새 커밋에 대한 백그라운드 확인은 사용자의 구성된 git 자격 증명 도우미를 사용하며 절대 프롬프트하지 않습니다. 각 종류의 원격 및 도우미는 다른 결과를 제공합니다:

138 

139* **SSH 원격**: `ssh-agent`에 로드된 키가 확인을 인증합니다.

140* **저장된 자격 증명이 있는 HTTPS 원격**: 프롬프트 없이 저장된 자격 증명을 제공할 수 있는 도우미가 확인을 인증합니다. Git Credential Manager, macOS Keychain 도우미 및 `git-credential-store`는 호스트에 대한 자격 증명을 보유한 후 이런 방식으로 작동합니다.

141* **프롬프트가 필요한 HTTPS 원격 도우미**: 도우미는 백그라운드에서 응답할 수 없습니다. 업데이트가 조용히 실패하고 기존 체크아웃이 제자리에 남아 있으므로 사용자의 플러그인은 마지막 동기화된 상태에서 계속 작동합니다.

142 

143확인 후 Claude Code는 다음 중 하나를 수행합니다:

144 

145* **체크아웃이 최신 상태입니다**: Claude Code는 그대로 둡니다.

146* **확인이 새 커밋을 찾거나 원격에 도달하거나 인증할 수 없어 실패합니다**: Claude Code는 마켓플레이스를 다시 복제하고 기존 체크아웃을 새 복제로 바꿉니다. 해당 복제가 실패하면 기존 체크아웃이 제자리에 남아 있습니다. 다시 복제는 [큰 저장소에서 시간 초과](/docs/ko/plugins/troubleshooting#git-clone-timed-out-after-120s)될 수 있습니다.

147 

148비공개 마켓플레이스를 최신 상태로 유지하려면 사용자는 다음 중 하나를 수행할 수 있습니다:

149 

150* **자격 증명 저장**: 먼저 자격 증명 도우미에 로그인하여 호스트에 대한 자격 증명을 보유하도록 합니다. GitHub의 경우 `gh auth login`을 실행한 다음 `gh auth setup-git`을 실행합니다.

151* **실패 시 체크아웃 유지**: 사용자가 `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1`을 설정하면 Claude Code는 백그라운드 확인이 원격에 도달하거나 인증할 수 없을 때 다시 복제를 시도하지 않고 기존 체크아웃을 유지합니다. 플러그인은 마지막 동기화된 상태에서 계속 작동합니다.

152 

153사용자가 환경에서 `GITHUB_TOKEN` 또는 다른 공급자 토큰을 설정하면 그것만으로는 백그라운드 확인을 인증하지 않습니다. 토큰은 `GH_TOKEN` 및 `GITHUB_TOKEN`을 읽는 `gh` CLI의 도우미와 같은 자격 증명 도우미를 통해 효과를 발휘합니다.

154 

155<h2 id="roll-out-to-a-whole-company">

156 전체 회사에 롤아웃

157</h2>

158 

159플러그인을 회사에 롤아웃하려면 마켓플레이스 소유자, 관리 설정을 제어하는 관리자 및 Claude Code를 사용하는 각 사람이 필요합니다. 관리자 없이 롤아웃을 실행할 수 있으며, 이 경우 각 사람이 마켓플레이스를 추가하고 플러그인을 직접 설치합니다.

160 

161| 담당자 | 수행할 작업 | 다루는 위치 |

162| :------------- | :------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------- |

163| 마켓플레이스 소유자인 당신 | 회사만 읽을 수 있는 저장소에 카탈로그를 유지하고, 호스트에 대한 추가 명령을 보내며, 각 사람이 머신에서 필요한 것을 말합니다 | [마켓플레이스 호스팅](#host-your-marketplace) 및 [비공개 마켓플레이스에 대한 액세스 부여](#grant-access-to-a-private-marketplace) |

164| 관리자 | 관리 설정에서 `extraKnownMarketplaces` 및 `enabledPlugins`로 마켓플레이스를 등록하고 모든 사람을 위해 플러그인을 켜며, 거기서 `autoUpdate`를 설정합니다 | [마켓플레이스 및 플러그인 요구](/docs/ko/plugins/org#require-a-marketplace-and-its-plugins) 및 [업데이트 정책 설정](/docs/ko/plugins/org#set-update-policy) |

165| 각 사람 | 머신에 이미 저장된 자격 증명이 있는 비공개 git 저장소에 대한 읽기 액세스가 필요합니다. 관리자가 없으면 추가 및 설치 명령도 실행합니다 | [비공개 마켓플레이스 추가](/docs/ko/plugins/install#add-a-private-marketplace) |

166 

167git 호스트 계정이 없는 사람들의 경우 이러한 섹션 각각은 그들에게 도달하는 한 가지 방법을 다룹니다:

168 

169* **git 계정이 필요하지 않은 항목 소스**: [git 호스트 계정이 없는 사용자 제공](#serve-users-who-have-no-git-host-account)

170* **사전 채워진 플러그인 디렉터리**: [컨테이너 및 CI 시드](/docs/ko/plugins/org#seed-containers-and-ci), 또한 git 호스트 계정이 없는 사용자를 제공합니다

171* **claude.ai 조직 설정**: [조직 설정을 통해 배포](#distribute-through-organization-settings), 사용자의 git 자격 증명이 관련되지 않습니다

172 

173<h2 id="keep-users-up-to-date">

174 사용자를 최신 상태로 유지

175</h2>

176 

177개발자의 변경 사항은 마켓플레이스에서 백그라운드 자동 업데이트가 켜져 있거나 사용자가 플러그인을 직접 업데이트할 때 사용자에게 전달됩니다. 두 경우 모두 사용자는 플러그인의 계산된 버전이 변경될 때만 플러그인의 새 복사본을 받습니다. 자세한 내용은 [새 버전 출시](#release-a-new-version)를 참조하십시오.

178 

179<h3 id="turn-on-auto-update">

180 자동 업데이트 켜기

181</h3>

182 

183백그라운드 자동 업데이트는 기본적으로 마켓플레이스에서 꺼져 있으며, `marketplace.json`에는 이를 켜는 필드가 없습니다. 사용자 또는 관리자가 켜야 합니다:

184 

185* **사용자에게 켜도록 지시**: 각 사용자는 `/plugin`에서 **마켓플레이스**로 이동하여 마켓플레이스를 선택한 후 **자동 업데이트 활성화**를 선택합니다.

186* **관리자에게 설정하도록 요청**: 관리자가 관리 설정의 마켓플레이스 `extraKnownMarketplaces` 항목에서 `"autoUpdate": true`를 설정하면 해당 설정을 받는 모든 사용자에게 켜집니다. [업데이트 정책 설정](/docs/ko/plugins/org#set-update-policy)을 참조하십시오.

187 

188자동 업데이트 없이 사용자는 세션에서 `/plugin marketplace update <name>`을 실행하거나 셸에서 `claude plugin update <plugin>@<name>`을 실행할 때 변경 사항을 받습니다.

189 

190업데이트가 사용자에게 도달할 때 사용자가 보는 내용은 [자동 업데이트가 실행될 때](/docs/ko/plugins/loading#when-auto-update-runs)를 참조하십시오.

191 

192<h3 id="release-a-new-version">

193 새 버전 출시

194</h3>

195 

196사용자에게 새 버전을 출시하려면 플러그인의 `version`을 변경합니다. 사용자는 플러그인의 계산된 버전이 보유한 버전과 다를 때만 새 복사본을 받습니다. 해당 버전은 [버전 및 업데이트](/docs/ko/plugins/loading#versions-and-updates)에 따라 먼저 `plugin.json`에서 나온 다음 마켓플레이스 항목에서 나옵니다.

197 

198사용자가 마켓플레이스에 추가한 로컬 디렉터리에서 [제자리에 로드](/docs/ko/plugins/loading#find-plugins-on-disk)하는 플러그인은 `version`으로 제어되지 않습니다. 버전 문자열이 무엇이든 상관없이 모든 세션 시작 시 현재 파일을 로드합니다.

199 

200제자리 로드 또는 `command` 소스의 로드를 제외한 모든 설치의 경우 각 릴리스에서 `version`을 증가시키거나 생략합니다:

201 

202* **각 릴리스에서 `version` 증가**: 사용자는 문자열이 변경될 때까지 캐시된 복사본에 유지됩니다. `"version": "1.0.0"`을 설정하고 변경하지 않고 새 커밋을 푸시하면 사용자는 이를 받지 못합니다.

203* **`version` 생략**: 사용자는 대신 커밋을 추적합니다. `plugin.json`과 마켓플레이스 항목 모두에서 `version`을 제외합니다.

204 

205`plugin.json`과 마켓플레이스 항목 모두에 `version`을 설정하지 마십시오. 설정하면 Claude Code는 경고 없이 `plugin.json` 값을 사용하고, `claude plugin validate`는 불일치를 `Entry declares version "<a>" but <path>/plugin.json says "<b>"`로 보고합니다.

206 

207<h3 id="hold-users-on-one-version">

208 사용자를 한 버전에 유지

209</h3>

210 

211하나의 마켓플레이스는 한 번에 각 플러그인의 한 버전만 제공하므로 각 항목이 가리키는 것을 선택하여 사용자를 버전에 유지합니다:

212 

213* **플러그인 항목의 `ref` 및 `sha`**: `ref`는 분기 또는 태그의 이름이고 `sha`는 `github`, `url` 또는 `git-subdir` 소스의 커밋 이름입니다. [플러그인 소스](/docs/ko/plugins/marketplace-reference#plugin-sources)를 참조하십시오.

214* **추가 명령의 `#<ref>`**: `your-org/your-marketplace#stable`을 추가하는 사용자는 카탈로그의 해당 분기 또는 태그를 받습니다. 동시에 두 개의 릴리스 라인의 경우 [릴리스 채널 실행](#run-release-channels)을 참조하십시오.

215* **`<plugin>--v<version>` 태그**: 종속성의 버전 범위는 이러한 태그에 대해 확인됩니다. [다른 사용자가 의존하는 플러그인 출시](/docs/ko/plugins/dependencies#tag-plugin-releases-for-version-resolution)를 참조하십시오.

216 

217[새 버전 출시](#release-a-new-version)는 변경된 항목이 사용자에게 도달할 때를 설명합니다.

218 

219<h3 id="change-the-command-of-a-command-source">

220 명령 소스의 명령 변경

221</h3>

222 

223[`command` 소스](/docs/ko/plugins/marketplace-reference#command-plugin-source)의 `command`를 변경하거나 `mode`를 전환하면 각 사용자는 Claude Code가 실행하기 전에 새 명령을 수락해야 합니다. Claude Code는 사용자가 플러그인을 설치하거나 마지막으로 업데이트할 때 수락한 정확한 명령만 실행합니다.

224 

225사용자의 마켓플레이스 복사본이 변경 사항을 선택한 후 해당 사용자는 다음을 봅니다:

226 

227* **더 이상 백그라운드 실행 없음**: 해당 사용자에 대해 명령의 [세션당 한 번 실행](/docs/ko/plugins/loading#when-a-command-source-re-runs)이 중지되므로 도구의 새 출력이 사용자에게 도달하지 않습니다.

228* **`/plugin` 오류 탭의 항목**: 항목은 새 명령과 실행할 `claude plugin update` 명령을 표시합니다.

229 

230사용자에게 해당 항목이 표시하는 `claude plugin update` 명령을 터미널에서 실행하도록 지시합니다. Claude Code는 사용자에게 새 명령을 표시하고 수락하도록 요청합니다.

231 

232<h2 id="run-release-channels">

233 릴리스 채널 실행

234</h2>

235 

236안정적이고 조기 액세스 트랙을 제공하려면 항목이 동일한 플러그인의 다른 ref를 가리키는 두 마켓플레이스를 호스팅하고 각 사용자가 원하는 것을 추가하도록 합니다. Claude Code에는 릴리스 채널 개념이 없으며 한 마켓플레이스는 한 번에 각 플러그인의 한 버전을 제공합니다.

237 

238두 `marketplace.json` 파일에 다른 `name` 값을 제공하세요. Claude Code는 마켓플레이스를 `name`으로 식별하므로 사용자는 동일한 이름의 두 마켓플레이스를 한 번에 등록할 수 없습니다.

239 

240이러한 두 카탈로그를 사용하면 `stable-tools`를 추가하는 사용자는 `stable` 분기에서 `code-formatter`를 설치하고 `latest-tools`를 추가하는 사용자는 `latest`에서 설치합니다:

241 

242```json theme={null}

243{

244 "name": "stable-tools",

245 "owner": { "name": "Your Org" },

246 "plugins": [

247 { "name": "code-formatter", "source": { "source": "github", "repo": "your-org/code-formatter", "ref": "stable" } }

248 ]

249}

250```

251 

252```json theme={null}

253{

254 "name": "latest-tools",

255 "owner": { "name": "Your Org" },

256 "plugins": [

257 { "name": "code-formatter", "source": { "source": "github", "repo": "your-org/code-formatter", "ref": "latest" } }

258 ]

259}

260```

261 

262두 ref에 다른 `plugin.json` 버전을 제공하거나 커밋 SHA가 구별하도록 `version`을 생략하세요. 업데이트는 버전을 비교하여 감지되므로 버전 변경 없이 이동하는 ref는 사용자를 캐시된 복사본에 남깁니다.

263 

264채널을 사용자가 선택하도록 하는 대신 사용자 그룹에 할당하려면 관리자가 각 그룹에 일치하는 `extraKnownMarketplaces` 항목을 제공합니다([업데이트 정책 설정](/docs/ko/plugins/org#set-update-policy)에 설명됨).

265 

266<h2 id="rename-or-remove-a-plugin">

267 플러그인 이름 변경 또는 제거

268</h2>

269 

270플러그인의 `name`은 해당 플러그인의 식별자입니다. 사용자는 `enabledPlugins` 및 `pluginConfigs` 설정 키와 `/plugin install`에서 이를 참조하므로, 이를 변경하면 기존의 모든 설치가 중단됩니다.

271 

272사용자가 `/plugin`에서 보는 레이블을 변경하되 아무것도 중단하지 않으려면, `plugin.json`에서 `displayName`을 설정하고 `name`은 변경하지 않은 상태로 유지하십시오.

273 

274<h3 id="migrate-users-with-a-renames-map">

275 이름 변경 맵을 사용하여 사용자 마이그레이션

276</h3>

277 

278`name`을 반드시 변경해야 하는 경우, `marketplace.json`에 최상위 수준의 `renames` 맵을 추가하여 Claude Code가 기존 사용자를 마이그레이션하도록 하고 [`Plugin "<name>" not found in marketplace`](/docs/ko/plugins/troubleshooting#plugin-not-found-in-marketplace)를 보고하지 않도록 합니다. `plugins`에서 항목을 제거할 때도 동일하게 수행하십시오. 자동 마이그레이션에는 Claude Code v2.1.193 이상이 필요합니다.

279 

280각 이전 이름을 현재 이름으로 매핑하거나, 플러그인이 없을 때는 `null`로 매핑합니다. 이 마켓플레이스는 `formatter`를 `code-formatter`로 이름을 변경하고 `legacy-linter`가 제거되었음을 기록합니다:

281 

282```json theme={null}

283{

284 "name": "your-marketplace",

285 "owner": { "name": "Your Org" },

286 "plugins": [

287 { "name": "code-formatter", "source": "./plugins/code-formatter" }

288 ],

289 "renames": {

290 "formatter": "code-formatter",

291 "legacy-linter": null

292 }

293}

294```

295 

296푸시한 후, 여전히 이전 이름이 활성화된 사용자는 다음 결과 중 하나를 봅니다:

297 

298* **이름이 변경된 항목**: 플러그인이 새 이름으로 로드됩니다. `claude plugin list`와 `/plugin` 아래의 플러그인 세부 정보에는 한 번 `Renamed to "code-formatter" in the "your-marketplace" marketplace`가 표시되며, Claude Code는 사용자, 프로젝트 및 로컬 설정 범위의 `enabledPlugins` 및 `pluginConfigs`에서 이전 키를 새 키로 다시 작성합니다.

299* **`null` 항목**: 이전 키가 해당 범위에서 삭제되고 사용자는 `Removed from the "your-marketplace" marketplace`를 봅니다.

300* **관리되는 설정에서 활성화됨**: 플러그인은 여전히 새 이름으로 로드되지만, Claude Code는 관리되는 설정을 다시 작성할 수 없으므로 관리자가 해당 위치의 `enabledPlugins`을 업데이트할 때까지 알림이 반복됩니다.

301 

302사용자가 git 저장소 또는 URL에서 추가한 마켓플레이스의 경우, 이름이 변경된 플러그인은 사용자가 세션에서 한 번 `/plugin install code-formatter@your-marketplace`를 실행할 때까지 [`Plugin "<name>" not cached at <path>`](/docs/ko/plugins/troubleshooting#plugin-not-cached-at)를 보고합니다.

303 

304`renames`를 추가 전용 기록으로 취급합니다. 모든 사용자가 마이그레이션한 후에도 이전 항목을 유지합니다. 다시 이름을 변경할 때는 Claude Code가 가장 오래된 이름에서 체인을 따르기 때문에 첫 번째 항목을 편집하는 대신 두 번째 항목을 추가합니다.

305 

306셸에서 맵을 편집한 후 `claude plugin validate .`를 실행합니다. 순환하거나 `null` 또는 `plugins`의 이름 이외의 다른 곳에서 끝나는 체인을 거부하며, `renames.<name>: chain does not resolve`를 표시합니다.

307 

308<h3 id="uninstall-removed-plugins-from-users’-machines">

309 사용자 머신에서 제거된 플러그인 제거

310</h3>

311 

312제거된 플러그인을 사용자 머신에서 제거하되 복사본을 남기지 않으려면, `marketplace.json`의 최상위 수준에서 `"forceRemoveDeletedPlugins": true`를 설정합니다. 이 필드가 없으면 제거된 플러그인이 설치된 상태로 유지되고 세션이 로드할 때 `Plugin "<name>" not found in marketplace`를 보고합니다. 이 필드가 있으면 Claude Code는 각 세션 시작 시 다음을 수행합니다:

313 

3141. 사용자가 마켓플레이스에서 설치한 항목을 항목 및 `renames` 맵과 비교하고, 나열되지 않거나 이름이 변경되지 않은 플러그인을 제거된 것으로 취급합니다.

3152. 사용자, 프로젝트 및 로컬 범위에서 각 제거된 플러그인을 제거합니다. 관리되는 설정만 설치한 플러그인은 제자리에 유지됩니다.

3163. `/plugin`의 **Flagged** 제목 아래에 각 제거된 플러그인을 `Removed from marketplace` 상태로 나열합니다.

317 

318<h2 id="authenticate-archive-downloads">

319 아카이브 다운로드 인증

320</h2>

321 

322[`archive`](/docs/ko/plugins/marketplace-reference#archive-plugin-source) 다운로드(예: 비공개 레지스트리에서의 다운로드)를 인증하려면 Claude Code가 함께 보내는 HTTP 헤더를 설정하세요. 다음 위치 중 하나에서 `headers`를 설정할 수 있습니다:

323 

324* **마켓플레이스의 `url` 소스**: [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces) 항목과 같이 마켓플레이스를 등록한 `url` 소스입니다.

325* **플러그인의 항목**: Claude Code v2.1.238 이상에서는 `source` 옆의 플러그인의 `marketplace.json` 항목에 설정할 수 있습니다.

326 

327어느 곳이든 값이 단기간인 경우(예: 레지스트리가 요청 시 생성하는 토큰) `headers` 대신 `headersHelper` 명령을 설정하세요. Claude Code는 명령을 실행하고 인쇄하는 JSON 객체를 해당 위치의 헤더로 보냅니다. Claude Code v2.1.238 이상이 필요합니다.

328 

329[마켓플레이스 참조](/docs/ko/plugins/marketplace-reference#plugin-entries)는 `headers` 및 `headersHelper` 항목 필드를 나열합니다.

330 

331선택한 위치는 어떤 다운로드가 헤더를 받는지와 Claude Code가 명령을 실행할 때를 결정합니다:

332 

333| 위치 | 헤더를 받는 다운로드 | Claude Code가 거기서 설정된 `headersHelper`를 실행할 때 |

334| :-------------- | :---------------------------------------------- | :--------------------------------------------------------------------------------------------------- |

335| 마켓플레이스 `url` 소스 | 마켓플레이스 URL의 원점에서의 아카이브 다운로드, 즉 동일한 스킴, 호스트 및 포트 | 마켓플레이스의 `marketplace.json` 각 가져오기 전과 해당 원점의 각 아카이브 다운로드 전. Claude Code는 한 번 실행의 출력을 최대 60초 동안 재사용합니다 |

336| 플러그인 항목 | 해당 항목의 다운로드만 | 사용자가 해당 플러그인 하나를 직접 설치 또는 업데이트하고 [명령을 수락](#how-users-accept-a-headershelper-command)할 때만 |

337 

338두 위치 모두 동일한 이름의 헤더를 설정할 때 Claude Code는 항목의 값을 보냅니다. 한 위치 내에서 명령이 인쇄하는 헤더는 동일한 이름의 `headers`에 나열된 헤더를 재정의합니다.

339 

340<h3 id="add-a-headershelper-to-a-plugin-entry">

341 플러그인 항목에 headersHelper 추가

342</h3>

343 

344이 항목은 `source` 옆에 `headersHelper`를 설정합니다. 또한 [`"strict": false`](/docs/ko/plugins/marketplace-reference#strict-mode)를 설정하며, Claude Code는 `headersHelper`를 설정하는 `marketplace.json` 항목이 필요합니다:

345 

346```json theme={null}

347{

348 "name": "my-plugin",

349 "description": "Formatting commands for internal services",

350 "strict": false,

351 "source": {

352 "source": "archive",

353 "url": "https://registry.example.com/plugins/my-plugin-2.1.0.zip"

354 },

355 "headersHelper": "/opt/bin/mint-registry-token.sh"

356}

357```

358 

359항목을 확인하려면 셸에서 `claude plugin install my-plugin@your-marketplace`를 실행하세요. Claude Code는 명령과 아카이브 URL을 표시하고 수락 후 zip을 다운로드합니다.

360 

361<h3 id="write-the-headershelper-command">

362 headersHelper 명령 작성

363</h3>

364 

365마켓플레이스의 `url` 소스 또는 플러그인 항목에 `headersHelper`를 설정하든 명령을 작성하여 이러한 요구 사항을 충족하세요:

366 

367* **명령 텍스트**: 최대 500자의 인쇄 가능한 ASCII, 4개 이상의 공백 실행 없음.

368* **출력**: stdout에 헤더 이름 및 문자열 값의 JSON 객체 하나를 인쇄한 후 10초 내에 종료 0.

369* **셸 및 작업 디렉터리**: Claude Code는 `sh`를 통해 또는 Windows에서 `cmd.exe`를 통해 명령을 실행합니다. 작업 디렉터리는 구성 디렉터리이며 `~/.claude` 또는 [`CLAUDE_CONFIG_DIR`](/docs/ko/env-vars#variables)입니다. 상대 경로가 사용자의 프로젝트가 아닌 해당 디렉터리에 대해 해결되므로 절대 경로 또는 `PATH`의 명령을 제공하세요.

370* **Claude Code가 제거하는 변수**: 명령이 `marketplace.json` 항목 또는 프로젝트의 `.claude/settings.json` 또는 `.claude/settings.local.json`에 설정되면 Claude Code는 환경에서 자격 증명처럼 보이는 이름의 모든 변수를 제거합니다([MCP `headersHelper`에 적용하는 동일한 규칙](/docs/ko/mcp#which-variables-a-helper-can-read)). `ANTHROPIC_API_KEY` 및 `MY_REGISTRY_TOKEN` 모두 제거되므로 명령이 파일 또는 자격 증명 저장소에서 자격 증명을 읽도록 합니다. 이 제거는 사용자 설정, `--settings` 파일 또는 관리 설정에 설정된 명령에는 적용되지 않습니다.

371* **Claude Code가 설정하는 변수**: `url` 소스의 명령에 대해 `CLAUDE_CODE_MARKETPLACE_URL` 및 `CLAUDE_CODE_MARKETPLACE_NAME`, 항목의 명령에 대해 `CLAUDE_CODE_PLUGIN_NAME` 및 `CLAUDE_CODE_PLUGIN_ARCHIVE_URL`. `CLAUDE_CODE_MARKETPLACE_NAME`은 사용자가 URL로 마켓플레이스를 추가한 후 첫 번째 가져오기에서 설정되지 않습니다. 해당 가져오기가 이름을 제공하기 때문입니다.

372 

373베어러 토큰을 발행하는 명령은 다음과 같은 객체를 인쇄합니다:

374 

375```json theme={null}

376{"Authorization": "Bearer eyJhbGciOiJSUzI1NiJ9"}

377```

378 

379<h3 id="when-claude-code-skips-a-headershelper-command-or-drops-its-output">

380 Claude Code가 headersHelper 명령을 건너뛰거나 출력을 삭제할 때

381</h3>

382 

383`headersHelper` 명령이 실행되지 않거나 `headers` 또는 명령의 출력에서 헤더가 삭제되는 경우는 다음 중 하나가 적용될 때입니다:

384 

385* **명령 실패**: 명령이 0이 아닌 종료, 10초 이상 실행 또는 JSON 문자열 값 객체 이외의 것을 인쇄하면 명령이 실행된 가져오기 또는 다운로드가 발생하지 않습니다.

386* **마켓플레이스 URL이 `https://`로 시작하지 않음**: 해당 `url` 소스의 명령이 실행되지 않으며 요청은 `headers` 필드에 나열된 헤더만 전달합니다.

387* **리디렉션이 원점을 떠남**: 다운로드가 아카이브 URL의 원점에서 리디렉션될 때 리디렉션된 요청은 마켓플레이스 `url` 소스 또는 플러그인 항목의 `headers` 값 또는 명령 출력을 전달하지 않습니다.

388* **항목이 라우팅 또는 ID 헤더를 설정함**: Claude Code는 항목의 `headers` 및 명령 출력에서 `Host`, `Cookie` 및 `X-Forwarded-*`와 같은 요청 라우팅 및 클라이언트 ID 이름을 삭제하고 `Authorization`과 같은 인증 이름을 유지합니다. 모든 `marketplace.json` 항목이 이런 방식으로 필터링됩니다. 설정의 인라인 플러그인 항목의 경우 [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces)를 참조하세요.

389* **`--add-dir` 디렉터리의 설정에 설정된 명령**: 명령이 무시되며 `url` 소스 및 [인라인 플러그인 항목](/docs/ko/settings-reference#extraknownmarketplaces) 모두에서 해당 파일의 `headers`만 전송됩니다.

390* **관리 설정이 명령을 차단함**: [`disableCommandPluginSources`](/docs/ko/settings-reference#disablecommandpluginsources)를 `true`로 설정하면 `headersHelper` 명령이 차단되고 [`allowManagedHooksOnly`](/docs/ko/settings-reference#allowmanagedhooksonly)도 `disableCommandPluginSources`가 명시적으로 `false`가 아닌 한 차단합니다. 두 차단 중 하나에서 Claude Code는 여전히 관리 설정이 선언하는 마켓플레이스에 대한 명령을 실행합니다.

391 

392<h3 id="how-users-accept-a-headershelper-command">

393 사용자가 headersHelper 명령을 수락하는 방법

394</h3>

395 

396사용자는 해당 플러그인 항목을 설치 또는 업데이트할 때마다 명령을 수락합니다. 그들은 `/plugin`의 플러그인 자체 보기에서 또는 `claude plugin install` 또는 `claude plugin update`로 수행합니다. Claude Code는 명령과 아카이브 URL을 표시하고 사용자가 수락한 후에만 명령을 실행합니다.

397 

398비대화형 셸에서 [`--yes`](/docs/ko/plugins/cli-reference#plugin-install)를 전달하여 명령을 수락합니다. 이전 `--json` 실행이 표시한 명령만 수락하려면 실행이 보고한 `sha256`과 함께 [`--accept-command`](/docs/ko/plugins/cli-reference#plugin-install)를 전달하세요.

399 

400Claude Code는 표시한 명령만 실행하며 표시한 아카이브 URL의 경우입니다. 그 사이에 항목의 명령 또는 아카이브 URL이 변경되면 Claude Code는 설치 또는 업데이트를 거부합니다. 쿼리 문자열만의 변경은 계산되지 않습니다.

401 

402<h3 id="installs-and-updates-that-refuse-the-command-instead-of-asking">

403 명령을 요청하는 대신 거부하는 설치 및 업데이트

404</h3>

405 

406단일 플러그인 설치 또는 업데이트 이외의 다른 작업에서 Claude Code는 항목의 명령을 실행하거나 아카이브를 다운로드하지 않습니다. 플러그인은 설치된 버전에 남아 있거나 설치되지 않은 상태로 유지되며 사용자는 다음 중 하나의 결과를 봅니다:

407 

408* **여러 플러그인을 한 번에 설치, 플러그인 제안에서 또는 다른 플러그인의 종속성으로**: Claude Code는 명령을 가진 플러그인을 거부하고 사용자를 `/plugin`의 해당 플러그인 자체 보기로 지시합니다. 대량 설치의 다른 플러그인은 여전히 설치됩니다. 거부된 플러그인에 의존하는 플러그인은 사용자가 거부된 플러그인을 직접 설치할 때까지 설치에 실패합니다.

409* **백그라운드 자동 업데이트 또는 아카이브가 다운로드되지 않은 플러그인의 세션 시작**: Claude Code는 플러그인을 `/plugin` 오류 탭에 나열하므로 사용자는 직접 설치 또는 업데이트해야 함을 알 수 있습니다.

410 

411<h3 id="when-a-marketplace-url-sources-command-runs">

412 마켓플레이스 `url` 소스의 명령이 실행될 때

413</h3>

414 

415마켓플레이스 `url` 소스의 `headersHelper`를 마켓플레이스가 게시하는 카탈로그가 아닌 설정 파일(예: [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces) 항목)에 선언합니다. Claude Code는 따라서 각 설치 또는 업데이트에서 사용자에게 수락하도록 요청하지 않습니다. 대신 선언하는 설정 파일이 Claude Code가 실행할 때를 결정합니다:

416 

417| 설정 파일 | Claude Code가 명령을 실행할 때 |

418| :------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |

419| 사용자 설정, `--settings` 파일 또는 머신의 관리 설정 파일 | 백그라운드 마켓플레이스 새로 고침을 포함하여 요청 없이 |

420| 프로젝트의 `.claude/settings.json` 또는 `.claude/settings.local.json` | 해당 폴더 자체에 대한 [작업 공간 신뢰 대화](/docs/ko/permissions#what-runs-before-you-trust-a-folder)를 사용자가 수락한 후에만. `-p` 또는 SDK 세션은 수락으로 계산되지 않으며 부모 폴더에 부여된 신뢰도 계산되지 않습니다 |

421| 서버 관리 설정 | 대화형 세션에서 사용자가 [보안 승인 대화](/docs/ko/server-managed-settings#security-approval-dialogs)에서 전달된 설정을 승인한 후에만 |

422 

423이러한 파일 중 하나의 [인라인 플러그인 항목](/docs/ko/settings-reference#extraknownmarketplaces)의 경우 Claude Code는 해당 파일의 마켓플레이스 수준 명령과 동일한 폴더 신뢰 또는 설정 승인을 요구하며 사용자는 각 설치 또는 업데이트에서 항목의 명령을 수락합니다.

424 

425<h2 id="depend-on-and-recommend-other-plugins">

426 다른 플러그인에 의존 및 권장

427</h2>

428 

429항목은 다른 플러그인에 대한 종속성을 선언할 수 있습니다.

430 

431* **버전 범위**: 종속성은 semver 범위를 전달할 수 있습니다.

432* **교차 마켓플레이스 종속성**: 다른 마켓플레이스의 종속성은 마켓플레이스가 `allowCrossMarketplaceDependenciesOn`에 해당 마켓플레이스를 나열할 때만 설치됩니다.

433 

434버전 범위, 해결되는 `<plugin>--v<version>` git 태그 규칙 및 교차 마켓플레이스 신뢰의 경우 [플러그인 종속성](/docs/ko/plugins/dependencies)을 참조하세요.

435 

436프로젝트가 일치할 때 Claude Code가 플러그인을 제안하도록 하려면 항목에 프로젝트를 식별하는 신호가 있는 `relevance` 블록을 추가하세요. 사용자는 관리자가 `pluginSuggestionMarketplaces`에 나열할 때만 마켓플레이스의 제안을 봅니다. 신호 및 활성화 단계는 [플러그인 관련성](/docs/ko/plugins/relevance)을 참조하세요.

437 

438<h2 id="work-around-what-a-marketplace-can’t-do">

439 마켓플레이스가 할 수 없는 것 해결

440</h2>

441 

442일부 소유자가 요청하는 것은 `marketplace.json`에 필드가 없습니다. 각각에 대한 가장 가까운 옵션은 다음과 같습니다:

443 

444* **사용자가 설치하는 다른 것 제한**: 마켓플레이스 허용 목록은 관리 설정 `strictKnownMarketplaces`입니다. [사용자가 설치할 수 있는 것 제한](/docs/ko/plugins/org#restrict-what-users-can-install)을 참조하세요.

445* **사용자가 요청하지 않고 플러그인 설치 또는 활성화**: 항목 필드가 플러그인을 설치하지 않습니다. 관리 `enabledPlugins`는 플릿에 대해 그렇게 합니다. [플러그인 사전 설치 및 요구](/docs/ko/plugins/org#pre-install-and-require-plugins)를 참조하세요.

446* **다른 사용자에게 다른 항목 표시**: 항목은 대상 필드를 전달하지 않으며 마켓플레이스를 추가하는 모든 사용자는 전체 카탈로그를 봅니다. 다른 대상을 위해 별도의 마켓플레이스를 호스팅하세요.

447* **플러그인을 더 이상 사용되지 않음으로 표시**: 더 이상 사용되지 않음 상태가 없습니다. 옵션은 항목을 제거하고 `renames`에서 이름을 `null`로 매핑하며 선택적으로 `forceRemoveDeletedPlugins`를 설정하는 것입니다.

448* **사용자를 위해 자동 업데이트 켜기**: 각 사용자는 `/plugin`의 **마켓플레이스** 아래에서 켜거나 관리자가 관리 설정에서 `autoUpdate`를 설정합니다. [자동 업데이트 켜기](#turn-on-auto-update)를 참조하세요.

449* **git 자격 증명 전달**: 마켓플레이스 필드가 git 토큰을 보유하지 않습니다. git 호스팅 마켓플레이스 또는 플러그인에 대한 액세스는 [비공개 마켓플레이스에 대한 액세스 부여](#grant-access-to-a-private-marketplace)에 따라 사용자의 git 설정을 따릅니다. `archive` 소스의 경우 항목은 대신 [`headers` 또는 `headersHelper`](#authenticate-archive-downloads)를 설정할 수 있습니다.

450 

451<h2 id="next-steps">

452 다음 단계

453</h2>

454 

455* [마켓플레이스 참조](/docs/ko/plugins/marketplace-reference): `marketplace.json` 필드, 소스 유형 및 유효성 검사 메시지

456* [조직을 위한 플러그인 관리](/docs/ko/plugins/org): 조직의 머신 전체에서 마켓플레이스를 요구, 제한 또는 시드

457* [플러그인 종속성](/docs/ko/plugins/dependencies): 플러그인에 의존하는 플러그인이 버전을 해결할 수 있도록 릴리스 태그

458* [플러그인 문제 해결](/docs/ko/plugins/troubleshooting): 마켓플레이스에서 추가 또는 업데이트할 때 사용자가 보는 오류

plugins/install.md +418 −0 created

Details

1> ## Documentation Index

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

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

4 

5# 플러그인 설치 및 관리

6 

7> 마켓플레이스에서 Claude Code 플러그인을 설치하고, 설치 범위를 선택하며, 나중에 업데이트하거나 제거합니다.

8 

9플러그인을 설치하면 해당 플러그인의 skills, agents, hooks 및 MCP servers가 사용자의 머신에 있는 Claude Code에 추가됩니다.

10 

11이 페이지는 터미널, 데스크톱 앱, IDE 또는 클라우드 세션에서 자신의 머신이나 계정에서 플러그인을 사용하는 모든 사용자를 위한 것입니다. 플러그인 설치, 범위 선택, 마켓플레이스 추가 및 플러그인 업데이트 유지에 대해 다룹니다.

12 

13<Note>

14 다음 경우는 다른 페이지에서 다룹니다:

15 

16 * **claude.ai 채팅 또는 Cowork를 사용하며, Claude Code는 사용하지 않음**: [claude.ai 및 Cowork의 플러그인](https://claude.com/docs/plugins/overview) 참조

17 * **Claude Code에서 오류가 발생함**: [플러그인 문제 해결](/docs/ko/plugins/troubleshooting)에서 찾기

18</Note>

19 

20[플러그인 설치](#install-a-plugin)부터 시작하세요. 누군가가 보낸 설치 명령의 `@` 이름이 `claude-plugins-official`이 아닌 경우, 먼저 [마켓플레이스 추가](#add-a-marketplace)를 하세요.

21 

22<h2 id="install-a-plugin">

23 플러그인 설치

24</h2>

25 

26예시로, 이 섹션에서는 [Anthropic의 공식 마켓플레이스](/docs/ko/plugins/anthropic-marketplaces)에서 [`commit-commands`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/commit-commands)를 설치합니다. 이 플러그인은 커밋, 푸시 및 풀 요청 열기를 위한 명령을 추가합니다.

27 

28동일한 단계로 다른 플러그인을 설치합니다. `commit-commands`와 `claude-plugins-official`이 나타나는 곳마다 해당 플러그인의 이름과 마켓플레이스 이름으로 대체하세요. 해당 플러그인이 다른 마켓플레이스에서 제공되는 경우, 먼저 [마켓플레이스를 추가](#add-a-marketplace)하세요.

29 

30Claude Code를 실행하는 위치에 해당하는 탭을 선택하세요.

31 

32<Tabs>

33 <Tab title="Terminal">

34 프로젝트에서 `claude`로 Claude Code를 시작한 후:

35 

36 <Steps>

37 <Step title="설치 명령으로 플러그인의 세부 정보 열기">

38 플러그인의 이름과 마켓플레이스와 함께 `/plugin install`을 실행합니다. 세션에서 이 명령은 즉시 설치하지 않습니다. 해당 플러그인의 세부 정보를 보여주는 `/plugin` 패널을 열어서 검토하고 먼저 범위를 선택할 수 있습니다.

39 

40 ```text theme={null}

41 /plugin install commit-commands@claude-plugins-official

42 ```

43 

44 대신 검색하려면 플러그인 이름 없이 `/plugin`을 실행합니다. 패널이 **Discover** 탭에서 열리며, 추가한 모든 마켓플레이스의 플러그인을 나열하고, 입력하여 검색한 후 플러그인에서 **Enter**를 눌러 세부 정보를 열 수 있습니다.

45 </Step>

46 

47 <Step title="플러그인이 추가하는 항목 검토">

48 세부 정보 창에는 플러그인의 설명이 표시됩니다. 다음도 표시할 수 있습니다:

49 

50 * **Will install**: 플러그인이 추가하는 명령, agents, skills, hooks 및 MCP와 LSP servers.

51 * **Last updated**: Anthropic의 공식 마켓플레이스에 있는 플러그인에 대해 표시됩니다.

52 * **Context cost**: Anthropic의 공식 마켓플레이스에 있는 플러그인의 경우, 두 가지 토큰 추정치입니다. **Every turn**은 플러그인이 보내는 각 메시지에 추가하는 것이고, **When invoked**는 Claude가 skills과 agents를 로드한 후 추가하는 것입니다. 추정치는 1단계 명령처럼 마켓플레이스 이름을 지정하여 플러그인을 열거나 **Marketplaces** 탭에서 나타납니다. **Discover** 목록에서 도달한 세부 정보 창에는 표시되지 않습니다.

53 

54 로컬 또는 사용자 정의 마켓플레이스의 플러그인은 대신 `Components will be discovered at installation`을 표시할 수 있습니다.

55 

56 플러그인은 hooks와 MCP servers를 실행할 수 있으므로 설치하기 전에 창을 읽으세요. [플러그인 보안 및 신뢰](/docs/ko/plugins/security)를 참조하세요.

57 </Step>

58 

59 <Step title="범위 선택">

60 세 가지 설치 옵션 중 하나를 선택합니다:

61 

62 * **Install for you (user scope)**: 이 머신의 모든 프로젝트에서 플러그인을 얻습니다

63 * **Install for all collaborators on this repository (project scope)**: 이 저장소에서 작업하는 모든 사람에게 활성화됩니다

64 * **Install for you, in this repo only (local scope)**: 이 저장소에서만 플러그인을 얻습니다

65 

66 [설치 범위 선택](#choose-an-install-scope)에서는 각 범위가 어느 설정 파일에 기록되는지, 동일한 플러그인이 둘 이상의 범위에서 설정된 경우 어느 것이 적용되는지 설명합니다.

67 

68 범위를 선택한 후, Claude Code는 플러그인과 선언한 모든 종속성을 설치한 후 설치 요약을 인쇄합니다.

69 </Step>

70 

71 <Step title="설치 요약 읽기">

72 요약의 마지막 문장은 플러그인이 이 세션에서 사용 가능한지 여부를 알려줍니다:

73 

74 * **Active now**: `Plugin is now active.` 다시 로드할 필요가 없습니다.

75 * **Reload needed**: `Run /reload-plugins to activate.` 패널이 닫히고 Claude Code가 해당 다시 로드를 실행합니다. 다시 로드가 [프롬프트 캐시를 무효화](/docs/ko/prompt-caching#enabling-or-disabling-a-plugin)하면 경고하고 대신 플러그인을 보류 상태로 둡니다. `/reload-plugins --force`를 실행하여 어쨌든 활성화하면 캐시되지 않은 요청 하나가 소요됩니다.

76 * **Load failed**: `The plugin couldn't be loaded`. `/plugin`의 **Errors** 탭을 열어 이유를 확인한 후 [설치 후: 플러그인이 작동하지 않음](/docs/ko/plugins/troubleshooting#plugin-installed-but-not-working)을 참조하세요.

77 </Step>

78 

79 <Step title="플러그인이 작동하는지 확인">

80 `/`를 입력하고 플러그인의 skills를 `/<plugin>:<skill>` 형식으로 플러그인 이름 아래에서 찾습니다. `commit-commands`의 경우 `/commit-commands:commit`이 나타납니다. 플러그인을 나열하는 다른 두 곳이 있습니다:

81 

82 * `/plugin`의 **Installed** 탭을 열면 플러그인과 해당 범위가 나열됩니다.

83 * 셸에서 `claude plugin list`를 실행하면 `Version`, `Scope` 및 `Status` 줄과 함께 동일한 목록을 인쇄합니다.

84 

85 `/commit-commands:commit`이 나타나지 않으면 [설치 후: 플러그인이 작동하지 않음](/docs/ko/plugins/troubleshooting#plugin-installed-but-not-working)을 참조하세요.

86 </Step>

87 </Steps>

88 

89 다른 마켓플레이스에서 설치하려면 먼저 한 가지 추가 단계가 필요합니다: [마켓플레이스 추가](#add-a-marketplace). Claude Code는 대화형 터미널 세션을 처음 시작할 때 Anthropic의 공식 마켓플레이스를 추가하므로 예시에서는 해당 단계를 건너뜁니다. [claude.com/marketplace](https://claude.com/marketplace)에서 플러그인을 찾은 경우, 해당 **Claude Code** 버튼은 [셸 형식](#install-from-your-shell)인 `claude plugin install <name>@claude-plugins-official`의 설치 명령을 복사합니다.

90 </Tab>

91 

92 <Tab title="Desktop app">

93 데스크톱 앱의 **Code** 탭에서 로컬 또는 SSH 세션:

94 

95 <Steps>

96 <Step title="플러그인 브라우저 열기">

97 프롬프트 상자 옆의 **+** 버튼을 클릭하고 **Plugins**를 선택한 후 **Add plugin**을 선택합니다. 플러그인 브라우저가 마켓플레이스의 플러그인과 함께 열립니다.

98 </Step>

99 

100 <Step title="플러그인 선택">

101 `commit-commands`를 찾아 선택합니다.

102 </Step>

103 

104 <Step title="범위 선택">

105 [범위](#choose-an-install-scope)를 선택합니다: 사용자 계정, 이 프로젝트 또는 로컬 전용.

106 </Step>

107 </Steps>

108 

109 나중에 활성화, 비활성화 또는 제거하려면 **+ > Plugins > Manage plugins**를 사용합니다. 플러그인 브라우저는 데스크톱 앱의 클라우드 세션에서 사용할 수 없습니다. [데스크톱 앱에서 플러그인 설치](/docs/ko/desktop#install-plugins)를 참조하세요.

110 </Tab>

111 

112 <Tab title="VS Code">

113 VS Code의 Claude Code 패널에서:

114 

115 <Steps>

116 <Step title="플러그인 관리 열기">

117 프롬프트 상자에 `/plugins`를 입력하여 **Manage plugins**를 엽니다.

118 </Step>

119 

120 <Step title="플러그인 설치">

121 **Plugins** 탭에서 `commit-commands`를 검색하고 **Install**을 클릭합니다. 탭에 플러그인이 나열되지 않으면 먼저 **Marketplaces** 탭에서 `anthropics/claude-plugins-official`을 추가하세요.

122 </Step>

123 

124 <Step title="범위 선택">

125 [범위](#choose-an-install-scope)를 선택합니다: **Install for you**, **Install for this project** 또는 **Install locally**.

126 </Step>

127 </Steps>

128 

129 변경 사항은 다시 시작 없이 열린 세션에 적용됩니다. [VS Code에서 플러그인 관리](/docs/ko/vs-code#manage-plugins)를 참조하세요.

130 </Tab>

131 

132 <Tab title="Cloud session">

133 [클라우드 세션](/docs/ko/cloud-environments) (예: [claude.ai/code의 브라우저](/docs/ko/claude-code-on-the-web))에는 플러그인 브라우저가 없으며 자신의 머신에 설치한 플러그인이나 저장소의 `.claude/settings.json`이 켜는 플러그인을 로드하지 않습니다. 조직이 관리 설정을 통해 배포하는 플러그인의 경우 [조직을 위한 플러그인 관리](/docs/ko/plugins/org)를 참조하세요.

134 

135 [클라우드 세션에서도 사용 가능한 설정의 어느 부분](/docs/ko/cloud-environments#what-carries-over-from-your-setup)을 참조하여 나머지 설정을 확인하세요.

136 </Tab>

137</Tabs>

138 

139<h3 id="choose-an-install-scope">

140 설치 범위 선택

141</h3>

142 

143플러그인의 설치 범위는 누가 플러그인을 얻는지, 어느 설정 파일에 활성화된 것으로 기록되는지를 결정합니다:

144 

145* **User scope**: 플러그인이 이 머신의 모든 프로젝트에서 사용자에게 활성화됩니다. 항목은 `~/.claude/settings.json`의 `enabledPlugins`에 들어갑니다.

146* **Project scope**: 플러그인이 이 저장소에서 작업하는 모든 사람에게 활성화됩니다. 항목은 커밋하는 `.claude/settings.json`에 들어갑니다.

147* **Local scope**: 플러그인이 이 저장소에서만 사용자에게 활성화됩니다. 항목은 `.claude/settings.local.json`에 들어갑니다.

148 

149일부 플러그인은 [`defaultEnabled`](/docs/ko/plugins/manifest-reference#defaultenabled) 필드를 통해 작성자가 꺼진 상태로 시작하도록 설정합니다. 이러한 플러그인은 설치되지만 셸에서 `claude plugin enable <name>`을 사용하거나 세션의 `/plugin`의 **Installed** 탭에서 켤 때까지 꺼진 상태로 유지됩니다.

150 

151동일한 플러그인이 여러 범위에서 설정된 경우, 로컬 설정이 프로젝트 설정을 재정의하고, 프로젝트 설정이 사용자 설정을 재정의합니다. [플러그인이 활성화된 위치 찾기](/docs/ko/plugins/loading#find-where-a-plugin-is-enabled)에서 전체 규칙을 참조하세요.

152 

153터미널, 데스크톱 앱의 로컬 세션 및 한 컴퓨터의 VS Code 확장은 동일한 설정 파일을 읽으므로, 이들 중 하나에서 사용자 범위로 설치한 플러그인은 다른 두 개에서도 사용 가능합니다.

154 

155<h3 id="other-places-you-run-claude-code">

156 JetBrains, 비대화형 실행 및 Agent SDK

157</h3>

158 

159Claude Code를 실행하는 일부 위치에는 자체 플러그인 브라우저가 없습니다:

160 

161* **JetBrains IDEs**: JetBrains 플러그인은 IDE의 터미널에서 Claude Code를 실행하므로 **Terminal** 탭의 단계를 사용하세요.

162* **`claude -p` 및 기타 비대화형 실행**: `/plugin`이 실행되지 않으며, Claude는 `/plugin isn't available in this environment.`로 응답합니다. 이미 설치한 플러그인은 로드됩니다. 셸에서 [`claude plugin` 명령](#install-from-your-shell)으로 설치하고 관리합니다.

163* **Agent SDK**: SDK의 플러그인 옵션을 통해 플러그인을 로드합니다. [Agent SDK에서 플러그인 로드](/docs/ko/agent-sdk/plugins)를 참조하세요.

164 

165Claude Code가 저장소의 `.claude/settings.json`에서 활성화된 플러그인이 설치되지 않았다고 보고하면 [프로젝트 설정에서 활성화되었지만 설치되지 않음](/docs/ko/plugins/loading#enabled-in-project-settings-but-not-installed)을 참조하세요.

166 

167<Tip>

168 플러그인 작성자이고 디스크에 있는 플러그인 복사본을 테스트하는 경우, 셸에서 `--plugin-dir`로 Claude Code를 시작하여 설치하는 대신 한 세션 동안 로드합니다. [한 세션 동안 플러그인을 로드하는 플래그](/docs/ko/plugins/cli-reference#flags-that-load-a-plugin-for-one-session)를 참조하세요.

169</Tip>

170 

171<h3 id="plugins-from-your-claude-ai-account">

172 claude.ai 계정의 플러그인

173</h3>

174 

175claude.ai 계정은 마켓플레이스에서 설치하는 플러그인과 함께 플러그인의 별도 소스입니다:

176 

177* **도착하는 것**: claude.ai 계정에서 켜는 모든 플러그인, 그리고 조직이 구성원을 위해 켜는 모든 플러그인. 터미널 세션에서는 해당 계정으로 로그인한 상태에서 Claude Code를 시작할 때마다 백그라운드에서 동기화되고, Cowork 세션에서는 세션이 시작될 때 다운로드됩니다.

178* **어디서 보는지**: `/plugin` 및 `claude plugin list`에서 ID `<name>@synced` 아래. 조직이 요구하지 않는 한 자신의 범위에서 하나를 끌 수 있습니다.

179* **다른 방향으로 가지 않는 것**: `/plugin` 또는 `claude plugin install`로 설치한 플러그인은 이 머신에 남아 있으며 claude.ai 계정에 추가되지 않습니다.

180 

181동기화 타이밍, 로그인 요구 사항 및 동기화 끄기에 대해서는 [claude.ai에서 동기화된 플러그인](/docs/ko/plugins/loading#synced-plugins)을 참조하세요.

182 

183<h3 id="install-from-your-shell">

184 셸에서 설치

185</h3>

186 

187셸에서 `claude plugin install`을 실행하여 Claude Code 세션을 시작하지 않고 플러그인을 설치합니다. 예를 들어 설정 스크립트에서.

188 

189* **범위**: 기본적으로 사용자 범위. `--scope project` 또는 `--scope local`을 전달하여 변경합니다.

190* **플러그인이 로드되는 시기**: 설치한 플러그인은 다음 번에 Claude Code를 시작할 때 또는 이미 열려 있는 세션에서 `/reload-plugins`을 실행할 때 로드됩니다.

191* **마켓플레이스를 먼저 추가해야 함**: 아직 아무도 대화형 Claude Code 세션을 열지 않은 머신에서는 공식 마켓플레이스가 등록되지 않으므로, 이를 설치하는 스크립트는 설치 전에 `claude plugin marketplace add anthropics/claude-plugins-official`을 실행합니다.

192 

193```bash theme={null}

194claude plugin install formatter@your-org --scope project

195```

196 

197명령이 완료되면 `Successfully installed plugin: formatter@your-org (scope: project)`를 인쇄합니다.

198 

199일부 플러그인은 마켓플레이스가 이름을 지정한 명령을 실행하여 설치되며, 이를 [`command` source](/docs/ko/plugins/marketplace-reference#command-plugin-source)라고 합니다. Claude Code는 해당 명령을 표시하고 실행하기 전에 수락하도록 요청합니다. 스크립트에는 해당 프롬프트에 답할 사람이 없으므로 거기에 `--yes`를 전달하여 수락합니다.

200 

201모든 `claude plugin install` 플래그에 대해서는 [plugin install](/docs/ko/plugins/cli-reference#plugin-install)을 참조하세요.

202 

203<h2 id="add-a-marketplace">

204 마켓플레이스 추가

205</h2>

206 

207Anthropic의 공식 마켓플레이스에 없는 플러그인을 원할 때만 이 섹션이 필요합니다. 예를 들어 동료가 게시한 플러그인이나 Anthropic의 커뮤니티 마켓플레이스의 플러그인.

208 

209마켓플레이스는 플러그인의 카탈로그이며, Claude Code는 마켓플레이스에서 설치하기 전에 마켓플레이스에 대해 알아야 합니다. 마켓플레이스를 한 번 추가합니다. 그 후, 해당 플러그인은 **Discover** 탭에 나타나고 세션에서 `/plugin install <plugin>@<marketplace>` 또는 셸에서 `claude plugin install <plugin>@<marketplace>`로 설치합니다. 여기서 `<marketplace>`는 마켓플레이스가 등록한 이름입니다. 한 단계로 둘 다 수행하려면 [마켓플레이스 추가 및 한 명령으로 설치](#add-a-marketplace-and-install-in-one-command)를 참조하세요.

210 

211Claude Code 세션에서 `/plugin marketplace add`를 실행한 후 마켓플레이스의 소스를 입력합니다: GitHub 저장소, 모든 호스트의 git 저장소, 로컬 디렉토리 또는 파일, 또는 호스팅된 `marketplace.json`.

212 

213| 소스 | 입력할 내용 | 예시 |

214| :---------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------ |

215| GitHub 저장소 | `owner/repo`. 분기 또는 태그를 고정하려면 `#ref`를 추가합니다. | `/plugin marketplace add anthropics/claude-code`, 또는 `v1.2.0` 태그를 고정하려면 `/plugin marketplace add your-org/plugins#v1.2.0` |

216| 모든 호스트의 Git 저장소 | 전체 클론 URL. 분기 또는 태그를 고정하려면 `#ref`를 추가합니다. | `/plugin marketplace add https://gitlab.example.com/your-group/your-marketplace.git#v1.0.0` |

217| 로컬 디렉토리 또는 파일 | `.claude-plugin/marketplace.json`을 보유한 디렉토리 또는 JSON 파일 자체에 대한 상대 또는 절대 경로. 상대 경로를 `./` 또는 `../`로 시작합니다. Claude Code는 bare `name/name`을 GitHub 저장소로 읽기 때문입니다. | `/plugin marketplace add ./my-marketplace` |

218| 호스팅된 `marketplace.json` | 해당 `https://` URL | `/plugin marketplace add https://example.com/marketplace.json` |

219 

220셸에서 `claude plugin marketplace add`는 동일한 소스를 사용합니다.

221 

222<Tip>

223 `/plugin market`도 `/plugin marketplace`의 더 짧은 형식으로 작동합니다.

224</Tip>

225 

226모든 URL에 `https://` 접두사를 포함하거나 SSH의 경우 `git@host:path` 형식을 사용합니다. bare `gitlab.example.com/your-group/your-marketplace.git`을 입력하면 Claude Code는 이를 GitHub `owner/repo` 약자로 읽고 거부합니다.

227 

228명령이 성공하면 `Successfully added marketplace: <name>`을 인쇄하고, 마켓플레이스의 플러그인은 다음 번에 `/plugin`을 열 때 **Discover** 탭에 나타나며, 다시 로드할 필요가 없습니다. 실패하면 [플러그인 문제 해결](/docs/ko/plugins/troubleshooting#add-a-marketplace)에서 오류 메시지를 일치시킵니다.

229 

230<h3 id="add-a-marketplace-and-install-in-one-command">

231 마켓플레이스 추가 및 한 명령으로 설치

232</h3>

233 

234아직 추가하지 않은 마켓플레이스에서 플러그인을 설치하려면 Claude Code 세션에서 `/plugin install`을 실행하고 `--marketplace`로 마켓플레이스 소스를 이름 지정합니다. Claude Code v2.1.275 이상이 필요합니다.

235 

236```text theme={null}

237/plugin install deploy-helper --marketplace your-org/plugins

238```

239 

240소스는 GitHub `owner/repo`, git URL 또는 로컬 경로와 같이 [/plugin marketplace add와 동일한 형식](#add-a-marketplace)을 사용합니다. 단, 공백을 포함할 수 없습니다. 플러그인 이름을 `@marketplace` 접미사 없이 지정합니다.

241 

242아직 해당 마켓플레이스를 추가하지 않았으면 Claude Code는 해결한 소스를 표시하고 추가하기 전에 확인하도록 요청합니다. 마켓플레이스가 추가되면 플러그인의 세부 정보가 열리고 [설치 범위](#install-a-plugin)를 선택합니다. 소스가 이미 추가한 마켓플레이스와 일치하면 Claude Code는 확인을 건너뛰고 해당 마켓플레이스에서 플러그인의 세부 정보를 엽니다.

243 

244<h3 id="add-a-private-marketplace">

245 비공개 마켓플레이스 추가

246</h3>

247 

248비공개 마켓플레이스는 GitHub 또는 다른 git 호스트의 저장소에 있으며, 복제하려면 자격 증명이 필요합니다. 공개 마켓플레이스와 동일한 `/plugin marketplace add` 또는 `claude plugin marketplace add` 명령으로 추가합니다. Claude Code는 머신에 이미 있는 git 자격 증명으로 복제하고 절대 프롬프트하지 않으므로, 각 연결 방식에는 요구 사항이 있습니다:

249 

250* **HTTPS**: git 자격 증명 도우미가 적용되므로 `gh auth login`, macOS Keychain 또는 `git-credential-store`로 설정한 액세스가 작동합니다. 대화형 프롬프트가 억제되므로 인증한 적이 없는 호스트는 암호를 요청하는 대신 실패합니다.

251* **SSH**: 호스트가 이미 `known_hosts` 파일에 있어야 하고 키가 암호 프롬프트 없이 작동해야 합니다. 호스트 지문 및 암호 프롬프트도 억제되기 때문입니다.

252* **GitHub `owner/repo` 약자**: Claude Code는 SSH 키가 `github.com`에 인증되는지 확인한 후, 인증되면 SSH를 통해 복제하고 인증되지 않으면 HTTPS를 통해 복제합니다. [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/ko/env-vars#variables)을 설정하여 해당 확인을 건너뛰고 항상 HTTPS를 통해 복제합니다.

253 

254동일한 자격 증명이 `/plugin install`, `/plugin marketplace update` 및 `claude plugin update`를 실행할 때 적용됩니다.

255 

256GitHub Enterprise Server 호스트에서는 [GHES의 플러그인 마켓플레이스](/docs/ko/github-enterprise-server#plugin-marketplaces-on-ghes)를 참조하여 각 작업에 필요한 자격 증명을 확인하세요.

257 

258조직이 관리 설정을 통해 마켓플레이스를 등록하면 직접 추가할 필요가 없습니다. [플러그인 사전 설치 및 요구](/docs/ko/plugins/org#pre-install-and-require-plugins)를 참조하세요.

259 

260<h3 id="add-from-claude-ai">

261 claude.ai에서 마켓플레이스 추가

262</h3>

263 

264[claude.ai 계정에서 플러그인이 동기화되는](/docs/ko/plugins/loading#synced-plugins) 터미널 세션에서, claude.ai는 조직의 플러그인 라이브러리 및 자신의 claude.ai 업로드와 같은 플러그인 마켓플레이스를 나열할 수도 있습니다. 소스가 아닌 이름으로 이들 중 하나를 추가합니다. claude.ai에서 마켓플레이스를 추가하려면 Claude Code v2.1.273 이상이 필요합니다.

265 

266`/plugin` 패널 또는 셸에서 claude.ai 마켓플레이스를 추가합니다:

267 

268* **세션 내**: `/plugin`을 실행하고 **Marketplaces** 탭으로 이동합니다. 여기에는 claude.ai의 마켓플레이스가 나열됩니다. 거기서 하나를 선택하여 추가합니다.

269* **셸에서**: `claude plugin marketplace list`를 실행합니다. 이는 `From claude.ai:` 섹션에 인쇄합니다. 그런 다음 `claude plugin marketplace add`를 `--claudeai` 플래그 및 목록에 표시된 이름으로 실행합니다.

270 

271예를 들어, 이 명령은 `claudeai-organization-library`라는 마켓플레이스를 추가합니다:

272 

273```bash theme={null}

274claude plugin marketplace add --claudeai claudeai-organization-library

275```

276 

277Claude Code는 마켓플레이스를 `claudeai-`로 시작하는 로컬 이름으로 등록합니다. 이는 claude.ai가 나열한 이름에서 파생됩니다. 예를 들어, "Organization library"로 나열된 마켓플레이스는 `claudeai-organization-library`가 됩니다. 예를 들어 `claude plugin install <plugin>@claudeai-organization-library`로 해당 이름으로 플러그인을 설치합니다.

278 

279로그아웃하거나 다른 claude.ai 조직에 로그인하면 마켓플레이스는 구성된 상태로 유지되지만 플러그인을 표시하지 않으며, 이미 설치한 플러그인은 계속 로드됩니다.

280 

281`From claude.ai:` 섹션은 또한 claude.ai를 통해 공유되는 git 기반 마켓플레이스를 나열할 수 있으며, 각각에 대한 소스를 인쇄합니다. `--claudeai`가 아닌 [마켓플레이스 추가](#add-a-marketplace)에서와 같이 해당 소스로 추가합니다.

282 

283<h2 id="manage-installed-plugins">

284 설치된 플러그인 관리

285</h2>

286 

287**Installed** 탭의 `/plugin`에는 플러그인이 나열되며, 각 플러그인을 활성화, 비활성화, 업데이트 또는 제거할 수 있는 작업이 있습니다. Claude Code 세션에서 `/plugin`을 실행하고 **Tab**을 눌러 도달하거나, `/plugin enable`, `/plugin disable` 또는 `/plugin uninstall`을 실행하여 패널을 열고 변경할 수 있습니다. 비활성화된 플러그인은 목록 하단의 축소된 헤더 아래에 그룹화됩니다. 목록에서 다음 키를 사용합니다:

288 

289* 입력하여 이름 또는 설명으로 필터링합니다.

290* **Space**를 눌러 선택한 플러그인을 활성화 또는 비활성화하고, **f**를 눌러 즐겨찾기에 추가합니다.

291* **Enter**를 눌러 플러그인의 세부 정보를 엽니다. 여기의 메뉴는 **Disable plugin** 또는 **Enable plugin**, **Update now**, **Uninstall**을 제공합니다. 설정을 사용하는 플러그인은 **Configure options**도 제공합니다.

292 

293탭은 **Managed** 범위의 플러그인도 표시할 수 있습니다. 조직이 [관리 설정](/docs/ko/settings#settings-files)을 통해 설치한 플러그인이며, 여기서 활성화, 비활성화 또는 제거할 수 없습니다.

294 

295조직이 claude.ai에서 요구하는 동기화된 플러그인의 경우 [claude.ai에서 동기화된 플러그인 관리](#manage-plugins-synced-from-claude-ai)를 참조하세요.

296 

297`/plugin` 패널을 닫을 때 패널에서 변경한 보류 중인 변경 사항이 있으면 Claude Code가 `/reload-plugins`을 실행하여 적용합니다. 다시 로드하면 [프롬프트 캐시가 무효화](/docs/ko/prompt-caching#enabling-or-disabling-a-plugin)되는 경우 경고하고 대신 변경 사항을 보류 상태로 둡니다. `/reload-plugins --force`를 실행하여 어쨌든 적용합니다.

298 

299<h3 id="manage-plugins-synced-from-claude-ai">

300 claude.ai에서 동기화된 플러그인 관리

301</h3>

302 

303`/plugin`의 **Installed** 탭은 [claude.ai 계정에서 동기화된 플러그인](/docs/ko/plugins/loading#synced-plugins)도 나열하며, 소스로 `synced`를 표시합니다. 동기화된 플러그인은 Claude Code v2.1.273 이상의 터미널 세션에 나타납니다.

304 

305* **활성화 또는 비활성화**: 조직이 플러그인을 필수로 표시하지 않은 경우 **Installed** 탭을 사용합니다.

306* **제거**: claude.ai에서 플러그인을 끕니다.

307 

308Claude Code가 추가, 업데이트 또는 제거된 플러그인을 대화형 세션으로 동기화하면 `Plugins changed. Run /reload-plugins to activate.`가 표시됩니다. `/reload-plugins`를 실행하여 해당 세션에서 변경 사항을 로드하거나, Claude Code를 다음에 시작할 때까지 기다립니다.

309 

310<h3 id="uninstall-a-plugin-the-project-enables">

311 프로젝트가 활성화하는 플러그인 제거

312</h3>

313 

314이 저장소의 `.claude/settings.json`이 활성화하는 플러그인에 대해 **Uninstall**을 선택할 때, **Installed** 탭에서든 `/plugin uninstall`로든 Claude Code는 비활성화할지 아니면 모두를 위해 제거할지 묻습니다:

315 

316* **내 계정에서 비활성화**: **y**를 누릅니다. Claude Code는 `.claude/settings.local.json`에서 플러그인에 대해 `false`를 작성하고 프로젝트에 설치된 상태로 둡니다.

317* **모두를 위해 제거**: **u**를 누릅니다. Claude Code는 공유 `.claude/settings.json`에서 플러그인을 제거합니다.

318 

319<h3 id="see-what-an-installed-plugin-adds-to-your-sessions">

320 설치된 플러그인이 세션에 추가하는 항목 확인

321</h3>

322 

323셸에서 설치된 플러그인에 대해 `claude plugin details <name>`을 실행합니다. `Always-on` 줄은 플러그인이 활성화된 모든 세션에 추가하는 토큰 수이며, 구성 요소별 행은 어느 스킬 또는 에이전트가 가장 많이 기여하는지 보여줍니다. 전체 출력 및 각 수치의 의미에 대해서는 [플러그인 비용 측정](/docs/ko/plugins/measure#measure-what-a-plugin-costs)을 참조하세요.

324 

325<h3 id="find-plugins-you-no-longer-use">

326 더 이상 사용하지 않는 플러그인 찾기

327</h3>

328 

329`/plugin`의 **Installed** 탭에서 직접 설치했으며 최근에 사용하지 않은 플러그인은 **Not used recently** 헤더 아래에 나타나며, 각 플러그인의 세부 정보는 **Last used** 줄을 표시합니다. 해당 헤더와 줄을 사용하여 여전히 시작 및 컨텍스트 비용을 추가하는 플러그인을 찾은 다음 비활성화하거나 제거합니다.

330 

331<h3 id="plugins-with-dependencies">

332 종속성이 있는 플러그인

333</h3>

334 

335플러그인은 종속된 다른 플러그인을 선언할 수 있습니다. 마켓플레이스에서 이러한 플러그인을 설치, 비활성화 또는 제거할 때 Claude Code는 해당 종속성에도 작용합니다:

336 

337* **설치**: Claude Code는 플러그인의 선언된 종속성도 동일한 범위에서 설치하고 활성화합니다. 성공 메시지에 나열됩니다.

338* **활성화**: Claude Code는 설치되었지만 비활성화된 플러그인의 종속성도 활성화합니다. 선언된 종속성이 설치되지 않은 경우 활성화가 실패하고 메시지는 먼저 설치하도록 알려줍니다.

339* **비활성화**: 다른 활성화된 플러그인이 여전히 명명한 플러그인이 필요한 경우 Claude Code는 거부하고 올바른 순서로 둘 다 비활성화하는 연결된 명령을 인쇄합니다.

340* **제거**: 자동 설치된 종속성은 셸에서 `claude plugin prune`을 실행할 때까지 유지됩니다. [plugin prune](/docs/ko/plugins/cli-reference#plugin-prune)을 참조하세요.

341 

342`--plugin-dir`로 플러그인을 로드한 경우 [플러그인 및 해당 종속성을 로컬로 테스트](/docs/ko/plugins/dependencies#test-a-plugin-and-its-dependency-locally)를 참조하세요.

343 

344<h3 id="manage-plugins-from-your-shell">

345 셸에서 플러그인 관리

346</h3>

347 

348Claude Code 세션을 시작하지 않고도 플러그인을 관리할 수 있습니다. 셸에서 `claude plugin install`, `enable`, `disable` 또는 `uninstall`을 일반 터미널 명령으로 실행합니다. 이들은 `/plugin` 패널이 하는 것과 동일한 설정을 변경합니다. 각각은 `--scope`를 사용하여 한 범위를 대상으로 하며, 생략할 때 기본 범위를 사용합니다:

349 

350* `enable` 및 `disable`은 설정이 이미 플러그인을 나열하는 가장 구체적인 범위에 작용합니다.

351* `install` 및 `uninstall`은 사용자 범위에 작용합니다.

352 

353예를 들어, 이 명령은 플러그인을 비활성화한 후 다시 활성화한 다음 프로젝트 범위에서 제거합니다:

354 

355```bash theme={null}

356claude plugin disable formatter@your-org

357claude plugin enable formatter@your-org

358claude plugin uninstall formatter@your-org --scope project

359```

360 

361<h2 id="keep-plugins-updated">

362 플러그인 업데이트 유지

363</h2>

364 

365플러그인은 플러그인이 제공되는 마켓플레이스에서 자동 업데이트가 켜져 있을 때 자동으로 업데이트됩니다. 세션이 시작된 후 Claude Code는 해당 마켓플레이스를 새로고침하고 설치한 플러그인의 디스크 복사본을 업데이트합니다.

366 

367실행 중인 세션은 이미 로드한 버전을 유지합니다. 업데이트 후 `Plugin updated: <name> · Run /reload-plugins to apply`가 표시되며, 다음 세션은 새 버전을 자동으로 로드합니다.

368 

369각 마켓플레이스 종류별 자동 업데이트 기본값은 다음과 같습니다:

370 

371* **기본값으로 켜짐**: `claude-plugins-official` 및 `knowledge-work-plugins`과 `first-party-plugins`을 제외한 [공식 마켓플레이스 이름](/docs/ko/plugins/security#official-marketplace-names), 그리고 [claude.ai에서 추가된 마켓플레이스](#add-from-claude-ai).

372* **기본값으로 꺼짐**: 커뮤니티 마켓플레이스, 타사 마켓플레이스, 로컬 개발 마켓플레이스를 포함한 다른 모든 마켓플레이스.

373 

374자동 업데이트가 실행되는 시기, 건너뛰는 플러그인, 자동 업데이트를 끄는 환경 변수에 대해서는 [자동 업데이트가 실행되는 시기](/docs/ko/plugins/loading#when-auto-update-runs)를 참조하세요.

375 

376<h3 id="turn-auto-update-on-or-off-for-a-marketplace">

377 마켓플레이스의 자동 업데이트 켜기 또는 끄기

378</h3>

379 

380Claude Code 세션에서 `/plugin`을 실행하고 **Marketplaces** 탭으로 이동합니다. 마켓플레이스를 선택한 후 **Enable auto-update** 또는 **Disable auto-update**를 선택합니다.

381 

382<h3 id="update-one-plugin-now">

383 지금 한 플러그인 업데이트

384</h3>

385 

386세션에서 `/plugin`의 **Installed** 탭에서 플러그인을 열고 **Update now**를 선택하거나, 셸에서 `claude plugin update <plugin>@<marketplace>`를 실행합니다.

387 

388<h3 id="auto-update-from-a-private-marketplace">

389 비공개 마켓플레이스에서 자동 업데이트

390</h3>

391 

392비공개 마켓플레이스의 경우, 백그라운드 자동 업데이트가 SSH 및 HTTPS를 통해 인증하는 방법에 대해 [백그라운드 자동 업데이트가 자격 증명으로 수행하는 작업](/docs/ko/plugins/host-marketplace#what-background-auto-update-does-with-credentials)을 참조하고, 실패할 때 표시되는 메시지에 대해 [플러그인 문제 해결](/docs/ko/plugins/troubleshooting#add-a-marketplace)을 참조하세요.

393 

394<h2 id="manage-marketplaces">

395 마켓플레이스 관리

396</h2>

397 

398`/plugin`의 **Marketplaces** 탭은 등록한 모든 마켓플레이스를 해당 소스와 함께 나열합니다. 하나를 선택하여 플러그인을 검색하고, 목록을 업데이트하고, 자동 업데이트를 켜거나 끄거나, 제거합니다.

399 

400또한 셸 또는 세션 내에서 명령으로 마켓플레이스를 나열, 업데이트 및 제거할 수 있습니다:

401 

402| 작업 | 셸에서 | 세션 내 |

403| :------------- | :---------------------------------------- | :---------------------------------- |

404| 마켓플레이스 나열 | `claude plugin marketplace list` | `/plugin marketplace list` |

405| 마켓플레이스 목록 업데이트 | `claude plugin marketplace update <name>` | `/plugin marketplace update <name>` |

406| 마켓플레이스 제거 | `claude plugin marketplace remove <name>` | `/plugin marketplace remove <name>` |

407 

408마켓플레이스를 제거할 때, Claude Code는 설치한 모든 플러그인을 제거하고 설정 파일에서 `enabledPlugins` 항목을 제거합니다. **Marketplaces** 탭은 확인하도록 요청하기 전에 해당 플러그인의 이름을 지정합니다.

409 

410<h2 id="next-steps">

411 다음 단계

412</h2>

413 

414* [Anthropic의 마켓플레이스](/docs/ko/plugins/anthropic-marketplaces): 공식, 커뮤니티 및 데모 마켓플레이스가 어떻게 다르고 각각을 어디서 검색할 수 있는지

415* [플러그인 로딩 참조](/docs/ko/plugins/loading): 플러그인이 로드되었거나, 로드되지 않았거나, 업데이트 후 변경되지 않은 이유

416* [플러그인 보안 및 신뢰](/docs/ko/plugins/security): 알 수 없는 마켓플레이스에서 플러그인을 설치하기 전에 검토할 사항

417* [플러그인 문제 해결](/docs/ko/plugins/troubleshooting): 설치 및 마켓플레이스 오류 메시지 및 해결 방법

418* [플러그인 만들기](/docs/ko/plugins/create): 자신의 플러그인 빌드

plugins/loading.md +424 −0 created

Details

1> ## Documentation Index

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

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

4 

5# 플러그인 로딩 참조

6 

7> Claude Code가 각 플러그인을 어디에서 로드하는지, 어떤 설정 파일이 로드 여부를 결정하는지, 그리고 업데이트가 아무것도 변경하지 않은 이유를 추적합니다.

8 

9플러그인이 로드되지 않았거나, 예상과 다른 복사본이 로드되었거나, 업데이트를 적용하지 않았을 때 어떤 소스, 설정 범위 또는 디스크의 파일이 그 결정을 내렸는지 확인하려면 이 페이지를 사용합니다. 세션이 시작될 때와 `/reload-plugins`를 실행할 때마다 Claude Code가 적용하는 규칙을 제공합니다. Claude에게 이 페이지를 읽고 설정을 진단하도록 요청할 수도 있습니다.

10 

11<Note>

12 다음 경우는 다른 페이지에서 다룹니다:

13 

14 * **설치, 활성화, 비활성화 및 업데이트 단계**: [플러그인 설치 및 관리](/docs/ko/plugins/install) 참조

15 * **특정 오류 메시지가 있는 경우**: [플러그인 문제 해결](/docs/ko/plugins/troubleshooting) 참조

16</Note>

17 

18설치된 플러그인이 통과하는 세 단계에 대해 [플러그인이 도달한 단계 확인](#check-which-stage-a-plugin-reached)부터 시작하거나, 보고 있는 상황과 일치하는 섹션으로 이동합니다:

19 

20* 끈 플러그인이 여전히 로드됨: [플러그인이 활성화된 위치 찾기](#find-where-a-plugin-is-enabled)

21* 업데이트가 아무것도 변경하지 않음: [버전 및 업데이트](#versions-and-updates)

22* `~/.claude/plugins/` 아래의 파일을 보고 있음: [디스크에서 플러그인 찾기](#find-plugins-on-disk)

23* `--plugin-dir` 플러그인이 로드되지 않았거나 같은 이름의 플러그인이 대신 로드됨: [이름 충돌](#name-conflicts)

24 

25<h2 id="check-which-stage-a-plugin-reached">

26 플러그인이 도달한 단계 확인

27</h2>

28 

29`enabledPlugins` 항목은 플러그인을 사용할 수 있는 단계를 거칩니다: 설정이 선언하고, Claude Code가 디스크에 가져오고, 실행 중인 세션이 로드합니다. 플러그인이 설정 파일이 제안하는 대로 작동하지 않을 때 어떤 단계에 도달했는지 확인합니다:

30 

31* **선언됨, 설정에서**: `enabledPlugins`는 어떤 플러그인이 켜져 있어야 하는지 말하고, `extraKnownMarketplaces`는 어떤 마켓플레이스가 존재해야 하는지 말합니다. `claude plugin marketplace add`를 실행하면 Claude Code는 마켓플레이스를 사용자 설정의 `extraKnownMarketplaces`에 쓰고 디스크에도 씁니다

32* **가져옴, `~/.claude/plugins/` 아래 디스크에**: Claude Code가 가져온 것의 기록과 가져온 파일 자체:

33 * `known_marketplaces.json`은 Claude Code가 가져온 각 마켓플레이스를 `source`, `installLocation`, `lastUpdated`, `autoUpdate`와 함께 기록합니다. 사용자당 하나의 `known_marketplaces.json`이 있으므로 한 프로젝트에서 추가한 마켓플레이스는 모든 프로젝트에서 사용 가능합니다

34 * `installed_plugins.json`은 각 설치를 `scope`, `installPath`, `version`과 함께 기록합니다

35 * `cache/`는 플러그인 파일을 보유합니다

36* **로드됨, 실행 중인 세션에서**: Claude Code가 시작 시 또는 마지막 `/reload-plugins`에서 로드한 플러그인 세트입니다. 설정 또는 디스크의 변경 사항은 `/reload-plugins`를 실행하거나 새 세션을 시작할 때까지 이 계층에 도달하지 않습니다. 이것이 `claude plugin update`가 `Restart to apply changes.`로 끝나고 백그라운드 업데이트가 `Run /reload-plugins to apply`로 프롬프트하는 이유입니다

37 

38<h3 id="plugins-and-marketplaces-that-aren’t-on-disk-at-session-start">

39 세션 시작 시 디스크에 없는 플러그인 및 마켓플레이스

40</h3>

41 

42플러그인은 세션 시작 시 `installed_plugins.json`과 캐시에서 네트워크를 사용하지 않고 로드됩니다. 세션이 시작된 후 Claude Code는 백그라운드에서 선언된 마켓플레이스를 확인합니다:

43 

44* **설정이 선언하지만 `known_marketplaces.json`이 부족한 마켓플레이스**: Claude Code는 이를 복제한 다음 플러그인을 다시 로드하고 아직 캐시되지 않은 활성화된 플러그인을 다운로드합니다

45* **선언된 마켓플레이스의 소스가 설정에서 변경됨**: Claude Code는 새 소스에서 다시 가져오고 `Plugins changed. Run /reload-plugins to activate.`를 표시합니다

46 

47활성화된 플러그인이 어느 경로도 가져오지 않았고 사용 가능한 캐시 디렉토리가 없으면 `/plugin` **Errors** 탭에 `Plugin "<name>" not cached at <path>`가 표시되고, `claude plugin list`는 같은 줄에 `— run /plugin to refresh`를 추가합니다. 수정 방법은 [`Plugin "<name>" not cached at <path>`](/docs/ko/plugins/troubleshooting#plugin-not-cached-at)를 참조합니다.

48 

49<h2 id="find-where-a-plugin-came-from">

50 플러그인이 어디에서 왔는지 찾기

51</h2>

52 

53모든 플러그인에는 `<name>@<origin>` 형식의 id가 있으며, 이는 설정 파일과 `claude plugin list --json`에서 볼 수 있습니다. `@` 뒤의 부분은 Claude Code가 플러그인을 찾은 위치를 알려줍니다:

54 

55| ID 끝 | 플러그인이 어떻게 도착했는지 | 켜거나 끄는 방법 |

56| :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------- |

57| `@<marketplace>` | 추가한 마켓플레이스에서 설치함 | 설정 파일의 `enabledPlugins` 아래에서 `"<name>@<marketplace>": true` 또는 `false` |

58| `@inline` | `--plugin-dir` 또는 `--plugin-url`로 Claude Code를 시작했거나, [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ko/env-vars#variables)를 설정했거나, Agent SDK 앱이 `plugins` 옵션을 전달했습니다. 해당 세션에만 로드됩니다 | 매니페스트가 `defaultEnabled: false`를 설정하거나 설정 파일이 `"<name>@inline": false`를 설정하지 않는 한 세션에 대해 켜짐 |

59| `@skills-dir` | `.claude-plugin/plugin.json`이 있는 플러그인 디렉토리를 `~/.claude/skills/` 또는 프로젝트의 `.claude/skills/` 아래에 저장했습니다 | 매니페스트의 `defaultEnabled`, 설정 파일이 `"<name>@skills-dir"`을 `true` 또는 `false`로 설정하지 않는 한 |

60| `@synced` | 사용자 또는 조직이 claude.ai 계정에 대해 켜고 Claude Code가 [다운로드했습니다](#synced-plugins) | 매니페스트가 `defaultEnabled: false`를 설정하거나 설정 파일이 `"<name>@synced": false`를 설정하지 않는 한 켜짐. 조직이 필수로 표시한 플러그인은 관계없이 로드됩니다 |

61 

62마켓플레이스 플러그인의 경우 `<name>`은 `marketplace.json`의 항목 이름입니다. `@inline` 및 `@skills-dir`의 경우 플러그인의 매니페스트에서 `name`입니다.

63 

64이 표의 원본 이름은 예약되어 있으므로 마켓플레이스는 `inline`, `skills-dir` 또는 `synced`로 명명될 수 없습니다.

65 

66<h3 id="entry-name-and-manifest-name">

67 항목 이름 및 매니페스트 이름

68</h3>

69 

70마켓플레이스 플러그인에는 두 개의 이름이 있으며 다를 수 있습니다:

71 

72* **`marketplace.json`의 항목 이름**: 설치 및 활성화 키입니다. `enabledPlugins`에 작성하는 것, 캐시 디렉토리의 이름이 지정되는 것, `claude plugin list`가 표시하는 것입니다

73* **매니페스트의 `name`**: 플러그인의 구성 요소가 네임스페이스되는 것, [이름 충돌](#name-conflicts)이 비교하는 것입니다

74 

75<h3 id="plugins-shared-through-a-repository">

76 저장소를 통해 공유된 플러그인

77</h3>

78 

79저장소를 통해 플러그인을 공유하려면 `.claude/settings.json`의 `enabledPlugins` 아래에 나열하거나 `.claude/skills/` 아래에 배치합니다. Claude Code는 프로젝트의 `.claude/plugins/` 디렉토리를 스캔하지 않습니다.

80 

81클라우드 세션은 저장소가 [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces) 아래에 나열하는 마켓플레이스를 추가하지 않습니다. 이는 작업 영역 신뢰 대화 상자가 필요하기 때문이며, 클라우드 세션은 절대 표시하지 않습니다.

82 

83프로젝트 범위 기술 디렉토리 플러그인은 세션의 [기본 작업 디렉토리](/docs/ko/permissions#working-directories)의 `.claude/skills/`에서만 로드되며, 해당 폴더에 대한 [작업 영역 신뢰 대화 상자](/docs/ko/permissions#what-runs-before-you-trust-a-folder)를 수락한 후에만 로드됩니다. 일반 기술 및 명령이 하는 방식으로 [저장소 루트까지 부모 디렉토리를 검색](/docs/ko/skills#discovery-from-parent-and-nested-directories)하지 않습니다. 하위 디렉토리에서 시작하면 저장소 루트의 플러그인이 로드되지 않습니다. 대신 저장소 루트에서 시작하거나, [v2.1.246 이상에서 `/cd`로 세션을 이동](/docs/ko/permissions#move-the-session-to-another-directory)합니다.

84 

85프로젝트 범위 플러그인은 저장소에 체크인되고 이를 복제하는 모든 협력자에게 도달합니다. 해당 콘텐츠는 사용자가 아닌 저장소에서 오기 때문에 `.claude/settings.json`의 프로젝트 허용 규칙에 적용되는 것과 동일한 신뢰 확인 후에만 로드됩니다. 부모 폴더를 신뢰하거나 `-p`로 실행하는 것으로는 충분하지 않습니다. 코드를 실행하는 구성 요소는 추가로 제한됩니다:

86 

87* 선언하는 MCP 서버는 프로젝트 `.mcp.json`과 동일한 [서버별 승인](/docs/ko/mcp)을 거칩니다

88* [MCP 번들](/docs/ko/plugins/manifest-reference#mcpservers)로 선언하는 MCP 서버, `.mcpb` 또는 `.dxt` 파일, 또는 플러그인 디렉토리 외부의 파일에서 선언하는 MCP 서버는 건너뜁니다. 인라인으로 선언하거나 플러그인 디렉토리 내의 `.mcp.json`에서 선언합니다

89* [백그라운드 모니터](/docs/ko/plugins/components#monitors)는 로드되지 않습니다

90 

91개인 범위 플러그인에는 이러한 제한이 없습니다.

92 

93`--plugin-dir` 및 기술 디렉토리 플러그인을 작성하는 방법은 [플러그인 생성](/docs/ko/plugins/create)을 참조합니다.

94 

95<h3 id="synced-plugins">

96 claude.ai에서 동기화된 플러그인

97</h3>

98 

99claude.ai 계정에 대해 켜는 플러그인도 마켓플레이스에서 설치한 플러그인과 함께 Claude Code에 로드됩니다. 여기에는 조직이 구성원에 대해 켜는 플러그인이 포함됩니다. 이러한 각 플러그인은 마켓플레이스 없이 `<name>@synced`로 로드되며 [설치 기록](#check-which-stage-a-plugin-reached)이 없습니다.

100 

101터미널 세션에서 동기화된 플러그인의 기술, 에이전트, 훅, MCP 서버 및 LSP 서버는 모두 마켓플레이스 플러그인을 설치한 것과 동일한 신뢰로 로드됩니다.

102 

103Cowork가 로드하는 구성 요소는 claude.com의 [claude.ai 및 Cowork의 플러그인](https://claude.com/docs/plugins/overview)을 참조합니다.

104 

105동기화된 플러그인은 Cowork 세션 및 claude.ai 계정으로 로그인하는 터미널 세션에 로드됩니다:

106 

107* **[Cowork](https://claude.com/product/cowork)**: Claude Code는 세션이 시작될 때 세션의 자체 환경으로 다운로드합니다

108* **터미널 세션**: Claude Code를 시작할 때마다 백그라운드에서 한 번 동기화되어 새로운 플러그인과 업데이트된 플러그인을 다운로드하고 사용자 또는 조직이 끈 플러그인을 제거합니다. 터미널 세션에서 동기화하려면 Claude Code v2.1.273 이상이 필요합니다

109 

110<h4 id="sync-timing-in-terminal-sessions">

111 터미널 세션의 동기화 타이밍

112</h4>

113 

114터미널 동기화가 백그라운드에서 실행되기 때문에 세션이 시작된 후에 완료될 수 있습니다. 대화형 세션에서 동기화된 플러그인을 추가, 업데이트 또는 제거할 때 `Plugins changed. Run /reload-plugins to activate.`가 표시됩니다. `/reload-plugins`를 실행하여 해당 세션에서 변경 사항을 로드하거나 다음 번 Claude Code를 시작할 때까지 기다립니다.

115 

116claude.ai에서 세션이 실행 중인 동안 플러그인을 활성화하면 다음 번 Claude Code를 시작할 때 플러그인이 다운로드됩니다.

117 

118<h4 id="sign-in-requirements-for-terminal-sync">

119 터미널 동기화를 위한 로그인 요구 사항

120</h4>

121 

122터미널에서 플러그인은 claude.ai 계정으로 로그인하는 세션에서만 동기화됩니다.

123 

124이전 버전의 Claude Code에 로그인한 경우 해당 로그인은 Claude Code가 백그라운드에서 갱신할 때까지 플러그인을 포함하지 않습니다. 더 빨리 액세스하려면 `/login`을 다시 실행합니다. 플러그인 동기화는 다음 번 Claude Code를 시작할 때 시작됩니다.

125 

126<h4 id="control-which-synced-plugins-load">

127 로드되는 동기화된 플러그인 제어

128</h4>

129 

130조직이 필수로 요구하는 플러그인을 제외하고 동기화된 플러그인을 한 번에 하나씩 끄거나 머신의 모든 동기화된 플러그인을 끌 수 있습니다:

131 

132* **한 플러그인**: 셸에서 `claude plugin disable <name>@synced`를 실행하고 세션의 `/plugin` **Installed** 탭은 모두 사용자 수준 [`enabledPlugins`](/docs/ko/settings-reference#enabledplugins)에 `"<name>@synced": false`를 저장합니다. 모든 환경의 프로젝트에서 플러그인을 유지하려면 프로젝트의 커밋된 `.claude/settings.json`에서 동일한 키를 설정합니다

133* **머신의 모든 동기화된 플러그인**: 사용자 설정에서 [`syncClaudeAiPlugins`](/docs/ko/settings-reference#syncclaudeaiplugins)를 `false`로 설정하거나 조직이 [관리 설정](/docs/ko/managed-settings)에서 설정합니다. Claude Code는 다운로드를 중지하고 다음 번 시작할 때 이미 동기화한 플러그인을 `~/.claude/plugins/.trash/`로 이동하고 더 이상 로드하지 않습니다. 조직이 claude.ai에서 기술을 끄면 플러그인도 동기화를 중지합니다

134* **조직이 필수로 요구하는 플러그인**: 조직이 claude.ai에서 필수로 표시한 플러그인은 이전에 비활성화했더라도 로드됩니다. `claude plugin disable`은 `Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.`로 거부하고, `claude plugin list`는 이를 `required by your org`로 표시합니다

135 

136claude.ai에서 플러그인을 제거하는 방법은 [설치된 플러그인 관리](/docs/ko/plugins/install#manage-installed-plugins)를 참조합니다.

137 

138<h2 id="find-where-a-plugin-is-enabled">

139 플러그인이 활성화된 위치 찾기

140</h2>

141 

1426개의 소스 중 어느 곳에서나 `enabledPlugins` 항목을 설정할 수 있습니다. 표는 가장 낮은 우선 순위에서 가장 높은 우선 순위로 나열하고 각각이 누구에게 적용되는지 나열합니다. 설정 파일 자체는 [설정 파일 및 영향을 미치는 사람](/docs/ko/settings#where-settings-live)을 참조합니다.

143 

144| 소스 | 설정 위치 | 도달 범위 |

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

146| `--add-dir` | `--add-dir`로 전달하는 디렉토리의 `.claude/settings.json` 또는 `.claude/settings.local.json` | 이 세션만. `true` 값만 효과가 있으며 다른 모든 소스가 이를 재정의합니다 |

147| `user` | `~/.claude/settings.json` | 모든 프로젝트에서 사용자 |

148| `project` | `.claude/settings.json` | 저장소를 복제하는 모든 사람 |

149| `local` | `.claude/settings.local.json` | 이 저장소에서만 사용자 |

150| `flag` | 시작 시 전달하는 `--settings` 값 | 이 세션만 |

151| `managed` | [관리 설정](/docs/ko/managed-settings) | 정책이 적용되는 모든 사용자. `true`는 강제 활성화하고 `false`는 차단하며 다른 소스는 이를 재정의하지 않습니다 |

152 

153이러한 소스는 키별로 병합됩니다. 각 플러그인 id에 대해 적용되는 값은 id를 언급하는 가장 높은 우선 순위 소스의 값입니다. id를 언급하지 않는 소스는 낮은 우선 순위 소스의 값을 유효하게 유지합니다.

154 

155<h3 id="disabled-in-user-settings-but-still-loads">

156 사용자 설정에서 비활성화되었지만 여전히 로드됨

157</h3>

158 

159`~/.claude/settings.json`에서 플러그인을 `false`로 설정했는데 여전히 로드되면 더 높은 우선 순위 소스의 `true`가 이를 재정의하고 있습니다. `claude plugin list` 및 `/plugin`의 플러그인 행은 `Disabled in ~/.claude/settings.json but still loads — project settings enable it, which overrides your user setting`을 표시합니다. 메시지는 사용자를 재정의한 소스의 이름을 지정합니다: `project`, `project, gitignored` (`.claude/settings.local.json`의 경우), `cli flag`, 또는 `managed`.

160 

161프로젝트 활성화 플러그인을 머신에서 거부하려면 프로젝트 파일보다 우선 순위가 높은 `.claude/settings.local.json`에서 id를 `false`로 설정합니다.

162 

163<h3 id="enabled-in-project-settings-but-not-installed">

164 프로젝트 설정에서 활성화되었지만 설치되지 않음

165</h3>

166 

167플러그인의 유일한 `true`가 프로젝트의 `.claude/settings.json`에 있을 때 Claude Code는 [상대 경로 소스](/docs/ko/plugins/marketplace-reference#plugin-sources)가 있거나 [시드 디렉토리](/docs/ko/plugins/org#seed-containers-and-ci)가 이미 보유하지 않는 한 설치되지 않은 머신에 플러그인을 가져오지 않습니다. 대신 `/plugin` **Errors** 탭은 `Plugin "<name>" is enabled in project settings but isn't installed here`를 표시합니다.

168 

169상대 경로 플러그인은 마켓플레이스 자체에서 로드되기 때문에 설치 기록이 필요하지 않습니다.

170 

171Claude Code는 다음 소스 중 하나가 이를 `true`로 설정할 때만 외부 소스가 있는 플러그인을 가져옵니다:

172 

173* 사용자 설정

174* git이 추적하지 않는 `.claude/settings.local.json`

175* `--settings` 플래그

176* 관리 설정

177 

178<h2 id="find-plugins-on-disk">

179 디스크에서 플러그인 찾기

180</h2>

181 

182Claude Code는 플러그인 파일과 상태 기록을 하나의 플러그인 루트 아래에 유지하며, 이는 [`CLAUDE_CODE_PLUGIN_CACHE_DIR`](/docs/ko/env-vars)을 설정하지 않는 한 `~/.claude/plugins`입니다. 표의 모든 경로는 해당 루트에 상대적입니다.

183 

184| 경로 | 보유 내용 |

185| :--------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

186| `cache/<marketplace>/<plugin>/<version>/` | 마켓플레이스 플러그인의 설치된 각 버전당 하나의 디렉토리. `<plugin>`은 마켓플레이스 항목 이름이고 `<version>`은 [해결된 버전](#versions-and-updates)입니다. `${CLAUDE_PLUGIN_ROOT}`는 이 디렉토리를 가리킵니다 |

187| `data/<plugin-id>/` | 플러그인의 영구 디렉토리, `${CLAUDE_PLUGIN_DATA}`로 노출됩니다. `<plugin-id>`가 형성되는 방식은 [경로 변수 및 영구 데이터](/docs/ko/plugins/components#path-variables-and-persistent-data)를 참조합니다. Claude Code는 플러그인 구성 요소가 처음 사용할 때 생성하고 업데이트 전체에서 유지합니다. Claude Code는 마지막 범위에서 플러그인을 제거할 때 삭제하며, `--keep-data`를 전달하지 않는 한 |

188| `marketplaces/<name>/` | GitHub, 다른 Git 호스트 또는 URL에서 추가한 마켓플레이스의 복제 또는 다운로드. 로컬 `file` 또는 `directory` 소스에서 추가한 마켓플레이스는 여기에 복사본이 없으며, `known_marketplaces.json`의 `installLocation`은 제공한 경로입니다 |

189| `synced/` | Claude Code가 [claude.ai 계정에서 동기화한](#synced-plugins) 플러그인 |

190| `.trash/` | claude.ai 동기화가 제거한 플러그인, 예를 들어 claude.ai에서 하나를 끈 후 또는 동기화를 중지한 후 |

191| `installed_plugins.json` 및 `known_marketplaces.json` | Claude Code가 설치한 것과 가져온 마켓플레이스의 기록, [플러그인이 도달한 단계 확인](#check-which-stage-a-plugin-reached) 아래에 설명됨. [claude.ai에서 호스팅되는 마켓플레이스](/docs/ko/plugins/install#add-from-claude-ai)는 대신 `known_marketplaces_claudeai.json`에 기록됩니다 |

192| `flagged-plugins.json` | Claude Code가 마켓플레이스가 목록에서 제거했기 때문에 제거한 플러그인. `/plugin`의 **Flagged** 섹션에 나타나며, [마켓플레이스 호스팅](/docs/ko/plugins/host-marketplace)을 참조합니다 |

193 

194`${CLAUDE_PLUGIN_ROOT}`는 버전 디렉토리를 가리키기 때문에 플러그인의 루트 경로는 모든 버전과 함께 변경됩니다. 플러그인의 내구성 있는 파일을 `${CLAUDE_PLUGIN_DATA}` 대신에 유지합니다.

195 

196<h3 id="in-place-and-copied-plugins">

197 제자리 및 복사된 플러그인

198</h3>

199 

200Claude Code는 일부 플러그인을 보관 위치에서 제자리로 로드하고 나머지는 원본에 따라 캐시에 복사합니다:

201 

202* **`--plugin-dir` 및 기술 디렉토리 플러그인**: 디렉토리는 제자리로 로드되며 절대 복사되지 않습니다. `--plugin-url` 아카이브 또는 `--plugin-dir` `.zip`은 먼저 세션 임시 디렉토리로 추출됩니다

203* **로컬 디렉토리에서 추가한 마켓플레이스의 상대 경로 플러그인**: 플러그인은 마켓플레이스 폴더 내의 경로에서 제자리로 로드됩니다. 소스 디렉토리에 대한 편집은 다음 세션 시작 또는 `/reload-plugins`에서 적용되며 버전을 증가시킬 필요가 없습니다. 플러그인의 훅 프로세스 및 MCP 및 LSP 서버는 소스 디렉토리를 가리키는 `CLAUDE_PLUGIN_ROOT`를 수신합니다. Node.js 패키지 종속성은 [종속성 설치가 실행되는 경우](#when-the-dependency-install-runs)를 참조합니다

204* **[링크 모드](/docs/ko/plugins/marketplace-reference#command-plugin-source)의 `command` 소스 플러그인**: 명령이 인쇄한 디렉토리는 캐시 항목의 링크를 통해 제자리로 로드됩니다

205* **다른 모든 마켓플레이스 플러그인**: Claude Code는 플러그인을 설치 시 `cache/<marketplace>/<plugin>/<version>/`에 복사하고 해당 복사본을 로드합니다. 플러그인 디렉토리 외부의 파일은 복사되지 않으므로 복사된 플러그인 내의 스크립트가 플러그인 루트 위의 경로를 읽을 때 (예: `../shared`), 찾지 못합니다

206 

207<h3 id="paths-that-escape-the-plugin-directory">

208 플러그인 디렉토리를 벗어나는 경로

209</h3>

210 

211플러그인이 제자리에서 로드되든 캐시된 복사본에서 로드되든 Claude Code는 자신의 디렉토리 외부에 구성 요소를 선언하도록 허용하지 않습니다. 플러그인 루트 외부로 해결되는 구성 요소 경로를 거부합니다. 경로가 `plugin.json`에 선언되든 마켓플레이스 항목에 선언되든:

212 

213* **작성된 대로 플러그인 외부를 가리키는 경로**, 예: `../shared-utils`

214* **플러그인 외부로 이어지는 심볼릭 링크**, [하나의 마켓플레이스 내 플러그인 간 링크](/docs/ko/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks) 제외

215* **macOS 및 Linux에서 경로에 백슬래시가 포함된 경로**, 경로가 플러그인 내에 머물더라도. 백슬래시 경로로 선언된 구성 요소는 Windows에서만 로드되므로 `./commands/deploy.md`와 같이 정방향 슬래시로 구성 요소 경로를 작성합니다

216 

217거부된 경로는 [`path escapes plugin directory`](/docs/ko/errors#path-escapes-plugin-directory) 오류로 나타나고 플러그인은 해당 구성 요소 없이 로드됩니다.

218 

219<h3 id="cleanup-of-previous-versions">

220 이전 버전의 정리

221</h3>

222 

223플러그인을 업데이트하거나 제거할 때 Claude Code는 이전 버전 디렉토리에 `.orphaned_at` 마커를 씁니다. 14일 후 백그라운드 정리에서 해당 디렉토리를 제거하므로 이미 이전 버전을 로드한 세션은 계속 실행됩니다.

224 

225`installed_plugins.json`이 최소한 하나의 설치를 기록하는 동안에만 스윕이 실행됩니다. 마지막 플러그인을 제거한 후 고아 디렉토리는 다른 플러그인을 설치할 때까지 유지됩니다.

226 

227<h3 id="node-js-package-dependencies">

228 Node.js 패키지 종속성

229</h3>

230 

231Claude Code가 플러그인을 캐시에 복사할 때 플러그인의 Node.js 패키지 종속성도 거기에 설치하므로 플러그인의 훅과 MCP 서버가 로드할 수 있습니다.

232 

233이 섹션은 플러그인이 자신의 `package.json`에 선언하는 npm 및 Bun 패키지를 다룹니다. 다른 플러그인에 의존하는 플러그인은 [플러그인 종속성 버전](/docs/ko/plugins/dependencies)을 참조합니다.

234 

235<h4 id="when-the-dependency-install-runs">

236 종속성 설치가 실행되는 경우

237</h4>

238 

239Claude Code는 생성할 때마다 복사된 버전 디렉토리 내에서 설치를 실행합니다:

240 

241* 플러그인을 설치할 때

242* Claude Code가 플러그인을 새 버전으로 업데이트할 때

243* 새 머신과 같이 활성화된 플러그인이 아직 캐시되지 않았을 때 세션 시작 시

244 

245로컬 디렉토리 마켓플레이스에서 [제자리로 로드된](#in-place-and-copied-plugins) 상대 경로 플러그인의 경우 Claude Code는 소스 디렉토리에 종속성을 설치하지 않습니다. 거기에 설치하거나 훅에서 [`${CLAUDE_PLUGIN_DATA}`](/docs/ko/plugins/components#path-variables-and-persistent-data)로 설치합니다.

246 

247설치는 플러그인의 루트 디렉토리에 `package.json`과 지원되는 잠금 파일이 모두 포함될 때만 실행됩니다. 잠금 파일은 Claude Code가 실행하는 명령을 결정합니다:

248 

249| 잠금 파일 | 명령 |

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

251| `bun.lock` 또는 `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |

252| `npm-shrinkwrap.json` 또는 `package-lock.json` | `npm ci --ignore-scripts` |

253 

254플러그인에 이러한 잠금 파일이 두 개 이상 포함되어 있으면 Claude Code는 첫 번째 일치를 사용하며 순서대로 확인합니다: `bun.lock`, `bun.lockb`, `npm-shrinkwrap.json`, `package-lock.json`.

255 

256Claude Code는 Yarn 및 pnpm 잠금 파일과 Bun 잠금 파일 옆의 `bunfig.toml`에 대한 설치를 건너뜁니다:

257 

258* 플러그인에 `yarn.lock` 또는 `pnpm-lock.yaml`만 있으면 npm 잠금 파일로 바꿉니다

259* `bunfig.toml`이 Bun 잠금 파일과 같은 디렉토리에 있으면 `bunfig.toml`을 제거하거나 Bun 잠금 파일을 npm 잠금 파일로 바꿉니다

260 

261npm 잠금 파일을 포함하여 가장 많은 사용자에게 도달합니다. Claude Code는 사용자의 PATH에서 일치하는 잠금 파일의 패키지 관리자를 실행하고 해당 패키지 관리자가 누락된 경우 다른 잠금 파일을 시도하지 않습니다.

262 

263npm 소스를 통해 배포된 플러그인의 경우 npm이 게시된 패키지에서 `package-lock.json`을 제외하기 때문에 `npm-shrinkwrap.json`을 사용합니다.

264 

265<h4 id="limits-on-the-dependency-install">

266 종속성 설치의 제한

267</h4>

268 

269Claude Code는 이 종속성 설치를 제한하여 설치 중에 플러그인 또는 패키지의 코드가 실행되지 않도록 하고 실행 시간을 제한합니다:

270 

271* **고정 해결**: Bun 및 npm은 잠금 파일이 고정한 것을 정확히 설치하고 `package.json`과 잠금 파일이 불일치할 때 버전을 다시 해결하는 대신 실패합니다

272* **라이프사이클 스크립트 없음**: `--ignore-scripts`는 `preinstall`, `install`, `postinstall` 스크립트가 실행되지 않도록 하므로 해당 스크립트에서 네이티브 모듈을 빌드하는 종속성은 다운로드되지만 이 설치 중에 컴파일되지 않습니다

273* **60초 타임아웃**: Claude Code는 더 오래 실행되는 설치를 중지하고 실패로 처리합니다

274 

275Claude Code는 이 종속성 설치 전에 npm 소스 플러그인을 가져오고 패키지의 자체 설치 스크립트는 가져오는 중에 실행되지 않습니다. [npm 플러그인 소스](/docs/ko/plugins/marketplace-reference#npm-plugin-source)를 참조합니다.

276 

277자동 설치를 끌 수 없습니다. 설정이나 환경 변수가 이를 비활성화하지 않습니다.

278 

279제한된 네트워크에서는 [네트워크 액세스 요구 사항](/docs/ko/network-config#network-access-requirements)을 참조하여 허용할 호스트를 확인합니다.

280 

281<h4 id="when-the-dependency-install-fails-or-is-skipped">

282 종속성 설치가 실패하거나 건너뛰어질 때

283</h4>

284 

285실패하거나 건너뛴 설치는 플러그인을 절대 차단하지 않으며 각 경우는 다른 신호를 남깁니다:

286 

287* 실패한 설치 또는 Yarn 또는 pnpm 잠금 파일 또는 `bunfig.toml` 때문에 건너뛴 설치는 `claude --debug` 출력에 경고로 나타납니다

288* `package.json`이 있고 잠금 파일이 없는 플러그인은 로그 항목 없이 건너뜁니다

289* 시간 초과된 설치는 캐시된 복사본에 부분 `node_modules` 트리를 남길 수 있습니다

290 

291자동 설치가 종속성을 제공할 수 없을 때 [영구 데이터 디렉토리](/docs/ko/plugins/components#path-variables-and-persistent-data)로 훅에서 설치합니다. 여기에는 라이프사이클 스크립트를 빌드해야 하는 패키지, Python 종속성, Yarn 또는 pnpm으로 잠긴 플러그인이 포함됩니다.

292 

293<h2 id="versions-and-updates">

294 버전 및 업데이트

295</h2>

296 

297플러그인의 작성자가 새 커밋을 푸시했고 `claude plugin update`가 `<name> is already at the latest version (<version>).`를 인쇄하면 Claude Code가 플러그인에 대해 계산하는 버전은 변경되지 않으므로 디스크에서 아무것도 변경되지 않습니다.

298 

299Claude Code는 설치하는 모든 플러그인에 대해 버전을 계산하고 그 버전이 업데이트를 감지하는 방법입니다. `claude plugin update` 및 백그라운드 자동 업데이트는 버전을 다시 계산하고 `installed_plugins.json`이 기록한 것과 일치할 때 플러그인을 건너뜁니다.

300 

301버전은 플러그인의 캐시 디렉토리의 이름도 지정합니다.

302 

303`"version"`을 고정하는 매니페스트는 계산된 버전이 커밋 전체에서 동일하게 유지되는 한 가지 방법입니다. [Claude Code가 버전을 계산하는 방법](#how-claude-code-computes-the-version)을 참조합니다.

304 

305로컬 디렉토리 마켓플레이스에서 [제자리로 로드된](#in-place-and-copied-plugins) 플러그인은 버전 문자열이 무엇이든 모든 세션 시작에서 현재 소스 파일을 로드합니다. [claude.ai에서 호스팅되는 마켓플레이스](/docs/ko/plugins/install#add-from-claude-ai)의 플러그인의 경우 claude.ai가 플러그인에 대해 기록하는 버전이 버전이고 매니페스트의 `version`은 읽지 않습니다.

306 

307<h3 id="how-claude-code-computes-the-version">

308 Claude Code가 버전을 계산하는 방법

309</h3>

310 

311추가한 소스의 마켓플레이스의 경우 Claude Code는 플러그인의 마켓플레이스 항목의 `source` 유형으로 규칙을 선택합니다. [마켓플레이스 참조](/docs/ko/plugins/marketplace-reference#plugin-sources)는 소스 유형을 나열합니다. 해당 목록의 `command` 제외 모든 소스 유형에 대해:

312 

3131. 플러그인의 매니페스트의 `version` 필드가 먼저 옵니다

3142. 그 다음 플러그인의 마켓플레이스 항목의 `version` 필드

3153. 둘 다 설정되지 않으면 버전은 소스 유형에서 옵니다:

316 

317| 소스 유형 | `version` 필드가 설정되지 않을 때 버전 |

318| :---------------------------------------- | :------------------------------------------------------------------------ |

319| `github`, `url`, 또는 `git-subdir` | 소스의 커밋 SHA, 12자로 단축됨. `git-subdir` 버전은 또한 하위 디렉토리 경로의 해시를 전달합니다 |

320| `archive` | SHA-256 다이제스트, 12자로 단축됨: 마켓플레이스 항목의 `sha256` 핀 또는 핀이 없을 때 다운로드된 파일의 다이제스트 |

321| Git 호스팅 마켓플레이스 내 상대 경로 | 설치된 디렉토리의 커밋 SHA |

322| 로컬 디렉토리, 플러그인 디렉토리도 마켓플레이스도 git 저장소가 아닐 때 | `unknown` |

323| `npm` | `unknown` |

324 

325Claude Code는 설치 경로를 둘러싼 저장소 (예: git 관리 `~/.claude`)에서 버전을 가져오지 않습니다.

326 

327`command` 소스의 경우 Claude Code는 항상 명령이 생성한 것에서 버전을 파생합니다: 자체적으로 12자 해시 또는 매니페스트가 하나를 설정할 때 `<manifest version>-<hash>`. 마켓플레이스 항목의 `version`은 명령 소스에 대해 무시됩니다. 해시가 포함하는 것은 [복사 모드 및 링크 모드](/docs/ko/plugins/marketplace-reference#copy-mode-and-link-mode)를 참조합니다.

328 

329매니페스트가 먼저 오기 때문에 `"version": "1.0.0"`을 고정하는 매니페스트는 작성자가 문자열을 변경할 때까지 모든 사용자를 캐시된 복사본에 유지하며, 푸시하는 커밋이 몇 개이든 상관없습니다. 사용자가 커밋을 추적하도록 하려면 매니페스트와 항목 모두에서 `version`을 생략합니다. [마켓플레이스 호스팅](/docs/ko/plugins/host-marketplace)은 어떤 선택이 어떤 릴리스 설정에 맞는지 다룹니다.

330 

331<h3 id="when-claude-code-refreshes-a-marketplace-before-an-install">

332 Claude Code가 설치 전에 마켓플레이스를 새로 고칠 때

333</h3>

334 

335플러그인을 설치할 때 Claude Code는 마켓플레이스 카탈로그의 로컬 복사본에서 조회합니다. 세션에서 `/plugin install`을 실행하거나 셸에서 `claude plugin install`을 실행하고 마켓플레이스 없이 또는 마켓플레이스와 함께 플러그인의 이름을 지정할 수 있습니다. 표는 이러한 조합 중 어느 것이 로컬 복사본을 새로 고치는지 보여줍니다.

336 

337| 플러그인 이름 | 명령 | Claude Code가 새로 고치는 것 |

338| :----------------- | :------------------------------------------- | :------------------------------- |

339| `name@marketplace` | `/plugin install` 또는 `claude plugin install` | 조회 전에 명명된 마켓플레이스 |

340| `name` 단독 | `/plugin install` | 자동 업데이트가 켜진 마켓플레이스만, 조회가 누락된 후에만 |

341| `name` 단독 | `claude plugin install` | 없음. 새로 고침 없이 캐시된 카탈로그를 읽습니다 |

342 

343`name@marketplace` 설치 전의 새로 고침은 마켓플레이스의 자동 업데이트 설정이나 `DISABLE_AUTOUPDATER`에 의존하지 않습니다.

344 

345새로 고침이 실패하면 설치는 캐시된 카탈로그에서 진행되고 `claude plugin install`은 `marketplace not refreshed`를 보고합니다.

346 

347Claude Code는 다음 경우에 `name@marketplace` 설치 전의 새로 고침을 건너뜁니다:

348 

349* 마켓플레이스가 로컬 `file` 또는 `directory` 소스에서 추가되었거나 [`settings` 소스](/docs/ko/settings-reference#extraknownmarketplaces)를 사용하여 설정에서 인라인으로 정의됨

350* [시드 디렉토리](/docs/ko/env-vars)가 마켓플레이스를 제공함

351* Claude Code가 지난 30초 내에 마켓플레이스를 새로 고침

352* `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`을 설정함

353* [관리 설정](/docs/ko/plugins/org#restrict-what-users-can-install)이 마켓플레이스를 차단하며, 이 경우 Claude Code도 설치를 거부합니다

354 

355<h3 id="when-auto-update-runs">

356 자동 업데이트가 실행될 때

357</h3>

358 

359대화형 세션에서 첫 번째 메시지를 보낸 후 Claude Code는 최대 10분의 무작위 지연을 기다립니다. 그 다음 자동 업데이트가 켜진 모든 마켓플레이스를 새로 고치고 디스크에서 설치된 플러그인을 업데이트합니다.

360 

361실행 중인 세션은 로드한 버전을 유지하고 `Plugin updated: <name> · Run /reload-plugins to apply`가 표시됩니다. 다시 로드하든 안 하든 새 버전은 다음 시작 시 로드됩니다.

362 

363<h4 id="which-marketplaces-and-plugins-auto-update">

364 어떤 마켓플레이스 및 플러그인이 자동 업데이트되는지

365</h4>

366 

367마켓플레이스가 자동 업데이트되는지는 설정된 첫 번째를 따릅니다:

368 

3691. **설정 파일의 `extraKnownMarketplaces` 항목의 `autoUpdate`**

3702. **`known_marketplaces.json` 항목의 `autoUpdate`**, `/plugin` **Marketplaces** 아래의 **Enable auto-update** 토글이 씁니다. 설정 파일이 `extraKnownMarketplaces` 아래에서 마켓플레이스를 선언할 때 토글은 해당 설정 항목에도 `autoUpdate`를 씁니다

3713. **기본값**: Anthropic의 공식 마켓플레이스 (예: `claude-plugins-official`)의 경우 켜짐, `knowledge-work-plugins` 및 `first-party-plugins`의 경우 꺼짐, [claude.ai에서 추가한 마켓플레이스](/docs/ko/plugins/install#add-from-claude-ai)의 경우 켜짐, 다른 모든 마켓플레이스의 경우 꺼짐

372 

373`DISABLE_UPDATES=1`, `DISABLE_AUTOUPDATER=1`, 또는 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1`을 설정하면 전체 패스가 꺼지고 `FORCE_AUTOUPDATE_PLUGINS=1`도 설정하지 않는 한 **Enable auto-update** 토글이 숨겨집니다. [환경 변수 참조](/docs/ko/env-vars)는 각 변수의 더 넓은 효과를 다룹니다.

374 

375자동 업데이트는 또한 마켓플레이스 항목이 `headersHelper`를 선언하는 플러그인을 건너뜁니다. [명령 대신 거부하는 설치 및 업데이트](/docs/ko/plugins/host-marketplace#installs-and-updates-that-refuse-the-command-instead-of-asking)는 이러한 플러그인이 `/plugin` **Errors** 탭에 나타나는 경우와 거기에서 업데이트하는 방법을 설명합니다.

376 

377복사된 플러그인이 세션 중에 업데이트될 때 훅 명령, 모니터, MCP 서버 및 LSP 서버는 이전 버전의 경로를 계속 사용합니다. `/reload-plugins`를 실행하여 훅, MCP 서버 및 LSP 서버를 새 경로로 전환합니다. 모니터는 세션 재시작이 필요합니다.

378 

379<h3 id="when-a-command-source-re-runs">

380 명령 소스가 다시 실행될 때

381</h3>

382 

383`command` 소스가 있는 플러그인은 [자동 업데이트 패스](#when-auto-update-runs)를 기다리지 않습니다. 인쇄된 디렉토리는 명령이 실행된 시점의 도구 상태를 반영하므로 Claude Code는 [수락한 명령](/docs/ko/plugins/host-marketplace#change-the-command-of-a-command-source)을 다시 실행합니다:

384 

385* 플러그인을 설치하거나 업데이트할 때마다

386* 세션당 한 번씩 활성화된 각 명령 소스 플러그인에 대해 백그라운드에서 세션이 시작된 직후. 이 실행은 마켓플레이스의 자동 업데이트 설정이나 `DISABLE_AUTOUPDATER`에 의존하지 않습니다

387* 시작 시 또는 `/reload-plugins`에서 활성화된 플러그인의 설치된 버전이 플러그인 캐시에서 누락되었을 때

388 

389[`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ko/env-vars)을 설정할 때 Claude Code는 두 백그라운드 실행을 건너뜁니다. 명시적 설치 및 업데이트는 해당 변수가 설정되어 있어도 명령을 실행합니다.

390 

391명령의 해시된 출력이 변경되면 Claude Code는 결과를 새 버전으로 설치하고 실행 중인 대화형 세션에서 다시 로드하며 [`/reload-plugins`가 전환하는 동일한 구성 요소](/docs/ko/plugins/cli-reference#reload-plugins)를 전환합니다. 플러그인이 다시 로드되었다는 알림이 표시됩니다.

392 

393제자리에서 다시 로드하면 세션의 프롬프트 캐시가 무효화되면 Claude Code는 대신 `/reload-plugins`를 실행하도록 프롬프트하며, [캐시 비용에 대해 경고하고 `--force`로 다시 실행할 때 적용](/docs/ko/prompt-caching#enabling-or-disabling-a-plugin)합니다.

394 

395<h2 id="name-conflicts">

396 이름 충돌

397</h2>

398 

399다른 원본의 활성화된 플러그인이 매니페스트 이름을 공유할 때 이 순서는 어느 것이 로드되는지 결정하며, 가장 높은 우선 순위에서 가장 낮은 우선 순위로:

400 

4011. id가 관리 설정 `enabledPlugins`에 나타나는 플러그인, `true` 또는 `false`로. 매니페스트 이름이 id의 이름 부분과 일치하는 `--plugin-dir` 복사본은 로드되지 않으며 `--plugin-dir copy of "<name>" ignored: plugin is locked by managed settings`가 표시됩니다

4022. 활성화된 `--plugin-dir`, `--plugin-url`, 또는 `CLAUDE_CODE_PLUGIN_DIRS` 플러그인. 같은 이름의 설치된 마켓플레이스 플러그인 또는 기술 디렉토리 플러그인을 대체합니다:

403 * **설치된 마켓플레이스 플러그인**: 조용히 대체됨. `claude plugin list`는 여전히 마켓플레이스 행을 활성화된 것으로 표시합니다. 설정을 반영하기 때문입니다. `--debug`로 시작할 때 Claude Code가 `~/.claude/debug/` 아래에 쓰는 로그만 `Plugin "<name>" from --plugin-dir overrides installed version`을 기록합니다

404 * **기술 디렉토리 플러그인**: `/plugin` **Errors** 탭 행으로 대체되며 `Not loaded — the name "<name>" is already taken by a session-only plugin (--plugin-dir / --plugin-url), which takes precedence`를 읽습니다

4053. 설치된 마켓플레이스 플러그인. 같은 이름의 기술 디렉토리 플러그인은 동일한 `Not loaded` 행을 가지며 설치된 플러그인의 이름을 지정합니다

4064. 기술 디렉토리 플러그인. 이 둘 사이에서 `~/.claude/skills/` 아래의 복사본이 로드되고 프로젝트의 `.claude/skills/` 복사본이 삭제되며 어떤 경로가 이를 섀도우했는지 말하는 행이 있습니다

4075. [claude.ai에서 동기화된](#synced-plugins) 플러그인. 다른 원본의 활성화된 플러그인이 이름과 일치할 때 Claude Code는 해당 플러그인을 로드하고 동기화된 복사본을 로드되지 않은 것으로 보고합니다. claude.ai 복사본을 대신 사용하려면 자신의 복사본을 비활성화합니다

408 

409순서가 매니페스트 이름을 비교하기 때문에 `hello-plugin`이라는 `--plugin-dir` 플러그인은 해당 플러그인의 매니페스트도 `"name": "hello-plugin"`을 말할 때 `hello@example-marketplace`를 대체합니다.

410 

411<h3 id="keep-a-session-only-plugin-from-loading">

412 세션 전용 플러그인이 로드되지 않도록 유지

413</h3>

414 

415`--plugin-dir` 플러그인이 아무것도 섀도우하지 않도록 하거나 부모 프로세스가 플래그를 전달할 때 하나를 끄려면 설정 파일에서 id를 `false`로 설정합니다. 매니페스트 이름이 `hello-plugin`인 플러그인의 경우 항목은 `"enabledPlugins": {"hello-plugin@inline": false}`입니다. 비활성화된 세션 전용 플러그인은 섀도우하지 않으므로 마켓플레이스 또는 기술 디렉토리 복사본이 대신 로드됩니다.

416 

417<h2 id="next-steps">

418 다음 단계

419</h2>

420 

421* [플러그인 설치 및 관리](/docs/ko/plugins/install): 설치, 활성화, 비활성화 및 업데이트 단계 자체

422* [플러그인 문제 해결](/docs/ko/plugins/troubleshooting): 이를 생성하는 단계별 오류 메시지

423* [플러그인 명령 참조](/docs/ko/plugins/cli-reference): 이 페이지에서 명명된 플래그 및 명령

424* [조직의 플러그인 관리](/docs/ko/plugins/org): 플러그인을 강제 활성화하거나 차단하는 관리 설정

plugins/manifest-reference.md +710 −0 created

Details

1> ## Documentation Index

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

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

4 

5# 플러그인 매니페스트 참조

6 

7> plugin.json의 완전한 참조: 모든 필드의 타입과 기본값, 허용되는 경로 형식, userConfig 및 환경 변수 스키마.

8 

9플러그인 매니페스트는 플러그인의 `.claude-plugin/` 디렉토리에 있는 `plugin.json` 파일입니다. 플러그인의 메타데이터와 Claude Code가 사용자에게 요청하는 [`userConfig`](#user-configuration) 값을 포함합니다. 또한 인라인으로 정의하거나 [기본 위치](#standard-layout) 외부에 유지하는 모든 컴포넌트를 선언합니다.

10 

11이 참조는 플러그인 작성자와 플러그인 마켓플레이스 항목에 컴포넌트 필드를 추가하는 마켓플레이스 소유자를 위한 것입니다.

12 

13<Note>

14 다음 경우는 다른 페이지에서 다룹니다:

15 

16 * **플러그인 빌드 학습**: [플러그인 생성](/docs/ko/plugins/create)부터 시작하세요

17 * **각 컴포넌트가 런타임에 수행하는 작업**: [플러그인 컴포넌트](/docs/ko/plugins/components) 참조

18</Note>

19 

20찾고 있는 내용과 일치하는 섹션부터 시작하세요:

21 

22* 필드: [필드 테이블](#fields)에서 각 필드의 타입, 필수 여부, 기본값 및 허용되는 항목을 제공합니다. [경로 규칙](#path-rules)은 모든 컴포넌트 경로에 대한 `./` 접두사 및 포함을 다룹니다

23* `userConfig` 옵션 또는 `channels` 항목: [사용자 구성](#user-configuration) 및 [채널](#channels) 스키마

24* `${CLAUDE_PLUGIN_ROOT}` 또는 플러그인이 참조할 수 있는 다른 변수: [환경 변수](#environment-variables)

25* 각 컴포넌트의 파일이 위치하는 곳: [표준 레이아웃](#standard-layout)

26* `claude plugin validate`의 메시지: [문제 해결 페이지](/docs/ko/plugins/troubleshooting)에서 각 메시지와 해결 방법, 이 페이지의 관련 섹션으로의 링크를 나열합니다

27 

28<h2 id="manifest-file">

29 매니페스트 파일

30</h2>

31 

32매니페스트는 선택 사항입니다. 없으면 Claude Code는 [표준 레이아웃](#standard-layout)에서 찾은 컴포넌트를 로드합니다. 그러면 플러그인 이름은 마켓플레이스 항목에서 오거나 `--plugin-dir`으로 플러그인을 로드할 때 디렉토리 이름에서 옵니다.

33 

34메타데이터, 기본 디렉토리 외부의 컴포넌트, `userConfig` 또는 인라인 컴포넌트 정의를 원할 때 매니페스트를 작성하세요.

35 

36매니페스트를 플러그인 루트 아래 `.claude-plugin/plugin.json`에 저장하세요. 다른 모든 플러그인 파일을 플러그인 루트에 배치하고 `.claude-plugin/` 내부에는 배치하지 마세요. 여기에는 `skills/`, `commands/` 및 `hooks/`가 포함됩니다.

37 

38다음 예제는 [필드 테이블](#fields)의 대부분의 키를 설정합니다. 각 참조된 경로를 포함하는 플러그인 디렉토리에서 유효성 검사를 통과합니다.

39 

40```json theme={null}

41{

42 "name": "deploy-tools",

43 "displayName": "Deploy Tools",

44 "version": "1.2.0",

45 "description": "Deployment commands, a review agent, and a status monitor",

46 "author": {

47 "name": "Example Team",

48 "email": "dev@example.com",

49 "url": "https://example.com"

50 },

51 "homepage": "https://example.com/docs/deploy-tools",

52 "repository": "https://github.com/example/deploy-tools",

53 "license": "MIT",

54 "keywords": ["deployment", "ci"],

55 "defaultEnabled": true,

56 "dependencies": ["secrets-vault"],

57 "metadata": { "catalogId": "cat-123" },

58 "skills": ["./extra-skills/"],

59 "commands": {

60 "status": {

61 "source": "./commands/status.md",

62 "description": "Show the current deployment status"

63 },

64 "about": {

65 "content": "Explain what the deploy-tools plugin provides.",

66 "description": "Describe this plugin"

67 }

68 },

69 "agents": ["./agents/reviewer.md"],

70 "hooks": "./config/extra-hooks.json",

71 "mcpServers": {

72 "deploy-api": {

73 "command": "node",

74 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"]

75 }

76 },

77 "lspServers": "./.lsp.json",

78 "outputStyles": "./styles/",

79 "experimental": {

80 "themes": "./themes/",

81 "monitors": "./config/monitors.json"

82 },

83 "userConfig": {

84 "api_token": {

85 "type": "string",

86 "title": "API token",

87 "description": "Token for the deployment API",

88 "sensitive": true

89 }

90 }

91}

92```

93 

94<h3 id="unrecognized-fields">

95 인식되지 않는 필드

96</h3>

97 

98인식되지 않는 최상위 키는 제거되고, `userConfig` 옵션, `channels` 항목, `lspServers` 구성 또는 `monitors` 항목 내의 인식되지 않는 키는 거부됩니다:

99 

100* **최상위 필드**: 필드가 제거되고 플러그인이 로드됩니다. `claude plugin validate`는 각 인식되지 않는 최상위 필드를 경고로 보고합니다

101* **엄격한 객체**: `userConfig` 옵션, `channels` 항목, `lspServers` 구성 및 `monitors` 항목은 엄격합니다. 내부의 알 수 없는 키는 오류이며 플러그인이 로드되지 않습니다

102 

103<h3 id="validate-the-manifest">

104 매니페스트 유효성 검사

105</h3>

106 

107`claude plugin validate`는 매니페스트에 대한 권위 있는 검사입니다. 셸에서 플러그인 디렉토리에 대해 실행하세요:

108 

109```bash theme={null}

110claude plugin validate ./my-plugin

111```

112 

113명령은 다음 결과 중 하나를 보고합니다:

114 

115* **`Validation passed`**: 매니페스트가 로드됩니다

116* **`Validation passed with warnings`**: 매니페스트가 로드되지만 유효성 검사기가 수정할 사항을 발견했습니다. 예를 들어 Claude Code가 제거하는 알 수 없는 최상위 필드, kebab-case가 아닌 `name`, 누락된 `version`, `description` 또는 `author`입니다. CI에서 경고를 실패로 바꾸려면 `--strict`를 전달하세요

117* **`Validation failed`**: 매니페스트에 타입 불일치, 누락되었거나 플러그인 루트를 벗어나는 경로, 또는 `userConfig` 옵션, `channels` 항목, `lspServers` 구성 또는 `monitors` 항목 내의 알 수 없는 키가 있습니다. Claude Code는 플러그인을 로드할 때 동일한 문제를 보고합니다

118 

119<h2 id="fields">

120 필드

121</h2>

122 

123테이블은 `plugin.json`의 최상위 키를 나열합니다. `name`은 유일한 필수 키입니다. 필드 이름이 링크인 경우 링크된 섹션에 전체 규칙이 있습니다.

124 

125`commands` 및 `hooks`와 같은 컴포넌트 키의 경우 [컴포넌트 경로 형식](#component-path-forms)은 예제와 함께 허용되는 각 형식을 보여주며, 모든 경로는 `./` 접두사, 확장자 및 포함에 대한 [경로 규칙](#path-rules)을 따릅니다.

126 

127| 필드 | 타입 | 설명 |

128| :----------------------------------- | :------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

129| `$schema` | String | 편집기 자동 완성을 위한 JSON Schema URL. Claude Code는 로드 시 이를 무시합니다 |

130| [`name`](#name) | String | 플러그인 식별자, 필수. kebab-case를 사용하세요. 모든 컴포넌트는 이 아래에 네임스페이스됩니다 |

131| [`displayName`](#displayname) | String | `name` 대신 UI에 표시되는 이름 |

132| [`version`](#version) | String | 버전 문자열. 설정하면 변경할 때까지 사용자를 해당 버전에 유지합니다 |

133| `description` | String | 플러그인이 제공하는 것에 대한 간단한 설명 |

134| `author` | Object | 필수인 `name`, 선택적인 `email` 및 `url` |

135| `homepage` | String | 문서 URL. URL로 구문 분석되어야 하거나 플러그인이 로드되지 않습니다 |

136| `repository` | String | 소스 저장소 URL. 유효성이 검사되지 않습니다 |

137| `license` | String | `MIT` 또는 `Apache-2.0`과 같은 SPDX 식별자 |

138| `keywords` | Array of strings | 검색 태그 |

139| [`metadata`](#metadata) | Object | 자신의 데이터를 위한 자유 형식 객체. Claude Code는 이를 읽지 않습니다 |

140| [`defaultEnabled`](#defaultenabled) | Boolean | 사용자가 설정하지 않았을 때 플러그인이 활성화된 상태로 시작되는지 여부. 기본값은 `true`입니다 |

141| [`dependencies`](#dependencies) | Array of strings or objects | 이 플러그인이 작동하기 위해 활성화되어야 하는 플러그인 |

142| [`settings`](#settings) | Object | 플러그인이 활성화된 동안 Claude Code가 적용하는 설정. `agent` 및 `subagentStatusLine`만 적용됩니다 |

143| [`userConfig`](#user-configuration) | Object | 플러그인이 활성화될 때 Claude Code가 사용자에게 요청하는 값 |

144| [`channels`](#channels) | Array of objects | 플러그인이 제공하는 메시지 채널, 각각 MCP 서버 중 하나에 바인딩됨 |

145| `skills` | Path, or array of paths | 스킬을 스캔할 디렉토리, 각각 `<name>/SKILL.md` 폴더의 디렉토리 또는 `SKILL.md`를 직접 보유하는 하나의 폴더. `"."`는 플러그인 루트를 지정합니다. 기본 `skills/` 스캔에 추가됩니다 |

146| [`commands`](#commands) | Path, array of paths, or object | 평면 `.md` 명령 파일, 이들의 디렉토리, 또는 명령 이름을 `source` 또는 `content`에 매핑하는 객체. 기본 `commands/` 스캔을 대체합니다 |

147| `agents` | Path, or array of paths | 에이전트 `.md` 파일. 디렉토리는 허용되지 않습니다. 기본 `agents/` 스캔을 대체합니다 |

148| [`hooks`](#hooks) | Path, object, or array of either | `.json` 훅 파일 또는 인라인 훅 구성. `hooks/hooks.json`과 함께 로드됨 |

149| [`mcpServers`](#mcpservers) | Path, object, or array of either | `.json` MCP 구성 파일, `.mcpb` 또는 `.dxt` 번들, 또는 이름으로 키가 지정된 인라인 서버 구성. `.mcp.json`과 함께 로드됨; 나중에 선언된 서버 이름은 이전 이름을 대체합니다 |

150| [`lspServers`](#lspservers) | Path, object, or array of either | `.json` LSP 구성 파일 또는 이름으로 키가 지정된 인라인 서버 구성. `.lsp.json`과 함께 로드됨 |

151| `outputStyles` | Path, or array of paths | 출력 스타일 파일 또는 디렉토리. 기본 `output-styles/` 스캔을 대체합니다 |

152| `workflows` | Path, or array of paths | [워크플로우](/docs/ko/workflows#distribute-a-workflow-in-a-plugin) `.js` 파일 또는 디렉토리. 기본 `workflows/` 스캔을 대체합니다 |

153| `experimental` | Object | `themes`, `monitors` 및 `evals`의 컨테이너, 매니페스트 형식이 여전히 변경될 수 있음 |

154| `experimental.themes` | Path, or array of paths | 테마 파일 또는 디렉토리. 기본 `themes/` 스캔을 대체합니다. 최상위 `themes` 키는 여전히 로드되며 `claude plugin validate` 경고가 표시됩니다 |

155| [`experimental.monitors`](#monitors) | Path, or inline array | 모니터 배열을 보유하는 `.json` 파일 또는 배열 자체. 기본값은 `monitors/monitors.json`입니다. 최상위 `monitors` 키는 여전히 로드되며 `claude plugin validate` 경고가 표시됩니다. 모니터는 대화형 세션에서만 실행되며 Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry에서는 실행되지 않습니다 |

156| `experimental.evals` | Path, or array of paths | 기본값이 `evals/`가 아닐 때 플러그인의 [평가 사례](/docs/ko/plugin-evals#use-a-different-eval-directory)를 보유하는 디렉토리. `claude plugin eval --eval-dir`이 이를 재정의합니다 |

157 

158Type 열에서 경로는 `"./custom/commands"`와 같이 플러그인 루트에 상대적인 문자열입니다.

159 

160<h3 id="name">

161 `name`

162</h3>

163 

164플러그인 식별자. 공백, `@`, `:`, 경로 구분자, 제어 문자 또는 양방향 형식 문자가 없는 비어있지 않은 상태여야 합니다. kebab-case를 사용하세요.

165 

166Claude Code는 모든 컴포넌트를 이 아래에 네임스페이스하므로 플러그인 `deploy-tools`의 에이전트 `reviewer`는 `deploy-tools:reviewer`로 나타납니다.

167 

168<h3 id="displayname">

169 `displayName`

170</h3>

171 

172`name` 대신 UI에 표시되는 이름. 공백과 모든 대소문자를 포함할 수 있으며 네임스페이싱이나 조회에 사용되지 않습니다.

173 

174마켓플레이스에서 설치된 플러그인의 경우 [마켓플레이스 항목](/docs/ko/plugins/marketplace-reference#plugin-entries)의 `displayName`이 이 값보다 우선합니다.

175 

176<h3 id="version">

177 `version`

178</h3>

179 

180semver에 대해 검사되지 않는 버전 문자열. 설정하면 변경할 때까지 플러그인을 해당 버전에 고정합니다. [버전 및 업데이트](/docs/ko/plugins/loading#versions-and-updates)를 참조하세요. [`command` 소스](/docs/ko/plugins/marketplace-reference)가 있는 플러그인, [claude.ai에서 호스팅되는 마켓플레이스](/docs/ko/plugins/install#add-from-claude-ai)의 플러그인, 그리고 로컬 디렉토리로 추가된 마켓플레이스에서 [제자리에 로드](/docs/ko/plugins/loading#find-plugins-on-disk)된 플러그인은 이 필드로 고정되지 않습니다.

181 

182<h3 id="metadata">

183 `metadata`

184</h3>

185 

186카탈로그 또는 자격 필드와 같은 자신의 데이터를 위한 자유 형식 객체. Claude Code는 이를 읽지 않습니다. Claude Code v2.1.222 이상이 필요합니다.

187 

188<h3 id="defaultenabled">

189 `defaultEnabled`

190</h3>

191 

192사용자가 [`enabledPlugins`](/docs/ko/settings-reference#enabledplugins)에서 설정하지 않았을 때 플러그인이 활성화된 상태로 시작되는지 여부. 기본값은 `true`입니다. 활성화된 플러그인이 의존하는 플러그인은 관계없이 활성화된 상태로 시작됩니다. 마켓플레이스 항목의 동일한 필드가 이 필드를 재정의합니다.

193 

194사용자의 `enabledPlugins` 항목이 작성되면 플러그인 업데이트 전체에서 유지되므로 나중 릴리스에서 `defaultEnabled`를 변경해도 기존 사용자의 설정은 변경되지 않습니다.

195 

196<h3 id="dependencies">

197 `dependencies`

198</h3>

199 

200이 플러그인이 작동하기 위해 활성화되어야 하는 플러그인. 각 항목은 `"name"`, `"name@marketplace"` 또는 `{ "name": "...", "marketplace": "...", "version": "..." }`입니다. 베어 이름은 이 플러그인 자신의 마켓플레이스에 대해 해결됩니다. [의존성 제약](/docs/ko/plugins/dependencies)을 참조하세요.

201 

202<h3 id="settings">

203 `settings`

204</h3>

205 

206플러그인이 활성화된 동안 Claude Code가 적용하는 설정. `agent` 및 `subagentStatusLine`만 적용됩니다. 다른 키는 로드 시 제거됩니다. 플러그인 루트의 `settings.json`이 이 키보다 우선합니다. [기본 설정](/docs/ko/plugins/components#default-settings)을 참조하세요.

207 

208<h2 id="component-path-forms">

209 컴포넌트 경로 형식

210</h2>

211 

212모든 컴포넌트 키는 플러그인 루트에 상대적인 경로를 허용합니다. `hooks`, `mcpServers`, `lspServers` 및 `experimental.monitors`는 또한 인라인 구성을 허용하고, `commands`는 또한 객체 맵을 허용하며, `mcpServers`는 또한 MCP 번들 경로 및 URL을 허용합니다. 다음 예제는 허용되는 각 형식을 한 번씩 보여줍니다. 각 컴포넌트가 런타임에 수행하는 작업은 [플러그인 컴포넌트](/docs/ko/plugins/components)를 참조하세요.

213 

214<h3 id="path-only-fields">

215 경로 전용 필드

216</h3>

217 

218`agents`, `skills`, `outputStyles`, `workflows` 및 `experimental.themes`는 하나의 경로 또는 경로 배열을 사용합니다. `agents` 항목은 `.md` 파일이어야 하고 `skills` 항목은 디렉토리여야 합니다. 다른 세 개는 디렉토리 또는 파일을 허용합니다.

219 

220```json theme={null}

221{

222 "agents": ["./custom-agents/reviewer.md", "./custom-agents/tester.md"],

223 "skills": ["./extra-skills/", "."],

224 "outputStyles": "./styles/"

225}

226```

227 

228<h3 id="commands">

229 `commands`

230</h3>

231 

232`commands`는 경로, 경로 배열 또는 객체 맵을 사용합니다. 경로는 평면 `.md` 명령 파일 또는 디렉토리를 지정합니다. 객체 맵에서 각 키는 플러그인 접두사 후 명령 이름이 됩니다. 예를 들어 플러그인 `deploy-tools`의 `"about"`은 `/deploy-tools:about`으로 실행됩니다.

233 

234각 값은 정확히 `source` 또는 `content` 중 하나를 설정하며, 둘 다 설정하거나 둘 다 설정하지 않는 항목은 유효성 검사에 실패합니다. 이 테이블의 다른 필드는 선택 사항입니다:

235 

236| 필드 | 타입 | 설명 |

237| :------------- | :--------------- | :------------------------------- |

238| `source` | string | 명령의 Markdown 파일 경로, 플러그인 루트에 상대적 |

239| `content` | string | `source` 대신 명령 본문의 인라인 Markdown |

240| `description` | string | 명령에 대해 표시되는 설명 |

241| `argumentHint` | string | 명령 이름 뒤에 표시되는 인수 힌트, 예: `[file]` |

242| `model` | string | 명령의 기본 모델 |

243| `allowedTools` | array of strings | 명령이 프롬프트 없이 사용할 수 있는 도구 |

244 

245이 맵은 파일의 한 명령과 인라인 콘텐츠의 한 명령을 선언합니다:

246 

247```json theme={null}

248{

249 "commands": {

250 "status": { "source": "./commands/status.md", "argumentHint": "[env]" },

251 "about": { "content": "Explain what this plugin provides." }

252 }

253}

254```

255 

256<h3 id="hooks">

257 `hooks`

258</h3>

259 

260`hooks`는 `.json` 파일 경로, [`settings.json`의 `hooks`](/docs/ko/hooks#configuration)와 동일한 형식의 인라인 훅 객체, 또는 둘을 혼합하는 배열을 사용합니다. 훅 이벤트 및 핸들러 필드는 [훅 참조](/docs/ko/hooks#hook-events)를 참조하세요.

261 

262Claude Code는 해당 파일이 존재할 때 `hooks/hooks.json`과 함께 선언한 모든 것을 병합합니다.

263 

264```json theme={null}

265{

266 "hooks": [

267 "./config/extra-hooks.json",

268 {

269 "PostToolUse": [

270 {

271 "matcher": "Write|Edit",

272 "hooks": [

273 { "type": "command", "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/format.sh" }

274 ]

275 }

276 ]

277 }

278 ]

279}

280```

281 

282<h3 id="mcpservers">

283 `mcpServers`

284</h3>

285 

286`mcpServers`는 `.json` 파일 경로, MCP 번들 경로 또는 URL, 인라인 맵, 또는 이들을 혼합하는 배열을 사용합니다. 서버 구성 필드는 [플러그인 제공 MCP 서버](/docs/ko/mcp#plugin-provided-mcp-servers)를 참조하세요.

287 

288Claude Code는 먼저 플러그인 루트의 `.mcp.json`을 로드한 다음 선언된 각 형식을 순서대로 로드합니다. 나중에 선언된 서버 이름은 이전 이름을 대체합니다.

289 

290`mcpServers` 값은 다음 형식 중 하나를 사용합니다:

291 

292| 형식 | 예제 값 | Claude Code가 수행하는 작업 |

293| :------------ | :------------------------------------------------------------------------------------- | :-------------------------------------------------------------- |

294| `.json` 파일 경로 | `"./mcp/servers.json"` | 파일을 `mcpServers` 맵으로 읽음 |

295| MCP 번들 경로 | `"./bundle.mcpb"` | `.mcpb` 또는 `.dxt` 번들을 플러그인 루트 아래 `.mcpb-cache/`로 추출하고 서버 구성을 읽음 |

296| MCP 번들 URL | `"https://example.com/server.mcpb"` | 번들을 `.mcpb-cache/`로 다운로드한 다음 읽음 |

297| 인라인 맵 | `{ "deploy-api": { "command": "node", "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"] } }` | 맵을 이름으로 키가 지정된 서버 구성으로 사용 |

298 

299번들 경로 또는 URL은 `.mcpb` 또는 `.dxt`로 끝나야 합니다. 다른 확장자는 유효성 검사에 실패합니다.

300 

301<h3 id="lspservers">

302 `lspServers`

303</h3>

304 

305`lspServers`는 `.json` 파일 경로, 서버 이름을 구성에 매핑하는 인라인 맵, 또는 둘의 배열을 사용합니다.

306 

307Claude Code는 먼저 플러그인 루트의 `.lsp.json`을 로드한 다음 선언된 각 구성을 순서대로 로드합니다. 나중에 선언된 서버 이름은 이전 이름을 대체합니다.

308 

309각 서버 구성은 다음 필드가 있는 엄격한 객체입니다. 알 수 없는 키는 유효성 검사에 실패합니다.

310 

311| 필드 | 필수 | 설명 |

312| :---------------------- | :-- | :---------------------------------------------------------------------------------------------------------------- |

313| `command` | Yes | 언어 서버 바이너리. 값이 `/`로 시작하지 않으면 공백 없음; 인수를 `args`에 배치 |

314| `extensionToLanguage` | Yes | 파일 확장자를 LSP 언어 ID에 매핑, 최소 하나의 항목. 키는 `.go`와 같이 점으로 시작 |

315| `args` | No | 서버에 전달되는 인수 |

316| `transport` | No | 통신 전송: `stdio`(기본값) 또는 `socket`. Claude Code는 `socket`을 허용하지만 모든 서버를 stdio를 통해 실행하므로 stdout 프로토콜 규칙이 모든 서버에 적용됩니다 |

317| `env` | No | 서버 프로세스의 환경 변수 |

318| `initializationOptions` | No | initialize 요청에서 전송되는 옵션 |

319| `settings` | No | `workspace/didChangeConfiguration`으로 전송되는 설정 |

320| `workspaceFolder` | No | 서버의 작업 공간 폴더 경로 |

321| `startupTimeout` | No | 시작을 기다릴 밀리초, 양의 정수 |

322| `shutdownTimeout` | No | 정상 종료를 기다릴 밀리초, 양의 정수. 시간 초과가 경과하면 Claude Code가 서버 프로세스를 종료합니다. 설정하지 않으면 시간 초과가 적용되지 않습니다 |

323| `restartOnCrash` | No | 서버가 충돌한 후 다시 시작할지 여부. 기본값은 `true`입니다. 충돌한 서버를 다시 시작하지 않고 중지된 상태로 두려면 `false`로 설정 |

324| `maxRestarts` | No | 포기하기 전 재시작 시도, 0 이상 |

325| `diagnostics` | No | 편집 후 진단을 컨텍스트에 푸시할지 여부. 기본값은 `true`입니다 |

326 

327이 인라인 구성은 `.go` 파일에 대해 `gopls`를 실행합니다:

328 

329```json theme={null}

330{

331 "lspServers": {

332 "go": {

333 "command": "gopls",

334 "args": ["serve"],

335 "extensionToLanguage": { ".go": "go" }

336 }

337 }

338}

339```

340 

341Anthropic이 플러그인으로 게시하는 언어 서버 및 서버가 런타임에 동작하는 방식은 [코드 인텔리전스](/docs/ko/plugins/code-intelligence)를 참조하세요.

342 

343<h3 id="monitors">

344 `monitors`

345</h3>

346 

347`experimental.monitors`는 `.json` 파일 경로 또는 인라인 배열을 사용합니다. 키를 생략하면 Claude Code는 존재하는 경우 `monitors/monitors.json`을 로드합니다.

348 

349각 항목은 다음 필드가 있는 엄격한 객체입니다.

350 

351| 필드 | 필수 | 설명 |

352| :------------ | :-- | :--------------------------------------------------------------------------------------------------------- |

353| `name` | Yes | 플러그인 내에서 고유한 식별자 |

354| `command` | Yes | Claude Code가 세션 작업 디렉토리에서 지속적인 백그라운드 프로세스로 실행하는 셸 명령 |

355| `description` | Yes | 작업 패널 및 알림 요약에 표시되는 간단한 요약 |

356| `when` | No | `"always"`(기본값)인 경우 모니터는 세션 시작 및 플러그인 다시 로드 시 시작됩니다. `"on-skill-invoke:<skill>"`인 경우 해당 스킬이 처음 실행될 때 시작됩니다 |

357 

358이 인라인 배열은 `deploy` 스킬이 처음 실행될 때 시작되는 하나의 모니터를 선언합니다:

359 

360```json theme={null}

361{

362 "experimental": {

363 "monitors": [

364 {

365 "name": "deploy-status",

366 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/poll-deploy.sh",

367 "description": "Deployment status changes",

368 "when": "on-skill-invoke:deploy"

369 }

370 ]

371 }

372}

373```

374 

375모니터 `command`는 `${user_config.*}`를 참조할 수 없습니다. [셸을 통해 실행되는 필드](#fields-that-run-through-a-shell)를 참조하세요.

376 

377<h2 id="path-rules">

378 경로 규칙

379</h2>

380 

381매니페스트의 모든 컴포넌트 경로는 플러그인 루트에 상대적이며 `./`로 시작해야 합니다. `commands/foo.md`와 같은 경로는 유효성 검사에 실패합니다. `skills` 및 `mcpServers`는 각각 해당 규칙 외부의 한 형식을 허용합니다:

382 

383* **`skills`**: 또한 `"."`를 허용합니다. `"."`와 `"./"`는 모두 플러그인 루트를 나타냅니다. v2.1.221 이전에는 `"."`가 매니페스트 유효성 검사에 실패했으므로 플러그인이 이전 버전에서 로드되어야 할 때 `"./"`를 사용하세요

384* **`mcpServers`**: 또한 `https://` 번들 URL을 허용합니다

385 

386<h3 id="containment-and-existence">

387 포함 및 존재

388</h3>

389 

390모든 컴포넌트 경로는 플러그인 루트 내부로 해결되어야 하며 존재해야 합니다. `claude plugin validate`는 `outputStyles`, `lspServers`, `monitors` 또는 `themes` 경로를 검사하지 않으므로 이러한 필드의 잘못된 경로는 플러그인이 로드될 때만 실패합니다:

391 

392* **포함**: 플러그인 루트 외부로 해결되는 경로는 로드되지 않으며 `/plugin` **Errors** 탭에 `<component> path escapes plugin directory: <path>`가 표시됩니다. `..`를 포함하는 경로가 일반적인 경우이며 `claude plugin validate`는 이를 `Path contains ".." which could be a path traversal attempt`로 보고합니다

393* **존재**: 존재하지 않는 경로는 로드되지 않으며 `/plugin` **Errors** 탭에 `<component> path not found: <path>`가 표시됩니다. `claude plugin validate`는 이를 `Path not found`로 보고합니다

394 

395<h3 id="how-each-key-combines-with-its-default-location">

396 각 키가 기본 위치와 결합되는 방식

397</h3>

398 

399각 컴포넌트 키는 기본 위치를 대체하거나, 추가하거나, 병합합니다:

400 

401* **기본값 대체**: `commands`, `agents`, `outputStyles`, `workflows`, `experimental.themes`, `experimental.monitors`. `commands`를 설정하면 기본 `commands/` 디렉토리가 스캔되지 않습니다. 기본값을 유지하고 더 추가하려면 명시적으로 나열하세요: `"commands": ["./commands/", "./extras/"]`

402* **기본값에 추가**: `skills`. `skills/` 디렉토리는 여전히 스캔되며 나열된 디렉토리는 함께 로드됩니다

403* **병합**: `hooks`, `mcpServers`, `lspServers`. 기본 파일이 먼저 로드되고 매니페스트가 선언한 것이 병합됩니다. [컴포넌트 경로 형식](#component-path-forms)에서 설명한 대로

404 

405플러그인에 `commands/`와 같은 기본 폴더가 있고 이를 대체하는 매니페스트 키도 설정하면 Claude Code는 매니페스트 경로를 로드하고 폴더는 로드하지 않습니다. `claude plugin list` 및 `/plugin` 인터페이스는 경고 `Default <folder>/ folder is ignored because the manifest sets "<key>"`를 표시합니다.

406 

407경고를 피하려면 키를 해당 폴더 내의 경로로 설정하세요: `"commands": ["./commands/deploy.md"]`는 기본 폴더의 파일을 지정하고 경고를 생성하지 않습니다.

408 

409<h2 id="user-configuration">

410 사용자 구성

411</h2>

412 

413`userConfig`는 플러그인이 활성화될 때 Claude Code가 사용자에게 요청하는 값을 선언하므로 사용자는 `settings.json`을 직접 편집하지 않습니다.

414 

415키는 문자, 숫자 및 밑줄로 만든 식별자이며 숫자로 시작할 수 없습니다.

416 

417각 값은 다음 필드가 있는 엄격한 객체입니다. 알 수 없는 키는 유효성 검사에 실패합니다.

418 

419| 필드 | 필수 | 설명 |

420| :------------ | :-- | :---------------------------------------------------------------------------------------------------------------------------------------- |

421| `type` | Yes | `string`, `number`, `boolean`, `directory` 또는 `file` 중 하나 |

422| `title` | Yes | 구성 대화 상자에 표시되는 레이블 |

423| `description` | Yes | 필드 아래에 표시되는 도움말 텍스트 |

424| `required` | No | `true`인 경우 구성 대화 상자는 빈 값을 허용하지 않습니다 |

425| `default` | No | 사용자가 아무것도 제공하지 않을 때 사용되는 값: 문자열, 숫자, 부울 또는 문자열 배열 |

426| `options` | No | `string`의 경우 필드가 허용하는 값, `/config`에서 선택기로 표시됩니다. [필드를 고정 옵션으로 제한](#limit-a-field-to-fixed-options)을 참조하세요. Claude Code v2.1.271 이상이 필요합니다 |

427| `multiple` | No | `string`의 경우 문자열 배열을 허용합니다 |

428| `sensitive` | No | `true`인 경우 입력을 마스크하고 `settings.json` 대신 보안 저장소에 값을 저장합니다 |

429| `min` / `max` | No | `number`의 범위 |

430 

431각 활성화된 플러그인의 각 옵션은 `/config` 패널의 행으로도 나타나며, `sensitive` 옵션 및 `multiple` 목록은 제외됩니다. `/config` 행에는 Claude Code v2.1.269 이상이 필요합니다.

432 

433이 `userConfig`는 엔드포인트와 마스크된 토큰을 선언합니다:

434 

435```json theme={null}

436{

437 "userConfig": {

438 "api_endpoint": {

439 "type": "string",

440 "title": "API endpoint",

441 "description": "Your team's API endpoint"

442 },

443 "api_token": {

444 "type": "string",

445 "title": "API token",

446 "description": "API authentication token",

447 "sensitive": true

448 }

449 }

450}

451```

452 

453<h3 id="limit-a-field-to-fixed-options">

454 필드를 고정 옵션으로 제한

455</h3>

456 

457`userConfig` 필드에 `options`를 설정하여 사용자가 고정 목록에서 값을 선택하도록 합니다.

458 

459`tone` 필드를 세 가지 옵션으로 제한하려면 `options`에 나열하고 `default`를 그 중 하나로 설정하세요:

460 

461```json theme={null}

462{

463 "userConfig": {

464 "tone": {

465 "type": "string",

466 "title": "Tone",

467 "description": "Voice for generated replies",

468 "options": ["neutral", "warm", "formal"],

469 "default": "neutral"

470 }

471 }

472}

473```

474 

475모든 필드에 `options`를 선언하면 Claude Code v2.1.271 이전 버전의 사용자는 플러그인을 로드할 수 없습니다.

476 

477`options`는 `multiple` 또는 `sensitive`가 아닌 `string` 필드에 적용됩니다. `default`를 나열된 값 중 하나로 설정하거나 사용자가 하나를 선택하도록 `required: true`를 설정하세요. 각 옵션은 1\~64자의 일반 레이블이며 셸에서 실행하는 `claude plugin validate`는 거부하는 다른 항목을 보고합니다. `options`가 이러한 규칙을 위반하는 플러그인은 로드되지 않습니다.

478 

479<h3 id="where-values-are-stored">

480 값이 저장되는 위치

481</h3>

482 

483민감하지 않은 값은 사용자의 `settings.json`의 [`pluginConfigs`](/docs/ko/settings-reference#pluginconfigs) 아래에 저장됩니다. 민감한 값은 플랫폼의 보안 자격 증명 저장소로 이동합니다. [설정 페이지](/docs/ko/settings-reference#pluginconfigs)는 `pluginConfigs`가 읽혀지는 설정 파일을 나열합니다.

484 

485<h3 id="reference-a-saved-value">

486 저장된 값 참조

487</h3>

488 

489플러그인이 필요한 곳에서 저장된 값을 참조하세요. 두 가지 형식 중 하나:

490 

491* **`${user_config.KEY}`**: MCP 서버 구성, LSP 서버 구성, [exec-form](/docs/ko/hooks#exec-form-and-shell-form) 훅 `args` 및 스킬과 에이전트 콘텐츠에서 대체됩니다. 스킬과 에이전트 콘텐츠에서는 민감하지 않은 값만 대체되며 민감한 값은 자리 표시자가 됩니다

492* **`CLAUDE_PLUGIN_OPTION_<KEY>`**: 모든 옵션에 대해 훅 프로세스로 내보내집니다. `<KEY>`는 대문자입니다. 셸 형식 훅은 `api_token`에 대해 `$CLAUDE_PLUGIN_OPTION_API_TOKEN`을 읽습니다

493 

494<h3 id="fields-that-run-through-a-shell">

495 셸을 통해 실행되는 필드

496</h3>

497 

498셸 형식 훅 명령, 모니터 명령 및 MCP [`headersHelper`](/docs/ko/mcp#use-dynamic-headers-for-custom-authentication)는 `${user_config.*}`를 거부합니다. 이러한 필드 중 하나에서 이를 참조하는 컴포넌트는 실행되지 않고 [오류](/docs/ko/errors#plugin-command-references-user-config)로 실패합니다. 필드의 값이 대체된 값을 다시 구문 분석할 셸에 전달되기 때문입니다.

499 

500테이블은 값이 이러한 각 필드에 도달할 수 있는 방법을 보여줍니다.

501 

502| 필드 | 값이 도달할 수 있는 방법 |

503| :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |

504| 셸 형식 훅 명령 | [exec form](/docs/ko/hooks#exec-form-and-shell-form)을 `args`와 함께 사용하거나 훅의 환경에서 `CLAUDE_PLUGIN_OPTION_<KEY>`를 읽습니다 |

505| 모니터 명령 | Claude Code를 통하지 않습니다. 모니터 프로세스는 `CLAUDE_PLUGIN_OPTION_<KEY>`를 받지 않으므로 모니터 스크립트가 값을 직접 얻어야 합니다 |

506| MCP `headersHelper` | Claude Code를 통하지 않습니다. 헬퍼의 환경은 `CLAUDE_PLUGIN_ROOT`, `CLAUDE_CODE_MCP_SERVER_NAME` 및 `CLAUDE_CODE_MCP_SERVER_URL`을 전달하지만 옵션 값은 없으므로 헬퍼 스크립트가 값을 직접 얻어야 합니다 |

507 

508<h2 id="channels">

509 채널

510</h2>

511 

512`channels`는 플러그인이 제공하는 메시지 채널(예: 채팅 앱으로의 브리지)을 선언합니다. 하나를 선언하면 Claude Code는 플러그인이 활성화될 때 채널의 구성을 요청할 수 있습니다. 서버가 메시지를 주입하는 방식은 [채널 참조](/docs/ko/channels-reference#package-as-a-plugin)를 참조하세요.

513 

514각 항목은 플러그인의 MCP 서버 중 하나에 바인딩된 엄격한 객체이며 다음 필드가 있습니다:

515 

516| 필드 | 필수 | 설명 |

517| :------------ | :-- | :-------------------------------------------------------------------------------------------------------- |

518| `server` | Yes | 채널이 바인딩되는 이 플러그인의 `mcpServers`의 MCP 서버 키 |

519| `displayName` | No | 구성 대화 상자 제목에 표시되는 이름. 기본값은 서버 이름입니다 |

520| `userConfig` | No | 요청할 옵션, [최상위 `userConfig`](#user-configuration)와 동일한 형식. 저장된 값은 서버의 `env`의 `${user_config.KEY}` 참조로 대체됩니다 |

521 

522이 매니페스트는 채널을 플러그인의 `telegram` MCP 서버에 바인딩하고 서버의 `env`로 대체되는 봇 토큰을 요청합니다:

523 

524```json theme={null}

525{

526 "mcpServers": {

527 "telegram": {

528 "command": "node",

529 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],

530 "env": { "BOT_TOKEN": "${user_config.bot_token}" }

531 }

532 },

533 "channels": [

534 {

535 "server": "telegram",

536 "displayName": "Telegram",

537 "userConfig": {

538 "bot_token": {

539 "type": "string",

540 "title": "Bot token",

541 "description": "Telegram bot token",

542 "sensitive": true

543 }

544 }

545 }

546 ]

547}

548```

549 

550<h2 id="environment-variables">

551 환경 변수

552</h2>

553 

554Claude Code는 플러그인 컴포넌트에 세 가지 경로 변수를 제공합니다. [각 변수가 해결되는 위치](#where-each-variable-resolves)에 나열된 필드에서 `${NAME}`으로 참조하고 이를 받는 프로세스에서 환경 변수로 읽으세요.

555 

556| 변수 | 해결되는 대상 | 사용 목적 |

557| :---------------------- | :---------------------------------------------------------------------------------------------------------------------- | :-------------------------------------- |

558| `${CLAUDE_PLUGIN_ROOT}` | 플러그인의 설치된 버전의 절대 경로 | 플러그인과 함께 번들된 스크립트, 바이너리 및 구성 파일 |

559| `${CLAUDE_PLUGIN_DATA}` | `~/.claude/plugins/data/<id>/`, 첫 참조 시 생성되고 플러그인 업데이트 전체에서 유지됨. `<id>`는 문자, 숫자, `_` 또는 `-` 이외의 모든 문자가 `-`로 대체된 플러그인 식별자 | `node_modules`와 같은 설치된 의존성, 생성된 코드 및 캐시 |

560| `${CLAUDE_PROJECT_DIR}` | 프로젝트 루트 | 프로젝트 로컬 스크립트 및 구성 파일 |

561 

562`${CLAUDE_PLUGIN_ROOT}`는 플러그인이 업데이트될 때 변경되므로 상태를 거기에 쓰지 마세요. 루트가 이동하는 위치와 이전 디렉토리가 정리되는 시기는 [로딩 페이지](/docs/ko/plugins/loading)를 참조하세요.

563 

564마지막으로 플러그인을 설치한 곳에서 플러그인을 제거하면 [`--keep-data`](/docs/ko/plugins/cli-reference)를 전달하지 않는 한 `${CLAUDE_PLUGIN_DATA}` 디렉토리가 삭제됩니다.

565 

566<h3 id="where-each-variable-resolves">

567 각 변수가 해결되는 위치

568</h3>

569 

570각 플러그인 컴포넌트에서 `${...}` 참조는 특정 필드에서 인라인으로 해결되며 일부 컴포넌트는 또한 프로세스 환경에서 변수를 받습니다:

571 

572| 플러그인 컴포넌트 | `${...}`이 해결되는 필드 | 프로세스로 내보내짐 |

573| :------------------------- | :------------------------------------------ | :---------------------------------------------------------------------------------------------- |

574| 훅 명령 | `command` 및 `args`의 어디든지 | `CLAUDE_PLUGIN_ROOT`, `CLAUDE_PLUGIN_DATA`, `CLAUDE_PROJECT_DIR` 및 `CLAUDE_PLUGIN_OPTION_<KEY>` |

575| 모니터 명령 | `command`의 어디든지 | 내보내지지 않음 |

576| MCP `stdio` 서버 | `command`, `args`, `env` | `CLAUDE_PLUGIN_ROOT`, `CLAUDE_PLUGIN_DATA` |

577| MCP `http`, `sse`, `ws` 서버 | `url`, `headers`, `headersHelper` | 해당 없음 |

578| LSP 서버 | `command`, `args`, `env`, `workspaceFolder` | `CLAUDE_PLUGIN_ROOT`, `CLAUDE_PLUGIN_DATA`, `CLAUDE_PROJECT_DIR` |

579| 스킬, 명령 및 에이전트 콘텐츠 | Markdown 본문의 어디든지 | 해당 없음 |

580 

581변수는 Bash 도구를 통해 Claude가 실행하는 명령의 환경에 없으며, 주 세션이나 서브에이전트에도 없습니다. 스킬, 명령 및 에이전트 콘텐츠에서 Markdown 본문에 `${...}` 참조를 작성하고 Claude Code는 콘텐츠를 로드할 때 경로를 인라인으로 대체합니다.

582 

583<h3 id="quoting-and-path-separators">

584 인용 및 경로 구분자

585</h3>

586 

587각 대체된 경로를 단일 인수로 유지하세요:

588 

589* **훅 명령**: [exec form](/docs/ko/hooks#exec-form-and-shell-form)을 `args`와 함께 사용하여 각 경로가 인용 없이 하나의 인수가 되도록 합니다

590* **셸 형식 훅 및 모니터 명령**: 변수를 큰따옴표로 감싸서 공백이 있는 경로가 한 단어로 유지되도록 합니다

591 

592이 셸 형식 훅은 플러그인과 함께 번들된 스크립트를 실행합니다:

593 

594```json theme={null}

595{

596 "hooks": {

597 "PostToolUse": [

598 {

599 "hooks": [

600 {

601 "type": "command",

602 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/process.sh"

603 }

604 ]

605 }

606 ]

607 }

608}

609```

610 

611Windows에서 대체된 경로는 앞으로 슬래시를 사용하므로 셸이 백슬래시를 이스케이프로 읽지 않습니다.

612 

613<h2 id="standard-layout">

614 표준 레이아웃

615</h2>

616 

617각 컴포넌트 타입은 매니페스트가 다른 곳을 가리키지 않을 때 사용되는 플러그인 루트 아래의 기본 위치를 가집니다.

618 

619| 컴포넌트 | 기본 위치 | 내용 |

620| :----- | :--------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

621| 매니페스트 | `.claude-plugin/plugin.json` | 플러그인 메타데이터 및 구성. 선택 사항 |

622| 스킬 | `skills/` | 스킬당 하나의 `<name>/SKILL.md`. 루트에 `SKILL.md`가 있고 `skills/`가 없으며 `skills` 키가 없는 플러그인은 단일 스킬로 로드됩니다 |

623| 명령 | `commands/` | 평면 Markdown 명령 파일. 새 플러그인의 경우 `skills/`를 선호합니다 |

624| 에이전트 | `agents/` | 에이전트 Markdown 파일. 하위 폴더는 [에이전트 이름](/docs/ko/plugins/components#agents)의 일부입니다 |

625| 훅 | `hooks/hooks.json` | 훅 구성 |

626| MCP 서버 | `.mcp.json` | MCP 서버 정의 |

627| LSP 서버 | `.lsp.json` | LSP 서버 구성 |

628| 출력 스타일 | `output-styles/` | 출력 스타일 Markdown 파일 |

629| 워크플로우 | `workflows/` | 워크플로우 `.js` 파일 |

630| 테마 | `themes/` | 테마 JSON 파일 |

631| 모니터 | `monitors/monitors.json` | 모니터 배열 |

632| 실행 파일 | `bin/` | 여기의 파일은 플러그인이 활성화된 동안 Bash 도구의 `PATH`에 있으므로 Claude는 이들을 베어 명령으로 실행합니다. claude.ai 및 Cowork는 이 디렉토리가 있는 플러그인을 설치하지 않습니다. 여기에는 [claude.ai 조직 설정을 통해 배포](/docs/ko/plugins/host-marketplace#distribute-through-organization-settings)하는 플러그인도 포함됩니다 |

633| 설정 | `settings.json` | 플러그인이 활성화된 동안 적용되는 `agent` 및 `subagentStatusLine` 기본값 |

634 

635모든 기본 위치를 사용하는 플러그인과 훅이 호출하는 `scripts/` 폴더는 다음과 같이 배치됩니다:

636 

637```text theme={null}

638deploy-tools/

639├── .claude-plugin/

640│ └── plugin.json

641├── skills/

642│ └── deploy/

643│ └── SKILL.md

644├── commands/

645│ └── status.md

646├── agents/

647│ └── reviewer.md

648├── hooks/

649│ └── hooks.json

650├── monitors/

651│ └── monitors.json

652├── output-styles/

653│ └── terse.md

654├── themes/

655│ └── dracula.json

656├── workflows/

657│ └── release-audit.js

658├── bin/

659│ └── deploy-tool

660├── scripts/

661│ └── format.sh

662├── settings.json

663├── .mcp.json

664└── .lsp.json

665```

666 

667이 레이아웃을 클릭하고 각 파일이 수행하는 작업을 읽으려면 [플러그인 탐색기](/docs/ko/plugins/components#explore-the-plugin-directory)를 열으세요.

668 

669플러그인 루트의 `CLAUDE.md`는 컨텍스트로 로드되지 않으며 `claude plugin validate`는 하나를 찾으면 경고합니다. Claude의 컨텍스트에 로드되는 지침을 포함하려면 스킬에 배치하세요.

670 

671<h2 id="marketplace-entries-and-the-manifest">

672 마켓플레이스 항목 및 매니페스트

673</h2>

674 

675[마켓플레이스 항목](/docs/ko/plugins/marketplace-reference)은 [자신의 필드](/docs/ko/plugins/marketplace-reference#plugin-entries)와 함께 이 페이지의 모든 필드를 허용합니다. `strict` 포함.

676 

677`strict` 필드는 항목이 자신의 `plugin.json`을 가진 플러그인에 컴포넌트를 추가할 수 있는지 여부를 결정합니다. 기본값은 `true`입니다.

678 

679<h3 id="how-entry-fields-combine-with-plugin-json">

680 항목 필드가 `plugin.json`과 결합되는 방식

681</h3>

682 

683항목은 매니페스트로 제공되거나 컴포넌트를 추가하거나 충돌합니다:

684 

685* **`plugin.json` 없음**: 항목은 `strict`에 관계없이 매니페스트입니다. 항목 `hooks`는 인라인 객체 형식으로만 로드됩니다. 파일 경로 또는 배열의 경우 `/plugin` **Errors** 탭에 `not yet supported in a marketplace entry` 오류가 표시됩니다

686* **`plugin.json` 있음, `strict` 설정 안 됨 또는 `true`**: Claude Code는 매니페스트를 로드하고 항목의 `commands`, `agents`, `skills`, `outputStyles` 및 `themes`를 추가합니다. `hooks`의 경우 항목의 이벤트 매처는 매니페스트의 동일한 이벤트 매처를 대체하고 매니페스트만 선언하는 이벤트는 자신의 것을 유지합니다

687* **`plugin.json` 있음, `strict: false`**: `commands`, `agents`, `skills`, `hooks`, `outputStyles` 또는 `themes` 중 하나를 선언하는 항목은 충돌이며 플러그인은 `Plugin <name> has conflicting manifests`로 로드되지 않습니다

688 

689[`source`가 마켓플레이스 루트인 마켓플레이스 항목](/docs/ko/plugins/marketplace-reference)이 특정 `skills` 하위 디렉토리를 나열하면 해당 하위 디렉토리만 로드되고 플러그인의 기본 `skills/` 디렉토리는 스캔되지 않습니다. 매니페스트의 `skills` 키는 대신 [기본값에 추가](#how-each-key-combines-with-its-default-location)합니다.

690 

691<h3 id="metadata-precedence">

692 메타데이터 우선순위

693</h3>

694 

695일부 메타데이터 필드는 `strict`에 관계없이 고정 우선순위를 가집니다:

696 

697* **`defaultEnabled` 및 표시 필드**: 항목의 `defaultEnabled` 및 [표시 필드](/docs/ko/plugins/marketplace-reference#entry-and-plugin-json)(`displayName` 등)는 매니페스트의 것을 재정의합니다

698* **`version`**: 매니페스트의 `version`은 항목의 것을 재정의합니다

699* **`name`**: 항목이 플러그인을 매니페스트와 다른 `name`으로 나열할 때 `enabledPlugins`는 항목 이름을 사용하고 컴포넌트는 매니페스트 이름 아래에 네임스페이스됩니다

700 

701전체 우선순위 테이블은 [엄격한 모드](/docs/ko/plugins/marketplace-reference)를 참조하세요.

702 

703<h2 id="next-steps">

704 다음 단계

705</h2>

706 

707* [플러그인에 컴포넌트 추가](/docs/ko/plugins/components): 각 컴포넌트가 런타임에 수행하는 작업, 유효성 검사 예제 포함

708* [마켓플레이스 참조](/docs/ko/plugins/marketplace-reference): 마켓플레이스가 플러그인에 대해 설정할 수 있는 항목 필드

709* [플러그인 명령 참조](/docs/ko/plugins/cli-reference#plugin-validate): `claude plugin validate` 플래그 및 출력

710* [플러그인 문제 해결](/docs/ko/plugins/troubleshooting#claude-plugin-validate-reports-errors): 각 유효성 검사 메시지와 해결 방법

Details

1> ## Documentation Index

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

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

4 

5# 마켓플레이스 참조

6 

7> marketplace.json 필드, 플러그인 항목, 플러그인 및 마켓플레이스 소스 객체의 완전한 참조와 각각이 유효한 위치입니다.

8 

9`marketplace.json`은 플러그인 마켓플레이스를 정의하는 파일입니다. 마켓플레이스의 이름, 소유자, 그리고 플러그인당 하나의 항목을 포함합니다. 각 항목의 플러그인 소스는 Claude Code가 해당 플러그인을 어디서 가져오는지를 나타냅니다.

10 

11마켓플레이스 소스는 Claude Code가 마켓플레이스 파일 자체를 어디서 가져오는지를 나타내는 별도의 객체입니다. 설정에서 작성하거나, `claude plugin marketplace add`를 실행할 때 Claude Code가 빌드합니다.

12 

13이 참조는 정확한 필드 이름이나 값이 필요한 마켓플레이스 유지보수자와 [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces), [`strictKnownMarketplaces`](/docs/ko/settings-reference#strictknownmarketplaces), [`blockedMarketplaces`](/docs/ko/plugins/org#restrict-what-users-can-install)에서 어떤 `source` 값이 유효한지 알아야 하는 관리자를 위한 것입니다.

14 

15<Note>

16 다음 경우는 다른 페이지에서 다룹니다:

17 

18 * **마켓플레이스 구축 또는 호스팅**: [마켓플레이스 만들기](/docs/ko/plugins/create-marketplace) 및 [마켓플레이스 호스팅 및 유지보수](/docs/ko/plugins/host-marketplace) 참조

19 * **허용 목록 및 차단 목록 레시피**: [조직의 플러그인 관리](/docs/ko/plugins/org) 참조

20</Note>

21 

22작성하거나 읽고 있는 항목에 대한 섹션을 찾으세요:

23 

24* **마켓플레이스 파일**: [최상위 필드](#top-level-fields) 및 [플러그인 항목](#plugin-entries)

25* **항목의 `source`**: [플러그인 소스](#plugin-sources)

26* **설정의 `source` 객체**: [마켓플레이스 소스](#marketplace-sources)

27* **[`claude plugin validate <path>`](/docs/ko/plugins/cli-reference)의 출력**: [검증 메시지](#validation-messages) - 각 메시지를 이름이 지정된 필드에 매핑합니다

28 

29<h2 id="marketplace-file">

30 마켓플레이스 파일

31</h2>

32 

33마켓플레이스 파일을 마켓플레이스 디렉토리의 `.claude-plugin/marketplace.json`에 저장합니다. 파일을 저장소의 다른 위치에 보관하는 경우, 사용자는 `source`에 `path`를 설정하여 [`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces)에서 마켓플레이스를 선언해야 합니다. `claude plugin marketplace add`에는 이에 대한 옵션이 없기 때문입니다.

34 

35`.claude-plugin/`을 포함하는 디렉토리를 마켓플레이스 루트라고 하며, 모든 상대 플러그인 소스는 `.claude-plugin/`이 아닌 마켓플레이스 루트에서 확인됩니다.

36 

37각 사용자는 `name`당 하나의 마켓플레이스를 등록하므로, 사용자는 동시에 같은 이름의 두 마켓플레이스를 등록할 수 없습니다.

38 

39Claude Code는 알 수 없는 최상위 키나 플러그인 항목 키를 거부하지 않고 무시하므로, 오타가 조용히 로드됩니다. `claude plugin validate`는 각 알 수 없는 키를 경고로 보고합니다.

40 

41<h3 id="reserved-names">

42 예약된 이름

43</h3>

44 

45마켓플레이스에 다음 이름을 지정할 수 없습니다:

46 

47* **공식 마켓플레이스 이름**: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `life-sciences`, `knowledge-work-plugins`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins`, `claude-tag-plugins`. `github.com/anthropics/` 아래의 `github` 또는 `git` [마켓플레이스 소스](#marketplace-sources)에서 오는 마켓플레이스가 아닌 한 예약됨.

48* **커뮤니티 마켓플레이스 이름**: `claude-community`, `claude-plugins-community`, `healthcare`. 공식 이름과 동일한 규칙 아래 예약됨.

49* **플러그인 디렉토리 이름**: `anthropic-plugin-directory`, `claude-plugin-directory`. 공식 이름과 동일한 규칙 아래 예약됨.

50* **공식 마켓플레이스를 사칭하는 이름**: `official-claude-plugins` 또는 `claude-plugins-v2`와 같은 이름, 그리고 비ASCII 문자를 포함하는 모든 이름. 오류는 `Marketplace name impersonates an official Anthropic/Claude marketplace`입니다. 이름의 제어 또는 양방향 서식 문자도 `Marketplace name cannot contain control or bidirectional-formatting characters`를 보고합니다.

51* <span id="reserved-name-spellings" />**예약된 이름의 다른 철자**: 예약된 이름과 후행 점으로만 다르거나 하이픈 대신 다른 기호를 사용하는 이름이므로 `claude.code.plugins`는 `claude-code-plugins`로 계산됩니다. `claude plugin validate`는 이러한 이름을 수락합니다. 마켓플레이스 추가는 [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/ko/errors#marketplace-name-is-another-spelling-of-a-reserved-name)으로 실패하고, 하나 아래에 등록된 마켓플레이스는 로드를 중지합니다. 이 확인에는 Claude Code v2.1.280 이상이 필요합니다.

52* **Claude Code가 마켓플레이스에서 오지 않는 플러그인에 사용하는 이름**: [`--plugin-dir`](/docs/ko/cli-reference)로 로드된 플러그인의 경우 `inline`, 기본 제공 플러그인의 경우 `builtin`, [`.claude/skills/`](/docs/ko/skills)에서 자동 로드되는 플러그인의 경우 `skills-dir`, claude.ai 계정에서 동기화된 플러그인의 경우 `synced`. `claude-plugin-test`도 예약됩니다. `skills-dir`은 `{"source": "skills-dir"}`로도 `strictKnownMarketplaces` 및 `blockedMarketplaces`에 나타나며, [소스 값이 정책 목록에서만 유효함](#source-values-valid-only-in-policy-lists)에서 설명합니다.

53* **`npm`, `pip`, `uv`, `cargo`, `github`, `gh`**: 모든 대소문자로 예약됨. 이 확인에는 Claude Code v2.1.275 이상이 필요합니다.

54* **`claudeai-`로 시작하는 이름**: claude.ai에서 호스팅되는 마켓플레이스를 위해 예약됨. `claude plugin marketplace add`는 `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`로 이를 사용하는 다른 마켓플레이스를 거부합니다.

55 

56<h2 id="top-level-fields">

57 최상위 필드

58</h2>

59 

60표는 Claude Code가 `marketplace.json`에서 읽는 모든 키를 나열합니다. `name`, `owner`, `plugins`는 필수입니다.

61 

62| 필드 | 유형 | 설명 |

63| :----------------------------------------- | :--------------- | :--------------------------------------------------------------------------------------------------------------------------------------------- |

64| `name` | string | 마켓플레이스 식별자. 공백, 제어 문자 또는 양방향 서식 문자 없음, `/` 또는 `\` 없음, `..` 없음, `.` 아님. [예약된 이름](#reserved-names) 참조. 사용자는 플러그인을 설치할 때 `@` 뒤에 입력합니다 |

65| `owner` | object | 유지보수자 정보. `name`은 필수이고 `email` 및 `url`은 선택사항입니다 |

66| `plugins` | array | [플러그인 항목](#plugin-entries). 각 항목은 독립적으로 검증되므로 하나의 잘못된 항목이 마켓플레이스를 실패하게 하지 않습니다 |

67| `$schema` | string | 편집기 자동 완성을 위한 JSON Schema URL. 로드 시간에 무시됨 |

68| `description` | string | 사용자에게 표시되는 마켓플레이스 설명. `claude plugin validate`는 누락되면 경고합니다 |

69| `version` | string | 마켓플레이스 매니페스트 버전 |

70| `metadata.description`, `metadata.version` | string | `description` 및 `version`의 대체 위치 |

71| `metadata.pluginRoot` | string | 베어 플러그인 소스 이름이 확인되는 디렉토리. [상대 경로 플러그인 소스](#relative-path-plugin-source) 참조. Claude Code v2.1.239 이상 필요 |

72| `forceRemoveDeletedPlugins` | boolean | `true`일 때, `plugins`에서 제거한 플러그인이 사용자 머신에서 제거됩니다. [마켓플레이스 호스팅 및 유지보수](/docs/ko/plugins/host-marketplace) 참조 |

73| `allowCrossMarketplaceDependenciesOn` | array of strings | 이 마켓플레이스의 플러그인의 종속성으로 설치될 수 있는 플러그인의 마켓플레이스 이름. 플러그인을 설치할 때, 해당 플러그인의 자체 마켓플레이스의 목록만 전체 종속성 체인에 적용됩니다. [플러그인 종속성](/docs/ko/plugins/dependencies) 참조 |

74| `renames` | object | 이전 플러그인 `name`에서 현재 이름으로의 맵, 또는 제거한 플러그인의 경우 `null`. Claude Code v2.1.193 이상 필요. [마켓플레이스 호스팅 및 유지보수](/docs/ko/plugins/host-marketplace) 참조 |

75 

76<h2 id="plugin-entries">

77 플러그인 항목

78</h2>

79 

80`marketplace.json`의 최상위 `plugins` 배열의 각 객체는 플러그인의 이름을 지정하고 가져올 위치를 나타냅니다. `name` 및 `source`는 필수입니다.

81 

82항목은 또한 `description`, `version`, `author`, `commands`, `hooks`와 같은 모든 [`plugin.json` 필드](/docs/ko/plugins/manifest-reference)를 수락합니다. 이러한 필드가 적용되는 경우는 [항목이 plugin.json과 결합되는 방식](#entry-and-plugin-json)을 참조하세요.

83 

84표는 항목의 자체 필드와 항목에서 의미가 변경되는 매니페스트 필드를 나열합니다.

85 

86| 필드 | 유형 | 설명 |

87| :--------------- | :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

88| `name` | string | 공백, 제어 문자 또는 양방향 서식 문자가 없는 플러그인 식별자. 사용자는 플러그인의 자체 `plugin.json`이 다른 `name`을 설정하더라도 설치할 때 `@` 앞에 입력합니다 |

89| `source` | string or object | 플러그인을 가져올 위치. [플러그인 소스](#plugin-sources) 참조 |

90| `description` | string | [`/plugin`](/docs/ko/plugins/install) 목록 및 세부 정보에 표시됨 |

91| `version` | string | 플러그인의 버전 문자열. `plugin.json`도 `version`을 설정할 때, `plugin.json`이 우선이고 `claude plugin validate`가 경고합니다. [플러그인 로딩 참조](/docs/ko/plugins/loading) 참조 |

92| `category` | string | 카탈로그를 구성하기 위한 자유 형식 카테고리 |

93| `tags` | array of strings | 검색을 위한 자유 형식 태그 |

94| `strict` | boolean | 기본값 `true`. `plugin.json`이 플러그인의 구성 요소에 대한 확정적 소스인지 여부. [엄격 모드](#strict-mode) 참조 |

95| `relevance` | object | Claude Code에 플러그인을 제안할 시기를 알려주는 신호. [조직의 플러그인 권장](/docs/ko/plugins/relevance) 참조 |

96| `dependencies` | array | 이 플러그인이 작동하기 위해 활성화되어야 하는 플러그인. 각 항목은 `"name"`, `"name@marketplace"`, 또는 객체입니다. [플러그인 종속성](/docs/ko/plugins/dependencies) 참조 |

97| `defaultEnabled` | boolean | 기본값 `true`. 사용자가 [`enabledPlugins`](/docs/ko/settings-reference#enabledplugins)에서 설정하지 않았을 때 플러그인이 활성화되어 시작되는지 여부. 항목 값이 `plugin.json`보다 우선합니다 |

98| `displayName` | string | UI에 표시되는 사람이 읽을 수 있는 이름. 항목도 플러그인의 `plugin.json`도 설정하지 않으면, 사용자는 플러그인의 `name`을 봅니다 |

99| `metadata` | object | 자신의 필드를 위한 자유 형식 객체. Claude Code는 이를 읽지 않습니다. Claude Code v2.1.222 이상 필요 |

100| `headers` | object | Claude Code가 이 항목의 [아카이브](#archive-plugin-source)를 다운로드할 때 보내는 HTTP 헤더. 여기에 설정된 헤더는 마켓플레이스 소스의 [`headers`](#fields-by-type)에서 같은 이름의 헤더를 대체합니다. Claude Code v2.1.238 이상 필요 |

101| `headersHelper` | string | 이 항목의 아카이브 다운로드 헤더를 하나의 JSON 객체로 인쇄하는 명령, 만료되는 자격 증명의 경우. 항목은 또한 [`"strict": false`](#strict-mode)를 설정해야 합니다. Claude Code v2.1.238 이상 필요. [아카이브 다운로드 인증](/docs/ko/plugins/host-marketplace#authenticate-archive-downloads) 참조 |

102 

103<h3 id="entry-and-plugin-json">

104 항목이 plugin.json과 결합되는 방식

105</h3>

106 

107항목의 필드는 자체 `.claude-plugin/plugin.json`을 가진 가져온 플러그인과 그렇지 않은 플러그인에 다르게 적용됩니다:

108 

109* **`plugin.json` 없음**: 항목은 `strict`에 관계없이 매니페스트입니다. [`mcpServers`, `lspServers`, `userConfig`, `channels`](/docs/ko/plugins/manifest-reference)를 포함한 모든 매니페스트 필드가 항목에 적용됩니다.

110* **`plugin.json` 있음**: `plugin.json`이 매니페스트입니다. [엄격 모드](#strict-mode)는 항목의 6개 구성 요소 필드인 `commands`, `agents`, `skills`, `hooks`, `outputStyles`, `themes`를 결합할지 아니면 충돌로 거부할지 결정합니다. 항목 `mcpServers`, `lspServers`, `userConfig`, `channels`는 적용되지 않습니다. `plugin.json`에서 선언하세요.

111 

112<h4 id="hooks-in-an-entry">

113 항목의 훅

114</h4>

115 

116항목 `hooks`를 훅 이벤트 이름을 매처 배열에 매핑하는 인라인 객체로 작성하세요. 파일 경로나 배열을 작성하면, `claude plugin validate`는 통과합니다. 이러한 훅은 실행되지 않으며, Claude Code는 플러그인에 대해 `not yet supported in a marketplace entry` 오류를 보고합니다. 파일 기반 훅을 플러그인의 자체 [`hooks/hooks.json`](/docs/ko/plugins/components) 또는 `plugin.json`에 넣으세요.

117 

118<h4 id="display-fields">

119 표시 필드

120</h4>

121 

122항목과 플러그인의 자체 `plugin.json` 모두 표시 필드 `displayName`, `description`, `author`, `homepage`, `repository`, `license`, `keywords`를 설정할 수 있습니다. 사용자는 설치 전후 플러그인 목록 및 세부 정보에서 이러한 값을 봅니다:

123 

124* 항목에 설정한 필드의 경우, 사용자는 `plugin.json`이 다른 값을 설정하더라도 항목의 값을 봅니다.

125* 항목이 설정하지 않은 필드의 경우, 사용자는 `plugin.json` 값을 봅니다.

126 

127설치 전에, Claude Code는 마켓플레이스 내부에 플러그인 파일이 있는 [상대 경로 소스](#relative-path-plugin-source)를 가진 항목에 대해서만 `plugin.json`을 읽을 수 있습니다. 다른 소스 유형을 가진 항목의 경우, 사용자는 플러그인을 설치할 때까지 항목의 자체 필드만 봅니다.

128 

129<h3 id="strict-mode">

130 엄격 모드

131</h3>

132 

133`strict`는 가져온 플러그인이 자체 `plugin.json`을 가지고 있고 항목도 [구성 요소 필드](#entry-and-plugin-json) 중 하나를 선언할 때 어떤 일이 발생하는지 결정합니다: `commands`, `agents`, `skills`, `hooks`, `outputStyles`, `themes`. `strict: true`(기본값)일 때, Claude Code는 항목의 구성 요소 필드를 `plugin.json`에 추가합니다. `hooks` 제외하고, 그 매처는 매니페스트의 이벤트별 매처를 대체합니다. `strict: false`일 때, 구성 요소 필드를 선언하는 항목은 충돌이며, 플러그인이 로드되지 않습니다. 표는 `strict`, `plugin.json`, 항목의 구성 요소 필드의 각 조합을 보여줍니다.

134 

135| `strict` | `plugin.json` | 항목 구성 요소 필드 | 결과 |

136| :---------- | :------------ | :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

137| any | absent | any | 항목이 매니페스트입니다 |

138| `true`, 기본값 | present | any | `plugin.json`이 권한입니다. Claude Code는 항목의 구성 요소 필드를 추가합니다. `hooks` 제외하고, 그 매처는 [매니페스트의 이벤트별 매처를 대체합니다](/docs/ko/plugins/manifest-reference#how-entry-fields-combine-with-plugin-json) |

139| `false` | present | none | `plugin.json`이 매니페스트입니다. `true`와 동일 |

140| `false` | present | one or more | 충돌. 플러그인이 `Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components`로 로드되지 않습니다 |

141 

142<h2 id="plugin-sources">

143 플러그인 소스

144</h2>

145 

146플러그인 항목의 `source`는 Claude Code가 해당 플러그인을 어디서 가져오는지를 나타냅니다. 상대 경로 문자열이거나 자체 `source` 키가 유형을 지정하는 객체이므로, 항목은 `"source": { "source": "github", "repo": "your-org/formatter" }`와 같은 형태입니다.

147 

148아래 표는 각 플러그인 소스 유형과 해당 필드를 나열합니다.

149 

150| 유형 | 필드 | 참고 |

151| :----------- | :------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- |

152| 상대 경로 | 문자열 자체 | 마켓플레이스 내의 디렉토리로, 마켓플레이스 루트에서 확인됩니다. `./`로 시작해야 하며, [`metadata.pluginRoot`](#relative-path-plugin-source) 아래에 베어 이름을 작성하지 않는 한 그렇습니다. `"."`는 루트 자체를 의미합니다 |

153| `github` | `repo`, `ref`, `sha` | `owner/repo` 형식의 GitHub 저장소 |

154| `url` | `url`, `ref`, `sha` | URL로 지정된 모든 git 저장소 |

155| `git-subdir` | `url`, `path`, `ref`, `sha` | git 저장소의 한 하위 디렉토리로, 스파스 부분 클론으로 가져옵니다 |

156| `npm` | `package`, `version`, `registry` | npm 패키지로, npm 클라이언트로 가져오고 설치 스크립트를 실행하지 않고 압축을 풉니다 |

157| `archive` | `url`, `sha256` | HTTPS를 통한 Zip 아카이브입니다. Claude Code v2.1.224 이상이 필요합니다 |

158| `command` | `command`, `timeout`, `mode` | Claude Code가 사용자의 머신에서 실행하는 명령으로 출력된 디렉토리입니다. Claude Code v2.1.229 이상이 필요합니다 |

159 

160`url`과 `github`이라는 이름은 또한 [마켓플레이스 소스](#marketplace-sources) 유형이기도 하며, 여기서 `url`은 git 저장소가 아닌 `marketplace.json` 파일로의 직접 링크를 의미합니다. `git`은 마켓플레이스 소스로만 존재하고, `npm`은 둘 다로 존재합니다. `git-subdir`, `archive`, `command`는 플러그인 소스로만 존재합니다.

161 

162마켓플레이스 저장소 자체의 하위 디렉토리에 있는 플러그인의 경우 상대 경로를 사용합니다. 다른 저장소의 하위 디렉토리의 경우 `git-subdir`을 사용합니다.

163 

164`github`, `url`, `git-subdir` 소스는 `ref`와 `sha` 필드를 공유합니다:

165 

166* **`ref`**: 브랜치 또는 태그입니다. 저장소의 기본 브랜치로 기본 설정됩니다.

167* **`sha`**: 전체 40자 소문자 커밋 SHA입니다. `ref`와 `sha`를 모두 설정하면 Claude Code는 `sha`를 체크아웃합니다. GitHub, GitLab, Bitbucket을 포함한 대부분의 git 호스트에서 이는 `ref`로 지정된 브랜치 또는 태그가 업스트림에서 삭제되었더라도 커밋이 여전히 저장소에서 도달 가능한 한 설치가 성공함을 의미합니다. AWS CodeCommit과 같은 일부 서버는 SHA로 커밋을 가져오는 것을 지원하지 않습니다. 이러한 서버에서는 `ref`가 여전히 존재해야 하고 고정된 커밋이 이로부터 도달 가능해야 합니다.

168 

169각 유형이 어떻게 가져오고, 캐시되고, 버전 관리되는지는 [플러그인 로딩 참조](/docs/ko/plugins/loading)를 참조하세요.

170 

171<h3 id="relative-path-plugin-source">

172 상대 경로 플러그인 소스

173</h3>

174 

175경로는 마켓플레이스 루트에서 확인됩니다. `./plugins/formatter`는 마켓플레이스 파일이 `<root>/.claude-plugin/`에 있더라도 `<root>/plugins/formatter`입니다.

176 

177`..`를 포함하는 경로는 검증에 실패합니다. macOS와 Linux에서 Claude Code는 선행 `./` 이후에 백슬래시를 포함하는 항목 경로를 거부하므로 경로를 슬래시로 작성합니다.

178 

179```json theme={null}

180{ "name": "formatter", "source": "./plugins/formatter" }

181```

182 

183상대 경로는 Claude Code가 마켓플레이스의 파일을 가지고 있을 때만 확인되므로 [마켓플레이스 소스](#marketplace-sources) 유형을 확인합니다:

184 

185* **`github`, `git`, `file`, `directory`**: Claude Code가 마켓플레이스의 파일을 가지고 있습니다.

186* **`url`**: Claude Code는 `marketplace.json`만 가져오므로 상대 경로를 확인할 수 없습니다. 각 플러그인에 `github` 또는 `git-subdir`과 같은 객체 소스를 제공합니다.

187* **`settings`**: 상대 경로는 완전히 거부됩니다.

188 

189<h4 id="bare-names-under-pluginroot">

190 pluginRoot 아래의 베어 이름

191</h4>

192 

193베어 이름은 `/`가 없는 단일 디렉토리 이름입니다(예: `"formatter"`). `./` 경로 대신 베어 이름을 작성하려면 [`metadata.pluginRoot`](#top-level-fields)를 이들이 확인되는 디렉토리로 설정합니다. `"pluginRoot": "./plugins"`를 사용하면 `"source": "formatter"`는 `./plugins/formatter`로 확인됩니다. Claude Code v2.1.239 이상이 필요합니다.

194 

195`metadata.pluginRoot`에는 다음과 같은 제한이 있습니다:

196 

197* 그 자체가 마켓플레이스 내의 상대 경로여야 합니다.

198* 이미 `./`로 시작하는 소스에는 영향을 주지 않습니다.

199* `team-a/formatter`와 같이 `/`를 포함하는 소스는 베어 이름이 아니며 `metadata.pluginRoot`가 설정되어 있더라도 여전히 `./` 접두사가 필요합니다.

200 

201<h3 id="github-plugin-source">

202 github 플러그인 소스

203</h3>

204 

205`repo`는 `owner/repo`를 사용합니다. `ref`와 `sha`는 선택 사항입니다.

206 

207```json theme={null}

208{

209 "name": "formatter",

210 "source": {

211 "source": "github",

212 "repo": "your-org/formatter",

213 "ref": "v2.0.0",

214 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

215 }

216}

217```

218 

219<h3 id="url-plugin-source">

220 url 플러그인 소스

221</h3>

222 

223`url`은 전체 git URL입니다: `https://`, `http://`, `file://`, 또는 `git@`. `.git` 접미사는 필요하지 않으므로 Azure DevOps 및 AWS CodeCommit URL이 그대로 작동합니다. 이 유형은 `owner/repo` 단축형을 사용하지 않습니다.

224 

225```json theme={null}

226{

227 "name": "formatter",

228 "source": {

229 "source": "url",

230 "url": "https://gitlab.example.com/your-group/formatter.git",

231 "ref": "main"

232 }

233}

234```

235 

236<h3 id="git-subdir-plugin-source">

237 git-subdir 플러그인 소스

238</h3>

239 

240`url`은 전체 git URL 또는 GitHub `owner/repo` 단축형을 허용합니다. `path`는 플러그인을 보유한 하위 디렉토리이며, Claude Code는 해당 하위 디렉토리만 다운로드합니다.

241 

242```json theme={null}

243{

244 "name": "formatter",

245 "source": {

246 "source": "git-subdir",

247 "url": "https://github.com/your-org/monorepo.git",

248 "path": "tools/formatter"

249 }

250}

251```

252 

253<h3 id="npm-plugin-source">

254 npm 플러그인 소스

255</h3>

256 

257`npm` 소스는 다음 필드를 사용합니다:

258 

259* `package`: 패키지 이름 또는 `@your-org/formatter`와 같은 스코프된 이름

260* `version`: 버전 또는 범위

261* `registry`: 기본 레지스트리에 없는 패키지의 레지스트리 URL

262 

263Claude Code는 npm 클라이언트로 패키지를 가져옵니다. 패키지의 설치 스크립트(예: `preinstall` 또는 `postinstall`)는 절대 실행되지 않으며, 해당 종속성은 가져오기 중에 설치되지 않습니다. 패키지의 `package.json` 옆에 지원되는 lockfile이 있으면 Claude Code는 스크립트도 비활성화된 상태에서 별도의 단계에서 해당 [Node.js 패키지 종속성](/docs/ko/plugins/loading#node-js-package-dependencies)을 설치합니다.

264 

265```json theme={null}

266{

267 "name": "formatter",

268 "source": {

269 "source": "npm",

270 "package": "@your-org/formatter",

271 "version": "^2.0.0",

272 "registry": "https://npm.example.com"

273 }

274}

275```

276 

277<h3 id="archive-plugin-source">

278 archive 플러그인 소스

279</h3>

280 

281`url`은 `https://`를 사용해야 하며 루프백, 링크-로컬 또는 클라우드 메타데이터 호스트를 가리킬 수 없습니다.

282 

283플러그인 루트는 zip의 맨 위 또는 한 디렉토리 아래에 있을 수 있습니다.

284 

285`sha256`은 아카이브의 다이제스트로 64개의 16진 문자(대문자 또는 소문자)입니다. 이를 설정하면 Claude Code는 일치하지 않는 다운로드를 거부합니다.

286 

287```json theme={null}

288{

289 "name": "formatter",

290 "source": {

291 "source": "archive",

292 "url": "https://artifacts.example.com/formatter-2.0.0.zip",

293 "sha256": "6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1"

294 }

295}

296```

297 

298<h3 id="command-plugin-source">

299 command 플러그인 소스

300</h3>

301 

302사용자의 머신에 설치된 도구가 플러그인 디렉토리를 생성할 때(예: 사용자가 선택한 도구 체인에 대해 플러그인을 렌더링하는 IDE) `command` 소스를 사용합니다. Claude Code는 사용자가 플러그인을 설치하거나 업데이트할 때 명령을 실행하고, [세션당 한 번 다시](/docs/ko/plugins/loading#when-a-command-source-re-runs) 실행하므로 사용자는 재설치 없이 도구의 변경된 출력을 얻습니다.

303 

304`command` 소스는 다음 필드를 사용합니다:

305 

306* `command`: 플러그인 디렉토리의 절대 경로를 한 줄로 출력하고 0으로 종료하는 셸 명령입니다. Claude Code는 실행하기 전에 사용자에게 전체 문자열을 검토하도록 표시합니다. 인쇄 가능한 ASCII로 작성하고, 최대 500자이며, 4개 이상의 연속 공백이 없어야 합니다.

307* `timeout`: 1에서 600 사이의 전체 초 수입니다. 기본값은 60입니다.

308* `mode`: `copy`(기본값) 또는 `link`입니다. [복사 모드 및 링크 모드](#copy-mode-and-link-mode)를 참조하세요.

309 

310```json theme={null}

311{

312 "name": "formatter",

313 "source": {

314 "source": "command",

315 "command": "my-tool claude-plugin-path",

316 "timeout": 120

317 }

318}

319```

320 

321사용자가 명령을 수락하는 방법은 [셸에서 설치](/docs/ko/plugins/install#install-from-your-shell)를 참조하세요. 변경 후 사용자가 보는 내용은 [명령 소스의 명령 변경](/docs/ko/plugins/host-marketplace#change-the-command-of-a-command-source)을 참조하세요. 관리자는 [`disableCommandPluginSources`](/docs/ko/settings-reference#disablecommandpluginsources)로 명령 소스를 비활성화합니다.

322 

323<h4 id="what-the-command-must-do">

324 명령이 수행해야 할 작업

325</h4>

326 

327명령이 다음 요구 사항을 충족하도록 작성합니다:

328 

329* **셸 및 작업 디렉토리**: Claude Code는 사용자의 홈 디렉토리에서 `sh` 또는 Windows의 `cmd.exe`를 통해 명령을 실행합니다. 절대 경로 또는 `PATH`의 명령을 제공합니다.

330* **출력**: stdout에 정확히 한 줄(플러그인 디렉토리의 절대 경로)을 출력하고 `timeout` 초 내에 0으로 종료합니다.

331* **디렉토리 내용**: 디렉토리는 명령이 종료될 때까지 완전한 플러그인을 보유합니다. 경로는 실행마다 다를 수 있습니다.

332 

333<h4 id="output-that-fails-the-install-or-update">

334 설치 또는 업데이트를 실패하게 하는 출력

335</h4>

336 

337명령이 0이 아닌 값으로 종료되거나, `timeout`보다 오래 실행되거나, 하나의 절대 경로 이외의 것을 출력할 때 설치 또는 업데이트가 실패합니다. 또한 인쇄된 디렉토리가 다음 중 하나일 때도 실패합니다:

338 

339* **플러그인 콘텐츠 없음**: 인쇄된 디렉토리의 최상위 수준에 `.claude-plugin/` 디렉토리 또는 `skills/`, `commands/`, `agents/`, `hooks/` 디렉토리와 같은 플러그인 콘텐츠가 없습니다.

340* **세션의 자체 디렉토리**: 인쇄된 디렉토리는 Claude Code가 시작된 디렉토리 또는 그 부모 중 하나입니다.

341* **네트워크 경로**: Windows에서 인쇄된 경로는 UNC 경로입니다.

342* **복사하기에 너무 큼**: 복사 모드에서 디렉토리는 256 MiB보다 크거나 20,000개 이상의 항목을 가집니다.

343 

344<h4 id="copy-mode-and-link-mode">

345 복사 모드 및 링크 모드

346</h4>

347 

348`mode`는 Claude Code가 인쇄된 디렉토리를 복사할지 아니면 제자리에서 사용할지를 결정합니다:

349 

350* **`copy`**: Claude Code는 디렉토리를 플러그인 캐시에 복사하고 복사된 파일의 해시에서 [플러그인 버전](/docs/ko/plugins/loading#how-claude-code-computes-the-version)을 파생합니다. 도구는 명령이 종료된 후 디렉토리를 삭제하거나 다시 쓸 수 있습니다. 동일한 파일을 생성하는 재실행은 최신 상태로 계산됩니다.

351* **`link`**: Claude Code는 인쇄된 디렉토리의 각 최상위 항목에 대한 링크로 플러그인의 캐시 항목을 채우고 파일을 제자리에서 로드합니다. 아무것도 복사되지 않고, 파일 내용이 해시되지 않으며, 크기 제한이 적용되지 않습니다. 렌더링된 SDK 내보내기와 같이 복사하기에 너무 큰 디렉토리에 사용합니다.

352 

353링크 모드 플러그인에는 다음과 같은 요구 사항이 있습니다:

354 

355* **디렉토리를 제자리에 유지**: Claude Code는 모든 시작 시 링크를 통해 플러그인을 로드하므로 인쇄된 디렉토리는 플러그인이 설치된 상태로 유지되는 동안 그 위치에 남아 있어야 합니다.

356* **새 콘텐츠를 신호하기 위해 다른 경로 출력**: 버전은 인쇄된 디렉토리의 실제 경로 및 최상위 항목에서 나오며, 내부의 파일에서는 나오지 않습니다.

357* **디렉토리 내에 최상위 심볼릭 링크 유지**: 최상위 항목이 인쇄된 디렉토리 외부를 가리키는 심볼릭 링크인 경우 설치가 실패합니다.

358* **`node_modules` 포함**: Claude Code는 링크 모드 플러그인에 대해 [Node.js 패키지 종속성 설치](/docs/ko/plugins/loading#node-js-package-dependencies)를 건너뛰므로 플러그인이 필요한 패키지를 이미 포함하는 디렉토리를 출력합니다.

359* **디렉토리 내에서 시작된 세션**: 인쇄된 디렉토리 또는 그 아래 어디서나 시작된 세션은 플러그인을 로드하지 않습니다.

360* **Windows에서 아님**: Claude Code는 Windows에서 링크 모드 플러그인 설치를 거부합니다. 거기서 `"mode": "copy"`를 선언합니다.

361 

362<h2 id="marketplace-sources">

363 마켓플레이스 소스

364</h2>

365 

366마켓플레이스 소스는 Claude Code가 `marketplace.json`을 어디서 가져오는지를 나타냅니다. CLI는 마켓플레이스를 추가할 때 하나를 빌드하고, 설정에서 직접 작성합니다:

367 

368* **[`claude plugin marketplace add`](/docs/ko/plugins/cli-reference)**: Claude Code는 전달한 문자열에서 소스를 빌드합니다.

369* **[`extraKnownMarketplaces`](/docs/ko/settings-reference#extraknownmarketplaces)**: `source` 객체로 직접 작성합니다.

370* **[`strictKnownMarketplaces`](/docs/ko/settings-reference#strictknownmarketplaces) 및 [`blockedMarketplaces`](/docs/ko/plugins/org#restrict-what-users-can-install)**: 관리자가 이 두 정책 목록에 소스를 작성합니다. `strictKnownMarketplaces`는 허용 목록이고 `blockedMarketplaces`는 차단 목록입니다.

371 

372`url`, `git`, `github` 유형 이름은 [플러그인 소스](#plugin-sources)에서와 마켓플레이스 소스에서 다른 의미를 가집니다:

373 

374| 유형 이름 | 마켓플레이스 소스로 | 플러그인 소스로 |

375| :------- | :----------------------------------------------------------------------- | :------------------------------------------------ |

376| `url` | `marketplace.json` 파일에 대한 직접 링크, `url`, `headers`, `headersHelper` 필드 포함 | 복제할 git 저장소, `url`, `ref`, `sha` 필드 포함 |

377| `git` | 복제할 git 저장소, `url`, `ref`, `path`, `sparsePaths` 필드 포함 | 존재하지 않음 |

378| `github` | GitHub 저장소, `repo`, `ref`, `path`, `sparsePaths` 필드 포함 | GitHub 저장소, `repo`, `ref`, `sha` 필드 포함, `path` 없음 |

379 

380표는 모든 마켓플레이스 소스 유형을 필드, 생성하는 `claude plugin marketplace add` 입력, 그리고 세 가지 설정 키 각각에서의 작동 방식과 함께 나열합니다.

381 

382| 유형 | 필드 | `marketplace add` 입력 | `extraKnownMarketplaces` | `strictKnownMarketplaces` | `blockedMarketplaces` |

383| :------------ | :----------------------------------- | :-------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------- |

384| `url` | `url`, `headers`, `headersHelper` | git 형식과 일치하지 않는 `http://` 또는 `https://` URL | 로드 | 동일한 URL 허용 | 동일한 URL 차단 |

385| `github` | `repo`, `ref`, `path`, `sparsePaths` | `owner/repo`, `owner/repo@ref`, 또는 `owner/repo#ref` | 로드 | 동일한 `repo`, `ref`, `path` 허용. `repo`는 `owner/*`일 수 있음 | 동일한 것 차단, 동일한 저장소에 대한 `git` URL |

386| `git` | `url`, `ref`, `path`, `sparsePaths` | `user@host:path` URL, 또는 `.git`로 끝나거나 `/_git/`를 포함하거나 github.com 또는 gitlab.com 저장소를 이름 지정하는 `https://` URL. `#ref`는 ref를 고정 | 로드 | 동일한 URL, `ref`, `path` 허용 | 동일한 것 차단, 동일한 github.com 저장소의 다른 철자 |

387| `npm` | `package` | 생성되지 않음 | 로드 실패: `NPM marketplace sources not yet implemented` | 구문 분석되지만 아무것도 등록하지 않으므로 일치하는 것이 없음 | 구문 분석되지만 일치하는 것이 없음 |

388| `file` | `path` | `.json` 파일의 경로 | 로드 | 동일한 경로 허용 | 동일한 경로 차단 |

389| `directory` | `path` | 디렉토리의 경로 | 로드 | 동일한 경로 허용 | 동일한 경로 차단 |

390| `settings` | `name`, `plugins`, `owner` | 생성되지 않음 | 로드 | 동일한 `name` 및 동일한 `plugins`를 가진 항목 허용 | 동일한 `name` 차단 |

391| `skills-dir` | none | 생성되지 않음 | 로드 실패: `Unsupported marketplace source type` | 허용 목록이 설정된 동안 [skills-directory 플러그인](/docs/ko/plugins/org#keep-skills-directory-plugins-loading) 로드 유지. [정책 목록에서만 유효한 소스 값](#source-values-valid-only-in-policy-lists) 참조 | skills-directory 플러그인 로드 중지 |

392| `hostPattern` | `hostPattern` | 생성되지 않음 | 로드 실패: `Unsupported marketplace source type` | 호스트가 일치하는 `github`, `git`, `url` 소스 허용 | 이러한 소스 차단 |

393| `pathPattern` | `pathPattern` | 생성되지 않음 | 로드 실패: `Unsupported marketplace source type` | `path`가 일치하는 `file` 및 `directory` 소스 허용 | 이러한 소스 차단 |

394 

395<h3 id="fields-by-type">

396 유형별 필드

397</h3>

398 

399표는 기본값, 제약 또는 유형별 의미를 가진 각 마켓플레이스 소스 필드를 나열합니다.

400 

401| 필드 | 유형 | 설명 |

402| :-------------- | :-------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

403| `url` | `url` | `marketplace.json` 파일에 대한 링크. Claude Code는 해당 파일만 다운로드하므로, 마켓플레이스의 플러그인은 [상대 경로 소스](#relative-path-plugin-source)를 사용할 수 없습니다 |

404| `url` | `git` | 복제할 git 저장소 |

405| `headers` | `url` | Claude Code가 가져오기와 함께 보내는 HTTP 헤더의 맵, 인증된 호스트의 경우 |

406| `headersHelper` | `url` | 값이 너무 단기간인 헤더를 인쇄하는 명령. Claude Code v2.1.238 이상 필요. [아카이브 다운로드 인증](/docs/ko/plugins/host-marketplace#authenticate-archive-downloads) 참조 |

407| `repo` | `github` | `marketplace add` 및 `extraKnownMarketplaces`에서, `repo`는 하나의 저장소를 이름 지정해야 합니다. `marketplace add`는 `owner/*`를 유효한 `owner/repo` 단축형이 아닌 것으로 거부합니다. `extraKnownMarketplaces`에서 Claude Code는 이를 문자 그대로 사용하고 클론이 실패합니다 |

408| `ref` | `github`, `git` | 분기 또는 태그. 저장소의 기본 분기로 기본값 설정됨 |

409| `path` | `github`, `git` | 저장소 내부의 마켓플레이스 파일의 경로. `.claude-plugin/marketplace.json`으로 기본값 설정됨 |

410| `path` | `file` | 마켓플레이스 파일 자체. Claude Code는 제자리에서 읽고 두 수준 위의 디렉토리를 마켓플레이스 루트로 사용하므로, 파일을 `<root>/.claude-plugin/marketplace.json`에 유지하세요 |

411| `path` | `directory` | 마켓플레이스 루트, `.claude-plugin/marketplace.json`을 포함하는 디렉토리 |

412| `sparsePaths` | `github`, `git` | 스파스 체크아웃을 위한 디렉토리의 배열. 예: `[".claude-plugin", "plugins"]`. `claude plugin marketplace add --sparse`가 설정합니다 |

413| `skipLfs` | `github`, `git` | 수락되고 효과 없음. [Git LFS에서 플러그인 파일 유지](/docs/ko/plugins/host-marketplace#keep-plugin-files-out-of-git-lfs) 참조 |

414| `name` | `settings` | `extraKnownMarketplaces` 키와 같아야 하며 [예약된 이름](#reserved-names)이 될 수 없습니다 |

415| `plugins` | `settings` | 호스팅된 파일이 없는 인라인 카탈로그. 각 항목은 `name`, `source`, `description`, `version`, `strict`, `headers`, `headersHelper`를 사용합니다. 상대 경로가 확인될 저장소가 없으므로 각 항목의 `source`를 객체 유형으로 작성하세요 |

416 

417<h3 id="source-values-valid-only-in-policy-lists">

418 정책 목록에서만 유효한 소스 값

419</h3>

420 

421`hostPattern`, `pathPattern`, `skills-dir`, `repo`의 `owner/*` 형식은 두 정책 목록인 `strictKnownMarketplaces` 및 `blockedMarketplaces`에서만 유효합니다:

422 

423* **`hostPattern` 및 `pathPattern`**: Claude Code가 가져오기 전에 소스에 대해 테스트하는 정규 표현식.

424* **`skills-dir`**: 소스가 아닙니다. `strictKnownMarketplaces`를 설정하면, [skills-directory 플러그인](/docs/ko/plugins/org#keep-skills-directory-plugins-loading)은 해당 목록에 `{"source": "skills-dir"}`을 추가할 때까지 로드를 중지합니다.

425* **`owner/*`**: 마켓플레이스 소스의 `github` `repo` 값으로, 정확히 해당 GitHub 소유자 아래의 모든 저장소와 일치합니다. Claude Code v2.1.223 이상 필요.

426 

427일치 순서, 정확한 `ref` 의미론, 레시피는 [조직의 플러그인 관리](/docs/ko/plugins/org)를 참조하세요.

428 

429<h3 id="source-objects-in-settings">

430 설정의 소스 객체

431</h3>

432 

433`extraKnownMarketplaces` 값은 마켓플레이스 이름에서 `source`를 가진 객체로의 맵입니다. 이 항목은 `main` 분기의 git 저장소에서 마켓플레이스를 등록합니다:

434 

435```json theme={null}

436{

437 "extraKnownMarketplaces": {

438 "your-marketplace": {

439 "source": {

440 "source": "git",

441 "url": "https://git.example.com/your-org/your-marketplace.git",

442 "ref": "main"

443 }

444 }

445 }

446}

447```

448 

449`strictKnownMarketplaces` 및 `blockedMarketplaces`는 소스 객체의 배열입니다. 이 허용 목록은 하나의 GitHub 소유자와 하나의 내부 호스트를 허용합니다:

450 

451```json theme={null}

452{

453 "strictKnownMarketplaces": [

454 { "source": "github", "repo": "your-org/*" },

455 { "source": "hostPattern", "hostPattern": "^git\\.example\\.com$" }

456 ]

457}

458```

459 

460<h2 id="validation-messages">

461 유효성 검사 메시지

462</h2>

463 

464`claude plugin validate <path>`는 마켓플레이스 루트 또는 마켓플레이스 파일 자체를 사용합니다. 오류 및 경고를 출력합니다. 종료 코드 및 `--strict`에 대해서는 [plugin validate](/docs/ko/plugins/cli-reference#plugin-validate)를 참조하십시오.

465 

466메시지는 플러그인 항목을 인덱스로 이름 지으며, `plugins.1.source` 또는 `plugins[1].source`로 작성됩니다.

467 

468항목 인덱스 및 `plugin.json →`으로 시작하는 메시지(예: `plugins[2] plugin.json →`)는 해당 플러그인의 자체 파일에 관한 것입니다. [`claude plugin validate` 오류 보고](/docs/ko/plugins/troubleshooting#claude-plugin-validate-reports-errors)에서 이러한 메시지와 해결 방법을 나열합니다.

469 

470Claude Desktop 플래그 이름을 언급하는 경고는 Claude Code가 허용하지만 Claude Desktop이 거부하는 것입니다. Claude Desktop의 이름 규칙이 더 엄격하기 때문입니다.

471 

472표는 마켓플레이스 수준의 메시지를 각 메시지가 관련된 필드에 매핑합니다.

473 

474| 메시지 | 수준 | 필드 |

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

476| `Marketplace must have a name` | 오류 | `name`이 비어 있음 |

477| `Marketplace name cannot contain spaces. Use kebab-case (e.g., "my-marketplace")` | 오류 | `name` |

478| `Marketplace name cannot contain path separators (/ or \), ".." sequences, or be "."` | 오류 | `name` |

479| `Marketplace name impersonates an official Anthropic/Claude marketplace` | 오류 | `name`. [예약된 이름](#reserved-names) 참조 |

480| `Marketplace name cannot contain control or bidirectional-formatting characters` | 오류 | `name`에 이스케이프 또는 줄 바꿈과 같은 제어 문자 또는 유니코드 양방향 서식 문자 포함 |

481| `Marketplace name "inline" is reserved for --plugin-dir session plugins`, and the `builtin`, `skills-dir`, `synced`, `claude-plugin-test`, `npm`, `pip`, `uv`, `cargo`, `github`, and `gh` variants | 오류 | `name` |

482| `Author name cannot be empty` | 오류 | `owner.name` |

483| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | 오류 | `plugins[i].name` |

484| `Plugin name cannot contain control or bidirectional-formatting characters` | 오류 | `plugins[i].name` |

485| `Duplicate plugin name "x" found in marketplace` | 오류 | 두 항목이 `name` 공유 |

486| `plugins.i.source: Invalid input` | 오류 | 항목의 `source`가 어떤 유형과도 일치하지 않음. [source의 잘못된 입력](#invalid-input-on-a-source) 참조 |

487| `plugins[i].source: Path contains "..": <path>` | 오류 | 마켓플레이스 루트를 벗어나는 상대 `source` |

488| `source.source: 'unsupported' is a parse-time placeholder and cannot be authored` | 오류 | `plugins[i].source` |

489| `Plugin "x" sets headersHelper but is not "strict": false` | 오류 | `plugins[i].headersHelper`, `archive` 항목에서 |

490| `chain does not resolve (<reason>) — target must be a name in plugins[], a key in renames, or null` | 오류 | `renames.<old>` |

491| `target "x" is not a valid plugin name (PluginIdSchema)` | 오류 | `renames.<old>` |

492| `Unknown field 'x'. Claude Code ignores it at load time.` | 경고 | 최상위 수준, `metadata` 아래, 항목 내, 또는 항목의 `relevance` 아래의 명명된 키 |

493| `Marketplace has no plugins defined` | 경고 | `plugins`이 비어 있음 |

494| `Plugin "x" sets headers/headersHelper, which only apply to "archive" sources; they have no effect on this entry.` | 경고 | `plugins[i].headers` 또는 `plugins[i].headersHelper`, `source`가 `archive`가 아닌 항목에서 |

495| `Plugin "x" fetches its archive with a headersHelper but sets no sha256 pin` | 경고 | `plugins[i].source.sha256` |

496| `Header "x" is a request-routing/identity header that catalog entries may not set; Claude Code drops it at download time.` | 경고 | `plugins[i].headers.<name>` |

497| `Local source "x" is or traverses a symlink, so <path> was not read` | 경고 | `plugins[i].source` |

498| `No marketplace description provided. Adding a description helps users understand what this marketplace offers` | 경고 | `description` |

499| `Entry declares version "x" but <path>/plugin.json says "y". At install time, plugin.json wins` | 경고 | `plugins[i].version`, 상대 경로 항목에서 |

500| `'relevance' must be an object containing topic and signals; got <type>. It will be ignored at load time.` | 경고 | `plugins[i].relevance` |

501| `'metadata' must be a free-form object; got <type>. It will be ignored at load time.` | 경고 | `plugins[i].metadata` |

502| `'experimental' must be an object containing component declarations; got <type>. It will be ignored at load time.` | 경고 | `plugins[i].experimental` |

503| `Marketplace name "x" is reserved in Claude Desktop` | 경고 | `name`이 `org`, `org-provisioned`, 또는 `unknown`. Claude Desktop이 마켓플레이스 거부 |

504| `Marketplace name "x" is not accepted by Claude Desktop (letters, digits, ".", "_", "-"; must start alphanumeric; max 128 chars)` | 경고 | `name`. Claude Desktop이 마켓플레이스 거부 |

505| `Plugin name "x" is not accepted by Claude Desktop (letters, digits, ".", "_", "-"; must start alphanumeric; max 128 chars)` | 경고 | `plugins[i].name`. Claude Desktop이 항목 삭제 |

506 

507<h3 id="invalid-input-on-a-source">

508 source의 잘못된 입력

509</h3>

510 

511`source`의 `Invalid input`은 객체가 어떤 source 유형과도 일치하지 않음을 의미합니다. 다음 원인을 확인하십시오:

512 

513* `./`로 시작하지 않는 상대 경로(`"."` 또는 [metadata.pluginRoot 아래의 베어 이름](#relative-path-plugin-source) 제외)

514* `..`를 포함하는 `npm` `package`

515* [플러그인 source](#plugin-sources) 중 하나가 아닌 `source` 유형

516* 필수 필드가 누락되었거나 잘못된 유형의 알려진 유형(예: `repo` 없는 `github`)

517 

518<h3 id="failures-that-validation-doesn’t-catch">

519 유효성 검사가 포착하지 못하는 오류

520</h3>

521 

522`claude plugin validate`는 모든 오류를 보고하지 않습니다. 파일 경로 또는 배열로 작성된 항목 `hooks`는 유효성 검사를 통과하며, 오류는 플러그인이 로드될 때만 나타나며, [항목의 Hooks](#hooks-in-an-entry)에서 설명합니다. `source`를 가져오는 오류도 유효성 검사가 아닌 설치 후에만 나타납니다.

523 

524[`claude plugin list`](/docs/ko/plugins/cli-reference)는 로드에 실패한 플러그인을 오류와 함께 표시하며, [플러그인 문제 해결](/docs/ko/plugins/troubleshooting)에서 로드 시간 문자열을 다룹니다.

525 

526<h2 id="next-steps">

527 다음 단계

528</h2>

529 

530* [마켓플레이스 만들기](/docs/ko/plugins/create-marketplace): 이러한 필드에서 마켓플레이스를 빌드하고 로컬에서 설치

531* [마켓플레이스 호스팅 및 유지보수](/docs/ko/plugins/host-marketplace): 파일을 어디에 넣을지, 사용자가 변경 사항을 받는 방식

532* [플러그인 매니페스트 참조](/docs/ko/plugins/manifest-reference): 항목이 재정의할 수 있는 `plugin.json` 필드

533* [조직의 플러그인 관리](/docs/ko/plugins/org): 이러한 소스 값을 사용하는 허용 목록 및 차단 목록 레시피

plugins/measure.md +193 −0 created

Details

1> ## Documentation Index

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

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

4 

5# 플러그인 비용 및 사용량 측정

6 

7> Claude Code 플러그인의 토큰 비용을 측정하고, 사람들이 여전히 사용하는지 확인하며, 조직 전체 플러그인 질문을 위한 텔레메트리 이벤트를 선택합니다.

8 

9플러그인이 활성화된 모든 세션에는 플러그인의 스킬, 에이전트 및 명령의 이름과 설명이 Claude의 컨텍스트에 포함되며, 플러그인이 사용되는지 여부와 관계없이 이러한 토큰은 사용자의 사용량에 계산됩니다. 이 페이지에서는 플러그인의 해당 숫자를 확인하는 방법, 플러그인을 유지 관리하는 경우 이를 줄이는 방법, 플러그인이 여전히 사용 중인지 확인할 수 있도록 사용량이 표시되는 위치를 보여줍니다.

10 

11이 페이지는 플러그인 작성자 및 유지 관리자를 위한 것입니다. 조직을 위해 Claude Code를 관리하는 경우, [전체 플릿에서 측정](#measure-across-a-fleet)에서 모든 머신에서 동일한 질문을 다룹니다.

12 

13<Note>

14 다음 경우는 다른 페이지에서 다룹니다:

15 

16 * **플러그인이 Claude의 동작을 얼마나 안정적으로 변경하는지 테스트**: [플러그인을 evals로 테스트](/docs/ko/plugin-evals) 참조

17 * **자신의 세션 컨텍스트 정리**: [설치된 플러그인 관리](/docs/ko/plugins/install#manage-installed-plugins) 및 [컨텍스트 윈도우](/docs/ko/context-window) 페이지 참조

18</Note>

19 

20[플러그인 비용 측정](#measure-what-a-plugin-costs)부터 시작합니다.

21 

22<h2 id="measure-what-a-plugin-costs">

23 플러그인 비용 측정

24</h2>

25 

26플러그인이 Claude의 컨텍스트에 추가하는 내용을 확인하려면 플러그인의 이름으로 [`claude plugin details`](/docs/ko/plugins/cli-reference#plugin-details)를 실행합니다. 실행 중인 Claude Code 세션의 프롬프트가 아닌 셸에서 실행합니다. 플러그인이 로드되어야 합니다: 설치되거나, 스킬 디렉토리에 있거나, 같은 명령에서 `--plugin-dir`로 전달되어야 합니다(예: `claude --plugin-dir ./formatter plugin details formatter`).

27 

28이 예제는 두 개의 스킬, 명령, 에이전트, 훅 및 MCP 서버가 있는 `formatter`라는 설치된 플러그인을 읽습니다:

29 

30```bash theme={null}

31claude plugin details formatter

32```

33 

34```text theme={null}

35formatter 1.0.0

36 Description: Formats and lints code on save

37 Source: formatter@my-marketplace

38 

39Component inventory

40 Skills (3) format-all, format-code, lint-fix

41 Agents (1) style-reviewer

42 Hooks (1) PostToolUse (harness-only — no model context cost)

43 MCP servers (1) formatter-tools (tool schemas resolved at runtime; not counted)

44 LSP servers (0)

45 

46Projected token cost

47 Always-on: ~146 tok added to every session

48 

49Per-component (rounded)

50 component always-on on-invoke

51 format-code ~40 ~30

52 lint-fix ~50 ~30

53 style-reviewer ~40 ~40

54 format-all < 20 ~30

55 

56 On-invoke cost is paid each time a skill or agent fires.

57 Token counts are estimates and may differ from actual usage.

58```

59 

60출력의 각 부분은 다른 질문에 답합니다:

61 

62* **Component inventory**: Claude Code가 플러그인에서 찾은 것. 명령은 스킬과 함께 계산되므로 `format-all`은 `Skills` 아래에 나타납니다. 훅과 MCP 서버는 비용 추정치를 받지 않으며 per-component 행이 없습니다. 플러그인의 MCP 도구가 추가하는 내용을 확인하려면 플러그인이 활성화된 세션에서 `/context`를 실행하고 `MCP tools` 카테고리를 읽습니다.

63* **Always-on**: 플러그인이 활성화된 모든 세션에 추가되는 플러그인의 스킬, 에이전트 및 명령의 이름과 설명의 토큰입니다(아무것도 실행되지 않는지 여부). 이것은 모든 사용자가 가지고 있는 숫자이며 줄여야 할 숫자입니다.

64* **Per-component**: 각 행은 하나의 스킬, 에이전트 또는 명령을 always-on 공유 및 on-invoke 비용으로 분할합니다. on-invoke 비용은 해당 구성 요소가 실행될 때만 로드되는 본문입니다. always-on 열을 사용하여 어느 구성 요소가 가장 많이 기여하는지 찾습니다.

65 

66<h3 id="lower-the-always-on-figure">

67 Always-on 수치 낮추기

68</h3>

69 

70플러그인을 유지 관리하는 경우, 이러한 변경 사항은 모든 세션에 추가되는 내용을 줄입니다. 플러그인만 사용하는 경우, 옵션은 비활성화하거나 제거하는 것입니다. [설치된 플러그인 관리](/docs/ko/plugins/install#manage-installed-plugins)를 참조합니다.

71 

72always-on 수치는 각 구성 요소의 이름과 `description` 및 `when_to_use` frontmatter를 계산합니다. 이를 낮추려면:

73 

74* 스킬 및 에이전트 설명을 단축합니다.

75* 큰 플러그인을 분할하여 사용자가 필요한 구성 요소만 설치하도록 합니다.

76 

77스킬의 설명은 Claude가 요청과 일치시키는 것이기도 하므로, 더 짧은 설명은 스킬 트리거를 중지할 수 있습니다. 설명을 정리한 후 eval 스위트의 [`tool_used: Skill` grader](/docs/ko/plugin-evals#create-your-first-eval-suite)로 트리거를 확인합니다.

78 

79각 구성 요소 유형이 기여하는 내용은 [플러그인 구성 요소](/docs/ko/plugins/components)를 참조합니다.

80 

81<h3 id="cost-shown-to-users-before-install">

82 설치 전 사용자에게 표시되는 비용

83</h3>

84 

85공식 마켓플레이스의 플러그인은 설치 전에 비용을 사용자에게 표시합니다. `/plugin`에서 사용자가 마켓플레이스의 플러그인 목록을 탐색하고 플러그인을 선택하면, 세부 정보 창에 **Context cost** 섹션이 표시되며 `Every turn:` 행과 `When invoked:` 행이 있습니다. always-on 수치가 2,000개 토큰 이상일 때, `Every turn:` 행이 강조 표시되어 나타납니다.

86 

87자신의 마켓플레이스에 있는 플러그인에는 **Context cost** 섹션이 없습니다.

88 

89<h2 id="check-whether-a-plugin-is-used">

90 플러그인 사용 여부 확인

91</h2>

92 

93Claude Code는 플러그인의 사용량을 작성자에게 보고하지 않습니다. 사용량은 플러그인을 설치한 각 사람의 머신에 기록되므로, 배울 수 있는 내용은 해당 사람들과의 관계에 따라 달라집니다:

94 

95* **조직을 위해 Claude Code를 관리합니다**: OpenTelemetry 이벤트 및 Analytics API는 모든 머신에서 설치 및 스킬 활성화를 계산합니다. [전체 플릿에서 측정](#measure-across-a-fleet)을 참조합니다.

96* **물어볼 수 있는 팀원입니다**: 각 사용자의 자신의 Claude Code는 네 곳에서 플러그인을 여전히 사용하는지 보여줍니다: [`/plugin` 패널](#not-used-recently-in-/plugin), [`/skill-doctor`](#find-skills-that-never-run), [`/doctor`](#unused-plugins-in-/doctor), 및 [`/usage`](#usage-share-in-/usage). 네 가지 모두 사용자가 자신의 머신의 세션에서 Claude Code 프롬프트에서 실행하는 명령입니다.

97* **둘 다 아닙니다**: 해당 플러그인에 대해 Claude Code에서 사용량 신호가 없습니다.

98 

99<h3 id="not-used-recently-in-/plugin">

100 `/plugin`에서 최근에 사용되지 않음

101</h3>

102 

103`/plugin`의 **Installed** 탭에서, 사용자가 마켓플레이스에서 설치한 플러그인은 최소 14일 동안 사용되지 않고 10개 세션이 지난 후 **Not used recently** 헤더 아래로 이동합니다. 플러그인의 세부 정보에는 `Last used:` 행도 표시됩니다. 사용자가 해당 헤더 및 행으로 수행하는 작업은 [더 이상 사용하지 않는 플러그인 찾기](/docs/ko/plugins/install#find-plugins-you-no-longer-use)를 참조합니다.

104 

105**Not used recently** 헤더는 다음의 경우 나타나지 않습니다:

106 

107* `--plugin-dir`로 로드되거나 스킬 디렉토리에서 로드된 플러그인

108* 관리 설정을 통해 활성화되거나 [시드 디렉토리](/docs/ko/plugins/org#seed-containers-and-ci)에서 마운트된 플러그인

109* 테마, 출력 스타일, 모니터 또는 워크플로우를 포함하는 플러그인(추적된 호출 없이 사용 중이므로)

110 

111플러그인의 [언어 서버](/docs/ko/plugins/components#lsp-servers)는 진단을 제공하거나 코드 네비게이션 요청에 응답할 때 사용된 것으로 계산되므로, 서버가 세션에서 활성화된 LSP 플러그인은 사용되지 않는 것으로 나열되지 않습니다.

112 

113사용자의 조직이 [`strictKnownMarketplaces`](/docs/ko/plugins/org#restrict-what-users-can-install)를 설정하면, 헤더와 `Last used:` 행이 모두 나타나지 않습니다.

114 

115<h3 id="find-skills-that-never-run">

116 실행되지 않는 스킬 찾기

117</h3>

118 

119`/skill-doctor`를 실행하여 각 스킬의 비용과 사용 빈도를 확인합니다. 플러그인의 스킬을 포함하여 Claude의 스킬 목록에 있지만 호출된 적이 없는 스킬을 표시합니다.

120 

121대화형 세션에서, 보고서는 `/plugin` 관리자의 **Stats** 탭에서 열립니다. 보고서가 다루는 내용과 사용 가능한 위치는 [사용되지 않는 스킬 찾기](/docs/ko/skills#find-unused-skills)를 참조합니다.

122 

123<h3 id="unused-plugins-in-/doctor">

124 `/doctor`의 사용되지 않는 플러그인

125</h3>

126 

127`/doctor` 체크업은 각 사용자 설치 스킬, MCP 서버 및 플러그인을 나열하고 사용되지 않은 것들을 비활성화할 것을 권장합니다. [명령 참조의 `/doctor`](/docs/ko/commands#all-commands)를 참조합니다.

128 

129<h3 id="usage-share-in-/usage">

130 `/usage`의 사용량 공유

131</h3>

132 

133Pro, Max, Team 또는 Enterprise 플랜에서, `/usage` 분석은 최근 사용량을 스킬, 서브에이전트, 플러그인 및 MCP 서버에 총계의 공유로 속성을 지정합니다. [/usage 명령 사용](/docs/ko/costs#using-the-/usage-command)을 참조합니다.

134 

135<h2 id="measure-across-a-fleet">

136 전체 플릿에서 측정

137</h2>

138 

139조직을 위해 Claude Code를 관리하는 경우, 다음 두 소스 중 하나에서 모든 머신에서 플러그인 비용 및 사용량을 측정할 수 있습니다:

140 

141* **OpenTelemetry 이벤트**: Claude Code는 [익스포터를 구성](/docs/ko/monitoring-usage)한 후 자신의 백엔드로 이를 내보냅니다. [플러그인 설치 및 사용을 위한 OpenTelemetry 이벤트](#pick-the-opentelemetry-event-for-each-question)를 참조합니다.

142* **Analytics API**: Anthropic의 기록에서 제공되며, 익스포터가 필요하지 않습니다. [Analytics API 쿼리](#query-the-analytics-api)를 참조합니다.

143 

144<h3 id="pick-the-opentelemetry-event-for-each-question">

145 플러그인 설치 및 사용을 위한 OpenTelemetry 이벤트

146</h3>

147 

148이러한 OpenTelemetry 이벤트 및 속성은 백엔드에서 각 플러그인 질문에 답합니다:

149 

150| 질문 | OpenTelemetry 이벤트 또는 속성 |

151| :-------------------------- | :----------------------------------------------------------------------------------------------------------------------------- |

152| 어떤 플러그인이 설치되고 어디서 설치되는가 | [`claude_code.plugin_installed`](/docs/ko/monitoring-usage#plugin-installed-event), 설치당 하나 |

153| 어떤 플러그인이 몇 개 세션에서 활성화되는가 | [`claude_code.plugin_loaded`](/docs/ko/monitoring-usage#plugin-loaded-event), 세션 시작 시 활성화된 플러그인당 하나 |

154| 어떤 스킬이 활성화되고 어떤 플러그인이 소유하는가 | [`claude_code.skill_activated`](/docs/ko/monitoring-usage#skill-activated-event), 플러그인 스킬의 경우 `plugin.name` 및 `marketplace.name` 포함 |

155| 플러그인의 훅이 보고하는 것 | [`claude_code.hook_plugin_metrics`](/docs/ko/monitoring-usage#hook-plugin-metrics-event), 공식 마켓플레이스 플러그인의 훅에 대해서만 내보냄 |

156| 플러그인이 API 지출에서 비용이 드는 것 | [비용 카운터](/docs/ko/monitoring-usage#cost-counter)의 `plugin.name` 및 `marketplace.name`, 활성 스킬 또는 서브에이전트가 플러그인에 속할 때 설정 |

157 

158<h3 id="redacted-plugin-names-in-your-backend">

159 백엔드의 수정된 플러그인 이름

160</h3>

161 

162공식 마켓플레이스의 플러그인은 플러그인 이름과 마켓플레이스 이름을 백엔드에 그대로 보고합니다. 다른 모든 플러그인의 이름은 기본적으로 수정되거나 생략됩니다(조직의 자신의 마켓플레이스의 플러그인 포함). 플러그인의 [신뢰 계층](/docs/ko/plugins/security#find-plugins-in-telemetry)이 어느 것을 결정합니다.

163 

164일부 이벤트에서 실제 이름을 얻으려면, 익스포터를 구성하는 동일한 [관리 설정](/docs/ko/monitoring-usage#administrator-configuration)의 `env` 블록에서 텔레메트리를 내보내는 머신에서 [`OTEL_LOG_TOOL_DETAILS`](/docs/ko/monitoring-usage#common-configuration-variables) 환경 변수를 `1`로 설정합니다:

165 

166| 이벤트 | 기본값 | `OTEL_LOG_TOOL_DETAILS=1` 포함 |

167| :------------------------------------ | :-------------------------------------------------------------------------------------- | :------------------------------------------ |

168| `plugin_loaded` | `plugin.name` 및 `marketplace.name`은 리터럴 문자열 `third-party` | 실제 이름 |

169| `plugin_installed`, `skill_activated` | `plugin.name` 및 `marketplace.name` 생략; `skill_activated`에서 `skill.name`은 `custom_skill` | 실제 이름 |

170| 비용 카운터 | `plugin.name`은 `third-party`; `marketplace.name` 없음 | 실제 `plugin.name`; `marketplace.name` 여전히 없음 |

171 

172`plugin_loaded`에서, `plugin_id_hash`는 여전히 기본적으로 각 플러그인을 식별하므로, 서로 다른 타사 플러그인을 계산할 수 있습니다.

173 

174<h3 id="query-the-analytics-api">

175 Analytics API 쿼리

176</h3>

177 

178Enterprise 플랜에서, Analytics API는 익스포터가 필요 없이 Anthropic의 기록에서 "조직이 설치하고 호출하는 플러그인"에 답합니다. [`GET /v1/organizations/analytics/plugins`](https://platform.claude.com/docs/en/api/admin/analytics/plugins/list)는 Claude Code 및 Cowork에서 플러그인당 일일 설치 및 호출 수를 반환하며, 사용자, RBAC 그룹 또는 제품별로 그룹화할 수 있습니다.

179 

180플러그인 이름 없이 Anthropic에 도달하는 플러그인 활동은 하나의 집계 `third-party` 행에 나타납니다. [텔레메트리에서 플러그인 찾기](/docs/ko/plugins/security#find-plugins-in-telemetry)는 Claude Code가 이름으로 보고하는 플러그인을 말합니다.

181 

182`read:analytics` 범위가 있는 API 키로 요청을 인증합니다. Primary Owner는 [프로그래밍 방식으로 데이터 액세스](/docs/ko/analytics#access-data-programmatically)에서 설명한 대로 이를 생성합니다.

183 

184매개변수 및 응답 필드는 [엔드포인트 참조](https://platform.claude.com/docs/en/api/admin/analytics/plugins/list)를 참조합니다.

185 

186<h2 id="next-steps">

187 다음 단계

188</h2>

189 

190* [플러그인을 evals로 테스트](/docs/ko/plugin-evals): 비용뿐만 아니라 플러그인이 Claude를 얼마나 안정적으로 조종하는지 측정합니다

191* [Always-on 수치 낮추기](#lower-the-always-on-figure): 플러그인의 per-turn 비용을 줄이기 위해 플러그인에서 변경할 사항

192* [플러그인 보안 및 신뢰](/docs/ko/plugins/security#find-plugins-in-telemetry): 어떤 텔레메트리 필드가 플러그인 이름을 전달하고 언제 수정되는지

193* [사용량 모니터링](/docs/ko/monitoring-usage): 전체 OpenTelemetry 이벤트 참조

plugins/org.md +460 −0 created

Details

1> ## Documentation Index

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

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

4 

5# 조직을 위한 Claude Code 플러그인 관리

6 

7> 관리되는 설정을 통해 조직의 모든 머신에 Claude Code가 설치하고 허용하는 플러그인을 제어합니다.

8 

9관리되는 설정을 통해 조직의 모든 머신에 Claude Code가 설치하고 허용하는 플러그인을 결정할 수 있습니다. 사용자는 이를 재정의할 수 없습니다. [서버 관리 설정](/docs/ko/server-managed-settings)을 claude.ai 관리자 콘솔에서 제공하거나 MDM 또는 `managed-settings.json` 파일을 통해 엔드포인트 관리 설정으로 제공할 수 있습니다. 이 페이지의 대부분의 제어는 관리되는 설정에서만 적용됩니다.

10 

11이 페이지는 관리자용이며, 여기의 설정은 Claude Code를 관리합니다.

12 

13<Note>

14 다음 경우는 다른 페이지에서 다룹니다:

15 

16 * **자신을 위한 플러그인 설치**: [플러그인 설치](/docs/ko/plugins/install)에서 시작하세요

17 * **claude.ai 및 Cowork에서 멤버가 사용할 수 있는 플러그인 제어**: 도움말 센터의 [조직을 위한 플러그인 관리](https://support.claude.com/en/articles/13837433)를 참조하세요

18 * **claude.ai의 관리자 설정에 있는 플러그인 페이지**: [**조직 설정 > 플러그인 및 스킬**](https://claude.ai/admin-settings/skills?tab=inventory)은 멤버의 claude.ai 계정에 대해 플러그인을 켜고, 이는 Claude Code에 [동기화된 플러그인](/docs/ko/plugins/loading#synced-plugins)으로 도달합니다. 이 페이지의 키를 설정하지 않습니다

19</Note>

20 

21섹션은 대부분의 롤아웃이 따르는 순서를 따릅니다: 모든 사람 또는 저장소별로 [플러그인 필요](#pre-install-and-require-plugins), [컨테이너 및 CI 시드](#seed-containers-and-ci), 사용자가 추가할 수 있는 것 [제한](#restrict-what-users-can-install), [업데이트 정책 설정](#set-update-policy), 그 다음 [설치된 것 감사](#audit-and-review). 모든 정책 키를 한 곳에서 검토하려면 [제어 매트릭스](#control-matrix)를 참조하세요.

22 

23<h2 id="pre-install-and-require-plugins">

24 플러그인 사전 설치 및 필수 설정

25</h2>

26 

27마켓플레이스는 Claude Code가 git 저장소, URL 또는 로컬 경로에서 가져오는 플러그인 카탈로그입니다. 머신에 마켓플레이스를 등록하면 Claude Code는 해당 마켓플레이스에서 플러그인을 설치할 수 있습니다.

28 

29플릿에 플러그인을 설치하려면 조직의 모든 머신이 읽는 정책 파일 또는 서버 전달 정책인 [관리 설정](/docs/ko/managed-settings)에서 두 개의 키를 함께 설정합니다. `extraKnownMarketplaces`는 각 머신에 마켓플레이스를 등록하고, `enabledPlugins`는 설치 및 활성화할 플러그인의 이름을 지정합니다. [전달 메커니즘 선택](#choose-a-delivery-mechanism)에서는 관리 설정이 각 머신에 도달하는 방법을 설명합니다.

30 

31<h3 id="choose-a-delivery-mechanism">

32 전달 메커니즘 선택

33</h3>

34 

35관리 설정은 다음 세 가지 전달 메커니즘 중 하나를 통해 머신에 도달합니다.

36 

37* **서버 관리 설정**: [**조직 설정 > Claude Code > 관리 설정**](https://claude.ai/admin-settings/claude-code)에서 플러그인 키를 JSON으로 설정합니다. Claude 조직에서 [소유자 역할](/docs/ko/server-managed-settings#access-control)이 필요합니다. 클라우드 세션은 플러그인을 설치하기 전에 이러한 설정을 가져옵니다.

38* **MDM 정책**: macOS에서는 최상위 키가 설정 키인 plist를 전달합니다. Windows에서는 전체 JSON 문서를 레지스트리 값의 문자열로 저장합니다. plist 도메인과 레지스트리 키는 [각 메커니즘이 정책을 저장하는 위치](/docs/ko/managed-settings#where-each-mechanism-stores-the-policy)에 있습니다.

39* **관리 설정 파일**: 플랫폼의 시스템 경로에 `managed-settings.json`을 배치합니다. 옆의 `managed-settings.d/` 드롭인 디렉터리에 파일을 추가할 수도 있습니다. 플랫폼별 파일 경로는 [각 메커니즘이 정책을 저장하는 위치](/docs/ko/managed-settings#where-each-mechanism-stores-the-policy)에 있으며, 드롭인 병합 규칙은 [파일 기반 정책을 팀 간에 분할](/docs/ko/managed-settings#split-a-file-based-policy-across-teams)에 있습니다.

40 

41Claude for Teams 또는 Enterprise 조직이 claude.ai에 있고 모든 디바이스가 MDM 관리 대상이 아닌 경우 서버 관리 설정을 사용합니다. 그렇지 않으면 MDM 정책 또는 관리 설정 파일을 사용합니다. 트레이드오프는 [서버 관리 설정과 엔드포인트 관리 설정 간 선택](/docs/ko/server-managed-settings#choose-between-server-managed-and-endpoint-managed-settings)을 참조합니다.

42 

43<h4 id="which-managed-source-applies-on-a-machine">

44 머신에 적용되는 관리 소스

45</h4>

46 

47기본적으로 이 세 가지 소스 중 하나만 머신에 적용됩니다. Claude Code는 정책 키를 전달하는 첫 번째 소스를 사용하며, 서버 관리 설정을 먼저 확인한 다음 MDM 정책, 마지막으로 관리 설정 파일을 확인합니다. 서버 관리 설정이 관련 없는 정책 키를 하나라도 전달하면 Claude Code는 해당 머신의 MDM 정책 또는 관리 설정 파일의 플러그인 키를 무시합니다. 단, [모든 소스에서 읽는 키](/docs/ko/managed-settings#keys-read-from-every-admin-source)는 제외됩니다.

48 

49모든 소스를 대신 적용하려면 [`managedSourcesBehavior`](/docs/ko/managed-settings#compose-every-managed-source)를 `"merge"`로 설정합니다.

50 

51[Claude Code가 관리 소스를 결합하는 방법](/docs/ko/managed-settings#how-claude-code-combines-managed-sources)에서는 두 모드 모두에서 Claude Code가 모든 소스에서 읽는 키도 나열합니다.

52 

53<h3 id="require-a-marketplace-and-its-plugins">

54 마켓플레이스 및 해당 플러그인 필수 설정

55</h3>

56 

57`extraKnownMarketplaces` 아래에 마켓플레이스를 추가합니다. 마켓플레이스의 `marketplace.json`에서 자신의 `name`을 키로 사용합니다. 그런 다음 각 플러그인을 `enabledPlugins` 아래에 `plugin-name@marketplace-name`으로 추가합니다. 각 마켓플레이스 항목은 `source` 필드가 있는 `source` 객체를 포함하며, 이 필드는 `github`와 같은 유형의 이름을 지정합니다. 이 관리 설정 예제는 조직 마켓플레이스를 등록하고 해당 마켓플레이스에서 두 개의 플러그인을 강제로 활성화합니다.

58 

59```json theme={null}

60{

61 "extraKnownMarketplaces": {

62 "your-marketplace": {

63 "source": { "source": "github", "repo": "your-org/your-marketplace" },

64 "autoUpdate": true

65 }

66 },

67 "enabledPlugins": {

68 "code-formatter@your-marketplace": true,

69 "deploy-helper@your-marketplace": true

70 }

71}

72```

73 

74설정이 머신에 도달한 후 Claude Code는 사용자의 다음 세션 시작 시 마켓플레이스를 등록하고 두 플러그인을 설치합니다. 사용자는 `/plugin`에서 이들을 볼 수 있으며, 자신의 범위에서 하나를 비활성화해도 관리 설정이 다른 모든 범위보다 우선하기 때문에 로드되는 것을 중단하지 않습니다.

75 

76모든 범위에서 플러그인을 차단하고 마켓플레이스 목록에서 숨기려면 대신 관리 `enabledPlugins`에서 `false`로 설정합니다.

77 

78마켓플레이스에 맞게 `autoUpdate` 및 `source` 필드를 조정합니다.

79 

80* **`autoUpdate`**: `true`는 마켓플레이스와 해당 플러그인을 백그라운드에서 새로 고침 상태로 유지하고, `false`는 이를 끕니다. [업데이트 정책 설정](#set-update-policy)을 참조합니다.

81* **`source`**: `github`는 여러 소스 유형 중 하나입니다. `git` 소스는 GitLab 또는 내부 호스트의 `url`을 사용하고, `url` 소스는 호스팅된 `marketplace.json`의 주소를 사용합니다. 모든 소스 형태는 [마켓플레이스 참조](/docs/ko/plugins/marketplace-reference)에 있습니다.

82 

83마켓플레이스가 비공개 git 저장소인 경우 각 사용자는 읽기 액세스 권한이 필요합니다. git 기반 마켓플레이스의 클론은 사용자의 머신에서 git을 사용하여 실행되며, 저장된 자격 증명을 사용하고 프롬프트가 없습니다. git 호스트 계정이 없는 사용자의 경우 [시드](#seed-containers-and-ci)를 대신 사용합니다.

84 

85관리 항목은 또한 같은 이름의 마켓플레이스 항목 또는 다른 소스의 `--plugin-dir` 복사본을 재정의합니다.

86 

87* **마켓플레이스**: 관리 마켓플레이스 항목은 같은 이름의 낮은 우선순위 항목을 대체하며, 두 항목의 필드는 병합되지 않습니다.

88* **`--plugin-dir` 복사본**: `--plugin-dir`은 한 세션 동안 로컬 디렉터리에서 플러그인을 로드합니다. 해당 복사본의 이름이 관리 `enabledPlugins`가 지정하는 플러그인과 일치할 때 발생하는 상황은 [이름 충돌](/docs/ko/plugins/loading#name-conflicts)을 참조합니다.

89 

90Anthropic의 공식 마켓플레이스 `claude-plugins-official`은 `enabledPlugins`가 해당 플러그인 중 하나를 `true`로 설정할 때 `extraKnownMarketplaces` 항목이 필요하지 않습니다. 해당 `name@claude-plugins-official` 항목은 이러한 키가 적용되는 모든 곳에서 마켓플레이스를 선언합니다. 해당 플러그인을 활성화하지 않으면서도 모든 머신에 등록하려면 [공식 마켓플레이스 및 자신의 마켓플레이스 허용](#allow-the-official-marketplace-and-your-own)에서 하는 것처럼 명시적 항목을 제공합니다.

91 

92<h3 id="require-plugins-per-repository">

93 저장소별 플러그인 필수 설정

94</h3>

95 

96전체 플릿 대신 하나의 저장소의 기여자를 대상으로 하려면 해당 저장소의 `.claude/settings.json`에서 `extraKnownMarketplaces` 및 `enabledPlugins`를 설정합니다. `extraKnownMarketplaces` 항목은 기여자가 신뢰한 폴더에만 적용되며, 신뢰하지 않는 폴더에서는 Claude Code가 메시지 없이 이들을 무시합니다.

97 

98* **대화형 세션**: Claude Code는 기여자가 해당 폴더에 대한 [작업 영역 신뢰 대화](/docs/ko/permissions#what-runs-before-you-trust-a-folder)를 수락한 후에만 마켓플레이스를 등록합니다.

99* **[비대화형 `-p` 실행](/docs/ko/headless)**: 항목은 사용자가 이미 대화형으로 신뢰를 수락한 폴더 또는 `~/.claude.json`에서 `hasTrustDialogAccepted` 플래그를 설정한 폴더에만 적용됩니다.

100 

101마켓플레이스가 상대 경로로 나열하는 플러그인은 저장소의 `extraKnownMarketplaces` 항목이 적용되면 마켓플레이스 복사본에서 로드됩니다. 마켓플레이스 항목이 플러그인의 자체 GitHub 저장소와 같은 외부 소스를 대신 가리키는 플러그인은 저장소의 설정만으로는 설치되지 않습니다. 각 기여자는 [플러그인 설치](/docs/ko/plugins/install)에서 설명하는 대로 `claude plugin install <name>@<marketplace> --scope project`를 실행할 때까지 `Plugin "<name>" is enabled in project settings but isn't installed`를 봅니다.

102 

103상대 경로가 있는 로컬 `directory` 또는 `file` 소스를 사용하는 경우 경로는 저장소의 주 체크아웃에 대해 확인됩니다. git worktree에서 Claude Code를 실행할 때 경로는 여전히 주 체크아웃을 가리키므로 모든 worktree는 같은 마켓플레이스 위치를 공유합니다.

104 

105종속성이 있는 플러그인 번들을 배포하려면 [플러그인 종속성](/docs/ko/plugins/dependencies)에서 설명하는 대로 번들 플러그인을 `enabledPlugins`에 넣습니다.

106 

107<h3 id="when-each-surface-applies-the-plugin-keys">

108 각 표면이 플러그인 키를 적용하는 시기

109</h3>

110 

111표는 관리 설정 및 저장소의 `.claude/settings.json`에서 각 종류의 Claude Code 세션이 `extraKnownMarketplaces` 및 `enabledPlugins`를 적용하는 시기를 보여줍니다. Desktop 앱 및 IDE 확장의 경우 [플러그인 설치](/docs/ko/plugins/install#install-a-plugin)를 참조합니다.

112 

113| 표면 | 관리 `extraKnownMarketplaces` 및 `enabledPlugins` | 저장소 `.claude/settings.json` |

114| :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------ |

115| 터미널, 대화형 | 설정을 받는 모든 머신에서 세션 시작 시 적용됨 | `extraKnownMarketplaces`는 신뢰 후 적용됨; `enabledPlugins`는 세션 시작 시 적용됨 |

116| `-p` 및 CI | 세션 시작 시 적용되며, 설치는 백그라운드에서 실행됨 | 신뢰하는 폴더에서만 `extraKnownMarketplaces`; `enabledPlugins` 적용됨 |

117| 클라우드 세션 | Anthropic 호스팅 환경에서는 서버 관리 설정만 세션에 도달하며, 플러그인을 설치하기 전에 대기합니다. MDM 정책 및 관리 설정 파일은 사용자의 머신에 남아 있습니다. 자체 호스팅 환경의 경우 [정책이 적용되는 위치 및 시기](/docs/ko/managed-settings#where-and-when-a-policy-applies)를 참조합니다. | [플러그인 설치](/docs/ko/plugins/install#install-a-plugin) 아래의 **클라우드 세션** 탭을 참조합니다. |

118 

119`-p` 또는 CI 실행에서 마켓플레이스와 플러그인은 백그라운드에서 설치되므로 플러그인이 첫 번째 턴에서 누락될 수 있습니다. `CLAUDE_CODE_SYNC_PLUGIN_INSTALL=1`을 설정하여 첫 번째 쿼리 전에 설치를 기다리도록 실행합니다.

120 

121<h3 id="confirm-the-rollout">

122 배포 확인

123</h3>

124 

125마켓플레이스와 플러그인이 머신 또는 CI 실행에 도착했는지 확인합니다.

126 

127* **한 머신에서**: Claude Code를 시작하고 `/plugin`을 실행합니다. 마켓플레이스와 플러그인이 나열됩니다.

128* **CI에서**: `--output-format stream-json --verbose`와 함께 `claude -p`를 실행합니다. `init` 이벤트는 `plugins` 아래에 로드된 플러그인을 나열합니다.

129 

130<h2 id="seed-containers-and-ci">

131 컨테이너 및 CI 시드

132</h2>

133 

134런타임에 복제할 수 없는 컨테이너 이미지 및 CI 러너의 경우 빌드 시간에 플러그인 디렉토리를 미리 채우고 `CLAUDE_CODE_PLUGIN_SEED_DIR`을 가리키세요. Claude Code는 시작 시 시드의 마켓플레이스를 등록하고 복제 없이 시드에서 플러그인 캐시를 로드합니다.

135 

136시드는 또한 git 호스트 계정이 없는 사용자를 제공합니다.

137 

138<Note>

139 CI/CD 환경에서는 비공개 저장소에서 플러그인을 설치하기 전에 git 자격 증명 도우미를 구성하세요. GitHub Actions에서는 마켓플레이스 저장소에 대한 읽기 액세스 권한이 있는 토큰을 `GH_TOKEN`으로 내보낸 다음 `gh auth setup-git`을 실행하세요. 기본 워크플로우 토큰은 워크플로우의 자신의 저장소에만 액세스할 수 있으므로 다른 저장소의 비공개 마켓플레이스는 개인 액세스 토큰 또는 앱 토큰이 필요합니다.

140</Note>

141 

142<Steps>

143 <Step title="빌드 시간에 시드에 설치">

144 `CLAUDE_CODE_PLUGIN_CACHE_DIR`을 시드 경로로 설정하여 마켓플레이스 및 플러그인이 `~/.claude/plugins` 대신 그곳에 설치되도록 하세요:

145 

146 ```bash theme={null}

147 CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin marketplace add your-org/your-marketplace

148 CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin install code-formatter@your-marketplace

149 ```

150 

151 시드는 `~/.claude/plugins`와 같은 레이아웃을 가집니다: `known_marketplaces.json`, `marketplaces/<name>/`, 및 `cache/<marketplace>/<plugin>/<version>/`. 시드를 빌드한 경로와 다른 경로에 마운트할 수 있습니다.

152 </Step>

153 

154 <Step title="런타임을 시드로 가리키기">

155 컨테이너의 환경에서 `CLAUDE_CODE_PLUGIN_SEED_DIR=/opt/claude-seed`를 설정하세요. 여러 시드를 사용하려면 Unix에서는 `:`로, Windows에서는 `;`로 경로를 분리하세요. Claude Code는 주어진 마켓플레이스 또는 플러그인 캐시를 포함하는 첫 번째 시드를 사용합니다.

156 </Step>

157 

158 <Step title="플러그인 활성화">

159 시드의 플러그인은 자동으로 활성화되지 않습니다. 관리되는 설정 또는 저장소의 `.claude/settings.json`에서 로드하려는 각 시드 플러그인에 대해 `enabledPlugins`을 설정하세요.

160 </Step>

161</Steps>

162 

163시드를 확인하려면 이미지에서 `--output-format stream-json --verbose`를 사용하여 `claude -p`를 실행하세요. `init` 이벤트의 `plugins` 목록에서 각 로드된 플러그인의 `path`는 시드 아래에 있습니다(예: `/opt/claude-seed/cache/your-marketplace/code-formatter/1.0.0`).

164 

165시드 마켓플레이스는 다음 규칙을 따릅니다:

166 

167* **읽기 전용**: Claude Code는 시드에 절대 쓰지 않으며 시드 마켓플레이스에 대해 `autoUpdate`를 강제로 끕니다.

168* **시드 항목이 우선**: 각 시작 시 시드에서 선언된 마켓플레이스는 같은 이름의 사용자 항목을 덮어씁니다. 사용자는 마켓플레이스를 제거하는 대신 `claude plugin disable`로 시드 플러그인을 거부합니다.

169* **업데이트 및 제거 실패**: `claude plugin marketplace update <name>` 및 시드 마켓플레이스에서 `--scope` 없이 `remove`하면 시드 디렉토리의 이름을 지정하는 메시지와 함께 실패합니다.

170* **정책이 여전히 적용됨**: [허용 목록 및 차단 목록](#restrict-what-users-can-install)은 시드 마켓플레이스의 기록된 소스도 확인합니다. 시드를 빌드한 소스를 허용하세요.

171 

172아웃바운드 git 액세스가 없는 플릿의 경우 시드를 공유 마운트의 `directory` 또는 `file` 마켓플레이스 소스와 결합하세요. `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1`도 설정하세요. 이는 또한 [플러그인 자동 업데이트](/docs/ko/plugins/loading#when-auto-update-runs)를 끕니다. 프록시를 사용할 수 있으면 [프록시 구성](/docs/ko/network-config#proxy-configuration)에서 설정할 변수를 참조하세요.

173 

174<h2 id="restrict-what-users-can-install">

175 사용자가 설치할 수 있는 것 제한

176</h2>

177 

178관리되는 `strictKnownMarketplaces` 허용 목록 및 `blockedMarketplaces` 차단 목록은 플러그인이 올 수 있는 마켓플레이스 소스를 결정합니다. 마켓플레이스의 소스는 Claude Code가 가져오는 git 저장소, URL 또는 로컬 경로입니다. 두 목록 모두 플러그인이 오는 마켓플레이스의 소스와 일치하며, 해당 마켓플레이스 내의 플러그인 자신의 항목과는 일치하지 않습니다.

179 

180공식 마켓플레이스 및 자신의 마켓플레이스를 허용하는 일반적인 잠금의 경우 [공식 마켓플레이스 및 자신의 마켓플레이스 허용](#allow-the-official-marketplace-and-your-own)을 참조하세요. 사용자가 로컬 디렉토리 또는 URL에서 플러그인을 로드할 수 없도록 [`disableSideloadFlags`](#control-matrix)와 쌍을 이루세요.

181 

182두 목록 모두 다운로드 전과 세션 시작 시 적용됩니다:

183 

184* **다운로드 전**: 목록은 사용자가 마켓플레이스를 추가할 때 및 모든 설치, 업데이트, 새로 고침 및 자동 업데이트 시 적용됩니다.

185* **세션 시작 시**: 목록은 이미 설치된 플러그인에 다시 적용되므로 마켓플레이스 소스가 더 이상 일치하지 않는 설치된 플러그인은 로드되지 않습니다. `/plugin`은 `Marketplace "<name>" is not in the allowed marketplace list` 또는 `Marketplace "<name>" is blocked by enterprise policy`로 나열합니다.

186 

187두 목록이 적용되는 위치는 설정하는 위치에 따라 다릅니다:

188 

189* **claude.ai 관리자 콘솔**: Claude Code는 [서버 관리 설정을 읽는](/docs/ko/managed-settings#where-and-when-a-policy-applies) 세션에서 두 목록을 적용합니다. claude.ai는 또한 조직의 누군가가 claude.ai에서 git 저장소에서 새 마켓플레이스를 추가하거나 Claude Desktop 앱의 Code 탭 외부에서 **사용자 정의**에서 추가할 때 확인합니다. 이는 멤버가 자신의 계정에 대해 추가하는 마켓플레이스 및 [**조직 설정 > 플러그인**](https://claude.ai/admin-settings/plugins) 아래에서 전체 조직에 대해 추가되는 마켓플레이스를 다룹니다. claude.ai는 허용 목록이 허용하지 않거나 차단 목록이 지정하는 저장소를 거부합니다. 목록을 설정하기 전에 어느 곳에서든 추가된 마켓플레이스를 다시 확인하지 않으며, 업로드된 플러그인을 확인하지 않습니다.

190* **관리되는 설정 파일, OS 수준 정책 또는 기타 관리되는 소스**: Claude Code는 해당 소스를 읽는 곳에서 두 목록을 적용합니다. claude.ai는 이를 읽지 않습니다.

191 

192허용 목록이 설정되어 있거나 차단 목록이 [`skills-dir`](#blocklist-with-blockedmarketplaces) 이외의 소스를 지정하는 동안 Claude Code가 찾을 수 없는 마켓플레이스의 플러그인은 로드되지 않습니다. `/plugin`은 찾을 수 없음 오류 대신 정책 오류를 표시합니다. 일반적인 경우는 아무도 등록하지 않은 마켓플레이스에 대한 오래된 `enabledPlugins` 항목입니다.

193 

194<h3 id="control-matrix">

195 제어 매트릭스

196</h3>

197 

198표는 각 플러그인 정책 키, 적용하는 것 및 할 수 없는 것을 나열합니다.

199 

200| 키 | 적용하는 것 | 할 수 없는 것 |

201| :----------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------- |

202| `strictKnownMarketplaces` | 마켓플레이스 소스의 허용 목록. `[]`는 공식 마켓플레이스를 포함한 모든 소스를 차단합니다. 별칭: `allowedMarketplaces` | 마켓플레이스를 등록하거나, 허용된 마켓플레이스 내의 항목을 제한하거나, `--plugin-dir`을 차단하지 않습니다 |

203| `blockedMarketplaces` | 마켓플레이스 소스의 차단 목록, 허용 목록 전에 확인됨 | 이미 일치하지 않는 소스에서 등록된 마켓플레이스를 차단하지 않습니다 |

204| `syncClaudeAiPlugins` | 각 사용자의 계정에서 [동기화된](/docs/ko/plugins/loading#synced-plugins) 플러그인을 Claude Code가 다운로드하고 로드하는 것을 중지하려면 `false`로 설정하세요. Claude Code v2.1.273 이상 필요 | 하나의 동기화된 플러그인을 끄지 않습니다. 그렇게 하려면 [`enabledPlugins`](/docs/ko/settings-reference#enabledplugins)에서 `"<name>@synced": false`를 설정하세요 |

205| `enabledPlugins` | `true`는 강제 활성화하고, `false`는 모든 범위에서 차단하고 플러그인을 숨깁니다 | 마켓플레이스가 등록되거나 허용되지 않은 플러그인을 설치하지 않습니다 |

206| `disableSideloadFlags` | `--plugin-dir`, `--plugin-url`, `--agents`, Agent SDK `plugins` 옵션 및 비 SDK `--mcp-config`를 시작 시 거부하고, [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ko/env-vars#variables) 변수에 지정된 폴더를 같은 방식으로 거부합니다 | `.mcp.json`, `claude mcp add` 또는 SDK 제공 서버를 제한하지 않습니다. [`allowedMcpServers`](/docs/ko/managed-mcp)와 쌍을 이루세요 |

207| `disableCommandPluginSources` | `command` 소스가 있는 플러그인이 설치, 업데이트 또는 로드되는 것을 차단합니다. `command` 소스는 플러그인 디렉토리가 머신에서 명령을 실행하여 생성되는 것입니다. 설정되지 않으면 `allowManagedHooksOnly`의 값을 사용합니다 | 다른 소스 유형에 영향을 주지 않습니다 |

208| `allowManagedHooksOnly` | 실행할 수 있는 훅을 제한합니다. [`allowManagedHooksOnly`](/docs/ko/settings-reference#allowmanagedhooksonly)를 참조하세요 | 사용자가 자신이 활성화한 플러그인의 훅을 신뢰하지 않습니다 |

209| `strictPluginOnlyCustomization` | 플러그인, 관리되는 설정 또는 Claude Code의 기본 제공에서 오지 않는 스킬, 에이전트, 훅 및 MCP 서버를 차단합니다. 모든 네 가지 유형을 다루려면 `true`로 설정하거나 일부를 다루려면 `skills`, `agents`, `hooks` 및 `mcp` 값의 배열(예: `["skills", "hooks"]`)로 설정하세요 | 사용자가 설치하는 플러그인을 제한하지 않습니다. `strictKnownMarketplaces`와 쌍을 이루세요 |

210| `pluginSuggestionMarketplaces` | 플러그인이 설치 제안으로 나타날 수 있는 마켓플레이스. [플러그인 권장](#recommend-plugins)을 참조하세요 | 기본 제공 팁에 영향을 주지 않습니다 |

211| `pluginTrustMessage` | 플러그인이 설치되기 전에 `/plugin`이 표시하는 신뢰 경고에 텍스트를 추가합니다 | 경고 자신의 텍스트를 변경하지 않습니다 |

212| `allowedChannelPlugins` | 채널 메시지를 푸시할 수 있는 플러그인의 기본 목록을 대체합니다. `channelsEnabled: true` 필요 | [채널 플러그인이 실행할 수 있는 것 제한](/docs/ko/channels#restrict-which-channel-plugins-can-run)을 참조하세요 |

213| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](/docs/ko/env-vars) | 대화형 터미널 세션이 공식 마켓플레이스를 자동 등록하는 것을 중지합니다 | 이미 등록된 마켓플레이스를 제거하지 않습니다. 허용 목록 및 차단 목록은 이 없이도 같은 자동 등록을 제어합니다. 이를 설정하여 시작한 머신은 설정을 해제한 후 자동 등록을 재개하지 않습니다 |

214 

215표의 모든 키는 `enabledPlugins`, `syncClaudeAiPlugins` 및 `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` 제외하고 관리되는 설정입니다:

216 

217* **`enabledPlugins`**: 모든 범위에서 설정할 수 있으며 관리되는 설정이 이를 잠급니다.

218* **`syncClaudeAiPlugins`**: 각 사용자는 자신의 사용자 또는 로컬 설정에서도 설정할 수 있습니다. [설정 참조에서 해당 범위](/docs/ko/settings-reference#syncclaudeaiplugins)를 참조하세요.

219* **`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`**: 이는 [전체 플릿에 대해 업데이트 끄기](#turn-updates-off-for-the-whole-fleet) 아래에 표시된 관리되는 `env` 블록을 통해 제공하는 환경 변수입니다.

220 

221여기의 각 설정 키는 [설정 참조](/docs/ko/settings-reference)에 항목이 있습니다.

222 

223<h4 id="aliases-for-the-marketplace-keys">

224 마켓플레이스 키의 별칭

225</h4>

226 

227`strictKnownMarketplaces`는 `allowedMarketplaces`로도 철자할 수 있고, `extraKnownMarketplaces`는 `additionalMarketplaces`로도 철자할 수 있습니다.

228 

229* **버전**: 별칭은 Claude Code v2.1.232 이상이 필요하며, 이전 클라이언트는 이를 무시합니다. 혼합 플릿이 읽는 파일에서 정규 이름을 유지하세요.

230* **두 철자 모두 설정**: 파일이 두 철자를 모두 설정할 때 정규 키의 값이 적용됩니다.

231 

232<h3 id="allowlist-with-strictknownmarketplaces">

233 `strictKnownMarketplaces`를 사용한 허용 목록

234</h3>

235 

236허용 목록을 이 소스 객체의 목록으로 설정하세요. 대부분의 항목은 정확히 일치하고, `hostPattern` 및 `pathPattern` 항목은 정규식으로 일치하며, `github` 소유자 와일드카드는 소유자별로 일치합니다:

237 

238* **`github`**: `{ "source": "github", "repo": "your-org/approved-plugins" }`, 선택적 `ref` 및 `path` 포함.

239* **`github` 소유자 와일드카드**: `{ "source": "github", "repo": "your-org/*" }`는 해당 소유자 아래의 모든 저장소와 일치합니다. `*`는 전체 저장소 이름을 나타내야 합니다. Claude Code는 `*/plugins` 및 `your-org/tools-*`와 같은 항목을 유효하지 않은 것으로 무시하므로 아무것도 일치하지 않습니다. Claude Code v2.1.223 이상 필요.

240* **`git`**: `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git" }`, 선택적 `ref` 및 `path` 포함.

241* **`url`**: `{ "source": "url", "url": "https://plugins.example.com/marketplace.json" }`, 선택적 `headers` 포함.

242* **`file` 및 `directory`**: `{ "source": "file", "path": "/opt/marketplace/marketplace.json" }` 또는 `{ "source": "directory", "path": "/opt/marketplace/plugins" }`, 절대 경로 포함.

243* **`hostPattern`**: `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }`, `github`, `git` 및 `url` 소스의 호스트에 대해 일치합니다. 패턴은 호스트명의 어디든 일치하므로 전체 호스트를 일치시키려면 표시된 대로 `^` 및 `$`로 고정하세요. `github` 소스는 항상 `github.com`으로 계산됩니다. 개발자가 자신의 마켓플레이스를 만드는 GitHub Enterprise Server 또는 GitLab 호스트에 `hostPattern` 항목을 사용하세요. [GHES 페이지](/docs/ko/github-enterprise-server#allowlist-ghes-marketplaces-in-managed-settings)에 작동하는 예제가 있습니다.

244* **`pathPattern`**: `{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }`, `file` 및 `directory` 소스의 `path`에 대해 일치합니다. 패턴은 경로의 어디든 일치하므로 디렉토리 접두사를 고정하려면 `^`로 시작하세요. `".*"`는 모든 로컬 경로를 허용합니다.

245* **`skills-dir`**: `{ "source": "skills-dir" }` 허용 목록이 설정되어 있는 동안 [스킬 디렉토리 플러그인](#keep-skills-directory-plugins-loading)이 로드되도록 유지하고 마켓플레이스와 일치하지 않습니다.

246 

247<h4 id="how-entries-match">

248 항목이 일치하는 방법

249</h4>

250 

251`url` 항목은 `url` 값에 대해 일치합니다; `headers`는 비교되지 않습니다. `github` 및 `git` 항목의 경우 `repo` 또는 `url`, `ref` 및 `path`는 모두 일치하거나 양쪽 모두 없어야 합니다:

252 

253* `ref` 없는 항목은 `ref: "main"`이 있는 소스를 다루지 않습니다.

254* `your-org/your-marketplace`에 대한 항목은 같은 저장소를 복제하는 `git` URL을 다루지 않습니다.

255* 후행 슬래시, `.git` 접미사 또는 `https://` 대신 `ssh://`는 다른 값입니다. 마켓플레이스를 둘 이상의 URL로 복제할 수 있으면 `hostPattern` 항목을 선호하세요.

256 

257소유자 와일드카드 항목은 `ref`에 대한 정확한 규칙을 따르고 항목이 하나를 고정하지 않으면 저장소 내의 모든 `path`와 일치합니다. 와일드카드 일치는 허용 목록에서 대소문자를 구분합니다.

258 

259<h4 id="keep-skills-directory-plugins-loading">

260 스킬 디렉토리 플러그인 로드 유지

261</h4>

262 

263스킬 디렉토리 플러그인은 사용자가 `~/.claude/skills/` 또는 프로젝트의 `.claude/skills/` 아래에 `.claude-plugin/plugin.json`을 포함하는 폴더에 보관하는 플러그인입니다. `{ "source": "skills-dir" }` 항목 없이 허용 목록을 설정하면 로드되지 않습니다. 해당 매니페스트 없는 일반 [스킬](/docs/ko/skills)(즉, `SKILL.md`)은 계속 로드됩니다.

264 

265<h4 id="marketplaces-hosted-on-claude-ai">

266 claude.ai에서 호스팅되는 마켓플레이스

267</h4>

268 

269허용 목록 및 차단 목록은 [claude.ai에서 호스팅되는](/docs/ko/plugins/install#add-from-claude-ai) 마켓플레이스를 해당 호스트별로 일치시킵니다. 하나를 허용하거나 차단하려면 `claude.ai`와 일치하는 `hostPattern` 항목을 `strictKnownMarketplaces` 또는 `blockedMarketplaces`에 추가하세요. 허용 목록에서 이러한 항목은 조직의 claude.ai 마켓플레이스 및 claude.ai 기본 마켓플레이스를 허용하지만 멤버의 자신의 claude.ai 업로드로 만든 마켓플레이스 또는 범위를 claude.ai가 명시하지 않은 마켓플레이스는 허용하지 않습니다. Claude Code v2.1.273 이상 필요.

270 

271<h4 id="lock-every-source-out">

272 모든 소스 잠금

273</h4>

274 

275빈 허용 목록 `[]`는 공식 마켓플레이스를 포함한 모든 마켓플레이스 소스를 잠급니다.

276 

277이 잠금은 Claude Code가 마켓플레이스가 아닌 각 사용자의 계정에서 다운로드하는 [claude.ai에서 동기화된](/docs/ko/plugins/loading#synced-plugins) 플러그인을 다루지 않습니다. 이를 중지하려면 관리되는 설정에서 [`syncClaudeAiPlugins`](/docs/ko/settings-reference#syncclaudeaiplugins)를 `false`로 설정하거나 claude.ai에서 조직에 대해 스킬을 끄세요.

278 

279<h3 id="blocklist-with-blockedmarketplaces">

280 `blockedMarketplaces`를 사용한 차단 목록

281</h3>

282 

283`blockedMarketplaces`는 [`strictKnownMarketplaces`](#allowlist-with-strictknownmarketplaces)와 같은 소스 객체를 사용하며 먼저 확인되므로 두 목록 모두에 있는 소스는 차단됩니다. 차단 목록 일치는 허용 목록 일치보다 더 넓습니다:

284 

285* Git URL은 정규화되므로 하나의 `github.com` 저장소의 `git@` 및 `https://` 형식, `.git` 접미사 및 후행 슬래시는 모두 같은 항목과 일치합니다.

286* `github` 항목은 또한 동등한 `git` URL을 차단하고, 그 반대도 마찬가지입니다.

287* `owner/*` 항목의 경우 소유자 비교는 대소문자를 구분하지 않습니다.

288* `ref` 또는 `path` 없는 항목은 일치하는 저장소의 모든 ref 및 경로를 차단합니다.

289 

290이 항목은 하나의 GitHub 소유자 아래의 모든 저장소를 차단합니다:

291 

292```json theme={null}

293{

294 "blockedMarketplaces": [

295 { "source": "github", "repo": "untrusted-org/*" }

296 ]

297}

298```

299 

300`blockedMarketplaces`의 `url` 항목은 또한 사용자가 Claude Code가 [가져오는 대신 복제하는](/docs/ko/plugins/cli-reference#plugin-marketplace-add) `https://` 저장소 URL(예: 일반 `github.com` 또는 `gitlab.com` 저장소 URL)을 추가할 때 적용됩니다. 사용자는 항목이 이를 지정하면 해당 URL을 추가할 수 없습니다. 일치는 `.git` 접미사 및 사용자가 `#` 뒤에 추가하는 모든 ref를 무시합니다. Claude Code v2.1.232 이상 필요.

301 

302`{ "source": "skills-dir" }` 항목은 `~/.claude/skills/` 및 프로젝트의 `.claude/skills/` 모두에서 [스킬 디렉토리 플러그인](#keep-skills-directory-plugins-loading)이 로드되는 것을 중지합니다.

303 

304해당 항목만 지정하는 차단 목록은 활성 제한으로 계산되지 않으므로 Claude Code가 찾을 수 없는 마켓플레이스의 [플러그인이 로드되는 것을 중지하지 않습니다](#restrict-what-users-can-install).

305 

306<h3 id="allow-the-official-marketplace-and-your-own">

307 공식 마켓플레이스 및 자신의 마켓플레이스 허용

308</h3>

309 

310대부분의 조직은 공식 마켓플레이스 및 자신의 마켓플레이스를 허용하고 모든 머신이 이를 가지도록 둘 다 등록합니다. 이 관리되는 설정 정책은 두 마켓플레이스를 허용하고, 둘 다 등록하고, 두 개의 플러그인을 강제 활성화하고, `--plugin-dir`을 거부합니다:

311 

312```json theme={null}

313{

314 "strictKnownMarketplaces": [

315 { "source": "github", "repo": "anthropics/claude-plugins-official" },

316 { "source": "github", "repo": "your-org/*" },

317 { "source": "skills-dir" }

318 ],

319 "extraKnownMarketplaces": {

320 "claude-plugins-official": {

321 "source": { "source": "github", "repo": "anthropics/claude-plugins-official" }

322 },

323 "your-marketplace": {

324 "source": { "source": "github", "repo": "your-org/your-marketplace" }

325 }

326 },

327 "enabledPlugins": {

328 "code-formatter@your-marketplace": true,

329 "deploy-helper@your-marketplace": true

330 },

331 "disableSideloadFlags": true

332}

333```

334 

335이 정책이 있는 머신에서 목록 외부의 소스를 추가하려고 시도하면(예: `/plugin marketplace add https://example.com/other-marketplace.git`) `is blocked by enterprise policy` 다음에 허용된 소스를 포함하는 메시지와 함께 실패합니다. `claude --plugin-dir ./x`는 `disableSideloadFlags`의 이름을 지정하는 메시지와 함께 종료됩니다.

336 

337`{ "source": "skills-dir" }` 항목은 이 허용 목록 아래에서 [스킬 디렉토리 플러그인](#keep-skills-directory-plugins-loading)이 로드되도록 유지합니다. 해당 항목을 제거하면 로드되지 않습니다.

338 

339이 정책이 하는 것처럼 명시적 `extraKnownMarketplaces` 항목으로 두 마켓플레이스를 등록하세요. 허용 목록 또는 공식 마켓플레이스가 자신을 등록하는 것에 의존하지 마세요:

340 

341* **허용 목록은 아무것도 등록하지 않습니다**: `extraKnownMarketplaces` 항목이 등록하고, 자신이 허용 목록을 통과해야 합니다. Claude Code는 소스가 허용 목록과 일치하지 않는 관리되는 마켓플레이스를 등록하기를 거부합니다.

342* **공식 마켓플레이스는 대화형 터미널 세션에서만 자신을 등록합니다**: 거기서도 허용 목록이 이를 허용할 때만 등록합니다. `-p` 실행 또는 클라우드 세션에 연결된 터미널은 절대 등록하지 않습니다.

343* **차단된 시도는 기억됩니다**: 머신이 공식 마켓플레이스를 차단한 정책 아래에서 실행된 적이 있으면 Claude Code는 차단된 시도를 기록하고 정책이 변경된 후 재시도하지 않습니다. `[]` 잠금은 그러한 정책 중 하나입니다. 해당 머신은 이 정책의 항목과 같은 `extraKnownMarketplaces` 항목, 해당 플러그인 중 하나에 대한 `enabledPlugins` 항목 또는 수동 `/plugin marketplace add`를 통해서만 다시 등록합니다.

344 

345<h2 id="set-update-policy">

346 업데이트 정책 설정

347</h2>

348 

349마켓플레이스별, 전체 플릿 또는 릴리스 채널을 통한 사용자 그룹별로 업데이트 정책을 설정할 수 있습니다.

350 

351<h3 id="turn-auto-update-on-or-off-per-marketplace">

352 마켓플레이스별 자동 업데이트 켜기 또는 끄기

353</h3>

354 

355플러그인 자동 업데이트는 시작 후 켜진 마켓플레이스에 대해 백그라운드에서 실행됩니다. 기본적으로 어떤 마켓플레이스가 켜져 있는지는 [자동 업데이트가 실행되는 시기](/docs/ko/plugins/loading#when-auto-update-runs)를 참조하세요. 플릿에 대해 결정하려면 관리되는 `extraKnownMarketplaces` 항목에서 `"autoUpdate": true` 또는 `false`를 설정하세요:

356 

357* 관리되는 항목이 필드를 설정하면 Claude Code는 사용자의 `/plugin` 토글을 `Auto-update for '<name>' is set by`로 시작하는 오류로 거부합니다.

358* 관리되는 항목이 필드를 설정하지 않으면 사용자의 토글이 유지됩니다.

359 

360<h3 id="turn-updates-off-for-the-whole-fleet">

361 전체 플릿에 대해 업데이트 끄기

362</h3>

363 

364모든 마켓플레이스에 대해 플러그인 자동 업데이트를 끄려면 이 예제처럼 관리되는 `env` 블록에서 `DISABLE_AUTOUPDATER`를 설정하세요. 같은 변수는 또한 Claude Code 자신의 업데이트를 중지합니다:

365 

366```json theme={null}

367{

368 "env": {

369 "DISABLE_AUTOUPDATER": "1"

370 }

371}

372```

373 

374Claude Code 자신의 업데이트는 중지하지만 플러그인 자동 업데이트는 유지하려면 같은 블록에 `"FORCE_AUTOUPDATE_PLUGINS": "1"`을 추가하세요. [플러그인 자동 업데이트를 중지하는 다른 환경 변수](/docs/ko/plugins/loading#when-auto-update-runs)는 같은 방식으로 작동합니다.

375 

376`DISABLE_AUTOUPDATER`는 [`command` 소스](/docs/ko/plugins/marketplace-reference#command-plugin-source)가 있는 플러그인을 다루지 않습니다. Claude Code는 매 세션마다 활성화된 각 플러그인의 명령을 다시 실행하고 변경되었을 때 출력을 설치합니다. 이를 중지하는 것은 [명령 소스가 다시 실행되는 시기](/docs/ko/plugins/loading#when-a-command-source-re-runs)를 참조하세요.

377 

378<h3 id="assign-release-channels-to-user-groups">

379 사용자 그룹에 릴리스 채널 할당

380</h3>

381 

382안정적 및 조기 액세스 채널을 실행하려면 같은 플러그인의 다른 ref를 가리키는 두 개의 마켓플레이스를 호스팅하세요. 그 다음 각 사용자 그룹에 별도의 엔드포인트 관리 설정 또는 게이트웨이 정책을 통해 자신의 마켓플레이스를 제공하세요. 관리자 콘솔의 서버 관리 설정은 [조직의 모든 사용자에게 적용되므로](/docs/ko/server-managed-settings#current-limitations) 다른 그룹에 다른 설정을 할당할 수 없습니다.

383 

384* 각 그룹의 장치에 별도의 [엔드포인트 관리 설정](/docs/ko/managed-settings#delivery-mechanisms)(예: 관리되는 설정 파일 또는 MDM 프로필)을 배포하세요. 조직 전체 소스도 있는 장치에 그룹별 파일 또는 프로필이 적용되는지 확인하려면 [Claude Code가 관리되는 소스를 결합하는 방법](/docs/ko/managed-settings#precedence-within-the-managed-tier)을 참조하세요.

385* 각 그룹에 대해 하나의 [Claude 앱 게이트웨이 정책](/docs/ko/claude-apps-gateway-config#managed)을 정의하세요. 게이트웨이는 일치 규칙이 사용자에게 맞는 첫 번째 정책을 적용하므로 각 사용자가 자신의 그룹의 정책에 도달하도록 정책을 정렬하세요. 해당 정책의 `extraKnownMarketplaces` 맵은 다른 정책의 것과 병합되지 않으므로 채널 마켓플레이스만이 아닌 그룹이 필요한 모든 마켓플레이스를 나열하세요.

386 

387어느 메커니즘이든 안정적 그룹은 이 구성을 받습니다:

388 

389```json theme={null}

390{

391 "extraKnownMarketplaces": {

392 "stable-tools": {

393 "source": { "source": "github", "repo": "your-org/stable-tools" }

394 }

395 }

396}

397```

398 

399조기 액세스 그룹은 대신 `latest-tools`를 받습니다. 두 마켓플레이스를 설정하려면 [릴리스 채널 실행](/docs/ko/plugins/host-marketplace#run-release-channels)을 참조하세요.

400 

401<h2 id="recommend-plugins">

402 플러그인 권장

403</h2>

404 

405마켓플레이스 소유자는 항목에 `relevance` 신호를 첨부하여 Claude Code가 프로젝트가 일치할 때 플러그인을 제안하도록 할 수 있습니다.

406 

407마켓플레이스의 제안은 사용자의 머신에 등록되어 있고, 관리되는 설정에서 `pluginSuggestionMarketplaces`에 해당 이름을 나열하고, 같은 정책에서 해당 소스를 선언할 때만 나타납니다. 소스를 마켓플레이스의 `extraKnownMarketplaces` 항목 또는 허용 목록 항목으로 선언하세요. 공식 마켓플레이스는 이름만 필요합니다. [관리되는 설정에서 제안 활성화](/docs/ko/plugins/relevance#enable-suggestions-in-managed-settings)를 참조하세요.

408 

409<h2 id="audit-and-review">

410 감사 및 검토

411</h2>

412 

413OpenTelemetry 이벤트 및 Analytics API는 플릿이 설치하고 실행하는 것을 알려줍니다.

414 

415플러그인이 머신에서 실행할 수 있는 것 및 각 신뢰 계층이 허용하는 것은 마켓플레이스를 승인하기 전에 [플러그인 보안](/docs/ko/plugins/security)을 읽으세요.

416 

417<h3 id="opentelemetry-events">

418 OpenTelemetry 이벤트

419</h3>

420 

421`claude_code.plugin_installed`는 각 설치를 기록하고, `claude_code.plugin_loaded`는 세션 시작 시 각 활성화된 플러그인을 기록합니다. 두 이벤트 모두 `OTEL_LOG_TOOL_DETAILS=1`을 설정하지 않으면 타사 플러그인 및 마켓플레이스 이름을 수정하거나 생략합니다([백엔드의 수정된 플러그인 이름](/docs/ko/plugins/measure#redacted-plugin-names-in-your-backend) 참조). 필드 목록은 [플러그인 설치 이벤트](/docs/ko/monitoring-usage#plugin-installed-event) 및 [플러그인 로드 이벤트](/docs/ko/monitoring-usage#plugin-loaded-event) 아래에 있습니다.

422 

423<h3 id="analytics-api">

424 Analytics API

425</h3>

426 

427Enterprise 플랜에서 `GET /v1/organizations/analytics/plugins`는 Claude Code 및 Cowork 전체에서 플러그인별, 일별 설치 및 호출 수를 반환합니다. 사용자 또는 RBAC 그룹별로 수를 그룹화할 수 있습니다. Anthropic에 도달하는 플러그인 이름 없는 플러그인 활동은 하나의 집계 `third-party` 행에 나타납니다. [엔드포인트 참조](https://platform.claude.com/docs/en/api/admin/analytics/plugins/list) 및 [프로그래밍 방식으로 데이터 액세스](/docs/ko/analytics#access-data-programmatically)에서 필요한 키를 참조하세요.

428 

429<h2 id="plan-for-what-managed-settings-can’t-enforce">

430 관리되는 설정이 적용할 수 없는 것에 대해 계획

431</h2>

432 

433보안 검토의 이 요청은 현재 설정 스키마에 전용 키가 없습니다. 가장 가까운 기존 제어는:

434 

435* **사용자별 또는 그룹별 타겟팅**: 모든 플러그인 키는 설정을 받는 모든 사용자에게 적용됩니다. 서버 관리 설정은 조직별로 하나의 구성을 제공합니다. 그룹별 정책의 경우 [사용자 그룹에 릴리스 채널 할당](#assign-release-channels-to-user-groups) 아래처럼 별도의 엔드포인트 관리 설정 또는 게이트웨이 정책을 사용하세요.

436* **허용된 마켓플레이스 내의 항목 제한**: 허용 목록은 마켓플레이스 소스와 일치합니다. 허용된 마켓플레이스에서 하나의 플러그인을 차단하려면 관리되는 `enabledPlugins`에서 `false`로 설정하세요.

437* **`/plugin` 숨기기**: 명령을 비활성화하는 키가 없습니다. 가장 가까운 동등은 자신의 마켓플레이스만 지정하는 허용 목록, 제공하는 플러그인에 대한 관리되는 `enabledPlugins` 항목 및 `disableSideloadFlags`를 결합합니다.

438* **허용 목록을 통해 `--plugin-dir` 제어**: 허용 목록은 `--plugin-dir`을 다루지 않습니다. `disableSideloadFlags`는 다룹니다.

439* **이 키를 통해 claude.ai 플러그인 토글 적용**: [**조직 설정 > 플러그인 및 스킬**](https://claude.ai/admin-settings/skills?tab=inventory)은 이 페이지의 키를 설정하지 않습니다. 멤버 및 조직이 거기서 켜는 것은 CLI에 [동기화된 플러그인](/docs/ko/plugins/loading#synced-plugins)으로 도달하며, 자신의 제어가 있습니다.

440 

441<h2 id="troubleshoot-policy">

442 정책 문제 해결

443</h2>

444 

445플러그인 정책이 머신에서 예상대로 작동하지 않으면 먼저 이 증상을 확인하세요:

446 

447* **관리되는 파일이 파싱되지 않음**: `managed-settings.json`이 유효한 JSON이 아니면 Claude Code는 시작을 거부하고 [파일의 이름을 지정하는 오류](/docs/ko/errors#managed-settings-document-could-not-be-parsed)를 인쇄합니다. 파싱되지만 하나의 유효하지 않은 항목이 있는 파일은 나머지 정책을 유지합니다. [관리되는 설정의 유효하지 않은 항목](/docs/ko/managed-settings#invalid-entries-in-managed-settings)을 참조하세요.

448* **관리되는 소스가 로드되지 않음**: `/status`를 실행하고 `Setting sources` 행에서 `Enterprise managed settings`를 찾으세요. 누락되면 소스가 로드되지 않았습니다.

449* **사용자가 `blocked by enterprise policy` 보고**: 메시지는 마켓플레이스 또는 해당 소스의 이름을 지정합니다. 허용 목록의 경우 허용된 소스도 나열합니다. 사용자 대면 항목은 [플러그인 문제 해결](/docs/ko/plugins/troubleshooting)에 있습니다.

450* **사용자가 `~/.claude/settings.json`에서 비활성화한 플러그인이 여전히 로드됨**: 다른 설정 소스가 다시 활성화했습니다(예: 강제 활성화하는 관리되는 `enabledPlugins` 항목). `/plugin` 및 `claude plugin list`는 `Disabled in ~/.claude/settings.json but still loads`를 해당 설정 소스와 함께 표시합니다.

451 

452<h2 id="next-steps">

453 다음 단계

454</h2>

455 

456* [마켓플레이스 참조](/docs/ko/plugins/marketplace-reference#marketplace-sources): `extraKnownMarketplaces`, `strictKnownMarketplaces` 및 `blockedMarketplaces`가 수락하는 `source` 값

457* [마켓플레이스 호스팅 및 유지](/docs/ko/plugins/host-marketplace): 정책이 가리키는 마켓플레이스 실행

458* [플러그인 보안 및 신뢰](/docs/ko/plugins/security): 플러그인이 머신에서 할 수 있는 것 및 설치 전에 하나를 검토하는 방법

459* [서버 관리 설정](/docs/ko/server-managed-settings): claude.ai 관리자 콘솔에서 이 키를 제공

460* [플러그인 문제 해결](/docs/ko/plugins/troubleshooting#blocked-by-your-organization): 정책이 사용자를 차단할 때 사용자가 보는 메시지

plugins/overview.md +142 −0 created

Details

1> ## Documentation Index

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

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

4 

5# 플러그인 개요

6 

7> Claude Code 플러그인이 무엇인지, 독립형 스킬이나 MCP 서버 대신 플러그인이 필요한 경우, 플러그인을 설치하거나 만드는 방법을 알아봅니다.

8 

9Claude Code 플러그인은 Claude Code가 하나의 단위로 설치하고 로드하는 스킬, 에이전트, 훅, MCP 서버 또는 기타 구성 요소의 디렉토리입니다. 대부분의 플러그인은 마켓플레이스에서 제공되며, 마켓플레이스는 플러그인을 나열하고 각 플러그인을 가져올 위치를 표시하는 카탈로그입니다. 누군가가 제공한 폴더에서 플러그인을 로드하거나 [자신만의 플러그인을 만들](/docs/ko/plugins/create) 수도 있습니다.

10 

11<Note>

12 claude.ai 채팅이나 Cowork를 사용하고 Claude Code를 사용하지 않는 경우 [claude.ai 및 Cowork의 플러그인](https://claude.com/docs/plugins/overview)을 참조하세요.

13</Note>

14 

15지금 플러그인을 시도하려면 Claude Code 터미널 세션에서 `/plugin`을 실행하고 **Discover** 탭에서 플러그인을 설치합니다. **Discover** 탭에는 Anthropic의 공식 마켓플레이스와 추가한 마켓플레이스의 플러그인이 나열됩니다. 여기서:

16 

17* [플러그인 설치 및 관리](/docs/ko/plugins/install): 전체 설치 단계, 범위 및 기타 표면

18* [플러그인 만들기](/docs/ko/plugins/create): 자신만의 플러그인 만들기

19* [플러그인이 필요한지 결정](#decide-whether-you-need-a-plugin): 플러그인이 원하는 작업에 적합한 도구인지 여부

20 

21<h2 id="understand-what-a-plugin-is">

22 플러그인이 무엇인지 이해하기

23</h2>

24 

25플러그인은 일반적으로 매니페스트가 있는 구성 요소의 디렉토리입니다. 매니페스트는 `.claude-plugin/plugin.json`의 JSON 파일로, 플러그인에 이름을 지정하고 버전, 설명 및 기타 [메타데이터](/docs/ko/plugins/manifest-reference)를 추가할 수 있습니다. 구성 요소는 플러그인이 Claude Code에 추가하는 것입니다. 예를 들어:

26 

27* [**스킬**](/docs/ko/plugins/components#skills): Claude가 관련성이 있을 때 로드하는 `SKILL.md` 지침이며, 명령으로도 실행할 수 있습니다.

28* [**에이전트**](/docs/ko/plugins/components#agents): Claude가 위임할 수 있는 서브에이전트 정의

29* [**훅**](/docs/ko/plugins/components#hooks): Claude Code가 편집 후와 같은 수명 주기의 특정 지점에서 실행하는 명령

30* [**MCP 서버**](/docs/ko/plugins/components#mcp-servers): 플러그인이 활성화되어 있는 동안 Claude Code가 연결하는 도구 서버

31 

32이 다이어그램은 각 구성 요소 유형 중 하나씩 보유한 `my-plugin`이라는 플러그인과 플러그인이 로드되면 각 파일에서 얻는 것을 보여줍니다.

33 

34<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=f623b64e82713b830e48174f0a922888" className="dark:hidden" alt="Diagram in two columns joined by five straight arrows. Left, the directory of a plugin named my-plugin, holding a manifest at .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json, and other components. Right, what each file gives you in your session: the manifest sets the plugin name, my-plugin; the skill runs as /my-plugin:review; the agent file is a subagent Claude can delegate to; the hooks file holds hooks that run on lifecycle events; and .mcp.json adds an MCP server that gives Claude tools." width="760" height="336" data-path="images/plugin-directory.svg" />

35 

36<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory-dark.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=17ee2bd45b63154fcc148ae1d1f736d8" className="hidden dark:block" alt="Diagram in two columns joined by five straight arrows. Left, the directory of a plugin named my-plugin, holding a manifest at .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json, and other components. Right, what each file gives you in your session: the manifest sets the plugin name, my-plugin; the skill runs as /my-plugin:review; the agent file is a subagent Claude can delegate to; the hooks file holds hooks that run on lifecycle events; and .mcp.json adds an MCP server that gives Claude tools." width="760" height="336" data-path="images/plugin-directory-dark.svg" />

37 

38플러그인이 보유할 수 있는 모든 구성 요소 유형과 각각의 예시는 [플러그인 구성 요소](/docs/ko/plugins/components)를 참조하세요. 플러그인의 디렉토리에서 각 부분이 위치한 곳을 확인하려면 해당 페이지의 [플러그인 탐색기](/docs/ko/plugins/components#explore-the-plugin-directory)를 사용하세요.

39 

40<h3 id="decide-whether-you-need-a-plugin">

41 플러그인이 필요한지 결정하기

42</h3>

43 

44스킬, 서브에이전트, 훅 및 MCP 서버는 모두 플러그인 없이도 독립적으로 작동합니다. 예를 들어 `~/.claude/skills/`에 저장한 스킬은 컴퓨터의 모든 프로젝트에서 사용할 수 있습니다. 독립적으로 설정하려면 [스킬](/docs/ko/skills), [서브에이전트](/docs/ko/sub-agents), [훅](/docs/ko/hooks-guide) 또는 [MCP](/docs/ko/mcp)를 참조하세요.

45 

46여러 스킬, 서브에이전트, 훅 또는 MCP 서버를 하나의 단위로 패키징하려면 플러그인을 사용합니다. 하나를 설치하여 다른 사람이 만든 설정을 한 명령으로 얻고 마켓플레이스에서 업데이트를 받습니다. 자신의 설정을 팀원에게 제공하거나, 많은 프로젝트에 설치하거나, 버전이 지정된 릴리스를 게시하려면 플러그인을 만듭니다.

47 

48<h3 id="what-an-enabled-plugin-adds-to-your-sessions">

49 활성화된 플러그인이 세션에 추가하는 것

50</h3>

51 

52활성화된 플러그인은 사용하는 세션뿐만 아니라 모든 세션의 일부입니다. 이는 플러그인을 설치하기 전에 알아야 할 몇 가지 결과를 초래합니다:

53 

54* **컨텍스트 및 사용**: [Claude가 자체적으로 호출할 수 있는](/docs/ko/skills#control-who-invokes-a-skill) 각 스킬, 에이전트 및 명령에 대해 이름과 설명이 모든 턴에서 Claude의 컨텍스트에 있으므로 Claude는 이것이 존재한다는 것을 알 수 있습니다. 이러한 토큰은 사용량에 포함되며 플러그인에서 아무것도 실행되지 않는 세션에서도 [컨텍스트 윈도우](/docs/ko/context-window)에서 공간을 남깁니다. 스킬이나 에이전트의 전체 텍스트는 사용될 때만 로드됩니다. 플러그인의 MCP 서버가 턴당 추가하는 것은 [MCP 도구 검색](/docs/ko/mcp#scale-with-mcp-tool-search)을 따릅니다.

55* **프로세스**: 플러그인이 정의하는 MCP 서버는 플러그인이 활성화된 각 세션과 함께 실행되며, 훅은 해당 이벤트에서 실행됩니다.

56* **권한**: 플러그인이 실행하는 것은 사용자로서 실행됩니다. 먼저 검토할 사항은 [플러그인 보안 및 신뢰](/docs/ko/plugins/security)를 참조하세요.

57 

58각 단계에서 플러그인의 풋프린트를 확인할 수 있습니다:

59 

60* **설치 전**: `/plugin`의 **마켓플레이스** 탭에서 플러그인을 엽니다. Anthropic의 공식 마켓플레이스의 플러그인은 **컨텍스트 비용** 추정치를 표시합니다.

61* **설치 후**: [플러그인 비용 측정](/docs/ko/plugins/measure#measure-what-a-plugin-costs)은 플러그인의 풋프린트를 읽는 방법을 보여주며, **설치됨** 탭의 **최근에 사용하지 않음** 그룹은 비활성화할 수 있는 플러그인을 나열합니다.

62* **제거하지 않고 중지하려면**: `/plugin`으로 플러그인을 비활성화하거나 셸에서 `claude plugin disable`을 사용합니다. [설치된 플러그인 관리](/docs/ko/plugins/install#manage-installed-plugins)를 참조하세요.

63 

64<h2 id="get-plugins-from-a-marketplace">

65 마켓플레이스에서 플러그인 가져오기

66</h2>

67 

68마켓플레이스는 플러그인을 나열하고 각 플러그인을 가져올 위치를 표시하는 `.claude-plugin/marketplace.json` 파일이 있는 저장소 또는 디렉토리입니다. 호스팅된 스토어가 아니라 카탈로그입니다. 마켓플레이스를 한 번 추가한 다음 `commit-commands@claude-plugins-official`과 같이 이름으로 플러그인을 설치합니다.

69 

70<Note>

71 플러그인 마켓플레이스는 [Claude Marketplace](https://claude.com/marketplace)가 아닙니다. Claude Marketplace는 claude.com/marketplace의 웹사이트로, 플러그인, 커넥터, 파트너 제품 및 서비스 파트너를 검색할 수 있습니다. `/plugin marketplace add`로 추가하는 마켓플레이스가 아닙니다.

72</Note>

73 

74Claude Code는 [관리 정책](/docs/ko/plugins/org#allow-the-official-marketplace-and-your-own)이 차단하지 않는 한 대화형 터미널 세션을 처음 시작할 때 Anthropic의 공식 마켓플레이스를 추가합니다. Claude Code는 Anthropic의 커뮤니티 및 데모 마켓플레이스를 포함하여 자체적으로 다른 마켓플레이스를 추가하지 않습니다. 세 가지 Anthropic 마켓플레이스를 구분하려면 [Anthropic의 마켓플레이스](/docs/ko/plugins/anthropic-marketplaces)를 읽으세요. 공식 마켓플레이스가 나열하는 것을 보려면 세션에서 `/plugin`의 **Discover** 탭을 열거나 [Claude Marketplace](https://claude.com/marketplace/plugins)를 검색하세요.

75 

76이 다이어그램은 마켓플레이스에서 세션까지의 경로를 보여줍니다. 마켓플레이스는 플러그인을 나열하고, 플러그인을 설치하면 Claude Code가 구성 요소를 로드합니다.

77 

78<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugins-model.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=4196344954b7c2e27fc0bd6a9a1113a1" className="dark:hidden" alt="Diagram of the marketplace path in three boxes, left to right. A marketplace, a catalog of plugins, lists a plugin. The plugin is one directory installed as a unit, holding skills, agents, hooks, MCP servers, and other components. You install the plugin into Claude Code, which loads its components." width="760" height="252" data-path="images/plugins-model.svg" />

79 

80<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugins-model-dark.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=f6cdefe1fc05daf3b253d26e9f3f70f6" className="hidden dark:block" alt="Diagram of the marketplace path in three boxes, left to right. A marketplace, a catalog of plugins, lists a plugin. The plugin is one directory installed as a unit, holding skills, agents, hooks, MCP servers, and other components. You install the plugin into Claude Code, which loads its components." width="760" height="252" data-path="images/plugins-model-dark.svg" />

81 

82[플러그인 설치 및 관리](/docs/ko/plugins/install#install-a-plugin)는 Claude Code를 실행하는 각 위치에 대한 설치 단계를 제공합니다. 플러그인을 개발하는 동안 마켓플레이스가 필요하지 않습니다. [마켓플레이스 없이 개발](/docs/ko/plugins/create#develop-without-a-marketplace)에서 보여주는 대로 `--plugin-dir`을 사용하여 폴더에서 직접 로드합니다.

83 

84<h3 id="make-an-installed-plugin-available-in-your-session">

85 설치된 플러그인을 세션에서 사용 가능하게 만들기

86</h3>

87 

88설치한 플러그인이 실행할 수 있는 스킬을 제공하기 전에 다음 각 계층에 있어야 합니다:

89 

90* **설정**: 설정에 추가한 마켓플레이스와 활성화된 플러그인이 나열됩니다.

91* **디스크**: `~/.claude/plugins/`는 Claude Code가 가져오고 설치한 것을 보유합니다.

92* **세션**: 플러그인은 시작 시 로드되거나 [플러그인을 다시 로드](/docs/ko/plugins/loading#check-which-stage-a-plugin-reached)할 때 로드됩니다.

93 

94[플러그인 로딩 참조](/docs/ko/plugins/loading)에서 각 계층의 규칙, 어떤 설정 파일이 우선하는지, 디스크의 파일 위치를 읽으세요.

95 

96<h2 id="tell-anthropic’s-marketplaces-from-third-party-ones">

97 Anthropic의 마켓플레이스와 타사 마켓플레이스 구분하기

98</h2>

99 

100마켓플레이스의 이름은 세 가지 계층 중 하나에 배치합니다. Claude Code는 `github.com/anthropics/` 저장소에서 소싱된 공식 및 커뮤니티 이름만 마켓플레이스에 대해 허용합니다:

101 

102* **공식**: `claude-plugins-official` 및 데모 마켓플레이스 `claude-code-plugins`를 포함하여 Anthropic의 [공식 마켓플레이스 이름](/docs/ko/plugins/security#official-marketplace-names) 중 하나를 가진 마켓플레이스입니다.

103* **커뮤니티**: `claude-community`와 같은 Anthropic의 커뮤니티 이름을 가진 마켓플레이스입니다. [Anthropic의 마켓플레이스를 이름으로 식별](/docs/ko/plugins/security#marketplace-tiers)하면 이들을 나열합니다.

104* **타사**: 다른 모든 마켓플레이스입니다. 동료나 조직이 게시하는 마켓플레이스는 타사입니다.

105 

106계층에 관계없이 설치하는 플러그인은 사용자 권한으로 코드를 실행할 수 있습니다. 플러그인을 설치하기 전에 검토하는 방법은 [플러그인 보안 및 신뢰](/docs/ko/plugins/security)를 읽으세요.

107 

108[관리 설정](/docs/ko/settings#settings-files)을 통해 조직은 마켓플레이스를 허용 목록에 추가하거나 차단하고, 플러그인을 강제 설치하고, 세션 전용 로딩을 비활성화할 수 있습니다. 이러한 컨트롤은 [조직의 플러그인 관리](/docs/ko/plugins/org)를 읽으세요.

109 

110<h2 id="understand-install-scopes">

111 설치 범위 이해하기

112</h2>

113 

114플러그인을 설치할 때 범위를 선택하고, 범위는 플러그인이 활성화되는 대상을 결정합니다:

115 

116* **사용자 범위**: 이 컴퓨터의 모든 프로젝트에서 활성화됨

117* **프로젝트 범위**: 커밋된 `.claude/settings.json`을 통해 이 저장소에서 작업하는 모든 사람에게 활성화됨. 각 협력자는 여전히 [자신의 컴퓨터에 설치](/docs/ko/plugins/loading#enabled-in-project-settings-but-not-installed)해야 합니다.

118* **로컬 범위**: 이 저장소에서만 활성화됨

119 

120터미널, 데스크톱 앱의 로컬 세션 또는 VS Code 확장에서 사용자 범위로 설치한 플러그인은 모두 동일한 설정 파일을 읽기 때문에 해당 컴퓨터의 다른 두 개에서 사용할 수 있습니다. 범위를 선택하는 방법은 [설치 범위 선택](/docs/ko/plugins/install#choose-an-install-scope)을 참조하세요.

121 

122claude.ai/code의 브라우저를 포함한 클라우드 세션은 로컬 설정의 플러그인을 로드하지 않습니다. 터미널, VS Code 및 데스크톱 앱의 설치 단계와 클라우드 세션이 로드하는 것은 [플러그인 설치](/docs/ko/plugins/install#install-a-plugin)를 참조하세요.

123 

124<Note>

125 동일한 플러그인 형식은 claude.ai 및 Cowork에도 설치되며, 다른 구성 요소 집합이 로드됩니다. 이러한 표면의 경우 claude.com의 [claude.ai 및 Cowork의 플러그인](https://claude.com/docs/plugins/overview)을 참조하세요.

126</Note>

127 

128<h2 id="next-steps">

129 다음 단계

130</h2>

131 

132대부분의 사람들은 Anthropic의 공식 마켓플레이스에서 플러그인을 설치하는 것으로 시작합니다. Claude Code는 대화형 터미널 세션을 처음 시작할 때 이를 추가합니다. 터미널 세션에서 `/plugin`을 실행하여 검색하거나 [플러그인 설치 및 관리](/docs/ko/plugins/install)를 따릅니다. 이는 데스크톱 앱 및 VS Code도 다룹니다. Claude Code를 열기 전에 해당 마켓플레이스에 있는 것을 보려면 웹에서 [Claude Marketplace](https://claude.com/marketplace/plugins)를 검색하세요.

133 

134자신만의 플러그인을 만들려면 [플러그인 만들기](/docs/ko/plugins/create)는 빈 디렉토리로 시작하여 작동하는 플러그인으로 끝납니다.

135 

136플러그인을 설치하거나 만든 후 다음 페이지는 다음에 올 것을 다룹니다:

137 

138* **만든 것 공유**: [플러그인 게시 및 배포](/docs/ko/plugins/publish)

139* **작동 여부 및 사용 여부 확인**: [평가로 플러그인 테스트](/docs/ko/plugin-evals) 및 [플러그인 비용 및 사용 측정](/docs/ko/plugins/measure)

140* **팀을 위한 마켓플레이스 실행**: [마켓플레이스 만들기](/docs/ko/plugins/create-marketplace), 그 다음 [마켓플레이스 호스팅 및 유지 관리](/docs/ko/plugins/host-marketplace)

141* **조직의 플러그인 정책 설정**: [조직의 플러그인 관리](/docs/ko/plugins/org)

142* **문제 해결**: [플러그인 문제 해결](/docs/ko/plugins/troubleshooting)

plugins/publish.md +210 −0 created

Details

1> ## Documentation Index

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

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

4 

5# 플러그인 게시 및 배포

6 

7> Claude Code 플러그인을 자신의 마켓플레이스 또는 Anthropic의 커뮤니티 마켓플레이스를 통해 게시하고, 사전 릴리스 체크리스트 및 사용자가 업데이트를 받는 방법을 알아봅니다.

8 

9Claude Code 플러그인을 게시한다는 것은 플러그인을 나열하는 마켓플레이스(플러그인을 나열하고 각 플러그인을 가져올 위치를 지정하는 JSON 카탈로그)에 플러그인을 등록하는 것을 의미하므로, 다른 사람들이 이름으로 플러그인을 설치하고 업데이트를 받을 수 있습니다. 자신의 마켓플레이스를 운영하거나 플러그인을 Anthropic의 커뮤니티 마켓플레이스에 제출할 수 있습니다. 플러그인을 게시하지 않고 공유하려면 플러그인의 디렉터리 또는 `.zip` 파일을 사람들에게 보내서 직접 로드하도록 하면 됩니다.

10 

11이 페이지는 작동하는 플러그인을 작성한 저자가 이를 공유할 준비가 되었을 때를 위한 것입니다.

12 

13<Note>

14 다음 경우는 다른 페이지에서 다룹니다:

15 

16 * **플러그인이 아직 완성되지 않았습니다**: [플러그인 만들기](/docs/ko/plugins/create)로 시작하세요

17 * **공식 마켓플레이스에 플러그인이 있는 CLI 또는 SDK를 유지 관리합니다**: [CLI에서 플러그인 권장](/docs/ko/plugins/cli-hints)을 참조하세요

18</Note>

19 

20[배포 방법 선택](#choose-how-to-distribute)으로 시작하여 배포 옵션을 비교하세요. 이미 경로를 알고 있다면 [릴리스를 위해 플러그인 준비](#prepare-your-plugin-for-release)로 이동한 후 사용자에게 알려야 할 사항과 사용자가 업데이트를 받는 방법에 대해 경로의 섹션을 따르세요.

21 

22<h2 id="choose-how-to-distribute">

23 배포 방법 선택

24</h2>

25 

26플러그인을 설치해야 하는 사람에 따라 배포 옵션을 선택하세요:

27 

28| 경로 | 설치할 수 있는 사람 | 필요한 것 | 사용자가 자동으로 업데이트를 받나요? |

29| :------------------------------------------------------------- | :------------------------------------------------ | :----------------------------------------------------------------- | :------------------- |

30| [마켓플레이스 없음](#share-a-plugin-without-a-marketplace) | 플러그인 폴더 또는 `.zip` 파일을 받은 사람 | 플러그인의 폴더 | 없음. 보낸 복사본을 로드합니다 |

31| [자신의 마켓플레이스](#publish-through-your-own-marketplace) | 저장소에 접근할 수 있는 모든 사람(팀이 복제할 수 있는 비공개 저장소일 수 있음) | `.claude-plugin/marketplace.json`이 있는 git 저장소 또는 기타 호스트(플러그인을 나열함) | 꺼짐 |

32| [Anthropic의 커뮤니티 마켓플레이스](#submit-to-the-community-marketplace) | `anthropics/claude-plugins-community`를 추가하는 모든 사람 | 플러그인 디렉터리 제출 양식을 통한 제출 | 꺼짐 |

33 

34자동 업데이트는 사용자 측의 마켓플레이스별 설정으로, 백그라운드에서 새 버전을 가져옵니다.

35 

36<h2 id="prepare-your-plugin-for-release">

37 릴리스를 위해 플러그인 준비

38</h2>

39 

40이름, 버전, 유효성 검사 및 마켓플레이스에서의 설치는 릴리스가 설치하는 사람들을 위해 작동하는지 여부를 결정합니다. 첫 번째 릴리스 전에 그리고 이후 각 릴리스 전에 확인하세요.

41 

42<Steps>

43 <Step title="영구적인 이름 선택">

44 사용자는 `name@marketplace`로 플러그인을 설치, 활성화 및 구성하므로, 이름이 바뀐 플러그인은 기존의 모든 설치에 대해 다른 플러그인입니다. `deploy-helper`와 같은 kebab-case 이름을 선택하세요. `claude plugin validate`는 다른 형식에 대해 경고하고 이를 영구적으로 취급하기 때문입니다. 사용자가 보는 레이블을 위해 `plugin.json`에서 `displayName`을 설정하세요.

45 </Step>

46 

47 <Step title="버전 관리 방법 결정">

48 `plugin.json`에서 `version`을 설정하고 나중에 변경하지 않고 커밋을 푸시하면, `claude plugin update`는 `<name> is already at the latest version (1.0.0).`을 출력하고 사용자는 이전 복사본을 유지합니다. 모든 릴리스에서 `version`을 증가시키거나, git 호스팅 마켓플레이스에서 생략하여 Claude Code가 커밋 SHA를 대신 사용하도록 하세요. [버전 및 업데이트](/docs/ko/plugins/loading#versions-and-updates)를 참조하세요.

49 </Step>

50 

51 <Step title="유효성 검사">

52 셸에서 `claude plugin validate --strict ./your-plugin`을 실행하세요. 깨끗한 실행은 `✔ Validation passed`를 출력합니다.

53 

54 * **CI에서**: `--strict`를 유지하세요. 이는 또한 알 수 없는 매니페스트 필드 또는 누락된 `version`과 같은 경고에서 종료 코드 1로 실행을 실패합니다. 이전 단계에서 `version`을 생략하기로 선택한 경우 `--strict`를 제거하세요.

55 * **경로**: 유효성 검사는 `./`로 시작하지 않는 구성 요소 경로를 보고합니다. hook 명령 및 MCP 서버 구성 내에서 파일을 `${CLAUDE_PLUGIN_ROOT}/...`로 참조하세요. [경로 규칙](/docs/ko/plugins/manifest-reference#path-rules)을 참조하세요.

56 </Step>

57 

58 <Step title="로컬 마켓플레이스에서 설치">

59 셸에서 `claude plugin marketplace add ./path-to-marketplace`로 플러그인을 나열하는 로컬 마켓플레이스를 추가하고, 플러그인을 설치한 후 세션을 시작하여 로드되는지 확인하세요.

60 

61 * 작동하는 가장 작은 마켓플레이스는 [마켓플레이스 만들기](/docs/ko/plugins/create-marketplace)를 참조하세요.

62 * 설치가 소스 디렉터리를 로드하는지 아니면 캐시된 복사본을 로드하는지 알아보려면 [제자리 및 복사된 플러그인](/docs/ko/plugins/loading#in-place-and-copied-plugins)을 참조하세요.

63 </Step>

64 

65 <Step title="사용자가 보는 메타데이터 채우기">

66 `plugin.json`에서 `description`, `author`, `homepage` 및 `repository`를 설정하고, 플러그인 루트에 `README.md`를 추가하세요. `homepage`는 URL로 구문 분석되어야 합니다. [매니페스트 참조](/docs/ko/plugins/manifest-reference#fields)는 모든 필드를 나열합니다.

67 </Step>

68 

69 <Step title="eval 스위트 실행">

70 eval 스위트가 있으면 셸에서 `claude plugin eval`을 실행하세요. 플러그인의 테스트 케이스를 실행하고 결과를 점수 매기므로, 플러그인을 변경할 때 회귀를 포착합니다. [eval로 플러그인 테스트](/docs/ko/plugin-evals)를 참조하세요.

71 </Step>

72</Steps>

73 

74<h2 id="share-a-plugin-without-a-marketplace">

75 마켓플레이스 없이 플러그인 공유

76</h2>

77 

78플러그인이 git 저장소에 있으면 사람들이 복제하고 체크아웃을 로드하거나, 릴리스에 첨부한 `.zip`을 가리키는 `--plugin-url`로 셸에서 Claude Code를 시작할 수 있습니다. 다음 버전을 얻으려면 풀하거나 다시 다운로드하면 됩니다. 저장소에 없으면 디렉터리 또는 `.zip` 파일을 보내세요. 다음 두 가지 방법 중 하나로 로드합니다:

79 

80* **한 세션의 경우**: 셸에서 `claude --plugin-dir ./deploy-helper`로 Claude Code를 시작합니다. 여기서 경로는 복제, 압축 해제된 폴더 또는 `.zip` 파일 자체입니다. [한 세션 동안 플러그인을 로드하는 플래그](/docs/ko/plugins/cli-reference#flags-that-load-a-plugin-for-one-session)를 참조하세요.

81* **모든 세션의 경우**: 플러그인 디렉터리를 `.claude-plugin/plugin.json`과 함께 `~/.claude/skills/` 아래로 이동하여 Claude Code가 [모든 세션에서 로드](/docs/ko/plugins/loading#find-where-a-plugin-came-from)하도록 합니다.

82 

83동일한 저장소에 `.claude-plugin/marketplace.json`을 추가하면 사람들이 이름으로 설치하고 명령으로 업데이트할 수 있습니다. [자신의 마켓플레이스를 통해 게시](#publish-through-your-own-marketplace)를 참조하세요.

84 

85<h3 id="ship-a-plugin-with-your-own-tool">

86 자신의 도구와 함께 플러그인 배포

87</h3>

88 

89CLI 또는 SDK를 유지 관리하는 경우 마켓플레이스에 플러그인을 게시하고 설치 관리자 또는 설치 후 메시지가 사용자가 필요로 하는 두 명령을 실행하거나 출력하도록 합니다: `claude plugin marketplace add <source>`, 그 다음 `claude plugin install <name>@<marketplace>`. 누군가 도구를 사용할 때 세션 내 검색의 경우 [CLI에서 플러그인 권장](/docs/ko/plugins/cli-hints)을 참조하세요.

90 

91<h2 id="publish-through-your-own-marketplace">

92 자신의 마켓플레이스를 통해 게시

93</h2>

94 

95자신의 마켓플레이스는 플러그인을 나열하는 `.claude-plugin/marketplace.json` 파일로, git 저장소에 추가됩니다. 파일이 저장소에 있으면 플러그인이 게시되며, 제출 양식이 없습니다. 파일을 플러그인의 자체 저장소 또는 별도의 저장소에 보관할 수 있습니다.

96 

97<h3 id="add-the-marketplace-file-to-your-repository">

98 저장소에 마켓플레이스 파일 추가

99</h3>

100 

101플러그인의 자체 저장소에서 게시하려면 마켓플레이스 파일을 `.claude-plugin/`의 `plugin.json` 옆에 저장하고, `source`가 `"./"`(저장소 루트)인 항목 하나를 포함합니다. 항목에 `plugin.json`과 동일한 `name`을 지정하세요. [항목 이름과 매니페스트 이름을 동일하게 유지](/docs/ko/plugins/create-marketplace#keep-the-entry-name-and-the-manifest-name-the-same)를 참조하세요:

102 

103```json .claude-plugin/marketplace.json theme={null}

104{

105 "name": "your-marketplace",

106 "owner": { "name": "Your Name" },

107 "plugins": [

108 { "name": "deploy-helper", "source": "./" }

109 ]

110}

111```

112 

113셸에서 저장소의 `claude plugin validate .`을 실행하여 푸시하기 전에 파일을 확인하세요.

114 

115[마켓플레이스 만들기](/docs/ko/plugins/create-marketplace)는 한 저장소에 여러 플러그인이 있는 레이아웃을 다룹니다.

116 

117<h3 id="control-who-can-install">

118 설치할 수 있는 사람 제어

119</h3>

120 

121저장소를 복제할 수 있는 모든 사람이 설치할 수 있으므로, 저장소가 비공개이면 마켓플레이스도 비공개입니다. git 저장소 이외의 호스트의 경우 [마켓플레이스 호스팅](/docs/ko/plugins/host-marketplace)을 참조하세요. 회사의 모든 사람(git을 사용하지 않는 사람 포함)에게 도달하려면 [전체 회사에 배포](/docs/ko/plugins/host-marketplace#roll-out-to-a-whole-company)를 참조하세요.

122 

123<h3 id="tell-users-how-to-install">

124 사용자에게 설치 방법 알리기

125</h3>

126 

127사용자에게 마켓플레이스를 추가한 후 셸에서 플러그인을 설치하도록 알리고, 소스 및 이름을 자신의 것으로 바꾸세요:

128 

129* 마켓플레이스를 한 번 추가: `claude plugin marketplace add your-org/your-marketplace`. 인수는 GitHub `owner/repo` 약자, URL 또는 경로입니다

130* 플러그인 설치: `claude plugin install deploy-helper@your-marketplace`

131* 또는 세션 내에서 둘 다 수행: `/plugin install deploy-helper --marketplace your-org/your-marketplace`. Claude Code v2.1.275 이상이 필요합니다. [한 명령으로 마켓플레이스 추가 및 설치](/docs/ko/plugins/install#add-a-marketplace-and-install-in-one-command)를 참조하세요

132 

133<h3 id="ship-updates-to-users">

134 사용자에게 업데이트 배포

135</h3>

136 

137사용자는 요청할 때 또는 마켓플레이스에 대해 자동 업데이트가 켜져 있을 때 릴리스를 받습니다:

138 

139* **요청 시**: 사용자의 셸에서 `claude plugin update deploy-helper@your-marketplace`는 마켓플레이스를 새로 고치고 플러그인의 버전이 변경되었을 때 새 복사본을 설치합니다

140* **자동 업데이트**: 마켓플레이스의 경우 기본적으로 꺼져 있습니다. [자동 업데이트 켜기](/docs/ko/plugins/host-marketplace#turn-on-auto-update)를 참조하세요. 켜지면 세션 시작 후 지연 후 `claude plugin update`와 동일한 작업을 수행합니다

141 

142[플러그인 설치](/docs/ko/plugins/install)는 사용자 측 명령을 다루고, [자동 업데이트가 실행되는 시기](/docs/ko/plugins/loading#when-auto-update-runs)는 타이밍을 다룹니다.

143 

144<h2 id="submit-to-the-community-marketplace">

145 커뮤니티 마켓플레이스에 제출

146</h2>

147 

148Anthropic의 커뮤니티 마켓플레이스인 `claude-community`는 플러그인 디렉터리 제출 양식을 통해 제출된 플러그인을 나열하는 공개 마켓플레이스입니다.

149 

150사용자는 Claude Code 세션에서 `/plugin marketplace add anthropics/claude-plugins-community`로 커뮤니티 마켓플레이스를 추가하고 `@claude-community`로 설치합니다.

151 

152커뮤니티 마켓플레이스가 공식 마켓플레이스와 어떻게 다른지는 [Anthropic의 마켓플레이스](/docs/ko/plugins/anthropic-marketplaces)를 참조하세요.

153 

154플러그인을 커뮤니티 마켓플레이스에 제출하려면 다음 앱 내 양식 중 하나를 사용하세요:

155 

156* **claude.ai**: [claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)

157* **Console**: [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)

158 

159claude.ai 양식에는 Team 또는 Enterprise 조직과 Directory 권한(기본적으로 소유자가 보유)이 필요합니다. Team 또는 Enterprise 조직에 속하지 않은 개별 저자는 Console 양식을 대신 사용할 수 있습니다.

160 

161셸에서 제출하기 전에 `claude plugin validate ./your-plugin`을 로컬로 실행하고, `./your-plugin`을 플러그인 디렉터리의 경로로 바꾸세요. 유효성 검사가 통과하면 Claude Code는 `✔ Validation passed` 또는 경고가 있으면 `✔ Validation passed with warnings`를 출력합니다. 경고는 유효성 검사를 실패하지 않습니다. `--strict`를 추가하여 경고를 오류로 취급하세요.

162 

163나열된 플러그인은 [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) 카탈로그에 나타나며, 거의 모든 경우 특정 커밋 SHA에 고정됩니다.

164 

165제출과 플러그인이 `marketplace.json`에 나타나는 사이에 지연이 있을 수 있습니다. 플러그인이 아직 설치 가능한지 확인하려면 [커뮤니티 카탈로그](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json)에서 이름을 검색하세요.

166 

167공식 마켓플레이스인 `claude-plugins-official`은 이러한 양식을 통한 제출을 받지 않습니다. Anthropic 파트너 담당자와 함께 일하면 공식 마켓플레이스 목록에 대해 물어보세요.

168 

169<h2 id="ship-updates-renames-and-removals">

170 업데이트, 이름 바꾸기 및 제거 배포

171</h2>

172 

173<h3 id="release-a-new-version">

174 새 버전 릴리스

175</h3>

176 

177자신의 마켓플레이스를 통해 게시하고 `plugin.json`이 `version`을 설정하면 증가시키고 푸시하세요. `claude plugin update`를 실행하거나 자동 업데이트가 켜져 있는 사용자는 [사용자에게 업데이트 배포](#ship-updates-to-users)에서 설명한 대로 새 버전을 받습니다.

178 

179<h3 id="tag-a-release">

180 릴리스 태그 지정

181</h3>

182 

183다른 플러그인이 버전 범위를 선언할 때 git에서 릴리스를 태그하세요. 이러한 범위는 태그에 대해 해결되기 때문입니다. 그렇지 않으면 태그가 필요하지 않습니다.

184 

185태그를 지정하려면 플러그인 디렉터리에서 셸의 `claude plugin tag`를 실행하세요. `{name}--v{version}` 태그를 만듭니다. `--push`를 추가하여 태그를 `origin`으로 보내세요. [`plugin tag` 참조](/docs/ko/plugins/cli-reference#plugin-tag)는 플래그를 나열합니다.

186 

187<h3 id="rename-or-remove-a-plugin">

188 플러그인 이름 바꾸기 또는 제거

189</h3>

190 

191게시된 플러그인의 `name`을 절대 변경하지 마세요. 이름을 바꾼 후 이미 설치한 사용자는 플러그인을 잃습니다. 설치가 이전 이름으로 기록되기 때문입니다. 마켓플레이스 파일의 `renames` 항목이 대신 마이그레이션합니다. 다른 레이블을 원할 때 `displayName`을 변경하세요.

192 

193이름 바꾸기가 불가피한 경우 마켓플레이스 파일의 `renames` 맵을 사용하여 기존 설치가 [`Plugin "<name>" not found in marketplace`](/docs/ko/plugins/troubleshooting#plugin-not-found-in-marketplace)로 실패하는 대신 마이그레이션하도록 합니다. 마켓플레이스에서 플러그인을 제거하거나 전체 `renames` 세부 정보는 호스팅 페이지의 [플러그인 이름 바꾸기 또는 제거](/docs/ko/plugins/host-marketplace#rename-or-remove-a-plugin)를 참조하세요. [마켓플레이스 참조](/docs/ko/plugins/marketplace-reference#top-level-fields)에 필드가 있습니다.

194 

195<h2 id="declare-dependencies">

196 종속성 선언

197</h2>

198 

199플러그인이 동일한 마켓플레이스의 다른 플러그인을 활성화해야 하는 경우 `plugin.json`의 `dependencies` 배열에 나열하세요. 각 항목은 베어 이름 또는 semver `version` 범위가 있는 객체입니다. 사용자가 플러그인을 설치하면 Claude Code가 종속성도 설치하고 활성화합니다.

200 

201[플러그인 종속성](/docs/ko/plugins/dependencies)은 범위 구문, 교차 마켓플레이스 종속성 및 사용자가 더 이상 필요하지 않은 종속성을 정리하는 방법을 다룹니다.

202 

203<h2 id="next-steps">

204 다음 단계

205</h2>

206 

207* [마켓플레이스 호스팅 및 유지 관리](/docs/ko/plugins/host-marketplace): 새 버전을 릴리스하고 사용자를 최신 상태로 유지합니다

208* [플러그인 종속성](/docs/ko/plugins/dependencies): 플러그인이 의존하는 플러그인을 선언하고 버전 관리합니다

209* [CLI에서 플러그인 권장](/docs/ko/plugins/cli-hints): CLI 사용자에게 플러그인을 설치하도록 Claude Code 사용자에게 메시지를 표시합니다

210* [플러그인 비용 및 사용량 측정](/docs/ko/plugins/measure): 플러그인이 컨텍스트에서 비용이 얼마나 드는지 확인하고 사람들이 사용하는지 확인합니다

plugins/relevance.md +247 −0 created

Details

1> ## Documentation Index

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

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

4 

5# 조직을 위한 플러그인 추천

6 

7> 마켓플레이스 플러그인 항목에 관련성 블록을 추가하여 사용자의 작업이 일치할 때 Claude Code가 플러그인을 제안하도록 하고, 관리 설정에서 마켓플레이스를 허용 목록에 추가합니다.

8 

9Claude Code는 사용자의 세션이 해당 플러그인에 대해 정의한 신호와 일치할 때 조직의 마켓플레이스에서 플러그인 설치를 제안할 수 있습니다. 신호에는 작업 디렉토리, Claude가 읽은 파일, Claude가 실행한 명령이 포함됩니다. 플러그인의 `marketplace.json` 항목에 `relevance` 블록을 추가하여 신호를 정의합니다.

10 

11마켓플레이스 운영자가 `relevance` 항목을 작성합니다. 그 다음 관리자가 관리 설정에서 마켓플레이스를 허용 목록에 추가합니다. 마켓플레이스가 허용 목록에 추가될 때까지 사용자는 마켓플레이스에서 제안을 볼 수 없습니다.

12 

13<Note>

14 다음 페이지에서 다루는 경우:

15 

16 * **플러그인을 설치하려는 경우**: [플러그인 설치 및 관리](/docs/ko/plugins/install) 참조

17 * **제안을 끄려는 경우**: [플러그인 관련성 작동 방식 이해](#understand-how-plugin-relevance-works) 참조

18</Note>

19 

20역할에 해당하는 섹션부터 시작하세요:

21 

22* **마켓플레이스 운영자**: [제안 작동 방식](#understand-how-plugin-relevance-works) 읽기, [플러그인 항목에 관련성 추가](#add-relevance-to-a-plugin-entry) 및 [마켓플레이스 검증](#validate-your-marketplace)

23* **관리자**: [관리 설정에서 제안 활성화](#enable-suggestions-in-managed-settings)

24 

25<h2 id="understand-how-plugin-relevance-works">

26 플러그인 관련성 작동 방식 이해

27</h2>

28 

29`marketplace.json`의 각 플러그인 항목은 `relevance` 객체를 포함할 수 있습니다. 이 객체는 주제와 하나 이상의 신호를 이름 지정합니다. 신호는 Claude Code가 현재 세션에 대해 테스트하는 패턴입니다(예: 작업 디렉토리 또는 Claude가 읽은 파일).

30 

31신호 일치는 사용자의 머신에서 로컬로 발생하며 네트워크 트래픽을 추가하지 않습니다. Claude Code는 어떤 신호가 일치했는지 또는 해당 값을 Anthropic이나 마켓플레이스 운영자에게 보고하지 않습니다.

32 

33신호가 일치하고 플러그인이 아직 설치되지 않았을 때, Claude Code는 다음 위치에서 플러그인을 제안합니다:

34 

35* **스피너 팁**: Claude가 응답하는 동안 스피너 아래에 `/plugin install` 명령이 포함된 메시지가 나타납니다.

36* **세션 시작 알림**: `cwd` 신호가 작업 디렉토리와 일치하면 사용자가 첫 번째 메시지를 보내기 전에 한 줄 알림이 나타납니다.

37* **`/plugin` Discover 탭**: 플러그인이 Discover 목록의 맨 위에 고정됩니다.

38 

39[사용자가 보는 내용 미리보기](#preview-what-the-user-sees)는 각각의 정확한 텍스트와 반복 빈도를 보여줍니다.

40 

41Claude Code는 플러그인을 자동으로 설치하지 않습니다. 사용자가 항상 확인합니다.

42 

43스피너 팁과 세션 시작 알림은 모두 사용자 또는 프로젝트가 [`spinnerTipsEnabled`](/docs/ko/settings-reference#spinnertipsenabled)를 `false`로 설정하거나 [`spinnerTipsOverride`](/docs/ko/settings-reference#spinnertipsoverride)가 기본 제공 팁을 대체할 때 나타나지 않습니다. Discover 탭 핀은 두 설정 모두의 영향을 받지 않습니다.

44 

45<h2 id="add-relevance-to-a-plugin-entry">

46 플러그인 항목에 관련성 추가

47</h2>

48 

49`marketplace.json`의 플러그인 항목에 `relevance` 객체를 추가합니다. 다음 예제는 Claude가 `.tf` 파일을 읽거나 `terraform`을 실행할 때 `terraform-helpers` 플러그인이 관련성이 있음을 선언합니다:

50 

51```json theme={null}

52{

53 "name": "your-marketplace",

54 "owner": { "name": "Your Org" },

55 "plugins": [

56 {

57 "name": "terraform-helpers",

58 "source": "./plugins/terraform-helpers",

59 "description": "Your organization's Terraform conventions and helpers",

60 "relevance": {

61 "topic": "Terraform",

62 "signals": {

63 "cli": ["terraform"],

64 "filesRead": ["**/*.tf"]

65 }

66 }

67 }

68 ]

69}

70```

71 

72신호가 일치하지 않는 동안 플러그인은 Discover 목록에서 정상 위치를 유지하며 스피너 팁으로 나타나지 않습니다.

73 

74게시하기 전에 블록을 확인하려면 [마켓플레이스 검증](#validate-your-marketplace)을 참조하세요.

75 

76<h2 id="field-reference">

77 필드 참조

78</h2>

79 

80`relevance` 객체와 중첩된 `signals` 객체는 다음 표의 필드를 허용합니다.

81 

82이전 클라이언트는 여전히 인식하지 못하는 `relevance` 필드를 사용하는 마켓플레이스를 로드합니다. `relevance` 및 `relevance.signals` 아래의 알 수 없는 필드는 로드 시 무시되기 때문입니다. 인식된 필드의 값이 [필드 참조](#field-reference)의 제한을 초과하면 전체 플러그인 항목이 무효화되고 사용자는 수정할 때까지 마켓플레이스에서 해당 플러그인을 설치할 수 없습니다. `claude plugin validate`는 동일한 제한을 보고합니다.

83 

84<h3 id="relevance">

85 `relevance`

86</h3>

87 

88| 필드 | 유형 | 설명 |

89| :-------- | :----- | :----------------------------------------------------------------------------------------------------------------------------- |

90| `topic` | string | 선택 사항입니다. 스피너 팁에서 "\_topic\_으로 작업 중입니까?"를 채우는 구문입니다. 기본값은 각 하이픈 세그먼트가 대문자로 표기된 플러그인 이름입니다. 최대 64자입니다. |

91| `signals` | object | 플러그인이 관련성이 있는 시기를 결정하는 매처입니다. Claude Code는 최소한 하나의 신호가 설정된 경우에만 플러그인을 제안합니다. [`relevance.signals`](#relevance-signals)를 참조하세요. |

92 

93`topic`은 종종 제품 이름입니다(예: `Terraform`). 플러그인 이름이 주제로 자연스럽게 들리지 않을 때 `design`과 같은 도메인을 사용합니다.

94 

95<h3 id="relevance-signals">

96 `relevance.signals`

97</h3>

98 

99`signals` 객체는 다음 필드를 허용합니다.

100 

101| 필드 | 유형 | 설명 | 제한 |

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

103| `cwd` | array of strings | 세션의 작업 디렉토리와 일치하는 Glob 패턴입니다. [작업 디렉토리 일치](#working-directory-matching)를 참조하세요. | 각 256자의 10개 패턴 |

104| `cli` | array of strings | 이 세션에서 Claude가 실행한 셸 명령의 명령 이름입니다(예: `["terraform"]`). 정확한 일치입니다. [명령 이름 일치](#command-name-matching)를 참조하세요. | 각 64자의 10개 항목 |

105| `hosts` | array of strings | 이 세션의 Bash 명령에서 `http://` 또는 `https://` URL에 표시되는 호스트 이름입니다(예: `["registry.terraform.io"]`). 베어 소문자 호스트 이름만: 스키마, 포트 또는 경로 없음. 정확한 대소문자 구분 없는 일치입니다. | 각 128자의 20개 항목 |

106| `filesRead` | array of strings | 이 세션에서 Claude가 읽은 파일의 경로와 일치하는 Glob 패턴입니다(예: `["**/*.tf"]`). 정방향 슬래시 정규화 및 대소문자 구분 없음입니다. | 각 256자의 10개 패턴 |

107| `manifestDeps` | array of objects | Claude가 이 세션에서 읽은 패키지 매니페스트에 선언된 종속성입니다. 각 항목은 `{ "file": "...", "pattern": "..." }`이며, 두 값 모두 정규식입니다. [매니페스트 종속성 일치](#manifest-dependency-matching)를 참조하세요. | 10개 항목, 각 값은 최대 256자입니다. 512KB보다 큰 매니페스트 파일은 건너뜁니다. |

108 

109`filesRead` 및 `manifestDeps` 신호는 또한 Claude가 이 세션에서 작성하거나 편집한 파일과 프로젝트의 자동 로드된 `CLAUDE.md` 메모리 파일에 대해 일치합니다.

110 

111<h4 id="working-directory-matching">

112 작업 디렉토리 일치

113</h4>

114 

115`cwd`는 세션 시작 시, 사용자가 첫 번째 메시지를 보내기 전에 일치할 수 있는 유일한 신호입니다.

116 

117Claude Code는 다음과 같이 각 `cwd` 패턴을 일치시킵니다:

118 

119* 패턴은 절대 경로로 작업 디렉토리와 일치합니다. 세션이 git 저장소 내에 있을 때, 저장소 루트에 상대적인 작업 디렉토리의 경로와도 일치합니다.

120* 일치는 정방향 슬래시 정규화 및 대소문자 구분 없음입니다.

121* 모든 패턴은 디렉토리 자체 및 그 아래의 모든 항목과 일치하므로 `infra`, `infra/`, `infra/**`는 동일하게 작동합니다.

122 

123<h4 id="command-name-matching">

124 명령 이름 일치

125</h4>

126 

127Claude Code는 Claude가 실행하는 각 셸 명령에 대해 하나의 명령 이름을 기록합니다: 선행 환경 변수 할당 및 `sudo` 이후의 첫 번째 토큰입니다. 복합 명령은 선행 명령만 기여하므로 `cd infra && terraform plan`은 `terraform`이 아닌 `cd`를 기록합니다.

128 

129<h4 id="manifest-dependency-matching">

130 매니페스트 종속성 일치

131</h4>

132 

133각 `manifestDeps` 항목은 두 개의 JavaScript `RegExp` 소스 문자열을 쌍으로 만듭니다:

134 

135* `file`: 매니페스트 파일의 경로와 대소문자 구분 없이 일치합니다. 경로는 일반적으로 절대 경로이므로 시작이 아닌 끝에 패턴을 고정합니다. 경로는 이 신호에 대해 구분자 정규화되지 않으므로 Windows 경로는 백슬래시를 사용합니다.

136* `pattern`: 해당 파일의 내용과 대소문자 구분하여 일치합니다.

137 

138다음 예제는 `manifestDeps`를 사용하여 Claude가 SDK의 npm 패키지(여기서는 `your-sdk`라고 함)에 의존하는 `package.json`을 읽은 후 플러그인을 제안합니다.

139 

140```json theme={null}

141{

142 "name": "your-plugin",

143 "source": "./plugins/your-plugin",

144 "relevance": {

145 "signals": {

146 "manifestDeps": [

147 {

148 "file": "[/\\\\]package\\.json$",

149 "pattern": "\"your-sdk\"\\s*:"

150 }

151 ]

152 }

153 }

154}

155```

156 

157이 예제에서 `file` 패턴은 `[/\\\\]`를 사용하여 정방향 슬래시와 백슬래시 경로 구분자 모두와 일치하고, `\\.`를 사용하여 점이 리터럴입니다. JSON에서 정규식의 각 백슬래시는 두 번 작성됩니다.

158 

159<h2 id="validate-your-marketplace">

160 마켓플레이스 검증

161</h2>

162 

163셸에서 마켓플레이스 디렉토리에 대해 `claude plugin validate`를 실행하여 게시하기 전에 `relevance` 블록을 확인합니다:

164 

165```bash theme={null}

166claude plugin validate ./my-marketplace

167```

168 

169검증자는 `relevance` 블록에 대한 오류 및 경고를 보고합니다:

170 

171* `relevance` 및 `relevance.signals` 아래의 알 수 없는 키를 경고로 보고합니다.

172* `relevance` 값이 객체가 아닌 경우를 플래그합니다.

173* 스키마, 포트 또는 경로를 포함하는 `signals.hosts` 항목을 거부합니다.

174 

175각 발견은 관련된 필드의 경로와 함께 인쇄되며, 출력은 `Validation passed`, `Validation passed with warnings` 또는 `Validation failed`로 끝납니다.

176 

177<h2 id="enable-suggestions-in-managed-settings">

178 관리 설정에서 제안 활성화

179</h2>

180 

181사용자는 관리자가 [관리 설정](/docs/ko/plugins/org)에서 마켓플레이스를 허용 목록에 추가할 때까지 마켓플레이스에서 제안을 볼 수 없습니다. 해당 `marketplace.json`이 `relevance`를 선언하더라도 마찬가지입니다.

182 

183마켓플레이스를 허용 목록에 추가하려면 관리 설정을 다음과 같이 편집합니다:

184 

185* 마켓플레이스 이름을 `pluginSuggestionMarketplaces`에 추가합니다.

186* 공식 Anthropic 마켓플레이스 이외의 마켓플레이스의 경우, 마켓플레이스 소스를 [`extraKnownMarketplaces`](/docs/ko/plugins/org#require-a-marketplace-and-its-plugins)의 해당 이름 항목으로 또는 [`strictKnownMarketplaces`](/docs/ko/plugins/org#allowlist-with-strictknownmarketplaces)의 항목으로 선언합니다.

187 

188마켓플레이스가 등록되지 않은 머신이나 허용 목록에 추가된 이름에서 다른 소스로 등록된 머신에서는 해당 제안이 나타나지 않습니다. 소스 확인은 관련 없는 소스가 허용 목록에 추가된 이름으로 등록되어 조직 전체에서 플러그인을 제안받는 것을 방지합니다.

189 

190다음 `managed-settings.json`은 GitHub 저장소에서 조직 마켓플레이스를 등록하고 해당 제안을 활성화합니다:

191 

192```json theme={null}

193{

194 "extraKnownMarketplaces": {

195 "your-marketplace": {

196 "source": {

197 "source": "github",

198 "repo": "your-org/your-marketplace"

199 }

200 }

201 },

202 "pluginSuggestionMarketplaces": ["your-marketplace"]

203}

204```

205 

206공식 마켓플레이스의 이름은 공식 Anthropic 소스에서만 등록할 수 있으므로 소스 선언이 필요하지 않습니다. 공식 마켓플레이스의 경우 이름만 허용 목록에 추가합니다:

207 

208```json theme={null}

209{

210 "pluginSuggestionMarketplaces": ["claude-plugins-official"]

211}

212```

213 

214<h2 id="preview-what-the-user-sees">

215 사용자가 보는 내용 미리보기

216</h2>

217 

218플러그인의 `relevance` 신호가 세션 중에 일치할 때, 스피너 아래의 팁은 다음과 같이 읽습니다:

219 

220```text theme={null}

221Working with Terraform? Install the terraform-helpers plugin:

222/plugin install terraform-helpers@your-marketplace

223```

224 

225`cwd` 신호가 세션 시작 시 일치할 때, 한 줄 알림은 다음과 같이 읽습니다:

226 

227```text theme={null}

228plugin suggestion: terraform-helpers@your-marketplace · /plugin

229```

230 

231`/plugin` Discover 탭에서 플러그인은 다른 결과 위에 고정되며 일치하는 신호를 이름 지정하는 주석이 있습니다(예: `suggested for this directory` 또는 `suggested for terraform commands`).

232 

233Claude Code는 주어진 플러그인을 제안하는 빈도를 제한합니다:

234 

235* 제안은 스피너 팁과 세션 시작 알림을 합쳐서 최대 3개 세션마다 한 번 나타납니다.

236* 세션 시작 알림은 스피너 팁과 알림이 플러그인을 합쳐서 2번 표시한 후 나타나지 않습니다.

237* 스피너 팁과 세션 시작 알림은 플러그인이 설치되면 반복되지 않습니다.

238* Discover 탭은 사용자가 플러그인의 신호가 일치하는 동안 탭을 처음 열 때 플러그인을 고정합니다. Claude Code는 이를 `~/.claude.json`에 기록하므로 사용자가 나중에 해당 머신에서 `/plugin`을 열 때마다 플러그인은 정상 순서로 나타납니다.

239 

240<h2 id="see-also">

241 참고 항목

242</h2>

243 

244* [마켓플레이스 호스팅](/docs/ko/plugins/host-marketplace): 플러그인을 호스팅하는 마켓플레이스 실행

245* [마켓플레이스 참조](/docs/ko/plugins/marketplace-reference#plugin-entries): 플러그인 항목이 허용하는 모든 필드

246* [CLI에서 플러그인 추천](/docs/ko/plugins/cli-hints): Claude Code의 세션 신호 대신 자신의 CLI에서 사용자에게 메시지 표시

247* [조직을 위한 플러그인 관리](/docs/ko/plugins/org): `extraKnownMarketplaces`, `strictKnownMarketplaces` 및 나머지 플러그인 정책 키

plugins/security.md +186 −0 created

Details

1> ## Documentation Index

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

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

4 

5# 플러그인 보안 및 신뢰

6 

7> 플러그인을 설치하기 전에 신뢰할 수 있는지 결정하세요. 플러그인이 머신에서 할 수 있는 작업부터 플러그인을 검토하고 제거하는 방법까지 알아봅니다.

8 

9설치하는 Claude Code 플러그인은 사용자 권한으로 머신에서 임의의 코드를 실행할 수 있습니다.

10 

11마켓플레이스에서 플러그인을 설치합니다. 마켓플레이스는 Claude Code가 플러그인을 가져오는 카탈로그입니다. 일부 마켓플레이스 이름은 [Anthropic의 자체 마켓플레이스용으로 예약되어 있으며](#marketplace-tiers), 다른 모든 마켓플레이스는 타사입니다. 마켓플레이스의 이름은 카탈로그를 게시하는 사람을 나타내지만, 카탈로그의 각 플러그인이 무엇을 하는지는 나타내지 않으므로, [설치하기 전에 플러그인을 검토하세요](#review-a-plugin-before-you-install). 어느 마켓플레이스에서 가져오든 상관없습니다.

12 

13플러그인 설치 여부를 결정하거나 팀이 도구를 사용하기 전에 검토하는 경우 이 페이지를 읽으세요.

14 

15<Note>

16 다음 경우는 다른 페이지에서 다룹니다:

17 

18 * **Claude Code의 자체 보안 모델**: [보안](/docs/ko/security)을 참조하세요.

19 * **조직을 위한 플러그인 제한 또는 필수 설정**: [조직을 위한 플러그인 관리](/docs/ko/plugins/org)를 참조하세요.

20 * **`security-guidance` 또는 `claude-security` 플러그인**: 이 페이지는 이들에 관한 것이 아닙니다. [`security-guidance`](/docs/ko/security-guidance) 및 [`claude-security`](/docs/ko/claude-security)를 참조하세요.

21</Note>

22 

23[플러그인이 할 수 있는 작업](#understand-what-a-plugin-can-do)과 [어느 마켓플레이스가 Anthropic의 것인지](#marketplace-tiers)부터 시작한 다음, [설치하기 전에 플러그인을 검토하세요](#review-a-plugin-before-you-install).

24 

25<h2 id="understand-what-a-plugin-can-do">

26 플러그인이 할 수 있는 것 이해하기

27</h2>

28 

29플러그인은 사용자 권한으로 머신에서 실행되는 코드와 Claude의 컨텍스트에 지침으로 입력되는 콘텐츠를 포함할 수 있으므로 [플러그인을 설치하기 전에 검토하십시오](#review-a-plugin-before-you-install). 설치된 플러그인이 할 수 있는 것은 다음과 같습니다:

30 

31* **Hooks**: 플러그인의 [hooks](/docs/ko/hooks)는 도구 호출 전후와 같이 Claude Code의 수명 주기의 특정 지점에서 셸 명령으로 실행됩니다.

32* **MCP 및 LSP 서버**: Claude Code는 활성화된 플러그인이 선언하는 [MCP 서버](/docs/ko/mcp)에 연결되고 Claude에 해당 도구를 제공합니다. stdio MCP 서버는 Claude Code가 머신에서 시작하는 프로세스로 실행됩니다. Claude Code는 플러그인이 선언하는 언어 서버도 시작합니다.

33* **`bin/` 디렉토리**: Claude Code는 활성화된 각 플러그인의 `bin/` 디렉토리를 Bash 도구의 셸의 `PATH`에 추가하므로 Claude의 Bash 명령은 여기의 모든 실행 파일을 실행할 수 있습니다.

34* **Skills, commands, and agents**: 이들은 Claude의 컨텍스트에 지침으로 입력되므로 Claude가 이미 가지고 있는 도구로 수행하는 작업에 영향을 미칩니다.

35* **업데이트**: 플러그인을 설치한 마켓플레이스에서 자동 업데이트가 켜져 있으면 Claude Code는 백그라운드에서 해당 플러그인을 업데이트하므로 검토한 파일이 디스크에서 변경될 수 있습니다. [자동 업데이트가 실행되는 시기](/docs/ko/plugins/loading#when-auto-update-runs)에 타이밍이 있습니다. 마켓플레이스별로 자동 업데이트를 켜거나 끄려면 [플러그인 업데이트 유지](/docs/ko/plugins/install#keep-plugins-updated)를 참조하십시오.

36 

37Claude Code의 [권한 규칙](/docs/ko/permissions) 및 [sandbox](/docs/ko/sandboxing)는 Claude가 수행하는 도구 호출을 다루며, 플러그인이 자체적으로 실행하는 코드는 다루지 않습니다:

38 

39* **Hooks 및 서버 프로세스**: 명령 hooks는 전체 사용자 권한으로 셸 명령을 실행합니다. Claude Code는 hooks 및 MCP 서버를 sandbox 외부에서 실행합니다.

40* **Claude의 도구 호출**: 플러그인의 MCP 도구 중 하나에 대한 호출 및 플러그인의 `bin/`에서 실행 파일을 실행하는 Bash 명령은 도구 호출이므로 권한 규칙이 적용됩니다.

41 

42플러그인을 설치하면 해당 매니페스트 또는 마켓플레이스 항목이 [`defaultEnabled: false`](/docs/ko/plugins/install#choose-an-install-scope)를 설정하고 사용자가 직접 활성화하지 않은 경우를 제외하고는 플러그인이 활성화됩니다.

43 

44더 이상 신뢰하지 않는 플러그인을 제거하려면 [더 이상 신뢰하지 않는 플러그인 제거](#remove-a-plugin-you-no-longer-trust)를 참조하십시오.

45 

46<h2 id="marketplace-tiers">

47 이름으로 Anthropic의 마켓플레이스 식별하기

48</h2>

49 

50마켓플레이스의 이름은 공식, 커뮤니티 또는 타사의 세 가지 계층 중 하나에 배치합니다. Claude Code는 `github.com/anthropics/` 저장소에서 소싱된 마켓플레이스에 대해서만 공식 및 커뮤니티 이름을 허용하므로, 타사 마켓플레이스는 자신을 Anthropic 마켓플레이스로 제시할 수 없습니다. 동료 또는 조직이 게시하는 마켓플레이스는 타사입니다.

51 

52표는 각 계층에 어떤 이름이 속하는지 나열합니다:

53 

54| 계층 | 마켓플레이스 |

55| :--- | :------------------------------------------------------------------------ |

56| 공식 | [공식 마켓플레이스 이름](#official-marketplace-names)(예: `claude-plugins-official`) |

57| 커뮤니티 | `claude-community`, `claude-plugins-community`, 및 `healthcare` |

58| 타사 | 다른 모든 마켓플레이스 |

59 

60`claude-community` 카탈로그가 플러그인을 커밋 SHA에 고정하는 경우(거의 모든 항목에 대해 수행), Claude Code는 다른 커밋 설치를 거부합니다.

61 

62<h3 id="official-marketplace-names">

63 공식 마켓플레이스 이름

64</h3>

65 

66이 마켓플레이스 이름은 공식 계층을 구성합니다:

67 

68* `claude-plugins-official`

69* `claude-code-marketplace`

70* `claude-code-plugins`

71* `anthropic-marketplace`

72* `anthropic-plugins`

73* `agent-skills`

74* `anthropic-agent-skills`

75* `life-sciences`

76* `knowledge-work-plugins`

77* `claude-for-legal`

78* `claude-for-financial-services`

79* `financial-services-plugins`

80* `first-party-plugins`

81* `claude-tag-plugins`

82 

83공식, 커뮤니티 및 데모 마켓플레이스가 어떻게 다르고 각각 어디에서 나열된 내용을 찾아볼 수 있는지는 [Anthropic의 마켓플레이스](/docs/ko/plugins/anthropic-marketplaces)를 참조하세요.

84 

85<h2 id="review-a-plugin-before-you-install">

86 설치하기 전에 플러그인 검토하기

87</h2>

88 

89플러그인을 설치하기 전에 추가되는 내용과 출처를 확인하세요.

90 

91<Steps>

92 <Step title="마켓플레이스의 소스 확인">

93 셸에서 `claude plugin marketplace list`를 실행하여 GitHub 저장소 또는 디렉토리와 같이 각 마켓플레이스가 추가된 소스를 인쇄합니다.

94 </Step>

95 

96 <Step title="세부 정보 창 읽기">

97 Claude Code 세션에서 `/plugin`을 실행하고 플러그인을 선택합니다. 세부 정보 창은 플러그인의 명령, agents, skills, hooks 및 MCP와 LSP 서버를 나열하는 **설치될 항목** 섹션을 표시합니다. Anthropic이 게시된 구성 요소 데이터가 없는 플러그인의 경우, 섹션은 마켓플레이스 항목이 선언하는 내용을 표시하거나, 마켓플레이스 내에 저장된 플러그인의 경우 `설치 시 구성 요소가 발견됩니다` 또는 다른 곳에서 가져온 플러그인의 경우 `원격 플러그인에 대해 구성 요소 요약을 사용할 수 없습니다`라는 메모를 표시합니다.

98 </Step>

99 

100 <Step title="플러그인의 소스 읽기">

101 세부 정보 창에서 설치 옵션 아래의 **홈페이지 열기** 또는 **GitHub에서 보기**를 선택합니다. 창이 둘 다 제공하지 않으면, 첫 번째 단계에서 찾은 마켓플레이스 저장소를 엽니다. 거기서 플러그인의 디렉토리를 찾습니다. **설치될 항목** 섹션은 hook이 존재함을 보여주지만 실행되는 내용은 보여주지 않으므로, 플러그인의 디렉토리에서 이 파일들을 읽으세요:

102 

103 * **`hooks/hooks.json`**: 각 hook이 실행하는 명령

104 * **`.mcp.json`**: 각 서버의 명령 또는 URL

105 * **`bin/`**: 디렉토리의 모든 파일

106 </Step>

107 

108 <Step title="플러그인이 포함하는 내용 나열">

109 플러그인의 디렉토리를 보유한 저장소를 복제한 다음, 셸에서 `claude --plugin-dir <plugin directory> plugin details <plugin name>`을 실행하여 Claude Code가 찾은 내용을 확인합니다. 명령은 세션을 시작하지 않고 플러그인의 파일을 읽고 플러그인의 skills 및 명령, agents, 각 hook의 이벤트가 있는 hooks 및 MCP와 LSP 서버를 나열하는 `구성 요소 인벤토리`를 인쇄합니다.

110 </Step>

111</Steps>

112 

113플러그인을 설치한 후, 셸에서 `claude plugin details <plugin name>`을 실행하여 `~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/` 아래의 설치된 복사본에 대해 동일한 `구성 요소 인벤토리`를 인쇄합니다.

114 

115<h3 id="remove-a-plugin-you-no-longer-trust">

116 더 이상 신뢰하지 않는 플러그인 제거

117</h3>

118 

119셸에서 설치한 `--scope`와 함께 [`claude plugin uninstall <plugin>`](/docs/ko/plugins/cli-reference#plugin-uninstall)을 실행합니다. 그런 다음 제거된 내용과 남겨진 내용을 확인합니다:

120 

121* **지속적인 데이터**: 이것이 플러그인이 설치된 마지막 범위인 경우, 제거하면 플러그인의 지속적인 데이터 디렉토리도 삭제됩니다. `--keep-data`를 전달하지 않는 한입니다.

122* **캐시된 파일**: 플러그인의 파일은 `~/.claude/plugins/cache/` 아래 디스크에 남아 있으며, [백그라운드 스윕이 제거하기](/docs/ko/plugins/loading#cleanup-of-previous-versions) 전에 14일 동안 남아 있습니다. 마지막 플러그인을 제거한 후, 고아 디렉토리는 다른 플러그인을 설치할 때까지 남아 있습니다. 지금 파일을 삭제하려면, `~/.claude/plugins/cache/<marketplace>/<plugin>/` 아래의 플러그인 디렉토리를 직접 제거하세요.

123* **마켓플레이스**: 마켓플레이스의 소유자도 신뢰하지 않으면, [마켓플레이스도 제거하세요](/docs/ko/plugins/install#manage-marketplaces). 이렇게 하면 해당 마켓플레이스에서 설치한 모든 플러그인이 제거됩니다.

124 

125<h2 id="recognize-when-claude-code-refuses-or-warns">

126 Claude Code가 거부하거나 경고하는 경우 인식하기

127</h2>

128 

129`/plugin`의 **Discover** 또는 **Marketplaces** 탭에서 열 수 있는 세부 정보 창에는 각 플러그인에 대해 동일한 신뢰 경고가 표시됩니다. Claude Code는 [신뢰할 수 없는 마켓플레이스 소스 및 무결성 검사 실패](#untrusted-marketplace-sources-and-failed-integrity-checks)에 해당하는 경우와 같은 경우에 경고 대신 거부합니다.

130 

131<h3 id="trust-warning-before-you-install">

132 설치 전 신뢰 경고

133</h3>

134 

135경고는 플러그인이 어느 마켓플레이스에서 오든 동일하게 표시됩니다:

136 

137```text theme={null}

138Make sure you trust a plugin before installing, updating, or using it. Anthropic does not control what MCP servers, files, or other software are included in plugins and cannot verify that they will work as intended or that they won't change. See each plugin's homepage for more information.

139```

140 

141조직에서 [관리 설정](/docs/ko/plugins/org)에서 `pluginTrustMessage`를 설정한 경우, Claude Code는 해당 텍스트를 경고에 추가합니다.

142 

143<h3 id="untrusted-marketplace-sources-and-failed-integrity-checks">

144 신뢰할 수 없는 마켓플레이스 소스 및 무결성 검사 실패

145</h3>

146 

147Claude Code는 다음의 경우에 마켓플레이스를 로드하거나 플러그인을 설치하기를 거부하며, 각각 고유한 오류 메시지가 있습니다:

148 

149* **신뢰할 수 없는 마켓플레이스 소스**: 마켓플레이스가 공식 또는 커뮤니티 이름을 사용하지만 해당 소스가 `github.com/anthropics/` 외부에 있을 때, Claude Code는 마켓플레이스 로드를 중지하고 해당 마켓플레이스에서 설치한 플러그인을 로드하기를 거부합니다. 오류는 [Marketplace is registered from an untrusted source](/docs/ko/errors#marketplace-is-registered-from-an-untrusted-source)입니다.

150* **아카이브 무결성**: 마켓플레이스 항목이 [`archive` 소스](/docs/ko/plugins/marketplace-reference#archive-plugin-source)를 `sha256` 다이제스트에 고정하고 다운로드된 파일의 다이제스트가 일치하지 않을 때, Claude Code는 설치를 거부합니다. 오류는 [Plugin archive integrity check failed](/docs/ko/errors#plugin-archive-integrity-check-failed)입니다.

151 

152`sha256` 핀은 체크아웃할 git 커밋을 선택하는 커뮤니티 카탈로그의 커밋 SHA 핀과 별개입니다.

153 

154<h2 id="enforce-plugin-controls-for-your-organization">

155 조직을 위한 플러그인 제어 적용

156</h2>

157 

158[관리 설정](/docs/ko/plugins/org)을 사용하면, 관리자는 다음 플러그인 제어를 적용할 수 있습니다:

159 

160* 마켓플레이스 소스 허용 목록 또는 차단 목록

161* 플러그인 강제 활성화

162* `--plugin-dir` 및 `--plugin-url` 플래그와 `CLAUDE_CODE_PLUGIN_DIRS` 변수 끄기

163* hooks를 관리 설정 및 강제 활성화된 플러그인의 hooks로 제한

164* 구성원의 claude.ai 계정의 플러그인이 Claude Code에서 로드되지 않도록 중지([`syncClaudeAiPlugins`](/docs/ko/plugins/org#control-matrix) 포함)

165 

166[제어 매트릭스](/docs/ko/plugins/org#control-matrix)는 각 키가 무엇을 하고 하지 않는지 말합니다.

167 

168<h2 id="find-plugins-in-telemetry">

169 원격 분석에서 플러그인 찾기

170</h2>

171 

172조직이 Claude Code의 [OpenTelemetry 이벤트](/docs/ko/monitoring-usage)를 자체 백엔드로 내보내면, [마켓플레이스 계층](#marketplace-tiers)은 어떤 플러그인 이름이 나타나는지 결정합니다:

173 

174* **[플러그인 로드 이벤트](/docs/ko/monitoring-usage#plugin-loaded-event)**: 이벤트는 공식 계층 플러그인 및 마켓플레이스 이름을 그대로 보고합니다. 커뮤니티 및 타사 계층의 경우, `plugin.name` 및 `marketplace.name`은 `OTEL_LOG_TOOL_DETAILS=1`을 설정하지 않는 한 리터럴 문자열 `third-party`입니다.

175* **플러그인 범위**: 로드된 이벤트의 `plugin.scope`는 여전히 플러그인이 온 위치(예: 관리 설정이 활성화하는 플러그인의 경우 `org` 또는 다른 타사 플러그인의 경우 `user-local`)를 보고합니다. [플러그인 로드 이벤트](/docs/ko/monitoring-usage#plugin-loaded-event)는 모든 값을 나열합니다.

176* **[플러그인 설치 이벤트](/docs/ko/monitoring-usage#plugin-installed-event)**: `OTEL_LOG_TOOL_DETAILS=1`을 설정하지 않는 한, 이벤트는 `third-party`를 보고하는 대신 비공식 플러그인의 이름 필드를 생략합니다.

177* **[Claude Code Analytics API](https://platform.claude.com/docs/en/api/admin/analytics/plugins/list)**: Claude Code는 공식 및 커뮤니티 계층의 플러그인을 이름으로 보고하고 다른 모든 플러그인을 `third-party`로 보고합니다.

178 

179<h2 id="next-steps">

180 다음 단계

181</h2>

182 

183* [조직을 위한 플러그인 관리](/docs/ko/plugins/org): 사용자가 설치할 수 있는 마켓플레이스를 제한하고 신뢰하는 마켓플레이스를 필수로 설정

184* [플러그인 설치 및 관리](/docs/ko/plugins/install): 범위를 선택하기 전에 플러그인의 세부 정보 창을 검토

185* [Anthropic의 마켓플레이스](/docs/ko/plugins/anthropic-marketplaces): 어느 마켓플레이스 이름이 Anthropic의 것인지

186* [보안](/docs/ko/security): Claude Code의 자체 보안 모델

Details

135 플러그인 활성화 또는 비활성화135 플러그인 활성화 또는 비활성화

136</h3>136</h3>

137 137 

138[플러그인](/docs/ko/plugins)을 활성화하거나 비활성화할 때 변경 비용은 플러그인이 제공하는 구성 요소 유형에 따라 달라집니다. 아래 경우는 각 구성 요소 유형, Claude Code가 변경을 적용하는 시기, 같은 세션에서 플러그인을 다시 비활성화할 때 발생하는 상황을 다룹니다.138[플러그인](/docs/ko/plugins/overview)을 활성화하거나 비활성화할 때 변경 비용은 플러그인이 제공하는 구성 요소 유형에 따라 달라집니다. 아래 경우는 각 구성 요소 유형, Claude Code가 변경을 적용하는 시기, 같은 세션에서 플러그인을 다시 비활성화할 때 발생하는 상황을 다룹니다.

139 139 

140<h4 id="plugin-components-that-keep-the-cache">140<h4 id="plugin-components-that-keep-the-cache">

141 캐시를 유지하는 플러그인 구성 요소141 캐시를 유지하는 플러그인 구성 요소


147 MCP 서버를 제공하는 플러그인147 MCP 서버를 제공하는 플러그인

148</h4>148</h4>

149 149 

150[MCP 서버](/docs/ko/plugins-reference#mcp-servers)를 제공하는 플러그인을 활성화하거나 비활성화할 때 Claude Code는 [MCP 서버를 연결하거나 연결 해제](#connecting-or-disconnecting-an-mcp-server)할 때와 동일한 규칙을 따릅니다.150[MCP 서버](/docs/ko/plugins/components#mcp-servers)를 제공하는 플러그인을 활성화하거나 비활성화할 때 Claude Code는 [MCP 서버를 연결하거나 연결 해제](#connecting-or-disconnecting-an-mcp-server)할 때와 동일한 규칙을 따릅니다.

151 151 

152* Claude Code가 서버의 도구를 연기하면 캐시를 유지합니다.152* Claude Code가 서버의 도구를 연기하면 캐시를 유지합니다.

153* Claude Code가 도구를 접두사에 로드하면 다음 요청이 전체 대화를 다시 읽습니다.153* Claude Code가 도구를 접두사에 로드하면 다음 요청이 전체 대화를 다시 읽습니다.


156 코드 인텔리전스 플러그인156 코드 인텔리전스 플러그인

157</h4>157</h4>

158 158 

159[코드 인텔리전스 플러그인](/docs/ko/discover-plugins#code-intelligence)을 활성화하면 Claude는 [LSP 도구](/docs/ko/tools-reference#lsp-tool-behavior)를 얻습니다.159[코드 인텔리전스 플러그인](/docs/ko/plugins/code-intelligence)을 활성화하면 Claude는 [LSP 도구](/docs/ko/tools-reference#lsp-tool-behavior)를 얻습니다.

160 160 

161<h4 id="when-plugin-changes-apply">161<h4 id="when-plugin-changes-apply">

162 플러그인 변경이 적용되는 시기162 플러그인 변경이 적용되는 시기

163</h4>163</h4>

164 164 

165`/plugin` 메뉴에서 수행한 변경은 [`/reload-plugins`](/docs/ko/discover-plugins#apply-plugin-changes-without-restarting)를 통해 진행되며, Claude Code는 메뉴를 닫을 때 이를 실행합니다. 추가된 공지 또는 전체 다시 읽기 여부에 관계없이 비용을 지불하며, 변경이 적용된 후 첫 번째 턴에서 비용을 지불합니다. Claude Code는 또한 자체적으로 변경을 적용할 수 있습니다.165`/plugin` 메뉴에서 수행한 변경은 [`/reload-plugins`](/docs/ko/plugins/cli-reference#reload-plugins)를 통해 진행되며, Claude Code는 메뉴를 닫을 때 이를 실행합니다. 추가된 공지 또는 전체 다시 읽기 여부에 관계없이 비용을 지불하며, 변경이 적용된 후 첫 번째 턴에서 비용을 지불합니다. Claude Code는 또한 자체적으로 변경을 적용할 수 있습니다.

166 166 

167* `command` 소스가 있는 플러그인의 경우 Claude Code는 [플러그인 자체를 다시 로드](/docs/ko/plugin-marketplaces#when-claude-code-re-runs-the-command)할 수 있습니다.167* `command` 소스가 있는 플러그인의 경우 Claude Code는 [플러그인 자체를 다시 로드](/docs/ko/plugins/loading#when-a-command-source-re-runs)할 수 있습니다.

168* [`/plugin` 인터페이스에서 플러그인을 설치](/docs/ko/discover-plugins#install-plugins)할 때 Claude Code는 설치 중에 활성화할 수 있습니다. 설치 요약은 활성화했는지 여부를 알려줍니다.168* [`/plugin` 인터페이스에서 플러그인을 설치](/docs/ko/plugins/install#install-a-plugin)할 때 Claude Code는 설치 중에 활성화할 수 있습니다. 설치 요약은 활성화했는지 여부를 알려줍니다.

169* v2.1.246 이상에서 [`/cd`로 세션을 이동](/docs/ko/permissions#move-the-session-to-another-directory)할 때 Claude Code는 새 디렉토리의 설정이 활성화하는 플러그인을 이동의 일부로 적용하며, `/reload-plugins`를 보류시키는 전체 다시 읽기 경고는 표시하지 않습니다.169* v2.1.246 이상에서 [`/cd`로 세션을 이동](/docs/ko/permissions#move-the-session-to-another-directory)할 때 Claude Code는 새 디렉토리의 설정이 활성화하는 플러그인을 이동의 일부로 적용하며, `/reload-plugins`를 보류시키는 전체 다시 읽기 경고는 표시하지 않습니다.

170* 대화형 세션에서 `--plugin-dir`으로 전달한 [플러그인 폴더](/docs/ko/plugins#test-your-plugins-locally)에서 플러그인을 추가하거나 제거할 때 변경이 즉시 적용됩니다. 적용할 경우 전체 다시 읽기가 트리거된다면 Claude Code는 대신 변경을 보류하고 `/reload-plugins`를 실행하라는 공지를 표시합니다. Claude Code v2.1.265 이상이 필요합니다.170* 대화형 세션에서 `--plugin-dir`으로 전달한 [플러그인 폴더](/docs/ko/plugins/create#load-a-directory-or-archive-for-one-session)에서 플러그인을 추가하거나 제거할 때 변경이 즉시 적용됩니다. 적용할 경우 전체 다시 읽기가 트리거된다면 Claude Code는 대신 변경을 보류하고 `/reload-plugins`를 실행하라는 공지를 표시합니다. Claude Code v2.1.265 이상이 필요합니다.

171 171 

172`/reload-plugins`가 실행되고 다시 로드가 전체 다시 읽기를 트리거하면 Claude Code는 경고를 표시하고 다시 로드를 적용하지 않습니다. `/reload-plugins --force`를 실행하여 어쨌든 적용합니다.172`/reload-plugins`가 실행되고 다시 로드가 전체 다시 읽기를 트리거하면 Claude Code는 경고를 표시하고 다시 로드를 적용하지 않습니다. `/reload-plugins --force`를 실행하여 어쨌든 적용합니다.

173 173 

174`/reload-plugins`는 또한 데스크톱 앱, Agent SDK, [비대화형 모드](/docs/ko/headless)(`-p` 포함)와 같이 대화형 터미널이 없는 세션에서 실행되며, 세션에 직접 입력할 때 실행됩니다. Claude Code v2.1.260 이상이 필요합니다.174`/reload-plugins`는 또한 데스크톱 앱, Agent SDK, [비대화형 모드](/docs/ko/headless)(`-p` 포함)와 같이 대화형 터미널이 없는 세션에서 실행되며, 세션에 직접 입력할 때 실행됩니다. Claude Code v2.1.260 이상이 필요합니다.

175 175 

176이러한 세션에서 다시 로드는 플러그인 MCP 서버 변경을 제외한 모든 것을 적용하며, [다음 세션에서 적용](/docs/ko/discover-plugins#apply-plugin-changes-without-restarting)되므로 세션 중에 전체 다시 읽기 비용이 발생하지 않습니다.176이러한 세션에서 다시 로드는 플러그인 MCP 서버 변경을 제외한 모든 것을 적용하며, [다음 세션에서 적용](/docs/ko/plugins/cli-reference#reload-plugins)되므로 세션 중에 전체 다시 읽기 비용이 발생하지 않습니다.

177 177 

178<h4 id="plugins-you-enable-and-then-disable-in-one-session">178<h4 id="plugins-you-enable-and-then-disable-in-one-session">

179 한 세션에서 활성화한 후 비활성화하는 플러그인179 한 세션에서 활성화한 후 비활성화하는 플러그인

Details

626 return base + (href.startsWith('/en/') ? '/' + locale + href.slice(3) : href);626 return base + (href.startsWith('/en/') ? '/' + locale + href.slice(3) : href);

627 };627 };

628 }, []);628 }, []);

629 const SAFE_HREF = /^(\/(?![\/\\\s])|#|https?:\/\/)/;

629 const linkify = s => {630 const linkify = s => {

630 const out = [];631 const out = [];

631 let last = 0;632 let last = 0;

632 const re = /\[([^\]]+)\]\(([^)]+)\)/g;633 const re = /\[([^\]]+)\]\(([^)]+)\)/g;

633 for (let m; m = re.exec(s); ) {634 for (let m; m = re.exec(s); ) {

634 if (m.index > last) out.push(s.slice(last, m.index));635 if (m.index > last) out.push(s.slice(last, m.index));

635 out.push(<a key={m.index} href={doc(m[2])}>{m[1]}</a>);636 out.push(SAFE_HREF.test(m[2]) ? <a key={m.index} href={doc(m[2])}>{m[1]}</a> : m[1]);

636 last = re.lastIndex;637 last = re.lastIndex;

637 }638 }

638 if (last < s.length) out.push(s.slice(last));639 if (last < s.length) out.push(s.slice(last));


776 </div>777 </div>

777 <div className="pl-label">{L.whyWorks}</div>778 <div className="pl-label">{L.whyWorks}</div>

778 <div className="pl-teaches">{linkify(p.teaches)}</div>779 <div className="pl-teaches">{linkify(p.teaches)}</div>

779 {p.nextHref && p.next && <div className="pl-next">780 {p.nextHref && p.next && SAFE_HREF.test(p.nextHref) && <div className="pl-next">

780 <span className="pl-next-label">{L.makeItStick}</span>781 <span className="pl-next-label">{L.makeItStick}</span>

781 <a href={doc(p.nextHref)}>{codeify(p.next)} →</a>782 <a href={doc(p.nextHref)}>{codeify(p.next)} →</a>

782 </div>}783 </div>}


1202 },1203 },

1203 "migrate-a-pattern-across": {1204 "migrate-a-pattern-across": {

1204 title: "코드베이스 전체에서 패턴 마이그레이션",1205 title: "코드베이스 전체에서 패턴 마이그레이션",

1205 teaches: "이전 패턴과 새 패턴을 설명하십시오. Claude에 먼저 모든 위치를 식별하도록 요청하면 호출 사이트가 응답에 나열되므로 놓친 것이 없는지 확인할 수 있습니다. 많은 파일에 걸친 마이그레이션의 경우 [/batch](/docs/ko/commands)를 실행하십시오. Claude가 작업을 승인할 단위로 분할하고 백그라운드 서브에이전트가 변경을 수행하고 단위당 하나의 풀 요청을 엽니다."1206 teaches: "이전 패턴과 새 패턴을 설명하십시오. Claude에 먼저 모든 위치를 식별하도록 요청하면 호출 사이트가 응답에 나열되므로 놓친 것이 없는지 확인할 수 있습니다. 많은 파일에 걸친 마이그레이션의 경우 [/batch](/docs/ko/commands)를 실행하십시오. Claude가 작업을 승인할 단위로 분할하고 백그라운드 서브에이전트가 변경을 수행합니다."

1206 },1207 },

1207 "optimize-against-a-measurable": {1208 "optimize-against-a-measurable": {

1208 title: "측정 가능한 목표에 대해 최적화",1209 title: "측정 가능한 목표에 대해 최적화",

Details

252<Note>252<Note>

253 신뢰할 수 있는 기기는 현재 베타 단계입니다. 경험이 개선됨에 따라 기능이 변할 수 있습니다.253 신뢰할 수 있는 기기는 현재 베타 단계입니다. 경험이 개선됨에 따라 기능이 변할 수 있습니다.

254 254 

255 신뢰할 수 있는 기기는 Team 및 Enterprise 요금제에서 사용할 수 있습니다. 기본적으로 꺼져 있으며 관리자가 활성화해야 합니다.255 신뢰할 수 있는 기기는 Pro, Max, Team 및 Enterprise 요금제에서 사용할 수 있으며 기본적으로 꺼져 있습니다. Team 및 Enterprise 요금제에서는 소유자가 조직에 대해 이를 켭니다. Pro 및 Max 요금제에서는 설정의 Cowork 또는 Account 페이지에서 **신뢰할 수 있는 기기 필요**를 직접 켭니다.

256</Note>256</Note>

257 257 

258신뢰할 수 있는 기기는 조직 전체 설정으로, 구성원이 claude.ai, Claude 모바일 앱 또는 Claude Desktop에서 Remote Control 세션을 보거나 제어하기 전에 기기를 확인해야 합니다. Remote Control 액세스를 서명된 계정이 아닌 알려진 기기 및 최근 인증에 연결합니다.258신뢰할 수 있는 기기는 조직의 각 구성원 또는 Pro 또는 Max 요금제의 경우 사용자 혼자서 claude.ai, Claude 모바일 앱 또는 Claude Desktop에서 Remote Control 세션을 보거나 제어하기 전에 기기를 확인해야 합니다. Remote Control 액세스를 서명된 계정이 아닌 알려진 기기 및 최근 인증에 연결합니다.

259 259 

260설정이 켜져 있으면 Remote Control 세션과 상호 작용하려면 다음 두 가지가 모두 필요합니다:260설정이 켜져 있으면 Remote Control 세션과 상호 작용하려면 다음 두 가지가 모두 필요합니다:

261 261 


267설정은 Remote Control에만 적용됩니다. 일반 Claude 채팅, 터미널의 Claude Code 및 API 사용은 영향을 받지 않습니다.267설정은 Remote Control에만 적용됩니다. 일반 Claude 채팅, 터미널의 Claude Code 및 API 사용은 영향을 받지 않습니다.

268 268 

269<h3 id="enable-trusted-devices-for-your-organization">269<h3 id="enable-trusted-devices-for-your-organization">

270 조직에 대해 신뢰할 수 있는 기기 활성화270 Team 또는 Enterprise 조직에 대해 신뢰할 수 있는 기기 활성화

271</h3>271</h3>

272 272 

273관리자는 Claude Code 관리자 콘솔에서 설정을 활성화합니다.273소유자는 claude.ai 조직 설정에서 설정을 활성화합니다.

274 274 

275<Steps>275<Steps>

276 <Step title="Claude Code 관리자 설정 열기">276 <Step title="Capabilities 페이지로 이동">

277 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)로 이동합니다. **신뢰할 수 있는 기기 필요** 토글이 Remote Control 설정 아래에 나타납니다.277 [**조직 설정 > Capabilities > Remote sessions**](https://claude.ai/admin-settings/capabilities)로 이동합니다. **신뢰할 수 있는 기기 필요** 토글이 해당 섹션에 나타납니다.

278 </Step>278 </Step>

279 279 

280 <Step title="신뢰할 수 있는 기기 필요 켜기">280 <Step title="신뢰할 수 있는 기기 필요 켜기">

sandboxing.md +2 −2

Details

147* 기본 `Bash` 요청 규칙 또는 동등한 `Bash(*)` 형식은 샌드박스에서 실행되는 명령에 대해 건너뜁니다. 일반 권한 흐름으로 폴백하는 명령에는 여전히 적용됩니다. [계획 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)에서는 규칙이 건너뛰어지지 않습니다. 읽기 전용 명령을 포함하여 샌드박스된 명령에 대해 프롬프트됩니다. v2.1.212 이전에는 건너뛰기가 계획 모드에도 적용되었습니다.147* 기본 `Bash` 요청 규칙 또는 동등한 `Bash(*)` 형식은 샌드박스에서 실행되는 명령에 대해 건너뜁니다. 일반 권한 흐름으로 폴백하는 명령에는 여전히 적용됩니다. [계획 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)에서는 규칙이 건너뛰어지지 않습니다. 읽기 전용 명령을 포함하여 샌드박스된 명령에 대해 프롬프트됩니다. v2.1.212 이전에는 건너뛰기가 계획 모드에도 적용되었습니다.

148 148 

149<Info>149<Info>

150 자동 허용 모드는 [계획 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)를 제외하고 권한 모드 설정과 독립적으로 작동하며, 자동 모드에서는 [명령별 허용 도메인](#per-command-allowed-domains-in-auto-mode)을 수행하는 명령에 대해 작동합니다. "수정 사항 수락" 모드가 아니더라도 자동 허용이 활성화되면 샌드박스된 Bash 명령이 자동으로 실행됩니다. 이는 샌드박스 경계 내에서 파일을 수정하는 Bash 명령이 수동 모드에서도 프롬프트 없이 실행됨을 의미합니다. 파일 편집 도구는 프롬프트됩니다.150 자동 허용 모드는 [계획 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)를 제외하고 권한 모드 설정과 독립적으로 작동하며, 자동 모드에서는 [명령별 허용 도메인](#per-command-allowed-domains-in-auto-mode)을 수행하는 명령에 대해 작동하고, [서버 측 분류기 검토](/docs/ko/permission-modes#how-the-classifier-evaluates-actions)는 자동 모드에서 샌드박스된 명령에 대해 작동합니다. "수정 사항 수락" 모드가 아니더라도 자동 허용이 활성화되면 샌드박스된 Bash 명령이 자동으로 실행됩니다. 이는 샌드박스 경계 내에서 파일을 수정하는 Bash 명령이 수동 모드에서도 프롬프트 없이 실행됨을 의미합니다. 파일 편집 도구는 프롬프트됩니다.

151 151 

152 계획 모드에서는 자동 허용이 승인을 넓히지 않습니다. Claude Code가 계획하는 동안 명령을 제어하는 방법은 [계획 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)를 참조하세요. v2.1.212 이전에는 자동 허용이 계획 모드에서도 프롬프트 없이 샌드박스된 명령을 실행했습니다.152 계획 모드에서는 자동 허용이 승인을 넓히지 않습니다. Claude Code가 계획하는 동안 명령을 제어하는 방법은 [계획 모드](/docs/ko/permission-modes#analyze-before-you-edit-with-plan-mode)를 참조하세요. v2.1.212 이전에는 자동 허용이 계획 모드에서도 프롬프트 없이 샌드박스된 명령을 실행했습니다.

153</Info>153</Info>


318 자격증명 보호318 자격증명 보호

319</h3>319</h3>

320 320 

321`sandbox.credentials` 설정은 샌드박싱된 명령이 액세스하면 안 되는 자격증명 파일 및 환경 변수를 선언합니다. 각 항목은 파일 경로 또는 환경 변수와 `mode`를 지정합니다. 전용 `credentials` 블록은 자격증명 규칙을 함께 그룹화하고 일반 파일시스템 규칙과 분리합니다. Claude Code v2.1.187 이상이 필요합니다.321`sandbox.credentials` 설정은 샌드박싱된 명령이 액세스하면 안 되는 자격증명 파일 및 환경 변수를 선언합니다. 각 항목은 파일 경로 또는 환경 변수와 `mode`를 지정합니다. 전용 `credentials` 블록은 자격증명 규칙을 함께 그룹화하고 일반 파일시스템 규칙과 분리합니다.

322 322 

323`"mode": "deny"`를 사용하는 항목의 경우 파일 경로는 샌드박스 내에서 읽기가 거부되며, 이는 `filesystem.denyRead`가 적용하는 것과 동일한 제한이고, 환경 변수는 각 샌드박싱된 명령 실행 전에 설정 해제됩니다. 파일 보호는 파일시스템 계층의 일부이므로 [파일시스템 격리를 비활성화](#disable-filesystem-isolation)하면 적용되지 않습니다. 환경 변수 보호는 여전히 적용됩니다.323`"mode": "deny"`를 사용하는 항목의 경우 파일 경로는 샌드박스 내에서 읽기가 거부되며, 이는 `filesystem.denyRead`가 적용하는 것과 동일한 제한이고, 환경 변수는 각 샌드박싱된 명령 실행 전에 설정 해제됩니다. 파일 보호는 파일시스템 계층의 일부이므로 [파일시스템 격리를 비활성화](#disable-filesystem-isolation)하면 적용되지 않습니다. 환경 변수 보호는 여전히 적용됩니다.

324 324 

Details

25 플러그인 설치25 플러그인 설치

26</h2>26</h2>

27 27 

28터미널 Claude Code 세션에서 [공식 Anthropic 마켓플레이스](/docs/ko/discover-plugins#official-anthropic-marketplace)에서 설치합니다:28터미널 Claude Code 세션에서 [공식 Anthropic 마켓플레이스](/docs/ko/plugins/anthropic-marketplaces)에서 설치합니다:

29 29 

30```text theme={null}30```text theme={null}

31/plugin install security-guidance@claude-plugins-official31/plugin install security-guidance@claude-plugins-official


35 35 

36* **Claude 데스크톱 앱, 로컬 또는 SSH 세션**: 프롬프트 옆의 **+** 버튼을 클릭한 후 **플러그인**, **플러그인 추가**를 클릭하여 [플러그인 브라우저](/docs/ko/desktop#install-plugins)를 엽니다36* **Claude 데스크톱 앱, 로컬 또는 SSH 세션**: 프롬프트 옆의 **+** 버튼을 클릭한 후 **플러그인**, **플러그인 추가**를 클릭하여 [플러그인 브라우저](/docs/ko/desktop#install-plugins)를 엽니다

37* **VS Code 확장**: [**플러그인 관리** 대화상자](/docs/ko/vs-code#manage-plugins)에서 설치합니다37* **VS Code 확장**: [**플러그인 관리** 대화상자](/docs/ko/vs-code#manage-plugins)에서 설치합니다

38* **클라우드 세션**: 플러그인을 claude.ai 계정에 대해 활성화하여 Claude Code가 [동기화된 플러그인](/docs/ko/plugins-reference#synced-plugins)으로 로드하도록 합니다. 클라우드 세션은 사용자 설정이나 저장소의 `.claude/settings.json`에서 플러그인을 로드하지 않습니다. [설정에서 전달되는 항목](/docs/ko/cloud-environments#what-carries-over-from-your-setup)에서 설명하는 대로입니다38* **클라우드 세션**: 클라우드 세션은 사용자 설정이나 저장소의 `.claude/settings.json`에서 플러그인을 로드하지 않습니다. [설정에서 전달되는 항목](/docs/ko/cloud-environments#what-carries-over-from-your-setup)에서 설명하는 대로입니다. 조직이 관리 설정을 통해 배포하는 플러그인의 경우 [조직의 플러그인 관리](/docs/ko/plugins/org)를 참조하세요

39 39 

40터미널 설치는 범위를 묻습니다. 사용자 범위를 선택하여 플러그인을 사용자 설정에 기록하면 이 머신에서 시작하는 모든 새 로컬 세션에 로드됩니다.40터미널 설치는 범위를 묻습니다. 사용자 범위를 선택하여 플러그인을 사용자 설정에 기록하면 이 머신에서 시작하는 모든 새 로컬 세션에 로드됩니다.

41 41 

42설치가 실패하면 Claude Code가 보고하는 메시지와 일치시킵니다:42설치가 실패하면 Claude Code가 보고하는 메시지와 일치시킵니다:

43 43 

44* `Marketplace "claude-plugins-official" not found`: `/plugin marketplace add anthropics/claude-plugins-official`로 마켓플레이스를 추가한 후 설치를 다시 시도합니다.44* `Marketplace "claude-plugins-official" not found`: `/plugin marketplace add anthropics/claude-plugins-official`로 마켓플레이스를 추가한 후 설치를 다시 시도합니다.

45* 플러그인이 [마켓플레이스에서 찾을 수 없음](/docs/ko/discover-plugins#install-plugins): 플러그인 이름을 확인합니다.45* 플러그인이 [마켓플레이스에서 찾을 수 없음](/docs/ko/plugins/install#install-a-plugin): 플러그인 이름을 확인합니다.

46 46 

47설치 요약을 확인합니다. `Run /reload-plugins to activate.`를 보고하면 [재시작 없이 플러그인 변경 사항 적용](/docs/ko/discover-plugins#apply-plugin-changes-without-restarting)을 참조하여 현재 세션에서 플러그인을 활성화합니다.47설치 요약을 확인합니다. `Run /reload-plugins to activate.`를 보고하면 [재시작 없이 플러그인 변경 사항 적용](/docs/ko/plugins/cli-reference#reload-plugins)을 참조하여 현재 세션에서 플러그인을 활성화합니다.

48 48 

49<h3 id="enable-for-your-team-in-local-sessions">49<h3 id="enable-for-your-team-in-local-sessions">

50 로컬 세션에서 팀을 위해 활성화50 로컬 세션에서 팀을 위해 활성화


279 279 

280* [Code Review](/docs/ko/code-review): PR 시간 다중 에이전트 검토 설정280* [Code Review](/docs/ko/code-review): PR 시간 다중 에이전트 검토 설정

281* [훅으로 워크플로우 자동화](/docs/ko/hooks-guide): 동일한 라이프사이클 지점에서 자신의 확인 구축281* [훅으로 워크플로우 자동화](/docs/ko/hooks-guide): 동일한 라이프사이클 지점에서 자신의 확인 구축

282* [플러그인 발견 및 설치](/docs/ko/discover-plugins#official-anthropic-marketplace): 다른 공식 플러그인 찾아보기282* [공식 마켓플레이스에서 플러그인 찾기](/docs/ko/plugins/anthropic-marketplaces#find-plugins-in-the-official-marketplace): 다른 공식 플러그인을 찾아볼 수 있는 곳

Details

249}249}

250```250```

251 251 

252[엔드포인트 관리](/docs/ko/managed-settings#delivery-mechanisms) MDM 프로필 또는 시스템 `managed-settings.json` 파일에서 이 키를 설정하여 첫 시작 시 실패 폐쇄 동작을 적용할 수도 있습니다. Claude Code v2.1.191 이상에서, 이 플래그는 위의 [우선순위 규칙](#settings-precedence)의 예외입니다. Claude Code는 관리자 제어 관리 소스가 이를 설정할 때 이를 준수합니다. 캐시된 서버 관리 페이로드도 있으면 MDM 전달 값을 무시하지 않습니다.252[엔드포인트 관리](/docs/ko/managed-settings#delivery-mechanisms) MDM 프로필 또는 시스템 `managed-settings.json` 파일에서 이 키를 설정하여 첫 시작 시 실패 폐쇄 동작을 적용할 수도 있습니다. 이 플래그는 위의 [우선순위 규칙](#settings-precedence)의 예외입니다. Claude Code는 관리자 제어 관리 소스가 이를 설정할 때 이를 준수합니다. 캐시된 서버 관리 페이로드도 있으면 MDM 전달 값을 무시하지 않습니다.

253 253 

254[`policyHelper`](/docs/ko/settings-reference#policyhelper)가 관리 설정을 제공할 때, 그 출력은 Claude Code가 시작 후 읽는 키에 대해 다른 모든 관리 소스를 대체합니다. Claude Code가 이 키를 읽는 소스에 대해서는 [그 설정 항목](/docs/ko/settings-reference#forceremotesettingsrefresh)을 참조하세요. `policyHelper` 항목은 Claude Code가 헬퍼를 읽는 소스와 실행 시기를 나타냅니다.254[`policyHelper`](/docs/ko/settings-reference#policyhelper)가 관리 설정을 제공할 때, 그 출력은 Claude Code가 시작 후 읽는 키에 대해 다른 모든 관리 소스를 대체합니다. Claude Code가 이 키를 읽는 소스에 대해서는 [그 설정 항목](/docs/ko/settings-reference#forceremotesettingsrefresh)을 참조하세요. `policyHelper` 항목은 Claude Code가 헬퍼를 읽는 소스와 실행 시기를 나타냅니다.

255 255 


338 338 

339[`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 스크립트에서 반환된 키도 [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 자격 증명도 설정 가져오기를 트리거하지 않습니다.339[`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 스크립트에서 반환된 키도 [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 자격 증명도 설정 가져오기를 트리거하지 않습니다.

340 340 

341Claude 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/plugin-marketplaces#how-restrictions-work)은 해당 확인을 설명합니다.341Claude 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)은 해당 확인을 설명합니다.

342 342 

343셸에서 `CLAUDE_CODE_USE_*` 공급자 변수 또는 기본값이 아닌 `ANTHROPIC_BASE_URL`을 내보내면, Claude Code는 세션에 대한 설정 가져오기를 건너뜁니다. [`claude doctor` 및 `/status`는 건너뛴 가져오기와 그 원인을 보고합니다](#verify-settings-delivery).343셸에서 `CLAUDE_CODE_USE_*` 공급자 변수 또는 기본값이 아닌 `ANTHROPIC_BASE_URL`을 내보내면, Claude Code는 세션에 대한 설정 가져오기를 건너뜁니다. [`claude doctor` 및 `/status`는 건너뛴 가져오기와 그 원인을 보고합니다](#verify-settings-delivery).

344 344 

sessions.md +1 −1

Details

37 37 

38재개된 세션은 대화와 함께 저장된 상태를 복원합니다:38재개된 세션은 대화와 함께 저장된 상태를 복원합니다:

39 39 

40* 대화 기록: 도구 호출 및 결과를 포함한 전체 기록입니다. 이전 프로세스가 종료될 때(예: 충돌) 여전히 실행 중이던 도구는 재개할 때 완료되거나 다시 실행되지 않습니다. Claude는 해당 출력 없이 계속됩니다.40* 대화 기록: 도구 호출 및 결과를 포함한 전체 기록입니다. 이전 프로세스가 종료될 때(예: 충돌) 여전히 실행 중이던 도구는 재개할 때 완료되거나 다시 실행되지 않습니다. Claude는 호출이 결과가 기록되기 전에 중단된 것으로 표시되고 다시 실행하기 전에 효과가 있었는지 확인하도록 지시받으며, [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/ko/env-vars#variables)이 설정되지 않은 경우입니다. v2.1.281 이전에는 Claude Code가 중단된 호출을 대화에서 삭제하거나 사용자가 중단한 것으로 Claude에게 표시했습니다.

41* 모델: 세션은 사용 중이던 모델에서 계속됩니다. 모델이 폐기되었거나 `availableModels`에서 허용되지 않을 때, 시작 시 `--model` 플래그 또는 `ANTHROPIC_MODEL` 계열 환경 변수가 모델을 선택할 때, 또는 [Amazon Bedrock, Google Cloud의 Agent Platform 및 Microsoft Foundry](/docs/ko/third-party-integrations)와 같이 공급자별 배포 ID를 사용하는 공급자에서는 모델이 복원되지 않습니다. [모델 구성](/docs/ko/model-config#setting-your-model)에서 해결 순서를 참조하세요.41* 모델: 세션은 사용 중이던 모델에서 계속됩니다. 모델이 폐기되었거나 `availableModels`에서 허용되지 않을 때, 시작 시 `--model` 플래그 또는 `ANTHROPIC_MODEL` 계열 환경 변수가 모델을 선택할 때, 또는 [Amazon Bedrock, Google Cloud의 Agent Platform 및 Microsoft Foundry](/docs/ko/third-party-integrations)와 같이 공급자별 배포 ID를 사용하는 공급자에서는 모델이 복원되지 않습니다. [모델 구성](/docs/ko/model-config#setting-your-model)에서 해결 순서를 참조하세요.

42* 에이전트: [`--agent`](/docs/ko/sub-agents#invoke-subagents-explicitly) 또는 `agent` 설정으로 시작된 세션은 해당 에이전트로 계속되며 도구 제한 및 모델을 유지합니다. 재개할 때 `--agent`를 전달하여 다른 에이전트를 선택합니다. 두 경우 모두 시스템 프롬프트는 [재개된 대화의 시스템 프롬프트 플래그](/docs/ko/cli-reference#system-prompt-flags-in-resumed-conversations)를 참조하세요. Claude Code는 두 위치에서 에이전트를 찾습니다: 세션의 원본 디렉토리(해당 워크스페이스를 [신뢰](/docs/ko/permissions#project-allow-rules-and-workspace-trust)한 경우) 및 재개하는 디렉토리이므로 프로젝트 범위 에이전트는 다른 디렉토리에서 재개할 때도 로드됩니다. Claude Code가 두 위치 모두에서 에이전트를 찾지 못하면 세션은 기본 도구로 재개되고 [에이전트 이름을 지정하는 경고](/docs/ko/errors#session-agent-no-longer-available)를 표시합니다.42* 에이전트: [`--agent`](/docs/ko/sub-agents#invoke-subagents-explicitly) 또는 `agent` 설정으로 시작된 세션은 해당 에이전트로 계속되며 도구 제한 및 모델을 유지합니다. 재개할 때 `--agent`를 전달하여 다른 에이전트를 선택합니다. 두 경우 모두 시스템 프롬프트는 [재개된 대화의 시스템 프롬프트 플래그](/docs/ko/cli-reference#system-prompt-flags-in-resumed-conversations)를 참조하세요. Claude Code는 두 위치에서 에이전트를 찾습니다: 세션의 원본 디렉토리(해당 워크스페이스를 [신뢰](/docs/ko/permissions#project-allow-rules-and-workspace-trust)한 경우) 및 재개하는 디렉토리이므로 프로젝트 범위 에이전트는 다른 디렉토리에서 재개할 때도 로드됩니다. Claude Code가 두 위치 모두에서 에이전트를 찾지 못하면 세션은 기본 도구로 재개되고 [에이전트 이름을 지정하는 경고](/docs/ko/errors#session-agent-no-longer-available)를 표시합니다.

43* 권한 모드: 터미널에서 `claude --continue`, `claude --resume <session-id>` 또는 이름이 한 세션과 일치할 때 `-p` 없이 `claude --resume <name>`으로 재개하면 Claude Code는 세션이 있던 권한 모드를 복원합니다. 단, [재개 시 권한 모드](#permission-mode-on-resume)의 경우는 제외되며, 이는 세션 선택기, `/resume` 및 `claude -p`로 재개하는 경우도 포함합니다. `--permission-mode` 또는 `--dangerously-skip-permissions`를 전달하여 복원된 모드를 재정의합니다.43* 권한 모드: 터미널에서 `claude --continue`, `claude --resume <session-id>` 또는 이름이 한 세션과 일치할 때 `-p` 없이 `claude --resume <name>`으로 재개하면 Claude Code는 세션이 있던 권한 모드를 복원합니다. 단, [재개 시 권한 모드](#permission-mode-on-resume)의 경우는 제외되며, 이는 세션 선택기, `/resume` 및 `claude -p`로 재개하는 경우도 포함합니다. `--permission-mode` 또는 `--dangerously-skip-permissions`를 전달하여 복원된 모드를 재정의합니다.

settings.md +5 −1

Details

452 팀과 설정 공유452 팀과 설정 공유

453</h3>453</h3>

454 454 

455`.claude/settings.json`을 커밋하여 저장소를 클론하는 모든 사람이 동일한 권한, 훅, 원격 측정, 플러그인을 받도록 합니다. 각 팀원은 여전히 자신의 `.claude/settings.local.json`에서 이를 재정의할 수 있으므로 개인 예외는 커밋할 필요가 없습니다. 완전한 팀 파일은 [팀의 공유 설정](/docs/ko/settings-example#a-teams-shared-settings)을 참조합니다.455`.claude/settings.json`을 커밋하여 저장소를 클론하는 모든 사람이 동일한 권한, 훅, 플러그인을 받도록 합니다. 각 팀원은 여전히 자신의 `.claude/settings.local.json`에서 이를 재정의할 수 있으므로 개인 예외는 커밋할 필요가 없습니다. 완전한 팀 파일은 [팀의 공유 설정](/docs/ko/settings-example#a-teams-shared-settings)을 참조합니다.

456 456 

457커밋하는 일부 항목은 각 팀원이 [폴더를 신뢰](/docs/ko/permissions#project-allow-rules-and-workspace-trust)할 때까지 기다리며, 몇 가지 키는 저장소 파일에서 적용되지 않습니다. [적용되지 않는 설정 문제 해결](#common-cases)은 둘 다 다룹니다.457커밋하는 일부 항목은 각 팀원이 [폴더를 신뢰](/docs/ko/permissions#project-allow-rules-and-workspace-trust)할 때까지 기다리며, 몇 가지 키는 저장소 파일에서 적용되지 않습니다. [적용되지 않는 설정 문제 해결](#common-cases)은 둘 다 다룹니다.

458 458 


743* **더 높은 수준이 이를 설정합니다.** 다른 설정 파일, `--settings` 플래그, 또는 관리되는 소스가 키를 위에서 설정합니다. [스택](#settings-precedence)은 어느 것인지 나타냅니다. 플래그 또는 환경 변수도 키별로 결정되는 키를 자체적으로 재정의할 수 있습니다. [설정 참조](/docs/ko/settings-reference)의 키 항목은 Claude Code가 어느 것을 사용하는지 나타내며, [`env` 항목](/docs/ko/settings-reference#env)은 관리되는 `env` 값 대 셸 내보내기를 다룹니다.743* **더 높은 수준이 이를 설정합니다.** 다른 설정 파일, `--settings` 플래그, 또는 관리되는 소스가 키를 위에서 설정합니다. [스택](#settings-precedence)은 어느 것인지 나타냅니다. 플래그 또는 환경 변수도 키별로 결정되는 키를 자체적으로 재정의할 수 있습니다. [설정 참조](/docs/ko/settings-reference)의 키 항목은 Claude Code가 어느 것을 사용하는지 나타내며, [`env` 항목](/docs/ko/settings-reference#env)은 관리되는 `env` 값 대 셸 내보내기를 다룹니다.

744* **보안 키가 엄격한 값을 유지합니다.** 몇 가지 키의 경우 Claude Code는 모든 파일의 제한적인 값을 준수하므로, 프로젝트 `true`는 [`disableClaudeAiConnectors`](/docs/ko/settings-reference#disableclaudeaiconnectors)에 대해 켜진 상태로 유지됩니다. [관리되는 설정 우선순위의 예외](#exceptions-to-managed-settings-precedence)를 참조하세요.744* **보안 키가 엄격한 값을 유지합니다.** 몇 가지 키의 경우 Claude Code는 모든 파일의 제한적인 값을 준수하므로, 프로젝트 `true`는 [`disableClaudeAiConnectors`](/docs/ko/settings-reference#disableclaudeaiconnectors)에 대해 켜진 상태로 유지됩니다. [관리되는 설정 우선순위의 예외](#exceptions-to-managed-settings-precedence)를 참조하세요.

745* **파일이 해당 값을 설정할 수 없습니다.** [`permissions.defaultMode`](/docs/ko/settings-reference#permissions-defaultmode) 값 `auto`와 `bypassPermissions`은 프로젝트 또는 로컬 설정에서 적용되지 않습니다. 대신 사용자 또는 관리되는 설정에서 설정하거나, 한 세션 동안 `--permission-mode`를 전달합니다. v2.1.257 이전에는 `bypassPermissions`이 모든 파일에서 적용되었습니다.745* **파일이 해당 값을 설정할 수 없습니다.** [`permissions.defaultMode`](/docs/ko/settings-reference#permissions-defaultmode) 값 `auto`와 `bypassPermissions`은 프로젝트 또는 로컬 설정에서 적용되지 않습니다. 대신 사용자 또는 관리되는 설정에서 설정하거나, 한 세션 동안 `--permission-mode`를 전달합니다. v2.1.257 이전에는 `bypassPermissions`이 모든 파일에서 적용되었습니다.

746 

747 설정 파일 내의 [`env`](/docs/ko/settings-reference#env) 블록의 원격 분석 내보내기 변수도 프로젝트 또는 로컬 설정에서 적용되지 않습니다. 몇 가지 끄기 값은 제외합니다. [Claude Code가 `env`에서 무시하는 변수](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)는 변수와 해당 값을 나열합니다.

746* **파일이 손상되었습니다.** 잘못된 JSON 또는 거부된 값은 Claude Code가 파일 또는 항목을 건너뜁니다. [손상된 설정 파일 수정](#fix-a-broken-settings-file)을 참조하세요.748* **파일이 손상되었습니다.** 잘못된 JSON 또는 거부된 값은 Claude Code가 파일 또는 항목을 건너뜁니다. [손상된 설정 파일 수정](#fix-a-broken-settings-file)을 참조하세요.

747 749 

748<h4 id="a-change-you-made-in-claude-code-is-lost-in-new-sessions">750<h4 id="a-change-you-made-in-claude-code-is-lost-in-new-sessions">


766두 가지가 `.claude/settings.json`의 키가 이를 복제하는 모든 사람에게 적용되는 것을 방지합니다.768두 가지가 `.claude/settings.json`의 키가 이를 복제하는 모든 사람에게 적용되는 것을 방지합니다.

767 769 

768* **Claude Code는 저장소 파일의 키를 무시합니다.** [설정 인덱스](/docs/ko/settings-reference#settings-index)의 범위 열에서 `User, local, or managed`, `User or managed`, `Managed`, 또는 `Global config`를 찾습니다. 이러한 키는 공유 파일에서 적용되지 않습니다. 저장소 파일은 여전히 키를 끌 수 있습니다. `Global config` 키는 `~/.claude.json`에서만 적용됩니다.770* **Claude Code는 저장소 파일의 키를 무시합니다.** [설정 인덱스](/docs/ko/settings-reference#settings-index)의 범위 열에서 `User, local, or managed`, `User or managed`, `Managed`, 또는 `Global config`를 찾습니다. 이러한 키는 공유 파일에서 적용되지 않습니다. 저장소 파일은 여전히 키를 끌 수 있습니다. `Global config` 키는 `~/.claude.json`에서만 적용됩니다.

771 

772 `env` 키 내에서, 원격 분석 내보내기 변수는 공유 파일에서 적용되지 않습니다. 몇 가지 끄기 값은 제외합니다. [Claude Code가 `env`에서 무시하는 변수](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)를 참조하세요.

769* **키가 신뢰를 기다립니다.** `permissions.allow` 규칙, `permissions.additionalDirectories`, `extraKnownMarketplaces`, 및 대부분의 [`env`](/docs/ko/settings-reference#env) 값은 각 팀원이 [폴더를 신뢰](/docs/ko/permissions#project-allow-rules-and-workspace-trust)한 후에만 적용됩니다. 그때까지 그들은 여전히 프롬프트를 보고 파일이 선언하는 마켓플레이스에서 플러그인을 얻지 못합니다. `deny`와 `ask` 규칙은 즉시 적용됩니다.773* **키가 신뢰를 기다립니다.** `permissions.allow` 규칙, `permissions.additionalDirectories`, `extraKnownMarketplaces`, 및 대부분의 [`env`](/docs/ko/settings-reference#env) 값은 각 팀원이 [폴더를 신뢰](/docs/ko/permissions#project-allow-rules-and-workspace-trust)한 후에만 적용됩니다. 그때까지 그들은 여전히 프롬프트를 보고 파일이 선언하는 마켓플레이스에서 플러그인을 얻지 못합니다. `deny`와 `ask` 규칙은 즉시 적용됩니다.

770 774 

771<h4 id="permission-rules-combine-differently-than-you-expected">775<h4 id="permission-rules-combine-differently-than-you-expected">

Details

98 팀의 공유 설정98 팀의 공유 설정

99</h2>99</h2>

100 100 

101저장소에 커밋된 팀의 공유 설정으로, 이를 복제하는 모든 사람이 동일한 권한, 훅, 원격 측정 및 플러그인 마켓플레이스를 얻습니다. 저장소의 최상위에 `.claude/settings.json`에 이와 같은 파일을 저장하세요. 커밋하기 전에 알아야 할 사항:101저장소에 커밋된 팀의 공유 설정으로, 이를 복제하는 모든 사람이 동일한 권한, 훅, 플러그인 마켓플레이스를 얻습니다. 저장소의 최상위에 `.claude/settings.json`에 이와 같은 파일을 저장하세요. 커밋하기 전에 알아야 할 사항:

102 102 

103* **클라우드 세션도 이를 읽습니다.** [클라우드 세션](/docs/ko/settings#settings-in-cloud-sessions)은 저장소의 복제본에서 시작되므로 커밋된 파일이 거기에도 적용됩니다.103* **클라우드 세션도 이를 읽습니다.** [클라우드 세션](/docs/ko/settings#settings-in-cloud-sessions)은 저장소의 복제본에서 시작되므로 커밋된 파일이 거기에도 적용됩니다.

104* **원격 측정은 관리형 또는 개인 설정에 포함됩니다.** Claude Code는 저장소의 설정 파일에서 [OpenTelemetry 내보내기 변수](/docs/ko/settings-reference#variables-claude-code-ignores-in-env)를 무시하며, 원격 측정을 끄는 일부 값은 제외합니다. 조직의 [관리형 설정](/docs/ko/monitoring-usage#administrator-configuration)에서 또는 각 사람의 `~/.claude/settings.json`에서 설정하세요.

104* **허용 규칙은 신뢰를 기다립니다.** 허용 규칙 및 `extraKnownMarketplaces` 항목은 각 사람이 [이 폴더 자체를 신뢰](/docs/ko/permissions#project-allow-rules-and-workspace-trust)한 후에 적용되며, 상위 폴더만이 아닙니다. 거부 및 요청 규칙은 신뢰 여부와 관계없이 모든 세션에 적용됩니다.105* **허용 규칙은 신뢰를 기다립니다.** 허용 규칙 및 `extraKnownMarketplaces` 항목은 각 사람이 [이 폴더 자체를 신뢰](/docs/ko/permissions#project-allow-rules-and-workspace-trust)한 후에 적용되며, 상위 폴더만이 아닙니다. 거부 및 요청 규칙은 신뢰 여부와 관계없이 모든 세션에 적용됩니다.

105* **훅은 저장소의 스크립트입니다.** 이 파일의 훅은 `.claude/hooks/block-rm.sh`를 실행합니다. [훅이 해결되는 방식](/docs/ko/hooks#how-a-hook-resolves)은 이를 작성하는 과정을 설명합니다.106* **훅은 저장소의 스크립트입니다.** 이 파일의 훅은 `.claude/hooks/block-rm.sh`를 실행합니다. [훅이 해결되는 방식](/docs/ko/hooks#how-a-hook-resolves)은 이를 작성하는 과정을 설명합니다.

106* **규칙은 작성된 대로 명령 및 경로와 일치합니다.** `Bash(git push *)`는 [`git -C . push`](/docs/ko/permissions#bash-rule-limits)와 일치하지 않습니다. `Read(./.env)`는 그 자체로 파일 도구 및 `cat .env`와 같이 파일을 이름으로 지정하는 명령을 중지하지만, [`grep -r`이 디렉토리에서 실행](/docs/ko/permissions#read-and-edit)되는 것은 중지하지 않습니다. 이 파일의 `sandbox` 블록은 sandbox가 [모든 샌드박스 명령이 읽을 수 없는 항목에 `Read` 거부 경로를 추가](/docs/ko/settings-reference#sandbox-filesystem-denyread)하기 때문에 이 격차를 메웁니다.107* **규칙은 작성된 대로 명령 및 경로와 일치합니다.** `Bash(git push *)`는 [`git -C . push`](/docs/ko/permissions#bash-rule-limits)와 일치하지 않습니다. `Read(./.env)`는 그 자체로 파일 도구 및 `cat .env`와 같이 파일을 이름으로 지정하는 명령을 중지하지만, [`grep -r`이 디렉토리에서 실행](/docs/ko/permissions#read-and-edit)되는 것은 중지하지 않습니다. 이 파일의 `sandbox` 블록은 sandbox가 [모든 샌드박스 명령이 읽을 수 없는 항목에 `Read` 거부 경로를 추가](/docs/ko/settings-reference#sandbox-filesystem-denyread)하기 때문에 이 격차를 메웁니다.


124 "Read(./secrets/**)"125 "Read(./secrets/**)"

125 ]126 ]

126 },127 },

127 "env": {

128 "CLAUDE_CODE_ENABLE_TELEMETRY": "1",

129 "OTEL_METRICS_EXPORTER": "otlp",

130 "OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",

131 "OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317"

132 },

133 "hooks": {128 "hooks": {

134 "PreToolUse": [129 "PreToolUse": [

135 {130 {


194 "Read(./secrets/**)"189 "Read(./secrets/**)"

195 ]190 ]

196 },191 },

197 // OpenTelemetry 메트릭을 팀의 수집기로 gRPC를 통해 전송합니다. 엔드포인트를 수집기의 URL로 바꾸세요

198 "env": {

199 "CLAUDE_CODE_ENABLE_TELEMETRY": "1",

200 "OTEL_METRICS_EXPORTER": "otlp",

201 "OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",

202 "OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317"

203 },

204 // 모든 Bash 명령 전에 저장소의 스크립트를 실행하여 이를 차단할 수 있습니다192 // 모든 Bash 명령 전에 저장소의 스크립트를 실행하여 이를 차단할 수 있습니다

205 "hooks": {193 "hooks": {

206 "PreToolUse": [194 "PreToolUse": [

statusline.md +1 −1

Details

1141 1141 

1142재정의하려는 각 행에 대해 stdout에 한 줄의 JSON을 작성합니다: `{"id": "<task id>", "content": "<row body>"}`. `content` 문자열은 ANSI 색상 및 OSC 8 하이퍼링크를 포함하여 그대로 렌더링됩니다. 작업의 `id`를 생략하여 해당 행의 기본 렌더링을 유지합니다. 빈 `content` 문자열을 내보내 숨깁니다.1142재정의하려는 각 행에 대해 stdout에 한 줄의 JSON을 작성합니다: `{"id": "<task id>", "content": "<row body>"}`. `content` 문자열은 ANSI 색상 및 OSC 8 하이퍼링크를 포함하여 그대로 렌더링됩니다. 작업의 `id`를 생략하여 해당 행의 기본 렌더링을 유지합니다. 빈 `content` 문자열을 내보내 숨깁니다.

1143 1143 

1144`statusLine`에 적용되는 동일한 신뢰, `disableAllHooks` 및 [`allowManagedHooksOnly`](/docs/ko/settings-reference#allowmanagedhooksonly) 게이트가 여기에 적용됩니다. 플러그인은 [`settings.json`](/docs/ko/plugins-reference#standard-plugin-layout)에서 기본 `subagentStatusLine`을 제공할 수 있지만, 훅과 달리 플러그인이 관리 설정 `enabledPlugins`에서 강제 활성화되어 있을 때도 플러그인 값은 `allowManagedHooksOnly` 아래에서 실행되지 않습니다.1144`statusLine`에 적용되는 동일한 신뢰, `disableAllHooks` 및 [`allowManagedHooksOnly`](/docs/ko/settings-reference#allowmanagedhooksonly) 게이트가 여기에 적용됩니다. 플러그인은 [`settings.json`](/docs/ko/plugins/manifest-reference#standard-layout)에서 기본 `subagentStatusLine`을 제공할 수 있지만, 훅과 달리 플러그인이 관리 설정 `enabledPlugins`에서 강제 활성화되어 있을 때도 플러그인 값은 `allowManagedHooksOnly` 아래에서 실행되지 않습니다.

1145 1145 

1146<h2 id="tips">1146<h2 id="tips">

1147 팁1147 팁

sub-agents.md +16 −14

Details

169범위에 따라 서브에이전트 파일을 다른 위치에 저장합니다. 여러 서브에이전트가 같은 이름을 공유할 때, Claude Code는 우선순위가 높은 위치의 서브에이전트를 사용합니다.169범위에 따라 서브에이전트 파일을 다른 위치에 저장합니다. 여러 서브에이전트가 같은 이름을 공유할 때, Claude Code는 우선순위가 높은 위치의 서브에이전트를 사용합니다.

170 170 

171| 위치 | 범위 | 우선순위 | 생성 방법 |171| 위치 | 범위 | 우선순위 | 생성 방법 |

172| :------------------- | :------------ | :----- | :--------------------------- |172| :------------------- | :------------ | :----- | :---------------------------------- |

173| 관리 설정 | 조직 전체 | 1 (최고) | [관리 설정](/docs/ko/settings)을 통해 배포 |173| 관리 설정 | 조직 전체 | 1 (최고) | [관리 설정](/docs/ko/settings)을 통해 배포 |

174| `--agents` CLI 플래그 | 현재 세션 | 2 | Claude Code 시작 시 JSON 전달 |174| `--agents` CLI 플래그 | 현재 세션 | 2 | Claude Code 시작 시 JSON 전달 |

175| `.claude/agents/` | 현재 프로젝트 | 3 | Claude에 요청하거나 파일을 수동으로 생성 |175| `.claude/agents/` | 현재 프로젝트 | 3 | Claude에 요청하거나 파일을 수동으로 생성 |

176| `~/.claude/agents/` | 모든 프로젝트 | 4 | Claude에 요청하거나 파일을 수동으로 생성 |176| `~/.claude/agents/` | 모든 프로젝트 | 4 | Claude에 요청하거나 파일을 수동으로 생성 |

177| 플러그인의 `agents/` 디렉토리 | 플러그인이 활성화된 위치 | 5 (최저) | [플러그인](/docs/ko/plugins)과 함께 설치 |177| 플러그인의 `agents/` 디렉토리 | 플러그인이 활성화된 위치 | 5 (최저) | [플러그인](/docs/ko/plugins/overview)과 함께 설치 |

178 178 

179**프로젝트 서브에이전트** (`.claude/agents/`)는 코드베이스에 특정한 서브에이전트에 이상적입니다. 버전 관리에 체크인하여 팀이 협력적으로 사용하고 개선할 수 있습니다.179**프로젝트 서브에이전트** (`.claude/agents/`)는 코드베이스에 특정한 서브에이전트에 이상적입니다. 버전 관리에 체크인하여 팀이 협력적으로 사용하고 개선할 수 있습니다.

180 180 

181프로젝트 서브에이전트는 현재 작업 디렉토리에서 위로 걸어가며 발견되므로, 거기서 저장소 루트까지의 모든 `.claude/agents/`가 스캔됩니다. v2.1.178부터, 이러한 중첩된 디렉토리 중 하나 이상이 같은 `name`을 정의할 때, Claude Code는 작업 디렉토리에 가장 가까운 정의를 사용합니다.181프로젝트 서브에이전트는 현재 작업 디렉토리에서 위로 걸어가며 발견되므로, 거기서 저장소 루트까지의 모든 `.claude/agents/`가 스캔됩니다. 이러한 중첩된 디렉토리 중 하나 이상이 같은 `name`을 정의할 때, Claude Code는 작업 디렉토리에 가장 가까운 정의를 사용합니다.

182 182 

183`--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)을 사용하세요.183`--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)을 사용하세요.

184 184 

185**사용자 서브에이전트** (`~/.claude/agents/`)는 모든 프로젝트에서 사용 가능한 개인 서브에이전트입니다.185**사용자 서브에이전트** (`~/.claude/agents/`)는 모든 프로젝트에서 사용 가능한 개인 서브에이전트입니다.

186 186 


238 238 

239**관리 서브에이전트**는 조직 관리자가 배포합니다. [관리 설정 디렉토리](/docs/ko/managed-settings#delivery-mechanisms) 내의 `.claude/agents/`에 마크다운 파일을 배치하고, 프로젝트 및 사용자 서브에이전트와 동일한 프론트매터 형식을 사용합니다. 관리 정의는 같은 이름의 프로젝트 및 사용자 서브에이전트보다 우선합니다.239**관리 서브에이전트**는 조직 관리자가 배포합니다. [관리 설정 디렉토리](/docs/ko/managed-settings#delivery-mechanisms) 내의 `.claude/agents/`에 마크다운 파일을 배치하고, 프로젝트 및 사용자 서브에이전트와 동일한 프론트매터 형식을 사용합니다. 관리 정의는 같은 이름의 프로젝트 및 사용자 서브에이전트보다 우선합니다.

240 240 

241**플러그인 서브에이전트**는 설치한 [플러그인](/docs/ko/plugins)에서 나옵니다. 사용자 정의 서브에이전트와 함께 자동으로 로드되며 범위가 지정된 이름 아래의 @-멘션 자동완성에 나타납니다. 플러그인 서브에이전트 생성에 대한 자세한 내용은 [플러그인 구성 요소 참조](/docs/ko/plugins-reference#agents)를 참조하세요.241**플러그인 서브에이전트**는 설치한 [플러그인](/docs/ko/plugins/overview)에서 나옵니다. 사용자 정의 서브에이전트와 함께 자동으로 로드되며 범위가 지정된 이름 아래의 @-멘션 자동완성에 나타납니다. 플러그인 서브에이전트 생성에 대한 자세한 내용은 [플러그인 구성 요소 참조](/docs/ko/plugins/components#agents)를 참조하세요.

242 242 

243<Note>243<Note>

244 보안상의 이유로, 플러그인 서브에이전트는 `hooks`, `mcpServers`, 또는 `permissionMode` 프론트매터 필드를 지원하지 않습니다. 이러한 필드는 플러그인에서 에이전트를 로드할 때 무시됩니다. 필요한 경우 에이전트 파일을 `.claude/agents/` 또는 `~/.claude/agents/`로 복사하세요. `settings.json` 또는 `settings.local.json`의 [`permissions.allow`](/docs/ko/settings-reference#permissions-allow)에 규칙을 추가할 수도 있지만, 이러한 규칙은 전체 세션에 적용되며 플러그인 서브에이전트에만 적용되지 않습니다.244 보안상의 이유로, 플러그인 서브에이전트는 `hooks`, `mcpServers`, 또는 `permissionMode` 프론트매터 필드를 지원하지 않습니다. 이러한 필드는 플러그인에서 에이전트를 로드할 때 무시됩니다. 필요한 경우 에이전트 파일을 `.claude/agents/` 또는 `~/.claude/agents/`로 복사하세요. `settings.json` 또는 `settings.local.json`의 [`permissions.allow`](/docs/ko/settings-reference#permissions-allow)에 규칙을 추가할 수도 있지만, 이러한 규칙은 전체 세션에 적용되며 플러그인 서브에이전트에만 적용되지 않습니다.


305 305 

306| 필드 | 필수 | 설명 |306| 필드 | 필수 | 설명 |

307| :---------------- | :-- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |307| :---------------- | :-- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

308| `name` | 예 | `code-reviewer` 또는 `reviewer-v2`와 같은 고유 식별자. [Hooks](/docs/ko/hooks#subagentstart)는 이 값을 `agent_type`으로 받습니다. 파일 이름이 일치할 필요는 없습니다. 이름은 `:`를 포함할 수 없습니다. `:`는 `my-plugin:reviewer`와 같은 [플러그인 범위 식별자](/docs/ko/plugins)에 예약되어 있습니다. Claude Code는 이름을 포함하는 파일을 로드하지 않고 디버그 로그에 오류를 기록합니다. v2.1.218 이전에는 이러한 이름이 허용되었습니다 |308| `name` | 예 | `code-reviewer` 또는 `reviewer-v2`와 같은 고유 식별자. [Hooks](/docs/ko/hooks#subagentstart)는 이 값을 `agent_type`으로 받습니다. 파일 이름이 일치할 필요는 없습니다. 이름은 `:`를 포함할 수 없습니다. `:`는 `my-plugin:reviewer`와 같은 [플러그인 범위 식별자](/docs/ko/plugins/overview)에 예약되어 있습니다. Claude Code는 이름을 포함하는 파일을 로드하지 않고 디버그 로그에 오류를 기록합니다. v2.1.218 이전에는 이러한 이름이 허용되었습니다 |

309| `description` | 예 | Claude가 이 서브에이전트에 위임해야 할 때 |309| `description` | 예 | Claude가 이 서브에이전트에 위임해야 할 때 |

310| `tools` | 아니오 | 서브에이전트가 사용할 수 있는 [도구](#available-tools). `Read, Grep, Bash`와 같은 쉼표로 구분된 문자열 또는 YAML 목록입니다. 생략하면 서브에이전트가 사용 가능한 모든 도구를 상속합니다. 목록의 항목이 도구로 확인되지 않으면, 서브에이전트는 일반적으로 항목을 이름 지정하는 오류로 [시작에 실패](/docs/ko/errors#agent-would-be-spawned-with-zero-tools)합니다. 스킬을 컨텍스트에 미리 로드하려면 여기에 `Skill`을 나열하는 대신 `skills` 필드를 사용하세요 |310| `tools` | 아니오 | 서브에이전트가 사용할 수 있는 [도구](#available-tools). `Read, Grep, Bash`와 같은 쉼표로 구분된 문자열 또는 YAML 목록입니다. 생략하면 서브에이전트가 사용 가능한 모든 도구를 상속합니다. 목록의 항목이 도구로 확인되지 않으면, 서브에이전트는 일반적으로 항목을 이름 지정하는 오류로 [시작에 실패](/docs/ko/errors#agent-would-be-spawned-with-zero-tools)합니다. 스킬을 컨텍스트에 미리 로드하려면 여기에 `Skill`을 나열하는 대신 `skills` 필드를 사용하세요 |

311| `disallowedTools` | 아니오 | 거부할 도구. 상속되거나 지정된 목록에서 제거됩니다. `tools`와 동일한 형식입니다. `Bash(git push *)`와 같은 지정자가 있는 항목은 여전히 [전체 도구를 제거합니다](#available-tools) |311| `disallowedTools` | 아니오 | 거부할 도구. 상속되거나 지정된 목록에서 제거됩니다. `tools`와 동일한 형식입니다. `Bash(git push *)`와 같은 지정자가 있는 항목은 여전히 [전체 도구를 제거합니다](#available-tools) |


349 349 

350디버그 로그를 보려면 `--debug`로 Claude Code를 실행하세요.350디버그 로그를 보려면 `--debug`로 Claude Code를 실행하세요.

351 351 

352[플러그인 서브에이전트](/docs/ko/plugins-reference#agents)의 프론트매터에 `name`이 없거나 파싱되지 않으면 여전히 파일 이름 아래에 로드됩니다.352[플러그인 서브에이전트](/docs/ko/plugins/components#agents)의 프론트매터에 `name`이 없거나 파싱되지 않으면 여전히 파일 이름 아래에 로드됩니다.

353 353 

354<h5 id="check-an-agents-directory-before-a-session">354<h5 id="check-an-agents-directory-before-a-session">

355 세션 전에 `agents` 디렉토리 확인355 세션 전에 `agents` 디렉토리 확인

356</h5>356</h5>

357 357 

358프론트매터가 파싱되지 않는 `agents` 디렉토리의 파일을 찾으려면, 예를 들어 `.claude/agents` 또는 `~/.claude/agents`에 대해 `claude plugin validate`를 실행하세요. Claude Code는 [이름을 지정한 디렉토리만](/docs/ko/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) 확인하고, 프론트매터가 파싱되지만 `name`이 없는 파일은 플래그하지 않습니다. Claude Code v2.1.233 이상이 필요합니다.358프론트매터가 파싱되지 않는 `agents` 디렉토리의 파일을 찾으려면, 예를 들어 `.claude/agents` 또는 `~/.claude/agents`에 대해 `claude plugin validate`를 실행하세요. Claude Code는 [이름을 지정한 디렉토리만](/docs/ko/plugins/cli-reference#validate-a-directory) 확인하고, 프론트매터가 파싱되지만 `name`이 없는 파일은 플래그하지 않습니다. Claude Code v2.1.233 이상이 필요합니다.

359 359 

360<h3 id="choose-a-model">360<h3 id="choose-a-model">

361 모델 선택361 모델 선택


573* 이미 구성한 서버를 참조하는 이름573* 이미 구성한 서버를 참조하는 이름

574* `~/.claude/agents/`의 에이전트 파일, `--agents` 또는 SDK `agents` 옵션으로 전달하는 파일, 또는 관리 설정이 제공하는 파일의 인라인 서버574* `~/.claude/agents/`의 에이전트 파일, `--agents` 또는 SDK `agents` 옵션으로 전달하는 파일, 또는 관리 설정이 제공하는 파일의 인라인 서버

575 575 

576v2.1.153부터, 주 세션에 적용되는 MCP 제한은 서브에이전트 프론트매터에 선언된 서버도 다룹니다:576주 세션에 적용되는 MCP 제한은 서브에이전트 프론트매터에 선언된 서버도 다룹니다:

577 577 

578* [`--strict-mcp-config`](/docs/ko/cli-reference) 및 [`--bare`](/docs/ko/cli-reference)578* [`--strict-mcp-config`](/docs/ko/cli-reference) 및 [`--bare`](/docs/ko/cli-reference)

579* [엔터프라이즈 관리 MCP 구성](/docs/ko/managed-mcp)579* [엔터프라이즈 관리 MCP 구성](/docs/ko/managed-mcp)


820| `SubagentStart` | 에이전트 유형 이름 | 서브에이전트가 실행을 시작할 때 |820| `SubagentStart` | 에이전트 유형 이름 | 서브에이전트가 실행을 시작할 때 |

821| `SubagentStop` | 에이전트 유형 이름 | 서브에이전트가 완료될 때 |821| `SubagentStop` | 에이전트 유형 이름 | 서브에이전트가 완료될 때 |

822 822 

823두 이벤트 모두 이름으로 특정 에이전트 유형을 대상으로 하는 매처를 지원합니다. 매처 값은 프로젝트 수준 및 사용자 수준 서브에이전트의 프론트매터 `name`이거나, [플러그인 서브에이전트](/docs/ko/plugins)의 `my-plugin:db-agent`와 같은 플러그인 범위 식별자입니다. 범위가 지정된 이름은 콜론을 포함하므로 [고정되지 않은 정규식](/docs/ko/hooks#matcher-patterns)으로 평가됩니다. `^my-plugin:db-agent$`와 같이 `^`와 `$`로 고정하여 해당 에이전트만 일치시킵니다.823두 이벤트 모두 이름으로 특정 에이전트 유형을 대상으로 하는 매처를 지원합니다. 매처 값은 프로젝트 수준 및 사용자 수준 서브에이전트의 프론트매터 `name`이거나, [플러그인 서브에이전트](/docs/ko/plugins/components#agents)의 `my-plugin:db-agent`와 같은 플러그인 범위 식별자입니다. 범위가 지정된 이름은 콜론을 포함하므로 [고정되지 않은 정규식](/docs/ko/hooks#matcher-patterns)으로 평가됩니다. `^my-plugin:db-agent$`와 같이 `^`와 `$`로 고정하여 해당 에이전트만 일치시킵니다.

824 824 

825이 예제는 `db-agent` 서브에이전트가 시작될 때만 설정 스크립트를 실행하고 모든 서브에이전트가 중지될 때 정리 스크립트를 실행합니다:825이 예제는 `db-agent` 서브에이전트가 시작될 때만 설정 스크립트를 실행하고 모든 서브에이전트가 중지될 때 정리 스크립트를 실행합니다:

826 826 


862 862 

863설명을 간결하게 유지합니다: Claude Code는 subagent의 결합된 설명이 [15,000토큰 제한](/docs/ko/errors#agent-descriptions-are-over-the-15000-token-limit)을 초과할 때 시작 경고를 표시하며, 여전히 모든 subagent를 로드합니다.863설명을 간결하게 유지합니다: Claude Code는 subagent의 결합된 설명이 [15,000토큰 제한](/docs/ko/errors#agent-descriptions-are-over-the-15000-token-limit)을 초과할 때 시작 경고를 표시하며, 여전히 모든 subagent를 로드합니다.

864 864 

865subagent가 [플러그인](/docs/ko/plugins/overview)에 포함되어 있으면 현실적인 프롬프트에서 Claude가 이를 얼마나 안정적으로 위임하는지 한 번에 하나씩 확인하는 대신 측정할 수 있습니다: [`claude plugin eval`](/docs/ko/plugin-evals)은 플러그인 포함 여부와 관계없이 각 프롬프트를 실행하고 결과를 점수 매깁니다.

866 

865<h3 id="invoke-subagents-explicitly">867<h3 id="invoke-subagents-explicitly">

866 Subagent를 명시적으로 호출868 Subagent를 명시적으로 호출

867</h3>869</h3>


887 889 

888전체 메시지는 여전히 Claude로 이동하며, Claude는 요청한 내용을 기반으로 subagent의 작업 프롬프트를 작성합니다. @-mention은 Claude가 호출하는 subagent를 제어하며, 받는 프롬프트는 제어하지 않습니다.890전체 메시지는 여전히 Claude로 이동하며, Claude는 요청한 내용을 기반으로 subagent의 작업 프롬프트를 작성합니다. @-mention은 Claude가 호출하는 subagent를 제어하며, 받는 프롬프트는 제어하지 않습니다.

889 891 

890활성화된 [플러그인](/docs/ko/plugins)에서 제공하는 Subagent는 typeahead에 `my-plugin:code-reviewer` 또는 플러그인이 [agents를 하위 폴더로 구성](#choose-the-subagent-scope)할 때 `my-plugin:review:security`와 같은 범위가 지정된 이름으로 나타납니다. 세션에서 현재 실행 중인 명명된 background subagent도 typeahead에 나타나며 이름 옆에 상태를 표시합니다.892활성화된 [플러그인](/docs/ko/plugins/overview)에서 제공하는 Subagent는 typeahead에 `my-plugin:code-reviewer` 또는 플러그인이 [agents를 하위 폴더로 구성](#choose-the-subagent-scope)할 때 `my-plugin:review:security`와 같은 범위가 지정된 이름으로 나타납니다. 세션에서 현재 실행 중인 명명된 background subagent도 typeahead에 나타나며 이름 옆에 상태를 표시합니다.

891 893 

892선택기를 사용하지 않고 수동으로 mention을 입력할 수도 있습니다: 로컬 subagent의 경우 `@agent-<name>`, 플러그인 subagent의 경우 범위가 지정된 이름 뒤에 `@agent-`를 입력합니다. 예를 들어 `@agent-my-plugin:code-reviewer`입니다. 이 형식을 입력하는 동안 typeahead는 에이전트가 아닌 파일 일치를 표시합니다. 에이전트 mention은 제출할 때 여전히 해결됩니다.894선택기를 사용하지 않고 수동으로 mention을 입력할 수도 있습니다: 로컬 subagent의 경우 `@agent-<name>`, 플러그인 subagent의 경우 범위가 지정된 이름 뒤에 `@agent-`를 입력합니다. 예를 들어 `@agent-my-plugin:code-reviewer`입니다. 이 형식을 입력하는 동안 typeahead는 에이전트가 아닌 파일 일치를 표시합니다. 에이전트 mention은 제출할 때 여전히 해결됩니다.

893 895 


932Subagent는 foreground 또는 background에서 실행할 수 있습니다:934Subagent는 foreground 또는 background에서 실행할 수 있습니다:

933 935 

934* **Foreground subagent**는 완료될 때까지 주 대화를 차단합니다. 권한 프롬프트는 발생하는 대로 사용자에게 전달됩니다.936* **Foreground subagent**는 완료될 때까지 주 대화를 차단합니다. 권한 프롬프트는 발생하는 대로 사용자에게 전달됩니다.

935* **Background subagent**는 계속 작업하는 동안 동시에 실행됩니다. Background subagent가 권한이 필요한 도구 호출에 도달하면 Claude Code는 프롬프트를 주 세션에 표시하고 요청하는 subagent의 이름을 지정합니다. 승인하여 subagent를 계속하거나 Esc를 눌러 subagent를 중지하지 않고 해당 도구 호출을 거부합니다. v2.1.186 이전에는 background subagent가 프롬프트를 표시했을 모든 도구 호출을 자동으로 거부했습니다.937* **Background subagent**는 계속 작업하는 동안 동시에 실행됩니다. Background subagent가 권한이 필요한 도구 호출에 도달하면 Claude Code는 프롬프트를 주 세션에 표시하고 요청하는 subagent의 이름을 지정합니다. 승인하여 subagent를 계속하거나 Esc를 눌러 subagent를 중지하지 않고 해당 도구 호출을 거부합니다.

936 938 

937Claude가 Agent 도구로 생성하는 각 subagent에 대해 Claude Code는 적용되는 다음 경우 중 첫 번째에서 foreground 또는 background를 선택합니다:939Claude가 Agent 도구로 생성하는 각 subagent에 대해 Claude Code는 적용되는 다음 경우 중 첫 번째에서 foreground 또는 background를 선택합니다:

938 940 


1175 1177 

1176직접 중단한 subagent (예: `/tasks`에서 `x` 또는 SDK `stop_task` 요청)는 자동으로 재개되지 않습니다. Claude가 메시지를 보내면 메시지는 거부되고 Claude는 에이전트가 취소되었음을 알립니다.1178직접 중단한 subagent (예: `/tasks`에서 `x` 또는 SDK `stop_task` 요청)는 자동으로 재개되지 않습니다. Claude가 메시지를 보내면 메시지는 거부되고 Claude는 에이전트가 취소되었음을 알립니다.

1177 1179 

1178[subagent 패널의 해당 행이 여전히 있는 동안](#run-subagents-in-foreground-or-background) 해당 트랜스크립트에 입력하여 직접 재개할 수 있습니다. 그 후 Claude의 메시지가 다시 자동으로 재개할 수 있습니다. Claude Code v2.1.191 이상이 필요합니다.1180[subagent 패널의 해당 행이 여전히 있는 동안](#run-subagents-in-foreground-or-background) 해당 트랜스크립트에 입력하여 직접 재개할 수 있습니다. 그 후 Claude의 메시지가 다시 자동으로 재개할 수 있습니다.

1179 1181 

1180재개는 동일한 ID 아래에서 에이전트의 새로운 실행을 시작하므로 이미 실패했거나 완료된 subagent는 작업 목록 및 Agent SDK의 작업 이벤트에서 다시 실행 중으로 표시됩니다. v2.1.205 이전에는 재개된 실행이 작동하는 동안 이전의 실패했거나 완료된 상태를 계속 표시했습니다.1182재개는 동일한 ID 아래에서 에이전트의 새로운 실행을 시작하므로 이미 실패했거나 완료된 subagent는 작업 목록 및 Agent SDK의 작업 이벤트에서 다시 실행 중으로 표시됩니다. v2.1.205 이전에는 재개된 실행이 작동하는 동안 이전의 실패했거나 완료된 상태를 계속 표시했습니다.

1181 1183 


1493 1495 

1494이제 subagent를 이해했으므로 다음 관련 기능을 탐색합니다:1496이제 subagent를 이해했으므로 다음 관련 기능을 탐색합니다:

1495 1497 

1496* [플러그인으로 subagent 배포](/docs/ko/plugins) - 팀 또는 프로젝트 간에 subagent 공유1498* [플러그인으로 subagent 배포](/docs/ko/plugins/components#agents) - 팀 또는 프로젝트 간에 subagent 공유

1497* [Claude Code를 프로그래밍 방식으로 실행](/docs/ko/headless) - CI/CD 및 자동화를 위한 Agent SDK1499* [Claude Code를 프로그래밍 방식으로 실행](/docs/ko/headless) - CI/CD 및 자동화를 위한 Agent SDK

1498* [MCP 서버 사용](/docs/ko/mcp) - Subagent에 외부 도구 및 데이터에 대한 액세스 제공1500* [MCP 서버 사용](/docs/ko/mcp) - Subagent에 외부 도구 및 데이터에 대한 액세스 제공

Details

156 사용자 정의 테마 만들기156 사용자 정의 테마 만들기

157</h3>157</h3>

158 158 

159기본 제공 사전 설정 외에도 `/theme`은 정의한 사용자 정의 테마와 설치된 [플러그인](/docs/ko/plugins-reference#themes)에서 제공한 테마를 나열합니다. 목록 끝에서 \*\*새 사용자 정의 테마…\*\*를 선택하여 대화형으로 만듭니다. 테마 이름을 지정한 다음 개별 색상 토큰을 선택하여 재정의합니다. 사용자 정의 테마가 강조 표시된 상태에서 `Ctrl+E`를 눌러 편집합니다.159기본 제공 사전 설정 외에도 `/theme`은 정의한 사용자 정의 테마와 설치된 [플러그인](/docs/ko/plugins/components#themes-and-output-styles)에서 제공한 테마를 나열합니다. 목록 끝에서 \*\*새 사용자 정의 테마…\*\*를 선택하여 대화형으로 만듭니다. 테마 이름을 지정한 다음 개별 색상 토큰을 선택하여 재정의합니다. 사용자 정의 테마가 강조 표시된 상태에서 `Ctrl+E`를 눌러 편집합니다.

160 160 

161각 사용자 정의 테마는 `~/.claude/themes/`의 JSON 파일입니다. `.json` 확장자를 제외한 파일 이름이 테마의 슬러그이며, 테마를 선택하면 `custom:<slug>`이 테마 기본 설정으로 저장됩니다. 파일에는 세 가지 선택적 필드가 있습니다.161각 사용자 정의 테마는 `~/.claude/themes/`의 JSON 파일입니다. `.json` 확장자를 제외한 파일 이름이 테마의 슬러그이며, 테마를 선택하면 `custom:<slug>`이 테마 기본 설정으로 저장됩니다. 파일에는 세 가지 선택적 필드가 있습니다.

162 162 

Details

179Claude Code는 명령이 실행되는 동안 명령의 출력을 작업 파일로 스트리밍합니다. 출력이 5GB를 초과하는 명령은 중단됩니다. 명령이 완료되면, Claude Code는 아래에 설명된 읽기 창에서 해당 파일의 출력을 다시 읽습니다. 출력이 Claude에 인라인으로 도달하는 양은 Claude Code가 결과를 실패로 처리하는지 여부에 따라 달라집니다:179Claude Code는 명령이 실행되는 동안 명령의 출력을 작업 파일로 스트리밍합니다. 출력이 5GB를 초과하는 명령은 중단됩니다. 명령이 완료되면, Claude Code는 아래에 설명된 읽기 창에서 해당 파일의 출력을 다시 읽습니다. 출력이 Claude에 인라인으로 도달하는 양은 Claude Code가 결과를 실패로 처리하는지 여부에 따라 달라집니다:

180 180 

181| 결과 | Claude가 받는 것 |181| 결과 | Claude가 받는 것 |

182| :- | :------------------------------------------------------------------------------------------------------------------------ |182| :- | :------------------------------------------------------------------------------------------------------------------------------ |

183| 유효 | 기본값으로 대략 30,000자까지 인라인입니다. 그 이상은 세션 디렉토리에 저장되고 64MiB를 초과하여 잘린 파일의 경로와 시작 부분의 짧은 미리보기이며, Claude는 나머지가 필요할 때 파일을 읽거나 검색합니다. |183| 유효 | 기본값으로 대략 30,000자까지 인라인입니다. 그 이상은 세션 디렉토리에 저장되고 64MiB를 초과하여 잘린 파일의 경로와 처음 최대 2,000자까지의 미리보기이며, Claude는 나머지가 필요할 때 파일을 읽거나 검색합니다. |

184| 실패 | 대략 10,000자까지 인라인입니다. 그 이상은 읽기 창에서 잘린 해당 크기의 머리-꼬리 발췌이며, 파일 경로는 없습니다. |184| 실패 | 대략 10,000자까지 인라인입니다. 그 이상은 읽기 창에서 잘린 해당 크기의 머리-꼬리 발췌이며, 파일 경로는 없습니다. |

185 185 

186종료 코드 1로 끝나는 명령은 Claude Code가 해당 명령에 대해 종료 코드 1을 양성 결과로 인식할 때만 Bash 도구에 대한 유효한 결과로 계산됩니다: `grep`, `rg`, `egrep`, `fgrep`, `find`, `diff`, `test` 및 `[`, 그리고 `git diff`와 `git grep`. 종료 코드 1이 양성 정보 결과인 경우에도 다른 모든 명령은 실패로 계산됩니다: `pgrep`과 `jq -e`의 일치 항목 없음, `cmp`의 파일 차이.186종료 코드 1로 끝나는 명령은 Claude Code가 해당 명령에 대해 종료 코드 1을 양성 결과로 인식할 때만 Bash 도구에 대한 유효한 결과로 계산됩니다: `grep`, `rg`, `egrep`, `fgrep`, `find`, `diff`, `test` 및 `[`, 그리고 `git diff`와 `git grep`. 종료 코드 1이 양성 정보 결과인 경우에도 다른 모든 명령은 실패로 계산됩니다: `pgrep`과 `jq -e`의 일치 항목 없음, `cmp`의 파일 차이.


221* `mcp`: 로컬 [MCP 서버](/docs/ko/mcp)221* `mcp`: 로컬 [MCP 서버](/docs/ko/mcp)

222* `lsp`: [언어 서버](#lsp-tool-behavior)222* `lsp`: [언어 서버](#lsp-tool-behavior)

223* `hooks`: [훅](/docs/ko/hooks) 명령223* `hooks`: [훅](/docs/ko/hooks) 명령

224* `plugin`: [플러그인](/docs/ko/plugins)이 실행하는 명령224* `plugin`: [플러그인](/docs/ko/plugins/overview)이 실행하는 명령

225* `helper`: Claude Code의 자체 도우미 명령, 예를 들어 `git`225* `helper`: Claude Code의 자체 도우미 명령, 예를 들어 `git`

226* `agent`: 자식 Claude Code 프로세스, 예를 들어 [에이전트 팀원](/docs/ko/agent-teams)226* `agent`: 자식 Claude Code 프로세스, 예를 들어 [에이전트 팀원](/docs/ko/agent-teams)

227 227 


344* 인터페이스의 구현 찾기344* 인터페이스의 구현 찾기

345* 호출 계층 추적345* 호출 계층 추적

346 346 

347Claude Code는 언어에 대한 [코드 인텔리전스 플러그인](/docs/ko/discover-plugins#code-intelligence)을 설치할 때까지 도구를 비활성 상태로 유지합니다. [클라우드 세션](/docs/ko/claude-code-on-the-web)에서 Claude Code는 플러그인 언어 서버를 시작하지 않으므로 LSP 도구는 그곳에서 비활성 상태로 유지됩니다. Claude Code는 플러그인에서 언어 서버의 구성을 가져오며, 사용자가 서버 바이너리를 직접 설치합니다.347Claude Code는 언어에 대한 [코드 인텔리전스 플러그인](/docs/ko/plugins/code-intelligence)을 설치할 때까지 도구를 비활성 상태로 유지합니다. [클라우드 세션](/docs/ko/claude-code-on-the-web)에서 Claude Code는 플러그인 언어 서버를 시작하지 않으므로 LSP 도구는 그곳에서 비활성 상태로 유지됩니다. Claude Code는 플러그인에서 언어 서버의 구성을 가져오며, 사용자가 서버 바이너리를 직접 설치합니다.

348 348 

349Claude Code는 언어 서버를 시작할 수 없는 파일에 대한 각 LSP 호출에 대해 오류 결과를 반환합니다.349Claude Code는 언어 서버를 시작할 수 없는 파일에 대한 각 LSP 호출에 대해 오류 결과를 반환합니다.

350 350 


376 376 

377이 도구는 Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry에서 사용할 수 없습니다. `DISABLE_TELEMETRY` 또는 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정된 경우에도 사용할 수 없습니다.377이 도구는 Amazon Bedrock, Google Cloud의 Agent Platform 또는 Microsoft Foundry에서 사용할 수 없습니다. `DISABLE_TELEMETRY` 또는 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`이 설정된 경우에도 사용할 수 없습니다.

378 378 

379플러그인은 Claude에게 시작을 요청하는 대신 플러그인이 활성화될 때 자동으로 시작되는 모니터를 선언할 수 있습니다. [플러그인 모니터](/docs/ko/plugins-reference#monitors)를 참조하세요.379플러그인은 Claude에게 시작을 요청하는 대신 플러그인이 활성화될 때 자동으로 시작되는 모니터를 선언할 수 있습니다. [플러그인 모니터](/docs/ko/plugins/components#monitors)를 참조하세요.

380 380 

381<h3 id="websocket-source">381<h3 id="websocket-source">

382 WebSocket 소스382 WebSocket 소스

vs-code.md +2 −2

Details

331 플러그인 관리331 플러그인 관리

332</h2>332</h2>

333 333 

334VS Code 확장 프로그램에는 [플러그인](/docs/ko/plugins)을 설치하고 관리하기 위한 그래픽 인터페이스가 포함되어 있습니다. 프롬프트 상자에 `/plugins`를 입력하여 **플러그인 관리** 인터페이스를 엽니다.334VS Code 확장 프로그램에는 [플러그인](/docs/ko/plugins/overview)을 설치하고 관리하기 위한 그래픽 인터페이스가 포함되어 있습니다. 프롬프트 상자에 `/plugins`를 입력하여 **플러그인 관리** 인터페이스를 엽니다.

335 335 

336<h3 id="install-plugins">336<h3 id="install-plugins">

337 플러그인 설치337 플러그인 설치


394 VS Code의 플러그인 관리는 내부적으로 동일한 CLI 명령을 사용합니다. 확장 프로그램에서 구성한 플러그인 및 마켓플레이스는 CLI에서도 사용 가능하며, 그 반대도 마찬가지입니다.394 VS Code의 플러그인 관리는 내부적으로 동일한 CLI 명령을 사용합니다. 확장 프로그램에서 구성한 플러그인 및 마켓플레이스는 CLI에서도 사용 가능하며, 그 반대도 마찬가지입니다.

395</Note>395</Note>

396 396 

397플러그인 시스템에 대한 자세한 내용은 [플러그인](/docs/ko/plugins) 및 [플러그인 마켓플레이스](/docs/ko/plugin-marketplaces)를 참조하십시오.397플러그인 시스템에 대한 자세한 내용은 [플러그인](/docs/ko/plugins/overview) 및 [플러그인 마켓플레이스](/docs/ko/plugins/overview)를 참조하십시오.

398 398 

399<h2 id="automate-browser-tasks-with-chrome">399<h2 id="automate-browser-tasks-with-chrome">

400 Chrome으로 브라우저 작업 자동화400 Chrome으로 브라우저 작업 자동화

Details

116 └── my-tool116 └── my-tool

117 ```117 ```

118 118 

119 <a className="digest-feature-link" href="/docs/ko/plugins-reference#file-locations-reference">플러그인 참조</a>119 <a className="digest-feature-link" href="/docs/ko/plugins/manifest-reference#standard-layout">플러그인 참조</a>

120</div>120</div>

121 121 

122<div className="digest-wins">122<div className="digest-wins">

Details

104 <div>네이티브 macOS 및 Linux 빌드는 <code>Glob</code> 및 <code>Grep</code> 도구를 Bash를 통해 사용 가능한 내장 <code>bfs</code> 및 <code>ugrep</code>으로 대체하여 별도의 도구 라운드 트립 없이 더 빠른 검색을 제공합니다</div>104 <div>네이티브 macOS 및 Linux 빌드는 <code>Glob</code> 및 <code>Grep</code> 도구를 Bash를 통해 사용 가능한 내장 <code>bfs</code> 및 <code>ugrep</code>으로 대체하여 별도의 도구 라운드 트립 없이 더 빠른 검색을 제공합니다</div>

105 <div><code>--from-pr</code>은 이제 github.com 외에도 GitLab 병합 요청, Bitbucket 풀 요청, GitHub Enterprise PR URL을 허용합니다</div>105 <div><code>--from-pr</code>은 이제 github.com 외에도 GitLab 병합 요청, Bitbucket 풀 요청, GitHub Enterprise PR URL을 허용합니다</div>

106 <div>자동 모드: <a href="/docs/ko/auto-mode-config"><code>autoMode.allow</code>, <code>soft\_deny</code>, 또는 <code>environment</code></a>에 <code>"\$defaults"</code>를 포함하여 기본 제공 목록을 대체하는 대신 커스텀 규칙을 추가합니다</div>106 <div>자동 모드: <a href="/docs/ko/auto-mode-config"><code>autoMode.allow</code>, <code>soft\_deny</code>, 또는 <code>environment</code></a>에 <code>"\$defaults"</code>를 포함하여 기본 제공 목록을 대체하는 대신 커스텀 규칙을 추가합니다</div>

107 <div>새로운 <a href="/docs/ko/plugin-dependencies#tag-plugin-releases-for-version-resolution"><code>claude plugin tag</code></a> 명령은 버전 검증을 통해 플러그인에 대한 릴리스 git 태그를 만듭니다</div>107 <div>새로운 <a href="/docs/ko/plugins/dependencies#tag-plugin-releases-for-version-resolution"><code>claude plugin tag</code></a> 명령은 버전 검증을 통해 플러그인에 대한 릴리스 git 태그를 만듭니다</div>

108 <div>Opus 4.7 세션은 이제 모델의 네이티브 1M 컨텍스트 윈도우에 대해 계산되어 부풀려진 <code>/context</code> 백분율과 조기 자동 압축을 수정합니다</div>108 <div>Opus 4.7 세션은 이제 모델의 네이티브 1M 컨텍스트 윈도우에 대해 계산되어 부풀려진 <code>/context</code> 백분율과 조기 자동 압축을 수정합니다</div>

109 <div><code>/resume</code>은 대규모 세션에서 최대 67% 더 빠르며 이제 다시 읽기 전에 오래되고 큰 세션을 요약할 것을 제안합니다</div>109 <div><code>/resume</code>은 대규모 세션에서 최대 67% 더 빠르며 이제 다시 읽기 전에 오래되고 큰 세션을 요약할 것을 제안합니다</div>

110 </div>110 </div>

Details

24 claude --plugin-url https://example.com/my-plugin.zip24 claude --plugin-url https://example.com/my-plugin.zip

25 ```25 ```

26 26 

27 <a className="digest-feature-link" href="/docs/ko/plugins">플러그인 가이드</a>27 <a className="digest-feature-link" href="/docs/ko/plugins/overview">플러그인 가이드</a>

28</div>28</div>

29 29 

30<div className="digest-feature">30<div className="digest-feature">

Details

59 > /plugin list --enabled59 > /plugin list --enabled

60 ```60 ```

61 61 

62 <a className="digest-feature-link" href="/docs/ko/plugins-reference#plugin-list">플러그인 명령</a>62 <a className="digest-feature-link" href="/docs/ko/plugins/cli-reference#plugin-list">플러그인 명령</a>

63</div>63</div>

64 64 

65<div className="digest-feature">65<div className="digest-feature">

Details

86 <div className="digest-wins-grid">86 <div className="digest-wins-grid">

87 <div>VS Code 확장이 <a href="/docs/ko/vs-code#extension-settings">포커스 보기</a>를 제공하며, 이는 도구 활동을 턴당 하나의 확장 가능한 행 뒤에 숨깁니다. 명령 메뉴에서 또는 <code>Ctrl+Alt+F</code> (Mac에서는 <code>Ctrl+Option+F</code>)로 전환할 수 있습니다.</div>87 <div>VS Code 확장이 <a href="/docs/ko/vs-code#extension-settings">포커스 보기</a>를 제공하며, 이는 도구 활동을 턴당 하나의 확장 가능한 행 뒤에 숨깁니다. 명령 메뉴에서 또는 <code>Ctrl+Alt+F</code> (Mac에서는 <code>Ctrl+Option+F</code>)로 전환할 수 있습니다.</div>

88 <div>샌드박스 자격 증명 파일은 Linux 및 WSL2에서 <a href="/docs/ko/sandboxing#mask-credential-files"><code>mode: "mask"</code></a>를 허용하므로, 샌드박스된 명령은 센티널 복사본을 읽고 샌드박스 프록시는 송신 시 실제 값을 대체합니다. 자격 증명 마스킹은 또한 <code>extract</code>, JWT 인식 <code>decode</code> 및 AWS SigV4 재서명 옵션을 제공합니다.</div>88 <div>샌드박스 자격 증명 파일은 Linux 및 WSL2에서 <a href="/docs/ko/sandboxing#mask-credential-files"><code>mode: "mask"</code></a>를 허용하므로, 샌드박스된 명령은 센티널 복사본을 읽고 샌드박스 프록시는 송신 시 실제 값을 대체합니다. 자격 증명 마스킹은 또한 <code>extract</code>, JWT 인식 <code>decode</code> 및 AWS SigV4 재서명 옵션을 제공합니다.</div>

89 <div>마켓플레이스는 새로운 <code>archive</code> 소스를 사용하여 플러그인을 <a href="/docs/ko/plugin-marketplaces#zip-archives">zip 아카이브</a>로 배포할 수 있으며, HTTPS를 통해 다운로드되고 선택적 SHA-256 핀을 사용하므로, git이나 npm 없이도 설치가 작동합니다.</div>89 <div>마켓플레이스는 새로운 <code>archive</code> 소스를 사용하여 플러그인을 <a href="/docs/ko/plugins/marketplace-reference#archive-plugin-source">zip 아카이브</a>로 배포할 수 있으며, HTTPS를 통해 다운로드되고 선택적 SHA-256 핀을 사용하므로, git이나 npm 없이도 설치가 작동합니다.</div>

90 <div><code>/review</code>는 이제 <a href="/docs/ko/code-review#review-a-diff-locally"><code>/code-review</code></a>의 별칭이며, 노력 수준 없이 <code>/code-review</code>를 사용하면 마지막으로 입력한 수준을 재사용합니다.</div>90 <div><code>/review</code>는 이제 <a href="/docs/ko/code-review#review-a-diff-locally"><code>/code-review</code></a>의 별칭이며, 노력 수준 없이 <code>/code-review</code>를 사용하면 마지막으로 입력한 수준을 재사용합니다.</div>

91 <div><a href="/docs/ko/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a>로 복사한 세션은 이제 원본 세션의 체크아웃 대신 자체 worktree에서 코드 변경을 수행합니다.</div>91 <div><a href="/docs/ko/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a>로 복사한 세션은 이제 원본 세션의 체크아웃 대신 자체 worktree에서 코드 변경을 수행합니다.</div>

92 <div><code>/plugin</code>에서 설치한 플러그인은 안전할 때 현재 세션에서 활성화됩니다. 설치 요약은 <code>Plugin is now active.</code>를 보고하거나 <code>/reload-plugins</code>를 실행하도록 지시합니다.</div>92 <div><a href="/docs/ko/plugins/install#install-a-plugin"><code>/plugin</code></a>에서 설치한 플러그인은 안전할 때 현재 세션에서 활성화됩니다. 설치 요약은 <code>Plugin is now active.</code>를 보고하거나 <code>/reload-plugins</code>를 실행하도록 지시합니다.</div>

93 <div><a href="/docs/ko/agent-view#how-file-edits-are-isolated">백그라운드 세션</a>이 worktree에서 코드를 변경한 경우, 이제 완료 전에 커밋하고 푸시하며, 작업에서 요구할 때만 초안 풀 요청을 열고, <code>CLAUDE.md</code>의 git 지시사항을 따릅니다.</div>93 <div><a href="/docs/ko/agent-view#how-file-edits-are-isolated">백그라운드 세션</a>이 worktree에서 코드를 변경한 경우, 이제 완료 전에 커밋하고 푸시하며, 작업에서 요구할 때만 초안 풀 요청을 열고, <code>CLAUDE.md</code>의 git 지시사항을 따릅니다.</div>

94 <div>세션당 200개 서브에이전트 제한이 제거되었으므로, 장기 실행 세션은 더 이상 새 서브에이전트를 거부하지 않습니다. <a href="/docs/ko/sub-agents#concurrent-subagent-limit">동시성</a> 및 깊이 제한은 여전히 적용됩니다.</div>94 <div>세션당 200개 서브에이전트 제한이 제거되었으므로, 장기 실행 세션은 더 이상 새 서브에이전트를 거부하지 않습니다. <a href="/docs/ko/sub-agents#concurrent-subagent-limit">동시성</a> 및 깊이 제한은 여전히 적용됩니다.</div>

95 <div>저장소의 체크인된 설정은 더 이상 <a href="/docs/ko/remote-control#enable-remote-control-for-all-sessions">원격 제어 자동 연결</a>을 켤 수 없습니다. 대신 사용자 또는 관리 설정에서 <code>remoteControlAtStartup</code>을 설정하고, 프로젝트 및 로컬 설정은 이를 끌 수만 있습니다.</div>95 <div>저장소의 체크인된 설정은 더 이상 <a href="/docs/ko/remote-control#enable-remote-control-for-all-sessions">원격 제어 자동 연결</a>을 켤 수 없습니다. 대신 사용자 또는 관리 설정에서 <code>remoteControlAtStartup</code>을 설정하고, 프로젝트 및 로컬 설정은 이를 끌 수만 있습니다.</div>

Details

72 <div className="digest-wins-grid">72 <div className="digest-wins-grid">

73 <div>프롬프트에서 <code>@</code>를 입력하여 이름으로 <a href="/docs/ko/cross-session-messaging#message-another-session">다른 Claude 세션을 언급</a>하면 Claude가 <code>SendMessage</code>로 직접 메시지를 보냅니다. 정확히 하나의 라이브 세션과 일치하는 베어 이름은 이제 확인 단계 없이 전달됩니다</div>73 <div>프롬프트에서 <code>@</code>를 입력하여 이름으로 <a href="/docs/ko/cross-session-messaging#message-another-session">다른 Claude 세션을 언급</a>하면 Claude가 <code>SendMessage</code>로 직접 메시지를 보냅니다. 정확히 하나의 라이브 세션과 일치하는 베어 이름은 이제 확인 단계 없이 전달됩니다</div>

74 <div>한 머신의 대화형 세션은 <a href="/docs/ko/cross-session-messaging#see-which-sessions-claude-can-reach">고유한 이름</a>을 유지합니다. 다른 라이브 세션이 이미 사용 중인 이름으로 세션을 시작하거나 이름을 바꾸면 Claude Code는 <code>name-word-word</code> 변형을 제공하고 알려줍니다</div>74 <div>한 머신의 대화형 세션은 <a href="/docs/ko/cross-session-messaging#see-which-sessions-claude-can-reach">고유한 이름</a>을 유지합니다. 다른 라이브 세션이 이미 사용 중인 이름으로 세션을 시작하거나 이름을 바꾸면 Claude Code는 <code>name-word-word</code> 변형을 제공하고 알려줍니다</div>

75 <div>플러그인 마켓플레이스는 <a href="/docs/ko/plugin-marketplaces#command-sources"><code>command</code> 소스</a>를 허용합니다. 로컬 명령은 플러그인 디렉토리를 인쇄하며, Claude Code는 각 세션마다 다시 확인하고 재시작 없이 적용합니다</div>75 <div>플러그인 마켓플레이스는 <a href="/docs/ko/plugins/marketplace-reference#command-plugin-source"><code>command</code> 소스</a>를 허용합니다. 로컬 명령은 플러그인 디렉토리를 인쇄하며, Claude Code는 각 세션마다 다시 확인하고 재시작 없이 적용합니다</div>

76 <div>Linux 및 WSL에서 <a href="/docs/ko/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a>을 <code>4G</code>와 같은 크기로 설정하여 Bash 및 PowerShell 도구 명령이 사용할 수 있는 메모리를 제한합니다</div>76 <div>Linux 및 WSL에서 <a href="/docs/ko/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a>을 <code>4G</code>와 같은 크기로 설정하여 Bash 및 PowerShell 도구 명령이 사용할 수 있는 메모리를 제한합니다</div>

77 <div><code>TaskCreate</code>, <code>TaskUpdate</code>, <code>TodoWrite</code>와 같은 작업 추적 도구는 <a href="/docs/ko/tools-reference#task-tool-availability">Opus 4.8, Sonnet 5, Fable 5, Mythos 5 및 이후 모델에서 더 이상 사용할 수 없습니다</a>. <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code>을 설정하여 다시 활성화합니다</div>77 <div><code>TaskCreate</code>, <code>TaskUpdate</code>, <code>TodoWrite</code>와 같은 작업 추적 도구는 <a href="/docs/ko/tools-reference#task-tool-availability">Opus 4.8, Sonnet 5, Fable 5, Mythos 5 및 이후 모델에서 더 이상 사용할 수 없습니다</a>. <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code>을 설정하여 다시 활성화합니다</div>

78 <div>높음, 매우 높음, 최대 노력에서 <a href="/docs/ko/code-review#review-a-diff-locally"><code>/code-review</code></a>는 이제 다른 수준처럼 백그라운드 에이전트에서 실행됩니다</div>78 <div>높음, 매우 높음, 최대 노력에서 <a href="/docs/ko/code-review#review-a-diff-locally"><code>/code-review</code></a>는 이제 다른 수준처럼 백그라운드 에이전트에서 실행됩니다</div>

79 <div><a href="/docs/ko/discover-plugins#install-plugins"><code>/plugin install plugin\@marketplace</code></a>는 먼저 마켓플레이스를 새로 고치므로 새로 게시된 플러그인이 수동 마켓플레이스 업데이트 없이 설치됩니다</div>79 <div><a href="/docs/ko/plugins/install#install-a-plugin"><code>/plugin install plugin\@marketplace</code></a>는 먼저 마켓플레이스를 새로 고치므로 새로 게시된 플러그인이 수동 마켓플레이스 업데이트 없이 설치됩니다</div>

80 <div>설정은 <a href="/docs/ko/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> 및 <code>allowedMarketplaces</code></a>를 <code>extraKnownMarketplaces</code> 및 <code>strictKnownMarketplaces</code>의 별칭으로 허용합니다</div>80 <div>설정은 <a href="/docs/ko/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> 및 <code>allowedMarketplaces</code></a>를 <code>extraKnownMarketplaces</code> 및 <code>strictKnownMarketplaces</code>의 별칭으로 허용합니다</div>

81 <div>최신 모델에서 Claude는 이 세션에서 먼저 읽지 않고 Write 도구로 <a href="/docs/ko/tools-reference#write-tool-behavior">기존 파일을 덮어쓸 수 있습니다</a>. Edit 도구의 규칙과 일치합니다. 이전 모델은 읽기가 필요합니다</div>81 <div>최신 모델에서 Claude는 이 세션에서 먼저 읽지 않고 Write 도구로 <a href="/docs/ko/tools-reference#write-tool-behavior">기존 파일을 덮어쓸 수 있습니다</a>. Edit 도구의 규칙과 일치합니다. 이전 모델은 읽기가 필요합니다</div>

82 <div>VS Code 확장은 <a href="/docs/ko/vs-code#organize-sessions-into-groups">세션 목록을 그룹으로 구성할 수 있습니다</a>. 마우스 오른쪽 버튼을 클릭하여 그룹을 만들거나, 이름을 바꾸거나, 삭제하고, Cmd/Ctrl- 또는 Shift-클릭으로 여러 세션을 한 번에 이동합니다</div>82 <div>VS Code 확장은 <a href="/docs/ko/vs-code#organize-sessions-into-groups">세션 목록을 그룹으로 구성할 수 있습니다</a>. 마우스 오른쪽 버튼을 클릭하여 그룹을 만들거나, 이름을 바꾸거나, 삭제하고, Cmd/Ctrl- 또는 Shift-클릭으로 여러 세션을 한 번에 이동합니다</div>

Details

54 54 

55 <div className="digest-wins-grid">55 <div className="digest-wins-grid">

56 <div>Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry를 포함한 모든 공급자에서 노력 수준을 제한하려면 최상위 수준 또는 <code>modelSettings</code> 아래 모델별로 <a href="/docs/ko/settings-reference#maxeffortlevel"><code>maxEffortLevel</code></a>을 설정합니다. 더 높은 수준은 제한에서 실행됩니다</div>56 <div>Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry를 포함한 모든 공급자에서 노력 수준을 제한하려면 최상위 수준 또는 <code>modelSettings</code> 아래 모델별로 <a href="/docs/ko/settings-reference#maxeffortlevel"><code>maxEffortLevel</code></a>을 설정합니다. 더 높은 수준은 제한에서 실행됩니다</div>

57 <div><code>--plugin-dir</code>을 플러그인 폴더로 지정하여 <a href="/docs/ko/plugins#test-your-plugins-locally">매니페스트가 있는 각 직접 하위 폴더를 로드</a>합니다</div>57 <div><code>--plugin-dir</code>을 플러그인 폴더로 지정하여 <a href="/docs/ko/plugins/create#load-a-directory-or-archive-for-one-session">매니페스트가 있는 각 직접 하위 폴더를 로드</a>합니다</div>

58 <div>WebFetch가 5분 이내에 페이지 다운로드를 완료하지 못한 경우, <a href="/docs/ko/tools-reference#webfetch-tool-behavior">fetch는 중단되지 않고 deadline 오류로 실패</a>합니다. <code>CLAUDE\_CODE\_WEBFETCH\_DEADLINE\_MS</code>를 설정하여 deadline을 변경하거나 <code>0</code>으로 설정하여 제한을 제거합니다</div>58 <div>WebFetch가 5분 이내에 페이지 다운로드를 완료하지 못한 경우, <a href="/docs/ko/tools-reference#webfetch-tool-behavior">fetch는 중단되지 않고 deadline 오류로 실패</a>합니다. <code>CLAUDE\_CODE\_WEBFETCH\_DEADLINE\_MS</code>를 설정하여 deadline을 변경하거나 <code>0</code>으로 설정하여 제한을 제거합니다</div>

59 <div><code>claude plugin install</code>, <code>uninstall</code>, <code>update</code>, <code>enable</code> 또는 <code>disable</code>에 <code>--json</code>을 전달하여 결과를 <a href="/docs/ko/plugins-reference#plugin-json-result">stdout의 마지막 라인에 하나의 JSON 객체로 인쇄</a>합니다</div>59 <div><code>claude plugin install</code>, <code>uninstall</code>, <code>update</code>, <code>enable</code> 또는 <code>disable</code>에 <code>--json</code>을 전달하여 결과를 <a href="/docs/ko/plugins/cli-reference#plugin-json-result">stdout의 마지막 라인에 하나의 JSON 객체로 인쇄</a>합니다</div>

60 <div>auto mode 분류기가 작업을 차단할 때, Claude가 수신하는 이유는 <a href="/docs/ko/auto-mode-config#fix-a-denial-with-an-allow-rule-an-environment-entry-or-a-retry">일반적으로 <code>\[Data Exfiltration]</code>과 같이 일치한 규칙의 이름을 지정</a>합니다</div>60 <div>auto mode 분류기가 작업을 차단할 때, Claude가 수신하는 이유는 <a href="/docs/ko/auto-mode-config#fix-a-denial-with-an-allow-rule-an-environment-entry-or-a-retry">일반적으로 <code>\[Data Exfiltration]</code>과 같이 일치한 규칙의 이름을 지정</a>합니다</div>

61 <div>프롬프트 중간에 <code>/</code>를 입력할 때, 이제 단일 제안 대신 <a href="/docs/ko/interactive-mode#complete-a-command-mid-prompt">일치하는 명령 목록에서 선택</a>할 수 있습니다. 목록은 전체 화면 렌더링에서 입력할 때 열립니다. 플러그인 스킬도 플러그인 접두사 없이 이름과 일치합니다</div>61 <div>프롬프트 중간에 <code>/</code>를 입력할 때, 이제 단일 제안 대신 <a href="/docs/ko/interactive-mode#complete-a-command-mid-prompt">일치하는 명령 목록에서 선택</a>할 수 있습니다. 목록은 전체 화면 렌더링에서 입력할 때 열립니다. 플러그인 스킬도 플러그인 접두사 없이 이름과 일치합니다</div>

62 <div>VS Code 확장에서 프롬프트 상자 하단의 에이전트 수를 클릭하여 <a href="/docs/ko/vs-code#use-the-prompt-box">에이전트 맵</a>을 열고, 여기서 하위 에이전트의 읽기 전용 기록을 열거나 중지할 수 있습니다</div>62 <div>VS Code 확장에서 프롬프트 상자 하단의 에이전트 수를 클릭하여 <a href="/docs/ko/vs-code#use-the-prompt-box">에이전트 맵</a>을 열고, 여기서 하위 에이전트의 읽기 전용 기록을 열거나 중지할 수 있습니다</div>

workflows.md +1 −1

Details

239 플러그인에서 워크플로우 배포하기239 플러그인에서 워크플로우 배포하기

240</h3>240</h3>

241 241 

242팀이나 저장소 전체에 워크플로우를 공유하려면 [플러그인](/docs/ko/plugins)에 포함시키십시오. 스크립트를 플러그인 루트의 `workflows/` 디렉토리에 배치하거나 [`workflows` 매니페스트 필드](/docs/ko/plugins-reference#component-path-fields)로 다른 위치를 지정하십시오.242팀이나 저장소 전체에 워크플로우를 공유하려면 [플러그인](/docs/ko/plugins/overview)에 포함시키십시오. 스크립트를 플러그인 루트의 `workflows/` 디렉토리에 배치하거나 [`workflows` 매니페스트 필드](/docs/ko/plugins/manifest-reference#fields)로 다른 위치를 지정하십시오.

243 243 

244플러그인 워크플로우는 플러그인 이름으로 네임스페이스됩니다. `acme-tools`라는 플러그인이 `meta.name`이 `release-audit`인 스크립트를 포함하면 `/acme-tools:release-audit`으로 실행됩니다.244플러그인 워크플로우는 플러그인 이름으로 네임스페이스됩니다. `acme-tools`라는 플러그인이 `meta.name`이 `release-audit`인 스크립트를 포함하면 `/acme-tools:release-audit`으로 실행됩니다.

245 245 

worktrees.md +3 −1

Details

256Worktree는 자체 파일과 브랜치를 가지지만 메인 체크아웃과 다음을 공유합니다:256Worktree는 자체 파일과 브랜치를 가지지만 메인 체크아웃과 다음을 공유합니다:

257 257 

258* **저장소의 `.git` 디렉토리**: worktree의 git 명령은 메인 저장소의 공유 `.git` 디렉토리에 쓰며, [샌드박싱](/docs/ko/sandboxing#filesystem-isolation)은 이러한 쓰기를 허용하므로 `git commit`과 같은 명령이 샌드박스가 활성화된 worktree 내부에서 작동합니다.258* **저장소의 `.git` 디렉토리**: worktree의 git 명령은 메인 저장소의 공유 `.git` 디렉토리에 쓰며, [샌드박싱](/docs/ko/sandboxing#filesystem-isolation)은 이러한 쓰기를 허용하므로 `git commit`과 같은 명령이 샌드박스가 활성화된 worktree 내부에서 작동합니다.

259* **플러그인**: [프로젝트 범위](/docs/ko/plugins-reference#plugin-installation-scopes)에서 메인 체크아웃에서 설치된 플러그인도 동일한 저장소의 worktree에 로드되므로 worktree마다 다시 설치할 필요가 없습니다. Claude Code v2.1.200 이상이 필요합니다.259* **플러그인**: [프로젝트 범위](/docs/ko/plugins/loading#find-where-a-plugin-is-enabled)에서 메인 체크아웃에서 설치된 플러그인도 동일한 저장소의 worktree에 로드되므로 worktree마다 다시 설치할 필요가 없습니다. Claude Code v2.1.200 이상이 필요합니다.

260* **권한 승인**: worktree 세션에서 Bash 명령에 대해 "예, 다시 묻지 않기"를 선택하면 규칙이 메인 체크아웃의 `.claude/settings.local.json`에 저장되므로 메인 체크아웃과 저장소의 다른 모든 worktree에 적용되며, worktree 제거 후에도 유지됩니다. Windows 및 Claude Code가 [저장소 루트를 사용하지 않는 다른 경우](/docs/ko/settings#where-claude-code-looks-for-each-file)에는 규칙이 해당 worktree와 함께 유지됩니다. v2.1.211 이전에는 worktree에서 부여된 승인이 해당 worktree 내부에 저장되었으며, 다른 곳에 적용되지 않았고, worktree 제거 시 손실되었습니다. [승인이 저장되는 위치](/docs/ko/permissions#permission-system)를 참조합니다.260* **권한 승인**: worktree 세션에서 Bash 명령에 대해 "예, 다시 묻지 않기"를 선택하면 규칙이 메인 체크아웃의 `.claude/settings.local.json`에 저장되므로 메인 체크아웃과 저장소의 다른 모든 worktree에 적용되며, worktree 제거 후에도 유지됩니다. Windows 및 Claude Code가 [저장소 루트를 사용하지 않는 다른 경우](/docs/ko/settings#where-claude-code-looks-for-each-file)에는 규칙이 해당 worktree와 함께 유지됩니다. v2.1.211 이전에는 worktree에서 부여된 승인이 해당 worktree 내부에 저장되었으며, 다른 곳에 적용되지 않았고, worktree 제거 시 손실되었습니다. [승인이 저장되는 위치](/docs/ko/permissions#permission-system)를 참조합니다.

261* **추적되지 않은 skills, agents, 및 commands**: worktree 체크아웃에 루트에 `.claude/skills` 디렉토리가 없을 때(예: `.claude/skills`가 gitignored인 경우), Claude Code는 메인 체크아웃의 [프로젝트 skills](/docs/ko/skills#where-skills-live)를 worktree 세션에 로드합니다. 자체 `.claude/skills` 디렉토리가 있는 worktree에서는 해당 복사본만 로드됩니다.261* **추적되지 않은 skills, agents, 및 commands**: worktree 체크아웃에 루트에 `.claude/skills` 디렉토리가 없을 때(예: `.claude/skills`가 gitignored인 경우), Claude Code는 메인 체크아웃의 [프로젝트 skills](/docs/ko/skills#where-skills-live)를 worktree 세션에 로드합니다. 자체 `.claude/skills` 디렉토리가 있는 worktree에서는 해당 복사본만 로드됩니다.

262 262 


330 330 

331세션이 끝날 때 정리하려면 `WorktreeRemove` 훅과 쌍을 이룹니다. 입력 스키마 및 제거 예제는 [훅 참조](/docs/ko/hooks#worktreecreate)를 참조합니다.331세션이 끝날 때 정리하려면 `WorktreeRemove` 훅과 쌍을 이룹니다. 입력 스키마 및 제거 예제는 [훅 참조](/docs/ko/hooks#worktreecreate)를 참조합니다.

332 332 

333`WorktreeCreate` 훅을 사용하면 git 저장소 외부에서 [`/batch`](/docs/ko/commands#all-commands)를 실행할 수도 있습니다. 각 `/batch` 서브에이전트는 프로젝트의 버전 관리 명령으로 변경 사항을 게시하고, 풀 요청을 열 수 없을 때 대신 게시한 내용을 보고합니다. git 저장소 외부에서 `/batch`를 실행하려면 Claude Code v2.1.281 이상이 필요합니다.

334 

333<h2 id="troubleshooting">335<h2 id="troubleshooting">

334 문제 해결336 문제 해결

335</h2>337</h2>

Details

66| 기능 | 이유 |66| 기능 | 이유 |

67| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------ |67| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------ |

68| [웹의 Claude Code](/docs/ko/claude-code-on-the-web)(Desktop 앱에서 시작된 [클라우드 세션](/docs/ko/desktop#cloud-sessions) 포함) | 프롬프트 및 완성을 포함한 대화 기록이 있는 세션 데이터의 서버 측 저장이 필요합니다. |68| [웹의 Claude Code](/docs/ko/claude-code-on-the-web)(Desktop 앱에서 시작된 [클라우드 세션](/docs/ko/desktop#cloud-sessions) 포함) | 프롬프트 및 완성을 포함한 대화 기록이 있는 세션 데이터의 서버 측 저장이 필요합니다. |

69| [Claude Tag](/docs/ko/claude-tag) | 채널 메모리 및 세션 기록을 유지합니다. |69| [Claude Tag](https://claude.com/docs/claude-tag) | 채널 메모리 및 세션 기록을 유지합니다. |

70| [Artifacts](/docs/ko/artifacts) | Anthropic 운영 인프라에 게시된 페이지 콘텐츠를 저장해야 합니다. |70| [Artifacts](/docs/ko/artifacts) | Anthropic 운영 인프라에 게시된 페이지 콘텐츠를 저장해야 합니다. |

71| 피드백 제출(`/feedback`, `/bug`, `/share`) | 피드백을 제출하면 대화 데이터가 Anthropic으로 전송됩니다. |71| 피드백 제출(`/feedback`, `/bug`, `/share`) | 피드백을 제출하면 대화 데이터가 Anthropic으로 전송됩니다. |

72| [원격 제어](/docs/ko/remote-control) | Anthropic 서버에 세션 기록을 저장하여 기기 간 대화를 동기화합니다. |72| [원격 제어](/docs/ko/remote-control) | Anthropic 서버에 세션 기록을 저장하여 기기 간 대화를 동기화합니다. |