GitHub Copilot CLI v1.0.35

2026-04-23 - Slash commands support tab-completion for arguments and subcommands - Shell escape commands (!) now use your $SHELL when set, instead of always invoking /bin/sh - Permission prompts ap...

2026-04-23 - Slash commands support tab-completion for arguments and subcommands - Shell escape commands (!) now use your $SHELL when set, instead of always invoking /bin/sh - Permission prompts appear correctly in remote sessions for the CLI TUI - Session selector shows branch names, idle/in-use status, and has improved search with cursor support - Model change notification shows both the previous and new model name - /update and /version commands now honor your configured update channel - Session sync prompt uses clearer labels and explains GitHub.com cross-device sync - Support COPILOTGHHOST environment variable for GitHub hostname, taking precedence over GHHOST - Press Ctrl+Y (in addition to Tab) to accept the highlighted option in completion popups (@-mentions, path completions, slash commands) - Add /session delete, delete , and delete-all subcommands, and x-to-delete in the session picker - MCP server names with spaces and special characters are now supported - Skill slash commands (e.g. /skill-name) passed as the initial prompt via -i are recognized correctly on startup - Shell completion notifications are not duplicated when readbash already returned the result - --continue prefers resuming sessions from the current working directory instead of the most recently touched session - Status line script now includes context window fields that match the model badge and /context output - User settings are now stored in ~/.copilot/settings.json, separate from internal state in config.json - Name sessions with --name and resume them by name with --resume= - Configure Copilot agent now has shell access on Windows - Show a helpful error message with install instructions when clipboard utilities (wl-clipboard or xclip) are missing on Linux - LSP server entries in lsp.json support configurable spawn, initialization, and warmup timeouts - Context window indicator in the statusline is now hidden by default - Move MCP OAuth into the shared runtime flow and clear associated OAuth state when removing an MCP server. - Added a GitHub-style contribution graph to /usage that adapts to terminal color mode and falls back to distinct glyphs in no-color terminals - Self-correcting custom tool calls in agentic loop - Cursor movement, deletion, and rendering work correctly for emoji and multi-codepoint characters in the text input - Tool availability detection works correctly on Windows - Session token expiry during a turn is handled automatically without requiring you to resend your message - Initial tab and arrow key navigation in /cwd and /add-dir path picker selects the correct item - Transient I/O errors no longer appear as red error entries in the timeline when an IDE or extension disconnects - Custom agents and skills in ~/.claude/ are no longer incorrectly loaded as Copilot project config - Login command restores interactive input correctly after authentication - Improve rendering performance when displaying large amounts of text in the timeline - Sync task calls block until completion under MULTITURNAGENTS instead of auto-promoting to background after 60s; sync no longer returns a reusable agentid, use mode: "background" for follow-ups - Tab navigation supports Home/End keys to jump to first and last tab - Plugins take effect immediately after install without requiring a restart - Add continueOnAutoMode config option to automatically switch to auto model on rate limit instead of pausing - Auto mode no longer fails with an error when switching to a model that doesn't support the configured reasoning effort - Pattern-specific instruction files (.github/instructions/\.instructions.md) no longer include their full body in the system prompt on every session - Extension shutdown errors no longer appear as error-level log noise on every session exit - LSP refactoring tools now register correctly on the first turn when LSP configs are present - Add HTTP hook support, allowing hooks to POST JSON payloads to a configured URL instead of running a local command - Hide subagent thinking from the timeline - Custom agent name is now visible in the statusline footer and can be toggled via /statusline - Pressing Escape on startup dialogs no longer causes race conditions - grep and glob tools now accept multiple search paths