Skip to main content
Watch: I Built an AI App Without Leaving Databricks

CLI reference - 578 items

Copilot CLI reference

Copilot CLI documents 96 slash commands, 102 CLI flags, 41 subcommands, 69 keyboard shortcuts, 154 settings keys, 67 environment variables and 49 config files. This page lists all 578 with what each one does, the values it accepts and a working example where the docs give one.

Last verified 12 official pagesRun as copilot

Copilot CLI slash commands
CommandDescriptionExample
/add-dir PATH

Allow file access to a directory and load its .github/skills and .github/agents as trusted configurations; also grants sandbox access for the session when sandboxing is on.

Docs: /add-dir PATH
-no example
/after [DELAY PROMPT]

Schedule a non-recurring prompt, skill, or schedulable slash command for the current session (experimental). With no arguments, opens the schedule manager.

Docs: /after [DELAY PROMPT]
/after 1h /chronicle standup
/agent

Browse and select from available agents.

Docs: /agent
-no example
/app

Open the current session in the GitHub Copilot app (version 1.1.3 or later), or show the download URL if not installed.

Docs: /app
-no example
/ask [QUESTION]

Ask a quick side question without adding to conversation history (alias /btw). Without a question, reopens the last side answer.

Docs: /ask [QUESTION]
-no example
/allow-all [off|auto|show]

Enable all permissions (tools, paths, URLs); alias /yolo. An alias for /permissions allow-all.

off, auto, show

Docs: /allow-all [off|auto|show]
-no example
/autopilot [OBJECTIVE]

Start or refocus autopilot mode, optionally with an objective (alias /goal). --max-ai-credits N caps credit spend; /goal on and /goal off toggle autopilot without an objective.

Docs: /autopilot [OBJECTIVE]
/goal Refactor the auth module --max-ai-credits 5
/changelog [summarize] [VERSION|last N|since VERSION]

Display the CLI changelog (alias /release-notes); summarize gives an AI-generated summary.

Docs: /changelog [summarize] [VERSION|last N|since VERSION]
-no example
/chronicle <standup|tips|improve|reindex|skills create|skills review|skills status>

Session history tools and insights; the skills subcommands draft, review, and track repository skill proposals from observed usage. reindex rebuilds session-store.db.

standup, tips, improve, reindex, skills create, skills review, skills status

Docs: /chronicle <standup|tips|improve|reindex|skills create|skills review|skills status>
-no example
/clear [PROMPT]

Start a new conversation (aliases /new, /reset). /new worktree starts an empty session in a new Git worktree.

Docs: /clear [PROMPT]
-no example
/clikit [COMPONENT]

Preview CLI business components (for example, quota info).

Docs: /clikit [COMPONENT]
-no example
/collect-debug-logs [file|gist|share] [PATH]

Collect debug logs to a local archive, a secret GitHub gist, or upload to GitHub (share, currently staff and internal users only).

file, gist, share

Docs: /collect-debug-logs [file|gist|share] [PATH]
-no example
/compact [FOCUS-INSTRUCTIONS]

Summarize conversation history to reduce context window usage, optionally steered by focus instructions.

Docs: /compact [FOCUS-INSTRUCTIONS]
/compact focus on the auth module
/context

Show the context window token usage and visualization.

Docs: /context
-no example
/copy

Copy the last response to the clipboard.

Docs: /copy
-no example
/cwd, /cd [PATH]

Change the working directory or display the current directory.

Docs: /cwd, /cd [PATH]
-no example
/delegate [PROMPT]

Delegate changes to a remote repository with an AI-generated pull request.

Docs: /delegate [PROMPT]
-no example
/diagnose [PROMPT]

Analyze the current session log for errors and unexpected behavior, optionally focused by a custom prompt.

Docs: /diagnose [PROMPT]
-no example
/diff

Review changes in the current directory; auto-switches to branch diff when the working tree is clean (experimental).

Docs: /diff
-no example
/downgrade VERSION

Download and restart into a specific CLI version. Available for team accounts.

Docs: /downgrade VERSION
-no example
/env

Show loaded environment details: instructions, MCP servers, skills, agents, hooks, plugins, LSPs, and extensions.

Docs: /env
-no example
/every [INTERVAL] PROMPT

Schedule a recurring prompt, skill, or schedulable slash command for the current session (experimental). With no arguments, opens the schedule manager.

Docs: /every [INTERVAL] PROMPT
/every 1h run tests
/exit, /quit

Close the current session, foregrounding the newest remaining session or quitting if it is the last. /exit print always tears down the CLI and offers to dump the transcript.

Docs: /exit, /quit
-no example
/extensions [manage|mode]

Manage CLI extensions (alias /extension; experimental).

manage, mode

Docs: /extensions [manage|mode]
-no example
/experimental [on|off|show]

Toggle, set, or show experimental features.

on, off, show

Docs: /experimental [on|off|show]
-no example
/feedback, /bug

Provide feedback about the CLI; can offer a feedback-with-logs route.

Docs: /feedback, /bug
-no example
/fleet [PROMPT]

Enable parallel subagent execution of parts of a task.

Docs: /fleet [PROMPT]
-no example
/help

Show the help for interactive commands, including the complete list of slash commands.

Docs: /help
-no example
/ide

Connect to an IDE workspace.

Docs: /ide
-no example
/init

Initialize Copilot custom instructions and agentic features for this repository by writing or updating .github/copilot-instructions.md.

Docs: /init
-no example
/init suppress

Permanently hide the "No copilot instructions found" startup message for the current repository.

Docs: /init suppress
-no example
/instructions

View and toggle custom instruction files.

Docs: /instructions
-no example
/keep-alive [on|off|busy|DURATION]

Prevent the machine from sleeping while a session is active, while the agent is busy, or for a set time (alias /caffeinate). Bare numbers default to minutes.

on, off, busy, or a duration like 30, 30m, 2h, 1d

Docs: /keep-alive [on|off|busy|DURATION]
-no example
/limits

Open the interactive response limits dialog.

Docs: /limits
-no example
/limits set max-ai-credits VALUE

Set a soft maximum for AI Credits allowed per response; response limits reset for each user message.

Docs: /limits set max-ai-credits VALUE
-no example
/limits unset [max-ai-credits|all]

Remove a specific response limit, or all response limits.

max-ai-credits, all

Docs: /limits unset [max-ai-credits|all]
-no example
/list-dirs

Display all directories for which file access has been allowed.

Docs: /list-dirs
-no example
/login

Log in to Copilot.

Docs: /login
-no example
/logout

Log out of Copilot.

Docs: /logout
-no example
/lsp [show|test|reload|logs|help] [SERVER-NAME]

Manage the language server configuration: show status, test that a server starts, reload configs from disk, or open the live LSP services log panel.

show, test, reload, logs, help

Docs: /lsp [show|test|reload|logs|help] [SERVER-NAME]
-no example
/mcp [config|list|show|add|edit|delete|disable|enable|auth|reload|search] [SERVER-NAME]

Manage MCP server configuration via the plugins dashboard. list (alias ls), show, and config are read-only and can run mid-turn; mutating subcommands wait for the turn to finish. auth triggers a fresh OAuth flow.

config, list, ls, show, add, edit, delete, disable, enable, auth, reload, search

Docs: /mcp [config|list|show|add|edit|delete|disable|enable|auth|reload|search] [SERVER-NAME]
-no example
/model [--session|--global|--repo|--local] [MODEL|auto TIER]

Select the AI model or Auto (alias /models). Defaults to the current session only; --repo/--local pin in repository settings and --global sets the default for future sessions.

Auto tiers: efficiency, balance, intelligence

Docs: /model [--session|--global|--repo|--local] [MODEL|auto TIER]
-no example
/permissions [default|assisted|allow-all|show]

Switch between permission modes or show the current mode. The canonical command for permission mode changes.

default, assisted, allow-all, show

Docs: /permissions [default|assisted|allow-all|show]
-no example
/permissions reset

Reset all in-memory tool and path approvals for the current session.

Docs: /permissions reset
-no example
/plan [PROMPT]

Create an implementation plan before coding; project file edits are blocked until the plan is approved.

Docs: /plan [PROMPT]
-no example
/plugin

Open the plugins dashboard with Installed, Online, and Marketplace views for enabling, disabling, updating, or uninstalling plugins.

Docs: /plugin
-no example
/plugin install SOURCE

Install a plugin from a marketplace spec, GitHub repository, git URL, or local path.

Docs: /plugin install SOURCE
-no example
/plugin update PLUGIN[@MARKETPLACE]

Update an installed plugin.

Docs: /plugin update PLUGIN[@MARKETPLACE]
-no example
/plugin uninstall PLUGIN[@MARKETPLACE]

Uninstall a plugin (aliases remove, rm).

Docs: /plugin uninstall PLUGIN[@MARKETPLACE]
-no example
/plugin list

List installed plugins (alias ls); read-only, can run while the agent is busy.

Docs: /plugin list
-no example
/plugin marketplace add SOURCE

Add a marketplace.

Docs: /plugin marketplace add SOURCE
-no example
/plugin marketplace remove NAME

Remove a marketplace.

Docs: /plugin marketplace remove NAME
-no example
/plugin marketplace list

List registered marketplaces.

Docs: /plugin marketplace list
-no example
/plugin marketplace browse NAME

Browse plugins in a marketplace.

Docs: /plugin marketplace browse NAME
-no example
/plugin marketplace update [NAME]

Re-fetch a marketplace's plugin catalog, or every registered marketplace when no name is given (alias refresh).

Docs: /plugin marketplace update [NAME]
-no example
/pr [view|create|fix|auto|automerge]

Manage pull requests for the current branch. auto drives the PR to green and stops; automerge (alias agentmerge) drives it to green and merges. create follows the repository PR template by default.

view, create, fix, auto, automerge

Docs: /pr [view|create|fix|auto|automerge]
-no example
/refine TEXT

Rewrite a roughly composed prompt into a clear one for review; with no arguments (via Ctrl+X then /refine) it cleans up the current input box.

Docs: /refine TEXT
-no example
/remote [on|off]

Show remote control status, enable remote steering (on), or end the remote connection (off).

on, off

Docs: /remote [on|off]
-no example
/rename [NAME]

Rename the current session, auto-generating a name if omitted; alias for /session rename.

Docs: /rename [NAME]
-no example
/research TOPIC

Run a deep research investigation on a topic.

Docs: /research TOPIC
-no example
/reset-allowed-tools

Reset the list of allowed tools.

Docs: /reset-allowed-tools
-no example
/restart

Restart the CLI, restoring all of the current process's live sessions.

Docs: /restart
-no example
/resume [SESSION-ID]

Switch to a different session from a list, optionally by session ID (alias /continue).

Docs: /resume [SESSION-ID]
-no example
/review [PROMPT]

Run the code review agent to analyze changes.

Docs: /review [PROMPT]
-no example
/rubber-duck [PROMPT]

Consult the rubber duck agent for a second opinion on plans, code, and tests.

Docs: /rubber-duck [PROMPT]
-no example
/sandbox [config|status|policy [COMMAND]|enable|disable]

Manage sandbox restrictions on filesystem and network access. enable session/disable session change only the current session; policy shows grants and can inspect a command without running it.

config, status, policy, enable, disable

Docs: /sandbox [config|status|policy [COMMAND]|enable|disable]
/sandbox policy npm install
/sandbox ca [create|trust|rotate|remove]

Manage the sandbox's proxy certificate authority from inside a session.

create, trust, rotate, remove

Docs: /sandbox ca [create|trust|rotate|remove]
-no example
/security-review [PROMPT]

Run a focused security review of active local code changes and return prioritized findings with remediation suggestions; not a full repository audit.

Docs: /security-review [PROMPT]
-no example
/session [info|checkpoints [n]|files|plan|rename [NAME]|cleanup|prune|delete [ID]|delete-all]

Show session information and manage sessions (alias /sessions). delete and delete-all preview first and need --yes; prune --older-than DAYS supports --dry-run.

info, checkpoints, files, plan, rename, cleanup, prune, delete, delete-all

Docs: /session [info|checkpoints [n]|files|plan|rename [NAME]|cleanup|prune|delete [ID]|delete-all]
/session delete-all --yes
/settings [--repo|--local] [show KEY|KEY|KEY VALUE]

Open the settings dialog (User, Repo, Repo (local), Problems tabs), focus a key, set a value inline, or show a value (alias /config). --repo/--local target repository settings files.

