From 94b3b3888522becf162480b563a4473f0477bb19 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 26 Jan 2026 18:09:57 +0000 Subject: [PATCH 01/72] Update changelog.md for version 0.0.395 --- changelog.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/changelog.md b/changelog.md index 881a03b4..d417f8da 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,17 @@ +## 0.0.395 - 2026-01-26 + +- Select escape item shows blinking cursor to indicate text input +- `/mcp show` displays all configured MCP servers including defaults and servers from additional configuration. +- `/mcp show` displays servers from installed plugins +- Rewind shows clear warning in non-git repos or repos without commits +- Cursor hides when terminal loses focus +- Formatted text and links display correctly when wrapping +- Load local shell configuration in agent sessions +- Plugin skills are now usable by the agent +- CLI handles missing tree-sitter files gracefully instead of crashing +- Completed tool calls display in prompt mode +- Add commenting to /diff mode for line-specific feedback + ## 0.0.394 - 2026-01-24 - Deduplicate identical model instruction files to save context From 01c23fd42d3cd337466059c23e55e87b16b83c0e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 27 Jan 2026 20:27:54 +0000 Subject: [PATCH 02/72] Update changelog.md for version 0.0.396 --- changelog.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/changelog.md b/changelog.md index d417f8da..e1b19cc2 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,29 @@ +## 0.0.396 - 2026-01-27 + +- Skill names can include uppercase letters +- Ctrl+E moves cursor to end of line when typing without expanding timeline +- `/skills add` works with directories that contain SKILL.md directly +- Subagent timeline entries display with bold, capitalized names +- Timeline entries show filled circle for success status +- Improve horizontal alignment of UI elements +- Simplify compaction timeline entries +- Create custom agents through interactive CLI wizard +- Tool filtering flags now apply to subagents +- Error messages consistently reference /login and /logout commands +- Add `copilot version` and `copilot update` commands +- preToolUse hooks can deny tool execution and modify arguments +- Fix PTY leak in bash session handling +- `/plugin install` supports GitHub repos, URLs, and local paths +- Add `/experimental` command and `--experimental` flag to opt into experimental features +- Add `/init` command to generate Copilot instructions +- Reorder model picker list for better organization +- Plugins can provide custom agents +- Open plan files in VS Code on WSL and devcontainers +- /diff shows changes from entire repository when run from subdirectory +- /skills add correctly counts skills when directory path has trailing slash +- Undo/rewind shows accurate count of affected files +- Pre-releases on GitHub now show detailed changelog notes + ## 0.0.395 - 2026-01-26 - Select escape item shows blinking cursor to indicate text input From cb0f07ca12da86f26f5dab31771532465d87b484 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 28 Jan 2026 17:19:09 +0000 Subject: [PATCH 03/72] Update changelog.md for version 0.0.397 --- changelog.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/changelog.md b/changelog.md index e1b19cc2..f1fd520f 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,14 @@ +## 0.0.397 - 2026-01-28 + +- `/mcp show ` displays server details and available tools +- Header layout adapts better to narrow terminal widths +- Plan mode input text is more readable +- Content pasted into the prompt over 30 KB is automatically saved to workspace files +- Homebrew tools work correctly on macOS with zsh as default shell +- Add --acp flag to start as Agent Client Protocol server +- Directories now appear in @mention autocomplete +- Session summary displays accurate line counts + ## 0.0.396 - 2026-01-27 - Skill names can include uppercase letters From fae0bf9b0b721d096e4e0d92818581bc808dcacd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 28 Jan 2026 19:53:40 +0000 Subject: [PATCH 04/72] Update changelog.md for version 0.0.398 --- changelog.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/changelog.md b/changelog.md index f1fd520f..7792a669 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,9 @@ +## 0.0.398 - 2026-01-28 + +- Fix a regression that caused "Invalid session id" errors for agent shell calls +- CLI header uses middle-truncation for paths in narrow terminals, preserving first and last folders +- Skills from parent directories are now invocable and work in non-git directories + ## 0.0.397 - 2026-01-28 - `/mcp show ` displays server details and available tools From b1da3d0a9b0e77b2ed040d82e4e8dc15d36dda1f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 29 Jan 2026 19:13:54 +0000 Subject: [PATCH 05/72] Update changelog.md for version 0.0.399 --- changelog.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/changelog.md b/changelog.md index 7792a669..42dc91f4 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,19 @@ +## 0.0.399 - 2026-01-29 + +- Compaction messages show clearer command hints to view checkpoint summaries +- Press Ctrl+X then / to run slash commands without losing your input +- Improve `/diff` command with better visual indicators and scroll acceleration +- Add `/allow-all` and `/yolo` commands to auto-approve all permissions during a session +- Add Copilot option for agent creation wizard to generate name, description, and instructions based on initial agent description +- Add LSP (Language Server Protocol) tool for code intelligence (requires experimental flag) +- Sessions get AI-generated names from first message +- Skills remain effective after conversation history is compacted +- /usage now includes token consumption from sub-agents (e.g., the general-purpose agent) +- Support `.claude/commands/` single-file commands as simpler alternative to skills +- Skills load correctly on Windows +- Add `/diff` command to review session changes +- Undo/rewind to previous states with double-Esc + ## 0.0.398 - 2026-01-28 - Fix a regression that caused "Invalid session id" errors for agent shell calls From 1bc2c290d4a9fe99d192e8c545fcbe02eec1c28a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 30 Jan 2026 22:28:28 +0000 Subject: [PATCH 06/72] Update changelog.md for version 0.0.400 --- changelog.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/changelog.md b/changelog.md index 42dc91f4..8ad15a94 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,31 @@ +## 0.0.400 - 2026-01-30 + +- Add MCP server instructions support +- Timeline displays user responses to `ask_user` tool prompts with username +- Ordered lists display with numbers instead of dashes +- Add theme picker with `/theme` command and GitHub Dark/Light themes +- Fix support for pasting large content on Windows Terminal +- Better handle large results from grep and glob tools to avoid memory issues +- CLI now sends DELETE requests to remove MCP servers when shutting down +- Fix not being able to arrow key out of text inputs in select lists +- ACP server supports changing models during a session +- ACP server support permission flags: --yolo, --allow-all, etc. and permissions config +- Show progress indicator in terminal tab when thinking +- Remove bundled LSP servers (TypeScript, Python) +- Improve compatibility with remote MCP servers that use OAuth +- Markdown table headers display in bold +- Add autopilot mode for autonomous task completion (experimental) +- Add fuzzy search to model picker +- Freeform text input in list pickers works correctly +- Add `copilot plugin` subcommand for non-interactive plugin management +- CLI is more responsive in sessions with many messages +- Shell path detection more accurately handles spaces, quotes, and Windows switches +- Diff mode file list uses carousel navigation, showing up to 5 files at a time +- Holding backspace continues deleting text +- Better support for UNIX keyboard bindings (Ctrl+A/E/W/U/K, Alt+arrows) and multiline content in various text inputs +- Add `launch_messages` config for startup announcements +- The Code Review tool handles large changesets by ignoring build artifacts and limiting to 100 files + ## 0.0.399 - 2026-01-29 - Compaction messages show clearer command hints to view checkpoint summaries From a5797c96a7045e11b88a548d3ed481102fececb7 Mon Sep 17 00:00:00 2001 From: Serhii Vechrenko Date: Sat, 31 Jan 2026 18:36:13 -0800 Subject: [PATCH 07/72] docs: add LSP server configuration guide to README --- README.md | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/README.md b/README.md index d5dae010..2e62b99f 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,64 @@ Each time you submit a prompt to GitHub Copilot CLI, your monthly quota of premi For more information about how to use the GitHub Copilot CLI, see [our official documentation](https://docs.github.com/copilot/concepts/agents/about-copilot-cli). +## 🔧 Configuring LSP Servers + +GitHub Copilot CLI supports Language Server Protocol (LSP) for enhanced code intelligence. This feature is currently experimental and provides intelligent code features like go-to-definition, hover information, and diagnostics. + +### Enabling LSP Support + +To use LSP features, you must enable experimental mode: + +```bash +copilot --experimental +``` + +Or use the `/experimental` command within an interactive session. + +### Installing Language Servers + +Copilot CLI does not bundle LSP servers. You need to install them separately. For example, to set up TypeScript support: + +```bash +npm install -g typescript-language-server +``` + +For other languages, install the corresponding LSP server and configure it following the same pattern shown below. + +### Configuring LSP Servers + +LSP servers are configured through a dedicated LSP configuration file. You can configure LSP servers at the user level or repository level: + +**User-level configuration** (applies to all projects): +Edit `~/.copilot/lsp-config.json` + +**Repository-level configuration** (applies to specific project): +Create `.github/lsp.json` in your repository root + +Example configuration: + +```json +{ + "lspServers": { + "typescript": { + "command": "typescript-language-server", + "args": ["--stdio"], + "disabled": false, + "fileExtensions": { + ".ts": "typescript", + ".tsx": "typescript" + } + } + } +} +``` + +### Viewing LSP Server Status + +Check configured LSP servers using the `/lsp` command in an interactive session, or view your configuration files directly. + +For more information, see the [changelog](./changelog.md). + ## 📢 Feedback and Participation We're excited to have you join us early in the Copilot CLI journey. From c13a41d1cc7044bf5356f8a1777f1d90dddf74fc Mon Sep 17 00:00:00 2001 From: Serhii Vechrenko Date: Mon, 2 Feb 2026 11:27:13 -0800 Subject: [PATCH 08/72] Update LSP section in README to remove experimental flag info --- README.md | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/README.md b/README.md index 2e62b99f..f696e2bf 100644 --- a/README.md +++ b/README.md @@ -124,17 +124,7 @@ For more information about how to use the GitHub Copilot CLI, see [our official ## 🔧 Configuring LSP Servers -GitHub Copilot CLI supports Language Server Protocol (LSP) for enhanced code intelligence. This feature is currently experimental and provides intelligent code features like go-to-definition, hover information, and diagnostics. - -### Enabling LSP Support - -To use LSP features, you must enable experimental mode: - -```bash -copilot --experimental -``` - -Or use the `/experimental` command within an interactive session. +GitHub Copilot CLI supports Language Server Protocol (LSP) for enhanced code intelligence. This feature provides intelligent code features like go-to-definition, hover information, and diagnostics. ### Installing Language Servers @@ -164,7 +154,6 @@ Example configuration: "typescript": { "command": "typescript-language-server", "args": ["--stdio"], - "disabled": false, "fileExtensions": { ".ts": "typescript", ".tsx": "typescript" From 572d0f06a840027ba6e93921f30f8220b5f644bc Mon Sep 17 00:00:00 2001 From: jmoseley Date: Mon, 2 Feb 2026 11:33:56 -0800 Subject: [PATCH 09/72] docs: add experimental mode section to README --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index d5dae010..e97d51a1 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,19 @@ Launch `copilot` in a folder that contains code you want to work with. By default, `copilot` utilizes Claude Sonnet 4.5. Run the `/model` slash command to choose from other available models, including Claude Sonnet 4 and GPT-5. +### Experimental Mode + +Experimental mode enables access to new features that are still in development. You can activate experimental mode by: + +- Launching with the `--experimental` flag: `copilot --experimental` +- Using the `/experimental` slash command from within the CLI + +Once activated, the setting is persisted in your config, so the `--experimental` flag is no longer needed on subsequent launches. + +#### Experimental Features + +- **Autopilot mode:** Press `Shift+Tab` to toggle autopilot mode, which encourages the agent to continue working until a task is completed. + Each time you submit a prompt to GitHub Copilot CLI, your monthly quota of premium requests is reduced by one. For information about premium requests, see [About premium requests](https://docs.github.com/copilot/managing-copilot/monitoring-usage-and-entitlements/about-premium-requests). For more information about how to use the GitHub Copilot CLI, see [our official documentation](https://docs.github.com/copilot/concepts/agents/about-copilot-cli). From cc589c42a7c71d007670dd94ee52978f178be2d1 Mon Sep 17 00:00:00 2001 From: Jeremy Moseley Date: Mon, 2 Feb 2026 11:43:06 -0800 Subject: [PATCH 10/72] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e97d51a1..36ce2716 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,7 @@ Once activated, the setting is persisted in your config, so the `--experimental` #### Experimental Features -- **Autopilot mode:** Press `Shift+Tab` to toggle autopilot mode, which encourages the agent to continue working until a task is completed. +- **Autopilot mode:** Autopilot is a new mode (press `Shift+Tab` to cycle through modes), which encourages the agent to continue working until a task is completed. Each time you submit a prompt to GitHub Copilot CLI, your monthly quota of premium requests is reduced by one. For information about premium requests, see [About premium requests](https://docs.github.com/copilot/managing-copilot/monitoring-usage-and-entitlements/about-premium-requests). From 7aff5865e0a1e09c28900c5179020266d16bb598 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 3 Feb 2026 15:12:17 +0000 Subject: [PATCH 11/72] Update changelog.md for version 0.0.401 --- changelog.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/changelog.md b/changelog.md index 8ad15a94..938b33b8 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,19 @@ +## 0.0.401 - 2026-02-03 + +- Support `.agents/skills` directory for auto-loading skills +- Improve handling of chat history when switching between model families +- MCP tools returning structuredContent now display correctly in CLI +- Support Claude-style .mcp.json format without mcpServers wrapper +- Inserting new line with shift+enter keybinding in VS Code integrated terminal +- Large multi-line pastes work correctly +- ACP terminal-auth passes correct arguments to login +- Arrow and special keys work reliably when held down +- Slash command ghost text appends correctly +- Add `copilot login` subcommand and support ACP terminal-auth +- Add agentStop and subagentStop hooks to control agent completion +- CLI handles unknown keypresses gracefully +- /diff displays accurate line numbers with dual column layout + ## 0.0.400 - 2026-01-30 - Add MCP server instructions support From 369f5d8caaa631c0de93a2cadedcf6b0f8c07d5a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 3 Feb 2026 21:35:16 +0000 Subject: [PATCH 12/72] Update changelog.md for version 0.0.402 --- changelog.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/changelog.md b/changelog.md index 938b33b8..62cb3ca0 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,14 @@ +## 0.0.402 - 2026-02-03 + +- ACP server supports agent and plan session modes +- MCP configuration applies to ACP mode +- Agent creation wizard styling improvements +- Custom agents with unknown fields load with warnings instead of errors +- Custom agents receive environment context when run as subagents +- Plugins can provide hooks for session lifecycle events +- Plugin update command works for direct plugins and handles Windows file locks +- Stop MCP servers when uninstalling plugins + ## 0.0.401 - 2026-02-03 - Support `.agents/skills` directory for auto-loading skills From 17063589c96a7f353a72bc809ea33b48f80950d7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 5 Feb 2026 08:43:25 +0000 Subject: [PATCH 13/72] Update changelog.md for version 0.0.403 --- changelog.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/changelog.md b/changelog.md index 62cb3ca0..2b71c3f0 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,18 @@ +## 0.0.403 - 2026-02-04 + +- Windows Task Manager displays correct application name +- Introduce security check preventing use of modules outside of application bundle +- ACP model info includes usage multiplier and enablement status +- Fix logic checking user organization membership +- Stop MCP servers before updating plugins +- Detached shell processes work on vanilla macOS installations +- Escape key consistently aborts permission dialogs regardless of selection +- Plugin skills work in prompt mode +- Config files preserve custom fields when CLI updates them +- Reasoning summaries enabled by default for supporting models +- Support comma-separated tools in custom agent frontmatter +- Skills with unknown frontmatter fields now load with warnings instead of being silently skipped + ## 0.0.402 - 2026-02-03 - ACP server supports agent and plan session modes From 5b0f1197a24c1e86931c49166bc726d5408db6f7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 5 Feb 2026 19:08:13 +0000 Subject: [PATCH 14/72] Update changelog.md for version 0.0.404 --- changelog.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/changelog.md b/changelog.md index 2b71c3f0..5069a13f 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,15 @@ +## 0.0.404 - 2026-02-05 + +- Add support for claude-opus-4.6 model +- `/allow-all` and `/yolo` execute immediately +- MCP servers shut down concurrently for improved performance +- Cancel --resume session picker to start a new session +- MCP server configurations default to all tools when tools parameter not specified +- Add `/tasks` command to view and manage background tasks +- Enable background agents for all users +- Simplify and clarify `/delegate` command messaging +- GITHUB_TOKEN environment variable now accessible in agent shell sessions + ## 0.0.403 - 2026-02-04 - Windows Task Manager displays correct application name From a7b0205dba5834ee91264cd3427bc46fd0c54c0f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 5 Feb 2026 22:47:58 +0000 Subject: [PATCH 15/72] Update changelog.md for version 0.0.405 --- changelog.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/changelog.md b/changelog.md index 5069a13f..6d91cb15 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,10 @@ +## 0.0.405 - 2026-02-05 + +- Plugin and marketplace names support uppercase letters +- `/experimental` shows help screen listing experimental features +- Fix SQL tool disconnects +- Plugins can bundle LSP server configurations + ## 0.0.404 - 2026-02-05 - Add support for claude-opus-4.6 model From 8218a021346fb655cd88e13c60d7e92f0f4c33fb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 7 Feb 2026 19:10:26 +0000 Subject: [PATCH 16/72] Update changelog.md for version 0.0.406 --- changelog.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/changelog.md b/changelog.md index 6d91cb15..0e92efed 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,16 @@ +## 0.0.406 - 2026-02-07 + +- Add support for Claude Opus 4.6 Fast (Preview) +- Markdown formatting displays in non-interactive mode output +- Display warning when user has no Copilot subscription +- Commands from plugins are now translated into skills +- Add `/changelog` command to view release notes +- plugin marketplace add accepts URLs as sources +- `--no-experimental` flag disables experimental features +- CLI interface renders without extra blank line +- `/mcp show` displays enabled/disabled status for MCP tools +- MCP tool responses now include structured content (images, resources) for richer UI display in VS Code + ## 0.0.405 - 2026-02-05 - Plugin and marketplace names support uppercase letters From 2e925bf7e568c771ea1b1371c9f9486e91ece977 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 11 Feb 2026 20:16:31 +0000 Subject: [PATCH 17/72] Update changelog.md for version 0.0.407 --- changelog.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/changelog.md b/changelog.md index 0e92efed..b347cebe 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,42 @@ +## 0.0.407 - 2026-02-11 + +- Improve authentication error messages in prompt mode +- Quota exceeded error links to Copilot settings with actionable guidance +- Theme picker shows live preview of diffs and markdown, adds colorblind and tritanopia theme variants +- Add `/on-air` mode to hide model names and quota details for streaming +- Show agent type and description in read_agent timeline entries +- `/tasks` shows Recent Activity for background agents +- Add experimental alternate screen buffer mode: --alt-screen +- Interactive programs that query terminal state work in shell +- Subagents fall back to session model when default model blocked by policy +- Expose session context in session.list SDK response +- Keyboard shortcut hints display consistently with bold styling throughout the CLI +- Add `tools.list` RPC to query available built-in tools +- Streaming responses automatically retry when interrupted by server errors +- Add option to approve tool permissions permanently for a location +- Add `/instructions` command to view and toggle custom instruction files +- Ctrl-b and ctrl-f cursor movement now available on all platforms +- Ctrl+d now favors deleting character after cursor, with queueing moved to ctrl+q (or ctrl+enter) +- Editing MCP servers shows existing configuration values +- `--resume` creates new sessions with provided UUID +- Add workspace-local MCP configuration via `.vscode/mcp.json` +- Skill changes from `/skills` commands take effect immediately +- /session usage string only shows available subcommands +- Slash commands which take prompts now work when immediately followed by a new-line +- Remove unintended characters from status bar +- Autopilot mode works with custom agents that specify explicit tools +- Updated node-pty to fix file descriptor leaks +- Windows slash flags (e.g., `dir /B`) are no longer treated as file paths +- Diff mode no longer flickers when navigating files +- /mcp disable and /mcp enable show clear error when server name doesn't exist +- MCP servers using Microsoft OAuth configure automatically without manual client ID setup +- Tab cycles modes forward, Shift+Tab backward; shell is now a mode +- Ctrl+P runs slash commands while preserving input (replaces Ctrl+X → /) +- Terminal title works on all TTY terminals, not just select few +- Help text notes auto-update is disabled in CI environments by default +- Terminal tab shows session title when idle +- ask_user tool asks one question at a time for clearer interaction + ## 0.0.406 - 2026-02-07 - Add support for Claude Opus 4.6 Fast (Preview) From 4f22781087f3d0b752df226774596e316030a343 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 12 Feb 2026 12:28:29 +0000 Subject: [PATCH 18/72] Update changelog.md for version 0.0.408 --- changelog.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/changelog.md b/changelog.md index b347cebe..62ded263 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,15 @@ +## 0.0.408 - 2026-02-12 + +- Add `/streamer-mode` to hide preview model names and quota details for streaming +- Makes shellId more flexible to not error when a number is passed +- Background tasks hint updates when detached shells are killed or removed +- Add mouse text selection in --alt-screen mode +- ! commands with large output no longer crash the CLI +- Fix duplicate/ghost lines appearing when resizing the terminal in alt-screen mode +- MCP servers respect the `cwd` working directory property +- Add substring matching to slash command autocomplete +- Change run command shortcut from ctrl+p to ctrl+s + ## 0.0.407 - 2026-02-11 - Improve authentication error messages in prompt mode From 0e73701c398d12e31855d4f3652a372122fefd34 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 12 Feb 2026 22:09:50 +0000 Subject: [PATCH 19/72] Update changelog.md for version 0.0.409 --- changelog.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/changelog.md b/changelog.md index 62ded263..3587b199 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,14 @@ +## 0.0.409 - 2026-02-12 + +- /diff uses full screen in alt-screen mode +- Quick help overlay: press `?` to see grouped shortcuts and commands, navigate with arrow keys +- Theme preview appears above theme list in screen reader mode +- Add `list_copilot_spaces` tool to default GitHub MCP config +- Subagents return complete responses +- CLI now integrates with VS Code, use /ide for more information. +- Permission prompts with long diffs are scrollable in alt-screen mode +- Include default plugin marketplaces (copilot-plugins, awesome-copilot) for easier plugin discovery + ## 0.0.408 - 2026-02-12 - Add `/streamer-mode` to hide preview model names and quota details for streaming From e0ec58f7731e5c84c1f3397d91a2cb7bb6b7bc9b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 14 Feb 2026 00:52:38 +0000 Subject: [PATCH 20/72] Update changelog.md for version 0.0.410 --- changelog.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/changelog.md b/changelog.md index 3587b199..190d74ad 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,31 @@ +## 0.0.410 - 2026-02-14 + +- Fixed high memory usage caused by rapid logging +- Shell mode pastes raw text instead of paste tokens +- Reduce memory usage from encoding streaming chunks +- Fix alt-screen and timeline URL rendering to preserve long links without truncation +- Reduced memory growth in long sessions by evicting transient events after compaction +- Fixed high memory usage when loading large sessions +- Fixed high memory usage during shell commands with rapid output +- Add `/init suppress` to control init suggestions per repository +- Show IDE file selection indicator in the status bar when connected to an IDE +- Add repo-level settings to disable individual validation tools +- ACP server supports loading existing sessions +- Page Up/Page Down keyboard scrolling in alt-screen mode +- Add Ctrl+Z suspend/resume support on Unix platforms +- Support tilde (~) expansion in MCP server cwd configuration +- Support ctrl+n and ctrl+p as arrow key alternatives +- Exit CLI with ctrl+d on empty prompt +- Fix unknown option '--no-warnings' error +- Shift+Enter inserts newlines in terminals with kitty keyboard protocol +- MCP server list selection adjusts correctly after deletion +- Shell mode removed from Shift+Tab cycle, accessed only via `!` +- Improve /tasks dialog with consistent icons and typography +- Exit from alt-screen no longer replays full session history +- MCP server errors and loading issues surface in timeline +- Reduce input jitter with frame coalescing and smoother alt-screen animations +- Extend skill name validation to support underscores, dots, and spaces; make name and description optional in skill frontmatter with sensible fallbacks + ## 0.0.409 - 2026-02-12 - /diff uses full screen in alt-screen mode From 8d7e4679ec3a643ea8b93679f8123115f60d9816 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Tue, 17 Feb 2026 13:58:51 +0000 Subject: [PATCH 21/72] Add PowerShell dependency to winget manifests Modify the winget workflow to inject a PowerShell >= 7.0.0 dependency into the installer manifest before submission. This ensures users have PowerShell 7+ installed when installing via winget. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/winget.yml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index 094defe6..a8db411f 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -41,4 +41,20 @@ jobs: .\wingetcreate.exe update $packageId ` --version $packageVersion ` --urls "$installerUrlx64|x64" "$installerUrlarm64|arm64" ` - --submit + --out manifests + + # Add PowerShell dependency to installer manifest + $installerManifest = Get-ChildItem -Path manifests -Filter "*.installer.yaml" -Recurse | Select-Object -First 1 + $content = Get-Content $installerManifest -Raw + $dependency = @" +Dependencies: + PackageDependencies: + - PackageIdentifier: Microsoft.PowerShell + MinimumVersion: "7.0.0" +"@ + # Insert dependency block before the Installers section + $content = $content -replace '(?m)^Installers:', "$dependency`nInstallers:" + Set-Content -Path $installerManifest -Value $content -NoNewline + + # Submit the modified manifest + .\wingetcreate.exe submit manifests From d1623992583be4090ebb9711210718753b3ffc4c Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Tue, 17 Feb 2026 14:04:07 +0000 Subject: [PATCH 22/72] Address CR feedback: add error handling and fix newline - Add check for missing installer manifest with error message - Remove -NoNewline to preserve YAML file conventions Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/winget.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index a8db411f..acb0ad68 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -44,8 +44,12 @@ jobs: --out manifests # Add PowerShell dependency to installer manifest - $installerManifest = Get-ChildItem -Path manifests -Filter "*.installer.yaml" -Recurse | Select-Object -First 1 - $content = Get-Content $installerManifest -Raw + $installerManifest = Get-ChildItem -Path manifests -Filter "*.installer.yaml" -Recurse | Select-Object -First 1 -ExpandProperty FullName + if (-not $installerManifest) { + Write-Error "No installer manifest (*.installer.yaml) was found in the 'manifests' directory." + exit 1 + } + $content = Get-Content -Path $installerManifest -Raw $dependency = @" Dependencies: PackageDependencies: @@ -54,7 +58,7 @@ Dependencies: "@ # Insert dependency block before the Installers section $content = $content -replace '(?m)^Installers:', "$dependency`nInstallers:" - Set-Content -Path $installerManifest -Value $content -NoNewline + Set-Content -Path $installerManifest -Value $content # Submit the modified manifest .\wingetcreate.exe submit manifests From f774d4ada56aca57dc2dc2682727e8f393d9481a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 17 Feb 2026 20:53:43 +0000 Subject: [PATCH 23/72] Update changelog.md for version 0.0.411 --- changelog.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/changelog.md b/changelog.md index 190d74ad..12cfab34 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,26 @@ +## 0.0.411 - 2026-02-17 + +- Improve error messaging and guidance when access denied by policy +- Custom agents use `disable-model-invocation` instead of `infer` (backward compatible) +- Add support for Claude Sonnet 4.6 model +- Memory storage shows subject, fact, and citations in timeline +- Tab completion respects the highlighted slash command selection +- Support MCP servers from Windows On-Device Registry +- Text selection now works in footer area in alt-screen mode +- Support `--alt-screen on` and `--alt-screen off` syntax +- Add `include_coauthor` config option to disable Co-authored-by trailer in git commits +- SDK APIs for plan mode, autopilot, fleet, and workspace files +- Autopilot mode and /fleet command now available to all users +- Alt-screen viewport auto-scrolls when dragging selection to edge +- Interactive shell commands complete on all versions of Windows +- Reduce memory usage in alt-screen mode during long sessions +- Session picker no longer flashes when using --resume in alt-screen mode +- Terminal bell rings once when agent finishes, not on every tool completion +- Custom instruction files are recognized regardless of casing +- PowerShell commands with syntax errors no longer hang +- Improve text selection responsiveness in --alt-screen mode +- Cursor shows when suspending and hides when resuming + ## 0.0.410 - 2026-02-14 - Fixed high memory usage caused by rapid logging @@ -25,6 +48,7 @@ - MCP server errors and loading issues surface in timeline - Reduce input jitter with frame coalescing and smoother alt-screen animations - Extend skill name validation to support underscores, dots, and spaces; make name and description optional in skill frontmatter with sensible fallbacks +- Add Copilot co-authored by trailer to git commits created ## 0.0.409 - 2026-02-12 From 01bbd9c3da7d44a665e830b5b9efe9a382e9350c Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Thu, 19 Feb 2026 14:58:43 -0500 Subject: [PATCH 24/72] Revert "Add PowerShell dependency to winget manifests" --- .github/workflows/winget.yml | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index acb0ad68..094defe6 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -41,24 +41,4 @@ jobs: .\wingetcreate.exe update $packageId ` --version $packageVersion ` --urls "$installerUrlx64|x64" "$installerUrlarm64|arm64" ` - --out manifests - - # Add PowerShell dependency to installer manifest - $installerManifest = Get-ChildItem -Path manifests -Filter "*.installer.yaml" -Recurse | Select-Object -First 1 -ExpandProperty FullName - if (-not $installerManifest) { - Write-Error "No installer manifest (*.installer.yaml) was found in the 'manifests' directory." - exit 1 - } - $content = Get-Content -Path $installerManifest -Raw - $dependency = @" -Dependencies: - PackageDependencies: - - PackageIdentifier: Microsoft.PowerShell - MinimumVersion: "7.0.0" -"@ - # Insert dependency block before the Installers section - $content = $content -replace '(?m)^Installers:', "$dependency`nInstallers:" - Set-Content -Path $installerManifest -Value $content - - # Submit the modified manifest - .\wingetcreate.exe submit manifests + --submit From ee89712238a280fa0429abe0f790f2399eed404a Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Thu, 19 Feb 2026 22:19:34 +0000 Subject: [PATCH 25/72] Add PowerShell dependency to winget manifests Re-applies the change from PR #1497 which was reverted in PR #1548. The original broke the workflow YAML because the PowerShell here-string content and closing tag had zero indentation, which terminated the YAML literal block scalar (run: |). Fixed by indenting the here-string body to match the block indentation level; YAML strips the leading spaces, leaving valid PowerShell with the closing tag at column 0. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/winget.yml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index 094defe6..46f266f3 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -41,4 +41,24 @@ jobs: .\wingetcreate.exe update $packageId ` --version $packageVersion ` --urls "$installerUrlx64|x64" "$installerUrlarm64|arm64" ` - --submit + --out manifests + + # Add PowerShell dependency to installer manifest + $installerManifest = Get-ChildItem -Path manifests -Filter "*.installer.yaml" -Recurse | Select-Object -First 1 -ExpandProperty FullName + if (-not $installerManifest) { + Write-Error "No installer manifest (*.installer.yaml) was found in the 'manifests' directory." + exit 1 + } + $content = Get-Content -Path $installerManifest -Raw + $dependency = @" + Dependencies: + PackageDependencies: + - PackageIdentifier: Microsoft.PowerShell + MinimumVersion: "7.0.0" + "@ + # Insert dependency block before the Installers section + $content = $content -replace '(?m)^Installers:', "$dependency`nInstallers:" + Set-Content -Path $installerManifest -Value $content + + # Submit the modified manifest + .\wingetcreate.exe submit manifests From 3d5d9907820459613775efa3aed273147a01d337 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 19 Feb 2026 22:58:41 +0000 Subject: [PATCH 26/72] Update changelog.md for version 0.0.412 --- changelog.md | 105 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 73 insertions(+), 32 deletions(-) diff --git a/changelog.md b/changelog.md index 12cfab34..b998f020 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,44 @@ +## 0.0.412 - 2026-02-19 + +- Improve quick help accessibility: screen reader-friendly tab labels, reordered layout, and grouped `help commands` output +- Hide custom agents with `user-invocable: false` from the `/agents` picker +- Config file syntax errors now show a warning instead of silently crashing +- Sign Windows native prebuilds with Authenticode to prevent antivirus quarantine of native modules +- Allow `/reset-allowed-tools` to run during agent execution +- MCP servers with invalid tool schemas no longer lose all tools +- Alt-screen mode no longer consumes increasing memory over long sessions +- Add `/mcp reload` command to reload MCP configuration +- Skills support `disable-model-invocation` frontmatter field +- /fleet orchestrator validates subagent work +- Deprecate gpt-5 model +- Windows slash flags (e.g., `xcopy /E /I`) are no longer treated as file paths +- Show a warning in the timeline when skills fail to load at startup, with a prompt to run /skills for details +- Eliminate banner character flash on startup when banner is disabled +- Edit plan in terminal editor with ctrl+y +- Terminal editor is now supported on Windows +- Configure LSP server request timeouts in lsp.json +- Add `/update` command to view changelog and update instructions +- Add exit_plan_mode tool with plan approval dialog for reviewing and accepting plans +- Support ~/.copilot/instructions/\*.instructions.md files for user-level instructions across all repositories +- Add double-click word and triple-click line selection in alt-screen text selection +- Edit the prompt in your preferred terminal editor with ctrl+x ctrl+e +- Prevents spurious error messages from appearing in terminal on Windows +- Typing `?` in an AskUser prompt no longer triggers the quick help overlay +- Improve SQL tool timeline entries +- Reduce memory usage in alt-screen mode during long sessions +- /fleet mode dispatches more subagents in parallel for faster execution +- Instructions picker opens as a full-screen alt-screen view when alt-screen mode is enabled +- Skills picker opens as a full-screen alt-screen view when alt-screen mode is enabled +- Command files no longer require YAML frontmatter — plain markdown files work with name and description derived automatically +- Session picker opens instantly without a loading flash when multiple sessions exist +- Mouse event coordinate fragments no longer appear in input field +- Add cross-session memory: ask about past work, files, and PRs across sessions (experimental) +- Add `--bash-env` flag to source BASH_ENV in shell sessions +- Restore `ctrl+x /` as alternate shortcut to run commands while preserving input +- /clear preserves agent mode (autopilot, plan, or interactive) +- MCP error messages include the server name +- Text selection in timeline no longer spills into prompt area when dragging + ## 0.0.411 - 2026-02-17 - Improve error messaging and guidance when access denied by policy @@ -624,10 +665,10 @@ ## 0.0.351 - 2025-10-24 - Improved our path detection heuristic to avoid various annoying, unnecessary permissions requests: - - Running many standard bash/PowerShell commands that are known to be readonly (Fixes part of https://github.com/github/sweagentd/issues/7372) - - Commands like `npm test -- --something` in PowerShell - - Shell redirections like `> some_file.txt` in paths you've already granted write permissions, `> /dev/null`, and `2>&1` (Fixes https://github.com/github/copilot-cli/issues/211) - - Arguments to `gh api` like `gh api /repos/user/repo/ec` (Fixes https://github.com/github/copilot-cli/issues/216) + - Running many standard bash/PowerShell commands that are known to be readonly (Fixes part of https://github.com/github/sweagentd/issues/7372) + - Commands like `npm test -- --something` in PowerShell + - Shell redirections like `> some_file.txt` in paths you've already granted write permissions, `> /dev/null`, and `2>&1` (Fixes https://github.com/github/copilot-cli/issues/211) + - Arguments to `gh api` like `gh api /repos/user/repo/ec` (Fixes https://github.com/github/copilot-cli/issues/216) - Improved prompting for Sonnet 4.5 to reduce the number of intermediate markdown files left in the workspace - 👀 ...see you at [GitHub Universe](https://githubuniverse.com/)! @@ -692,25 +733,25 @@ Haiku 4.5. ``` - Added a flag to augment MCP server configuration to temporarily add or override server configuration per session: `--additional-mcp-config` (fixes https://github.com/github/copilot-cli/issues/288) - - You can pass MCP server configuration in two ways: - - Inline JSON: `copilot --additional-mcp-config '{"mcpServers": {"my-tool": {...}}}'` - - From a file (prefix with @): `copilot --additional-mcp-config @/path/to/config.json` - - You can also pass the flag multiple times (later values override earlier ones): `copilot --additional-mcp-config @base.json --additional-mcp-config @overrides.json` + - You can pass MCP server configuration in two ways: + - Inline JSON: `copilot --additional-mcp-config '{"mcpServers": {"my-tool": {...}}}'` + - From a file (prefix with @): `copilot --additional-mcp-config @/path/to/config.json` + - You can also pass the flag multiple times (later values override earlier ones): `copilot --additional-mcp-config @base.json --additional-mcp-config @overrides.json` - Improved our prompts to ensure the agent uses Windows-style paths on Windows (fixes https://github.com/github/copilot-cli/issues/261) - Added a prompt for users to run `/terminal-setup` if needed to enable multi-line input - Various visual improvements: - - Added a shimmer effect to the "Thinking..." indicator - - Removed the box around user messages in the timeline - - Increased the contrast of removed intraline highlights in diffs - - Allow cycling through slash commands (from the bottom of the list back to the top) - - Aligned permission/confirmation prompts to ensure all use the same visual style + - Added a shimmer effect to the "Thinking..." indicator + - Removed the box around user messages in the timeline + - Increased the contrast of removed intraline highlights in diffs + - Allow cycling through slash commands (from the bottom of the list back to the top) + - Aligned permission/confirmation prompts to ensure all use the same visual style ## 0.0.342 - 2025-10-15 - Overhauled our session logging format: - - Introduced a new session logging format that decouples how we store sessions from how we display them in the timeline. The new format is cleaner, more concise, and scalable, and will allow us to more easily implement new features down the line. - - New sessions are stored in `~/.copilot/session-state` - - Legacy sessions are stored in `~/.copilot/history-session-state` -- these will be migrated to the new format & location as you resume them from `copilot --resume` + - Introduced a new session logging format that decouples how we store sessions from how we display them in the timeline. The new format is cleaner, more concise, and scalable, and will allow us to more easily implement new features down the line. + - New sessions are stored in `~/.copilot/session-state` + - Legacy sessions are stored in `~/.copilot/history-session-state` -- these will be migrated to the new format & location as you resume them from `copilot --resume` - Enabled the Kitty protocol by default. Multi-line input is now supported via Shift+Ctrl on terminal that support the Kitty protocol. Multi-line input is also supported in VSCode and its forks by running the `/terminal-setup` command (fixes https://github.com/github/copilot-cli/issues/14) - Enabled non-interactive GHE logins by respecting the `GH_HOST` environment variable for PAT and `gh` authentication modes (fixes https://github.com/github/copilot-cli/issues/296) - Improved debug log collection convenience by adding a persistent `log_level` option in `~/.copilot/config`. Possible values: `["none", "error", "warning", "info", "debug", "all", "default"]` @@ -735,25 +776,25 @@ - Changed parsing of environment variables in MCP server configuration to treat the value of the `env` section as literal values (fixes https://github.com/github/copilot-cli/issues/26). Customers who have configured MCP Servers for use with the CLI will need to make a slight modification to their `~/.copilot/mcp-config.json`. For any servers they have added with an `env` section, they will need to go add a `$` to the start of the "value" pair of the key value pair of each entry in the env-block, so to have the values treated as references to environment variables. - For example: Before: + For example: Before: - ```json - { - "env": { - "GITHUB_ACCESS_TOKEN": "GITHUB_TOKEN" - } + ```json + { + "env": { + "GITHUB_ACCESS_TOKEN": "GITHUB_TOKEN" } - ``` + } + ``` - Before this change, the CLI would read the value of `GITHUB_TOKEN` from the environment of the CLI and set the environment variable named `GITHUB_ACCESS_TOKEN` in the MCP process to that value. With this change, `GITHUB_ACCESS_TOKEN` would now be set to the literal value `GITHUB_TOKEN`. To get the old behavior, change to this: + Before this change, the CLI would read the value of `GITHUB_TOKEN` from the environment of the CLI and set the environment variable named `GITHUB_ACCESS_TOKEN` in the MCP process to that value. With this change, `GITHUB_ACCESS_TOKEN` would now be set to the literal value `GITHUB_TOKEN`. To get the old behavior, change to this: - ```json - { - "env": { - "GITHUB_ACCESS_TOKEN": "${GITHUB_TOKEN}" - } + ```json + { + "env": { + "GITHUB_ACCESS_TOKEN": "${GITHUB_TOKEN}" } - ``` + } + ``` ## 0.0.339 - 2025-10-10 @@ -846,8 +887,8 @@ - Added support for [Claude Sonnet 4.5](https://github.blog/changelog/2025-09-29-anthropic-claude-sonnet-4-5-is-in-public-preview-for-github-copilot/) and made it the default model - Added `/model` slash command to easily change the model (fixes https://github.com/github/copilot-cli/issues/10) - - `/model` will open a picker to change the model - - `/model ` will set the model to the parameter provided + - `/model` will open a picker to change the model + - `/model ` will set the model to the parameter provided - Added display of currently selected model above the input text box (Addresses feedback in https://github.com/github/copilot-cli/issues/120, https://github.com/github/copilot-cli/issues/108, ) - Improved error messages when users provide incorrect command-line arguments. (Addresses feedback of the discoverability of non-interactive mode from https://github.com/github/copilot-cli/issues/96) - Changed the behavior of `Ctrl+r` to expand only recent timeline items. After running `Ctrl+r`, you can use `Ctrl+e` to expand all From 404957e719320f4db95edb57764498f288666f97 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Thu, 19 Feb 2026 18:01:15 -0500 Subject: [PATCH 27/72] Revert "Add PowerShell dependency to winget manifests" --- .github/workflows/winget.yml | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index 46f266f3..094defe6 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -41,24 +41,4 @@ jobs: .\wingetcreate.exe update $packageId ` --version $packageVersion ` --urls "$installerUrlx64|x64" "$installerUrlarm64|arm64" ` - --out manifests - - # Add PowerShell dependency to installer manifest - $installerManifest = Get-ChildItem -Path manifests -Filter "*.installer.yaml" -Recurse | Select-Object -First 1 -ExpandProperty FullName - if (-not $installerManifest) { - Write-Error "No installer manifest (*.installer.yaml) was found in the 'manifests' directory." - exit 1 - } - $content = Get-Content -Path $installerManifest -Raw - $dependency = @" - Dependencies: - PackageDependencies: - - PackageIdentifier: Microsoft.PowerShell - MinimumVersion: "7.0.0" - "@ - # Insert dependency block before the Installers section - $content = $content -replace '(?m)^Installers:', "$dependency`nInstallers:" - Set-Content -Path $installerManifest -Value $content - - # Submit the modified manifest - .\wingetcreate.exe submit manifests + --submit From f03da3fe6261e4db55cd3d99d23b36187634cf08 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Thu, 19 Feb 2026 22:19:34 +0000 Subject: [PATCH 28/72] Add PowerShell dependency to winget manifests Re-applies the change from PR #1497 which was reverted in PR #1548. The original broke the workflow YAML because the PowerShell here-string content and closing tag had zero indentation, which terminated the YAML literal block scalar (run: |). Fixed by indenting the here-string body to match the block indentation level; YAML strips the leading spaces, leaving valid PowerShell with the closing tag at column 0. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/winget.yml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index 094defe6..46f266f3 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -41,4 +41,24 @@ jobs: .\wingetcreate.exe update $packageId ` --version $packageVersion ` --urls "$installerUrlx64|x64" "$installerUrlarm64|arm64" ` - --submit + --out manifests + + # Add PowerShell dependency to installer manifest + $installerManifest = Get-ChildItem -Path manifests -Filter "*.installer.yaml" -Recurse | Select-Object -First 1 -ExpandProperty FullName + if (-not $installerManifest) { + Write-Error "No installer manifest (*.installer.yaml) was found in the 'manifests' directory." + exit 1 + } + $content = Get-Content -Path $installerManifest -Raw + $dependency = @" + Dependencies: + PackageDependencies: + - PackageIdentifier: Microsoft.PowerShell + MinimumVersion: "7.0.0" + "@ + # Insert dependency block before the Installers section + $content = $content -replace '(?m)^Installers:', "$dependency`nInstallers:" + Set-Content -Path $installerManifest -Value $content + + # Submit the modified manifest + .\wingetcreate.exe submit manifests From 4884994dbe41278842138d43a44dcda74ad575a8 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Fri, 20 Feb 2026 10:21:37 +0000 Subject: [PATCH 29/72] Fix the winget submission script --- .github/workflows/winget.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index 46f266f3..873e55b3 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -56,9 +56,11 @@ jobs: - PackageIdentifier: Microsoft.PowerShell MinimumVersion: "7.0.0" "@ - # Insert dependency block before the Installers section + # Remove existing top-level Dependencies block (if any), then insert ours + $content = $content -replace '(?m)^Dependencies:\r?\n([ ]+.+\r?\n)*', '' $content = $content -replace '(?m)^Installers:', "$dependency`nInstallers:" Set-Content -Path $installerManifest -Value $content # Submit the modified manifest - .\wingetcreate.exe submit manifests + $manifestPath = Split-Path $installerManifest + .\wingetcreate.exe submit $manifestPath From d0b7ea0e5f14b2019b15b47bcc580b8b5ddb644e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 20 Feb 2026 23:32:08 +0000 Subject: [PATCH 30/72] Update changelog.md for version 0.0.413 --- changelog.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/changelog.md b/changelog.md index b998f020..67e26613 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,20 @@ +## 0.0.413 - 2026-02-20 + +- Fix issue where Copilot API URL wasn't respected +- Display heading content from reasoning for gpt models +- Increase LSP request timeout from 30s to 90s to reduce timeout failures +- Fixed alt-screen timeline entries not updating when tool calls complete (particularly sub-agent calls) +- ctrl+insert can now be used to copy selected text in the alt-screen view +- Fix read_bash, write_bash, and stop_bash in-progress icon showing filled dot instead of empty circle +- Enable alt-screen mode by default when running with `--experimental` flag +- Improve code search speed in large repos +- Session info renders in the main view footer in alt-screen mode +- Skill files with YAML array syntax for allowed-tools now load correctly +- Support remote plugin sources (GitHub repos and git URLs) in marketplace.json plugin entries +- Automatically migrate users from claude-sonnet-4.5 to the current default model on startup +- Ctrl+A, Ctrl+E, and Ctrl+U navigate to logical line boundaries (newlines) instead of visual wrap boundaries +- Add configurable status line support to display dynamic session information via custom shell scripts + ## 0.0.412 - 2026-02-19 - Improve quick help accessibility: screen reader-friendly tab labels, reordered layout, and grouped `help commands` output From 837a5977456036cbb7e2fbc2fbf56e32fa2f4b28 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 21 Feb 2026 00:53:23 +0000 Subject: [PATCH 31/72] Update changelog.md for version 0.0.414 --- changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changelog.md b/changelog.md index 67e26613..f7e1b49c 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,8 @@ +## 0.0.414 - 2026-02-21 + +- Explore agent can now use GitHub MCP tools when available +- Show permission elevation dialog when accepting a plan with autopilot to prevent auto-denied tool errors + ## 0.0.413 - 2026-02-20 - Fix issue where Copilot API URL wasn't respected From 9134dfdd7e2c301c8a38f3f886db76df160f2fc9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 23 Feb 2026 21:46:07 +0000 Subject: [PATCH 32/72] Update changelog.md for version 0.0.415 --- changelog.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/changelog.md b/changelog.md index f7e1b49c..0143aeb2 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,17 @@ +## 0.0.415 - 2026-02-23 + +- Skill files saved with a UTF-8 BOM (common on Windows editors) now load correctly instead of failing with a frontmatter parse error +- Custom agents support the `model` field to specify which model to use, and unknown fields now warn instead of blocking agent load +- Plan approval menu shows model-curated actions with a recommended option highlighted first, including autopilot+fleet for parallelizable work +- Env loading indicator no longer hangs indefinitely on MCP startup error or session resume +- Add show_file tool for presenting code and diffs to the user +- Add env loading indicator showing skills, MCPs, plugins, ... being loaded +- MCP tool results with giant single lines are truncated correctly +- /plugin marketplace add and /plugin install support local paths containing spaces +- `/mcp show` groups servers into User, Workspace, Plugins, and Built-in sections and makes all servers navigable +- Agent now knows which model is powering it when asked +- Ctrl+A/E cycle through visual lines in wrapped input; Home/End navigate within a visual line; Ctrl+Home/End jump to text boundaries + ## 0.0.414 - 2026-02-21 - Explore agent can now use GitHub MCP tools when available From b320dfb8c4310b45aa7b52ffc37c3b57c6330daa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 24 Feb 2026 20:00:00 +0000 Subject: [PATCH 33/72] Update changelog.md for version 0.0.416 --- changelog.md | 72 +++++++++++++++++++++++++++++----------------------- 1 file changed, 40 insertions(+), 32 deletions(-) diff --git a/changelog.md b/changelog.md index 0143aeb2..30416c51 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 0.0.416 - 2026-02-24 + +- Expand `--help` content with descriptions, examples, and sorted flags +- Block third-party MCP servers when the Copilot MCP policy does not allow them +- Streaming response size counter updates continuously during tool calls and reasoning, and resets between requests +- Status line automatically switches to a two-line layout on narrow terminals, keeping CWD, branch, and model info readable at any terminal width +- Undo operations now always require confirmation + ## 0.0.415 - 2026-02-23 - Skill files saved with a UTF-8 BOM (common on Windows editors) now load correctly instead of failing with a frontmatter parse error @@ -701,10 +709,10 @@ ## 0.0.351 - 2025-10-24 - Improved our path detection heuristic to avoid various annoying, unnecessary permissions requests: - - Running many standard bash/PowerShell commands that are known to be readonly (Fixes part of https://github.com/github/sweagentd/issues/7372) - - Commands like `npm test -- --something` in PowerShell - - Shell redirections like `> some_file.txt` in paths you've already granted write permissions, `> /dev/null`, and `2>&1` (Fixes https://github.com/github/copilot-cli/issues/211) - - Arguments to `gh api` like `gh api /repos/user/repo/ec` (Fixes https://github.com/github/copilot-cli/issues/216) + - Running many standard bash/PowerShell commands that are known to be readonly (Fixes part of https://github.com/github/sweagentd/issues/7372) + - Commands like `npm test -- --something` in PowerShell + - Shell redirections like `> some_file.txt` in paths you've already granted write permissions, `> /dev/null`, and `2>&1` (Fixes https://github.com/github/copilot-cli/issues/211) + - Arguments to `gh api` like `gh api /repos/user/repo/ec` (Fixes https://github.com/github/copilot-cli/issues/216) - Improved prompting for Sonnet 4.5 to reduce the number of intermediate markdown files left in the workspace - 👀 ...see you at [GitHub Universe](https://githubuniverse.com/)! @@ -769,25 +777,25 @@ Haiku 4.5. ``` - Added a flag to augment MCP server configuration to temporarily add or override server configuration per session: `--additional-mcp-config` (fixes https://github.com/github/copilot-cli/issues/288) - - You can pass MCP server configuration in two ways: - - Inline JSON: `copilot --additional-mcp-config '{"mcpServers": {"my-tool": {...}}}'` - - From a file (prefix with @): `copilot --additional-mcp-config @/path/to/config.json` - - You can also pass the flag multiple times (later values override earlier ones): `copilot --additional-mcp-config @base.json --additional-mcp-config @overrides.json` + - You can pass MCP server configuration in two ways: + - Inline JSON: `copilot --additional-mcp-config '{"mcpServers": {"my-tool": {...}}}'` + - From a file (prefix with @): `copilot --additional-mcp-config @/path/to/config.json` + - You can also pass the flag multiple times (later values override earlier ones): `copilot --additional-mcp-config @base.json --additional-mcp-config @overrides.json` - Improved our prompts to ensure the agent uses Windows-style paths on Windows (fixes https://github.com/github/copilot-cli/issues/261) - Added a prompt for users to run `/terminal-setup` if needed to enable multi-line input - Various visual improvements: - - Added a shimmer effect to the "Thinking..." indicator - - Removed the box around user messages in the timeline - - Increased the contrast of removed intraline highlights in diffs - - Allow cycling through slash commands (from the bottom of the list back to the top) - - Aligned permission/confirmation prompts to ensure all use the same visual style + - Added a shimmer effect to the "Thinking..." indicator + - Removed the box around user messages in the timeline + - Increased the contrast of removed intraline highlights in diffs + - Allow cycling through slash commands (from the bottom of the list back to the top) + - Aligned permission/confirmation prompts to ensure all use the same visual style ## 0.0.342 - 2025-10-15 - Overhauled our session logging format: - - Introduced a new session logging format that decouples how we store sessions from how we display them in the timeline. The new format is cleaner, more concise, and scalable, and will allow us to more easily implement new features down the line. - - New sessions are stored in `~/.copilot/session-state` - - Legacy sessions are stored in `~/.copilot/history-session-state` -- these will be migrated to the new format & location as you resume them from `copilot --resume` + - Introduced a new session logging format that decouples how we store sessions from how we display them in the timeline. The new format is cleaner, more concise, and scalable, and will allow us to more easily implement new features down the line. + - New sessions are stored in `~/.copilot/session-state` + - Legacy sessions are stored in `~/.copilot/history-session-state` -- these will be migrated to the new format & location as you resume them from `copilot --resume` - Enabled the Kitty protocol by default. Multi-line input is now supported via Shift+Ctrl on terminal that support the Kitty protocol. Multi-line input is also supported in VSCode and its forks by running the `/terminal-setup` command (fixes https://github.com/github/copilot-cli/issues/14) - Enabled non-interactive GHE logins by respecting the `GH_HOST` environment variable for PAT and `gh` authentication modes (fixes https://github.com/github/copilot-cli/issues/296) - Improved debug log collection convenience by adding a persistent `log_level` option in `~/.copilot/config`. Possible values: `["none", "error", "warning", "info", "debug", "all", "default"]` @@ -812,25 +820,25 @@ - Changed parsing of environment variables in MCP server configuration to treat the value of the `env` section as literal values (fixes https://github.com/github/copilot-cli/issues/26). Customers who have configured MCP Servers for use with the CLI will need to make a slight modification to their `~/.copilot/mcp-config.json`. For any servers they have added with an `env` section, they will need to go add a `$` to the start of the "value" pair of the key value pair of each entry in the env-block, so to have the values treated as references to environment variables. - For example: Before: + For example: Before: - ```json - { - "env": { - "GITHUB_ACCESS_TOKEN": "GITHUB_TOKEN" + ```json + { + "env": { + "GITHUB_ACCESS_TOKEN": "GITHUB_TOKEN" + } } - } - ``` + ``` - Before this change, the CLI would read the value of `GITHUB_TOKEN` from the environment of the CLI and set the environment variable named `GITHUB_ACCESS_TOKEN` in the MCP process to that value. With this change, `GITHUB_ACCESS_TOKEN` would now be set to the literal value `GITHUB_TOKEN`. To get the old behavior, change to this: + Before this change, the CLI would read the value of `GITHUB_TOKEN` from the environment of the CLI and set the environment variable named `GITHUB_ACCESS_TOKEN` in the MCP process to that value. With this change, `GITHUB_ACCESS_TOKEN` would now be set to the literal value `GITHUB_TOKEN`. To get the old behavior, change to this: - ```json - { - "env": { - "GITHUB_ACCESS_TOKEN": "${GITHUB_TOKEN}" + ```json + { + "env": { + "GITHUB_ACCESS_TOKEN": "${GITHUB_TOKEN}" + } } - } - ``` + ``` ## 0.0.339 - 2025-10-10 @@ -923,8 +931,8 @@ - Added support for [Claude Sonnet 4.5](https://github.blog/changelog/2025-09-29-anthropic-claude-sonnet-4-5-is-in-public-preview-for-github-copilot/) and made it the default model - Added `/model` slash command to easily change the model (fixes https://github.com/github/copilot-cli/issues/10) - - `/model` will open a picker to change the model - - `/model ` will set the model to the parameter provided + - `/model` will open a picker to change the model + - `/model ` will set the model to the parameter provided - Added display of currently selected model above the input text box (Addresses feedback in https://github.com/github/copilot-cli/issues/120, https://github.com/github/copilot-cli/issues/108, ) - Improved error messages when users provide incorrect command-line arguments. (Addresses feedback of the discoverability of non-interactive mode from https://github.com/github/copilot-cli/issues/96) - Changed the behavior of `Ctrl+r` to expand only recent timeline items. After running `Ctrl+r`, you can use `Ctrl+e` to expand all From 6c3eff11c16c3bc6c7fd944db80386ea61bce57c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 25 Feb 2026 00:19:05 +0000 Subject: [PATCH 34/72] Update changelog.md for version 0.0.417 --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index 30416c51..0cf5c396 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 0.0.417 - 2026-02-25 + +- Add /research command for deep research with exportable reports +- MCP servers no longer intermittently fail to load when opening a new session +- Plugin agents and skills are available immediately after install without restarting +- Plugin skills and commands load from custom paths declared in plugin.json +- Alt+backspace correctly registers as backspace instead of delete + ## 0.0.416 - 2026-02-24 - Expand `--help` content with descriptions, examples, and sorted flags From aea9faa1d2eb710260cc4bf0f58b455178734470 Mon Sep 17 00:00:00 2001 From: Ryan Hecht Date: Tue, 24 Feb 2026 22:40:38 -0500 Subject: [PATCH 35/72] Revise README for GitHub Copilot CLI installation Updated installation instructions and removed npm references. --- README.md | 53 ++++++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 28050a4e..59548a9e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# GitHub Copilot CLI (Public Preview) +# GitHub Copilot CLI The power of GitHub Copilot, now in your terminal. @@ -38,61 +38,64 @@ If you have access to GitHub Copilot via your organization or enterprise, you ca ### Installation -Install with [WinGet](https://github.com/microsoft/winget-cli) (Windows): +Install with the install script (macOS and Linux): ```bash -winget install GitHub.Copilot +curl -fsSL https://gh.io/copilot-install | bash ``` +Or + ```bash -winget install GitHub.Copilot.Prerelease +wget -qO- https://gh.io/copilot-install | bash ``` -Install with [Homebrew](https://formulae.brew.sh/cask/copilot-cli) (macOS and Linux): +Use `| sudo bash` to run as root and install to `/usr/local/bin`. -```bash -brew install copilot-cli -``` +Set `PREFIX` to install to `$PREFIX/bin/` directory. Defaults to `/usr/local` +when run as root or `$HOME/.local` when run as a non-root user. + +Set `VERSION` to install a specific version. Defaults to the latest version. + +For example, to install version `v0.0.369` to a custom directory: ```bash -brew install copilot-cli@prerelease +curl -fsSL https://gh.io/copilot-install | VERSION="v0.0.369" PREFIX="$HOME/custom" bash ``` -Install with [npm](https://www.npmjs.com/package/@github/copilot) (macOS, Linux, and Windows): +Install with [Homebrew](https://formulae.brew.sh/cask/copilot-cli) (macOS and Linux): ```bash -npm install -g @github/copilot +brew install copilot-cli ``` ```bash -npm install -g @github/copilot@prerelease +brew install copilot-cli@prerelease ``` -Install with the install script (macOS and Linux): + +Install with [WinGet](https://github.com/microsoft/winget-cli) (Windows): ```bash -curl -fsSL https://gh.io/copilot-install | bash +winget install GitHub.Copilot ``` -Or - ```bash -wget -qO- https://gh.io/copilot-install | bash +winget install GitHub.Copilot.Prerelease ``` -Use `| sudo bash` to run as root and install to `/usr/local/bin`. - -Set `PREFIX` to install to `$PREFIX/bin/` directory. Defaults to `/usr/local` -when run as root or `$HOME/.local` when run as a non-root user. -Set `VERSION` to install a specific version. Defaults to the latest version. +Install with [npm](https://www.npmjs.com/package/@github/copilot) (macOS, Linux, and Windows): -For example, to install version `v0.0.369` to a custom directory: +```bash +npm install -g @github/copilot +``` ```bash -curl -fsSL https://gh.io/copilot-install | VERSION="v0.0.369" PREFIX="$HOME/custom" bash +npm install -g @github/copilot@prerelease ``` + ### Launching the CLI ```bash @@ -186,6 +189,6 @@ For more information, see the [changelog](./changelog.md). We're excited to have you join us early in the Copilot CLI journey. -This is an early-stage preview, and we're building quickly. Expect frequent updates--please keep your client up to date for the latest features and fixes! +We're building quickly. Expect frequent updates--please keep your client up to date for the latest features and fixes! Your insights are invaluable! Open issue in this repo, join Discussions, and run `/feedback` from the CLI to submit a confidential feedback survey! From b54e97c5e2bb23540e803cf96f5a7923cb9663c6 Mon Sep 17 00:00:00 2001 From: Ryan Hecht Date: Wed, 25 Feb 2026 11:42:57 -0500 Subject: [PATCH 36/72] Update README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 59548a9e..347cf2dc 100644 --- a/README.md +++ b/README.md @@ -191,4 +191,4 @@ We're excited to have you join us early in the Copilot CLI journey. We're building quickly. Expect frequent updates--please keep your client up to date for the latest features and fixes! -Your insights are invaluable! Open issue in this repo, join Discussions, and run `/feedback` from the CLI to submit a confidential feedback survey! +Your insights are invaluable! Open an issue in this repo, join Discussions, and run `/feedback` from the CLI to submit a confidential feedback survey! From 9277ab58718e4dd2cded7dc51ee2132af64ed927 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 25 Feb 2026 17:32:38 +0000 Subject: [PATCH 37/72] Update changelog.md for version 0.0.418 --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index 0cf5c396..bc579e84 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 0.0.418 - 2026-02-25 + +🎉 Copilot CLI is now [generally available](https://github.blog/changelog/2026-02-25-github-copilot-cli-is-now-generally-available) 🎉 + +- Agent protected from accidentally killing itself +- Remove --disable-parallel-tools-execution flag and parallel_tool_execution config option +- Plugin agents specified as file paths in plugin.json load correctly + ## 0.0.417 - 2026-02-25 - Add /research command for deep research with exportable reports From 30034c78b03e41fee31d71b73b2625572da81740 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Wed, 25 Feb 2026 22:34:17 -0500 Subject: [PATCH 38/72] install: guide user to update PATH for current shell session When copilot is not on PATH after install, the script now: - Tells users to restart their shell or source their RC file after adding the PATH export - Provides a copy-pasteable one-liner (export PATH + copilot help) that fixes PATH for the current session and runs the getting started command - Only shows the simple 'copilot help' message when it will actually work Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- install.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index fb3d3d49..0d7d77fe 100755 --- a/install.sh +++ b/install.sh @@ -156,6 +156,7 @@ if ! command -v copilot >/dev/null 2>&1; then if [ "$REPLY" = "y" ] || [ "$REPLY" = "Y" ]; then echo "export PATH=\"$INSTALL_DIR:\$PATH\"" >> "$RC_FILE" echo "✓ Added PATH export to $RC_FILE" + echo " Restart your shell or run: source $RC_FILE" fi fi else @@ -163,7 +164,11 @@ if ! command -v copilot >/dev/null 2>&1; then echo "To add $INSTALL_DIR to your PATH permanently, add this to $RC_FILE:" echo " export PATH=\"$INSTALL_DIR:\$PATH\"" fi -fi -echo "" -echo "Installation complete! Run 'copilot help' to get started." + echo "" + echo "Installation complete! To get started, run:" + echo " export PATH=\"$INSTALL_DIR:\$PATH\" && copilot help" +else + echo "" + echo "Installation complete! Run 'copilot help' to get started." +fi From 9596516c61472dbc8379ce83b2f301912f524486 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 27 Feb 2026 01:58:01 +0000 Subject: [PATCH 39/72] Update changelog.md for version 0.0.419 --- changelog.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/changelog.md b/changelog.md index bc579e84..4253a1b1 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,18 @@ +## 0.0.419 - 2026-02-27 + +- Add /chronicle command with standup, tips, and improve subcommands powered by session history (experimental) +- Scrolling left or right no longer triggers unintended mouse button presses +- Add Ctrl+F/Ctrl+B as page down/up shortcuts for scrolling in alt-screen views +- Add --mouse/--no-mouse flag and mouse config to disable mouse mode in alt screen +- Home and End keys jump to the top and bottom of the alt-screen scroll buffer +- Add Ctrl+G keyboard shortcut for editing prompts in external editor and dismissing UI elements +- /mcp enable works for built-in servers that were auto-disabled before configuration +- CLI spinner stops and final agent response is visible after agent finishes work +- AUTO theme now uses the terminal's actual ANSI color palette for more accurate colors on any terminal theme +- MCP server env vars referenced in command, args, or cwd fields are automatically included in the server environment +- /diagnose shows a helpful message when no session has been started yet +- MCP server names now support dots, slashes, and @ characters, enabling npm-style names like @modelcontextprotocol/server and io.github/server + ## 0.0.418 - 2026-02-25 🎉 Copilot CLI is now [generally available](https://github.blog/changelog/2026-02-25-github-copilot-cli-is-now-generally-available) 🎉 From 3b7315490899c61cae6e06d3e9d86b54955c6332 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 27 Feb 2026 18:47:57 +0000 Subject: [PATCH 40/72] Update changelog.md for version 0.0.420 --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index 4253a1b1..e7b28236 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 0.0.420 - 2026-02-27 + +- Auto-update now also updates the binary executable, not just the JS package +- Plugin and marketplace git repos update correctly after force-pushes and tag-based installs +- 502 bad gateway errors are retried automatically and no longer crash the session with raw HTML output +- Copy hint shows cmd+c in Ghostty on macOS and right-click as an alternative for all terminals +- Type # to reference GitHub issues, pull requests and discussions + ## 0.0.419 - 2026-02-27 - Add /chronicle command with standup, tips, and improve subcommands powered by session history (experimental) From 689d1486a101d9752906f1c6b268eba532f915dc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 3 Mar 2026 18:12:58 +0000 Subject: [PATCH 41/72] Update changelog.md for version 0.0.421 --- changelog.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/changelog.md b/changelog.md index e7b28236..127b7a92 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,29 @@ +## 0.0.421 - 2026-03-03 + +- Autopilot permission dialog appears on first prompt submission instead of on mode switch +- AUTO theme now reads your terminal's ANSI color palette and uses it directly, so colors match your terminal theme +- Add structured form input for the ask_user tool using MCP Elicitations (experimental) +- Plugin commands read extraKnownMarketplaces from project-level .claude/settings.json for Claude compatibility +- Git hooks can detect Copilot CLI subprocesses via the COPILOT_CLI=1 environment variable to skip interactive prompts +- Spurious "write EIO" error entries no longer appear in the timeline during session resume or terminal state transitions +- Python-based MCP servers no longer time out due to buffered stdout +- Error when --model flag specifies an unavailable model +- MCP server availability correctly updates after signing in, switching accounts, or signing out +- Display clickable PR reference next to branch name in the status bar +- Add --plugin-dir flag to load a plugin from a local directory +- Mouse text selection is automatically copied to the Linux primary selection buffer (middle-click to paste) +- Fix VS Code shift+enter and ctrl+enter keybindings for multiline input +- Use consistent ~/.copilot/pkg path for auto-update instead of XDG_STATE_HOME +- ACP clients can configure reasoning effort via session config options +- Click links in the terminal to open them in your default browser +- Support repo-level config via .github/copilot/config.json for shared project settings like marketplaces and launch messages +- Streaming output no longer truncates when running in alt-screen mode +- Right-click paste no longer produces garbled text on Windows +- Shell command output on Windows no longer renders as "No changes detected" in the timeline +- GitHub API errors no longer appear as raw HTTP messages in the terminal when using the # reference picker +- Markdown tables render with proper column widths, word wrap, and Unicode borders that adapt to terminal width +- MCP elicitation form displays taller multi-line text input, hides tab bar for single-field forms, and fixes error flashing on field navigation + ## 0.0.420 - 2026-02-27 - Auto-update now also updates the binary executable, not just the JS package From 7aa08b3594adc78d034dec8f34feefc8038dad64 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 5 Mar 2026 23:51:10 +0000 Subject: [PATCH 42/72] Update changelog.md for version 0.0.422 --- changelog.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/changelog.md b/changelog.md index 127b7a92..b9eed310 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,49 @@ +## 0.0.422 - 2026-03-05 + +- Display request ID in authentication and authorization error messages to aid troubleshooting +- Load personal hooks from ~/.copilot/hooks in addition to repo-level .github/hooks +- Timeline now shows the question in a box and displays 'Making best guess on autopilot' when ask_user is auto-responded +- Add support for GPT-5.4 model +- Plugin cache automatically recovers from a corrupted or incomplete clone without manual intervention +- Show a clear, actionable error message when git is not installed and a remote plugin or marketplace is used +- Text selection persists after copying to clipboard in alt screen +- Scroll view no longer jumps to earlier messages when scrolling during response streaming or with popups open +- Add copy_on_select config option to auto-copy selected text to clipboard in alt screen mode +- IME candidate windows appear at correct cursor position in CJK input +- Add mouse scroll support to /diff in alt-screen mode +- Reduce memory usage in alt-screen mode for long sessions +- Diff mode now works correctly when git color.diff=always is configured +- Opening links on Windows correctly handles URLs with & query parameters +- @-mention file completion always reflects the current state of the working directory +- ESC key to cancel works correctly in tmux and other non-kitty terminals +- Click in the prompt input to reposition the text cursor +- Add /copy command to copy the last response to clipboard +- Links in alt-screen mode are rendered with underline styling for better visibility +- /delegate prompts for a target remote in multi-remote repositories and clarifies confirmation text +- GitHub MCP server stays enabled in repositories that have both Azure DevOps and GitHub remotes +- Colons in inline code render correctly inside markdown tables +- Pressing Ctrl+C on the help dialog now dismisses it cleanly +- Plugin-contributed LSP servers are now loaded, started, and shown in /lsp show +- Pressing Enter in required enum field now selects the highlighted option +- Hide noisy todo bookkeeping queries and show dependency details in timeline +- CLI no longer hangs for minutes when working in a directory with a large number of files +- Add --output-format json flag to emit JSONL in prompt mode for programmatic integrations +- Add exitPlanMode.request protocol method for SDK plan approval support +- Automatic notifications when background shell commands and agents complete +- GitHub MCP server connection status is accurately tracked and counted in the status indicator +- Press Ctrl+R to search command history with reverse incremental search (like Bash) +- Long diff lines no longer overflow and wrap in the diff view +- Add startup prompt hooks to auto-submit prompts or slash commands when a session starts +- Ctrl+K joins lines when cursor is at end of line, matching standard Emacs/terminal behavior +- Escape sequences split across input chunks no longer leak into text input +- Rename `launch_messages` config setting to `companyAnnouncements` +- Show a waiting message when the terminal is handed to an external editor +- Support enabledPlugins in config for automatic plugin installation at startup +- Improve key bindings in reverse history search: Ctrl+J to accept, Ctrl+G to cancel +- Rename repository config from `.github/copilot/config.json` to `settings.json` +- Support installing plugins from ssh:// URLs +- Session usage metrics (requests, tokens, code changes) are now persisted to events.jsonl after each session ends + ## 0.0.421 - 2026-03-03 - Autopilot permission dialog appears on first prompt submission instead of on mode switch From 732d8b1ad3cdb66e8718acd24a9d745debbd5533 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 6 Mar 2026 16:39:08 +0000 Subject: [PATCH 43/72] Update changelog.md for version 0.0.423 --- changelog.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/changelog.md b/changelog.md index b9eed310..ca3627e0 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,12 @@ +## 0.0.423 - 2026-03-06 + +- Users are prompted for shell commands with potentially dangerous expansion or substitution use cases, additional guardrails for malicious exploits +- Block /share gist for EMU and GHE Cloud users with clear error messaging +- Elicitation enum and boolean fields now require Enter to confirm a selection, with a ✓ indicator for confirmed values vs ❯ for the browsing cursor +- MCP servers can now request users to visit a URL for out-of-band interactions such as OAuth flows or API key entry +- Improve explore agent precision and large repository support with better context sharing +- Diff mode displays cleanly on Windows with CRLF line endings + ## 0.0.422 - 2026-03-05 - Display request ID in authentication and authorization error messages to aid troubleshooting From 6c50fd21d4fdb34470828bd86403babd7f2429b1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 6 Mar 2026 21:33:06 +0000 Subject: [PATCH 44/72] Update changelog.md for version 1.0.2 --- changelog.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/changelog.md b/changelog.md index ca3627e0..e79d35f7 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,13 @@ +## 1.0.2 - 2026-03-06 + +To commemorate GitHub Copilot CLI reaching general availability last week, we're incrementing the major version to 1.0! + +- Type 'exit' as a bare command to close the CLI +- Ask_user form now submits with Enter key and allows custom responses in enum fields +- Support 'command' field as cross-platform alias for bash/powershell in hook configs +- Hook configurations now accept timeout as alias for timeoutSec +- Fix handling of meta with control keys (including shift+enter from /terminal-setup) + ## 0.0.423 - 2026-03-06 - Users are prompted for shell commands with potentially dangerous expansion or substitution use cases, additional guardrails for malicious exploits From 28d2487331bab53f92cc72bd703ebf2c2dca6d5c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 9 Mar 2026 23:28:54 +0000 Subject: [PATCH 45/72] Update changelog.md for version 1.0.3 --- changelog.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/changelog.md b/changelog.md index e79d35f7..c58ad15d 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,33 @@ +## 1.0.3 - 2026-03-09 + +- Enable alternate screen buffer by default for staff users +- Extensions are now available as an experimental feature — ask Copilot to write custom tools and hooks for itself using @github/copilot-sdk +- Document GH_HOST, HTTP_PROXY, HTTPS_PROXY, NO_COLOR, and NO_PROXY environment variables in help +- Read MCP server configuration from .devcontainer/devcontainer.json +- Add --binary-version flag to query the CLI binary version without launching +- Add /restart command to hot restart the CLI while preserving your session +- Background task notifications display in timeline with expandable detail +- Type 'quit' to exit the CLI, in addition to 'exit' +- Add extraKnownMarketplaces repository setting to replace marketplaces +- Add Windows Terminal support to /terminal-setup command +- /reset-allowed-tools now fully undoes /allow-all and re-triggers the autopilot permission dialog +- Improved handling of batched queries in the SQL tool +- Login flow no longer hangs on Ubuntu when system keyring is unresponsive +- Terminal is properly reset when CLI crashes unexpectedly +- Table disables borders in screen reader mode to prevent announcing decorative characters +- MCP servers with non-conforming outputSchema are now accessible +- /plugin update now works for GitHub-installed plugins +- /add-dir directories persist across session changes like /clear and /resume +- Prevent env command from being treated as safe to allow without approval +- Placeholder text color displays correctly when wrapping in narrow terminals +- /plugin update now works with marketplaces defined in project settings +- Retry status messages now display to show progress during server error recovery +- Show loading spinner in diff mode while fetching changes +- Suppress /init suggestion when .github/instructions/ contains instructions +- Rename merge_strategy config to mergeStrategy for consistency +- Suppress unknown field warnings in skill and command frontmatter +- Trust safe sed commands to run without confirmation + ## 1.0.2 - 2026-03-06 To commemorate GitHub Copilot CLI reaching general availability last week, we're incrementing the major version to 1.0! From 0160eb95560d4f17b0f307677ce3d74903b52a59 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Tue, 10 Mar 2026 16:57:29 -0400 Subject: [PATCH 46/72] install: use GITHUB_TOKEN for authenticated GitHub requests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When the GITHUB_TOKEN environment variable is set, pass it as an Authorization header on curl/wget downloads and embed it in the git remote URL for ls-remote. This helps avoid rate limits and enables installation from private repositories. When GITHUB_TOKEN is unset, behavior is unchanged — the auth arrays expand to nothing and the git remote URL stays unauthenticated. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- install.sh | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index 0d7d77fe..1ae34a19 100755 --- a/install.sh +++ b/install.sh @@ -34,6 +34,16 @@ case "$(uname -m)" in *) echo "Error: Unsupported architecture $(uname -m)" >&2 ; exit 1 ;; esac +# Set up authentication for GitHub requests if GITHUB_TOKEN is available +CURL_AUTH=() +WGET_AUTH=() +GIT_REMOTE="https://github.com/github/copilot-cli" +if [ -n "$GITHUB_TOKEN" ]; then + CURL_AUTH=(-H "Authorization: token $GITHUB_TOKEN") + WGET_AUTH=(--header="Authorization: token $GITHUB_TOKEN") + GIT_REMOTE="https://x-access-token:${GITHUB_TOKEN}@github.com/github/copilot-cli" +fi + # Determine download URL based on VERSION if [ "${VERSION}" = "latest" ] || [ -z "$VERSION" ]; then DOWNLOAD_URL="https://github.com/github/copilot-cli/releases/latest/download/copilot-${PLATFORM}-${ARCH}.tar.gz" @@ -44,7 +54,7 @@ elif [ "${VERSION}" = "prerelease" ]; then echo "Error: git is required to install prerelease versions" >&2 exit 1 fi - VERSION="$(git ls-remote --tags https://github.com/github/copilot-cli | tail -1 | awk -F/ '{print $NF}')" + VERSION="$(git ls-remote --tags "$GIT_REMOTE" | tail -1 | awk -F/ '{print $NF}')" if [ -z "$VERSION" ]; then echo "Error: Could not determine prerelease version" >&2 exit 1 @@ -67,9 +77,9 @@ echo "Downloading from: $DOWNLOAD_URL" TMP_DIR="$(mktemp -d)" TMP_TARBALL="$TMP_DIR/copilot-${PLATFORM}-${ARCH}.tar.gz" if command -v curl >/dev/null 2>&1; then - curl -fsSL "$DOWNLOAD_URL" -o "$TMP_TARBALL" + curl -fsSL "${CURL_AUTH[@]}" "$DOWNLOAD_URL" -o "$TMP_TARBALL" elif command -v wget >/dev/null 2>&1; then - wget -qO "$TMP_TARBALL" "$DOWNLOAD_URL" + wget -qO "$TMP_TARBALL" "${WGET_AUTH[@]}" "$DOWNLOAD_URL" else echo "Error: Neither curl nor wget found. Please install one of them." rm -rf "$TMP_DIR" @@ -80,9 +90,9 @@ fi TMP_CHECKSUMS="$TMP_DIR/SHA256SUMS.txt" CHECKSUMS_AVAILABLE=false if command -v curl >/dev/null 2>&1; then - curl -fsSL "$CHECKSUMS_URL" -o "$TMP_CHECKSUMS" 2>/dev/null && CHECKSUMS_AVAILABLE=true + curl -fsSL "${CURL_AUTH[@]}" "$CHECKSUMS_URL" -o "$TMP_CHECKSUMS" 2>/dev/null && CHECKSUMS_AVAILABLE=true elif command -v wget >/dev/null 2>&1; then - wget -qO "$TMP_CHECKSUMS" "$CHECKSUMS_URL" 2>/dev/null && CHECKSUMS_AVAILABLE=true + wget -qO "$TMP_CHECKSUMS" "${WGET_AUTH[@]}" "$CHECKSUMS_URL" 2>/dev/null && CHECKSUMS_AVAILABLE=true fi if [ "$CHECKSUMS_AVAILABLE" = true ]; then From 9a0d581894cb6572a8760aa38f84616e79552909 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 11 Mar 2026 19:52:34 +0000 Subject: [PATCH 47/72] Update changelog.md for version 1.0.4 --- changelog.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/changelog.md b/changelog.md index c58ad15d..38151491 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,33 @@ +## 1.0.4 - 2026-03-11 + +- Add `session.shell.exec` and `session.shell.kill` RPC methods for executing shell commands with streaming stdout/stderr output +- Custom agents from --plugin-dir plugins now load correctly in ACP mode +- Adaptive color engine with dynamic color modes and interactive theme picker. Gracefully degrades on limited-color terminals and Windows +- MCP OAuth re-authentication works reliably when callback port changes or when using Microsoft Entra ID +- Replace /pr open with /pr view [local|web] to view PR status locally or open in browser +- Enables OpenTelemetry instrumentation for observability into agent sessions, LLM calls, and tool executions +- Extensions can now be written as CommonJS modules (extension.cjs) +- Show loaded extensions count in the Environment loaded startup message +- Support disableAllHooks flag to disable all hooks from a configuration file +- Support Azure DevOps repository identification in session logs +- Session export header renders each field on its own line in shared gists +- Auto-update now retries without authentication token on SAML enforcement errors +- Autopilot mode stops continuing after API errors instead of looping indefinitely +- Status line context window percentage no longer inflates across turns by using the last call's input and output tokens instead of cumulative totals +- Kitty keyboard protocol is properly disabled on suspend when using alternate screen +- Only show reasoning headers when it's the only reasoning text available. +- Terminal properly resets when CLI crashes, preventing shell corruption +- /update command automatically restarts to apply updates instead of requiring manual exit +- OAuth authentication now handles Microsoft Entra ID and other OIDC servers reliably with proper resource indicators and refresh token support +- Show individual instruction file names in /instructions picker with [external] labels for injected files +- Path permission dialog offers a one-time approval option in addition to adding the path to the allowed list +- Add --reasoning-effort CLI flag to set reasoning effort level +- Hooks can now request user confirmation before tool execution with 'ask' permission decision +- Add configure-copilot sub-agent for managing MCP servers, custom agents, and skills via the task tool +- Interactive shell initialization no longer times out on slow machines +- Faster shell commands on Windows by skipping PowerShell profile loading +- Improve CLI help documentation to use standard --option=value format and comma-separated list syntax + ## 1.0.3 - 2026-03-09 - Enable alternate screen buffer by default for staff users From 33b5f9cd1443c10990fdbe1d820fa727ee5ea37c Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Thu, 12 Mar 2026 13:22:36 -0400 Subject: [PATCH 48/72] Alter PATH for login shells, not interactive shells The installer was adding PATH exports to .bashrc/.zshrc, which are rc files for interactive shells. PATH belongs in login-shell startup files (~/.profile, ~/.bash_profile, ~/.zprofile) so it is set once per session and inherited by all child processes. --- install.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index 1ae34a19..02e5934e 100755 --- a/install.sh +++ b/install.sh @@ -151,11 +151,19 @@ if ! command -v copilot >/dev/null 2>&1; then echo "" echo "Notice: $INSTALL_DIR is not in your PATH" - # Detect shell rc file + # Detect shell profile file for PATH case "$(basename "${SHELL:-/bin/sh}")" in - zsh) RC_FILE="$HOME/.zshrc" ;; - bash) RC_FILE="$HOME/.bashrc" ;; - *) RC_FILE="$HOME/.profile" ;; + zsh) RC_FILE="$HOME/.zprofile" ;; + bash) + if [ -f "$HOME/.bash_profile" ]; then + RC_FILE="$HOME/.bash_profile" + elif [ -f "$HOME/.bash_login" ]; then + RC_FILE="$HOME/.bash_login" + else + RC_FILE="$HOME/.profile" + fi + ;; + *) RC_FILE="$HOME/.profile" ;; esac # Prompt user to add to shell rc file (only if interactive) From 10fc28466edee641b23c77353ea6f7746ebc665a Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Thu, 12 Mar 2026 14:47:49 -0400 Subject: [PATCH 49/72] Incorporate ZDOTDIR into .zprofile path Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 02e5934e..61caf872 100755 --- a/install.sh +++ b/install.sh @@ -153,7 +153,7 @@ if ! command -v copilot >/dev/null 2>&1; then # Detect shell profile file for PATH case "$(basename "${SHELL:-/bin/sh}")" in - zsh) RC_FILE="$HOME/.zprofile" ;; + zsh) RC_FILE="${ZDOTDIR:-$HOME}/.zprofile" ;; bash) if [ -f "$HOME/.bash_profile" ]; then RC_FILE="$HOME/.bash_profile" From f019a8c2a22fcdcd4bdcca9c69579d917ec3b2fe Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 13 Mar 2026 09:56:41 +0000 Subject: [PATCH 50/72] Update changelog.md for version 1.0.5 --- changelog.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/changelog.md b/changelog.md index 38151491..a05efb69 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,31 @@ +## 1.0.5 - 2026-03-13 + +- Terminal title resets to default after running /clear or /new +- Add /extensions command to view, enable, and disable CLI extensions +- @ file mentions now support paths outside the project: absolute paths (@/usr/...), home directory (@~/...), and relative parent paths (@../...) +- Toggling experimental mode with /experimental on|off automatically restarts the CLI to apply changes immediately +- Right-click paste goes to the active dialog input instead of the main conversation input +- Introducing /pr to help create and view PRs, automatically fix CI failures, address review feedback, and resolve merge conflicts +- Block network (UNC) paths to prevent credential leakage via SMB authentication +- Send follow-up messages to background agents with the write_agent tool for multi-turn conversations +- Memory storage errors now indicate when repository doesn't exist or you lack write access +- Show a clear error when a classic Personal Access Token (ghp\_) is set in environment variables instead of silently exiting +- Diff view displays correctly on Windows instead of showing corrupted/overwritten text +- Fix Kitty keyboard protocol escape sequences appearing at shutdown +- Setting claude-sonnet-4.6 as the default model is now preserved correctly +- Plugin uninstall reliably removes files using the stored install path +- Add /version command to display CLI version and check for updates from within the session +- Add experimental embedding-based dynamic retrieval of MCP and skill instructions per turn +- Syntax highlighting in /diff with support for 17 programming languages +- Add preCompact hook to run commands before context compaction starts +- Request ID from the API now appears in the timeline when errors occur after retries are exhausted +- PR descriptions with backtick-formatted code render correctly on Windows/PowerShell +- Show a helpful error message when a file path is passed as a CLI command +- Session reports an authentication error instead of hanging when the token is invalid or expired +- View tool shows partial content for large single-line files (e.g. minified JS, large JSON blobs) instead of empty output +- /changelog supports `last `, `since `, and `summarize` to browse and summarize multiple release notes at once +- Hooks config files that omit the version field are now accepted by the CLI + ## 1.0.4 - 2026-03-11 - Add `session.shell.exec` and `session.shell.kill` RPC methods for executing shell commands with streaming stdout/stderr output From 941002e717f5a3ee3ae84e2b6843c5f26ab4963c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 16 Mar 2026 22:44:32 +0000 Subject: [PATCH 51/72] Update changelog.md for version 1.0.6 --- changelog.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/changelog.md b/changelog.md index a05efb69..80ec796d 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,41 @@ +## 1.0.6 - 2026-03-16 + +- Autopilot continuation no longer gets permanently blocked after an error in a previous turn +- In autopilot, task_complete summary is now required and renders as markdown +- Input placeholder text is no longer read aloud by screen readers on every prompt submission +- Free tree-sitter WASM objects after shell command parsing to prevent memory leak +- /help dialog starts scrolled to the top in alt-screen mode +- Auto-update correctly recovers from race conditions on Windows +- CLI no longer fails to load on Windows after updating while another instance is running +- Reduce memory usage by eliminating redundant environment variable copies per child process spawn +- Remaining requests widget no longer shows inaccurate quota data for Copilot Free users +- Resolve session crashes caused by HTTP/2 connection pool race conditions when sub-agents are active +- CLI loads the latest version of itself after an auto-update +- Kill command validation no longer incorrectly blocks some legitimate commands. e.g. p.kill() in a python script +- Instruction file frontmatter applyTo field accepts both string and array values +- Improve streaming and tool-output memory usage +- Model can discover and use tools dynamically with tool search for Claude models +- Hooks fire correctly when resuming a previous session +- Prompt input in alt screen mode renders all lines without truncation +- Links and right-click paste no longer trigger twice when running in VS Code's integrated terminal +- Hook configuration files now work across VS Code, Claude Code, and the CLI without modification by accepting PascalCase event names alongside camelCase +- Native module prebuilds (e.g., conpty.node on Windows ARM64) load reliably on first launch +- Subagent elapsed time in /tasks view freezes when idle and resumes when active again +- Flags --enable-all-github-mcp-tools, --add-github-mcp-toolset, and --add-github-mcp-tool now take effect when using the SDK (ACP mode) +- Custom instruction file paths load correctly when using COPILOT_CUSTOM_INSTRUCTIONS_DIRS +- Command output is no longer lost when a command causes the shell to exit +- Plugins using .claude-plugin/plugin.json are discovered when loaded via --plugin-dir +- Fix handling of shift+enter on VS Code with old /terminal-setup config. +- Agent creation wizard shows the correct user agents directory path +- Support Open Plugin spec file locations for loading plugin and marketplace manifests +- Show friendlier error messages and provide keyboard shortcut to open event links in browsers +- Extension tools now work with the permissions system, use `skipPermission` per-tool to bypass permission prompts +- Hook config files now support Claude Code's nested matcher/hooks structure and optional type field +- Sub-agents launched by the task tool are assigned human-readable IDs based on their name (e.g., `math-helper-0`) instead of generic `agent-0` identifiers +- The create_pull_request tool now includes the PR URL in its output so the agent can share the direct link +- read_agent output includes inbound messages that triggered each turn in multi-turn agents +- Improve compatibility with the Open Plugins spec: support `.lsp.json`, PascalCase hook event names, `exclusive` path mode, and `:` namespace separator + ## 1.0.5 - 2026-03-13 - Terminal title resets to default after running /clear or /new From f42c2cc44425b76f5d49b0a54a44998fa58ca0ea Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 17 Mar 2026 17:52:06 +0000 Subject: [PATCH 52/72] Update changelog.md for version 1.0.7 --- changelog.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/changelog.md b/changelog.md index 80ec796d..304479e7 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,19 @@ +## 1.0.7 - 2026-03-17 + +- Improve color contrast across CLI themes for better readability and accessibility +- User messages display with a subtle background color for visual differentiation from assistant messages +- Add support for gpt-5.4-mini model +- Tab bar selected tab uses compact [label] style with cleaner spacing +- Add "customize" mode to system message config for section-level system prompt overrides +- Double-Esc clears input when text is present, or triggers undo when the prompt is empty, with a hint shown after the first Esc +- Session resume no longer fails with 'Session file is corrupted' for sessions created before 1.0.6 +- Branch indicator distinguishes unstaged changes (\*), staged changes (+), and untracked files (%) in the header +- Add experimental SDK session APIs to list and manage skills, MCP servers, and plugins, with optional config auto-discovery from the working directory +- Add subagentStart hook that fires when a subagent is spawned, with support for injecting additional context into the subagent's prompt +- Pro and trial users now see all models they are entitled to in the model picker +- CLI restart no longer re-sends the -i/--interactive prompt to the new session +- Resolve an edge case where auto-update could leave an incomplete package on Windows + ## 1.0.6 - 2026-03-16 - Autopilot continuation no longer gets permanently blocked after an error in a previous turn From 71cd475784459e97527a5d8bfb3930d0b24f2043 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 18 Mar 2026 19:38:23 +0000 Subject: [PATCH 53/72] Update changelog.md for version 1.0.8 --- changelog.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/changelog.md b/changelog.md index 304479e7..3b42db3b 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,20 @@ +## 1.0.8 - 2026-03-18 + +- Agent mode labels and borders display correct colors on non-truecolor terminals (tmux, SSH, screen) +- Alternate screen buffer is now enabled by default for a cleaner terminal experience +- Exit plan mode tool remains available when an extension subprocess joins an active session +- Repo-level hooks are loaded only after folder trust is confirmed, not before the trust dialog is shown +- Idle subagents no longer clutter the /tasks view — they are hidden after 2 minutes of inactivity +- Add extension mode setting to control extensibility +- MCP servers can be validated against configured registries using the experimental MCP_ALLOWLIST feature flag +- Allow --resume to accept a task ID in addition to a session ID +- Support defining hooks in settings.json, settings.local.json, and config.json +- Scroll works correctly in macOS Terminal.app and other terminals that don't support SGR mouse encoding +- Mouse scroll works correctly in tmux after returning from an external editor +- Ctrl-C in prompt mode now exits immediately instead of waiting for the request to complete +- Spinner animation no longer delays visible output from appearing in the timeline +- Dialog titles display consistently inside all dialog boxes + ## 1.0.7 - 2026-03-17 - Improve color contrast across CLI themes for better readability and accessibility From 0f8a102afb44a1e540656e05cb373cb6fb7d560b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 19 Mar 2026 03:52:37 +0000 Subject: [PATCH 54/72] Update changelog.md for version 1.0.9 --- changelog.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/changelog.md b/changelog.md index 3b42db3b..d24ada29 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,10 @@ +## 1.0.9 - 2026-03-19 + +- Spurious I/O error messages (ENOTCONN, EIO) no longer appear in the timeline during SSH disconnects or terminal closes +- Add include_gitignored config option to include gitignored files in @ file search +- Copying text on WSL correctly preserves CJK and other non-ASCII characters +- Marketplace and plugin installs from shortened URLs (e.g., aka.ms links) now work correctly + ## 1.0.8 - 2026-03-18 - Agent mode labels and borders display correct colors on non-truecolor terminals (tmux, SSH, screen) From 4b16981bb5bed352da62524a45412285b225669c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 20 Mar 2026 16:57:47 +0000 Subject: [PATCH 55/72] Update changelog.md for version 1.0.10 --- changelog.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/changelog.md b/changelog.md index d24ada29..63c6f098 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,29 @@ +## 1.0.10 - 2026-03-20 + +- Reduced memory usage when viewing large files in their entirety +- /login device flow works correctly in Codespaces and remote terminal environments +- Working directory is correctly detected when using --server mode with remote sessions +- Arrow keys work correctly in terminals using application keypad mode +- Repo hooks (.github/hooks/) now fire correctly when using prompt mode (-p flag) +- /copy writes formatted HTML to clipboard on Windows for pasting into Word, Outlook, and Teams +- SDK clients can register custom slash commands when starting or joining a session +- SDK clients can show elicitation dialogs to the user via session.ui.elicitation +- Add experimental support for multiple concurrent sessions +- Add --effort as a shorthand alias for --reasoning-effort +- Add /undo command to undo the last turn and revert file changes +- Markdown bullet lists render correctly in alt-screen mode when content contains hard line breaks +- Elicitation form shows Shift+Tab hint for navigating between fields in reverse +- Remote session URL displays as a compact clickable 'Open in browser' link instead of a duplicated raw URL +- Session history is no longer lost when exiting via /quit, Ctrl+C, or restart +- Hook matcher filters defined in nested hook structures are now correctly applied to inner hook items +- Plugins using .claude-plugin/ or .plugin/ manifest directories now load their MCP and LSP servers correctly +- /terminal-setup no longer shows a misleading error for WSL users +- Model picker reorganizes models into Available, Blocked/Disabled, and Upgrade tabs based on user plan and policy +- Workspace MCP servers from .mcp.json, .vscode/mcp.json, and devcontainer.json are now loaded only after folder trust is confirmed +- Config settings renamed to camelCase: `includeCoAuthoredBy`, `effortLevel`, `autoUpdatesChannel`, `statusLine` (old names still work) +- When copying assistant responses, the leading 2-space UI indent is stripped from selections where all selected lines share that indent +- Plugins loaded via --plugin-dir now appear in /plugin list under a separate 'External Plugins' section + ## 1.0.9 - 2026-03-19 - Spurious I/O error messages (ENOTCONN, EIO) no longer appear in the timeline during SSH disconnects or terminal closes From ab1336d6ba963d53924592b0bb2822a1911d11ec Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 23 Mar 2026 20:22:13 +0000 Subject: [PATCH 56/72] Update changelog.md for version 1.0.11 --- changelog.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/changelog.md b/changelog.md index 63c6f098..fb333652 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,22 @@ +## 1.0.11 - 2026-03-23 + +- Ensure models appear in picker correctly, display model names where possible +- Show a warning when MCP servers are blocked by policy (e.g. allowlist enforcement) +- Organization policy for third-party MCP servers is now enforced for all users +- Add ~/.agents/skills/ as a personal skill discovery directory, aligning with VS Code's GHCP4A extension default +- Extension hooks from multiple extensions now merge instead of overwriting each other or hooks from hooks.json +- sessionStart hook additionalContext is now injected into the conversation +- /clear now abandons the current session entirely, while /new starts a fresh conversation (keeping the old session backgrounded) +- GitHub MCP server user configuration is respected when connecting to remote hosts +- Terminal screen redraws correctly after process suspend and resume (Ctrl+Z / fg) +- MCP OAuth authentication works with MCP servers like the Atlassian Rovo MCP Server which support Dynamic Client Registration but host authorization metadata at a non-standard URL +- /cd keeps a separate working directory per session, restored when switching sessions +- Custom instructions, MCP servers, skills, and agents are now discovered at every directory level from the working directory up to the git root, enabling full monorepo support +- Startup 'Environment loaded' message now shows the number of loaded hooks +- Background agent progress (current intent and tool calls completed) now surfaces in read_agent and task timeout responses +- statusLine.command path now supports ~ and environment variables (e.g. $HOME, ${VAR:-default}) +- /new and /clear commands accept an optional prompt to start the new session with a first message + ## 1.0.10 - 2026-03-20 - Reduced memory usage when viewing large files in their entirety From 2a03ddf5684a10d5de8bc23023efafaceeda9d43 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 26 Mar 2026 22:19:03 +0000 Subject: [PATCH 57/72] Update changelog.md for version 1.0.12 --- changelog.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/changelog.md b/changelog.md index fb333652..d526edc7 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,33 @@ +## 1.0.12 - 2026-03-26 + +- MCP servers defined in .mcp.json start correctly when the working directory is the git root +- Clipboard copy works correctly on Windows when non-system clip.exe shadows the system one in PATH +- /diff view correctly renders all lines when intra-line highlighting is present +- Plugin hooks now receive CLAUDE_PROJECT_DIR and CLAUDE_PLUGIN_DATA environment variables, and support {{project_dir}} and {{plugin_data_dir}} template variables in hook configurations +- Workspace MCP servers are now correctly loaded and visible to the agent +- /clear preserves MCP servers in the new session +- Model display header shows the active reasoning effort level (e.g. "(high)") next to the model name +- /session rename auto-generates a session name from conversation history when called without a name argument +- Remove --alt-screen flag and alt_screen setting; alt screen is now always enabled +- OSC 8 hyperlinks are now clickable in VS Code terminals +- PowerShell /flag arguments (e.g., /all, /enum-devices) are no longer mistakenly treated as file paths +- Trusted folder access prompts no longer appear incorrectly on Windows OneDrive paths and case-insensitive filesystems +- Status line payload includes session_name field alongside session_id +- @ file picker no longer shows .git directory contents +- Scroll position stays in place when the terminal is resized +- /yolo path permissions persist after using /clear to start a new session +- Emoji characters are selected and highlighted correctly in terminal text selection +- Sessions with active work are no longer cleaned up by the stale session reaper +- Resume session restores the previously selected custom agent +- CLI no longer crashes with out-of-memory errors when running shell commands that produce high-volume output +- Pressing Escape multiple times during autopilot cancellation no longer leaves the session stuck +- Read .claude/settings.json and .claude/settings.local.json as additional repo config sources +- Model picker opens in full-screen view with inline reasoning effort adjustment using ← / → arrow keys +- OTEL hook executions are now recorded as span events instead of child spans, reducing trace clutter +- User prompt appears in the conversation immediately after pressing Enter +- /allow-all (/yolo) now supports on, off, and show subcommands to enable, disable, or check allow-all mode +- Ctrl+Y in plan mode opens the most recent research report when no plan exists yet + ## 1.0.11 - 2026-03-23 - Ensure models appear in picker correctly, display model names where possible From 3d2b5b575f1ee3cb8966e56dc895083a3d6e3d7b Mon Sep 17 00:00:00 2001 From: Daniel Bennett <8812489+gulducat@users.noreply.github.com> Date: Thu, 26 Mar 2026 18:26:10 -0400 Subject: [PATCH 58/72] Sort git tags when determining prerelease version Tags are sorted lexicographically by default, not by version, so for example right now `git ls-remote` for this repo shows: ``` $ git ls-remote --tags \ https://github.com/github/copilot-cli \ | tail -3 | awk -F/ '{print$NF}' v1.0.8 v1.0.8-0 v1.0.9 ``` With the sort option, it shows the correct latest prerelease tags: ``` $ git ls-remote --tags --sort "version:refname" \ https://github.com/github/copilot-cli \ | tail -3 | awk -F/ '{print$NF}' v1.0.12-0 v1.0.12-1 v1.0.12-2 ``` This option for git ls-remote was added in git version 2.18.0 in June 2018: https://github.com/git/git/blob/v2.18.0/Documentation/RelNotes/2.18.0.txt#L69-L70 --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 61caf872..76bc23c2 100755 --- a/install.sh +++ b/install.sh @@ -54,7 +54,7 @@ elif [ "${VERSION}" = "prerelease" ]; then echo "Error: git is required to install prerelease versions" >&2 exit 1 fi - VERSION="$(git ls-remote --tags "$GIT_REMOTE" | tail -1 | awk -F/ '{print $NF}')" + VERSION="$(git ls-remote --tags --sort "version:refname" "$GIT_REMOTE" | tail -1 | awk -F/ '{print $NF}')" if [ -z "$VERSION" ]; then echo "Error: Could not determine prerelease version" >&2 exit 1 From 07af0bc14eac67368d05118398be5c03f2d8caaa Mon Sep 17 00:00:00 2001 From: marcelsafin <179933638+marcelsafin@users.noreply.github.com> Date: Sun, 29 Mar 2026 04:31:57 +0200 Subject: [PATCH 59/72] install: add fish shell support for PATH configuration Fish shell users currently fall into the catch-all case, which writes POSIX export syntax to ~/.profile. Fish does not source ~/.profile and does not use export PATH="...:$PATH" syntax, so the PATH addition silently does nothing. Add a fish case that targets the idiomatic conf.d directory and uses fish_add_path, matching how the script already handles zsh and bash with their respective profile files and syntax. Extract the PATH command into a variable to avoid duplicating the shell-specific logic across the interactive prompt, non-interactive hint, and get-started instructions. --- install.sh | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index 76bc23c2..7904901c 100755 --- a/install.sh +++ b/install.sh @@ -152,7 +152,8 @@ if ! command -v copilot >/dev/null 2>&1; then echo "Notice: $INSTALL_DIR is not in your PATH" # Detect shell profile file for PATH - case "$(basename "${SHELL:-/bin/sh}")" in + CURRENT_SHELL="$(basename "${SHELL:-/bin/sh}")" + case "$CURRENT_SHELL" in zsh) RC_FILE="${ZDOTDIR:-$HOME}/.zprofile" ;; bash) if [ -f "$HOME/.bash_profile" ]; then @@ -163,29 +164,36 @@ if ! command -v copilot >/dev/null 2>&1; then RC_FILE="$HOME/.profile" fi ;; + fish) RC_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/fish/conf.d/copilot.fish" ;; *) RC_FILE="$HOME/.profile" ;; esac + PATH_LINE="export PATH=\"$INSTALL_DIR:\$PATH\"" + if [ "$CURRENT_SHELL" = "fish" ]; then + PATH_LINE="fish_add_path \"$INSTALL_DIR\"" + fi + # Prompt user to add to shell rc file (only if interactive) if [ -t 0 ] || [ -e /dev/tty ]; then echo "" printf "Would you like to add it to %s? [y/N] " "$RC_FILE" if read -r REPLY /dev/null; then if [ "$REPLY" = "y" ] || [ "$REPLY" = "Y" ]; then - echo "export PATH=\"$INSTALL_DIR:\$PATH\"" >> "$RC_FILE" - echo "✓ Added PATH export to $RC_FILE" + mkdir -p "$(dirname "$RC_FILE")" + echo "$PATH_LINE" >> "$RC_FILE" + echo "✓ Added PATH configuration to $RC_FILE" echo " Restart your shell or run: source $RC_FILE" fi fi else echo "" echo "To add $INSTALL_DIR to your PATH permanently, add this to $RC_FILE:" - echo " export PATH=\"$INSTALL_DIR:\$PATH\"" + echo " $PATH_LINE" fi echo "" echo "Installation complete! To get started, run:" - echo " export PATH=\"$INSTALL_DIR:\$PATH\" && copilot help" + echo " $PATH_LINE && copilot help" else echo "" echo "Installation complete! Run 'copilot help' to get started." From 177b637fa39ee0b1afefa646bbe760a45eee765d Mon Sep 17 00:00:00 2001 From: marcelsafin <179933638+marcelsafin@users.noreply.github.com> Date: Sun, 29 Mar 2026 05:25:18 +0200 Subject: [PATCH 60/72] install: use EXIT trap for temp directory cleanup Replace scattered rm -rf calls with a single EXIT trap to ensure the temp directory is always cleaned up on exit. Previously, failures in curl/wget download, tar extraction, chmod, or mkdir left temp files behind because set -e would exit before reaching manual cleanup calls. The trap fires on any exit (success or failure), so it covers all paths with one line while removing five redundant cleanup calls. --- install.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/install.sh b/install.sh index 76bc23c2..1916e2f4 100755 --- a/install.sh +++ b/install.sh @@ -75,6 +75,7 @@ echo "Downloading from: $DOWNLOAD_URL" # Download and extract with error handling TMP_DIR="$(mktemp -d)" +trap 'rm -rf -- "$TMP_DIR"' EXIT TMP_TARBALL="$TMP_DIR/copilot-${PLATFORM}-${ARCH}.tar.gz" if command -v curl >/dev/null 2>&1; then curl -fsSL "${CURL_AUTH[@]}" "$DOWNLOAD_URL" -o "$TMP_TARBALL" @@ -82,7 +83,6 @@ elif command -v wget >/dev/null 2>&1; then wget -qO "$TMP_TARBALL" "${WGET_AUTH[@]}" "$DOWNLOAD_URL" else echo "Error: Neither curl nor wget found. Please install one of them." - rm -rf "$TMP_DIR" exit 1 fi @@ -101,7 +101,6 @@ if [ "$CHECKSUMS_AVAILABLE" = true ]; then echo "✓ Checksum validated" else echo "Error: Checksum validation failed." >&2 - rm -rf "$TMP_DIR" exit 1 fi elif command -v shasum >/dev/null 2>&1; then @@ -109,7 +108,6 @@ if [ "$CHECKSUMS_AVAILABLE" = true ]; then echo "✓ Checksum validated" else echo "Error: Checksum validation failed." >&2 - rm -rf "$TMP_DIR" exit 1 fi else @@ -120,7 +118,6 @@ fi # Check that the file is a valid tarball if ! tar -tzf "$TMP_TARBALL" >/dev/null 2>&1; then echo "Error: Downloaded file is not a valid tarball or is corrupted." >&2 - rm -rf "$TMP_DIR" exit 1 fi @@ -144,7 +141,6 @@ fi tar -xz -C "$INSTALL_DIR" -f "$TMP_TARBALL" chmod +x "$INSTALL_DIR/copilot" echo "✓ GitHub Copilot CLI installed to $INSTALL_DIR/copilot" -rm -rf "$TMP_DIR" # Check if installed binary is accessible if ! command -v copilot >/dev/null 2>&1; then From 2ecd9e14fcb3a6fef86aa4dd20cd958480dc3b79 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 30 Mar 2026 17:29:46 +0000 Subject: [PATCH 61/72] Update changelog.md for version 1.0.13 --- changelog.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/changelog.md b/changelog.md index d526edc7..42375b99 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,28 @@ +## 1.0.13 - 2026-03-30 + +- Shell processes are cleaned up properly when a session ends +- Reduce CPU usage during streaming by optimizing spinner rendering and task polling +- SDK exit_plan_mode.requested event is now always emitted, regardless of whether a direct callback is configured +- MCP servers using Microsoft Entra ID authentication no longer show the consent screen on every login +- Grep and glob search results return promptly when a timeout is reached +- Keystrokes are no longer dropped when typing quickly in elicitation dialogs +- Clipboard copy on native Windows no longer includes a stray U+FEFF character at the start of pasted text +- Fixed --config-dir being ignored when resuming a session, causing paths to silently fall back to ~/.copilot +- Reduce CLI startup time by running terminal detection, auth, and git operations in parallel +- /rewind and double-Esc now open a timeline picker that can roll back to any point in conversation history, not just the previous snapshot +- MCP registry lookups are more reliable with automatic retries and request timeouts +- CLI starts faster due to V8 compile cache reducing parse and compile time on repeated invocations +- MCP servers can request LLM inference (sampling) with user approval via a new review prompt +- MCP servers blocked by allowlist policy are now hidden from /mcp show +- Reasoning effort setting now applies correctly when using Bring Your Own Model (BYOM) providers +- Ensure clear error messaging when using classic PATs +- grep tool handles large files and long lines without running out of memory +- MCP server OAuth authentication works when the CLI runs in ACP mode +- Split $BROWSER on spaces +- Pasted text is no longer corrupted when mouse support is active +- Uninstalling a marketplace plugin removes its cached data from disk +- Remove support for gemini-3-pro-preview model + ## 1.0.12 - 2026-03-26 - MCP servers defined in .mcp.json start correctly when the working directory is the git root From 65677f80017144a0803787547d3e1f647d985ca6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 31 Mar 2026 02:57:37 +0000 Subject: [PATCH 62/72] Update changelog.md for version 1.0.14 --- changelog.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/changelog.md b/changelog.md index 42375b99..2758725d 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,33 @@ +## 1.0.14 - 2026-03-31 + +- Images are correctly sent to Anthropic models when using BYOM +- Model picker selection correctly overrides the --model flag for the current session +- Terminal output no longer clears or jumps on error exit +- Shift+Enter inserts a newline in terminals with Kitty keyboard protocol support +- Show underlying error details when a Git marketplace URL fails to clone +- Temp file operations no longer trigger unnecessary permission prompts on macOS +- Allow SDK session participants to respond to elicitation requests via handlePendingElicitation API +- Shell processes are cleaned up properly when a session ends +- SDK exit_plan_mode.requested event is now always emitted, regardless of whether a direct callback is configured +- MCP servers using Microsoft Entra ID authentication no longer show the consent screen on every login +- Grep and glob search results return promptly when a timeout is reached +- Keystrokes are no longer dropped when typing quickly in elicitation dialogs +- Clipboard copy on native Windows no longer includes a stray U+FEFF character at the start of pasted text +- Fixed --config-dir being ignored when resuming a session, causing paths to silently fall back to ~/.copilot +- MCP servers blocked by allowlist policy are now hidden from /mcp show +- Reasoning effort setting now applies correctly when using Bring Your Own Model (BYOM) providers +- Ensure clear error messaging when using classic PATs +- grep tool handles large files and long lines without running out of memory +- MCP server OAuth authentication works when the CLI runs in ACP mode +- Split $BROWSER on spaces +- Pasted text is no longer corrupted when mouse support is active +- Uninstalling a marketplace plugin removes its cached data from disk +- Reduce CPU usage during streaming by optimizing spinner rendering and task polling +- Reduce CLI startup time by running terminal detection, auth, and git operations in parallel +- MCP registry lookups are more reliable with automatic retries and request timeouts +- CLI starts faster due to V8 compile cache reducing parse and compile time on repeated invocations +- Remove support for gemini-3-pro-preview model + ## 1.0.13 - 2026-03-30 - Shell processes are cleaned up properly when a session ends From c6f66703a0043da9b2020668d4145b8d72d5697b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 1 Apr 2026 17:12:54 +0000 Subject: [PATCH 63/72] Update changelog.md for version 1.0.15 --- changelog.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/changelog.md b/changelog.md index 2758725d..1797e49c 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,24 @@ +## 1.0.15 - 2026-04-01 + +- Remove support for gpt-5.1-codex, gpt-5.1-codex-mini, and gpt-5.1-codex-max models +- Copilot mascot now blinks with subtle eye animations in interactive mode +- User switcher and `/user list` display accounts in alphabetical order +- Add mcp.config.list, mcp.config.add, mcp.config.update, and mcp.config.remove server RPCs for managing persistent MCP server configuration +- Add device code flow (RFC 8628) as a fallback for MCP OAuth in headless and CI environments +- Add `/mcp auth` command and re-authentication UI for MCP OAuth servers with account switching support +- Add postToolUseFailure hooks for tool errors and make postToolUse run only after successful tool calls +- Add /share html command to export sessions and research reports as self-contained interactive HTML files +- Autopilot no longer continues after pressing Escape or Ctrl+C to cancel +- Keystrokes typed while the CLI is loading are no longer lost +- Large tool output preview shows correct character count and up to 500 characters +- Add Home/End and Page Up/Page Down navigation to the diff viewer +- CLI exits immediately after a session ends instead of waiting up to 10 seconds +- Config settings askUser, autoUpdate, storeTokenPlaintext, logLevel, skillDirectories, and disabledSkills now use camelCase names (snake_case still accepted) +- Many settings keys now prefer camelCase names (snake_case names still work) +- Ctrl+D no longer queues a message; use Ctrl+Q or Ctrl+Enter to queue +- MCP servers that are slow to connect no longer block the agent from starting +- Pasting images from the Windows clipboard now works in WSL environments + ## 1.0.14 - 2026-03-31 - Images are correctly sent to Anthropic models when using BYOM From 42474821379585e934658d0a425bb745e597b737 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 2 Apr 2026 16:52:15 +0000 Subject: [PATCH 64/72] Update changelog.md for version 1.0.16 --- changelog.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/changelog.md b/changelog.md index 1797e49c..aa93682d 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,14 @@ +## 1.0.16 - 2026-04-02 + +- SQL prompt tags no longer appear when sql tool is excluded via excludedTools or availableTools +- MCP tool calls display tool name and parameter summary in the timeline +- MCP server reconnects correctly with valid authentication when the working directory changes +- Add PermissionRequest hook to allow scripts to programmatically approve or deny tool permission requests +- Remove deprecated `marketplaces` repository setting (use `extraKnownMarketplaces` instead) +- MCP servers load correctly after login, user switch, and /mcp reload +- BYOK Anthropic provider now respects the configured maxOutputTokens limit +- Remove deprecated `marketplaces` repository setting (use `extraKnownMarketplaces` instead) + ## 1.0.15 - 2026-04-01 - Remove support for gpt-5.1-codex, gpt-5.1-codex-mini, and gpt-5.1-codex-max models From 208f5d8606119aeafba9ed9cc128aa1c394d2877 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 3 Apr 2026 00:33:39 +0000 Subject: [PATCH 65/72] Update changelog.md for version 1.0.17 --- changelog.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/changelog.md b/changelog.md index aa93682d..f9739aad 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,9 @@ +## 1.0.17 - 2026-04-03 + +- Built-in skills are now included with the CLI, starting with a guide for customizing Copilot cloud agent's environment +- MCP OAuth flows now support HTTPS redirect URIs via a self-signed certificate fallback, improving compatibility with OAuth providers that require HTTPS (e.g., Slack) +- /resume session picker loads significantly faster, especially with large session histories + ## 1.0.16 - 2026-04-02 - SQL prompt tags no longer appear when sql tool is excluded via excludedTools or availableTools From b53425de5293222fb3483e26b996629369188de1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 4 Apr 2026 04:01:13 +0000 Subject: [PATCH 66/72] Update changelog.md for version 1.0.18 --- changelog.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/changelog.md b/changelog.md index f9739aad..8b0d2959 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,10 @@ +## 1.0.18 - 2026-04-04 + +- New Critic agent automatically reviews plans and complex implementations using a complementary model to catch errors early (available in experimental mode for Claude models) +- Session resume picker correctly groups sessions by branch and repository on first use +- preToolUse hook permissionDecision 'allow' now suppresses the tool approval prompt +- Add notification hook event that fires asynchronously on shell completion, permission prompts, elicitation dialogs, and agent completion + ## 1.0.17 - 2026-04-03 - Built-in skills are now included with the CLI, starting with a guide for customizing Copilot cloud agent's environment From bd1ba52b4bf6ab928b65ffff30a9475539fca271 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 6 Apr 2026 21:43:53 +0000 Subject: [PATCH 67/72] Update changelog.md for version 1.0.19 --- changelog.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/changelog.md b/changelog.md index 8b0d2959..7b6d8c35 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,12 @@ +## 1.0.19 - 2026-04-06 + +- /mcp enable and /mcp disable now persist across sessions +- OpenTelemetry monitoring: subagent spans now use INTERNAL span kind, and chat spans include a `github.copilot.time_to_first_chunk` attribute (streaming only) +- Plugin hook scripts with missing execute permissions now run correctly on macOS +- Custom agent is properly restored when resuming a session where the agent display name differs from its filename +- Skip IDE auto-connect when session is already in use by another client +- Slash command timeline entries now include the command name (e.g., "Review", "Plan") for better context + ## 1.0.18 - 2026-04-04 - New Critic agent automatically reviews plans and complex implementations using a complementary model to catch errors early (available in experimental mode for Claude models) From 13653eacfdb3b2c703ada7bf8ed91555c126801b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 7 Apr 2026 12:20:49 +0000 Subject: [PATCH 68/72] Update changelog.md for version 1.0.20 --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index 7b6d8c35..d341888b 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 1.0.20 - 2026-04-07 + +- Add `copilot help monitoring` topic with OpenTelemetry configuration details and examples +- Spinner stays active until background agents and shell commands finish, and user input remains available throughout +- Azure OpenAI BYOK defaults to the GA versionless v1 route when no API version is configured +- Reduce UI sluggishness during live response streaming +- /yolo and --yolo now behave identically and /yolo state persists across /restart + ## 1.0.19 - 2026-04-06 - /mcp enable and /mcp disable now persist across sessions From 950711b22df012e5830ce9a45f6858697ab05c4e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 7 Apr 2026 21:34:09 +0000 Subject: [PATCH 69/72] Update changelog.md for version 1.0.21 --- changelog.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/changelog.md b/changelog.md index d341888b..e2bf052b 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,14 @@ +## 1.0.21 - 2026-04-07 + +- Add `copilot mcp` command for managing MCP servers +- Spinner no longer appears stuck when a long-running async shell command is active +- Enterprise GitHub URL input in the login flow now accepts keyboard input and submits on Enter +- Slash command picker no longer flickers or shifts the input while filtering +- Timeline no longer goes blank when content shrinks (e.g., after cancelling or tool completion) +- Plan mode timeline display shows user text without a redundant "Plan" prefix +- Reduce memory usage by automatically shutting down shell sessions that are no longer needed +- Hooks configured with PascalCase event names now receive VS Code-compatible snake_case payloads with hook_event_name, session_id, and ISO 8601 timestamps + ## 1.0.20 - 2026-04-07 - Add `copilot help monitoring` topic with OpenTelemetry configuration details and examples From e58f2875b5f5a09419eb64c65be3fff9dd63df60 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 9 Apr 2026 19:36:36 +0000 Subject: [PATCH 70/72] Update changelog.md for version 1.0.22 --- changelog.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/changelog.md b/changelog.md index e2bf052b..24ee58db 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,22 @@ +## 1.0.22 - 2026-04-09 + +- MCP tools with non-standard JSON schemas are now sanitized for compatibility with all model providers +- Better handling of large images from MCP and extension tools +- Improved rendering performance with a new simplified inline renderer +- Show a clear message to contact your organization administrator when remote sessions are blocked by policy +- Sub-agent activity no longer shows duplicated tool names (e.g. "view view the file...") +- Permission checks and other hooks now work correctly when using Anthropic models via BYOM/BYOK configuration +- Slash command picker appears above the text input for a more stable layout +- Custom agents can now declare a `skills` field to eagerly load skill content into agent context at startup +- Plugins can now display a post-install message with setup instructions after installation +- Remove .vscode/mcp.json and .devcontainer/devcontainer.json as MCP server config sources; CLI now only reads .mcp.json. A migration hint appears when .vscode/mcp.json is detected without .mcp.json. +- Plugins remain enabled across sessions and auto-install on startup based on user config +- Add sub-agent depth and concurrency limits to prevent runaway agent spawning +- Warn when resuming a session that is already in use by another CLI or application +- CLI no longer crashes on systems affected by a V8 engine bug in grapheme segmentation +- sessionStart and sessionEnd hooks fire once per session in interactive mode instead of once per prompt +- Plugin agents respect the model specified in their frontmatter + ## 1.0.21 - 2026-04-07 - Add `copilot mcp` command for managing MCP servers From 52662af2aaeefac1c4ae2c929fd2df868ea4631c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 10 Apr 2026 13:59:34 +0000 Subject: [PATCH 71/72] Update changelog.md for version 1.0.23 --- changelog.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/changelog.md b/changelog.md index 24ee58db..e48f14d5 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,16 @@ +## 1.0.23 - 2026-04-10 + +- Add --mode, --autopilot, and --plan flags to start the CLI directly in a specific agent mode +- Agent no longer hangs on the first turn when the memory backend is unavailable +- Bazel/Buck build target labels (e.g. //package:target) no longer misidentified as file paths +- Ctrl+L clears the terminal screen without clearing the conversation session +- Slash command picker shows full skill descriptions and a refined scrollbar +- /diff, /agent, /feedback, /ide, and /tuikit work while the agent is running +- Display reasoning token usage in the per-model token breakdown when nonzero +- Remote tab correctly shows Copilot coding agent tasks and supports steering via the Tasks API +- Shell output with BEL characters no longer causes repeated terminal beeping +- Migration notice for .vscode/mcp.json now includes a jq command to migrate your config to .mcp.json + ## 1.0.22 - 2026-04-09 - MCP tools with non-standard JSON schemas are now sanitized for compatibility with all model providers From 132fd0d2919495a6ca1a0e8d38f40a9b28f5782c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 10 Apr 2026 23:30:25 +0000 Subject: [PATCH 72/72] Update changelog.md for version 1.0.24 --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index e48f14d5..117c9c5d 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 1.0.24 - 2026-04-10 + +- preToolUse hooks now respect modifiedArgs/updatedInput, and additionalContext fields +- Custom agent model field now accepts display names and vendor suffixes from VS Code (e.g., "Claude Sonnet 4.5", "GPT-5.4 (copilot)") +- Terminal state (alt screen, cursor, raw mode) is restored correctly after CLI crashes like OOM or segfaults +- The --remote flag is respected when the session sync prompt appears on first run in a GitHub repo +- Redesign exit screen with Copilot mascot and cleaner usage summary layout + ## 1.0.23 - 2026-04-10 - Add --mode, --autopilot, and --plan flags to start the CLI directly in a specific agent mode