cc-os/plugins/cc-architect/references/layout/plugin-registration.md

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

  1. Plugin directory exists with .claude-plugin/plugin.json
  2. Entry added to .claude-plugin/marketplace.json
  3. 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:

  1. Plugin is registered in ~/.claude/plugins/installed_plugins.json
  2. REQUIRED: Enable in project via /enable-plugin or 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
  }
}