From 593c0f547c94823862ebc2c46fc55fc22d1e438c Mon Sep 17 00:00:00 2001 From: Harald Kirschner Date: Thu, 10 Sep 2026 12:11:51 -0700 Subject: [PATCH 1/2] Copilot: Document Agent Plugins 1.0 support (#62640) Co-authored-by: hkirschner_microsoft Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Sarita Iyer <66540150+saritai@users.noreply.github.com> Copilot-Session: 7b920053-3358-460c-a9d2-824b058c7b55 Copilot-Session: bbcaf7d1-4485-4a30-809b-84d54cd03835 --- .../copilot/concepts/agents/about-plugins.md | 46 +++++++- .../customize-copilot/plugins-creating.md | 80 ++++++++++---- .../cli-plugin-reference.md | 103 +++++++++++++----- .../copilot-cli/cli-example-plugin-file.md | 7 +- 4 files changed, 183 insertions(+), 53 deletions(-) diff --git a/content/copilot/concepts/agents/about-plugins.md b/content/copilot/concepts/agents/about-plugins.md index d572a196cbe5..188c7fde9063 100644 --- a/content/copilot/concepts/agents/about-plugins.md +++ b/content/copilot/concepts/agents/about-plugins.md @@ -25,19 +25,57 @@ Plugins provide a way to distribute custom {% data variables.product.prodname_co ## What plugins contain -A plugin can contain some or all of the following components: +A plugin can contain some or all of the following components. The locations of these components depend on the plugin format: * **Custom agents** — Specialized AI assistants (`*.agent.md` files in `agents/`) * **Skills** — Discrete callable capabilities (skills subdirectories in `skills/`, containing a `SKILL.md` file) * **Hooks** — Event handlers that intercept agent behavior (a `hooks.json` file in the plugin root, or in `hooks/`) -* **MCP server configurations** — Model Context Protocol integrations (a `.mcp.json` file in the plugin root, or an `mcp.json` file in `.github/`) +* **MCP server configurations** — Model Context Protocol integrations * **LSP server configurations** — Language Server Protocol integrations (an `lsp.json` file in the plugin root, or in `.github/`) +## Plugin formats + +{% data variables.product.prodname_copilot_short %} supports two plugin formats: + +* **Agent Plugins 1.0** is a portable format for sharing skills and MCP server configurations across compatible clients. To use this format, set `$schema` in `plugin.json` to `https://agent-plugins.org/schemas/1.0.0/plugin.schema.json`. Skills are discovered from `skills/`, and MCP server configuration is discovered from `mcp.json` at the plugin root. These locations cannot be configured in the manifest. Choose Agent Plugins 1.0 when you want to make skills and MCP servers portable. +* **Legacy {% data variables.product.prodname_copilot_short %} plugins** do not declare the Agent Plugins `$schema`. They use the existing manifest fields and component discovery behavior, including configurable component paths and MCP configuration in `.mcp.json`, `.github/mcp.json`, or the `mcpServers` manifest field. Choose the legacy format when you need configurable component paths or are maintaining an existing {% data variables.product.prodname_copilot_short %}-specific plugin. + +For a new plugin, use Agent Plugins 1.0 unless you require configurable component paths. Use the legacy format primarily for existing legacy plugins. + +Both formats are supported. Adding `$schema` changes how {% data variables.product.prodname_copilot_short %} interprets the manifest and discovers components. Plugins without `$schema` continue to load as legacy plugins. + ## How plugins are structured -A plugin is a directory with a specific structure. At minimum, it contains a `plugin.json` manifest file at the root of the directory. The manifest gives the plugin a name and points to the components the plugin provides. Alongside the manifest, the directory can contain any combination of agents, skills, hooks, MCP server configurations, and LSP server configurations. +A plugin is a directory with a specific structure and a `plugin.json` manifest file. Agent Plugins 1.0 requires the manifest at the plugin root. Legacy plugins support additional manifest locations. The manifest gives the plugin a name and metadata. Depending on the format, it can also point to components. Alongside the manifest, the directory can contain agents, skills, hooks, MCP server configurations, and LSP server configurations. + +### Agent Plugins 1.0 structure + +Agent Plugins 1.0 stores skills and MCP servers in standard locations so compatible clients can discover them. Other components, including agents, hooks, commands, and LSP servers, are client-specific. {% data variables.product.prodname_copilot_short %} reads these components from the `com.github.copilot` directory. Other clients ignore this directory, so the same plugin can combine shared skills and MCP servers with {% data variables.product.prodname_copilot_short %}-specific components. + +An Agent Plugins 1.0 directory can look like this: + +```text +my-plugin/ +├── plugin.json # Required manifest +├── skills/ # Skills (optional) +│ └── deploy/ +│ └── SKILL.md +├── mcp.json # MCP server config (optional) +└── com.github.copilot/ # Copilot components (optional) + ├── agents/ + │ └── helper.agent.md + ├── commands/ + ├── rules/ + ├── hooks/ + │ └── hooks.json + └── lsp.json +``` + +The manifest must include the Agent Plugins 1.0 `$schema`. For supported top-level manifest fields, name requirements, and component locations, see [Agent Plugins 1.0 manifest fields](/copilot/reference/copilot-cli-reference/cli-plugin-reference#agent-plugins-10-manifest-fields). + +### Legacy plugin structure -A typical plugin directory looks like this: +A legacy {% data variables.product.prodname_copilot_short %} plugin directory can look like this: ```text my-plugin/ diff --git a/content/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating.md b/content/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating.md index f42ba006c413..129e40911991 100644 --- a/content/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating.md +++ b/content/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating.md @@ -22,38 +22,54 @@ Plugins are packages that extend the functionality of {% data variables.copilot. ## Plugin structure -A plugin consists of a directory with a specific structure. At minimum, it must contain a `plugin.json` manifest file at the root of the directory. It can also contain any combination of agents, skills, hooks, and MCP server configurations. - -### Example plugin structure - -```text -my-plugin/ -├── plugin.json # Required manifest -├── agents/ # Custom agents (optional) -│ └── helper.agent.md -├── skills/ # Skills (optional) -│ └── deploy/ -│ └── SKILL.md -├── hooks.json # Hook configuration (optional) -└── .mcp.json # MCP server config (optional) -``` +A plugin consists of a directory with a specific structure and a `plugin.json` manifest file. Agent Plugins 1.0 requires the manifest at the plugin root. Legacy plugins support additional manifest locations. A plugin can also contain any combination of agents, skills, hooks, and MCP server configurations. + +{% data variables.copilot.copilot_cli_short %} supports two plugin formats: + +* Agent Plugins 1.0, a portable format for skills and MCP servers. Declaring the canonical `$schema` in `plugin.json` opts the plugin into this format. +* The legacy {% data variables.product.prodname_copilot_short %} format, which supports {% data variables.product.prodname_copilot_short %}-specific components and configurable component paths. A manifest without the Agent Plugins `$schema` continues to use this format. + +Both formats are supported. Choose Agent Plugins 1.0 when you want to make skills and MCP servers portable across compatible clients. Choose the legacy format when you need custom component paths or are maintaining an existing {% data variables.product.prodname_copilot_short %}-specific plugin. In Agent Plugins 1.0, skills and MCP servers are portable, and {% data variables.product.prodname_copilot_short %}-specific components such as agents, commands, rules, hooks, and LSP servers come from the `com.github.copilot` directory in the plugin. ## Creating a plugin 1. Create a directory for your plugin. -1. Add a `plugin.json` manifest file to the root of the directory. +1. Choose a plugin format, then add a `plugin.json` manifest file to the root of the directory. + + To create an Agent Plugins 1.0 plugin, include the canonical `$schema`: - **Example `plugin.json` file** + **Example Agent Plugins 1.0 `plugin.json` file** {% data reusables.copilot.copilot-cli.cli-example-plugin-file %} + The schema allows only `$schema`, `name`, `version`, `description`, `author`, `homepage`, `repository`, `license`, `keywords`, and `extensions` as top-level fields. Unknown top-level fields are reported and ignored. The `extensions` field is a map of client-specific data keyed by reverse-domain namespace. + + To create a legacy plugin, omit the Agent Plugins `$schema`. You can use component path fields in the manifest: + + **Example legacy `plugin.json` file** + + ```json copy + { + "name": "my-dev-tools", + "description": "React development utilities", + "agents": "agents/", + "skills": ["skills/", "extra-skills/"], + "hooks": "hooks.json", + "mcpServers": ".mcp.json" + } + ``` + For details of the full set of fields you can include in this file, see [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-plugin-reference#pluginjson). -1. Add some components to your plugin by creating the appropriate files and directories for agents, skills, hooks, and MCP server configurations. +1. Add components to your plugin. + + In an Agent Plugins 1.0 plugin, skills must be immediate subdirectories of `skills/`, and each skill must contain a `SKILL.md` file. MCP configuration must be in `mcp.json` at the plugin root. You cannot override these locations in `plugin.json`. {% data variables.product.prodname_copilot_short %}-specific components go in the `com.github.copilot` directory, such as `com.github.copilot/agents/` for custom agents and `com.github.copilot/hooks/hooks.json` for hooks. + + In a legacy plugin, use the default component locations or the component paths configured in `plugin.json`. For example: - 1. Add an agent by creating a `NAME.agent.md` file in an `agents` subdirectory. + 1. Add an agent by creating a `NAME.agent.md` file in an `agents` subdirectory. In an Agent Plugins 1.0 plugin, create the file in `com.github.copilot/agents/`. In a legacy plugin, create it in `agents/`. ```markdown copy --- @@ -78,6 +94,31 @@ my-plugin/ Instructions for the skill... ``` + 1. For an Agent Plugins 1.0 plugin, add MCP servers in a root `mcp.json` file. The MCP configuration uses its own Agent Plugins schema: + + ```json copy + { + "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", + "mcpServers": { + "deployment-api": { + "type": "streamable-http", + "url": "https://deploy.example.com/mcp" + }, + "local-validator": { + "type": "stdio", + "command": "node", + "args": ["${PLUGIN_ROOT}/server/index.js"], + "cwd": "${PLUGIN_ROOT}", + "env": { + "DATA_DIR": "${PLUGIN_DATA}/validator" + } + } + } + } + ``` + + The `streamable-http` transport name is accepted for Streamable HTTP servers. For `stdio` servers, {% data variables.copilot.copilot_cli_short %} provides `PLUGIN_ROOT` and `PLUGIN_DATA` environment variables and expands `${PLUGIN_ROOT}` and `${PLUGIN_DATA}` in `args`, `env` values, and `cwd`. + 1. Install your plugin locally, so that you can test it as you develop it. For example, where `./my-plugin` is the path to your plugin directory, enter: @@ -137,5 +178,6 @@ To distribute your plugin, you can add it to a marketplace. See [AUTOTITLE](/cop ## Further reading +* [Agent Plugins author documentation](https://agent-plugins.org/plugin-authors) * [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing) * [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-plugin-reference) diff --git a/content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md b/content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md index 7bc2a539fe65..eb0f0e5ce316 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md @@ -97,19 +97,81 @@ In interactive mode, run `/plugin marketplace update [NAME]` (alias `/plugin mar ## `plugin.json` -All plugins consist of a plugin directory containing, at minimum, a manifest file named `plugin.json` located at the root of the plugin directory. See [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating). +All plugins consist of a plugin directory containing a manifest file named `plugin.json`. Agent Plugins 1.0 requires the manifest at the plugin root. Legacy plugins support the alternative locations listed in [File locations](#file-locations). See [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating). -### Required field +{% data variables.copilot.copilot_cli_short %} supports both the legacy plugin manifest and the Agent Plugins 1.0 manifest. The exact `$schema` value `https://agent-plugins.org/schemas/1.0.0/plugin.schema.json` opts a plugin into Agent Plugins 1.0 semantics. A manifest without this value uses the legacy format and loads as before. + +### Agent Plugins 1.0 manifest fields + +Agent Plugins 1.0 defines a closed manifest schema. For the complete format requirements, see the [Agent Plugins 1.0 specification](https://github.com/agentplugins/agent-plugins-spec/blob/main/spec/1.0.0.md). + +The following fields are allowed: + +| Field | Type | Required | Description | +|---------------|----------|----------|-------------| +| `$schema` | string | Yes | Must be `https://agent-plugins.org/schemas/1.0.0/plugin.schema.json`. | +| `name` | string | Yes | Plugin name. See [Name constraints](#name-constraints). | +| `version` | string | No | Version string. Semantic Versioning is recommended. | +| `description` | string | No | Brief description. | +| `author` | object | No | Optional `name`, `email`, and `url` string fields. | +| `homepage` | string | No | Plugin homepage or documentation. | +| `repository` | string | No | Source repository. | +| `license` | string | No | License identifier. An SPDX identifier is recommended. | +| `keywords` | string[] | No | Search and discovery keywords. | +| `extensions` | object | No | Client-specific data keyed by reverse-domain namespace. | + +Unknown top-level fields are reported and ignored. Component path fields such as `agents`, `skills`, `hooks`, `mcpServers`, and `lspServers` are not Agent Plugins 1.0 manifest fields. + +#### Name constraints + +An Agent Plugins 1.0 name must: + +* Contain between 1 and 64 characters. +* Contain only lowercase ASCII letters, digits, hyphens, and periods. +* Start and end with an alphanumeric character. +* Not contain `--` or `..`. + +#### Components + +Agent Plugins 1.0 defines two portable component types: + +* Skills in immediate subdirectories of `skills/` that contain a `SKILL.md` file. +* MCP servers in `mcp.json` at the plugin root. + +These locations are fixed and cannot be configured in `plugin.json`. The root `mcp.json` must declare `https://agent-plugins.org/schemas/1.0.0/mcp.schema.json` in its `$schema` field. The CLI accepts `stdio`, `streamable-http`, and `sse` MCP transport names. + +For `stdio` servers, the CLI provides `PLUGIN_ROOT` and `PLUGIN_DATA` in the subprocess environment. It expands `${PLUGIN_ROOT}` and `${PLUGIN_DATA}` in the server's `args`, `env` values, and `cwd`. `PLUGIN_DATA` points to a persistent, writable directory for the installed plugin. + +Agent Plugins 1.0 does not define portable agents, hooks, commands, rules, or LSP servers. These remain client-specific. Client-specific manifest data belongs in `extensions`, keyed by reverse-domain namespace. Client-specific files belong in a top-level directory with the same namespace. Clients ignore namespaces they do not support. + +{% data variables.copilot.copilot_cli_short %} reads its client-specific components from the `com.github.copilot` directory: + +| Component | Location | +|-----------|----------| +| Custom agents | `com.github.copilot/agents/` | +| Slash commands | `com.github.copilot/commands/` | +| Rules | `com.github.copilot/rules/` | +| Hooks | `com.github.copilot/hooks/hooks.json` | +| LSP servers | `com.github.copilot/lsp.json` | + +These locations apply only to Agent Plugins 1.0 plugins. Legacy plugins continue to use their own component locations and manifest path fields. + +### Example Agent Plugins 1.0 `plugin.json` file + +{% data reusables.copilot.copilot-cli.cli-example-plugin-file %} + +### Legacy manifest fields + +#### Required field | Field | Type | Description | |---------|--------|-------------| -| `name` | string | Kebab-case plugin name (letters, numbers, hyphens only). Max 64 chars. Plugins that opt into [Open Plugin Spec support](#open-plugin-spec-support) may also use dots (for example, `acme.tools`). | +| `name` | string | Kebab-case plugin name (letters, numbers, and hyphens only). Maximum 64 characters. | -### Optional metadata fields +#### Optional metadata fields | Field | Type | Description | |--------------|-----------|-------------| -| `$schema` | string | Set to the canonical Agent Plugins (Open Plugin Spec) v1.0.0 schema URL to opt into spec semantics. See [Open Plugin Spec support](#open-plugin-spec-support). | | `description`| string | Brief description. Max 1024 chars. | | `version` | string | Semantic version (e.g., `1.0.0`). | | `author` | object | `name` (required), `email` (optional), `url` (optional). | @@ -120,7 +182,7 @@ All plugins consist of a plugin directory containing, at minimum, a manifest fil | `category` | string | Plugin category. | | `tags` | string[] | Additional tags. | -### Component path fields +#### Component path fields These tell the CLI where to find your plugin's components. All are optional. The CLI uses default conventions if omitted. @@ -130,19 +192,10 @@ These tell the CLI where to find your plugin's components. All are optional. The | `skills` | string \| string[] | `skills/` | Path(s) to skill directories (`SKILL.md` files). | | `commands` | string \| string[] | — | Path(s) to command directories. | | `hooks` | string \| object | — | Path to a hooks configuration file, or an inline hooks object. | -| `extensions`| string \| string[] \| object | — | Path(s) to extension directories. Use `{ paths: [...], exclusive: true }` to suppress built-in extensions. In [Open Plugin Spec mode](#open-plugin-spec-support), this field has a different meaning. | +| `extensions`| string \| string[] \| object | — | Path(s) to extension directories. Use `{ paths: [...], exclusive: true }` to suppress built-in extensions. In [Agent Plugins 1.0 manifests](#agent-plugins-10-manifest-fields), this field has a different meaning. | | `mcpServers`| string \| object | — | Path to an MCP configuration file (e.g., `.mcp.json`), or inline server definitions. | | `lspServers`| string \| object | — | Path to an LSP configuration file, or inline server definitions. | -### Example `plugin.json` file - -{% data reusables.copilot.copilot-cli.cli-example-plugin-file %} - -## Open Plugin Spec support - -Declaring the canonical `$schema` in `plugin.json` opts a plugin into the [Agent Plugins (Open Plugin Spec)](https://agent-plugins.org) v1.0.0 format, additively on top of standard plugin loading: - - ### LSP server configuration To include LSP (Language Server Protocol) servers in a plugin, create a `lsp-config/servers.json` file in the plugin directory, or specify a path or inline object using the `lspServers` field in `plugin.json`. @@ -216,7 +269,7 @@ For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-cop | Field | Type | Required | Description | |------------|----------|----------|-------------| -| `name` | string | Yes | Kebab-case marketplace name. Max 64 chars. Dots are also accepted (for example, `acme.tools`) for [Open Plugin Spec](#open-plugin-spec-support) plugins. | +| `name` | string | Yes | Kebab-case marketplace name. Max 64 chars. Dots are also accepted (for example, `acme.tools`) for [Agent Plugins 1.0](#agent-plugins-10-manifest-fields) plugins. | | `owner` | object | Yes | `{ name, email? }` — marketplace owner info. | | `plugins` | array | Yes | List of plugin entries (see the table below). | | `metadata` | object | No | `{ description?, version?, pluginRoot? }` | @@ -225,7 +278,7 @@ For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-cop | Field | Type | Required | Description | |---------------|--------------------|----------|-------------| -| `name` | string | Yes | Kebab-case plugin name. Max 64 chars. Dots are also accepted for [Open Plugin Spec](#open-plugin-spec-support) plugins. | +| `name` | string | Yes | Kebab-case plugin name. Max 64 chars. Dots are also accepted for [Agent Plugins 1.0](#agent-plugins-10-manifest-fields) plugins. | | `source` | string \| object | Yes | Where to fetch the plugin (relative path, {% data variables.product.github %}, or URL). | | `description` | string | No | Plugin description. Max 1024 chars. | | `version` | string | No | Plugin version. | @@ -280,14 +333,14 @@ Both the `github` and `url` source types accept an optional `sha` field to pin i |----------------------|------| | Installed plugins | `~/.copilot/installed-plugins/MARKETPLACE/PLUGIN-NAME` (installed via a marketplace) and `~/.copilot/installed-plugins/_direct/SOURCE-ID/` (installed directly) | | Marketplace cache | Platform cache directory: `~/.cache/copilot/marketplaces/` (Linux), `~/Library/Caches/copilot/marketplaces/` (macOS). Overridable with `COPILOT_CACHE_HOME`. | -| Plugin manifest | `.plugin/plugin.json`, `plugin.json`, `.github/plugin/plugin.json`, or `.claude-plugin/plugin.json` (checked in this order) | +| Plugin manifest | Agent Plugins 1.0: `plugin.json` at the plugin root. Legacy plugins: `.plugin/plugin.json`, `plugin.json`, `.github/plugin/plugin.json`, or `.claude-plugin/plugin.json` (checked in this order). | | Marketplace manifest | `marketplace.json`, `.plugin/marketplace.json`, `.github/plugin/marketplace.json`, or `.claude-plugin/marketplace.json` (checked in this order) | -| Agents | `agents/` (default, overridable in manifest) | -| Skills | `skills/` (default, overridable in manifest) | -| Hooks configuration | `hooks.json` or `hooks/hooks.json` | -| MCP configuration | `.mcp.json`, `.github/mcp.json` | -| LSP configuration | `lsp.json` or `.github/lsp.json` | -| Plugin data | `${COPILOT_PLUGIN_DATA}` (also available as `${CLAUDE_PLUGIN_DATA}`). Points to a persistent, writable directory unique to each installed plugin. Use this for plugin-specific runtime data instead of paths inside the installed-plugins cache directory. | +| Agents | Legacy plugins: `agents/` (default, overridable in manifest). | +| Skills | Agent Plugins 1.0: `skills/` (fixed). Legacy plugins: `skills/` (default, overridable in manifest). | +| Hooks configuration | Legacy plugins: `hooks.json` or `hooks/hooks.json`. | +| MCP configuration | Agent Plugins 1.0: `mcp.json`. Legacy plugins: `.mcp.json`, `.github/mcp.json`, or the `mcpServers` manifest field. | +| LSP configuration | Legacy plugins: `lsp.json` or `.github/lsp.json`. | +| Plugin data | For Agent Plugins 1.0 MCP servers, `${PLUGIN_DATA}` (also available as `${COPILOT_PLUGIN_DATA}` and `${CLAUDE_PLUGIN_DATA}`) points to a persistent, writable directory unique to each installed plugin. Use this for plugin-specific runtime data instead of paths inside the installed-plugins cache directory. | ## Loading order and precedence diff --git a/data/reusables/copilot/copilot-cli/cli-example-plugin-file.md b/data/reusables/copilot/copilot-cli/cli-example-plugin-file.md index 0c2d12867506..8a47413cbfc7 100644 --- a/data/reusables/copilot/copilot-cli/cli-example-plugin-file.md +++ b/data/reusables/copilot/copilot-cli/cli-example-plugin-file.md @@ -1,5 +1,6 @@ ```json copy { + "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "my-dev-tools", "description": "React development utilities", "version": "1.2.0", @@ -8,10 +9,6 @@ "email": "jane@example.com" }, "license": "MIT", - "keywords": ["react", "frontend"], - "agents": "agents/", - "skills": ["skills/", "extra-skills/"], - "hooks": "hooks.json", - "mcpServers": ".mcp.json" + "keywords": ["react", "frontend"] } ``` From 8fe6e5be30feffdfd183d0cbf10e9938a9b8d45d Mon Sep 17 00:00:00 2001 From: Jenni C <97056108+dihydroJenoxide@users.noreply.github.com> Date: Thu, 10 Sep 2026 19:10:20 +0000 Subject: [PATCH 2/2] mai-code-1.0-flash deprecation (#63152) --- .../data-residency/github-copilot-with-data-residency.md | 1 - content/copilot/reference/ai-models/model-comparison.md | 6 ++---- content/copilot/reference/ai-models/model-hosting.md | 7 +++---- content/copilot/reference/ai-models/supported-models.md | 5 ++--- .../model-multipliers-for-annual-plans.md | 1 - .../copilot-cli-reference/cli-command-reference.md | 1 - .../copilot/copilot-cloud-agent-non-auto-models.md | 1 - data/reusables/copilot/model-compliance/us-models.md | 1 - .../copilot/annual-subscriber-model-multipliers.yml | 3 --- data/tables/copilot/model-comparison.yml | 5 ----- data/tables/copilot/model-deprecation-history.yml | 2 +- data/tables/copilot/model-release-status.yml | 4 ---- data/tables/copilot/model-supported-clients.yml | 9 --------- data/tables/copilot/model-supported-plans.yml | 7 ------- data/tables/copilot/models-and-pricing.yml | 8 -------- data/variables/copilot.yml | 1 - 16 files changed, 8 insertions(+), 54 deletions(-) diff --git a/content/admin/data-residency/github-copilot-with-data-residency.md b/content/admin/data-residency/github-copilot-with-data-residency.md index 30803647a14a..69ba523b5429 100644 --- a/content/admin/data-residency/github-copilot-with-data-residency.md +++ b/content/admin/data-residency/github-copilot-with-data-residency.md @@ -70,7 +70,6 @@ The models available for {% data variables.product.prodname_copilot_short %} var * {% data variables.copilot.copilot_claude_opus_5 %} * {% data variables.copilot.copilot_claude_sonnet_5 %} * {% data variables.copilot.copilot_gemini_35_flash %} -* {% data variables.copilot.copilot_mai_code_1_flash %} ## Pricing changes diff --git a/content/copilot/reference/ai-models/model-comparison.md b/content/copilot/reference/ai-models/model-comparison.md index 1a9a81fa8558..28b50a720059 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 }}{% if model.name == 'MAI-Code-1-Flash' or model.name == 'MAI-Code-1.1-Flash' %}[^mai-code-1-flash]{% elsif model.name == 'Kimi K3' %}[^kimi-k3]{% endif %} | {{ model.task_area }} | {{ model.excels_at }} | {{ model.further_reading }} | +| {{ model.name }}{% if model.name == 'MAI-Code-1.1-Flash' %}[^mai-models]{% elsif model.name == 'Kimi K3' %}[^kimi-k3]{% endif %} | {{ model.task_area }} | {{ model.excels_at }} | {{ model.further_reading }} | | {% endfor %} | ## Task: General-purpose coding and writing @@ -40,7 +40,6 @@ 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_gpt_56_terra %} | Balanced all-round choice for everyday interactive and agentic coding. | -| {% 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 @@ -65,7 +64,6 @@ These models are optimized for speed and responsiveness. They’re ideal for qui |-------------------------------------------------------|------------------------------------------------------------------------------------------------------------| | {% data variables.copilot.copilot_gpt_56_luna %} | Lightweight, cost-efficient option for smaller, faster tasks. The lowest-cost model in the GPT-5.6 family. | | {% 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 @@ -144,7 +142,7 @@ Some models have behaviors, limitations, or safeguards that are useful to unders ## Next steps -[^mai-code-1-flash]: MAI models are continuously improving models. Performance and behavior may evolve over time as new checkpoints are released. +[^mai-models]: MAI models are continuously improving models. Performance and behavior may evolve over time as new checkpoints are released. [^kimi-k3]: For important information about {% data variables.copilot.copilot_kimi_k3 %} behavior and safeguards, see [Model-specific considerations](#kimi-k3). diff --git a/content/copilot/reference/ai-models/model-hosting.md b/content/copilot/reference/ai-models/model-hosting.md index 9dd754d33b1d..8dbd481ef9ce 100644 --- a/content/copilot/reference/ai-models/model-hosting.md +++ b/content/copilot/reference/ai-models/model-hosting.md @@ -116,16 +116,15 @@ For more information, see [xAI's enterprise terms of service](https://x.ai/legal Used for: -* {% data variables.copilot.copilot_mai_code_1_flash %} * {% data variables.copilot.copilot_mai_code_1_1_flash %} -{% data variables.copilot.copilot_mai_code_1_flash %} and {% data variables.copilot.copilot_mai_code_1_1_flash %} are first-party Microsoft models hosted on Azure in {% data variables.product.github %}'s tenant. +{% data variables.copilot.copilot_mai_code_1_1_flash %} is a first-party Microsoft model hosted on Azure in {% data variables.product.github %}'s tenant. {% data variables.product.github %} does not use {% data variables.copilot.copilot_business_short %} or {% data variables.copilot.copilot_enterprise_short %} customer data to train AI models. For individual subscribers—{% data variables.copilot.copilot_free_short %}, {% data variables.copilot.copilot_pro_short %}, {% data variables.copilot.copilot_pro_plus_short %}, and {% data variables.copilot.copilot_max_short %} users—{% data variables.product.github %} may use {% data variables.product.prodname_copilot_short %} interaction data, including prompts (inputs), suggestions (outputs), and code snippets generated during {% data variables.product.prodname_copilot_short %} sessions to train and improve AI models, in accordance with our [AUTOTITLE](/free-pro-team@latest/site-policy/privacy-policies/github-general-privacy-statement) and applicable user settings. Individual subscribers can opt out of having their data used for AI model training. To manage this setting, see [AUTOTITLE](/copilot/how-tos/manage-your-account/manage-policies#model-training-and-improvements). -{% data variables.copilot.copilot_mai_code_1_flash %} and {% data variables.copilot.copilot_mai_code_1_1_flash %} are served on Microsoft Azure AI Foundry within {% data variables.product.github %}'s tenant and are subject to {% data variables.product.github %}'s data handling configuration for that deployment. For details about how data is processed, retained, and secured for models served on Azure AI Foundry, see [Data, privacy, and security for Foundry Models sold by Azure](https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/data-privacy?tabs=azure-portal) in the Microsoft documentation. +{% data variables.copilot.copilot_mai_code_1_1_flash %} is served on Microsoft Azure AI Foundry within {% data variables.product.github %}'s tenant and is subject to {% data variables.product.github %}'s data handling configuration for that deployment. For details about how data is processed, retained, and secured for models served on Azure AI Foundry, see [Data, privacy, and security for Foundry Models sold by Azure](https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/data-privacy?tabs=azure-portal) in the Microsoft documentation. -When using {% data variables.copilot.copilot_mai_code_1_flash %} or {% data variables.copilot.copilot_mai_code_1_1_flash %}, 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. +When using {% data variables.copilot.copilot_mai_code_1_1_flash %}, 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. ## Open-weight models diff --git a/content/copilot/reference/ai-models/supported-models.md b/content/copilot/reference/ai-models/supported-models.md index 4d67e8352f60..7fce5e8bdc9f 100644 --- a/content/copilot/reference/ai-models/supported-models.md +++ b/content/copilot/reference/ai-models/supported-models.md @@ -39,7 +39,7 @@ This table lists the AI models available in {% data variables.product.prodname_c | Model name | Provider | Release status | |--------------------------------------------------------|-----------|----------------------------| | {% for model in tables.copilot.model-release-status %} | -| {{ model.name }}{% if model.name == 'GPT-5.4 nano' %}[^gpt54nano]{% endif %}{% if model.name == 'MAI-Code-1-Flash' or model.name == 'MAI-Code-1.1-Flash' %}[^mai-code-1-flash]{% endif %}{% if model.name == 'Claude Fable 5' or model.name == 'Claude Fable 5.1' %}[^claude-fable-5]{% endif %}| {{ model.provider }} | {{ model.release_status }} | +| {{ model.name }}{% if model.name == 'GPT-5.4 nano' %}[^gpt54nano]{% endif %}{% if model.name == 'MAI-Code-1.1-Flash' %}[^mai-models]{% endif %}{% if model.name == 'Claude Fable 5' or model.name == 'Claude Fable 5.1' %}[^claude-fable-5]{% endif %}| {{ model.provider }} | {{ model.release_status }} | | {% endfor %} | {% endrowheaders %} @@ -142,7 +142,6 @@ Some {% data variables.product.prodname_copilot_short %} models require minimum | {% data variables.copilot.copilot_claude_fable_51 %} | TBD | TBD | TBD | TBD | TBD | | {% data variables.copilot.copilot_kimi_k27_code %} | `v1.127` | `17.14.6` | `1.9.1-251` | TBD | TBD | | {% data variables.copilot.copilot_kimi_k3 %} | `v1.131` | TBD | TBD | TBD | TBD | -| {% data variables.copilot.copilot_mai_code_1_flash %} | `v1.121` | TBD | TBD | TBD | TBD | | {% data variables.copilot.copilot_mai_code_1_1_flash %} | `v1.121` | TBD | TBD | TBD | TBD | | {% data variables.copilot.copilot_grok_45 %} | TBD | `17.14.19` | TBD | TBD | TBD | | {% data variables.copilot.copilot_grok_46 %} | TBD | TBD | TBD | TBD | TBD | @@ -186,7 +185,7 @@ 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]: MAI models are continuously improving models. Performance and behavior may evolve over time as new checkpoints are released. +[^mai-models]: MAI models are continuously improving models. Performance and behavior may evolve over time as new checkpoints are released. ## Utility models 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 d19fb18537df..8eaedc745014 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,7 +35,6 @@ 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. > > If you use {% data variables.copilot.copilot_auto_model_selection_short %} in {% data variables.copilot.copilot_chat_short %}, {% data variables.copilot.copilot_cli_short %}, {% data variables.copilot.github_copilot_app %}, or {% data variables.copilot.copilot_cloud_agent %}, you qualify for a 10% discount. For example, if a model has a multiplier of 1x you'll be billed at 0.9x instead. 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 d16c02a16bdf..b7fde536cbf6 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-command-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md @@ -651,7 +651,6 @@ Use `--model=MODEL` or the `COPILOT_MODEL` environment variable to select the AI | `gemini-3.5-flash` | Fast Google Gemini responses | | `gemini-3.6-flash` | Fast Google Gemini responses | | `gemini-3.7-flash` | Fast Google Gemini responses | -| `mai-code-1-flash` | Fast, adaptive coding tasks | You can also switch models during an interactive session using the `/model` slash command. diff --git a/data/reusables/copilot/copilot-cloud-agent-non-auto-models.md b/data/reusables/copilot/copilot-cloud-agent-non-auto-models.md index 99abd0563331..be60376f1472 100644 --- a/data/reusables/copilot/copilot-cloud-agent-non-auto-models.md +++ b/data/reusables/copilot/copilot-cloud-agent-non-auto-models.md @@ -12,5 +12,4 @@ * {% data variables.copilot.copilot_gpt_6_astra %} * {% data variables.copilot.copilot_grok_45 %} * {% data variables.copilot.copilot_grok_46 %} -* {% data variables.copilot.copilot_mai_code_1_flash %} * {% data variables.copilot.copilot_mai_code_1_1_flash %} diff --git a/data/reusables/copilot/model-compliance/us-models.md b/data/reusables/copilot/model-compliance/us-models.md index 504dd1e8a26b..2e77f292e2b0 100644 --- a/data/reusables/copilot/model-compliance/us-models.md +++ b/data/reusables/copilot/model-compliance/us-models.md @@ -9,4 +9,3 @@ * Claude Sonnet 5 * Claude Opus 4.8 * Claude Opus 5 -* MAI-Code-1-Flash diff --git a/data/tables/copilot/annual-subscriber-model-multipliers.yml b/data/tables/copilot/annual-subscriber-model-multipliers.yml index fe26065e9c68..1476210f6ded 100644 --- a/data/tables/copilot/annual-subscriber-model-multipliers.yml +++ b/data/tables/copilot/annual-subscriber-model-multipliers.yml @@ -56,8 +56,5 @@ - model: 'GPT-5 mini' new_multiplier: '0.33' -- model: 'MAI-Code-1-Flash' - new_multiplier: '0.33' - - model: 'MAI-Code-1.1-Flash' new_multiplier: '0.25' diff --git a/data/tables/copilot/model-comparison.yml b/data/tables/copilot/model-comparison.yml index 92d71a7cc499..7f4b338d44cd 100644 --- a/data/tables/copilot/model-comparison.yml +++ b/data/tables/copilot/model-comparison.yml @@ -121,11 +121,6 @@ further_reading: '[Gemini 3.8 Flash model card](https://storage.googleapis.com/deepmind-media/Model-Cards/Gemini-3-8-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)' - - name: MAI-Code-1.1-Flash task_area: General-purpose coding and writing, image understanding excels_at: Fast code completions and explanations, instruction following, tool use diff --git a/data/tables/copilot/model-deprecation-history.yml b/data/tables/copilot/model-deprecation-history.yml index a809999b2488..58f7a7cf5ffb 100644 --- a/data/tables/copilot/model-deprecation-history.yml +++ b/data/tables/copilot/model-deprecation-history.yml @@ -37,7 +37,7 @@ - name: 'Raptor mini' retirement_date: '2026-09-01' - suggested_alternative: 'MAI-Code-1-Flash' + suggested_alternative: 'MAI-Code-1.1-Flash' - name: 'Gemini 2.5 Pro' retirement_date: '2026-07-31' diff --git a/data/tables/copilot/model-release-status.yml b/data/tables/copilot/model-release-status.yml index e3aed8a2ca9a..30ef6d240cea 100644 --- a/data/tables/copilot/model-release-status.yml +++ b/data/tables/copilot/model-release-status.yml @@ -112,10 +112,6 @@ release_status: 'GA' # Microsoft models -- name: 'MAI-Code-1-Flash' - provider: 'Microsoft' - release_status: 'GA' - - name: 'MAI-Code-1.1-Flash' provider: 'Microsoft' release_status: 'GA' diff --git a/data/tables/copilot/model-supported-clients.yml b/data/tables/copilot/model-supported-clients.yml index 51d50ccc9855..555c83005dd3 100644 --- a/data/tables/copilot/model-supported-clients.yml +++ b/data/tables/copilot/model-supported-clients.yml @@ -131,15 +131,6 @@ xcode: true jetbrains: true -- name: MAI-Code-1-Flash - dotcom: true - cli: true - vscode: true - vs: true - eclipse: true - xcode: true - jetbrains: true - - name: MAI-Code-1.1-Flash dotcom: true cli: true diff --git a/data/tables/copilot/model-supported-plans.yml b/data/tables/copilot/model-supported-plans.yml index b1560f4c9cf8..663b9264fb24 100644 --- a/data/tables/copilot/model-supported-plans.yml +++ b/data/tables/copilot/model-supported-plans.yml @@ -201,13 +201,6 @@ business: true enterprise: true -- name: MAI-Code-1-Flash - pro: true - pro_plus: true - max: true - business: true - enterprise: true - - name: MAI-Code-1.1-Flash pro: true pro_plus: true diff --git a/data/tables/copilot/models-and-pricing.yml b/data/tables/copilot/models-and-pricing.yml index 054b1fe87753..b5c04e7085e5 100644 --- a/data/tables/copilot/models-and-pricing.yml +++ b/data/tables/copilot/models-and-pricing.yml @@ -370,14 +370,6 @@ output: $12.00 # Microsoft -- model: 'MAI-Code-1-Flash' - provider: microsoft - release_status: GA - category: Lightweight - input: $0.75 - cached_input: $0.075 - output: $4.50 - - model: 'MAI-Code-1.1-Flash' provider: microsoft release_status: GA diff --git a/data/variables/copilot.yml b/data/variables/copilot.yml index d4c9ea0d09de..680885a1ca79 100644 --- a/data/variables/copilot.yml +++ b/data/variables/copilot.yml @@ -243,7 +243,6 @@ copilot_grok_46: 'Grok 4.6' # Qwen: copilot_qwen_25: 'Qwen2.5' # Microsoft: -copilot_mai_code_1_flash: 'MAI-Code-1-Flash' copilot_mai_code_1_1_flash: 'MAI-Code-1.1-Flash' # Microsoft fine-tuned: copilot_raptor_mini: 'Raptor mini'