GeminiDesktop GeminiDesktop
ガイド

GeminiDesktopにGemini CLIチャットモード搭載:APIキー不要で1日1000回のGemini 2.5 Pro無料利用

公開日 · 著者: GeminiDesktop Team

GeminiDesktopのチャットページ(geminidesktop.app/chat)に新しい小さなスイッチが増えました:CLIトグル。これをオンにすると、すべてのメッセージがGemini APIに直接向かわず、あなたが既にローカルでログイン済みのgemini CLIにルーティングされます。つまり、OAuthサインインだけで1分間60回、1日1000回の無料Gemini 2.5 Proを使え、あの長いAIza...のBYOK APIキーをブラウザに入れる必要がなくなります。

TL;DR クイックリファレンス

  • 起動方法:GeminiDesktopチャットページ入力欄上のツールバー → Search / URL / Codeの隣に追加された「CLI」ボタン
  • 認証:ローカルの~/.gemini/tokens.json(OAuth)。APIキーはブラウザに入らない
  • 無料枠:個人Googleアカウント → Gemini 2.5 Proを1分60回、1日1000回、100万トークンコンテキスト
  • モデルセレクター:上部のモデルドロップダウンそのまま再利用。選択したモデルは--model <id>でCLIに渡され、モデル名の横に「· via CLI」サフィックス表示
  • デスクトップ限定:ブラウザではトグル無効化(サブプロセス起動不可)。Tauriデスクトップアプリのみで動作
  • インストールbun add -g @google/gemini-cli、またはCLI未検出時にGeminiDesktopのワンクリックInstall
  • アーキテクチャ選択ACPではなくHeadlessモード(gemini --output-format stream-json)。既存のlocal_agentイベントパイプラインを再利用
  • MVPスコープ:添付ファイル、Computer Use、Regenerate/Editは未対応

入力欄の隣に追加された「CLI」トグル

GeminiDesktopデスクトップアプリを開き、/chatに移動すると、入力欄上のツールバーでSearch / URL / Codeグラウンディングトグルの隣に新しい小さなボタンが見えます:CLI

シンプルなロジック:

  • オフ(デフォルト):メッセージは@ai-sdk/googleからGemini APIへ直接流れます。設定に保存したAPIキー(BYOK)を使用
  • オン:以降のメッセージはローカルのgemini CLIにルーティング、headlessモードで実行、ローカルOAuthトークンで認証

切り替えは摩擦ゼロ。アプリ再起動、再ログイン、履歴消去は不要。トグルを切り替える前のAPIモードのメッセージはそのまま残り、次のメッセージからCLI経由になります。

**上部のモデルセレクターはそのまま再利用。**あの馴染みの「Gemini 3.1 Pro / 3.0 Flash / 2.5 Pro / 2.5 Flash / Flash Lite」ドロップダウンはCLIモードでも同じように動作します — 選択したモデルは--model <id>でCLIに転送されます(Gemini CLIドキュメントでこのフラグのサポートを確認済み)。CLI経由で動いていることが一目で分かるように、モデル名の横に控えめなグレーの「· via CLI」サフィックスが表示されます。

切り替える価値のある3つの実利

1. 無料枠:OAuthサインインで1日1000回のGemini 2.5 Pro

これがほとんどの人がスイッチを入れる主な理由です。

Google公式発表によると、個人GoogleアカウントでGemini CLIにサインインすると、無料Gemini Code Assistライセンスが自動付与され、Gemini 2.5 Proを以下の枠で利用可能:

  • 1分間60回のリクエスト
  • 1日1000回のリクエスト
  • 100万トークンのコンテキストウィンドウ

BYOKルートと比較:Google AI Studioに登録してAPIキーを発行し慎重に管理するか、Google Cloudの新規顧客$300クレジットを追いかけて使用量を気にするか。CLIモードはこれらすべてをスキップ。OAuthブラウザフロー一度で、トークンが~/.gemini/tokens.jsonに入り、GeminiDesktopがCLIを呼び出すときCLI自身がトークンを読みます。あなたのAPIキーはブラウザにも、GeminiDesktopのどのストレージにも存在しません。

2. ローカル権限:話すだけでなく、動くGemini

CLIモードの2つ目の価値:Geminiがローカルツールを呼び出せるようになります。

APIのみのチャットでは、Geminiは話すことしかできません — 何をすべきか教えてくれるだけで、実行はあなた自身が行います。CLIチャットでは、Geminiがファイルを読み、書き、シェルコマンドを実行します。本当の意味でのローカルエージェントになります。

