You open Copilot Chat in VS Code and type a question. It answers. You type another. Eventually you wonder: am I using this right?
Here’s the thing nobody tells you upfront – Copilot Chat has two completely different operating modes, and most developers pick the wrong one half the time. Ask mode is for questions. Agent mode is for delegating multi-step work. Use Ask when you should use Agent, and you’ll spend 20 minutes typing follow-ups that an agent would’ve finished in one go.
Ask vs Agent: The 3-Question Decision Framework
Before you write a single prompt, answer these three:
- Does this touch more than one file? If yes, you probably want Agent mode.
- Will I need to iterate or fix errors? Agents self-correct. Ask mode makes you paste errors back manually.
- Do I just need information? Then Ask mode is perfect. Don’t over-engineer.
According to the GitHub Copilot documentation, Ask mode is designed for code explanations and answers, while Agent mode autonomously breaks tasks into steps, edits files, runs commands, and iterates when things fail. The interface looks identical – but the behavior is night and day.
Opening Chat: Two Entry Points You’ll Actually Use
Chat view (the sidebar): Ctrl+Alt+I on Windows/Linux, ⌃⌘I on Mac. This is where you pick Ask or Agent from the dropdown at the bottom.
Inline chat (in the editor): Ctrl+I (Windows/Linux) or ⌘I (Mac). You stay in the file, Copilot suggests edits right there. Good for quick refactors, terrible for anything that spans files.
The official VS Code docs list both, but here’s what they skip: inline chat always uses Ask-style behavior. You can’t invoke agents inline. If your task needs multi-file coordination, you must use the Chat view.
When Ask Mode Beats Agent Mode
| Use Ask Mode When | Use Agent Mode When |
|---|---|
| Explaining unfamiliar code | Implementing a feature across files |
| Quick syntax questions | Fixing a failing test suite |
| Exploring how a library works | Refactoring a module structure |
| Debugging single-function logic | Setting up config + boilerplate |
Most tutorials tell you agents are “for complex tasks.” That’s vague. Here’s the real heuristic: if you’d normally open 3+ files to do it manually, let an agent handle it. If it’s one edit or one answer, Ask mode is faster and doesn’t burn through your premium request quota as quickly (more on that trap below).
Pro Tip: Agent mode counts as one premium request per prompt you send, but all the agent’s follow-up actions (file edits, terminal commands, fixes) are free. Many developers avoid agents thinking they’ll burn quota – actually, agents are quota-efficient for multi-step work because you send one prompt instead of ten.
Slash Commands: The Ones That Actually Save Time
Type / in the chat box and you’ll see a list. Most are forgettable. These four are daily drivers:
/tests– Generates unit tests for selected code. Faster than writing “create tests for this function.”/fix– Suggests fixes for errors or selected code. Works inline too (right-click → Copilot actions)./explain– Breaks down what code does. Better than asking “what does this do?” because it’s structured./doc– Writes JSDoc, docstrings, README sections. Specify style if you want: “/doc in Google style.”
According to VS Code’s Copilot cheat sheet, slash commands are “shorthand notation for common tasks.” Translation: they inject structured prompts so Copilot knows exactly what you want without you writing paragraphs.
Here’s one nobody mentions: /new scaffolds entire projects. Try @workspace /new express with typescript and watch it generate file structure, package.json, the works. You preview files before creating. If you don’t like it, tweak the prompt – “@workspace use ejs instead of pug” – and regenerate.
Context Mentions: # and @
# attaches files, symbols, or selections. Type # and start typing a filename. Copilot reads that file when answering.
@workspace gives Copilot access to your whole project. Use it for questions like “where is user authentication handled?” or commands like /new.
The distinction matters. Ask “how does login work?” and Copilot guesses. Ask “@workspace how does login work?” and it searches your actual codebase. Accuracy jumps.
The Premium Request Trap (And How Free Tier Actually Works)
Copilot Free gives you 2,000 code completions and 50 premium requests per month. Chat with premium models, agent mode, and code review consume premium requests. Inline completions (the ghost text suggestions) don’t.
Here’s the gotcha: when you hit 50 premium requests, chat stops working but inline completions keep going. The error message says “upgrade or wait” – it doesn’t clarify that half of Copilot still functions. Users assume the whole thing is broken.
Per the official pricing page, Copilot Pro costs $10/month and bumps you to 300 premium requests. If you use Chat daily, the free tier lasts about a week. For casual use – a few questions here and there – 50 actually stretches the whole month.
Agent Mode Walkthrough: When It’s Worth the Complexity
Open Chat view (Ctrl+Alt+I). At the bottom, select Agent from the dropdown. Type a high-level goal: “Add error logging to all API calls in /services.”
The agent:
- Scans
/servicesto find API call sites - Proposes edits across multiple files
- Shows diffs in the editor
- If you accept, applies changes and may run terminal commands (like installing a logging library)
You review each change. Accept, reject, or ask the agent to revise. The agent keeps context – if something breaks, you tell it and it fixes the error without you pasting stack traces.
GitHub’s documentation notes that agents “self-correct when something goes wrong.” In practice this means the agent reruns tests, catches failures, and adjusts code until tests pass – if you let it run terminal commands. You confirm each command via prompt.
When Agents Fail
If your task is vague (“make the app faster”), agents flail. They work best with concrete, scoped goals: “replace all var with const in /utils” or “add TypeScript types to auth.js.” The clearer your instruction, the less you’ll iterate.
Also: agents can’t read your mind about project conventions. That’s where custom instructions come in.
Custom Instructions: The Setup Nobody Does (But Should)
Type /init in chat. Copilot analyzes your codebase and generates a .github/copilot-instructions.md file with your apparent coding standards – naming conventions, preferred frameworks, style rules.
These instructions auto-apply to every chat interaction. The agent (or Ask mode) reads them before responding. Result: you stop getting suggestions in camelCase when your project uses snake_case, or Express examples when you’re using Fastify.
According to the VS Code getting started guide, custom instructions apply automatically to all chat – no need to repeat context. Most developers skip this step, then spend weeks correcting Copilot’s style mismatches.
Three Edge Cases That’ll Burn You
1. Version lock. Copilot Chat only works with the latest VS Code version. The extension updates in lockstep with VS Code because of “deep UI integration.” If VS Code is a version behind, Chat shows “took too long to get ready” even if your subscription is active. Update VS Code first. Always.
2. VPN interference. Corporate VPNs or proxies block GitHub’s Copilot servers. Symptoms: Chat hangs, shows auth errors, or times out. Community workaround that actually works: switch VPN endpoints or add *.github.com and api.githubcopilot.com to your network allowlist. Official docs mention firewalls but not the VPN-switching fix.
3. Disappearing responses. On the free tier trial, Chat responses can vanish mid-stream due to session glitches. Re-authenticating rarely helps. The fix buried in community threads: clear Copilot Chat cache (not in official troubleshooting). How? Disable the Copilot Chat extension, reload VS Code window (Ctrl+Shift+P → Developer: Reload Window), re-enable extension. Works more reliably than signing out and back in.
What Changed in 2026 (And Why It Matters)
March 2026 brought Autopilot (fully autonomous agent sessions in public preview), image and video support in chat, and a unified Chat Customizations editor. Per the GitHub Changelog, you can now attach screenshots to chat prompts – useful for “make this UI match this design” tasks.
January 2026 added Claude agent support (public preview) and improved streaming speed. Translation: responses feel snappier, and you can delegate tasks to Anthropic’s Claude SDK if you prefer it over the default model.
These aren’t just feature-list updates. The Customizations editor (gear icon in Chat view) consolidates instructions, agents, and MCP servers into one interface instead of scattering them across settings files. If you set up custom instructions before, you’ll want to migrate them there.
Stop Here and Test One Thing
Don’t try to master all of Copilot Chat in one sitting. Pick one workflow that’s annoying you right now – writing tests, explaining legacy code, scaffolding boilerplate – and use the relevant mode or slash command once. See if it actually saves time. If it does, add it to your habit loop. If it doesn’t, you’ve lost two minutes instead of two hours configuring something you won’t use.
The goal isn’t to use every feature. It’s to find the two or three that remove friction from your actual work.
Frequently Asked Questions
What’s the difference between Copilot Chat and inline suggestions?
Inline suggestions (the ghost text that appears as you type) are automatic completions. Chat is conversational – you ask questions or give tasks. They use separate quota pools on the free tier: 2,000 completions, 50 premium chat requests. Hitting the chat limit doesn’t stop inline suggestions.
Why does Agent mode sometimes ignore my instructions?
Agents work best with concrete, scoped tasks. “Refactor this file” is vague. “Replace all var declarations with const in this file” is specific. Also check if you have custom instructions set up (/init) – without them, the agent guesses your preferences. If your org disabled agents (check chat.agent.enabled in settings), you won’t have access even with a valid subscription.
I’m signed in but Chat says I’ve exceeded limits – I barely used it. What’s happening?
Two likely causes. First: if you’re on Copilot Free, the 50 premium requests reset monthly and can vanish fast if you’re using agent mode or premium models. Each agent prompt counts as one request (with model multipliers), but all the agent’s follow-up actions are free. Second: there’s a rare bug where if VS Code is open during the monthly reset, it reads stale quota data and thinks you’ve already used your new allotment. Restart VS Code to refresh the count. If neither fixes it, check your subscription status on GitHub – sometimes payment issues aren’t reflected in the VS Code UI immediately.