Skip to main content

GitHub Copilot CLI 命令参考

查找有助于你有效使用 Copilot 命令行界面(CLI) 的命令和键盘快捷键。

命令行命令

Command目的
copilot启动交互式用户界面。
copilot help [topic]显示帮助信息。 帮助主题包括:config、、commands``environmentloggingpermissions
copilot init初始化此存储库的Copilot自定义说明
copilot update下载并安装最新版本。
copilot version显示版本信息并检查更新。
copilot login通过 OAuth 设备流使用 Copilot 进行身份验证。 接受 --host HOST 指定 GitHub 主机 URL (默认值: https://github.com) 。
copilot logout注销 GitHub 并删除存储的凭据。
copilot plugin管理插件和插件市场。

交互式界面中的全局快捷方式

Shortcut目的
@ FILENAME将文件内容包含在上下文中。
          <kbd>Ctrl</kbd>+然后 <kbd>X</kbd>`/`  | 开始键入提示后,这样就可以运行斜杠命令,例如,如果要更改模型,而无需重新键入提示。 |

| Esc | 取消当前操作。 | | ! COMMAND | 在本地 shell 中执行命令,绕过 Copilot。 | | Ctrl+C | 取消操作/清除输入。 按两次退出。 | | Ctrl+D | 关闭。 | | Ctrl+L | 清除屏幕。 | | Shift+Tab | 在标准模式、计划和 Autopilot 模式之间循环。 |

交互式界面中的时间线快捷方式

Shortcut目的
ctrl+o虽然提示输入中没有任何内容,但此操作会展开 Copilot 的响应时间线中的最近项目,以显示更多详细信息。
ctrl+e虽然提示输入中没有任何内容,但此操作会展开 Copilot 的响应时间线中的所有项目。
ctrl+t展开/折叠响应中推理的显示。
Shortcut目的
          <kbd>Ctrl</kbd>+<kbd>A</kbd>        | 移动到行首(输入时)。 |

| Ctrl+B | 移动到上一个字符。 | | Ctrl+E | 移动到行的末尾(键入时)。 | | Ctrl+F | 移动到下一个字符。 | | Ctrl+H | 删除上一个字符。 | | Ctrl+K | 从光标删除到行尾。 | | Ctrl+U | 从光标删除到行首。 | | Ctrl+W | 删除上一个单词。 | | 主页 | 移动到当前行的开头。 | | 结束 | 移动到当前行的末尾。 | | Ctrl+Home | 移动到文本的开头。 | | Ctrl+结束 | 移动到文本的末尾。 | | +/ | 按单词移动光标。 | | / | 浏览命令历史。 |

交互式接口中的斜杠命令

Command目的
/add-dir PATH将目录添加到允许的文件访问列表。
/agent浏览并选择可用代理(如果有)。
          `/allow-all`、`/yolo`                               | 启用所有权限(工具、路径和 URL)。 |

| /clear/new | 清除对话历史记录。 | | /compact | 汇总对话历史记录以减少上下文窗口使用情况。 | | /context | 显示上下文窗口令牌使用情况和可视化效果。 | | /cwd/cd [PATH] | 更改工作目录或显示当前目录。 | | /delegate [PROMPT] | 使用 AI 生成的拉取请求提交更改到远程存储库。 | | /diff | 查看当前目录中所做的更改。 | | /exit/quit | 退出 CLI。 | | /experimental [on\|off] | 切换或打开/关闭实验功能。 | | /feedback | 提供有关 CLI 的反馈。 | | /fleet [PROMPT] | 支持对任务的某些部分进行并行子代理执行。 请参阅“使用 /fleet 命令并行运行任务”。 | | /help | 显示交互式命令的帮助。 | | /ide | 连接到 IDE 工作区。 | | /init | 为此存储库初始化 Copilot 自定义指令和智能体功能。 | | /list-dirs | 显示允许访问文件的所有目录。 | | /login | 登录 Copilot。 | | /logout | 退出 Copilot。 | | /lsp [show\|test\|reload\|help] [SERVER-NAME] | 管理语言服务器配置。 | | /mcp [show\|add\|edit\|delete\|disable\|enable] [SERVER-NAME] | 管理 MCP 服务器配置。 | | /model/models [MODEL] | 选择要使用的 AI 模型。 | | /plan [PROMPT] | 在编码之前创建实现计划。 | | /plugin [marketplace\|install\|uninstall\|update\|list] [ARGS...] | 管理插件和插件市场。 | | /rename NAME | 重命名当前会话(/session rename 的别名)。 | | /reset-allowed-tools | 重置允许的工具列表。 | | /resume [SESSION-ID] | 通过从列表中选择(可选指定会话 ID)切换到其他会话。 | | /review [PROMPT] | 运行代码评审代理以分析更改。 | | /session [checkpoints [n]\|files\|plan\|rename NAME] | 显示会话信息和工作区摘要。 请使用子命令查看详细信息。 | | /share [file\|gist] [PATH] | 将会话共享到 Markdown 文件或 GitHub Gist。 | | /skills [list\|info\|add\|remove\|reload] [ARGS...] | 管理技能以提升能力。 | | /terminal-setup | 为多行输入支持配置终端(Shift+EnterCtrl+Enter)。 | | /theme [show\|set\|list] [auto\|THEME-ID] | 查看或配置终端主题。 | | /usage | 显示会话使用情况指标和统计信息。 | | /user [show\|list\|switch] | 管理当前 GitHub 用户。 |

要获取所有可用的斜杠命令的完整列表,请在 CLI 的交互式界面中输入 /help

命令行选项

选项目的
--acp启动代理客户端协议服务器。
--add-dir PATH将目录添加到允许的文件访问列表(可多次使用)。
--add-github-mcp-tool TOOL添加一个工具,以便为 GitHub MCP 服务器启用,而不是默认 CLI 子集(可多次使用)。 将 * 用于所有工具。
--add-github-mcp-toolset TOOLSET添加工具集以启用 GitHub MCP 服务器,而不是默认 CLI 子集(可多次使用)。 对所有工具集使用 all
--additional-mcp-config JSON仅为此会话添加 MCP 服务器。 服务器配置可以作为 JSON 字符串或文件路径(前缀) @提供。 从 ~/.copilot/mcp-config.json 扩充配置。 覆盖任何已安装的同名 MCP 服务器配置。
--agent AGENT指定要使用的 自定义智能体。
--allow-all启用所有权限(等效于 --allow-all-tools --allow-all-paths --allow-all-urls)。
--allow-all-paths禁用文件路径验证并允许访问任何路径。
--allow-all-tools允许所有工具在不确认的情况下自动运行。 以编程方式使用 CLI 时是必需的(env: COPILOT_ALLOW_ALL)。
--allow-all-urls允许在没有确认的情况下访问所有 URL。
--allow-tool [TOOLS...]CLI 有权使用的工具。 不会提示输入权限。
--allow-url [URLS...]允许访问特定的网址或域。
--alt-screen [VALUE]使用终端备用屏幕缓冲区(onoff)。
--autopilot在提示模式下启用 Autopilot 延续。 请参阅“允许 GitHub Copilot CLI 自主工作”。
--available-tools [TOOLS...]只有这些工具可供模型使用。
--banner显示启动横幅。
--bash-env [VALUE]启用 BASH_ENV 对 bash shell(onoff) 的支持。
--config-dir PATH设置配置目录(默认值: ~/.copilot)。
--continue恢复最新的会话。
--deny-tool [TOOLS...]CLI 没有使用权限的工具。 不会提示输入权限。
--deny-url [URLS...]拒绝访问特定 URL 或域,优先于 --allow-url
--disable-builtin-mcps禁用所有内置 MCP 服务器(当前: github-mcp-server)。
--disable-mcp-server SERVER-NAME禁用特定的 MCP 服务器(可以多次使用)。
--disable-parallel-tools-execution禁用工具的并行执行(LLM 仍可以进行并行工具调用,但它们将按顺序执行)。
--disallow-temp-dir防止自动访问系统临时目录。
--enable-all-github-mcp-tools启用所有 GitHub MCP 服务器工具,而不是默认 CLI 子集。
          `--add-github-mcp-toolset`和`--add-github-mcp-tool`选项被覆盖。 |

| --excluded-tools [TOOLS...] | 这些工具将不适用于模型。 | | --experimental | 启用实验性功能(使用 --no-experimental 进行禁用)。 | | -h--help | 显示帮助。 | | -i PROMPT--interactive PROMPT | 启动交互式会话并自动执行此提示。 | | --log-dir DIRECTORY | 设置日志文件目录(默认值: ~/.copilot/logs/)。 | | --log-level LEVEL | 设置日志级别(选项:none、、error``warninginfodebugall``default)。 | | --max-autopilot-continues COUNT | Autopilot 模式下的最大延续消息数(默认值:无限制)。 请参阅“允许 GitHub Copilot CLI 自主工作”。 | | --model MODEL | 设置要使用的 AI 模型。 | | --no-alt-screen | 禁用终端备用屏幕缓冲区。 | | --no-ask-user | ask_user禁用该工具(代理在不提出问题的情况下自主工作)。 | | --no-auto-update | 禁用自动下载 CLI 更新。 | | --no-bash-env | 禁用 BASH_ENV 对 bash shell 的支持。 | | --no-color | 禁用所有颜色输出。 | | --no-custom-instructions | 禁止从 AGENTS.md 相关文件中加载自定义指令。 | | --no-experimental | 禁用实验性功能。 | | -p PROMPT--prompt PROMPT | 以编程方式执行提示(完成后退出)。 | | --plain-diff | 禁用富差异渲染(通过你的 git 配置指定的差异工具进行语法高亮显示)。 | | --resume [SESSION-ID] | 通过从列表中选择(可选)指定会话 ID 来恢复以前的交互式会话。 | | -s--silent | 仅输出代理响应(不使用使用情况统计信息),对于使用 -p脚本编写非常有用。 | | --screen-reader | 启用屏幕阅读器优化。 | | --share [PATH] | 程序化会话结束后,将会话共享到 Markdown 文件(默认路径:./copilot-session-<ID>.md)。 | | --share-gist | 在编程会话完成后,将会话共享到机密的 GitHub gist。 | | --stream MODE | 启用或禁用流模式(模式选项: onoff)。 | | -v--version | 显示版本信息。 | | --yolo | 启用所有权限(等效于 --allow-all)。 |

有关命令和选项的完整列表,请运行 copilot help

工具权限模式

          `--allow-tool`和`--deny-tool`选项接受格式为`Kind(argument)`的权限模式。 该参数是可选的, 省略它与该类型的所有工具匹配。
种类Description示例模式
shellShell 命令执行
          `shell(git push)`、`shell(git:*)`、`shell` |

| write | 文件创建或修改 | writewrite(src/*.ts) | | read | 文件或目录读取 | readread(.env) | | SERVER-NAME | MCP 服务器工具调用 | MyMCP(create_issue)MyMCP | | url | 通过 web 抓取或 shell 访问 URL | url(github.com)url(https://*.api.com) | | memory | 将事实存储到代理内存 | memory |

对于 shell 规则,:* 后缀会与命令主干匹配,然后跟一个空格,以避免部分匹配。 例如, shell(git:*) 匹配 git pushgit pull 不匹配 gitea

即使设置了拒绝规则, --allow-all 拒绝规则始终优先于允许规则。

# Allow all git commands except git push
copilot --allow-tool 'shell(git:*)' --deny-tool 'shell(git push)'

# Allow a specific MCP server tool
copilot --allow-tool 'MyMCP(create_issue)'

# Allow all tools from a server
copilot --allow-tool 'MyMCP'

环境变量

VariableDescription
COPILOT_MODEL设置 AI 模型。
COPILOT_ALLOW_ALL将其设置为 true 以自动允许所有权限(相当于 --allow-all)。
COPILOT_AUTO_UPDATE设置为 false 禁用自动更新。
COPILOT_CUSTOM_INSTRUCTIONS_DIRS自定义说明中额外目录的逗号分隔列表。
COPILOT_SKILLS_DIRS技能附加目录的逗号分隔列表。
COPILOT_EDITOR用于交互式编辑的编辑器命令(在$VISUAL$EDITOR检查后)。 如果未设置,则默认为vi
COPILOT_GITHUB_TOKEN身份验证令牌。 优先于 GH_TOKENGITHUB_TOKEN
GH_TOKEN身份验证令牌。 优先于 GITHUB_TOKEN.
GITHUB_TOKEN身份验证令牌。
XDG_CONFIG_HOME重写配置目录。 默认值:$HOME/.copilot
XDG_STATE_HOME覆盖状态目录 默认值:$HOME/.copilot
USE_BUILTIN_RIPGREPfalse 设置为使用系统的 ripgrep,而不是使用捆绑的版本。
PLAIN_DIFF设置为 true 禁用丰富的差异呈现。
COLORFGBG检测深色/浅色终端背景的回退机制
COPILOT_CLI_ENABLED_FEATURE_FLAGS要启用的功能标志的逗号分隔列表(例如)。 "SOME_FEATURE,SOME_OTHER_FEATURE"

配置文件设置

用户设置存储在 ~/.copilot/config.json. 项目级设置可以放置在 .copilot/settings.json (提交到存储库)或 .copilot/settings.local.json (个人替代,添加到 .gitignore)中。 设置在用户、项目和本地之间层级传递,越具体的范围会优先于越一般的范围。 命令行标志和环境变量始终优先。

密钥类型违约Description
allowed_urlsstring[][]允许的 URL 或域,无需提示。
alt_screenbooleanfalse使用终端备用屏幕缓冲区。
auto_updatebooleantrue自动下载 CLI 更新。
banner
          `"always"`
          \|
          `"once"`
          \|
          `"never"`
         | `"once"` | 动画横幅显示频率。 |

| bash_env | boolean | false | 启用 BASH_ENV 对 bash shell 的支持。 | | beep | boolean | true | 当需要注意时播放一声提示音。 | | compact_paste | boolean | true | 将大型粘贴折叠到压缩令牌中。 | | custom_agents.default_local_only | boolean | false | 仅使用本地自定义代理。 | | denied_urls | string[] | [] | 这些 URL 或域被阻止(优先于 allowed_urls)。 | | experimental | boolean | false | 启用实验性功能。 | | include_coauthor | boolean | true | 向 Co-authored-by 代理提交的 git 提交添加预告片。 | | launch_messages | string[] | [] | 启动时随机显示的自定义消息。 | | log_level | "none" | "error" | "warning" | "info" | "debug" | "all" | "default" | "default" | 日志记录详细程度。 | | model | string | varies | 要使用的 AI 模型(请参阅 /model 命令)。 | | reasoning_effort | "low" | "medium" | "high" | "xhigh" | "medium" | 扩展思维的推理工作水平。 更高的级别使用更多的计算。 | | render_markdown | boolean | true | 在终端输出中呈现 Markdown。 | | screen_reader | boolean | false | 启用屏幕阅读器优化。 | | stream | boolean | true | 启用流响应。 | | store_token_plaintext | boolean | false | 当没有系统密钥链可用时,将身份验证令牌以纯文本形式存储在配置文件中。 | | streamer_mode | boolean | false | 隐藏预览模型名称和配额详细信息(录制时很有用)。 | | theme | "auto" | "dark" | "light" | "auto" | 终端颜色主题。 | | trusted_folders | string[] | [] | 具有预授予文件访问权限的文件夹。 | | update_terminal_title | boolean | true | 在终端标题中显示当前意向。 |

挂钩参考

钩子是在会话的特定生命周期节点执行的外部命令,用于实现自定义自动化、安全控制和集成。 挂钩配置文件会自动从 .github/hooks/*.json 存储库中加载。

钩子配置格式

钩子配置文件使用带有版本的 JSON 格式1:

{
  "version": 1,
  "hooks": {
    "preToolUse": [
      {
        "type": "command",
        "bash": "your-bash-command",
        "powershell": "your-powershell-command",
        "cwd": "optional/working/directory",
        "env": { "VAR": "value" },
        "timeoutSec": 30
      }
    ]
  }
}
字段类型必选Description
type"command"是的必须是 "command"
bash字符串其中一个 bash/powershellUnix 的 Shell 命令。
powershell字符串其中一个 bash/powershell适用于 Windows 的 Shell 命令。
cwd字符串命令的工作目录(相对于存储库根目录或绝对目录)。
env对象要设置的环境变量(支持变量扩展)。
timeoutSec数字超时时间(以秒为单位) 默认值:30

挂钩事件

事件触发时间已处理的输出
sessionStart新的或已恢复的会话开始。
sessionEnd会话终止。
userPromptSubmitted用户提交提示。
preToolUse在每个工具执行之前。是 — 可以允许、拒绝或修改。
postToolUse每个工具完成操作后。
agentStop主代理完成回合。是 — 可以阻止和强制继续。
subagentStop子代理完成。是 — 可以阻止和强制延续。
errorOccurred执行期间发生错误。

          `preToolUse` 决策控制

挂钩 preToolUse 可以通过将 JSON 对象写入 stdout 来控制工具执行。

字段价值观Description
permissionDecision
          `"allow"`、`"deny"`、`"ask"` | 工具是否已执行? 空输出使用默认行为。 |

| permissionDecisionReason | 字符串 | 显示给代理的原因。 决策 "deny"时是必要的。 | | modifiedArgs | 对象 | 替换工具参数以使用,而不是使用原始参数。 |

          `agentStop`
           / 
          `subagentStop` 决策控制
字段价值观Description
decision
          `"block"`、`"allow"` | 
          `"block"` 强制另一个代理将 `reason` 作为提示。 |

| reason | 字符串 | 当decision"block"时,提示下一轮。 |

挂钩匹配工具名称

工具名称Description
bash执行 shell 命令(Unix)。
powershell执行 shell 命令(Windows)。
view读取文件内容。
edit修改文件内容。
create创建新文件。
glob按模式查找文件。
grep搜索文件内容。
web_fetch抓取网页。
task运行子代理任务。

如果配置了同一类型的多个挂钩,则它们按顺序执行。 对于 preToolUse,如果任何挂钩返回 "deny",则阻止该工具。 挂钩故障(非零退出代码或超时)会记录并跳过,它们永远不会阻止代理执行。

MCP 服务器配置

MCP 服务器向 CLI 代理提供其他工具。 在~/.copilot/mcp-config.json中配置持久性服务器。 使用 --additional-mcp-config 来为单个会话添加服务器。

传输类型

类型Description必填字段
local / stdio本地进程通过 stdin/stdout 进行通信。
          `command`、`args` |

| http | 使用可流式 HTTP 传输的远程服务器。 | url | | sse | 使用服务器发送事件 (Server-Sent Events) 传输的远程服务器。 | url |

本地服务器配置字段

字段必选Description
command是的用于启动服务器的命令。
args是的命令参数(数组)。
tools是的要启用的工具:["*"],可以是所有工具或特定工具名称的列表。
env环境变量。 支持$VAR${VAR}``${VAR:-default}扩展。
cwd服务器的工作目录。
timeout工具调用超时(以毫秒为单位)。
type
          `"local"` 或 `"stdio"`。 默认值:`"local"`。 |

远程服务器配置字段

字段必选Description
type是的
          `"http"` 或 `"sse"`。 |

| url | 是的 | 服务器 URL。 | | tools | 是的 | 要启用的工具。 | | headers | 否 | HTTP 标头。 支持变量扩展。 | | oauthClientId | 否 | 静态 OAuth 客户端 ID(跳过动态注册)。 | | oauthPublicClient | 否 | OAuth 客户端是否为公共客户端。 默认值:true。 | | timeout | 否 | 工具调用超时(以毫秒为单位)。 |

筛选器映射

控制如何使用服务器配置中的filterMapping字段来处理 MCP 工具输出。

模式Description
none无筛选。
markdown将输出格式化为 Markdown。
hidden_characters删除隐藏或控制字符。 违约。

内置 MCP 服务器

CLI 包括内置 MCP 服务器,这些服务器在没有其他设置的情况下可用。

ServerDescription
github-mcp-serverGitHubAPI 集成:问题、拉取请求、提交、代码搜索和 GitHub Actions。
playwright浏览器自动化:导航、单击、键入、屏幕截图和表单处理。
fetch通过该工具发送的 HTTP 请求。
time时间实用工具: get_current_timeconvert_time

用于 --disable-builtin-mcps 禁用所有内置服务器,或 --disable-mcp-server SERVER-NAME 禁用特定服务器。

技能指南

功能是 Markdown 文件,用来扩展 CLI 的能力。 每个技能都位于其自己的目录中,其中包含一个 SKILL.md 文件。 调用(通过 /SKILL-NAME 或自动由代理调用)时,技能的内容将注入到会话中。

技能前置元数据字段

字段类型必选Description
name字符串是的技能的唯一标识符。 仅字母、数字和连字符。 最多 64 个字符。
description字符串是的技能的作用以及何时使用它。 最多 1024 个字符。
allowed-toolsString 或 String[]技能处于活动状态时自动允许的工具的逗号分隔列表或 YAML 数组。 将 "*" 用于所有工具。
user-invocable布尔用户是否可以调用技能 /SKILL-NAME。 默认值:true
disable-model-invocation布尔阻止代理自动调用此技能。 默认值:false

技能位置

技能将按照优先顺序从这些位置加载(在重复名称中,首次找到的优先)。

位置ScopeDescription
.github/skills/项目特定于项目的技能。
.agents/skills/项目替代项目位置。
.claude/skills/项目与 Claude 兼容的位置。
父母 .github/skills/继承Monorepo 父目录支持。
~/.copilot/skills/个人适用于所有项目的个人技能。
~/.claude/skills/个人与 Claude 兼容的个人定位设置。
插件目录插件已安装插件中的技能。
COPILOT_SKILLS_DIRSCustom其他目录(逗号分隔)。

命令(可选技能格式)

命令是存储为单个 .md 文件的 .claude/commands/技能的替代方法。 命令名称派生自文件名。 命令文件使用简化的格式(不需要 name 字段)和支持 descriptionallowed-tools以及 disable-model-invocation。 命令的优先级低于具有相同名称的技能。

自定义代理参考

自定义代理是在 Markdown 文件中定义的专用 AI 代理。 文件名(减扩展名)将成为代理 ID。 使用 .agent.md.md 用作文件扩展名。

内置代理

代理人默认模型Description
exploreclaude-haiku-4.5快速代码库浏览。 搜索文件、读取代码和回答问题。 提供不超过300字的简明答案。 可以安全地并行运行。
taskclaude-haiku-4.5命令执行(测试、构建、代码检查)。 成功时返回简要摘要,失败时返回全部输出。
code-reviewclaude-sonnet-4.5高信噪比代码审查。 分析代码差异中的缺陷、安全问题和逻辑错误。
general-purposeclaude-sonnet-4.5支持复杂多步骤任务的全功能代理。 在单独的上下文窗口中运行。

自定义代理程序前端字段

字段类型必选Description
name字符串显示名称。 默认为文件名。
description字符串是的说明显示在代理列表和task 工具中。
model字符串此代理的 AI 模型。 未设置时,继承外部代理的模型。
tools字符串[]代理可用的工具。 默认值: ["*"] (所有工具)。
mcp-servers对象要连接的 MCP 服务器。 使用与~/.copilot/mcp-config.json相同的模式。
infer布尔允许主代理自动委派。 默认值:true

自定义代理位置

Scope位置
项目
          `.github/agents/` 或 `.claude/agents/` |

| 用户 | ~/.copilot/agents/~/.claude/agents/ | | 插件 | <plugin>/agents/ |

项目级代理优先于用户级代理。 插件代理的优先级最低。

权限审批结果

当 CLI 提示执行作的权限时,可以使用以下键进行响应。

密钥影响
y允许此特定请求一次。
n拒绝此特定请求一次。
!允许会话其余部分的所有类似请求。
#拒绝会话其余部分的所有类似请求。
?显示有关请求的详细信息。

运行 /clear 或启动新会话时,会话审批会重置。

FlagDescription
AUTOPILOT_MODEexperimental自动运行模式。
BACKGROUND_AGENTSstaff在后台运行代理。
QUEUED_COMMANDSstaff代理运行时的队列命令。
LSP_TOOLSon语言服务器协议工具。
PLAN_COMMANDon交互式规划模式。
AGENTIC_MEMORYon跨会话的持久内存。
CUSTOM_AGENTSon自定义代理定义。