コンテンツにスキップ
Zanei
日本語
Esc
移動開く⌘Jプレビュー
このページの内容

macOS 権限のセットアップ

Zanei が使う TCC 権限の一覧と、zanei doctor による診断・付与の流れ。

何を記録するか(設定の capture.sources)に応じて、Zanei は最大 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 で診断する

zanei doctor

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

zanei doctor --fix

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

agent・スクリプト向け:--json

zanei doctor --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 やスクリプトは出力を解析せずに権限の問題を判定できます(終了コード)。

手動で付与する場合

macOS がコマンドラインツールを一覧に登録するのは、そのツールが権限を要求した後です。まず recorder を起動します。

  1. zanei start を実行します(すでに動いている場合は zanei stop && zanei start)。これで recorder が macOS に権限を要求します。
  2. 該当するペインを開きます。zanei の行が一覧にあれば、トグルを ON にします。
  3. zanei の行が現れない場合のみ:+ をクリックし、ファイルダイアログで Command-Shift-G(⌘⇧G)を押して which zanei のパスを貼り付け、Return → Open、その行を ON にします。
権限 場所
アクセシビリティ Privacy & Security → Accessibility
入力監視 Privacy & Security → Input Monitoring
オートメーション Privacy & Security → Automation(初回の Apple Events 送信時にダイアログでも確認されます)

権限とコード署名

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

範囲

  • 権限の自動付与や TCC データベースの操作は行いません(macOS が許可していません)。Zanei が行うのは検出・誘導・診断です。
  • start 実行時に権限不足を検出した場合、記録は開始せず、終了コード 3 で不足内容を案内します。

このページは役に立ちましたか?