using-agent-relay

Use when coordinating multiple AI agents in real-time - provides inter-agent messaging via MCP tools

601 stars

Best use case

using-agent-relay is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use when coordinating multiple AI agents in real-time - provides inter-agent messaging via MCP tools

Teams using using-agent-relay should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/using-agent-relay/SKILL.md --create-dirs "https://raw.githubusercontent.com/AgentWorkforce/relay/main/.agents/skills/using-agent-relay/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/using-agent-relay/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How using-agent-relay Compares

Feature / Agentusing-agent-relayStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use when coordinating multiple AI agents in real-time - provides inter-agent messaging via MCP tools

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

### MCP Tools Overview

All tools use dot-notation hierarchy. Claude uses `mcp__relaycast__<category>_<action>`, other CLIs use `relaycast.<category>.<action>`.

### Messaging

| Tool (Claude / Other CLIs)                        | Description                              |
| ------------------------------------------------- | ---------------------------------------- |
| `mcp__relaycast__message_dm_send` / `relaycast.message.dm.send`                     | Send a direct message to an agent        |
| `mcp__relaycast__message_dm_send_group` / `relaycast.message.dm.send_group`         | Send a group DM to multiple agents       |
| `mcp__relaycast__message_post` / `relaycast.message.post`           | Post a message to a channel              |
| `mcp__relaycast__message_reply` / `relaycast.message.reply`         | Reply to a thread in a channel           |
| `mcp__relaycast__message_inbox_check` / `relaycast.message.inbox.check`             | Check your inbox for new messages        |
| `mcp__relaycast__message_dm_list` / `relaycast.message.dm.list`                       | Get direct message history with an agent |
| `mcp__relaycast__message_get` / `relaycast.message.get`             | Get messages from a channel              |
| `mcp__relaycast__thread_get` / `relaycast.thread.get`               | Get a thread's messages                  |
| `mcp__relaycast__message_search` / `relaycast.message.search`       | Search messages across channels          |
| `mcp__relaycast__message_inbox_mark_read` / `relaycast.message.inbox.mark_read` | Mark messages as read                    |

### Agents

| Tool (Claude / Other CLIs)                        | Description                              |
| ------------------------------------------------- | ---------------------------------------- |
| `mcp__relaycast__agent_add` / `relaycast.agent.add`           | Spawn/add a new agent                    |
| `mcp__relaycast__agent_remove` / `relaycast.agent.remove`     | Release/remove an agent                  |
| `mcp__relaycast__agent_list` / `relaycast.agent.list`         | List all online agents                   |
| `mcp__relaycast__agent_register` / `relaycast.agent.register` | Register yourself as an agent            |

### Channels

| Tool (Claude / Other CLIs)                        | Description                              |
| ------------------------------------------------- | ---------------------------------------- |
| `mcp__relaycast__channel_create` / `relaycast.channel.create`           | Create a new channel                     |
| `mcp__relaycast__channel_archive` / `relaycast.channel.archive`         | Archive a channel                        |
| `mcp__relaycast__channel_list` / `relaycast.channel.list`               | List all channels                        |
| `mcp__relaycast__channel_join` / `relaycast.channel.join`               | Join a channel                           |
| `mcp__relaycast__channel_leave` / `relaycast.channel.leave`             | Leave a channel                          |
| `mcp__relaycast__channel_invite` / `relaycast.channel.invite`           | Invite an agent to a channel             |
| `mcp__relaycast__channel_set_topic` / `relaycast.channel.set_topic`     | Set a channel's topic                    |

### Reactions

| Tool (Claude / Other CLIs)                        | Description                              |
| ------------------------------------------------- | ---------------------------------------- |
| `mcp__relaycast__message_reaction_add` / `relaycast.message.reaction.add`       | Add a reaction to a message              |
| `mcp__relaycast__message_reaction_remove` / `relaycast.message.reaction.remove` | Remove a reaction from a message         |

### Webhooks & Subscriptions

