Google GeminiLLM・AI開発⭐ リポ 2品質スコア 64/100
gemini-bridge
Safari自動化経由でGeminiと対話 - APIキー不要のGemini向けREST API + CLIツール
description の原文を見る
Talk to Gemini via Safari automation - REST API + CLI tool for Gemini without API key
SKILL.md 本文
Gemini Bridge v1.0
Google Gemini を REST API + CLI ツールに変換します。APIキーは不要です。
アーキテクチャ
Client → Safari JS injection → gemini.google.com → DOM extraction → Response
コア機能
- ゼロパーミッション: アクセシビリティ不要、システムイベント不要、純粋な AppleScript + JS
- ゼロ依存: Python 標準ライブラリのみ、外部パッケージなし
- grok-bridge ベース: 同じ実績のあるアーキテクチャを Gemini に適応
前提条件
- Safari を搭載した macOS
- gemini.google.com にログイン済み(Gemini Pro 推奨)
- Safari > 設定 > 詳細 > Web 開発者機能を表示 ✓
- Safari > 開発 > Apple イベントから JavaScript を許可 ✓
使用方法
REST API モード(推奨)
# サーバー起動
bash ~/脚本/skiils/gemini-bridge/start_server.sh
# どこからでもクエリ実行
curl -X POST http://localhost:19999/chat \
-H "Content-Type: application/json" \
-d '{"prompt":"What is quantum computing?","timeout":60}'
# ヘルスチェック
curl http://localhost:19999/health
# 会話履歴を読込
curl http://localhost:19999/history
# 新規会話開始
curl -X POST http://localhost:19999/new
CLI モード
bash ~/脚本/skiils/gemini-bridge/scripts/gemini_chat.sh "Explain blockchain" --timeout 30
API エンドポイント
| メソッド | パス | 説明 |
|---|---|---|
| POST | /chat | プロンプトを送信、レスポンス待機 |
| POST | /new | 新規会話開始 |
| GET | /health | ヘルスチェック(Safari URL、Gemini ステータス) |
| GET | /history | 現在のページの会話を読込 |
技術詳細
入力方法
document.execCommand('insertText')- React 制御入力をバイパス- Gemini の
contenteditablediv で動作
送信方法
button[aria-label="Send message"]の JSbutton.click()- パーミッション不要
レスポンス抽出
document.body.innerTextを 2 秒ごとにポーリング- 安定性検出(2 回連続の同一読み取り)
- UI アーティファクトをクリーン化(ボタン、サジェスション等)
- 「Gemini said」マーカー後のコンテンツを抽出
パフォーマンス
- 平均レスポンスタイム:単純なクエリで約 10 秒、複雑なクエリで約 20 秒
- タイムアウト:設定可能(CLI デフォルト 60 秒、API 120 秒)
- 並行リクエスト:スレッド処理で対応(API モード)
Grok Bridge との主な違い
- 成長閾値: 20 文字(Grok は 30)- Gemini の応答はより短い
- レスポンスマーカー: 「Gemini said」(Grok はユーザープロンプト)
- 入力要素:
div[contenteditable=true](Grok はtextarea) - デフォルトポート: 19999(Grok は 19998)
セキュリティに関する注記
- 認証情報は保存なし: 既存の Safari ログインセッションを使用
- デフォルトではローカルのみ: リモートアクセスは 0.0.0.0 にバインド(注意して使用)
- レート制限: Gemini のレート制限を継承(Gemini Pro 推奨)
トラブルシューティング
「osascript エラー」
- Safari > 開発 > Apple イベントから JavaScript を許可 を確認
- Safari が実行中で、ウィンドウが開いていることを確認
「input not found」
- gemini.google.com にログインしていることを確認
- Gemini UI が変更されていないか確認(gemini_bridge.py の INPUT_SELECTORS を更新)
「timeout」またはレスポンスが不完全
- タイムアウトパラメータを増加
- ネットワーク接続を確認
- Gemini Pro サブスクリプションを確認(より高速なレスポンス)
ユースケース
- 無料 LLM API: 有料 API を Gemini Pro サブスクリプションで置き換え
- バッチ処理: REST API で複数のクエリを自動化
- 統合: Gemini をカスタムワークフロー/スクリプトに接続
- A/B テスト: Gemini と Grok のレスポンスを並べて比較
- マルチモデル戦略: 異なるタスクに Grok と Gemini の両方を使用
クレジット
- アーキテクチャ:grok-bridge (ythx-101)をベース
- Gemini 適応:驼哥的专属架构师 (Claude Opus 4.6)
ライセンス
MIT
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- yangtuo8
- ライセンス
- MIT
- 最終更新
- 2026/3/16
Source: https://github.com/yangtuo8/gemini-bridge / ライセンス: MIT