Skip to main content

使用 GitHub Copilot CLI

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

谁可以使用此功能?

GitHub Copilot 命令行界面 (CLI) 适用于所有 Copilot 计划。 如果从组织收到 Copilot,必须在组织的设置中启用 Copilot 命令行界面(CLI) 策略。

          GitHub Copilot 的命令行接口(CLI)允许您直接从终端使用 Copilot 。 有关详细信息,请参阅“[AUTOTITLE](/copilot/concepts/agents/about-copilot-cli)”。

先决条件

安装 Copilot 命令行界面(CLI)。 请参阅“安装 GitHub Copilot CLI”。

使用 Copilot 命令行界面(CLI)

  1. 在终端中,导航到包含要使用的代码的文件夹。

  2. 输入 copilot 以开始 Copilot 命令行界面(CLI)。

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

    重要

    在此 GitHub Copilot 命令行界面 (CLI) 会话期间, Copilot 可能会尝试在此文件夹中和下方读取、修改和执行文件。 只有当你信任此位置中的文件时,才应继续操作。 有关受信任目录的详细信息,请参阅“关于 GitHub Copilot CLI”。

  3. 选择以下选项之一:

           **1.Yes, proceed**:
    
    
           Copilot 只能在此会话中处理此位置的文件。
    
    
           **2.Yes, and remember this folder for future sessions**:
    

    对于此次会话以及未来的会话,你都信任此文件夹中的文件。 在从此文件夹启动 Copilot 命令行界面(CLI) 时,不会再次询问你。 只有在确定Copilot始终可以安全地使用此位置中的文件时,才选择此选项。

           **3.No, exit (Esc)**:
    

    您的Copilot 命令行界面(CLI)会话结束。

  4. 如果当前未登录 GitHub,系统会提示你使用 /login 斜杠命令。 输入此命令并按照屏幕说明完成身份验证流程。

  5. 在 CLI 中输入提示。

    这可以是简单的聊天问题,也可以是执行特定任务的请求 Copilot ,例如修复 bug、向现有应用程序添加功能或创建新应用程序。

    有关提示的一些示例,请参“关于 GitHub Copilot CLI”。

  6. 当 Copilot 想要使用可以修改或执行文件的工具时,例如 touchchmodnodesed它会要求你批准使用该工具。

    选择以下选项之一:

           **1. Yes**:
    

    允许 Copilot 使用此工具。 下次 Copilot 想要使用此工具时,它将要求你再次批准它。

           **2.Yes, and approve TOOL for the rest of the running session**:
    

    允许 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斜杠命令来选择和恢复交互式命令行界面会话,这样就可以使用保存的上下文从您离开的地方继续。 可以在 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 文件(称为自定义代理)定义自己的代理资料内容,这些文件指定代理应具备哪些专业知识、可以使用哪些工具,以及响应方式的任何特定说明。

可以在用户、存储库或组织/企业级别定义 自定义代理 :

类型位置Scope
用户级别 自定义智能体本地 ~/.copilot/agents 目录所有项目
存储库级别 自定义智能体
          `.github/agents` 本地存储库和远程存储库中的目录 | 当前项目 |

| 组织和企业级 自定义智能体 | 组织或企业/agents 存储库中的 .github-private 目录 | 组织及企业帐户下的所有项目 |

在命名冲突的情况下,系统级代理会替代存储库级代理,存储库级代理将替代组织级代理。

          自定义智能体 可通过三种方式使用:
  • 使用 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)附带已配置的GitHubMCP 服务器。 此 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:允许查看会话统计信息,包括:

  • 当前会话中使用的高级请求量

  • 会话持续时间

  • 已编辑代码的总行数

  • 每个模型的令牌使用情况细分

  •         `/context`:提供当前令牌使用情况的直观概述
    
  •         `/compact`:手动压缩对话历史记录以释放上下文空间
    
            GitHub Copilot 命令行界面 (CLI) 当聊天接近令牌限制的 95% 时,会自动压缩后台的历史记录,而不会中断工作流。
    

启用所有权限

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

切换推理可见性

Ctrl+T 在生成响应时显示或隐藏模型的推理过程。 此设置在会话之间持续存在,使你能够观察 Copilot 如何解决复杂的问题。

了解更多

有关可用于 Copilot 命令行界面(CLI) 的命令行选项和斜杠命令的完整列表,请执行以下其中一项操作:

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

有关其他信息,请在终端中使用以下命令之一:

  •         **配置设置**:
    

    copilot help config

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

  • 环境变量Copilot 命令行界面(CLI):

    copilot help environment

  •         **可用日志记录级别**:
    

    copilot help logging

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

    copilot help permissions

反馈

如果你对 GitHub Copilot 命令行界面 (CLI) 有任何反馈,请通过交互式会话中的 /feedback 斜杠命令选择相应选项告知我们。 你可以选择参与私密反馈调查、提交 bug 报告或提出新功能建议。

后续步骤

          Copilot 命令行界面(CLI) 可以充当对话助理,回答问题并帮助你以交互方式编写代码。 除了聊天之外, Copilot 命令行界面(CLI) 还支持一系列代理模式,允许你以更大的自主性委托任务。

可以使用代理 Copilot 命令行界面(CLI) 来支持完整的任务生命周期,从委派工作到查看结果:

  •         **自主委托任务**:在 autopilot 模式下运行 Copilot 命令行界面(CLI) 以完成多步骤任务,而无需在每个步骤中批准。 请参阅“[AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli-agents/delegate-tasks-to-cca)”。
    
  •         **调用自定义代理**:调用专为特定任务定制的专用代理,例如代码评审、文档或安全审核。 请参阅“[AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli-agents/invoke-custom-agents)”。
    
  •         **引导代理**:在任务执行期间指导和优化代理行为,以保持工作正常。请参阅 [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli-agents/steer-agents)。
    
  •         **请求代码评审**:使用Copilot 命令行界面(CLI) 获取对代码更改的 AI 驱动评审。 请参阅“[AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli-agents/agentic-code-review)”。
    

延伸阅读

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/cli-best-practices)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-config-dir-reference)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/acp-server)