š¦ 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
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. š
Top comments (0)