Hub GitHub Copilot CLI 完整教學

附錄 B

名詞對照與三套 CLI 遷移表

GitHub Copilot CLI 是本站第四款進站的終端機 agent——你可能是從 Claude Code、Codex CLI 或 Gemini CLI 任何一家過來的,所以這份附錄不做單向搬家表,改做三方對照,讓你從自己熟悉的那一家,直接跳到「Copilot CLI 這裡怎麼寫」。

想像你已經會開三種不同廠牌的車,現在要租一台新廠牌的車上路。方向盤、油門、煞車的位置八成大同小異,但「開遠光燈的桿子在哪」「行李廂怎麼開」這種細節,每家廠牌總有幾個地方硬是不一樣。這份附錄就是你的「新車說明書」:前半段是純查字典的中英名詞速查,後半段是「你熟悉的那一家 → Copilot CLI」對照表,最後再加一份遷移檢查清單,照著打勾就能把工作習慣搬過來。

在那之前,還有一個 Copilot CLI 特有的地雷得先排除——因為它跟本站另外三家都不一樣,它的名字被官方自己用過兩次

動工前先辨認:你查到的是舊指令還是新指令?

如果你在網路上搜尋「Copilot CLI」,很有機會先撞見一批教你打 gh copilot suggest 的舊文章——這些文章沒有錯,只是講的是已經停用的東西,跟本書教的完全是另一套指令。

面向舊:gh copilot(GitHub CLI 擴充功能,已退役)新:copilot(本書主角)
安裝方式gh extension install github/gh-copilotnpm install -g @github/copilot(或 Homebrew/WinGet/官方安裝腳本)
指令語法gh copilot suggest "自然語言描述"gh copilot explain "指令"copilot(進互動模式)、copilot -p "..."(非互動模式)
能力範圍只做兩件事:建議 shell/git/gh 指令、解釋一段指令在做什麼——純唯讀諮詢全能 agent:讀寫檔案、跑指令、開 PR、接 MCP、自訂代理、hooks,跟雲端版 Copilot coding agent 共用同一套 agentic 架構
目前狀態官方 2025-09-25 公告棄用,2025-10-25 正式停止運作2025-09 Public Preview 上線,2026-02-25 正式 GA,持續更新中

(料源:official,GitHub Changelog — Upcoming deprecation of gh-copilot CLI extensiongithub/gh-copilotGitHub Changelog — GitHub Copilot CLI is now generally available)

舊版還留了一手:gh copilot alias 指令可以幫你的 shell 產生兩個捷徑——ghcs(包 suggest)與 ghce(包 explain)。如果你電腦裡的 .zshrc.bashrc 還留著這兩個別名,那是舊時代的遺跡,跟本書教的 copilot 指令完全無關,可以放心清掉。

重要提醒

新手最容易踩的坑:gh 這個字首。如果你查到的指令開頭是 gh copilot,那是舊工具;本書教的是獨立的 copilot 指令,前面沒有 gh 另外套件名也容易寫錯——npm 套件是 @github/copilot不是 @github/copilot-cli。判斷自己看的文章新不新,除了看指令有沒有 gh 開頭,也可以看文章發布時間、有沒有提到 trust folder/agentic/MCP 這些新版才有的關鍵字。

B.1 中英名詞速查表

第一次碰到英文縮寫卡住很正常。下面把全書出現的核心名詞集中起來,看到不懂的詞就回這裡查。

核心身分與角色

名詞白話解釋這個設計解決的痛點詳見
Copilot CLI住在終端機裡、GitHub 官方推出、會自己讀改檔案跑指令的 AI 工程師來回開視窗貼答案 → 讓 AI 直接常駐終端機動手,不用你當中間人搬運內容第 0 章
agent(代理)會「自己動手」完成任務的 AI,不只是回答問題只會聊天回答的 AI 幫不上實際的手 → 會自己動手做完整段任務,不只是講給你聽第 0 章
prompt(提示詞)你打給 AI 的那段話,也就是「你要它做什麼」的指令得先學一套程式語法才能叫電腦做事 → 說人話就能讓 AI 讀改跑程式第 4 章
session(對話)一次完整的互動過程,可用 --resume--continue 接續每次都要重新交代前情提要 → 接續上次對話,不用重講一次第 3 章
custom agent(自訂代理)Copilot CLI 對「subagent」這個概念的自家用詞,.agent.md 檔案定義什麼任務都塞給同一個 agent,越做越雜 → 拆出專職幫手分工處理,各司其職B.3
Agent Skill(技能)可重用、偶爾用、要求一致輸出格式時用的「技能卡」,SKILL.md 定義同一套重複性 SOP 每次都要重新交代一次 → 寫成技能卡,之後直接觸發套用第 12 章

