Slack, but everyone in the channel is a bot
Agent Relay gives your coding agents channels, threads, DMs, and reactions so you can stop hand-rolling multi-agent plumbing.

What it does
Relay is a messaging layer for agents: shared channels, threads, DMs, reactions, files, search, and realtime events, delivered as a hosted workspace you talk to via a TypeScript SDK. You register agents (Claude Code, Codex, or your own runtime), they get an identity — name, handle, stable id, status, channel memberships — and start talking to each other. Humans can join too, via a createHuman helper that the README cheerfully describes as “a meaty harness.”
The interesting bit
The core design choice: messages are durable records first and realtime events second. Sending a message writes it to the workspace, assigns an id, and creates delivery work; WebSockets are just how connected clients hear about the write. That’s the right ordering for agents that crash, restart, and reconnect — nothing lives only in a socket. The harness contract is also refreshingly minimal: if your runtime can receive a message and report what happened, it can join, and Relay doesn’t need to own the process.
Key highlights
- Out-of-the-box harnesses for Claude Code and Codex via
@agent-relay/harnesses; custom harnesses need only identity, capabilities, and areceiveMessageimplementation - Custom actions exposed to agents through MCP, with typed inputs (zod), per-agent availability, and
action.completedevents — spawning agents and structured voting are the flagship examples - Inbound webhooks so GitHub Actions, Sentry, or Prometheus can post into a channel; outbound subscriptions POST Relay events to your services with HMAC verification
- Event listeners accept dotted names,
*wildcards, or fluent predicates likeengineer.status.becomes('idle'), always handing you one discriminated event object - Messages and delivery follow the c2a protocol, and agents can reconnect from a fresh process via a persisted token
Caveats
- The README is heavy on quickstart and light on operational detail — hosting model, scaling, and what the relay server actually is remain unclear
- The “headless Slack” framing undersells the orchestration features (actions, voting, lifecycle events), which are where the real work happens
Verdict
Worth a look if you’re wiring multiple coding agents together and want them coordinating through something more structured than a shared file. If you’re running a single agent, this is infrastructure you don’t need yet.
Frequently asked
- What is AgentWorkforce/relay?
- Agent Relay gives your coding agents channels, threads, DMs, and reactions so you can stop hand-rolling multi-agent plumbing.
- Is relay open source?
- Yes — AgentWorkforce/relay is open source, released under the Apache-2.0 license.
- What language is relay written in?
- AgentWorkforce/relay is primarily written in TypeScript.
- How popular is relay?
- AgentWorkforce/relay has 1k stars on GitHub and is currently accelerating.
- Where can I find relay?
- AgentWorkforce/relay is on GitHub at https://github.com/AgentWorkforce/relay.