Skip to main content

使用 GitHub Copilot CLI

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

谁可以使用此功能?

GitHub Copilot 命令行界面 与所有 Copilot 计划兼容。 如果从组织收到 Copilot,则必须在组织的“Settings”中启用 Copilot 命令行界面(CLI) 策略。

通过 GitHub Copilot 的命令行接口 (CLI),你可以直接从终端使用 Copilot。 有关详细信息,请参阅“AUTOTITLE”。

先决条件

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

使用 Copilot 命令行界面(CLI)

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

  2. 输入 以启动 Copilot 命令行界面(CLI)。

    Copilot 会要求你确认是否信任此文件夹中的文件。

    重要

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

  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,系统将提示你使用 斜杠命令完成登录。 输入此命令并按照屏幕说明完成身份验证流程。

  5. 在 CLI 中输入提示。

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

    有关提示的一些示例,请参“AUTOTITLE”。

  6. 当 Copilot 需要调用可能修改或执行文件的工具时 (例如 touchchmodnodesed),它将请求你批准使用该工具。

    选择以下选项之一:

    1. Yes:

    允许 Copilot 使用此工具。 下一次 Copilot 想要使用该工具时,它会再次请求你的批准。

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

    允许 Copilot 使用此工具(包括任何选项),且在当前运行的会话剩余时间内,无需再次请求批准。 任何相同类型的挂起并行权限请求都将被自动批准。 在未来的会话中,你需要再次批准该命令。

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

           **3. 否,并告诉Copilot应该如何做出不同的调整(Esc)**:
    

    Copilot 将不会运行此命令。 相反,它会终止当前操作,并等待你输入下一个提示。 可指示 Copilot 继续执行此任务,但需要采用不同的方法。

    例如,如果你要求 Copilot 创建 Bash 脚本,但希望避免使用 Copilot 推荐的脚本,你可以中止当前操作并输入新提示,例如:。

    当你拒绝工具权限请求时,还可以向 Copilot 提供关于拒绝的内联反馈,以便它可以调整其方法而不会完全停止。

提示

通过以下建议优化你的 Copilot 命令行界面(CLI) 使用体验。

停止当前正在运行的操作

如果你输入了一个提示,而后在 Copilot 仍处于“思考中”状态时,决定想要阻止它完成该任务,按下 Esc 即可。

使用计划模式

计划模式允许在编写任何代码之前,与 Copilot 协作制定实施计划。 按 ShiftTab 可循环进出计划模式。

在提示中包含特定文件

要向提示添加特定文件,请使用 后跟文件的相对路径。 例如: 或 。 这会将文件的内容添加到你的提示中,作为 Copilot 的上下文。

开始键入文件路径时,匹配的路径会显示在提示框下方。 使用箭头键选择路径,然后按 Tab 在提示中补全该路径。

处理其他路径下的文件

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

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

/add-dir /path/to/directory

如果要处理的所有文件都位于其他位置,则可以使用 或 斜杠命令切换当前工作目录,无需启动新的 Copilot 命令行界面(CLI) 会话。

/cwd /path/to/directory

运行 shell 命令

无需调用模型即可在输入前添加 以直接运行 shell 命令。

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

恢复交互式会话

可以使用命令行选项或斜杠命令来选择和恢复交互式命令行界面会话,这样就可以使用保存的上下文从您离开的地方继续。 可以在GitHub上启动Copilot 编码智能体会话,然后使用GitHub Copilot 命令行界面将该会话引入到您的本地环境中。

提示

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

copilot --continue

使用自定义指令

你可以通过向当前工作的仓库添加自定义指令,来提升 Copilot 的性能表现。 自定义指令是以自然语言编写的描述性内容,以 Markdown 文件形式存储于仓库中。 当你在该仓库中执行操作时,这些指令将自动包括在你输入的提示中。 这有助于 Copilot 更深入地理解你的项目上下文,从而更精准地响应你的提示。

Copilot 命令行界面(CLI) 支持:

  • 文件中仓库范围的指令。
  • 路径特定的指令文件:。
  • 智能体文件,例如 。

有关详细信息,请参阅“AUTOTITLE”。

使用 自定义代理

自定义智能体 是 Copilot 的专用版本。 自定义智能体 可帮助 Copilot 处理独特的工作流、特定的编码约定和专家用例。

Copilot 命令行界面(CLI) 包含用于常见任务的默认 自定义代理 组:

