canghe-danger-gemini-web について
Gemini Web APIでテキストや画像を生成するコマンドラインスキルです。参照画像と複数ターンの会話に対応し、リバースエンジニアリングされたAPIの初回利用前に同意確認が必要です。
主な機能
- 01テキストと画像の生成
- 02参照画像の入力
- 03複数ターンの会話セッション
- 04Geminiモデルの選択
- 05ブラウザー経由のGoogle認証
- 06初回利用前の同意確認
活用シーン
- 01プロンプトからテキストを生成
- 02プロンプトから画像を作成
- 03参照画像をビジョン入力に使用
- 04保存済みの会話を継続または確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ freestylefly/ canghe-skills --skill canghe-danger-gemini-webインストール後、Claude Code で/canghe-danger-gemini-webを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/main.tsscripts/gemini-webapi/client.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 Client
Gemini Web API を使用したテキスト/画像生成に対応しています。参照画像と複数ターンの会話をサポートしています。
スクリプトディレクトリ
重要:すべてのスクリプトは、このスキルの scripts/ サブディレクトリにあります。
エージェントの実行手順:
- この SKILL.md ファイルのディレクトリパスを
SKILL_DIRとして特定します - スクリプトのパス =
${SKILL_DIR}/scripts/<script-name>.ts - このドキュメント内のすべての
${SKILL_DIR}を実際のパスに置き換えます
スクリプトの参照:
| スクリプト | 用途 |
|---|---|
scripts/main.ts | テキスト/画像生成用の CLI エントリーポイント |
scripts/gemini-webapi/* | gemini_webapi の TypeScript 移植版(GeminiClient、型、ユーティリティ) |
同意の確認(必須)
初回使用前に、リバースエンジニアリングされた API の使用についてユーザーの同意を確認してください。
同意ファイルの場所:
- macOS:
~/Library/Application Support/canghe-skills/gemini-web/consent.json - Linux:
~/.local/share/canghe-skills/gemini-web/consent.json - Windows:
%APPDATA%\canghe-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 が存在するか Bash で確認します。
# Check project-level first
test -f .canghe-skills/canghe-danger-gemini-web/EXTEND.md && echo "project"
# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
test -f "$HOME/.canghe-skills/canghe-danger-gemini-web/EXTEND.md" && echo "user"
┌──────────────────────────────────────────────────────────┬───────────────────┐ │ パス │ 場所 │ ├──────────────────────────────────────────────────────────┼───────────────────┤ │ .canghe-skills/canghe-danger-gemini-web/EXTEND.md │ プロジェクトディレクトリ │ ├──────────────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.canghe-skills/canghe-danger-gemini-web/EXTEND.md │ ユーザーホーム │ └──────────────────────────────────────────────────────────┴───────────────────┘
┌───────────┬───────────────────────────────────────────────────────────────────────────┐ │ 結果 │ 操作 │ ├───────────────────────────────────────────────────────────────────────────────────────┤ │ 見つかった │ 読み取り、解析し、設定を適用します │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ 見つからない │ デフォルトを使用します │ └───────────┴───────────────────────────────────────────────────────────────────────────┘
EXTEND.md で設定可能:デフォルトモデル | プロキシ設定 | カスタムデータディレクトリ
使用方法
# Text generation
npx -y bun ${SKILL_DIR}/scripts/main.ts "Your prompt"
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "Your prompt" --model gemini-2.5-pro
# Image generation
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "A cute cat" --image cat.png
npx -y bun ${SKILL_DIR}/scripts/main.ts --promptfiles system.md content.md --image out.png
# Vision input (reference images)
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "Describe this" --reference image.png
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "Create variation" --reference a.png --image out.png
# Multi-turn conversation
npx -y bun ${SKILL_DIR}/scripts/main.ts "Remember: 42" --sessionId session-abc
npx -y bun ${SKILL_DIR}/scripts/main.ts "What number?" --sessionId session-abc
# JSON output
npx -y bun ${SKILL_DIR}/scripts/main.ts "Hello" --json
オプション
| オプション | 説明 |
|---|---|
--prompt, -p | プロンプトのテキスト |
--promptfiles | ファイルからプロンプトを読み込みます(連結) |
--model, -m | モデル:gemini-3-pro(デフォルト)、gemini-2.5-pro、gemini-2.5-flash |
--image [path] | 画像を生成します(デフォルト:generated.png) |
--reference, --ref | ビジョン入力用の参照画像 |
--sessionId | 複数ターンの会話用セッション ID |
--list-sessions | 保存済みセッションを一覧表示します |
--json | JSON 形式で出力します |
--login | Cookie を更新して終了します |
--cookie-path | カスタム Cookie ファイルのパス |
--profile-dir | Chrome プロファイルディレクトリ |
モデル
| モデル | 説明 |
|---|---|
gemini-3-pro | デフォルト、最新 |
gemini-2.5-pro | 以前の Pro モデル |
gemini-2.5-flash | 高速、軽量 |
認証
初回実行時に Google 認証用のブラウザーが開きます。Cookie は自動的にキャッシュされます。
対応ブラウザー(自動検出):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 を使用してカスタム設定ができます。パスとサポートされているオプションについては、設定セクションを参照してください。