Use when you need Codex to coordinate multiple agents through Agent Relay for peer-to-peer messaging, lead/worker handoffs, or shared status tracking across sub-agents and terminals.
npx skills add https://github.com/AgentWorkforce/relay --skill agent-relay
Use this skill when Codex needs real-time coordination across multiple agents. It gives Codex a repeatable workflow for:
Relay fills the peer-to-peer gap in Codex sub-agent workflows. Codex can spawn and collect worker results, but Agent Relay gives those workers a shared message bus so they can talk to the lead and to each other.
On first activation, this skill auto-configures Codex by running scripts/setup.sh. This adds the Agent Relay MCP server to .codex/config.toml, enables hooks, installs hooks.json, and copies the relay-worker.toml agent definition. No manual setup is required after installing the skill.
Every relay-connected Codex agent must complete these steps IN ORDER before substantive work:
RELAY_WORKSPACE_KEY is set in the environment, call set_workspace_key with that key.RELAY_API_KEY alias is set, treat it as the same workspace key.create_workspace to auto-create one. This returns a workspace key — save it for workers.register_agent with your agent name and type: "agent". Use RELAY_AGENT_NAME from the environment if set, otherwise derive a name from the task context (e.g., lead, auth-worker).or construct an observer URL from it. If the user asks to follow the
conversation, explain that observation requires a separately provisioned,
read-only observer token (ot_live_...) delivered through an explicit
secret handoff. Do not print the token or place it in a URL query string;
when no scoped observer token is available, omit the observer link.
check_inbox to see if there are any pending messages or task assignments.ACK: <one-sentence understanding> to your lead via send_dm. If the assignment is unclear, send BLOCKED: <question> instead of guessing.DONE: <summary with evidence> before stopping.If workspace creation or registration fails, retry once, then report the failure to the user — do not proceed without a relay connection.
Do not assume the current MCP session already has an active Agent Relay workspace. Always call set_workspace_key or create_workspace before registering.
as: "<agent-name>" on relay calls that support explicit attribution.ACK: I understand the assignment and I am starting work on <scope>.STATUS: Finished <milestone>; next I am doing <next-step>.BLOCKED: I cannot continue because <blocker>.DONE: Completed <scope>. Evidence: <files changed, commands run, tests, or decisions>.There are two current ways to involve more agents. Use the right one for the
job.
Use register_agent for an agent process that is already running and only
needs a Relay identity. Registration does not start a new model runtime.
Lead steps:
set_workspace_key or create_workspace).register_agent).register_agent with a stable name.
send_dm(to: "worker-name", text: "...").check_inbox).Worker steps:
set_workspace_key with the shared key.register_agent.check_inbox).send_dm.send_dm.Use add_agent when the lead should ask Relay to start a provider-backed
worker. The current tool requires name, cli, and task; optional fields
include channel, persona, and model.
Lead steps:
add_agent(name: "worker-name", cli: "codex", task: "...").https://agentrelay.com/skill, the lead name, exact scope, andcompletion criteria in the task prompt.
check_inbox).remove_agent after the work is accepted.Worker steps:
using-agent-relay role from https://agentrelay.com/skill.If your Codex surface has a sub-agent spawn capability, use the bundled
relay-worker agent definition for code-heavy work that needs a separate Codex
runtime with file access and tools. Include the workspace key, relay name, lead
name, exact scope, and completion criteria in the sub-agent prompt. If that
spawn capability is not available, use add_agent instead.
If a worker does not ACK within 30 seconds:
list_agents.register_agent.add_agent with name, cli, and task.send_dm.Worker: api-worker
Type: relay-spawned worker (use add_agent with name, cli, and task)
Lead: lead
Scope: check the Agent Relay inbox and confirm connectivity
Protocol:
1. Check inbox
2. DM lead with ACK
3. Perform scope
4. DM lead with DONE
For code-heavy tasks, change the type line to:
Type: Codex sub-agent (use relay-worker if your Codex surface provides sub-agent spawning)
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Replace with description of the skill and when Claude should use it.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Take agentworkforce/agent-relay from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.