CLI 指令
Gemini CLI 支援數個內建指令,可協助您管理會話、客製化介面及控制其行為。這些指令的前綴為正斜線 (/
)、at 符號 (@
) 或驚嘆號 (!
)。
斜線指令 (/
)
斜線指令提供對 CLI 本身的元層級控制。
/bug
- 說明: 回報關於 Gemini CLI 的問題。根據預設,問題會回報至 Gemini CLI 的 GitHub 儲存庫。您在
/bug
後輸入的字串將成為所回報錯誤的標題。預設的/bug
行為可以使用.gemini/settings.json
檔案中的bugCommand
設定進行修改。
- 說明: 回報關於 Gemini CLI 的問題。根據預設,問題會回報至 Gemini CLI 的 GitHub 儲存庫。您在
/chat
- 說明: 儲存及恢復對話記錄,以便以互動方式建立分支對話狀態,或從之後的會話中恢復先前的狀態。
- 子指令:
save
- 說明: 儲存目前的對話記錄。您必須新增一個
<tag>
來識別對話狀態。 - 用法:
/chat save <tag>
- 說明: 儲存目前的對話記錄。您必須新增一個
resume
- 說明: 從先前的儲存點恢復對話。
- 用法:
/chat resume <tag>
list
- 說明: 列出可用於恢復聊天狀態的標籤。
/clear
- 說明: 清除終端機螢幕,包括 CLI 中可見的會話歷史記錄和捲動回溯。底層的會話資料(用於歷史記錄回憶)可能會根據具體實作而保留,但視覺顯示會被清除。
- 鍵盤快捷鍵: 隨時按下 Ctrl+L 可執行清除操作。
/compress
- 說明: 將整個聊天情境替換為摘要。這可以節省未來任務所使用的 token,同時保留已發生事件的高層級摘要。
/editor
- 說明: 開啟一個對話方塊以選擇支援的編輯器。
/help
(或/?
)- 說明: 顯示關於 Gemini CLI 的說明資訊,包括可用的指令及其用法。
/mcp
- 說明: 列出已設定的 Model Context Protocol (MCP) 伺服器、其連線狀態、伺服器詳細資訊及可用工具。
- 子指令:
desc
或descriptions
:- 說明: 顯示 MCP 伺服器和工具的詳細說明。
nodesc
或nodescriptions
:- 說明: 隱藏工具說明,僅顯示工具名稱。
schema
:- 說明: 顯示工具已設定參數的完整 JSON schema。
- 鍵盤快捷鍵: 隨時按下 Ctrl+T 可切換顯示和隱藏工具說明。
/memory
- 說明: 管理 AI 的教學情境(從
GEMINI.md
檔案載入的階層式記憶體)。 - 子指令:
add
:- 說明: 將後續文字新增至 AI 的記憶體。用法:
/memory add <要記住的文字>
- 說明: 將後續文字新增至 AI 的記憶體。用法:
show
:- 說明: 顯示從所有
GEMINI.md
檔案載入的目前階層式記憶體的完整串接內容。這讓您可以檢視提供給 Gemini 模型的教學情境。
- 說明: 顯示從所有
refresh
:- 說明: 從設定位置(全域、專案/上層目錄及子目錄)中找到的所有
GEMINI.md
檔案重新載入階層式教學記憶體。此指令會使用最新的GEMINI.md
內容更新模型。
- 說明: 從設定位置(全域、專案/上層目錄及子目錄)中找到的所有
- 注意: 關於
GEMINI.md
檔案如何構成階層式記憶體的更多詳細資訊,請參閱 CLI 設定文件。
- 說明: 管理 AI 的教學情境(從
/restore
/stats
- 說明: 顯示目前 Gemini CLI 會話的詳細統計資料,包括 token 使用量、快取 token 節省量(若有)及會話持續時間。注意:快取 token 資訊僅在正在使用快取 token 時才會顯示,這種情況目前發生在 API 金鑰驗證中,而非 OAuth 驗證。
- 說明: 開啟一個對話方塊,讓您變更 Gemini CLI 的視覺主題。
/auth
- 說明: 開啟一個對話方塊,讓您變更驗證方法。
/about
- 說明: 顯示版本資訊。回報問題時請分享此資訊。
- 說明: 顯示 Gemini CLI 中目前可用的工具清單。
- 子指令:
desc
或descriptions
:- 說明: 顯示每個工具的詳細說明,包括每個工具的名稱及其提供給模型的完整描述。
nodesc
或nodescriptions
:- 說明: 隱藏工具說明,僅顯示工具名稱。
/quit
(或/exit
)- 說明: 退出 Gemini CLI。
At 指令 (@
)
At 指令用於將檔案或目錄的內容包含在您給 Gemini 的提示中。這些指令包含 git 感知過濾。
@<檔案或目錄的路徑>
- 說明: 將指定檔案或檔案集合的內容注入您目前的提示中。這對於詢問有關特定程式碼、文字或檔案集合的問題很有用。
- 範例:
@path/to/your/file.txt 請解釋這段文字。
@src/my_project/ 請摘要此目錄中的程式碼。
這個檔案是關於什麼的?@README.md
- 詳細資訊:
- 如果提供單一檔案的路徑,則會讀取該檔案的內容。
- 如果提供目錄的路徑,該指令會嘗試讀取該目錄及其任何子目錄中檔案的內容。
- 路徑中的空格應使用反斜線進行轉義(例如:
@My\ Documents/file.txt
)。 - 該指令內部使用
read_many_files
工具。內容在傳送給 Gemini 模型之前會被擷取並插入到您的查詢中。 - Git 感知過濾: 根據預設,會排除 git 忽略的檔案(如
node_modules/
、dist/
、.env
、.git/
)。此行為可透過fileFiltering
設定進行變更。 - 檔案類型: 該指令適用於純文字檔案。雖然它可能會嘗試讀取任何檔案,但底層的
read_many_files
工具可能會跳過或截斷二進位檔案或非常大的檔案,以確保效能和相關性。該工具會指示是否有檔案被跳過。
- 輸出: CLI 將顯示一個工具呼叫訊息,指出已使用
read_many_files
,並附上一則訊息,詳細說明狀態和已處理的路徑。
@
(單獨的 at 符號)- 說明: 如果您只輸入一個單獨的
@
符號而沒有路徑,查詢將按原樣傳遞給 Gemini 模型。如果您在提示中特別要討論@
符號本身,這可能會很有用。
- 說明: 如果您只輸入一個單獨的
@
指令的錯誤處理
- 如果在
@
後指定的路徑找不到或無效,將會顯示錯誤訊息,且查詢可能不會傳送給 Gemini 模型,或者會在沒有檔案內容的情況下傳送。 - 如果
read_many_files
工具遇到錯誤(例如,權限問題),也將會回報。
Shell 模式與傳遞指令 (!
)
!
前綴可讓您直接從 Gemini CLI 內部與系統的 shell 互動。
!<shell_command>
- **說明:**在您系統的預設 shell 中執行給定的
<shell_command>
。指令的任何輸出或錯誤都會顯示在終端機中。 - 範例:
!ls -la
(執行ls -la
並返回 Gemini CLI)!git status
(執行git status
並返回 Gemini CLI)
- **說明:**在您系統的預設 shell 中執行給定的
!
(切換 shell 模式)- **說明:**單獨輸入
!
可切換 shell 模式。- 進入 shell 模式:
- 啟用時,shell 模式會使用不同的顏色和「Shell 模式指示器」。
- 在 shell 模式下,您輸入的文字會被直接解譯為 shell 指令。
- 離開 shell 模式:
- 離開後,UI 會恢復其標準外觀,並繼續正常的 Gemini CLI 行為。
- 進入 shell 模式:
- **說明:**單獨輸入
**所有
!
用法的注意事項:**您在 shell 模式中執行的指令,其權限和影響與直接在終端機中執行相同。