1.9 KiB
Plugin Registration
How to make a plugin discoverable and installable in a marketplace.
Registry file
.claude-plugin/marketplace.json at the host repo's root controls which
plugins are discoverable and installable.
Adding a plugin
Add an entry to the plugins array:
{
"name": "plugin-name",
"source": "./plugin-name",
"description": "Brief description of what it does"
}
Required fields:
name- Plugin identifier (must match directory name)source- Relative path to plugin directory (may be nested, e.g../plugins/plugin-name)description- One-line description for discovery
Prefer the register/unregister operations of
${CLAUDE_PLUGIN_ROOT}/workflows/plugin-config.md (backed by
plugin_config.rb) over hand-editing this file — the script verifies the
write and supports --marketplace_file to target a marketplace.json
anywhere on disk. If no marketplace file exists at all, marketplace checks
are skipped rather than failing.
Checklist
- Plugin directory exists with
.claude-plugin/plugin.json - Entry added to
.claude-plugin/marketplace.json - Description matches between both files
Verification
After registering, the plugin should be installable via:
/install plugin-name@<marketplace-id>
Project-Scoped Installation
After /install plugin@marketplace --scope=project:
- Plugin is registered in
~/.claude/plugins/installed_plugins.json - REQUIRED: Enable in project via
/enable-pluginor manually add to.claude/settings.json
Without step 2, the plugin will not activate in the project context.
Manual Enablement
If not using /enable-plugin, create or update .claude/settings.json in the target project:
{
"enabledPlugins": {
"{plugin-name}@{marketplace-id}": true
}
}
Example:
{
"enabledPlugins": {
"decomposer@cc-plugins": true
}
}