OpenClawのNodes機能完全ガイド:AIに「目と耳と手」を与える

2026年2月18日 | AI技術

この記事をシェア

AIアシスタントは便利だが、現実世界とのインターフェースがない。テキストを読んで、テキストを返す。それだけだ。

でも、「今どこにいる?」と聞かれたらGPSで位置を返し、「部屋の様子見せて」と言われたらカメラで撮影して見せる——そんなAIがいたら?

OpenClawのNodes機能は、まさにそれを実現する。スマートフォンやMacをAIの「周辺機器」として接続し、AIが現実世界にアクセスできるようにする仕組みだ。

本記事では、Nodes機能の全貌を実際のコマンド例・設定ファイル・ユースケースとともに徹底解説する。

Nodesとは何か

Node(ノード)とは、OpenClawのGatewayに接続するコンパニオンデバイスのこと。iPhone、Androidスマホ、Mac、またはLinux/Windowsマシンを「ノード」としてペアリングすると、AIがそのデバイスの機能を直接操作できるようになる。

アーキテクチャ概要

┌─────────────────┐
│  あなた (Slack) │
└────────┬────────┘
         │ メッセージ
         ▼
┌─────────────────┐
│  OpenClaw       │
│  Gateway        │◄──── WebSocket ────┐
└────────┬────────┘                     │
         │ API呼び出し                   │
         ▼                              │
┌─────────────────┐              ┌──────┴──────┐
│  Claude API    │              │   Nodes     │
│  (Anthropic)   │              │ ・iPhone    │
└─────────────────┘              │ ・Mac       │
                                 │ ・Android   │
                                 └─────────────┘

重要なポイント:

  • Gatewayが司令塔 — すべてのメッセージはGatewayを経由する
  • NodesはWebSocket接続 — ノードはGatewayのWSサーバーに接続し、コマンドを待ち受ける
  • ノードは周辺機器 — ノード自身はAIを実行しない。Gatewayからの指示を受けて動作する

できること一覧

機能 コマンド 対応デバイス 備考
📷 写真撮影 camera.snap iOS, Android, Mac 前面・背面カメラ選択可
🎬 動画クリップ camera.clip iOS, Android, Mac 最大60秒、音声ON/OFF可
📍 位置情報 location.get iOS, Android, Mac 精度選択可(coarse/precise)
🖥️ 画面録画 screen.record iOS, Android, Mac 最大60秒
🔔 通知送信 system.notify Mac プッシュ通知
⚡ コマンド実行 system.run Mac, Linux, Windows 承認制(allowlist)
📱 SMS送信 sms.send Android 権限要
🎨 Canvas表示 canvas.* iOS, Android, Mac WebView制御

セットアップ手順

Step 1: Gatewayの準備

まずOpenClawのGatewayが起動していることを確認:

# Gatewayのステータス確認
openclaw gateway status

# 起動していない場合
openclaw gateway start

Step 2: ノードアプリのインストール

iPhoneの場合

  1. App Storeで「OpenClaw」を検索
  2. インストール後、アプリを起動
  3. GatewayのホストとポートをIPアドレスまたは設定を入力

Androidの場合

  1. Google Playで「OpenClaw」を検索
  2. インストール後、アプリを起動
  3. Gatewayへの接続情報を入力

Macの場合(メニューバーアプリ)

# Homebrewでインストール
brew install --cask openclaw

# またはnpmで(ヘッドレスモード)
npm install -g openclaw
openclaw node run --host localhost --port 18789 --display-name "My Mac"

Linux/Windows(ヘッドレスノードホスト)

# ノードホストとして起動
openclaw node run --host <gateway-ip> --port 18789 --display-name "Build Server"

# サービスとして常駐させる場合
openclaw node install --host <gateway-ip> --port 18789 --display-name "Build Server"
openclaw node restart

Step 3: ペアリングの承認

ノードが接続を試みると、Gateway側で承認が必要:

# 保留中のペアリングリクエストを確認
openclaw nodes pending

# 出力例:
# ID                                    Name         Type      Status
# 550e8400-e29b-41d4-a716-446655440000  iPhone 15    ios       pending
# 6ba7b810-9dad-11d1-80b4-00c04fd430c8  MacBook Pro  macos     pending

# 承認
openclaw nodes approve 550e8400-e29b-41d4-a716-446655440000

# または名前で承認
openclaw nodes approve --name "iPhone 15"

Step 4: 接続確認

# 接続中のノード一覧
openclaw nodes list --connected

# ノードの詳細情報
openclaw nodes describe --node "iPhone 15"

# 出力例:
# Node: iPhone 15
# ID: 550e8400-e29b-41d4-a716-446655440000
# Type: ios
# Status: connected
# Capabilities: camera.snap, camera.clip, location.get, canvas.*
# Permissions:
#   camera: granted
#   location: whileUsing
#   microphone: granted

カメラ撮影の実践

写真撮影(camera.snap)

