my-plugin/ layout has its own 🔌 Plugin tab. Click any row for details.
AGENTS.md files anywhere in the repo, with the nearest file taking precedence for agent work. Root CLAUDE.md and GEMINI.md are documented alternatives for supported cloud-agent surfaces; VS Code additionally documents Claude-compatible locations.
Select a file or folder
Click any item in the tree to see its description, usage examples, and source documentation.
Navigate with Tab and Enter, or close with Esc.
chat.plugins.enabled). GitHub also documents Copilot CLI plugin commands and references, but absence of a preview label is not treated here as a release-status guarantee. Expect details to shift between releases.
A plugin is a folder bundling skills, custom agents, slash commands, hooks, and MCP servers into one installable unit. The Copilot CLI structure is documented in GitHub Docs; VS Code documents the same plugin surface as preview. Installed plugins appear alongside your locally defined customizations.
plugin.json required? Yes — Copilot-format plugins require a root plugin.json manifest, and name is the required field. Keep names valid and boring; invalid manifests may prevent discovery depending on the host.
Select a plugin file
Click any item in the plugin tree to see what it does, example content, and a link to the official source.
Navigate with Tab and Enter, or close with Esc.
Copilot customization file types, grouped by format and surface. Naming does much of the routing: *.instructions.md is automatic context when applicable, *.prompt.md is on-demand, *.agent.md is a persona, and SKILL.md is a capability. GitHub Models *.prompt.yml files are included separately because they are prompt/evaluation assets, not Copilot slash commands.
📋 copilot-instructions.md MD
Repo-wide instructions in .github/. Loaded on every chat request in the repo, across IDEs, the cloud agent, and code review. Generate one with /init in VS Code.
📝 *.instructions.md MD
Path-scoped instructions with an applyTo glob in the frontmatter. GitHub and VS Code both merge applicable instruction files; VS Code does not guarantee an ordering among multiple project instruction files, so avoid contradictions.
📋 AGENTS.md MD
A cross-tool-compatible agent instruction file. GitHub documents one or more AGENTS.md files anywhere in a repo, with the nearest file winning for cloud-agent work; VS Code supports root AGENTS.md and treats nested files as experimental. GitHub Docs also recognize root CLAUDE.md and GEMINI.md as cloud-agent compatibility inputs.
📋 ~/.copilot/copilot-instructions.md MD
Personal global instructions for the Copilot CLI — same format as the repo file, applied to every session regardless of project. Extra topic files go in ~/.copilot/instructions/.
📝 *.prompt.md MD
A reusable task you invoke explicitly with /name in supported IDE chats. Frontmatter can pin a description, model, tools, and agent. VS Code documents prompt files as workspace/user customizations; verify other IDE support before publishing a surface claim.
🧪 *.prompt.yml / *.prompt.yaml YML
GitHub Models prompt and evaluation files, not Copilot slash-command prompt files. They can live anywhere in the repository and carry messages, testData, and evaluators for repeatable prompt tests.
🤖 *.agent.md MD
A custom agent profile. GitHub's cloud-agent reference requires description and documents a 30,000-character prompt limit; VS Code accepts a broader optional frontmatter set. Prefer .agent.md; GitHub also accepts plain .md in .github/agents/.
📝 *.chatmode.md MD
Legacy. "Custom chat modes" were renamed to custom agents. Rename files to .agent.md and move them to the agents location to continue using them.
📝 SKILL.md MD
The core file of an agent skill. The name and description frontmatter identify the skill and help Copilot decide when to load it; bundled scripts and references load progressively. Keep the folder and name aligned because hosts use both for discovery.
🔌 .vscode/mcp.json JSON
Workspace MCP servers for VS Code. Commit it to share tools with the team; use inputs for secrets instead of hard-coding them.
🔌 MCP placement map JSON
Do not publish .mcp.json as a general Copilot repository MCP file. Current docs split MCP by surface: VS Code uses .vscode/mcp.json, Copilot CLI uses ~/.copilot/mcp-config.json, GitHub cloud agent/code review use repository settings, and plugins may contain .mcp.json or .github/mcp.json.
🔌 ~/.copilot/mcp-config.json JSON
User-level MCP servers for the CLI, available in every session. Managed via /mcp slash commands or edited directly.
🪝 hooks/*.json / hooks.json JSON
Maps agent lifecycle events to shell commands. Repo/user hooks are JSON files such as .github/hooks/quality-gates.json or ~/.copilot/hooks/audit.json; Copilot-format plugins can use root hooks.json. Requires top-level "version": 1.
📋 plugin.json JSON
Required plugin manifest. Only name is mandatory (kebab-case, max 64 chars). Component paths default to skills/, agents/, etc.
⚙️ .vscode/settings.json JSON
Workspace settings that steer discovery and feature toggles: chat.instructionsFilesLocations, chat.promptFilesLocations, chat.agentFilesLocations, chat.agentSkillsLocations, chat.useAgentsMdFile, chat.useNestedAgentsMdFiles, chat.useClaudeMdFile, chat.useCustomizationsInParentRepositories, plus MCP/plugin toggles.
⚙️ ~/.copilot/settings.json JSON
Copilot CLI settings. Anything still in the older config.json is migrated here automatically on startup.
🤖 .github/workflows/*.md MD
GitHub Agentic Workflow source files. They combine YAML frontmatter with natural-language instructions, run AI agents in GitHub Actions, and are compiled with gh aw compile into matching *.lock.yml workflows.
🔒 .github/workflows/*.lock.yml YML
Generated GitHub Actions workflow produced from an Agentic Workflow Markdown file. GitHub's gh-aw reference says to commit lockfiles for transparency and not edit them directly; frontmatter changes require recompilation.
⚙️ copilot-setup-steps.yml YML
A GitHub Actions workflow in .github/workflows/ that pre-installs your toolchain before the cloud agent starts. The job must be named copilot-setup-steps. The single highest-leverage file for agent reliability: if the agent can build and test, it can verify its own work.
🌐 Personal instructions WEB
Set in your GitHub.com Copilot settings. Apply only to Copilot Chat on GitHub.com (not IDEs), and where they apply take the highest priority of all instruction layers.
🌐 Organization instructions WEB
Set by org owners (Copilot Business/Enterprise). Applied across the org's repos, but at the lowest priority — guidance, not enforcement.
🌐 Cloud agent MCP config WEB
JSON pasted into Repo → Settings → Copilot. MCP tools configured here run autonomously, without approval prompts. Secrets come from Agents secrets named COPILOT_MCP_*.
🌐 Content exclusion WEB
Repo/org/enterprise path rules (Copilot Business/Enterprise) that hide files from documented completion, chat, and code-review context. GitHub documents that IDE Edit/Agent modes do not support content exclusion. Configured in settings, not in a dotfile — there is no .copilotignore.
🪝 scripts/*.sh SCRIPT
Shell scripts referenced by hook JSON files. Hooks receive event JSON on stdin; preToolUse (and the CLI-only permissionRequest) can deny a tool call, and stop hooks can block completion.
🪝 Skill scripts SCRIPT
Executables bundled inside a skill folder. Loaded only when the skill activates — the "resources" stage of progressive disclosure.
🔑 .env LOCAL
Secrets and environment values. Gitignore it. Content exclusion is not a secret-management control for autonomous agents; keep real credentials out of the working tree and provide them through documented secret/variable mechanisms.
Five layers, from organization-wide to plugin-installed. Click any file path to see its full description. Note the inversion: in Copilot, personal instructions outrank organization instructions.
🏢 1. Organization / Enterprise
- Org custom instructions (Copilot Business/Enterprise)
- Org-level custom agents (managed by GitHub/org policy; VS Code discovery can be enabled)
- MCP allow policies & Agents secrets/variables
- Content exclusion rules
Managed by org owners. Org instructions are merged in at the lowest priority — they guide, they don't override. Hard enforcement comes from policies, content exclusion, and hooks instead.
👤 2. Personal / User
- GitHub.com personal instructions (highest priority)
~/.copilot/copilot-instructions.md~/.copilot/instructions/*.instructions.md~/.copilot/agents/*.agent.md~/.copilot/skills/or~/.agents/skills/~/.copilot/mcp-config.json~/.copilot/settings.json
Your preferences across all projects — web settings for chat everywhere, ~/.copilot/ for the CLI, the VS Code user profile for editor-level instructions/prompts/agents.
📁 3. Repository (Shared)
.github/copilot-instructions.md.github/instructions/*.instructions.mdAGENTS.mdanywhere in the repo (nearest wins for GitHub cloud agent; nested is VS Code experimental)CLAUDE.md/GEMINI.mdat repo root (cloud-agent compatibility inputs).github/prompts/*.prompt.md*.prompt.yml/*.prompt.yaml(GitHub Models; anywhere in repo).github/agents/*.agent.md.github/skills/(also.claude/skills/,.agents/skills/).github/hooks/*.json.github/workflows/*.md(GitHub Agentic Workflows).github/workflows/*.lock.yml(compiled bygh aw).github/workflows/copilot-setup-steps.yml.vscode/mcp.json.github/copilot/settings.json(CLI)
Committed to git. Shared by the team, but surface support varies across GitHub.com, cloud agent, code review, CLI, and VS Code.
🔒 4. Local (Personal, not committed)
.envand other gitignored secrets.github/copilot/settings.local.json(gitignored CLI config overrides)~/.copilot/session-state/,logs/(auto-managed)- Relocate
~/.copilot/viaCOPILOT_HOME(documented; XDG_CONFIG_HOME is a community workaround)
Copilot has no documented equivalent of CLAUDE.local.md for instructions. The closest thing is the CLI's gitignored per-repo config file .github/copilot/settings.local.json (personal overrides of the committed .github/copilot/settings.json). Personal instruction layering happens at the user level (web settings, ~/.copilot/, VS Code profile) instead.
🔌 5. Plugin Layer
plugin/plugin.json(required)plugin/skills/plugin/agents/plugin/commands/plugin/hooks.jsonorplugin/hooks/hooks.jsonplugin/.mcp.jsonplugin/lsp.jsonorplugin/.github/lsp.jsonmarketplace.json(marketplace repos)
Installed plugins surface their skills, agents, commands, hooks, and MCP servers alongside your local ones. Documented for the Copilot CLI and marked preview in VS Code (chat.plugins.enabled).
Personal instructions on GitHub.com outrank repository instructions, which outrank organization instructions where those web layers apply.
VS Code documents personal → repository → organization, but also says no specific order is guaranteed among multiple project instruction files.
GitHub cloud agent uses the nearest
AGENTS.md in the directory tree; root CLAUDE.md/GEMINI.md are alternatives for supported cloud-agent surfaces.The Copilot CLI support matrix lists
AGENTS.md for agent instructions, so avoid claiming CLAUDE.md/GEMINI.md work everywhere.# Code review reads instructions from the BASE branch, not the PR branch.
Select a file path
Click any file in the scope cards to see what it does, with examples and source links.
Navigate with Tab and Enter, or close with Esc.
Everything here is traceable to GitHub's or VS Code's official documentation, changelogs, or public repositories. Each detail card links its own source; the full set is below.
How to read the badges
📘 Normative GitHub Docs
- Customization cheat sheet — file types, invocation modes, and surface support matrix
- Custom instructions support — support by GitHub.com, cloud agent, code review, CLI, and IDEs
- About customizing Copilot responses — instruction types & precedence
- Configure custom instructions — repository, personal, organization
- Custom agents configuration reference & About custom agents — frontmatter, 30k limit, MCP
- About hooks, Hooks reference & Use hooks — version:1, events, schema
- About agent skills & adding skills — SKILL.md, gh skill
- MCP and the cloud agent & Configure MCP servers — repo settings, defaults, tools-only limitation
- Copilot CLI — instructions, MCP, config directory, plugin reference —
~/.copilot/layout, user MCP config, plugin manifests - Create a CLI plugin & create a marketplace — Copilot plugin and marketplace shape
- Customize the agent environment — copilot-setup-steps.yml
- GitHub Agentic Workflows quickstart & workflow structure reference —
.github/workflows/*.mdsource and compiled*.lock.yml - GitHub Models prompt storage & model evaluations —
*.prompt.yml/*.prompt.yaml, test data, evaluators - Use code review & code review concepts — base-branch instructions, 4,000-char limit, excluded file types
- Content exclusion — repo/org path rules (no .copilotignore)
📘 Normative VS Code Docs
- Customize AI overview — VS Code customization surfaces and parent-repo discovery
- Custom instructions —
.github/instructions,AGENTS.md,CLAUDE.md, settings, no guaranteed project-file order - Prompt files —
.github/prompts/*.prompt.md, slash commands, tools/model/agent frontmatter - Custom agents —
.github/agents,.agent.md, accepted.md, legacy chat-mode rename - Agent skills — skill locations and progressive disclosure
- MCP servers & MCP config reference —
.vscode/mcp.json,servers,inputs, trust - Agent plugins — VS Code preview plugin support, manifest formats, plugin MCP and hooks
📦 Source Repositories & Examples
- github/docs — official source for GitHub Docs Copilot pages; normative when it matches published docs
- microsoft/vscode — Microsoft product repo using
.github/copilot-instructions.md,.github/instructions/,.github/prompts/,.github/agents/,.github/skills/, and.vscode/mcp.json - microsoft/vscode-docs — official source for VS Code docs; normative for VS Code behavior
- github/copilot-plugins — GitHub official plugin collection and marketplace examples; examples, not the full spec
- github/awesome-copilot — GitHub-owned community collection; examples/community content, not normative
- github/gh-aw and githubnext/agentics — official GitHub Agentic Workflows CLI and sample workflow pack
- github/github-mcp-server — official GitHub MCP server examples; useful for MCP config examples, not a folder-structure spec
- microsoft/playwright-mcp — Microsoft MCP server implementation example with server/package layout; not a Copilot customization-tree spec
- microsoft/skills-for-fabric and microsoft/skills-for-copilot-studio — Microsoft example skill/plugin collections referenced from official/example marketplaces
⚠ Known Caveats
- Naming churn: "chat modes" → "custom agents"; "coding agent" → "cloud agent". Older docs and blog posts use older names.
- Instruction precedence is only documented at broad layer level. Avoid contradictory repo-wide, path-specific, and agent-instruction files instead of depending on undocumented ordering.
- Copilot code review reads instructions from the base branch and only the first 4,000 characters of any custom-instruction file.
- Code review ignores some file categories separately from content exclusion, including dependency-management files, logs, and SVGs.
.github/chatmodes/*.chatmode.mdis legacy VS Code terminology. Current docs use custom agents in.github/agents/.- GitHub Models
*.prompt.yml/*.prompt.yamlfiles are adjacent prompt/evaluation assets, not Copilot.prompt.mdslash commands. - Cloud-agent/code-review MCP supports MCP tools, not MCP resources or prompts; default GitHub and Playwright MCP servers are documented.
- MCP tools configured for the cloud agent run autonomously, without approval prompts.
- GitHub Agentic Workflows are in public preview; commit both the Markdown source and generated lockfile, and recompile after frontmatter changes.
- CLI custom-agent precedence is inconsistent across current official pages; this reference calls that out instead of claiming a stable rule.
- Surface support varies per feature and changes often; every detail card links its evidence source.
🔍 What's Intentionally Not Shown
- CLI LSP server config and internal state internals such as command-history and plugin metadata caches.
- Copilot Extensions, Copilot Spaces, and memory settings — important, but not hand-authored file structures.
- Full content-exclusion syntax — it lives in web settings; this page maps existence and agentic caveats.
- Exact VS Code user-profile storage paths for personal instructions/prompts/agents — managed through the UI/profile system.
- This is a map of what each file does, not a byte-level schema spec.