What’s New

copilot-cli

AI

Brings the power of Copilot coding agent directly to your terminal

Latest v1.0.77 · by GitHubWebsitegithub/copilot-cli

Release activity

Release activity — 10 releases across 5 days since Jul 29, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Jul 29, 2026.
AugSepOctNovDecJanFebMarAprMayJunJulAug
SundayNo releases on Aug 2, 2026
Monday1 release on Aug 3, 2026
Tuesday
Wednesday4 releases on Jul 29, 2026
Thursday3 releases on Jul 30, 2026
Friday1 release on Jul 31, 2026
Saturday1 release on Aug 1, 2026

10 releases since Jul 29, 2026, busiest day 4

Changelog

v1.0.78-3Pre-release

1.0.78-3

Added 1
  • Add the experimental /new-worktree command to create a new worktree and start a new conversation in it
Changed 1
  • Interactive shell shortcut now launches on Enter and shows an inline hint when "$" is armed
Fixed 1
  • Copilot login now defaults to the browser flow for local desktop subprocesses without a TTY, including IDE integrations, while remote and headless environments continue using device code

Added

  • Add the experimental /new-worktree command to create a new worktree and start a new conversation in it

Improved

  • Interactive shell shortcut now launches on Enter and shows an inline hint when "$" is armed

Fixed

  • Copilot login now defaults to the browser flow for local desktop subprocesses without a TTY, including IDE integrations, while remote and headless environments continue using device code
v1.0.78-2Pre-release

1.0.78-2

Changed 1
  • Split-view sidebar close confirmation now reads 'x again to close' (or 'x again to exit CLI' on the last session) instead of 'x close' to clarify that a second press closes the view
Fixed 3
  • Extension slash commands run their handler exactly once per invocation when several extensions are loaded
  • Inline images no longer render with their first row repeated down the whole picture after the timeline scrolls
  • A run whose prompt is piped over stdin now treats its sessionEnd hook the same way -p does: the hook fires once per completed agent turn with reason 'complete' or 'error' if the turn failed, instead of once at shutdown with 'user_exit'

Improved

  • Split-view sidebar: the red close confirmation now reads x again to close (or x again to exit CLI on the last session) instead of x close, so a second press is clearly what closes

Fixed

  • Extension slash commands run their handler exactly once per invocation when several extensions are loaded
  • Inline images no longer render with their first row repeated down the whole picture after the timeline scrolls
  • A run whose prompt is piped over stdin now treats its sessionEnd hook the same way -p does: the hook fires once per completed agent turn with reason complete (or error if the turn failed), instead of once at shutdown with user_exit. As with -p, a piped run that exits before completing a turn fires no sessionEnd hook
v1.0.78-0Pre-release

1.0.78-0

Added 2
  • Add /permissions to switch between approval modes
  • ACP mode supports closing sessions with the closeSession request
Changed 6
  • New sandbox setting allowDevToolCaches (on by default) grants sandboxed builds access to toolchain caches, registries, and installs so builds work without extra setup
  • Honor explicit GitHub MCP toolset/tool config by keeping gh-overlap tools and stopping steering to the gh CLI when opted in
  • Warn on startup about unknown top-level keys in user settings.json instead of silently ignoring them
  • Shell completion for --model now suggests auto and supported model names
  • Render long session transcripts progressively to keep scrolling responsive
  • Resuming a long session is dramatically faster and lighter on memory because its history is now read once at startup in parallel across CPU cores instead of being re-read for every check
Fixed 3
  • Ctrl+Q now enqueues the highlighted mid-text skill completion instead of the partial token
  • Switching sessions no longer restarts MCP servers or rebuilds hook state, so a turn running in another session is never halted with a stale-hook error
  • Refresh deferred MCP tools after OAuth authentication
Removed 1
  • The /allow-all auto safety-judge model is no longer user-configurable; the judge model is now selected automatically

Added

  • Add /permissions to switch between approval modes.
  • ACP mode supports closing sessions with the closeSession request.

Improved

  • New sandbox setting allowDevToolCaches (on by default): grants sandboxed builds access to toolchain caches, registries, and installs so builds work without extra setup. Set false to opt out.
  • Honor explicit GitHub MCP toolset/tool config: keep gh-overlap tools and stop steering to the gh CLI when you opt in
  • Warn on startup about unknown top-level keys in user settings.json (e.g. a misspelled setting) instead of silently ignoring them
  • Shell completion for --model now suggests auto and supported model names
  • Render long session transcripts progressively to keep scrolling responsive
  • Resuming a long session is dramatically faster and far lighter on memory, because its history is now read once at startup (in parallel, across CPU cores) instead of being re-read in full for every check the CLI runs before it can paint. In our benchmark a 230MB, 74k-event transcript came back in well under a second instead of about ten, at roughly a quarter of the peak memory; the exact gain depends on your machine's core count and disk

