Xenon

プライバシーポリシー

Xenon アプリはあなた自身の PC 上で動き、データもそこに保存します。このウェブサイトはそれとは別のもので、ルールも別です。このページでは両者を分けて、それぞれが何を送り、何を保存するかを説明します。

最終更新日:2026年9月27日

概要

  • Xenon アプリは、あなたの使い方を追跡しません。アカウントもプロフィールもなく、利用の記録が PC の外に出ることもありません。カウンターは二つあります。一つはアプリが更新を確認するときに送られ、インストールそのものについて、バージョン、システム、インストールしてからのおおよその期間を伝えます。もう一つは、ストアから作品をインストールしたときに、その作品のインストール数に 1 を足します。どちらも、どのウィジェットを開くか、何を検索するか、ダッシュボードで何をするかについては何も伝えません。新しくインストールした場合、どちらも最初はオンです。どちらも 設定 → 一般 → アップデート でオフにできます。そのカウンターが追加されたバージョンより前から Xenon を使っていた場合、そのカウンターはオフのままになっています。どちらにも識別子が含まれないため、どちらもあなたにたどり着くことはできず、二つを結び付けることもできません。
  • アプリは完全なオフラインではありません。更新の確認と、短いお知らせ一覧の取得は自動で行います。天気、アルバムアート、あなたが接続したサービスに接続するのは、それを使う機能だけです。それらの通信は下に一覧にしています。
  • このウェブサイトは Google Analytics を使い、どのページやダウンロードに人がたどり着いているかを確認しています。EEA(欧州経済領域)、英国、スイスでは、バナーで同意するまで何も保存されません。
  • ページビューは Cloudflare Web Analytics でも数えています。こちらは Cookie を設定せず、プロフィールも作りません。分かるのは、あるページに何人が来たかだけです。
  • ダウンロードボタンを押すと、私自身のサーバーにあるカウンターに 1 が足されます。Cookie も識別子も使いません。ダウンロードのリンクはこれまでどおり GitHub を直接指しているので、このカウンターがあなたとファイルの間に入ることはありません。

データ管理者と連絡先

Xenon は開発者 Marcello Mastroeni が一人で作っている個人プロジェクトで、ソースは独自の非商用ライセンスのもとで GitHub にあります。このウェブサイトのデータ管理者は私です。質問、訂正、ご自身のデータに関する請求など、このページに関することは marcellomastroeni4@gmail.com にメールで連絡するか、GitHub で issue を開いてください。

このウェブサイト(xenon-app.com)

このサイトは Google Analytics 4(測定 ID G-LQ8Y8WZPQF)を使って、どのページが読まれ、どのダウンロードがクリックされ、訪問者がどこから来ているかを把握しています。これはサイトについての集計レポートです。あなたの手元のアプリとはつながっておらず、ここでの訪問を PC 上のインストールと結び付ける方法は私にはありません。

Analytics が受け取るもの

Cloudflare Web Analytics

Analytics と並んで、このサイトは Cloudflare Web Analytics を読み込みます。Cookie を使わないページビューのカウンターです。Cookie を設定せず、識別子も保存せず、サイトをまたいで、あるいは訪問をまたいであなたを追うこともできません。報告するのはページの URL、参照元、国、デバイスの種類、ページの読み込み時間で、いずれも集計です。誰も特定しないため同意バナーなしで動作しますが、あることを知っていただけるようここに記載しています。両方を使う理由は、Analytics がバナーで同意した訪問者しか数えないからです。こちらが全体の合計で、Analytics の数字はこれと照らし合わせて読みます。

ダウンロードカウンター

このサイトでダウンロードボタンを押すと、ページは私自身のサーバー(アプリが通信するのと同じサポーターハブ)にも 1 行のメモを送ります。内容は、ダウンロードボタンが押されたことと、それがどのボタンか(hero、footer など)です。メッセージはそれだけです。Cookie も識別子もなく、IP も保存せず、ほかの何かと結び付けられるものも含みません。(日付、ボタン)ごとのカウンターに 1 を足し、リクエストは破棄されます。

