跳至主要内容

使用 GitHub Copilot CLI

了解如何在命令行中使用 GitHub Copilot。

谁可以使用此功能?

GitHub Copilot CLI 在所有 Copilot 计划中均可用。如果您通过组织获取 Copilot,则必须在组织设置中启用 Copilot CLI 策略。

GitHub Copilot 的命令行界面(CLI)允许您直接在终端使用 Copilot。欲了解更多信息,请参阅 关于 GitHub Copilot CLI

先决条件

安装 Copilot CLI。请参阅 安装 GitHub Copilot CLI

使用 Copilot CLI

  1. 在终端中,导航到包含您想要处理的代码的文件夹。

  2. 输入 copilot 启动 Copilot CLI。

    Copilot 将要求您确认信任此文件夹中的文件。

    重要提示

    在此 GitHub Copilot CLI 会话期间,Copilot 可能会尝试读取、修改和执行该文件夹及其子文件夹中的文件。仅当您信任此位置的文件时才继续操作。有关受信任目录的更多信息,请参阅 关于 GitHub Copilot CLI

  3. 请选择以下选项

    1. 是,继续:

    Copilot 可仅在本次会话期间使用此位置的文件。

    2. 是,并记住此文件夹用于未来的会话:

    您信任此文件夹中的文件,适用于本次及未来的会话。以后从此文件夹启动 Copilot CLI 时将不再询问。仅当您确信 Copilot 在此位置的文件始终安全时才选择此选项。

    3. 否,退出(Esc):

    结束您的 Copilot CLI 会话。

  4. 如果您当前未登录 GitHub,系统将提示使用 /login 斜杠命令。输入该命令并按照屏幕上的说明进行身份验证。

  5. 在 CLI 中输入提示。

    这可以是一个简单的聊天提问,或请求 Copilot 执行特定任务,例如修复错误、为现有应用添加功能,或创建新应用。

    有关提示示例,请参阅 关于 GitHub Copilot CLI

  6. 当 Copilot 想使用可能修改或执行文件的工具时——例如 touchchmodnodesed——它会请求您批准使用该工具。

    请选择以下选项

    1. 是:

    允许 Copilot 使用此工具。下次 Copilot 想使用该工具时,将再次请求您的批准。

    2. 是,并在本次运行会话的余下时间批准该工具:

    允许 Copilot 在当前会话的剩余时间内使用此工具(无论选项为何)而无需再次询问。任何同类型的待处理并行权限请求将自动批准。以后会话中仍需重新批准此命令。

    为许多工具(如 chmod)选择此选项很有用,因为它避免您在同一会话中重复批准类似命令。然而,请注意此选项的安全影响。例如,对 rm 命令选择此选项,将允许 Copilot 在当前目录及其子目录中删除任何文件而无需您的批准。

    3. 否,并告诉 Copilot 其它做法(Esc):

    Copilot 将不会运行该命令,而是结束当前操作并等待您的下一个提示。您可以指示 Copilot 继续任务但采用不同的方法。

    例如,如果您让 Copilot 创建一个 Bash 脚本,但不想使用 Copilot 提供的脚本,您可以停止当前操作并输入新提示,例如:Continue the previous task but include usage instructions in the script

    当您拒绝工具权限请求时,也可以向 Copilot 提供内联反馈,帮助其在不完全停止的情况下调整方法。

提示

使用以下提示来优化您使用 Copilot CLI 的体验。

停止当前运行的操作

如果您输入了提示后决定在 Copilot 仍在“思考”时停止其完成任务,请按 Esc

使用计划模式

计划模式让您在编写任何代码之前,与 Copilot 合作制定实现计划。按 Shift+Tab 可在计划模式间切换。

在提示中包含特定文件

要在提示中添加特定文件,请使用 @ 加上文件的相对路径。例如:Explain @config/ci/ci-required-checks.ymlFix the bug in @src/app.js。这会将文件内容作为上下文添加到您的提示中供 Copilot 使用。

当您开始输入文件路径时,匹配的路径会显示在提示框下方。使用方向键选择路径并按 Tab 完成提示中的路径输入。

处理位于不同位置的文件

为完成任务,Copilot 可能需要处理位于当前工作目录之外的文件。如果您在交互式会话中输入的提示要求 Copilot 修改当前目录之外的文件,它将请求您批准访问该文件所在的目录。

您也可以随时使用斜杠命令手动添加受信任目录

/add-dir /path/to/directory

如果您想要处理的所有文件都位于其他位置,可使用 /cwd/cd 斜杠命令切换当前工作目录,而无需启动新的 Copilot CLI 会话。

/cwd /path/to/directory

运行 Shell 命令

您可以在输入前加上 ! 直接运行 Shell 命令,而无需调用模型。

!git clone https://github.com/github/copilot-cli

恢复交互式会话

您可以使用 --resume 命令行选项或 /resume 斜杠命令来选择并恢复交互式 CLI 会话,从而在保存的上下文中继续上次的工作。您可以在 GitHub 上启动 Copilot 云代理会话,然后使用 GitHub Copilot CLI 将该会话带到本地环境中。

提示

要快速恢复最近关闭的本地会话,请在终端中输入以下内容

copilot --continue

使用自定义指令

您可以通过向所在仓库添加自定义指令来提升 Copilot 的性能。自定义指令是保存在仓库 Markdown 文件中的自然语言描述。它们会在您于该仓库中工作时自动加入到您输入的提示中,帮助 Copilot 更好地理解项目上下文并响应您的提示。

