Copilot CLI reference - Settings
Copilot CLI settings.json settings
Copilot CLI documents 154 settings keys, including askUser, autoTier and autoUpdate. These keys go in Copilot CLI's settings.json and the other config files it reads. Each row gives the docs' description, accepted values and an example where one is documented.
Last verified 3 official pagesFull Copilot CLI reference
| Key | Description | Example |
|---|---|---|
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 |
footer | Controls status line items; managed by /statusline. object with boolean sub-keys showModelEffort, showDirectory, showBranch, showContextWindow, showQuota, showAgent, showAiUsed, showCodeChanges, showUsername, showSandbox, showYolo, showCustom Docs: footer | copilot config footer.showQuota off |
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 |
The rest of the Copilot CLI reference
FAQ
How many settings keys does Copilot CLI have?
The official Copilot CLI docs list 154 settings keys, including askUser, autoTier and autoUpdate. All of them are in the table above, in the docs' order.
What does askUser do in Copilot CLI?
Allow the agent to ask clarifying questions; false for fully autonomous operation. Values: boolean; default true.
Where are Copilot CLI settings keys documented?
On 3 official docs pages at docs.github.com, last read on October 17, 2026. Every row in the table links the exact section it came from.
More on Copilot CLI
- Copilot CLI in the tools directoryWhat it is, who makes it and how it fits next to other coding agents.
- Copilot CLI errors and fixes12 error messages, quoted verbatim, with the documented fix for each.
- GitHub Copilot premium requests and usage limitsPlan and tier limits for this tool, copied from the official docs.
Use other models in Copilot CLI
Setup guides from the model-in-tool directory, each with the env vars and base URL from official docs.
Sources
Last verified . Names and examples are copied verbatim from the 3 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.