---
title: macOS 権限のセットアップ
description: Tadoru が使う TCC 権限の一覧と、tadoru doctor による診断・付与の流れ。
---

Tadoru は画面収録を使いません。かわりに、何を記録するか（設定の `capture.sources`）に応じて最大 3 種類の macOS 権限（TCC）を使います。

## 必要な権限

| 権限 | System Settings 上の項目 | 何のために使うか | 関係するイベント型 |
| --- | --- | --- | --- |
| アクセシビリティ | Accessibility | ウィンドウタイトル・フォーカス・UI 要素の取得 | `window.*` `ui.*` |
| 入力監視 | Input Monitoring | キー・スクロール・クリックの検知 | `input.*` `ui.click` `clipboard.*` |
| オートメーション | Automation（対象アプリごと） | Chrome から現在の URL・タブ情報を取得 | `browser.navigate` |

2 つの重要な性質があります。

- **アプリの起動・終了・前面切替（`app.*`）は権限なしで記録できます。** 権限を一切付与しなくても、アプリ単位の行動履歴としては機能します。
- **権限が「必須」になるのは、それを必要とするソースを有効にしている場合だけです。** たとえば `capture.sources` から `input` を外した構成では、入力監視が未付与でも診断は `ok` になります。

## `doctor` で診断する

```bash
tadoru doctor
```

現在の設定に照らして必要な権限の付与状況を診断します。不足があれば、付与手順と該当する System Settings ペインを案内し、**終了コード 3** で終了します。

```bash
tadoru doctor --fix
```

`--fix` は不足している権限の設定ペインを直接開きます（付与の操作自体はユーザーが行います）。

### agent・スクリプト向け：`--json`

```bash
tadoru doctor --json
```

```json
{
  "ok": false,
  "capture_sources": ["app", "window", "ui", "input", "browser"],
  "permissions": {
    "accessibility":     { "status": "granted" },
    "input_monitoring":  { "status": "denied", "required_for": ["input.key", "input.scroll", "clipboard.copy", "clipboard.paste", "ui.click"] },
    "automation":        { "per_app": { "com.google.Chrome": "not_determined" } }
  },
  "missing_required": ["input_monitoring"],
  "settings_pane": "x-apple.systempreferences:com.apple.preference.security?Privacy_ListenEvent"
}
```

`status` の値は `granted` / `denied` / `not_determined` の 3 値です。権限不足は専用の終了コード **3** で通知されるため、agent やスクリプトは出力を解析しなくても「権限の問題である」ことを判定できます（[終了コード](/ja/reference/cli#終了コード)）。

## 手動で付与する場合

System Settings → **Privacy & Security** から `tadoru` を有効化します。

| 権限 | 場所 |
| --- | --- |
| アクセシビリティ | Privacy & Security → Accessibility |
| 入力監視 | Privacy & Security → Input Monitoring |
| オートメーション | Privacy & Security → Automation（初回の Apple Events 送信時にダイアログでも確認されます） |

## 権限とコード署名

macOS の権限は「実行バイナリの署名 ID」に紐づきます。リリースバイナリは署名・notarize されており署名 ID が安定しているため、**バイナリが入れ替わっても付与済みの権限は維持されます**。Homebrew での配布は準備中で、現在はソースからビルドしてインストールします（下の注意参照）。

:::warning[ソースからビルドした場合]
自前ビルドのバイナリは署名 ID が異なるため、ビルドし直すたびに権限の再付与が必要になることがあります。開発時はこの点を織り込んでください。
:::

## Tadoru がやらないこと

- 権限の自動付与・TCC データベースへの直接操作はしません（macOS の設計上も不可能です）。Tadoru が行うのは**検出・誘導・診断まで**です。
- `start` 実行時に権限不足を検出した場合、記録は開始せず終了コード 3 で不足内容を案内します。中途半端な状態で黙って動き続けることはありません。
