命令列的 GitHub Copilot

已完成

GitHub Copilot 不僅是用於整合開發環境(IDE)——它現在是你終端機中強大的助手。 GitHub Copilot CLI 將 Copilot 直接帶入命令列,能解釋指令、從自然語言建議 shell 指令,並協助你安全且互動地處理檔案和專案。

Copilot CLI 使用 GitHub 認證,且獨立於 GitHub CLI 運作,但會使用你現有的憑證。 無論你是指令列新手還是經驗豐富的開發者,Copilot CLI 都能減少猜測並加速日常工作流程。

本單元涵蓋:

  • 安裝與執行 GitHub Copilot CLI
  • 終端機中的互動式會話
  • 斜線指令與自然語言輸入
  • 配置與選項

安裝與啟動 Copilot CLI

在 macOS 和 Linux 上透過 Homebrew 安裝:

brew install copilot-cli

或者使用 官方安裝腳本:

curl -fsSL https://gh.io/copilot-install | bash

以 互動模式啟動 Copilot CLI:

copilot

它會顯示歡迎橫幅和一則提示:

副駕駛互動模式橫幅截圖。

在第一次啟動時,Copilot 會詢問你是否信任目前資料夾裡的檔案。 Copilot 可在會話中讀取、修改或執行此目錄中的檔案,因此只能在你信任的位置繼續操作。

Copilot 指定資料夾的互動式介面的截圖。

你可以用 來 @ 選擇你想處理的特定檔案作為上下文。

在副駕駛互動模式下選取檔案的截圖。

在互動式會議中,你可以:

  • 使用斜杠指令(/command)來控制會話並設定 Copilot CLI。
  • 輸入 自然語言提示 來解釋、建議或修訂指令。

如果要在不進入完整互動模式的情況下執行單次提示:

copilot -i "explain brew install git"
copilot -i "suggest find large files and delete them"

常見的斜線指令

Slash 指令是明確的控制會話指令。 以下是最常見的:

斬擊指令 Description
/help 顯示可用指令與選項
/explain <command> 讓 Copilot 解釋任何 shell 指令
/suggest <task> 請 Copilot 建議用於某項工作的 shell 指令
/revise 根據你的指示修改最後的建議
/feedback 對回應或建議提交回饋
/exit 退出互動模式
/model <model> 選擇使用哪個 AI 模型
/theme [auto|dark|light] 更改終端主題
/skills 管理技能以提升能力
/mcp 管理 MCP 伺服器配置
/list-dirs 顯示允許檔案操作的目錄
/reset-allowed-tools 重設允許的工具清單

斜線指令無法被自然語言提示取代。 它們是控制會話設定和設定的唯一方式。

工作流程範例

1. 解釋指令

> Explain what `git reset --hard HEAD` does

Copilot 會提供詳細說明。

Copilot CLI 在互動模式下解釋指令的截圖。

2. 建議指令

> Find and delete all .log files in my home folder

Copilot 會產生指令建議,如果你對建議滿意,會提示你執行。

Copilot CLI 在互動模式下建議指令的截圖。

3. 修訂建議

收到建議後,你可以輸入後續提示來修正建議指令:

> Include only files modified in the last 7 days

Copilot CLI 根據後續提示改進建議的截圖。

4. 提供回饋

回覆或建議後:

> /feedback

在 Copilot CLI 互動模式下使用 /feedack slash 指令的截圖。

Copilot 會提示你選擇想要發送的回饋類型,然後導向正確的表單完成回饋。

5. 退出互動模式

> /exit

設定選項

在 Copilot CLI 中,設定方式如下:

  1. 在互動模式中的斜線指令

    • /model 選擇 AI 模型
    • /theme 更換終端主題
    • /skills 管理增強型功能
    • /reset-allowed-tools 重置工具
    • /list-dirs 查看允許目錄
    • /mcp MCP 伺服器設定
  2. 副駕駛 CLI 配置 (非互動模式)

Copilot CLI 的設定透過權限提示、命令列旗標及本地設定檔來管理。 這些設定控制 Copilot 能存取並代表你執行的事項。

常見的組態選項包括:

  • 受信任目錄——控制 Copilot 可讀取、編輯及執行檔案。
  • 工具權限 – 允許或限制 Copilot 執行 shell 指令或使用如 --allow-tool 或 --deny-tool等旗標修改檔案。
  • 路徑權限 – 控制 Copilot 可存取的目錄。
  • URL 權限 – 管理 Copilot 可連接的外部網域。

完整設定選項請參閱 官方 GitHub Copilot CLI 文件 。

