# πŸ€– Awesome GitHub Copilot Customizations [![Powered by Awesome Copilot](https://img.shields.io/badge/Powered_by-Awesome_Copilot-blue?logo=githubcopilot)](https://aka.ms/awesome-github-copilot) [![All Contributors](https://img.shields.io/badge/all_contributors-86-orange.svg?style=flat-square)](#contributors-) A curated collection of prompts, instructions, and chat modes to supercharge your GitHub Copilot experience across different domains, languages, and use cases. ## πŸš€ What is Awesome GitHub Copilot? This repository provides a comprehensive toolkit for enhancing GitHub Copilot with specialized: - **[![Awesome Prompts](https://img.shields.io/badge/Awesome-Prompts-blue?logo=githubcopilot)](README.prompts.md)** - Focused, task-specific prompts for generating code, documentation, and solving specific problems - **[![Awesome Instructions](https://img.shields.io/badge/Awesome-Instructions-blue?logo=githubcopilot)](README.instructions.md)** - Comprehensive coding standards and best practices that apply to specific file patterns or entire projects - **[![Awesome Chat Modes](https://img.shields.io/badge/Awesome-Chat_Modes-blue?logo=githubcopilot)](README.chatmodes.md)** - Specialized AI personas and conversation modes for different roles and contexts - **[![Awesome Collections](https://img.shields.io/badge/Awesome-Collections-blue?logo=githubcopilot)](README.collections.md)** - Curated collections of related prompts, instructions, and chat modes organized around specific themes and workflows ## MCP Server To make it easy to add these customizations to your editor, we have created a [MCP Server](https://developer.microsoft.com/blog/announcing-awesome-copilot-mcp-server) that provides a prompt for searching and installing prompts, instructions, and chat modes directly from this repository. You'll need to have Docker installed and running to run the server. [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/mcp/vscode) [![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/mcp/vscode-insiders) [![Install in Visual Studio](https://img.shields.io/badge/Visual_Studio-Install-C16FDE?logo=visualstudio&logoColor=white)](https://aka.ms/awesome-copilot/mcp/vs)
Show MCP Server JSON configuration ```json { "servers": { "awesome-copilot": { "type": "stdio", "command": "docker", "args": [ "run", "-i", "--rm", "ghcr.io/microsoft/mcp-dotnet-samples/awesome-copilot:latest" ] } } } ```
## πŸ”§ How to Use There are two ways to use awesome-copilot customizations in your project: ### πŸŽ›οΈ Configuration File Approach (Recommended) Use our configuration system to manage all customizations in one place: 1. **Clone the repository** to your local machine and install dependencies: ```bash git clone https://github.com/AstroSteveo/awesome-copilot cd awesome-copilot npm install ``` 2. **Navigate to your project directory** where you want to add awesome-copilot customizations 3. **Generate a configuration file** with all available options: ```bash node /path/to/awesome-copilot/awesome-copilot.js init ``` 4. **Edit the configuration** to enable the items you want (or use the new CLI helpers): ```yaml collections: frontend-web-dev: true # Enable entire collection prompts: create-readme: true # Enable specific prompts instructions: typescript-best-practices: true ``` ```bash # List what is currently enabled node /path/to/awesome-copilot/awesome-copilot.js list instructions # Enable or disable individual items without editing YAML by hand node /path/to/awesome-copilot/awesome-copilot.js toggle prompts create-readme on node /path/to/awesome-copilot/awesome-copilot.js toggle instructions all off ``` 5. **Apply the configuration** to copy files to your project: ```bash node /path/to/awesome-copilot/awesome-copilot.js apply ``` 6. **Generate repository instructions** (optional, for GitHub Copilot repository-level instructions): ```bash # Generate .github/copilot-instructions.md from enabled instructions node /path/to/awesome-copilot/awesome-copilot.js generate-repo-instructions # Or generate with full instruction content included node /path/to/awesome-copilot/awesome-copilot.js generate-repo-instructions --consolidated ``` See [CONFIG.md](CONFIG.md) for detailed configuration documentation. #### πŸ€– GitHub Copilot Repository Instructions Awesome Copilot can generate a `.github/copilot-instructions.md` file that provides repository-level instructions to GitHub Copilot. This file is automatically recognized by GitHub Copilot and applies to all code generation within your repository. **Benefits:** - Instructions automatically apply to all Copilot interactions in your repository - No need to manually configure VS Code settings for each team member - Instructions are version-controlled with your code - Works across all supported IDEs and GitHub Copilot interfaces **Templates:** - `--basic`: Simple list of enabled instructions (default) - `--consolidated`: Includes full content of all enabled instruction files - Custom templates can be created by modifying the `repository-instructions.js` file #### βš–οΈ Configuration Precedence Rules Awesome Copilot uses an **effective state system** that respects explicit overrides while allowing collections to provide convenient defaults. The effective state computation follows these precise rules: **Boolean Value Behavior:** - `true` β†’ **enabled** (explicit override) - `false` β†’ **disabled** (explicit override) - `undefined` β†’ **inherit from collections** (union of enabled collections) **Precedence Hierarchy:** 1. **Explicit Per-Item Overrides Take Precedence Over Collections** ```yaml collections: testing-automation: true # Enables 11 items including playwright-generate-test prompts: playwright-generate-test: false # Explicitly disabled, overrides collection create-readme: true # Explicitly enabled, regardless of collections ``` 2. **Collections Enable Groups of Items** ```yaml collections: frontend-web-dev: true # Enables React, Vue, TypeScript items testing-automation: true # Enables testing tools and frameworks ``` 3. **Undefined Items Inherit from Collections (Union Behavior)** - Items not explicitly listed (`undefined`) inherit from enabled collections - **Effective state = explicit override OR union of enabled collections** - Multiple enabled collections combine their items (union operation) - Only explicitly set `true`/`false` values override collection settings **Detailed Examples:** ```yaml # Configuration example showing precedence rules collections: testing-automation: true # Enables: playwright-generate-test, csharp-nunit, etc. frontend-web-dev: true # Enables: react-component, vue-component, etc. prompts: playwright-generate-test: false # Explicitly disabled (overrides testing-automation) create-readme: true # Explicitly enabled (regardless of collections) # vue-component: undefined # Inherits from frontend-web-dev β†’ enabled # api-testing: undefined # Not in any enabled collection β†’ disabled ``` ```bash # See effective states and why each item is enabled awesome-copilot list prompts # [βœ“] create-readme (explicit: true) # [βœ“] vue-component (collection: frontend-web-dev) # [βœ“] react-component (collection: frontend-web-dev) # [ ] playwright-generate-test (explicit: false - overrides collection) # [ ] api-testing (disabled: not in any enabled collection) # Collection toggle shows what will change awesome-copilot toggle collections frontend-web-dev on # Delta summary: # πŸ“ˆ 8 items will be enabled: # + prompts/react-component # + prompts/vue-component # + instructions/typescript-best-practices ``` ### πŸ“ Manual File Approach Browse the collections and manually copy files you want to use: ### 🎯 Prompts Use the `/` command in GitHub Copilot Chat to access prompts: ``` /awesome-copilot create-readme ``` ### πŸ“‹ Instructions Instructions automatically apply to files based on their patterns and provide contextual guidance for coding standards, frameworks, and best practices. ### πŸ’­ Chat Modes Activate chat modes to get specialized assistance from AI personas tailored for specific roles like architects, DBAs, or security experts. ## 🀝 Contributing We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details on how to: - Add new prompts, instructions, or chat modes - Improve existing content - Report issues or suggest enhancements ### Quick Contribution Guide 1. Follow our file naming conventions and frontmatter requirements 2. Test your contributions thoroughly 3. Update the appropriate README tables 4. Submit a pull request with a clear description ## πŸ“– Repository Structure ``` β”œβ”€β”€ prompts/ # Task-specific prompts (.prompt.md) β”œβ”€β”€ instructions/ # Coding standards and best practices (.instructions.md) β”œβ”€β”€ chatmodes/ # AI personas and specialized modes (.chatmode.md) β”œβ”€β”€ collections/ # Curated collections of related items (.collection.yml) └── scripts/ # Utility scripts for maintenance ``` ## 🌟 Getting Started ### πŸ”§ CLI Installation (Recommended) Install awesome-copilot CLI for streamlined project setup: ```bash # Step 1: Clone the repository git clone https://github.com/AstroSteveo/awesome-copilot cd awesome-copilot # Step 2: Install dependencies npm install # Step 3: Verify installation node awesome-copilot.js help ``` **Quick Setup:** 1. Navigate to your project directory: `cd /path/to/your/project` 2. Run `node /path/to/awesome-copilot/awesome-copilot.js init` to create configuration and VS Code setup 3. Edit `awesome-copilot.config.yml` to enable desired items 4. Run `node /path/to/awesome-copilot/awesome-copilot.js apply` to copy files to your project 5. Start using enhanced GitHub Copilot! **πŸ’‘ Pro Tip:** Create an alias for easier access: ```bash # Add to your ~/.bashrc or ~/.zshrc alias awesome-copilot="node /path/to/awesome-copilot/awesome-copilot.js" # Then you can simply use: awesome-copilot init awesome-copilot apply ``` ✨ **Benefits:** - Clean project setup with automatic VS Code configuration - Files organized in `.github/` directory - Automatic `.gitignore` management - Easy updates by re-running `apply` command **Note:** The package is not yet published to npm, so cloning the repository is currently required. ### πŸ“– Manual Installation 1. **Browse the Collections**: Check out our comprehensive lists of [prompts](README.prompts.md), [instructions](README.instructions.md), [chat modes](README.chatmodes.md), and [collections](README.collections.md). 2. **Add to your editor**: Click the "Install" button to install to VS Code, or copy the file contents for other editors. 3. **Start Using**: Copy prompts to use with `/` commands, let instructions enhance your coding experience, or activate chat modes for specialized assistance. ## πŸ“„ License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ## πŸ›‘οΈ Security & Support - **Security Issues**: Please see our [Security Policy](SECURITY.md) - **Support**: Check our [Support Guide](SUPPORT.md) for getting help - **Code of Conduct**: We follow the [Contributor Covenant](CODE_OF_CONDUCT.md) ## 🎯 Why Use Awesome GitHub Copilot? - **Productivity**: Pre-built prompts and instructions save time and provide consistent results - **Best Practices**: Benefit from community-curated coding standards and patterns - **Specialized Assistance**: Access expert-level guidance through specialized chat modes - **Continuous Learning**: Stay updated with the latest patterns and practices across technologies --- **Ready to supercharge your coding experience?** Start exploring our [prompts](README.prompts.md), [instructions](README.instructions.md), and [chat modes](README.chatmodes.md)! ## Contributors ✨ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
Aaron Powell
Aaron Powell

