Extensions for GitHub Copilot - GitHub Docs
Skip to main content
Skip to content

Extensions for GitHub Copilot

Extend Copilot with capabilities implemented in code.

Extensions let you implement capabilities that go beyond prompting the agent. For example, in GitHub Copilot CLI, an extension can add tools and slash commands backed by code running alongside your session.

These extensions are distinct from the retired GitHub App-based Copilot Extensions integration. They are also distinct from IDE extensions, such as the Copilot extension you install in an editor.

Where you can use extensions

You can use extensions in:

  • The GitHub Copilot app.
  • GitHub Copilot CLI.

For customization options in the GitHub Copilot app, see Customizing the GitHub Copilot app.

Note

GitHub Copilot CLI extensions are currently an experimental feature and are subject to change.

Choosing an extension scope

Choose an extension's scope based on who needs it:

  • Repository extensions keep project-specific capabilities with the project so you can share them with collaborators.
  • Personal extensions provide capabilities for your own workflows.
  • Plugin extensions are supplied as part of an installed plugin, alongside other customizations.

To create an extension for Copilot CLI, see Creating extensions for GitHub Copilot CLI.

Extensions in Copilot CLI

An extension for Copilot CLI is a JavaScript module that runs as a separate Node.js process alongside an interactive session. It connects to the session through the extension SDK bundled with Copilot CLI.

An extension can add:

  • Tools that the agent can call while working on your request.
  • Slash commands that you invoke yourself.
  • Session-aware behavior, such as observing events and keeping state across tool calls.

Use an extension when a capability needs code that stays active during the session. For example, an extension can track tool-call timings across a session and expose the totals through a tool.

Copilot CLI also lets you control whether extensions run and whether the agent can manage them. For the extension modes and their effects, see Extension modes.

Choosing between extensions and other customizations

The distinction is the capability you need, not just where you install it:

NeedStart with
A repeatable workflow expressed as instructions and resourcesAn agent skill
Access to tools exposed by an external serviceAn MCP server
A command at a defined agent lifecycle eventA hook
Session-aware tools or slash commands implemented in JavaScriptAn extension for Copilot CLI
A distributable bundle of related capabilitiesA plugin

A plugin can distribute extensions, but the surface determines how those extensions are used.

Warning

Extensions for Copilot CLI execute on your computer with your privileges. Only load extension code that you trust, just as you would for any other script you did not write yourself.

Next steps

To compare extensions with the other customization options, see Comparing Copilot customization features.