跳至主要内容

GitHub Copilot CLI 编程参考

查找以编程方式运行 Copilot CLI 的选项。

除了交互式运行 Copilot CLI 外,您还可以在单个命令中直接向 CLI 传递提示,而无需进入交互会话。这使您能够在脚本、CI/CD 管道和自动化工作流中以编程方式使用 Copilot。欲了解更多信息,请参阅运行 GitHub Copilot CLI 的编程方式

本文阐述了在编程运行 Copilot CLI 时特别相关的命令行选项和环境变量。

要查看所有可用选项的完整列表,请参阅GitHub Copilot CLI 命令参考,或在终端中输入以下命令。

Shell
copilot help

命令行选项

在编程运行 Copilot CLI 时,有许多命令行选项特别有用。

选项描述
-p PROMPT在非交互模式下执行提示。CLI 运行提示后即退出。
-s抑制统计信息和装饰,只输出代理的响应。非常适合在脚本中管道输出。
--add-dir=DIRECTORY将目录添加到 allowed‑paths 列表。可多次使用以添加多个目录。当代理需要读取/写入当前工作目录之外的文件时,这很有用。
--agent=AGENT指定要使用的自定义代理。
--allow-all (or --yolo)授予 CLI 所有权限。等同于 --allow-all-tools --allow-all-paths --allow-all-urls
--allow-all-paths完全禁用文件路径验证。当不需要路径限制时,这是一种比 --add-dir 更简单的替代方案。
--allow-all-tools允许所有工具在无需对每个工具单独授权的情况下运行。
--allow-all-urls允许访问所有 URL,无需对每个 URL 单独授权。
--allow-tool=TOOL ...有选择地为特定工具授予权限。要授权多个工具,请使用用引号包裹的逗号分隔列表。
--allow-url=URL ...允许代理获取指定的 URL 或域名。当工作流需要访问已知的网络端点时,这很有用。要授权多个 URL,请使用用引号包裹的逗号分隔列表。
--deny-tool=TOOL ...拒绝使用特定工具。用于在受限工作流中限制代理的操作。要拒绝多个工具,请使用用引号包裹的逗号分隔列表。
--model=MODEL选择要使用的 AI 模型(例如 gpt-5.2claude-sonnet-4.6)。在可复现的工作流中固定模型时非常有用。参见下文的选择模型
--no-ask-user阻止代理暂停以请求额外的用户输入。
--secret-env-vars=VAR ...将输出中需要被遮蔽的环境变量值列出。要指定多个变量,请使用用引号包裹的逗号分隔列表。此选项对于防止密钥泄露到日志中至关重要。默认会遮蔽 GITHUB_TOKENCOPILOT_GITHUB_TOKEN 的值。
--share=PATH在非交互完成后将会话记录导出为 Markdown 文件(默认 ./copilot-session-<ID>.md)。有助于审计或归档代理的操作。请注意,会话记录可能包含敏感信息。
--share-gist在完成后将会话记录发布为私密的 GitHub gist。便于在 CI 中共享结果。请注意,会话记录可能包含敏感信息。

用于 --allow-tool 选项的工具

您可以使用 --allow-tool 选项指定多种类型的工具。

工具类型它控制的内容
shell执行 shell 命令。
写入创建或修改文件。
读取读取文件或目录。
url从 URL 获取内容。
记忆向代理的持久记忆中存储新事实。这不会影响使用已有记忆。参见GitHub Copilot 中的代理记忆概述
MCP 服务器从特定 MCP 服务器调用工具。使用服务器配置的名称作为标识符,例如 github。参见为 GitHub Copilot CLI 添加 MCP 服务器

工具过滤器

shellwriteurl 与 MCP 服务器工具类型允许在括号中指定过滤器,以控制具体允许哪些工具。

