GitHub Copilot CLI Skills: Create, Add, and Use Them Step by Step
If you use GitHub Copilot CLI often, skills are one of the best ways to make it more useful for repeated workflows. A skill lets you teach Copilot how to handle a specific kind of task by giving it focused instructions, examples, and optional helper scripts.
This guide walks through the full process of creating a skill, adding it to GitHub Copilot CLI, reloading it, checking that it works, and using it in real prompts.
What a skill is
A skill is a folder that contains:
- a required
SKILL.mdfile - optional helper files such as scripts, examples, or reference documents
When Copilot decides a skill is relevant, it loads that skill's instructions into context and uses them while working on your task.
Skills are best for:
- debugging a recurring problem type
- standardizing how Copilot performs a workflow
- teaching Copilot project-specific procedures
- packaging reusable scripts or checklists with instructions
If you want behavior that applies to almost every task, use custom instructions instead. If you want behavior that only matters for a specialized task, use a skill.
Where skills can live
You can create skills at either the personal level or the project level.
Personal skills
These work across many projects. Valid personal skills directories include:
~/.copilot/skills~/.claude/skills~/.agents/skills
On Windows, ~/.copilot/skills usually maps to something like:
C:\Users\YOUR_USERNAME\.copilot\skills
Example:
C:\Users\Saeed\.copilot\skills
Project skills
These only apply to one repository. Valid project skills directories include:
.github/skills.claude/skills.agents/skills
Example:
my-project\.github\skills
Skill folder structure
Each skill must live in its own folder, and the folder should use lowercase letters with hyphens.
Example:
.github\skills\github-actions-failure-debugging
Inside that folder, you must create a file named exactly:
SKILL.md
That filename is required. If the file is named anything else, Copilot will not load it as a skill.
Step 1: Create the skill folder
Choose whether the skill should be personal or project-specific, then create a new folder for it.
Example personal skill path:
C:\Users\Saeed\.copilot\skills\github-actions-failure-debugging
Example project skill path:
my-project\.github\skills\github-actions-failure-debugging
Step 2: Create SKILL.md
Your SKILL.md file uses Markdown with YAML frontmatter at the top.
At minimum, it should contain:
name- requireddescription- requiredlicense- optional
Minimal example
---
name: github-actions-failure-debugging
description: Guide for debugging failing GitHub Actions workflows. Use this when asked to debug failing GitHub Actions workflows.
---
To debug failing GitHub Actions workflows, follow this process:
1. Check recent workflow runs and identify the failed jobs.
2. Read failure summaries first before pulling full logs.
3. Reproduce the issue locally when possible.
4. Fix the issue and confirm the failure is resolved.
Important naming rules
nameshould be lowercase- use hyphens instead of spaces
- the name should be unique
- the directory name usually matches the skill name
Step 3: Write useful instructions
The body of SKILL.md is where you teach Copilot how to behave.
Good skill instructions usually include:
- when the skill should be used
- the exact process Copilot should follow
- preferred tools or commands
- constraints and warnings
- examples of good outcomes
Better example
---
name: api-bug-triage
description: Helps investigate and fix backend API bugs. Use this when asked to debug failing API routes, server errors, or incorrect API responses.
---
Use this skill when the task is about diagnosing or fixing API behavior.
Follow this process:
1. Identify the failing route, endpoint, or request path.
2. Inspect the handler, validation, service, and data-access layers involved.
3. Reproduce the issue locally if possible.
4. Look for recent code changes or mismatched assumptions in request and response shapes.
5. Prefer fixing the root cause instead of adding defensive workarounds.
6. After making changes, run the project's existing checks relevant to the affected area.
When reporting the result:
- state the root cause clearly
- describe the fix briefly
- mention any assumptions or remaining edge cases
This is much more helpful than a short generic paragraph because it tells Copilot exactly how to approach the work.
Step 4: Add optional supporting files
You can include extra files in the same skill folder, such as:
- shell scripts
- PowerShell scripts
- example inputs
- checklists
- reference Markdown files
Example:
.github\skills\image-convert\
├── SKILL.md
├── convert-svg-to-png.sh
└── examples.md
When the skill is invoked, Copilot can discover these files and use them along with the skill instructions.
Step 5: Let a skill use a script
If your skill depends on a script, place the script in the skill folder and tell Copilot exactly how to use it.
Example SKILL.md:
---
name: image-convert
description: Converts SVG images to PNG format. Use this when asked to convert SVG files.
---
When asked to convert an SVG to PNG, run the `convert-svg-to-png.sh` script
from this skill's base directory and pass the input SVG path as the first argument.
This works best when your instructions are explicit about:
- which script to run
- where it is located
- what arguments it expects
- what output should be produced
Step 6: Optionally pre-approve tools
You can add an allowed-tools field in the frontmatter so Copilot can use specific tools without asking every time.
Example:
---
name: image-convert
description: Converts SVG images to PNG format. Use this when asked to convert SVG files.
allowed-tools: shell
---
Be careful with this.
Pre-approving shell or bash can be risky because it removes an approval step before terminal commands run. Only do this if you fully trust the skill and any scripts it references.
If you are unsure, leave allowed-tools out and let Copilot ask before running commands.
Step 7: Add the skill to Copilot CLI
Once the skill folder exists in one of the supported locations, Copilot CLI can load it.
If you add the skill while the CLI is already running, reload skills with:
/skills reload
If you are starting a fresh session, simply launching Copilot again is often enough because it will load available skills at startup.
Step 8: Verify the skill is available
Use these commands inside Copilot CLI:
List skills
/skills list
This shows the currently available skills.
Get info about one skill
/skills info github-actions-failure-debugging
This helps confirm:
- the skill was detected
- the loaded skill name is correct
- where Copilot found it
Enable or disable skills interactively
/skills
This opens the skills manager where you can toggle skills on or off.
Add another skill location
/skills add
Use this if you want Copilot to load skills from an additional directory.
Remove a skill location or installed skill
/skills remove SKILL-DIRECTORY
Use /skills info first if you are not sure where a skill came from.
Step 9: Use the skill
There are two main ways to use a skill.
1. Let Copilot choose it automatically
If the skill description clearly matches your task, Copilot may decide to use it automatically.
For example, if your skill description says it is for debugging failing GitHub Actions workflows, then prompts about broken CI jobs may trigger it.
2. Call the skill explicitly in your prompt
You can directly reference the skill name with a leading slash:
Use the /github-actions-failure-debugging skill to investigate why this workflow is failing.
Another example:
Use the /api-bug-triage skill to debug the 500 error in this Express route.
This is the most reliable way to force a specific skill into the workflow.
Example: full skill from start to finish
Here is a complete example of a practical skill.
Folder:
C:\Users\Saeed\.copilot\skills\frontend-design
File:
C:\Users\Saeed\.copilot\skills\frontend-design\SKILL.md
Contents:
---
name: frontend-design
description: Helps design and refine frontend UI components. Use this when asked to improve layout, spacing, responsiveness, or visual hierarchy in web interfaces.
---
Use this skill for frontend UI and UX refinement tasks.
Follow this process:
1. Identify the page, component, or layout being changed.
2. Understand the current structure before changing styles.
3. Prefer small, coherent improvements over broad rewrites.
4. Preserve accessibility and responsive behavior.
5. Reuse existing component patterns when possible.
When making changes:
- improve spacing and alignment
- make responsive behavior explicit
- preserve semantic HTML
- avoid introducing inconsistent styles
When reporting back:
- explain the main visual improvement
- mention any responsive or accessibility impact
Then in Copilot CLI:
/skills reload
/skills info frontend-design
And then use it like this:
Use the /frontend-design skill to improve the layout of the homepage hero section.
When to use skills vs custom instructions
Use skills when:
- the guidance is specialized
- it only applies to some tasks
- the workflow benefits from step-by-step instructions
- you want to bundle scripts or reference files with the instructions
Use custom instructions when:
- the guidance should apply to almost every task
- you want repository-wide conventions
- you are defining coding style, architecture preferences, or team norms
In short:
- custom instructions shape general behavior
- skills teach targeted workflows
Common mistakes
1. Naming the file incorrectly
The file must be named exactly SKILL.md.
2. Putting the skill in the wrong directory
The skill folder must be inside one of the supported skills directories.
3. Writing a vague description
If the description is too generic, Copilot may not know when to use the skill.
Bad example:
description: Helps with coding.
Better example:
description: Helps debug failing GitHub Actions workflows. Use this when asked to investigate CI failures, broken workflow jobs, or failing pull request checks.
4. Giving weak instructions
If the body of the skill is too short or abstract, the skill will not add much value.
5. Forgetting to reload skills
If you add or change a skill during an active session, run:
/skills reload
Recommended workflow
If you are creating a skill for the first time, this is a good process:
- Start with one narrow use case.
- Write a very clear description that explains when the skill should be used.
- Add a short but precise step-by-step process.
- Reload the skills in Copilot CLI.
- Check the skill with
/skills info. - Invoke it explicitly with
/skill-name. - Improve the instructions after seeing how Copilot uses it in practice.
Useful CLI commands summary
/skills
/skills list
/skills info SKILL-NAME
/skills add
/skills reload
/skills remove SKILL-DIRECTORY
Final thoughts
Skills are a practical way to make GitHub Copilot CLI better at your own workflows. A good skill is not just a note or a label. It is a small, focused operating guide that tells Copilot when to act, how to act, and what good output looks like.
Start simple. Build one skill for a workflow you repeat often. Once that works well, create more skills for the other tasks where you want Copilot to behave consistently and intelligently.