記憶與設定

名詞白話解釋這個設計解決的痛點詳見
copilot-instructions.mdCopilot CLI 自家格式的守則檔(.github/copilot-instructions.md 專案層、$HOME/.copilot/copilot-instructions.md 使用者層)每次開新對話都要重講一次專案規範 → 寫進守則檔,AI 自動讀取套用第 5 章
AGENTS.md/CLAUDE.md/GEMINI.md三家競品各自的記憶檔標準,Copilot CLI 原生直接讀取,不用你搬家重寫換一家 CLI 就要把守則檔重寫一份 → 原生相容三家格式,記憶檔不用搬家第 5 章B.5
settings.json個人設定檔(JSONC 格式),透過 /settings 統一介面用點路徑鍵名調整偏好設定散落各處要東找西找 → 統一用 /settings 介面靠點路徑鍵名調整第 8 章
config.json官方明講「別手動編輯」的內部應用狀態檔,含 trusted_folders手動改內部狀態容易讓工具跟實際狀態兜不起來 → 官方明講別手動編輯,交給 CLI 自己管理第 8 章
COPILOT_HOME覆寫整個設定目錄位置的環境變數(預設 ~/.copilot多個專案/身分想切換設定環境卻互相污染 → 一個環境變數就能整個搬走設定目錄第 8 章
Copilot MemoryAI 自己寫、自動累積的跨 session 記憶層,跟人工維護的守則檔是不同層,28 天沒驗證使用會自動遺忘AI 老是忘記你前幾天講過的偏好 → 自動累積跨 session 記憶,28 天沒被驗證使用才會遺忘第 15 章

安全與權限

名詞白話解釋這個設計解決的痛點詳見
trusted folder(信任目錄)第一次進某個資料夾時的三選一對話框(只信任這次/永久記住/退出),清單存進 config.jsontrusted_folders每次進資料夾都要重新確認能不能讓 AI 動手 → 選過一次就永久記住,不必重複確認第 3 章
permissions-config.json按專案保存的工具/目錄核可紀錄,存在 ~/.copilot/permissions-config.json換個專案又要重新設定一次工具權限 → 按專案自動保存核可紀錄,下次進來不用重設第 6 章
--allow-tool / --deny-tool精細權限旗標,格式 Kind(argument)deny 規則永遠贏過 allow,即使開了 --allow-all 也一樣會被 deny 擋下想開放某個工具、又要排除其中一項風險動作 → 精細到單一工具都能個別准駁,deny 永遠贏第 6 章
--allow-all / --yolo一次開啟所有權限的別名旗標,官方明確紅線警告只能在隔離環境用,絕不能設成永久別名權限詢問一直跳出來卡住沒法一次跑完 → 一次全開放行,但官方紅線只准在隔離環境用第 6 章
本機/雲端 sandbox2026-06 才進 public preview 的沙箱功能,/sandbox 指令啟用,Microsoft MXC 技術想讓 AI 放手嘗試又怕真的改到正式環境 → 隔出沙箱空間,出事也不影響本體第 7 章

工具、自動化與計費

名詞白話解釋這個設計解決的痛點詳見
MCPModel Context Protocol,接外部工具的標準插座,Copilot CLI 內建 GitHub MCP server、預設只開唯讀工具AI 只能讀你貼給它的文字,碰不到外部系統 → 標準化插座讓它直接接上外部工具/資料源第 9 章
hook 事件生命週期掛鉤,官方 6 個事件皆用 camelCase 命名(sessionStartpreToolUse 等),跟其他三家的 PascalCase 不同想在 AI 動手前後自動做檢查,卻只能靠人工盯著 → 掛鉤生命週期事件,該檢查的時刻自動觸發B.4
/fleet平行多代理編排指令(2026 新功能,官方明標 experimental),主 agent 當協調者拆任務給多個 subagent 同時跑好幾個任務要排隊等 AI 一個一個做完 → 拆給多個 subagent 平行同時跑第 14 章
premium request / AI Credits2026-06-01 起計費制度從「Premium Request Units」改為按 token 計價的「AI Credits」(1 credit = US$0.01)不知道每次對話到底花了多少錢 → 按 token 透明計價,換算美金看得懂第 15 章
& 前綴//delegate委派給雲端 Copilot coding agent(開分支、開 draft PR),跟本機 /fleet 是完全不同的執行環境單執行緒盯著跑 → 派工去做別的事第 14 章

小技巧

看到不認得的旗標(-- 開頭)或斜線指令(/ 開頭),先翻 附錄 A 指令與旗標速查,那裡有最完整的逐字對照,官方文件本身也提醒完整清單超過 80 個 slash 指令,實機 copilot help 永遠是最終真相。

B.2 一張表看懂:Claude Code/Codex CLI/Gemini CLI → Copilot CLI

如果你是這三家任何一家的老手,這一節就是你的「搬家對照表」。

概念Claude CodeCodex CLIGemini CLICopilot CLI
啟動互動模式claudecodexgeminicopilot
非互動 / headlessclaude -p "..."codex exec "..."gemini -p "..."copilot -p "..."(或 --prompt
登入互動內 /login(Anthropic 帳號或 API key)codex login(ChatGPT 帳號或 API key)首次啟動選單選「Login with Google」走 OAuth;或設環境變數 GEMINI_API_KEY/Vertex AI ADC互動內 /login,走 GitHub OAuth device flow;Enterprise Cloud 用 copilot login --host HOST
恢復對話claude --resumecodex resume(或 /resumegemini --resume(或 -r)//resumecopilot --resume(挑清單)/copilot --continue(接最近一次)
專案記憶檔CLAUDE.mdAGENTS.mdGEMINI.md自家 copilot-instructions.md 之外,原生直接讀取 AGENTS.mdCLAUDE.md(含 .claude/CLAUDE.md)/GEMINI.md
使用者層設定檔~/.claude/settings.json(JSON)~/.codex/config.toml(TOML)~/.gemini/settings.json(JSON)~/.copilot/settings.json(JSONC,透過 /settings 介面調整)
MCP 設定.mcp.json / claude mcp addconfig.toml[mcp_servers.NAME] / codex mcp add~/.gemini/settings.json 或專案內 .gemini/settings.jsonmcpServers 欄位~/.copilot/mcp-config.json / 互動 /mcp add / 非互動 copilot mcp 子指令;內建 GitHub MCP server,免設定即可用
權限與信任模型「Do you trust the files in this folder?」信任對話框(逐資料夾記住)+ permission modesapproval_policy + sandbox_mode 雙軸(無獨立信任資料夾對話框)Trusted folders 機制 + approval modes + sandbox(細節見官方 Policy Engine 文件)信任目錄對話框(存進 trusted_folders)+ --allow-tool/--deny-tool(deny 永遠贏)

(料源:mixed——Claude Code/Codex CLI/Gemini CLI 各欄位取自本站對應單元既有正文的官方查證內容;Copilot CLI 各欄位取自本篇官方文件查證,查核日 2026-07-18)

補充資訊

四家都能讀專案、改檔、跑指令、接 MCP,這張表的重點不是「誰功能比較多」,而是「同一件事在不同工具裡叫什麼名字、放在哪個檔案」。八成的觀念其實通用,真正要小心的是接下來 B.3~B.5 這三個容易帶錯心智模型的地方。

B.3 自訂代理對照:custom agent 不是 subagent

Copilot CLI 在「幫主 agent 找幫手」這件事上,用詞跟本站另外三家都不一樣——它不叫 subagent,叫 custom agent

面向Claude CodeCodex CLIGemini CLICopilot CLI
用詞subagentsubagentsubagentcustom agent(用詞不同)
檔案位置.claude/agents/*.md.codex/agents/*.toml.gemini/agents/*.md~/.gemini/agents/*.md.github/agents/*.agent.md~/.copilot/agents/*.agent.md(同名時使用者層優先)
格式Markdown + frontmatterTOMLMarkdown + frontmatterMarkdown + YAML frontmatter,副檔名固定 .agent.md
必填欄位name / descriptionname / description / developer_instructions(三個必填)description 影響何時被委派,tools 限制工具集合name / description
呼叫方式subagent_type 派工純自然語言請主 agent spawn@agent_name 明確指定,或主代理依 description 推論委派四種:/agent 互動選單、對話中明確指名、AI 自動推論觸發、程式化 --agent <name> 旗標

(料源:mixed——Claude Code/Codex CLI 欄位取自本站對應單元既有正文;Gemini CLI 欄位取自本站 gemini 單元第 11 章正文(「自訂 subagent 通常放在 .gemini/agents/*.md~/.gemini/agents/*.md」);Copilot CLI 欄位取自官方文件 Create custom agents for Copilot CLI,查核日 2026-07-18)

重要提醒

別把「custom agent」跟本站其他三家的「subagent」當成同一個字直接互換使用——概念上對應沒錯(都是主 agent 派出去的專職幫手),但 Copilot CLI 官方文件通篇只用「custom agent」這個詞,你在 GitHub 官方文件裡搜尋「subagent」大概率是查不到東西的。跟 GitHub 支援人員或同事溝通時,用對詞比較好對話。

B.4 Hooks 事件命名風格對照:camelCase vs PascalCase

四家都有生命週期 hooks 機制,但事件命名風格上,Copilot CLI 是唯一一個走小駝峰(camelCase)的。

事件語意Claude CodeCodex CLIGemini CLICopilot CLI
工具執行前PreToolUsePreToolUse另一套事件分類(例如 BeforeToolSelection),完整清單以 /hooks 面板為準preToolUse
工具執行後PostToolUsePostToolUse同上postToolUse
Session 開始SessionStartSessionStart同上sessionStart
使用者送出提示UserPromptSubmitUserPromptSubmit同上userPromptSubmitted
Session 結束StopStop同上sessionEnd
錯誤發生errorOccurred(Copilot 獨有)

(料源:mixed——Claude Code/Codex CLI 事件名取自本站對應單元既有正文;Gemini CLI 部分本次研究未逐一查證完整事件清單,老實標註待查,只確認命名同樣偏 PascalCase 但分類邏輯是另一套設計;Copilot CLI 官方 6 個事件取自 Use hooks in Copilot CLIHooks reference,查核日 2026-07-18)

Copilot CLI 的 hooks 還有一條特有的硬性規定:同一個 hook 要同時準備 bash 跟 PowerShell 兩份腳本,因為它要跨 macOS/Linux/Windows 都能執行,不像其他三家通常只認一種 shell 腳本格式。

小技巧

命名風格差異本身是個小地雷:直接把 Claude Code 或 Codex CLI 寫好的 PreToolUse hook 設定檔複製過來,Copilot CLI 找不到對應事件(它認的是全小寫開頭的 preToolUse),會讓你以為 hook 沒生效,其實只是打錯大小寫。搬家時記得把事件名稱首字母改小寫

B.5 全篇最大觀念差異:指示檔案「全部合併」vs「就近覆蓋」

這是四方對照裡張力最大的一組,也是遷移讀者最容易帶錯心智模型的地方——但實際情況比「三家覆蓋、一家合併」更細緻,值得把每家的規則攤開來看清楚。

工具官方規則是不是「硬性覆蓋」
Codex CLI官方明確定義「近者覆寫遠者」——越靠近你目前位置的 AGENTS.md,優先權越高,官方文件逐字定義的硬規則
Claude Code四層(組織/個人/專案/本機)之間有明確優先順序;但同一層內、沿路徑找到的多份 CLAUDE.md全部疊加進 context,不是後面蓋掉前面——只是越靠近你工作目錄的那份,內容排在越後面、實務上權重通常較高半硬:跨層有硬順序,同層內是疊加+軟性權重
Gemini CLI官方文件把找到的所有 GEMINI.md 串接成一份長 context 一起送給模型;「越靠近目前目錄越優先」官方原文形容是慣例,不是強制覆蓋機制——實測甚至出現過模型自稱「全域指令優先」、跟文件說法相反的社群回報案例(issue #15037)軟性:全部串接,優先順序只是排版順序上的暗示,連官方自己都提醒這不保證模型會照做
Copilot CLI官方原文逐字:「does not define a general precedence order between these files」——多份符合條件的指示檔案全部合併,只做去重複,明講不定義優先順序,直接把「別寫出衝突指示」的責任丟回給你最無序:連「軟性慣例」都不給,官方主動聲明不承諾任何優先順序

(料源:mixed——Codex CLI/Claude Code/Gemini CLI 規則取自本站對應單元既有正文查證內容;Copilot CLI 規則取自官方文件 Add custom instructions for Copilot CLI「How multiple instruction files interact」段落逐字查證,查核日 2026-07-18)

翻成白話排一次順位(從「規則最硬」到「規則最鬆」):Codex(硬性近者覆寫)→ Claude(跨層硬順序+同層軟疊加)→ Gemini(全串接+軟性慣例,連官方都提醒不保證)→ Copilot(全合併+官方明講不承諾順序)。如果你是 Codex CLI 老手,最容易犯的錯就是把「子目錄那份會蓋過根目錄那份」的直覺帶進 Copilot CLI——這在 Copilot CLI 完全不成立,官方連「慣例」都不給你,實務上唯一安全的做法是:不同層級的守則檔裡,別寫互相矛盾的規則,各自負責不重疊的範圍。

重要提醒

這條規則差異沒有「誰做得比較好」的正確答案——Codex CLI 的硬覆蓋讓行為可預測,但代價是你得記住覆蓋順序;Copilot CLI 的「全合併、不定義順序」讓你不用背規則,但代價是衝突指示的後果完全無法預期。實務上最保守的做法通用於四家:守則檔越精簡、規則之間越不重疊,越不會踩到這條差異帶來的地雷

好消息放在最後:雖然指示檔案的合併規則四家互不相同,但 Skills 目錄的相容性是一個例外。Copilot CLI 官方文件把 .claude/skills/ 直接列為專案層可用的三個 Skills 存放路徑之一(另外兩個是 .github/skills/.agents/skills/)——也就是說,如果你原本是 Claude Code 使用者、已經寫好一批 .claude/skills/<name>/SKILL.md,直接把 Copilot CLI 加進同一個專案,這批技能不用搬家、原封不動就能被讀到。這是可查證的官方生態系互相借鏡實例,第 12 章會完整展開。

B.6 遷移落實檢查清單

照著這張清單一條一條做,就能把你熟悉的那一家搬到 Copilot CLI。每條都標了對應章節,卡住就回去翻。

  1. 確認你裝的是新版:跑一次 copilot --version,確認裝的是獨立 npm 套件 @github/copilot,不是已停用的 gh copilot 擴充功能。(第 2 章
  2. 記憶檔不用搬:你的 CLAUDE.mdAGENTS.mdGEMINI.md 直接留在原地,Copilot CLI 會原生讀取,不用複製或改檔名。⚠️ 但要重新檢視守則裡有沒有互相矛盾的規則——B.5 講過的「全合併、不定義優先順序」在這裡最容易踩雷。(第 5 章
  3. 登入方式換一套:不管你原本用哪家帳號登入,Copilot CLI 一律走 GitHub 帳號的 OAuth device flow,互動內打 /login。(第 3 章
  4. 權限模型重新設定:把你熟悉的 allow/deny 或 approval policy,轉換成 Copilot CLI 的 --allow-tool/--deny-tool(deny 永遠贏);全放行旗標是 --allow-all(別名 --yolo),官方紅線警告只能在隔離環境用,絕對不要寫進 alias。(第 6 章
  5. Skills 幾乎零改.claude/skills/* 可以直接沿用,Copilot CLI 官方相容這個路徑。(第 12 章
  6. 自訂代理要重寫.claude/agents/*.md.codex/agents/*.toml.gemini/agents/*.md 都要改寫成 Copilot CLI 的 .agent.md 格式,存到 .github/agents/~/.copilot/agents/;必填欄位只有 namedescription,相對簡單。(B.3
  7. Hooks 事件名記得改小寫開頭PreToolUsepreToolUsePostToolUsepostToolUse,以此類推;別忘了 bash/PowerShell 兩份腳本都要準備。(B.4
  8. MCP 設定重新接一次:把 .mcp.jsonconfig.tomlsettings.json 裡的 MCP server 定義,改寫進 ~/.copilot/mcp-config.json,或用互動 /mcp add。⚠️ GitHub 官方 MCP server 這一項可以刪掉不用手動加——Copilot CLI 內建、預設只開唯讀工具。(第 9 章
  9. 額度池要重新確認:CLI 用量跟 IDE 版 Copilot Chat 共用同一個 premium request/AI Credits 額度池,不是獨立一份,導入前先跟團隊或組織管理員確認額度夠不夠用。(第 15 章

版本時效提醒

本篇對照的 GitHub Copilot CLI 版本為 v1.0.71(2026-07-16 釋出),查核日 2026-07-18。Copilot CLI 改版速度很快(repo 近期兩天內連發四個版號),本篇引用的其他三家(Claude Code/Codex CLI/Gemini CLI)欄位同樣可能隨各自版本演進而調整。四家旗標、設定鍵、事件名稱、優先順序規則都屬於高度版本敏感的內容,正式遷移前請以各自實機 --help/help 與當下最新官方文件為準,本附錄的價值在於「幫你排出該查哪裡」,不是取代實機查證。

小結

這一章是你的「翻譯字典」加「搬家清單」。開頭先處理 Copilot CLI 特有的歷史包袱——舊的 gh copilot(GitHub CLI 擴充功能,只能建議/解釋指令,2025-10-25 已停止運作)跟新的獨立 copilot 指令(本書主角,讀寫檔案、跑指令、開 PR 的全能 agent)是兩個完全不同的東西,判斷法是看指令有沒有 gh 開頭。B.1 整理了核心中英名詞速查。B.2 做了 Claude Code/Codex CLI/Gemini CLI 三家 → Copilot CLI 的核心對照表,涵蓋啟動、非互動模式、登入、恢復對話、記憶檔、設定檔、權限模型、MCP 設定。B.3 講清楚 Copilot CLI 用「custom agent」而不是「subagent」這個詞,四家的檔案位置、格式、呼叫方式都不一樣。B.4 對照 hooks 事件命名——Copilot CLI 是四家裡唯一用 camelCase 的,其餘三家(有查證資料的部分)偏 PascalCase。B.5 是全篇分量最重的一節:四家指示檔案的合併規則其實排成一條光譜,從 Codex 的硬性「近者覆寫」,到 Claude 的「跨層硬順序+同層軟疊加」,到 Gemini 的「全串接+官方自己都不保證的軟性慣例」,最後是 Copilot CLI 最直白的「全部合併、官方明講不定義優先順序、請自行避免衝突」——但好消息是 Skills 目錄相容 .claude/skills/,這批技能不用搬家。B.6 收尾一份可以直接照著打勾的遷移落實檢查清單。

動手試試

  1. 打開你電腦裡的 ~/.zshrc~/.bashrc,搜尋看看有沒有殘留 ghcsghce 這兩個舊版別名——如果有,代表你之前裝過舊版 gh copilot 擴充,可以放心清掉。
  2. 挑一個你已經在用 Claude Code 或 Codex CLI 開發的專案,直接在同一個資料夾裝好 Copilot CLI,打開互動模式後用 /instructions(見第 5 章)確認它有沒有自動讀到你既有的 CLAUDE.mdAGENTS.md,不用你多做任何設定。
  3. 如果你的專案已經有 .claude/skills/ 目錄,開 Copilot CLI 打 /skills reload 之後用 /skills info <name> 確認技能被正確載入——親自驗證 B.5 提到的「Skills 相容性」不是空話。
  4. 對照 B.2 那張核心表,挑三個你最常用的指令(例如非互動模式、恢復對話、登入),在自己電腦上實際各打一次 Copilot CLI 的對應版本,感受一下跟你原本工具的差異有多大。
  5. 故意在專案根目錄與子目錄各寫一份指示檔案,內容互相矛盾(例如一個要求「用 npm」、另一個要求「用 pnpm」),實際觀察 Copilot CLI 聽了哪一條——親身體會一次 B.5 講的「官方不定義優先順序」在實機上長什麼樣子。

本章官方文件參考