Skip to main content
Thank you for your interest in contributing to the Awesome GitHub Copilot repository! We welcome contributions from the community to help expand our collection of custom instructions, agents, skills, hooks, workflows, and plugins.

How to Contribute

You can contribute in several ways:

Instructions

Customize GitHub Copilot’s behavior for specific technologies and practices

Agents

Create specialized assistants for particular development scenarios

Skills

Build self-contained resources with instructions and bundled assets

Plugins

Package related agents, commands, and skills into installable toolkits

Hooks

Automate workflows triggered by specific development events

Workflows

Create AI-powered repository automation for GitHub Actions

Contribution Workflows

Adding Instructions

Instructions help customize GitHub Copilot’s behavior for specific technologies, coding practices, or domains.
1

Create your instruction file

Add a new .md file in the instructions/ directory
2

Follow the naming convention

Use descriptive, lowercase filenames with hyphens (e.g., python-django.instructions.md)
3

Structure your content

Start with a clear heading and organize your instructions logically
4

Test your instructions

Make sure your instructions work well with GitHub Copilot
Example instruction format:
---
description: 'Instructions for customizing GitHub Copilot behavior for specific technologies and practices'
---

# Your Technology/Framework Name

## Instructions

- Provide clear, specific guidance for GitHub Copilot
- Include best practices and conventions
- Use bullet points for easy reading

## Additional Guidelines

- Any additional context or examples

Adding Agents

Agents are specialized configurations that transform GitHub Copilot Chat into domain-specific assistants or personas.
1

Create your agent file

Add a new .agent.md file in the agents/ directory
2

Follow the naming convention

Use descriptive, lowercase filenames with hyphens and the .agent.md extension (e.g., react-performance-expert.agent.md)
3

Include frontmatter

Add metadata at the top of your file with required fields
4

Define the persona

Create a clear identity and expertise area for the agent
5

Test your agent

Ensure the agent provides helpful, accurate responses in its domain
Example agent format:
---
description: 'Brief description of the agent and its purpose'
model: 'gpt-5'
tools: ['codebase', 'terminalCommand']
name: 'My Agent Name'
---

You are an expert [domain/role] with deep knowledge in [specific areas].

## Your Expertise

- [Specific skill 1]
- [Specific skill 2]
- [Specific skill 3]

## Your Approach

- [How you help users]
- [Your communication style]
- [What you prioritize]

## Guidelines

- [Specific instructions for responses]
- [Constraints or limitations]
- [Best practices to follow]

Adding Skills

Skills are self-contained folders in the skills/ directory that include a SKILL.md file (with front matter) and optional bundled assets.
1

Create a new skill folder

Run npm run skill:create -- --name <skill-name> --description "<skill description>"
2

Edit SKILL.md

Ensure the name matches the folder name (lowercase with hyphens) and the description is clear and non-empty
3

Add optional assets

Keep bundled assets reasonably sized (under 5MB each) and reference them from SKILL.md
4

Validate and update docs

Run npm run skill:validate and then npm run build to update the generated README tables

Adding Plugins

Plugins group related agents, commands, and skills around specific themes or workflows.
1

Create your plugin

Run npm run plugin:create to scaffold a new plugin
2

Follow the naming convention

Use descriptive, lowercase folder names with hyphens (e.g., python-web-development)
3

Define your content

List agents, commands, and skills in plugin.json using the Claude Code spec fields
4

Test your plugin

Run npm run plugin:validate to verify your plugin structure
Plugin content is defined declaratively in plugin.json using Claude Code spec fields (agents, commands, skills). Source files live in top-level directories and are materialized into plugins by CI.
Plugin structure:
plugins/my-plugin-id/
├── .github/plugin/plugin.json  # Plugin metadata (Claude Code spec format)
└── README.md                   # Plugin documentation
plugin.json example:
{
  "name": "my-plugin-id",
  "description": "Plugin description",
  "version": "1.0.0",
  "keywords": [],
  "author": { "name": "Awesome Copilot Community" },
  "repository": "https://github.com/github/awesome-copilot",
  "license": "MIT",
  "agents": ["./agents/my-agent.md"],
  "commands": ["./commands/my-command.md"],
  "skills": ["./skills/my-skill/"]
}

Adding Hooks

Hooks enable automated workflows triggered by specific events during GitHub Copilot coding agent sessions.
1

Create a new hook folder

Add a new folder in the hooks/ directory with a descriptive, lowercase name using hyphens (e.g., session-logger)
2

Create README.md

Add a README.md file with frontmatter including name, description, and optionally tags
3

