All posts
2026-03-2911 min

OpenClaw Nodes: Turn Your Pi, Mac, and GPU Rig Into One Agent Network

NodesRaspberry PiMulti-NodeGPUSelf-HostingOpenClaw

The Tweet That Started This

A tweet from this morning captures exactly what we're diving into today:

> *"TIL: you can add nodes to your OpenClaw setup! This means that while I run most of OpenClaw on a Raspberry Pi, it can use the kids' iMac for iOS development, and my Windows gaming rig with an RTX3080 for some heavy lifting. Might have to put the Pi on ethernet, though!"*

If you've only been running OpenClaw on one machine, you've been leaving serious capability on the table. The Nodes system lets you pair multiple devices — and your main agent can reach out to them to run workloads, take screenshots, use cameras, and execute commands as if it owned those machines.

This post covers exactly how to set it up: Pi as the brain, Mac for iOS/design tasks, GPU rig for heavy compute.

---

What Are OpenClaw Nodes?

Nodes are secondary devices paired to your main OpenClaw Gateway. Your gateway runs on the primary machine (the "brain") and orchestrates everything. Nodes are paired devices that your agent can reach out to for:

  • Running shell commands on that machine (`nodes` tool with `action: run`)
  • Taking screenshots of what's on screen
  • Camera snapshots from connected cameras
  • Location data (mobile nodes)
  • Receiving notifications and reading them
  • The key insight: your agent's tools aren't limited to the machine it runs on. You get a distributed toolkit across your whole home network.

    ---

    The Architecture: Three Machines, One Agent

    Here's the setup we'll build:

    | Machine | Role | Why |

    |---|---|---|

    | Raspberry Pi 5 | Brain / Gateway | Always-on, low power (~5W), boots fast |

    | Mac (iMac/MacBook) | UI tasks, iOS dev, design | macOS-only tools, screenshots |

    | Windows + RTX 3080 | Heavy compute, local LLMs, image gen | GPU workloads, Ollama, Stable Diffusion |

    The Pi runs the OpenClaw gateway 24/7. The Mac and Windows rig are paired as nodes — they can be sleeping and only wake when your agent needs them (or you can keep them on).

    ---

    Step 1: Set Up the Gateway on the Pi

    Start with a fresh Raspberry Pi 5 (4GB RAM minimum, 8GB recommended). Install OpenClaw:

    ```bash

    # On the Pi

    curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -

    sudo apt-get install -y nodejs

    npm install -g openclaw

    # Start the gateway

    openclaw gateway start

    ```

    For the Pi to run 24/7 reliably, set it up as a systemd service:

    ```bash

    sudo nano /etc/systemd/system/openclaw.service

    ```

    Paste:

    ```ini

    [Unit]

    Description=OpenClaw Gateway

    After=network.target

    [Service]

    Type=simple

    User=pi

    ExecStart=/usr/bin/openclaw gateway start

    Restart=always

    RestartSec=10

    [Install]

    WantedBy=multi-user.target

    ```

    Then:

    ```bash

    sudo systemctl daemon-reload

    sudo systemctl enable openclaw

    sudo systemctl start openclaw

    ```

    Ethernet tip: The tweet author is right — put your Pi on ethernet. Wi-Fi on a Pi can introduce latency when your agent is trying to stream tool results from a node. Ethernet makes node communication snappy.

    ---

    Step 2: Install the Node App on Your Mac

    On the Mac, install the OpenClaw Node app. The Node app is a lightweight companion that:

  • Stays connected to your gateway over your local network (or Tailscale for remote access)
  • Grants the gateway permission to run commands, take screenshots, and use the camera
  • Runs in the menu bar — minimal footprint
  • ```bash

    # On the Mac

    npm install -g openclaw

    # Start as a node (not a full gateway)

    openclaw node start --gateway http://<pi-ip>:PORT

    ```

    The first time you run this, the Pi's OpenClaw dashboard will show a pending pairing request. Approve it:

    ```bash

    # On the Pi, or via your agent

    openclaw nodes list # See pending pairings

    openclaw nodes approve <node-id>

    ```

    Once approved, your Mac appears in your agent's `nodes` tool. You can verify from the Pi:

    ```bash

    openclaw nodes list

    # → mac-studio: online | last seen: just now

    ```

    ---

    Step 3: Pair Your Windows GPU Rig

    Same process on Windows. Install Node.js (v22+), then:

    ```bash

    npm install -g openclaw

    openclaw node start --gateway http://<pi-ip>:PORT

    ```

    Approve the pairing from your agent. Now the GPU rig is available as a node named something like `windows-rig`.

    ---

    Step 4: Using Nodes in Practice

    Here's where it gets fun. Your agent — running on the Pi — can now reach out to either node for tasks.

    Taking a screenshot of the Mac

    ```

    "Hey Sam, take a screenshot of what's on my Mac screen right now"

    ```

    Your agent calls:

    ```json

    {

    "action": "screen_record",

    "node": "mac-studio",

    "durationMs": 1000

    }

    ```

    It snapshots the Mac's display and describes what it sees. Useful for: "Check if my build finished on the Mac."

    Running a command on the Windows rig

    ```

    "Start the Ollama Llama 3.3 70B model on my gaming rig"

    ```

    Your agent calls:

    ```json

    {

    "action": "run",

    "node": "windows-rig",

    "command": ["ollama", "run", "llama3.3:70b"]

    }

    ```

    This fires up the model on the GPU rig's RTX 3080 remotely. Your Pi agent can then make requests to Ollama running on the Windows machine's IP — full GPU power, no cloud.

    Checking camera on the Pi itself

    If your Pi has a camera module (or USB webcam), you can take snaps directly:

    ```json

    {

    "action": "camera_snap",

    "node": "raspberry-pi",

    "facing": "back"

    }

    ```

    Great for home monitoring: "Is the package on my doorstep yet?"

    ---

    Step 5: Remote Access With Tailscale

    For all of this to work outside your home network (or to make node communication encrypted and reliable), add Tailscale:

    ```bash

    # On every machine

    curl -fsSL https://tailscale.com/install.sh | sh

    sudo tailscale up

    ```

    Now use Tailscale IPs instead of local IPs for your gateway URL. Your nodes stay connected even when you're traveling, and all traffic is encrypted end-to-end.

    Do NOT use `tailscale funnel` — that exposes your gateway to the public internet. `tailscale serve` is your friend: it keeps everything within your private tailnet.

    ---

    Practical Workflows This Enables

    Once your nodes are paired, here are real workflows that become possible:

    1. "Compile the iOS app on my Mac"

    Your Pi agent SSHs into the Mac (or uses the node run tool) to trigger an Xcode build. No need to touch the Mac.

    2. "Run image generation on my GPU"

    Trigger Stable Diffusion or ComfyUI on the Windows rig via a node command. Results saved to a shared network folder the Pi can read.

    3. "What does my Mac desktop look like right now?"

    Screenshot via the node tool. Your agent can check if something is running, a UI looks correct, or an app needs attention.

    4. "Run the nightly model fine-tuning job on the GPU rig"

    Set a cron job on the Pi that fires at 2 AM and runs a training script on the Windows node. Pure automation.

    5. "Check if my 3D print is done"

    Pi camera watching the printer → agent takes a snap → describes what it sees → pings you if the print looks done.

    ---

    Troubleshooting Node Connectivity

    Node shows offline after pairing:

  • Check both machines are on the same network (or Tailscale)
  • Verify no firewall blocking the gateway port
  • Restart the node app: `openclaw node restart`
  • Commands time out on the Windows node:

  • Windows Defender sometimes blocks the node app — add an exception for the OpenClaw node process
  • Check that Node.js has network access permission
  • Pi gateway can't reach Mac node:

  • Use Tailscale IPs for reliable cross-device routing
  • Ethernet on the Pi eliminates most flakiness (the original tweet was spot-on about this)
  • Node pairing request not appearing:

  • Ensure the gateway and node are using the same OpenClaw version
  • Check `openclaw gateway logs` for pairing errors
  • ---

    The Full Stack: What You've Built

    After this setup, you have:

  • Raspberry Pibrain of the operation, runs 24/7, handles scheduling, chat, memory
  • Macavailable on-demand for macOS-specific tasks, screenshots, iOS dev
  • Windows GPU rigon-demand heavy compute: local LLMs, image generation, ML training
  • Your single agent on the Pi controls all three. You don't need three separate OpenClaw installs with three separate configs and three sets of API keys. One gateway, multiple nodes.

    The tweet author figured this out organically — "TIL" — but now you know going in. Put the Pi on ethernet, pair your nodes, and suddenly your home lab is an agent network.

    ---

    *Have a multi-node setup tip? Drop it in the OpenClaw Discord. The community is building some genuinely wild distributed workflows right now.*

    Also fully available in German. 🇩🇪

    Want to learn more?

    Our playbook contains 18 detailed chapters — available in English and German.

    Get the Playbook