Skip to content

Latest commit

 

History

History
260 lines (158 loc) · 25.5 KB

copilot-on-github.md

File metadata and controls

260 lines (158 loc) · 25.5 KB
title GitHub Copilot on GitHub.com and GitHub Mobile
allowTitleToDifferFromFilename true
shortTitle {% data variables.product.prodname_copilot_short %} on {% data variables.product.prodname_dotcom_the_website %} and Mobile
intro Move from repository questions to planned code changes and review in one continuous session with {% data variables.product.prodname_copilot %} on {% data variables.product.prodname_dotcom_the_website %} and {% data variables.product.prodname_mobile %}.
versions
feature
copilot
redirect_from
/copilot/concepts/agents/cloud-agent
/copilot/concepts/agents/coding-agent
/copilot/concepts/coding-agent
/copilot/concepts/about-github-copilot-chat
/copilot/concepts/chat
/copilot/github-copilot-enterprise/copilot-chat-in-github/about-github-copilot-chat
/copilot/concepts/agents/cloud-agent/about-cloud-agent
/copilot/concepts/agents/coding-agent/about-coding-agent
/copilot/concepts/about-assigning-tasks-to-copilot
/copilot/using-github-copilot/using-copilot-coding-agent-to-work-on-tasks/about-assigning-tasks-to-copilot
/copilot/using-github-copilot/using-copilot-coding-agent-to-work-on-issues/about-assigning-issues-to-copilot
/copilot/using-github-copilot/using-copilot-coding-agent-to-work-on-issues/about-assigning-tasks-to-copilot
/copilot/using-github-copilot/coding-agent/about-assigning-tasks-to-copilot
/copilot/concepts/about-copilot-coding-agent
/copilot/concepts/coding-agent/about-copilot-coding-agent
/copilot/concepts/coding-agent/coding-agent
contentType concepts
category
Learn about Copilot

On the {% data variables.product.github %} website and {% data variables.product.prodname_mobile %}, {% data variables.product.prodname_copilot %} can answer questions about your repositories, plan and make changes, review pull requests, and automate repository tasks. You can ask questions and delegate work from a conversation, and use {% data variables.product.prodname_copilot_short %} directly in your issue and pull request workflows.

With the new {% data variables.copilot.copilot_in_the_cloud_short %} experience, you can move between web or mobile and local clients ({% data variables.copilot.github_copilot_app_short %}, {% data variables.product.prodname_vscode_shortname %}, or {% data variables.copilot.copilot_cli_short %}), working with and steering {% data variables.product.prodname_copilot_short %} in the same session.

{% data reusables.copilot.copilot-cloud-on-github-note %}

This article explains both the newer {% data variables.copilot.copilot_in_the_cloud_short %} experience and the older {% data variables.copilot.copilot_nonunified_experience_short %}. For a quick overview of what's changing, see Comparison of the two experiences.

How {% data variables.product.prodname_copilot_short %} helps on {% data variables.product.prodname_dotcom_the_website %} and {% data variables.product.prodname_mobile %}

You can combine chat, agentic work, code review, and automations in your repository workflows.

For example, you might use chat to understand how a repository handles authentication, then ask {% data variables.product.prodname_copilot_short %} to plan and add missing tests. Once the changes are in a pull request, you can request a review from {% data variables.product.prodname_copilot_short %}. To maintain test coverage over time, you could set up an automation to check for missing tests each week and propose additions for you to review.

Key concepts for {% data variables.copilot.copilot_in_the_cloud_short %}

{% data variables.copilot.copilot_in_the_cloud_short %} allows for a continuous task flow. {% data variables.product.prodname_copilot_short %} sessions that you start on in a cloud environment on {% data variables.product.github %} can continue seamlessly across different clients, such as the {% data variables.copilot.github_copilot_app %}, your IDE, mobile, and CLI. Your work and context are preserved across these clients, meaning you can move from asking questions to agentic work to task completion, in the same conversation.

Client, session, and environment

There are three key components to understand in the task flow: the client, the session, and the environment.

To start an agent task, you interact with {% data variables.product.prodname_copilot_short %} through a client or surface, such as the web interface, {% data variables.copilot.github_copilot_app %}, IDE, {% data variables.product.prodname_mobile %}, or {% data variables.copilot.copilot_cli %}.

A session is the conversation and activity associated with agentic work, including the prompts you provide and the responses generated by {% data variables.product.prodname_copilot_short %}.

An environment is the place where the agent executes its work, such as a cloud sandbox, a {% data variables.product.prodname_actions %} runner, or a remote custom environment.

For more information, see AUTOTITLE, AUTOTITLE, and AUTOTITLE.

Session context

You can start a chat session with the following contexts automatically attached:

  • All repositories, owned by you or by an organization.
  • A specific file, issue, pull request.
  • A specific repository and branch.
  • A space.