πŸ’» 🚧 πŸ“† πŸ“£
Muhammad Ubaid Raza
Muhammad Ubaid Raza

πŸ’»
Harald Kirschner
Harald Kirschner

πŸ’»
Matteo Bianchi
Matteo Bianchi

πŸ’»
Aung Myo Kyaw
Aung Myo Kyaw

πŸ’»
Daniel Scott-Raynsford
Daniel Scott-Raynsford

πŸ’»
Burke Holland
Burke Holland

πŸ’»
Peter StrΓΆmberg
Peter StrΓΆmberg

πŸ’»
Daniel Meppiel
Daniel Meppiel

πŸ’»
James Montemagno
James Montemagno

πŸ’»
Vamshi Verma
Vamshi Verma

πŸ’»
Yohan Lasorsa
Yohan Lasorsa

πŸ’»
Oren Me
Oren Me

πŸ’»
Mike Rousos
Mike Rousos

πŸ’»
Guilherme do Amaral Alves
Guilherme do Amaral Alves

πŸ’»
Troy Simeon Taylor
Troy Simeon Taylor

πŸ’»
Ambily
Ambily

πŸ’»
Tugdual Grall
Tugdual Grall

πŸ’»
Tianqi Zhang
Tianqi Zhang

πŸ’»
Shubham Gaikwad
Shubham Gaikwad

