Stop Letting Copilot Search The Whole Internet
You type a question into Copilot Chat, and the answer comes back generic — technically correct, practically useless, clearly not written with your actual codebase in mind. The usual culprit isn't the model. It's the question. Without a scope, Copilot has to guess where to look for an answer, and by default that guess is broad: it goes looking across the internet for anything relevant, which means "less accurate because there's too much context" to sift through. Narrowing the search is a matter of one character.
The problem: an unscoped question is a vague answer
Ask Copilot Chat "how do I fix this bug" with no other context, and it has to decide: is this a general programming question? Something about your specific framework? Something about the actual file open in your editor? Left to guess, Copilot defaults to the broadest possible interpretation — searching generally rather than looking at your project's own code. The fix is to tell it explicitly where the answer lives, before you ask the question.
The fix: chat participants
Type @ in the Copilot Chat box and a list of participants pops up — each one a "domain expert" scoped to a specific source of truth. The three most useful for day-to-day scoping:
@workspace— answers from your project's own files. Ask@workspace where is axios used?and Copilot searches your actual codebase, not the web, and points you to the real file and line.@vscode— knows the editor itself: settings, commands, extensions. Good for "how do I turn off word wrap" type questions.@terminal— knows your shell and terminal context, useful for command-line and environment questions.
GitHub also documents @github, which pulls in GitHub-specific capabilities (searching issues, PRs, and other GitHub data) beyond what's in your local workspace. Copilot Chat can sometimes infer which participant you meant from a natural-language question without you typing the @ — but typing it explicitly is the reliable way to guarantee the scope you want, especially for questions that could plausibly go either way.
How to use it
Type @ in the chat input. A list of available participants appears — pick the one that matches what you're actually asking about, then type your question after it:
@workspace where is axios used?
That single prefix is the difference between an internet-wide guess and an answer grounded in the file that's actually open, or the codebase that's actually yours.
Slash commands: scoping for common one-off tasks
Chat participants scope where Copilot looks. Slash commands scope what it does, and they're fastest when you've already selected code. Highlight a block, open inline chat or the chat panel, and type / to see the list. The commands GitHub documents include:
/explain— walks through what the selected code does./fix— proposes a fix for a bug in the selected code./tests— writes test cases for the selected code./doc— generates documentation for the selection.
Typing / in the chat box shows the full list available in your current context — inline chat, the chat panel, and different IDEs can expose slightly different command sets, so it's worth checking what's on offer rather than memorizing a fixed list.
Combining the two
The strongest pattern is participant + selection + slash command: highlight the function you're worried about, then ask /explain or /fix directly on it. You've now scoped the question three ways — to a specific participant if needed, to a specific code selection, and to a specific task — leaving Copilot almost no room to wander into a generic, internet-wide answer.
Pitfalls to avoid
- Don't skip the
@for project-specific questions. "Where is this function called" without@workspacerisks a generic explanation of how function calls work in general, instead of a real answer from your code. - Don't assume every IDE exposes identical participants or commands. What's available depends on your IDE and Copilot's current feature set — type
@or/and read the live list rather than relying on a memorized set from a screenshot or an old article. - Selection still matters. Slash commands like
/fixor/explainwork best (and sometimes only make sense) when you've selected the relevant code first — an unscoped/fixwith nothing highlighted gives Copilot the same guessing problem you were trying to avoid.
Takeaway
A vague Copilot answer is almost always an unscoped question. Type @ and pick a participant — @workspace for your code, @vscode for the editor, @terminal for your shell — then reach for /explain, /fix, or /tests on selected code for common one-off tasks. Specific input, specific output.
Resources
Building an AI feature? Yeda AI designs, audits, and ships production LLM systems.