プライバシーポリシー — Drover
発効日: 2026-09-22 開発者: Keisuke Nishitani 連絡先: kei.sj.nstn@gmail.com
このページは英語版の日本語訳です。内容に相違がある場合は英語版が優先されます。
要点
Drover は、お使いのデバイスを SSH でご自身のコンピュータに直接接続します。その経路上に開発者が運用するサーバーはなく、開発者はそこを流れる内容を見ることができません。この接続を流れるもの — エージェントの会話履歴、送信したコマンド、ソースコード、ファイルの内容 — は、お使いのデバイスとご自身のマシンのあいだだけをやり取りされ、ほかのどこにも行きません。
この経路の外に出る部分は、次の 2 つです。
- 開発者のバックエンド — 開発者が運用する唯一のサービスです。アプリの起動時に Firebase の匿名アカウントを作成し、エージェントが返事を待っていることをデバイスに伝えるほか、音声アシスタントのクレジットと課金記録も管理しています。
- 音声アシスタント — エージェントと話せるようにするため、マイクの音声、会話の文字起こし、エージェントの情報、メッセージや下書きを Google の Gemini に送信します。入口は既定で表示されますが、マイクを開いたり音声データを送信したりする前に明示的な同意を求めます。音声アシスタントをオフにすると、その同意は取り消されます。
それぞれが何を送信・保存するかは、以下にすべて記載しています。
Drover には、広告、トラッキング、クラッシュレポート、アプリ利用分析の SDK は含まれていません。後述するバックエンド機能のために Firebase Auth、App Check、Cloud Functions、Messaging の SDK を使用しており、それらが扱う識別子と限定的な運用・診断データも以下に記載します。データを販売したり、マーケティングのために共有したりすることはありません。
Drover が収集しないもの
Drover はご自身のマシンと直接やり取りするため、以下が開発者に届くことはありません。
- エージェントの会話履歴、チャット履歴、ターミナル出力
- エージェントに送るコマンド、プロンプト、追加のメッセージ
- ソースコード、差分、ファイル名、ファイルの内容
- プロジェクト、ホスト、ワークスペース、リポジトリの名前
- 添付した写真や画像(これらは SSH でご自身のマシンにアップロードされます)
- 音声入力で話した音声(後述の「音声入力」を参照)
- SSH の秘密鍵とそのパスフレーズ
「開発者に届かない」ことと「デバイスの外に出ない」ことは同じではありません。音声アシスタントをオンにすると、上に挙げたもののうち、お客様の発話と、エージェントの発言の一部が、音声セッションの実行中にかぎり Google へ送信されます。その内容は後述の「音声アシスタント」にすべて記載しています。これらが開発者に届かないことに変わりはありませんが、知っておく価値があるのは開発者のことだけではありません。
Drover はアプリの起動時に Firebase の匿名アカウントを自動作成します。任意で「Apple でサインイン」を使うと、そのアカウントに継続的なサインインを関連付け、一度きりの無料ボイスクレジットを受け取って、再インストール後や別のデバイスでも保持できます。Drover は Apple に氏名やメールアドレスを要求しません。Firebase アカウントには Apple のプロバイダ固有識別子が関連付けられますが、Apple ID のメールアドレスは渡されません。
デバイス内にのみ保存されるデータ
以下はお使いのデバイスに保存され、開発者に送信されることはありません。
- SSH の秘密鍵とパスフレーズ — iOS Keychain に保管されます。これらはデバイスに固定されており、暗号化バックアップから新しいデバイスへ復元されることはありません。
- ホストの接続設定 — ホスト名、ポート、ユーザー名、
herdrバイナリのパス、および Drover が初回接続時に固定したホスト鍵のフィンガープリント。これらも Keychain に保管されます。 - 設定 — テーマと言語の選択、および音声アシスタントをオンにして同意したかどうか。
アプリを削除すると、これらはすべて削除されます。
開発者のバックエンド
ホストをペアリングするかどうかにかかわらず、アプリの起動時に Firebase の匿名アカウントが作成されます。プッシュ通知は任意で、お客様が意図してホストをペアリングした後にのみ動作を開始します。「Apple でサインイン」も、SSH と通知という中核機能には任意です。既存の Firebase アカウントに継続的な識別子を関連付け、一度きりの無料ボイスクレジットを再インストール後や別のデバイスでも保持するために使われます。
バックエンドは Google Firebase(Authentication、Cloud Firestore、Cloud Functions、Cloud Messaging、App Check)上で動作します。保存する内容は以下のとおりです。
| 内容 | 目的 | 保存期間 |
|---|---|---|
| Firebase Anonymous Authentication によって自動的に作成される Firebase アカウント識別子。「Apple でサインイン」を使った場合は Apple のプロバイダ固有識別子が関連付けられます(Drover は氏名もメールアドレスも要求しません) | バックエンドへのリクエストを認証し、デバイスとホストを関連付け、継続的なボイスクレジット用ウォレットを紐付けるため | 設定でアカウントを削除するまで |
| 登録された各デバイスのプッシュトークンとプラットフォーム、およびタイムスタンプ | そのデバイスに通知を配信するため | デバイスの登録が解除されるまで |
| ペアリング済みの各ホストについて、匿名のアカウント識別子、そのホストのペアリング資格情報の SHA-256 ハッシュ、およびタイムスタンプ | そのホストが通知を送ってよいことを証明できるようにするため。資格情報そのものは保存されません | ホストを取り消すまで |
| ペアリングコード(SHA-256 ハッシュとしてのみ保存)と、アカウント識別子およびホスト識別子 | お客様が開始したペアリングを完了するため | 10 分後に自動削除 |
| 通知の重複排除レコード — タイムスタンプのみ | 同じイベントで二重に通知しないため | 24 時間後に自動削除 |
| レート制限のカウンター — リクエスト数とタイムスタンプ | バックエンドの不正利用を防ぐため | ローリングウィンドウ |
| 「有料でも使いたい」タップの集計数 — アカウントやデバイスの識別子は含まれません | 将来の有料音声プランへの関心を把握するため。購入や順番待ちへの登録ではありません | 集計値として無期限 |
| ボイスクレジットの残高 — 整数のクレジット数と、最後に変わった日時、および無料キャンペーンの付与が済んだかどうかを示すタイムスタンプ | 通話を始められるかどうかを判断し、設定画面で残高を表示するため | データを削除するまで |
| クレジット履歴 — クレジットが増減した内容(通話、返金、無料キャンペーンによる一度きりの付与)を1件ごとに記録したもの。金額とタイムスタンプに加え、通話とその返金の行には、どの通話のものかを示す識別子を含む(アプリには表示されません) | 残高の記録を残し、設定画面で最近の履歴を表示するため | データを削除するまで |
| 音声セッションの記録 — アカウント識別子、通話が始まった時刻、発行した短期トークンの数。お使いのデバイスが通話ごとに作るセッション ID の下に保存される | 5 分の通話で再接続しても一度だけ課金しながら、発行できるトークン数を制限するため | アカウントを削除するまで |
「Apple でサインイン」を使う前は、Firebase の識別子は通常、アプリのインストールを識別します。使用後は、同じ Firebase アカウントが Apple の継続的なプロバイダ識別子と結び付けられます。開発者は Apple の氏名やメールアドレスを要求しません。
通知に実際に含まれる内容
通知の文面は固定のテンプレートです。エージェントの出力から生成されるものではありません。
Agent needs your input
<agent name>is blocked.
<agent name> はコーディングエージェントの名前(例: claude)です。これとあわせて、アプリが正しい画面を開けるように、Drover は識別子(イベント識別子、ホスト識別子、ペイン識別子)を送信します。なお、通知の文面は上記のとおり英語で届きます。
会話履歴のテキスト、コード、ファイルパス、コマンドのテキストは通知に含まれず、いずれもバックエンドに保存されることもありません。
運用ログと SDK の診断データ
バックエンドは、配信の失敗を診断できるようにするため、ホスト識別子・ペイン識別子・イベント識別子と通知の配信件数を含む運用ログを記録します。これらのログに、通知の内容やご自身のマシン上のデータは含まれません。ログは Google Cloud Logging の既定の保持期間に従って保持されます。
Firebase Auth と Messaging のプライバシーマニフェストは、限定的なリンクされない診断データも申告しています。Firebase Messaging は、分析目的のリンクされない「その他のデータ」も申告しています。また App Check は、正規のリクエストかを検証するためにアプリ・デバイスのアテステーションデータを送信します。Drover は Firebase Analytics や Crashlytics を使用しませんが、これら SDK の申告は適用されます。このデータは Google が Firebase の条件と保持方針に従って処理します。
音声入力
Drover は音声を文字に変換できるため、エージェントへのメッセージを声で入力できます。これは Apple の音声認識を使う機能で、次の節で説明する音声アシスタントとは別の機能です。音声入力は発話をテキストに変換してご自身のマシンへ送るだけで、Google は一切関与しません。
音声認識はすべてお使いのデバイス上で実行されます。 Drover はオンデバイスでの認識を要求し、お使いのデバイスがオンデバイスで認識を実行できない場合は、音声をサーバーへ送信するのではなく、音声入力の開始を中止します。録音した音声がデバイスの外に出ることはなく、音声も書き起こしたテキストも開発者が保存することはありません。
書き起こされたテキストは、SSH でご自身のマシンへ送るメッセージになります。送信するかどうかはお客様が選べます。
音声アシスタント
Drover には、コーディングエージェントに打ち込む代わりに話しかけられる音声アシスタントがあります。入口は既定で表示されますが、表示されること自体は同意ではありません。最初に開いたときに、この節の内容をお見せし、マイクを開いたり Google へ何かを送信したりする前に同意を求めます。同意しなかった場合、マイクは開かれず、何も送信されません。設定で音声アシスタントをオフにすると保存された同意が取り消されるため、再度オンにした場合は改めて同意が必要です。
このアシスタントは Google の Gemini Live を利用し、お使いのデバイスがそこへ直接接続します。開発者のバックエンドは、セッションを開くための短期間だけ有効なアクセストークンを発行します。音声も、文字起こしも、エージェントの情報も、そこを通ることはありません。音声セッションの実行中にかぎり、次の内容が Google に送信されます。
- マイクの音声 — セッションを開いているあいだ、リアルタイムで送信されます。
- 両者の発話の文字起こし — お客様の発話とアシスタントの発話の双方で、その音声から Google が生成します。
- 応答に必要なエージェントの情報 — エージェントの名前・セッション名・種類・状態、各エージェントのプロジェクトのフォルダ名、エージェントが待っている質問の文面と選択肢、およびエージェントの最後の返信。
- メッセージと下書き — エージェントへ送るよう依頼したメッセージや、起動するよう依頼したエージェントへの指示書、それらの操作に必要な確認内容とツールの結果を含みます。下書きの文章は、Drover でメッセージ送信やエージェント起動を確定する前に Gemini へ送信されます。
正確に述べておきたい点が 2 つあります。
エージェントの返信からコードは取り除かれますが、パスは取り除かれません。 返信は送信前に短くまとめられ、コードはコードブロックもインラインのものも「(code omitted)」に置き換えられます。文章はそのまま送られるため、エージェントが文中に書いたパスや、お客様に尋ねている質問の文面に書いたパスは、そのまま Google へ送られます。Drover は文章からパスを見つけて取り除くことはしません。それを確実に行うことはできず、できると書くほうが、ここでこう書くよりも不誠実だからです。操作が失敗したときは、失敗したコマンドの出力ではなく、短いエラーコードだけがアシスタントに伝えられます。
エージェントの返信は、お客様が何も話していなくても送信されることがあります。 セッション中にエージェントが作業を終えた場合、アシスタントがそれをお知らせできるように、Drover はその最後の返信を送信します。お客様が発話したかどうかは関係ありません。
セッションは 5 分で自動的に終了し、それより早くいつでも終了できます。セッションを開いていないあいだは何も送信されず、設定で音声アシスタントをオフにすれば、これらはすべて行われなくなり、保存された同意も取り消されます。
これらが開発者に届くことも、開発者が保存することも、開発者が見ることもありません。Google はサービスを提供する目的でこれらを処理します。Gemini に送信されたデータを Google がどのように扱うかについては、Google のプライバシー関連ドキュメントを参照してください。
カメラと写真ライブラリ
写真を添付すると、Drover はエージェントが読み取れるように、それを SSH でご自身のマシンへアップロードします。画像が開発者のインフラを経由することはなく、開発者が保存することもありません。
アプリが正規のものであることの検証
Drover は Firebase App Check と Apple の App Attest を利用しており、これによってバックエンドは、リクエストが改変されていない正規のアプリから送られたことを確認できます。この仕組みには Apple のアテステーション(attestation)サービスが関与します。検証するのはアプリであってお客様ではなく、お客様を識別することはありません。
サードパーティ
- Google (Firebase) — 上記の通知バックエンドのデータを、開発者に代わって処理します。また、音声アシスタントを利用した場合は、「音声アシスタント」に記載したマイクの音声とエージェントの情報を、Gemini API を通じて受け取ります。Firebase および Gemini を通じて処理されるデータを Google がどのように扱うかについては、Google のプライバシー関連ドキュメントを参照してください。
- Apple — Apple Push Notification サービスを通じてプッシュ通知を配信し、上記の App Attest によるアテステーションと、任意の「Apple でサインイン」によるアカウント連携を提供します。
これ以外のサードパーティはありません。Drover には、広告、トラッキング、クラッシュレポート、アプリ利用分析の SDK は含まれていません。
トラッキング
Drover はお客様をトラッキングしません。広告のためにデータを収集することはなく、お客様のプロファイルを作成することもなく、データブローカーにデータを提供することもありません。広告識別子 (Advertising Identifier) は使用せず、トラッキングの許可を求めることもありません。
データの削除
- Drover でホストを取り消すと、そのホストのレコードとペアリング資格情報のハッシュがバックエンドから削除されます。
- デバイスの通知を解除すると、そのデバイスのプッシュトークンが削除されます。
- 設定で音声アシスタントをオフにすると、それ以降 Google へ何かが送信されることはなくなり、保存された音声利用の同意も取り消されます。
- 設定でアカウントを削除すると、バックエンドの削除処理が呼び出されます。Firebase アカウントと、そのホストのペアリング、デバイス記録、ウォレット、クレジット履歴、音声セッション記録が削除されます。Apple と連携している場合、Drover は Firebase にそのサインイン認可の取り消しも要求します。その後、任意のバックエンド機能を再び使えるように、新しい Firebase 匿名アカウントが作成されます。
- アプリを削除すると、SSH 鍵を含め、デバイスに保存されているすべてが削除されます。ただし、アプリを削除するだけではバックエンドデータの削除は保証されません。先に「アカウントを削除」を使うか、kei.sj.nstn@gmail.com までご連絡ください。
ペアリングコードと重複排除レコードは、上記の表に記載したスケジュールに従って、お客様が何もしなくても自動的に削除されます。
お子様について
Drover は開発者向けのツールです。お子様に向けたものではなく、お子様からデータを故意に収集することもありません。
セキュリティ
ご自身のマシンへの接続には、鍵認証による SSH を使用します。Drover はホストの鍵を初回接続時に固定し、変更された場合は警告します。SSH の秘密鍵とパスフレーズは iOS Keychain に保存されます。バックエンドへのリクエストは認証され、App Attest による検証が必要です。また、バックエンドはデータベースへのクライアントからの直接アクセスをすべて拒否します。
本ポリシーの変更
変更がある場合は、発効日を更新のうえ、このページに掲載します。