{"meta":{"title":"使用 GitHub Copilot CLI","intro":"了解如何从命令行使用 GitHub Copilot 。","product":"GitHub Copilot","breadcrumbs":[{"href":"/zh/enterprise-cloud@latest/copilot","title":"GitHub Copilot"},{"href":"/zh/enterprise-cloud@latest/copilot/how-tos","title":"操作方法"},{"href":"/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli","title":"Copilot CLI"},{"href":"/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/use-copilot-cli","title":"使用 Copilot CLI"},{"href":"/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/use-copilot-cli/overview","title":"概述"}],"documentType":"article"},"body":"# 使用 GitHub Copilot CLI\n\n了解如何从命令行使用 GitHub Copilot 。\n\nGitHub Copilot 的命令行接口（CLI）允许您直接从终端使用 Copilot 。 有关详细信息，请参阅“[关于 GitHub Copilot CLI](/zh/enterprise-cloud@latest/copilot/concepts/agents/copilot-cli/about-copilot-cli)”。\n\n## 先决条件\n\n安装 Copilot CLI。 请参阅“[安装 GitHub Copilot CLI](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli)”。\n\n## 使用 Copilot CLI\n\n1. 在终端中，导航到包含要使用的代码的文件夹。\n\n2. 输入 `copilot` 以开始 Copilot CLI。\n\nCopilot 将要求你确认你信任此文件夹中的文件。\n\n> \\[!IMPORTANT]\n> 在此 GitHub Copilot CLI 会话期间， Copilot 可能会尝试在此文件夹中和下方读取、修改和执行文件。 只有当你信任此位置中的文件时，才应继续操作。 有关受信任目录的详细信息，请参阅“[关于 GitHub Copilot CLI](/zh/enterprise-cloud@latest/copilot/concepts/agents/copilot-cli/about-copilot-cli#trusted-directories)”。\n\n1. 选择以下选项之一：\n\n**1.Yes, proceed**：\n\nCopilot 只能在此会话中处理此位置的文件。\n\n**2.Yes, and remember this folder for future sessions**：\n\n对于此次会话以及未来的会话，你都信任此文件夹中的文件。 从此文件夹启动 Copilot CLI 时，不会再次询问你。 只有在确定Copilot始终可以安全地使用此位置中的文件时，才选择此选项。\n\n**3.No, exit (Esc)**：\n\n您的Copilot CLI会话结束。\n\n1. 如果当前未登录 GitHub，系统会提示你使用 `/login` 斜杠命令。 输入此命令并按照屏幕说明完成身份验证流程。\n\n2. 在 CLI 中输入提示。\n\n   这可以是简单的聊天问题，也可以是执行特定任务的请求 Copilot ，例如修复 bug、向现有应用程序添加功能或创建新应用程序。\n\n   除了输入外，你还可以说出提示词。 请参阅“[通过 Copilot CLI 使用语音输入](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/use-copilot-cli/voice-input)”。\n\n   有关提示的一些示例，请参“[关于 GitHub Copilot CLI](/zh/enterprise-cloud@latest/copilot/concepts/agents/copilot-cli/about-copilot-cli)”。\n\n3. 当 Copilot 想要使用可以修改或执行文件的工具时，例如 `touch`、`chmod`、`node` 或 `sed`它会要求你批准使用该工具。\n\n   选择以下选项之一：\n\n**1. Yes**：\n\n允许 Copilot 使用此工具。 下次 Copilot 想要使用此工具时，它将要求你再次批准它。\n\n**2.Yes, and approve TOOL for the rest of the running session**：\n\n允许 Copilot 在当前运行的会话剩余时间内（通过任何选项）使用此工具，而无需再次询问。 任何相同类型的挂起并行权限请求都将被自动批准。 在未来的会话中，你需要再次批准该命令。\n\n选择此选项对许多工具（例如 `chmod`）非常有用，因为它避免在同一会话中重复批准类似的命令。 但是，请注意此选项的安全影响。 例如，为命令 `rm` 选择此选项将允许 Copilot 删除当前目录或其子目录中的任何文件，而无需请求批准。\n\n**3. 否，并告诉 Copilot 如何做不同的事情（Esc）**：\n\nCopilot 不会运行该命令。 相反，它会终止当前操作，并等待你输入下一个提示。 你可以指示 Copilot 继续执行任务，但使用不同的方法。\n\n例如，如果要求Copilot创建 bash 脚本，但不想使用脚本Copilot建议，则可以停止当前操作并输入新的提示，例如： `Continue the previous task but include usage instructions in the script`\n\n拒绝工具权限请求时，你还可以向 Copilot 提供有关拒绝的内联反馈，以便它可以调整其方法，而无需完全停止。\n\n## Tips\n\n请用以下建议来优化您使用 Copilot CLI 的体验。\n\n### 停止当前正在运行的操作\n\n如果输入提示后，决定在任务仍处于“思考”状态时停止Copilot 执行，请按 <kbd>Esc</kbd>。\n\n### 使用计划模式\n\n通过计划模式，可以在编写任何代码之前与 Copilot 实施计划进行协作。 按 <kbd>Shift</kbd>+<kbd>Tab</kbd> 可循环进出计划模式。\n\n### 在提示中包含特定文件\n\n要向提示添加特定文件，请使用 `@` 后跟文件的相对路径。 例如： `Explain @config/ci/ci-required-checks.yml` 或 `Fix the bug in @src/app.js` 。 这会将文件的内容添加到提示中作为 Copilot 的上下文。\n\n开始键入文件路径时，匹配的路径会显示在提示框下方。 使用箭头键选择路径，然后按 <kbd>Tab</kbd> 在提示中补全该路径。\n\n### 附加图像和 PDF\n\n使用支持图像输入的模型时，可以将图像和 PDF 附加到提示。\n\nCopilot 支持以下文件类型：\n\n* JPEG（`.jpg`、`.jpeg`）\n* PNG （`.png`）\n* GIF（`.gif`）\n* WEBP （`.webp`）\n* PDF （`.pdf`）\n* HEIC （`.heic`）\n* HEIF （`.heif`）\n\n图像和 PDF 附件在所有 Copilot 计划中都可用，默认情况下已启用，无需策略即可打开或关闭该功能。\n\n可以在交互式会话期间以下列方式附加文件：\n\n* 在提示中引用文件时，请使用 `@`，后面跟上文件路径。\n* 将文件拖放到交互式会话中。\n* 将图像复制到剪贴板，然后将其粘贴为附件。\n\n### 处理其他路径下的文件\n\n若要完成任务， Copilot 可能需要处理当前工作目录之外的文件。 如果在交互式会话中输入的提示需要 Copilot 修改当前位置之外的文件，它将要求你批准对文件目录的访问权限。\n\n你也可以随时使用斜杠命令手动添加受信任目录：\n\n```shell\n/add-dir /path/to/directory\n```\n\n如果您要处理的所有文件都位于其他位置，可以通过使用Copilot CLI或`/cwd`斜杠命令来切换当前工作目录，而无需启动新的`/cd`会话。\n\n```shell\n/cwd /path/to/directory\n```\n\n### 运行 shell 命令\n\n无需调用模型即可在输入前添加 `!` 以直接运行 shell 命令。\n\n```shell\n!git clone https://github.com/github/copilot-cli\n```\n\n### 安排提示稍后运行\n\n你可以使用 `/every` 和 `/after` 斜杠命令，将提示安排在以后运行。\n`/every` 命令用于按指定的时间间隔重复运行提示，而 `/after` 命令用于安排一次性提示在指定延迟后运行一次。 例如：\n\n```shell\n/every 1h Run frontend tests and report any failures\n```\n\n有关详细信息，请参阅“[在 GitHub Copilot CLI 中安排提示](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/automate-copilot-cli/schedule-prompts)”。\n\n### 恢复交互式会话\n\n可以使用`--resume`命令行选项或`/resume`斜杠命令来选择和恢复交互式命令行界面会话，这样就可以使用保存的上下文从您离开的地方继续。 可以在 Copilot cloud agent 上启动 GitHub 会话，然后用 GitHub Copilot CLI 将该会话带入本地环境。\n\n> \\[!TIP]\n> 若要快速恢复最近关闭的本地会话，请在终端中输入以下内容：\n>\n> ```shell\n> copilot --continue\n> ```\n\n### 使用自定义指令\n\n可以通过将自定义说明添加到正在使用的存储库来增强 Copilot性能。 自定义指令是以自然语言编写的描述性内容，以 Markdown 文件形式存储于仓库中。 当你在该仓库中执行操作时，这些指令将自动包括在你输入的提示中。\nCopilot这有助于更好地了解项目的上下文以及如何响应提示。\n\nCopilot CLI 支持：\n\n* `.github/copilot-instructions.md` 文件中仓库范围的指令。\n* 路径特定的指令文件：`.github/instructions/**/*.instructions.md`。\n* 智能体文件，例如 `AGENTS.md`。\n\n有关详细信息，请参阅“[为 GitHub Copilot CLI 添加自定义说明](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/customize-copilot/add-custom-instructions)”。\n\n### 使用 custom agents\n\ncustom agent 是 Copilot 的专用版本。\nCustom agents 帮助 Copilot 处理独特的工作流、特定的编码约定和专家用例。\n\nCopilot CLI 包括一组用于常见任务的默认 custom agents：\n\n<table>\n  <thead>\n    <tr>\n      <th style=\"width:20%\">Agent</th>\n      <th>Description</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>探索</td>\n      <td>执行快速代码库分析，让你无需添加到主上下文即可提出有关代码的问题。</td>\n    </tr>\n    <tr>\n      <td>任务</td>\n      <td>执行测试和构建等命令，在成功时提供简要总结，在失败时提供完整输出。</td>\n    </tr>\n    <tr>\n      <td>常规用途</td>\n      <td>处理复杂的多步骤任务，这些任务需要完整的工具集和高质量的推理，在单独的上下文中运行，以使主对话保持清晰焦点。</td>\n    </tr>\n    <tr>\n      <td>代码评审</td>\n      <td>审查更改时，专注于揭示真正的问题，尽量减少干扰。</td>\n    </tr>\n    <tr>\n      <td>研究</td>\n      <td>跨代码库、相关存储库和 Web 进行深入研究，生成包含引文的详细报告。</td>\n    </tr>\n    <tr>\n      <td>橡皮鸭</td>\n      <td>扮演建设性批评者的角色，为某些重要的任务提供反馈。 由 Copilot CLI 自动使用。</td>\n    </tr>\n  </tbody>\n</table>\n\nCLI 使用的 AI 模型可以选择将任务委托给一个使用具有特定专业知识的 custom agent 运行的附属子代理进程，前提是它认为这样做可以更有效地完成工作。 此模型同样可以选择直接在主智能体中处理工作。\n\n某些内置 custom agents（如橡皮鸭智能体）会由 Copilot 自动代为调用，而非由你直接调用。 运行`/agent`时，你不会将它们视为单独的选项，但你可能会看到Copilot在执行任务时提到它们。\n\n可以使用 Markdown 文件（称为custom agents）定义自己的agent profiles内容，这些文件指定代理应具备哪些专业知识、可以使用哪些工具，以及响应方式的任何特定说明。\n\n可以在用户、存储库或组织/企业级别定义 custom agents ：\n\n| 类型                               | 位置                                        | Scope         |\n| -------------------------------- | ----------------------------------------- | ------------- |\n| 用户级别 custom agent                | 本地 `~/.copilot/agents` 目录                 | 所有项目          |\n| 存储库级别 custom agent               |                                           |               |\n| `.github/agents` 本地存储库和远程存储库中的目录 | 当前项目                                      |               |\n| 组织和企业级 custom agent              | 组织或企业`/agents` 存储库中的 `.github-private` 目录 | 组织及企业帐户下的所有项目 |\n\n在命名冲突的情况下，系统级代理会替代存储库级代理，存储库级代理将替代组织级代理。\n\nCustom agents 可通过三种方式使用：\n\n* 使用 CLI 交互式接口中的斜杠命令从可用 custom agents列表中进行选择：\n\n  ```shell\n  /agent\n  ```\n\n* 在提示中直接调用 custom agent ：\n\n  ```shell\n  Use the refactoring agent to refactor this code block\n  ```\n\nCopilot 将自动推断要使用的代理。\n\n* 使用命令行选项指定要使用的 custom agent。 例如：\n\n  ```shell\n  copilot --agent=refactor-agent --prompt \"Refactor this code block\"\n  ```\n\n有关详细信息，请参阅“[为Copilot cloud agent创建自定义代理](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/create-custom-agents)”。\n\n### 使用技能\n\n可以创建技能，以增强 Copilot 使用说明、脚本和资源来执行专用任务的能力。\n\n有关详细信息，请参阅“[为 GitHub Copilot CLI 添加代理技能](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/customize-copilot/add-skills)”。\n\n### 使用挂钩\n\n可以使用钩子来扩展和自定义 Copilot CLI 的行为。 挂钩允许在 CLI 会话期间在关键点自动运行自定义 shell 命令。\n\n有关详细信息，请参阅“[与 GitHub Copilot CLI 一起使用挂钩](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/customize-copilot/use-hooks)”。\n\n### 添加 MCP 服务器\n\nCopilot CLI附带已配置的GitHubMCP 服务器。 此 MCP 服务器允许你与资源 GitHub.com进行交互，例如，允许你合并 CLI 中的拉取请求。\n\n若要扩展可用的 Copilot CLI功能，可以添加更多 MCP 服务器。\n\n若要直接从终端添加远程 HTTP 服务器而不启动交互式会话，请使用：\n\n```shell copy\ncopilot mcp add --transport http SERVER-NAME URL\n```\n\n例如：\n\n```shell copy\ncopilot mcp add --transport http sentry https://mcp.sentry.dev/mcp\n```\n\n有关本地服务器和其他选项，请参阅 [为 GitHub Copilot CLI 添加 MCP 服务器](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/customize-copilot/add-mcp-servers#using-the-copilot-mcp-add-subcommand)。\n\n或者，从交互式会话添加服务器：\n\n1. 使用以下斜杠命令：\n\n   ```shell\n   /mcp add\n   ```\n\n2. 填写你想要添加的 MCP 服务器的详细信息，使用 <kbd>Tab</kbd> 键在各个字段之间切换。\n\n3. 按<kbd> Ctrl</kbd>+<kbd>S</kbd> 以保存详细信息。\n\n你已配置的 MCP 服务器详细信息存储在 `mcp-config.json` 文件中，该文件默认位于 `~/.copilot` 目录下。 可通过设置 `COPILOT_HOME` 环境变量来更改此位置。 有关服务器定义的 JSON 结构的信息，请参阅“[为存储库配置 MCP 服务器](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-on-github/customize-copilot/configure-mcp-servers#writing-a-json-configuration-for-mcp-servers)”。\n\n### 上下文管理\n\nCopilot CLI 提供了多个斜杠命令来帮助监视和管理上下文窗口：\n\n* `/usage`：允许查看会话统计信息，包括：\n  * 当前会话中使用的GitHub AI Credits量\n  * 会话持续时间\n  * 已编辑代码的总行数\n  * 每个模型的令牌使用情况细分\n\n* `/context`：提供当前令牌使用情况的直观概述\n\n* `/compact`：手动压缩对话历史记录以释放上下文空间\n\nGitHub Copilot CLI 当聊天接近令牌限制的 95% 时，会自动压缩后台的历史记录，而不会中断工作流。\n\n### 启用所有权限\n\n对于信任 Copilot 自由运行的情况，可以使用 `--allow-all` 或 `--yolo` 标志一次性启用所有权限。\n\n### 使用沙盒\n\n可以使用沙盒来限制可以访问的内容 Copilot 。 本地沙盒不会在沙盒中运行 CLI 本身;相反，代表你运行的命令和工具 Copilot CLI 受到限制，限制了他们对文件系统、网络和系统功能的访问。 若要启用本地沙盒，请在会话中输入 `/sandbox enable` 。\n\n或者，使用云沙盒，整个 Copilot CLI 会话在隔离的环境中远程运行。 若要在云中启动 Copilot CLI 会话，请运行 `copilot ‑‑cloud`。 有关详细信息，请参阅“[关于云和本地沙盒 GitHub Copilot](/zh/enterprise-cloud@latest/copilot/concepts/about-cloud-and-local-sandboxes)”。\n\n### 切换推理可见性\n\n按 <kbd>Ctrl</kbd>+<kbd>T</kbd> 在生成响应时显示或隐藏模型的推理过程。 此设置在会话之间持续存在，使你能够观察 Copilot 如何解决复杂的问题。\n\n### 设置配置\n\n您可以使用 Copilot CLI 斜杠命令查看和更改您的个人 `/settings` 设置。\n\n* 运行 `/settings` 以打开交互式设置编辑器，可在其中按名称搜索设置并对其进行编辑。 若要将设置还原为其默认值，请在设置列表中突出显示该设置，然后按 <kbd>Ctrl</kbd>+<kbd>R</kbd>。\n* 运行 `/settings KEY VALUE` 以直接在 CLI 的提示框中更改设置。 KEY 是设置的名称，VALUE 是要设置的值。 这也适用于脚本以及使用 `-p` 以编程方式启动的会话。\n* 运行 `/settings show KEY` 以将设置的当前值显示为文本，而无需打开编辑器。\n\n大多数设置更改会立即生效，无需重启 Copilot CLI。\n\n有关详细信息，请参阅“[使用 \\`/settings\\` 命令更改设置](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/customize-copilot/change-settings)”。 有关可用设置的完整列表，请参阅 [GitHub Copilot CLI 配置目录](/zh/enterprise-cloud@latest/copilot/reference/copilot-cli-reference/cli-config-dir-reference#configuration-file-settings)。\n\n## 了解更多\n\n有关可与 Copilot CLI 结合使用的命令行选项和斜杠命令的完整列表，请执行以下其中一项操作：\n\n* 在交互式会话的提示框中输入 `?`。\n* 在终端中输入 `copilot help`。\n\n有关其他信息，请在终端中使用以下 `copilot help` 子命令之一：\n\n* **配置设置**：\n\n  `copilot help config`\n\n* 环境变量\\*\\*\\*\\*：\n\n  `copilot help environment`\n\n* **可用日志记录级别**：\n\n  `copilot help logging`\n\n* ```\n            允许或拒绝工具使用的**权限**：\n  ```\n\n  `copilot help permissions`\n\n## 反馈\n\n如果你对 GitHub Copilot CLI 有任何反馈，请通过交互式会话中的 `/feedback` 斜杠命令选择相应选项告知我们。 你可以选择参与私密反馈调查、提交 bug 报告或提出新功能建议。\n\n## 后续步骤\n\nCopilot CLI 可以充当对话助理，回答问题并帮助你以交互方式编写代码。 除了聊天之外， Copilot CLI 还支持一系列代理模式，允许你以更大的自主性委托任务。\n\n可以使用代理 Copilot CLI 来支持完整的任务生命周期，从委派工作到查看结果：\n\n* **自主委托任务**：在 autopilot 模式下运行 Copilot CLI 以完成多步骤任务，而无需在每个步骤中批准。 请参阅“[将任务委派给 Copilot](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/use-copilot-cli/delegate-tasks-to-cca)”。\n* **调用自定义代理**：调用专为特定任务定制的专用代理，例如代码评审、文档或安全审核。 请参阅“[调用自定义代理](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/use-copilot-cli/invoke-custom-agents)”。\n* **引导代理**：在任务执行期间指导和优化代理行为，以保持工作正常。请参阅 [引导 GitHub Copilot CLI 中的智能体](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/use-copilot-cli/steer-agents)。\n* **请求代码评审**：使用Copilot CLI 获取对代码更改的 AI 驱动评审。 请参阅“[使用 GitHub Copilot CLI 请求代码评审](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/use-copilot-cli/agentic-code-review)”。\n\n## 延伸阅读\n\n* [GitHub Copilot CLI 的最佳做法](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/cli-best-practices)\n* [GitHub Copilot CLI 命令参考](/zh/enterprise-cloud@latest/copilot/reference/copilot-cli-reference/cli-command-reference)\n* [GitHub Copilot CLI 配置目录](/zh/enterprise-cloud@latest/copilot/reference/copilot-cli-reference/cli-config-dir-reference)\n* [Copilot CLI ACP 服务器](/zh/enterprise-cloud@latest/copilot/reference/copilot-cli-reference/acp-server)"}