プライバシーポリシー
発効日: 2026-10-11 · 対象: Keryx(デスクトップ版・Android 版・iOS / iPadOS 版)
Keryx はローカルファーストの RSS リーダーです。このドキュメントでは、アプリが扱う データの内容と行き先を明確に説明します。Keryx はオープンソースであり、以下の内容は すべてソースコードで確認できます: https://github.com/shimataro/keryx
概要
- Keryx にはユーザーアカウントがなく、開発者が運営するサーバーもありません。 登録が必要なものは何もなく、Keryx がユーザーのデータを開発者に送ることも ありません。
- 購読フィード・記事・既読/スター状態・タグ・フォルダー・設定など、すべてのデータは クラウド同期を明示的に有効にしない限り、端末内のローカルデータベースにのみ 保存されます。
- アプリにはアナリティクス・テレメトリー・クラッシュレポート・広告・トラッキングの 類は一切含まれていません。そもそも何も収集していないため、オプトアウトする対象 自体が存在しません。
端末に保存されるデータ
Keryx は以下の 2 つのローカルファイルにデータを保存します。
keryx.db(SQLite): 購読フィード、キャッシュされた記事内容(タイトル・要約・ 本文・著者など。これらは購読先フィードから取得したものであり、ユーザー自身が 送信するものではありません)、既読/スター状態、タグ、フォルダー、アプリ全体設定。 ローカル全文検索インデックスと同期用の内部管理情報も含まれますが、いずれも端末外 へ出ることはありません(後述)。local_settings.json: テーマ・文字サイズ・更新間隔・ウィンドウ配置などの デバイスローカル設定。
デスクトップ(macOS・Windows・Linux)では、両ファイルとも OS 標準のアプリデータ
ディレクトリ(macOS: アプリのサンドボックスコンテナ内の
~/Library/Containers/works.merc.keryx/Data/Library/Application Support/Keryx、Windows:
%APPDATA%\Keryx、Linux: $XDG_DATA_HOME/Keryx)に置かれます。Android では、
Keryx だけがアクセスできるアプリ専用の領域に別々に保存されます — keryx.db は
アプリのデータベース用ディレクトリに、local_settings.json はアプリの内部ファイル
用ディレクトリに置かれ、いずれも他のアプリからはアクセスできず、root 権限なしに
ユーザー自身が直接触ることもできません。iOS / iPadOS では、アプリ専用のサンドボックスコンテナ
(その中の Application Support フォルダー)に置かれ、Keryx だけがアクセスできます。
OS 標準のキャッシュディレクトリ(macOS: ~/Library/Containers/works.merc.keryx/Data/Library/Caches/Keryx、Windows:
%LOCALAPPDATA%\Keryx\Cache、Linux: $XDG_CACHE_HOME/Keryx)には、購読フィードの
favicon 画像と記事表示に使う WebView のプロファイルが、単なる表示高速化のための
一時データとして保存されます。Android では、favicon 画像と記事表示に使う WebView
のプロファイルは、代わりにアプリ専用のプライベートキャッシュ領域(iOS / iPadOS では
アプリのコンテナ内の Caches フォルダー)に保存され、OS の判断でストレージ逼迫時に
削除されることがあります。いずれの場合も上記のアプリデータ
ディレクトリとは別の場所であり、自分で削除する方法は後述の「データの保持・削除」を
参照してください。
以下の「クラウド同期(任意)」を有効にしない限り、Keryx 自身がこれらのデータのコピーを どこかへアップロードすることはありません。購読フィードへの通常の通信は別で、後述の 「アプリが行う通信」を参照してください。次に説明する、端末の OS が作成するバックアップは Keryx とは別のものです。
自動バックアップ(Android)
Android の OS 標準機能「バックアップ」(allowBackup)が Keryx で有効になっています。
このため keryx.db と local_settings.json は、Android の自動バックアップ
(ユーザー自身の Google アカウントへの保存)や、新しい端末への機種変更時のデータ
移行の対象になり得ます — これらは Keryx の開発者がアクセスできない経路です。
クラウド同期の認証情報(後述)はバックアップ・機種変更のいずれからも明示的に
除外されています。この設定は端末の Android バックアップ設定からいつでも
無効にできます(設定画面の場所は端末や Android のバージョンによって
異なります)。
端末のバックアップ(iOS / iPadOS)
iOS アプリのデータと同様に、Keryx のファイルは端末のバックアップ(ユーザー自身の iCloud アカウント、またはコンピューターへの保存)に含まれます — これらは Keryx の開発者が アクセスできない経路です。Keryx は自身のファイルをバックアップから除外していません。 クラウド同期のトークン(後述)はキーチェーンに保存され、iCloud キーチェーンでは共有されません。 暗号化された端末バックアップからは、新しい端末に復元されることがあります。
クラウド同期(任意・Dropbox / OneDrive / Google Drive)
クラウド同期は既定で無効です。Dropbox / OneDrive / Google Drive のいずれか一方 (同時に両方は接続しません)を接続した場合、実際に行われることは以下のとおりです。
- 対応状況: デスクトップでは3つとも利用できます。Android では Dropbox と OneDrive は常に利用可能です。Google Drive は、Google Play services が導入・有効・ 最新の状態である端末であれば利用できます(モバイルアプリに対する Google の OAuth ポリシー上、デスクトップ版と同じリダイレクト方式の認証フローは Android で再利用できないため、Android では代わりに Play services 自体の 認可 API 経由で Google Drive にアクセスします — 詳細は後述)。iOS / iPadOS / macOS では Dropbox と OneDrive は常に利用可能で、Google Drive には Apple アプリ向けの Google 自身の クライアント種別を使います(後述)。
- 認証は、Dropbox と OneDrive では OAuth 2.0(PKCE)を用い、端末と Dropbox / Microsoft
自身のサーバーとの間で直接行われます。ログイン時・トークンの更新時・同期通信
そのもの、いずれの段階でも Keryx が運営するサーバーを経由することはありません。
Android の Google Drive はこれとは異なり、Play services 自体の
AuthorizationClientを用います。こちらも端末と Google の間で直接行われ、有効期限の短いアクセス トークンを発行する方式で、Keryx が運営するサーバーもリフレッシュトークンの 保存も発生しません。デスクトップ版の Google Drive は Dropbox / OneDrive と 同じ、直接の OAuth 2.0(PKCE)フローを使用します。iOS / iPadOS / macOS(ネイティブアプリ)では、 3 つのプロバイダーとも同じ直接の PKCE フローを使用し——Google Drive はクライアントシークレット 不要の、Apple アプリ向けクライアント種別で——OS 標準の安全なサインインシート (ASWebAuthenticationSession)の中で行われるため、Keryx がパスワードを目にすることはありません。 - 同期されるもの: 購読フィード、フォルダー、タグ、キャッシュされた記事 (既読/スター状態を含む)、アプリ全体設定。
- 同期されないもの: デバイスローカル設定(
local_settings.json)、OAuth 認証情報、ローカル全文検索インデックス。これらは各デバイスにそれぞれ独立して 留まります。 - アップロードされるもの: 検索インデックスを除いたローカルデータベースの
スナップショットのコピーが、ユーザー自身の Dropbox / OneDrive / Google Drive 上の
ファイルとしてアップロードされます。Google Drive の場合、これは
drive.appdataスコープ(通常の Google Drive 画面には表示されず、他のアプリからも見えない、 アプリ専用の隠しフォルダー)に書き込まれます。Dropbox の場合は標準的なファイルコンテンツスコープを使用します。OneDrive の場合は Microsoft Graph のファイルストレージスコープを使用し、OneDrive 内のアプリ専用フォルダーに保存されます。 - 認証情報の保存: macOS と iOS / iPadOS では、アクセストークン・リフレッシュトークンはアプリ専用の
データ保護キーチェーンに保存され、ファイルに書き出されることはありません——キーチェーンに
保存できなかった場合はアプリが知らせ、再起動後にアカウントを接続し直すことになります。
Windows と Linux では、OS のセキュアストレージ(Windows: Credential Manager、Linux:
Secret Service。Snap 版では、デスクトップの Secret portal から得たアプリ専用の
マスターシークレットで暗号化されたローカルストア)に保存されます。OS のストレージが
利用できない場合は、ローカルファイルへフォールバックします——Linux では
このファイルのアクセス権限を自分のアカウントのみに明示的に制限します(
0600)が、 Windows ではそのような権限ビットは設定されず、代わりに%APPDATA%/%LOCALAPPDATA%に対する Windows 自体のユーザーごとの ACL 継承によって他のアカウントからのアクセス を防ぎます。Android では、Android Keystore が保持する鍵でトークンを暗号化した上でアプリ専用領域のファイルに 保存し、このファイルは Android の自動バックアップ・機種変更時のデータ移行の いずれからも明示的に除外されています。トークンが送信される先は、同期処理に 必要な範囲で Dropbox / Microsoft / Google 自身の API のみです。 - データがユーザーの Dropbox / OneDrive / Google Drive アカウントに置かれた後は、各 プロバイダー自身のプライバシーポリシー・利用規約の対象となります。Keryx は そこに書き込んだ同期ファイル以上のアクセス・関与を持ちません。
- 設定画面でクラウド同期を解除すると、以降の同期は即座に停止します。ただし、 すでに Dropbox / OneDrive / Google Drive 上にアップロード済みの同期ファイルが自動的に 削除されるわけではありません。削除したい場合は、各クラウドストレージ側で ユーザー自身が削除してください。
アプリが行う通信
Keryx が通信する相手は、使用している機能に直接関係するサーバーのみであり、常に 端末から直接行われます(開発者が運営するサーバーを経由することはありません)。
- 購読しているフィード — 新着記事の確認のため、定期的または手動更新時に各 フィードの URL を取得します。条件付きリクエストを使用するため、変更が無い フィードでは内容の転送は発生しません。iOS / iPadOS では、バックグラウンドでいつフィードを 更新するかは iOS が決めます(設定した間隔を目安に、システムが許す範囲で)。新着記事の通知は 端末自身が作成し、プッシュ通知サービスは使いません。
- 各フィード自身のサイト/favicon — フィード横に表示する小さなサイトアイコンの 取得のため。
- GitHub(リリース確認は認証なし・匿名の
api.github.com。実際にアップデートを ダウンロードする際はgithub.comおよび*.githubusercontent.com) — アップデートの有無を 通知し、インストールを選んだ場合はその取得のために使用します。アカウント情報・テレメトリ・ 識別子は一切送信しません。Android で Google Play からインストールされた場合、この確認は 行われません(自己更新チェックは GitHub 配布版にのみ意味があるためです)。iOS / iPadOS では Keryx が GitHub に通信することは一切なく、アップデートは App Store が届けます。macOS では代わりに、 最新リリースのアップデートフィード(appcast.xml、github.comから)を読みます——設定の「一般」で オフにしない限り自動的に、または「アップデートを確認…」を選んだときに——そして、インストールを 選んだ場合にのみ、そこに示されたアップデートをgithub.com/*.githubusercontent.comから ダウンロードします。 - Dropbox / OneDrive / Google Drive — クラウド同期を接続している場合のみ、 上記のとおりです。
- 記事自体が参照するコンテンツ — 記事を開くと、その本文の HTML が埋め込む外部 リソース(画像・動画・SNS 埋め込み・iframe)は、通常の Web ページと同様に、記事 リーダーがそれぞれの元のホストから直接読み込みます。Keryx はこれらの通信を フィルタリング・プロキシ・ブロックしません — 通信先は記事自体のコンテンツ次第 であり、Keryx が選んで取得しているものではありません。
上記で述べた、開いた記事自体のコンテンツが追加で参照しうる通信先を除けば、 通信先の種類はこれがすべてです——これらの通信にアナリティクスやトラッキング目的のデータが 含まれることは一切なく、このリストに無いサーバーへ通信することもありません。
データの保持・削除
- 設定画面でキャッシュ保持期間を指定している場合、その期間を超えた記事は自動的に 削除されます。ただし、スター付き記事とフィードごとの最新 10 件は、経過期間に 関わらず常に保持されます。
- ローカルデータをすべて消去するには: デスクトップでは、上記のアプリデータ
ディレクトリから
keryx.dbとlocal_settings.jsonを削除し、あわせて 「端末に保存されるデータ」で述べたキャッシュディレクトリ(favicon キャッシュと 記事リーダーの WebView データを保持)も削除するか、アプリ自体をアンインストール してください。Android では、これらのファイルはユーザーが直接触れられない アプリ専用領域にあるため、アプリのアンインストール、または Android の設定 → アプリ → Keryx → ストレージ → ストレージを消去、を使ってください(これにより アプリのキャッシュも消去されます)。iOS / iPadOS では、アプリを削除してください(コンテナと キャッシュも削除されます)。iOS はアプリを削除してもキーチェーンの項目を残すことがあるため、 先に設定画面でクラウド同期を解除してください。Keryx は保存済みのトークンの削除を試み、Dropbox と Google Drive ではトークンの失効も試みます。Keryx はそのどちらが成功したかを確認できません(たとえば期限切れの トークンは失効できません)。確実にするには、プロバイダーのアカウント側のアプリのアクセス許可からも Keryx の 許可を削除してください。OneDrive はアプリからトークンを失効させる手段を提供していないため、常に Microsoft アカウントのアプリのアクセス許可から削除する必要があります。 - クラウドストレージ側のデータ削除方法は、上記「クラウド同期(任意)」を参照して ください。
OPML インポート・エクスポート
購読リストを OPML ファイルとしてインポート・エクスポートする処理は、ユーザーが 指定したローカルファイルを読み書きするだけの処理であり、ネットワーク通信は 発生しません。
セキュリティ
- Keryx 自身の通信(クラウド同期・更新チェック・更新ダウンロード)は常に HTTPS を
使用します。購読するフィードの URL は、スキームを明示しない場合にのみ HTTPS に
補われます。明示的に
http://のフィード(またはそこへリダイレクトされる フィード)を購読した場合、他の RSS リーダーと同様、そのフィードは平文の HTTP で取得されます。 - クラウド認証情報は、上記のとおり可能な限り OS のセキュアストレージに保存します。
子どものプライバシーについて
Keryx は誰からも(子供を含め)個人データを収集しません。年齢確認は行っておらず、 必要ともしません。
このポリシーの変更について
このファイルはソースコードと同様にバージョン管理されています。変更履歴は https://github.com/shimataro/keryx/commits/HEAD/PRIVACY.ja.md で公開されています。
自分で検証する
Keryx は MIT ライセンスのオープンソースソフトウェアです。このドキュメントの記載は すべて、実際のソースコード(https://github.com/shimataro/keryx)と照らし合わせて 確認できます。
お問い合わせ
このポリシーに関するご質問は GitHub Issues までお願いします: https://github.com/shimataro/keryx/issues