Personal Claude Code plugin marketplace
.
├── .claude-plugin/
│ └── marketplace.json # Marketplace manifest (lists all plugins)
├── git/ # Custom plugin: git workflows & safety
├── gofmt/ # Custom plugin: Go formatting hooks
├── github/ # MCP wrapper: GitHub tools
├── gws/ # Custom plugin: Google Workspace CLI skills
├── sequential-thinking/ # MCP wrapper: chain-of-thought reasoning
└── CLAUDE.md
Each plugin directory contains .claude-plugin/plugin.json and its own components
(skills, hooks, agents, MCP configs). Plugins are at the repository root in a flat
structure.
| Command | Purpose |
|---|---|
claude plugin validate . |
Validate marketplace |
claude plugin validate ./<plugin-name> |
Validate specific plugin |
npx markdownlint-cli2 --config ${CLAUDE_PROJECT_DIR}/.markdownlint-cli2.jsonc "**/*.md" |
Lint markdown files |
uvx claudelint --strict |
Lint plugin |
-
Create plugin directory at repository root using
/plugin-dev:create-plugin -
Add entry to
.claude-plugin/marketplace.json:{"name": "plugin-name", "source": "./plugin-name", "strict": true} -
Update
README.mdAvailable Plugins table -
Validate:
claude plugin validate .andclaude plugin validate ./<plugin-name>
- Use kebab-case for all names
- Use
${CLAUDE_PLUGIN_ROOT}for portable paths in hooks/MCP configs - When editing plugin files (other than README.md or CLAUDE.md), bump the version in that plugin's
.claude-plugin/plugin.json - Use plugin-dev skills:
/plugin-dev:create-plugin,/plugin-dev:skill-reviewer,/plugin-dev:plugin-validator