Hub GitHub Copilot CLI 完整教學

第 3 篇 進階 · 第 8 章

個人化設定

把你的偏好寫一次,GitHub Copilot CLI 以後就記得——設定檔放在哪裡、哪一份能手動改、哪一份連你自己都不該碰,還有那個連對手工具的記憶檔都認得的自訂指示階層。

想像你長住一間飯店。第一天入住,房間是飯店的標準配備:統一的枕頭、統一的電視頻道、統一的空調溫度。但如果你以後常常回來住,你會想跟櫃檯說一次「我要蕎麥枕、房間固定 24 度、退房前不用天天換床單」——說一次,以後每次入住它都記得,不用每次重講。

GitHub Copilot CLI 的「個人化設定」做的就是這件事。它不像第 7 章講的是「怎麼工作、怎麼核准動作」這種每次都要面對的心法,而是「講一次以後就記得」的偏好:外觀配色、預設用哪顆模型、你希望它讀哪些自訂指示檔案,甚至整個設定資料夾要不要搬家。這一章會帶你走過:

  • 設定資料夾放在哪、怎麼整個搬家、快取又是另外算的;
  • 資料夾裡到底有哪些檔案,哪些你可以手動改、哪些絕對別碰;
  • 2026 年中上線的 /settings 統一介面,一個地方管所有偏好;
  • 配色主題、模型選擇,以及怎麼讓這些選擇「跨 session 記住」;
  • 本章的重頭戲:自訂指示檔案的階層——它不只讀自己的格式,連 AGENTS.mdCLAUDE.mdGEMINI.md 都認得;
  • 收尾補幾個常用的小指令、環境變數與登入相關設定。

新手安全主線:先用介面,不先碰檔案或環境變數

剛開始只要在 Copilot CLI 裡使用 /settings/theme/model,其餘設定先維持預設值。COPILOT_HOMECOPILOT_CACHE_HOME、手動編輯 JSON、MCP 設定、token 與環境變數都是進階情境;不要為了照本章而先建立、搬移或清空任何設定檔。

版本時效提醒

GitHub Copilot CLI 改版速度很快,設定鍵、指令名稱都可能隨版本增減。本章內容以 2026-07-18 查核過的官方文件為準,撰稿對照版本是 GA(2026-02-25 起)之後、/settings 統一介面(2026-06-11)與本機沙箱 public preview(2026-06-02)都已存在的當下版本。任何時候,實機打 copilot --help、或在互動畫面裡打 /help/settings,都比書上寫的準。

8.1 進階:設定資料夾在哪裡:~/.copilot/COPILOT_HOME、快取另外算

一般使用者不需要開啟或移動這個資料夾;本節是需要排查、隔離自動化環境或接受公司管理時的參考。Windows 仍使用 Windows Terminal 的 PowerShell 7,不需要切到 WSL 才能使用設定。

預設位置

GitHub Copilot CLI 所有跟你有關的東西——設定、登入憑證、對話紀錄——都收在一個資料夾裡:

