Copilot CLI reference - Subcommands
Copilot CLI commands and subcommands
Copilot CLI documents 41 subcommands, including copilot, copilot app and copilot completion SHELL. These run as copilot <command> from your shell. Each row gives the docs' description, accepted values and an example where one is documented.
Last verified 2 official pagesFull Copilot CLI reference
| 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 |
The rest of the Copilot CLI reference
FAQ
How many subcommands does Copilot CLI have?
The official Copilot CLI docs list 41 subcommands, including copilot, copilot app and copilot completion SHELL. All of them are in the table above, in the docs' order.
What does copilot do in Copilot CLI?
Launch the interactive user interface.
Where are Copilot CLI subcommands documented?
On 2 official docs pages at docs.github.com, last read on October 17, 2026. Every row in the table links the exact section it came from.
More on Copilot CLI
- Copilot CLI in the tools directoryWhat it is, who makes it and how it fits next to other coding agents.
- Copilot CLI errors and fixes12 error messages, quoted verbatim, with the documented fix for each.
- GitHub Copilot premium requests and usage limitsPlan and tier limits for this tool, copied from the official docs.
Use other models in Copilot CLI
Setup guides from the model-in-tool directory, each with the env vars and base URL from official docs.
Sources
Last verified . Names and examples are copied verbatim from the 2 official pages below, and every row above links the exact section it came from.
Newsletter
Know when your tools change
One email per week. New coding agent releases, the flags and commands they add, and what they mean for how you work.