これがあるのは、その一歩だけが私には見えなかったからです。Cloudflare はページが表示されたことを知り、GitHub はダウンロードが完了したことを知っていますが、その間でボタンが押されたことはどちらにも見えません。そしてそれこそが、ダウンロードページが実際に機能しているかを示す唯一のものです。Google Analytics なら報告できますが、数えるのはバナーで同意した人だけで、このサイトを訪れる人のかなりの割合は Analytics 自体を完全にブロックしています。そのため数字は、私には測れない方向にずれてしまいます。

ダウンロードのリンク自体は私のサーバーを通りません。これまでどおり GitHub を直接指しています。カウンターはそれとは別の、送りっぱなしのメモで、ページはその完了を待ちません。私のサーバーが止まっていても、あなたがそれをブロックしていても、ダウンロードは普通に動き、ボタンを押したことが数えられないだけです。

Cookie の同意

このサイトは Google Consent Mode を使っています。EEA、英国、スイスにいる場合、保存と広告に関するすべての信号は最初は denied(拒否) です。「同意する」を押すまで Cookie は書き込まれず、Analytics が受け取るのは Cookie を使わず個人を特定しない ping だけです。それ以外の地域では初期値が granted(許可)で、「拒否する」を押すとオフになります。拒否は、同意と同じ場所にある同じ大きさのボタンで、1 回クリックするだけです。

考えはいつでも変えられます。このボタンを押すと、保存された選択が消えて、バナーがもう一度表示されます。

あなたの選択は、ブラウザのローカルストレージに xenon.site.consent という名前で保存されます。この値があなたのデバイスの外に出ることはありません。ブラウザのデータを消去するとリセットされます。

ホスティングとフォント

このサイトは GitHub Pages から配信されています。GitHub Pages はページを届けるためにリクエストとあなたの IP アドレスを処理し、短期間だけセキュリティログを保持します。これは技術的に必要なもので、同意の選択より前に行われます。ページのヘッダーは、プロジェクトのスター数を GitHub API にブラウザのセッションごとに 1 回問い合わせるので、そのリクエストも GitHub に届きます。サイトのフォントはサイト自体(/fonts/)から配信されるので、読み込んでもほかの誰にも接続しません。唯一の例外は ライブデモ です。ライブデモはアプリ自身のダッシュボードページを動かしていて、そのページのフォントを Google Fonts から読み込むため、Google Fonts にもリクエストが届きます。コミュニティのスクリーンショットは Cloudflare R2(assets.xenon-app.com)から配信されます。

Xenon アプリ

アプリはあなたのデータを PC に保存します。設定、メモ、タスク、予定、デッキ、AI のメモリ、アップロードした背景は、すべて server/data/ にあります。アプリがこのフォルダーをどこかにアップロードすることはなく、分析 SDK もクラッシュレポーターも行動追跡も入っていません。アプリが自分自身について送る報告は、下で説明する二つの匿名カウンターだけで、どちらもいかなる種類の識別子も含みません。サーバーに残るのはカウンターだけで、個々のマシンについての行は決して残りません。

ローカルのファイル検索とディスク容量ウィジェットは PC 上で動きます。検索した語句、ファイル名、フォルダーの索引、ディスクスキャンの結果はそこで計算されます。検索から開いたファイルの一覧(あなた自身の検索結果の順位を良くするために使います)も、ほかのものと同じく server/data/ にあります。例外は、あなたが Xenon AI に渡すものです。クラウドの AI プロバイダーを使っている場合、スマート検索(Ctrl+I)は入力した語句をそのプロバイダーに送ります。また、AI にファイルを探させたりディスクの内訳を説明させたりすると、AI が答えの元にする結果(ファイル名やフォルダーのサイズなど)がプロバイダーに送られます。AI検索とクリーンアップのフルコンテキスト スイッチ(初期設定はオフ)をオンにすると、インストール済みのアプリ、索引の対象フォルダー、よく使うフォルダー、検索から最近開いたファイルの名前も送られます。その中身は決して送られません。

