You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You can also switch models during an interactive session using the `/model` slash command.
@@ -675,7 +676,7 @@ Use `copilot mcp` to manage MCP server configurations from the command line with
675
676
| Type | Description | Required fields |
676
677
|------|-------------|----------------|
677
678
|`local` / `stdio`| Local process communicating via stdin/stdout. |`command`, `args`|
678
-
|`http`| Remote server using streamable HTTP transport. |`url`|
679
+
|`http`| Remote server using streamable HTTP transport. `"streamable-http"` is also accepted as an alias and is normalized to `"http"`. |`url`|
679
680
|`sse`| Remote server using Server-Sent Events transport. |`url`|
680
681
681
682
### Local server configuration fields
@@ -716,7 +717,7 @@ The `--registry` flag and other npm configuration flags (`--userconfig`, `--glob
716
717
717
718
| Field | Required | Description |
718
719
|-------|----------|-------------|
719
-
|`type`| Yes |`"http"` or `"sse"`. |
720
+
|`type`| Yes |`"http"` or `"sse"` (`"streamable-http"` is also accepted as an alias for `"http"`). |
720
721
|`url`| Yes | Server URL. |
721
722
|`tools`| Yes | Tools to enable. |
722
723
|`headers`| No | HTTP headers. Supports variable expansion. |
@@ -1130,7 +1131,14 @@ Use `/permissions reset` to clear in-memory approvals for the current session.
1130
1131
1131
1132
### Plan mode
1132
1133
1133
-
`/plan` starts a read-only analysis session that prevents write operations and shell command execution while allowing full codebase exploration. Mutating tool calls—editor writes, `apply_patch` to non-plan files, mutating shell commands, and pull request creation—are hard-blocked at the tool layer, not just discouraged by the system prompt. Subagents spawned from a plan-mode session inherit the same restriction. Reads and writes to the plan file itself are still allowed.
1134
+
`/plan` starts a planning session where {% data variables.copilot.copilot_cli_short %} can explore and analyze your codebase but is blocked from editing your project files. Specifically:
1135
+
1136
+
-**Your project files are protected.** Any attempt to edit, patch, or run a shell command that would change a file in your workspace is blocked automatically—this isn't just a suggestion to the model, it's enforced directly, so it doesn't depend on the model choosing to behave.
1137
+
-**The plan itself can still be written.** {% data variables.product.prodname_copilot_short %} needs somewhere to keep notes and draft the plan, so it's allowed to create and edit files in its own private planning workspace (including the plan file you'll review and approve).
1138
+
-**Delegated sub-tasks are protected too.** If {% data variables.product.prodname_copilot_short %} spins up a helper session to research part of your question, that helper inherits the same restrictions and can't edit your project either.
1139
+
-**It's a safety net, not a guarantee.** This protection is designed to catch clear, direct attempts to change your files—it's not an airtight lockdown. Some things are intentionally allowed through so research isn't overly restricted: for example, shell commands whose effect can't be clearly determined in advance, and calls to external/MCP tools you've connected. In practice this is rarely an issue, but plan mode should be thought of as "changes require your review before applying," not an absolute guarantee that nothing on disk can change.
1140
+
1141
+
Once you're happy with the plan, approve it to exit plan mode and let {% data variables.product.prodname_copilot_short %} make the actual changes.
Copy file name to clipboardExpand all lines: content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md
+10-4Lines changed: 10 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -89,12 +89,13 @@ All plugins consist of a plugin directory containing, at minimum, a manifest fil
89
89
90
90
| Field | Type | Description |
91
91
|---------|--------|-------------|
92
-
|`name`| string | Kebab-case plugin name (letters, numbers, hyphens only). Max 64 chars. |
92
+
|`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`). |
93
93
94
94
### Optional metadata fields
95
95
96
96
| Field | Type | Description |
97
97
|--------------|-----------|-------------|
98
+
|`$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). |
98
99
|`description`| string | Brief description. Max 1024 chars. |
99
100
|`version`| string | Semantic version (e.g., `1.0.0`). |
|`hooks`| string \| object | — | Path to a hooks configuration file, or an inline hooks object. |
118
-
|`extensions`| string \| string[]\| object | — | Path(s) to extension directories. Use `{ paths: [...], exclusive: true }` to suppress built-in extensions. |
119
+
|`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. |
119
120
|`mcpServers`| string \| object | — | Path to an MCP configuration file (e.g., `.mcp.json`), or inline server definitions. |
120
121
|`lspServers`| string \| object | — | Path to an LSP configuration file, or inline server definitions. |
121
122
122
123
### Example `plugin.json` file
123
124
124
125
{% data reusables.copilot.copilot-cli.cli-example-plugin-file %}
125
126
127
+
## Open Plugin Spec support
128
+
129
+
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:
130
+
131
+
126
132
### LSP server configuration
127
133
128
134
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`.
@@ -196,7 +202,7 @@ For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-cop
|`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. |
0 commit comments