日常的なシナリオいくつか:

  • 「Downloadsフォルダ内のすべてのPDFタイトルを表に整理」 — CLIモードのGeminiがls ~/Downloads/*.pdfを実行、メタデータを読み、きれいなリストを返す
  • 「このプロジェクトのTypeScriptエラーは何?」 — ログの貼り付け不要。Geminiがディレクトリにcdtsc --noEmit実行、出力を読んで問題箇所を突き止める
  • 「この会議録音をMarkdownに変換」 — Geminiがローカルファイルを読み、適切なシステムツールを呼び出し、結果を書き出す

安全のため、デフォルトのpermissionMode--yoloではなくdefault。CLIが黙ってファイルを編集することはなく、すべての機密操作(ファイル書き込み、シェルコマンド)についてCLIレベルで承認を求めます。完全な自律を望むユーザーは後で設定からYOLOに切り替えられますが、デフォルトは保守的に保たれます。

3. ストリーミング:API経路とまったく同じ見た目

心配になるかもしれません:CLIは別プロセスなのに、その出力がチャットバブルに生テキストで流れ込まないか?

そうはなりません。内部ではGeminiDesktopの成熟したlocal_agentイベントパイプラインを再利用しています。CLIのstream-json出力はRust側で統一メッセージ形式にパースされ、Tauriイベントでリアルタイムにフロントエンドへ届き、フロントエンドアダプタがメッセージのpartsへ再マッピング。最終的にはAPI経路が使うのと同じチャットバブルコンポーネントでレンダリングされます。

**UIは両モードで完全に同じ。**ツール呼び出し(read_filerun_shell)は展開可能なカードとしてレンダリングされ、入力JSONと出力テキストを確認できます。思考(Thinking)は淡色の別バブルとして表示され、ストリーミングテキストはAPIモードと同じく一文字ずつタイプされます。唯一の違いはモデル名横の控えめな「· via CLI」サフィックスだけ。

3ステップで始める

ステップ1: gemini CLIのインストール

2つの方法、どちらかを選んで:

# 方法A:コマンドを自分で実行
bun add -g @google/gemini-cli
# または:npm install -g @google/gemini-cli

またはGeminiDesktop内からワンクリックインストール:CLIトグルを初めてオンにしたとき、CLI未インストールが検知されると、「Install」ボタン付きのtoastがポップアップしてコマンドを自動実行。

ステップ2: 初回OAuthログイン

ターミナルで:

gemini

ブラウザウィンドウが自動的にGoogleサインインページを開きます。個人Googleアカウントで認可してください。トークンが~/.gemini/tokens.jsonに書き込まれ、以降GeminiDesktopのCLI呼び出しはこのトークンを自動的に読みます。

ステップ3: 「CLI」トグルをオン

geminidesktop.app/chatに移動して、入力ツールバーの「CLI」ボタンをクリック。青くハイライトされればオン。いつものようにメッセージを送信 — 上部に「Gemini 3.x Pro · via CLI」が表示され、CLIが引き継いだことが確認できます。

MVPのスコープ(正直バージョン)

✅ サポート:

  • テキストチャット(すべてのGeminiモデル選択可能)
  • モデル切り替え(上部セレクター → CLI --model
  • ツール呼び出しのストリーミング(read_file / run_shell / code_executionなど)
  • StopボタンでCLIプロセスを随時中断
  • マルチターンコンテキスト(prompt-prefix連結 — 次のセクション参照)

❌ まだサポートなし:

  • 添付ファイル:CLIはファイルパスが必要ですが、ブラウザ側の画像やPDFはblob。blobを一時ディレクトリに書き込むグルー層を実装していないため、CLIモード中の添付はtoastで阻止されます。後続アップデート予定
  • Computer Use:よく混同される — Gemini Computer UseはGemini 3.1 Pro APIの機能(モデルがスクリーンショットを撮ってデスクトップを操作)であり、CLIの機能ではありません。Gemini CLI自体はComputer Useツールを公開していません。Computer Useは後日、API経路上の別機能として専用エグゼキュータと共にリリース予定で、CLIトグルとは並列関係
  • Regenerate / メッセージ編集:CLIモードで生成されたアシスタントメッセージは「再生成」や「編集して再実行」をまだサポートしません。CLIバブルではこれらのボタンが無効化。後続で対応

🔮 今後:Gemini CLIが公式にheadless --resume <id>フラグまたは適切なACP統合を出せば、ネイティブセッション状態管理に切り替え。現在のprompt-prefix連結は実用的な代替策。

なぜHeadlessでACPではないのか — アーキテクチャ・ノート

技術に興味のある方へ。

Gemini CLIをチャットUIに組み込む2つの方法:

Headlessモードgemini --output-format stream-json):メッセージごとに新しいCLIサブプロセスを起動、stdoutからstream-jsonイベントをパース、プロセス終了で該当ターンが終わる。マルチターンコンテキストは手動で履歴を連結して実装 — 以前のuser/assistantメッセージを新しいプロンプトの前に付ける。

ACPモードAgent Client Protocol):長期実行のJSON-RPCサブプロセスを運用、initialize / newSession / prompt / cancelメソッドでCLIと対話。ネイティブなマルチターン状態、loadSession復元、MCPツールブロードキャスト — より完全、より実装コストが大きい。

私たちはHeadlessを選びました。正直な理由:

  1. 成熟したパイプラインの再利用:GeminiDesktopの基盤となるlocal_agentモジュールは、Claude Code、OpenCode、Codex、Cursorなどを約1年間Headlessで実行してきました。イベントブリッジ、メッセージプロトコル、エラー処理、Stopボタン — すべて既にあります。Gemini CLI追加はexecutor拡張だけで済みました
  2. 時間コストの差:Headlessリリースに約1週間、ACPに約1ヶ月(JSON-RPCクライアント、サブプロセスライフサイクル、MCPサーバーブロードキャスト — ACPではホストがファイルI/Oをプロキシする必要があるため)
  3. Headlessで十分:ターンあたり約150-300msのスポーンコストはチャットUXで許容範囲。Prompt-prefixマルチターンは毎回履歴を再送するものの、Gemini 2.5 Proの100万トークンウィンドウはそのオーバーヘッドを気にしません

結論:まずHeadlessを出してみんなに使ってもらう;ACPは後続アップグレードに残し、スポーン遅延やキャンセル仕様が実際に問題になったら再検討。

Claude Desktop / ChatGPTとの比較

GeminiDesktopの基盤となるlocal_agentモジュールは、実はClaude Code、OpenCode、Codex、Cursorなど他のCLIもサポートしています。主な違い:

  • Gemini CLI(今回のリリース):個人Googleアカウント無料(1日1000回)、OAuthログインのみ;長コンテキスト(100万トークン)の強み
  • Claude Code:Anthropic APIサブスクリプションまたはProプランが必要 — 有料パス。トップクラスの推論品質

選び方:日常のチャット / 長コンテキストタスク / 「とにかく無料」 → Gemini CLI。本格的なコード編集 / 既にClaudeエコシステム → Claude Code。両方は1つのGeminiDesktopインストールで共存でき、設定でデフォルトエージェントを切り替えられます。

今までClaude DesktopやChatGPTデスクトップを使ってきたなら、Claude DesktopからGemini for Macへの完全移行ガイドを確認してください — GeminiDesktopのCLIモードと組み合わせれば、Claudeの有料プランを完全にスキップできます。

FAQ

Q1: CLIモードで私のチャット内容はどこに送信される?

直接APIモードと同じ — 内容はgemini CLIを通じてGoogleのGeminiサーバーに流れます。違い:

  • 認証:ローカルOAuthトークン経由、ブラウザ内にAPIキーなし
  • データ経路:GeminiDesktop → ローカルCLIプロセス → Google Gemini API(間にサードパーティバックエンドなし)
  • チャット履歴:ローカルIndexedDBに保存、どのサーバーにもアップロードされない

Q2: CLIモードとAPIモードを一緒に使える?

はい。トグルは自由に切り替えでき、両モードのメッセージは同じセッションで自然に共存します。よくある混合パターン:日常的な軽いチャットはAPIモード + Flash Lite(安い、速い)、Geminiにローカルファイルを触らせたい、コードを実行させたい、長い推論を回したいときはCLIモード + 2.5 Proに切り替え。

Q3: トグルを切り替えても反応がない、あるいはエラーが出る?

3つのよくある原因:

  1. CLI未インストール:トグルがInstall toastを表示 — 「Install」をクリック、またはbun add -g @google/gemini-cliを手動実行
  2. CLI未認証:「Gemini CLI未認証」toastが表示されます。ターミナルでgeminiを実行してOAuthフローを完了
  3. ウェブ版でデスクトップアプリではない:ブラウザではトグルが無効です。フル体験のためにGeminiDesktopをダウンロード

Q4: CLIモードはGemini CanvasやNotebookLMの代替?

いいえ、補完的な関係です。Canvasはウェブページ / インフォグラフィック / クイズ / フラッシュカード作成テンプレートに特化 — Gemini Canvas on Desktop参照。NotebookLMはRAGスタイルの知識ベースツールで、複数ソースのQ&Aが中心。CLIモードは「Geminiにローカルファイルシステムで何かしてほしい」シナリオに最適 — ファイル整理、コードデバッグ、シェル実行、長コンテキスト推論。

Q5: Windowsでも動く?

はい。GeminiDesktopはmacOSとWindowsの両方をサポート(Tauriパッケージング)し、CLIモードは両方で同じように動作します。Windowsでのジェミニ体験をまだ評価中なら、Googleがまだネイティブなジェミニ Windowsアプリを作っていない理由でWindowsの状況を確認してください。

まとめ

小さなトグル1つが大きな仕事をします:Googleの無料枠をGeminiDesktopのチャット体験に取り込みました。有料APIキーなし、ターミナル操作なし、モデルセレクターの再実装なし。「APIキー管理なしでGemini 2.5 Proを使いたい」ユーザーにとって、最も摩擦の少ないルートです。

MVPが先;添付ファイル、Computer Use、ACPモードのアップグレードは後続機能として出荷予定。今すぐ試す:geminidesktop.app/chat