From 2e925bf7e568c771ea1b1371c9f9486e91ece977 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 11 Feb 2026 20:16:31 +0000 Subject: [PATCH 01/33] 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 02/33] 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 03/33] 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 04/33] 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 05/33] 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 06/33] 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 07/33] 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 08/33] 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 09/33] 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 10/33] 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 11/33] 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 12/33] 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 13/33] Fix the winget submission script --- .github/workflows/winget.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index 46f266f3..873e55b3 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -56,9 +56,11 @@ jobs: - PackageIdentifier: Microsoft.PowerShell MinimumVersion: "7.0.0" "@ - # Insert dependency block before the Installers section + # Remove existing top-level Dependencies block (if any), then insert ours + $content = $content -replace '(?m)^Dependencies:\r?\n([ ]+.+\r?\n)*', '' $content = $content -replace '(?m)^Installers:', "$dependency`nInstallers:" Set-Content -Path $installerManifest -Value $content # Submit the modified manifest - .\wingetcreate.exe submit manifests + $manifestPath = Split-Path $installerManifest + .\wingetcreate.exe submit $manifestPath From d0b7ea0e5f14b2019b15b47bcc580b8b5ddb644e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 20 Feb 2026 23:32:08 +0000 Subject: [PATCH 14/33] Update changelog.md for version 0.0.413 --- changelog.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/changelog.md b/changelog.md index b998f020..67e26613 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,20 @@ +## 0.0.413 - 2026-02-20 + +- Fix issue where Copilot API URL wasn't respected +- Display heading content from reasoning for gpt models +- Increase LSP request timeout from 30s to 90s to reduce timeout failures +- Fixed alt-screen timeline entries not updating when tool calls complete (particularly sub-agent calls) +- ctrl+insert can now be used to copy selected text in the alt-screen view +- Fix read_bash, write_bash, and stop_bash in-progress icon showing filled dot instead of empty circle +- Enable alt-screen mode by default when running with `--experimental` flag +- Improve code search speed in large repos +- Session info renders in the main view footer in alt-screen mode +- Skill files with YAML array syntax for allowed-tools now load correctly +- Support remote plugin sources (GitHub repos and git URLs) in marketplace.json plugin entries +- Automatically migrate users from claude-sonnet-4.5 to the current default model on startup +- Ctrl+A, Ctrl+E, and Ctrl+U navigate to logical line boundaries (newlines) instead of visual wrap boundaries +- Add configurable status line support to display dynamic session information via custom shell scripts + ## 0.0.412 - 2026-02-19 - Improve quick help accessibility: screen reader-friendly tab labels, reordered layout, and grouped `help commands` output From 837a5977456036cbb7e2fbc2fbf56e32fa2f4b28 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 21 Feb 2026 00:53:23 +0000 Subject: [PATCH 15/33] Update changelog.md for version 0.0.414 --- changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changelog.md b/changelog.md index 67e26613..f7e1b49c 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,8 @@ +## 0.0.414 - 2026-02-21 + +- Explore agent can now use GitHub MCP tools when available +- Show permission elevation dialog when accepting a plan with autopilot to prevent auto-denied tool errors + ## 0.0.413 - 2026-02-20 - Fix issue where Copilot API URL wasn't respected From 9134dfdd7e2c301c8a38f3f886db76df160f2fc9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 23 Feb 2026 21:46:07 +0000 Subject: [PATCH 16/33] Update changelog.md for version 0.0.415 --- changelog.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/changelog.md b/changelog.md index f7e1b49c..0143aeb2 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,17 @@ +## 0.0.415 - 2026-02-23 + +- Skill files saved with a UTF-8 BOM (common on Windows editors) now load correctly instead of failing with a frontmatter parse error +- Custom agents support the `model` field to specify which model to use, and unknown fields now warn instead of blocking agent load +- Plan approval menu shows model-curated actions with a recommended option highlighted first, including autopilot+fleet for parallelizable work +- Env loading indicator no longer hangs indefinitely on MCP startup error or session resume +- Add show_file tool for presenting code and diffs to the user +- Add env loading indicator showing skills, MCPs, plugins, ... being loaded +- MCP tool results with giant single lines are truncated correctly +- /plugin marketplace add and /plugin install support local paths containing spaces +- `/mcp show` groups servers into User, Workspace, Plugins, and Built-in sections and makes all servers navigable +- Agent now knows which model is powering it when asked +- Ctrl+A/E cycle through visual lines in wrapped input; Home/End navigate within a visual line; Ctrl+Home/End jump to text boundaries + ## 0.0.414 - 2026-02-21 - Explore agent can now use GitHub MCP tools when available From b320dfb8c4310b45aa7b52ffc37c3b57c6330daa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 24 Feb 2026 20:00:00 +0000 Subject: [PATCH 17/33] Update changelog.md for version 0.0.416 --- changelog.md | 72 +++++++++++++++++++++++++++++----------------------- 1 file changed, 40 insertions(+), 32 deletions(-) diff --git a/changelog.md b/changelog.md index 0143aeb2..30416c51 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 0.0.416 - 2026-02-24 + +- Expand `--help` content with descriptions, examples, and sorted flags +- Block third-party MCP servers when the Copilot MCP policy does not allow them +- Streaming response size counter updates continuously during tool calls and reasoning, and resets between requests +- Status line automatically switches to a two-line layout on narrow terminals, keeping CWD, branch, and model info readable at any terminal width +- Undo operations now always require confirmation + ## 0.0.415 - 2026-02-23 - Skill files saved with a UTF-8 BOM (common on Windows editors) now load correctly instead of failing with a frontmatter parse error @@ -701,10 +709,10 @@ ## 0.0.351 - 2025-10-24 - Improved our path detection heuristic to avoid various annoying, unnecessary permissions requests: - - Running many standard bash/PowerShell commands that are known to be readonly (Fixes part of https://github.com/github/sweagentd/issues/7372) - - Commands like `npm test -- --something` in PowerShell - - Shell redirections like `> some_file.txt` in paths you've already granted write permissions, `> /dev/null`, and `2>&1` (Fixes https://github.com/github/copilot-cli/issues/211) - - Arguments to `gh api` like `gh api /repos/user/repo/ec` (Fixes https://github.com/github/copilot-cli/issues/216) + - Running many standard bash/PowerShell commands that are known to be readonly (Fixes part of https://github.com/github/sweagentd/issues/7372) + - Commands like `npm test -- --something` in PowerShell + - Shell redirections like `> some_file.txt` in paths you've already granted write permissions, `> /dev/null`, and `2>&1` (Fixes https://github.com/github/copilot-cli/issues/211) + - Arguments to `gh api` like `gh api /repos/user/repo/ec` (Fixes https://github.com/github/copilot-cli/issues/216) - Improved prompting for Sonnet 4.5 to reduce the number of intermediate markdown files left in the workspace - 👀 ...see you at [GitHub Universe](https://githubuniverse.com/)! @@ -769,25 +777,25 @@ Haiku 4.5. ``` - Added a flag to augment MCP server configuration to temporarily add or override server configuration per session: `--additional-mcp-config` (fixes https://github.com/github/copilot-cli/issues/288) - - You can pass MCP server configuration in two ways: - - Inline JSON: `copilot --additional-mcp-config '{"mcpServers": {"my-tool": {...}}}'` - - From a file (prefix with @): `copilot --additional-mcp-config @/path/to/config.json` - - You can also pass the flag multiple times (later values override earlier ones): `copilot --additional-mcp-config @base.json --additional-mcp-config @overrides.json` + - You can pass MCP server configuration in two ways: + - Inline JSON: `copilot --additional-mcp-config '{"mcpServers": {"my-tool": {...}}}'` + - From a file (prefix with @): `copilot --additional-mcp-config @/path/to/config.json` + - You can also pass the flag multiple times (later values override earlier ones): `copilot --additional-mcp-config @base.json --additional-mcp-config @overrides.json` - Improved our prompts to ensure the agent uses Windows-style paths on Windows (fixes https://github.com/github/copilot-cli/issues/261) - Added a prompt for users to run `/terminal-setup` if needed to enable multi-line input - Various visual improvements: - - Added a shimmer effect to the "Thinking..." indicator - - Removed the box around user messages in the timeline - - Increased the contrast of removed intraline highlights in diffs - - Allow cycling through slash commands (from the bottom of the list back to the top) - - Aligned permission/confirmation prompts to ensure all use the same visual style + - Added a shimmer effect to the "Thinking..." indicator + - Removed the box around user messages in the timeline + - Increased the contrast of removed intraline highlights in diffs + - Allow cycling through slash commands (from the bottom of the list back to the top) + - Aligned permission/confirmation prompts to ensure all use the same visual style ## 0.0.342 - 2025-10-15 - Overhauled our session logging format: - - Introduced a new session logging format that decouples how we store sessions from how we display them in the timeline. The new format is cleaner, more concise, and scalable, and will allow us to more easily implement new features down the line. - - New sessions are stored in `~/.copilot/session-state` - - Legacy sessions are stored in `~/.copilot/history-session-state` -- these will be migrated to the new format & location as you resume them from `copilot --resume` + - Introduced a new session logging format that decouples how we store sessions from how we display them in the timeline. The new format is cleaner, more concise, and scalable, and will allow us to more easily implement new features down the line. + - New sessions are stored in `~/.copilot/session-state` + - Legacy sessions are stored in `~/.copilot/history-session-state` -- these will be migrated to the new format & location as you resume them from `copilot --resume` - Enabled the Kitty protocol by default. Multi-line input is now supported via Shift+Ctrl on terminal that support the Kitty protocol. Multi-line input is also supported in VSCode and its forks by running the `/terminal-setup` command (fixes https://github.com/github/copilot-cli/issues/14) - Enabled non-interactive GHE logins by respecting the `GH_HOST` environment variable for PAT and `gh` authentication modes (fixes https://github.com/github/copilot-cli/issues/296) - Improved debug log collection convenience by adding a persistent `log_level` option in `~/.copilot/config`. Possible values: `["none", "error", "warning", "info", "debug", "all", "default"]` @@ -812,25 +820,25 @@ - Changed parsing of environment variables in MCP server configuration to treat the value of the `env` section as literal values (fixes https://github.com/github/copilot-cli/issues/26). Customers who have configured MCP Servers for use with the CLI will need to make a slight modification to their `~/.copilot/mcp-config.json`. For any servers they have added with an `env` section, they will need to go add a `$` to the start of the "value" pair of the key value pair of each entry in the env-block, so to have the values treated as references to environment variables. - For example: Before: + For example: Before: - ```json - { - "env": { - "GITHUB_ACCESS_TOKEN": "GITHUB_TOKEN" + ```json + { + "env": { + "GITHUB_ACCESS_TOKEN": "GITHUB_TOKEN" + } } - } - ``` + ``` - Before this change, the CLI would read the value of `GITHUB_TOKEN` from the environment of the CLI and set the environment variable named `GITHUB_ACCESS_TOKEN` in the MCP process to that value. With this change, `GITHUB_ACCESS_TOKEN` would now be set to the literal value `GITHUB_TOKEN`. To get the old behavior, change to this: + Before this change, the CLI would read the value of `GITHUB_TOKEN` from the environment of the CLI and set the environment variable named `GITHUB_ACCESS_TOKEN` in the MCP process to that value. With this change, `GITHUB_ACCESS_TOKEN` would now be set to the literal value `GITHUB_TOKEN`. To get the old behavior, change to this: - ```json - { - "env": { - "GITHUB_ACCESS_TOKEN": "${GITHUB_TOKEN}" + ```json + { + "env": { + "GITHUB_ACCESS_TOKEN": "${GITHUB_TOKEN}" + } } - } - ``` + ``` ## 0.0.339 - 2025-10-10 @@ -923,8 +931,8 @@ - Added support for [Claude Sonnet 4.5](https://github.blog/changelog/2025-09-29-anthropic-claude-sonnet-4-5-is-in-public-preview-for-github-copilot/) and made it the default model - Added `/model` slash command to easily change the model (fixes https://github.com/github/copilot-cli/issues/10) - - `/model` will open a picker to change the model - - `/model ` will set the model to the parameter provided + - `/model` will open a picker to change the model + - `/model ` will set the model to the parameter provided - Added display of currently selected model above the input text box (Addresses feedback in https://github.com/github/copilot-cli/issues/120, https://github.com/github/copilot-cli/issues/108, ) - Improved error messages when users provide incorrect command-line arguments. (Addresses feedback of the discoverability of non-interactive mode from https://github.com/github/copilot-cli/issues/96) - Changed the behavior of `Ctrl+r` to expand only recent timeline items. After running `Ctrl+r`, you can use `Ctrl+e` to expand all From 6c3eff11c16c3bc6c7fd944db80386ea61bce57c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 25 Feb 2026 00:19:05 +0000 Subject: [PATCH 18/33] Update changelog.md for version 0.0.417 --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index 30416c51..0cf5c396 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 0.0.417 - 2026-02-25 + +- Add /research command for deep research with exportable reports +- MCP servers no longer intermittently fail to load when opening a new session +- Plugin agents and skills are available immediately after install without restarting +- Plugin skills and commands load from custom paths declared in plugin.json +- Alt+backspace correctly registers as backspace instead of delete + ## 0.0.416 - 2026-02-24 - Expand `--help` content with descriptions, examples, and sorted flags From aea9faa1d2eb710260cc4bf0f58b455178734470 Mon Sep 17 00:00:00 2001 From: Ryan Hecht Date: Tue, 24 Feb 2026 22:40:38 -0500 Subject: [PATCH 19/33] Revise README for GitHub Copilot CLI installation Updated installation instructions and removed npm references. --- README.md | 53 ++++++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 28050a4e..59548a9e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# GitHub Copilot CLI (Public Preview) +# GitHub Copilot CLI The power of GitHub Copilot, now in your terminal. @@ -38,61 +38,64 @@ If you have access to GitHub Copilot via your organization or enterprise, you ca ### Installation -Install with [WinGet](https://github.com/microsoft/winget-cli) (Windows): +Install with the install script (macOS and Linux): ```bash -winget install GitHub.Copilot +curl -fsSL https://gh.io/copilot-install | bash ``` +Or + ```bash -winget install GitHub.Copilot.Prerelease +wget -qO- https://gh.io/copilot-install | bash ``` -Install with [Homebrew](https://formulae.brew.sh/cask/copilot-cli) (macOS and Linux): +Use `| sudo bash` to run as root and install to `/usr/local/bin`. -```bash -brew install copilot-cli -``` +Set `PREFIX` to install to `$PREFIX/bin/` directory. Defaults to `/usr/local` +when run as root or `$HOME/.local` when run as a non-root user. + +Set `VERSION` to install a specific version. Defaults to the latest version. + +For example, to install version `v0.0.369` to a custom directory: ```bash -brew install copilot-cli@prerelease +curl -fsSL https://gh.io/copilot-install | VERSION="v0.0.369" PREFIX="$HOME/custom" bash ``` -Install with [npm](https://www.npmjs.com/package/@github/copilot) (macOS, Linux, and Windows): +Install with [Homebrew](https://formulae.brew.sh/cask/copilot-cli) (macOS and Linux): ```bash -npm install -g @github/copilot +brew install copilot-cli ``` ```bash -npm install -g @github/copilot@prerelease +brew install copilot-cli@prerelease ``` -Install with the install script (macOS and Linux): + +Install with [WinGet](https://github.com/microsoft/winget-cli) (Windows): ```bash -curl -fsSL https://gh.io/copilot-install | bash +winget install GitHub.Copilot ``` -Or - ```bash -wget -qO- https://gh.io/copilot-install | bash +winget install GitHub.Copilot.Prerelease ``` -Use `| sudo bash` to run as root and install to `/usr/local/bin`. - -Set `PREFIX` to install to `$PREFIX/bin/` directory. Defaults to `/usr/local` -when run as root or `$HOME/.local` when run as a non-root user. -Set `VERSION` to install a specific version. Defaults to the latest version. +Install with [npm](https://www.npmjs.com/package/@github/copilot) (macOS, Linux, and Windows): -For example, to install version `v0.0.369` to a custom directory: +```bash +npm install -g @github/copilot +``` ```bash -curl -fsSL https://gh.io/copilot-install | VERSION="v0.0.369" PREFIX="$HOME/custom" bash +npm install -g @github/copilot@prerelease ``` + ### Launching the CLI ```bash @@ -186,6 +189,6 @@ For more information, see the [changelog](./changelog.md). We're excited to have you join us early in the Copilot CLI journey. -This is an early-stage preview, and we're building quickly. Expect frequent updates--please keep your client up to date for the latest features and fixes! +We're building quickly. Expect frequent updates--please keep your client up to date for the latest features and fixes! Your insights are invaluable! Open issue in this repo, join Discussions, and run `/feedback` from the CLI to submit a confidential feedback survey! From b54e97c5e2bb23540e803cf96f5a7923cb9663c6 Mon Sep 17 00:00:00 2001 From: Ryan Hecht Date: Wed, 25 Feb 2026 11:42:57 -0500 Subject: [PATCH 20/33] Update README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 59548a9e..347cf2dc 100644 --- a/README.md +++ b/README.md @@ -191,4 +191,4 @@ We're excited to have you join us early in the Copilot CLI journey. We're building quickly. Expect frequent updates--please keep your client up to date for the latest features and fixes! -Your insights are invaluable! Open issue in this repo, join Discussions, and run `/feedback` from the CLI to submit a confidential feedback survey! +Your insights are invaluable! Open an issue in this repo, join Discussions, and run `/feedback` from the CLI to submit a confidential feedback survey! From 9277ab58718e4dd2cded7dc51ee2132af64ed927 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 25 Feb 2026 17:32:38 +0000 Subject: [PATCH 21/33] Update changelog.md for version 0.0.418 --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index 0cf5c396..bc579e84 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 0.0.418 - 2026-02-25 + +🎉 Copilot CLI is now [generally available](https://github.blog/changelog/2026-02-25-github-copilot-cli-is-now-generally-available) 🎉 + +- Agent protected from accidentally killing itself +- Remove --disable-parallel-tools-execution flag and parallel_tool_execution config option +- Plugin agents specified as file paths in plugin.json load correctly + ## 0.0.417 - 2026-02-25 - Add /research command for deep research with exportable reports From 30034c78b03e41fee31d71b73b2625572da81740 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Wed, 25 Feb 2026 22:34:17 -0500 Subject: [PATCH 22/33] install: guide user to update PATH for current shell session When copilot is not on PATH after install, the script now: - Tells users to restart their shell or source their RC file after adding the PATH export - Provides a copy-pasteable one-liner (export PATH + copilot help) that fixes PATH for the current session and runs the getting started command - Only shows the simple 'copilot help' message when it will actually work Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- install.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index fb3d3d49..0d7d77fe 100755 --- a/install.sh +++ b/install.sh @@ -156,6 +156,7 @@ if ! command -v copilot >/dev/null 2>&1; then if [ "$REPLY" = "y" ] || [ "$REPLY" = "Y" ]; then echo "export PATH=\"$INSTALL_DIR:\$PATH\"" >> "$RC_FILE" echo "✓ Added PATH export to $RC_FILE" + echo " Restart your shell or run: source $RC_FILE" fi fi else @@ -163,7 +164,11 @@ if ! command -v copilot >/dev/null 2>&1; then echo "To add $INSTALL_DIR to your PATH permanently, add this to $RC_FILE:" echo " export PATH=\"$INSTALL_DIR:\$PATH\"" fi -fi -echo "" -echo "Installation complete! Run 'copilot help' to get started." + echo "" + echo "Installation complete! To get started, run:" + echo " export PATH=\"$INSTALL_DIR:\$PATH\" && copilot help" +else + echo "" + echo "Installation complete! Run 'copilot help' to get started." +fi From 9596516c61472dbc8379ce83b2f301912f524486 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 27 Feb 2026 01:58:01 +0000 Subject: [PATCH 23/33] Update changelog.md for version 0.0.419 --- changelog.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/changelog.md b/changelog.md index bc579e84..4253a1b1 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,18 @@ +## 0.0.419 - 2026-02-27 + +- Add /chronicle command with standup, tips, and improve subcommands powered by session history (experimental) +- Scrolling left or right no longer triggers unintended mouse button presses +- Add Ctrl+F/Ctrl+B as page down/up shortcuts for scrolling in alt-screen views +- Add --mouse/--no-mouse flag and mouse config to disable mouse mode in alt screen +- Home and End keys jump to the top and bottom of the alt-screen scroll buffer +- Add Ctrl+G keyboard shortcut for editing prompts in external editor and dismissing UI elements +- /mcp enable works for built-in servers that were auto-disabled before configuration +- CLI spinner stops and final agent response is visible after agent finishes work +- AUTO theme now uses the terminal's actual ANSI color palette for more accurate colors on any terminal theme +- MCP server env vars referenced in command, args, or cwd fields are automatically included in the server environment +- /diagnose shows a helpful message when no session has been started yet +- MCP server names now support dots, slashes, and @ characters, enabling npm-style names like @modelcontextprotocol/server and io.github/server + ## 0.0.418 - 2026-02-25 🎉 Copilot CLI is now [generally available](https://github.blog/changelog/2026-02-25-github-copilot-cli-is-now-generally-available) 🎉 From 3b7315490899c61cae6e06d3e9d86b54955c6332 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 27 Feb 2026 18:47:57 +0000 Subject: [PATCH 24/33] Update changelog.md for version 0.0.420 --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index 4253a1b1..e7b28236 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## 0.0.420 - 2026-02-27 + +- Auto-update now also updates the binary executable, not just the JS package +- Plugin and marketplace git repos update correctly after force-pushes and tag-based installs +- 502 bad gateway errors are retried automatically and no longer crash the session with raw HTML output +- Copy hint shows cmd+c in Ghostty on macOS and right-click as an alternative for all terminals +- Type # to reference GitHub issues, pull requests and discussions + ## 0.0.419 - 2026-02-27 - Add /chronicle command with standup, tips, and improve subcommands powered by session history (experimental) From 689d1486a101d9752906f1c6b268eba532f915dc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 3 Mar 2026 18:12:58 +0000 Subject: [PATCH 25/33] Update changelog.md for version 0.0.421 --- changelog.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/changelog.md b/changelog.md index e7b28236..127b7a92 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,29 @@ +## 0.0.421 - 2026-03-03 + +- Autopilot permission dialog appears on first prompt submission instead of on mode switch +- AUTO theme now reads your terminal's ANSI color palette and uses it directly, so colors match your terminal theme +- Add structured form input for the ask_user tool using MCP Elicitations (experimental) +- Plugin commands read extraKnownMarketplaces from project-level .claude/settings.json for Claude compatibility +- Git hooks can detect Copilot CLI subprocesses via the COPILOT_CLI=1 environment variable to skip interactive prompts +- Spurious "write EIO" error entries no longer appear in the timeline during session resume or terminal state transitions +- Python-based MCP servers no longer time out due to buffered stdout +- Error when --model flag specifies an unavailable model +- MCP server availability correctly updates after signing in, switching accounts, or signing out +- Display clickable PR reference next to branch name in the status bar +- Add --plugin-dir flag to load a plugin from a local directory +- Mouse text selection is automatically copied to the Linux primary selection buffer (middle-click to paste) +- Fix VS Code shift+enter and ctrl+enter keybindings for multiline input +- Use consistent ~/.copilot/pkg path for auto-update instead of XDG_STATE_HOME +- ACP clients can configure reasoning effort via session config options +- Click links in the terminal to open them in your default browser +- Support repo-level config via .github/copilot/config.json for shared project settings like marketplaces and launch messages +- Streaming output no longer truncates when running in alt-screen mode +- Right-click paste no longer produces garbled text on Windows +- Shell command output on Windows no longer renders as "No changes detected" in the timeline +- GitHub API errors no longer appear as raw HTTP messages in the terminal when using the # reference picker +- Markdown tables render with proper column widths, word wrap, and Unicode borders that adapt to terminal width +- MCP elicitation form displays taller multi-line text input, hides tab bar for single-field forms, and fixes error flashing on field navigation + ## 0.0.420 - 2026-02-27 - Auto-update now also updates the binary executable, not just the JS package From 7aa08b3594adc78d034dec8f34feefc8038dad64 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 5 Mar 2026 23:51:10 +0000 Subject: [PATCH 26/33] Update changelog.md for version 0.0.422 --- changelog.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/changelog.md b/changelog.md index 127b7a92..b9eed310 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,49 @@ +## 0.0.422 - 2026-03-05 + +- Display request ID in authentication and authorization error messages to aid troubleshooting +- Load personal hooks from ~/.copilot/hooks in addition to repo-level .github/hooks +- Timeline now shows the question in a box and displays 'Making best guess on autopilot' when ask_user is auto-responded +- Add support for GPT-5.4 model +- Plugin cache automatically recovers from a corrupted or incomplete clone without manual intervention +- Show a clear, actionable error message when git is not installed and a remote plugin or marketplace is used +- Text selection persists after copying to clipboard in alt screen +- Scroll view no longer jumps to earlier messages when scrolling during response streaming or with popups open +- Add copy_on_select config option to auto-copy selected text to clipboard in alt screen mode +- IME candidate windows appear at correct cursor position in CJK input +- Add mouse scroll support to /diff in alt-screen mode +- Reduce memory usage in alt-screen mode for long sessions +- Diff mode now works correctly when git color.diff=always is configured +- Opening links on Windows correctly handles URLs with & query parameters +- @-mention file completion always reflects the current state of the working directory +- ESC key to cancel works correctly in tmux and other non-kitty terminals +- Click in the prompt input to reposition the text cursor +- Add /copy command to copy the last response to clipboard +- Links in alt-screen mode are rendered with underline styling for better visibility +- /delegate prompts for a target remote in multi-remote repositories and clarifies confirmation text +- GitHub MCP server stays enabled in repositories that have both Azure DevOps and GitHub remotes +- Colons in inline code render correctly inside markdown tables +- Pressing Ctrl+C on the help dialog now dismisses it cleanly +- Plugin-contributed LSP servers are now loaded, started, and shown in /lsp show +- Pressing Enter in required enum field now selects the highlighted option +- Hide noisy todo bookkeeping queries and show dependency details in timeline +- CLI no longer hangs for minutes when working in a directory with a large number of files +- Add --output-format json flag to emit JSONL in prompt mode for programmatic integrations +- Add exitPlanMode.request protocol method for SDK plan approval support +- Automatic notifications when background shell commands and agents complete +- GitHub MCP server connection status is accurately tracked and counted in the status indicator +- Press Ctrl+R to search command history with reverse incremental search (like Bash) +- Long diff lines no longer overflow and wrap in the diff view +- Add startup prompt hooks to auto-submit prompts or slash commands when a session starts +- Ctrl+K joins lines when cursor is at end of line, matching standard Emacs/terminal behavior +- Escape sequences split across input chunks no longer leak into text input +- Rename `launch_messages` config setting to `companyAnnouncements` +- Show a waiting message when the terminal is handed to an external editor +- Support enabledPlugins in config for automatic plugin installation at startup +- Improve key bindings in reverse history search: Ctrl+J to accept, Ctrl+G to cancel +- Rename repository config from `.github/copilot/config.json` to `settings.json` +- Support installing plugins from ssh:// URLs +- Session usage metrics (requests, tokens, code changes) are now persisted to events.jsonl after each session ends + ## 0.0.421 - 2026-03-03 - Autopilot permission dialog appears on first prompt submission instead of on mode switch From 732d8b1ad3cdb66e8718acd24a9d745debbd5533 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 6 Mar 2026 16:39:08 +0000 Subject: [PATCH 27/33] Update changelog.md for version 0.0.423 --- changelog.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/changelog.md b/changelog.md index b9eed310..ca3627e0 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,12 @@ +## 0.0.423 - 2026-03-06 + +- Users are prompted for shell commands with potentially dangerous expansion or substitution use cases, additional guardrails for malicious exploits +- Block /share gist for EMU and GHE Cloud users with clear error messaging +- Elicitation enum and boolean fields now require Enter to confirm a selection, with a ✓ indicator for confirmed values vs ❯ for the browsing cursor +- MCP servers can now request users to visit a URL for out-of-band interactions such as OAuth flows or API key entry +- Improve explore agent precision and large repository support with better context sharing +- Diff mode displays cleanly on Windows with CRLF line endings + ## 0.0.422 - 2026-03-05 - Display request ID in authentication and authorization error messages to aid troubleshooting From 6c50fd21d4fdb34470828bd86403babd7f2429b1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 6 Mar 2026 21:33:06 +0000 Subject: [PATCH 28/33] Update changelog.md for version 1.0.2 --- changelog.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/changelog.md b/changelog.md index ca3627e0..e79d35f7 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,13 @@ +## 1.0.2 - 2026-03-06 + +To commemorate GitHub Copilot CLI reaching general availability last week, we're incrementing the major version to 1.0! + +- Type 'exit' as a bare command to close the CLI +- Ask_user form now submits with Enter key and allows custom responses in enum fields +- Support 'command' field as cross-platform alias for bash/powershell in hook configs +- Hook configurations now accept timeout as alias for timeoutSec +- Fix handling of meta with control keys (including shift+enter from /terminal-setup) + ## 0.0.423 - 2026-03-06 - Users are prompted for shell commands with potentially dangerous expansion or substitution use cases, additional guardrails for malicious exploits From 28d2487331bab53f92cc72bd703ebf2c2dca6d5c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 9 Mar 2026 23:28:54 +0000 Subject: [PATCH 29/33] Update changelog.md for version 1.0.3 --- changelog.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/changelog.md b/changelog.md index e79d35f7..c58ad15d 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,33 @@ +## 1.0.3 - 2026-03-09 + +- Enable alternate screen buffer by default for staff users +- Extensions are now available as an experimental feature — ask Copilot to write custom tools and hooks for itself using @github/copilot-sdk +- Document GH_HOST, HTTP_PROXY, HTTPS_PROXY, NO_COLOR, and NO_PROXY environment variables in help +- Read MCP server configuration from .devcontainer/devcontainer.json +- Add --binary-version flag to query the CLI binary version without launching +- Add /restart command to hot restart the CLI while preserving your session +- Background task notifications display in timeline with expandable detail +- Type 'quit' to exit the CLI, in addition to 'exit' +- Add extraKnownMarketplaces repository setting to replace marketplaces +- Add Windows Terminal support to /terminal-setup command +- /reset-allowed-tools now fully undoes /allow-all and re-triggers the autopilot permission dialog +- Improved handling of batched queries in the SQL tool +- Login flow no longer hangs on Ubuntu when system keyring is unresponsive +- Terminal is properly reset when CLI crashes unexpectedly +- Table disables borders in screen reader mode to prevent announcing decorative characters +- MCP servers with non-conforming outputSchema are now accessible +- /plugin update now works for GitHub-installed plugins +- /add-dir directories persist across session changes like /clear and /resume +- Prevent env command from being treated as safe to allow without approval +- Placeholder text color displays correctly when wrapping in narrow terminals +- /plugin update now works with marketplaces defined in project settings +- Retry status messages now display to show progress during server error recovery +- Show loading spinner in diff mode while fetching changes +- Suppress /init suggestion when .github/instructions/ contains instructions +- Rename merge_strategy config to mergeStrategy for consistency +- Suppress unknown field warnings in skill and command frontmatter +- Trust safe sed commands to run without confirmation + ## 1.0.2 - 2026-03-06 To commemorate GitHub Copilot CLI reaching general availability last week, we're incrementing the major version to 1.0! From 0160eb95560d4f17b0f307677ce3d74903b52a59 Mon Sep 17 00:00:00 2001 From: Devraj Mehta Date: Tue, 10 Mar 2026 16:57:29 -0400 Subject: [PATCH 30/33] install: use GITHUB_TOKEN for authenticated GitHub requests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When the GITHUB_TOKEN environment variable is set, pass it as an Authorization header on curl/wget downloads and embed it in the git remote URL for ls-remote. This helps avoid rate limits and enables installation from private repositories. When GITHUB_TOKEN is unset, behavior is unchanged — the auth arrays expand to nothing and the git remote URL stays unauthenticated. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- install.sh | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index 0d7d77fe..1ae34a19 100755 --- a/install.sh +++ b/install.sh @@ -34,6 +34,16 @@ case "$(uname -m)" in *) echo "Error: Unsupported architecture $(uname -m)" >&2 ; exit 1 ;; esac +# Set up authentication for GitHub requests if GITHUB_TOKEN is available +CURL_AUTH=() +WGET_AUTH=() +GIT_REMOTE="https://github.com/github/copilot-cli" +if [ -n "$GITHUB_TOKEN" ]; then + CURL_AUTH=(-H "Authorization: token $GITHUB_TOKEN") + WGET_AUTH=(--header="Authorization: token $GITHUB_TOKEN") + GIT_REMOTE="https://x-access-token:${GITHUB_TOKEN}@github.com/github/copilot-cli" +fi + # Determine download URL based on VERSION if [ "${VERSION}" = "latest" ] || [ -z "$VERSION" ]; then DOWNLOAD_URL="https://github.com/github/copilot-cli/releases/latest/download/copilot-${PLATFORM}-${ARCH}.tar.gz" @@ -44,7 +54,7 @@ elif [ "${VERSION}" = "prerelease" ]; then echo "Error: git is required to install prerelease versions" >&2 exit 1 fi - VERSION="$(git ls-remote --tags https://github.com/github/copilot-cli | tail -1 | awk -F/ '{print $NF}')" + VERSION="$(git ls-remote --tags "$GIT_REMOTE" | tail -1 | awk -F/ '{print $NF}')" if [ -z "$VERSION" ]; then echo "Error: Could not determine prerelease version" >&2 exit 1 @@ -67,9 +77,9 @@ echo "Downloading from: $DOWNLOAD_URL" TMP_DIR="$(mktemp -d)" TMP_TARBALL="$TMP_DIR/copilot-${PLATFORM}-${ARCH}.tar.gz" if command -v curl >/dev/null 2>&1; then - curl -fsSL "$DOWNLOAD_URL" -o "$TMP_TARBALL" + curl -fsSL "${CURL_AUTH[@]}" "$DOWNLOAD_URL" -o "$TMP_TARBALL" elif command -v wget >/dev/null 2>&1; then - wget -qO "$TMP_TARBALL" "$DOWNLOAD_URL" + wget -qO "$TMP_TARBALL" "${WGET_AUTH[@]}" "$DOWNLOAD_URL" else echo "Error: Neither curl nor wget found. Please install one of them." rm -rf "$TMP_DIR" @@ -80,9 +90,9 @@ fi TMP_CHECKSUMS="$TMP_DIR/SHA256SUMS.txt" CHECKSUMS_AVAILABLE=false if command -v curl >/dev/null 2>&1; then - curl -fsSL "$CHECKSUMS_URL" -o "$TMP_CHECKSUMS" 2>/dev/null && CHECKSUMS_AVAILABLE=true + curl -fsSL "${CURL_AUTH[@]}" "$CHECKSUMS_URL" -o "$TMP_CHECKSUMS" 2>/dev/null && CHECKSUMS_AVAILABLE=true elif command -v wget >/dev/null 2>&1; then - wget -qO "$TMP_CHECKSUMS" "$CHECKSUMS_URL" 2>/dev/null && CHECKSUMS_AVAILABLE=true + wget -qO "$TMP_CHECKSUMS" "${WGET_AUTH[@]}" "$CHECKSUMS_URL" 2>/dev/null && CHECKSUMS_AVAILABLE=true fi if [ "$CHECKSUMS_AVAILABLE" = true ]; then From 9a0d581894cb6572a8760aa38f84616e79552909 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 11 Mar 2026 19:52:34 +0000 Subject: [PATCH 31/33] Update changelog.md for version 1.0.4 --- changelog.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/changelog.md b/changelog.md index c58ad15d..38151491 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,33 @@ +## 1.0.4 - 2026-03-11 + +- Add `session.shell.exec` and `session.shell.kill` RPC methods for executing shell commands with streaming stdout/stderr output +- Custom agents from --plugin-dir plugins now load correctly in ACP mode +- Adaptive color engine with dynamic color modes and interactive theme picker. Gracefully degrades on limited-color terminals and Windows +- MCP OAuth re-authentication works reliably when callback port changes or when using Microsoft Entra ID +- Replace /pr open with /pr view [local|web] to view PR status locally or open in browser +- Enables OpenTelemetry instrumentation for observability into agent sessions, LLM calls, and tool executions +- Extensions can now be written as CommonJS modules (extension.cjs) +- Show loaded extensions count in the Environment loaded startup message +- Support disableAllHooks flag to disable all hooks from a configuration file +- Support Azure DevOps repository identification in session logs +- Session export header renders each field on its own line in shared gists +- Auto-update now retries without authentication token on SAML enforcement errors +- Autopilot mode stops continuing after API errors instead of looping indefinitely +- Status line context window percentage no longer inflates across turns by using the last call's input and output tokens instead of cumulative totals +- Kitty keyboard protocol is properly disabled on suspend when using alternate screen +- Only show reasoning headers when it's the only reasoning text available. +- Terminal properly resets when CLI crashes, preventing shell corruption +- /update command automatically restarts to apply updates instead of requiring manual exit +- OAuth authentication now handles Microsoft Entra ID and other OIDC servers reliably with proper resource indicators and refresh token support +- Show individual instruction file names in /instructions picker with [external] labels for injected files +- Path permission dialog offers a one-time approval option in addition to adding the path to the allowed list +- Add --reasoning-effort CLI flag to set reasoning effort level +- Hooks can now request user confirmation before tool execution with 'ask' permission decision +- Add configure-copilot sub-agent for managing MCP servers, custom agents, and skills via the task tool +- Interactive shell initialization no longer times out on slow machines +- Faster shell commands on Windows by skipping PowerShell profile loading +- Improve CLI help documentation to use standard --option=value format and comma-separated list syntax + ## 1.0.3 - 2026-03-09 - Enable alternate screen buffer by default for staff users From 33b5f9cd1443c10990fdbe1d820fa727ee5ea37c Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Thu, 12 Mar 2026 13:22:36 -0400 Subject: [PATCH 32/33] Alter PATH for login shells, not interactive shells The installer was adding PATH exports to .bashrc/.zshrc, which are rc files for interactive shells. PATH belongs in login-shell startup files (~/.profile, ~/.bash_profile, ~/.zprofile) so it is set once per session and inherited by all child processes. --- install.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index 1ae34a19..02e5934e 100755 --- a/install.sh +++ b/install.sh @@ -151,11 +151,19 @@ if ! command -v copilot >/dev/null 2>&1; then echo "" echo "Notice: $INSTALL_DIR is not in your PATH" - # Detect shell rc file + # Detect shell profile file for PATH case "$(basename "${SHELL:-/bin/sh}")" in - zsh) RC_FILE="$HOME/.zshrc" ;; - bash) RC_FILE="$HOME/.bashrc" ;; - *) RC_FILE="$HOME/.profile" ;; + zsh) RC_FILE="$HOME/.zprofile" ;; + bash) + if [ -f "$HOME/.bash_profile" ]; then + RC_FILE="$HOME/.bash_profile" + elif [ -f "$HOME/.bash_login" ]; then + RC_FILE="$HOME/.bash_login" + else + RC_FILE="$HOME/.profile" + fi + ;; + *) RC_FILE="$HOME/.profile" ;; esac # Prompt user to add to shell rc file (only if interactive) From 10fc28466edee641b23c77353ea6f7746ebc665a Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Thu, 12 Mar 2026 14:47:49 -0400 Subject: [PATCH 33/33] Incorporate ZDOTDIR into .zprofile path Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 02e5934e..61caf872 100755 --- a/install.sh +++ b/install.sh @@ -153,7 +153,7 @@ if ! command -v copilot >/dev/null 2>&1; then # Detect shell profile file for PATH case "$(basename "${SHELL:-/bin/sh}")" in - zsh) RC_FILE="$HOME/.zprofile" ;; + zsh) RC_FILE="${ZDOTDIR:-$HOME}/.zprofile" ;; bash) if [ -f "$HOME/.bash_profile" ]; then RC_FILE="$HOME/.bash_profile"