アプリが実際に行うのは、ネットワークが必要な機能のための通信です。以下がその一覧と、それぞれが行われるタイミングです。

接続先タイミング目的と送る内容
api.github.com 自動、起動時(24 時間キャッシュ) 新しいリリースがあるかを確認します。識別子は送りませんが、ほかの HTTP リクエストと同じく、GitHub にはあなたの IP アドレスが見えます。何かをオンにしなくても実行されます。
xenon-app.com コミュニティのカタログかストアを開いたとき コミュニティのテーマ、ウィジェット、パックの公開カタログをダウンロードします。読み取り専用で、識別子はありません。
xenon-app.com
(お知らせ)
自動、1 日に最大 1 回 全員に同じ、短いお知らせの一覧をダウンロードします。新しいリリース、ストアの新着、ときどきのお知らせなどです。読み取り専用で、識別子はありません。特定のウィジェットやバージョンを使っている人など、一部の人に向けたお知らせもありますが、その絞り込みはあなたの PC 上で行われます。ダッシュボードは一覧全体をダウンロードし、どれが当てはまるかを自分で判断します。何を表示するかを決めるために、あなたが何をインストールしているかが送られることは一切ありません。そのため私は、あなたを狙って表示することも、誰が何を見たかを知ることもできません。お知らせは、どのお知らせからでもオフにできます。
サポーターハブ
(アンケートの回答)
お知らせに表示されたアンケートで回答をタップした場合のみ 送るのは選んだ選択肢だけで、ほかには何もありません。インストール UUID も、アカウントも、時刻さえも含まず、IP も保存しません。サーバーはその選択肢のカウンターに 1 を足してリクエストを破棄するので、私を含め誰も、特定の PC が何と答えたかを調べられません。何もタップしなければ何も送られず、お知らせをオフにすればこの送信は完全に止まります。
サポーターハブ
(インストール数)
ストアから何かをインストールしたときで、そのスイッチがオンの場合のみ インストールした作品の id を送り、ほかには何も送りません。インストール UUID もアカウントも含まず、IP も保存しません。サーバーはその作品のカウンターに 1 を足してリクエストを破棄します。どの作品をすでに数えたかはダッシュボードがあなた自身の PC に記録しているので、同じ作品を報告するのは最大 1 回です。だから二重に数えないために、個人を特定できるものを送る必要がありません。その結果、この数字の意味は「報告されたインストール数」であり、「持っている人の数」ではありません。表示される場所ではどこでも、そのように表記しています。
サポーターハブ
(Cloudflare Worker)
カタログの作品を評価したとき、サポーターコードを引き換えたとき、または解除済みのものを更新したとき あなたの PC はランダムな UUID(install-id.json)を保持しています。評価が 1 回だけ数えられ、コードを際限なく使い回せないようにするためです。この UUID があなたのマシンの外に出ることはありません。送られるのはそれを一方向ハッシュにした値で、評価とコードの引き換えでは、同じ UUID から作った別々のハッシュを使います。これは意図的です。共通の値が一つだけだと、サポーターコード(Discord のアカウントと結び付けられることがあります)と星の評価が、データベースの中で同じ識別子の下に並び、名前の分かるサポーターがどの作品を評価したかを私が見られてしまいます。二つに分けておけば、突き合わせる手がかりがありません。どちらのハッシュもあなたのハードウェアや名前とは結び付いていません。ファイルを削除すれば、新しい UUID が作られます。解除済みのものを更新するときも、同じハッシュと作品の ID、お使いのバージョンだけを送り、コードは送りません。ハブは、すでに所有者として把握している PC にしか応答しません。
ipwho.is 天気の現在地の自動検出がオンの場合のみ 天気ウィジェットが場所を知るために、あなたの IP をおおよその都市に変換します。場所を手動で設定すれば、この通信は一切行われません。
天気と大気質の API
open-meteo, met.no, wttr.in
ダッシュボードに天気ウィジェットがある場合のみ 予報の対象になる座標を送ります。識別子はありません。
itunes.apple.com メディアの再生中 曲名からアルバムアートを検索します。識別子はありません。
自分で接続したサービス
Spotify、Twitch、YouTube、Discord、Home Assistant、OBS、AI プロバイダー、株価・ニュース・サッカーのフィード
その連携を設定したあとだけ それぞれが、あなたの入力した認証情報を使い、そのプロバイダーのプライバシーポリシーのもとで、そのプロバイダーと通信します。設定するまでは何もしません。
スマートフォンのプッシュサービス
スマートフォンのブラウザによって Apple、Google、Mozilla のいずれか
ペアリングしたスマートフォンやタブレットで通知をオンにしたあとだけ 自分で設定して待っていること、たとえばカウントダウンの終了を、Xenon を閉じているスマートフォンにも PC から知らせられるようにします。メッセージはそのスマートフォンのブラウザ宛てにエンドツーエンドで暗号化されるので、プッシュサービスは中身を読めないまま運びます。ただし、そのスマートフォンにメッセージが届いたことと、その時刻はプッシュサービスに見えます。スマートフォンでボタンを押すまでは何も設定されず、ペアリングした端末を削除すれば止まります。
匿名のバージョン ping
サポーターハブ
v4.8.0 以降のインストールでは初期設定でオン。それより前のインストールでは、自分でオンにしない限りオフ バージョン、システム、インストールしてからの期間、その週で最初かどうかのフラグを、1 日に最大 1 回、上の行と同じサポーターハブに送ります。識別子は一切含みません。完全な一覧は下のセクションにあります。

