Publish Skill
Package a skill into a Claude Code plugin and publish it to a marketplace.
Prerequisite: The skill's SKILL.md is already created (see /agent-skills:skill-creator for writing skills).
Step 1: Package as Plugin
Wrap your skill in the standard plugin structure:
my-plugin/
├── .claude-plugin/
│ └── plugin.json
└── skills/
└── my-skill/
├── SKILL.md
├── scripts/ # optional
└── references/ # optional
Create .claude-plugin/plugin.json:
{
"name": "my-plugin",
"version": "1.0.0",
"description": "Brief description of what the plugin provides",
"author": { "name": "your-name" },
"repository": "https://github.com/user/repo",
"license": "MIT",
"keywords": ["relevant", "tags"]
}
Name rules: kebab-case, lowercase, no spaces. Must match /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/.
Step 2: Choose Distribution Path
Option A: Standalone Marketplace
Host your own marketplace repo on GitHub. Best for: collections of related skills you maintain.
Create .claude-plugin/marketplace.json at repo root:
{
"name": "your-marketplace-name",
"owner": { "name": "your-github-username" },
"metadata": {
"description": "What this marketplace provides",
"version": "1.0.0",
"pluginRoot": "."
},
"plugins": [
{
"name": "my-plugin",
"source": "./plugins/my-plugin",
"description": "Plugin description",
"version": "1.0.0",
"author": { "name": "your-name" }
}
]
}
Users install with:
/plugin marketplace add your-github-username/your-repo
/plugin install my-plugin@your-marketplace-name
Option B: Contribute to an Existing Marketplace
Best for: single skills that fit an existing collection.
To contribute to yansircc/agent-skills:
- Fork the repo
- Add your skill to
plugins/agent-skills/skills/your-skill/SKILL.md - Submit a PR
Step 3: Validate
Test locally before publishing:
# Register local marketplace
/plugin marketplace add ./path/to/your-repo
# Install the plugin
/plugin install my-plugin@your-marketplace-name
# Test skill invocation
/my-plugin:my-skill
Verify:
- Skill appears in
/skillslisting - Skill triggers on expected phrases
- Scripts execute correctly (if any)
- References load when needed (if any)
Step 4: Publish
Push to GitHub. Users can then:
/plugin marketplace add your-github-username/your-repo
/plugin install my-plugin@your-marketplace-name
Checklist
-
plugin.jsonhas valid kebab-casename -
marketplace.jsonsourcepaths point to correct plugin directories -
SKILL.mdhas YAML frontmatter withname,description,version - All script paths use
${CLAUDE_PLUGIN_ROOT}(not hardcoded paths) - README documents installation steps