Fixed

  • Ctrl+Q now enqueues the highlighted mid-text skill completion instead of the partial token
  • Switching sessions no longer restarts MCP servers or rebuilds hook state, so a turn running in another session is never halted with a stale-hook error
  • Refresh deferred MCP tools after OAuth authentication

Removed

  • The /allow-all auto safety-judge model is no longer user-configurable; the judge model is now selected automatically.
v1.0.77

1.0.77

Added 3
  • Ctrl+G opens your editor to edit ask_user freeform answers without closing the prompt
  • Add a browser-based (web) OAuth login flow, now the default for copilot login on local interactive terminals (device code remains the default on remote/headless terminals), with --web-flow/--device-code flags to force a mode or pick one in the interactive /login command
  • Support enforcing managed sandbox policy via macOS and Windows native MDM settings
Changed 2
  • Unconditional autopilot approval now disables sandbox for the current session when bypass is allowed
  • Allow reasoning effort to be omitted so the server can select the default

2026-07-30

  • Unconditional autopilot approval now disables sandbox for the current session when bypass is allowed
  • Ctrl+G opens your editor to edit ask_user freeform answers without closing the prompt
  • Add a browser-based (web) OAuth login flow, now the default for copilot login on local interactive terminals (device code remains the default on remote/headless terminals). Use --web-flow/--device-code to force a mode, or pick one in the interactive /login command
  • Support enforcing managed sandbox policy via macOS and Windows native MDM settings
  • Allow reasoning effort to be omitted so the server can select the default
v1.0.77-0Pre-release

1.0.77-0

Added 2
  • Add a browser-based (web) OAuth login flow as the default for `copilot login` on local interactive terminals, with device code remaining the default on remote/headless terminals, and add `--web-flow`/`--device-code` flags to force a mode or pick one in the interactive `/login` command
  • Support enforcing managed sandbox policy via macOS and Windows native MDM settings
Changed 1
  • Allow reasoning effort to be omitted so the server can select the default

Added

  • Add a browser-based (web) OAuth login flow, now the default for copilot login on local interactive terminals (device code remains the default on remote/headless terminals). Use --web-flow/--device-code to force a mode, or pick one in the interactive /login command
  • Support enforcing managed sandbox policy via macOS and Windows native MDM settings

Improved

  • Allow reasoning effort to be omitted so the server can select the default
v1.0.76

1.0.76

Added 6
  • Add enable/disable controls in /plugins for plugins, instructions, agents, LSP servers, and hooks
  • Add support for the grok-4.5 model
  • Add a directable queue manager (staff) to reorder, edit, remove, repeat, and immediately send queued messages
  • New Sessions sidebar for managing multiple concurrent sessions: switch between them, spawn new ones, and see their status at a glance with experimental mode
  • Add /limits predict to suggest a session AI-credit limit from similar sessions
  • Add configurable timed refreshes for custom status-line commands
Changed 14
  • Sandbox denied paths are enforced for relative and symlinked entries on macOS and Linux
  • Unsent prompt text now stays with the session it was typed for instead of following you to the session you switch to
  • Resuming a session now restores its autopilot or plan mode instead of reverting to interactive
  • URL permission prompts now keep their sandbox-bypass warning and the model's reason when a host integration rebuilds the prompt
  • When an update is auto-downloaded, the notification suggests /restart and drops the warning color
  • /diff scrolls and syntax-highlights large multi-file diffs faster
Fixed 2
  • Sessions no longer fail every turn with Holder terminated during creation after a subagent finishes
  • A userPromptSubmitted hook returning a non-string value for modifiedPrompt, modifiedTransformedPrompt, or a handled responseContent no longer corrupts the session