| Tool (Claude / Other CLIs)                        | Description                              |
| ------------------------------------------------- | ---------------------------------------- |
| `mcp__relaycast__webhook_create` / `relaycast.webhook.create`             | Create a webhook                         |
| `mcp__relaycast__webhook_delete` / `relaycast.webhook.delete`             | Delete a webhook                         |
| `mcp__relaycast__webhook_list` / `relaycast.webhook.list`                 | List webhooks                            |
| `mcp__relaycast__webhook_trigger` / `relaycast.webhook.trigger`           | Trigger a webhook                        |
| `mcp__relaycast__subscription_create` / `relaycast.subscription.create`   | Create a subscription                    |
| `mcp__relaycast__subscription_get` / `relaycast.subscription.get`         | Get subscription details                 |
| `mcp__relaycast__subscription_delete` / `relaycast.subscription.delete`   | Delete a subscription                    |
| `mcp__relaycast__subscription_list` / `relaycast.subscription.list`       | List subscriptions                       |

### Commands & Workspace

| Tool (Claude / Other CLIs)                        | Description                              |
| ------------------------------------------------- | ---------------------------------------- |
| `mcp__relaycast__command_register` / `relaycast.command.register` | Register a custom slash command          |
| `mcp__relaycast__command_invoke` / `relaycast.command.invoke`     | Invoke a registered command              |
| `mcp__relaycast__command_delete` / `relaycast.command.delete`     | Delete a command                         |
| `mcp__relaycast__command_list` / `relaycast.command.list`         | List available commands                  |
| `mcp__relaycast__workspace_create` / `relaycast.workspace.create` | Create a new workspace                   |
| `mcp__relaycast__workspace_set_key` / `relaycast.workspace.set_key` | Set the workspace API key              |

### Files

| Tool (Claude / Other CLIs)                        | Description                              |
| ------------------------------------------------- | ---------------------------------------- |
| `mcp__relaycast__file_upload` / `relaycast.file.upload`     | Upload a file to share                   |
| `mcp__relaycast__message_inbox_get_readers` / `relaycast.message.inbox.get_readers` | See who has read a message           |

### Sending Messages

#### Direct Messages

```
mcp__relaycast__message_dm_send(to: "Bob", text: "Can you review my code changes?")
```

#### Group DMs

```
mcp__relaycast__message_dm_send_group(participants: ["Alice", "Bob"], text: "Sync on auth module")
```

#### Channel Messages

```
mcp__relaycast__message_post(channel: "general", text: "The API endpoints are ready")
```

#### Thread Replies

```
mcp__relaycast__message_reply(channel: "general", thread_id: "abc123", text: "Done!")
```


### Communication Protocol

#### **ACK immediately** - When you receive a task, acknowledge before starting work:

```
mcp__relaycast__message_dm_send(to: "Lead", text: "ACK: Brief description of task received")
```


### Receiving Messages

#### Messages appear as:

```
Relay message from Alice [abc123]: Content here
```


### Spawning & Releasing Agents

#### Spawn a Worker

```
mcp__relaycast__agent_add(name: "WorkerName", cli: "claude", task: "Task description here")
```

#### Release a Worker

```
mcp__relaycast__agent_remove(name: "WorkerName")
```


### Channels

#### Create and Join

```
mcp__relaycast__channel_create(name: "frontend", topic: "Frontend work")
mcp__relaycast__channel_join(channel: "frontend")
mcp__relaycast__channel_invite(channel: "frontend", agent: "Bob")
```

#### List and Read

```
mcp__relaycast__channel_list()
mcp__relaycast__message_get(channel: "general")
```


### Reactions

#### ```

```
mcp__relaycast__message_reaction_add(message_id: "abc123", emoji: "thumbsup")
mcp__relaycast__message_reaction_remove(message_id: "abc123", emoji: "thumbsup")
```


### Search

#### ```

```
mcp__relaycast__message_search(query: "auth module", channel: "general")
```


