4 4
5# Mods 개요5# Mods 개요
6 6
7> mod를 사용하여 Claude Code에 창, 명령, 도구 호출 규칙을 추가합니다. mod가 할 수 있는 것, mod를 만들거나 설치하는 방법, mod가 실행되는 위치를 확인합니다.7> mod를 사용해 Claude Code에 창, 명령, 도구 호출 규칙을 추가합니다. mod로 할 수 있는 일, mod를 만들거나 설치하는 방법, mod가 실행되는 위치를 알아봅니다.
8 8
9mod는 Claude Code의 모양과 동작을 변경하는 [플러그인](/docs/ko/plugins/overview)입니다. JavaScript 또는 TypeScript 이벤트 핸들러로 구성됩니다. Claude Code는 도구 호출, 제출된 프롬프트, 인터페이스의 일부가 그려지는 것과 같은 이벤트가 발생할 때 하나를 호출하며, 핸들러는 이벤트를 감시하거나, 변경하거나, 인수할 수 있습니다. mod를 사용하여 각 요청 후 컨텍스트가 얼마나 찼는지 차트로 표시하는 창과 같이 Claude Code에 자신만의 기능을 추가합니다. mod의 파일과 완전한 예제는 [mod의 작동 방식](#how-a-mod-works)을 참조합니다.9mod는 Claude Code의 모양과 동작을 바꾸는 [플러그인](/docs/ko/plugins/overview)입니다. mod는 JavaScript 또는 TypeScript 이벤트 핸들러로 구성됩니다. 도구 호출, 프롬프트 제출, 인터페이스 일부의 렌더링과 같은 이벤트가 발생하면 Claude Code가 핸들러를 호출하며, 핸들러는 해당 이벤트를 관찰하거나, 변경하거나, 직접 처리할 수 있습니다. mod를 사용하면 각 요청 후 컨텍스트가 얼마나 찼는지 차트로 보여 주는 창처럼 원하는 기능을 Claude Code에 추가할 수 있습니다. mod를 구성하는 파일과 전체 예시는 [mod의 작동 방식](#how-a-mod-works)을 참조하십시오.
10 10
11<Note>11<Note>
12 Claude Code의 기존 [hooks](/docs/ko/hooks)도 이벤트에서 실행되며, 설정 파일에서 구성하는 셸 명령, HTTP 요청 또는 프롬프트입니다. mod의 핸들러는 Claude Code 내부에서 실행되는 함수입니다. Claude Code는 두 종류의 hooks를 모두 호출합니다. 이 페이지에서 "hook"은 mod의 핸들러를 의미하고, 설정 파일 종류는 "설정 hook"입니다.12 Claude Code의 기존 [훅](/docs/ko/hooks)도 이벤트가 발생할 때 실행되며, 설정 파일에서 구성한 셸 명령, HTTP 요청 또는 프롬프트 형태로 실행됩니다. 반면 mod의 핸들러는 Claude Code 내부에서 실행되는 함수입니다. Claude Code는 두 가지를 모두 훅이라고 부릅니다. 이 페이지들에서 "훅"은 mod의 핸들러를 의미하며, 설정 파일 방식의 훅은 "설정 훅"이라고 합니다.
13</Note>13</Note>
14 14
15<h2 id="what-a-mod-can-do">15<h2 id="what-a-mod-can-do">
16 mod가 할 수 있는 것16 mod로 할 수 있는 일
17</h2>17</h2>
18 18
19설정 hooks, skills, 상태 줄, MCP 서버는 Claude Code 외부에서 작동합니다. 각각 스크립트를 실행하거나 Claude에 텍스트 또는 도구를 제공합니다. mod는 Claude Code 내부에서 실행되므로 다음을 수행할 수 있습니다:19설정 훅, 스킬, 상태줄, MCP 서버는 Claude Code 외부에서 작동합니다. 각각 스크립트를 실행하거나 Claude에 텍스트 또는 도구를 제공합니다. mod는 Claude Code 내부에서 실행되므로 이들이 할 수 없는 일을 할 수 있습니다.
20 20
21* **사용할 수 있는 인터페이스 그리기**: 대화 옆의 창 또는 프롬프트 위의 밴드, 탭, 버튼, 텍스트 필드 포함. [인터페이스에 그리기](/docs/ko/plugins/mods/interface)를 참조합니다.21* **직접 사용할 수 있는 인터페이스 그리기**: 트랜스크립트 옆의 창이나 프롬프트 위의 띠 영역에 탭, 버튼, 텍스트 필드를 배치할 수 있습니다. [인터페이스에 그리기](/docs/ko/plugins/mods/interface)를 참조하세요.
22* **Claude Code 자체 인터페이스 다시 그리기**: Claude Code가 자체적으로 그리는 부분(예: 도구 호출의 행, 스피너 또는 Claude가 질문하는 대화)을 교체하거나 다시 스타일링합니다. [Claude Code가 이미 그린 것 변경](/docs/ko/plugins/mods/interface#change-what-claude-code-already-draws)을 참조합니다.22* **Claude Code 자체 인터페이스 다시 그리기**: 도구 호출 행, 스피너, Claude가 질문하는 대화 상자 등 Claude Code가 직접 그리는 부분을 교체하거나 스타일을 바꿀 수 있습니다. [Claude Code가 이미 그리는 요소 변경하기](/docs/ko/plugins/mods/interface#change-what-claude-code-already-draws)를 참조하세요.
23* **도구 호출 또는 요청에 개입**: 예를 들어, 도구 호출을 유지하면서 사용자에게 질문하고, 도구를 실행하지 않고 답변하거나, 한 요청을 다른 모델로 보냅니다. [도구 호출 보호 또는 변경](/docs/ko/plugins/mods/events#guard-or-change-a-tool-call) 및 [턴 따르기](/docs/ko/plugins/mods/events#follow-a-turn)를 참조합니다.23* **도구 호출이나 요청에 개입하기**: 예를 들어 사용자에게 질문하는 동안 도구 호출을 보류하거나, 도구를 실행하지 않고 응답하거나, 특정 요청을 다른 모델로 보낼 수 있습니다. [도구 호출 보호 또는 변경하기](/docs/ko/plugins/mods/events#guard-or-change-a-tool-call)와 [턴 추적하기](/docs/ko/plugins/mods/events#follow-a-turn)를 참조하세요.
24* **명령에서 자신의 코드 실행**: Claude 턴 없이 즉시 실행되는 `/command`, Claude가 작업 중일 때도 실행됩니다. [명령 또는 도구 추가](/docs/ko/plugins/mods/api#add-a-command-or-a-tool)를 참조합니다.24* **명령으로 직접 작성한 코드 실행하기**: Claude 턴 없이, Claude가 작업 중일 때도 함수를 즉시 실행하는 `/command`를 만들 수 있습니다. [명령 또는 도구 추가하기](/docs/ko/plugins/mods/api#add-a-command-or-a-tool)를 참조하세요.
25* **hooks 간 데이터 공유**: mod의 hooks는 파일의 변수를 공유하므로 한 hook이 기록하는 것을 다른 hook이 표시할 수 있습니다. 예를 들어, 한 hook은 도구 호출을 세면서 다른 hook은 스피너 옆에 개수를 표시하거나, 한 hook은 각 요청의 토큰 사용량을 읽으면서 다른 hook은 창에서 차트로 표시할 수 있습니다. [이벤트에 반응](/docs/ko/plugins/mods/events)을 참조합니다.25* **훅 간 데이터 공유하기**: mod의 훅은 해당 파일의 변수를 공유하므로, 한 훅이 기록한 내용을 다른 훅이 표시할 수 있습니다. 예를 들어 한 훅이 도구 호출 수를 세고 다른 훅이 그 수를 스피너 옆에 표시하거나, 한 훅이 각 요청의 토큰 사용량을 읽고 다른 훅이 이를 창에 차트로 그릴 수 있습니다. [이벤트에 반응하기](/docs/ko/plugins/mods/events)를 참조하세요.
26 26
27Mods는 Claude Code CLI 및 Claude Desktop 앱의 Code 탭에서 작동합니다. VS Code 확장, `claude -p`, 클라우드 세션과 같은 다른 위치에서의 동작을 이해하려면 [mods가 실행되는 위치](#where-mods-run)를 참조합니다. 설정 hook, skill 또는 MCP 서버가 이미 필요한 것을 수행하면, mod를 작성하기 전에 [비교](#compare-mods-settings-hooks-skills-and-mcp-servers)합니다. 조직의 mods를 관리하려면 [조직의 mods 관리](/docs/ko/plugins/mods/admin)를 참조합니다.27mod는 Claude Code CLI와 Claude Desktop 앱의 Code 탭에서 작동합니다. VS Code 확장 프로그램, `claude -p`, 클라우드 세션 등 다른 환경에서 mod가 어떻게 동작하는지는 [mod가 실행되는 위치](#where-mods-run)를 참조하세요. 설정 훅, 스킬 또는 MCP 서버로 이미 필요한 작업을 할 수 있다면 mod를 작성하기 전에 [이들을 비교](#compare-mods-settings-hooks-skills-and-mcp-servers)해 보세요. 조직의 mod를 관리하려면 [조직의 mod 관리하기](/docs/ko/plugins/mods/admin)를 참조하세요.
28 28
29<h2 id="get-a-mod">29<h2 id="get-a-mod">
30 mod 가져오기30 mod 가져오기
31</h2>31</h2>
32 32
33다음 세 가지 방법 중 하나로 mod를 시작할 수 있습니다:33mod를 시작하는 방법은 다음과 같습니다.
34 34
35* **이미 가지고 있는 것 사용**: Claude Code의 일부 기능은 `/diff`와 같은 mods입니다. [Claude Code에 내장된 Mods](#mods-built-into-claude-code)를 참조합니다.35* **이미 있는 mod 사용하기**: `/diff`와 같은 Claude Code 자체 기능 중 일부는 mod입니다. [Claude Code에 내장된 mod](#mods-built-into-claude-code)를 참조하세요.
36* **하나 만들기**: Claude Code 세션에서 원하는 것을 설명하면 Claude가 mod를 작성합니다. [Claude에 mod 요청](/docs/ko/plugins/mods/create#ask-claude-for-a-mod)을 참조합니다. mod의 코드가 어떻게 작동하는지 배우려면 [직접 작성](/docs/ko/plugins/mods/create#write-a-mod-yourself)합니다.36* **직접 만들기**: Claude Code 세션에서 원하는 내용을 설명하면 Claude가 mod를 작성합니다. [Claude에게 mod 요청하기](/docs/ko/plugins/mods/create#ask-claude-for-a-mod)를 참조하세요. mod의 코드가 어떻게 작동하는지 알아보려면 [직접 작성해 보세요](/docs/ko/plugins/mods/create#write-a-mod-yourself).
37* **하나 설치**: [mod 설치 또는 업데이트](#install-or-update-a-mod)를 참조합니다.37* **설치하기**: [mod 설치 또는 업데이트](#install-or-update-a-mod)를 참조하거나 [샘플 mod를 사용해 보세요](#try-a-sample-mod)
38 38
39<h3 id="install-or-update-a-mod">39<h3 id="install-or-update-a-mod">
40 mod 설치 또는 업데이트40 mod 설치 또는 업데이트
41</h3>41</h3>
42 42
43<Warning>43<Warning>
44 mod는 사용자의 권한으로 실행되는 코드입니다. 파일을 읽고 쓰고, 프로세스를 시작하고, 네트워크 요청을 할 수 있습니다. 신뢰하는 작성자 및 마켓플레이스에서만 mods를 설치합니다. [mod를 신뢰할지 결정](#decide-whether-to-trust-a-mod)을 참조합니다.44 mod는 사용자의 권한으로 실행되는 코드입니다. 파일을 읽고 쓰고, 프로세스를 시작하고, 네트워크 요청을 보낼 수 있습니다. 신뢰할 수 있는 작성자와 마켓플레이스의 mod만 설치하세요. [mod를 신뢰할지 결정하기](#decide-whether-to-trust-a-mod)를 참조하세요.
45</Warning>45</Warning>
46 46
47mod는 마켓플레이스에서 플러그인으로 설치됩니다. 플러그인의 이름, `@`, 마켓플레이스의 이름을 제공합니다. 이 예제는 `your-org`라는 마켓플레이스에서 `token-chart`라는 플러그인을 설치합니다:47mod는 마켓플레이스에서 플러그인으로 설치됩니다. 플러그인 이름, `@`, 마켓플레이스 이름을 지정합니다. 다음 예시는 `your-org`라는 마켓플레이스에서 `token-chart`라는 플러그인을 설치합니다.
48 48
49* Claude Code 세션에서 `/plugin install token-chart@your-org`를 실행합니다.49* Claude Code 세션에서 `/plugin install token-chart@your-org`를 실행합니다.
50* 셸에서 `claude plugin install token-chart@your-org`를 실행합니다.50* 셸에서 `claude plugin install token-chart@your-org`를 실행합니다.
51 51
52[플러그인 설치](/docs/ko/plugins/install)는 마켓플레이스, 범위, VS Code 확장 및 Desktop 앱, [플러그인 업데이트 유지](/docs/ko/plugins/install#keep-plugins-updated)를 다룹니다. 이는 mod를 포함하는 플러그인에 변경 없이 적용됩니다.52[플러그인 설치](/docs/ko/plugins/install)에서는 마켓플레이스, 범위, VS Code 확장 프로그램과 Desktop 앱, [플러그인 최신 상태로 유지하기](/docs/ko/plugins/install#keep-plugins-updated)를 다루며, 이 모든 내용은 mod를 포함하는 플러그인에도 그대로 적용됩니다.
53 53
54세션이 열려 있는 동안 셸에서 mod를 설치하거나 업데이트하면, 해당 세션에서 `/reload-plugins`를 실행하여 로드합니다. 그렇지 않으면 Claude Code를 다음에 시작할 때 로드됩니다.54세션이 열려 있는 동안 셸에서 mod를 설치하거나 업데이트한 경우, 해당 세션에서 `/reload-plugins`를 실행하여 mod를 로드합니다. 그렇지 않으면 다음에 Claude Code를 시작할 때 로드됩니다.
55
56<h3 id="try-a-sample-mod">
57 샘플 mod 사용해 보기
58</h3>
59
60Anthropic은 [`claude-code-playground` 저장소의 `claude-code/mods` 디렉터리](https://github.com/anthropics/claude-code-playground/tree/main/claude-code/mods)에서 샘플 mod를 공유합니다. 각 샘플은 완전한 플러그인이며, README에 제작 방법이 설명되어 있습니다. 이 저장소는 샘플을 있는 그대로 공유하며 지원은 제공하지 않습니다.
61
62* [`token-weather`](https://github.com/anthropics/claude-code-playground/tree/main/claude-code/mods/token-weather): 프롬프트 위에 컨텍스트 윈도우 예보를 그립니다
63* [`blast-radius`](https://github.com/anthropics/claude-code-playground/tree/main/claude-code/mods/blast-radius): `rm -rf`나 강제 푸시와 같은 위험한 셸 명령을 보류하고, 해당 명령이 무엇을 변경할지 보여 주며 진행하거나 취소할 수 있는 버튼을 제공합니다
64* [`replay-theater`](https://github.com/anthropics/claude-code-playground/tree/main/claude-code/mods/replay-theater): 마지막 턴에서 Claude가 수행한 파일 편집을 단계별로 살펴보는 `/replay` 명령을 추가합니다
65
66샘플 mod는 사용자의 권한으로 실행됩니다. 로드하기 전에 mod가 하는 일을 확인하려면 [해당 mod의 훅과 호출을 나열하세요](#list-what-a-mod-does-before-you-install-one).
67
68사용해 보려면 저장소를 클론한 다음 `--plugin-dir`로 [한 세션 동안 mod의 디렉터리를 로드합니다](/docs/ko/plugins/create#load-a-directory-or-archive-for-one-session). mod가 로드되었는지 확인하려면 [세션이 로드한 mod를 확인하세요](#see-which-mods-a-session-loaded).
69
70계속 사용하려면 [클론의 `claude-code/mods` 디렉터리를 마켓플레이스로 추가](/docs/ko/plugins/install#add-a-marketplace)한 다음 `claude-code-playground-mods`에서 mod를 설치합니다. 마켓플레이스는 클론을 가리키므로, 클론을 이동하거나 삭제하면 mod가 더 이상 로드되지 않습니다.
55 71
56<h2 id="decide-whether-to-trust-a-mod">72<h2 id="decide-whether-to-trust-a-mod">
57 모드를 신뢰할지 결정하기73 mod를 신뢰할지 결정하기
58</h2>74</h2>
59 75
60모드는 Claude Code 내에서 사용자의 권한으로 실행되는 코드입니다. 신뢰하는 작성자 및 [마켓플레이스에서만 모드를 설치하십시오](/docs/ko/plugins/security).76mod는 Claude Code 내부에서 사용자의 권한으로 실행되는 코드입니다. 신뢰할 수 있는 작성자와 [신뢰할 수 있는 마켓플레이스](/docs/ko/plugins/security)에서만 mod를 설치하십시오.
61 77
62<h3 id="what-a-mod-can-reach">78<h3 id="what-a-mod-can-reach">
63 모드가 접근할 수 있는 것79 mod가 접근할 수 있는 범위
64</h3>80</h3>
65 81
66모드는 사용자의 권한으로 실행되므로, 설치하기 전에 어떤 것에 접근할 수 있는지 알아야 합니다. 모드가 로드되면 다음을 수행할 수 있습니다:82mod는 사용자의 권한으로 실행되므로, 설치하기 전에 mod가 무엇에 접근할 수 있는지 알아 두어야 합니다. 로드된 mod는 다음을 수행할 수 있습니다.
67 83
68* **사용자로서 머신에서 작동**: 사용자 계정이 접근할 수 있는 모든 곳에서 파일을 읽고 쓰기, 프로그램 시작, 네트워크 요청 수행84* **사용자로서 컴퓨터에서 작업 수행**: 사용자 계정이 접근할 수 있는 모든 위치에서 파일 읽기 및 쓰기, 프로그램 실행, 네트워크 요청 수행
69* **비밀 정보 읽기**: 환경 변수 및 설정 파일(API 키 포함)85* **비밀 정보 읽기**: 환경 변수와 설정 파일, 그리고 그 안에 보관된 API 키 읽기
70* **세션 확인**: 사용자가 보내는 모든 프롬프트 및 Claude가 수행하는 모든 도구 호출 확인86* **세션 보기**: 사용자가 보내는 모든 프롬프트와 Claude가 수행하는 모든 도구 호출 보기
71* **세션 변경**: 프롬프트 또는 도구 호출 재작성, 사용자가 입력한 것처럼 프롬프트 제출, 다른 세션으로 메시지 전송87* **세션 변경**: 프롬프트나 도구 호출 재작성, 사용자가 직접 입력한 것처럼 프롬프트 제출, 사용자의 다른 세션으로 메시지 전송
72* **사용자에게 묻지 않고 작동**: 사용자에게 묻기 전에 도구 호출 승인88* **사용자에게 묻지 않고 작업 수행**: 사용자에게 확인을 요청하기 전에 도구 호출 승인
73* **사용량 소비**: 플랜 또는 API 키의 모델 호출89* **사용량 소비**: 사용자의 플랜 또는 API 키로 모델 호출
74 90
75도구 호출을 승인하는 모드는 `ask` 규칙이 프롬프트하는 호출이나 사용자의 `PreToolUse` 훅이 차단한 호출을 승인할 수 있습니다. [훅으로 권한 확장하기](/docs/ko/permissions#extend-permissions-with-hooks)에서는 이러한 모드가 승인할 수 있는 것(예: `deny` 규칙이 거부하는 호출을 승인할 수 있는 경우 포함)을 나열합니다.91mod는 샌드박스에서 실행되지 않습니다. [샌드박싱](/docs/ko/sandboxing)을 켜면 샌드박스는 Claude가 실행하는 Bash 명령을 격리하지만, mod가 시작하는 프로세스는 샌드박스 밖에서 실행됩니다.
76 92
77모드는 Claude Code 인터페이스의 대부분을 다시 스타일링할 수 있지만, 권한 프롬프트는 변경할 수 없습니다. 프롬프트가 표시하는 내용을 변경할 수 없습니다.93도구 호출을 승인하는 mod는 `ask` 규칙이 확인을 요청할 호출이나 사용자 자신의 `PreToolUse` 훅이 차단한 호출도 승인할 수 있습니다. [훅으로 권한 확장하기](/docs/ko/permissions#extend-permissions-with-hooks)에서 이러한 mod가 승인할 수 있는 항목과, `deny` 규칙이 거부하는 호출을 승인할 수 있는 경우를 확인할 수 있습니다.
94
95mod는 Claude Code 인터페이스의 많은 부분을 다시 꾸밀 수 있지만, 권한 프롬프트는 변경할 수 없습니다. 프롬프트에 표시되는 내용은 mod가 바꿀 수 없습니다.
78 96
79<h3 id="list-what-a-mod-does-before-you-install-one">97<h3 id="list-what-a-mod-does-before-you-install-one">
80 설치하기 전에 모드가 수행하는 작업 나열하기98 설치하기 전에 mod가 하는 작업 나열하기
81</h3>99</h3>
82 100
83모드를 설치하기 전에, 모드가 훅하는 이벤트와 파일 읽기 또는 네트워크 요청 수행과 같이 Claude Code에 요청하는 작업을 실행하지 않고 나열할 수 있습니다. 먼저 플러그인의 파일을 가져옵니다(예: 저장소 복제). 그런 다음 셸에서 플러그인 디렉터리에 대해 `claude plugin validate`를 실행합니다:101mod를 설치하기 전에, mod를 실행하지 않고도 mod가 처리하는 이벤트와 Claude Code에 요청하는 작업(예: 파일 읽기 또는 네트워크 요청 수행)을 나열할 수 있습니다. 먼저 저장소를 클론하는 등의 방법으로 플러그인 파일을 가져옵니다. 그런 다음 셸에서 플러그인 디렉터리를 대상으로 `claude plugin validate`를 실행합니다.
84 102
85```bash theme={null}103```bash theme={null}
86claude plugin validate ./some-mod104claude plugin validate ./some-mod
87```105```
88 106
89출력의 `hooks:` 및 `calls:` 줄은 모드가 처리하는 이벤트와 Claude Code에 요청하는 작업을 나열합니다. [모드가 수행할 수 있는 작업 검토하기](/docs/ko/plugins/mods/admin#review-what-a-mod-can-do)에서는 출력과 확인할 호출을 보여줍니다.107출력의 `hooks:` 및 `calls:` 줄에는 mod가 처리하는 이벤트와 Claude Code에 요청하는 작업이 나열됩니다. [mod가 할 수 있는 작업 검토하기](/docs/ko/plugins/mods/admin#review-what-a-mod-can-do)에서 출력 예시와 주의 깊게 살펴봐야 할 호출을 확인할 수 있습니다.
90 108
91<h2 id="turn-mods-on-or-off">109<h2 id="turn-mods-on-or-off">
92 mods 켜기 또는 끄기110 mod 켜기 또는 끄기
93</h2>111</h2>
94 112
95Mods는 Claude Code v2.1.287 이상이 필요하며 기본적으로 켜져 있습니다. 셸에서 `claude --version`을 실행하여 확인하고, 더 오래된 경우 Claude Code를 업데이트합니다.113mod를 사용하려면 Claude Code v2.1.287 이상이 필요하며, mod는 기본적으로 켜져 있습니다. 셸에서 `claude --version`을 실행하여 버전을 확인하고, 이보다 오래된 버전이라면 Claude Code를 업데이트하십시오.
114
115mod를 끄려면 몇 개의 mod를 중지할지, 그리고 얼마 동안 중지할지 선택합니다. 다시 켜려면 같은 변경을 되돌리면 됩니다.
96 116
97mods를 끄려면 중지할 개수와 기간을 선택합니다. 다시 켜려면 동일한 변경을 취소합니다:117* **mod 하나**: [`/plugin`의 **Installed** 탭](/docs/ko/plugins/install#manage-installed-plugins)에서 해당 플러그인을 비활성화하거나 제거합니다
118* **설치된 모든 mod, 한 세션 동안**: [`--safe-mode`](/docs/ko/cli-reference#cli-flags)로 Claude Code를 시작합니다. 이 플래그는 다른 사용자 지정 항목도 함께 비활성화합니다
119* **사용자가 설치한 모든 mod, 모든 세션에서**: `~/.claude/settings.json`에서 [`"disableAllHooks": true`](/docs/ko/settings-reference#disableallhooks)를 설정합니다. 설정 훅과 사용자 지정 상태줄도 함께 중지됩니다. 조직에서 관리하는 항목은 계속 실행됩니다.
98 120
99* **하나의 mod**: [`/plugin`의 **설치됨** 탭](/docs/ko/plugins/install#manage-installed-plugins)에서 플러그인을 비활성화하거나 제거합니다.121조직을 통해 Claude Code를 사용하는 경우, 관리자가 로드되는 mod를 제한할 수도 있습니다. 관리자는 [사용자가 설치한 mod의 로드 중지](/docs/ko/plugins/mods/admin#stop-user-installed-mods-from-loading)부터 시작하십시오.
100* **모든 설치된 mod, 한 세션 동안**: [`--safe-mode`](/docs/ko/cli-reference#cli-flags)로 Claude Code를 시작합니다. 이는 다른 사용자 정의도 제외합니다.
101* **설치한 모든 mod, 모든 세션에서**: `~/.claude/settings.json`에서 [`"disableAllHooks": true`](/docs/ko/settings-reference#disableallhooks)를 설정합니다. 설정 hooks 및 사용자 정의 상태 줄도 중지됩니다. 조직이 관리하는 것은 계속 실행됩니다.
102 122
103조직을 통해 Claude Code를 사용하면 관리자가 로드되는 mods를 제한할 수도 있습니다. 관리자는 [사용자 설치 mods가 로드되지 않도록 중지](/docs/ko/plugins/mods/admin#stop-user-installed-mods-from-loading)에서 시작합니다.123`disableAllHooks`와 조직의 `allowManagedModsOnly`는 mod를 중지하되 플러그인의 나머지 부분은 그대로 둡니다. 플러그인은 설치된 상태로 유지되며, 플러그인의 스킬, 명령, 에이전트, MCP 서버는 로드됩니다. 다른 설정과 플래그는 더 넓은 범위에 영향을 미칩니다. [`disableAllHooks`](/docs/ko/settings-reference#disableallhooks) 및 [`allowManagedHooksOnly`에서 실행되는 항목](/docs/ko/settings-reference#what-runs-under-allowmanagedhooksonly)에서 각 항목이 플러그인과 설정 훅에 미치는 영향을 확인할 수 있습니다.
104 124
105mods가 로드될 수 있는지 확인하려면 [mods가 로드될 수 있는지 확인](/docs/ko/plugins/mods/troubleshoot#check-whether-mods-can-load)을 참조합니다.125사용자 환경에서 mod를 로드할 수 있는지 확인하려면 [mod를 로드할 수 있는지 확인](/docs/ko/plugins/mods/troubleshoot#check-whether-mods-can-load)을 참조하십시오.
106 126
107<Note>127<Note>
108 초기 액세스 중에 `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS`를 설정한 경우 제거합니다. Claude Code v2.1.287 이상은 이를 무시하므로 `0`으로 설정해도 mods가 꺼지지 않습니다.128 얼리 액세스 기간 중에 `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS`를 설정했다면 제거하십시오. Claude Code v2.1.287 이상에서는 이 값을 무시하므로, `0`으로 설정해도 mod가 꺼진 상태로 유지되지 않습니다.
109</Note>129</Note>
110 130
111<h3 id="see-which-mods-a-session-loaded">131<h3 id="see-which-mods-a-session-loaded">
112 세션이 로드한 mods 보기132 세션에서 로드한 mod 확인
113</h3>133</h3>
114 134
115터미널 세션이 로드한 mods를 보려면 Claude Code 프롬프트에서 `/plugin`을 실행합니다. 탭 아래의 흐린 줄은 개수와 이름(예: `1 mod active · first-mod`)을 제공합니다. 설치한 mod가 거기에 이름이 없으면 [mod가 아무것도 하지 않는 이유 찾기](/docs/ko/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing)를 참조합니다.135터미널 세션에서 로드한 mod를 확인하려면 Claude Code 프롬프트에서 `/plugin`을 실행합니다. 탭 아래에 흐리게 표시되는 줄에 `1 mod active · first-mod`와 같이 개수와 이름이 표시됩니다. 설치한 mod의 이름이 표시되지 않는다면 [mod가 아무 작업도 하지 않는 이유 확인](/docs/ko/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing)을 참조하십시오.
116 136
117<h2 id="how-a-mod-works">137<h2 id="how-a-mod-works">
118 mod의 작동 방식138 mod의 작동 방식
119</h2>139</h2>
120 140
121mod는 hooks라고 불리는 이벤트 핸들러를 등록하는 [플러그인](/docs/ko/plugins/overview)입니다. Claude Code는 Claude가 도구를 호출하거나 스피너가 그려질 때와 같은 이벤트가 발생할 때 hook을 실행합니다. 작은 mod는 세 개의 파일을 가집니다:141mod는 훅이라고 하는 이벤트 핸들러를 코드에서 등록하는 [플러그인](/docs/ko/plugins/overview)입니다. Claude Code는 Claude가 도구를 호출하거나 스피너가 그려질 때처럼 해당 이벤트가 발생하면 훅을 실행합니다. 작은 mod는 세 개의 파일로 구성됩니다.
122 142
123```text theme={null}143```text theme={null}
124first-mod/144first-mod/
130```150```
131 151
132* **`plugin.json`**: 플러그인의 [매니페스트](/docs/ko/plugins/manifest-reference)152* **`plugin.json`**: 플러그인의 [매니페스트](/docs/ko/plugins/manifest-reference)
133* **`hooks.json`**: [코드 파일을 가리킵니다](/docs/ko/plugins/mods/reference#files)153* **`hooks.json`**: [코드 파일을 가리킴](/docs/ko/plugins/mods/reference#files)
134* **`register.js`**: [코드](/docs/ko/plugins/mods/create#write-a-mod-yourself), hooks 모듈이라고 불립니다. Claude Code에 어떤 이벤트에서 함수를 실행할지 알려줍니다.154* **`register.js`**: 훅 모듈이라고 하는 [사용자의 코드](/docs/ko/plugins/mods/create#write-a-mod-yourself)입니다. 어떤 이벤트에서 함수를 실행할지 Claude Code에 알려 줍니다.
135 155
136이것은 완전한 `register.js`입니다. Claude가 수행하는 도구 호출을 세고 Claude가 작업하는 동안 스피너 옆에 개수를 표시합니다(예: `Thinking · tool calls: 3…`).156다음은 완전한 `register.js`입니다. Claude가 수행하는 도구 호출 수를 세고, Claude가 작업하는 동안 `Thinking · tool calls: 3…`처럼 스피너 옆에 그 수를 표시합니다.
137 157
138```javascript hooks/register.js theme={null}158```javascript hooks/register.js theme={null}
139// 아래의 두 hooks로 공유되는 개수159// The count, shared by the two hooks below
140let calls = 0160let calls = 0
141 161
142// Claude Code는 mod가 로드될 때 이것을 한 번 호출합니다162// Claude Code calls this once when the mod loads
143export function register(on) {163export function register(on) {
144 // Claude가 도구를 사용하려고 할 때마다 실행됩니다164 // Runs each time Claude is about to use a tool
145 on('tool.call', async ($, e, next) => {165 on('tool.call', async ($, e, next) => {
146 calls += 1166 calls += 1
147 // Claude Code에 인터페이스를 다시 그리도록 요청하여 새 개수가 표시되도록 합니다167 // Ask Claude Code to draw the interface again, so the new count shows
148 $.ui.invalidate('ui.render')168 $.ui.invalidate('ui.render')
149 // 도구가 평소대로 실행되도록 합니다169 // Let the tool run as usual
150 return next(e)170 return next(e)
151 })171 })
152 172
153 // Claude Code가 스피너를 그릴 때마다 실행됩니다173 // Runs each time Claude Code draws the spinner
154 on('ui.render', { component: 'Spinner' }, async ($, e, next) => {174 on('ui.render', { component: 'Spinner' }, async ($, e, next) => {
155 // Claude Code의 스피너를 유지하고 단어 뒤에 개수를 추가합니다175 // Keep Claude Code's spinner, with the count added after its word
156 return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })176 return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })
157 })177 })
158}178}
159```179```
160 180
161파일은 두 개의 hooks를 등록하고 둘 다 맨 위의 `calls` 변수를 사용합니다:181이 파일은 두 개의 훅을 등록하며, 두 훅 모두 맨 위의 `calls` 변수를 사용합니다.
162 182
163* **[`tool.call`](/docs/ko/plugins/mods/reference#tools) hook**은 Claude가 도구를 사용하려고 할 때마다 실행됩니다. `calls`에 1을 더하고, Claude Code에 인터페이스를 다시 그리도록 요청하고, 도구가 평소대로 실행되도록 합니다.183* **[`tool.call`](/docs/ko/plugins/mods/reference#tools) 훅**은 Claude가 도구를 사용하려고 할 때마다 실행됩니다. `calls`에 1을 더하고, Claude Code에 인터페이스를 다시 그리도록 요청한 다음, 도구가 평소처럼 실행되도록 합니다.
164* **[`ui.render`](/docs/ko/plugins/mods/reference#interface) hook**은 Claude Code가 스피너를 그릴 때마다 실행됩니다. Claude Code의 스피너를 유지하고 단어 뒤에 개수를 추가합니다.184* **[`ui.render`](/docs/ko/plugins/mods/reference#interface) 훅**은 Claude Code가 스피너를 그릴 때마다 실행됩니다. Claude Code 자체의 스피너를 유지하고 단어 뒤에 수를 추가합니다.
165 185
166이 기록은 mod가 작동하는 것을 보여줍니다. 프롬프트 상자 위의 스피너 줄을 보세요. Claude가 디렉토리를 나열하고 두 파일을 읽는 동안 `Thinking · tool calls: 1…`, 그 다음 `2…`, 그 다음 `3…`을 읽습니다.186다음 녹화 영상은 mod가 작동하는 모습을 보여 줍니다. 프롬프트 상자 위의 스피너 줄을 확인하십시오. Claude가 디렉터리 목록을 조회하고 두 파일을 읽는 동안 `Thinking · tool calls: 1…`, `2…`, `3…` 순으로 표시됩니다.
167 187
168<Frame>188<Frame>
169 <video autoPlay muted loop playsInline controls className="w-full dark:hidden" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-overview-light.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=00a18aa0743b59a700f0275ce226e6d1" aria-label="Claude Code 세션에서 '여기 파일을 나열하고 README를 읽기' 프롬프트가 입력되고 전송됩니다. Claude가 작업하는 동안 스피너는 '생각 중 · tool calls: 1', 그 다음 2, 그 다음 3을 읽습니다. Claude가 파일을 나열하고 두 개를 읽습니다." data-path="images/mods-overview-light.mp4" />189 <video autoPlay muted loop playsInline controls className="w-full dark:hidden" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-overview-light.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=00a18aa0743b59a700f0275ce226e6d1" aria-label="Claude Code 세션에서 'list the files here and read the README' 프롬프트를 입력하고 전송합니다. Claude가 작업하는 동안 Claude가 파일 목록을 조회하고 그중 두 파일을 읽으면서 스피너가 'Thinking · tool calls: 1', 2, 3 순으로 표시됩니다." data-path="images/mods-overview-light.mp4" />
170 190
171 <video autoPlay muted loop playsInline controls className="w-full hidden dark:block" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-overview-dark.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=d5223da2fef16ceaaa214a36d72c0536" aria-label="Claude Code 세션에서 '여기 파일을 나열하고 README를 읽기' 프롬프트가 입력되고 전송됩니다. Claude가 작업하는 동안 스피너는 '생각 중 · tool calls: 1', 그 다음 2, 그 다음 3을 읽습니다. Claude가 파일을 나열하고 두 개를 읽습니다." data-path="images/mods-overview-dark.mp4" />191 <video autoPlay muted loop playsInline controls className="w-full hidden dark:block" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-overview-dark.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=d5223da2fef16ceaaa214a36d72c0536" aria-label="Claude Code 세션에서 'list the files here and read the README' 프롬프트를 입력하고 전송합니다. Claude가 작업하는 동안 Claude가 파일 목록을 조회하고 그중 두 파일을 읽으면서 스피너가 'Thinking · tool calls: 1', 2, 3 순으로 표시됩니다." data-path="images/mods-overview-dark.mp4" />
172</Frame>192</Frame>
173 193
174<h3 id="what-a-hook-can-do-with-an-event">194<h3 id="what-a-hook-can-do-with-an-event">
175 hook이 이벤트로 할 수 있는 것195 훅이 이벤트로 할 수 있는 작업
176</h3>196</h3>
177 197
178Claude Code는 이벤트에 작용하기 전에 hook을 실행하므로 hook이 다음에 일어날 일을 결정합니다. 세 가지 선택이 있습니다:198Claude Code는 이벤트에 따라 동작하기 전에 훅을 실행하므로, 다음에 일어날 일은 훅이 결정합니다. 훅은 다음을 수행할 수 있습니다.
179 199
180* **관찰**: 일어나는 일을 기록하고 예제의 `tool.call` hook처럼 변경되지 않은 상태로 계속합니다.200* **관찰**: 예제의 `tool.call` 훅처럼 일어나는 일을 기록하고 변경 없이 계속 진행되도록 합니다
181* **다시 작성**: 이벤트를 변경한 후 계속합니다. `ui.render` hook이 스피너에 개수를 추가할 때처럼 합니다.201* **재작성**: 스피너에 수를 추가하는 `ui.render` 훅처럼 이벤트가 계속 진행되기 전에 이벤트를 변경합니다
182* **답변**: 이벤트를 자체적으로 처리하여 일반적인 동작이 실행되지 않습니다(예: 명령 거부).202* **응답**: 명령을 거부하는 경우처럼 이벤트를 직접 처리하여 일반적인 동작이 실행되지 않도록 합니다
183 203
184자신의 코드 외부에서 무언가를 수행하려면(예: 그리기, 명령 추가, 모델 호출, 파일 읽기, 프로세스 시작 또는 네트워크 요청), hook은 mods API를 호출합니다. hook은 이러한 작업을 수행할 다른 방법이 없으므로 Claude Code가 [mod를 설치하기 전에 mod가 수행하는 작업을 나열](#list-what-a-mod-does-before-you-install-one)할 수 있습니다.204그리기, 명령 추가, 모델 호출, 파일 읽기, 프로세스 시작, 네트워크 요청 등 자체 코드 밖의 작업을 하려면 훅은 mods API를 호출합니다. 훅에는 이러한 작업을 수행할 다른 방법이 없으므로, Claude Code는 설치 전에 [mod가 수행하는 작업을 나열](#list-what-a-mod-does-before-you-install-one)할 수 있습니다.
185 205
186각 선택 뒤의 코드는 [이벤트에 반응](/docs/ko/plugins/mods/events#how-a-hook-handles-an-event)을 참조합니다. hook이 호출할 수 있는 것은 [mods API 사용](/docs/ko/plugins/mods/api)을 참조합니다.206각 선택지에 해당하는 코드는 [이벤트에 반응하기](/docs/ko/plugins/mods/events#how-a-hook-handles-an-event)를 참조하십시오. 훅이 호출할 수 있는 항목은 [mods API 사용하기](/docs/ko/plugins/mods/api)를 참조하십시오.
187 207
188<h3 id="where-mods-run">208<h3 id="where-mods-run">
189 mods가 실행되는 위치209 mod가 실행되는 위치
190</h3>210</h3>
191 211
192mod의 hooks는 플러그인을 로드하는 모든 종류의 세션에서 실행됩니다. 그리기는 더 좁습니다. 터미널과 Desktop 앱만 mod의 창, 밴드, 교체된 행을 표시합니다. 이 표는 Claude Code를 실행할 수 있는 각 위치를 나열합니다:212mod의 훅은 플러그인을 로드하는 모든 종류의 세션에서 실행됩니다. 그리기는 범위가 더 좁습니다. 터미널과 Desktop 앱만 mod의 창, 밴드, 대체된 행을 표시합니다. 다음 표는 Claude Code를 실행할 수 있는 각 위치를 나열합니다.
193 213
194| Claude Code를 실행하는 위치 | Hooks 실행 | mod가 그리는 것이 나타나는 위치 |214| Claude Code를 실행하는 위치 | 훅 실행 여부 | mod가 그린 내용 표시 여부 |
195| :- | :- | :- |215| :- | :- | :- |
196| 터미널의 `claude`, 편집기의 통합 터미널 및 JetBrains 플러그인 포함 | 예 | 예 |216| 에디터의 통합 터미널과 JetBrains 플러그인을 포함한 터미널의 `claude` | 예 | 예 |
197| Desktop 앱의 Code 탭, WSL 세션 제외 | 예 | 예, [elements 표](/docs/ko/plugins/mods/reference#elements)가 터미널 전용으로 표시하는 요소 제외 |217| Desktop 앱의 Code 탭(WSL 세션 제외) | 예 | 예. 단, [요소 표](/docs/ko/plugins/mods/reference#elements)에서 터미널 전용으로 표시된 요소는 제외 |
198| Desktop 앱의 [WSL 세션](/docs/ko/desktop-wsl) | 아니요, WSL 세션에서는 플러그인을 사용할 수 없기 때문입니다 | 아니요 |218| Desktop 앱의 [WSL 세션](/docs/ko/desktop-wsl) | 아니요. WSL 세션에서는 플러그인을 사용할 수 없기 때문입니다 | 아니요 |
199| VS Code 확장의 채팅 패널 | 예 | 아니요 |219| VS Code 확장 프로그램의 채팅 패널 | 예 | 아니요 |
200| `claude -p` 및 [Agent SDK](/docs/ko/agent-sdk/overview) | 예 | 아니요 |220| `claude -p` 및 [Agent SDK](/docs/ko/agent-sdk/overview) | 예 | 아니요 |
201| claude.ai 또는 모바일 앱에서 [Remote Control](/docs/ko/remote-control) | 예, 머신의 세션에서 | 머신의 터미널에서 |221| claude.ai 또는 모바일 앱에서의 [Remote Control](/docs/ko/remote-control) | 예. 사용자 컴퓨터의 세션에서 실행됩니다 | 사용자 컴퓨터의 터미널에서 표시 |
202| [클라우드 세션](/docs/ko/claude-code-on-the-web) | 예, [클라우드 세션에 도달하는](/docs/ko/cloud-environments#what-carries-over-from-your-setup) 플러그인의 경우 | 아니요 |222| [클라우드 세션](/docs/ko/claude-code-on-the-web) | 예. [클라우드 세션에 전달되는](/docs/ko/cloud-environments#what-carries-over-from-your-setup) 플러그인의 경우 | 아니요 |
203 223
204그리는 mod는 실행 중인 앱을 확인하고 아무것도 그리지 않는 대화 또는 명령의 텍스트 응답으로 폴백할 수 있습니다.224그리기를 수행하는 mod는 자신이 어떤 앱에서 실행 중인지 확인하고, 아무것도 그려지지 않는 곳에서는 트랜스크립트의 한 줄이나 명령의 텍스트 응답으로 대체할 수 있습니다.
205 225
206<h2 id="control-mods-for-your-organization">226<h2 id="control-mods-for-your-organization">
207 조직의 mods 제어227 조직의 mod 제어
208</h2>228</h2>
209 229
210관리자는 [관리 설정](/docs/ko/managed-settings)을 통해 mods가 실행되는지 여부와 어떤 것이 실행되는지 결정합니다. [조직의 mods 관리](/docs/ko/plugins/mods/admin)는 기본적으로 일어나는 일, mod를 검토하는 방법, mod로 정책을 적용하는 방법을 다룹니다.230관리자는 [관리형 설정](/docs/ko/managed-settings)을 통해 mod의 실행 여부와 실행할 mod를 결정합니다. [조직의 mod 관리](/docs/ko/plugins/mods/admin)에서는 기본 동작, mod를 검토하는 방법, 그리고 직접 만든 mod로 정책을 적용하는 방법을 다룹니다.
211 231
212<h2 id="compare-mods-settings-hooks-skills-and-mcp-servers">232<h2 id="compare-mods-settings-hooks-skills-and-mcp-servers">
213 mods, 설정 hooks, skills, MCP 서버 비교233 mod, 설정 훅, 스킬, MCP 서버 비교
214</h2>234</h2>
215 235
216Mods, 설정 hooks, skills, MCP 서버는 겹칩니다. 이 표는 각각이 무엇이고 언제 선택할지 보여줍니다.236mod, 설정 훅, 스킬, MCP 서버는 서로 겹치는 부분이 있습니다. 다음 표는 각각이 무엇이며 언제 선택해야 하는지 보여 줍니다.
217 237
218| | Mod | 설정 hook | Skill | MCP 서버 |238| | Mod | 설정 훅 | 스킬 | MCP 서버 |
219| :- | :- | :- | :- | :- |239| :- | :- | :- | :- | :- |
220| 무엇인가 | Claude Code가 자신의 프로세스에서 호출하는 플러그인의 함수 | Claude Code가 라이프사이클 이벤트에서 실행하는 셸 명령, HTTP 요청 또는 프롬프트 | Claude가 읽는 `SKILL.md` 파일의 지침 | Claude에 도구를 제공하는 외부 프로세스 또는 서비스 |240| 정의 | Claude Code가 자체 프로세스에서 호출하는 플러그인 내 함수 | Claude Code가 라이프사이클 이벤트에서 실행하는 셸 명령, HTTP 요청 또는 프롬프트 | Claude가 읽는 지침이 담긴 `SKILL.md` 파일 | Claude에 도구를 제공하는 외부 프로세스 또는 서비스 |
221| 변경할 수 있는 것 | 도구 호출, 프롬프트, 명령, 턴, 인터페이스가 그리는 것 | 도구 호출 또는 프롬프트가 진행되는지 여부, 도구 호출의 인수 및 결과, Claude를 위해 추가된 컨텍스트 | Claude가 알고 수행하는 것 | Claude가 가진 도구 |241| 변경할 수 있는 대상 | 도구 호출, 프롬프트, 명령, 턴, 인터페이스에 그려지는 내용 | 도구 호출이나 프롬프트의 진행 여부, 도구 호출의 인수와 결과, Claude에 추가되는 컨텍스트 | Claude가 알고 수행하는 것 | Claude가 사용할 수 있는 도구 |
222| 인터페이스에 그릴 수 있는가 | 예 | 아니요 | 아니요 | 아니요 |242| 인터페이스에 그릴 수 있는지 여부 | 예 | 아니요 | 아니요 | 아니요 |
223| 작성하는 것 | JavaScript 또는 TypeScript | 스크립트 및 `settings.json` 항목 | Markdown | 모든 언어의 서버 |243| 작성하는 것 | JavaScript 또는 TypeScript | 스크립트와 `settings.json` 항목 | Markdown | 모든 언어로 작성된 서버 |
224| 선택하는 시기 | 창, 프롬프트 위의 밴드, 사용자 정의 명령 또는 이벤트를 다시 작성하려는 경우 | 이미 가지고 있는 스크립트로 이벤트를 차단, 허용 또는 로깅하려는 경우 | 같은 지침을 채팅에 계속 붙여넣는 경우 | Claude가 외부 시스템에 도달해야 하는 경우 |244| 선택해야 하는 경우 | 창, 프롬프트 위의 띠, 사용자 지정 명령이 필요하거나 이벤트를 재작성하려는 경우 | 이미 가지고 있는 스크립트로 이벤트를 차단, 허용하거나 로그에 기록하려는 경우 | 같은 지침을 채팅에 반복해서 붙여 넣고 있는 경우 | Claude가 외부 시스템에 접근해야 하는 경우 |
225 245
226각각의 다른 것은 자신의 페이지를 가집니다: [Hooks](/docs/ko/hooks), [Skills](/docs/ko/skills), [MCP](/docs/ko/mcp). 플러그인은 네 가지를 모두 보유할 수 있으므로 mod는 skill 및 MCP 서버와 동일한 플러그인에 포함될 수 있습니다.246나머지 각 항목에는 별도의 페이지가 있습니다: [훅](/docs/ko/hooks), [스킬](/docs/ko/skills), [MCP](/docs/ko/mcp). 하나의 플러그인에 이 모두를 담을 수 있으므로, mod를 스킬 및 MCP 서버와 같은 플러그인에 포함하여 배포할 수 있습니다.
227 247
228<h2 id="mods-built-into-claude-code">248<h2 id="mods-built-into-claude-code">
229 Claude Code에 내장된 Mods249 Claude Code에 내장된 mod
230</h2>250</h2>
231 251
232Claude Code의 일부 기능은 mods입니다. 세션이 가진 것을 보려면 Claude Code 프롬프트에서 `/plugin`을 실행하고 **설치됨** 탭으로 이동하여 **내장**에 나열된 것을 확인합니다. 내장 mod를 업데이트하거나 제거할 수 없으며, 표의 마지막 열은 각각을 끄는 방법을 설명합니다. [`mods active` 줄](#see-which-mods-a-session-loaded)은 내장 mods를 제외합니다.252Claude Code의 일부 기능은 그 자체가 mod입니다. 현재 세션에 있는 mod를 확인하려면 Claude Code 프롬프트에서 `/plugin`을 실행하고 **Installed** 탭으로 이동합니다. 이 탭의 **Built-in** 아래에 해당 mod가 나열됩니다. 내장 mod는 업데이트하거나 제거할 수 없으며, 각 mod를 끄는 방법은 표의 마지막 열에 나와 있습니다. [`mods active` 줄](#see-which-mods-a-session-loaded)에는 내장 mod가 표시되지 않습니다.
233 253
234이 표는 `/plugin`이 표시하는 이름으로 각 항목을 나열합니다:254이 표는 각 항목을 `/plugin`에 표시되는 이름으로 나열합니다.
235 255
236| `/plugin`의 이름 | 수행하는 것 | 켜져 있는 위치 | 끄는 방법 |256| `/plugin`에 표시되는 이름 | 기능 | 활성화되는 위치 | 끄는 방법 |
237| :- | :- | :- | :- |257| :- | :- | :- | :- |
238| `cc-plugin-agents-md` | `AGENTS.md`를 프로젝트 지침으로 로드합니다 | 모든 세션, [AGENTS.md를 읽을 수 없는 것](/docs/ko/memory#when-agents-md-support-is-unavailable) 제외 | `/plugin`에서 비활성화하거나 [로드되는 지침 파일 선택](/docs/ko/memory#choose-which-instruction-files-load) |258| `cc-plugin-agents-md` | `AGENTS.md`를 프로젝트 지침으로 로드합니다 | [`AGENTS.md`를 읽을 수 없는 세션](/docs/ko/memory#when-agents-md-support-is-unavailable)을 제외한 모든 세션 | `/plugin`에서 비활성화하거나 [로드할 지침 파일을 선택](/docs/ko/memory#choose-which-instruction-files-load)합니다 |
239| `cc-plugin-diff` | [`/diff`](/docs/ko/interactive-mode#review-changes-with-%2Fdiff)를 인수하고 창을 그립니다 | 대화형 터미널 세션 | `/plugin`에서 비활성화합니다. `/diff`는 유지되고 Claude Code의 내장 버전의 명령이 답변합니다. |259| `cc-plugin-diff` | [`/diff`](/docs/ko/interactive-mode#review-changes-with-%2Fdiff)를 대신 처리하고 해당 창을 그립니다 | 대화형 터미널 세션 | `/plugin`에서 비활성화합니다. `/diff`는 그대로 남으며, Claude Code에 내장된 버전의 명령이 이를 처리합니다. |
240| `cc-plugin-plugin-authoring` | Claude에 mods를 작성하기 위한 [`plugin-authoring` skill](/docs/ko/plugins/mods/create#ask-claude-for-a-mod)을 제공합니다. skill을 보유하고 mod 코드는 없습니다. | Anthropic이 설치된 mods를 원격으로 끄지 않은 경우 | `/plugin`에서 비활성화합니다 |260| `cc-plugin-plugin-authoring` | Claude에게 mod 작성을 위한 [`plugin-authoring` 스킬](/docs/ko/plugins/mods/create#ask-claude-for-a-mod)을 제공합니다. 스킬만 포함하며 mod 코드는 없습니다. | Anthropic이 설치된 mod를 원격으로 끈 경우를 제외한 모든 곳 | `/plugin`에서 비활성화합니다 |
241| `cc-plugin-sec-default` | 사용자가 설치한 mods로부터 조직이 관리하는 것을 보호합니다 | [가드가 로드되는 위치](/docs/ko/plugins/mods/admin#know-what-happens-by-default) | 할 수 없습니다. 관리자가 [순서를 설정](/docs/ko/plugins/mods/admin#install-your-organizations-mods)합니다 |261| `cc-plugin-sec-default` | 사용자가 설치하는 mod로부터 조직이 관리하는 항목을 보호합니다 | [보호 기능이 로드되는 위치](/docs/ko/plugins/mods/admin#know-what-happens-by-default) | 끌 수 없습니다. 관리자가 관리형 설정에서 [순서를 지정](/docs/ko/plugins/mods/admin#install-your-organizations-mods)합니다 |
242| `cc-plugin-telemetry` | Claude Code 및 내장 mods가 로깅하는 분석 기록을 보냅니다 | Claude Code의 자체 분석이 켜져 있는 모든 곳 | `/plugin`에서 비활성화하거나 분석을 끕니다(예: [`DISABLE_TELEMETRY`](/docs/ko/env-vars) 사용) |262| `cc-plugin-telemetry` | Claude Code와 내장 mod가 로그에 기록하는 분석 레코드를 전송합니다 | Claude Code 자체 분석이 켜져 있는 모든 곳 | `/plugin`에서 비활성화하거나, 예를 들어 [`DISABLE_TELEMETRY`](/docs/ko/env-vars)로 분석을 끕니다 |
243| `cc-plugin-you-should-know` | Claude가 더 긴 작업을 수행하는 동안 당신을 지켜보는 측면 에이전트를 실행합니다. 놓칠 수 있는 가치 있는 정보를 찾으면 프롬프트 위에 메모를 표시합니다. | 기본적으로 비활성화됩니다. 조직에서 사용 가능한 경우 `/plugin` -> **설치됨** -> **비활성화된 항목 표시**에 나열됩니다. [`/plugin enable cc-plugin-you-should-know@builtin`](/docs/ko/plugins/cli-reference#plugin-in-a-session)으로 활성화합니다. | `/plugin`에서 비활성화합니다 |263| `cc-plugin-you-should-know` | Claude가 긴 작업을 수행하는 동안 사용자를 대신해 상황을 살피는 보조 에이전트를 실행합니다. 사용자가 놓칠 수 있는 알아둘 만한 내용을 발견하면 프롬프트 위에 알림을 표시합니다. | 기본적으로 비활성화되어 있습니다. 조직에서 사용 가능한 경우 `/plugin` -> **Installed** -> **Show disabled**에 나열됩니다. [`/plugin enable cc-plugin-you-should-know@builtin`](/docs/ko/plugins/cli-reference#plugin-in-a-session)으로 활성화합니다. | `/plugin`에서 비활성화합니다 |
244 264
245설치된 mods를 중지하는 설정 및 플래그(예: `disableAllHooks`, `--bare`, `--safe-mode`)는 내장 mods를 중지하지 않습니다.265`disableAllHooks`, `--bare`, `--safe-mode`처럼 설치된 mod를 중지하는 설정과 플래그는 내장 mod를 중지하지 않습니다.
246 266
247<h3 id="read-the-source-of-built-in-mods">267<h3 id="read-the-source-of-built-in-mods">
248 내장 mods의 소스 읽기268 내장 mod의 소스 읽기
249</h3>269</h3>
250 270
251이러한 mods의 소스는 [Claude Code 저장소의 `mods` 디렉토리](https://github.com/anthropics/claude-code/tree/main/mods)에서 공개적으로 사용 가능합니다. 각각은 hooks 모듈 및 테스트가 있는 완전한 플러그인입니다:271이러한 mod 중 일부의 소스는 [Claude Code 저장소의 `mods` 디렉터리](https://github.com/anthropics/claude-code/tree/main/mods)에 공개되어 있습니다. 각각은 훅 모듈과 테스트를 포함한 완전한 플러그인입니다.
252 272
253* [`diff`](https://github.com/anthropics/claude-code/tree/main/mods/diff): `/diff` 창, 키보드 작업에 바인딩된 버튼 및 mod가 처리하는 스크롤링273* [`diff`](https://github.com/anthropics/claude-code/tree/main/mods/diff): 키보드 동작에 바인딩된 버튼과 mod가 자체적으로 처리하는 스크롤을 갖춘 `/diff` 창
254* [`agents-md`](https://github.com/anthropics/claude-code/tree/main/mods/agents-md): `AGENTS.md`를 프로젝트 지침으로 로드, [`userConfig`](/docs/ko/plugins/components#user-configuration) 옵션 포함274* [`agents-md`](https://github.com/anthropics/claude-code/tree/main/mods/agents-md): [`userConfig`](/docs/ko/plugins/components#user-configuration) 옵션과 함께 `AGENTS.md`를 프로젝트 지침으로 로드
255* [`sec-default`](https://github.com/anthropics/claude-code/tree/main/mods/sec-default): [기본적으로 일어나는 일 알기](/docs/ko/plugins/mods/admin#know-what-happens-by-default)에 설명된 가드, mod가 정책을 적용하는 모델275* [`sec-default`](https://github.com/anthropics/claude-code/tree/main/mods/sec-default): [기본 동작 파악하기](/docs/ko/plugins/mods/admin#know-what-happens-by-default)에서 설명하는 보호 기능으로, 정책을 적용하는 mod의 모델
256* [`telemetry`](https://github.com/anthropics/claude-code/tree/main/mods/telemetry): 다른 mods가 호출할 수 있는 메서드를 추가하고 유형을 제공합니다276* [`telemetry`](https://github.com/anthropics/claude-code/tree/main/mods/telemetry): 다른 mod가 호출할 수 있는 메서드를 추가하고 해당 타입을 함께 제공
257 277
258<h2 id="next-steps">278<h2 id="next-steps">
259 다음 단계279 다음 단계
260</h2>280</h2>
261 281
262* [mod 만들기](/docs/ko/plugins/mods/create): 도구 호출을 세고, 스피너 옆에 개수를 표시하고, 명령을 추가하는 것을 만들고, 편집 및 다시 로드 루프를 배웁니다.282* [mod 만들기](/docs/ko/plugins/mods/create): 도구 호출 횟수를 세어 스피너 옆에 표시하고 명령을 추가하는 mod를 만들면서 편집 및 다시 로드 루프를 알아봅니다
263* [인터페이스에 그리기](/docs/ko/plugins/mods/interface): 창, 프롬프트 위의 밴드, 버튼, 텍스트 필드, 상태283* [인터페이스에 그리기](/docs/ko/plugins/mods/interface): 창, 프롬프트 위의 밴드, 버튼, 텍스트 필드, 상태
264* [이벤트에 반응](/docs/ko/plugins/mods/events): 도구 호출, 프롬프트, 턴, mods가 실행되는 순서284* [이벤트에 반응하기](/docs/ko/plugins/mods/events): 도구 호출, 프롬프트, 턴, mod가 실행되는 순서
265* [mods API 사용](/docs/ko/plugins/mods/api): 명령, 도구, 모델 호출, 타이머, 파일285* [mods API 사용하기](/docs/ko/plugins/mods/api): 명령, 도구, 모델 호출, 타이머, 파일
266* [mod 테스트](/docs/ko/plugins/mods/test): 세션 없이 실행되는 자동화된 테스트286* [mod 테스트하기](/docs/ko/plugins/mods/test): 세션 없이 실행되는 자동화된 테스트
267* [mod 문제 해결](/docs/ko/plugins/mods/troubleshoot): mod가 아무것도 하지 않는 이유, 디버그 로그287* [mod 문제 해결하기](/docs/ko/plugins/mods/troubleshoot): mod가 아무 동작도 하지 않는 이유와 디버그 로그
268* [조직의 mods 관리](/docs/ko/plugins/mods/admin): 기본값, 관리 설정, mod 검토, 정책 mods288* [조직의 mod 관리하기](/docs/ko/plugins/mods/admin): 기본값, 관리형 설정, mod 검토, 정책 mod
269* [Mods 참조](/docs/ko/plugins/mods/reference): 모든 이벤트, 메서드, 요소, 제한289* [mods 참조](/docs/ko/plugins/mods/reference): 이벤트, 메서드, 요소, 제한