baoyu-danger-gemini-web について
Gemini Web APIを通じてテキストや画像を生成するコマンドラインスキルです。参照画像と複数ターンのセッションに対応し、プロンプトや保存した会話からGemini Webを利用したいユーザー向けです。
主な機能
- 01モデルを選べるテキスト生成
- 02プロンプトによる画像生成
- 03参照画像の入力
- 04セッションを使った複数ターンの会話
- 05ブラウザー経由のGoogle認証
活用シーン
- 01プロンプトからのテキスト生成
- 02参照画像を使った画像作成
- 03保存済みセッションでの会話継続
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jimliu/ baoyu-skills --skill baoyu-danger-gemini-webインストール後、Claude Code で/baoyu-danger-gemini-webを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/bun.lockmain.tspackage.jsonscripts/gemini-webapi/client.test.tsclient.tsconstants.tsexceptions.tsindex.tsscripts/gemini-webapi/components/gem-mixin.tsindex.tsscripts/gemini-webapi/types/candidate.tsgem.tsgrpc.tsimage.tsindex.tsmodeloutput.tsscripts/gemini-webapi/utils/cookie-file.tsdecorators.tsget-access-token.tshttp.tsindex.tsload-browser-cookies.tslogger.tsparsing.tspaths.tsrotate-1psidts.tsupload-file.ts詳細
Gemini Web クライアント
Gemini Web API を使用したテキスト/画像生成です。参照画像と複数ターンの会話に対応しています。
ユーザー入力ツール
このスキルがユーザーに入力を求める場合は、次のツール選択ルール(優先順位順)に従ってください。
- 組み込みのユーザー入力ツールを優先してください。現在のエージェントランタイムで公開されているものを使用します。例:
AskUserQuestion、request_user_input、clarify、ask_user、または同等のツール。 - フォールバック:そのようなツールがない場合は、番号付きのプレーンテキストメッセージを出力し、各質問についてユーザーに番号または回答で返信するよう求めてください。
- まとめて質問:ツールが1回の呼び出しで複数の質問に対応している場合は、該当する質問をすべてまとめてください。1つずつしか質問できない場合は、優先順位に従って1問ずつ尋ねてください。
以下の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で設定できる項目:デフォルトモデル、プロキシ設定、カスタムデータディレクトリ。
使い方
# Text generation
${BUN_X} {baseDir}/scripts/main.ts "Your prompt"
${BUN_X} {baseDir}/scripts/main.ts --prompt "Your prompt" --model gemini-3-flash
# Image generation
${BUN_X} {baseDir}/scripts/main.ts --prompt "A cute cat" --image cat.png
${BUN_X} {baseDir}/scripts/main.ts --promptfiles system.md content.md --image out.png
# Vision input (reference images)
${BUN_X} {baseDir}/scripts/main.ts --prompt "Describe this" --reference image.png
${BUN_X} {baseDir}/scripts/main.ts --prompt "Create variation" --reference a.png --image out.png
# Multi-turn conversation
${BUN_X} {baseDir}/scripts/main.ts "Remember: 42" --sessionId session-abc
${BUN_X} {baseDir}/scripts/main.ts "What number?" --sessionId session-abc
# JSON output
${BUN_X} {baseDir}/scripts/main.ts "Hello" --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 | 複数ターンの会話用セッションID |
--list-sessions | 保存済みセッションを一覧表示します |
--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 アクセス用プロキシ(コマンドと同時に設定) |
セッション
セッションファイルは、データディレクトリ内の sessions/<id>.json に保存されます。
内容:id、metadata(Gemini のチャット状態)、messages 配列、タイムスタンプ。
拡張機能のサポート
EXTEND.md を使ってカスタム設定を行えます。パスとサポートされているオプションについては、Preferences セクションを参照してください。