平台路徑
🍎 macOS / 🐧 Linux~/.copilot/
🪟 Windows%USERPROFILE%\.copilot\(也就是 $HOME\.copilot\

進階:整個搬家:COPILOT_HOME

如果你不想用預設位置——例如公司要求隔離自動化身分——才可用環境變數 COPILOT_HOME 整個搬家。這是進階設定:它可能帶著登入狀態與設定一起改變,沒有明確需求請不要設。官方原文:「To override the default ~/.copilot location, set the COPILOT_HOME environment variable to the path.」

下面是 macOS/Linux 的示意;Windows 使用者若有公司核准的此需求,仍在 Windows Terminal 的 PowerShell 7 分頁依官方 PowerShell 語法設定,不要把 export 指令直接貼進 PowerShell

export COPILOT_HOME="/Users/you/copilot-config"
copilot

有兩件事要先知道:

  • 你給的必須是完整路徑,不是「在預設路徑後面加一段」的部分覆寫;
  • 搬家不會自動幫你搬東西——換了目錄之後,舊資料夾裡的設定、session 歷史都不會自動出現在新位置,要自己動手搬過去。

小技巧

COPILOT_HOME 這招最實用的場景不是「單純換個地方放檔案」,而是拿來做身分隔離。例如你在 CI 環境裡不想污染平常互動用的設定、或是需要同時扮演好幾個角色分頭跑任務,幫每個角色各指定一個獨立的 COPILOT_HOME,彼此的設定、登入憑證、歷史紀錄就完全不會互相汙染——這個玩法在 Codex CLI 的 CODEX_HOME 上也看得到同樣的心法,算是這類終端機 agent 工具的共通招式。

進階:快取另外算:COPILOT_CACHE_HOME

快取資料夾不受 COPILOT_HOME 影響,走的是各平台自己的慣例位置:

平台預設快取路徑
🍎 macOS~/Library/Caches/copilot
🐧 Linux$XDG_CACHE_HOME/copilot~/.cache/copilot
🪟 Windows%LOCALAPPDATA%/copilot

想單獨搬快取,才用環境變數 COPILOT_CACHE_HOME 覆寫;沒有特定磁碟、企業隔離或自動化需求時,請保持預設值。

來源:CLI 設定目錄參考

補充資訊

為什麼快取要「另外算」、不跟著 COPILOT_HOME 一起搬?可以這樣理解:COPILOT_HOME 裡放的是「你在乎、想保留」的東西(設定、登入憑證、對話歷史),快取則是「隨時可以重生、丟了也不心疼」的暫存資料,兩者的重要性不同,各平台系統本來就有各自慣用的快取存放位置,Copilot CLI 選擇尊重平台慣例,不強迫快取跟著家目錄搬家。

8.2 進階:資料夾裡有什麼:設定目錄檔案地圖

打開 ~/.copilot/,裡面的檔案分成兩大類:你可以手動編輯的,和系統自動管理、你不該手動碰的。分清楚這條線很重要,碰錯地方輕則沒效果、重則把內部狀態弄壞。

設定目錄不是 repo 範本,也不是排錯時可清空的快取

不要把整個 ~/.copilot/config.json、登入憑證、MCP OAuth/secret 資料或個人設定複製進專案並提交 Git。專案真的需要共享設定時,只提交經團隊審核、不含 token、API key、個人路徑或登入狀態的最小範本;其餘留在本機/公司秘密管理系統。卡住時先用 /settings/help 或官方支援排查,絕不要先「全部刪掉重來」。

使用者可編輯

檔案 / 目錄用途
settings.json主要設定檔,JSONC 格式(JSON 加上可以寫註解的版本)。新手優先用 /settings;直接編輯屬進階操作,先備份且不要放進 repo。
copilot-instructions.md個人全域自訂指示,跨所有 repo 都套用(8.6 細講)。
instructions/額外的 *.instructions.md,依主題分檔存放。
mcp-config.json使用者層級的 MCP 伺服器設定,跨所有 session/repo 生效(下一章細講;進階,絕不寫入真正的 key 或 token)。
lsp-config.jsonLanguage Server Protocol 伺服器設定,用 /lsp 管理。
agents/自訂 agent 定義(.agent.md 檔),跨 session 可用。
skills/個人技能定義,每個子目錄放一份 SKILL.md
hooks/使用者層級的 hook 腳本;也能直接寫在 settings.json 裡做 inline 定義。
extensions/使用者層級的擴充功能檔案。

系統自動管理(別手動編輯)

檔案 / 目錄用途
config.json內部應用程式狀態,含認證資料、已安裝 plugin 的 metadata——官方明講不要手動編輯
permissions-config.json依專案位置分類存放的工具/目錄核准紀錄(第 7 章提過)。
session-state/依 session ID 分層存放的對話歷史、事件紀錄、工作區產物。
command-history-state/指令歷史,供反向搜尋、上下鍵翻歷史用。
session-store.dbSQLite 資料庫,存跨 session 資料(例如 checkpoint 索引)。
logs/每個 session 一份 log,命名格式 process-{timestamp}-{pid}.log
installed-plugins/已安裝的外掛,依 marketplace 名稱分層,直接安裝的放在 _direct/
plugin-data/外掛自己的持久化資料。
ide/IDE 整合用的 lock file 與狀態。
mcp-oauth-config/MCP OAuth token/註冊資訊的本機備援儲存位置(系統金鑰圈不可用時才用得到)。
mcp-secrets/MCP secret 佔位符的本機備援儲存與索引。

來源:CLI 設定目錄參考

補充資訊

不是每一項一開始就存在。有些資料夾要等你第一次用到某個功能才會生出來——例如 installed-plugins/ 得等你裝了第一個外掛才會出現。第一次打開 ~/.copilot/ 看到資料夾比表格上列的少,是正常現象,不是設定壞了。

⚠️ 一個誠實要講的地方:settings.jsonconfig.json 的角色,官方說法不完全一致

網路上有些頁面(含部分第三方整理)會說 config.json 裡有 trustedFoldersmodelthemebanner 這類使用者可以編輯的鍵。但目前較新、較權威的「CLI 設定目錄參考」頁面明確寫著:config.json 是「自動管理的內部應用程式狀態……含認證資料、已安裝 plugin metadata」,而且「Do not manually edit.」——使用者該碰的是 settings.json

比較合理的解讀是:這兩份文件反映的可能是產品在 2026-06-11 /settings 統一介面上線前後、設定檔角色調整的不同階段,部分頁面尚未完全同步更新。本書採取保守立場:把 settings.json(配合 /settings 指令)當成你該編輯的主檔案,config.json 定調為「內部狀態,別手動碰」。如果你查到的資料跟這裡寫的不一樣,別急著選一邊當唯一真相,以你實機 /settings show 或當下最新的官方文件為準。

8.3 /settings:把散落各處的偏好收進一個地方

2026-06-11,官方上線了一個叫 /settings 的統一設定介面。官方 changelog 原文:「the scattered commands like /theme, /streamer-mode, and /experimental with options that previously required manually editing your settings file into a single, discoverable surface.」——白話講,就是把原本東一個指令、西一個指令,甚至有些選項本來只能手動編輯設定檔才能改的偏好,全部收進 /settings 這一個介面,一次看得到、也一次改得到。

怎麼用

/settings

打開互動介面,可以瀏覽並修改所有設定鍵。

/settings show colorMode

看某個鍵目前的值。

/settings colorMode dim

直接設值——鍵名接著值。

/settings --repo autoUpdate false

--repo(repo 層)或 --local(本機層)可以指定要改哪一層,暗示這裡也有分層設定的概念,跟 Codex CLI 的 config.toml 三層邏輯類似,只是實作方式不同。/config/settings 的別名,打哪個都一樣。

鍵名是「點路徑」

/settings 的鍵名採用點路徑(dotted path)寫法,官方範例包含:

範例值意思
autoUpdatetrue是否讓 CLI 自動更新自己
colorModedim配色模式
streamerMode沿用原本 /streamer-mode 指令的鍵版本
sessionSync.levelfull巢狀點路徑範例,session 同步的等級

小技巧

打字的時候有 tab 補全,會直接秀出每個鍵的說明跟合法值(布林、enum 等)。不用死背鍵名,打幾個字按 Tab,畫面就會告訴你有哪些選項可以填。

8.4 配色主題:/theme

/theme 挑配色,官方提供四種:defaultdimhigh-contrastcolorblind

小技巧

high-contrast(高對比)跟 colorblind(色盲友善配色)這兩個選項,很值得特別點出來介紹給長輩或有色覺辨識需求的人——不是每個人都適合預設的柔和配色,高對比模式能讓文字與背景的邊界更清楚,色盲模式則避開容易混淆的紅綠配色組合。裝好之後不妨自己打一次 /theme 挑挑看,找到自己看得最舒服的那一種。

8.5 選一顆大腦:/model 與怎麼讓選擇「記住」

跟只綁自家模型的 Claude Code、Codex CLI 不一樣,GitHub Copilot CLI 背後是多供應商架構(第 4 章提過),能切換的模型不只一顆。官方 best-practices 頁列出幾個常見選項與適用情境:

模型適用情境
Auto降低速率限制、延遲較低——不知道選哪個就先選它
Opus 4.5複雜架構設計、需要細膩推理的除錯
Sonnet 4.5日常例行任務,快又省成本
Codex 5.2大量程式碼生成、code review

GA 公告另外提到可用模型還包含 GPT-5.3-CodexGemini 3 Pro;而且「GPT-5 mini and GPT-4.1 are included with your Copilot subscription at no additional premium request cost.」——這兩個模型不會額外計費,手頭緊的時候可以放心用。

來源:CLI best practicesGA 公告

切換與持久化

session 內打 /model(列出可選項目)或 /models;一樣可以加 --repo / --local 指定套用範圍。

/model

如果你不想每次啟動都重選一次,把 model 鍵寫進 ~/.copilot/settings.json(或 $COPILOT_HOME/settings.json),選擇就會跨 session 記住:

{
  "model": "Sonnet 4.5"
}

版本時效提醒

有些 GitHub issue 討論串出現過使用者要求加入「reasoning effort(推理強度)」調整功能的呼聲,類似 Codex CLI 的 model_reasoning_effort,例如要求加 /effort 指令或 COPILOT_MODEL_EFFORT 環境變數。截稿當下,這只是社群討論中的功能請求,官方文件並未收錄任何逐字的設定方式——請不要把它當成已經上線的功能,也別去猜測不存在的鍵名亂試。真的想確認,以你實機 /settings 能列出的鍵為準。(料源:community)

8.6 自訂指示檔案階層:連對手的記憶檔它都認得

第 5 章已經從「專案記憶」的角度完整教過 copilot-instructions.md 這一整套機制的合併規則與陷阱。放進「個人化設定」這一章的脈絡裡,我們換個角度做一次總覽速查:你能個人化到什麼程度、又能跟其他工具的使用者共用到什麼程度。完整的合併細節、@ 引用語法的完整範例,仍以第 5 章為準;這裡只重點複習框架,並補一個第 5 章沒特別強調的環境變數。

GitHub Copilot CLI 會自動偵測以下位置的指示檔案:

層級檔案說明
使用者層級(跨 repo)$HOME/.copilot/copilot-instructions.md個人全域指示,所有專案都套用
使用者層級(模組化)$HOME/.copilot/instructions/**/*.instructions.md分主題的個人指示
Repo 全域.github/copilot-instructions.md這個 repo 的全域慣例
Repo 模組化.github/instructions/**/*.instructions.md特定路徑才適用,靠 frontmatter 的 applyTo glob 限定
Agent 通用AGENTS.md走標準位置尋找(根目錄+巢狀目錄),呼應第 5 章提過的開放標準
Agent 通用CLAUDE.md「Copilot CLI also uses .claude/CLAUDE.md」——連 Claude Code 的子路徑慣例都認得
Agent 通用GEMINI.md同樣走標準位置尋找
環境變數指定COPILOT_CUSTOM_INSTRUCTIONS_DIRS(逗號分隔)額外指定要掃描的自訂目錄

來源:Add custom instructions

這張表最值得記住的一行是 CLAUDE.md。GitHub Copilot CLI 官方文件明講會直接讀取這個檔案,連 Claude Code 特有的 .claude/CLAUDE.md 子路徑都認得——如果你原本就是 Claude Code 的使用者,寫好的守則檔不用重寫一份,AGENTS.mdGEMINI.md 同理。三個對手工具的記憶檔慣例,Copilot CLI 全都讀。

官方明講:沒有嚴格優先序

跟 Codex CLI「離工作目錄越近的 .codex/config.toml 越大」這種明確規則不一樣,GitHub Copilot CLI 對多份指示檔案的合併,官方原文是:

「It removes duplicate copies of identical user-level copilot-instructions.md, repository-wide, and agent instructions, but does not define a general precedence order between these files. Avoid conflicting instructions.」

翻成白話:多份指示檔案內容不衝突的話全部生效;一旦衝突,官方沒有規則替你仲裁,直接建議「自己想辦法別讓它們互相矛盾」。這是本書四套工具的記憶檔對照裡張力最大的一組——別把 Codex CLI「近者覆寫」的心智模型帶到 Copilot CLI 這邊。

/instructions

想知道目前這個 session 實際載入了哪些指示檔案,打 /instructions 查看,還可以個別開關。

版本時效提醒

改了指示檔案不會馬上生效。官方原文:「Changes you make to custom instructions files are not immediately available for use in active CLI sessions.」——你正在跑的 session 不會自動重讀,要離開重進一個新 session 才吃得到新內容。改完檔案還是覺得沒效,先想想是不是忘了重開。

@ 引用:只在三種檔案裡有效

@相對路徑 語法可以在指示檔案裡引用另一個檔案,但只在 .github/copilot-instructions.mdAGENTS.mdCLAUDE.md 這三種檔案裡有效GEMINI.md 跟模組化的 *.instructions.md 不支援。

動手起頭:copilot init

還沒有任何指示檔案的專案,可以打:

copilot init

或 session 內打 /init,幫你在這個 repo 產生一份起手式。

小技巧

best-practices 頁補充一句很實用的心法:「Keep instructions concise and actionable. Lengthy instructions can dilute effectiveness.」——寫太長反而稀釋效果。一個好用的分法是:repo 層放這個專案特有的慣例(測試指令、目錄結構、命名規則),使用者層放跨專案都適用的個人偏好(你希望它用什麼語氣回答、偏好哪種 commit message 風格)。兩層分清楚,各自維持精簡。

8.7 收尾:其他常用的個人化參數

最後補幾個常用但不需要獨立一節的小工具,抄了就能用。

AI credit/回應上限:

/limits
/limits set max-ai-credits 50
/limits unset max-ai-credits

/limits 開對話框查看用量;/limits set max-ai-credits VALUE 幫單次回應設一個軟性上限;/limits unset [max-ai-credits|all] 取消限制。

工作目錄相關:

/cwd
/cd ../other-project
/add-dir ../shared-lib
/list-dirs

/cwd/cd [PATH] 查看/切換目前工作目錄;/add-dir PATH 把額外的目錄加進允許存取清單(第 1 章提過 Copilot CLI 預設只碰啟動當下所在目錄及其子目錄,/add-dir 就是擴大這個範圍的方法);/list-dirs 列出目前允許哪些目錄。

登入 token 環境變數優先序:

跟登入認證有關的環境變數,按這個順序決定用哪一個:

COPILOT_GITHUB_TOKEN  >  GH_TOKEN  >  GITHUB_TOKEN

前面的優先度較高,同時存在時較高優先度的會贏。

登入登出:

/login
copilot login --host github.example.com
/logout

copilot login --host HOST 可以指定 GitHub Enterprise Cloud 的 host,其餘登入細節第 3 章已完整講過。

外掛與擴充系統:

copilot plugin/plugin [marketplace|install|uninstall|update|list]copilot plugins list/enable/disable/remove——概念上跟 Claude Code 的 plugin marketplace 頗為類似,本章先點一句,不展開。

保持喚醒:

/keep-alive on
/keep-alive busy
/keep-alive 30m

/keep-alive [on|off|busy|DURATION](別名 /caffeinate),長任務執行時防電腦睡眠,跑到一半螢幕自動鎖起來很掃興。

Shell 補全與版本管理:

copilot completion zsh
copilot update
copilot version
/downgrade 0.15.2

copilot completion SHELL(支援 bash/zsh/fish)產生指令補全腳本;copilot update 手動更新;copilot version 看目前版本;/downgrade VERSION 回退到指定版本——改版節奏快,踩到新版 bug 時這招能先讓你退回穩定版本頂著用。

本章小結

這一章你學會了怎麼把 GitHub Copilot CLI 調整成自己順手的樣子:知道設定資料夾預設在 ~/.copilot/、能用 COPILOT_HOME 整個搬家、快取用 COPILOT_CACHE_HOME 另外算;看懂資料夾裡哪些檔案你能編輯(settings.jsoncopilot-instructions.md 等)、哪些是內部狀態別亂碰(config.json 等),也知道官方文件對這兩份檔案角色的說法有不完全一致的地方;學會用 /settings 這個 2026-06-11 上線的統一介面,用點路徑鍵名一次管所有偏好;用 /theme 挑配色(含無障礙友善的 high-contrastcolorblind)、用 /model 選模型並寫進 settings.json 持久化;搞懂了本章重頭戲——自訂指示檔案的階層,Copilot CLI 不只讀自己的格式,連 AGENTS.mdCLAUDE.md(含 .claude/CLAUDE.md)、GEMINI.md 都認得,但官方明講沒有嚴格優先序,衝突要自己避免;最後補了 /limits/add-dir、登入 token 優先序等常用小工具。

動手試試

  1. /settings,瀏覽一下互動介面裡有哪些鍵,找一個你想改的(例如 colorMode)用 /settings show colorMode 看目前的值。
  2. /theme,把四種配色(defaultdimhigh-contrastcolorblind)都預覽一次,選一個看得最舒服的存起來。
  3. /model,看看你實機能選哪些模型;挑一個常用的,把它寫進 ~/.copilot/settings.jsonmodel 鍵,重開一次 session 確認有記住。
  4. /instructions,看看目前這個 session 實際載入了哪些指示檔案——如果你已經有 AGENTS.mdCLAUDE.md,確認它有沒有被讀到。
  5. 打開 ~/.copilot/ 資料夾,對照 8.2 的兩張表,找出哪些檔案存在、哪些還沒生成——記得只看不要手動改 config.json
  6. 試試看 COPILOT_HOME=$(pwd)/.copilot-test copilot,感受一下用獨立設定資料夾啟動是什麼效果,跑完記得清掉這個測試用的資料夾。

本章官方文件參考