Create hooks.json

Add a hooks.json file with hook configuration following the GitHub Copilot hooks specification
4

Add bundled scripts

Include any scripts or assets the hook needs, and make them executable (chmod +x script.sh)
5

Update the README

Run npm run build to update the generated README tables

Adding Agentic Workflows

Agentic Workflows are AI-powered repository automations that run coding agents in GitHub Actions.
1

Create your workflow file

Create a new .md file in the workflows/ directory (e.g., daily-issues-report.md)
2

Include frontmatter

Add name and description, followed by agentic workflow frontmatter (on, permissions, safe-outputs) and natural language instructions
3

Test locally

Run gh aw compile --validate --no-emit daily-issues-report.md to verify it’s valid
4

Update the README

Run npm run build to update the generated README tables
Only .md files are accepted — do not include compiled .lock.yml or .yml files. CI will block them.

Submitting Your Contribution

1

Fork this repository

Create your own fork of the repository
2

Create a new branch

Create a branch for your contribution
3

Add your contribution

Add your instruction, skill, agent, workflow, or plugin following the guidelines above
4

Run the update script

Run npm start to update the README with your new file (make sure you run npm install first if you haven’t already)
5

Submit a pull request

Submit a pull request targeting the staged branch with:
  • A clear title describing your contribution
  • A brief description of what your contribution does
  • Any relevant context or usage notes
All pull requests should target the staged branch, not main.
We use all-contributors to recognize all types of contributions to the project. Learn more in Contributor Recognition.

Pre-commit Checklist

Before submitting your PR, ensure you have:
  • Run npm install (or npm ci) to install dependencies
  • Run npm run build to generate the updated README.md
  • Run bash scripts/fix-line-endings.sh to normalize line endings
  • Verified that all new files have proper front matter
  • Tested that your contribution works with GitHub Copilot
  • Checked that file names follow the naming convention

What We Accept

We welcome contributions covering any technology, framework, or development practice that helps developers work more effectively with GitHub Copilot. This includes:
  • Programming languages and frameworks
  • Development methodologies and best practices
  • Architecture patterns and design principles
  • Testing strategies and quality assurance
  • DevOps and deployment practices
  • Accessibility and inclusive design
  • Performance optimization techniques

What We Don’t Accept

To maintain a safe, responsible, and constructive community, we will not accept contributions that:
  • Violate Responsible AI Principles: Content that attempts to circumvent Microsoft/GitHub’s Responsible AI guidelines or promotes harmful AI usage
  • Compromise Security: Instructions designed to bypass security policies, exploit vulnerabilities, or weaken system security
  • Enable Malicious Activities: Content intended to harm other systems, users, or organizations
  • Exploit Weaknesses: Instructions that take advantage of vulnerabilities in other platforms or services
  • Promote Harmful Content: Guidance that could lead to the creation of harmful, discriminatory, or inappropriate content
  • Circumvent Platform Policies: Attempts to work around GitHub, Microsoft, or other platform terms of service

Quality Guidelines

  • Be specific: Generic instructions are less helpful than specific, actionable guidance
  • Test your content: Ensure your instructions or skills work well with GitHub Copilot
  • Follow conventions: Use consistent formatting and naming
  • Keep it focused: Each file should address a specific technology, framework, or use case
  • Write clearly: Use simple, direct language
  • Promote best practices: Encourage secure, maintainable, and ethical development practices

Contributor Recognition

We use all-contributors to recognize all types of contributions to this project. To add yourself, leave a comment on a relevant issue or pull request using your GitHub username and the appropriate contribution type(s):
@all-contributors add @username for contributionType1, contributionType2
The contributors list is updated automatically every Sunday at 3:00 AM UTC. When the next run completes, your name will appear in the README Contributors section.

Contribution Types

We welcome many kinds of contributions, including the custom categories below:
CategoryDescriptionEmoji
InstructionsCustom instruction sets that guide GitHub Copilot behavior🧭
AgentsDefined GitHub Copilot roles or personalities🎭
SkillsSpecialized knowledge of a task for GitHub Copilot🧰
WorkflowsAgentic Workflows for AI-powered repository automation
PluginsInstallable packages of related prompts, agents, or skills🎁
In addition, all standard contribution types supported by All Contributors are recognized.
Every contribution matters. Thanks for helping improve this resource for the GitHub Copilot community.

Code of Conduct

Please note that this project is maintained with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

License

By contributing to this repository, you agree that your contributions will be licensed under the MIT License.

Build docs developers (and LLMs) love