Claude Code plugin marketplace. Users add this catalog, then install individual plugins from it.
.claude-plugin/marketplace.json # catalog: name, owner, plugins
plugins/graphstack/ # Think -> Plan -> Build -> Review -> Test -> Ship -> Reflect
plugins/<plugin-name>/ # additional in-repo plugins
.claude-plugin/plugin.json # plugin manifest (required)
commands/ # optional slash commands
skills/ # optional skills
agents/ # optional agents
hooks/ # optional hooks
.mcp.json # optional MCP servers
README.md
Component directories live at the plugin root, never inside .claude-plugin/. Only create the ones a plugin actually uses.
Plugin sources in marketplace.json are relative to this repo root (for example ./plugins/my-plugin), not to .claude-plugin/.
Local path (no remote required):
/plugin marketplace add ~/projects/ph-agent-plugins
After the repo is on GitHub:
/plugin marketplace add <owner>/ph-agent-plugins
Install a listed plugin:
/plugin install graphstack@ph-agent-plugins
Refresh after catalog changes:
/plugin marketplace update ph-agent-plugins
- Create
plugins/<name>/.claude-plugin/plugin.jsonwith a kebab-casename(required). Adddescriptionandauthorwhen you have them. Use$schemahttps://json.schemastore.org/claude-code-plugin-manifest.json. - Add skills, commands, agents, hooks, or MCP servers at the plugin root using the default directory names above.
- Append an entry to
.claude-plugin/marketplace.json:
{
"name": "my-plugin",
"source": "./plugins/my-plugin",
"description": "What it does",
"author": { "name": "seto" },
"category": "development"
}name is the install slug (/plugin install my-plugin@ph-agent-plugins). Do not rename it after people have installed it; use displayName for UI labeling, or a top-level renames map if a rename is unavoidable.
- Validate from this repo root:
claude plugin validate .
An empty plugins array is valid; the validator warns until the first plugin is listed.
For scaffolding help, install Anthropic's official toolkit:
/plugin install plugin-dev@claude-plugins-official
then run /plugin-dev:create-plugin.