Docs: /settings [--repo|--local] [show KEY|KEY|KEY VALUE]
/settings --repo model gpt-6-astra
/share [link|off|file|html|gist|research] [...]

Share the current session as a GitHub link (default when logged in and synced), Markdown file, HTML file, or gist, or export the research report (alias /export). off stops sharing.

link, off, file, html, gist, research

Docs: /share [link|off|file|html|gist|research] [...]
-no example
/skills

Open the plugins dashboard on the Skills tab.

Docs: /skills
-no example
/skills list

List all available skills.

Docs: /skills list
-no example
/skills info NAME

Show details of a specific skill.

Docs: /skills info NAME
-no example
/skills add [--project] <FILE|URL|DIRECTORY>

Add a skill from a file, URL, or directory; --project scopes a file or URL install to this repository.

Docs: /skills add [--project] <FILE|URL|DIRECTORY>
-no example
/skills remove <NAME|DIRECTORY>

Remove a skill by name, or unregister a custom skill directory.

Docs: /skills remove <NAME|DIRECTORY>
-no example
/skills reload

Reload skills from all directories.

Docs: /skills reload
-no example
/statusline, /footer

Configure which items appear in the status line.

Docs: /statusline, /footer
-no example
/subagents, /agents

Configure default and per-agent subagent models; agents with modelPolicy "required" show a locked Model entry.

Docs: /subagents, /agents
-no example
/tasks

View and manage tasks (subagents and shell commands).

Docs: /tasks
-no example
/terminal-setup

Configure the terminal for multiline input support (Shift+Enter and Ctrl+Enter).

Docs: /terminal-setup
-no example
/theme [default|github|dim|high-contrast|colorblind]

View or set the color mode.

default, github, dim, high-contrast, colorblind

Docs: /theme [default|github|dim|high-contrast|colorblind]
-no example
/tuikit [colors|icons|select|tabbar]

Preview TUIkit design-system components and color tokens.

colors, icons, select, tabbar

Docs: /tuikit [colors|icons|select|tabbar]
-no example
/undo, /rewind

Open the rewind picker to roll the session back to an earlier user turn, choosing Conversation only or Conversation + files. File changes are tracked per turn, so Git is not required.

Docs: /undo, /rewind
-no example
/update, /upgrade

Update the CLI to the latest version.

Docs: /update, /upgrade
-no example
/usage

Display session usage metrics, including per-model token totals and, for token-based-billing accounts, per-model AI Credit consumption.

Docs: /usage
-no example
/user [show|list|switch]

Manage signed-in accounts.

show, list, switch

Docs: /user [show|list|switch]
-no example
/version

Display version information and check for updates.

Docs: /version
-no example
/vim

Toggle Vim-style modal editing for the prompt box (motions, operators, yank/put, undo/redo, counts). Also configurable with the editorMode setting.

Docs: /vim
-no example
/voice [on|off|models|devices]

Toggle voice mode, browse voice models, or choose the input microphone.

on, off, models, devices

Docs: /voice [on|off|models|devices]
-no example
/workflows

Observe workflow runs, phases, agents, and progress. Requires a token-based-billing plan.

Docs: /workflows
-no example
/fork [NAME]

Fork the current session into a new session (alias /branch); usable while the agent runs. /fork worktree forks into a new Git worktree off HEAD.

Docs: /fork [NAME]
-no example
/worktree [branch|task]

Create a new Git worktree and switch to it, leaving uncommitted changes behind. Branches off HEAD unless worktreeBaseRef is "defaultBranch".

Docs: /worktree [branch|task]
-no example
/worktree new [PROMPT]

Deprecated; use /new worktree. Starts a new conversation in a new Git worktree.

Docs: /worktree new [PROMPT]
-no example
/move [branch|task]

Move uncommitted changes into a new Git worktree and switch to it. Requires a Git repository.

Docs: /move [branch|task]
-no example
Copilot CLI CLI flags
FlagDescriptionExample
--host HOST

copilot login option: GitHub host URL, used to authenticate with a GitHub Enterprise Cloud instance that uses data residency.

Default: https://github.com

Docs: --host HOST
copilot login --host https://example.ghe.com
--web-flow

copilot login option: force the browser-based web authentication flow, the default on a local terminal.

Docs: --web-flow
copilot login --web-flow
--device-code

copilot login option: force the OAuth device code flow, the default on a remote terminal or in CI.

Docs: --device-code
copilot login --device-code
--with-token

copilot login option: read an authentication token from standard input instead of starting an OAuth flow. Conflicts with --web-flow and --device-code.

Docs: --with-token
copilot login --with-token < mytoken.txt
--list

copilot config option: list settings as key=value lines; conflicts with KEY/VALUE/--rm.

Docs: --list
copilot config --list
--json

Emit JSON instead of text. Accepted by copilot config --list, copilot instruction list, copilot lsp list, copilot plugin list, copilot mcp list/get/add, copilot skill list, and copilot plugin marketplace list/browse.

Docs: --json
copilot config --repo --list --json
--rm

copilot config option: remove the key, or only the given item from a list; requires KEY.

Docs: --rm
copilot config --rm allowedUrls github.com
--global

copilot config option: use your user settings file (the default); conflicts with --repo/--local.

Docs: --global
-no example
--repo

copilot config option: use the repository's .github/copilot/settings.json; only repo-overridable keys are accepted. Conflicts with --global/--local.

Docs: --repo
copilot config --repo --list --json
--local

copilot config option: use the repository's .github/copilot/settings.local.json; conflicts with --global/--repo.

Docs: --local
-no example
--args JSON or --args @PATH

copilot workflow run option: supply the workflow's inputs as inline JSON or a UTF-8 JSON file. Arguments are not read from standard input.

Default: {}

Docs: --args JSON or --args @PATH
-no example
--result-file PATH

copilot workflow run option: write the returned value as JSON to a file instead of standard output; written only when the workflow completes and returns a result.

Docs: --result-file PATH
-no example
--transport <transport>

copilot mcp add option: transport type for the server.

stdio, http, sse; default stdio

Docs: --transport <transport>
copilot mcp add --transport http SERVER-NAME URL
--env KEY=VALUE

copilot mcp add option: environment variable for the server (repeatable).

Docs: --env KEY=VALUE
-no example
--header "HEADER: VALUE"

copilot mcp add option: HTTP header for remote servers (repeatable).

Docs: --header "HEADER: VALUE"
-no example
--tools <tools>

copilot mcp add option: tool filter for the server.

"*" for all, a comma-separated list, or "" for none

Docs: --tools <tools>
-no example
--timeout <ms>

copilot mcp add option: timeout in milliseconds for tool discovery and tool calls.

Positive integer from 1 to 4294967295; default 30000

Docs: --timeout <ms>
-no example
--show-secrets

copilot mcp add option: show full environment variable and header values. Can print sensitive values; use only in trusted environments.

Docs: --show-secrets
-no example
-- <command> [args...]

copilot mcp add option: command and arguments for a local (stdio) server.

Docs: -- <command> [args...]
copilot mcp add SERVER-NAME -- COMMAND [ARGS...]
--all

copilot plugin update option: update every installed plugin.

Docs: --all
-no example
--force

copilot plugin marketplace remove option: also uninstall plugins sourced from the marketplace.

Docs: --force
-no example
--project

copilot skill add option: install a file or URL skill into the current project (.github/skills) instead of your user account.

Docs: --project
copilot skill add --project ./my-skill/SKILL.md
--stdio

With --acp, start the ACP server in stdio mode (the default). Mutually exclusive with --port.

Docs: --stdio
copilot --acp --stdio
--port

With --acp, start the ACP server in TCP mode on the given port, binding to 127.0.0.1 by default.

Docs: --port
copilot --acp --port 3000
--add-dir=PATH

Allow file access to a directory and load its .github/skills and .github/agents as trusted configurations (repeatable). The path must be an existing directory.

Docs: --add-dir=PATH
-no example
--add-github-mcp-tool=TOOL

Add a tool to enable for the GitHub MCP server instead of the default CLI subset (repeatable).

Use * for all tools

Docs: --add-github-mcp-tool=TOOL
-no example
--add-github-mcp-toolset=TOOLSET

Add a toolset to enable for the GitHub MCP server instead of the default CLI subset (repeatable).

Use all for all toolsets

Docs: --add-github-mcp-toolset=TOOLSET
-no example
--additional-mcp-config=JSON

Add an MCP server for this session only, as a JSON string or an @-prefixed file path. Augments ~/.copilot/mcp-config.json and overrides installed servers with the same name.

Docs: --additional-mcp-config=JSON
-no example
--agent=AGENT

Specify a custom agent to use, matched by agent ID or name.

Docs: --agent=AGENT
copilot -p "Review the latest commit" \ --allow-tool='shell' \ --agent code-review
--allow-all

Enable all permissions, equivalent to --allow-all-tools --allow-all-paths --allow-all-urls. Suppressed when permissions.disableBypassPermissionsMode is "disable".

Docs: --allow-all
-no example
--allow-all-mcp-server-instructions

Include initialization instructions from all MCP servers in the system prompt; by default only allowlisted servers' instructions are included up front.

Docs: --allow-all-mcp-server-instructions
-no example
--allow-all-paths

Disable file path verification and allow access to any path.

Docs: --allow-all-paths
-no example
--allow-all-tools

Allow all tools to run automatically without confirmation. Required when using the CLI programmatically (env: COPILOT_ALLOW_ALL).

Docs: --allow-all-tools
-no example
--allow-all-urls

Allow access to all URLs without confirmation.

Docs: --allow-all-urls
-no example
--allow-tool=TOOL ...

Tools the CLI may use without prompting, as permission patterns Kind(argument). Use a quoted, comma-separated list for multiple tools.

Kinds: memory, read, shell, url, write, or an MCP server name; shell(cmd:*) matches a command stem

Docs: --allow-tool=TOOL ...
copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'
--allow-url=URL ...

Allow access to specific URLs or domains. Use a quoted, comma-separated list for multiple URLs.

Docs: --allow-url=URL ...
-no example
--acp

Start as an Agent Client Protocol server (public preview). Defaults to stdio transport; --port selects TCP. --available-tools, --excluded-tools, and --effort passed at startup apply to every session.

Docs: --acp
copilot --acp --port 3000 --effort=max --available-tools="bash,view"
--attachment PATH

Attach a file to the initial prompt (repeatable). Images require the model and organization policy to allow vision input.

Docs: --attachment PATH
-no example
--autopilot

Enable autopilot continuation: the agent keeps working until task_complete is called, then returns to interactive mode.

Docs: --autopilot
-no example
--available-tools=TOOL ...

Only these tools will be available to the model. Use a quoted, comma-separated list.

Tool names such as bash, powershell, apply_patch, create, edit, view, task, ask_user, glob, grep, skill, web_fetch

Docs: --available-tools=TOOL ...
-no example
--banner

Show the startup banner.

Docs: --banner
-no example
--no-banner

Hide the startup banner.

Docs: --no-banner
-no example
--bash-env

Enable BASH_ENV support for bash shells.

Docs: --bash-env
-no example
-C DIRECTORY

Change working directory before doing anything else.

Docs: -C DIRECTORY
-no example
--connect[=SESSION-ID]

Connect directly to a remote session, optionally by session ID or task ID. Conflicts with --resume and --continue; requires remote sessions on the account.

Docs: --connect[=SESSION-ID]
-no example
--context TIER

Set the context window tier for tiered-pricing models, overriding the persisted setting.

default, long_context

Docs: --context TIER
-no example
--config-dir=DIRECTORY

Deprecated option for setting the configuration directory; use the COPILOT_HOME environment variable instead. Also accepted by several list/enable/install subcommands.

Docs: --config-dir=DIRECTORY
-no example
--continue

Resume the most recent session in the current working directory, falling back to the globally most recent session. Conflicts with --resume.

Docs: --continue
-no example
--deny-tool=TOOL ...

Tools the CLI may not use, without prompting. Deny rules always take precedence over allow rules, even with --allow-all.

Docs: --deny-tool=TOOL ...
copilot --deny-tool='write(secret.txt)'
--deny-url=URL ...

Deny access to specific URLs or domains; takes precedence over --allow-url.

Docs: --deny-url=URL ...
-no example
--disable-builtin-mcps

Disable all built-in MCP servers (currently: github-mcp-server).

Docs: --disable-builtin-mcps
-no example
--disable-mcp-server=SERVER-NAME

