| 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 |
|
||||||||||||||||
| redirect_from |
|
||||||||||||||||
| contentType | concepts | ||||||||||||||||
| category |
|
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.
{% 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.
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.
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.
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.
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.
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
You can work with {% data variables.product.prodname_copilot_short %} in several ways:
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.
{% 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 %}
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.
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.
{% 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.
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.
There are several ways to customize your experience with {% data variables.product.prodname_copilot_short %}.
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.
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.
{% 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 %} 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.
- 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 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 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.
| {% 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. |
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.
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.
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.