2026-07-29

  • Add enable/disable controls in /plugins for plugins, instructions, agents, LSP servers, and hooks
  • Add support for the grok-4.5 model
  • Sandbox denied paths are enforced for relative and symlinked entries on macOS and Linux (Windows cannot deny per path)
  • Unsent prompt text now stays with the session it was typed for (for the rest of the CLI session) instead of following you to the session you switch to
  • Resuming a session now restores its autopilot or plan mode instead of reverting to interactive, so the autopilot-only task_complete tool stays available and the mode matches the session you left
  • URL permission prompts now keep their sandbox-bypass warning and the model's reason when a host integration rebuilds the prompt, so an elevated fetch is no longer shown as an ordinary one
  • When an update is auto-downloaded, the notification suggests /restart and drops the warning color
  • /diff scrolls and syntax-highlights large multi-file diffs faster
  • Split-view sidebar: hover-to-focus is now off by default (opt in with sidebar.hoverFocus), the active session card is accented by default (opt out with sidebar.accentActiveSession), and the closed-state open sidebar hint always renders in the neutral hint color
  • web_fetch now follows HTTP redirects instead of failing, asking permission for the redirect target when it is on a different origin and showing where the redirect came from
  • Add a directable queue manager (staff) to reorder, edit, remove, repeat, and immediately send queued messages
  • New Sessions sidebar for managing multiple concurrent sessions: switch between them, spawn new ones, and see their status at a glance. Turn it on with experimental mode (/experimental on).
  • Enterprise administrators can enforce a restrictive sandbox floor: managed settings tighten (but never loosen) the user's sandbox policy, and the /sandbox dialog surfaces the org-configured managed values with locked fields and managed filesystem paths so admins can confirm what is enforced.
  • Sessions no longer fail every turn with "Holder terminated during creation" after a subagent finishes
  • Startup tips only suggest /init in repositories that don't already have Copilot instructions
  • A userPromptSubmitted hook returning a non-string value for modifiedPrompt, modifiedTransformedPrompt, or a handled responseContent no longer corrupts the session; the value is ignored, a type-only warning naming the field is logged, an empty-string replacement is rejected instead of blanking the model-facing content, a hook that sets handled without a usable responseContent is now diagnosed instead of silently falling through to the model, and a null additionalContext is treated as absent instead of being injected as the literal text null; hook output is also bounded at 10 MiB per invocation, so an HTTP or command hook returning an unbounded response can no longer exhaust memory or leave an oversized session behind
  • Show recent shell output for large commands that write to a file
  • The /instructions picker now respects --no-custom-instructions.
  • Render inline images in Rio terminals that support Kitty graphics
  • Sandboxed searches now offer an immediate bypass prompt and avoid duplicate bypass prompts.
  • Voice mode pauses playing media before recording and resumes it afterward, where supported (macOS and Windows)
  • Show the number of active scheduled prompts in the footer
  • Add /limits predict to suggest a session AI-credit limit from similar sessions.
  • Add configurable timed refreshes for custom status-line commands
  • Queued messages list no longer shows a blank row or inflated count, and Ctrl+C removes your own newest queued message
  • Changing the mouse setting mid-session now takes effect immediately, from both /settings mouse on|off and the /settings dialog, instead of being saved but ignored until the CLI restarted
  • web_fetch routes through the configured sandbox proxy when outbound is allowed, and denies egress when network.allowOutbound is false (a proxy no longer overrides the user's outbound policy); when a proxied fetch fails it warns that curl/wget share the same proxy, and suggests requestSandboxBypass only when the sandbox proxy itself is unreachable
  • Improve subagent delegation for small tasks and parallel work
  • Queue mid-turn /model changes and apply them after the current response finishes
  • Restore the early warning when unreclaimable system and tool context nears the limit, before automatic compaction is blocked
  • Session working directory no longer reverts to the original checkout shortly after /worktree switches into a new worktree
  • MCP tools load faster from definition-scoped snapshots, with process-wide and per-server cache opt-outs.
  • Autopilot stays selected after task_complete by default; set stayInAutopilot to false to return to interactive mode after each task
v1.0.76-5Pre-release

1.0.76-5

Added 2
  • Add enable/disable controls in /plugins for plugins, instructions, agents, LSP servers, and hooks
  • Add support for the grok-4.5 model

Added

  • Add enable/disable controls in /plugins for plugins, instructions, agents, LSP servers, and hooks
  • Add support for the grok-4.5 model
v1.0.76-4Pre-release

1.0.76-4

Fixed 1
  • Sandbox denied paths are enforced for relative and symlinked entries on macOS and Linux

Fixed

  • Sandbox denied paths are enforced for relative and symlinked entries on macOS and Linux (Windows cannot deny per path)
v1.0.76-3Pre-release

1.0.76-3

Changed 6
  • Auto-download update notification now suggests /restart and removes the warning color
  • /diff scrolls and syntax-highlights large multi-file diffs faster
  • Split-view sidebar hover-to-focus is now off by default, configurable with sidebar.hoverFocus
  • Split-view sidebar active session card is accented by default, configurable with sidebar.accentActiveSession
  • Split-view sidebar closed-state open sidebar hint always renders in neutral hint color
  • web_fetch now follows HTTP redirects instead of failing and asks permission for redirects to different origins
Fixed 3
  • Unsent prompt text now stays with the session it was typed for instead of following to other sessions
  • Resuming a session now restores its autopilot or plan mode instead of reverting to interactive mode
  • URL permission prompts now keep their sandbox-bypass warning and the model's reason when a host integration rebuilds the prompt

Improved

  • When an update is auto-downloaded, the notification suggests /restart and drops the warning color
  • /diff scrolls and syntax-highlights large multi-file diffs faster
  • Split-view sidebar: hover-to-focus is now off by default (opt in with sidebar.hoverFocus), the active session card is accented by default (opt out with sidebar.accentActiveSession), and the closed-state open sidebar hint always renders in the neutral hint color
  • web_fetch now follows HTTP redirects instead of failing, asking permission for the redirect target when it is on a different origin and showing where the redirect came from

Fixed

  • Unsent prompt text now stays with the session it was typed for (for the rest of the CLI session) instead of following you to the session you switch to
  • Resuming a session now restores its autopilot or plan mode instead of reverting to interactive, so the autopilot-only task_complete tool stays available and the mode matches the session you left
  • URL permission prompts now keep their sandbox-bypass warning and the model's reason when a host integration rebuilds the prompt, so an elevated fetch is no longer shown as an ordinary one
v1.0.76-2Pre-release

1.0.76-2

Added 3
  • Add a directable queue manager (staff) to reorder, edit, remove, repeat, and immediately send queued messages
  • New Sessions sidebar for managing multiple concurrent sessions: switch between them, spawn new ones, and see their status at a glance
  • Enterprise administrators can enforce a restrictive sandbox floor with managed settings that tighten (but never loosen) the user's sandbox policy, and the /sandbox dialog surfaces the org-configured managed values with locked fields and managed filesystem paths
Changed 1
  • Sandboxed searches now offer an immediate bypass prompt and avoid duplicate bypass prompts
Fixed 6
  • Sessions no longer fail every turn with "Holder terminated during creation" after a subagent finishes
  • Startup tips only suggest /init in repositories that don't already have Copilot instructions
  • A userPromptSubmitted hook returning a non-string value for modifiedPrompt, modifiedTransformedPrompt, or a handled responseContent no longer corrupts the session; the value is ignored, a type-only warning naming the field is logged, an empty-string replacement is rejected instead of blanking the model-facing content, a hook that sets handled without a usable responseContent is now diagnosed instead of silently falling through to the model, and a null additionalContext is treated as absent instead of being injected as the literal text null; hook output is also bounded at 10 MiB per invocation
  • Show recent shell output for large commands that write to a file
  • The /instructions picker now respects --no-custom-instructions
  • Render inline images in Rio terminals that support Kitty graphics

Added

  • Add a directable queue manager (staff) to reorder, edit, remove, repeat, and immediately send queued messages
  • New Sessions sidebar for managing multiple concurrent sessions: switch between them, spawn new ones, and see their status at a glance. Turn it on with experimental mode (/experimental on).
  • Enterprise administrators can enforce a restrictive sandbox floor: managed settings tighten (but never loosen) the user's sandbox policy, and the /sandbox dialog surfaces the org-configured managed values with locked fields and managed filesystem paths so admins can confirm what is enforced.

Improved

  • Sandboxed searches now offer an immediate bypass prompt and avoid duplicate bypass prompts.

Fixed

  • Sessions no longer fail every turn with "Holder terminated during creation" after a subagent finishes
  • Startup tips only suggest /init in repositories that don't already have Copilot instructions
  • A userPromptSubmitted hook returning a non-string value for modifiedPrompt, modifiedTransformedPrompt, or a handled responseContent no longer corrupts the session; the value is ignored, a type-only warning naming the field is logged, an empty-string replacement is rejected instead of blanking the model-facing content, a hook that sets handled without a usable responseContent is now diagnosed instead of silently falling through to the model, and a null additionalContext is treated as absent instead of being injected as the literal text null; hook output is also bounded at 10 MiB per invocation, so an HTTP or command hook returning an unbounded response can no longer exhaust memory or leave an oversized session behind
  • Show recent shell output for large commands that write to a file
  • The /instructions picker now respects --no-custom-instructions.
  • Render inline images in Rio terminals that support Kitty graphics
View all

Discussion