通过 GitHub Copilot 的命令行接口 (CLI),你可以直接从终端使用 Copilot。 有关详细信息,请参阅“关于 GitHub Copilot CLI”。
先决条件
安装 Copilot 命令行界面(CLI)。 请参阅“安装 GitHub Copilot CLI”。
使用 Copilot 命令行界面(CLI)
-
在终端中,导航到包含要使用的代码的文件夹。
-
输入
copilot以启动 Copilot 命令行界面(CLI)。Copilot 会要求你确认是否信任此文件夹中的文件。
重要
在此次 GitHub Copilot 命令行界面 会话期间,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 可循环进出计划模式。
在 Copilot 思考时引导对话
在 Copilot 思考时与其交互。 发送后续消息以引导对话往不同的方向发展,或在 Copilot 完成当前响应后排队处理其他指令。
在提示中包含特定文件
要向提示添加特定文件,请使用 @ 后跟文件的相对路径。 例如: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
使 Copilot 自主工作
你可以告诉 Copilot 使用其最佳判断来自主完成任务,而不是让 CLI 在任务的每个决策点提示你输入。 为此,请使用 CLI 的 autopilot 模式。
可通过两种方法使用 autopilot 模式:
-
**交互:** 在交互式会话中,按 <kbd>Shift</kbd>+<kbd>Tab</kbd> ,直到状态栏中显示“autopilot”。 如果系统提示选择 Autopilot 模式的权限,请允许完全权限,然后输入提示。 -
**以编程方式:** 直接在命令中传递 CLI 提示,并包含 `--autopilot` 选项。 例如,若要使用具有完全权限的 Autopilot 模式,将其限制为 10 个延续,请输入 `copilot --autopilot --yolo --max-autopilot-continues 10 -p“你的提示在这里”`。
有关详细信息,请参阅“允许 GitHub Copilot CLI 自主工作”。
将任务委托给 Copilot 编码智能体
使用委托命令,可以将当前会话推送到 GitHub 上的 Copilot 编码智能体。 这使你能够在移交工作时保留 Copilot 完成任务所需的所有上下文。
可以使用斜杠命令来委托任务,然后输入提示信息:
/delegate complete the API integration tests and fix any failing edge cases
或者,在提示前面添加 & 以委托它。
& complete the API integration tests and fix any failing edge cases
Copilot 将要求提交任何未标记的更改,作为它创建的新分支中的检查点。 Copilot 编码智能体 将打开草稿拉取请求,在后台进行更改,并请求你审阅。
Copilot将在会话开始后提供 GitHub 上的拉取请求和智能体会话的链接。
恢复交互式会话
可以使用--resume命令行选项或/resume斜杠命令来选择和恢复交互式命令行界面会话,这样就可以使用保存的上下文从您离开的地方继续。 可以在GitHub上启动Copilot 编码智能体会话,然后使用GitHub Copilot 命令行界面将该会话引入到您的本地环境中。
提示
若要快速恢复最近关闭的本地会话,请在终端中输入以下内容:
copilot --continue
使用自定义指令
你可以通过向当前工作的仓库添加自定义指令,来提升 Copilot 的性能表现。 自定义指令是以自然语言编写的描述性内容,以 Markdown 文件形式存储于仓库中。 当你在该仓库中执行操作时,这些指令将自动包括在你输入的提示中。 这有助于 Copilot 更深入地理解你的项目上下文,从而更精准地响应你的提示。
Copilot 命令行界面(CLI) 支持:
-
`.github/copilot-instructions.md` 文件中仓库范围的指令。 - 路径特定的指令文件:
.github/instructions/**/*.instructions.md。 - 智能体文件,例如
AGENTS.md。
有关详细信息,请参阅“为GitHub Copilot 命令行界面添加自定义指令”。
使用 自定义代理
自定义智能体 是 Copilot 的专用版本。 自定义智能体 可帮助 Copilot 处理独特的工作流、特定的编码约定和专家用例。
Copilot 命令行界面(CLI) 包含用于常见任务的默认 自定义代理 组:
| 代理人 | Description |
|---|---|
| 探究 | 执行快速代码库分析,让你无需添加到主上下文即可提出有关代码的问题。 |
| 任务 | 执行测试和构建等命令,在成功时提供简要总结,在失败时提供完整输出。 |
| 常规用途 | 处理复杂的多步骤任务,这些任务需要完整的工具集和高质量的推理,在单独的上下文中运行,以使主对话保持清晰焦点。 |
| 代码评审 | 审查更改时,专注于揭示真正的问题,尽量减少干扰。 |
如果 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 命令行界面 创建智能体技能”。
添加 MCP 服务器
Copilot 命令行界面(CLI) 已预先配置好了 GitHub MCP 服务器。 通过此 MCP 服务器,你可与 GitHub.com 上的资源进行交互,例如可从 CLI 合并拉取请求。
要扩展 Copilot 命令行界面(CLI) 中可用的功能,你可以添加更多 MCP 服务器:
-
使用以下斜杠命令:
/mcp add -
填写你想要添加的 MCP 服务器的详细信息,使用 Tab 键在各个字段之间切换。
-
按 Ctrl+S 以保存详细信息。
你已配置的 MCP 服务器详细信息存储在 mcp-config.json 文件中,该文件默认位于 ~/.copilot 目录下。 可通过设置 XDG_CONFIG_HOME 环境变量来更改此位置。 有关服务器定义的 JSON 结构的信息,请参阅“使用模型上下文协议 (MCP) 扩展 GitHub Copilot 编码助手”。
要获取有关在 Copilot 命令行界面(CLI) 中添加和管理 MCP 服务器的详细信息,请参阅 为 GitHub Copilot 命令行界面 添加 MCP 服务器。
上下文管理
Copilot 命令行界面(CLI) 提供了多个斜杠命令,帮助你监控和管理上下文窗口:
-
`/usage`:允许查看会话统计信息,包括:- 当前会话中使用的高级请求量
- 会话持续时间
- 已编辑代码的总行数
- 每个模型的令牌使用情况细分
-
`/context`:提供当前令牌使用情况的直观概述 -
`/compact`:手动压缩对话历史记录以释放上下文空间
当会话接近令牌限制的 95% 时,GitHub Copilot 命令行界面 会在后台自动压缩历史记录,而不会中断工作流程。
查看代码更改
可以使用 /review 斜杠命令,无需离开 CLI,即可让 Copilot 分析代码更改。 这样,便可以在提交之前快速获取有关更改的反馈。
启用所有权限
对于你信任 Copilot 可以自由运行的情况,可以使用 --allow-all 或 --yolo 标志一次启用所有权限。
切换推理可见性
按 Ctrl+T 在生成响应时显示或隐藏模型的推理过程。 此设置在会话之间持续存在,使你能够观察 Copilot 如何解决复杂问题。
了解更多
要查看可用于 Copilot 命令行界面(CLI) 的完整命令行选项和斜杠命令列表,可执行以下任一操作:
- 在交互式会话的提示框中输入
?。 - 在终端中输入
copilot help。
有关其他信息,请在终端中使用以下命令之一:
-
**配置设置**:copilot help config你可通过编辑
config.json文件来调整配置设置,该文件默认位于~/.copilot目录下。 可通过设置XDG_CONFIG_HOME环境变量来更改此位置。 -
影响 Copilot 命令行界面(CLI) 的**环境变量**:copilot help environment -
**可用日志记录级别**:copilot help logging -
允许或拒绝工具使用的**权限**:copilot help permissions
反馈
如果你对 GitHub Copilot 命令行界面 有任何反馈,请通过交互式会话中的 /feedback 斜杠命令选择相应选项告知我们。 你可以选择参与私密反馈调查、提交 bug 报告或提出新功能建议。
延伸阅读
-
[AUTOTITLE](/copilot/how-tos/copilot-cli/cli-best-practices) -
[AUTOTITLE](/copilot/reference/cli-command-reference) -
[AUTOTITLE](/copilot/reference/acp-server)