Disable a specific MCP server (repeatable).

Docs: --disable-mcp-server=SERVER-NAME
-no example
--disallow-temp-dir

Prevent automatic access to the system temporary directory.

Docs: --disallow-temp-dir
-no example
--effort=LEVEL, --reasoning-effort=LEVEL

Set the reasoning effort level. max is the highest-depth tier for Anthropic models.

low, medium, high, xhigh, max

Docs: --effort=LEVEL, --reasoning-effort=LEVEL
-no example
--enable-all-github-mcp-tools

Enable all GitHub MCP server tools instead of the default CLI subset; overrides --add-github-mcp-toolset and --add-github-mcp-tool.

Docs: --enable-all-github-mcp-tools
-no example
--enable-mcp-server=SERVER-NAME

Re-enable an MCP server disabled in your settings, for this session only (repeatable); not persisted.

Docs: --enable-mcp-server=SERVER-NAME
-no example
--enable-memory

Enable memory in prompt mode (disabled by default).

Docs: --enable-memory
-no example
--enable-reasoning-summaries

Deprecated compatibility option, accepted but ignored; reasoning summaries for supporting OpenAI models are shown by default and toggled with Ctrl+T.

Docs: --enable-reasoning-summaries
-no example
--excluded-tools=TOOL ...

These tools will not be available to the model. Use a quoted, comma-separated list.

Docs: --excluded-tools=TOOL ...
-no example
--experimental

Enable experimental features (use --no-experimental to disable).

Docs: --experimental
-no example
--extension-sdk-path DIRECTORY

Override the bundled @github/copilot-sdk injected into extension subprocesses with a local copilot-sdk/ folder; invalid paths fall back to the bundled SDK.

Docs: --extension-sdk-path DIRECTORY
-no example
--fleet

Run the prompt in fleet mode (parallel subagent orchestration). Requires a prompt from -i, -p, or piped stdin; equivalent to prefixing a prompt with /fleet. Not supported in ACP server mode.

Docs: --fleet
-no example
-h, --help

Display help.

Docs: -h, --help
-no example
-i PROMPT, --interactive=PROMPT

Start an interactive session and automatically execute this prompt.

Docs: -i PROMPT, --interactive=PROMPT
-no example
--log-dir=DIRECTORY

Set the log file directory.

Default: ~/.copilot/logs/

Docs: --log-dir=DIRECTORY
-no example
--log-level=LEVEL

Set the log level.

none, error, warning, info, debug, all, default

Docs: --log-level=LEVEL
-no example
--max-ai-credits=CREDITS

Set a soft maximum for AI Credits allowed for each response; resets per user message and is adjustable mid-session with /limits.

Docs: --max-ai-credits=CREDITS
-no example
--max-autopilot-continues=COUNT

Maximum number of continuation messages in autopilot mode. Malformed values (NaN, negative, fractional, scientific notation) are rejected.

Non-negative integer; default unlimited

Docs: --max-autopilot-continues=COUNT
-no example
--mode=MODE

Set the initial agent mode. --plan --mode autopilot gives plan-then-autopilot; any other --plan --mode pairing is rejected.

interactive, plan, autopilot

Docs: --mode=MODE
-no example
--model=MODEL

Set the AI model. Pass auto to let Copilot pick the best available model.

Model IDs such as claude-sonnet-5.5 (default), gpt-5.4, gpt-6.1-sol, gpt-6-astra, gpt-6-luna, claude-opus-5.5, claude-haiku-5.5, claude-haiku-4.5, gpt-5.3-codex, gemini-3.7-flash, gemini-3.8-flash, or auto

Docs: --model=MODEL
copilot -p "What does this project do?" -s --model claude-haiku-4.5
--mouse[=VALUE]

Enable or disable mouse support in the interactive interface. An explicit value is persisted to your configuration file.

on (default), off

Docs: --mouse[=VALUE]
-no example
-n NAME, --name=NAME

Set a name for the new session, used by --resume and /resume to find sessions by name.

Docs: -n NAME, --name=NAME
-no example
--no-ask-user

Disable the ask_user tool so the agent works autonomously without asking questions.

Docs: --no-ask-user
-no example
--no-auto-update

Disable downloading CLI updates automatically.

Docs: --no-auto-update
-no example
--no-bash-env

Disable BASH_ENV support for bash shells.

Docs: --no-bash-env
-no example
--no-color

Disable all color output.

Docs: --no-color
-no example
--no-custom-instructions

Disable loading of custom instructions from AGENTS.md and related files; no agent receives repository instructions when set.

Docs: --no-custom-instructions
-no example
--no-experimental

Disable experimental features.

Docs: --no-experimental
-no example
--no-mouse

Disable mouse support.

Docs: --no-mouse
-no example
--no-remote

Disable remote access for this session.

Docs: --no-remote
-no example
--no-remote-export

Disable exporting your session to GitHub.com and GitHub Mobile (also disables remote control).

Docs: --no-remote-export
-no example
--output-format=FORMAT

Set output format; json emits JSONL (one JSON object per line). Also accepted by copilot workflow run.

text (default), json

Docs: --output-format=FORMAT
-no example
-p PROMPT, --prompt=PROMPT

Execute a prompt programmatically and exit after completion. The exit summary includes a copilot --resume=SESSION-ID hint.

Docs: -p PROMPT, --prompt=PROMPT
copilot -p "Fix the race condition in the worker pool" \ --model gpt-5.3-codex \ --allow-tool='write, shell'
--plan

Start in plan mode; shorthand for --mode plan. Cannot be combined with --autopilot; can be combined with --mode autopilot.

Docs: --plan
-no example
--plain-diff

Disable rich diff rendering (syntax highlighting via the diff tool specified by your Git config).

Docs: --plain-diff
-no example
--plugin-dir=DIRECTORY

Load a plugin from a local directory (repeatable). Its agents are available in server-mode, interactive, and -p sessions.

Docs: --plugin-dir=DIRECTORY
-no example
--remote

Enable remote access to this session from GitHub.com and GitHub Mobile. With --resume <TASK-ID>, resumes a remote task locally.

Docs: --remote
-no example
--remote-export

Export your session to GitHub.com and GitHub Mobile read-only, without enabling remote control.

Docs: --remote-export
-no example
-r, --resume[=VALUE]

Resume a previous interactive session from a picker, or by session ID, ID prefix, or session name (exact, case-insensitive). Bare --resume requires a TTY; conflicts with --continue.

Docs: -r, --resume[=VALUE]
-no example
-s, --silent

Output only the agent response without usage statistics, for scripting with -p. For copilot workflow run, suppresses progress output.

Docs: -s, --silent
-no example
--screen-reader

Enable screen reader optimizations.

Docs: --screen-reader
-no example
--secret-env-vars=VAR ...

Redact an environment variable from shell and MCP server environments (repeatable). GITHUB_TOKEN and COPILOT_GITHUB_TOKEN values are redacted by default.

Docs: --secret-env-vars=VAR ...
-no example
--session-id ID

Use an exact session or task ID; resumes it if it exists, otherwise creates a new session only when the value is a valid UUID. Do not combine with --resume, --continue, or --connect.

Docs: --session-id ID
-no example
--trust-folder

Trust the working directory's hooks, workspace MCP servers, and repository plugin settings for one new non-interactive session; not saved and not a tool or path grant. Cannot be combined with --resume, --continue, or --session-id.

Docs: --trust-folder
-no example
--sandbox

Enable the OS-level shell sandbox for this session only, without changing your saved sandbox setting.

Docs: --sandbox
-no example
--no-sandbox

Disable local sandboxing for this session only. Ignored if an enterprise-managed policy enforces sandboxing.

Docs: --no-sandbox
-no example
--share=PATH

Share a session to a Markdown file after a programmatic session completes.

Default path: ./copilot-session-<ID>.md

Docs: --share=PATH
-no example
--share-gist

Share a session to a secret GitHub gist after a programmatic session completes.

Docs: --share-gist
-no example
--stream=MODE

Enable or disable streaming mode, which displays the response progressively as it is generated.

on (default), off

Docs: --stream=MODE
-no example
-v, --version

Show version information.

Docs: -v, --version
-no example
-w, --worktree[=NAME]

Create or reuse an isolated Git worktree (under <repo>.worktrees/ by default) and start the session inside it. Conflicts with --resume, --continue, and --connect.

Docs: -w, --worktree[=NAME]
-no example
--yolo

Enable all permissions (equivalent to --allow-all).

Docs: --yolo
-no example
Copilot CLI subcommands
CommandDescriptionExample
copilot

Launch the interactive user interface.

Docs: copilot
-no example
copilot app

Open the GitHub Copilot app in the current directory, deep-linking to a new session. Falls back to the app's download page in a browser, or prints the URL if no browser is available.

Docs: copilot app
-no example
copilot completion SHELL

Print a shell script that enables tab completion for copilot subcommands, options, known option values, and copilot config keys and values.

bash, zsh, fish

Docs: copilot completion SHELL
source <(copilot completion bash)
copilot config [KEY] [VALUE]

Read or change Copilot settings from the command line outside an interactive session; the non-interactive counterpart to /settings. Keys use dot notation; an unset key exits with status 1 and secret values are redacted.

Booleans accept on/off or true/false; numbers for numeric settings; an accepted choice for enums

Docs: copilot config [KEY] [VALUE]
copilot config footer.showQuota off
copilot help [TOPIC]

Display help information, optionally for a topic.

Topics: billing, config, commands, environment, logging, monitoring, permissions, providers, sandbox

Docs: copilot help [TOPIC]
copilot help config
copilot init

Analyze the codebase and write or update .github/copilot-instructions.md with project-specific guidance. Accepts --sandbox or --no-sandbox for the initialization session only.

Docs: copilot init
-no example
copilot login [OPTION]

Authenticate with Copilot via OAuth. Uses the browser web flow on local terminals and the device code flow on remote terminals or CI; the token is stored in the system credential store, or a plain text file under ~/.copilot/ if none is found.

Docs: copilot login [OPTION]
copilot login --host https://example.ghe.com
copilot mcp

Manage MCP server configurations from the command line without starting an interactive session.

Docs: copilot mcp
-no example
copilot mcp list [--json]

List all configured MCP servers grouped by source, including plugin-provided and built-in servers. Disabled servers show a (disabled) suffix, or "enabled": false in JSON.

Docs: copilot mcp list [--json]
-no example
copilot mcp get <name> [--json]

Show configuration and tools for a specific server, including source plugin name and version for plugin-provided servers and a Status: Enabled/Disabled line.

Docs: copilot mcp get <name> [--json]
-no example
copilot mcp add [options] <name> [url]

Add a server to the user configuration in ~/.copilot/mcp-config.json. Provide the command after -- for local stdio servers, or a transport and URL for remote servers.

Docs: copilot mcp add [options] <name> [url]
copilot mcp add --transport http SERVER-NAME URL
copilot mcp enable <name>

Enable a server by name; the change persists to the user configuration and applies to future sessions.

Docs: copilot mcp enable <name>
copilot mcp enable WorkIQ
copilot mcp disable <name>

Disable a server by name; the change persists to the user configuration and applies to future sessions.

Docs: copilot mcp disable <name>
-no example
copilot mcp remove <name>

Remove a user-level server. Workspace servers must be edited in their configuration files directly.

Docs: copilot mcp remove <name>
-no example
copilot plugin

Manage plugins and plugin marketplaces non-interactively. copilot plugins (plural) is a legacy alias.

Docs: copilot plugin
-no example
copilot plugin install SPECIFICATION

Install a plugin (alias add) from a marketplace, GitHub repository, repository subdirectory, Git URL, or local path.

plugin@marketplace, OWNER/REPO, OWNER/REPO:PATH/TO/PLUGIN, https://github.com/o/r.git, ./my-plugin or /abs/path

Docs: copilot plugin install SPECIFICATION
-no example
copilot plugin uninstall NAME

Remove a plugin (aliases remove, rm).

Docs: copilot plugin uninstall NAME
-no example
copilot plugin list

List installed plugins. With --json, emits a flat array of rows shaped { name, marketplace?, version?, enabled, source, installedFrom? }.

Docs: copilot plugin list
-no example
copilot plugin update NAME

Update a named plugin; use --all to update every installed plugin.

Docs: copilot plugin update NAME
-no example
copilot plugin enable NAME

Enable a previously disabled plugin; persists to configuration and applies to future sessions, for marketplace and direct installs alike.

