2026年 OpenClaw ブラウザ自動化(Playwright)を独占リモート Mac のヘッドレスで:skill-browser 導入、ヘッドレス引数とよくあるエラーの再現チェックリスト+FAQ
ディスプレイなしの専有リモート Mac でブラウザ系スキルを動かすと、だいたい次の三層で同時に壊れます:OpenClaw 側のスキル導入面、Playwright が別途引くブラウザバイナリ、そしてヘッドレス macOS プロセスと SSH/launchd との環境の分断です。本稿では貼り付け可能な導入順、ヘッドレスのベースライン、症状→一手の表を整理します。ヘッドレス運用や証明書まわりの隣接トピックは 2026年版 リモート Mac ヘッドレス公証パイプライン:notarytool の App Store Connect API とキーチェーン Profile の比較+stapler と notarytool log の SSH トラブルシュート意思決定表と FAQ、リモート Mac 全般の入口として 2026年版|初めてのリモートMacでiOSアプリをビルドする際の初心者向け完全ガイド も参照してください。
1. ヘッドレスは「ブラウザが要らない」わけではない
Playwright の headless はウィンドウを出さないという意味であり、実行可能な Chromium/WebKit/Firefox と、書き込み可能なキャッシュ領域がマシン上にまだ必要です。専有ノードでも同一ユーザー配下で複数の自動化が走ると、ロックファイル・一時ディレクトリ・ダウンロードキャッシュで衝突しがちです。ブラウザ自動化と汎用 CI・対話シェルは、可能なら別 macOS ユーザー、少なくとも別 HOME 接頭辞に分けてください。
2. 推奨インストール順:skill-browser と Playwright ランタイム
再現性を最大化するには、言語ランタイムとパッケージマネージャを先に揃え、スキルを入れ、ブラウザバイナリを取得し、最後にスモークテストします。ピン留めした OpenClaw バージョンごとにサブコマンドは異なりますが、この順序だけは崩さないでください。
- アカウントの一致: ゲートウェイ/ワーカーが動くユーザーと、SSH メンテ用アカウントが同じか確認。違う場合は双方で
node -vとnpm -vを確認し、「対話 SSH ではあるが launchd では無い」状態を避けます。 - スキルの導入: OpenClaw が想定する経路(または組織レジストリのエイリアス)で
skill-browserを入れ、出力に出たバージョンとチェックサムをログに残します。 - Playwright ブラウザ: 同一ユーザー・同一
HOMEの下で取得(多くはnpx playwright install chromiumまたはプロジェクト指定のサブセット)。取得後、about:blankを開く最小スクリプトでスモークします。 - 権限とネットワーク: クライアント証明書・Keychain・プロキシが要るサイトなら、launchd 側の環境でも TLS/プロキシ変数(
HTTPS_PROXY等)を検証します。対話シェルだけでなくサービス環境で揃っているかがポイントです。
3. macOS におけるヘッドレスモードと主要パラメータ
運用者が設定や環境変数に載せることが多いベースラインです(名前は Playwright やスキルラッパーで異なるため、意味で揃えてください)。
| 項目 | 推奨 |
|---|---|
| ヘッドレス切替 | Playwright の headless: true(またはスキル側の同等設定)。レンダリング調査だけ一時的に headed にし、可能なら仮想ディスプレイ前提で閉じた環境にします。 |
| Chromium 引数 | --no-sandbox、--disable-dev-shm-usage、--disable-gpu などは必要なときだけ。Apple Silicon の macOS では実測で検証し、Linux コンテナ向けのフラグ束をそのまま貼らないでください。 |
| ダウンロード先 | ジョブごとに固定パスを決め、スケジュールで掃除。デフォルトのままだとマルチテナント/長期運用でディスクを圧迫します。 |
| 並列と隔離 | 専有 1 台でもブラウザコンテキストの並列数に上限を付け、CPU/RAM 監視と紐付けます。OOM はしばしば「謎のタイムアウト」として現れます。 |
4. 再現可能なエラー切り分け表
SSH 越しの当番がそのまま辿れるよう、症状 → 疑い → 確認/緩和 で記載しています。
| 症状/ログ断片 | 疑わしい原因 | 確認と緩和 |
|---|---|---|
Executable doesn't exist/ブラウザ未検出 |
現ユーザー向けに Playwright ブラウザが未導入、または PLAYWRIGHT_BROWSERS_PATH が空振り。 |
スキルユーザーでブラウザ取得をやり直し、環境を出力して ~/.cache(または設定パス)と実行時が一致するか確認。 |
| タイムアウト/ナビゲーションタイムアウト | launchd と対話シェルで出口・プロキシ・DNS が違う、または先サイト側のボット対策。 | 同一ルーティング文脈で curl -I を比較。一時的にタイムアウト延長、HAR 取得、固定出口 IP 要件の有無を確認。 |
クラッシュ/ヘッドレスでの SIGABRT |
macOS と相性の悪い引数、ディスク満杯、並列過多によるメモリ圧迫。 | 並列を下げる、ディスクと ulimit を確認、Chromium 引数を最小集合に戻して再試行。 |
| ダウンロード/スクリーンショット先で Permission denied | カレントが書き込み不可、SIP/ACL による書き込み拒否。 | 自動化ユーザーが所有するディレクトリへ出力を寄せる。読み取り専用マウントや root 専用パスへの一時書き込みを避ける。 |
5. FAQ
Q1: デスクトップ GUI セッションと同一ユーザーを共有してよいか
可能ですが本番では衝突が多いです。Keychain・クリップボード・ダウンロードフォルダで GUI ログインとヘッドレス自動化が競合します。スキル用は専用アカウントを推奨します。
Q2: OpenClaw を上げた直後にブラウザ系スキルだけ壊れた
リリースノートで Playwright のメジャー更新がないか確認。メンテではブラウザバイナリの再取得と最小スモークを済ませてからトラフィックを戻します。
Q3: デバッグ証跡はどう残すか
まず Playwright の trace を優先。動画が必要なら、隔離した環境で短い headed 実行と仮想ディスプレイを検討し、常時露出したデスクトップ録画は避けます。
Playwright 自動化の土台として Mac mini が現実的な理由
ブラウザ自動化はファイルシステムの安定、予測しやすいプロセス挙動、静かな 24 時間稼働に敏感です。Apple Silicon 上の macOS とユニファイドメモリは、クロスプラットフォームのコンテナ像だけを持ち込んだときに起きがちな不整合を減らしやすく、Gatekeeper・SIP・FileVault を組み合わせたベースライン強化は、ジャンプホストやマルチテナント SSH と相性がよいことが多いです。単一テナントの専用リモートノードとして Mac mini M4 クラスは待機時おおよそ 4W前後に収まりやすく、常時 ON のゲートウェイとヘッドレスブラウザワーカーを経済的に回しやすい土台になります。
本稿の導入順・ヘッドレスのベースライン・切り分け表を、静音で安定し、常時稼働に向くハードの上に載せたい場合、2026 年時点でも Mac mini M4 はコストパフォーマンスの高い出発点の一つです。今すぐ導入し、ブラウザスキルチェーンを再現可能な運用に揃えてください。
SSHMac のトップページで、並列度・ストレージ・常時ルーティングに合う構成を選べます。