πŸ’»
Saul Dolgin
Saul Dolgin

πŸ’»
NULLchimp
NULLchimp

πŸ’»
Matt Vevang
Matt Vevang

πŸ’»
Justin Yoo
Justin Yoo

πŸ’»
Gisela Torres
Gisela Torres

πŸ’»
Debbie O'Brien
Debbie O'Brien

πŸ’»
Allen Greaves
Allen Greaves

πŸ’»
Amelia Payne
Amelia Payne

πŸ’»
Sebastien DEGODEZ
Sebastien DEGODEZ

πŸ’»
Sebastian GrΓ€f
Sebastian GrΓ€f

πŸ’»
Salih İbrahimbaş
Salih İbrahimbaş

πŸ’»
Robert Altman
Robert Altman

πŸ’»
Rob Simpson
Rob Simpson

πŸ’»
Rick Smit
Rick Smit

πŸ’»
Peter Smulovics
Peter Smulovics

πŸ’»
Peli de Halleux
Peli de Halleux

πŸ’»
Paulo Morgado
Paulo Morgado

πŸ’»
Nick Taylor
Nick Taylor

πŸ’»
Mike Parker
Mike Parker

πŸ’»
Mike Kistler
Mike Kistler

πŸ’»
Michael Fairchild
Michael Fairchild

