From 98879449871ff4c1d3bddeea58882b81b90ffa94 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jun 2026 14:41:17 -0400 Subject: [PATCH 1/3] Bump actions/create-github-app-token from 2.0.2 to 3.2.0 in the actions group across 1 directory (#61786) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Steve S --- .github/workflows/changelog-agent.yml | 2 +- .github/workflows/count-translation-corruptions.yml | 2 +- .github/workflows/index-autocomplete-search.yml | 2 +- .github/workflows/index-general-search-pr.yml | 2 +- .github/workflows/link-check-on-pr.yml | 2 +- .github/workflows/local-dev.yml | 2 +- .github/workflows/orphaned-features-check.yml | 2 +- .github/workflows/orphaned-files-check.yml | 2 +- .github/workflows/reviewers-content-systems.yml | 2 +- .github/workflows/reviewers-dependabot.yml | 2 +- .github/workflows/reviewers-docs-engineering.yml | 2 +- .github/workflows/reviewers-legal.yml | 2 +- .github/workflows/site-policy-reminder.yml | 2 +- .github/workflows/site-policy-sync.yml | 2 +- .github/workflows/test-changed-content.yml | 2 +- .github/workflows/test.yml | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/changelog-agent.yml b/.github/workflows/changelog-agent.yml index 2d98327aeb5c..da4371b8d4f7 100644 --- a/.github/workflows/changelog-agent.yml +++ b/.github/workflows/changelog-agent.yml @@ -47,7 +47,7 @@ jobs: steps: - name: Generate GitHub App token id: app-token - uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.DOCS_BOT_APP_ID }} private-key: ${{ secrets.DOCS_BOT_APP_PRIVATE_KEY }} diff --git a/.github/workflows/count-translation-corruptions.yml b/.github/workflows/count-translation-corruptions.yml index 26fe00336e7c..1095079dfe8d 100644 --- a/.github/workflows/count-translation-corruptions.yml +++ b/.github/workflows/count-translation-corruptions.yml @@ -25,7 +25,7 @@ jobs: steps: - name: Generate GitHub App token id: app-token - uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.DOCS_BOT_APP_ID }} private-key: ${{ secrets.DOCS_BOT_APP_PRIVATE_KEY }} diff --git a/.github/workflows/index-autocomplete-search.yml b/.github/workflows/index-autocomplete-search.yml index a27c6215d7da..92816907dd78 100644 --- a/.github/workflows/index-autocomplete-search.yml +++ b/.github/workflows/index-autocomplete-search.yml @@ -29,7 +29,7 @@ jobs: - name: Generate GitHub App token id: app-token - uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.DOCS_BOT_APP_ID }} private-key: ${{ secrets.DOCS_BOT_APP_PRIVATE_KEY }} diff --git a/.github/workflows/index-general-search-pr.yml b/.github/workflows/index-general-search-pr.yml index 531ee766fbdb..55ab5d56bb20 100644 --- a/.github/workflows/index-general-search-pr.yml +++ b/.github/workflows/index-general-search-pr.yml @@ -41,7 +41,7 @@ jobs: - name: Generate GitHub App token id: app-token - uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.DOCS_BOT_APP_ID }} private-key: ${{ secrets.DOCS_BOT_APP_PRIVATE_KEY }} diff --git a/.github/workflows/link-check-on-pr.yml b/.github/workflows/link-check-on-pr.yml index c22e8986f046..904596143a8f 100644 --- a/.github/workflows/link-check-on-pr.yml +++ b/.github/workflows/link-check-on-pr.yml @@ -39,7 +39,7 @@ jobs: - name: Generate GitHub App token if: ${{ github.repository == 'github/docs-internal' }} id: app-token - uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.DOCS_BOT_APP_ID }} private-key: ${{ secrets.DOCS_BOT_APP_PRIVATE_KEY }} diff --git a/.github/workflows/local-dev.yml b/.github/workflows/local-dev.yml index 4682b08fed3c..d6506a713195 100644 --- a/.github/workflows/local-dev.yml +++ b/.github/workflows/local-dev.yml @@ -24,7 +24,7 @@ jobs: - name: Generate GitHub App token if: ${{ github.repository == 'github/docs-internal' }} id: app-token - uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.DOCS_BOT_APP_ID }} private-key: ${{ secrets.DOCS_BOT_APP_PRIVATE_KEY }} diff --git a/.github/workflows/orphaned-features-check.yml b/.github/workflows/orphaned-features-check.yml index 82031beca343..9069eb9db6bf 100644 --- a/.github/workflows/orphaned-features-check.yml +++ b/.github/workflows/orphaned-features-check.yml @@ -27,7 +27,7 @@ jobs: steps: - name: Generate GitHub App token id: app-token - uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.DOCS_BOT_APP_ID }} private-key: ${{ secrets.DOCS_BOT_APP_PRIVATE_KEY }} diff --git a/.github/workflows/orphaned-files-check.yml b/.github/workflows/orphaned-files-check.yml index 26e320798dbf..cfcfa2928fbb 100644 --- a/.github/workflows/orphaned-files-check.yml +++ b/.github/workflows/orphaned-files-check.yml @@ -32,7 +32,7 @@ jobs: steps: - name: Generate GitHub App token id: app-token - uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.DOCS_BOT_APP_ID }} private-key: ${{ secrets.DOCS_BOT_APP_PRIVATE_KEY }} diff --git a/.github/workflows/reviewers-content-systems.yml b/.github/workflows/reviewers-content-systems.yml index a3a4f5429de2..03c585c12413 100644 --- a/.github/workflows/reviewers-content-systems.yml +++ b/.github/workflows/reviewers-content-systems.yml @@ -39,7 +39,7 @@ jobs: - name: Generate GitHub App token id: app-token - uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.DOCS_BOT_APP_ID }} private-key: ${{ secrets.DOCS_BOT_APP_PRIVATE_KEY }} diff --git a/.github/workflows/reviewers-dependabot.yml b/.github/workflows/reviewers-dependabot.yml index 7b57a3a89fc1..542b9a5f7663 100644 --- a/.github/workflows/reviewers-dependabot.yml +++ b/.github/workflows/reviewers-dependabot.yml @@ -40,7 +40,7 @@ jobs: - name: Generate GitHub App token id: app-token - uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.DOCS_BOT_APP_ID }} private-key: ${{ secrets.DOCS_BOT_APP_PRIVATE_KEY }} diff --git a/.github/workflows/reviewers-docs-engineering.yml b/.github/workflows/reviewers-docs-engineering.yml index ea7ea9b10feb..98f233cf010e 100644 --- a/.github/workflows/reviewers-docs-engineering.yml +++ b/.github/workflows/reviewers-docs-engineering.yml @@ -52,7 +52,7 @@ jobs: - name: Generate GitHub App token id: app-token - uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.DOCS_BOT_APP_ID }} private-key: ${{ secrets.DOCS_BOT_APP_PRIVATE_KEY }} diff --git a/.github/workflows/reviewers-legal.yml b/.github/workflows/reviewers-legal.yml index 6d99208b0f18..b104f193c1b2 100644 --- a/.github/workflows/reviewers-legal.yml +++ b/.github/workflows/reviewers-legal.yml @@ -39,7 +39,7 @@ jobs: - name: Generate GitHub App token id: app-token - uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.DOCS_BOT_APP_ID }} private-key: ${{ secrets.DOCS_BOT_APP_PRIVATE_KEY }} diff --git a/.github/workflows/site-policy-reminder.yml b/.github/workflows/site-policy-reminder.yml index 4ca19398d764..261fb78978e6 100644 --- a/.github/workflows/site-policy-reminder.yml +++ b/.github/workflows/site-policy-reminder.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Generate GitHub App token id: app-token - uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.DOCS_BOT_APP_ID }} private-key: ${{ secrets.DOCS_BOT_APP_PRIVATE_KEY }} diff --git a/.github/workflows/site-policy-sync.yml b/.github/workflows/site-policy-sync.yml index 58636e463128..8598691c332b 100644 --- a/.github/workflows/site-policy-sync.yml +++ b/.github/workflows/site-policy-sync.yml @@ -31,7 +31,7 @@ jobs: - name: Generate GitHub App token id: app-token - uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.DOCS_BOT_APP_ID }} private-key: ${{ secrets.DOCS_BOT_APP_PRIVATE_KEY }} diff --git a/.github/workflows/test-changed-content.yml b/.github/workflows/test-changed-content.yml index e04d93cf6228..3b1f05f8de58 100644 --- a/.github/workflows/test-changed-content.yml +++ b/.github/workflows/test-changed-content.yml @@ -37,7 +37,7 @@ jobs: - name: Generate GitHub App token if: ${{ github.repository == 'github/docs-internal' }} id: app-token - uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.DOCS_BOT_APP_ID }} private-key: ${{ secrets.DOCS_BOT_APP_PRIVATE_KEY }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ef5ffcbbae5f..9fa3b501db76 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -101,7 +101,7 @@ jobs: - name: Generate GitHub App token if: ${{ github.repository == 'github/docs-internal' }} id: app-token - uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.DOCS_BOT_APP_ID }} private-key: ${{ secrets.DOCS_BOT_APP_PRIVATE_KEY }} From 6044168be20fa1431ded7a1f27f08e9fcf9d3370 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jun 2026 14:50:57 -0400 Subject: [PATCH 2/3] Bump github/gh-base-image/gh-base-noble from 20260611-183630-g2a7c4449e to 20260616-174421-gbe30bd25c in the baseimages group (#61839) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Steve S --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 858b1bf6007d..98bfbad847ee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ # --------------------------------------------------------------- # To update the sha: # https://github.com/github/gh-base-image/pkgs/container/gh-base-image%2Fgh-base-noble -FROM ghcr.io/github/gh-base-image/gh-base-noble:20260611-183630-g2a7c4449e@sha256:1ed595f8af068c9d8aa3afc113db1576a02e9492e513198c271c7bb3cd87c944 AS base +FROM ghcr.io/github/gh-base-image/gh-base-noble:20260616-174421-gbe30bd25c@sha256:ff51e3a814bf958736588a809c5adc5cc15fe6c74bdb701296a08f86691bc67b AS base # Install curl for Node install and determining the early access branch # Install git for cloning docs-early-access & translations repos From dbd105c473b6d037cb92176bee41f3d9d181fde9 Mon Sep 17 00:00:00 2001 From: Belal Taher Date: Mon, 22 Jun 2026 16:54:56 -0400 Subject: [PATCH 3/3] Docs about plugins in CCA (#61752) Co-authored-by: Sarita Iyer <66540150+saritai@users.noreply.github.com> --- .../about-enterprise-plugin-standards.md | 2 +- .../copilot/concepts/agents/about-plugins.md | 113 ++++++++++++++++++ .../agents/copilot-cli/about-cli-plugins.md | 79 ------------ .../concepts/agents/copilot-cli/index.md | 1 - .../agents/copilot-cli/lsp-servers.md | 2 +- content/copilot/concepts/agents/index.md | 1 + .../copilot-cli/customize-copilot/overview.md | 2 +- .../customize-copilot/plugins-creating.md | 2 +- .../plugins-finding-installing.md | 2 +- content/copilot/how-tos/copilot-cli/index.md | 2 +- .../cli-command-reference.md | 2 +- .../cli-config-dir-reference.md | 3 + .../cli-plugin-reference.md | 3 + 13 files changed, 127 insertions(+), 87 deletions(-) create mode 100644 content/copilot/concepts/agents/about-plugins.md delete mode 100644 content/copilot/concepts/agents/copilot-cli/about-cli-plugins.md diff --git a/content/copilot/concepts/agents/about-enterprise-plugin-standards.md b/content/copilot/concepts/agents/about-enterprise-plugin-standards.md index 8f41aaaf2ef0..fa0287a16c57 100644 --- a/content/copilot/concepts/agents/about-enterprise-plugin-standards.md +++ b/content/copilot/concepts/agents/about-enterprise-plugin-standards.md @@ -23,7 +23,7 @@ Enterprise-managed plugin standards allow administrators to **define and enforce Plugin standards apply to all users on the enterprise's {% data variables.product.prodname_copilot_short %} plan, across the following clients: -* **{% data variables.copilot.copilot_cli_short %}**: see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-cli-plugins) +* **{% data variables.copilot.copilot_cli_short %} and {% data variables.copilot.copilot_cloud_agent %}**: see [AUTOTITLE](/copilot/concepts/agents/about-plugins) * **{% data variables.product.prodname_vscode_shortname %}** (version 1.122 and later): see [Agent plugins in {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/docs/agent-customization/agent-plugins) in the {% data variables.product.prodname_vscode_shortname %} documentation Users must upgrade to a supported client version for these standards to be applied. diff --git a/content/copilot/concepts/agents/about-plugins.md b/content/copilot/concepts/agents/about-plugins.md new file mode 100644 index 000000000000..4764b810d88d --- /dev/null +++ b/content/copilot/concepts/agents/about-plugins.md @@ -0,0 +1,113 @@ +--- +title: About {% data variables.product.prodname_copilot %} plugins +shortTitle: Plugins +allowTitleToDifferFromFilename: true +intro: 'Plugins are installable packages that extend {% data variables.product.prodname_copilot_short %} with reusable agents, skills, hooks, and integrations.' +product: '{% data reusables.gated-features.copilot-cli %}

{% data reusables.gated-features.copilot-cloud-agent %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' +versions: + feature: copilot +contentType: concepts +category: + - Learn about Copilot # Copilot discovery page + - Learn about Copilot CLI # Copilot CLI bespoke page +docsTeamMetrics: + - copilot-cli +redirect_from: + - /copilot/concepts/agents/copilot-cli/about-cli-plugins +--- + +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 %}. + +## What is a plugin? + +* A distributable package that extends {% data variables.product.prodname_copilot_short %}'s functionality. +* A bundle of components in a single installable unit. + +## What plugins contain + +A plugin can contain some or all of the following components: + +* **Custom agents** — Specialized AI assistants (`*.agent.md` files in `agents/`) +* **Skills** — Discrete callable capabilities (skills subdirectories in `skills/`, containing a `SKILL.md` file) +* **Hooks** — Event handlers that intercept agent behavior (a `hooks.json` file in the plugin root, or in `hooks/`) +* **MCP server configurations** — Model Context Protocol integrations (a `.mcp.json` file in the plugin root, or an `mcp.json` file in `.github/`) +* **LSP server configurations** — Language Server Protocol integrations (an `lsp.json` file in the plugin root, or in `.github/`) + +## How plugins are structured + +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. + +A typical plugin directory looks like this: + +```text +my-plugin/ +├── plugin.json # Required manifest +├── agents/ # Custom agents (optional) +│ └── helper.agent.md +├── skills/ # Skills (optional) +│ └── deploy/ +│ └── SKILL.md +├── hooks.json # Hook configuration (optional) +├── .mcp.json # MCP server config (optional) +└── lsp.json # LSP server config (optional) +``` + +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). + +## Why use plugins? + +Plugins provide the following benefits: + +* Reusability across projects +* Team standardization of {% data variables.product.prodname_copilot_short %} configuration +* Share domain expertise (for example, by providing the skills of a Rails expert, or a Kubernetes expert) +* Encapsulate complex MCP server setups + +## Where can I get plugins? + +You can install plugins from: + +* A marketplace +* A repository +* A local path + +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. + +Examples of marketplaces include: + +* [copilot-plugins](https://github.com/github/copilot-plugins) (added by default) +* [awesome-copilot](https://github.com/github/awesome-copilot) (added by default) +* [claude-code-plugins](https://github.com/anthropics/claude-code) +* [claudeforge-marketplace](https://github.com/claudeforge/marketplace) + +How you install a plugin depends on which client you're using: + +* 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). +* 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. + +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). + +## How plugin marketplaces work + +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. + +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. + +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). + +## Plugins compared with manual configuration + +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: + +| Feature | Manual configuration in a repository | Plugin | +|------------|-----------------------------|-----------------| +| Scope | Single repository | Any project | +| Sharing | Manual copy/paste | Install command or `enabledPlugins` entry | +| Versioning | Git history | Marketplace versions | +| Discovery | Searching repositories | Marketplace browsing | + +## Further reading + +* [AUTOTITLE](/copilot/concepts/agents/about-agent-skills) +* [AUTOTITLE](/copilot/concepts/agents/hooks) +* [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-custom-agents) diff --git a/content/copilot/concepts/agents/copilot-cli/about-cli-plugins.md b/content/copilot/concepts/agents/copilot-cli/about-cli-plugins.md deleted file mode 100644 index d0fa053bd098..000000000000 --- a/content/copilot/concepts/agents/copilot-cli/about-cli-plugins.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: About plugins for {% data variables.copilot.copilot_cli %} -shortTitle: About CLI plugins -allowTitleToDifferFromFilename: true -intro: 'Plugins are installable packages that extend {% data variables.copilot.copilot_cli %} with reusable agents, skills, hooks, and integrations.' -product: '{% data reusables.gated-features.copilot-cli %}' -versions: - feature: copilot -contentType: concepts -category: - - Learn about Copilot # Copilot discovery page - - Learn about Copilot CLI # Copilot CLI bespoke page -docsTeamMetrics: - - copilot-cli ---- - -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 %}. - -## What is a plugin? - -* A distributable package that extends {% data variables.copilot.copilot_cli_short %}'s functionality. -* A bundle of components in a single installable unit. - -## What plugins contain - -A plugin can contain some or all of the following components: - -* **Custom agents** — Specialized AI assistants (`*.agent.md` files in `agents/`) -* **Skills** — Discrete callable capabilities (skills subdirectories in `skills/`, containing a `SKILL.md` file) -* **Hooks** — Event handlers that intercept agent behavior (a `hooks.json` file in the plugin root, or in `hooks/`) -* **MCP server configurations** — Model Context Protocol integrations (a `.mcp.json` file in the plugin root, or an `mcp.json` file in `.github/`) -* **LSP server configurations** — Language Server Protocol integrations (an `lsp.json` file in the plugin root, or in `.github/`) - -## Why use plugins? - -Plugins provide the following benefits: - -* Reusability across projects -* Team standardization of CLI configuration -* Share domain expertise (for example, by providing the skills of a Rails expert, or a Kubernetes expert) -* Encapsulate complex MCP server setups - -## Where can I get plugins? - -You can install plugins from: - -* A marketplace -* A repository -* A local path - -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. - -Examples of marketplaces include: - -* [copilot-plugins](https://github.com/github/copilot-plugins) (added by default) -* [awesome-copilot](https://github.com/github/awesome-copilot) (added by default) -* [claude-code-plugins](https://github.com/anthropics/claude-code) -* [claudeforge-marketplace](https://github.com/claudeforge/marketplace) - -For more about adding marketplaces and installing plugins from them, see [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing). - -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 for {% data variables.copilot.copilot_cli_short %} users. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-enterprise-plugin-standards). - -## Plugins compared with manual configuration - -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: - -| Feature | Manual configuration in a repository | Plugin | -|------------|-----------------------------|-----------------| -| Scope | Single repository | Any project | -| Sharing | Manual copy/paste | `/plugin install` command | -| Versioning | Git history | Marketplace versions | -| Discovery | Searching repositories | Marketplace browsing | - -## Further reading - -* [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating) -* [AUTOTITLE](/copilot/reference/cli-plugin-reference) -* [AUTOTITLE](/copilot/how-tos/copilot-cli) diff --git a/content/copilot/concepts/agents/copilot-cli/index.md b/content/copilot/concepts/agents/copilot-cli/index.md index 5f94a17edadb..ac4c11e6dc77 100644 --- a/content/copilot/concepts/agents/copilot-cli/index.md +++ b/content/copilot/concepts/agents/copilot-cli/index.md @@ -11,7 +11,6 @@ children: - /cancel-and-roll-back - /about-remote-control - /about-custom-agents - - /about-cli-plugins - /autopilot - /fleet - /research diff --git a/content/copilot/concepts/agents/copilot-cli/lsp-servers.md b/content/copilot/concepts/agents/copilot-cli/lsp-servers.md index 9c7a6ced4c2e..d0be281d6f20 100644 --- a/content/copilot/concepts/agents/copilot-cli/lsp-servers.md +++ b/content/copilot/concepts/agents/copilot-cli/lsp-servers.md @@ -50,7 +50,7 @@ The following language server operations are supported: For {% data variables.copilot.copilot_cli_short %} to be able to use an LSP server, you must first install the server software on your local machine and then configure it in one of the configuration files that {% data variables.copilot.copilot_cli_short %} reads on startup. See [AUTOTITLE](/copilot/how-tos/copilot-cli/set-up-copilot-cli/add-lsp-servers). -An LSP server may also be added as part of a CLI plugin that you choose to install. A plugin might include an LSP server if, for example, it's designed to work with an uncommon programming language or a framework-specific file type. LSP servers included as part of a plugin are automatically available when you install the plugin—no additional configuration is needed. If you uninstall the plugin, the LSP server is removed. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-cli-plugins). +An LSP server may also be added as part of a CLI plugin that you choose to install. A plugin might include an LSP server if, for example, it's designed to work with an uncommon programming language or a framework-specific file type. LSP servers included as part of a plugin are automatically available when you install the plugin—no additional configuration is needed. If you uninstall the plugin, the LSP server is removed. For more information, see [AUTOTITLE](/copilot/concepts/agents/about-plugins). ## How LSP servers are loaded diff --git a/content/copilot/concepts/agents/index.md b/content/copilot/concepts/agents/index.md index cd59c9404674..4fbfcda56a97 100644 --- a/content/copilot/concepts/agents/index.md +++ b/content/copilot/concepts/agents/index.md @@ -13,6 +13,7 @@ children: - /about-github-agentic-workflows - /copilot-memory - /hooks + - /about-plugins - /about-enterprise-plugin-standards - /about-third-party-coding-agents - /agent-apps diff --git a/content/copilot/how-tos/copilot-cli/customize-copilot/overview.md b/content/copilot/how-tos/copilot-cli/customize-copilot/overview.md index 6089975adb0c..f431c9daf976 100644 --- a/content/copilot/how-tos/copilot-cli/customize-copilot/overview.md +++ b/content/copilot/how-tos/copilot-cli/customize-copilot/overview.md @@ -65,4 +65,4 @@ For more information, see [AUTOTITLE](/copilot/concepts/context/mcp). They bundle multiple customization components together into a single installable unit. You can install plugins directly from a repository, from a plugin marketplace, or from a local path. -For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-cli-plugins). +For more information, see [AUTOTITLE](/copilot/concepts/agents/about-plugins). diff --git a/content/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating.md b/content/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating.md index 591cc0eea963..93fbb2f5a005 100644 --- a/content/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating.md +++ b/content/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating.md @@ -16,7 +16,7 @@ docsTeamMetrics: ## Introduction -Plugins are packages that extend the functionality of {% data variables.copilot.copilot_cli_short %}. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-cli-plugins). +Plugins are packages that extend the functionality of {% data variables.copilot.copilot_cli_short %}. See [AUTOTITLE](/copilot/concepts/agents/about-plugins). {% data reusables.copilot.copilot-cli.cli-help-note %} diff --git a/content/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing.md b/content/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing.md index 78c3d79322ba..ccd0761d0027 100644 --- a/content/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing.md +++ b/content/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing.md @@ -18,7 +18,7 @@ docsTeamMetrics: Plugins are packages that extend the functionality of {% data variables.copilot.copilot_cli_short %}. You can install a plugin from a marketplace that you have registered with the CLI. -For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-cli-plugins). +For more information, see [AUTOTITLE](/copilot/concepts/agents/about-plugins). {% data reusables.copilot.copilot-cli.cli-help-note %} diff --git a/content/copilot/how-tos/copilot-cli/index.md b/content/copilot/how-tos/copilot-cli/index.md index fc94e8fb8540..9c0138ec3d28 100644 --- a/content/copilot/how-tos/copilot-cli/index.md +++ b/content/copilot/how-tos/copilot-cli/index.md @@ -26,7 +26,7 @@ children: - /automate-copilot-cli/run-cli-programmatically - /automate-copilot-cli/schedule-prompts - /content/copilot/concepts/agents/about-agent-skills - - /content/copilot/concepts/agents/copilot-cli/about-cli-plugins + - /content/copilot/concepts/agents/about-plugins - /content/copilot/concepts/agents/copilot-cli/about-copilot-cli - /content/copilot/concepts/agents/copilot-cli/about-custom-agents - /content/copilot/concepts/agents/copilot-cli/about-remote-control diff --git a/content/copilot/reference/copilot-cli-reference/cli-command-reference.md b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md index 5ac5fb18061e..17f7476844f3 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-command-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md @@ -233,7 +233,7 @@ Holding or accelerates scrolling after the first 1 | `/model`, `/models [MODEL]` | Select the AI model you want to use. | | `/permissions [show\|reset]` | View or clear in-memory tool and path approvals for the current session. | | `/plan [PROMPT]` | Create an implementation plan before coding. | -| `/plugin [marketplace\|install\|uninstall\|update\|list] [ARGS...]` | Manage plugins and plugin marketplaces. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-cli-plugins). | +| `/plugin [marketplace\|install\|uninstall\|update\|list] [ARGS...]` | Manage plugins and plugin marketplaces. See [AUTOTITLE](/copilot/concepts/agents/about-plugins). | | `/pr [view\|create\|fix\|auto]` | Manage pull requests for the current branch. See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/manage-pull-requests). | | `/remote [on\|off]` | Show the remote control status (if no argument provided), enable remote steering (`on`), or end the remote connection (`off`). See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/steer-remotely). | | `/rename [NAME]` | Rename the current session (auto-generates a name if omitted; alias for `/session rename`). | diff --git a/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md b/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md index 29682ca74a37..1d22a18db84d 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md @@ -295,6 +295,9 @@ These settings apply across all your sessions and repositories. You can use the Repository settings apply to everyone who works in the repository. They are committed to the repository and shared with collaborators. +> [!NOTE] +> The plugin-related keys in the repository configuration file (`enabledPlugins` and `extraKnownMarketplaces`) are also read by {% data variables.copilot.copilot_cloud_agent %}, not only {% data variables.copilot.copilot_cli_short %}. This lets you enable the same plugins for both clients from a single file. For more information about plugins, see [AUTOTITLE](/copilot/concepts/agents/about-plugins). + Only the keys listed in the following table are supported at the repository level. Any other keys—including keys that are valid in the user configuration file—are silently ignored. | Key | Type | Merge behavior | Description | diff --git a/content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md b/content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md index 9134bb67df74..95cbb6389ff3 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md @@ -16,6 +16,8 @@ docsTeamMetrics: {% data reusables.copilot.copilot-cli.cli-help-note %} +For an overview of what plugins are and how they work across {% data variables.product.prodname_copilot_short %} clients, see [AUTOTITLE](/copilot/concepts/agents/about-plugins). + ## CLI commands You can use the following commands in the terminal to manage plugins for {% data variables.copilot.copilot_cli_short %}. @@ -258,6 +260,7 @@ The following diagram illustrates the loading order and precedence rules. ## Further reading +* [AUTOTITLE](/copilot/concepts/agents/about-enterprise-plugin-standards) * [AUTOTITLE](/copilot/how-tos/copilot-cli) * [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) * [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-programmatic-reference)