---
title: "08 · Copilot CLI 工作流"
description: "说明 Copilot CLI 适合终端委派、远程 steering、回滚、自动化和与 Cloud Agent 协作的场景。"
verifiedAt: "2026-05-06"
---

Copilot CLI 是终端里的 AI 编程助手。GitHub 官方概念页说明，它可以回答问题、写代码和调试、与 GitHub.com 互动，例如修改项目并创建 pull request。它不是旧版 `gh copilot` 的同义词，也不只是“解释命令”——它的核心是把 agent 的执行能力放进终端。

> [!NOTE]
> **本章目标**：你会判断什么时候用 Copilot CLI，什么时候留在 VS Code Agent Mode 或 Cloud Agent，并知道终端权限、工具 allowlist、自动化和回滚边界。

## 1. CLI 的两个界面

```mermaid
flowchart TD
  CLI["copilot"] --> Interactive["Interactive interface"]
  CLI --> Programmatic["Programmatic interface"]
  Interactive --> Ask["Ask / Execute"]
  Interactive --> Plan["Plan mode"]
  Interactive --> Auto["Autopilot"]
  Programmatic --> Prompt["copilot -p / --prompt"]
  Prompt --> Flags["allow / deny tools"]
  Ask --> Evidence["diff / output / PR"]
  Plan --> Evidence
  Auto --> Evidence
  Flags --> Evidence
```

交互式界面（interactive interface）适合你盯着终端逐步确认。程序化界面（programmatic interface）适合自动化场景，但更需要严格的工具权限，因为它可以无人盯守地执行任务。

## 2. 什么时候用 CLI

适合 Copilot CLI：

- 任务主要发生在 terminal。
- 你需要让 agent 看 git 状态、运行测试、解释命令输出。
- 你在 ssh、tmux、远程开发机或无 IDE 环境中工作。
- 任务可以通过 diff、exit code、测试和 PR 验收。
- 需要脚本化调用，并通过 `--allow-tool` / deny flags 控制工具。

不优先用 CLI：

- 需要实时看编辑器 diagnostics 和 pending edits：用 VS Code Agent Mode。
- 任务天然是 GitHub issue 到 PR 的异步实现：用 Cloud Agent。
- 只是围绕 PR、issue、file 提问：用 GitHub.com Chat。
- 涉及生产资源、密钥、删除、部署：先人工拆解和限制环境。

## 3. Plan、Execute、Autopilot 的边界

官方文档说明，交互式界面有 ask / execute mode（问答 / 执行模式），也有 plan mode（计划模式）。Plan mode 会先分析请求、向你提出澄清问题、构建计划，然后再写代码。

选择规则：

- **Ask**：解释报错、查看 git 状态、询问命令含义。
- **Plan**：多步骤任务、范围不确定、风险较高。
- **Execute**：范围明确，可以改文件和跑命令。
- **Autopilot**：只用于低风险、可回滚、验证充分的任务。

不要把 Autopilot 当默认模式。自动批准工具会增加数据丢失和破坏性操作风险。

## 4. Programmatic interface 怎么控风险

程序化界面可以这样传入 prompt：

```bash
copilot -p "列出本周 main 分支上的所有 commit" \
  --allow-tool='shell(git)'
```

自动化里至少写清：

- 从哪个目录启动。
- 允许哪些工具。
- 禁止哪些命令。
- 输出如何保存。
- 失败时是否停止。
- 是否需要人工确认再提交或推送。

商业项目里，CLI 自动化最好放进容器、虚拟机或受限 runner，不要在 home directory、含密钥目录或生产机器上直接跑。

## 5. CLI 的定制能力

官方概念页列出 CLI 可用的定制方向：

- Custom instructions。
- MCP servers。
- Custom agents。
- Hooks。
- Skills。
- Copilot Memory。

这些能力会让 CLI 更贴合团队，但也会扩大权限面。先把基础工作流跑稳，再加 MCP、hooks、skills；不要第一天把所有扩展都打开。

## 6. 安全检查

启动前：

1. `git status` 是否干净或已知？
2. 当前目录是否可信？
3. 是否包含密钥、客户数据或生产配置？
4. 要允许哪些 shell commands？
5. 是否需要先 Plan？

执行中：

1. 每个命令的目的是否说清？
2. 是否修改了允许路径以外的文件？
3. 是否跳过失败测试？
4. 是否自动提交、推送或开 PR？

结束后：

1. 看 diff。
2. 看测试输出。
3. 看回滚方式。
4. 需要 PR 时走正常 review。

## 本章自检

你应该能回答：

- 当前任务为什么适合 CLI，而不是 IDE Agent 或 Cloud Agent？
- 使用 interactive 还是 programmatic？
- 允许哪些工具和命令？
- 结果用 diff、exit code、测试、PR 还是 rollback 验收？

通过标准：CLI 只在受控目录和受控权限下执行，产物能被工程证据验证。

## 官方来源

- [About GitHub Copilot CLI](https://docs.github.com/en/copilot/concepts/agents/copilot-cli/about-copilot-cli)：官方 CLI 概念、界面、Plan、定制和安全边界。
- [Getting started with GitHub Copilot CLI](https://docs.github.com/en/copilot/how-tos/copilot-cli/cli-getting-started)：官方安装、认证和基本使用。
- [Responsible use of GitHub Copilot CLI](https://docs.github.com/en/copilot/responsible-use/copilot-cli)：官方 responsible use 和风险说明。

## 接下来去哪

<Cards>
  <Card title="上一篇" description="先理解 Cloud Agent 如何从 branch 到 PR 闭环。" href="/docs/github-copilot/understanding/07-cloud-agent-pr-loop" />
  <Card title="下一篇" description="继续拆分 instructions、skills、hooks 和 plugins 的职责边界。" href="/docs/github-copilot/understanding/09-custom-instructions-rules-skills-hooks" />
  <Card title="Copilot CLI 官方页" description="回到官方重组页深读安装、委派、回滚和 PR 流程。" href="/docs/github-copilot/official/05-copilot-cli" />
</Cards>
