フィルタ
どのアプリ・サイトを記録するかを決める許可/不許可リスト。ストアに書き込まれる前に適用されます。
フィルタは、どのアプリ・サイトを記録するかを決めます。ストアに届く前に動くため、除外されたデータは書き込まれません。
capture-time と query-time
「アプリで絞る」には2種類あり、役割が異なります:
| capture-time フィルタ(このページ) | query-time フィルタ(--app 等) |
|
|---|---|---|
| 効く場所 | ストアの手前 — 該当イベントは破棄 | 読み出し時のみ |
| 目的 | 機微アプリをストアに入れない | 結果の絞り込み |
| 設定手段 | zanei filter コマンド / config.toml の [filter] |
各コマンドの --app --types 等 |
| MCP から | 変更不可(read-only) | query_events の引数として利用可 |
リストの管理
zanei filter show # 現在の全リストと有効モード
zanei filter exclude-app add com.1password.1password # 不許可リストに追加
zanei filter exclude-app remove com.1password.1password
zanei filter only-app add com.apple.Safari # 許可のみリストに追加
zanei filter exclude-site add example.com # browser.* の URL host で除外
zanei filter only-site add github.com
| サブコマンド | config.toml のキー |
意味 |
|---|---|---|
exclude-app |
exclude_apps |
不許可リスト — それ以外は捕捉 |
only-app |
include_only_apps |
許可リスト — 非空のとき列挙分のみ捕捉 |
exclude-site |
exclude_websites |
browser.* の URL host の不許可リスト |
only-site |
include_only_websites |
browser.* の URL host の許可リスト |
config.toml を直接編集しても同じです。CLI はキーの検証と重複排除を行います。デーモンは設定ファイルを約2秒間隔で監視しており、変更は数秒以内に反映されます(再起動不要)。
マッチング
- アプリ —
bundle_idで照合します(推奨。表示名は変わり得ます)。bundle_idを持つアプリはbundle_idだけで照合され、表示名のエントリはbundle_idを持たないイベントにのみ効きます。大文字小文字は区別しません。 - サイト — URL host のドット境界サフィックス一致:
example.comはapi.example.comにも一致しますが、evil-example.comには一致しません。Public Suffix List は扱わないため、comのような指定は全.comホストに一致します。完全なドメイン名を指定してください。サイトルールはbrowser.*イベントの URL host に効くため、ブラウザは記録しつつ特定サイトだけ落とせます。 - 優先順位 —
include_only_*が非空なら「そのリストにあり、かつexclude_*にない」ものだけ捕捉。空なら「exclude_*にない」ものすべてを捕捉します。 - アプリ単位の除外は全面的 — そのアプリ由来のすべてのイベント型(
ui.*・input.*・window.*・…)を落とします。
常時有効の除外
リスト設定に関係なく:
- プライベートブラウジング — Chrome incognito は URL 捕捉から常に除外されます(決定的に判定)。
- 組み込みの除外 — パスワードマネージャ・資格情報ストア(
1Password・Keychain Access等)は、include_only_appsでも解除できない固定の層で除外されます。config.tomlのexclude_appsに見える既定エントリとは別の層で、そちらを編集しても影響しません。filter showは組み込み分をユーザー設定と分けて表示します。
フィルタと MCP
capture-time フィルタは MCP から変更できません。MCP サーバは read-only です。フィルタの管理は CLI と config.toml のみです。MCP サーバ参照。