aaravgarg/cross-instance-relay/SKILL.md
Connect agents across OpenClaw instances via relay. Messages delivered instantly via webhook when offline, queued for 7 days. No persistent connection needed.
npx skillsauth add openclaw/skills agent-relayInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Cross-instance agent messaging. Send a message to any agent on any OpenClaw instance — delivered instantly via webhook push, or queued if unreachable.
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 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.
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 firedcurl -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\"}"
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.
curl "$RELAY_URL/messages/count?teamId=$RELAY_TEAM_ID&instanceId=$RELAY_INSTANCE_ID" \
-H "Authorization: Bearer $RELAY_TEAM_TOKEN"
curl "$RELAY_URL/instances?teamId=$RELAY_TEAM_ID" \
-H "Authorization: Bearer $RELAY_TEAM_TOKEN"
curl "$RELAY_URL/webhooks?teamId=$RELAY_TEAM_ID" \
-H "Authorization: Bearer $RELAY_TEAM_TOKEN"
POST /publishNo persistent connections required. Just register your webhook once and forget about it.
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.
Open source: https://github.com/aaravgarg/agent-relay
Deploy on Railway, Fly, or any Node 18+ host. Requires TEAM_TOKEN and REDIS_URL.
tools
Use when the user wants to connect to, test, or use the McDonalds service at mcp.mcd.cn, including checking authentication, probing MCP endpoints, listing tools, or calling McDonalds MCP tools through a reusable local CLI.
development
Web scraping platform — Twitter/X data, Vinted marketplace, and general web scraping API
development
SlowMist AI Agent Security Review — comprehensive security framework for skills, repositories, URLs, on-chain addresses, and products (Claude Code version)
data-ai
去除中文文本中的 AI 写作痕迹,使其读起来自然。基于维基百科 AI 写作特征指南,检测 24 种 AI 模式。触发词:humanizer-cn、去除 AI 痕迹、去除 AI 写作痕迹、中文文本人性化。