How to Submit a Plugin to the Claude Plugin Directory: A Complete Guide
Submit a plugin to the Claude plugin directory by creating a plugin.json manifest, adding an entry to the community marketplace.json file, validating locally with CI scripts, and completing the official submission form at clau.de/plugin-directory-submission.
The anthropics/claude-plugins-community repository hosts the official registry for Claude community plugins. To successfully submit a plugin to the Claude plugin directory, you must structure your code with standardized metadata, register it in the centralized marketplace, and pass automated validation checks before Anthropic reviews your submission.
Prerequisites and Plugin Structure
Every plugin requires a standardized folder structure and a metadata file that the Claude CLI recognizes at runtime.
Creating the plugin.json Manifest
Each plugin must contain a .claude-plugin/plugin.json file in its root directory. This JSON manifest defines the plugin's identity, versioning, and authorship according to the schema used by the Claude CLI.
{
"name": "my-awesome-plugin",
"version": "0.1.0",
"description": "A short, clear description (10-2000 characters).",
"author": { "name": "Your Name", "url": "https://your-website.example" },
"homepage": "https://github.com/your-org/your-repo",
"license": "MIT",
"keywords": ["ai", "productivity"]
}
The name field must be unique across the marketplace, and the description must contain between 10 and 2000 characters according to the validation invariants.
Registering in the Community Marketplace
After structuring your plugin, you must add it to the community registry before submitting to the official directory.
Adding Your Entry to marketplace.json
The community marketplace lives in .claude-plugin/marketplace.json at the repository root. Each entry requires exact repository metadata and a specific commit SHA to ensure reproducible builds.
{
"name": "my-awesome-plugin",
"description": "A short description of what the plugin does.",
"source": {
"source": "url",
"url": "https://github.com/your-org/your-repo.git",
"sha": "0123456789abcdef0123456789abcdef01234567"
},
"homepage": "https://github.com/your-org/your-repo"
}
Understanding the SHA Requirement (Invariant I5)
The sha field must be a 40-character lowercase hex commit hash (invariant I5). This immutable reference ensures that the Claude CLI installs exactly the code you reviewed, preventing supply-chain attacks from subsequent commits. The SHA corresponds to the exact commit you want Anthropic to review and publish.
Validating Your Submission Locally
Before submitting, verify that your entry passes all invariants using the repository's validation scripts located in .github/actions/validate-plugins/.
Running the CI Validation Scripts
Set the required environment variables and execute the validation suite to catch errors before official review:
export ACTION_PATH=.github/actions/validate-plugins
export VALIDATE_TMP=/tmp/validate-plugins
export MARKETPLACE_PATH=.claude-plugin/marketplace.json
mkdir -p "$VALIDATE_TMP"
bash $ACTION_PATH/scripts/11-validate-invariants.sh
bash $ACTION_PATH/scripts/20-validate-cli-marketplace.sh
These scripts verify alphabetical ordering, duplicate plugin name detection, description length constraints, URL format validity, and SHA format compliance. Fix any validation errors before proceeding to the submission form.
Official Submission Process
Once your code passes local validation, complete the official submission workflow through Anthropic's review pipeline.
Submitting via the Web Form
Navigate to clau.de/plugin-directory-submission and provide:
- Plugin name (must match the entry in
marketplace.json) - Public repository URL
- Exact 40-character commit SHA from your marketplace entry
- Brief description matching your registry entry
The form feeds into Anthropic's review pipeline, which clones your repository at the specified SHA and runs the same validation steps enforced by the validate-plugins GitHub Action documented in .github/actions/validate-plugins/README.md.
Review and Publication Timeline
After submission, Anthropic's review pipeline validates the repository contents against community invariants. Direct pull requests to the anthropics/claude-plugins-community repository are automatically closed; all submissions must flow through the official form. Upon approval, the entry merges into the read-only mirror and appears at claude.com/plugins.
Installing Published Plugins
Once published, users can discover and install your plugin via the Claude CLI:
claude plugin marketplace add anthropics/claude-plugins-community
claude plugin install my-awesome-plugin@claude-community
Summary
- Create a
.claude-plugin/plugin.jsonmanifest with required metadata fields includingname,version,description,author,homepage, andlicense. - Add a validated entry to
.claude-plugin/marketplace.jsonincluding a 40-character lowercase hex SHA referencing your exact commit. - Run local validation scripts (
11-validate-invariants.shand20-validate-cli-marketplace.sh) before submitting to catch formatting errors. - Submit exclusively through the official form at clau.de/plugin-directory-submission; do not open pull requests directly to the repository.
- Published plugins appear at claude.com/plugins and install via
claude plugin install.
Frequently Asked Questions
What file format does the plugin.json require?
The plugin.json file must be valid JSON containing specific fields: name (unique identifier), version (semantic versioning), description (10-2000 characters), author object with name and URL, homepage URL, license string, and optional keywords array. The file must reside in a .claude-plugin/ directory within your plugin's root folder.
Can I submit a plugin via direct pull request?
No. Direct pull requests to the anthropics/claude-plugins-community repository are automatically closed. All submissions must use the official web form at clau.de/plugin-directory-submission. This ensures Anthropic can verify repository ownership, validate the specific commit SHA, and run security checks before merging entries into the read-only marketplace mirror.
What validation checks run during CI?
The CI workflow executes scripts from .github/actions/validate-plugins/ to enforce invariants including: duplicate plugin name detection, description length validation (10-2000 characters), URL format verification, SHA format validation (40-character lowercase hex), and JSON schema compliance. The 20-validate-cli-marketplace.sh script specifically validates that marketplace entries match the expected CLI structure.
How long does the review process take?
The review process involves cloning your repository at the submitted SHA, running the full validation suite, and manual security review by Anthropic. While specific timelines vary based on submission volume, approved plugins immediately appear in the public directory at claude.com/plugins and become available for installation via the Claude CLI.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →