Copilot is no longer one thing: completions, agent mode in Visual Studio and VS Code, a CLI under PowerShell, a cloud coding agent and a desktop app — all reading the same configuration layer. Guide cards explain how the surfaces differ, what each configuration file does, and how to give an agent something worth reading. The index below is a searchable dictionary of every command, flag, file, frontmatter field and setting.
Copilot is not one product. Each surface has a different latency, a different amount of autonomy, and a different correct use. Reaching for the wrong one is the most common way to have a bad time.
| Surface | You are | Use for |
|---|---|---|
| Completions | Typing | Finishing the line; refactor ripple |
| IDE agent mode | Watching | Visual Studio or VS Code — not at parity |
| CLI | Watching or scripting | PowerShell 6+, Windows Terminal |
| Cloud agent | Away | Specified tasks ending in a PR |
| Copilot app | Supervising several | Many streams at once |
All five read the same configuration files. That is the leverage: one AGENTS.md teaches the editor, the terminal, the cloud and the reviewer at once.
Predicts where your next change goes after the one you just made — a rename that ripples, a signature change needing its call sites updated. Accepting these in sequence beats describing the refactor to a chat window. Keep irrelevant tabs closed: completion context comes largely from open files, and a stale tab actively misleads.
Copilot CLI requires PowerShell 6+, and Windows 11 ships 5.1. Installing pwsh puts it alongside the built-in powershell, so nothing depending on 5.1 breaks. Run Copilot from pwsh in Windows Terminal.
Needs Node 22+. If .npmrc has ignore-scripts=true you get a silently broken binary — override for that command:
| Path | What |
|---|---|
%USERPROFILE%\.copilot | CLI config, agents, mcp-config.json |
%USERPROFILE%\.github\agents | Visual Studio personal agents — a different folder |
.github\agents\ | Repository agents; read by both. Prefer this |
COPILOT_HOME | Relocates the CLI config directory |
WSL has its own filesystem and home — config set up in Windows is invisible inside it, and vice versa. Pick one side deliberately.
An agent is only as useful as the context it can reach. Two things supply it, and neither is Copilot configuration.
Plain markdown in git. The test for what belongs: would a competent new colleague have to ask someone?
Hosts and how you reach them · decisions and why · runbooks for anything done less than monthly · where tickets, dashboards and secrets live · who owns what · traps and the incident that proves them.
Never credentials — record where a secret lives, never its value. A wiki is a file an agent will read and quote back. And keep it out of OneDrive: a folder that syncs mid-write produces conflict copies of the file you are editing.
Wire it in: a line in AGENTS.md naming the path · --add-dir for a CLI session · a Space for questions the team keeps asking.
An agent with a shell can query anything with a command line. Pasting is the worst option available — stale, truncated, unrepeatable. A command is live and can be re-run with different arguments.
PowerShell's edge over bash: cmdlets emit objects, so | ConvertTo-Json gives a model something it parses exactly instead of scraped text.
Teach it an unknown CLI: “use ourtool --help to learn the tool, then…”. No CLI? Look for an MCP server. Neither? That system is invisible to your agents. Use read-only credentials wherever the work is read-only.
Version gaps are wide. Agent mode needs VS 2022 17.14+. Custom agents need VS 2026 18.4+ — they do not exist in 2022. VS 2022 has only @profiler of the built-in agents.
| Agent | What it does |
|---|---|
@debugger | Drives the real debugger: reproduces, instruments with tracepoints, validates against live runtime data |
@git | Reviews uncommitted local changes inline |
@profiler | Real bottlenecks from the profiler, not guesses |
@test | Tests matching your framework and conventions |
@modernize | .NET and C++ upgrades: assess → plan → execute |
| Plan agent | Read-only exploration → plan in .copilot/plans/ → Implement plan |
find_symbol — language-aware navigation (C++, C#, Razor, TypeScript). With the Desktop development with C++ workload: get_symbol_call_hierarchy, get_symbol_class_hierarchy.
| Thing | Path |
|---|---|
| Agent mode | Copilot Chat mode dropdown: Ask → Agent |
| Planning | Tools → Options → GitHub → Copilot → Copilot Chat |
| Reset approvals | Tools → Options → GitHub → Copilot → Tools |
| Cancel a build | Ctrl+Break |
Safety note. Agent mode edits only files in the open solution directory — but terminal commands run with Visual Studio's own permissions and are not confined there. Read commands before approving.
.NET: CSharpExpert.agent.md and WinFormsExpert.agent.md from awesome-copilot. The WinForms one prevents .Designer.cs corruption — a real way for an agent to break your designer.
The highest-leverage configuration in the product, and it is a text file. It must be committed — a file that exists only on your machine helps exactly one person.
| File | Applies |
|---|---|
AGENTS.md | Every agent, every surface. The cross-tool standard |
.github/copilot-instructions.md | Every Copilot request in the repo |
.github/instructions/*.instructions.md | Only when applyTo glob matches |
| Organisation instructions | All repos in the org |
| Personal instructions | You, everywhere |
Precedence: personal → repository → organisation. Copilot also reads CLAUDE.md and GEMINI.md — which is why AGENTS.md is worth adopting: one file, every vendor's agent.
Costs nothing until a matching file is in context. Broad rules in AGENTS.md, conditional rules in applyTo files. One enormous always-on file gets diluted and ignored.
Give the reason for a rule and show a preferred and an avoided example. A rule with a reason survives a situation you did not anticipate.
A different tool from the old gh copilot suggest/explain extension — that was a phrasebook, this is an agent.
Explore fast survey · Task run tests and builds · General purpose multi-step · Code review · Research deep investigation · Rubber duck argues back. Switch with /agent.
Config lives in ~/.copilot — agents in ~/.copilot/agents, servers in mcp-config.json. Relocate with COPILOT_HOME. Automatic compaction kicks in near 95% of the token limit.
The agent loop inside the editor: reads, edits, runs commands, reads output, iterates.
| Feature | What it gives you |
|---|---|
| Queue & steer | Send a follow-up mid-run; it folds the correction in |
/autoApprove · /yolo | Approvals off for the session. Pair with sandboxing |
| Hooks | Your code at lifecycle events; can block a command |
| Fork from checkpoint | Try another approach, keep the original intact |
| Explore subagent | Research on a cheap parallel model, off your context |
| Plan persistence | Plans survive turns and compaction |
/compact <guidance> | Steer what is kept, not a blind summary |
| Large output to disk | Tool output stops eating the window |
/create-* | Generate agents, skills, prompts, hooks from a description |
Auto-approve without a sandbox is just removing your brakes. Enable terminal sandboxing first, then stop approving.
Works in an ephemeral GitHub Actions environment and opens a pull request. Assign from an issue, the agents panel, VS Code, a @copilot PR comment, an automation, or a security campaign.
| Limit | So write the task… |
|---|---|
| 59 minutes, hard | Scoped to something finishable |
| One branch, one PR | As one coherent change |
| Single repository | Split by repo; it cannot cross |
| Ephemeral env | With setup scripted, or it cannot test |
| Branch protections | Add Copilot as a bypass actor first |
A cloud-agent task is not a chat message — it is closer to a well-written issue: what done looks like, files in scope, what must not change, and how to verify. Nobody is watching.
If the suite needs a database, fixture or env var and that setup is not in the repo, the agent physically cannot run it — so it writes plausible code and stops. Scripted setup is what turns the cloud agent from a guesser into a checker.
Desktop client for macOS, Windows and Linux. GitHub's stated problem: “the agentic shift has made development faster, [but] it's also led to disjointed workflows, more context switching, and too much time spent reviewing agent-generated code.”
| Feature | What it does |
|---|---|
| Parallel worktrees | Each agent gets its own branch and working copy, made and cleaned up for you |
| Canvases | Shared surfaces: a plan, PR, browser, terminal, dashboard |
| My Work | Every session, issue, PR and automation in one view |
| Agent merge | Watches CI, fixes checks, merges under your rules |
| Sandboxes | Local and cloud; plus BYOM and MCP |
GitHub on the split: “Chat is where you instruct, discuss, and reason through ambiguity. Canvases are where that intent becomes visible work you can inspect, steer, and verify.”
Rule of thumb: more than two agents in flight → the app, or the worktree discipline it automates. One agent you are watching → the IDE is fine.
| Rung | Applies | For |
|---|---|---|
| Instructions | Automatically | Conventions, always or by path |
.prompt.md | You type /name | A repeatable task with arguments |
SKILL.md | Judged relevant | A procedure with bundled files |
.agent.md | Selected or delegated to | A persona: own tools and model |
| Plugins | Installed as a unit | Distributing all of the above |
name lowercase-hyphenated, matching the directory. description is the matcher — it must say what it does and when to use it, or the skill never fires. Keep SKILL.md under 500 lines; detail goes in references/.
The 500-line rule is progressive disclosure. The short file is loaded to judge relevance; references are read only if the skill runs. A skill that inlines everything defeats its own mechanism.
Least privilege: a reviewer with only search and fetch cannot edit code — stronger than asking it not to. Handoffs turn agents into a workflow. agents: allows delegation to subagents; user-invocable: false hides one from the picker.
An open standard maintained by AWS, Anysphere, Microsoft, OpenAI, Vercel and Google. Bundles skills + MCP servers into one unit that works in VS Code, the CLI, the app and the SDK.
Portable parts on top, vendor-specific quarantined below — that separation is the point of the standard.
| Effort | Cost | Use for |
|---|---|---|
| Lite (default) | ~$0.05–$1 credits | Routine changes |
| Balanced | ~$0.25–$5 credits | Security-sensitive, cross-service |
Runs on PRs, in the IDE and on github.com. Reads the same instruction files, so review quality is downstream of your AGENTS.md. Can review automatically on open, on new commits, or while in draft.
GitHub's own wording: “Copilot is not guaranteed to spot all problems or issues in a pull request.” Treat it as a first pass that clears the boring findings so human review can spend itself on design.
You cannot pick the model — it uses a tuned mix deliberately, for consistency. Dependency files, logs and SVGs are excluded from review.
Copilot is a model marketplace. Mid-2026 the picker spans OpenAI's GPT-5.5 generation and GPT-5.3-Codex, Anthropic's Claude Sonnet 5 and Opus 4.8, and Google's Gemini 3.1 Pro and Gemini 3 Flash, with cheaper tiers alongside.
They are not priced alike. Premium requests are consumed by a multiplier: a small model may cost none, a frontier model up to 10× per request against a monthly quota.
/usage in the CLIPin the model in agent frontmatter rather than deciding at the moment of use — a reviewer on a strong model, a scaffold on a cheap one. Decided once, correctly, then never again.
Shared across the cloud agent, the CLI and code review — knowledge accumulates instead of being re-supplied. Also a place where a wrong fact becomes durable, so correct mistakes deliberately rather than working around them.
Curated context containers on github.com: repos, files, issues, PRs, free text, images. Best for the recurring question — onboarding, a subsystem people keep asking about, a migration everyone needs the same background on. Permissions are respected: viewers only see sources they already had. Reachable from the IDE via the GitHub MCP server.
The GitHub server is preconfigured in the CLI. The high-value additions are systems holding answers your repo cannot give: the issue tracker, the observability stack, the design system.
Run the cloud agent on a schedule or on GitHub events — dependency bumps, issue triage, recurring reports — with permission gates before write actions. The CLI's lightweight equivalent is /every and /after.
Instruction files are the only thing that makes Copilot get better over time. A good prompt helps once; a line in AGENTS.md helps every agent on every surface forever. Re-explaining a convention weekly is a bug in your repository, not in the model.
AGENTS.md alone. It is the only artifact that pays off immediately on every surface, and the rest are far easier to write once you have felt the difference the first one makes.
A large share of the public — in most 2025–26 polling, a plurality to a majority — says it is more worried than excited about AI. You use Microsoft and GitHub's tools all day; it is worth being able to state the other side's case accurately, and then say why you are on this side of it anyway.
Copilot specifically. It was the first product sued over training on public code (Doe v. GitHub, 2022 — mostly dismissed by 2024, the licence-attribution claims narrowed rather than vindicated). Maintainers complain about AI-generated pull requests and issues that cost more to triage than they save — several large projects now have explicit policies. And because Microsoft ships it inside Windows, Office and GitHub at once, a user who never chose it still meets it, which is where most of the "forced on us" resentment comes from.
The short version for the dinner table: the concerns are mostly legitimate and mostly about who pays; the benefits are larger, broader and already measurable; and the one thing in your control is to be a user whose output earns the tool its trust.