Copilot CLI Handbook
Custom instructions, commands, permissions, agents, hooks, configuration, and MCP for GitHub Copilot CLI
Instruction Files
Copilot CLI can load repository, path-specific, agent, and local instructions from several official file locations. How-to: custom instructions
Common instruction locations
AGENTS.mdin the repository root, the current working directory, or directories listed inCOPILOT_CUSTOM_INSTRUCTIONS_DIRS. How-to: custom instructions.github/copilot-instructions.mdfor repository-wide instructions. How-to: custom instructions.github/instructions/**/*.instructions.mdfor path-specific instructions. How-to: custom instructions$HOME/.copilot/copilot-instructions.mdfor local personal instructions. How-to: custom instructionsCOPILOT_CUSTOM_INSTRUCTIONS_DIRSto add extra directories where Copilot CLI looks forAGENTS.mdand.github/instructions/**/*.instructions.md. How-to: custom instructionsCLAUDE.mdandGEMINI.mdat the repository root as alternative agent instruction file locations. Docs: CLI commands- Custom instruction files in
.gitignoreddirectories (for example,.github/instructions/) now load correctly. Release: v1.0.36 $HOME/.copilot/instructions/**/*.instructions.mdfor user-level path-specific instructions./helplists this alongside other user-level instruction locations. Release: v1.0.61- Path-specific instruction files support an
excludeAgentfrontmatter keyword to exclude instructions fromcode-revieworcloud-agent. How-to: custom instructions
Useful commands and flags
/init— Initialize Copilot custom instructions and agentic features for the repository./init suppresspermanently hides the startup message for the current repository. Docs: slash commandscopilot init— Initialize Copilot custom instructions for the current repository. Docs: CLI commands--no-custom-instructions— Start without loadingAGENTS.mdand related instruction files. Docs: CLI options
Interactive Commands
- Slash commands support tab-completion for arguments and subcommands. Release: v1.0.35
Session and navigation
-
/clear [PROMPT],/new [PROMPT],/reset [PROMPT]— Start a new conversation./clearkeeps configured MCP servers in the new session;/newbackgrounds the old session. Both accept an optional initial prompt. Docs: slash commands Release: v1.0.11 Release: v1.0.12 Blog: slash commands -
/resume [SESSION-ID|NAME],/continue [SESSION-ID]— Resume a previous session. Accepts short session ID prefixes (7+ hex characters) or session names. The session selector shows branch names, idle/in-use status, and supports cursor-based search. Docs: slash commands Release: v1.0.32 Release: v1.0.35 -
/undo,/rewind— Undo the last turn and revert file changes, or open a timeline picker to roll back to any point in conversation history (also double-Esc). Double-Esc is required to cancel in-flight work, preventing accidental interruptions. Docs: slash commands Release: v1.0.10 Release: v1.0.13 Release: v1.0.36 -
/session [info|checkpoints [n]|files|plan|rename [NAME]|cleanup|prune|delete [ID]|delete-all],/sessions [info|checkpoints [n]|files|plan|rename [NAME]|cleanup|prune|delete [ID]|delete-all]— Show session information and manage sessions. Theinfosubcommand shows the session link (when remote exporting/steering) and Mission Control sharing status./sessionsnavigates to the Sessions tab instead of an overlay. The session picker supports x-to-delete andsto cycle sort order. Docs: slash commands Release: v1.0.35 Release: v1.0.37 Release: v1.0.60 Release: v1.0.61 -
/rename [NAME]— Rename the current session (auto-generates a name if omitted). Docs: slash commands -
/compact [FOCUS]— Summarize history to reduce context usage. Accepts optional focus instructions to shape the compaction summary. Docs: slash commands Release: v1.0.52 -
/every [INTERVAL PROMPT],/after [DELAY PROMPT]— Schedule prompts, skills, or slash commands on an interval or after a delay (experimental). Accepts natural language, cron expressions, calendar times, or relative durations. Supports scheduling slash commands (e.g./every 1d /chronicle standup). Open the schedule manager with no arguments. Docs: slash commands Release: v1.0.58 Release: v1.0.61 Release: v1.0.62 -
/chronicle <standup|tips|improve|reindex|cost-tips|search>— Session history tools and insights. Docs: slash commands Release: v1.0.40 Release: v1.0.49 Release: v1.0.51 -
/autopilot— Toggle between interactive and autopilot modes. Alias:/goal. Release: v1.0.55 -
/fork [NAME]— Fork the current session into a new independent session. Accepts an optional name. Release: v1.0.45 -
/session id— Display the current session ID and copy it to the clipboard. Release: v1.0.49 -
/context— Show context window usage, including Custom Instructions separated from the system prompt and per-server MCP tool token costs. Docs: slash commands Release: v1.0.60 -
/cwd,/cd [PATH]— Show or change the working directory. Docs: slash commands Blog: slash commands -
/add-dir PATH— Add a directory to the allowed file-access list. Accepts relative paths (e.g../src,../sibling). Docs: slash commands Blog: slash commands Release: v1.0.25 -
/list-dirs— Show directories that already have file access. Docs: slash commands Blog: slash commands -
/ask QUESTION— Ask a quick question without affecting conversation history. Only available in experimental mode./askresponses now render markdown, including tables and formatted links. Release: v1.0.27 Release: v1.0.37 -
/env— Show loaded environment details: instructions, MCP servers, skills, agents, plugins, LSPs, extensions (status and source), hooks (hide internal hooks, show full file paths for hook sources and counts). Release: v1.0.25 Release: v1.0.55 Release: v1.0.60 Release: v1.0.61 -
/remote [on|off]— Enable remote access to this session from GitHub.com and GitHub Mobile, or show current status. How-to: remote steering Release: v1.0.25 Release: v1.0.36 -
/keep-alive [on|busy|NUMBERm|NUMBERh],/caffeinate [on|busy|NUMBERm|NUMBERh]— Prevent the machine from sleeping while the session is active, while the agent is busy, or for a defined length of time. Now available without experimental mode. Docs: slash commands Release: v1.0.36 -
/copy— Copy the last response to the clipboard. Docs: slash commands -
/search [QUERY],/find [QUERY]— Search the conversation timeline. Only available in experimental mode. Docs: slash commands -
/clikit [COMPONENT]— Preview CLI business components (for example, quota info). Docs: slash commands -
/collect-debug-logs [file|gist] [PATH]— Collect debug logs to an archive file or GitHub gist. Docs: slash commands -
/permissions [show|reset]— View or clear in-memory tool and path approvals for the current session. Docs: slash commands -
/sandbox [enable|disable]— Configure shell command sandboxing. Docs: slash commands -
/on-air,/streamer-mode— Toggle streamer mode (hides preview model names and quota details). Docs: slash commands -
/restart— Restart the CLI, preserving the current session. Docs: slash commands -
/exit [print],/quit [print]— Exit the CLI./exit printprints the session to the terminal before exiting. Docs: slash commands Release: v1.0.49 -
/settings [show|[KEY VALUE]|reset KEY]— Open the interactive settings dialog, set a setting with inline KEY and VALUE, or reset to default. Docs: slash commands Release: v1.0.61 -
/app— Open the GitHub app or a browser fallback. Release: v1.0.62 -
/subagents(also/agents) — Configure subagent model, reasoning effort, and context tier via a picker. Release: v1.0.62 -
/worktree [branch],/move [branch]— Create a new Git worktree and switch to it, moving uncommitted changes. Auto-generates name from conversation if omitted. Experimental only. Docs: slash commands Release: v1.0.61 -
/tuikit [colors|icons|select|tabbar]— Preview TUIkit design-system components and color tokens. Docs: slash commands -
/voice— Dictate prompts using local speech-to-text models. Release: v1.0.59
Planning, review, and collaboration
/diff— Review changes in the current directory. Defaults to branch diff when the working tree is clean. Also works while the agent is running. Includes vim-style navigation (g,G,Ctrl+D,Ctrl+U), file tree sidebar, inline comment editor (cto comment,sfor summary), content search (/) with match highlighting andn/Nnavigation, branch toggle (b), and refresh (r) for remote sessions. Docs: slash commands Docs: diff mode Release: v1.0.23 Release: v1.0.57 Release: v1.0.60 Release: v1.0.62/review [PROMPT]— Run the code review agent against your changes. Docs: slash commands/security-review— Review code changes for security vulnerabilities. Release: v1.0.51/plan [PROMPT]— Draft an implementation plan before editing. Docs: slash commands/delegate [PROMPT]— Delegate work to a remote repository with an AI-generated pull request. Docs: slash commands How-to: CLI agents Blog: slash commands Blog: terminal workflows/share [file|gist|html] [session|research] [PATH],/export [file|gist|html] [session|research] [PATH]— Export the current session or research report to Markdown, a secret gist, or a self-contained interactive HTML file. Docs: slash commands Release: v1.0.15 Release: v1.0.25/research TOPIC— Run a deep research investigation using GitHub search and web sources. Docs: research/changelog [SUMMARIZE] [VERSION|last N|since VERSION],/release-notes [SUMMARIZE] [VERSION|last N|since VERSION]— Display the CLI changelog with an optional AI-generated summary. Docs: slash commands Release: v1.0.5/pr [view|create|fix|auto]— Operate on pull requests for the current branch. Docs: slash commands Release: v1.0.5/rubber-duck— Invoke the rubber duck agent for an independent critique of proposals, designs, implementations, or tests (experimental). Release: v1.0.49
Agents, models, skills, and plugins
/agent— Choose from available agents. Also works while the agent is running. Docs: slash commands How-to: custom agents Release: v1.0.23/fleet [PROMPT]— Run parts of a task in parallel with subagents. Docs: slash commands How-to: /fleet/tasks— Inspect background tasks and subagent work created in the current session. How-to: /fleet/model,/models [MODEL]— View or change the active model. Useautoto let Copilot pick the best available model for each session. Docs: slash commands Blog: slash commands Release: v1.0.32/memory on|off|show— Enable, disable, or view memory status (persistent). Release: v1.0.49/skills [list|info|add|remove|reload] [ARGS...]— Manage skills. Docs: slash commands/instructions— View and toggle custom instruction files. Docs: slash commands/plugin [marketplace|install|uninstall|update|list] [ARGS...]— Manage plugins and plugin marketplaces. Docs: slash commands
Tools, account, and setup
/allow-all,/yolo— Enable all permissions for tools, paths, and URLs. Supportson,off, andshowsubcommands to enable, disable, or check allow-all mode./yolonow behaves the same as--yolo, and its state persists across/restart. Docs: slash commands Release: v1.0.12 Release: v1.0.20/reset-allowed-tools— Clear previously granted tool approvals. Release: v1.0.3 Blog: slash commands/mcp [show|add|edit|delete|disable|enable|auth|reload] [SERVER-NAME]— Manage MCP servers;/mcp authre-authenticates OAuth servers with account switching. MCP servers can also be installed from the registry with guided configuration. Docs: slash commands Release: v1.0.15 Release: v1.0.25 Blog: slash commands/lsp [show|test|reload|help] [SERVER-NAME]— Manage language server configuration. Docs: slash commands/statusline— Customize which items appear in the status bar (directory, branch, effort, context window, quota, custom agent name, changes, active account). The “changes” toggle shows added/removed line counts. The statusline footer is now fully customizable with session info, model, context window, git branch, and more. Alias:/footer. Release: v1.0.30 Release: v1.0.35 Release: v1.0.36 Release: v1.0.43 Release: v1.0.51/ide— Connect to an IDE workspace. Also works while the agent is running. Docs: slash commands Release: v1.0.23/terminal-setup— Configure multiline terminal input support. Docs: slash commands/login,/logout— Sign in or out./logoutwarns when signed in viaghCLI, PAT, API key, or environment variable (only manages OAuth sessions). Docs: slash commands Release: v1.0.25/user [show|list|switch]— Manage the current GitHub account. Faster user listing and switching for multi-account users. Docs: slash commands Blog: slash commands Release: v1.0.44/update,/upgrade,/version— Check for updates and show version information, honoring your configured update channel. Shows download progress during the update process. Add optionalprereleaseargument to fetch the latest prerelease build. Docs: slash commands Release: v1.0.35 Release: v1.0.43 Release: v1.0.44/downgrade <VERSION>— Download and restart into a specific CLI version. Available for team accounts. Docs: slash commands/extensions [manage|mode]— Manage CLI extensions. Docs: slash commands/help,/feedback,/usage,/theme [default|dim|high-contrast|colorblind],/experimental— Session help, reporting, usage, UI, and feature toggles./themeincludes a GitHub theme option (experimental)./feedbackand/experimentalalso work while the agent is running. Docs: slash commands Blog: slash commands Release: v1.0.23 Release: v1.0.58
Keyboard shortcuts
@ FILENAME— Include file contents in the prompt context. Also supports attaching document files for the agent to read and reason about. Docs: shortcuts Release: v1.0.32# NUMBER— Include a GitHub issue or pull request in the context. Release: v1.0.35! COMMAND— Run a shell command directly. Uses your$SHELLwhen set, instead of always invoking/bin/sh. Enter!alone on an empty prompt to enter shell mode; pressEscorCtrl + Con an empty prompt to exit shell mode. Docs: shortcuts Release: v1.0.35 Release: v1.0.61?— Open quick help (on an empty prompt). Docs: shortcutsCtrl + XthenE— Edit the prompt in an external editor. Docs: shortcutsCtrl + Xthen/— Run a slash command after you already started typing. Docs: shortcutsCtrl + XthenB— Move the current running task or shell command to the background. Release: v1.0.39Ctrl + XthenO— Open the most recent link from the timeline. Docs: shortcutsShift + Tab— Cycle between standard, plan, and autopilot mode. Docs: shortcutsCtrl + EnterorCtrl + Q— Queue a message to send while the agent is busy. Docs: shortcutsCtrl + R— Reverse search through command history. Docs: shortcutsCtrl + F— Open timeline search. Docs: timeline shortcutsCtrl + O,Ctrl + E,Ctrl + T— Expand recent timeline items, expand all, or toggle reasoning display.Ctrl + Oexpands all items (same asCtrl + E). Docs: timeline shortcuts Release: v1.0.26Ctrl + G— Edit the prompt in an external editor. Docs: navigation shortcutsCtrl + S— Stash and pop the current prompt. The slash-command picker is still available by typing/. Release: v1.0.60Ctrl + Y— Accept the highlighted option in completion popups (in addition to Tab). Release: v1.0.35Ctrl + Y— In plan mode, open the most recent research report when no plan exists yet. Release: v1.0.12Ctrl + L,Ctrl + C,Ctrl + D— Clear the screen, cancel the current operation, or shut down. Docs: shortcutsCtrl + Z— Suspend the process to the background (Unix). Docs: shortcutsCtrl + V,Meta + V— Paste image from clipboard on all platforms. Release: v1.0.30Cmd + Backspace— Delete the line before the cursor on macOS. Release: v1.0.60Alt + D— Delete the word in front of the cursor. Release: v1.0.25Ctrl + A,Ctrl + E,Home,End— Navigate to the start or end of a line. Release: v1.0.35Ctrl + B,Ctrl + F— Move the cursor backward or forward one character. Docs: navigation shortcutsCtrl + H— Delete the previous character. Docs: navigation shortcutsCtrl + K— Delete from cursor to end of line. Docs: navigation shortcutsCtrl + U— Delete from cursor to beginning of line. Docs: navigation shortcutsCtrl + W— Delete the previous word. Docs: navigation shortcutsCtrl + Home,Ctrl + End— Jump to start or end of text. Docs: navigation shortcutsAlt + ←,Alt + →— Move cursor by word. Docs: navigation shortcutss— In the session picker, cycle sort order (relevance, last used, created, or name). Release: v1.0.37Tab— In the session picker, switch between local and remote tabs. Docs: session pickerd— In the session picker, delete the selected session. Docs: session picker/— In the diff view, search content with match highlighting andn/Nnavigation. Docs: diff mode Release: v1.0.62c— In the diff view, add or edit an inline comment. Docs: diff mode Release: v1.0.62g,G,Ctrl + D,Ctrl + U— In the diff view, vim-style navigation (first line, last line, half-page scroll). Docs: diff mode Release: v1.0.60W— In the expanded issue or PR details view, create a git worktree. Release: v1.0.62
Command-Line Commands and Flags
Core commands
copilot— Launch the interactive interface. Docs: CLI commandscopilot completion SHELL— Generate a static shell completion script forbash,zsh, orfish(tab completion for subcommands, flags, and known values). Shell completions are also auto-installed on first run and updated aftercopilot update. Docs: CLI commands Release: v1.0.37 Release: v1.0.41copilot help [topic]— Show help for billing, config, commands, environment, logging, monitoring, permissions, or providers. Docs: CLI commands Release: v1.0.20 Release: v1.0.60copilot init— Initialize custom instructions for the current repository. Docs: CLI commandscopilot update— Download and install the latest version. Docs: CLI commandscopilot version— Show version information and check for updates. Docs: CLI commandscopilot login,copilot logout— Authenticate or remove credentials.copilot loginaccepts--host HOSTfor GitHub Enterprise. Supported token types: fine-grained PATs v2 (with “Copilot Requests” permission), OAuth tokens from Copilot CLI andgh, and OAuth tokens from the GitHub CLI app. Classic PATs (ghp_) are not supported. Docs: CLI commands Release: v1.0.32copilot mcp— Manage MCP servers outside the interactive session. Subcommands:list,get,add,remove. Release: v1.0.21 Docs: MCP configcopilot plugin— Manage plugins and plugin marketplaces outside the interactive session. Docs: CLI commands
Automation and session control
echo "PROMPT" | copilot— Pipe a prompt into Copilot CLI for scripting and automation. How-to: programmatic use-p, --prompt=PROMPT— Run a prompt programmatically and exit after completion. Docs: CLI options Blog: terminal workflows Blog: idea to PR-i, --interactive=PROMPT— Start an interactive session and run an initial prompt. Docs: CLI options--continue— Resume the most recent session, preferring sessions from the current working directory. Docs: CLI options Release: v1.0.35--name=NAME— Set a session name on startup. Release: v1.0.35-r,--resume=SESSION-ID|NAME— Resume a specific session by ID or name. Accepts short session ID prefixes (7+ hex characters). Docs: CLI options Release: v1.0.32 Release: v1.0.35 Release: v1.0.60--mode=MODE— Set the initial agent mode (interactive,plan, orautopilot). Cannot be combined with--autopilotor--plan. Docs: CLI options Release: v1.0.23--agent=AGENT— Pick a custom agent up front. Docs: CLI options--autopilot— Let Copilot continue autonomously in prompt mode. Docs: CLI options--plan— Start in plan mode. Shorthand for--mode plan. Cannot be combined with--modeor--autopilot. Docs: CLI options Release: v1.0.23--max-autopilot-continues=COUNT— Cap autonomous follow-up turns. Docs: CLI options--reasoning-effort=LEVEL,--effort=LEVEL— Set reasoning depth (low,medium,high,xhigh,max).maxis the highest-depth tier for Anthropic models. Docs: CLI options Release: v1.0.60--enable-reasoning-summaries— Request reasoning summaries for OpenAI models that support it. Docs: CLI options--output-format=text|json— Return plain text or JSONL output. Docs: CLI options--share=PATH,--share-gist— Export a programmatic session after it finishes. Docs: CLI options-s, --silent— Suppress usage statistics and print only the answer. Docs: CLI options How-to: programmatic use--no-ask-user— Disable the ask-user tool for fully autonomous runs. Docs: CLI options How-to: programmatic use-C=PATH,--cwd=PATH— Change working directory before starting, similar togit -C. Release: v1.0.42--session-id=ID— Resume known sessions/tasks or start new sessions with a specific UUID. Release: v1.0.51--attachment— Attach files (images or native documents) to the initial prompt in non-interactive (-p) mode. Docs: CLI options Release: v1.0.41
Permissions and safety
--allow-all,--yolo— Approve all tools, paths, and URLs. Docs: CLI options--allow-all-tools,--allow-all-paths,--allow-all-urls— Approve one permission category at a time. Docs: CLI options Blog: terminal workflows--allow-tool=TOOL,--deny-tool=TOOL— Pre-allow or pre-deny tool patterns. Docs: CLI options--allow-url=URL,--deny-url=URL— Control URL access. Docs: CLI options--available-tools=TOOL,--excluded-tools=TOOL— Reduce the tool surface available to the model. Docs: CLI options--disallow-temp-dir— Block automatic access to the system temp directory. Docs: CLI options--disable-parallel-tools-execution— Execute tools sequentially even when the model makes parallel calls. Docs: CLI options--sandbox=enable|disable— Configure shell command sandboxing. Docs: CLI options
UI, output, and logging
--model=MODEL— Select the model. Useautoto let Copilot pick the best available model. Docs: CLI options Release: v1.0.32--banner— Show the startup banner. Docs: CLI options--plain-diff— Disable rich diff rendering. Docs: CLI options--screen-reader— Enable screen-reader optimizations. Docs: CLI options--no-color— Disable all color output. Docs: CLI options--stream=on|off— Turn streaming output on or off. Docs: CLI options--secret-env-vars=VAR— Redact environment variables from shell and MCP server environments. Docs: CLI options--config-dir=PATH— Override the config directory. Deprecated in favor ofCOPILOT_HOME. Docs: CLI options Release: v1.0.40--bash-env,--no-bash-env— Enable or disableBASH_ENVsupport for bash shells. Docs: CLI options--experimental,--no-experimental— Toggle experimental features. Docs: CLI options--log-dir=DIRECTORY,--log-level=LEVEL— Control CLI logging. Docs: CLI options--no-auto-update— Disable automatic updates. Docs: CLI options--remote,--no-remote— Enable or disable remote access to this session from GitHub.com and GitHub Mobile. Use--remotewith--resume <TASK-ID>to resume a remote task locally, even outside a Git repository. How-to: remote steering Release: v1.0.25--connect[=SESSION-ID]— Directly connect to a remote session, optionally specifying a session ID or task ID. Release: v1.0.32--print-debug-info— Display version, terminal capabilities, and environment variables for debugging. Release: v1.0.32--session-idle-timeout— Configure session idle timeout; disabled by default. Release: v1.0.32--mouse[=VALUE],--no-mouse— Enable or disable mouse support in alt screen mode. VALUE can beon(default) oroff. When enabled, captures mouse events (scroll, clicks). Persisted to your config file. Docs: CLI options--plugin-dir=DIRECTORY— Load a plugin from a local directory (can be used multiple times). Docs: CLI options
MCP and tooling flags
--acp— Start an Agent Client Protocol server. Docs: CLI options--additional-mcp-config=JSON|@path— Add MCP servers for the current session only. Docs: CLI options--disable-builtin-mcps— Disable built-in MCP servers. Docs: CLI options--disable-mcp-server=SERVER-NAME— Disable a specific MCP server. Docs: CLI options--enable-all-github-mcp-tools— Enable the full GitHub MCP tool surface. Docs: CLI options--add-github-mcp-toolset=TOOLSET,--add-github-mcp-tool=TOOL— Expand the GitHub MCP subset. Docs: CLI options
Permission Prompts and Tool Rules
When Copilot CLI asks for permission, these one-key responses are available. Docs: permission approvals
y— Allow once. Docs: permission approvalsn— Deny once. Docs: permission approvals!— Allow similar requests for the rest of the session. Docs: permission approvals#— Deny similar requests for the rest of the session. Docs: permission approvals?— Show more detail about the request. Docs: permission approvals
Tool rules use the Kind(argument) pattern. Deny rules always override allow rules. Available kinds include shell, read, write, url, memory, and SERVER-NAME. Shell commands that set dynamic-loader or git-config environment variables (e.g. LD_PRELOAD, GIT_EXTERNAL_DIFF) prompt for approval before running. Docs: tool rules Release: v1.0.60
# Allow all git commands except git push
copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'
# Allow one MCP tool
copilot --allow-tool='MyMCP(create_issue)'
# Allow all tools from one MCP server
copilot --allow-tool='MyMCP'
Examples adapted from the command reference. Docs: tool rules
Configuration Files
Settings cascade from broader scopes to narrower scopes. Command-line flags and environment variables always win. Docs: config settings
~/.copilot/config.json— User-wide defaults. Docs: config settings~/.copilot/settings.json— User settings stored separately from internal state. Release: v1.0.35.github/copilot/settings.json— Repository-wide shared settings. Docs: config settings.github/copilot/settings.local.json— Local personal overrides that should not be committed. Docs: config settings.claude/settings.json— Additional repository config source (loaded alongside.github/copilot/settings.json). Release: v1.0.12.claude/settings.local.json— Additional local config source (loaded alongside.github/copilot/settings.local.json). Release: v1.0.12
Common user settings
model— Default model selection. Useautoto let Copilot pick the best available model. Docs: user settings Release: v1.0.32theme—auto,dark, orlight. Docs: user settingseffortLevel—low,medium,high,xhigh, ormax.maxis the highest-depth tier for Anthropic models. Docs: user settings Release: v1.0.60experimental— Enable experimental features by default. Docs: user settingstrusted_folders— Pre-granted file access. Docs: user settingsallowed_urls,denied_urls— URL allowlists and blocklists. Docs: user settingsscreenReader— Screen-reader mode. Docs: user settingsstream— Streaming responses. Docs: user settingsautoUpdate— Automatic updates. Docs: user settingsbashEnv—BASH_ENVsupport. Docs: user settingsbanner— Startup banner frequency:always,once, ornever. Docs: user settingsbeep— Play an audible beep when attention is required. Docs: user settingscompactPaste— Collapse large pastes into compact tokens. Docs: user settingsincludeCoAuthoredBy— Add aCo-authored-bytrailer to git commits made by the agent. Docs: user settingslogLevel— Logging verbosity (none,error,warning,info,debug,all,default). Docs: user settingsmouse— Enable mouse support in alt screen mode. Docs: user settingsrenderMarkdown— Render Markdown in terminal output. Docs: user settingsrespectGitignore— Exclude gitignored files from the@file picker. Docs: user settingsdisableAllHooks— Disable all hooks. Docs: user settingshooks— Inline user-level hook definitions. Docs: user settingsupdateTerminalTitle— Show the current intent in the terminal title. Docs: user settingsstreamerMode— Hide preview model names and quota details. Docs: user settingsstoreTokenPlaintext— Store authentication tokens in plaintext when no system keychain is available. Docs: user settingscompanyAnnouncements— Custom messages shown randomly on startup. Docs: user settingscustom_agents.default_local_only— Only use local custom agents. Docs: user settingscontinueOnAutoMode— Automatically switch to theautomodel when rate-limited. Release: v1.0.35enabledFeatureFlags— Enable or disable individual feature flags by name. Docs: user settingspermissions.disableBypassPermissionsMode— Prevent enabling allow-all/yolo mode. When set to"disable", all allow-all flags are suppressed at startup. Release: v1.0.55builtInAgents.rubberDuck— Enable or disable the rubber duck agent. Release: v1.0.56terminalProgress— Enable or disable OSC 9;4 terminal progress indicators. Release: v1.0.51showTipsOnStartup— Control whether startup tips are shown. Release: v1.0.56remoteSessions— Enable remote control by default for all interactive sessions. How-to: remote steeringtabs— Configure home tab bar visibility, order, and hidden tabs. Release: v1.0.61beepOnSchedule— Disable completion beeps for scheduled/everyand/afterruns. Release: v1.0.61builtInAgents.rubberDuckAutoInvoke— Control automatic rubber duck agent invocation (disabled by default). Release: v1.0.60
Repository-level settings
Repository settings support shared plugin behavior and startup messaging. Docs: repo settings
enabledPlugins— Declarative plugin auto-install for the repository. Docs: repo settingsextraKnownMarketplaces— Additional plugin marketplaces available in the repository. Docs: repo settingscompanyAnnouncements— Shared startup messages for repository users. Docs: repo settings
Hooks
Hook configuration files live in .github/hooks/*.json in the current working directory. User-level hook scripts can also live in ~/.copilot/hooks/, and ~/.copilot/config.json supports inline user-level hook definitions. Docs: hooks reference How-to: hooks Docs: config dir
What hooks can do
- Run shell commands before or after tool use. Docs: hooks reference
- Auto-submit a prompt or slash command when a session starts. Docs: prompt hooks
- Allow, deny, ask for confirmation, or modify tool calls before they execute. Docs: pre-tool hooks
- Block an agent or subagent from finishing and force another turn. Docs: agent-stop hooks
- POST JSON payloads to a URL instead of running a command (HTTP hooks). Release: v1.0.35
Main hook events
sessionStart,sessionEnd— Fire once per session in interactive mode (not once per prompt). Docs: hook events Release: v1.0.22userPromptSubmittedDocs: hook eventspreToolUse,postToolUse,postToolUseFailure—preToolUserespectsmodifiedArgs/updatedInputandadditionalContext.postToolUseFailurecan provide recovery guidance viaadditionalContext. Docs: hook events Release: v1.0.15 Release: v1.0.24agentStop,subagentStart,subagentStop—subagentStartreturnsadditionalContextprepended to the subagent’s prompt and supportsmatcherto filter by agent name. Docs: hook eventspreCompact— Supportsmatcherto filter by trigger ("manual"or"auto"). Docs: hook eventspreMcpToolCall— Control outgoing MCP request metadata before execution. Release: v1.0.51permissionRequest— Allow scripts to programmatically approve or deny tool permission requests. Supportsmatcherregex ontoolName. Docs: hook events Docs: permission hooknotification— React to shell completion, agent completion or idle, permission prompts, and elicitation dialogs without blocking the session. Supportsmatcherregex onnotification_type. Docs: notification hookerrorOccurredDocs: hook events
Hook formats
- Command hooks support
bash,powershell,cwd,env, andtimeoutSec. Docs: command hooks - Prompt hooks support a
promptstring and can submit either plain text or a slash command. Docs: prompt hooks preToolUsecan returnallow,deny, orask, and can also replace tool arguments withmodifiedArgs. Docs: pre-tool hooksagentStopandsubagentStopcan returnalloworblock. Docs: agent-stop hooks
Useful recent hook updates
preCompacthooks can run before context compaction starts. Release: v1.0.5postToolUsehooks can now injectadditionalContextinto successful tool results. Release: v1.0.51userPromptSubmittedhooks can now handle requests directly, bypassing the LLM and returning a response without making a model call. Release: v1.0.44- Hooks can ask for confirmation before a tool runs. Docs: pre-tool hooks
- Hooks configured with PascalCase event names now receive VS Code-compatible snake_case payloads with
hook_event_name,session_id, and ISO 8601 timestamps. Release: v1.0.21 - Plugin hooks receive
CLAUDE_PROJECT_DIRandCLAUDE_PLUGIN_DATAenvironment variables, and support{{project_dir}}and{{plugin_data_dir}}template variables in hook configurations. Release: v1.0.12 - Plugin hooks also receive
PLUGIN_ROOT,COPILOT_PLUGIN_ROOT, andCLAUDE_PLUGIN_ROOTwith the plugin’s installation directory. Release: v1.0.26 sessionStartandsessionEndhooks fire once per session in interactive mode instead of once per prompt. Release: v1.0.22preToolUserespectsmodifiedArgs/updatedInputandadditionalContextreturn fields. Hook errors now deny the tool call instead of silently allowing execution. Release: v1.0.24 Release: v1.0.57- Permission prompt notification hooks only fire when a prompt is actually shown to the user. Release: v1.0.26
- Installing plugins from repos, URLs, or local paths shows a deprecation warning. Release: v1.0.26
MCP Servers
Copilot CLI can load MCP servers from several places. Docs: MCP config
Configuration sources
~/.copilot/mcp-config.jsonDocs: MCP config.github/mcp.json— Repository MCP configuration. Auto-loaded as a workspace config source. Docs: MCP trust Release: v1.0.61.mcp.jsonDocs: MCP trust
CLI only reads .mcp.json for project-level MCP config. If a .vscode/mcp.json is detected without a .mcp.json, a migration hint appears with a jq command to convert. Release: v1.0.22
Built-in MCP servers
github-mcp-server— GitHub API integration: issues, pull requests, labels, commits, code search, and GitHub Actions. Tools includeget_file_contents,search_code,list_issues,issue_read,search_issues,get_pull_request,list_pull_requests,get_pull_request_files,list_commits,get_commit,list_workflow_runs,get_workflow_run_logs,get_label,list_label,label_write. Docs: built-in MCPplaywright— Browser automation. Docs: built-in MCPfetch— HTTP requests. Docs: built-in MCPtime— Time utilities. Docs: built-in MCP
Transport types
local/stdio— Launch a local process withcommandandargs. Docs: MCP transporthttp— Connect to a remote streamable HTTP server viaurl. Docs: MCP transportsse— Connect to a remote Server-Sent Events server viaurl. Docs: MCP transport
Common fields
- Local servers:
command,args,tools,env,cwd,timeout,type. Docs: MCP local config - Remote servers:
type,url,tools,headers,oauthClientId,oauthPublicClient,timeout. Thetypefield can be omitted and defaults tohttp. Docs: MCP remote config Release: v1.0.29 client_credentialsOAuth grant type for fully headless MCP server authentication without a browser. Release: v1.0.40oidc: trueinjects aGITHUB_COPILOT_OIDC_MCP_TOKENenv var (local) orBearerAuthorization header (remote). Docs: MCP remote configfilterMappingcontrols output filtering:hidden_characters(default),markdown, ornone. Docs: MCP filterauth.redirectPort— Pin the OAuth callback to a fixed port for MCP servers. Release: v1.0.49- MCP tools added or removed by a server mid-turn are available immediately in the same turn. Release: v1.0.60
- MCP server config form uses a picker-based flow for easier setup. Release: v1.0.62
MCP Tasks (experimental)
MCP tools with taskSupport: "required" run as non-blocking background agents, trackable via list_agents and read_agent. Available when experimental mode is enabled. Release: v1.0.41
MCP server registry
MCP servers can be installed from the registry with guided configuration directly in the CLI. Release: v1.0.25
/mcp search— Search and install MCP servers from the registry (experimental). Works with external registries. Release: v1.0.49 Release: v1.0.61
Trust model
- Built-in servers are high trust. Docs: MCP trust
- Repository, workspace, and dev-container configs are medium trust. Docs: MCP trust
- User config trust is your responsibility. Docs: MCP trust
- Remote servers are low trust and should always be reviewed. Docs: MCP trust
All MCP tool calls still require explicit permission, including read-only calls against external services. Docs: MCP trust
MCP server names can contain any printable characters, including spaces and Unicode. Control characters and } are not allowed. Tool names are sanitized (invalid characters become -, Unicode is Punycode-encoded, 64-character limit). Docs: MCP config
GitHub Enterprise organizations can enforce an MCP server allowlist. When active, the CLI evaluates each non-default server fingerprint against the enterprise policy before connecting. Docs: MCP config
Skills and Custom Agents
Skills
Skills are Markdown files that extend what Copilot CLI can do. Each skill lives in its own directory with a SKILL.md file. Docs: skills
Built-in skills are now included with the CLI, starting with guides for common tasks. Release: v1.0.17
Common skill locations:
.github/skills/Docs: skill locations.agents/skills/Docs: skill locations.claude/skills/Docs: skill locations- Parent
.github/skills/directories in monorepos Docs: skill locations ~/.copilot/skills/Docs: skill locations~/.agents/skills/— Personal skill directory, aligned with VS Code Copilot extension default. Release: v1.0.11~/.claude/skills/Docs: skill locations- Extra directories from
COPILOT_SKILLS_DIRSDocs: skill locations
Useful frontmatter fields:
nameDocs: skill frontmatterdescriptionDocs: skill frontmatterallowed-toolsDocs: skill frontmatteruser-invocableDocs: skill frontmatterdisable-model-invocationDocs: skill frontmatter
Commands are an alternative skill format stored as individual .md files in .claude/commands/. The command name is derived from the filename. Command files use a simplified format (no name field required) and support description, allowed-tools, and disable-model-invocation. Commands have lower priority than skills with the same name. Docs: skills
Skill instructions persist correctly across conversation turns. Release: v1.0.25
Custom instructions and skills refresh from disk after /clear or /new. Release: v1.0.28
Skills that exceed the token limit are still discoverable and invocable by name. Release: v1.0.32
Custom agents and skills are now discovered recursively in subdirectories. Release: v1.0.55
--plugin-dir skills now take precedence over ~/.copilot and ~/.agents skills with the same name. Discovery order: project > plugin-dir > personal > custom. Release: v1.0.55
Custom agents
Custom agents are specialized AI agents defined in Markdown files. You can browse them with /agent or select one up front with --agent=AGENT. Docs: custom agents Docs: slash commands Docs: CLI options
Built-in agents currently include:
code-reviewDocs: built-in agentsexploreDocs: built-in agentsgeneral-purposeDocs: built-in agentsresearchDocs: built-in agentstaskDocs: built-in agentsrubber-duck— Uses a complementary model for constructive critique of proposals, designs, implementations, or tests. Never makes direct code changes. Enabled by default. Docs: built-in agents Release: v1.0.58
Custom agent locations:
.github/agents/or.claude/agents/Docs: agent locations~/.copilot/agents/or~/.claude/agents/Docs: agent locations- Plugin-provided agents Docs: agent locations
Useful frontmatter fields:
name— Display name. Defaults to the filename. Docs: agent frontmatterdescriptionDocs: agent frontmatterinferDocs: agent frontmattermodel— Accepts display names and vendor suffixes from VS Code (e.g. “Claude Sonnet 4.5”, “GPT-5.4 (copilot)”). Docs: agent frontmatter Release: v1.0.24toolsDocs: agent frontmattermcp-serversDocs: agent frontmatterskills— Eagerly load skill content into agent context at startup. Docs: agent frontmatter Release: v1.0.22deferred-tool-loading— Enable tool-search discovery for agents with large tool lists. Docs: agent frontmatter Release: v1.0.52
Custom agents in nested .github/agents and .claude/agents directories are discovered when the session starts from a subdirectory of the repository root. Release: v1.0.62
Plugins can ship extensions, installable via the plugin marketplace. Session-scoped extensions and canvases are also available. Release: v1.0.62
Use /settings to browse and edit all user settings in an interactive dialog. Docs: slash commands Release: v1.0.61
Environment Variables
Useful environment variables include:
COPILOT_MODEL— Default model. Docs: env varsCOPILOT_ALLOW_ALL— Equivalent to--allow-all. Docs: env varsCOPILOT_HOME— Override the default Copilot home directory. Docs: env varsCOPILOT_CACHE_HOME— Override the cache directory separately fromCOPILOT_HOME. Docs: env vars Docs: config dirCOPILOT_EDITOR— External editor command. Docs: env varsCOPILOT_CUSTOM_INSTRUCTIONS_DIRS— Extra instruction directories. Docs: env varsCOPILOT_SKILLS_DIRS— Extra skill directories. Docs: env varsCOPILOT_GITHUB_TOKEN,GH_TOKEN,GITHUB_TOKEN— Authentication tokens.COPILOT_GITHUB_TOKENtakes precedence overGH_TOKENandGITHUB_TOKEN. Docs: env varsCOPILOT_GH_HOST— GitHub hostname. Takes precedence overGH_HOST. Release: v1.0.35GH_HOST— Alternate GitHub host. Release: v1.0.3COPILOT_DISABLE_TERMINAL_TITLE— Opt out of terminal title updates. Release: v1.0.28COPILOT_AGENT_SESSION_ID— Set as an environment variable on shell commands and MCP servers. Release: v1.0.29COPILOT_SUBAGENT_MAX_DEPTH— Maximum subagent nesting depth (default6, range 1–256). Docs: env varsCOPILOT_SUBAGENT_MAX_CONCURRENT— Maximum concurrent subagents (default32, range 1–256). Docs: env varsCOPILOT_CLI_ENABLED_FEATURE_FLAGS— Comma-separated list of feature flags to enable. Docs: env varsCOLORFGBG— Fallback for dark/light terminal background detection. Docs: env varsHTTP_PROXY,HTTPS_PROXY,NO_PROXY— Network proxy settings. Release: v1.0.3NO_COLOR— Disable terminal color. Release: v1.0.3COPILOT_AUTO_UPDATE— Set tofalseto disable automatic updates. Docs: env varsCOPILOT_PROMPT_FRAME— Set to1to enable the decorative UI frame,0to disable. Docs: env varsGITHUB_COPILOT_PROMPT_MODE_EXTENSIONS— Set totrueto enable project extensions and management tools in prompt mode (-p). User extensions load by default; project extensions and management tools require this env var. Release: v1.0.41COPILOT_PLUGIN_DIR_ONLY— Disable automatic plugin discovery, enabling deterministic plugin sets when using--plugin-dir. Release: v1.0.49GITHUB_COPILOT_PROMPT_MODE_REPO_HOOKS— Set to enable repo hooks in prompt mode (-p). Release: v1.0.40GITHUB_COPILOT_PROMPT_MODE_WORKSPACE_MCP— Set to enable workspace MCP servers in prompt mode (-p). Release: v1.0.40USE_BUILTIN_RIPGREP— Switch between bundled and system ripgrep. Docs: env varsPLAIN_DIFF— Disable rich diff rendering. Docs: env varsCOPILOT_ENABLE_HTTP2— Set to1to opt into HTTP/2 networking transport (default is HTTP/1.1). Release: v1.0.57COPILOT_COMPUTER_USE_LINUX— Set to opt into thecomputer-useMCP server on supported Linux distributions. Not available on Alpine Linux (musl libc). Release: v1.0.60
Observability
Copilot CLI can export traces and metrics with OpenTelemetry. Docs: OTel
copilot help monitoring— Open monitoring help with OpenTelemetry configuration details and examples. Release: v1.0.20- OTel is off by default. Docs: OTel
- It turns on when
COPILOT_OTEL_ENABLED=true,OTEL_EXPORTER_OTLP_ENDPOINTis set, orCOPILOT_OTEL_FILE_EXPORTER_PATHis set. Docs: OTel OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=truecaptures full prompts, responses, and tool payloads. Docs: OTel content- Content capture can expose sensitive data and should only be enabled in trusted environments. Docs: OTel content
COPILOT_OTEL_EXPORTER_TYPE— Exporter type:otlp-http(default) orfile. Auto-selectsfilewhenCOPILOT_OTEL_FILE_EXPORTER_PATHis set. Docs: OTelOTEL_SERVICE_NAME— Service name in resource attributes (default:github-copilot). Docs: OTelOTEL_RESOURCE_ATTRIBUTES— Extra resource attributes as comma-separatedkey=valuepairs. Docs: OTelCOPILOT_OTEL_SOURCE_NAME— Instrumentation scope name (default:github.copilot). Docs: OTelOTEL_EXPORTER_OTLP_HEADERS— Auth headers for the OTLP exporter. Docs: OTelOTEL_LOG_LEVEL— OTel diagnostic log level:NONE,ERROR,WARN,INFO,DEBUG,VERBOSE,ALL. Docs: OTel- Select
autoas your model to let Copilot automatically pick the best available model for each session. Release: v1.0.32 - Warnings appear when approaching 75% and 90% of your weekly usage limit. Release: v1.0.32
Recent Additions Worth Knowing
Recent official releases added or improved several user-facing CLI features.
v1.0.62
- Ask and elicitation dialogs now scroll with the timeline instead of taking over the screen. Release: v1.0.62
/appslash command to open the GitHub app or a browser fallback. Release: v1.0.62/subagents(also/agents) picker to configure subagent model, reasoning effort, and context tier. Release: v1.0.62/diffadds file tree sidebar, inline comment editor (cto comment,sfor summary), and content search with match highlighting andn/Nnavigation. Release: v1.0.62- Shell commands now run via lightweight process spawning; interactive input via
write_bashis no longer supported. Release: v1.0.62 - YOLO (allow-all) indicator in the statusline footer and allow-all state in
statusLine.command. Release: v1.0.62 - MCP server config form uses a picker-based flow for easier setup. Release: v1.0.62
- Plugins can ship extensions, installable via the plugin marketplace. Release: v1.0.62
- Session-scoped extensions and canvases. Release: v1.0.62
- Press
Wto create a worktree from the expanded issue or pull request details view. Release: v1.0.62 /everyand/aftercan schedule slash commands (e.g./every 1d /chronicle standup). Release: v1.0.62- Custom agents in nested
.github/agentsand.claude/agentsdirectories are discovered when the session starts from a subdirectory. Release: v1.0.62 - Press
/in the Issues or Pull Requests tab to search GitHub with server-side filtering. Release: v1.0.62 - GitHub themes meet WCAG AA accessibility standards for color contrast. Release: v1.0.62
v1.0.61
/settingsinteractive dialog to browse and edit all user settings in one place. Supports inlineKEY VALUEandreset KEY. Docs: slash commands Release: v1.0.61- Auto-load MCP servers from
.github/mcp.jsonworkspace config file. Release: v1.0.61 - Claude Fable 5 model support. Release: v1.0.61
/everyand/aftersupport natural language scheduling using cron expressions, calendar times, or relative durations. Release: v1.0.61tabssetting to configure home tab bar visibility, order, and hidden tabs. Release: v1.0.61/worktree(alias/move) creates a new git worktree and switches into it, moving uncommitted changes. Auto-generates name from conversation. Experimental only. Docs: slash commands Release: v1.0.61- Grep searches in large monorepos use an indexed search engine for significantly faster results. Release: v1.0.61
- mTLS and private-CA support for OTLP telemetry export over HTTPS. Release: v1.0.61
beepOnSchedulesetting to disable completion beeps for scheduled runs. Release: v1.0.61- GitHub theme adapts to light terminals with a Primer light color palette. Release: v1.0.61
- Shell mode: enter with
!alone on an empty prompt, exit with Esc or Ctrl+C on empty prompt. Docs: shortcuts Release: v1.0.61
v1.0.60
--effort max/--reasoning-effort maxfor the highest-depth Anthropic reasoning tier. Docs: CLI options Release: v1.0.60builtInAgents.rubberDuckAutoInvokesetting to control automatic rubber duck agent invocation (disabled by default). Release: v1.0.60Ctrl+Sstashes and pops the current prompt; slash-command picker still available by typing/. Release: v1.0.60-rshorthand for--resume. Docs: CLI options Release: v1.0.60- Vim-style navigation keys (
g,G,Ctrl+D,Ctrl+U) in the/diffview. Release: v1.0.60 /contextseparates Custom Instructions from the system prompt and cross-references MCP tool token costs. Docs: slash commands Release: v1.0.60copilot help billing— Billing help topic with AI credit usage overview. Docs: CLI commands Release: v1.0.60COPILOT_COMPUTER_USE_LINUXenv var to opt into the computer-use MCP server on supported Linux. Release: v1.0.60- Rewind picker shows working-tree diff stats (
+added −removed) at each checkpoint. Release: v1.0.60 - MCP tools added or removed by a server mid-turn are available immediately in the same turn. Release: v1.0.60
permissions.disableBypassPermissionsModenow also enforces--allow-all-tools,--allow-all-paths, and--allow-all-urls. Release: v1.0.60/usageshows cache write tokens alongside cache read tokens. Release: v1.0.60- Typing
helpat an empty prompt opens the quick-help overlay. Release: v1.0.60 - Bare
#numberissue and PR references auto-link to the current git repository. Release: v1.0.60 - Prompt for approval before running commands that set dynamic-loader or git-config env vars (e.g.
LD_PRELOAD,GIT_EXTERNAL_DIFF). Release: v1.0.60
v1.0.59
/voicecommand to dictate prompts using local speech-to-text models. Release: v1.0.59
v1.0.58
- Rubber Duck agent enabled by default (no longer requires experimental mode). Release: v1.0.58
- Remote JSON RPC enabled by default. Release: v1.0.58
/everyand/afterschedule prompts on an interval or after a delay (experimental). Release: v1.0.58/themeincludes a GitHub theme option (experimental). Release: v1.0.58- New experimental UI with easy access to issues, pull requests, and gists. Release: v1.0.58
v1.0.57
COPILOT_ENABLE_HTTP2=1environment variable to opt into HTTP/2 networking transport (default is now HTTP/1.1). Release: v1.0.57/diffdefaults to branch diff when there are no unstaged changes. Release: v1.0.57preToolUsehook errors now deny the tool call instead of silently allowing execution. Release: v1.0.57- In Azure DevOps-only repositories, the built-in GitHub MCP server now exposes only the
web_searchtool instead of being fully disabled. Release: v1.0.57 copilot plugin marketplace listhonors repo-levelextraKnownMarketplacessettings. Release: v1.0.57/lsp show,/lsp test,/lsp reloadcorrectly discover project LSP config when launched from a subdirectory. Release: v1.0.57- Click a diff line with the mouse to select it in diff mode. Release: v1.0.57
greptool correctly handlestsxandjsxas file type filters. Release: v1.0.57
v1.0.56
- Free and Student users can select models other than Auto in the model picker. Release: v1.0.56
builtInAgents.rubberDucksetting to enable or disable the rubber duck agent. Release: v1.0.56- Diff view uses a continuous scroll layout with sticky file and hunk headers, full terminal width, and theme-aware colors. Release: v1.0.56
showTipsOnStartupsetting to control whether startup tips are shown. Release: v1.0.56
v1.0.55
- Custom agents and skills are now discovered recursively in subdirectories. Release: v1.0.55
permissions.disableBypassPermissionsModesetting to prevent enabling allow-all/yolo mode. Release: v1.0.55/autopilotslash command to toggle between interactive and autopilot modes (alias:/goal). Release: v1.0.55- Delete remote sessions directly from the session picker. Release: v1.0.55
- Hook progress streaming shows real-time status messages from long-running hooks in the timeline. Release: v1.0.55
/envshows loaded extensions with their status and source. Release: v1.0.55--plugin-dirskills now take precedence over~/.copilotand~/.agentsskills with the same name. Discovery order: project > plugin-dir > personal > custom. Release: v1.0.55
v1.0.52
/compactaccepts optional focus instructions to shape the compaction summary. Release: v1.0.52- Customizable status line in the terminal footer displaying session info such as model, context window, git branch, and more. Release: v1.0.52
- Custom agents support opt-in
deferred-tool-loadingin agent frontmatter for tool-search discovery. Release: v1.0.52 /restartand/updatepreserve the current session ID after restarting. Release: v1.0.52/usageshows quota progress bars for session and weekly limits. Release: v1.0.52
v1.0.51
--session-id=flag to resume known sessions/tasks or start new sessions with a specific UUID. Release: v1.0.51/remotecommands respect organization remote control policy and show a clear error when disabled./remotecan now be used while the agent is working. Release: v1.0.51/security-reviewslash command to review code changes for security vulnerabilities. Release: v1.0.51preMcpToolCallhook for controlling outgoing MCP request metadata. Release: v1.0.51/chronicle cost-tipssubcommand for personalized token usage and cost reduction recommendations. Release: v1.0.51/chronicle searchsubcommand to search all session content by keyword or topic. Release: v1.0.51terminalProgresssetting to enable or disable OSC 9;4 terminal progress indicators. Release: v1.0.51auth.redirectPortconfig option for MCP servers to pin the OAuth callback to a fixed port. Release: v1.0.51
v1.0.49
- Alpine Linux (musl libc) support. Release: v1.0.49
/memory on|off|showslash command to enable, disable, or view memory status. Release: v1.0.49/rubber-duckcommand for an independent critique (experimental). Release: v1.0.49/session idsubcommand to display and copy the current session ID. Release: v1.0.49/exit printoption to print the session to the terminal before exiting. Release: v1.0.49/chronicle searchsubcommand to search all session content by keyword or topic. Release: v1.0.49copilot plugin update --allto update all installed plugins at once. Release: v1.0.49- Experimental:
/mcp searchcommand to search and install MCP servers from registry. Release: v1.0.49 - Experimental: Tool search with deferred loading for MCP and external tools. Release: v1.0.49
COPILOT_PLUGIN_DIR_ONLYenvironment variable to disable automatic plugin discovery. Release: v1.0.49- “None” reasoning effort option to disable model reasoning. Release: v1.0.49
- Hooks (
preToolUse,postToolUse,subagentStart,subagentStop) fire correctly for sub-agent tool calls. Release: v1.0.49 - Memory permission prompts show the scope (user or repository). Release: v1.0.49
v1.0.47
/forkaccepts an optional name; forked sessions display their origin. Release: v1.0.47/resumesupports Copilot cloud agent sessions. Release: v1.0.47
v1.0.46
- Read-only
ghCLI commands (list, view, status, diff) are auto-approved without prompting. Release: v1.0.46
v1.0.45
/forkcommand to fork the current session into a new independent session. Release: v1.0.45agentStophook fires correctly when the agent stops viatask_complete. Release: v1.0.45
v1.0.44
- Slash commands can appear mid-input, and multiple skills can be invoked in a single message. Release: v1.0.44
userPromptSubmittedhooks can handle requests directly, bypassing the LLM. Release: v1.0.44prereleaseargument forcopilot updateand/updateto fetch the latest prerelease build. Release: v1.0.44- Tool permissions granted in autopilot mode are preserved after
/clear. Release: v1.0.44 /user [show|list|switch]with faster user listing and switching for multi-account users. Release: v1.0.44
v1.0.43
- Username toggle in the
/statuslinepicker to display the active account in the footer. Release: v1.0.43 - Auto mode uses server-side model routing for improved real-time model selection. Release: v1.0.43
- Show download progress when running the update command. Release: v1.0.43
- MCP server child processes (e.g. started via npx or uvx) are fully terminated when a session ends. Release: v1.0.43
v1.0.42
-C/--cwdflag to change working directory before starting, similar togit -C. Release: v1.0.42- Rubber-duck agent for GPT sessions, powered by Claude (available in
/experimental). Release: v1.0.42 - Remote session export now supports non-GitHub repositories and repo-less directories. Release: v1.0.42
/mcp showhint in MCP server failure warnings when the server name contains whitespace. Release: v1.0.42- MCP server failure warnings include stderr output to help diagnose connection errors. Release: v1.0.42
v1.0.41
- CLI starts faster by rendering the UI immediately while authentication resolves in the background. Release: v1.0.41
- Shell completions (bash, zsh, fish) are automatically installed on first run and updated after
copilot update. Release: v1.0.41 - Tab-completing slash commands that accept arguments now adds a trailing space automatically. Release: v1.0.41
--attachmentflag in non-interactive mode (-p) to attach files (images or documents) to the initial prompt. Release: v1.0.41- Extensions load in prompt mode (
-p). User extensions load by default; project extensions and management tools requireGITHUB_COPILOT_PROMPT_MODE_EXTENSIONS=true. Release: v1.0.41 - MCP Tasks (experimental): MCP tools with
taskSupport: "required"run as non-blocking background agents. Release: v1.0.41 @-mention completion works for./paths, no longer adds trailing space on directories, and shows project files before workspace roots. Release: v1.0.41- Memory tool confirmation prompt now shows the scope (repository or user). Release: v1.0.41
- Reasoning effort picker hint text displays “Esc to cancel” with correct spacing. Release: v1.0.41
v1.0.40
- MCP
client_credentialsOAuth grant type for fully headless server authentication without a browser. Release: v1.0.40 /chroniclesession history tools available to all users (no longer experimental-only). Release: v1.0.40- Autopilot defaults to 5 continuation messages (configurable with
--max-autopilot-continues). Release: v1.0.40 --config-dirdeprecated in favor ofCOPILOT_HOME. Release: v1.0.40- Prompt mode security gating: repo hooks require
GITHUB_COPILOT_PROMPT_MODE_REPO_HOOKS; workspace MCP requiresGITHUB_COPILOT_PROMPT_MODE_WORKSPACE_MCP. Release: v1.0.40 /clearand/newreset the active custom agent selection. Release: v1.0.40/updateno longer re-submits the original-iprompt after restarting. Release: v1.0.40Ctrl+Cand double-Esc remove pending queued messages one at a time instead of all at once. Release: v1.0.40- Azure DevOps repository detection auto-disables the GitHub MCP server. Release: v1.0.40
v1.0.39
Ctrl+X then Bmoves the current running task or shell command to the background. Release: v1.0.39/remotestatus now shows actionable hints for each connection state. Release: v1.0.39- Slash command argument picker opens immediately at exact command boundaries without requiring a trailing space. Release: v1.0.39
v1.0.37
copilot completion <bash|zsh|fish>generates static shell completion scripts for subcommands, flags, and known values. Release: v1.0.37- Press
sin the session picker to cycle sort order: relevance, last used, created, or name. Release: v1.0.37 /askresponses now render markdown, including tables and formatted links. Release: v1.0.37- Locally-approved tool permissions persist across sessions for the same working directory. Release: v1.0.37
- Model and effort change notification no longer appears when re-selecting the same model or effort level. Release: v1.0.37
v1.0.36
- Double-Esc is required to cancel in-flight work, preventing accidental interruptions. Release: v1.0.36
/keep-alivenow available without experimental mode. Release: v1.0.36/remoteshows current status and supports/remote onand/remote off. Release: v1.0.36- Disabled skills no longer appear in the slash command list. Release: v1.0.36
- “changes” statusline toggle shows added/removed line counts. Release: v1.0.36
- Custom instruction files in
.gitignoreddirectories (for example,.github/instructions/) now load correctly. Release: v1.0.36 Claude Opus 4.6uses medium reasoning effort by default. Release: v1.0.36
v1.0.35
- Slash commands support tab-completion for arguments and subcommands. Release: v1.0.35
- Shell escape commands (
!) now use your$SHELLwhen set, instead of always invoking/bin/sh. Release: v1.0.35 - Session selector shows branch names, idle/in-use status, and improved search with cursor support. Release: v1.0.35
/updateand/versionhonor your configured update channel. Release: v1.0.35COPILOT_GH_HOSTenvironment variable for GitHub hostname; takes precedence overGH_HOST. Release: v1.0.35Ctrl+Yaccepts the highlighted option in completion popups (in addition to Tab). Release: v1.0.35/session delete,delete-allsubcommands, and x-to-delete in the session picker. Release: v1.0.35--continueprefers resuming sessions from the current working directory. Release: v1.0.35--name=NAMEsets a session name;--resume=NAMEresumes by name. Release: v1.0.35~/.copilot/settings.jsonstores user settings separately from internal state. Release: v1.0.35continueOnAutoModeconfig option to auto-switch to theautomodel on rate limit. Release: v1.0.35- HTTP hook support, allowing hooks to POST JSON payloads to a URL instead of running a command. Release: v1.0.35
- Custom agent name visible in the statusline footer and toggleable via
/statusline. Release: v1.0.35 grepandglobtools accept multiple search paths. Release: v1.0.35Ctrl+A,Ctrl+E,Home,Endnavigation shortcuts in input. Release: v1.0.35# NUMBERincludes a GitHub issue or pull request in the context. Release: v1.0.35
v1.0.32
- Short session ID prefixes (7+ hex characters) work with
--resumeand/resume. Release: v1.0.32 - Select
autoas your model to let Copilot pick the best available model for each session. Release: v1.0.32 --print-debug-infoflag to display version, terminal capabilities, and environment variables for debugging. Release: v1.0.32--connectflag to directly connect to a remote session by ID. Release: v1.0.32--session-idle-timeoutflag to configure session idle timeout (disabled by default). Release: v1.0.32- Attach supported document files to prompts for the agent to read and reason about. Release: v1.0.32
- Warnings when approaching 75% and 90% of your weekly usage limit. Release: v1.0.32
copilot login --hostcorrectly authenticates with GitHub Enterprise Cloud instances. Release: v1.0.32
v1.0.30
/statuslinecommand (with/footeralias) to customize which items appear in the status bar. Release: v1.0.30Ctrl+VandMeta+Vimage paste on all platforms. Release: v1.0.30
v1.0.29
COPILOT_AGENT_SESSION_IDavailable as an environment variable on shell commands and MCP servers. Release: v1.0.29COPILOT_SUBAGENT_MAX_DEPTHandCOPILOT_SUBAGENT_MAX_CONCURRENTto control subagent depth and concurrency limits. Docs: env vars- Remote MCP server config:
typefield optional, defaults tohttp. Release: v1.0.29
v1.0.28
/remotecommand and--remote/--no-remoteflags for remote control of CLI sessions. How-to: remote steering--resumepicker connects to remote control sessions. Release: v1.0.28COPILOT_DISABLE_TERMINAL_TITLEto opt out of terminal title updates. Release: v1.0.28- Custom instructions and skills refresh from disk after
/clearor/new. Release: v1.0.28
v1.0.27
/askcommand for quick questions without affecting conversation history. Release: v1.0.27copilot plugin marketplace updatecommand to refresh plugin catalogs. Release: v1.0.27
v1.0.26
- Plugin hooks receive
PLUGIN_ROOT,COPILOT_PLUGIN_ROOT, andCLAUDE_PLUGIN_ROOTwith the plugin’s installation directory. Release: v1.0.26 - Instruction files with specific
applyTopatterns consolidated into a table to reduce context window usage. Release: v1.0.26 - Installing plugins from repos, URLs, or local paths shows a deprecation warning. Release: v1.0.26
v1.0.25
- Install MCP servers from the registry with guided configuration. Release: v1.0.25
/envcommand to show loaded environment details (instructions, MCP servers, skills, agents, plugins). Release: v1.0.25/share html— Restored export to self-contained interactive HTML; showsfile://URL and supportsCtrl+X Oto open. Release: v1.0.25/add-diraccepts relative paths (e.g../src,../sibling). Release: v1.0.25/logoutwarns when signed in viaghCLI, PAT, API key, or environment variable. Release: v1.0.25- ACP clients can provide MCP servers (stdio, HTTP, SSE) when starting or loading sessions. Release: v1.0.25
v1.0.24
preToolUsehooks respectmodifiedArgs/updatedInputandadditionalContextfields. Release: v1.0.24- Custom agent
modelfield accepts display names and vendor suffixes from VS Code (e.g. “Claude Sonnet 4.5”, “GPT-5.4 (copilot)”). Release: v1.0.24
v1.0.23
--mode,--autopilot, and--planflags to start directly in a specific agent mode. Release: v1.0.23Ctrl+Lclears the terminal screen without clearing the conversation session. Release: v1.0.23/diff,/agent,/feedback,/ide, and/clikitwork while the agent is running. Release: v1.0.23
v1.0.22
.vscode/mcp.jsonand.devcontainer/devcontainer.jsonremoved as MCP server config sources; CLI now only reads.mcp.json. A migration hint withjqcommand appears when.vscode/mcp.jsonis detected without.mcp.json. Release: v1.0.22- Custom agents can declare a
skillsfield to eagerly load skill content at startup. Release: v1.0.22 - Plugins remain enabled across sessions and auto-install on startup based on user config. Release: v1.0.22
sessionStartandsessionEndhooks fire once per session in interactive mode instead of once per prompt. Release: v1.0.22
v1.0.21
copilot mcpcommand for managing MCP servers outside the interactive session. Release: v1.0.21- Hooks configured with PascalCase event names now receive VS Code-compatible snake_case payloads with
hook_event_name,session_id, and ISO 8601 timestamps. Release: v1.0.21
v1.0.20
copilot help monitoringtopic with OpenTelemetry configuration details and examples. Release: v1.0.20/yoloand--yolonow behave identically, and/yolostate persists across/restart. Release: v1.0.20
v1.0.17
- Built-in skills are now included with the CLI, starting with a guide for customizing Copilot cloud agent’s environment. Release: v1.0.17
/resumesession picker loads significantly faster, especially with large session histories. Release: v1.0.17- MCP OAuth flows now support HTTPS redirect URIs via self-signed certificate fallback for providers like Slack. Release: v1.0.17
v1.0.16
permissionRequesthook allows scripts to programmatically approve or deny tool permission requests. Release: v1.0.16postToolUsenow runs only after successful tool calls; usepostToolUseFailurefor tool errors. Release: v1.0.16- SQL prompt tags no longer appear when the
sqltool is excluded via--excluded-toolsor--available-tools. Release: v1.0.16 - MCP tool calls display tool name and parameter summary in the timeline. Release: v1.0.16
- Deprecated
marketplacesrepository setting removed; useextraKnownMarketplacesinstead. Release: v1.0.16
v1.0.15
/mcp authcommand for re-authenticating MCP OAuth servers with account switching. Release: v1.0.15postToolUseFailurehook event for handling tool errors separately from successful tool calls. Release: v1.0.15- Device code flow (RFC 8628) as a fallback for MCP OAuth in headless and CI environments. Release: v1.0.15
- Home/End and Page Up/Page Down navigation in the diff viewer. Release: v1.0.15
- Config settings now prefer camelCase names (
askUser,autoUpdate,storeTokenPlaintext,logLevel,skillDirectories,disabledSkills); snake_case still works. Release: v1.0.15 - Removed support for
gpt-5.1-codex,gpt-5.1-codex-mini, andgpt-5.1-codex-maxmodels. Release: v1.0.15
v1.0.14
- Shift+Enter inserts a newline in terminals with Kitty keyboard protocol support. Release: v1.0.14
- CLI starts faster with parallel terminal detection, auth, and git operations. Release: v1.0.14
- V8 compile cache reduces parse and compile time on repeated invocations. Release: v1.0.14
- Reduced CPU usage during streaming by optimizing spinner rendering and task polling. Release: v1.0.14
- Removed support for
gemini-3-pro-previewmodel. Release: v1.0.14
v1.0.13
/rewindand double-Esc open a timeline picker to roll back to any point in conversation history. Release: v1.0.13- MCP servers can request LLM inference (sampling) with user approval via a new review prompt. Release: v1.0.13
Earlier releases
/undoto undo the last turn and revert file changes. Release: v1.0.10--effortas a shorthand alias for--reasoning-effort. Release: v1.0.10/allow-all(/yolo)on,off, andshowsubcommands to control allow-all mode. Release: v1.0.12Ctrl + Yin plan mode opens the most recent research report when no plan exists. Release: v1.0.12/session renamecan auto-generate a session name from conversation history when you omit the name argument. Release: v1.0.12.claude/settings.jsonand.claude/settings.local.jsonas additional repo config sources. Release: v1.0.12- Plugin hooks receive
CLAUDE_PROJECT_DIRandCLAUDE_PLUGIN_DATAenv vars plus{{project_dir}}and{{plugin_data_dir}}template variables. Release: v1.0.12 ~/.agents/skills/as a personal skill discovery directory. Release: v1.0.11/clearand/neware now distinct:/clearabandons the current session and keeps configured MCP servers available in the new session,/newstarts fresh (keeping the old session backgrounded). Both accept an optional initial prompt. Release: v1.0.11 Release: v1.0.12- Custom instructions, MCP servers, skills, and agents are discovered at every directory level from the working directory up to the git root (full monorepo support). Release: v1.0.11
/prfor PR creation, inspection, review feedback, merge-conflict work, and CI follow-up. Release: v1.0.5/changelogin the interactive session, with optional summary and version arguments in the current docs. Docs: slash commands Release: v1.0.5@file mentions for absolute paths, home-directory paths, and parent-relative paths. Release: v1.0.5--reasoning-effortfor setting reasoning depth from the command line. Release: v1.0.4.devcontainer/devcontainer.jsonwas previously an MCP configuration source; removed in v1.0.22 in favor of.mcp.json. Release: v1.0.3 Release: v1.0.22- One-time path approval in permission dialogs. Release: v1.0.4
- OpenTelemetry instrumentation for sessions, model calls, and tool execution. Release: v1.0.4
Sources
- GitHub Copilot CLI command reference
- GitHub Copilot CLI configuration directory
- Adding custom instructions for GitHub Copilot CLI
- Overview of customizing GitHub Copilot CLI
- Running GitHub Copilot CLI programmatically
- Using hooks with GitHub Copilot CLI
- Speeding up task completion with the /fleet command
- Creating and using custom agents for GitHub Copilot CLI
- Use GitHub Copilot CLI agents
- GitHub Copilot CLI plugin reference
- A cheat sheet to slash commands in GitHub Copilot CLI
- Power agentic workflows in your terminal with GitHub Copilot CLI
- From idea to pull request: A practical guide to building with GitHub Copilot CLI
- Run multiple agents at once with /fleet in Copilot CLI
- GitHub Copilot CLI releases: v1.0.43
- GitHub Copilot CLI releases: v1.0.62
- GitHub Copilot CLI releases: v1.0.61
- GitHub Copilot CLI releases: v1.0.60
- GitHub Copilot CLI releases: v1.0.42
- GitHub Copilot CLI releases: v1.0.41
- GitHub Copilot CLI releases: v1.0.40
- GitHub Copilot CLI releases: v1.0.39
- GitHub Copilot CLI releases: v1.0.37
- GitHub Copilot CLI releases: v1.0.36
- GitHub Copilot CLI releases: v1.0.35
- GitHub Copilot CLI releases: v1.0.32
- GitHub Copilot CLI releases: v1.0.30
- GitHub Copilot CLI releases: v1.0.29
- GitHub Copilot CLI releases: v1.0.28
- GitHub Copilot CLI releases: v1.0.27
- GitHub Copilot CLI releases: v1.0.26
- GitHub Copilot CLI releases: v1.0.25
- GitHub Copilot CLI releases: v1.0.24
- GitHub Copilot CLI releases: v1.0.23
- GitHub Copilot CLI releases: v1.0.22
- Steering a GitHub Copilot CLI session from another device
- Researching with GitHub Copilot CLI
- GitHub Copilot CLI releases: v1.0.21
- GitHub Copilot CLI releases: v1.0.20
- GitHub Copilot CLI releases: v1.0.17
- GitHub Copilot CLI releases: v1.0.16
- GitHub Copilot CLI releases: v1.0.15
- GitHub Copilot CLI releases: v1.0.14
- GitHub Copilot CLI releases: v1.0.13
- GitHub Copilot CLI releases: v1.0.11
- GitHub Copilot CLI releases: v1.0.10
- GitHub Copilot CLI releases: v1.0.5
- GitHub Copilot CLI releases: v1.0.4
- GitHub Copilot CLI releases: v1.0.3