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
Slash commands96
Own page: Copilot CLI slash commands| Command | Description | Example |
|---|---|---|
/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 |
/search [QUERY] | Search the conversation timeline (alias /find). Docs: /search [QUERY] | -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 |
CLI flags102
Own page: Copilot CLI CLI flags| Flag | Description | Example |
|---|---|---|
--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 |
Subcommands41
Own page: Copilot CLI subcommands| Command | Description | Example |
|---|---|---|
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 |
Keyboard shortcuts69
Own page: Copilot CLI keyboard shortcuts| Shortcut | Description |
|---|---|
@ 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) |
Settings154
Own page: Copilot CLI settings keys| 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 |
Environment variables67
Own page: Copilot CLI environment variables| Variable | Description | Example |
|---|---|---|
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 |
Config files49
Own page: Copilot CLI config files| Path | Description | Example |
|---|---|---|
~/.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
- 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.
Related reading
- Claude Code vs Codex vs Copilot CLI: Local Sandboxes ComparedCopilot CLI local sandboxing is GA. How it compares with Claude Code and Codex on defaults, network, credentials, Windows, and what still runs outside.
- GitHub Copilot CLI With Ollama: Local Models and the New SandboxCopilot CLI 1.0.94 finds local Ollama models from /model and ships an OS-level sandbox. Setup, the 4k context trap, and why local is not offline.
- Claude Sonnet 5.5 Developer Guide: Pricing and API ChangesClaude Sonnet 5.5 costs $2/$10 per million tokens, and cache reads fell to $0.10 on October 7 - half of Opus 5.5 on every line. Pricing math and API changes.
- GitHub Copilot's September Reset: Prepaid Seats, One Unified Agent Experience, Balanced Reviews by DefaultGitHub Copilot September changes: prepaid Business and Enterprise seats, one unified agent experience and Balanced reviews by default. What it means for teams.
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.
- docs.github.com/en/copilot/reference/copilot-cli-reference/cli-command-reference395 items
- docs.github.com/en/copilot/reference/copilot-cli-reference/cli-plugin-reference18 items
- docs.github.com/en/copilot/reference/copilot-cli-reference/acp-server3 items
- docs.github.com/en/copilot/how-tos/copilot-cli/use-copilot-cli/chronicle2 items
- docs.github.com/en/copilot/how-tos/copilot-cli/set-up-copilot-cli/add-lsp-servers11 items
- docs.github.com/en/copilot/reference/copilot-cli-reference/cli-config-dir-reference128 items
- docs.github.com/en/copilot/reference/copilot-cli-reference/cli-programmatic-reference1 item
- docs.github.com/en/copilot/reference/hooks-reference4 items
- docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/use-byok-models10 items
- docs.github.com/en/copilot/copilot-on-ghes/set-up-copilot-cli3 items
- docs.github.com/en/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli2 items
- docs.github.com/en/copilot/how-tos/copilot-sdk/features/plugin-directories1 item
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.