kebab-case. Components are namespaced under it, e.g. /deploy-tools:release.
Pins users to it until you bump it.
owner/repo or a full URL. Used for repository and the install command.
{
"name": "deploy-tools",
"version": "1.0.0",
"description": "Skills and hooks for deploying to staging and production safely.",
"repository": "https://github.com/your-org/deploy-tools",
"license": "MIT",
"keywords": [
"deploy",
"ci",
"release"
]
}
{
"name": "deploy-tools-marketplace",
"owner": {
"name": "Your name"
},
"description": "deploy-tools plugin marketplace",
"plugins": [
{
"name": "deploy-tools",
"source": "./",
"description": "Skills and hooks for deploying to staging and production safely."
}
]
}
deploy-tools/
├── .claude-plugin/
│ ├── plugin.json
│ └── marketplace.json
├── skills/<name>/SKILL.md
└── hooks/hooks.json
/plugin marketplace add your-org/deploy-tools
/plugin install deploy-tools@deploy-tools-marketplace
From folder to /plugin install
- Put your components in the default folders shown above. Claude Code finds them without listing them in plugin.json.
- Test locally with
claude --plugin-dir .and runclaude plugin validate .. - Push to GitHub. People add it with
/plugin marketplace add owner/repoand install it.
Build the pieces with the subagent generator, hooks generator and SKILL.md validator, then list your plugin where people look: the mods directory indexes plugins from GitHub.
Frequently asked questions
What is plugin.json?
The manifest of a Claude Code plugin, saved at .claude-plugin/plugin.json. It names the plugin, which namespaces every skill, agent and command inside it, and holds metadata like version, description, author and license. Only name is required.
What is marketplace.json?
A catalogue file at .claude-plugin/marketplace.json that lists one or more plugins and where to fetch them. Once a repo has one, anyone can run /plugin marketplace add owner/repo and then /plugin install name@marketplace.
Do I need a marketplace to share a plugin?
To let people install it with /plugin, yes, but it can be the same repo: put plugin.json and marketplace.json side by side and point the entry's source at "./". To test without publishing, run claude --plugin-dir ./path-to-plugin.
Which plugin names are not allowed?
Names must use letters, digits, ".", "_" and "-". Names starting with claude-, anthropic-, anthropics- or cc-plugin-, or putting "official" next to claude or anthropic, are reserved for Anthropic. The form above checks this as you type.
How do I check my plugin before publishing?
Run claude plugin validate . in the plugin or marketplace folder. It reports invalid names, unknown keys, missing descriptions and component problems without installing anything.
Sources: Plugin manifest reference, Marketplace reference. Claude Code Agents is an independent site, not affiliated with Anthropic.