Skip to main content
Find answers to frequently asked questions about contributing to and using the Awesome GitHub Copilot repository.

General Questions

Awesome GitHub Copilot is a community-driven collection of custom agents, instructions, skills, hooks, workflows, and plugins designed to enhance GitHub Copilot experiences across various domains, languages, and use cases.
This project is maintained by GitHub and Microsoft staff and the community. It’s a collaborative effort where everyone can contribute to improve the resource for all GitHub Copilot users.
You can browse the repository to find instructions, agents, skills, hooks, workflows, and plugins that match your development needs. Each resource type has specific installation and usage instructions in its respective documentation.

Contributing

You can contribute instructions, agents, skills, hooks, workflows, or plugins. Each type has specific guidelines:
  1. Fork the repository
  2. Create a new branch for your contribution
  3. Add your resource following the appropriate guidelines
  4. Run npm install and npm run build to update the README
  5. Submit a pull request to the staged branch
See the Contributing Guide for detailed instructions.
All pull requests should target the staged branch, not main. This is important for the project’s workflow.
All files and folders should use lowercase names with words separated by hyphens. For example:
  • python-django.instructions.md
  • react-performance-expert.agent.md
  • my-skill-folder/SKILL.md
  • session-logger/ (for hooks)
No, the README is generated automatically. You just need to run npm run build after adding your contribution, and the script will update the README with your new resource.
Before submitting a pull request, ensure you:
  • 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
  • Verify that all new files have proper front matter
  • Test that your contribution works with GitHub Copilot
  • Check that file names follow the naming convention

Resource Types

Instructions are coding standards and best practices that apply to specific file patterns. They help customize GitHub Copilot’s behavior for particular technologies or frameworks.Agents are specialized personas or assistants that transform GitHub Copilot Chat into domain-specific experts for particular development scenarios.
Skills are self-contained folders that include a SKILL.md file with instructions and optional bundled assets (scripts, templates, data files). They provide specialized knowledge for specific tasks and follow the Agent Skills specification.
Plugins are installable packages that group related agents, commands, and skills around specific themes or workflows. They make it easy for users to install comprehensive toolkits via GitHub Copilot CLI.
Hooks are automated workflows triggered by specific events during GitHub Copilot coding agent sessions, such as session start, session end, user prompts, and tool usage. They follow the GitHub Copilot hooks specification.
Agentic Workflows are AI-powered repository automations that run coding agents in GitHub Actions. They’re defined in markdown with natural language instructions and enable scheduled and event-triggered automation with built-in guardrails.

File Requirements

Instruction files (*.instructions.md) must have:
  • description field (wrapped in single quotes, not empty)
  • applyTo field specifying file patterns (e.g., '**.js, **.ts')
Agent files (*.agent.md) must have:
  • description field (wrapped in single quotes, not empty)
  • name field with human-readable name (e.g., “Address Comments” not “address-comments”)
It’s also strongly recommended to include:
  • model field
  • tools field
Skills (SKILL.md) must have:
  • name field (lowercase with hyphens, matching folder name, max 64 characters)
  • description field (wrapped in single quotes, 10-1024 characters)
Hook folders must contain:
  • README.md with frontmatter including:
    • name field (human-readable name)
    • description field (wrapped in single quotes, not empty)
    • Optional tags field for categorization
  • hooks.json file with valid hook configuration
Workflow files (*.md in workflows/) must have:
  • name field (human-readable name)
  • description field (wrapped in single quotes, not empty)
  • Agentic workflow frontmatter including on, permissions, and optionally safe-outputs

Validation and Testing

Run npm run plugin:validate to verify your plugin structure. This will check that your plugin.json is valid and all referenced files exist.
Run npm run skill:validate to validate your skill structure. This will check that your SKILL.md has the required frontmatter and follows the specification.
Use the GitHub CLI command gh aw compile --validate --no-emit <workflow-file>.md to verify your workflow compiles correctly before submitting.
Always run bash scripts/fix-line-endings.sh before committing. This normalizes line endings from CRLF (Windows) to LF (Unix-style), which is required for the repository.

Recognition

We use all-contributors to recognize all types of contributions. To add yourself, leave a comment on a relevant issue or pull request:
@all-contributors add @username for contributionType1, contributionType2
The contributors list is updated automatically every Sunday at 3:00 AM UTC.
We recognize custom contribution types including:
  • Instructions 🧭 - Custom instruction sets
  • Agents 🎭 - GitHub Copilot roles or personalities
  • Skills 🧰 - Specialized knowledge for tasks
  • Workflows ⚡ - Agentic Workflows for automation
  • Plugins 🎁 - Installable packages
Plus all standard All Contributors types.

Policies

We will not accept contributions that:
  • Violate Responsible AI Principles
  • Compromise Security
  • Enable Malicious Activities
  • Exploit Weaknesses
  • Promote Harmful Content
  • Circumvent Platform Policies
See What We Don’t Accept for details.
By contributing to this repository, you agree that your contributions will be licensed under the MIT License.

Getting Help

Still have questions? Check out our Support page to learn how to get help or file an issue on GitHub.

Build docs developers (and LLMs) love