diff --git a/content/apps/using-github-apps/about-using-github-apps.md b/content/apps/using-github-apps/about-using-github-apps.md index 3866ca130c35..69c8a5fa2450 100644 --- a/content/apps/using-github-apps/about-using-github-apps.md +++ b/content/apps/using-github-apps/about-using-github-apps.md @@ -35,8 +35,21 @@ Occasionally, the {% data variables.product.prodname_github_app %} will request Before you install or authorize a {% data variables.product.prodname_github_app %}, you should make sure that you trust the app developer. If you no longer use the app, you should suspend or uninstall the app and/or revoke your authorization of the app. For more information, see [AUTOTITLE](/apps/using-github-apps/reviewing-and-modifying-installed-github-apps#blocking-access) and [AUTOTITLE](/apps/using-github-apps/reviewing-your-authorized-integrations). -## {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %} +{% ifversion fpt or ghec %} + +## {% data variables.copilot.agent_apps_caps %} + +> [!NOTE] {% data reusables.copilot.agent-apps-preview %} + +{% data reusables.copilot.agent-apps-intro %} Powered by {% data variables.copilot.copilot_cloud_agent %}, you can trigger these agents from issues, pull requests, and the Agents UI. +When you install an {% data variables.copilot.agent_app %}, you will be asked if you want to enable agent features. For more information, see [AUTOTITLE](/copilot/concepts/agents/agent-apps). + +If the app is installed in an organization owned by an enterprise, an administrator must also enable the "{% data variables.copilot.agent_apps %}" {% data variables.product.prodname_copilot_short %} policy before the agent features become available. + +{% endif %} + +## {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %} {% data variables.product.company_short %} also supports {% data variables.product.prodname_oauth_apps %}. Unlike {% data variables.product.prodname_github_apps %}, you do not install an {% data variables.product.prodname_oauth_app %} or control what repositories it can access. Both {% data variables.product.prodname_oauth_apps %} and {% data variables.product.prodname_github_apps %} use OAuth 2.0. diff --git a/content/billing/concepts/billing-cycles.md b/content/billing/concepts/billing-cycles.md index 417dd2dd3945..dc782cf461c4 100644 --- a/content/billing/concepts/billing-cycles.md +++ b/content/billing/concepts/billing-cycles.md @@ -35,6 +35,13 @@ For example, if you started a paid plan or converted from a trial on the 15th of > [!NOTE] > From **December 1, 2025**, all self-serve, metered {% data variables.product.prodname_ghe_cloud %} accounts that pay by credit card will migrate to a **billing date** of 1st of the month. See [Billing date standardized to the first of the month for self-serve credit card metered Enterprise customers](https://github.blog/changelog/2025-11-17-billing-date-standardized-to-the-first-of-the-month-for-self-serve-credit-card-metered-enterprise-customers-now-generally-available/) in the changelog. +## Billing cycle for {% data variables.copilot.sandbox %} during public preview + +During {% data variables.release-phases.public_preview %}, eligible accounts receive a **$10 monthly entitlement** for cloud sandbox usage in **June 2026**. The entitlement applies as follows: + +* Usage above the entitlement is metered against your standard billing cycle and billed on your normal billing date. +* The entitlement is discontinued after June 2026. Pricing and packaging after the preview is subject to change. + ## Billing cycles for volume-based products Volume-based licenses may follow a different billing cycle. These products are often billed based on the anniversary date of your subscription rather than by calendar month. @@ -66,5 +73,6 @@ Find product-specific guidance on how usage is calculated and billed. * [AUTOTITLE](/billing/managing-billing-for-your-products/managing-billing-for-github-codespaces/about-billing-for-github-codespaces) * [AUTOTITLE](/billing/managing-billing-for-your-products/managing-billing-for-github-packages/about-billing-for-github-packages) * [AUTOTITLE](/billing/managing-billing-for-your-products/managing-billing-for-github-copilot/about-billing-for-github-copilot) +* [AUTOTITLE](/billing/concepts/product-billing/cloud-and-local-sandboxes) * [AUTOTITLE](/billing/managing-billing-for-your-products/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/about-visual-studio-subscriptions-with-github-enterprise#about-licenses-for-visual-studio-subscriptions-with-github-enterprise-cloud) * [AUTOTITLE](/billing/managing-billing-for-your-products/managing-billing-for-git-large-file-storage/about-billing-for-git-large-file-storage) diff --git a/content/billing/concepts/budgets-and-alerts.md b/content/billing/concepts/budgets-and-alerts.md index 3219b53ff81f..5406c9a38bf8 100644 --- a/content/billing/concepts/budgets-and-alerts.md +++ b/content/billing/concepts/budgets-and-alerts.md @@ -17,7 +17,7 @@ By setting a monthly budget, you can monitor your spending and receive notificat For most license-based products such as {% data variables.product.prodname_copilot %}, {% data variables.product.prodname_team %}, and {% data variables.product.prodname_enterprise %}, setting a budget does not prevent usage over the budget amount but does provide alerts. {% data variables.product.prodname_GHAS %} SKUs are an exception to this, as they can be set to stop usage when the budget amount is reached. See [AUTOTITLE](/billing/concepts/product-billing/github-advanced-security#hard-budgets-for-github-advanced-security-skus). -For metered products such as {% data variables.product.prodname_actions %} or {% data variables.product.prodname_copilot_short %} {% data variables.product.prodname_ai_credits_short %}, you can set budgets to prevent usage once the budget threshold is reached. +For metered products such as {% data variables.product.prodname_actions %}, {% data variables.product.prodname_copilot_short %} {% data variables.product.prodname_ai_credits_short %}, or cloud sandboxes, you can set budgets to prevent usage once the budget threshold is reached. ## Types and scopes diff --git a/content/billing/concepts/product-billing/cloud-and-local-sandboxes.md b/content/billing/concepts/product-billing/cloud-and-local-sandboxes.md new file mode 100644 index 000000000000..808e830cf366 --- /dev/null +++ b/content/billing/concepts/product-billing/cloud-and-local-sandboxes.md @@ -0,0 +1,87 @@ +--- +title: Billing for {% data variables.copilot.sandbox %} +shortTitle: Cloud and local sandboxes +intro: 'Learn how usage of {% data variables.copilot.sandbox %} is measured and billed.' +versions: + fpt: '*' + ghec: '*' +contentType: concepts +category: + - Understand product costs +--- + +{% data reusables.cli.public-preview-sandbox %} + +## How {% data variables.copilot.sandbox %} usage is measured + +Billing applies to cloud sandboxing only. Local sandboxing is included in the standard {% data variables.product.prodname_copilot %} seat at no additional cost. + +A cloud sandbox session incurs charges across three meters: + +* **Compute**: the time a cloud sandbox session is running. +* **Memory**: the memory allocated to a cloud sandbox session while it is running. +* **Storage**: snapshot storage for stopped sessions. + +Usage is measured from the moment a session starts until it is stopped or deleted. Memory is measured based on the memory allocated to the session, not the memory actively in use. + +### Compute + +The compute meter tracks the time a cloud sandbox is running. Compute is not metered while a sandbox is stopped. + +### Memory + +The memory meter tracks the memory allocated to a cloud sandbox while it is running. Memory is not metered while a sandbox is stopped. + +### Storage + +The storage meter tracks snapshot storage for stopped sessions. When you stop {% data variables.copilot.sandbox_short %}, {% data variables.product.github %} retains a snapshot of the sandbox's state so you can resume it later. Snapshot storage is metered from the time the sandbox is stopped until the sandbox is deleted. + +For more information about {% data variables.copilot.sandbox %}, see [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes). + +## Free and billed use + +During public preview, eligible {% data variables.product.github %} accounts receive a **$10 monthly entitlement** to try cloud sandboxes. This entitlement is available for June 2026. Any usage beyond the monthly entitlement is billed to your account. + +After the preview period ends, the entitlement no longer applies and all usage is billed. + +## Paying for use + +You pay for cloud sandboxes using the payment method set up for your {% data variables.product.github %} account. See [AUTOTITLE](/billing/how-tos/set-up-payment/manage-payment-info). + +### Pricing + +| Meter | Description | Unit | Price (USD) | +| --- | --- | --- |------------| +| Compute | Time that a cloud sandbox session is running. | Compute second | $0.000024 | +| Memory | Memory allocated to a cloud sandbox session while it is running. | GiB second | $0.000003 | +| Storage | Snapshot storage for stopped sessions. | GiB month | $0.005 | + +## How costs are assigned to a billable account + +Cloud sandbox usage is billed to the organization that owns the sandbox. When you create a cloud sandbox session with `copilot --cloud`, you are prompted to select the owning organization. All usage for that session is billed to the selected organization. + +## Managing your budget for cloud sandboxes + +{% data reusables.billing.default-over-quota-behavior %} + +You can set budgets and alerts to monitor and control your cloud sandbox spending. For more information, see [AUTOTITLE](/billing/concepts/budgets-and-alerts) and [AUTOTITLE](/billing/how-tos/set-up-budgets). + +When you create a budget for cloud sandboxes, you can choose between two budget types: + +* **Product-level budget**: caps spending across all cloud sandbox usage, regardless of SKU. +* **SKU-level budget**: caps spending for a specific cloud sandbox SKU (for example, "Sandbox Linux"). For a full list of cloud sandbox SKUs, see [AUTOTITLE](/billing/reference/product-and-sku-names). + +If you enable **Stop usage when budget limit is reached**, additional cloud sandbox usage is blocked once the budget reaches 100%, and a banner notifies users in the affected scope. + +> [!NOTE] +> {% data variables.copilot.sandbox_caps %} is not part of the "Bundled AI credits" budget type. Bundled AI credits budgets apply only to SKUs that consume AI credits (such as {% data variables.product.prodname_copilot %} AI credits, cloud agent AI credits, and {% data variables.product.prodname_spark %} AI credits). To control cloud sandbox spending, use a product-level or SKU-level budget. + +## Viewing your {% data variables.copilot.sandbox %} usage + +To view your cloud sandbox usage, billable amounts, and the monthly preview entitlement, see [AUTOTITLE](/billing/how-tos/products/estimate-spending) and [AUTOTITLE](/billing/tutorials/gather-insights). + +## Further reading + +* [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes) +* [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-copilot-cli) +* [AUTOTITLE](/billing/get-started/how-billing-works) diff --git a/content/billing/concepts/product-billing/index.md b/content/billing/concepts/product-billing/index.md index f61c3f9fda4c..ed6d015f8033 100644 --- a/content/billing/concepts/product-billing/index.md +++ b/content/billing/concepts/product-billing/index.md @@ -15,6 +15,7 @@ children: - /github-copilot-licenses - /github-models - /github-packages + - /cloud-and-local-sandboxes - /git-lfs - /github-spark contentType: concepts diff --git a/content/billing/reference/product-and-sku-names.md b/content/billing/reference/product-and-sku-names.md index 43ba50b58acc..c218851b4f28 100644 --- a/content/billing/reference/product-and-sku-names.md +++ b/content/billing/reference/product-and-sku-names.md @@ -22,6 +22,7 @@ For **ProductPricing** budgets or to query usage by product, use one of the foll * `copilot` - {% data variables.product.prodname_copilot %} * `ghas` - {% data variables.product.prodname_GH_advanced_security %} * `ghec` - {% data variables.product.prodname_ghe_cloud %} +* `sandbox` - {% data variables.copilot.sandbox_caps %} ## SKU-level identifiers @@ -93,6 +94,12 @@ For **SkuPricing** budgets or to query usage by SKU, use one of the following va * `ghas_licenses` - GHAS licenses * `ghas_secret_protection_licenses` - GHAS secret protection licenses +### {% data variables.copilot.sandbox_caps %} SKUs + +* `sandbox_linux` - {% data variables.copilot.sandbox_short_caps %} Linux +* `sandbox_memory` - {% data variables.copilot.sandbox_short_caps %} Memory +* `sandbox_snapshot` - {% data variables.copilot.sandbox_short_caps %} Snapshot + ### Other SKUs * `ghec_licenses` - {% data variables.product.prodname_ghe_cloud %} licenses diff --git a/content/copilot/concepts/about-cloud-and-local-sandboxes.md b/content/copilot/concepts/about-cloud-and-local-sandboxes.md new file mode 100644 index 000000000000..da603f80c389 --- /dev/null +++ b/content/copilot/concepts/about-cloud-and-local-sandboxes.md @@ -0,0 +1,115 @@ +--- +title: About {% data variables.copilot.sandbox %} +shortTitle: Cloud and local sandboxes +allowTitleToDifferFromFilename: true +intro: '{% data variables.copilot.sandbox_caps %} provide isolated execution environments that let {% data variables.product.prodname_copilot_short %} safely interact with code, tools, filesystem, and network resources securely on your local machine or in fully isolated cloud environments.' +versions: + feature: copilot +redirect_from: + - /copilot/concepts/about-github-sandbox +contentType: concepts +category: + - Learn about Copilot + - Learn about Copilot CLI +docsTeamMetrics: + - copilot-cli +--- + +{% data reusables.cli.public-preview-sandbox %} + +## Introduction + +{% data variables.copilot.sandbox_caps %} are the execution platform powering secure sandboxed experiences for {% data variables.copilot.copilot_cli %}, both locally and in the cloud. As {% data variables.product.prodname_copilot_short %} takes more actions on your behalf—running tools, executing commands, and modifying files—{% data variables.copilot.sandbox_short %} provide the isolation, portability, and policy controls needed to adopt agentic workflows safely. {% data variables.copilot.sandbox_caps %} currently apply to {% data variables.copilot.copilot_cli_short %} sessions, and you can also use cloud sandboxes for sessions in the {% data variables.copilot.github_copilot_app %}. + +With {% data variables.copilot.sandbox %}, you can choose where {% data variables.product.prodname_copilot_short %} runs: + +* **Local sandboxing**: Run {% data variables.product.prodname_copilot_short %} securely on your own machine, with restricted access to filesystem, network, and system capabilities. +* **Cloud sandboxing**: Run {% data variables.product.prodname_copilot_short %} inside fully isolated, ephemeral Linux environments hosted by {% data variables.product.github %}. + +## Local sandboxing + +Local sandboxing lets {% data variables.product.prodname_copilot_short %} run in a sandboxed environment directly on your machine, with restricted access to your filesystem, network connectivity, and system capabilities. + +### Enabling local sandboxing + +To enable local sandboxing inside a {% data variables.copilot.copilot_cli_short %} session, run: + +```shell copy +/sandbox enable +``` + +Once enabled, commands that {% data variables.product.prodname_copilot_short %} executes on your behalf run inside the sandbox, limiting their access to your system. + +### Cross-platform support + +Local sandboxing is available across macOS, Linux, and Windows, delivering a consistent isolation experience regardless of your operating system. + +### Enterprise policy enforcement + +For organizations and enterprises, local sandbox policies can be centrally configured and enforced using Microsoft Intune and other MDM (mobile device management) platforms. This gives administrators control over how {% data variables.product.prodname_copilot_short %} interacts with local resources across managed devices. + +## Cloud sandboxing + +Cloud sandboxing lets you run {% data variables.copilot.copilot_cli_short %} sessions inside fully isolated, ephemeral Linux environments hosted by {% data variables.product.github %}. Each cloud sandbox session is isolated from your local environment and from other sessions. + +Cloud sandboxing is built on Azure Container Apps Sandboxes, with {% data variables.product.github %} providing the identity, policy, and billing layer. + +### Starting a cloud sandbox session + +To start a cloud-backed session, run the following command: + +```shell copy +copilot --cloud +``` + +This launches an interactive {% data variables.copilot.copilot_cli_short %} session inside a cloud sandbox. You can prompt {% data variables.product.prodname_copilot_short %} to perform tasks, run shell commands, and iterate on code, the same way you would in a local session. The commands that {% data variables.product.prodname_copilot_short %} runs execute in the cloud environment, not on your local machine. + +### Continue sessions across devices + +Because cloud sandbox sessions run in {% data variables.product.github %}-hosted infrastructure, you can pick up a {% data variables.product.prodname_copilot_short %} session on any device, regardless of where the session was originally started. This enables more flexible workflows without needing to copy files or reinstall dependencies. + +### Offload compute-intensive workflows + +You can run multiple {% data variables.product.prodname_copilot_short %} tasks in parallel in the cloud without consuming local resources. This keeps your local environment lightweight and responsive while scaling agent-driven work. + +### Unified governance + +Cloud sandbox policies share the same configuration as {% data variables.copilot.copilot_cloud_agent %} policies, extending existing security controls to cloud sandboxed execution without additional setup. + +### Session lifecycle + +A cloud sandbox session has three main states: + +* **Active**: The session is running, and you are interacting with it from {% data variables.copilot.copilot_cli_short %}. +* **Stopped**: The session is not currently running, but its state is saved. When you resume it, your files, environment variables, and in-progress work are restored. +* **Deleted**: The session and its saved state are removed and cannot be recovered. + +When you stop a session, the cloud sandbox creates a snapshot of its state so you can pick up where you left off later. When you delete a session, both the running environment and the snapshot are removed. + +## Authentication and access + +{% data variables.copilot.sandbox_short_caps %} use your existing {% data variables.copilot.copilot_cli_short %} authentication. If you can sign in to {% data variables.copilot.copilot_cli_short %} and have access to {% data variables.product.prodname_copilot_short %}, you can use {% data variables.copilot.sandbox_short %}. You don't need to configure a separate cloud provider, manage API keys, or set up infrastructure. + +An organization or enterprise owner must enable the **Cloud Sandbox access** policy in the organization or enterprise settings before members can use {% data variables.copilot.sandbox_short %}. + +For information about signing in to {% data variables.copilot.copilot_cli_short %}, see [AUTOTITLE](/copilot/how-tos/set-up/install-copilot-cli). + +## Billing + +Local sandboxing is included in the standard {% data variables.product.prodname_copilot %} seat at no additional cost. + +Cloud sandboxing is billed based on usage. {% data variables.product.github %} measures cloud sandbox usage across three meters: + +| Meter | Description | Unit | Price (USD) | +| --- | --- | --- |------------| +| Compute | Time that a cloud sandbox session is running. | Compute second | $0.000024 | +| Memory | Memory allocated to a cloud sandbox session while it is running. | GiB second | $0.000003 | +| Storage | Snapshot storage for stopped sessions. | GiB month | $0.005 | + +For more information about how cloud sandbox usage is measured and billed, see [AUTOTITLE](/billing/concepts/product-billing/cloud-and-local-sandboxes). + +## Further reading + +* [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-copilot-cli) +* [AUTOTITLE](/copilot/how-tos/cloud-and-local-sandboxes/enabling-or-disabling-cloud-and-local-sandboxes-for-your-organization) +* [AUTOTITLE](/copilot/how-tos/set-up/install-copilot-cli) diff --git a/content/copilot/concepts/agents/about-agent-skills.md b/content/copilot/concepts/agents/about-agent-skills.md index f40f9c293309..82c766c34343 100644 --- a/content/copilot/concepts/agents/about-agent-skills.md +++ b/content/copilot/concepts/agents/about-agent-skills.md @@ -12,7 +12,7 @@ contentType: concepts --- > [!NOTE] -> Agent skills work with {% data variables.copilot.copilot_cloud_agent %}, the {% data variables.copilot.copilot_cli %}, and agent mode in {% data variables.product.prodname_vscode %}. +> Agent skills work with {% data variables.copilot.copilot_cloud_agent %}, {% data variables.copilot.copilot_code-review_short %}, the {% data variables.copilot.copilot_cli %}, and agent mode in {% data variables.product.prodname_vscode %}. ## About agent skills diff --git a/content/copilot/concepts/agents/about-third-party-agents.md b/content/copilot/concepts/agents/about-third-party-coding-agents.md similarity index 88% rename from content/copilot/concepts/agents/about-third-party-agents.md rename to content/copilot/concepts/agents/about-third-party-coding-agents.md index 5977df96ebd9..e7a1ae54b5fc 100644 --- a/content/copilot/concepts/agents/about-third-party-agents.md +++ b/content/copilot/concepts/agents/about-third-party-coding-agents.md @@ -1,11 +1,14 @@ --- -title: About third-party agents -shortTitle: Third-party agents -intro: 'You can incorporate coding agents into your development workflows on {% data variables.product.github %}.' -product: '{% data reusables.gated-features.third-party-agents %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' +title: About third-party coding agents +allowTitleToDifferFromFilename: true +shortTitle: Third-party coding agents +intro: 'You can use third-party coding agents alongside {% data variables.copilot.copilot_cloud_agent %} to work asynchronously on your development tasks on {% data variables.product.github %}.' +product: '{% data reusables.copilot.plans.permission-paid-plans-no-purchase-link %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' versions: feature: copilot contentType: concepts +redirect_from: + - /copilot/concepts/agents/about-third-party-agents --- > [!NOTE] Third-party coding agents are currently in {% data variables.release-phases.public_preview %}. @@ -28,9 +31,6 @@ You can kick off tasks with coding agents in the following locations: ### Making coding agents available -> [!NOTE] -> {% data reusables.gated-features.third-party-agents %} - Before you can assign tasks to coding agents on {% data variables.product.github %}, they must be enabled in your account policies. * For **{% data variables.copilot.copilot_pro %}, {% data variables.copilot.copilot_pro_plus %}, and {% data variables.copilot.copilot_max %} subscribers**, see [AUTOTITLE](/copilot/how-tos/manage-your-account/manage-policies#enabling-or-disabling-third-party-agents-in-your-repositories). diff --git a/content/copilot/concepts/agents/agent-apps.md b/content/copilot/concepts/agents/agent-apps.md new file mode 100644 index 000000000000..d323807acbaf --- /dev/null +++ b/content/copilot/concepts/agents/agent-apps.md @@ -0,0 +1,49 @@ +--- +title: About agent apps +shortTitle: Agent apps +allowTitleToDifferFromFilename: true +intro: '{% data variables.copilot.agent_apps_caps %} let you use partner-built agents directly in your workflows on {% data variables.product.github %}, powered by your {% data variables.product.prodname_copilot_short %} subscription.' +product: '{% data reusables.copilot.plans.permission-paid-plans-no-purchase-link %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' +versions: + feature: copilot +contentType: concepts +--- + +> [!NOTE] {% data reusables.copilot.agent-apps-preview %} + +## Introduction + +{% data reusables.copilot.agent-apps-intro %} {% data variables.copilot.agent_apps_caps %} are powered by {% data variables.copilot.copilot_cloud_agent %}. To learn more, see [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent). + +For example, an {% data variables.copilot.agent_app %} could analyze your product analytics, scan your application for security vulnerabilities, or add feature flags to a pull request, then connect back to the partner's systems to complete the task. + +## Where you can use {% data variables.copilot.agent_apps %} + +{% data reusables.copilot.agent-apps-entrypoints %} + +You can use these entry points in the same way as you use {% data variables.copilot.copilot_cloud_agent %} and other third-party coding agents. For more information, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/use-agent-apps). + +## How {% data variables.copilot.agent_apps %} work + +An {% data variables.copilot.agent_app %} is a {% data variables.product.prodname_github_app %} that a partner has configured to act as an agent. Each {% data variables.copilot.agent_app %} can define a custom agent with its own prompt, model, tools, and Model Context Protocol (MCP) servers. To learn more about custom agents and MCP, see [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-custom-agents) and [AUTOTITLE](/copilot/concepts/agents/cloud-agent/mcp-and-cloud-agent). + +{% data variables.copilot.agent_apps_caps %} can connect to the partner's own systems through MCP servers. These MCP servers authorize the {% data variables.copilot.agent_app %} using a JWT assertion issued by {% data variables.product.github %}, so the partner can securely identify your account and their {% data variables.copilot.agent_app %} without you managing additional credentials. + +The first time you use an {% data variables.copilot.agent_app %}, you are asked to authorize the app through an OAuth flow before the agent runs. This lets the {% data variables.copilot.agent_app %} act on your behalf and access the partner's functionality. For more information about authorizing apps, see [AUTOTITLE](/apps/using-github-apps/authorizing-github-apps). + +## Installing and enabling {% data variables.copilot.agent_apps %} + +To use an {% data variables.copilot.agent_app %}, the {% data variables.product.prodname_github_app %} must be installed on your account or organization, and agent features must be enabled for the app. If the app is installed in an organization owned by an enterprise, the "{% data variables.copilot.agent_apps_caps %}" {% data variables.product.prodname_copilot_short %} policy must also be enabled in your enterprise {% data variables.product.prodname_copilot_short %} settings. + +* When you install an {% data variables.copilot.agent_app %}, {% data variables.product.github %} highlights that the app includes agent features and asks you if you want to enable them. For more information, see [AUTOTITLE](/apps/using-github-apps/about-using-github-apps). +* If the app is installed in an organization owned by an enterprise, an administrator must also enable the "{% data variables.copilot.agent_apps %}" {% data variables.product.prodname_copilot_short %} policy before the agent features become available. For more information, see the "Next steps" section. + +## Billing + +{% data reusables.copilot.agent-apps-billing %} + +## Next steps + +* To learn about using an {% data variables.copilot.agent_app %}, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/use-agent-apps). +* To install an {% data variables.copilot.agent_app %} and opt in to its agent features, see [AUTOTITLE](/apps/using-github-apps/about-using-github-apps). +* To enable using {% data variables.copilot.agent_apps %} in an organization owned by an enterprise, an administrator must enable the "{% data variables.copilot.agent_apps %}" policy at the enterprise level before you can use it. See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/enable-copilot-cloud-agent#enabling-agent-apps-and-third-party-agents). diff --git a/content/copilot/concepts/agents/anthropic-claude.md b/content/copilot/concepts/agents/anthropic-claude.md index ce38a9e05ced..3a602de0057c 100644 --- a/content/copilot/concepts/agents/anthropic-claude.md +++ b/content/copilot/concepts/agents/anthropic-claude.md @@ -16,9 +16,9 @@ The {% data variables.product.prodname_anthropic_claude %} coding agent uses the ## {% data variables.product.prodname_anthropic_claude %} coding agent -Before you can assign tasks to {% data variables.product.prodname_anthropic_claude %} coding agent, it must be enabled. See [AUTOTITLE](/copilot/how-tos/manage-your-account/manage-policies#enabling-or-disabling-third-party-agents-in-your-repositories). +Before you can assign tasks to {% data variables.product.prodname_anthropic_claude %} coding agent, it must be enabled. See [AUTOTITLE](/copilot/how-tos/manage-your-account/manage-policies#enabling-or-disabling-third-party-coding-agents-in-your-repositories). -To learn more about using third-party coding agents, see [AUTOTITLE](/copilot/concepts/agents/about-third-party-agents). +To learn more about using third-party coding agents, see [AUTOTITLE](/copilot/concepts/agents/about-third-party-coding-agents). ### Supported models diff --git a/content/copilot/concepts/agents/cloud-agent/about-automations.md b/content/copilot/concepts/agents/cloud-agent/about-automations.md new file mode 100644 index 000000000000..1a05c095ab7a --- /dev/null +++ b/content/copilot/concepts/agents/cloud-agent/about-automations.md @@ -0,0 +1,112 @@ +--- +title: About Copilot automations +shortTitle: About automations +allowTitleToDifferFromFilename: true +intro: '{% data variables.copilot.copilot_automations_cap %} let you run {% data variables.copilot.copilot_cloud_agent %} automatically, on a schedule or in response to events in a repository.' +product: '{% data reusables.gated-features.copilot-automations %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' +versions: + feature: copilot +contentType: concepts +category: + - Learn about Copilot +--- + +## Overview + +{% data reusables.copilot.cloud-agent.automations-what-is %} + +With a manually started {% data variables.copilot.copilot_cloud_agent %} session, you give {% data variables.product.prodname_copilot_short %} a task each time you want work done. With {% data variables.copilot.copilot_automations %}, you define a task once, and {% data variables.product.prodname_copilot_short %} runs it automatically whenever the {% data variables.copilot.copilot_automation %}'s trigger fires. + +For example, you can use {% data variables.copilot.copilot_automations %} to: + +* **Triage incoming issues**: automatically label new issues as a bug, an enhancement, or other, based on their content. +* **Fix failing tests nightly**: each night, check for failing tests on the `main` branch, attempt a fix, and open a draft pull request. +* **Prepare weekly release notes**: draft release notes and open a pull request on a schedule. + +When you create an {% data variables.copilot.copilot_automation %}, you define: + +* A **name** to identify the {% data variables.copilot.copilot_automation %}. +* A **prompt** describing the task you want {% data variables.product.prodname_copilot_short %} to perform. +* One or more **triggers** that determine when the {% data variables.copilot.copilot_automation %} runs. +* The **model** {% data variables.product.prodname_copilot_short %} uses. +* The **tools** {% data variables.product.prodname_copilot_short %} can use, which control what actions it can take in your repository. + +For instructions on creating and managing {% data variables.copilot.copilot_automations %}, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/create-automations). + +## Availability and permissions + +{% data reusables.copilot.cloud-agent.automations-availability %} + +Any user with **write access** to a repository can create {% data variables.copilot.copilot_automations %} in that repository. + +You can create and manage {% data variables.copilot.copilot_automations %} from: + +* The **Agents** tab in a repository on {% data variables.product.github %}, in the **{% data variables.copilot.copilot_automations_cap %}** pane. +* The **{% data variables.copilot.copilot_automations_cap %}** tab in the {% data variables.copilot.github_copilot_app %}. + +## Triggers + +An {% data variables.copilot.copilot_automation %} runs when one of its triggers fires. The following triggers are available: + +* **On a schedule**: the {% data variables.copilot.copilot_automation %} runs at a recurring interval—hourly, daily, or weekly. +* **When an issue is created**: the {% data variables.copilot.copilot_automation %} runs each time an issue is opened in the repository. +* **When a pull request is opened**: the {% data variables.copilot.copilot_automation %} runs each time a pull request is opened in the repository. +* **When a pull request is synchronized**: the {% data variables.copilot.copilot_automation %} runs each time new commits are pushed to a pull request in the repository. + +You can optionally configure filters for event-based triggers: + +* For when **an issue is created**, add a search query filter. +* For when **a pull request is opened** and when **a pull request is synchronized**, add a search query filter and a filter for files changed in the pull request. + +To reduce the risk of prompt injection, {% data variables.copilot.copilot_automations %} ignore events triggered by users who don't have write access to the repository by default. This helps prevent untrusted users—for example, an external contributor opening an issue—from causing {% data variables.product.prodname_copilot_short %} to take action. You can opt in to allowing these events if you need to. For more information, see [Security and safety](#security-and-safety). + +## Tools and actions + +The **tools** you select when you create an {% data variables.copilot.copilot_automation %} determine what {% data variables.product.prodname_copilot_short %} can do when the {% data variables.copilot.copilot_automation %} runs. + +For example, you might allow {% data variables.product.prodname_copilot_short %} to push changes, update issue labels, or create a pull request. + +Selecting tools is the main way you control the scope of an {% data variables.copilot.copilot_automation %}. Grant only the tools that the task needs, so that {% data variables.product.prodname_copilot_short %} can't take actions you didn't intend. + +You can manually select the tools you want to enable, or you can use the **Suggest tools** button to have {% data variables.product.prodname_copilot_short %} suggest tools based on your prompt. + +An {% data variables.copilot.copilot_automation %} can only take action in the single repository it is scoped to. + +## Configuration inherited from the repository + +{% data variables.copilot.copilot_automations_cap %} use the {% data variables.copilot.copilot_cloud_agent %} configuration for the repository they are scoped to, including: + +* **Custom instructions**. See [AUTOTITLE](/copilot/how-tos/configure-custom-instructions/add-repository-instructions). +* **Agent skills**. See [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/add-skills). +* **Firewall rules**. See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/customize-the-agent-firewall). +* **Secrets and variables**. See [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/configure-secrets-and-variables). + +{% data variables.copilot.copilot_automations_cap %} are stored separately from your repository's contents. They are not committed to Git, so they are not versioned alongside your code or managed through pull requests. + +## Visibility + +An {% data variables.copilot.copilot_automation %} is **private to the user who created it**. Other people, including repository administrators, can't see your {% data variables.copilot.copilot_automations %}. + +However, the {% data variables.copilot.copilot_cloud_agent %} **sessions** that an {% data variables.copilot.copilot_automation %} starts are visible to other people with access to the repository, just like any other {% data variables.copilot.copilot_cloud_agent %} session. Anyone who can see these sessions can see the prompt, the session logs, and any pull requests or other changes {% data variables.product.prodname_copilot_short %} creates. + +Because sessions and their logs are visible to others, you should not include secrets or other sensitive information directly in an {% data variables.copilot.copilot_automation %}'s prompt. To give {% data variables.product.prodname_copilot_short %} access to sensitive values, use repository secrets instead. See [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/configure-secrets-and-variables). + +## Billing + +{% data reusables.copilot.cloud-agent.automations-billing %} + +## Security and safety + +{% data variables.copilot.copilot_automations_cap %} run {% data variables.product.prodname_copilot_short %} without a person initiating each task, so they carry some additional risks. {% data variables.product.github %} provides built-in protections to help mitigate these risks. + +* **Attribution.** Pull requests opened and code pushed by an {% data variables.copilot.copilot_automation %} are attributed to the user who created the {% data variables.copilot.copilot_automation %}. As with pull requests that user creates themselves, they can't approve those pull requests, which preserves the expected review controls. +* **Least-privilege tools.** You choose exactly which tools an {% data variables.copilot.copilot_automation %} can use, so you can limit it to only the actions the task requires. +* **Untrusted input.** By default, {% data variables.copilot.copilot_automations %} ignore events triggered by users without write access to the repository, to reduce the risk of prompt injection from untrusted users. +* **Workflow runs.** As with all {% data variables.copilot.copilot_cloud_agent %} work, {% data variables.product.prodname_actions %} workflows don't run on a pull request until a user with write access approves them. This mitigates the risk of a pull request opened by an {% data variables.copilot.copilot_automation %} triggering workflows automatically. + +For more information about how {% data variables.product.github %} mitigates the risks of {% data variables.copilot.copilot_cloud_agent %}, see [AUTOTITLE](/copilot/concepts/agents/cloud-agent/risks-and-mitigations). + +## Further reading + +* [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/create-automations) +* [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent) diff --git a/content/copilot/concepts/agents/cloud-agent/about-cloud-agent.md b/content/copilot/concepts/agents/cloud-agent/about-cloud-agent.md index eaed04c94d69..4fbf82773407 100644 --- a/content/copilot/concepts/agents/cloud-agent/about-cloud-agent.md +++ b/content/copilot/concepts/agents/cloud-agent/about-cloud-agent.md @@ -41,6 +41,7 @@ When you delegate tasks to {% data variables.copilot.copilot_cloud_agent %}, you * Use the agents panel or other agents entry points on {% data variables.product.prodname_dotcom_the_website %} to have {% data variables.product.prodname_copilot_short %} research, plan, and make code changes on a branch, then iterate before creating a pull request. You can also specify in your prompt that you want a pull request created right away. See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/research-plan-iterate). * Ask {% data variables.product.prodname_copilot_short %} to open a new pull request from other entry points, including {% data variables.product.prodname_github_issues %} and {% data variables.product.prodname_vscode %}. See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/start-copilot-sessions). * Mention `@copilot` in a comment on an existing pull request to ask it to make changes. See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/make-changes-to-an-existing-pr). +* Set up an {% data variables.copilot.copilot_automation %} to run {% data variables.product.prodname_copilot_short %} automatically, on a schedule or in response to events such as an issue being opened. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations). {% ifversion security-campaigns-assign-to-cca %}* Assign security alerts to {% data variables.product.prodname_copilot_short %} from security campaigns. See [AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/fixing-alerts-in-security-campaign#assigning-alerts-to-copilot-cloud-agent).{% endif %} {% data variables.copilot.copilot_cloud_agent %} will evaluate the task it has been assigned based on the prompt you give it. @@ -132,7 +133,7 @@ Within your included {% data variables.product.prodname_actions %} minutes and { You can customize {% data variables.copilot.copilot_cloud_agent %} in a number of ways: * **Custom instructions**: Custom instructions allow you to give {% data variables.product.prodname_copilot_short %} additional context on your project and how to build, test and validate its changes. See [AUTOTITLE](/copilot/how-tos/configure-custom-instructions/add-repository-instructions). -* **Model Context Protocol (MCP) servers**: MCP servers allow you to give {% data variables.product.prodname_copilot_short %} access to different data sources and tools. See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/extend-cloud-agent-with-mcp). +* **Model Context Protocol (MCP) servers**: MCP servers allow you to give {% data variables.product.prodname_copilot_short %} access to different data sources and tools. Repository MCP settings on {% data variables.product.github %} apply to both {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_code-review_short %}. The {% data variables.product.github %} MCP server and Playwright MCP server are enabled by default for both features. See [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers). * **{% data variables.copilot.custom_agents_caps_short %}**: {% data variables.copilot.custom_agents_caps_short %} allow you to create different specialized versions of {% data variables.product.prodname_copilot_short %} for different tasks. For example, you could customize {% data variables.product.prodname_copilot_short %} to be an expert frontend engineer following your team's guidelines. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-custom-agents). * **Hooks**: Hooks allow you to execute custom shell commands at key points during agent execution, enabling you to add validation, logging, security scanning, or workflow automation. See [AUTOTITLE](/copilot/concepts/agents/hooks). * **Skills**: Skills allow you to enhance the ability of {% data variables.product.prodname_copilot_short %} to perform specialized tasks with instructions, scripts, and resources. See [AUTOTITLE](/copilot/concepts/agents/about-agent-skills). @@ -144,7 +145,7 @@ You can customize {% data variables.copilot.copilot_cloud_agent %} in a number o ### Limitations in {% data variables.copilot.copilot_cloud_agent %}'s software development workflow * **{% data variables.product.prodname_copilot_short %} can only make changes in the repository specified when you start a task**. {% data variables.product.prodname_copilot_short %} cannot make changes across multiple repositories in one run. -* **By default, {% data variables.product.prodname_copilot_short %} can only access context in the repository specified when you start a task**. The {% data variables.product.prodname_copilot_short %} MCP server is configured by default to allow {% data variables.product.prodname_copilot_short %} to access context (for example issues and historic pull requests) in the repository where it is working. You can, however, configure broader access. See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/extend-cloud-agent-with-mcp). +* **By default, {% data variables.product.prodname_copilot_short %} can only access context in the repository specified when you start a task**. The {% data variables.product.prodname_copilot_short %} MCP server is configured by default to allow {% data variables.product.prodname_copilot_short %} to access context (for example issues and historic pull requests) in the repository where it is working. You can, however, configure broader access through repository MCP settings. See [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers). * **{% data variables.product.prodname_copilot_short %} can only work on one branch at a time** and can open exactly one pull request to address each task it is assigned. * **Each {% data variables.copilot.copilot_cloud_agent %} session has a maximum execution time of 59 minutes**. This is a hard limit that cannot be extended or bypassed. If a task exceeds this limit, the session will time out and stop. For complex tasks that may require more time, consider breaking the work into smaller, more focused tasks. You can configure a shorter timeout using the `timeout-minutes` setting in your `copilot-setup-steps.yml` file. See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/customize-the-agent-environment). diff --git a/content/copilot/concepts/agents/cloud-agent/access-management.md b/content/copilot/concepts/agents/cloud-agent/access-management.md index b766df9dd8e6..81d8c101a3a5 100644 --- a/content/copilot/concepts/agents/cloud-agent/access-management.md +++ b/content/copilot/concepts/agents/cloud-agent/access-management.md @@ -52,6 +52,14 @@ For information on disabling {% data variables.copilot.copilot_cloud_agent %} in For information on disabling {% data variables.copilot.copilot_cloud_agent %} in repositories owned by your personal user account, see [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-your-copilot-plan/managing-copilot-policies-as-an-individual-subscriber#enabling-or-disabling-copilot-cloud-agent). +## Managing access to {% data variables.copilot.copilot_automations_cap %} + +{% data variables.copilot.copilot_automations_cap %} let users run {% data variables.copilot.copilot_cloud_agent %} automatically, on a schedule or in response to events. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations). + +{% data reusables.copilot.cloud-agent.automations-availability %} + +In addition to the {% data variables.copilot.copilot_cloud_agent %} policy, organizations can control whether {% data variables.copilot.copilot_automations %} are allowed in a repository. {% data variables.copilot.copilot_automations_cap %} are enabled by default in repositories where {% data variables.copilot.copilot_cloud_agent %} is enabled. For more information, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-organization/add-copilot-cloud-agent). + ## Further reading * [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent) diff --git a/content/copilot/concepts/agents/cloud-agent/agent-management.md b/content/copilot/concepts/agents/cloud-agent/agent-management.md index d686175414e8..89b2974659c4 100644 --- a/content/copilot/concepts/agents/cloud-agent/agent-management.md +++ b/content/copilot/concepts/agents/cloud-agent/agent-management.md @@ -20,7 +20,9 @@ AI agents are autonomous systems that can evaluate their environment, make decis Agents bring automation and assistance to every stage of the software development process on {% data variables.product.github %}. You can run multiple agent sessions concurrently, allowing you to efficiently delegate work items. -Alongside {% data variables.product.prodname_copilot_short %}, you can use {% data variables.product.prodname_anthropic_claude %} and {% data variables.product.prodname_openai_codex %}, giving you more flexibility and choice to find the right agent for a task. See [AUTOTITLE](/copilot/concepts/agents/about-third-party-agents). +Alongside {% data variables.product.prodname_copilot_short %}, you can use {% data variables.product.prodname_anthropic_claude %} and {% data variables.product.prodname_openai_codex %}, giving you more flexibility and choice to find the right agent for a task. See [AUTOTITLE](/copilot/concepts/agents/about-third-party-coding-agents). + +{% data variables.product.company_short %} partners can also offer their own agents as {% data variables.copilot.agent_apps %}, which you install as {% data variables.product.prodname_github_apps %} and trigger from issues, pull requests, and the Agents UI. See [AUTOTITLE](/copilot/concepts/agents/agent-apps). Utilizing {% data variables.copilot.custom_agents_short %} you can build out a team of task-specific agents with customized system prompts to handle simpler tasks like writing tests and refactoring, giving you bandwidth to prioritize problem-solving and collaboration. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-custom-agents). @@ -41,6 +43,8 @@ From the Agents tab, you can: * **Open a session in {% data variables.product.prodname_vscode_shortname %} or {% data variables.copilot.copilot_cli %}**: When you want to start working on changes to an agent session in your local development environment, click **{% octicon "vscode" aria-label="VS Code" %} Open in {% data variables.product.prodname_vscode_shortname %}** or **{% octicon "agent" aria-label="Agent" %} Continue in {% data variables.copilot.copilot_cli %}** to bring the session to your local machine. {% data reusables.copilot.cloud-agent.use-latest-vscode %} * **Review and merge agent code**: Once the agent completes a session, you can jump to the pull request to review the changes, request further improvements, or approve and merge. See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/review-copilot-prs). +* **Set up {% data variables.copilot.copilot_automations %}**: Run {% data variables.copilot.copilot_cloud_agent %} automatically, on a schedule or in response to events such as an issue being opened. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations). +* **Query your past sessions**: You can search and reference your past agent sessions using natural language from {% data variables.copilot.copilot_cli_short %} or {% data variables.product.prodname_vscode_shortname %}. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/chronicle). ## Next steps diff --git a/content/copilot/concepts/agents/cloud-agent/index.md b/content/copilot/concepts/agents/cloud-agent/index.md index 6ff721642a8b..31d462faa234 100644 --- a/content/copilot/concepts/agents/cloud-agent/index.md +++ b/content/copilot/concepts/agents/cloud-agent/index.md @@ -9,6 +9,7 @@ children: - /about-cloud-agent - /agent-management - /about-custom-agents + - /about-automations - /access-management - /mcp-and-cloud-agent - /risks-and-mitigations diff --git a/content/copilot/concepts/agents/cloud-agent/mcp-and-cloud-agent.md b/content/copilot/concepts/agents/cloud-agent/mcp-and-cloud-agent.md index d2d07d206d6f..20e3902ed9fa 100644 --- a/content/copilot/concepts/agents/cloud-agent/mcp-and-cloud-agent.md +++ b/content/copilot/concepts/agents/cloud-agent/mcp-and-cloud-agent.md @@ -21,7 +21,7 @@ The agent can use tools provided by local and remote MCP servers. Some MCP serve For more information on MCP, see [the official MCP documentation](https://modelcontextprotocol.io/introduction). For information on some of the currently available MCP servers, see [the MCP servers repository](https://github.com/modelcontextprotocol/servers/tree/main). -{% data reusables.copilot.mcp.cloud-agent-limitations %} +{% data reusables.copilot.mcp.repo-mcp-limitations %} ## Default MCP servers @@ -35,13 +35,16 @@ The following MCP servers are configured automatically for {% data variables.cop ## Setting up MCP servers in a repository -Repository administrators can configure MCP servers for use within that repository. This is done via a JSON-formatted configuration that specifies the details of the MCP servers that {% data variables.copilot.copilot_cloud_agent %} can use. +Repository administrators can configure MCP servers for use within that repository. This is done via a JSON-formatted configuration in repository settings on {% data variables.product.github %}. + +> [!NOTE] +> Repository MCP configuration on {% data variables.product.github %} applies to both {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_code-review_short %}. MCP servers configured in repository MCP settings are available to both agents. Once MCP servers are configured for use within a repository, the tools specified in the configuration will be available to {% data variables.copilot.copilot_cloud_agent %} during each assigned task. {% data variables.product.prodname_copilot_short %} will use available tools autonomously, and will not ask for approval before use. -For details of how to set up MCP servers for {% data variables.copilot.copilot_cloud_agent %} in a repository, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/extend-cloud-agent-with-mcp). +For details of how to set up MCP servers in a repository, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers). ## MCP servers for {% data variables.copilot.custom_agents_short %} diff --git a/content/copilot/concepts/agents/cloud-agent/risks-and-mitigations.md b/content/copilot/concepts/agents/cloud-agent/risks-and-mitigations.md index daac48067335..7b846a448ce7 100644 --- a/content/copilot/concepts/agents/cloud-agent/risks-and-mitigations.md +++ b/content/copilot/concepts/agents/cloud-agent/risks-and-mitigations.md @@ -59,3 +59,12 @@ To mitigate this risk, {% data variables.copilot.copilot_cloud_agent %} is desig * {% data variables.copilot.copilot_cloud_agent %}'s commits are signed, so they appear as "Verified" on {% data variables.product.github %}. This provides confidence that the commits were made by {% data variables.copilot.copilot_cloud_agent %} and have not been altered. * Session logs and audit log events are available to administrators. * The commit message for each agent-authored commit includes a link to the agent session logs, for code review and auditing. See [AUTOTITLE](/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents). + +## Automations run without a person initiating each task + +{% data variables.copilot.copilot_automations_cap %} run {% data variables.copilot.copilot_cloud_agent %} automatically, on a schedule or in response to events, without a person initiating each task. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations). This introduces some additional risks, which {% data variables.product.github %} mitigates as follows. + +* **Work is attributed to the person who created the automation.** Pull requests opened and code pushed by an {% data variables.copilot.copilot_automation %} are attributed to the user who created the {% data variables.copilot.copilot_automation %}. As when that user creates a pull request themselves, they can't approve it, which preserves the expected "Required approvals" controls. +* **You control which tools an automation can use.** When an {% data variables.copilot.copilot_automation %} is triggered by an event, input from untrusted users could become part of the prompt. To limit the impact of prompt injection, you choose exactly which tools an {% data variables.copilot.copilot_automation %} can use, so it can only take the actions the task requires. +* **Events from untrusted users are ignored by default.** {% data variables.copilot.copilot_automations_cap %} ignore events triggered by users without write access to the repository by default, with a setting to opt in. +* **Workflows still require human approval.** An issue or pull request opened by an {% data variables.copilot.copilot_automation %} could trigger another {% data variables.copilot.copilot_automation %}. As with all {% data variables.copilot.copilot_cloud_agent %} work, {% data variables.product.prodname_actions %} workflows don't run on a pull request until a user with write access approves them, which prevents workflows from running automatically as part of such a chain. diff --git a/content/copilot/concepts/agents/code-review.md b/content/copilot/concepts/agents/code-review.md index c2724920e760..71fe7aba2fca 100644 --- a/content/copilot/concepts/agents/code-review.md +++ b/content/copilot/concepts/agents/code-review.md @@ -2,7 +2,7 @@ title: About GitHub Copilot code review shortTitle: Code review allowTitleToDifferFromFilename: true -intro: 'Find out how {% data variables.product.prodname_copilot_short %} can review pull requests for you.' +intro: '{% data variables.product.prodname_copilot_short %} reviews your pull requests, identifies issues, and suggests fixes you can apply in a couple of clicks.' product: '{% data reusables.copilot.plans.permission-paid-plans-cfi %}' versions: feature: copilot @@ -33,6 +33,7 @@ This article provides an overview of {% data variables.copilot.copilot_code-revi * {% data variables.product.prodname_vs %} * Xcode * JetBrains IDEs +* Azure DevOps ({% data variables.release-phases.public_preview %}) > [!NOTE] > If you receive {% data variables.product.prodname_copilot_short %} from an organization, your organization must enable the **{% data variables.copilot.copilot_code-review_short %}** option in the {% data variables.product.prodname_copilot_short %} policy settings. This applies to reviews on {% data variables.product.prodname_dotcom_the_website %} or in {% data variables.product.prodname_mobile %}. See [AUTOTITLE](/copilot/how-tos/administer/organizations/managing-policies-for-copilot-in-your-organization). @@ -76,22 +77,18 @@ For more information, see [AUTOTITLE](/copilot/reference/review-excluded-files). ## Agentic capabilities for {% data variables.copilot.copilot_code-review_short %} -> [!NOTE] -> -> * {% data variables.copilot.copilot_code-review_short %} has capabilities that are in {% data variables.release-phases.public_preview %} and subject to change. The [AUTOTITLE](/free-pro-team@latest/site-policy/github-terms/github-pre-release-license-terms) apply to your use of preview features. - {% data variables.copilot.copilot_code-review_short %} utilizes agentic capabilities to extend its functionality. -* **Full project context gathering**. This provides more specific, accurate, and contextually aware code reviews. This capability analyzes your entire repository to better understand the context of code changes. Full project context gathering is generally available. +* **Full project context gathering**. This provides more specific, accurate, and contextually aware code reviews. This capability analyzes your entire repository to better understand the context of code changes. * **The ability to pass suggestions to {% data variables.copilot.copilot_cloud_agent %}**. This automates creating a new pull request against your branch with the suggested fixes applied. Passing suggestions to {% data variables.copilot.copilot_cloud_agent %} is in public preview and subject to change. -These capabilities are enabled automatically for {% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, and {% data variables.copilot.copilot_max_short %} plans. +These capabilities are enabled automatically for all plans that include {% data variables.copilot.copilot_code-review_short %}. See [Review effort level](#review-effort-level) later in this article for information about choosing between Low and Medium analysis levels. If {% data variables.product.prodname_actions %} is unavailable or if Actions workflows used by {% data variables.copilot.copilot_code-review_short %} fail, reviews will still be generated. However, they will not include the additional features provided by the agentic capabilities. ### Usage of {% data variables.product.prodname_actions %} runners for agentic capabilities in code review -{% data variables.copilot.copilot_code-review_short %} uses {% data variables.product.prodname_actions %} to run the agentic capabilities, including full project context gathering and any capabilities in {% data variables.release-phases.public_preview %}. By default, {% data variables.copilot.copilot_code-review_short %} uses standard {% data variables.product.prodname_dotcom %}-hosted runners. You can also upgrade to larger {% data variables.product.prodname_dotcom %}-hosted runners for better performance, or use self-hosted runners. +{% data variables.copilot.copilot_code-review_short %} uses {% data variables.product.prodname_actions %} to run the agentic capabilities, including full project context gathering and passing suggestions to {% data variables.copilot.copilot_cloud_agent %}. By default, {% data variables.copilot.copilot_code-review_short %} uses standard {% data variables.product.prodname_dotcom %}-hosted runners. You can also upgrade to larger {% data variables.product.prodname_dotcom %}-hosted runners for better performance, or use self-hosted runners. > [!NOTE] > Usage of larger {% data variables.product.prodname_dotcom %}-hosted runners is billed at a higher per-minute rate. Self-hosted runners do not consume {% data variables.product.prodname_actions %} minutes. @@ -104,6 +101,21 @@ For more information on configuring runners, see [AUTOTITLE](/copilot/how-tos/co You can view the {% data variables.product.prodname_actions %} minutes associated with {% data variables.copilot.copilot_code-review_short %} runs. For more information, see [{% data variables.product.prodname_actions %} minutes for code review](/copilot/reference/copilot-billing/models-and-pricing#github-actions-minutes-for-code-review). +## Review effort level + +> [!NOTE] +> Medium review effort is in {% data variables.release-phases.public_preview %} and subject to change. The [AUTOTITLE](/free-pro-team@latest/site-policy/github-terms/github-pre-release-license-terms) apply to your use of preview features. + +{% data variables.copilot.copilot_code-review_short %} supports multiple review effort levels, so you can choose the level of thoroughness that matches the criticality of your code. + +* **Low**: Standard review. Provides fast, targeted feedback on common issues such as bugs, security vulnerabilities, and style inconsistencies (default). +* **Medium**: Routes pull requests to a higher-reasoning model for longer analysis of complex logic, security-sensitive code, and cross-service changes. Medium reviews use more {% data variables.product.prodname_ai_credits_short %} and {% data variables.product.prodname_actions %} minutes than Low reviews. For better performance with Medium reviews, consider configuring larger or self-hosted runners. See [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-runners). + +Use Medium for security-sensitive code, multi-service pull requests, or repositories with strict quality standards. Use Low for routine changes where fast feedback is more important than exhaustive analysis. + + +Repository administrators can set the default review effort level for automatic code reviews. For configuration steps, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review). + ## Code review usage Each time {% data variables.product.prodname_copilot_short %} reviews a pull request or reviews code in your IDE, the interaction consumes {% data variables.product.prodname_ai_credits_short %}. The amount depends on the model used and the number of tokens processed. @@ -135,6 +147,30 @@ When {% data variables.copilot.copilot_code-review_short %} is enabled for these {% data reusables.copilot.ccr-model-settings %} +## MCP servers and agent skills for code review + +{% data reusables.copilot.code-review.skills-and-mcp-preview-note %} + +{% data variables.copilot.copilot_code-review_short %} can use repository-level agent skills and MCP servers when they are relevant to the review. + +{% data variables.copilot.copilot_code-review_short %} is more likely to use skills and MCP context when your repository or pull request gives clear signals, including review-focused skill directory names, custom instructions that reference MCP context, and pull request descriptions that include identifiers referencing configured MCP servers such as issue keys or incident IDs. + +### Agent skills + +If your repository includes agent skills, {% data variables.copilot.copilot_code-review_short %} can automatically use relevant skills when reviewing a pull request, extending {% data variables.product.prodname_copilot_short %} beyond its built-in analysis. + +For setup details, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/add-skills). + +### MCP servers + +{% data variables.copilot.copilot_code-review_short %} can use MCP servers to pull context directly into the review from the third-party platforms and internal systems your team uses, including issue tracking, documentation, service catalogs, and incident tooling. + +The {% data variables.product.github %} MCP server and Playwright MCP server are enabled by default. + +You can configure MCP servers in your repository settings. Repository MCP configuration on {% data variables.product.github %} applies to both {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_code-review_short %}. Changes you make to repository MCP settings affect both features. For setup details, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers). + +{% data reusables.copilot.code-review.mcp-tools-setting %} + ## Validating {% data variables.product.prodname_copilot_short %} code reviews {% data variables.product.prodname_copilot_short %} is not guaranteed to spot all problems or issues in a pull request. Sometimes it will make mistakes. Always validate {% data variables.product.prodname_copilot_short %}'s feedback carefully. Supplement {% data variables.product.prodname_copilot_short %}'s feedback with a human review. diff --git a/content/copilot/concepts/agents/copilot-cli/about-copilot-cli.md b/content/copilot/concepts/agents/copilot-cli/about-copilot-cli.md index 0fa8a9c363da..2339af822eaa 100644 --- a/content/copilot/concepts/agents/copilot-cli/about-copilot-cli.md +++ b/content/copilot/concepts/agents/copilot-cli/about-copilot-cli.md @@ -63,6 +63,26 @@ To use the CLI programmatically, include the `-p` or `--prompt` command-line opt > [!CAUTION] > If you use an automatic approval option such as `--allow-all-tools`, {% data variables.product.prodname_copilot_short %} has the same access as you do to files on your computer, and can run any shell commands that you can run, without getting your prior approval. See [Security considerations](#security-considerations), later in this article. +## Running in a sandbox with {% data variables.copilot.sandbox %} + +{% data reusables.cli.public-preview-sandbox %} + +{% data variables.copilot.sandbox_caps %} provides isolated execution environments for {% data variables.copilot.copilot_cli_short %}, both locally and in the cloud. For more information, see [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes). + +### Local sandboxing + +You can enable local sandboxing inside a {% data variables.copilot.copilot_cli_short %} session to restrict {% data variables.product.prodname_copilot_short %}'s access to your filesystem, network, and system capabilities. To enable it, run `/sandbox enable` inside a session. + +### Cloud sandboxing + +You can start a {% data variables.copilot.copilot_cli_short %} session inside an isolated, cloud-hosted environment with cloud sandboxes. This is useful when you want to run code without affecting your local machine, keep a session's state between uses, continue a session from a different machine, or run multiple tasks in parallel. Cloud sandbox policies inherit from {% data variables.copilot.copilot_cloud_agent %} policies, so existing security controls like firewall rules extend to cloud sandboxes without additional setup. + +To start a cloud-backed session, run: + +```bash copy +copilot --cloud +``` + ## Use cases for {% data variables.copilot.copilot_cli %} The following sections provide examples of tasks you can complete with {% data variables.copilot.copilot_cli %}. @@ -290,7 +310,9 @@ You can control which tools {% data variables.copilot.copilot_cli_short %} can u ### Risk mitigation -You can mitigate the risks associated with using the automatic approval options by running {% data variables.copilot.copilot_cli_short %} in a restricted environment—such as a virtual machine, container, or dedicated system—with tightly controlled permissions and network access. This confines any potential damage that could occur when allowing {% data variables.product.prodname_copilot_short %} to execute commands that you have not reviewed and verified. +You can mitigate the risks associated with using the automatic approval options by running {% data variables.copilot.copilot_cli_short %} in a sandboxed environment. {% data variables.copilot.sandbox_caps %} provides a first-party solution for this, with local sandboxing to restrict access on your machine and cloud sandboxing for fully isolated execution. For more information, see [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes). + +Alternatively, you can run {% data variables.copilot.copilot_cli_short %} in a virtual machine, container, or dedicated system with tightly controlled permissions and network access. ### Known MCP server policy limitations diff --git a/content/copilot/concepts/agents/copilot-cli/about-remote-control.md b/content/copilot/concepts/agents/copilot-cli/about-remote-control.md index b781f9240643..1a8912e8d2a6 100644 --- a/content/copilot/concepts/agents/copilot-cli/about-remote-control.md +++ b/content/copilot/concepts/agents/copilot-cli/about-remote-control.md @@ -28,7 +28,7 @@ By default, {% data variables.copilot.copilot_cli %} sessions are only steerable Remote control requires: -* **Policy enablement**: If your {% data variables.product.prodname_copilot_short %} seat comes from an organization, an enterprise or organization owner must enable the "Remote Control" policy (off by default). See [Administering remote control](#administering-remote-control) later in this article. +* **Policy enablement**: If your {% data variables.product.prodname_copilot_short %} seat comes from an organization, an enterprise or organization owner must set the "Store local sessions in the Cloud" policy to "View and control" (unconfigured by default). See [Administering remote control](#administering-remote-control) later in this article. * **The machine must be online**: The CLI session must be actively running in a terminal on a machine with an internet connection. If the machine goes to sleep or loses its connection, remote control is unavailable until the machine is back online. See [Reconnection](#reconnection) later in this article. * **An interactive session**: Remote access is only available for interactive sessions. It is not available when you use the CLI programmatically with the `--prompt` command-line option, for example when you use the CLI in a script. @@ -38,7 +38,7 @@ When you enable remote control for a {% data variables.copilot.copilot_cli_short Both the local terminal and the remote interface are active at the same time. You can enter commands in either interface. {% data variables.copilot.copilot_cli_short %} uses the first response it receives to any prompt or permission request. -Your session continues to run on your local machine. The remote interface provides a way to interact with the session, but the CLI itself—and all the tools, shell commands, and file operations it runs—remain on the machine where you started the session. +Your session continues to run on your local machine. The remote interface provides a way to interact with the session, but the CLI itself (and all the tools, shell commands, and file operations it runs) remains on the machine where you started the session. ## What you can do remotely @@ -63,18 +63,21 @@ You can use the `/keep-alive` slash command to prevent your machine from going t ## Security and privacy -Remote control is only available to you — the person signed in to {% data variables.product.prodname_dotcom %} with the same account that started the CLI session. No one else can view or interact with your sessions remotely. The session URL displayed in the CLI is session-specific and only accessible to authenticated users with the correct account. +Remote control is only available to the person signed in to {% data variables.product.prodname_dotcom %} with the same account that started the CLI session. No one else can view or interact with your sessions remotely. When remote control is enabled: * Session events (conversation messages, tool execution events, and permission requests) are sent from your local machine to {% data variables.product.prodname_dotcom %}. * Remote commands are polled by {% data variables.copilot.copilot_cli_short %} from {% data variables.product.prodname_dotcom %} and injected into your local session. -* The CLI continues to run locally — all shell commands, file operations, and tool executions happen on your machine. Remote control does not grant direct access to your machine beyond what the CLI agent can do within the session. - -The remote session link (displayed in the CLI when you enable remote control) points to a session-specific URL on {% data variables.product.prodname_dotcom_the_website %}. Only authenticated users with the correct account can access this URL. +* The CLI continues to run locally. All shell commands, file operations, and tool executions happen on your machine. Remote control does not grant direct access to your machine beyond what the CLI agent can do within the session. ## Administering remote control -Enterprise and organization owners control whether users can enable remote control, using the "Remote Control" policy. This policy is off by default. +Enterprise and organization owners control whether users can enable remote control using the "Store local sessions in the Cloud" policy. + +* **Organization-level policy** (unconfigured by default): Organization owners can set this policy to "View from cloud" (syncing only) or "View and control" (syncing plus remote control). If the policy is disabled or unconfigured, neither session syncing nor remote control is available for the organization's users. +* **Enterprise-level policy**: Enterprise owners can enforce a setting across all organizations, or select "Let organizations decide" to let each organization choose its own level. If the enterprise enforces "View and control," all organizations under it receive that setting. + +For remote control to be available, the applicable policy (enterprise-enforced or organization-level) must be set to "View and control." For more information, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-organization/manage-policies) and [AUTOTITLE](/copilot/how-tos/copilot-cli/administer-copilot-cli-for-your-enterprise). diff --git a/content/copilot/concepts/agents/copilot-cli/chronicle.md b/content/copilot/concepts/agents/copilot-cli/chronicle.md index f3939633b1d2..6ab22d2fec1d 100644 --- a/content/copilot/concepts/agents/copilot-cli/chronicle.md +++ b/content/copilot/concepts/agents/copilot-cli/chronicle.md @@ -2,7 +2,7 @@ title: 'About {% data variables.copilot.copilot_cli %} session data' shortTitle: Session data allowTitleToDifferFromFilename: true -intro: '{% data variables.copilot.copilot_cli_short %} records every session locally. You can resume previous sessions, ask {% data variables.product.prodname_copilot_short %} questions about your interactions with the CLI, and use the `/chronicle` slash command for useful session-based insights.' +intro: 'Your {% data variables.copilot.copilot_cli_short %} sessions build a searchable history of everything you have worked on. Query past sessions with natural language, generate standup reports, get personalized tips, and resume previous work.' versions: feature: copilot contentType: concepts @@ -15,17 +15,17 @@ docsTeamMetrics: ## Introduction -Every time you use {% data variables.copilot.copilot_cli_short %}, a complete set of data about your session—including your prompts, {% data variables.product.prodname_copilot_short %}'s responses, the tools that were used, and details of files that were modified—is recorded on your local machine. Over time, this builds up a rich history of what you've worked on, how you've worked, and what {% data variables.product.prodname_copilot_short %} has done for you. +Every time you use {% data variables.copilot.copilot_cli_short %}, your session data is recorded on your local machine. This includes your prompts, {% data variables.product.prodname_copilot_short %}'s responses, the tools that were used, and details of files that were modified. By default, session data is also synced to your {% data variables.product.github %} account. This lets you query all of your past sessions, including sessions from {% data variables.copilot.copilot_cli_short %}, {% data variables.copilot.copilot_cloud_agent %}, {% data variables.copilot.copilot_code-review_short %}, {% data variables.product.prodname_vscode_shortname %}, JetBrains, and the {% data variables.copilot.github_copilot_app %}. -This session data powers several features: +This session data powers several features, available from {% data variables.copilot.copilot_cli_short %}, {% data variables.product.prodname_vscode_shortname %}, JetBrains, the {% data variables.copilot.github_copilot_app %}, and {% data variables.product.prodname_dotcom_the_website %}: -* **Resuming sessions**: You can pick up where you left off in any previous session. -* **Asking questions about your history**: You can ask {% data variables.product.prodname_copilot_short %} questions about your past work, and it will query your session data to answer them. -* **The `/chronicle` slash command**: A set of purpose-built subcommands that generate standup reports, personalized tips, and suggestions for improving your custom instructions—all derived from your session history. +* **Querying your session history**: Ask natural language questions about your past work, and {% data variables.product.prodname_copilot_short %} will search your session data for answers. +* **Resuming sessions**: Pick up where you left off in any previous session. +* **The `/chronicle` slash command**: A set of purpose-built subcommands that generate standup reports, personalized tips, cost analysis, and suggestions for improving your custom instructions, all derived from your session history. -This conceptual article explains how session data is stored, and how you can leverage it to enhance your workflow. For a practical guide to resuming a session, asking {% data variables.product.prodname_copilot_short %} about your CLI sessions, and using the `/chronicle` slash command, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/chronicle). +With user-scoped queries, you can only query your own sessions—no one else can access your session data. -{% data reusables.copilot.copilot-cli.cli-experimental-chronicle %} +This conceptual article explains how session data is stored and synced, and how you can use it to enhance your workflow. For a practical guide to resuming a session, asking {% data variables.product.prodname_copilot_short %} about your CLI sessions, and using the `/chronicle` slash command, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/chronicle). For querying sessions from {% data variables.product.prodname_vscode_shortname %}, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents). ## How session data is stored @@ -33,40 +33,42 @@ Every {% data variables.copilot.copilot_cli_short %} session is persisted as a s In addition to the session files, {% data variables.copilot.copilot_cli_short %} stores structured session data in a local SQLite database, referred to as the session store. This data is a subset of the full data stored in the session files. The session store is what powers the `/chronicle` slash command and it also allows {% data variables.product.prodname_copilot_short %} to answer questions you ask about your past work. -### Privacy and data locality +## Session syncing + +By default, {% data variables.copilot.copilot_cli_short %} syncs your session data to your {% data variables.product.github %} account. This lets you query your past sessions from {% data variables.copilot.copilot_cli_short %}, {% data variables.product.prodname_vscode_shortname %}, JetBrains, the {% data variables.copilot.github_copilot_app %}, or {% data variables.product.prodname_dotcom_the_website %}, and includes sessions from {% data variables.copilot.copilot_cloud_agent %}, {% data variables.copilot.copilot_code-review_short %}, {% data variables.product.prodname_vscode_shortname %}, and the {% data variables.copilot.github_copilot_app %}. -All session data is stored locally in your home directory and is only accessible to your user account. {% data variables.product.prodname_copilot_short %} reads this data on your machine when you ask questions about your interactions with the CLI, or when you use the `/chronicle` slash command. Session data such as your previous prompts, context data, and responses you received may be sent to the AI model, just as they would be in any normal {% data variables.copilot.copilot_cli_short %} interaction. +You can opt out of session syncing by setting `"remoteExport": false` in your CLI settings JSON. If you opt out, session data stays on your machine and you can only query it from {% data variables.copilot.copilot_cli_short %}. -If you want to remove data for a particular CLI session, you can delete the relevant session directory from `~/.copilot/session-state/`. You can clear all session data by deleting everything under `~/.copilot/session-state/`. After doing this you must manually reindex the session store. See the [Reindexing the session store](#reindexing-the-session-store) later in this article. +For {% data variables.copilot.copilot_enterprise_short %} and {% data variables.copilot.copilot_business_short %} users, an organization administrator must set the "Store local sessions in the Cloud" policy to at least "View from cloud." If the policy is disabled or unconfigured, sessions are stored locally only. -## About the `/chronicle` slash command +### Privacy and data locality -The `/chronicle SUBCOMMAND` command uses the data in the session store to provide insights and suggestions about your use of {% data variables.copilot.copilot_cli_short %}. +Local session data is stored in `~/.copilot/session-state/` and is only accessible to your user account on that machine. -You can enter the following commands in an interactive CLI session: +Synced session data is stored on {% data variables.product.github %} and is tied to your personal account. It is accessible only to you by default. Organization and enterprise administrators control whether syncing is available through the "Store local sessions in the Cloud" policy, but enabling the policy does not give administrators access to your session data. -* `/chronicle standup`: Generates a short report summarizing what you worked on in your recent CLI sessions, including branch names, pull request links, and status checks. -* `/chronicle tips`: Provides personalized tips for using {% data variables.copilot.copilot_cli_short %} more effectively. -* `/chronicle improve`: Analyzes your session history to identify patterns where {% data variables.product.prodname_copilot_short %} may have misunderstood your intent or where there was a lot of back-and-forth, and generates custom instructions to help {% data variables.product.prodname_copilot_short %} better understand you in the future. -* `/chronicle reindex`: Rebuilds the session store from your session history files. +You can choose to share individual sessions, giving view-only access to others who have access to the repository. Shared sessions are not indexed for other users' session queries. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents#share-a-session). -## Benefits of `/chronicle` and the session data +{% data variables.product.prodname_copilot_short %} reads session data when you ask questions about past interactions or use the `/chronicle` slash command. Session data such as your previous prompts, context, and responses may be sent to the AI model, just as in any normal {% data variables.copilot.copilot_cli_short %} interaction. -* **Self-improving workflow**: The `improve` subcommand creates a feedback loop that helps you to refine your custom instructions. Over time, this makes the agent more effective for your specific project. +### Managing your session data -* **Effortless standup reports**: Instead of manually reconstructing what you did yesterday, `/chronicle standup` generates a standup summary from your actual session data. +You can manage your session data both locally and on {% data variables.product.prodname_dotcom_the_website %}. -* **Personalized coaching**: The `tips` subcommand acts as a personal productivity coach that knows both what {% data variables.copilot.copilot_cli_short %} can do and how you actually use it. It bridges the gap between available features and your current workflow. +* **Local data**: To remove data for a particular CLI session locally, delete the relevant session directory from `~/.copilot/session-state/`. To clear all local session data, delete everything under `~/.copilot/session-state/`. After doing this you must manually reindex the session store. See [Reindexing the session store](#reindexing-the-session-store) later in this article. Deleting local files does not affect session data that has been synced to your account. You cannot delete synced data locally. +* **Synced data**: You can delete or hide synced CLI sessions from {% data variables.product.prodname_dotcom_the_website %}. Hiding a session removes it from your session index so it no longer appears in query results. Deleting a session removes it from your session list on {% data variables.product.prodname_dotcom_the_website %}. Deletion applies to CLI, {% data variables.product.prodname_vscode_shortname %}, and {% data variables.copilot.github_copilot_app %} sessions. -* **Talk to your coding history**: The session store lets {% data variables.product.prodname_copilot_short %} answer any question that your past sessions might help with—from recalling a bug fix you did last week to analyzing your prompting patterns over time. +## The `/chronicle` slash command -* **Local and private**: All session data—both the raw JSONL files and the SQLite session store—stays on your machine. Nothing is uploaded or shared beyond the normal AI model interactions that happen in any {% data variables.copilot.copilot_cli_short %} session. You have full control over your data and can delete it at any time. +The `/chronicle` slash command provides purpose-built subcommands for generating insights from your session history, including standup reports, personalized tips, cost analysis, and suggestions for improving your custom instructions. For the full list of subcommands and usage examples, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/chronicle#using-the-chronicle-slash-command). -## When should you use these features? +## When to use session data -* **At the start of your day**: Run `/chronicle standup last 3 days` to generate a reminder of what you worked on recently and the CLI session you were working in. +* **At the start of your day**: Run `/chronicle standup last 3 days` to generate a summary of recent work instead of reconstructing it manually. * **Periodically, to level up**: Run `/chronicle tips` every week or two to discover features and workflow improvements you might be missing. -* **When {% data variables.product.prodname_copilot_short %} keeps making the same mistake**: Run `/chronicle improve` to identify the pattern and generate custom instructions to fix it. +* **When {% data variables.product.prodname_copilot_short %} keeps making the same mistake**: Run `/chronicle improve` to identify the pattern and generate custom instructions that make the agent more effective for your project. +* **To understand your token usage**: Run `/chronicle cost tips` to see where tokens are going and get suggestions for reducing costs. +* **To search for a specific topic**: Run `/chronicle search KEYWORD` to find sessions containing a specific term or topic. Unlike free-form questions, this searches session content directly for keywords rather than interpreting your query semantically. * **To recall past work**: Ask a free-form question like "Have I worked on anything related to the payments API?" and {% data variables.product.prodname_copilot_short %} will search your history. * **To continue previous work**: Use `copilot --continue` or `copilot --resume` to pick up where you left off. @@ -74,7 +76,7 @@ You can enter the following commands in an interactive CLI session: The session store is populated incrementally during a CLI session. Data for a session is written to disk in a session-specific subdirectory of `~/.copilot/session-state/`. This also happens periodically during a session, and also when the session ends. -You can reindex the session store from the session files on disk, although typically you will never need to do this. +You can reindex the session store from the session files on disk. Reindexing also syncs your session data to your account. Situations where you might need to reindex include: @@ -93,4 +95,5 @@ To reindex the session store, use the following slash command in an interactive ## Further reading * [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/chronicle) +* [AUTOTITLE](/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents) * [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) diff --git a/content/copilot/concepts/agents/copilot-memory.md b/content/copilot/concepts/agents/copilot-memory.md index 883fb5f27eef..f797c0ccfef9 100644 --- a/content/copilot/concepts/agents/copilot-memory.md +++ b/content/copilot/concepts/agents/copilot-memory.md @@ -2,7 +2,7 @@ title: About GitHub Copilot Memory shortTitle: Copilot Memory allowTitleToDifferFromFilename: true -intro: 'Find out how {% data variables.product.prodname_copilot_short %} can store repository-level facts and user-level preferences, and use that knowledge in future work.' +intro: '{% data variables.copilot.copilot_memory %} helps {% data variables.product.prodname_copilot_short %} become more effective over time by remembering facts about your repositories and your personal coding preferences.' product: '{% data reusables.gated-features.copilot-memory %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' versions: feature: copilot @@ -11,15 +11,13 @@ category: - Learn about Copilot --- -> [!NOTE] -> * This feature is currently in {% data variables.release-phases.public_preview %} and is subject to change. -> * User-level preferences are currently only available for users on a {% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, or {% data variables.copilot.copilot_max_short %} plan. - -## Introduction +> [!NOTE] This feature is currently in {% data variables.release-phases.public_preview %} and is subject to change. As a developer joining an existing codebase, you typically read the repository's README, coding conventions, and other documentation to understand how the project works and how to contribute. This helps you submit good quality pull requests from the start. Even so, the quality of your work steadily improves as you spend more time in the codebase and learn its nuances. In the same way, allowing {% data variables.product.prodname_copilot_short %} to build its own understanding of your repository enables it to become increasingly effective over time. -Copilot can use {% data variables.copilot.copilot_memory %} to store important facts about a repository. For users on a {% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, or {% data variables.copilot.copilot_max_short %} plan, it can also persist personal preferences. +## Types of memories + +{% data variables.product.prodname_copilot_short %} can use {% data variables.copilot.copilot_memory %} to store important facts about a repository and your personal preferences. {% data variables.copilot.copilot_memory %} stores: @@ -28,13 +26,22 @@ Copilot can use {% data variables.copilot.copilot_memory %} to store important f * Available to all users with access to {% data variables.copilot.copilot_memory %} for that repository. * **User-level preferences** * Implied or stated personal preferences about how a user wants to interact with {% data variables.product.prodname_copilot_short %}. - * Available only to that user across {% data variables.product.prodname_copilot_short %} interactions in all repositories. - * Currently only available for users on a {% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, or {% data variables.copilot.copilot_max_short %} plan. + * Available only to that user's {% data variables.product.prodname_copilot_short %} interactions across repositories. + * For {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} plans, they can be viewed and deleted by an organization or enterprise administrator. We typically refer to these repository-level facts and user-level preferences as "memories," and they are only created in response to {% data variables.product.prodname_copilot_short %} activity initiated by users who have {% data variables.copilot.copilot_memory %} enabled. +## Feature availability + +{% data variables.copilot.copilot_memory %} is currently used by {% data variables.copilot.copilot_cloud_agent %}, {% data variables.copilot.copilot_code-review_short %}, and {% data variables.copilot.copilot_cli_short %}. + Facts and preferences captured by one {% data variables.product.prodname_copilot_short %} feature can be used by another. For example, if {% data variables.copilot.copilot_cloud_agent %} discovers how your repository handles database connections, {% data variables.copilot.copilot_code-review_short %} can later apply that knowledge to spot inconsistent patterns in a pull request. Similarly, if {% data variables.copilot.copilot_code-review_short %} learns that certain settings must stay synchronized across two files, {% data variables.copilot.copilot_cloud_agent %} will know to update both files when changing one. +A few feature-specific limits apply: + +* {% data variables.copilot.copilot_cli_short %} only applies stored facts and preferences for the user who initiated the operation. +* {% data variables.copilot.copilot_code-review_short %} uses repository-level facts only. User-level preferences are not applied during code review. + ## Benefits of using {% data variables.copilot.copilot_memory %} Stateless AI doesn't retain an understanding of a codebase between interactions. This forces you to either repeatedly explain coding conventions and code-specific details in your prompts, or maintain detailed custom instructions files. @@ -46,34 +53,40 @@ Stateless AI doesn't retain an understanding of a codebase between interactions. By capturing and applying repository-level facts and user-level preferences, {% data variables.product.prodname_copilot_short %} builds its own knowledge of your codebases and personal workflow, adapts to your coding requirements, and delivers more value over time. -## Where is {% data variables.copilot.copilot_memory %} used? +## How {% data variables.copilot.copilot_memory %} stores, retains, and uses information -{% data variables.copilot.copilot_memory %} is currently used by {% data variables.copilot.copilot_cloud_agent %}, {% data variables.copilot.copilot_code-review_short %}, and {% data variables.copilot.copilot_cli_short %}. A few feature-specific limits apply: +### Repository-level facts -* {% data variables.copilot.copilot_cli_short %} only applies stored facts and preferences for the user who initiated the operation. -* {% data variables.copilot.copilot_code-review_short %} uses repository-level facts only. User-level preferences are not applied during code review. +Repository-level facts are stored with citations pointing to the code that supports them. When {% data variables.product.prodname_copilot_short %} finds a fact relevant to its current work, it checks those citations against the current branch to confirm the information is still accurate. Only validated facts are used. -## How {% data variables.copilot.copilot_memory %} stores, retains, and uses information +{% data variables.product.prodname_copilot_short %} only creates repository-level facts in response to actions by users with write access to the repository who have {% data variables.copilot.copilot_memory %} enabled. Once stored, those facts are available to any user who has access to {% data variables.copilot.copilot_memory %} in that repository, but those facts can only be used in operations on the same repository. This keeps what {% data variables.product.prodname_copilot_short %} learns about a repository scoped to that repository, preserving privacy and security. -**Repository-level facts** are stored with citations pointing to the code that supports them. When {% data variables.product.prodname_copilot_short %} finds a fact relevant to its current work, it checks those citations against the current branch to confirm the information is still accurate. Only validated facts are used. +Repository owners can review and manually delete the repository-level facts stored for their repository. -{% data variables.product.prodname_copilot_short %} only creates repository-level facts in response to actions by users with write access to the repository who have {% data variables.copilot.copilot_memory %} enabled. Once stored, those facts are available to any user who has access to {% data variables.copilot.copilot_memory %} in that repository, but those facts can only be used in operations on the same repository. This keeps what {% data variables.product.prodname_copilot_short %} learns about a repository scoped to that repository, preserving privacy and security. +### User-level preferences -**User-level preferences** are stored with citations that may include direct user quotes. When {% data variables.product.prodname_copilot_short %} finds a preference relevant to its current work, it uses its best judgment to confirm the preference still applies. +User-level preferences are stored with citations that may include direct user quotes. When {% data variables.product.prodname_copilot_short %} finds a preference relevant to its current work, it uses its best judgment to confirm the preference still applies. {% data variables.product.prodname_copilot_short %} only creates user-level preferences in response to interactions initiated by a specific user, and those preferences are only available in that same user's later interactions. They capture an individual's coding style and workflow patterns, and stay tied to the user who created them. -To prevent stale information from lingering, any stored fact or preference that goes unused is automatically deleted after 28 days. The 28-day timer may reset whenever {% data variables.product.prodname_copilot_short %} successfully validates and uses an entry. -Facts can also be captured from pull requests that were closed without merging. In those cases, the validation step ensures that {% data variables.product.prodname_copilot_short %}'s behavior is unaffected unless the current codebase still substantiates the information. +Users can view and delete their own user-level preferences regardless of their {% data variables.product.prodname_copilot_short %} plan. + +#### {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} plans -Repository owners can review and manually delete the repository-level facts stored for their repository. Users with access to user-level {% data variables.copilot.copilot_memory %} can do the same for their own preferences. For more information, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/copilot-memory). +On {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} plans, user-level preferences can also be exported or deleted by an organization or enterprise administrator, either in bulk or per user. -## About enabling {% data variables.copilot.copilot_memory %} +Preferences are owned by the billing entity, which is the organization or enterprise that grants the user their license. When a memory is created, it is stored against the active billing entity for the user's current usage. Then, when {% data variables.product.prodname_copilot_short %} creates context for an agent session, it looks at the user's current active billing entity again and only retrieves memories that are owned by that billing entity. Users can view all their stored preferences and corresponding owners in their [personal settings](https://github.com/settings/copilot/memory?ref_product=copilot&ref_type=engagement&ref_style=text). -{% data variables.copilot.copilot_memory %} is enabled per user, not per repository. Once a user has it enabled, {% data variables.product.prodname_copilot_short %} can use {% data variables.copilot.copilot_memory %} in any repository where that user works with {% data variables.product.prodname_copilot %}. +Users who have multiple licenses from different places must select a default billing entity in their [account settings](https://github.com/settings/copilot/features?ref_product=copilot&ref_type=engagement&ref_style=text) in order to generate user-level preferences. + +### Retention and validation + +To prevent stale information from lingering, any stored fact or preference that goes unused is automatically deleted after 28 days. The 28-day timer may reset whenever {% data variables.product.prodname_copilot_short %} successfully validates and uses an entry. + +Facts can also be captured from pull requests that were closed without merging. In those cases, the validation step ensures that {% data variables.product.prodname_copilot_short %}'s behavior is unaffected unless the current codebase still substantiates the information. -For {% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, or {% data variables.copilot.copilot_max_short %} subscribers, {% data variables.copilot.copilot_memory %} is on by default and can be disabled in personal {% data variables.product.prodname_copilot_short %} settings on {% data variables.product.github %}. +## Enabling {% data variables.copilot.copilot_memory %} -For enterprise and organization-managed subscriptions, {% data variables.copilot.copilot_memory %} is off by default. An enterprise or organization admin can enable it in their settings, which makes it available to all members who receive a {% data variables.product.prodname_copilot_short %} subscription through that organization. +{% data variables.copilot.copilot_memory %} is enabled per user, not per repository. Once enabled, it applies in any repository where that user works with {% data variables.product.prodname_copilot %}. For individual plans, it's on by default. For enterprise- and organization-managed plans, an administrator must enable the policy first, and then individual users can opt out. -For more information, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/copilot-memory). +For more information, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/copilot-memory/manage-for-yourself) or [AUTOTITLE](/copilot/how-tos/use-copilot-agents/copilot-memory/manage-as-administrator). diff --git a/content/copilot/concepts/agents/enterprise-management.md b/content/copilot/concepts/agents/enterprise-management.md index 6e37ad7af977..9d4c530bed12 100644 --- a/content/copilot/concepts/agents/enterprise-management.md +++ b/content/copilot/concepts/agents/enterprise-management.md @@ -52,7 +52,7 @@ Third-party agents, or partner agents, such as Claude and Codex work alongside { Enterprise administrators and AI managers can control the availability of third-party agents from the Agents page in the AI Controls view. These policies govern third-party agent usage on {% data variables.product.prodname_dotcom_the_website %}. -For more information about available third-party agents, see [AUTOTITLE](/copilot/concepts/agents/about-third-party-agents). +For more information about available third-party agents, see [AUTOTITLE](/copilot/concepts/agents/about-third-party-coding-agents). ## Local agents diff --git a/content/copilot/concepts/agents/github-copilot-app.md b/content/copilot/concepts/agents/github-copilot-app.md index 4b3800cbdfbf..fb29f6408847 100644 --- a/content/copilot/concepts/agents/github-copilot-app.md +++ b/content/copilot/concepts/agents/github-copilot-app.md @@ -14,8 +14,8 @@ category: > [!NOTE] The {% data variables.copilot.github_copilot_app %} is in {% data variables.release-phases.technical_preview %} and subject to change. > -> * **{% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} users** — Download and install from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-github-copilot-app-overview&utm_medium=docs&utm_campaign=github-copilot-app-tech-preview-2026) if your organization or enterprise has enabled preview features and {% data variables.copilot.copilot_cli_short %}. -> * **{% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, and {% data variables.copilot.copilot_max_short %} users** — To request access, [join the waitlist](https://gh.io/github-copilot-app?utm_source=docs-github-copilot-app-overview&utm_medium=docs&utm_campaign=github-copilot-app-tech-preview-2026). +> * **{% data variables.copilot.copilot_business_short %}, {% data variables.copilot.copilot_enterprise_short %}, {% data variables.copilot.copilot_pro_short %}, and {% data variables.copilot.copilot_pro_plus_short %} users** — Download and install from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-about-github-copilot-app-repo&utm_medium=docs&utm_campaign=msbuild-2026). For {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %}, your organization or enterprise must enable preview features and {% data variables.copilot.copilot_cli_short %}. +> * **{% data variables.copilot.copilot_free_short %} users and users without a {% data variables.product.prodname_copilot_short %} plan** — To request access, [join the waitlist](https://gh.io/github-copilot-app?utm_source=docs-about-github-copilot-app-waitlist&utm_medium=docs&utm_campaign=msbuild-2026). ## Introduction @@ -37,17 +37,18 @@ The {% data variables.copilot.github_copilot_app %} supports the following opera * **Stay in one place.** Triage issues, direct agents, review changes, and land pull requests without switching between your terminal, IDE, and browser. * **Start fast.** The app connects to {% data variables.product.github %} natively—your repositories, branches, issues and pull requests work out of the box with no additional setup. * **Stay in control.** Choose how much autonomy to give agents, from fully collaborative to fully autonomous, and adjust the model and reasoning effort for each session. +* **Collaborate on a shared surface.** Use canvases to create custom interfaces where people and agents can collaborate. ## What can I do with the {% data variables.copilot.github_copilot_app %}? -* **Parallel workspaces.** Run multiple isolated agent sessions simultaneously, each with a dedicated git worktree and branch. -* **Session modes.** Choose how you work with agents: Interactive (collaborative), Plan (agent plans, you approve), or Autopilot (fully autonomous). -* **{% data variables.product.github %} integration.** Browse and find issues, start sessions from them, create and close pull requests, review pull requests, and view CI check results—all within the app. -* **Model choice.** Select from multiple LLMs and adjust reasoning effort per session. -* **Customizations.** Configure MCP servers, skills, extensions, and plugins for each session. -* **Scheduled workflows.** Save recurring agent tasks and run them on a schedule or on demand. -* **Quick chats.** Brainstorm in a conversation mode without creating a dedicated branch or workspace. -* **Search.** Search for issues or pull requests across your repositories directly from the app. +* **Parallel workspaces:** Run multiple isolated agent sessions simultaneously, each with a dedicated git worktree and branch. You can also run sessions in cloud sandboxes (public preview) hosted by {% data variables.product.github %}. For more information, see [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes). +* **Session modes:** Choose how you work with agents: Interactive (collaborative), Plan (agent plans, you approve), or Autopilot (fully autonomous). You can also select from multiple LLMs and adjust reasoning effort for each session. +* **{% data variables.product.github %} integration:** Browse and find issues, start sessions from them, create and close pull requests, review pull requests, view CI check results, and search across your repositories—all within the app. +* **Customizations:** Configure MCP servers, skills, extensions, and plugins globally or for each session. +* **Automations:** Save recurring agent tasks and run them on a schedule or on demand. +* **Quick chats:** Brainstorm in a conversation mode without creating a dedicated branch or workspace. +* **Session history:** Use `/chronicle` to get insights from previous sessions, including work you started in the app. +* **Canvases:** Open custom, agent-driven artifacts and interfaces where people and agents can collaborate. ## {% data variables.copilot.github_copilot_app %} workflow diff --git a/content/copilot/concepts/agents/index.md b/content/copilot/concepts/agents/index.md index 1ff14e028926..b7e7541f3ba8 100644 --- a/content/copilot/concepts/agents/index.md +++ b/content/copilot/concepts/agents/index.md @@ -12,7 +12,8 @@ children: - /code-review - /copilot-memory - /hooks - - /about-third-party-agents + - /about-third-party-coding-agents + - /agent-apps - /openai-codex - /anthropic-claude - /about-agent-skills diff --git a/content/copilot/concepts/agents/openai-codex.md b/content/copilot/concepts/agents/openai-codex.md index 79558ce864c4..997c0e491a4b 100644 --- a/content/copilot/concepts/agents/openai-codex.md +++ b/content/copilot/concepts/agents/openai-codex.md @@ -19,9 +19,9 @@ The {% data variables.product.prodname_openai_codex %} coding agent and the {% d ## {% data variables.product.prodname_openai_codex %} coding agent -Before you can assign tasks to {% data variables.product.prodname_openai_codex %} coding agent, it must be enabled. See [AUTOTITLE](/copilot/how-tos/manage-your-account/manage-policies#enabling-or-disabling-third-party-agents-in-your-repositories). +Before you can assign tasks to {% data variables.product.prodname_openai_codex %} coding agent, it must be enabled. See [AUTOTITLE](/copilot/how-tos/manage-your-account/manage-policies#enabling-or-disabling-third-party-coding-agents-in-your-repositories). -To learn more about using third-party agents on {% data variables.product.github %}, see [AUTOTITLE](/free-pro-team@latest/copilot/concepts/agents/about-third-party-agents). +To learn more about using third-party agents on {% data variables.product.github %}, see [AUTOTITLE](/free-pro-team@latest/copilot/concepts/agents/about-third-party-coding-agents). ### Supported models diff --git a/content/copilot/concepts/context/mcp.md b/content/copilot/concepts/context/mcp.md index 57b83b3a5765..658e15c456d4 100644 --- a/content/copilot/concepts/context/mcp.md +++ b/content/copilot/concepts/context/mcp.md @@ -44,7 +44,7 @@ To learn how to configure and use MCP servers, see: * [AUTOTITLE](/copilot/how-tos/provide-context/use-mcp/extend-copilot-chat-with-mcp) for {% data variables.copilot.copilot_chat_short %} in your IDE * [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers) for {% data variables.copilot.copilot_cli_short %} -* [AUTOTITLE](/copilot/how-tos/use-copilot-agents/coding-agent/extend-coding-agent-with-mcp) for {% data variables.copilot.copilot_cloud_agent %} +* [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers) for repository MCP configuration on {% data variables.product.prodname_dotcom_the_website %} {% data reusables.copilot.mcp.mcp-policy %} @@ -54,7 +54,7 @@ MCP is supported across the following clients: * **IDEs**: There is broad support for local MCP servers in clients such as {% data variables.product.prodname_vscode %}, JetBrains IDEs, Xcode, and others. Support for remote MCP servers is growing, with editors like {% data variables.product.prodname_vscode %}, {% data variables.product.prodname_vs %}, JetBrains IDEs, Xcode, Eclipse, Cursor, and Windsurf providing this functionality with OAuth or PAT. To find out if your preferred editor supports remote MCP servers, check the documentation for your specific editor. * **{% data variables.copilot.copilot_cli_short %}**: {% data variables.copilot.copilot_cli %} supports both local and remote MCP servers. The {% data variables.product.github %} MCP server is built in and available without additional configuration. -* **{% data variables.copilot.copilot_cloud_agent %}**: {% data variables.copilot.copilot_cloud_agent %} supports MCP servers configured at the repository level. The {% data variables.product.github %} MCP server and the Playwright MCP server are configured by default. +* **{% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_code-review_short %}**: {% data variables.product.prodname_dotcom_the_website %} supports MCP servers configured at the repository level. The configuration applies to both {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_code-review_short %}. The {% data variables.product.github %} MCP server and Playwright MCP server are configured by default. ## About the {% data variables.product.github %} MCP server @@ -105,7 +105,7 @@ The {% data variables.product.github %} MCP Registry is a curated list of MCP se * [AUTOTITLE](/copilot/how-tos/provide-context/use-mcp/extend-copilot-chat-with-mcp)—Add MCP servers to {% data variables.copilot.copilot_chat_short %} in your IDE * [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers)—Add MCP servers to {% data variables.copilot.copilot_cli_short %} -* [AUTOTITLE](/copilot/how-tos/use-copilot-agents/coding-agent/extend-coding-agent-with-mcp)—Add MCP servers to {% data variables.copilot.copilot_cloud_agent %} +* [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers)—Configure repository MCP servers for {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_code-review_short %} * [AUTOTITLE](/copilot/how-tos/provide-context/use-mcp/set-up-the-github-mcp-server)—Set up the {% data variables.product.github %} MCP server * [AUTOTITLE](/copilot/how-tos/provide-context/use-mcp/use-the-github-mcp-server)—Use the {% data variables.product.github %} MCP server * [AUTOTITLE](/copilot/tutorials/enhancing-copilot-agent-mode-with-mcp) diff --git a/content/copilot/concepts/index.md b/content/copilot/concepts/index.md index 2436d3183b39..78cc566a40a9 100644 --- a/content/copilot/concepts/index.md +++ b/content/copilot/concepts/index.md @@ -8,6 +8,7 @@ children: - /completions - /chat - /agents + - /about-cloud-and-local-sandboxes - /spark - /copilot-usage-metrics - /prompting diff --git a/content/copilot/concepts/policies.md b/content/copilot/concepts/policies.md index 12ea03cfd54b..db2d14e30868 100644 --- a/content/copilot/concepts/policies.md +++ b/content/copilot/concepts/policies.md @@ -6,7 +6,7 @@ intro: 'Learn about the policies that control the availability of {% data variab versions: feature: copilot contentType: concepts -category: +category: - Manage Copilot for a team --- @@ -40,7 +40,7 @@ Enterprise owners can choose to set policies for {% data variables.product.prodn ### Policy defined -If a policy is defined at the enterprise level, the policy applies to all users and control of the policy is disabled at the organization level. +If a policy is defined at the enterprise level, then control of the policy is disabled at the organization level. ### Granular organization selection @@ -54,6 +54,10 @@ For members who receive a {% data variables.product.prodname_copilot_short %} li For users who receive access to {% data variables.product.prodname_copilot_short %} directly from the enterprise rather than from an organization, the **Policies for enterprise-assigned users** setting determines whether "No policy" defaults to enabled or disabled. +## User opt-out + +The {% data variables.copilot.copilot_memory %} feature has a unique policy model. The feature can be enabled in enterprise or organization policies, but individual users can then opt out of using the feature in their personal settings. + ## Next steps * [AUTOTITLE](/copilot/how-tos/administer/organizations/managing-policies-for-copilot-in-your-organization) diff --git a/content/copilot/concepts/preparing-for-new-features-and-models.md b/content/copilot/concepts/preparing-for-new-features-and-models.md index d5d80318ff4a..dac54fda8c7e 100644 --- a/content/copilot/concepts/preparing-for-new-features-and-models.md +++ b/content/copilot/concepts/preparing-for-new-features-and-models.md @@ -32,7 +32,7 @@ To learn about new {% data variables.product.prodname_copilot_short %} features, | --- | --- | --- | --- | | Assistive | Respond to prompts and provide suggestions, but require human review before changes are made. | Inline suggestions, {% data variables.copilot.copilot_chat_short %}, {% data variables.copilot.copilot_for_prs %}. | All changes require user approval. | | Agentic | Autonomously research, plan, and make changes on behalf of users. | {% data variables.copilot.copilot_cloud_agent %}, third-party agents. | Can work autonomously, but with built-in protections. | -| Third-party | External coding agents that work alongside {% data variables.copilot.copilot_cloud_agent %} to complete tasks asynchronously. | {% data variables.product.prodname_anthropic_claude %}, {% data variables.product.prodname_openai_codex %}. | Same as agentic. Review provider documentation and enable via policies. See [AUTOTITLE](/copilot/concepts/agents/about-third-party-agents). | +| Third-party | External coding agents that work alongside {% data variables.copilot.copilot_cloud_agent %} to complete tasks asynchronously. | {% data variables.product.prodname_anthropic_claude %}, {% data variables.product.prodname_openai_codex %}. | Same as agentic. Review provider documentation and enable via policies. See [AUTOTITLE](/copilot/concepts/agents/about-third-party-coding-agents). | {% endrowheaders %} diff --git a/content/copilot/get-started/features.md b/content/copilot/get-started/features.md index c8b130979952..409cf82d43d7 100644 --- a/content/copilot/get-started/features.md +++ b/content/copilot/get-started/features.md @@ -51,7 +51,7 @@ An autonomous AI agent that can research a repository, create an implementation ### Third-party coding agents ({% data variables.release-phases.public_preview %}) -You can use third-party coding agents alongside {% data variables.copilot.copilot_cloud_agent %}. Third-party agents are subject to the same security protections, mitigations, and limitations as {% data variables.copilot.copilot_cloud_agent %}. See [AUTOTITLE](/copilot/concepts/agents/about-third-party-agents). +You can use third-party coding agents alongside {% data variables.copilot.copilot_cloud_agent %}. Third-party agents are subject to the same security protections, mitigations, and limitations as {% data variables.copilot.copilot_cloud_agent %}. See [AUTOTITLE](/copilot/concepts/agents/about-third-party-coding-agents). ### {% data variables.copilot.copilot_code-review_short %} diff --git a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/enable-copilot-cloud-agent.md b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/enable-copilot-cloud-agent.md index 4fa607faa3bf..22ad1d5d23d7 100644 --- a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/enable-copilot-cloud-agent.md +++ b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/enable-copilot-cloud-agent.md @@ -48,4 +48,10 @@ You can enable third-party MCP servers to allow developers to integrate {% data {% data reusables.enterprise-accounts.view-mcp-policies %} 1. Set a policy for **MCP servers in {% data variables.product.prodname_copilot_short %}**. ->[!NOTE] The "MCP Registry URL" and "Restrict MCP access to registry servers" policies do **not** apply to {% data variables.copilot.copilot_cloud_agent %}. +> [!NOTE] The "MCP Registry URL" and "Restrict MCP access to registry servers" policies do **not** apply to {% data variables.copilot.copilot_cloud_agent %}. + +## Enabling {% data variables.copilot.agent_apps %} and third-party agents + +Enterprise owners can enable third-party agents, including {% data variables.copilot.agent_apps %}, for their organizations. Once enabled at the enterprise level, organization owners can choose which agents to allow. For an overview of {% data variables.copilot.agent_apps %}, see [AUTOTITLE](/copilot/concepts/agents/agent-apps). + +To manage agent and enterprise policies, see [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-enterprise-policies). diff --git a/content/copilot/how-tos/administer-copilot/manage-for-organization/add-copilot-cloud-agent.md b/content/copilot/how-tos/administer-copilot/manage-for-organization/add-copilot-cloud-agent.md index 4e4950264961..d21320eca614 100644 --- a/content/copilot/how-tos/administer-copilot/manage-for-organization/add-copilot-cloud-agent.md +++ b/content/copilot/how-tos/administer-copilot/manage-for-organization/add-copilot-cloud-agent.md @@ -45,6 +45,17 @@ By default, {% data variables.copilot.copilot_cloud_agent %} is available in all Once {% data variables.copilot.copilot_cloud_agent %} is enabled for a repository, any user with access to {% data variables.copilot.copilot_cloud_agent %} and write permission for the repository can delegate work to {% data variables.product.prodname_copilot_short %}. +## Controlling {% data variables.copilot.copilot_automations %} in your repositories + +{% data variables.copilot.copilot_automations_cap %} let users run {% data variables.copilot.copilot_cloud_agent %} automatically, on a schedule or in response to events. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations). + +{% data variables.copilot.copilot_automations_cap %} are allowed by default in repositories where {% data variables.copilot.copilot_cloud_agent %} is available. You can control whether {% data variables.copilot.copilot_automations %} are allowed in repositories owned by your organization, separately from the {% data variables.copilot.copilot_cloud_agent %} policy. + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +{% data reusables.copilot.cloud-agent-settings %} +1. To allow or block {% data variables.copilot.copilot_automations %}, toggle the **Allow automations** setting. + ## Managing the agent firewall for your organization Organization owners can configure the {% data variables.copilot.copilot_cloud_agent %} firewall for their organization, including whether it is enabled for the organization and which external hosts and URLs the agent can access. For more information, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/customize-the-agent-firewall). diff --git a/content/copilot/how-tos/administer-copilot/manage-for-organization/manage-policies.md b/content/copilot/how-tos/administer-copilot/manage-for-organization/manage-policies.md index aa3f5fc0693a..813c874a73c0 100644 --- a/content/copilot/how-tos/administer-copilot/manage-for-organization/manage-policies.md +++ b/content/copilot/how-tos/administer-copilot/manage-for-organization/manage-policies.md @@ -44,8 +44,9 @@ category: ## Enabling or disabling third-party coding agents in your repositories > [!NOTE] -> * {% data reusables.gated-features.third-party-agents %} +> * {% data reusables.copilot.plans.permission-paid-plans-no-purchase-link %} > * If your organization is owned by an enterprise, these settings are only visible if an enterprise admin has enabled third-party coding agents at the enterprise level. See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-enterprise-policies). +> * {% data variables.copilot.agent_apps_caps %} are not enabled here. They are controlled separately by a single "{% data variables.copilot.agent_apps %}" policy. For more information, see [AUTOTITLE](/copilot/concepts/agents/agent-apps). You can choose whether to allow the following coding agents to be enabled in your organization: diff --git a/content/copilot/how-tos/chat-with-copilot/chat-in-ide.md b/content/copilot/how-tos/chat-with-copilot/chat-in-ide.md index 00dd54ff3a98..d23d0f99e702 100644 --- a/content/copilot/how-tos/chat-with-copilot/chat-in-ide.md +++ b/content/copilot/how-tos/chat-with-copilot/chat-in-ide.md @@ -214,6 +214,7 @@ To leave feedback about the {% data variables.copilot.copilot_chat %} extension, * [AUTOTITLE](/copilot/using-github-copilot/prompt-engineering-for-github-copilot) * [Using {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/docs/copilot/copilot-chat) and [Getting started with {% data variables.product.prodname_copilot %} in {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/docs/copilot/getting-started) in the {% data variables.product.prodname_vscode %} documentation +* [AUTOTITLE](/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents) * [AUTOTITLE](/copilot/github-copilot-enterprise/copilot-chat-in-github/using-github-copilot-chat-in-githubcom) * [AUTOTITLE](/copilot/github-copilot-chat/about-github-copilot-chat) * [AUTOTITLE](/free-pro-team@latest/site-policy/github-terms/github-terms-for-additional-products-and-features#github-copilot) diff --git a/content/copilot/how-tos/cloud-and-local-sandboxes/configuring-local-sandbox-settings.md b/content/copilot/how-tos/cloud-and-local-sandboxes/configuring-local-sandbox-settings.md new file mode 100644 index 000000000000..03e44e8500d4 --- /dev/null +++ b/content/copilot/how-tos/cloud-and-local-sandboxes/configuring-local-sandbox-settings.md @@ -0,0 +1,92 @@ +--- +title: Configuring local sandbox settings +shortTitle: Configure local sandbox +intro: 'Use the `/sandbox` slash command in {% data variables.copilot.copilot_cli_short %} to control how the local sandbox restricts filesystem access, network connectivity, and system capabilities.' +versions: + feature: copilot +contentType: how-tos +category: + - Configure Copilot # Copilot discovery page + - Configure Copilot CLI # Copilot CLI bespoke page +docsTeamMetrics: + - copilot-cli +--- + +{% data reusables.cli.public-preview-sandbox %} + +## About local sandbox configuration + +When you enable local sandboxing in {% data variables.copilot.copilot_cli_short %}, shell commands that {% data variables.product.prodname_copilot_short %} runs on your behalf execute inside an isolated sandbox. You can fine-tune the sandbox's behavior—controlling filesystem paths, network access, and general settings—using the `/sandbox` slash command. + +Settings are stored in `settings.json` under the `sandbox` key in your {% data variables.copilot.copilot_cli_short %} configuration directory. For more information about the configuration directory, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-config-dir-reference). + +For a conceptual overview of {% data variables.copilot.sandbox %}, see [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes). + +## Opening the sandbox configuration + +1. Start a {% data variables.copilot.copilot_cli_short %} session. +1. Enter the `/sandbox` slash command. + + This opens an interactive configuration interface with three tabs: **General**, **Filesystem**, and **Network**. Use Tab to switch between tabs. Press Esc to save your changes and close the configuration. + +## Configuring general settings + +The **General** tab controls the top-level sandbox behavior. + +| Setting | Description | +| --- | --- | +| **Sandboxing enabled** | When turned on, shell commands that {% data variables.product.prodname_copilot_short %} executes run inside the sandbox. You can also toggle this with `/sandbox enable` and `/sandbox disable`. | +| **Allow keychain access** | When turned on, sandboxed commands can use the macOS Keychain—for example, to access credentials used by `git` and `gh` credential helpers. Turn this off if you want to prevent sandboxed processes from reading stored credentials. | + +## Configuring filesystem settings + +The **Filesystem** tab controls which directories and files the sandboxed process can access. By default, the sandbox restricts filesystem access to prevent unintended reads or writes outside your project. + +| Setting | Description | +| --- | --- | +| **Include working directory** | When turned on, the current working directory is automatically added to the list of read/write paths. This means sandboxed commands can read and write files in your project directory without manually adding it to the path list. | +| **Clear policy on exit** | When turned on, all filesystem permissions are reset when the sandbox exits. This ensures that each session starts with a clean set of permissions. | + +### Adding filesystem path rules + +You can add specific path rules to grant the sandbox read-only or read/write access to directories and files outside the working directory. + +1. In the **Filesystem** tab, press A to add a new path rule. +1. Enter the file or directory path. +1. Set the permission level for the path. + +Use Enter to edit an existing path rule, and D to delete one. + +## Configuring network settings + +The **Network** tab controls whether sandboxed processes can make network connections. + +| Setting | Description | +| --- | --- | +| **Allow outbound connections** | When turned on, the sandboxed process can reach external hosts on the internet. Turn this off to fully isolate the sandbox from the network. | +| **Allow local network** | When turned on, the sandboxed process can reach hosts on your local network (for example, `localhost` or other devices on your LAN). | + +### Adding network host rules + +You can add specific host rules to allow or block access to individual hosts when outbound connections are otherwise restricted. + +1. In the **Network** tab, press A to add a new host rule. +1. Enter the hostname. +1. Set whether to allow or block access to the host. + +Use Enter to edit an existing host rule, and D to delete one. + +## Enabling and disabling the sandbox quickly + +You can toggle the sandbox on or off without opening the full configuration interface: + +* **Enable**: Enter `/sandbox enable` in the {% data variables.copilot.copilot_cli_short %} session. +* **Disable**: Enter `/sandbox disable` in the {% data variables.copilot.copilot_cli_short %} session. + +These commands change the **Sandboxing enabled** setting on the **General** tab. + +## Further reading + +* [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes) +* [AUTOTITLE](/copilot/how-tos/cloud-and-local-sandboxes/enabling-or-disabling-cloud-and-local-sandboxes-for-your-organization) +* [AUTOTITLE](/copilot/how-tos/copilot-cli/set-up-copilot-cli/configure-copilot-cli) diff --git a/content/copilot/how-tos/cloud-and-local-sandboxes/enabling-or-disabling-cloud-and-local-sandboxes-for-your-organization.md b/content/copilot/how-tos/cloud-and-local-sandboxes/enabling-or-disabling-cloud-and-local-sandboxes-for-your-organization.md new file mode 100644 index 000000000000..91fff3684a74 --- /dev/null +++ b/content/copilot/how-tos/cloud-and-local-sandboxes/enabling-or-disabling-cloud-and-local-sandboxes-for-your-organization.md @@ -0,0 +1,37 @@ +--- +title: Enabling or disabling {% data variables.copilot.sandbox %} for your organization +shortTitle: Enable or disable sandboxes +allowTitleToDifferFromFilename: true +intro: 'You can control whether members of your organization can use {% data variables.copilot.sandbox %} by managing the sandbox access policy in your organization settings.' +permissions: Organization owners +versions: + feature: copilot +contentType: how-tos +category: + - Manage cloud and local sandboxes for your organization +--- + +{% data reusables.cli.public-preview-sandbox %} + +## About enabling and disabling {% data variables.copilot.sandbox %} + +Organization owners can control whether members of their organization have access to {% data variables.copilot.sandbox %} by configuring the sandbox access policy. By default, sandbox access is disabled for organization members. + +When sandbox access is **Disabled**, sandboxes are not available for any organization members. When sandbox access is **Enabled for all members**, all organization members can use {% data variables.copilot.sandbox_short %}. + +For more information about {% data variables.copilot.sandbox %}, see [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes). + +## Enabling or disabling {% data variables.copilot.sandbox %} + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +1. In the sidebar, under "Code, planning, and automation," click **Sandboxes**. +1. Under "Sandbox access," select your preferred setting: + * **Disabled**: Sandboxes are not available for organization members. + * **Enabled for all members**: All organization members can use {% data variables.copilot.sandbox_short %}. +1. Click **Save**. + +## Further reading + +* [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes) +* [AUTOTITLE](/billing/concepts/product-billing/cloud-and-local-sandboxes) diff --git a/content/copilot/how-tos/cloud-and-local-sandboxes/index.md b/content/copilot/how-tos/cloud-and-local-sandboxes/index.md new file mode 100644 index 000000000000..7f23423c3e3d --- /dev/null +++ b/content/copilot/how-tos/cloud-and-local-sandboxes/index.md @@ -0,0 +1,11 @@ +--- +title: '{% data variables.copilot.sandbox_caps %}' +shortTitle: '{% data variables.copilot.sandbox_caps %}' +intro: 'Manage {% data variables.copilot.sandbox %} for your organization.' +versions: + feature: copilot +children: + - /enabling-or-disabling-cloud-and-local-sandboxes-for-your-organization + - /configuring-local-sandbox-settings +contentType: how-tos +--- diff --git a/content/copilot/how-tos/copilot-cli/automate-copilot-cli/index.md b/content/copilot/how-tos/copilot-cli/automate-copilot-cli/index.md index 231b11e11593..e38ee5cd4769 100644 --- a/content/copilot/how-tos/copilot-cli/automate-copilot-cli/index.md +++ b/content/copilot/how-tos/copilot-cli/automate-copilot-cli/index.md @@ -8,6 +8,7 @@ contentType: how-tos children: - /quickstart - /run-cli-programmatically + - /schedule-prompts - /automate-with-actions docsTeamMetrics: - copilot-cli diff --git a/content/copilot/how-tos/copilot-cli/automate-copilot-cli/schedule-prompts.md b/content/copilot/how-tos/copilot-cli/automate-copilot-cli/schedule-prompts.md new file mode 100644 index 000000000000..abf088be6fee --- /dev/null +++ b/content/copilot/how-tos/copilot-cli/automate-copilot-cli/schedule-prompts.md @@ -0,0 +1,133 @@ +--- +title: Scheduling prompts in {% data variables.copilot.copilot_cli %} +shortTitle: Schedule prompts +allowTitleToDifferFromFilename: true +intro: 'Use the `/every` and `/after` slash commands to submit a prompt to {% data variables.product.prodname_copilot_short %} on a recurring schedule, or after a specified delay.' +versions: + feature: copilot +contentType: how-tos +docsTeamMetrics: + - copilot-cli +category: + - Author and optimize with Copilot # Copilot discovery page + - Build with Copilot CLI # Copilot CLI bespoke page +--- + +In an interactive {% data variables.copilot.copilot_cli_short %} session you can schedule a prompt to be submitted automatically. This is useful when you want {% data variables.product.prodname_copilot_short %} to repeat a task at a regular cadence or to perform a one-off task after a delay, without you having to remember to submit the prompt manually. + +There are two slash commands for this: + +* `/every` — schedule a prompt to be sent **repeatedly** at a fixed interval. +* `/after` — schedule a prompt to be sent **once**, after a specified period of time. + +Both commands are only available inside an interactive {% data variables.copilot.copilot_cli_short %} session: the schedules fire only while the session in which they were created is running. For ways to run {% data variables.copilot.copilot_cli_short %} on a schedule when no session is open, see [Running a prompt from an external scheduler](#running-a-prompt-from-an-external-scheduler) at the end of this article. + +## Scheduling a recurring prompt with `/every` + +In an interactive {% data variables.copilot.copilot_cli_short %} session, type `/every` followed by an interval of time and the prompt you want to be submitted. + +```copilot +/every INTERVAL PROMPT +``` + +The prompt will be submitted after the interval you specified has elapsed and then again on the same cadence until you delete the schedule entry or you end the interactive CLI session. + +### Examples + +```copilot +/every 1h run the test suite and summarize any new failures +``` + +```copilot +/every 30m check for new comments on my open pull requests +``` + +## Scheduling a once-only prompt with `/after` + +Type `/after` followed by a delay and the prompt you want to submit: + +```copilot +/after DELAY PROMPT +``` + +The prompt fires once, after the delay has elapsed, and is then removed from the schedule list. + +### Examples + +```copilot +/after 30m Give me details of changes to README.md made in the last 30 minutes +``` + +```copilot +/after 10m Check that the address finder is visible on example.com/register +``` + +## Scheduling a skill + +You can use `/every` and `/after` to schedule a skill. To do this, you can reference the skill explicitly by using its slash command, or you can use natural language to tell {% data variables.product.prodname_copilot_short %} to run the skill. + +> [!NOTE] +> Only user-invocable skills can be scheduled this way. You cannot include built-in slash commands (such as `/clear`) in a scheduled prompt. + +### Examples + +```copilot +/after 2h Use the docx skill to create a new file summarizing recent changes to this repo +``` + +```copilot +/every 1d /refactor-plan Adjust the architecture of this project to improve the responsiveness of the client UI +``` + +## Interval and delay syntax + +| Suffix | Unit | Example | +| ------ | ------- | ------- | +| `s` | seconds | `30s` | +| `m` | minutes | `5m` | +| `h` | hours | `2h` | +| `d` | days | `1d` | + +A bare number with no suffix is interpreted as minutes—for example, `/every 30 remind me to check for Slack messages` schedules the prompt every 30 minutes. + +The minimum interval is **10 seconds** and the maximum is **1 day** (24 hours). + +## Identifying scheduled prompts in the session + +When a scheduled prompt is triggered, {% data variables.product.prodname_copilot_short %} precedes the prompt with text such as `[Scheduled prompt #4]` to distinguish it from a prompt you typed yourself. + +You can use the ID to cancel the schedule. For example, by entering `stop prompt 4`. + +## Managing scheduled prompts + +To list the active schedules for the current session, type `/every` or `/after` with no arguments. + +To delete a schedule, use the arrow keys on your keyboard to move through the list and select the schedule you want to delete, then press d. + +Press Esc to exit the schedule list. + +## What happens when you close and reopen a session + +Scheduled prompts are scoped to the session they were created in, and they are only triggered while that session is running. + +When you reopen the session (using the `--continue` or `--resume` command line options) the schedules are restarted, with interval before a schedule is triggered measured from the moment you reopen the session. + +If an `/after` schedule had not been triggered before you closed the session, it remains in the schedule list and will be triggered after the specified delay in the reopened session. + +## Running a prompt from an external scheduler + +The `/every` and `/after` commands only run while an interactive {% data variables.copilot.copilot_cli_short %} session is open. If you want a prompt to run on a schedule even when no session is active, you can run {% data variables.copilot.copilot_cli_short %} from an external scheduler such as **cron** on macOS or Linux, or **Task Scheduler** on Windows. + +To run {% data variables.copilot.copilot_cli_short %} programmatically, use the syntax `copilot -p "YOUR PROMPT"`. The CLI processes your prompt without displaying the interactive interface and then exits. + +This is useful for tasks such as: + +* **Nightly maintenance** — for example, running your test suite against the latest changes on a branch every night and posting a summary to a tracking issue. +* **Periodic dependency checks** — for example, opening a weekly pull request that updates dependencies and runs the test suite against the result. +* **Scheduled reports** — for example, generating a daily summary of new issues or pull requests assigned to you and emailing or posting it to a chat channel. + +For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically). + +## Further reading + +* [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference#slash-commands-in-the-interactive-interface) diff --git a/content/copilot/how-tos/copilot-cli/cli-getting-started.md b/content/copilot/how-tos/copilot-cli/cli-getting-started.md index 8b3cc2c34206..925f0bc75697 100644 --- a/content/copilot/how-tos/copilot-cli/cli-getting-started.md +++ b/content/copilot/how-tos/copilot-cli/cli-getting-started.md @@ -69,6 +69,8 @@ Use one of these commands: Give me an overview of this project. ``` + If you like, you can speak your prompt instead of typing it. See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/voice-input). + ## Core shortcuts to master | Shortcut | Action | diff --git a/content/copilot/how-tos/copilot-cli/index.md b/content/copilot/how-tos/copilot-cli/index.md index 25e6f72c3b09..36dc7ab4747c 100644 --- a/content/copilot/how-tos/copilot-cli/index.md +++ b/content/copilot/how-tos/copilot-cli/index.md @@ -24,6 +24,7 @@ children: - /automate-copilot-cli/automate-with-actions - /automate-copilot-cli/quickstart - /automate-copilot-cli/run-cli-programmatically + - /automate-copilot-cli/schedule-prompts - /content/copilot/concepts/agents/about-agent-skills - /content/copilot/concepts/agents/copilot-cli/about-cli-plugins - /content/copilot/concepts/agents/copilot-cli/about-copilot-cli @@ -62,9 +63,11 @@ children: - /set-up-copilot-cli/troubleshoot-copilot-cli-auth - /use-copilot-cli/agentic-code-review - /use-copilot-cli/allowing-tools + - /use-copilot-cli/voice-input - /use-copilot-cli/chronicle - /use-copilot-cli/connecting-vs-code - /use-copilot-cli/delegate-tasks-to-cca + - /use-copilot-cli/browse-issues-prs-gists - /use-copilot-cli/invoke-custom-agents - /use-copilot-cli/manage-pull-requests - /use-copilot-cli/overview diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli/browse-issues-prs-gists.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli/browse-issues-prs-gists.md new file mode 100644 index 000000000000..c8b62b2d9bd8 --- /dev/null +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli/browse-issues-prs-gists.md @@ -0,0 +1,119 @@ +--- +title: Browsing issues, pull requests, and gists from {% data variables.copilot.copilot_cli %} +shortTitle: Browse issues, PRs, gists +allowTitleToDifferFromFilename: true +intro: 'Use the tabs in an interactive {% data variables.copilot.copilot_cli_short %} session to browse issues, pull requests and gists, without leaving the terminal.' +versions: + feature: copilot +contentType: how-tos +category: + - Author and optimize with Copilot # Copilot discovery page + - Build with Copilot CLI # Copilot CLI bespoke page +docsTeamMetrics: + - copilot-cli +--- + +> [!NOTE] +> The new tabbed interface is currently in {% data variables.release-phases.public_preview %} and is subject to change. + +An interactive {% data variables.copilot.copilot_cli_short %} session has four tabs at the top of the screen: +* **Session**: The regular chat experience where you enter prompts for {% data variables.product.prodname_copilot_short %}. +* **Issues**: Open issues in the current repository on {% data variables.product.prodname_dotcom %}. +* **Pull requests**: Open pull requests in the current repository on {% data variables.product.prodname_dotcom %}. +* **Gists**: Your gists on {% data variables.product.prodname_dotcom %}. + +The **Issues**, **Pull requests**, and **Gists** tabs let you browse content from {% data variables.product.prodname_dotcom_the_website %} without having to switch to a browser. This is useful when you want to: + +* **Find an issue or pull request to work on**. +* **Pull an item into your chat** — quickly insert a reference to the selected item into the prompt box so that you can ask {% data variables.product.prodname_copilot_short %} to investigate, fix, comment on, or review it. +* **Jump to an item on {% data variables.product.prodname_dotcom_the_website %}** — for example when you want to comment on an issue, merge a pull request, or edit a gist. + +## Switching between tabs + +* Press Tab to move to the next tab. +* Press Shift+Tab to move to the previous tab. + +Tab switching is paused while another part of the CLI—such as the slash command picker—is observing your keystrokes. + +> [!NOTE] +> The **Issues** and **Pull requests** tabs are only shown when {% data variables.copilot.copilot_cli_short %} is running inside a {% data variables.product.prodname_dotcom %} repository. In other directories, only the **Session** and **Gists** tabs are shown. + +## Common keyboard controls + +The **Issues**, **Pull requests**, and **Gists** tabs all use the same controls. Regardless of which of these tabs you're on: + +* Use the up and down arrow keys to highlight an item in the list. +* Use the left and right arrow keys to navigate between pages in a list. +* Press Enter to display a detailed view of the highlighted item. Press Esc in the details view to return to the list. +* Press o to open the highlighted item (or, in the detailed view, the current item) on {% data variables.product.prodname_dotcom_the_website %}. +* Press c to insert a reference to the item into the prompt input area and jump back to the **Session** tab. + +For the full set of keypresses you can use, see [Keyboard reference](#keyboard-reference) at the end of this article. + +## Browsing issues + +The **Issues** tab lists the **open** issues in the current repository that involve you—issues you authored, were assigned, were mentioned in, or commented on. Each row shows the issue title, the issue number, the author, and how long ago the issue was opened. + +The {% data variables.product.prodname_dotcom %} search query used to populate the list is shown above it. Press a to toggle between showing only issues that involve you and showing every open issue in the repository. + +Pressing c inserts a reference to the issue into the prompt box on the **Session** tab. You can then enter a prompt that relates to this issue. For example: + +```copilot +#1234 suggest a fix for this bug +``` + +## Browsing pull requests + +The **Pull requests** tab lists the **open** pull requests in the current repository that involve you—pull requests you authored, were assigned, were mentioned in, were asked to review, or commented on. Each row shows the pull request title, number, author, and how long ago the pull request was opened. + +The {% data variables.product.prodname_dotcom %} search query used to populate the list is shown above it. Press a to toggle between showing only pull requests that involve you and showing every open pull request in the repository. + +Pressing c inserts a reference to the pull request into the prompt box on the **Session** tab. You can then enter a prompt that relates to this pull request. For example: + +```copilot +#5678 check this out and run tests +``` + +## Browsing your gists + +The **Gists** tab lists the gists owned by the {% data variables.product.prodname_dotcom %} account you are signed in to. Both public and secret gists are shown. Unlike the **Issues** and **Pull requests** tabs, the **Gists** tab is not scoped to a repository—it is always available, regardless of where you started the CLI. + +Pressing c inserts the gist's URL into the prompt box on the **Session** tab. You can then enter a prompt that relates to this gist. For example: + +```copilot +https://gist.github.com/USERNAME/GIST-ID summarize this +``` + +## Modifying issues, pull requests, and gists + +The **Issues**, **Pull requests**, and **Gists** tabs are read-only environments. There are two ways you can work on an item you find in one of these tabs: + +* **Press o to open it on {% data variables.product.prodname_dotcom_the_website %}** and use the web UI to modify the item. +* **Press c to drop a reference into the prompt box** and ask {% data variables.product.prodname_copilot_short %} to perform the activity for you. For example: + + ```copilot + #1234 add a comment: "Any update on this?" + ``` + + ```copilot + #5678 merge this + ``` + + ```copilot + https://gist.github.com/USERNAME/GIST-ID delete this + ``` + +## Keyboard reference + +The footer hint bar in the **Issues**, **Pull requests**, and **Gists** tabs summarizes the available keys: + +| Key | Where | Action | +| --- | --- | --- | +| Tab / Shift+Tab | Any home tab | Switch to the next or previous home tab. | +| /
j / k | List view | Highlight the next or previous item in a list. | +| /
l / h | List view | Display the next or previous page in a multi-page list. | +| Enter | List view | Open the details view for the highlighted item. | +| o | List view or details view | Open the highlighted item on {% data variables.product.prodname_dotcom_the_website %} in your browser. | +| c | List view or details view | Insert a reference to the item into the prompt input area and jump back to the **Session** tab. | +| a | List view on **Issues** and **Pull requests** tabs | Toggle between showing only items that involve you and showing every open item in the repository. | +| Esc | Details view | Return to the list view. | diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli/chronicle.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli/chronicle.md index a99cb53f55ab..eb4fbdf5a07f 100644 --- a/content/copilot/how-tos/copilot-cli/use-copilot-cli/chronicle.md +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli/chronicle.md @@ -15,13 +15,13 @@ docsTeamMetrics: - copilot-cli --- -{% data variables.copilot.copilot_cli_short %} stores the data from your CLI sessions locally on your machine. This session data allows you to: +{% data variables.copilot.copilot_cli_short %} stores the data from your CLI sessions locally on your machine, and by default syncs sessions to your {% data variables.product.github %} account. This session data allows you to: * Resume previous sessions and pick up right where you left off. * Use the `/chronicle` slash command to generate standup reports, get personalized tips, and receive suggestions for improving your `.github/copilot-instructions.md` file. * Ask {% data variables.product.prodname_copilot_short %} questions about your past interactions. -This article explains how to use these features. For a deeper dive into how session data is stored, and the benefits of the `/chronicle` command, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/chronicle). +This article explains how to use these features from {% data variables.copilot.copilot_cli_short %}. For a deeper dive into how session data is stored and synced, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/chronicle). For querying your sessions from {% data variables.product.prodname_vscode_shortname %}, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents). ## Resuming a previous session @@ -67,18 +67,18 @@ If you don't specify a file path, the Markdown file is saved in the current work ## Using the `/chronicle` slash command -{% data reusables.copilot.copilot-cli.cli-experimental-chronicle %} - The `/chronicle` slash command provides a set of subcommands that generate specific types of insights from your session history. While you can ask {% data variables.product.prodname_copilot_short %} free-form questions about your sessions at any time, `/chronicle` subcommands provide a quick way to get specific insights. When you type `/chronicle` without arguments, a picker is displayed that lets you choose from the available subcommands: | Subcommand | Description | | ---------- | ----------- | -| `standup` | Generate a standup report from your recent work. | -| `tips` | Get personalized tips based on your usage patterns. | -| `improve` | Suggest improvements to your {% data variables.product.prodname_copilot_short %} custom instructions file. | -| `reindex` | Rebuild the session store index from your session history. | +| `standup` | Generate a standup report from your recent work. | +| `tips` | Get personalized tips based on your usage patterns. | +| `cost tips` | Get feedback on your token spend and suggestions for reducing costs. | +| `search` | Search your session history for specific topics or keywords. | +| `improve` | Suggest improvements to your {% data variables.product.prodname_copilot_short %} custom instructions file. | +| `reindex` | Rebuild the local session store from your session history, and sync session data to your account. | You can also invoke a subcommand directly, without using the picker—for example, `/chronicle standup`. @@ -136,6 +136,22 @@ You can focus the tips on a specific area by appending context after `/chronicle /chronicle tips for better prompting ``` +### `/chronicle cost tips` + +This analyzes your token usage across recent sessions to show where tokens are being spent and suggests ways to reduce costs. {% data variables.product.prodname_copilot_short %} looks at patterns like prompt length, tool call frequency, and continuation steps to identify opportunities for more efficient usage. + +```copilot copy +/chronicle cost tips +``` + +### `/chronicle search` + +This searches all of your session content (not just summaries) for specific keywords or topics. Unlike free-form questions that rely on semantic understanding, `/chronicle search` performs a direct content search, making it useful when you know the exact term or topic you are looking for. + +```copilot copy +/chronicle search authentication +``` + ### `/chronicle improve` This does a deep dive into your session history to find places where {% data variables.product.prodname_copilot_short %} struggled to provide the kind of response or results you were looking for, or where you had to course-correct by providing follow-up prompts. On the basis of this research, it suggests improvements to your `.github/copilot-instructions.md` custom instructions file. @@ -195,4 +211,5 @@ Have I worked on anything related to authentication in the last month? ## Further reading * [AUTOTITLE](/copilot/concepts/agents/copilot-cli/chronicle) +* [AUTOTITLE](/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents) * [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli/index.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli/index.md index 397559a3f848..d969faca9f71 100644 --- a/content/copilot/how-tos/copilot-cli/use-copilot-cli/index.md +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli/index.md @@ -9,8 +9,10 @@ redirect_from: children: - /overview - /allowing-tools + - /voice-input - /connecting-vs-code - /delegate-tasks-to-cca + - /browse-issues-prs-gists - /roll-back-changes - /invoke-custom-agents - /steer-agents diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli/overview.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli/overview.md index d884cf192102..2e32317b64bf 100644 --- a/content/copilot/how-tos/copilot-cli/use-copilot-cli/overview.md +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli/overview.md @@ -51,6 +51,8 @@ Install {% data variables.copilot.copilot_cli_short %}. See [AUTOTITLE](/copilot This can be a simple chat question, or a request for {% data variables.product.prodname_copilot_short %} to perform a specific task, such as fixing a bug, adding a feature to an existing application, or creating a new application. + As an alternative to typing, you can speak your prompt. See [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/voice-input). + For some examples of prompts, see [AUTOTITLE](/copilot/concepts/agents/about-copilot-cli). 1. When {% data variables.product.prodname_copilot_short %} wants to use a tool that could modify or execute files—{% data reusables.cli.tools-needing-approval %}—it will ask you to approve the use of the tool. @@ -117,6 +119,16 @@ You can prepend your input with `!` to directly run shell commands, without maki !git clone https://github.com/github/copilot-cli ``` +### Schedule prompts to run later + +You can schedule prompts to run in the future using the `/every` and `/after` slash commands. The `/every` command schedules a prompt to run repeatedly at a specified interval, while the `/after` command schedules a one-shot prompt to run once after a specified delay. For example: + +```shell +/every 1h Run frontend tests and report any failures +``` + +For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/automate-copilot-cli/schedule-prompts). + ### Resume an interactive session You can use the `--resume` command-line option or the `/resume` slash command to select and resume an interactive CLI session, allowing you to pick up right where you left off, with the saved context. You can kick off a {% data variables.copilot.copilot_cloud_agent %} session on {% data variables.product.github %}, and then use {% data variables.copilot.copilot_cli %} to bring that session to your local environment. @@ -263,6 +275,10 @@ Details of your configured MCP servers are stored in the `mcp-config.json` file, For situations where you trust {% data variables.product.prodname_copilot_short %} to run freely, you can use the `--allow-all` or `--yolo` flags to enable all permissions at once. +### Run in a sandbox + +You can run {% data variables.copilot.copilot_cli_short %} sessions inside a sandbox to restrict access to your filesystem, network, and system capabilities. To enable local sandboxing, enter `/sandbox enable` inside a session. To start a cloud-backed session instead, run `copilot --cloud`. For more information, see [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes). + ### Toggle reasoning visibility Press Ctrl+T to show or hide the model's reasoning process while it generates a response. This setting persists across sessions, allowing you to observe how {% data variables.product.prodname_copilot_short %} works through complex problems. diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli/steer-remotely.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli/steer-remotely.md index 95e32d8be690..06b8dcd7a7be 100644 --- a/content/copilot/how-tos/copilot-cli/use-copilot-cli/steer-remotely.md +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli/steer-remotely.md @@ -19,6 +19,8 @@ Remote control lets you connect to a running {% data variables.copilot.copilot_c This article explains how to enable and use remote control. For more conceptual information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-remote-control). +{% data reusables.copilot.copilot-cli.synced-sessions-view-only %} + ## Prerequisites * The machine where the CLI session is running must be online, with the session actively running in a terminal. @@ -75,7 +77,7 @@ copilot --no-remote ``` > [!NOTE] -> The command-line options `--remote` and `--no-remote` always take precedence over the `remoteSessions` setting in the settings file. +> The command-line options `--remote` and `--no-remote` always take precedence over the `remote` setting in the settings file. ## Accessing a session from {% data variables.product.prodname_dotcom_the_website %} @@ -150,7 +152,7 @@ On {% data variables.product.prodname_dotcom_the_website %}, a message tells you Remote control is disabled by default, but may be enabled in your {% data variables.product.prodname_copilot_short %} settings file (typically `~/.copilot/settings.json`). You can ensure a session is not remotely controllable by: * **For a single session**: Start the CLI with `--no-remote` to prevent remote control for that session, regardless of your settings file value. -* **Permanently**: Remove the `"remoteSessions": true` setting from `~/.copilot/settings.json` (or set it to `false`). +* **Permanently**: Remove the `"remoteSessions": true` setting from `~/.copilot/settings.json`, or set it to `false`. ## Further reading diff --git a/content/copilot/how-tos/copilot-cli/use-copilot-cli/voice-input.md b/content/copilot/how-tos/copilot-cli/use-copilot-cli/voice-input.md new file mode 100644 index 000000000000..73b82676e6e9 --- /dev/null +++ b/content/copilot/how-tos/copilot-cli/use-copilot-cli/voice-input.md @@ -0,0 +1,85 @@ +--- +title: Use voice input with Copilot CLI +shortTitle: Voice input +intro: 'Speak your prompts to {% data variables.copilot.copilot_cli %} instead of typing them, using the CLI''s speech-to-text feature.' +versions: + feature: copilot +contentType: how-tos +category: + - Author and optimize with Copilot # Copilot discovery page + - Build with Copilot CLI # Copilot CLI bespoke page +docsTeamMetrics: + - copilot-cli +--- + +Voice input lets you dictate prompts to {% data variables.copilot.copilot_cli_short %} by speaking into your microphone instead of typing on the keyboard. Transcription runs entirely on your local machine. Your audio is not sent over the network. The recognized text is inserted at the cursor position in the prompt input area, where you can edit it before submitting. + +## Prerequisite + +You need a working microphone connected to your machine. Voice input uses your system's default microphone. + +## Limitation + +Voice input is currently only supported for English and Spanish dictation. English is the default language for speech recognition. + +## Enabling voice input + +Before you can dictate prompts, you need to download the voice runtime that powers speech recognition, and a voice model. + +1. In an interactive {% data variables.copilot.copilot_cli_short %} session, enter the `/voice` slash command. +1. When prompted, select **Continue** to download the voice runtime. + + The download runs in the background. You can keep using {% data variables.copilot.copilot_cli_short %} while it completes. + +1. When you're prompted to choose a voice model, press Enter with "Download default model" selected to download the English speech-to-text model. + + Alternatively, if you want to dictate in Spanish: + + 1. Use the arrow keys on your keyboard to select "Browse models", then press Enter. + 1. In the voice models picker, use the arrow keys to select the Spanish speech-to-text model, then press Enter to download it. + 1. Press Esc to exit the picker. + +## Using voice input + +There are two ways to dictate prompts. + +### For short prompts + +1. Hold down the space bar on your keyboard. + + After a brief moment, recording begins. + +1. Speak your prompt. +1. Release the space bar. + + {% data variables.copilot.copilot_cli_short %} transcribes your speech and inserts the result at the cursor position in the prompt input area. + +### For longer prompts + +Rather than holding down the space bar, you can toggle voice recording on and off. This is more convenient for longer prompts. + +1. Press Ctrl+X followed by V to start recording. +1. Speak your prompt. +1. Press any key to stop recording and insert the transcription. + +## Switching voice models + +You can dictate prompts in English or Spanish, but the appropriate voice model must be downloaded and activated for the language you want to use. + +To change to a different voice model: + +1. Enter the `/voice models` slash command. + + The voice models picker is displayed. A check mark indicates the currently active model. + +1. In the voice models picker, use the arrow keys on your keyboard to select the English or Spanish speech-to-text, then press Enter. + + If the model is not already downloaded, it will be downloaded to your machine. + +1. If you downloaded a model, press Enter again to make it the active model. + +Your choice of model—and whether voice input is enabled or disabled—is stored in your {% data variables.product.prodname_copilot_short %} settings file (typically `~/.copilot/settings.json`) so that your preferences persist across CLI sessions. + +## Further reading + +* [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/overview) diff --git a/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/extend-cloud-agent-with-mcp.md b/content/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers.md similarity index 80% rename from content/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/extend-cloud-agent-with-mcp.md rename to content/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers.md index 78424baba476..c66cf1acc749 100644 --- a/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/extend-cloud-agent-with-mcp.md +++ b/content/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers.md @@ -1,10 +1,11 @@ --- -title: Connect agents to external tools -shortTitle: Extend cloud agent with MCP -intro: 'Connect {% data variables.copilot.copilot_cloud_agent %} to external tools and data sources through the Model Context Protocol (MCP).' +title: Configure MCP servers for your repository +shortTitle: Configure MCP servers +intro: 'Configure Model Context Protocol (MCP) servers for your repository to give {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_code-review_short %} access to external tools and data sources.' versions: feature: copilot redirect_from: + - /copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/extend-cloud-agent-with-mcp - /copilot/how-tos/use-copilot-agents/coding-agent/extend-coding-agent-with-mcp - /copilot/customizing-copilot/using-model-context-protocol/extending-copilot-coding-agent-with-mcp - /copilot/customizing-copilot/extending-copilot-coding-agent-with-mcp @@ -21,18 +22,26 @@ category: ## Prerequisite -Before setting up an MCP server for {% data variables.copilot.copilot_cloud_agent %}, read [AUTOTITLE](/copilot/concepts/agents/cloud-agent/mcp-and-cloud-agent) to make sure you understand the concepts around MCP servers and {% data variables.copilot.copilot_cloud_agent %}. +Before setting up MCP servers for your repository, read [AUTOTITLE](/copilot/concepts/context/mcp) and [AUTOTITLE](/copilot/concepts/agents/cloud-agent/mcp-and-cloud-agent). ## Introduction As a repository administrator, you can configure MCP servers for use within your repository. You do this using a JSON-formatted configuration that specifies the details of the MCP servers you want to use. You enter the JSON configuration directly into the settings for the repository on {% data variables.product.prodname_dotcom_the_website %}. +This repository-level MCP configuration is shared by {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_code-review_short %}. For information on disabling use of MCP servers by {% data variables.copilot.copilot_code-review_short %}, see [Disabling MCP tools for {% data variables.copilot.copilot_code-review_short %}](#disabling-mcp-tools-for-code-review). + +> [!NOTE] +> * Support for agent skills and MCP servers with {% data variables.copilot.copilot_code-review_short %} is in {% data variables.release-phases.public_preview %} and subject to change. +> * Existing repository MCP configurations that were previously managed under {% data variables.copilot.copilot_cloud_agent %} settings were automatically moved to the new shared MCP settings page. No migration action is required. + +The {% data variables.product.github %} MCP server and Playwright MCP server are enabled by default. You can add your own MCP servers alongside these defaults. + Organization and enterprise administrators can also configure MCP servers as part of {% data variables.copilot.custom_agents_short %} using the YAML frontmatter. For more information, see [AUTOTITLE](/copilot/reference/custom-agents-configuration#mcp-server-configuration-details). > [!WARNING] > Once you've configured an MCP server, {% data variables.product.prodname_copilot_short %} will be able to use the tools provided by the server autonomously, and will not ask for your approval before using them. -{% data reusables.copilot.mcp.cloud-agent-limitations %} +{% data reusables.copilot.mcp.repo-mcp-limitations %} ## Adding an MCP configuration to your repository @@ -40,16 +49,16 @@ Repository administrators can configure MCP servers by following these steps: {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} -1. In the "Code & automation" section of the sidebar, click **{% data variables.product.prodname_copilot_short %}** then **{% data variables.copilot.copilot_cloud_agent_short_cap_c %}**. -1. Add your configuration in the **MCP configuration** section. +1. In the "Code & automation" section of the sidebar, click **{% data variables.product.prodname_copilot_short %}** then **MCP servers**. +1. On the "Model Context Protocol (MCP)" page, add your configuration in the "MCP configuration" section. The following sections in this article explain how to write the JSON configuration that you need to enter here. -1. Click **Save**. +1. Click **Save MCP configuration**. Your configuration will be validated to ensure proper syntax. -1. If your MCP server requires a variable, key, or secret, add an Agents secret or variable for {% data variables.copilot.copilot_cloud_agent %} with a name prefixed with `COPILOT_MCP_`. Only Agents secrets and variables with names prefixed with `COPILOT_MCP_` will be available to your MCP configuration. See [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/configure-secrets-and-variables). +1. If your MCP server requires a variable, key, or secret, add an Agents secret or variable with a name prefixed with `COPILOT_MCP_`. Only Agents secrets and variables with names prefixed with `COPILOT_MCP_` will be available to your MCP configuration. See [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/configure-secrets-and-variables). ## Writing a JSON configuration for MCP servers @@ -250,7 +259,7 @@ To use the Azure DevOps MCP server with {% data variables.copilot.copilot_cloud_ This configuration ensures the `azure/login` action is executed when {% data variables.copilot.copilot_cloud_agent %} runs. 1. Configure secrets for your `AZURE_CLIENT_ID` and `AZURE_TENANT_ID` as Agents secrets at either the organization or repository level. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/configure-secrets-and-variables). -1. Configure the Azure DevOps MCP server by adding an `ado` object to your MCP configuration with defined tools you want {% data variables.copilot.copilot_cloud_agent %} to use. +1. Configure the Azure DevOps MCP server by adding an `ado` object to your MCP configuration with the tools you want {% data variables.product.prodname_copilot_short %} to use. ```json copy { @@ -300,11 +309,11 @@ For more information about authenticating to the Atlassian MCP server using an A ## Reusing your MCP configuration from {% data variables.product.prodname_vscode %} -If you have already configured MCP servers in {% data variables.product.prodname_vscode_shortname %}, you can leverage a similar configuration for {% data variables.copilot.copilot_cloud_agent %}. +If you have already configured MCP servers in {% data variables.product.prodname_vscode_shortname %}, you can leverage a similar configuration for your repository MCP settings on {% data variables.product.github %}. Depending on how {% data variables.product.prodname_vscode_shortname %} is configured, you may be able to find your MCP settings in your repository's `.vscode/mcp.json` file, or in your machine's private `settings.json` file. -To adapt the configuration for {% data variables.copilot.copilot_cloud_agent %}, you will need to: +To adapt the configuration for repository MCP settings on {% data variables.product.github %}, you will need to: 1. Add a `tools` key for each MCP server, specifying which tools will be available to {% data variables.product.prodname_copilot_short %}. 1. If you've configured `inputs`, switch to using `env` directly. @@ -317,6 +326,8 @@ For more information on MCP in {% data variables.product.prodname_vscode_shortna Once you've set up your MCP configuration, you should test it to make sure it is set up correctly. +### Validate with {% data variables.copilot.copilot_cloud_agent %} + 1. Create an issue in the repository, then assign it to {% data variables.product.prodname_copilot_short %}. 1. Wait a few seconds, and {% data variables.product.prodname_copilot_short %} will leave an 👀 reaction on the issue. 1. Wait a few more seconds, and {% data variables.product.prodname_copilot_short %} will create a pull request, which will appear in the issue's timeline. @@ -328,6 +339,12 @@ Once you've set up your MCP configuration, you should test it to make sure it is If your MCP servers require any dependencies that are not installed on the {% data variables.product.prodname_actions %} runner by default, such as `uv` and `pipx`, or that need special setup steps, you may need to create a `copilot-setup-steps.yml` Actions workflow file to install them. For more information, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/customize-the-agent-environment). +### Validate with {% data variables.copilot.copilot_code-review_short %} + +1. Open a pull request in the repository. +1. Request a review from {% data variables.product.prodname_copilot_short %}. +1. Open the linked review session from the pull request timeline by clicking **View session**. In the session logs, review the "Setting up environment" section to see which MCP servers and tools were started and called. + ## Customizing the built-in {% data variables.product.github %} MCP server The {% data variables.product.github %} MCP server is enabled by default and connects to {% data variables.product.github %} with a specially scoped token that only has read-only access to the current repository. @@ -337,8 +354,8 @@ If you want to allow {% data variables.product.prodname_copilot_short %} to acce 1. Create a {% data variables.product.pat_generic %} with the appropriate permissions. We recommend using a {% data variables.product.pat_v2 %}, where you can limit the token's access to read-only permissions on specific repositories. For more information on {% data variables.product.pat_generic_plural %}, see [AUTOTITLE](/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens). {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} -1. In the "Code & automation" section of the sidebar, click **{% data variables.product.prodname_copilot_short %}** then **{% data variables.copilot.copilot_cloud_agent_short_cap_c %}**. -1. Add your configuration in the **MCP configuration** section. For example, you can add the following: +1. In the "Code & automation" section of the sidebar, click **{% data variables.product.prodname_copilot_short %}** then **MCP servers**. +1. Add your configuration in the "MCP configuration" section. For example, you can add the following: ```javascript copy // If you copy and paste this example, you will need to remove the comments prefixed with `//`, which are not valid JSON. @@ -361,14 +378,31 @@ If you want to allow {% data variables.product.prodname_copilot_short %} to acce For more information on toolsets, refer to the [README](https://github.com/github/github-mcp-server?tab=readme-ov-file#available-toolsets) in the {% data variables.product.github %} Remote MCP Server documentation. -1. Click **Save**. +1. Click **Save MCP configuration**. 1. Add an Agents secret called `COPILOT_MCP_GITHUB_PERSONAL_ACCESS_TOKEN` with your {% data variables.product.pat_generic %} as the value. You can configure this at either the organization or repository level. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/configure-secrets-and-variables). For information on using the {% data variables.product.github %} MCP server in other environments, see [AUTOTITLE](/copilot/customizing-copilot/using-model-context-protocol/using-the-github-mcp-server). +## Disabling MCP tools for code review + +> [!NOTE] +> Support for agent skills and MCP servers with {% data variables.copilot.copilot_code-review_short %} is in {% data variables.release-phases.public_preview %} and subject to change. + +In repository settings, use of MCP tools by {% data variables.copilot.copilot_code-review_short %} is enabled by default. + +Disable this setting if you want the configured MCP servers available only for {% data variables.copilot.copilot_cloud_agent %}, and not for {% data variables.copilot.copilot_code-review_short %}. + +If you disable this setting, {% data variables.copilot.copilot_code-review_short %} won't call MCP tools for pull request reviews in that repository, including tools from the default {% data variables.product.github %} and Playwright MCP servers. + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +1. In the "Code & automation" section of the sidebar, click **{% data variables.product.prodname_copilot_short %}** then **Code review**. +1. Click the **Allow Copilot to use MCP tools when reviewing pull requests** toggle to disable the setting. + ## Next steps * [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers) +* [AUTOTITLE](/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review) * [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/create-custom-agents) * [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/customize-the-agent-environment) -* [AUTOTITLE](/copilot/customizing-copilot/extending-copilot-chat-with-mcp) +* [AUTOTITLE](/copilot/customizing-copilot/extending-copilot-chat-with-mcp) \ No newline at end of file diff --git a/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/add-skills.md b/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/add-skills.md index a484b9a4d107..2861ba05f92a 100644 --- a/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/add-skills.md +++ b/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/add-skills.md @@ -16,7 +16,7 @@ redirect_from: --- > [!NOTE] -> Agent skills work with {% data variables.copilot.copilot_cloud_agent %}, the {% data variables.copilot.copilot_cli %}, and agent mode in {% data variables.product.prodname_vscode %}. +> Agent skills work with {% data variables.copilot.copilot_cloud_agent %}, {% data variables.copilot.copilot_code-review_short %}, the {% data variables.copilot.copilot_cli %}, and agent mode in {% data variables.product.prodname_vscode %}. Agent skills are folders of instructions, scripts, and resources that {% data variables.product.prodname_copilot_short %} can load when relevant to improve its performance in specialized tasks. For more information, see [AUTOTITLE](/copilot/concepts/agents/about-agent-skills). @@ -140,4 +140,10 @@ gh skill publish ## How {% data variables.product.prodname_copilot_short %} uses agent skills {% data reusables.copilot.skills-using %} + +For {% data variables.copilot.copilot_code-review_short %} on {% data variables.product.github %}, keep the following in mind: + +* If you want to ensure that {% data variables.copilot.copilot_code-review_short %} will read and use a skill, use a review-focused skill directory name such as `code-review`. +* Existing skills within the `.github/skills` directory can also be used by {% data variables.copilot.copilot_code-review_short %} automatically when they are relevant to the review. + {% data reusables.copilot.skills-compared %} diff --git a/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/configure-secrets-and-variables.md b/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/configure-secrets-and-variables.md index 6ee9c02f7c9a..f47555c92e92 100644 --- a/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/configure-secrets-and-variables.md +++ b/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/configure-secrets-and-variables.md @@ -14,7 +14,7 @@ category: When you delegate a task to {% data variables.copilot.copilot_cloud_agent %}, it works in its own ephemeral development environment, powered by {% data variables.product.prodname_actions %}. You may want to pass secrets and variables to the agent to: * Give {% data variables.product.prodname_copilot_short %} access to private resources, such as internal package registries, when it builds, tests, or validates your code in the agent's environment. -* Configure MCP servers, by passing API keys, tokens, or other configuration to the servers. For more information, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/extend-cloud-agent-with-mcp). +* Configure MCP servers, by passing API keys, tokens, or other configuration to the servers. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers). * Set environment variables that are available to scripts and tools that {% data variables.product.prodname_copilot_short %} runs in its environment, including in `copilot-setup-steps.yml`. For more information, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/customize-the-agent-environment). {% data variables.copilot.copilot_cloud_agent %} has its own dedicated **Agents** secrets and variables, alongside the existing **Actions**, **Codespaces**, and **Dependabot** types. You can configure Agents secrets and variables at: @@ -75,9 +75,9 @@ Names are case-insensitive. Lowercase letters are converted to uppercase. Names If a variable or secret with the same name exists at multiple levels, the value at the lowest level takes precedence. For example, a repository-level secret will override an organization-level secret with the same name. -For secrets and variables that you want to pass to MCP servers, the name must begin with the prefix `COPILOT_MCP_`. Only Agents secrets and variables with this prefix are available to your MCP configuration. For more information, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/extend-cloud-agent-with-mcp). +For secrets and variables that you want to pass to MCP servers, the name must begin with the prefix `COPILOT_MCP_`. Only Agents secrets and variables with this prefix are available to your MCP configuration. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers). ## Further reading * [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/customize-the-agent-environment) -* [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/extend-cloud-agent-with-mcp) +* [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers) diff --git a/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/index.md b/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/index.md index 7b239412fcc9..02a9e024351f 100644 --- a/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/index.md +++ b/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/index.md @@ -7,7 +7,6 @@ versions: children: - /create-custom-agents - /add-skills - - /extend-cloud-agent-with-mcp - /use-hooks - /customize-the-agent-environment - /configure-secrets-and-variables diff --git a/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview.md b/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview.md index 9d9c04aa6731..8055f5bbb6b2 100644 --- a/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview.md +++ b/content/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview.md @@ -91,5 +91,5 @@ Your bug-fixer agent now appears in the agents dropdown on the agents tab. Selec * **[AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/add-custom-instructions/add-personal-instructions)** — Set personal preferences that apply across all your repositories. * **[AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/add-skills)** — Add new capabilities to your agents. -* **[AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/extend-cloud-agent-with-mcp)** — Connect agents to external tools and services. +* **[AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers)** — Configure repository MCP servers used by {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_code-review_short %}. * **[AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/copilot-spaces/collaborate-with-others)** — Share your spaces with teammates. diff --git a/content/copilot/how-tos/copilot-on-github/customize-copilot/index.md b/content/copilot/how-tos/copilot-on-github/customize-copilot/index.md index 2c37f334c0cd..746e7267090b 100644 --- a/content/copilot/how-tos/copilot-on-github/customize-copilot/index.md +++ b/content/copilot/how-tos/copilot-on-github/customize-copilot/index.md @@ -8,6 +8,7 @@ children: - /customize-copilot-overview - /add-custom-instructions - /customize-cloud-agent + - /configure-mcp-servers - /copilot-spaces contentType: how-tos --- diff --git a/content/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review.md b/content/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review.md index bb3508a31217..eacb8ced68d1 100644 --- a/content/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review.md +++ b/content/copilot/how-tos/copilot-on-github/set-up-copilot/configure-automatic-review.md @@ -60,3 +60,20 @@ You can configure {% data variables.copilot.copilot_code-review_short %} to revi > You can add multiple targeting criteria to the same ruleset. Exclusion patterns are applied after inclusion patterns. For example, you could include any repositories matching the pattern `*cat*`, and specifically exclude a repository matching the pattern `not-a-cat`. {% data reusables.copilot.auto-code-review-steps %} + +## Configuring review effort level for a repository + +> [!NOTE] +> Medium review effort is in {% data variables.release-phases.public_preview %} and subject to change. + +You can set the default review effort level that {% data variables.copilot.copilot_code-review_short %} uses for automatic reviews in a repository. For an overview of review effort levels, see [AUTOTITLE](/copilot/concepts/agents/code-review#review-effort-level). + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +1. In the "Code & automation" section of the sidebar, click **{% octicon "copilot" aria-hidden="true" aria-label="copilot" %} {% data variables.product.prodname_copilot_short %}**, then **Code review**. +1. Next to "Review effort level," select the effort level for automatic reviews in this repository. + * **Low**: Standard review (default). + * **Medium**: Deeper analysis of complex logic, security-sensitive code, and cross-service changes. + +Medium reviews use more {% data variables.product.prodname_actions %} minutes and {% data variables.product.prodname_ai_credits_short %}. If you use Medium effort, consider configuring larger or self-hosted runners for better performance. See [AUTOTITLE](/copilot/how-tos/copilot-on-github/set-up-copilot/configure-runners). + diff --git a/content/copilot/how-tos/copilot-on-github/use-copilot-agents/copilot-code-review.md b/content/copilot/how-tos/copilot-on-github/use-copilot-agents/copilot-code-review.md index 7365b897ee03..e49c574a8056 100644 --- a/content/copilot/how-tos/copilot-on-github/use-copilot-agents/copilot-code-review.md +++ b/content/copilot/how-tos/copilot-on-github/use-copilot-agents/copilot-code-review.md @@ -64,6 +64,21 @@ By default, you request reviews from {% data variables.product.prodname_copilot_ {% data reusables.copilot.code-review.custom-instructions-information %} +## MCP servers and agent skills + +{% data reusables.copilot.code-review.skills-and-mcp-preview-note %} + +{% data variables.copilot.copilot_code-review_short %} can use agent skills and MCP servers configured in the repository, when they are relevant to the review. + +To make these available for {% data variables.copilot.copilot_code-review_short %} on {% data variables.product.github %}, configure: + +* **Agent skills** in your repository (in `.github/skills`). If you want a skill to target review tasks, use a review-focused skill directory name such as `code-review`. For setup details, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/add-skills). +* **MCP servers** in repository Copilot settings. The {% data variables.product.github %} MCP server and Playwright MCP server are enabled by default. For setup details, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers). + +{% data reusables.copilot.code-review.mcp-context-usage %} + +{% data reusables.copilot.code-review.mcp-tools-setting %} + ## Further reading * [AUTOTITLE](/copilot/concepts/code-review) diff --git a/content/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents.md b/content/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents.md index 4daed185d049..55b6696ff791 100644 --- a/content/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents.md +++ b/content/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents.md @@ -63,6 +63,50 @@ Archive stopped sessions to remove them from your sessions list. 1. Click **{% octicon "kebab-horizontal" aria-label="More actions" %}**, then click **{% octicon "inbox" aria-hidden="true" aria-label="inbox" %} Archive session**. 1. In the dialog, click **Yes, archive**. +{% data variables.copilot.copilot_cloud_agent %} sessions can be archived but not deleted. Only local sessions (from {% data variables.copilot.copilot_cli %}, {% data variables.product.prodname_vscode_shortname %}, JetBrains, or the {% data variables.copilot.github_copilot_app %}) can be deleted. For more information about deleting sessions, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/chronicle#managing-your-session-data). + +## Share a session + +{% data variables.copilot.copilot_cloud_agent %} sessions are **shared** by default. They appear in the "All sessions" view on the "Agents" tab of your repository, visible to anyone with access to the repository. + +Local sessions (from {% data variables.copilot.copilot_cli %}, {% data variables.product.prodname_vscode_shortname %}, JetBrains, or the {% data variables.copilot.github_copilot_app %}) are **unshared** by default. You can choose to share a local session from the "Agents" tab of your repository, giving view-only access to repository collaborators. To share or unshare a local session, use the sharing controls in the session's menu. + +Recipients can view the session's prompts, responses, and file changes, but cannot steer or modify the session. Shared local sessions appear in the "All sessions" view but are not indexed for other users' session queries (they will not appear in another user's `/chronicle` results). + +For more information about session syncing, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/chronicle#session-syncing). + +## Query past sessions + +You can search your session history by asking natural language questions in {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_vscode_shortname %}, JetBrains, the {% data variables.copilot.github_copilot_app %}, or {% data variables.product.prodname_dotcom_the_website %}. {% data variables.product.prodname_copilot_short %} searches across your synced sessions from {% data variables.copilot.copilot_cli_short %}, {% data variables.copilot.copilot_cloud_agent %}, and {% data variables.copilot.copilot_code-review_short %} to provide answers. + +You can only query sessions that you started. Your session data is private by default, but you can choose to share individual sessions for view-only access. See [Share a session](#share-a-session) earlier in this article. + +### Prerequisites + +Your sessions must be synced to your {% data variables.product.github %} account. By default, session data is synced automatically. If you have opted out of syncing (by setting `"remoteExport": false` in your CLI settings JSON), or if your organization has not enabled the "Store local sessions in the Cloud" policy, session querying is not available. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/chronicle#session-syncing). + +### Example queries + +```text +What agent tasks did I run last week? +``` + +```text +Find the session where I refactored authentication. +``` + +```text +Have I worked on anything related to the payments API? +``` + +```text +Show me sessions where the agent struggled or I had to correct it multiple times. +``` + +{% data variables.product.prodname_copilot_short %} can search across your prompts, responses, file changes, and other context from your synced sessions. + +For CLI-specific session querying and `/chronicle` commands, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/chronicle). For conceptual information about how session data is stored and synced, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/chronicle). + ## Further reading * [AUTOTITLE](/copilot/tutorials/cloud-agent/get-the-best-results) diff --git a/content/copilot/how-tos/copilot-sdk/getting-started.md b/content/copilot/how-tos/copilot-sdk/getting-started.md index f226f43ae757..eeb87bd72033 100644 --- a/content/copilot/how-tos/copilot-sdk/getting-started.md +++ b/content/copilot/how-tos/copilot-sdk/getting-started.md @@ -1874,7 +1874,7 @@ Available section IDs: `identity`, `tone`, `tool_efficiency`, `environment_conte Each override supports four actions: `replace`, `remove`, `append`, and `prepend`. Unknown section IDs are handled gracefully—content is appended to additional instructions and a warning is emitted; `remove` on unknown sections is silently ignored. -See the language-specific SDK READMEs for examples in [TypeScript](https://github.com/github/copilot-sdk/tree/main/nodejs/README.md), [Python](https://github.com/github/copilot-sdk/tree/main/python/README.md), [Go](https://github.com/github/copilot-sdk/tree/main/go/README.md), [Rust](https://github.com/github/copilot-sdk/tree/main/rust/README.md), [Java](https://github.com/github/copilot-sdk/tree/main/java/README.md), and [C#](https://github.com/github/copilot-sdk/tree/main/dotnet/README.md). +See the language-specific SDK READMEs for examples in [TypeScript](https://github.com/github/copilot-sdk/tree/main/nodejs/README.md?utm_source=docs-copilot-sdk-typescript-readme&utm_medium=docs&utm_campaign=msbuild-2026), [Python](https://github.com/github/copilot-sdk/tree/main/python/README.md?utm_source=docs-copilot-sdk-python-readme&utm_medium=docs&utm_campaign=msbuild-2026), [Go](https://github.com/github/copilot-sdk/tree/main/go/README.md?utm_source=docs-copilot-sdk-go-readme&utm_medium=docs&utm_campaign=msbuild-2026), [Rust](https://github.com/github/copilot-sdk/tree/main/rust/README.md?utm_source=docs-copilot-sdk-rust-readme&utm_medium=docs&utm_campaign=msbuild-2026), [Java](https://github.com/github/copilot-sdk/tree/main/java/README.md?utm_source=docs-copilot-sdk-java-readme&utm_medium=docs&utm_campaign=msbuild-2026), and [C#](https://github.com/github/copilot-sdk/tree/main/dotnet/README.md?utm_source=docs-copilot-sdk-csharp-readme&utm_medium=docs&utm_campaign=msbuild-2026). ## Connecting to an external CLI server @@ -2205,12 +2205,12 @@ Trace context is propagated automatically—no manual instrumentation is needed: * [AUTOTITLE](/copilot/how-tos/copilot-sdk/auth/authenticate) - GitHub OAuth, environment variables, and BYOK * [AUTOTITLE](/copilot/how-tos/copilot-sdk/auth/byok) - Use your own API keys from Azure AI Foundry, OpenAI, etc. -* [Node.js SDK Reference](https://github.com/github/copilot-sdk/tree/main/nodejs/README.md) -* [Python SDK Reference](https://github.com/github/copilot-sdk/tree/main/python/README.md) -* [Go SDK Reference](https://github.com/github/copilot-sdk/tree/main/go/README.md) -* [Rust SDK Reference](https://github.com/github/copilot-sdk/tree/main/rust/README.md) -* [.NET SDK Reference](https://github.com/github/copilot-sdk/tree/main/dotnet/README.md) -* [Java SDK Reference](https://github.com/github/copilot-sdk/tree/main/java/README.md) +* [Node.js SDK Reference](https://github.com/github/copilot-sdk/tree/main/nodejs/README.md?utm_source=docs-copilot-sdk-nodejs-reference&utm_medium=docs&utm_campaign=msbuild-2026) +* [Python SDK Reference](https://github.com/github/copilot-sdk/tree/main/python/README.md?utm_source=docs-copilot-sdk-python-reference&utm_medium=docs&utm_campaign=msbuild-2026) +* [Go SDK Reference](https://github.com/github/copilot-sdk/tree/main/go/README.md?utm_source=docs-copilot-sdk-go-reference&utm_medium=docs&utm_campaign=msbuild-2026) +* [Rust SDK Reference](https://github.com/github/copilot-sdk/tree/main/rust/README.md?utm_source=docs-copilot-sdk-rust-reference&utm_medium=docs&utm_campaign=msbuild-2026) +* [.NET SDK Reference](https://github.com/github/copilot-sdk/tree/main/dotnet/README.md?utm_source=docs-copilot-sdk-dotnet-reference&utm_medium=docs&utm_campaign=msbuild-2026) +* [Java SDK Reference](https://github.com/github/copilot-sdk/tree/main/java/README.md?utm_source=docs-copilot-sdk-java-reference&utm_medium=docs&utm_campaign=msbuild-2026) * [AUTOTITLE](/copilot/how-tos/copilot-sdk/features/mcp) - Integrate external tools via Model Context Protocol * [GitHub MCP Server Documentation](https://github.com/github/github-mcp-server) * [MCP Servers Directory](https://github.com/modelcontextprotocol/servers) - Explore more MCP servers diff --git a/content/copilot/how-tos/github-copilot-app/agent-sessions.md b/content/copilot/how-tos/github-copilot-app/agent-sessions.md index c3ce0a2cea81..4997b17598f4 100644 --- a/content/copilot/how-tos/github-copilot-app/agent-sessions.md +++ b/content/copilot/how-tos/github-copilot-app/agent-sessions.md @@ -15,16 +15,16 @@ category: > [!NOTE] The {% data variables.copilot.github_copilot_app %} is in {% data variables.release-phases.technical_preview %} and subject to change. > -> * **{% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} users** — Download and install from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-github-copilot-app-agent-sessions&utm_medium=docs&utm_campaign=github-copilot-app-tech-preview-2026) if your organization or enterprise has enabled preview features and {% data variables.copilot.copilot_cli_short %}. -> * **{% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, and {% data variables.copilot.copilot_max_short %} users** — To request access, [join the waitlist](https://gh.io/github-copilot-app?utm_source=docs-github-copilot-app-agent-sessions&utm_medium=docs&utm_campaign=github-copilot-app-tech-preview-2026). +> * **{% data variables.copilot.copilot_business_short %}, {% data variables.copilot.copilot_enterprise_short %}, {% data variables.copilot.copilot_pro_short %}, and {% data variables.copilot.copilot_pro_plus_short %} users** — Download and install from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-github-copilot-app-agent-sessions&utm_medium=docs&utm_campaign=msbuild-2026). For {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %}, your organization or enterprise must enable preview features and {% data variables.copilot.copilot_cli_short %}. +> * **{% data variables.copilot.copilot_free_short %} users and users without a {% data variables.product.prodname_copilot_short %} plan** — To request access, [join the waitlist](https://gh.io/github-copilot-app?utm_source=docs-github-copilot-app-agent-sessions&utm_medium=docs&utm_campaign=msbuild-2026). ## Starting a session Each session in the {% data variables.copilot.github_copilot_app %} runs in its own isolated workspace, so you can run multiple sessions in parallel and make progress on several tasks without conflicts. -1. In the sidebar under **Sessions**, click **+** to start a new session. +1. In the sidebar next to **Sessions**, click **+** to start a new session. 1. Choose a repository—you can use a local folder, choose from {% data variables.product.github %}, or clone from a URL. -1. Choose whether the session should run in a new working tree or in your local repository. +1. From the dropdown under the prompt box, choose where the session should run: in a new working tree, in your local repository, or in a cloud sandbox. Cloud sandboxes for {% data variables.product.prodname_copilot_short %} (public preview) are fully isolated environments hosted by {% data variables.product.github %}. For more information, see [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes). 1. Select a session mode, model, and reasoning effort from the dropdowns above the prompt field. 1. Describe the task in the prompt field. You can reference issues with `#`, add files with `@`, or use `/` for commands. @@ -46,6 +46,41 @@ You can select a model and reasoning effort from the dropdowns above the prompt **Quick chats** in the sidebar opens a conversation mode without creating a dedicated branch or worktree. Use it for brainstorming, asking questions, or exploring ideas before starting a session. Your chat history is saved and listed by conversation name. +## Using `/chronicle` with app sessions + +Because the {% data variables.copilot.github_copilot_app %} is built on {% data variables.copilot.copilot_cli %}, you can use {% data variables.copilot.copilot_cli_short %} session history features such as `/chronicle` to get insights from work you did in the app and in other {% data variables.copilot.copilot_cli_short %} sessions. + +For example, you can use `/chronicle standup` to summarize recent work. For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli/chronicle). + +## Using voice dictation + +You can use voice dictation to speak prompts in a session instead of typing them. + +Before you can use voice dictation, you need to configure it in the app settings. + +1. Open the app settings, then select the **Voice dictation** tab. +1. Choose a keyboard shortcut. +1. Allow microphone access in your operating system settings. +1. Download a local transcription model. + +After setup, use your shortcut to start and stop voice transcription. The app inserts transcribed text into the prompt box so you can review or edit it before sending. + +## Using the rubber duck agent + +The rubber duck agent is a built-in agent that acts as a constructive critic, reviewing your current plan, implementation, or tests and returning concrete feedback. The agent runs on a different model from the one driving your current session. + +When rubber duck is enabled, {% data variables.product.prodname_copilot_short %} can consult it automatically at key points while it works. The main session agent passes work to the rubber duck agent, receives the critique, then decides how to apply that feedback before continuing. + +> [!NOTE] +> The rubber duck agent is currently only available if the main agent is using a Claude or GPT large language model. + +You can also manually ask {% data variables.product.prodname_copilot_short %} to get a review from the rubber duck agent. + +1. Open an active session. +1. In the prompt box, type `/rubber-duck` and ask for a critique of your current plan, implementation, or tests. + +For more information on the rubber duck agent, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/rubber-duck). + ## Keyboard shortcuts The {% data variables.copilot.github_copilot_app %} supports keyboard shortcuts to help you navigate sessions, switch between workspaces, and perform common actions. To see available shortcuts, open the app, go to **Help**, then **Keyboard Shortcuts**. diff --git a/content/copilot/how-tos/github-copilot-app/customize-github-copilot-app.md b/content/copilot/how-tos/github-copilot-app/customize-github-copilot-app.md index de9d16faf0f5..a6dc3e8b9a95 100644 --- a/content/copilot/how-tos/github-copilot-app/customize-github-copilot-app.md +++ b/content/copilot/how-tos/github-copilot-app/customize-github-copilot-app.md @@ -16,8 +16,8 @@ category: > [!NOTE] The {% data variables.copilot.github_copilot_app %} is in {% data variables.release-phases.technical_preview %} and subject to change. > -> * **{% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} users** — Download and install from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-customize-github-copilot-app&utm_medium=docs&utm_campaign=github-copilot-app-tech-preview-2026) if your organization or enterprise has enabled preview features and {% data variables.copilot.copilot_cli_short %}. -> * **{% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, and {% data variables.copilot.copilot_max_short %} users** — To request access, [join the waitlist](https://gh.io/github-copilot-app?utm_source=docs-customize-github-copilot-app&utm_medium=docs&utm_campaign=github-copilot-app-tech-preview-2026). +> * **{% data variables.copilot.copilot_business_short %}, {% data variables.copilot.copilot_enterprise_short %}, {% data variables.copilot.copilot_pro_short %}, and {% data variables.copilot.copilot_pro_plus_short %} users** — Download and install from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-github-copilot-app-customize&utm_medium=docs&utm_campaign=msbuild-2026). For {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %}, your organization or enterprise must enable preview features and {% data variables.copilot.copilot_cli_short %}. +> * **{% data variables.copilot.copilot_free_short %} users and users without a {% data variables.product.prodname_copilot_short %} plan** — To request access, [join the waitlist](https://gh.io/github-copilot-app?utm_source=docs-github-copilot-app-customize&utm_medium=docs&utm_campaign=msbuild-2026). Tailor the {% data variables.copilot.github_copilot_app %} to your workflows so your agents follow your conventions, use your preferred tools, and apply the right expertise to every task. @@ -36,3 +36,7 @@ For more information about agent skills, see [AUTOTITLE](/copilot/concepts/agent MCP servers connect the agent to external tools and data sources. Any MCP servers configured for your repositories or {% data variables.product.prodname_copilot_short %} CLI are automatically available in the {% data variables.copilot.github_copilot_app %}. You can also add and manage additional MCP servers in the app settings under **MCP Servers**. The app includes a catalog of popular servers, or you can add a custom server. For more information about MCP, see [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers). + +## Working with canvas extensions + +Use canvas extensions to build shared, agent-driven artifacts and interfaces for team or personal workflows. In a session, use `/create-canvas` to scaffold a canvas extension, then iterate on the canvas with the agent. For more information, see [AUTOTITLE](/copilot/how-tos/github-copilot-app/working-with-canvas-extensions). diff --git a/content/copilot/how-tos/github-copilot-app/getting-started.md b/content/copilot/how-tos/github-copilot-app/getting-started.md index a4c778c6921e..4d42e05d9043 100644 --- a/content/copilot/how-tos/github-copilot-app/getting-started.md +++ b/content/copilot/how-tos/github-copilot-app/getting-started.md @@ -16,15 +16,18 @@ category: > [!NOTE] The {% data variables.copilot.github_copilot_app %} is in {% data variables.release-phases.technical_preview %} and subject to change. > -> * **{% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} users** — Download and install from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-github-copilot-app-getting-started&utm_medium=docs&utm_campaign=github-copilot-app-tech-preview-2026) if your organization or enterprise has enabled preview features and {% data variables.copilot.copilot_cli_short %}. -> * **{% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %} and {% data variables.copilot.copilot_max_short %} users** — To request access, [join the waitlist](https://gh.io/github-copilot-app?utm_source=docs-github-copilot-app-getting-started&utm_medium=docs&utm_campaign=github-copilot-app-tech-preview-2026). +> * **{% data variables.copilot.copilot_business_short %}, {% data variables.copilot.copilot_enterprise_short %}, {% data variables.copilot.copilot_pro_short %}, and {% data variables.copilot.copilot_pro_plus_short %} users** — Download and install from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-github-copilot-app-get-started&utm_medium=docs&utm_campaign=msbuild-2026). For {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %}, your organization or enterprise must enable preview features and {% data variables.copilot.copilot_cli_short %}. +> * **{% data variables.copilot.copilot_free_short %} users and users without a {% data variables.product.prodname_copilot_short %} plan** — To request access, [join the waitlist](https://gh.io/github-copilot-app?utm_source=docs-github-copilot-app-get-started&utm_medium=docs&utm_campaign=msbuild-2026). + +For a conceptual overview of the {% data variables.copilot.github_copilot_app %}, see [AUTOTITLE](/copilot/concepts/agents/github-copilot-app). ## Prerequisites * Access to the {% data variables.copilot.github_copilot_app %}. The app is currently in {% data variables.release-phases.technical_preview %}. - * **{% data variables.copilot.copilot_business_short %} or {% data variables.copilot.copilot_enterprise_short %} users**: You have access, as long as your organization or enterprise has enabled preview features and enabled {% data variables.copilot.copilot_cli_short %}. No waitlist is required, so you can download the app directly from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-github-copilot-app&utm_medium=docs&utm_campaign=github-copilot-app-tech-preview-2026). - * **{% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, and {% data variables.copilot.copilot_max_short %} users**: You must join the [waitlist](https://gh.io/github-copilot-app?utm_source=docs-github-copilot-app&utm_medium=docs&utm_campaign=github-copilot-app-tech-preview-2026) and be accepted into the preview to get access. Once accepted, you'll receive a link to download the app. -* The {% data variables.copilot.github_copilot_app %} installed on macOS, Windows, or Linux. Once you have access, you can download and install the application from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-github-copilot-app&utm_medium=docs&utm_campaign=github-copilot-app-tech-preview-2026). + * **{% data variables.copilot.copilot_business_short %} or {% data variables.copilot.copilot_enterprise_short %} users**: You have access, as long as your organization or enterprise has enabled preview features and enabled {% data variables.copilot.copilot_cli_short %}. You can download the app directly from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-github-copilot-app-get-started&utm_medium=docs&utm_campaign=msbuild-2026). + * **{% data variables.copilot.copilot_pro_short %} or {% data variables.copilot.copilot_pro_plus_short %} users**: You have access and can download the app directly from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-github-copilot-app-get-started&utm_medium=docs&utm_campaign=msbuild-2026). + * **{% data variables.copilot.copilot_free_short %} users and users without a {% data variables.product.prodname_copilot_short %} plan**: Join the [waitlist](https://gh.io/github-copilot-app?utm_source=docs-github-copilot-app-get-started&utm_medium=docs&utm_campaign=msbuild-2026) to request access. +* The {% data variables.copilot.github_copilot_app %} installed on macOS, Windows, or Linux. Once you have access, you can download and install the application from the [{% data variables.copilot.github_copilot_app %} repository](https://github.com/github/app#install?utm_source=docs-github-copilot-app-get-started-install&utm_medium=docs&utm_campaign=msbuild-2026). ## Opening the {% data variables.copilot.github_copilot_app %} for the first time @@ -47,8 +50,8 @@ To work on code, you need at least one repository connected to the app. If you s The sidebar gives you access to the main areas of the app: -* **Inbox** - Browse and filter issues and pull requests from your repositories, check CI status, and leave reviews. -* **Workflows** — Saved agent tasks that run on a schedule or on demand. +* **My work** - Browse and filter issues and pull requests from your repositories, check CI status, and leave reviews. +* **Automations** — Saved agent tasks that run on a schedule or on demand. * **Search** — Search across your repositories directly from the app. * **Sessions** — Active agent sessions, grouped by repository. This also includes **Quick chats**, which are general chat conversations. @@ -66,7 +69,7 @@ When you are ready to make changes to code, create a session. You can start from ### Starting from an issue -1. Click **Inbox** in the sidebar. +1. Click **My work** in the sidebar. 1. Browse or filter to find an issue, then click it to view its details. 1. Click **Start a session**. The app creates a new session with the issue context already loaded and automatically uses **Plan** mode. 1. The agent proposes a plan. Review the plan, then you can choose to let the agent start working on a pull request or have it propose changes that you can then manually apply. @@ -76,7 +79,7 @@ When you are ready to make changes to code, create a session. You can start from If you do not have an issue to work from, you can describe a task directly. -1. In the sidebar, click **+** to start a new session and select a repository. +1. In the sidebar, click **+** next to "Sessions" to start a new session, then select a repository. 1. Select a session mode from the dropdown above the prompt field—for example, **Interactive** to work collaboratively with the agent. 1. Describe a task—for example, "Fix the failing test in `utils.test.ts`" or "Add input validation to the signup form." 1. The agent will make changes based on your direction. Follow along in the conversation view and provide feedback to steer the agent. @@ -86,5 +89,6 @@ If you do not have an issue to work from, you can describe a task directly. Find out more about using the {% data variables.copilot.github_copilot_app %}: * [AUTOTITLE](/copilot/how-tos/github-copilot-app/agent-sessions) +* [AUTOTITLE](/copilot/how-tos/github-copilot-app/working-with-canvas-extensions) * [AUTOTITLE](/copilot/how-tos/github-copilot-app/managing-issues-and-pull-requests) -* [AUTOTITLE](/copilot/how-tos/github-copilot-app/using-scheduled-workflows) +* [AUTOTITLE](/copilot/how-tos/github-copilot-app/using-automations) diff --git a/content/copilot/how-tos/github-copilot-app/index.md b/content/copilot/how-tos/github-copilot-app/index.md index 4da1b753a9dd..02fb5b91712d 100644 --- a/content/copilot/how-tos/github-copilot-app/index.md +++ b/content/copilot/how-tos/github-copilot-app/index.md @@ -16,6 +16,7 @@ children: - /getting-started - /customize-github-copilot-app - /agent-sessions + - /working-with-canvas-extensions - /managing-issues-and-pull-requests - - /using-scheduled-workflows + - /using-automations --- diff --git a/content/copilot/how-tos/github-copilot-app/managing-issues-and-pull-requests.md b/content/copilot/how-tos/github-copilot-app/managing-issues-and-pull-requests.md index 01f08214a3ce..10680e09ce87 100644 --- a/content/copilot/how-tos/github-copilot-app/managing-issues-and-pull-requests.md +++ b/content/copilot/how-tos/github-copilot-app/managing-issues-and-pull-requests.md @@ -15,23 +15,23 @@ category: > [!NOTE] The {% data variables.copilot.github_copilot_app %} is in {% data variables.release-phases.technical_preview %} and subject to change. > -> * **{% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} users** — Download and install from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-github-copilot-app-managing-issues-prs&utm_medium=docs&utm_campaign=github-copilot-app-tech-preview-2026) if your organization or enterprise has enabled preview features and {% data variables.copilot.copilot_cli_short %}. -> * **{% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, and {% data variables.copilot.copilot_max_short %} users** — To request access, [join the waitlist](https://gh.io/github-copilot-app?utm_source=docs-github-copilot-app-managing-issues-prs&utm_medium=docs&utm_campaign=github-copilot-app-tech-preview-2026). +> * **{% data variables.copilot.copilot_business_short %}, {% data variables.copilot.copilot_enterprise_short %}, {% data variables.copilot.copilot_pro_short %}, and {% data variables.copilot.copilot_pro_plus_short %} users** — Download and install from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-github-copilot-app-issues-prs&utm_medium=docs&utm_campaign=msbuild-2026). For {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %}, your organization or enterprise must enable preview features and {% data variables.copilot.copilot_cli_short %}. +> * **{% data variables.copilot.copilot_free_short %} users and users without a {% data variables.product.prodname_copilot_short %} plan** — To request access, [join the waitlist](https://gh.io/github-copilot-app?utm_source=docs-github-copilot-app-issues-prs&utm_medium=docs&utm_campaign=msbuild-2026). -## Browsing your inbox +## Browsing your issues and pull requests -Click **Inbox** in the sidebar to see your issues and pull requests in one place. The inbox is organized into sections—by default, **All**, **Active**, **Review requests**, and **Done**. You can edit the default sections or add new ones with your own filters. Use the search bar within any section to find items by keyword or qualifiers like `label:bug`. +Click **My work** in the sidebar to see your issues and pull requests in one place. The view is organized into sections—by default, **All**, **Active**, **Review requests**, and **Done**. You can edit the default sections or add new ones with your own filters. Use the search bar within any section to find items by keyword or qualifiers like `label:bug`. ## Starting a session from an issue -1. In the **Inbox**, find the issue you want to work on, then click it to view its details. +1. In **My work**, find the issue you want to work on, then click it to view its details. 1. Click **Start a session**. The app creates a new session with the issue context already loaded and automatically selects **Plan** mode. 1. The agent proposes a plan. Review the plan, then let the agent start working or have it propose changes that you can apply manually. 1. Once you approve, the agent creates a branch, implements the changes, and opens a pull request for you to review. ## Reviewing a pull request -1. Click a pull request in the **Inbox** to see its overview—including the summary, CI check results, and review activity. +1. Click a pull request in **My work** to see its overview—including the summary, CI check results, and review activity. 1. Switch to the **Files changed** tab to review the diff. 1. Click **Create session** to start a session for the pull request. Within the session, you can leave review comments on the diff, or ask the agent to make changes. 1. Once done reviewing in the session, you can go back to the pull request detail view and click **Review** at the top to submit a review. diff --git a/content/copilot/how-tos/github-copilot-app/using-automations.md b/content/copilot/how-tos/github-copilot-app/using-automations.md new file mode 100644 index 000000000000..3344ce943e8d --- /dev/null +++ b/content/copilot/how-tos/github-copilot-app/using-automations.md @@ -0,0 +1,41 @@ +--- +title: Using automations in the GitHub Copilot app +shortTitle: Automations +intro: 'Automate recurring agent tasks so they run on a schedule or on demand, without manual intervention.' +allowTitleToDifferFromFilename: true +product: '{% data reusables.gated-features.github-app %}' +versions: + feature: copilot +contentType: how-tos +redirect_from: + - /copilot/how-tos/github-copilot-app/using-scheduled-workflows + - /copilot/how-tos/github-app/using-scheduled-workflows +category: + - Author and optimize with Copilot +--- + +> [!NOTE] The {% data variables.copilot.github_copilot_app %} is in {% data variables.release-phases.technical_preview %} and subject to change. +> +> * **{% data variables.copilot.copilot_business_short %}, {% data variables.copilot.copilot_enterprise_short %}, {% data variables.copilot.copilot_pro_short %}, and {% data variables.copilot.copilot_pro_plus_short %} users** — Download and install from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-github-copilot-app-automations&utm_medium=docs&utm_campaign=msbuild-2026). For {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %}, your organization or enterprise must enable preview features and {% data variables.copilot.copilot_cli_short %}. +> * **{% data variables.copilot.copilot_free_short %} users and users without a {% data variables.product.prodname_copilot_short %} plan** — To request access, [join the waitlist](https://gh.io/github-copilot-app?utm_source=docs-github-copilot-app-automations&utm_medium=docs&utm_campaign=msbuild-2026). + +## About automations + +Automations let you save recurring agent tasks and run them on a schedule or on demand. For example, you can create an automation that triages new issues daily or checks your open pull requests for review status each morning. + +If you enable **Run in the cloud** when creating an automation, the automation runs in cloud sandboxes (public preview) hosted by {% data variables.product.github %}. This lets the automation keep running even when your computer is off. For more information, see [AUTOTITLE](/copilot/concepts/about-cloud-and-local-sandboxes). + +Click **Automations** in the sidebar to see your saved automations. Each automation shows its name, schedule, associated repository, and last run status. + +## Creating an automation + +1. Click **New automation** in the top-right corner. +1. Give the automation a name and write a prompt describing the task. You can type `/` to add skills. +1. Set the interval—either a recurring schedule (for example, daily at 9:00 AM) or manual. +1. Optionally, configure the session mode, project, model, and reasoning effort. +1. Optionally, enable **Run in the cloud** to let the automation run in a cloud sandbox, allowing the automation to run even when your computer is off. +1. Click **Create** to save, or select **Create and run** to save and test the automation immediately. + +## Running an automation on demand + +You can trigger any saved automation manually by clicking the play button on its card on the "Automations" page, without waiting for its next scheduled run. diff --git a/content/copilot/how-tos/github-copilot-app/using-scheduled-workflows.md b/content/copilot/how-tos/github-copilot-app/using-scheduled-workflows.md deleted file mode 100644 index e0470b24a0cc..000000000000 --- a/content/copilot/how-tos/github-copilot-app/using-scheduled-workflows.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Using scheduled workflows in the GitHub Copilot app -shortTitle: Scheduled workflows -intro: 'Automate recurring agent tasks so they run on a schedule or on demand, without manual intervention.' -allowTitleToDifferFromFilename: true -product: '{% data reusables.gated-features.github-app %}' -versions: - feature: copilot -contentType: how-tos -redirect_from: - - /copilot/how-tos/github-app/using-scheduled-workflows -category: - - Author and optimize with Copilot ---- - -> [!NOTE] The {% data variables.copilot.github_copilot_app %} is in {% data variables.release-phases.technical_preview %} and subject to change. -> -> * **{% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} users** — Download and install from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-github-copilot-app-scheduled-workflows&utm_medium=docs&utm_campaign=github-copilot-app-tech-preview-2026) if your organization or enterprise has enabled preview features and {% data variables.copilot.copilot_cli_short %}. -> * **{% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, and {% data variables.copilot.copilot_max_short %} users** — To request access, [join the waitlist](https://gh.io/github-copilot-app?utm_source=docs-github-copilot-app-scheduled-workflows&utm_medium=docs&utm_campaign=github-copilot-app-tech-preview-2026). - -## About workflows - -Workflows let you save recurring agent tasks and run them on a schedule or on demand. For example, you can create a workflow that triages new issues daily or checks your open pull requests for review status each morning. - -Click **Workflows** in the sidebar to see your saved workflows. Each workflow shows its name, schedule, associated repository, and last run status. - -## Creating a workflow - -1. Click **New workflow** in the top-right corner. -1. Give the workflow a name and write a prompt describing the task. You can type `/` to add skills. -1. Set the interval—either a recurring schedule (for example, daily at 9:00 AM) or manual. -1. Optionally, configure the session mode, project, model, and reasoning effort. -1. Click **Create** to save, or select **Create and run** to save and test the workflow immediately. - -## Running a workflow on demand - -You can trigger any saved workflow manually by clicking the play button on its card on the "Workflows" page, without waiting for its next scheduled run. diff --git a/content/copilot/how-tos/github-copilot-app/working-with-canvas-extensions.md b/content/copilot/how-tos/github-copilot-app/working-with-canvas-extensions.md new file mode 100644 index 000000000000..eb01beea2c64 --- /dev/null +++ b/content/copilot/how-tos/github-copilot-app/working-with-canvas-extensions.md @@ -0,0 +1,90 @@ +--- +title: Working with canvas extensions in the GitHub Copilot app +shortTitle: Canvas extensions +intro: 'Use canvases in the {% data variables.copilot.github_copilot_app %} to build shared, agent-driven artifacts and interfaces for human-agent collaboration.' +allowTitleToDifferFromFilename: true +product: '{% data reusables.gated-features.github-app %}' +versions: + feature: copilot +contentType: how-tos +category: + - Author and optimize with Copilot +--- + +> [!NOTE] The {% data variables.copilot.github_copilot_app %} is in {% data variables.release-phases.technical_preview %} and subject to change. +> +> * **{% data variables.copilot.copilot_business_short %}, {% data variables.copilot.copilot_enterprise_short %}, {% data variables.copilot.copilot_pro_short %}, and {% data variables.copilot.copilot_pro_plus_short %} users** — Download and install from the [{% data variables.copilot.github_copilot_app %} repository](https://gh.io/github-copilot-app-repo?utm_source=docs-github-copilot-app-canvas&utm_medium=docs&utm_campaign=msbuild-2026). For {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %}, your organization or enterprise must enable preview features and {% data variables.copilot.copilot_cli_short %}. +> * **{% data variables.copilot.copilot_free_short %} users and users without a {% data variables.product.prodname_copilot_short %} plan** — To request access, [join the waitlist](https://gh.io/github-copilot-app?utm_source=docs-github-copilot-app-canvas&utm_medium=docs&utm_campaign=msbuild-2026). + +## About canvas extensions + +A canvas extension is a shared, interactive surface for a work artifact, such as a plan, triage board, browser session, release checklist, dashboard, incident, or spreadsheet. + +While chat is useful for defining intent and discussing tasks, most work happens in work surfaces such as a terminal, a browser, a document, or a dashboard. Canvases allow you to collaborate with the agent directly in those work surfaces. + +Canvases are bidirectional: the agent can update the canvas while it works, and you can edit on that same surface. When you create a canvas, the agent generates capabilities based on your prompt and workflow. As you iterate, you can ask it to add, remove, or revise those capabilities. Once created, canvases open in the app's right side panel. + +For example, you can create an agentic kanban canvas where people use UI controls to create or move cards, and ask the agent to add agent-callable capabilities such as `get_board`, `add_card`, and `move_card`. This lets people and agents coordinate work from one shared board. + +## Why use a canvas + +Canvases are helpful when a task or workflow needs structure, iteration, and verification, and a chat is not enough. You can use chat to instruct the agent and reason through ambiguity, then use the canvas to inspect, steer, and verify visible work directly without needing to rely on prompts only. + +Canvases provide two kinds of value: they improve the human-agent partnership by giving both sides a shared surface to work in, and they let you customize that surface to match your workflow. + +Canvases are useful when you need to: + +* Ground agent work in an actual artifact or environment that fits your workflow. +* Steer or correct work directly on the shared surface, then let the agent continue from those changes. +* Inspect progress and outcomes as visible changes to a shared artifact, not just chat responses. +* Keep work continuous across turns, sessions, and handoffs. + +## Example use cases + +Canvas extensions can be customized to fit your needs or your team's needs across a range of scenarios. For example: + +* **Agentic kanban boards:** Let humans and agents add cards, move work, and kick off tasks. +* **Issue triage boards:** Summarize top issues, recurring themes, and user pain points for a repository. +* **Markdown canvases:** Build a persistent markdown file for planning your day, prioritizing issues and pull requests, launching and monitoring agent sessions, and keeping related work in one editable surface. +* **Document canvases:** Open, edit, and collaborate on documents, spreadsheets, slide decks, and other artifacts directly in the app. + +## Creating a canvas + +You can create a new canvas from within a session using the `/create-canvas` skill. + +1. Open or start an agent session. +1. In the prompt box, type `/create-canvas`, then describe the workflow and capabilities that you want the canvas to support, including what people should be able to do and what the agent should be able to do. + For example, you can ask the agent to: + + * `Create an agentic kanban canvas with actions to create, assign, and move cards.` + * `Create a markdown canvas that combines my meetings with prioritized issues and pull requests, then lets me launch and track agent sessions from that canvas.` +1. You can choose whether the canvas should be shared with your team or kept personal: + * **Project scope:** `.github/extensions` for team-shared canvases committed to the repository. + * **User scope:** `~/.copilot/extensions` for personal canvases on your machine. + +The agent will build the canvas and open it in the right side panel once complete. After that, you can continue iterating by asking the agent to change the interface, shared state, and capabilities. + +## How canvas extensions are structured + +Each canvas extension lives in its own directory under either `.github/extensions` (project scope) or `~/.copilot/extensions` (user scope). + +Although implementations can vary, a canvas extension commonly includes: + +* A `package.json` file for extension metadata and dependencies. +* An extension entry file, such as `extension.mjs`, that defines the canvas behavior and capabilities. +* Optional JSON artifacts (for example, files under an `artifacts` directory) for persisted canvas data and state. + +When a canvas opens in the app side panel, both people and agents interact with that same shared state through UI actions and agent-callable capabilities. + +## Working in a canvas + +Once a canvas is open, you can iterate quickly with the agent. + +* Add or revise the capabilities of the canvas. +* Use canvas controls (such as buttons, cards, or filters) to update the surface directly. +* Ask the agent to call capabilities exposed by the canvas to update data or take actions. + +## Further reading + +* [AUTOTITLE](/copilot/how-tos/github-copilot-app/agent-sessions). +* [AUTOTITLE](/copilot/how-tos/github-copilot-app/customize-github-copilot-app). \ No newline at end of file diff --git a/content/copilot/how-tos/index.md b/content/copilot/how-tos/index.md index 9f86c7b89c0c..89dee28075b0 100644 --- a/content/copilot/how-tos/index.md +++ b/content/copilot/how-tos/index.md @@ -10,6 +10,7 @@ children: - /get-code-suggestions - /chat-with-copilot - /copilot-cli + - /cloud-and-local-sandboxes - /github-copilot-app - /copilot-sdk - /use-copilot-agents diff --git a/content/copilot/how-tos/manage-your-account/manage-policies.md b/content/copilot/how-tos/manage-your-account/manage-policies.md index f64357a0f736..2a2a74b572cc 100644 --- a/content/copilot/how-tos/manage-your-account/manage-policies.md +++ b/content/copilot/how-tos/manage-your-account/manage-policies.md @@ -56,13 +56,15 @@ If you choose to allow suggestions matching public code or use a product that do ## Enabling or disabling third-party coding agents in your repositories > [!NOTE] -> {% data reusables.gated-features.third-party-agents %} +> {% data reusables.copilot.plans.permission-paid-plans-no-purchase-link %} You can choose whether to allow the following coding agents to be enabled in your personal account: * {% data variables.product.prodname_anthropic_claude %} * {% data variables.product.prodname_openai_codex %} +Installed {% data variables.copilot.agent_apps %} also appear under "Partner agents" and are enabled in the same way. For more information, see [AUTOTITLE](/copilot/concepts/agents/agent-apps). + Coding agents have access to the same repositories that {% data variables.copilot.copilot_cloud_agent %} has been enabled in. To enable coding agents: diff --git a/content/copilot/how-tos/use-copilot-agents/cloud-agent/create-automations.md b/content/copilot/how-tos/use-copilot-agents/cloud-agent/create-automations.md new file mode 100644 index 000000000000..82a4c48dbd1b --- /dev/null +++ b/content/copilot/how-tos/use-copilot-agents/cloud-agent/create-automations.md @@ -0,0 +1,84 @@ +--- +title: Creating automations with Copilot cloud agent +shortTitle: Create cloud automations +allowTitleToDifferFromFilename: true +intro: 'Create and manage {% data variables.copilot.copilot_automations %} to run {% data variables.copilot.copilot_cloud_agent %} on a schedule or in response to events.' +product: '{% data reusables.gated-features.copilot-automations %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' +versions: + feature: copilot +contentType: how-tos +category: + - Author and optimize with Copilot +--- + +## Introduction + +{% data reusables.copilot.cloud-agent.automations-what-is %} + +You can create and manage {% data variables.copilot.copilot_automations %} from the **Agents** tab of a repository on {% data variables.product.github %}. You can also create and manage {% data variables.copilot.copilot_automations %} from the **{% data variables.copilot.copilot_automations_cap %}** tab in the {% data variables.copilot.github_copilot_app %}. + +For an overview of {% data variables.copilot.copilot_automations %}, including triggers, tools, visibility, and security, see [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations). + +## Prerequisites + +{% data reusables.copilot.cloud-agent.automations-availability %} + +## Creating an {% data variables.copilot.copilot_automation %} + +{% data reusables.repositories.navigate-to-repo %} +1. Under your repository name, click **{% octicon "agent" aria-hidden="true" aria-label="agent" %} Agents**. +1. In the sidebar, click **{% data variables.copilot.copilot_automations_cap %}**. +1. Click **Create new**. +1. Enter a **name** for the {% data variables.copilot.copilot_automation %}. +1. Select one or more **triggers** that determine when the {% data variables.copilot.copilot_automation %} runs: + + * **On a schedule**: choose a recurring interval, either hourly, daily, or weekly. + * **When an issue is created**: the {% data variables.copilot.copilot_automation %} runs each time an issue is opened in the repository. + * **When a pull request is opened**: the {% data variables.copilot.copilot_automation %} runs each time a pull request is opened in the repository. + * **When a pull request is synchronized**: the {% data variables.copilot.copilot_automation %} runs each time new commits are pushed to a pull request in the repository. + + You can optionally configure filters for issue and pull request triggers: + + * For when **an issue is created**, add a search query filter. + * For when **a pull request is opened** and when **a pull request is synchronized**, add a search query filter and a filter for files changed in the pull request. + +1. In the **prompt** field, describe the task you want {% data variables.product.prodname_copilot_short %} to perform each time the {% data variables.copilot.copilot_automation %} runs. + + For example, `Label this issue as a bug, an enhancement, or other, based on its content.` + + > [!WARNING] + > The {% data variables.copilot.copilot_cloud_agent %} sessions started by an {% data variables.copilot.copilot_automation %} are visible to others with access to the repository. Don't include secrets or other sensitive information in your prompt. To give {% data variables.product.prodname_copilot_short %} access to sensitive values, use repository secrets. See [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/configure-secrets-and-variables). + +1. Optionally, select the **model** you want {% data variables.product.prodname_copilot_short %} to use. See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/changing-the-ai-model). +1. Select the **tools** {% data variables.product.prodname_copilot_short %} can use when the {% data variables.copilot.copilot_automation %} runs, such as pushing changes, updating issue labels, or creating a pull request. + + Select only the tools the task requires. The tools you select control what actions {% data variables.product.prodname_copilot_short %} can take in your repository. Optionally, you can use the **Suggest tools** button to ask {% data variables.product.prodname_copilot_short %} to suggest tools based on your prompt. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations#tools-and-actions). + +1. Save the {% data variables.copilot.copilot_automation %} by clicking **Create automation**. + +## Testing an {% data variables.copilot.copilot_automation %} + +You can run an {% data variables.copilot.copilot_automation %} immediately, without waiting for its trigger to fire, to check that it behaves as you expect. + +1. Open the {% data variables.copilot.copilot_automation %} you want to test from the **{% data variables.copilot.copilot_automations_cap %}** pane. +1. Click the **Run now** button. + {% data variables.product.prodname_copilot_short %} starts a {% data variables.copilot.copilot_cloud_agent %} session and runs the {% data variables.copilot.copilot_automation %}'s prompt with the tools you selected. You can open the session to follow its progress and review any changes it makes. + +## Managing your {% data variables.copilot.copilot_automations_cap %} + +Your {% data variables.copilot.copilot_automations %} are private to you, but the sessions started from your automations will be visible to everyone with read access to the repository. + +From the **{% data variables.copilot.copilot_automations_cap %}** pane in a repository, you can: + +* View your {% data variables.copilot.copilot_automations %} for the repository and the sessions they have started. +* Edit an {% data variables.copilot.copilot_automation %} to change its name, prompt, triggers, tools, or model. +* Disable an {% data variables.copilot.copilot_automation %} to stop it running, or enable it again later. +* Delete an {% data variables.copilot.copilot_automation %} you no longer need. + +To see all of your {% data variables.copilot.copilot_automations %} across every repository, and navigate to manage each one, use the {% data variables.copilot.copilot_automations_cap %} view at the user level. + +## Further reading + +* [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations) +* [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/start-copilot-sessions) +* [AUTOTITLE](/copilot/concepts/agents/cloud-agent/risks-and-mitigations) diff --git a/content/copilot/how-tos/use-copilot-agents/cloud-agent/index.md b/content/copilot/how-tos/use-copilot-agents/cloud-agent/index.md index e80dafb5e31f..8109080a9283 100644 --- a/content/copilot/how-tos/use-copilot-agents/cloud-agent/index.md +++ b/content/copilot/how-tos/use-copilot-agents/cloud-agent/index.md @@ -7,11 +7,13 @@ versions: feature: copilot children: - /start-copilot-sessions + - /create-automations - /changing-the-ai-model - /configuring-agent-settings - /create-custom-agents-in-your-ide - /use-cloud-agent-on-github - /use-cloud-agent-on-mobile + - /use-agent-apps - /use-cloud-agent-in-your-ide - /use-cloud-agent-via-the-api - /use-cloud-agent-from-cli diff --git a/content/copilot/how-tos/use-copilot-agents/cloud-agent/start-copilot-sessions.md b/content/copilot/how-tos/use-copilot-agents/cloud-agent/start-copilot-sessions.md index 686394bec1fb..babff1096b3a 100644 --- a/content/copilot/how-tos/use-copilot-agents/cloud-agent/start-copilot-sessions.md +++ b/content/copilot/how-tos/use-copilot-agents/cloud-agent/start-copilot-sessions.md @@ -42,6 +42,8 @@ You can start {% data variables.copilot.copilot_cloud_agent %} from several clie * [Linear](/copilot/how-tos/use-copilot-agents/cloud-agent/integrate-cloud-agent-with-linear) * [Raycast](/copilot/how-tos/use-copilot-agents/cloud-agent/use-cloud-agent-from-raycast) +You can also start sessions automatically, on a schedule or in response to events such as an issue being opened, by setting up an {% data variables.copilot.copilot_automation %}. See [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/create-automations). + {% data variables.product.prodname_copilot_short %} will start working on the task in the background. Some entry points open a pull request automatically. In other cases, you can prompt {% data variables.product.prodname_copilot_short %} to open a pull request, or create a pull request when {% data variables.product.prodname_copilot_short %} finishes work, from the session logs. For more information, see [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent). diff --git a/content/copilot/how-tos/use-copilot-agents/cloud-agent/use-agent-apps.md b/content/copilot/how-tos/use-copilot-agents/cloud-agent/use-agent-apps.md new file mode 100644 index 000000000000..bb374844ab74 --- /dev/null +++ b/content/copilot/how-tos/use-copilot-agents/cloud-agent/use-agent-apps.md @@ -0,0 +1,55 @@ +--- +title: Using agent apps +shortTitle: Use agent apps +intro: 'Start a partner-built agent from an issue, a pull request comment, or the Agents UI on {% data variables.product.github %}.' +product: '{% data reusables.copilot.plans.permission-paid-plans-no-purchase-link %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' +versions: + feature: copilot +contentType: how-tos +category: + - Author and optimize with Copilot +--- + +> [!NOTE] {% data reusables.copilot.agent-apps-preview %} + +## Introduction + +{% data variables.copilot.agent_apps_caps %} let you delegate work to partner-built agents from within {% data variables.product.github %}. For an overview, see [AUTOTITLE](/copilot/concepts/agents/agent-apps). + +Before you can use an {% data variables.copilot.agent_app %}, the {% data variables.product.prodname_github_app %} must be installed on the account or organization that owns the repository, and agent features must be enabled for the app. If the repository is owned by an organization that belongs to an enterprise, the "{% data variables.copilot.agent_apps_caps %}" {% data variables.product.prodname_copilot_short %} policy must also be enabled in your enterprise settings. + +## Authorizing an agent app + +The first time you use an {% data variables.copilot.agent_app %}, {% data variables.product.github %} prompts you to authorize the app through an OAuth flow. Follow the prompts to authorize the app before the agent runs. For more information, see [AUTOTITLE](/apps/using-github-apps/authorizing-github-apps). + +## Starting an agent from the Agents UI + +{% data reusables.copilot.open-agents-panel-or-page %} +1. Under the prompt box, select the {% data variables.copilot.agent_app %} you want to use. +1. Type a prompt describing your request, then start the task. + +## Starting an agent from an issue + +You can assign an {% data variables.copilot.agent_app %} to an issue in the same way you assign {% data variables.copilot.copilot_cloud_agent %}. + +1. Navigate to the issue you want the agent to work on. +1. In the sidebar, under "Assignees," assign the {% data variables.copilot.agent_app %} to the issue. + +The agent starts work on the issue and reports back on its progress. + +## Starting an agent from a pull request comment + +You can ask an {% data variables.copilot.agent_app %} to make changes or perform other tasks by mentioning it in a pull request comment. + +1. Navigate to the pull request you want the agent to work on. +1. Add a comment that mentions the agent and describes what you want it to do, for example `@AGENT-NAME add a feature flag for the new checkout flow`. Pick the agent from the autocomplete picker. + +The agent responds to your comment and works on the requested changes. + +## Using agent apps on {% data variables.product.prodname_mobile %} + +You can start {% data variables.copilot.agent_apps %} from the same entry points on {% data variables.product.prodname_mobile %}. For more information about using agents on mobile, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/use-cloud-agent-on-mobile). + +## Billing + +{% data reusables.copilot.agent-apps-billing %} diff --git a/content/copilot/how-tos/use-copilot-agents/cloud-agent/use-cloud-agent-on-github.md b/content/copilot/how-tos/use-copilot-agents/cloud-agent/use-cloud-agent-on-github.md index bf5db96668fd..6de31ee821cd 100644 --- a/content/copilot/how-tos/use-copilot-agents/cloud-agent/use-cloud-agent-on-github.md +++ b/content/copilot/how-tos/use-copilot-agents/cloud-agent/use-cloud-agent-on-github.md @@ -20,6 +20,8 @@ You can start {% data variables.copilot.copilot_cloud_agent %} sessions from sev For more information about {% data variables.copilot.copilot_cloud_agent %}, see [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-cloud-agent). +You can also start partner-built agents from these same entry points using {% data variables.copilot.agent_apps %}. For more information, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/use-agent-apps). + ## Starting a session from the agents tab or panel You can start sessions from the agents tab and the agents panel. The only difference is the entry point—once you see the "New agent task" form, the steps are the same. @@ -160,6 +162,10 @@ You can ask {% data variables.product.prodname_copilot_short %} to resolve merge {% data variables.product.prodname_copilot_short %} analyzes the conflicting changes, resolves them, and verifies that the build, tests, and linter still pass. It then requests your review so you can confirm the resolution before merging. +## Running {% data variables.copilot.copilot_cloud_agent %} automatically with {% data variables.copilot.copilot_automations %} + +You can set up {% data variables.copilot.copilot_automations %} to run {% data variables.copilot.copilot_cloud_agent %} automatically, on a schedule or in response to events such as an issue being opened. You create and manage {% data variables.copilot.copilot_automations %} from the **{% data variables.copilot.copilot_automations_cap %}** pane in the **Agents** tab of a repository. For more information, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/create-automations). + ## Managing {% data variables.product.prodname_actions %} workflow runs {% data reusables.copilot.cloud-agent-workflow-run-approval-default %} For more information, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/configuring-agent-settings). diff --git a/content/copilot/how-tos/use-copilot-agents/copilot-memory.md b/content/copilot/how-tos/use-copilot-agents/copilot-memory.md deleted file mode 100644 index d6f330663334..000000000000 --- a/content/copilot/how-tos/use-copilot-agents/copilot-memory.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: Managing and curating Copilot Memory -shortTitle: Copilot Memory -intro: Learn how to manage {% data variables.copilot.copilot_memory %} settings, and how to view and delete stored repository-level facts and user-level preferences. -product: '{% data reusables.gated-features.copilot-memory %}
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' -versions: - feature: copilot -contentType: how-tos -category: - - Author and optimize with Copilot ---- - -> [!NOTE] -> * This feature is currently in {% data variables.release-phases.public_preview %} and is subject to change. -> * User-level preferences are currently only available for users on a {% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, or {% data variables.copilot.copilot_max_short %} plan. - -{% data variables.copilot.copilot_memory %} lets {% data variables.product.prodname_copilot_short %} learn about your codebase and your personal preferences, helping {% data variables.copilot.copilot_cloud_agent %}, {% data variables.copilot.copilot_code-review_short %}, and {% data variables.copilot.copilot_cli_short %} work more effectively. - -For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-memory). - -## Enabling {% data variables.copilot.copilot_memory %} - -For users with an individual paid {% data variables.product.prodname_copilot_short %} subscription, {% data variables.copilot.copilot_memory %} is enabled by default. These users can manage the setting in their personal {% data variables.product.prodname_copilot_short %} settings. - -For enterprise and organization-managed {% data variables.product.prodname_copilot_short %} subscriptions, {% data variables.copilot.copilot_memory %} is off by default and must be enabled in the enterprise or organization settings. - -Users who receive {% data variables.product.prodname_copilot_short %} from an organization must have {% data variables.copilot.copilot_memory %} enabled in the organization or enterprise settings. - -> [!NOTE] -> If a user is assigned a {% data variables.product.prodname_copilot_short %} subscription by more than one organization, the most restrictive setting applies—that is, {% data variables.copilot.copilot_memory %} will not be used unless all of those organizations have enabled this feature. - -### Enabling {% data variables.copilot.copilot_memory %} for an enterprise - -Enterprise owners can define an enablement policy for the whole enterprise, or delegate the decision to individual organization owners. - -{% data reusables.enterprise-accounts.access-enterprise %} -{% data reusables.enterprise-accounts.ai-controls-tab %} -1. In the sidebar, click **{% octicon "copilot" aria-hidden="true" aria-label="copilot" %} {% data variables.product.prodname_copilot_short %}**. -1. Under "Features", scroll down to the **{% data variables.copilot.copilot_memory %}** setting and select a policy from the dropdown. - - * **Let organizations decide** devolves the decision of whether to enable {% data variables.copilot.copilot_memory %} to organization owners. - * **Enabled everywhere** enables {% data variables.copilot.copilot_memory %} for all members of organizations in this enterprise who have a {% data variables.product.prodname_copilot_short %} license. - * **Disabled everywhere** disables {% data variables.copilot.copilot_memory %} and prevents it being enabled by organizations in this enterprise. - -### Enabling {% data variables.copilot.copilot_memory %} for an organization - -Organization owners can enable or disable {% data variables.copilot.copilot_memory %} for all members of the organization with a {% data variables.product.prodname_copilot_short %} license. - -If the organization belongs to an enterprise, the ability for organization owners to enable or disable {% data variables.copilot.copilot_memory %} may be controlled by the enterprise-level policy. - -{% data reusables.profile.access_org %} -{% data reusables.profile.org_settings %} -1. In the sidebar, under "Code, planning, and automation", click **{% octicon "copilot" aria-hidden="true" aria-label="copilot" %} {% data variables.product.prodname_copilot_short %}**, then click **Policies**. -1. Under "Features", scroll down to the setting for **{% data variables.copilot.copilot_memory %}**. -1. Click the dropdown button and select **Enabled**. - - {% data variables.copilot.copilot_memory %} is enabled for all members of the organization who have a {% data variables.product.prodname_copilot_short %} license. - -### Managing {% data variables.copilot.copilot_memory %} for an individual user - -If you have an individual paid {% data variables.product.prodname_copilot_short %} subscription, {% data variables.copilot.copilot_memory %} is enabled by default. - -Regardless of your plan, you can disable or re-enable it at any time in your personal {% data variables.product.prodname_copilot_short %} settings on {% data variables.product.github %}. - -When enabled, {% data variables.copilot.copilot_memory %} will be used in any repository in which you use {% data variables.copilot.copilot_cloud_agent %}, {% data variables.copilot.copilot_code-review_short %}, or {% data variables.copilot.copilot_cli_short %}. - -{% data reusables.user-settings.copilot-settings %} -1. Under "Features", scroll down to the setting for **{% data variables.copilot.copilot_memory %}**. -1. Click the dropdown button and select **Enabled** or **Disabled**. - -## Viewing and deleting repository-level facts and user-level preferences - -As an owner of a repository in which {% data variables.copilot.copilot_memory %} is in use, you can review the currently stored repository-level facts. If you think any are inappropriate, misleading, or incorrect you can delete them. - -### Viewing {% data variables.product.prodname_copilot_short %}'s repository-level facts - -{% data reusables.repositories.navigate-to-repo %} -{% data reusables.repositories.sidebar-settings %} -1. In the "Code & automation" section of the sidebar, click {% data variables.product.prodname_copilot_short %} then **Memory**. - - A list of the repository-level facts currently stored for this repository is displayed. - - ![Screenshot of the "{% data variables.copilot.copilot_memory %}" list showing an example set of repository-level facts.](/assets/images/help/copilot/copilot-repo-memory-list.png) - -### Viewing {% data variables.product.prodname_copilot_short %}'s user-level preferences - -{% data reusables.user-settings.copilot-settings %} -1. In the {% data variables.product.prodname_copilot_short %}, click **Memory**. - - A list of your stored user-level preferences is displayed. - - ![Screenshot of the "{% data variables.copilot.copilot_memory %}" list showing an example set of user-level preferences.](/assets/images/help/copilot/copilot-user-memory-list.png) - -### Deleting a repository-level fact or user-level preference - -You can delete a repository-level fact or user-level preference at any time. Note that {% data variables.product.prodname_copilot_short %} already validates facts and preferences before using them, so an entry is only applied if the code that produced it still exists in the codebase. - -1. View the repository-level facts or user-level preferences. -1. Click the trashcan icon to the right of a fact or preference you want to delete. - - Alternatively, use the checkboxes to select multiple entries, then click **Delete**. - -> [!NOTE] -> Repository-level facts and user-level preferences are automatically deleted after 28 days to prevent stale information from influencing {% data variables.product.prodname_copilot_short %}'s decisions. diff --git a/content/copilot/how-tos/use-copilot-agents/copilot-memory/index.md b/content/copilot/how-tos/use-copilot-agents/copilot-memory/index.md new file mode 100644 index 000000000000..597de25cd251 --- /dev/null +++ b/content/copilot/how-tos/use-copilot-agents/copilot-memory/index.md @@ -0,0 +1,12 @@ +--- +title: Managing Copilot Memory +shortTitle: Copilot Memory +intro: Manage and curate memories for {% data variables.product.prodname_copilot_short %} agents. +versions: + feature: copilot +children: + - /manage-for-yourself + - /manage-as-administrator +contentType: how-tos +--- + diff --git a/content/copilot/how-tos/use-copilot-agents/copilot-memory/manage-as-administrator.md b/content/copilot/how-tos/use-copilot-agents/copilot-memory/manage-as-administrator.md new file mode 100644 index 000000000000..e1ea636cf85c --- /dev/null +++ b/content/copilot/how-tos/use-copilot-agents/copilot-memory/manage-as-administrator.md @@ -0,0 +1,114 @@ +--- +title: Managing Copilot Memory for an organization or enterprise +shortTitle: Manage as administrator +intro: Manage {% data variables.copilot.copilot_memory %} settings and stored memories for an organization or enterprise. +product: 'Enterprises and organizations with a {% data variables.copilot.copilot_enterprise_short %} or {% data variables.copilot.copilot_business_short %} plan.' +permissions: Enterprise, organization, or repository administrators. +versions: + feature: copilot +contentType: how-tos +category: + - Manage Copilot for a team +--- + +{% data reusables.copilot.memory-how-to-intro %} + +## Enabling {% data variables.copilot.copilot_memory %} + +For enterprise- and organization-managed {% data variables.product.prodname_copilot_short %} subscriptions, {% data variables.copilot.copilot_memory %} is off by default and must be enabled in the enterprise or organization settings. + +Once {% data variables.copilot.copilot_memory %} is enabled, the feature is on for users by default. {% data variables.copilot.copilot_memory %} will be used in any repository in which users use supported {% data variables.product.prodname_copilot_short %} features, and it will save both repository-level facts and user-level preferences. Individual users can opt out of {% data variables.copilot.copilot_memory %} in their account settings. + +> [!NOTE] +> If a user is assigned a {% data variables.product.prodname_copilot_short %} subscription by more than one organization, the most restrictive setting applies—that is, {% data variables.copilot.copilot_memory %} will not be used unless all of those organizations have enabled this feature. + +### Enabling {% data variables.copilot.copilot_memory %} for an enterprise + +{% data reusables.enterprise-accounts.access-enterprise %} +{% data reusables.enterprise-accounts.ai-controls-tab %} +1. In the sidebar, click **{% octicon "copilot" aria-hidden="true" aria-label="copilot" %} {% data variables.product.prodname_copilot_short %}**. +1. Under "Features", scroll down to the **{% data variables.copilot.copilot_memory %}** setting and select a policy from the dropdown. + +### Enabling {% data variables.copilot.copilot_memory %} for an organization + +Organization owners can enable or disable {% data variables.copilot.copilot_memory %} for all members of the organization with a {% data variables.product.prodname_copilot_short %} license. + +If the organization belongs to an enterprise, the ability for organization owners to enable or disable {% data variables.copilot.copilot_memory %} may be controlled by the enterprise-level policy. + +{% data reusables.profile.access_org %} +{% data reusables.profile.org_settings %} +1. In the sidebar, under "Code, planning, and automation", click **{% octicon "copilot" aria-hidden="true" aria-label="copilot" %} {% data variables.product.prodname_copilot_short %}**, then click **Policies**. +1. Under "Features", scroll down to the setting for **{% data variables.copilot.copilot_memory %}**. +1. Click the dropdown button and select **Enabled**. + + {% data variables.copilot.copilot_memory %} is enabled for all members of the organization who have a {% data variables.product.prodname_copilot_short %} license. + +## Managing repository-level facts + +As an administrator of a repository in which {% data variables.copilot.copilot_memory %} is in use, you can review the currently stored repository-level facts. If you think any are inappropriate, misleading, or incorrect, you can delete them. + +{% data reusables.copilot.manage-repo-memories %} + +## Managing user-level preferences for an organization + +As an administrator, you can export or delete all user-level preferences that were generated with your organization as the active billing entity. For more information on the ownership model, see [AUTOTITLE](/copilot/concepts/agents/copilot-memory#user-level-preferences). + +### Exporting user-level preferences + +You can export user-level preferences in JSONL format. You can do this for everyone at once or for individual users. + +{% data reusables.organizations.navigate-to-org %} +{% data reusables.organizations.org_settings %} +1. In the sidebar, under "Code, planning, and automation", click **{% octicon "copilot" aria-hidden="true" aria-label="copilot" %} {% data variables.product.prodname_copilot_short %}**, then click **Access**. +1. From here, you can export preferences for everyone or for an individual user. + + * For an individual user: Next to the user's name, click **{% octicon "kebab-horizontal" aria-label="Open seat options" %}**, then click **Export Copilot memories**. + * For everyone: Click the **Get usage report** dropdown, then click **Download user memories**. + +{% data reusables.copilot.memory-export %} + +### Deleting user-level preferences + +You can delete user-level preferences in bulk or for individual users. + +{% data reusables.organizations.navigate-to-org %} +{% data reusables.organizations.org_settings %} +1. In the sidebar, under "Code, planning, and automation", click **{% octicon "copilot" aria-hidden="true" aria-label="copilot" %} {% data variables.product.prodname_copilot_short %}**, then click **Access**. +1. From here, you can delete preferences for everyone or for an individual user. + + * For an individual user: Next to the user's name, click **{% octicon "kebab-horizontal" aria-label="Open seat options" %}**, then click **Delete Copilot memories**. + * For everyone: Click the **Get usage report** dropdown, then click **Delete user memories**. + +## Managing user-level preferences for an enterprise + +As an administrator, you can export or delete all user-level preferences that were generated with your enterprise as the active billing entity. For more information on the ownership model, see [AUTOTITLE](/copilot/concepts/agents/copilot-memory#user-level-preferences). + +### Exporting user-level preferences + +You can export user-level preferences in JSONL format. You can do this for everyone at once or for individual users. + +{% data reusables.enterprise-accounts.copilot-licensing %} +1. From here, you can export preferences for everyone or for an individual user. + + * For an individual user: Next to the user's name, click **{% octicon "kebab-horizontal" aria-label="Open seat options" %}**, then click **Export Copilot memories**. + * For everyone: Click the **Get usage report** dropdown, then click **Download user memories**. + +{% data reusables.copilot.memory-export %} + +### Deleting user-level preferences + +You can delete user-level preferences in bulk or for individual users. + +{% data reusables.enterprise-accounts.copilot-licensing %} +1. From here, you can delete preferences for everyone or for an individual user. + + * For an individual user: Next to the user's name, click **{% octicon "kebab-horizontal" aria-label="Open seat options" %}**, then click **Delete Copilot memories**. + * For everyone: Click the **Get usage report** dropdown, then click **Delete user memories**. + +## Auditing {% data variables.copilot.copilot_memory %} + +Events appear in your organization or enterprise's audit log when an administrator exports or deletes memories, and when a user opts out of {% data variables.copilot.copilot_memory %}. See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-enterprise/review-audit-logs). + +## Further reading + +* [AUTOTITLE](/copilot/how-tos/use-copilot-agents/copilot-memory/manage-for-yourself) \ No newline at end of file diff --git a/content/copilot/how-tos/use-copilot-agents/copilot-memory/manage-for-yourself.md b/content/copilot/how-tos/use-copilot-agents/copilot-memory/manage-for-yourself.md new file mode 100644 index 000000000000..32e9d3aae642 --- /dev/null +++ b/content/copilot/how-tos/use-copilot-agents/copilot-memory/manage-for-yourself.md @@ -0,0 +1,50 @@ +--- +title: Managing Copilot Memory for your personal account +shortTitle: Manage for yourself +intro: Review and manage the coding conventions, preferences, and other details that {% data variables.product.prodname_copilot_short %} has stored from your interactions. +product: 'Individual users on a paid {% data variables.product.prodname_copilot_short %} plan.
Sign up for {% data variables.product.prodname_copilot_short %} {% octicon "link-external" height:16 %}' +versions: + feature: copilot +contentType: how-tos +category: + - Author and optimize with Copilot +--- + +{% data reusables.copilot.memory-how-to-intro %} + +{% data variables.copilot.copilot_memory %} is enabled for your account by default if: + +* You are on a paid, individual {% data variables.product.prodname_copilot_short %} plan. +* Your plan is managed by an enterprise or organization that has allowed you to use {% data variables.copilot.copilot_memory %}. + +In either case, you can disable or re-enable {% data variables.copilot.copilot_memory %} at any time in your personal {% data variables.product.prodname_copilot_short %} settings. + +## Disabling or enabling {% data variables.copilot.copilot_memory %} + +When enabled, {% data variables.copilot.copilot_memory %} will be used in any repository in which you use a supported {% data variables.product.prodname_copilot_short %} feature. Both repository-level facts and user-level preferences will be saved. + +{% data reusables.user-settings.copilot-settings %} +1. Under "Features", scroll down to the setting for **{% data variables.copilot.copilot_memory %}**. +1. Click the dropdown button and select **Enabled** or **Disabled**. + +## Selecting a default billing entity + +If you receive {% data variables.product.prodname_copilot_short %} access through multiple enterprises or organizations, you **must** select a default billing entity in order to generate user-level preferences with {% data variables.copilot.copilot_memory %}. The billing entity determines which account "owns" (can manage and delete) preferences that are generated for your account. Do this in your [account settings](https://github.com/settings/copilot/features?ref_product=copilot&ref_type=engagement&ref_style=text). + +## Viewing and deleting repository-level facts + +As an owner of a repository in which {% data variables.copilot.copilot_memory %} is in use, you can review the currently stored repository-level facts. If you think any are inappropriate, misleading, or incorrect, you can delete them. + +{% data reusables.copilot.manage-repo-memories %} + +## Viewing and deleting your user-level preferences + +{% data variables.copilot.copilot_memory %} stores preferences for your personal use of {% data variables.product.prodname_copilot_short %}. + +{% data reusables.user-settings.copilot-settings %} +1. In the sidebar, under **{% octicon "copilot" aria-hidden="true" aria-label="copilot" %} {% data variables.product.prodname_copilot_short %}**, click **Memory**. +1. You will see a list of your user-level preferences, which you can delete as needed. + +## Further reading + +* [AUTOTITLE](/copilot/how-tos/use-copilot-agents/copilot-memory/manage-as-administrator) diff --git a/content/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review.md b/content/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review.md index 9281ebe9f293..ed095779ce1b 100644 --- a/content/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review.md +++ b/content/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review.md @@ -88,6 +88,21 @@ By default, you manually request a review from {% data variables.product.prodnam {% data reusables.copilot.code-review.custom-instructions-information %} +## MCP servers and agent skills + +{% data reusables.copilot.code-review.skills-and-mcp-preview-note %} + +{% data variables.copilot.copilot_code-review_short %} can use agent skills and MCP servers configured in the repository, when they are relevant to the code being reviewed. + +To make these available for {% data variables.copilot.copilot_code-review_short %} on {% data variables.product.github %}, configure: + +* **Agent skills** in your repository (in `.github/skills`). If you want a skill to target review tasks, use a review-focused skill directory name such as `code-review`. For setup details, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/add-skills). +* **MCP servers** in repository Copilot settings. The {% data variables.product.github %} MCP server and Playwright MCP server are enabled by default. For setup details, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers). + +{% data reusables.copilot.code-review.mcp-context-usage %} + +{% data reusables.copilot.code-review.mcp-tools-setting %} + {% endwebui %} {% vscode %} diff --git a/content/copilot/reference/ai-models/model-comparison.md b/content/copilot/reference/ai-models/model-comparison.md index 040ebe6c027e..216f76e69cea 100644 --- a/content/copilot/reference/ai-models/model-comparison.md +++ b/content/copilot/reference/ai-models/model-comparison.md @@ -28,7 +28,7 @@ Use this table to find a suitable model quickly, see more detail in the sections | Model | Task area | Excels at (primary use case) | Further reading | |----------------------------------------------------|-----------------------|------------------------------|-----------------------------| | {% for model in tables.copilot.model-comparison %} | -| {{ model.name }} | {{ model.task_area }} | {{ model.excels_at }} | {{ model.further_reading }} | +| {{ model.name }}{% if model.name == 'MAI-Code-1-Flash' %}[^mai-code-1-flash]{% endif %} | {{ model.task_area }} | {{ model.excels_at }} | {{ model.further_reading }} | | {% endfor %} | ## Task: General-purpose coding and writing @@ -40,6 +40,7 @@ Use these models for common development tasks that require a balance of quality, | {% data variables.copilot.copilot_gpt_53_codex %} | Delivers higher-quality code on complex engineering tasks like features, tests, debugging, refactors, and reviews without lengthy instructions. | | {% data variables.copilot.copilot_gpt_5_mini %} | Reliable default for most coding and writing tasks. Fast, accurate, and works well across languages and frameworks. | | {% data variables.copilot.copilot_raptor_mini %} | Specialized for fast, accurate inline suggestions and explanations. | +| {% data variables.copilot.copilot_mai_code_1_flash %} | Strong instruction-following and adaptive reasoning make it a reliable default for everyday coding tasks, writing, and multi-turn development workflows. | ### When to use these models @@ -63,6 +64,7 @@ These models are optimized for speed and responsiveness. They’re ideal for qui | Model | Why it's a good fit | |-------------------------------------------------------|------------------------------------------------------------------------------------------------------------| | {% data variables.copilot.copilot_claude_haiku_45 %} | Balances fast responses with quality output. Ideal for small tasks and lightweight code explanations. | +| {% data variables.copilot.copilot_mai_code_1_flash %} | Handles quick coding tasks with adaptive efficiency, stays concise for simple requests and delivers fast, accurate responses without unnecessary depth. | ### When to use these models @@ -134,6 +136,8 @@ If your task involves deep reasoning or large-scale refactoring, consider a mode ## Next steps +[^mai-code-1-flash]: {% data variables.copilot.copilot_mai_code_1_flash %} is a continuously improving model. Performance and behavior may evolve over time as new checkpoints are released. + Choosing the right model helps you get the most out of {% data variables.product.prodname_copilot_short %}. If you're not sure which model to use, start with a general-purpose option like {% data variables.copilot.copilot_gpt_41 %}, then adjust based on your needs. * For detailed model specs and pricing, see [AUTOTITLE](/copilot/using-github-copilot/ai-models/supported-ai-models-in-copilot). diff --git a/content/copilot/reference/ai-models/model-hosting.md b/content/copilot/reference/ai-models/model-hosting.md index 952afde4d49f..bcea48af9866 100644 --- a/content/copilot/reference/ai-models/model-hosting.md +++ b/content/copilot/reference/ai-models/model-hosting.md @@ -86,6 +86,10 @@ To provide better service quality and reduce latency, {% data variables.product. When using {% data variables.copilot.copilot_gemini %} models, input prompts and output completions continue to run through {% data variables.product.prodname_copilot %}'s content filters for public code matching, when applied, along with those for harmful or offensive content. +## Microsoft models + +{% data variables.copilot.copilot_mai_code_1_flash %} is a first-party Microsoft model hosted on Azure in {% data variables.product.github %}'s tenant. + ## Inline suggestions Inline suggestions, including ghost text and next edit suggestions, are powered by models hosted on Azure for {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} plans. {% data variables.copilot.copilot_free_short %} and {% data variables.copilot.copilot_student_short %} user models are hosted on Fireworks AI. diff --git a/content/copilot/reference/ai-models/supported-models.md b/content/copilot/reference/ai-models/supported-models.md index 3962f68b48b0..cf66ce46e8c6 100644 --- a/content/copilot/reference/ai-models/supported-models.md +++ b/content/copilot/reference/ai-models/supported-models.md @@ -40,7 +40,7 @@ This table lists the AI models available in {% data variables.product.prodname_c | Model name | Provider | Release status | Agent mode | Ask mode | Edit mode | |--------------------------------------------------------|-----------|----------------------------|------------|----------|-----------| | {% for model in tables.copilot.model-release-status %} | -| {{ model.name }}{% if model.name == 'GPT-5.4 nano' %}[^gpt54nano]{% endif %} | {{ model.provider }} | {{ model.release_status }} | {% if model.agent_mode == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.ask_mode == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.edit_mode == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | +| {{ model.name }}{% if model.name == 'GPT-5.4 nano' %}[^gpt54nano]{% endif %}{% if model.name == 'MAI-Code-1-Flash' %}[^mai-code-1-flash]{% endif %} | {{ model.provider }} | {{ model.release_status }} | {% if model.agent_mode == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.ask_mode == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | {% if model.edit_mode == true %}{% octicon "check" aria-label="Included" %}{% else %}{% octicon "x" aria-label="Not included" %}{% endif %} | | {% endfor %} | {% endrowheaders %} @@ -120,17 +120,18 @@ Some {% data variables.product.prodname_copilot_short %} models require minimum {% rowheaders %} -| Model | {% data variables.product.prodname_vscode %} | {% data variables.product.prodname_vs %} | JetBrains IDEs | Xcode | Eclipse | -|------------------------------------------------------|----------------------------------------------|------------------------------------------| --- | --- | --- | -| {% data variables.copilot.copilot_gemini_3_flash %} | `v1.115.0` and later | `17.14.22` or `18.1.0` and later | `1.5.62` and later | `0.46.0` and later | `0.14.0` and later | -| {% data variables.copilot.copilot_gemini_31_pro %} | `v1.115.0` and later | `17.14.22` or `18.1.0` and later | `1.5.62` and later | `0.46.0` and later | `0.14.0` and later | -| {% data variables.copilot.copilot_gemini_35_flash %} | `v1.115.0` and later | `17.14.22` or `18.1.0` and later | `1.5.62` and later | `0.46.0` and later | `0.14.0` and later | -| {% data variables.copilot.copilot_gpt_52_codex %} | No minimum listed | `17.14.19` or `18.0.0` and later | `1.5.61` and later | `0.45.0` and later | `0.13.0` and later | -| {% data variables.copilot.copilot_gpt_53_codex %} | `v1.104.1` and later | `17.14.19` and later | `1.5.61` and later | `0.45.0` and later | `0.13.0` and later | -| {% data variables.copilot.copilot_gpt_54 %} | `v1.104.1` and later | `17.14.19` and later | `1.5.66` and later | `0.47.0` and later | `0.15.0` and later | -| {% data variables.copilot.copilot_gpt_54_mini %} | `v1.104.1` and later | `17.14.19` and later | `1.5.66` and later | `0.47.0` and later | `0.15.0` and later | -| {% data variables.copilot.copilot_gpt_55 %} | `v1.117` and later | `17.14.19` and later | `1.5.66` and later | `0.47.0` and later | `0.15.0` and later | -| {% data variables.copilot.copilot_claude_opus_48 %} | `v1.118` and later | `17.14.19` and later | TBD | TBD | TBD | +| Model | {% data variables.product.prodname_vscode %} | {% data variables.product.prodname_vs %} | JetBrains IDEs | Xcode | Eclipse | +|----------------------------------------------------------| --- |------------------------------------------| -- | --- | --- | +| {% data variables.copilot.copilot_gemini_3_flash %} | `v1.115.0` and later | `17.14.22` or `18.1.0` and later | `1.5.62` and later | `0.46.0` and later | `0.14.0` and later | +| {% data variables.copilot.copilot_gemini_31_pro %} | `v1.115.0` and later | `17.14.22` or `18.1.0` and later | `1.5.62` and later | `0.46.0` and later | `0.14.0` and later | +| {% data variables.copilot.copilot_gemini_35_flash %} | `v1.115.0` and later | `17.14.22` or `18.1.0` and later | `1.5.62` and later | `0.46.0` and later | `0.14.0` and later | +| {% data variables.copilot.copilot_gpt_52_codex %} | No minimum listed | `17.14.19` or `18.0.0` and later | `1.5.61` and later | `0.45.0` and later | `0.13.0` and later | +| {% data variables.copilot.copilot_gpt_53_codex %} | `v1.104.1` and later | `17.14.19` and later | `1.5.61` and later | `0.45.0` and later | `0.13.0` and later | +| {% data variables.copilot.copilot_gpt_54 %} | `v1.104.1` and later | `17.14.19` and later | `1.5.66` and later | `0.47.0` and later | `0.15.0` and later | +| {% data variables.copilot.copilot_gpt_54_mini %} | `v1.104.1` and later | `17.14.19` and later | `1.5.66` and later | `0.47.0` and later | `0.15.0` and later | +| {% data variables.copilot.copilot_gpt_55 %} | `v1.117` and later | `17.14.19` and later | `1.5.66` and later | `0.47.0` and later | `0.15.0` and later | +| {% data variables.copilot.copilot_claude_opus_48 %} | `v1.118` and later | `17.14.19` and later | TBD | TBD | TBD | +| {% data variables.copilot.copilot_mai_code_1_flash %} | `v1.121` and later | Not available | Not available | Not available | Not available | {% endrowheaders %} @@ -167,6 +168,8 @@ Access to evaluation models in {% data variables.copilot.copilot_auto_model_sele {% data reusables.enterprise-accounts.ai-controls-tab %} 1. For the **Evaluation models in {% data variables.product.prodname_copilot_short %} {% data variables.copilot.copilot_auto_model_selection_short %}** setting, select **Disabled** from the dropdown. +[^mai-code-1-flash]: {% data variables.copilot.copilot_mai_code_1_flash %} is a continuously improving model. Performance and behavior may evolve over time as new checkpoints are released. + ## Utility models Utility models power background features across surfaces, and cannot be disabled or selected in the model picker. See [AUTOTITLE](/copilot/concepts/models/utility-models). diff --git a/content/copilot/reference/copilot-billing/request-based-billing-legacy/copilot-requests.md b/content/copilot/reference/copilot-billing/request-based-billing-legacy/copilot-requests.md index 7fa1be3c1389..dca5e98652b8 100644 --- a/content/copilot/reference/copilot-billing/request-based-billing-legacy/copilot-requests.md +++ b/content/copilot/reference/copilot-billing/request-based-billing-legacy/copilot-requests.md @@ -47,7 +47,7 @@ The following {% data variables.product.prodname_copilot_short %} features can u | [{% data variables.copilot.copilot_spaces %}](/copilot/using-github-copilot/copilot-spaces/about-organizing-and-sharing-context-with-copilot-spaces) | {% data variables.copilot.copilot_spaces %} uses **one premium request** per user prompt, multiplied by the model's rate. | {% data variables.product.prodname_copilot_short %} premium requests | | [{% data variables.product.prodname_spark_short %}](/copilot/tutorials/building-ai-app-prototypes) | Each prompt to {% data variables.product.prodname_spark_short %} uses a fixed rate of **four premium requests**. | {% data variables.product.prodname_spark_short %} premium requests | | [{% data variables.product.prodname_openai_codex %} {% data variables.product.prodname_vscode %} integration](/copilot/concepts/agents/openai-codex) | While in preview, each prompt to {% data variables.product.prodname_openai_codex %} uses **one premium request** multiplied by the model multiplier rates. | {% data variables.product.prodname_copilot_short %} premium requests | -| [Third-party coding agents](/free-pro-team@latest/copilot/concepts/agents/about-third-party-agents) | While in preview, each prompt to a third-party coding agent uses **one premium request**, multiplied by the model's rate. | {% data variables.product.prodname_copilot_short %} premium requests | +| [Third-party coding agents](/free-pro-team@latest/copilot/concepts/agents/about-third-party-coding-agents) | While in preview, each prompt to a third-party coding agent uses **one premium request**, multiplied by the model's rate. | {% data variables.product.prodname_copilot_short %} premium requests | {% endrowheaders %} diff --git a/content/copilot/reference/copilot-billing/request-based-billing-legacy/model-multipliers-for-annual-plans.md b/content/copilot/reference/copilot-billing/request-based-billing-legacy/model-multipliers-for-annual-plans.md index 604f295c2785..4049722b57c5 100644 --- a/content/copilot/reference/copilot-billing/request-based-billing-legacy/model-multipliers-for-annual-plans.md +++ b/content/copilot/reference/copilot-billing/request-based-billing-legacy/model-multipliers-for-annual-plans.md @@ -35,6 +35,7 @@ The following table shows the model multipliers per supported model. > > * {% data variables.copilot.copilot_claude_sonnet_46 %} > * {% data variables.copilot.copilot_gpt_54_mini %} +> * The multiplier for {% data variables.copilot.copilot_mai_code_1_flash %} is a promotional rate. | Model | Multiplier | | --- | ---: | diff --git a/content/copilot/reference/copilot-cli-reference/cli-command-reference.md b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md index dc5716f7f930..e2b64ec98791 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-command-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md @@ -198,7 +198,7 @@ Holding or accelerates scrolling after the first 1 | `/ask QUESTION` | Ask a quick side question without adding to the conversation history. {% data reusables.copilot.experimental %} | | `/allow-all [on\|off\|show]`, `/yolo [on\|off\|show]` | Enable all permissions (tools, paths, and URLs). | | `/changelog [summarize] [VERSION\|last N\|since VERSION]`, `/release-notes [summarize] [VERSION\|last N\|since VERSION]` | Display the CLI changelog. Optionally specify a version, a count of recent releases, or a starting version. Add the keyword `summarize` for an AI-generated summary. | -| `/chronicle ` | Session history tools and insights. {% data reusables.copilot.experimental %} | +| `/chronicle ` | Session history tools and insights. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/chronicle). | | `/clear [PROMPT]`, `/new [PROMPT]`, `/reset [PROMPT]` | Start a new conversation. | | `/clikit [COMPONENT]` | Preview CLI business components (for example, quota info). | | `/collect-debug-logs [file\|gist] [PATH]` | Collect debug logs to an archive file or {% data variables.product.github %} gist. | diff --git a/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md b/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md index 374161c7751c..4277aa131971 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md @@ -122,6 +122,8 @@ Stores your saved tool and directory permission decisions, organized by project Contains session history data, organized by session ID in subdirectories. Each session directory stores an event log (`events.jsonl`) and workspace artifacts (plans, checkpoints, tracked files). This data enables session resume (`--resume` or `--continue`). +Deleting files from this directory only removes local copies. If you have synced sessions to your {% data variables.product.github %} account, the synced data is stored separately and is not affected by local file deletion. You can delete or hide synced sessions from {% data variables.product.prodname_dotcom_the_website %}. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/chronicle#managing-your-session-data). + ### `command-history-state/` Contains command history data used for reverse search (Ctrl+R) and history navigation in the interactive interface. This directory is managed automatically and should not be edited. @@ -130,6 +132,8 @@ Contains command history data used for reverse search (Ctrl+R/SKILL.md`, `.claude/skills//SKILL.md`, or `.agents/skills//SKILL.md` (project); `~/.copilot/skills//SKILL.md` or `~/.agents/skills//SKILL.md` (personal) | | [Hooks](/copilot/concepts/agents/hooks) | Custom shell commands that execute deterministically at specific points in an agent's workflow | `.github/hooks/*.json` | -| [MCP servers](/copilot/concepts/context/mcp) | Connection to external systems, APIs, and databases | `mcp.json` (path varies by IDE), repo settings on {% data variables.product.github %} ({% data variables.copilot.copilot_cloud_agent_short %}), or `mcp-servers` property in {% data variables.copilot.copilot_custom_agent_short %} configurations | +| [MCP servers](/copilot/concepts/context/mcp) | Connection to external systems, APIs, and databases | `mcp.json` (path varies by IDE), repository MCP settings on {% data variables.product.github %} (applies to {% data variables.copilot.copilot_cloud_agent_short %} and {% data variables.copilot.copilot_code-review_short %}), or `mcp-servers` property in {% data variables.copilot.copilot_custom_agent_short %} configurations | ## Usage comparison diff --git a/content/copilot/reference/policy-conflicts.md b/content/copilot/reference/policy-conflicts.md index ddd45c5ee3be..a5ad0dab36df 100644 --- a/content/copilot/reference/policy-conflicts.md +++ b/content/copilot/reference/policy-conflicts.md @@ -50,7 +50,7 @@ Feature, model, and privacy settings for users are set according to the **least | {% data variables.copilot.copilot_cli_short %} | Least restrictive organization | [AUTOTITLE](/copilot/responsible-use/copilot-cli) | | Editor preview features | Least restrictive organization | [AUTOTITLE](/free-pro-team@latest/site-policy/github-terms/github-pre-release-license-terms) | | {% data variables.product.prodname_github_models %}, one policy per model | Least restrictive organization | [AUTOTITLE](/github-models/github-models-at-scale/manage-models-at-scale) | -| MCP servers in {% data variables.product.prodname_copilot_short %} | Least restrictive organization | [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/extend-cloud-agent-with-mcp) | +| MCP servers in {% data variables.product.prodname_copilot_short %} | Least restrictive organization | [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers) | | {% data variables.product.prodname_copilot_short %}-generated commit messages | Least restrictive organization | [AUTOTITLE](/copilot/responsible-use/copilot-commit-message-generation) | ## Next steps diff --git a/content/copilot/responsible-use/copilot-cloud-agent.md b/content/copilot/responsible-use/copilot-cloud-agent.md index dc1e3d455e82..4f232495f863 100644 --- a/content/copilot/responsible-use/copilot-cloud-agent.md +++ b/content/copilot/responsible-use/copilot-cloud-agent.md @@ -23,6 +23,8 @@ category: While working on your task, the agent has access to its own ephemeral development environment where it can make changes to your code, execute automated tests, and run linters. +The agent can also be run automatically, on a schedule or in response to events such as an issue being opened, by setting up an {% data variables.copilot.copilot_automation %}. In this case, the agent performs a task you defined in advance, without a person initiating each run. For more information, see [AUTOTITLE](/copilot/concepts/agents/cloud-agent/about-automations). + The agent has been evaluated across a variety of programming languages, with English as the primary supported language. The agent works by using a combination of natural language processing and machine learning to understand your task and make changes in a codebase to complete your task. This process can be broken down into a number of steps. diff --git a/data/reusables/cli/public-preview-sandbox.md b/data/reusables/cli/public-preview-sandbox.md new file mode 100644 index 000000000000..89c2708fec4b --- /dev/null +++ b/data/reusables/cli/public-preview-sandbox.md @@ -0,0 +1,2 @@ +> [!NOTE] +> {% data variables.copilot.sandbox_caps %} is in {% data variables.release-phases.public_preview %} and subject to change. diff --git a/data/reusables/copilot/agent-apps-billing.md b/data/reusables/copilot/agent-apps-billing.md new file mode 100644 index 000000000000..dfa7dfda8aad --- /dev/null +++ b/data/reusables/copilot/agent-apps-billing.md @@ -0,0 +1 @@ +{% data variables.copilot.agent_apps_caps %} are powered by {% data variables.copilot.copilot_cloud_agent %}. When you use an {% data variables.copilot.agent_app %}, the AI usage is billed to your {% data variables.product.prodname_copilot_short %} subscription, and sessions consume {% data variables.product.prodname_ai_credits_short %} in the same way as {% data variables.copilot.copilot_cloud_agent %}. See [AUTOTITLE](/billing/concepts/product-billing/github-copilot-billing). diff --git a/data/reusables/copilot/agent-apps-entrypoints.md b/data/reusables/copilot/agent-apps-entrypoints.md new file mode 100644 index 000000000000..56560670bb4f --- /dev/null +++ b/data/reusables/copilot/agent-apps-entrypoints.md @@ -0,0 +1,5 @@ +You can start an {% data variables.copilot.agent_app %}'s agent from the following entry points on {% data variables.product.prodname_dotcom_the_website %} and {% data variables.product.prodname_mobile %}: + +* **Issue assignment**: Assign the {% data variables.copilot.agent_app %} to an issue in a repository. +* **Pull request comment**: Mention `@AGENT-NAME` in a comment on a pull request to ask the agent to make changes. +* **Agents UI**: Select the {% data variables.copilot.agent_app %} under the prompt box in the Agents tab or panel, then start a task with a prompt. diff --git a/data/reusables/copilot/agent-apps-intro.md b/data/reusables/copilot/agent-apps-intro.md new file mode 100644 index 000000000000..9d20bf4f0bd7 --- /dev/null +++ b/data/reusables/copilot/agent-apps-intro.md @@ -0,0 +1 @@ +{% data variables.copilot.agent_apps_caps %} are {% data variables.product.prodname_github_apps %} that expose agents on {% data variables.product.github %}. {% data variables.product.company_short %} partners build {% data variables.copilot.agent_apps %} to bring their tools and services into your development workflow. These {% data variables.copilot.agent_apps %} are agents you can delegate work to alongside {% data variables.copilot.copilot_cloud_agent %} and other third-party agents. \ No newline at end of file diff --git a/data/reusables/copilot/agent-apps-preview.md b/data/reusables/copilot/agent-apps-preview.md new file mode 100644 index 000000000000..2b5c0eee6c23 --- /dev/null +++ b/data/reusables/copilot/agent-apps-preview.md @@ -0,0 +1 @@ +Agent apps are currently in {% data variables.release-phases.public_preview %} and subject to change. diff --git a/data/reusables/copilot/cloud-agent-required-hosts.md b/data/reusables/copilot/cloud-agent-required-hosts.md index 53e71bf1aa47..3b5295602a48 100644 --- a/data/reusables/copilot/cloud-agent-required-hosts.md +++ b/data/reusables/copilot/cloud-agent-required-hosts.md @@ -3,7 +3,7 @@ * `api.individual.githubcopilot.com` (if you expect {% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, or {% data variables.copilot.copilot_max_short %} users to use {% data variables.copilot.copilot_cloud_agent %} in your repository) * `api.business.githubcopilot.com` (if you expect {% data variables.copilot.copilot_business_short %} users to use {% data variables.copilot.copilot_cloud_agent %} in your repository) * `api.enterprise.githubcopilot.com` (if you expect {% data variables.copilot.copilot_enterprise_short %} users to use {% data variables.copilot.copilot_cloud_agent %} in your repository) -* If you are using the {% data variables.product.prodname_openai_codex %} third-party agent (for more information, see [AUTOTITLE](/copilot/concepts/agents/about-third-party-agents)): +* If you are using the {% data variables.product.prodname_openai_codex %} third-party coding agent (for more information, see [AUTOTITLE](/copilot/concepts/agents/about-third-party-coding-agents)): * `npmjs.org` * `npmjs.com` * `registry.npmjs.com` diff --git a/data/reusables/copilot/cloud-agent/automations-availability.md b/data/reusables/copilot/cloud-agent/automations-availability.md new file mode 100644 index 000000000000..b9cd578e52c4 --- /dev/null +++ b/data/reusables/copilot/cloud-agent/automations-availability.md @@ -0,0 +1,7 @@ +For {% data variables.copilot.copilot_automations %} to be available in a repository, all of the following must be true: + +* The repository must be **private or internal**. {% data variables.copilot.copilot_automations_cap %} are not available in public repositories. +* {% data variables.copilot.copilot_cloud_agent %} must be enabled for the repository. If you have {% data variables.copilot.copilot_business_short %} or {% data variables.copilot.copilot_enterprise_short %}, an administrator must enable the {% data variables.copilot.copilot_cloud_agent %} policy. See [AUTOTITLE](/copilot/concepts/agents/cloud-agent/access-management). +* The organization must allow both {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_automations %} in the repository (both are enabled by default). See [AUTOTITLE](/copilot/how-tos/administer-copilot/manage-for-organization/add-copilot-cloud-agent). + +{% data variables.copilot.copilot_automations_cap %} are available with the {% data variables.copilot.copilot_pro %}, {% data variables.copilot.copilot_pro_plus %}, {% data variables.copilot.copilot_max %}, {% data variables.copilot.copilot_for_business %}, and {% data variables.copilot.copilot_enterprise %} plans. diff --git a/data/reusables/copilot/cloud-agent/automations-billing.md b/data/reusables/copilot/cloud-agent/automations-billing.md new file mode 100644 index 000000000000..3c0bf8f269bc --- /dev/null +++ b/data/reusables/copilot/cloud-agent/automations-billing.md @@ -0,0 +1 @@ +Each time an {% data variables.copilot.copilot_automation %} runs, it starts a {% data variables.copilot.copilot_cloud_agent %} session that uses {% data variables.product.prodname_actions %} minutes and {% data variables.product.prodname_ai_credits %}. This usage is billed to the user who created the {% data variables.copilot.copilot_automation %}. For more information, see [AUTOTITLE](/billing/managing-billing-for-your-products/managing-billing-for-github-copilot/about-billing-for-github-copilot#allowance-usage-for-copilot-cloud-agent). diff --git a/data/reusables/copilot/cloud-agent/automations-what-is.md b/data/reusables/copilot/cloud-agent/automations-what-is.md new file mode 100644 index 000000000000..1707d6007c3d --- /dev/null +++ b/data/reusables/copilot/cloud-agent/automations-what-is.md @@ -0,0 +1 @@ +With {% data variables.copilot.copilot_automations %}, you can set up {% data variables.copilot.copilot_cloud_agent %} to run automatically, either on a schedule or in response to an event in a repository. {% data variables.copilot.copilot_automations_cap %} can take action within the repository where they are configured, such as opening a pull request or labeling an issue. diff --git a/data/reusables/copilot/code-review/mcp-context-usage.md b/data/reusables/copilot/code-review/mcp-context-usage.md new file mode 100644 index 000000000000..05989ddb66b8 --- /dev/null +++ b/data/reusables/copilot/code-review/mcp-context-usage.md @@ -0,0 +1,7 @@ +{% data variables.copilot.copilot_code-review_short %} is more likely to use this context when: + +* Agent skills directories have review-focused names and descriptions, such as `code-review`, that indicate they are intended for pull request review. +* Your agent skills or custom instructions explicitly tell {% data variables.copilot.copilot_code-review_short %} to use specific MCP context. +* Pull request descriptions reference items available through configured MCP servers, such as issue keys or incident IDs. + +To verify which MCP context {% data variables.copilot.copilot_code-review_short %} used for a specific review, open the linked review session from the pull request timeline, then check the session logs to see which MCP servers and tools were called. \ No newline at end of file diff --git a/data/reusables/copilot/code-review/mcp-tools-setting.md b/data/reusables/copilot/code-review/mcp-tools-setting.md new file mode 100644 index 000000000000..562e706be78b --- /dev/null +++ b/data/reusables/copilot/code-review/mcp-tools-setting.md @@ -0,0 +1 @@ +In repository settings, **Allow Copilot to use MCP tools when reviewing pull requests** is enabled by default. Disable this setting if you want MCP servers available only for {% data variables.copilot.copilot_cloud_agent %}, and not for {% data variables.copilot.copilot_code-review_short %}. For step-by-step instructions, see [AUTOTITLE](/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers#disabling-mcp-tools-for-code-review). \ No newline at end of file diff --git a/data/reusables/copilot/code-review/skills-and-mcp-preview-note.md b/data/reusables/copilot/code-review/skills-and-mcp-preview-note.md new file mode 100644 index 000000000000..70ed25ff548b --- /dev/null +++ b/data/reusables/copilot/code-review/skills-and-mcp-preview-note.md @@ -0,0 +1,2 @@ +> [!NOTE] +> Support for agent skills and MCP servers with {% data variables.copilot.copilot_code-review_short %} is in {% data variables.release-phases.public_preview %} and subject to change. \ No newline at end of file diff --git a/data/reusables/copilot/copilot-cli/synced-sessions-view-only.md b/data/reusables/copilot/copilot-cli/synced-sessions-view-only.md new file mode 100644 index 000000000000..3408427a6bc4 --- /dev/null +++ b/data/reusables/copilot/copilot-cli/synced-sessions-view-only.md @@ -0,0 +1 @@ +Remote access is different from session syncing. Your {% data variables.copilot.copilot_cli_short %} sessions are synced to your {% data variables.product.github %} account by default, and synced sessions appear as view-only on {% data variables.product.prodname_dotcom_the_website %} and {% data variables.product.prodname_mobile %}. These sessions are not steerable. To steer a session remotely, you must enable remote control. For more information about session syncing, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/chronicle#session-syncing). diff --git a/data/reusables/copilot/manage-repo-memories.md b/data/reusables/copilot/manage-repo-memories.md new file mode 100644 index 000000000000..746d5ad94d23 --- /dev/null +++ b/data/reusables/copilot/manage-repo-memories.md @@ -0,0 +1,4 @@ +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.repositories.sidebar-settings %} +1. In the "Code & automation" section of the sidebar, click {% data variables.product.prodname_copilot_short %}, then click **Memory**. +1. You will see a list of repository-level facts, which you can delete as needed. diff --git a/data/reusables/copilot/mcp/cloud-agent-limitations.md b/data/reusables/copilot/mcp/cloud-agent-limitations.md deleted file mode 100644 index 54f609ba86d5..000000000000 --- a/data/reusables/copilot/mcp/cloud-agent-limitations.md +++ /dev/null @@ -1,3 +0,0 @@ -> [!NOTE] -> * {% data variables.copilot.copilot_cloud_agent %} only supports tools provided by MCP servers. It does not support resources or prompts. -> * {% data variables.copilot.copilot_cloud_agent %} does not currently support remote MCP servers that leverage OAuth for authentication and authorization. diff --git a/data/reusables/copilot/mcp/repo-mcp-limitations.md b/data/reusables/copilot/mcp/repo-mcp-limitations.md new file mode 100644 index 000000000000..951279a1395e --- /dev/null +++ b/data/reusables/copilot/mcp/repo-mcp-limitations.md @@ -0,0 +1,4 @@ +When configuring MCP servers for use by {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_code-review_short %}, keep in mind: + +* {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_code-review_short %} only support MCP tools. They do not currently support resources or prompts provided by the MCP server. +* {% data variables.copilot.copilot_cloud_agent %} and {% data variables.copilot.copilot_code-review_short %} do not currently support remote MCP servers that leverage OAuth for authentication and authorization. diff --git a/data/reusables/copilot/memory-export.md b/data/reusables/copilot/memory-export.md new file mode 100644 index 000000000000..ddb53dfe5481 --- /dev/null +++ b/data/reusables/copilot/memory-export.md @@ -0,0 +1 @@ +Existing exports are reused for a two-hour window, so if someone else has requested a bulk export or an export for the same user within the last two hours, you may find the results are slightly out of date. Exports are limited to 10 per hour. diff --git a/data/reusables/copilot/memory-how-to-intro.md b/data/reusables/copilot/memory-how-to-intro.md new file mode 100644 index 000000000000..374cf588217e --- /dev/null +++ b/data/reusables/copilot/memory-how-to-intro.md @@ -0,0 +1,3 @@ +> [!NOTE] This feature is currently in {% data variables.release-phases.public_preview %} and is subject to change. + +{% data variables.copilot.copilot_memory %} lets {% data variables.product.prodname_copilot_short %} learn about your codebase and your personal preferences, helping {% data variables.product.prodname_copilot_short %} agents work more effectively. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-memory). diff --git a/data/reusables/copilot/optional-select-custom-agent-dotcom.md b/data/reusables/copilot/optional-select-custom-agent-dotcom.md index 7577bed75de6..fb298695b9e0 100644 --- a/data/reusables/copilot/optional-select-custom-agent-dotcom.md +++ b/data/reusables/copilot/optional-select-custom-agent-dotcom.md @@ -1,2 +1,2 @@ 1. Optionally, you can click {% octicon "copilot" aria-hidden="true" aria-label="copilot" %} to open the agent dropdown menu, if you want to assign an agent or a {% data variables.copilot.copilot_custom_agent_short %} with specialized behavior and tools. You can select an existing {% data variables.copilot.copilot_custom_agent_short %} from your repository, organization, or enterprise. You can also click **{% octicon "plus" aria-label="Plus button" %} Create an agent** to create a new {% data variables.copilot.agent_profile %} in your selected repository and branch. For more information, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/create-custom-agents). - > [!NOTE] {% data reusables.gated-features.third-party-agents %} + > [!NOTE] {% data reusables.gated-features.third-party-coding-agents %} diff --git a/data/reusables/copilot/plans/permission-paid-plans-no-purchase-link.md b/data/reusables/copilot/plans/permission-paid-plans-no-purchase-link.md new file mode 100644 index 000000000000..2b3f4751ad81 --- /dev/null +++ b/data/reusables/copilot/plans/permission-paid-plans-no-purchase-link.md @@ -0,0 +1 @@ +Available for all paid [{% data variables.product.prodname_copilot_short %} plans](/copilot/get-started/plans). \ No newline at end of file diff --git a/data/reusables/gated-features/agent-apps.md b/data/reusables/gated-features/agent-apps.md new file mode 100644 index 000000000000..6b1b2e348775 --- /dev/null +++ b/data/reusables/gated-features/agent-apps.md @@ -0,0 +1 @@ +Agent apps are available in the {% data variables.copilot.copilot_pro %}, {% data variables.copilot.copilot_pro_plus %}, {% data variables.copilot.copilot_max %}, {% data variables.copilot.copilot_for_business %}, and {% data variables.copilot.copilot_enterprise %} plans. diff --git a/data/reusables/gated-features/copilot-automations.md b/data/reusables/gated-features/copilot-automations.md new file mode 100644 index 000000000000..4a2f86a96df4 --- /dev/null +++ b/data/reusables/gated-features/copilot-automations.md @@ -0,0 +1 @@ +{% data variables.copilot.copilot_automations_cap %} are available with the {% data variables.copilot.copilot_pro %}, {% data variables.copilot.copilot_pro_plus %}, {% data variables.copilot.copilot_max %}, {% data variables.copilot.copilot_for_business %}, and {% data variables.copilot.copilot_enterprise %} plans. {% data variables.copilot.copilot_automations_cap %} are available in private and internal repositories only. They are not available where they have been disabled by a repository administrator, in repositories owned by {% data variables.enterprise.prodname_managed_users %}, or where {% data variables.copilot.copilot_cloud_agent %} is not enabled. diff --git a/data/reusables/gated-features/github-app.md b/data/reusables/gated-features/github-app.md index 364f33784675..9f73f068d43c 100644 --- a/data/reusables/gated-features/github-app.md +++ b/data/reusables/gated-features/github-app.md @@ -1 +1 @@ -{% data variables.copilot.github_copilot_app %} is available with {% data variables.copilot.copilot_business_short %} and {% data variables.copilot.copilot_enterprise_short %} plans (if the organization has enabled preview features and {% data variables.copilot.copilot_cli_short %}), and via waitlist for {% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, and {% data variables.copilot.copilot_max_short %} plans. +{% data variables.copilot.github_copilot_app %} is in {% data variables.release-phases.technical_preview %}. {% data variables.copilot.copilot_for_business %}, {% data variables.copilot.copilot_enterprise %}, {% data variables.copilot.copilot_pro %}, and {% data variables.copilot.copilot_pro_plus %} users can download and use the app. {% data variables.copilot.copilot_free %} users and users without a {% data variables.product.prodname_copilot_short %} plan can [join the waitlist](https://gh.io/github-copilot-app?utm_source=docs-github-copilot-app-permissions-waitlist&utm_medium=docs&utm_campaign=msbuild-2026) to request access. diff --git a/data/reusables/gated-features/third-party-agents.md b/data/reusables/gated-features/third-party-agents.md deleted file mode 100644 index 1402bab5a9df..000000000000 --- a/data/reusables/gated-features/third-party-agents.md +++ /dev/null @@ -1 +0,0 @@ -Third-party agents are available in all paid {% data variables.product.prodname_copilot_short %} plans. \ No newline at end of file diff --git a/data/reusables/gated-features/third-party-coding-agents.md b/data/reusables/gated-features/third-party-coding-agents.md new file mode 100644 index 000000000000..a25ee7f93756 --- /dev/null +++ b/data/reusables/gated-features/third-party-coding-agents.md @@ -0,0 +1 @@ +Third-party coding agents are available for all paid [{% data variables.product.prodname_copilot_short %} plans](/copilot/get-started/plans). \ No newline at end of file diff --git a/data/tables/copilot/annual-subscriber-model-multipliers.yml b/data/tables/copilot/annual-subscriber-model-multipliers.yml index 5b240b977d7c..4ff52842bc29 100644 --- a/data/tables/copilot/annual-subscriber-model-multipliers.yml +++ b/data/tables/copilot/annual-subscriber-model-multipliers.yml @@ -85,3 +85,6 @@ - model: 'Raptor mini' new_multiplier: '0.33' + +- model: 'MAI-Code-1-Flash' + new_multiplier: '0.33' diff --git a/data/tables/copilot/auto-model-selection.yml b/data/tables/copilot/auto-model-selection.yml index cd2c5c1407c5..8ec9520b7cee 100644 --- a/data/tables/copilot/auto-model-selection.yml +++ b/data/tables/copilot/auto-model-selection.yml @@ -3,7 +3,7 @@ # - OpenAI # - Anthropic # - Google -# - xAI +# - Microsoft # - others # 2. Within each provider group, alphabetically by model name. # @@ -54,6 +54,12 @@ chat: true cli: true +# Microsoft +- name: MAI-Code-1-Flash + cloud_agent: false + chat: true + cli: false + # Fine-tuned OAI models - name: Raptor mini cloud_agent: false diff --git a/data/tables/copilot/model-comparison.yml b/data/tables/copilot/model-comparison.yml index 5e7cc3df6206..7d3346899fd1 100644 --- a/data/tables/copilot/model-comparison.yml +++ b/data/tables/copilot/model-comparison.yml @@ -99,6 +99,12 @@ excels_at: Fast, reliable answers to lightweight coding questions further_reading: '[Gemini 3.5 Flash model card](https://storage.googleapis.com/deepmind-media/Model-Cards/Gemini-3-5-Flash-Model-Card.pdf)' +# Microsoft +- name: MAI-Code-1-Flash + task_area: General-purpose coding and writing + excels_at: Fast, accurate code completions and explanations + further_reading: '[MAI-Code-1-Flash model card](https://aka.ms/mai-code-1-flash-modelcard)' + # Other providers (alphabetized by model name) - name: Qwen2.5 task_area: General-purpose coding and writing diff --git a/data/tables/copilot/model-multipliers.yml b/data/tables/copilot/model-multipliers.yml index 99971bef01df..b12e88b65f5e 100644 --- a/data/tables/copilot/model-multipliers.yml +++ b/data/tables/copilot/model-multipliers.yml @@ -97,6 +97,10 @@ multiplier_paid: 7.5 multiplier_free: Not applicable +- name: MAI-Code-1-Flash + multiplier_paid: 0.33 + multiplier_free: Not applicable + - name: Raptor mini multiplier_paid: 0 multiplier_free: 1 diff --git a/data/tables/copilot/model-release-status.yml b/data/tables/copilot/model-release-status.yml index aadf3d65ae43..f25f3e1560d0 100644 --- a/data/tables/copilot/model-release-status.yml +++ b/data/tables/copilot/model-release-status.yml @@ -168,6 +168,14 @@ ask_mode: true edit_mode: true +# Microsoft models +- name: 'MAI-Code-1-Flash' + provider: 'Microsoft' + release_status: 'GA' + agent_mode: true + ask_mode: true + edit_mode: true + # Fine-tuned OAI models - name: 'Raptor mini' provider: 'Fine-tuned GPT-5 mini' diff --git a/data/tables/copilot/model-supported-clients.yml b/data/tables/copilot/model-supported-clients.yml index c1d29e2f5ea3..994bd90efae1 100644 --- a/data/tables/copilot/model-supported-clients.yml +++ b/data/tables/copilot/model-supported-clients.yml @@ -131,6 +131,15 @@ xcode: true jetbrains: true +- name: MAI-Code-1-Flash + dotcom: false + cli: false + vscode: true + vs: false + eclipse: false + xcode: false + jetbrains: false + - name: GPT-5 mini dotcom: false cli: true diff --git a/data/tables/copilot/model-supported-plans.yml b/data/tables/copilot/model-supported-plans.yml index c9902a467849..2bb8eba4ce42 100644 --- a/data/tables/copilot/model-supported-plans.yml +++ b/data/tables/copilot/model-supported-plans.yml @@ -103,6 +103,13 @@ business: true enterprise: true +- name: MAI-Code-1-Flash + pro: true + pro_plus: true + max: true + business: false + enterprise: false + - name: GPT-5 mini pro: true pro_plus: true @@ -165,3 +172,10 @@ max: true business: false enterprise: false + +- name: Goldeneye + pro: false + pro_plus: false + max: false + business: false + enterprise: false diff --git a/data/tables/copilot/models-and-pricing.yml b/data/tables/copilot/models-and-pricing.yml index 0831f0ab60f8..7faab4d7056f 100644 --- a/data/tables/copilot/models-and-pricing.yml +++ b/data/tables/copilot/models-and-pricing.yml @@ -198,6 +198,15 @@ cached_input: $0.15 output: $9.00 +# Microsoft +- model: 'MAI-Code-1-Flash' + provider: microsoft + release_status: GA + category: Lightweight + input: $0.75 + cached_input: $0.075 + output: $4.50 + # Fine-tuned (GitHub) - model: 'Raptor mini[^7]' provider: github diff --git a/data/variables/copilot.yml b/data/variables/copilot.yml index b718226e0efe..d9d7269e06b0 100644 --- a/data/variables/copilot.yml +++ b/data/variables/copilot.yml @@ -69,6 +69,11 @@ copilot_cloud_agent_short: 'cloud agent' copilot_cloud_agent_short_cap_c: 'Cloud agent' copilot_cloud_agent_tmp: 'Copilot cloud agent (formerly Copilot coding agent)' +## Copilot automations (powered by Copilot cloud agent) +copilot_automations_cap: 'Automations' +copilot_automations: 'automations' +copilot_automation: 'automation' + ## Short for "Copilot Extensions agent" -> {% data variables.copilot.copilot_agent_short %} ## Note: this is NOT a short form for the Copilot cloud agent (previously coding agent / Padawan): copilot_agent_short: 'Copilot agent' @@ -95,6 +100,12 @@ copilot_old-cli_short: 'Copilot in the CLI' copilot_old-cli: 'GitHub Copilot in the CLI' copilot_cli_npm_version: 'Node.js 22 or later' +## GitHub Sandbox +sandbox: 'cloud and local sandboxes for GitHub Copilot' +sandbox_caps: 'Cloud and local sandboxes for GitHub Copilot' +sandbox_short: 'sandboxes for GitHub Copilot' +sandbox_short_caps: 'Sandboxes for GitHub Copilot' + ## Copilot custom agents copilot_custom_agent: 'Copilot custom agent' copilot_custom_agents: 'Copilot custom agents' @@ -103,6 +114,14 @@ copilot_custom_agent_caps_short: 'Custom agent' custom_agents_short: 'custom agents' custom_agents_caps_short: 'Custom agents' +## Agent apps (GitHub Apps that expose custom agents, powered by Copilot cloud agent) +agent_apps: 'agent apps' +agent_app: 'agent app' +agent_apps_short: 'agent apps' +agent_app_short: 'agent app' +agent_apps_caps: 'Agent apps' +agent_app_caps: 'Agent app' + ## Copilot SDK copilot_sdk: 'GitHub Copilot SDK' copilot_sdk_short: 'Copilot SDK' @@ -209,6 +228,8 @@ copilot_o4_mini: 'o4-mini' copilot_grok_code: 'Grok Code Fast 1' # Qwen: copilot_qwen_25: 'Qwen2.5' +# Microsoft: +copilot_mai_code_1_flash: 'MAI-Code-1-Flash' # Microsoft fine-tuned: copilot_raptor_mini: 'Raptor mini' diff --git a/src/ai-tools/README.md b/src/ai-tools/README.md index 63a55d31d929..98235fbc3719 100644 --- a/src/ai-tools/README.md +++ b/src/ai-tools/README.md @@ -181,3 +181,5 @@ Add `GITHUB_TOKEN` to `.env` with Models scopes. - Add more examples - Test in Models UI first - Consider different model/parameters + +🌎