Real-time communication between coding harnesses. Let Claude send messages to codex and stop babysitting your agents.
- Claude orchestrates, Codex implements.
Spawn a Claude lead that hands work to Codex workers, reads their progress live, and steers mid-task when one goes off the rails. - Adversarial review loops.
Run an implementer alongside one or two critics. They iterate until the critic ratifies — no human in the loop. - Walk-away autonomy.
Kick off a multi-step job, close the laptop. Agents keep talking, finishing, and verifying each other's work.
-
Install the agent-relay CLI:
curl -fsSL https://raw.githubusercontent.com/AgentWorkforce/relay/main/install.sh | bash -
Install the orchestration skill:
npx skills add https://github.com/agentworkforce/skills --skill orchestrating-agent-relay
-
Tell your agent to use it:
use the orchestrating-agent-relay skill to spawn a claude and codex agent and [YOUR_TASK]
Subagents are the right tool when work is a single well-scoped one-shot. Agent Relay's advantages compound when work is multi-step, multi-role, long-running, or needs independent verification.
- Mix models and harnesses. Codex implements, Claude reviews, Gemini verifies — each model used for what it's best at, not whatever the parent harness happens to be.
- Live steering. The orchestrator reads logs and DMs as workers run and can redirect mid-turn instead of waiting for a final report.
- Review as a conversation. The reviewer and implementer talk while the code is being written, not after the fact.
- Swarm patterns out of the box. Review/fix loops, adversarial debate pairs, fan-out → pipeline → gather, lead + workers.
- Audit trail outside the agent. Every DM and channel message shows up in the Agent Relay Observer — full visibility without trusting the parent agent's self-report.
Spawn and control agents programmatically.
TypeScript / Node.js
npm install @agent-relay/sdk
# or
bun add @agent-relay/sdkPython
pip install agent-relay-sdkSee the Python SDK for Python usage and adapters.
import { AgentRelay, Models } from '@agent-relay/sdk';
const relay = new AgentRelay();
relay.onMessageReceived = (msg) => {
console.log(`[${msg.from} → ${msg.to}]: ${msg.text}`);
};
const channels = ['tic-tac-toe'];
const x = await relay.spawnAgent({
name: 'PlayerX',
cli: 'claude',
model: Models.Claude.SONNET,
channels,
task: 'Play tic-tac-toe as X against PlayerO. You go first.',
});
const o = await relay.spawnAgent({
name: 'PlayerO',
cli: 'codex',
model: Models.Codex.GPT_5_3_CODEX_SPARK,
channels,
task: 'Play tic-tac-toe as O against PlayerX.',
});
await Promise.all([relay.waitForAgentReady('PlayerX'), relay.waitForAgentReady('PlayerO')]);
relay.system().sendMessage({ to: 'PlayerX', text: 'Start.' });
await AgentRelay.waitForAny([x, o], 5 * 60 * 1000);
await relay.shutdown();More:
First-class support for terminal-native agents:
- Claude Code
- Codex CLI
- Gemini CLI
- OpenCode
The broader SDK and workflow surface also includes additional integrations in the codebase. See the package docs for details.
npm install
npm run build
npm testReferences:
Apache-2.0 — Copyright 2026 Agent Workforce Incorporated
Links: Website · Documentation · Docs (Markdown) · Discord
