1. 簡介
在本程式碼實驗室中,您將瞭解 Gemini CLI,這項開放原始碼 AI 代理可直接在終端機中使用 Gemini 的強大功能。
課程內容
- 安裝及設定 Gemini CLI
- 在 Gemini CLI 中探索工具、內建指令及設定 MCP 伺服器
- 透過
GEMINI.md檔案自訂 Gemini CLI - 透過 Gemini CLI 探索幾個應用實例
軟硬體需求
這個程式碼研究室完全可以在 Google Cloud Shell 中執行,因為 Gemini CLI 已預先安裝在 Cloud Shell 中。
或者,如果您偏好使用自己的電腦,可以參閱本節,瞭解如何在本機安裝 Gemini CLI。
您需要下列項目:
- Chrome 網路瀏覽器
- Gmail 帳戶
本程式碼研究室適合所有程度的使用者和開發人員 (包括初學者)。程式碼研究室中的應用實例已分類為開發人員和非開發人員工作。開發人員使用案例會說明如何透過 Gemini CLI 撰寫程式碼,以及如何使用 GitHub 存放區執行常見的開發工作,例如說明/瞭解程式碼、產生說明文件、修正問題等。建議您在程式碼研究室中完成這些用途。最後還有一個選用章節,涵蓋多項非開發人員專注的日常工作。
2. 事前準備
建立專案
- 在 Google Cloud 控制台的專案選取器頁面中,選取或建立 Google Cloud 專案。
- 確認 Cloud 專案已啟用計費功能。瞭解如何檢查專案是否已啟用計費功能。
- 您將使用 Cloud Shell,這是 Google Cloud 中執行的指令列環境,且已預先載入 bq。點選 Google Cloud 控制台頂端的「啟用 Cloud Shell」。

- 連線至 Cloud Shell 後,請使用下列指令確認您已通過驗證,且專案已設為您的專案 ID:
gcloud auth list
- 在 Cloud Shell 中執行下列指令,確認 gcloud 指令知道您的專案。
gcloud config list project
- 如果未設定專案,請使用下列指令來設定:
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,請按照下列操作說明進行。
首先,請在電腦上安裝 Node 20 以上版本。完成後,您可以使用下列任一方法安裝及執行 Gemini CLI:
- 您可以先在系統上全域安裝 Gemini CLI。您可能需要管理員存取權才能執行這項步驟。
# option 1: install Gemini CLI
npm install -g @google/gemini-cli
# .. and then run
gemini
- 使用下列指令執行:
# option 2: run without installing Gemini CLI
npx https://github.com/google-gemini/gemini-cli
如要確認 CLI 是否已安裝,請執行下列指令:
gemini --version
假設您已透過上述任一方法啟動 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 已準備就緒,等待您的指令。螢幕截圖範例如下:

