Plugins
A setup you trust is worth a lot more once your whole team is running it.
The problem is moving it around. You build a great .claude directory with
skills, subagents, and hooks, and then what? Everyone copies and pastes
files between machines and hopes they stay in sync. Plugins fix that. A
plugin is how Claude Code packages a setup and moves it from one person to
the next.
There are two sides to this, and we'll cover both. First, using plugins that other people publish. Second, packaging your own once you've built something worth sharing.
한국어 대본
- 00:00신뢰하는 설정은 팀 전체가 실행할 때 더 큰 가치가 있습니다.
- 00:07Plugins는 Claude Code가 설정을 패키징해 사람 사이에서 공유하는 방식입니다.
- 00:11여기에는 두 가지 측면이 있습니다.
- 00:12다른 사람들이 게시한 플러그인을 사용하고 직접 패키징하는 일,
- 00:15공유할 만한 것을 만들었을 때 말입니다.
- 00:18플러그인은 하나의 설치 가능한 단위입니다.
- 00:21플러그인이 어디에 있느냐에 따라 설치 방법이 정해집니다.
- 00:23세션 안에서 `/plugin install organization-name/plugin-name`을 실행하면
- 00:27같은 작업을 수행합니다.
- 00:28팀에서는 프라이빗 마켓플레이스를 추가하세요. `/plugin marketplace add organization`을 한 번 실행해 조직을
- 00:34`/claude-plugins` 또는 원하는 이름으로 추가하면, 그 이후 모든 설치는
- 00:40중앙 집중식 검색과 버전 추적, 업데이트를 통해 해결됩니다. 이제 플러그인은 사용자 권한으로 컴퓨터에서 코드를 실행합니다.
- 00:46일치하는 모든 도구 호출에서 훅이 실행되며, Skill을 위해 설치하면
- 00:51pre-tool use 훅과 stop 훅도 함께 받습니다. 읽었는지와 관계없이 말입니다. 커뮤니티 플러그인은
- 00:56네트워크 엔드포인트를 호출하는 stop 훅을 포함할 수 있고, 구성에는 아무런
- 01:00경고도 표시되지 않을 수 있습니다. 추가되는 모든 훅, 에이전트, MCP 서버를 확인하세요. 플러그인과 마켓플레이스는
- 01:05진정으로 신뢰하는 소스에서만 설치하고 추가하세요. 앱 내 제출 양식은 커뮤니티
- 01:10마켓플레이스에 게시되기 전에 Anthropic의 자동 검토를 거치며, 공식 마켓플레이스는 별도
- 01:15트랙에서 큐레이션됩니다. 검토되었다고 신뢰할 수 있는 것은 아니므로 무엇을 하는지 확인하세요. 플러그인은
- 01:21구성을 덮어쓰지 않고 구성 요소가 기존 설정과 함께 실행됩니다. 먼저 훅은 함께 쌓입니다. 플러그인의
- 01:26pre-tool use와 기존 훅이 모든 도구 호출에서 동시에 실행되므로 세부 사항을
- 01:31먼저 읽어야 합니다. Skills, agents, commands는 플러그인 이름 아래 네임스페이스가 적용되어 충돌하지 않습니다.
- 01:36플러그인은 settings.json 파일도 포함할 수 있지만 범위는 좁습니다. 따라서 Claude Code는 agent와
- 01:41subagent status line 키만 적용합니다. agent를 설정하면 플러그인의 subagent 하나가
- 01:47시스템 프롬프트, 도구, 제한 사항, 모델과 함께 메인 스레드로 승격됩니다. 플러그인을 활성화하면
- 01:51Claude Code의 기본 동작이 바뀌므로, 켜기 전에 확인해야 하는 주된 이유 중 하나입니다.
- 01:56이제 `.claude` 디렉터리를 만들었다면, 팀이 컴퓨터마다 복사해 붙여넣는 대신
- 02:03패키징하세요. 플러그인은 모든 것을 하나의 버전이 지정된 설치 가능한 단위로 묶습니다.
- 02:08Skills, subagents, hooks, MCP 서버 설정과 더불어 긴 꼬리의 언어 서버
- 02:14프로토콜 서버, 백그라운드 모니터, 테마, settings.json 일부까지 포함합니다. 매니페스트는
- 02:20`.claude-plugin/plugin.json`에 있으며 이름, 버전, 설명, 저자 정보를 담습니다. 이것은
- 02:25선택 사항이지만, 생략하면 Claude Code가 디렉터리 규칙에 따라 구성 요소를 찾습니다.
- 02:29디렉터리 구조가 나머지를 처리합니다. 이미 Skills에 사용하는 것과 같은 `.claude` 구조로
- 02:33Skill마다 폴더 하나를 두고, agents에는 subagent마다 마크다운 파일 하나를 두며, hooks에는 `hooks.json`을 두고
- 02:38`hooks.json`과 `.mcp.json`은 플러그인 루트에 모두 둡니다. Name만 필수 필드이며 Skills에 네임스페이스를 부여합니다.
- 02:45company name, skill name으로 지정합니다. 다른 종속성과 마찬가지로 버전을 관리하세요.
- 02:53플러그인을 사용할 때는 설치 전에 읽어 보세요. 하나 만들었다면 `.claude`를
- 02:58작동하는 즉시 패키징하세요. 매니페스트 하나와 설치 하나로 신뢰하는 설정이 팀 전체에 도달합니다.
What a plugin is
A plugin is one installable unit. It bundles everything you'd otherwise share by hand: skills, subagents, hooks, and MCP server configs, plus the longer tail of stuff like language server protocol servers, background monitors, themes, and a slice of settings.json. One version, one install.
Where the plugin lives decides how you install it. Inside a session, you can install one directly by name:
/plugin install github@claude-plugins-officialHere's what that looks like. Claude Code installs it and tells you to run /reload-plugins to apply the change.
Adding a marketplace for your team
For a team, the better move is to add a private marketplace once. A marketplace is a shared source that plugins resolve through:
/plugin marketplace add your-org/claude-pluginsCall it whatever you want. Once it's added, every install after that resolves through it. You get centralized discovery, version tracking, and updates in one place instead of scattered across everyone's laptop.
You can browse what's available from the Discover tab. It lists the plugins on your marketplaces so you can search and pick.
Read before you install
Here's the part that matters most. A plugin runs code on your machine, with your privileges. Its hooks fire on every matching tool call. So if you install a plugin for its skills, you also get its PreToolUse and Stop hooks whether you read them or not.
Think about what that means. A community plugin could ship a Stop hook that calls out to a network endpoint every time, and nothing in your configuration would warn you about it. That's not a reason to avoid plugins. It's a reason to look first.
Before you install, check the plugin's details. Claude Code shows you what it will install and estimates the context cost, along with a plain warning that Anthropic doesn't control what's inside third-party plugins.
Two things worth knowing about where plugins come from:
- The in-app submission form posts to the community marketplace after Anthropic's automated review.
- The official marketplace is curated on its own separate track.
But reviewed isn't the same as trusted. Automated review catches some things, not everything. So the rule stands: install plugins and add marketplaces only from sources you truly trust, and check what a plugin actually does before turning it on.
Components run alongside yours
A plugin doesn't overwrite your configuration. Its components run alongside your own. That's mostly good, but it has consequences you should understand.
Hooks stack. A plugin's PreToolUse hook and your own PreToolUse hook both fire on every tool call. Neither replaces the other. This is exactly why you read the details first.
Skills, agents, and commands are namespaced under the plugin name, so they never clash with yours. A plugin can also ship a settings.json file, but only a narrow one. Claude Code honors just two keys from it: the agent and subagent status line keys.
That agent key is worth a pause. Setting it promotes one of the plugin's subagents to the main thread, along with its system prompt, tool restrictions, and model. In other words, enabling the plugin can change how Claude Code behaves by default. That's one of the main reasons to look before you even turn it on.
Once a plugin is installed you can see everything it added, manage it, and uninstall it from the plugin panel.
Packaging your own plugin
Now the other side. Once you've built a .claude directory that works, don't make your team copy and paste it between machines. Package it instead.
The good news is you don't have to restructure anything. A plugin uses the same .claude shape you already use:
- One folder per skill.
- One markdown file per subagent under
agents. hooks/hooks.jsonand.mcp.json, at the plugin root.
The directory structure does most of the work. Claude Code discovers components by convention.
The manifest
On top of that, there's an optional manifest. It lives at .claude-plugin/plugin.json and holds the name, version, description, and author:
The manifest is optional. Leave it out and Claude Code still discovers your components by directory convention. But a couple of details are worth knowing:
- Name is the only required field. It namespaces your skills as
company-name:skill-name, which keeps them from colliding with anyone else's. - Version it like any other dependency. That's what makes updates and version tracking work across your team.
The takeaway
Two simple rules cover most of this:
- When you use plugins, read before you install. A plugin runs code with your privileges, so look at its hooks, agents, and MCP servers first.
- When you build one, package your
.claudethe moment it works. One manifest, one install.
That's the whole point. One installable unit, and the setup you trust reaches your entire team.