From 91ce8610c3a52a7eed4e4dd6cd379fe855b3f388 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Fri, 14 Nov 2025 21:08:58 -0500 Subject: [PATCH 001/110] 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 002/110] 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 003/110] 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 004/110] 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 005/110] 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 006/110] 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 007/110] 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 008/110] 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 009/110] 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 010/110] 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 011/110] 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 012/110] 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 013/110] 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 014/110] 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 015/110] 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 016/110] 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 017/110] 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 018/110] 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 019/110] 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 020/110] 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 021/110] 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 022/110] 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 023/110] 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 024/110] 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 025/110] 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 026/110] 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 027/110] 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 028/110] 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 029/110] 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 030/110] 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 031/110] 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 032/110] 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 033/110] 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 034/110] 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 035/110] 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 036/110] 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 037/110] 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 038/110] 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 039/110] 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 040/110] 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 041/110] 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 042/110] 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 043/110] 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 044/110] 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 045/110] 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 046/110] 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 047/110] 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 048/110] 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 049/110] 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 050/110] 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 051/110] 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 052/110] 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 053/110] 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 054/110] 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 055/110] 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 056/110] 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 057/110] 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 058/110] 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 059/110] 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 060/110] 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 061/110] 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 062/110] 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 063/110] 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 064/110] 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 065/110] 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 066/110] 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 067/110] 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 068/110] 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 069/110] 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 070/110] 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 071/110] 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 072/110] 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 073/110] 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 074/110] 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 075/110] 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 076/110] 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 077/110] 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 078/110] 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 079/110] 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 080/110] 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 081/110] 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 082/110] 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 083/110] 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 084/110] 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 085/110] 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 086/110] 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 087/110] 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 088/110] 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 089/110] 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 090/110] 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 091/110] 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 092/110] 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 093/110] 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 094/110] 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 095/110] 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 096/110] 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 097/110] 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 098/110] 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 099/110] 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 100/110] 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 101/110] 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 102/110] 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 103/110] 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 104/110] 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 105/110] 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 106/110] 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 107/110] 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 108/110] 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 109/110] 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 110/110] 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