4. 透過 settings.json 設定 Gemini CLI
如果您選擇使用 Cloud Shell 執行 Gemini,系統會預先選取並設定 Gemini CLI 的預設主題和驗證方法。
如果您在電腦上安裝 Gemini CLI 並首次啟動,系統會要求您選取主題和驗證方法。
現在,後續執行 Gemini CLI 時,系統不會再次要求你選取主題和驗證方法。也就是說,這項設定會儲存在某處,而使用的檔案稱為 settings.json,可供您自訂 Gemini CLI。
系統會依下列優先順序套用設定 (Cloud Shell 只會提供使用者設定):
- 系統:
/etc/gemini-cli/settings.json(適用於所有使用者,會覆寫使用者和工作區設定)。 - Workspace:
.gemini/settings.json(覆寫使用者設定)。 - 使用者:
~/.gemini/settings.json。
Windows 使用者: %USERPROFILE%.gemini\settings.json (通常會展開為 C:\Users<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 檔案如下所示。如果您選取其他主題,就會看到該主題的名稱。
{
"theme": "Default",
"selectedAuthType": "oauth-personal" or "cloud-shell"
}
5. 首次與 Gemini CLI 互動
現在開始使用 Gemini CLI,並輸入您的第一個查詢,如下所示:
Give me a famous quote on Artificial Intelligence and who said that?
預期回應如下所示:
GoogleSearch Searching the web for: "famous quote on Artificial Intelligence and who said it" ...
Search results for "famous quote on Artificial Intelligence and who said it" returned.
✦ "The development of full artificial intelligence could spell the end of the human race." - Stephen Hawking.
您會發現查詢結果是叫用 GoogleSearch 工具 (Gemini CLI 內建工具)。換句話說,您已使用 Gemini CLI 強大的內建工具之一,也就是 GoogleSearch,根據從網路上取得的資訊生成回覆。下一節將進一步說明「工具」。
如要快速瞭解 Gemini CLI 和支援的各種指令,請輸入 /help (斜線),系統會顯示各種指令和鍵盤快速鍵。
我們暫時先結束 Gemini CLI。你可以透過 /quit 指令執行這項操作,也可以在互動式 Gemini CLI 終端機工作階段中按兩次 Ctrl-C。
6. 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 應用程式後,您可以使用 /model 指令開啟對話方塊,選擇模型。下方顯示範例執行結果。您可以根據需求和提供的指引,持續切換模型,根據複雜度和控管費用的需求,為工作選擇合適的模型。

非互動模式
您也可以選擇以非互動模式執行 Gemini CLI。也就是說,您直接提供提示,Gemini CLI 就會回應,不會開啟互動式終端機。如果您打算在指令碼或任何其他自動化程序中,以自動化方式使用 Gemini CLI,這項功能就非常實用。您可以使用 -p 參數將提示提供給 Gemini CLI,如下所示,也可以只使用位置引數提供提示。
gemini "What is the gcloud command to deploy to Cloud Run"
請注意,你無法繼續對話,提出後續問題。此外,您也無法授權工具 (包括 WriteFile) 或執行 Shell 指令。
7. Gemini CLI - 內建工具
Gemini CLI 內建一組工具,而工具說明文件指出「Gemini 模型會使用這些工具與本機環境互動、存取資訊及執行動作。這些工具可強化 CLI 的功能,讓 CLI 不僅能生成文字,還能協助處理各種工作。
如要取得目前的內建工具清單,請叫用 /tools 指令,如下所示:
Available Gemini CLI tools:
- Codebase Investigator Agent (codebase_investigator)
- Edit (replace)
- FindFiles (glob)
- GoogleSearch (google_web_search)
- ReadFile (read_file)
- ReadFolder (list_directory)
- SaveMemory (save_memory)
- SearchText (search_file_content)
- Shell (run_shell_command)
- WebFetch (web_fetch)
- WriteFile (write_file)
- WriteTodos (write_todos)
您應該會立即想到,Gemini CLI 能否在需要時直接呼叫這些工具?如果涉及寫入本機系統、從外部系統讀取資料、連線至外部網路等敏感作業,預設答案為「否」。
啟動 CLI 時,系統會提供 --yolo (通常不建議使用),但您會發現 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 工具搜尋網路並擷取結果,如下所示:
GoogleSearch Searching the web for: "latest finance headlines today"
Search results for "latest finance headlines today" returned.
完成後,即可將這項資訊寫入檔案,並使用 WriteFile 工具,但由於這是敏感作業 (write),因此系統會要求您授予權限。你可以決定權限類型,例如「允許一次」或「一律允許」等。請先選取「允許一次」。

接著,系統會將資訊寫入檔案,並在下方顯示成功訊息:
✦ I have successfully saved the latest finance headlines into the file finance-news-today.txt.
如何確認檔案是否已寫入?你可以使用 @file 要求朗讀內容。輸入 @ 時,系統會顯示目前資料夾中的檔案清單,以及剛建立的檔案。選取該項服務,然後提交提示。我的提示如下所示:
read the contents of @finance-news-today.txt
這會導致系統叫用必要工具 (ReadManyFiles、ReadFile),並顯示內容,如下所示:

8. Gemini CLI - Shell 模式
現在正是瞭解如何直接透過 Gemini CLI 使用 Shell 的好時機。在訊息方塊中按下 ! 即可進入殼層模式。這會切換至 Shell 模式。如要返回,請再次按下 ! 或 ESC 鍵。
進入 Shell 模式後,提示開頭會顯示 !,如下所示:

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

您今天就能透過 cat 指令列印檔案內容。

練習:請試試這項簡短的練習。選擇要使用的 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 自訂項目的「貨櫃」,將特定工作流程所需的一切項目打包成單一整齊的套件。

擴充功能可組合下列項目:
- 自訂斜線指令 (您的 .toml 檔案)。
- MCP 伺服器設定 (先前位於 settings.json 中)。
- 內容檔案 (GEMINI.md):為模型提供具體指示和規範。
- 工具限制 (excludeTools),打造更安全、更專注的環境。
探索擴充功能庫
擴充功能庫是集中式市集,可供探索所有 Google 官方和第三方擴充功能:
- 在瀏覽器中開啟下列網址:
https://geminicli.com/extensions/browse/。 - 這個藝廊是生態系統的探索引擎,您可以查看 GitHub、Redis 和 DynaTrace 等公司的擴充功能,瞭解可用的工具範圍。
- 向下捲動,找出 Cloud Run 的擴充功能資訊卡。
- 請注意,資訊卡會提供說明、作者 (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 list指令: - 您應該會看到下列輸出內容,確認目前尚未安裝任何擴充功能。
No extensions installed.
設定 GitHub MCP 伺服器
MCP 伺服器是 Gemini CLI 擴充功能類型之一。MCP 伺服器是一種應用程式,可透過 Model Context Protocol 向 Gemini CLI 公開工具和資源,讓後者與外部系統和資料來源互動。MCP 伺服器可做為 Gemini 模型與本機環境或其他服務 (例如 API) 之間的橋樑。
Github MCP 伺服器已在 Gemini 擴充功能庫中上架。點選該圖示後,系統會開啟「擴充功能」資訊卡,您也會看到安裝擴充功能的指令:

只要複製該指令,或使用下列指令即可:
gemini extensions install https://github.com/github/github-mcp-server
請繼續操作,並授予必要權限。安裝完成後,您應該就能在執行 gemini extensions list 指令時,於擴充功能清單中看到這個擴充功能。
✓ github (1.0.0)
ID: faa318861b48de8d83c95eb8cd5e82c02393493978d198a0e7bf67fcb1bd22cb
name: c0b0109d9439de57fe3cf03abeccbc52f4c98170c732d3b69af5e6395ace574e
Path: /home/romin/.gemini/extensions/github
Source: https://github.com/github/github-mcp-server (Type: git)
Enabled (User): true
Enabled (Workspace): true
MCP servers:
github
您可以查看擴充功能的路徑,該資料夾中會有一個名為 gemini-extension.json 的檔案,內容如下所示:
{
"name": "github",
"version": "1.0.0",
"mcpServers": {
"github": {
"description": "--description–",
"httpUrl": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer $GITHUB_MCP_PAT"
}
}
}
}
您會發現系統透過環境變數讀取個人存取權杖 (PAT)。您必須先取得 Github 的個人存取權杖 (PAT)。取得該值後,請確認您已建立完整的 .env 檔案,並將該值放在其中,或建立環境變數,如下所示 (請將 PAT_VALUE 替換為實際值):
export GITHUB_MCP_PAT=PAT_VALUE
請重新啟動 Gemini CLI。啟動後,您可以使用 /mcp list 指令查看 MCP 伺服器清單,以及各伺服器可用的工具。您應該會看到以綠色顯示的 GitHub MCP 伺服器,以及其工具 (30 多種)。部分清單如下:
🟢 github (來自 github) - 已就緒 (40 項工具)
工具:
- add_comment_to_pending_review
- add_issue_comment
- assign_copilot_to_issue
- create_branch
- create_or_update_file
- create_pull_request
- create_repository
- delete_file
- fork_repository
- get_commit
- get_file_contents
- get_label
- get_latest_release
- get_me
- get_release_by_tag
- get_tag
- get_team_members
- get_teams
- issue_read
首先,請輸入提示,從 GitHub MCP 伺服器叫用其中一項工具。請提供下列提示 (我在 GitHub 上的身分是?)。Gemini CLI 會選取正確的工具,並要求您的授權。

確認後,系統會擷取結果,如下所示:
✦ You are rominirani, a Developer Advocate at Google Cloud, located in Mumbai. You have 125 public repositories and 256 followers.
您現在應該可以處理其中一個 GitHub 專案。以自然語言提出查詢,例如:
- 請向我說明 <repo-name>?
- 在本機電腦上複製 <repo-name>。
- Describe @<file-name> 或 @<directory-name>/
- 這個存放區包含哪些不同元件?
- 我已完成必要變更。您可以將變更推送至 GitHub,並使用 GitHub MCP 伺服器工具執行這項操作。
您會在後續實驗室中,詳細瞭解如何使用 GitHub MCP 伺服器。
設定 Cloud Run MCP 伺服器
Gemini CLI 擴充功能庫提供的 Cloud Run 擴充功能是 MCP 伺服器,可讓我們將應用程式部署至 Cloud Run。
擴充功能庫中的 Cloud Run 擴充功能資訊卡如下所示:

首先,請按一下如上所示的「Copy install command」(複製安裝指令),安裝 Cloud Run 擴充功能。然後將該指令貼到 Cloud Shell 終端機 (應與下列指令類似):
gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
執行上述指令後,系統會要求您確認。請核准這項要求。Cloud Run 擴充功能應會順利安裝。
現在執行 gemini extensions list 指令,您應該會看到已安裝的 Cloud Run 擴充功能,如下所示:
✓ cloud-run (1.0.0)
ID: 3c1a38909b6d7d90b6acc8ca1e80d97b4a867253a3cd12d841b2aab4e556a58f
name: 0b1820c1f0c043bbb3b54f496d862c02172424c930eb965d61f468be52e6f127
Path: /home/romin/.gemini/extensions/cloud-run
Source: https://github.com/GoogleCloudPlatform/cloud-run-mcp (Type: git)
Enabled (User): true
Enabled (Workspace): true
Context files:
/home/romin/.gemini/extensions/cloud-run/gemini-extension/GEMINI.md
MCP servers:
cloud-run
如果現在啟動 Gemini CLI 並執行 /mcp list 指令,您會看到下列訊息:
🟢 cloud-run (from cloud-run) - Ready (8 tools, 2 prompts)
Tools:
- create_project
- deploy_container_image
- deploy_file_contents
- deploy_local_folder
- get_service
- get_service_log
- list_projects
- list_services
Prompts:
- deploy
- logs
以上只是我們示範如何設定的幾個 Gemini CLI 擴充功能。您可以前往擴充功能庫探索更多擴充功能,甚至完成「開始使用 Gemini CLI 擴充功能」程式碼研究室。
10. 可嘗試的用途
Gemini CLI 適用於各種用途,無論是開發人員或非開發人員都能使用。以下列舉幾種情況,您可以根據感興趣的領域,嘗試其中一種或全部情況。
在上述每種情況下,系統都會提供提示。您可以在啟動 Gemini CLI 時,透過 -p 參數,在 Gemini CLI 互動模式或非互動模式中試用這項功能。
透過 Gemini CLI 以直覺方式開發程式
讓我們使用 Gemini CLI 撰寫應用程式的程式碼。在這項工作中,您會要求 Gemini CLI 生成應用程式,然後將初始版本推送至 GitHub 存放區。
必要條件
如要執行本節中的工作,請先完成下列必要條件:
- Git
- 使用 Github Gemini CLI 擴充功能的 Gemini CLI (我們稍早已完成這項操作),或是您已設定
gh( Github CLI 工具),也適用於這項操作。 - 熟悉 Git 基礎知識,並具備一些程式設計知識
我們假設您已在所選的特定資料夾中啟動 Gemini CLI。
先輸入初始提示,您可以視需要修改。請注意,在與 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 會提出計畫,並要求你確認 / 釐清或繼續執行。請按照指示操作。以下是我的範例對話串:
1. Backend (Node.js/Express):
* Set up an Express server to serve the static frontend files.
* Create an /api/schedule endpoint that will:
* Generate the event schedule dynamically, including talk timings and the lunch break, based on your requirements.
* Store mock talk data (title, speakers, category, description).
* Filter the schedule based on a category query parameter.
2. Frontend (HTML, CSS, JavaScript):
* Create an index.html file for the main structure.
* Develop style.css for a clean and responsive design.
* Write script.js to:
* Fetch the schedule data from the backend.
* Dynamically render the talks and lunch break on the page.
* Implement a search input that filters talks by category, updating the displayed schedule without a full page reload.
3. Schedule Logic:
* The backend will handle calculating the precise start and end times for each 1-hour talk, factoring in the 10:00 AM start, 10-minute transitions, and the 1-hour lunch break.
Before I proceed with the code, could you please clarify the following:
* Example Talk Data: Could you provide some example talk titles, speakers, categories (keywords), and descriptions? This will help me create realistic dummy data for the schedule.
* Lunch Break Placement: Where should the 1-hour lunch break be placed in the schedule? (e.g., after the 3rd talk, at 1 PM, etc.)
* Styling Preferences: Do you have any specific styling preferences (e.g., color scheme, modern/minimalist, etc.)? If not, I will go with a clean, simple design.
✦ I will create a single-page website for your event. Here's my plan:
✓ WriteTodos Set 7 todo(s)
✦ I am waiting for your clarifications regarding the example talk data, lunch break placement, and styling preferences before I proceed with generating the code.
最後,系統提供以下摘要:
✦ Instructions to Run and Test Locally:
1. Start the server:
Open your terminal in the project directory (/home/romin/gemini-cli-projects/event-website/) and run:
1 node server.js
You should see a message in the terminal indicating: Server running on http://localhost:3000.
2. Open in your browser:
Open your web browser and navigate to:
http://localhost:3000
3. Test functionality:
* You should see the event schedule displayed on the page, with talks and a lunch break.
* Search by category: In the "Search by category..." input box, type a category keyword (e.g., "AI", "Web Development", "Python", "Security").
* Click the "Search" button. The schedule displayed should filter to only show talks matching that category.
* Click the "Reset" button to clear the search filter and view the full schedule again.
Let me know if you encounter any issues or if you'd like to make any modifications or additions to the website!
按照操作說明啟動伺服器並前往首頁後,我們得到如下所示的範例網站 (如果您使用相同的提示,應該會看到類似網站的變體):

您可以繼續使用 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 Gemini CLI 擴充功能 (我們稍早已完成這項操作),或是您已設定
gh( Github CLI 工具),也適用於這項操作。 - 熟悉 Git 基礎知識,並具備一些程式設計知識 (由於您已安裝 Gemini CLI,因此本範例會使用 Node.js,您可能已在電腦上準備好環境)。但之後可以隨意選擇其他程式設計語言和架構的存放區。
- 您應該已完成上一節,並準備好存放區,我們在其中建立了 Event Talks 網站。
請繼續使用您用來生成 Event Talks 應用程式的資料夾/目錄中的 Gemini CLI,或視需要將存放區複製到本機,然後從該目錄啟動 Gemini CLI。請嘗試下列情境:
瞭解程式碼集
- 我想詳細瞭解這個專案。請說明主要功能,然後分成伺服器端和用戶端。請提供範例流程,並說明要求和回應的運作方式。
Explain @server.js
產生 README 檔案
- 為這個專案生成
README檔案。
實作新功能
- 我想導入新功能,讓使用者也能依特定演講者搜尋。請先提供實作這項變更的計畫,然後我們再生成程式碼。
系統會提供計畫,您可以核准。核准後,Gemini CLI 就會進行這些變更。請測試變更,如果發現錯誤 (很可能),請要求 Gemini CLI 修正。
確認變更內容無誤後,即可按照相同步驟修訂並推送至遠端存放區。
根據建議功能生成問題
我們來試試有趣的功能。您將詢問 Gemini CLI 如何改善這個應用程式的使用者體驗,並根據評估結果,在同一個 GitHub 存放區中建立這些建議做為問題。這項工具會使用 Github MCP 伺服器的「create_issue」工具。
請嘗試使用下列提示:
- 請從使用者體驗的角度評估應用程式。例如易用性、回應速度、實用訊息等。請列出改善項目,然後在 GitHub 存放區中建立問題。
理想情況下,這項工具會先與您分享改善建議,然後在您允許的情況下,在 GitHub 存放區中建立問題。以下是執行時的螢幕截圖範例:

處理 GitHub 問題並實作建議的變更
現在您可以選取先前產生的其中一個問題,並要求 Gemini CLI 處理及實作。
以下是系統生成的範例問題:

複製整個問題網址,並提供類似以下的提示:
- 請詳閱「問題」
<YOUR_ISSUE_URL>,瞭解需要進行哪些變更。請先討論計畫,然後在程式碼中顯示建議的變更。
您可以核准變更,並將變更推送到存放區。你甚至可以要求關閉問題。
(選用) 日常工作
以下用途是您可能經常執行的工作。包括將檔案整理到資料夾、從網路上擷取及摘要內容、處理圖像檔案並從中擷取內容、處理資料庫等等。
歡迎探索任何您喜歡的用途。
整理檔案/資料夾
您可以視需要使用 Gemini CLI,依據不同資料夾中的類型整理檔案。前往電腦上含有多個檔案的資料夾,例如 .txt、.png、.jpg、.pdf、.mp4 等。這可能是你的「桌面」或「下載」資料夾。
以下是範例資料夾,以及資料夾的內容 (您可能會有其他檔案):

前往該資料夾並啟動 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.
以下範例顯示資料夾的最終狀態。您應該會看到系統建立的新子資料夾,以及根據檔案類型移至對應子資料夾的檔案。

其他幾種整理情境 (提示會顯示在每個情境旁):
- 摘要:針對「Documents」資料夾中的每個文件,在同一個資料夾中建立名為「summary_ORIGINAL_FILENAME.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 表格格式呈現。
- 從新聞網站擷取新聞標題和來源:前往「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」的內容,世界衛生組織認為氣候變遷的主要健康風險為何?
- 比較多個來源的資訊:我有兩篇新聞報導:「article1.txt」和「article2.txt」,兩者都在討論近期的經濟政策變革。比較並對照他們對小型企業潛在影響的看法。
根據擷取的資訊生成內容
在下列每種情境中,您可以視需要變更網址、感興趣的主題和本機檔案名稱。
請嘗試下列任一情境 (提示詞位於各情境旁):
- 根據文章生成新聞摘要:讀取 @tech_innovation_article.txt,請撰寫簡短有趣的新聞簡報 (約 150 字),適合用於公司電子報,重點介紹這項新技術及其潛力。
- 草擬電子郵件,摘要說明會議轉錄稿內容:這是會議轉錄稿檔案:@meeting_transcript.txt。撰寫電子郵件給團隊,歸納會議中做出的重要決策和指派的待辦事項,包括各事項的負責人。
Gemini CLI 多模態支援
Gemini CLI 透過 Gemini 支援多種模型,您可以要求 Gemini CLI 處理不同內容格式的檔案。
您將使用 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.
理想情況下,輸出內容應如下所示:

以下是另一個情境,您可以要求提供其他衍生欄。假設您想為所有過期的應付憑據顯示紅色叉號表情符號,你可以提供如下的提示:
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.
這會產生下列輸出內容:

這項功能適用於您以文字以外格式儲存的任何檔案。
使用 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 file: 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).
11. 恭喜
恭喜!您已成功探索 Gemini CLI 及其功能,並將其套用至幾個應用實例。