How to Submit Plugins to the Claude Code Plugin Directory: External and Internal Workflows

External plugin authors must use the official submission form at https://clau.de/plugin-directory-submission rather than opening pull requests, while Anthropic team members can submit directly via PR to the anthropics/claude-plugins-official repository.

The anthropics/claude-plugins-official repository manages the Claude Code Plugin Directory through a strict contribution workflow that distinguishes between third-party external plugins and internal Anthropic-developed tools. While the repository is public on GitHub, direct code contributions are restricted to maintain security and quality standards. Understanding the correct submission path is essential for authors looking to submit plugins to the Claude Code Plugin Directory.

Why Pull Requests from External Authors Are Automatically Closed

The repository contains a GitHub Actions workflow specifically designed to prevent external pull requests. In .github/workflows/close-external-prs.yml (lines 35‑40), the automation detects when a user without write permissions attempts to open a PR and immediately closes it with a redirect message:

body: `Thanks for your interest! This repo only accepts contributions from Anthropic team members. 
If you'd like to submit a plugin to the marketplace, please submit your plugin 
[here](https://clau.de/plugin-directory-submission).`

This automated gatekeeping ensures that all third-party code undergoes formal security review before entering the external_plugins/ directory. Attempting to bypass this process by opening a PR will result in immediate closure and redirection to the official submission channel.

How External Authors Submit Plugins to the Directory

Third-party developers must follow a three-stage submission process that begins with a web form rather than a git workflow.

Step 1 – Complete the Official Submission Form

External partners must use the Plugin Directory Submission Form at https://clau.de/plugin-directory-submission. This form collects:

  • Plugin source code (as a ZIP archive or Git URL)
  • Complete metadata and licensing information
  • Brief description and functionality overview
  • Author contact details

Step 2 – Anthropic Review and Approval Process

After submission, the Anthropic team conducts a comprehensive review of the package. The review evaluates security compliance, code quality, and compatibility with Claude Code's architecture. Accepted plugins are manually merged into the external_plugins/ folder of the repository by internal maintainers.

Step 3 – Publication and Discovery

Once merged into the external_plugins/ directory, the plugin becomes discoverable within Claude Code. Users can find it via the /plugin > Discover UI or install it immediately using the CLI command:

/plugin install {plugin-name}@claude-plugin-directory

Required Plugin Structure and Manifest Files

Whether submitted externally or internally, every plugin must adhere to the standard directory layout documented in the repository's README.md (lines 33‑43). The structure requires specific folders and a mandatory manifest file.

Required directory skeleton:

my-awesome-plugin/
├── .claude-plugin/
│   └── plugin.json          # Required manifest

├── .mcp.json                # Optional MCP server specification

├── commands/
│   └── hello.md             # Optional slash command definitions

├── agents/
│   └── assistant.md         # Optional agent definitions

├── skills/
│   └── greet/
│       └── SKILL.md         # Optional skill definitions

└── README.md                # User documentation

The plugin.json manifest (required):

{
  "name": "my-awesome-plugin",
  "version": "0.1.0",
  "description": "A simple example plugin for Claude Code.",
  "author": "Your Name <[email protected]>",
  "license": "MIT",
  "commands": ["hello"],
  "agents": ["assistant"],
  "skills": ["greet"]
}

This manifest file, located at .claude-plugin/plugin.json, contains the metadata that the marketplace reads to expose your plugin's commands, agents, and skills to users.

Internal Submission Process for Anthropic Team Members

Anthropic employees and authorized team members follow a different workflow. Internal authors can open pull requests directly against the repository, but must satisfy specific validation requirements.

Each internal PR must:

  • Follow the standard plugin layout documented in README.md (lines 33‑43)
  • Pass the front-matter validation workflow defined in .github/workflows/validate-frontmatter.yml, which ensures that agents/, skills/, and commands/ markdown files contain correct front-matter headers
  • Include a valid plugin.json manifest with complete metadata

This streamlined process allows rapid iteration on official plugins while maintaining automated quality checks.

Summary

  • External authors cannot use GitHub PRs: The .github/workflows/close-external-prs.yml workflow automatically closes external pull requests and directs authors to the submission form.
  • Use the official form: Submit external plugins via https://clau.de/plugin-directory-submission, providing source code, metadata, and licensing details.
  • Follow the standard structure: Every plugin requires the directory layout specified in README.md (lines 33‑43) and a valid .claude-plugin/plugin.json manifest.
  • Await review: Accepted external plugins are merged into the external_plugins/ directory by Anthropic maintainers.
  • Install via CLI: Published plugins are accessible using /plugin install {name}@claude-plugin-directory.

Frequently Asked Questions

Can I submit a plugin by opening a pull request on GitHub?

No. The repository automatically closes pull requests from users without write permissions. As implemented in .github/workflows/close-external-prs.yml (lines 35‑40), the system posts a closing comment directing you to the official submission form at https://clau.de/plugin-directory-submission.

What happens after I submit the plugin directory form?

The Anthropic team reviews your submission for security vulnerabilities, code quality, and compatibility with Claude Code. If approved, maintainers manually merge your plugin into the external_plugins/ directory, making it available to all users through the plugin marketplace.

What files are required in my plugin package?

You must include a .claude-plugin/plugin.json manifest file and follow the directory structure documented in README.md (lines 33‑43). Optional components include .mcp.json for MCP server specs, commands/ for slash commands, agents/ for agent definitions, and skills/ for skill definitions. A README.md is also required for user documentation.

How do users install my plugin once it's approved?

Users can discover and install approved plugins through the Claude Code UI via /plugin > Discover, or they can install directly using the command /plugin install {plugin-name}@claude-plugin-directory, where {plugin-name} matches the name field in your plugin.json manifest.

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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →