my-plugin/
├── .claude-plugin/
│ └── plugin.json # Required: Plugin manifest
├── skills/ # Optional: plugin skill files
├── commands/ # Optional: Slash commands
├── agents/ # Optional: Agent definitions
└── hooks/ # Optional: Hook configurations
{
"name": "my-plugin",
"version": "1.0.0",
"description": "What this plugin does",
"author": {
"name": "Your Name",
"url": "https://github.com/username"
},
"repository": "https://github.com/username/repo",
"license": "MIT",
"keywords": ["keyword1", "keyword2"]
}| Field | Description |
|---|---|
name |
Unique identifier, kebab-case |
| Field | Description |
|---|---|
version |
Semantic version (e.g., 1.0.0) |
description |
Brief description |
author |
Author info (name, email, url) |
repository |
Source code URL |
license |
License type |
keywords |
Search keywords |
Plugin packages in this repository currently use file skills under skills/*.SKILL.md.
Use this layout for plugin marketplace compatibility unless the plugin runtime you target documents directory skill support.
For the top-level Spellbook catalog installed by install.sh, see Skill Format Policy. New catalog skills should generally use the directory layout when they need progressive disclosure, templates, scripts, evals, or other companion files.
Plugin skill files use this frontmatter:
---
name: skill-name
description: When to use this skill (max 1024 chars)
allowed-tools: Read, Grep, Glob, Edit
---
# Skill Title
## Instructions
What Claude should do when this skill is activated...
## Examples
- Example trigger: "Do X"
- Example trigger: "Help me with Y"Place *.md files in the commands/ directory:
---
description: What this command does
---
# Command Name
Instructions for Claude when this command is invoked...Place *.md files in the agents/ directory:
---
name: agent-name
description: Agent specialization
tools: ["Read", "Grep", "Glob"]
---
# Agent Title
Agent behavior and instructions...# Add your plugin as a local marketplace
/plugin marketplace add /path/to/my-plugin
# Install it
/plugin install my-plugin
# Test functionality
# ...
# Uninstall when done testing
/plugin uninstall my-plugin- Push to GitHub
- Share the installation command:
/plugin marketplace add https://github.com/username/repo /plugin install my-plugin