Edit

Share via


Get started with GitHub Copilot for Azure Preview

Get started with GitHub Copilot for Azure Preview to streamline your development workflow and enhance your productivity on the Azure platform. This guide walks you through the prerequisites and installation of the GitHub Copilot for Azure extension in Visual Studio Code, so you can write your first prompt.

Prerequisites

To complete the steps in this article, make sure that you have:

Important

GitHub Copilot isn't included in Visual Studio Subscriptions and is a separate subscription managed by GitHub. For questions regarding GitHub Copilot subscriptions and Support, see Individual Subscriptions or Business subscriptions.

Install GitHub Copilot for Azure Preview

  1. In Visual Studio Code, select the Extensions icon.
  2. In the Extensions Marketplace, search for GitHub Copilot for Azure. When the GitHub Copilot for Azure extension appears, select Install.
  3. If you're prompted, sign in to your Azure account.

Write your first prompt

  1. Ensure that the extension is installed, that you're properly authenticated, and that the extension is working correctly.

  2. If the Chat window isn't already open, make sure it's open by either selecting the Toggle Chat button in the menu bar, or select the dropdown next to the Toggle Chat button and select Open Chat (Ctrl+Alt+I).

    Screenshot that shows the Toggle Chat menu open and selecting the Open Chat menu option.

  3. In the chat text area at the bottom of the chat pane, enter the following prompt:

    @azure Do I have any resources currently running?
    

    Screenshot that shows the default ask mode state of the chat pane with an example prompt.

By default, GitHub Copilot uses ask mode. Ask mode provides answers to your prompts in the chat pane. Agent mode enables GitHub Copilot to take action in your workspace.

In ask mode, the @azure part indicates that you want to include the Azure chat participant in the conversation. It scopes your prompt to a specific domain, namely, your Azure account.

The answer to your question depends on what's currently running in Azure in your subscription.

Agent mode

Beginning in Visual Studio Code version 1.99, GitHub Copilot introduced agent mode, an agentic experience that can perform tasks across your entire Visual Studio Code workspace, making edits, executing terminal commands, and so on.

GitHub Copilot for Azure provides "tools" to GitHub copilot to enhance the agentic experience through deep integration with Azure.

In agent mode, you don't need to instruct GitHub Copilot to use GitHub Copilot for Azure with the @azure prefix.

Enable agent mode

You might need to enable agent mode.

  1. In Visual Studio Code, open Settings using the Manage icon (gear).

    Screenshot that shows the Visual Studio Code settings menu by selecting the Manage button.

  2. In the Settings' Search bar, search for chat.agent.enabled.

  3. Check the box next to Chat > Agent: Enabled.

    Screenshot that shows the settings dialog with settings filtered to chat.agent.enabled.

Use agent mode

