Communityコーディング&開発github.com

Node Connect

OpenClaw Control UIブラウザおよびネイティブAndroid、iOS、macOSノードの接続障害を、ルート、認証、ペアリング、QR/セットアップコード、再接続状態にわたって診断します。

Node Connect とは?

Node Connectスキルは、OpenClaw Gatewayに対するクライアント接続障害の診断と修復を体系的に行うための手順を提供します。対象となるクライアント(Control UIブラウザ、ネイティブモバイル/ノードアプリ)を特定し、Gatewayの状態を詳細に確認した上で、ルーティング、認証、ペアリングの各段階で発生する問題を切り分けます。まず対象のGateway環境を固定し、クライアントの種類を分類した後、実際の接続試行ログを取得して最初の失敗遷移を解釈します。ルート検証では同一マシン、LAN、Tailnet、パブリックリバースプロキシのいずれかのトポロジーに絞り込み、ブラウザ向けにはHTTPSまたはlocalhostによるブラウザデバイスIDの確認が必要です。認証方式に応じてトークン/パスワード、Tailscale Serve、またはダッシュボードワンタイムハンドオフを使い分け、ペアリングが必要な場合には正確なリクエストIDを承認します。成功は対象クライアントが所定のGatewayに到達し、認証が成功し、ブラウザなら初期リクエスト完了、ネイティブノードなら `openclaw nodes status` に表示されること、承認に正確なリクエストIDを使用し、直後の認証・ペアリング・再接続失敗がないことで宣言します。このスキルはOpenClaw CLIと連携し、クライアントID、モード、プラットフォーム、アドレス、認証結果、デバイスID、ユーザー、クローズコードなどの情報を突き合わせて診断を行います。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/skills/node-connect

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Node Connect は何をしますか?

目標: 1つの特定のクライアントを1つの特定のGatewayに対して修正し、そのクライアントの新しい接続が正常に行えることを証明する。

1. 対象を固定する

何かを変更する前に、対象の環境/プロファイル、OpenClawバイナリ、設定/状態ルート、Gateway URL/ポート、およびサービスを記録する。

  • すべての設定、ログ、サービス、デバイス、ノードコマンドには、名前付きデプロイメントラッパー/プロファイルを使用する。
  • 裸の openclaw、証明環境、または同名のデプロイメントにドリフトしてはならない。
  • グローバル実行可能ファイルが古い場合は、その所有者を通じて対象を呼び出す。
  • ステータス、設定、ログ、プロセスIDが同じGatewayを記述していることを確認する。

ペアリングや認証を変更する前に、対象のGatewayを特定する。

2. クライアントを分類する

コマンドを選択する前に、リクエストとGatewayログから分類する:

  • Control UIブラウザ: ユーザーがブラウザ、ダッシュボード、Control UI、またはウェブチャットと言う。ログには client=openclaw-control-ui または mode=webchat が表示される。
  • ネイティブモバイル/ノード: 公式アプリが「接続」、「QRスキャン」、またはセットアップコードを表示する。ログ/リクエストメタデータにネイティブクライアントまたは role=node が表示される。

電話はどちらのクライアントにもなり得る。電話のブラウザに対して openclaw qr や openclaw nodes status を使用してはならない。これらはネイティブモバイル/ノードのペアリングに属する。

3. 失敗する試行を観察する

ロックされた対象に対して以下を実行する:

openclaw gateway status --deep
openclaw logs --follow --json
openclaw devices list
openclaw config get gateway.mode
openclaw config get gateway.bind
openclaw config get gateway.remote.url
openclaw config get gateway.auth.mode
openclaw config get gateway.auth.allowTailscale
openclaw config get gateway.tailscale.mode

ログがライブの状態で、クライアントに一度再試行させる。そのクライアントID、モード、プラットフォーム、アドレス、認証結果、デバイスID、ユーザー、クローズコードを相関させる。他のペアリング済みデバイスは無視する。

最初の失敗遷移を解釈する:

  • Gatewayの試行が一致しない: ルート、DNS、TLS、オリジン、またはプロキシの問題。
  • token_missing、password_missing、不一致、またはTailscale IDの失敗: 認証はペアリング前に失敗している。そのため、保留リストが空であることは想定内。
  • pairing required: ルートと認証は成功。正確な保留リクエストを承認する。
  • client connected: conn、client、mode、roleを該当クライアントに一致させる。アドミッションはhello応答の前に行われる。その後 1006 が続く場合、認証/ペアリングを保持し、hello配信、ライフサイクル、トランスポート、プロキシ、または再接続を調査する。古いビルドでは authenticated user connected / webchat connected レコードが重複して出力され、エフェメラルクライアントが省略される場合がある。
  • 対応するアプリケーションレベルのアドミッションレコードがない 1006 は、認証/ペアリングを証明しない。より前のハンドシェイク遷移を調査する。

