Tune GitHub Copilot & Chat in VS Code
If you are rolling out GitHub Copilot across a team, the settings surface in VS Code can feel sprawling. This guide breaks the options into digestible groups, highlights what each toggle does, and finishes with a comprehensive settings.json you can paste into a workspace policy or user profile.
Why It Matters
- Teams gain consistent Copilot behaviour across devices and projects.
- You can audit which preview or experimental capabilities are enabled before a rollout.
- Structured configuration keeps security-sensitive features (like tool auto-approve) under control.
Key Concepts or Pillars
- Group Copilot settings by experience: editor completions, chat, agents, and workflow glue.
- Use workspace settings to enforce policy, user settings for personal preferences.
- Keep an annotated baseline JSON so teammates can diff intentional changes.
Walk the Settings Groups
General (chat / AI UI toggles)
chat.commandCenter.enabledworkbench.settings.showAISearchToggleworkbench.commandPalette.experimental.askChatLocationsearch.searchView.semanticSearchBehaviorsearch.searchView.keywordSuggestions
Code Editing (completions & next edit suggestions)
github.copilot.editor.enableCodeActionsgithub.copilot.renameSuggestions.triggerAutomaticallygithub.copilot.enablegithub.copilot.nextEditSuggestions.enablededitor.inlineSuggest.edits.allowCodeShiftingeditor.inlineSuggest.edits.renderSideBySidegithub.copilot.nextEditSuggestions.fixeseditor.inlineSuggest.minShowDelay
Chat (behaviour, fonts, context, terminals, models)
github.copilot.chat.localeOverridegithub.copilot.chat.useProjectTemplatesgithub.copilot.chat.scopeSelectiongithub.copilot.chat.terminalChatLocationchat.detectParticipant.enabledchat.checkpoints.enabledchat.checkpoints.showFileChangeschat.editRequestschat.editor.fontFamilychat.editor.fontSizechat.editor.fontWeightchat.editor.lineHeightchat.editor.wordWrapchat.editing.confirmEditRequestRemovalchat.editing.confirmEditRequestRetrychat.editing.autoAcceptDelaychat.fontFamilychat.fontSizechat.notifyWindowOnConfirmationchat.notifyWindowOnResponseReceivedchat.tools.terminal.autoReplyToPromptschat.tools.terminal.terminalProfile.<platform>chat.useAgentsMdFilechat.math.enabledgithub.copilot.chat.codesearch.enabledchat.emptyState.history.enabledchat.sendElementsToChat.enabledchat.useNestedAgentsMdFilesgithub.copilot.chat.customOAIModelsgithub.copilot.chat.edits.suggestRelatedFilesFromGitHistory
Agent Mode (including MCP / auto-approve controls)
chat.agent.enabledchat.agent.maxRequestsgithub.copilot.chat.agent.autoFixchat.mcp.accesschat.mcp.discovery.enabledchat.mcp.gallery.enabledchat.tools.terminal.autoApprovechat.tools.global.autoApprovechat.agent.thinkingStylechat.mcp.autoStartchat.agent.todoList.positiongithub.copilot.chat.newWorkspaceCreation.enabledgithub.copilot.chat.agent.thinkingToolgithub.copilot.chat.virtualTools.threshold
Agent Sessions
chat.agentSessionsViewLocation
Inline Chat
inlineChat.finishOnTypeinlineChat.holdToSpeecheditor.inlineSuggest.syntaxHighlightingEnabledinlineChat.lineEmptyHintinlineChat.lineNaturalLanguageHintgithub.copilot.chat.editor.temporalContext.enabled
Code Review
github.copilot.chat.reviewSelection.enabledgithub.copilot.chat.reviewSelection.instructions
Custom Instructions / Prompt Files / Chat Modes
github.copilot.chat.codeGeneration.useInstructionFileschat.instructionsFilesLocationsgithub.copilot.chat.commitMessageGeneration.instructionsgithub.copilot.chat.pullRequestDescriptionGeneration.instructionschat.promptFileschat.promptFilesLocationschat.modeFilesLocations
The VS Code Copilot customisation guide walks through instruction files, reusable prompts, and custom chat modes in depth. See "Customize chat to your workflow" on the Visual Studio Code docs.
Debugging
github.copilot.chat.startDebugging.enabledgithub.copilot.chat.copilotDebugCommand.enabled
Testing
github.copilot.chat.generateTests.codeLensgithub.copilot.chat.setupTests.enabled
Notebooks
notebook.experimental.generategithub.copilot.chat.edits.newNotebook.enabledgithub.copilot.chat.notebook.followCellExecution.enabled
Accessibility (chat-related)
inlineChat.accessibleDiffViewaccessibility.signals.chatRequestSentaccessibility.signals.chatResponseReceivedaccessibility.signals.chatEditModifiedFileaccessibility.signals.chatUserActionRequiredaccessibility.voice.keywordActivationaccessibility.voice.autoSynthesizeaccessibility.voice.speechTimeout
Tip: To edit these values directly, open the Command Palette and run "Preferences: Open User Settings (JSON)" in VS Code. The full Copilot settings reference is available in the official documentation.
Additional Insight or Use Case
Rolling Copilot out to a mixed environment? Keep a shared settings.json in .vscode/ for regulated projects, then encourage developers to extend personal preferences in their user profile. This separation lets you lock down agent tooling (for example, disallowing destructive shell commands) while still letting individuals experiment with chat font sizing or inline suggestion delays.
Practical Steps or How-To
- Review the grouped settings above and mark which ones are mandatory for your team.
- Copy the sample JSON below into
.vscode/settings.json(workspace) or your user profile. - Trim the comments or keys you do not need, then commit the file so teammates inherit the same defaults.
- Revisit the configuration quarterly; many Copilot features are still in preview and can change behaviour.
Prefer a ready-to-use file? Download the JSON directly and drop it into .vscode/settings.json.
{
// ---------- General ----------
"chat.commandCenter.enabled": true,
"workbench.settings.showAISearchToggle": true,
"workbench.commandPalette.experimental.askChatLocation": "chatView",
"search.searchView.semanticSearchBehavior": "manual",
"search.searchView.keywordSuggestions": false,
// ---------- Code editing (Copilot completions / NES) ----------
"github.copilot.editor.enableCodeActions": true,
"github.copilot.renameSuggestions.triggerAutomatically": true,
"github.copilot.enable": {
"*": true,
"plaintext": false,
"markdown": false,
"scminput": false,
},
"github.copilot.nextEditSuggestions.enabled": true,
"editor.inlineSuggest.edits.allowCodeShifting": "always",
"editor.inlineSuggest.edits.renderSideBySide": "auto",
"github.copilot.nextEditSuggestions.fixes": true,
"editor.inlineSuggest.minShowDelay": 0,
// ---------- Chat ----------
"github.copilot.chat.localeOverride": "auto",
"github.copilot.chat.useProjectTemplates": true,
"github.copilot.chat.scopeSelection": false,
"github.copilot.chat.terminalChatLocation": "chatView",
"chat.detectParticipant.enabled": true,
"chat.checkpoints.enabled": true,
"chat.checkpoints.showFileChanges": false,
"chat.editRequests": "inline",
"chat.editor.fontFamily": "default",
"chat.editor.fontSize": 14,
"chat.editor.fontWeight": "default",
"chat.editor.lineHeight": 0,
"chat.editor.wordWrap": "off",
"chat.editing.confirmEditRequestRemoval": true,
"chat.editing.confirmEditRequestRetry": true,
"chat.editing.autoAcceptDelay": 0,
"chat.fontFamily": "default",
"chat.fontSize": 13,
"chat.notifyWindowOnConfirmation": true,
"chat.notifyWindowOnResponseReceived": true,
"chat.tools.terminal.autoReplyToPrompts": false,
"chat.tools.terminal.terminalProfile.windows": "",
"chat.tools.terminal.terminalProfile.linux": "",
"chat.tools.terminal.terminalProfile.osx": "",
"chat.useAgentsMdFile": true,
"chat.math.enabled": false,
"github.copilot.chat.codesearch.enabled": false,
"chat.emptyState.history.enabled": false,
"chat.sendElementsToChat.enabled": true,
"chat.useNestedAgentsMdFiles": false,
"github.copilot.chat.customOAIModels": [],
"github.copilot.chat.edits.suggestRelatedFilesFromGitHistory": true,
// ---------- Agent mode (incl. MCP) ----------
"chat.agent.enabled": true,
"chat.agent.maxRequests": 25,
"github.copilot.chat.agent.autoFix": true,
"chat.mcp.access": true,
"chat.mcp.discovery.enabled": false,
"chat.mcp.gallery.enabled": false,
"chat.tools.terminal.autoApprove": {
"rm": false,
"rmdir": false,
"del": false,
"kill": false,
"curl": false,
"wget": false,
"eval": false,
"chmod": false,
"chown": false,
"/^Remove-Item\\b/i": false,
},
"chat.tools.global.autoApprove": false,
"chat.agent.thinkingStyle": "fixedScrolling",
"chat.mcp.autoStart": "newAndOutdated",
"chat.agent.todoList.position": "default",
"github.copilot.chat.newWorkspaceCreation.enabled": true,
"github.copilot.chat.agent.thinkingTool": false,
"github.copilot.chat.virtualTools.threshold": 128,
// ---------- Agent sessions ----------
"chat.agentSessionsViewLocation": "disabled",
// ---------- Inline chat ----------
"inlineChat.finishOnType": false,
"inlineChat.holdToSpeech": true,
"editor.inlineSuggest.syntaxHighlightingEnabled": true,
"inlineChat.lineEmptyHint": false,
"inlineChat.lineNaturalLanguageHint": true,
"github.copilot.chat.editor.temporalContext.enabled": false,
// ---------- Code review ----------
"github.copilot.chat.reviewSelection.enabled": true,
"github.copilot.chat.reviewSelection.instructions": [],
// ---------- Custom instructions / prompt files / chat modes ----------
"github.copilot.chat.codeGeneration.useInstructionFiles": true,
"chat.instructionsFilesLocations": { ".github/instructions": true },
"github.copilot.chat.commitMessageGeneration.instructions": [],
"github.copilot.chat.pullRequestDescriptionGeneration.instructions": [],
"chat.promptFiles": true,
"chat.promptFilesLocations": { ".github/prompts": true },
"chat.modeFilesLocations": { ".github/chatmodes": true },
// ---------- Debugging ----------
"github.copilot.chat.startDebugging.enabled": true,
"github.copilot.chat.copilotDebugCommand.enabled": true,
// ---------- Testing ----------
"github.copilot.chat.generateTests.codeLens": false,
"github.copilot.chat.setupTests.enabled": true,
// ---------- Notebooks ----------
"notebook.experimental.generate": true,
"github.copilot.chat.edits.newNotebook.enabled": true,
"github.copilot.chat.notebook.followCellExecution.enabled": false,
// ---------- Accessibility (chat-related) ----------
"inlineChat.accessibleDiffView": "auto",
"accessibility.signals.chatRequestSent": {
"sound": "auto",
"announcement": "auto",
},
"accessibility.signals.chatResponseReceived": { "sound": "auto" },
"accessibility.signals.chatEditModifiedFile": { "sound": "auto" },
"accessibility.signals.chatUserActionRequired": {
"sound": "auto",
"announcement": "auto",
},
"accessibility.voice.keywordActivation": "off",
"accessibility.voice.autoSynthesize": "off",
"accessibility.voice.speechTimeout": 1200,
}
Tips, Tricks, or Best Practices
- Keep destructive shell commands marked as
falseinchat.tools.terminal.autoApproveto prevent unintended actions. - Disable Copilot for filetypes like
markdownorplaintextif you prefer to write prose unaided. - Pair the
chat.instructionsFilesLocationssetting with a.github/instructionsfolder so all contributors see the same guidance. - Re-enable
github.copilot.chat.codesearch.enabledonly after validating access controls for your repositories.
Conclusion
With the settings grouped and a baseline JSON in hand, you can standardise Copilot across your workspace in minutes. Tailor the defaults for security, productivity, or experimentation, then iterate as the Copilot feature set evolves.
Author
Like, share, follow me on: 🐙 GitHub | 🐧 X/Twitter | 👾 LinkedIn
Date: 05-11-2025
Top comments (0)