9.7 KiB
9.7 KiB
name, version, description
| name | version | description |
|---|---|---|
| plugin-creator | 1.0.0 | Create complete Claude Code plugins with proper structure including skills, commands, agents, and hooks. Generates plugin manifests and directory structures for distribution. Use when: building plugins, creating plugin packages, distributing skills to marketplace. Activates for: "create plugin", "generate plugin", "new plugin", "plugin package", "make plugin" |
Plugin Creator
Generate complete Claude Code plugins with proper structure and configuration.
When to Use
- Creating shareable plugin packages
- Building complete tool collections
- Organizing related skills/commands/agents
- Distributing functionality to teams
- Contributing to plugin marketplaces
Plugin Structure
A complete plugin includes:
plugin-name/
├── .claude-plugin/
│ └── plugin.json # Plugin manifest
├── skills/ # Optional: Skill definitions
│ ├── skill-1.md
│ └── skill-2.md
├── commands/ # Optional: Slash commands
│ ├── command-1.md
│ └── command-2.md
├── agents/ # Optional: Agent definitions
│ ├── agent-1.md
│ └── agent-2.md
├── hooks/ # Optional: Event hooks
│ └── hooks.json
├── README.md # Documentation
└── LICENSE # Optional: License file
Core Workflow
1. Gather Requirements
Ask the user:
- Plugin name: Kebab-case identifier
- Purpose: What problem does this plugin solve?
- Components: What will it include (skills/commands/agents/hooks)?
- Target audience: Who will use this?
- Distribution: Public marketplace or private?
- Dependencies: Required tools or other plugins?
2. Generate Plugin Structure
Create Directory Structure
mkdir -p plugin-name/.claude-plugin
mkdir -p plugin-name/skills
mkdir -p plugin-name/commands
mkdir -p plugin-name/agents
mkdir -p plugin-name/hooks
Generate plugin.json
{
"name": "plugin-name",
"version": "1.0.0",
"description": "Clear description of what this plugin does",
"author": {
"name": "Author Name",
"email": "email@example.com",
"github": "github-username"
},
"license": "MIT",
"category": "appropriate-category",
"keywords": ["keyword1", "keyword2", "keyword3"],
"skills": ["skill-1", "skill-2"],
"commands": ["command-1", "command-2"],
"agents": ["agent-1", "agent-2"],
"repository": {
"type": "git",
"url": "https://github.com/username/plugin-name"
},
"homepage": "https://github.com/username/plugin-name",
"requires": {
"tools": ["git", "npm"],
"plugins": []
}
}
Generate README.md
# Plugin Name
> Brief description
## Features
- Feature 1
- Feature 2
- Feature 3
## Installation
\`\`\`bash
/plugin marketplace add username/plugin-name
/plugin install plugin-name
\`\`\`
## Usage
### Skills
- **skill-1**: Description
- **skill-2**: Description
### Commands
- `/command-1`: Description
- `/command-2`: Description
### Agents
- **agent-1**: Description
## Examples
[Usage examples]
## Requirements
- Tool 1
- Tool 2
## License
MIT
3. Add Components
Use the creator skills to add components:
- skill-creator: Add skills
- command-creator: Add commands
- agent-creator: Add agents
- hook-creator: Add hooks
4. Validate Plugin
Ensure:
- ✅ plugin.json is valid JSON
- ✅ All referenced components exist
- ✅ Directory structure is correct
- ✅ README is comprehensive
- ✅ License is appropriate
- ✅ Keywords are relevant
Example Plugins
TanStack Tools Plugin
tanstack-tools/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ ├── tanstack-router-setup.md
│ ├── tanstack-query-hook.md
│ ├── tanstack-form-schema.md
│ ├── tanstack-table-config.md
│ └── tanstack-start-project.md
├── commands/
│ ├── setup-tanstack-start.md
│ └── generate-query-hook.md
├── README.md
└── LICENSE
plugin.json:
{
"name": "tanstack-tools",
"version": "1.0.0",
"description": "Comprehensive TanStack ecosystem tools for Router, Query, Forms, Table, and Start",
"author": {
"name": "Jace Babin",
"email": "jbabin91@gmail.com",
"github": "jbabin91"
},
"license": "MIT",
"category": "framework",
"keywords": [
"tanstack",
"router",
"query",
"forms",
"table",
"start",
"react"
],
"skills": [
"tanstack-router-setup",
"tanstack-query-hook",
"tanstack-form-schema",
"tanstack-table-config",
"tanstack-start-project"
],
"commands": ["setup-tanstack-start", "generate-query-hook"],
"requires": {
"tools": ["npm", "git"],
"packages": ["@tanstack/router", "@tanstack/react-query"]
}
}
API Tools Plugin
api-tools/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ ├── drizzle-setup.md
│ ├── drizzle-schema-generator.md
│ ├── better-auth-setup.md
│ ├── hono-rpc-endpoint.md
│ └── elysia-setup.md
├── commands/
│ ├── init-drizzle.md
│ ├── generate-api-client.md
│ └── setup-auth.md
├── agents/
│ └── api-designer.md
├── README.md
└── LICENSE
plugin.json:
{
"name": "api-tools",
"version": "1.0.0",
"description": "Backend API development tools for Hono, Elysia, Drizzle, and better-auth",
"author": {
"name": "Jace Babin",
"email": "jbabin91@gmail.com",
"github": "jbabin91"
},
"license": "MIT",
"category": "backend",
"keywords": [
"api",
"backend",
"hono",
"elysia",
"drizzle",
"better-auth",
"openapi"
],
"skills": [
"drizzle-setup",
"drizzle-schema-generator",
"better-auth-setup",
"hono-rpc-endpoint",
"elysia-setup"
],
"commands": ["init-drizzle", "generate-api-client", "setup-auth"],
"agents": ["api-designer"],
"requires": {
"tools": ["npm", "node"],
"packages": ["drizzle-orm", "better-auth"]
}
}
Component Library Plugin
design-system-tools/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ ├── component-generator.md
│ ├── component-a11y-validator.md
│ ├── storybook-story.md
│ └── design-tokens-validator.md
├── commands/
│ ├── create-component.md
│ ├── validate-a11y.md
│ └── generate-stories.md
├── agents/
│ ├── component-reviewer.md
│ └── a11y-auditor.md
├── hooks/
│ └── hooks.json
├── README.md
└── LICENSE
Plugin Categories
Framework-Specific
- tanstack-tools
- react-tools
- next-tools
- vue-tools
Backend
- api-tools
- database-tools
- auth-tools
DevOps
- deployment-tools
- ci-cd-tools
- monitoring-tools
Code Quality
- testing
- linting-tools
- security-tools
Meta
- skill-tools (this plugin!)
- marketplace-tools
- template-tools
Plugin Manifest Fields
Required Fields
{
"name": "plugin-identifier", // Required: kebab-case
"version": "1.0.0", // Required: semantic versioning
"description": "Clear description" // Required: what it does
}
Recommended Fields
{
"author": {
"name": "Author Name",
"email": "email@example.com",
"github": "username"
},
"license": "MIT",
"category": "framework",
"keywords": ["keyword1", "keyword2"],
"repository": {
"type": "git",
"url": "https://github.com/username/plugin"
},
"homepage": "https://github.com/username/plugin"
}
Optional Fields
{
"skills": ["skill-1", "skill-2"], // List of included skills
"commands": ["cmd-1", "cmd-2"], // List of commands
"agents": ["agent-1"], // List of agents
"requires": {
"tools": ["git", "npm"], // Required CLI tools
"plugins": ["other-plugin"], // Plugin dependencies
"packages": ["package-name"] // npm package dependencies
}
}
Distribution
Public Marketplace
- Create GitHub repository
- Add marketplace.json (if creating marketplace)
- Tag releases with versions
- Share repository URL
Users install via:
/plugin marketplace add username/plugin-name
/plugin install plugin-name
Private/Work Distribution
- Host on private Git server
- Share repository URL with team
- Add to team marketplace
Users install via:
/plugin marketplace add git@internal:plugins/plugin-name
/plugin install plugin-name
Best Practices
- Clear Purpose: Plugin should solve one specific problem domain
- Good Documentation: Comprehensive README with examples
- Semantic Versioning: Follow semver for releases
- Minimal Dependencies: Only require what's necessary
- Test Before Release: Validate all components work
- Helpful Keywords: Make plugin discoverable
Anti-Patterns
- ❌ Kitchen-sink plugins (too many unrelated features)
- ❌ Missing documentation
- ❌ No examples
- ❌ Unclear versioning
- ❌ Missing license
- ❌ Poor component organization
Troubleshooting
Plugin Not Loading
Solution:
- Validate plugin.json syntax
- Check directory structure
- Verify all referenced files exist
- Restart Claude Code
Components Not Found
Solution:
- Check component names match manifest
- Verify files are in correct directories
- Check file extensions (.md for skills/commands/agents)