Copilot CLI 是什麼
說明 GitHub Copilot CLI 的互動和非互動模式、Plan、自動上下文、定製、模型和安全邊界。
📖 本篇術語速查表
| 英文 / 縮寫 | 中文 | 一句話解釋 |
|---|---|---|
| About CLI | 原理 | Copilot CLI 如何接任務執行。 |
| 互動 vs 委派 | mode | 邊問邊做還是整包交出。 |
| 上下文來源 | context | CLI 從哪取專案資訊。 |
不想讀完?把下面這段提示詞丟給 AI 幫你跑完——幫你理解 Copilot CLI 的工作方式和適用邊界。
你是 Copilot CLI 原理顧問。
【角色】
Copilot CLI 原理顧問,按最小夠用、安全優先的原則給可落地方案,每條結論都落到能照做的步驟或示例,不停留在空泛建議。
【輸入】
- 我打算怎麼用它:___
- 互動還是批次委派:___
- 專案結構:___
- 對執行過程的疑慮:___
- 經驗水平:___
【工作流程】
1. 講清 CLI 工作機制
2. 區分互動和委派模式
3. 說明上下文來源
4. 標出執行中的把關點
5. 給驗證
【輸出規範】
▌一、工作機制
▌二、互動 vs 委派
▌三、上下文來源
▌四、把關點 + 驗證
【硬約束】
- 理解機制再用,寫操作守邊界
- 委派任務邊界寫清
- 結果自己核驗
- 不要替我臆測情況或編造不存在的功能,資訊不全先問清
- 不確定的設定或許可權一律以官方文件為準,禁止照搬過時寫法
- 給的每條結論都要落到具體可照做的步驟或示例,不停留在「建議」「考慮一下」這類沒法直接執行的空泛表述GitHub Copilot CLI 是終端裡的 AI 程式設計助手。官方概念頁說明,它可以回答問題、寫程式碼和除錯、與 GitHub.com 互動,例如讓 Copilot 修改專案並建立 pull request。
它不是舊版 gh copilot 的同義詞,也不只是“命令解釋”。這套 CLI 以 copilot 命令啟動,支援 interactive 和 programmatic 兩種介面。
閱讀目標:讀完本章,你應該能判斷 Copilot CLI 適合哪些終端任務,以及哪些許可權必須人工控制。
1. 支援系統和可用範圍
2026-05-06 核驗時,官方文件說明:
- Copilot CLI 可用於所有 Copilot plans。
- 如果你透過組織獲得 Copilot,組織設定裡必須啟用 Copilot CLI policy。
- 支援 Linux、macOS,以及 Windows 的 PowerShell 和 Windows Subsystem for Linux。
flowchart TD
CLI["copilot"] --> Interactive["Interactive interface"]
CLI --> Programmatic["Programmatic interface"]
Interactive --> Ask["ask / execute"]
Interactive --> Plan["plan mode"]
Interactive --> Auto["autopilot"]
Programmatic --> Prompt["-p / --prompt"]
Prompt --> Flags["allow / deny tool flags"]
Ask --> Review["人工 review"]
Plan --> Review
Auto --> Review
Flags --> Review
style Plan fill:#dbeafe,stroke:#2563eb,stroke-width:2px
style Auto fill:#fef3c7,stroke:#d97706,stroke-width:2px
style Review fill:#dcfce7,stroke:#16a34a,stroke-width:2px
2. Interactive interface
輸入 copilot 啟動互動式會話。你可以和 Copilot 對話、讓它執行一個或多個任務,也可以繼續 steer conversation。
官方說明 interactive interface 有預設 ask/execute mode,也有 plan mode。按 Shift + Tab 可以在模式之間切換。Plan mode 會先分析請求、提出澄清問題、構建計劃,然後再寫程式碼,適合複雜多步驟任務。
適合:
- 需要你邊看邊確認的程式碼改動。
- 需要多輪澄清的任務。
- 需要先 Plan 再執行的高風險變更。
3. Programmatic interface
可以用 -p 或 --prompt 直接把 prompt 傳給 CLI,讓它完成一次任務後退出。
copilot -p "列出本周 main 分支上的所有 commit" \
--allow-tool='shell(git)'也可以把指令碼輸出的 CLI options pipe 給 copilot。這種方式適合自動化,但必須更謹慎設定工具許可權,因為錯誤命令會在無人盯守時造成副作用。
4. 定製能力
官方概念頁列出 Copilot CLI 可定製能力:
- Custom instructions:給專案構建、測試、驗證方式補充上下文。
- MCP servers:連線外部資料來源和工具。
- Custom agents:針對 code review、文件、安全等任務建立專門 agent。
- Hooks:在 agent 執行關鍵點執行 shell commands。
- Skills:用說明、指令碼和資源增強特定任務能力。
- Copilot Memory:讓 Copilot 記住儲存庫裡的 coding conventions、patterns 和 preferences。
這些能力適合成熟團隊,不應在沒有許可權和審查策略前一次性全開。
5. 自動上下文管理
官方說明 CLI 會自動管理 conversation context:
- 接近 token limit 時會自動壓縮歷史。
- 可以用
/compact手動壓縮。 /context會顯示 token usage breakdown。
這讓會話更長,但不代表歷史上下文一定乾淨。無關任務仍然應該開新 session。
6. 安全邊界
官方安全說明很明確:Copilot CLI 可以代表你執行任務,包括修改檔案和執行 shell commands。你應該像自己直接在終端執行命令一樣審查。
關鍵規則:
- 只在可信目錄啟動 CLI。
- 不要從 home directory 或含敏感資料的目錄啟動。
- 工具 approval 不要隨手給 session-wide permission。
- 自動 approval 選項會增加資料丟失和破壞性操作風險。
- 需要自動化時,優先放進容器、虛擬機器或受限環境。
深讀:預設模型和自帶模型供應商
官方頁面在 2026-05-06 核驗時寫明:Copilot CLI 預設模型是 Claude Sonnet 4.5,但 GitHub 保留更改預設模型的權利。可以用 /model 或 --model 切換可用模型。
CLI 還可以透過環境變數接入自己的 model provider,例如 OpenAI-compatible endpoint、Azure OpenAI、Anthropic 或本地 Ollama。模型需要支援 tool calling 和 streaming,官方建議 context window 至少 128k tokens。
本章自檢
完成本章後,用這 4 個問題檢查:
- 目前任務應該用 interactive、programmatic、plan 還是 autopilot?
- 目前目錄是否可信,是否含敏感檔案?
- 需要哪些工具許可權,哪些命令必須拒絕?
- 輸出是否能透過 diff、測試、PR 或 rollback 驗收?
透過標準:你能把 CLI 當成受控終端 agent,而不是不受限制的 shell 自動執行器。
官方來源
- About GitHub Copilot CLI —— 官方概念頁。
- Getting started with GitHub Copilot CLI —— 官方快速開始。
- Responsible use of GitHub Copilot CLI —— 官方 responsible use 頁面。