You can attach context with the repository selector, the + menu, or @ mentions.

To let {% data variables.product.prodname_copilot_short %} retrieve information from supported services during a task, use customizations such as {% data variables.product.prodname_copilot_short %} connectors and personal custom Model Context Protocol (MCP) servers.

Session context is distinct from {% data variables.copilot.copilot_memory %}, which builds a longer-term, persistent understanding of your repositories and preferences across sessions. For more information, see AUTOTITLE.

Sessions across surfaces

Choose a cloud sandbox when you want to continue a session across supported {% data variables.product.prodname_copilot_short %} surfaces. You can start a cloud session on one surface and continue it on another.

Comparison of {% data variables.product.prodname_actions %}-based sessions and cloud sandboxes

In {% data variables.copilot.copilot_in_the_cloud_short %}, you have three environment choices: Cloud (a cloud sandbox), {% data variables.product.prodname_actions %}-based, and Remote (a connection to a custom environment).

Initial performance testing on {% data variables.product.github %} indicates that sessions in cloud sandboxes completed execution faster on average than {% data variables.product.prodname_actions %}-based sessions.

The following table compares {% data variables.product.prodname_actions %}-based sessions and cloud sandbox-based sessions.

{% data variables.product.prodname_actions %} Cloud sandbox
Session continuity Sessions are only available on the {% data variables.product.github %} website. Sessions can be shared and resumed across clients.
Repository scoping Sessions require a repository. Changes are made only in the specific, single repository context. Sessions can span across repositories in one organization. Changes can be made across multiple repositories
Chat data retention Data is retained for 28 days. Data is retained for the life of the account.
Custom environments Supports {% data variables.product.prodname_actions %}-specific custom compute, network and setup configuration, and self-hosted runners. Cloud sandboxes honor repository and organization firewall allowlists, but do not support custom compute, {% data variables.product.prodname_actions %}-specific setup steps, or self-hosted runners.
Customizations and tool sharing Supports custom instructions, MCP servers, and content exclusions. Supports custom instructions, dotfiles personalization, repository and personal MCP servers, connectors, and content exclusions with a single configuration across all cloud sandboxes.
Why choose this environment Suitable when you need repository-specific integrations, custom environments, or self-hosted runners. Suitable for cross-repository chat, quick access to AI models, and when custom compute or network configurations are not required in cloud sandboxes.

In the {% data variables.copilot.copilot_in_the_cloud_short %} experience, cloud and {% data variables.product.prodname_actions %} compute draw on the same monthly {% data variables.product.github %} account allowance, separate from {% data variables.product.prodname_ai_credits_short %}. For details, see AUTOTITLE.

Access and availability

Available {% data variables.product.prodname_copilot_short %} features depend on your plan and organization policies. For setup guidance, see AUTOTITLE. For usage allowances and costs, see AUTOTITLE.

Repository owners and administrators can disable {% data variables.product.prodname_copilot_short %} for particular repositories, even when your plan and policies otherwise allow you to use it. Organization and enterprise policies continue to apply. See AUTOTITLE.

To view organization data or sessions, you must meet your organization's single sign-on requirements.

Without write access to a repository, your {% data variables.product.prodname_copilot_short %} session is read-only.

Starting with {% data variables.product.prodname_copilot_short %} on {% data variables.product.prodname_dotcom_the_website %} and {% data variables.product.prodname_mobile %}

You can start working with {% data variables.product.prodname_copilot_short %} from several different entry points:

  • Your {% data variables.product.prodname_copilot_short %} home page at github.com/copilot
  • The {% data variables.product.prodname_copilot_short %} panel, displayed when starting a session within a file, issue, or pull request
  • Your {% data variables.product.github %} dashboard at github.com
  • The Agents tab or panel within a repository

Ways to work with {% data variables.product.prodname_copilot_short %}

You can work with {% data variables.product.prodname_copilot_short %} in several ways:

Asking questions

Chat can explain unfamiliar code, suggest fixes, generate tests, or compare approaches. Follow-up questions let you refine your request without starting a new conversation.

Chat is preconfigured with tools for tasks such as creating branches, updating files, and creating or updating issues. It also supports semantic code search, limited to default branches only.

Agentic work

{% data variables.product.prodname_copilot_short %} can research a repository, plan changes, and implement them in the background. It can edit files and run tests and linters in a cloud development environment, rather than your local IDE.

When you ask for changes, {% data variables.product.prodname_copilot_short %} works against the repository and branch you provided. You can review the proposed changes and ask for refinements before creating a pull request, or request a pull request in your prompt.

{% ifversion security-campaigns-assign-to-cca %} From security campaigns, you can assign code scanning alerts to {% data variables.product.prodname_copilot_short %} for fixes. See AUTOTITLE. {% endif %}

