Note
GitHub Copilot Extensions is in public preview and subject to change.
About GitHub Copilot Extensions
GitHub Copilot Extensions are a type of GitHub App that integrates the power of external tools into GitHub Copilot Chat. Copilot Extensions can be developed by anyone, for private or public use, and can be shared with others through the GitHub Marketplace.
Note
GitHub Copilot Extensions are not the same as the GitHub Copilot extension, which you install in your IDE to use default Copilot functionality like code completions and GitHub Copilot Chat. For more information on the GitHub Copilot extension, see Getting code suggestions in your IDE with GitHub Copilot.
You can get started with Copilot Extensions in one of two ways:
- Build your own Copilot Extension. See About building Copilot Extensions.
- Install a Copilot Extension from GitHub Marketplace.
You can interact with your custom-built or installed extension in a Copilot Chat conversation, asking questions and performing actions that combine the capabilities of the external tool and GitHub. For example, if you install the Sentry extension for GitHub Copilot, you can use the extension to get information about Sentry issues, then create and assign related tracking issues on GitHub.
Copilot Extensions provide several benefits, including:
- Interaction with external tools using natural language
- Reduced context switching
- Customization of your Copilot Chat experience for your developer flow
Copilot Extensions are included in all Copilot subscriptions.
Supported clients and IDEs
Clients and IDEs | GitHub Copilot Extensions support |
---|---|
Visual Studio Code | |
Visual Studio | |
GitHub.com | |
GitHub Mobile | |
JetBrains IDEs | |
GitHub Codespaces | |
Vim/Neovim | |
Copilot in the CLI | |
Xcode |
About context passing in GitHub Copilot Extensions
Note
Context passing is in public preview and subject to change.
GitHub Copilot Extensions can access certain contextual information depending on where you're using them. This context passing happens automatically when you interact with an extension, but requires your explicit authorization through GitHub App permissions for use in any organization-owned repositories.
Context passing helps extensions understand your current work environment to provide more relevant assistance, while maintaining security through permission controls. Context passing also respects content exclusions, .env
files, and files listed in your content exclusion settings.
The following table shows the contexts that are passed to GitHub Copilot Extensions based on the client or IDE you are using.
Client or IDE | client.file | client.selection | github.repository | github.current-url | Additional contexts |
---|---|---|---|---|---|
Visual Studio Code | Yes | Yes | Yes | No | Repository owner and branch |
Visual Studio | Yes | Yes | Yes | No | Repository owner and branch |
GitHub.com | No | No | Yes | Yes | Repository information and other GitHub resources |
GitHub Mobile | No | No | No | Yes | Not applicable |
JetBrains IDEs | No | No | No | Yes | Not applicable |
Prerequisites
If you have a Copilot Pro subscription, you need to install a Copilot Extension before you can use the extension in Copilot Chat. See Extending the capabilities of GitHub Copilot in your personal account.
If you have access to Copilot through a Copilot Business or Copilot Enterprise subscription:
- An organization owner or enterprise owner needs to enable the Copilot Extensions policy for your organization or enterprise. See Managing policies for Copilot in your organization and Managing policies and features for Copilot in your enterprise in the GitHub Enterprise Cloud documentation.
- An organization owner needs to install Copilot Extensions for your organization. See Extending the capabilities of GitHub Copilot in your organization.
Using GitHub Copilot Extensions
-
To start using a Copilot Extension, open a supported Copilot Chat interface. See Supported clients and IDEs.
-
To see a list of all Copilot Extensions available in your Copilot Chat conversation, in the Copilot Chat text box, type
@
.Note
If you are using Copilot Chat in an IDE, and you or your organization owner install a Copilot Extension while your IDE is open, you need to restart your IDE to begin using the Copilot Extension.
-
In the list of available Copilot Extensions, click the one you want to use.
-
To begin interacting with the Copilot Extension, in the Copilot Chat text box, ask the extension to answer a question or perform an action, then press Enter. For each new request, be sure to include
@EXTENSION-NAME
at the beginning of your sentence.- If you did not install the Copilot Extension yourself, and it is your first time using the Copilot Extension, you will be asked to authorize the extension. See Authorizing GitHub Apps.
- If you ask a Copilot Extension to perform an action, you need to confirm the extension has your permission to act on your behalf before it will complete the task. After carefully reviewing the proposed action, in the confirmation dialog, click Allow or Dismiss.
Tips for using GitHub Copilot Extensions
-
When you are using a Copilot Extension, consider how you would interact with the tool outside of Copilot Chat, then use natural language to ask questions and assign tasks that integrate the capabilities of the tool with GitHub. For example, Sentry is an application monitoring software with a Copilot Extension. The following are some example prompts for the Sentry extension for GitHub Copilot:
@sentry list my most recent issues
@sentry tell me more about issue ISSUE-ID-OR-ISSUE-LINK
@sentry create a GitHub issue for the most recent Sentry issue and assign it to @DEVELOPER
For information on the best ways to use a specific Copilot Extension, read the description of the extension on GitHub Marketplace.
-
Interactions with one Copilot Extension will never be shared with another Copilot Extension. To interact with different Copilot Extensions in an IDE, change the
@EXTENSION-NAME
at the beginning of each sentence. Interactions with different extensions will appear in the same Copilot Chat window, but the conversations themselves are automatically separated.
Additional resources
For questions and issues related to GitHub Copilot Extensions, please use the following resources:
- General issues for users and builders: Visit the GitHub Support Portal.
- Requests or feedback for GitHub: Use the GitHub Community Discussion Thread.
- Requests or feedback for third-party extension publishers: File an issue in the User Feedback Repo and add a label with the extension's slug name.
- GitHub Technology Partners: Email the partnerships team directly for assistance.
- Copilot-enabled Visual Studio Code extensions: For more information on this type of Copilot Extension, see Chat extensions in the Visual Studio Code documentation.
Note
GitHub Support is not able to answer questions regarding Copilot-enabled Visual Studio Code extensions, as this implementation path is owned and maintained by the VS Code team.