Releases: github/copilot-cli
Releases · github/copilot-cli
Release list
1.0.72
2026-07-20
- An
agentStophook that always blocks no longer loops indefinitely: the CLI now ends the turn after 8 consecutive blocks, andagentStophooks receive astop_hook_activeflag so they can detect a forced continuation and self-limit - Add opt-in git and gh authentication inside the OS sandbox
- Sandbox macOS keychain access now defaults off for tighter isolation; re-enable it in /sandbox if a command needs it
- Lifecycle and subagent hook commands run in the current session directory after /cd
- Deleting an MCP server with /mcp delete stops its running background process
- Toggling /sandbox restarts only local MCP servers and leaves remote servers connected
- Command approvals no longer carry over to another repository after you switch with /cd
- The GitHub tab's Open in web action now reliably launches your browser on Windows
- Preserve pasted prompt content when changing models through Ctrl+X /model
- Corrected the added-line count shown when creating a file so files ending in a trailing newline no longer report one extra line
- /worktree and /move no longer fail to create a worktree for an auto-generated branch name when many similarly-named branches or a leftover worktree directory already exist: the numeric-suffix search is no longer capped at 5 and now skips stale unregistered worktree directories (an explicitly supplied branch name still errors on a collision)
- /worktree no longer intermittently runs the kickoff task in the main repo instead of the new worktree
- /worktree and /move now propagate folder trust to the new worktree before switching when the source is already trusted (avoiding a spurious folder-trust prompt in that case), /move addresses its git stash precisely so a concurrent stash can't misplace changes, and worktree creation skips a leftover directory instead of failing
- Show the exit resume hint for a renamed session with no messages when its workspace is only available as a cached snapshot
- Show a connected message after a slow MCP server eventually connects
- Add
update/uninstallverbs to/plugins, letenable/disable/removetarget plugins, MCP servers, or skills via--plugin/--mcp/--skillflags or a positional kind, and support installing skills with/plugins install --skill - Add a /plugins help command plus skill, MCP, and marketplace management for full /plugin parity
- Session exports keep angle brackets intact in inline code and top-level fenced code blocks
- Show MCP server status correctly for names like constructor and proto
- Keep the session highlight on the nearest live row when closing a session, in both the Sessions split view and the standalone Sessions tab
- Pad inline hex color swatches once inside Markdown lists
- Type $ at the prompt to open an interactive shell in the current session directory (enable it with
/settings shellShortcut on; off by default) - Nested markdown lists render correctly in buffered output (
-p --stream offand detail screens): sub-bullets are no longer glued onto the parent item's line or flattened, and are indented under their parent copilot skill listnow strips terminal control characters from skill names and descriptions, so a crafted skill can no longer inject ANSI escape sequences into the listing output.- Install skills from the CLI with
copilot plugins install --skill <file, URL, or directory>(add--scope projectto a file or URL install to install into the repository) - Show default values in /settings and let booleans cycle back to default
- Require SSO for remote control when managed settings demand it
- Mask secret values in /settings show output
- Show hex color codes written as inline code (e.g.
#FF0000) as color swatches, and add a renderHexColors setting (on by default) to toggle hex-color swatches - Add /model --session (-s) to change the model, reasoning effort, or context window for just the current session, leaving global settings unchanged.
- Detect VS Code, Cursor, and Windsurf through parent processes in /terminal-setup
- The Sessions sidebar is now navigable with the keyboard and mouse (arrows open and focus it and move the selection, and Enter or a click switches to a session; press n to spawn a session or x twice to close one from the keyboard); /settings can disable it or stop restoring remembered sessions
- Add --plugin, --mcp, and --skill flags for plugin mutations
- Add skill removal support to
copilot plugins remove --skill - Wrap ask-user and elicitation inputs in the split-pane chat view
- Modified vim keys (Ctrl+K, uppercase J/K) no longer move the selection in tool-permission prompts and other text-input select menus; only unmodified j/k, the arrow keys, and Ctrl+P/Ctrl+N navigate.
/terminal-setupnow refuses to modify a VS Code keybindings.json that contains a JSON syntax error (instead of rewriting it and reporting success), matching its documented invalid-JSON handling.- Reveal full file paths when expanding compact editing rows
- Make the plan-approval menu deterministic across models
- Keep /add-dir directories visible in the agent context across turns
- Multi-turn subagents are always enabled, so you can send follow-up messages to running agents
- Enable tool search for Claude Haiku 4.5+
- Emoji shortcodes like 🎉 no longer render with a spurious trailing space in printed and PR/issue/gist output
- Deliver scheduled prompts as steering messages when the agent is busy
1.0.72-1
Added
- Add --plugin, --mcp, and --skill flags for plugin mutations
- Add skill removal support to
copilot plugins remove --skill
Improved
- Reveal full file paths when expanding compact editing rows
- Make the plan-approval menu deterministic across models
- Keep /add-dir directories visible in the agent context across turns
Fixed
- Wrap ask-user and elicitation inputs in the split-pane chat view
- Modified vim keys (Ctrl+K, uppercase J/K) no longer move the selection in tool-permission prompts and other text-input select menus; only unmodified j/k, the arrow keys, and Ctrl+P/Ctrl+N navigate.
/terminal-setupnow refuses to modify a VS Code keybindings.json that contains a JSON syntax error (instead of rewriting it and reporting success), matching its documented invalid-JSON handling.
1.0.72-0
Added
- Multi-turn subagents are always enabled, so you can send follow-up messages to running agents
- Enable tool search for Claude Haiku 4.5+
Improved
- Deliver scheduled prompts as steering messages when the agent is busy
Fixed
- Emoji shortcodes like 🎉 no longer render with a spurious trailing space in printed and PR/issue/gist output
1.0.71
2026-07-16
copilot -p --autopilotno longer hangs when a background shell or agent outlives the turn; it now honors the COPILOT_TASK_WAIT_TIMEOUT_SECONDS timeout the same way plain-pdoes.- Reopening the /subagents model picker keeps each agent's reasoning effort and context tier
- Refresh memory context after 30 minutes in long-lived sessions
- Keep MCP tool lists up to date when servers change
- Avoid leaving long-running background git processes after exit
- Add a configurable maximum for Ctrl+R command history
- On startup, an invalid settings.json now shows a warning identifying the offending value instead of silently ignoring your settings
- /terminal-setup no longer skips setup on terminals without real kitty keyboard support
- Add /voice devices to choose and persist the microphone for voice mode
- Limit which built-in agents are available to tasks and subagents
- Add canvas support in the CLI for extension-driven interactions
- Enforce the sandbox filesystem policy on LSP file reads and rename edits
- Allow empty owner and author emails in marketplace metadata
- Keep all MCP Server Type options visible on short terminals
- Mark disabled skills in
copilot skill listand its JSON output - Plan mode now hard-blocks built-in tool calls that would modify the workspace, so the agent can no longer edit files or run mutating shell commands while planning (built-in mutators like opening a pull request are blocked; MCP and external tools are still allowed)
- Improve /chronicle cost-tips recommendations with richer cost profiles
- Highlight standalone hex colors inline in Markdown
- Persist GitHub MCP toolset/tool config via settings.json (githubMcpToolsets, githubMcpTools, etc.)
- Add
plugins marketplacesubcommands to list, add, and remove plugin marketplaces - Persist sidebar sessions across restarts
- Add plugins marketplace browse and update commands
- Split /worktree and /move: /worktree now creates a new worktree and leaves your uncommitted changes behind, while the new /move carries them into the new worktree
- Add local and cloud cost profiles to /chronicle cost-tips
- Switching to autopilot mid-turn now auto-answers questions asked during that same turn
- Custom agents that request a shell tool by alias now also receive the matching read, list, and stop shell tools
- Slash commands and their autocomplete now match regardless of case (e.g. /SESSION works like /session)
- Show repo-enabled plugins in /plugin list and skill pickers
- Press ? twice to dismiss quick help and start a prompt with a literal ?
- Shell completions suggest positional-argument choices
- Show the /app launch message and download link immediately on Linux
- Validate --max-autopilot-continues rejects NaN, negative, and fractional values
- Honor NO_COLOR in the CLI even when chalk cached a color level
- Apply updated session options (shell flags, streaming, custom agent defaults) immediately after /settings changes
- Announce the focused /model row for screen readers
- Announce the focused picker row to screen readers
- Show selected custom agents once in /agent and keep their source label when the file name differs from the display name
- Clear the /model pricing banner when no models match
- Keep /share file session and /share html session from using the full-session selector as an output path
- Honor --context in fresh interactive sessions
- Fixed the model picker changing a hidden model's reasoning effort or context window when the search matched no results, and hid the inert key hints shown in that empty state
- Display plugin root skills as /plugin instead of /plugin:plugin
- Keep valid hooks in a config file when one hook entry is malformed
- Denying write(path) now blocks only the specified path
- Using --add-github-mcp-tool "*" now enables all GitHub MCP tools
- Render empty untracked files without a phantom added line
- Show clean failure messages when copilot skill add fails
- Press Enter on a blank settings array item to show an error instead of saving an empty value
- Press Enter once to toggle booleans with a registered default in /settings
- Declining folder trust in /cwd keeps your live session open and returns to the previous folder
- Show a warning when a workspace MCP config is malformed or cannot be loaded
- Make bare
copilot mcpandcopilot skillprint help and exit 0, matchingcopilot plugin. Consistent withplugin, the implicithelp <subcommand>form is not supported for these groups; usecopilot mcp <subcommand> --help(orcopilot skill <subcommand> --help) instead. - Show malformed allowed_models.txt policy errors cleanly in -p mode
- Resume synced sessions by name without a false multiple matches error
- Show an error when --name is used with --session-id for an existing session
- Show --plugin-dir plugins in copilot plugin list
- Keep backgrounded sessions alive when you switch away from them
- Link bare #number GitHub refs in -p --stream off output
- Show the startup banner only on the first launch when set to once
- Allow
copilot updateand/updateto acceptstableas a channel - Surface --plugin-dir warnings in the terminal
- Surface the real load error for malformed custom agents
- Reject --continue when used with --resume
- Prompt mode now exits non-zero when a
--shareor--share-gistexport fails - Server mode reconnects OAuth MCP servers from cached tokens
- Keep stored Git credential helpers available for marketplace plugin installs
- The /model picker shows the Auto model description as markdown with a clickable Learn More link
- Keep sessions tied to their working directory across prompts, restarts, and workspace tools
- Always offer a custom answer in ask_user choice prompts
- Lower the default maximum sub-agent nesting depth from 6 to 4 to curb runaway recursive sub-agent delegation. Usage-based billing users can still adjust
subagents.maxDepth(up to 128). - Add a pinned prompts setting in /settings to control prompt pinning
- Add Repo and Repo (local) scope tabs to the /settings dashboard
- Interactive shell commands now fail with a retryable "reconfiguring" message instead of an "unknown shellManager handle" error after the shell manager is disposed, and a detached command's completion notification is no longer lost when the shell context is reconfigured while a read is in progress
- Reject custom-agent names that would create hidden files
- Reject malformed --allow-tool and --deny-tool patterns with an error message
- Show retained shell output in /tasks Shell Details for finished tasks
- Remove duplicate Error: prefixes from plugin command failures
- Shell completions stop suggesting subcommands as flag values
- Show singular message counts in /usage activity graph
- Keep /cd from switching to files or inaccessible directories
- Dismissing the quick-help overlay with ? no longer leaves a stray ? in the prompt
- --sandbox and --no-sandbox now show their "ignored" warning during interactive startup when the sandbox feature is unavailable (previously it was only visible in non-interactive mode)
- Show the full command with its arguments (not just the wrapper) in the /mcp server detail view
- Hide the inert navigate and view-log hints in the empty /lsp logs (LSP Services) panel
- Exit non-interactive prompt runs with a failure code when a prompt is blocked before responding
- Show the Auto discount in the redesigned inline model picker
- New sessions start in the default directory instead of the active session's cwd
- Fish completion only offers enum values for closed-choice flags
- Use targeted validation commands and lighter install guidance by default
- Use ctrl+x → x to close a session and ctrl+x → h to hide the split sidebar
1.0.71-3
Fixed
- On startup, an invalid settings.json now shows a warning identifying the offending value instead of silently ignoring your settings
- /terminal-setup no longer skips setup on terminals without real kitty keyboard support
1.0.71-2
Added
- Add /voice devices to choose and persist the microphone for voice mode
- Limit which built-in agents are available to tasks and subagents
- Add canvas support in the CLI for extension-driven interactions
Improved
- Improve /chronicle cost-tips recommendations with richer cost profiles
- Highlight standalone hex colors inline in Markdown
Fixed
- Enforce the sandbox filesystem policy on LSP file reads and rename edits
- Allow empty owner and author emails in marketplace metadata
- Keep all MCP Server Type options visible on short terminals
- Mark disabled skills in
copilot skill listand its JSON output - Plan mode now hard-blocks built-in tool calls that would modify the workspace, so the agent can no longer edit files or run mutating shell commands while planning (built-in mutators like opening a pull request are blocked; MCP and external tools are still allowed)
1.0.71-1
Added
- Persist GitHub MCP toolset/tool config via settings.json (githubMcpToolsets, githubMcpTools, etc.)
- Add
plugins marketplacesubcommands to list, add, and remove plugin marketplaces - Persist sidebar sessions across restarts
- Add plugins marketplace browse and update commands
- Split /worktree and /move: /worktree now creates a new worktree and leaves your uncommitted changes behind, while the new /move carries them into the new worktree
- Add local and cloud cost profiles to /chronicle cost-tips
Improved
- The /model picker shows the Auto model description as markdown with a clickable Learn More link
- Keep sessions tied to their working directory across prompts, restarts, and workspace tools
- Always offer a custom answer in ask_user choice prompts
- Lower the default maximum sub-agent nesting depth from 6 to 4 to curb runaway recursive sub-agent delegation. Usage-based billing users can still adjust
subagents.maxDepth(up to 128).
Fixed
- Switching to autopilot mid-turn now auto-answers questions asked during that same turn
- Custom agents that request a shell tool by alias now also receive the matching read, list, and stop shell tools
- Slash commands and their autocomplete now match regardless of case (e.g. /SESSION works like /session)
- Show repo-enabled plugins in /plugin list and skill pickers
- Press ? twice to dismiss quick help and start a prompt with a literal ?
- Shell completions suggest positional-argument choices
- Show the /app launch message and download link immediately on Linux
- Validate --max-autopilot-continues rejects NaN, negative, and fractional values
- Honor NO_COLOR in the CLI even when chalk cached a color level
- Apply updated session options (shell flags, streaming, custom agent defaults) immediately after /settings changes
- Announce the focused /model row for screen readers
- Announce the focused picker row to screen readers
- Show selected custom agents once in /agent and keep their source label when the file name differs from the display name
- Clear the /model pricing banner when no models match
- Keep /share file session and /share html session from using the full-session selector as an output path
- Honor --context in fresh interactive sessions
- Fixed the model picker changing a hidden model's reasoning effort or context window when the search matched no results, and hid the inert key hints shown in that empty state
- Display plugin root skills as /plugin instead of /plugin:plugin
- Keep valid hooks in a config file when one hook entry is malformed
- Denying write(path) now blocks only the specified path
- Using --add-github-mcp-tool "*" now enables all GitHub MCP tools
- Render empty untracked files without a phantom added line
- Show clean failure messages when copilot skill add fails
- Press Enter on a blank settings array item to show an error instead of saving an empty value
- Press Enter once to toggle booleans with a registered default in /settings
- Declining folder trust in /cwd keeps your live session open and returns to the previous folder
- Show a warning when a workspace MCP config is malformed or cannot be loaded
- Make bare
copilot mcpandcopilot skillprint help and exit 0, matchingcopilot plugin. Consistent withplugin, the implicithelp <subcommand>form is not supported for these groups; usecopilot mcp <subcommand> --help(orcopilot skill <subcommand> --help) instead. - Show malformed allowed_models.txt policy errors cleanly in -p mode
- Resume synced sessions by name without a false multiple matches error
- Show an error when --name is used with --session-id for an existing session
- Show --plugin-dir plugins in copilot plugin list
- Keep backgrounded sessions alive when you switch away from them
- Link bare #number GitHub refs in -p --stream off output
- Show the startup banner only on the first launch when set to once
- Allow
copilot updateand/updateto acceptstableas a channel - Surface --plugin-dir warnings in the terminal
- Surface the real load error for malformed custom agents
- Reject --continue when used with --resume
- Prompt mode now exits non-zero when a
--shareor--share-gistexport fails - Server mode reconnects OAuth MCP servers from cached tokens
- Keep stored Git credential helpers available for marketplace plugin installs
1.0.71-0
Added
- Add a pinned prompts setting in /settings to control prompt pinning
- Add Repo and Repo (local) scope tabs to the /settings dashboard
Improved
- Use targeted validation commands and lighter install guidance by default
- Use ctrl+x → x to close a session and ctrl+x → h to hide the split sidebar
Fixed
- Interactive shell commands now fail with a retryable "reconfiguring" message instead of an "unknown shellManager handle" error after the shell manager is disposed, and a detached command's completion notification is no longer lost when the shell context is reconfigured while a read is in progress
- Reject custom-agent names that would create hidden files
- Reject malformed --allow-tool and --deny-tool patterns with an error message
- Show retained shell output in /tasks Shell Details for finished tasks
- Remove duplicate Error: prefixes from plugin command failures
- Shell completions stop suggesting subcommands as flag values
- Show singular message counts in /usage activity graph
- Keep /cd from switching to files or inaccessible directories
- Dismissing the quick-help overlay with ? no longer leaves a stray ? in the prompt
- --sandbox and --no-sandbox now show their "ignored" warning during interactive startup when the sandbox feature is unavailable (previously it was only visible in non-interactive mode)
- Show the full command with its arguments (not just the wrapper) in the /mcp server detail view
- Hide the inert navigate and view-log hints in the empty /lsp logs (LSP Services) panel
- Exit non-interactive prompt runs with a failure code when a prompt is blocked before responding
- Show the Auto discount in the redesigned inline model picker
- New sessions start in the default directory instead of the active session's cwd
- Fish completion only offers enum values for closed-choice flags
1.0.70
2026-07-09
- Add GPT-5.6 model support
- Show a single Error prefix for mcp and skill command failures
- Show the real parse error when --agent selects a malformed custom agent
- web_fetch works through mandatory HTTPS proxies
- Hide / search on the Gists tab
- Treat superseded subagent runs as cancellations instead of failures
- Add paginated session.mcp.resources read/list/listTemplates RPCs for MCP server resources
- preToolUse hooks that exit with code 2 deny tool calls
- Create draft skills when Forge finds a clear workflow pattern
- Hide the GitHub App install nudge in remote terminals
- Pin plugins to an exact commit SHA using the
shafield in plugin source configuration - Add --sandbox and --no-sandbox flags to turn the OS-level shell sandbox on or off for the current session only, without changing your saved sandbox setting (useful with -p)
- Add /refine to rewrite a rough, stream-of-consciousness prompt into a clear one
- Add --repo and --local flags to /settings and /model
- Add a setting to show or hide timeline timestamps
- Let a trusted repository pin the model, effort level, and context tier and extend the URL/MCP/skill deny lists via .github/copilot/settings.json
- Expose SDK APIs to manage live MCP servers in running sessions
- Show the active user's models after /user switch
- Declining an extension's permission prompt no longer disables tool approvals for the rest of the session
- Avoid redundant background agent notifications after a blocking read_agent returns its result
- Startup auth errors recommend the real
copilot logincommand - Keep merge-semantics settings editable in /settings
- Re-sync managed plugins when their cache is missing or empty
- Copy the last assistant response even after command echoes
- Persist the last-logged-in user on every login so a restarted runtime client stays authenticated
- Hide /agent picker navigation hints when there is nothing to select
- Open the plan file or research report with Ctrl+Y in any mode
- Keep terminal color scheme changes in sync over SSH and remote shells
- Prefill /chronicle search so it can accept a query
- Show a distinct scrollbar thumb glyph in the /model picker on the no-color path (--no-color, non-color terminals) so the scroll position stays visible
- Skip launching a browser in remote terminals
- Arrow keys in /search and reverse search stay in search instead of switching tabs
- Restore tool event ordering so permission prompts appear after tool start
- Show only one cancellation message when streaming is aborted
- Keep /pr tables aligned in compact timeline view
- Show clear validation errors for empty or non-ASCII skill and command names
- Keep footer selection highlights aligned when the session bar is open
- Fail fast when marketplace plugin git auth needs a terminal prompt
- Dismiss other pending read and fetch sandbox-bypass prompts after you disable the sandbox
- Fix a crash on Windows triggered by desktop toast notifications
- Improve GPT-5.6 commentary guidance for tool-driven progress updates
- Highlight the sidebar toggle hint in the input footer
- Make markdown links and bare URLs in the timeline and tool output clickable
- Reclaim the blank line under the home tab bar: the timeline (and Sessions+Current split) sits flush under the tabs when a prompt is pinned, keeping one breathing line only while nothing is pinned
- Press Tab to switch the context window in /model
- Long-running sessions refresh enterprise managed settings hourly
- Mark locally-spawned MCP servers that run inside the sandbox in
/mcp list(e.g.connected (sandboxed))
1.0.70-0
Added
- Pin plugins to an exact commit SHA using the
shafield in plugin source configuration - Add --sandbox and --no-sandbox flags to turn the OS-level shell sandbox on or off for the current session only, without changing your saved sandbox setting (useful with -p)
- Add /refine to rewrite a rough, stream-of-consciousness prompt into a clear one
- Add --repo and --local flags to /settings and /model
- Add a setting to show or hide timeline timestamps
- Let a trusted repository pin the model, effort level, and context tier and extend the URL/MCP/skill deny lists via .github/copilot/settings.json
- Expose SDK APIs to manage live MCP servers in running sessions
Improved
- Improve GPT-5.6 commentary guidance for tool-driven progress updates
- Highlight the sidebar toggle hint in the input footer
- Make markdown links and bare URLs in the timeline and tool output clickable
- Reclaim the blank line under the home tab bar: the timeline (and Sessions+Current split) sits flush under the tabs when a prompt is pinned, keeping one breathing line only while nothing is pinned
- Press Tab to switch the context window in /model
- Long-running sessions refresh enterprise managed settings hourly
- Mark locally-spawned MCP servers that run inside the sandbox in
/mcp list(e.g.connected (sandboxed))
Fixed
- Show the active user's models after /user switch
- Declining an extension's permission prompt no longer disables tool approvals for the rest of the session
- Avoid redundant background agent notifications after a blocking read_agent returns its result
- Startup auth errors recommend the real
copilot logincommand - Keep merge-semantics settings editable in /settings
- Re-sync managed plugins when their cache is missing or empty
- Copy the last assistant response even after command echoes
- Persist the last-logged-in user on every login so a restarted runtime client stays authenticated
- Hide /agent picker navigation hints when there is nothing to select
- Open the plan file or research report with Ctrl+Y in any mode
- Keep terminal color scheme changes in sync over SSH and remote shells
- Prefill /chronicle search so it can accept a query
- Show a distinct scrollbar thumb glyph in the /model picker on the no-color path (--no-color, non-color terminals) so the scroll position stays visible
- Skip launching a browser in remote terminals
- Arrow keys in /search and reverse search stay in search instead of switching tabs
- Restore tool event ordering so permission prompts appear after tool start
- Show only one cancellation message when streaming is aborted
- Keep /pr tables aligned in compact timeline view
- Show clear validation errors for empty or non-ASCII skill and command names
- Keep footer selection highlights aligned when the session bar is open
- Fail fast when marketplace plugin git auth needs a terminal prompt
- Dismiss other pending read and fetch sandbox-bypass prompts after you disable the sandbox
- Fix a crash on Windows triggered by desktop toast notifications