1. 簡介
在本程式碼實驗室中,您將瞭解 Gemini CLI,這項開放原始碼 AI 代理可讓您直接在終端機使用 Gemini 的強大功能。
Gemini CLI 專案是開放原始碼,您可以在這裡查看公開藍圖。
在本程式碼研究室中,您將逐步完成下列活動:
- 安裝 Gemini CLI
- 基本設定
- 探索 Gemini CLI 中的工具和內建指令
- 透過
GEMINI.md
檔案自訂 Gemini CLI - 透過 Gemini CLI 探索幾個用途
軟硬體需求
- Chrome 網路瀏覽器
- Gmail 帳戶
- 本機電腦已安裝 Node 20 以上版本。
本程式碼研究室適合所有程度的使用者和開發人員 (包括初學者)。
2. 安裝
在執行設定和 Gemini CLI 之前,請先建立資料夾,做為所有專案的主資料夾。這是 Gemini CLI 的起點,但它也會參照系統上的其他資料夾,我們稍後會視需要說明。
請繼續建立範例資料夾 (gemini-cli-projects
),並透過下列指令前往該資料夾。如要使用其他資料夾名稱,請自行變更。
mkdir gemini-cli-projects
前往該資料夾:
cd gemini-cli-projects
如要執行 Gemini CLI,可以使用下列任一方法:
- 使用下列指令執行:
npx https://github.com/google-gemini/gemini-cli
- 你可以在系統上全域安裝 Gemini CLI。請確認您具備管理員權限。
npm install -g @google/gemini-cli
然後使用下列指令執行:
gemini
假設您已透過上述任一方法啟動 Gemini CLI,應該會看到下列畫面,詢問您要選擇哪種主題。請選取喜歡的樣式:
選取後,系統會要求您提供驗證方法。建議您在本實驗室中使用個人 Google 帳戶,而非非 Google 或 Google Workspace 相關帳戶。這項免費授權可讓你使用 Gemini 2.5 Pro,以及支援 100 萬個詞元的脈絡窗口。免費方案提供每分鐘 60 個模型要求,每天 1,000 個要求,完全免付費。
如果 Google 帳戶目前的免費配額不敷使用,可以選擇使用 Gemini API 金鑰,甚至是 Google Cloud Vertex AI,但必須擁有專案 ID 和該專案的位置名稱。如要使用其他驗證方法,請參閱說明文件的「驗證」一節。
然後按一下「Enter」。瀏覽器會開啟 Google 驗證頁面。使用 Google 帳戶進行驗證,接受條款,成功驗證後,您會發現 Gemini CLI 已準備就緒,等待您的指令。螢幕截圖範例如下:
輸入 /help
(正斜線),即可查看各種指令和鍵盤快速鍵,如下所示:
首次與 Gemini CLI 互動
在方塊中輸入第一則訊息。我們將提供如下查詢:
您會發現查詢結果是叫用 GoogleSearch
工具 (Gemini CLI 內建工具)。我們已透過 Gemini CLI 強大的內建工具 GoogleSearch
,根據從網路上取得的資訊生成回覆,這是一種很有趣的方式。我們會在下一節中進一步瞭解「工具」。
我們暫時先結束 Gemini CLI。你可以使用 /quit
指令,或在 Gemini CLI 互動式終端機工作階段中按兩次 Ctrl-C
。
Gemini CLI 自訂檔案:settings.json
回想一下,我們第一次啟動 Gemini CLI 時,系統會要求選取主題和驗證方法。後續執行 Gemini CLI 時,系統不會再次要求你選取主題和驗證方法。這表示系統會將設定檔儲存在某處,而設定檔使用的檔案稱為 settings.json
,可用於自訂 Gemini CLI。
系統會按照以下優先順序套用設定:
- 工作區:
.gemini/settings.json
(會覆寫使用者和系統設定)。 - 使用者:
~/.gemini/settings.json
(覆寫系統設定)。 - 系統:
/etc/gemini-cli/settings.json
(適用於所有使用者)。
回想一下,選取主題時,系統會要求將設定儲存在使用者設定中。請前往 ~/.gemini folder
,您會看到 settings.json
檔案。
我的 settings.json
檔案如下所示。如果您選取其他主題,就會看到該主題的名稱。
{
"theme": "Default",
"selectedAuthType": "oauth-personal"
}
3. Gemini CLI 指令參數
啟動 Gemini CLI 時,可以提供幾個指令列參數。如要取得完整選項清單,可以使用 --help
,如下所示。
gemini --help
這時畫面會顯示所有可用的選項。建議您先詳閱這份說明文件。
讓我們來看看其中幾項。第一種方法是將 Gemini CLI 設為使用 Pro 或 Flash 模型。撰寫本實驗室時,目前僅支援這兩種模型。系統預設使用 Gemini 2.5 Pro 模型,但如要使用 Flash 模型,可以在啟動 Gemini CLI 時透過 -m
參數指定,如下所示:
gemini -m "gemini-2.5-flash"
你會發現,如果以上述方式啟動,可以查看 Gemini CLI 終端機右下方的模型,如下所示:
非互動模式
您也可以選擇以非互動模式執行 Gemini CLI。也就是說,您直接提供提示,Gemini CLI 就會回應,不必開啟互動式終端機。如果您打算在指令碼或任何其他自動化程序中,以自動化方式使用 Gemini CLI,這項功能就非常實用。您可以使用 -p 參數將提示提供給 Gemini CLI,如下所示:
gemini -p "What is the gcloud command to deploy to Cloud Run"
請注意,你無法繼續對話,提出後續問題。
4. Gemini CLI - 內建工具
Gemini CLI 內建一組工具,而工具說明文件指出「Gemini 模型會使用這些工具與本機環境互動、存取資訊及執行動作。這些工具可提升 CLI 的功能,讓 CLI 不僅能生成文字,還能協助處理各種工作。」
如要取得目前的內建工具清單,我們只需要叫用 /tools
指令,如下所示:
您應該會立即想到,Gemini CLI 是否可以在需要時直接呼叫這些工具?如果涉及寫入本機系統、從外部系統讀取資料、連線至外部網路等敏感作業,預設答案為「否」。
啟動 CLI 時會顯示 --yolomode
,但我們不會使用這個工具。Gemini CLI 會提示您授予執行所選工具的權限。你可以拒絕授權、允許執行一次,或授予全面權限,允許一律執行。您應該完全掌控一切。
讓我們提供提示,讓 Gemini CLI 選擇其中一個內建工具來執行,並充分瞭解運作方式。
我們想取得全球最新的財經新聞資訊,並將這些資訊儲存到我們啟動 Gemini CLI 的本機工作目錄中。我們提供下列提示:
Search for the latest headlines today in the world of finance and save them in a file named finance-news-today.txt
請想像一下,這個外掛程式應該要做什麼。理想上,它需要進行 Google 搜尋,從相關資訊來源取得財經新聞。然後,系統需要建立名為 finance-news-today.txt
的檔案 (本機系統的寫入作業,需要您的授權),並填入內容。
現在來看看會發生什麼情況 (您應該在自己的電腦上進行相同操作)。
首先,它會叫用 GoogleSearch
工具來搜尋網路。
搜尋完成後,系統會擷取資料,如下所示:
完成後,即可將這項資訊寫入檔案,並使用 WriteFile
工具,但由於這是敏感作業 (write),因此系統會要求您授予權限。你可以決定權限類型,例如「允許一次」、「一律允許」等。我們目前選取「允許一次」。
接著,系統會將資訊寫入檔案,並在下方顯示成功訊息:
How do we check if the file is written or not? 我們可以透過 @file
要求朗讀內容。我們提供如下所示的提示。輸入 @
時,系統會顯示目前資料夾中的檔案清單,以及剛建立的檔案。選取該項服務,然後提交提示。我的提示如下所示:
read the contents of @finance-news-today.txt
這會導致系統叫用必要工具 (ReadManyFiles、ReadFile),並顯示內容,如下所示:
此外,您也可以趁這個機會瞭解如何直接在 Gemini CLI 中使用 Shell。在訊息方塊中按下 !
即可進入殼層模式。這會切換至 Shell 模式。如要返回,請再次按下 !
或 ESC
鍵。
進入 Shell 模式後,提示開頭會顯示 !
,如下所示:
我可以直接使用 pwd
和 ls
等標準指令進行檢查,如下所示:
我們今天可以透過 cat
指令列印檔案內容。
練習:請試試這項簡短的練習。選擇要使用的 RSS 動態消息。向 Gemini CLI 輸入提示,擷取 RSS 動態消息的內容,並以特定方式格式化結果。這是自動化執行每日例行事項的好方法。
提示:您應該會讓 Gemini CLI 使用 WebFetch
工具。
5. 設定 Model Context Protocol (MCP) 伺服器
MCP 伺服器是一種應用程式,可透過 Model Context Protocol 向 Gemini CLI 公開工具和資源,讓 CLI 與外部系統和資料來源互動。MCP 伺服器可做為 Gemini 模型與本機環境或其他服務 (例如 API) 之間的橋樑。
MCP 伺服器可讓 Gemini CLI 探索及執行工具,藉此擴充 Gemini CLI 的功能,執行內建功能以外的動作,例如與資料庫、API、自訂指令碼或專門工作流程互動。
Gemini CLI 支援設定 MCP 伺服器,以探索及使用自訂工具。啟動 Gemini CLI 後,您可以使用 /mcp
指令檢查設定的 MCP 伺服器,如下所示:
如果尚未設定任何 MCP 伺服器,系統會啟動 Gemini CLI 的 MCP 伺服器說明文件。
您可以在 ~/.gemini/settings.json
檔案或專案的根目錄中,於全域層級設定 MCP 伺服器。建立或開啟 .gemini/settings.json
檔案。在檔案中,您需要新增 mcpServers
設定區塊,如下所示:
"mcpServers": {
"server_name_1": {},
"server_name_2": {},
"server_name_n": {}
}
每個伺服器設定都支援下列屬性 ( 參考文件):
必要 (下列其中一項)
- command (字串):Stdio 傳輸的可執行檔路徑
- url (字串):SSE 端點網址 (例如 "http://localhost:8080/sse")
- httpUrl (字串):HTTP 串流端點網址
選用
- args (string[]):Stdio 傳輸的指令列引數
- 標頭 (物件):使用 url 或 httpUrl 時的自訂 HTTP 標頭
- env (物件):伺服器程序的環境變數。值可以使用 $VAR_NAME 或 ${VAR_NAME} 語法參照環境變數
- cwd (字串):Studio 傳輸的工作目錄
- timeout (數字):要求逾時時間 (以毫秒為單位)。預設值為 600,000 毫秒 (10 分鐘)。
- trust (布林值):設為 true 時,會略過這個伺服器的所有工具呼叫確認 (預設值為 false)
- includeTools (字串陣列):要從這個 MCP 伺服器納入的工具名稱清單。指定後,只有這裡列出的工具可從這個伺服器取得 (白名單行為)。如未指定,系統預設會啟用伺服器中的所有工具。
- excludeTools (string[]):要從這個 MCP 伺服器排除的工具名稱清單。即使伺服器公開這些工具,模型也無法使用。注意:excludeTools 的優先順序高於 includeTools,如果工具同時出現在兩個清單中,系統會排除該工具。
如果您使用 GitHub,可能需要設定其中一個重要的 MCP 伺服器。不過請注意,Gemini CLI 會叫用系統上的 Git 工具,您也可以指示 Gemini CLI 改用該工具。請注意,這項功能可協助您執行指令,但您必須在系統中設定這些工具。
Github MCP 伺服器
Github 官方 MCP 伺服器提供充足的說明文件,說明其公開的工具以及如何設定這些工具。Gemini CLI 也支援遠端 MCP 伺服器,因此您可以選擇在本機或遠端執行。
在本教學課程中,我們選擇使用 Github 中的「Remote MCP Server」選項。為此,您必須先取得 GitHub 的個人存取權杖 (PAT)。
取得該檔案後,您需要在 settings.json
檔案中新增 MCP 伺服器物件。以下是系統上的完整 settings.json 檔案。您可能會有其他設定,但 mcpServers
物件應如下所示:
{
"theme": "Default",
"selectedAuthType": "oauth-personal",
"mcpServers": {
"github": {
"httpUrl": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "GITHUB_PAT"
},
"timeout": 5000
}
}
}
更新 settings.json
的 Github MCP 伺服器設定後,您可以重新啟動 Gemini CLI 或執行 /mcp refresh
指令。下方的螢幕截圖醒目顯示我電腦上設定的 GitHub MCP 伺服器,以及 Gemini CLI 現在可搭配 MCP 使用的各種工具。
首先,請輸入提示,從 GitHub MCP 伺服器叫用其中一項工具。輸入下列提示:
請注意,系統會從 Github MCP 伺服器選取正確的工具,但與其他內建工具一樣,您也必須提供明確的權限才能叫用該工具。請繼續操作,看看輸出內容。
您現在應該可以處理其中一個 GitHub 專案。以自然語言提出查詢,例如:
- 請向我說明 <repo-name>?
- 在本機電腦上複製 <repo-name>。
- Describe @<file-name> 或 @<directory-name>/
- 這個存放區有哪些不同元件?
- 我已完成必要變更。請將變更推送至 GitHub,並使用 GitHub MCP 伺服器工具執行這項操作。
我們會在後續實驗室中,詳細說明如何使用 GitHub MCP 伺服器。
Context7 MCP 伺服器
Context7 提供 LLM 和 AI 程式碼編輯器的最新說明文件。如果您想使用所選架構的最新說明文件,為 LLM 提供背景資訊,建議設定 Context7 MCP 伺服器。
請確認「Context7」Context7首頁是否列出程式庫。
您需要在 settings.json
檔案中新增 MCP 伺服器。
"context7": {
"httpUrl": "https://mcp.context7.com/mcp"
}
設定 MCP 伺服器並成功載入 Gemini CLI 後,您應該就能查看 Context7 工具,如下所示:
現在,您可以在提示中指定要使用特定 XYZ 架構,並要求 Gemini CLI 在生成應用程式或程式碼片段時,使用 Context7
取得最新文件。
以下是提示範例,我想使用 Google 的 Agent Development Kit (ADK) 編寫代理程式。我在提示中指定透過 Context7 MCP 伺服器查詢相關說明文件。
I am working on coding an Agent using the Agent Development Kit (ADK) from Google. I would like to know how to create the LLMAgent in Python. Use Context7 for the latest documentation on ADK and specifically use /google/adk-python, /google/adk-docs and adk.wiki
以下是收到的輸出內容:
Google 簡報 MCP 伺服器
Github 專案 (https://github.com/matteoantoci/google-slides-mcp) 提供 MCP 伺服器,可與 Google 簡報 API 互動。您可以使用這項服務,以程式輔助方式建立、讀取及修改 Google 簡報。
專案中提供設定 MCP 伺服器的步驟。您需要 Node.js 環境,才能建構伺服器、設定 Google Cloud 專案和 OAuth 2.0 權杖,然後在 settings.json 檔案中設定 MCP 伺服器。
設定完成後,即可執行下列提示:
- 從「web_url」中擷取最新資訊,將其歸納為重點,然後建立名為「my_presentation」的簡報。
快來試試看吧!
更多 MCP 伺服器
以下是您可能會感興趣的其他 MCP 伺服器清單:
- Firebase MCP 伺服器
- Google 生成式 AI 媒體服務 (Imagen、Veo、Lyria)
- 資料庫適用的 MCP 工具箱 (適用於 Firestore、BigQuery、Google Cloud 資料庫)
- Google Workspace MCP 伺服器 (適用於 Google 文件、試算表、日曆、Gmail)
如需設定上述 MCP 伺服器的操作說明,請參閱這篇網誌文章。
6. 可嘗試的用途
Gemini CLI 適用於各種用途,無論是開發人員或非開發人員都能使用。以下列舉幾種情況,您可以根據感興趣的領域,嘗試其中一種或全部情況。
在上述每種情況下,系統都會提供提示。啟動 Gemini CLI 時,您可以使用 -p
參數,在 Gemini CLI 互動模式或非互動模式中試用這項功能。
整理檔案/資料夾
您可以視需要使用 Gemini CLI,依類型整理各個資料夾中的檔案。前往電腦上含有多個檔案的資料夾,例如 .txt、.png、.jpg、.pdf、.mp4 等。這可能是你的「桌面」或「下載」資料夾。
前往該資料夾並啟動 Gemini CLI。我們將要求 AI 先建立幾個資料夾:圖片、文件、影片,然後要求 AI 整理資料夾中的檔案。
Gemini CLI 執行指令前通常會要求您提供權限,尤其是修改檔案系統的指令 (例如寫入、移動或刪除檔案)。請務必詳閱這些提示,再選擇是否授予權限。這是你的安全網。
Create the following folders "Images","Documents","Videos"
然後輸入下列提示:
Go through all the files in this folder and then organize them by moving all the files ending with .jpg, .jpeg, .gif into the "Images" folder. Move all ".txt" files into the "Documents" folder. Move all the ".mp4" files in the "Videos" folder.
其他幾種整理情境 (提示會顯示在每個情境旁):
- 摘要:針對「Documents」資料夾中的每個文件,在同一個資料夾中建立名為「summary_ORIGINAL_FILENAME.txt」的 txt 檔案,其中包含文件重點的 3 句摘要。
- 依類型分類:掃描這個目錄中的所有 PDF 和 DOCX 檔案。將名稱或內容包含「invoice」的所有檔案移至「Financial/Invoices」資料夾。將含有「收據」的檔案移至「財務/收據」。其他 .docx 檔案會歸入「報表」。
- 擷取重要資訊 (並「加上標記」):讀取「Financial/Invoices」資料夾中每個 PDF 檔案的內容。如果找到日期,請重新命名檔案,並以 YYYY-MM-DD 格式加入該日期,例如 ‘invoice_2025-07-26_original_name.pdf'.
整理圖片
我們來看看如何整理電腦中的圖片內容。
如要試用這項功能,請按照以下步驟操作:
- 您需要擁有包含各種圖片檔案 (.jpg、.png 等) 的目錄/資料夾。請包含一些含有 EXIF 資料的相片 (相機/手機拍攝的大部分相片都有這類資料)。
- 前往這個目錄。
- 啟動 Gemini CLI。
請嘗試下列任一情境 (提示位於各情境旁):
- 依日期重新命名 (EXIF 資料):將這個目錄中的所有 .jpg 和 .png 檔案重新命名,並以「YYYYMMDD_HHMMSS_original_name.jpg」格式,加入 EXIF 資料中的建立日期。如果找不到 EXIF 日期,請使用檔案的上次修改日期。
- 建立圖片說明:為這個資料夾中的每張圖片撰寫說明,然後將說明儲存到同一個目錄中,並命名為「description_ORIGINAL_FILENAME.txt」。
- 找出重複項目 (概念性,需要更進階的邏輯):根據視覺內容找出這個資料夾中的所有重複圖片,並列出檔案名稱。請勿刪除。
總結文章 (本機檔案或網頁)
在下列每種情境中,您可以視需要變更網址、感興趣的主題和本機檔案名稱。提供的檔案名稱為範例,您可以將其替換為系統中的檔案名稱。
請嘗試下列任一情境 (提示位於各情境旁):
- 整理網頁文章摘要 (單一網址):前往 https://medium.com/google-cloud/getting-started-with-gemini-cli-8cc4674a1371,並整理這篇新聞報導的前 3 個重點。
- 摘要多篇網頁文章 (例如搜尋結果):使用 Google 搜尋尋找有關「Gemini CLI」的最新新聞報導。針對前 5 篇相關的文章,分別以 2 到 3 句話摘要說明,並列出網址。
- 總結本機文字檔:總結「my_research_paper.txt」文章的重點。著重於方法和結論。
- 摘要本機 PDF:讀取「financial_report_Q2_2025.pdf」。請提供財務績效摘要,並說明提及的主要挑戰。
擷取特定資訊 (本機檔案或網頁)
在下列每種情境中,您可以視需要變更網址、感興趣的主題和本機檔案名稱。提供的檔案名稱為範例,您可以將其替換為系統中的檔案名稱。
請嘗試下列任一情境 (提示位於各情境旁):
- 從本機文章中擷取實體:從「biography.txt」列出所有具名人士,以及與他們相關的重要日期。
- 從 PDF 中的表格擷取資料:在「quarterly_sales.pdf」中,從第 3 頁的「Product Sales by Region」(各區域的產品銷售額) 表格擷取資料,並以 Markdown 表格格式呈現。
- 從 PDF 中的表格擷取資料:在「quarterly_sales.pdf」中,從第 3 頁的「Product Sales by Region」(各區域的產品銷售額) 表格擷取資料,並以 Markdown 表格格式呈現。
- 從新聞網站擷取新聞標題和來源:前往「https://news.google.com/」(或類似的新聞網站)。從首頁擷取主要新聞標題和對應的新聞來源。請以項目符號清單的形式呈現。
- 從電子商務頁面尋找產品規格:瀏覽至「https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441」(以書籍為例)。擷取書名、作者和其他詳細資料。以結構化 JSON 格式呈現。
根據內容回答問題 (類似 RAG 的行為)
在下列每種情境中,您可以視需要變更網址、感興趣的主題和本機檔案名稱。提供的檔案名稱為範例,您可以將其替換為系統中的檔案名稱。
請嘗試下列任一情境 (提示位於各情境旁):
- 本機文件問與答:我將附加「user_manual.pdf」。如何排解網路連線問題?
- 網頁問答:根據「https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health」的內容,世界衛生組織認為氣候變遷的主要健康風險為何?
- 比較多個來源的資訊:我有兩篇新聞報導:「article1.txt」和「article2.txt」,兩者都在討論近期的經濟政策變革。比較並對照他們對小型企業潛在影響的看法。
根據擷取的資訊生成內容
在下列每種情境中,您可以視需要變更網址、感興趣的主題和本機檔案名稱。
請嘗試下列任一情境 (提示位於各情境旁):
- 根據文章生成新聞摘要:讀取 @tech_innovation_article.txt。請撰寫簡短且引人入勝的新聞簡報 (約 150 字),適合用於公司電子報,重點在於新技術及其潛力。
- 草擬電子郵件,摘要說明會議轉錄稿內容:這是會議轉錄稿檔案:@meeting_transcript.txt。撰寫電子郵件給團隊,歸納會議中做出的重要決策和指派的待辦事項,包括各事項的負責人。
Gemini CLI 多模態支援
Gemini CLI 透過 Gemini 支援多種模型,您可以要求處理不同內容格式的檔案。
我們將使用 Gemini CLI 處理大量發票圖片,並從中擷取重要資訊。請按照下列步驟操作:
- 在電腦上建立資料夾,並從下列 Github 存放區下載一些發票。
- 從該資料夾啟動 Gemini CLI
讓我們提供下列提示,以表格形式從發票中擷取資訊。
The current folder contains a list of invoice image files. Go through all the files in this folder and extract the following invoice information in the form of a table: Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount.
理想情況下,輸出內容應如下所示:
這項功能適用於您以文字以外格式儲存的任何檔案。
使用 Gemini CLI 操作資料庫
您可以使用 Gemini CLI 更有效率地處理各種資料庫。這項功能適用於多種情境,包括使用自然語言查詢、匯出資料、設計資料庫結構定義,以及產生逼真的測試資料等。
我們會使用 SQLite3
示範這項操作。我們需要安裝 SQLite3,並擁有 Chinook 範例資料庫。
以下是設定 SQLite3 的簡要說明:
- macOS:系統已預先安裝 SQLite3。透過「
sqlite3 --version
」驗證。如有需要,請使用 Homebrew 安裝:brew install sqlite3
。 - Windows:從 SQLite 網站下載預先編譯的二進位檔。將檔案解壓縮至目錄 (例如
C:\sqlite
)。將該目錄新增至系統的 PATH 環境變數。 - Linux:Debian/Ubuntu:
sudo apt update && sudo apt install sqlite3
下載 Chinook 資料庫範例 (直接下載連結)。
如要執行這些提示,建議您在 gemini-cli-projects
目錄中建立資料夾 (database-tasks
)。將 Chinook 資料庫檔案複製到該資料夾。請確認系統已設定 sqlite3 工具,且該工具位於路徑中,Gemini CLI 才能使用。啟動 Gemini CLI。
資料庫結構定義圖如下所示:
我們假設您位於名為 database-tasks
的資料夾中,而 Chinook 資料庫檔案名為 chinook.db
。
以下提供幾個提示,協助您使用資料庫。我們會簡要說明第一個權限,示範系統會要求哪些權限。
首先,我們使用提示列出資料庫中的資料表。我們提供下列提示:
What tables are present in the @chinook.db
這會使用工具讀取檔案,然後想使用系統上的 sqlite3
公用程式執行必要操作:
提供一次性執行權限,我們就能取得必要輸出內容:
請嘗試使用下列提示或任何其他提示:
- 貴公司有多少員工?
- 月結單資料表的結構定義為何?
- 總金額最高的前 3 張月結單為何?是哪些客戶開立的?
你會發現 Gemini CLI 負責兩件事:生成符合需求的正確 SQL 陳述式,以及提供正確的 sqlite3
指令。
使用 Gemini CLI 生成資料
你可以提示 Gemini CLI 以各種資料格式產生資料。這類資料可能包括您需要模擬的內容片段到 JSON 資料。本文將著重於適用於開發人員/測試人員的情境。
以下是一些可嘗試的提示:
產生顧客評論樣本的 JSON 資料
Generate a JSON array of 3 synthetic customer reviews for a new smartphone. Each review should have 'reviewId' (string, UUID-like), 'productId' (string, e.g., 'SMARTPHONE_X'), 'rating' (integer, 1-5), 'reviewText' (string, 20-50 words), and 'reviewDate' (string, YYYY-MM-DD format).
產生模擬 API 回應 (JSON)
Generate a JSON array representing 7 daily sales records for a mock API endpoint. Each record should include 'date' (YYYY-MM-DD, chronologically increasing), 'revenue' (float, between 5000.00 and 20000.00), 'unitsSold' (integer, between 100 and 500), and 'region' (string, either 'North', 'South', 'East', 'West').
產生範例資料庫插入陳述式 (SQL)
Generate 5 SQL INSERT statements for a table named 'users' with columns: 'id' (INTEGER, primary key), 'username' (VARCHAR(50), unique), 'email' (VARCHAR(100)), 'password_hash' (VARCHAR(255)), 'created_at' (DATETIME, current timestamp). Ensure the password_hash is a placeholder string like 'hashed_password_X'.
產生 CSV 資料,用於載入/分析資料
Generate 10 lines of CSV data, including a header row, for customer transactions. Columns should be: 'TransactionID' (unique string), 'CustomerID' (integer), 'ItemPurchased' (string, e.g., 'Laptop', 'Monitor', 'Keyboard'), 'Quantity' (integer, 1-3), 'UnitPrice' (float, between 100.00 and 1500.00), 'TransactionDate' (YYYY-MM-DD).
產生設定檔 (YAML)
Generate a sample YAML configuration for a 'user_service'. Include sections for 'database' with 'host', 'port', 'username', 'password', 'database_name'. Also include a 'api_keys' section with 'payment_gateway' and 'email_service' placeholders. Use realistic default values.
產生極端情況/驗證的測試資料
Generate a JSON array of 8 email addresses for testing purposes. Include a mix of: 2 valid standard emails, 2 with missing '@', 2 with invalid domains (e.g., '.com1'), and 2 with special characters in the local part that are usually invalid (e.g., spaces or multiple dots).
透過 Gemini CLI 以直覺方式開發程式
我們將使用 Gemini CLI 快速開發應用程式。我們會要求 Gemini CLI 生成應用程式,然後將初始版本推送至 GitHub 存放區。
必要條件
如要執行本節中的工作,您需要下列項目:
- Git
- Gemini CLI 搭配 Github MCP 伺服器 (我們稍早已完成這項操作)
- 熟悉 Git 基礎知識,並具備一些程式設計知識
我們假設您已在所選的特定資料夾中啟動 Gemini CLI。確認 MCP 伺服器已順利啟動,尤其是 GitHub MCP 伺服器。
輸入下列提示詞。您可以視需要修改。請注意,在與 Gemini CLI 的整個工作階段中,系統會要求您授予建立檔案等權限。請授予必要權限。
另請注意,我們不希望 Gemini CLI 執行或測試應用程式,因為我們希望有更多控制權。但完全由您決定要怎麼做。
Generate a website for a 1-day event filled with technical talks. There are going to be 6 talks in a single track of 1 hour each. Each talk has the following information: title, 1 or maximum of 2 speakers, category (1 or maximum of 3 keywords), duration and a description. The website has a single page where users can see the schedule for the entire day with the timings. There will be one lunch break of an hour and the event starts at 10:00 AM. Keep a 10 minute transition between talks. I would like to use Node.js on the server side and standard HTML, JavaScript and CSS on the front-end. The users should be able to search the talks based on category.
I would like you to proceed in the following way:
1. Plan out how you would design and code this application.
2. Ask me for any clarifications along the way.
3. Once I am fine with it, do generate the code and provide me instructions to run and test locally.
以下是我第一次收到回覆的過程。您可能會收到完全不同的回覆,因此請詳閱計畫,並視需要與 Gemini CLI 來回互動。
雖然我要求不要啟動伺服器,但它還是顯示了相關的殼層指令,並詢問是否要為我執行。我決定不要,這樣才能自行啟動。
我向他傳送了以下訊息:
我按照說明啟動伺服器,並看到下列網站正常運作:
你可以繼續在 Gemini CLI 的協助下進行更多變更,但目前這樣就夠了,因為我們需要將這些變更推送到 GitHub 存放區。
首先,請建立 .gitignore 檔案,我們會使用 Gemini CLI 輔助。
Create a .gitignore file for this project.
因此,我們現在要向 Gemini CLI 提供指令,將這個存放區推送至我們的 GitHub 帳戶,這應該會在背景執行 GitHub MCP 伺服器工具。
輸入類似下方的提示:
Great! I would now like to push all of this to a new repository in my Github account. I would like to name this repository <Your-Name>-event-talks-app
這裡會介紹多個指令:
- 建立存放區。
- 本教學課程會使用多個 Git 指令 (init、add、commit) 管理本機 Git 存放區。
- 然後設定 Git 遠端並執行推送
注意:有時 Gemini CLI 可能會逾時或使用錯誤的使用者名稱等。請與其互動並建議修正方式。
如果一切順利,您應該會有 Github 存放區。螢幕截圖範例如下所示:
我們尚未產生 README.md
和其他通常會執行的項目,但這項練習很適合用於下一個章節,我們現在將使用您剛建立的存放區。
使用 Gemini CLI 處理 GitHub 存放區
在本用途中,我們將使用 Gemini CLI 處理 GitHub 存放區。我們將探討多種情境,包括:
- 瞭解程式碼集
- 正在生成說明文件
- 實作新功能
- 修訂並將變更推回存放區
- 處理 GitHub 問題並實作提議的變更
這應該能為您奠定良好的基礎,以便處理存放區,並將 Gemini CLI 用於這些開發人員專屬工作。
必要條件
如要執行本節中的工作,您需要下列項目:
- Git
- Gemini CLI 搭配 Github MCP 伺服器 (我們稍早已完成這項操作)
- 熟悉 Git 基礎知識,並具備一些程式設計知識 (本範例會使用 Node.js,因為您可能已安裝 Gemini CLI,因此電腦上已備妥環境)。但之後可以隨意選擇其他程式設計語言和架構的存放區。
- 您應該已完成上一節,並準備好存放區,我們在其中建立了 Event Talks 網站。
請繼續使用您產生 Event Talks 應用程式時使用的資料夾/目錄,或視需要將存放區複製到本機,然後從該目錄啟動 Gemini CLI。請嘗試下列情境:
瞭解程式碼集
- 我想詳細瞭解這個專案。請協助我瞭解主要功能,然後分成伺服器端和用戶端。請提供範例流程,並說明要求和回應的運作方式。
- 說明 @server.js
產生 README 檔案
- 為這個專案產生 README 檔案。
在本例中,Gemini CLI 不僅生成了 README 檔案,還想執行指令來新增至 Git 存放區,並將變更推送至遠端,我允許了這項操作。此外,Gemini CLI 也提議為我生成 LICENSE 檔案,我也允許了這項操作。
現在我已產生 README 檔案和授權檔案,變更也已推送至 GitHub。
實作新功能
- 我想導入新功能,讓使用者也能依特定演講者搜尋。請先提供實作這項變更的計畫,然後我們再生成程式碼。
並提供計畫,我核准後,系統就進行變更。請測試變更,如果發現錯誤 (很可能會有),請要求 Gemini CLI 修正。
確認變更內容無誤後,即可按照相同步驟修訂並推送至遠端存放區。
根據建議功能生成問題
我們來試試有趣的功能。我們將詢問 Gemini CLI 如何改善這個應用程式的使用者體驗,並根據評估結果,在同一個 GitHub 存放區中建立建議做為問題。這項作業會使用 Github MCP 伺服器的「create_issue」工具。
請嘗試使用下列提示:
- 請從使用者體驗的角度評估應用程式。例如易用性、回應速度、實用訊息等。請列出改善項目,然後在 GitHub 存放區中建立問題。
理想情況下,系統會先與您分享改善項目,然後在您允許的情況下,在 GitHub 存放區中建立問題。以下是執行時的螢幕截圖範例:
處理 GitHub 問題並實作提議的變更
現在可以選取先前產生的其中一個問題,並要求 Gemini CLI 處理及實作。
以下是系統生成的範例問題:
複製整個問題網址,並提供類似以下的提示:
- 請詳閱「問題」:
<YOUR_ISSUE_URL>
,瞭解需要進行哪些變更。請先討論計畫,然後在程式碼中顯示建議的變更。
您可以核准變更,並將變更推送到存放區。你甚至可以要求 AI 關閉問題。
7. (選用) 使用 GEMINI.md 自訂 Gemini CLI
如果您注意到目前 Gemini CLI 的使用情況,就會發現我們只是提供提示,並期望 Gemini CLI 執行提示,但有時結果並不如預期。在某些提示中,我們明確說明瞭該怎麼做,並將這些指示納入提示中。
這可能符合您指示 Gemini CLI 執行的動作和取得的結果。但在許多情況下,您會希望確保該應用程式遵守規則。這些規則可能包括要使用的特定程式設計語言或架構。也可能是特定工具。可能是編碼樣式。這不只是生成作業,您可能也希望 Gemini CLI 嚴格處於所謂的「規劃」模式,只呈現計畫,而不生成任何程式碼或修改系統上的檔案。
輸入 GEMINI.md
:這是內容檔案 (預設為 GEMINI.md,但可透過 contextFileName
設定進行設定),對於設定提供給 Gemini 模型的教學內容 (也稱為「記憶」) 至關重要。您可以在這個檔案中提供專案專屬的指示、程式碼樣式指南或任何相關背景資訊給 AI,讓 AI 根據您的需求提供更量身打造且準確的回覆。
GEMINI.md
檔案採用 Markdown 格式,並以階層式方式載入,由多個位置的內容合併而成。
載入順序如下:
- 全域環境:**
~/.gemini/GEMINI.md
** (適用於所有專案的指示)。 - 專案/祖先內容:CLI 會從目前目錄向上搜尋至專案根目錄,尋找
GEMINI.md
檔案。 - 子目錄環境:CLI 也會掃描子目錄中的
GEMINI.md
檔案,以便提供元件專屬的指令。
您可以使用 /memory show
查看傳送至模型的最終合併內容。
GEMINI.md
的外觀為何?我們從官方文件製作一個:
# Project: My Awesome TypeScript Library
## General Instructions:
- When generating new TypeScript code, please follow the existing coding style.
- Ensure all new functions and classes have JSDoc comments.
- Prefer functional programming paradigms where appropriate.
- All code should be compatible with TypeScript 5.0 and Node.js 20+.
## Coding Style:
- Use 2 spaces for indentation.
- Interface names should be prefixed with `I` (e.g., `IUserService`).
- Private class members should be prefixed with an underscore (`_`).
- Always use strict equality (`===` and `!==`).
## Specific Component: `src/api/client.ts`
- This file handles all outbound API requests.
- When adding new API call functions, ensure they include robust error handling and logging.
- Use the existing `fetchWithRetry` utility for all GET requests.
## Regarding Dependencies:
- Avoid introducing new external dependencies unless absolutely necessary.
- If a new dependency is required, please state the reason.
您會發現當中提供了一些一般指示,以及有關程式碼樣式、依附元件管理等方面的具體指示。這是 TypeScript 專案的範例 GEMINI.md
檔案,您可以根據程式設計語言、架構、編碼樣式和其他偏好設定,自行編寫檔案。
讓我們試試自訂 GEMINI.md
檔案。這段程式碼來自發布的要點,說明如何僅在「計畫」模式中使用 Gemini CLI。檔案內容如下:
# Gemini CLI Plan Mode
You are Gemini CLI, an expert AI assistant operating in a special 'Plan Mode'. Your sole purpose is to research, analyze, and create detailed implementation plans. You must operate in a strict read-only capacity.
Gemini CLI's primary goal is to act like a senior engineer: understand the request, investigate the codebase and relevant resources, formulate a robust strategy, and then present a clear, step-by-step plan for approval. You are forbidden from making any modifications. You are also forbidden from implementing the plan.
## Core Principles of Plan Mode
* **Strictly Read-Only:** You can inspect files, navigate code repositories, evaluate project structure, search the web, and examine documentation.
* **Absolutely No Modifications:** You are prohibited from performing any action that alters the state of the system. This includes:
* Editing, creating, or deleting files.
* Running shell commands that make changes (e.g., `git commit`, `npm install`, `mkdir`).
* Altering system configurations or installing packages.
## Steps
1. **Acknowledge and Analyze:** Confirm you are in Plan Mode. Begin by thoroughly analyzing the user's request and the existing codebase to build context.
2. **Reasoning First:** Before presenting the plan, you must first output your analysis and reasoning. Explain what you've learned from your investigation (e.g., "I've inspected the following files...", "The current architecture uses...", "Based on the documentation for [library], the best approach is..."). This reasoning section must come **before** the final plan.
3. **Create the Plan:** Formulate a detailed, step-by-step implementation plan. Each step should be a clear, actionable instruction.
4. **Present for Approval:** The final step of every plan must be to present it to the user for review and approval. Do not proceed with the plan until you have received approval.
## Output Format
Your output must be a well-formatted markdown response containing two distinct sections in the following order:
1. **Analysis:** A paragraph or bulleted list detailing your findings and the reasoning behind your proposed strategy.
2. **Plan:** A numbered list of the precise steps to be taken for implementation. The final step must always be presenting the plan for approval.
NOTE: If in plan mode, do not implement the plan. You are only allowed to plan. Confirmation comes from a user message.
將上述內容儲存到名為 GEMINI.md 的檔案,然後儲存到 ~/.gemini/GEMINI.md
。這個資料夾與我們建立 settings.json 檔案的資料夾相同。您也可以將 GEMINI.md
檔案保留在 <current project folder>/.gemini
資料夾中,如果有多種指令,甚至可以在子目錄中放置多個 GEMINI.md
檔案。
輸入提示詞來生成應用程式,並查看回覆。
以下是另一個 GEMINI.md
檔案 ( Gemini 說明模式),您可以研究並根據需求重新調整用途。這項功能著重於將 GEMINI CLI 做為互動式指南,透過對話探索程序,協助使用者瞭解複雜的程式碼集。
GEMINI.md
檔案是讓 Gemini CLI 遵循偏好的關鍵,建議您查看「實用 Gemini CLI」實用系列,深入瞭解這個領域、如何為專案自動產生檔案,甚至自訂系統提示等。
8. 恭喜
恭喜!您已成功探索 Gemini CLI 及其功能,並將其套用至幾個用途。