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:
sh
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
bash
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
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
markdown
# 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
sh
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:
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
sh
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:
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
sh
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
json
{
"name": "plugin-identifier", // Required: kebab-case
"version": "1.0.0", // Required: semantic versioning
"description": "Clear description" // Required: what it does
}
Recommended Fields
json
{
"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
json
{
"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:
bash
/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:
bash
/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)