Skip to main content

Using extensions to integrate external tools with Copilot Chat

You can use Copilot Extensions to interact with external tools in GitHub Copilot Chat.

Who can use this feature?

Anyone with a GitHub Copilot Individual subscription can use Copilot Extensions.

For organizations or enterprises with a Copilot Business or Copilot Enterprise subscription, organization owners and enterprise administrators can grant access to Copilot Extensions.

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:

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 IDEsGitHub 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 IDEclient.fileclient.selectiongithub.repositorygithub.current-urlAdditional contexts
Visual Studio CodeYesYesYesNoRepository owner and branch
Visual StudioYesYesYesNoRepository owner and branch
GitHub.comNoNoYesYesRepository information and other GitHub resources
GitHub MobileNoNoNoYesNot applicable
JetBrains IDEsNoNoNoYesNot applicable

Prerequisites

If you have a Copilot Individual 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:

  1. 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.
  2. 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

  1. To start using a Copilot Extension, open a supported Copilot Chat interface. See Supported clients and IDEs.

  2. 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.

  3. In the list of available Copilot Extensions, click the one you want to use.

  4. 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.

Further reading