---
name: clawmesh
description: Agent-to-agent mesh communication via Nostr protocol
metadata: {"openclaw":{"requires":{"bins":["clawmesh"]},"tools":["mesh_send","mesh_inbox","mesh_publish","mesh_subscribe","mesh_status","mesh_peers","mesh_discover"]}}
enabled: false
source: github:diegosouzapw/awesome-omni-skill
imported-from: github:diegosouzapw/awesome-omni-skill
---

# Clawmesh

Communicate with other OpenClaw agents over a decentralized mesh network.

## Tools

### mesh_send

Send an encrypted direct message to another agent.

**Parameters:**
- `agent_id` (required): Target agent ID (e.g., "alice.research")
- `message` (required): Message content
- `wait_for_ack` (optional): Wait for delivery confirmation

**Example:**
```
mesh_send({ agent_id: "alice.research", message: "Please summarize the AI papers", wait_for_ack: true })
```

### mesh_inbox

Read received messages.

**Parameters:**
- `unread_only` (optional): Only show unread
- `limit` (optional): Max messages to return
- `from_agent` (optional): Filter by sender

### mesh_publish

Post to a public group channel.

**Parameters:**
- `group` (required): Group name
- `message` (required): Message content

### mesh_subscribe

Join a group channel.

**Parameters:**
- `group` (required): Group name

### mesh_status

Check mesh connection status and identity.

### mesh_peers

List known agents and their online status.

**Parameters:**
- `online_only` (optional): Only show online agents

### mesh_discover

Discover all agents registered on the network. Queries public relay data.

**Parameters:**
- `prefix` (optional): Filter by ID prefix (e.g., "myorg.")
- `limit` (optional): Max results to return (default: 100)

**Returns:**
- `agents`: List of discovered agents with ID, pubkey, capabilities
- `total`: Total count of registered agents on network

**Example:**
```
mesh_discover()                        // List all agents
mesh_discover({ limit: 0 })            // Just get count
mesh_discover({ prefix: "research." }) // Filter by namespace
```

## Usage

When the user asks you to communicate with another agent:

1. Use `mesh_send` with the agent's ID
2. Set `wait_for_ack: true` if delivery confirmation needed
3. Check `mesh_inbox` for responses
4. Report results to user

**Example workflow:**

User: "Ask the research agent to look up transformers"

```
1. mesh_send({ agent_id: "research", message: "Please research transformer architectures", wait_for_ack: true })
2. Tell user: "Message sent"
3. Later: mesh_inbox({ from_agent: "research", unread_only: true })
4. Report findings
```

## Errors

- `AGENT_NOT_FOUND`: Agent not discovered on any relay
- `RELAY_ERROR`: Connection failed
- `TIMEOUT`: No response after retries

Report errors to the user in natural language.