4. ルートを証明する

トポロジーを1つ選択する: 同一マシン、LAN、tailnet、またはパブリックリバースプロキシ。これらを混在させてはならない。

  • ブラウザのControl UIには、ブラウザデバイスIDのためにHTTPSまたはlocalhostが必要。リモートの平文HTTP Tailnet/LAN URLは有効な代替手段ではない。
  • gateway.tailscale.mode=off は、OpenClawがServe/Funnelを管理していないことを意味する。Tailscaleまたは外部管理のServeルートが存在しないことを証明するものではない。
  • Tailscaleが関与する場合、OpenClawの設定から推測するのではなく、ライブ状態を調査する:
tailscale status --json
tailscale serve status --json

クライアントのURLを、ロックされたGatewayに到達するリスナー/プロキシルートと一致させる。

5A. Control UIブラウザレーン

ペアリングリクエストを探す前に、ブラウザ認証を復元する:

  • トークン/パスワード認証の場合、Control UIの設定に資格情報を入力する。永続的なシークレットをチャット、ログ、またはURLに入れてはならない。
  • Gatewayホスト上の openclaw dashboard を、ワンタイム署名ハンドオフのために優先的に使用する。オペレーターがそのホストのクリップボードを取得できる場合にのみ --no-open を使用し、ホストのブラウザ/クリップボードをエージェントツールの外に保つ。dashboard --json をキャプチャしてはならない。これはハンドオフと共有資格情報を公開する可能性がある。ループバックハンドオフURLをリモート電話に中継、書き換え、または送信してはならない。
  • Tailscale Serveの場合、ライブルートと転送されたIDを確認する。意図した信頼境界に対してのみ gateway.auth.allowTailscale を有効にする。ブラウザデバイスIDで検証されたTailscale Control UI認証は、ペアリングをスキップできる。

認証が成功した後:

  • 再試行する。認証前の試行からペアリングを推測してはならない。トークン/パスワード認証は pairing required を明らかにすることがある。検証されたTailscale IDはそれをスキップできる。
  • ログに pairing required と表示された場合、デバイスを再度リストし、正確なリクエストIDを承認する。
  • 検証されたTailscape接続が成功した場合、保留中またはペアリング済みデバイスの行が正しく作成されないことがある。
  • 繰り返し 1006 が発生した後は、認証/ペアリングを保持し、再接続の証拠を調査する。

5B. ネイティブモバイル/ノードレーン

セットアップ資格情報を公開せずに、ロックされた対象を介してネイティブルートを調査する:

openclaw qr --json | jq '{gatewayUrl, gatewayUrls, auth, access, accessDowngraded, urlSource}'

リモートGatewayを制御するCLIの場合は、--json の前に --remote を追加する。これにより gateway.remote.url とリモート資格情報が選択される。難読化フィルタが利用できない場合、生のQR JSONをエージェントから見える出力で実行してはならない。

gatewayUrl と urlSource を確認する。セットアップコードはパスワードと同等である。オペレーターに Control UI → デバイス → デバイスをペアリング からコピーさせるか、エージェントツールの外にあるターミナルで openclaw qr --setup-code-only を実行し、公式アプリに直接貼り付けさせる。エージェント/チャット/ツールの出力を介して中継してはならない。URL/認証の修正または期限切れの後は、新しいコードを生成する。

アプリが pairing required を報告した場合:

openclaw devices list
openclaw devices approve --latest   # プレビューのみ。承認なしで終了。
openclaw devices approve <requestId>
openclaw nodes status

--latest は現在のリクエストをプレビューするだけであり、承認と見なしてはならない。正確なIDコマンドの直前に再度リストする。なぜなら、再試行によってリクエストが置き換えられる可能性があるからです。位置、経過時間、または類似性によって承認してはならない。

6. 相関させて終了する

承認前に、利用可能なリクエスト、デバイス/公開鍵、クライアント、モード/ロール、プラットフォーム、アドレス、ユーザー、再試行時刻の情報を一致させる。

以下のすべての該当チェックが最新の変更後に行われた新しい試行によって証明された場合のみ、成功を宣言する:

  • 該当クライアントがロックされたGatewayに到達すること。
  • 意図した認証が成功すること。
  • ブラウザが初期リクエストを完了するか、ネイティブノードが openclaw nodes status に表示されること。
  • 承認に正確なリクエストIDが使用されたこと。
  • 直後に認証、ペアリング、または再接続の失敗がないこと。

QR/セットアップコード、起動されたブラウザ、空の保留リスト、承認、ペアリング済みデバイス数、またはTailscale pingは、1つの遷移のみを証明する。

診断結果、選択されたルート/認証レーン、該当クライアントの証拠、および残っている失敗遷移を報告する。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

関連スキル