Go from typing your first suggestion to orchestrating custom extensions, GitHub Actions workflows, and Copilot Workspace tasks — with visual tutorials, copy-paste templates, and a guided learning path.
Get Started in 15 Minutes | Find Your Level | Browse the Feature Catalog
- The Problem
- How This Guide Fixes It
- How It Works
- The Six Primitives
- Not Sure Where to Start?
- Get Started in 15 Minutes
- What Can You Build With This?
- Feature Gaps vs. Claude Code
- FAQ
- Contributing
- License
You enabled GitHub Copilot. The ghost text shows up. Now what?
- The official docs describe features — but don't show you how to combine them. You know
/explainexists, but not how to chain it with custom instructions, chat variables, and Extensions into a workflow that saves hours. - There's no clear learning path. Should you learn Extensions before custom instructions? Chat variables before the CLI? You end up skimming everything and mastering nothing.
- Examples are too basic. A "hello world" custom instruction doesn't help you build a production code-review workflow that uses
@workspace, delegates to a custom Extension, and runs security scans via GitHub Actions automatically.
You're leaving 90% of Copilot's power on the table — and you don't know what you don't know.
This isn't another feature reference. It's a structured, visual, example-driven guide that teaches you to use every GitHub Copilot feature with real-world templates you can copy into your project today.
| Official Docs | This Guide | |
|---|---|---|
| Format | Reference documentation | Visual tutorials with Mermaid diagrams |
| Depth | Feature descriptions | How it works under the hood |
| Examples | Basic snippets | Production-ready templates you use immediately |
| Structure | Feature-organized | Progressive learning path (beginner to advanced) |
| Onboarding | Self-directed | Guided roadmap with time estimates |
- 16 tutorial modules covering every GitHub Copilot feature — from slash commands and custom instructions to prompt files, skills, chat modes, agents, MCP, and governance
- Copy-paste configs — instructions, prompt files, chat modes, skills, agent chains, MCP server config, asset manifest, eval checks, policy hooks, CI workflows
- Mermaid diagrams showing how each feature works internally, so you understand why, not just how
- A guided learning path that takes you from beginner to power user
Beginner (0-2h Copilot use) → Start at Module 01
Intermediate (daily user) → Start at Module 04
Advanced (team primitives) → Start at Module 07
Platform / Governance → Start at Module 11
graph LR
A[01 Inline Suggestions] --> B[02 IDE Integration]
B --> C[03 Slash Commands]
C --> D[04 Chat Variables]
D --> E[05 Custom Instructions]
E --> F[06 CLI]
F --> G[07 Custom Prompts]
G --> H[08 Chat Modes]
H --> I[09 Skills]
I --> J[10 Agents]
J --> K[11 Multi-Model + MCP]
K --> L[12 GitHub Actions]
L --> M[13 Copilot Workspace]
M --> N[14 Extensions]
N --> O[15 Enterprise]
O --> P[16 Governance]
Every module has copy-paste files. Copy them into your project and start using them immediately — no setup beyond having Copilot enabled.
GitHub Copilot has six customisation primitives. Each solves a different problem, and you compose them together for real workflows.
| Primitive | Trigger | Persistence | File location | Module |
|---|---|---|---|---|
| Team instructions | Always | Every interaction | .github/copilot-instructions.md |
05 |
| Instruction files | Auto, by file type | Matching files | .github/instructions/*.instructions.md |
05 |
| Prompt files | Manual — /command |
One-shot | .github/prompts/*.prompt.md |
07 |
| Skills | Auto-discovered by description | Loaded when relevant | .github/skills/<name>/SKILL.md |
09 |
| Chat modes | Manual — mode picker | Persistent session | .github/chatmodes/*.chatmode.md |
08 |
| Agents | Manual or chained | Until done or handoff | .github/agents/*.agent.md |
10 |
Layered, innermost to outermost:
Always on: [team instructions] + [instruction files scoped to current file type]
On demand: [slash command prompts] ← you type /review
Auto-loaded: [skills] ← Copilot decides based on what you're asking
Interactive: [chat modes] ← you pick the persona from the dropdown
Autonomous: [agents] ← runs a full workflow, can chain to other agents
Around the primitives sit the configuration layer (Module 11): named model slots, MCP tool servers, .copilotignore, least-privilege profiles. Around that sits governance (Module 16): asset manifest, changelog, eval checks, policy hooks.
| If you... | Start here |
|---|---|
| Just enabled Copilot | 01 Inline Suggestions |
| Setting up a new IDE | 02 IDE Integration |
| Ready to use chat | 03 Slash Commands |
| Want Copilot to understand your codebase better | 04 Chat Variables |
| Use Copilot daily but want more control | 05 Custom Instructions |
| Want shell-command help | 06 CLI |
| Want your own team slash commands | 07 Custom Prompts |
| Want persistent expert personas | 08 Chat Modes |
| Want Copilot to auto-apply runbooks | 09 Skills |
| Want autonomous plan → implement → review | 10 Agents |
| Need multi-model routing + MCP tools | 11 Multi-Model + MCP |
| Want to automate workflows | 12 GitHub Actions |
| Want task-based planning on github.com | 13 Copilot Workspace |
| Want to build custom Copilot tools | 14 Extensions |
| Work in a large organization | 15 Enterprise |
| Managing assets at scale (governance) | 16 Governance |
Step 1: Copy the project custom instructions template to your repo:
# Option A: Copy from this repo (if you've cloned it)
cp 05-custom-instructions/project-copilot-instructions.md .github/copilot-instructions.md
# Option B: Download directly (replace YOUR-USERNAME with your fork)
curl -o .github/copilot-instructions.md \
https://raw.githubusercontent.com/YOUR-USERNAME/copilot-howto/main/05-custom-instructions/project-copilot-instructions.mdStep 2: Edit .github/copilot-instructions.md to match your stack and standards.
Step 3: Open Copilot Chat and ask:
@workspace What are the main modules in this project and how do they interact?
You're now using custom instructions + @workspace context together. That's 80% of what most users never learn to combine.
| Use Case | Features Used | Module |
|---|---|---|
| Automated code review on every PR | Custom Instructions + GitHub Actions + Extensions | 05, 12, 14 |
| Team onboarding with consistent AI context | Custom Instructions + Chat Variables | 04, 05 |
| Security scanning in CI/CD | GitHub Actions + Copilot coding agent | 12 |
Custom /review command for your team |
Custom Prompt Files | 07 |
| Shell command generation from plain English | Copilot CLI | 06 |
| Complex refactoring with task planning | Copilot Workspace | 13 |
| Consistent docs generation | Custom Instructions + /doc |
03, 05 |
| Persistent "Security Auditor" chat persona | Chat Modes | 08 |
| Auto-loading Helm deploy runbook when asked to deploy | Skills | 09 |
| Plan → implement → review pipeline for a whole feature | Agents + Handoffs | 10 |
Route /architect to o3, /security-scan to Opus |
Multi-Model Routing | 11 |
| Give Copilot live K8s / DB / GitHub access | MCP (Model Context Protocol) | 11 |
| CI-validated Copilot asset changes with owner + audit trail | Governance (manifest, eval, hooks) | 16 |
| # | Module | What You Learn | Time |
|---|---|---|---|
| 01 | Inline Suggestions | Ghost text, partial accept, NES, settings — what you see Day 1 | 45 min |
| 02 | IDE Integration | VS Code, JetBrains, Neovim, Xcode — setup and keybindings | 1 hr |
| 03 | Slash Commands | /explain, /fix, /tests, /doc, /new, /simplify |
45 min |
| 04 | Chat Variables | @workspace, #file, #selection, @terminal |
1 hr |
| 05 | Custom Instructions | .github/copilot-instructions.md, VS Code user settings, scoped *.instructions.md |
1 hr |
| 06 | CLI | gh copilot suggest, gh copilot explain |
30 min |
| 07 | Custom Prompts | .github/prompts/*.prompt.md — your team's own /commands with pinned model + mode |
1 hr |
| 08 | Chat Modes | .github/chatmodes/*.chatmode.md — persistent personas (Code Reviewer, Security Auditor, Architect, ...) |
1 hr |
| 09 | Skills | .github/skills/<name>/SKILL.md — auto-discovered runbooks triggered by description: |
1.5 hr |
| 10 | Agents | .github/agents/*.agent.md — autonomous plan → implement → review chain with handoffs |
2 hr |
| 11 | Multi-Model + MCP | Named model slots, .vscode/mcp.json, .copilotignore, MCP least-privilege profiles |
2 hr |
| 12 | GitHub Actions | Copilot in CI/CD, automated review workflows | 1.5 hr |
| 13 | Copilot Workspace | Task-based planning and multi-file implementation | 1 hr |
| 14 | Extensions | Skillset and agent extensions, building custom tools (HTTP endpoints) | 2 hr |
| 15 | Enterprise | Policies, content exclusion, audit logs, SSO | 1 hr |
| 16 | Governance | Asset manifest, changelog, eval checks, policy hooks, copilot-setup-steps.yml |
2 hr |
Coming from Claude Code? As of April 2026, most of the gaps have closed — Copilot now supports MCP, agents, and session-level hooks. A few true gaps remain:
| Claude Code Feature | Copilot Status (as of April 2026) | Workaround / Equivalent |
|---|---|---|
| Extended Thinking | Not user-controllable. The underlying Claude/o3 models have thinking; Copilot doesn't expose a toggle. | Use o3 or claude-opus-4-5 via model: frontmatter — they think under the hood. |
Checkpoints / /rewind |
Not available in Copilot Chat. | VS Code Timeline for file-level rewind; git branches for conversation-level safe experimentation. |
| Intra-session tool-call hooks (PreToolUse / PostToolUse) | Partial. Workflow-level hooks exist via copilot-hooks.yml (Module 16). True intra-session hooks (interrupting a specific tool call in-chat) are not yet exposed. |
Use .github/workflows/copilot-hooks.yml for pre/post-action gates on the coding agent; use MCP profiles for tool-level allow/deny (Module 11). |
| MCP protocol | Supported. .vscode/mcp.json configures GitHub, filesystem, Kubernetes, Postgres, search, memory, and custom servers. |
Use Module 11. |
| Agents with plan → implement → review handoffs | Supported. .github/agents/*.agent.md files + handoff chains. |
Use Module 10. |
| Skills (auto-discovered runbooks) | Supported. .github/skills/<name>/SKILL.md with description-based triggers. |
Use Module 09. |
claude -p "..." full non-interactive automation |
Limited. gh copilot suggest is narrower than claude -p. |
For full automation, use the Copilot coding agent assigned to issues (GitHub automatically runs copilot-setup-steps.yml + agent chains). See Module 16 — setup-steps. |
| Hierarchical per-directory instructions | Partial. .github/instructions/*.instructions.md with applyTo: globs replaces most hierarchical use cases. No src/api/CLAUDE.md equivalent. |
Use scoped instruction files with applyTo: — see Module 05. |
Q: Which version of GitHub Copilot do I need? Copilot Individual, Business, or Enterprise all work. Some features (enterprise policies, audit logs) require Business/Enterprise. Extensions require Copilot Individual or higher.
Q: Which IDEs are supported? VS Code (best support), JetBrains IDEs (IntelliJ, PyCharm, WebStorm, etc.), Neovim, Vim, Xcode, and Azure Data Studio. See 02 IDE Integration. Chat modes, skills, agents, and MCP are VS Code-first; other IDEs have varying support.
Q: Do I need to know JavaScript to build Extensions? The scaffold examples use Node.js/Express, but any language that can serve HTTP endpoints works. The agent extension scaffold includes a minimal Express server to get started.
Q: Can I use custom instructions with JetBrains or Neovim?
.github/copilot-instructions.md is IDE-agnostic — it works everywhere Copilot Chat is available. VS Code user-level instructions (via settings.json), chat modes, and MCP servers are VS Code-specific.
Q: What's the difference between a Copilot Extension and a Skill / Agent file?
Copilot Extensions (Module 14) are HTTP endpoints you register with GitHub, invoked via @extension-name. They're for integrating external services.
Skills (Module 09) are markdown runbooks in your repo, auto-discovered when a request matches the description.
Agents (Module 10) are markdown files describing autonomous workflows that can chain together.
Extensions run on your server; skills and agents are context for the models Copilot already uses.
Q: Does Copilot support MCP (Model Context Protocol)?
Yes, as of late 2025 / early 2026. Configure servers in .vscode/mcp.json and they become available in agent mode. See Module 11. The old "not supported" answer is outdated.
Q: Which Copilot tier do I need for chat modes, agents, and MCP? Chat modes and agent mode are in all tiers as of 2026, but several models (Claude Opus, Gemini Pro, o3) require Copilot Business or Enterprise. The coding agent (assigning issues to Copilot) requires Business or Enterprise. See Module 15 and Module 11 model-compatibility.json for the current matrix.
Q: Where do I get help?
See CONTRIBUTING.md. Bug reports, new templates, and additional IDE guides are all welcome.
MIT — see LICENSE.