Skip to content

Commit 01798c9

Browse files
authored
Merge pull request #43016 from github/repo-sync
Repo sync
2 parents 70dac62 + ff4c8a0 commit 01798c9

File tree

27 files changed

+721
-153
lines changed

27 files changed

+721
-153
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
title: About plugins for {% data variables.copilot.copilot_cli %}
3+
shortTitle: About CLI plugins
4+
allowTitleToDifferFromFilename: true
5+
intro: 'Plugins are installable packages that extend {% data variables.copilot.copilot_cli %} with reusable agents, skills, hooks, and integrations.'
6+
product: '{% data reusables.gated-features.copilot-cli %}'
7+
versions:
8+
feature: copilot
9+
topics:
10+
- Copilot
11+
contentType: concepts
12+
category:
13+
- Learn about Copilot
14+
---
15+
16+
Plugins provide a way to distribute custom CLI functionality. You can use a plugin to add a preconfigured set of capabilities to {% data variables.copilot.copilot_cli_short %}.
17+
18+
## What is a plugin?
19+
20+
* A distributable package that extends {% data variables.copilot.copilot_cli_short %}'s functionality.
21+
* A bundle of components in a single installable unit.
22+
23+
## What plugins contain
24+
25+
A plugin can contain some or all of the following components:
26+
27+
* **Custom agents** — Specialized AI assistants (`*.agent.md` files in `agents/`)
28+
* **Skills** — Discrete callable capabilities (skills subdirectories in `skills/`, containing a `SKILL.md` file)
29+
* **Hooks** — Event handlers that intercept agent behavior (a `hooks.json` file in the plugin root, or in `hooks/`)
30+
* **MCP server configurations** — Model Context Protocol integrations (a `.mcp.json` file in the plugin root, or an `mcp.json` file in `.github/`)
31+
* **LSP server configurations** — Language Server Protocol integrations (an `lsp.json` file in the plugin root, or in `.github/`)
32+
33+
## Why use plugins?
34+
35+
Plugins provide the following benefits:
36+
37+
* Reusability across projects
38+
* Team standardization of CLI configuration
39+
* Share domain expertise (for example, by providing the skills of a Rails expert, or a Kubernetes expert)
40+
* Encapsulate complex MCP server setups
41+
42+
## Where can I get plugins?
43+
44+
You can install plugins from:
45+
46+
* A marketplace
47+
* A repository
48+
* A local path
49+
50+
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.
51+
52+
Examples of marketplaces include:
53+
54+
* [copilot-plugins](https://github.com/github/copilot-plugins) (added by default)
55+
* [awesome-copilot](https://github.com/github/awesome-copilot) (added by default)
56+
* [claude-code-plugins](https://github.com/anthropics/claude-code)
57+
* [claudeforge-marketplace](https://github.com/claudeforge/marketplace)
58+
59+
For more about adding marketplaces and installing plugins from them, see [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing).
60+
61+
## Plugins compared with manual configuration
62+
63+
Any functionality that you could add with a plugin, you could also add by configuring {% data variables.copilot.copilot_cli_short %} manually—for example, by adding custom agent profiles or MCP servers. However, plugins provide several advantages over manual configuration:
64+
65+
| Feature | Manual configuration in a repository | Plugin |
66+
|------------|-----------------------------|-----------------|
67+
| Scope | Single repository | Any project |
68+
| Sharing | Manual copy/paste | `/plugin install` command |
69+
| Versioning | Git history | Marketplace versions |
70+
| Discovery | Searching repositories | Marketplace browsing |
71+
72+
## Further reading
73+
74+
* [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating)
75+
* [AUTOTITLE](/copilot/reference/cli-plugin-reference)

content/copilot/concepts/agents/copilot-cli/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ topics:
99
- Copilot
1010
children:
1111
- /about-copilot-cli
12+
- /about-cli-plugins
1213
- /comparing-cli-features
1314
contentType: concepts
1415
---
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
title: Completions for GitHub Copilot
33
shortTitle: Completions
4-
intro: 'Learn how {% data variables.product.prodname_copilot_short %} can provide inline suggestions and PR descriptions.'
4+
intro: 'Learn how {% data variables.product.prodname_copilot_short %} can provide inline suggestions.'
55
versions:
66
feature: copilot
77
topics:
88
- Copilot
99
children:
1010
- /code-suggestions
11-
- /text-completion
1211
- /code-referencing
1312
contentType: concepts
13+
redirect_from:
14+
- /copilot/concepts/completions/text-completion
1415
---
15-

content/copilot/concepts/completions/text-completion.md

Lines changed: 0 additions & 26 deletions
This file was deleted.

content/copilot/get-started/features.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,6 @@ AI-generated code review suggestions to help you write better code. See [AUTOTIT
5151

5252
AI-generated summaries of the changes that were made in a pull request, which files they impact, and what a reviewer should focus on when they conduct their review. See [AUTOTITLE](/copilot/using-github-copilot/creating-a-pull-request-summary-with-github-copilot).
5353

54-
### {% data variables.copilot.copilot_autocomplete_pr %} ({% data variables.release-phases.public_preview %})
55-
56-
AI-generated text completion to help you write pull request descriptions quickly and accurately. See [AUTOTITLE](/copilot/using-github-copilot/using-copilot-text-completion).
57-
5854
### {% data variables.copilot.copilot_edits_short %}
5955

6056
{% data variables.copilot.copilot_edits_short %} is available in {% data variables.product.prodname_vscode %}, {% data variables.product.prodname_vs %}, and JetBrains IDEs. {% data reusables.copilot.copilot-edits.about-copilot-edits %}

content/copilot/how-tos/copilot-cli/cli-getting-started.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ Use one of these commands:
7777
| <kbd>Ctrl</kbd>+<kbd>L</kbd> | Clear the screen |
7878
| `@` | Mention files to include in context |
7979
| `/` | Show slash commands |
80+
| `?` | Show tabbed help |
8081
| <kbd>↑</kbd> and <kbd>↓</kbd> | Navigate the command history |
8182

8283
For a full list of shortcuts and available commands, enter:

content/copilot/how-tos/copilot-cli/customize-copilot/index.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ children:
1111
- /use-hooks
1212
- /create-skills
1313
- /create-custom-agents-for-cli
14+
- /plugins-finding-installing
15+
- /plugins-creating
16+
- /plugins-marketplace
1417
---
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
---
2+
title: Creating a plugin for {% data variables.copilot.copilot_cli %}
3+
shortTitle: 'Plugins: Create a plugin'
4+
allowTitleToDifferFromFilename: true
5+
intro: 'Create a plugin to share customizations in an easy-to-install package.'
6+
versions:
7+
feature: copilot
8+
topics:
9+
- Copilot
10+
category:
11+
- Configure Copilot
12+
- Author and optimize with Copilot
13+
contentType: how-tos
14+
---
15+
16+
## Introduction
17+
18+
Plugins are packages that extend the functionality of {% data variables.copilot.copilot_cli_short %}. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-cli-plugins).
19+
20+
{% data reusables.copilot.cli-help-note %}
21+
22+
## Plugin structure
23+
24+
A plugin consists of a directory with a specific structure. At minimum, it must contain a `plugin.json` manifest file at the root of the directory. It can also contain any combination of agents, skills, hooks, and MCP server configurations.
25+
26+
### Example plugin structure
27+
28+
```text
29+
my-plugin/
30+
├── plugin.json # Required manifest
31+
├── agents/ # Custom agents (optional)
32+
│ └── helper.agent.md
33+
├── skills/ # Skills (optional)
34+
│ └── deploy/
35+
│ └── SKILL.md
36+
├── hooks.json # Hook configuration (optional)
37+
└── .mcp.json # MCP server config (optional)
38+
```
39+
40+
## Creating a plugin
41+
42+
1. Create a directory for your plugin.
43+
1. Add a `plugin.json` manifest file to the root of the directory.
44+
45+
**Example `plugin.json` file**
46+
47+
{% data reusables.copilot.cli-example-plugin-file %}
48+
49+
For details of the full set of fields you can include in this file, see [AUTOTITLE](/copilot/reference/cli-plugin-reference#pluginjson).
50+
51+
1. Add some components to your plugin by creating the appropriate files and directories for agents, skills, hooks, and MCP server configurations.
52+
53+
For example:
54+
55+
1. Add an agent by creating a `NAME.agent.md` file in an `agents` subdirectory.
56+
57+
```markdown copy
58+
---
59+
name: my-agent
60+
description: Helps with specific tasks
61+
tools: ["bash", "edit", "view"]
62+
---
63+
64+
You are a specialized assistant that...
65+
```
66+
67+
1. Add a skill by creating a `skills/NAME` subdirectory of your plugin directory, where `NAME` is the name of your skill. Then, within this subdirectory, create a `SKILL.md` file that defines the skill.
68+
69+
For example, to create a "deploy" skill, create `skills/deploy/SKILL.md`:
70+
71+
```markdown copy
72+
---
73+
name: deploy
74+
description: Deploy the current project to...
75+
---
76+
77+
Instructions for the skill...
78+
```
79+
80+
1. Install your plugin locally, so that you can test it as you develop it.
81+
82+
For example, where `./my-plugin` is the path to your plugin directory, enter:
83+
84+
```shell copy
85+
copilot plugin install ./my-plugin
86+
```
87+
88+
1. Verify that the plugin loaded successfully by viewing your list of installed plugins:
89+
90+
```shell copy
91+
copilot plugin list
92+
```
93+
94+
Or you can start a new interactive session and enter:
95+
96+
```copilot copy
97+
/plugin list
98+
```
99+
100+
1. Verify that the agents, skills, hooks, and MCP server configurations you defined are loaded correctly.
101+
102+
For example, in an interactive session, to check that custom agents defined in the plugin were loaded, enter:
103+
104+
```copilot copy
105+
/agent
106+
```
107+
108+
To check that skills defined in the plugin were loaded, enter:
109+
110+
```copilot copy
111+
/skills list
112+
```
113+
114+
1. Use the functionality provided by your plugin's components to verify that each component works as expected.
115+
1. Iterate on your plugin development, as required.
116+
117+
> [!IMPORTANT]
118+
> When you install a plugin its components are cached and the CLI reads from the cache for subsequent sessions. To pick up changes made to a local plugin install it again:
119+
>
120+
> ```shell copy
121+
> copilot plugin install ./my-plugin
122+
> ```
123+
124+
1. After you have finished testing, you can uninstall the local version of your plugin by entering:
125+
126+
```shell copy
127+
copilot plugin uninstall NAME
128+
```
129+
130+
> [!NOTE]
131+
> To uninstall a plugin, use the name of the plugin as specified in the `name` field of the plugin's `plugin.json` manifest file, not the path to the plugin's directory.
132+
133+
## Distributing your plugin
134+
135+
To distribute your plugin, you can add it to a marketplace. See [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/plugins-marketplace).
136+
137+
## Further reading
138+
139+
* [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing)
140+
* [AUTOTITLE](/copilot/reference/cli-plugin-reference)

0 commit comments

Comments
 (0)