沙盒執行環境

GitHub Copilot CLI 支援沙盒執行環境,幫助保護你的系統,同時讓 Copilot 代表你執行任務。

沙盒化能將指令、檔案操作及其他活動與主要開發環境隔離開來。 根據你的工作流程,你可以選擇 本地沙盒 或 雲端沙盒。

本機沙箱

本地沙盒讓 Copilot 能在你電腦的受限環境中執行指令。

啟用後,Copilot 對您的檔案系統、網路連線及作業系統功能的存取權限有限,有助於降低意外變更的風險,同時仍能讓您享受代理程式輔助的工作流程。

若要在互動工作階段中啟用本機沙箱:

/sandbox enable

啟用沙盒後,Copilot 執行的指令會在沙盒環境中執行,而非直接在主機系統上執行。

本地沙盒的好處

Benefit Description
改善安全性 限制對敏感系統資源的存取。
更安全的實驗 讓你能以較低風險測試代理驅動的工作流程。
地方處決 能利用你機器的資源,不需要雲端基礎設施。
更強的控制力 在使用自主代理時提供額外防護措施。

雲端沙箱

雲端沙箱讓 Copilot CLI 會話能在 GitHub 完全隔離的 Linux 環境中運行。

與本地沙盒不同,雲端沙盒會話完全在 GitHub 託管的基礎設施中執行,並與你的本地機器及其他沙盒會話分開運作。

雲端沙箱是建立在 Azure 容器應用程式 沙盒之上,GitHub 提供認證、治理、政策執行及帳單整合。

若要開始雲端沙箱工作階段:

copilot --cloud

啟動後,Copilot 可在雲端環境中執行指令、修改檔案、執行測試及執行開發任務,而非在本地裝置上完成。

雲端沙盒的好處

Benefit Description
強烈隔離 工作負載會獨立於你的本機運作。
裝置彈性 在不同裝置上繼續開始工作階段。
資源卸載 使用雲端資源取代本地 CPU 和記憶體。
平行執行 同時執行多個代理驅動任務。

跨裝置繼續開始工作階段

由於雲端沙盒會話運行於 GitHub 託管的基礎設施中,工作不會綁定在特定電腦上。

這可讓您:

  • 在一台裝置上啟動工作階段
  • 從另一台裝置恢復同一個會話
  • 繼續工作,無需手動傳輸檔案或重建環境

這種彈性對於跨多台機器或多地點工作的開發者尤其有用。

雲端沙盒會話生命週期

雲端沙盒會話可以存在三種狀態:

State Description
現役 會話正在進行,並可供互動。
已停止 會話會暫停,但其狀態會被保留以備未來使用。
已刪除 會話和所有儲存狀態都會永久移除。

當會話停止時,GitHub 會儲存環境快照,包括檔案、環境變數及進行中的工作。 恢復會話會恢復儲存狀態,讓你能從中斷的地方繼續。

認證與存取

雲端沙盒使用與 GitHub Copilot CLI 相同的認證模型。

如果你能驗證到 GitHub Copilot CLI 並有權限存取 GitHub Copilot,就不需要額外的雲端服務提供者設定。

您不需要:

  • 管理 API 金鑰
  • 配置雲端基礎設施
  • 佈建虛擬機器
  • 維護容器環境

Note

組織或企業管理員必須啟用雲端沙盒存取政策,成員才能使用雲端沙盒環境。

本機與雲端沙箱

特徵 / 功能 本地沙盒 雲端沙盒
執行地點 本地機器 GitHub 託管環境
資源使用量 地方資源 雲端資源
隔離等級 受限的當地環境 完全隔離的雲端環境
裝置獨立性 No 是的
平行工作負載 受限於本地硬體 易於擴展

什麼時候應該使用沙箱?

考慮在以下情況下使用沙盒:

  • 處理不熟悉的資料庫
  • 測試由代理程式產生的指令
  • 運行自主工作流程
  • 執行可能具破壞性的行動
  • 跨多裝置運作
  • 卸載運算密集型開發任務

沙盒提供額外的安全與彈性層,讓您能安全地使用 GitHub Copilot CLI 的代理功能。

有效使用 Copilot CLI 的技巧

  • 探索性任務請使用互動模式(copilot)。
  • 使用一次模式 (copilot -i) 以取得快速回應。
  • 自然語言輸入是可行的——你不一定需要斜線指令。
  • 執行前一定要複習指令。
  • 將 Copilot CLI 與 GitHub CLIgh() 結合,用於儲存庫和問題管理。
  • 使用 斜杠指令 來進行結構化的操作或回饋。