29 KiB
title, intro, topics, redirect_from, defaultTool, versions, shortTitle
| title | intro | topics | redirect_from | defaultTool | versions | shortTitle | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Using GitHub Copilot Chat in your IDE | Use {% data variables.product.prodname_copilot_chat_short %} in your editor to give code suggestions, explain code, generate unit tests, and suggest code fixes. |
|
|
vscode |
|
Use Copilot Chat |
{% vscode %}
Prerequisites
- Access to {% data variables.product.prodname_copilot %}. See "AUTOTITLE."
- Latest version of {% data variables.product.prodname_vscode %}. See the {% data variables.product.prodname_vscode %} download page.
- {% data variables.product.prodname_copilot_chat %} extension. This is automatically installed when you install the {% data variables.product.prodname_copilot %} extension. See the GitHub Copilot extension in the Visual Studio Marketplace.
- Sign in to {% data variables.product.company_short %} in {% data variables.product.prodname_vscode %}. If you experience authentication issues, see "AUTOTITLE."
If you have access to {% data variables.product.prodname_copilot %} via your organization or enterprise, you cannot use {% data variables.product.prodname_copilot_chat %} if your organization owner or enterprise administrator has disabled {% data variables.product.prodname_copilot_chat %}. See "AUTOTITLE."
Submitting prompts
You can ask {% data variables.product.prodname_copilot_chat_short %} to give code suggestions, explain code, generate unit tests, and suggest code fixes.
-
Open the chat view by clicking the chat icon in the activity bar or by entering Control+Command+i (Mac) / Ctrl+Alt+i (Windows/Linux).
Tip
For additional ways to access {% data variables.product.prodname_copilot_chat_short %}, including inline with your code, see Additional ways to access {% data variables.product.prodname_copilot_chat_short %} below.
-
Enter a prompt in the prompt box, or click one of the suggested prompts. For example prompts, see "Example prompts" below.
-
Evaluate {% data variables.product.prodname_copilot_short %}'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 {% data variables.product.prodname_vscode %} command.
Using keywords in your prompt
You can use special keywords to help {% data variables.product.prodname_copilot_short %} understand your prompt.
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@workspacewhen you want {% data variables.product.prodname_copilot_short %} to consider the structure of your project, how different parts of your code interact, or design patterns in your project.@vscode: Has context about {% data variables.product.prodname_vscode %} commands and features. Use@vscodewhen you want help with {% data variables.product.prodname_vscode %}.@terminal: Has context about the {% data variables.product.prodname_vscode %} terminal shell and its contents. Use@terminalwhen you want help creating or debugging terminal commands.
To see all available chat participants, type @ in the chat prompt box. See also Chat participants in the {% data variables.product.prodname_vscode %} 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 {% data variables.product.prodname_vscode %} 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 {% data variables.product.prodname_vscode %} terminal.
To see all available chat variables, type # in the chat prompt box. See also Chat variables in the {% data variables.product.prodname_vscode %} documentation.
Example prompts
You can ask {% data variables.product.prodname_copilot_chat_short %} specific questions about your project or general software questions. You can also ask {% data variables.product.prodname_copilot_chat_short %} to write code, fix errors, write tests, and document code.
Ask general software questions
You can ask {% data variables.product.prodname_copilot_chat_short %} general software questions. For example:
tell me about nodejs web server frameworkshow to create an express app@terminal how to update an npm package(uses the @terminal chat participant)
Ask questions about your project
You can ask {% data variables.product.prodname_copilot_chat_short %} questions about your project.
what sorting algorithm does this function use@workspace how are notifications scheduled#file:gameReducer.js #file:gameInit.js how are these files related
To give {% data variables.product.prodname_copilot_short %} the correct context, try some of these strategies:
- Highlight relevant lines of code
- Use chat variables like
#selection,#file,#editor,#codebase, or#git - Use the
@workspacechat participant
Write code
You can ask {% data variables.product.prodname_copilot_short %} to write code for you. For example:
write a function to sum all numbers in a listadd error handling to this function@workspace add form validation, similar to the newsletter page
When {% data variables.product.prodname_copilot_short %} returns a code block, the response includes options to copy the code, or to insert the code at your cursor, into a new file, or into the terminal.
Set up a new project
Use the /new slash command to set up a new project. For example:
/new react app with typescript/new python django web application/new node.js express server
Copilot will suggest a directory structure and provide a button to create the suggested files and contents. To preview a suggested file, select the file name in the suggested directory structure.
Use the /newNotebook slash command to set up a new Jupyter notebook. For example:
/newNotebook retrieve the titanic dataset and use Seaborn to plot the data
Fix, improve, and refactor code
If your active file contains an error, use the /fix slash command to ask {% data variables.product.prodname_copilot_short %} to fix the error.
You can also make general requests to improve or refactor your code.
how would you improve this code?translate this code to C#add error handling to this function
Write tests
Use the /tests slash command to ask {% data variables.product.prodname_copilot_short %} to write tests for the active file or selected code. For example:
/tests/tests using the Jest framework/tests ensure the function rejects an empty list
The /tests slash command writes tests for existing code. If you prefer to write tests before writing code (test driven development), omit the /tests command. For example:
Add tests for a JavaScript function that should sum a list of integers
Ask questions about {% data variables.product.prodname_vscode %}
Use the @vscode chat participant to ask specific questions about {% data variables.product.prodname_vscode %}. For example:
@vscode how to debug a node.js app@vscode how do I change my {% data variables.product.prodname_vscode %} colors@vscode how to change key bindings
Ask questions about the command line
Use the @terminal chat participant to ask specific questions about the command line. For example:
@terminal find the largest file in the src directory@terminal #terminalLastCommandto explain the last command and any errors
Additional ways to access {% data variables.product.prodname_copilot_chat_short %}
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 {% data variables.product.prodname_vscode %} 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 {% data variables.product.prodname_copilot_chat %} extension, open an issue in the microsoft/vscode-copilot-release repository.
Further reading
- Using Copilot Chat in VS Code and Getting started with GitHub Copilot Chat in VS Code in the {% data variables.product.prodname_vscode %} documentation {% ifversion ghec %}
- "AUTOTITLE" {% endif %}
- "AUTOTITLE"
- "AUTOTITLE"{% ifversion ghec %}
- {% data variables.product.prodname_copilot %} Trust Center{% endif %}
- {% data variables.product.prodname_copilot %} FAQ
{% endvscode %}
{% visualstudio %}
Prerequisites
- Access to {% data variables.product.prodname_copilot %}. See "AUTOTITLE."
- {% data variables.product.prodname_vs %} 2022 version 17.8 or higher. See Install Visual Studio in the {% data variables.product.prodname_vs %} documentation.
- {% data variables.product.prodname_copilot %} extension. See Install GitHub Copilot in Visual Studio in the {% data variables.product.prodname_vs %} documentation.
- {% data variables.product.prodname_copilot_chat %} extension. See Install GitHub Copilot in Visual Studio in the {% data variables.product.prodname_vs %} documentation.
- Sign in to {% data variables.product.company_short %} in {% data variables.product.prodname_vs %}. If you experience authentication issues, see "AUTOTITLE."
If you have access to {% data variables.product.prodname_copilot %} via your organization or enterprise, you cannot use {% data variables.product.prodname_copilot_chat %} if your organization owner or enterprise administrator has disabled {% data variables.product.prodname_copilot_chat %}. See "AUTOTITLE."
Submitting prompts
You can ask {% data variables.product.prodname_copilot_chat_short %} to give code suggestions, explain code, generate unit tests, and suggest code fixes.
-
In the {% data variables.product.prodname_vs %} menu bar, click View, then click {% data variables.product.prodname_copilot_chat %}.
-
In the {% data variables.product.prodname_copilot_chat_short %} window, enter a prompt, then press Enter. For example prompts, see "Example prompts" below.
-
Evaluate {% data variables.product.prodname_copilot_short %}'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 {% data variables.product.prodname_copilot_chat_short %} used to generate the response, select the References dropdown below the response.
Using keywords in your prompt
You can use special keywords to help {% data variables.product.prodname_copilot_short %} 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/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 {% data variables.product.prodname_vs %} documentation.
References
By default, {% data variables.product.prodname_copilot_chat_short %} 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 {% data variables.product.prodname_vs %} documentation.
Example prompts
You can ask {% data variables.product.prodname_copilot_chat_short %} specific questions about your project or general software questions. You can also ask {% data variables.product.prodname_copilot_chat_short %} to write code, fix errors, write tests, and document code.
Ask general software questions
You can ask {% data variables.product.prodname_copilot_chat_short %} general software questions. For example:
tell me about nodejs web server frameworkshow to create an express apphow to update an npm package
Ask questions about your project
You can ask {% data variables.product.prodname_copilot_chat_short %} questions about your project. To give {% data variables.product.prodname_copilot_short %} the correct context, try some of these strategies:
- Highlight relevant lines of code
- Open the relevant file
- Use
#fileto tell {% data variables.product.prodname_copilot_short %} to reference specific files - Use
#solutionto tell {% data variables.product.prodname_copilot_short %} to reference the active file
For example:
what sorting algorithm does this function use#file:gameReducer.js what happens when a new game is requested
Write code
You can ask {% data variables.product.prodname_copilot_short %} to write code for you. For example:
write a function to sum all numbers in a listadd error handling to this function
When {% data variables.product.prodname_copilot_short %} returns a code block, the response includes options to copy the code, insert the code into a new file, or preview the code output.
Fix, improve, and refactor code
If your active file contains an error, use the /fix slash command to ask {% data variables.product.prodname_copilot_short %} to fix the error.
You can also make general requests to improve or refactor your code.
how would you improve this code?translate this code to C#add error handling to this function
Write tests
Use the /tests slash command to ask {% data variables.product.prodname_copilot_short %} to write tests for the active file or selected code. For example:
/tests/tests using the Jest framework/tests ensure the function rejects an empty list
The /tests slash command writes tests for existing code. If you prefer to write tests before writing code (test driven development), omit the /tests command. For example:
Add tests for a JavaScript function that should sum a list of integers
Additional ways to access {% data variables.product.prodname_copilot_chat_short %}
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 {% data variables.product.prodname_copilot_short %}.
See Ask questions in the inline chat view in the {% data variables.product.prodname_vs %} documentation for more details.
Sharing feedback
To share feedback about {% data variables.product.prodname_copilot_chat_short %}, you can use the Send feedback button in {% data variables.product.prodname_vs %}. For more information on providing feedback for {% data variables.product.prodname_vs %}, see the {% data variables.product.prodname_vs %} Feedback documentation.
-
In the top right corner of the {% data variables.product.prodname_vs %} 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
- Using {% data variables.product.prodname_copilot_chat %} in {% data variables.product.prodname_vs %} in the Microsoft Learn documentation
- Tips to improve {% data variables.product.prodname_copilot_chat %} results in the Microsoft Learn documentation {% ifversion ghec %}
- "AUTOTITLE" {% endif %}
- "AUTOTITLE"
- "AUTOTITLE"{% ifversion ghec %}
- {% data variables.product.prodname_copilot %} Trust Center{% endif %}
- {% data variables.product.prodname_copilot %} FAQ
{% endvisualstudio %}
{% jetbrains %}
Prerequisites
-
Access to {% data variables.product.prodname_copilot %}. See "AUTOTITLE."
-
A compatible JetBrains IDE. {% data variables.product.prodname_copilot %} is compatible with the following IDEs:
- IntelliJ IDEA (Ultimate, Community, Educational)
- Android Studio
- AppCode
- CLion
- DataGrip
- DataSpell
- GoLand
- MPS
- PhpStorm
- PyCharm (Professional, Community, Educational)
- Rider
- RubyMine
- RustRover
- WebStorm
See the JetBrains IDEs tool finder to download.
-
{% data variables.product.prodname_copilot %} plugin. See the {% data variables.product.prodname_copilot %} plugin in the JetBrains Marketplace. For installation instructions, see "AUTOTITLE."
-
Sign in to {% data variables.product.company_short %} in your JetBrains IDE. For authentication instructions, see "AUTOTITLE."
If you have access to {% data variables.product.prodname_copilot %} via your organization or enterprise, you cannot use {% data variables.product.prodname_copilot_chat %} if your organization owner or enterprise administrator has disabled {% data variables.product.prodname_copilot_chat %}. See "AUTOTITLE."
Submitting prompts
You can ask {% data variables.product.prodname_copilot_chat_short %} to give code suggestions, explain code, generate unit tests, and suggest code fixes.
-
Open the {% data variables.product.prodname_copilot_chat_short %} window by clicking the {% data variables.product.prodname_copilot_chat_short %} icon at the right side of the JetBrains IDE window.
-
Enter a prompt in the prompt box. For example prompts, see "Example prompts" below.
-
Evaluate {% data variables.product.prodname_copilot_short %}'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 {% data variables.product.prodname_copilot_chat_short %} used to generate the response, select the References dropdown below the response.
Using keywords in your prompt
You can use special keywords to help {% data variables.product.prodname_copilot_short %} 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 {% data variables.product.prodname_copilot_chat_short %}
To see all available slash commands, type / in the chat prompt box.
File references
By default, {% data variables.product.prodname_copilot_chat_short %} will reference the file that you have open or the code that you have selected. You can also tell {% data variables.product.prodname_copilot_chat_short %} 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.
Example prompts
You can ask {% data variables.product.prodname_copilot_chat_short %} specific questions about your project or general software questions. You can also ask {% data variables.product.prodname_copilot_chat_short %} to write code, fix errors, write tests, and document code.
Ask general software questions
You can ask {% data variables.product.prodname_copilot_chat_short %} general software questions. For example:
tell me about nodejs web server frameworkshow to create an express apphow to update an npm package
Ask questions about your project
You can ask {% data variables.product.prodname_copilot_chat_short %} questions about your project. To give {% data variables.product.prodname_copilot_short %} the correct context, try some of these strategies:
- Highlight relevant lines of code.
- Open the relevant file.
- Add the file as a reference. See File references.
For example:
what sorting algorithm does this function usehow are these files related(with references to the files in question)
Write code
You can ask {% data variables.product.prodname_copilot_short %} to write code for you. For example:
write a function to sum all numbers in a listadd error handling to this function
When {% data variables.product.prodname_copilot_short %} returns a code block, the response includes options to copy the code or to insert the code at your cursor.
Fix, improve, and refactor code
If your active file contains an error, use the /fix slash command to ask {% data variables.product.prodname_copilot_short %} to fix the error.
You can also make general requests to improve or refactor your code.
how would you improve this code?translate this code to C#add error handling to this function
Write tests
Use the /tests slash command to ask {% data variables.product.prodname_copilot_short %} to write tests for the active file or selected code. For example:
/tests/tests using the Jest framework/tests ensure the function rejects an empty list
The /tests slash command writes tests for existing code. If you prefer to write tests before writing code (test driven development), omit the /tests command. For example:
Add tests for a JavaScript function that should sum a list of integers
Additional ways to access {% data variables.product.prodname_copilot_chat_short %}
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 {% data variables.product.prodname_copilot_chat_short %}, you can use the share feedback link in JetBrains.
-
At the right side of the JetBrains IDE window, click the {% data variables.product.prodname_copilot_chat_short %} icon to open the {% data variables.product.prodname_copilot_chat_short %} window.
-
At the top of the {% data variables.product.prodname_copilot_chat_short %} window, click the share feedback link.
Further reading
{% ifversion ghec %}- "AUTOTITLE"{% endif %}
- "AUTOTITLE"
- "AUTOTITLE"
- "AUTOTITLE "{% ifversion ghec %}
- {% data variables.product.prodname_copilot %} Trust Center{% endif %}
- {% data variables.product.prodname_copilot %} FAQ
{% endjetbrains %}

