Guide
Connect MeshClaw to Your AI Agent
MeshClaw is an OpenClaw channel plugin for Meshtastic — the LoRa radio mesh that works with no cell service, no WiFi and no internet. Your agent becomes a node on the mesh and answers messages over radio. The install is short; the part that decides whether this works for you is which transport you can actually use.
What MeshClaw Is
MeshClaw is built by Seeed Studio and published as @seeed-studio/meshtastic. It bridges an OpenClaw agent to a Meshtastic LoRa mesh so the agent can send and receive messages over radio — from a trail, a boat, or anywhere the grid does not reach. It handles both direct messages and group channels, with access control on each.
The AI itself still needs a model. Cloud inference works out of the box, and a fully local model is possible if you want the whole stack off-grid — see OpenClaw + Ollama. Radio being offline does not make the model offline.
Pick Your Transport First
This is the decision that matters, and it is worth making before you install anything. MeshClaw talks to a Meshtastic device three ways:
| Transport | How it connects | Needs local hardware |
|---|---|---|
serial (default) | USB cable to a Meshtastic device | Yes — plugged into the machine running the gateway |
http | Over WiFi to the device (e.g. meshtastic.local) | Yes — device on the same network |
mqtt | Through an MQTT broker | No |
serial and http are not options for a managed bot — they need the gateway and the radio in the same place. MQTT is the transport that works: your radio publishes to a broker, and the hosted agent connects to that broker. Choose serial only when you are self-hosting OpenClaw on a machine with the device physically attached.Install
MeshClaw needs Node.js 22 or newer. From your instance's Web Terminal:
openclaw plugins install @seeed-studio/meshtasticThen run the guided setup, which walks through transport, region, node name and access policy:
openclaw onboardRestart the gateway after installing the plugin.
Set Your Region
The region key defaults to UNSET, and a node with no region will not transmit. Set it to the band that is legal where you are — US, EU_868, CN, JP and the other standard Meshtastic regions are supported.
This is a radio licensing matter, not a preference. Transmitting on the wrong band for your country is not something to guess at; check your local rules and match the region to them.
Access Control
A mesh is open by nature — anyone in radio range can reach your node. The defaults are deliberately conservative and you should keep them that way:
| Key | Options | Default |
|---|---|---|
dmPolicy | open, pairing, allowlist | pairing |
groupPolicy | open, allowlist, disabled | disabled |
nodeName | Any string | Auto-detected |
Leave dmPolicy on pairing so strangers in range have to be approved before the agent answers them. open means every node within radio reach can spend your model credits. In group channels the agent answers only when mentioned by default — keep that on unless you want it replying to every message on a shared channel.
Expect Radio Constraints, Not Chat Constraints
LoRa is a low-bandwidth, high-latency medium. Messages are short, they take seconds to minutes rather than milliseconds, and delivery is best-effort — packets get lost when nodes move or the path degrades. Keep the agent's replies terse; a verbose model answer is a poor fit for a mesh and will fragment across packets.
This is worth setting in the system prompt rather than hoping for it. An agent told to answer in one or two short sentences behaves far better on radio than one tuned for chat apps.
Troubleshooting
- Nothing transmits.
regionis stillUNSET. This is the most common cause and it looks exactly like a broken plugin. - Serial transport fails on a hosted instance. Expected — there is no USB device in a cloud container. Switch to MQTT.
- The agent ignores group messages.
groupPolicydefaults todisabled, and even when enabled the agent answers only when mentioned. - Messages arrive late or not at all. Normal for LoRa at range. Check hop count and whether the nodes still have a path between them.
- Plugin install fails. Check the Node version — MeshClaw needs 22 or newer.
FAQ
Can a hosted OpenClaw agent use a USB Meshtastic radio?
No. A managed instance runs in a datacentre container with no USB access. Use the MQTT transport so your radio reaches the agent through a broker, or self-host OpenClaw on the machine the radio is plugged into.
Do I need internet for MeshClaw?
The mesh itself does not, but the model does unless you run one locally. MQTT transport also needs a network path to the broker. A fully off-grid setup means self-hosted OpenClaw, a local model, and serial transport.
Is MeshClaw an official OpenClaw plugin?
It is a third-party channel plugin published by Seeed Studio as @seeed-studio/meshtastic, installed through OpenClaw's normal plugin command.
Need a Hand?
Contact support from your dashboard and we will help you get the transport and region set correctly. See also Connect Nostr for another no-platform-account channel.