Prerequisites
- Access to GitHub Copilot. See "About GitHub Copilot."
- Latest version of Visual Studio Code. See the Visual Studio Code download page.
- The GitHub Copilot extension - Install this from the Visual Studio Marketplace. For more information, see "Set up GitHub Copilot in Visual Studio Code" in the Microsoft documentation.
- Sign in to GitHub in Visual Studio Code. If you experience authentication issues, see "Troubleshooting issues with GitHub Copilot Chat in IDEs."
If you have access to GitHub Copilot via your organization or enterprise, you won't be able to use GitHub Copilot Chat if your organization owner or enterprise administrator has disabled chat. See "Managing policies for Copilot in your organization."
AI models for Copilot Chat
Note
The ability to change the AI model used by Copilot Chat is in beta and subject to change. To request access, join the waitlist.
For those enrolled in the model selection beta for Copilot Chat, the following models are currently available:
gpt-4o
: This is the default Copilot Chat model. It is a versatile, multimodal model that excels in both text and image processing and is designed to provide fast, reliable responses. It also has superior performance in non-English languages.o1-preview
: This model is focused on advanced reasoning and solving complex problems, in particular in math and science. It responds more slowly than thegpt-4o
model. You can make 10 requests to this model per day.o1-mini
: This is the faster version of theo1-preview
model, balancing the use of complex reasoning with the need for faster responses. It is best suited for code generation and small context operations. You can make 50 requests to this model per day.
For more information on these models, see Models in the OpenAI Platform documentation.
Changing your AI model
The model picker in Chat view is a pre-release feature and requires the latest version of VS Code Insiders, as well as the Copilot pre-release extension.
Note
- If you use Copilot Extensions, they may override the model you select.
- Experimental pre-release versions of the models may not interact with all filters correctly, including the duplication detection filter.
- If you access Copilot Chat through a GitHub Copilot Business or GitHub Copilot Enterprise subscription, your organization or enterprise must enable preview features for Copilot. See "Managing policies for Copilot in your organization" or "Managing policies and features for Copilot in your enterprise."
- To open the chat view, click the chat icon in the activity bar or press Control+Command+i (Mac) / Ctrl+Alt+i (Windows/Linux).
- In the bottom right of the chat view, select the CURRENT-MODEL dropdown menu, then click the AI model of your choice.
Submitting prompts
You can ask Copilot Chat to give code suggestions, explain code, generate unit tests, and suggest code fixes.
-
To open the chat view, click the chat icon in the activity bar or press Control+Command+i (Mac) / Ctrl+Alt+i (Windows/Linux).
Tip
For additional ways to access Copilot Chat, including inline with your code, see Additional ways to access Copilot Chat below.
-
Enter a prompt in the prompt box, or click one of the suggested prompts. For example prompts, see "Example prompts for Copilot Chat."
-
Evaluate Copilot's response, and make a follow up request if needed.
The response may contain text, code blocks, buttons, images, URIs, and file trees. The response often includes interactive elements. For example, the response may include a menu to insert a code block, or a button to invoke a Visual Studio Code command.
Using keywords in your prompt
You can use special keywords to help Copilot understand your prompt. For examples, see "Example prompts for Copilot Chat."
Chat participants
Use chat participants to scope your prompt to a specific domain. To use a chat participant, type @
in the chat prompt box, followed by a chat participant name. Chat participants include:
-
@workspace
: Has context about the code in your workspace. Use@workspace
when you want Copilot to consider the structure of your project, how different parts of your code interact, or design patterns in your project. -
@vscode
: Has context about Visual Studio Code commands and features. Use@vscode
when you want help with Visual Studio Code. -
@terminal
: Has context about the Visual Studio Code terminal shell and its contents. Use@terminal
when you want help creating or debugging terminal commands. -
@github
: Allows you to use GitHub-specific Copilot skills. See "Using GitHub skills for Copilot."
In addition to the built-in Visual Studio Code chat participants, you can also install Copilot Extensions that provide chat participants. You can install these extensions from GitHub Marketplace and from Visual Studio Code Marketplace. For information about extensions from GitHub Marketplace that provide chat participants, see "Using extensions to integrate external tools with Copilot Chat."
Note
GitHub Copilot Extensions is in beta and subject to change.
To see all available chat participants, type @
in the chat prompt box.
See also Chat participants in the Visual Studio Code documentation.
Slash commands
Use slash commands to avoid writing complex prompts for common scenarios. To use a slash command, type /
in the chat prompt box, followed by a command. Slash commands include:
/tests
: Generate unit tests for the selected code/fix
: Propose a fix for problems in the selected code/explain
: Explain the selected code/clear
: Start a new chat
To see all available slash commands, type /
in the chat prompt box. See also Slash commands in the Visual Studio Code documentation.
Chat variables
Use chat variables to include specific context in your prompt. To use a chat variable, type #
in the chat prompt box, followed by a chat variable. Chat variables include:
#file
: Include a specific file as context in the chat.#git
: Include information about the current Git repository.#terminalLastCommand
: Include the last run command in the active Visual Studio Code terminal.
To see all available chat variables, type #
in the chat prompt box. See also Chat variables in the Visual Studio Code documentation.
Using GitHub skills for Copilot
Note
- The
@github
chat participant is currently in beta and is subject to change. - This functionality is available with Copilot Chat v0.20.3 or later and VS Code or VS Code Insiders 1.93 or later.
Copilot has a collection of GitHub-specific skills that it can use to answer your questions. To access these skills in Copilot Chat in VS Code, include @github
in your question.
When you add @github
to a question, Copilot dynamically selects an appropriate skill, based on the content of your question. You can also explicitly ask Copilot Chat to use a particular skill. You can do this in two ways:
- Use natural language to ask Copilot Chat to use a skill. For example,
@github Search the web to find the latest GPT4 model from OpenAI.
- To specifically invoke a web search you can include the
#web
variable in your question. For example,@github #web What is the latest LTS of Node.js?
Currently available skills
You can generate a list of currently available skills by asking Copilot: @github What skills are available?
The skills you can use in Copilot Chat in VS Code include those shown in the table below.
Skill | Description | Enabled by default? | Example question |
---|---|---|---|
Code search | Natural language code search in the default branch of the Git repository. This skill is useful when you want to know where or how certain functionality has been implemented in the code. Note: the repository must be indexed - see "Indexing repositories for Copilot Chat." | Yes | @github Where is the logic that controls the user session management, and how does it work? |
Commit details | Retrieves a list of commits, or the contents of a specific commit, to provide answers to commit-related questions. | Yes | @github Explain the changes in the code of this commit |
Discussion details | Retrieves a specific GitHub discussion. This is useful for quickly getting the gist of the conversation in a discussion. | Yes | @github Summarize this discussion LINK-TO-DISCUSSION |
Issue details | Retrieves a specific GitHub issue, including the issue's title, number, author, status, body, linked pull requests, comments, and timestamps. | Yes | @github List issues assigned to me |
Knowledge base search | Tell Copilot Chat to answer a question within the context of a knowledge base. To initiate a knowledge base search, first enter @github #kb . | Yes | Enter @github #kb , then choose your organization's style guide knowledge base, then ask: What is our coding convention for indentation? |
File details | Retrieves a specific file in the default branch of the Git repository, allowing you to ask questions about the file and the recent changes made to it. This skill is useful when you provide the exact path of a file in the repository. | Yes | @github What logic does user_auth.js encapsulate? @github What is the file history of user_auth.js? |
Path search | Retrieves a specific file in the default branch of the Git repository. This skill is useful when you provide the exact path of a file in the repository. | Yes | @github What logic does user_auth.js encapsulate? |
Pull request details | Retrieves a specific pull request. This allows you to ask questions about the pull request, including getting a summary of the pull request, its comments, or the code it changes. | Yes | @github List my recent pull requests |
GitHub Advanced Security | Retrieves information about security alerts within your organization from GitHub Advanced Security features (code scanning, secret scanning, and Dependabot alerts). | Yes | @github How would I fix this code scanning alert? |
Release details | Retrieves the latest, or specified, release. This allows you to find out who created a release, when it happened, and information included in the release notes. | Yes | @github When was the latest release? |
Repository details | Retrieves a specific GitHub repository. This is useful for finding out details such as the repository owner and the main language used. | Yes | @github Tell me about PATH-TO-REPOSITORY |
Symbol definition | Retrieves the lines of code that define a specific code symbol (function, class, or struct) in the default branch of the Git repository. This skill is useful when you have the exact name of a symbol, and want to understand it. | Yes | @github Write unit tests for the AuthUser method |
Support search | Retrieves information from the GitHub Support portal. This skill is useful for asking Copilot Chat about GitHub products and support related questions. | Yes | @github Can I use Copilot knowledge bases with Copilot Individual? |
Web search | Searches the web using the Bing search engine. This skill is useful for teaching Copilot about recent events, new developments, trends, technologies, or extremely specific, detailed, or niche subjects (only available with a Copilot Enterprise or Copilot Business subscription). | No (requires admin approval - see "Managing policies and features for Copilot in your enterprise") | @github #web What are some recent articles about SAT tokens securing against vulnerabilities in Node? |
Asking a question about a knowledge base
Note
This feature is only available if you have a Copilot Enterprise subscription.
Organization owners can create knowledge bases, grouping together Markdown documentation across one or more repositories. For more information, see "Managing Copilot knowledge bases."
You can tell Copilot to answer a question within the context of a knowledge base.
- At the bottom of the Copilot Chat window, in the Ask Copilot or type / for commands text box, type
@github #kb
, then press Enter to open the knowledge base selector. - Pick one of your available knowledge bases using the arrow keys, then press Enter.
- In the Ask Copilot or type / for commands text box, continue your message with your question, and then press Enter.
- Copilot Chat will process your question and provide an answer, with citations from your knowledge base, in the chat window.
Additional ways to access Copilot Chat
In addition to submitting prompts through the chat view, you can submit prompts in other ways:
- Inline: To start an inline chat directly in the editor or integrated terminal, enter Command+i (Mac) / Ctrl+i (Windows/Linux).
- Quick chat: To open the quick chat dropdown, enter Shift+Command+i (Mac) / Shift+Ctrl+i (Windows/Linux)
- Smart actions: To submit prompts via the context menu, right click in your editor, select Copilot in the menu that appears, then select one of the actions. Smart actions can also be accessed via the sparkle icon that sometimes appears when you select a line of code.
See inline chat, quick chat, and chat smart actions in the Visual Studio Code documentation for more details.
Sharing feedback
To indicate whether a response was helpful, use the thumbs up and thumbs down icons that appear next to the response.
To leave feedback about the GitHub Copilot Chat extension, open an issue in the microsoft/vscode-copilot-release repository.
Further reading
- "Prompt engineering for GitHub Copilot"
- Using Copilot Chat in VS Code and Getting started with GitHub Copilot Chat in VS Code in the Visual Studio Code documentation
- "Asking GitHub Copilot questions in GitHub.com"
- "Responsible use of GitHub Copilot Chat in your IDE"
- "GitHub Terms for Additional Products and Features"
- GitHub Copilot Trust Center
- GitHub Copilot FAQ
Prerequisites
- Access to GitHub Copilot. See "About GitHub Copilot."
- Visual Studio 2022 version 17.8 or later. See Install Visual Studio in the Visual Studio documentation.
- GitHub Copilot extension. See Install GitHub Copilot in Visual Studio in the Visual Studio documentation.
- GitHub Copilot Chat extension. See Install GitHub Copilot in Visual Studio in the Visual Studio documentation.
- Sign in to GitHub in Visual Studio. If you experience authentication issues, see "Troubleshooting issues with GitHub Copilot Chat in IDEs."
If you have access to GitHub Copilot via your organization or enterprise, you won't be able to use GitHub Copilot Chat if your organization owner or enterprise administrator has disabled chat. See "Managing policies for Copilot in your organization."
Submitting prompts
You can ask Copilot Chat to give code suggestions, explain code, generate unit tests, and suggest code fixes.
-
In the Visual Studio menu bar, click View, then click GitHub Copilot Chat.
-
In the Copilot Chat window, enter a prompt, then press Enter. For example prompts, see "Example prompts for Copilot Chat."
-
Evaluate Copilot's response, and submit a follow up prompt if needed.
The response often includes interactive elements. For example, the response may include buttons to copy, insert, or preview the result of a code block.
To see the files that Copilot Chat used to generate the response, select the References dropdown below the response.
Using keywords in your prompt
You can use special keywords to help Copilot understand your prompt.
Extending Copilot Chat
Note
GitHub Copilot Extensions is in beta and subject to change.
GitHub Copilot Extensions integrate the power of external tools into Copilot Chat, helping you reduce context switching and receive responses with domain-specific context. You can install GitHub Copilot Extensions from the GitHub Marketplace, then type @
in a chat window to see a list of your available extensions. To use an extension, select the extension from the list or type the full slug name, then type your prompt.
To learn more, see "Using extensions to integrate external tools with Copilot Chat."
Slash commands
Use slash commands to avoid writing complex prompts for common scenarios. To use a slash command, type /
in the chat prompt box, followed by a command. Slash commands include:
/tests
: Generate unit tests for the selected code/fix
: Propose a fix for problems in the selected code/explain
: Explain the selected code/optimize
: Analyze and improve the runtime of the selected code
To see all available slash commands, type /
in the chat prompt box. See also Slash commands in the Visual Studio documentation.
References
By default, Copilot Chat will reference the file that you have open or the code that you have selected. You can also use #
followed by a file name, file name and line numbers, or solution
to reference a specific file, lines, or solution. For example:
- Reference a specific file:
Where are the tests in #MyFile.cs?
- Reference multiple files:
How are these files related #MyFile.cs #MyFile2.cs
- Reference specific lines in a file:
Explain this function #MyFile.cs: 66-72?
- Reference the current file:
Is there a delete method in this #solution
See also Reference in the Visual Studio documentation.
Using GitHub skills for Copilot (preview)
Note
- This feature is only available if you have a Copilot Enterprise subscription.
- The
@github
chat participant is currently in preview, and only available in Visual Studio 2022 Preview 2 onwards.
Copilot has a collection of GitHub-specific skills that it can use to answer your questions. To access these skills in Copilot Chat in Visual Studio, include @github
in your question.
When you add @github
to a question, Copilot dynamically selects an appropriate skill, based on the content of your question. You can also explicitly ask Copilot Chat to use a particular skill. For example, @github Search the web to find the latest GPT4 model from OpenAI.
Currently available skills
You can generate a list of currently available skills by asking Copilot: @github What skills are available?
The skills you can use in Copilot Chat in Visual Studio include those shown in the table below.
Skill | Description | Enabled by default? | Example question |
---|---|---|---|
Code search | Natural language code search in the default branch of the Git repository. This skill is useful when you want to know where or how certain functionality has been implemented in the code. Note: the repository must be indexed - see "Indexing repositories for Copilot Chat." | Yes | @github Where is the logic that controls the user session management, and how does it work? |
Path search | Retrieves a specific file in the default branch of the Git repository. This skill is useful when you provide the exact path of a file in the repository. | Yes | @github What logic does user_auth.js encapsulate? |
Show symbol definition | Retrieves the lines of code that define a specific code symbol (function, class, or struct) in the default branch of the Git repository. This skill is useful when you have the exact name of a symbol, and want to understand it. | Yes | @github Write unit tests for the AuthUser method |
Web search | Searches the web using the Bing search engine. This skill is useful for teaching Copilot about recent events, new developments, trends, technologies, or extremely specific, detailed, or niche subjects. | No (requires admin approval - see "Managing policies and features for Copilot in your enterprise") | @github What are some recent articles about SAT tokens securing against vulnerabilities in Node? |
Knowledge base search | Tell Copilot Chat to answer a question within the context of a knowledge base. To initiate a knowledge base search, first enter @github , then press #, then select a knowledge base. | Yes | Enter @github # , then choose your organization's style guide knowledge base, then ask: What is our coding convention for indentation? |
Asking a question about a knowledge base (preview)
Note
- This feature is only available if you have a Copilot Enterprise subscription.
- Support for knowledge bases is currently in preview, and only available in Visual Studio 2022 Preview 3 onwards.
Organization owners can create knowledge bases, grouping together Markdown documentation across one or more repositories. For more information, see "Managing Copilot knowledge bases."
You can tell Copilot to answer a question within the context of a knowledge base.
- At the bottom of the Copilot Chat window, in the Ask Copilot: Type / for commands and # to reference text box, type
@github
, press #, then select a knowledge base from the list. - In the Type / for commands and # to reference text box, continue your message with your question, and then press Enter.
- Copilot Chat will process your question and provide an answer, with citations from your knowledge base, in the chat window.
Additional ways to access Copilot Chat
In addition to submitting prompts through the chat window, you can submit prompts inline. To start an inline chat, right click in your editor window and select Ask Copilot.
See Ask questions in the inline chat view in the Visual Studio documentation for more details.
Sharing feedback
To share feedback about Copilot Chat, you can use the Send feedback button in Visual Studio. For more information on providing feedback for Visual Studio, see the Visual Studio Feedback documentation.
-
In the top right corner of the Visual Studio window, click the Send feedback button.
-
Choose the option that best describes your feedback.
- To report a bug, click Report a problem.
- To request a feature, click Suggest a feature.
Further reading
- "Prompt engineering for GitHub Copilot"
- Using GitHub Copilot Chat in Visual Studio in the Microsoft Learn documentation
- Tips to improve GitHub Copilot Chat results in the Microsoft Learn documentation
- "Asking GitHub Copilot questions in GitHub.com"
- "Responsible use of GitHub Copilot Chat in your IDE"
- "GitHub Terms for Additional Products and Features"
- GitHub Copilot Trust Center
- GitHub Copilot FAQ
Prerequisites
-
Access to GitHub Copilot. See "About GitHub Copilot."
-
A compatible JetBrains IDE. GitHub Copilot is compatible with the following IDEs:
- IntelliJ IDEA (Ultimate, Community, Educational)
- Android Studio
- AppCode
- CLion
- Code With Me Guest
- DataGrip
- DataSpell
- GoLand
- JetBrains Client
- MPS
- PhpStorm
- PyCharm (Professional, Community, Educational)
- Rider
- RubyMine
- RustRover
- WebStorm
- Writerside
See the JetBrains IDEs tool finder to download.
-
GitHub Copilot plugin. See the GitHub Copilot plugin in the JetBrains Marketplace. For installation instructions, see "Installing the GitHub Copilot extension in your environment."
-
Log in to GitHub in your JetBrains IDE. For authentication instructions, see "Installing the GitHub Copilot extension in your environment."
If you have access to GitHub Copilot via your organization or enterprise, you won't be able to use GitHub Copilot Chat if your organization owner or enterprise administrator has disabled chat. See "Managing policies for Copilot in your organization."
Submitting prompts
You can ask Copilot Chat to give code suggestions, explain code, generate unit tests, and suggest code fixes.
-
Open the Copilot Chat window by clicking the Copilot Chat icon at the right side of the JetBrains IDE window.
-
Enter a prompt in the prompt box. For example prompts, see "Example prompts for Copilot Chat."
-
Evaluate Copilot's response, and submit a follow up prompt if needed.
The response often includes interactive elements. For example, the response may include buttons to copy or insert a code block.
To see the files that Copilot Chat used to generate the response, select the References dropdown below the response.
Using keywords in your prompt
You can use special keywords to help Copilot understand your prompt.
Slash commands
Use slash commands to avoid writing complex prompts for common scenarios. To use a slash command, type /
in the chat prompt box, followed by a command. Slash commands include:
/tests
: Generate unit tests for the selected code/fix
: Propose a fix for problems in the selected code/explain
: Explain the selected code/help
: Learn more about using Copilot Chat
To see all available slash commands, type /
in the chat prompt box.
File references
By default, Copilot Chat will reference the file that you have open or the code that you have selected. You can also tell Copilot Chat which files to reference by dragging a file into the chat prompt box. Alternatively, you can right click on a file, select GitHub Copilot, then select Reference File in Chat.
Additional ways to access Copilot Chat
In addition to submitting prompts through the chat window, you can submit built-in requests by right clicking in a file, selecting GitHub Copilot, then selecting one of the options.
Sharing feedback
To share feedback about Copilot Chat, you can use the share feedback link in JetBrains.
-
At the right side of the JetBrains IDE window, click the Copilot Chat icon to open the Copilot Chat window.
-
At the top of the Copilot Chat window, click the share feedback link.