Gemini CLI 實作練習

1. 簡介

在本程式碼實驗室中,您將瞭解 Gemini CLI,這是一款開放原始碼 AI 代理,可讓您直接在終端機中使用 Gemini 的強大功能。

課程內容

  1. 安裝及設定 Gemini CLI
  2. 探索 Gemini CLI 中的工具、內建指令及設定 MCP 伺服器
  3. 透過 GEMINI.md 檔案自訂 Gemini CLI
  4. 探索 Gemini CLI 的幾種用途

軟硬體需求

本程式碼實驗室可完全在 Google Cloud Shell 中執行,該環境已預先安裝 Gemini CLI。

或者,如果您偏好在本機上作業,可以參閱安裝 Gemini CLI 的章節。

您需要下列項目:

  • Chrome 網路瀏覽器
  • Gmail 帳戶

本程式碼研究室適合各種程度的使用者和開發人員 (包括初學者) 參加。程式碼研究室中的應用實例已分類為開發人員和非開發人員工作。開發人員用途範例會說明如何使用 Gemini CLI 進行直覺式程式開發,以及如何透過 GitHub 存放區執行常見的開發工作,例如說明/瞭解程式碼、產生說明文件、修正問題等。建議您在程式碼研究室中完成這些用途。最後還有一個選用章節,涵蓋多項非開發人員專注的日常工作。

2. 事前準備

建立專案

  1. Google Cloud 控制台的專案選取器頁面中,選取或建立 Google Cloud 專案
  2. 確認 Cloud 專案已啟用計費功能。瞭解如何檢查專案是否已啟用計費功能
  3. 您將使用 Cloud Shell,這是 Google Cloud 中執行的指令列環境,預先載入了 bq。按一下 Google Cloud 控制台頂端的「啟用 Cloud Shell」。

「啟用 Cloud Shell」按鈕圖片

  1. 連至 Cloud Shell 後,請使用下列指令確認驗證已完成,專案也已設為獲派的專案 ID:
gcloud auth list
  1. 在 Cloud Shell 中執行下列指令,確認 gcloud 指令已瞭解您的專案。
gcloud config list project
  1. 如果未設定專案,請使用下列指令來設定:
gcloud config set project <YOUR_PROJECT_ID>

3. 安裝

設定及執行 Gemini CLI 前,請先建立一個資料夾,做為所有專案的主資料夾,您可以在其中建立各項專案。雖然 Gemini CLI 也會視需要參照系統中的特定其他資料夾,但這個資料夾是它的工作起點。

請繼續建立範例資料夾 (gemini-cli-projects),然後透過下列指令前往該資料夾。如要使用其他資料夾名稱,請自行變更。

mkdir gemini-cli-projects

前往該資料夾:

cd gemini-cli-projects

您可以透過 gemini 指令直接啟動 Gemini CLI。

請直接前往下一節 (透過 settings.json 設定 Gemini CLI)。

如要在本機安裝 Gemini CLI,請按照下列指示操作。請注意,Gemini CLI 已預先安裝在 Cloud ShellCloud Workstations 中。

首先,請在電腦上安裝 Node 20 以上版本。完成後,您可以使用下列任一方法安裝及執行 Gemini CLI:

  1. 您可以先在系統上全域安裝 Gemini CLI。您可能需要管理員存取權才能執行這項步驟。
# option 1: install Gemini CLI

npm install -g @google/gemini-cli

# .. and then run
gemini
  1. 使用下列指令執行:
# option 2: run without installing Gemini CLI

npx https://github.com/google-gemini/gemini-cli

執行下列指令,確認 CLI 是否已安裝:

gemini --version

假設您已透過上述任一方法啟動 Gemini CLI,首次啟動時,系統可能會要求您選取主題。如果可以,你可以選擇預設主題,或自行挑選。

接下來的重要事項是驗證。系統會要求您提供驗證方式。建議您在本實驗室中使用個人 Google 帳戶,而非非 Google 或 Google Workspace 相關帳戶。

如果 Google 帳戶目前的免費配額不敷使用,您可以選擇使用 Gemini API 金鑰,甚至是 Google Cloud Vertex AI,但您必須擁有專案 ID 和該專案的位置名稱。如果您打算使用其他驗證方法,請參閱說明文件的「驗證」一節。