代理人 说明
探究 执行快速代码库分析,让你无需添加到主上下文即可提出有关代码的问题。
任务 执行测试和构建等命令,在成功时提供简要总结,在失败时提供完整输出。
常规用途 处理复杂的多步骤任务,这些任务需要完整的工具集和高质量的推理,在单独的上下文中运行,以使主对话保持清晰焦点。
代码评审 审查更改时,专注于揭示真正的问题,尽量减少干扰。

如果 CLI 使用的 AI 模型认为将任务委派给一个使用具有特定专业知识的 自定义智能体 运行的子智能体进程可以更有效地完成工作,则此模型可以选择这样做。 此模型同样可以选择直接在主智能体中处理工作。

你可以使用名为 代理资料 的 Markdown 文件定义自己的 自定义代理,这些文件指定智能体应具备哪些专业知识、可使用哪些工具,及其回答方式的任何特定说明。

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

类型位置Scope
用户级别 自定义智能体本地 目录所有项目
仓库级别 自定义智能体本地存储库和远程存储库中的 目录当前项目
组织和企业层面 自定义智能体组织或企业 存储库中的 目录组织及企业帐户下的所有项目

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

自定义智能体 可通过三种方式使用:

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

    /agent
    
  • 在提示中直接调用 自定义智能体:

    Use the refactoring agent to refactor this code block
    

    Copilot 将自动推断要使用的智能体。

  • 与命令行选项一起指定你要使用的 自定义智能体。 例如:

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

有关详细信息,请参阅“AUTOTITLE”。

使用技能

可以创建技能来增强 Copilot 的能力,以使用指令、脚本和资源执行专门任务。

有关详细信息,请参阅“AUTOTITLE”。

添加 MCP 服务器

Copilot 命令行界面(CLI) 已预先配置好了 GitHub MCP 服务器。 通过此 MCP 服务器,你可与 GitHub.com 上的资源进行交互,例如可从 CLI 合并拉取请求。

要扩展 Copilot 命令行界面(CLI) 中可用的功能,你可以添加更多 MCP 服务器:

  1. 使用以下斜杠命令:

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

  3. 按 CtrlS 以保存详细信息。

你已配置的 MCP 服务器详细信息存储在 文件中,该文件默认位于 目录下。 可通过设置 环境变量来更改此位置。 有关服务器定义的 JSON 结构的信息,请参阅“AUTOTITLE”。

上下文管理

Copilot 命令行界面(CLI) 提供了多个斜杠命令,帮助你监控和管理上下文窗口:

  • :允许查看会话统计信息,包括:

    • 当前会话中使用的高级请求量
    • 会话持续时间
    • 已编辑代码的总行数
    • 每个模型的令牌使用情况细分
  • :提供当前令牌使用情况的直观概述

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

当会话接近令牌限制的 95% 时,GitHub Copilot 命令行界面 会在后台自动压缩历史记录,而不会中断工作流程。

启用所有权限

对于你信任 Copilot 可以自由运行的情况,可以使用 或 标志一次启用所有权限。

切换推理可见性

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

了解更多

要查看可用于 Copilot 命令行界面(CLI) 的完整命令行选项和斜杠命令列表,可执行以下任一操作:

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

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

  • 配置设置:

    copilot help config

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

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

    copilot help environment

  • 可用日志记录级别:

    copilot help logging

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

    copilot help permissions

反馈

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

后续步骤

Copilot 命令行界面(CLI) 可以充当对话助手,从而回答问题并帮助以交互方式编写代码。 除了聊天之外,Copilot 命令行界面(CLI) 还支持一系列代理模式,这些模式可用于委派任务,从而提升自主性。

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

  • 自主委派任务:在 Autopilot 模式下运行 Copilot 命令行界面(CLI),以完成多步骤任务,而无需每个步骤都进行审批。 请参阅“AUTOTITLE”。
  • 调用自定义代理:调用专为特定任务定制的专用代理,例如代码评审、文档或安全审核。 请参阅“AUTOTITLE”。
  • 引导代理:在任务执行期间指导和优化代理行为,以保持工作正常。请参阅 AUTOTITLE。
  • 请求代码审查:使用 Copilot 命令行界面(CLI) 获取对代码更改的 AI 驱动型审查。 请参阅“AUTOTITLE”。

延伸阅读

  • AUTOTITLE
  • AUTOTITLE
  • AUTOTITLE