---
title: フィルタ
description: どのアプリ・サイトを記録するかを決める許可/不許可リスト。ストアに書き込まれる前に適用されます。
---

フィルタは、どのアプリ・サイトを記録するかを決めます。ストアに届く前に動くため、除外されたデータは書き込まれません。

## capture-time と query-time

「アプリで絞る」には2種類あり、役割が異なります：

| | capture-time フィルタ（このページ） | query-time フィルタ（`--app` 等） |
| --- | --- | --- |
| 効く場所 | ストアの手前 — 該当イベントは破棄 | 読み出し時のみ |
| 目的 | 機微アプリをストアに入れない | 結果の絞り込み |
| 設定手段 | `zanei filter` コマンド / `config.toml` の `[filter]` | 各コマンドの `--app` `--types` 等 |
| MCP から | 変更不可（read-only） | `query_events` の引数として利用可 |

## リストの管理

```bash
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秒間隔で監視しており、変更は数秒以内に反映されます（再起動不要）。

:::warning[許可リストモード]
`only-app` にエントリをひとつでも追加すると、アプリ捕捉は許可リストモードに切り替わり、列挙したアプリしか記録されなくなります。`zanei filter show` が現在のモードを表示します。
:::

## マッチング

- **アプリ** — `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 サーバ](/ja/reference/mcp)参照。