工具类型示例示例说明
shellshell(git:*)允许所有 Git 子命令(git pushgit status 等)。
shell(npm test)仅允许精确命令 npm test
写入write(.github/copilot-instructions.md)允许 CLI 写入此特定路径。
write(README.md)允许 CLI 写入任意路径以 /README.md 结尾的文件。
urlurl(github.com)允许 CLI 访问 github.com 上的 HTTPS URL。
url(https://:3000)允许 CLI 访问本地开发服务器,并显式指定协议与端口。
url(https://*.github.com)允许 CLI 访问任何 GitHub 子域名(例如 api.github.com)。
url(https://docs.github.com/copilot/*)允许访问本站点上的 Copilot 文档。
MCP 服务器github(create_issue)仅允许来自 github MCP 服务器的 create_issue 工具。

注意

通配符仅在 shell 中用于匹配指定工具的所有子命令,在 url 中用于匹配主机名开头的任意子域,或路径结尾的任意后缀——如上述表格所示。

环境变量

您可以使用环境变量来配置在编程运行时 CLI 的各种行为。此方式在 CI/CD 工作流或其他自动化环境中尤为有用,因为您可能不想在命令行中直接写入某些选项。

变量描述
COPILOT_ALLOW_ALL设置为 true 以获得全部权限。
COPILOT_MODEL设置模型(例如 gpt-5.2claude-sonnet-4.5
COPILOT_HOME设置 CLI 配置文件所在目录(默认为 ~/.copilot)。
COPILOT_GITHUB_TOKEN身份验证令牌(最高优先级)
GH_TOKEN身份验证令牌(第二优先级)
GITHUB_TOKEN身份验证令牌(第三优先级)

要获取有关 Copilot CLI 环境变量的完整信息,请在终端中运行 copilot help environment

选择模型

当您以非交互模式向 Copilot CLI 发送提示时,CLI 使用的模型会在响应输出中显示(前提是未使用 -s--silent 选项)。

您可以使用 --model 选项指定 CLI 应使用的 AI 模型。这让您可以根据提示的需求,在速度、成本与能力之间进行权衡选择最合适的模型。

例如,对于解释代码或生成摘要等简易任务,您可以选择速度快、成本低的模型,例如 Claude Haiku 系列。

Bash
copilot -p "What does this project do?" -s --model claude-haiku-4.5

对于需要更深层次推理的复杂任务——如调试或重构代码——则可以选择更强大的模型,例如 GPT Codex 系列。

Bash
copilot -p "Fix the race condition in the worker pool" \
  --model gpt-5.3-codex \
  --allow-tool='write, shell'

注意

在终端中输入 copilot help 时,--model 选项的描述中会列出所有可用模型的模型标识字符串。

另外,您也可以通过设置 COPILOT_MODEL 环境变量来为当前 shell 会话指定模型。

若希望在多个 shell 会话间保持模型选择,可在 CLI 配置文件中设置 model 键。该文件位于 ~/.copilot/config.json(若已设置 COPILOT_HOME 环境变量,则位于 $COPILOT_HOME/.copilot/config.json)。某些模型还允许您设置推理力度等级,以控制模型在响应前的思考时间。

JSON
{
  "model": "gpt-5.3-codex",
  "reasoning_effort": "low"
}

提示

在交互式会话中使用 /model 斜杠命令是持久化设置模型的最简方式。您通过此命令所作的选择会写入配置文件。

模型优先级

在确定针对给定提示使用哪个模型时,CLI 按如下顺序(从高到低)检查模型的指定来源:

  • 若使用了自定义代理:以自定义代理定义中(若有)指定的模型为准。
  • 命令行中的 --model 选项。
  • COPILOT_MODEL 环境变量。
  • 配置文件中的 model 键(~/.copilot/config.json$COPILOT_HOME/.copilot/config.json)。
  • CLI 的默认模型。

使用自定义代理

您可以通过 --agent 选项将工作委派给专门的代理。更多信息请参阅为 GitHub Copilot CLI 创建与使用自定义代理

在本例中使用了 code-review 代理。这要求已经创建了名为 code-review 的自定义代理。

copilot -p "Review the latest commit" \
  --allow-tool='shell' \
  --agent code-review

延伸阅读

© . This site is unofficial and not affiliated with GitHub, Inc.