57bad75cedaaaa38.png

然後按一下「Enter」。瀏覽器會隨即開啟 Google 驗證頁面。使用 Google 帳戶完成驗證並接受條款後,您會發現 Gemini CLI 已準備就緒,可以開始接收指令。

螢幕截圖範例如下:

8fc80ad44c19f782.png

在本範例中,我們選取了 Vertex AI 選項,但您可能需要選取個人帳戶。你會發現我們已選取 Gemini 2.5 模型 (顯示在右下角)。您隨時可以使用 /model 指令選擇特定模型。

4. 透過 settings.json 設定 Gemini CLI

如果您選擇使用 Cloud Shell 執行 Gemini,系統會直接幫您選取及設定 Gemini CLI 的預設主題和驗證方式。

如果您在電腦上安裝 Gemini CLI 並首次啟動,系統會要求您選取主題和驗證方式。

現在,後續執行 Gemini CLI 時,系統不會再要求您選取主題和驗證方式。這表示系統會將設定儲存在某處,而使用的檔案稱為 settings.json,您可透過這個檔案自訂 Gemini CLI。

系統會依下列優先順序套用設定 (Cloud Shell 只會提供使用者設定):

  1. 系統:/etc/gemini-cli/settings.json (適用於所有使用者,會覆寫使用者和 Workspace 設定)。
  2. Workspace:.gemini/settings.json (會覆寫使用者設定)。
  3. 使用者:~/.gemini/settings.json

Windows 使用者: %USERPROFILE%.gemini\settings.json (通常會展開為 C:\Users&lt;YourUsername>.gemini\settings.json)

系統:%ProgramData%\gemini-cli\settings.json (通常會展開為 C:\ProgramData\gemini-cli\settings.json)

Mac 使用者:~/.gemini/settings.json (會展開為 /Users/<YourUsername>/.gemini/settings.json)

系統:/etc/gemini-cli/settings.json

回想一下,您在選取主題時,已選擇將設定儲存在「使用者設定」中。請前往 ~/.gemini folder,您會看到 settings.json 檔案。

我的 settings.json 檔案如下所示。如果您選取其他主題,就會看到該主題的名稱。

{
  "security": {
    "auth": {
      "selectedType": "oauth-personal" or "cloud-shell"
    }
  },
  "ui": {
    "theme": "Default"
  }
}

5. 首次與 Gemini CLI 互動

開始使用 Gemini CLI,並輸入第一個查詢,如下所示:

Give me a famous quote on Artificial Intelligence and who said that?

預期的回覆如下:

 > Give me a famous quote on Artificial Intelligence and who said that?                 