ローカルの AI 機能(Ollama、Whisper)は、すべてあなたのマシンの中で動きます。クラウドの AI プロバイダーは違います。Gemini、OpenAI、Anthropic を選ぶと、プロンプトはそのプロバイダーの規約のもとでそのプロバイダーに送られます。音声での返答は仕組みが異なります。独自の音声を持つ Gemini と OpenAI 以外のプロバイダーでは、読み上げるテキストが音声に変換されるため、Microsoft のオンラインの Edge 音声サービスに送られます。どの AI プロバイダーを使うかはあなたが選び、アプリがあなたの選んでいないクラウドのモデルにプロンプトを送ることは決してありません。

バージョン ping

実際に何人が Xenon を使っているのか、私にはまったく分かりません。ダウンロード数はノイズですし、推測するより、古いリリースで止まっている人がいるかどうかを知りたいと考えています。そこで 設定 → 一般 → アップデート に このインストールを匿名で集計 というスイッチがあり、アプリが更新を確認するとき、1 日に最大 1 回、いくつかの項目を送ります。完全な一覧は次のとおりです。

送られるのはこれで全部です。含まれないものは次のとおりです。インストール UUID は含みません(この識別子は評価とサポーターコード専用にしてあり、ここに混ぜると両者を突き合わせられるようになります。それこそ、私ができないようにしておきたいことです)。IP は保存せず、ハードウェアの詳細、タイムゾーン、使っているウィジェット、検索する内容、開くものについての情報も含みません。ping はサポーターハブへの小さなリクエスト一つで、アプリがすでに行っている更新確認の直後に送られます。

週ごと・月ごとの集計

人を識別せずには得られなかった唯一の数字が、「今週アクティブだった異なるインストールはいくつか」です。普通はこれに id が必要です。同じ PC からの ping 二つと、二台の PC からの ping 二つを、サーバーが区別するためです。ここではその役目をあなたの PC 自身が担います。最後に報告した週と月をあなたのディスクに記録しておき、「今週は初めて」と 1 回だけ伝えるのです。サーバーは 1 を足すだけで、それ以外は何も知りません。週ごと・月ごとの集計は正確になり、それでもあなたを特定できるものは何もありません。

