---
title: プライバシーモデル
description: 何が記録され、何が記録されないのか。Tadoru の「既定値のままで安全」を支える多層防御。
---

Tadoru が扱うのは、マシン上で最も機微なデータのひとつ ——「あなたが一日中何をしていたか」です。だからこそ設計原則は「注意すれば安全に使える」ではなく「**既定値のままで安全**」です。

## 5 つの保証

1. **外部送信なし。** データをどこかへ送る機能そのものがバイナリに存在しません。「無効化されている」のではなく「存在しない」。すべてはローカルの SQLite ファイルに留まります。
2. **画面録画なし。** スクリーンショットも画面収録 API も使いません。読むのは OS のアクセシビリティ／イベントのメタデータだけです。
3. **キー入力の内容は既定で記録しない。** 記録されるのは「この種類のフィールドで入力があった」という事実まで。*何を*打ったかは、明示的に opt-in しない限り記録されません。
4. **capture-time フィルタ。** 除外したアプリ・サイトのイベントは、ストアに**書き込まれる前に**破棄されます。書かれていないものは、後から漏れようがありません。
5. **読み出しは read-only。** [MCP サーバ](/ja/reference/mcp)は読み取り専用のビューです。agent はタイムラインを読めますが、記録対象を変えたりフィルタを弱めたりは決してできません。

## 既定構成で記録されるもの・されないもの

| 記録される | 記録されない |
| --- | --- |
| どのアプリが前面か、いつ切り替わったか | スクリーンショット・画面録画（一切） |
| ウィンドウタイトルとフォーカスの変化 | キー入力の内容（事実とフィールド種別のみ） |
| UI 操作（クリック・フォーカス移動）の要素メタデータ | パスワード欄（`AXSecureTextField`）の値 — 捕捉段階で除外 |
| 入力・スクロール・クリップボード操作の事実 | Chrome シークレットウィンドウの URL・タブ情報 — 決定的に判定し常に除外 |
| Chrome の URL とタブタイトル（通常ウィンドウのみ） | 除外アプリ（既定でパスワードマネージャ等）由来のすべて |

## 内容の記録は opt-in

[設定](/ja/reference/config)で `capture.text_content = true` にすると、IME を経ない直接の打鍵（`input.key`）、新たに増えた入力差分（`ui.value.data.text`）、クリップボードの中身の記録が有効になります。自由入力フィールドで捕捉するのは打鍵またはペーストの直後に増えた差分だけであり、表示されている文書やフィールドの全体値ではありません。`element.value` は null のままです。既定はオフで、Tadoru から有効化を促すことはありません。有効にした場合でも：

- パスワード欄は変わらず除外されます（secure field は捕捉段階で破棄）。
- IME 有効時の `input.key.text` は null です。確定文字列は、入力をトリガーとした `ui.value.data.text` の差分としてのみ捕捉される場合があります。
- 音声入力は打鍵トリガーを伴わないため、そのテキストは記録されません。
- [redactor](#redactor-による二次防御) が捕捉値から検出可能な機密（メール・カード番号・トークン）をスクラブします。

:::danger
`text_content` を有効にすると、入力内容が保持期間のあいだローカルストアに残ります。有効化するなら、積極的な[フィルタ](/ja/guides/filters)設定と短い `retention_hours` を併用してください。
:::

## 自動除外（設定不要）

- **パスワード欄** — macOS が secure text field と見なすものは捕捉段階で破棄されます。
- **Chrome シークレットウィンドウ** — Chromium は AppleScript でウィンドウのモードを決定的に返すため、incognito は常に除外されます。曖昧さがないので設定ノブもありません。
- **組み込みの除外アプリ** — パスワードマネージャ・資格情報ストア（`1Password`・`Keychain Access` 等）はハードコードされた層で常に除外され、`include_only_apps` でも解除できません。`config.toml` の `exclude_apps` に見える編集可能な既定値とは別レイヤーです。

## redactor による二次防御

捕捉対象の値についても、プラガブルな redactor が検出可能な機密情報 — メールアドレス・クレジットカード番号・トークン（`redactors = ["email", "credit_card", "token"]`）— をスクラブします。各イベントには `redaction` フィールドがあり、どのルールが適用されたかを下流でも判別できます。

## 正直に：残る限界

カバーしていないことを書かないプライバシー設計は不完全です。

- **Chrome 以外のブラウザのウィンドウタイトル。** Safari や Firefox はプライベートウィンドウを確実に判定する手段がないため、URL 捕捉自体を行いません — しかし**ウィンドウタイトル**は他のアプリ同様に記録されるため、プライベートウィンドウのページタイトルがタイトルとして残り得ます。完全に避けたい場合はブラウザ自体を除外してください：`tadoru filter exclude-app`。
- **Chrome incognito のウィンドウタイトル。** incognito 判定は URL 捕捉側にしかないため、incognito ウィンドウが `browser.navigate` イベントを生むことはありません — しかし**ウィンドウタイトル**は他のアプリ同様、アクセシビリティ経由の `window.title` として記録され得ます。完全に避けたい場合はブラウザ自体を除外してください：`tadoru filter exclude-app`。
- **agent がデータを読んだ後のこと。** MCP サーバも CLI も外部送信はしませんが、タイムラインを読んだ agent は通常それを LLM プロバイダに送ります。そのホップは agent の管轄であり、Tadoru の管轄外です。同梱の skill ファイルには「送信前に対象範囲を絞る」よう明記しています。

## 同意と想定用途

Tadoru は**自分のマシン上の・自分の・認知している操作**を記録するツールです。他者の監視のためには作られておらず、そうした利用は地域によっては違法です。会社管理のデバイスで使う場合は、所属組織のポリシーに従ってください。
