Plugin Creator
What is a Plugin?
A plugin is a distributable package format that bundles skills, hooks, MCP servers, and other components into an installable unit for sharing across projects or teams.
When to Use Plugin vs Standalone?
| Use Case | Recommended Approach |
|---|---|
| Single project only | Place directly in .claude/ directory |
| Share across multiple projects | Create a Plugin |
| Distribute to other users | Create a Plugin |
| Internal project automation | Place directly in .claude/ directory |
Quick Start
Using the Initialization Script
# Create new plugin in current directory
python skills/plugin-creator/scripts/init_plugin.py my-awesome-plugin
# Specify output path
python skills/plugin-creator/scripts/init_plugin.py my-plugin --output ~/plugins
Manual Creation
-
Create plugin directory structure:
my-plugin/ ├── .claude-plugin/ │ └── plugin.json # Plugin manifest (required) ├── commands/ # User-invocable skills ├── skills/ # Agent skills ├── hooks/ # Hook configurations └── README.md -
Create
plugin.jsonmanifest:{ "name": "my-plugin", "description": "Plugin description", "version": "1.0.0", "author": "Your Name" }
Testing Plugins
Use the --plugin-dir flag to load and test your plugin:
# Test local plugin
claude --plugin-dir ./my-plugin
# Test multiple plugins
claude --plugin-dir ./plugin-a --plugin-dir ./plugin-b
Component Types Overview
Plugins can contain the following components:
| Component Type | Directory | Purpose |
|---|---|---|
| Commands | commands/ | User-invocable slash commands |
| Skills | skills/ | Agent auto-used skills |
| Hooks | hooks/ | Event-triggered automation scripts |
| MCP Servers | In manifest | Extend Claude's tool capabilities |
| LSP Servers | In manifest | Code intelligence features |
Reference Documentation
For detailed information:
- Plugin Directory Structure - Manifest schema, directory layout, common errors
- Component Types Guide - Detailed usage for each component type
FAQ
Q: Why isn't my skill being loaded?
Check the following:
plugin.jsonis inside.claude-plugin/directory- Skills are in plugin root's
skills/orcommands/, not inside.claude-plugin/ - Manifest JSON format is valid
Q: How to debug plugin loading issues?
# Use verbose mode to see loading process
claude --plugin-dir ./my-plugin -v
