# How Does the Claude Plugin Submission Process Work? A Complete Guide

> Learn the Claude plugin submission process. This guide explains the web-based portal for developers to submit their plugins directly to Anthropic, not via GitHub.

- Repository: [Anthropic/claude-plugins-community](https://github.com/anthropics/claude-plugins-community)
- Tags: how-to-guide
- Published: 2026-09-06

---

**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](https://github.com/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)](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`](https://github.com/anthropics/claude-plugins-community/blob/main/plugin.json)**: Defines the plugin's runtime behavior, entry points, and permissions
- **[`marketplace.json`](https://github.com/anthropics/claude-plugins-community/blob/main/marketplace.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)](https://github.com/anthropics/claude-plugins-community/blob/main/quickdesign/.claude-plugin/plugin.json) to see a properly structured metadata file:

```json
{
  "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)](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.json`](https://github.com/anthropics/claude-plugins-community/blob/main/plugin.json) contents
- 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`](https://github.com/anthropics/claude-plugins-community/blob/main/.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/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)](https://github.com/anthropics/claude-plugins-community/blob/main/README.md) documents the complete installation workflow:

```bash

# 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`](https://github.com/anthropics/claude-plugins-community/blob/main/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)](https://github.com/anthropics/claude-plugins-community/blob/main/README.md) |
| [`.github/workflows/close-external-prs.yml`](https://github.com/anthropics/claude-plugins-community/blob/main/.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)](https://github.com/anthropics/claude-plugins-community/blob/main/.github/workflows/close-external-prs.yml) |
| [`.claude-plugin/marketplace.json`](https://github.com/anthropics/claude-plugins-community/blob/main/.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)](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)](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)](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-submission` as documented in the [[`README.md`](https://github.com/anthropics/claude-plugins-community/blob/main/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/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-community` after 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`](https://github.com/anthropics/claude-plugins-community/blob/main/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`](https://github.com/anthropics/claude-plugins-community/blob/main/marketplace.json) registry; and it hosts reference implementations that demonstrate proper plugin structure for new developers.