第 3 篇 進階 · 第 8 章
個人化設定
把你的偏好寫一次,GitHub Copilot CLI 以後就記得——設定檔放在哪裡、哪一份能手動改、哪一份連你自己都不該碰,還有那個連對手工具的記憶檔都認得的自訂指示階層。
想像你長住一間飯店。第一天入住,房間是飯店的標準配備:統一的枕頭、統一的電視頻道、統一的空調溫度。但如果你以後常常回來住,你會想跟櫃檯說一次「我要蕎麥枕、房間固定 24 度、退房前不用天天換床單」——說一次,以後每次入住它都記得,不用每次重講。
GitHub Copilot CLI 的「個人化設定」做的就是這件事。它不像第 7 章講的是「怎麼工作、怎麼核准動作」這種每次都要面對的心法,而是「講一次以後就記得」的偏好:外觀配色、預設用哪顆模型、你希望它讀哪些自訂指示檔案,甚至整個設定資料夾要不要搬家。這一章會帶你走過:
- 設定資料夾放在哪、怎麼整個搬家、快取又是另外算的;
- 資料夾裡到底有哪些檔案,哪些你可以手動改、哪些絕對別碰;
- 2026 年中上線的
/settings統一介面,一個地方管所有偏好; - 配色主題、模型選擇,以及怎麼讓這些選擇「跨 session 記住」;
- 本章的重頭戲:自訂指示檔案的階層——它不只讀自己的格式,連
AGENTS.md、CLAUDE.md、GEMINI.md都認得; - 收尾補幾個常用的小指令、環境變數與登入相關設定。
新手安全主線:先用介面,不先碰檔案或環境變數
剛開始只要在 Copilot CLI 裡使用 /settings、/theme 與 /model,其餘設定先維持預設值。COPILOT_HOME/COPILOT_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.json | Language 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.db | SQLite 資料庫,存跨 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.json 和 config.json 的角色,官方說法不完全一致
網路上有些頁面(含部分第三方整理)會說 config.json 裡有 trustedFolders、model、theme、banner 這類使用者可以編輯的鍵。但目前較新、較權威的「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)寫法,官方範例包含:
| 鍵 | 範例值 | 意思 |
|---|---|---|
autoUpdate | true | 是否讓 CLI 自動更新自己 |
colorMode | dim | 配色模式 |
streamerMode | — | 沿用原本 /streamer-mode 指令的鍵版本 |
sessionSync.level | full | 巢狀點路徑範例,session 同步的等級 |
小技巧
打字的時候有 tab 補全,會直接秀出每個鍵的說明跟合法值(布林、enum 等)。不用死背鍵名,打幾個字按 Tab,畫面就會告訴你有哪些選項可以填。
8.4 配色主題:/theme
打 /theme 挑配色,官方提供四種:default、dim、high-contrast、colorblind。
小技巧
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-Codex、Gemini 3 Pro;而且「GPT-5 mini and GPT-4.1 are included with your Copilot subscription at no additional premium request cost.」——這兩個模型不會額外計費,手頭緊的時候可以放心用。
切換與持久化
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(逗號分隔) | 額外指定要掃描的自訂目錄 |
這張表最值得記住的一行是 CLAUDE.md。GitHub Copilot CLI 官方文件明講會直接讀取這個檔案,連 Claude Code 特有的 .claude/CLAUDE.md 子路徑都認得——如果你原本就是 Claude Code 的使用者,寫好的守則檔不用重寫一份,AGENTS.md、GEMINI.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.md、AGENTS.md、CLAUDE.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.json、copilot-instructions.md 等)、哪些是內部狀態別亂碰(config.json 等),也知道官方文件對這兩份檔案角色的說法有不完全一致的地方;學會用 /settings 這個 2026-06-11 上線的統一介面,用點路徑鍵名一次管所有偏好;用 /theme 挑配色(含無障礙友善的 high-contrast、colorblind)、用 /model 選模型並寫進 settings.json 持久化;搞懂了本章重頭戲——自訂指示檔案的階層,Copilot CLI 不只讀自己的格式,連 AGENTS.md、CLAUDE.md(含 .claude/CLAUDE.md)、GEMINI.md 都認得,但官方明講沒有嚴格優先序,衝突要自己避免;最後補了 /limits、/add-dir、登入 token 優先序等常用小工具。
動手試試
- 打
/settings,瀏覽一下互動介面裡有哪些鍵,找一個你想改的(例如colorMode)用/settings show colorMode看目前的值。 - 打
/theme,把四種配色(default/dim/high-contrast/colorblind)都預覽一次,選一個看得最舒服的存起來。 - 打
/model,看看你實機能選哪些模型;挑一個常用的,把它寫進~/.copilot/settings.json的model鍵,重開一次 session 確認有記住。 - 打
/instructions,看看目前這個 session 實際載入了哪些指示檔案——如果你已經有AGENTS.md或CLAUDE.md,確認它有沒有被讀到。 - 打開
~/.copilot/資料夾,對照 8.2 的兩張表,找出哪些檔案存在、哪些還沒生成——記得只看不要手動改config.json。 - 試試看
COPILOT_HOME=$(pwd)/.copilot-test copilot,感受一下用獨立設定資料夾啟動是什麼效果,跑完記得清掉這個測試用的資料夾。
本章官方文件參考
- CLI 設定目錄參考:https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-config-dir-reference
/settings統一介面公告:https://github.blog/changelog/2026-06-11-copilot-cli-configure-everything-from-one-place-with-settings/- 自訂指示檔案:https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-custom-instructions
- CLI best practices(模型選擇建議):https://docs.github.com/en/copilot/how-tos/copilot-cli/cli-best-practices
- Copilot CLI GA 公告(可用模型清單、GPT-5 mini/4.1 免加價):https://github.blog/changelog/2026-02-25-github-copilot-cli-is-now-generally-available/
- 工具核准與允許機制(
permissions-config.json):https://docs.github.com/en/copilot/how-tos/copilot-cli/use-copilot-cli/allowing-tools