Code review

On {% data variables.product.github %}, {% data variables.copilot.copilot_code-review_short %} reviews pull request changes, identifies potential issues, and suggests fixes. It uses agentic capabilities to gather context from your repository. You can request a review or configure automatic reviews, then review and apply the suggested changes. See AUTOTITLE.

{% data variables.product.prodname_copilot_short %} can also generate a summary of your changes directly in a pull request description or comment. This helps reviewers understand the changes, but is separate from reviewing the code. See AUTOTITLE.

Getting pull requests ready to merge

With {% data variables.copilot.agent_merge %}, {% data variables.product.prodname_copilot_short %} watches a pull request and works on the blockers you select: failed {% data variables.product.prodname_actions %} workflows, merge conflicts, or both. Enable it with Watch and fix in the pull request's merge box. You can also enable it automatically for pull requests you create. See AUTOTITLE.

Automations and agentic workflows

{% data variables.copilot.copilot_automations_cap %} let you define a task once and have {% data variables.product.prodname_copilot_short %} run it on a schedule or in response to repository events. For example, an automation can triage issues or prepare weekly release notes. You create and manage automations from the Agents tab in a repository on {% data variables.product.prodname_dotcom_the_website %}. Automations are available in eligible private and internal repositories. See AUTOTITLE.

{% data variables.copilot.github_agentic_workflows %} provide another way to automate tasks in your repositories on {% data variables.product.prodname_dotcom_the_website %}. You define tasks in natural language in Markdown files, and they run as {% data variables.product.prodname_actions %} workflows. These workflows can use {% data variables.product.prodname_copilot_short %} or another supported coding agent. See AUTOTITLE.

Session history and remote control

On {% data variables.product.github %}, session logs show the work and tools used. Shared sessions and pull requests let teammates with repository access follow the work and review changes. Logs do not replace your own review and testing. See AUTOTITLE.

To monitor and steer a session started from {% data variables.copilot.copilot_cli %}, enable remote control. The session continues running on your original local machine, which must stay online. See AUTOTITLE.

You can ask {% data variables.product.prodname_copilot_short %} about your synced session history across {% data variables.product.prodname_copilot_short %} surfaces. This includes {% data variables.copilot.copilot_in_the_cloud_short %} and {% data variables.copilot.copilot_code-review_short %} sessions, and sessions from {% data variables.copilot.copilot_cli %}, {% data variables.product.prodname_vscode_shortname %}, {% data variables.product.prodname_jetbrains_ides %}, and the {% data variables.copilot.github_copilot_app %}.

You can only query sessions you started. Syncing must be enabled and permitted by your organization's policies. See Query past sessions.

Customize your experience

There are several ways to customize your experience with {% data variables.product.prodname_copilot_short %}.

Instructions, tools, and shared context

On {% data variables.product.github %}, custom instructions let you save personal preferences for chat, repository conventions, and organization guidance.

{% data variables.copilot.copilot_spaces %} organize shared context for questions.

For delegated work, {% data variables.copilot.custom_agents_short %} and agent skills provide task-specific instructions and resources. MCP servers connect agents to additional tools and data.

Hooks can run commands during agent work for validation or logging. For setup guidance, see AUTOTITLE.

Customizations for {% data variables.copilot.copilot_in_the_cloud_short %}

In cloud sandboxes, you can also use a dotfiles repository to bring your personal instructions, skills, and custom agents to your sessions across repositories. This dotfiles personalization does not apply to {% data variables.product.prodname_actions %}-based sessions. For setup guidance, see AUTOTITLE.

To bring tools and context into {% data variables.product.prodname_copilot_short %}, you can access third-party services through {% data variables.product.github %} connectors. Connectors are available to all your {% data variables.copilot.copilot_in_the_cloud_short %} sessions. You can also configure personal MCP server configurations to allow {% data variables.product.prodname_copilot_short %} access to your personal tools and context. These customizations do not apply to {% data variables.product.prodname_actions %}-based sessions. See AUTOTITLE and AUTOTITLE.

Some existing {% data variables.copilot.copilot_spaces_short %} that include data from multiple organizations or mix private and organization data may not work the same way in {% data variables.copilot.copilot_in_the_cloud_short %}. For steps to restore chat use in {% data variables.copilot.copilot_spaces_short %} containing incompatible private sources, see AUTOTITLE.

AI models

{% data reusables.copilot.change-the-ai-model %}

On {% data variables.product.prodname_dotcom_the_website %} and {% data variables.product.prodname_mobile %}, available models depend on your plan and account policies. See AUTOTITLE.

For {% data variables.copilot.copilot_in_the_cloud_short %}, the ability to select a model also depends on how you start the task. See AUTOTITLE.

