Skip to main content

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将目录添加到允许的路径列表。 这可以多次用于添加多个目录。 当代理需要读取/写入当前工作目录之外时非常有用。
--agent=AGENT指定要使用的 自定义智能体。
          `--allow-all`(或 `--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 或域。 当工作流需要 Web 访问已知终结点时非常有用。 对于多个 URL,请使用带引号的逗号分隔列表。 | | --deny-tool=TOOL ... | 拒绝特定工具。 可用于限制代理在锁定工作流中可以执行的操作。 对于多个工具,请使用带引号的逗号分隔列表。 | | --model=MODEL | 选择 AI 模型(例如, gpt-5.2claude-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` 选项的工具

您可以使用选项指定各种工具。

工具类型它控制的内容
shell执行 shell 命令。
写入创建或修改文件。
读取读取文件或目录。
url从 URL 提取内容。
内存将新事实存储到代理的永久性内存中。 这不会影响使用现有内存。 请参阅“关于GitHub Copilot的自主记忆”。
MCP-SERVER从特定 MCP 服务器调用工具。 使用服务器配置的名称作为标识符,例如 github。 请参阅“为 GitHub Copilot 命令行界面 (CLI) 添加 MCP 服务器”。

工具筛选器

使用shellwriteurl和MCP服务器工具类型,您可以在括号中指定一个筛选器,以控制允许哪些特定工具。

工具类型示例示例的说明
          **命令行界面** | `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(http://localhost:3000) | 允许 CLI 使用显式协议和端口访问本地开发服务器。 | | | url(https://*.github.com) | 允许 CLI 访问任何 GitHub 子域(例如)。 api.github.com | | | url(https://docs.github.com/copilot/*) | 允许在此站点访问 Copilot 文档。 | | MCP-SERVER | github(create_issue) | 仅允许来自 github MCP 服务器的 create_issue 工具。 |

注意

仅支持 shell 通配符以匹配指定工具的所有子命令,并在 url 主机名开头匹配任何子域,或在路径末尾匹配任何路径后缀,如上表所示。

环境变量

可以使用环境变量在以编程方式运行时配置 CLI 行为的各个方面。 这对于在 CI/CD 工作流或其他自动化环境中设置配置特别有用,你可能不希望直接在命令行中指定某些选项。

Variable说明
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 模型:

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 使用代理。 这要求已使用此名称创建自定义代理。

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

延伸阅读

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-plugin-reference)