1. Project Overview & Quickstart (github/awesome-copilot)
File: README.md
π€ Awesome GitHub Copilot
A community-created collection of custom agents, instructions, skills, hooks, workflows, and plugins to supercharge your GitHub Copilot experience.
[!TIP]
Explore the full collection on the website β awesome-copilot.github.comThe website offers full-text search and filtering across hundreds of resources, plus the Learning Hub for guides and tutorials.
Using this collection in an AI agent? A machine-readable
llms.txtis available with structured listings of all agents, instructions, and skills.
π Learning Hub
New to GitHub Copilot customization? The Learning Hub on the website offers curated articles, walkthroughs, and reference material β covering everything from core concepts like agents, skills, and instructions to hands-on guides for hooks, agentic workflows, MCP servers, and the Copilot coding agent.
What's in this repo
| Resource | Description | Browse |
|---|---|---|
| π€ Agents | Specialized Copilot agents that integrate with MCP servers | All agents β |
| π Instructions | Coding standards applied automatically by file pattern | All instructions β |
| π― Skills | Self-contained folders with instructions and bundled assets | All skills β |
| π Plugins | Curated bundles of agents and skills for specific workflows | All plugins β |
| π³ Cookbook | Copy-paste-ready recipes for working with Copilot APIs | β |
Install a Plugin
For most users, the Awesome Copilot marketplace is already registered in the Copilot CLI/VS Code, so you can install a plugin directly:
copilot plugin install @awesome-copilotIf you are using an older Copilot CLI version or a custom setup and see an error that the marketplace is unknown, register it once and then install:
copilot plugin marketplace add github/awesome-copilot
copilot plugin install @awesome-copilotContributing
See CONTRIBUTING.md Β· AGENTS.md for AI agent guidance Β· Security Β· Code of Conduct
The customizations here are sourced from third-party developers. Please inspect any agent and its documentation before installing.
Contributors β¨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
π Additional Resources
- VS Code Copilot Customization Documentation - Official Microsoft documentation
- GitHub Copilot Chat Documentation - Complete chat feature guide
- VS Code Settings - General VS Code configuration guide
β’οΈ Trademarks
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
Microsoft's Trademark & Brand Guidelines.
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Any use of third-party trademarks or logos are subject to those third-party's policies.
File: cookbook/copilot-sdk/dotnet/recipe/README.md
Runnable Recipe Examples
This folder contains standalone, executable C# examples for each cookbook recipe. These are file-based apps that can be run directly with dotnet run.
Prerequisites
- .NET 10.0 or later
- GitHub Copilot SDK package (referenced automatically)
Running Examples
Each .cs file is a complete, runnable program. Simply use:
dotnet run <filename>.csAvailable Recipes
| Recipe | Command | Description |
|---|---|---|
| Error Handling | dotnet run error-handling.cs |
Demonstrates error handling patterns |
| Multiple Sessions | dotnet run multiple-sessions.cs |
Manages multiple independent conversations |
| Managing Local Files β οΈ | dotnet run managing-local-files.cs |
Organizes files using AI grouping |
| PR Visualization βΉοΈ | dotnet run pr-visualization.cs |
Generates PR age charts |
| Persisting Sessions | dotnet run persisting-sessions.cs |
Save and resume sessions across restarts |
| Accessibility Report βΉοΈ | dotnet run accessibility-report.cs |
Analyzes web page accessibility |
| Ralph Loop β οΈ | dotnet run ralph-loop.cs |
Autonomous development loop |
Examples with Arguments
PR Visualization with specific repo:
dotnet run pr-visualization.cs -- --repo github/copilot-sdkManaging Local Files (edit the file to change target folder):
# Edit the targetFolder variable in managing-local-files.cs first
dotnet run managing-local-files.csSafety & Prerequisites
Some recipes have side effects or external dependencies. Expand each section for safe testing patterns and prerequisites.
β οΈ Managing Local Files β Modifies your filesystem
Before running on a real directory, test it on a copy first.
Run these snippets from this recipe directory so the recipe path is captured before switching to the temporary folder.
PowerShell:
$recipeDir = (Get-Location).Path
$tempDir = New-Item -ItemType Directory -Path ([IO.Path]::Combine([IO.Path]::GetTempPath(), "copilot-test-files"))
@("document1.txt", "image1.png", "data.json") | ForEach-Object {
New-Item -Path "$tempDir/$_" -ItemType File
}
cd $tempDir
dotnet run "$recipeDir/managing-local-files.cs"
# Inspect results, then clean up
Remove-Item $tempDir -RecurseBash:
recipeDir=$(pwd)
tempDir=$(mktemp -d)
touch "$tempDir"/{document1.txt,image1.png,data.json}
cd "$tempDir"
dotnet run "$recipeDir/managing-local-files.cs"
# Inspect results, then clean up
rm -rf "$tempDir"Edit the targetFolder variable in the .cs file to point to your test directory before running.
β οΈ Ralph Loop β Creates git commits and modifies files
Always run it in an isolated git repository first to verify behavior.
Run these snippets from this recipe directory so the recipe path is captured before switching to the temporary repository.
PowerShell:
$recipeDir = (Get-Location).Path
$tempDir = New-Item -ItemType Directory -Path ([IO.Path]::Combine([IO.Path]::GetTempPath(), "copilot-test-repo"))
cd $tempDir
git init
git config user.email "[email protected]"
git config user.name "Test User"
# Create a PROMPT_task.md for the recipe to work with
"# Task`nCreate a simple README" | Out-File PROMPT_task.md
dotnet run "$recipeDir/ralph-loop.cs"
# Review commits and changes
git log --oneline
git diff
# Clean up
cd ..
Remove-Item $tempDir -RecurseBash:
recipeDir=$(pwd)
tempDir=$(mktemp -d)
cd "$tempDir"
git init
git config user.email "[email protected]"
git config user.name "Test User"
# Create a PROMPT_task.md for the recipe to work with
echo -e "# Task\nCreate a simple README" > PROMPT_task.md
dotnet run "$recipeDir/ralph-loop.cs"
# Review commits and changes
git log --oneline
git diff
# Clean up
cd ..
rm -rf "$tempDir"The recipe requires a git repository with at least one PROMPT_*.md file and will run in an infinite loop until manually stopped.
βΉοΈ Accessibility Report β Requires Playwright MCP
This recipe requires Playwright MCP to be installed and available:
npm install @playwright/mcpOr let Node Package Manager install it on-demand. The recipe will attempt to launch npx @playwright/mcp automatically. Run the recipe as normal:
dotnet run accessibility-report.csThe recipe will prompt you for a URL to analyze and generate an accessibility report.
βΉοΈ PR Visualization β Requires GitHub API access
This recipe requires:
- Access to a GitHub repository (public or private, with appropriate credentials)
ghCLI tool installed and authenticated: https://cli.github.com/
Run with a repository argument:
dotnet run pr-visualization.cs -- --repo owner/repo-nameExample:
dotnet run pr-visualization.cs -- --repo github/copilot-sdkNote: GitHub API requests are rate-limited. Large repositories or frequent runs may hit rate limits. See GitHub API rate limiting for details.
File-Based Apps
These examples use .NET's file-based app feature, which allows single-file C# programs to:
- Run without a project file
- Automatically reference common packages
- Support top-level statements
Learning Resources
File: cookbook/copilot-sdk/dotnet/README.md
GitHub Copilot SDK Cookbook β .NET (C#)
This folder hosts short, practical recipes for using the GitHub Copilot SDK with .NET. Each recipe is concise, copyβpasteable, and points to fuller examples and tests.
Recipes
- Error Handling: Handle errors gracefully including connection failures, timeouts, and cleanup.
- Multiple Sessions: Manage multiple independent conversations simultaneously.
- Managing Local Files: Organize files by metadata using AI-powered grouping strategies.
- PR Visualization: Generate interactive PR age charts using GitHub MCP Server.
- Persisting Sessions: Save and resume sessions across restarts.
Contributing
Add a new recipe by creating a markdown file in this folder and linking it above. Follow repository guidance in CONTRIBUTING.md.
Status
These recipes are now complete and ready to use; the cookbook will continue to evolve as new scenarios are added.
File: cookbook/copilot-sdk/go/recipe/README.md
Runnable Recipe Examples
This folder contains standalone, executable Go examples for each cookbook recipe. Each file is a complete program that can be run directly with go run.
Prerequisites
- Go 1.21 or later
- GitHub Copilot SDK for Go
go get github.com/github/copilot-sdk/goRunning Examples
Each .go file is a complete, runnable program. Simply use:
go run <filename>.goAvailable Recipes
| Recipe | Command | Description |
|---|---|---|
| Error Handling | go run error-handling.go |
Demonstrates error handling patterns |
| Multiple Sessions | go run multiple-sessions.go |
Manages multiple independent conversations |
| Managing Local Files | go run managing-local-files.go |
Organizes files using AI grouping |
| PR Visualization | go run pr-visualization.go |
Generates PR age charts |
| Persisting Sessions | go run persisting-sessions.go |
Save and resume sessions across restarts |
Examples with Arguments
PR Visualization with specific repo:
go run pr-visualization.go -repo github/copilot-sdkManaging Local Files (edit the file to change target folder):
# Edit the targetFolder variable in managing-local-files.go first
go run managing-local-files.goGo Best Practices
These examples follow Go conventions:
- Proper error handling with explicit checks
- Use of
deferfor cleanup - Idiomatic naming (camelCase for local variables)
- Standard library usage where appropriate
- Clean separation of concerns
Learning Resources
File: cookbook/copilot-sdk/go/README.md
GitHub Copilot SDK Cookbook β Go
This folder hosts short, practical recipes for using the GitHub Copilot SDK with Go. Each recipe is concise, copyβpasteable, and points to fuller examples and tests.
Recipes
- Error Handling: Handle errors gracefully including connection failures, timeouts, and cleanup.
- Multiple Sessions: Manage multiple independent conversations simultaneously.
- Managing Local Files: Organize files by metadata using AI-powered grouping strategies.
- PR Visualization: Generate interactive PR age charts using GitHub MCP Server.
- Persisting Sessions: Save and resume sessions across restarts.
Contributing
Add a new recipe by creating a markdown file in this folder and linking it above. Follow repository guidance in CONTRIBUTING.md.
Status
These recipes are complete, practical examples and can be used directly or adapted for your own projects.
File: cookbook/copilot-sdk/nodejs/recipe/README.md
Runnable Recipe Examples
This folder contains standalone, executable TypeScript examples for each cookbook recipe. Each file can be run directly with tsx or via npm scripts.
Prerequisites
- Node.js 18 or later
- Install dependencies (this links to the local SDK in the repo):
npm installRunning Examples
Each .ts file is a complete, runnable program. You can run them in two ways:
Using npm scripts:
npm run <script-name>Using tsx directly:
npx tsx <filename>.tsAvailable Recipes
| Recipe | npm script | Direct command | Description |
|---|---|---|---|
| Error Handling | npm run error-handling |
npx tsx error-handling.ts |
Demonstrates error handling patterns |
| Multiple Sessions | npm run multiple-sessions |
npx tsx multiple-sessions.ts |
Manages multiple independent conversations |
| Managing Local Files | npm run managing-local-files |
npx tsx managing-local-files.ts |
Organizes files using AI grouping |
| PR Visualization | npm run pr-visualization |
npx tsx pr-visualization.ts |
Generates PR age charts |
| Persisting Sessions | npm run persisting-sessions |
npx tsx persisting-sessions.ts |
Save and resume sessions across restarts |
Examples with Arguments
PR Visualization with specific repo:
npx tsx pr-visualization.ts --repo github/copilot-sdkManaging Local Files (edit the file to change target folder):
# Edit the targetFolder variable in managing-local-files.ts first
npx tsx managing-local-files.tsLocal SDK Development
The package.json references the local Copilot SDK using "*", which resolves to the local SDK source. This means:
- Changes to the SDK source are immediately available
- No need to publish or install from npm
- Perfect for testing and development
If you modify the SDK source, you may need to rebuild:
cd ../../src
npm run buildTypeScript Features
These examples use modern TypeScript/Node.js features:
- Top-level await (requires
"type": "module"in package.json) - ESM imports
- Type safety with TypeScript
- async/await patterns
Learning Resources
File: cookbook/copilot-sdk/nodejs/README.md
GitHub Copilot SDK Cookbook β Node.js / TypeScript
This folder hosts short, practical recipes for using the GitHub Copilot SDK with Node.js/TypeScript. Each recipe is concise, copyβpasteable, and points to fuller examples and tests.
Recipes
- Error Handling: Handle errors gracefully including connection failures, timeouts, and cleanup.
- Multiple Sessions: Manage multiple independent conversations simultaneously.
- Managing Local Files: Organize files by metadata using AI-powered grouping strategies.
- PR Visualization: Generate interactive PR age charts using GitHub MCP Server.
- Persisting Sessions: Save and resume sessions across restarts.
Contributing
Add a new recipe by creating a markdown file in this folder and linking it above. Follow repository guidance in CONTRIBUTING.md.
Status
This README is a scaffold; recipe files are placeholders until populated.
File: cookbook/copilot-sdk/python/recipe/README.md
Runnable Recipe Examples
This folder contains standalone, executable Python examples for each cookbook recipe. Each file can be run directly as a Python script.
Prerequisites
- Python 3.8 or later
- Install dependencies (this installs the SDK from PyPI):
pip install -r requirements.txtRunning Examples
Each .py file is a complete, runnable program with executable permissions:
python <filename>.py
# or on Unix-like systems:
./<filename>.pyAvailable Recipes
| Recipe | Command | Description |
|---|---|---|
| Error Handling | python error_handling.py |
Demonstrates error handling patterns |
| Error Recovery Hooks | python error_recovery_hooks.py |
Classifies tool failures and retries automatically |
| Multiple Sessions | python multiple_sessions.py |
Manages multiple independent conversations |
| Managing Local Files | python managing_local_files.py |
Organizes files using AI grouping |
| PR Visualization | python pr_visualization.py |
Generates PR age charts |
| Persisting Sessions | python persisting_sessions.py |
Save and resume sessions across restarts |
| PyInstaller Build | python pyinstaller_frozen_build.py |
Packages SDK apps into frozen executables |
Examples with Arguments
PR Visualization with specific repo:
python pr_visualization.py --repo github/copilot-sdkManaging Local Files (edit the file to change target folder):
# Edit the target_folder variable in managing_local_files.py first
python managing_local_files.pyLocal SDK Development
The requirements.txt installs the Copilot SDK package from PyPI. This means:
- You get the latest stable release of the SDK
- No need to build from source
- Perfect for using the SDK in your projects
If you want to use a local development version, edit requirements.txt to use -e ../.. for editable mode development.
Python Best Practices
These examples follow Python conventions:
- PEP 8 naming (snake_case for functions and variables)
- Shebang line for direct execution
- Proper exception handling
- Type hints where appropriate
- Standard library usage
Virtual Environment (Recommended)
For isolated development:
# Create virtual environment
python -m venv venv
# Activate it
# Windows:
venv\Scripts\activate
# Unix/macOS:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txtLearning Resources
File: cookbook/copilot-sdk/python/README.md
GitHub Copilot SDK Cookbook β Python
This folder hosts short, practical recipes for using the GitHub Copilot SDK with Python. Each recipe is concise, copyβpasteable, and points to fuller examples and tests.
Recipes
- Error Handling: Handle errors gracefully including connection failures, timeouts, and cleanup.
- Error Recovery Hooks: Classify tool failures and nudge the LLM to keep investigating instead of giving up.
- Multiple Sessions: Manage multiple independent conversations simultaneously.
- Managing Local Files: Organize files by metadata using AI-powered grouping strategies.
- PR Visualization: Generate interactive PR age charts using GitHub MCP Server.
- Persisting Sessions: Save and resume sessions across restarts.
- PyInstaller Frozen Build: Package a Copilot SDK application into a standalone executable with PyInstaller.
Contributing
Add a new recipe by creating a markdown file in this folder and linking it above. Follow repository guidance in CONTRIBUTING.md.
Status
These recipes are complete and ready to use; new contributions and additional recipes are welcome.
File: cookbook/copilot-sdk/README.md
GitHub Copilot SDK Cookbook
This cookbook collects small, focused recipes showing how to accomplish common tasks with the GitHub Copilot SDK across languages. Each recipe is intentionally short and practical, with copyβpasteable snippets and pointers to fuller examples and tests.
Recipes by Language
.NET (C#)
- Ralph Loop: Build autonomous AI coding loops with fresh context per iteration, planning/building modes, and backpressure.
- Error Handling: Handle errors gracefully including connection failures, timeouts, and cleanup.
- Multiple Sessions: Manage multiple independent conversations simultaneously.
- Managing Local Files: Organize files by metadata using AI-powered grouping strategies.
- PR Visualization: Generate interactive PR age charts using GitHub MCP Server.
- Persisting Sessions: Save and resume sessions across restarts.
- Accessibility Report: Generate WCAG accessibility reports using the Playwright MCP server.
Node.js / TypeScript
- Ralph Loop: Build autonomous AI coding loops with fresh context per iteration, planning/building modes, and backpressure.
- Error Handling: Handle errors gracefully including connection failures, timeouts, and cleanup.
- Multiple Sessions: Manage multiple independent conversations simultaneously.
- Managing Local Files: Organize files by metadata using AI-powered grouping strategies.
- PR Visualization: Generate interactive PR age charts using GitHub MCP Server.
- Persisting Sessions: Save and resume sessions across restarts.
- Accessibility Report: Generate WCAG accessibility reports using the Playwright MCP server.
Python
- Ralph Loop: Build autonomous AI coding loops with fresh context per iteration, planning/building modes, and backpressure.
- Error Handling: Handle errors gracefully including connection failures, timeouts, and cleanup.
- Multiple Sessions: Manage multiple independent conversations simultaneously.
- Managing Local Files: Organize files by metadata using AI-powered grouping strategies.
- PR Visualization: Generate interactive PR age charts using GitHub MCP Server.
- Persisting Sessions: Save and resume sessions across restarts.
- Accessibility Report: Generate WCAG accessibility reports using the Playwright MCP server.
Go
- Ralph Loop: Build autonomous AI coding loops with fresh context per iteration, planning/building modes, and backpressure.
- Error Handling: Handle errors gracefully including connection failures, timeouts, and cleanup.
- Multiple Sessions: Manage multiple independent conversations simultaneously.
- Managing Local Files: Organize files by metadata using AI-powered grouping strategies.
- PR Visualization: Generate interactive PR age charts using GitHub MCP Server.
- Persisting Sessions: Save and resume sessions across restarts.
- Accessibility Report: Generate WCAG accessibility reports using the Playwright MCP server.
Java
- Ralph Loop: Build autonomous AI coding loops with fresh context per iteration, planning/building modes, and backpressure.
- Error Handling: Handle errors gracefully including connection failures, timeouts, and cleanup.
- Multiple Sessions: Manage multiple independent conversations simultaneously.
- Managing Local Files: Organize files by metadata using AI-powered grouping strategies.
- PR Visualization: Generate interactive PR age charts using GitHub MCP Server.
- Persisting Sessions: Save and resume sessions across restarts.
- Accessibility Report: Generate WCAG accessibility reports using the Playwright MCP server.
How to Use
- Browse your language section above and open the recipe links
- Each recipe includes runnable examples in a
recipe/subfolder with language-specific tooling - See existing examples and tests for working references:
- Node.js examples:
nodejs/examples/basic-example.ts - E2E tests:
go/e2e,python/e2e,nodejs/test/e2e,dotnet/test/Harness
- Node.js examples:
Running Examples
.NET
cd dotnet/cookbook/recipe
dotnet run <filename>.csNode.js
cd nodejs/cookbook/recipe
npm install
npx tsx <filename>.tsPython
cd python/cookbook/recipe
pip install -r requirements.txt
python <filename>.pyGo
cd go/cookbook/recipe
go run <filename>.goJava
cd java/recipe
jbang <FileName>.javaContributing
- Propose or add a new recipe by creating a markdown file in your language's
cookbook/folder and a runnable example inrecipe/ - Follow repository guidance in CONTRIBUTING.md
Status
Cookbook structure is complete with 7 recipes across all 5 supported languages. Each recipe includes both markdown documentation and runnable examples.
2. Official Technical Reference & Guides (github/docs)
GitHub Docs
Welcome to GitHub Docs! GitHubβs documentation is open source, meaning anyone from inside or outside the company can contribute. For full contributing guidelines, visit our contributing guide.
Quick links by contributor type
Hubbers (GitHub employees): See CONTRIBUTING.md in the
docs-contentrepository for GitHub-specific processes.Open source contributors: See CONTRIBUTING.md in the
docsrepository for a quick-start summary.
How we sync changes across Docs repositories
There are two GitHub Docs repositories:
github/docs(public): Open to external contributionsgithub/docs-internal(private): For GitHub employee contributions.
The two repositories sync frequently. Content changes in one are reflected in the other. Hubbers might prefer to post in docs when working with a customer, but docs has limitations on the types of contributions it accepts to safeguard the site and our workflows. Internal contributions should usually go to docs-internal.
Important: The docs repository accepts contributions to content files (.md files in /content and select /data sections like reusables only). Infrastructure files, workflows, and site-building code are not open for external modification.
New to contributing
Here are some resources to help you get started with open source contributions:
- Finding ways to contribute to open source on GitHub
- Set up Git
- GitHub flow
- Collaborating with pull requests
License
This project is dual-licensed under:
- Creative Commons Attribution 4.0 - for documentation and content in the assets, content, and data folders (see LICENSE)
- MIT License - for code (see LICENSE-CODE)