透過逆向工程的 Gemini Web API 產生圖片與文字。支援文字生成、根據提示詞產生圖片、參考圖片進行視覺輸入,以及多輪對話。當其他技能需要圖片生成後端,或使用者要求「用 Gemini 產生圖片」、「Gemini 文字生成」,或需要具備視覺能力的 AI 生成時使用。
Gemini Web 客戶端
透過 Gemini Web API 進行文字/圖片生成。支援參考圖片與多輪對話。
使用者輸入工具
當此技能提示使用者時,請依下列工具選擇規則(優先順序):
- 優先使用目前代理執行環境提供的內建使用者輸入工具,例如
AskUserQuestion、request_user_input、clarify、ask_user或任何等效工具。 - 備援:若無此類工具,則輸出編號的純文字訊息,要求使用者回覆每個問題的選擇編號/答案。
- 批次處理:若工具支援單次呼叫多個問題,則將所有適用問題合併為一次呼叫;若僅支援單一問題,則依優先順序逐一詢問。
以下具體的 AskUserQuestion 參考僅為範例 — 在其他執行環境中請替換為當地等效工具。
腳本目錄
重要:所有腳本位於此技能的 scripts/ 子目錄中。
代理執行指示:
- 確定此 SKILL.md 檔案所在的目錄路徑為
{baseDir} - 腳本路徑 =
{baseDir}/scripts/<script-name>.ts - 解析
${BUN_X}執行環境:若已安裝bun→ 使用bun;若可用npx→ 使用npx -y bun;否則建議安裝 bun - 將本文中所有
{baseDir}與${BUN_X}替換為實際值
腳本參考:
| 腳本 | 用途 |
|---|---|
scripts/main.ts |
文字/圖片生成的 CLI 進入點 |
scripts/gemini-webapi/* |
gemini_webapi 的 TypeScript 移植版(GeminiClient、型別、工具函式) |
同意確認(必要)
首次使用前,請確認使用者同意使用逆向工程的 API。
同意檔案位置:
- macOS:
~/Library/Application Support/baoyu-skills/gemini-web/consent.json - Linux:
~/.local/share/baoyu-skills/gemini-web/consent.json - Windows:
%APPDATA%\baoyu-skills\gemini-web\consent.json
流程:
- 檢查同意檔案是否存在,且包含
accepted: true與disclaimerVersion: "1.0" - 若有效同意存在 → 顯示包含
acceptedAt日期的警告,繼續執行 - 若無同意 → 顯示免責聲明,透過
AskUserQuestion詢問使用者:- 「是,我接受」→ 建立含 ISO 時間戳的同意檔案,繼續執行
- 「不,我拒絕」→ 輸出拒絕訊息,停止執行
- 同意檔案格式:
{"version":1,"accepted":true,"acceptedAt":"<ISO>","disclaimerVersion":"1.0"}
偏好設定(EXTEND.md)
依優先順序檢查 EXTEND.md — 第一個找到的優先採用:
| 優先順序 | 路徑 | 範圍 |
|---|---|---|
| 1 | .baoyu-skills/baoyu-danger-gemini-web/EXTEND.md |
專案 |
| 2 | ${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-danger-gemini-web/EXTEND.md |
XDG |
| 3 | $HOME/.baoyu-skills/baoyu-danger-gemini-web/EXTEND.md |
使用者家目錄 |
若皆未找到,則使用預設值。
EXTEND.md 支援:預設模型、代理設定、自訂資料目錄。
使用方式
# 文字生成
${BUN_X} {baseDir}/scripts/main.ts "你的提示詞"
${BUN_X} {baseDir}/scripts/main.ts --prompt "你的提示詞" --model gemini-3-flash
# 圖片生成
${BUN_X} {baseDir}/scripts/main.ts --prompt "一隻可愛的貓" --image cat.png
${BUN_X} {baseDir}/scripts/main.ts --promptfiles system.md content.md --image out.png
# 視覺輸入(參考圖片)
${BUN_X} {baseDir}/scripts/main.ts --prompt "描述這個" --reference image.png
${BUN_X} {baseDir}/scripts/main.ts --prompt "產生變體" --reference a.png --image out.png
# 多輪對話
${BUN_X} {baseDir}/scripts/main.ts "記住:42" --sessionId session-abc
${BUN_X} {baseDir}/scripts/main.ts "什麼數字?" --sessionId session-abc
# JSON 輸出
${BUN_X} {baseDir}/scripts/main.ts "哈囉" --json
選項
| 選項 | 說明 |
|---|---|
--prompt, -p |
提示詞文字 |
--promptfiles |
從檔案讀取提示詞(串接) |
--model, -m |
模型:gemini-3-pro(預設)、gemini-3-flash、gemini-3-flash-thinking、gemini-3.1-pro-preview |
--image [path] |
產生圖片(預設:generated.png) |
--reference, --ref |
視覺輸入的參考圖片 |
--sessionId |
多輪對話的 Session ID |
--list-sessions |
列出已儲存的 Session |
--json |
以 JSON 格式輸出 |
--login |
重新整理 Cookie 後結束 |
--cookie-path |
自訂 Cookie 檔案路徑 |
--profile-dir |
Chrome 設定檔目錄 |
模型
| 模型 | 說明 |
|---|---|
gemini-3-pro |
預設,最新的 3.0 Pro |
gemini-3-flash |
快速、輕量的 3.0 Flash |
gemini-3-flash-thinking |
具備思考能力的 3.0 Flash |
gemini-3.1-pro-preview |
3.1 Pro 預覽版(空標頭,自動路由) |
驗證
首次執行會開啟瀏覽器進行 Google 驗證。Cookie 會自動快取。
當未設定明確的設定檔目錄時,Cookie 重新整理可能會重複使用已執行的本機 Chrome/Chromium 偵錯工作階段(該工作階段綁定標準的使用者資料目錄)。
設定 --profile-dir 或 GEMINI_WEB_CHROME_PROFILE_DIR 可強制使用專用設定檔,並跳過現有工作階段的重複使用。
這是一種盡力而為的 CDP 工作階段重複使用路徑,並非 Chrome 官方文件中描述的基於 Chrome DevTools MCP 提示的 --autoConnect 流程。
支援的瀏覽器(自動偵測):Chrome、Chrome Canary/Beta、Chromium、Edge。
強制重新整理:使用 --login 旗標。覆寫瀏覽器:使用 GEMINI_WEB_CHROME_PATH 環境變數。
環境變數
| 變數 | 說明 |
|---|---|
GEMINI_WEB_DATA_DIR |
資料目錄 |
GEMINI_WEB_COOKIE_PATH |
Cookie 檔案路徑 |
GEMINI_WEB_CHROME_PROFILE_DIR |
Chrome 設定檔目錄 |
GEMINI_WEB_CHROME_PATH |
Chrome 執行檔路徑 |
HTTP_PROXY, HTTPS_PROXY |
用於存取 Google 的代理(可與指令內嵌設定) |
Session
Session 檔案儲存在資料目錄下的 sessions/<id>.json。
內容包含:id、metadata(Gemini 聊天狀態)、messages 陣列、時間戳記。
擴充支援
透過 EXTEND.md 進行自訂設定。請參閱偏好設定章節了解路徑與支援的選項。






