# Can I Submit a Pull Request Directly to claude-plugins-community? Submission Process Explained

> Learn why you can't submit a pull request directly to claude-plugins-community. Discover the read-only mirror and plugin review pipeline process.

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

---

**No, you cannot submit a pull request directly to the claude-plugins-community repository; it is a read-only mirror that syncs nightly from Anthropic's internal plugin review pipeline.**

The **claude-plugins-community** repository on GitHub serves as a public catalog of community-contributed plugins for Claude. While it appears to be a standard open-source project, its architecture and workflow differ fundamentally from typical GitHub repositories. Understanding this distinction prevents wasted effort and guides you toward the correct submission path.

## Why Direct Pull Requests Are Rejected

The repository's README explicitly states its immutable nature. According to the source documentation, the repo "is a read-only mirror of the plugin marketplace" and "pull requests will be automatically closed"【/cache/repos/github.com/anthropics/claude-plugins-community/main/README.md#L24-L27】.

This design serves a critical security function. Every plugin undergoes automated security scanning before publication. By funneling all submissions through a controlled web portal, Anthropic ensures that malicious or vulnerable code cannot bypass review by exploiting GitHub's PR mechanism.

## The Official Plugin Submission Workflow

To contribute a plugin, you must use Anthropic's dedicated submission interface rather than GitHub. The process follows three stages:

1. **Package your plugin** — Create a ZIP archive containing a `.claude-plugin` directory with a valid [`plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/plugin.json) manifest.
2. **Submit via web portal** — Visit [clau.de/plugin-directory-submission](https://clau.de/plugin-directory-submission) and upload your package.
3. **Await automated review** — The internal pipeline runs security scans; approved plugins merge into the marketplace and appear in the mirror repository during the next nightly sync.

This workflow ensures that the `claude-plugins-community` repository always reflects vetted, production-ready plugins without exposing the main codebase to unverified changes.

## Repository Architecture and Key Files

Understanding the repository structure helps you prepare compliant submissions. Each plugin resides in its own directory with a standardized internal layout.

### Plugin Directory Structure

```

plugin-name/
└── .claude-plugin/
    ├── plugin.json       # Required: plugin manifest

    ├── marketplace.json  # Optional: marketplace metadata

    └── icon.png          # Optional: plugin icon

```

### Critical Files in the Repository

| File Path | Purpose |
|-----------|---------|
| [`README.md`](https://github.com/anthropics/claude-plugins-community/blob/main/README.md) | Repository overview, usage instructions, and contribution policy【/cache/repos/github.com/anthropics/claude-plugins-community/main/README.md】 |
| [`tres-finance-plugin/.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/tres-finance-plugin/.claude-plugin/plugin.json) | Example manifest for the Tres Finance plugin【/cache/repos/github.com/anthropics/claude-plugins-community/main/tres-finance-plugin/.claude-plugin/plugin.json】 |
| [`quickdesign/.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/quickdesign/.claude-plugin/plugin.json) | Manifest for the QuickDesign plugin【/cache/repos/github.com/anthropics/claude-plugins-community/main/quickdesign/.claude-plugin/plugin.json】 |
| [`testdino/.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/testdino/.claude-plugin/plugin.json) | Sample plugin manifest【/cache/repos/github.com/anthropics/claude-plugins-community/main/testdino/.claude-plugin/plugin.json】 |
| [`eli5/.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/eli5/.claude-plugin/plugin.json) | ELI5 category plugin manifest【/cache/repos/github.com/anthropics/claude-plugins-community/main/eli5/.claude-plugin/plugin.json】 |
| [`.claude-plugin/marketplace.json`](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json) | Root marketplace index aggregating all community plugins【/cache/repos/github.com/anthropics/claude-plugins-community/main/.claude-plugin/marketplace.json】 |

### Example plugin.json Structure

Based on the repository's plugin organization, a valid [`plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/plugin.json) follows this pattern:

```json
{
  "name": "your-plugin-name",
  "version": "1.0.0",
  "description": "Concise description of your plugin's functionality",
  "entry_point": "main.py",
  "permissions": ["read:documents", "write:output"],
  "author": "Your Name",
  "license": "MIT"
}

```

Each plugin directory in `claude-plugins-community` contains a `.claude-plugin` folder housing this manifest, ensuring consistent metadata across the marketplace.

## Installing Plugins from the Community Repository

Once your plugin passes review and syncs to the mirror, users interact with it through Claude's CLI. The README documents these commands【/cache/repos/github.com/anthropics/claude-plugins-community/main/README.md#L18-L23】:

```bash

# Register the community marketplace source

claude plugin marketplace add anthropics/claude-plugins-community

# Install a specific community plugin

claude plugin install <plugin-name>@claude-community

```

These commands demonstrate how the read-only repository integrates with Claude's plugin ecosystem despite not accepting direct contributions.

## Summary

- **Direct PRs are rejected**: The `claude-plugins-community` repository is a read-only mirror with automated closure of pull requests.
- **Use the web portal**: Submit plugins through [clau.de/plugin-directory-submission](https://clau.de/plugin-directory-submission) for security screening.
- **Standard structure required**: Package plugins with a [`.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/plugin.json) manifest matching existing examples like `tres-finance-plugin` and `quickdesign`.
- **Nightly synchronization**: Approved plugins appear in the GitHub mirror automatically after passing automated review.

## Frequently Asked Questions

### What happens if I open a pull request on claude-plugins-community anyway?

The pull request will be automatically closed without review. The repository's automation specifically rejects all PRs because it functions solely as a synchronized mirror of Anthropic's internal plugin marketplace【/cache/repos/github.com/anthropics/claude-plugins-community/main/README.md#L24-L27】.

### How long does plugin review take after web portal submission?

The source documentation does not specify exact timelines, but the nightly synchronization schedule suggests reviews complete within 24 hours. Your plugin appears in the GitHub repository after the next automated sync cycle once approved.

### Can I modify an existing community plugin?

Changes follow the same workflow as new submissions. You must resubmit the updated plugin package through the web portal, where it undergoes fresh security scanning. The updated version replaces the previous one during the next nightly repository sync.

### What permissions should I request in my plugin.json?

Examine existing plugins like `tres-finance-plugin` for guidance. The `permissions` array should list only capabilities your plugin strictly requires, following principle of least privilege. Anthropic's automated review may flag excessive permission requests for security concerns.