# 前面カメラで撮影
openclaw nodes camera snap --node "iPhone 15" --facing front

# 背面カメラで撮影
openclaw nodes camera snap --node "iPhone 15" --facing back

# 両方のカメラで撮影(デフォルト)
openclaw nodes camera snap --node "iPhone 15"
# → 2つのMEDIA:パスが出力される

# 解像度を指定
openclaw nodes camera snap --node "iPhone 15" --max-width 1280

# 撮影前の遅延(セルフタイマー)
openclaw nodes camera snap --node "iPhone 15" --delay-ms 3000

出力例

MEDIA:/tmp/openclaw-camera-1708234567-front.jpg
MEDIA:/tmp/openclaw-camera-1708234567-back.jpg

動画クリップ(camera.clip)

# 10秒の動画を撮影
openclaw nodes camera clip --node "iPhone 15" --duration 10s

# 音声なしで撮影
openclaw nodes camera clip --node "iPhone 15" --duration 5s --no-audio

# 前面カメラで撮影
openclaw nodes camera clip --node "iPhone 15" --facing front --duration 3s

制限事項

  • 最大60秒(base64エンコードのサイズ制限のため)
  • アプリがフォアグラウンドでないと使用不可
  • 権限がない場合はCAMERA_PERMISSION_REQUIREDエラー

AIとの会話例

あなた: 「外の天気どんな感じ?写真撮って見せて」

AI: [iPhoneの背面カメラで撮影]
    「撮影しました。曇り空で、少し雨がぱらついているようですね。
    傘を持っていった方が良さそうです。気温も低そうなので、
    上着もあった方がいいかもしれません。」

位置情報の取得

基本的な取得

# 位置情報を取得
openclaw nodes location get --node "iPhone 15"

# 精度を指定
openclaw nodes location get --node "iPhone 15" --accuracy precise
openclaw nodes location get --node "iPhone 15" --accuracy coarse
openclaw nodes location get --node "iPhone 15" --accuracy balanced

# タイムアウトを指定
openclaw nodes location get --node "iPhone 15" --location-timeout 10000

出力例(JSON)

{
  "lat": 35.6896,
  "lon": 139.6921,
  "accuracyMeters": 12.5,
  "altitudeMeters": 40.2,
  "speedMps": 0.0,
  "headingDeg": 270.0,
  "timestamp": "2026-02-18T12:34:56.000Z",
  "isPrecise": true,
  "source": "gps"
}

位置情報の設定(ノード側)

位置情報はデフォルトでオフ。ノードアプリの設定で有効化が必要:

設定値 意味 備考
off 位置情報無効 デフォルト
whileUsing アプリ使用中のみ フォアグラウンド時のみ
always 常時許可 バックグラウンドでも取得可能

画面録画

基本的な録画

# 10秒間の画面録画
openclaw nodes screen record --node "MacBook Pro" --duration 10s

# フレームレートを指定
openclaw nodes screen record --node "MacBook Pro" --duration 10s --fps 15

# 音声なし
openclaw nodes screen record --node "MacBook Pro" --duration 10s --no-audio

# 特定のディスプレイを指定(複数モニター環境)
openclaw nodes screen record --node "MacBook Pro" --duration 10s --screen 1

制限事項

  • 最大60秒
  • macOSでは画面収録の権限(TCC)が必要
  • iOS/Androidではシステムのスクリーンキャプチャ許可プロンプトが表示される
  • アプリがフォアグラウンドでないと使用不可

リモートコマンド実行

Macノードまたはヘッドレスノードホストでは、system.runを使ってシェルコマンドを実行できる。

基本的な実行

# 単純なコマンド
openclaw nodes run --node "MacBook Pro" -- echo "Hello from remote Mac"

# 複雑なコマンド(--raw オプション)
openclaw nodes run --node "MacBook Pro" --raw "git status && npm test"

# 作業ディレクトリを指定
openclaw nodes run --node "MacBook Pro" --cwd /path/to/project -- git pull

# 環境変数を設定
openclaw nodes run --node "MacBook Pro" --env NODE_ENV=production -- npm start

セキュリティ:コマンド承認(Allowlist)

system.run承認制。許可されていないコマンドは実行できない。

# 許可リストに追加(Gateway側から)
openclaw approvals allowlist add --node "MacBook Pro" "/usr/bin/git"
openclaw approvals allowlist add --node "MacBook Pro" "/usr/local/bin/npm"

# 許可リストを確認
openclaw approvals list --node "MacBook Pro"

# パターンで許可(危険:慎重に)
openclaw approvals allowlist add --node "MacBook Pro" "/usr/bin/*"

ノード側の承認ファイル

承認情報はノード側の~/.openclaw/exec-approvals.jsonに保存される:

{
  "allowlist": [
    "/usr/bin/git",
    "/usr/local/bin/npm",
    "/usr/bin/echo"
  ],
  "denylist": [
    "/bin/rm",
    "/usr/bin/sudo"
  ],
  "mode": "allowlist"
}

