From 235e445c40f93001e1023a19f5a6b558788302ec Mon Sep 17 00:00:00 2001 From: Ryan Hecht Date: Thu, 16 Oct 2025 17:39:39 -0400 Subject: [PATCH 001/208] 0.0.343 --- changelog.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/changelog.md b/changelog.md index 55d23d29..8a101617 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,25 @@ +## 0.0.343 - 2025-10-16 + +- ``` + Added new model: + Run slash model to equip + 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` +- 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 + + ## 0.0.342 - 2025-10-15 - Overhauled our session logging format: From 3da4bd82dc733d544cd9f91fa4aa9975b0b56611 Mon Sep 17 00:00:00 2001 From: Melissa Xie Date: Fri, 17 Oct 2025 20:47:00 -0400 Subject: [PATCH 002/208] Update changelog for 0.0.344 --- changelog.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/changelog.md b/changelog.md index 8a101617..a4dde3b4 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,13 @@ +## 0.0.344 - 2025-10-17 + +- Enabled GitHub MCP server in prompt mode +- Added support to the bash tool for executing detached processes +- Added list of supported models as part of `copilot help config` text +- Fixed session abort handling to properly clean up orphaned tool call when pressing Esc or force-quitting +- Enforced minimum Node version requirement at launch +- Simplified messaging for `/terminal-setup` + + ## 0.0.343 - 2025-10-16 - ``` @@ -29,7 +39,7 @@ - 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"]` -- Added debug logging when calls to `/model` result in Copilot API errors. This should help us diagnose some policy/model access edge cases like https://github.com/github/copilot-cli/issues/268 and https://github.com/github/copilot-cli/issues/116 +- Added debug logging when calls to `/model` result in Copilot API errors. This should help us diagnose some policy/model access edge cases like https://github.com/github/copilot-cli/issues/268 and https://github.com/github/copilot-cli/issues/116 - Added `gradlew` to the list of commands whose subcommands can be whitelisted (fixes https://github.com/github/copilot-cli/issues/217#issuecomment-3393844685) - Fixed a bug where sessions could enter a stuck state after a failed MCP tool call (fixes https://github.com/github/copilot-cli/issues/312) - Made the output of `--help` text more concise @@ -47,7 +57,7 @@ - Improved debugging by including the Copilot API request ID for model calls errors and stack traces for client errors - Fixed an issue where consecutive orphaned tool calls led to a "Each `tool_use` block must have a corresponding `tool_result` block in the next message" message (fixes https://github.com/github/copilot-cli/issues/102) - Added a prompt to approve new paths in `-p` mode. Also added `--allow-all-paths` argument that approves access to all paths. -- 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). +- 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: @@ -125,7 +135,7 @@ ## 0.0.333 - 2025-10-02 -- Added image support! `@`-mention files to add them as input to the model. +- Added image support! `@`-mention files to add them as input to the model. - Improved proxy support for users on Node.JS v24+. See [this comment](https://github.com/github/copilot-cli/issues/41#issuecomment-3362444262) for more details (Fixes https://github.com/github/copilot-cli/issues/41) - Added support for directly executing shell commands and bypassing the model by prepending input with `!` (fixes https://github.com/github/copilot-cli/issues/186, https://github.com/github/copilot-cli/issues/12) - Added `/usage` slash command to provide stats about Premium request usage, session time, code changes, and per-model token use. This information is also printed at the conclusion of a session (Fixes https://github.com/github/copilot-cli/issues/27, https://github.com/github/copilot-cli/issues/121) @@ -170,7 +180,7 @@ - Improved the handling of multi-line inputs in the input box: the input text box is scrollable, limited to 10 lines. Long prompts won't take up the whole screen anymore! (This is on the way to implementing https://github.com/github/copilot-cli/issues/14) - Removed the left and right boarders from the input box. This makes it easier to copy text out of it! - Added glob matching to shell rules. When using `--allow-tool` and `--deny-tool`, you can now specify things like `shell(npm run test:*)` to match any shell commands beginning with `npm run test` -- Improved the `copilot --resume` interface with relative time display, session message count, (Fixes https://github.com/github/copilot-cli/issues/97) +- Improved the `copilot --resume` interface with relative time display, session message count, (Fixes https://github.com/github/copilot-cli/issues/97) ## 0.0.328 - 2025-09-26 From 2fc01d74235fc35240d29f80681879f32db8c336 Mon Sep 17 00:00:00 2001 From: Ryan Hecht Date: Sat, 18 Oct 2025 16:13:11 -0400 Subject: [PATCH 003/208] 0.0.345 - bugfix! --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index a4dde3b4..7ae2eb04 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +## 0.0.345 - 2025-10-18 + +- Fixed a bug where premium requests were being overcounted for some users (https://github.com/github/copilot-cli/issues/351). If you were affected, we are working on refunding your overcharged premium requests! + ## 0.0.344 - 2025-10-17 - Enabled GitHub MCP server in prompt mode From c4a82946a3bcae53f232cc91a617f2b3c5e02b4f Mon Sep 17 00:00:00 2001 From: Andy Feller Date: Sun, 19 Oct 2025 14:12:59 -0400 Subject: [PATCH 004/208] Update changelog for version 0.0.346 Added entry for version 0.0.346 detailing a bug fix related to premium request usage. --- changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changelog.md b/changelog.md index 7ae2eb04..b48e2a72 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,8 @@ +## 0.0.346 - 2025-10-19 + +- Fixed a bug where model sourced from configuration file was not accounted for correctly in estimating premium request usage + For more information, see https://github.com/github/copilot-cli/issues/351#issuecomment-3419045411 + ## 0.0.345 - 2025-10-18 - Fixed a bug where premium requests were being overcounted for some users (https://github.com/github/copilot-cli/issues/351). If you were affected, we are working on refunding your overcharged premium requests! From bce7f5a340cde6b5bcc84337241b1fb635934c35 Mon Sep 17 00:00:00 2001 From: Ryan Hecht Date: Mon, 20 Oct 2025 21:20:21 -0400 Subject: [PATCH 005/208] 0.0.347 --- changelog.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/changelog.md b/changelog.md index b48e2a72..2101e5bc 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,10 @@ +## 0.0.347 - 2025-10-20 + +- Fixed more bugs where incorrect PRU consumption stats were displayed on the frontend + For more information, see https://github.com/github/copilot-cli/issues/351#issuecomment-3423735333 +- Fixed a bug where pasted input content that was backspaced away was still sent to the model +- Improved line wrapping and alignment when rendering file diffs + ## 0.0.346 - 2025-10-19 - Fixed a bug where model sourced from configuration file was not accounted for correctly in estimating premium request usage From d73f7027316a1227027eea21bd08e8436b0f7a46 Mon Sep 17 00:00:00 2001 From: Ryan Hecht Date: Tue, 21 Oct 2025 20:51:43 -0400 Subject: [PATCH 006/208] 0.0.348 --- changelog.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/changelog.md b/changelog.md index 2101e5bc..c98feb70 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,13 @@ +## 0.0.348 - 2025-10-21 + +- Copilot's output now streams in token-by-token! This can be disabled with `--stream off` +- Made improvements to the memory footprint of Copilot CLI, especially when dealing with shell commands that produce very large outputs +- Ensured we preserve comments in VSCode config files when using `/terminal-setup` (fixes https://github.com/github/copilot-cli/issues/325) +- Bundled `node-pty` into the CLI package -- we're one step closer to implementing https://github.com/github/copilot-cli/issues/16 +- Fixed an issue where local tool calling broke sessions (fixes https://github.com/github/copilot-cli/issues/365, https://github.com/github/copilot-cli/issues/364, https://github.com/github/copilot-cli/issues/366) +- Added our LICENSE.md to our Node package (fixes https://github.com/github/copilot-cli/issues/371) +- Added debug logging to authentication status changes to get to the bottom of https://github.com/github/copilot-cli/issues/346 + ## 0.0.347 - 2025-10-20 - Fixed more bugs where incorrect PRU consumption stats were displayed on the frontend From dd7b1bab90149e4d592f2c4c13bde56eb373d062 Mon Sep 17 00:00:00 2001 From: Ryan Hecht Date: Wed, 22 Oct 2025 18:05:45 -0400 Subject: [PATCH 007/208] 0.0.349 --- changelog.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/changelog.md b/changelog.md index c98feb70..07214a68 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,12 @@ +## 0.0.349 - 2025-10-22 + +- The model can now call multiple tools in parallel. Each tool must be confirmed in advance. This behavior can be disabled with the `--disable-parallel-tools-execution` flag +- Added `/quit` as an alias of `/exit` (fixes https://github.com/github/copilot-cli/issues/357) +- Fixed a bug where every streamed output chunk was sent back to the model as part of the conversation (fixes https://github.com/github/copilot-cli/issues/379) +- Ensure that environment variables are expanded before running path permission checks +- Fixed a bug where Ctrl+K deleted to the end of the visual line in the input box rather than the logical line +- Added the temp directory to the paths that the model has access to by default (fixes https://github.com/github/copilot-cli/issues/306) + ## 0.0.348 - 2025-10-21 - Copilot's output now streams in token-by-token! This can be disabled with `--stream off` From 214401ffa9fe4acc28c456a5436a533cee30a885 Mon Sep 17 00:00:00 2001 From: Ryan Hecht Date: Thu, 23 Oct 2025 20:32:24 -0400 Subject: [PATCH 008/208] 0.0.350 --- changelog.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/changelog.md b/changelog.md index 07214a68..3b005450 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,36 @@ +## 0.0.350 - 2025-10-23 + +- To conserve context window space, we've limited the list of tools available to the default GitHub MCP server. In our tests, the model will use the [GitHub CLI, `gh`](https://github.com/cli/cli) (if installed) in lieu of missing MCP tools. We added an `--enable-all-github-mcp-tools` if you wish to turn on all available tools. +Default available tools are: + - Code & Repo navigation + - get_file_contents + - search_code + - search_repositories + - list_branches + - list_commits + - get_commit + - Issue Management + - get_issue + - list_issues + - get_issue_comments + - search_issues + - PR Management + - pull_request_read + - list_pull_requests + - search_pull_requests + - Workflow Info + - list_workflows + - list_workflow_runs + - get_workflow_run + - get_job_logs + - get_workflow_run_logs + - Misc search + - user_search +- Bundled `sharp` dependency into the CLI package -- we're one step closer to implementing https://github.com/github/copilot-cli/issues/16, and this fixes some startup blockers on Windows (fixes https://github.com/github/copilot-cli/issues/309 & https://github.com/github/copilot-cli/issues/287) +- Fixed a bug where input tokens were not tracked properly (Fixes https://github.com/github/copilot-cli/issues/337) +- Fixed a bug where MCP tools with arguments would fail with streaming enabled +- Added additional debug logging that will help us investigate https://github.com/github/copilot-cli/issues/346 + ## 0.0.349 - 2025-10-22 - The model can now call multiple tools in parallel. Each tool must be confirmed in advance. This behavior can be disabled with the `--disable-parallel-tools-execution` flag From 27246739496d0a662a1c37959df3268d680450f0 Mon Sep 17 00:00:00 2001 From: Ryan Hecht Date: Fri, 24 Oct 2025 18:47:33 -0400 Subject: [PATCH 009/208] 0.0.351 --- changelog.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/changelog.md b/changelog.md index 3b005450..a3cc68e7 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,13 @@ +## 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) +- 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/)! + ## 0.0.350 - 2025-10-23 - To conserve context window space, we've limited the list of tools available to the default GitHub MCP server. In our tests, the model will use the [GitHub CLI, `gh`](https://github.com/cli/cli) (if installed) in lieu of missing MCP tools. We added an `--enable-all-github-mcp-tools` if you wish to turn on all available tools. From 9eb269704b944e0365f2e4b8cd842468385a0cb9 Mon Sep 17 00:00:00 2001 From: Andy Feller Date: Mon, 27 Oct 2025 15:59:41 -0400 Subject: [PATCH 010/208] Update changelog for version 0.0.352 --- changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changelog.md b/changelog.md index a3cc68e7..d0acb43b 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,8 @@ +## 0.0.352 - 2025-10-27 + +- Improve handling of MCP tools containing slashes +- Improve error message from /model command when using an unsupported model + ## 0.0.351 - 2025-10-24 - Improved our path detection heuristic to avoid various annoying, unnecessary permissions requests: From fea0e8da41d7e07f7d14dc12dadbd3494d54740f Mon Sep 17 00:00:00 2001 From: Andy Feller Date: Mon, 27 Oct 2025 16:00:31 -0400 Subject: [PATCH 011/208] Fix formatting of changelog entry for clarity --- changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index d0acb43b..8cd506d7 100644 --- a/changelog.md +++ b/changelog.md @@ -1,7 +1,7 @@ ## 0.0.352 - 2025-10-27 - Improve handling of MCP tools containing slashes -- Improve error message from /model command when using an unsupported model +- Improve error message from `/model ` command when using an unsupported model ## 0.0.351 - 2025-10-24 From 0d2c9de9632b31219ff93413b2d8ebe8c4909e2a Mon Sep 17 00:00:00 2001 From: Andy Feller Date: Tue, 28 Oct 2025 13:06:34 -0400 Subject: [PATCH 012/208] Update changelog for custom agents and /delegate command Added support for custom agents and a new /delegate command for task delegation. --- changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changelog.md b/changelog.md index 8cd506d7..4dd5b023 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,8 @@ +## 0.0.353 - 2025-10-28 + +- Added support for custom agents. Custom agent definitions are pulled from `~/.copilot/agents`, `.github/agents` in your repository, or your organization's `.github` repository. You can explicitly invoke an agent with the `/agent` slash command interactively or `--agent ` noninteractively. Agents are also provided as tools that the model can call during completion of a task +- Added a `/delegate` command to delegate a task asynchronously to Copilot coding agent. Any unstaged changes will be committed to a new branch, a PR will be opened in your GitHub repository, and Copilot will complete work in the background. + ## 0.0.352 - 2025-10-27 - Improve handling of MCP tools containing slashes From 7dc8c5ba3575471b08ba898cc7542b199063b39f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 3 Nov 2025 23:04:06 +0000 Subject: [PATCH 013/208] Update CHANGELOG.md for version 0.0.354 --- CHANGELOG.md | 265 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 265 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..778acea7 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,265 @@ +## 0.0.354 - 2025-11-03 + +- Exit with nonzero code when `-p` mode fails due to LLM backend errors (auth failures, quota exhaustion, network issues) +- Support for MCP server tool notifications +- Support for `COPILOT_GITHUB_TOKEN` environment variable for authentication (takes precedence over `GH_TOKEN`) +- Improved shell command safety with better heredoc handling outside of commands +- Diff hunk lines now properly fill the width of the diff box +- MCP servers in GitHub Actions environments automatically use `GITHUB_WORKSPACE` as working directory +- `/delegate` command now works correctly when no local changes exist +- Custom agents with special characters in filenames no longer fail +- Better error messages when using unsupported models with `/model` command +- Alternative model providers now work correctly when using different OpenAI base URLs + +## 0.0.353 - 2025-10-28 + +- Added support for custom agents. Custom agent definitions are pulled from `~/.copilot/agents`, `.github/agents` in your repository, or your organization's `.github` repository. You can explicitly invoke an agent with the `/agent` slash command interactively or `--agent ` noninteractively. Agents are also provided as tools that the model can call during completion of a task +- Added a `/delegate` command to delegate a task asynchronously to Copilot coding agent. Any unstaged changes will be committed to a new branch, a PR will be opened in your GitHub repository, and Copilot will complete work in the background. + +## 0.0.352 - 2025-10-27 + +- Improve handling of MCP tools containing slashes +- Improve error message from `/model ` command when using an unsupported model + +## 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) +- 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/)! + +## 0.0.350 - 2025-10-23 + +- To conserve context window space, we've limited the list of tools available to the default GitHub MCP server. In our tests, the model will use the [GitHub CLI, `gh`](https://github.com/cli/cli) (if installed) in lieu of missing MCP tools. We added an `--enable-all-github-mcp-tools` if you wish to turn on all available tools. + Default available tools are: - Code & Repo navigation - get_file_contents - search_code - search_repositories - list_branches - list_commits - get_commit - Issue Management - get_issue - list_issues - get_issue_comments - search_issues - PR Management - pull_request_read - list_pull_requests - search_pull_requests - Workflow Info - list_workflows - list_workflow_runs - get_workflow_run - get_job_logs - get_workflow_run_logs - Misc search - user_search +- Bundled `sharp` dependency into the CLI package -- we're one step closer to implementing https://github.com/github/copilot-cli/issues/16, and this fixes some startup blockers on Windows (fixes https://github.com/github/copilot-cli/issues/309 & https://github.com/github/copilot-cli/issues/287) +- Fixed a bug where input tokens were not tracked properly (Fixes https://github.com/github/copilot-cli/issues/337) +- Fixed a bug where MCP tools with arguments would fail with streaming enabled +- Added additional debug logging that will help us investigate https://github.com/github/copilot-cli/issues/346 + +## 0.0.349 - 2025-10-22 + +- The model can now call multiple tools in parallel. Each tool must be confirmed in advance. This behavior can be disabled with the `--disable-parallel-tools-execution` flag +- Added `/quit` as an alias of `/exit` (fixes https://github.com/github/copilot-cli/issues/357) +- Fixed a bug where every streamed output chunk was sent back to the model as part of the conversation (fixes https://github.com/github/copilot-cli/issues/379) +- Ensure that environment variables are expanded before running path permission checks +- Fixed a bug where Ctrl+K deleted to the end of the visual line in the input box rather than the logical line +- Added the temp directory to the paths that the model has access to by default (fixes https://github.com/github/copilot-cli/issues/306) + +## 0.0.348 - 2025-10-21 + +- Copilot's output now streams in token-by-token! This can be disabled with `--stream off` +- Made improvements to the memory footprint of Copilot CLI, especially when dealing with shell commands that produce very large outputs +- Ensured we preserve comments in VSCode config files when using `/terminal-setup` (fixes https://github.com/github/copilot-cli/issues/325) +- Bundled `node-pty` into the CLI package -- we're one step closer to implementing https://github.com/github/copilot-cli/issues/16 +- Fixed an issue where local tool calling broke sessions (fixes https://github.com/github/copilot-cli/issues/365, https://github.com/github/copilot-cli/issues/364, https://github.com/github/copilot-cli/issues/366) +- Added our LICENSE.md to our Node package (fixes https://github.com/github/copilot-cli/issues/371) +- Added debug logging to authentication status changes to get to the bottom of https://github.com/github/copilot-cli/issues/346 + +## 0.0.347 - 2025-10-20 + +- Fixed more bugs where incorrect PRU consumption stats were displayed on the frontend + For more information, see https://github.com/github/copilot-cli/issues/351#issuecomment-3423735333 +- Fixed a bug where pasted input content that was backspaced away was still sent to the model +- Improved line wrapping and alignment when rendering file diffs + +## 0.0.346 - 2025-10-19 + +- Fixed a bug where model sourced from configuration file was not accounted for correctly in estimating premium request usage + For more information, see https://github.com/github/copilot-cli/issues/351#issuecomment-3419045411 + +## 0.0.345 - 2025-10-18 + +- Fixed a bug where premium requests were being overcounted for some users (https://github.com/github/copilot-cli/issues/351). If you were affected, we are working on refunding your overcharged premium requests! + +## 0.0.344 - 2025-10-17 + +- Enabled GitHub MCP server in prompt mode +- Added support to the bash tool for executing detached processes +- Added list of supported models as part of `copilot help config` text +- Fixed session abort handling to properly clean up orphaned tool call when pressing Esc or force-quitting +- Enforced minimum Node version requirement at launch +- Simplified messaging for `/terminal-setup` + +## 0.0.343 - 2025-10-16 + +- ``` + Added new model: + Run slash model to equip + 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` +- 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 + +## 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` +- 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"]` +- Added debug logging when calls to `/model` result in Copilot API errors. This should help us diagnose some policy/model access edge cases like https://github.com/github/copilot-cli/issues/268 and https://github.com/github/copilot-cli/issues/116 +- Added `gradlew` to the list of commands whose subcommands can be whitelisted (fixes https://github.com/github/copilot-cli/issues/217#issuecomment-3393844685) +- Fixed a bug where sessions could enter a stuck state after a failed MCP tool call (fixes https://github.com/github/copilot-cli/issues/312) +- Made the output of `--help` text more concise + +## 0.0.341 - 2025-10-14 + +- Added `/terminal-setup` command to set up multi-line input on terminals not implementing the kitty protocol +- Fixed a bug where rejecting an MCP tool call would reject all future tool calls (fixes https://github.com/github/copilot-cli/issues/290) +- Fixed a regression where calling `/model` with an argument did not work properly +- Added each model's premium request multiplier to the `/model` list (currently, all our supported models are 1x) + +## 0.0.340 - 2025-10-13 + +- Removed the "Windows support is experimental" warning -- we've made some big strides in improving Windows support the last two weeks! Please continue to report any issues/feedback +- Improved debugging by including the Copilot API request ID for model calls errors and stack traces for client errors +- Fixed an issue where consecutive orphaned tool calls led to a "Each `tool_use` block must have a corresponding `tool_result` block in the next message" message (fixes https://github.com/github/copilot-cli/issues/102) +- Added a prompt to approve new paths in `-p` mode. Also added `--allow-all-paths` argument that approves access to all paths. +- 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: + + ```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: + + ```json + { + "env": { + "GITHUB_ACCESS_TOKEN": "${GITHUB_TOKEN}" + } + } + ``` + +## 0.0.339 - 2025-10-10 + +- Improved argument input to MCP servers in `/mcp add` -- previously, users had to use comma-separated syntax to specify arguments. Now, the "Command" field allows users to input the full command to start the server as if they were running it in a shell +- Fixed a bug when using the Kitty protocol that led to text containing `u` to not paste correctly. Kitty protocol support is still behind the `COPILOT_KITTY` environment variable. (Fixes https://github.com/github/copilot-cli/issues/259) +- Fixed a bug when using the Kitty protocol that led to the process hanging in VSCode terminal on Windows. Kitty protocol support is still behind the `COPILOT_KITTY` environment variable. (Fixes https://github.com/github/copilot-cli/issues/257) +- Improved the error handling in the `/model` picker when no models are available (fixes https://github.com/github/copilot-cli/issues/229) + +## 0.0.338 - 2025-10-09 + +- Moved Kitty protocol support behind the `COPILOT_KITTY` environment variable due to observed regressions (https://github.com/github/copilot-cli/issues/257, https://github.com/github/copilot-cli/issues/259) +- Fixed a wrapping issue in multi-line prompts with empty lines + +## 0.0.337 - 2025-10-08 + +- Added validation for MCP server names (fixes https://github.com/github/copilot-cli/issues/110) +- Added support for Ctrl+B and Ctrl+F for moving cursor back and forward (fixes https://github.com/github/copilot-cli/issues/214) +- Added support for multi-line input for terminals that support the [Kitty protocol](https://sw.kovidgoyal.net/kitty/keyboard-protocol/) (partially fixes https://github.com/github/copilot-cli/issues/14 -- broader terminal support coming soon!) +- Updated the OAuth login UI to begin polling as soon as the device code is generated (this will _more solidly_ fix SSH edge-cases as described in https://github.com/github/copilot-cli/issues/89) + +## 0.0.336 - 2025-10-07 + +- Enabled proxy support via HTTPS_PROXY/HTTP_PROXY environment variables regardless of Node version (Fixes https://github.com/github/copilot-cli/issues/41) +- Significantly reduced token consumption, round trips per problem, and time to result. We'll share more specific data in our weekly changelog on Friday! +- Improved file write performances (especially on Windows) by not relying on the shell to fetch the current working directory +- Fixed a bug where `/clear` did not properly reset the context truncation tracking state +- Hid the "Welcome to GitHub Copilot CLI" welcome message on session resumption and `/clear` for a cleaner look +- Improved the alignment of tables where the scrollbar is present +- Improved the output of `--help` by making it more concise +- Added a prompt for users who launch with `--screen-reader` to persistently save this preference +- Potentially improved flickering in some cases; we're still working on this! + +## 0.0.335 - 2025-10-06 + +- Improved visibility into file edits by showing file diffs in the timeline by default, without the need to Ctrl+R +- Improved slash command input by showing argument hints in the input box +- Improved the display of the interface in windows less than 80 columns wide +- Reduced the number of colors and improved the spacing of Markdown rendering +- Added a warning when attempting to use proxy support in an environment where it won't work (Node <24, required environment variables not set) (A more permanent fix for https://github.com/github/copilot-cli/issues/41 is coming ~tomorrow) +- Updated the context truncation message's color from an error color to a warning color +- Fixed a bug where `copilot` logs might not have been properly created on Windows +- Fixed a bug where Powershell users with custom profiles might have had issues running commands (Fixes https://github.com/github/copilot-cli/issues/196) +- Fixed a bug where prompts were truncated after pasting and other edge cases (Fixes https://github.com/github/copilot-cli/issues/208, https://github.com/github/copilot-cli/issues/218) +- Fixed a bug where users would see a login prompt on startup despite being logged in (fixes https://github.com/github/copilot-cli/issues/202) +- Fixed a bug where some SSH users in certain environments were unable to get the OAuth login link and had their processes hang trying to open a browser (fixes https://github.com/github/copilot-cli/issues/89) + +## 0.0.334 - 2025-10-03 + +- Improved the experience of pasting large content: when pasting more than 10 lines, it's displayed as a compact token like `[Paste #1 - 15 lines]` instead of flooding the terminal. +- Added a warning when conversation context approaches ≤20% remaining of the model's limit that truncation will soon occur. At this point, we recommend you begin a new session (improves https://github.com/github/copilot-cli/issues/29) +- Removed the on-exit usage stats from the persisted session history +- Added the current version to startup logs to aid in bug reporting +- Removed cycling through TAB autocomplete items if an argument is present. This prevents running `/cwd /path/to/whatever`, hitting `TAB`, then seeing `/clear` autocomplete + +## 0.0.333 - 2025-10-02 + +- Added image support! `@`-mention files to add them as input to the model. +- Improved proxy support for users on Node.JS v24+. See [this comment](https://github.com/github/copilot-cli/issues/41#issuecomment-3362444262) for more details (Fixes https://github.com/github/copilot-cli/issues/41) +- Added support for directly executing shell commands and bypassing the model by prepending input with `!` (fixes https://github.com/github/copilot-cli/issues/186, https://github.com/github/copilot-cli/issues/12) +- Added `/usage` slash command to provide stats about Premium request usage, session time, code changes, and per-model token use. This information is also printed at the conclusion of a session (Fixes https://github.com/github/copilot-cli/issues/27, https://github.com/github/copilot-cli/issues/121) +- Improved `--screen-reader` mode by replacing icons in the timeline with informative labels +- Added a `--continue` flag to resume the most recently closed session +- Updated the `/clear` command to properly clear old timeline entries/session information (Fixes https://github.com/github/copilot-cli/issues/170) + +## 0.0.332 - 2025-10-01 + +- Switched to using per-subscription Copilot API endpoints in accordance with [GitHub's docs](https://docs.github.com/en/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-access/manage-network-access) (fixes https://github.com/github/copilot-cli/issues/76) +- Fixed a bug where `/user [list | show | switch]` did not include users signed in from all authentication modes (fixes https://github.com/github/copilot-cli/issues/58) +- Fixed a bug where switching to another user with `/user switch` did not take effect in the GitHub MCP server +- Improved the screenreader experience by disabling the scrollbar in the `@` file picker, the `--resume` session picker, and the `/` command picker +- Improved the polish of the scrollbar container (increased the width, reduced the opacity of the gutter) +- Minor visual improvements to the input area (moved the current model indicator to the right so it's not cramped with the CWD, improved the positioning of the file picker's "indexing" indicator, improved hint formatting in completion menus) +- Improved Markdown legibility by excluding `#` prefixes in headings +- Improved how we extract paths from shell commands for permission handling (might fix https://github.com/github/copilot-cli/issues/159, https://github.com/github/copilot-cli/issues/67) + +## 0.0.331 - 2025-10-01 + +- Improved the information density of file read/edit timeline events +- Fixed an inaccuracy in the `--banner` help text; it previously implied that it would persistently change the configuration to always show the startup banner +- Improved the `/model`s list to ensure that a user only sees models they have access to use -- previously, if a user tries to use a model they do not have access to (because of their Copilot plan, their geographic region, etc), they received a `model_not_supported` error. This should prevent that by not even showing such models as options in the list (Fixes https://github.com/github/copilot-cli/issues/112, https://github.com/github/copilot-cli/issues/85, https://github.com/github/copilot-cli/issues/40) +- Fixed a bug where pressing down arrow in a multi-line prompt would wrap around to the first line (This is on the way to implementing https://github.com/github/copilot-cli/issues/14) +- Added a scrollbar to the `@` file mentioning picker and increased the size of the active buffer to 10 items +- Improved the experience of writing prompts while the agent is running -- up/down arrows will now correctly navigate between options in the `@` and `/` menus + +## 0.0.330 - 2025-09-29 + +- Changed the default model back to Sonnet 4 since Sonnet 4.5 hasn't rolled out to all users yet. Sonnet 4.5 is still available from the `/model` slash command + +## 0.0.329 - 2025-09-29 + +- 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 +- 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 +- Improved word motion logic to better detect newlines: using word motion keys will now correctly move to the first word on a line +- Improved the handling of multi-line inputs in the input box: the input text box is scrollable, limited to 10 lines. Long prompts won't take up the whole screen anymore! (This is on the way to implementing https://github.com/github/copilot-cli/issues/14) +- Removed the left and right borders from the input box. This makes it easier to copy text out of it! +- Added glob matching to shell rules. When using `--allow-tool` and `--deny-tool`, you can now specify things like `shell(npm run test:*)` to match any shell commands beginning with `npm run test` +- Improved the `copilot --resume` interface with relative time display, session message count, (Fixes https://github.com/github/copilot-cli/issues/97) + +## 0.0.328 - 2025-09-26 + +- Improved error message received when Copilot CLI is blocked by organization policy (fixes https://github.com/github/copilot-cli/issues/18 ) +- Improved the error message received when using a PAT that is missing the "Copilot Requests" permission (fixes https://github.com/github/copilot-cli/issues/46 ) +- Improved the output of `/user list` to make it clearer which is the current user +- Improved PowerShell parsing of `ForEach-Object` and detection of command name expressions (e.g.,`& $someCommand`) From 081700835bb07b796429809736d8622f15dee31c Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Mon, 3 Nov 2025 18:18:46 -0500 Subject: [PATCH 014/208] Update changelog for version 0.0.354 --- changelog.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/changelog.md b/changelog.md index 4dd5b023..6d6fdc66 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,16 @@ +## 0.0.354 - 2025-11-03 + +- Exit with nonzero code when `-p` mode fails due to LLM backend errors (auth failures, quota exhaustion, network issues) +- Support for MCP server tool notifications +- Support for `COPILOT_GITHUB_TOKEN` environment variable for authentication (takes precedence over `GH_TOKEN`) +- Improved shell command safety with better heredoc handling outside of commands +- Diff hunk lines now properly fill the width of the diff box +- MCP servers in GitHub Actions environments automatically use `GITHUB_WORKSPACE` as working directory +- `/delegate` command now works correctly when no local changes exist +- Custom agents with special characters in filenames no longer fail +- Better error messages when using unsupported models with `/model` command +- Alternative model providers now work correctly when using different OpenAI base URLs + ## 0.0.353 - 2025-10-28 - Added support for custom agents. Custom agent definitions are pulled from `~/.copilot/agents`, `.github/agents` in your repository, or your organization's `.github` repository. You can explicitly invoke an agent with the `/agent` slash command interactively or `--agent ` noninteractively. Agents are also provided as tools that the model can call during completion of a task From db7c66de3336ccbe055a8313dc096c93c3e60e23 Mon Sep 17 00:00:00 2001 From: tidy-dev <75402236+tidy-dev@users.noreply.github.com> Date: Mon, 3 Nov 2025 18:19:09 -0500 Subject: [PATCH 015/208] Delete CHANGELOG.md --- CHANGELOG.md | 265 --------------------------------------------------- 1 file changed, 265 deletions(-) delete mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 778acea7..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,265 +0,0 @@ -## 0.0.354 - 2025-11-03 - -- Exit with nonzero code when `-p` mode fails due to LLM backend errors (auth failures, quota exhaustion, network issues) -- Support for MCP server tool notifications -- Support for `COPILOT_GITHUB_TOKEN` environment variable for authentication (takes precedence over `GH_TOKEN`) -- Improved shell command safety with better heredoc handling outside of commands -- Diff hunk lines now properly fill the width of the diff box -- MCP servers in GitHub Actions environments automatically use `GITHUB_WORKSPACE` as working directory -- `/delegate` command now works correctly when no local changes exist -- Custom agents with special characters in filenames no longer fail -- Better error messages when using unsupported models with `/model` command -- Alternative model providers now work correctly when using different OpenAI base URLs - -## 0.0.353 - 2025-10-28 - -- Added support for custom agents. Custom agent definitions are pulled from `~/.copilot/agents`, `.github/agents` in your repository, or your organization's `.github` repository. You can explicitly invoke an agent with the `/agent` slash command interactively or `--agent ` noninteractively. Agents are also provided as tools that the model can call during completion of a task -- Added a `/delegate` command to delegate a task asynchronously to Copilot coding agent. Any unstaged changes will be committed to a new branch, a PR will be opened in your GitHub repository, and Copilot will complete work in the background. - -## 0.0.352 - 2025-10-27 - -- Improve handling of MCP tools containing slashes -- Improve error message from `/model ` command when using an unsupported model - -## 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) -- 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/)! - -## 0.0.350 - 2025-10-23 - -- To conserve context window space, we've limited the list of tools available to the default GitHub MCP server. In our tests, the model will use the [GitHub CLI, `gh`](https://github.com/cli/cli) (if installed) in lieu of missing MCP tools. We added an `--enable-all-github-mcp-tools` if you wish to turn on all available tools. - Default available tools are: - Code & Repo navigation - get_file_contents - search_code - search_repositories - list_branches - list_commits - get_commit - Issue Management - get_issue - list_issues - get_issue_comments - search_issues - PR Management - pull_request_read - list_pull_requests - search_pull_requests - Workflow Info - list_workflows - list_workflow_runs - get_workflow_run - get_job_logs - get_workflow_run_logs - Misc search - user_search -- Bundled `sharp` dependency into the CLI package -- we're one step closer to implementing https://github.com/github/copilot-cli/issues/16, and this fixes some startup blockers on Windows (fixes https://github.com/github/copilot-cli/issues/309 & https://github.com/github/copilot-cli/issues/287) -- Fixed a bug where input tokens were not tracked properly (Fixes https://github.com/github/copilot-cli/issues/337) -- Fixed a bug where MCP tools with arguments would fail with streaming enabled -- Added additional debug logging that will help us investigate https://github.com/github/copilot-cli/issues/346 - -## 0.0.349 - 2025-10-22 - -- The model can now call multiple tools in parallel. Each tool must be confirmed in advance. This behavior can be disabled with the `--disable-parallel-tools-execution` flag -- Added `/quit` as an alias of `/exit` (fixes https://github.com/github/copilot-cli/issues/357) -- Fixed a bug where every streamed output chunk was sent back to the model as part of the conversation (fixes https://github.com/github/copilot-cli/issues/379) -- Ensure that environment variables are expanded before running path permission checks -- Fixed a bug where Ctrl+K deleted to the end of the visual line in the input box rather than the logical line -- Added the temp directory to the paths that the model has access to by default (fixes https://github.com/github/copilot-cli/issues/306) - -## 0.0.348 - 2025-10-21 - -- Copilot's output now streams in token-by-token! This can be disabled with `--stream off` -- Made improvements to the memory footprint of Copilot CLI, especially when dealing with shell commands that produce very large outputs -- Ensured we preserve comments in VSCode config files when using `/terminal-setup` (fixes https://github.com/github/copilot-cli/issues/325) -- Bundled `node-pty` into the CLI package -- we're one step closer to implementing https://github.com/github/copilot-cli/issues/16 -- Fixed an issue where local tool calling broke sessions (fixes https://github.com/github/copilot-cli/issues/365, https://github.com/github/copilot-cli/issues/364, https://github.com/github/copilot-cli/issues/366) -- Added our LICENSE.md to our Node package (fixes https://github.com/github/copilot-cli/issues/371) -- Added debug logging to authentication status changes to get to the bottom of https://github.com/github/copilot-cli/issues/346 - -## 0.0.347 - 2025-10-20 - -- Fixed more bugs where incorrect PRU consumption stats were displayed on the frontend - For more information, see https://github.com/github/copilot-cli/issues/351#issuecomment-3423735333 -- Fixed a bug where pasted input content that was backspaced away was still sent to the model -- Improved line wrapping and alignment when rendering file diffs - -## 0.0.346 - 2025-10-19 - -- Fixed a bug where model sourced from configuration file was not accounted for correctly in estimating premium request usage - For more information, see https://github.com/github/copilot-cli/issues/351#issuecomment-3419045411 - -## 0.0.345 - 2025-10-18 - -- Fixed a bug where premium requests were being overcounted for some users (https://github.com/github/copilot-cli/issues/351). If you were affected, we are working on refunding your overcharged premium requests! - -## 0.0.344 - 2025-10-17 - -- Enabled GitHub MCP server in prompt mode -- Added support to the bash tool for executing detached processes -- Added list of supported models as part of `copilot help config` text -- Fixed session abort handling to properly clean up orphaned tool call when pressing Esc or force-quitting -- Enforced minimum Node version requirement at launch -- Simplified messaging for `/terminal-setup` - -## 0.0.343 - 2025-10-16 - -- ``` - Added new model: - Run slash model to equip - 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` -- 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 - -## 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` -- 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"]` -- Added debug logging when calls to `/model` result in Copilot API errors. This should help us diagnose some policy/model access edge cases like https://github.com/github/copilot-cli/issues/268 and https://github.com/github/copilot-cli/issues/116 -- Added `gradlew` to the list of commands whose subcommands can be whitelisted (fixes https://github.com/github/copilot-cli/issues/217#issuecomment-3393844685) -- Fixed a bug where sessions could enter a stuck state after a failed MCP tool call (fixes https://github.com/github/copilot-cli/issues/312) -- Made the output of `--help` text more concise - -## 0.0.341 - 2025-10-14 - -- Added `/terminal-setup` command to set up multi-line input on terminals not implementing the kitty protocol -- Fixed a bug where rejecting an MCP tool call would reject all future tool calls (fixes https://github.com/github/copilot-cli/issues/290) -- Fixed a regression where calling `/model` with an argument did not work properly -- Added each model's premium request multiplier to the `/model` list (currently, all our supported models are 1x) - -## 0.0.340 - 2025-10-13 - -- Removed the "Windows support is experimental" warning -- we've made some big strides in improving Windows support the last two weeks! Please continue to report any issues/feedback -- Improved debugging by including the Copilot API request ID for model calls errors and stack traces for client errors -- Fixed an issue where consecutive orphaned tool calls led to a "Each `tool_use` block must have a corresponding `tool_result` block in the next message" message (fixes https://github.com/github/copilot-cli/issues/102) -- Added a prompt to approve new paths in `-p` mode. Also added `--allow-all-paths` argument that approves access to all paths. -- 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: - - ```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: - - ```json - { - "env": { - "GITHUB_ACCESS_TOKEN": "${GITHUB_TOKEN}" - } - } - ``` - -## 0.0.339 - 2025-10-10 - -- Improved argument input to MCP servers in `/mcp add` -- previously, users had to use comma-separated syntax to specify arguments. Now, the "Command" field allows users to input the full command to start the server as if they were running it in a shell -- Fixed a bug when using the Kitty protocol that led to text containing `u` to not paste correctly. Kitty protocol support is still behind the `COPILOT_KITTY` environment variable. (Fixes https://github.com/github/copilot-cli/issues/259) -- Fixed a bug when using the Kitty protocol that led to the process hanging in VSCode terminal on Windows. Kitty protocol support is still behind the `COPILOT_KITTY` environment variable. (Fixes https://github.com/github/copilot-cli/issues/257) -- Improved the error handling in the `/model` picker when no models are available (fixes https://github.com/github/copilot-cli/issues/229) - -## 0.0.338 - 2025-10-09 - -- Moved Kitty protocol support behind the `COPILOT_KITTY` environment variable due to observed regressions (https://github.com/github/copilot-cli/issues/257, https://github.com/github/copilot-cli/issues/259) -- Fixed a wrapping issue in multi-line prompts with empty lines - -## 0.0.337 - 2025-10-08 - -- Added validation for MCP server names (fixes https://github.com/github/copilot-cli/issues/110) -- Added support for Ctrl+B and Ctrl+F for moving cursor back and forward (fixes https://github.com/github/copilot-cli/issues/214) -- Added support for multi-line input for terminals that support the [Kitty protocol](https://sw.kovidgoyal.net/kitty/keyboard-protocol/) (partially fixes https://github.com/github/copilot-cli/issues/14 -- broader terminal support coming soon!) -- Updated the OAuth login UI to begin polling as soon as the device code is generated (this will _more solidly_ fix SSH edge-cases as described in https://github.com/github/copilot-cli/issues/89) - -## 0.0.336 - 2025-10-07 - -- Enabled proxy support via HTTPS_PROXY/HTTP_PROXY environment variables regardless of Node version (Fixes https://github.com/github/copilot-cli/issues/41) -- Significantly reduced token consumption, round trips per problem, and time to result. We'll share more specific data in our weekly changelog on Friday! -- Improved file write performances (especially on Windows) by not relying on the shell to fetch the current working directory -- Fixed a bug where `/clear` did not properly reset the context truncation tracking state -- Hid the "Welcome to GitHub Copilot CLI" welcome message on session resumption and `/clear` for a cleaner look -- Improved the alignment of tables where the scrollbar is present -- Improved the output of `--help` by making it more concise -- Added a prompt for users who launch with `--screen-reader` to persistently save this preference -- Potentially improved flickering in some cases; we're still working on this! - -## 0.0.335 - 2025-10-06 - -- Improved visibility into file edits by showing file diffs in the timeline by default, without the need to Ctrl+R -- Improved slash command input by showing argument hints in the input box -- Improved the display of the interface in windows less than 80 columns wide -- Reduced the number of colors and improved the spacing of Markdown rendering -- Added a warning when attempting to use proxy support in an environment where it won't work (Node <24, required environment variables not set) (A more permanent fix for https://github.com/github/copilot-cli/issues/41 is coming ~tomorrow) -- Updated the context truncation message's color from an error color to a warning color -- Fixed a bug where `copilot` logs might not have been properly created on Windows -- Fixed a bug where Powershell users with custom profiles might have had issues running commands (Fixes https://github.com/github/copilot-cli/issues/196) -- Fixed a bug where prompts were truncated after pasting and other edge cases (Fixes https://github.com/github/copilot-cli/issues/208, https://github.com/github/copilot-cli/issues/218) -- Fixed a bug where users would see a login prompt on startup despite being logged in (fixes https://github.com/github/copilot-cli/issues/202) -- Fixed a bug where some SSH users in certain environments were unable to get the OAuth login link and had their processes hang trying to open a browser (fixes https://github.com/github/copilot-cli/issues/89) - -## 0.0.334 - 2025-10-03 - -- Improved the experience of pasting large content: when pasting more than 10 lines, it's displayed as a compact token like `[Paste #1 - 15 lines]` instead of flooding the terminal. -- Added a warning when conversation context approaches ≤20% remaining of the model's limit that truncation will soon occur. At this point, we recommend you begin a new session (improves https://github.com/github/copilot-cli/issues/29) -- Removed the on-exit usage stats from the persisted session history -- Added the current version to startup logs to aid in bug reporting -- Removed cycling through TAB autocomplete items if an argument is present. This prevents running `/cwd /path/to/whatever`, hitting `TAB`, then seeing `/clear` autocomplete - -## 0.0.333 - 2025-10-02 - -- Added image support! `@`-mention files to add them as input to the model. -- Improved proxy support for users on Node.JS v24+. See [this comment](https://github.com/github/copilot-cli/issues/41#issuecomment-3362444262) for more details (Fixes https://github.com/github/copilot-cli/issues/41) -- Added support for directly executing shell commands and bypassing the model by prepending input with `!` (fixes https://github.com/github/copilot-cli/issues/186, https://github.com/github/copilot-cli/issues/12) -- Added `/usage` slash command to provide stats about Premium request usage, session time, code changes, and per-model token use. This information is also printed at the conclusion of a session (Fixes https://github.com/github/copilot-cli/issues/27, https://github.com/github/copilot-cli/issues/121) -- Improved `--screen-reader` mode by replacing icons in the timeline with informative labels -- Added a `--continue` flag to resume the most recently closed session -- Updated the `/clear` command to properly clear old timeline entries/session information (Fixes https://github.com/github/copilot-cli/issues/170) - -## 0.0.332 - 2025-10-01 - -- Switched to using per-subscription Copilot API endpoints in accordance with [GitHub's docs](https://docs.github.com/en/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-access/manage-network-access) (fixes https://github.com/github/copilot-cli/issues/76) -- Fixed a bug where `/user [list | show | switch]` did not include users signed in from all authentication modes (fixes https://github.com/github/copilot-cli/issues/58) -- Fixed a bug where switching to another user with `/user switch` did not take effect in the GitHub MCP server -- Improved the screenreader experience by disabling the scrollbar in the `@` file picker, the `--resume` session picker, and the `/` command picker -- Improved the polish of the scrollbar container (increased the width, reduced the opacity of the gutter) -- Minor visual improvements to the input area (moved the current model indicator to the right so it's not cramped with the CWD, improved the positioning of the file picker's "indexing" indicator, improved hint formatting in completion menus) -- Improved Markdown legibility by excluding `#` prefixes in headings -- Improved how we extract paths from shell commands for permission handling (might fix https://github.com/github/copilot-cli/issues/159, https://github.com/github/copilot-cli/issues/67) - -## 0.0.331 - 2025-10-01 - -- Improved the information density of file read/edit timeline events -- Fixed an inaccuracy in the `--banner` help text; it previously implied that it would persistently change the configuration to always show the startup banner -- Improved the `/model`s list to ensure that a user only sees models they have access to use -- previously, if a user tries to use a model they do not have access to (because of their Copilot plan, their geographic region, etc), they received a `model_not_supported` error. This should prevent that by not even showing such models as options in the list (Fixes https://github.com/github/copilot-cli/issues/112, https://github.com/github/copilot-cli/issues/85, https://github.com/github/copilot-cli/issues/40) -- Fixed a bug where pressing down arrow in a multi-line prompt would wrap around to the first line (This is on the way to implementing https://github.com/github/copilot-cli/issues/14) -- Added a scrollbar to the `@` file mentioning picker and increased the size of the active buffer to 10 items -- Improved the experience of writing prompts while the agent is running -- up/down arrows will now correctly navigate between options in the `@` and `/` menus - -## 0.0.330 - 2025-09-29 - -- Changed the default model back to Sonnet 4 since Sonnet 4.5 hasn't rolled out to all users yet. Sonnet 4.5 is still available from the `/model` slash command - -## 0.0.329 - 2025-09-29 - -- 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 -- 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 -- Improved word motion logic to better detect newlines: using word motion keys will now correctly move to the first word on a line -- Improved the handling of multi-line inputs in the input box: the input text box is scrollable, limited to 10 lines. Long prompts won't take up the whole screen anymore! (This is on the way to implementing https://github.com/github/copilot-cli/issues/14) -- Removed the left and right borders from the input box. This makes it easier to copy text out of it! -- Added glob matching to shell rules. When using `--allow-tool` and `--deny-tool`, you can now specify things like `shell(npm run test:*)` to match any shell commands beginning with `npm run test` -- Improved the `copilot --resume` interface with relative time display, session message count, (Fixes https://github.com/github/copilot-cli/issues/97) - -## 0.0.328 - 2025-09-26 - -- Improved error message received when Copilot CLI is blocked by organization policy (fixes https://github.com/github/copilot-cli/issues/18 ) -- Improved the error message received when using a PAT that is missing the "Copilot Requests" permission (fixes https://github.com/github/copilot-cli/issues/46 ) -- Improved the output of `/user list` to make it clearer which is the current user -- Improved PowerShell parsing of `ForEach-Object` and detection of command name expressions (e.g.,`& $someCommand`) From c5e5dba10438cd57b2e601d62efabed5cd4f5c3d Mon Sep 17 00:00:00 2001 From: Ryan Hecht Date: Thu, 13 Nov 2025 15:29:18 -0500 Subject: [PATCH 016/208] Update changelog for versions 0.0.354 to 0.0.356 --- changelog.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/changelog.md b/changelog.md index 6d6fdc66..bdb7aee4 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,28 @@ +## 0.0.356 - 2025-11-13 + +- GPT-5.1, GPT-5.1-Codex, and GPT-5.1-Codex-Mini are now available in GitHub Copilot CLI. See the [GitHub Changelog](https://github.blog/changelog/2025-11-13-openais-gpt-5-1-gpt-5-1-codex-and-gpt-5-1-codex-mini-are-now-in-public-preview-for-github-copilot/) for more details + +## 0.0.355 - 2025-11-12 + +- Enabled the CLI agent to read its own `/help` and README to answer questions about its capabilities +- Improved parsing of VSCode-formatted custom agents with the `.agent.md` suffix +- Sanitize tool names to fix issues like https://github.com/github/copilot-cli/issues/456 +- Bundled `ripgrep` and added `grep` and `glob` tools for more performant searching of codebases +- Fixed malformed tool call handling before it reaches the UI (partially addresses https://github.com/github/copilot-cli/issues/393) +- Prevent double line wraps in markdown messages +- Fixed a bug where the file selector was used in multi-line input that led to unexpected up/down arrow behavior (fixes https://github.com/github/copilot-cli/issues/350) +- Fixed a bug where remote MCP server configuration in custom agents was not fetched properly +- Added more detail and improved the styling of the `/session` command's output +- Removed the internal `NODE_ENV` variable from the shell tool's environment (fixes https://github.com/github/copilot-cli/issues/151) +- Fixed a memory leak when using the interactive shell tool +- Improved line number formatting in file view output (fixes https://github.com/github/copilot-cli/issues/471) +- Lowered the default shell tool timeout and updated prompt language to not imply that timeout means failure +- Ensured that we query the terminal background color before rendering (fixes https://github.com/github/copilot-cli/issues/36) +- Ensured that the agent won't run `pkill` on its own PID +- Fixed a bug where `copilot` would not quit after an abort signal (fixes https://github.com/github/copilot-cli/issues/529) +- Ensure `!` commands on Windows use PowerShell when available (fixes https://github.com/github/copilot-cli/issues/504) +- Fixed a bug in Windows Terminal where keyboard input was not accepted + ## 0.0.354 - 2025-11-03 - Exit with nonzero code when `-p` mode fails due to LLM backend errors (auth failures, quota exhaustion, network issues) From 91ce8610c3a52a7eed4e4dd6cd379fe855b3f388 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 14 Nov 2025 21:08:58 -0500 Subject: [PATCH 017/208] Update changelog for releases 0.0.357 and 0.0.358 --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index bdb7aee4..34a88772 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 0.0.358 - 2025-11-14 + +Recovery release to fix availability of GPT-5.1, GPT-5.1-Codex, and GPT-5.1-Codex-Mini models. + +## 0.0.357 - 2025-11-13 + +Recovery release to fix an issue with image resizing. + ## 0.0.356 - 2025-11-13 - GPT-5.1, GPT-5.1-Codex, and GPT-5.1-Codex-Mini are now available in GitHub Copilot CLI. See the [GitHub Changelog](https://github.blog/changelog/2025-11-13-openais-gpt-5-1-gpt-5-1-codex-and-gpt-5-1-codex-mini-are-now-in-public-preview-for-github-copilot/) for more details From 2b9779b8304388259e9beb7ee8da4b58eef57fec Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 17 Nov 2025 23:15:17 +0000 Subject: [PATCH 018/208] Update changelog.md for version 0.0.359 --- changelog.md | 122 +++++++++++++++++++++++---------------------------- 1 file changed, 55 insertions(+), 67 deletions(-) diff --git a/changelog.md b/changelog.md index 34a88772..09844287 100644 --- a/changelog.md +++ b/changelog.md @@ -1,34 +1,48 @@ +## 0.0.359 - 2025-11-17 + +- Support adding images to context via drag & dropping and pasting paths to image files. Improved how image slugs are rendered in the input box +- Add `/share` command to save session as markdown file or GitHub gist +- Fix a bug where cached tokens were displaying as zero at the end of the session +- Enable `USE_BUILTIN_RIPGREP` environment variable to optionally use ripgrep from PATH +- Fix an issue where sourcing custom agents from the remote repository's default branch led to confusions about whether the local copy of the agent was being used +- Fix custom agents configuration issues +- Improve `Ctrl+C` performance +- Improve tool argument parsing safety +- Distinguish tool names from paths and improve tool success/error icons +- `copilot -p` will no longer interactively prompt for permission requests +- Remove unnecessary whitespace from tool descriptions + ## 0.0.358 - 2025-11-14 -Recovery release to fix availability of GPT-5.1, GPT-5.1-Codex, and GPT-5.1-Codex-Mini models. +- Recovery release to fix availability of GPT-5.1, GPT-5.1-Codex, and GPT-5.1-Codex-Mini models ## 0.0.357 - 2025-11-13 -Recovery release to fix an issue with image resizing. +- Recovery release to fix an issue with image resizing ## 0.0.356 - 2025-11-13 -- GPT-5.1, GPT-5.1-Codex, and GPT-5.1-Codex-Mini are now available in GitHub Copilot CLI. See the [GitHub Changelog](https://github.blog/changelog/2025-11-13-openais-gpt-5-1-gpt-5-1-codex-and-gpt-5-1-codex-mini-are-now-in-public-preview-for-github-copilot/) for more details +- GPT-5.1, GPT-5.1-Codex, and GPT-5.1-Codex-Mini are now available in GitHub Copilot CLI ## 0.0.355 - 2025-11-12 - Enabled the CLI agent to read its own `/help` and README to answer questions about its capabilities -- Improved parsing of VSCode-formatted custom agents with the `.agent.md` suffix -- Sanitize tool names to fix issues like https://github.com/github/copilot-cli/issues/456 +- Improved parsing of VS Code-formatted custom agents with the `.agent.md` suffix +- Sanitize tool names to fix issues with special characters - Bundled `ripgrep` and added `grep` and `glob` tools for more performant searching of codebases -- Fixed malformed tool call handling before it reaches the UI (partially addresses https://github.com/github/copilot-cli/issues/393) +- Fixed malformed tool call handling before it reaches the UI - Prevent double line wraps in markdown messages -- Fixed a bug where the file selector was used in multi-line input that led to unexpected up/down arrow behavior (fixes https://github.com/github/copilot-cli/issues/350) +- Fixed a bug where the file selector was used in multi-line input that led to unexpected up/down arrow behavior - Fixed a bug where remote MCP server configuration in custom agents was not fetched properly - Added more detail and improved the styling of the `/session` command's output -- Removed the internal `NODE_ENV` variable from the shell tool's environment (fixes https://github.com/github/copilot-cli/issues/151) +- Removed the internal `NODE_ENV` variable from the shell tool's environment - Fixed a memory leak when using the interactive shell tool -- Improved line number formatting in file view output (fixes https://github.com/github/copilot-cli/issues/471) +- Improved line number formatting in file view output - Lowered the default shell tool timeout and updated prompt language to not imply that timeout means failure -- Ensured that we query the terminal background color before rendering (fixes https://github.com/github/copilot-cli/issues/36) +- Ensured that we query the terminal background color before rendering - Ensured that the agent won't run `pkill` on its own PID -- Fixed a bug where `copilot` would not quit after an abort signal (fixes https://github.com/github/copilot-cli/issues/529) -- Ensure `!` commands on Windows use PowerShell when available (fixes https://github.com/github/copilot-cli/issues/504) +- Fixed a bug where `copilot` would not quit after an abort signal +- Ensure `!` commands on Windows use PowerShell when available - Fixed a bug in Windows Terminal where keyboard input was not accepted ## 0.0.354 - 2025-11-03 @@ -57,41 +71,17 @@ Recovery release to fix an issue with image resizing. ## 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/)! ## 0.0.350 - 2025-10-23 -- To conserve context window space, we've limited the list of tools available to the default GitHub MCP server. In our tests, the model will use the [GitHub CLI, `gh`](https://github.com/cli/cli) (if installed) in lieu of missing MCP tools. We added an `--enable-all-github-mcp-tools` if you wish to turn on all available tools. -Default available tools are: - - Code & Repo navigation - - get_file_contents - - search_code - - search_repositories - - list_branches - - list_commits - - get_commit - - Issue Management - - get_issue - - list_issues - - get_issue_comments - - search_issues - - PR Management - - pull_request_read - - list_pull_requests - - search_pull_requests - - Workflow Info - - list_workflows - - list_workflow_runs - - get_workflow_run - - get_job_logs - - get_workflow_run_logs - - Misc search - - user_search +- To conserve context window space, we've limited the list of tools available to the default GitHub MCP server. In our tests, the model will use the [GitHub CLI, `gh`](https://github.com/cli/cli) (if installed) in lieu of missing MCP tools. We added an `--enable-all-github-mcp-tools` if you wish to turn on all available tools. + Default available tools are: - Code & Repo navigation - get_file_contents - search_code - search_repositories - list_branches - list_commits - get_commit - Issue Management - get_issue - list_issues - get_issue_comments - search_issues - PR Management - pull_request_read - list_pull_requests - search_pull_requests - Workflow Info - list_workflows - list_workflow_runs - get_workflow_run - get_job_logs - get_workflow_run_logs - Misc search - user_search - Bundled `sharp` dependency into the CLI package -- we're one step closer to implementing https://github.com/github/copilot-cli/issues/16, and this fixes some startup blockers on Windows (fixes https://github.com/github/copilot-cli/issues/309 & https://github.com/github/copilot-cli/issues/287) - Fixed a bug where input tokens were not tracked properly (Fixes https://github.com/github/copilot-cli/issues/337) - Fixed a bug where MCP tools with arguments would fail with streaming enabled @@ -100,7 +90,7 @@ Default available tools are: ## 0.0.349 - 2025-10-22 - The model can now call multiple tools in parallel. Each tool must be confirmed in advance. This behavior can be disabled with the `--disable-parallel-tools-execution` flag -- Added `/quit` as an alias of `/exit` (fixes https://github.com/github/copilot-cli/issues/357) +- Added `/quit` as an alias of `/exit` (fixes https://github.com/github/copilot-cli/issues/357) - Fixed a bug where every streamed output chunk was sent back to the model as part of the conversation (fixes https://github.com/github/copilot-cli/issues/379) - Ensure that environment variables are expanded before running path permission checks - Fixed a bug where Ctrl+K deleted to the end of the visual line in the input box rather than the logical line @@ -141,7 +131,6 @@ Default available tools are: - Enforced minimum Node version requirement at launch - Simplified messaging for `/terminal-setup` - ## 0.0.343 - 2025-10-16 - ``` @@ -149,27 +138,26 @@ Default available tools are: Run slash model to equip 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` +- 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` - 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"]` @@ -192,28 +180,28 @@ Default available tools are: - Fixed an issue where consecutive orphaned tool calls led to a "Each `tool_use` block must have a corresponding `tool_result` block in the next message" message (fixes https://github.com/github/copilot-cli/issues/102) - Added a prompt to approve new paths in `-p` mode. Also added `--allow-all-paths` argument that approves access to all paths. - 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. + 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" - } + } } ``` - Before this change, the CLI would read the value of `GITHUB_TOKEN` from the environment of the CLI and set the environment varaible 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}" - } + } } ``` - ## 0.0.339 - 2025-10-10 - Improved argument input to MCP servers in `/mcp add` -- previously, users had to use comma-separated syntax to specify arguments. Now, the "Command" field allows users to input the full command to start the server as if they were running it in a shell @@ -280,7 +268,7 @@ Default available tools are: ## 0.0.332 - 2025-10-01 - Switched to using per-subscription Copilot API endpoints in accordance with [GitHub's docs](https://docs.github.com/en/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-access/manage-network-access) (fixes https://github.com/github/copilot-cli/issues/76) -- Fixed a bug where `/user [list | show | swtich]` did not include users signed in from all authentication modes (fixes https://github.com/github/copilot-cli/issues/58) +- Fixed a bug where `/user [list | show | switch]` did not include users signed in from all authentication modes (fixes https://github.com/github/copilot-cli/issues/58) - Fixed a bug where switching to another user with `/user switch` did not take effect in the GitHub MCP server - Improved the screenreader experience by disabling the scrollbar in the `@` file picker, the `--resume` session picker, and the `/` command picker - Improved the polish of the scrollbar container (increased the width, reduced the opacity of the gutter) @@ -308,11 +296,11 @@ Default available tools are: - `/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) +- 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 - Improved word motion logic to better detect newlines: using word motion keys will now correctly move to the first word on a line - Improved the handling of multi-line inputs in the input box: the input text box is scrollable, limited to 10 lines. Long prompts won't take up the whole screen anymore! (This is on the way to implementing https://github.com/github/copilot-cli/issues/14) -- Removed the left and right boarders from the input box. This makes it easier to copy text out of it! +- Removed the left and right borders from the input box. This makes it easier to copy text out of it! - Added glob matching to shell rules. When using `--allow-tool` and `--deny-tool`, you can now specify things like `shell(npm run test:*)` to match any shell commands beginning with `npm run test` - Improved the `copilot --resume` interface with relative time display, session message count, (Fixes https://github.com/github/copilot-cli/issues/97) From ab59c659ac821c9da3b3638542f5201e894be127 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 18 Nov 2025 03:27:20 +0000 Subject: [PATCH 019/208] Update changelog.md for version 0.0.360 --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index 09844287..ca9f052c 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +## 0.0.360 - 2025-11-18 + +- Fix file operations timing out while waiting for user permission + ## 0.0.359 - 2025-11-17 - Support adding images to context via drag & dropping and pasting paths to image files. Improved how image slugs are rendered in the input box From 46f34fcf45137be73404733f06145b976e1a6792 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 18 Nov 2025 16:37:15 +0000 Subject: [PATCH 020/208] Update changelog.md for version 0.0.361 --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index ca9f052c..53994de8 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +## 0.0.361 - 2025-11-18 + +- Gemini 3 Pro is now available in GitHub Copilot CLI + ## 0.0.360 - 2025-11-18 - Fix file operations timing out while waiting for user permission From 5ac16420c1300dcc5af09fabedb1aa4cc7bcb011 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 20 Nov 2025 21:41:31 +0000 Subject: [PATCH 021/208] Update changelog.md for version 0.0.362 --- changelog.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/changelog.md b/changelog.md index 53994de8..6fd5cf5c 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,9 @@ -## 0.0.361 - 2025-11-18 +## 0.0.362 - 2025-11-20 -- Gemini 3 Pro is now available in GitHub Copilot CLI +- Fix issues with image drag and drop on Windows +- Shell commands are no longer included in Bash and PowerShell history files +- Paste image data from your clipboard directly into the CLI +- Cleanup and update prompts and tool instructions to be more fluid ## 0.0.360 - 2025-11-18 From ed08ac1fa17d0e7f86e03573c4425db14be6dbf9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 24 Nov 2025 21:17:47 +0000 Subject: [PATCH 022/208] Update changelog.md for version 0.0.363 --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index 6fd5cf5c..e7a7deae 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 0.0.363 - 2025-11-24 + +- Opus 4.5, GPT-4.1 and GPT-5-Mini are now available in GitHub Copilot CLI +- Image data paste now prioritizes pasting contents of image files instead of their file icons. +- Improved timeline rendering of shell tool names +- Add support for GITHUB_ASKPASS environment variable for authentication +- MCP servers work in `--prompt` mode + ## 0.0.362 - 2025-11-20 - Fix issues with image drag and drop on Windows From 44864172a502f29d6fd36e9539f04d7bd35bf123 Mon Sep 17 00:00:00 2001 From: Andy Feller Date: Mon, 24 Nov 2025 17:09:20 -0500 Subject: [PATCH 023/208] Fix formatting and punctuation in README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 04a0bcab..5e4f7e36 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ We're still early in our journey, but with your feedback, we're rapidly iteratin - (On Windows) **PowerShell** v6 or higher - An **active Copilot subscription**. See [Copilot plans](https://github.com/features/copilot/plans?ref_cta=Copilot+plans+signup&ref_loc=install-copilot-cli&ref_page=docs). -If you have access to GitHub Copilot via your organization of enterprise, you cannot use GitHub Copilot CLI if your organization owner or enterprise administrator has disabled it in the organization or enterprise settings. See [Managing policies and features for GitHub Copilot in your organization](http://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-github-copilot-features-in-your-organization/managing-policies-for-copilot-in-your-organization) for more information. +If you have access to GitHub Copilot via your organization or enterprise, you cannot use GitHub Copilot CLI if your organization owner or enterprise administrator has disabled it in the organization or enterprise settings. See [Managing policies and features for GitHub Copilot in your organization](http://docs.github.com/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-github-copilot-features-in-your-organization/managing-policies-for-copilot-in-your-organization) for more information. ### Installation @@ -67,7 +67,7 @@ You can also authenticate using a fine-grained PAT with the "Copilot Requests" p 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 +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. 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 771f1d7c0cce74f4af968d4dcebc7aaa72d19789 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 25 Nov 2025 20:15:18 +0000 Subject: [PATCH 024/208] Update changelog.md for version 0.0.364 --- changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changelog.md b/changelog.md index e7a7deae..a248d7a6 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,8 @@ +## 0.0.364 - 2025-11-25 + +- Add syntax highlighting for diffs +- Fix light theme markdown rendering + ## 0.0.363 - 2025-11-24 - Opus 4.5, GPT-4.1 and GPT-5-Mini are now available in GitHub Copilot CLI From 29aafbe1906f246ddb59abe1b0f7af11ce1c0858 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 3 Dec 2025 22:56:37 +0000 Subject: [PATCH 025/208] Update changelog.md for version 0.0.366 --- README.md | 6 +++--- changelog.md | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5e4f7e36..51db03fa 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ If you have access to GitHub Copilot via your organization or enterprise, you ca ### Installation Install globally with npm: + ```bash npm install -g @github/copilot ``` @@ -50,7 +51,7 @@ npm install -g @github/copilot copilot ``` -On first launch, you'll be greeted with our adorable animated banner! If you'd like to see this banner again, launch `copilot` with the `--banner` flag. +On first launch, you'll be greeted with our adorable animated banner! If you'd like to see this banner again, launch `copilot` with the `--banner` flag. If you're not currently logged in to GitHub, you'll be prompted to use the `/login` slash command. Enter this command and follow the on-screen instructions to authenticate. @@ -65,7 +66,7 @@ You can also authenticate using a fine-grained PAT with the "Copilot Requests" p ### Using the CLI -Launch `copilot` in a folder that contains code you want to work with. +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. @@ -73,7 +74,6 @@ 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). - ## 📢 Feedback and Participation We're excited to have you join us early in the Copilot CLI journey. diff --git a/changelog.md b/changelog.md index a248d7a6..cf37bae0 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,13 @@ +## 0.0.366 - 2025-12-03 + +- Add `infer` property to control custom agent tool visibility +- Add CLI executables to GitHub release artifacts +- Add apply_patch toolchain for OpenAI Codex models + +## 0.0.365 - 2025-11-25 + +- Add `--silent` option to suppress stats output for scripting + ## 0.0.364 - 2025-11-25 - Add syntax highlighting for diffs From d9e12afc9c01e45859a8508d01c50cacb700a8e5 Mon Sep 17 00:00:00 2001 From: Kaleb Luedtke Date: Thu, 4 Dec 2025 16:26:21 -0600 Subject: [PATCH 026/208] Add workflow to automatically submit to Winget --- .github/workflows/winget.yml | 44 ++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/winget.yml diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml new file mode 100644 index 00000000..2c04f58b --- /dev/null +++ b/.github/workflows/winget.yml @@ -0,0 +1,44 @@ +name: Submit release to the WinGet community repository + +on: + release: + types: [published] + +jobs: + publish-winget: + name: Submit to WinGet repository + + # GitHub token permissions needed for winget-create to submit a PR + permissions: + contents: read + pull-requests: write + + # winget-create is only supported on Windows + runs-on: windows-latest + + # winget-create will read the following environment variable to access the GitHub token needed for submitting a PR + # See https://aka.ms/winget-create-token + env: + WINGET_CREATE_GITHUB_TOKEN: ${{ secrets.WINGET_CREATE_GITHUB_TOKEN }} + + steps: + - name: Submit package using wingetcreate + run: | + # Set the package ID based on the release info + $packageId = if (${{ !github.event.release.prerelease }}) { "GitHub.Copilot" } else { "GitHub.Copilot.Prerelease" } + + # Get installer info from release event + $assets = '${{ toJSON(github.event.release.assets) }}' | ConvertFrom-Json + $packageVersion = (${{ toJSON(github.event.release.tag_name) }}) + + # Find the download URLs for the x64 and arm64 installers separately + # This allows overrides to be used so that wingetcreate does not have to guess the architecture from the filename + $installerUrlx64 = $assets | Where-Object -Property name -like '*win32-x64.zip' | Select-Object -ExpandProperty browser_download_url + $installerUrlarm64 = $assets | Where-Object -Property name -like '*win32-arm64.zip' | Select-Object -ExpandProperty browser_download_url + + # Update package using wingetcreate + curl.exe -JLO https://aka.ms/wingetcreate/latest + .\wingetcreate.exe update $packageId ` + --version $packageVersion ` + --urls "$installerUrlx64|x64" "$installerUrlarm64|arm64" ` + --submit From 12e86309d7905a8601dbc603d30a31650302f2e7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 5 Dec 2025 00:56:04 +0000 Subject: [PATCH 027/208] Update changelog.md for version 0.0.367 --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index cf37bae0..48011837 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +## 0.0.367 - 2025-12-04 + +- GPT-5.1-Codex-Max is now available in GitHub Copilot CLI + ## 0.0.366 - 2025-12-03 - Add `infer` property to control custom agent tool visibility From 2e743462784939ed4564f3bb42fbb7f7578634f1 Mon Sep 17 00:00:00 2001 From: Kaleb Luedtke Date: Thu, 4 Dec 2025 22:43:18 -0600 Subject: [PATCH 028/208] Add WinGet command to README (#724) * Add WinGet command to README --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 51db03fa..adaf2415 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,12 @@ Install globally with npm: npm install -g @github/copilot ``` +Install with [WinGet](https://github.com/microsoft/winget-cli): + +```bash +winget install GitHub.Copilot +``` + ### Launching the CLI ```bash From 99024790c2b85e330f3b4bc74fe4a1f2198cdc3b Mon Sep 17 00:00:00 2001 From: Justin Krehel <39449589+krehel@users.noreply.github.com> Date: Mon, 8 Dec 2025 21:35:13 -0500 Subject: [PATCH 029/208] add Homebrew install to README --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index adaf2415..f74d0e0a 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,12 @@ Install with [WinGet](https://github.com/microsoft/winget-cli): winget install GitHub.Copilot ``` +Install with [Homebrew](https://brew.sh/): + +```bash +brew install copilot-cli +``` + ### Launching the CLI ```bash From cd595002a98544c51e285adff269aad5b359fb0b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 10 Dec 2025 21:09:33 +0000 Subject: [PATCH 030/208] Update changelog.md for version 0.0.368 --- README.md | 8 ++++---- changelog.md | 7 +++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f74d0e0a..dd246de0 100644 --- a/README.md +++ b/README.md @@ -45,16 +45,16 @@ Install globally with npm: npm install -g @github/copilot ``` -Install with [WinGet](https://github.com/microsoft/winget-cli): +Install with [Homebrew](https://formulae.brew.sh/cask/copilot-cli): ```bash -winget install GitHub.Copilot +brew install copilot-cli ``` -Install with [Homebrew](https://brew.sh/): +Install with [WinGet](https://github.com/microsoft/winget-cli): ```bash -brew install copilot-cli +winget install GitHub.Copilot ``` ### Launching the CLI diff --git a/changelog.md b/changelog.md index 48011837..4ea0f2d4 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,10 @@ +## 0.0.368 - 2025-12-10 + +- PRU usage rates now displayed correctly +- Fix checkmark and x icon rendering +- Add grep tool Codex models +- Numpad keys work in prompts with Kitty keyboard protocol + ## 0.0.367 - 2025-12-04 - GPT-5.1-Codex-Max is now available in GitHub Copilot CLI From 1170873380b7297d10865f6de1fca3bd112fb897 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 11 Dec 2025 20:00:47 +0000 Subject: [PATCH 031/208] Update changelog.md for version 0.0.369 --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index 4ea0f2d4..4caea57f 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +## 0.0.369 - 2025-12-11 + +- Add support for GPT-5.2 + ## 0.0.368 - 2025-12-10 - PRU usage rates now displayed correctly From 1a4d63b8faf8903fc978e024c63c29897bacf8b8 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Thu, 11 Dec 2025 21:47:41 -0500 Subject: [PATCH 032/208] Update winget.yml to use app access token Replaced the GitHub token environment variable with a generated app access token for winget-create. --- .github/workflows/winget.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index 2c04f58b..e93b99a1 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -15,14 +15,18 @@ jobs: # winget-create is only supported on Windows runs-on: windows-latest - - # winget-create will read the following environment variable to access the GitHub token needed for submitting a PR - # See https://aka.ms/winget-create-token - env: - WINGET_CREATE_GITHUB_TOKEN: ${{ secrets.WINGET_CREATE_GITHUB_TOKEN }} steps: + - name: Generate release app access token + id: app-token + uses: actions/create-github-app-token@v2 + with: + app-id: ${{ secrets.COPILOT_CLI_RELEASE_APP_ID }} + private-key: ${{ secrets.COPILOT_CLI_RELEASE_APP_PRIVATE_KEY }} + - name: Submit package using wingetcreate + env: + WINGET_CREATE_GITHUB_TOKEN: ${{ steps.app-token.outputs.token }} run: | # Set the package ID based on the release info $packageId = if (${{ !github.event.release.prerelease }}) { "GitHub.Copilot" } else { "GitHub.Copilot.Prerelease" } From 1190c65796ddb7eaf0c9e7df1163bd544590b537 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 17:20:36 +0000 Subject: [PATCH 033/208] Add installation script --- install.sh | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100755 install.sh diff --git a/install.sh b/install.sh new file mode 100755 index 00000000..f3d72a4a --- /dev/null +++ b/install.sh @@ -0,0 +1,70 @@ +#!/usr/bin/env bash +set -e + +# GitHub Copilot CLI Installation Script +# Usage: curl -fsSL https://gh.io/copilot-install | bash +# or: wget -qO- https://gh.io/copilot-install | bash + +INSTALL_DIR="${INSTALL_DIR:-$HOME/.local/bin}" + +echo "Installing GitHub Copilot CLI..." + +# Detect platform +case "$(uname -s)" in + Darwin*) PLATFORM="darwin" ;; + Linux*) PLATFORM="linux" ;; + *) echo "Error: Unsupported platform $(uname -s). For Windows, recommend using: winget install GitHub.Copilot" >&2 ; exit 1 ;; +esac + +# Detect architecture +case "$(uname -m)" in + x86_64|amd64) ARCH="x64" ;; + aarch64|arm64) ARCH="arm64" ;; + *) echo "Error: Unsupported architecture $(uname -m)" >&2 ; exit 1 ;; +esac + +DOWNLOAD_URL="https://github.com/github/copilot-cli/releases/latest/download/copilot-${PLATFORM}-${ARCH}.tar.gz" +echo "Downloading from: $DOWNLOAD_URL" + +DOWNLOAD_DIR="${HOME}/.copilot/" +mkdir -p "$DOWNLOAD_DIR" + +# Download and extract +cd "$DOWNLOAD_DIR" +if command -v curl >/dev/null 2>&1; then + curl -fsSL "$DOWNLOAD_URL" | tar -xz +elif command -v wget >/dev/null 2>&1; then + wget -qO- "$DOWNLOAD_URL" | tar -xz +else + echo "Error: Neither curl nor wget found. Please install one of them." + exit 1 +fi + +if [ "$(id -u 2>/dev/null || echo 1)" -eq 0 ]; then + PREFIX="${PREFIX:-/usr/local}" +else + PREFIX="${PREFIX:-$HOME/.local}" + mkdir -p "$INSTALL_DIR/bin" +fi +INSTALL_DIR="$PREFIX/bin" + +# Install binary +if [ -f "copilot" ]; then + mv copilot "$INSTALL_DIR/copilot" + chmod +x "$INSTALL_DIR/copilot" + echo "✓ GitHub Copilot CLI installed to $INSTALL_DIR/copilot" +else + echo "Error: copilot binary not found in tarball" + exit 1 +fi + +# Check if install directory is in PATH +if [[ ":$PATH:" != *":$INSTALL_DIR:"* ]]; then + echo "" + echo "Warning: $INSTALL_DIR is not in your PATH" + echo "Add it to your PATH by adding this line to your shell profile:" + echo " export PATH=\"\$PATH:$INSTALL_DIR\"" +fi + +echo "" +echo "Installation complete! Run 'copilot help' to get started." From bbcca4aa2c7843514947a316796b32e50ef29a1b Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 17:32:58 +0000 Subject: [PATCH 034/208] Update installation instructions --- README.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index dd246de0..3b6407a9 100644 --- a/README.md +++ b/README.md @@ -39,18 +39,34 @@ If you have access to GitHub Copilot via your organization or enterprise, you ca ### Installation -Install globally with npm: +#### Any platform with npm ```bash npm install -g @github/copilot ``` +#### macOS and Linux + +```bash +curl -fsSL https://gh.io/copilot-install | bash +``` + +Or + +```bash +wget -qO- https://gh.io/copilot-install | bash +``` + +#### macOS + Install with [Homebrew](https://formulae.brew.sh/cask/copilot-cli): ```bash brew install copilot-cli ``` +#### Windows + Install with [WinGet](https://github.com/microsoft/winget-cli): ```bash From d9c501866314e6d0ea7103d8363335b60c1f5778 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 12:42:53 -0500 Subject: [PATCH 035/208] Clean up leftover install dir --- install.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/install.sh b/install.sh index f3d72a4a..c59e331b 100755 --- a/install.sh +++ b/install.sh @@ -5,8 +5,6 @@ set -e # Usage: curl -fsSL https://gh.io/copilot-install | bash # or: wget -qO- https://gh.io/copilot-install | bash -INSTALL_DIR="${INSTALL_DIR:-$HOME/.local/bin}" - echo "Installing GitHub Copilot CLI..." # Detect platform From cf6859ae33469fa0392b22d1ebbbdf4e846a9c57 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 12:43:26 -0500 Subject: [PATCH 036/208] Grammar --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index c59e331b..acd0ca86 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ echo "Installing GitHub Copilot CLI..." case "$(uname -s)" in Darwin*) PLATFORM="darwin" ;; Linux*) PLATFORM="linux" ;; - *) echo "Error: Unsupported platform $(uname -s). For Windows, recommend using: winget install GitHub.Copilot" >&2 ; exit 1 ;; + *) echo "Error: Unsupported platform $(uname -s). For Windows, we recommend using: winget install GitHub.Copilot" >&2 ; exit 1 ;; esac # Detect architecture From 4e028d9a49ff1e068b7ddb4d5d6ad5a969c687ed Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 12:44:09 -0500 Subject: [PATCH 037/208] Remove duplicate trailing slash --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index acd0ca86..1626da39 100755 --- a/install.sh +++ b/install.sh @@ -24,7 +24,7 @@ esac DOWNLOAD_URL="https://github.com/github/copilot-cli/releases/latest/download/copilot-${PLATFORM}-${ARCH}.tar.gz" echo "Downloading from: $DOWNLOAD_URL" -DOWNLOAD_DIR="${HOME}/.copilot/" +DOWNLOAD_DIR="${HOME}/.copilot" mkdir -p "$DOWNLOAD_DIR" # Download and extract From 56c9ed88912f909f6cca521ceb5e170a6b80394f Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 12:45:38 -0500 Subject: [PATCH 038/208] Use tar -C instead of cd --- install.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 1626da39..4da07b20 100755 --- a/install.sh +++ b/install.sh @@ -28,11 +28,10 @@ DOWNLOAD_DIR="${HOME}/.copilot" mkdir -p "$DOWNLOAD_DIR" # Download and extract -cd "$DOWNLOAD_DIR" if command -v curl >/dev/null 2>&1; then - curl -fsSL "$DOWNLOAD_URL" | tar -xz + curl -fsSL "$DOWNLOAD_URL" | tar -xz -C "$DOWNLOAD_DIR" elif command -v wget >/dev/null 2>&1; then - wget -qO- "$DOWNLOAD_URL" | tar -xz + wget -qO- "$DOWNLOAD_URL" | tar -xz -C "$DOWNLOAD_DIR" else echo "Error: Neither curl nor wget found. Please install one of them." exit 1 From f5f4c27f7d2c5376e7792605b5d590c6cf094d68 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 12:48:36 -0500 Subject: [PATCH 039/208] Always run mkdirp on install dir --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 4da07b20..a42d58cf 100755 --- a/install.sh +++ b/install.sh @@ -41,9 +41,9 @@ if [ "$(id -u 2>/dev/null || echo 1)" -eq 0 ]; then PREFIX="${PREFIX:-/usr/local}" else PREFIX="${PREFIX:-$HOME/.local}" - mkdir -p "$INSTALL_DIR/bin" fi INSTALL_DIR="$PREFIX/bin" +mkdir -p "$INSTALL_DIR" # Install binary if [ -f "copilot" ]; then From 82b6ca75336bcf8ae5507ab541e8051c2e8559f5 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 12:50:20 -0500 Subject: [PATCH 040/208] Fix download path check --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index a42d58cf..09308bc4 100755 --- a/install.sh +++ b/install.sh @@ -46,8 +46,8 @@ INSTALL_DIR="$PREFIX/bin" mkdir -p "$INSTALL_DIR" # Install binary -if [ -f "copilot" ]; then - mv copilot "$INSTALL_DIR/copilot" +if [ -f "$DOWNLOAD_DIR/copilot" ]; then + mv "$DOWNLOAD_DIR/copilot" "$INSTALL_DIR/copilot" chmod +x "$INSTALL_DIR/copilot" echo "✓ GitHub Copilot CLI installed to $INSTALL_DIR/copilot" else From 5bf6153eff0c6284084db4f349e08d2b463d5e95 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 13:05:56 -0500 Subject: [PATCH 041/208] Update install.sh 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 09308bc4..f75910ee 100755 --- a/install.sh +++ b/install.sh @@ -47,7 +47,7 @@ mkdir -p "$INSTALL_DIR" # Install binary if [ -f "$DOWNLOAD_DIR/copilot" ]; then - mv "$DOWNLOAD_DIR/copilot" "$INSTALL_DIR/copilot" + mv -f "$DOWNLOAD_DIR/copilot" "$INSTALL_DIR/copilot" chmod +x "$INSTALL_DIR/copilot" echo "✓ GitHub Copilot CLI installed to $INSTALL_DIR/copilot" else From 7c75e1748ac7ea490931537d7102f86d1ff868e0 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 13:06:32 -0500 Subject: [PATCH 042/208] Update install.sh Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- install.sh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/install.sh b/install.sh index f75910ee..67af8e7d 100755 --- a/install.sh +++ b/install.sh @@ -56,12 +56,15 @@ else fi # Check if install directory is in PATH -if [[ ":$PATH:" != *":$INSTALL_DIR:"* ]]; then - echo "" - echo "Warning: $INSTALL_DIR is not in your PATH" - echo "Add it to your PATH by adding this line to your shell profile:" - echo " export PATH=\"\$PATH:$INSTALL_DIR\"" -fi +case ":$PATH:" in + *":$INSTALL_DIR:"*) ;; + *) + echo "" + echo "Warning: $INSTALL_DIR is not in your PATH" + echo "Add it to your PATH by adding this line to your shell profile:" + echo " export PATH=\"\$PATH:$INSTALL_DIR\"" + ;; +esac echo "" echo "Installation complete! Run 'copilot help' to get started." From b344a06b4a6c6dd2c8654190b57c04baa634666f Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 13:09:05 -0500 Subject: [PATCH 043/208] Document PREFIX --- README.md | 3 +++ install.sh | 2 ++ 2 files changed, 5 insertions(+) diff --git a/README.md b/README.md index 3b6407a9..61bb9953 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,9 @@ Or wget -qO- https://gh.io/copilot-install | bash ``` +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. + #### macOS Install with [Homebrew](https://formulae.brew.sh/cask/copilot-cli): diff --git a/install.sh b/install.sh index 67af8e7d..d3fdcef2 100755 --- a/install.sh +++ b/install.sh @@ -4,6 +4,8 @@ set -e # GitHub Copilot CLI Installation Script # Usage: curl -fsSL https://gh.io/copilot-install | bash # or: wget -qO- https://gh.io/copilot-install | bash +# Set PREFIX to install to $PREFIX/bin/ directory (default: /usr/local for root, +# $HOME/.local for non-root) echo "Installing GitHub Copilot CLI..." From a77f4454d3d2a814c82016b0ff6ae446b99ae84e Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 13:10:17 -0500 Subject: [PATCH 044/208] Reorder for clarity maybe --- README.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 61bb9953..3209a274 100644 --- a/README.md +++ b/README.md @@ -45,21 +45,14 @@ If you have access to GitHub Copilot via your organization or enterprise, you ca npm install -g @github/copilot ``` -#### macOS and Linux - -```bash -curl -fsSL https://gh.io/copilot-install | bash -``` +#### Windows -Or +Install with [WinGet](https://github.com/microsoft/winget-cli): ```bash -wget -qO- https://gh.io/copilot-install | bash +winget install GitHub.Copilot ``` -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. - #### macOS Install with [Homebrew](https://formulae.brew.sh/cask/copilot-cli): @@ -68,14 +61,21 @@ Install with [Homebrew](https://formulae.brew.sh/cask/copilot-cli): brew install copilot-cli ``` -#### Windows +#### macOS and Linux -Install with [WinGet](https://github.com/microsoft/winget-cli): +```bash +curl -fsSL https://gh.io/copilot-install | bash +``` + +Or ```bash -winget install GitHub.Copilot +wget -qO- https://gh.io/copilot-install | bash ``` +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. + ### Launching the CLI ```bash From 69905354a947b008875774f6f747da91720111a4 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 13:10:48 -0500 Subject: [PATCH 045/208] Error to stderr --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index d3fdcef2..d49d41e3 100755 --- a/install.sh +++ b/install.sh @@ -35,7 +35,7 @@ if command -v curl >/dev/null 2>&1; then elif command -v wget >/dev/null 2>&1; then wget -qO- "$DOWNLOAD_URL" | tar -xz -C "$DOWNLOAD_DIR" else - echo "Error: Neither curl nor wget found. Please install one of them." + echo "Error: Neither curl nor wget found. Please install one of them." >&2 exit 1 fi From 673aef01fddb3153f126a6bf66743ecdb8c218c7 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 13:14:14 -0500 Subject: [PATCH 046/208] Update install.sh Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- install.sh | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index d49d41e3..df82c417 100755 --- a/install.sh +++ b/install.sh @@ -29,16 +29,26 @@ echo "Downloading from: $DOWNLOAD_URL" DOWNLOAD_DIR="${HOME}/.copilot" mkdir -p "$DOWNLOAD_DIR" -# Download and extract +# Download and extract with error handling +TMP_TARBALL="$(mktemp)" if command -v curl >/dev/null 2>&1; then - curl -fsSL "$DOWNLOAD_URL" | tar -xz -C "$DOWNLOAD_DIR" + curl -fsSL "$DOWNLOAD_URL" -o "$TMP_TARBALL" elif command -v wget >/dev/null 2>&1; then - wget -qO- "$DOWNLOAD_URL" | tar -xz -C "$DOWNLOAD_DIR" + wget -qO "$TMP_TARBALL" "$DOWNLOAD_URL" else - echo "Error: Neither curl nor wget found. Please install one of them." >&2 + echo "Error: Neither curl nor wget found. Please install one of them." exit 1 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." + rm -f "$TMP_TARBALL" + exit 1 +fi + +tar -xz -C "$DOWNLOAD_DIR" -f "$TMP_TARBALL" +rm -f "$TMP_TARBALL" if [ "$(id -u 2>/dev/null || echo 1)" -eq 0 ]; then PREFIX="${PREFIX:-/usr/local}" else From 01b4b1175ae8ae0d008731bee0b9d7927014ad97 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 13:15:26 -0500 Subject: [PATCH 047/208] Update install.sh Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- install.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index df82c417..4ef00d80 100755 --- a/install.sh +++ b/install.sh @@ -55,7 +55,11 @@ else PREFIX="${PREFIX:-$HOME/.local}" fi INSTALL_DIR="$PREFIX/bin" -mkdir -p "$INSTALL_DIR" +if ! mkdir -p "$INSTALL_DIR"; then + echo "Error: Could not create directory $INSTALL_DIR. You may not have write permissions." >&2 + echo "Try running this script with sudo or set PREFIX to a directory you own (e.g., export PREFIX=\$HOME/.local)." >&2 + exit 1 +fi # Install binary if [ -f "$DOWNLOAD_DIR/copilot" ]; then From fa43ed3ee63873e1c196b6c89eec0d81fb17919b Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 13:26:59 -0500 Subject: [PATCH 048/208] Clarify --- install.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 4ef00d80..443c22b8 100755 --- a/install.sh +++ b/install.sh @@ -4,8 +4,9 @@ set -e # GitHub Copilot CLI Installation Script # Usage: curl -fsSL https://gh.io/copilot-install | bash # or: wget -qO- https://gh.io/copilot-install | bash -# Set PREFIX to install to $PREFIX/bin/ directory (default: /usr/local for root, -# $HOME/.local for non-root) +# Export PREFIX to install to $PREFIX/bin/ directory (default: /usr/local for +# root, $HOME/.local for non-root), e.g., export PREFIX=$HOME/custom to install +# to $HOME/custom/bin echo "Installing GitHub Copilot CLI..." From 6f305784aa8ca436d3bcd18aa396746ae70653ec Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 13:28:58 -0500 Subject: [PATCH 049/208] Add notice --- install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/install.sh b/install.sh index 443c22b8..cc3bad00 100755 --- a/install.sh +++ b/install.sh @@ -64,6 +64,9 @@ fi # Install binary if [ -f "$DOWNLOAD_DIR/copilot" ]; then + if [ -f "$INSTALL_DIR/copilot" ]; then + echo "Notice: Replacing copilot binary found at $INSTALL_DIR/copilot." + fi mv -f "$DOWNLOAD_DIR/copilot" "$INSTALL_DIR/copilot" chmod +x "$INSTALL_DIR/copilot" echo "✓ GitHub Copilot CLI installed to $INSTALL_DIR/copilot" From 8edeb1732486e738aa2098f9a588714399251c3e Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 13:30:01 -0500 Subject: [PATCH 050/208] Update install.sh 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 cc3bad00..ce806aba 100755 --- a/install.sh +++ b/install.sh @@ -71,7 +71,7 @@ if [ -f "$DOWNLOAD_DIR/copilot" ]; then chmod +x "$INSTALL_DIR/copilot" echo "✓ GitHub Copilot CLI installed to $INSTALL_DIR/copilot" else - echo "Error: copilot binary not found in tarball" + echo "Error: copilot binary not found in tarball" >&2 exit 1 fi From 433ff3249abcfa2d5da2c8a88b8255645877f99b Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 13:30:23 -0500 Subject: [PATCH 051/208] Update install.sh 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 ce806aba..67aa3949 100755 --- a/install.sh +++ b/install.sh @@ -43,7 +43,7 @@ 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." + echo "Error: Downloaded file is not a valid tarball or is corrupted." >&2 rm -f "$TMP_TARBALL" exit 1 fi From c7f74d9e8214799ec495f6ebc453d0d88786fbed Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 13:33:39 -0500 Subject: [PATCH 052/208] Remove download dir --- install.sh | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/install.sh b/install.sh index 67aa3949..21c49263 100755 --- a/install.sh +++ b/install.sh @@ -27,9 +27,6 @@ esac DOWNLOAD_URL="https://github.com/github/copilot-cli/releases/latest/download/copilot-${PLATFORM}-${ARCH}.tar.gz" echo "Downloading from: $DOWNLOAD_URL" -DOWNLOAD_DIR="${HOME}/.copilot" -mkdir -p "$DOWNLOAD_DIR" - # Download and extract with error handling TMP_TARBALL="$(mktemp)" if command -v curl >/dev/null 2>&1; then @@ -48,8 +45,6 @@ if ! tar -tzf "$TMP_TARBALL" >/dev/null 2>&1; then exit 1 fi -tar -xz -C "$DOWNLOAD_DIR" -f "$TMP_TARBALL" -rm -f "$TMP_TARBALL" if [ "$(id -u 2>/dev/null || echo 1)" -eq 0 ]; then PREFIX="${PREFIX:-/usr/local}" else @@ -63,17 +58,13 @@ if ! mkdir -p "$INSTALL_DIR"; then fi # Install binary -if [ -f "$DOWNLOAD_DIR/copilot" ]; then - if [ -f "$INSTALL_DIR/copilot" ]; then - echo "Notice: Replacing copilot binary found at $INSTALL_DIR/copilot." - fi - mv -f "$DOWNLOAD_DIR/copilot" "$INSTALL_DIR/copilot" - chmod +x "$INSTALL_DIR/copilot" - echo "✓ GitHub Copilot CLI installed to $INSTALL_DIR/copilot" -else - echo "Error: copilot binary not found in tarball" >&2 - exit 1 +if [ -f "$INSTALL_DIR/copilot" ]; then + echo "Notice: Replacing copilot binary found at $INSTALL_DIR/copilot." fi +tar -xz -C "$INSTALL_DIR" -f "$TMP_TARBALL" +chmod +x "$INSTALL_DIR/copilot" +echo "✓ GitHub Copilot CLI installed to $INSTALL_DIR/copilot" +rm -f "$TMP_TARBALL" # Check if install directory is in PATH case ":$PATH:" in From 1b8ba1d6c92049c6a02edaabc7d2576e91d34977 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 13:38:17 -0500 Subject: [PATCH 053/208] Document running as root with sudo --- README.md | 2 ++ install.sh | 1 + 2 files changed, 3 insertions(+) diff --git a/README.md b/README.md index 3209a274..9a2b7382 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,8 @@ Or wget -qO- https://gh.io/copilot-install | bash ``` +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. diff --git a/install.sh b/install.sh index 21c49263..ec1075e8 100755 --- a/install.sh +++ b/install.sh @@ -4,6 +4,7 @@ set -e # GitHub Copilot CLI Installation Script # Usage: curl -fsSL https://gh.io/copilot-install | bash # or: wget -qO- https://gh.io/copilot-install | bash +# Use | sudo bash to run as root and install to /usr/local/bin # Export PREFIX to install to $PREFIX/bin/ directory (default: /usr/local for # root, $HOME/.local for non-root), e.g., export PREFIX=$HOME/custom to install # to $HOME/custom/bin From c068e984906bf2f590df075014b96bd6629939f0 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 13:48:10 -0500 Subject: [PATCH 054/208] Reorganize --- README.md | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 9a2b7382..6bdf404e 100644 --- a/README.md +++ b/README.md @@ -39,29 +39,19 @@ If you have access to GitHub Copilot via your organization or enterprise, you ca ### Installation -#### Any platform with npm - -```bash -npm install -g @github/copilot -``` - -#### Windows - -Install with [WinGet](https://github.com/microsoft/winget-cli): +Install with [WinGet](https://github.com/microsoft/winget-cli) (Windows): ```bash winget install GitHub.Copilot ``` -#### macOS - -Install with [Homebrew](https://formulae.brew.sh/cask/copilot-cli): +Install with [Homebrew](https://formulae.brew.sh/cask/copilot-cli) (macOS and Linux): ```bash brew install copilot-cli ``` -#### macOS and Linux +Install with the install script (macOS and Linux): ```bash curl -fsSL https://gh.io/copilot-install | bash @@ -73,6 +63,12 @@ Or wget -qO- https://gh.io/copilot-install | bash ``` +Install with [npm](https://www.npmjs.com/package/@github/copilot) (macOS, Linux, and Windows): + +```bash +npm install -g @github/copilot +``` + 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` From fe9686a0162545db740205695b495d3c95267491 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 13:54:50 -0500 Subject: [PATCH 055/208] Attempt to use winget --- install.sh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index ec1075e8..0bef6d27 100755 --- a/install.sh +++ b/install.sh @@ -12,10 +12,19 @@ set -e echo "Installing GitHub Copilot CLI..." # Detect platform -case "$(uname -s)" in +case "$(uname -s || echo "")" in Darwin*) PLATFORM="darwin" ;; Linux*) PLATFORM="linux" ;; - *) echo "Error: Unsupported platform $(uname -s). For Windows, we recommend using: winget install GitHub.Copilot" >&2 ; exit 1 ;; + *) + if command -v winget >/dev/null 2>&1; then + echo "Windows detected. Installing via winget..." + winget install GitHub.Copilot + exit $? + else + echo "Error: Windows detected but winget not found. Please see https://gh.io/install-copilot-readme" >&2 + exit 1 + fi + ;; esac # Detect architecture From 791b545a3ece10b36468376977aac8a49ae9f6da Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 13:56:45 -0500 Subject: [PATCH 056/208] Add comment --- install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install.sh b/install.sh index 0bef6d27..39f069fa 100755 --- a/install.sh +++ b/install.sh @@ -55,6 +55,7 @@ if ! tar -tzf "$TMP_TARBALL" >/dev/null 2>&1; then exit 1 fi +# Check if running as root, fallback to non-root if [ "$(id -u 2>/dev/null || echo 1)" -eq 0 ]; then PREFIX="${PREFIX:-/usr/local}" else From c8b4af02304f598aa74858de768dfd787d50a6fc Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 15:00:46 -0500 Subject: [PATCH 057/208] Allow specifying a version for the install script --- README.md | 2 ++ install.sh | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6bdf404e..085f8837 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,8 @@ 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. + ### Launching the CLI ```bash diff --git a/install.sh b/install.sh index 39f069fa..c6632e0a 100755 --- a/install.sh +++ b/install.sh @@ -34,7 +34,17 @@ case "$(uname -m)" in *) echo "Error: Unsupported architecture $(uname -m)" >&2 ; exit 1 ;; esac -DOWNLOAD_URL="https://github.com/github/copilot-cli/releases/latest/download/copilot-${PLATFORM}-${ARCH}.tar.gz" +# Determine download URL based on VERSION +if [ -n "$VERSION" ]; then + # Prefix version with 'v' if not already present + case "$VERSION" in + v*) ;; + *) VERSION="v$VERSION" ;; + esac + DOWNLOAD_URL="https://github.com/github/copilot-cli/releases/download/${VERSION}/copilot-${PLATFORM}-${ARCH}.tar.gz" +else + DOWNLOAD_URL="https://github.com/github/copilot-cli/releases/latest/download/copilot-${PLATFORM}-${ARCH}.tar.gz" +fi echo "Downloading from: $DOWNLOAD_URL" # Download and extract with error handling From 3cda17302368a581a99091556b94b085362529b4 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 15:12:36 -0500 Subject: [PATCH 058/208] Add example for installing a specific version in README --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 085f8837..b922eb59 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,12 @@ 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 +curl -fsSL https://gh.io/copilot-install | VERSION="v0.0.369" PREFIX="$HOME/custom" bash +``` + ### Launching the CLI ```bash From 0462850bdf2cc8c5523d85c943227f75b9ce344b Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 12 Dec 2025 21:53:59 -0500 Subject: [PATCH 059/208] Add prerelease options to installation docs Also fix an issue where the npm instructions got put in the middle of the curl instructions. --- README.md | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index b922eb59..1cff9f51 100644 --- a/README.md +++ b/README.md @@ -45,28 +45,40 @@ Install with [WinGet](https://github.com/microsoft/winget-cli) (Windows): winget install GitHub.Copilot ``` +```bash +winget install GitHub.Copilot.Prerelease +``` + Install with [Homebrew](https://formulae.brew.sh/cask/copilot-cli) (macOS and Linux): ```bash brew install copilot-cli ``` -Install with the install script (macOS and Linux): +```bash +brew install copilot-cli@prerelease +``` + +Install with [npm](https://www.npmjs.com/package/@github/copilot) (macOS, Linux, and Windows): ```bash -curl -fsSL https://gh.io/copilot-install | bash +npm install -g @github/copilot ``` -Or +```bash +npm install -g @github/copilot@prerelease +``` + +Install with the install script (macOS and Linux): ```bash -wget -qO- https://gh.io/copilot-install | bash +curl -fsSL https://gh.io/copilot-install | bash ``` -Install with [npm](https://www.npmjs.com/package/@github/copilot) (macOS, Linux, and Windows): +Or ```bash -npm install -g @github/copilot +wget -qO- https://gh.io/copilot-install | bash ``` Use `| sudo bash` to run as root and install to `/usr/local/bin`. From ae3eb91f76d982d18d0327bceab60efd75a1ca75 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Tue, 16 Dec 2025 09:50:54 -0500 Subject: [PATCH 060/208] Add checksum validation to install script --- install.sh | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/install.sh b/install.sh index c6632e0a..ef37c0e0 100755 --- a/install.sh +++ b/install.sh @@ -42,8 +42,10 @@ if [ -n "$VERSION" ]; then *) VERSION="v$VERSION" ;; esac DOWNLOAD_URL="https://github.com/github/copilot-cli/releases/download/${VERSION}/copilot-${PLATFORM}-${ARCH}.tar.gz" + CHECKSUMS_URL="https://github.com/github/copilot-cli/releases/download/${VERSION}/SHA256SUMS.txt" else DOWNLOAD_URL="https://github.com/github/copilot-cli/releases/latest/download/copilot-${PLATFORM}-${ARCH}.tar.gz" + CHECKSUMS_URL="https://github.com/github/copilot-cli/releases/latest/download/SHA256SUMS.txt" fi echo "Downloading from: $DOWNLOAD_URL" @@ -58,6 +60,41 @@ else exit 1 fi +# Attempt to download checksums file and validate +TMP_CHECKSUMS="$(mktemp)" +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 +elif command -v wget >/dev/null 2>&1; then + wget -qO "$TMP_CHECKSUMS" "$CHECKSUMS_URL" 2>/dev/null && CHECKSUMS_AVAILABLE=true +fi + +if [ "$CHECKSUMS_AVAILABLE" = true ]; then + TARBALL_NAME="copilot-${PLATFORM}-${ARCH}.tar.gz" + EXPECTED_CHECKSUM=$(grep "$TARBALL_NAME" "$TMP_CHECKSUMS" | awk '{print $1}') + if [ -n "$EXPECTED_CHECKSUM" ]; then + if command -v sha256sum >/dev/null 2>&1; then + ACTUAL_CHECKSUM=$(sha256sum "$TMP_TARBALL" | awk '{print $1}') + elif command -v shasum >/dev/null 2>&1; then + ACTUAL_CHECKSUM=$(shasum -a 256 "$TMP_TARBALL" | awk '{print $1}') + else + echo "Warning: No sha256sum or shasum found, skipping checksum validation." + ACTUAL_CHECKSUM="" + fi + if [ -n "$ACTUAL_CHECKSUM" ]; then + if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then + echo "Error: Checksum validation failed." >&2 + echo "Expected: $EXPECTED_CHECKSUM" >&2 + echo "Actual: $ACTUAL_CHECKSUM" >&2 + rm -f "$TMP_TARBALL" "$TMP_CHECKSUMS" + exit 1 + fi + echo "✓ Checksum validated" + fi + fi +fi +rm -f "$TMP_CHECKSUMS" + # 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 From 1d69e658630dee924d467a43d29be59f0c0110f6 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Tue, 16 Dec 2025 15:59:42 +0000 Subject: [PATCH 061/208] Use checksum file directly instead of grepping --- install.sh | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/install.sh b/install.sh index ef37c0e0..507f87d7 100755 --- a/install.sh +++ b/install.sh @@ -70,27 +70,24 @@ elif command -v wget >/dev/null 2>&1; then fi if [ "$CHECKSUMS_AVAILABLE" = true ]; then - TARBALL_NAME="copilot-${PLATFORM}-${ARCH}.tar.gz" - EXPECTED_CHECKSUM=$(grep "$TARBALL_NAME" "$TMP_CHECKSUMS" | awk '{print $1}') - if [ -n "$EXPECTED_CHECKSUM" ]; then - if command -v sha256sum >/dev/null 2>&1; then - ACTUAL_CHECKSUM=$(sha256sum "$TMP_TARBALL" | awk '{print $1}') - elif command -v shasum >/dev/null 2>&1; then - ACTUAL_CHECKSUM=$(shasum -a 256 "$TMP_TARBALL" | awk '{print $1}') + if command -v sha256sum >/dev/null 2>&1; then + if (cd "$(dirname "$TMP_TARBALL")" && sha256sum -c --ignore-missing "$TMP_CHECKSUMS" 2>/dev/null | grep -q "$(basename "$TMP_TARBALL")"); then + echo "✓ Checksum validated" else - echo "Warning: No sha256sum or shasum found, skipping checksum validation." - ACTUAL_CHECKSUM="" + echo "Error: Checksum validation failed." >&2 + rm -f "$TMP_TARBALL" "$TMP_CHECKSUMS" + exit 1 fi - if [ -n "$ACTUAL_CHECKSUM" ]; then - if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then - echo "Error: Checksum validation failed." >&2 - echo "Expected: $EXPECTED_CHECKSUM" >&2 - echo "Actual: $ACTUAL_CHECKSUM" >&2 - rm -f "$TMP_TARBALL" "$TMP_CHECKSUMS" - exit 1 - fi + elif command -v shasum >/dev/null 2>&1; then + if (cd "$(dirname "$TMP_TARBALL")" && shasum -a 256 -c --ignore-missing "$TMP_CHECKSUMS" 2>/dev/null | grep -q "$(basename "$TMP_TARBALL")"); then echo "✓ Checksum validated" + else + echo "Error: Checksum validation failed." >&2 + rm -f "$TMP_TARBALL" "$TMP_CHECKSUMS" + exit 1 fi + else + echo "Warning: No sha256sum or shasum found, skipping checksum validation." fi fi rm -f "$TMP_CHECKSUMS" From b80851857711cf99680e5a5dfb19153bf71082d3 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Tue, 16 Dec 2025 16:15:57 +0000 Subject: [PATCH 062/208] Refactor installation script to use temporary directory for downloads and checksum validation --- install.sh | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/install.sh b/install.sh index 507f87d7..01886f13 100755 --- a/install.sh +++ b/install.sh @@ -50,18 +50,20 @@ fi echo "Downloading from: $DOWNLOAD_URL" # Download and extract with error handling -TMP_TARBALL="$(mktemp)" +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" elif command -v wget >/dev/null 2>&1; then wget -qO "$TMP_TARBALL" "$DOWNLOAD_URL" else echo "Error: Neither curl nor wget found. Please install one of them." + rm -rf "$TMP_DIR" exit 1 fi # Attempt to download checksums file and validate -TMP_CHECKSUMS="$(mktemp)" +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 @@ -71,31 +73,30 @@ fi if [ "$CHECKSUMS_AVAILABLE" = true ]; then if command -v sha256sum >/dev/null 2>&1; then - if (cd "$(dirname "$TMP_TARBALL")" && sha256sum -c --ignore-missing "$TMP_CHECKSUMS" 2>/dev/null | grep -q "$(basename "$TMP_TARBALL")"); then + if (cd "$TMP_DIR" && sha256sum -c --ignore-missing SHA256SUMS.txt >/dev/null 2>&1); then echo "✓ Checksum validated" else echo "Error: Checksum validation failed." >&2 - rm -f "$TMP_TARBALL" "$TMP_CHECKSUMS" + rm -rf "$TMP_DIR" exit 1 fi elif command -v shasum >/dev/null 2>&1; then - if (cd "$(dirname "$TMP_TARBALL")" && shasum -a 256 -c --ignore-missing "$TMP_CHECKSUMS" 2>/dev/null | grep -q "$(basename "$TMP_TARBALL")"); then + if (cd "$TMP_DIR" && shasum -a 256 -c --ignore-missing SHA256SUMS.txt >/dev/null 2>&1); then echo "✓ Checksum validated" else echo "Error: Checksum validation failed." >&2 - rm -f "$TMP_TARBALL" "$TMP_CHECKSUMS" + rm -rf "$TMP_DIR" exit 1 fi else echo "Warning: No sha256sum or shasum found, skipping checksum validation." fi fi -rm -f "$TMP_CHECKSUMS" # 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 -f "$TMP_TARBALL" + rm -rf "$TMP_DIR" exit 1 fi @@ -119,7 +120,7 @@ fi tar -xz -C "$INSTALL_DIR" -f "$TMP_TARBALL" chmod +x "$INSTALL_DIR/copilot" echo "✓ GitHub Copilot CLI installed to $INSTALL_DIR/copilot" -rm -f "$TMP_TARBALL" +rm -rf "$TMP_DIR" # Check if install directory is in PATH case ":$PATH:" in From 812c7076ac2c8c6e5fd0468e7b8fc4430d0df147 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Wed, 17 Dec 2025 16:13:46 -0500 Subject: [PATCH 063/208] Revert "Update winget.yml to use app access token" --- .github/workflows/winget.yml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index e93b99a1..2c04f58b 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -15,18 +15,14 @@ jobs: # winget-create is only supported on Windows runs-on: windows-latest + + # winget-create will read the following environment variable to access the GitHub token needed for submitting a PR + # See https://aka.ms/winget-create-token + env: + WINGET_CREATE_GITHUB_TOKEN: ${{ secrets.WINGET_CREATE_GITHUB_TOKEN }} steps: - - name: Generate release app access token - id: app-token - uses: actions/create-github-app-token@v2 - with: - app-id: ${{ secrets.COPILOT_CLI_RELEASE_APP_ID }} - private-key: ${{ secrets.COPILOT_CLI_RELEASE_APP_PRIVATE_KEY }} - - name: Submit package using wingetcreate - env: - WINGET_CREATE_GITHUB_TOKEN: ${{ steps.app-token.outputs.token }} run: | # Set the package ID based on the release info $packageId = if (${{ !github.event.release.prerelease }}) { "GitHub.Copilot" } else { "GitHub.Copilot.Prerelease" } From fbe38b08187013d2c6280ddfe04a915b2079ba62 Mon Sep 17 00:00:00 2001 From: Kaleb Luedtke Date: Wed, 17 Dec 2025 22:45:22 -0600 Subject: [PATCH 064/208] Use string comparison to check the result of variable expansion --- .github/workflows/winget.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index 2c04f58b..094defe6 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -25,7 +25,7 @@ jobs: - name: Submit package using wingetcreate run: | # Set the package ID based on the release info - $packageId = if (${{ !github.event.release.prerelease }}) { "GitHub.Copilot" } else { "GitHub.Copilot.Prerelease" } + $packageId = if ('${{ !github.event.release.prerelease }}' -eq 'true') { 'GitHub.Copilot' } else { 'GitHub.Copilot.Prerelease' } # Get installer info from release event $assets = '${{ toJSON(github.event.release.assets) }}' | ConvertFrom-Json From 2ba3d6c23db41b287dd93f6c72df53f068ebb1be Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 18 Dec 2025 15:41:31 +0000 Subject: [PATCH 065/208] Update changelog.md for version 0.0.370 --- changelog.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/changelog.md b/changelog.md index 4caea57f..b5c800c5 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,19 @@ +## 0.0.370 - 2025-12-18 + +- Disabled MCP servers are now properly ignored when using --disable-mcp-server +- Shared sessions correctly render nested markdown codeblocks +- Log levels now output all messages of that level and higher severity +- Load CA certificates from system and environment variables +- Improve `/model` error messages to show available and unavailable models +- Model picker uses two-column layout with aligned multipliers and clearer visual indicators +- Add STDIO type as synonymous for Local for MCP servers in CLI configuration UI +- Diff display uses your configured git pager (delta, diff-so-fancy) +- Use platform-specific executable from npm install when available +- Publish SHA256 checksums for CLI executables in releases +- Add --available-tools and --excluded-tools to filter which tools the model can use +- Ensure animated or non-animated banner is displayed based on banner and screen reader preferences +- Fix truncation logic for codex models + ## 0.0.369 - 2025-12-11 - Add support for GPT-5.2 From ec0cc3d1d21473af1400f54f79f7a4de81d37bcc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 18 Dec 2025 23:51:57 +0000 Subject: [PATCH 066/208] Update changelog.md for version 0.0.371 --- changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changelog.md b/changelog.md index b5c800c5..7298b89d 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,8 @@ +## 0.0.371 - 2025-12-18 + +- Normal text respects terminal's default foreground color +- Update skills help text to reference correct ~/.copilot/skills/ directory + ## 0.0.370 - 2025-12-18 - Disabled MCP servers are now properly ignored when using --disable-mcp-server From f5256c67b112bf4eec47256cb87bb176ac0650e7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 19 Dec 2025 23:04:44 +0000 Subject: [PATCH 067/208] Update changelog.md for version 0.0.372 --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index 7298b89d..dbde2bb9 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 0.0.372 - 2025-12-19 + +- Enable disabled models directly in CLI when selecting or specifying them +- Add `/context` command to visualize token usage +- Add `--resume` flag to continue remote sessions locally +- Add URL permission controls which affect common shell commands which access the web +- Long commands no longer show duplicate intention headers when wrapping + ## 0.0.371 - 2025-12-18 - Normal text respects terminal's default foreground color From 8a0dd1a768a75b47f3c751e6653a771b327479d1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 30 Dec 2025 15:19:10 +0000 Subject: [PATCH 068/208] Update changelog.md for version 0.0.373 --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index dbde2bb9..b72d87a6 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 0.0.373 - 2025-12-30 + +- Tab completion for path arguments in slash commands like `/cwd` and `/add-dir` +- Enable Copilot Spaces tools in GitHub MCP Server +- GitHub URL resolves correctly for GHE +- Kill command filtering now allows commands when 'kill' appears as an argument +- Device code authorization polling begins immediately instead of waiting for clipboard and browser + ## 0.0.372 - 2025-12-19 - Enable disabled models directly in CLI when selecting or specifying them From de4f4257ce15438d6f52fa6ab4a641c5c19ee228 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 2 Jan 2026 11:03:54 -0500 Subject: [PATCH 069/208] Update prerequisites in README.md Removed Node.js and npm version requirements from prerequisites. --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 1cff9f51..408a4c72 100644 --- a/README.md +++ b/README.md @@ -30,8 +30,6 @@ We're still early in our journey, but with your feedback, we're rapidly iteratin ### Prerequisites -- **Node.js** v22 or higher -- **npm** v10 or higher - (On Windows) **PowerShell** v6 or higher - An **active Copilot subscription**. See [Copilot plans](https://github.com/features/copilot/plans?ref_cta=Copilot+plans+signup&ref_loc=install-copilot-cli&ref_page=docs). From 1fdb02f3e89d85e8c6ab7703189a6bdf1c5d1829 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 2 Jan 2026 20:06:51 +0000 Subject: [PATCH 070/208] Update changelog.md for version 0.0.374 --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index b72d87a6..1d6c02c0 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 0.0.374 - 2026-01-02 + +- MCP server type help text displays correct options +- Model picker shows clearer message with settings link when models are unavailable +- Add auto-compaction at 95% token limit and `/compact` command +- Built-in subagents for exploring and managing tasks +- Built in `web_fetch` tool for fetching web content + ## 0.0.373 - 2025-12-30 - Tab completion for path arguments in slash commands like `/cwd` and `/add-dir` From 026e2b70d2f349be10b21b012e5f5bf1c3edca98 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 7 Jan 2026 16:11:22 +0000 Subject: [PATCH 071/208] Update changelog.md for version 0.0.375 --- changelog.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/changelog.md b/changelog.md index 1d6c02c0..92d85a50 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,13 @@ +## 0.0.375 - 2026-01-07 + +- Add Ctrl+T to toggle reasoning summaries for supported models +- Add --share and --share-gist flags for session sharing in non-interactive mode +- File edits no longer hang when approving multiple concurrent edits +- Responses with reasoning no longer cause duplicate assistant messages +- Shutdown MCP servers after subagent execution completes +- SVG files are now treated as text files instead of binary images +- Fix 'Connection Error' issues due to subscription-based route used in chat completions + ## 0.0.374 - 2026-01-02 - MCP server type help text displays correct options From 2421059b5105780b8e8c2c2f1745e4361701e759 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 8 Jan 2026 15:06:17 +0000 Subject: [PATCH 072/208] Update changelog.md for version 0.0.376 --- changelog.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/changelog.md b/changelog.md index 92d85a50..ccb3cbce 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,10 @@ +## 0.0.376 - 2026-01-08 + +- Loading remote sessions using GraphQL ID or session picker +- Task tool subagents can now process images +- Downgrading CLI version no longer requires manually clearing downloaded packages +- Large tool outputs are written to disk and models are encouraged to use efficient search tools + ## 0.0.375 - 2026-01-07 - Add Ctrl+T to toggle reasoning summaries for supported models From 7797f817bd489e4e711389de77042c09b59bdbcf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 8 Jan 2026 23:01:30 +0000 Subject: [PATCH 073/208] Update changelog.md for version 0.0.377 --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index ccb3cbce..f226ab3f 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +## 0.0.377 - 2026-01-08 + +- Large file messages now encourage incremental reading with view_range instead of discouraging all reading + ## 0.0.376 - 2026-01-08 - Loading remote sessions using GraphQL ID or session picker From e17cea26e8ce2afbda40914033f31caa66241b33 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 13 Jan 2026 02:45:17 +0000 Subject: [PATCH 074/208] Update changelog.md for version 0.0.380 --- changelog.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/changelog.md b/changelog.md index f226ab3f..9a9f9718 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,19 @@ +## 0.0.380 - 2026-01-13 + +- Retrieving models handles network errors from firewalled routes gracefully, raises errors appropriately +- Bash command text aligns with output in timeline events +- Large output hints now suggest appropriate tools for different content types including JSON +- The `--agent` flag now works in interactive mode +- Provide inline feedback when rejecting tool permission requests so agents don't have to stop due to denying permissions +- web-fetch tool now rejects file:// URLs and suggests using view tool instead +- Terminal escape sequences no longer appear as text input +- Auto-compaction runs in background without blocking the conversation. +- Abort signals now propagate to sub-agents, allowing task cancellation to stop all nested agent work +- Custom agent tool aliasing for the task tool +- Allow reading files >10MB when using view_range parameter +- Sessions with large conversation history load faster on startup +- Send messages while Copilot is thinking to steer or queue + ## 0.0.377 - 2026-01-08 - Large file messages now encourage incremental reading with view_range instead of discouraging all reading From 6850b52b0739db071b5ba4b9fce1d867133dc1d9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 13 Jan 2026 18:58:24 +0000 Subject: [PATCH 075/208] Update changelog.md for version 0.0.381 --- changelog.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/changelog.md b/changelog.md index 9a9f9718..07890c09 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,10 @@ +## 0.0.381 - 2026-01-13 + +- Add --allow-all and --yolo flags to enable all permissions at once +- Ghost text and tab completion show correct alias when typing slash commands like '/q' for '/quit' +- Add `/new` as an alias for `/clear` command +- Shell mode history navigation now filters by prefix - typing `!git` and pressing up arrow cycles only through previous git commands + ## 0.0.380 - 2026-01-13 - Retrieving models handles network errors from firewalled routes gracefully, raises errors appropriately From 82d804589dcac3c14eed4298728758f90842a77d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 14 Jan 2026 19:27:35 +0000 Subject: [PATCH 076/208] Update changelog.md for version 0.0.382 --- changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changelog.md b/changelog.md index 07890c09..9ca30c29 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,8 @@ +## 0.0.382 - 2026-01-14 + +- Add support for GPT-5.2-Codex model +- Add `--config-dir` flag to override default configuration directory location + ## 0.0.381 - 2026-01-13 - Add --allow-all and --yolo flags to enable all permissions at once From 13811b7dd60d6adb0abd36b35b29d69be8c87b0a Mon Sep 17 00:00:00 2001 From: Ryan Hecht Date: Wed, 14 Jan 2026 15:53:41 -0500 Subject: [PATCH 077/208] Update copyright year in LICENSE.md to 2026 --- LICENSE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE.md b/LICENSE.md index 162ba79a..6b2141d1 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1 +1 @@ - Copyright (c) GitHub 2025. All rights reserved. Use is subject to GitHub's [Pre-release License Terms](https://docs.github.com/en/site-policy/github-terms/github-pre-release-license-terms) + Copyright (c) GitHub 2026. All rights reserved. Use is subject to GitHub's [Pre-release License Terms](https://docs.github.com/en/site-policy/github-terms/github-pre-release-license-terms) From b62368e7c48836f83f92791e8dd770b4d8944182 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 16 Jan 2026 06:41:30 +0000 Subject: [PATCH 078/208] Update changelog.md for version 0.0.384 --- changelog.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/changelog.md b/changelog.md index 9ca30c29..3fb93514 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,28 @@ +## 0.0.384 - 2026-01-16 + +- Add `&` prefix shortcut for delegating prompts to run in background (equivalent to `/delegate`) +- Tab completion cycles correctly based on typed prefix, not completed text +- Allow users to configure the reasoning effort for gpt models +- MCP servers now start correctly for custom agents +- Shell commands now display error output when they fail +- Fixed bug causing model call failures after compaction in some scenarios + +## 0.0.383 - 2026-01-15 + +- Login flow respects OAuth slow_down interval and includes debug logging +- Custom agent discovery now follows symbolic links to agent definition files +- Add additional prompting for custom agent delegation +- Add `/cd` as an alias for `/cwd` command +- Files created by the CLI are available for @-mention +- Enable extended thinking for Anthropic Claude models +- Screen reader mode shows static text instead of animated spinners during login +- Selecting 'approve for session' now auto-approves pending parallel permission requests of the same type +- Reasoning view setting persists across sessions +- Provide clearer error messages when repository is not found or access is denied +- Inject repo memories in the prompt and add memory storage tool to remember facts across sessions +- Show delay time when Copilot reads shell output with a delay +- Support proxy URLs without scheme (e.g., localhost:9999) + ## 0.0.382 - 2026-01-14 - Add support for GPT-5.2-Codex model From 86156171f84a2316b68865d6ebbda8b77f340bb2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 19 Jan 2026 18:54:46 +0000 Subject: [PATCH 079/208] Update changelog.md for version 0.0.385 --- changelog.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/changelog.md b/changelog.md index 3fb93514..44cd10fa 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,17 @@ +## 0.0.385 - 2026-01-19 + +- The store_memory tool is only included when memory is enabled for the user +- Input placeholder now says "Type" instead of "Enter" to avoid confusion with Enter key +- Cursor now correctly positioned at end of line when navigating history with down arrow +- The new memory feature gracefully handles Copilot running without a repository +- Control-C message now displays for 5 seconds instead of 1 second +- Display current intent in terminal tab title +- Combine all custom instruction files instead of using priority-based fallbacks +- Enable infinite sessions with automatic long-running context management through compaction checkpoints +- MCP server management when swapping between custom agents with /agent +- Press Escape to cancel manual `/compact` command +- Model switching from Codex to Opus preserves conversation history correctly + ## 0.0.384 - 2026-01-16 - Add `&` prefix shortcut for delegating prompts to run in background (equivalent to `/delegate`) @@ -6,9 +20,6 @@ - MCP servers now start correctly for custom agents - Shell commands now display error output when they fail - Fixed bug causing model call failures after compaction in some scenarios - -## 0.0.383 - 2026-01-15 - - Login flow respects OAuth slow_down interval and includes debug logging - Custom agent discovery now follows symbolic links to agent definition files - Add additional prompting for custom agent delegation @@ -50,6 +61,7 @@ - Allow reading files >10MB when using view_range parameter - Sessions with large conversation history load faster on startup - Send messages while Copilot is thinking to steer or queue +- Keyboard shortcuts: Ctrl+O now expands recent timeline, Ctrl+E expands all timeline (Ctrl+R unbound for future use) ## 0.0.377 - 2026-01-08 From 83e40d9f6b086c78c56a624942639584e1ee188b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 19 Jan 2026 21:33:20 +0000 Subject: [PATCH 080/208] Update changelog.md for version 0.0.386 --- changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changelog.md b/changelog.md index 44cd10fa..f5b24244 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,8 @@ +## 0.0.386 - 2026-01-19 + +- Background compaction preserves tool call sequences correctly +- Add `/resume` command to switch sessions + ## 0.0.385 - 2026-01-19 - The store_memory tool is only included when memory is enabled for the user From 933aa2fca7cf04fc6c95e46185d6de1acf03bba7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 20 Jan 2026 01:27:41 +0000 Subject: [PATCH 081/208] Update changelog.md for version 0.0.387 --- changelog.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/changelog.md b/changelog.md index f5b24244..be4914c8 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,9 @@ +## 0.0.387 - 2026-01-20 + +- Skill tool handles large directories without exceeding context limits +- Add ask_user tool for interactive clarification questions +- Add plan mode with dedicated panel for viewing implementation plans + ## 0.0.386 - 2026-01-19 - Background compaction preserves tool call sequences correctly From 1c4b5b005762c8e530849964d0f2507112e5253b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 20 Jan 2026 20:30:09 +0000 Subject: [PATCH 082/208] Update changelog.md for version 0.0.388 --- changelog.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/changelog.md b/changelog.md index be4914c8..f56ea7f5 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,13 @@ +## 0.0.388 - 2026-01-20 + +- Add `/review` command to analyze code changes +- Make session event messages more concise and visually clean +- Clean up old package versions during auto-update check to free disk space +- `--enable-all-github-mcp-tools` flag now enables read-write GitHub MCP tools +- `/share gist` shows helpful error on GitHub Enterprise Cloud with data residency +- Remove commit hash from CLI header +- Redesign CLI header with branded mascot and streamlined welcome message + ## 0.0.387 - 2026-01-20 - Skill tool handles large directories without exceeding context limits From 993cd5b31d6874117a9d71045f58e981f47cdde2 Mon Sep 17 00:00:00 2001 From: Patrick Nikoletich Date: Tue, 20 Jan 2026 17:00:08 -0800 Subject: [PATCH 083/208] Update to MIT license --- LICENSE.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/LICENSE.md b/LICENSE.md index 6b2141d1..cc8eeee3 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1 +1,21 @@ - Copyright (c) GitHub 2026. All rights reserved. Use is subject to GitHub's [Pre-release License Terms](https://docs.github.com/en/site-policy/github-terms/github-pre-release-license-terms) +MIT License + +Copyright (c) GitHub 2026 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From a949dc98a80903ecdb575630eb3c6b76504beeb7 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Wed, 21 Jan 2026 00:54:23 -0500 Subject: [PATCH 084/208] Check if copilot is available instead of parsing PATH --- install.sh | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/install.sh b/install.sh index 01886f13..ba84ec88 100755 --- a/install.sh +++ b/install.sh @@ -122,16 +122,13 @@ chmod +x "$INSTALL_DIR/copilot" echo "✓ GitHub Copilot CLI installed to $INSTALL_DIR/copilot" rm -rf "$TMP_DIR" -# Check if install directory is in PATH -case ":$PATH:" in - *":$INSTALL_DIR:"*) ;; - *) - echo "" - echo "Warning: $INSTALL_DIR is not in your PATH" - echo "Add it to your PATH by adding this line to your shell profile:" - echo " export PATH=\"\$PATH:$INSTALL_DIR\"" - ;; -esac +# Check if installed binary is accessible +if ! command -v copilot >/dev/null 2>&1; then + echo "" + echo "Warning: $INSTALL_DIR is not in your PATH" + echo "Add it to your PATH by adding this line to your shell profile:" + echo " export PATH=\"\$PATH:$INSTALL_DIR\"" +fi echo "" echo "Installation complete! Run 'copilot help' to get started." From 9880c60bc1848ee1888f50ca367a8bd5240de6a1 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Wed, 21 Jan 2026 00:59:21 -0500 Subject: [PATCH 085/208] Prompt to add to shell config file --- install.sh | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index ba84ec88..def51106 100755 --- a/install.sh +++ b/install.sh @@ -125,9 +125,31 @@ rm -rf "$TMP_DIR" # Check if installed binary is accessible if ! command -v copilot >/dev/null 2>&1; then echo "" - echo "Warning: $INSTALL_DIR is not in your PATH" - echo "Add it to your PATH by adding this line to your shell profile:" - echo " export PATH=\"\$PATH:$INSTALL_DIR\"" + echo "Notice: $INSTALL_DIR is not in your PATH" + export PATH="$PATH:$INSTALL_DIR" + echo "✓ Added $INSTALL_DIR to PATH for this session" + + # Detect shell rc file + case "$(basename "${SHELL:-/bin/sh}")" in + zsh) RC_FILE="$HOME/.zshrc" ;; + bash) + if [ -f "$HOME/.bash_profile" ]; then + RC_FILE="$HOME/.bash_profile" + else + RC_FILE="$HOME/.bashrc" + fi + ;; + *) RC_FILE="$HOME/.profile" ;; + esac + + # Prompt user to add to shell rc file + echo "" + printf "Would you like to add it to %s? [y/N] " "$RC_FILE" + read -r REPLY > "$RC_FILE" + echo "✓ Added PATH export to $RC_FILE" + fi fi echo "" From 24a3d001c666e2078c4741b20699a76a77e54a88 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Wed, 21 Jan 2026 12:08:56 -0500 Subject: [PATCH 086/208] Fix PATH handling in install script --- install.sh | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/install.sh b/install.sh index def51106..ee8655ae 100755 --- a/install.sh +++ b/install.sh @@ -126,29 +126,28 @@ rm -rf "$TMP_DIR" if ! command -v copilot >/dev/null 2>&1; then echo "" echo "Notice: $INSTALL_DIR is not in your PATH" - export PATH="$PATH:$INSTALL_DIR" - echo "✓ Added $INSTALL_DIR to PATH for this session" # Detect shell rc file case "$(basename "${SHELL:-/bin/sh}")" in zsh) RC_FILE="$HOME/.zshrc" ;; - bash) - if [ -f "$HOME/.bash_profile" ]; then - RC_FILE="$HOME/.bash_profile" - else - RC_FILE="$HOME/.bashrc" - fi - ;; + bash) RC_FILE="$HOME/.bashrc" ;; *) RC_FILE="$HOME/.profile" ;; esac - # Prompt user to add to shell rc file - echo "" - printf "Would you like to add it to %s? [y/N] " "$RC_FILE" - read -r REPLY > "$RC_FILE" - echo "✓ Added PATH export to $RC_FILE" + # 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" + fi + fi + else + echo "" + echo "To add $INSTALL_DIR to your PATH permanently, add this to $RC_FILE:" + echo " export PATH=\"$INSTALL_DIR:\$PATH\"" fi fi From f7466079a42815e31478bae5f68af8d8cad2215f Mon Sep 17 00:00:00 2001 From: Patrick Nikoletich Date: Wed, 21 Jan 2026 14:12:03 -0800 Subject: [PATCH 087/208] Update LICENSE.md --- LICENSE.md | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index cc8eeee3..a7002deb 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,21 +1 @@ -MIT License - -Copyright (c) GitHub 2026 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +Copyright (c) GitHub 2026. All rights reserved. Use is subject to GitHub's [Pre-release License Terms](https://docs.github.com/en/site-policy/github-terms/github-pre-release-license-terms) From bc44fc185251f91a5ff01557e732f98f0d324425 Mon Sep 17 00:00:00 2001 From: Matt Ellis Date: Wed, 21 Jan 2026 15:48:00 -0800 Subject: [PATCH 088/208] Allow installing prerelease CLI with `install.sh` --- install.sh | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index ee8655ae..fb3d3d49 100755 --- a/install.sh +++ b/install.sh @@ -35,7 +35,24 @@ case "$(uname -m)" in esac # Determine download URL based on VERSION -if [ -n "$VERSION" ]; then +if [ "${VERSION}" = "latest" ] || [ -z "$VERSION" ]; then + DOWNLOAD_URL="https://github.com/github/copilot-cli/releases/latest/download/copilot-${PLATFORM}-${ARCH}.tar.gz" + CHECKSUMS_URL="https://github.com/github/copilot-cli/releases/latest/download/SHA256SUMS.txt" +elif [ "${VERSION}" = "prerelease" ]; then + # Get the latest prerelease tag + if ! command -v git >/dev/null 2>&1; 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}')" + if [ -z "$VERSION" ]; then + echo "Error: Could not determine prerelease version" >&2 + exit 1 + fi + echo "Latest prerelease version: $VERSION" + DOWNLOAD_URL="https://github.com/github/copilot-cli/releases/download/${VERSION}/copilot-${PLATFORM}-${ARCH}.tar.gz" + CHECKSUMS_URL="https://github.com/github/copilot-cli/releases/download/${VERSION}/SHA256SUMS.txt" +else # Prefix version with 'v' if not already present case "$VERSION" in v*) ;; @@ -43,9 +60,6 @@ if [ -n "$VERSION" ]; then esac DOWNLOAD_URL="https://github.com/github/copilot-cli/releases/download/${VERSION}/copilot-${PLATFORM}-${ARCH}.tar.gz" CHECKSUMS_URL="https://github.com/github/copilot-cli/releases/download/${VERSION}/SHA256SUMS.txt" -else - DOWNLOAD_URL="https://github.com/github/copilot-cli/releases/latest/download/copilot-${PLATFORM}-${ARCH}.tar.gz" - CHECKSUMS_URL="https://github.com/github/copilot-cli/releases/latest/download/SHA256SUMS.txt" fi echo "Downloading from: $DOWNLOAD_URL" From 80859fc72657a2daee0b3f17b3a48b08b7199c74 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 22 Jan 2026 02:31:13 +0000 Subject: [PATCH 089/208] Update changelog.md for version 0.0.389 --- changelog.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/changelog.md b/changelog.md index f56ea7f5..df53729e 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,25 @@ +## 0.0.389 - 2026-01-22 + +- Improve `/session` command visual hierarchy and colors +- Subagents receive correct tools when using different models +- grep and glob tools now find hidden files and dotfiles +- Add MSI installer for Windows +- Remove Node version requirement from npm package +- MCP servers can now authenticate using OAuth 2.0 with automatic token management and refresh +- Display progress messages from MCP tools in timeline +- Plugins can bundle MCP servers that load automatically when installed +- Invoke skills using slash commands like /skill-name +- Add `/diff` command to review changes made during the current session +- Show warning when repository memory fails to load +- Add `/plugin` command to install skills from plugin marketplaces +- Subagents no longer hang on user input requests +- Rate limit errors now show retry timing in user-friendly messages +- Messages sent during `/compact` are automatically queued +- Add `/models` as alias for `/model` command +- Change license to MIT License +- Reduce padding in welcome header +- Shell commands (!) can run in parallel while agent is working + ## 0.0.388 - 2026-01-20 - Add `/review` command to analyze code changes From cf2d163d94f957befc017d118eb1cfea89d6db4d Mon Sep 17 00:00:00 2001 From: Jason Etcovitch Date: Wed, 21 Jan 2026 21:45:48 -0500 Subject: [PATCH 090/208] Correct changelog --- changelog.md | 1 - 1 file changed, 1 deletion(-) diff --git a/changelog.md b/changelog.md index df53729e..b0cd5ae0 100644 --- a/changelog.md +++ b/changelog.md @@ -11,7 +11,6 @@ - Invoke skills using slash commands like /skill-name - Add `/diff` command to review changes made during the current session - Show warning when repository memory fails to load -- Add `/plugin` command to install skills from plugin marketplaces - Subagents no longer hang on user input requests - Rate limit errors now show retry timing in user-friendly messages - Messages sent during `/compact` are automatically queued From 7e5e619829d1ef719c6a37aeca0128c76e43f614 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Thu, 22 Jan 2026 00:42:53 -0500 Subject: [PATCH 091/208] Change splash screen image for Copilot CLI Updated splash screen image URL in README.md. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 408a4c72..0d20ef53 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ GitHub Copilot CLI brings AI-powered coding assistance directly to your command See [our official documentation](https://docs.github.com/copilot/concepts/agents/about-copilot-cli) for more information. -![Image of the splash screen for the Copilot CLI](https://github.com/user-attachments/assets/51ac25d2-c074-467a-9c88-38a8d76690e3) +![Image of the splash screen for the Copilot CLI](https://github.com/user-attachments/assets/aba8d4a4-9919-48de-98a3-66c9897025fa) ## 🚀 Introduction and Overview From 800ee0dbfe711c9d43fb9ea0d6251263d72ae434 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Thu, 22 Jan 2026 00:48:52 -0500 Subject: [PATCH 092/208] Change splash screen image for Copilot CLI Updated the splash screen image for the Copilot CLI in the README. --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0d20ef53..d5dae010 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,8 @@ GitHub Copilot CLI brings AI-powered coding assistance directly to your command See [our official documentation](https://docs.github.com/copilot/concepts/agents/about-copilot-cli) for more information. -![Image of the splash screen for the Copilot CLI](https://github.com/user-attachments/assets/aba8d4a4-9919-48de-98a3-66c9897025fa) +![Image of the splash screen for the Copilot CLI](https://github.com/user-attachments/assets/f40aa23d-09dd-499e-9457-1d57d3368887) + ## 🚀 Introduction and Overview From d3fe8649ac07cee90ead437134d587605e143a53 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 22 Jan 2026 20:15:50 +0000 Subject: [PATCH 093/208] Update changelog.md for version 0.0.390 --- changelog.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/changelog.md b/changelog.md index b0cd5ae0..c4e63caf 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,9 @@ +## 0.0.390 - 2026-01-22 + +- Preserve extended thinking after compaction +- Custom agents with MCP servers avoid unnecessary restarts +- Enable steering during plan mode + ## 0.0.389 - 2026-01-22 - Improve `/session` command visual hierarchy and colors From 9497418d171ea859099a5c914c0cf3626ba97f11 Mon Sep 17 00:00:00 2001 From: Ryan Hecht Date: Thu, 22 Jan 2026 16:27:02 -0500 Subject: [PATCH 094/208] Update LICENSE.md --- LICENSE.md | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/LICENSE.md b/LICENSE.md index a7002deb..49e10861 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1 +1,35 @@ -Copyright (c) GitHub 2026. All rights reserved. Use is subject to GitHub's [Pre-release License Terms](https://docs.github.com/en/site-policy/github-terms/github-pre-release-license-terms) +GitHub Copilot CLI License + +1. License Grant +Subject to the terms of this License, GitHub grants you a non‑exclusive, non‑transferable, royalty‑free license to install and run copies of the GitHub Copilot CLI (the “Software”). Subject to Section 2 below, GitHub also grants you the right to reproduce and redistribute unmodified copies of the Software as part of an application or service. + +2. Redistribution Rights and Conditions +You may reproduce and redistribute the Software only in accordance with all of the following conditions: +The Software is distributed only in unmodified form; +The Software is redistributed solely as part of an application or service that provides material functionality beyond the Software itself; +The Software is not distributed on a standalone basis or as a primary product; +You include a copy of this License and retain all applicable copyright, trademark, and attribution notices; and +Your application or service is licensed independently of the Software. +Nothing in this License restricts your choice of license for your application or service, including distribution under an open source license. This License applies solely to the Software and does not modify or supersede the license terms governing your application or its source code. + +3. Scope Limitations +This License does not grant you the right to: +Modify, adapt, translate, or create derivative works of the Software; +Redistribute the Software except as expressly permitted in Section 2; +Remove, alter, or obscure any proprietary notices included in the Software; or +Use GitHub trademarks, logos, or branding except as necessary to identify the Software. + +4. Reservation of Rights +GitHub and its licensors retain all right, title, and interest in and to the Software. All rights not expressly granted by this License are reserved. + +5. Disclaimer of Warranty +THE SOFTWARE IS PROVIDED “AS IS,” WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON‑INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF USE OF THE SOFTWARE REMAINS WITH YOU. + +6. Limitation of Liability +TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL GITHUB OR ITS LICENSORS BE LIABLE FOR ANY DAMAGES ARISING OUT OF OR RELATING TO THIS LICENSE OR THE USE OR DISTRIBUTION OF THE SOFTWARE, WHETHER IN CONTRACT, TORT, OR OTHERWISE. + +7. Termination +This License terminates automatically if you fail to comply with its terms. Upon termination, you must cease all use and distribution of the Software. + +8. Notice Regarding GitHub Services (Informational Only) +Use of the Software may require access to GitHub services and is subject to the applicable GitHub Terms of Service and GitHub Copilot terms. This License governs only rights related to the Software and does not grant any rights to access or use GitHub services. From 7b4edbe0cd150d8834d28e61a551403478d555f9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 22 Jan 2026 23:09:00 +0000 Subject: [PATCH 095/208] Update changelog.md for version 0.0.392 --- changelog.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/changelog.md b/changelog.md index c4e63caf..3cf00f90 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,10 @@ +## 0.0.392 - 2026-01-22 + +- Add `/plugin` command for plugin marketplace management +- Add /rename command as alias for /session rename +- Add /plugin update command to update installed plugins +- Edit tool now displays diffs when expanded in timeline + ## 0.0.390 - 2026-01-22 - Preserve extended thinking after compaction From 51adfe935600c790cabb940057c39e738e00ab08 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 23 Jan 2026 15:32:29 +0000 Subject: [PATCH 096/208] Update changelog.md for version 0.0.393 --- changelog.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/changelog.md b/changelog.md index 3cf00f90..81385c8e 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,12 @@ +## 0.0.393 - 2026-01-23 + +- Show conversation compaction status as timeline messages instead of header indicator +- Memory loading no longer warns when outside a Git repository +- Add support for GHE Cloud (\*.ghe.com) remote custom agents +- Plugin uninstall now works correctly +- Expose MCP server and tool names in tool.execution_start events for better error handling +- Add Esc-Esc to undo file changes to any previous snapshot + ## 0.0.392 - 2026-01-22 - Add `/plugin` command for plugin marketplace management From c8cf7c5b2766d095a74dc3d7d51da50fa5060ab7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 24 Jan 2026 03:48:42 +0000 Subject: [PATCH 097/208] Update changelog.md for version 0.0.394 --- changelog.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/changelog.md b/changelog.md index 81385c8e..881a03b4 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,23 @@ +## 0.0.394 - 2026-01-24 + +- Deduplicate identical model instruction files to save context +- Exit summary displays accurate usage metrics instead of zeros +- Getting git branch works in repositories with no commits +- Add support for GitHub Enterprise Cloud (\*.ghe.com) in /delegate command +- Directory path uses consistent muted text color with git branch and model display +- Plugin skills work in agent responses +- Timeline hides startup messages to reduce noise +- Fixed timeline entry regression where read_agent and other tools showed incorrect content +- Git status updates on-demand instead of polling every 15 seconds +- SDK supports infinite sessions with automatic context compaction +- Memory loading errors are handled gracefully without user warnings +- `/delegate` command accepts optional prompt, uses conversation context +- Auto-update no longer removes old CLI package versions +- Improve task completion with clearer detached process guidance +- Simplified bottom bar by hiding some keyboard hints +- Queue slash commands alongside messages using Ctrl+D +- Press `/` to search sessions in `/resume` + ## 0.0.393 - 2026-01-23 - Show conversation compaction status as timeline messages instead of header indicator From 94b3b3888522becf162480b563a4473f0477bb19 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 26 Jan 2026 18:09:57 +0000 Subject: [PATCH 098/208] 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 099/208] 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 100/208] 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 101/208] 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 102/208] 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 103/208] 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 104/208] 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 105/208] 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 106/208] 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 107/208] 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 108/208] 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 109/208] 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 110/208] 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 111/208] 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 112/208] 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 113/208] 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 114/208] 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 115/208] 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 116/208] 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 117/208] 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 118/208] 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 119/208] 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 120/208] 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 121/208] 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 122/208] 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 123/208] 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 124/208] 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 125/208] 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 126/208] 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 127/208] 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 128/208] 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 129/208] 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 130/208] 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 131/208] 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 132/208] 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 133/208] 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 134/208] 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 135/208] 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 136/208] 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 137/208] 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 138/208] 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 139/208] 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 140/208] 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 141/208] 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 142/208] 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 143/208] 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 144/208] 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 145/208] 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 146/208] 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 147/208] 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 148/208] 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 149/208] 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 150/208] 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 151/208] 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 152/208] 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 153/208] 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 154/208] 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 155/208] 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 156/208] 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 157/208] 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 158/208] 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 159/208] 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 160/208] 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 161/208] 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 162/208] 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 163/208] 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 164/208] 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 165/208] 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 166/208] 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 167/208] 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 168/208] 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 169/208] 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 From 89ee4337698085cc9d3c6cf81ec8d5ee30cb9979 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 13 Apr 2026 13:47:47 +0000 Subject: [PATCH 170/208] Update changelog.md for version 1.0.25 --- changelog.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/changelog.md b/changelog.md index 117c9c5d..f27fe2cf 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,24 @@ +## 1.0.25 - 2026-04-13 + +- Install MCP servers from the registry with guided configuration directly in the CLI +- Esc key works correctly after a failed /resume session lookup +- Persist resolved model in session history and defer model changes during active turns +- ACP clients can now provide MCP servers (stdio, HTTP, SSE) when starting or loading sessions +- The --config-dir flag is now respected when selecting the active model +- Add /env command to show loaded environment details (instructions, MCP servers, skills, agents, plugins) +- /share appends the correct file extension (.md or .html) when a custom output path is given without one +- /add-dir accepts relative paths (e.g. ./src, ../sibling) and resolves them to absolute paths +- Custom instruction files preserve special characters like & and +- Skill picker list scrolls correctly when the list exceeds the terminal height +- MCP client reports the correct CLI version during server handshake +- /logout shows a warning when signed in via gh CLI, PAT, API key, or environment variable, since /logout only manages OAuth sessions +- Alt+D now deletes the word in front of the cursor in text input +- /share html shows a file:// URL and supports Ctrl+X O to open the file directly +- Skill instructions persist correctly across conversation turns +- You can now remote control your CLI sessions using --remote or /remote +- MCP remote server connections automatically retry on transient network failures +- Share Research TOC sidebar anchor links navigate correctly within the page + ## 1.0.24 - 2026-04-10 - preToolUse hooks now respect modifiedArgs/updatedInput, and additionalContext fields From 559a22a34dd353b47e1e4e50c7b40490a78b91b8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 14 Apr 2026 18:45:32 +0000 Subject: [PATCH 171/208] Update changelog.md for version 1.0.26 --- changelog.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/changelog.md b/changelog.md index f27fe2cf..7f5b0769 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,24 @@ +## 1.0.26 - 2026-04-14 + +- Escape key reliably dismisses ask_user and elicitation prompts without getting stuck +- Spurious directory access prompts no longer appear for arguments inside find -exec blocks +- Agent sessions no longer fail with unrecoverable errors when context compaction splits a tool call across a checkpoint boundary +- Single-segment slash-prefixed tokens (e.g. /help, /start) no longer treated as file paths in bash commands +- Anthropic BYOM correctly includes image data when viewing image files +- Permission prompt notification hook only fires when a prompt is actually shown to the user +- ctrl+o now expands all timeline entries, same as ctrl+e +- Remote tab correctly shows Copilot coding agent tasks and supports steering without requiring a pull request +- Rename "steering" to "remote control" in --remote flag and /remote command help text +- Avoid sending duplicate custom instruction files (e.g. copilot-instructions.md and CLAUDE.md with identical content) to reduce wasted tokens per turn +- Plugin hooks receive PLUGIN_ROOT, COPILOT_PLUGIN_ROOT, and CLAUDE_PLUGIN_ROOT env vars with the plugin's installation directory +- ACP server binds to localhost only, preventing unintended network exposure +- Installing a plugin named 'git' from a marketplace no longer fails due to incorrect URL parsing +- Enterprise login accepts hostnames without a URL scheme (e.g. 'github.example.com') +- LSP language servers correctly initialize on Windows using proper file URI paths +- Relative paths in file edit operations resolve against the session working directory +- Session scope selector in sync prompt is now more prominent and keyboard-navigable with left/right arrow keys +- Instruction files with specific applyTo patterns are consolidated into a table instead of inlining full content, reducing context window usage + ## 1.0.25 - 2026-04-13 - Install MCP servers from the registry with guided configuration directly in the CLI From ae7b37462939c1b7d9c3180bae2ff4ff0c24aa84 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 15 Apr 2026 01:23:17 +0000 Subject: [PATCH 172/208] Update changelog.md for version 1.0.27 --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index 7f5b0769..f409c544 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 1.0.27 - 2026-04-15 + +- Show a clear message when Copilot Pro trial is paused instead of a generic policy error +- Status bar shows @files and #issues hints while typing, and /help hint when the slash command picker is open +- Clipboard copy on WSL no longer leaks an invisible BOM character into pasted text +- Add /ask command to ask a quick question without affecting conversation history +- Add `copilot plugin marketplace update` command to refresh plugin catalogs + ## 1.0.26 - 2026-04-14 - Escape key reliably dismisses ask_user and elicitation prompts without getting stuck From 89730422b029c54eebff51dc05680c985e527120 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 16 Apr 2026 00:06:11 +0000 Subject: [PATCH 173/208] Update changelog.md for version 1.0.28 --- changelog.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/changelog.md b/changelog.md index f409c544..d80917ea 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,15 @@ +## 1.0.28 - 2026-04-16 + +- Permission prompts show correct repository path when working inside git submodules +- Background agent completion notifications are not sent redundantly when read_agent is already waiting for the result +- MCP migration hint now links to documentation with platform-specific instructions instead of embedding shell commands inline +- Azure resource IDs no longer trigger false path security warnings when running az CLI commands +- Rewind picker navigation simplified to arrow keys and Enter, removing the confusing 1-9 quick-select shortcut +- A clear error message is displayed when the configured editor cannot be launched +- Mascot plays a short blink sequence on startup instead of blinking continuously +- Connect to CLI remote control sessions from the —resume picker +- Support COPILOT_DISABLE_TERMINAL_TITLE environment variable to opt out of terminal title updates + ## 1.0.27 - 2026-04-15 - Show a clear message when Copilot Pro trial is paused instead of a generic policy error From 709b59e3f09291b92a52322bcec4a5c7ee7d591c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 16 Apr 2026 15:03:24 +0000 Subject: [PATCH 174/208] Update changelog.md for version 1.0.29 --- changelog.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/changelog.md b/changelog.md index d80917ea..f1b503da 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,13 @@ +## 1.0.29 - 2026-04-16 + +- Remote MCP server config now allows omitting the type field, defaulting to http +- Blinking cursor maintains stable width so text does not shift during blink +- Add --list-env flag to log loaded plugins, agents, skills, and MCP servers when running in prompt mode, helping verify environment configuration in CI pipelines +- Add support for Claude Opus 4.7 +- Shell commands and MCP servers now receive COPILOT_AGENT_SESSION_ID as an environment variable +- Agent correctly identifies repository owner from git remote URL rather than local username +- Terminal state correctly restored after a crash exit on Windows + ## 1.0.28 - 2026-04-16 - Permission prompts show correct repository path when working inside git submodules From 2f883edd20dd13306452afe18f2a21c663ed2af8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 16 Apr 2026 19:10:03 +0000 Subject: [PATCH 175/208] Update changelog.md for version 1.0.30 --- changelog.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/changelog.md b/changelog.md index f1b503da..cc957b9c 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,13 @@ +## 1.0.30 - 2026-04-16 + +- Feedback form links to the correct GitHub repository +- /undo shows an explanatory message when rewind is unavailable (e.g., not in a git repository or no commits yet) +- Plugin skills and commands are correctly discovered when using skills.discover +- Add /statusline command (with /footer alias) to customize which items appear in the status bar (directory, branch, effort, context window, quota) +- Remove --list-env flag that logged loaded plugins, agents, skills, and MCP servers in prompt mode +- Image paste from clipboard works again after regression in bracketed paste handling +- Both Ctrl+V and Meta+V trigger image paste on all platforms + ## 1.0.29 - 2026-04-16 - Remote MCP server config now allows omitting the type field, defaulting to http From 3b72dea701a24798a8e996e2c74cf54a6bac8bb0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 16 Apr 2026 21:21:44 +0000 Subject: [PATCH 176/208] Update changelog.md for version 1.0.31 --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index cc957b9c..037ecf67 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +## 1.0.31 - 2026-04-16 + +- Prompt frame no longer causes rendering issues on Windows and Ubuntu terminals + ## 1.0.30 - 2026-04-16 - Feedback form links to the correct GitHub repository From 4e51f5a9c5dae0e4a40a2f653ee17167a2aa4806 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 17 Apr 2026 21:51:44 +0000 Subject: [PATCH 177/208] Update changelog.md for version 1.0.32 --- changelog.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/changelog.md b/changelog.md index 037ecf67..54860121 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,26 @@ +## 1.0.32 - 2026-04-17 + +- Allow short session ID prefixes (7+ hex chars) with --resume and /resume instead of the full ID +- /feedback saves the bundle to TEMP when the working directory is not writable +- Select `auto` as your model to let Copilot automatically pick the best available model for each session +- Add --print-debug-info flag to display version, terminal capabilities, and environment variables +- Show warnings when approaching 75% and 90% of your weekly usage limit +- Attach supported document files to prompts for the agent to read and reason about +- Add --connect flag to directly connect to a remote session by ID +- copilot login --host now correctly authenticates with GitHub Enterprise Cloud (GHE) instances +- Current date and time in agent context now includes local timezone offset +- Terminal progress indicator stays visible while the agent is thinking +- Status line no longer shows stray Unicode glyphs in terminals like Neovim after /clear +- Rewind works correctly after using /cd to change directories +- Multiline input is preserved when using /plan and plan mode +- Backspace correctly exits shell mode only when the input is empty +- Mouse wheel scrolling works correctly in the /ask dialog +- Rate-limited sessions now pause queued messages and automatically retry instead of dropping them +- Tables render with correct column widths, emoji support, and stable borders during terminal resize +- Rate limit error messages now show specific context based on the type of limit reached +- Session idle timeout is now configurable via --session-idle-timeout; disabled by default +- Skills that exceed the token limit are still discoverable and invocable by name + ## 1.0.31 - 2026-04-16 - Prompt frame no longer causes rendering issues on Windows and Ubuntu terminals From 75fbe0c30ce408248dfbc12ee2e9f364ab3092c4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 20 Apr 2026 17:05:35 +0000 Subject: [PATCH 178/208] Update changelog.md for version 1.0.33 --- changelog.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/changelog.md b/changelog.md index 54860121..f148e8c6 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,18 @@ +## 1.0.33 - 2026-04-20 + +- Resuming a remote session with --resume or --continue automatically inherits the --remote flag without needing to re-specify it +- Add /bug, /continue, /release-notes, /export, and /reset as command aliases +- Slash command picker suggests similar commands when you type an unrecognized or misspelled slash command +- Add /upgrade as an alias for the /update command +- Grep no longer times out on large repositories when content exclusion policies are enabled +- Non-interactive mode waits for all background agents to finish before exiting +- Skill picker correctly truncates CJK/Japanese descriptions and long skill names without wrapping +- Slash command picker selects the highlighted command when pressing Enter +- ctrl+t to toggle reasoning display is now listed in the /help and ? overlay +- Sub-agents in auto mode now inherit the session model +- Show usage limit warnings at 50% and 95% capacity, giving earlier notice before hitting rate limits +- Use j/k for vim-style navigation and x to kill tasks in the tasks dialog + ## 1.0.32 - 2026-04-17 - Allow short session ID prefixes (7+ hex chars) with --resume and /resume instead of the full ID From 65944372230c09dc862de673ff6eeb869b9787f3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 20 Apr 2026 18:39:41 +0000 Subject: [PATCH 179/208] Update changelog.md for version 1.0.34 --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index f148e8c6..a906c5a2 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +## 1.0.34 - 2026-04-20 + +- Rate limit error message now says "session rate limit" instead of "global rate limit" + ## 1.0.33 - 2026-04-20 - Resuming a remote session with --resume or --continue automatically inherits the --remote flag without needing to re-specify it From d7a05815d7d6d8fcda14fcd59c2f408748da4ed0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 23 Apr 2026 23:24:25 +0000 Subject: [PATCH 180/208] Update changelog.md for version 1.0.35 --- changelog.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/changelog.md b/changelog.md index a906c5a2..c9466491 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,51 @@ +## 1.0.35 - 2026-04-23 + +- Slash commands support tab-completion for arguments and subcommands +- Shell escape commands (!) now use your $SHELL when set, instead of always invoking /bin/sh +- Permission prompts appear correctly in remote sessions for the CLI TUI +- Session selector shows branch names, idle/in-use status, and has improved search with cursor support +- Model change notification shows both the previous and new model name +- /update and /version commands now honor your configured update channel +- Session sync prompt uses clearer labels and explains GitHub.com cross-device sync +- Support COPILOT_GH_HOST environment variable for GitHub hostname, taking precedence over GH_HOST +- Press Ctrl+Y (in addition to Tab) to accept the highlighted option in completion popups (@-mentions, path completions, slash commands) +- Add /session delete, delete , and delete-all subcommands, and x-to-delete in the session picker +- MCP server names with spaces and special characters are now supported +- Skill slash commands (e.g. /skill-name) passed as the initial prompt via -i are recognized correctly on startup +- Shell completion notifications are not duplicated when read_bash already returned the result +- --continue prefers resuming sessions from the current working directory instead of the most recently touched session +- Status line script now includes context window fields that match the model badge and /context output +- User settings are now stored in ~/.copilot/settings.json, separate from internal state in config.json +- Name sessions with --name and resume them by name with --resume= +- Configure Copilot agent now has shell access on Windows +- Show a helpful error message with install instructions when clipboard utilities (wl-clipboard or xclip) are missing on Linux +- LSP server entries in lsp.json support configurable spawn, initialization, and warmup timeouts +- Context window indicator in the statusline is now hidden by default +- Move MCP OAuth into the shared runtime flow and clear associated OAuth state when removing an MCP server. +- Added a GitHub-style contribution graph to /usage that adapts to terminal color mode and falls back to distinct glyphs in no-color terminals +- Self-correcting custom tool calls in agentic loop +- Cursor movement, deletion, and rendering work correctly for emoji and multi-codepoint characters in the text input +- Tool availability detection works correctly on Windows +- Session token expiry during a turn is handled automatically without requiring you to resend your message +- Initial tab and arrow key navigation in /cwd and /add-dir path picker selects the correct item +- Transient I/O errors no longer appear as red error entries in the timeline when an IDE or extension disconnects +- Custom agents and skills in ~/.claude/ are no longer incorrectly loaded as Copilot project config +- Login command restores interactive input correctly after authentication +- Improve rendering performance when displaying large amounts of text in the timeline +- Sync task calls block until completion under MULTI_TURN_AGENTS instead of auto-promoting to background after 60s; sync no longer returns a reusable agent_id, use mode: "background" for follow-ups +- Tab navigation supports Home/End keys to jump to first and last tab +- Plugins take effect immediately after install without requiring a restart +- Add continueOnAutoMode config option to automatically switch to auto model on rate limit instead of pausing +- Auto mode no longer fails with an error when switching to a model that doesn't support the configured reasoning effort +- Pattern-specific instruction files (.github/instructions/\*.instructions.md) no longer include their full body in the system prompt on every session +- Extension shutdown errors no longer appear as error-level log noise on every session exit +- LSP refactoring tools now register correctly on the first turn when LSP configs are present +- Add HTTP hook support, allowing hooks to POST JSON payloads to a configured URL instead of running a local command +- Hide subagent thinking from the timeline +- Custom agent name is now visible in the statusline footer and can be toggled via /statusline +- Pressing Escape on startup dialogs no longer causes race conditions +- grep and glob tools now accept multiple search paths + ## 1.0.34 - 2026-04-20 - Rate limit error message now says "session rate limit" instead of "global rate limit" From 6d1c577683f7671a40530d7e0f07191b70b90c95 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 24 Apr 2026 18:39:18 +0000 Subject: [PATCH 181/208] Update changelog.md for version 1.0.36 --- changelog.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/changelog.md b/changelog.md index c9466491..283f6fc3 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,18 @@ +## 1.0.36 - 2026-04-24 + +- Subcommand picker shows a selection indicator (❯) next to the highlighted item +- Clearer error message with a direct link when multiple Copilot licenses are detected +- Fixed an issue where preToolUse.matcher was ignored. After upgrade, hooks with matcher run only for tool names that fully match the regex. +- `/keep-alive` is available without experimental mode to prevent system sleep while Copilot CLI is active +- /remote command shows current status and supports /remote on and /remote off to toggle remote control +- Disabled skills no longer appear in the slash command list +- Add a 'changes' statusline toggle to show added/removed line counts for the session +- Custom instruction files in .gitignored directories (e.g., .github/instructions/) now load correctly +- Require double Esc to cancel in-flight work, preventing accidental interruptions +- Saving debug logs or feedback bundles no longer overwrites existing archive files +- Custom agents, skills, and commands from ~/.claude/ are no longer loaded by the Copilot CLI +- Claude Opus 4.6 now uses medium reasoning effort by default + ## 1.0.35 - 2026-04-23 - Slash commands support tab-completion for arguments and subcommands From 4e5cb95ddeaf7fa321e56f6abecd5a77ad53d570 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 27 Apr 2026 23:07:10 +0000 Subject: [PATCH 182/208] Update changelog.md for version 1.0.37 --- changelog.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/changelog.md b/changelog.md index 283f6fc3..c878e960 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,16 @@ +## 1.0.37 - 2026-04-27 + +- Location-based permission persistence is now enabled by default, so approvals carry over across sessions for the same directory +- Add `copilot completion ` subcommand to generate static shell completion scripts for subcommands, flags, and known choice values +- Press `s` in the session picker to cycle sort order: relevance, last used, created, or name +- ACP model config options now include description and metadata for clients using the configOptions API +- Model and effort change notification no longer appears when re-selecting the same model or effort level +- Clipboard write no longer leaks X11 handles on Linux +- Pending message indicator displays correctly alongside prompt frames +- Fix detached HEAD detection always returning false after switch to git branch --show-current +- Skill picker list stays fully visible when skills have errors or warnings +- /ask responses now render markdown, including tables and formatted links + ## 1.0.36 - 2026-04-24 - Subcommand picker shows a selection indicator (❯) next to the highlighted item From cb0ddf842f47d7ff461774dc15be65b7338c353e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 28 Apr 2026 23:25:05 +0000 Subject: [PATCH 183/208] Update changelog.md for version 1.0.39 --- changelog.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/changelog.md b/changelog.md index c878e960..760ea28b 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,13 @@ +## 1.0.39 - 2026-04-28 + +- Allow ACP clients to toggle allow-all permission mode via session configuration +- Add /compact, /context, /usage, and /env slash commands for ACP sessions +- Press ctrl+x → b to move the current running task or shell command to the background +- Transient pipe errors on child process stdio streams no longer cause crashes or trigger false crash reports +- `/remote` status output now shows actionable hints for each connection state +- Improve --resume session picker with better tab layout, status display, and progressive loading +- Slash command argument picker opens immediately at exact command boundaries without requiring a trailing space + ## 1.0.37 - 2026-04-27 - Location-based permission persistence is now enabled by default, so approvals carry over across sessions for the same directory From cc85e32754fd29362d42a6107eba92c5551c764d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 1 May 2026 13:10:32 +0000 Subject: [PATCH 184/208] Update changelog.md for version 1.0.40 --- changelog.md | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index 760ea28b..8ff8216b 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,38 @@ +## 1.0.40 - 2026-05-01 + +- PR branch decoration displays correctly in the footer regardless of model name length +- /clear and /new reset the active custom agent selection +- Assistant responses stream with smoother text output +- `copilot plugin list` shows the correct version after running `copilot plugin update` +- Add support for `client_credentials` OAuth grant type for MCP servers, enabling fully headless authentication without a browser +- Subagents correctly evaluate tool search support for their own model instead of inheriting the parent session's settings +- Switching sessions with /new or /resume no longer carries over pending messages to the new session +- CLI no longer hangs at 100% CPU when sending a large file attachment +- Resume session picker no longer shows duplicate entries for the same Mission Control-backed session +- Session resume selector displays summaries on a single line, truncated to fit the column width +- Print "Exiting…" to stderr immediately on Ctrl+C during prompt mode so shutdown progress is visible +- /research uses an orchestrator/subagent model for more thorough and reliable deep research results +- Autopilot mode now limits continuation messages to 5 by default (configurable with --max-autopilot-continues) +- Automatically clean up old CLI package versions from disk during auto-update +- Remote session statusline shows the remote working directory and branch instead of local context +- /update no longer re-submits the original -i prompt after restarting +- Detect Azure DevOps repositories and auto-disable the GitHub MCP server +- Session history, file tracking, and the /chronicle command are now available to all users +- Skills are available as slash commands in ACP clients, matching the CLI experience +- Resuming a session no longer falsely reports it as in use after a previous CLI process exited unexpectedly +- --config-dir now propagates correctly to plugin subcommands; --config-dir is deprecated in favor of COPILOT_HOME +- Mouse selection works while the /ask response dialog is open, so its content can be highlighted and copied +- Improve CLI startup speed by loading custom CA certificates asynchronously +- Remote control link shows the full URL in the timeline instead of 'Open in browser' +- ACP clients (e.g. Zed) now display the agent's live plan as it works through multi-step tasks +- Add toggle for custom statusLine.command visibility in the statusline picker +- ACP clients can now list and switch custom agents via the agent config option +- MCP OAuth tokens cache correctly when multiple servers share the same URL but use different static OAuth client IDs +- MCP tool names with dots or other invalid characters are now sanitized correctly +- Ctrl+C and double-Esc remove pending queued messages one at a time instead of all at once +- Slash command suggestions rank prefix matches above fuzzy matches +- Prompt mode (-p) now gates repo hooks and workspace MCP behind opt-in env vars (GITHUB_COPILOT_PROMPT_MODE_REPO_HOOKS and GITHUB_COPILOT_PROMPT_MODE_WORKSPACE_MCP) for secure-by-default behavior + ## 1.0.39 - 2026-04-28 - Allow ACP clients to toggle allow-all permission mode via session configuration @@ -1658,7 +1693,7 @@ To commemorate GitHub Copilot CLI reaching general availability last week, we're ## 0.0.332 - 2025-10-01 -- Switched to using per-subscription Copilot API endpoints in accordance with [GitHub's docs](https://docs.github.com/en/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-access/manage-network-access) (fixes https://github.com/github/copilot-cli/issues/76) +- Switched to using per-subscription Copilot API endpoints in accordance with [GitHub's docs](https://docs.github.com/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-access/manage-network-access) (fixes https://github.com/github/copilot-cli/issues/76) - Fixed a bug where `/user [list | show | switch]` did not include users signed in from all authentication modes (fixes https://github.com/github/copilot-cli/issues/58) - Fixed a bug where switching to another user with `/user switch` did not take effect in the GitHub MCP server - Improved the screenreader experience by disabling the scrollbar in the `@` file picker, the `--resume` session picker, and the `/` command picker From ac346d1e5f3e0651de98e6b72e9bbbe2f036814c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 5 May 2026 20:45:25 +0000 Subject: [PATCH 185/208] Update changelog.md for version 1.0.41 --- changelog.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/changelog.md b/changelog.md index 8ff8216b..17da8337 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,27 @@ +## 1.0.41 - 2026-05-05 + +- CLI starts faster by rendering the UI immediately while authentication resolves in the background +- Shell completions (bash, zsh, fish) are automatically installed on first run and updated after `copilot update` +- Tab-completing slash commands that accept arguments now adds a trailing space automatically +- Package extraction no longer crashes on Windows when antivirus or filesystem locks cause transient EPERM errors +- Remote session connection errors show your logged-in account and tailored remediation steps +- Markdown formatting renders in ask user prompt questions +- Add experimental MCP Tasks support: MCP tools with `taskSupport: "required"` run as non-blocking background agents trackable via `list_agents` and `read_agent` (available when experimental mode is enabled, e.g. via `/experimental on` or the `--experimental` flag) +- Extensions now load in prompt mode (-p). User extensions load by default; project extensions alnd management tools require GITHUB_COPILOT_PROMPT_MODE_EXTENSIONS=true. +- Assistant responses no longer contain spurious system notification XML tags +- Large output guidance correctly references the configured grep tool name +- Adding a plugin marketplace using a git SSH URL (e.g. git@github.com:owner/repo) now works correctly +- Slash command picker searches command descriptions and underlines matched characters +- Memory tool confirmation prompt now shows the scope (repository or user) when requesting permission to store a memory +- SQL todo timeline entries display more accurately for INSERT OR IGNORE/REPLACE and blocked status updates +- Streaming text and shimmer animations stay smooth on slow or busy hosts +- Add --attachment flag in non-interactive (-p/--prompt) mode to attach files (images or native documents) to the initial prompt +- @-mention completion works for ./ paths, no longer adds trailing space on directories, and shows project files before workspace roots +- Improve stability on Windows by working around a V8 crash in Node 24.x +- Session files containing Unicode line separator characters load correctly +- Reasoning effort picker hint text displays "Esc to cancel" with correct spacing +- Improve reliability of file edits by better recovering from fuzzy or misaligned edit blocks + ## 1.0.40 - 2026-05-01 - PR branch decoration displays correctly in the footer regardless of model name length From 5ab6de6719aa3d3be1417045d25c45a08b3cb714 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 6 May 2026 14:57:19 +0000 Subject: [PATCH 186/208] Update changelog.md for version 1.0.42 --- changelog.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/changelog.md b/changelog.md index 17da8337..288743e0 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,16 @@ +## 1.0.42 - 2026-05-06 + +- MCP server failure warning now suggests a directly runnable `/mcp show` command when the server name contains whitespace +- MCP server failure warnings include stderr output to help diagnose connection errors +- Add -C flag to change working directory before starting, similar to git -C +- Exit message resume command shows session ID instead of auto-generated name when session has not been renamed +- Remote session export now supports non-GitHub repositories and repo-less directories +- Resuming a session no longer shows a false "session in use" warning after choosing "Go back" +- Enter key no longer gets permanently stuck after cancelling a request +- Suppress the exit summary when the session has no user messages and no saved session to resume +- CLI updates on Windows no longer fail with ENOENT when a transient EPERM occurs during package extraction +- Add rubber-duck agent for GPT sessions, powered by Claude (available in /experimental) + ## 1.0.41 - 2026-05-05 - CLI starts faster by rendering the UI immediately while authentication resolves in the background From bee20d0c069ab9678d340496cd774e3b9d1573c9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 6 May 2026 22:00:40 +0000 Subject: [PATCH 187/208] Update changelog.md for version 1.0.43 --- changelog.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/changelog.md b/changelog.md index 288743e0..e7ef1ae7 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,12 @@ +## 1.0.43 - 2026-05-06 + +- Add username toggle to /statusline picker to display the active account in the footer +- Auto mode uses server-side model routing for improved real-time model selection +- Resume prompt shows correct session name when multiple sessions are active +- Protect against RCE from malicious bare repositories nested inside a project +- MCP server child processes (e.g. started via npx or uvx) are now fully terminated when a session ends +- Show download progress when running the update command + ## 1.0.42 - 2026-05-06 - MCP server failure warning now suggests a directly runnable `/mcp show` command when the server name contains whitespace From 41b40180425dd6c3de19150ce01f4bd85156b955 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 8 May 2026 19:39:08 +0000 Subject: [PATCH 188/208] Update changelog.md for version 1.0.44 --- changelog.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/changelog.md b/changelog.md index e7ef1ae7..c1a06a00 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,20 @@ +## 1.0.44 - 2026-05-08 + +- Path completion in /add-dir no longer flickers or gets intercepted by @ and # pickers +- Slash commands can now appear mid-input, and multiple skills can be invoked in a single message +- userPromptSubmitted hooks can now handle requests directly, bypassing the LLM and returning a response without making a model call +- Faster /user list and /user switch for multi-account users +- Add optional `prerelease` argument to `copilot update` and `/update` to fetch the latest prerelease build +- Shell commands via ! prefix work correctly with all shell configurations +- Shell aliases and rc file settings now work in ! commands +- Quota display correctly shows remaining usage for Free users instead of always showing 100% used +- Tool permissions granted in autopilot mode are preserved after /clear +- Effort level applies correctly when switching models via the /model picker +- Pressing Ctrl+C while a permission prompt is pending no longer causes the CLI to hang +- Project info remains visible in slash command picker when no results match +- Invalid URL entries in settings.json no longer crash CLI startup and are skipped with a warning +- Timeline shows the resolved model for rubber-duck sub-agents (e.g. Rubber-duck(claude-opus-4.7)) + ## 1.0.43 - 2026-05-06 - Add username toggle to /statusline picker to display the active account in the footer From fd2900c51b8da7703d0f2859e7a123b390cc2b5f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 11 May 2026 17:43:12 +0000 Subject: [PATCH 189/208] Update changelog.md for version 1.0.45 --- changelog.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/changelog.md b/changelog.md index c1a06a00..27976c2f 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,13 @@ +## 1.0.45 - 2026-05-11 + +- Add /autopilot slash command to toggle between interactive and autopilot modes +- Fall back to Windows PowerShell (powershell.exe) when PowerShell 7+ (pwsh) is not available on Windows +- OpenTelemetry output aligns with GenAI semantic conventions: MCP tool calls now use standard tool_call spans, and a new gen_ai.client.operation.duration metric tracks tool execution time +- Sessions with extension permission prompts can be resumed without a "Session file is corrupted" error +- agentStop hook now fires correctly when the agent stops via task_complete +- CLI starts faster on terminals with limited OSC color query support, shaving up to ~1.5s off startup time. +- Add /fork command to fork the current session into a new independent session + ## 1.0.44 - 2026-05-08 - Path completion in /add-dir no longer flickers or gets intercepted by @ and # pickers From 5b5dd40ef06685e09540fe693f7bf982f1e96279 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 12 May 2026 20:53:50 +0000 Subject: [PATCH 190/208] Update changelog.md for version 1.0.46 --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index 27976c2f..1b13ec0c 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 1.0.46 - 2026-05-12 + +- Display a warning when the CLI version is deprecated and premium model access may be lost +- PowerShell starts correctly when pwsh is installed as a .NET global tool shim +- Long lines in diff view wrap at terminal width instead of being truncated +- Read-only gh CLI commands (list, view, status, diff, etc.) are auto-approved without prompting for user confirmation +- Sessions no longer crash mid-turn with ERR_HTTP2_INVALID_SESSION errors + ## 1.0.45 - 2026-05-11 - Add /autopilot slash command to toggle between interactive and autopilot modes From 4328afb2786cc9d4b03c43c78707027c75a7c253 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 13 May 2026 14:43:44 +0000 Subject: [PATCH 191/208] Update changelog.md for version 1.0.47 --- changelog.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/changelog.md b/changelog.md index 1b13ec0c..0375a328 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,10 @@ +## 1.0.47 - 2026-05-13 + +- /fork accepts an optional name and forked sessions display their origin in the sessions dialog +- Copilot Max subscribers see the correct models available to their subscription tier +- Support j/k keys for up/down navigation in the /diff view +- --resume supports Copilot cloud agent sessions where the agent hasn't pushed any changes to its branch + ## 1.0.46 - 2026-05-12 - Display a warning when the CLI version is deprecated and premium model access may be lost From 196c5f65fb530742ce1f24d10cf901f7baf44522 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 14 May 2026 13:53:46 +0000 Subject: [PATCH 192/208] Update changelog.md for version 1.0.48 --- changelog.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/changelog.md b/changelog.md index 0375a328..d64675c2 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,15 @@ +## 1.0.48 - 2026-05-14 + +- Model picker displays actual token prices instead of dot indicators for token-based billing users +- Instruction files with unquoted glob patterns in applyTo frontmatter (e.g. applyTo: \*_/_.ts) are now applied correctly +- Input text with CJK characters or emoji renders without blank gaps between lines +- /context shows correct token limits for all models instead of always showing 128k +- Auto-disable the built-in github-mcp-server in Azure DevOps-only workspaces when running in prompt/headless mode, matching interactive mode behavior +- Terminal cursor positions correctly on the input field instead of on decorative elements like the selected tab +- ACP clients receive updated config options when the active model is changed +- /ask dialog no longer prompts for follow-up replies it cannot receive +- Skill content injected to the model no longer includes YAML frontmatter metadata + ## 1.0.47 - 2026-05-13 - /fork accepts an optional name and forked sessions display their origin in the sessions dialog From d0b5734b307e9ba4a34d4eee28aa38bf44b98754 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 19 May 2026 00:02:51 +0000 Subject: [PATCH 193/208] Update changelog.md for version 1.0.49 --- changelog.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/changelog.md b/changelog.md index d64675c2..90d369f1 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,47 @@ +## 1.0.49 - 2026-05-18 + +- postToolUse hook additionalContext is now injected as a system message for the model instead of being silently discarded +- Mouse clicks in the prompt correctly position cursor when input contains wide characters (CJK, emoji) +- Add /chronicle search subcommand to search all session content by keyword or topic +- /user switch reuses the fetched user list and shows a loading spinner on first open +- MCP servers using static OAuth clients correctly persist registration for token refreshes +- Add support for running the CLI on Alpine Linux (musl libc) +- Add /exit print option to print the session to the terminal before exiting +- Add /rubber-duck command to get an independent critique of the agent's current work +- Add /session id subcommand to display the current session ID and copy it to the clipboard +- Add `auth.redirectPort` config option for MCP servers to pin the OAuth callback to a fixed port +- Add /memory on|off|show slash command to enable, disable, or view memory status (persistent) +- Add `copilot plugin update --all` to update all installed plugins at once +- Add `/rubber-duck` command to invoke the rubber duck agent for an independent critique (experimental) +- Input prompt collapses to a single line when empty and grows naturally as you type +- File diffs are correctly reported to ACP clients for all edit tool types +- Repo hooks in `.github/hooks/` now load in prompt mode (`-p`) when the folder is already trusted +- Fix extra line in timeline entries +- Box drawing and block characters render correctly on Windows terminals not using UTF-8 code page +- MCP server configurations with no `args` field are now accepted and treated as an empty args list +- Document attachment paths are included in context so the agent can reference pasted file paths, including Windows Copy as path inputs +- MCP stdio servers now display type as 'stdio' instead of 'local' for consistency +- Progress bar indicator now displays correctly in tmux sessions +- Experimental slash commands are now annotated with "(experimental)" in the help dialog and command picker +- Auto-update downloads the smaller platform-specific package instead of the universal one when available +- Auto-link GitHub issue and PR references (owner/repo#number) in assistant responses +- Prompt mode (-p) automatically loads workspace MCP sources when the current folder is already trusted +- Experimental: /mcp search command to search and install MCP servers from registry +- Experimental: Tool search with deferred loading for MCP and external tools +- Add "None" reasoning effort option to disable model reasoning in the reasoning effort picker +- Add COPILOT_PLUGIN_DIR_ONLY environment variable to disable automatic plugin discovery, enabling deterministic plugin sets when using --plugin-dir +- Copying text from the scroll view joins soft-wrapped lines without extra newlines or indentation +- Cursor positioning in input fields works correctly with wide characters (CJK, emoji) +- Hooks (preToolUse, postToolUse, subagentStart, subagentStop) now fire correctly for sub-agent tool calls +- Plugins loaded via --plugin-dir now correctly register their agents as available task(agent_type=...) subagents in prompt mode +- Memory storage correctly limits available scopes when no repository context is present +- --plugin-dir and --additional-mcp-config now work in --server / --headless mode +- Content-filtered model responses now display an explanation instead of a blank assistant turn +- PromptFrame UI now renders inside tmux when the outer terminal is ghostty, WezTerm, or kitty (detected via `tmux list-clients`). +- MCP OAuth token lookups are correctly scoped to the active session +- Memory permission prompts now name who can see a stored memory: user scope or the specific `owner/repo` for repository scope. Timeline entries also show the scope (`(for user)` / `(shared with repository collaborators)`). +- Reduce PowerShell syntax errors on Windows by avoiding && chaining instructions when using legacy PowerShell 5.x + ## 1.0.48 - 2026-05-14 - Model picker displays actual token prices instead of dot indicators for token-based billing users From 71e5b791df6643edb28e575a15e889d5f938e29f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 20 May 2026 21:44:33 +0000 Subject: [PATCH 194/208] Update changelog.md for version 1.0.51 --- changelog.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/changelog.md b/changelog.md index 90d369f1..7aa7a1de 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,33 @@ +## 1.0.51 - 2026-05-20 + +- `--session-id=` resumes known sessions or tasks, and starts new sessions with a specific UUID +- /remote commands now respect organization remote control and view from cloud policy and show a clear error when disabled +- /remote command can now be used while the agent is working +- Customizable status line in the terminal footer displays session info such as model, context window, git branch, and more +- MCP tool loading at startup is faster for users with many HTTP-based MCP servers +- Settings file no longer accumulates unrelated config keys when settings are updated +- Add /security-review slash command to review code changes for security vulnerabilities +- Add preMcpToolCall hook for hook providers to control outgoing MCP request metadata +- Add /chronicle cost-tips subcommand for personalized token usage and cost reduction recommendations +- MCP servers using OAuth stay connected when authentication was performed in a separate session +- GFM tables and blockquotes inside list items render correctly without a floating top border +- Experimental mode indicator now appears persistently in the app header instead of as a one-time notification +- Loading indicator color matches the active mode (plan, autopilot, shell) +- Session naming works correctly for usage-based billing users +- Pressing Enter on a highlighted subcommand completion inserts the selection instead of submitting the partial command +- Use default release notes when publishing a release with no changelog entries +- Editor launched with Ctrl+G no longer steals keystrokes or requires double keypresses +- `/memory show` displays documentation links for learning about and managing Copilot Memory +- Add `terminalProgress` setting to enable or disable OSC 9;4 terminal progress indicators +- postToolUse hooks can now inject additionalContext into successful tool results +- Only show remote session startup failure when remote mode is explicitly requested via --remote or enabled in user configuration +- Shell tool calls succeed even when the model omits the `description` parameter +- Ensure input token usage includes cached, update token formatting to clarify +- Login prompt more clearly warns when token storage falls back to insecure plain text config file +- GitHub MCP web search tool is available immediately without requiring tool search +- Secret scanning now covers commit messages and PR descriptions, redacting secrets before they are published +- Input area grows responsively with terminal height instead of capping at 3 lines + ## 1.0.49 - 2026-05-18 - postToolUse hook additionalContext is now injected as a system message for the model instead of being silently discarded From fad7701e371209542bd8613d88f5d20f43a70a47 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 23 May 2026 22:44:39 +0000 Subject: [PATCH 195/208] Update changelog.md for version 1.0.52 --- changelog.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/changelog.md b/changelog.md index 7aa7a1de..3a0359a0 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,36 @@ +## 1.0.52 - 2026-05-23 + +- Non-interactive subcommands (plugin list, mcp list, help, version) no longer consume stdin +- Add vertical scrollbar with mouse drag support to the main conversation view +- Switching to Autopilot mode no longer triggers unexpected permission prompts for tool, path, or URL access +- copilot --continue from a session's saved directory now refreshes the saved branch and git context instead of leaving them stale +- Kill command safety filter no longer rejects valid commands that contain shell redirection like `kill -0 2>/dev/null`. +- Sessions now resume in their saved working directory; pass -C to override. Flags whose values are relative paths (e.g. --attachment, --log-dir) resolve from the saved cwd. +- Context window tier selection (default ~200K vs 1M tokens) is now enforced end-to-end, so picking a tier actually constrains compaction, truncation, and token display +- AI Credits usage correctly displays after sessions using the Responses API +- Rendering no longer stutters when using tmux on Cygwin or mintty +- Slash command picker keeps (experimental) and (staff) labels orange when the row is selected +- Reasoning tokens display as a parenthetical on output token count in the token usage summary +- Sessions containing events with non-URL strings in URL/URI fields resume without a 'Session file is corrupted' error +- Requests that time out due to an HTTP/2 upload stall automatically retry over HTTP/1.1 +- Sessions no longer fail to load on Windows when a process exits with a high-bit exit code (e.g., .NET unhandled exceptions) +- Timeline entry connector color matches surrounding elements when expanded +- Gray background bar no longer appears behind user messages on terminals without truecolor support +- Status line command supports plain shell commands in addition to executable script paths +- Automatically prune old process log files from ~/.copilot/logs/ at startup to prevent unbounded disk growth +- Polish /statusline picker with cleaner item descriptions and better spacing +- Picker checkboxes now use a single-cell ▣/▢ glyph for tighter, more consistent rows across pickers +- Custom agents support opt-in deferred tool loading via `deferred-tool-loading` in agent frontmatter, enabling tool-search discovery for agents with large tool lists +- Exit summary displays `AI Credits` label with correct spacing before the value +- /restart and /update preserve the current session ID after restarting +- Legacy nested `oauth.clientId` and `oauth.callbackPort` keys in MCP server configs are now migrated to the supported `oauthClientId` and `auth.redirectPort` keys instead of being silently dropped +- MCP OAuth re-authentication honors the configured redirectPort +- PowerShell division operator no longer triggers false 'Allow directory access' prompts on Windows +- /compact accepts optional focus instructions to shape the compaction summary +- General-purpose subagents use GPT-5.4 or GPT-5.5 when available +- /usage shows quota progress bars for session and weekly limits +- AI credits error messages updated with clearer language and a Manage budget link + ## 1.0.51 - 2026-05-20 - `--session-id=` resumes known sessions or tasks, and starts new sessions with a specific UUID From 58e05a59bb63efd3df3f716b8db033fb6ae9ffe0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 24 May 2026 20:19:15 +0000 Subject: [PATCH 196/208] Update changelog.md for version 1.0.53 --- changelog.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/changelog.md b/changelog.md index 3a0359a0..bec7707e 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,9 @@ +## 1.0.53 - 2026-05-24 + +- Multiline prompts display fully without content clipping or selection offset +- /skills picker now correctly honors --config-dir when saving skill preferences +- Bash shell sessions no longer hang when PS0 or PROMPT_COMMAND is set in the environment + ## 1.0.52 - 2026-05-23 - Non-interactive subcommands (plugin list, mcp list, help, version) no longer consume stdin From d88b67d99e3116d467b39ff998e5af78b1984f82 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 24 May 2026 21:30:10 +0000 Subject: [PATCH 197/208] Update changelog.md for version 1.0.54 --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index bec7707e..f9f74679 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +## 1.0.54 - 2026-05-24 + +Fixes and changes + ## 1.0.53 - 2026-05-24 - Multiline prompts display fully without content clipping or selection offset From 3085447a4e539fe7d29d16ddaa8644340fd9e9db Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 28 May 2026 19:56:11 +0000 Subject: [PATCH 198/208] Update changelog.md for version 1.0.55 --- changelog.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/changelog.md b/changelog.md index f9f74679..f66630e5 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,52 @@ +## 1.0.55 - 2026-05-28 + +- Free and Student plan users on token-based billing are restricted to Auto model selection, with an explanation shown in the model picker +- Report Claude thinking (reasoning) tokens in session usage summaries +- Add support for Claude Opus 4.8 +- Loading spinner no longer hangs forever when launching in an untrusted folder +- MCP server configuration form saves the latest typed value when pressing Ctrl+S +- Show per-MCP-server token usage in /mcp and break out MCP tool tokens in /context +- Custom agents and skills are now discovered recursively in subdirectories +- Add `permissions.disableBypassPermissionsMode` setting to prevent enabling allow-all/yolo mode +- Update model selection behavior for select subscription plans +- The exit_plan_mode tool is only offered to the model while the session is in plan mode +- Native binary crash (e.g. SIGSEGV) now falls through to the JavaScript fallback instead of silently exiting +- Add /autopilot to keep autopilot focused, with /goal as an alias +- Detect PowerShell 7 correctly when pwsh.exe is installed as a Microsoft Store App Execution Alias +- Sessions with zero-sized CAPI billing batches resume correctly +- Cell-based terminal renderer is now enabled for all users by default +- Show a warning when remote controlled sessions are disabled by organization policy +- Extension log files are now captured per extension and surfaced in the extensions_manage tool to help diagnose failures +- Project extensions in .github/extensions are now discovered in non-git (folder-backed) workspaces +- Allow /statusline and /theme commands to run while the agent is executing +- MCP configuration now opens in its own dedicated screen, with scrollable server and tool lists when content exceeds the visible area +- Hook progress streaming shows real-time status messages from long-running hooks in the timeline +- pluginDirectories on session.create and session.resume RPC: SDK clients can mount Open Plugins-format directories per session. +- Delete remote sessions directly from the session picker +- Schedule manager hint bar text no longer wraps over dialog borders when entries are added +- `copilot update` and `copilot version` authenticate release API requests to avoid rate limit errors in shared-NAT environments +- Diff view keyboard shortcut hints display correctly when toggling between unstaged and branch diff modes +- Clipboard paste works correctly on Wayland compositors that do not support wlr-data-control (e.g. GNOME/Mutter) +- Interactive shell tool preserves parent terminal color settings so diff tools and other programs render with full color +- Canvas tools with optional object input schemas open correctly without validation errors +- Extension subprocesses no longer fail with "Invalid command format" when forked from an older CLI version +- Settings migration preserves user data when legacy snake_case keys exist from older CLI versions +- Support owner/repo#ref syntax when adding plugins from the marketplace +- Feedback dialog and /skills help text use Copilot-consistent log paths and terminology +- Progress indicators integrate natively with tmux 3.6b pane progress state +- --plugin-dir skills now take precedence over personal-home (~/.copilot, ~/.agents) skills with the same name. Order is now project > plugin-dir > personal > custom. +- Show a helpful message when remote controlled sessions are disabled by organization policy +- Reasoning token count now shown in session token summary for all users +- Terminal bell no longer sounds on turn completion unless explicitly enabled via config +- /resume picker no longer shows blank rows for sessions closed before sending a message +- Aborting a session no longer leaves the UI stuck in a Cancelling state when Task tool agents are running +- vote_memory tool calls are throttled per response and per interaction to prevent runaway voting bursts +- Upward auto-scroll now engages when dragging mouse selection past the top of the timeline +- Clipboard correctly copies CJK and supplementary-plane Unicode characters on Windows +- Increase selection background contrast across all color themes for better visibility +- /env now shows loaded extensions with their status and source +- Extensions launch correctly when the CLI runs as a single-executable application (SEA) + ## 1.0.54 - 2026-05-24 Fixes and changes From 5e5b150c44e8671d6883a5b6549acc8a7e7b6285 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 29 May 2026 20:06:38 +0000 Subject: [PATCH 199/208] Update changelog.md for version 1.0.56 --- changelog.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/changelog.md b/changelog.md index f66630e5..d4f463ee 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,27 @@ +## 1.0.56 - 2026-05-29 + +- Free and Student users can select models other than Auto in the model picker +- ThemePicker side-by-side layout fits within a 120-column terminal without wrapping +- Model picker shows accurate total context window size per pricing tier +- Add `builtInAgents.rubberDuck` setting to enable or disable the rubber duck agent via `copilot config` +- Extended key reporting works correctly in tmux when Kitty keyboard protocol is unavailable +- Config and settings files are written atomically to prevent data loss when multiple CLI processes run concurrently +- BYOK provider configuration now applies correctly to ACP sessions +- MCP tools that return both human-readable `content` text and a `structuredContent` payload now surface both to the agent instead of dropping either side. When the text is the literal JSON serialization (per MCP spec §5.2.6) it is deduplicated; otherwise the two are concatenated. +- Fix /context small-token legend formatting and free-space grid rounding +- Reasoning effort picker respects model capabilities — options not supported by the model are no longer shown +- File paths in /env output display with correct formatting +- Reasoning text always displays above the assistant response in the conversation timeline +- Assistant responses render without single-word orphan lines in the terminal timeline +- Diff view uses a continuous scroll layout with sticky file and hunk headers, full terminal width, and theme-aware colors +- web_fetch tool prefers markdown content when available, using HTTP content negotiation for cleaner results from documentation sites +- Cursor stays at correct position after pasting text that contains tab characters +- Code review agent now uses the same model as the current session instead of a fixed default +- When gh CLI is on PATH, GitHub MCP server now omits redundant gh-replaceable tools by default, reducing token usage +- Context window tier selection now persists durably in session events and survives SDK-only resume paths so tier-derived limits are reapplied to request, compaction, and truncation logic without app-level repair +- Remote session URL correctly uses the repository owner/name instead of literal 'copilot' +- Trusted folder confirmation message clarifies that permissions may be remembered for the session + ## 1.0.55 - 2026-05-28 - Free and Student plan users on token-based billing are restricted to Auto model selection, with an explanation shown in the model picker From eaa1eabdd156d13b60c120e6b7acb9877253c5a6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 1 Jun 2026 18:40:12 +0000 Subject: [PATCH 200/208] Update changelog.md for version 1.0.57 --- changelog.md | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index d4f463ee..fa170369 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,37 @@ +## 1.0.57 - 2026-06-01 + +- Actionable error message shown when GitHub API rate limit is hit during `copilot update` +- Plugin slash commands (/plugin install, uninstall, update, marketplace add/remove/browse) now show immediate feedback while the operation is in progress +- Canceling a running shell command (Ctrl+C on a !command, or aborting an agent command — including in sandboxed and background-promoted shells) now terminates the whole process tree instead of leaving orphaned processes running +- Canvas providers can return file:// URLs in open results for local file previews +- Symlinked directories appear in /cwd completion suggestions +- In Azure DevOps-only repositories, the built-in GitHub MCP server now exposes only the web_search tool instead of being fully disabled +- Quota footer shows remaining requests as a rounded percentage +- /lsp show, /lsp test, and /lsp reload correctly discover project LSP config when the CLI is launched from a subdirectory +- MCP server timeout configuration is preserved after tools list changes +- /skills add and /skills remove correctly handle paths wrapped in quotes (e.g., from Windows Explorer "Copy as path") +- Running `copilot` with an unquoted multi-word prompt now shows a helpful "quote your prompt" hint instead of a raw commander error +- Default networking transport is now HTTP/1.1, improving reliability on some network paths. Opt into HTTP/2 with COPILOT_ENABLE_HTTP2=1. +- Plugins auto-installed from repository settings no longer leak into user global config +- Grep tool correctly handles tsx and jsx as file type filters +- COPILOT_HOME is honored for the server discovery registry directory +- Click a diff line with the mouse to select it in diff mode +- Ctrl+C and other modified keys work correctly inside tmux +- @-mention file search matches files regardless of query letter casing +- `copilot plugin marketplace list` now honors repo-level `extraKnownMarketplaces` settings from `.github/copilot/settings.json` +- Queued prompts in the footer are capped to a single line, preventing them from pushing session messages off screen +- MCP servers configured with npx --registry are no longer incorrectly blocked by policy +- Session no longer hangs indefinitely after an error occurs during internal event processing +- Installed plugins no longer include the .git directory from the plugin source repository +- New reasoning after tool calls appears at the bottom of the timeline instead of above earlier output +- Pasting text copied from a browser, editor, or terminal no longer leaves a stray empty line, broken box-drawing lines, or a misplaced cursor in the prompt +- preToolUse hook errors now deny the tool call instead of silently allowing execution +- Session resume works correctly after a crash that left partial data in the session log +- High-contrast diff backgrounds use darker colors to improve text readability +- Add showTipsOnStartup setting to control whether startup tips are shown +- Surface the underlying reason (e.g. GitHub API rate limit) when SDK auth-token validation fails, instead of the misleading "Session was not created with authentication info or custom provider" message. +- /diff defaults to branch diff when there are no unstaged changes + ## 1.0.56 - 2026-05-29 - Free and Student users can select models other than Auto in the model picker @@ -1878,7 +1912,7 @@ To commemorate GitHub Copilot CLI reaching general availability last week, we're - 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"]` - Added debug logging when calls to `/model` result in Copilot API errors. This should help us diagnose some policy/model access edge cases like https://github.com/github/copilot-cli/issues/268 and https://github.com/github/copilot-cli/issues/116 -- Added `gradlew` to the list of commands whose subcommands can be whitelisted (fixes https://github.com/github/copilot-cli/issues/217#issuecomment-3393844685) +- Added `gradlew` to the list of commands whose subcommands can be allowlisted (fixes https://github.com/github/copilot-cli/issues/217#issuecomment-3393844685) - Fixed a bug where sessions could enter a stuck state after a failed MCP tool call (fixes https://github.com/github/copilot-cli/issues/312) - Made the output of `--help` text more concise From fbdc9da367bfbeac14f93c7cbd66465fcec95749 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 2 Jun 2026 16:01:15 +0000 Subject: [PATCH 201/208] Update changelog.md for version 1.0.58 --- changelog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index fa170369..f7bf54d1 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,7 @@ -## 1.0.57 - 2026-06-01 +## 1.0.58 - 2026-06-02 - Actionable error message shown when GitHub API rate limit is hit during `copilot update` +- Add /rubber-duck command for adversarial feedback on code and designs - Plugin slash commands (/plugin install, uninstall, update, marketplace add/remove/browse) now show immediate feedback while the operation is in progress - Canceling a running shell command (Ctrl+C on a !command, or aborting an agent command — including in sandboxed and background-promoted shells) now terminates the whole process tree instead of leaving orphaned processes running - Canvas providers can return file:// URLs in open results for local file previews From 3e316bbd750d398b56b20f346cb6a9c4bf429441 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 2 Jun 2026 21:01:21 +0000 Subject: [PATCH 202/208] Update changelog.md for version 1.0.59 --- changelog.md | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index f7bf54d1..9500a5f0 100644 --- a/changelog.md +++ b/changelog.md @@ -1,4 +1,4 @@ -## 1.0.58 - 2026-06-02 +## 1.0.59 - 2026-06-02 - Actionable error message shown when GitHub API rate limit is hit during `copilot update` - Add /rubber-duck command for adversarial feedback on code and designs @@ -15,6 +15,33 @@ - Default networking transport is now HTTP/1.1, improving reliability on some network paths. Opt into HTTP/2 with COPILOT_ENABLE_HTTP2=1. - Plugins auto-installed from repository settings no longer leak into user global config - Grep tool correctly handles tsx and jsx as file type filters +- Add the /voice command to dictate prompts using local speech-to-text models +- COPILOT_HOME is honored for the server discovery registry directory + +## 1.0.58 - 2026-06-02 + +- Rubber Duck is now enabled by default +- Remote JSON RPC is now enabled by default +- Experimental schedule prompts with `/every` and `/after` +- Experimental new GitHub TUI theme +- Experimental new UI with easy access to issues, pull requests, and gists + +## 1.0.57 - 2026-06-01 + +- Actionable error message shown when GitHub API rate limit is hit during `copilot update` +- Plugin slash commands (/plugin install, uninstall, update, marketplace add/remove/browse) now show immediate feedback while the operation is in progress +- Canceling a running shell command (Ctrl+C on a !command, or aborting an agent command — including in sandboxed and background-promoted shells) now terminates the whole process tree instead of leaving orphaned processes running +- Canvas providers can return file:// URLs in open results for local file previews +- Symlinked directories appear in /cwd completion suggestions +- In Azure DevOps-only repositories, the built-in GitHub MCP server now exposes only the web_search tool instead of being fully disabled +- Quota footer shows remaining requests as a rounded percentage +- /lsp show, /lsp test, and /lsp reload correctly discover project LSP config when the CLI is launched from a subdirectory +- MCP server timeout configuration is preserved after tools list changes +- /skills add and /skills remove correctly handle paths wrapped in quotes (e.g., from Windows Explorer "Copy as path") +- Running `copilot` with an unquoted multi-word prompt now shows a helpful "quote your prompt" hint instead of a raw commander error +- Default networking transport is now HTTP/1.1, improving reliability on some network paths. Opt into HTTP/2 with COPILOT_ENABLE_HTTP2=1. +- Plugins auto-installed from repository settings no longer leak into user global config +- Grep tool correctly handles tsx and jsx as file type filters - COPILOT_HOME is honored for the server discovery registry directory - Click a diff line with the mouse to select it in diff mode - Ctrl+C and other modified keys work correctly inside tmux From 85b27cb8a4548baa38bea72cec246535bb78e9d4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 5 Jun 2026 16:46:21 +0000 Subject: [PATCH 203/208] Update changelog.md for version 1.0.60 --- changelog.md | 80 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 61 insertions(+), 19 deletions(-) diff --git a/changelog.md b/changelog.md index 9500a5f0..256d83d8 100644 --- a/changelog.md +++ b/changelog.md @@ -1,22 +1,64 @@ -## 1.0.59 - 2026-06-02 - -- Actionable error message shown when GitHub API rate limit is hit during `copilot update` -- Add /rubber-duck command for adversarial feedback on code and designs -- Plugin slash commands (/plugin install, uninstall, update, marketplace add/remove/browse) now show immediate feedback while the operation is in progress -- Canceling a running shell command (Ctrl+C on a !command, or aborting an agent command — including in sandboxed and background-promoted shells) now terminates the whole process tree instead of leaving orphaned processes running -- Canvas providers can return file:// URLs in open results for local file previews -- Symlinked directories appear in /cwd completion suggestions -- In Azure DevOps-only repositories, the built-in GitHub MCP server now exposes only the web_search tool instead of being fully disabled -- Quota footer shows remaining requests as a rounded percentage -- /lsp show, /lsp test, and /lsp reload correctly discover project LSP config when the CLI is launched from a subdirectory -- MCP server timeout configuration is preserved after tools list changes -- /skills add and /skills remove correctly handle paths wrapped in quotes (e.g., from Windows Explorer "Copy as path") -- Running `copilot` with an unquoted multi-word prompt now shows a helpful "quote your prompt" hint instead of a raw commander error -- Default networking transport is now HTTP/1.1, improving reliability on some network paths. Opt into HTTP/2 with COPILOT_ENABLE_HTTP2=1. -- Plugins auto-installed from repository settings no longer leak into user global config -- Grep tool correctly handles tsx and jsx as file type filters -- Add the /voice command to dictate prompts using local speech-to-text models -- COPILOT_HOME is honored for the server discovery registry directory +## 1.0.60 - 2026-06-05 + +- Tab completes `..` parent traversal in slash-command path arguments instead of switching tabs +- Add the max reasoning effort level for Anthropic models and make all effort levels available on every plan +- Screen no longer stays blank after waking from sleep inside a terminal multiplexer +- Input fields render background color correctly inside highlighted frames +- Cursor renders in the correct position in plan approval and review feedback prompts +- Worktree directory uses a flat name when PR branch contains slashes (e.g. `cli/foo` → `.worktrees/cli-foo`) +- Queue hint correctly shows ctrl+enter instead of ctrl+q when kitty keyboard protocol is active +- Status line progressively stacks across rows at narrow terminal widths instead of truncating elements beyond recognition +- Clipboard operations on X11 no longer corrupt the terminal display +- Add `builtInAgents.rubberDuckAutoInvoke` setting to control automatic rubber duck agent invocation (disabled by default) +- On Windows, executables are no longer discovered in the working directory when invoking by bare name (e.g. `git`). Add the working directory to `PATH` to enable discovery. +- Interactive shell commands no longer hang when producing large amounts of output +- MCP tools glyph in /context legend displays at the correct size +- Skill and slash command picker rows correctly display multi-line descriptions as a single line +- IDE picker now hides entries whose editor connection has gone away, so selecting one no longer fails with a connection error, and appends a process id to entries that share the same editor and folder so git worktrees of the same repo can be told apart +- Model picker fits within small terminal windows and mouse scroll works in the picker +- Show cache write tokens alongside cache read tokens in /usage display +- Repurpose ctrl+s to stash and pop the current prompt (Claude Code parity); the slash-command picker is still available by typing / +- /context separates Custom Instructions from the system prompt and cross-references per-server MCP tool token costs with /mcp +- Add `billing` help topic with an overview of AI credit usage features +- Add vim-style navigation keys (g, G, Ctrl+D, Ctrl+U) to the /diff view +- Show the Mission Control sharing status of synced sessions in the /session info view +- Add -r as a shorthand for --resume +- LSP server config accepts `bash`, `powershell`, and `cwd` keys; command launch default cwd stays project-root unless `cwd` is set, and `cwd` expansion now supports plugin vars like `PLUGIN_ROOT` while shell launches keep hook-matching cwd/env behavior +- Rewind picker shows working-tree diff stats (+added −removed) at each checkpoint +- Create a git worktree for a pull request directly from the pull requests screen +- Remaining requests percentage no longer shows a negative value for over-limit users +- Extension permission prompts respect --yolo and pre-approved locations on startup +- Custom agent instructions are no longer duplicated each turn, reducing context window usage +- Linux sandbox no longer fails when allowedHosts or blockedHosts are configured +- Session completion signal (terminal beep, autopilot continuation) now waits for background shell commands to finish +- Cmd+Backspace deletes the line before the cursor on macOS prompt input +- web_fetch blocks loopback, private, and cloud metadata addresses and no longer silently follows redirects +- Trusted folders and other config keys are no longer dropped when experiment assignments are cached concurrently +- Rewind no longer deletes ignored files when rolling back to a previous snapshot +- ACP allow_all config option correctly applies unrestricted permissions for tools, paths, and URLs +- --available-tools, --excluded-tools, and --reasoning-effort flags apply correctly in ACP mode +- LSP workspace/configuration response returns the correct number of entries, preventing strict servers like ty from panicking +- Extensions linked via directory symlinks are now discovered and loaded correctly +- Typing "help" at the prompt opens the quick-help overlay instead of sending it as a chat message +- Wide characters (e.g. CJK) render correctly in the terminal diff view without visual corruption +- Folder trust persists across git worktrees without re-prompting +- Force-removing a marketplace no longer causes its plugins to reinstall on next launch +- MCP OAuth re-authentication no longer fails with an address-in-use error when a login is already in progress +- Repository plugin overrides no longer change globally enabled plugin settings +- MCP allowlist now matches npm scoped servers whose registry entry drops the leading @ from the package identifier +- MCP servers registered via Azure API Center are no longer incorrectly blocked by the allowlist +- Local MCP servers sharing a serialized token broker (e.g. M365) reliably start instead of intermittently failing +- Prompt for approval before running commands that set dynamic-loader or git-config env vars (e.g. LD_PRELOAD, GIT_EXTERNAL_DIFF) +- MCP tools added or removed by a server mid-turn are now available immediately in the same turn +- BYOK file attachments larger than 5 MiB now send successfully via OpenAI Responses provider +- The /init suggestion is no longer shown when running outside a git repository +- Show session link in /session info table when remote exporting or steering +- /env command now shows hook counts and source provenance for active hooks +- Add missing keyboard shortcuts to /help content (?, ctrl+q, ctrl+r, ctrl+z, ctrl+y, shift+enter) +- Auto-link bare #number issue and PR references to the current git repository +- Error message for --cloud without experimental mode explains how to enable /experimental +- /tasks detail view shows the latest prompt after sending a follow-up to a background agent +- Enforce bypass permissions policy for --allow-all-tools, --allow-all-paths, and --allow-all-urls flags ## 1.0.58 - 2026-06-02 From b91eba536b4bb0a5ba3eab27853d868d641a5625 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 9 Jun 2026 22:02:35 +0000 Subject: [PATCH 204/208] Update changelog.md for version 1.0.61 --- changelog.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/changelog.md b/changelog.md index 256d83d8..a4eecb27 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,45 @@ +## 1.0.61 - 2026-06-09 + +- Polish /agents picker and Create New Agent wizard with consistent borders, headers, and styled inputs +- Fixed a bug where resuming a session could leave the screen blank +- Add /settings interactive dialog to browse and edit all user settings in one place +- Resuming a local session with memory disabled no longer crashes the UI to a blank screen +- /after and /every commands now appear in the /experimental slash command list +- Auto-load MCP servers from .github/mcp.json workspace config file +- /env output hides internal hooks and shows full file paths for hook sources +- Prevent crashes from malformed UTF-8, oversized string buffers, and terminal disconnect errors +- Add support for Claude Fable 5 model +- Gemini models work correctly with MCP tools that use nullable schema types +- Number-key selection in pickers (e.g. /agent) works for items 10 and beyond +- GitHub issue and PR references inside existing links no longer create broken nested autolinks +- Bash tool correctly handles multi-byte UTF-8 characters (em dash, curly quotes, etc.) in command input +- Symlinked directories now appear in @-file picker suggestions +- MCP OAuth re-authentication correctly uses the saved OAuth client ID for remote servers +- Pasted images no longer leak into the main prompt after a permission dialog closes +- Press '/' in the /agent picker to filter agents by name +- Configure home tab bar visibility, order, and hidden tabs via the `tabs` setting in settings.json +- grep and glob tools correctly handle single path arguments, preventing missed search results +- Hook progress status lines marked as temporary collapse in place instead of accumulating in the conversation timeline +- /fork shows a "Creating fork..." progress notification while the fork is being created +- /mcp search works correctly with external registries +- Use natural language with /every and /after to schedule tasks using cron expressions, calendar times, or relative durations +- Light theme secondary background color is now rendered correctly +- Search bar match count stays inside the prompt frame +- GitHub theme adapts to light terminals with an authentic GitHub Primer light color palette +- Add mTLS and private-CA support for OTLP telemetry export over HTTPS +- Fixed false positives in shell command validation that could block harmless commands containing words like "kill" in string literals or embedded documents (heredocs). +- Add full screen scrollbar +- Grep searches in large monorepos use an indexed search engine for significantly faster results +- `/sessions` now navigates to the Sessions tab instead of opening an overlay +- Add http/protobuf OTLP HTTP export via standard OTel protocol env vars +- Prompt mode surfaces model-load errors on stderr instead of exiting silently +- Add /worktree command (aliased /move) to create a new git worktree and switch into it, moving any uncommitted changes along +- Plugin install enforces managed marketplace policy even when settings cannot be fetched due to network errors +- `/help` now lists `$HOME/.copilot/instructions/**/*.instructions.md` alongside the other user-level instruction locations +- Colors render correctly in WSL and tmux sessions instead of falling back to a degraded palette +- Exit shell mode by pressing Esc or Ctrl+C on an empty prompt, in addition to Backspace +- Add `beepOnSchedule` setting to disable completion beeps for scheduled `/every` and `/after` runs + ## 1.0.60 - 2026-06-05 - Tab completes `..` parent traversal in slash-command path arguments instead of switching tabs From 9776ad4cd36cd27ed87beddc9b37e16f8ad78cc5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 13 Jun 2026 19:58:19 +0000 Subject: [PATCH 205/208] Update changelog.md for version 1.0.62 --- changelog.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/changelog.md b/changelog.md index a4eecb27..fa35e8de 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,56 @@ +## 1.0.62 - 2026-06-13 + +- Ask and elicitation dialogs now scroll together with the timeline instead of taking over the screen, so a tall dialog no longer hides the agent's output — scroll up to read earlier output, then back down to the dialog +- Keep blank lines between reasoning summary sections +- Show user-typed colon terms in the search chip +- Plugins can now ship extensions, making them installable via the plugin marketplace +- Add content search, match highlighting, and n/N navigation in diff view +- Add /app slash command to open the GitHub app or a browser fallback +- Configure subagent model, reasoning effort, and context tier via user settings or the /subagents (also /agents) picker +- PowerShell redirect paths no longer trigger content-exclusion refusals +- WebSocket transport closes cleanly outside the Tokio runtime +- Shell tool errors now explain when a shell ID was stopped, completed, or reclaimed +- Voice runtime download dialog no longer reopens in a loop after an install failure +- Make the MCP server config form easier to use with a picker-based flow +- Show 'YOLO' (allow all) indicator in the footer and add allow-all state to custom statusLine.command +- Press `/` on the Issues or Pull Requests tab to search GitHub with server-side filtering +- Add session-scoped extensions and canvases +- Allow SDK clients to configure session memory through session.create and session.resume +- Automatically authenticate through corporate forward proxies using Kerberos/Negotiate (SPNEGO) +- Add file tree sidebar and inline comment editor to the /diff view +- Honor max_output_tokens for BYOK Responses providers +- MCP server names with dots and slashes map to valid Responses API namespaces +- Editor commands like `code-insiders --wait` launch correctly on Windows +- Load skills from symlinked directories outside the configured root +- Recover gracefully from oversized inline images instead of failing the turn +- An image attachment rejected because vision is disabled by policy or unsupported by the current model no longer poisons the rest of the session. The image is stripped from conversation history after the 400 so subsequent prompts succeed. +- Shells promoted to background from /tasks keep running after the turn ends +- Hide internal disabled tool messages from background helper agents +- Sandbox tool loads correctly when mxc-sdk is provided by the host environment +- Custom agents in nested .github/agents and .claude/agents directories are now discovered when the session is started from a subdirectory of the repository root +- Approving a tool permission prompt no longer causes a second prompt for the same tool call +- View tool prompts now correctly state the 20KB truncation limit instead of 50KB +- Keep workspace MCP servers from restarting in a loop +- Keep custom agents on their configured model when using BYOK providers +- Recover from temporary content policy errors without restarting the session +- Autopilot continues cleanly in relay sessions and /plan shows the short prompt +- Git commands no longer flash a console window on Windows +- Claude-format plugin `preToolUse` and `permissionRequest` hooks now fire correctly for tool matchers like `Bash`, `Read`, and `*`, and Claude-format hook payloads carry the Claude tool name (`Bash` rather than `bash`) +- Terminal colors update live when the active theme changes mid-session +- Streamed assistant text no longer intermittently duplicates in the timeline +- grep skips missing search paths and continues with valid results instead of failing +- Remote MCP OAuth servers start only once per matching config instead of restarting for each subagent +- Nested subagents respect concurrency limits without blocking terminal input +- Plugin install works when the marketplace ref is a fully-qualified tag (e.g. refs/tags/v2.1.0) +- Press W to create a worktree from the expanded issue or pull request details view +- /every and /after can now schedule slash commands (e.g. /every 1d /chronicle standup) +- Model picker opens to the tab containing the currently selected model +- Shell commands run via lightweight process spawning instead of a pseudo-terminal; interactive input via write_bash is no longer supported +- Improve color contrast in GitHub themes to meet WCAG AA accessibility standards +- Show descriptions for ACP session config options +- Speed up branch and HEAD detection in warm sessions +- Light theme secondary background color is now rendered correctly + ## 1.0.61 - 2026-06-09 - Polish /agents picker and Create New Agent wizard with consistent borders, headers, and styled inputs From b71d1170efb3abe7cb8c83aa5a30b09272c7d274 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 16 Jun 2026 00:47:09 +0000 Subject: [PATCH 206/208] Update changelog.md for version 1.0.63 --- changelog.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/changelog.md b/changelog.md index fa35e8de..8a26d733 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,26 @@ +## 1.0.63 - 2026-06-15 + +- Blocked image attachments now explain what to do — enable vision via the "Editor preview features" policy, switch to a vision-capable model, or try a different image — instead of showing a confusing error. +- Options in `--help` output sort alphabetically, including options that have two long flags +- Auth validation errors (e.g., VPN or IP allowlist failures) are now shown in the sign-in banner with guidance to check network access +- Show fork-based pull requests in /pr and the branch PR badge +- Resume remote sessions when the local and remote repository names differ only by case +- Show the spill file path when read_bash output is too large +- Include recent local sessions in /chronicle standup +- Restore /responses WebSocket connections +- Retry transient 401 auth failures in HMAC and OAuth modes +- Press w in /diff to hide whitespace-only changes +- Add deferTools option to MCP server config to keep a server's tools always available, even when tool search is enabled +- Agent mode is tracked per session, so it no longer carries over when you create, clear, or switch sessions +- Pressing Enter opens the highlighted issue details +- Plan review menus work on strict OpenAI-compatible backends +- Prevent Windows crashes when the native runtime addon loads in a corrupted host process heap +- Recover from unreadable native document attachments by falling back to file-path uploads +- Keep reverse search aligned in the input footer while you search command history +- PostToolUse hook matchers (e.g. `Edit|Write`) are now honored instead of silently dropped, so formatters and linters run only after the tools they target +- Improve reliability of OpenAI, Anthropic, and Azure OpenAI requests +- Experimental: /rewind no longer requires git and restores only the files Copilot changed (leaving your own edits intact), with a conversation-only or conversation + files choice + ## 1.0.62 - 2026-06-13 - Ask and elicitation dialogs now scroll together with the timeline instead of taking over the screen, so a tall dialog no longer hides the agent's output — scroll up to read earlier output, then back down to the dialog From e7d294d754935d5640bfed0a111882b4e1c4dd92 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 23 Jun 2026 17:21:01 +0000 Subject: [PATCH 207/208] Update changelog.md for version 1.0.64 --- changelog.md | 127 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) diff --git a/changelog.md b/changelog.md index 8a26d733..a76a06d3 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,130 @@ +## 1.0.64 - 2026-06-23 + +- Path access prompt shows resolved symlink targets so you can see exactly what access is being granted +- Show the pay-as-you-go additional usage budget at launch, refresh it after a request is rejected for hitting the additional spend limit, and show a friendly message when the additional usage limit is reached +- Add websocket responses support for BYOK OpenAI-compatible providers +- Resumed sessions reproduce the original attached-file references even if those files later change on disk, avoiding prompt-cache resets +- Free-text search terms containing colons (e.g. `CLI:`) now return correct results in Issues and Pull requests search instead of being misread as invalid qualifiers by GitHub +- Support static OAuth client overrides, including client secrets, for MCP server authentication +- Preserve keystrokes typed while the CLI is still loading +- Add an option to bypass the sandbox for shell commands +- Add mouse click and double-click selection to paginated lists +- Link PR and issue references in markdown tables +- Use the GitHub theme by default and enable home tabs and prompt frame for all users +- Keep terminal output aligned after terminal resizes +- Content exclusion no longer blocks every file when the rules service is unreachable (offline or a transient network error). Access is allowed until rules can be fetched and retried in the background, matching the editor's behavior. +- Configure the rubber-duck subagent in /subagents, including a complementary model strategy that picks an opposite-family model +- /diff shows a session diff of Copilot's changes in non-git folders +- Set an HTTP(S) proxy with a user setting +- Resume sessions by name even when the name contains spaces +- Hide unsupported slash commands in remote-hosted sessions +- Add a setting to hide the conversation scrollbar +- Add inline image rendering in the CLI +- Add argument-hint frontmatter support for skills +- OpenTelemetry: chat spans after a successful compaction carry gen_ai.conversation.compacted=true, and the summary is emitted as a CompactionPart in gen_ai.input.messages +- PowerShell cmdlets (Select-String, Where-Object, ForEach-Object) no longer trigger spurious directory access prompts +- Non-interactive prompt output now stays at column 1 +- Clear queued tool images when vision is disabled +- Changing the model now waits until the new model is applied +- Treat 2>/dev/null redirects as read-only in shell safety prompts +- Normalize edited text to LF when opening prompts in an external editor +- Skip computer-use consent prompts in full allow-all sessions +- Remote export keeps running after /clear and /session info keeps the task URL +- Keep the cursor on the adjacent session after deleting one in the session selector +- Use the correct Linux libc target when resolving and auto-updating SEA packages on musl hosts +- Allow required multi-select prompts to submit an empty selection when minItems is not set +- Keep the home session timeline visible after attaching and restoring +- The /settings search field supports readline editing keys and cursor movement +- OpenTelemetry GenAI spans now emit `gen_ai.usage.cache_read.input_tokens`, `gen_ai.usage.cache_creation.input_tokens`, and `gen_ai.usage.reasoning.output_tokens` per the GenAI semantic conventions spec (previously used incorrect underscore-separated names) +- Fix mouse wheel scrolling being broken in the terminal after the CLI exits by tearing down terminal modes in reverse order (mouse tracking is now disabled before leaving the alt screen) +- Fix the /rewind file-restore confirmation dialog being clipped at the bottom when it opens above a scrolled timeline; it now shows at full height once the file list loads +- Show --remote-export and --no-remote-export in --help output +- Wrap expanded compact timeline shell entries so long commands and descriptions stay visible +- Make links in markdown tables clickable +- Show per-model token totals in /usage and speed up large history scans +- OpenTelemetry GenAI chat spans emit `gen_ai.request.reasoning.level` for the configured reasoning effort +- Autopilot mode now returns to interactive mode after the agent calls task_complete, so you aren't left in autopilot for your next prompt +- Add /branch as an alias for /fork, matching Claude Code's command naming +- Experimental: adds a `--worktree [name]` (`-w`) flag (enable with `/experimental`) that creates or reuses a git worktree under `.worktrees/` and starts the session inside it +- Add tab completion for /agent names +- Add model family aliases like opus, sonnet, haiku, gpt, and gemini in the model setting +- Add Ctrl+Backspace binding in /terminal-setup for Windows Terminal +- Add SDK support for host-provided OAuth tokens for remote MCP servers +- Experimental: in the compact timeline, click a tool-call or reasoning row to expand or collapse just that entry (like ctrl+o / ctrl+t for one row), with a subtle highlight on the row under the mouse +- Apply MCP org policy when sessions create or reload MCP servers +- Fixed completed background command output being unavailable when requested later +- Keep task companion tools available to custom agents that use the task or agent alias +- Custom agents using a tools wildcard '\*' now respect deferredToolLoading opt-in switch +- Respect tmux color detection in WSL sessions +- Respect `deferTools` on MCP servers configured in custom agent frontmatter +- Ctrl+Q enqueues a prompt while a completion picker is open +- Sessions tab row label updates immediately when a session is renamed +- --continue and --resume select the most recent session for the current repository +- Shell session starts correctly when a nix-provided bash is first in PATH +- Marketplace plugins that declare MCP servers in marketplace.json now authenticate correctly with OAuth +- Content exclusion no longer blocks shell commands on command names or phantom paths +- Lone surrogates no longer break session resume or truncate prompts +- Expand Windows home-directory paths in slash-command completion +- Keep truncated tool output previews valid UTF-8 +- CLI auto-updater downloads the correct musl Linux package on Alpine systems +- Copy the full last assistant turn, including multi-block responses +- Load workspace MCP servers in trusted server-mode sessions +- Stacked diffs use the same file order as the file tree +- Make /pr status and web confirmations link to the PR's repository +- Restore later file changes when rewinding to a turn without a snapshot +- Run queued ! shell commands locally instead of sending them to the agent +- Scheduled prompts manager dialog shrinks to fit its entries +- Keep the @-file picker populated when file search hits a symlink loop +- Display cache-write pricing for models that omit it +- Allow /update to restart sessions started with copilot -r +- Prevent pickers and dialogs from shifting or clipping as content loads +- Only render double tildes as strikethrough in markdown +- Allow /allow-all to work in relay sessions +- Restore clickable PR and issue links in compact timeline markdown +- Repo-scoped plugins no longer leak into global config across projects +- Keep /model working on resumed sessions after signing in +- PowerShell script blocks and interpolated `$()` sub-expressions no longer trigger content-exclusion refusals +- Exit message always shows the session ID in the resume command instead of the friendly name +- Wait for the remote sandbox to start before opening the cloud session +- Autopilot mode now auto-handles elicitation, ask_user, sampling, and permission prompts (including on launch with --autopilot and during continuation turns) instead of surfacing dialogs to the user +- Newly spawned sessions appear at the bottom of their group in the agents tab +- Attached images and PDFs persist across session resume even if the source file is later changed or deleted +- Allow disabling task and explore built-in subagents +- Session resume stays responsive while large histories load +- Code search and worktree listing are faster +- Use plain text labels instead of decorative emoji in CLI output +- Syntax-highlight shell commands in the timeline +- Preserve open canvas instances across reconnects and restarts +- Forward typed rejection feedback from preToolUse prompts to the model +- Show statusline picker checkboxes in green for enabled items and gray for disabled items +- Show shell timeline rows with a yellow $ prompt and Shell label +- Add a Folder column to the resume picker to show each session's working directory +- Automatically follow your system light and dark mode changes +- Use semantic mascot theme colors in the CLI banner +- Let footer dialogs scroll with the timeline in unified view +- Click filenames in /diff tree to jump to that file's first change +- Render inline code with themed chip styling in Markdown +- Show installed plugin MCP servers in `mcp` commands +- Remove terminal-reported color scheme support +- Add /diagnose command to analyze session logs +- Add /mcp registry installation for browsing and installing MCP servers +- Make `/security-review` available to all users without --experimental +- Discover MCP servers provided by installed plugins +- Add CSV output support for MCP tools +- Add /loop alias for the /every command +- Remove bogus Ctrl+Enter VS Code keybinding created by old /terminal-setup +- Images returned by tools stay visible to the model across later turns and after resuming a session +- Preserve Markdown blockquotes in /share exports +- Filter long streamed results correctly when content exclusion is enabled +- Show a friendly message when additional usage limit is reached +- Search tools handle Windows-style glob patterns correctly +- Prevent kill self-protection from flagging quoted pipes and paths ending in kill +- Azure CLI, PowerShell, and Developer CLI credentials work again for Azure auth +- Slash-command picker name column widened from 25 to 35 characters so fewer long skill names are truncated +- Wrap long lines in /diff view so content no longer truncates +- Improve /diff hotkey labels for branch, whitespace, and tree navigation +- Remove the legacy intent-reporting tool from the CLI + ## 1.0.63 - 2026-06-15 - Blocked image attachments now explain what to do — enable vision via the "Editor preview features" policy, switch to a vision-capable model, or try a different image — instead of showing a confusing error. From 214d53005407e6b92815547242e3bbd99cd43f6b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 24 Jun 2026 21:41:14 +0000 Subject: [PATCH 208/208] Update changelog.md for version 1.0.65 --- changelog.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/changelog.md b/changelog.md index a76a06d3..a7e9bc26 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,28 @@ +## 1.0.65 - 2026-06-24 + +- /cd now persists the working directory so resuming a session returns to it, and discovers custom agents in the new directory +- Commands with slash-prefixed string arguments (e.g. --body "/azp run") no longer trigger spurious filesystem permission prompts +- Fullscreen timeline stays anchored when older content is trimmed +- Resume open canvases automatically after restarting the CLI +- Add an opt-in status bar item showing CI check status (passing/running/failing) for the current branch +- Add a `copilot skill` subcommand (and a `/skill` alias for `/skills`) to list, add, and remove skills from a file, URL, or directory +- Prevent the GitHub background from flashing on startup with non-GitHub themes +- Prevent brief console windows from flashing on Windows when the agent runs hook commands or resolves command paths +- Include userPromptSubmitted hook additionalContext in the model-facing prompt +- Keep Windows paths intact when adding stdio MCP servers +- Stop MCP shutdown from waiting on in-flight server connects +- Restart the CLI without shutdown timeouts +- Remove syntax highlighting from shell commands in the timeline +- Keep custom-agent subagent model selections when using BYOK providers +- Parse /every schedules on the session's main model +- Render inline images reliably in tmux +- The ask_user freeform option wraps text and keeps the cursor aligned +- Save custom status line commands in /settings +- Show the streaming byte count separately from the cancel hint +- Handle wakeup misfires with a graceful message when no self-paced schedule is active +- Silent MCP OAuth refresh reuses the granted scope so reconnects stay signed in +- Up/down history and Ctrl+R reverse search now include past shell commands while in normal mode, so you can recall and re-run a shell command without first typing ! to enter shell mode + ## 1.0.64 - 2026-06-23 - Path access prompt shows resolved symlink targets so you can see exactly what access is being granted