https://github.com/nishanil/copilot-guide
A simple guide to every GitHub Copilot customization and agentic feature โ instructions, agents, skills, MCP, coding agent, and more.
https://github.com/nishanil/copilot-guide
copilot github
Last synced: 2 months ago
JSON representation
A simple guide to every GitHub Copilot customization and agentic feature โ instructions, agents, skills, MCP, coding agent, and more.
- Host: GitHub
- URL: https://github.com/nishanil/copilot-guide
- Owner: nishanil
- License: mit
- Created: 2026-02-20T07:18:52.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-03-08T23:20:51.000Z (3 months ago)
- Last Synced: 2026-03-09T00:56:41.918Z (3 months ago)
- Topics: copilot, github
- Language: Python
- Homepage:
- Size: 270 KB
- Stars: 2
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ค Understanding GitHub Copilot
**A comprehensive guide to every GitHub Copilot customization and agentic feature.**
What each does ยท When you'd use it ยท How they fit together
[](https://github.com/features/copilot)
[](LICENSE)
[](https://github.com/nishanil/copilot-guide/pulls)
๐ Read this guide on GitHub Pages for a better reading experience.
## Who is this guide for?
This is a single-page reference to get you onboarded quickly with GitHub Copilot's customization and agentic features. It covers what each feature does, when to use it, and how they fit together โ so you can start building without reading dozens of docs pages first.
For detailed documentation, see the [Further Reading](#further-reading) section at the end.
> โ ๏ธ **Note:** This guide was written with the help of an AI agent and is kept up to date by an [agentic workflow](.github/workflows/check-copilot-updates.md) that checks for new Copilot features daily. I've done my best to keep it accurate, but always double-check details against the [official documentation](https://docs.github.com/en/copilot). If something looks off, it's probably the agent's fault ๐ค
## At a Glance
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ ๐ CUSTOMIZATION โ files that shape how Copilot behaves โ
โ โ
โ Instructions Always-on project context & conventions โ
โ Path-specific Different rules for different parts โ
โ Prompt files Reusable recipes for repeated tasks โ
โ Skills Packaged expertise, auto-loaded on demand โ
โ MCP Servers Connect to external tools, databases, APIs โ
โ Hooks Automate lifecycle events (format, lint, startup) โ
โ Custom Agents Named specialists with personas โ
โ Plugins Bundle all of the above into one package โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โก AGENTIC โ runtime capabilities for delegation & parallelism โ
โ โ
โ Running Parallel Auto-delegates work; /fleet for explicit โ
โ Tasks & /fleet parallel execution via subagents โ
โ Autopilot Mode Hands-off autonomous task completion (CLI) โ
โ Coding Agent Autonomous cloud agent โ issues in, PRs out โ
โ Agentic Workflows Automate repo tasks via GitHub Actions + AI โ
โ Mission Control Dashboard to manage coding agents at scale โ
โ Agents Tab Repo-level UI for agent tasks and tracking โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ ๐ง PLATFORM โ built-in intelligence & extensibility โ
โ โ
โ Agentic Memory Per-repo persistent memory across sessions โ
โ Copilot Spaces Project-specific knowledge containers โ
โ Copilot SDK Build your own agents as code (Node/Python/Go) โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ ๐ COMMUNITY โ open-source projects built on Copilot โ
โ โ
โ Squad Persistent AI team with memory & identity โ
โ awesome-copilot Curated collection of patterns & resources โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
---
## Table of Contents
- [Customization Features](#customization-features)
- [Custom Instructions](#custom-instructions)
- [Path-Specific Instructions](#path-specific-instructions)
- [Prompt Files](#prompt-files)
- [Skills](#skills)
- [MCP Servers](#mcp-servers)
- [Hooks](#hooks)
- [Custom Agents](#custom-agents)
- [Plugins](#plugins)
- [Agentic Features](#agentic-features)
- [Running Parallel Tasks](#running-parallel-tasks)
- [Autopilot Mode](#autopilot-mode)
- [Copilot Coding Agent](#copilot-coding-agent)
- [Agentic Workflows](#agentic-workflows)
- [Mission Control](#mission-control)
- [Agents Tab](#agents-tab)
- [Platform Features](#platform-features)
- [Agentic Memory](#agentic-memory)
- [Copilot Spaces](#copilot-spaces)
- [Copilot SDK](#copilot-sdk)
- [Community Projects](#community-projects)
- [Squad](#squad)
- [awesome-copilot](#awesome-copilot)
- [Best Practices](#best-practices)
- [Quick Reference](#quick-reference)
- [Further Reading](#further-reading)
---
## Customization Features
> Files you add to your repo (or user config) that shape how Copilot behaves.
### Custom Instructions
Always-on project context. Copilot reads this on **every** interaction โ chat, completions, code review.
> **When you need it:** Copilot doesn't know your stack, conventions, or preferences.
**๐ Location:** `.github/copilot-instructions.md`
```markdown
# Project: RecipeShare
- Framework: React 19 + Hono backend
- Styling: Tailwind CSS (no CSS modules)
- Language: TypeScript strict mode
- Use `const` over `let`, never `var`
- Tests: Vitest + React Testing Library
- Database: Drizzle ORM with PostgreSQL
```
**Effect:** Every Copilot response now respects these rules. No agent needed. No tools. Just context.
| | |
|---|---|
| **Scope** | Repository-wide, always-on |
| **Applies to** | Chat, completions, code review โ everything |
| **Commit it** | Yes โ the whole team benefits |
---
### Path-Specific Instructions
Override or refine rules for specific files or folders.
> **When you need it:** Your backend code needs different rules than your frontend. Test files shouldn't be as strict.
**๐ Location:** `.github/instructions/*.instructions.md`
```
.github/
โโโ copilot-instructions.md # global
โโโ instructions/
โ โโโ frontend.instructions.md # applyTo: "src/client/**"
โ โโโ backend.instructions.md # applyTo: "src/server/**"
โ โโโ tests.instructions.md # applyTo: "**/*.test.ts"
```
Example โ backend.instructions.md
```markdown
---
applyTo: "src/server/**"
---
- All API routes return JSON with { data, error } envelope
- Use Zod for request validation
- Every endpoint needs rate limiting middleware
```
**Effect:** Backend files get global + backend instructions. Frontend files get global + frontend instructions. They don't bleed into each other.
| | |
|---|---|
| **Scope** | Targeted via `applyTo` glob patterns |
| **Merging** | Path-specific merges with global (doesn't replace) |
---
### Prompt Files
Reusable task templates you invoke explicitly via `/` commands in chat.
> **When you need it:** You keep doing the same multi-step tasks โ "create a new API endpoint" always involves route + validation + test + migration.
**๐ Location:** `.github/prompts/*.prompt.md`
Example โ new-endpoint.prompt.md
```markdown
Create a new Hono API endpoint:
1. Add route in src/server/routes/
2. Add Zod schema in src/server/schemas/
3. Add Drizzle migration in drizzle/migrations/
4. Add Vitest integration test
5. Update the OpenAPI spec
```
**Usage:** Type `/new-endpoint` in Copilot chat โ it runs the full recipe.
| | |
|---|---|
| **Scope** | On-demand โ invoked explicitly, never auto-loaded |
| **Difference from instructions** | Prompts are manual recipes; instructions are always-on context |
---
### Skills
Modular knowledge packages with a `SKILL.md` that Copilot loads on-demand when relevant.
> **When you need it:** Your deployment or migration process is complex and you want Copilot (including the coding agent) to know how to do it without you explaining every time.
**๐ Location:** `.github/skills/{skill-name}/SKILL.md`
Example โ drizzle-migrations/SKILL.md
```markdown
---
name: drizzle-migrations
description: Create, review, and apply Drizzle ORM database migrations.
---
# Drizzle Migration Skill
## When to use
When creating or modifying database tables.
## Steps
1. Run `npx drizzle-kit generate` to create migration
2. Review generated SQL in drizzle/migrations/
3. Run `npx drizzle-kit migrate` to apply
4. Update src/server/db/schema.ts with new types
## Gotchas
- Always check for existing data before DROP COLUMN
- Use `default()` for new non-nullable columns on existing tables
```
**Effect:** When Copilot detects a task related to migrations, it loads this skill automatically. Works across CLI, VS Code, and the coding agent.
| | |
|---|---|
| **Scope** | Auto-loaded when the task domain matches |
| **Difference from prompts** | Skills are auto-detected; prompts are manually invoked |
---
### MCP Servers
[Model Context Protocol](https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp/extend-copilot-chat-with-mcp) servers connect Copilot to external tools โ databases, APIs, cloud services, issue trackers โ so agents can read and write to systems beyond your local files.
> **When you need it:** Your app needs to interact with other systems, ex: query PostgreSQL, check GitHub issues, or interact with cloud storage. Without MCP, you'd have to copy-paste data into chat.
**๐ Location:** `.vscode/mcp.json` (VS Code) or `~/.copilot/mcp-config.json` (CLI)
Example configuration
```jsonc
{
"servers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" }
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": { "DATABASE_URL": "${DATABASE_URL}" }
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "./docs"]
}
}
}
```
| Without MCP | With MCP |
|---|---|
| "Here's my schema, can you write a query?" | Agent reads the schema directly from PostgreSQL |
| "The issue says..." (you paste it) | Agent reads the issue via GitHub MCP server |
| "Upload to cloud storage" (you do it manually) | Agent calls cloud storage API through an MCP server |
| | |
|---|---|
| **Scope** | Available to all agents in the session |
| **Discovery** | VS Code has a built-in MCP server gallery (search `@mcp` in Extensions) |
| **Security** | Servers run locally โ your credentials stay on your machine |
| **OAuth / API keys** | MCP servers can request you to visit a URL for out-of-band auth flows (e.g. OAuth, API key entry) |
---
### Hooks
Custom scripts that run automatically at specific lifecycle events โ like pre-commit formatting, post-generation linting, or startup prompts.
> **When you need it:** You want every code generation to be auto-formatted with Prettier, or every commit to run lint checks, without remembering to do it manually.
**๐ Location:** `.github/hooks/` (repo-level) or `~/.copilot/hooks/` (personal, user-level)
Example โ repo-level .github/hooks/hooks.json
```jsonc
{
"hooks": {
"post-edit": {
"command": "npx prettier --write ${file}"
},
"pre-commit": {
"command": "npm run lint:fix",
"timeout": 30
},
"startup": {
"prompt": "/compact Summarize recent changes in RecipeShare"
}
}
}
```
**Hook types:**
| Event | Trigger |
|---|---|
| `post-edit` | After Copilot edits a file |
| `pre-commit` | Before a git commit |
| `startup` | When a CLI session starts โ auto-submits a prompt or slash command |
**Config notes:**
- Use `"command"` as a **cross-platform alias** for `bash`/`powershell` shell commands โ works on all platforms without separate entries
- `"timeout"` is accepted as an alias for `"timeoutSec"` for readable config
- Personal hooks (`~/.copilot/hooks/`) apply across all repos; repo-level hooks (`.github/hooks/`) are scoped to that repo
| | |
|---|---|
| **Scope** | Runs automatically at lifecycle events โ no manual invocation |
| **Personal hooks** | `~/.copilot/hooks/` โ applies to all repos on your machine |
| **Difference from skills** | Skills are knowledge Copilot reads; hooks are scripts Copilot runs |
---
### Custom Agents
A named agent with a persona, specific tools, and specialized behavior.
> **When you need it:** You want a dedicated "security reviewer" that always checks for auth issues, SQL injection, etc. โ not just general Copilot.
**๐ Location:** `.github/agents/{name}.agent.md`
Example โ security-reviewer.agent.md
```markdown
---
name: Security Reviewer
description: Reviews code for security vulnerabilities
---
You are a security-focused code reviewer for RecipeShare.
Always check for:
- SQL injection (even with Drizzle ORM โ check raw queries)
- XSS in React components (dangerouslySetInnerHTML)
- Auth bypass in API routes (missing middleware)
- File upload validation (type, size, path traversal)
- Rate limiting on auth endpoints
- Secrets in code or config
Output format: list findings as HIGH/MEDIUM/LOW with file:line references.
```
**Usage:** Select "Security Reviewer" from `/agents` in Copilot. It's a separate selectable agent, not always-on.
| | |
|---|---|
| **Scope** | Explicitly selected by the user โ not auto-loaded |
| **Difference from instructions** | Agents are interactive personas; instructions are passive context |
---
### Plugins
Installable packages that bundle agents, skills, hooks, and MCP server configs into a single distributable unit. ([Docs](https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating))
> **When you need it:** Your team has built a great set of agents, skills, hooks, and MCP configs. Instead of copying files between repos, you package them as a plugin that anyone can install.
Example structure
```
my-copilot-plugin/
โโโ plugin.json # Manifest โ what's in the package
โโโ agents/
โ โโโ security-reviewer.agent.md
โโโ skills/
โ โโโ drizzle-migrations/
โ โโโ SKILL.md
โโโ hooks/
โ โโโ post-edit-prettier.json
โโโ mcp/
โโโ postgres-config.json
```
```bash
# Install from a GitHub repo
copilot plugin install github:myorg/recipeshare-toolkit
# List installed plugins
copilot plugin list
```
Enable plugins automatically at startup by listing them in your CLI config:
```jsonc
// ~/.copilot/settings.json
{
"enabledPlugins": [
"github:myorg/recipeshare-toolkit"
]
}
```
| | |
|---|---|
| **Location** | Installed into `~/.copilot/plugins/` or project-local |
| **Scope** | All bundled agents/skills/hooks/MCP become available |
| **Auto-install** | List in `enabledPlugins` in `~/.copilot/settings.json` to install automatically at startup |
| **Difference from skills** | A skill is one knowledge file; a plugin is a complete toolkit |
---
## Agentic Features
> Runtime capabilities โ how Copilot delegates work, runs in parallel, and operates autonomously.
### Running Parallel Tasks
When your request involves multiple independent jobs, the Copilot agent automatically breaks it into smaller pieces and delegates them to **child agents** (subagents) running in parallel. This works in both **Copilot CLI** and **VS Code**. In the CLI you can also use the **`/fleet`** slash command to explicitly request parallel execution.
> **When you need it:** Your request naturally involves multiple independent jobs โ running tests while linting, scanning different parts of the codebase, or checking several things at once.
#### What you say โ What happens
```
You: "Run the tests, lint the code, and check for security issues in RecipeShare."
```
Behind the scenes the agent spawns three child agents that work **simultaneously**:
```
โโ child 1 โโโโโโโโโโโโโโโโโโ โโ child 2 โโโโโโโโโโโโโโโ โโ child 3 โโโโโโโโโโโโโโโโโโโ
โ npm test โ โ npm run lint โ โ Scan routes for missing โ
โ (runs full test suite) โ โ (checks style issues) โ โ auth middleware โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
You see progress updates as each child finishes, then a consolidated summary โ no extra steps on your part.
#### The `/fleet` slash command (CLI)
Use `/fleet` in the CLI to explicitly tell Copilot to break a task into subtasks and run them in parallel via subagents. The main agent acts as an **orchestrator** โ it analyses the prompt, maps dependencies, and fans out independent work.
```
> /fleet Implement the recipe rating feature: add the database migration,
create the API endpoint, write unit tests, and update the OpenAPI spec.
```
Each subagent gets its **own context window**, so individual subtask context doesn't crowd the main session.
**Model selection per subagent** โ By default subagents use a low-cost model, but you can request specific models inline:
```
> /fleet ... Use GPT-5.3-Codex to create the migration.
Use Claude Opus 4.5 to analyse test coverage gaps.
```
**Custom agent assignment** โ If you have [custom agents](#custom-agents), reference them with `@`:
```
> /fleet ... Use @test-writer to create comprehensive unit tests for the endpoint.
```
Copilot will also auto-select custom agents when it determines they're a good fit.
Typical workflow โ plan โ fleet โ autopilot
1. Press **Shift+Tab** to switch into [plan mode](#autopilot-mode) and create an implementation plan.
2. Review and refine the plan with Copilot.
3. Select **"Accept plan and build on autopilot + /fleet"** when the plan is complete.
4. Copilot divides the plan into parallel subtasks and works through them autonomously.
> โ ๏ธ Each subagent interacts with the LLM independently, so using `/fleet` may consume **more premium requests** than a single-agent session. Use `/model` to check the current model and its multiplier.
#### More examples of prompts that trigger parallel work
| What you ask | What the agent delegates |
|---|---|
| *"Do a security audit of the repo"* | Parallel scans: XSS in frontend, auth in backend, `npm audit` |
| *"Refactor the database layer and make sure nothing breaks"* | One agent refactors, another runs the test suite continuously |
| *"Explain how auth works and also how billing works"* | Two agents read different parts of the codebase at once |
| `/fleet` *"Generate tests for all RecipeShare services"* | Subagent per service, each writing tests independently |
#### Invoke from a prompt file (VS Code)
You can wire parallel delegation into a reusable [prompt file](#prompt-files) by adding `agent` to the `tools` frontmatter. The agent then spawns child agents whenever the prompt instructions suggest isolated or parallel work.
Example โ review-feature.prompt.md
```markdown
---
name: review-feature
tools: ['agent', 'read', 'search']
---
Run a subagent to research the new feature implementation details and return only
information relevant for user documentation. Then summarise the findings.
```
| | |
|---|---|
| **Where** | Copilot CLI (`/fleet`) and VS Code (auto-delegation) |
| **Context** | Each child agent gets its own isolated context window |
| **No file needed** | Runtime capability (but can be triggered from a prompt file in VS Code) |
| **Docs** | [Fleet command](https://docs.github.com/en/copilot/concepts/agents/copilot-cli/fleet) ยท [Subagents (VS Code)](https://code.visualstudio.com/docs/copilot/agents/subagents) ยท [Comparing CLI Features](https://docs.github.com/en/copilot/concepts/agents/copilot-cli/comparing-cli-features) |
---
### Autopilot Mode
The CLI's **autopilot mode** lets Copilot work autonomously through a multi-step task without waiting for your input after each step โ you give the initial instruction and Copilot keeps going until the task is complete.
> **When you need it:** You have a well-defined task (implement a plan, write a test suite, refactor a module) and want Copilot to work to completion without back-and-forth interaction.
#### How to enter autopilot mode
- **During an interactive session** โ press **Shift+Tab** to cycle through modes until you reach autopilot
- **From the command line** โ start with the `--autopilot` flag:
```bash
copilot --autopilot --yolo --max-autopilot-continues 10 -p "Add input validation to all RecipeShare API endpoints"
```
Copilot continues autonomously until one of these happens:
1. The task is complete
2. A blocking problem occurs
3. You press **Ctrl+C**
4. The `--max-autopilot-continues` limit is reached (if set)
#### Permissions
On entering autopilot, the CLI prompts you to choose permissions:
1. **Enable all permissions** (recommended) โ equivalent to `--allow-all` / `--yolo`
2. **Continue with limited permissions** โ auto-denies tool requests that need approval
3. **Cancel**
You can grant full permissions mid-session with the `/allow-all` (or `/yolo`) command.
#### Autopilot + Fleet
Autopilot and `/fleet` are independent features that combine well. A common workflow:
1. Use **plan mode** (Shift+Tab) to create a detailed plan
2. Select **"Accept plan and build on autopilot + /fleet"**
3. Copilot fans out subtasks to parallel subagents *and* continues autonomously
| | |
|---|---|
| **Where** | Copilot CLI only (GA as of v1.0, March 2026) |
| **Toggle** | Shift+Tab during a session, or `--autopilot` flag |
| **Cost** | Each autonomous continuation step uses premium requests |
| **Docs** | [Autopilot mode](https://docs.github.com/en/copilot/concepts/agents/copilot-cli/autopilot) |
---
### Copilot Coding Agent
GitHub's autonomous agent that picks up issues, creates branches, and opens PRs โ **without a chat session**. It runs on GitHub's cloud infrastructure, not your machine.
> **When you need it:** You have issues in your backlog that you want worked on asynchronously. You assign them; the coding agent works while you sleep and delivers a PR for review.
#### How it works
1. **Assign an issue to `@copilot`** โ via label, Mission Control dashboard, or directly in the issue
2. **GitHub's cloud infrastructure** spins up an agent with your repo context
3. **The agent works autonomously** โ reads the issue, creates a `copilot/*` branch, makes changes, opens a draft PR
4. **You review the PR** โ treat it like any team member's work
#### Prerequisites
- **Copilot coding agent** enabled on the repo (Settings โ Copilot โ Coding agent)
- **`copilot-setup-steps.yml`** in `.github/` โ defines the agent's environment
- **GitHub Actions** enabled
Example โ copilot-setup-steps.yml
```yaml
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '22'
- run: npm ci
- run: npm run build
```
> ๐ก The coding agent reads your custom instructions and skills โ so everything you've configured for interactive Copilot also applies to the autonomous agent.
| | |
|---|---|
| **Where** | GitHub cloud infrastructure |
| **Interaction** | Async only โ no chat, results delivered as PRs |
| **Context** | Each agent runs in full isolation โ separate branch, separate PR |
| **Cost** | Copilot premium requests |
---
### Mission Control
[Mission Control](https://github.blog/changelog/2025-10-28-a-mission-control-to-assign-steer-and-track-copilot-coding-agent-tasks/) is a centralized dashboard for managing multiple coding agents at scale.
> **When you need it:** You're running multiple coding agents across repos and want a single view to assign, monitor, and steer them.
- See all active coding agents across repos in one view
- Read real-time session logs and code change rationales
- Steer, pause, or restart agents mid-execution
- Assign new tasks to agents directly
Available on **GitHub.com**, **VS Code Insiders**, and **GitHub Mobile**.
#### Local vs Cloud agents
| | Running Parallel Tasks | Coding Agent + Mission Control |
|---|---|---|
| **Runs on** | Your machine | GitHub cloud infrastructure |
| **Interaction** | Synchronous โ in a chat session | Asynchronous โ works while you sleep |
| **Result** | Agent output in terminal/editor | A pull request |
| **Memory** | Session-only | `copilot-instructions.md` + issue context |
| **Scale** | Limited by your machine | Multiple agents across repos |
---
### Agentic Workflows
Markdown-described automations that run inside **GitHub Actions** โ agents triage issues, update docs, fix CI failures, and generate PRs, all triggered by repo events.
> **When you need it:** You want your repo to run on autopilot โ issues get triaged, docs stay in sync with code, and CI failures get diagnosed automatically.
**How it works:**
1. **Describe the automation** in a markdown workflow file โ what you want done on which trigger
2. **GitHub Actions invokes the coding agent** with your instructions and repo context
3. **The agent executes** โ reading code, making changes, running tests
4. **Results appear as PRs** โ fully reviewable, with diffs, commit history, and CI results
#### Examples of what you can automate
- Auto-triage and label new issues based on content
- Diagnose and suggest fixes for CI/CD failures
- Keep documentation in sync when code changes
- Generate routine dependency update PRs
- Improve test coverage on schedule
#### Key details
| | |
|---|---|
| **Where** | GitHub Actions + Coding Agent |
| **Trigger** | Repo events (push, issue created, schedule, etc.) |
| **Result** | Pull requests โ always human-reviewed before merge |
| **Blog post** | [Automate repository tasks with GitHub Agentic Workflows](https://github.blog/ai-and-ml/automate-repository-tasks-with-github-agentic-workflows/) |
---
### Agents Tab
A repo-level tab on GitHub.com for launching, tracking, and reviewing agent tasks โ the repo-scoped companion to Mission Control.
> **When you need it:** You want to see all agent activity for a specific repo in one place, launch new tasks, and review agent-generated PRs without leaving the repo.
- Launch agent tasks directly from the repo
- Track progress of active agents
- Review agent-generated pull requests
- See history of completed agent work
| | |
|---|---|
| **Where** | GitHub.com โ new tab on each repo |
| **Scope** | Single repo (vs Mission Control which is cross-repo) |
---
## Platform Features
> Built-in intelligence and extensibility that power the entire Copilot ecosystem.
### Agentic Memory
Per-repo persistent memory โ Copilot automatically captures patterns, conventions, and relationships as you work, then validates them against current code before reuse. Memories expire after **28 days** and are shared across all Copilot surfaces.
> **When you need it:** You're tired of re-explaining your architecture, conventions, or recent decisions every new session. You want Copilot to remember what it learned last time.
**How it works:**
- Copilot **automatically captures** small pieces of knowledge ("memories") as you work โ no manual tagging required
- Memories are **per-repository** and shared across Copilot features (chat, completions, agents, code review, CLI)
- Before using a memory, Copilot **validates it against the current code** โ if the source changed, the memory is dropped
- Memories **auto-expire after 28 days** to prevent stale advice
#### Enable it
- **Individual (Pro/Pro+):** GitHub Settings โ Copilot โ enable **Copilot Memory**
- **Org/Enterprise:** Settings โ Copilot โ Policies โ **Copilot Memory** โ enable for members
- If you belong to multiple orgs, the most restrictive policy applies
#### View & manage memories
- **Repo Settings โ Copilot โ Memory** โ review and delete stored memories per repo
- Repo owners can curate memories; automated validation handles the rest
Example: what a memory captures
After a coding agent session where it learns that `src/api/` and `src/types/` must stay in sync:
> *"When modifying API route handlers in `src/api/`, the corresponding TypeScript interfaces in `src/types/` must be updated to match."*
Next session, Copilot automatically applies this knowledge โ no re-prompting needed.
| | |
|---|---|
| **Scope** | Per-repository, persistent across sessions (28-day expiry) |
| **Validation** | Just-in-time โ checked against source code at use time |
| **Difference from instructions** | Instructions are manually authored; memory is auto-learned |
| **Docs** | [Enabling and curating Copilot Memory](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/copilot-memory) |
| **Blog** | [Building an agentic memory system](https://github.blog/ai-and-ml/github-copilot/building-an-agentic-memory-system-for-github-copilot/) |
---
### Copilot Spaces
Project-specific knowledge containers โ persistent, shareable collections of context accessible in Codespaces, dev containers, and across Copilot features.
> **When you need it:** You want to package project knowledge (architecture docs, API specs, onboarding guides) into a container that Copilot always has access to, especially for onboarding new team members.
| | |
|---|---|
| **Scope** | Per-project, accessible across Copilot surfaces |
| **Use for** | Onboarding, architecture context, shared team knowledge |
| **Supports** | Role-based access, public sharing, templates |
---
### Copilot SDK
Programmatic access to Copilot's capabilities in **Node.js**, **Python**, **Go**, and **.NET**. Build your own agents as code โ with execution loops, tool orchestration, multi-model routing, and context management.
> **When you need it:** You want agents as *code* rather than *prompts*. Or you need to integrate Copilot into custom automation, CI/CD pipelines, or your own developer tools.
```bash
# Install (Node.js example)
npm install @github/copilot-sdk
```
| | |
|---|---|
| **Status** | Technical preview |
| **Languages** | Node.js, Python, Go, .NET |
| **Repository** | [github.com/github/copilot-sdk](https://github.com/github/copilot-sdk) |
| **Difference from agents** | Agents are markdown prompts; SDK is programmatic code |
---
## Community Projects
> Open-source projects built on top of Copilot's features.
### Squad
A persistent team of AI agents with identity, memory, and parallel coordination โ now with its own CLI, interactive shell, SDK, and community documentation site.
**Repository:** [github.com/bradygaster/squad](https://github.com/bradygaster/squad) ยท **Docs:** [bradygaster.github.io/squad](https://bradygaster.github.io/squad/)
```bash
npm install --save-dev @bradygaster/squad-cli
npx squad init
```
> **Note:** GitHub-native distribution (`npx github:bradygaster/squad`) has been removed. All distribution is now via npm. See the [Migration Guide](https://github.com/bradygaster/squad/blob/main/docs/get-started/migration.md) if upgrading from an older version.
What gets created
```
.squad/ # Team state (committed to git)
โโโ team.md # Roster โ who's on the team
โโโ decisions.md # Shared brain โ team decisions
โโโ routing.md # Who handles what
โโโ ceremonies.md # Sprint ceremonies config
โโโ casting/
โ โโโ policy.json # Universe theme & agent count
โ โโโ registry.json # Persistent name registry
โ โโโ history.json # Who was cast when
โโโ agents/
โ โโโ Keaton/
โ โ โโโ charter.md # Lead โ identity, expertise
โ โ โโโ history.md # What Keaton knows about YOUR project
โ โโโ McManus/charter.md # Frontend specialist
โ โโโ Verbal/charter.md # Backend specialist
โ โโโ Fenster/charter.md # Tester
โ โโโ Kobayashi/charter.md # Scribe
โโโ skills/ # Learned domain knowledge
โโโ sessions/ # Crash recovery checkpoints
โโโ log/ # Session history
โโโ orchestration-log/ # What was spawned and why
.github/agents/squad.agent.md # The coordinator
```
**How it works:** You say *"Team, build the login page"* โ the coordinator spawns agents in parallel using the `task` tool โ each agent works in its own context โ decisions are merged via a drop-box pattern โ knowledge persists in `history.md` across sessions.
#### Interactive shell & CLI
Run `squad` with no arguments to enter the interactive shell:
```
squad > @Keaton, analyze the architecture of this project
squad > Build the login page
squad > /status
```
Key CLI commands: `squad init`, `squad status`, `squad triage` (auto-triage issues), `squad copilot` (add/remove @copilot), `squad doctor`, `squad nap` (context hygiene), `squad export`/`import`, `squad aspire` (observability dashboard).
#### What's new (v0.8.x)
- **SubSquads** โ break large teams into focused sub-groups (renamed from workstreams)
- **Crash recovery** โ sessions persist to disk; agents resume from checkpoint after failures
- **Plugin marketplace** โ `squad plugin marketplace add|browse|list`
- **Azure DevOps adapter** โ Squad for enterprise via `CommunicationAdapter`
- **Upstream sources** โ `squad upstream add|sync` to pull from shared squad configs
- **Context hygiene** โ `squad nap --deep` to compress and prune accumulated context
- **Ralph** โ event-driven monitoring agent that watches all agent activity
| | Vanilla Custom Agent | Squad |
|---|---|---|
| **Memory** | Fresh every session | `history.md` per agent, `decisions.md` shared |
| **Identity** | Generic | Persistent themed names (MCU, Usual Suspects, etc.) |
| **Coordination** | Manual | Auto-routes based on `routing.md` |
| **Parallelism** | DIY | Built-in fan-out with orchestration logging |
| **Crash recovery** | None | Persistent sessions with checkpoint resumption |
| **Git-native** | Just a markdown file | Full `.squad/` folder โ clone = get the team |
---
### awesome-copilot
A curated collection of Copilot resources, customizations, and advanced patterns โ actively maintained, with community contributions reviewed daily.
**Repository:** [github.com/github/awesome-copilot](https://github.com/github/awesome-copilot)
Includes custom instructions examples, agent patterns, orchestration strategies, MCP configs, community skills, and guides for maximizing agentic workflows. A great starting point for seeing how others use these features in practice.
---
## Best Practices
> Tips for writing effective instructions, prompts, skills, and agents.
### General Principles
- **Be specific, not vague.** "React 19 with Vite and Tailwind CSS" beats "a React app." Name exact frameworks, versions, and tools.
- **Show, don't just tell.** One concrete code example is worth more than a paragraph of description.
- **Set boundaries explicitly.** List files, directories, and configs the AI should *never* touch.
- **Front-load commands.** Put relevant CLI commands near the top โ agents act on these first.
- **Only include what can't be inferred.** Don't duplicate what linters or CI already enforce.
- **Version control everything.** Check all customization files into your repo.
### Writing Instructions
- Keep under ~1,000 lines โ beyond that, context dilution reduces effectiveness
- Use headings and bullet points, not prose
- Make rules actionable: โ
`Never use 'any' type in Typescript ` โ โ `Try to use good types`
- Use `applyTo:` globs to scope. Don't put backend rules in a file that applies to frontend
### Writing Prompts
- One prompt = one task. Don't combine unrelated steps
- Include expected inputs and outputs
- Use numbered steps for multi-step workflows
- Specify output format if it matters
### Writing Skills
- Each skill gets its own folder with a lowercased, hyphenated name
- Include YAML frontmatter with `name` and `description`
- Write step-by-step with gotchas and edge cases
- Bundle related scripts in the same folder
- Clearly specify "When to use" so Copilot loads it at the right time
### Writing Agents
Based on [lessons from 2,500+ repositories](https://github.blog/ai-and-ml/github-copilot/how-to-write-a-great-agents-md-lessons-from-over-2500-repositories/):
- **Define a specialist, not a generalist.** "You are a security reviewer for a Node.js API" โ not "You are a helpful assistant"
- **Cover:** commands/tooling, testing, project structure, code style, git workflow, boundaries
- **Include positive AND negative instructions.** What to do *and* what to never do
- **Show output examples.** Demonstrate what a good response looks like
- **Keep personas focused.** Don't mix frontend and backend concerns โ make separate agents
### Authoring Resources
| Resource | Source |
|---|---|
| [How to write a great agents.md โ Lessons from 2,500+ repos](https://github.blog/ai-and-ml/github-copilot/how-to-write-a-great-agents-md-lessons-from-over-2500-repositories/) | GitHub Blog |
| [Using custom instructions to unlock the power of Copilot](https://docs.github.com/en/copilot/tutorials/use-custom-instructions) | GitHub Docs |
| [Creating agent skills](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/create-skills) | GitHub Docs |
| [Prompt files vs Instructions vs Agents](https://gist.github.com/burkeholland/435ab18c549ddbefde1846165e8b2e08) | Burke Holland |
| [Mastering GitHub Copilot Customisation](https://onlyutkarsh.com/posts/2026/github-copilot-customization/) | Utkarsh Shigihalli |
| [All About Copilot Custom Instructions](https://www.nathannellans.com/post/all-about-github-copilot-custom-instructions) | Nathan Nellans |
---
## Quick Reference
| Feature | What | Location | When to use |
|---------|------|----------|-------------|
| **Instructions** | Always-on project context | `.github/copilot-instructions.md` | When Copilot doesn't know your stack |
| **Path-specific** | Per-folder/file overrides | `.github/instructions/*.instructions.md` | When parts need different rules |
| **Prompts** | Reusable task recipes | `.github/prompts/*.prompt.md` | When you repeat multi-step tasks |
| **Skills** | Packaged domain knowledge | `.github/skills/{name}/SKILL.md` | When procedures are complex |
| **MCP Servers** | External tool connections | `.vscode/mcp.json` | When agents need databases/APIs |
| **Hooks** | Lifecycle automation | `.github/hooks/` or `~/.copilot/hooks/` | When you want auto-formatting/linting/startup prompts |
| **Agents** | Named specialist personas | `.github/agents/{name}.agent.md` | When you need dedicated workflow owners |
| **Plugins** | Bundled agent toolkits | `plugin.json` manifest | When sharing agent setups across repos |
| **Running Parallel Tasks / `/fleet`** | Auto-delegates or explicitly fans out work to subagents | *(runtime capability)* / `/fleet` slash command | When your request has multiple independent jobs |
| **Autopilot Mode** | Hands-off autonomous task completion | Copilot CLI (`--autopilot` / Shift+Tab) | When you want Copilot to work to completion without interaction |
| **Coding Agent** | Autonomous cloud agent | GitHub infrastructure | When you want async issue automation |
| **Agentic Workflows** | AI + GitHub Actions automation | GitHub Actions | When you want automated repo maintenance |
| **Mission Control** | Multi-agent dashboard | GitHub.com / VS Code | When managing agents at scale |
| **Agents Tab** | Repo-level agent UI | GitHub.com | When tracking agent work per repo |
| **Agentic Memory** | Persistent per-repo memory | Built-in | When you want Copilot to remember across sessions |
| **Copilot Spaces** | Project knowledge containers | GitHub.com | When packaging shared context for teams |
| **Copilot SDK** | Programmatic agent building | npm / pip / go | When you need agents as code, not prompts |
### File Structure
```
.github/
โโโ copilot-instructions.md # Global instructions
โโโ copilot-setup-steps.yml # Coding agent environment
โโโ instructions/
โ โโโ frontend.instructions.md # Path-specific
โ โโโ backend.instructions.md
โ โโโ tests.instructions.md
โโโ prompts/
โ โโโ new-endpoint.prompt.md # Reusable recipes
โ โโโ new-component.prompt.md
โโโ skills/
โ โโโ drizzle-migrations/ # Domain knowledge
โ โ โโโ SKILL.md
โ โโโ recipe-image-upload/
โ โโโ SKILL.md
โโโ agents/
โ โโโ security-reviewer.agent.md # Custom agents
โโโ hooks/
โ โโโ hooks.json # Repo-level lifecycle hooks
โโโ workflows/
โโโ ...
.vscode/
โโโ mcp.json # MCP server config
~/.copilot/
โโโ hooks/ # Personal hooks (all repos)
โ โโโ hooks.json
โโโ settings.json # CLI user config (enabledPlugins, etc.)
```
---
## Further Reading
**Official Documentation**
- [Custom Instructions](https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-custom-instructions) ยท [Custom Agents](https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/create-custom-agents-for-cli) ยท [Plugins](https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating) ยท [Comparing CLI Features](https://docs.github.com/en/copilot/concepts/agents/copilot-cli/comparing-cli-features) ยท [MCP Servers](https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp/extend-copilot-chat-with-mcp) ยท [Coding Agent](https://docs.github.com/en/copilot/concepts/agents/coding-agent) ยท [Fleet command](https://docs.github.com/en/copilot/concepts/agents/copilot-cli/fleet) ยท [Autopilot mode](https://docs.github.com/en/copilot/concepts/agents/copilot-cli/autopilot)
**VS Code**
- [MCP Servers](https://github.com/microsoft/vscode-docs/blob/main/docs/copilot/customization/mcp-servers.md) ยท [Subagents](https://code.visualstudio.com/docs/copilot/agents/subagents) ยท [Agent Skills](https://code.visualstudio.com/docs/copilot/customization/agent-skills) ยท [Prompt Files](https://code.visualstudio.com/docs/copilot/customization/prompt-files)
**Blog Posts & Guides**
- [Maximize Agentic Capabilities](https://github.blog/ai-and-ml/github-copilot/how-to-maximize-github-copilots-agentic-capabilities/) ยท [Mission Control](https://github.blog/changelog/2025-10-28-a-mission-control-to-assign-steer-and-track-copilot-coding-agent-tasks/) ยท [Agents vs Skills vs Instructions](https://github.com/orgs/community/discussions/183962) ยท [Agentic Workflows](https://github.blog/ai-and-ml/automate-repository-tasks-with-github-agentic-workflows/)
**CLI Release Notes**
- [GitHub Copilot CLI releases](https://github.com/github/copilot-cli/releases) โ full changelog for every CLI version (v1.0+ is GA)
**Platform**
- [Copilot SDK](https://github.com/github/copilot-sdk) ยท [Copilot Spaces](https://docs.github.com/en/copilot/how-tos/provide-context/use-copilot-spaces)
**Community**
- [awesome-copilot](https://github.com/github/awesome-copilot) ยท [Squad](https://github.com/bradygaster/squad) ยท [Squad Docs](https://bradygaster.github.io/squad/)
---
**Found this useful?** Give it a โญ and share it with your team.
**Something missing?** [Open an issue](https://github.com/nishanil/copilot-guide/issues) or submit a PR.