Back

Getting Started with GitHub Copilot Extensions

Getting Started with GitHub Copilot Extensions

GitHub Copilot Extensions transform how developers work by bringing external tools and services directly into Copilot Chat. Instead of switching between multiple applications, you can now query databases, monitor deployments, and debug errors—all through natural language conversations within your IDE or GitHub.com.

Key Takeaways

  • GitHub Copilot Extensions integrate external tools directly into Copilot Chat for seamless workflow
  • GitHub App-based extensions will be deprecated by November 2025, while VS Code extensions remain supported
  • Building extensions requires setting up an endpoint, configuring a GitHub App, and handling server-sent events
  • Major partners like Docker, MongoDB, and Microsoft already offer extensions on the GitHub Marketplace

What Are GitHub Copilot Extensions?

These extensions integrate seamlessly with your existing workflow. When debugging an issue, you can invoke Sentry for error monitoring, DataStax for database queries, or Azure for deployment—all without leaving your code editor. Major partners like Docker, MongoDB, Stripe, and Microsoft have already built extensions available on the GitHub Marketplace.

Important: Deprecation Timeline

Critical dates to remember:

  • September 23, 2025: New GitHub App-based Copilot Extensions cannot be created
  • November 10, 2025: All existing GitHub App-based extensions will stop working

VS Code Copilot Extensions remain unaffected and will continue to be supported. If you’re starting a new project today, consider building a VS Code extension or exploring Model Context Protocol (MCP) servers as the long-term solution.

Installing Extensions from the GitHub Marketplace

Getting started with existing extensions takes just minutes:

  1. Browse available extensions on the GitHub Marketplace
  2. Click “Install” on your chosen extension
  3. Grant necessary permissions
  4. Access the extension by typing @ in Copilot Chat, followed by the extension name

For example, typing @sentry lets you analyze error logs, while @docker helps you build and deploy containers—all through natural language commands.

Building a Hello World Extension

Let’s create a minimal Hello World Extension to understand the core concepts. This example uses Node.js and the Copilot Extensions Preview SDK.

Step 1: Set Up Your Endpoint

import { verifyAndParseRequest, createTextEvent, createDoneEvent } from "@copilot-extensions/preview-sdk";
import express from 'express';

const app = express();
app.use(express.text());

app.post("/", async (req, res) => {
  // Verify the request is from GitHub
  const signature = req.headers["github-public-key-signature"];
  const keyID = req.headers["github-public-key-identifier"];
  const token = req.headers["x-github-token"];
  
  const { isValidRequest, payload } = await verifyAndParseRequest(
    req.body,
    signature,
    keyID,
    { token }
  );
  
  if (!isValidRequest) {
    return res.status(401).send("Unauthorized");
  }
  
  // Send response using server-sent events
  res.setHeader("Content-Type", "text/event-stream");
  
  // Simple Hello World response
  res.write(createTextEvent("Hello from my Copilot Extension! 👋"));
  res.write(createDoneEvent());
  res.end();
});

app.listen(3000);

Step 2: Configure Your GitHub App

  1. Navigate to Settings → Developer settings → GitHub Apps
  2. Create a new GitHub App with these settings:
    • Webhook URL: Your server endpoint (use ngrok for local testing)
    • Permissions: Set “Copilot Chat” to read-only
    • Copilot settings: Set App Type to “Agent”

Step 3: Test Your Extension

Once installed, test your extension in Copilot Chat:

  • On GitHub.com
  • In VS Code
  • In Visual Studio

Type @your-extension-name followed by any message. You’ll see your “Hello World” response appear in the chat.

Key Concepts to Remember

Request Verification: Always verify incoming requests using the SDK’s verifyAndParseRequest function. This ensures requests genuinely come from GitHub.

Server-Sent Events: Copilot Extensions use SSE for streaming responses. This allows real-time, progressive updates in the chat interface.

Token Management: The x-github-token header provides user context. Use it with Octokit to access GitHub APIs on behalf of the user.

Next Steps

Start by exploring existing extensions on the GitHub Marketplace to understand common patterns and use cases. For production extensions, consider:

  • Implementing proper error handling
  • Adding function calling for complex operations
  • Integrating with your organization’s internal APIs
  • Using the Copilot LLM API for intelligent responses

Given the deprecation timeline, VS Code Copilot Extensions offer the most future-proof path for new development. The ecosystem continues evolving rapidly, with MCP servers emerging as the next generation of extension architecture.

Conclusion

Whether you’re installing partner extensions or building custom integrations, GitHub Copilot Extensions fundamentally change how developers interact with their tools—keeping you in flow and productive without context switching. With the upcoming deprecation of GitHub App-based extensions, now is the time to explore VS Code extensions or MCP servers for long-term solutions.

FAQs

No, after September 23, 2025, you cannot create new GitHub App-based extensions. Existing ones will continue working until November 10, 2025. Consider building VS Code extensions or exploring MCP servers instead.

Your GitHub App needs Copilot Chat set to read-only permissions and the App Type configured as Agent. Additional permissions depend on what GitHub APIs your extension needs to access.

Use ngrok or similar tunneling services to expose your local server to the internet. Configure your GitHub App webhook URL with the ngrok URL, then test by typing @ followed by your extension name in Copilot Chat.

Understand every bug

Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay