About building Copilot Extensions
About building Copilot Extensions
In this article
Note
GitHub Docs Version: Free, Pro, & Team
GitHub Copilot Extensions is in public preview and subject to change.
Querying documentation: A Copilot Extension can allow Copilot Chat to query a third-party
documentation service to find information about a specific topic.
AI-assisted coding: A Copilot Extension can use a third-party AI model to provide code
suggestions.
Data retrieval: A Copilot Extension can allow Copilot Chat to query a third-party data service to
retrieve information about a specific topic.
Action execution: A Copilot Extension can allow Copilot Chat to execute a specific action, such as
posting to a message board or updating a tracking item in an external system.
Visual Studio
GitHub.com
GitHub Mobile
JetBrains IDEs
GitHub Codespaces
Vim/Neovim
Xcode
Skillsets are lightweight and streamlined, designed for developers who need Copilot to perform
specific tasks (e.g., data retrieval or simple operations) with minimal setup. They handle routing,
prompt crafting, function evaluation, and response generation automatically, making them ideal
for quick and straightforward integrations. For more information about skillsets, see About
Copilot skillsets.
Agents are for complex integrations that need full control over how requests are processed and
responses are generated. They let you implement custom logic, integrate with other LLMs and/or
the Copilot API, manage conversation context, and handle all aspects of the user interaction.
While Agents require more engineering and maintenance, they offer maximum flexibility for
sophisticated workflows. For more information about agents, see About Copilot agents.
Note
You can allow your Copilot Extension to receive context from the editor, such as the currently opened
file, by enabling the Read-only access level for the "Copilot Editor Context" permission in your GitHub
App settings. See step 10 of Configuring your GitHub App.
The GitHub Copilot Extensibility Platform automatically handles messaging when implicit and explicit
context is unavailable or unauthorized. To enable context passing, you are required to request
permissions from users. To enable context passing, you are required to:
Context passing respects content exclusions, which refers to any files listed in your context exclusion
settings, including files that begin with . .
Before creating your own GitHub Copilot Extension from scratch, you may want to explore an existing
Copilot agent, then integrate it with a GitHub App to see how it works. GitHub provides a few
example Copilot agents that you can clone and use as the basis for your own GitHub Copilot
Extension:
Blackbeard: A simple Copilot agent that responds to requests like a pirate, using Copilot's LLM
API and special system prompts. It is a good starting point for learning how to build a GitHub
Copilot Extension. For more information, see the Blackbeard Copilot Extension.
GitHub Models: A more complex Copilot agent that lets you ask about and interact with various
LLMs listed on the GitHub Marketplace from within Copilot Chat. For more information, see the
GitHub Models Copilot Extension.
Note
GitHub Models are in public preview and subject to change. To request access, join the
waitlist.
Function calling: an example agent written in Go that demonstrates function calling and
confirmation dialogues. For more information, see the Function calling extension.
Preview SDK: An SDK that simplifies the process of building GitHub Copilot Extensions by
handling request verification, response formatting, and API interactions. It allows builders to
focus on their extension's core functionality rather than boilerplate, by streamlining the
integration of tools, APIs, and data sources into Copilot Chat. For more information, see the
Preview SDK.
Note
The GitHub documentation focuses on building GitHub Copilot Extensions, not Copilot-enabled
Visual Studio Code extensions.
You can build a Copilot Extension that is exclusive and native to Visual Studio Code, called a Copilot-
enabled Visual Studio Code extensions. This option is best suited for developers who want to build
extensions that use VS Code-specific APIs and functionality, or extend existing VS Code extensions.
Also known as VS Code Chat extensions, Copilot-enabled Visual Studio Code extensions function
similarly to GitHub Copilot Extensions by extending the capabilities of Copilot Chat, with a few
notable differences:
For more information on Copilot-enabled Visual Studio Code extensions, see Chat extensions in the
Visual Studio Code documentation.
Further reading
Copilot Extensions Glossary
Legal
© 2025 GitHub, Inc. Terms Privacy Status Pricing Expert services Blog