OpenClawSkills
GitHub
プラットフォーム • 5 分で読む

macOS IPC

OpenClaw アプリ、ゲートウェイノード転送、および PeekabooBridge の macOS IPC アーキテクチャ

''現在のモデル:''ローカル Unix ソケットが''ノードホストサービス''を''macOS アプリ''に接続し、実行承認 + ''system.run'' を行います。''openclaw-mac'' デバッグ CLI が発見/接続チェックのために存在します。エージェント操作は引き続きゲートウェイ WebSocket と ''node.invoke'' を通じて流れます。UI 自動化は PeekabooBridge を使用します。

Tutorial.step

Goals

- すべての TCC 対向作業(通知、画面録画、マイク、音声、AppleScript)を所有する単一の GUI アプリインスタンス。

- 自動化の小さな表面:ゲートウェイ + ノードコマンド、および UI 自動化のための PeekabooBridge。

- 予測可能な権限:常に同じ署名付きバンドル ID、launchd によって起動されるため、TCC の付与は維持されます。

Tutorial.step

仕組み

#

Tutorial.step

ゲートウェイ + ノード転送

- アプリはゲートウェイ(ローカルモード)を実行し、ノードとして接続します。

- エージェント操作は ''node.invoke'' を介して実行されます(例:''system.run''、''system.notify''、''canvas.*'')。

#

Tutorial.step

ノードサービス + アプリ IPC

- ヘッドレスノードホストサービスがゲートウェイ WebSocket に接続します。

- ''system.run'' リクエストはローカル Unix ソケット経由で macOS アプリに転送されます。

- アプリは UI コンテキストで実行を行い、必要に応じてプロンプトを表示し、出力を返します。

Diagram (SCI):

Terminal
Agent -> Gateway -> Node Service (WS)
                      |  IPC (UDS + token + HMAC + TTL)
                      v
                  Mac App (UI + TCC + system.run)

#

Tutorial.step

PeekabooBridge (UI automation)

- UI 自動化は ''bridge.sock'' という名前の別の UNIX ソケットと PeekabooBridge JSON プロトコルを使用します。

- ホストの優先順序(クライアント側):Peekaboo.app → Claude.app → OpenClaw.app → ローカル実行。

- セキュリティ:ブリッジホストは許可された TeamID が必要です。DEBUG 専用の同じ UID のエスケープハッチは ''PEEKABOO_ALLOW_UNSIGNED_SOCKET_CLIENTS=1'' によって保護されています(Peekaboo 規約)。

- 詳細については、''PeekabooBridge の使用'' を参照してください。

Tutorial.step

運用フロー

- Restart/rebuild: ''SIGN_IDENTITY="Apple Development: <Developer Name> (<TEAMID>)" scripts/restart-mac.sh''

- 既存のインスタンスを終了

- Swift ビルド + パッケージ化

- LaunchAgent の書き込み/ブートストラップ/キックスタート

- 単一インスタンス:同じバンドル ID の別のインスタンスが実行されている場合、アプリは早期に終了します。

Tutorial.step

ハードニングの注意点

- すべての特権サーフェスで TeamID の一致を優先してください。

- PeekabooBridge:''PEEKABOO_ALLOW_UNSIGNED_SOCKET_CLIENTS=1''(DEBUG 専用)は、ローカル開発のために同じ UID の呼び出し元を許可する場合があります。

- すべての通信はローカルのみのままです。ネットワークソケットは公開されません。

- TCC プロンプトは GUI アプリバンドルからのみ発生します。再構築間で署名付きバンドル ID を安定させてください。

- IPC ハードニング:ソケットモード ''0600''、トークン、ピア UID チェック、HMAC チャレンジ/レスポンス、短い TTL。