# How to Submit a Plugin to the Claude Plugin Directory: A Complete Guide

> Submit your plugin to the Claude Plugin Directory with this complete guide. Learn to create a plugin.json manifest, update marketplace.json, and validate locally for a smooth submission process.

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

---

**Submit a plugin to the Claude plugin directory by creating a [`plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/plugin.json) manifest, adding an entry to the community [`marketplace.json`](https://github.com/anthropics/claude-plugins-community/blob/main/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`](https://github.com/anthropics/claude-plugins-community/blob/main/.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.

```json
{
  "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`](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json)** at the repository root. Each entry requires exact repository metadata and a specific commit SHA to ensure reproducible builds.

```json
{
  "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:

```bash
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`](https://github.com/anthropics/claude-plugins-community/blob/main/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`](https://github.com/anthropics/claude-plugins-community/blob/main/.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:

```bash
claude plugin marketplace add anthropics/claude-plugins-community
claude plugin install my-awesome-plugin@claude-community

```

## Summary

- Create a **[`.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/plugin.json)** manifest with required metadata fields including `name`, `version`, `description`, `author`, `homepage`, and `license`.
- Add a validated entry to **[`.claude-plugin/marketplace.json`](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json)** including a 40-character lowercase hex SHA referencing your exact commit.
- Run local validation scripts (**[`11-validate-invariants.sh`](https://github.com/anthropics/claude-plugins-community/blob/main/11-validate-invariants.sh)** and **[`20-validate-cli-marketplace.sh`](https://github.com/anthropics/claude-plugins-community/blob/main/20-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`](https://github.com/anthropics/claude-plugins-community/blob/main/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`](https://github.com/anthropics/claude-plugins-community/blob/main/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.