πŸ’»
Michael A. Volz (Flynn)
Michael A. Volz (Flynn)

πŸ’»
4regab
4regab

πŸ’»
Theo van Kraay
Theo van Kraay

πŸ’»
Troy Witthoeft (glsauto)
Troy Witthoeft (glsauto)

πŸ’»
TΓ i LΓͺ
TΓ i LΓͺ

πŸ’»
Udaya Veeramreddygari
Udaya Veeramreddygari

πŸ’»
Waren Gonzaga
Waren Gonzaga

πŸ’»
Will 保ε“₯
Will 保ε“₯

πŸ’»
Yuki Omoto
Yuki Omoto

πŸ’»
Meii
Meii

πŸ’»
samqbush
samqbush

πŸ’»
sdanzo-hrb
sdanzo-hrb

πŸ’»
voidfnc
voidfnc

πŸ’»
Wendy Breiding
Wendy Breiding

πŸ’»
Ankur Sharma
Ankur Sharma

πŸ’»
黃ε₯ζ—» Vincent Huang
黃ε₯ζ—» Vincent Huang

πŸ’»
μ΄μƒν˜„
μ΄μƒν˜„

πŸ’»
Abdi Daud
Abdi Daud

πŸ’»
Adrien Clerbois
Adrien Clerbois

πŸ’»
Alan Sprecacenere
Alan Sprecacenere

πŸ’»
AndrΓ© Silva
AndrΓ© Silva

πŸ’»
Antoine Rey
Antoine Rey

πŸ’»
Artem Saveliev
Artem Saveliev

πŸ’»
Bruno Borges
Bruno Borges

πŸ’»
Christophe Peugnet
Christophe Peugnet

πŸ’»
Chtive
Chtive

πŸ’»
Craig Bekker
Craig Bekker

πŸ’»
Dan
Dan

πŸ’»
Eldrick Wega
Eldrick Wega

πŸ’»
Felix Arjuna
Felix Arjuna

πŸ’»
Furkan Enes
Furkan Enes

πŸ’»
Genevieve Warren
Genevieve Warren

πŸ’»
George Dernikos
George Dernikos

πŸ’»
Giovanni de Almeida Martins
Giovanni de Almeida Martins

πŸ’»
Ioana A
Ioana A

πŸ’»
Jakub JareΕ‘
Jakub JareΕ‘

πŸ’»
Joe Watkins
Joe Watkins

πŸ’»
John Papa
John Papa

πŸ’»
Joseph Gonzales
Joseph Gonzales

πŸ’»
JosΓ© Antonio Garrido
JosΓ© Antonio Garrido

πŸ’»
Kim Skov Rasmussen
Kim Skov Rasmussen

πŸ’»
Kenny White
Kenny White

πŸ’»
Louella Creemers
Louella Creemers

πŸ’»
Luke Murray
Luke Murray

πŸ’»
Mark Noble
Mark Noble

πŸ’»
Add your contributions
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! ## πŸ“š Additional Resources - [VS Code Copilot Customization Documentation](https://code.visualstudio.com/docs/copilot/copilot-customization) - Official Microsoft documentation - [GitHub Copilot Chat Documentation](https://code.visualstudio.com/docs/copilot/chat/copilot-chat) - Complete chat feature guide - [Custom Chat Modes](https://code.visualstudio.com/docs/copilot/chat/chat-modes) - Advanced chat configuration - [VS Code Settings](https://code.visualstudio.com/docs/getstarted/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](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). 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.