Skip to main content

Using GitHub Copilot Chat in your IDE

Use Copilot Chat in your editor to give code suggestions, explain code, generate unit tests, and suggest code fixes.

Prerequisites

If you have access to GitHub Copilot via your organization or enterprise, you cannot use GitHub Copilot Chat if your organization owner or enterprise administrator has disabled GitHub Copilot Chat. See "Managing policies and features 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.

  1. 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).

    Screenshot of the Copilot Chat icon in the Activity Bar.

    Tip

    For additional ways to access Copilot Chat, including inline with your code, see Additional ways to access Copilot Chat below.

  2. Enter a prompt in the prompt box, or click one of the suggested prompts. For example prompts, see "Example prompts" below.

  3. 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.

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.

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.

Example prompts

You can ask Copilot Chat specific questions about your project or general software questions. You can also ask Copilot Chat to write code, fix errors, write tests, and document code.

Ask general software questions

You can ask Copilot Chat general software questions. For example:

  • tell me about nodejs web server frameworks
  • how 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 Copilot Chat 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 Copilot 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 @workspace chat participant

Write code

You can ask Copilot to write code for you. For example:

  • write a function to sum all numbers in a list
  • add error handling to this function
  • @workspace add form validation, similar to the newsletter page

When Copilot 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 Copilot 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 Copilot 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 Visual Studio Code

Use the @vscode chat participant to ask specific questions about Visual Studio Code. For example:

  • @vscode how to debug a node.js app
  • @vscode how do I change my Visual Studio Code 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 #terminalLastCommand to explain the last command and any errors

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

Prerequisites

If you have access to GitHub Copilot via your organization or enterprise, you cannot use GitHub Copilot Chat if your organization owner or enterprise administrator has disabled GitHub Copilot Chat. See "Managing policies and features 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.

  1. In the Visual Studio menu bar, click View, then click GitHub Copilot Chat.

  2. In the Copilot Chat window, enter a prompt, then press Enter. For example prompts, see "Example prompts" below.

  3. 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.

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.

Example prompts

You can ask Copilot Chat specific questions about your project or general software questions. You can also ask Copilot Chat to write code, fix errors, write tests, and document code.

Ask general software questions

You can ask Copilot Chat general software questions. For example:

  • tell me about nodejs web server frameworks
  • how to create an express app
  • how to update an npm package

Ask questions about your project

You can ask Copilot Chat questions about your project. To give Copilot the correct context, try some of these strategies:

  • Highlight relevant lines of code
  • Open the relevant file
  • Use #file to tell Copilot to reference specific files
  • Use #solution to tell Copilot 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 Copilot to write code for you. For example:

  • write a function to sum all numbers in a list
  • add error handling to this function

When Copilot 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 Copilot 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 Copilot 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 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.

  1. In the top right corner of the Visual Studio window, click the Send feedback button.

    Screenshot of the share feedback button in Visual Studio.

  2. 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

Prerequisites

If you have access to GitHub Copilot via your organization or enterprise, you cannot use GitHub Copilot Chat if your organization owner or enterprise administrator has disabled GitHub Copilot Chat. See "Managing policies and features 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.

  1. Open the Copilot Chat window by clicking the Copilot Chat icon at the right side of the JetBrains IDE window.

    Screenshot of the Copilot Chat icon in the Activity Bar.

  2. Enter a prompt in the prompt box. For example prompts, see "Example prompts" below.

  3. 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.

Example prompts

You can ask Copilot Chat specific questions about your project or general software questions. You can also ask Copilot Chat to write code, fix errors, write tests, and document code.

Ask general software questions

You can ask Copilot Chat general software questions. For example:

  • tell me about nodejs web server frameworks
  • how to create an express app
  • how to update an npm package

Ask questions about your project

You can ask Copilot Chat questions about your project. To give Copilot 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 use
  • how are these files related (with references to the files in question)

Write code

You can ask Copilot to write code for you. For example:

  • write a function to sum all numbers in a list
  • add error handling to this function

When Copilot 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 Copilot 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 Copilot 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 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.

  1. At the right side of the JetBrains IDE window, click the Copilot Chat icon to open the Copilot Chat window.

    Screenshot of the Copilot Chat icon in the Activity Bar.

  2. At the top of the Copilot Chat window, click the share feedback link.

    Screenshot of the share feedback link in the Copilot Chat window.

Further reading