✦ "The only way to do great work is to love what you do." - Steve Jobs (While not directly about AI, it's a famous quote related to technology and innovation, which underpins AI development.)
Alternatively:
  "The development of full artificial intelligence could spell the end of the human race." - Stephen Hawking

想快速瞭解 Gemini CLI 及其支援的各種指令嗎?只要輸入 /help (正斜線),即可查看各種指令和鍵盤快速鍵。

我們現在先退出 Gemini CLI。你可以透過 /quit 指令執行這項操作,也可以在互動式 Gemini CLI 終端機工作階段中按兩次 Ctrl-C。退出 Gemini CLI 時,系統會顯示工作階段統計資料,讓您瞭解工作階段、模型用量和其他指標。

6. Gemini CLI - 指令參數

啟動 Gemini CLI 時,可以提供幾個指令列參數。如要取得完整選項清單,可以使用 --help,如下所示。

gemini --help

這時畫面會顯示所有可用的選項。建議您詳閱這份說明文件

讓我們來看看其中幾項。第一種方法是設定 Gemini CLI,以便使用特定 Gemini 模式。目前,更新這個實驗室時,支援的模型清單如下。如要使用特定模型,可以在啟動 Gemini CLI 時透過 -m 參數指定,如下所示:

gemini -m "gemini-2.5-flash"

你會發現,如果以上述方式啟動,可以在 Gemini CLI 終端機右下方查看模型。

進入 Gemini CLI 應用程式後,可以使用 /model 指令開啟對話方塊,選擇模型。下方顯示範例執行作業。您可以根據需求和提供的指引,持續切換模型,根據複雜度和控管費用的需求,選擇適合任務的模型。

69154a6bf6553f35.png

非互動模式

Gemini CLI 還有個有趣的用法,就是以非互動模式執行。這表示您可以直接提供提示詞,Gemini CLI 會回覆您,但不會開啟互動式終端機。如果您打算在指令碼或任何其他自動化程序中,以自動化的方式使用 Gemini CLI,這項功能便可派上用場。您可以使用 -p 參數向 Gemini CLI 提供提示,如下所示:

gemini -p "What is the gcloud command to deploy to Cloud Run"

請注意,您無法透過後續查詢來延續對話。也無法授權工具 (包括 WriteFile) 或執行殼層指令。

請注意,如果遺漏 -p 參數,只提供下列內容,系統會開啟 Gemini CLI 並顯示提示,然後繼續執行。

gemini "What is the gcloud command to deploy to Cloud Run"

7. Gemini CLI - 內建工具

Gemini CLI 內建一組工具,且工具說明文件指出「Gemini 模型會使用這些工具與本機環境互動、存取資訊及執行動作。這些工具讓 CLI 的功能變得更加強大,不僅能生成文字,還可協助使用者處理各種工作。"

如要取得目前可用的內建工具清單,請叫用 /tools 指令,如下所示:

Available Gemini CLI tools:
  - Activate Skill (activate_skill)
  - Ask User (ask_user)
  - Edit (replace)
  - Enter Plan Mode (enter_plan_mode)
  - FindFiles (glob)
  - GoogleSearch (google_web_search)
  - Invoke Subagent (invoke_agent)
  - List Background Processes (list_background_processes)
  - Read Background Output (read_background_output)
  - ReadFile (read_file)
  - ReadFolder (list_directory)
  - SearchText (grep_search)
  - Shell (run_shell_command)
  - Update Topic Context (update_topic)
  - WebFetch (web_fetch)
  - WriteFile (write_file)

您應該會立即想到,Gemini CLI 能在需要時直接呼叫這些工具嗎?根據預設,如需執行可能涉及寫入本機系統、從外部系統讀取資料、連線至外部網路等敏感作業,模型一律不會執行。

雖然啟動 CLI 時可以使用 --yolo (通常不建議),但 Gemini CLI 選定要執行的工具後,可能會提示您授予執行權限。您可以拒絕授權、僅允許執行一次,或全面授權,選擇一律允許 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 搜尋,從相關資訊來源取得財經新聞。接著,Gemini CLI 需要建立名為 finance-news-today.txt 的檔案 (本機系統的寫入作業,需要您的授權),並填入內容。

來看看會發生什麼事 (您應該在自己的電腦上進行相同操作)。

首先,Gemini CLI 會叫用 GoogleSearch 工具來搜尋網路並擷取結果,如下所示:

 Searching for Finance News: 
  I will first search for the latest finance headlines and then save them to a file.
  ✓  GoogleSearch  Searching the web for: "latest finance headlines"
   → Search results for "latest finance headlines" returned.
  Saving Finance News: I will now save the finance headlines to the file 'finance-news-today.txt'.

完成後,Gemini CLI 就可以使用 WriteFile 工具將內容寫入檔案,但這屬於敏感作業 (寫入),因此系統會要求您授予權限。您可以決定權限類型,即「僅允許一次」、「一律允許」等。請先選取「僅允許一次」。

接著,系統會將資訊寫入檔案,並顯示成功訊息 (如下所示):

✦ I have saved the latest finance news to finance-news-today.txt.
  Finance News Saved: The task is complete.

如何確認檔案是否已寫入?你可以使用 @file 要求朗讀內容。輸入 @ 時,系統會顯示目前資料夾中的檔案清單,包括剛建立的檔案。選取該項服務,然後提交提示。我的提示如下:

read the contents of @finance-news-today.txt

這會導致系統叫用必要工具 (ReadManyFiles、ReadFile),並顯示內容,如下所示:

    ReadManyFiles  Attempting to read files from finance-news-today.txt  Read 1 file(s)
  Topic: Summarizing the financial news headlines.
 The latest finance headlines as of May 15, 2026, include:
  Global Markets & Economy:
   * The Dow Jones Industrial Average surpassed 50,000 for the first time, driven by strong earnings from Cisco
     Systems and a 2% rise in Nasdaq due to tech stocks.
   * Inflation concerns are growing, hinting at potential Fed interest rate hikes.
   * Kevin Warsh has been confirmed as the new Federal Reserve head.
   * A "constructive" U.S.-China summit took place in Beijing between President Trump and President Xi, with
     markets watching for impacts from proposed tariffs.
  Corporate & Tech News:
   
<REST OF THE CONTENT>

8. Gemini CLI - 殼層模式

現在正是瞭解如何直接在 Gemini CLI 中使用殼層的好時機。在訊息方塊中按下 ! 即可進入殼層模式。即可切換至殼層模式。如要返回,請再次按下 !ESC 鍵。

進入殼層模式後,提示詞開頭便會顯示 !,如下所示:

aab5d032116fa5e8.png

您可以直接使用標準指令 (例如 pwdls) 進行檢查,如下所示。請注意,這些指令是以 Linux 類型的作業系統為前提。如果您使用其他作業系統 (Windows),請使用對等指令,例如 (cddirtype)。請注意,這些呼叫的輸出內容會納入模型的內容視窗。

f6e6d45174a9997d.png

您也可以透過 cat 指令 (即 cat finance-news-today.txt) 列印檔案內容。

練習:請試試這項簡短的練習。選擇要使用的 RSS 動態消息。提示 Gemini CLI 擷取 RSS 動態消息的內容,並以特定方式格式化結果。這是自動化執行每日例行事項的好方法。您甚至可以要求 Gemini CLI 找出特定領域的 RSS 動態消息,例如 Google Cloud Platform 版本資訊。

提示範例如下所示:

Get the latest release notes for Google Cloud from its RSS Feed and display the key points in a well-formatted list.

這個提示應先叫用 GoogleSearch 工具尋找 Google Cloud Platform RSS 動態消息,然後使用 WebFetch 工具取得 RSS 動態消息的內容並顯示。系統可能會要求您授予權限來叫用這些工具,請視需要授予權限。

9. Gemini CLI 擴充功能

如說明文件所述,Gemini CLI 擴充功能會將提示詞、MCP 伺服器和自訂指令包裝成容易使用的格式。您可以運用擴充功能拓展 Gemini CLI 的能力,並開放他人使用,這是擴充 Gemini CLI 功能的主要機制,可讓您使用內建工具以外的功能。

擴充功能是獨立、可版本化且易於發布的套件。這就像是 Gemini CLI 自訂項目的「貨櫃」,將特定工作流程所需的一切項目打包成單一整齊的套件。

f5ae3e229462c130.png

擴充功能可組合下列任意項目:

  • 自訂斜線指令 (您的 .toml 檔案)。
  • MCP 伺服器設定 (先前位於 settings.json)。
  • 脈絡檔案 (GEMINI.md),可為模型提供具體指令和指引。
  • 工具限制 (excludeTools),打造更安全、更專注的環境。

擴充功能庫是集中式市集,可供探索所有 Google 官方和第三方擴充功能:

  1. 在瀏覽器中開啟下列網址:https://geminicli.com/extensions/
  2. 這個藝廊是生態系統的探索引擎,您可以查看 GitHub、Redis 和 DynaTrace 等公司的擴充功能,瞭解可用的工具範圍。
  3. 向下捲動,找出 Cloud Run 的擴充功能資訊卡,或按一下這個連結
  4. 請注意,資訊卡會提供說明、作者 (Google) 和一鍵 Copy 指令按鈕。這是取得擴充功能安裝指令最簡單的方法。

Gemini CLI 擴充功能 - 管理指令

gemini extensions 指令是管理本機擴充功能的進入點。

在終端機中執行這項指令,即可查看可用指令清單。

gemini extensions <command>
Manage Gemini CLI extensions.
Commands:
  gemini extensions install <source> [--auto-update] [--pre-release]
    Installs an extension from a git repository URL or a local path.
  gemini extensions uninstall [names..]                      
    Uninstalls one or more extensions.
  gemini extensions list                                     
    Lists installed extensions.
  gemini extensions update [<name>] [--all]                  
    Updates all extensions or a named extension to the latest version.
  gemini extensions disable [--scope] <name>                 
    Disables an extension.
  gemini extensions enable [--scope] <name>                  
    Enables an extension.
  gemini extensions link <path>                              
    Links an extension from a local path. Updates made to the local path 
    will always be reflected.
  gemini extensions new <path> [template]                    
    Create a new extension from a boilerplate example.
  gemini extensions validate <path>                          
    Validates an extension from a local path.
  gemini extensions config [name] [setting]                  
    Configure extension settings.
Options:

這些指令很簡單 (安裝/解除安裝、列出、更新、啟用/停用等),我們會在本次程式碼研究室中使用部分指令。

查看目前的擴充功能清單

安裝任何項目之前,請先檢查「乾淨的狀態」。

  1. 執行 gemini extensions list 指令:
  2. 您應該會看到下列輸出內容,確認目前尚未安裝任何擴充功能。
No extensions installed.

設定 Cloud Run MCP 伺服器

Gemini CLI 擴充功能庫提供的 Cloud Run 擴充功能是 MCP 伺服器,可讓我們將應用程式部署至 Cloud Run。

擴充功能庫中的 Cloud Run 擴充功能資訊卡如下所示:

ed9b19eac1fbde78.png

首先,按一下如上所示的「Copy install command」(複製安裝指令),安裝 Cloud Run 擴充功能。然後將該指令貼到 Cloud Shell 終端機 (應類似於下列指令):

gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp

執行上述指令後,系統會要求您確認。請核准這項要求。Cloud Run 擴充功能會要求您提供 Google 專案 ID 和 Google 專案位置。請提供該資訊。Cloud Run 擴充功能應會順利安裝。

現在執行 gemini extensions list 指令,您應該會看到已安裝 Cloud Run 擴充功能,如下所示:

✓ cloud-run (1.0.0)
 ID: 3c1a38909b6d7d90b6acc8ca1e80d97b4a867253a3cd12d841b2aab4e556a58f
 name: 0b1820c1f0c043bbb3b54f496d862c02172424c930eb965d61f468be52e6f127
 Path: /Users/romin/.gemini/extensions/cloud-run
 Source: https://github.com/GoogleCloudPlatform/cloud-run-mcp (Type: github-release)
 Release tag: v1.10.0
 Enabled (User): true
 Enabled (Workspace): true
 Context files:
  /Users/romin/.gemini/extensions/cloud-run/gemini-extension/GEMINI.md
 MCP servers:
  cloud-run
 Settings:
  Project ID: YOUR_GCP_PROJEC_ID (User - /Users/romin/.gemini/extensions/cloud-run/.env)
  Region: YOUR_GCP_PROJECT_LOCATION (User - /Users/romin/.gemini/extensions/cloud-run/.env)

現在啟動 Gemini CLI 並執行 /mcp list 指令,會看到以下內容。請注意 Cloud Run MCP 伺服器的 toolsprompts

Configured MCP servers:
🟢 cloud-run (from cloud-run) - Ready (8 tools, 2 prompts)
  Tools:
  - mcp_cloud-run_create_project
  - mcp_cloud-run_deploy_container_image
  - mcp_cloud-run_deploy_file_contents
  - mcp_cloud-run_deploy_local_folder
  - mcp_cloud-run_get_service
  - mcp_cloud-run_get_service_log
  - mcp_cloud-run_list_projects
  - mcp_cloud-run_list_services
  Prompts:
  - deploy
  - logs

我們只以一個 Gemini CLI 擴充功能為例,說明如何設定。如要查看更多擴充功能,請前往擴充功能庫

10. 可嘗試的用途

Gemini CLI 適用於各種用途,無論是開發人員或非開發人員都能使用。以下列出幾種情境,您可以根據感興趣的領域,嘗試其中一種或全部情境。

在上述每種情況下,系統都會提供提示。您可以在啟動 Gemini CLI 時,透過 -p 參數,在 Gemini CLI 互動模式或非互動模式中試用這項功能。

使用 Gemini CLI 進行直覺式程式開發

我們將使用 Gemini CLI,透過直覺式程式開發打造應用程式。在這項工作中,您將要求 Gemini CLI 生成應用程式,然後將初始版本推送至 GitHub 存放區。

必要條件

如要執行本節中的工作,請先完成下列必要條件:

  • Git
  • Gemini CLI
  • 設定 gh ( GitHub CLI 工具)。
  • 熟悉 Git 基礎知識,並具備一些程式設計知識

我們假設您已在所選的特定資料夾中啟動 Gemini CLI。在本例中,我們從初始主資料夾啟動 Gemini CLI:gemini-cli-projects,以及其中的另一個資料夾 event-website

先輸入初始提示,這就像是應用程式的規格。您可以視需要修改。請注意,在與 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 會提出方案,並要求您確認 / 釐清或繼續操作。請按照指示操作。以下是我的對話串範例:

    Of course. I will start by creating a plan for the application.
  Plan:
   1. Backend (Node.js):
       * I'll set up a simple Node.js server using the Express.js framework.
       * This server will have two main purposes:
           1. Serve the static frontend files (HTML, CSS, JavaScript).
           2. Provide an API endpoint (e.g., /api/talks) that will send the event schedule data to the frontend as a JSON object.
       * The talk data will be stored in a separate talks.json file for easy management.
   2. Frontend (HTML, CSS, JS):
       * HTML: A single index.html file will define the structure of the page, including a container for the schedule and a search input field for filtering by category.
       * CSS: A style.css file will be used to style the website for a clean and professional look, ensuring the schedule is easy to read.
       * JavaScript: A script.js file will handle the dynamic aspects of the site:
           1. It will fetch the talk data from the backend API when the page loads.
           2. It will dynamically render the schedule on the page based on the fetched data.
           3. It will implement the search functionality. As the user types in the search box, it will filter the displayed talks based on the category keywords.
   3. Project Structure:
      I will organize the project with a clear and standard structure:
   1     /
   2     ├── public/
   3        ├── index.html
   4        ├── style.css
   5        └── script.js
   6     ├── talks.json
   7     └── server.js
   8     └── package.json
  Before I proceed with generating the code, I have a few questions to ensure the final product meets your expectations:

甚至還問了我幾個問題 (如下所示,我已回答):

c6127207c54a776c.png

然後繼續生成程式碼,並在多個時間點要求我確認,而我也提供必要權限,讓程式碼繼續生成。

最後,伺服器啟動了,並要求我繼續檢查網頁:

The server is now running in the background.
  3. View Your Website
  You can now open your web browser and navigate to the following address to see your website:
  http://localhost:3000 (http://localhost:3000)
  4. Test the Search Functionality
  Once the page is loaded, you can test the search functionality by typing a category into the search bar (e.g., "AI", "Frontend", "Cybersecurity"). The list of talks
  will filter in real-time.
  This completes the setup and implementation of your event website. Let me know if you have any other questions.

以下是生成的範例網頁:

12664933302b3867.png

您可以繼續使用 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

此時會執行一連串指令:

  1. 建立存放區。
  2. 並使用多個 Git 指令 (init、add、commit) 管理本機 Git 存放區。
  3. 然後設定 Git 遠端並執行推送作業

注意:Gemini CLI 有時可能會發生逾時或使用錯誤的使用者名稱等情況,請與其互動並提供修正建議。

如果一切順利,應該就會成功建立 GitHub 存放區。螢幕截圖範例如下:

b393c67b13ddf19a.png

請注意,您尚未為這個專案產生 README.md,這很適合在下一節練習,我們現在要使用您剛建立的存放區。

使用 Gemini CLI 處理 GitHub 存放區

在本使用案例中,您將使用 Gemini CLI 處理 GitHub 存放區。您將執行多項工作,包括:

  • 瞭解程式碼集
  • 正在生成文件
  • 實作新功能
  • 修訂並將變更推回存放區
  • 處理 GitHub 問題並實作建議的變更

這應該能為您奠定良好的基礎,以便處理存放區,並將 Gemini CLI 用於開發人員專屬工作。

必要條件

如要執行本節中的工作,您需要:

  • Git
  • Gemini CLI 和 gh ( GitHub CLI 工具)。
  • 熟悉 Git 基礎知識,並具備一些程式設計知識 (由於您已安裝 Gemini CLI,因此本範例會使用 Node.js,因為您可能已在電腦上準備好環境)。但之後可以隨意選擇其他程式設計語言和架構的存放區。
  • 您應該已完成上一節,並準備好存放區,我們在該處建立了 Event Talks 網站。

請繼續使用您用來生成 Event Talks 應用程式的資料夾/目錄,或視需要將存放區複製到本機,然後從該目錄啟動 Gemini CLI。請嘗試下列情境:

瞭解程式碼集

  • 我想詳細瞭解這個專案。請協助我瞭解主要功能,然後分成伺服器端和用戶端。請提供範例流程,並說明要求和回應的運作方式。
  • Explain @server.js

產生 README 檔案

  • 為這項專案生成 README 檔案。

實作新功能

  • 我想導入新功能,讓使用者也能依特定演講者搜尋。請先提供實作這項變更的計畫,然後我們再生成程式碼。

系統會提供計畫,您可以核准。核准後,Gemini CLI 就會進行這些變更。請測試變更,如果發現錯誤 (很可能),請問問 Gemini CLI 修正。

確認變更內容無誤後,即可按照相同步驟修訂並推送至遠端存放區。甚至可能自動為你完成這些工作。您隨時可以提示 Gemini CLI 能夠或無法執行的操作。

根據建議功能生成問題

我們來試試有趣的功能。您將問問 Gemini CLI 如何改善這個應用程式的使用者體驗,並根據評估結果,在同一個 GitHub 存放區中建立這些建議做為問題。這項工具會使用 GitHub MCP 伺服器的「create_issue」工具。

請嘗試使用下列提示:

  • 請從使用者體驗的角度評估應用程式。簡單易用、反應靈敏、實用訊息等。請列出改善項目,然後在 GitHub 存放區中建立問題。

理想情況下,這項工具會先與您分享改善建議,然後在您允許的情況下,在 GitHub 存放區中建立問題。以下是我們執行時的螢幕截圖範例:

10a31e665be46f9d.png

處理 GitHub 問題並實作建議的變更

現在可以從先前生成的其中一個問題著手,要求 Gemini CLI 處理並實作。

以下是系統生成的範例問題:

2778bde35f41efe9.png

複製整個問題網址,並提供類似以下的提示:

  • 請詳閱「問題」<YOUR_ISSUE_URL>,瞭解需要進行哪些變更。請先討論計畫,然後在程式碼中顯示建議的變更。

您可以核准變更,並將變更推送到存放區。你甚至可以要求關閉問題。

(選用) 日常工作

以下用途是您可能會定期執行的工作。包括將檔案整理到資料夾、從網路上擷取及摘要內容、處理圖像檔案並從中擷取內容、處理資料庫等等。

歡迎探索任何您喜歡的用途。

整理檔案/資料夾

您可以視需要使用 Gemini CLI,依類型將檔案整理到不同資料夾。前往電腦上含有多個檔案的資料夾,例如 .txt、.png、.jpg、.pdf、.mp4 等。這可能是你的桌面或「下載」資料夾。

以下是範例資料夾,以及資料夾的內容 (您可能會有其他檔案):

7011e3dfaf628e9b.png

前往該資料夾並啟動 Gemini CLI。您將問問 Gemini CLI 先建立幾個資料夾:Images、Documents、Videos,然後要求 Gemini CLI 整理這些資料夾中的檔案。

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.

以下範例顯示資料夾的最終狀態。您應該會看到系統建立的新子資料夾,以及根據檔案類型移至對應子資料夾的檔案。

4c1ee9ddea4b3f5f.png

其他幾種整理情境 (提示會顯示在每個情境旁):

  1. 摘要:針對「Documents」資料夾中的每個文件,在同一個資料夾中建立名為「summary_ORIGINAL_FILENAME.txt」的文字檔,其中包含文件重點的 3 句摘要。
  2. 依類型分類:掃描這個目錄中的所有 PDF 和 DOCX 檔案。將名稱或內容包含「invoice」的所有檔案移至「Financial/Invoices」資料夾。將含有「收據」的檔案移至「財務/收據」。其他 .docx 檔案會歸入「報表」。
  3. 擷取重要資訊 (並「標記」):讀取「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 表格格式呈現。
  • 從新聞網站擷取新聞標題和來源:前往「https://news.google.com/」(或類似的新聞網站)。從首頁擷取主要新聞標題和對應的新聞來源。請以項目符號清單的形式呈現。
  • 從電子商務頁面尋找產品規格:瀏覽至「https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441」(以書籍為例)。擷取書名、作者和其他詳細資料。請以結構化 JSON 格式呈現。
  • 影片中擷取時長,並採用特定格式 (例如「2h37m42s」)。

根據內容回答問題 (類似 RAG 的行為)

在下列每種情境中,您可以視需要變更網址、感興趣的主題和本機檔案名稱。提供的檔案名稱為範例,您可以將其替換為系統中的檔案名稱。

請嘗試下列任一情境 (提示詞位於各情境旁):

  • 本機文件問與答:我將附加「user_manual.pdf」。如何排解網路連線問題?
  • 網頁問答:根據「https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health」的內容,世界衛生組織 (WHO) 認為氣候變遷主要會對健康造成哪些風險?
  • 比較多個來源的資訊:我有兩篇新聞報導:「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 files in Image format. 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.

輸出內容應如下所示:

7203d699d875a91f.png

以下是另一個情境,您可以要求提供其他衍生欄。假設您想為所有過期的應付憑據顯示紅色叉號表情符號,你可以輸入下列提示:

list all files with .png extension in this folder. Extract the invoice information from it by reading them locally and display it in a table format containing the following column headers: : Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount. Add a column at the end of the table that shows a red cross emoji in case the due date is in the past.

這會產生下列輸出內容:

e11fcde0400f5a0b.png

這項功能適用於任何非文字格式的自有檔案。

使用 Gemini CLI 操作資料庫

您可以使用 Gemini CLI 更有效率地處理各種資料庫。這項功能適用於多種情境,包括使用自然語言查詢、匯出資料、設計資料庫結構定義,以及產生逼真的測試資料等。

您將使用 SQLite3 執行這項工作。您需要安裝 SQLite3,並擁有Chinook 範例資料庫

以下是設定 SQLite3 的簡要說明:

  1. macOS:系統已預先安裝 SQLite3。透過「sqlite3 --version」驗證。如有需要,請使用 Homebrew 安裝:brew install sqlite3
  2. Windows:從 SQLite 網站下載預先編譯的二進位檔。將檔案解壓縮至目錄 (例如 C:\sqlite)。將該目錄新增至系統的 PATH 環境變數。
  3. Linux:Debian/Ubuntu:sudo apt update && sudo apt install sqlite3

下載 Chinook 資料庫範例 (直接下載連結)。

如要執行這些提示,建議您在 gemini-cli-projects 目錄中建立資料夾 (database-tasks)。將 Chinook 資料庫檔案複製到該資料夾。請確認系統已設定 sqlite3 工具,且該工具位於路徑中,Gemini CLI 才能使用。啟動 Gemini CLI。

資料庫結構定義圖如下所示:

4178b54e03a07d60.png

假設您位於名為 database-tasks 的資料夾,而 Chinook 資料庫檔案名為 chinook.db

以下提供幾個提示,協助您處理資料庫。我們先簡要說明第一個權限,示範系統會要求哪些權限。

首先,請輸入提示,列出資料庫中的資料表,提示如下:

What tables are present in the file: chinook.db 

這會使用工具讀取檔案,然後想使用系統中的 sqlite3 公用程式執行必要操作:

a8d782201eba1eb8.png

提供執行一次的權限,即可取得預期輸出內容:

69e96f22610e7892.png

請嘗試使用下列提示詞或任何其他提示詞:

  • 貴公司有多少員工?
  • 月結單資料表的結構定義為何?
  • 總金額最高的前 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).

11. 恭喜

恭喜!您已成功探索 Gemini CLI、瞭解其功能,並在特定情境下實際應用。

參考文件