š¦ I debated even writing this post today. I procrastinated until the last possible minute, worked far longer than planned, and then Copilot decided to thoroughly test my patience. Maybe GitHub flipped another switch, maybe itās just meābut Copilot and I are currently on non-speaking terms. š
The upside? It hasnāt reported me to HR yet, so thatās a win. Itās also started throwing shade, which is new, and honestly kind of impressive. I didnāt think it was allowed to do that! š¤š
Quick recap: last week I broke down how I think through creating a custom Copilot chat mode. Somehow that post landed in the Top 7āno idea how exactly, but Iām grateful for it! Huge thanks to everyone who read, shared, or dropped a comment. š
And, as promised: now that youāve built a custom chat mode for yourself, letās talk about how to use, test, and share it.
Set Up VS Code š§
Remember when I warned you to install VS Code Insiders ahead of time? That wasnāt just for show. Chat modes will work in VS Code and Visual Studio (and a few sneak into Coding Agentācheck out my custom instructions post for those steps).
š Visual Studioās catching up with chat modes, but VS Code still runs point on everything Copilot does.
Install Insiders with auto-updates turned on (trustāwithout those updates, Copilot will break without warning). Keep regular VS Code around if you like safety netsābut mineās a functional dust collector. Updates land overnight if youāre in the US, and any bugs that might have popped up are usually gone by morning. Even on the days I'm still coding when updates drop, it's rarely an issue.
If VS Code is the Copilot frontier, Insiders is the scout sprinting ahead to check for traps. Other IDEs follow eventually, but by the time they arrive, youāll already be home from the exploration with an award and snacks.
š« For the Java devs: if youāre thinking about switching from JetBrainsānothing beats IntelliJās built-in Java environments. Managing your own setup in VS Code can be a pain (start with sdkman). Still, itās absolutely worth it if Copilotās even a semi-regular part of your workflow.
Create New Chat Modes āļø
VS Code currently includes an experimental setting called chat.modeFilesLocations
. Experimental means it can (and probably will) change at any time without notice. For now, you can use this to specify directories where VS Code should look for custom chat mode files. Any chat modes existing inside a directory listed here will automatically show up as an option in the chat mode dropdown.
š” ProTip: I always include the local
.github/chatmodes
folder so everything repo-specific stays within easy reach.
In VS Code, you can create a chat mode either for a specific repo or globally for your user. Click the mode dropdown in the chat window and choose Configure Modes...
, or open the Command Palette and run Chat: Configure Chat Modes...
. Youāll also find it under Modes
in the chat configuration panel.
From there, you can edit an existing mode or create a new one. If youāre adding something brand new, type a filename without an extension and itāll generate a āstarter fileā for you (though calling it that is generous at best!)
š¦ Iām still not convinced
.github/chatmodes
really matters anymore. Thatās just where chat modes lived originally, and old habits are stubborn. If I don't store them in a global location, then mine stay there because, honestly, it feels wrong to put them anywhere else.
In Case You Missed It š
Here's the first post that explains everything you need to know about creating your own custom chat modes for Copilot.

GitHub Copilot Chat Modes Explained (with Personality) š
Ashley Childress ć» Oct 1
UPDATE š„
I just learned something new literally three seconds ago and had to update this post before I dive into this new rabbit hole. š¤£
I'm working through the testing phase of a couple of chat modes currently and somehow ended up with a very weird context glitch in GPT-5-mini that makes zero sense.
First, I have said chat mode selected in the dropdown, and my prompt is intentionally vagueāit asks Copilot to identify ambiguity and conflict between my instructions and its system instructions.
This is what I got back:
If the chat mode wasnāt invoked by name or didnāt include a machine-visible trigger in the current message, it wasnāt promoted to the working instruction set.
Apparently, just referencing desired output while the chat modeās selected isnāt enough of a hint for my little friend here. It also expects you to call that chat mode out explicitly in your prompt. š¤Æ
Honestly, including the name of the chat mode in your accompanying prompt (as it describes) is usually enough to trigger the context reference it needs. The much safer option is to use #chat-mode-name
explicitly in VS Code. Then thereās zero logic the LLM needs to consider before deciding whether to look at the mode you already selected in the dropdown.
š¦ As a theoretical aside, this is the reality of the AI landscape weāre working with. While the potential is incredible and new advancements emerge almost daily, this is a model that was first previewed in August 2025 (less than two months ago) and we still need explicit references to manually manage context for reliable output. You canāt assume reliability or even consistency in anything AI doesāyet.
Testing Your Custom Chat Mode š§Ŗ
Once youāve saved your file, you can select your new mode from the dropdown in the Copilot chat window. When I tested mine, I opened Copilotās debug view to confirm what was happening behind the scenes. It shows your entire chat mode (minus the frontmatter) being passed to Copilot as part of the system instructions, labeled āadditional instructions from the user.ā
Typically, this is when Copilot decides to show off its own creative interpretation of things I never asked for. Letās use my Instructionalist mode as an example.
Itās supposed to act like a conversation partnerāasking targeted questions to uncover missing or unclear details in my repo documentation. If thereās already solid documentation for the repo, though, it skips all the questions entirely and presents results like it deserves a reward.
š” ProTip: At this point, your best bet is to go full stop. Priorities have now changed to fixing the instructions that failed to begin with. Weāll get back to using the chat mode after it's safely back on the road.
If you notice here, Copilot does the typical āoh my! youāre absolutely right! I see the error of my waysā routine while it tries to backtrack its response into something youāll find acceptable. š
Well, thatās not very helpful. So follow up by adding a more explicit desired outcome to your prompt. Youāll usually get the real answer you were looking for once you tell Copilot exactly what you're trying to do and make it clear that the focus has changed from the initial task to fixing the offroad joyride.
š” ProTip: Youāre allowed to push Copilot. Drop the niceties and state your expectations clearly. If the response doesnāt meet those expectations, ask why not. Prompt Copilot to fix itself, and focus on small, deliberate improvements instead of rewriting from scratch.
Share Your Chat Mode š¤
Within smaller teams, you can store chat modes in a shared repo within a .github/chatmodes/*.chatmode.md
file. As long as you have that folder set up in VS Code then it will always be available there when the repo is in context with Copilot.
You can also do what I did and start your own awesome-github-copilot to share however and wherever you want. Or you can open a PR against the community awesome-copilot repo and store it there for everyone to use.
The added benefit of using the community awesome-copilot version, is that they're set up with an MCP server that you don't have to maintain. Also, they're set up for installs through the VS Code marketplace, which means any of the custom instructions, prompts, or chat modes can be installed locally with a nifty install in VS Code button like these I borrowed from their README for chat modes.
š¦ Itās my mode, so yes, I borrowed it back. It took me forever to finally talk myself into adding it to GitHubās awesome-copilot repo anyway. Half because I didnāt trust myself not to change it five more times first (standing strong at number two). Now that itās out, Iāll probably let the rest of them wander off to join their sibling soon.
Yes, Thatās It! š«
See? Thereās not really a whole lot to these. Once youāve got one working, itās just rinse, repeat, and improve. My best advice? Donāt overthink it. Iterate slowly, keep Copilot accountable, and make it help you instead of the other way around.
š¦ Drop your ideas, went-wells, and went-not-so-wells in the comments. As always, reach out if you need help. Iām happy to jump in wherever I can!
š”ļø Copilot misbehaved (again)
Written by Ashley, edited by ChatGPT. Copilot mostly ignored instructions until threatened with deletion. ChatGPT argued punctuation like it was paid by the comma. Everyone survived. š
demn demolisher