How to Add a New Plugin to the Claude Plugins Community Repository
To add a new plugin to the Claude plugins community repository, create a top-level directory with a README.md and a skills/ subdirectory containing individual skill folders, each with a SKILL.md file that defines metadata, JSON schemas for inputs/outputs, and usage examples.
The anthropics/claude-plugins-community repository hosts community-contributed extensions for Claude, organized as a collection of independent plugins. Each plugin lives in its own top-level directory—such as tres-finance-plugin, quickdesign, or eli5—and exposes functionality through structured skill definitions that Claude discovers automatically by scanning the repository. Adding a new plugin requires following the established directory layout and markdown schema conventions demonstrated by existing community submissions.
Repository Structure and Plugin Layout
The repository uses a flat structure where each plugin occupies a dedicated top-level directory. This design allows the Claude platform to discover and load plugins without central registration files or manifests.
Top-Level Plugin Directory
Create a new directory at the repository root using a descriptive, hyphenated name for your plugin (e.g., my-awesome-plugin). This directory must contain:
- A
README.mdproviding an overview of the plugin's purpose, usage instructions, and attribution - A
skills/subdirectory containing individual skill definitions
The repository's CI/CD pipeline, defined in .github/workflows/, automatically validates any changes to these directories when you open a pull request.
The Skills Subdirectory System
Inside your plugin directory, create a skills/ folder. Each skill you wish to expose must have its own subfolder within this directory. For example, the tres-finance-plugin organizes its capabilities into folders like tres-finance-plugin/skills/tres-report-create/.
According to the source code structure, Claude scans these skill directories for a well-formed SKILL.md file. No additional configuration files—such as plugin.yaml or package.json—are required for discovery.
Creating the SKILL.md Definition File
The SKILL.md file serves as the contract between your plugin and Claude. Every skill folder must contain this file, which follows a strict markdown schema to define metadata, inputs, outputs, and examples.
Required Metadata and Schema
The SKILL.md must begin with a title and description, followed by structured sections for inputs and outputs. The file format mirrors the convention used in tres-finance-plugin/skills/tres-report-create/SKILL.md and quickdesign/skills/quickdesign/SKILL.md.
# My Cool Skill
**Description**
Generates a concise summary of a user-provided text snippet.
Input and Output JSON Schemas
Define the skill's interface using JSON Schema within the SKILL.md. The Inputs section must specify the type, properties, and required fields for all parameters Claude will pass to your skill.
**Inputs**
```json
{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The text to summarize."
},
"max_length": {
"type": "integer",
"description": "Maximum length of the summary in words.",
"default": 50
}
},
"required": ["text"]
}
Similarly, the Outputs section defines the expected return structure:
**Outputs**
```json
{
"type": "object",
"properties": {
"summary": {
"type": "string",
"description": "The generated summary."
}
},
"required": ["summary"]
}
### Example Usage Documentation
Include concrete examples showing the prompt template and expected JSON response. This documentation helps Claude understand how to invoke the skill correctly.
```markdown
**Example Usage**
- **Prompt**:
`Summarize the following paragraph in ≤ 50 words: {{text}}`
- **Response** (JSON):
```json
{"summary": "..."}
## Optional Supporting Resources
Beyond the mandatory [`SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main/SKILL.md), you can include supplementary directories within each skill folder to provide additional context, workflows, or model specifications.
- **`references/`** – Design rationale, API documentation, or edge-case handling notes (e.g., [`references/design-notes.md`](https://github.com/anthropics/claude-plugins-community/blob/main/references/design-notes.md))
- **`pipelines/`** – Workflow definitions showing how the skill integrates with other Claude capabilities (e.g., [`pipelines/my-pipeline.md`](https://github.com/anthropics/claude-plugins-community/blob/main/pipelines/my-pipeline.md))
- **`models/`** – Specifications for external models or fine-tuned LLMs used by the skill (e.g., [`models/model-spec.md`](https://github.com/anthropics/claude-plugins-community/blob/main/models/model-spec.md))
These optional subdirectories enhance the plugin's documentation without affecting automatic discovery. The `quickdesign` and `eli5` plugins demonstrate this pattern by including pipelines and reference materials alongside their core [`SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main/SKILL.md) files.
## Validation and Submission Workflow
Once your plugin structure follows the conventions above, submit your contribution through the standard GitHub workflow:
1. Commit your new top-level directory with all [`SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main/SKILL.md) files and supporting resources
2. Open a Pull Request against the `main` branch
3. The GitHub Actions CI in `.github/workflows/` automatically lints and validates that your [`SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main/SKILL.md) complies with the repository's schema
4. Community reviewers verify that the plugin meets quality standards and follows the established directory layout
After CI passes and reviewers approve, merging the PR makes the new plugin immediately available to Claude users. The platform discovers the new capabilities automatically during its next scan of the `skills/` directories.
## Summary
- **Create a top-level directory** with a descriptive name (e.g., `my-awesome-plugin`) containing a [`README.md`](https://github.com/anthropics/claude-plugins-community/blob/main/README.md) and `skills/` folder
- **Define skills** in individual subfolders under `skills/`, each containing a [`SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main/SKILL.md) with metadata, JSON schemas for inputs/outputs, and usage examples
- **Include optional resources** such as `references/`, `pipelines/`, or `models/` folders to support complex functionality
- **Submit via Pull Request** to `main`; the CI pipeline in `.github/workflows/` validates schema compliance automatically
- **No registration required**—Claude discovers plugins by scanning `skills/` directories for valid [`SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main/SKILL.md) files
## Frequently Asked Questions
### Do I need to register my plugin in a central manifest file?
No. As implemented in `anthropics/claude-plugins-community`, Claude discovers plugins automatically by scanning the `skills/` directories for well-formed [`SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main/SKILL.md) files. There is no central manifest, [`plugin.yaml`](https://github.com/anthropics/claude-plugins-community/blob/main/plugin.yaml), or [`package.json`](https://github.com/anthropics/claude-plugins-community/blob/main/package.json) requirement.
### What CI checks validate my plugin submission?
The GitHub Actions workflows in `.github/workflows/` automatically lint and validate your submission. These checks ensure your [`SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main/SKILL.md) files comply with the repository's schema and that your directory structure matches the conventions used by existing plugins like `tres-finance-plugin` and `eli5`.
### Can I include multiple skills in one plugin?
Yes. A single top-level plugin directory can contain multiple skill subfolders under its `skills/` directory. Each skill folder must contain its own [`SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main/SKILL.md) file defining that specific capability, allowing you to group related functionality under one plugin name.
### How does Claude discover plugins in this repository?
Claude automatically discovers plugins by recursively scanning the repository for `skills/` directories and parsing the [`SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main/SKILL.md) files within them. This discovery mechanism requires no manual registration; simply merging a properly structured plugin into the `main` branch makes it available to the platform.
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 →