2026-08-27
- The plugins dashboard is available to everyone: run
/plugin,/mcp, or/skills. SetPLUGINS_DASHBOARD=falseto opt out of it and thecopilot pluginscommand. - Ship MCP 2026-07-28 support to CLI, SDK, IDE, and in-memory clients
- Hooks can now receive the current OpenTelemetry trace context and emit correlated spans: inputs gain
traceparent(plustracestatewhen the span has vendor state); command hooks also get env vars. - Windows: remote MCP servers protected by Microsoft Entra ID can now sign in through the OS authentication broker (WAM), usually with no prompt at all. Other platforms,
--device-code, and machines without the broker library keep the existing browser flow. - Add xhigh reasoning effort support for Grok 4.6
- Startup now offers to restore sessions that were still open when their CLI went away, so a crash or a machine restart no longer means reopening each terminal by hand
- models.list now includes service-published infoMessages and warningMessages per model
- Add
copilot appto open the GitHub Copilot app in the current directory - Add defaultMode and defaultPermissionMode settings to choose startup mode and approval behavior for new interactive sessions
- Add --with-token to copilot login to read an auth token from stdin
- Add support for Gemini 3.7 Flash
- Add Ctrl+E in /sandbox to open settings.json in your editor
- Add per-agent usage metrics to --usage-output-file JSON output
- Repeated read_agent calls now consistently return the full turn history unless since_turn is provided
- Hook lifecycle events (
hook.start/hook.end) from hooks inside a subagent are now recorded on that subagent's session and re-emitted on its parent, instead of being dropped on an internal session. - Repeatedly resuming the same session no longer crashes while telemetry is being replaced
- An MCP server blocked by an enterprise policy now shows as blocked in /mcp instead of spinning as pending forever
- Fixed an indefinite "Loading…/Resuming…" hang at startup when a repository plugin activates a contributed extension (or another extension reload races the initial load), which previously left the environment stuck on "still waiting on extensions"
- Vim mode badge stays visible beside the activity indicator during turns
- The startup status finishes after extension configuration during plugin reconciliation
- Signing out of an account now clears its cached enterprise managed settings, so signing back in generally re-fetches the policy rather than re-applying the one cached before sign-out
- An enterprise managed-settings policy is no longer rejected when
permissions.disableBypassPermissionsModecarries an unrecognized value; it is now logged and enforced asdisable. - Sandboxed builds on Windows create their scratch caches on first run, so cargo, go, Gradle, and ccache work without a warm cache
- On macOS and Linux, shell commands resolve the same tools a bash login shell does, including project environments activated from a profile
- Canvas windows open and refresh in the background instead of stealing focus from your terminal
- A prompt sent while the agent is working no longer leaves a second copy of itself stuck as
(pending)at the bottom of the transcript after it has been answered - Turning allow-all off from an ACP client now reaches the permission engine whenever there is a runtime override or auto-approval to revoke, so the setting can no longer report success while permissions stay enabled (a baseline granted by --allow-all-* launch flags is still deliberately left intact)
- A failed tool call no longer stacks its
(MCP: server)label one character per line down the timeline — the label and the error now share the row, with the longer side truncating - Agents, skills and MCP servers contributed by installed plugins are no longer dropped in non-interactive (-p) runs, so --agent : works headlessly without --plugin-dir
- Typing
$and pressing Enter opens the interactive shell again, instead of clearing the prompt and doing nothing - The prompt frame now renders in terminals it previously skipped, such as foot and alacritty, instead of a fixed list
- A prompt queued while the agent is working stays visible instead of vanishing when you send another one
- The sessions sidebar's keyboard cursor is visible again, and selected rows in the Select family, the diff viewer and custom picker rows now pair the selection fill with the text color derived for it.
- Keys sent to an unfocused terminal pane are no longer dropped: Enter and other keystrokes are handled even after a terminal focus-out report, so tmux and agent multiplexers can drive a background pane
- Compact the autopilot goal panel to its identity row on a short terminal (a paused goal keeps its resume note), with ctrl+x → g to expand or collapse it by hand
- Render the autopilot goal panel as a pinned prompt frame, drop its progress bar for the exact todo count, fold the subagent hint into the row it toggles, and keep its metrics on a narrow pane
- Resume large sessions faster by showing recent history first while older messages load.
xis now the delete key everywhere: /sandbox config, /settings, /mcp, the sessions dialog and the diff comments summary move offd- Auto mode now adapts model selection as your task evolves during a conversation
- /plugin now flags installed plugins and marketplaces that have a newer version upstream, and offers an Update action to pull it
- Show your last prompt as the inferred objective in the Autopilot status panel
- When --no-sandbox is ignored because enterprise policy could not be determined, the notice now says so, and no longer points at an administrator, instead of claiming a policy requires the sandbox. The unsupported-host warning says the same rather than contradicting it.
- Show model data retention warnings with links in the /model picker
- Path-sourced plugins in a local (directory-source) marketplace now load live from their real directory, so editing one takes effect on
/restartor a new session — no/plugin update - Skills and custom agents are discovered from directories added with --add-dir
- Use Ctrl+Space to toggle voice dictation.
- A session sandboxed by an enterprise managed policy now says so on the timeline, including when the policy arrives mid-session, instead of leaving the footer's sandbox chip as the only hint that commands are being restricted
- forceRemoteSettingsRefresh now fails closed: when set, the cached managed-settings policy is never served or used as a fetch-failure fallback (skipping both the 1h fast path and the 24h stale fallback), so a failed startup fetch blocks on the unconfirmed policy instead of reverting to a possibly-stale cached one. Concretely, until a fresh policy is fetched the session applies the restrictive undetermined-policy posture: non-default MCP servers are blocked, bypass-permissions mode cannot be enabled, and policy-gated plugin install/update mutations are blocked
- ACP clients receive subagent IDs, raw event subscriptions, and live title, mode, command, and plan updates
- Show each user instruction file separately in /instructions
- Managed settings now win per entry for enabledPlugins and extraKnownMarketplaces, so a plugin or marketplace your organization pins can't be overridden locally
- Use x to remove scheduled /every and /after prompts in Schedule Manager
- Update model configurations
- Removed the
PLUGINS_DASHBOARDopt-out and the legacy skills picker it kept alive./skills, bare/mcp, and/mcp show(with no server name) always open the dashboard;/mcp configstill opens the dedicated MCP wizard. - Removed
/plugins; its resources moved to/plugin,/mcpand/skills, with/subagentsand/instructionsfor agents and instructions. - Enabling and disabling hooks and LSP servers is temporarily unavailable: those toggles existed only in the
/pluginsdashboard that this release removes.