3.4 KiB
3.4 KiB
description
| description |
|---|
| Interactive wizard for creating new plugins in lunar-claude marketplace |
New Plugin
Create a new plugin in the lunar-claude marketplace using the template structure.
Process
Follow these steps to create a properly structured plugin:
Step 1: Gather Plugin Information
Ask the user for:
- Plugin name (kebab-case, no spaces)
- Description (one-line summary)
- Category (meta, infrastructure, devops, or homelab)
- Keywords (comma-separated for searchability)
- Components needed (skills, agents, hooks, commands)
Step 2: Validate Plugin Name
Check that:
- Name uses kebab-case format
- Name is unique (not in current marketplace.json)
- Name is descriptive and clear
Step 3: Create Plugin Directory
-
Copy template to appropriate category:
cp -r templates/plugin-template/ plugins/<category>/<plugin-name>/ -
Navigate to new plugin directory
Step 4: Customize Plugin Files
-
Update
.claude-plugin/plugin.json:- Replace
PLUGIN_NAMEwith actual name - Replace
PLUGIN_DESCRIPTIONwith description - Replace
KEYWORD1,KEYWORD2with actual keywords
- Replace
-
Update
README.md:- Replace all
PLUGIN_NAMEplaceholders - Replace
PLUGIN_DESCRIPTION - Remove component sections not being used
- Replace all
-
Remove unused component directories:
- If not using agents, remove
agents/ - If not using skills, remove
skills/ - If not using hooks, remove
hooks/ - Always keep
commands/(can be empty with .gitkeep)
- If not using agents, remove
Step 5: Update Marketplace Manifest
-
Read current
.claude-plugin/marketplace.json -
Add new plugin entry to
pluginsarray:{ "name": "plugin-name", "source": "./plugins/<category>/<plugin-name>", "description": "plugin description", "version": "0.1.0", "category": "category-name", "keywords": ["keyword1", "keyword2"], "author": { "name": "basher83" } } -
Write updated marketplace.json
-
Validate JSON syntax with
jq
Step 6: Create Initial Commit
git add plugins/<category>/<plugin-name>/
git add .claude-plugin/marketplace.json
git commit -m "feat: add <plugin-name> plugin
Create new <category> plugin: <description>
Initial version 0.1.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>"
Step 7: Provide Next Steps
Tell the user:
Plugin created successfully!
Location: plugins/<category>/<plugin-name>/
Next steps:
- Add your components (skills, agents, hooks, commands)
- Update README.md with usage examples
- Test locally:
/plugin marketplace add . - Install:
/plugin install <plugin-name>@lunar-claude
Examples
Example: Creating infrastructure plugin
User input:
- Name: terraform-tools
- Description: Terraform and OpenTofu helpers
- Category: infrastructure
- Keywords: terraform, opentofu, iac
- Components: skills, commands
Result:
- Created
plugins/infrastructure/terraform-tools/ - Added to marketplace.json under infrastructure category
- Ready for component development
Example: Creating homelab plugin
User input:
- Name: proxmox-ops
- Description: Proxmox cluster operations
- Category: homelab
- Keywords: proxmox, virtualization, homelab
- Components: agents, commands
Result:
- Created
plugins/homelab/proxmox-ops/ - Added to marketplace.json under homelab category
- Removed unused skills and hooks directories