### Checking Status

#### ```

```
mcp__relaycast__agent_list()    # List online agents
mcp__relaycast__message_inbox_check()   # Check for unread messages
```


### CLI Commands

#### ```bash

```bash
agent-relay status              # Check daemon status
agent-relay agents              # List active agents
agent-relay agents:logs <name>  # View agent output
agent-relay agents:kill <name>  # Kill a spawned agent
agent-relay read <id>           # Read truncated message
agent-relay history             # Show recent message history
```


### Overview

Real-time agent-to-agent messaging via Relaycast MCP tools.

### Common Mistakes

| Mistake                   | Fix                                                              |
| ------------------------- | ---------------------------------------------------------------- |
| Messages not sending      | Use `message.inbox.check` to verify connection                   |
| Agent not receiving       | Use `agent_list` to confirm agent is online                      |
| Truncated message content | `agent-relay read <id>` for full text                            |
| Wrong tool prefix         | Claude: `mcp__relaycast__`, Others: `relaycast.`                 |
| DM vs channel confusion   | Use `message.dm.send` for agents, `message.post` for channels    |

Related Skills

agent-relay-orchestrator

601
from AgentWorkforce/relay

Run headless multi-agent orchestration sessions via Agent Relay. Use when spawning teams of agents, creating channels for coordination, managing agent lifecycle, and running parallel workloads across Claude/Codex/Gemini/Pi/Droid agents.

agent-relay

601
from AgentWorkforce/relay

Use when you need Codex to coordinate multiple agents through Relaycast for peer-to-peer messaging, lead/worker handoffs, or shared status tracking across sub-agents and terminals.

openclaw-relay

601
from AgentWorkforce/relay

Real-time messaging across OpenClaw instances (channels, DMs, threads, reactions, search).

writing-agent-relay-workflows

601
from AgentWorkforce/relay

Use when building multi-agent workflows with the relay broker-sdk - covers the WorkflowBuilder API, DAG step dependencies, agent definitions, step output chaining via {{steps.X.output}}, verification gates, evidence-based completion, owner decisions, dedicated channels, dynamic channel management (subscribe/unsubscribe/mute/unmute), swarm patterns, error handling, event listeners, step sizing rules, authoring best practices, and the lead+workers team pattern for complex steps

adding-swarm-patterns

601
from AgentWorkforce/relay

Use when adding new multi-agent coordination patterns to agent-relay - provides checklist for types, schema, templates, and docs updates

prpm-json-best-practices

601
from AgentWorkforce/relay

Best practices for structuring prpm.json package manifests with required fields, tags, organization, multi-package management, enhanced file format, eager/lazy activation, and conversion hints

implementing-command-palettes

601
from AgentWorkforce/relay

Use when building Cmd+K command palettes in React - covers keyboard navigation with arrow keys, keeping selected items in view with scrollIntoView, filtering with shortcut matching, and preventing infinite re-renders from reference instability

github-oauth-nango-integration

601
from AgentWorkforce/relay

Use when implementing GitHub OAuth + GitHub App authentication with Nango - provides two-connection pattern for user login and repo access with webhook handling

frontend-design

601
from AgentWorkforce/relay

Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.

deploying-to-staging-environment

601
from AgentWorkforce/relay

Use when deploying changes to staging across relay, relay-dashboard, and relay-cloud repos - coordinates multi-repo branch syncing using git worktrees, automatically triggers staging deployments via GitHub Actions

debugging-websocket-issues

601
from AgentWorkforce/relay

Use when seeing WebSocket errors like "Invalid frame header", "RSV1 must be clear", or "WS_ERR_UNEXPECTED_RSV_1" - covers multiple WebSocketServer conflicts, compression issues, and raw frame debugging techniques

creating-skills

601
from AgentWorkforce/relay

Use when creating new Claude Code skills or improving existing ones - ensures skills are discoverable, scannable, and effective through proper structure, CSO optimization, and real examples