プライバシーポリシー

Phrasekeep Notes に記録したデータの保存場所と、外部通信について説明します。

適用範囲

本ポリシーは、ブラウザ版の phrasekeep-web(phrasekeep.app で公開)と、Windows 版の phrasekeep-desktop (招待したテスターへ提供するクローズド beta)の両方に適用します。いずれの host でも、Google でのサインイン、運営者が許可した account に限る vault の server 同期、およびサインイン中に利用できるクリップの文字起こし機能を提供します。phrasekeep-desktop も phrasekeep.app を通じて同じ仕組みに接続します。取得する情報、利用目的、保存期間、提供先は「アカウントと同期」と「クリップの文字起こし」で説明します。これら以外の機能を将来追加する場合は、同じ内容を実装前に追記します。

ノートと学習データ

ノート本文の保存先は host によって異なります。phrasekeep-desktop では、利用者が選んだ Windows 上のフォルダーへ Markdown ファイルとして保存し、復習状態などの補助情報も同じフォルダー内に保存します。phrasekeep-web では、ブラウザの IndexedDB(このサイトのオリジン専用のストレージ)へ保存します。ノートはその端末の、そのブラウザのプロファイル内にとどまり、サイトデータを消去した場合やプライベートウィンドウを使った場合には失われます。サインインして vault を同期にリンクしない限り、いずれの host でも、Phrasekeep の運営者が用意するサーバーへ、これらのデータを送信または保存しません。

サインインせずに利用している場合、運営者はノートの内容を閲覧、復元、削除することができません。バックアップは host によって方法が異なります。phrasekeep-desktop では、保存フォルダーの管理、バックアップ、Windows のユーザーアカウントや端末の保護を利用者自身で行ってください。phrasekeep-web にはコピーできる保存フォルダーがないため、アプリが提供するアーカイブの書き出し機能でノートとフォルダーをファイルに保存し、そのファイルを利用者自身で保管してください。サインインして vault を同期にリンクした場合は、次の「アカウントと同期」で説明するとおり、運営者のサーバーがノートの内容を保持するため、運営者はその内容を確認できます。

アカウントと同期

いずれの host でも、Google でサインインすると phrasekeep という独立した tenant の account が作られます。TokiNuri など他の Mine 製品で同じ Google アカウントを使っていても、それらとは別の account として扱います。account が保持する情報は、メールアドレス、表示名、その Google アカウントとの結び付けに使う Google 発行の識別子、account をリンクした日時、直近のサインイン日時です。Google へはサインインのためだけに接続し、ノートの内容を送信することはありません。

新しく作った account は、既定では同期を利用できません。運営者がクローズド beta の間に account ごとに同期を許可した場合にだけ、vault を server にリンクして同期できるようになります。許可されていない account は、同期が利用できないことが画面に表示されます。

vault を server にリンクすると、vault の表示名、各ノートとフォルダーの作成・更新日時、ノートの id、タイトル、本文、タグ、source URL とフォルダー、タグの管理情報、継続学習など plugin の設定・状態・記録、各ノートで折りたたんだ見出しのテキスト、および削除の記録(tombstone)を運営者のサーバーに保存します。目的は、同じ vault を複数の端末から使えるようにすることだけです。保存先は運営者自身のサーバーで、phrasekeep.app を通じて送受信します。削除の記録は、vault が存在する間、保持し続けます。

設定パネルの「サーバー同期」を端末ごとにオフにすると、その端末からの同期を一時停止できます(server 側の vault はそのまま残ります)。vault のリンクを解除(unlink)すると、その端末は同期しなくなりますが、server 上の vault は残ります。設定パネルの account 削除フローで account を削除すると、その account が持つすべての vault と記録、および account 自体を運営者のサーバーから削除します。サインアウト、通常の unlink、account 削除では、端末に保存されているノート自体は削除されません。別の account に切り替えるとき、phrasekeep-web では確認のうえ端末のノートを削除する選択肢を表示し、選ぶとブラウザー内のデータベースを削除します。phrasekeep-desktop ではこの操作を表示せず、vault フォルダー内のノートは利用者が管理します。

サインインと同期の通信、およびクリップの文字起こしの通信は、phrasekeep.app を経由して運営者の API サーバーへ届きます。その際 phrasekeep.app は、Cloudflare から受け取った利用者の IP アドレスを X-Forwarded-For ヘッダーで API サーバーへ伝えます。API サーバーはこの IP アドレスを、サインインの失敗が短時間に繰り返されたときの試行制限に使います。失敗の回数は、IP アドレスを元に戻せない値(ハッシュ値)に変換したうえで数え、この記録は5分で消えます。制限がかかったときは、その IP アドレスを API サーバーのログに記録します。文字起こしの利用回数の上限は account ごとに数え、IP アドレスは使いません。また、phrasekeep.app を通じて API サーバーが受け取る各リクエスト(デスクトップアプリからの同期も含みます)について、API サーバーは IP アドレス、リクエストメソッド、パス(クエリ文字列を含みます。同期のリクエストではパスに vault ID が含まれます)、ステータスコードを時刻とともにアクセスログへ記録します。記録先は API サーバー自身の systemd journal です。固定の保存期間はなく、journal が容量の上限に達すると古い記録から自動的に削除されます。account を削除してもこのログは削除されません。このログはサービスの運用と障害調査に使います。

端末に保存するデータ

