除了交互式运行 Copilot CLI 外,您还可以在单个命令中直接向 CLI 传递提示,而无需进入交互会话。这使您能够在脚本、CI/CD 管道和自动化工作流中以编程方式使用 Copilot。欲了解更多信息,请参阅运行 GitHub Copilot CLI 的编程方式。
本文阐述了在编程运行 Copilot CLI 时特别相关的命令行选项和环境变量。
要查看所有可用选项的完整列表,请参阅GitHub Copilot CLI 命令参考,或在终端中输入以下命令。
copilot help
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.2 或 claude-sonnet-4.6)。在可复现的工作流中固定模型时非常有用。参见下文的选择模型。 |
--no-ask-user | 阻止代理暂停以请求额外的用户输入。 |
--secret-env-vars=VAR ... | 将输出中需要被遮蔽的环境变量值列出。要指定多个变量,请使用用引号包裹的逗号分隔列表。此选项对于防止密钥泄露到日志中至关重要。默认会遮蔽 GITHUB_TOKEN 与 COPILOT_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 服务器。 |
工具过滤器
shell、write、url 与 MCP 服务器工具类型允许在括号中指定过滤器,以控制具体允许哪些工具。
| 工具类型 | 示例 | 示例说明 |
|---|---|---|
| shell | shell(git:*) | 允许所有 Git 子命令(git push、git status 等)。 |
shell(npm test) | 仅允许精确命令 npm test。 | |
| 写入 | write(.github/copilot-instructions.md) | 允许 CLI 写入此特定路径。 |
write(README.md) | 允许 CLI 写入任意路径以 /README.md 结尾的文件。 | |
| url | url(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.2、claude-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 系列。
copilot -p "What does this project do?" -s --model claude-haiku-4.5
copilot -p "What does this project do?" -s --model claude-haiku-4.5
对于需要更深层次推理的复杂任务——如调试或重构代码——则可以选择更强大的模型,例如 GPT Codex 系列。
copilot -p "Fix the race condition in the worker pool" \ --model gpt-5.3-codex \ --allow-tool='write, shell'
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)。某些模型还允许您设置推理力度等级,以控制模型在响应前的思考时间。
{
"model": "gpt-5.3-codex",
"reasoning_effort": "low"
}
{
"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