GitHub Copilot CLI v1.0.71 fixes a frustrating issue where autopilot mode would hang when background processes ran too long, plus improves how the tool remembers your preferences across longer work sessions. You'll also notice better feedback when settings go wrong and tighter...

2026-07-16 - copilot -p --autopilot no longer hangs when a background shell or agent outlives the turn; it now honors the COPILOTTASKWAITTIMEOUTSECONDS timeout the same way plain -p does. - 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 list and 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 marketplace subcommands 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 NOCOLOR 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 mcp and copilot skill print help and exit 0, matching copilot plugin. Consistent with plugin, the implicit help form is not supported for these groups; use copilot mcp --help (or copilot skill --help) instead. - Show malformed allowedmodels.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 update and /update to accept stable as 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 --share or --share-gist export 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 askuser 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