集計の保存方法

サーバー側にあるのはカウンターだけで、マシンについての行はありません。さらに、上の項目は項目ごとに別々のテーブルで数えられ、一つの行にまとめられることはありません。ここが重要な点です。バージョンとシステムと経過期間と初回起動月と言語を一つにまとめた行は、たった一人の人を簡単に言い当ててしまいかねません。しかもその大半は日によって変わらないので、連続した日を一台のマシンの履歴としてつなげられてしまいます。わざわざ識別子を送らないようにしたのに、データから識別子が組み上がってしまうのです。項目ごとに別々に数えれば、その組み合わせはデータベースにそもそも存在しません。隠されているのでも、アクセスを制限されているのでもなく、存在しないのです。私が読めるのは「今日 4.11.0 を使っていたインストールが N 件」「7 月に初めて起動したものが N 件」「90 日より古いものが N 件」といった数字で、それがどの N 件なのか、どこが重なっているのかは決して分かりません。

二か所だけ、二つの値を並べて保存しています。そこでは組み合わせそのものが知りたいことだからです。あるバージョンから別のバージョンへ移ったインストールがいくつあるかと、ある月に初めて起動したインストールのうち、後の月にもまだアクティブなものがいくつあるかです。どちらもそれ以外には何も持たず、5 回未満しか現れない組み合わせは「その他」にまとめられます。私だけが見られる管理画面でも同じです。

すべてのデータは 400 日後に削除されます。リクエストごとの行は保存しないので、引き渡したり、提出を命じられたり、漏洩したりしうるデータセットは存在しません。

v4.11.0 での変更

スイッチの状態そのものは、誰に対しても変わっていません。オフだった人はオフのまま、オンだった人はオンのままです。変わったのはオンのときの ping に含まれる内容で、このページが同じリリースで更新されたのはそのためです。

一つ制約があります。このリリースより前からあるインストールは、経過期間と初回起動月を unknown として報告し、今後もずっとそのままです。アプリはそれらが最初に起動した日時を記録していなかったからです。推測した数字よりも、目に見える空白を残すほうを選びました。この見えない部分は独立した区分として数えて表示しているので、全体のうちどれだけが欠けているかを私は常に確認できます。

v4.8.0 での変更

v4.7.1 までは、このスイッチは自分でオンにするまでオフでした。v4.8.0 からは、新規インストールでは初期設定でオンになっています。このようなスイッチをオンにする人はほとんどおらず、そのため数字が役に立たなかったからです。設定からいつでもオフにでき、オフにするとすぐに反映されます。

すでに Xenon をインストールしていた場合、あなたには何も変わっていません。新しい初期設定が読まれるのは、設定ファイルがまだないとき、つまり新規インストールのときだけです。v4.8.0 より前にインストールしてスイッチに触れていなければ、オフのままです。あなたは、自分で選ばない限りオフだと伝えられていました。アップデートは、それを黙って変える場ではありません。オンにしていた場合は、オンのままです。いずれにしても、アプリは設定にすでに書かれている内容をそのまま保ちます。

あなたの権利

GDPR のもとで、あなたは自分の個人データへのアクセス、訂正、消去を求めることができ、処理に異議を申し立てることもできます。このウェブサイトについての実際の方法は、「拒否する」(または上のボタン)を押して Analytics を止める、Google の オプトアウト アドオン を使う、ブラウザのデータを消去する、のいずれかです。アプリについては、アンインストールすると上で説明したすべての通信が止まり、server/data/ を削除すると、インストール UUID を含め、アプリが保存したものがすべて消えます。

また、監督機関に苦情を申し立てる権利もあります。イタリアでは Garante per la protezione dei dati personali(個人データ保護機関)がそれにあたります。

このページの変更

上の表にない通信をアプリが始める場合は、同じリリースで表を更新し、リリースノートにもそう書きます。このページが最後に変更された日は、上部の日付で分かります。