---
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="/zh-Hant/docs/github-copilot/understanding/07-cloud-agent-pr-loop" />
  <Card title="下一篇" description="繼續拆分 instructions、skills、hooks 和 plugins 的職責邊界。" href="/zh-Hant/docs/github-copilot/understanding/09-custom-instructions-rules-skills-hooks" />
  <Card title="Copilot CLI 官方頁" description="回到官方重組頁深讀安裝、委派、回復和 PR 流程。" href="/zh-Hant/docs/github-copilot/official/05-copilot-cli" />
</Cards>