Gatewayの設定でノードをデフォルトに

# execコマンドをノード経由に設定
openclaw config set tools.exec.host node
openclaw config set tools.exec.node "MacBook Pro"
openclaw config set tools.exec.security allowlist

これにより、AIがexecツールを使う際に自動的にノード経由で実行される。

通知送信

Macノードに対してプッシュ通知を送信できる。

# 基本的な通知
openclaw nodes notify --node "MacBook Pro" --title "リマインダー" --body "15時からミーティング"

# 優先度を指定
openclaw nodes notify --node "MacBook Pro" \
  --title "緊急" \
  --body "サーバーダウン検知" \
  --priority timeSensitive

# 配信方法を指定
openclaw nodes notify --node "MacBook Pro" \
  --title "完了" \
  --body "バックアップ完了" \
  --delivery overlay

優先度オプション

説明
passive静かに通知(バッジのみ)
active通常の通知
timeSensitive緊急通知(集中モードでも表示)

セキュリティ設計

Nodes機能は強力だが、プライバシーへの配慮が設計に組み込まれている。

フォアグラウンド必須

カメラ(camera.*)と画面録画(screen.record)は、ノードアプリがフォアグラウンドでないと使用できない。バックグラウンドでの無断撮影は技術的に不可能。

エラー例:
NODE_BACKGROUND_UNAVAILABLE: The node app must be in the foreground to use camera commands.

権限はユーザー管理

各機能はノードアプリの設定で個別に有効/無効を切り替えられる:

  • カメラ: デフォルトON(アプリ設定でOFF可能)
  • 位置情報: デフォルトOFF(明示的に有効化が必要)
  • 画面録画: OS権限が必要
  • コマンド実行: Allowlist制

ペアリング承認

すべてのノードは接続時にGateway側での承認が必要。勝手にノードを接続して悪用することはできない。

設定リファレンス

Gateway設定(~/.openclaw/config.yaml)

# ノード関連の設定
tools:
  exec:
    host: node                    # exec をノード経由に
    node: "MacBook Pro"           # デフォルトのノード名
    security: allowlist           # allowlist | full | deny

# ノードの接続設定(通常は自動)
gateway:
  port: 18789
  wsPort: 18789                   # WebSocketポート(ノード接続用)

ノード設定(~/.openclaw/node.json)

{
  "nodeId": "550e8400-e29b-41d4-a716-446655440000",
  "displayName": "MacBook Pro",
  "gatewayHost": "192.168.1.100",
  "gatewayPort": 18789,
  "token": "xxxxx"
}

実行承認(~/.openclaw/exec-approvals.json)

{
  "mode": "allowlist",
  "allowlist": [
    "/usr/bin/git",
    "/usr/local/bin/npm",
    "/usr/bin/echo",
    "/bin/ls"
  ],
  "denylist": [
    "/bin/rm",
    "/usr/bin/sudo",
    "/usr/sbin/*"
  ]
}

トラブルシューティング

ノードが接続できない

# Gatewayのステータス確認
openclaw gateway status

# WSポートが開いているか確認
lsof -i :18789

# ファイアウォールの確認(macOS)
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --listapps

カメラが使えない

エラー: CAMERA_DISABLED

→ ノードアプリの設定で「Allow Camera」を有効にする

エラー: CAMERA_PERMISSION_REQUIRED

→ OS設定でアプリにカメラ権限を付与する

エラー: NODE_BACKGROUND_UNAVAILABLE

→ ノードアプリをフォアグラウンドに持ってくる

位置情報が取得できない

エラー: LOCATION_DISABLED

→ ノードアプリの設定でLocationを「While Using」または「Always」に変更

エラー: LOCATION_TIMEOUT

→ GPS信号が弱い場所にいる可能性。屋外で再試行するか、--accuracy coarseを試す

コマンドが実行できない

エラー: SYSTEM_RUN_DENIED

→ コマンドがallowlistに含まれていない。openclaw approvals allowlist addで追加

まとめ

OpenClawのNodes機能は、AIアシスタントを「テキストだけの存在」から「現実世界にアクセスできる存在」へと拡張する。

  • カメラ — 写真・動画の撮影で「目」を持つ
  • 位置情報 — GPSで「今どこにいるか」を知る
  • 画面録画 — デスクトップの操作を記録
  • コマンド実行 — リモートマシンで作業を代行
  • 通知 — プロアクティブに情報を伝える

セットアップは少し手間がかかるが、一度設定すれば「写真撮って」「今どこ?」「Macで〇〇実行して」といった自然な会話でAIに指示できるようになる。

詳細は公式ドキュメント https://docs.openclaw.ai/nodes を参照。

この記事が役に立ったらシェアしてください

AIアシスタントに「目と耳と手」を与えるNodes機能の解説でした

カテゴリ

AI技術

公開日

2026年2月18日

お気軽にご相談ください

記事に関するご質問や、AI・IT技術導入のご相談など、お気軽にお問い合わせください。