サインインの操作をすると、phrasekeep.app は次の cookie をブラウザーに保存します。サインインの操作をしない限り、cookie は保存しません。__Host-phrasekeep_access_token はサインイン中であることを証明する token で、ページ上のスクリプトからは読めない設定(HttpOnly)にしています。token の有効期限が切れるか、サインアウトするまで保持します。pk_signed_in はサインイン中であることだけを示す目印で、token は含みません。保持する期間は __Host-phrasekeep_access_token と同じです。__Secure-phrasekeep_google_flow は Google のサインイン画面と行き来する間だけ使う一時的な cookie で、15分で失効します。いずれも暗号化された接続(HTTPS)でだけ送信します。広告やアクセス解析のための cookie は使いません。

すべてのデバイスからサインアウトすると、Phrasekeep アカウントのすべての token が無効になり、ノートは各デバイスに残ります。

テーマ、言語、レイアウト、開いているフォルダー、ペインの幅、ノートの分割表示などの表示設定は、ブラウザーの localStorage(phrasekeep-desktop ではアプリ内の同じ仕組み)に保存します。これらは端末内にとどまり、運営者のサーバーへは送信しません。

vault を同期にリンクした端末には、同期を続けるための管理情報を保存します。内容は、端末を区別するための ID、リンク先の vault と account の ID、どこまで受信したかを示す位置、まだ送信していない変更の一覧です。保存先は、phrasekeep-web ではブラウザーの IndexedDB、phrasekeep-desktop では vault フォルダー内の .phrasekeep/sync.json です。端末を区別するための ID は同期の通信に含めて送信しますが、現在のサーバーはこれを保存しません。

phrasekeep-desktop では、サインインで受け取った token を Windows の資格情報マネージャー(Windows Credential Manager)に保存します。保存名は net.jjjun.phrasekeep-notes です。サインアウトすると削除します。token を vault フォルダーに書き出すことはありません。

YouTube への接続

YouTube のサムネイルを表示するときは YouTube の画像配信先へ、埋め込みプレイヤーを表示・再生するときは YouTube へ接続します。その際、IP アドレス、端末やアプリの情報、参照元、動画 ID などが Google に送信される場合があります。

埋め込みには YouTube のプライバシー強化モードのドメインを使用します。ただし、これは YouTube への通信がなくなることを意味しません。Google による情報の扱いは、Google プライバシーポリシーを確認してください。

クリップの文字起こし

サインインが必要です。クリップの「文字起こし」ボタンを押したときに限り、そのクリップの YouTube 動画 ID と開始・終了時刻を Phrasekeep のサーバーへ送信し、サーバーから Google Gemini API へ送信します。

文字起こし結果は動画 ID と時間範囲をキーにしたサーバーキャッシュへ保存します。キャッシュは account と結び付けず、account ID などの個人情報を含みません。同じクリップへの再回答に使うために保持し、固定の保存期間は定めていません。各リクエストの token 数と推定費用は account に紐付けた利用記録に保存し、account を削除するとこの記録も削除します。

これとは別に、文字起こしリクエストごとに、キャッシュから回答した場合も含め、API サーバーのログに操作ログを1行記録します。ログには account ID、YouTube 動画 ID、クリップ範囲の開始・終了時刻、使用したモデル、キャッシュから回答したかどうか、token 数、推定費用、処理時間、結果を含みます。このログはサービスの運用・障害調査と費用の監視に使います。本番の API サーバーは、このログを日ごとのログファイルと systemd journal の両方に書き込みます。ログファイルは30日分を保持し、それより古いものは自動的に削除されます。systemd journal には固定の保存期間がなく、容量の上限に達すると古い記録から自動的に削除されます。また、クリップの長さに比べて token 数が想定を大きく超えたリクエストは、account ID、動画 ID、クリップ範囲と token 数を API サーバーのエラーログにも記録します。エラーログには固定の保存期間がありません。account を削除しても、これらのログは削除されません。

利用状況の計測

Phrasekeep Notes のアプリには、広告、トラッキングピクセル、アクセス解析 SDK を組み込みません。テスターや利用者からの意見や不具合報告は、利用者が問い合わせ先へ自分で送った内容だけを確認します。

公開サイトについて

phrasekeep.app は Cloudflare を通じて配信しており、配信の過程で IP アドレスやユーザーエージェントなどのリクエストメタデータを Cloudflare が処理します。上記のとおり、本アプリケーションには広告、トラッキングピクセル、アクセス解析 SDK を組み込んでおらず、この公開に合わせて追加してもいません。

あわせて、配信元のオリジンサーバー自体もリクエストごとに1行のログを記録します。記録するのは IP アドレス、リクエストメソッド、パス、ユーザーエージェントです。レスポンス完了時には、同じ IP アドレス、リクエストメソッド、パスに加え、ステータスコードと処理時間をもう1行に記録します。いずれのログにも、それ以外の情報は含まれません。この記録は、ボットによる自動アクセスの検知と対策のためだけに使用し、個人を特定する目的では使用せず、アカウントやノート、復習の記録と結び付けることもありません。今後記録する分については、30日を超えて保持しません。

運営者とお問い合わせ

Phrasekeep は Jun が運営しています。

プライバシーに関するお問い合わせは、X の @Junlittlelab までご連絡ください。

制定日: 2026年8月26日 / 改定日: 2026年10月11日