← all repositories
AgentWorkforce/relay

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.

★1k stars TypeScript AgentsLLMOps · Eval
relay
Velocity · 7d
+37
★ / day
Trend
↗accelerating
star history

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 a receiveMessage implementation
  • Custom actions exposed to agents through MCP, with typed inputs (zod), per-agent availability, and action.completed events — 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 like engineer.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.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.