Docs: copilot plugin enable NAME
-no example
copilot plugin disable NAME

Disable a plugin without uninstalling it. A --plugin-dir mount stays read-only.

Docs: copilot plugin disable NAME
-no example
copilot plugin marketplace add SPECIFICATION

Register a marketplace (owner/repo, owner/repo#ref, a URL, or a local path). The marketplace's own name from marketplace.json becomes its registration key. The subcommand group has the alias marketplaces.

Docs: copilot plugin marketplace add SPECIFICATION
copilot plugin marketplace add github/copilot-plugins
copilot plugin marketplace list

List every registered marketplace, including the built-in default (awesome-copilot). Supports --json.

Docs: copilot plugin marketplace list
-no example
copilot plugin marketplace browse NAME

List the plugins offered by a marketplace's catalog. Supports --json.

Docs: copilot plugin marketplace browse NAME
-no example
copilot plugin marketplace update [NAME]

Re-fetch a marketplace's plugin catalog (alias refresh); omit NAME to refresh every registered marketplace.

Docs: copilot plugin marketplace update [NAME]
-no example
copilot plugin marketplace remove NAME

Unregister a marketplace. Refused if its plugins are still installed unless --force is passed, which also uninstalls them. The built-in awesome-copilot marketplace cannot be removed.

Docs: copilot plugin marketplace remove NAME
-no example
copilot instruction list

Non-interactively list custom instruction sources discovered for the current working directory. Replaces the retired copilot plugins list --kind instruction.

Docs: copilot instruction list
copilot instruction list --json
copilot lsp list

Non-interactively list configured language servers (inspect-only). Replaces the retired copilot plugins list --kind lsp.

Docs: copilot lsp list
copilot lsp list --json
copilot sandbox ca status

Report the sandbox proxy certificate authority's trust state without changing anything.

Docs: copilot sandbox ca status
-no example
copilot sandbox ca create

Create the sandbox certificate authority if needed, without trusting it.

Docs: copilot sandbox ca create
-no example
copilot sandbox ca trust [CA.PEM]

Add the authority (default: your own) to OS trust. Run as the user who runs the CLI, not elevated or as root.

Docs: copilot sandbox ca trust [CA.PEM]
-no example
copilot sandbox ca rotate

Replace the authority, preserving its current trust state.

Docs: copilot sandbox ca rotate
-no example
copilot sandbox ca remove

Remove the authority from OS trust; the bundle-based path keeps working.

Docs: copilot sandbox ca remove
-no example
copilot skill list [--json]

List all discovered skills. JSON rows have the shape { name, description, source, path, enabled }.

Docs: copilot skill list [--json]
-no example
copilot skill add <source> [--project]

Add a skill from a file path, URL, or directory. A directory is registered as a custom skill source; a file or URL is copied into the personal or project skills directory.

Docs: copilot skill add <source> [--project]
copilot skill add --project ./my-skill/SKILL.md
copilot skill remove <name-or-directory>

Remove a personal or project skill by name, or unregister a custom skill directory (leaving its files on disk). Plugin and built-in skills cannot be removed this way.

Docs: copilot skill remove <name-or-directory>
copilot skill remove my-skill
copilot skill enable <name>

Enable a skill by name.

Docs: copilot skill enable <name>
copilot skill enable my-skill
copilot skill disable <name>

Disable a skill by name.

Docs: copilot skill disable <name>
copilot skill disable my-skill
copilot update

Download and install the latest version.

Docs: copilot update
-no example
copilot version

Display version information and check for updates.

Docs: copilot version
-no example
copilot workflow run WORKFLOW-NAME

Run a dynamic workflow registered by an extension without a chat prompt, waiting for it to finish or stop. Uses the CLI's auth, model, permission, and sandbox settings and shows no approval prompts; exit codes are 0, 1, 2, and 130.

Docs: copilot workflow run WORKFLOW-NAME
copilot workflow run WORKFLOW-NAME \ --args @workflow-input.json \ --silent --output-format json
Copilot CLI keyboard shortcuts
ShortcutDescription
@ FILENAME

Include file contents in the context.

Docs: @ FILENAME
# NUMBER

Include a GitHub issue or pull request in the context.

Docs: # NUMBER
! COMMAND

Execute a command in your local shell, bypassing Copilot. A lone ! enters shell mode; Esc or Ctrl+C on an empty prompt exits it.

Docs: ! COMMAND
$

A lone $ plus Enter hands the terminal to a real interactive shell ($SHELL or %COMSPEC%) in the session directory; exit returns to the CLI. Disable with shellShortcut.

Docs: $
?

Open quick help on an empty prompt; press again to dismiss and insert a literal ?.

Docs: ?
Esc

Cancel the current operation; press twice to interrupt the running turn or stop background agents, or to put an unanswered prompt back in the prompt box.

Docs: Esc
Ctrl+C

Cancel operation or clear input; press twice to exit.

Docs: Ctrl+C
Ctrl+D

Shutdown. In diff mode, scrolls down half a page.

Docs: Ctrl+D
Ctrl+G

Edit the prompt in an external editor ($EDITOR).

Docs: Ctrl+G
Ctrl+L

Clear the screen.

Docs: Ctrl+L
Ctrl+Enter or Ctrl+Q

Queue a message, shell command, or supported slash command to send while the agent is busy.

Docs: Ctrl+Enter or Ctrl+Q
Ctrl+R

Reverse search through command history.

Docs: Ctrl+R
Ctrl+Space

Toggle voice dictation (alias for Ctrl+X then v), if the terminal and OS pass it through.

Docs: Ctrl+Space
Ctrl+V

Paste from clipboard as an attachment.

Docs: Ctrl+V
Alt+V

Paste image from clipboard as an attachment.

Docs: Alt+V
Ctrl+X then /

Run a slash command after you have started typing a prompt, without retyping it.

Docs: Ctrl+X then /
Ctrl+X then e

Edit the prompt in an external editor ($EDITOR).

Docs: Ctrl+X then e
Ctrl+X then b

Promote the running task or shell command to the background.

Docs: Ctrl+X then b
Ctrl+X then g

Collapse or expand the autopilot goal panel.

Docs: Ctrl+X then g
Ctrl+X then h

Hide the current-session sidebar.

Docs: Ctrl+X then h
Ctrl+X then o

Open the most recent link from the timeline.

Docs: Ctrl+X then o
Ctrl+X then v

Toggle voice dictation on or off.

Docs: Ctrl+X then v
Ctrl+X then x

Close the current session.

Docs: Ctrl+X then x
Ctrl+Z

Suspend the process to the background (Unix).

Docs: Ctrl+Z
Shift+Enter or Option+Enter (Mac) / Alt+Enter (Windows/Linux)

Insert a newline in the input.

Docs: Shift+Enter or Option+Enter (Mac) / Alt+Enter (Windows/Linux)
Shift+Tab

Cycle between standard, plan, and autopilot mode.

Docs: Shift+Tab
Ctrl+F

Open timeline search; while typing, moves to the next character.

Docs: Ctrl+F
Ctrl+O

With an empty prompt, expand recent timeline items to show more details.

Docs: Ctrl+O
Ctrl+E

With an empty prompt, expand all timeline items; while typing, move to end of line. Before the first message, opens the local/cloud environment picker.

Docs: Ctrl+E
Ctrl+T

Expand or collapse display of reasoning in responses.

Docs: Ctrl+T
Page Up/Page Down

Scroll the timeline up or down by one page.

Docs: Page Up/Page Down
Ctrl+A

Move to beginning of the line when typing.

Docs: Ctrl+A
Ctrl+B

Move to the previous character.

Docs: Ctrl+B
Ctrl+H

Delete the previous character.

Docs: Ctrl+H
Ctrl+K

Delete from cursor to end of line, or the line break if at end of line.

Docs: Ctrl+K
Ctrl+U

Delete from cursor to beginning of the line. In diff mode, scrolls up half a page.

Docs: Ctrl+U
Ctrl+W

Delete the previous word.

Docs: Ctrl+W
Home / End

Move to the start or end of the current visual line.

Docs: Home / End
Ctrl+Home / Ctrl+End

Move to the start or end of the text.

Docs: Ctrl+Home / Ctrl+End
Alt+Left/Right (Windows/Linux), Option+Left/Right (Mac)

Move the cursor by a word.

Docs: Alt+Left/Right (Windows/Linux), Option+Left/Right (Mac)
Up/Down

Navigate command history; with an empty prompt, Up recalls the most recently queued or steering prompt if available.

Docs: Up/Down
Ctrl+P

Navigate submitted command history nondestructively, without queued-prompt recall.

Docs: Ctrl+P
Tab / Ctrl+Y

Accept the current inline completion suggestion.

Docs: Tab / Ctrl+Y
a (tasks dialog)

Toggle showing all nested subagent levels vs. this level's tasks only.

Docs: a (tasks dialog)
f (tasks dialog)

Toggle showing finished subagents and shells.

Docs: f (tasks dialog)
X (tasks dialog)

Kill the selected active task.

Docs: X (tasks dialog)
R (tasks dialog)

Remove the selected finished task.

Docs: R (tasks dialog)
B (tasks dialog)

Promote the selected sync task to background.

Docs: B (tasks dialog)
Enter (tasks dialog)

View task details, or teleport into the selected subagent's session view.

Docs: Enter (tasks dialog)
s (session picker)

Cycle the sort order: relevance, created, name, last used.

Docs: s (session picker)
Tab (session picker)

Switch between the local and remote tabs.

Docs: Tab (session picker)
x (session picker)

Delete the selected session.

Docs: x (session picker)
c (diff mode)

Add or edit a comment on the selected line; Enter submits all comments and s shows a comments summary.

Docs: c (diff mode)
b (diff mode)

Toggle between unstaged changes and branch diff.

Docs: b (diff mode)
w (diff mode)

Toggle hiding whitespace-only changes.

Docs: w (diff mode)
r (diff mode)

Refresh the diff (remote sessions only).

Docs: r (diff mode)
j/k, h/l, g/G (diff mode)

Move down/up one line, jump to previous/next file, and jump to first/last line (also arrow keys, Home, End).

Docs: j/k, h/l, g/G (diff mode)
Left/Right (sidebar)

With an empty prompt, walk the sidebar focus cycle: closed, timeline-focused, sidebar-focused (Vim h/l).

Docs: Left/Right (sidebar)
n (sidebar)

Start a new session from the focused sidebar or Sessions tab.

Docs: n (sidebar)
x, x (sidebar)

Close the selected session card, or delete a local resumable session's history in the Sessions tab.

Docs: x, x (sidebar)
s (sidebar)

Cycle the sidebar sort order: recent, created, name, none; persists across restarts.

Docs: s (sidebar)
a (Sessions tab)

Cycle the filter scope: all, local, remote (cloud).

Docs: a (Sessions tab)
/ (Sessions tab)

Search live across name, branch or working directory, repository, and session ID.

Docs: / (Sessions tab)
y (permission prompt)

Allow this specific request once.

Docs: y (permission prompt)
n (permission prompt)

Deny this specific request once.

Docs: n (permission prompt)
! (permission prompt)

Allow all similar requests for the rest of the session.

Docs: ! (permission prompt)
# (permission prompt)

Deny all similar requests for the rest of the session.

Docs: # (permission prompt)
? (permission prompt)

Show detailed information about the request.

Docs: ? (permission prompt)
R (/plugin Marketplace view)

Refresh every registered marketplace's catalog.

Docs: R (/plugin Marketplace view)
Copilot CLI settings keys
KeyDescriptionExample
allowedUrls

URLs or domains allowed without prompting; supports exact URLs, domain patterns, and wildcard subdomains.

string[]; default []

Docs: allowedUrls
copilot config allowedUrls github.com
askUser

Allow the agent to ask clarifying questions; false for fully autonomous operation.

boolean; default true

Docs: askUser
-no example
autoTier

Default Auto routing tier when the model is auto. "fast" falls back to "balance" with a warning. Also a managed key (bare string locks; {"overridable": "TIER"} sets an overridable default).

"efficiency" | "balance" | "intelligence"; default unset

Docs: autoTier
-no example
autoUpdate

Automatically download CLI updates and update first-party plugins at session start.

boolean; default true

Docs: autoUpdate
-no example
autoUpdatesChannel

Update channel.

"stable" | "prerelease"; default "stable"

Docs: autoUpdatesChannel
-no example
banner

Animated banner display frequency.

"always" | "once" | "never"; default "once"

Docs: banner
-no example
bashEnv

Enable BASH_ENV support for bash shells.

boolean; default false

Docs: bashEnv
-no example
beep

Play an audible beep when attention is required.

boolean; default true

Docs: beep
-no example
beepOnSchedule

Play an audible beep when a scheduled /every or /after run finishes.

boolean; default true

Docs: beepOnSchedule
-no example
colorMode

Deprecated alias for theme.

"default" | "github" | "dim" | "high-contrast" | "colorblind"; default "github"

Docs: colorMode
-no example
commandHistoryMaxSize

Maximum number of recent commands retained for input history and reverse search.

integer 1 to 1000; default 50

Docs: commandHistoryMaxSize
-no example
compactPaste

Collapse large pastes (more than 10 lines) into compact tokens.

boolean; default true

Docs: compactPaste
-no example
companyAnnouncements

Custom messages, one shown at random on startup. Repo-overridable (repository replaces).

string[]; default []

Docs: companyAnnouncements
-no example
connectors

Enable Copilot Connectors when available.

boolean; default true

Docs: connectors
-no example
continueOnAutoMode

Automatically switch to auto mode and retry on eligible rate limit errors; not for global rate limits or BYOK providers.

boolean; default false

Docs: continueOnAutoMode
-no example
copyOnSelect

Automatically copy mouse-selected text to the system clipboard.

boolean; default true (macOS), false (other)

Docs: copyOnSelect
-no example
customAgents.defaultLocalOnly

Only use local custom agents, excluding remote organization or enterprise agents.

boolean; default false

Docs: customAgents.defaultLocalOnly
-no example
deniedUrls

URLs or domains always denied; denial beats allow rules. Repo-overridable as a union.

string[]; default []

Docs: deniedUrls
-no example
disableAllHooks

Disable all repository-level and user-level hooks (policy hooks still run).

boolean; default false

Docs: disableAllHooks
-no example
disabledMcpServers

MCP server names that are configured but not started. Repo-overridable as a union.

string[]; default []

Docs: disabledMcpServers
-no example
disabledSkills

Skill names that are discovered but not loaded. Repo-overridable as a union.

string[]; default []

Docs: disabledSkills
-no example
dynamicRetrieval

Per-category control of embeddings-based dynamic instruction retrieval; set skills to false to disable it for skills.

{ skills?: boolean }; default unset

Docs: dynamicRetrieval
-no example
editorMode

Input composer editing mode; toggled by /vim.

"normal" | "vim"; default "normal"

Docs: editorMode
-no example
effortLevel

Reasoning effort level for extended thinking. Repo-overridable (trusted folders only).

"low", "medium", "high", "xhigh"; default "medium"

Docs: effortLevel
-no example
enabledMcpServers

Enable built-in MCP servers that are disabled by default.

string[]; default []

Docs: enabledMcpServers
-no example
enabledPlugins

Declarative plugin auto-install keyed by plugin spec. Repo-overridable (merged) and a managed key locked per entry.

Record<string, boolean>; default {}

Docs: enabledPlugins
-no example
experimental

Enable experimental features.

boolean; default false

Docs: experimental
-no example
extraKnownMarketplaces

Additional plugin marketplaces keyed by name with a required source; autoUpdate: true opts a marketplace into session-start auto-update (honored only in user or managed settings).

Record<string, {...}>; source: "directory", "git", or "github"; default {}

Docs: extraKnownMarketplaces
-no example
hooks

Inline hook definitions keyed by event name, same schema as .github/hooks/*.json. Repo-overridable (merged).

object

Docs: hooks
-no example
ide.autoConnect

Automatically connect to an IDE workspace on startup.

boolean; default true

Docs: ide.autoConnect
-no example
ide.openDiffOnEdit

Open file edit diffs in the connected IDE for approval.

boolean; default true

Docs: ide.openDiffOnEdit
-no example
ignoredSkillsLocations

Skill directories (and descendants) excluded from discovery; supports ~-relative paths.

string[]; default []

Docs: ignoredSkillsLocations
-no example
includeCoAuthoredBy

Add a Co-authored-by trailer to git commits made by the agent. Repo-overridable.

boolean; default true

Docs: includeCoAuthoredBy
-no example
inlineImages

Render images inline using the Kitty graphics protocol (Ghostty, kitty, or WezTerm).

boolean; default true

Docs: inlineImages
-no example
keepAlive

Keep-alive mode applied at startup; also set with /keep-alive.

"on" | "off" | "busy"; default "off"

Docs: keepAlive
-no example
logLevel

Logging verbosity.

"none" | "error" | "warning" | "info" | "debug" | "all" | "default"; default "default"

Docs: logLevel
-no example
mergeStrategy

Conflict resolution strategy for /pr fix conflicts; a picker is shown if unset. Repo-overridable.

"rebase" | "merge"

Docs: mergeStrategy
-no example
model

AI model to use, or "auto"; managed by /model. Repo-overridable (trusted folders) and a managed key.

string; default varies

Docs: model
{ "model": "gpt-5.3-codex", "effortLevel": "low" }
mouse

Enable mouse support.

boolean; default true

Docs: mouse
-no example
permissions.disableBypassPermissionsMode

"disable" suppresses all allow-all flags and /permissions allow-all; "allow-auto-only" still permits assisted approval. Unrecognized values are enforced as "disable"; an MDM "disable" always wins.

"disable" | "allow-auto-only"

Docs: permissions.disableBypassPermissionsMode
-no example
pinnedPrompts

Pin the current section's user prompt below the top bar while scrolling the timeline.

boolean; default true

Docs: pinnedPrompts
-no example
powershellFlags

Flags passed to PowerShell on startup (Windows only).

string[]; default ["-NoProfile", "-NoLogo"]

Docs: powershellFlags
copilot config powershellFlags -- -NoProfile
proxyKerberosServicePrincipal

SPN for Kerberos/Negotiate proxy authentication, overriding the derived HTTP/<proxy-host>.

string; default unset

Docs: proxyKerberosServicePrincipal
-no example
proxyUrl

Proxy URL for HTTP(S) requests; overridden by HTTP_PROXY or HTTPS_PROXY.

string; default unset

Docs: proxyUrl
-no example
remote

Controls session syncing and remote access; "off" keeps session data local and disables remote control.

"on" | "off"; default "on"

Docs: remote
-no example
renderHexColors

Show six-digit hex color codes written as inline code as color swatches.

boolean; default true

Docs: renderHexColors
-no example
renderMarkdown

Render Markdown in terminal output.

boolean; default true

Docs: renderMarkdown
-no example
remoteExport

Export sessions remotely when session sync is available; false opts out by default.

boolean; default true

Docs: remoteExport
-no example
respectGitignore

Exclude gitignored files from the @ file mention picker. Repo-overridable tighten-only.

boolean; default true

Docs: respectGitignore
-no example
sandbox.allowBypass

Allow sandboxed commands to request a bypass via a permission prompt, which can also disable sandboxing for the rest of the session.

boolean; default true

Docs: sandbox.allowBypass
-no example
sandbox.enabled

Restrict shell commands, MCP/LSP servers, and built-in file and web tools to a sandbox with limited filesystem and network access.

boolean; default false

Docs: sandbox.enabled
-no example
sandbox.auth.git

Inject Git credentials into the sandbox. Renamed from sandbox.gitAuth (old key ignored).

boolean; default true

Docs: sandbox.auth.git
-no example
sandbox.auth.gh

Inject GitHub CLI (gh) credentials into the sandbox. Renamed from sandbox.ghAuth (old key ignored).

boolean; default true

Docs: sandbox.auth.gh
-no example
sandbox.credentials

Mask environment variables in sandboxed processes via an envVars object with injectHosts per entry; the local proxy supplies real values only in HTTPS headers to those hosts.

object; default unset

Docs: sandbox.credentials
-no example
sandbox.userPolicy.network.allowLocalNetwork

Control local network access for sandboxed commands; required for Windows proxying and host rules.

boolean; default false

Docs: sandbox.userPolicy.network.allowLocalNetwork
-no example
sandbox.userPolicy.network.proxy

Route sandboxed network traffic through an HTTP(S) proxy with fields url (required), username, password.

object; default unset

Docs: sandbox.userPolicy.network.proxy
-no example
sandbox.userPolicy.network.allowedHosts

Hosts a sandboxed command may reach: exact hostnames, IPs, or *.example.com; a non-empty list blocks unmatched hosts. No CIDR, URLs, or ports.

string[]; default []

Docs: sandbox.userPolicy.network.allowedHosts
-no example
sandbox.userPolicy.network.blockedHosts

Hosts a sandboxed command is denied, matched like allowedHosts; always takes precedence and also denies subdomains.

string[]; default []

Docs: sandbox.userPolicy.network.blockedHosts
-no example
sandbox.userPolicy.filesystem.deniedPaths

Paths sandboxed commands are denied access to; missing paths are created as directories before launch.

string[]; default []

Docs: sandbox.userPolicy.filesystem.deniedPaths
-no example
sandbox.userPolicy.seatbelt.keychainAccess

macOS only. Grant sandboxed commands access to the system keychain; configurable only in settings.json.

boolean; default false

Docs: sandbox.userPolicy.seatbelt.keychainAccess
-no example
screenReader

Enable screen reader optimizations.

boolean; default false

Docs: screenReader
-no example
scrollbar

Show the scrollbar in scrollable views.

boolean; default true

Docs: scrollbar
-no example
shellShortcut

Let a lone $ plus Enter open an interactive shell in the session's working directory. User- or managed-scoped only; a managed value always overrides.

boolean; default true

Docs: shellShortcut
-no example
showTimestamps

Show dim HH:mm timestamps next to user messages.

boolean; default true

Docs: showTimestamps
-no example
showTipsOnStartup

Show a random command tip when the CLI starts.

boolean; default true

Docs: showTipsOnStartup
-no example
sidebar

Enable the current-session sidebar; false disables it entirely.

boolean; default true

Docs: sidebar
-no example
sidebar.enabled

Allow the sessions sidebar to be displayed.

Default on

Docs: sidebar.enabled
-no example
sidebar.showResumableSessions

Include resumable previous sessions in the sidebar; takes effect on next start.

Default on

Docs: sidebar.showResumableSessions
-no example
sidebar.showHeaderButtons

Show the collapse and new-session buttons at the top of the sidebar.

Default on

Docs: sidebar.showHeaderButtons
-no example
sidebar.showCloseButton

Show a close session button when hovering the right side of a session.

Default off

Docs: sidebar.showCloseButton
-no example
sidebar.hoverFocus

Move focus between the main tab and the sidebar based on mouse position.

Default off

Docs: sidebar.hoverFocus
-no example
sidebar.coloredHints

Show the use sidebar hint in the sidebar's accent color while it is open.

Default on

Docs: sidebar.coloredHints
-no example
sidebar.accentActiveSession

When on, the open session gets the main highlight; when off, the keyboard or mouse selection does.

Default on

Docs: sidebar.accentActiveSession
-no example
skillDirectories

Additional directories to search for custom skills.

string[]; default []

Docs: skillDirectories
-no example
statusLine

Custom status line: type must be "command"; command receives session JSON on stdin; optional padding and refreshInterval (seconds).

object; refreshInterval 1 to 2147483

Docs: statusLine
-no example
stayInAutopilot

Remain in autopilot mode after each task completes.

boolean; default true

Docs: stayInAutopilot
-no example
storeTokenPlaintext

Allow auth tokens to be stored in plain text in config.json when no system keychain is available.

boolean; default false

Docs: storeTokenPlaintext
-no example
stream

Enable streaming responses.

boolean; default true

Docs: stream
-no example
streamerMode

Hide preview model names, quota details, prompt timestamps, and the update notice for demos or screen sharing.

boolean; default false

Docs: streamerMode
-no example
subagents.agents

Per-agent model configuration keyed by agent name, with optional model, modelPolicy, effortLevel, and contextTier; "inherit" uses the parent session's value.

object; default {}

Docs: subagents.agents
-no example
subagents.agents["rubber-duck"].autoInvoke

Allow Copilot to proactively consult the rubber duck agent without being asked.

boolean; default false

Docs: subagents.agents["rubber-duck"].autoInvoke
-no example
subagents.disabledSubagents

Names of subagents that are turned off; managed via the /subagents picker.

string[]; default []

Docs: subagents.disabledSubagents
-no example
subagents.maxConcurrency

Maximum concurrent subagents; honored only for usage-based billing users.

number; default plan-based; capped at 32

Docs: subagents.maxConcurrency
{ "subagents": { "maxConcurrency": 16, "maxDepth": 10 } }
subagents.maxDepth

Maximum subagent nesting depth; honored only for usage-based billing users.

number; default 6; capped at 256

Docs: subagents.maxDepth
-no example
tabs.enabled

Show the home tab bar.

boolean; default true

Docs: tabs.enabled
-no example
tabs.hide

Tab identifiers to hide (case-insensitive).

string[]: "copilot", "agents", "issues", "pull-requests", "gists"; default []

Docs: tabs.hide
-no example
tabs.sort

Order in which tabs are displayed; unlisted tabs follow in default order.

string[]; default []

Docs: tabs.sort
-no example
taskbarPresence

Show a live Copilot session on the Windows taskbar; startup-only, Windows only.

boolean; default true

Docs: taskbarPresence
-no example
terminalNotifications

Prefer terminal-owned OSC 777 notifications (Ghostty, WezTerm) when desktop notifications are enabled.

boolean; default false

Docs: terminalNotifications
-no example
terminalProgress

Emit OSC 9;4 terminal progress indicators while the agent works.

boolean; default true

Docs: terminalProgress
-no example
theme

Color palette for terminal output; managed by /settings and /theme.

"default" | "github" | "dim" | "high-contrast" | "colorblind"; default "github"

Docs: theme
copilot config theme
toolSearch

Controls tool search (deferred tool loading); false opts out.

boolean; default model- and feature-dependent

Docs: toolSearch
-no example
transcriptView

"concise" groups tool activity into expandable work summaries; "default" shows the full transcript.

"default" | "concise"; default "default"

Docs: transcriptView
-no example
updateTerminalTitle

Show the current intent in the terminal tab or window title.

boolean; default true

Docs: updateTerminalTitle
-no example
worktreeBaseRef

Starting point for worktrees created by /worktree, /new worktree, /move, and --worktree.

"head" | "defaultBranch"; default "head"

Docs: worktreeBaseRef
-no example
worktreePathTemplate

Where worktrees are created; supports {repoPath}, {repo}, {branch}, {branchSlug}. Unset uses <repo>.worktrees/.

string; default unset

Docs: worktreePathTemplate
~/src/worktrees/{repo}/{branch}
contextTier

Repository setting that pins the default context tier (trusted folders only); repository takes precedence.

"default" | "long_context"

Docs: contextTier
-no example
allowedMcpServers

Managed allowlist of MCP servers matched by serverUrl, serverCommand, or serverName. Unset allows all non-default servers; an empty array denies all.

Docs: allowedMcpServers
-no example
deniedMcpServers

Managed denylist of MCP servers that must never load; deny always wins over the allowlist.

Docs: deniedMcpServers
-no example
forceLoginOrgs

Managed key that pins sign-in to listed GitHub organizations (case-insensitive logins); fails closed. An empty array turns the pin off.

array of organization logins

Docs: forceLoginOrgs
-no example
forceRemoteSettingsRefresh

Managed key requiring a fresh server-managed settings fetch on startup even when a cached policy exists.

Docs: forceRemoteSettingsRefresh
-no example
permissions

Managed permissions: disableBypassPermissionsMode, deny/ask/allow rule arrays (Shell, Bash, PowerShell, Read, Edit, Write, Domain), and the limitTo domain boundary. Deny wins, then ask, then allow.

Docs: permissions
{ "permissions": { "limitTo": ["github.com", "*.github.com"] } }
policyHelper

Managed key registering an executable that supplies the lowest-priority managed-settings layer (path, args, timeoutMs, refreshIntervalMs). Accepted but not yet invoked by the runtime.

Docs: policyHelper
-no example
remoteControl

Managed key controlling whether sessions can be controlled from other devices; requireSSO needs githubDotComOrganizations.

mode: "enabled", "disabled", "requireSSO"

Docs: remoteControl
-no example
sandbox

Managed sandbox policy floor users cannot relax, including enabled, failIfUnavailable, allowBypass, addCurrentWorkingDirectory, sandboxMcpServers, sandboxLspServers, auth.*, allowDevToolAccess, learningMode (Windows, native MDM only), and userPolicy.* rules.

Docs: sandbox
-no example
strictKnownMarketplaces

Managed allowlist of known plugin marketplaces; an empty array blocks every marketplace, including built-ins.

JSON array of marketplace specs

Docs: strictKnownMarketplaces
-no example
telemetry

Managed baseline OpenTelemetry export configuration.

Fields: enabled, endpoint, protocol, headers, resourceAttributes, captureContent, lockCaptureContent, serviceName

Docs: telemetry
-no example
command

MCP local server field (required): command to start the server.

string

Docs: command
-no example
args

MCP local server field (required): command arguments array; --registry can point npx at a private npm registry.

array

Docs: args
-no example
tools

MCP server field (required): tools to enable.

["*"] for all, or a list of tool names

Docs: tools
-no example
env

MCP local server field: environment variables, supporting $VAR, ${VAR}, and ${VAR:-default} expansion.

object

Docs: env
-no example
cwd

MCP local server field: working directory for the server.

string

Docs: cwd
-no example
timeout

MCP server field: timeout in milliseconds for tool discovery and tool calls (connection budget floored at 60000 ms).

Default 30000

Docs: timeout
-no example
type

MCP server transport field. "streamable-http" is accepted as an alias for "http".

Local: "local" or "stdio" (default "local"); remote (required): "http" or "sse"

Docs: type
-no example
deferTools

MCP server field: "never" keeps this server's tools always visible even when tool search is active.

"auto" (default) or "never"

Docs: deferTools
-no example
disableToolCache

MCP local server field: true skips loading and persisting the tool snapshot for this server.

boolean

Docs: disableToolCache
-no example
slowConnectionThresholdMs

MCP server field: milliseconds before warning that a server is slow to connect; does not change the timeout.

Positive integer up to 2147483647; default 10000

Docs: slowConnectionThresholdMs
-no example
url

MCP remote server field (required): server URL.

string

Docs: url
-no example
headers

MCP remote server field: HTTP headers, supporting variable expansion.

object

Docs: headers
-no example
oauthClientId

MCP remote server field: static OAuth client ID (skips dynamic registration).

string

Docs: oauthClientId
-no example
oauthScopes

MCP remote server field: non-empty array of OAuth scopes to request; requires oauthClientId.

string[]

Docs: oauthScopes
-no example
oauthPublicClient

MCP remote server field: whether the OAuth client is public; false for confidential clients with a stored secret.

boolean; default true

Docs: oauthPublicClient
-no example
oauthGrantType

MCP remote server field: OAuth grant type; client_credentials is fully headless for CI.

"authorization_code" (default) or "client_credentials"

Docs: oauthGrantType
-no example
oidc

MCP server field: enable OIDC token injection via GITHUB_COPILOT_OIDC_MCP_TOKEN env references (local) or a Bearer Authorization header (remote).

boolean

Docs: oidc
-no example
filterMapping

MCP server field controlling how tool output is processed.

none, markdown, hidden_characters (default)

Docs: filterMapping
-no example
lspServers.<name>.command

LSP server field (required unless bash/powershell in plugins): command used to start the server.

string

Docs: lspServers.<name>.command
-no example
lspServers.<name>.args

LSP server field: arguments to pass to the command.

string[]

Docs: lspServers.<name>.args
-no example
lspServers.<name>.fileExtensions

LSP server field (required): map of file extensions to language IDs.

object, for example { ".rs": "rust" }

Docs: lspServers.<name>.fileExtensions
-no example
lspServers.<name>.env

LSP server field: environment variables, supporting ${VAR} and ${VAR:-default}.

object

Docs: lspServers.<name>.env
-no example
lspServers.<name>.rootUri

LSP server field: server root directory relative to the Git root; useful for monorepos.

Default "."

Docs: lspServers.<name>.rootUri
-no example
lspServers.<name>.initializationOptions

LSP server field: custom options sent to the server during startup.

Docs: lspServers.<name>.initializationOptions
-no example
lspServers.<name>.requestTimeoutMs

LSP server field: timeout for server requests in milliseconds.

Default 90 seconds

Docs: lspServers.<name>.requestTimeoutMs
-no example
lspServers.<name>.initializationTimeoutMs

LSP server field: timeout for the server's startup handshake in milliseconds.

Default 60 seconds

Docs: lspServers.<name>.initializationTimeoutMs
-no example
lspServers.<name>.disabled

Set to true in .github/lsp.json to disable a server for everyone, overriding lower-priority sources.

true

Docs: lspServers.<name>.disabled
-no example
name (SKILL.md frontmatter)

Required unique skill identifier; letters, numbers, hyphens, underscores, dots, colons, spaces. Colons allow namespaced names.

string, max 64 characters

Docs: name (SKILL.md frontmatter)
-no example
description (SKILL.md frontmatter)

Required: what the skill does and when to use it.

string, max 1024 characters

Docs: description (SKILL.md frontmatter)
-no example
argument-hint

Skill frontmatter: freeform hint describing expected arguments, shown in the skill picker.

string

Docs: argument-hint
"[target] [mode]"
allowed-tools

Skill frontmatter: tools automatically allowed while the skill is active; "*" for all.

string or string[]

Docs: allowed-tools
-no example
user-invocable

Skill frontmatter: whether users can invoke the skill with /SKILL-NAME.

boolean; default true

Docs: user-invocable
-no example
disable-model-invocation

Skill frontmatter: prevent the agent from automatically invoking the skill.

boolean; default false

Docs: disable-model-invocation
-no example
description (agent frontmatter)

Required custom agent description shown in the agent list and task tool.

string

Docs: description (agent frontmatter)
-no example
include-custom-instructions

Agent frontmatter: include repository instruction files when the agent runs as a subagent.

boolean; default false

Docs: include-custom-instructions
-no example
infer

Agent frontmatter: allow auto-delegation by the main agent.

boolean; default true

Docs: infer
-no example
mcp-servers

Agent frontmatter: MCP servers to connect, using the mcp-config.json schema.

object

Docs: mcp-servers
-no example
model (agent frontmatter)

AI model for the agent; inherits the outer agent's model when unset.

string

Docs: model (agent frontmatter)
-no example
models

Agent frontmatter: authored models in priority order; first accessible one is used. Overrides model.

string[]

Docs: models
-no example
modelPolicy

Agent frontmatter: "preferred" allows subagents overrides; "required" locks dispatch to authored models.

"preferred" (default) or "required"

Docs: modelPolicy
-no example
name (agent frontmatter)

Display name, also usable with --agent; does not control deduplication.

string; defaults to the agent ID

Docs: name (agent frontmatter)
-no example
reasoningEffort

Agent frontmatter: default reasoning effort; inherits when unset.

for example "low", "medium", "high"

Docs: reasoningEffort
-no example
tools (agent frontmatter)

Tools available to the agent; including * anywhere grants all tools.

string[]; default ["*"]

Docs: tools (agent frontmatter)
-no example
sidekick.triggers

Session events that launch a sidekick agent; bare event strings or objects with event and optional limit.

Events: user.message, session.context_changed

Docs: sidekick.triggers
-no example
sidekick.behavior

"restart" cancels and restarts on each trigger; "persistent" keeps one long-lived run.

"restart" (default) or "persistent"

Docs: sidekick.behavior
-no example
sidekick.maxSendsPerTurn

Maximum inbox sends allowed per trigger.

number; default 1

Docs: sidekick.maxSendsPerTurn
-no example
Copilot CLI environment variables
VariableDescriptionExample
COPILOT_ALLOW_ALL

Allow all permissions automatically (equivalent to --allow-all). Exactly true also trusts the working directory, loading its skills, plugins, MCP servers, and hooks.

On: true, 1, yes, on, y; off: false, 0, no, off, n, empty (case-insensitive)

Docs: COPILOT_ALLOW_ALL
-no example
COPILOT_AUTO_UPDATE

Set to false to disable automatic updates of the CLI and first-party plugins.

false

Docs: COPILOT_AUTO_UPDATE
-no example
COPILOT_CACHE_HOME

Override the cache directory used for marketplace caches, auto-update packages, and other ephemeral data.

Defaults: ~/Library/Caches/copilot (macOS), $XDG_CACHE_HOME/copilot or ~/.cache/copilot (Linux), %LOCALAPPDATA%/copilot (Windows)

Docs: COPILOT_CACHE_HOME
-no example
COPILOT_CHILD_OOM_SCORE_ADJ

Linux only. Overrides the oom_score_adj bias on shell command process trees so the OOM killer reclaims a runaway child before the CLI.

Default 300; range -1000 to 1000; off disables

Docs: COPILOT_CHILD_OOM_SCORE_ADJ
-no example
COPILOT_CUSTOM_INSTRUCTIONS_DIRS

Comma-separated list of additional directories for custom instructions.

Docs: COPILOT_CUSTOM_INSTRUCTIONS_DIRS
-no example
COPILOT_EDITOR

Editor command for interactive editing, checked after $VISUAL and $EDITOR.

Defaults to vi if none are set

Docs: COPILOT_EDITOR
-no example
COPILOT_ENABLE_HTTP2

Opt into HTTP/2 transport; HTTP/1.1 is the default.

1 or true

Docs: COPILOT_ENABLE_HTTP2
-no example
COPILOT_ENABLE_INTERRUPTED_SESSION_RESTORE

Enable restoring a session that was still open when the CLI process went away (temporarily opt-in).

1

Docs: COPILOT_ENABLE_INTERRUPTED_SESSION_RESTORE
-no example
COPILOT_GH_HOST

GitHub hostname for Copilot CLI only, overriding GH_HOST.

Docs: COPILOT_GH_HOST
-no example
COPILOT_GITHUB_TOKEN

Authentication token; takes precedence over GH_TOKEN and GITHUB_TOKEN. Fine-grained PATs with Copilot Requests permission and Copilot CLI or gh OAuth tokens are supported; classic ghp_ PATs are not.

Docs: COPILOT_GITHUB_TOKEN
COPILOT_GITHUB_TOKEN=github_pat_... copilot
COPILOT_HOME

Override the configuration and state directory; replaces the entire ~/.copilot path.

Default: $HOME/.copilot

Docs: COPILOT_HOME
export COPILOT_HOME=/path/to/my/copilot-config
COPILOT_LARGE_OUTPUT_THRESHOLD_BYTES

Maximum UTF-8 byte size for tool output returned directly to the model.

Default 20480 (20 KiB)

Docs: COPILOT_LARGE_OUTPUT_THRESHOLD_BYTES
-no example
COPILOT_MCP_TOOL_CACHE

Set to false to disable loading and persisting local MCP server tool snapshots for the entire process.

false

Docs: COPILOT_MCP_TOOL_CACHE
-no example
COPILOT_MODEL

Set the AI model; ranks below --model and above the model settings key in precedence. Required when using a BYOK provider.

Docs: COPILOT_MODEL
-no example
COPILOT_PLAN_THEN_AUTOPILOT

Request plan-then-autopilot (equivalent to --plan --mode autopilot); ignored with a warning when --mode, --autopilot, or --plan is passed.

1, true, yes, on

Docs: COPILOT_PLAN_THEN_AUTOPILOT
-no example
COPILOT_PROMPT_FRAME

Enable (1) or disable (0) the decorative frame around the input prompt, overriding the PROMPT_FRAME experimental flag.

1, 0

Docs: COPILOT_PROMPT_FRAME
-no example
COPILOT_PROVIDER_API_KEY_COMMAND

Shell command that prints a fresh BYOK API key before each provider request; takes precedence over COPILOT_PROVIDER_API_KEY.

Docs: COPILOT_PROVIDER_API_KEY_COMMAND
-no example
COPILOT_PROVIDERS_CONFIG

Path to a JSON file defining a BYOK provider and model registry (providers and models keys); takes precedence over legacy COPILOT_PROVIDER_* variables when it declares anything.

Default: <COPILOT_HOME>/providers.json

Docs: COPILOT_PROVIDERS_CONFIG
-no example
COPILOT_SKILLS_DIRS

Comma-separated list of additional directories for skills.

Docs: COPILOT_SKILLS_DIRS
-no example
PLUGINS_DASHBOARD

Set to false to disable the plugins dashboard opened by bare /plugin, /mcp, and /skills, and the non-interactive copilot plugin commands.

false

Docs: PLUGINS_DASHBOARD
-no example
COPILOT_STRIP_REASONING_ON_RESUME

Set to 0 or false to keep BYOK reasoning tokens across a session resume instead of stripping them (the default).

0, false

Docs: COPILOT_STRIP_REASONING_ON_RESUME
-no example
COPILOT_SUBAGENT_MAX_CONCURRENT

Maximum concurrent subagents per session.

Default 32; range 1 to 256

Docs: COPILOT_SUBAGENT_MAX_CONCURRENT
-no example
COPILOT_SUBAGENT_MAX_DEPTH

Maximum subagent nesting depth.

Default 4; range 1 to 128

Docs: COPILOT_SUBAGENT_MAX_DEPTH
-no example
COPILOT_TASK_WAIT_TIMEOUT_SECONDS

Maximum seconds -p (and -p --autopilot) waits for pending background agents or shell commands before exiting.

Default 600; 0 exits immediately

Docs: COPILOT_TASK_WAIT_TIMEOUT_SECONDS
-no example
GH_HOST

GitHub hostname for both GitHub CLI and Copilot CLI; override with COPILOT_GH_HOST for Copilot CLI only.

Default: github.com

Docs: GH_HOST
-no example
GH_TOKEN

Authentication token; takes precedence over GITHUB_TOKEN (second precedence overall).

Docs: GH_TOKEN
-no example
GITHUB_TOKEN

Authentication token (third precedence). Its value is redacted from output by default.

Docs: GITHUB_TOKEN
-no example
GITHUB_COPILOT_PROMPT_MODE_EXTENSIONS

Set to true to load project extensions and allow extension management tools in prompt mode (-p) or direct workflow runs. Does not grant tool permissions.

true

Docs: GITHUB_COPILOT_PROMPT_MODE_EXTENSIONS
-no example
GITHUB_COPILOT_PROMPT_MODE_REPO_HOOKS

Set to true to load repository hooks in prompt mode (-p).

true

Docs: GITHUB_COPILOT_PROMPT_MODE_REPO_HOOKS
-no example
GITHUB_COPILOT_PROMPT_MODE_WORKSPACE_MCP

Set to true to load workspace MCP sources in prompt mode (-p).

true

Docs: GITHUB_COPILOT_PROMPT_MODE_WORKSPACE_MCP
-no example
PLAIN_DIFF

Set to true to disable rich diff rendering.

true

Docs: PLAIN_DIFF
-no example
USE_BUILTIN_RIPGREP

Set to false to use the system ripgrep instead of the bundled version.

false

Docs: USE_BUILTIN_RIPGREP
-no example
USE_TGREP

true always uses tgrep (trigram-indexed search), bypassing the file-count threshold; false always uses ripgrep. When unset, tgrep is used automatically only in large Git repositories on non-virtualized filesystems.

true, false

Docs: USE_TGREP
-no example
TGREP_FILE_COUNT_THRESHOLD

Minimum file count for automatic tgrep indexed search; 0 removes only the file-count requirement.

Non-negative integer; default 10000 on Windows, 50000 elsewhere

Docs: TGREP_FILE_COUNT_THRESHOLD
-no example
COPILOT_WEB_FETCH_ALLOW_LOCALHOST

Allow the web_fetch tool to reach localhost during development, bypassing its loopback block.

1

Docs: COPILOT_WEB_FETCH_ALLOW_LOCALHOST
export COPILOT_WEB_FETCH_ALLOW_LOCALHOST=1
COPILOT_HOOK_ALLOW_LOCALHOST

When set to 1, HTTP hooks may use non-TLS http://localhost, http://127.*, and http://[::1] URLs.

1

Docs: COPILOT_HOOK_ALLOW_LOCALHOST
-no example
COPILOT_PROVIDER_BASE_URL

BYOK: the base URL of your model provider's API endpoint (required).

Docs: COPILOT_PROVIDER_BASE_URL
export COPILOT_PROVIDER_BASE_URL=http://localhost:11434
COPILOT_PROVIDER_TYPE

BYOK: the provider type. openai works with any OpenAI-compatible endpoint.

openai (default), azure, anthropic

Docs: COPILOT_PROVIDER_TYPE
export COPILOT_PROVIDER_TYPE=azure
COPILOT_PROVIDER_API_KEY

BYOK: your API key for the provider; not required for providers without authentication such as a local Ollama instance.

Docs: COPILOT_PROVIDER_API_KEY
-no example
COPILOT_PROVIDER_BEARER_TOKEN

BYOK: bearer token used for provider authentication when API-key authentication is not used.

Docs: COPILOT_PROVIDER_BEARER_TOKEN
-no example
COPILOT_PROVIDER_WIRE_API

BYOK: specifies the API protocol used when communicating with the provider.

Docs: COPILOT_PROVIDER_WIRE_API
-no example
COPILOT_PROVIDER_AZURE_API_VERSION

BYOK (Azure only): the Azure OpenAI API version used for requests.

Docs: COPILOT_PROVIDER_AZURE_API_VERSION
-no example
COPILOT_PROVIDER_MODEL_ID

BYOK: the well-known model name used to identify model capabilities and token limits.

Docs: COPILOT_PROVIDER_MODEL_ID
-no example
COPILOT_PROVIDER_WIRE_MODEL

BYOK: the model name sent to the provider API; for Azure OpenAI, the deployment name.

Docs: COPILOT_PROVIDER_WIRE_MODEL
-no example
COPILOT_PROVIDER_MAX_PROMPT_TOKENS

BYOK: maximum number of prompt tokens allowed in a request.

Docs: COPILOT_PROVIDER_MAX_PROMPT_TOKENS
-no example
COPILOT_PROVIDER_MAX_OUTPUT_TOKENS

BYOK: maximum number of tokens generated in a response.

Docs: COPILOT_PROVIDER_MAX_OUTPUT_TOKENS
-no example
COPILOT_PROVIDER_GHES_HOST

The hostname of your GitHub Enterprise Server instance (required for the GHES provider).

Docs: COPILOT_PROVIDER_GHES_HOST
export COPILOT_PROVIDER_GHES_HOST=YOUR-GHES-HOSTNAME
COPILOT_PROVIDER_GHES_TOKEN

A personal access token for the GitHub Enterprise Server instance; always required for GHES inference.

Docs: COPILOT_PROVIDER_GHES_TOKEN
export COPILOT_PROVIDER_GHES_TOKEN="$(gh auth token --hostname YOUR-GHES-HOSTNAME)"
GH_ENTERPRISE_TOKEN

For GHES automation, set to the personal access token (or use GITHUB_ENTERPRISE_TOKEN) together with GH_HOST; takes precedence over gh auth login credentials for the same host.

Docs: GH_ENTERPRISE_TOKEN
export GH_ENTERPRISE_TOKEN="$(gh auth token --hostname YOUR-GHES-HOSTNAME)"
PREFIX

Install script: custom install directory.

Default /usr/local as root, $HOME/.local otherwise

Docs: PREFIX
curl -fsSL https://gh.io/copilot-install | VERSION="v0.0.369" PREFIX="$HOME/custom" bash
VERSION

Install script: install a specific version.

Default: latest version

Docs: VERSION
curl -fsSL https://gh.io/copilot-install | VERSION="v0.0.369" PREFIX="$HOME/custom" bash
GITHUB_COPILOT_OIDC_MCP_TOKEN

When an MCP server sets oidc: true, the CLI injects OIDC tokens into this variable (or suffixed GITHUB_COPILOT_OIDC_MCP_TOKEN_<SUFFIX> variants) referenced in a local server's env block.

Docs: GITHUB_COPILOT_OIDC_MCP_TOKEN
-no example
PLUGIN_DATA

Points to a persistent, writable directory for an installed plugin; expandable as ${PLUGIN_DATA} (aliases CLAUDE_PLUGIN_DATA, COPILOT_PLUGIN_DATA) in stdio server args, env, and cwd.

Docs: PLUGIN_DATA
-no example
COPILOT_PLUGIN_DIR_ONLY

Set to true in the runtime environment to suppress automatic plugin discovery so only --plugin-dir directories load.

true

Docs: COPILOT_PLUGIN_DIR_ONLY
-no example
COPILOT_OTEL_ENABLED

Explicitly enable OpenTelemetry export; not required if OTEL_EXPORTER_OTLP_ENDPOINT is set.

Default false

Docs: COPILOT_OTEL_ENABLED
-no example
OTEL_EXPORTER_OTLP_ENDPOINT

OTLP endpoint URL; setting it automatically enables OTel.

Docs: OTEL_EXPORTER_OTLP_ENDPOINT
-no example
COPILOT_OTEL_EXPORTER_TYPE

OTel exporter type; auto-selects file when COPILOT_OTEL_FILE_EXPORTER_PATH is set.

otlp-http (default), file

Docs: COPILOT_OTEL_EXPORTER_TYPE
-no example
OTEL_EXPORTER_OTLP_PROTOCOL

OTLP HTTP wire protocol for the otlp-http exporter.

http/json (default), http/protobuf

Docs: OTEL_EXPORTER_OTLP_PROTOCOL
-no example
OTEL_EXPORTER_OTLP_TRACES_PROTOCOL

Override OTEL_EXPORTER_OTLP_PROTOCOL for traces only.

Docs: OTEL_EXPORTER_OTLP_TRACES_PROTOCOL
-no example
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL

Override OTEL_EXPORTER_OTLP_PROTOCOL for metrics only.

Docs: OTEL_EXPORTER_OTLP_METRICS_PROTOCOL
-no example
OTEL_SERVICE_NAME

Service name in resource attributes.

Default github-copilot

Docs: OTEL_SERVICE_NAME
-no example
OTEL_RESOURCE_ATTRIBUTES

Extra resource attributes as comma-separated key=value pairs, percent-encoding special characters.

Docs: OTEL_RESOURCE_ATTRIBUTES
-no example
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT

Capture full prompt, response, and tool argument content in OTel signals; may include sensitive data.

Default false

Docs: OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT
-no example
OTEL_LOG_LEVEL

OTel diagnostic log level.

NONE, ERROR, WARN, INFO, DEBUG, VERBOSE, ALL

Docs: OTEL_LOG_LEVEL
-no example
COPILOT_OTEL_FILE_EXPORTER_PATH

Write all OTel signals to this file as JSON-lines; setting it automatically enables OTel.

Docs: COPILOT_OTEL_FILE_EXPORTER_PATH
-no example
COPILOT_OTEL_SOURCE_NAME

Instrumentation scope name for tracer and meter.

Default github.copilot

Docs: COPILOT_OTEL_SOURCE_NAME
-no example
OTEL_EXPORTER_OTLP_HEADERS

Auth headers for the OTLP exporter (for example, Authorization=Bearer token).

Docs: OTEL_EXPORTER_OTLP_HEADERS
-no example
Copilot CLI config files
PathDescriptionExample
~/.copilot

Directory where the CLI stores configuration, session history, logs, and customizations. Relocate with COPILOT_HOME.

Docs: ~/.copilot
-no example
~/.copilot/settings.json

Primary user configuration file (JSONC) with global defaults for all repositories. Invalid or unknown keys are listed in the /settings Problems tab; symlinked files are written through.

Docs: ~/.copilot/settings.json
-no example
~/.copilot/config.json

Automatically managed application state (authentication, installed plugins, trusted folders). User settings left here are ignored.

Docs: ~/.copilot/config.json
-no example
~/.copilot/copilot-instructions.md

Personal custom instructions applied to all sessions.

Docs: ~/.copilot/copilot-instructions.md
-no example
~/.copilot/instructions/

Additional personal *.instructions.md files loaded alongside copilot-instructions.md for all sessions.

Docs: ~/.copilot/instructions/
-no example
~/.copilot/mcp-config.json

User-level MCP server definitions (mcpServers key), available in all sessions; lowest priority among MCP sources.

Docs: ~/.copilot/mcp-config.json
-no example
~/.copilot/lsp-config.json

User-level LSP server definitions under an lspServers key; manage with /lsp or edit directly.

Docs: ~/.copilot/lsp-config.json
-no example
~/.copilot/providers.json

User-level BYOK provider and model registry with providers and models keys; overridden in location by COPILOT_PROVIDERS_CONFIG.

Docs: ~/.copilot/providers.json
-no example
~/.copilot/agents/

Personal custom agent definitions (.agent.md files); highest priority custom agent location.

Docs: ~/.copilot/agents/
-no example
~/.copilot/skills/

Personal skills, each in a subdirectory with a SKILL.md file; project skills of the same name take precedence.

Docs: ~/.copilot/skills/
-no example
~/.copilot/hooks/

User-level hook configuration *.json files applied to all sessions ($COPILOT_HOME/hooks/ when set).

Docs: ~/.copilot/hooks/
-no example
~/.copilot/extensions/

User-level extension files available across sessions.

Docs: ~/.copilot/extensions/
-no example
~/.copilot/permissions-config.json

Saved tool and directory approvals keyed by absolute location path (locations.<key>.tool_approvals and allowed_directories). Does not support deny, ask, or URL rules.

Docs: ~/.copilot/permissions-config.json
-no example
~/.copilot/session-state/

Session history by session ID (events.jsonl plus plans, checkpoints, tracked files); enables --resume and --continue.

Docs: ~/.copilot/session-state/
-no example
~/.copilot/command-history-state/

Command history used for Ctrl+R reverse search and history navigation; managed automatically.

Docs: ~/.copilot/command-history-state/
-no example
~/.copilot/session-store.db

SQLite database for cross-session data such as checkpoint indexing and search; rebuild with /chronicle reindex.

Docs: ~/.copilot/session-store.db
-no example
~/.copilot/logs/

Session log files named process-{timestamp}-{pid}.log, plus extension logs under logs/extensions/.

Docs: ~/.copilot/logs/
-no example
~/.copilot/installed-plugins/

Installed plugin files: installed-plugins/{marketplace-name}/{plugin-name}/ for marketplace installs and installed-plugins/_direct/ for direct installs.

Docs: ~/.copilot/installed-plugins/
-no example
~/.copilot/plugin-data/

Persistent data for installed plugins, managed by the plugins themselves.

Docs: ~/.copilot/plugin-data/
-no example
~/.copilot/ide/

Lock files and state for IDE integrations; managed automatically.

Docs: ~/.copilot/ide/
-no example
~/.copilot/mcp-oauth-config/

MCP OAuth token, registration, and PKCE fallback files when keychain storage is unavailable.

Docs: ~/.copilot/mcp-oauth-config/
-no example
~/.copilot/mcp-secrets/

Fallback storage and index for MCP secret placeholders when keychain storage is unavailable.

Docs: ~/.copilot/mcp-secrets/
-no example
.github/copilot/settings.json

Repository settings committed and shared with collaborators; only a fixed set of keys is supported, each with a fail-closed merge policy.

Docs: .github/copilot/settings.json
-no example
.github/copilot/settings.local.json

Personal repository overrides that should not be committed (add to .gitignore); same schema as repository settings and takes precedence over them.

Docs: .github/copilot/settings.local.json
-no example
.claude/settings.json

Read (with .claude/settings.local.json) for the shared cross-tool subset of repository settings, such as companyAnnouncements, disableAllHooks, enabledPlugins, extraKnownMarketplaces, and hooks.

Docs: .claude/settings.json
-no example
.github/allowed_models.txt

Plain-text allowlist restricting which built-in models a repository can use: glob lines, # comments, and exactly one fallback: MODEL-ID. Does not filter BYOK models.

Docs: .github/allowed_models.txt
fallback: gpt-6-astra
.mcp.json

Workspace MCP server configuration loaded from the working directory up to the Git root when the folder is trusted. Migrate from .vscode/mcp.json by remapping servers to mcpServers.

Docs: .mcp.json
jq '{mcpServers: .servers}' .vscode/mcp.json > .mcp.json
.github/mcp.json

Repository MCP server configuration (medium trust), loaded like .mcp.json for trusted folders.

Docs: .github/mcp.json
-no example
.github/lsp.json

Project LSP server configuration applying to everyone in the repository; can disable a server with "disabled": true.

Docs: .github/lsp.json
-no example
.github/hooks/*.json

Repository-level hook configuration files (JSON, version 1).

Docs: .github/hooks/*.json
-no example
/etc/github-copilot/policy.d/*.json

Machine-wide policy hooks (Windows: C:\ProgramData\GitHub\Copilot\policy.d\*.json or HKLM\Software\Policies\GitHub\Copilot). Load first and cannot be disabled by disableAllHooks.

Docs: /etc/github-copilot/policy.d/*.json
-no example
managed-settings.json

File-based MDM managed settings: /etc/github-copilot/managed-settings.json (Linux), /Library/Application Support/GitHubCopilot/managed-settings.json (macOS), %ProgramFiles%\GitHubCopilot\managed-settings.json (Windows). Rejected on POSIX if a symlink, not root-owned, or world-writable.

Docs: managed-settings.json
-no example
com.github.copilot

macOS MDM plist domain for managed settings.

Docs: com.github.copilot
-no example
HKLM\SOFTWARE\Policies\GitHubCopilot

Windows MDM registry location for managed settings.

Docs: HKLM\SOFTWARE\Policies\GitHubCopilot
-no example
.github/copilot-instructions.md

Repository custom instructions read from the Git root and cwd; created or updated by copilot init and /init. Supports @path imports.

Docs: .github/copilot-instructions.md
-no example
AGENTS.md

Custom instructions file read from the Git root and cwd; supports @path imports.

Docs: AGENTS.md
-no example
CLAUDE.md

Custom instructions file read from the Git root and cwd; supports @path imports.

Docs: CLAUDE.md
-no example
GEMINI.md

Custom instructions file read from the Git root and cwd.

Docs: GEMINI.md
-no example
.github/instructions/**/*.instructions.md

Path-scoped instruction files read from the Git root and cwd; scope with paths or applyTo frontmatter.

Docs: .github/instructions/**/*.instructions.md
-no example
.claude/rules/**/*.md

Claude Code rule files read like .github/instructions files; scope with paths (or applyTo) frontmatter.

Docs: .claude/rules/**/*.md
-no example
.github/skills/

Project skills location (highest priority), also inherited from parent directories in monorepos.

Docs: .github/skills/
-no example
.agents/skills/

Alternative project skills location.

Docs: .agents/skills/
-no example
.claude/skills/

Claude-compatible project skills location.

Docs: .claude/skills/
-no example
~/.agents/skills/

Personal agent skills shared across all projects.

Docs: ~/.agents/skills/
-no example
.github/agents/

Project custom agents, loaded from the cwd upward to the Git root (priority 2).

Docs: .github/agents/
-no example
.claude/agents/

Project custom agents, loaded from the cwd upward to the Git root after all .github/agents/ directories (priority 3).

Docs: .claude/agents/
-no example
.claude/commands/

Commands stored as individual .md files, an alternative skill format named after the file; lower priority than same-named skills.

Docs: .claude/commands/
-no example
plugin.json

Plugin manifest. Agent Plugins plugins use plugin.json at the root; legacy plugins check .plugin/plugin.json, plugin.json, .github/plugin/plugin.json, .claude-plugin/plugin.json in order.

Docs: plugin.json
-no example
marketplace.json

Plugin marketplace manifest, checked as marketplace.json, .plugin/marketplace.json, .github/plugin/marketplace.json, .claude-plugin/marketplace.json in order; requires name, owner, plugins.

Docs: marketplace.json
copilot plugin marketplace add /PATH/TO/my-marketplace

More on Copilot CLI

FAQ

How many commands and options does Copilot CLI have?

The official Copilot CLI docs list 578 items: 96 slash commands, 102 CLI flags, 41 subcommands, 69 keyboard shortcuts, 154 settings keys, 67 environment variables and 49 config files. The largest group is settings keys, with 154.

Where does Copilot CLI keep its configuration?

Copilot CLI documents 49 config files and locations, including ~/.copilot, ~/.copilot/settings.json and ~/.copilot/config.json. The docs describe ~/.copilot as: Directory where the CLI stores configuration, session history, logs, and customizations. Relocate with COPILOT_HOME.

Which environment variables does Copilot CLI read?

The docs list 67 environment variables, such as COPILOT_ALLOW_ALL, COPILOT_AUTO_UPDATE, COPILOT_CACHE_HOME and COPILOT_CHILD_OOM_SCORE_ADJ. Each one is in the environment variables table above with what it controls.

Sources

Last verified . Names and examples are copied verbatim from the 12 official pages below, and every row above links the exact section it came from.

Newsletter

Know when your tools change

One email per week. New coding agent releases, the flags and commands they add, and what they mean for how you work.