Plugin 시스템: 확장 기능의 패키징과 배포

Claude Code 플러그인은 스킬, 슬래시 명령어, 서브에이전트, 훅, MCP 서버를 하나의 배포 가능한 단위로 패키징하는 시스템입니다. 프로젝트와 팀 간에 일관된 도구와 워크플로우를 공유할 수 있습니다.

Plugin이란?

  • 정의: 여러 Claude Code 확장 기능을 묶은 배포 가능한 패키지
  • 구성 요소: Skills, Commands, Subagents, Hooks, MCP Servers
  • 네임스페이스: 충돌 방지를 위해 플러그인별 네임스페이스 사용

Plugin 관리 명령어

# 플러그인 설치
/plugin install <plugin-name>

# 플러그인 활성화/비활성화
/plugin enable <plugin-name>
/plugin disable <plugin-name>

# 플러그인 마켓플레이스 탐색
/plugin marketplace

# 설치된 플러그인 목록
/plugin list

# 플러그인 업데이트
/plugin update <plugin-name>

# 플러그인 제거
/plugin uninstall <plugin-name>

Plugin 디렉토리 구조

my-plugin/
├── plugin.json          # 플러그인 메타데이터
├── skills/              # 스킬 정의
│   ├── skill-a/
│   │   └── SKILL.md
│   └── skill-b/
│       └── SKILL.md
├── commands/            # 슬래시 명령어
│   └── my-command.md
├── agents/              # 서브에이전트
│   └── my-agent.md
├── hooks/               # 훅 스크립트
│   └── post-edit.sh
└── mcp/                 # MCP 서버 설정
    └── server-config.json

plugin.json 구조

{
  "name": "my-awesome-plugin",
  "version": "1.0.0",
  "description": "개발 워크플로우를 개선하는 플러그인",
  "author": "Your Name",
  "repository": "https://github.com/user/my-plugin",
  "keywords": ["development", "workflow", "automation"],
  "dependencies": {
    "node": ">=18.0.0"
  },
  "skills": [
    "skills/code-review",
    "skills/documentation"
  ],
  "commands": [
    "commands/deploy.md",
    "commands/test.md"
  ],
  "agents": [
    "agents/security-auditor.md"
  ],
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "command": "hooks/post-edit.sh"
      }
    ]
  }
}

v2.1.0 플러그인 업데이트

  • 자동 핫리로드: 플러그인 내 스킬이 수정되면 즉시 반영
  • FORCE_AUTOUPDATE_PLUGINS: 환경변수로 플러그인 자동 업데이트 강제
  • 플러그인 검색 필터링: 마켓플레이스에서 검색 가능

Plugin 생성하기

1. 기본 구조 생성

mkdir my-plugin
cd my-plugin

# plugin.json 생성
cat > plugin.json << EOF
{
  "name": "my-plugin",
  "version": "1.0.0",
  "description": "내 커스텀 플러그인"
}
EOF

2. 스킬 추가

mkdir -p skills/my-skill
cat > skills/my-skill/SKILL.md << EOF
---
name: my-skill
description: 특정 작업을 수행합니다
---

# My Skill

작업 지침...
EOF

3. 명령어 추가

mkdir commands
cat > commands/my-command.md << EOF
---
name: my-command
description: 특정 명령어 실행
---

# /my-command

실행 지침...
EOF

Plugin 배포

로컬 설치

# 로컬 경로에서 플러그인 설치
/plugin install /path/to/my-plugin

GitHub에서 설치

# GitHub 저장소에서 설치
/plugin install github:username/my-plugin

마켓플레이스 게시

# 플러그인 검증
/plugin validate /path/to/my-plugin

# 마켓플레이스에 게시 (인증 필요)
/plugin publish /path/to/my-plugin

Plugin vs 다른 기능 비교

기능범위공유용도
CLAUDE.md프로젝트Git프로젝트 설정
Skills전역/프로젝트파일 복사전문 지식
Plugin전역마켓플레이스완전한 도구 세트

인기 플러그인 예시

1. DevOps Plugin

# 포함 기능
- Docker 관리 스킬
- K8s 배포 명령어
- CI/CD 훅
- AWS MCP 서버

2. Code Quality Plugin

# 포함 기능
- 코드 리뷰 서브에이전트
- 린팅 훅
- 테스트 커버리지 스킬
- SonarQube MCP 서버

3. Documentation Plugin

# 포함 기능
- API 문서 생성 스킬
- README 템플릿 명령어
- JSDoc 자동 생성 훅

플러그인 베스트 프랙티스

  1. 단일 목적: 플러그인당 하나의 명확한 목적
  2. 의존성 최소화: 필요한 외부 의존성만 포함
  3. 명확한 문서화: README와 사용 예시 포함
  4. 버전 관리: 시맨틱 버저닝 사용
  5. 테스트: 플러그인 기능 테스트 포함

참고 자료: