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

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

Copilot CLI subcommands
CommandDescriptionExample
copilot

Launch the interactive user interface.

Docs: copilot
-no example
copilot app

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

Docs: copilot app
-no example
copilot completion SHELL

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

bash, zsh, fish

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

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

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

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

Display help information, optionally for a topic.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Docs: copilot plugin
-no example
copilot plugin install SPECIFICATION

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

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

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

Remove a plugin (aliases remove, rm).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Replace the authority, preserving its current trust state.

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

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

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

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

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

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

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

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

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

Enable a skill by name.

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

Disable a skill by name.

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

Download and install the latest version.

Docs: copilot update
-no example
copilot version

Display version information and check for updates.

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

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

Docs: copilot workflow run WORKFLOW-NAME
copilot workflow run WORKFLOW-NAME \ --args @workflow-input.json \ --silent --output-format json

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

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.