---
title: フィルタ
description: ストアに書き込まれる前にイベントを破棄する許可/不許可リスト — Tadoru のプライバシー境界。
---

フィルタは、どのアプリ・サイトを**そもそも記録するか**を決めます。Privacy Filter 段、つまりストアの手前で動くため、除外されたデータは一度も書き込まれず、後から消す必要も漏れる余地もありません。Tadoru の信頼の要です。

## 「アプリで絞る」には 2 種類ある — 混同しないこと

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

## リストの管理

```bash
tadoru filter show                                      # 現在の全リストと有効モード
tadoru filter exclude-app add com.1password.1password   # 不許可リストに追加
tadoru filter exclude-app remove com.1password.1password
tadoru filter only-app add com.apple.Safari             # 許可のみリストに追加
tadoru filter exclude-site add example.com              # browser.* の URL host で除外
tadoru 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` にエントリをひとつでも追加すると、アプリ捕捉は許可リストモードに切り替わり、列挙したアプリしか記録されなくなります。`tadoru 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、決定的判定）。
- **組み込みの除外は常時適用** — パスワードマネージャ・資格情報ストア（`1Password`・`Keychain Access` 等）はハードコードされた層で常に除外され、`include_only_apps` でも解除できません。`config.toml` の `exclude_apps` に見える既定エントリの編集とは別レイヤーで、そちらを変えても影響しません。`filter show` は組み込み分をユーザー設定とは別枠で表示します。

## フィルタと MCP

capture-time フィルタは **MCP から変更できません** — MCP サーバは設計上 read-only ビューです。agent が誤ってであれ、プライバシー境界を弱めることはできません。フィルタの管理は CLI と `config.toml` のみです。[MCP サーバ](/ja/reference/mcp)参照。
