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
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。