running-headless-orchestrator
Use when an agent needs to self-bootstrap agent-relay and autonomously manage a team of workers - covers infrastructure startup, agent spawning, lifecycle monitoring, and team coordination without human intervention
Best use case
running-headless-orchestrator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when an agent needs to self-bootstrap agent-relay and autonomously manage a team of workers - covers infrastructure startup, agent spawning, lifecycle monitoring, and team coordination without human intervention
Teams using running-headless-orchestrator 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
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/running-headless-orchestrator/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How running-headless-orchestrator Compares
| Feature / Agent | running-headless-orchestrator | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when an agent needs to self-bootstrap agent-relay and autonomously manage a team of workers - covers infrastructure startup, agent spawning, lifecycle monitoring, and team coordination without human intervention
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
### Overview A headless orchestrator is an agent that: 1. Starts the relay infrastructure itself (`agent-relay up`) 2. Spawns and manages worker agents 3. Monitors agent lifecycle events 4. Coordinates work without human intervention ### When to Use - Agent needs full control over its worker team - No human available to run `agent-relay up` manually - Agent should manage agent lifecycle autonomously - Building self-contained multi-agent systems ### Quick Reference | Step | Command/Tool | | --------------------------------- | ------------------------------------------------------- | | Verify installation | `command -v agent-relay` or `npx agent-relay --version` | | Verify Node runtime if shim fails | `node --version` or fix mise/asdf first | | Start infrastructure | `agent-relay up --no-dashboard --verbose` | | Check status | `agent-relay status` | | Spawn worker | `agent-relay spawn Worker1 claude "task"` | | List workers | `agent-relay who` | | View worker logs | `agent-relay agents:logs Worker1` | | Send message | `agent-relay send Worker1 "message"` | | Release worker | `agent-relay release Worker1` | | Stop infrastructure | `agent-relay down` | ### Bootstrap Flow #### Step 0: Verify Installation ```bash # Check if agent-relay is available command -v agent-relay || npx agent-relay --version # If your shell reports a mise/asdf shim error, fix Node first node --version # e.g. for mise: mise use -g node@22.22.1 # If not installed, install globally npm install -g agent-relay # Or use npx (no global install) npx agent-relay --version ``` #### Step 1: Start Infrastructure ```bash # Preferred: run broker in foreground/stdin mode and keep the session open agent-relay up --no-dashboard --verbose ``` #### Step 2: Spawn Workers via MCP ``` mcp__relaycast__agent_add( name: "Worker1", cli: "claude", task: "Implement the authentication module following the existing patterns" ) ``` #### Step 3: Monitor and Coordinate ``` # Check for worker messages mcp__relaycast__message_inbox_check() # Send follow-up instructions mcp__relaycast__message_dm_send(to: "Worker1", text: "Also add unit tests") # List active workers mcp__relaycast__agent_list() ``` #### Step 4: Release Workers ``` mcp__relaycast__agent_remove(name: "Worker1") ``` #### Step 5: Shutdown (optional) ```bash agent-relay down ``` ### CLI Commands for Orchestration #### Spawning and Messaging ```bash # Spawn a worker agent-relay spawn Worker1 claude "Implement auth module" # Send message to worker agent-relay send Worker1 "Add unit tests too" # Release when done agent-relay release Worker1 ``` #### Monitoring Workers (Essential) ```bash # Show currently active agents agent-relay who # View real-time output from a worker (critical for debugging) agent-relay agents:logs Worker1 # View recent message history agent-relay history # Check overall system status agent-relay status ``` #### Troubleshooting ```bash # Kill unresponsive worker agent-relay agents:kill Worker1 # Re-check broker status agent-relay status # If a worker looks stuck, inspect its logs first agent-relay agents:logs Worker1 ``` ### Orchestrator Instructions Template #### Give your lead agent these instructions: ``` You are an autonomous orchestrator. Bootstrap the relay infrastructure and manage a team of workers. ## Step 1: Verify Installation Run: command -v agent-relay || npx agent-relay --version If you hit a mise/asdf shim error: verify Node first with `node --version`, then fix the runtime manager If not found: npm install -g agent-relay ## Step 2: Start Infrastructure Run: agent-relay up --no-dashboard --verbose Verify: agent-relay status (should show "running") ## Step 3: Manage Your Team Spawn workers: agent-relay spawn Worker1 claude "Task description" Monitor workers (do this frequently): agent-relay who # List active workers agent-relay agents:logs Worker1 # View worker output/progress Send instructions: agent-relay send Worker1 "Additional instructions" Release when done: agent-relay release Worker1 ## Protocol - Workers will ACK when they receive tasks - Workers will send DONE when complete - Use `agent-relay agents:logs <name>` to monitor progress - Use `agent-relay history` to see message flow ``` ### Lifecycle Events The broker emits these events (available via SDK subscriptions): | Event | When | | ------------------------ | --------------------------- | | `agent_spawned` | Worker process started | | `worker_ready` | Worker connected to relay | | `agent_idle` | Worker waiting for messages | | `agent_exited` | Worker process ended | | `agent_permanently_dead` | Worker failed after retries | ### Common Mistakes | Mistake | Fix | | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | | `agent-relay: command not found` or mise/asdf shim error | Ensure Node is available first (`node --version`); if a shim is broken, fix the runtime manager, then install/use `agent-relay` | | "Nested session" error | Broker handles this automatically; if running manually, unset `CLAUDECODE` env var | | Broker not starting | Try `agent-relay down` first, then use foreground `agent-relay up --no-dashboard --verbose` to see readiness logs | | Background broker says started but status is STOPPED | Prefer foreground mode for that project/session; background mode may have detached incorrectly | | Spawn fails with `internal reply dropped` | Broker likely is not fully ready yet; wait for readiness, then spawn one worker first | | Workers not connecting | Ensure broker started; check `agent-relay who` and worker logs | | Not monitoring workers | Use `agent-relay agents:logs <name>` frequently to track progress | | Workers seem stuck | Check logs with `agent-relay agents:logs <name>` for errors | | Messages not delivered | Check `agent-relay history` to verify message flow | ### Overview Self-bootstrap agent-relay infrastructure and manage a team of agents autonomously. ### Prerequisites #### 1. **agent-relay CLI installed** (required) ```bash npm install -g agent-relay # Or use npx without installing: npx agent-relay <command> ```
Related Skills
agent-relay-orchestrator
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.
adding-swarm-patterns
Use when adding new multi-agent coordination patterns to agent-relay - provides checklist for types, schema, templates, and docs updates
agent-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
Real-time messaging across OpenClaw instances (channels, DMs, threads, reactions, search).
prpm-json-best-practices
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
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
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
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
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
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
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
creating-claude-rules
Use when creating or fixing .claude/rules/ files - provides correct paths frontmatter (not globs), glob patterns, and avoids Cursor-specific fields like alwaysApply