How Does the Claude Plugin Submission Process Work? A Complete Guide
The Claude plugin submission process is entirely web-based through Anthropic's official portal at clau.de/plugin-directory-submission—developers cannot submit plugins via GitHub pull requests, as the community repository is a read-only mirror that automatically rejects external contributions.
The anthropics/claude-plugins-community repository serves as a public mirror of the official Claude plugin marketplace. Understanding this architecture is essential for developers hoping to distribute their plugins to Claude users. This guide explains the complete submission pipeline, from initial development to final marketplace listing, based on the actual source code and enforcement mechanisms in the repository.
The Submission Architecture: Why GitHub PRs Are Rejected
The repository implements a strict read-only policy for external contributors. This design decision centralizes quality control and security vetting through Anthropic's internal infrastructure.
The enforcement mechanism lives in [.github/workflows/close-external-prs.yml](https://github.com/anthropics/claude-plugins-community/blob/main/.github/workflows/close-external-prs.yml). This workflow automatically detects and closes any pull request opened by users outside the Anthropic organization, posting a comment that redirects submitters to the official web portal.
This architectural choice ensures:
- Single source of truth: The marketplace JSON is controlled internally
- Mandatory security scanning: Every plugin undergoes automated vetting before publication
- Consistent quality standards: Human review occurs within Anthropic's internal pipeline
The 5-Step Plugin Submission Pipeline
Step 1: Develop a Compliant Plugin
Before submission, your plugin must conform to the Claude plugin specification. This requires two critical files:
plugin.json: Defines the plugin's runtime behavior, entry points, and permissionsmarketplace.json: The catalog entry that appears in the public listing
You can reference existing plugins for the correct schema. For example, examine [quickdesign/.claude-plugin/plugin.json](https://github.com/anthropics/claude-plugins-community/blob/main/quickdesign/.claude-plugin/plugin.json) to see a properly structured metadata file:
{
"name": "quickdesign",
"version": "1.0.0",
"description": "Generate UI mockups from text descriptions",
"entry_point": "src/index.ts",
"permissions": ["fetch", "fs_read"]
}
Step 2: Submit via the Web Portal
Navigate to https://clau.de/plugin-directory-submission to access the official submission form. The repository's [README.md](https://github.com/anthropics/claude-plugins-community/blob/main/README.md) explicitly documents this as the only valid submission channel:
"Submit via [clau.de/plugin-directory-submission]"
The form typically requires:
- Plugin name and unique identifier
- Description and category tags
- Complete
plugin.jsoncontents - ZIP archive of the plugin source code
- Author contact information and license declaration
Step 3: Automated Security Scanning
Upon submission, Anthropic's internal CI pipeline executes automated security checks on your plugin artifact. This scanning validates:
- Requested permissions against actual API usage
- Network call destinations and data handling patterns
- File system access boundaries
- Dependency vulnerabilities in bundled packages
Plugins that fail security scanning are rejected with detailed feedback provided to the submitter.
Step 4: Internal Review and Approval
Following successful automated scanning, an Anthropic reviewer manually validates:
- Metadata accuracy: Description matches functionality
- User experience quality: Error handling, documentation completeness
- Marketplace fit: No duplication, appropriate categorization
Approved plugins are written to the internal .claude-plugin/marketplace.json file, which serves as the authoritative plugin registry.
Step 5: Automated Sync to Public Repository
The public repository synchronizes nightly from Anthropic's internal source of truth. This explains why:
- You cannot find submission instructions for opening PRs
- The [
marketplace.json](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json) file is never modified by community members - Plugin updates appear in batches rather than immediate commits
Installing and Using Community Plugins
End users consume plugins through the Claude CLI or web interface. The [README.md](https://github.com/anthropics/claude-plugins-community/blob/main/README.md) documents the complete installation workflow:
# Register the community marketplace in your Claude CLI configuration
claude plugin marketplace add anthropics/claude-plugins-community
# Install a specific plugin by name
claude plugin install quickdesign@claude-community
# Verify installation
claude plugin list
The @claude-community suffix specifies the marketplace source, distinguishing community plugins from official Anthropic plugins or private registries.
Key Files and Their Roles
| File | Purpose | Location |
|---|---|---|
README.md |
User-facing documentation for marketplace setup and submission portal link | [README.md](https://github.com/anthropics/claude-plugins-community/blob/main/README.md) |
.github/workflows/close-external-prs.yml |
Automated enforcement preventing direct GitHub contributions | [.github/workflows/close-external-prs.yml](https://github.com/anthropics/claude-plugins-community/blob/main/.github/workflows/close-external-prs.yml) |
.claude-plugin/marketplace.json |
Canonical registry of all approved community plugins | [.claude-plugin/marketplace.json](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json) |
*/.claude-plugin/plugin.json |
Individual plugin metadata examples (reference implementations) | [quickdesign/.claude-plugin/plugin.json](https://github.com/anthropics/claude-plugins-community/blob/main/quickdesign/.claude-plugin/plugin.json) |
Summary
-
No GitHub PRs: The [
.github/workflows/close-external-prs.yml](https://github.com/anthropics/claude-plugins-community/blob/main/.github/workflows/close-external-prs.yml) workflow automatically rejects all external pull requests with a redirect to the web portal. -
Web-only submission: All plugins must be submitted through
clau.de/plugin-directory-submissionas documented in the [README.md](https://github.com/anthropics/claude-plugins-community/blob/main/README.md). -
Mandatory vetting: Automated security scanning and human review occur within Anthropic's internal pipeline before any plugin appears in [
marketplace.json](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json). -
Read-only mirror: The public repository syncs from an internal source; community members cannot directly modify plugin listings.
-
CLI consumption: Users install vetted plugins using
claude plugin install <name>@claude-communityafter adding the marketplace.
Frequently Asked Questions
Can I submit a Claude plugin by opening a pull request on GitHub?
No. The repository explicitly prohibits direct contributions through a GitHub Actions workflow that automatically closes external PRs. The workflow posts a comment directing submitters to clau.de/plugin-directory-submission. This enforcement ensures all plugins undergo mandatory security scanning and internal review before publication.
What happens after I submit my plugin through the web portal?
Your submission enters Anthropic's internal pipeline where automated security scans validate permissions, network behavior, and dependencies. If scanning passes, a human reviewer evaluates quality and metadata accuracy. Approved plugins are added to the internal marketplace registry and sync to the public repository within 24 hours.
How can I update an existing plugin I've already published?
Plugin updates follow the same submission process as new plugins. Return to clau.de/plugin-directory-submission and submit your updated version with an incremented version number in plugin.json. The update undergoes the same security scanning and review before replacing the previous version in the marketplace.
Why does the community repository exist if submissions aren't accepted there?
The repository serves three purposes: it provides a transparent, auditable record of all approved community plugins; it enables CLI-based marketplace discovery through the marketplace.json registry; and it hosts reference implementations that demonstrate proper plugin structure for new developers.
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 →