1
0
mirror of synced 2025-12-22 11:26:57 -05:00
Files
docs/content/copilot/using-github-copilot/copilot-chat/getting-started-with-prompts-for-copilot-chat.md
Copilot ec7bb4d9bb Move Copilot variables from product.yml to copilot.yml (#55832)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: hubwriter <54933897+hubwriter@users.noreply.github.com>
Co-authored-by: hubwriter <hubwriter@github.com>
Co-authored-by: felicitymay <1877141+felicitymay@users.noreply.github.com>
Co-authored-by: Felix Guntrip <stevecat@github.com>
Co-authored-by: Joe Clark <31087804+jc-clark@users.noreply.github.com>
Co-authored-by: Ebonsignori <17055832+Ebonsignori@users.noreply.github.com>
2025-06-02 11:35:54 +01:00

399 lines
17 KiB
Markdown

---
title: Getting started with prompts for Copilot Chat
intro: 'Get an overview of ways to use {% data variables.copilot.copilot_chat_short %}.'
topics:
- Copilot
defaultTool: vscode
versions:
feature: copilot
redirect_from:
- /copilot/using-github-copilot/example-use-cases/example-prompts-for-copilot-chat
- /copilot/using-github-copilot/guides-on-using-github-copilot/getting-started-with-prompts-for-copilot-chat
shortTitle: Get started with chat
---
You can ask {% data variables.copilot.copilot_chat_short %} specific questions about your project or general software questions. You can also ask {% data variables.copilot.copilot_chat_short %} to write code, fix errors, write tests, and document code.
Use the tabs above to select the environment where you are using {% data variables.copilot.copilot_chat_short %}.
{% vscode %}
Some of the following example prompts use chat participants (preceded by `@`), slash commands (preceded by `/`), or chat variables (preceded by `#`). For more information on keywords in prompts, see [AUTOTITLE](/copilot/using-github-copilot/asking-github-copilot-questions-in-your-ide#using-keywords-in-your-prompt).
## Ask general software questions
You can ask {% data variables.copilot.copilot_chat_short %} general software questions. For example:
* `tell me about nodejs web server frameworks`
* `how can I create an Express app`
* `@terminal how to update an npm package`
## Ask questions about your project
You can ask {% data variables.copilot.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 `@workspace` chat 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 list`
* `add 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.
## Ask questions about alerts from {% data variables.product.prodname_GHAS %} features
You can ask {% data variables.product.prodname_copilot_short %} about security alerts in repositories in your organization from {% data variables.product.prodname_GHAS %} features ({% data variables.product.prodname_code_scanning %}, {% data variables.product.prodname_secret_scanning %}, and {% data variables.product.prodname_dependabot_alerts %}). For example:
* `How would I fix this alert?`
* `How many alerts do I have on this pull request?`
* `Which line of code is this {% data variables.product.prodname_code_scanning %} alert referencing?`
* `What library is affected by this {% data variables.product.prodname_dependabot %} alert?`
## 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 tell me how to debug a node.js app`
* `@vscode how do I change my {% data variables.product.prodname_vscode %} colors`
* `@vscode how can I 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
{% endvscode %}
{% visualstudio %}
## Ask general software questions
You can ask {% data variables.copilot.copilot_chat_short %} general software questions. For example:
* `tell me about nodejs web server frameworks`
* `how can I create an Express app`
* `what's the process for updating an npm package`
## Ask questions about your project
You can ask {% data variables.copilot.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 `#file` to tell {% data variables.product.prodname_copilot_short %} to reference specific files.
* Use `#solution` to 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 list`
* `add 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.
## Ask questions about alerts from {% data variables.product.prodname_GHAS %} features
You can ask {% data variables.product.prodname_copilot_short %} about security alerts in repositories in your organization from {% data variables.product.prodname_GHAS %} features ({% data variables.product.prodname_code_scanning %}, {% data variables.product.prodname_secret_scanning %}, and {% data variables.product.prodname_dependabot_alerts %}). For example:
* `How would I fix this alert?`
* `How many alerts do I have on this pull request?`
* `Which line of code is this {% data variables.product.prodname_code_scanning %} alert referencing?`
* `What library is affected by this {% data variables.product.prodname_dependabot %} alert?`
## 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`
{% endvisualstudio %}
{% jetbrains %}
## Ask general software questions
You can ask {% data variables.copilot.copilot_chat_short %} general software questions. For example:
* `tell me about nodejs web server frameworks`
* `how can I create an Express app`
* `what's the process for updating an npm package`
## Ask questions about your project
You can ask {% data variables.copilot.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. For information about how to use file references, see [AUTOTITLE](/copilot/using-github-copilot/asking-github-copilot-questions-in-your-ide?tool=jetbrains#file-references).
* Use the `@project` chat participant.
For example:
* `what sorting algorithm does this function use`
* `how are these files related` (with references to the files in question)
* `@project how are notifications scheduled`
## 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 list`
* `add 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`
{% endjetbrains %}
{% webui %}
Some of the example prompts require you to be in a specific context on the {% data variables.product.github %} website. For more information on how to access those contexts, see [Asking {% data variables.copilot.copilot_chat_short %} questions in different contexts](/copilot/using-github-copilot/asking-github-copilot-questions-in-github#asking-copilot-chat-questions-in-different-contexts).
## Ask general software questions
You can ask {% data variables.copilot.copilot_chat_short %} general software questions. For example:
* `tell me about nodejs web server frameworks`
* `how can I create an Express app`
* `what is the best way to update an npm package`
## Ask questions about a repository
You can ask {% data variables.copilot.copilot_chat_short %} questions about a repository. For example:
* `what is the purpose of this repository?`
* `When was the most recent release?`
* `Where is rate limiting implemented in our API?`
* `What was the last merged PR by USERNAME`
## Ask questions about a specific file or symbol
You can ask {% data variables.copilot.copilot_chat_short %} questions about a specific file or symbol. For example:
* `what sorting algorithm does this function use`
* `how are these files related`
* `what is the purpose of this function`
## Ask questions about a knowledge base
You can ask {% data variables.copilot.copilot_chat_short %} questions about a knowledge base. For example:
* `How do I deploy a new application?`
* `What's the process for creating a new REST API?`
* `What are our best practices for logging?`
## Ask questions about a specific piece of code
You can ask {% data variables.copilot.copilot_chat_short %} questions about a specific piece of code. You might ask a question about a whole file, or a specific line. For example:
If you are asking about a whole file, you could enter:
* `Explain this file.`
* `How could I improve this code?`
* `How can I test this script?`
If you are asking about specific lines, you could enter:
* `Explain the function at the selected lines.`
* `How could I improve this class?`
* `Add error handling to this code.`
* `Write a unit test for this method.`
## Ask questions about alerts from {% data variables.product.prodname_GHAS %} products
You can ask {% data variables.copilot.copilot_chat_short %} questions about security alerts in repositories in your organization from {% data variables.product.prodname_GHAS %} features ({% data variables.product.prodname_code_scanning %}, {% data variables.product.prodname_secret_scanning %}, and {% data variables.product.prodname_dependabot_alerts %}). For example:
* `How would I fix this alert?`
* `How many alerts do I have on this pull request?`
* `Which line of code is this {% data variables.product.prodname_code_scanning %} alert referencing?`
* `What library is affected by this {% data variables.product.prodname_dependabot %} alert?`
## Ask {% data variables.copilot.copilot_chat_short %} questions in a pull request
You can ask {% data variables.copilot.copilot_chat_short %} questions in a pull request. Your question could relate to various elements of the pull request For example:
You might ask for a summary of the changes in the pull request:
* `Summarize this PR for me.`
* `Summarize the comments in this PR.`
* `Summarize the changes in this PR.`
You might ask about the changes in a specific file in the pull request:
* `What's the purpose of this file?`
* `Why has this module been included?`
You might ask about the changes in a specific line in the pull request:
* `What is "actorData" in this line?`
* `Explain this "do..end" block.`
You might ask why a workflow failed:
* `Tell me why this job failed`
* `Suggest a fix for this error`
## Ask {% data variables.copilot.copilot_chat_short %} questions about a specific issue or discussion
You can ask {% data variables.copilot.copilot_chat_short %} questions about a specific issue or discussion. For example:
* `what is the purpose of this issue?`
## Ask {% data variables.copilot.copilot_chat_short %} questions about a specific commit
You can ask {% data variables.copilot.copilot_chat_short %} questions about a specific commit. For example:
* `what is the purpose of this commit?`
* `what is the expected output of this commit?`
* `what is the best way to test this commit?`
{% endwebui %}
{% eclipse %}
## Ask general software questions
You can ask {% data variables.copilot.copilot_chat_short %} general software questions. For example:
* `tell me about nodejs web server frameworks`
* `how can I create an Express app`
* `what's the process for updating an npm package`
## Ask questions about files your project
You can ask {% data variables.copilot.copilot_chat_short %} questions about the file that's currently displayed in the editor, or about files you have attached to your conversation in the {% data variables.copilot.copilot_chat_short %} panel. To give {% data variables.product.prodname_copilot_short %} the correct context:
* Open the relevant file in the editor.
* Click the paperclip icon in the {% data variables.copilot.copilot_chat_short %} panel, then search for and select files you want to attach to the conversation.
For example:
* `how can I make this file run faster`
* `how are these files related` (with two or more attached files)
* `explain the getSearchReplaceRules function`
## Write code
You can ask {% data variables.product.prodname_copilot_short %} to write code for you. For example:
* `write a TypeScript function to sum all numbers in a list`
* `using the comments in this file, create appropriate Node JavaScript`
When {% data variables.product.prodname_copilot_short %} returns a code block, the response includes options to copy the code.
## 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 the code in this file`
* `translate this code to C#`
* `add error handling to the main 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`
{% endeclipse %}