GitHub Copilot 的命令行接口(CLI)允许您直接从终端使用 Copilot 。 有关详细信息,请参阅“[AUTOTITLE](/copilot/concepts/agents/about-copilot-cli)”。
先决条件
安装 Copilot 命令行界面(CLI)。 请参阅“安装 GitHub Copilot CLI”。
使用 Copilot 命令行界面(CLI)
-
在终端中,导航到包含要使用的代码的文件夹。
-
输入
copilot以开始 Copilot 命令行界面(CLI)。Copilot 将要求你确认你信任此文件夹中的文件。重要
在此 GitHub Copilot 命令行界面 (CLI) 会话期间, Copilot 可能会尝试在此文件夹中和下方读取、修改和执行文件。 只有当你信任此位置中的文件时,才应继续操作。 有关受信任目录的详细信息,请参阅“关于 GitHub Copilot CLI”。
-
选择以下选项之一:
**1.Yes, proceed**: Copilot 只能在此会话中处理此位置的文件。 **2.Yes, and remember this folder for future sessions**:对于此次会话以及未来的会话,你都信任此文件夹中的文件。 在从此文件夹启动 Copilot 命令行界面(CLI) 时,不会再次询问你。 只有在确定Copilot始终可以安全地使用此位置中的文件时,才选择此选项。
**3.No, exit (Esc)**:您的Copilot 命令行界面(CLI)会话结束。
-
如果当前未登录 GitHub,系统会提示你使用
/login斜杠命令。 输入此命令并按照屏幕说明完成身份验证流程。 -
在 CLI 中输入提示。
这可以是简单的聊天问题,也可以是执行特定任务的请求 Copilot ,例如修复 bug、向现有应用程序添加功能或创建新应用程序。
有关提示的一些示例,请参“关于 GitHub Copilot CLI”。
-
当 Copilot 想要使用可以修改或执行文件的工具时,例如
touch、chmod、node或sed它会要求你批准使用该工具。选择以下选项之一:
**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.yml 或 Fix 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 blockCopilot 将自动推断要使用的代理。 -
指定要使用的 自定义智能体 与命令行选项一起配合使用。 例如:
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 服务器:
-
使用以下斜杠命令:
/mcp add -
填写你想要添加的 MCP 服务器的详细信息,使用 Tab 键在各个字段之间切换。
-
按 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)