1. 簡介
在本程式碼實驗室中,您將瞭解 Gemini CLI,這是一款開放原始碼 AI 代理,可讓您直接在終端機中使用 Gemini 的強大功能。
課程內容
- 安裝及設定 Gemini CLI
- 探索 Gemini CLI 中的工具、內建指令及設定 MCP 伺服器
- 透過
GEMINI.md檔案自訂 Gemini CLI - 探索 Gemini CLI 的幾種用途
軟硬體需求
本程式碼實驗室可完全在 Google Cloud Shell 中執行,該環境已預先安裝 Gemini CLI。
或者,如果您偏好在本機上作業,可以參閱安裝 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.
您會發現執行查詢後,系統叫用了 Gemini CLI 的內建工具 GoogleSearch。換句話說,您已使用 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) 或執行殼層指令。
7. Gemini CLI - 內建工具
Gemini CLI 內建一組工具,且工具說明文件指出「Gemini 模型會使用這些工具與本機環境互動、存取資訊及執行動作。這些工具讓 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 選擇並執行其中一項內建工具,以便進一步瞭解整個運作方式。
假設您想取得全球最新的財經新聞,並將該資訊儲存至本機工作目錄 (也就是您啟動 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 工具來搜尋網路並擷取結果,如下所示:
GoogleSearch Searching the web for: "latest finance headlines today"
Search results for "latest finance headlines today" returned.
完成後,Gemini CLI 就可以使用 WriteFile 工具將內容寫入檔案,但這屬於敏感作業 (寫入),因此系統會要求您授予權限。您可以決定權限類型,即「僅允許一次」、「一律允許」等。請先選取「僅允許一次」。

接著,系統會將資訊寫入檔案,並顯示成功訊息 (如下所示):
✦ 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 - 殼層模式
現在正是瞭解如何直接在 Gemini CLI 中使用殼層的好時機。在訊息方塊中按下 ! 即可進入殼層模式。即可切換至殼層模式。如要返回,請再次按下 ! 或 ESC 鍵。
進入殼層模式後,提示詞開頭便會顯示 !,如下所示:

您可以直接使用標準指令 (例如 pwd 和 ls) 進行檢查,如下所示。請注意,這些指令是以 Linux 類型的作業系統為前提。如果您使用其他作業系統 (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 執行內建工具以外的操作。
擴充功能是獨立、可版本化且易於發布的套件。這就像是 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 能夠與外部系統和資料來源互動,就像 Gemini 模型與本機環境或其他服務 (如 API) 之間的橋梁。
我們在 Gemini 擴充功能庫中提供 GitHub MCP 伺服器。點選該圖示後,系統會開啟「擴充功能」資訊卡,您也會看到安裝擴充功能的指令:

只要複製該指令,或使用下列指令即可:
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> 複製到我的本機電腦。
- 說明 @<file-name> 或 @<directory-name>/
- 這個存放區有哪些不同的元件?
- 我已完成必要的變更。請使用 GitHub MCP 伺服器工具將變更推送至 GitHub。
您會在後續實驗室中,找到有關 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
- 使用 GitHub MCP Gemini CLI 擴充功能的 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 如何改善這個應用程式的使用者體驗,並根據評估結果,在同一個 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 處理大量發票圖片,並從中擷取重要資訊。請按照下列步驟操作:
- 在電腦上建立資料夾,並從下列 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、瞭解其功能,並在幾個情境下實際應用。