Copilot CLI 支持

  • 仓库范围的指令位于 .github/copilot-instructions.md 文件中。
  • 路径特定的指令文件:.github/instructions/**/*.instructions.md
  • 代理文件,例如 AGENTS.md

欲了解更多信息,请参阅 为 GitHub Copilot CLI 添加自定义指令

使用自定义代理

自定义代理是 Copilot 的专业化版本。自定义代理帮助 Copilot 处理独特的工作流、特定的编码约定以及专业用例。

Copilot CLI 包含一组用于常见任务的默认自定义代理

智能体 描述
探索 执行快速代码库分析,使您能够在不向主要上下文添加内容的情况下提问代码相关问题。
任务 执行测试、构建等命令,在成功时提供简要摘要,失败时提供完整输出。
通用 处理需要完整工具集和高质量推理的复杂多步骤任务,在独立上下文中运行,以保持主要对话的清晰聚焦。
代码审查 审查变更,关注只呈现真实问题,降低噪音。

CLI 使用的 AI 模型可以在判断将任务委派给使用特定专长的自定义代理的子代理进程能更有效完成工作时进行委派。模型也可能选择直接在主代理中处理工作。

您可以使用 Markdown 文件(称为代理配置文件)定义自己的自定义代理,指定代理应具备的专长、可使用的工具以及其响应方式的具体指令。

您可以在用户、仓库或组织/企业层级定义自定义代理

类型位置范围
用户级自定义代理本地 ~/.copilot/agents 目录所有项目
仓库级自定义代理本地和远程仓库中的 .github/agents 目录当前项目
组织和企业级自定义代理组织或企业的 .github-private 仓库中的 /agents 目录组织和企业帐户下的所有项目

在命名冲突的情况下,系统级代理会覆盖仓库级代理,而仓库级代理会覆盖组织级代理。

自定义代理可通过三种方式使用

  • 在 CLI 的交互界面中使用斜杠命令,从可用的自定义代理列表中选择

    /agent
    
  • 在提示中直接调用自定义代理

    Use the refactoring agent to refactor this code block
    

    Copilot 将自动推断您想使用的代理。

  • 使用命令行选项指定要使用的自定义代理。例如

    copilot --agent=refactor-agent --prompt "Refactor this code block"
    

欲了解更多信息,请参阅 为 Copilot 云代理创建自定义代理

使用技能

您可以创建技能,通过指令、脚本和资源提升 Copilot 执行专门任务的能力。

更多信息请参阅 为 GitHub Copilot CLI 创建代理技能

添加 MCP 服务器

Copilot CLI 已预先配置了 GitHub MCP 服务器。该 MCP 服务器使您能够与 GitHub.com 上的资源交互,例如允许您在 CLI 中合并拉取请求。

要扩展 Copilot CLI 可用的功能,您可以添加更多 MCP 服务器。

  1. 使用以下斜杠命令

    /mcp add
    
  2. 填写要添加的 MCP 服务器的详细信息,使用 Tab 键在字段之间切换。

  3. Ctrl+S 保存信息。

已配置的 MCP 服务器详情存储在 mcp-config.json 文件中,默认位于 ~/.copilot 目录。可通过设置 COPILOT_HOME 环境变量更改此位置。有关服务器定义的 JSON 结构信息,请参阅 使用模型上下文协议 (MCP) 扩展 GitHub Copilot 云代理

上下文管理

Copilot CLI 提供多种斜杠命令,帮助您监控和管理上下文窗口。

  • /usage:让您查看会话统计信息,包括

    • 当前会话中使用的高级请求数量
    • 会话时长
    • 编辑的代码总行数
    • 每个模型的 token 使用细分
  • /context:提供当前 token 使用情况的可视化概览

  • /compact:手动压缩对话历史以释放上下文空间

当您的对话接近 token 限额的 95% 时,GitHub Copilot CLI 会在后台自动压缩历史记录,而不会中断您的工作流。

启用所有权限

在您信任 Copilot 自由运行的情形下,可以使用 --allow-all--yolo 标志一次性启用所有权限。

切换推理可见性

Ctrl+T 可在模型生成响应时显示或隐藏其推理过程。此设置会跨会话保留,方便您观察 Copilot 处理复杂问题的方式。

了解更多

要获取可在 Copilot CLI 中使用的完整命令行选项和斜杠命令列表,请执行以下操作之一

  • 在交互式会话的提示框中输入 ?
  • 在终端中输入 copilot help

欲获取更多信息,请在终端中使用以下命令之一

  • 配置设置:

    copilot help config

    您可以通过编辑位于默认 ~/.copilot 目录下的 config.json 文件来调整配置设置。可通过设置 COPILOT_HOME 环境变量更改此位置。

  • 影响 Copilot CLI 的环境变量

    copilot help environment

  • 可用的日志级别:

    copilot help logging

  • 权限:允许或拒绝工具使用

    copilot help permissions

反馈

如果您对 GitHub Copilot CLI 有任何反馈,请在交互式会话中使用 /feedback 斜杠命令并选择相应选项告诉我们。您可以完成私人反馈调查、提交错误报告或建议新功能。

后续步骤

Copilot CLI 可作为对话助理运行,回答问题并帮助您交互式编写代码。除聊天功能外,Copilot CLI 还支持多种代理模式,使您能够以更高的自主性委派任务。

您可以在 Copilot CLI 中与代理协作,支撑完整的任务生命周期,从委派工作到审查结果。

延伸阅读

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