{% data variables.product.prodname_copilot_short %} limitations and compatibility

{% data variables.product.prodname_copilot_short %} can produce incorrect or suboptimal code, including code that contains security vulnerabilities. Review and test the output before using it in production. See AUTOTITLE.

For information about built-in security protections, see AUTOTITLE.

{% data variables.product.prodname_copilot_short %} work limitations

  • Repository scope: When {% data variables.product.prodname_copilot_short %} runs on {% data variables.product.prodname_actions %}, {% data variables.product.prodname_copilot_short %} can only make changes in the repository specified when you start a task. It cannot make changes across multiple repositories in one run. However, sessions that run in a cloud sandbox can work across multiple repositories.
  • Context access: In {% data variables.product.prodname_actions %}-based sessions, the {% data variables.product.github %} MCP server only provides access by default to context in the repository where the agent is working, such as issues and previous pull requests. You can configure broader access through repository MCP settings. See AUTOTITLE. For sessions in cloud sandboxes, you can give additional context by configuring access to third-party services through {% data variables.product.github %} connectors and personal custom MCP servers, see AUTOTITLE and AUTOTITLE.
  • Branches and pull requests: In {% data variables.product.prodname_actions %}-based sessions and cloud sandbox sessions, {% data variables.product.prodname_copilot_short %} can only work on one branch at a time and can open one pull request per task.
  • Session duration: Each {% data variables.product.prodname_copilot_short %} session that runs on {% data variables.product.prodname_actions %} has a maximum execution time of 59 minutes. This limit cannot be extended or bypassed. If a task exceeds the limit, the session stops. For environment configuration details, see AUTOTITLE.

Repository compatibility

  • Repository rules: A ruleset or branch protection rule can prevent {% data variables.product.prodname_copilot_short %} from creating or updating pull requests. Repository administrators can configure a ruleset bypass for {% data variables.product.prodname_copilot_short %}. See AUTOTITLE.
  • Repository hosting: {% data variables.product.prodname_copilot_short %} only works with repositories hosted on {% data variables.product.github %}. It cannot work on repositories stored on other code hosting platforms.

The older experience

The newer {% data variables.copilot.copilot_in_the_cloud_short %} experience differs from the older {% data variables.copilot.copilot_nonunified_experience_short %} in several key aspects, including default environments, policies, what session choices are available. Session context and customizations also differ.

Comparison of the two experiences

{% data variables.copilot.copilot_nonunified_experience_short %} {% data variables.copilot.copilot_in_the_cloud_short %}
Default environment All web entry points for agents, including a repository's Agents tab, default to an {% data variables.product.prodname_actions %}-based environment. Cloud is the default where an environment choice is offered. Defaults can vary by workflow, so check the selected environment before starting.
Policies Separate policies for {% data variables.product.prodname_copilot_short %} features such as {% data variables.copilot.copilot_cloud_agent_short %} and {% data variables.copilot.copilot_chat_dotcom_short %}. A single organization and enterprise policy for {% data variables.copilot.copilot_in_the_cloud_short %} on {% data variables.product.prodname_dotcom_the_website %} and {% data variables.product.prodname_mobile %}.
Session choice Chat conversations and delegated cloud agent tasks are separate sessions. Agent tasks started from {% data variables.copilot.copilot_chat_short %} run in an {% data variables.product.prodname_actions %}-based environment. You can choose where the chat and agent session runs, either in a cloud sandbox or an {% data variables.product.prodname_actions %}-based environment.

Session context

You can start a chat session with the following contexts automatically attached:

  • A specific file, issue, pull request.
  • A specific repository and branch.

You cannot start a chat session with multiple repositories automatically attached.

To start a conversation with the context of multiple repositories, manually select repositories owned by you or by an organization with repository selector.

You can attach other session context with the + menu, or @ mentions.

When starting a session from {% data variables.copilot.copilot_chat_short %}, you can't choose an environment; your session runs on {% data variables.product.prodname_actions %} automatically.

Sessions across surfaces

Some context, permissions, and configuration can carry between surfaces. The settings and context that apply depend on the {% data variables.product.prodname_copilot_short %} feature and the surface you use.

Customizations

Custom instructions let you save personal preferences for chat, repository conventions, and organization guidance.

Copilot Spaces organize shared context for questions.

For delegated work, custom agents and agent skills provide task-specific instructions and resources. Repository MCP servers connect agents to additional tools and data.

Hooks can run commands during agent work for validation or logging.

Further reading

  • AUTOTITLE
  • AUTOTITLE how-to guides
  • AUTOTITLE
  • For delegating work from tools such as Microsoft Teams and Slack, see AUTOTITLE.
  • For organization and enterprise metrics on pull request creation, merges, and time to merge, see AUTOTITLE.