|
| 1 | +--- |
| 2 | +title: About {% data variables.product.prodname_copilot %} plugins |
| 3 | +shortTitle: Plugins |
| 4 | +allowTitleToDifferFromFilename: true |
| 5 | +intro: 'Plugins are installable packages that extend {% data variables.product.prodname_copilot_short %} with reusable agents, skills, hooks, and integrations.' |
| 6 | +product: '{% data reusables.gated-features.copilot-cli %}<br><br>{% data reusables.gated-features.copilot-cloud-agent %}<br><a href="https://github.com/features/copilot/plans?ref_product=copilot&ref_type=purchase&ref_style=button" target="_blank" class="btn btn-primary mt-3 mr-3 no-underline"><span>Sign up for {% data variables.product.prodname_copilot_short %}</span> {% octicon "link-external" height:16 %}</a>' |
| 7 | +versions: |
| 8 | + feature: copilot |
| 9 | +contentType: concepts |
| 10 | +category: |
| 11 | + - Learn about Copilot # Copilot discovery page |
| 12 | + - Learn about Copilot CLI # Copilot CLI bespoke page |
| 13 | +docsTeamMetrics: |
| 14 | + - copilot-cli |
| 15 | +redirect_from: |
| 16 | + - /copilot/concepts/agents/copilot-cli/about-cli-plugins |
| 17 | +--- |
| 18 | + |
| 19 | +Plugins provide a way to distribute custom {% data variables.product.prodname_copilot_short %} functionality. You can use a plugin to add a preconfigured set of capabilities to {% data variables.product.prodname_copilot_short %}, including {% data variables.copilot.copilot_cli_short %} and {% data variables.copilot.copilot_cloud_agent %}. |
| 20 | + |
| 21 | +## What is a plugin? |
| 22 | + |
| 23 | +* A distributable package that extends {% data variables.product.prodname_copilot_short %}'s functionality. |
| 24 | +* A bundle of components in a single installable unit. |
| 25 | + |
| 26 | +## What plugins contain |
| 27 | + |
| 28 | +A plugin can contain some or all of the following components: |
| 29 | + |
| 30 | +* **Custom agents** — Specialized AI assistants (`*.agent.md` files in `agents/`) |
| 31 | +* **Skills** — Discrete callable capabilities (skills subdirectories in `skills/`, containing a `SKILL.md` file) |
| 32 | +* **Hooks** — Event handlers that intercept agent behavior (a `hooks.json` file in the plugin root, or in `hooks/`) |
| 33 | +* **MCP server configurations** — Model Context Protocol integrations (a `.mcp.json` file in the plugin root, or an `mcp.json` file in `.github/`) |
| 34 | +* **LSP server configurations** — Language Server Protocol integrations (an `lsp.json` file in the plugin root, or in `.github/`) |
| 35 | + |
| 36 | +## How plugins are structured |
| 37 | + |
| 38 | +A plugin is a directory with a specific structure. At minimum, it contains a `plugin.json` manifest file at the root of the directory. The manifest gives the plugin a name and points to the components the plugin provides. Alongside the manifest, the directory can contain any combination of agents, skills, hooks, MCP server configurations, and LSP server configurations. |
| 39 | + |
| 40 | +A typical plugin directory looks like this: |
| 41 | + |
| 42 | +```text |
| 43 | +my-plugin/ |
| 44 | +├── plugin.json # Required manifest |
| 45 | +├── agents/ # Custom agents (optional) |
| 46 | +│ └── helper.agent.md |
| 47 | +├── skills/ # Skills (optional) |
| 48 | +│ └── deploy/ |
| 49 | +│ └── SKILL.md |
| 50 | +├── hooks.json # Hook configuration (optional) |
| 51 | +├── .mcp.json # MCP server config (optional) |
| 52 | +└── lsp.json # LSP server config (optional) |
| 53 | +``` |
| 54 | + |
| 55 | +For the full set of fields you can include in the manifest, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-plugin-reference). For step-by-step guidance on authoring a plugin, see [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating). |
| 56 | + |
| 57 | +## Why use plugins? |
| 58 | + |
| 59 | +Plugins provide the following benefits: |
| 60 | + |
| 61 | +* Reusability across projects |
| 62 | +* Team standardization of {% data variables.product.prodname_copilot_short %} configuration |
| 63 | +* Share domain expertise (for example, by providing the skills of a Rails expert, or a Kubernetes expert) |
| 64 | +* Encapsulate complex MCP server setups |
| 65 | + |
| 66 | +## Where can I get plugins? |
| 67 | + |
| 68 | +You can install plugins from: |
| 69 | + |
| 70 | +* A marketplace |
| 71 | +* A repository |
| 72 | +* A local path |
| 73 | + |
| 74 | +A marketplace is a location where developers can publish, discover, install, and manage plugins. It's a bit like an app store—but for plugins. |
| 75 | + |
| 76 | +Examples of marketplaces include: |
| 77 | + |
| 78 | +* [copilot-plugins](https://github.com/github/copilot-plugins) (added by default) |
| 79 | +* [awesome-copilot](https://github.com/github/awesome-copilot) (added by default) |
| 80 | +* [claude-code-plugins](https://github.com/anthropics/claude-code) |
| 81 | +* [claudeforge-marketplace](https://github.com/claudeforge/marketplace) |
| 82 | + |
| 83 | +How you install a plugin depends on which client you're using: |
| 84 | + |
| 85 | +* In {% data variables.copilot.copilot_cli_short %}, you can install plugins imperatively using the `copilot plugin install` command or the `/plugin install` slash command, or declaratively by adding the plugin to the `enabledPlugins` field of either a user-level `~/.copilot/settings.json` file or a repository-level `.github/copilot/settings.json` file. See [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing). |
| 86 | +* In {% data variables.copilot.copilot_cloud_agent %}, you install plugins declaratively by adding them to the `enabledPlugins` field of the repository's `.github/copilot/settings.json` file. To install plugins from a marketplace that isn't registered by default, you can also add the marketplace to the `extraKnownMarketplaces` field in the same file. |
| 87 | + |
| 88 | +Enterprise administrators can define plugin standards that apply to users on the enterprise's {% data variables.product.prodname_copilot_short %} plan, including specifying additional marketplaces and plugins that are automatically installed. See [AUTOTITLE](/copilot/concepts/agents/about-enterprise-plugin-standards). |
| 89 | + |
| 90 | +## How plugin marketplaces work |
| 91 | + |
| 92 | +A plugin marketplace is a registry of plugins that you can browse and install from. A marketplace can be hosted in a repository on {% data variables.product.prodname_dotcom_the_website %}, in any other online Git hosting service, or on your local or shared file system. |
| 93 | + |
| 94 | +A marketplace is defined by a `marketplace.json` file, which provides metadata about the marketplace and lists the plugins it makes available. Each entry in the marketplace's `plugins` array describes a plugin—including its name, description, version, and the path to the plugin's directory. |
| 95 | + |
| 96 | +Because plugins in a marketplace are versioned, marketplaces make it easy to discover, install, and update plugins, and to share them across a team. For step-by-step guidance on creating a marketplace, see [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/plugins-marketplace). |
| 97 | + |
| 98 | +## Plugins compared with manual configuration |
| 99 | + |
| 100 | +Any functionality that you could add with a plugin, you could also add by configuring {% data variables.product.prodname_copilot_short %} manually—for example, by adding custom agent profiles or MCP servers. However, plugins provide several advantages over manual configuration: |
| 101 | + |
| 102 | +| Feature | Manual configuration in a repository | Plugin | |
| 103 | +|------------|-----------------------------|-----------------| |
| 104 | +| Scope | Single repository | Any project | |
| 105 | +| Sharing | Manual copy/paste | Install command or `enabledPlugins` entry | |
| 106 | +| Versioning | Git history | Marketplace versions | |
| 107 | +| Discovery | Searching repositories | Marketplace browsing | |
| 108 | + |
| 109 | +## Further reading |
| 110 | + |
| 111 | +* [AUTOTITLE](/copilot/concepts/agents/about-agent-skills) |
| 112 | +* [AUTOTITLE](/copilot/concepts/agents/hooks) |
| 113 | +* [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-custom-agents) |
0 commit comments