There are three modes: ask (default), edit and agent. To use agent mode, you must select it in the chat pane.

  1. In the chat pane, in the chat prompt, select the mode dropdown and choose Agent.

    Screenshot that shows the pop-up menu in the Chat box with Agent selected.

  2. The chat pane confirms that you're currently in agent mode.

    Screenshot that shows the chat pane confirming you're now in agent mode.

  3. To see agent mode working, use the following prompt:

    What are your tools?
    

    The completion response displays a list of GitHub Copilot for Azure specific tools available to GitHub Copilot. The response provides a good overview of the kinds of functionality now available to you:

    I can assist you with various tasks using a range of tools. Here are the main tools I have available:
    
    1. Search and Navigation
      Semantic search for code or documentation
      File search using glob patterns
      Text search (grep)
      List directory contents
      Read file contents
      List code usages/references
    
    2. Code Editing and Analysis
      Insert edits into files
      Get errors in code files
      Test search (find test files)
    
    3. Terminal and Git Operations
      Run commands in terminal
      Get terminal output
      Get Git diffs and changed files
    
    4. Project Creation
      Create new workspaces
      Get project setup information
      Install VS Code extensions
      Create new Jupyter Notebooks
    
    5. Web and API Tools
      Fetch webpage content
      Get VS Code API references
    
    6. Azure Tools
      Azure development best practices
      Microsoft Learn documentation
      Azure resource management
      Azure authentication tools
      AI model deployment and management
      Azure Bicep schemas
      Service configuration and deployment
      Azure Developer CLI tools
    
    Would you like me to explain any specific tool in more detail or help you with a particular task?
    
    
  4. The last entry, Azure Developer CLI tools, could be employed with the following prompt:

    What is the az command to list all my storage accounts ordered by location?
    

    The completion to that prompt might generate:

    
    I'll help you generate the Azure CLI command to list all your storage accounts ordered by location. Let me use the Azure CLI generator tool to get the correct syntax for this command.
    
    To list all your storage accounts ordered by location in Azure, you can use the following Azure CLI command:
    
    az storage account list --query "sort_by(@, &location)"
    
    This command will:
    
    1. Retrieve all storage accounts you have access to in your Azure subscription
    2. Sort the results based on the location (Azure region) of each storage account
    3. Display the full details of each storage account in the sorted order
    
    If you'd prefer a more concise output focusing on specific fields, you could modify the query. For example, to show only the name and location in a table format:
    
    az storage account list --query "sort_by(@, &location)[].[name,location]" -o table
    
    Make sure you're logged into the Azure CLI before running this command. If you're not logged in yet, you can do so with az login.
    
    

Enable and disable tools in agent mode

You might want to disable or re-enable certain tools available by GitHub Copilot for Azure.

  1. Select the tool icon in the chat pane.

    Screenshot of chat pane with highlight around the tool icon.

  2. Use the checkbox next to the list of tools to enable / disable tools (or groups of tools).

    Screenshot of the list of tools in Visual Studio Code.

Best practices for working in agent mode

To get better agentic results, consider the following best practices.

  • When prompted, add the copilot-instructions.md file to your workspace.

    Screenshot of the Visual Studio Code notification to add the copilot instructions file to the workspace.

  • Keep your prompts as granular as possible. Instead of a prompt like Generate a Python web application and deploy it to Azure, you should break that up into a few prompts each with a smaller scope of responsibility.

  • Allow GitHub Copilot to do work (instead of doing it yourself). Occasionally, GitHub Copilot asks for permission to perform a task with a "Continue" button. While it's possible for you to perform that task outside of the Chat window, you should allow GitHub Copilot to perform the task instead. This allows GitHub Copilot to retain the context of the current state of its larger plan.

  • Allow GitHub Copilot to repeat itself. Occasionally, GitHub Copilot asks for permission to perform a task repeatedly. It does this to better understand the state of the project files and what it should do next. You should allow GitHub Copilot to repeat tasks it needs to perform.

  • Express your preferences. If GitHub Copilot wants to perform an action but you would prefer it to take a different action, you can instruct it to do it your preferred way. For example, if it wants to create a folder to contain bicep files called \.azure, you could intervene and ask it to use a different folder with a prompt such as:

    Instead of naming the folder `.azure`, please name it `infra`
    

Optional: Set your default tenant

If you have multiple Microsoft Entra ID tenants, You can set a default tenant using the following prompt:

@azure /changeTenant

Select from a list of your available tenants in the top center drop-down.

You can also set the default tenant in the extension settings:

  1. In Visual Studio Code, on the Activity Bar, select Extensions. Then scroll down to GitHub Copilot for Azure.

    Screenshot that shows GitHub Copilot for Azure in the list of extensions in Visual Studio Code.

  2. Select the gear icon in the corner of the extension's entry, and then select Settings from the pop-up menu.

    Screenshot that shows the pop-up menu for GitHub Copilot for Azure.

  3. On the Settings tab, set the Azure Resource Graph tenant to your Microsoft Entra tenant ID. You can find your Microsoft Entra tenant ID in the Azure portal.

    Screenshot that shows the Settings tab with an option to set the Azure Resource Graph tenant.