플러그인 대 독립 실행형 구성 사용 시기
Claude Code는 사용자 정의 skills, agents, hooks를 추가하는 두 가지 방법을 지원합니다:| 접근 방식 | Skill 이름 | 최적 용도 |
|---|---|---|
독립 실행형 (.claude/ 디렉토리) | /hello | 개인 워크플로우, 프로젝트별 사용자 정의, 빠른 실험 |
플러그인 (.claude-plugin/plugin.json이 있는 디렉토리) | /plugin-name:hello | 팀원과 공유, 커뮤니티에 배포, 버전 관리 릴리스, 프로젝트 간 재사용 |
- 단일 프로젝트에 대해 Claude Code를 사용자 정의하는 경우
- 구성이 개인적이며 공유할 필요가 없는 경우
- skills 또는 hooks를 패키징하기 전에 실험하는 경우
/hello또는/deploy와 같은 짧은 skill 이름을 원하는 경우
- 팀 또는 커뮤니티와 기능을 공유하려는 경우
- 여러 프로젝트에서 동일한 skills/agents가 필요한 경우
- 확장 기능에 대한 버전 제어 및 쉬운 업데이트를 원하는 경우
- 마켓플레이스를 통해 배포하는 경우
/my-plugin:hello와 같은 네임스페이스 skills를 사용해도 괜찮은 경우 (네임스페이싱은 플러그인 간 충돌을 방지합니다)
빠른 시작
이 빠른 시작은 사용자 정의 skill을 사용하여 플러그인을 만드는 과정을 안내합니다. 매니페스트(플러그인을 정의하는 구성 파일)를 만들고, skill을 추가하고,--plugin-dir 플래그를 사용하여 로컬에서 테스트합니다.
필수 조건
- Claude Code 설치 및 인증
- Claude Code 버전 1.0.33 이상 (
claude --version을 실행하여 확인)
/plugin 명령이 보이지 않으면 Claude Code를 최신 버전으로 업데이트하세요. 업그레이드 지침은 문제 해결을 참조하세요.첫 번째 플러그인 만들기
플러그인 매니페스트 만들기
.claude-plugin/plugin.json의 매니페스트 파일은 플러그인의 정체성을 정의합니다: 이름, 설명, 버전. Claude Code는 이 메타데이터를 사용하여 플러그인 관리자에서 플러그인을 표시합니다.플러그인 폴더 내에 .claude-plugin 디렉토리를 만듭니다:my-first-plugin/.claude-plugin/plugin.json을 만듭니다:my-first-plugin/.claude-plugin/plugin.json
| 필드 | 목적 |
|---|---|
name | 고유 식별자 및 skill 네임스페이스. Skills는 이것으로 접두사가 붙습니다 (예: /my-first-plugin:hello). |
description | 플러그인을 검색하거나 설치할 때 플러그인 관리자에 표시됩니다. |
version | 의미 있는 버전 관리를 사용하여 릴리스를 추적합니다. |
author | 선택 사항. 속성에 유용합니다. |
homepage, repository, license와 같은 추가 필드는 전체 매니페스트 스키마를 참조하세요.Skill 추가
Skills는 그런 다음 다음 내용으로
skills/ 디렉토리에 있습니다. 각 skill은 SKILL.md 파일을 포함하는 폴더입니다. 폴더 이름은 skill 이름이 되며, 플러그인의 네임스페이스가 접두사로 붙습니다 (my-first-plugin이라는 플러그인의 hello/는 /my-first-plugin:hello를 만듭니다).플러그인 폴더에 skill 디렉토리를 만듭니다:my-first-plugin/skills/hello/SKILL.md를 만듭니다:my-first-plugin/skills/hello/SKILL.md
플러그인 테스트
--plugin-dir 플래그를 사용하여 Claude Code를 실행하여 플러그인을 로드합니다:/help를 실행하여 플러그인 네임스페이스 아래에 나열된 skill을 확인하세요.네임스페이싱이 필요한 이유? 플러그인 skills는 항상 네임스페이스가 지정됩니다 (예:
/greet:hello). 여러 플러그인이 동일한 이름의 skills를 가질 때 충돌을 방지합니다.네임스페이스 접두사를 변경하려면 plugin.json의 name 필드를 업데이트하세요.Skill 인수 추가
사용자 입력을 수락하여 skill을 동적으로 만듭니다. Claude가 이름으로 인사할 것입니다. skills에 인수를 전달하는 방법에 대한 자세한 내용은 Skills를 참조하세요.
$ARGUMENTS 자리 표시자는 사용자가 skill 이름 뒤에 제공하는 모든 텍스트를 캡처합니다.SKILL.md 파일을 업데이트합니다:my-first-plugin/skills/hello/SKILL.md
/reload-plugins를 실행하여 변경 사항을 적용한 다음 이름으로 skill을 시도해보세요:- 플러그인 매니페스트 (
.claude-plugin/plugin.json): 플러그인의 메타데이터를 설명합니다 - Skills 디렉토리 (
skills/): 사용자 정의 skills를 포함합니다 - Skill 인수 (
$ARGUMENTS): 동적 동작을 위해 사용자 입력을 캡처합니다
플러그인 구조 개요
skills를 사용하여 플러그인을 만들었지만, 플러그인에는 훨씬 더 많은 것이 포함될 수 있습니다: 사용자 정의 agents, hooks, MCP servers, LSP servers.| 디렉토리 | 위치 | 목적 |
|---|---|---|
.claude-plugin/ | 플러그인 루트 | plugin.json 매니페스트를 포함합니다 (구성 요소가 기본 위치를 사용하는 경우 선택 사항) |
commands/ | 플러그인 루트 | Markdown 파일로서의 Skills |
agents/ | 플러그인 루트 | 사용자 정의 agent 정의 |
skills/ | 플러그인 루트 | SKILL.md 파일이 있는 Agent Skills |
hooks/ | 플러그인 루트 | hooks.json의 이벤트 핸들러 |
.mcp.json | 플러그인 루트 | MCP server 구성 |
.lsp.json | 플러그인 루트 | 코드 인텔리전스를 위한 LSP server 구성 |
settings.json | 플러그인 루트 | 플러그인이 활성화될 때 적용되는 기본 설정 |
다음 단계: 더 많은 기능을 추가할 준비가 되셨나요? 더 복잡한 플러그인 개발로 이동하여 agents, hooks, MCP servers, LSP servers를 추가하세요. 모든 플러그인 구성 요소의 완전한 기술 사양은 플러그인 참조를 참조하세요.
더 복잡한 플러그인 개발
기본 플러그인에 익숙해지면 더 정교한 확장 기능을 만들 수 있습니다.플러그인에 Skills 추가
플러그인은 Claude의 기능을 확장하기 위해 Agent Skills를 포함할 수 있습니다. Skills는 모델 호출입니다: Claude는 작업 컨텍스트에 따라 자동으로 사용합니다. 플러그인 루트에SKILL.md 파일을 포함하는 Skill 폴더가 있는 skills/ 디렉토리를 추가합니다:
SKILL.md는 name 및 description 필드가 있는 프론트매터와 그 뒤에 지침이 필요합니다:
/reload-plugins를 실행하여 Skills를 로드합니다. 점진적 공개 및 도구 제한을 포함한 완전한 Skill 작성 지침은 Agent Skills를 참조하세요.
플러그인에 LSP servers 추가
LSP (Language Server Protocol) 플러그인은 Claude에 실시간 코드 인텔리전스를 제공합니다. 아직 공식 LSP 플러그인이 없는 언어를 지원해야 하는 경우 플러그인에.lsp.json 파일을 추가하여 자신의 플러그인을 만들 수 있습니다:
.lsp.json
플러그인과 함께 기본 설정 제공
플러그인은 플러그인 루트에settings.json 파일을 포함하여 플러그인이 활성화될 때 기본 구성을 적용할 수 있습니다. 현재 agent 키만 지원됩니다.
agent를 설정하면 플러그인의 사용자 정의 agents 중 하나를 주 스레드로 활성화하여 시스템 프롬프트, 도구 제한, 모델을 적용합니다. 이를 통해 플러그인은 활성화될 때 Claude Code의 동작 방식을 기본적으로 변경할 수 있습니다.
settings.json
agents/ 디렉토리에 정의된 security-reviewer agent를 활성화합니다. settings.json의 설정은 plugin.json에 선언된 settings보다 우선합니다. 알 수 없는 키는 자동으로 무시됩니다.
복잡한 플러그인 구성
많은 구성 요소가 있는 플러그인의 경우 기능별로 디렉토리 구조를 구성합니다. 완전한 디렉토리 레이아웃 및 구성 패턴은 플러그인 디렉토리 구조를 참조하세요.플러그인을 로컬에서 테스트
개발 중에 플러그인을 테스트하려면--plugin-dir 플래그를 사용합니다. 이는 설치를 요구하지 않고 플러그인을 직접 로드합니다.
--plugin-dir 플러그인이 설치된 마켓플레이스 플러그인과 동일한 이름을 가진 경우 로컬 복사본이 해당 세션에 우선합니다. 이를 통해 먼저 제거하지 않고도 이미 설치한 플러그인의 변경 사항을 테스트할 수 있습니다. 관리 설정에 의해 강제로 활성화된 마켓플레이스 플러그인은 유일한 예외이며 재정의할 수 없습니다.
플러그인을 변경할 때 /reload-plugins를 실행하여 다시 시작하지 않고 업데이트를 적용합니다. 이는 명령, skills, agents, hooks, 플러그인 MCP servers, 플러그인 LSP servers를 다시 로드합니다. 플러그인 구성 요소를 테스트합니다:
/plugin-name:skill-name으로 skills를 시도해보세요- agents가
/agents에 나타나는지 확인하세요 - hooks가 예상대로 작동하는지 확인하세요
플러그인 문제 디버깅
플러그인이 예상대로 작동하지 않는 경우:- 구조 확인: 디렉토리가
.claude-plugin/내부가 아닌 플러그인 루트에 있는지 확인하세요 - 구성 요소를 개별적으로 테스트: 각 명령, agent, hook을 별도로 확인하세요
- 검증 및 디버깅 도구 사용: CLI 명령 및 문제 해결 기법은 디버깅 및 개발 도구를 참조하세요
플러그인 공유
플러그인을 공유할 준비가 되면:- 문서 추가: 설치 및 사용 지침이 포함된
README.md를 포함하세요 - 플러그인 버전 관리:
plugin.json에서 의미 있는 버전 관리를 사용하세요 - 마켓플레이스 만들기 또는 사용: 플러그인 마켓플레이스를 통해 배포하여 설치하세요
- 다른 사람과 테스트: 더 광범위한 배포 전에 팀원이 플러그인을 테스트하도록 하세요
플러그인을 공식 마켓플레이스에 제출
플러그인을 공식 Anthropic 마켓플레이스에 제출하려면 다음 앱 내 제출 양식 중 하나를 사용하세요:- Claude.ai: claude.ai/settings/plugins/submit
- Console: platform.claude.com/plugins/submit
완전한 기술 사양, 디버깅 기법, 배포 전략은 플러그인 참조를 참조하세요.
기존 구성을 플러그인으로 변환
.claude/ 디렉토리에 이미 skills 또는 hooks가 있는 경우 더 쉬운 공유 및 배포를 위해 플러그인으로 변환할 수 있습니다.
마이그레이션 단계
플러그인 구조 만들기
새 플러그인 디렉토리를 만듭니다:
my-plugin/.claude-plugin/plugin.json에 매니페스트 파일을 만듭니다:my-plugin/.claude-plugin/plugin.json
Hooks 마이그레이션
설정에 hooks가 있는 경우 hooks 디렉토리를 만듭니다:
my-plugin/hooks/hooks.json을 hooks 구성으로 만듭니다. .claude/settings.json 또는 settings.local.json에서 hooks 객체를 복사합니다. 형식이 동일하기 때문입니다. 명령은 stdin에서 JSON으로 hook 입력을 받으므로 jq를 사용하여 파일 경로를 추출합니다:my-plugin/hooks/hooks.json
마이그레이션 시 변경되는 사항
독립 실행형 (.claude/) | 플러그인 |
|---|---|
| 한 프로젝트에서만 사용 가능 | 마켓플레이스를 통해 공유 가능 |
.claude/commands/의 파일 | plugin-name/commands/의 파일 |
settings.json의 Hooks | hooks/hooks.json의 Hooks |
| 공유하려면 수동으로 복사해야 함 | /plugin install로 설치 |
마이그레이션 후 중복을 피하기 위해
.claude/에서 원본 파일을 제거할 수 있습니다. 플러그인 버전이 로드될 때 우선합니다.다음 단계
이제 Claude Code의 플러그인 시스템을 이해했으므로 다양한 목표에 대한 제안된 경로는 다음과 같습니다:플러그인 사용자의 경우
- 플러그인 발견 및 설치: 마켓플레이스를 검색하고 플러그인을 설치합니다
- 팀 마켓플레이스 구성: 팀을 위한 저장소 수준 플러그인을 설정합니다