概要(スニペット向け):本稿は Docker コンテナより前に現れるネイティブ macOS の事実だけを扱います。公式パッケージアプリまたは openclaw CLI を前提に、OPENCLAW_STATE_DIR を iCloud 同期下のフォルダから外すこと、透明性・同意・プライバシー(TCC)でアクセシビリティ・自動化(AppleEvents)・画面収録などを明示的に許可すること、そしてLaunchAgent 管理と手動の openclaw gateway start が衝突して二重リスナーになる問題を避けることに焦点を当てます。openclaw doctor と openclaw gateway status で検証し、ローカル権威 Gateway とリモート権威 Gateway のオペレーション差を説明できる状態を目標とします。三 OS インストール概要および Docker 本番 Gateway Runbook と冗長にならないよう役割分担します。
openclaw とバンドルアプリのヘルパーは別主体で、パスが変われば再許可が必要になります。クロスプラットフォーム設計は インストール & デプロイガイド と インストール後 doctor/WSL2 近傍トラブルシュート が基準になります。Compose 側は Docker 本番 Runbook を優先してください。地域とリース試算は マルチリージョン Mac mini 契約ガイド と併読します。
OPENCLAW_STATE_DIR:ローカル APFS に固定します/usr/local/var/openclaw や /opt/openclaw/state など、管理者が所有するローカルボリュームを推奨します。Mobile Documents 配下やクラウド同期クライアントの仮想フォルダは避けてください。複数ユーザーで同一ディレクトリを共有する設計も、ロックとローテーションで壊れやすいので禁止か明示的クラスタのみにしてください。
各行にオーナーを一人割り当て、ロールバック手順を一文に収めます。
| 兆候 | ありがちな根 | 安定化アクション |
|---|---|---|
| ペアリングが再起動だけで復帰する | 同期ボリュームまたは二親プロセス | ディスクをローカルに移し、スケジューラは一種類のみ |
| UI 自動化スタック | TCC の自動化/アクセシビリティ欠落 | システム設定から該当バイナリを再承認 |
| キャプチャが返らない | 画面収録未許可 | 許可後に親プロセスを再起動 |
| アドレスイン-use | LaunchAgent と手動起動の競合 | テスト plist を bootout、または対話のみモードへ統一 |
| 夜間のみ失敗 | スリープと省電力ネットワーク | 権威ホストを常時オン遠隔 Mac に移す |
二重スケジューラ禁止が安全です:本番が launchd なら手動 gateway は短命のデバッグ専用とし、bootout 手順を Runbook に併記します。
アクセシビリティ、アクセス権の自動化(AppleEvents)、画面収録が主戦場です。音声入力スキルを使うならマイクも別途許可してください。メジャー OS/パッケージ更新のたびに 10 分の再確認ラインを運用カレンダーへ入れます。
gateway start無人運用ホストには LaunchAgent が向きます。開発者ワークステーションだけを対象にするなら対話のみの方がログが読みやすいです。launchctl print gui/$uid/<label> で実体を確認し、幽霊プロセスと戦わないようにします。
ローカルは反復が速い一方、スリープと VPN と会議 Wi-Fi に弱くなります。リモートは固定電源と固定 egress に権威状態を載せられるため、地域別レンタルとの相性が良いです。OPENCLAW_STATE_DIR の実ディスク所有者をサービスカタログに書き込みます。
doctor/gateway status を変更票に貼ってから本番配線へ進みます。Compose と責務が重なるときは必ず記事単位で分割し、doctor フィールドだけを並べないでください。
#!/usr/bin/env bash
set -euo pipefail
export OPENCLAW_STATE_DIR="${OPENCLAW_STATE_DIR:-$HOME/Library/Application Support/OpenClawState-local}"
umask 077
mkdir -p "$OPENCLAW_STATE_DIR"
echo "OPENCLAW_STATE_DIR=$OPENCLAW_STATE_DIR"
command -v openclaw >/dev/null && openclaw doctor || echo "doctor: PATH に CLI なし"
openclaw gateway status 2>/dev/null || echo "gateway: 応答なし(停止中ならよい)"
launchctl print "gui/$(id -u)" 2>/dev/null | grep -i openclaw || echo "launchd: openclaw ラベル未検出"
gateway status までの秒数。df で状態ディレクトリがローカル APFS と証明できること。ノートは人間優先設計であり、権威自動化とは相性が悪いことが多いです。シンガポール/東京/ソウル/香港/米国沿岸に常時オン Mac mini を置くと LaunchAgent と TCC が安定します。契約ガイド で RTT を踏まえた配置を確認してください。
TCC とパス問題はネイティブ Runbook に、コンテナ_DIGEST とブリッジは Compose Runbook に分けます。変更の締めに openclaw doctor を再走し、ログを semver と一緒に保管します。