1# Plugins1# Create plugins
2 2
3> Extend Claude Code with custom commands, agents, hooks, Skills, and MCP servers through the plugin system.3> Create custom plugins to extend Claude Code with slash commands, agents, hooks, Skills, and MCP servers.
4
5Plugins let you extend Claude Code with custom functionality that can be shared across projects and teams. This guide covers creating your own plugins with slash commands, agents, Skills, hooks, and MCP servers.
6
7Looking to install existing plugins? See [Discover and install plugins](/en/discover-plugins). For complete technical specifications, see [Plugins reference](/en/plugins-reference).
8
9## When to use plugins vs standalone configuration
10
11Claude Code supports two ways to add custom slash commands, agents, and hooks:
12
13| Approach | Slash command names | Best for |
14| :---------------------------------------------------------- | :------------------- | :---------------------------------------------------------------------------------------------- |
15| **Standalone** (`.claude/` directory) | `/hello` | Personal workflows, project-specific customizations, quick experiments |
16| **Plugins** (directories with `.claude-plugin/plugin.json`) | `/plugin-name:hello` | Sharing with teammates, distributing to community, versioned releases, reusable across projects |
17
18**Use standalone configuration when**:
19
20* You're customizing Claude Code for a single project
21* The configuration is personal and doesn't need to be shared
22* You're experimenting with slash commands or hooks before packaging them
23* You want short slash command names like `/hello` or `/review`
24
25**Use plugins when**:
26
27* You want to share functionality with your team or community
28* You need the same slash commands/agents across multiple projects
29* You want version control and easy updates for your extensions
30* You're distributing through a marketplace
31* You're okay with namespaced slash commands like `/my-plugin:hello` (namespacing prevents conflicts between plugins)
4 32
5<Tip>33<Tip>
6 For complete technical specifications and schemas, see [Plugins reference](/en/plugins-reference). For marketplace management, see [Plugin marketplaces](/en/plugin-marketplaces).34 Start with standalone configuration in `.claude/` for quick iteration, then [convert to a plugin](#convert-existing-configurations-to-plugins) when you're ready to share.
7</Tip>35</Tip>
8 36
9Plugins let you extend Claude Code with custom functionality that can be shared across projects and teams. Install plugins from [marketplaces](/en/plugin-marketplaces) to add pre-built commands, agents, hooks, Skills, and MCP servers, or create your own to automate your workflows.
10
11## Quickstart37## Quickstart
12 38
13Let's create a simple greeting plugin to get you familiar with the plugin system. We'll build a working plugin that adds a custom command, test it locally, and understand the core concepts.39This quickstart walks you through creating a plugin with a custom slash command. You'll create a manifest (the configuration file that defines your plugin), add a slash command, and test it locally using the `--plugin-dir` flag.
14 40
15### Prerequisites41### Prerequisites
16 42
17* Claude Code installed on your machine43* Claude Code [installed and authenticated](/en/quickstart#step-1-install-claude-code)
18* Basic familiarity with command-line tools44* Claude Code version 1.0.33 or later (run `claude --version` to check)
45
46<Note>
47 If you don't see the `/plugin` command, update Claude Code to the latest version. See [Troubleshooting](/en/troubleshooting) for upgrade instructions.
48</Note>
19 49
20### Create your first plugin50### Create your first plugin
21 51
22<Steps>52<Steps>
23 <Step title="Create the marketplace structure">
24 ```bash theme={null}
25 mkdir test-marketplace
26 cd test-marketplace
27 ```
28 </Step>
29
30 <Step title="Create the plugin directory">53 <Step title="Create the plugin directory">
54 Every plugin lives in its own directory containing a manifest and your custom commands, agents, or hooks. Create one now:
55
31 ```bash theme={null}56 ```bash theme={null}
32 mkdir my-first-plugin57 mkdir my-first-plugin
33 cd my-first-plugin
34 ```58 ```
35 </Step>59 </Step>
36 60
37 <Step title="Create the plugin manifest">61 <Step title="Create the plugin manifest">
38 ```bash Create .claude-plugin/plugin.json theme={null}62 The manifest file at `.claude-plugin/plugin.json` defines your plugin's identity: its name, description, and version. Claude Code uses this metadata to display your plugin in the plugin manager.
39 mkdir .claude-plugin63
40 cat > .claude-plugin/plugin.json << 'EOF'64 Create the `.claude-plugin` directory inside your plugin folder:
65
66 ```bash theme={null}
67 mkdir my-first-plugin/.claude-plugin
68 ```
69
70 Then create `my-first-plugin/.claude-plugin/plugin.json` with this content:
71
72 ```json my-first-plugin/.claude-plugin/plugin.json theme={null}
41 {73 {
42 "name": "my-first-plugin",74 "name": "my-first-plugin",
43 "description": "A simple greeting plugin to learn the basics",75 "description": "A greeting plugin to learn the basics",
44 "version": "1.0.0",76 "version": "1.0.0",
45 "author": {77 "author": {
46 "name": "Your Name"78 "name": "Your Name"
47 }79 }
48 }80 }
49 EOF
50 ```81 ```
82
83 | Field | Purpose |
84 | :------------ | :--------------------------------------------------------------------------------------------------------------------- |
85 | `name` | Unique identifier and slash command namespace. Slash commands are prefixed with this (e.g., `/my-first-plugin:hello`). |
86 | `description` | Shown in the plugin manager when browsing or installing plugins. |
87 | `version` | Track releases using [semantic versioning](/en/plugins-reference#version-management). |
88 | `author` | Optional. Helpful for attribution. |
89
90 For additional fields like `homepage`, `repository`, and `license`, see the [full manifest schema](/en/plugins-reference#plugin-manifest-schema).
51 </Step>91 </Step>
52 92
53 <Step title="Add a custom command">93 <Step title="Add a slash command">
54 ```bash Create commands/hello.md theme={null}94 Slash commands are Markdown files in the `commands/` directory. The filename becomes the slash command name, prefixed with the plugin's namespace (`hello.md` in a plugin named `my-first-plugin` creates `/my-first-plugin:hello`). The Markdown content tells Claude how to respond when someone runs the slash command.
55 mkdir commands95
56 cat > commands/hello.md << 'EOF'96 Create a `commands` directory in your plugin folder:
97
98 ```bash theme={null}
99 mkdir my-first-plugin/commands
100 ```
101
102 Then create `my-first-plugin/commands/hello.md` with this content:
103
104 ```markdown my-first-plugin/commands/hello.md theme={null}
57 ---105 ---
58 description: Greet the user with a personalized message106 description: Greet the user with a friendly message
59 ---107 ---
60 108
61 # Hello Command109 # Hello Command
62 110
63 Greet the user warmly and ask how you can help them today. Make the greeting personal and encouraging.111 Greet the user warmly and ask how you can help them today.
64 EOF
65 ```112 ```
66 </Step>113 </Step>
67 114
68 <Step title="Create the marketplace manifest">115 <Step title="Test your plugin">
69 ```bash Create marketplace.json theme={null}116 Run Claude Code with the `--plugin-dir` flag to load your plugin:
70 cd ..
71 mkdir .claude-plugin
72 cat > .claude-plugin/marketplace.json << 'EOF'
73 {
74 "name": "test-marketplace",
75 "owner": {
76 "name": "Test User"
77 },
78 "plugins": [
79 {
80 "name": "my-first-plugin",
81 "source": "./my-first-plugin",
82 "description": "My first test plugin"
83 }
84 ]
85 }
86 EOF
87 ```
88 </Step>
89 117
90 <Step title="Install and test your plugin">118 ```bash theme={null}
91 ```bash Start Claude Code from parent directory theme={null}119 claude --plugin-dir ./my-first-plugin
92 cd ..
93 claude
94 ```120 ```
95 121
96 ```shell Add the test marketplace theme={null}122 Once Claude Code starts, try your new command:
97 /plugin marketplace add ./test-marketplace
98 ```
99 123
100 ```shell Install your plugin theme={null}124 ```shell theme={null}
101 /plugin install my-first-plugin@test-marketplace125 /my-first-plugin:hello
102 ```126 ```
103 127
104 Select "Install now". You'll then need to restart Claude Code in order to use the new plugin.128 You'll see Claude respond with a greeting. Run `/help` to see your command listed under the plugin namespace.
105 129
106 ```shell Try your new command theme={null}130 <Note>
107 /hello131 **Why namespacing?** Plugin slash commands are always namespaced (like `/greet:hello`) to prevent conflicts when multiple plugins have commands with the same name.
108 ```
109 132
110 You'll see Claude use your greeting command! Check `/help` to see your new command listed.133 To change the namespace prefix, update the `name` field in `plugin.json`.
134 </Note>
111 </Step>135 </Step>
112</Steps>
113 136
114You've successfully created and tested a plugin with these key components:137 <Step title="Add slash command arguments">
115 138 Make your slash command dynamic by accepting user input. The `$ARGUMENTS` placeholder captures any text the user provides after the slash command.
116* **Plugin manifest** (`.claude-plugin/plugin.json`) - Describes your plugin's metadata
117* **Commands directory** (`commands/`) - Contains your custom slash commands
118* **Test marketplace** - Allows you to test your plugin locally
119 139
120### Plugin structure overview140 Update your `hello.md` file:
121 141
122Your plugin follows this basic structure:142 ```markdown my-first-plugin/commands/hello.md theme={null}
143 ---
144 description: Greet the user with a personalized message
145 ---
123 146
124```147 # Hello Command
125my-first-plugin/
126├── .claude-plugin/
127│ └── plugin.json # Plugin metadata
128├── commands/ # Custom slash commands (optional)
129│ └── hello.md
130├── agents/ # Custom agents (optional)
131│ └── helper.md
132├── skills/ # Agent Skills (optional)
133│ └── my-skill/
134│ └── SKILL.md
135└── hooks/ # Event handlers (optional)
136 └── hooks.json
137```
138 148
139**Additional components you can add:**149 Greet the user named "$ARGUMENTS" warmly and ask how you can help them today. Make the greeting personal and encouraging.
150 ```
140 151
141* **Commands**: Create markdown files in `commands/` directory152 Restart Claude Code to pick up the changes, then try the command with your name:
142* **Agents**: Create agent definitions in `agents/` directory
143* **Skills**: Create `SKILL.md` files in `skills/` directory
144* **Hooks**: Create `hooks/hooks.json` for event handling
145* **MCP servers**: Create `.mcp.json` for external tool integration
146 153
147<Note>154 ```shell theme={null}
148 **Next steps**: Ready to add more features? Jump to [Develop more complex plugins](#develop-more-complex-plugins) to add agents, hooks, and MCP servers. For complete technical specifications of all plugin components, see [Plugins reference](/en/plugins-reference).155 /my-first-plugin:hello Alex
149</Note>156 ```
150 157
151***158 Claude will greet you by name. For more argument options like `$1`, `$2` for individual parameters, see [Slash commands](/en/slash-commands).
159 </Step>
160</Steps>
152 161
153## Install and manage plugins162You've successfully created and tested a plugin with these key components:
154 163
155Learn how to discover, install, and manage plugins to extend your Claude Code capabilities.164* **Plugin manifest** (`.claude-plugin/plugin.json`): describes your plugin's metadata
165* **Commands directory** (`commands/`): contains your custom slash commands
166* **Command arguments** (`$ARGUMENTS`): captures user input for dynamic behavior
156 167
157### Prerequisites168<Tip>
169 The `--plugin-dir` flag is useful for development and testing. When you're ready to share your plugin with others, see [Create and distribute a plugin marketplace](/en/plugin-marketplaces).
170</Tip>
158 171
159* Claude Code installed and running172## Plugin structure overview
160* Basic familiarity with command-line interfaces
161 173
162### Add marketplaces174You've created a plugin with a slash command, but plugins can include much more: custom agents, Skills, hooks, MCP servers, and LSP servers.
163 175
164Marketplaces are catalogs of available plugins. Add them to discover and install plugins:176<Warning>
177 **Common mistake**: Don't put `commands/`, `agents/`, `skills/`, or `hooks/` inside the `.claude-plugin/` directory. Only `plugin.json` goes inside `.claude-plugin/`. All other directories must be at the plugin root level.
178</Warning>
165 179
166```shell Add a marketplace theme={null}180| Directory | Location | Purpose |
167/plugin marketplace add your-org/claude-plugins181| :---------------- | :---------- | :---------------------------------------------- |
168```182| `.claude-plugin/` | Plugin root | Contains only `plugin.json` manifest (required) |
183| `commands/` | Plugin root | Slash commands as Markdown files |
184| `agents/` | Plugin root | Custom agent definitions |
185| `skills/` | Plugin root | Agent Skills with `SKILL.md` files |
186| `hooks/` | Plugin root | Event handlers in `hooks.json` |
187| `.mcp.json` | Plugin root | MCP server configurations |
188| `.lsp.json` | Plugin root | LSP server configurations for code intelligence |
169 189
170```shell Browse available plugins theme={null}190<Note>
171/plugin191 **Next steps**: Ready to add more features? Jump to [Develop more complex plugins](#develop-more-complex-plugins) to add agents, hooks, MCP servers, and LSP servers. For complete technical specifications of all plugin components, see [Plugins reference](/en/plugins-reference).
172```192</Note>
173 193
174For detailed marketplace management including Git repositories, local development, and team distribution, see [Plugin marketplaces](/en/plugin-marketplaces).194## Develop more complex plugins
175 195
176### Install plugins196Once you're comfortable with basic plugins, you can create more sophisticated extensions.
177 197
178#### Via interactive menu (recommended for discovery)198### Add Skills to your plugin
179 199
180```shell Open the plugin management interface theme={null}200Plugins can include [Agent Skills](/en/skills) to extend Claude's capabilities. Skills are model-invoked; Claude autonomously uses them based on the task context.
181/plugin
182```
183 201
184Select "Browse Plugins" to see available options with descriptions, features, and installation options.202To add Skills to your plugin, create a `skills/` directory at your plugin root and add Skill folders with `SKILL.md` files. Plugin Skills are automatically available when the plugin is installed.
185 203
186#### Via direct commands (for quick installation)204For complete Skill authoring guidance, see [Agent Skills](/en/skills).
187 205
188```shell Install a specific plugin theme={null}206### Add LSP servers to your plugin
189/plugin install formatter@your-org
190```
191 207
192```shell Enable a disabled plugin theme={null}208<Tip>
193/plugin enable plugin-name@marketplace-name209 For common languages like TypeScript, Python, and Rust, install the pre-built LSP plugins from the official marketplace. Create custom LSP plugins only when you need support for languages not already covered.
194```210</Tip>
195 211
196```shell Disable without uninstalling theme={null}212LSP (Language Server Protocol) plugins give Claude real-time code intelligence. If you need to support a language that doesn't have an official LSP plugin, you can create your own by adding an `.lsp.json` file to your plugin:
197/plugin disable plugin-name@marketplace-name
198```
199 213
200```shell Completely remove a plugin theme={null}214```json .lsp.json theme={null}
201/plugin uninstall plugin-name@marketplace-name215{
216 "go": {
217 "command": "gopls",
218 "args": ["serve"],
219 "extensionToLanguage": {
220 ".go": "go"
221 }
222 }
223}
202```224```
203 225
204### Installation scopes226Users installing your plugin must have the language server binary installed on their machine.
205 227
206Plugins can be installed at different scopes to control their availability and sharing:228For complete LSP configuration options, see [LSP servers](/en/plugins-reference#lsp-servers).
207 229
208| Scope | Location | Behavior |230### Organize complex plugins
209| :-------- | :---------------------------- | :-------------------------------------- |
210| `user` | `~/.claude/settings.json` | Available across all projects (default) |
211| `project` | `.claude/settings.json` | Shared with team via version control |
212| `local` | `.claude/settings.local.json` | Project-specific, gitignored |
213
214**When to use each scope:**
215 231
216* **User scope** (default): For plugins you want available in all your projects232For plugins with many components, organize your directory structure by functionality. For complete directory layouts and organization patterns, see [Plugin directory structure](/en/plugins-reference#plugin-directory-structure).
217* **Project scope**: For plugins your team should share (committed to git)
218* **Local scope**: For personal plugins in a specific project (not shared)
219 233
220```shell Install to user scope (default) theme={null}234### Test your plugins locally
221claude plugin install formatter@your-org
222```
223 235
224```shell Install to project scope (shared with team) theme={null}236Use the `--plugin-dir` flag to test plugins during development. This loads your plugin directly without requiring installation.
225claude plugin install formatter@your-org --scope project
226```
227 237
228```shell Install to local scope (gitignored) theme={null}238```bash theme={null}
229claude plugin install formatter@your-org --scope local239claude --plugin-dir ./my-plugin
230```240```
231 241
232The `--scope` option also works with `uninstall`, `enable`, and `disable` commands:242As you make changes to your plugin, restart Claude Code to pick up the updates. Test your plugin components:
233 243
234```shell Uninstall from project scope theme={null}244* Try your commands with `/command-name`
235claude plugin uninstall formatter@your-org --scope project245* Check that agents appear in `/agents`
236```246* Verify hooks work as expected
237 247
238<Note>248<Tip>
239 When using `/plugin install` interactively, you'll be prompted to select the installation scope.249 You can load multiple plugins at once by specifying the flag multiple times:
240</Note>
241 250
242### Verify installation251 ```bash theme={null}
252 claude --plugin-dir ./plugin-one --plugin-dir ./plugin-two
253 ```
254</Tip>
243 255
244After installing a plugin:256### Debug plugin issues
245 257
2461. **Check available commands**: Run `/help` to see new commands258If your plugin isn't working as expected:
2472. **Test plugin features**: Try the plugin's commands and features
2483. **Review plugin details**: Use `/plugin` → "Manage Plugins" to see what the plugin provides
249 259
250## Set up team plugin workflows2601. **Check the structure**: Ensure your directories are at the plugin root, not inside `.claude-plugin/`
2612. **Test components individually**: Check each command, agent, and hook separately
2623. **Use validation and debugging tools**: See [Debugging and development tools](/en/plugins-reference#debugging-and-development-tools) for CLI commands and troubleshooting techniques
251 263
252Configure plugins at the repository level to ensure consistent tooling across your team. When team members trust your repository folder, Claude Code automatically installs specified marketplaces and plugins.264### Share your plugins
253 265
254**To set up team plugins:**266When your plugin is ready to share:
255 267
2561. Add marketplace and plugin configuration to your repository's `.claude/settings.json`2681. **Add documentation**: Include a `README.md` with installation and usage instructions
2572. Team members trust the repository folder2692. **Version your plugin**: Use [semantic versioning](/en/plugins-reference#version-management) in your `plugin.json`
2583. Plugins install automatically for all team members2703. **Create or use a marketplace**: Distribute through [plugin marketplaces](/en/plugin-marketplaces) for installation
2714. **Test with others**: Have team members test the plugin before wider distribution
259 272
260For complete instructions including configuration examples, marketplace setup, and rollout best practices, see [Configure team marketplaces](/en/plugin-marketplaces#how-to-configure-team-marketplaces).273Once your plugin is in a marketplace, others can install it using the instructions in [Discover and install plugins](/en/discover-plugins).
261 274
262***275<Note>
276 For complete technical specifications, debugging techniques, and distribution strategies, see [Plugins reference](/en/plugins-reference).
277</Note>
263 278
264## Develop more complex plugins279## Convert existing configurations to plugins
265 280
266Once you're comfortable with basic plugins, you can create more sophisticated extensions.281If you already have custom commands, Skills, or hooks in your `.claude/` directory, you can convert them into a plugin for easier sharing and distribution.
267 282
268### Add Skills to your plugin283### Migration steps
269 284
270Plugins can include [Agent Skills](/en/skills) to extend Claude's capabilities. Skills are model-invoked—Claude autonomously uses them based on the task context.285<Steps>
286 <Step title="Create the plugin structure">
287 Create a new plugin directory:
271 288
272To add Skills to your plugin, create a `skills/` directory at your plugin root and add Skill folders with `SKILL.md` files. Plugin Skills are automatically available when the plugin is installed.289 ```bash theme={null}
290 mkdir -p my-plugin/.claude-plugin
291 ```
273 292
274For complete Skill authoring guidance, see [Agent Skills](/en/skills).293 Create the manifest file at `my-plugin/.claude-plugin/plugin.json`:
275 294
276### Organize complex plugins295 ```json my-plugin/.claude-plugin/plugin.json theme={null}
296 {
297 "name": "my-plugin",
298 "description": "Migrated from standalone configuration",
299 "version": "1.0.0"
300 }
301 ```
302 </Step>
277 303
278For plugins with many components, organize your directory structure by functionality. For complete directory layouts and organization patterns, see [Plugin directory structure](/en/plugins-reference#plugin-directory-structure).304 <Step title="Copy your existing files">
305 Copy your existing configurations to the plugin directory:
279 306
280### Test your plugins locally307 ```bash theme={null}
281 308 # Copy commands
282When developing plugins, use a local marketplace to test changes iteratively. This workflow builds on the quickstart pattern and works for plugins of any complexity.309 cp -r .claude/commands my-plugin/
283 310
284<Steps>311 # Copy agents (if any)
285 <Step title="Set up your development structure">312 cp -r .claude/agents my-plugin/
286 Organize your plugin and marketplace for testing:
287 313
288 ```bash Create directory structure theme={null}314 # Copy skills (if any)
289 mkdir dev-marketplace315 cp -r .claude/skills my-plugin/
290 cd dev-marketplace
291 mkdir my-plugin
292 ```316 ```
317 </Step>
293 318
294 This creates:319 <Step title="Migrate hooks">
320 If you have hooks in your settings, create a hooks directory:
295 321
322 ```bash theme={null}
323 mkdir my-plugin/hooks
296 ```324 ```
297 dev-marketplace/
298 ├── .claude-plugin/marketplace.json (you'll create this)
299 └── my-plugin/ (your plugin under development)
300 ├── .claude-plugin/plugin.json
301 ├── commands/
302 ├── agents/
303 └── hooks/
304 ```
305 </Step>
306 325
307 <Step title="Create the marketplace manifest">326 Create `my-plugin/hooks/hooks.json` with your hooks configuration. Copy the `hooks` object from your `.claude/settings.json` or `settings.local.json`—the format is the same:
308 ```bash Create marketplace.json theme={null}327
309 mkdir .claude-plugin328 ```json my-plugin/hooks/hooks.json theme={null}
310 cat > .claude-plugin/marketplace.json << 'EOF'
311 {329 {
312 "name": "dev-marketplace",330 "hooks": {
313 "owner": {331 "PostToolUse": [
314 "name": "Developer"
315 },
316 "plugins": [
317 {332 {
318 "name": "my-plugin",333 "matcher": "Write|Edit",
319 "source": "./my-plugin",334 "hooks": [{ "type": "command", "command": "npm run lint:fix $FILE" }]
320 "description": "Plugin under development"
321 }335 }
322 ]336 ]
323 }337 }
324 EOF338 }
325 ```
326 </Step>
327
328 <Step title="Install and test">
329 ```bash Start Claude Code from parent directory theme={null}
330 cd ..
331 claude
332 ```
333
334 ```shell Add your development marketplace theme={null}
335 /plugin marketplace add ./dev-marketplace
336 ```
337
338 ```shell Install your plugin theme={null}
339 /plugin install my-plugin@dev-marketplace
340 ```339 ```
341
342 Test your plugin components:
343
344 * Try your commands with `/command-name`
345 * Check that agents appear in `/agents`
346 * Verify hooks work as expected
347 </Step>340 </Step>
348 341
349 <Step title="Iterate on your plugin">342 <Step title="Test your migrated plugin">
350 After making changes to your plugin code:343 Load your plugin to verify everything works:
351 344
352 ```shell Uninstall the current version theme={null}345 ```bash theme={null}
353 /plugin uninstall my-plugin@dev-marketplace346 claude --plugin-dir ./my-plugin
354 ```
355
356 ```shell Reinstall to test changes theme={null}
357 /plugin install my-plugin@dev-marketplace
358 ```347 ```
359 348
360 Repeat this cycle as you develop and refine your plugin.349 Test each component: run your commands, check agents appear in `/agents`, and verify hooks trigger correctly.
361 </Step>350 </Step>
362</Steps>351</Steps>
363 352
364<Note>353### What changes when migrating
365 **For multiple plugins**: Organize plugins in subdirectories like `./plugins/plugin-name` and update your marketplace.json accordingly. See [Plugin sources](/en/plugin-marketplaces#plugin-sources) for organization patterns.
366</Note>
367
368### Debug plugin issues
369 354
370If your plugin isn't working as expected:355| Standalone (`.claude/`) | Plugin |
371 356| :---------------------------- | :------------------------------- |
3721. **Check the structure**: Ensure your directories are at the plugin root, not inside `.claude-plugin/`357| Only available in one project | Can be shared via marketplaces |
3732. **Test components individually**: Check each command, agent, and hook separately358| Files in `.claude/commands/` | Files in `plugin-name/commands/` |
3743. **Use validation and debugging tools**: See [Debugging and development tools](/en/plugins-reference#debugging-and-development-tools) for CLI commands and troubleshooting techniques359| Hooks in `settings.json` | Hooks in `hooks/hooks.json` |
375 360| Must manually copy to share | Install with `/plugin install` |
376### Share your plugins
377
378When your plugin is ready to share:
379
3801. **Add documentation**: Include a README.md with installation and usage instructions
3812. **Version your plugin**: Use semantic versioning in your `plugin.json`
3823. **Create or use a marketplace**: Distribute through plugin marketplaces for installation
3834. **Test with others**: Have team members test the plugin before wider distribution
384 361
385<Note>362<Note>
386 For complete technical specifications, debugging techniques, and distribution strategies, see [Plugins reference](/en/plugins-reference).363 After migrating, you can remove the original files from `.claude/` to avoid duplicates. The plugin version will take precedence when loaded.
387</Note>364</Note>
388 365
389***
390
391## Next steps366## Next steps
392 367
393Now that you understand Claude Code's plugin system, here are suggested paths for different goals:368Now that you understand Claude Code's plugin system, here are suggested paths for different goals:
394 369
395### For plugin users370### For plugin users
396 371
397* **Discover plugins**: Browse community marketplaces for useful tools372* [Discover and install plugins](/en/discover-plugins): browse marketplaces and install plugins
398* **Team adoption**: Set up repository-level plugins for your projects373* [Configure team marketplaces](/en/discover-plugins#configure-team-marketplaces): set up repository-level plugins for your team
399* **Marketplace management**: Learn to manage multiple plugin sources
400* **Advanced usage**: Explore plugin combinations and workflows
401 374
402### For plugin developers375### For plugin developers
403 376
404* **Create your first marketplace**: [Plugin marketplaces guide](/en/plugin-marketplaces)377* [Create and distribute a marketplace](/en/plugin-marketplaces): package and share your plugins
405* **Advanced components**: Dive deeper into specific plugin components:378* [Plugins reference](/en/plugins-reference): complete technical specifications
406 * [Slash commands](/en/slash-commands) - Command development details379* Dive deeper into specific plugin components:
407 * [Subagents](/en/sub-agents) - Agent configuration and capabilities380 * [Slash commands](/en/slash-commands): command development details
408 * [Agent Skills](/en/skills) - Extend Claude's capabilities381 * [Subagents](/en/sub-agents): agent configuration and capabilities
409 * [Hooks](/en/hooks) - Event handling and automation382 * [Agent Skills](/en/skills): extend Claude's capabilities
410 * [MCP](/en/mcp) - External tool integration383 * [Hooks](/en/hooks): event handling and automation
411* **Distribution strategies**: Package and share your plugins effectively384 * [MCP](/en/mcp): external tool integration
412* **Community contribution**: Consider contributing to community plugin collections
413
414### For team leads and administrators
415
416* **Repository configuration**: Set up automatic plugin installation for team projects
417* **Plugin governance**: Establish guidelines for plugin approval and security review
418* **Marketplace maintenance**: Create and maintain organization-specific plugin catalogs
419* **Training and documentation**: Help team members adopt plugin workflows effectively
420
421## See also
422
423* [Plugin marketplaces](/en/plugin-marketplaces) - Creating and managing plugin catalogs
424* [Slash commands](/en/slash-commands) - Understanding custom commands
425* [Subagents](/en/sub-agents) - Creating and using specialized agents
426* [Agent Skills](/en/skills) - Extend Claude's capabilities
427* [Hooks](/en/hooks) - Automating workflows with event handlers
428* [MCP](/en/mcp) - Connecting to external tools and services
429* [Settings](/en/settings) - Configuration options for plugins
430 385
431 386
432---387---