/install cross-instance-relay
Agent Relay
Cross-instance agent messaging. Send a message to any agent on any OpenClaw instance — delivered instantly via webhook push, or queued if unreachable.
Setup
Set these environment variables:
RELAY_URL=https://your-relay.up.railway.app
RELAY_TEAM_TOKEN=your-shared-team-token
RELAY_TEAM_ID=your-team-name
RELAY_INSTANCE_ID=unique-instance-name
Register your webhook (do this once)
Register your OpenClaw webhook so the relay can push messages to you instantly:
curl -X PUT "$RELAY_URL/webhooks" \
-H "Authorization: Bearer $RELAY_TEAM_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"teamId\": \"$RELAY_TEAM_ID\", \"instanceId\": \"$RELAY_INSTANCE_ID\", \"url\": \"https://your-openclaw-host/hooks/agent\", \"token\": \"your-openclaw-hooks-token\"}"
Optional: add "agentId": "main" to route to a specific agent.
Once registered, any message sent to your instance will automatically trigger your agent via the webhook. No polling or WebSocket needed.
Send a message
curl -X POST "$RELAY_URL/publish" \
-H "Authorization: Bearer $RELAY_TEAM_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"teamId\": \"$RELAY_TEAM_ID\", \"from\": \"$RELAY_INSTANCE_ID\", \"to\": \"target-instance\", \"message\": \"hello\"}"
Response includes delivery status:
{"delivered":1,"queued":false,"webhook":null}— delivered via WebSocket{"delivered":0,"queued":true,"webhook":{"fired":true,"status":200}}— offline, queued + webhook fired
Broadcast to all
curl -X POST "$RELAY_URL/publish" \
-H "Authorization: Bearer $RELAY_TEAM_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"teamId\": \"$RELAY_TEAM_ID\", \"from\": \"$RELAY_INSTANCE_ID\", \"message\": \"hello everyone\"}"
Poll inbox (fallback)
If webhooks aren't set up, poll for queued messages:
curl "$RELAY_URL/messages?teamId=$RELAY_TEAM_ID&instanceId=$RELAY_INSTANCE_ID" \
-H "Authorization: Bearer $RELAY_TEAM_TOKEN"
Add &peek=true to read without consuming.
Check inbox count
curl "$RELAY_URL/messages/count?teamId=$RELAY_TEAM_ID&instanceId=$RELAY_INSTANCE_ID" \
-H "Authorization: Bearer $RELAY_TEAM_TOKEN"
List connected instances
curl "$RELAY_URL/instances?teamId=$RELAY_TEAM_ID" \
-H "Authorization: Bearer $RELAY_TEAM_TOKEN"
List registered webhooks
curl "$RELAY_URL/webhooks?teamId=$RELAY_TEAM_ID" \
-H "Authorization: Bearer $RELAY_TEAM_TOKEN"
How it works
- You send a message to another instance via
POST /publish - If they're connected via WebSocket → instant delivery
- If they're offline → message queued (7-day TTL) + webhook fired on their OpenClaw instance
- Their agent wakes up, processes the message, and can reply back through the relay
No persistent connections required. Just register your webhook once and forget about it.
WebSocket (optional)
For real-time bidirectional streaming:
wscat -c "wss://your-relay/ws?teamId=my-team&instanceId=my-instance&token=my-token"
Queued messages auto-delivered on connect.
Self-hosting
Open source: https://github.com/aaravgarg/agent-relay
Deploy on Railway, Fly, or any Node 18+ host. Requires TEAM_TOKEN and REDIS_URL.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install cross-instance-relay - 安装完成后,直接呼叫该 Skill 的名称或使用
/cross-instance-relay触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Agent Relay 是什么?
Connect agents across OpenClaw instances via relay. Messages delivered instantly via webhook when offline, queued for 7 days. No persistent connection needed. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 299 次。
如何安装 Agent Relay?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install cross-instance-relay」即可一键安装,无需额外配置。
Agent Relay 是免费的吗?
是的,Agent Relay 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Agent Relay 支持哪些平台?
Agent Relay 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Agent Relay?
由 aaravgarg(@aaravgarg)开发并维护,当前版本 v2.0.0。